diff --git a/.changeset/expo-google-signin-package.md b/.changeset/expo-google-signin-package.md new file mode 100644 index 00000000000..e15924cafdd --- /dev/null +++ b/.changeset/expo-google-signin-package.md @@ -0,0 +1,8 @@ +--- +'@clerk/expo': major +'@clerk/expo-google-signin': minor +--- + +Move native Google Sign-In out of `@clerk/expo` and into `@clerk/expo-google-signin`. + +Apps using native Google Sign-In should install `@clerk/expo-google-signin`, add it to the Expo config plugin list alongside `@clerk/expo`, and rebuild their native app. The `@clerk/expo/google` import path continues to re-export `useSignInWithGoogle`. diff --git a/packages/expo-google-signin/android/build.gradle b/packages/expo-google-signin/android/build.gradle new file mode 100644 index 00000000000..81ad78c0c7a --- /dev/null +++ b/packages/expo-google-signin/android/build.gradle @@ -0,0 +1,39 @@ +apply plugin: 'com.android.library' +apply plugin: 'kotlin-android' +apply plugin: 'maven-publish' + +group = 'expo.modules.clerk.googlesignin' +version = '1.0.0' + +def expoModulesCorePlugin = new File(project(":expo-modules-core").projectDir.absolutePath, "ExpoModulesCorePlugin.gradle") +apply from: expoModulesCorePlugin +applyKotlinExpoModulesCorePlugin() +useCoreDependencies() +useExpoPublishing() + +buildscript { + ext.safeExtGet = { prop, fallback -> + rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback + } +} + +android { + namespace "expo.modules.clerk.googlesignin" + + compileSdkVersion safeExtGet("compileSdkVersion", 36) + + defaultConfig { + minSdkVersion safeExtGet("minSdkVersion", 24) + targetSdkVersion safeExtGet("targetSdkVersion", 36) + versionCode 1 + versionName "1.0.0" + } +} + +dependencies { + implementation project(':expo-modules-core') + implementation "androidx.credentials:credentials:1.3.0" + implementation "androidx.credentials:credentials-play-services-auth:1.3.0" + implementation "com.google.android.libraries.identity.googleid:googleid:1.1.1" + implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3" +} diff --git a/packages/expo-google-signin/android/src/main/AndroidManifest.xml b/packages/expo-google-signin/android/src/main/AndroidManifest.xml new file mode 100644 index 00000000000..94cbbcfc396 --- /dev/null +++ b/packages/expo-google-signin/android/src/main/AndroidManifest.xml @@ -0,0 +1 @@ + diff --git a/packages/expo/android/src/main/java/expo/modules/clerk/googlesignin/ClerkGoogleSignInModule.kt b/packages/expo-google-signin/android/src/main/java/expo/modules/clerk/googlesignin/ClerkGoogleSignInModule.kt similarity index 100% rename from packages/expo/android/src/main/java/expo/modules/clerk/googlesignin/ClerkGoogleSignInModule.kt rename to packages/expo-google-signin/android/src/main/java/expo/modules/clerk/googlesignin/ClerkGoogleSignInModule.kt diff --git a/packages/expo-google-signin/app.plugin.d.ts b/packages/expo-google-signin/app.plugin.d.ts new file mode 100644 index 00000000000..df423672769 --- /dev/null +++ b/packages/expo-google-signin/app.plugin.d.ts @@ -0,0 +1,5 @@ +import type { ConfigPlugin } from '@expo/config-plugins'; + +declare const withClerkExpoGoogleSignIn: ConfigPlugin; + +export = withClerkExpoGoogleSignIn; diff --git a/packages/expo-google-signin/app.plugin.js b/packages/expo-google-signin/app.plugin.js new file mode 100644 index 00000000000..49bfb331858 --- /dev/null +++ b/packages/expo-google-signin/app.plugin.js @@ -0,0 +1,32 @@ +const { withInfoPlist, createRunOncePlugin } = require('@expo/config-plugins'); +const pkg = require('./package.json'); + +const withClerkExpoGoogleSignIn = config => { + const iosUrlScheme = + process.env.EXPO_PUBLIC_CLERK_GOOGLE_IOS_URL_SCHEME || + (config.extra && config.extra.EXPO_PUBLIC_CLERK_GOOGLE_IOS_URL_SCHEME); + + if (!iosUrlScheme) { + return config; + } + + return withInfoPlist(config, modConfig => { + if (!Array.isArray(modConfig.modResults.CFBundleURLTypes)) { + modConfig.modResults.CFBundleURLTypes = []; + } + + const schemeExists = modConfig.modResults.CFBundleURLTypes.some(urlType => + urlType.CFBundleURLSchemes?.includes(iosUrlScheme), + ); + + if (!schemeExists) { + modConfig.modResults.CFBundleURLTypes.push({ + CFBundleURLSchemes: [iosUrlScheme], + }); + } + + return modConfig; + }); +}; + +module.exports = createRunOncePlugin(withClerkExpoGoogleSignIn, pkg.name, pkg.version); diff --git a/packages/expo-google-signin/expo-module.config.json b/packages/expo-google-signin/expo-module.config.json new file mode 100644 index 00000000000..5f431bc76c9 --- /dev/null +++ b/packages/expo-google-signin/expo-module.config.json @@ -0,0 +1,9 @@ +{ + "platforms": ["apple", "android"], + "apple": { + "modules": ["ClerkGoogleSignInModule"] + }, + "android": { + "modules": ["expo.modules.clerk.googlesignin.ClerkGoogleSignInModule"] + } +} diff --git a/packages/expo/ios/ClerkGoogleSignIn.podspec b/packages/expo-google-signin/ios/ClerkGoogleSignIn.podspec similarity index 100% rename from packages/expo/ios/ClerkGoogleSignIn.podspec rename to packages/expo-google-signin/ios/ClerkGoogleSignIn.podspec diff --git a/packages/expo/ios/ClerkGoogleSignInModule.swift b/packages/expo-google-signin/ios/ClerkGoogleSignInModule.swift similarity index 100% rename from packages/expo/ios/ClerkGoogleSignInModule.swift rename to packages/expo-google-signin/ios/ClerkGoogleSignInModule.swift diff --git a/packages/expo-google-signin/package.json b/packages/expo-google-signin/package.json new file mode 100644 index 00000000000..abf3a1c8fd4 --- /dev/null +++ b/packages/expo-google-signin/package.json @@ -0,0 +1,73 @@ +{ + "name": "@clerk/expo-google-signin", + "version": "0.0.0", + "description": "Native Google Sign-In library to be used with Clerk for Expo", + "keywords": [ + "react-native", + "expo", + "google-signin", + "clerk" + ], + "homepage": "https://clerk.com/", + "bugs": { + "url": "https://github.com/clerk/javascript/issues" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/clerk/javascript.git", + "directory": "packages/expo-google-signin" + }, + "license": "MIT", + "author": "Clerk", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "files": [ + "dist", + "android", + "ios", + "expo-module.config.json", + "app.plugin.js", + "app.plugin.d.ts" + ], + "scripts": { + "build": "tsup", + "build:declarations": "tsc -p tsconfig.declarations.json", + "clean": "rimraf ./dist", + "dev": "tsup --watch", + "dev:pub": "pnpm dev -- --env.publish", + "format": "node ../../scripts/format-package.mjs", + "format:check": "node ../../scripts/format-package.mjs --check", + "lint": "eslint src", + "test": "vitest run" + }, + "dependencies": { + "@clerk/react": "workspace:^", + "@clerk/shared": "workspace:^", + "tslib": "catalog:repo" + }, + "devDependencies": { + "@expo/config-plugins": "^54.0.4", + "@types/react": "catalog:react", + "expo": "~54.0.34", + "expo-constants": "^18.0.13", + "expo-crypto": "^15.0.9", + "react": "catalog:react", + "react-native": "^0.85.2", + "tsup": "catalog:repo" + }, + "peerDependencies": { + "expo": ">=53 <57", + "expo-constants": ">=12", + "expo-crypto": ">=12", + "react": "^18.0.0 || ^19.0.0", + "react-native": ">=0.75" + }, + "peerDependenciesMeta": { + "expo-constants": { + "optional": true + } + }, + "publishConfig": { + "access": "public" + } +} diff --git a/packages/expo/src/hooks/__tests__/useSignInWithGoogle.test.ts b/packages/expo-google-signin/src/__tests__/useSignInWithGoogle.test.ts similarity index 89% rename from packages/expo/src/hooks/__tests__/useSignInWithGoogle.test.ts rename to packages/expo-google-signin/src/__tests__/useSignInWithGoogle.test.ts index 7357d295f75..d6898465575 100644 --- a/packages/expo/src/hooks/__tests__/useSignInWithGoogle.test.ts +++ b/packages/expo-google-signin/src/__tests__/useSignInWithGoogle.test.ts @@ -29,7 +29,7 @@ vi.mock('@clerk/shared/error', async importOriginal => { }; }); -vi.mock('../../google-one-tap', async importOriginal => { +vi.mock('../google-one-tap', async importOriginal => { const actual = await importOriginal(); return { ...actual, @@ -46,17 +46,7 @@ vi.mock('react-native', () => { }; }); -vi.mock('../../specs/NativeClerkModule', () => { - return { - default: { - configure: vi.fn(), - getClientToken: vi.fn(), - syncClientStateFromJs: vi.fn(), - }, - }; -}); - -vi.mock('../../specs/NativeClerkGoogleSignIn', () => { +vi.mock('../specs/NativeClerkGoogleSignIn', () => { return { default: { configure: vi.fn(), @@ -127,25 +117,6 @@ describe('useSignInWithGoogle', () => { }); describe('startGoogleAuthenticationFlow', () => { - test('should warn once in development about the upcoming package split', () => { - const originalDev = globalThis.__DEV__; - globalThis.__DEV__ = true; - const consoleWarnSpy = vi.spyOn(console, 'warn').mockImplementation(() => undefined); - - try { - renderHook(() => useSignInWithGoogle()); - renderHook(() => useSignInWithGoogle()); - - expect(consoleWarnSpy).toHaveBeenCalledTimes(1); - expect(consoleWarnSpy).toHaveBeenCalledWith( - 'Clerk: In the next major version, native Google Sign-In will require installing @clerk/expo-google-signin. The @clerk/expo/google import path will continue to work.', - ); - } finally { - consoleWarnSpy.mockRestore(); - globalThis.__DEV__ = originalDev; - } - }); - test('should return the hook with startGoogleAuthenticationFlow function', () => { const { result } = renderHook(() => useSignInWithGoogle()); diff --git a/packages/expo-google-signin/src/global.d.ts b/packages/expo-google-signin/src/global.d.ts new file mode 100644 index 00000000000..ded363c3df1 --- /dev/null +++ b/packages/expo-google-signin/src/global.d.ts @@ -0,0 +1 @@ +declare const PACKAGE_NAME: string; diff --git a/packages/expo/src/google-one-tap/ClerkGoogleOneTapSignIn.ts b/packages/expo-google-signin/src/google-one-tap/ClerkGoogleOneTapSignIn.ts similarity index 97% rename from packages/expo/src/google-one-tap/ClerkGoogleOneTapSignIn.ts rename to packages/expo-google-signin/src/google-one-tap/ClerkGoogleOneTapSignIn.ts index b0a1cd5e42f..aa3bea4bb0f 100644 --- a/packages/expo/src/google-one-tap/ClerkGoogleOneTapSignIn.ts +++ b/packages/expo-google-signin/src/google-one-tap/ClerkGoogleOneTapSignIn.ts @@ -14,7 +14,7 @@ function getNativeModule(): NonNullable { if (!NativeClerkGoogleSignIn) { throw new Error( 'ClerkGoogleSignIn native module is not available. ' + - 'Ensure the @clerk/expo plugin is added to your app.json and you have run a development build.', + 'Ensure the @clerk/expo-google-signin plugin is added to your app.json and you have run a development build.', ); } return NativeClerkGoogleSignIn; diff --git a/packages/expo/src/google-one-tap/index.ts b/packages/expo-google-signin/src/google-one-tap/index.ts similarity index 100% rename from packages/expo/src/google-one-tap/index.ts rename to packages/expo-google-signin/src/google-one-tap/index.ts diff --git a/packages/expo/src/google-one-tap/types.ts b/packages/expo-google-signin/src/google-one-tap/types.ts similarity index 100% rename from packages/expo/src/google-one-tap/types.ts rename to packages/expo-google-signin/src/google-one-tap/types.ts diff --git a/packages/expo-google-signin/src/index.ts b/packages/expo-google-signin/src/index.ts new file mode 100644 index 00000000000..a2a81b378c2 --- /dev/null +++ b/packages/expo-google-signin/src/index.ts @@ -0,0 +1,5 @@ +export { useSignInWithGoogle } from './useSignInWithGoogle'; +export type { + StartGoogleAuthenticationFlowParams, + StartGoogleAuthenticationFlowReturnType, +} from './useSignInWithGoogle.types'; diff --git a/packages/expo/src/specs/NativeClerkGoogleSignIn.android.ts b/packages/expo-google-signin/src/specs/NativeClerkGoogleSignIn.android.ts similarity index 100% rename from packages/expo/src/specs/NativeClerkGoogleSignIn.android.ts rename to packages/expo-google-signin/src/specs/NativeClerkGoogleSignIn.android.ts diff --git a/packages/expo/src/specs/NativeClerkGoogleSignIn.ts b/packages/expo-google-signin/src/specs/NativeClerkGoogleSignIn.ts similarity index 100% rename from packages/expo/src/specs/NativeClerkGoogleSignIn.ts rename to packages/expo-google-signin/src/specs/NativeClerkGoogleSignIn.ts diff --git a/packages/expo/src/hooks/useSignInWithGoogle.android.ts b/packages/expo-google-signin/src/useSignInWithGoogle.android.ts similarity index 89% rename from packages/expo/src/hooks/useSignInWithGoogle.android.ts rename to packages/expo-google-signin/src/useSignInWithGoogle.android.ts index 684e479aae2..161340ff804 100644 --- a/packages/expo/src/hooks/useSignInWithGoogle.android.ts +++ b/packages/expo-google-signin/src/useSignInWithGoogle.android.ts @@ -17,12 +17,9 @@ export type { * - Built-in nonce support for replay attack protection * - No additional dependencies required * - * In the next major version, apps using native Google Sign-In will need to install - * `@clerk/expo-google-signin` alongside `@clerk/expo`. - * * @example * ```tsx - * import { useSignInWithGoogle } from '@clerk/expo'; + * import { useSignInWithGoogle } from '@clerk/expo-google-signin'; * import { Button } from 'react-native'; * * function GoogleSignInButton() { diff --git a/packages/expo/src/hooks/useSignInWithGoogle.ios.ts b/packages/expo-google-signin/src/useSignInWithGoogle.ios.ts similarity index 89% rename from packages/expo/src/hooks/useSignInWithGoogle.ios.ts rename to packages/expo-google-signin/src/useSignInWithGoogle.ios.ts index 936054c6389..d247472c45b 100644 --- a/packages/expo/src/hooks/useSignInWithGoogle.ios.ts +++ b/packages/expo-google-signin/src/useSignInWithGoogle.ios.ts @@ -17,12 +17,9 @@ export type { * - Built-in nonce support for replay attack protection * - No additional dependencies required * - * In the next major version, apps using native Google Sign-In will need to install - * `@clerk/expo-google-signin` alongside `@clerk/expo`. - * * @example * ```tsx - * import { useSignInWithGoogle } from '@clerk/expo'; + * import { useSignInWithGoogle } from '@clerk/expo-google-signin'; * import { Button } from 'react-native'; * * function GoogleSigninButton() { diff --git a/packages/expo/src/hooks/useSignInWithGoogle.shared.ts b/packages/expo-google-signin/src/useSignInWithGoogle.shared.ts similarity index 91% rename from packages/expo/src/hooks/useSignInWithGoogle.shared.ts rename to packages/expo-google-signin/src/useSignInWithGoogle.shared.ts index 57ed1c3e7f7..40275755369 100644 --- a/packages/expo/src/hooks/useSignInWithGoogle.shared.ts +++ b/packages/expo-google-signin/src/useSignInWithGoogle.shared.ts @@ -1,14 +1,15 @@ import { useClerk } from '@clerk/react'; -import { isClerkAPIResponseError } from '@clerk/shared/error'; +import { buildErrorThrower, isClerkAPIResponseError } from '@clerk/shared/error'; import type { ClientResource, SetActive } from '@clerk/shared/types'; -import { ClerkGoogleOneTapSignIn, isErrorWithCode, isSuccessResponse } from '../google-one-tap'; -import { errorThrower } from '../utils/errors'; +import { ClerkGoogleOneTapSignIn, isErrorWithCode, isSuccessResponse } from './google-one-tap'; import type { StartGoogleAuthenticationFlowParams, StartGoogleAuthenticationFlowReturnType, } from './useSignInWithGoogle.types'; +const errorThrower = buildErrorThrower({ packageName: PACKAGE_NAME }); + export type GoogleClientIds = { webClientId: string; iosClientId?: string; @@ -23,19 +24,6 @@ type PlatformConfig = { requiresIosClientId: boolean; }; -let hasWarnedAboutGoogleSignInPackage = false; - -function warnAboutGoogleSignInPackageMigration() { - if (!__DEV__ || hasWarnedAboutGoogleSignInPackage) { - return; - } - - hasWarnedAboutGoogleSignInPackage = true; - console.warn( - 'Clerk: In the next major version, native Google Sign-In will require installing @clerk/expo-google-signin. The @clerk/expo/google import path will continue to work.', - ); -} - /** * Helper to get Google client IDs from expo-constants or process.env. * Dynamically imports expo-constants to keep it optional. @@ -72,8 +60,6 @@ async function getGoogleClientIds(): Promise<{ webClientId?: string; iosClientId */ export function createUseSignInWithGoogle(platformConfig: PlatformConfig) { return function useSignInWithGoogle() { - warnAboutGoogleSignInPackageMigration(); - const clerk = useClerk(); async function startGoogleAuthenticationFlow( diff --git a/packages/expo/src/hooks/useSignInWithGoogle.ts b/packages/expo-google-signin/src/useSignInWithGoogle.ts similarity index 92% rename from packages/expo/src/hooks/useSignInWithGoogle.ts rename to packages/expo-google-signin/src/useSignInWithGoogle.ts index 15322170ed5..39534d13560 100644 --- a/packages/expo/src/hooks/useSignInWithGoogle.ts +++ b/packages/expo-google-signin/src/useSignInWithGoogle.ts @@ -1,6 +1,7 @@ +import { buildErrorThrower } from '@clerk/shared/error'; import type { SetActive, SignInResource, SignUpResource } from '@clerk/shared/types'; -import { errorThrower } from '../utils/errors'; +const errorThrower = buildErrorThrower({ packageName: PACKAGE_NAME }); type SignUpUnsafeMetadata = Record; @@ -21,9 +22,6 @@ export type StartGoogleAuthenticationFlowReturnType = { * Native Google Authentication is only available on iOS and Android. * For web platforms, use the OAuth-based Google Sign-In flow instead via useSSO. * - * In the next major version, apps using native Google Sign-In will need to install - * `@clerk/expo-google-signin` alongside `@clerk/expo`. - * * @example * ```tsx * import { useSSO } from '@clerk/expo'; diff --git a/packages/expo/src/hooks/useSignInWithGoogle.types.ts b/packages/expo-google-signin/src/useSignInWithGoogle.types.ts similarity index 86% rename from packages/expo/src/hooks/useSignInWithGoogle.types.ts rename to packages/expo-google-signin/src/useSignInWithGoogle.types.ts index 522f1a12385..9007934d555 100644 --- a/packages/expo/src/hooks/useSignInWithGoogle.types.ts +++ b/packages/expo-google-signin/src/useSignInWithGoogle.types.ts @@ -1,5 +1,7 @@ import type { SetActive, SignInResource, SignUpResource } from '@clerk/shared/types'; +type SignUpUnsafeMetadata = Record; + export type StartGoogleAuthenticationFlowParams = { unsafeMetadata?: SignUpUnsafeMetadata; }; diff --git a/packages/expo-google-signin/tsconfig.declarations.json b/packages/expo-google-signin/tsconfig.declarations.json new file mode 100644 index 00000000000..ebea527b01c --- /dev/null +++ b/packages/expo-google-signin/tsconfig.declarations.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "skipLibCheck": true, + "incremental": false, + "noEmit": false, + "declaration": true, + "emitDeclarationOnly": true, + "declarationMap": true, + "sourceMap": false, + "declarationDir": "./dist" + }, + "exclude": ["**/__tests__/**/*", "app.plugin.js"] +} diff --git a/packages/expo-google-signin/tsconfig.json b/packages/expo-google-signin/tsconfig.json new file mode 100644 index 00000000000..29aa2cfc52a --- /dev/null +++ b/packages/expo-google-signin/tsconfig.json @@ -0,0 +1,27 @@ +{ + "compilerOptions": { + "allowJs": true, + "declaration": true, + "declarationMap": false, + "esModuleInterop": true, + "importHelpers": true, + "incremental": true, + "jsx": "react-jsx", + "lib": ["ESNext", "dom"], + "module": "NodeNext", + "moduleResolution": "NodeNext", + "noEmitOnError": false, + "noImplicitReturns": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "outDir": "dist", + "resolveJsonModule": true, + "skipLibCheck": true, + "sourceMap": false, + "strict": true, + "target": "ES2019", + "types": ["node"], + "rootDir": "./src" + }, + "include": ["src", "app.plugin.js"] +} diff --git a/packages/expo-google-signin/tsup.config.ts b/packages/expo-google-signin/tsup.config.ts new file mode 100644 index 00000000000..1c073544c76 --- /dev/null +++ b/packages/expo-google-signin/tsup.config.ts @@ -0,0 +1,30 @@ +import type { Options } from 'tsup'; +import { defineConfig } from 'tsup'; + +import { runAfterLast } from '../../scripts/utils'; +import { version as clerkJsVersion } from '../clerk-js/package.json'; +import { name, version } from './package.json'; + +export default defineConfig(overrideOptions => { + const isWatch = !!overrideOptions.watch; + const shouldPublish = !!overrideOptions.env?.publish; + + const options: Options = { + format: 'cjs', + outDir: './dist', + entry: ['./src/**/*.{ts,tsx,js,jsx}', '!./src/**/*.d.ts', '!./src/**/__tests__/**/*.{ts,tsx,js,jsx}'], + bundle: false, + clean: true, + minify: false, + sourcemap: true, + legacyOutput: true, + define: { + PACKAGE_NAME: `"${name}"`, + PACKAGE_VERSION: `"${version}"`, + JS_PACKAGE_VERSION: `"${clerkJsVersion}"`, + __DEV__: `${isWatch}`, + }, + }; + + return runAfterLast(['pnpm build:declarations', shouldPublish && 'pkglab pub --ping'])(options); +}); diff --git a/packages/expo-google-signin/vitest.config.mts b/packages/expo-google-signin/vitest.config.mts new file mode 100644 index 00000000000..20bc22a33db --- /dev/null +++ b/packages/expo-google-signin/vitest.config.mts @@ -0,0 +1,10 @@ +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + plugins: [], + test: { + environment: 'jsdom', + includeSource: ['**/*.{js,ts,jsx,tsx}'], + setupFiles: './vitest.setup.mts', + }, +}); diff --git a/packages/expo-google-signin/vitest.setup.mts b/packages/expo-google-signin/vitest.setup.mts new file mode 100644 index 00000000000..0ef33b77151 --- /dev/null +++ b/packages/expo-google-signin/vitest.setup.mts @@ -0,0 +1,18 @@ +import { beforeAll, vi } from 'vitest'; + +globalThis.PACKAGE_NAME = '@clerk/expo-google-signin'; +globalThis.PACKAGE_VERSION = '0.0.0-test'; + +if (!globalThis.expo) { + // @ts-expect-error - Mocking expo for tests + globalThis.expo = { + EventEmitter: vi.fn(), + }; +} + +if (typeof globalThis.__DEV__ === 'undefined') { + // @ts-expect-error - Mocking __DEV__ for tests + globalThis.__DEV__ = false; +} + +beforeAll(() => {}); diff --git a/packages/expo/android/build.gradle b/packages/expo/android/build.gradle index 55d4137c9ad..d8411b89c72 100644 --- a/packages/expo/android/build.gradle +++ b/packages/expo/android/build.gradle @@ -14,8 +14,6 @@ version = '1.0.0' // Dependency versions - centralized for easier updates // See: https://docs.gradle.org/current/userguide/version_catalogs.html for app-level version catalogs ext { - credentialsVersion = "1.3.0" - googleIdVersion = "1.1.1" kotlinxCoroutinesVersion = "1.7.3" clerkAndroidApiVersion = "1.0.31" clerkAndroidUiVersion = "1.0.31" @@ -97,11 +95,6 @@ try { dependencies { implementation project(':expo-modules-core') - // Credential Manager for Google Sign-In with nonce support - implementation "androidx.credentials:credentials:$credentialsVersion" - implementation "androidx.credentials:credentials-play-services-auth:$credentialsVersion" - implementation "com.google.android.libraries.identity.googleid:googleid:$googleIdVersion" - // Coroutines for async operations implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$kotlinxCoroutinesVersion" diff --git a/packages/expo/app.plugin.js b/packages/expo/app.plugin.js index 3759c010c43..f42f84dc347 100644 --- a/packages/expo/app.plugin.js +++ b/packages/expo/app.plugin.js @@ -146,45 +146,12 @@ const withClerkAndroid = config => { }); }; -/** - * Add Google Sign-In URL scheme to Info.plist (from main branch) - */ -const withClerkGoogleSignIn = config => { - const iosUrlScheme = - process.env.EXPO_PUBLIC_CLERK_GOOGLE_IOS_URL_SCHEME || - (config.extra && config.extra.EXPO_PUBLIC_CLERK_GOOGLE_IOS_URL_SCHEME); - - if (!iosUrlScheme) { - return config; - } - - return withInfoPlist(config, modConfig => { - if (!Array.isArray(modConfig.modResults.CFBundleURLTypes)) { - modConfig.modResults.CFBundleURLTypes = []; - } - - const schemeExists = modConfig.modResults.CFBundleURLTypes.some(urlType => - urlType.CFBundleURLSchemes?.includes(iosUrlScheme), - ); - - if (!schemeExists) { - modConfig.modResults.CFBundleURLTypes.push({ - CFBundleURLSchemes: [iosUrlScheme], - }); - console.log(`✅ Added Google Sign-In URL scheme: ${iosUrlScheme}`); - } - - return modConfig; - }); -}; - /** * Combined Clerk Expo plugin * * When this plugin is configured in app.json/app.config.js: * 1. iOS gets the deployment target and metadata required by Clerk native views * 2. Android gets packaging exclusions for dependency conflicts - * 3. Google Sign-In URL scheme is configured (if env var is set) * * Native modules and views are registered via Expo Modules autolinking. */ @@ -345,7 +312,6 @@ const withClerkExpo = (config, props = {}) => { if (appleSignIn !== false) { config = withClerkAppleSignIn(config); } - config = withClerkGoogleSignIn(config); config = withClerkAndroid(config); config = withClerkKeychainService(config, props); config = withClerkTheme(config, props); diff --git a/packages/expo/expo-module.config.json b/packages/expo/expo-module.config.json index 355aef1e930..8c0f47dee5e 100644 --- a/packages/expo/expo-module.config.json +++ b/packages/expo/expo-module.config.json @@ -1,21 +1,14 @@ { "platforms": ["apple", "android"], "apple": { - "modules": [ - "ClerkExpoModule", - "ClerkAuthViewModule", - "ClerkUserProfileViewModule", - "ClerkUserButtonViewModule", - "ClerkGoogleSignInModule" - ] + "modules": ["ClerkExpoModule", "ClerkAuthViewModule", "ClerkUserProfileViewModule", "ClerkUserButtonViewModule"] }, "android": { "modules": [ "expo.modules.clerk.ClerkExpoModule", "expo.modules.clerk.ClerkAuthViewModule", "expo.modules.clerk.ClerkUserProfileViewModule", - "expo.modules.clerk.ClerkUserButtonViewModule", - "expo.modules.clerk.googlesignin.ClerkGoogleSignInModule" + "expo.modules.clerk.ClerkUserButtonViewModule" ] } } diff --git a/packages/expo/package.json b/packages/expo/package.json index 6a2975a8364..0a30d933d41 100644 --- a/packages/expo/package.json +++ b/packages/expo/package.json @@ -121,6 +121,7 @@ "tslib": "catalog:repo" }, "devDependencies": { + "@clerk/expo-google-signin": "workspace:*", "@clerk/expo-passkeys": "workspace:*", "@expo/config-plugins": "^54.0.4", "@types/base-64": "^1.0.2", @@ -135,6 +136,7 @@ "react-native": "^0.85.2" }, "peerDependencies": { + "@clerk/expo-google-signin": ">=0.0.0", "@clerk/expo-passkeys": ">=0.0.6", "expo": ">=53 <57", "expo-apple-authentication": ">=7.0.0", @@ -149,6 +151,9 @@ "react-native": ">=0.75" }, "peerDependenciesMeta": { + "@clerk/expo-google-signin": { + "optional": true + }, "@clerk/expo-passkeys": { "optional": true }, diff --git a/packages/expo/src/google/index.ts b/packages/expo/src/google/index.ts index cf9213071b6..4411707e13a 100644 --- a/packages/expo/src/google/index.ts +++ b/packages/expo/src/google/index.ts @@ -1,5 +1,5 @@ -export { useSignInWithGoogle } from '../hooks/useSignInWithGoogle'; +export { useSignInWithGoogle } from '@clerk/expo-google-signin'; export type { StartGoogleAuthenticationFlowParams, StartGoogleAuthenticationFlowReturnType, -} from '../hooks/useSignInWithGoogle.types'; +} from '@clerk/expo-google-signin'; diff --git a/packages/expo/src/plugin/withClerkExpo.ts b/packages/expo/src/plugin/withClerkExpo.ts index 669ae271c2c..35072e7a51a 100644 --- a/packages/expo/src/plugin/withClerkExpo.ts +++ b/packages/expo/src/plugin/withClerkExpo.ts @@ -1,4 +1,4 @@ -import { type ConfigPlugin, createRunOncePlugin, withAppBuildGradle, withInfoPlist } from '@expo/config-plugins'; +import { type ConfigPlugin, createRunOncePlugin, withAppBuildGradle } from '@expo/config-plugins'; import pkg from '../../package.json'; @@ -38,54 +38,15 @@ const withClerkAndroidPackaging: ConfigPlugin = config => { }); }; -/** - * Configures iOS URL scheme for Google Sign-In. - */ -const withClerkGoogleSignIn: ConfigPlugin = config => { - // Get the iOS URL scheme from environment or config.extra - // We capture it here before entering the mod callback - const iosUrlScheme = - process.env.EXPO_PUBLIC_CLERK_GOOGLE_IOS_URL_SCHEME || - (config as { extra?: Record }).extra?.EXPO_PUBLIC_CLERK_GOOGLE_IOS_URL_SCHEME; - - if (!iosUrlScheme) { - // No URL scheme configured, skip iOS configuration - return config; - } - - // Add iOS URL scheme for Google Sign-In - return withInfoPlist(config, modConfig => { - if (!Array.isArray(modConfig.modResults.CFBundleURLTypes)) { - modConfig.modResults.CFBundleURLTypes = []; - } - - // Check if the scheme is already added to avoid duplicates - const schemeExists = modConfig.modResults.CFBundleURLTypes.some(urlType => - urlType.CFBundleURLSchemes?.includes(iosUrlScheme), - ); - - if (!schemeExists) { - // Add Google Sign-In URL scheme - modConfig.modResults.CFBundleURLTypes.push({ - CFBundleURLSchemes: [iosUrlScheme], - }); - } - - return modConfig; - }); -}; - /** * Combined plugin that applies all Clerk configurations. * * When this plugin is used, it: - * 1. Configures iOS URL scheme for Google Sign-In (if env var is set) - * 2. Adds Android packaging exclusions to resolve dependency conflicts + * 1. Adds Android packaging exclusions to resolve dependency conflicts * * Native modules and views are registered via Expo Modules autolinking. */ const withClerkExpo: ConfigPlugin = config => { - config = withClerkGoogleSignIn(config); config = withClerkAndroidPackaging(config); return config; }; diff --git a/packages/expo/src/types/index.ts b/packages/expo/src/types/index.ts index 7c31837db0f..0c5b6da76b1 100644 --- a/packages/expo/src/types/index.ts +++ b/packages/expo/src/types/index.ts @@ -9,24 +9,3 @@ export type { IStorage, BuildClerkOptions } from '../provider/singleton/types'; // OAuth/SSO hook types export type { UseOAuthFlowParams, StartOAuthFlowParams, StartOAuthFlowReturnType } from '../hooks/useOAuth'; export type { StartSSOFlowParams, StartSSOFlowReturnType } from '../hooks/useSSO'; - -// Google Sign-In types -export type { - StartGoogleAuthenticationFlowParams, - StartGoogleAuthenticationFlowReturnType, -} from '../hooks/useSignInWithGoogle.types'; - -// Google One Tap types -export type { - ConfigureParams, - SignInParams, - CreateAccountParams, - ExplicitSignInParams, - GoogleUser, - OneTapSuccessResponse, - CancelledResponse, - NoSavedCredentialFound, - OneTapResponse, - GoogleSignInErrorCode, - GoogleSignInError, -} from '../google-one-tap/types'; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a28fcc67f2d..fcdaf3ec87c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -403,7 +403,7 @@ importers: version: 9.0.2 vitest-environment-miniflare: specifier: 2.14.4 - version: 2.14.4(bufferutil@4.1.0)(utf-8-validate@5.0.10)(vitest@3.2.6(@edge-runtime/vm@5.0.0)(@types/debug@4.1.12)(@types/node@25.6.0)(happy-dom@20.10.2(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jiti@2.7.0)(jsdom@27.0.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(lightningcss@1.32.0)(msw@2.14.2(@types/node@25.6.0)(typescript@6.0.3))(terser@5.46.1)(tsx@4.20.6)(yaml@2.9.0)) + version: 2.14.4(bufferutil@4.1.0)(utf-8-validate@5.0.10)(vitest@4.1.6(@edge-runtime/vm@5.0.0)(@opentelemetry/api@1.9.0)(@types/node@25.6.0)(@vitest/coverage-v8@3.2.6(vitest@3.2.6(@edge-runtime/vm@5.0.0)(@types/debug@4.1.12)(@types/node@22.19.17)(happy-dom@20.10.2(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jiti@2.7.0)(jsdom@27.0.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(lightningcss@1.32.0)(msw@2.14.2(@types/node@22.19.17)(typescript@6.0.3))(terser@5.46.1)(tsx@4.20.6)(yaml@2.9.0)))(happy-dom@20.10.2(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jsdom@27.0.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(msw@2.14.2(@types/node@25.6.0)(typescript@6.0.3))(vite@7.3.5(@types/node@25.6.0)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.20.6)(yaml@2.9.0))) packages/chrome-extension: dependencies: @@ -507,7 +507,7 @@ importers: version: 11.14.0(@types/react@18.3.28)(react@18.3.1) '@rsdoctor/rspack-plugin': specifier: ^1.5.9 - version: 1.5.9(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@rspack/core@2.0.6(@swc/helpers@0.5.21))(bufferutil@4.1.0)(utf-8-validate@5.0.10)(webpack@5.102.1(esbuild@0.27.7)) + version: 1.5.9(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@rspack/core@2.0.6(@swc/helpers@0.5.21))(bufferutil@4.1.0)(utf-8-validate@5.0.10)(webpack@5.102.1) '@rspack/cli': specifier: catalog:rspack version: 2.0.6(@rspack/core@2.0.6(@swc/helpers@0.5.21))(@rspack/dev-server@2.0.3(@rspack/core@2.0.6(@swc/helpers@0.5.21))) @@ -654,6 +654,9 @@ importers: specifier: catalog:repo version: 2.8.1 devDependencies: + '@clerk/expo-google-signin': + specifier: workspace:* + version: link:../expo-google-signin '@clerk/expo-passkeys': specifier: workspace:* version: link:../expo-passkeys @@ -691,6 +694,43 @@ importers: specifier: ^0.85.2 version: 0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10) + packages/expo-google-signin: + dependencies: + '@clerk/react': + specifier: workspace:^ + version: link:../react + '@clerk/shared': + specifier: workspace:^ + version: link:../shared + tslib: + specifier: catalog:repo + version: 2.8.1 + devDependencies: + '@expo/config-plugins': + specifier: ^54.0.4 + version: 54.0.4 + '@types/react': + specifier: catalog:react + version: 18.3.28 + expo: + specifier: ~54.0.34 + version: 54.0.35(@babel/core@7.29.7)(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10) + expo-constants: + specifier: ^18.0.13 + version: 18.0.13(expo@54.0.35(@babel/core@7.29.7)(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10))(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)) + expo-crypto: + specifier: ^15.0.9 + version: 15.0.9(expo@54.0.35(@babel/core@7.29.7)(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10)) + react: + specifier: 18.3.1 + version: 18.3.1 + react-native: + specifier: ^0.85.2 + version: 0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10) + tsup: + specifier: catalog:repo + version: 8.5.1(@microsoft/api-extractor@7.58.7(@types/node@25.6.0))(jiti@2.7.0)(postcss@8.5.15)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0) + packages/expo-passkeys: dependencies: '@clerk/shared': @@ -1081,13 +1121,13 @@ importers: devDependencies: '@mdx-js/loader': specifier: ^3.1.1 - version: 3.1.1(webpack@5.102.1(esbuild@0.27.7)) + version: 3.1.1(webpack@5.102.1) '@mdx-js/react': specifier: ^3.1.0 version: 3.1.1(@types/react@18.3.28)(react@18.3.1) '@next/mdx': specifier: ^15.0.0 - version: 15.5.19(@mdx-js/loader@3.1.1(webpack@5.102.1(esbuild@0.27.7)))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@18.3.1)) + version: 15.5.19(@mdx-js/loader@3.1.1(webpack@5.102.1))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@18.3.1)) '@tailwindcss/postcss': specifier: ^4.0.0 version: 4.3.0 @@ -1139,7 +1179,7 @@ importers: version: 1.157.16(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@tanstack/react-start': specifier: 1.157.16 - version: 1.157.16(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vite@7.3.5(@types/node@25.6.0)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.20.6)(yaml@2.9.0))(webpack@5.102.1(esbuild@0.27.7)) + version: 1.157.16(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vite@7.3.5(@types/node@25.6.0)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.20.6)(yaml@2.9.0))(webpack@5.102.1) esbuild-plugin-file-path-extensions: specifier: ^2.1.4 version: 2.1.4 @@ -1228,7 +1268,7 @@ importers: version: 2.1.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@rsdoctor/rspack-plugin': specifier: ^1.5.9 - version: 1.5.9(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@rspack/core@2.0.6(@swc/helpers@0.5.21))(bufferutil@4.1.0)(utf-8-validate@5.0.10)(webpack@5.102.1(esbuild@0.27.7)) + version: 1.5.9(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@rspack/core@2.0.6(@swc/helpers@0.5.21))(bufferutil@4.1.0)(utf-8-validate@5.0.10)(webpack@5.102.1) '@rspack/cli': specifier: catalog:rspack version: 2.0.6(@rspack/core@2.0.6(@swc/helpers@0.5.21))(@rspack/dev-server@2.0.3(@rspack/core@2.0.6(@swc/helpers@0.5.21))) @@ -3024,7 +3064,7 @@ packages: '@expo/bunyan@4.0.1': resolution: {integrity: sha512-+Lla7nYSiHZirgK+U/uYzsLv/X+HaJienbD5AKX1UQZHYfWaP+9uuQluRB4GrEVWF0GZ7vEVp/jzaOT9k/SQlg==} - engines: {node: '>=0.10.0'} + engines: {'0': node >=0.10.0} '@expo/cli@0.22.28': resolution: {integrity: sha512-lvt72KNitGuixYD2l3SZmRKVu2G4zJpmg5V7WfUBNpmUU5oODBw/6qmiJ6kSLAlfDozscUk+BBGknBBzxUrwrA==} @@ -3043,6 +3083,19 @@ packages: react-native: optional: true + '@expo/cli@54.0.25': + resolution: {integrity: sha512-WnUqIb8oMBhtwSfIqdCHCzcaDIpLNXItRVd5miuvWi4GO0SGo89PSsAkbVJ+LJgcaY+v5rbgMELJS9I/CqOulA==} + hasBin: true + peerDependencies: + expo: '*' + expo-router: '*' + react-native: '*' + peerDependenciesMeta: + expo-router: + optional: true + react-native: + optional: true + '@expo/code-signing-certificates@0.0.5': resolution: {integrity: sha512-BNhXkY1bblxKZpltzAx98G2Egj9g1Q+JRcvR7E99DOj862FTCX+ZPsAUtPTr7aHxwtrL7+fL3r0JSmM9kBm+Bw==} @@ -3079,6 +3132,9 @@ packages: '@expo/devcert@1.2.0': resolution: {integrity: sha512-Uilcv3xGELD5t/b0eM4cxBFEKQRIivB3v7i+VhWLV/gL98aw810unLKKJbGAxAIhY6Ipyz8ChWibFsKFXYwstA==} + '@expo/devcert@1.2.1': + resolution: {integrity: sha512-qC4eaxmKMTmJC2ahwyui6ud8f3W60Ss7pMkpBq40Hu3zyiAaugPXnZ24145U7K36qO9UHdZUVxsCvIpz2RYYCA==} + '@expo/devtools@0.1.7': resolution: {integrity: sha512-dfIa9qMyXN+0RfU6SN4rKeXZyzKWsnz6xBSDccjL4IRiE+fQ0t84zg0yxgN4t/WK2JU5v6v4fby7W7Crv9gJvA==} peerDependencies: @@ -3090,6 +3146,17 @@ packages: react-native: optional: true + '@expo/devtools@0.1.8': + resolution: {integrity: sha512-SVLxbuanDjJPgc0sy3EfXUMLb/tXzp6XIHkhtPVmTWJAp+FOr6+5SeiCfJrCzZFet0Ifyke2vX3sFcKwEvCXwQ==} + peerDependencies: + react: 18.3.1 + react-native: '*' + peerDependenciesMeta: + react: + optional: true + react-native: + optional: true + '@expo/env@0.3.0': resolution: {integrity: sha512-OtB9XVHWaXidLbHvrVDeeXa09yvTl3+IQN884sO6PhIi2/StXfgSH/9zC7IvzrDB8kW3EBJ1PPLuCUJ2hxAT7Q==} @@ -3107,15 +3174,28 @@ packages: resolution: {integrity: sha512-8YPJpEYlmV171fi+t+cSLMX1nC5ngY9j2FiN70dHldLpd6Ct6ouGhk96svJ4BQZwsqwII2pokwzrDAwqo4Z0FQ==} hasBin: true + '@expo/fingerprint@0.15.5': + resolution: {integrity: sha512-mdVoAMcux1WlM6kd1RoWiHRNqKqS+J6mKmWQ/BKgeh937S/fcW58EE68O6nc4KDXtWi3PBeNHskOFcgyIuD4hw==} + hasBin: true + '@expo/image-utils@0.6.5': resolution: {integrity: sha512-RsS/1CwJYzccvlprYktD42KjyfWZECH6PPIEowvoSmXfGLfdViwcUEI4RvBfKX5Jli6P67H+6YmHvPTbGOboew==} + '@expo/image-utils@0.8.14': + resolution: {integrity: sha512-5Sn+jG4Cw+shC2wDMXoqSAJnvERbiwzHn05FpWtD5IBflfTIs5gUmjzwiGVyjOdlMSQhgRrw/AymPbmO9h9mpQ==} + '@expo/image-utils@0.8.7': resolution: {integrity: sha512-SXOww4Wq3RVXLyOaXiCCuQFguCDh8mmaHBv54h/R29wGl4jRY8GEyQEx8SypV/iHt1FbzsU/X3Qbcd9afm2W2w==} + '@expo/json-file@10.0.16': + resolution: {integrity: sha512-fcVkWEj+hLuP2yt5W0aw6LmDRqSPWDLUSxOMcmFeV+algmIF59sQVKCwB9btjQLd4V6x9N0pISkQEkBubUHrCw==} + '@expo/json-file@10.0.8': resolution: {integrity: sha512-9LOTh1PgKizD1VXfGQ88LtDH0lRwq9lsTb4aichWTWSWqy3Ugfkhfm3BhzBIkJJfQQ5iJu3m/BoRlEIjoCGcnQ==} + '@expo/json-file@10.2.0': + resolution: {integrity: sha512-S6XzKe3R9GQeHiUPXc3xJjOv2VJhOEwFYf7xdC2z2cUqt3kZJ9mSO877sNQloVdnW/SUCtPY3bexlM7nwq+CAQ==} + '@expo/json-file@8.3.3': resolution: {integrity: sha512-eZ5dld9AD0PrVRiIWpRkm5aIoWBw3kAyd8VkuWEy92sEthBKDDDHAnK2a0dw0Eil6j7rK7lS/Qaq/Zzngv2h5A==} @@ -3136,6 +3216,14 @@ packages: '@expo/metro-config@0.19.12': resolution: {integrity: sha512-fhT3x1ikQWHpZgw7VrEghBdscFPz1laRYa8WcVRB18nTTqorF6S8qPYslkJu1faEziHZS7c2uyDzTYnrg/CKbg==} + '@expo/metro-config@54.0.16': + resolution: {integrity: sha512-3LLb9ZQl0VlqSlsalJ7+CYjfz60PBoSDHvpE1UF71aTM1Nx0Vb4LhXo7bCCC+PYP9q/GPB58LLbIROQ8PjKX2w==} + peerDependencies: + expo: '*' + peerDependenciesMeta: + expo: + optional: true + '@expo/metro-config@54.0.9': resolution: {integrity: sha512-CRI4WgFXrQ2Owyr8q0liEBJveUIF9DcYAKadMRsJV7NxGNBdrIIKzKvqreDfsGiRqivbLsw6UoNb3UE7/SvPfg==} peerDependencies: @@ -3147,10 +3235,20 @@ packages: '@expo/metro@54.1.0': resolution: {integrity: sha512-MgdeRNT/LH0v1wcO0TZp9Qn8zEF0X2ACI0wliPtv5kXVbXWI+yK9GyrstwLAiTXlULKVIg3HVSCCvmLu0M3tnw==} + '@expo/metro@54.2.0': + resolution: {integrity: sha512-h68TNZPGsk6swMmLm9nRSnE2UXm48rWwgcbtAHVMikXvbxdS41NDHHeqg1rcQ9AbznDRp6SQVC2MVpDnsRKU1w==} + '@expo/osascript@2.3.7': resolution: {integrity: sha512-IClSOXxR0YUFxIriUJVqyYki7lLMIHrrzOaP01yxAL1G8pj2DWV5eW1y5jSzIcIfSCNhtGsshGd1tU/AYup5iQ==} engines: {node: '>=12'} + '@expo/osascript@2.6.0': + resolution: {integrity: sha512-QvqDBlJXa8CS2vRORJ4wEflY1m0vVI07uSJdIRgBrLxRPBcsrXxrtU7+wXRXMqfq9zLwNP9XbvRsXF2omoDylg==} + engines: {node: '>=12'} + + '@expo/package-manager@1.12.1': + resolution: {integrity: sha512-fQLiFAcFRWF53mtuLK32SUJQ1ahhrTcBZPZPedYTiUT5ha5FF+UO6bPtCc0Y/hgj0/m3HCGBAuSHjbg2kI9oPQ==} + '@expo/package-manager@1.9.8': resolution: {integrity: sha512-4/I6OWquKXYnzo38pkISHCOCOXxfeEmu4uDoERq1Ei/9Ur/s9y3kLbAamEkitUkDC7gHk1INxRWEfFNzGbmOrA==} @@ -3163,14 +3261,30 @@ packages: '@expo/plist@0.4.8': resolution: {integrity: sha512-pfNtErGGzzRwHP+5+RqswzPDKkZrx+Cli0mzjQaus1ZWFsog5ibL+nVT3NcporW51o8ggnt7x813vtRbPiyOrQ==} + '@expo/plist@0.4.9': + resolution: {integrity: sha512-MPVpmKGfnQEnrCzgxuXcmPP/y/t6AVm+DcSb2Myp21LKWv1N3l8uFxMggesfF4ixAxkRlGmMMx9GyDC9M+XklQ==} + '@expo/prebuild-config@54.0.6': resolution: {integrity: sha512-xowuMmyPNy+WTNq+YX0m0EFO/Knc68swjThk4dKivgZa8zI1UjvFXOBIOp8RX4ljCXLzwxQJM5oBBTvyn+59ZA==} peerDependencies: expo: '*' + '@expo/prebuild-config@54.0.8': + resolution: {integrity: sha512-EA7N4dloty2t5Rde+HP0IEE+nkAQiu4A/+QGZGT9mFnZ5KKjPPkqSyYcRvP5bhQE10D+tvz6X0ngZpulbMdbsg==} + peerDependencies: + expo: '*' + '@expo/prebuild-config@8.2.0': resolution: {integrity: sha512-CxiPpd980s0jyxi7eyN3i/7YKu3XL+8qPjBZUCYtc0+axpGweqIkq2CslyLSKHyqVyH/zlPkbVgWdyiYavFS5Q==} + '@expo/require-utils@55.0.5': + resolution: {integrity: sha512-U4K/CQ2VpXuwfNGsN+daKmYOt15hCP8v/pXaYH6eut7kdYZo6SfJ1yr67BIcJ+1Gzzs+QzTxswAZChKpXmceyw==} + peerDependencies: + typescript: ^5.0.0 || ^5.0.0-0 + peerDependenciesMeta: + typescript: + optional: true + '@expo/rudder-sdk-node@1.1.1': resolution: {integrity: sha512-uy/hS/awclDJ1S88w9UGpc6Nm9XnNUjzOAAib1A3PVAnGQIwebg8DpFqOthFBTlZxeuV/BKbZ5jmTbtNZkp1WQ==} engines: {node: '>=12'} @@ -3178,6 +3292,9 @@ packages: '@expo/schema-utils@0.1.7': resolution: {integrity: sha512-jWHoSuwRb5ZczjahrychMJ3GWZu54jK9ulNdh1d4OzAEq672K9E5yOlnlBsfIHWHGzUAT+0CL7Yt1INiXTz68g==} + '@expo/schema-utils@0.1.8': + resolution: {integrity: sha512-9I6ZqvnAvKKDiO+ZF8BpQQFYWXOJvTAL5L/227RUbWG1OVZDInFifzCBiqAZ3b67NRfeAgpgvbA7rejsqhY62A==} + '@expo/sdk-runtime-versions@1.0.0': resolution: {integrity: sha512-Doz2bfiPndXYFPMRwPyGa1k5QaKDVpY806UJj570epIiMzWaYyCtobasyfC++qfIXVb5Ocy7r3tP9d62hAQ7IQ==} @@ -3185,6 +3302,10 @@ packages: resolution: {integrity: sha512-QdWi16+CHB9JYP7gma19OVVg0BFkvU8zNj9GjWorYI8Iv8FUxjOCcYRuAmX4s/h91e4e7BPsskc8cSrZYho9Ew==} engines: {node: '>=12'} + '@expo/spawn-async@1.8.0': + resolution: {integrity: sha512-eb9xxd/LbuEGSdua4NumCu/McVB9EM+F/JxB9pWgnERw4HQ9XyTNH1KapG6oqLWR8TuRK2LQfzJlmNi94CVobw==} + engines: {node: '>=12'} + '@expo/sudo-prompt@9.3.2': resolution: {integrity: sha512-HHQigo3rQWKMDzYDLkubN5WQOYXJJE2eNqIQC2axC2iO3mHdwnIR7FgZVvHWtBwAdzBgAP0ECp8KqS8TiMKvgw==} @@ -7665,6 +7786,18 @@ packages: react-compiler-runtime: optional: true + babel-preset-expo@54.0.11: + resolution: {integrity: sha512-dEpeFDtYEFzmWtWVwvt7sUCZH0fxXPfbJlgXd7XNZSQDa/Ki/hTOj9exMTzqR2oyPHDNcE9VxYCJ4oS6xw4Pjg==} + peerDependencies: + '@babel/runtime': ^7.20.0 + expo: '*' + react-refresh: '>=0.14.0 <1.0.0' + peerDependenciesMeta: + '@babel/runtime': + optional: true + expo: + optional: true + babel-preset-expo@54.0.7: resolution: {integrity: sha512-JENWk0bvxW4I1ftveO8GRtX2t2TH6N4Z0TPvIHxroZ/4SswUfyNsUNbbP7Fm4erj3ar/JHGri5kTZ+s3xdjHZw==} peerDependencies: @@ -9551,6 +9684,13 @@ packages: react: 18.3.1 react-native: '*' + expo-asset@12.0.13: + resolution: {integrity: sha512-x/p7WvQUnkn6K43b9eL6SPeq5Vnf1E8BDe9bDrWrvMqzyUvJnUFvl+ctg3034s/+UHe7Ne2pAmc0+yzbl8CrDQ==} + peerDependencies: + expo: '*' + react: 18.3.1 + react-native: '*' + expo-asset@12.0.9: resolution: {integrity: sha512-vrdRoyhGhBmd0nJcssTSk1Ypx3Mbn/eXaaBCQVkL0MJ8IOZpAObAjfD5CTy8+8RofcHEQdh3wwZVCs7crvfOeg==} peerDependencies: @@ -9600,12 +9740,25 @@ packages: expo: '*' react-native: '*' + expo-file-system@19.0.23: + resolution: {integrity: sha512-MeGkid9OeNILfT/qonaXHp4f2c15xaB28U/bcN7pqZej0Kx0+6+V7e9ZIXpPHm07zVatxA+QkMTPQEGfmvVOxA==} + peerDependencies: + expo: '*' + react-native: '*' + expo-font@13.0.4: resolution: {integrity: sha512-eAP5hyBgC8gafFtprsz0HMaB795qZfgJWqTmU0NfbSin1wUuVySFMEPMOrTkTgmazU73v4Cb4x7p86jY1XXYUw==} peerDependencies: expo: '*' react: 18.3.1 + expo-font@14.0.12: + resolution: {integrity: sha512-QQzunE2Mxk45AsCWm3tK7OpVljbtVnKD58q4/qliev+cbye1IOduUnRIdD+P7DyButw17G9MTX795kgaQiz5hQ==} + peerDependencies: + expo: '*' + react: 18.3.1 + react-native: '*' + expo-font@14.0.9: resolution: {integrity: sha512-xCoQbR/36qqB6tew/LQ6GWICpaBmHLhg/Loix5Rku/0ZtNaXMJv08M9o1AcrdiGTn/Xf/BnLu6DgS45cWQEHZg==} peerDependencies: @@ -9625,6 +9778,12 @@ packages: expo: '*' react: 18.3.1 + expo-keep-awake@15.0.8: + resolution: {integrity: sha512-YK9M1VrnoH1vLJiQzChZgzDvVimVoriibiDIFLbQMpjYBnvyfUeHJcin/Gx1a+XgupNXy92EQJLgI/9ZuXajYQ==} + peerDependencies: + expo: '*' + react: 18.3.1 + expo-linking@6.3.1: resolution: {integrity: sha512-xuZCntSBGWCD/95iZ+mTUGTwHdy8Sx+immCqbUBxdvZ2TN61P02kKg7SaLS8A4a/hLrSCwrg5tMMwu5wfKr35g==} @@ -9641,6 +9800,10 @@ packages: resolution: {integrity: sha512-pOtPDLln3Ju8DW1zRW4OwZ702YqZ8g+kM/tEY1sWfv22kWUtxkvK+ytRDRpRdnKEnC28okbhWqeMnmVkSFzP6Q==} hasBin: true + expo-modules-autolinking@3.0.26: + resolution: {integrity: sha512-WOaud6UKg16ciCOj8raKcMOoKFMHLXKI29U29yhgu1lf+Y7VxJyCktUcYo6AM+ccZ7zLD1uWZdMtgnpf+95OXA==} + hasBin: true + expo-modules-core@2.2.3: resolution: {integrity: sha512-01QqZzpP/wWlxnNly4G06MsOBUTbMDj02DQigZoXfDh80vd/rk3/uVXqnZgOdLSggTs6DnvOgAUy0H2q30XdUg==} @@ -9650,6 +9813,12 @@ packages: react: 18.3.1 react-native: '*' + expo-modules-core@3.0.30: + resolution: {integrity: sha512-a6IrpAn/Jbmwxi9L+hMmXKpNqnkUpoF7WHOpn02rVLyax2J0gB1vvCVE5rNydplEnt41Q6WxQwvcOjZaIkcSUg==} + peerDependencies: + react: 18.3.1 + react-native: '*' + expo-secure-store@12.8.1: resolution: {integrity: sha512-Ju3jmkHby4w7rIzdYAt9kQyQ7HhHJ0qRaiQOInknhOLIltftHjEgF4I1UmzKc7P5RCfGNmVbEH729Pncp/sHXQ==} peerDependencies: @@ -9659,6 +9828,10 @@ packages: resolution: {integrity: sha512-IN06r3oPxFh3plSXdvBL7dx0x6k+0/g0bgxJlNISs6qL5Z+gyPuWS750dpTzOeu37KyBG0RcyO9cXUKzjYgd4A==} engines: {node: '>=20.16.0'} + expo-server@1.0.7: + resolution: {integrity: sha512-mcmyML3oXcqFUXUxtdtCL1O00ztNI2v76d+MdniXRUgHNxIcHZ05zo+DqBaOOT6LQnPk4vA4YHqQl7iGUfRb3g==} + engines: {node: '>=20.16.0'} + expo-web-browser@12.8.2: resolution: {integrity: sha512-Mw8WoFMSADecNjtC4PZVsVj1/lYdxIAH1jOVV+F8v8SEWYxORWofoShfXg7oUxRLu0iUG8JETfO5y4m8+fOgdg==} peerDependencies: @@ -9703,6 +9876,23 @@ packages: react-native-webview: optional: true + expo@54.0.35: + resolution: {integrity: sha512-E+tXpQwjGm5fK/uwa55p0Xx/kuo5dXDKfVJ95IargTNa5KiFt26lSTXXa9KnHbI4EDLwFD38/xTKZvzPTlGTdg==} + hasBin: true + peerDependencies: + '@expo/dom-webview': '*' + '@expo/metro-runtime': '*' + react: 18.3.1 + react-native: '*' + react-native-webview: '*' + peerDependenciesMeta: + '@expo/dom-webview': + optional: true + '@expo/metro-runtime': + optional: true + react-native-webview: + optional: true + exponential-backoff@3.1.3: resolution: {integrity: sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==} @@ -11287,6 +11477,10 @@ packages: resolution: {integrity: sha512-mnIlAEMu4OyEvUNdzco9xpuB9YVcPkQec+QsgycBCtPZvEqWPCDPfbAE4OJMdBBWpZWtpCn1xw9jJYlwjWI5zQ==} hasBin: true + lan-network@0.2.1: + resolution: {integrity: sha512-ONPnazC96VKDntab9j9JKwIWhZ4ZUceB4A9Epu4Ssg0hYFmtHZSeQ+n15nIwTFmcBUKtExOer8WTJ4GF9MO64A==} + hasBin: true + language-subtag-registry@0.3.23: resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} @@ -11862,6 +12056,10 @@ packages: resolution: {integrity: sha512-rirY1QMFlA1uxH3ZiNauBninwTioOgwChnRdDcbB4tgRZ+bGX9DiXoh9QdpppiaVKXdJsII932OwWXGGV4+Nlw==} engines: {node: '>=20.19.4'} + metro-babel-transformer@0.83.3: + resolution: {integrity: sha512-1vxlvj2yY24ES1O5RsSIvg4a4WeL7PFXgKOHvXTXiW0deLvQr28ExXj6LjwCCDZ4YZLhq6HddLpZnX4dEdSq5g==} + engines: {node: '>=20.19.4'} + metro-babel-transformer@0.84.4: resolution: {integrity: sha512-rvCfz8snl9h20VcvpOHxZuHP1SlAkv4HXbzw7nyyVwu6Eqo5PRerbakQ9XmUCOsRy70spJ37O+G1TK8oMzo48g==} engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0} @@ -11870,6 +12068,10 @@ packages: resolution: {integrity: sha512-3EMG/GkGKYoTaf5RqguGLSWRqGTwO7NQ0qXKmNBjr0y6qD9s3VBXYlwB+MszGtmOKsqE9q3FPrE5Nd9Ipv7rZw==} engines: {node: '>=20.19.4'} + metro-cache-key@0.83.3: + resolution: {integrity: sha512-59ZO049jKzSmvBmG/B5bZ6/dztP0ilp0o988nc6dpaDsU05Cl1c/lRf+yx8m9WW/JVgbmfO5MziBU559XjI5Zw==} + engines: {node: '>=20.19.4'} + metro-cache-key@0.84.4: resolution: {integrity: sha512-wVO79aGrkYImpnaVS4+d5RrRBRPX31QtvKB3wKGBuiNSznduZTQHzsrJZRroFJSwnygrzdsGUtDQPuqqFjFdvw==} engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0} @@ -11878,6 +12080,10 @@ packages: resolution: {integrity: sha512-Z43IodutUZeIS7OTH+yQFjc59QlFJ6s5OvM8p2AP9alr0+F8UKr8ADzFzoGKoHefZSKGa4bJx7MZJLF6GwPDHQ==} engines: {node: '>=20.19.4'} + metro-cache@0.83.3: + resolution: {integrity: sha512-3jo65X515mQJvKqK3vWRblxDEcgY55Sk3w4xa6LlfEXgQ9g1WgMh9m4qVZVwgcHoLy0a2HENTPCCX4Pk6s8c8Q==} + engines: {node: '>=20.19.4'} + metro-cache@0.84.4: resolution: {integrity: sha512-gpcFQdSLUwUCk71saKoE64jLFbx2nwTfVCcPSULMNT8QYq0p1eZZE29Jvd0HtT/UlhC3ZOutLxJME5xqD2JUZg==} engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0} @@ -11886,6 +12092,10 @@ packages: resolution: {integrity: sha512-1FjCcdBe3e3D08gSSiU9u3Vtxd7alGH3x/DNFqWDFf5NouX4kLgbVloDDClr1UrLz62c0fHh2Vfr9ecmrOZp+g==} engines: {node: '>=20.19.4'} + metro-config@0.83.3: + resolution: {integrity: sha512-mTel7ipT0yNjKILIan04bkJkuCzUUkm2SeEaTads8VfEecCh+ltXchdq6DovXJqzQAXuR2P9cxZB47Lg4klriA==} + engines: {node: '>=20.19.4'} + metro-config@0.84.4: resolution: {integrity: sha512-PMotGDjXcXLWo2TMRH+VR99phFNgYTwqh4OoieIKK3yTJa1Jmkl+fZJxDO0jfBvNF+WESHciHvpNuBtXaF3B0Q==} engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0} @@ -11894,6 +12104,10 @@ packages: resolution: {integrity: sha512-8DRb0O82Br0IW77cNgKMLYWUkx48lWxUkvNUxVISyMkcNwE/9ywf1MYQUE88HaKwSrqne6kFgCSA/UWZoUT0Iw==} engines: {node: '>=20.19.4'} + metro-core@0.83.3: + resolution: {integrity: sha512-M+X59lm7oBmJZamc96usuF1kusd5YimqG/q97g4Ac7slnJ3YiGglW5CsOlicTR5EWf8MQFxxjDoB6ytTqRe8Hw==} + engines: {node: '>=20.19.4'} + metro-core@0.84.4: resolution: {integrity: sha512-HONpWC5LGXZn3ffkd4Hu6AIrfE7j4Z0g0wMo/goV24WOB3lhuFZ40KgvaDiSw8iyQHloMYay5N/wPX+z8oN/PQ==} engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0} @@ -11902,6 +12116,10 @@ packages: resolution: {integrity: sha512-cMSWnEqZrp/dzZIEd7DEDdk72PXz6w5NOKriJoDN9p1TDQ5nAYrY2lHi8d6mwbcGLoSlWmpPyny9HZYFfPWcGQ==} engines: {node: '>=20.19.4'} + metro-file-map@0.83.3: + resolution: {integrity: sha512-jg5AcyE0Q9Xbbu/4NAwwZkmQn7doJCKGW0SLeSJmzNB9Z24jBe0AL2PHNMy4eu0JiKtNWHz9IiONGZWq7hjVTA==} + engines: {node: '>=20.19.4'} + metro-file-map@0.84.4: resolution: {integrity: sha512-KSVDi/u60hKPx++NLu3MTIvyjzNoJnFAF8PQFxaj1jiSka/wjw+Ua6sNuJ0TDHQv+7AAoFQxeMgaRAe8Yic5wQ==} engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0} @@ -11910,6 +12128,10 @@ packages: resolution: {integrity: sha512-zvIxnh7U0JQ7vT4quasKsijId3dOAWgq+ip2jF/8TMrPUqQabGrs04L2dd0haQJ+PA+d4VvK/bPOY8X/vL2PWw==} engines: {node: '>=20.19.4'} + metro-minify-terser@0.83.3: + resolution: {integrity: sha512-O2BmfWj6FSfzBLrNCXt/rr2VYZdX5i6444QJU0fFoc7Ljg+Q+iqebwE3K0eTvkI6TRjELsXk1cjU+fXwAR4OjQ==} + engines: {node: '>=20.19.4'} + metro-minify-terser@0.84.4: resolution: {integrity: sha512-5qpbaVOMC7CPitIpuewzVeGw7E+C3ykbv2mqTjQLl85Z3annSVGlSCTcsZjqXZzjupfK4Ztj3dDc4kc44NZwtQ==} engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0} @@ -11918,6 +12140,10 @@ packages: resolution: {integrity: sha512-Yf5mjyuiRE/Y+KvqfsZxrbHDA15NZxyfg8pIk0qg47LfAJhpMVEX+36e6ZRBq7KVBqy6VDX5Sq55iHGM4xSm7Q==} engines: {node: '>=20.19.4'} + metro-resolver@0.83.3: + resolution: {integrity: sha512-0js+zwI5flFxb1ktmR///bxHYg7OLpRpWZlBBruYG8OKYxeMP7SV0xQ/o/hUelrEMdK4LJzqVtHAhBm25LVfAQ==} + engines: {node: '>=20.19.4'} + metro-resolver@0.84.4: resolution: {integrity: sha512-1qLgbxQ5ZGhhutuPot1Yp348ofDsATL2WkrHF65TobqTT9K3P9qJXw38bomk7ncp5B7OYMfWwtyBZo1lCV792A==} engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0} @@ -11926,6 +12152,10 @@ packages: resolution: {integrity: sha512-nnsPtgRvFbNKwemqs0FuyFDzXLl+ezuFsUXDbX8o0SXOfsOPijqiQrf3kuafO1Zx1aUWf4NOrKJMAQP5EEHg9A==} engines: {node: '>=20.19.4'} + metro-runtime@0.83.3: + resolution: {integrity: sha512-JHCJb9ebr9rfJ+LcssFYA2x1qPYuSD/bbePupIGhpMrsla7RCwC/VL3yJ9cSU+nUhU4c9Ixxy8tBta+JbDeZWw==} + engines: {node: '>=20.19.4'} + metro-runtime@0.84.4: resolution: {integrity: sha512-Jibypds4g7AhzdRKY+kDoj51s5EXMwgyp5ddtlreDAsWefMdOx+agWqgm0H2XSZ/ueanHHVM89fnf5OJnlxa8Q==} engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0} @@ -11934,6 +12164,10 @@ packages: resolution: {integrity: sha512-5FL/6BSQvshIKjXOennt9upFngq2lFvDakZn5LfauIVq8+L4sxXewIlSTcxAtzbtjAIaXeOSVMtCJ5DdfCt9AA==} engines: {node: '>=20.19.4'} + metro-source-map@0.83.3: + resolution: {integrity: sha512-xkC3qwUBh2psVZgVavo8+r2C9Igkk3DibiOXSAht1aYRRcztEZNFtAMtfSB7sdO2iFMx2Mlyu++cBxz/fhdzQg==} + engines: {node: '>=20.19.4'} + metro-source-map@0.84.4: resolution: {integrity: sha512-jbWkPxIesVuo1IWkvezmMJld6iu8nD62GsrZiV6jP37AOdbo4OBq1FJ+qkOg8sV05wAHB//jAbziuW0SlJfW4g==} engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0} @@ -11943,6 +12177,11 @@ packages: engines: {node: '>=20.19.4'} hasBin: true + metro-symbolicate@0.83.3: + resolution: {integrity: sha512-F/YChgKd6KbFK3eUR5HdUsfBqVsanf5lNTwFd4Ca7uuxnHgBC3kR/Hba/RGkenR3pZaGNp5Bu9ZqqP52Wyhomw==} + engines: {node: '>=20.19.4'} + hasBin: true + metro-symbolicate@0.84.4: resolution: {integrity: sha512-OnfpacxUqGPZQ27t8qK9mFa7uqHIlVWeqRqkCbvMvreEBiamEeOn8krKtcwgP5M4cYDPwuSmCTopHMVthqG4zA==} engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0} @@ -11952,6 +12191,10 @@ packages: resolution: {integrity: sha512-5WlW25WKPkiJk2yA9d8bMuZrgW7vfA4f4MBb9ZeHbTB3eIAoNN8vS8NENgG/X/90vpTB06X66OBvxhT3nHwP6A==} engines: {node: '>=20.19.4'} + metro-transform-plugins@0.83.3: + resolution: {integrity: sha512-eRGoKJU6jmqOakBMH5kUB7VitEWiNrDzBHpYbkBXW7C5fUGeOd2CyqrosEzbMK5VMiZYyOcNFEphvxk3OXey2A==} + engines: {node: '>=20.19.4'} + metro-transform-plugins@0.84.4: resolution: {integrity: sha512-kehr6HbAecqD0/a3xLXobELdPaAmRAl8bel0qagPF4vhZtux93nS8S4eq2kgKt6J2GnQpVjSoW1PXdst04mwow==} engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0} @@ -11960,6 +12203,10 @@ packages: resolution: {integrity: sha512-G5DsIg+cMZ2KNfrdLnWMvtppb3+Rp1GMyj7Bvd9GgYc/8gRmvq1XVEF9XuO87Shhb03kFhGqMTgZerz3hZ1v4Q==} engines: {node: '>=20.19.4'} + metro-transform-worker@0.83.3: + resolution: {integrity: sha512-Ztekew9t/gOIMZX1tvJOgX7KlSLL5kWykl0Iwu2cL2vKMKVALRl1hysyhUw0vjpAvLFx+Kfq9VLjnHIkW32fPA==} + engines: {node: '>=20.19.4'} + metro-transform-worker@0.84.4: resolution: {integrity: sha512-W1IYMvvXTu4MxYr7d9h7CeG2vpIr3bmLLIavkPY4O1ilzDrvS8z/NEe6y+pC44Ff7raMXQgYSfdqDUwN/i39gg==} engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0} @@ -11969,6 +12216,11 @@ packages: engines: {node: '>=20.19.4'} hasBin: true + metro@0.83.3: + resolution: {integrity: sha512-+rP+/GieOzkt97hSJ0MrPOuAH/jpaS21ZDvL9DJ35QYRDlQcwzcvUlGUf79AnQxq/2NPiS/AULhhM4TKutIt8Q==} + engines: {node: '>=20.19.4'} + hasBin: true + metro@0.84.4: resolution: {integrity: sha512-8ETTubqfD6ornDy2zYDvRcKnVDOXdFJsjetYDBsY4oAsb6NJkiwFR+FaMESyGppFmQUyBQA4H4sFGxzcQSGtFA==} engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0} @@ -12511,6 +12763,10 @@ packages: resolution: {integrity: sha512-XlK3w4M+dwd1g1gvHzVbxiXEbUllRONEgcF2uEO0zm4nxa0eKlh41c6N65q1xbiDOeKKda1tvNOAD33fNjyvCg==} engines: {node: '>=20.19.4'} + ob1@0.83.3: + resolution: {integrity: sha512-egUxXCDwoWG06NGCS5s5AdcpnumHKJlfd3HH06P3m9TEMwwScfcY35wpQxbm9oHof+dM/lVH9Rfyu1elTVelSA==} + engines: {node: '>=20.19.4'} + ob1@0.84.4: resolution: {integrity: sha512-eJXMpz4aQHXF/YBB9ddqZDIS+ooO91hObo9FoW/xBkr54/zCwYYCDqT/O54vNo8kOkWs5Ou/y28NgdrV0edQNA==} engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0} @@ -18377,6 +18633,81 @@ snapshots: - supports-color - utf-8-validate + '@expo/cli@54.0.25(bufferutil@4.1.0)(expo@54.0.35(@babel/core@7.29.7)(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10))(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(typescript@5.9.3)(utf-8-validate@5.0.10)': + dependencies: + '@0no-co/graphql.web': 1.2.0(graphql@16.14.1) + '@expo/code-signing-certificates': 0.0.6 + '@expo/config': 12.0.13 + '@expo/config-plugins': 54.0.4 + '@expo/devcert': 1.2.1 + '@expo/env': 2.0.11 + '@expo/image-utils': 0.8.14(typescript@5.9.3) + '@expo/json-file': 10.2.0 + '@expo/metro': 54.2.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) + '@expo/metro-config': 54.0.16(bufferutil@4.1.0)(expo@54.0.35(@babel/core@7.29.7)(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10) + '@expo/osascript': 2.6.0 + '@expo/package-manager': 1.12.1 + '@expo/plist': 0.4.9 + '@expo/prebuild-config': 54.0.8(expo@54.0.35(@babel/core@7.29.7)(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10))(typescript@5.9.3) + '@expo/schema-utils': 0.1.8 + '@expo/spawn-async': 1.7.2 + '@expo/ws-tunnel': 1.0.6 + '@expo/xcpretty': 4.3.2 + '@react-native/dev-middleware': 0.81.5(bufferutil@4.1.0)(utf-8-validate@5.0.10) + '@urql/core': 5.2.0(graphql@16.14.1) + '@urql/exchange-retry': 1.3.2(@urql/core@5.2.0(graphql@16.14.1)) + accepts: 1.3.8 + arg: 5.0.2 + better-opn: 3.0.2 + bplist-creator: 0.1.0 + bplist-parser: 0.3.2 + chalk: 4.1.2 + ci-info: 3.9.0 + compression: 1.8.1 + connect: 3.7.0 + debug: 4.4.3(supports-color@8.1.1) + env-editor: 0.4.2 + expo: 54.0.35(@babel/core@7.29.7)(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10) + expo-server: 1.0.7 + freeport-async: 2.0.0 + getenv: 2.0.0 + glob: 13.0.0 + lan-network: 0.2.1 + minimatch: 9.0.7 + node-forge: 1.4.0 + npm-package-arg: 11.0.3 + ora: 3.4.0 + picomatch: 4.0.4 + pretty-bytes: 5.6.0 + pretty-format: 29.7.0 + progress: 2.0.3 + prompts: 2.4.2 + qrcode-terminal: 0.11.0 + require-from-string: 2.0.2 + requireg: 0.2.2 + resolve: 1.22.11 + resolve-from: 5.0.0 + resolve.exports: 2.0.3 + semver: 7.7.4 + send: 0.19.2 + slugify: 1.6.6 + source-map-support: 0.5.21 + stacktrace-parser: 0.1.11 + structured-headers: 0.4.1 + tar: 7.5.11 + terminal-link: 2.1.1 + undici: 6.22.0 + wrap-ansi: 7.0.0 + ws: 8.21.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) + optionalDependencies: + react-native: 0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - graphql + - supports-color + - typescript + - utf-8-validate + '@expo/code-signing-certificates@0.0.5': dependencies: node-forge: 1.4.0 @@ -18510,6 +18841,13 @@ snapshots: transitivePeerDependencies: - supports-color + '@expo/devcert@1.2.1': + dependencies: + '@expo/sudo-prompt': 9.3.2 + debug: 3.2.7(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color + '@expo/devtools@0.1.7(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)': dependencies: chalk: 4.1.2 @@ -18517,6 +18855,13 @@ snapshots: react: 18.3.1 react-native: 0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10) + '@expo/devtools@0.1.8(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)': + dependencies: + chalk: 4.1.2 + optionalDependencies: + react: 18.3.1 + react-native: 0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10) + '@expo/env@0.3.0': dependencies: chalk: 4.1.2 @@ -18578,6 +18923,22 @@ snapshots: transitivePeerDependencies: - supports-color + '@expo/fingerprint@0.15.5': + dependencies: + '@expo/spawn-async': 1.7.2 + arg: 5.0.2 + chalk: 4.1.2 + debug: 4.4.3(supports-color@8.1.1) + getenv: 2.0.0 + glob: 13.0.0 + ignore: 5.3.2 + minimatch: 10.2.5 + p-limit: 3.1.0 + resolve-from: 5.0.0 + semver: 7.7.4 + transitivePeerDependencies: + - supports-color + '@expo/image-utils@0.6.5': dependencies: '@expo/spawn-async': 1.7.2 @@ -18591,6 +18952,19 @@ snapshots: temp-dir: 2.0.0 unique-string: 2.0.0 + '@expo/image-utils@0.8.14(typescript@5.9.3)': + dependencies: + '@expo/require-utils': 55.0.5(typescript@5.9.3) + '@expo/spawn-async': 1.7.2 + chalk: 4.1.2 + getenv: 2.0.0 + jimp-compact: 0.16.1 + parse-png: 2.1.0 + semver: 7.7.4 + transitivePeerDependencies: + - supports-color + - typescript + '@expo/image-utils@0.8.7': dependencies: '@expo/spawn-async': 1.7.2 @@ -18604,11 +18978,21 @@ snapshots: temp-dir: 2.0.0 unique-string: 2.0.0 + '@expo/json-file@10.0.16': + dependencies: + '@babel/code-frame': 7.10.4 + json5: 2.2.3 + '@expo/json-file@10.0.8': dependencies: '@babel/code-frame': 7.10.4 json5: 2.2.3 + '@expo/json-file@10.2.0': + dependencies: + '@babel/code-frame': 7.29.7 + json5: 2.2.3 + '@expo/json-file@8.3.3': dependencies: '@babel/code-frame': 7.10.4 @@ -18660,6 +19044,36 @@ snapshots: transitivePeerDependencies: - supports-color + '@expo/metro-config@54.0.16(bufferutil@4.1.0)(expo@54.0.35(@babel/core@7.29.7)(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10)': + dependencies: + '@babel/code-frame': 7.29.7 + '@babel/core': 7.29.7 + '@babel/generator': 7.29.7 + '@expo/config': 12.0.13 + '@expo/env': 2.0.11 + '@expo/json-file': 10.0.16 + '@expo/metro': 54.2.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) + '@expo/spawn-async': 1.7.2 + browserslist: 4.28.2 + chalk: 4.1.2 + debug: 4.4.3(supports-color@8.1.1) + dotenv: 16.4.7 + dotenv-expand: 11.0.7 + getenv: 2.0.0 + glob: 13.0.0 + hermes-parser: 0.29.1 + jsc-safe-url: 0.2.4 + lightningcss: 1.32.0 + picomatch: 4.0.4 + postcss: 8.4.49 + resolve-from: 5.0.0 + optionalDependencies: + expo: 54.0.35(@babel/core@7.29.7)(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + '@expo/metro-config@54.0.9(bufferutil@4.1.0)(expo@54.0.23(@babel/core@7.29.7)(@modelcontextprotocol/sdk@1.26.0(@cfworker/json-schema@4.1.1)(zod@3.25.76))(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10)': dependencies: '@babel/code-frame': 7.29.7 @@ -18709,11 +19123,45 @@ snapshots: - supports-color - utf-8-validate + '@expo/metro@54.2.0(bufferutil@4.1.0)(utf-8-validate@5.0.10)': + dependencies: + metro: 0.83.3(bufferutil@4.1.0)(utf-8-validate@5.0.10) + metro-babel-transformer: 0.83.3 + metro-cache: 0.83.3 + metro-cache-key: 0.83.3 + metro-config: 0.83.3(bufferutil@4.1.0)(utf-8-validate@5.0.10) + metro-core: 0.83.3 + metro-file-map: 0.83.3 + metro-minify-terser: 0.83.3 + metro-resolver: 0.83.3 + metro-runtime: 0.83.3 + metro-source-map: 0.83.3 + metro-symbolicate: 0.83.3 + metro-transform-plugins: 0.83.3 + metro-transform-worker: 0.83.3(bufferutil@4.1.0)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + '@expo/osascript@2.3.7': dependencies: '@expo/spawn-async': 1.7.2 exec-async: 2.2.0 + '@expo/osascript@2.6.0': + dependencies: + '@expo/spawn-async': 1.8.0 + + '@expo/package-manager@1.12.1': + dependencies: + '@expo/json-file': 10.2.0 + '@expo/spawn-async': 1.8.0 + chalk: 4.1.2 + npm-package-arg: 11.0.3 + ora: 3.4.0 + resolve-workspace-root: 2.0.0 + '@expo/package-manager@1.9.8': dependencies: '@expo/json-file': 10.0.8 @@ -18741,6 +19189,12 @@ snapshots: base64-js: 1.5.1 xmlbuilder: 15.1.1 + '@expo/plist@0.4.9': + dependencies: + '@xmldom/xmldom': 0.8.11 + base64-js: 1.5.1 + xmlbuilder: 15.1.1 + '@expo/prebuild-config@54.0.6(expo@54.0.23(@babel/core@7.29.7)(@modelcontextprotocol/sdk@1.26.0(@cfworker/json-schema@4.1.1)(zod@3.25.76))(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(utf-8-validate@5.0.10))': dependencies: '@expo/config': 12.0.13 @@ -18757,6 +19211,23 @@ snapshots: transitivePeerDependencies: - supports-color + '@expo/prebuild-config@54.0.8(expo@54.0.35(@babel/core@7.29.7)(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10))(typescript@5.9.3)': + dependencies: + '@expo/config': 12.0.13 + '@expo/config-plugins': 54.0.4 + '@expo/config-types': 54.0.10 + '@expo/image-utils': 0.8.14(typescript@5.9.3) + '@expo/json-file': 10.2.0 + '@react-native/normalize-colors': 0.81.5 + debug: 4.4.3(supports-color@8.1.1) + expo: 54.0.35(@babel/core@7.29.7)(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10) + resolve-from: 5.0.0 + semver: 7.7.4 + xml2js: 0.6.0 + transitivePeerDependencies: + - supports-color + - typescript + '@expo/prebuild-config@8.2.0': dependencies: '@expo/config': 10.0.11 @@ -18773,6 +19244,16 @@ snapshots: transitivePeerDependencies: - supports-color + '@expo/require-utils@55.0.5(typescript@5.9.3)': + dependencies: + '@babel/code-frame': 7.29.7 + '@babel/core': 7.29.7 + '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.29.7) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + '@expo/rudder-sdk-node@1.1.1': dependencies: '@expo/bunyan': 4.0.1 @@ -18787,18 +19268,30 @@ snapshots: '@expo/schema-utils@0.1.7': {} + '@expo/schema-utils@0.1.8': {} + '@expo/sdk-runtime-versions@1.0.0': {} '@expo/spawn-async@1.7.2': dependencies: cross-spawn: 7.0.6 + '@expo/spawn-async@1.8.0': + dependencies: + cross-spawn: 7.0.6 + '@expo/sudo-prompt@9.3.2': {} '@expo/vector-icons@14.0.4': dependencies: prop-types: 15.8.1 + '@expo/vector-icons@15.0.3(expo-font@14.0.12(expo@54.0.35(@babel/core@7.29.7)(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10))(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1))(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)': + dependencies: + expo-font: 14.0.12(expo@54.0.35(@babel/core@7.29.7)(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10))(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1) + react: 18.3.1 + react-native: 0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10) + '@expo/vector-icons@15.0.3(expo-font@14.0.9(expo@54.0.23(@babel/core@7.29.7)(@modelcontextprotocol/sdk@1.26.0(@cfworker/json-schema@4.1.1)(zod@3.25.76))(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(utf-8-validate@5.0.10))(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1))(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)': dependencies: expo-font: 14.0.9(expo@54.0.23(@babel/core@7.29.7)(@modelcontextprotocol/sdk@1.26.0(@cfworker/json-schema@4.1.1)(zod@3.25.76))(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(utf-8-validate@5.0.10))(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1) @@ -19256,12 +19749,12 @@ snapshots: - encoding - supports-color - '@mdx-js/loader@3.1.1(webpack@5.102.1(esbuild@0.27.7))': + '@mdx-js/loader@3.1.1(webpack@5.102.1)': dependencies: '@mdx-js/mdx': 3.1.1 source-map: 0.7.6 optionalDependencies: - webpack: 5.102.1(esbuild@0.27.7) + webpack: 5.102.1 transitivePeerDependencies: - supports-color @@ -19784,11 +20277,11 @@ snapshots: '@next/env@15.5.18': {} - '@next/mdx@15.5.19(@mdx-js/loader@3.1.1(webpack@5.102.1(esbuild@0.27.7)))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@18.3.1))': + '@next/mdx@15.5.19(@mdx-js/loader@3.1.1(webpack@5.102.1))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@18.3.1))': dependencies: source-map: 0.7.6 optionalDependencies: - '@mdx-js/loader': 3.1.1(webpack@5.102.1(esbuild@0.27.7)) + '@mdx-js/loader': 3.1.1(webpack@5.102.1) '@mdx-js/react': 3.1.1(@types/react@18.3.28)(react@18.3.1) '@next/swc-darwin-arm64@15.5.18': @@ -21210,13 +21703,13 @@ snapshots: '@rsdoctor/client@1.5.9': {} - '@rsdoctor/core@1.5.9(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@rspack/core@2.0.6(@swc/helpers@0.5.21))(bufferutil@4.1.0)(utf-8-validate@5.0.10)(webpack@5.102.1(esbuild@0.27.7))': + '@rsdoctor/core@1.5.9(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@rspack/core@2.0.6(@swc/helpers@0.5.21))(bufferutil@4.1.0)(utf-8-validate@5.0.10)(webpack@5.102.1)': dependencies: '@rsbuild/plugin-check-syntax': 1.6.1 - '@rsdoctor/graph': 1.5.9(@rspack/core@2.0.6(@swc/helpers@0.5.21))(webpack@5.102.1(esbuild@0.27.7)) - '@rsdoctor/sdk': 1.5.9(@rspack/core@2.0.6(@swc/helpers@0.5.21))(bufferutil@4.1.0)(utf-8-validate@5.0.10)(webpack@5.102.1(esbuild@0.27.7)) - '@rsdoctor/types': 1.5.9(@rspack/core@2.0.6(@swc/helpers@0.5.21))(webpack@5.102.1(esbuild@0.27.7)) - '@rsdoctor/utils': 1.5.9(@rspack/core@2.0.6(@swc/helpers@0.5.21))(webpack@5.102.1(esbuild@0.27.7)) + '@rsdoctor/graph': 1.5.9(@rspack/core@2.0.6(@swc/helpers@0.5.21))(webpack@5.102.1) + '@rsdoctor/sdk': 1.5.9(@rspack/core@2.0.6(@swc/helpers@0.5.21))(bufferutil@4.1.0)(utf-8-validate@5.0.10)(webpack@5.102.1) + '@rsdoctor/types': 1.5.9(@rspack/core@2.0.6(@swc/helpers@0.5.21))(webpack@5.102.1) + '@rsdoctor/utils': 1.5.9(@rspack/core@2.0.6(@swc/helpers@0.5.21))(webpack@5.102.1) '@rspack/resolver': 0.2.8(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) browserslist-load-config: 1.0.1 es-toolkit: 1.47.0 @@ -21234,10 +21727,10 @@ snapshots: - utf-8-validate - webpack - '@rsdoctor/graph@1.5.9(@rspack/core@2.0.6(@swc/helpers@0.5.21))(webpack@5.102.1(esbuild@0.27.7))': + '@rsdoctor/graph@1.5.9(@rspack/core@2.0.6(@swc/helpers@0.5.21))(webpack@5.102.1)': dependencies: - '@rsdoctor/types': 1.5.9(@rspack/core@2.0.6(@swc/helpers@0.5.21))(webpack@5.102.1(esbuild@0.27.7)) - '@rsdoctor/utils': 1.5.9(@rspack/core@2.0.6(@swc/helpers@0.5.21))(webpack@5.102.1(esbuild@0.27.7)) + '@rsdoctor/types': 1.5.9(@rspack/core@2.0.6(@swc/helpers@0.5.21))(webpack@5.102.1) + '@rsdoctor/utils': 1.5.9(@rspack/core@2.0.6(@swc/helpers@0.5.21))(webpack@5.102.1) es-toolkit: 1.47.0 path-browserify: 1.0.1 source-map: 0.7.6 @@ -21245,13 +21738,13 @@ snapshots: - '@rspack/core' - webpack - '@rsdoctor/rspack-plugin@1.5.9(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@rspack/core@2.0.6(@swc/helpers@0.5.21))(bufferutil@4.1.0)(utf-8-validate@5.0.10)(webpack@5.102.1(esbuild@0.27.7))': + '@rsdoctor/rspack-plugin@1.5.9(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@rspack/core@2.0.6(@swc/helpers@0.5.21))(bufferutil@4.1.0)(utf-8-validate@5.0.10)(webpack@5.102.1)': dependencies: - '@rsdoctor/core': 1.5.9(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@rspack/core@2.0.6(@swc/helpers@0.5.21))(bufferutil@4.1.0)(utf-8-validate@5.0.10)(webpack@5.102.1(esbuild@0.27.7)) - '@rsdoctor/graph': 1.5.9(@rspack/core@2.0.6(@swc/helpers@0.5.21))(webpack@5.102.1(esbuild@0.27.7)) - '@rsdoctor/sdk': 1.5.9(@rspack/core@2.0.6(@swc/helpers@0.5.21))(bufferutil@4.1.0)(utf-8-validate@5.0.10)(webpack@5.102.1(esbuild@0.27.7)) - '@rsdoctor/types': 1.5.9(@rspack/core@2.0.6(@swc/helpers@0.5.21))(webpack@5.102.1(esbuild@0.27.7)) - '@rsdoctor/utils': 1.5.9(@rspack/core@2.0.6(@swc/helpers@0.5.21))(webpack@5.102.1(esbuild@0.27.7)) + '@rsdoctor/core': 1.5.9(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@rspack/core@2.0.6(@swc/helpers@0.5.21))(bufferutil@4.1.0)(utf-8-validate@5.0.10)(webpack@5.102.1) + '@rsdoctor/graph': 1.5.9(@rspack/core@2.0.6(@swc/helpers@0.5.21))(webpack@5.102.1) + '@rsdoctor/sdk': 1.5.9(@rspack/core@2.0.6(@swc/helpers@0.5.21))(bufferutil@4.1.0)(utf-8-validate@5.0.10)(webpack@5.102.1) + '@rsdoctor/types': 1.5.9(@rspack/core@2.0.6(@swc/helpers@0.5.21))(webpack@5.102.1) + '@rsdoctor/utils': 1.5.9(@rspack/core@2.0.6(@swc/helpers@0.5.21))(webpack@5.102.1) optionalDependencies: '@rspack/core': 2.0.6(@swc/helpers@0.5.21) transitivePeerDependencies: @@ -21263,12 +21756,12 @@ snapshots: - utf-8-validate - webpack - '@rsdoctor/sdk@1.5.9(@rspack/core@2.0.6(@swc/helpers@0.5.21))(bufferutil@4.1.0)(utf-8-validate@5.0.10)(webpack@5.102.1(esbuild@0.27.7))': + '@rsdoctor/sdk@1.5.9(@rspack/core@2.0.6(@swc/helpers@0.5.21))(bufferutil@4.1.0)(utf-8-validate@5.0.10)(webpack@5.102.1)': dependencies: '@rsdoctor/client': 1.5.9 - '@rsdoctor/graph': 1.5.9(@rspack/core@2.0.6(@swc/helpers@0.5.21))(webpack@5.102.1(esbuild@0.27.7)) - '@rsdoctor/types': 1.5.9(@rspack/core@2.0.6(@swc/helpers@0.5.21))(webpack@5.102.1(esbuild@0.27.7)) - '@rsdoctor/utils': 1.5.9(@rspack/core@2.0.6(@swc/helpers@0.5.21))(webpack@5.102.1(esbuild@0.27.7)) + '@rsdoctor/graph': 1.5.9(@rspack/core@2.0.6(@swc/helpers@0.5.21))(webpack@5.102.1) + '@rsdoctor/types': 1.5.9(@rspack/core@2.0.6(@swc/helpers@0.5.21))(webpack@5.102.1) + '@rsdoctor/utils': 1.5.9(@rspack/core@2.0.6(@swc/helpers@0.5.21))(webpack@5.102.1) launch-editor: 2.13.2 safer-buffer: 2.1.2 socket.io: 4.8.1(bufferutil@4.1.0)(utf-8-validate@5.0.10) @@ -21280,7 +21773,7 @@ snapshots: - utf-8-validate - webpack - '@rsdoctor/types@1.5.9(@rspack/core@2.0.6(@swc/helpers@0.5.21))(webpack@5.102.1(esbuild@0.27.7))': + '@rsdoctor/types@1.5.9(@rspack/core@2.0.6(@swc/helpers@0.5.21))(webpack@5.102.1)': dependencies: '@types/connect': 3.4.38 '@types/estree': 1.0.5 @@ -21288,12 +21781,12 @@ snapshots: source-map: 0.7.6 optionalDependencies: '@rspack/core': 2.0.6(@swc/helpers@0.5.21) - webpack: 5.102.1(esbuild@0.27.7) + webpack: 5.102.1 - '@rsdoctor/utils@1.5.9(@rspack/core@2.0.6(@swc/helpers@0.5.21))(webpack@5.102.1(esbuild@0.27.7))': + '@rsdoctor/utils@1.5.9(@rspack/core@2.0.6(@swc/helpers@0.5.21))(webpack@5.102.1)': dependencies: '@babel/code-frame': 7.26.2 - '@rsdoctor/types': 1.5.9(@rspack/core@2.0.6(@swc/helpers@0.5.21))(webpack@5.102.1(esbuild@0.27.7)) + '@rsdoctor/types': 1.5.9(@rspack/core@2.0.6(@swc/helpers@0.5.21))(webpack@5.102.1) '@types/estree': 1.0.5 acorn: 8.16.0 acorn-import-attributes: 1.9.5(acorn@8.16.0) @@ -22235,14 +22728,14 @@ snapshots: transitivePeerDependencies: - crossws - '@tanstack/react-start@1.157.16(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vite@7.3.5(@types/node@25.6.0)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.20.6)(yaml@2.9.0))(webpack@5.102.1(esbuild@0.27.7))': + '@tanstack/react-start@1.157.16(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vite@7.3.5(@types/node@25.6.0)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.20.6)(yaml@2.9.0))(webpack@5.102.1)': dependencies: '@tanstack/react-router': 1.157.16(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@tanstack/react-start-client': 1.157.16(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@tanstack/react-start-server': 1.157.16(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@tanstack/router-utils': 1.154.7 '@tanstack/start-client-core': 1.157.16 - '@tanstack/start-plugin-core': 1.157.16(@tanstack/react-router@1.157.16(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.5(@types/node@25.6.0)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.20.6)(yaml@2.9.0))(webpack@5.102.1(esbuild@0.27.7)) + '@tanstack/start-plugin-core': 1.157.16(@tanstack/react-router@1.157.16(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.5(@types/node@25.6.0)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.20.6)(yaml@2.9.0))(webpack@5.102.1) '@tanstack/start-server-core': 1.157.16 pathe: 2.0.3 react: 18.3.1 @@ -22285,7 +22778,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@tanstack/router-plugin@1.157.16(@tanstack/react-router@1.157.16(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.5(@types/node@25.6.0)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.20.6)(yaml@2.9.0))(webpack@5.102.1(esbuild@0.27.7))': + '@tanstack/router-plugin@1.157.16(@tanstack/react-router@1.157.16(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.5(@types/node@25.6.0)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.20.6)(yaml@2.9.0))(webpack@5.102.1)': dependencies: '@babel/core': 7.29.7 '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.29.7) @@ -22304,7 +22797,7 @@ snapshots: optionalDependencies: '@tanstack/react-router': 1.157.16(react-dom@18.3.1(react@18.3.1))(react@18.3.1) vite: 7.3.5(@types/node@25.6.0)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.20.6)(yaml@2.9.0) - webpack: 5.102.1(esbuild@0.27.7) + webpack: 5.102.1 transitivePeerDependencies: - supports-color @@ -22331,7 +22824,7 @@ snapshots: '@tanstack/start-fn-stubs@1.154.7': {} - '@tanstack/start-plugin-core@1.157.16(@tanstack/react-router@1.157.16(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.5(@types/node@25.6.0)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.20.6)(yaml@2.9.0))(webpack@5.102.1(esbuild@0.27.7))': + '@tanstack/start-plugin-core@1.157.16(@tanstack/react-router@1.157.16(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.5(@types/node@25.6.0)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.20.6)(yaml@2.9.0))(webpack@5.102.1)': dependencies: '@babel/code-frame': 7.27.1 '@babel/core': 7.29.7 @@ -22339,7 +22832,7 @@ snapshots: '@rolldown/pluginutils': 1.0.0-beta.40 '@tanstack/router-core': 1.157.16 '@tanstack/router-generator': 1.157.16 - '@tanstack/router-plugin': 1.157.16(@tanstack/react-router@1.157.16(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.5(@types/node@25.6.0)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.20.6)(yaml@2.9.0))(webpack@5.102.1(esbuild@0.27.7)) + '@tanstack/router-plugin': 1.157.16(@tanstack/react-router@1.157.16(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.5(@types/node@25.6.0)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.20.6)(yaml@2.9.0))(webpack@5.102.1) '@tanstack/router-utils': 1.154.7 '@tanstack/start-client-core': 1.157.16 '@tanstack/start-server-core': 1.157.16 @@ -23052,23 +23545,23 @@ snapshots: msw: 2.14.2(@types/node@22.19.17)(typescript@6.0.3) vite: 6.4.2(@types/node@22.19.17)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.20.6)(yaml@2.9.0) - '@vitest/mocker@3.2.6(msw@2.14.2(@types/node@25.6.0)(typescript@6.0.3))(vite@6.4.2(@types/node@25.6.0)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.20.6)(yaml@2.9.0))': + '@vitest/mocker@4.1.6(msw@2.14.2(@types/node@25.6.0)(typescript@6.0.3))(vite@6.4.2(@types/node@25.6.0)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.20.6)(yaml@2.9.0))': dependencies: - '@vitest/spy': 3.2.6 + '@vitest/spy': 4.1.6 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: msw: 2.14.2(@types/node@25.6.0)(typescript@6.0.3) vite: 6.4.2(@types/node@25.6.0)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.20.6)(yaml@2.9.0) - '@vitest/mocker@4.1.6(msw@2.14.2(@types/node@25.6.0)(typescript@6.0.3))(vite@6.4.2(@types/node@25.6.0)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.20.6)(yaml@2.9.0))': + '@vitest/mocker@4.1.6(msw@2.14.2(@types/node@25.6.0)(typescript@6.0.3))(vite@7.3.5(@types/node@25.6.0)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.20.6)(yaml@2.9.0))': dependencies: '@vitest/spy': 4.1.6 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: msw: 2.14.2(@types/node@25.6.0)(typescript@6.0.3) - vite: 6.4.2(@types/node@25.6.0)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.20.6)(yaml@2.9.0) + vite: 7.3.5(@types/node@25.6.0)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.20.6)(yaml@2.9.0) '@vitest/pretty-format@3.2.4': dependencies: @@ -24096,6 +24589,38 @@ snapshots: - '@babel/preset-env' - supports-color + babel-preset-expo@54.0.11(@babel/core@7.29.7)(@babel/runtime@7.29.2)(expo@54.0.35(@babel/core@7.29.7)(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10))(react-refresh@0.14.2): + dependencies: + '@babel/helper-module-imports': 7.29.7 + '@babel/plugin-proposal-decorators': 7.28.0(@babel/core@7.29.7) + '@babel/plugin-proposal-export-default-from': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-syntax-export-default-from': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-class-static-block': 7.28.3(@babel/core@7.29.7) + '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-flow-strip-types': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-object-rest-spread': 7.28.4(@babel/core@7.29.7) + '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.29.7) + '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-private-property-in-object': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-runtime': 7.28.5(@babel/core@7.29.7) + '@babel/preset-react': 7.28.5(@babel/core@7.29.7) + '@babel/preset-typescript': 7.28.5(@babel/core@7.29.7) + '@react-native/babel-preset': 0.81.5(@babel/core@7.29.7) + babel-plugin-react-compiler: 1.0.0 + babel-plugin-react-native-web: 0.21.2 + babel-plugin-syntax-hermes-parser: 0.29.1 + babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.29.7) + debug: 4.4.3(supports-color@8.1.1) + react-refresh: 0.14.2 + resolve-from: 5.0.0 + optionalDependencies: + '@babel/runtime': 7.29.2 + expo: 54.0.35(@babel/core@7.29.7)(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - '@babel/core' + - supports-color + babel-preset-expo@54.0.7(@babel/core@7.29.7)(@babel/runtime@7.29.2)(expo@54.0.23(@babel/core@7.29.7)(@modelcontextprotocol/sdk@1.26.0(@cfworker/json-schema@4.1.1)(zod@3.25.76))(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(utf-8-validate@5.0.10))(react-refresh@0.14.2): dependencies: '@babel/helper-module-imports': 7.29.7 @@ -26329,6 +26854,17 @@ snapshots: transitivePeerDependencies: - supports-color + expo-asset@12.0.13(expo@54.0.35(@babel/core@7.29.7)(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10))(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(typescript@5.9.3): + dependencies: + '@expo/image-utils': 0.8.14(typescript@5.9.3) + expo: 54.0.35(@babel/core@7.29.7)(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10) + expo-constants: 18.0.13(expo@54.0.35(@babel/core@7.29.7)(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10))(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)) + react: 18.3.1 + react-native: 0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - supports-color + - typescript + expo-asset@12.0.9(expo@54.0.23(@babel/core@7.29.7)(@modelcontextprotocol/sdk@1.26.0(@cfworker/json-schema@4.1.1)(zod@3.25.76))(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(utf-8-validate@5.0.10))(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1): dependencies: '@expo/image-utils': 0.8.7 @@ -26377,6 +26913,15 @@ snapshots: transitivePeerDependencies: - supports-color + expo-constants@18.0.13(expo@54.0.35(@babel/core@7.29.7)(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10))(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)): + dependencies: + '@expo/config': 12.0.13 + '@expo/env': 2.0.11 + expo: 54.0.35(@babel/core@7.29.7)(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10) + react-native: 0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - supports-color + expo-crypto@13.0.2(expo@54.0.23(@babel/core@7.29.7)(@modelcontextprotocol/sdk@1.26.0(@cfworker/json-schema@4.1.1)(zod@3.25.76))(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(utf-8-validate@5.0.10)): dependencies: base64-js: 1.5.1 @@ -26387,6 +26932,11 @@ snapshots: base64-js: 1.5.1 expo: 54.0.23(@babel/core@7.29.7)(@modelcontextprotocol/sdk@1.26.0(@cfworker/json-schema@4.1.1)(zod@3.25.76))(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(utf-8-validate@5.0.10) + expo-crypto@15.0.9(expo@54.0.35(@babel/core@7.29.7)(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10)): + dependencies: + base64-js: 1.5.1 + expo: 54.0.35(@babel/core@7.29.7)(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10) + expo-file-system@18.0.12(expo@52.0.49(@babel/core@7.29.7)(@babel/preset-env@7.28.5(@babel/core@7.29.7))(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(utf-8-validate@5.0.10))(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)): dependencies: expo: 52.0.49(@babel/core@7.29.7)(@babel/preset-env@7.28.5(@babel/core@7.29.7))(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(utf-8-validate@5.0.10) @@ -26398,12 +26948,24 @@ snapshots: expo: 54.0.23(@babel/core@7.29.7)(@modelcontextprotocol/sdk@1.26.0(@cfworker/json-schema@4.1.1)(zod@3.25.76))(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(utf-8-validate@5.0.10) react-native: 0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10) + expo-file-system@19.0.23(expo@54.0.35(@babel/core@7.29.7)(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10))(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)): + dependencies: + expo: 54.0.35(@babel/core@7.29.7)(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10) + react-native: 0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10) + expo-font@13.0.4(expo@52.0.49(@babel/core@7.29.7)(@babel/preset-env@7.28.5(@babel/core@7.29.7))(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1): dependencies: expo: 52.0.49(@babel/core@7.29.7)(@babel/preset-env@7.28.5(@babel/core@7.29.7))(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(utf-8-validate@5.0.10) fontfaceobserver: 2.3.0 react: 18.3.1 + expo-font@14.0.12(expo@54.0.35(@babel/core@7.29.7)(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10))(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1): + dependencies: + expo: 54.0.35(@babel/core@7.29.7)(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10) + fontfaceobserver: 2.3.0 + react: 18.3.1 + react-native: 0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10) + expo-font@14.0.9(expo@54.0.23(@babel/core@7.29.7)(@modelcontextprotocol/sdk@1.26.0(@cfworker/json-schema@4.1.1)(zod@3.25.76))(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(utf-8-validate@5.0.10))(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1): dependencies: expo: 54.0.23(@babel/core@7.29.7)(@modelcontextprotocol/sdk@1.26.0(@cfworker/json-schema@4.1.1)(zod@3.25.76))(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(utf-8-validate@5.0.10) @@ -26421,6 +26983,11 @@ snapshots: expo: 54.0.23(@babel/core@7.29.7)(@modelcontextprotocol/sdk@1.26.0(@cfworker/json-schema@4.1.1)(zod@3.25.76))(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(utf-8-validate@5.0.10) react: 18.3.1 + expo-keep-awake@15.0.8(expo@54.0.35(@babel/core@7.29.7)(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10))(react@18.3.1): + dependencies: + expo: 54.0.35(@babel/core@7.29.7)(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10) + react: 18.3.1 + expo-linking@6.3.1(expo@54.0.23(@babel/core@7.29.7)(@modelcontextprotocol/sdk@1.26.0(@cfworker/json-schema@4.1.1)(zod@3.25.76))(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(utf-8-validate@5.0.10)): dependencies: expo-constants: 16.0.2(expo@54.0.23(@babel/core@7.29.7)(@modelcontextprotocol/sdk@1.26.0(@cfworker/json-schema@4.1.1)(zod@3.25.76))(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(utf-8-validate@5.0.10)) @@ -26453,6 +27020,14 @@ snapshots: require-from-string: 2.0.2 resolve-from: 5.0.0 + expo-modules-autolinking@3.0.26: + dependencies: + '@expo/spawn-async': 1.7.2 + chalk: 4.1.2 + commander: 7.2.0 + require-from-string: 2.0.2 + resolve-from: 5.0.0 + expo-modules-core@2.2.3: dependencies: invariant: 2.2.4 @@ -26463,12 +27038,20 @@ snapshots: react: 18.3.1 react-native: 0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10) + expo-modules-core@3.0.30(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1): + dependencies: + invariant: 2.2.4 + react: 18.3.1 + react-native: 0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10) + expo-secure-store@12.8.1(expo@54.0.23(@babel/core@7.29.7)(@modelcontextprotocol/sdk@1.26.0(@cfworker/json-schema@4.1.1)(zod@3.25.76))(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(utf-8-validate@5.0.10)): dependencies: expo: 54.0.23(@babel/core@7.29.7)(@modelcontextprotocol/sdk@1.26.0(@cfworker/json-schema@4.1.1)(zod@3.25.76))(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(utf-8-validate@5.0.10) expo-server@1.0.4: {} + expo-server@1.0.7: {} + expo-web-browser@12.8.2(expo@54.0.23(@babel/core@7.29.7)(@modelcontextprotocol/sdk@1.26.0(@cfworker/json-schema@4.1.1)(zod@3.25.76))(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(utf-8-validate@5.0.10)): dependencies: compare-urls: 2.0.0 @@ -26546,6 +27129,40 @@ snapshots: - supports-color - utf-8-validate + expo@54.0.35(@babel/core@7.29.7)(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10): + dependencies: + '@babel/runtime': 7.29.2 + '@expo/cli': 54.0.25(bufferutil@4.1.0)(expo@54.0.35(@babel/core@7.29.7)(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10))(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(typescript@5.9.3)(utf-8-validate@5.0.10) + '@expo/config': 12.0.13 + '@expo/config-plugins': 54.0.4 + '@expo/devtools': 0.1.8(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1) + '@expo/fingerprint': 0.15.5 + '@expo/metro': 54.2.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) + '@expo/metro-config': 54.0.16(bufferutil@4.1.0)(expo@54.0.35(@babel/core@7.29.7)(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10) + '@expo/vector-icons': 15.0.3(expo-font@14.0.12(expo@54.0.35(@babel/core@7.29.7)(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10))(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1))(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1) + '@ungap/structured-clone': 1.3.0 + babel-preset-expo: 54.0.11(@babel/core@7.29.7)(@babel/runtime@7.29.2)(expo@54.0.35(@babel/core@7.29.7)(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10))(react-refresh@0.14.2) + expo-asset: 12.0.13(expo@54.0.35(@babel/core@7.29.7)(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10))(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(typescript@5.9.3) + expo-constants: 18.0.13(expo@54.0.35(@babel/core@7.29.7)(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10))(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)) + expo-file-system: 19.0.23(expo@54.0.35(@babel/core@7.29.7)(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10))(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)) + expo-font: 14.0.12(expo@54.0.35(@babel/core@7.29.7)(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10))(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1) + expo-keep-awake: 15.0.8(expo@54.0.35(@babel/core@7.29.7)(bufferutil@4.1.0)(graphql@16.14.1)(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10))(react@18.3.1) + expo-modules-autolinking: 3.0.26 + expo-modules-core: 3.0.30(react-native@0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1) + pretty-format: 29.7.0 + react: 18.3.1 + react-native: 0.85.3(@babel/core@7.29.7)(@react-native-community/cli@12.3.7(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10) + react-refresh: 0.14.2 + whatwg-url-without-unicode: 8.0.0-3 + transitivePeerDependencies: + - '@babel/core' + - bufferutil + - expo-router + - graphql + - supports-color + - typescript + - utf-8-validate + exponential-backoff@3.1.3: {} express-rate-limit@8.3.2(express@5.2.1): @@ -28382,6 +28999,8 @@ snapshots: lan-network@0.1.7: {} + lan-network@0.2.1: {} + language-subtag-registry@0.3.23: {} language-tags@1.0.9: @@ -29051,6 +29670,15 @@ snapshots: transitivePeerDependencies: - supports-color + metro-babel-transformer@0.83.3: + dependencies: + '@babel/core': 7.29.7 + flow-enums-runtime: 0.0.6 + hermes-parser: 0.32.0 + nullthrows: 1.1.1 + transitivePeerDependencies: + - supports-color + metro-babel-transformer@0.84.4: dependencies: '@babel/core': 7.29.7 @@ -29065,6 +29693,10 @@ snapshots: dependencies: flow-enums-runtime: 0.0.6 + metro-cache-key@0.83.3: + dependencies: + flow-enums-runtime: 0.0.6 + metro-cache-key@0.84.4: dependencies: flow-enums-runtime: 0.0.6 @@ -29078,6 +29710,15 @@ snapshots: transitivePeerDependencies: - supports-color + metro-cache@0.83.3: + dependencies: + exponential-backoff: 3.1.3 + flow-enums-runtime: 0.0.6 + https-proxy-agent: 7.0.6 + metro-core: 0.83.3 + transitivePeerDependencies: + - supports-color + metro-cache@0.84.4: dependencies: exponential-backoff: 3.1.3 @@ -29102,6 +29743,21 @@ snapshots: - supports-color - utf-8-validate + metro-config@0.83.3(bufferutil@4.1.0)(utf-8-validate@5.0.10): + dependencies: + connect: 3.7.0 + flow-enums-runtime: 0.0.6 + jest-validate: 29.7.0 + metro: 0.83.3(bufferutil@4.1.0)(utf-8-validate@5.0.10) + metro-cache: 0.83.3 + metro-core: 0.83.3 + metro-runtime: 0.83.3 + yaml: 2.9.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + metro-config@0.84.4(bufferutil@4.1.0)(utf-8-validate@5.0.10): dependencies: connect: 3.7.0 @@ -29123,6 +29779,12 @@ snapshots: lodash.throttle: 4.1.1 metro-resolver: 0.83.2 + metro-core@0.83.3: + dependencies: + flow-enums-runtime: 0.0.6 + lodash.throttle: 4.1.1 + metro-resolver: 0.83.3 + metro-core@0.84.4: dependencies: flow-enums-runtime: 0.0.6 @@ -29143,6 +29805,20 @@ snapshots: transitivePeerDependencies: - supports-color + metro-file-map@0.83.3: + dependencies: + debug: 4.4.3(supports-color@8.1.1) + fb-watchman: 2.0.2 + flow-enums-runtime: 0.0.6 + graceful-fs: 4.2.11 + invariant: 2.2.4 + jest-worker: 29.7.0 + micromatch: 4.0.8 + nullthrows: 1.1.1 + walker: 1.0.8 + transitivePeerDependencies: + - supports-color + metro-file-map@0.84.4: dependencies: debug: 4.4.3(supports-color@8.1.1) @@ -29162,6 +29838,11 @@ snapshots: flow-enums-runtime: 0.0.6 terser: 5.46.1 + metro-minify-terser@0.83.3: + dependencies: + flow-enums-runtime: 0.0.6 + terser: 5.46.1 + metro-minify-terser@0.84.4: dependencies: flow-enums-runtime: 0.0.6 @@ -29171,6 +29852,10 @@ snapshots: dependencies: flow-enums-runtime: 0.0.6 + metro-resolver@0.83.3: + dependencies: + flow-enums-runtime: 0.0.6 + metro-resolver@0.84.4: dependencies: flow-enums-runtime: 0.0.6 @@ -29180,6 +29865,11 @@ snapshots: '@babel/runtime': 7.29.2 flow-enums-runtime: 0.0.6 + metro-runtime@0.83.3: + dependencies: + '@babel/runtime': 7.29.2 + flow-enums-runtime: 0.0.6 + metro-runtime@0.84.4: dependencies: '@babel/runtime': 7.29.2 @@ -29200,6 +29890,21 @@ snapshots: transitivePeerDependencies: - supports-color + metro-source-map@0.83.3: + dependencies: + '@babel/traverse': 7.29.7 + '@babel/traverse--for-generate-function-map': '@babel/traverse@7.29.7' + '@babel/types': 7.29.7 + flow-enums-runtime: 0.0.6 + invariant: 2.2.4 + metro-symbolicate: 0.83.3 + nullthrows: 1.1.1 + ob1: 0.83.3 + source-map: 0.5.7 + vlq: 1.0.1 + transitivePeerDependencies: + - supports-color + metro-source-map@0.84.4: dependencies: '@babel/traverse': 7.29.7 @@ -29225,6 +29930,17 @@ snapshots: transitivePeerDependencies: - supports-color + metro-symbolicate@0.83.3: + dependencies: + flow-enums-runtime: 0.0.6 + invariant: 2.2.4 + metro-source-map: 0.83.3 + nullthrows: 1.1.1 + source-map: 0.5.7 + vlq: 1.0.1 + transitivePeerDependencies: + - supports-color + metro-symbolicate@0.84.4: dependencies: flow-enums-runtime: 0.0.6 @@ -29247,6 +29963,17 @@ snapshots: transitivePeerDependencies: - supports-color + metro-transform-plugins@0.83.3: + dependencies: + '@babel/core': 7.29.7 + '@babel/generator': 7.29.7 + '@babel/template': 7.29.7 + '@babel/traverse': 7.29.7 + flow-enums-runtime: 0.0.6 + nullthrows: 1.1.1 + transitivePeerDependencies: + - supports-color + metro-transform-plugins@0.84.4: dependencies: '@babel/core': 7.29.7 @@ -29278,6 +30005,26 @@ snapshots: - supports-color - utf-8-validate + metro-transform-worker@0.83.3(bufferutil@4.1.0)(utf-8-validate@5.0.10): + dependencies: + '@babel/core': 7.29.7 + '@babel/generator': 7.29.7 + '@babel/parser': 7.29.7 + '@babel/types': 7.29.7 + flow-enums-runtime: 0.0.6 + metro: 0.83.3(bufferutil@4.1.0)(utf-8-validate@5.0.10) + metro-babel-transformer: 0.83.3 + metro-cache: 0.83.3 + metro-cache-key: 0.83.3 + metro-minify-terser: 0.83.3 + metro-source-map: 0.83.3 + metro-transform-plugins: 0.83.3 + nullthrows: 1.1.1 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + metro-transform-worker@0.84.4(bufferutil@4.1.0)(utf-8-validate@5.0.10): dependencies: '@babel/core': 7.29.7 @@ -29345,6 +30092,53 @@ snapshots: - supports-color - utf-8-validate + metro@0.83.3(bufferutil@4.1.0)(utf-8-validate@5.0.10): + dependencies: + '@babel/code-frame': 7.29.7 + '@babel/core': 7.29.7 + '@babel/generator': 7.29.7 + '@babel/parser': 7.29.7 + '@babel/template': 7.29.7 + '@babel/traverse': 7.29.7 + '@babel/types': 7.29.7 + accepts: 1.3.8 + chalk: 4.1.2 + ci-info: 2.0.0 + connect: 3.7.0 + debug: 4.4.3(supports-color@8.1.1) + error-stack-parser: 2.1.4 + flow-enums-runtime: 0.0.6 + graceful-fs: 4.2.11 + hermes-parser: 0.32.0 + image-size: 1.2.1 + invariant: 2.2.4 + jest-worker: 29.7.0 + jsc-safe-url: 0.2.4 + lodash.throttle: 4.1.1 + metro-babel-transformer: 0.83.3 + metro-cache: 0.83.3 + metro-cache-key: 0.83.3 + metro-config: 0.83.3(bufferutil@4.1.0)(utf-8-validate@5.0.10) + metro-core: 0.83.3 + metro-file-map: 0.83.3 + metro-resolver: 0.83.3 + metro-runtime: 0.83.3 + metro-source-map: 0.83.3 + metro-symbolicate: 0.83.3 + metro-transform-plugins: 0.83.3 + metro-transform-worker: 0.83.3(bufferutil@4.1.0)(utf-8-validate@5.0.10) + mime-types: 2.1.35 + nullthrows: 1.1.1 + serialize-error: 2.1.0 + source-map: 0.5.7 + throat: 5.0.0 + ws: 7.5.10(bufferutil@4.1.0)(utf-8-validate@5.0.10) + yargs: 17.7.2 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + metro@0.84.4(bufferutil@4.1.0)(utf-8-validate@5.0.10): dependencies: '@babel/code-frame': 7.29.7 @@ -30308,6 +31102,10 @@ snapshots: dependencies: flow-enums-runtime: 0.0.6 + ob1@0.83.3: + dependencies: + flow-enums-runtime: 0.0.6 + ob1@0.84.4: dependencies: flow-enums-runtime: 0.0.6 @@ -32941,15 +33739,13 @@ snapshots: ansi-escapes: 4.3.2 supports-hyperlinks: 2.3.0 - terser-webpack-plugin@5.4.0(esbuild@0.27.7)(webpack@5.102.1(esbuild@0.27.7)): + terser-webpack-plugin@5.4.0(webpack@5.102.1): dependencies: '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.3 terser: 5.46.1 - webpack: 5.102.1(esbuild@0.27.7) - optionalDependencies: - esbuild: 0.27.7 + webpack: 5.102.1 optional: true terser@5.46.1: @@ -33157,6 +33953,35 @@ snapshots: - tsx - yaml + tsup@8.5.1(@microsoft/api-extractor@7.58.7(@types/node@25.6.0))(jiti@2.7.0)(postcss@8.5.15)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.9.0): + dependencies: + bundle-require: 5.1.0(esbuild@0.27.7) + cac: 6.7.14 + chokidar: 5.0.0 + consola: 3.4.2 + debug: 4.4.3(supports-color@8.1.1) + esbuild: 0.27.7 + fix-dts-default-cjs-exports: 1.0.1 + joycon: 3.1.1 + picocolors: 1.1.1 + postcss-load-config: 6.0.1(jiti@2.7.0)(postcss@8.5.15)(tsx@4.20.6)(yaml@2.9.0) + resolve-from: 5.0.0 + rollup: 4.61.0 + source-map: 0.7.6 + sucrase: 3.35.1 + tinyexec: 0.3.2 + tinyglobby: 0.2.17 + tree-kill: 1.2.2 + optionalDependencies: + '@microsoft/api-extractor': 7.58.7(@types/node@25.6.0) + postcss: 8.5.15 + typescript: 5.9.3 + transitivePeerDependencies: + - jiti + - supports-color + - tsx + - yaml + tsx@4.20.6: dependencies: esbuild: 0.25.12 @@ -33720,27 +34545,6 @@ snapshots: - tsx - yaml - vite-node@3.2.4(@types/node@25.6.0)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.20.6)(yaml@2.9.0): - dependencies: - cac: 6.7.14 - debug: 4.4.3(supports-color@8.1.1) - es-module-lexer: 1.7.0 - pathe: 2.0.3 - vite: 6.4.2(@types/node@25.6.0)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.20.6)(yaml@2.9.0) - transitivePeerDependencies: - - '@types/node' - - jiti - - less - - lightningcss - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - tsx - - yaml - vite-node@5.3.0(@types/node@25.6.0)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.20.6)(yaml@2.9.0): dependencies: cac: 6.7.14 @@ -33912,14 +34716,14 @@ snapshots: dependencies: '@types/chrome': 0.0.114 - vitest-environment-miniflare@2.14.4(bufferutil@4.1.0)(utf-8-validate@5.0.10)(vitest@3.2.6(@edge-runtime/vm@5.0.0)(@types/debug@4.1.12)(@types/node@25.6.0)(happy-dom@20.10.2(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jiti@2.7.0)(jsdom@27.0.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(lightningcss@1.32.0)(msw@2.14.2(@types/node@25.6.0)(typescript@6.0.3))(terser@5.46.1)(tsx@4.20.6)(yaml@2.9.0)): + vitest-environment-miniflare@2.14.4(bufferutil@4.1.0)(utf-8-validate@5.0.10)(vitest@4.1.6(@edge-runtime/vm@5.0.0)(@opentelemetry/api@1.9.0)(@types/node@25.6.0)(@vitest/coverage-v8@3.2.6(vitest@3.2.6(@edge-runtime/vm@5.0.0)(@types/debug@4.1.12)(@types/node@22.19.17)(happy-dom@20.10.2(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jiti@2.7.0)(jsdom@27.0.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(lightningcss@1.32.0)(msw@2.14.2(@types/node@22.19.17)(typescript@6.0.3))(terser@5.46.1)(tsx@4.20.6)(yaml@2.9.0)))(happy-dom@20.10.2(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jsdom@27.0.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(msw@2.14.2(@types/node@25.6.0)(typescript@6.0.3))(vite@7.3.5(@types/node@25.6.0)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.20.6)(yaml@2.9.0))): dependencies: '@miniflare/queues': 2.14.4 '@miniflare/runner-vm': 2.14.4 '@miniflare/shared': 2.14.4 '@miniflare/shared-test-environment': 2.14.4(bufferutil@4.1.0)(utf-8-validate@5.0.10) undici: 5.28.4 - vitest: 3.2.6(@edge-runtime/vm@5.0.0)(@types/debug@4.1.12)(@types/node@25.6.0)(happy-dom@20.10.2(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jiti@2.7.0)(jsdom@27.0.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(lightningcss@1.32.0)(msw@2.14.2(@types/node@25.6.0)(typescript@6.0.3))(terser@5.46.1)(tsx@4.20.6)(yaml@2.9.0) + vitest: 4.1.6(@edge-runtime/vm@5.0.0)(@opentelemetry/api@1.9.0)(@types/node@25.6.0)(@vitest/coverage-v8@3.2.6(vitest@3.2.6(@edge-runtime/vm@5.0.0)(@types/debug@4.1.12)(@types/node@22.19.17)(happy-dom@20.10.2(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jiti@2.7.0)(jsdom@27.0.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(lightningcss@1.32.0)(msw@2.14.2(@types/node@22.19.17)(typescript@6.0.3))(terser@5.46.1)(tsx@4.20.6)(yaml@2.9.0)))(happy-dom@20.10.2(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jsdom@27.0.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(msw@2.14.2(@types/node@25.6.0)(typescript@6.0.3))(vite@7.3.5(@types/node@25.6.0)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.20.6)(yaml@2.9.0)) transitivePeerDependencies: - bufferutil - utf-8-validate @@ -34014,55 +34818,42 @@ snapshots: - tsx - yaml - vitest@3.2.6(@edge-runtime/vm@5.0.0)(@types/debug@4.1.12)(@types/node@25.6.0)(happy-dom@20.10.2(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jiti@2.7.0)(jsdom@27.0.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(lightningcss@1.32.0)(msw@2.14.2(@types/node@25.6.0)(typescript@6.0.3))(terser@5.46.1)(tsx@4.20.6)(yaml@2.9.0): + vitest@4.1.6(@edge-runtime/vm@5.0.0)(@opentelemetry/api@1.9.0)(@types/node@25.6.0)(@vitest/coverage-v8@3.2.6(vitest@3.2.6(@edge-runtime/vm@5.0.0)(@types/debug@4.1.12)(@types/node@22.19.17)(happy-dom@20.10.2(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jiti@2.7.0)(jsdom@27.0.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(lightningcss@1.32.0)(msw@2.14.2(@types/node@22.19.17)(typescript@6.0.3))(terser@5.46.1)(tsx@4.20.6)(yaml@2.9.0)))(happy-dom@20.10.2(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jsdom@27.0.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(msw@2.14.2(@types/node@25.6.0)(typescript@6.0.3))(vite@6.4.2(@types/node@25.6.0)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.20.6)(yaml@2.9.0)): dependencies: - '@types/chai': 5.2.3 - '@vitest/expect': 3.2.6 - '@vitest/mocker': 3.2.6(msw@2.14.2(@types/node@25.6.0)(typescript@6.0.3))(vite@6.4.2(@types/node@25.6.0)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.20.6)(yaml@2.9.0)) - '@vitest/pretty-format': 3.2.6 - '@vitest/runner': 3.2.6 - '@vitest/snapshot': 3.2.6 - '@vitest/spy': 3.2.6 - '@vitest/utils': 3.2.6 - chai: 5.3.3 - debug: 4.4.3(supports-color@8.1.1) + '@vitest/expect': 4.1.6 + '@vitest/mocker': 4.1.6(msw@2.14.2(@types/node@25.6.0)(typescript@6.0.3))(vite@6.4.2(@types/node@25.6.0)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.20.6)(yaml@2.9.0)) + '@vitest/pretty-format': 4.1.6 + '@vitest/runner': 4.1.6 + '@vitest/snapshot': 4.1.6 + '@vitest/spy': 4.1.6 + '@vitest/utils': 4.1.6 + es-module-lexer: 2.1.0 expect-type: 1.3.0 magic-string: 0.30.21 + obug: 2.1.3 pathe: 2.0.3 picomatch: 4.0.4 - std-env: 3.10.0 + std-env: 4.1.0 tinybench: 2.9.0 - tinyexec: 0.3.2 + tinyexec: 1.2.4 tinyglobby: 0.2.17 - tinypool: 1.1.1 - tinyrainbow: 2.0.0 + tinyrainbow: 3.1.0 vite: 6.4.2(@types/node@25.6.0)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.20.6)(yaml@2.9.0) - vite-node: 3.2.4(@types/node@25.6.0)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.20.6)(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: '@edge-runtime/vm': 5.0.0 - '@types/debug': 4.1.12 + '@opentelemetry/api': 1.9.0 '@types/node': 25.6.0 + '@vitest/coverage-v8': 3.2.6(vitest@3.2.6(@edge-runtime/vm@5.0.0)(@types/debug@4.1.12)(@types/node@22.19.17)(happy-dom@20.10.2(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jiti@2.7.0)(jsdom@27.0.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(lightningcss@1.32.0)(msw@2.14.2(@types/node@22.19.17)(typescript@6.0.3))(terser@5.46.1)(tsx@4.20.6)(yaml@2.9.0)) happy-dom: 20.10.2(bufferutil@4.1.0)(utf-8-validate@5.0.10) jsdom: 27.0.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) transitivePeerDependencies: - - jiti - - less - - lightningcss - msw - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - tsx - - yaml - vitest@4.1.6(@edge-runtime/vm@5.0.0)(@opentelemetry/api@1.9.0)(@types/node@25.6.0)(@vitest/coverage-v8@3.2.6(vitest@3.2.6(@edge-runtime/vm@5.0.0)(@types/debug@4.1.12)(@types/node@22.19.17)(happy-dom@20.10.2(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jiti@2.7.0)(jsdom@27.0.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(lightningcss@1.32.0)(msw@2.14.2(@types/node@22.19.17)(typescript@6.0.3))(terser@5.46.1)(tsx@4.20.6)(yaml@2.9.0)))(happy-dom@20.10.2(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jsdom@27.0.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(msw@2.14.2(@types/node@25.6.0)(typescript@6.0.3))(vite@6.4.2(@types/node@25.6.0)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.20.6)(yaml@2.9.0)): + vitest@4.1.6(@edge-runtime/vm@5.0.0)(@opentelemetry/api@1.9.0)(@types/node@25.6.0)(@vitest/coverage-v8@3.2.6(vitest@3.2.6(@edge-runtime/vm@5.0.0)(@types/debug@4.1.12)(@types/node@22.19.17)(happy-dom@20.10.2(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jiti@2.7.0)(jsdom@27.0.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(lightningcss@1.32.0)(msw@2.14.2(@types/node@22.19.17)(typescript@6.0.3))(terser@5.46.1)(tsx@4.20.6)(yaml@2.9.0)))(happy-dom@20.10.2(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jsdom@27.0.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(msw@2.14.2(@types/node@25.6.0)(typescript@6.0.3))(vite@7.3.5(@types/node@25.6.0)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.20.6)(yaml@2.9.0)): dependencies: '@vitest/expect': 4.1.6 - '@vitest/mocker': 4.1.6(msw@2.14.2(@types/node@25.6.0)(typescript@6.0.3))(vite@6.4.2(@types/node@25.6.0)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.20.6)(yaml@2.9.0)) + '@vitest/mocker': 4.1.6(msw@2.14.2(@types/node@25.6.0)(typescript@6.0.3))(vite@7.3.5(@types/node@25.6.0)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.20.6)(yaml@2.9.0)) '@vitest/pretty-format': 4.1.6 '@vitest/runner': 4.1.6 '@vitest/snapshot': 4.1.6 @@ -34079,7 +34870,7 @@ snapshots: tinyexec: 1.2.4 tinyglobby: 0.2.17 tinyrainbow: 3.1.0 - vite: 6.4.2(@types/node@25.6.0)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.20.6)(yaml@2.9.0) + vite: 7.3.5(@types/node@25.6.0)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.20.6)(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: '@edge-runtime/vm': 5.0.0 @@ -34197,7 +34988,7 @@ snapshots: webpack-virtual-modules@0.6.2: {} - webpack@5.102.1(esbuild@0.27.7): + webpack@5.102.1: dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.9 @@ -34221,7 +35012,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.3 tapable: 2.3.3 - terser-webpack-plugin: 5.4.0(esbuild@0.27.7)(webpack@5.102.1(esbuild@0.27.7)) + terser-webpack-plugin: 5.4.0(webpack@5.102.1) watchpack: 2.5.1 webpack-sources: 3.3.4 transitivePeerDependencies: