From fbb87ef89bcd194ebf033121aded026bcc958911 Mon Sep 17 00:00:00 2001 From: "xan.lol" Date: Tue, 28 Apr 2026 01:58:46 -0700 Subject: [PATCH] chore: apply patches with pnpm not however upstream did it with yarn --- package.json | 36 +- ...ssembless__react-native-material-you.patch | 80 + patches/@atproto__api.patch | 53 + patches/@atproto__oauth-client-browser.patch | 51 + patches/@atproto__oauth-client-expo.patch | 64 + patches/@atproto__oauth-client.patch | 82 + patches/@discord__bottom-sheet.patch | 13 + patches/@sentry__react-native.patch | 33 + patches/expo-font.patch | 16 + patches/expo-glass-effect.patch | 60 + patches/expo-haptics.patch | 13 + patches/expo-image.patch | 103 ++ patches/expo-media-library.patch | 13 + patches/expo-modules-core.patch | 15 + patches/expo-notifications.patch | 170 +++ patches/expo-paste-input.patch | 136 ++ patches/expo-updates.patch | 26 + patches/react-native-compressor.patch | 516 +++++++ patches/react-native-date-picker.patch | 17 + patches/react-native-drawer-layout.patch | 38 + .../react-native-keyboard-controller.patch | 48 + patches/react-native-pager-view.patch | 30 + patches/react-native-reanimated.patch | 389 +++++ patches/react-native-svg.patch | 57 + patches/react-native-uitextview.patch | 35 + patches/react-native-view-shot.patch | 28 + patches/react-native.patch | 168 ++ patches/sonner-native.patch | 22 + pnpm-lock.yaml | 1346 ++++++++++++----- scripts/README.md | 10 + scripts/patch-package-to-pnpm.mjs | 315 ++++ 31 files changed, 3581 insertions(+), 402 deletions(-) create mode 100644 patches/@assembless__react-native-material-you.patch create mode 100644 patches/@atproto__api.patch create mode 100644 patches/@atproto__oauth-client-browser.patch create mode 100644 patches/@atproto__oauth-client-expo.patch create mode 100644 patches/@atproto__oauth-client.patch create mode 100644 patches/@discord__bottom-sheet.patch create mode 100644 patches/@sentry__react-native.patch create mode 100644 patches/expo-font.patch create mode 100644 patches/expo-glass-effect.patch create mode 100644 patches/expo-haptics.patch create mode 100644 patches/expo-image.patch create mode 100644 patches/expo-media-library.patch create mode 100644 patches/expo-modules-core.patch create mode 100644 patches/expo-notifications.patch create mode 100644 patches/expo-paste-input.patch create mode 100644 patches/expo-updates.patch create mode 100644 patches/react-native-compressor.patch create mode 100644 patches/react-native-date-picker.patch create mode 100644 patches/react-native-drawer-layout.patch create mode 100644 patches/react-native-keyboard-controller.patch create mode 100644 patches/react-native-pager-view.patch create mode 100644 patches/react-native-reanimated.patch create mode 100644 patches/react-native-svg.patch create mode 100644 patches/react-native-uitextview.patch create mode 100644 patches/react-native-view-shot.patch create mode 100644 patches/react-native.patch create mode 100644 patches/sonner-native.patch create mode 100644 scripts/patch-package-to-pnpm.mjs diff --git a/package.json b/package.json index 027ec0862..3ea72c39f 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ }, "scripts": { "prepare": "is-ci || husky install", - "postinstall": "patch-package && pnpm intl:compile-if-needed", + "postinstall": "pnpm intl:compile-if-needed", "prebuild": "EXPO_NO_GIT_STATUS=1 expo prebuild --clean", "windows-prebuild": "set EXPO_NO_GIT_STATUS=1&& expo prebuild --clean", "android": "expo run:android", @@ -83,7 +83,8 @@ "upload-native-sourcemaps": "npx sentry-expo-upload-sourcemaps dist", "make-deploy-bundle": "bash scripts/bundleUpdate.sh", "generate-stats-file": "GENERATE_STATS=1 pnpm build-web", - "icons:optimize": "svgo -f ./assets/icons" + "icons:optimize": "svgo -f ./assets/icons", + "convert-patches-to-pnpm": "node ./scripts/patch-package-to-pnpm.mjs" }, "dependencies": { "@assembless/react-native-material-you": "1.0.0-beta.4", @@ -410,5 +411,36 @@ "emptyHostname": false, "validatePackageNames": true, "validateIntegrity": true + }, + "pnpm": { + "patchedDependencies": { + "@assembless/react-native-material-you": "patches/@assembless__react-native-material-you.patch", + "@atproto/api@0.19.11": "patches/@atproto__api.patch", + "@atproto/oauth-client": "patches/@atproto__oauth-client.patch", + "@atproto/oauth-client-browser": "patches/@atproto__oauth-client-browser.patch", + "@atproto/oauth-client-expo": "patches/@atproto__oauth-client-expo.patch", + "@discord/bottom-sheet": "patches/@discord__bottom-sheet.patch", + "@sentry/react-native": "patches/@sentry__react-native.patch", + "expo-font": "patches/expo-font.patch", + "expo-glass-effect": "patches/expo-glass-effect.patch", + "expo-haptics": "patches/expo-haptics.patch", + "expo-image": "patches/expo-image.patch", + "expo-media-library": "patches/expo-media-library.patch", + "expo-modules-core": "patches/expo-modules-core.patch", + "expo-notifications": "patches/expo-notifications.patch", + "expo-paste-input": "patches/expo-paste-input.patch", + "expo-updates": "patches/expo-updates.patch", + "react-native": "patches/react-native.patch", + "react-native-compressor": "patches/react-native-compressor.patch", + "react-native-date-picker": "patches/react-native-date-picker.patch", + "react-native-drawer-layout": "patches/react-native-drawer-layout.patch", + "react-native-keyboard-controller": "patches/react-native-keyboard-controller.patch", + "react-native-pager-view": "patches/react-native-pager-view.patch", + "react-native-reanimated": "patches/react-native-reanimated.patch", + "react-native-svg": "patches/react-native-svg.patch", + "react-native-uitextview": "patches/react-native-uitextview.patch", + "react-native-view-shot": "patches/react-native-view-shot.patch", + "sonner-native": "patches/sonner-native.patch" + } } } diff --git a/patches/@assembless__react-native-material-you.patch b/patches/@assembless__react-native-material-you.patch new file mode 100644 index 000000000..accedfb9b --- /dev/null +++ b/patches/@assembless__react-native-material-you.patch @@ -0,0 +1,80 @@ +diff --git a/android/build.gradle b/android/build.gradle +index d9460ae..10e85c9 100644 +--- a/android/build.gradle ++++ b/android/build.gradle +@@ -22,12 +22,12 @@ apply plugin: 'com.android.library' + apply plugin: 'kotlin-android' + + android { +- compileSdkVersion 32 ++ compileSdkVersion 35 + // buildToolsVersion safeExtGet('buildToolsVersion', '30.0.3') + + defaultConfig { + minSdkVersion safeExtGet('minSdkVersion', "23") +- targetSdkVersion safeExtGet('targetSdkVersion', "32") ++ targetSdkVersion safeExtGet('targetSdkVersion', "35") + } + } + +diff --git a/android/src/main/java/com/assembless/reactnativematerialyou/RNMaterialYouModule.kt b/android/src/main/java/com/assembless/reactnativematerialyou/RNMaterialYouModule.kt +index 2d4cbf9..d868561 100644 +--- a/android/src/main/java/com/assembless/reactnativematerialyou/RNMaterialYouModule.kt ++++ b/android/src/main/java/com/assembless/reactnativematerialyou/RNMaterialYouModule.kt +@@ -132,6 +132,26 @@ class RNMaterialYouModule(val reactContext: ReactApplicationContext) : ReactCont + colorMap.putArray("system_neutral1", system_neutral1); + colorMap.putArray("system_neutral2", system_neutral2); + ++ if (android.os.Build.VERSION.SDK_INT >= 35) { ++ val system_error: WritableArray? = toWritableArray(arrayOf( ++ R.color.system_error_0, ++ R.color.system_error_10, ++ R.color.system_error_50, ++ R.color.system_error_100, ++ R.color.system_error_200, ++ R.color.system_error_300, ++ R.color.system_error_400, ++ R.color.system_error_500, ++ R.color.system_error_600, ++ R.color.system_error_700, ++ R.color.system_error_800, ++ R.color.system_error_900, ++ R.color.system_error_1000 ++ ).map { colorToHex(it) }); ++ ++ colorMap.putArray("system_error", system_error); ++ } ++ + return colorMap; + } + +diff --git a/lib/types.d.ts b/lib/types.d.ts +index 91d097f..e234851 100644 +--- a/lib/types.d.ts ++++ b/lib/types.d.ts +@@ -19,4 +19,9 @@ export declare type MaterialYouPalette = { + * Android API: [system_neutral2](https://developer.android.com/reference/android/R.color#system_neutral2_0) + */ + system_neutral2: string[]; ++ /** ++ * Android API: [system_error](https://developer.android.com/reference/android/R.color#system_error_0) ++ * Only available on Android 14+ / API level 35+ ++ */ ++ system_error?: string[]; + }; +diff --git a/src/types.ts b/src/types.ts +index 6f7ad57..f3273c6 100644 +--- a/src/types.ts ++++ b/src/types.ts +@@ -18,5 +18,10 @@ export type MaterialYouPalette = { + /** + * Android API: [system_neutral2](https://developer.android.com/reference/android/R.color#system_neutral2_0) + */ +- system_neutral2: string[] ++ system_neutral2: string[], ++ /** ++ * Android API: [system_error](https://developer.android.com/reference/android/R.color#system_error_0) ++ * Only available on Android 14+ / API level 35+ ++ */ ++ system_error?: string[] + } diff --git a/patches/@atproto__api.patch b/patches/@atproto__api.patch new file mode 100644 index 000000000..6c4105a79 --- /dev/null +++ b/patches/@atproto__api.patch @@ -0,0 +1,53 @@ +diff --git a/dist/moderation/decision.js b/dist/moderation/decision.js +index aaac177..d27c0be 100644 +--- a/dist/moderation/decision.js ++++ b/dist/moderation/decision.js +@@ -67,6 +67,8 @@ class ModerationDecision { + ui(context) { + const ui = new ui_1.ModerationUI(); + for (const cause of this.causes) { ++ if (cause?.label?.val === '!no-unauthenticated') continue; ++ + if (cause.type === 'blocking' || + cause.type === 'blocked-by' || + cause.type === 'block-other') { +diff --git a/dist/agent.js b/dist/agent.js +index c486fb7..d77a845 100644 +--- a/dist/agent.js ++++ b/dist/agent.js +@@ -99,6 +99,9 @@ class Agent extends xrpc_1.XrpcClient { + if (this.proxy && !headers.has('atproto-proxy')) { + headers.set('atproto-proxy', this.proxy); + } ++ if (headers.get('atproto-proxy') === '') { ++ headers.delete('atproto-proxy'); ++ } + // Merge the labelers header of this particular request with the app & + // instance labelers. + headers.set('atproto-accept-labelers', [ +@@ -597,7 +600,7 @@ class Agent extends xrpc_1.XrpcClient { + hideAllFeeds: false, + }, + }; +- const res = await this.app.bsky.actor.getPreferences({}); ++ const res = await this.app.bsky.actor.getPreferences({}, {headers: {'atproto-proxy': ''}}); + const labelPrefs = []; + for (const pref of res.data.preferences) { + if (predicate.isValidAdultContentPref(pref)) { +@@ -1279,14 +1282,14 @@ class Agent extends xrpc_1.XrpcClient { + async updatePreferences(cb) { + try { + await __classPrivateFieldGet(this, _Agent_prefsLock, "f").acquireAsync(); +- const res = await this.app.bsky.actor.getPreferences({}); ++ const res = await this.app.bsky.actor.getPreferences({}, {headers: {'atproto-proxy': ''}}); + const newPrefs = cb(res.data.preferences); + if (newPrefs === false) { + return res.data.preferences; + } + await this.app.bsky.actor.putPreferences({ + preferences: newPrefs, +- }); ++ }, {headers: {'atproto-proxy': ''}}); + return newPrefs; + } + finally { diff --git a/patches/@atproto__oauth-client-browser.patch b/patches/@atproto__oauth-client-browser.patch new file mode 100644 index 000000000..ab6951136 --- /dev/null +++ b/patches/@atproto__oauth-client-browser.patch @@ -0,0 +1,51 @@ +diff --git a/dist/index.js b/dist/index.js +index 7ee0a48..8e91857 100644 +--- a/dist/index.js ++++ b/dist/index.js +@@ -15,8 +15,14 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) { + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.buildLoopbackClientId = void 0; +-require("core-js/modules/esnext.symbol.async-dispose"); +-require("core-js/modules/esnext.symbol.dispose"); ++ ++if (typeof Symbol.dispose === 'undefined') { ++ Symbol.dispose = Symbol('Symbol.dispose'); ++} ++if (typeof Symbol.asyncDispose === 'undefined') { ++ Symbol.asyncDispose = Symbol('Symbol.asyncDispose'); ++} ++ + __exportStar(require("@atproto/jwk-webcrypto"), exports); + __exportStar(require("@atproto/oauth-client"), exports); + __exportStar(require("./browser-oauth-client.js"), exports); +diff --git a/dist/indexed-db/db-transaction.js b/dist/indexed-db/db-transaction.js +index d67da55..6605feb 100644 +--- a/dist/indexed-db/db-transaction.js ++++ b/dist/indexed-db/db-transaction.js +@@ -13,7 +13,9 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function ( + var _DBTransaction_tx; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.DBTransaction = void 0; +-require("core-js/modules/esnext.symbol.dispose"); ++if (typeof Symbol.dispose === 'undefined') { ++ Symbol.dispose = Symbol('Symbol.dispose'); ++} + const db_object_store_js_1 = require("./db-object-store.js"); + class DBTransaction { + constructor(tx) { +diff --git a/dist/indexed-db/db.js b/dist/indexed-db/db.js +index eaaf61a..4315b95 100644 +--- a/dist/indexed-db/db.js ++++ b/dist/indexed-db/db.js +@@ -13,7 +13,9 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function ( + var _DB_db; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.DB = void 0; +-require("core-js/modules/esnext.symbol.dispose"); ++if (typeof Symbol.dispose === 'undefined') { ++ Symbol.dispose = Symbol('Symbol.dispose'); ++} + const db_transaction_js_1 = require("./db-transaction.js"); + class DB { + static async open(dbName, migrations, txOptions) { diff --git a/patches/@atproto__oauth-client-expo.patch b/patches/@atproto__oauth-client-expo.patch new file mode 100644 index 000000000..84141a18e --- /dev/null +++ b/patches/@atproto__oauth-client-expo.patch @@ -0,0 +1,64 @@ +diff --git a/dist/expo-oauth-client.native.js b/dist/expo-oauth-client.native.js +index 979db40..300a11c 100644 +--- a/dist/expo-oauth-client.native.js ++++ b/dist/expo-oauth-client.native.js +@@ -62,6 +62,30 @@ const runtimeImplementation = { + digest: async (bytes, { name }) => NativeModule.digest(bytes, name), + getRandomValues: async (length) => NativeModule.getRandomValues(length), + }; ++class DisposableStack { ++ stack; ++ constructor() { ++ this.stack = []; ++ } ++ use(value) { ++ return __addDisposableResource({ stack: this.stack, error: void 0, hasError: false }, value, false); ++ } ++ async dispose() { ++ await __disposeResources({ stack: this.stack, error: void 0, hasError: false }); ++ } ++ move() { ++ const newStack = new DisposableStack(); ++ newStack.stack = this.stack; ++ this.stack = []; ++ return newStack; ++ } ++ [Symbol.dispose]() { ++ this.dispose(); ++ } ++ [Symbol.asyncDispose]() { ++ return this.dispose(); ++ } ++} + export class ExpoOAuthClient extends OAuthClient { + #disposables; + constructor(options) { +diff --git a/dist/polyfill.native.js b/dist/polyfill.native.js +index 32656aa..a2fe17e 100644 +--- a/dist/polyfill.native.js ++++ b/dist/polyfill.native.js +@@ -1,3 +1,8 @@ +-import 'core-js/proposals/explicit-resource-management'; ++if (typeof Symbol.dispose === 'undefined') { ++ Symbol.dispose = Symbol('Symbol.dispose'); ++} ++if (typeof Symbol.asyncDispose === 'undefined') { ++ Symbol.asyncDispose = Symbol('Symbol.asyncDispose'); ++} + import 'react-native-url-polyfill/auto'; + //# sourceMappingURL=polyfill.native.js.map +\ No newline at end of file +diff --git a/dist/polyfill.web.js b/dist/polyfill.web.js +index b7dc3e4..8f4a8ef 100644 +--- a/dist/polyfill.web.js ++++ b/dist/polyfill.web.js +@@ -1,2 +1,7 @@ +-import 'core-js/proposals/explicit-resource-management'; ++if (typeof Symbol.dispose === 'undefined') { ++ Symbol.dispose = Symbol('Symbol.dispose'); ++} ++if (typeof Symbol.asyncDispose === 'undefined') { ++ Symbol.asyncDispose = Symbol('Symbol.asyncDispose'); ++} + //# sourceMappingURL=polyfill.web.js.map +\ No newline at end of file diff --git a/patches/@atproto__oauth-client.patch b/patches/@atproto__oauth-client.patch new file mode 100644 index 000000000..7e80fd3ea --- /dev/null +++ b/patches/@atproto__oauth-client.patch @@ -0,0 +1,82 @@ +diff --git a/dist/index.js b/dist/index.js +index 7b40a89..4b8d430 100644 +--- a/dist/index.js ++++ b/dist/index.js +@@ -1,4 +1,21 @@ + "use strict"; ++// polyfill throwIfAborted which seems to be missing in react-native, but ky ++// uses it ++// ++// Fun fact, AbortSignal here is just a react-native polyfill, too: ++// https://github.com/facebook/react-native/blob/838d26d7b534133e75c7fa673dfc849b0e64c9d3/packages/react-native/Libraries/Core/setUpXHR.js#L38 ++// ++// Unfortunately it doesn't have a `reason` ++// ++// ref: https://github.com/tjmehta/fast-abort-controller/blob/42588908035d1512f90e7299a2c70dfb708f9620/src/FastAbortSignal.ts#L39 ++if (!AbortSignal.prototype.throwIfAborted) { ++ AbortSignal.prototype.throwIfAborted = function() { ++ if (this.aborted) { ++ throw new Error('Aborted') ++ } ++ } ++} ++ + var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); +@@ -15,7 +32,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) { + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.FetchResponseError = exports.FetchRequestError = exports.FetchError = void 0; +-require("core-js/modules/es.symbol.dispose"); ++if (typeof Symbol.dispose === 'undefined') { ++ Symbol.dispose = Symbol('Symbol.dispose'); ++} + __exportStar(require("@atproto-labs/did-resolver"), exports); + var fetch_1 = require("@atproto-labs/fetch"); + Object.defineProperty(exports, "FetchError", { enumerable: true, get: function () { return fetch_1.FetchError; } }); +diff --git a/dist/oauth-server-agent.js b/dist/oauth-server-agent.js +index 239cb0e..e98b656 100644 +--- a/dist/oauth-server-agent.js ++++ b/dist/oauth-server-agent.js +@@ -169,10 +169,16 @@ class OAuthServerAgent { + * @returns The user's PDS URL (the resource server for the user) + */ + async verifyIssuer(sub) { ++ const AbortSignal_timeout = (delay) => { ++ const controller = new AbortController(); ++ const timeout = setTimeout(() => controller.abort(), delay); ++ return controller.signal; ++ }; ++ + const resolved = await this.oauthResolver.resolveFromIdentity(sub, { + noCache: true, + allowStale: false, +- signal: AbortSignal.timeout(10e3), ++ signal: AbortSignal_timeout(10e3), + }); + if (this.issuer !== resolved.metadata.issuer) { + // Best case scenario; the user switched PDS. Worst case scenario; a bad +diff --git a/dist/session-getter.js b/dist/session-getter.js +index 5d41957..f279a0c 100644 +--- a/dist/session-getter.js ++++ b/dist/session-getter.js +@@ -237,11 +237,17 @@ class SessionGetter extends simple_store_1.CachedGetter { + */ + async get(sub, options) { + const session = await this.runtime.usingLock(`@atproto-oauth-client-${sub}`, async () => { ++ const AbortSignal_timeout = (delay) => { ++ const controller = new AbortController(); ++ const timeout = setTimeout(() => controller.abort(), delay); ++ return controller.signal; ++ }; ++ + const env_1 = { stack: [], error: void 0, hasError: false }; + try { + // Make sure, even if there is no signal in the options, that the + // request will be cancelled after at most 30 seconds. +- const signal = AbortSignal.timeout(30e3); ++ const signal = AbortSignal_timeout(30e3); + const abortController = __addDisposableResource(env_1, (0, util_js_1.combineSignals)([options?.signal, signal]), false); + return await super.get(sub, { + ...options, diff --git a/patches/@discord__bottom-sheet.patch b/patches/@discord__bottom-sheet.patch new file mode 100644 index 000000000..592321e3a --- /dev/null +++ b/patches/@discord__bottom-sheet.patch @@ -0,0 +1,13 @@ +diff --git a/src/hooks/useStableCallback.ts b/src/hooks/useStableCallback.ts +index 1c788ab..d30f330 100644 +--- a/src/hooks/useStableCallback.ts ++++ b/src/hooks/useStableCallback.ts +@@ -6,7 +6,7 @@ type Callback = (...args: any[]) => any; + * https://gist.github.com/JakeCoxon/c7ebf6e6496f8468226fd36b596e1985 + */ + export const useStableCallback = (callback: Callback) => { +- const callbackRef = useRef(); ++ const callbackRef = useRef(undefined); + const memoCallback = useCallback( + (...args: any) => callbackRef.current && callbackRef.current(...args), + [] diff --git a/patches/@sentry__react-native.patch b/patches/@sentry__react-native.patch new file mode 100644 index 000000000..44af3debd --- /dev/null +++ b/patches/@sentry__react-native.patch @@ -0,0 +1,33 @@ +diff --git a/dist/js/tools/sentryMetroSerializer.js b/dist/js/tools/sentryMetroSerializer.js +index d7f2350..e9c0368 100644 +--- a/dist/js/tools/sentryMetroSerializer.js ++++ b/dist/js/tools/sentryMetroSerializer.js +@@ -12,12 +12,9 @@ exports.createSentryMetroSerializer = exports.unstable_beforeAssetSerializationP + const crypto = require("crypto"); + const utils_1 = require("./utils"); + const utils_2 = require("./vendor/metro/utils"); +-let countLines; +-try { +- countLines = require('metro/private/lib/countLines'); +-} +-catch (e) { +- countLines = require('metro/src/lib/countLines'); ++const newline = /\r\n?|\n|\u2028|\u2029/g; ++function countLines(string) { ++ return (string.match(newline) || []).length + 1; + } + const DEBUG_ID_PLACE_HOLDER = '__debug_id_place_holder__'; + const DEBUG_ID_MODULE_PATH = '__debugid__'; +diff --git a/scripts/expo-upload-sourcemaps.js b/scripts/expo-upload-sourcemaps.js +index b3783b5..d5e3e45 100755 +--- a/scripts/expo-upload-sourcemaps.js ++++ b/scripts/expo-upload-sourcemaps.js +@@ -218,7 +218,7 @@ for (const [assetGroupName, assets] of Object.entries(groupedAssets)) { + + const isHermes = assets.find(asset => asset.endsWith('.hbc')); + const windowsCallback = process.platform === "win32" ? 'node ' : ''; +- execSync(`${windowsCallback}${sentryCliBin} sourcemaps upload ${isHermes ? '--debug-id-reference' : ''} ${assets.join(' ')}`, { ++ execSync(`${windowsCallback}${sentryCliBin} sourcemaps upload ${isHermes ? '--debug-id-reference' : ''} ${assets.join(' ')} --dist ${process.env.SENTRY_DIST}`, { + env: { + ...process.env, + [SENTRY_PROJECT]: sentryProject, diff --git a/patches/expo-font.patch b/patches/expo-font.patch new file mode 100644 index 000000000..6c363e465 --- /dev/null +++ b/patches/expo-font.patch @@ -0,0 +1,16 @@ +diff --git a/ios/FontLoaderModule.swift b/ios/FontLoaderModule.swift +index 183480f..7b64f6e 100644 +--- a/ios/FontLoaderModule.swift ++++ b/ios/FontLoaderModule.swift +@@ -2,10 +2,9 @@ import ExpoModulesCore + + public final class FontLoaderModule: Module { + // could be a Set, but to be able to pass to JS we keep it as an array +- private var registeredFonts: [String] ++ private lazy var registeredFonts: [String] = queryCustomNativeFonts() + + public required init(appContext: AppContext) { +- self.registeredFonts = queryCustomNativeFonts() + super.init(appContext: appContext) + } + diff --git a/patches/expo-glass-effect.patch b/patches/expo-glass-effect.patch new file mode 100644 index 000000000..7b4fb09cf --- /dev/null +++ b/patches/expo-glass-effect.patch @@ -0,0 +1,60 @@ +diff --git a/ios/GlassContainer.swift b/ios/GlassContainer.swift +index 61fb67c..b2d111e 100644 +--- a/ios/GlassContainer.swift ++++ b/ios/GlassContainer.swift +@@ -1,6 +1,7 @@ + // Copyright 2022-present 650 Industries. All rights reserved. + + import ExpoModulesCore ++import React + + public final class GlassContainer: ExpoView { + private var containerEffect: Any? +@@ -46,11 +47,19 @@ public final class GlassContainer: ExpoView { + } + } + +- public override func mountChildComponentView(_ childComponentView: UIView, index: Int) { ++ // Paper: redirect children into the container effect's contentView ++ public override func didUpdateReactSubviews() { ++ for subview in self.reactSubviews() { ++ containerEffectView.contentView.addSubview(subview) ++ } ++ } ++ ++ // Fabric: redirect children into the container effect's contentView ++ @objc public func mountChildComponentView(_ childComponentView: UIView, index: Int) { + containerEffectView.contentView.insertSubview(childComponentView, at: index) + } + +- public override func unmountChildComponentView(_ childComponentView: UIView, index: Int) { ++ @objc public func unmountChildComponentView(_ childComponentView: UIView, index: Int) { + childComponentView.removeFromSuperview() + } + } +diff --git a/ios/GlassView.swift b/ios/GlassView.swift +index 35cd8f3..9587306 100644 +--- a/ios/GlassView.swift ++++ b/ios/GlassView.swift +@@ -271,11 +271,19 @@ public final class GlassView: ExpoView { + #endif + } + } +- public override func mountChildComponentView(_ childComponentView: UIView, index: Int) { ++ // Paper: redirect children into the glass effect's contentView ++ public override func didUpdateReactSubviews() { ++ for subview in self.reactSubviews() { ++ glassEffectView.contentView.addSubview(subview) ++ } ++ } ++ ++ // Fabric: redirect children into the glass effect's contentView ++ @objc public func mountChildComponentView(_ childComponentView: UIView, index: Int) { + glassEffectView.contentView.insertSubview(childComponentView, at: index) + } + +- public override func unmountChildComponentView(_ childComponentView: UIView, index: Int) { ++ @objc public func unmountChildComponentView(_ childComponentView: UIView, index: Int) { + childComponentView.removeFromSuperview() + } + } diff --git a/patches/expo-haptics.patch b/patches/expo-haptics.patch new file mode 100644 index 000000000..3a385d510 --- /dev/null +++ b/patches/expo-haptics.patch @@ -0,0 +1,13 @@ +diff --git a/android/src/main/java/expo/modules/haptics/HapticsModule.kt b/android/src/main/java/expo/modules/haptics/HapticsModule.kt +index 1520465..6ea988a 100644 +--- a/android/src/main/java/expo/modules/haptics/HapticsModule.kt ++++ b/android/src/main/java/expo/modules/haptics/HapticsModule.kt +@@ -42,7 +42,7 @@ class HapticsModule : Module() { + + private fun vibrate(type: HapticsVibrationType) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { +- vibrator.vibrate(VibrationEffect.createWaveform(type.timings, type.amplitudes, -1)) ++ vibrator.vibrate(VibrationEffect.createWaveform(type.oldSDKPattern, intArrayOf(0, 100), -1)) + } else { + @Suppress("DEPRECATION") + vibrator.vibrate(type.oldSDKPattern, -1) diff --git a/patches/expo-image.patch b/patches/expo-image.patch new file mode 100644 index 000000000..47f8fcc47 --- /dev/null +++ b/patches/expo-image.patch @@ -0,0 +1,103 @@ +diff --git a/build/Image.types.d.ts b/build/Image.types.d.ts +index 022ae48..416504f 100644 +--- a/build/Image.types.d.ts ++++ b/build/Image.types.d.ts +@@ -152,6 +152,16 @@ export interface ImageProps extends Omit { + * @default 'normal' + */ + priority?: 'low' | 'normal' | 'high' | null; ++ /** ++ * The loading behavior for the image. Maps to the native HTML `loading` attribute on web. ++ * ++ * - `'lazy'` - Defers loading until the image is near the viewport. ++ * - `'eager'` - Loads the image immediately. ++ * ++ * @default undefined ++ * @platform web ++ */ ++ loading?: 'lazy' | 'eager' | null; + /** + * Determines whether to cache the image and where: on the disk, in the memory or both. + * +diff --git a/src/ExpoImage.web.tsx b/src/ExpoImage.web.tsx +index 2a49ff0..1c3de93 100644 +--- a/src/ExpoImage.web.tsx ++++ b/src/ExpoImage.web.tsx +@@ -70,6 +70,7 @@ export default function ExpoImage({ + onLoadEnd, + onDisplay, + priority, ++ loading, + blurRadius, + recyclingKey, + style, +@@ -118,6 +119,7 @@ export default function ExpoImage({ + accessibilityLabel={accessibilityLabel ?? alt} + cachePolicy={cachePolicy} + priority={priority} ++ loading={loading} + tintColor={tintColor} + /> + ), +@@ -149,6 +151,7 @@ export default function ExpoImage({ + className={className} + cachePolicy={cachePolicy} + priority={priority} ++ loading={loading} + contentPosition={selectedSource ? contentPosition : { top: '50%', left: '50%' }} + hashPlaceholderContentPosition={contentPosition} + hashPlaceholderStyle={imageHashStyle} +diff --git a/src/Image.types.ts b/src/Image.types.ts +index 9dec0e7..61c1621 100644 +--- a/src/Image.types.ts ++++ b/src/Image.types.ts +@@ -178,6 +178,17 @@ export interface ImageProps extends Omit { + */ + priority?: 'low' | 'normal' | 'high' | null; + ++ /** ++ * The loading behavior for the image. Maps to the native HTML `loading` attribute on web. ++ * ++ * - `'lazy'` - Defers loading until the image is near the viewport. ++ * - `'eager'` - Loads the image immediately. ++ * ++ * @default undefined ++ * @platform web ++ */ ++ loading?: 'lazy' | 'eager' | null; ++ + /** + * Determines whether to cache the image and where: on the disk, in the memory or both. + * +diff --git a/src/web/ImageWrapper.tsx b/src/web/ImageWrapper.tsx +index e8f891d..89a5cb1 100644 +--- a/src/web/ImageWrapper.tsx ++++ b/src/web/ImageWrapper.tsx +@@ -30,6 +30,7 @@ const ImageWrapper = React.forwardRef( + contentPosition, + hashPlaceholderContentPosition, + priority, ++ loading, + style, + hashPlaceholderStyle, + tintColor, +@@ -82,6 +83,7 @@ const ImageWrapper = React.forwardRef( + // @ts-ignore + // eslint-disable-next-line react/no-unknown-property + fetchPriority={getFetchPriorityFromImagePriority(priority || 'normal')} ++ loading={loading || undefined} + {...getImageWrapperEventHandler(events, sourceWithHeaders)} + {...getImgPropsFromSource(source)} + {...props} +diff --git a/src/web/ImageWrapper.types.ts b/src/web/ImageWrapper.types.ts +index 19bbe2f..179837f 100644 +--- a/src/web/ImageWrapper.types.ts ++++ b/src/web/ImageWrapper.types.ts +@@ -29,6 +29,7 @@ export type ImageWrapperProps = { + contentPosition?: ImageContentPositionObject; + hashPlaceholderContentPosition?: ImageContentPositionObject; + priority?: string | null; ++ loading?: 'lazy' | 'eager' | null; + style: CSSProperties; + tintColor?: string | null; + hashPlaceholderStyle?: CSSProperties; diff --git a/patches/expo-media-library.patch b/patches/expo-media-library.patch new file mode 100644 index 000000000..ce357c78e --- /dev/null +++ b/patches/expo-media-library.patch @@ -0,0 +1,13 @@ +diff --git a/android/src/main/java/expo/modules/medialibrary/MediaLibraryModule.kt b/android/src/main/java/expo/modules/medialibrary/MediaLibraryModule.kt +index 2dc1db2..ee844e8 100644 +--- a/android/src/main/java/expo/modules/medialibrary/MediaLibraryModule.kt ++++ b/android/src/main/java/expo/modules/medialibrary/MediaLibraryModule.kt +@@ -105,7 +105,7 @@ class MediaLibraryModule : Module() { + } + + AsyncFunction("createAssetAsync") Coroutine { localUri: String, albumId: String? -> +- requireSystemPermissions() ++ // requireSystemPermissions() + return@Coroutine createAssetWithAlbumId(context, localUri, true, albumId) + } + diff --git a/patches/expo-modules-core.patch b/patches/expo-modules-core.patch new file mode 100644 index 000000000..f36e66ad6 --- /dev/null +++ b/patches/expo-modules-core.patch @@ -0,0 +1,15 @@ +diff --git a/android/src/main/java/expo/modules/kotlin/devtools/ExpoNetworkInspectOkHttpInterceptors.kt b/android/src/main/java/expo/modules/kotlin/devtools/ExpoNetworkInspectOkHttpInterceptors.kt +index 47c4d15..afe138d 100644 +--- a/android/src/main/java/expo/modules/kotlin/devtools/ExpoNetworkInspectOkHttpInterceptors.kt ++++ b/android/src/main/java/expo/modules/kotlin/devtools/ExpoNetworkInspectOkHttpInterceptors.kt +@@ -125,6 +125,10 @@ internal fun peekResponseBody( + } + + internal fun shouldParseBody(response: Response): Boolean { ++ if (response.request.url.encodedPath == "/bitdrift_public.protobuf.client.v1.ApiService/Mux") { ++ return false ++ } ++ + // Check for Content-Type + val skipContentTypes = listOf( + "text/event-stream", // Server Sent Events diff --git a/patches/expo-notifications.patch b/patches/expo-notifications.patch new file mode 100644 index 000000000..4d2bc0e5d --- /dev/null +++ b/patches/expo-notifications.patch @@ -0,0 +1,170 @@ +diff --git a/android/build.gradle b/android/build.gradle +index bc479ee..1ebfa00 100644 +--- a/android/build.gradle ++++ b/android/build.gradle +@@ -42,6 +42,7 @@ dependencies { + implementation 'com.google.firebase:firebase-messaging:24.0.1' + + implementation 'me.leolin:ShortcutBadger:1.1.22@aar' ++ implementation project(':expo-background-notification-handler') + + if (project.findProject(':expo-modules-test-core')) { + testImplementation project(':expo-modules-test-core') +diff --git a/android/src/main/java/expo/modules/notifications/notifications/interfaces/INotificationContent.kt b/android/src/main/java/expo/modules/notifications/notifications/interfaces/INotificationContent.kt +index 7b99e6c..45a450d 100644 +--- a/android/src/main/java/expo/modules/notifications/notifications/interfaces/INotificationContent.kt ++++ b/android/src/main/java/expo/modules/notifications/notifications/interfaces/INotificationContent.kt +@@ -15,6 +15,7 @@ import org.json.JSONObject + * This interface exists to provide a common API for both classes. + * */ + interface INotificationContent : Parcelable { ++ val channelId: String? + val title: String? + val text: String? + val subText: String? +diff --git a/android/src/main/java/expo/modules/notifications/notifications/model/NotificationContent.java b/android/src/main/java/expo/modules/notifications/notifications/model/NotificationContent.java +index 191b64e..fe8b3c5 100644 +--- a/android/src/main/java/expo/modules/notifications/notifications/model/NotificationContent.java ++++ b/android/src/main/java/expo/modules/notifications/notifications/model/NotificationContent.java +@@ -35,6 +35,7 @@ import kotlin.coroutines.Continuation; + * Refactoring this class may require a migration strategy for the data stored in SharedPreferences. + */ + public class NotificationContent implements Parcelable, Serializable, INotificationContent { ++ private String mChannelId; + private String mTitle; + private String mText; + private String mSubtitle; +@@ -65,6 +66,11 @@ public class NotificationContent implements Parcelable, Serializable, INotificat + } + }; + ++ @Nullable ++ public String getChannelId() { ++ return mChannelId; ++ } ++ + @Nullable + public String getTitle() { + return mTitle; +@@ -158,6 +164,7 @@ public class NotificationContent implements Parcelable, Serializable, INotificat + } + + protected NotificationContent(Parcel in) { ++ mChannelId = in.readString(); + mTitle = in.readString(); + mText = in.readString(); + mSubtitle = in.readString(); +@@ -183,6 +190,7 @@ public class NotificationContent implements Parcelable, Serializable, INotificat + + @Override + public void writeToParcel(Parcel dest, int flags) { ++ dest.writeString(mChannelId); + dest.writeString(mTitle); + dest.writeString(mText); + dest.writeString(mSubtitle); +@@ -203,6 +211,7 @@ public class NotificationContent implements Parcelable, Serializable, INotificat + private static final long serialVersionUID = 397666843266836802L; + + private void writeObject(java.io.ObjectOutputStream out) throws IOException { ++ out.writeObject(mChannelId); + out.writeObject(mTitle); + out.writeObject(mText); + out.writeObject(mSubtitle); +@@ -285,6 +294,11 @@ public class NotificationContent implements Parcelable, Serializable, INotificat + useDefaultVibrationPattern(); + } + ++ public Builder setChannelId(String channelId) { ++ content.mChannelId = channelId; ++ return this; ++ } ++ + public Builder setTitle(String title) { + content.mTitle = title; + return this; +diff --git a/android/src/main/java/expo/modules/notifications/notifications/model/NotificationData.kt b/android/src/main/java/expo/modules/notifications/notifications/model/NotificationData.kt +index 3af254c..3c77e9d 100644 +--- a/android/src/main/java/expo/modules/notifications/notifications/model/NotificationData.kt ++++ b/android/src/main/java/expo/modules/notifications/notifications/model/NotificationData.kt +@@ -11,6 +11,9 @@ import org.json.JSONObject + * */ + @JvmInline + value class NotificationData(private val data: Map) { ++ val channelId: String? ++ get() = data["channelId"] ++ + val title: String? + get() = data["title"] + +diff --git a/android/src/main/java/expo/modules/notifications/notifications/model/RemoteNotificationContent.kt b/android/src/main/java/expo/modules/notifications/notifications/model/RemoteNotificationContent.kt +index d2cc6cf..6a48ff2 100644 +--- a/android/src/main/java/expo/modules/notifications/notifications/model/RemoteNotificationContent.kt ++++ b/android/src/main/java/expo/modules/notifications/notifications/model/RemoteNotificationContent.kt +@@ -31,6 +31,8 @@ class RemoteNotificationContent(private val remoteMessage: RemoteMessage) : INot + return remoteMessage.notification?.imageUrl != null + } + ++ override val channelId = remoteMessage.notification?.channelId ?: notificationData.channelId ++ + override val title = remoteMessage.notification?.title ?: notificationData.title + + override val text = remoteMessage.notification?.body ?: notificationData.message +diff --git a/android/src/main/java/expo/modules/notifications/notifications/presentation/builders/ExpoNotificationBuilder.kt b/android/src/main/java/expo/modules/notifications/notifications/presentation/builders/ExpoNotificationBuilder.kt +index 98f003f..2f745e8 100644 +--- a/android/src/main/java/expo/modules/notifications/notifications/presentation/builders/ExpoNotificationBuilder.kt ++++ b/android/src/main/java/expo/modules/notifications/notifications/presentation/builders/ExpoNotificationBuilder.kt +@@ -101,6 +101,9 @@ open class ExpoNotificationBuilder( + builder.setOngoing(content.isSticky) + + // see "Notification anatomy" https://developer.android.com/develop/ui/views/notifications#Templates ++ content.channelId?.let { ++ builder.setChannelId(it) ++ } + builder.setContentTitle(content.title) + builder.setContentText(content.text) + builder.setSubText(content.subText) +diff --git a/android/src/main/java/expo/modules/notifications/service/delegates/FirebaseMessagingDelegate.kt b/android/src/main/java/expo/modules/notifications/service/delegates/FirebaseMessagingDelegate.kt +index 90ca4ff..9d4cb09 100644 +--- a/android/src/main/java/expo/modules/notifications/service/delegates/FirebaseMessagingDelegate.kt ++++ b/android/src/main/java/expo/modules/notifications/service/delegates/FirebaseMessagingDelegate.kt +@@ -3,6 +3,9 @@ package expo.modules.notifications.service.delegates + import android.content.Context + import android.os.Bundle + import com.google.firebase.messaging.RemoteMessage ++import expo.modules.backgroundnotificationhandler.BackgroundNotificationHandler ++import expo.modules.backgroundnotificationhandler.BackgroundNotificationHandlerInterface ++import expo.modules.backgroundnotificationhandler.ExpoBackgroundNotificationHandlerModule + import expo.modules.interfaces.taskManager.TaskServiceProviderHelper + import expo.modules.notifications.notifications.RemoteMessageSerializer + import expo.modules.notifications.notifications.background.BackgroundRemoteNotificationTaskConsumer +@@ -18,7 +21,7 @@ import expo.modules.notifications.tokens.interfaces.FirebaseTokenListener + import java.lang.ref.WeakReference + import java.util.* + +-open class FirebaseMessagingDelegate(protected val context: Context) : FirebaseMessagingDelegate { ++open class FirebaseMessagingDelegate(protected val context: Context) : FirebaseMessagingDelegate, BackgroundNotificationHandlerInterface{ + companion object { + // Unfortunately we cannot save state between instances of a service other way + // than by static properties. Fortunately, using weak references we can +@@ -105,8 +108,19 @@ open class FirebaseMessagingDelegate(protected val context: Context) : FirebaseM + DebugLogging.logRemoteMessage("FirebaseMessagingDelegate.onMessageReceived: message", remoteMessage) + val notification = createNotification(remoteMessage) + DebugLogging.logNotification("FirebaseMessagingDelegate.onMessageReceived: notification", notification) +- NotificationsService.receive(context, notification) +- runTaskManagerTasks(context.applicationContext, RemoteMessageSerializer.toBundle(remoteMessage)) ++ if (!ExpoBackgroundNotificationHandlerModule.isForegrounded) { ++ BackgroundNotificationHandler(context, this).handleMessage(remoteMessage) ++ } else { ++ NotificationsService.receive(context, notification) ++ runTaskManagerTasks( ++ context.applicationContext, ++ RemoteMessageSerializer.toBundle(remoteMessage) ++ ) ++ } ++ } ++ ++ override fun showMessage(remoteMessage: RemoteMessage) { ++ NotificationsService.receive(context, createNotification(remoteMessage)) + } + + protected fun createNotification(remoteMessage: RemoteMessage): Notification { diff --git a/patches/expo-paste-input.patch b/patches/expo-paste-input.patch new file mode 100644 index 000000000..56296eab7 --- /dev/null +++ b/patches/expo-paste-input.patch @@ -0,0 +1,136 @@ +diff --git a/ios/ExpoPasteInputView.swift b/ios/ExpoPasteInputView.swift +index 2164aec4ec1d..d216db6d2927 100644 +--- a/ios/ExpoPasteInputView.swift ++++ b/ios/ExpoPasteInputView.swift +@@ -511,14 +511,17 @@ class ExpoPasteInputView: ExpoView { + var attachmentRanges: [NSRange] = [] + var mediaPayloads: [MediaPayload] = [] + ++ // Only track ranges for attachments we successfully extract a real payload ++ // from. Attachments without a payload (e.g. iOS dictation placeholders) ++ // are left alone — sanitizing them would delete characters the system ++ // manages itself, and emitting "unsupported" would raise a spurious error. + attributedText.enumerateAttribute(.attachment, in: NSRange(location: 0, length: attributedText.length), options: []) { value, range, _ in + guard let attachment = value as? NSTextAttachment else { + return + } + +- attachmentRanges.append(range) +- + if let payload = self.extractMediaPayload(from: attachment, textView: textView, range: range) { ++ attachmentRanges.append(range) + mediaPayloads.append(payload) + } + } +@@ -529,9 +532,8 @@ class ExpoPasteInputView: ExpoView { + return + } + +- attachmentRanges.append(range) +- + if let payload = self.extractMediaPayload(from: adaptiveGlyph) { ++ attachmentRanges.append(range) + mediaPayloads.append(payload) + } + } +@@ -539,17 +541,12 @@ class ExpoPasteInputView: ExpoView { + + attachmentRanges = uniqueRanges(attachmentRanges) + +- guard !attachmentRanges.isEmpty else { +- return +- } +- +- sanitizeAttachments(in: textView, ranges: attachmentRanges) +- + guard !mediaPayloads.isEmpty else { +- handleUnsupportedPaste() + return + } + ++ sanitizeAttachments(in: textView, ranges: attachmentRanges) ++ + emitImagesAsync(for: mediaPayloads) + } + +@@ -651,6 +648,11 @@ class ExpoPasteInputView: ExpoView { + } + + private func extractMediaPayload(from attachment: NSTextAttachment, textView: UITextView, range: NSRange) -> MediaPayload? { ++ // Only accept attachments that carry real image payloads. We intentionally ++ // do not fall back to `image(forBounds:)` or rendering the text view's ++ // hierarchy, because system-inserted attachments (e.g. the iOS dictation ++ // placeholder) draw themselves via those paths and would cause us to ++ // emit a screenshot of the composer as a "pasted image". + if let fileWrapperData = attachment.fileWrapper?.regularFileContents, + let payload = extractMediaPayload(fromData: fileWrapperData) { + return payload +@@ -667,20 +669,6 @@ class ExpoPasteInputView: ExpoView { + return .image(image) + } + +- let attachmentBounds = attachment.bounds.size.width > 0 && attachment.bounds.size.height > 0 +- ? attachment.bounds +- : CGRect(origin: .zero, size: CGSize(width: 128, height: 128)) +- +- if let image = attachment.image(forBounds: attachmentBounds, textContainer: textView.textContainer, characterIndex: range.location), +- image.size.width > 0, +- image.size.height > 0 { +- return .image(image) +- } +- +- if let renderedImage = renderTextAttachment(in: textView, range: range) { +- return .image(renderedImage) +- } +- + return nil + } + +@@ -701,47 +689,6 @@ class ExpoPasteInputView: ExpoView { + return .imageData(data) + } + +- private func renderTextAttachment(in textView: UITextView, range: NSRange) -> UIImage? { +- let glyphRange = textView.layoutManager.glyphRange(forCharacterRange: range, actualCharacterRange: nil) +- var rect = textView.layoutManager.boundingRect(forGlyphRange: glyphRange, in: textView.textContainer) +- +- rect.origin.x += textView.textContainerInset.left - textView.contentOffset.x +- rect.origin.y += textView.textContainerInset.top - textView.contentOffset.y +- rect = rect.integral +- +- guard rect.width > 1, rect.height > 1 else { +- return nil +- } +- +- let format = UIGraphicsImageRendererFormat.default() +- format.scale = textView.window?.screen.scale ?? UIScreen.main.scale +- format.opaque = false +- +- let image = UIGraphicsImageRenderer(size: rect.size, format: format).image { _ in +- let drawRect = CGRect( +- origin: CGPoint(x: -rect.origin.x, y: -rect.origin.y), +- size: textView.bounds.size +- ) +- +- if textView.window != nil { +- textView.drawHierarchy(in: drawRect, afterScreenUpdates: false) +- } else { +- guard let context = UIGraphicsGetCurrentContext() else { +- return +- } +- +- context.translateBy(x: -rect.origin.x, y: -rect.origin.y) +- textView.layer.render(in: context) +- } +- } +- +- guard image.size.width > 0, image.size.height > 0 else { +- return nil +- } +- +- return image +- } +- + @available(iOS 18.0, *) + private func handleAdaptiveImageGlyphInsertion(_ adaptiveGlyph: NSAdaptiveImageGlyph) -> Bool { + guard let payload = extractMediaPayload(from: adaptiveGlyph) else { diff --git a/patches/expo-updates.patch b/patches/expo-updates.patch new file mode 100644 index 000000000..62ebc4abf --- /dev/null +++ b/patches/expo-updates.patch @@ -0,0 +1,26 @@ +diff --git a/ios/EXUpdates/Update/ExpoUpdatesUpdate.swift b/ios/EXUpdates/Update/ExpoUpdatesUpdate.swift +index 68086bd..78c7761 100644 +--- a/ios/EXUpdates/Update/ExpoUpdatesUpdate.swift ++++ b/ios/EXUpdates/Update/ExpoUpdatesUpdate.swift +@@ -78,13 +78,20 @@ public final class ExpoUpdatesUpdate: Update { + status = UpdateStatus.StatusPending + } + ++ // Instead of relying on various hacks to get the correct format for the specific ++ // platform on the backend, we can just add this little patch.. ++ let dateFormatter = DateFormatter() ++ dateFormatter.locale = Locale(identifier: "en_US_POSIX") ++ dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ" ++ let date = dateFormatter.date(from:commitTime) ?? RCTConvert.nsDate(commitTime)! ++ + return Update( + manifest: manifest, + config: config, + database: database, + updateId: uuid, + scopeKey: config.scopeKey, +- commitTime: RCTConvert.nsDate(commitTime), ++ commitTime: date, + runtimeVersion: runtimeVersion, + keep: true, + status: status, diff --git a/patches/react-native-compressor.patch b/patches/react-native-compressor.patch new file mode 100644 index 000000000..7741dc963 --- /dev/null +++ b/patches/react-native-compressor.patch @@ -0,0 +1,516 @@ +diff --git a/android/build.gradle b/android/build.gradle +index 5071139..84bee34 100644 +--- a/android/build.gradle ++++ b/android/build.gradle +@@ -115,7 +115,6 @@ dependencies { + implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4" + implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4" + implementation 'org.mp4parser:isoparser:1.9.56' +- implementation 'com.github.banketree:AndroidLame-kotlin:v0.0.1' + implementation 'javazoom:jlayer:1.0.1' + } + +diff --git a/android/src/main/java/com/reactnativecompressor/Audio/AudioCompressor.kt b/android/src/main/java/com/reactnativecompressor/Audio/AudioCompressor.kt +deleted file mode 100644 +index 9292d3e..0000000 +--- a/android/src/main/java/com/reactnativecompressor/Audio/AudioCompressor.kt ++++ /dev/null +@@ -1,264 +0,0 @@ +-package com.reactnativecompressor.Audio +- +- +-import android.annotation.SuppressLint +-import com.facebook.react.bridge.Promise +-import com.facebook.react.bridge.ReactApplicationContext +-import com.facebook.react.bridge.ReadableMap +-import com.naman14.androidlame.LameBuilder +-import com.naman14.androidlame.WaveReader +-import com.reactnativecompressor.Utils.MediaCache +-import com.reactnativecompressor.Utils.Utils +-import com.reactnativecompressor.Utils.Utils.addLog +-import javazoom.jl.converter.Converter +-import javazoom.jl.decoder.JavaLayerException +-import java.io.BufferedOutputStream +-import java.io.File +-import java.io.FileNotFoundException +-import java.io.FileOutputStream +-import java.io.IOException +- +-class AudioCompressor { +- companion object { +- val TAG="AudioMain" +- private const val OUTPUT_STREAM_BUFFER = 8192 +- +- var outputStream: BufferedOutputStream? = null +- var waveReader: WaveReader? = null +- @JvmStatic +- fun CompressAudio( +- fileUrl: String, +- optionMap: ReadableMap, +- context: ReactApplicationContext, +- promise: Promise, +- ) { +- val realPath = Utils.getRealPath(fileUrl, context) +- var _fileUrl=realPath +- val filePathWithoutFileUri = realPath!!.replace("file://", "") +- try { +- var wavPath=filePathWithoutFileUri; +- var isNonWav:Boolean=false +- if (fileUrl.endsWith(".mp4", ignoreCase = true)) +- { +- addLog("mp4 file found") +- val mp3Path= Utils.generateCacheFilePath("mp3", context) +- AudioExtractor().genVideoUsingMuxer(fileUrl, mp3Path, -1, -1, true, false) +- _fileUrl=Utils.slashifyFilePath(mp3Path) +- wavPath= Utils.generateCacheFilePath("wav", context) +- try { +- val converter = Converter() +- converter.convert(mp3Path, wavPath) +- } catch (e: JavaLayerException) { +- addLog("JavaLayerException error"+e.localizedMessage) +- e.printStackTrace(); +- } +- isNonWav=true +- } +- else if (!fileUrl.endsWith(".wav", ignoreCase = true)) +- { +- addLog("non wav file found") +- wavPath= Utils.generateCacheFilePath("wav", context) +- try { +- val converter = Converter() +- converter.convert(filePathWithoutFileUri, wavPath) +- } catch (e: JavaLayerException) { +- addLog("JavaLayerException error"+e.localizedMessage) +- e.printStackTrace(); +- } +- isNonWav=true +- } +- +- +- autoCompressHelper(wavPath,filePathWithoutFileUri, optionMap,context) { mp3Path, finished -> +- if (finished) { +- val returnableFilePath:String="file://$mp3Path" +- addLog("finished: " + returnableFilePath) +- MediaCache.removeCompletedImagePath(fileUrl) +- if(isNonWav) +- { +- File(wavPath).delete() +- } +- promise.resolve(returnableFilePath) +- } else { +- addLog("error: "+mp3Path) +- promise.resolve(_fileUrl) +- } +- } +- } catch (e: Exception) { +- promise.resolve(_fileUrl) +- } +- } +- +- @SuppressLint("WrongConstant") +- private fun autoCompressHelper( +- fileUrl: String, +- actualFileUrl: String, +- optionMap: ReadableMap, +- context: ReactApplicationContext, +- completeCallback: (String, Boolean) -> Unit +- ) { +- +- val options = AudioHelper.fromMap(optionMap) +- val quality = options.quality +- +- var isCompletedCallbackTriggered:Boolean=false +- try { +- var mp3Path = Utils.generateCacheFilePath("mp3", context) +- val input = File(fileUrl) +- val output = File(mp3Path) +- +- val CHUNK_SIZE = 8192 +- addLog("Initialising wav reader") +- +- waveReader = WaveReader(input) +- +- try { +- waveReader!!.openWave() +- } catch (e: IOException) { +- e.printStackTrace() +- } +- +- addLog("Intitialising encoder") +- +- +- // for bitrate +- var audioBitrate:Int +- if(options.bitrate != -1) +- { +- audioBitrate= options.bitrate/1000 +- } +- else +- { +- audioBitrate=AudioHelper.getDestinationBitrateByQuality(actualFileUrl, quality!!) +- Utils.addLog("dest bitrate: $audioBitrate") +- } +- +- var androidLame = LameBuilder(); +- androidLame.setOutBitrate(audioBitrate) +- +- // for channels +- var audioChannels:Int +- if(options.channels != -1){ +- audioChannels= options.channels!! +- } +- else +- { +- audioChannels=waveReader!!.channels +- } +- androidLame.setOutChannels(audioChannels) +- +- // for sample rate +- androidLame.setInSampleRate(waveReader!!.sampleRate) +- var audioSampleRate:Int +- if(options.samplerate != -1){ +- audioSampleRate= options.samplerate!! +- } +- else +- { +- audioSampleRate=waveReader!!.sampleRate +- } +- androidLame.setOutSampleRate(audioSampleRate) +- val androidLameBuild=androidLame.build() +- +- try { +- outputStream = BufferedOutputStream(FileOutputStream(output), OUTPUT_STREAM_BUFFER) +- } catch (e: FileNotFoundException) { +- e.printStackTrace() +- } +- +- var bytesRead = 0 +- +- val buffer_l = ShortArray(CHUNK_SIZE) +- val buffer_r = ShortArray(CHUNK_SIZE) +- val mp3Buf = ByteArray(CHUNK_SIZE) +- +- val channels = waveReader!!.channels +- +- addLog("started encoding") +- while (true) { +- try { +- if (channels == 2) { +- +- bytesRead = waveReader!!.read(buffer_l, buffer_r, CHUNK_SIZE) +- addLog("bytes read=$bytesRead") +- +- if (bytesRead > 0) { +- +- var bytesEncoded = 0 +- bytesEncoded = androidLameBuild.encode(buffer_l, buffer_r, bytesRead, mp3Buf) +- addLog("bytes encoded=$bytesEncoded") +- +- if (bytesEncoded > 0) { +- try { +- addLog("writing mp3 buffer to outputstream with $bytesEncoded bytes") +- outputStream!!.write(mp3Buf, 0, bytesEncoded) +- } catch (e: IOException) { +- e.printStackTrace() +- } +- +- } +- +- } else +- break +- } else { +- +- bytesRead = waveReader!!.read(buffer_l, CHUNK_SIZE) +- addLog("bytes read=$bytesRead") +- +- if (bytesRead > 0) { +- var bytesEncoded = 0 +- +- bytesEncoded = androidLameBuild.encode(buffer_l, buffer_l, bytesRead, mp3Buf) +- addLog("bytes encoded=$bytesEncoded") +- +- if (bytesEncoded > 0) { +- try { +- addLog("writing mp3 buffer to outputstream with $bytesEncoded bytes") +- outputStream!!.write(mp3Buf, 0, bytesEncoded) +- } catch (e: IOException) { +- e.printStackTrace() +- } +- +- } +- +- } else +- break +- } +- +- +- } catch (e: IOException) { +- e.printStackTrace() +- } +- +- } +- +- addLog("flushing final mp3buffer") +- val outputMp3buf = androidLameBuild.flush(mp3Buf) +- addLog("flushed $outputMp3buf bytes") +- if (outputMp3buf > 0) { +- try { +- addLog("writing final mp3buffer to outputstream") +- outputStream!!.write(mp3Buf, 0, outputMp3buf) +- addLog("closing output stream") +- outputStream!!.close() +- completeCallback(output.absolutePath, true) +- isCompletedCallbackTriggered=true +- } catch (e: IOException) { +- completeCallback(e.localizedMessage, false) +- e.printStackTrace() +- } +- } +- +- } catch (e: IOException) { +- completeCallback(e.localizedMessage, false) +- } +- if(!isCompletedCallbackTriggered) +- { +- completeCallback("something went wrong", false) +- } +- } +- +- +- +- } +-} +diff --git a/android/src/main/java/com/reactnativecompressor/Audio/AudioExtractor.kt b/android/src/main/java/com/reactnativecompressor/Audio/AudioExtractor.kt +deleted file mode 100644 +index c655182..0000000 +--- a/android/src/main/java/com/reactnativecompressor/Audio/AudioExtractor.kt ++++ /dev/null +@@ -1,112 +0,0 @@ +-package com.reactnativecompressor.Audio +- +-import android.annotation.SuppressLint +-import android.media.MediaCodec +-import android.media.MediaExtractor +-import android.media.MediaFormat +-import android.media.MediaMetadataRetriever +-import android.media.MediaMuxer +-import android.util.Log +-import java.io.IOException +-import java.nio.ByteBuffer +- +- +-class AudioExtractor { +- /** +- * @param srcPath the path of source video file. +- * @param dstPath the path of destination video file. +- * @param startMs starting time in milliseconds for trimming. Set to +- * negative if starting from beginning. +- * @param endMs end time for trimming in milliseconds. Set to negative if +- * no trimming at the end. +- * @param useAudio true if keep the audio track from the source. +- * @param useVideo true if keep the video track from the source. +- * @throws IOException +- */ +- @SuppressLint("NewApi", "WrongConstant") +- @Throws(IOException::class) +- fun genVideoUsingMuxer(srcPath: String?, dstPath: String?, startMs: Int, endMs: Int, useAudio: Boolean, useVideo: Boolean) { +- // Set up MediaExtractor to read from the source. +- val extractor = MediaExtractor() +- extractor.setDataSource(srcPath!!) +- val trackCount = extractor.trackCount +- // Set up MediaMuxer for the destination. +- val muxer: MediaMuxer +- muxer = MediaMuxer(dstPath!!, MediaMuxer.OutputFormat.MUXER_OUTPUT_MPEG_4) +- // Set up the tracks and retrieve the max buffer size for selected +- // tracks. +- val indexMap = HashMap(trackCount) +- var bufferSize = -1 +- for (i in 0 until trackCount) { +- val format = extractor.getTrackFormat(i) +- val mime = format.getString(MediaFormat.KEY_MIME) +- var selectCurrentTrack = false +- if (mime!!.startsWith("audio/") && useAudio) { +- selectCurrentTrack = true +- } else if (mime.startsWith("video/") && useVideo) { +- selectCurrentTrack = true +- } +- if (selectCurrentTrack) { +- extractor.selectTrack(i) +- val dstIndex = muxer.addTrack(format) +- indexMap[i] = dstIndex +- if (format.containsKey(MediaFormat.KEY_MAX_INPUT_SIZE)) { +- val newSize = format.getInteger(MediaFormat.KEY_MAX_INPUT_SIZE) +- bufferSize = if (newSize > bufferSize) newSize else bufferSize +- } +- } +- } +- if (bufferSize < 0) { +- bufferSize = DEFAULT_BUFFER_SIZE +- } +- // Set up the orientation and starting time for extractor. +- val retrieverSrc = MediaMetadataRetriever() +- retrieverSrc.setDataSource(srcPath) +- val degreesString = retrieverSrc.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_ROTATION) +- if (degreesString != null) { +- val degrees = degreesString.toInt() +- if (degrees >= 0) { +- muxer.setOrientationHint(degrees) +- } +- } +- if (startMs > 0) { +- extractor.seekTo((startMs * 1000).toLong(), MediaExtractor.SEEK_TO_CLOSEST_SYNC) +- } +- // Copy the samples from MediaExtractor to MediaMuxer. We will loop +- // for copying each sample and stop when we get to the end of the source +- // file or exceed the end time of the trimming. +- val offset = 0 +- var trackIndex = -1 +- val dstBuf = ByteBuffer.allocate(bufferSize) +- val bufferInfo = MediaCodec.BufferInfo() +- muxer.start() +- while (true) { +- bufferInfo.offset = offset +- bufferInfo.size = extractor.readSampleData(dstBuf, offset) +- if (bufferInfo.size < 0) { +- Log.d(TAG, "Saw input EOS.") +- bufferInfo.size = 0 +- break +- } else { +- bufferInfo.presentationTimeUs = extractor.sampleTime +- if (endMs > 0 && bufferInfo.presentationTimeUs > endMs * 1000) { +- Log.d(TAG, "The current sample is over the trim end time.") +- break +- } else { +- bufferInfo.flags = extractor.sampleFlags +- trackIndex = extractor.sampleTrackIndex +- muxer.writeSampleData(indexMap[trackIndex]!!, dstBuf, bufferInfo) +- extractor.advance() +- } +- } +- } +- muxer.stop() +- muxer.release() +- return +- } +- +- companion object { +- private const val DEFAULT_BUFFER_SIZE = 1 * 1024 * 1024 +- private const val TAG = "AudioExtractorDecoder" +- } +-} +diff --git a/android/src/main/java/com/reactnativecompressor/Audio/AudioHelper.kt b/android/src/main/java/com/reactnativecompressor/Audio/AudioHelper.kt +deleted file mode 100644 +index 42040b4..0000000 +--- a/android/src/main/java/com/reactnativecompressor/Audio/AudioHelper.kt ++++ /dev/null +@@ -1,72 +0,0 @@ +-package com.reactnativecompressor.Audio +- +-import android.media.MediaExtractor +-import android.media.MediaFormat +-import com.facebook.react.bridge.ReadableMap +-import com.reactnativecompressor.Utils.Utils +-import java.io.File +-import java.io.IOException +- +- +-class AudioHelper { +- +- var quality: String? = "medium" +- var bitrate: Int = -1 +- var samplerate: Int = -1 +- var channels: Int = -1 +- var progressDivider: Int? = 0 +- +- companion object { +- fun fromMap(map: ReadableMap): AudioHelper { +- val options = AudioHelper() +- val iterator = map.keySetIterator() +- while (iterator.hasNextKey()) { +- val key = iterator.nextKey() +- when (key) { +- "quality" -> options.quality = map.getString(key) +- "bitrate" -> { +- val bitrate = map.getInt(key) +- options.bitrate = if (bitrate > 320000 || bitrate < 64000) 64000 else bitrate +- } +- "samplerate" -> options.samplerate = map.getInt(key) +- "channels" -> options.channels = map.getInt(key) +- } +- } +- return options +- } +- +- +- fun getAudioBitrate(path: String): Int { +- val file = File(path) +- val fileSize = file.length() * 8 // size in bits +- +- val mex = MediaExtractor() +- try { +- mex.setDataSource(path) +- } catch (e: IOException) { +- e.printStackTrace() +- } +- +- val mf = mex.getTrackFormat(0) +- val durationUs = mf.getLong(MediaFormat.KEY_DURATION) +- val durationSec = durationUs / 1_000_000.0 // convert duration to seconds +- +- return (fileSize / durationSec).toInt()/1000 // bitrate in bits per second +- } +- fun getDestinationBitrateByQuality(path: String, quality: String): Int { +- val originalBitrate = getAudioBitrate(path) +- var destinationBitrate = originalBitrate +- Utils.addLog("source bitrate: $originalBitrate") +- +- when (quality.lowercase()) { +- "low" -> destinationBitrate = maxOf(64, (originalBitrate * 0.3).toInt()) +- "medium" -> destinationBitrate = (originalBitrate * 0.5).toInt() +- "high" -> destinationBitrate = minOf(320, (originalBitrate * 0.7).toInt()) +- else -> Utils.addLog("Invalid quality level. Please enter 'low', 'medium', or 'high'.") +- } +- +- return destinationBitrate +- } +- +- } +-} +diff --git a/android/src/main/java/com/reactnativecompressor/Audio/AudioMain.kt b/android/src/main/java/com/reactnativecompressor/Audio/AudioMain.kt +index 446d4fb..f021909 100644 +--- a/android/src/main/java/com/reactnativecompressor/Audio/AudioMain.kt ++++ b/android/src/main/java/com/reactnativecompressor/Audio/AudioMain.kt +@@ -11,7 +11,9 @@ class AudioMain(private val reactContext: ReactApplicationContext) { + promise: Promise) { + try { + +- AudioCompressor.CompressAudio(fileUrl,optionMap,reactContext,promise) ++ // Skip compression on Android to avoid libandroidlame dependency ++ // Return the original file URL without compression ++ promise.resolve(fileUrl) + } catch (ex: Exception) { + promise.reject(ex) + } +diff --git a/android/src/main/java/com/reactnativecompressor/Utils/Utils.kt b/android/src/main/java/com/reactnativecompressor/Utils/Utils.kt +index c14b727..1198908 100644 +--- a/android/src/main/java/com/reactnativecompressor/Utils/Utils.kt ++++ b/android/src/main/java/com/reactnativecompressor/Utils/Utils.kt +@@ -7,7 +7,6 @@ import android.provider.OpenableColumns + import android.util.Log + import com.facebook.react.bridge.Promise + import com.facebook.react.bridge.ReactApplicationContext +-import com.reactnativecompressor.Audio.AudioCompressor + import com.reactnativecompressor.Video.VideoCompressor.CompressionListener + import com.reactnativecompressor.Video.VideoCompressor.VideoCompressorClass + import java.io.FileNotFoundException +@@ -152,10 +151,6 @@ object Utils { + } + } + +- fun addLog(log: String) { +- Log.d(AudioCompressor.TAG, log) +- } +- + val exifAttributes = arrayOf( + "FNumber", + "ApertureValue", diff --git a/patches/react-native-date-picker.patch b/patches/react-native-date-picker.patch new file mode 100644 index 000000000..b12e73824 --- /dev/null +++ b/patches/react-native-date-picker.patch @@ -0,0 +1,17 @@ +diff --git a/ios/RNDatePicker.h b/ios/RNDatePicker.h +index 480746e..470dc3a 100644 +--- a/ios/RNDatePicker.h ++++ b/ios/RNDatePicker.h +@@ -15,6 +15,7 @@ NS_ASSUME_NONNULL_END + #else + #import "DatePicker.h" + #import ++#include + + @interface RNDatePicker : DatePicker + +@@ -22,4 +23,3 @@ NS_ASSUME_NONNULL_END + @end + + #endif +- diff --git a/patches/react-native-drawer-layout.patch b/patches/react-native-drawer-layout.patch new file mode 100644 index 000000000..7c64c0609 --- /dev/null +++ b/patches/react-native-drawer-layout.patch @@ -0,0 +1,38 @@ +diff --git a/lib/module/views/Drawer.native.js b/lib/module/views/Drawer.native.js +index 40fdcdb..770fd67 100644 +--- a/lib/module/views/Drawer.native.js ++++ b/lib/module/views/Drawer.native.js +@@ -124,15 +124,21 @@ export function Drawer({ + } + onTransitionEnd?.(!open); + }); ++ const animatingTo = useSharedValue(null) + const toggleDrawer = React.useCallback((open, velocity) => { + 'worklet'; + ++ if (animatingTo.value === (open ? 'open' : 'close')) { ++ return; ++ } ++ + const translateX = getDrawerTranslationX(open); + if (velocity === undefined) { + runOnJS(onAnimationStart)(open); + } + touchStartX.value = 0; + touchX.value = 0; ++ animatingTo.value = open ? 'open' : 'close'; + translationX.value = withSpring(translateX, { + velocity, + stiffness: 1000, +@@ -142,7 +148,10 @@ export function Drawer({ + restDisplacementThreshold: 0.01, + restSpeedThreshold: 0.01, + reduceMotion: ReduceMotion.Never +- }, finished => runOnJS(onAnimationEnd)(open, finished)); ++ }, finished => { ++ animatingTo.value = null; ++ runOnJS(onAnimationEnd)(open, finished); ++ }); + if (open) { + runOnJS(onOpen)(); + } else { diff --git a/patches/react-native-keyboard-controller.patch b/patches/react-native-keyboard-controller.patch new file mode 100644 index 000000000..587449b16 --- /dev/null +++ b/patches/react-native-keyboard-controller.patch @@ -0,0 +1,48 @@ +diff --git a/src/components/KeyboardChatScrollView/useExtraContentPadding/index.ts b/src/components/KeyboardChatScrollView/useExtraContentPadding/index.ts +index 24a25ae..2c5ff6d 100644 +--- a/src/components/KeyboardChatScrollView/useExtraContentPadding/index.ts ++++ b/src/components/KeyboardChatScrollView/useExtraContentPadding/index.ts +@@ -1,8 +1,6 @@ + import { useCallback } from "react"; +-import { Platform } from "react-native"; + import { scrollTo, useAnimatedReaction } from "react-native-reanimated"; + +-import { IS_FABRIC } from "../../../architecture"; + import { isScrollAtEnd, shouldShiftContent } from "../useChatKeyboard/helpers"; + + import type { KeyboardLiftBehavior } from "../useChatKeyboard/types"; +@@ -52,7 +50,6 @@ function useExtraContentPadding(options: UseExtraContentPaddingOptions): void { + scroll, + layout, + size, +- contentOffsetY, + inverted, + keyboardLiftBehavior, + freeze, +@@ -62,20 +59,14 @@ function useExtraContentPadding(options: UseExtraContentPaddingOptions): void { + (target: number) => { + "worklet"; + +- if (contentOffsetY && IS_FABRIC) { +- // eslint-disable-next-line react-compiler/react-compiler +- contentOffsetY.value = target; +- } else if (Platform.OS === "android") { +- // Defer scrollTo so the animatedProps inset commit lands first; +- // otherwise the native ScrollView clamps to the old range. +- requestAnimationFrame(() => { +- scrollTo(scrollViewRef, 0, target, false); +- }); +- } else { ++ // Always defer scrollTo so the animatedProps inset commit lands first; ++ // otherwise the native ScrollView clamps contentOffset to the old ++ // contentInset range (iOS Fabric) or the old contentInsetBottom (Android). ++ requestAnimationFrame(() => { + scrollTo(scrollViewRef, 0, target, false); +- } ++ }); + }, +- [scrollViewRef, contentOffsetY], ++ [scrollViewRef], + ); + + useAnimatedReaction( diff --git a/patches/react-native-pager-view.patch b/patches/react-native-pager-view.patch new file mode 100644 index 000000000..a5992b3fb --- /dev/null +++ b/patches/react-native-pager-view.patch @@ -0,0 +1,30 @@ +diff --git a/ios/RNCPagerView.m b/ios/RNCPagerView.m +index adfc7c6..366df60 100644 +--- a/ios/RNCPagerView.m ++++ b/ios/RNCPagerView.m +@@ -498,6 +498,25 @@ - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecogni + return YES; + } + ++ // iOS 26+ full-screen back gesture (interactiveContentPopGestureRecognizer) ++ if (@available(iOS 26, *)) { ++ if (gestureRecognizer == self.panGestureRecognizer && ++ otherGestureRecognizer == self.reactViewController.navigationController.interactiveContentPopGestureRecognizer) { ++ UIPanGestureRecognizer* panGestureRecognizer = (UIPanGestureRecognizer*) gestureRecognizer; ++ CGPoint velocity = [panGestureRecognizer velocityInView:self]; ++ BOOL isLTR = [self isLtrLayout]; ++ BOOL isBackGesture = (isLTR && velocity.x > 0) || (!isLTR && velocity.x < 0); ++ ++ if (self.currentIndex == 0 && isBackGesture) { ++ self.scrollView.panGestureRecognizer.enabled = false; ++ } else { ++ self.scrollView.panGestureRecognizer.enabled = self.scrollEnabled; ++ } ++ ++ return YES; ++ } ++ } ++ + self.scrollView.panGestureRecognizer.enabled = self.scrollEnabled; + return NO; + } diff --git a/patches/react-native-reanimated.patch b/patches/react-native-reanimated.patch new file mode 100644 index 000000000..228123d7f --- /dev/null +++ b/patches/react-native-reanimated.patch @@ -0,0 +1,389 @@ +diff --git a/lib/module/component/PerformanceMonitor.js b/lib/module/component/PerformanceMonitor.js +index 9c98d6c..70ada9f 100644 +--- a/lib/module/component/PerformanceMonitor.js ++++ b/lib/module/component/PerformanceMonitor.js +@@ -1,125 +1,5 @@ + 'use strict'; + +-import React, { useEffect, useRef } from 'react'; +-import { StyleSheet, TextInput, View } from 'react-native'; +-import { addWhitelistedNativeProps } from "../ConfigHelper.js"; +-import { createAnimatedComponent } from "../createAnimatedComponent/index.js"; +-import { useAnimatedProps, useFrameCallback, useSharedValue } from "../hook/index.js"; +-function createCircularDoublesBuffer(size) { +- 'worklet'; +- +- return { +- next: 0, +- buffer: new Float32Array(size), +- size, +- count: 0, +- push(value) { +- const oldValue = this.buffer[this.next]; +- const oldCount = this.count; +- this.buffer[this.next] = value; +- this.next = (this.next + 1) % this.size; +- this.count = Math.min(this.size, this.count + 1); +- return oldCount === this.size ? oldValue : null; +- }, +- front() { +- const notEmpty = this.count > 0; +- if (notEmpty) { +- const current = this.next - 1; +- const index = current < 0 ? this.size - 1 : current; +- return this.buffer[index]; +- } +- return null; +- }, +- back() { +- const notEmpty = this.count > 0; +- return notEmpty ? this.buffer[this.next] : null; +- } +- }; +-} +-const DEFAULT_BUFFER_SIZE = 20; +-addWhitelistedNativeProps({ +- text: true +-}); +-const AnimatedTextInput = createAnimatedComponent(TextInput); +-function loopAnimationFrame(fn) { +- let lastTime = 0; +- function loop() { +- requestAnimationFrame(time => { +- if (lastTime > 0) { +- fn(lastTime, time); +- } +- lastTime = time; +- requestAnimationFrame(loop); +- }); +- } +- loop(); +-} +-function getFps(renderTimeInMs) { +- 'worklet'; +- +- return 1000 / renderTimeInMs; +-} +-function completeBufferRoutine(buffer, timestamp) { +- 'worklet'; +- +- timestamp = Math.round(timestamp); +- const droppedTimestamp = buffer.push(timestamp) ?? timestamp; +- const measuredRangeDuration = timestamp - droppedTimestamp; +- return getFps(measuredRangeDuration / buffer.count); +-} +-function JsPerformance({ +- smoothingFrames +-}) { +- const jsFps = useSharedValue(null); +- const totalRenderTime = useSharedValue(0); +- const circularBuffer = useRef(createCircularDoublesBuffer(smoothingFrames)); +- useEffect(() => { +- loopAnimationFrame((_, timestamp) => { +- timestamp = Math.round(timestamp); +- const currentFps = completeBufferRoutine(circularBuffer.current, timestamp); +- +- // JS fps have to be measured every 2nd frame, +- // thus 2x multiplication has to occur here +- jsFps.value = (currentFps * 2).toFixed(0); +- }); +- }, [jsFps, totalRenderTime]); +- const animatedProps = useAnimatedProps(() => { +- const text = 'JS: ' + (jsFps.value ?? 'N/A') + ' '; +- return { +- text, +- defaultValue: text +- }; +- }); +- return +- +- ; +-} +-function UiPerformance({ +- smoothingFrames +-}) { +- const uiFps = useSharedValue(null); +- const circularBuffer = useSharedValue(null); +- useFrameCallback(({ +- timestamp +- }) => { +- if (circularBuffer.value === null) { +- circularBuffer.value = createCircularDoublesBuffer(smoothingFrames); +- } +- timestamp = Math.round(timestamp); +- const currentFps = completeBufferRoutine(circularBuffer.value, timestamp); +- uiFps.value = currentFps.toFixed(0); +- }); +- const animatedProps = useAnimatedProps(() => { +- const text = 'UI: ' + (uiFps.value ?? 'N/A') + ' '; +- return { +- text, +- defaultValue: text +- }; +- }); +- return +- +- ; +-} + /** + * A component that lets you measure fps values on JS and UI threads on both the + * Paper and Fabric architectures. +@@ -127,38 +7,7 @@ function UiPerformance({ + * @param smoothingFrames - Determines amount of saved frames which will be used + * for fps value smoothing. + */ +-export function PerformanceMonitor({ +- smoothingFrames = DEFAULT_BUFFER_SIZE +-}) { +- return +- +- +- ; ++export function PerformanceMonitor() { ++ return null; + } +-const styles = StyleSheet.create({ +- monitor: { +- flexDirection: 'row', +- position: 'absolute', +- backgroundColor: '#0006', +- zIndex: 1000 +- }, +- header: { +- fontSize: 14, +- color: '#ffff', +- paddingHorizontal: 5 +- }, +- text: { +- fontSize: 13, +- fontVariant: ['tabular-nums'], +- color: '#ffff', +- fontFamily: 'monospace', +- paddingHorizontal: 3 +- }, +- container: { +- alignItems: 'center', +- justifyContent: 'center', +- flexDirection: 'row', +- flexWrap: 'wrap' +- } +-}); + //# sourceMappingURL=PerformanceMonitor.js.map +diff --git a/src/component/PerformanceMonitor.tsx b/src/component/PerformanceMonitor.tsx +index ff8fc8a..34dde79 100644 +--- a/src/component/PerformanceMonitor.tsx ++++ b/src/component/PerformanceMonitor.tsx +@@ -1,170 +1,5 @@ + 'use strict'; + +-import React, { useEffect, useRef } from 'react'; +-import { StyleSheet, TextInput, View } from 'react-native'; +- +-import { addWhitelistedNativeProps } from '../ConfigHelper'; +-import { createAnimatedComponent } from '../createAnimatedComponent'; +-import type { FrameInfo } from '../frameCallback'; +-import { useAnimatedProps, useFrameCallback, useSharedValue } from '../hook'; +- +-type CircularBuffer = ReturnType; +-function createCircularDoublesBuffer(size: number) { +- 'worklet'; +- +- return { +- next: 0 as number, +- buffer: new Float32Array(size), +- size, +- count: 0 as number, +- +- push(value: number): number | null { +- const oldValue = this.buffer[this.next]; +- const oldCount = this.count; +- this.buffer[this.next] = value; +- +- this.next = (this.next + 1) % this.size; +- this.count = Math.min(this.size, this.count + 1); +- return oldCount === this.size ? oldValue : null; +- }, +- +- front(): number | null { +- const notEmpty = this.count > 0; +- if (notEmpty) { +- const current = this.next - 1; +- const index = current < 0 ? this.size - 1 : current; +- return this.buffer[index]; +- } +- return null; +- }, +- +- back(): number | null { +- const notEmpty = this.count > 0; +- return notEmpty ? this.buffer[this.next] : null; +- }, +- }; +-} +- +-const DEFAULT_BUFFER_SIZE = 20; +-addWhitelistedNativeProps({ text: true }); +-const AnimatedTextInput = createAnimatedComponent(TextInput); +- +-function loopAnimationFrame(fn: (lastTime: number, time: number) => void) { +- let lastTime = 0; +- +- function loop() { +- requestAnimationFrame((time) => { +- if (lastTime > 0) { +- fn(lastTime, time); +- } +- lastTime = time; +- requestAnimationFrame(loop); +- }); +- } +- +- loop(); +-} +- +-function getFps(renderTimeInMs: number): number { +- 'worklet'; +- return 1000 / renderTimeInMs; +-} +- +-function completeBufferRoutine( +- buffer: CircularBuffer, +- timestamp: number +-): number { +- 'worklet'; +- timestamp = Math.round(timestamp); +- +- const droppedTimestamp = buffer.push(timestamp) ?? timestamp; +- +- const measuredRangeDuration = timestamp - droppedTimestamp; +- +- return getFps(measuredRangeDuration / buffer.count); +-} +- +-function JsPerformance({ smoothingFrames }: { smoothingFrames: number }) { +- const jsFps = useSharedValue(null); +- const totalRenderTime = useSharedValue(0); +- const circularBuffer = useRef( +- createCircularDoublesBuffer(smoothingFrames) +- ); +- +- useEffect(() => { +- loopAnimationFrame((_, timestamp) => { +- timestamp = Math.round(timestamp); +- +- const currentFps = completeBufferRoutine( +- circularBuffer.current, +- timestamp +- ); +- +- // JS fps have to be measured every 2nd frame, +- // thus 2x multiplication has to occur here +- jsFps.value = (currentFps * 2).toFixed(0); +- }); +- }, [jsFps, totalRenderTime]); +- +- const animatedProps = useAnimatedProps(() => { +- const text = 'JS: ' + (jsFps.value ?? 'N/A') + ' '; +- return { text, defaultValue: text }; +- }); +- +- return ( +- +- +- +- ); +-} +- +-function UiPerformance({ smoothingFrames }: { smoothingFrames: number }) { +- const uiFps = useSharedValue(null); +- const circularBuffer = useSharedValue(null); +- +- useFrameCallback(({ timestamp }: FrameInfo) => { +- if (circularBuffer.value === null) { +- circularBuffer.value = createCircularDoublesBuffer(smoothingFrames); +- } +- +- timestamp = Math.round(timestamp); +- +- const currentFps = completeBufferRoutine(circularBuffer.value, timestamp); +- +- uiFps.value = currentFps.toFixed(0); +- }); +- +- const animatedProps = useAnimatedProps(() => { +- const text = 'UI: ' + (uiFps.value ?? 'N/A') + ' '; +- return { text, defaultValue: text }; +- }); +- +- return ( +- +- +- +- ); +-} +- +-export type PerformanceMonitorProps = { +- /** +- * Sets amount of previous frames used for smoothing at highest expectedFps. +- * +- * Automatically scales down at lower frame rates. +- * +- * Affects jumpiness of the FPS measurements value. +- */ +- smoothingFrames?: number; +-}; +- + /** + * A component that lets you measure fps values on JS and UI threads on both the + * Paper and Fabric architectures. +@@ -172,40 +7,6 @@ export type PerformanceMonitorProps = { + * @param smoothingFrames - Determines amount of saved frames which will be used + * for fps value smoothing. + */ +-export function PerformanceMonitor({ +- smoothingFrames = DEFAULT_BUFFER_SIZE, +-}: PerformanceMonitorProps) { +- return ( +- +- +- +- +- ); ++export function PerformanceMonitor() { ++ return null; + } +- +-const styles = StyleSheet.create({ +- monitor: { +- flexDirection: 'row', +- position: 'absolute', +- backgroundColor: '#0006', +- zIndex: 1000, +- }, +- header: { +- fontSize: 14, +- color: '#ffff', +- paddingHorizontal: 5, +- }, +- text: { +- fontSize: 13, +- fontVariant: ['tabular-nums'], +- color: '#ffff', +- fontFamily: 'monospace', +- paddingHorizontal: 3, +- }, +- container: { +- alignItems: 'center', +- justifyContent: 'center', +- flexDirection: 'row', +- flexWrap: 'wrap', +- }, +-}); diff --git a/patches/react-native-svg.patch b/patches/react-native-svg.patch new file mode 100644 index 000000000..400a32f81 --- /dev/null +++ b/patches/react-native-svg.patch @@ -0,0 +1,57 @@ +diff --git a/android/src/main/java/com/horcrux/svg/PathView.java b/android/src/main/java/com/horcrux/svg/PathView.java +index 06829bd..1b15818 100644 +--- a/android/src/main/java/com/horcrux/svg/PathView.java ++++ b/android/src/main/java/com/horcrux/svg/PathView.java +@@ -14,17 +14,33 @@ import android.graphics.Paint; + import android.graphics.Path; + import com.facebook.react.bridge.ReactContext; + ++import java.util.ArrayList; ++import java.util.HashMap; ++ ++class ParsedPath { ++ final Path path; ++ final ArrayList elements; ++ ++ ParsedPath(Path path, ArrayList elements) { ++ this.path = path; ++ this.elements = elements; ++ } ++} ++ + @SuppressLint("ViewConstructor") + class PathView extends RenderableView { + private Path mPath; + ++ // This grows forever but for our use case (static icons) it's ok. ++ private static final HashMap sPathCache = new HashMap<>(); ++ + public PathView(ReactContext reactContext) { + super(reactContext); + PathParser.mScale = mScale; + mPath = new Path(); + } + +- public void setD(String d) { ++ void setDByParsing(String d) { + mPath = PathParser.parse(d); + elements = PathParser.elements; + for (PathElement elem : elements) { +@@ -33,6 +49,17 @@ class PathView extends RenderableView { + point.y *= mScale; + } + } ++ } ++ ++ public void setD(String d) { ++ ParsedPath cached = sPathCache.get(d); ++ if (cached != null) { ++ mPath = cached.path; ++ elements = cached.elements; ++ } else { ++ setDByParsing(d); ++ sPathCache.put(d, new ParsedPath(mPath, elements)); ++ } + invalidate(); + } + diff --git a/patches/react-native-uitextview.patch b/patches/react-native-uitextview.patch new file mode 100644 index 000000000..21490a38d --- /dev/null +++ b/patches/react-native-uitextview.patch @@ -0,0 +1,35 @@ +diff --git a/ios/RNUITextViewShadow.swift b/ios/RNUITextViewShadow.swift +index c34ba71..3602856 100644 +--- a/ios/RNUITextViewShadow.swift ++++ b/ios/RNUITextViewShadow.swift +@@ -159,13 +159,25 @@ class RNUITextViewShadow: RCTShadowView { + let maxSize = CGSize(width: CGFloat(maxWidth), height: CGFloat(MAXFLOAT)) + let textSize = self.attributedText.boundingRect(with: maxSize, options: .usesLineFragmentOrigin, context: nil) + +- var totalLines = self.lineHeight == 0.0 ? 0 : Int(ceil(textSize.height / self.lineHeight)) +- +- if self.numberOfLines != 0, totalLines > self.numberOfLines { +- totalLines = self.numberOfLines ++ var finalHeight: CGFloat ++ ++ if self.numberOfLines != 0 && self.lineHeight != 0.0 { ++ // numberOfLines is set with custom line height - need to calculate lines and snap to lineHeight multiples ++ // NOTE: this calculation can be inaccurate with fractional font sizes ++ var totalLines = Int(ceil(textSize.height / self.lineHeight)) ++ if totalLines > self.numberOfLines { ++ totalLines = self.numberOfLines ++ } ++ finalHeight = CGFloat(totalLines) * self.lineHeight ++ } else { ++ // Either no numberOfLines limit, or no custom lineHeight - use actual text height ++ // (numberOfLines without custom lineHeight is handled by the UITextView's textContainer.maximumNumberOfLines) ++ finalHeight = textSize.height + } + +- self.frameSize = CGSize(width: CGFloat(maxWidth), height: CGFloat(CGFloat(totalLines) * self.lineHeight)) ++ finalHeight = ceil(finalHeight) ++ ++ self.frameSize = CGSize(width: CGFloat(maxWidth), height: finalHeight) + return YGSize(width: Float(self.frameSize.width), height: Float(self.frameSize.height)) + } + diff --git a/patches/react-native-view-shot.patch b/patches/react-native-view-shot.patch new file mode 100644 index 000000000..c1bc0114f --- /dev/null +++ b/patches/react-native-view-shot.patch @@ -0,0 +1,28 @@ +diff --git a/src/index.js b/src/index.js +index fa76d7e..018b686 100644 +--- a/src/index.js ++++ b/src/index.js +@@ -125,13 +125,17 @@ export function captureRef( + } + } + if (typeof view !== "number") { +- const node = findNodeHandle(view); +- if (!node) { +- return Promise.reject( +- new Error("findNodeHandle failed to resolve view=" + String(view)) +- ); ++ if (Platform.OS == 'web') { ++ view = view; ++ } else { ++ const node = findNodeHandle(view); ++ if (!node) { ++ return Promise.reject( ++ new Error("findNodeHandle failed to resolve view=" + String(view)) ++ ); ++ } ++ view = node; + } +- view = node; + } + const { options, errors } = validateOptions(optionsObject); + if (__DEV__ && errors.length > 0) { diff --git a/patches/react-native.patch b/patches/react-native.patch new file mode 100644 index 000000000..304bc4fe4 --- /dev/null +++ b/patches/react-native.patch @@ -0,0 +1,168 @@ +diff --git a/React/Fabric/Mounting/ComponentViews/ScrollView/RCTPullToRefreshViewComponentView.h b/React/Fabric/Mounting/ComponentViews/ScrollView/RCTPullToRefreshViewComponentView.h +index 914a2494a..0deac55f2 100644 +--- a/React/Fabric/Mounting/ComponentViews/ScrollView/RCTPullToRefreshViewComponentView.h ++++ b/React/Fabric/Mounting/ComponentViews/ScrollView/RCTPullToRefreshViewComponentView.h +@@ -19,6 +19,8 @@ NS_ASSUME_NONNULL_BEGIN + */ + @interface RCTPullToRefreshViewComponentView : RCTViewComponentView + ++- (void)beginRefreshingProgrammatically; ++ + @end + + NS_ASSUME_NONNULL_END +diff --git a/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm b/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +index 1494fd225..df643f5c8 100644 +--- a/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm ++++ b/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +@@ -1038,6 +1038,11 @@ static inline UIViewAnimationOptions animationOptionsWithCurve(UIViewAnimationCu + } + } + +++ (BOOL)shouldBeRecycled ++{ ++ return NO; ++} ++ + @end + + Class RCTScrollViewCls(void) +diff --git a/React/Views/RefreshControl/RCTRefreshControl.h b/React/Views/RefreshControl/RCTRefreshControl.h +index e9b330fa7..ec5f58c88 100644 +--- a/React/Views/RefreshControl/RCTRefreshControl.h ++++ b/React/Views/RefreshControl/RCTRefreshControl.h +@@ -15,5 +15,8 @@ + @property (nonatomic, copy) NSString *title; + @property (nonatomic, copy) RCTDirectEventBlock onRefresh; + @property (nonatomic, weak) UIScrollView *scrollView; ++@property (nonatomic, copy) UIColor *customTintColor; ++ ++- (void)forwarderBeginRefreshing; + + @end +diff --git a/React/Views/RefreshControl/RCTRefreshControl.m b/React/Views/RefreshControl/RCTRefreshControl.m +index 53bfd0470..ff1b1ed5e 100644 +--- a/React/Views/RefreshControl/RCTRefreshControl.m ++++ b/React/Views/RefreshControl/RCTRefreshControl.m +@@ -23,6 +23,7 @@ + UIColor *_titleColor; + CGFloat _progressViewOffset; + BOOL _hasMovedToWindow; ++ UIColor *_customTintColor; + } + + - (instancetype)init +@@ -58,6 +59,12 @@ RCT_NOT_IMPLEMENTED(-(instancetype)initWithCoder : (NSCoder *)aDecoder) + _isInitialRender = false; + } + ++- (void)didMoveToSuperview ++{ ++ [super didMoveToSuperview]; ++ [self setTintColor:_customTintColor]; ++} ++ + - (void)didMoveToWindow + { + [super didMoveToWindow]; +@@ -221,4 +228,50 @@ RCT_NOT_IMPLEMENTED(-(instancetype)initWithCoder : (NSCoder *)aDecoder) + } + } + ++// Fix for https://github.com/facebook/react-native/issues/43388 ++// A bug in iOS 17.4 causes the haptic to not play when refreshing if the tintColor ++// is set before the refresh control gets added to the scrollview. We'll call this ++// function whenever the superview changes. We'll also call it if the value of customTintColor ++// changes. ++- (void)setTintColor:(UIColor *)tintColor ++{ ++ if ([self.superview isKindOfClass:[UIScrollView class]] && self.tintColor != tintColor) { ++ [super setTintColor:tintColor]; ++ } ++} ++ ++// This method is used by Bluesky's ExpoScrollForwarder. This allows other React Native ++// libraries to perform a refresh of a scrollview and access the refresh control's onRefresh ++// function. ++- (void)forwarderBeginRefreshing ++{ ++ _refreshingProgrammatically = NO; ++ ++ [self sizeToFit]; ++ ++ if (!self.scrollView) { ++ return; ++ } ++ ++ UIScrollView *scrollView = (UIScrollView *)self.scrollView; ++ ++ [UIView animateWithDuration:0.3 ++ delay:0 ++ options:UIViewAnimationOptionBeginFromCurrentState ++ animations:^(void) { ++ // Whenever we call this method, the scrollview will always be at a position of ++ // -130 or less. Scrolling back to -65 simulates the default behavior of RCTRefreshControl ++ [scrollView setContentOffset:CGPointMake(0, -65)]; ++ } ++ completion:^(__unused BOOL finished) { ++ [super beginRefreshing]; ++ [self setCurrentRefreshingState:super.refreshing]; ++ ++ if (self->_onRefresh) { ++ self->_onRefresh(nil); ++ } ++ } ++ ]; ++} ++ + @end +diff --git a/React/Views/RefreshControl/RCTRefreshControlManager.m b/React/Views/RefreshControl/RCTRefreshControlManager.m +index 40aaf9c51..1c60164b6 100644 +--- a/React/Views/RefreshControl/RCTRefreshControlManager.m ++++ b/React/Views/RefreshControl/RCTRefreshControlManager.m +@@ -22,11 +22,12 @@ RCT_EXPORT_MODULE() + + RCT_EXPORT_VIEW_PROPERTY(onRefresh, RCTDirectEventBlock) + RCT_EXPORT_VIEW_PROPERTY(refreshing, BOOL) +-RCT_EXPORT_VIEW_PROPERTY(tintColor, UIColor) + RCT_EXPORT_VIEW_PROPERTY(title, NSString) + RCT_EXPORT_VIEW_PROPERTY(titleColor, UIColor) + RCT_EXPORT_VIEW_PROPERTY(progressViewOffset, CGFloat) + ++RCT_REMAP_VIEW_PROPERTY(tintColor, customTintColor, UIColor) ++ + RCT_EXPORT_METHOD(setNativeRefreshing : (nonnull NSNumber *)viewTag toRefreshing : (BOOL)refreshing) + { + [self.bridge.uiManager addUIBlock:^(RCTUIManager *uiManager, NSDictionary *viewRegistry) { +diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/core/JavaTimerManager.kt b/ReactAndroid/src/main/java/com/facebook/react/modules/core/JavaTimerManager.kt +index 8b6571698..27c97bfeb 100644 +--- a/ReactAndroid/src/main/java/com/facebook/react/modules/core/JavaTimerManager.kt ++++ b/ReactAndroid/src/main/java/com/facebook/react/modules/core/JavaTimerManager.kt +@@ -313,8 +313,9 @@ public open class JavaTimerManager( + // We also capture the idleCallbackRunnable to tentatively fix: + // https://github.com/facebook/react-native/issues/44842 + currentIdleCallbackRunnable?.cancel() +- currentIdleCallbackRunnable = IdleCallbackRunnable(frameTimeNanos) +- reactApplicationContext.runOnJSQueueThread(currentIdleCallbackRunnable) ++ val idleCallbackRunnable = IdleCallbackRunnable(frameTimeNanos) ++ currentIdleCallbackRunnable = idleCallbackRunnable ++ reactApplicationContext.runOnJSQueueThread(idleCallbackRunnable) + reactChoreographer.postFrameCallback(ReactChoreographer.CallbackType.IDLE_EVENT, this) + } + } +diff --git a/third-party-podspecs/fmt.podspec b/third-party-podspecs/fmt.podspec +index 2f38990e2..9b02e481e 100644 +--- a/third-party-podspecs/fmt.podspec ++++ b/third-party-podspecs/fmt.podspec +@@ -26,4 +26,11 @@ Pod::Spec.new do |spec| + spec.public_header_files = "include/fmt/*.h" + spec.header_mappings_dir = "include" + spec.source_files = ["include/fmt/*.h", "src/format.cc"] ++ ++ # TODO: Remove after upgrading React Native past 0.83.x ++ # Fix fmt 11.0.2 consteval build error with Xcode 26.4 (facebook/react-native#55601) ++ # Fixed in RN 0.84+ which bumps fmt to a compatible version. ++ spec.prepare_command = <<~SCRIPT ++ perl -i -pe 's/^# define FMT_USE_CONSTEVAL 1$/# define FMT_USE_CONSTEVAL 0/' include/fmt/base.h ++ SCRIPT + end diff --git a/patches/sonner-native.patch b/patches/sonner-native.patch new file mode 100644 index 000000000..1c81a5d7c --- /dev/null +++ b/patches/sonner-native.patch @@ -0,0 +1,22 @@ +diff --git a/lib/commonjs/toast.js b/lib/commonjs/toast.js +index 121816a..0c3c7bd 100644 +--- a/lib/commonjs/toast.js ++++ b/lib/commonjs/toast.js +@@ -264,7 +264,7 @@ const Toast = exports.Toast = /*#__PURE__*/React.forwardRef(({ + ...toastSwipeHandlerProps, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.View, { + entering: entering, +- exiting: exiting, ++ exiting: _reactNative.Platform.OS === 'android' ? undefined : exiting, + children: jsx + }) + }); +@@ -274,7 +274,7 @@ const Toast = exports.Toast = /*#__PURE__*/React.forwardRef(({ + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.View, { + style: [unstyled ? undefined : elevationStyle, defaultStyles.toast, toastStyleCtx, styles?.toast, style, wiggleAnimationStyle], + entering: entering, +- exiting: exiting, ++ exiting: _reactNative.Platform.OS === 'android' ? undefined : exiting, + children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, { + style: [defaultStyles.toastContent, toastContentStyleCtx, styles?.toastContent], + children: [promiseOptions || variant === 'loading' ? 'loading' in icons ? icons.loading : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ActivityIndicator, {}) : icon ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 66763288f..026b60bb2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -21,58 +21,141 @@ overrides: pnpmfileChecksum: sha256-JN+J/nZtQDsFTboS0kVQFCgXDGVL0zmIyE1oMYP6Hx0= +patchedDependencies: + '@assembless/react-native-material-you': + hash: 53be260b92b83090343dcb6cc301d0df2355ee77c053a2dd2e882afbbe1f3750 + path: patches/@assembless__react-native-material-you.patch + '@atproto/api@0.19.11': + hash: 551196b4e503f14a9f5b0b9321dc696b5fc80f10c0bafea54e65fe2e68e8da9e + path: patches/@atproto__api.patch + '@atproto/oauth-client': + hash: 07eb9c1dce2d9b9ebf8462cdc04d1f7c8b7beb33c941911b61d5d165acc438e4 + path: patches/@atproto__oauth-client.patch + '@atproto/oauth-client-browser': + hash: 2587c55920f0a39156618e6e7526fd7a179ae86cc80f7fa765ee595c79ff1590 + path: patches/@atproto__oauth-client-browser.patch + '@atproto/oauth-client-expo': + hash: a6a280d4ea415b4ff380f6c428f785044a62a926ff572ccd4a9b368714126aa2 + path: patches/@atproto__oauth-client-expo.patch + '@discord/bottom-sheet': + hash: c1f55b9e514f17d0fb14cb8f63be8c29c13813dc92825ad1b068319a89b78058 + path: patches/@discord__bottom-sheet.patch + '@sentry/react-native': + hash: eabe4ef5650ab873f0c4b4b4685b28674bb2bdfc5b6831d38a20cdbc65af8421 + path: patches/@sentry__react-native.patch + expo-font: + hash: 8a2ed25637094fb1aabc6772b6da2b76d363506a3b1d35f467ce7c67602f31fa + path: patches/expo-font.patch + expo-glass-effect: + hash: df5fb09dd1d8cb170dcdec41eb4bdfb9071824e2a283b32157a2fedbffd9e790 + path: patches/expo-glass-effect.patch + expo-haptics: + hash: 2f29e8e18e936fdcdc6b3502de246da9c2e7db69a53b50d36362f9c58a6f52c5 + path: patches/expo-haptics.patch + expo-image: + hash: 8d0acfb96844c2ece3a9fe3143af6749a253ae0b79f9ab1a87e32306e891fdec + path: patches/expo-image.patch + expo-media-library: + hash: f58c48a1102cf38ae58740359b30546b5d14352222cb2ca2da8496a56a7ca3b7 + path: patches/expo-media-library.patch + expo-modules-core: + hash: 199c7471a167bc1a3840a54bc638369b367a4136fbfa8c9cf25208c42116a808 + path: patches/expo-modules-core.patch + expo-notifications: + hash: a1abb47f1dd151f7ff8977914e66735a33468077ab43c471a70ffca19cfa8816 + path: patches/expo-notifications.patch + expo-paste-input: + hash: 512c0cc95c3b58f271054a9b88cfd4de5513dfb88cdb15fdcdf25ea83e2cbf62 + path: patches/expo-paste-input.patch + expo-updates: + hash: 207ce9dd21cf1b62ff008a93ca2e8bebd39aed4000ea03e0ad9f7d7e4d20e914 + path: patches/expo-updates.patch + react-native: + hash: 1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e + path: patches/react-native.patch + react-native-compressor: + hash: 0ba31d14af9460902771d4bd81d3e4dcad3d53d5b807ad93ade8e4c885a87531 + path: patches/react-native-compressor.patch + react-native-date-picker: + hash: 685da223bdbb0007efd900c5d91d1ffce3e24b636844611ce09986c31099d78f + path: patches/react-native-date-picker.patch + react-native-drawer-layout: + hash: 34827fb3580f586b6bb72ac843f855c8c3cf4d8dbde539a62fbe456ff52dfec0 + path: patches/react-native-drawer-layout.patch + react-native-keyboard-controller: + hash: 503e2dac4f73e0a297ddbd98e9beca9122204e1e8d0b1f0394cad39a4d296e45 + path: patches/react-native-keyboard-controller.patch + react-native-pager-view: + hash: dc75f16661d6d3e8df3922bc4a116ae0475316979175aca7c9c44205f2261d4a + path: patches/react-native-pager-view.patch + react-native-reanimated: + hash: c07ea02fe4c889e65498c2fb39d82e93a0745a06e7800850054fbf0cb95ee1e4 + path: patches/react-native-reanimated.patch + react-native-svg: + hash: 63a29fca836ba68b4b2b1a7c60a183c6b3a722f6d0431ff04b395b0cbe9b371d + path: patches/react-native-svg.patch + react-native-uitextview: + hash: 4ce4ef3360cb665aa72b2185783177015926f386408a410f8be5ba249c231452 + path: patches/react-native-uitextview.patch + react-native-view-shot: + hash: 880fe37fd38fd711876e272c6b87187fd96147e28117aca0976cdf3566bee46c + path: patches/react-native-view-shot.patch + sonner-native: + hash: ece9220544b4b0bc2d61dce52f0c3ff3b78f75319c99cdbd5a2eed2227d7341a + path: patches/sonner-native.patch + importers: .: dependencies: '@assembless/react-native-material-you': specifier: 1.0.0-beta.4 - version: 1.0.0-beta.4(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + version: 1.0.0-beta.4(patch_hash=53be260b92b83090343dcb6cc301d0df2355ee77c053a2dd2e882afbbe1f3750)(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) '@atproto/api': specifier: ^0.19.11 - version: 0.19.11 + version: 0.19.11(patch_hash=551196b4e503f14a9f5b0b9321dc696b5fc80f10c0bafea54e65fe2e68e8da9e) '@atproto/oauth-client-browser': specifier: ^0.3.41 - version: 0.3.41 + version: 0.3.41(patch_hash=2587c55920f0a39156618e6e7526fd7a179ae86cc80f7fa765ee595c79ff1590) '@atproto/oauth-client-expo': specifier: ^0.0.10 - version: 0.0.10(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + version: 0.0.10(patch_hash=a6a280d4ea415b4ff380f6c428f785044a62a926ff572ccd4a9b368714126aa2)(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) '@atproto/syntax': specifier: 0.5.2 version: 0.5.2 '@bitdrift/react-native': specifier: ^0.6.14 - version: 0.6.14(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + version: 0.6.14(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) '@braintree/sanitize-url': specifier: ^6.0.4 version: 6.0.4 '@bsky.app/alf': specifier: ^0.1.8 - version: 0.1.8(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + version: 0.1.8(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) '@bsky.app/expo-guess-language': specifier: ^0.2.8 - version: 0.2.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + version: 0.2.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) '@bsky.app/expo-image-crop-tool': specifier: ^0.5.0 - version: 0.5.0(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + version: 0.5.0(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) '@bsky.app/expo-scroll-edge-effect': specifier: ^0.1.4 - version: 0.1.4(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + version: 0.1.4(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) '@bsky.app/expo-translate-text': specifier: ^0.2.9 - version: 0.2.9(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + version: 0.2.9(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) '@bsky.app/sift': specifier: ^0.3.3 - version: 0.3.3(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + version: 0.3.3(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) '@bsky.app/tapper': specifier: ^0.5.1 - version: 0.5.1(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + version: 0.5.1(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) '@bsky.app/video': specifier: 0.3.4 - version: 0.3.4(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + version: 0.3.4(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) '@discord/bottom-sheet': specifier: github:bluesky-social/react-native-bottom-sheet - version: https://codeload.github.com/bluesky-social/react-native-bottom-sheet/tar.gz/28a87d1bb55e10fc355fa1455545a30734995908(@shopify/flash-list@2.3.1(@babel/runtime@7.25.9)(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(@types/react@19.2.14)(react-native-gesture-handler@2.28.0(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native-reanimated@3.19.5(@babel/core@7.25.2)(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + version: https://codeload.github.com/bluesky-social/react-native-bottom-sheet/tar.gz/28a87d1bb55e10fc355fa1455545a30734995908(patch_hash=c1f55b9e514f17d0fb14cb8f63be8c29c13813dc92825ad1b068319a89b78058)(25b59ec915034430fa24009e08da2b1e) '@easrng/tr58': specifier: 0.0.5 version: 0.0.5 @@ -87,7 +170,7 @@ importers: version: 0.12.5 '@expo/webpack-config': specifier: ^19.0.1 - version: 19.0.1(@rspack/core@2.0.0)(@swc/core@1.15.30)(esbuild@0.27.7)(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) + version: 19.0.1(@rspack/core@2.0.0)(@swc/core@1.15.30)(esbuild@0.27.7)(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) '@floating-ui/dom': specifier: ^1.7.6 version: 1.7.6 @@ -117,7 +200,7 @@ importers: version: 6.7.2 '@fortawesome/react-native-fontawesome': specifier: ^0.3.2 - version: 0.3.2(@fortawesome/fontawesome-svg-core@6.7.2)(react-native-svg@15.12.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0)) + version: 0.3.2(@fortawesome/fontawesome-svg-core@6.7.2)(react-native-svg@15.12.1(patch_hash=63a29fca836ba68b4b2b1a7c60a183c6b3a722f6d0431ff04b395b0cbe9b371d)(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0)) '@growthbook/growthbook': specifier: ^1.6.5 version: 1.6.5 @@ -135,25 +218,25 @@ importers: version: 5.9.5(@lingui/babel-plugin-lingui-macro@5.9.5(typescript@6.0.3))(react@19.1.0) '@miblanchard/react-native-slider': specifier: ^2.6.0 - version: 2.6.0(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + version: 2.6.0(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) '@mozzius/expo-dynamic-app-icon': specifier: ^1.8.1 - version: 1.8.1(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + version: 1.8.1(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) '@react-native-async-storage/async-storage': specifier: 2.2.0 - version: 2.2.0(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0)) + version: 2.2.0(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0)) '@react-navigation/bottom-tabs': specifier: ^7.15.9 - version: 7.15.10(@react-navigation/native@7.2.2(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native-screens@4.24.0(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + version: 7.15.10(@react-navigation/native@7.2.2(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native-screens@4.24.0(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) '@react-navigation/native': specifier: ^7.2.2 - version: 7.2.2(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + version: 7.2.2(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) '@react-navigation/native-stack': specifier: ^7.14.11 - version: 7.14.12(@react-navigation/native@7.2.2(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native-screens@4.24.0(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + version: 7.14.12(@react-navigation/native@7.2.2(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native-screens@4.24.0(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) '@sentry/react-native': specifier: ~6.20.0 - version: 6.20.0(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + version: 6.20.0(patch_hash=eabe4ef5650ab873f0c4b4b4685b28674bb2bdfc5b6831d38a20cdbc65af8421)(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) '@tanstack/query-async-storage-persister': specifier: ^5.100.1 version: 5.100.5 @@ -249,109 +332,109 @@ importers: version: 5.0.4 expo: specifier: ^54.0.33 - version: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + version: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) expo-application: specifier: ~7.0.8 - version: 7.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) + version: 7.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) expo-blur: specifier: ~15.0.8 - version: 15.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + version: 15.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) expo-build-properties: specifier: ~1.0.10 - version: 1.0.10(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) + version: 1.0.10(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) expo-camera: specifier: ~17.0.10 - version: 17.0.10(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + version: 17.0.10(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) expo-clipboard: specifier: ~8.0.8 - version: 8.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + version: 8.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) expo-contacts: specifier: ^15.0.11 - version: 15.0.11(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + version: 15.0.11(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) expo-dev-client: specifier: ~6.0.20 - version: 6.0.20(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) + version: 6.0.20(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) expo-device: specifier: ~8.0.10 - version: 8.0.10(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) + version: 8.0.10(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) expo-file-system: specifier: ~19.0.21 - version: 19.0.21(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0)) + version: 19.0.21(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0)) expo-font: specifier: ~14.0.11 - version: 14.0.11(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + version: 14.0.11(patch_hash=8a2ed25637094fb1aabc6772b6da2b76d363506a3b1d35f467ce7c67602f31fa)(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) expo-glass-effect: specifier: 55.0.8 - version: 55.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + version: 55.0.8(patch_hash=df5fb09dd1d8cb170dcdec41eb4bdfb9071824e2a283b32157a2fedbffd9e790)(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) expo-haptics: specifier: ~15.0.8 - version: 15.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) + version: 15.0.8(patch_hash=2f29e8e18e936fdcdc6b3502de246da9c2e7db69a53b50d36362f9c58a6f52c5)(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) expo-image: specifier: ~3.0.11 - version: 3.0.11(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + version: 3.0.11(patch_hash=8d0acfb96844c2ece3a9fe3143af6749a253ae0b79f9ab1a87e32306e891fdec)(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) expo-image-manipulator: specifier: ~14.0.8 - version: 14.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) + version: 14.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) expo-image-picker: specifier: ~17.0.10 - version: 17.0.10(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) + version: 17.0.10(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) expo-intent-launcher: specifier: ~13.0.8 - version: 13.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) + version: 13.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) expo-keep-awake: specifier: ~15.0.8 - version: 15.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react@19.1.0) + version: 15.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react@19.1.0) expo-linear-gradient: specifier: ~15.0.8 - version: 15.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + version: 15.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) expo-linking: specifier: ~8.0.11 - version: 8.0.11(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + version: 8.0.11(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) expo-localization: specifier: ~17.0.8 - version: 17.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react@19.1.0) + version: 17.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react@19.1.0) expo-location: specifier: ~19.0.8 - version: 19.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) + version: 19.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) expo-media-library: specifier: ~18.2.1 - version: 18.2.1(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0)) + version: 18.2.1(patch_hash=f58c48a1102cf38ae58740359b30546b5d14352222cb2ca2da8496a56a7ca3b7)(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0)) expo-notifications: specifier: ~0.32.16 - version: 0.32.16(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + version: 0.32.16(patch_hash=a1abb47f1dd151f7ff8977914e66735a33468077ab43c471a70ffca19cfa8816)(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) expo-paste-input: specifier: ^0.1.15 - version: 0.1.15(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + version: 0.1.15(patch_hash=512c0cc95c3b58f271054a9b88cfd4de5513dfb88cdb15fdcdf25ea83e2cbf62)(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) expo-privacy-sensitive: specifier: ^0.1.0 - version: 0.1.0(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + version: 0.1.0(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) expo-screen-orientation: specifier: ~9.0.8 - version: 9.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0)) + version: 9.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0)) expo-sharing: specifier: ~14.0.8 - version: 14.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) + version: 14.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) expo-sms: specifier: ^14.0.8 - version: 14.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) + version: 14.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) expo-splash-screen: specifier: ~31.0.13 - version: 31.0.13(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) + version: 31.0.13(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) expo-system-ui: specifier: ~6.0.9 - version: 6.0.9(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0)) + version: 6.0.9(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0)) expo-updates: specifier: ~29.0.16 - version: 29.0.16(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + version: 29.0.16(patch_hash=207ce9dd21cf1b62ff008a93ca2e8bebd39aed4000ea03e0ad9f7d7e4d20e914)(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) expo-video: specifier: ~3.0.16 - version: 3.0.16(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + version: 3.0.16(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) expo-video-thumbnails: specifier: ^10.0.8 - version: 10.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) + version: 10.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) expo-web-browser: specifier: ~15.0.10 - version: 15.0.10(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0)) + version: 15.0.10(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0)) fast-deep-equal: specifier: ^3.1.3 version: 3.1.3 @@ -435,61 +518,61 @@ importers: version: 5.1.2(react-is@19.2.5)(react@19.1.0) react-native: specifier: 0.81.5 - version: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + version: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) react-native-compressor: specifier: 1.13.0 - version: 1.13.0(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + version: 1.13.0(patch_hash=0ba31d14af9460902771d4bd81d3e4dcad3d53d5b807ad93ade8e4c885a87531)(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) react-native-date-picker: specifier: ^5.0.13 - version: 5.0.13(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + version: 5.0.13(patch_hash=685da223bdbb0007efd900c5d91d1ffce3e24b636844611ce09986c31099d78f)(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) react-native-device-attest: specifier: ^0.1.6 - version: 0.1.6(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + version: 0.1.6(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) react-native-drawer-layout: specifier: ^4.2.2 - version: 4.2.2(react-native-gesture-handler@2.28.0(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native-reanimated@3.19.5(@babel/core@7.25.2)(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + version: 4.2.2(patch_hash=34827fb3580f586b6bb72ac843f855c8c3cf4d8dbde539a62fbe456ff52dfec0)(react-native-gesture-handler@2.28.0(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native-reanimated@3.19.5(patch_hash=c07ea02fe4c889e65498c2fb39d82e93a0745a06e7800850054fbf0cb95ee1e4)(@babel/core@7.25.2)(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) react-native-edge-to-edge: specifier: ^1.8.1 - version: 1.8.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + version: 1.8.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) react-native-gesture-handler: specifier: ~2.28.0 - version: 2.28.0(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + version: 2.28.0(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) react-native-keyboard-controller: specifier: ^1.21.6 - version: 1.21.6(react-native-reanimated@3.19.5(@babel/core@7.25.2)(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + version: 1.21.6(patch_hash=503e2dac4f73e0a297ddbd98e9beca9122204e1e8d0b1f0394cad39a4d296e45)(react-native-reanimated@3.19.5(patch_hash=c07ea02fe4c889e65498c2fb39d82e93a0745a06e7800850054fbf0cb95ee1e4)(@babel/core@7.25.2)(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) react-native-mmkv: specifier: npm:@bsky.app/react-native-mmkv@2.12.5 - version: '@bsky.app/react-native-mmkv@2.12.5(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)' + version: '@bsky.app/react-native-mmkv@2.12.5(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)' react-native-pager-view: specifier: 6.8.0 - version: 6.8.0(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + version: 6.8.0(patch_hash=dc75f16661d6d3e8df3922bc4a116ae0475316979175aca7c9c44205f2261d4a)(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) react-native-progress: specifier: github:bluesky-social/react-native-progress - version: https://codeload.github.com/bluesky-social/react-native-progress/tar.gz/5a372f4f2ce5feb26f4f47b6a4d187ab9b923ab4(react-native-svg@15.12.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) + version: https://codeload.github.com/bluesky-social/react-native-progress/tar.gz/5a372f4f2ce5feb26f4f47b6a4d187ab9b923ab4(react-native-svg@15.12.1(patch_hash=63a29fca836ba68b4b2b1a7c60a183c6b3a722f6d0431ff04b395b0cbe9b371d)(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) react-native-qrcode-styled: specifier: ^0.3.3 - version: 0.3.3(react-native-svg@15.12.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + version: 0.3.3(react-native-svg@15.12.1(patch_hash=63a29fca836ba68b4b2b1a7c60a183c6b3a722f6d0431ff04b395b0cbe9b371d)(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) react-native-reanimated: specifier: ^3.19.5 - version: 3.19.5(@babel/core@7.25.2)(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + version: 3.19.5(patch_hash=c07ea02fe4c889e65498c2fb39d82e93a0745a06e7800850054fbf0cb95ee1e4)(@babel/core@7.25.2)(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) react-native-safe-area-context: specifier: ~5.6.2 - version: 5.6.2(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + version: 5.6.2(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) react-native-screens: specifier: ^4.24.0 - version: 4.24.0(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + version: 4.24.0(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) react-native-svg: specifier: 15.12.1 - version: 15.12.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + version: 15.12.1(patch_hash=63a29fca836ba68b4b2b1a7c60a183c6b3a722f6d0431ff04b395b0cbe9b371d)(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) react-native-uitextview: specifier: ^1.4.0 - version: 1.4.0(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + version: 1.4.0(patch_hash=4ce4ef3360cb665aa72b2185783177015926f386408a410f8be5ba249c231452)(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) react-native-uuid: specifier: ^2.0.4 version: 2.0.4 react-native-view-shot: specifier: ^4.0.3 - version: 4.0.3(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + version: 4.0.3(patch_hash=880fe37fd38fd711876e272c6b87187fd96147e28117aca0976cdf3566bee46c)(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) react-native-web: specifier: ^0.21.2 version: 0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) @@ -498,7 +581,7 @@ importers: version: 1.0.2(file-loader@6.2.0(webpack@5.106.2(@swc/core@1.15.30)(esbuild@0.27.7)))(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)) react-native-webview: specifier: ^13.16.1 - version: 13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + version: 13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) react-remove-scroll-bar: specifier: ^2.3.8 version: 2.3.8(@types/react@19.2.14)(react@19.1.0) @@ -516,7 +599,7 @@ importers: version: 2.0.7(react-dom@19.1.0(react@19.1.0))(react@19.1.0) sonner-native: specifier: 0.21.0 - version: 0.21.0(react-native-gesture-handler@2.28.0(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native-reanimated@3.19.5(@babel/core@7.25.2)(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native-screens@4.24.0(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native-svg@15.12.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + version: 0.21.0(patch_hash=ece9220544b4b0bc2d61dce52f0c3ff3b78f75319c99cdbd5a2eed2227d7341a)(4a1b5dbf65b323b48e98d700605b8786) tippy.js: specifier: ^6.3.7 version: 6.3.7 @@ -595,7 +678,7 @@ importers: version: 1.15.30 '@testing-library/react-native': specifier: ^13.3.3 - version: 13.3.3(jest@29.7.0(@types/node@20.19.39)(ts-node@10.9.2(@swc/core@1.15.30)(@types/node@20.19.39)(typescript@6.0.3)))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react-test-renderer@19.1.0(react@19.1.0))(react@19.1.0) + version: 13.3.3(jest@29.7.0(@types/node@20.19.39)(ts-node@10.9.2(@swc/core@1.15.30)(@types/node@20.19.39)(typescript@6.0.3)))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react-test-renderer@19.1.0(react@19.1.0))(react@19.1.0) '@types/chroma-js': specifier: ^3.1.2 version: 3.1.2 @@ -643,7 +726,7 @@ importers: version: 0.35.0 babel-preset-expo: specifier: ~54.0.10 - version: 54.0.10(@babel/core@7.25.2)(@babel/runtime@7.25.9)(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-refresh@0.14.2) + version: 54.0.10(@babel/core@7.25.2)(@babel/runtime@7.25.9)(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-refresh@0.14.2) eslint: specifier: ^9.39.4 version: 9.39.4(jiti@2.6.1) @@ -694,7 +777,7 @@ importers: version: 29.7.0(@types/node@20.19.39)(ts-node@10.9.2(@swc/core@1.15.30)(@types/node@20.19.39)(typescript@6.0.3)) jest-expo: specifier: ~54.0.17 - version: 54.0.17(@babel/core@7.25.2)(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(jest@29.7.0(@types/node@20.19.39)(ts-node@10.9.2(@swc/core@1.15.30)(@types/node@20.19.39)(typescript@6.0.3)))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + version: 54.0.17(@babel/core@7.25.2)(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(jest@29.7.0(@types/node@20.19.39)(ts-node@10.9.2(@swc/core@1.15.30)(@types/node@20.19.39)(typescript@6.0.3)))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) jest-junit: specifier: ^16.0.0 version: 16.0.0 @@ -755,7 +838,7 @@ importers: version: 9.39.4 '@preact/preset-vite': specifier: ^2.10.2 - version: 2.10.5(@babel/core@7.25.2)(preact@10.29.1)(rollup@4.60.2)(vite@7.3.2(@types/node@20.19.39)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.46.2)(yaml@2.8.3)) + version: 2.10.5(@babel/core@7.29.0)(preact@10.29.1)(rollup@4.60.2)(vite@7.3.2(@types/node@20.19.39)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.46.2)(yaml@2.8.3)) '@vitejs/plugin-legacy': specifier: ^7.0.0 version: 7.2.1(terser@5.46.2)(vite@7.3.2(@types/node@20.19.39)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.46.2)(yaml@2.8.3)) @@ -2832,6 +2915,12 @@ packages: '@hapi/hoek@11.0.7': resolution: {integrity: sha512-HV5undWkKzcB4RZUusqOpcgxOaq6VOAH7zhhIr2g3G8NF/MlFO75SjOr2NfuSx0Mh40+1FqCkagKLJRykUWoFQ==} + '@hapi/hoek@9.3.0': + resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} + + '@hapi/topo@5.1.0': + resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==} + '@humanfs/core@0.19.2': resolution: {integrity: sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==} engines: {node: '>=18.18.0'} @@ -4037,6 +4126,44 @@ packages: peerDependencies: react-native: ^0.0.0-0 || >=0.65 <1.0 + '@react-native-community/cli-clean@20.1.3': + resolution: {integrity: sha512-sFLdLzapfC0scjgzBJJWYDY2RhHPjuuPkA5r6q0gc/UQH/izXpMpLrhh1DW84cMDraNACK0U62tU7ebNaQ1LMQ==} + + '@react-native-community/cli-config-android@20.1.3': + resolution: {integrity: sha512-DNHDP+OWLyhKShGciBqPcxhxfp1Z/7GQcb4F+TGyCeKQAr+JdnUjRXN3X+YCU/v+g2kbYYyRJKlGabzkVvdrAw==} + + '@react-native-community/cli-config-apple@20.1.3': + resolution: {integrity: sha512-QX9B83nAfCPs0KiaYz61kAEHWr9sttooxzRzNdQwvZTwnsIpvWOT9GvMMj/19OeXiQzMJBzZX0Pgt6+spiUsDQ==} + + '@react-native-community/cli-config@20.1.3': + resolution: {integrity: sha512-n73nW0cG92oNF0r994pPqm0DjAShOm3F8LSffDYhJqNAno+h/csmv/37iL4NtSpmKIO8xqsG3uVTXz9X/hzNaQ==} + + '@react-native-community/cli-doctor@20.1.3': + resolution: {integrity: sha512-EI+mAPWn255/WZ4CQohy1I049yiaxVr41C3BeQ2BCyhxODIDR8XRsLzYb1t9MfqK/C3ZncUN2mPSRXFeKPPI1w==} + + '@react-native-community/cli-platform-android@20.1.3': + resolution: {integrity: sha512-bzB9ELPOISuqgtDZXFPQlkuxx1YFkNx3cNgslc5ElCrk+5LeCLQLIBh/dmIuK8rwUrPcrramjeBj++Noc+TaAA==} + + '@react-native-community/cli-platform-apple@20.1.3': + resolution: {integrity: sha512-XJ+DqAD4hkplWVXK5AMgN7pP9+4yRSe5KfZ/b42+ofkDBI55ALlUmX+9HWE3fMuRjcotTCoNZqX2ov97cFDXpQ==} + + '@react-native-community/cli-platform-ios@20.1.3': + resolution: {integrity: sha512-2qL48SINotuHbZO73cgqSwqd/OWNx0xTbFSdujhpogV4p8BNwYYypfjh4vJY5qJEB5PxuoVkMXT+aCADpg9nBg==} + + '@react-native-community/cli-server-api@20.1.3': + resolution: {integrity: sha512-hsNsdUKZDd2T99OuNuiXz4VuvLa1UN0zcxefmPjXQgI0byrBLzzDr+o7p03sKuODSzKi2h+BMnUxiS07HACQLA==} + + '@react-native-community/cli-tools@20.1.3': + resolution: {integrity: sha512-EAn0vPCMxtHhfWk2UwLmSUfPfLUnFgC7NjiVJVTKJyVk5qGnkPfoT8te/1IUXFTysUB0F0RIi+NgDB4usFOLeA==} + + '@react-native-community/cli-types@20.1.3': + resolution: {integrity: sha512-IdAcegf0pH1hVraxWTG1ACLkYC0LDQfqtaEf42ESyLIF3Xap70JzL/9tAlxw7lSCPZPFWhrcgU0TBc4SkC/ecw==} + + '@react-native-community/cli@20.1.3': + resolution: {integrity: sha512-sLo8cu9JyFNfuuF1C+8NJ4DHE/PEFaXGd4enkcxi/OJjGG8+sOQrdjNQ4i+cVh/2c+ah1mEMwsYjc3z0+/MqSg==} + engines: {node: '>=20.19.4'} + hasBin: true + '@react-native/assets-registry@0.81.5': resolution: {integrity: sha512-705B6x/5Kxm1RKRvSv0ADYWm5JOnoiQ1ufW7h8uu2E6G9Of/eE6hP/Ivw3U5jI16ERqZxiKQwk34VJbB0niX9w==} engines: {node: '>= 20.19.4'} @@ -4785,6 +4912,15 @@ packages: engines: {node: '>= 8.0.0'} hasBin: true + '@sideway/address@4.1.5': + resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==} + + '@sideway/formula@3.0.1': + resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==} + + '@sideway/pinpoint@2.0.0': + resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} + '@sinclair/typebox@0.27.10': resolution: {integrity: sha512-MTBk/3jGLNB2tVxv6uLlFh1iu64iYOQ2PbdOSK3NW8JZsmlaOh2q6sdtKowBhfw8QFLmYNzTW4/oK4uATIi6ZA==} @@ -5703,6 +5839,9 @@ packages: babel-plugin-react-compiler: optional: true + '@vscode/sudo-prompt@9.3.2': + resolution: {integrity: sha512-gcXoCN00METUNFeQOFJ+C9xUI0DKB+0EGMVg7wbVYRHBw2Eq3fKisDZOkRdOz3kqXRKOENMfShPOmypw1/8nOw==} + '@webassemblyjs/ast@1.14.1': resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} @@ -5868,6 +6007,9 @@ packages: resolution: {integrity: sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig==} engines: {node: '>=14.16'} + ansi-fragments@0.2.1: + resolution: {integrity: sha512-DykbNHxuXQwUDRv5ibc2b0x7uw7wmwOGLBUd5RmaQ5z8Lhx19vwvKV+FAsM5rEA6dEcHxX+/Ad5s9eF2k2bB+w==} + ansi-html-community@0.0.8: resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==} engines: {'0': node >= 0.8.0} @@ -5913,6 +6055,9 @@ packages: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} + appdirsjs@1.2.7: + resolution: {integrity: sha512-Quji6+8kLBC3NnBeo14nPDq0+2jUs5s3/xEye+udFHumHhRk4M7aAMXp/PBJqkKYGuuyR9M/6Dq7d2AViiGmhw==} + arch@2.2.0: resolution: {integrity: sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==} @@ -5990,6 +6135,10 @@ packages: ast-types-flow@0.0.7: resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==} + astral-regex@1.0.0: + resolution: {integrity: sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==} + engines: {node: '>=4'} + async-function@1.0.0: resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} engines: {node: '>= 0.4'} @@ -6199,6 +6348,10 @@ packages: resolution: {integrity: sha512-3grm+/2tUOvu2cjJkvsIxrv/wVpfXQW4PsQHYm7yk4vfpu7Ekl6nEsYBoJUL6qDwZUx8wUhQ8tR2qz+ad9c9OA==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + body-parser@2.2.2: + resolution: {integrity: sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==} + engines: {node: '>=18'} + bonjour-service@1.3.0: resolution: {integrity: sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA==} @@ -6503,6 +6656,9 @@ packages: colord@2.9.3: resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} + colorette@1.4.0: + resolution: {integrity: sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==} + colorette@2.0.20: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} @@ -6518,6 +6674,9 @@ packages: resolution: {integrity: sha512-T6PB6vdFrwnHXg/I0kivM3DqaCGZLjjYSOe0a5WgFKcz1sOnmOeIjnhQPXVXX3QjVbLyTJ85lJkX6lUpukTzaA==} engines: {node: '>=6'} + command-exists@1.2.9: + resolution: {integrity: sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==} + commander@10.0.1: resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} engines: {node: '>=14'} @@ -6548,6 +6707,10 @@ packages: resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} engines: {node: '>= 12'} + commander@9.5.0: + resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} + engines: {node: ^12.20.0 || >=14} + comment-parser@1.4.6: resolution: {integrity: sha512-ObxuY6vnbWTN6Od72xfwN9DbzC7Y2vv8u1Soi9ahRKL37gb6y1qk6/dgjs+3JWuXJHWvsg3BXIwzd/rkmAwavg==} engines: {node: '>= 12.0.0'} @@ -6802,6 +6965,9 @@ packages: date-fns@3.6.0: resolution: {integrity: sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==} + dayjs@1.11.20: + resolution: {integrity: sha512-YbwwqR/uYpeoP4pu043q+LTDLFBLApUP6VxRihdfNTqu4ubqMlGDLd6ErXhEgsyvY0K6nCs7nggYumAN+9uEuQ==} + debounce@1.2.1: resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} @@ -7105,12 +7271,21 @@ packages: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} + envinfo@7.21.0: + resolution: {integrity: sha512-Lw7I8Zp5YKHFCXL7+Dz95g4CcbMEpgvqZNNq3AmlT5XAV6CgAAk6gyAMqn2zjw08K9BHfcNuKrMiCPLByGafow==} + engines: {node: '>=4'} + hasBin: true + error-ex@1.3.4: resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} error-stack-parser@2.1.4: resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} + errorhandler@1.5.2: + resolution: {integrity: sha512-kNAL7hESndBCrWwS72QyV3IVOTrVmj9D062FV5BQswNL5zEdeRmz/WJFyh6Aj/plvvSOrzddkxW57HgkZcR9Fw==} + engines: {node: '>= 0.8'} + es-abstract@1.24.2: resolution: {integrity: sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg==} engines: {node: '>= 0.4'} @@ -8251,6 +8426,10 @@ packages: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} + iconv-lite@0.7.2: + resolution: {integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==} + engines: {node: '>=0.10.0'} + icss-utils@5.1.0: resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} engines: {node: ^10 || ^12 || >= 14} @@ -8400,6 +8579,10 @@ packages: resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} engines: {node: '>= 0.4'} + is-fullwidth-code-point@2.0.0: + resolution: {integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==} + engines: {node: '>=4'} + is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} @@ -8523,6 +8706,10 @@ packages: resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} engines: {node: '>= 0.4'} + is-wsl@1.1.0: + resolution: {integrity: sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==} + engines: {node: '>=4'} + is-wsl@2.2.0: resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} engines: {node: '>=8'} @@ -8759,6 +8946,9 @@ packages: resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} hasBin: true + joi@17.13.3: + resolution: {integrity: sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==} + jose@5.10.0: resolution: {integrity: sha512-s+3Al/p9g32Iq+oqXxkW//7jk2Vig6FF1CFqzVXoTUXt2qz89YWbL+OwS17NFYEvxC35n0FKeGO2LGYSxeM2Gg==} @@ -9078,6 +9268,10 @@ packages: resolution: {integrity: sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + logkitty@0.7.1: + resolution: {integrity: sha512-/3ER20CTTbahrCrpYfPn7Xavv9diBROZpoXGVZDWMw4b/X4uuUwAC0ki85tgsdMRONURyIJbcOvS94QsUBYPbQ==} + hasBin: true + long@5.3.2: resolution: {integrity: sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==} @@ -9160,6 +9354,10 @@ packages: resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} engines: {node: '>= 0.6'} + media-typer@1.1.0: + resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==} + engines: {node: '>= 0.8'} + memfs@3.5.3: resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} engines: {node: '>= 4.0.0'} @@ -9278,11 +9476,20 @@ packages: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} + mime-types@3.0.2: + resolution: {integrity: sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==} + engines: {node: '>=18'} + mime@1.6.0: resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} engines: {node: '>=4'} hasBin: true + mime@2.6.0: + resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==} + engines: {node: '>=4.0.0'} + hasBin: true + mimic-fn@1.2.0: resolution: {integrity: sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==} engines: {node: '>=4'} @@ -9424,6 +9631,10 @@ packages: no-case@3.0.4: resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + nocache@3.0.4: + resolution: {integrity: sha512-WDD0bdg9mbq6F4mRxEYcPWwfA1vxd0mrvKOyxI7Xj/atfRHVeutzuWByG//jfm4uPzp0y4Kj051EORCBSQMycw==} + engines: {node: '>=12.0.0'} + node-abi@3.89.0: resolution: {integrity: sha512-6u9UwL0HlAl21+agMN3YAMXcKByMqwGx+pq+P76vii5f7hTPtKDp08/H9py6DY+cfDw7kQNTGEj/rly3IgbNQA==} engines: {node: '>=10'} @@ -9461,6 +9672,10 @@ packages: node-releases@2.0.38: resolution: {integrity: sha512-3qT/88Y3FbH/Kx4szpQQ4HzUbVrHPKTLVpVocKiLfoYvw9XSGOX2FmD2d6DrXbVYyAQTF2HeF6My8jmzx7/CRw==} + node-stream-zip@1.15.0: + resolution: {integrity: sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==} + engines: {node: '>=0.12.0'} + nodemailer-html-to-text@3.2.0: resolution: {integrity: sha512-RJUC6640QV1PzTHHapOrc6IzrAJUZtk2BdVdINZ9VTLm+mcQNyBO9LYyhrnufkzqiD9l8hPLJ97rSyK4WanPNg==} engines: {node: '>= 10.23.0'} @@ -9582,6 +9797,10 @@ packages: resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} engines: {node: '>=12'} + open@6.4.0: + resolution: {integrity: sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==} + engines: {node: '>=8'} + open@7.4.2: resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==} engines: {node: '>=8'} @@ -10371,6 +10590,10 @@ packages: resolution: {integrity: sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==} engines: {node: '>= 0.8'} + raw-body@3.0.2: + resolution: {integrity: sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==} + engines: {node: '>= 0.10'} + rc@1.2.8: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true @@ -11074,6 +11297,10 @@ packages: resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} engines: {node: '>=14.16'} + slice-ansi@2.1.0: + resolution: {integrity: sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==} + engines: {node: '>=6'} + slice-ansi@5.0.0: resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} engines: {node: '>=12'} @@ -11219,6 +11446,9 @@ packages: resolution: {integrity: sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==} engines: {node: '>=4'} + strict-url-sanitise@0.0.1: + resolution: {integrity: sha512-nuFtF539K8jZg3FjaWH/L8eocCR6gegz5RDOsaWxfdbF5Jqr2VXWxZayjTwUzsWJDC91k2EbnJXp6FuWW+Z4hg==} + string-argv@0.3.2: resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} engines: {node: '>=0.6.19'} @@ -11590,6 +11820,10 @@ packages: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} engines: {node: '>= 0.6'} + type-is@2.0.1: + resolution: {integrity: sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==} + engines: {node: '>= 0.6'} + typed-array-buffer@1.0.3: resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} engines: {node: '>= 0.4'} @@ -12282,10 +12516,10 @@ snapshots: '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 - '@assembless/react-native-material-you@1.0.0-beta.4(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)': + '@assembless/react-native-material-you@1.0.0-beta.4(patch_hash=53be260b92b83090343dcb6cc301d0df2355ee77c053a2dd2e882afbbe1f3750)(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)': dependencies: react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) '@atproto-labs/did-resolver@0.2.6': dependencies: @@ -12373,7 +12607,7 @@ snapshots: tlds: 1.261.0 zod: 3.25.76 - '@atproto/api@0.19.11': + '@atproto/api@0.19.11(patch_hash=551196b4e503f14a9f5b0b9321dc696b5fc80f10c0bafea54e65fe2e68e8da9e)': dependencies: '@atproto/common-web': 0.4.21 '@atproto/lexicon': 0.6.2 @@ -12405,7 +12639,7 @@ snapshots: dependencies: '@atproto-labs/fetch-node': 0.2.0 '@atproto-labs/xrpc-utils': 0.0.24 - '@atproto/api': 0.19.11 + '@atproto/api': 0.19.11(patch_hash=551196b4e503f14a9f5b0b9321dc696b5fc80f10c0bafea54e65fe2e68e8da9e) '@atproto/common': 0.5.16 '@atproto/crypto': 0.4.5 '@atproto/did': 0.3.0 @@ -12530,7 +12764,7 @@ snapshots: '@atproto/dev-env@0.3.215': dependencies: - '@atproto/api': 0.19.11 + '@atproto/api': 0.19.11(patch_hash=551196b4e503f14a9f5b0b9321dc696b5fc80f10c0bafea54e65fe2e68e8da9e) '@atproto/bsky': 0.0.221 '@atproto/bsync': 0.0.25 '@atproto/common-web': 0.4.21 @@ -12687,7 +12921,7 @@ snapshots: multiformats: 9.9.0 zod: 3.25.76 - '@atproto/oauth-client-browser@0.3.41': + '@atproto/oauth-client-browser@0.3.41(patch_hash=2587c55920f0a39156618e6e7526fd7a179ae86cc80f7fa765ee595c79ff1590)': dependencies: '@atproto-labs/did-resolver': 0.2.6 '@atproto-labs/handle-resolver': 0.3.6 @@ -12695,25 +12929,25 @@ snapshots: '@atproto/did': 0.3.0 '@atproto/jwk': 0.6.0 '@atproto/jwk-webcrypto': 0.2.0 - '@atproto/oauth-client': 0.6.0 + '@atproto/oauth-client': 0.6.0(patch_hash=07eb9c1dce2d9b9ebf8462cdc04d1f7c8b7beb33c941911b61d5d165acc438e4) '@atproto/oauth-types': 0.6.3 core-js: 3.49.0 - '@atproto/oauth-client-expo@0.0.10(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)': + '@atproto/oauth-client-expo@0.0.10(patch_hash=a6a280d4ea415b4ff380f6c428f785044a62a926ff572ccd4a9b368714126aa2)(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)': dependencies: '@atproto-labs/simple-store': 0.3.0 - '@atproto/oauth-client': 0.6.0 - '@atproto/oauth-client-browser': 0.3.41 + '@atproto/oauth-client': 0.6.0(patch_hash=07eb9c1dce2d9b9ebf8462cdc04d1f7c8b7beb33c941911b61d5d165acc438e4) + '@atproto/oauth-client-browser': 0.3.41(patch_hash=2587c55920f0a39156618e6e7526fd7a179ae86cc80f7fa765ee595c79ff1590) core-js: 3.49.0 - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) - expo-web-browser: 15.0.10(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0)) - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) - react-native-mmkv: '@bsky.app/react-native-mmkv@2.12.5(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)' - react-native-url-polyfill: 3.0.0(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0)) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo-web-browser: 15.0.10(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0)) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) + react-native-mmkv: '@bsky.app/react-native-mmkv@2.12.5(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)' + react-native-url-polyfill: 3.0.0(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0)) transitivePeerDependencies: - react - '@atproto/oauth-client@0.6.0': + '@atproto/oauth-client@0.6.0(patch_hash=07eb9c1dce2d9b9ebf8462cdc04d1f7c8b7beb33c941911b61d5d165acc438e4)': dependencies: '@atproto-labs/did-resolver': 0.2.6 '@atproto-labs/fetch': 0.2.3 @@ -12783,7 +13017,7 @@ snapshots: '@atproto/ozone@0.1.172': dependencies: - '@atproto/api': 0.19.11 + '@atproto/api': 0.19.11(patch_hash=551196b4e503f14a9f5b0b9321dc696b5fc80f10c0bafea54e65fe2e68e8da9e) '@atproto/common': 0.5.16 '@atproto/crypto': 0.4.5 '@atproto/identity': 0.4.12 @@ -13930,6 +14164,11 @@ snapshots: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 @@ -14537,6 +14776,13 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-react-jsx-development@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/plugin-transform-react-jsx': 7.28.6(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 @@ -14558,6 +14804,17 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-react-jsx@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-module-imports': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0) + '@babel/types': 7.29.0 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-react-pure-annotations@7.27.1(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 @@ -14951,71 +15208,71 @@ snapshots: '@bcoe/v8-coverage@0.2.3': {} - '@bitdrift/react-native@0.6.14(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)': + '@bitdrift/react-native@0.6.14(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)': dependencies: '@expo/config-plugins': 9.1.7 fast-json-stringify: 6.3.0 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) transitivePeerDependencies: - supports-color '@braintree/sanitize-url@6.0.4': {} - '@bsky.app/alf@0.1.8(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)': + '@bsky.app/alf@0.1.8(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)': dependencies: react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) react-responsive: 10.0.1(react@19.1.0) - '@bsky.app/expo-guess-language@0.2.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)': + '@bsky.app/expo-guess-language@0.2.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)': dependencies: - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) lande: 1.0.10 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) - '@bsky.app/expo-image-crop-tool@0.5.0(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)': + '@bsky.app/expo-image-crop-tool@0.5.0(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)': dependencies: - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) - '@bsky.app/expo-scroll-edge-effect@0.1.4(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)': + '@bsky.app/expo-scroll-edge-effect@0.1.4(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)': dependencies: - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) - '@bsky.app/expo-translate-text@0.2.9(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)': + '@bsky.app/expo-translate-text@0.2.9(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)': dependencies: - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) - '@bsky.app/react-native-mmkv@2.12.5(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)': + '@bsky.app/react-native-mmkv@2.12.5(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)': dependencies: react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) - '@bsky.app/sift@0.3.3(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)': + '@bsky.app/sift@0.3.3(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)': dependencies: - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) - react-native-safe-area-context: 5.6.2(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) + react-native-safe-area-context: 5.6.2(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) - '@bsky.app/tapper@0.5.1(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)': + '@bsky.app/tapper@0.5.1(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)': dependencies: - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) - '@bsky.app/video@0.3.4(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)': + '@bsky.app/video@0.3.4(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)': dependencies: - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) '@bufbuild/protobuf@1.10.1': {} @@ -15111,15 +15368,15 @@ snapshots: - pg-native - supports-color - '@discord/bottom-sheet@https://codeload.github.com/bluesky-social/react-native-bottom-sheet/tar.gz/28a87d1bb55e10fc355fa1455545a30734995908(@shopify/flash-list@2.3.1(@babel/runtime@7.25.9)(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(@types/react@19.2.14)(react-native-gesture-handler@2.28.0(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native-reanimated@3.19.5(@babel/core@7.25.2)(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)': + '@discord/bottom-sheet@https://codeload.github.com/bluesky-social/react-native-bottom-sheet/tar.gz/28a87d1bb55e10fc355fa1455545a30734995908(patch_hash=c1f55b9e514f17d0fb14cb8f63be8c29c13813dc92825ad1b068319a89b78058)(25b59ec915034430fa24009e08da2b1e)': dependencies: - '@gorhom/portal': 1.0.14(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) - '@shopify/flash-list': 2.3.1(@babel/runtime@7.25.9)(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + '@gorhom/portal': 1.0.14(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + '@shopify/flash-list': 2.3.1(@babel/runtime@7.25.9)(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) invariant: 2.2.4 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) - react-native-gesture-handler: 2.28.0(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) - react-native-reanimated: 3.19.5(@babel/core@7.25.2)(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) + react-native-gesture-handler: 2.28.0(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + react-native-reanimated: 3.19.5(patch_hash=c07ea02fe4c889e65498c2fb39d82e93a0745a06e7800850054fbf0cb95ee1e4)(@babel/core@7.25.2)(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) optionalDependencies: '@types/react': 19.2.14 @@ -15361,7 +15618,7 @@ snapshots: '@eslint/core': 0.17.0 levn: 0.4.1 - '@expo/cli@54.0.23(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))': + '@expo/cli@54.0.23(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))': dependencies: '@0no-co/graphql.web': 1.2.0 '@expo/code-signing-certificates': 0.0.6 @@ -15372,11 +15629,11 @@ snapshots: '@expo/image-utils': 0.8.12 '@expo/json-file': 10.0.13 '@expo/metro': 54.2.0 - '@expo/metro-config': 54.0.14(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) + '@expo/metro-config': 54.0.14(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) '@expo/osascript': 2.4.2 '@expo/package-manager': 1.10.4 '@expo/plist': 0.4.8 - '@expo/prebuild-config': 54.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) + '@expo/prebuild-config': 54.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) '@expo/schema-utils': 0.1.8 '@expo/spawn-async': 1.7.2 '@expo/ws-tunnel': 1.0.6 @@ -15395,7 +15652,7 @@ snapshots: connect: 3.7.0 debug: 4.4.3 env-editor: 0.4.2 - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) expo-server: 1.0.5 freeport-async: 2.0.0 getenv: 2.0.0 @@ -15428,7 +15685,7 @@ snapshots: wrap-ansi: 7.0.0 ws: 8.20.0 optionalDependencies: - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) transitivePeerDependencies: - bufferutil - graphql @@ -15506,12 +15763,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@expo/devtools@0.1.8(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)': + '@expo/devtools@0.1.8(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)': dependencies: chalk: 4.1.2 optionalDependencies: react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) '@expo/env@2.0.11': dependencies: @@ -15561,7 +15818,7 @@ snapshots: '@babel/code-frame': 7.10.4 json5: 2.2.3 - '@expo/metro-config@54.0.14(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))': + '@expo/metro-config@54.0.14(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))': dependencies: '@babel/code-frame': 7.29.0 '@babel/core': 7.25.2 @@ -15585,7 +15842,7 @@ snapshots: postcss: 8.4.49 resolve-from: 5.0.0 optionalDependencies: - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) transitivePeerDependencies: - bufferutil - supports-color @@ -15637,7 +15894,7 @@ snapshots: base64-js: 1.5.1 xmlbuilder: 15.1.1 - '@expo/prebuild-config@54.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))': + '@expo/prebuild-config@54.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))': dependencies: '@expo/config': 12.0.13 '@expo/config-plugins': 54.0.4 @@ -15646,7 +15903,7 @@ snapshots: '@expo/json-file': 10.0.13 '@react-native/normalize-colors': 0.81.5 debug: 4.4.3 - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) resolve-from: 5.0.0 semver: 7.7.4 xml2js: 0.6.0 @@ -15663,13 +15920,13 @@ snapshots: '@expo/sudo-prompt@9.3.2': {} - '@expo/vector-icons@15.1.1(expo-font@14.0.11(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)': + '@expo/vector-icons@15.1.1(9c8d197c01bb6774a042adf8c7eac129)': dependencies: - expo-font: 14.0.11(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo-font: 14.0.11(patch_hash=8a2ed25637094fb1aabc6772b6da2b76d363506a3b1d35f467ce7c67602f31fa)(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) - '@expo/webpack-config@19.0.1(@rspack/core@2.0.0)(@swc/core@1.15.30)(esbuild@0.27.7)(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))': + '@expo/webpack-config@19.0.1(@rspack/core@2.0.0)(@swc/core@1.15.30)(esbuild@0.27.7)(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))': dependencies: '@babel/core': 7.25.2 babel-loader: 8.4.1(@babel/core@7.25.2)(webpack@5.106.2(@swc/core@1.15.30)(esbuild@0.27.7)) @@ -15678,8 +15935,8 @@ snapshots: copy-webpack-plugin: 10.2.4(webpack@5.106.2(@swc/core@1.15.30)(esbuild@0.27.7)) css-loader: 6.11.0(@rspack/core@2.0.0)(webpack@5.106.2(@swc/core@1.15.30)(esbuild@0.27.7)) css-minimizer-webpack-plugin: 3.4.1(esbuild@0.27.7)(webpack@5.106.2(@swc/core@1.15.30)(esbuild@0.27.7)) - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) - expo-pwa: 0.0.127(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo-pwa: 0.0.127(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) find-up: 5.0.0 find-yarn-workspace-root: 2.0.0 fs-extra: 11.3.4 @@ -15805,19 +16062,19 @@ snapshots: dependencies: '@fortawesome/fontawesome-common-types': 6.7.2 - '@fortawesome/react-native-fontawesome@0.3.2(@fortawesome/fontawesome-svg-core@6.7.2)(react-native-svg@15.12.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))': + '@fortawesome/react-native-fontawesome@0.3.2(@fortawesome/fontawesome-svg-core@6.7.2)(react-native-svg@15.12.1(patch_hash=63a29fca836ba68b4b2b1a7c60a183c6b3a722f6d0431ff04b395b0cbe9b371d)(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))': dependencies: '@fortawesome/fontawesome-svg-core': 6.7.2 humps: 2.0.1 prop-types: 15.8.1 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) - react-native-svg: 15.12.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) + react-native-svg: 15.12.1(patch_hash=63a29fca836ba68b4b2b1a7c60a183c6b3a722f6d0431ff04b395b0cbe9b371d)(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) - '@gorhom/portal@1.0.14(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)': + '@gorhom/portal@1.0.14(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)': dependencies: nanoid: 3.3.11 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) '@growthbook/growthbook-react@1.6.5(react@19.1.0)': dependencies: @@ -15868,6 +16125,14 @@ snapshots: '@hapi/hoek@11.0.7': {} + '@hapi/hoek@9.3.0': + optional: true + + '@hapi/topo@5.1.0': + dependencies: + '@hapi/hoek': 9.3.0 + optional: true + '@humanfs/core@0.19.2': dependencies: '@humanfs/types': 0.15.0 @@ -16325,17 +16590,17 @@ snapshots: dependencies: make-plural: 7.5.0 - '@miblanchard/react-native-slider@2.6.0(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)': + '@miblanchard/react-native-slider@2.6.0(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)': dependencies: react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) - '@mozzius/expo-dynamic-app-icon@1.8.1(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)': + '@mozzius/expo-dynamic-app-icon@1.8.1(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)': dependencies: '@expo/image-utils': 0.8.12 - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) xcode: 3.0.1 '@napi-rs/wasm-runtime@0.2.12': @@ -16404,14 +16669,14 @@ snapshots: '@popperjs/core@2.11.8': {} - '@preact/preset-vite@2.10.5(@babel/core@7.25.2)(preact@10.29.1)(rollup@4.60.2)(vite@7.3.2(@types/node@20.19.39)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.46.2)(yaml@2.8.3))': + '@preact/preset-vite@2.10.5(@babel/core@7.29.0)(preact@10.29.1)(rollup@4.60.2)(vite@7.3.2(@types/node@20.19.39)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.46.2)(yaml@2.8.3))': dependencies: - '@babel/core': 7.25.2 - '@babel/plugin-transform-react-jsx': 7.28.6(@babel/core@7.25.2) - '@babel/plugin-transform-react-jsx-development': 7.27.1(@babel/core@7.25.2) + '@babel/core': 7.29.0 + '@babel/plugin-transform-react-jsx': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-react-jsx-development': 7.27.1(@babel/core@7.29.0) '@prefresh/vite': 2.4.12(preact@10.29.1)(vite@7.3.2(@types/node@20.19.39)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.46.2)(yaml@2.8.3)) '@rollup/pluginutils': 5.3.0(rollup@4.60.2) - babel-plugin-transform-hook-names: 1.0.2(@babel/core@7.25.2) + babel-plugin-transform-hook-names: 1.0.2(@babel/core@7.29.0) debug: 4.4.3 magic-string: 0.30.21 picocolors: 1.1.1 @@ -17213,10 +17478,152 @@ snapshots: '@radix-ui/rect@1.1.1': {} - '@react-native-async-storage/async-storage@2.2.0(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))': + '@react-native-async-storage/async-storage@2.2.0(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))': dependencies: merge-options: 3.0.4 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) + + '@react-native-community/cli-clean@20.1.3': + dependencies: + '@react-native-community/cli-tools': 20.1.3 + execa: 5.1.1 + fast-glob: 3.3.3 + picocolors: 1.1.1 + optional: true + + '@react-native-community/cli-config-android@20.1.3': + dependencies: + '@react-native-community/cli-tools': 20.1.3 + fast-glob: 3.3.3 + fast-xml-parser: 5.7.1 + picocolors: 1.1.1 + optional: true + + '@react-native-community/cli-config-apple@20.1.3': + dependencies: + '@react-native-community/cli-tools': 20.1.3 + execa: 5.1.1 + fast-glob: 3.3.3 + picocolors: 1.1.1 + optional: true + + '@react-native-community/cli-config@20.1.3(typescript@6.0.3)': + dependencies: + '@react-native-community/cli-tools': 20.1.3 + cosmiconfig: 9.0.1(typescript@6.0.3) + deepmerge: 4.3.1 + fast-glob: 3.3.3 + joi: 17.13.3 + picocolors: 1.1.1 + transitivePeerDependencies: + - typescript + optional: true + + '@react-native-community/cli-doctor@20.1.3(typescript@6.0.3)': + dependencies: + '@react-native-community/cli-config': 20.1.3(typescript@6.0.3) + '@react-native-community/cli-platform-android': 20.1.3 + '@react-native-community/cli-platform-apple': 20.1.3 + '@react-native-community/cli-platform-ios': 20.1.3 + '@react-native-community/cli-tools': 20.1.3 + command-exists: 1.2.9 + deepmerge: 4.3.1 + envinfo: 7.21.0 + execa: 5.1.1 + node-stream-zip: 1.15.0 + ora: 5.4.1 + picocolors: 1.1.1 + semver: 7.7.4 + wcwidth: 1.0.1 + yaml: 2.8.3 + transitivePeerDependencies: + - typescript + optional: true + + '@react-native-community/cli-platform-android@20.1.3': + dependencies: + '@react-native-community/cli-config-android': 20.1.3 + '@react-native-community/cli-tools': 20.1.3 + execa: 5.1.1 + logkitty: 0.7.1 + picocolors: 1.1.1 + optional: true + + '@react-native-community/cli-platform-apple@20.1.3': + dependencies: + '@react-native-community/cli-config-apple': 20.1.3 + '@react-native-community/cli-tools': 20.1.3 + execa: 5.1.1 + fast-xml-parser: 5.7.1 + picocolors: 1.1.1 + optional: true + + '@react-native-community/cli-platform-ios@20.1.3': + dependencies: + '@react-native-community/cli-platform-apple': 20.1.3 + optional: true + + '@react-native-community/cli-server-api@20.1.3': + dependencies: + '@react-native-community/cli-tools': 20.1.3 + body-parser: 2.2.2 + compression: 1.8.1 + connect: 3.7.0 + errorhandler: 1.5.2 + nocache: 3.0.4 + open: 6.4.0 + pretty-format: 29.7.0 + serve-static: 1.16.3 + strict-url-sanitise: 0.0.1 + ws: 6.2.3 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + optional: true + + '@react-native-community/cli-tools@20.1.3': + dependencies: + '@vscode/sudo-prompt': 9.3.2 + appdirsjs: 1.2.7 + execa: 5.1.1 + find-up: 5.0.0 + launch-editor: 2.13.2 + mime: 2.6.0 + ora: 5.4.1 + picocolors: 1.1.1 + prompts: 2.4.2 + semver: 7.7.4 + optional: true + + '@react-native-community/cli-types@20.1.3': + dependencies: + joi: 17.13.3 + optional: true + + '@react-native-community/cli@20.1.3(typescript@6.0.3)': + dependencies: + '@react-native-community/cli-clean': 20.1.3 + '@react-native-community/cli-config': 20.1.3(typescript@6.0.3) + '@react-native-community/cli-doctor': 20.1.3(typescript@6.0.3) + '@react-native-community/cli-server-api': 20.1.3 + '@react-native-community/cli-tools': 20.1.3 + '@react-native-community/cli-types': 20.1.3 + commander: 9.5.0 + deepmerge: 4.3.1 + execa: 5.1.1 + find-up: 5.0.0 + fs-extra: 8.1.0 + graceful-fs: 4.2.11 + picocolors: 1.1.1 + prompts: 2.4.2 + semver: 7.7.4 + transitivePeerDependencies: + - bufferutil + - supports-color + - typescript + - utf-8-validate + optional: true '@react-native/assets-registry@0.81.5': {} @@ -17288,7 +17695,7 @@ snapshots: nullthrows: 1.1.1 yargs: 17.7.2 - '@react-native/community-cli-plugin@0.81.5': + '@react-native/community-cli-plugin@0.81.5(@react-native-community/cli@20.1.3(typescript@6.0.3))': dependencies: '@react-native/dev-middleware': 0.81.5 debug: 4.4.3 @@ -17297,6 +17704,8 @@ snapshots: metro-config: 0.83.3 metro-core: 0.83.3 semver: 7.7.4 + optionalDependencies: + '@react-native-community/cli': 20.1.3(typescript@6.0.3) transitivePeerDependencies: - bufferutil - supports-color @@ -17330,24 +17739,24 @@ snapshots: '@react-native/typescript-config@0.81.6': {} - '@react-native/virtualized-lists@0.81.5(@types/react@19.2.14)(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)': + '@react-native/virtualized-lists@0.81.5(@types/react@19.2.14)(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)': dependencies: invariant: 2.2.4 nullthrows: 1.1.1 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) optionalDependencies: '@types/react': 19.2.14 - '@react-navigation/bottom-tabs@7.15.10(@react-navigation/native@7.2.2(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native-screens@4.24.0(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)': - dependencies: - '@react-navigation/elements': 2.9.15(@react-navigation/native@7.2.2(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) - '@react-navigation/native': 7.2.2(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + ? '@react-navigation/bottom-tabs@7.15.10(@react-navigation/native@7.2.2(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native-screens@4.24.0(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)' + : dependencies: + '@react-navigation/elements': 2.9.15(@react-navigation/native@7.2.2(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + '@react-navigation/native': 7.2.2(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) color: 4.2.3 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) - react-native-safe-area-context: 5.6.2(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) - react-native-screens: 4.24.0(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) + react-native-safe-area-context: 5.6.2(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + react-native-screens: 4.24.0(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) sf-symbols-typescript: 2.2.0 transitivePeerDependencies: - '@react-native-masked-view/masked-view' @@ -17364,38 +17773,38 @@ snapshots: use-latest-callback: 0.2.6(react@19.1.0) use-sync-external-store: 1.6.0(react@19.1.0) - '@react-navigation/elements@2.9.15(@react-navigation/native@7.2.2(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)': + '@react-navigation/elements@2.9.15(@react-navigation/native@7.2.2(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)': dependencies: - '@react-navigation/native': 7.2.2(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + '@react-navigation/native': 7.2.2(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) color: 4.2.3 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) - react-native-safe-area-context: 5.6.2(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) + react-native-safe-area-context: 5.6.2(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) use-latest-callback: 0.2.6(react@19.1.0) use-sync-external-store: 1.6.0(react@19.1.0) - '@react-navigation/native-stack@7.14.12(@react-navigation/native@7.2.2(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native-screens@4.24.0(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)': - dependencies: - '@react-navigation/elements': 2.9.15(@react-navigation/native@7.2.2(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) - '@react-navigation/native': 7.2.2(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + ? '@react-navigation/native-stack@7.14.12(@react-navigation/native@7.2.2(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native-screens@4.24.0(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)' + : dependencies: + '@react-navigation/elements': 2.9.15(@react-navigation/native@7.2.2(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + '@react-navigation/native': 7.2.2(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) color: 4.2.3 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) - react-native-safe-area-context: 5.6.2(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) - react-native-screens: 4.24.0(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) + react-native-safe-area-context: 5.6.2(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + react-native-screens: 4.24.0(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) sf-symbols-typescript: 2.2.0 warn-once: 0.1.1 transitivePeerDependencies: - '@react-native-masked-view/masked-view' - '@react-navigation/native@7.2.2(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)': + '@react-navigation/native@7.2.2(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)': dependencies: '@react-navigation/core': 7.17.2(react@19.1.0) escape-string-regexp: 4.0.0 fast-deep-equal: 3.1.3 nanoid: 3.3.11 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) use-latest-callback: 0.2.6(react@19.1.0) '@react-navigation/routers@7.5.3': @@ -17813,7 +18222,7 @@ snapshots: '@sentry/core@8.55.0': {} - '@sentry/react-native@6.20.0(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)': + '@sentry/react-native@6.20.0(patch_hash=eabe4ef5650ab873f0c4b4b4685b28674bb2bdfc5b6831d38a20cdbc65af8421)(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)': dependencies: '@sentry/babel-plugin-component-annotate': 4.1.1 '@sentry/browser': 8.55.0 @@ -17823,9 +18232,9 @@ snapshots: '@sentry/types': 8.55.0 '@sentry/utils': 8.55.0 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) optionalDependencies: - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) transitivePeerDependencies: - encoding - supports-color @@ -17874,17 +18283,28 @@ snapshots: - encoding - supports-color - '@shopify/flash-list@2.3.1(@babel/runtime@7.25.9)(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)': + '@shopify/flash-list@2.3.1(@babel/runtime@7.25.9)(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)': dependencies: '@babel/runtime': 7.25.9 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) '@shuding/opentype.js@1.4.0-beta.0': dependencies: fflate: 0.7.4 string.prototype.codepointat: 0.2.1 + '@sideway/address@4.1.5': + dependencies: + '@hapi/hoek': 9.3.0 + optional: true + + '@sideway/formula@3.0.1': + optional: true + + '@sideway/pinpoint@2.0.0': + optional: true + '@sinclair/typebox@0.27.10': {} '@sinclair/typebox@0.34.49': {} @@ -18319,13 +18739,13 @@ snapshots: '@tanstack/query-core': 5.100.5 react: 19.1.0 - '@testing-library/react-native@13.3.3(jest@29.7.0(@types/node@20.19.39)(ts-node@10.9.2(@swc/core@1.15.30)(@types/node@20.19.39)(typescript@6.0.3)))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react-test-renderer@19.1.0(react@19.1.0))(react@19.1.0)': + '@testing-library/react-native@13.3.3(jest@29.7.0(@types/node@20.19.39)(ts-node@10.9.2(@swc/core@1.15.30)(@types/node@20.19.39)(typescript@6.0.3)))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react-test-renderer@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: jest-matcher-utils: 30.3.0 picocolors: 1.1.1 pretty-format: 30.3.0 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) react-test-renderer: 19.1.0(react@19.1.0) redent: 3.0.0 optionalDependencies: @@ -19020,6 +19440,9 @@ snapshots: optionalDependencies: babel-plugin-react-compiler: 19.1.0-rc.3 + '@vscode/sudo-prompt@9.3.2': + optional: true + '@webassemblyjs/ast@1.14.1': dependencies: '@webassemblyjs/helper-numbers': 1.13.2 @@ -19205,6 +19628,13 @@ snapshots: ansi-escapes@6.2.1: {} + ansi-fragments@0.2.1: + dependencies: + colorette: 1.4.0 + slice-ansi: 2.1.0 + strip-ansi: 5.2.0 + optional: true + ansi-html-community@0.0.8: {} ansi-html@0.0.9: {} @@ -19234,6 +19664,9 @@ snapshots: normalize-path: 3.0.0 picomatch: 2.3.2 + appdirsjs@1.2.7: + optional: true + arch@2.2.0: {} arg@4.1.0: {} @@ -19338,6 +19771,9 @@ snapshots: ast-types-flow@0.0.7: {} + astral-regex@1.0.0: + optional: true + async-function@1.0.0: {} async-limiter@1.0.1: {} @@ -19512,9 +19948,9 @@ snapshots: transitivePeerDependencies: - '@babel/core' - babel-plugin-transform-hook-names@1.0.2(@babel/core@7.25.2): + babel-plugin-transform-hook-names@1.0.2(@babel/core@7.29.0): dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.29.0 babel-plugin-transform-remove-console@6.9.4: {} @@ -19537,7 +19973,7 @@ snapshots: '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.25.2) '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.25.2) - babel-preset-expo@54.0.10(@babel/core@7.25.2)(@babel/runtime@7.25.9)(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-refresh@0.14.2): + babel-preset-expo@54.0.10(@babel/core@7.25.2)(@babel/runtime@7.25.9)(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-refresh@0.14.2): dependencies: '@babel/helper-module-imports': 7.28.6 '@babel/plugin-proposal-decorators': 7.29.0(@babel/core@7.25.2) @@ -19564,7 +20000,7 @@ snapshots: resolve-from: 5.0.0 optionalDependencies: '@babel/runtime': 7.25.9 - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) transitivePeerDependencies: - '@babel/core' - supports-color @@ -19647,6 +20083,21 @@ snapshots: transitivePeerDependencies: - supports-color + body-parser@2.2.2: + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 4.4.3 + http-errors: 2.0.1 + iconv-lite: 0.7.2 + on-finished: 2.4.1 + qs: 6.15.1 + raw-body: 3.0.2 + type-is: 2.0.1 + transitivePeerDependencies: + - supports-color + optional: true + bonjour-service@1.3.0: dependencies: fast-deep-equal: 3.1.3 @@ -19975,6 +20426,9 @@ snapshots: colord@2.9.3: {} + colorette@1.4.0: + optional: true + colorette@2.0.20: {} colors@1.0.3: {} @@ -19985,6 +20439,9 @@ snapshots: command-exists-promise@2.0.2: {} + command-exists@1.2.9: + optional: true + commander@10.0.1: {} commander@11.0.0: {} @@ -20001,6 +20458,9 @@ snapshots: commander@8.3.0: {} + commander@9.5.0: + optional: true + comment-parser@1.4.6: {} commondir@1.0.1: {} @@ -20301,6 +20761,9 @@ snapshots: date-fns@3.6.0: {} + dayjs@1.11.20: + optional: true + debounce@1.2.1: {} debug@2.6.9: @@ -20537,6 +21000,9 @@ snapshots: env-paths@2.2.1: {} + envinfo@7.21.0: + optional: true + error-ex@1.3.4: dependencies: is-arrayish: 0.2.1 @@ -20545,6 +21011,12 @@ snapshots: dependencies: stackframe: 1.3.4 + errorhandler@1.5.2: + dependencies: + accepts: 1.3.8 + escape-html: 1.0.3 + optional: true + es-abstract@1.24.2: dependencies: array-buffer-byte-length: 1.0.2 @@ -21020,191 +21492,191 @@ snapshots: jest-message-util: 29.7.0 jest-util: 29.7.0 - expo-application@7.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)): + expo-application@7.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)): dependencies: - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) - expo-asset@12.0.12(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): + expo-asset@12.0.12(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): dependencies: '@expo/image-utils': 0.8.12 - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) - expo-constants: 18.0.13(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0)) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo-constants: 18.0.13(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0)) react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) transitivePeerDependencies: - supports-color - expo-blur@15.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): + expo-blur@15.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): dependencies: - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) - expo-build-properties@1.0.10(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)): + expo-build-properties@1.0.10(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)): dependencies: ajv: 8.20.0 - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) semver: 7.7.4 - expo-camera@17.0.10(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): + expo-camera@17.0.10(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): dependencies: - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) invariant: 2.2.4 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) optionalDependencies: react-native-web: 0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - expo-clipboard@8.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): + expo-clipboard@8.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): dependencies: - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) - expo-constants@18.0.13(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0)): + expo-constants@18.0.13(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0)): dependencies: '@expo/config': 12.0.13 '@expo/env': 2.0.11 - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) transitivePeerDependencies: - supports-color - expo-contacts@15.0.11(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): + expo-contacts@15.0.11(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): dependencies: - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) - expo-dev-client@6.0.20(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)): + expo-dev-client@6.0.20(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)): dependencies: - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) - expo-dev-launcher: 6.0.20(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) - expo-dev-menu: 7.0.18(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) - expo-dev-menu-interface: 2.0.0(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) - expo-manifests: 1.0.10(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) - expo-updates-interface: 2.0.0(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo-dev-launcher: 6.0.20(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) + expo-dev-menu: 7.0.18(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) + expo-dev-menu-interface: 2.0.0(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) + expo-manifests: 1.0.10(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) + expo-updates-interface: 2.0.0(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) transitivePeerDependencies: - supports-color - expo-dev-launcher@6.0.20(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)): + expo-dev-launcher@6.0.20(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)): dependencies: ajv: 8.20.0 - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) - expo-dev-menu: 7.0.18(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) - expo-manifests: 1.0.10(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo-dev-menu: 7.0.18(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) + expo-manifests: 1.0.10(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) transitivePeerDependencies: - supports-color - expo-dev-menu-interface@2.0.0(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)): + expo-dev-menu-interface@2.0.0(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)): dependencies: - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) - expo-dev-menu@7.0.18(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)): + expo-dev-menu@7.0.18(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)): dependencies: - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) - expo-dev-menu-interface: 2.0.0(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo-dev-menu-interface: 2.0.0(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) - expo-device@8.0.10(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)): + expo-device@8.0.10(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)): dependencies: - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) ua-parser-js: 0.7.41 expo-eas-client@1.0.8: {} - expo-file-system@19.0.21(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0)): + expo-file-system@19.0.21(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0)): dependencies: - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) - expo-font@14.0.11(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): + expo-font@14.0.11(patch_hash=8a2ed25637094fb1aabc6772b6da2b76d363506a3b1d35f467ce7c67602f31fa)(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): dependencies: - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) fontfaceobserver: 2.3.0 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) - expo-glass-effect@55.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): + expo-glass-effect@55.0.8(patch_hash=df5fb09dd1d8cb170dcdec41eb4bdfb9071824e2a283b32157a2fedbffd9e790)(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): dependencies: - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) - expo-haptics@15.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)): + expo-haptics@15.0.8(patch_hash=2f29e8e18e936fdcdc6b3502de246da9c2e7db69a53b50d36362f9c58a6f52c5)(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)): dependencies: - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) - expo-image-loader@6.0.0(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)): + expo-image-loader@6.0.0(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)): dependencies: - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) - expo-image-manipulator@14.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)): + expo-image-manipulator@14.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)): dependencies: - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) - expo-image-loader: 6.0.0(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo-image-loader: 6.0.0(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) - expo-image-picker@17.0.10(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)): + expo-image-picker@17.0.10(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)): dependencies: - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) - expo-image-loader: 6.0.0(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo-image-loader: 6.0.0(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) - expo-image@3.0.11(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): + expo-image@3.0.11(patch_hash=8d0acfb96844c2ece3a9fe3143af6749a253ae0b79f9ab1a87e32306e891fdec)(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): dependencies: - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) optionalDependencies: react-native-web: 0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - expo-intent-launcher@13.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)): + expo-intent-launcher@13.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)): dependencies: - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) expo-json-utils@0.15.0: {} - expo-keep-awake@15.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react@19.1.0): + expo-keep-awake@15.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react@19.1.0): dependencies: - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) react: 19.1.0 - expo-linear-gradient@15.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): + expo-linear-gradient@15.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): dependencies: - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) - expo-linking@8.0.11(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): + expo-linking@8.0.11(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): dependencies: - expo-constants: 18.0.13(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0)) + expo-constants: 18.0.13(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0)) invariant: 2.2.4 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) transitivePeerDependencies: - expo - supports-color - expo-localization@17.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react@19.1.0): + expo-localization@17.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react@19.1.0): dependencies: - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) react: 19.1.0 rtl-detect: 1.1.2 - expo-location@19.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)): + expo-location@19.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)): dependencies: - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) - expo-manifests@1.0.10(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)): + expo-manifests@1.0.10(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)): dependencies: '@expo/config': 12.0.13 - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) expo-json-utils: 0.15.0 transitivePeerDependencies: - supports-color - expo-media-library@18.2.1(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0)): + expo-media-library@18.2.1(patch_hash=f58c48a1102cf38ae58740359b30546b5d14352222cb2ca2da8496a56a7ca3b7)(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0)): dependencies: - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) expo-modules-autolinking@3.0.24: dependencies: @@ -21214,87 +21686,87 @@ snapshots: require-from-string: 2.0.2 resolve-from: 5.0.0 - expo-modules-core@3.0.29(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): + expo-modules-core@3.0.29(patch_hash=199c7471a167bc1a3840a54bc638369b367a4136fbfa8c9cf25208c42116a808)(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): dependencies: invariant: 2.2.4 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) - expo-notifications@0.32.16(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): + expo-notifications@0.32.16(patch_hash=a1abb47f1dd151f7ff8977914e66735a33468077ab43c471a70ffca19cfa8816)(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): dependencies: '@expo/image-utils': 0.8.12 '@ide/backoff': 1.0.0 abort-controller: 3.0.0 assert: 2.1.0 badgin: 1.2.3 - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) - expo-application: 7.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) - expo-constants: 18.0.13(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0)) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo-application: 7.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) + expo-constants: 18.0.13(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0)) react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) transitivePeerDependencies: - supports-color - expo-paste-input@0.1.15(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): + expo-paste-input@0.1.15(patch_hash=512c0cc95c3b58f271054a9b88cfd4de5513dfb88cdb15fdcdf25ea83e2cbf62)(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): dependencies: - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) - expo-privacy-sensitive@0.1.0(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): + expo-privacy-sensitive@0.1.0(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): dependencies: - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) - expo-pwa@0.0.127(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)): + expo-pwa@0.0.127(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)): dependencies: '@expo/image-utils': 0.8.12 chalk: 4.1.2 commander: 2.20.0 - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) update-check: 1.5.3 - expo-screen-orientation@9.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0)): + expo-screen-orientation@9.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0)): dependencies: - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) expo-server@1.0.5: {} - expo-sharing@14.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)): + expo-sharing@14.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)): dependencies: - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) - expo-sms@14.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)): + expo-sms@14.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)): dependencies: - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) - expo-splash-screen@31.0.13(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)): + expo-splash-screen@31.0.13(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)): dependencies: - '@expo/prebuild-config': 54.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + '@expo/prebuild-config': 54.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) transitivePeerDependencies: - supports-color expo-structured-headers@5.0.0: {} - expo-system-ui@6.0.9(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0)): + expo-system-ui@6.0.9(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0)): dependencies: '@react-native/normalize-colors': 0.81.5 debug: 4.4.3 - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) optionalDependencies: react-native-web: 0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) transitivePeerDependencies: - supports-color - expo-updates-interface@2.0.0(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)): + expo-updates-interface@2.0.0(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)): dependencies: - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) - expo-updates@29.0.16(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): + expo-updates@29.0.16(patch_hash=207ce9dd21cf1b62ff008a93ca2e8bebd39aed4000ea03e0ad9f7d7e4d20e914)(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): dependencies: '@expo/code-signing-certificates': 0.0.6 '@expo/plist': 0.4.8 @@ -21302,62 +21774,62 @@ snapshots: arg: 4.1.0 chalk: 4.1.2 debug: 4.4.3 - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) expo-eas-client: 1.0.8 - expo-manifests: 1.0.10(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) + expo-manifests: 1.0.10(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) expo-structured-headers: 5.0.0 - expo-updates-interface: 2.0.0(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) + expo-updates-interface: 2.0.0(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) getenv: 2.0.0 glob: 13.0.6 ignore: 5.3.2 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) resolve-from: 5.0.0 transitivePeerDependencies: - supports-color - expo-video-thumbnails@10.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)): + expo-video-thumbnails@10.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)): dependencies: - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) - expo-video@3.0.16(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): + expo-video@3.0.16(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): dependencies: - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) - expo-web-browser@15.0.10(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0)): + expo-web-browser@15.0.10(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0)): dependencies: - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) - expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): + expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): dependencies: '@babel/runtime': 7.25.9 - '@expo/cli': 54.0.23(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0)) + '@expo/cli': 54.0.23(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0)) '@expo/config': 12.0.13 '@expo/config-plugins': 54.0.4 - '@expo/devtools': 0.1.8(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + '@expo/devtools': 0.1.8(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) '@expo/fingerprint': 0.15.4 '@expo/metro': 54.2.0 - '@expo/metro-config': 54.0.14(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) - '@expo/vector-icons': 15.1.1(expo-font@14.0.11(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + '@expo/metro-config': 54.0.14(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)) + '@expo/vector-icons': 15.1.1(9c8d197c01bb6774a042adf8c7eac129) '@ungap/structured-clone': 1.3.0 - babel-preset-expo: 54.0.10(@babel/core@7.25.2)(@babel/runtime@7.25.9)(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-refresh@0.14.2) - expo-asset: 12.0.12(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) - expo-constants: 18.0.13(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0)) - expo-file-system: 19.0.21(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0)) - expo-font: 14.0.11(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) - expo-keep-awake: 15.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react@19.1.0) + babel-preset-expo: 54.0.10(@babel/core@7.25.2)(@babel/runtime@7.25.9)(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-refresh@0.14.2) + expo-asset: 12.0.12(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo-constants: 18.0.13(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0)) + expo-file-system: 19.0.21(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0)) + expo-font: 14.0.11(patch_hash=8a2ed25637094fb1aabc6772b6da2b76d363506a3b1d35f467ce7c67602f31fa)(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo-keep-awake: 15.0.8(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react@19.1.0) expo-modules-autolinking: 3.0.24 - expo-modules-core: 3.0.29(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo-modules-core: 3.0.29(patch_hash=199c7471a167bc1a3840a54bc638369b367a4136fbfa8c9cf25208c42116a808)(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) pretty-format: 29.7.0 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) react-refresh: 0.14.2 whatwg-url-without-unicode: 8.0.0-3 optionalDependencies: - react-native-webview: 13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + react-native-webview: 13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) transitivePeerDependencies: - '@babel/core' - bufferutil @@ -22030,6 +22502,11 @@ snapshots: dependencies: safer-buffer: 2.1.2 + iconv-lite@0.7.2: + dependencies: + safer-buffer: 2.1.2 + optional: true + icss-utils@5.1.0(postcss@8.5.10): dependencies: postcss: 8.5.10 @@ -22179,6 +22656,9 @@ snapshots: dependencies: call-bound: 1.0.4 + is-fullwidth-code-point@2.0.0: + optional: true + is-fullwidth-code-point@3.0.0: {} is-fullwidth-code-point@4.0.0: {} @@ -22280,6 +22760,9 @@ snapshots: call-bound: 1.0.4 get-intrinsic: 1.3.0 + is-wsl@1.1.0: + optional: true + is-wsl@2.2.0: dependencies: is-docker: 2.2.1 @@ -22484,21 +22967,21 @@ snapshots: jest-mock: 29.7.0 jest-util: 29.7.0 - jest-expo@54.0.17(@babel/core@7.25.2)(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(jest@29.7.0(@types/node@20.19.39)(ts-node@10.9.2(@swc/core@1.15.30)(@types/node@20.19.39)(typescript@6.0.3)))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): + jest-expo@54.0.17(@babel/core@7.25.2)(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(jest@29.7.0(@types/node@20.19.39)(ts-node@10.9.2(@swc/core@1.15.30)(@types/node@20.19.39)(typescript@6.0.3)))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): dependencies: '@expo/config': 12.0.13 '@expo/json-file': 10.0.13 '@jest/create-cache-key-function': 29.7.0 '@jest/globals': 29.7.0 babel-jest: 29.7.0(@babel/core@7.25.2) - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) jest-environment-jsdom: 29.7.0 jest-snapshot: 29.7.0 jest-watch-select-projects: 2.0.0 jest-watch-typeahead: 2.2.1(jest@29.7.0(@types/node@20.19.39)(ts-node@10.9.2(@swc/core@1.15.30)(@types/node@20.19.39)(typescript@6.0.3))) json5: 2.2.3 lodash: 4.18.1 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) react-test-renderer: 19.1.0(react@19.1.0) server-only: 0.0.1 stacktrace-js: 2.0.2 @@ -22753,6 +23236,15 @@ snapshots: jiti@2.6.1: {} + joi@17.13.3: + dependencies: + '@hapi/hoek': 9.3.0 + '@hapi/topo': 5.1.0 + '@sideway/address': 4.1.5 + '@sideway/formula': 3.0.1 + '@sideway/pinpoint': 2.0.0 + optional: true + jose@5.10.0: {} js-sha256@0.10.1: {} @@ -23083,6 +23575,13 @@ snapshots: strip-ansi: 7.2.0 wrap-ansi: 8.1.0 + logkitty@0.7.1: + dependencies: + ansi-fragments: 0.2.1 + dayjs: 1.11.20 + yargs: 15.4.1 + optional: true + long@5.3.2: {} loose-envify@1.4.0: @@ -23158,6 +23657,9 @@ snapshots: media-typer@0.3.0: {} + media-typer@1.1.0: + optional: true + memfs@3.5.3: dependencies: fs-monkey: 1.1.0 @@ -23379,8 +23881,16 @@ snapshots: dependencies: mime-db: 1.52.0 + mime-types@3.0.2: + dependencies: + mime-db: 1.54.0 + optional: true + mime@1.6.0: {} + mime@2.6.0: + optional: true + mimic-fn@1.2.0: {} mimic-fn@2.1.0: {} @@ -23481,6 +23991,9 @@ snapshots: lower-case: 2.0.2 tslib: 2.8.1 + nocache@3.0.4: + optional: true + node-abi@3.89.0: dependencies: semver: 7.7.4 @@ -23517,6 +24030,9 @@ snapshots: node-releases@2.0.38: {} + node-stream-zip@1.15.0: + optional: true + nodemailer-html-to-text@3.2.0: dependencies: html-to-text: 7.1.1 @@ -23633,6 +24149,11 @@ snapshots: dependencies: mimic-fn: 4.0.0 + open@6.4.0: + dependencies: + is-wsl: 1.1.0 + optional: true + open@7.4.2: dependencies: is-docker: 2.2.1 @@ -24515,6 +25036,14 @@ snapshots: iconv-lite: 0.4.24 unpipe: 1.0.0 + raw-body@3.0.2: + dependencies: + bytes: 3.1.2 + http-errors: 2.0.1 + iconv-lite: 0.7.2 + unpipe: 1.0.0 + optional: true + rc@1.2.8: dependencies: deep-extend: 0.6.0 @@ -24565,85 +25094,85 @@ snapshots: react: 19.1.0 react-is: 19.2.5 - react-native-compressor@1.13.0(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): + react-native-compressor@1.13.0(patch_hash=0ba31d14af9460902771d4bd81d3e4dcad3d53d5b807ad93ade8e4c885a87531)(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): dependencies: react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) - react-native-date-picker@5.0.13(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): + react-native-date-picker@5.0.13(patch_hash=685da223bdbb0007efd900c5d91d1ffce3e24b636844611ce09986c31099d78f)(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): dependencies: react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) - react-native-device-attest@0.1.6(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): + react-native-device-attest@0.1.6(expo@54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): dependencies: - expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + expo: 54.0.33(@babel/core@7.25.2)(react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) react-native-dotenv@3.4.11(@babel/runtime@7.25.9): dependencies: '@babel/runtime': 7.25.9 dotenv: 16.6.1 - react-native-drawer-layout@4.2.2(react-native-gesture-handler@2.28.0(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native-reanimated@3.19.5(@babel/core@7.25.2)(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): + react-native-drawer-layout@4.2.2(patch_hash=34827fb3580f586b6bb72ac843f855c8c3cf4d8dbde539a62fbe456ff52dfec0)(react-native-gesture-handler@2.28.0(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native-reanimated@3.19.5(patch_hash=c07ea02fe4c889e65498c2fb39d82e93a0745a06e7800850054fbf0cb95ee1e4)(@babel/core@7.25.2)(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): dependencies: color: 4.2.3 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) - react-native-gesture-handler: 2.28.0(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) - react-native-reanimated: 3.19.5(@babel/core@7.25.2)(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) + react-native-gesture-handler: 2.28.0(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + react-native-reanimated: 3.19.5(patch_hash=c07ea02fe4c889e65498c2fb39d82e93a0745a06e7800850054fbf0cb95ee1e4)(@babel/core@7.25.2)(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) use-latest-callback: 0.2.6(react@19.1.0) - react-native-edge-to-edge@1.8.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): + react-native-edge-to-edge@1.8.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): dependencies: react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) - react-native-gesture-handler@2.28.0(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): + react-native-gesture-handler@2.28.0(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): dependencies: '@egjs/hammerjs': 2.0.17 hoist-non-react-statics: 3.3.2 invariant: 2.2.4 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) - react-native-is-edge-to-edge@1.1.7(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): + react-native-is-edge-to-edge@1.1.7(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): dependencies: react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) - react-native-is-edge-to-edge@1.3.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): + react-native-is-edge-to-edge@1.3.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): dependencies: react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) - react-native-keyboard-controller@1.21.6(react-native-reanimated@3.19.5(@babel/core@7.25.2)(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): + react-native-keyboard-controller@1.21.6(patch_hash=503e2dac4f73e0a297ddbd98e9beca9122204e1e8d0b1f0394cad39a4d296e45)(react-native-reanimated@3.19.5(patch_hash=c07ea02fe4c889e65498c2fb39d82e93a0745a06e7800850054fbf0cb95ee1e4)(@babel/core@7.25.2)(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): dependencies: react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) - react-native-is-edge-to-edge: 1.3.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) - react-native-reanimated: 3.19.5(@babel/core@7.25.2)(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) + react-native-is-edge-to-edge: 1.3.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + react-native-reanimated: 3.19.5(patch_hash=c07ea02fe4c889e65498c2fb39d82e93a0745a06e7800850054fbf0cb95ee1e4)(@babel/core@7.25.2)(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) - react-native-pager-view@6.8.0(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): + react-native-pager-view@6.8.0(patch_hash=dc75f16661d6d3e8df3922bc4a116ae0475316979175aca7c9c44205f2261d4a)(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): dependencies: react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) - react-native-progress@https://codeload.github.com/bluesky-social/react-native-progress/tar.gz/5a372f4f2ce5feb26f4f47b6a4d187ab9b923ab4(react-native-svg@15.12.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)): + react-native-progress@https://codeload.github.com/bluesky-social/react-native-progress/tar.gz/5a372f4f2ce5feb26f4f47b6a4d187ab9b923ab4(react-native-svg@15.12.1(patch_hash=63a29fca836ba68b4b2b1a7c60a183c6b3a722f6d0431ff04b395b0cbe9b371d)(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)): dependencies: prop-types: 15.8.1 - react-native-svg: 15.12.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + react-native-svg: 15.12.1(patch_hash=63a29fca836ba68b4b2b1a7c60a183c6b3a722f6d0431ff04b395b0cbe9b371d)(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) - react-native-qrcode-styled@0.3.3(react-native-svg@15.12.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): + react-native-qrcode-styled@0.3.3(react-native-svg@15.12.1(patch_hash=63a29fca836ba68b4b2b1a7c60a183c6b3a722f6d0431ff04b395b0cbe9b371d)(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): dependencies: qrcode: 1.5.4 react: 19.1.0 react-fast-compare: 3.2.2 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) - react-native-svg: 15.12.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) + react-native-svg: 15.12.1(patch_hash=63a29fca836ba68b4b2b1a7c60a183c6b3a722f6d0431ff04b395b0cbe9b371d)(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) - react-native-reanimated@3.19.5(@babel/core@7.25.2)(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): + react-native-reanimated@3.19.5(patch_hash=c07ea02fe4c889e65498c2fb39d82e93a0745a06e7800850054fbf0cb95ee1e4)(@babel/core@7.25.2)(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): dependencies: '@babel/core': 7.25.2 '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.25.2) @@ -24658,48 +25187,48 @@ snapshots: convert-source-map: 2.0.0 invariant: 2.2.4 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) - react-native-is-edge-to-edge: 1.1.7(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) + react-native-is-edge-to-edge: 1.1.7(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) transitivePeerDependencies: - supports-color - react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): + react-native-safe-area-context@5.6.2(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): dependencies: react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) - react-native-screens@4.24.0(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): + react-native-screens@4.24.0(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): dependencies: react: 19.1.0 react-freeze: 1.0.4(react@19.1.0) - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) warn-once: 0.1.1 - react-native-svg@15.12.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): + react-native-svg@15.12.1(patch_hash=63a29fca836ba68b4b2b1a7c60a183c6b3a722f6d0431ff04b395b0cbe9b371d)(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): dependencies: css-select: 5.2.2 css-tree: 1.1.3 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) warn-once: 0.1.1 - react-native-uitextview@1.4.0(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): + react-native-uitextview@1.4.0(patch_hash=4ce4ef3360cb665aa72b2185783177015926f386408a410f8be5ba249c231452)(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): dependencies: react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) - react-native-url-polyfill@3.0.0(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0)): + react-native-url-polyfill@3.0.0(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0)): dependencies: - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) whatwg-url-without-unicode: 8.0.0-3 react-native-uuid@2.0.4: {} - react-native-view-shot@4.0.3(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): + react-native-view-shot@4.0.3(patch_hash=880fe37fd38fd711876e272c6b87187fd96147e28117aca0976cdf3566bee46c)(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): dependencies: html2canvas: 1.4.1 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) react-native-web-webview@1.0.2(file-loader@6.2.0(webpack@5.106.2(@swc/core@1.15.30)(esbuild@0.27.7)))(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)): dependencies: @@ -24722,23 +25251,23 @@ snapshots: transitivePeerDependencies: - encoding - react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): + react-native-webview@13.16.1(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): dependencies: escape-string-regexp: 4.0.0 invariant: 2.2.4 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) - react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0): + react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0): dependencies: '@jest/create-cache-key-function': 29.7.0 '@react-native/assets-registry': 0.81.5 '@react-native/codegen': 0.81.5(@babel/core@7.25.2) - '@react-native/community-cli-plugin': 0.81.5 + '@react-native/community-cli-plugin': 0.81.5(@react-native-community/cli@20.1.3(typescript@6.0.3)) '@react-native/gradle-plugin': 0.81.5 '@react-native/js-polyfills': 0.81.5 '@react-native/normalize-colors': 0.81.5 - '@react-native/virtualized-lists': 0.81.5(@types/react@19.2.14)(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + '@react-native/virtualized-lists': 0.81.5(@types/react@19.2.14)(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) abort-controller: 3.0.0 anser: 1.4.10 ansi-regex: 5.0.1 @@ -25410,6 +25939,13 @@ snapshots: slash@5.1.0: {} + slice-ansi@2.1.0: + dependencies: + ansi-styles: 3.2.1 + astral-regex: 1.0.0 + is-fullwidth-code-point: 2.0.0 + optional: true + slice-ansi@5.0.0: dependencies: ansi-styles: 6.2.3 @@ -25431,15 +25967,15 @@ snapshots: dependencies: atomic-sleep: 1.0.0 - sonner-native@0.21.0(react-native-gesture-handler@2.28.0(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native-reanimated@3.19.5(@babel/core@7.25.2)(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native-screens@4.24.0(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native-svg@15.12.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0): + sonner-native@0.21.0(patch_hash=ece9220544b4b0bc2d61dce52f0c3ff3b78f75319c99cdbd5a2eed2227d7341a)(4a1b5dbf65b323b48e98d700605b8786): dependencies: react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0) - react-native-gesture-handler: 2.28.0(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) - react-native-reanimated: 3.19.5(@babel/core@7.25.2)(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) - react-native-safe-area-context: 5.6.2(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) - react-native-screens: 4.24.0(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) - react-native-svg: 15.12.1(react-native@0.81.5(@babel/core@7.25.2)(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0) + react-native-gesture-handler: 2.28.0(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + react-native-reanimated: 3.19.5(patch_hash=c07ea02fe4c889e65498c2fb39d82e93a0745a06e7800850054fbf0cb95ee1e4)(@babel/core@7.25.2)(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + react-native-safe-area-context: 5.6.2(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + react-native-screens: 4.24.0(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) + react-native-svg: 15.12.1(patch_hash=63a29fca836ba68b4b2b1a7c60a183c6b3a722f6d0431ff04b395b0cbe9b371d)(react-native@0.81.5(patch_hash=1708bf9fa9265ebd463d53fa71c037e9387eb16fb483287e49616407b4dc342e)(@babel/core@7.25.2)(@react-native-community/cli@20.1.3(typescript@6.0.3))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0) sonner@2.0.7(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: @@ -25553,6 +26089,9 @@ snapshots: strict-uri-encode@2.0.0: {} + strict-url-sanitise@0.0.1: + optional: true + string-argv@0.3.2: {} string-length@4.0.2: @@ -26002,6 +26541,13 @@ snapshots: media-typer: 0.3.0 mime-types: 2.1.35 + type-is@2.0.1: + dependencies: + content-type: 1.0.5 + media-typer: 1.1.0 + mime-types: 3.0.2 + optional: true + typed-array-buffer@1.0.3: dependencies: call-bound: 1.0.4 diff --git a/scripts/README.md b/scripts/README.md index 99d6236f9..c74da0d08 100644 --- a/scripts/README.md +++ b/scripts/README.md @@ -3,3 +3,13 @@ ## updateExtensions.sh Updates the extensions in `/modules` with the current iOS/Android project changes. + +## patch-package-to-pnpm.mjs +_(Witchsky-specific)_ + +Run this periodically when the upstream patches change, to update the patch files in the `patches` directory. This is a +custom script that generates patch files compatible with pnpm's patching system, which has some differences from the +standard `patch-package` format. It uses git to create the patches and ensures they are correctly formatted for pnpm. + +Then, update patchedDependencies in `package.json` to remove version specifiers from patches that don't need them +(anything except @atproto/api, usually). That matches the `patch-package` behavior better. \ No newline at end of file diff --git a/scripts/patch-package-to-pnpm.mjs b/scripts/patch-package-to-pnpm.mjs new file mode 100644 index 000000000..c7db1cabe --- /dev/null +++ b/scripts/patch-package-to-pnpm.mjs @@ -0,0 +1,315 @@ +#!/usr/bin/env -S node +/* eslint-disable import-x/no-nodejs-modules */ +// @ts-check + +// https://github.com/karlhorky/pnpm-tricks#convert-patch-package-patches-to-pnpm-patches + +/** + * Convert patch-package patches to pnpm-native patches by: + * + * 1. Group all patch-package patches by package name + * 2. For non-overlapping patches: strip prefixes and + * concatenate + * 3. For overlapping patches (same file in multiple patches): + * download the original package, apply patches sequentially, + * and generate a squashed diff + * 4. Write a patch file: patches/<@scope__name>.patch + * 5. Update pnpm.patchedDependencies in package.json with a + * version-qualified key + * + * Original patch files not deleted, to allow for comparison. + */ + +import { execSync } from 'node:child_process' +import { readFile, writeFile, cp, rm, mkdtemp, mkdir } from 'node:fs/promises' +import os from 'node:os' +import path from 'node:path' +import util from 'node:util' + +import glob from 'glob' + +const globAsync = util.promisify(glob) + +const rootDir = process.cwd() +const patchesDir = path.join(rootDir, 'patches') +const packageJsonPath = path.join(rootDir, 'package.json') + +const patchPackagePatchPaths = (await globAsync('*+*.patch', { cwd: patchesDir })) + .map( + (file) => path.join(patchesDir, file), + ) +patchPackagePatchPaths.sort() + +if (patchPackagePatchPaths.length === 0) { + console.log(`No patch-package patches found in ${patchesDir}.`) + process.exit(1) +} + +const packageJsonContent = /** @type {{ pnpm?: { patchedDependencies?: Record } }} */ (JSON.parse( + await readFile(packageJsonPath, 'utf8'), +)) +packageJsonContent.pnpm ??= {} +packageJsonContent.pnpm.patchedDependencies ??= {} + +/** + * Parse a patch-package filename to extract package info. + * + * Handles formats like: + * react-native+0.81.5.patch + * react-native+0.81.5+001+initial.patch + * @atproto+api+0.14.21.patch + * parent++child+1.0.0.patch + * + * @param {string} filePath + */ +function parsePatchFilename(filePath) { + const base = path.basename(filePath, '.patch') + + // Handle parent++leaf separation + let parentEncoded + let leafPart = base + const parentSepIndex = base.indexOf('++') + if (parentSepIndex !== -1) { + parentEncoded = base.slice(0, parentSepIndex) + leafPart = base.slice(parentSepIndex + 2) + } + + // Split by '+' and find the version (first segment starting with a digit) + const segments = leafPart.split('+') + let versionIndex = -1 + for (let i = 1; i < segments.length; i++) { + if (/^\d/.test(segments[i])) { + versionIndex = i + break + } + } + + if (versionIndex < 1) { + return null + } + + const encodedLeafName = segments.slice(0, versionIndex).join('+') + // @scope+name -> @scope/name + const leafPackageName = encodedLeafName.replaceAll('+', '/') + + const parentPackageName = parentEncoded + ? parentEncoded.replaceAll('+', '/') + : undefined + + const nodeModulesPathPrefix = ( + parentPackageName ? [parentPackageName, leafPackageName] : [leafPackageName] + ) + .map((segment) => `node_modules/${segment}`) + .join('/') + + return { + leafPackageName, + encodedLeafName, + nodeModulesPathPrefix, + } +} + +// Group patches by leaf package name +/** @type {Map} */ +const patchGroups = new Map() + +for (const patchPath of patchPackagePatchPaths) { + const parsed = parsePatchFilename(patchPath) + if (!parsed) { + console.error( + `Skipping ${patchPath}: cannot parse filename`, + ) + continue + } + + if (!patchGroups.has(parsed.leafPackageName)) { + patchGroups.set(parsed.leafPackageName, { ...parsed, paths: [] }) + } + patchGroups.get(parsed.leafPackageName).paths.push(patchPath) +} + +/** + * Extract the set of files modified by a patch. + * @param {string} patchContent + * @returns {Set} + */ +function getModifiedFiles(patchContent) { + const files = new Set() + for (const match of patchContent.matchAll(/^diff --git a\/(.+?) b\//gm)) { + files.add(match[1]) + } + return files +} + +/** + * Check if multiple patches modify any of the same files. + * @param {string[]} patchPaths + * @param {string} nodeModulesPathPrefix + * @returns {Promise} + */ +async function hasOverlappingFiles(patchPaths, nodeModulesPathPrefix) { + const allFiles = new Set() + for (const patchPath of patchPaths) { + const content = await readFile(patchPath, 'utf8') + const stripped = content.replaceAll(`a/${nodeModulesPathPrefix}/`, 'a/') + for (const file of getModifiedFiles(stripped)) { + if (allFiles.has(file)) return true + allFiles.add(file) + } + } + return false +} + +for (const [leafPackageName, group] of patchGroups) { + const packageDir = path.join(rootDir, 'node_modules', ...leafPackageName.split('/')) + + // Read installed version for the version-qualified key + let installedVersion + try { + const installedPkgJson = JSON.parse( + await readFile(path.join(packageDir, 'package.json'), 'utf8'), + ) + installedVersion = installedPkgJson.version + } catch { + console.warn( + `Could not resolve installed version for ${leafPackageName}`, + ) + } + + const overlapping = group.paths.length > 1 && + await hasOverlappingFiles(group.paths, group.nodeModulesPathPrefix) + + let pnpmPatchContent + + if (!overlapping) { + // Simple path: strip node_modules prefix and concatenate + const convertedParts = [] + for (const patchPath of group.paths) { + const content = await readFile(patchPath, 'utf8') + const converted = content + .replaceAll(`a/${group.nodeModulesPathPrefix}/`, 'a/') + .replaceAll(`b/${group.nodeModulesPathPrefix}/`, 'b/') + convertedParts.push(converted) + } + pnpmPatchContent = convertedParts.join('') + } else { + // Overlapping patches: download original, apply sequentially, squash + if (!installedVersion) { + console.error( + `Cannot squash overlapping patches for ${leafPackageName}: unknown installed version`, + ) + continue + } + + const pkgSegments = leafPackageName.split('/') + const stripLevel = 2 + pkgSegments.length + + const tmpDir = await mkdtemp(path.join(os.tmpdir(), 'pnpm-patch-')) + const originalDir = path.join(tmpDir, 'original') + const patchedDir = path.join(tmpDir, 'patched') + + try { + // Download original package tarball + console.log(`Downloading ${leafPackageName}@${installedVersion}...`) + execSync( + `npm pack "${leafPackageName}@${installedVersion}" --pack-destination "${tmpDir.replaceAll('\\', '/')}"`, + { stdio: 'pipe' }, + ) + + // Find the tarball (npm creates -.tgz) + const tarballs = (await util.promisify(glob)('*.tgz', { cwd: tmpDir })) + if (tarballs.length === 0) { + throw new Error(`No tarball found after npm pack for ${leafPackageName}`) + } + const tarballPath = path.join(tmpDir, tarballs[0]).replaceAll('\\', '/') + + // Extract to both original and patched dirs + await mkdir(originalDir, { recursive: true }) + await mkdir(patchedDir, { recursive: true }) + execSync( + `tar xzf "${tarballPath}" -C "${originalDir.replaceAll('\\', '/')}" --strip-components=1`, + { stdio: 'pipe' }, + ) + execSync( + `tar xzf "${tarballPath}" -C "${patchedDir.replaceAll('\\', '/')}" --strip-components=1`, + { stdio: 'pipe' }, + ) + + // Apply each patch in sequence to the patched copy + for (const patchPath of group.paths) { + const gitPatchPath = patchPath.replaceAll('\\', '/') + try { + execSync( + `git apply -p${stripLevel} --ignore-whitespace "${gitPatchPath}"`, + { cwd: patchedDir, stdio: 'pipe' }, + ) + } catch (/** @type {any} */ e) { + const stderr = e.stderr?.toString() || '' + console.error(`Warning: patch may not have applied cleanly: ${path.basename(patchPath)}`) + console.error(stderr) + // Try with more lenient settings + execSync( + `git apply -p${stripLevel} --ignore-whitespace -C0 "${gitPatchPath}"`, + { cwd: patchedDir, stdio: 'pipe' }, + ) + } + } + + // Generate a single squashed diff + const gitOriginalDir = originalDir.replaceAll('\\', '/') + const gitPatchedDir = patchedDir.replaceAll('\\', '/') + let diff + try { + execSync( + `git diff --no-ext-diff --no-index -- "${gitOriginalDir}" "${gitPatchedDir}"`, + { encoding: 'utf8', stdio: 'pipe', maxBuffer: 50 * 1024 * 1024 }, + ) + console.log(`No differences found for ${leafPackageName}, skipping`) + continue + } catch (/** @type {any} */ e) { + if (e.status === 1) { + diff = /** @type {string} */ (e.stdout) + } else { + throw e + } + } + + // Replace temp dir paths with standard a/ b/ prefixes + pnpmPatchContent = diff + .replaceAll(`a/${gitOriginalDir}/`, 'a/') + .replaceAll(`b/${gitPatchedDir}/`, 'b/') + .replaceAll(`${gitOriginalDir}/`, '') + .replaceAll(`${gitPatchedDir}/`, '') + } finally { + await rm(tmpDir, { recursive: true, force: true }) + } + } + + // @scope+name -> @scope__name + const pnpmPatchPath = path.join( + patchesDir, + `${group.encodedLeafName.replaceAll('+', '__')}.patch`, + ) + await writeFile(pnpmPatchPath, pnpmPatchContent) + + const patchedDepKey = installedVersion + ? `${leafPackageName}@${installedVersion}` + : leafPackageName + + packageJsonContent.pnpm.patchedDependencies[patchedDepKey] = path + .relative(rootDir, pnpmPatchPath) + .replaceAll('\\', '/') + + const patchNames = group.paths.map((p) => path.relative(rootDir, p)) + console.log( + `${overlapping ? 'Squashed' : 'Converted'} ${group.paths.length} patch(es) for ${leafPackageName}: ${patchNames.join(', ')}`, + ) +} + +await writeFile( + packageJsonPath, + JSON.stringify(packageJsonContent, null, 2) + '\n', +) +console.log( + "All patches squashed to pnpm patches. Run 'pnpm install' to apply.", +) \ No newline at end of file -- 2.51.2