This commit is contained in:
EthanShoeDev
2025-09-13 00:03:23 -04:00
parent c0d70ad99c
commit 8cb7603b81
5 changed files with 310 additions and 239 deletions

View File

@@ -60,10 +60,18 @@ const config: ExpoConfig = {
// https://github.com/dylankenneally/react-native-ssh-sftp/issues/20#issuecomment-3286693445 // https://github.com/dylankenneally/react-native-ssh-sftp/issues/20#issuecomment-3286693445
// ../../docs/ios-sim-not-working.md (Update 1) // ../../docs/ios-sim-not-working.md (Update 1)
extraPods: [ extraPods: [
{ name: 'CSSH-Binary', podspec: 'https://gist.githubusercontent.com/EthanShoeDev/1ab212949007d7aeabfeb199b7b9e951/raw/8602ec55efdf8c620dbbae93cd54023e2a36a8b9/CSSH-Binary.podspec' }, {
{ name: 'NMSSH', git: 'https://github.com/EthanShoeDev/NMSSH.git', branch: 'master' }, name: 'CSSH-Binary',
podspec:
'https://gist.githubusercontent.com/EthanShoeDev/1ab212949007d7aeabfeb199b7b9e951/raw/8602ec55efdf8c620dbbae93cd54023e2a36a8b9/CSSH-Binary.podspec',
},
{
name: 'NMSSH',
git: 'https://github.com/EthanShoeDev/NMSSH.git',
branch: 'master',
},
], ],
}, },
}, },
], ],
], ],

View File

@@ -34,21 +34,21 @@
"@react-navigation/native": "^7.1.8", "@react-navigation/native": "^7.1.8",
"@tanstack/react-form": "^1.19.5", "@tanstack/react-form": "^1.19.5",
"@tanstack/react-query": "^5.87.1", "@tanstack/react-query": "^5.87.1",
"expo": "54.0.3", "expo": "54.0.6",
"expo-build-properties": "~1.0.8", "expo-build-properties": "~1.0.8",
"expo-clipboard": "~8.0.7", "expo-clipboard": "~8.0.7",
"expo-constants": "~18.0.8", "expo-constants": "~18.0.8",
"expo-crypto": "~15.0.7", "expo-crypto": "~15.0.7",
"expo-dev-client": "~6.0.12", "expo-dev-client": "~6.0.12",
"expo-document-picker": "~14.0.7", "expo-document-picker": "~14.0.7",
"expo-file-system": "~19.0.13", "expo-file-system": "~19.0.14",
"expo-font": "~14.0.8", "expo-font": "~14.0.8",
"expo-haptics": "~15.0.7", "expo-haptics": "~15.0.7",
"expo-image": "~3.0.8", "expo-image": "~3.0.8",
"expo-linking": "~8.0.8", "expo-linking": "~8.0.8",
"expo-router": "6.0.1", "expo-router": "6.0.3",
"expo-secure-store": "~15.0.7", "expo-secure-store": "~15.0.7",
"expo-splash-screen": "~31.0.9", "expo-splash-screen": "~31.0.10",
"expo-status-bar": "~3.0.8", "expo-status-bar": "~3.0.8",
"expo-symbols": "~1.0.7", "expo-symbols": "~1.0.7",
"expo-system-ui": "~6.0.7", "expo-system-ui": "~6.0.7",

View File

@@ -1,15 +1,24 @@
# React Native SSH — iOS simulator limitations & paths forward # React Native SSH — iOS simulator limitations & paths forward
*Last updated: 2025-09-12* _Last updated: 2025-09-12_
## TL;DR ## TL;DR
* Our current stack (`react-native-ssh-sftp``NMSSH (aanah0 fork)` → prebuilt OpenSSL/libssh2) **fails on the iOS Simulator** because the vendored native libraries are compiled for **iOS device** only (platform: `iphoneos`), not **iOS Simulator** (platform: `iphonesimulator`). - Our current stack (`react-native-ssh-sftp``NMSSH (aanah0 fork)` → prebuilt
* The proper modern fix is to use **XCFrameworks** that include **both** device and simulator slices, and have NMSSH link against those instead of raw static `.a` libraries. OpenSSL/libssh2) **fails on the iOS Simulator** because the vendored native
* We have two main paths: libraries are compiled for **iOS device** only (platform: `iphoneos`), not
**iOS Simulator** (platform: `iphonesimulator`).
1. Keep using the existing RN package, but swap NMSSHs underlying crypto/SSH libs to an **XCFramework** (e.g., from `DimaRU/Libssh2Prebuild`), via a tiny CocoaPods change. - The proper modern fix is to use **XCFrameworks** that include **both** device
2. Build our **own RN native module** (TurboModule/JSI) that links **libssh2** and **OpenSSL** directly (using or adapting the Libssh2Prebuild scripts), fixing iOS Simulator support and also addressing Android reliability issues (like double “disconnect” callbacks). and simulator slices, and have NMSSH link against those instead of raw static
`.a` libraries.
- We have two main paths:
1. Keep using the existing RN package, but swap NMSSHs underlying crypto/SSH
libs to an **XCFramework** (e.g., from `DimaRU/Libssh2Prebuild`), via a
tiny CocoaPods change.
2. Build our **own RN native module** (TurboModule/JSI) that links **libssh2**
and **OpenSSL** directly (using or adapting the Libssh2Prebuild scripts),
fixing iOS Simulator support and also addressing Android reliability issues
(like double “disconnect” callbacks).
--- ---
@@ -17,42 +26,54 @@
### Stack ### Stack
* App → `react-native-ssh-sftp` - App → `react-native-ssh-sftp`
* iOS native → `NMSSH` (via the `aanah0/NMSSH` fork for a newer libssh2 baseline) - iOS native → `NMSSH` (via the `aanah0/NMSSH` fork for a newer libssh2
* `NMSSH` bundles **precompiled OpenSSL + libssh2** as static libraries. baseline)
- `NMSSH` bundles **precompiled OpenSSL + libssh2** as static libraries.
### Why iOS Simulator builds fail ### Why iOS Simulator builds fail
* Xcode treats **device** and **simulator** as **different platforms**. Since Apple Silicon, both may be `arm64`, but they are **not interchangeable**: - Xcode treats **device** and **simulator** as **different platforms**. Since
Apple Silicon, both may be `arm64`, but they are **not interchangeable**:
- Device slice: `ios-arm64` (platform: `iphoneos`)
- Simulator slices: `ios-arm64` and/or `ios-x86_64` (platform:
`iphonesimulator`)
* Device slice: `ios-arm64` (platform: `iphoneos`) - NMSSHs vendored libs are device-only (`iphoneos`). When the Simulator build
* Simulator slices: `ios-arm64` and/or `ios-x86_64` (platform: `iphonesimulator`) links those, the linker throws:
* NMSSHs vendored libs are device-only (`iphoneos`). When the Simulator build links those, the linker throws:
``` ```
ld: building for 'iOS-simulator', but linking in object file .../libcrypto.a[arm64] built for 'iOS' ld: building for 'iOS-simulator', but linking in object file .../libcrypto.a[arm64] built for 'iOS'
``` ```
* **XCFrameworks** solve this: they are a bundle containing the correct slices for both platforms. Xcode picks the proper slice automatically.
> Temporary hack (not recommended): exclude `arm64` for the simulator (`EXCLUDED_ARCHS[sdk=iphonesimulator*]=arm64`) to force an x86\_64 sim under Rosetta. This “works” but loses native-sim performance and is brittle. - **XCFrameworks** solve this: they are a bundle containing the correct slices
for both platforms. Xcode picks the proper slice automatically.
> Temporary hack (not recommended): exclude `arm64` for the simulator
> (`EXCLUDED_ARCHS[sdk=iphonesimulator*]=arm64`) to force an x86_64 sim under
> Rosetta. This “works” but loses native-sim performance and is brittle.
--- ---
## Path 1 — Keep current RN package; replace NMSSHs vendored libs with an XCFramework ## Path 1 — Keep current RN package; replace NMSSHs vendored libs with an XCFramework
**Goal:** Do *not* change `react-native-ssh-sftp` or the NMSSH **API**. Only change how NMSSH links to OpenSSL/libssh2. **Goal:** Do _not_ change `react-native-ssh-sftp` or the NMSSH **API**. Only
change how NMSSH links to OpenSSL/libssh2.
### What well use ### What well use
* **`DimaRU/Libssh2Prebuild`**: ships a ready-made **XCFramework** (“CSSH”) that bundles **libssh2 + OpenSSL** with both **device** and **simulator** slices. - **`DimaRU/Libssh2Prebuild`**: ships a ready-made **XCFramework** (“CSSH”) that
* CocoaPods can consume XCFrameworks via a **binary pod** (`vendored_frameworks`), but Libssh2Prebuild is published for **SwiftPM**. So we add a tiny **`CSSH-Binary` podspec** that points to its zipped XCFramework. bundles **libssh2 + OpenSSL** with both **device** and **simulator** slices.
- CocoaPods can consume XCFrameworks via a **binary pod**
(`vendored_frameworks`), but Libssh2Prebuild is published for **SwiftPM**. So
we add a tiny **`CSSH-Binary` podspec** that points to its zipped XCFramework.
### Minimal changes ### Minimal changes
1. **Fork NMSSH** (from `aanah0/NMSSH`) and edit **`NMSSH.podspec`** 1. **Fork NMSSH** (from `aanah0/NMSSH`) and edit **`NMSSH.podspec`**
- **Remove** the vendored static libs (the `.a` files).
* **Remove** the vendored static libs (the `.a` files). - **Add** a dependency on `CSSH-Binary` (our binary pod that vends
* **Add** a dependency on `CSSH-Binary` (our binary pod that vends `CSSH.xcframework`). `CSSH.xcframework`).
**Podspec diff (conceptual):** **Podspec diff (conceptual):**
@@ -89,30 +110,40 @@
end end
``` ```
* You can host the zip yourself if you want deterministic supply (recommended for CI). - You can host the zip yourself if you want deterministic supply (recommended
* Ensure license attributions (OpenSSL 3.x: Apache-2.0; libssh2: BSD-3-Clause) are included in our OSS notices. for CI).
- Ensure license attributions (OpenSSL 3.x: Apache-2.0; libssh2:
BSD-3-Clause) are included in our OSS notices.
3. **Wire via Expo** (`expo-build-properties`) in `app.config.ts` 3. **Wire via Expo** (`expo-build-properties`) in `app.config.ts`
```ts ```ts
[ [
'expo-build-properties', 'expo-build-properties',
{ {
ios: { ios: {
extraPods: [ extraPods: [
// Binary pod that vends the XCFramework // Binary pod that vends the XCFramework
{ name: 'CSSH-Binary', podspec: 'https://raw.githubusercontent.com/your-org/cssh-binary/main/CSSH-Binary.podspec' }, {
// Our NMSSH fork that depends on CSSH-Binary name: 'CSSH-Binary',
{ name: 'NMSSH', git: 'https://github.com/your-org/NMSSH.git', branch: 'cssh-xcframework' }, podspec:
], 'https://raw.githubusercontent.com/your-org/cssh-binary/main/CSSH-Binary.podspec',
}, },
android: { // Our NMSSH fork that depends on CSSH-Binary
packagingOptions: { {
pickFirst: ['META-INF/versions/9/OSGI-INF/MANIFEST.MF'], name: 'NMSSH',
}, git: 'https://github.com/your-org/NMSSH.git',
}, branch: 'cssh-xcframework',
}, },
] ],
},
android: {
packagingOptions: {
pickFirst: ['META-INF/versions/9/OSGI-INF/MANIFEST.MF'],
},
},
},
];
``` ```
4. **Rebuild** 4. **Rebuild**
@@ -125,88 +156,109 @@
**Pros** **Pros**
* Small surface area; we keep the RN package API intact. - Small surface area; we keep the RN package API intact.
* Correct, future-proof device/simulator packaging via XCFrameworks. - Correct, future-proof device/simulator packaging via XCFrameworks.
* Easy to maintain once the podspecs are set. - Easy to maintain once the podspecs are set.
**Cons/Risks** **Cons/Risks**
* We maintain a **fork of NMSSH** (podspec only). - We maintain a **fork of NMSSH** (podspec only).
* Potential conflicts with tools like **Flipper** if they also touch OpenSSL (rare; we can disable Flipper if needed). - Potential conflicts with tools like **Flipper** if they also touch OpenSSL
* We rely on Libssh2Prebuild versions/tags (or build our own artifacts using their scripts). (rare; we can disable Flipper if needed).
- We rely on Libssh2Prebuild versions/tags (or build our own artifacts using
their scripts).
--- ---
## Path 2 — Build our own RN module (TurboModule/JSI) with libssh2/OpenSSL ## Path 2 — Build our own RN module (TurboModule/JSI) with libssh2/OpenSSL
**Goal:** Replace `react-native-ssh-sftp` + NMSSH with a **modern RN Native Module** that links libssh2 directly and ships correct device/simulator binaries out of the box. **Goal:** Replace `react-native-ssh-sftp` + NMSSH with a **modern RN Native
Module** that links libssh2 directly and ships correct device/simulator binaries
out of the box.
### Why consider this ### Why consider this
* Full control over the native surface (events, error handling, cancellation, reconnects). - Full control over the native surface (events, error handling, cancellation,
* Fix Android reliability issues weve observed (e.g., “disconnect” callback firing multiple times, causing dev crashes). reconnects).
* Avoid legacy Objective-C wrapper constraints; use **TurboModules/JSI**. - Fix Android reliability issues weve observed (e.g., “disconnect” callback
firing multiple times, causing dev crashes).
- Avoid legacy Objective-C wrapper constraints; use **TurboModules/JSI**.
### High-level plan ### High-level plan
**iOS** **iOS**
* Use (or adapt) **Libssh2Prebuild build scripts** to produce our own **`libssh2.xcframework`** and **`OpenSSL.xcframework`** (or one combined framework). - Use (or adapt) **Libssh2Prebuild build scripts** to produce our own
* Publish them as a **binary CocoaPod** (like `CSSH-Binary`) *or* vendor the XCFrameworks in our module pod. **`libssh2.xcframework`** and **`OpenSSL.xcframework`** (or one combined
* Write a thin Obj-C++/C++ wrapper exposing the SSH API needed by JS (connect/auth/exec/sftp/streaming). framework).
* Export via **TurboModule** (codegen) or **JSI** (C++), and provide a typed TS API in the RN package. - Publish them as a **binary CocoaPod** (like `CSSH-Binary`) _or_ vendor the
XCFrameworks in our module pod.
- Write a thin Obj-C++/C++ wrapper exposing the SSH API needed by JS
(connect/auth/exec/sftp/streaming).
- Export via **TurboModule** (codegen) or **JSI** (C++), and provide a typed TS
API in the RN package.
**Android** **Android**
* Build **libssh2** against **OpenSSL** (or MbedTLS) with the **NDK**. - Build **libssh2** against **OpenSSL** (or MbedTLS) with the **NDK**.
* Package `.so` libs per ABI (`arm64-v8a`, `x86_64`, etc.). - Package `.so` libs per ABI (`arm64-v8a`, `x86_64`, etc.).
* Implement JNI layer with strict **once-only** callbacks (disconnect must be idempotent), and make the public JS API promise/observable based. - Implement JNI layer with strict **once-only** callbacks (disconnect must be
* Add tests that assert no multiple “disconnect” emissions. idempotent), and make the public JS API promise/observable based.
- Add tests that assert no multiple “disconnect” emissions.
**Common** **Common**
* Define a **stable JS API**: - Define a **stable JS API**:
- Connection lifecycle (`connect`, `ready`, `disconnect`),
- Auth variants (password, key, agent if supported),
- Exec/PTY streaming,
- SFTP (get/put/mkdir/list/stat),
- Structured errors (error codes, host key checks, timeouts),
- Events (`onData`, `onExit`, `onError`, `onDisconnect`).
* Connection lifecycle (`connect`, `ready`, `disconnect`), - **Testing/CI**: Simulated hosts (Docker) for integration tests; E2E with detox
* Auth variants (password, key, agent if supported), where feasible; CI matrix includes iOS Simulator and Android emulators.
* Exec/PTY streaming,
* SFTP (get/put/mkdir/list/stat),
* Structured errors (error codes, host key checks, timeouts),
* Events (`onData`, `onExit`, `onError`, `onDisconnect`).
* **Testing/CI**: Simulated hosts (Docker) for integration tests; E2E with detox where feasible; CI matrix includes iOS Simulator and Android emulators.
**Pros** **Pros**
* Clean slate, better DX, fewer legacy constraints. - Clean slate, better DX, fewer legacy constraints.
* We can ensure **simulator** support is first-class. - We can ensure **simulator** support is first-class.
* Fixes Android issues definitively. - Fixes Android issues definitively.
**Cons** **Cons**
* More initial engineering time. - More initial engineering time.
* We own native maintenance across platforms. - We own native maintenance across platforms.
--- ---
## Known Android issue in current package ## Known Android issue in current package
Weve observed that **disconnect** can trigger the callback **more than once**, which crashes the app in dev (double resolve/reject or repeated event emission). If we keep the current package for now: Weve observed that **disconnect** can trigger the callback **more than once**,
which crashes the app in dev (double resolve/reject or repeated event emission).
If we keep the current package for now:
* Add a JS-side **guard** to make `disconnect()` idempotent (ignore subsequent calls/notifications after the first). - Add a JS-side **guard** to make `disconnect()` idempotent (ignore subsequent
* If we fork, fix the native layer so it emits exactly once and cleans up listeners predictably. calls/notifications after the first).
- If we fork, fix the native layer so it emits exactly once and cleans up
listeners predictably.
(If we pursue **Path 2**, well design the native layer so all callbacks/promises are strictly single-shot and lifecycle-scoped.) (If we pursue **Path 2**, well design the native layer so all
callbacks/promises are strictly single-shot and lifecycle-scoped.)
--- ---
## Recommendation ## Recommendation
* **Short term:** Implement **Path 1**. Its the smallest change to unblock Simulator builds: - **Short term:** Implement **Path 1**. Its the smallest change to unblock
Simulator builds:
- Add a `CSSH-Binary` binary pod (vend `CSSH.xcframework`).
- Fork NMSSH podspec to depend on it.
- Wire both via `expo-build-properties` `ios.extraPods`.
* Add a `CSSH-Binary` binary pod (vend `CSSH.xcframework`). - **Medium term:** Plan **Path 2** to remove legacy NMSSH constraints and
* Fork NMSSH podspec to depend on it. resolve Android issues thoroughly using a Nitro/TurboModule with direct
* Wire both via `expo-build-properties` `ios.extraPods`. libssh2 bindings.
* **Medium term:** Plan **Path 2** to remove legacy NMSSH constraints and resolve Android issues thoroughly using a Nitro/TurboModule with direct libssh2 bindings.
--- ---
@@ -245,37 +297,46 @@ end
```ts ```ts
plugins: [ plugins: [
// ... // ...
[ [
'expo-build-properties', 'expo-build-properties',
{ {
ios: { ios: {
extraPods: [ extraPods: [
{ name: 'CSSH-Binary', podspec: 'https://raw.githubusercontent.com/your-org/cssh-binary/main/CSSH-Binary.podspec' }, {
{ name: 'NMSSH', git: 'https://github.com/your-org/NMSSH.git', branch: 'cssh-xcframework' }, name: 'CSSH-Binary',
], podspec:
}, 'https://raw.githubusercontent.com/your-org/cssh-binary/main/CSSH-Binary.podspec',
android: { },
packagingOptions: { {
pickFirst: ['META-INF/versions/9/OSGI-INF/MANIFEST.MF'], name: 'NMSSH',
}, git: 'https://github.com/your-org/NMSSH.git',
}, branch: 'cssh-xcframework',
}, },
], ],
] },
android: {
packagingOptions: {
pickFirst: ['META-INF/versions/9/OSGI-INF/MANIFEST.MF'],
},
},
},
],
];
``` ```
### D. Build/Release notes ### D. Build/Release notes
* **Rebuild steps** - **Rebuild steps**
```bash ```bash
npx expo prebuild --platform ios --clean npx expo prebuild --platform ios --clean
npx pod-install npx pod-install
npx expo run:ios npx expo run:ios
``` ```
* **Licenses**: Include OpenSSL and libssh2 license texts in our OSS notice.
* **Flipper**: If linking conflicts appear, disable Flipper in iOS debug builds. - **Licenses**: Include OpenSSL and libssh2 license texts in our OSS notice.
- **Flipper**: If linking conflicts appear, disable Flipper in iOS debug builds.
### E. Temporary simulator workaround (not recommended long-term) ### E. Temporary simulator workaround (not recommended long-term)
@@ -285,16 +346,17 @@ In both the app target and Pods project:
EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64 EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64
``` ```
This forces an x86\_64 Simulator under Rosetta, avoiding the immediate link error but losing native-sim performance. This forces an x86_64 Simulator under Rosetta, avoiding the immediate link error
but losing native-sim performance.
--- ---
**Decision log** **Decision log**
* ✅ Adopt Path 1 now (XCFramework via CSSH + NMSSH podspec tweak). - ✅ Adopt Path 1 now (XCFramework via CSSH + NMSSH podspec tweak).
* 🕒 Plan Path 2 (custom RN module) to address Android bugs and own the full stack. - 🕒 Plan Path 2 (custom RN module) to address Android bugs and own the full
stack.
# Updates # Updates
- 1. Implemented option 1. Seems to be working in simulator - 1. Implemented option 1. Seems to be working in simulator

View File

@@ -22,7 +22,7 @@
#### Styling and components #### Styling and components
- https://www.unistyl.es/ - https://www.unistyl.es/
- https://reactnativereusables.com/ - https://reactnativereusables.com/
- https://github.com/Shopify/restyle - https://github.com/Shopify/restyle
- https://docs.expo.dev/versions/latest/sdk/segmented-control/ - https://docs.expo.dev/versions/latest/sdk/segmented-control/
- https://docs.expo.dev/versions/latest/sdk/ui/ - https://docs.expo.dev/versions/latest/sdk/ui/
@@ -34,4 +34,4 @@
- https://docs.expo.dev/versions/latest/sdk/webview/ - https://docs.expo.dev/versions/latest/sdk/webview/
- https://docs.expo.dev/versions/latest/sdk/gl-view/ - https://docs.expo.dev/versions/latest/sdk/gl-view/
- https://code.visualstudio.com/docs/terminal/shell-integration - https://code.visualstudio.com/docs/terminal/shell-integration
- https://github.com/termux/termux-app/wiki/Termux-Libraries/bd010af15b8434ba136c32fa70a50c504ea04363 - https://github.com/termux/termux-app/wiki/Termux-Libraries/bd010af15b8434ba136c32fa70a50c504ea04363

247
pnpm-lock.yaml generated
View File

@@ -40,7 +40,7 @@ importers:
version: 1.5.20(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0)) version: 1.5.20(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))
'@expo/vector-icons': '@expo/vector-icons':
specifier: ^15.0.2 specifier: ^15.0.2
version: 15.0.2(expo-font@14.0.8(expo@54.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0))(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0) version: 15.0.2(expo-font@14.0.8(expo@54.0.6)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0))(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
'@fressh/assets': '@fressh/assets':
specifier: workspace:* specifier: workspace:*
version: link:../../packages/assets version: link:../../packages/assets
@@ -66,62 +66,62 @@ importers:
specifier: ^5.87.1 specifier: ^5.87.1
version: 5.87.1(react@19.1.0) version: 5.87.1(react@19.1.0)
expo: expo:
specifier: 54.0.3 specifier: 54.0.6
version: 54.0.3(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.1)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0) version: 54.0.6(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
expo-build-properties: expo-build-properties:
specifier: ~1.0.8 specifier: ~1.0.8
version: 1.0.8(expo@54.0.3) version: 1.0.8(expo@54.0.6)
expo-clipboard: expo-clipboard:
specifier: ~8.0.7 specifier: ~8.0.7
version: 8.0.7(expo@54.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0) version: 8.0.7(expo@54.0.6)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
expo-constants: expo-constants:
specifier: ~18.0.8 specifier: ~18.0.8
version: 18.0.8(expo@54.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0)) version: 18.0.8(expo@54.0.6)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))
expo-crypto: expo-crypto:
specifier: ~15.0.7 specifier: ~15.0.7
version: 15.0.7(expo@54.0.3) version: 15.0.7(expo@54.0.6)
expo-dev-client: expo-dev-client:
specifier: ~6.0.12 specifier: ~6.0.12
version: 6.0.12(expo@54.0.3) version: 6.0.12(expo@54.0.6)
expo-document-picker: expo-document-picker:
specifier: ~14.0.7 specifier: ~14.0.7
version: 14.0.7(expo@54.0.3) version: 14.0.7(expo@54.0.6)
expo-file-system: expo-file-system:
specifier: ~19.0.13 specifier: ~19.0.14
version: 19.0.13(expo@54.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0)) version: 19.0.14(expo@54.0.6)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))
expo-font: expo-font:
specifier: ~14.0.8 specifier: ~14.0.8
version: 14.0.8(expo@54.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0) version: 14.0.8(expo@54.0.6)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
expo-haptics: expo-haptics:
specifier: ~15.0.7 specifier: ~15.0.7
version: 15.0.7(expo@54.0.3) version: 15.0.7(expo@54.0.6)
expo-image: expo-image:
specifier: ~3.0.8 specifier: ~3.0.8
version: 3.0.8(expo@54.0.3)(react-native-web@0.21.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0) version: 3.0.8(expo@54.0.6)(react-native-web@0.21.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
expo-linking: expo-linking:
specifier: ~8.0.8 specifier: ~8.0.8
version: 8.0.8(expo@54.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0) version: 8.0.8(expo@54.0.6)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
expo-router: expo-router:
specifier: 6.0.1 specifier: 6.0.3
version: 6.0.1(@types/react@19.1.12)(expo-constants@18.0.8)(expo-linking@8.0.8)(expo@54.0.3)(react-dom@19.1.0(react@19.1.0))(react-native-gesture-handler@2.28.0(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0))(react-native-reanimated@4.1.0(@babel/core@7.28.3)(react-native-worklets@0.5.1(@babel/core@7.28.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0))(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.1(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0))(react-native-screens@4.16.0(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0))(react-native-web@0.21.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0) version: 6.0.3(@expo/metro-runtime@6.1.1)(@types/react@19.1.12)(expo-constants@18.0.8)(expo-linking@8.0.8)(expo@54.0.6)(react-dom@19.1.0(react@19.1.0))(react-native-gesture-handler@2.28.0(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0))(react-native-reanimated@4.1.0(@babel/core@7.28.3)(react-native-worklets@0.5.1(@babel/core@7.28.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0))(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.1(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0))(react-native-screens@4.16.0(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0))(react-native-web@0.21.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
expo-secure-store: expo-secure-store:
specifier: ~15.0.7 specifier: ~15.0.7
version: 15.0.7(expo@54.0.3) version: 15.0.7(expo@54.0.6)
expo-splash-screen: expo-splash-screen:
specifier: ~31.0.9 specifier: ~31.0.10
version: 31.0.9(expo@54.0.3) version: 31.0.10(expo@54.0.6)
expo-status-bar: expo-status-bar:
specifier: ~3.0.8 specifier: ~3.0.8
version: 3.0.8(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0) version: 3.0.8(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
expo-symbols: expo-symbols:
specifier: ~1.0.7 specifier: ~1.0.7
version: 1.0.7(expo@54.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0)) version: 1.0.7(expo@54.0.6)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))
expo-system-ui: expo-system-ui:
specifier: ~6.0.7 specifier: ~6.0.7
version: 6.0.7(expo@54.0.3)(react-native-web@0.21.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0)) version: 6.0.7(expo@54.0.6)(react-native-web@0.21.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))
expo-web-browser: expo-web-browser:
specifier: ~15.0.7 specifier: ~15.0.7
version: 15.0.7(expo@54.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0)) version: 15.0.7(expo@54.0.6)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))
react: react:
specifier: 19.1.0 specifier: 19.1.0
version: 19.1.0 version: 19.1.0
@@ -1008,8 +1008,8 @@ packages:
resolution: {integrity: sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w==} resolution: {integrity: sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@expo/cli@54.0.2': '@expo/cli@54.0.4':
resolution: {integrity: sha512-WaMwVUC1twawsicKS/jabrc9b56EYLWDa1JvF1oopEE8H15+KLsgfjqN9IWtIR2wu5d6zhOT3ikTLc2cN4S4/Q==} resolution: {integrity: sha512-n3UukNRL8eG1XyN/sI6UCxvnJqhHxmtgReP2hBJnN9E1R+nPWdYxysV6hw1I/FghL0O/eZou2WTY1E8lGQ3Frw==}
hasBin: true hasBin: true
peerDependencies: peerDependencies:
expo: '*' expo: '*'
@@ -1107,8 +1107,8 @@ packages:
'@expo/plist@0.4.7': '@expo/plist@0.4.7':
resolution: {integrity: sha512-dGxqHPvCZKeRKDU1sJZMmuyVtcASuSYh1LPFVaM1DuffqPL36n6FMEL0iUqq2Tx3xhWk8wCnWl34IKplUjJDdA==} resolution: {integrity: sha512-dGxqHPvCZKeRKDU1sJZMmuyVtcASuSYh1LPFVaM1DuffqPL36n6FMEL0iUqq2Tx3xhWk8wCnWl34IKplUjJDdA==}
'@expo/prebuild-config@54.0.1': '@expo/prebuild-config@54.0.3':
resolution: {integrity: sha512-f2FFDQlIh83rc89/AOdRBtO9nwkE4BCSji0oPBSq0YmAUSXZE7q/cYKABkArZNjuuwjb6jRjD8JfSMcwV7ybTA==} resolution: {integrity: sha512-okf6Umaz1VniKmm+pA37QHBzB9XlRHvO1Qh3VbUezy07LTkz87kXUW7uLMmrA319WLavWSVORTXeR0jBRihObA==}
peerDependencies: peerDependencies:
expo: '*' expo: '*'
@@ -3640,8 +3640,8 @@ packages:
peerDependencies: peerDependencies:
expo: '*' expo: '*'
expo-file-system@19.0.13: expo-file-system@19.0.14:
resolution: {integrity: sha512-ACDxp9/HA30XxqLEX39dTNvjf/9R64woMoeySu02xoclGl98VsHTQhKk0GF4BxjD0KwA9jamS/scTaC9P0BWLA==} resolution: {integrity: sha512-0CA7O5IYhab11TlxQlJAx0Xm9pdkk/zEHNiW+Hh/T4atWi9U/J38CIp7iNYSrBvy9dC3rJbze5D1ANcKKr4mSQ==}
peerDependencies: peerDependencies:
expo: '*' expo: '*'
react-native: '*' react-native: '*'
@@ -3699,9 +3699,10 @@ packages:
react: '*' react: '*'
react-native: '*' react-native: '*'
expo-router@6.0.1: expo-router@6.0.3:
resolution: {integrity: sha512-5wXkWyNMqUbjCWH0PRkOM0P6UsgLVdgchDkiLz5FY7HfU00ToBcxij965bqtlaATBgoaIo4DuLu6EgxewrKJ8Q==} resolution: {integrity: sha512-TNBHE7qMutUB6GlXciNRZYH1H6bxXR6knzsEHQoBypSvCHdFYpq/EvUtc5BG+umHjTJaJq3WVzDFJ8Xl/WP0+w==}
peerDependencies: peerDependencies:
'@expo/metro-runtime': ^6.1.2
'@react-navigation/drawer': ^7.5.0 '@react-navigation/drawer': ^7.5.0
'@testing-library/react-native': '>= 12.0.0' '@testing-library/react-native': '>= 12.0.0'
expo: '*' expo: '*'
@@ -3737,8 +3738,8 @@ packages:
peerDependencies: peerDependencies:
expo: '*' expo: '*'
expo-splash-screen@31.0.9: expo-splash-screen@31.0.10:
resolution: {integrity: sha512-pYLWFrEHn/c8e1a8oDzrlcyYI08oG4i37KA+VN5wwoC1DsQ0rm3kyAk0bmoydV1mBzNfXQFYbA1BGftXJl1f0w==} resolution: {integrity: sha512-i6g9IK798mae4yvflstQ1HkgahIJ6exzTCTw4vEdxV0J2SwiW3Tj+CwRjf0te7Zsb+7dDQhBTmGZwdv00VER2A==}
peerDependencies: peerDependencies:
expo: '*' expo: '*'
@@ -3775,8 +3776,8 @@ packages:
expo: '*' expo: '*'
react-native: '*' react-native: '*'
expo@54.0.3: expo@54.0.6:
resolution: {integrity: sha512-hh9PgItWlG3IjjkzkavxVGqsZ8fdWsDw2CLGyOTDx2SDsHbFpYZwL0HVrmMSv8mCI2qXkwutt5fyPtAPHd/VhQ==} resolution: {integrity: sha512-fzOrhdMNJiNlQyj7Gj1GvEzwIx1XaOLWRVOoTtaOkWckYJzgsTnnUQhFFGEfb8Vv0tZGeWzx6CFXqjcraxYT7g==}
hasBin: true hasBin: true
peerDependencies: peerDependencies:
'@expo/dom-webview': '*' '@expo/dom-webview': '*'
@@ -7812,7 +7813,7 @@ snapshots:
'@eslint/core': 0.15.2 '@eslint/core': 0.15.2
levn: 0.4.1 levn: 0.4.1
'@expo/cli@54.0.2(expo-router@6.0.1)(expo@54.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))': '@expo/cli@54.0.4(expo-router@6.0.3)(expo@54.0.6)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))':
dependencies: dependencies:
'@0no-co/graphql.web': 1.2.0 '@0no-co/graphql.web': 1.2.0
'@expo/code-signing-certificates': 0.0.5 '@expo/code-signing-certificates': 0.0.5
@@ -7823,11 +7824,11 @@ snapshots:
'@expo/image-utils': 0.8.7 '@expo/image-utils': 0.8.7
'@expo/json-file': 10.0.7 '@expo/json-file': 10.0.7
'@expo/metro': 0.1.1 '@expo/metro': 0.1.1
'@expo/metro-config': 54.0.3(expo@54.0.3) '@expo/metro-config': 54.0.3(expo@54.0.6)
'@expo/osascript': 2.3.7 '@expo/osascript': 2.3.7
'@expo/package-manager': 1.9.7 '@expo/package-manager': 1.9.7
'@expo/plist': 0.4.7 '@expo/plist': 0.4.7
'@expo/prebuild-config': 54.0.1(expo@54.0.3) '@expo/prebuild-config': 54.0.3(expo@54.0.6)
'@expo/schema-utils': 0.1.7 '@expo/schema-utils': 0.1.7
'@expo/server': 0.7.4 '@expo/server': 0.7.4
'@expo/spawn-async': 1.7.2 '@expo/spawn-async': 1.7.2
@@ -7847,7 +7848,7 @@ snapshots:
connect: 3.7.0 connect: 3.7.0
debug: 4.4.1 debug: 4.4.1
env-editor: 0.4.2 env-editor: 0.4.2
expo: 54.0.3(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.1)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0) expo: 54.0.6(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
freeport-async: 2.0.0 freeport-async: 2.0.0
getenv: 2.0.0 getenv: 2.0.0
glob: 10.4.5 glob: 10.4.5
@@ -7879,7 +7880,7 @@ snapshots:
wrap-ansi: 7.0.0 wrap-ansi: 7.0.0
ws: 8.18.3 ws: 8.18.3
optionalDependencies: optionalDependencies:
expo-router: 6.0.1(@types/react@19.1.12)(expo-constants@18.0.8)(expo-linking@8.0.8)(expo@54.0.3)(react-dom@19.1.0(react@19.1.0))(react-native-gesture-handler@2.28.0(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0))(react-native-reanimated@4.1.0(@babel/core@7.28.3)(react-native-worklets@0.5.1(@babel/core@7.28.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0))(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.1(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0))(react-native-screens@4.16.0(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0))(react-native-web@0.21.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0) expo-router: 6.0.3(@expo/metro-runtime@6.1.1)(@types/react@19.1.12)(expo-constants@18.0.8)(expo-linking@8.0.8)(expo@54.0.6)(react-dom@19.1.0(react@19.1.0))(react-native-gesture-handler@2.28.0(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0))(react-native-reanimated@4.1.0(@babel/core@7.28.3)(react-native-worklets@0.5.1(@babel/core@7.28.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0))(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.1(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0))(react-native-screens@4.16.0(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0))(react-native-web@0.21.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
react-native: 0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0) react-native: 0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0)
transitivePeerDependencies: transitivePeerDependencies:
- bufferutil - bufferutil
@@ -8034,7 +8035,7 @@ snapshots:
'@babel/code-frame': 7.10.4 '@babel/code-frame': 7.10.4
json5: 2.2.3 json5: 2.2.3
'@expo/metro-config@54.0.3(expo@54.0.3)': '@expo/metro-config@54.0.3(expo@54.0.6)':
dependencies: dependencies:
'@babel/code-frame': 7.27.1 '@babel/code-frame': 7.27.1
'@babel/core': 7.28.3 '@babel/core': 7.28.3
@@ -8058,16 +8059,16 @@ snapshots:
postcss: 8.4.49 postcss: 8.4.49
resolve-from: 5.0.0 resolve-from: 5.0.0
optionalDependencies: optionalDependencies:
expo: 54.0.3(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.1)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0) expo: 54.0.6(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
transitivePeerDependencies: transitivePeerDependencies:
- bufferutil - bufferutil
- supports-color - supports-color
- utf-8-validate - utf-8-validate
'@expo/metro-runtime@6.1.1(expo@54.0.3)(react-dom@19.1.0(react@19.1.0))(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)': '@expo/metro-runtime@6.1.1(expo@54.0.6)(react-dom@19.1.0(react@19.1.0))(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)':
dependencies: dependencies:
anser: 1.4.10 anser: 1.4.10
expo: 54.0.3(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.1)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0) expo: 54.0.6(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
pretty-format: 29.7.0 pretty-format: 29.7.0
react: 19.1.0 react: 19.1.0
react-native: 0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0) react-native: 0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0)
@@ -8121,16 +8122,16 @@ snapshots:
base64-js: 1.5.1 base64-js: 1.5.1
xmlbuilder: 15.1.1 xmlbuilder: 15.1.1
'@expo/prebuild-config@54.0.1(expo@54.0.3)': '@expo/prebuild-config@54.0.3(expo@54.0.6)':
dependencies: dependencies:
'@expo/config': 12.0.8 '@expo/config': 12.0.9
'@expo/config-plugins': 54.0.1 '@expo/config-plugins': 54.0.1
'@expo/config-types': 54.0.8 '@expo/config-types': 54.0.8
'@expo/image-utils': 0.8.7 '@expo/image-utils': 0.8.7
'@expo/json-file': 10.0.7 '@expo/json-file': 10.0.7
'@react-native/normalize-colors': 0.81.4 '@react-native/normalize-colors': 0.81.4
debug: 4.4.1 debug: 4.4.1
expo: 54.0.3(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.1)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0) expo: 54.0.6(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
resolve-from: 5.0.0 resolve-from: 5.0.0
semver: 7.7.2 semver: 7.7.2
xml2js: 0.6.0 xml2js: 0.6.0
@@ -8154,9 +8155,9 @@ snapshots:
'@expo/sudo-prompt@9.3.2': {} '@expo/sudo-prompt@9.3.2': {}
'@expo/vector-icons@15.0.2(expo-font@14.0.8(expo@54.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0))(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)': '@expo/vector-icons@15.0.2(expo-font@14.0.8(expo@54.0.6)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0))(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)':
dependencies: dependencies:
expo-font: 14.0.8(expo@54.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0) expo-font: 14.0.8(expo@54.0.6)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
react: 19.1.0 react: 19.1.0
react-native: 0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0) react-native: 0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0)
@@ -9879,7 +9880,7 @@ snapshots:
'@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.28.3) '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.28.3)
'@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.28.3) '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.28.3)
babel-preset-expo@54.0.1(@babel/core@7.28.3)(@babel/runtime@7.28.3)(expo@54.0.3)(react-refresh@0.14.2): babel-preset-expo@54.0.1(@babel/core@7.28.3)(@babel/runtime@7.28.3)(expo@54.0.6)(react-refresh@0.14.2):
dependencies: dependencies:
'@babel/helper-module-imports': 7.27.1 '@babel/helper-module-imports': 7.27.1
'@babel/plugin-proposal-decorators': 7.28.0(@babel/core@7.28.3) '@babel/plugin-proposal-decorators': 7.28.0(@babel/core@7.28.3)
@@ -9906,7 +9907,7 @@ snapshots:
resolve-from: 5.0.0 resolve-from: 5.0.0
optionalDependencies: optionalDependencies:
'@babel/runtime': 7.28.3 '@babel/runtime': 7.28.3
expo: 54.0.3(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.1)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0) expo: 54.0.6(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
transitivePeerDependencies: transitivePeerDependencies:
- '@babel/core' - '@babel/core'
- supports-color - supports-color
@@ -10954,93 +10955,93 @@ snapshots:
signal-exit: 3.0.7 signal-exit: 3.0.7
strip-final-newline: 2.0.0 strip-final-newline: 2.0.0
expo-asset@12.0.8(expo@54.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0): expo-asset@12.0.8(expo@54.0.6)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0):
dependencies: dependencies:
'@expo/image-utils': 0.8.7 '@expo/image-utils': 0.8.7
expo: 54.0.3(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.1)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0) expo: 54.0.6(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
expo-constants: 18.0.8(expo@54.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0)) expo-constants: 18.0.8(expo@54.0.6)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))
react: 19.1.0 react: 19.1.0
react-native: 0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0) react-native: 0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0)
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
expo-build-properties@1.0.8(expo@54.0.3): expo-build-properties@1.0.8(expo@54.0.6):
dependencies: dependencies:
ajv: 8.17.1 ajv: 8.17.1
expo: 54.0.3(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.1)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0) expo: 54.0.6(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
semver: 7.7.2 semver: 7.7.2
expo-clipboard@8.0.7(expo@54.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0): expo-clipboard@8.0.7(expo@54.0.6)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0):
dependencies: dependencies:
expo: 54.0.3(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.1)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0) expo: 54.0.6(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
react: 19.1.0 react: 19.1.0
react-native: 0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0) react-native: 0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0)
expo-constants@18.0.8(expo@54.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0)): expo-constants@18.0.8(expo@54.0.6)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0)):
dependencies: dependencies:
'@expo/config': 12.0.8 '@expo/config': 12.0.8
'@expo/env': 2.0.7 '@expo/env': 2.0.7
expo: 54.0.3(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.1)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0) expo: 54.0.6(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
react-native: 0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0) react-native: 0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0)
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
expo-crypto@15.0.7(expo@54.0.3): expo-crypto@15.0.7(expo@54.0.6):
dependencies: dependencies:
base64-js: 1.5.1 base64-js: 1.5.1
expo: 54.0.3(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.1)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0) expo: 54.0.6(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
expo-dev-client@6.0.12(expo@54.0.3): expo-dev-client@6.0.12(expo@54.0.6):
dependencies: dependencies:
expo: 54.0.3(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.1)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0) expo: 54.0.6(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
expo-dev-launcher: 6.0.11(expo@54.0.3) expo-dev-launcher: 6.0.11(expo@54.0.6)
expo-dev-menu: 7.0.11(expo@54.0.3) expo-dev-menu: 7.0.11(expo@54.0.6)
expo-dev-menu-interface: 2.0.0(expo@54.0.3) expo-dev-menu-interface: 2.0.0(expo@54.0.6)
expo-manifests: 1.0.8(expo@54.0.3) expo-manifests: 1.0.8(expo@54.0.6)
expo-updates-interface: 2.0.0(expo@54.0.3) expo-updates-interface: 2.0.0(expo@54.0.6)
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
expo-dev-launcher@6.0.11(expo@54.0.3): expo-dev-launcher@6.0.11(expo@54.0.6):
dependencies: dependencies:
expo: 54.0.3(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.1)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0) expo: 54.0.6(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
expo-dev-menu: 7.0.11(expo@54.0.3) expo-dev-menu: 7.0.11(expo@54.0.6)
expo-manifests: 1.0.8(expo@54.0.3) expo-manifests: 1.0.8(expo@54.0.6)
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
expo-dev-menu-interface@2.0.0(expo@54.0.3): expo-dev-menu-interface@2.0.0(expo@54.0.6):
dependencies: dependencies:
expo: 54.0.3(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.1)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0) expo: 54.0.6(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
expo-dev-menu@7.0.11(expo@54.0.3): expo-dev-menu@7.0.11(expo@54.0.6):
dependencies: dependencies:
expo: 54.0.3(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.1)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0) expo: 54.0.6(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
expo-dev-menu-interface: 2.0.0(expo@54.0.3) expo-dev-menu-interface: 2.0.0(expo@54.0.6)
expo-document-picker@14.0.7(expo@54.0.3): expo-document-picker@14.0.7(expo@54.0.6):
dependencies: dependencies:
expo: 54.0.3(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.1)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0) expo: 54.0.6(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
expo-file-system@19.0.13(expo@54.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0)): expo-file-system@19.0.14(expo@54.0.6)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0)):
dependencies: dependencies:
expo: 54.0.3(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.1)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0) expo: 54.0.6(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
react-native: 0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0) react-native: 0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0)
expo-font@14.0.8(expo@54.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0): expo-font@14.0.8(expo@54.0.6)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0):
dependencies: dependencies:
expo: 54.0.3(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.1)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0) expo: 54.0.6(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
fontfaceobserver: 2.3.0 fontfaceobserver: 2.3.0
react: 19.1.0 react: 19.1.0
react-native: 0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0) react-native: 0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0)
expo-haptics@15.0.7(expo@54.0.3): expo-haptics@15.0.7(expo@54.0.6):
dependencies: dependencies:
expo: 54.0.3(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.1)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0) expo: 54.0.6(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
expo-image@3.0.8(expo@54.0.3)(react-native-web@0.21.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0): expo-image@3.0.8(expo@54.0.6)(react-native-web@0.21.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0):
dependencies: dependencies:
expo: 54.0.3(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.1)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0) expo: 54.0.6(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
react: 19.1.0 react: 19.1.0
react-native: 0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0) react-native: 0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0)
optionalDependencies: optionalDependencies:
@@ -11048,14 +11049,14 @@ snapshots:
expo-json-utils@0.15.0: {} expo-json-utils@0.15.0: {}
expo-keep-awake@15.0.7(expo@54.0.3)(react@19.1.0): expo-keep-awake@15.0.7(expo@54.0.6)(react@19.1.0):
dependencies: dependencies:
expo: 54.0.3(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.1)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0) expo: 54.0.6(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
react: 19.1.0 react: 19.1.0
expo-linking@8.0.8(expo@54.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0): expo-linking@8.0.8(expo@54.0.6)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0):
dependencies: dependencies:
expo-constants: 18.0.8(expo@54.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0)) expo-constants: 18.0.8(expo@54.0.6)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))
invariant: 2.2.4 invariant: 2.2.4
react: 19.1.0 react: 19.1.0
react-native: 0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0) react-native: 0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0)
@@ -11063,10 +11064,10 @@ snapshots:
- expo - expo
- supports-color - supports-color
expo-manifests@1.0.8(expo@54.0.3): expo-manifests@1.0.8(expo@54.0.6):
dependencies: dependencies:
'@expo/config': 12.0.8 '@expo/config': 12.0.8
expo: 54.0.3(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.1)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0) expo: 54.0.6(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
expo-json-utils: 0.15.0 expo-json-utils: 0.15.0
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@@ -11086,9 +11087,9 @@ snapshots:
react: 19.1.0 react: 19.1.0
react-native: 0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0) react-native: 0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0)
expo-router@6.0.1(@types/react@19.1.12)(expo-constants@18.0.8)(expo-linking@8.0.8)(expo@54.0.3)(react-dom@19.1.0(react@19.1.0))(react-native-gesture-handler@2.28.0(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0))(react-native-reanimated@4.1.0(@babel/core@7.28.3)(react-native-worklets@0.5.1(@babel/core@7.28.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0))(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.1(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0))(react-native-screens@4.16.0(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0))(react-native-web@0.21.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0): expo-router@6.0.3(@expo/metro-runtime@6.1.1)(@types/react@19.1.12)(expo-constants@18.0.8)(expo-linking@8.0.8)(expo@54.0.6)(react-dom@19.1.0(react@19.1.0))(react-native-gesture-handler@2.28.0(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0))(react-native-reanimated@4.1.0(@babel/core@7.28.3)(react-native-worklets@0.5.1(@babel/core@7.28.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0))(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.1(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0))(react-native-screens@4.16.0(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0))(react-native-web@0.21.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0):
dependencies: dependencies:
'@expo/metro-runtime': 6.1.1(expo@54.0.3)(react-dom@19.1.0(react@19.1.0))(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0) '@expo/metro-runtime': 6.1.1(expo@54.0.6)(react-dom@19.1.0(react@19.1.0))(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
'@expo/schema-utils': 0.1.7 '@expo/schema-utils': 0.1.7
'@expo/server': 0.7.4 '@expo/server': 0.7.4
'@radix-ui/react-slot': 1.2.0(@types/react@19.1.12)(react@19.1.0) '@radix-ui/react-slot': 1.2.0(@types/react@19.1.12)(react@19.1.0)
@@ -11099,9 +11100,9 @@ snapshots:
client-only: 0.0.1 client-only: 0.0.1
debug: 4.4.1 debug: 4.4.1
escape-string-regexp: 4.0.0 escape-string-regexp: 4.0.0
expo: 54.0.3(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.1)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0) expo: 54.0.6(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
expo-constants: 18.0.8(expo@54.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0)) expo-constants: 18.0.8(expo@54.0.6)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))
expo-linking: 8.0.8(expo@54.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0) expo-linking: 8.0.8(expo@54.0.6)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
fast-deep-equal: 3.1.3 fast-deep-equal: 3.1.3
invariant: 2.2.4 invariant: 2.2.4
nanoid: 3.3.11 nanoid: 3.3.11
@@ -11129,14 +11130,14 @@ snapshots:
- '@types/react-dom' - '@types/react-dom'
- supports-color - supports-color
expo-secure-store@15.0.7(expo@54.0.3): expo-secure-store@15.0.7(expo@54.0.6):
dependencies: dependencies:
expo: 54.0.3(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.1)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0) expo: 54.0.6(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
expo-splash-screen@31.0.9(expo@54.0.3): expo-splash-screen@31.0.10(expo@54.0.6):
dependencies: dependencies:
'@expo/prebuild-config': 54.0.1(expo@54.0.3) '@expo/prebuild-config': 54.0.3(expo@54.0.6)
expo: 54.0.3(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.1)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0) expo: 54.0.6(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@@ -11146,50 +11147,50 @@ snapshots:
react-native: 0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0) react-native: 0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0)
react-native-is-edge-to-edge: 1.2.1(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0) react-native-is-edge-to-edge: 1.2.1(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
expo-symbols@1.0.7(expo@54.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0)): expo-symbols@1.0.7(expo@54.0.6)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0)):
dependencies: dependencies:
expo: 54.0.3(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.1)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0) expo: 54.0.6(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
react-native: 0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0) react-native: 0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0)
sf-symbols-typescript: 2.1.0 sf-symbols-typescript: 2.1.0
expo-system-ui@6.0.7(expo@54.0.3)(react-native-web@0.21.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0)): expo-system-ui@6.0.7(expo@54.0.6)(react-native-web@0.21.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0)):
dependencies: dependencies:
'@react-native/normalize-colors': 0.81.4 '@react-native/normalize-colors': 0.81.4
debug: 4.4.1 debug: 4.4.1
expo: 54.0.3(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.1)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0) expo: 54.0.6(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
react-native: 0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0) react-native: 0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0)
optionalDependencies: optionalDependencies:
react-native-web: 0.21.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react-native-web: 0.21.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
expo-updates-interface@2.0.0(expo@54.0.3): expo-updates-interface@2.0.0(expo@54.0.6):
dependencies: dependencies:
expo: 54.0.3(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.1)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0) expo: 54.0.6(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
expo-web-browser@15.0.7(expo@54.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0)): expo-web-browser@15.0.7(expo@54.0.6)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0)):
dependencies: dependencies:
expo: 54.0.3(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.1)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0) expo: 54.0.6(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
react-native: 0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0) react-native: 0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0)
expo@54.0.3(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.1)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0): expo@54.0.6(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0):
dependencies: dependencies:
'@babel/runtime': 7.28.3 '@babel/runtime': 7.28.3
'@expo/cli': 54.0.2(expo-router@6.0.1)(expo@54.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0)) '@expo/cli': 54.0.4(expo-router@6.0.3)(expo@54.0.6)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))
'@expo/config': 12.0.9 '@expo/config': 12.0.9
'@expo/config-plugins': 54.0.1 '@expo/config-plugins': 54.0.1
'@expo/devtools': 0.1.7(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0) '@expo/devtools': 0.1.7(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
'@expo/fingerprint': 0.15.0 '@expo/fingerprint': 0.15.0
'@expo/metro': 0.1.1 '@expo/metro': 0.1.1
'@expo/metro-config': 54.0.3(expo@54.0.3) '@expo/metro-config': 54.0.3(expo@54.0.6)
'@expo/vector-icons': 15.0.2(expo-font@14.0.8(expo@54.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0))(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0) '@expo/vector-icons': 15.0.2(expo-font@14.0.8(expo@54.0.6)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0))(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
'@ungap/structured-clone': 1.3.0 '@ungap/structured-clone': 1.3.0
babel-preset-expo: 54.0.1(@babel/core@7.28.3)(@babel/runtime@7.28.3)(expo@54.0.3)(react-refresh@0.14.2) babel-preset-expo: 54.0.1(@babel/core@7.28.3)(@babel/runtime@7.28.3)(expo@54.0.6)(react-refresh@0.14.2)
expo-asset: 12.0.8(expo@54.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0) expo-asset: 12.0.8(expo@54.0.6)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
expo-constants: 18.0.8(expo@54.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0)) expo-constants: 18.0.8(expo@54.0.6)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))
expo-file-system: 19.0.13(expo@54.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0)) expo-file-system: 19.0.14(expo@54.0.6)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))
expo-font: 14.0.8(expo@54.0.3)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0) expo-font: 14.0.8(expo@54.0.6)(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
expo-keep-awake: 15.0.7(expo@54.0.3)(react@19.1.0) expo-keep-awake: 15.0.7(expo@54.0.6)(react@19.1.0)
expo-modules-autolinking: 3.0.10 expo-modules-autolinking: 3.0.10
expo-modules-core: 3.0.15(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0) expo-modules-core: 3.0.15(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
pretty-format: 29.7.0 pretty-format: 29.7.0
@@ -11198,7 +11199,7 @@ snapshots:
react-refresh: 0.14.2 react-refresh: 0.14.2
whatwg-url-without-unicode: 8.0.0-3 whatwg-url-without-unicode: 8.0.0-3
optionalDependencies: optionalDependencies:
'@expo/metro-runtime': 6.1.1(expo@54.0.3)(react-dom@19.1.0(react@19.1.0))(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0) '@expo/metro-runtime': 6.1.1(expo@54.0.6)(react-dom@19.1.0(react@19.1.0))(react-native@0.81.4(@babel/core@7.28.3)(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
transitivePeerDependencies: transitivePeerDependencies:
- '@babel/core' - '@babel/core'
- bufferutil - bufferutil