Live video on the AT Protocol

build properly

+16 -298
+1 -1
js/app/.gitignore
··· 61 62 .env.local 63 64 - ./public/locales/**/*.json
··· 61 62 .env.local 63 64 + public/locales/*
+1 -1
js/app/package.json
··· 14 "export": "expo export --dump-sourcemap || expo export --dump-sourcemap", 15 "check": "bash -c 'set -euo pipefail;export OUT=$(mktemp -d); npx tsc -p . --outDir $OUT; rm -rf $OUT'", 16 "prebuild": "EXPO_NO_GIT_STATUS=1 expo prebuild --clean && sed -i.bak 's/org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m/org.gradle.jvmargs=-Xmx4096m -XX:MaxMetaspaceSize=1024m/' android/gradle.properties && pnpm run find-node", 17 - "prepare": "which pod && pnpm run prepare-ios || echo 'not a mac, not installing pods'", 18 "prepare-ios": "cd ios && pod install && pnpm run find-node", 19 "find-node": "node -p '`NODE_BINARY=${process.argv[0]}`' > ios/.xcode.env.local", 20 "code-signing-dev": "mkdir -p code-signing-dev/keys code-signing-dev/certs && expo-updates codesigning:generate --key-output-directory code-signing-dev/keys --certificate-output-directory code-signing-dev/certs --certificate-validity-duration-years 10 --certificate-common-name 'Streamplace'",
··· 14 "export": "expo export --dump-sourcemap || expo export --dump-sourcemap", 15 "check": "bash -c 'set -euo pipefail;export OUT=$(mktemp -d); npx tsc -p . --outDir $OUT; rm -rf $OUT'", 16 "prebuild": "EXPO_NO_GIT_STATUS=1 expo prebuild --clean && sed -i.bak 's/org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m/org.gradle.jvmargs=-Xmx4096m -XX:MaxMetaspaceSize=1024m/' android/gradle.properties && pnpm run find-node", 17 + "prepare": "which pod && pnpm run prepare-ios || echo 'not a mac, not installing pods' && cp -r ../components/public/locales ./public/locales", 18 "prepare-ios": "cd ios && pod install && pnpm run find-node", 19 "find-node": "node -p '`NODE_BINARY=${process.argv[0]}`' > ios/.xcode.env.local", 20 "code-signing-dev": "mkdir -p code-signing-dev/keys code-signing-dev/certs && expo-updates codesigning:generate --key-output-directory code-signing-dev/keys --certificate-output-directory code-signing-dev/certs --certificate-validity-duration-years 10 --certificate-common-name 'Streamplace'",
+2 -2
js/components/.gitignore
··· 1 - # Ignore compiled translation files in source directory 2 locales/**/messages.json 3 - public/locales/**/*.ftl 4 5 # Ignore extracted i18n keys (they're just for reference) 6 locales/*/*.json
··· 1 + # Ignore compiled translation files in source directory if they exist 2 locales/**/messages.json 3 + public/locales/* 4 5 # Ignore extracted i18n keys (they're just for reference) 6 locales/*/*.json
-54
js/components/public/locales/en-US/messages.json
··· 1 - { 2 - "app-version": "Streamplace v{ $version }", 3 - "download-new-update": "Download New Update", 4 - "check-for-updates": "Check for Updates", 5 - "bundled-runtype": "Bundled", 6 - "ota-runtype": "Over-the-Air (OTA)", 7 - "recovery-runtype": "Recovery Mode", 8 - "modal-latest-version": "You are using the latest version.", 9 - "modal-no-update-available": "You are on the latest version of Streamplace, hooray!", 10 - "modal-update-available-title": "Update Available", 11 - "modal-update-available-description": "A new version of Streamplace is ready to download", 12 - "modal-update-failed": "Update check failed. You may need to update the app through the { $store }.", 13 - "modal-update-failed-title": "Update Failed", 14 - "modal-update-failed-description": "Update check failed. You may need to update the app through the { $store }.", 15 - "button-reload-app-on-update": "Apply Update (will reload app)", 16 - "use-custom-node": "Use Custom Node", 17 - "default-url": "Default: { $url }", 18 - "enter-custom-node-url": "Enter custom node URL", 19 - "save-button": "SAVE", 20 - "language-selection": "Language", 21 - "language-selection-description": "Choose your preferred language", 22 - "input-search-languages": "Search languages...", 23 - "debug-recording-title": "Allow { $host } to record your livestream for debugging and improving the service", 24 - "debug-recording-description": "Optional", 25 - "manage-keys": "Manage Keys", 26 - "settings-title": "Settings", 27 - "loading": "Loading...", 28 - "error": "Error", 29 - "cancel": "Cancel", 30 - "confirm": "Confirm", 31 - "welcome-user": "Welcome, { $username }!", 32 - "notification-count": "{ $count ->\n [0] No notifications\n [1] One notification\n *[other] { $count } notifications\n}", 33 - "search-placeholder": "Search...", 34 - "message-input": "Enter your message...", 35 - "success": "Success", 36 - "warning": "Warning", 37 - "info": "Information", 38 - "close": "Close", 39 - "open": "Open", 40 - "delete": "Delete", 41 - "edit": "Edit", 42 - "create": "Create", 43 - "update": "Update", 44 - "refresh": "Refresh", 45 - "save": "Save", 46 - "cancel-button": "Cancel", 47 - "ok": "OK", 48 - "yes": "Yes", 49 - "no": "No", 50 - "continue": "Continue", 51 - "back": "Back", 52 - "next": "Next", 53 - "finish": "Finish" 54 - }
···
-54
js/components/public/locales/es-ES/messages.json
··· 1 - { 2 - "app-version": "Streamplace v{ $version }", 3 - "download-new-update": "Descargar Nueva Actualización", 4 - "check-for-updates": "Buscar Actualizaciones", 5 - "bundled-runtype": "Empaquetado", 6 - "ota-runtype": "Over-the-Air (OTA)", 7 - "recovery-runtype": "Modo de Recuperación", 8 - "modal-latest-version": "Estás usando la última versión.", 9 - "modal-no-update-available": "¡Tienes la versión más reciente de Streamplace, genial!", 10 - "modal-update-available-title": "Actualización Disponible", 11 - "modal-update-available-description": "Una nueva versión de Streamplace está lista para descargar", 12 - "modal-update-failed": "La búsqueda de actualizaciones falló. Es posible que necesites actualizar", 13 - "modal-update-failed-title": "Actualización Falló", 14 - "modal-update-failed-description": "La búsqueda de actualizaciones falló. Es posible que necesites actualizar", 15 - "button-reload-app-on-update": "Aplicar Actualización (recargará la aplicación)", 16 - "use-custom-node": "Usar Nodo Personalizado", 17 - "default-url": "Predeterminado: { $url }", 18 - "enter-custom-node-url": "Introduce la URL del nodo personalizado", 19 - "save-button": "GUARDAR", 20 - "language-selection": "Idioma", 21 - "language-selection-description": "Elige tu idioma preferido", 22 - "debug-recording-title": "Permitir que { $host } grabe tu retransmisión en directo para depuración y mejora del servicio", 23 - "debug-recording-description": "Opcional", 24 - "input-search-languages": "Buscar idiomas...", 25 - "manage-keys": "Gestionar Claves", 26 - "settings-title": "Configuración", 27 - "loading": "Cargando...", 28 - "error": "Error", 29 - "cancel": "Cancelar", 30 - "confirm": "Confirmar", 31 - "welcome-user": "¡Bienvenido, { $username }!", 32 - "notification-count": "{ $count ->\n [0] Sin notificaciones\n [1] Una notificación\n *[other] { $count } notificaciones\n}", 33 - "search-placeholder": "Buscar...", 34 - "message-input": "Introduce tu mensaje...", 35 - "success": "Éxito", 36 - "warning": "Aviso", 37 - "info": "Información", 38 - "close": "Cerrar", 39 - "open": "Abrir", 40 - "delete": "Eliminar", 41 - "edit": "Editar", 42 - "create": "Crear", 43 - "update": "Actualizar", 44 - "refresh": "Actualizar", 45 - "save": "Guardar", 46 - "cancel-button": "Cancelar", 47 - "ok": "Aceptar", 48 - "yes": "Sí", 49 - "no": "No", 50 - "continue": "Continuar", 51 - "back": "Volver", 52 - "next": "Siguiente", 53 - "finish": "Finalizar" 54 - }
···
-54
js/components/public/locales/fr-FR/messages.json
··· 1 - { 2 - "app-version": "Streamplace v{ $version }", 3 - "download-new-update": "Télécharger la nouvelle mise à jour", 4 - "check-for-updates": "Vérifier les mises à jour", 5 - "bundled-runtype": "Inclus", 6 - "ota-runtype": "Over-the-Air (OTA)", 7 - "recovery-runtype": "Mode de récupération", 8 - "modal-latest-version": "Vous utilisez la dernière version.", 9 - "modal-no-update-available": "Vous avez la dernière version de Streamplace, génial !", 10 - "modal-update-available-title": "Mise à jour disponible", 11 - "modal-update-available-description": "Une nouvelle version de Streamplace est prête à télécharger", 12 - "modal-update-failed": "La vérification des mises à jour a échoué. Vous devrez peut-être mettre à jour l'application via { $store }.", 13 - "modal-update-failed-title": "Échec de la mise à jour", 14 - "modal-update-failed-description": "La vérification des mises à jour a échoué. Vous devrez peut-être mettre à jour l'application via { $store }.", 15 - "button-reload-app-on-update": "Appliquer la mise à jour (l'application va se recharger)", 16 - "use-custom-node": "Utiliser un nœud personnalisé", 17 - "default-url": "Par défaut : { $url }", 18 - "enter-custom-node-url": "Saisir l'URL du nœud personnalisé", 19 - "save-button": "ENREGISTRER", 20 - "language-selection": "Langue", 21 - "language-selection-description": "Choisissez votre langue préférée", 22 - "debug-recording-title": "Autoriser { $host } à enregistrer votre diffusion en direct pour le débogage et l'amélioration du service", 23 - "debug-recording-description": "Optionnel", 24 - "input-search-languages": "Rechercher des langues...", 25 - "manage-keys": "Gérer les clés", 26 - "settings-title": "Paramètres", 27 - "loading": "Chargement...", 28 - "error": "Erreur", 29 - "cancel": "Annuler", 30 - "confirm": "Confirmer", 31 - "welcome-user": "Bienvenue, { $username } !", 32 - "notification-count": "{ $count ->\n [0] Aucune notification\n [1] Une notification\n *[other] { $count } notifications\n}", 33 - "search-placeholder": "Rechercher...", 34 - "message-input": "Saisissez votre message...", 35 - "success": "Succès", 36 - "warning": "Attention", 37 - "info": "Information", 38 - "close": "Fermer", 39 - "open": "Ouvrir", 40 - "delete": "Supprimer", 41 - "edit": "Modifier", 42 - "create": "Créer", 43 - "update": "Mettre à jour", 44 - "refresh": "Actualiser", 45 - "save": "Enregistrer", 46 - "cancel-button": "Annuler", 47 - "ok": "OK", 48 - "yes": "Oui", 49 - "no": "Non", 50 - "continue": "Continuer", 51 - "back": "Retour", 52 - "next": "Suivant", 53 - "finish": "Terminer" 54 - }
···
-54
js/components/public/locales/pt-BR/messages.json
··· 1 - { 2 - "app-version": "Streamplace v{ $version }", 3 - "download-new-update": "Baixar Nova Atualização", 4 - "check-for-updates": "Verificar Atualizações", 5 - "bundled-runtype": "Empacotado", 6 - "ota-runtype": "Over-the-Air (OTA)", 7 - "recovery-runtype": "Modo de Recuperação", 8 - "modal-latest-version": "Você está usando a versão mais recente.", 9 - "modal-no-update-available": "Você está na versão mais recente do Streamplace, eba!", 10 - "modal-update-available-title": "Atualização Disponível", 11 - "modal-update-available-description": "Uma nova versão do Streamplace está pronta para download", 12 - "modal-update-failed": "A verificação de atualizações falhou. Você pode precisar atualizar o aplicativo através do { $store }.", 13 - "modal-update-failed-title": "Atualização Falhou", 14 - "modal-update-failed-description": "A verificação de atualizações falhou. Você pode precisar atualizar o aplicativo através do { $store }.", 15 - "button-reload-app-on-update": "Aplicar Atualização (o aplicativo será recarregado)", 16 - "use-custom-node": "Usar Nó Personalizado", 17 - "default-url": "Padrão: { $url }", 18 - "enter-custom-node-url": "Digite a URL do nó personalizado", 19 - "save-button": "SALVAR", 20 - "language-selection": "Idioma", 21 - "language-selection-description": "Escolha seu idioma preferido", 22 - "debug-recording-title": "Permitir que { $host } grave sua transmissão ao vivo para depuração e melhoria do serviço", 23 - "debug-recording-description": "Opcional", 24 - "input-search-languages": "Pesquisar idiomas...", 25 - "manage-keys": "Gerenciar Chaves", 26 - "settings-title": "Configurações", 27 - "loading": "Carregando...", 28 - "error": "Erro", 29 - "cancel": "Cancelar", 30 - "confirm": "Confirmar", 31 - "welcome-user": "Bem-vindo, { $username }!", 32 - "notification-count": "{ $count ->\n [0] Nenhuma notificação\n [1] Uma notificação\n *[other] { $count } notificações\n}", 33 - "search-placeholder": "Pesquisar...", 34 - "message-input": "Digite sua mensagem...", 35 - "success": "Sucesso", 36 - "warning": "Aviso", 37 - "info": "Informação", 38 - "close": "Fechar", 39 - "open": "Abrir", 40 - "delete": "Excluir", 41 - "edit": "Editar", 42 - "create": "Criar", 43 - "update": "Atualizar", 44 - "refresh": "Atualizar", 45 - "save": "Salvar", 46 - "cancel-button": "Cancelar", 47 - "ok": "OK", 48 - "yes": "Sim", 49 - "no": "Não", 50 - "continue": "Continuar", 51 - "back": "Voltar", 52 - "next": "Próximo", 53 - "finish": "Finalizar" 54 - }
···
-54
js/components/public/locales/zh-Hant/messages.json
··· 1 - { 2 - "app-version": "直播地 v{ $version }", 3 - "download-new-update": "下載新更新", 4 - "check-for-updates": "檢查更新", 5 - "bundled-runtype": "捆綁版", 6 - "ota-runtype": "空中下載 (OTA)", 7 - "recovery-runtype": "復原模式", 8 - "modal-latest-version": "您正在使用最新版本。", 9 - "modal-no-update-available": "您已經在使用最新版本的直播地,太棒了!", 10 - "modal-update-available-title": "有可用更新", 11 - "modal-update-available-description": "新版本的直播地已準備好下載", 12 - "modal-update-failed": "更新檢查失敗。您可能需要透過 { $store } 更新應用程式。", 13 - "modal-update-failed-title": "更新失敗", 14 - "modal-update-failed-description": "更新檢查失敗。您可能需要透過 { $store } 更新應用程式。", 15 - "button-reload-app-on-update": "套用更新 (將重新載入應用程式)", 16 - "use-custom-node": "使用自訂節點", 17 - "default-url": "預設:{ $url }", 18 - "enter-custom-node-url": "輸入自訂節點網址", 19 - "save-button": "儲存", 20 - "language-selection": "語言", 21 - "language-selection-description": "選擇您偏好的語言", 22 - "debug-recording-title": "允許 { $host } 錄製您的直播串流以進行除錯和服務改善", 23 - "debug-recording-description": "可選項目", 24 - "input-search-languages": "搜尋語言...", 25 - "manage-keys": "管理金鑰", 26 - "settings-title": "設定", 27 - "loading": "載入中...", 28 - "error": "錯誤", 29 - "cancel": "取消", 30 - "confirm": "確認", 31 - "welcome-user": "歡迎,{ $username }!", 32 - "notification-count": "{ $count ->\n [0] 無通知\n [1] 一則通知\n *[other] { $count } 則通知\n}", 33 - "search-placeholder": "搜尋...", 34 - "message-input": "請輸入您的訊息...", 35 - "success": "成功", 36 - "warning": "警告", 37 - "info": "資訊", 38 - "close": "關閉", 39 - "open": "開啟", 40 - "delete": "刪除", 41 - "edit": "編輯", 42 - "create": "建立", 43 - "update": "更新", 44 - "refresh": "重新整理", 45 - "save": "儲存", 46 - "cancel-button": "取消", 47 - "ok": "確定", 48 - "yes": "是", 49 - "no": "否", 50 - "continue": "繼續", 51 - "back": "返回", 52 - "next": "下一步", 53 - "finish": "完成" 54 - }
···
+3 -1
js/components/scripts/extract-i18n.js
··· 166 const messagesJsonPath = path.join(localeJsonDir, "messages.json"); 167 168 if (!fs.existsSync(messagesJsonPath)) { 169 - console.log(`⚠️ No messages.json found for ${locale}, skipping...`); 170 continue; 171 } 172
··· 166 const messagesJsonPath = path.join(localeJsonDir, "messages.json"); 167 168 if (!fs.existsSync(messagesJsonPath)) { 169 + console.log( 170 + `⚠️ No messages.json found for ${locale}! You may need to run pnpm i18n:compile first!`, 171 + ); 172 continue; 173 } 174
+9 -23
pnpm-lock.yaml
··· 458 expo-keep-awake: 459 specifier: ^14.0.0 460 version: 14.1.4(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.26.0)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(react-native-webview@13.15.0(react-native@0.79.3(@babel/core@7.26.0)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10))(react@19.0.0))(react-native@0.79.3(@babel/core@7.26.0)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10))(react@19.0.0)(utf-8-validate@5.0.10))(react@19.0.0) 461 - expo-screen-orientation: 462 - specifier: ^9.0.7 463 - version: 9.0.7(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.26.0)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(react-native-webview@13.15.0(react-native@0.79.3(@babel/core@7.26.0)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10))(react@19.0.0))(react-native@0.79.3(@babel/core@7.26.0)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10))(react@19.0.0)(utf-8-validate@5.0.10))(react-native@0.79.3(@babel/core@7.26.0)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10)) 464 - expo-sensors: 465 - specifier: ^15.0.7 466 - version: 15.0.7(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.26.0)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(react-native-webview@13.15.0(react-native@0.79.3(@babel/core@7.26.0)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10))(react@19.0.0))(react-native@0.79.3(@babel/core@7.26.0)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10))(react@19.0.0)(utf-8-validate@5.0.10))(react-native@0.79.3(@babel/core@7.26.0)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10)) 467 expo-sqlite: 468 specifier: ~15.2.12 469 version: 15.2.12(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.26.0)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(react-native-webview@13.15.0(react-native@0.79.3(@babel/core@7.26.0)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10))(react@19.0.0))(react-native@0.79.3(@babel/core@7.26.0)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10))(react@19.0.0)(utf-8-validate@5.0.10))(react-native@0.79.3(@babel/core@7.26.0)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10))(react@19.0.0) ··· 7002 7003 expo-screen-orientation@9.0.7: 7004 resolution: {integrity: sha512-UH/XlB9eMw+I2cyHSkXhAHRAPk83WyA3k5bst7GLu14wRuWiTch9fb6I7qEJK5CN6+XelcWxlBJymys6Fr/FKA==} 7005 - peerDependencies: 7006 - expo: '*' 7007 - react-native: '*' 7008 - 7009 - expo-sensors@15.0.7: 7010 - resolution: {integrity: sha512-TGUxRx/Ss7KGgfWo453YF64ENucw6oYryPiu/8I3ZZuf114xQPRxAbsZohPLaVUUGuaUyWbDsb0eRsmuKUzBnQ==} 7011 peerDependencies: 7012 expo: '*' 7013 react-native: '*' ··· 21662 react: 19.0.0 21663 rtl-detect: 1.1.2 21664 21665 expo-manifests@0.16.5(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.26.0)(@types/react@18.3.12)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(react-native-webview@13.15.0(react-native@0.79.3(@babel/core@7.26.0)(@types/react@18.3.12)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10))(react@19.0.0))(react-native@0.79.3(@babel/core@7.26.0)(@types/react@18.3.12)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10))(react@19.0.0)(utf-8-validate@5.0.10)): 21666 dependencies: 21667 '@expo/config': 11.0.10 ··· 21703 dependencies: 21704 expo: 53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.26.0)(@types/react@18.3.12)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(react-native-webview@13.15.0(react-native@0.79.3(@babel/core@7.26.0)(@types/react@18.3.12)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10))(react@19.0.0))(react-native@0.79.3(@babel/core@7.26.0)(@types/react@18.3.12)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10))(react@19.0.0)(utf-8-validate@5.0.10) 21705 react-native: 0.79.3(@babel/core@7.26.0)(@types/react@18.3.12)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10) 21706 - 21707 - expo-screen-orientation@9.0.7(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.26.0)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(react-native-webview@13.15.0(react-native@0.79.3(@babel/core@7.26.0)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10))(react@19.0.0))(react-native@0.79.3(@babel/core@7.26.0)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10))(react@19.0.0)(utf-8-validate@5.0.10))(react-native@0.79.3(@babel/core@7.26.0)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10)): 21708 - dependencies: 21709 - expo: 53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.26.0)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(react-native-webview@13.15.0(react-native@0.79.3(@babel/core@7.26.0)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10))(react@19.0.0))(react-native@0.79.3(@babel/core@7.26.0)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10))(react@19.0.0)(utf-8-validate@5.0.10) 21710 - react-native: 0.79.3(@babel/core@7.26.0)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10) 21711 - 21712 - expo-sensors@15.0.7(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.26.0)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(react-native-webview@13.15.0(react-native@0.79.3(@babel/core@7.26.0)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10))(react@19.0.0))(react-native@0.79.3(@babel/core@7.26.0)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10))(react@19.0.0)(utf-8-validate@5.0.10))(react-native@0.79.3(@babel/core@7.26.0)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10)): 21713 - dependencies: 21714 - expo: 53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.26.0)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(react-native-webview@13.15.0(react-native@0.79.3(@babel/core@7.26.0)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10))(react@19.0.0))(react-native@0.79.3(@babel/core@7.26.0)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10))(react@19.0.0)(utf-8-validate@5.0.10) 21715 - invariant: 2.2.4 21716 - react-native: 0.79.3(@babel/core@7.26.0)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10) 21717 21718 expo-splash-screen@0.30.9(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.26.0)(@types/react@18.3.12)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(react-native-webview@13.15.0(react-native@0.79.3(@babel/core@7.26.0)(@types/react@18.3.12)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10))(react@19.0.0))(react-native@0.79.3(@babel/core@7.26.0)(@types/react@18.3.12)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10))(react@19.0.0)(utf-8-validate@5.0.10)): 21719 dependencies:
··· 458 expo-keep-awake: 459 specifier: ^14.0.0 460 version: 14.1.4(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.26.0)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(react-native-webview@13.15.0(react-native@0.79.3(@babel/core@7.26.0)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10))(react@19.0.0))(react-native@0.79.3(@babel/core@7.26.0)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10))(react@19.0.0)(utf-8-validate@5.0.10))(react@19.0.0) 461 + expo-localization: 462 + specifier: '*' 463 + version: 17.0.7(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.26.0)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(react-native-webview@13.15.0(react-native@0.79.3(@babel/core@7.26.0)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10))(react@19.0.0))(react-native@0.79.3(@babel/core@7.26.0)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10))(react@19.0.0)(utf-8-validate@5.0.10))(react@19.0.0) 464 expo-sqlite: 465 specifier: ~15.2.12 466 version: 15.2.12(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.26.0)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(react-native-webview@13.15.0(react-native@0.79.3(@babel/core@7.26.0)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10))(react@19.0.0))(react-native@0.79.3(@babel/core@7.26.0)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10))(react@19.0.0)(utf-8-validate@5.0.10))(react-native@0.79.3(@babel/core@7.26.0)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10))(react@19.0.0) ··· 6999 7000 expo-screen-orientation@9.0.7: 7001 resolution: {integrity: sha512-UH/XlB9eMw+I2cyHSkXhAHRAPk83WyA3k5bst7GLu14wRuWiTch9fb6I7qEJK5CN6+XelcWxlBJymys6Fr/FKA==} 7002 peerDependencies: 7003 expo: '*' 7004 react-native: '*' ··· 21653 react: 19.0.0 21654 rtl-detect: 1.1.2 21655 21656 + expo-localization@17.0.7(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.26.0)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(react-native-webview@13.15.0(react-native@0.79.3(@babel/core@7.26.0)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10))(react@19.0.0))(react-native@0.79.3(@babel/core@7.26.0)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10))(react@19.0.0)(utf-8-validate@5.0.10))(react@19.0.0): 21657 + dependencies: 21658 + expo: 53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.26.0)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(react-native-webview@13.15.0(react-native@0.79.3(@babel/core@7.26.0)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10))(react@19.0.0))(react-native@0.79.3(@babel/core@7.26.0)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10))(react@19.0.0)(utf-8-validate@5.0.10) 21659 + react: 19.0.0 21660 + rtl-detect: 1.1.2 21661 + 21662 expo-manifests@0.16.5(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.26.0)(@types/react@18.3.12)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(react-native-webview@13.15.0(react-native@0.79.3(@babel/core@7.26.0)(@types/react@18.3.12)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10))(react@19.0.0))(react-native@0.79.3(@babel/core@7.26.0)(@types/react@18.3.12)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10))(react@19.0.0)(utf-8-validate@5.0.10)): 21663 dependencies: 21664 '@expo/config': 11.0.10 ··· 21700 dependencies: 21701 expo: 53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.26.0)(@types/react@18.3.12)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(react-native-webview@13.15.0(react-native@0.79.3(@babel/core@7.26.0)(@types/react@18.3.12)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10))(react@19.0.0))(react-native@0.79.3(@babel/core@7.26.0)(@types/react@18.3.12)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10))(react@19.0.0)(utf-8-validate@5.0.10) 21702 react-native: 0.79.3(@babel/core@7.26.0)(@types/react@18.3.12)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10) 21703 21704 expo-splash-screen@0.30.9(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.26.0)(@types/react@18.3.12)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(react-native-webview@13.15.0(react-native@0.79.3(@babel/core@7.26.0)(@types/react@18.3.12)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10))(react@19.0.0))(react-native@0.79.3(@babel/core@7.26.0)(@types/react@18.3.12)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10))(react@19.0.0)(utf-8-validate@5.0.10)): 21705 dependencies: