diff --git a/app/(tabs)/_layout.tsx b/app/(tabs)/_layout.tsx
index 4aaf6ec5..7789b3e7 100644
--- a/app/(tabs)/_layout.tsx
+++ b/app/(tabs)/_layout.tsx
@@ -1,3 +1,4 @@
+import { lightTheme } from '@/constants/themes';
import { useWallet } from '@/hooks/wallet-store';
import Ionicons from '@expo/vector-icons/Ionicons';
import { Icon, Label, NativeTabs, VectorIcon } from 'expo-router/unstable-native-tabs';
@@ -6,7 +7,9 @@ import { Platform } from 'react-native';
export default function TabLayout() {
// Use theme from WalletProvider context for consistency
- const { theme } = useWallet();
+ // Fallback to lightTheme if context is not available yet
+ const walletContext = useWallet();
+ const theme = walletContext?.theme ?? lightTheme;
const [themeKey, setThemeKey] = useState(0);
// Force re-render when theme changes
diff --git a/ios/BitSleuthWallet.xcodeproj/GoogleService-Info.example.plist b/ios/BitSleuthWallet.xcodeproj/GoogleService-Info.example.plist
new file mode 100644
index 00000000..91963e89
--- /dev/null
+++ b/ios/BitSleuthWallet.xcodeproj/GoogleService-Info.example.plist
@@ -0,0 +1,43 @@
+
+
+
+
+
+ API_KEY
+ AIzaSy_YOUR_IOS_API_KEY_HERE
+ GCM_SENDER_ID
+ YOUR_PROJECT_NUMBER
+ PLIST_VERSION
+ 1
+ BUNDLE_ID
+ ai.bitsleuth.wallet
+ PROJECT_ID
+ your-project-id
+ STORAGE_BUCKET
+ your-project-id.appspot.com
+ IS_ADS_ENABLED
+
+ IS_ANALYTICS_ENABLED
+
+ IS_APPINVITE_ENABLED
+
+ IS_GCM_ENABLED
+
+ IS_SIGNIN_ENABLED
+
+ GOOGLE_APP_ID
+ 1:YOUR_PROJECT_NUMBER:ios:YOUR_APP_ID
+
+
\ No newline at end of file
diff --git a/ios/BitSleuthWallet.xcodeproj/project.pbxproj b/ios/BitSleuthWallet.xcodeproj/project.pbxproj
index 4bdd83c0..3e398293 100644
--- a/ios/BitSleuthWallet.xcodeproj/project.pbxproj
+++ b/ios/BitSleuthWallet.xcodeproj/project.pbxproj
@@ -8,12 +8,12 @@
/* Begin PBXBuildFile section */
13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
+ 2781CC95CDAF599114B3A38F /* Pods_BitSleuthWallet.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 646FA36045E946D7B4AC8DC8 /* Pods_BitSleuthWallet.framework */; };
3E461D99554A48A4959DE609 /* SplashScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */; };
436814095AFDBFA2F897EB6C /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 7D82C4A7F0A4541023665BFC /* PrivacyInfo.xcprivacy */; };
4C4408FA1D7BE01419D1D4F5 /* ExpoModulesProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 851F27CFD8D5089DCD7152DD /* ExpoModulesProvider.swift */; };
AC5FE9FFBC21455CAB7650BE /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 648AF8E0B4A44D32A525A318 /* GoogleService-Info.plist */; };
BB2F792D24A3F905000567C9 /* Expo.plist in Resources */ = {isa = PBXBuildFile; fileRef = BB2F792C24A3F905000567C9 /* Expo.plist */; };
- BD8E3A7277AA4309F667CE6C /* Pods_BitSleuthWallet.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 979BFD27F817023074A33ADA /* Pods_BitSleuthWallet.framework */; };
F11748422D0307B40044C1D9 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = F11748412D0307B40044C1D9 /* AppDelegate.swift */; };
/* End PBXBuildFile section */
@@ -21,14 +21,14 @@
13B07F961A680F5B00A75B9A /* BitSleuthWallet.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = BitSleuthWallet.app; sourceTree = BUILT_PRODUCTS_DIR; };
13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = BitSleuthWallet/Images.xcassets; sourceTree = ""; };
13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = BitSleuthWallet/Info.plist; sourceTree = ""; };
- 30AD29C50F7D634FEC5E15B3 /* Pods-BitSleuthWallet.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BitSleuthWallet.release.xcconfig"; path = "Target Support Files/Pods-BitSleuthWallet/Pods-BitSleuthWallet.release.xcconfig"; sourceTree = ""; };
+ 57E384E9F322CBB80A8825E1 /* Pods-BitSleuthWallet.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BitSleuthWallet.release.xcconfig"; path = "Target Support Files/Pods-BitSleuthWallet/Pods-BitSleuthWallet.release.xcconfig"; sourceTree = ""; };
+ 646FA36045E946D7B4AC8DC8 /* Pods_BitSleuthWallet.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_BitSleuthWallet.framework; sourceTree = BUILT_PRODUCTS_DIR; };
648AF8E0B4A44D32A525A318 /* GoogleService-Info.plist */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = text.plist.xml; name = "GoogleService-Info.plist"; path = "BitSleuthWallet/GoogleService-Info.plist"; sourceTree = ""; };
7D82C4A7F0A4541023665BFC /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = BitSleuthWallet/PrivacyInfo.xcprivacy; sourceTree = ""; };
851F27CFD8D5089DCD7152DD /* ExpoModulesProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExpoModulesProvider.swift; path = "Pods/Target Support Files/Pods-BitSleuthWallet/ExpoModulesProvider.swift"; sourceTree = ""; };
- 979BFD27F817023074A33ADA /* Pods_BitSleuthWallet.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_BitSleuthWallet.framework; sourceTree = BUILT_PRODUCTS_DIR; };
AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = SplashScreen.storyboard; path = BitSleuthWallet/SplashScreen.storyboard; sourceTree = ""; };
BB2F792C24A3F905000567C9 /* Expo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Expo.plist; sourceTree = ""; };
- EA0BA62847627EEA01F47B4F /* Pods-BitSleuthWallet.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BitSleuthWallet.debug.xcconfig"; path = "Target Support Files/Pods-BitSleuthWallet/Pods-BitSleuthWallet.debug.xcconfig"; sourceTree = ""; };
+ E234A8A20AD1ED5DA521DB8F /* Pods-BitSleuthWallet.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BitSleuthWallet.debug.xcconfig"; path = "Target Support Files/Pods-BitSleuthWallet/Pods-BitSleuthWallet.debug.xcconfig"; sourceTree = ""; };
ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
F11748412D0307B40044C1D9 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = AppDelegate.swift; path = BitSleuthWallet/AppDelegate.swift; sourceTree = ""; };
F11748442D0722820044C1D9 /* BitSleuthWallet-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "BitSleuthWallet-Bridging-Header.h"; path = "BitSleuthWallet/BitSleuthWallet-Bridging-Header.h"; sourceTree = ""; };
@@ -39,7 +39,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- BD8E3A7277AA4309F667CE6C /* Pods_BitSleuthWallet.framework in Frameworks */,
+ 2781CC95CDAF599114B3A38F /* Pods_BitSleuthWallet.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -65,7 +65,7 @@
isa = PBXGroup;
children = (
ED297162215061F000B7C4FE /* JavaScriptCore.framework */,
- 979BFD27F817023074A33ADA /* Pods_BitSleuthWallet.framework */,
+ 646FA36045E946D7B4AC8DC8 /* Pods_BitSleuthWallet.framework */,
);
name = Frameworks;
sourceTree = "";
@@ -92,8 +92,8 @@
832341AE1AAA6A7D00B99B32 /* Libraries */,
83CBBA001A601CBA00E9B192 /* Products */,
2D16E6871FA4F8E400B85C8A /* Frameworks */,
- B53E2632A23DB609CBBEE148 /* Pods */,
FA33FC2654E6A8823360995D /* ExpoModulesProviders */,
+ 842F17DD3DD5E8E2559DE34C /* Pods */,
);
indentWidth = 2;
sourceTree = "";
@@ -108,11 +108,11 @@
name = Products;
sourceTree = "";
};
- B53E2632A23DB609CBBEE148 /* Pods */ = {
+ 842F17DD3DD5E8E2559DE34C /* Pods */ = {
isa = PBXGroup;
children = (
- EA0BA62847627EEA01F47B4F /* Pods-BitSleuthWallet.debug.xcconfig */,
- 30AD29C50F7D634FEC5E15B3 /* Pods-BitSleuthWallet.release.xcconfig */,
+ E234A8A20AD1ED5DA521DB8F /* Pods-BitSleuthWallet.debug.xcconfig */,
+ 57E384E9F322CBB80A8825E1 /* Pods-BitSleuthWallet.release.xcconfig */,
);
name = Pods;
path = Pods;
@@ -142,16 +142,16 @@
isa = PBXNativeTarget;
buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "BitSleuthWallet" */;
buildPhases = (
- 08A4A3CD28434E44B6B9DE2E /* [CP] Check Pods Manifest.lock */,
+ 0369927E77FCBB347FC09C88 /* [CP] Check Pods Manifest.lock */,
222A08E96D18A813C81754E0 /* [Expo] Configure project */,
13B07F871A680F5B00A75B9A /* Sources */,
13B07F8C1A680F5B00A75B9A /* Frameworks */,
13B07F8E1A680F5B00A75B9A /* Resources */,
00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */,
- 800E24972A6A228C8D4807E9 /* [CP] Copy Pods Resources */,
- E986C6081C01DF6FB109AA5B /* [CP] Embed Pods Frameworks */,
- B61914A459064152380559D9 /* [CP-User] [RNFB] Core Configuration */,
- 1A6633EF0A9950A3636D9464 /* [CP-User] [RNFB] Crashlytics Configuration */,
+ E982820BE415D080A3E79E27 /* [CP] Embed Pods Frameworks */,
+ 8E22258012E426E0D21FB74F /* [CP] Copy Pods Resources */,
+ E40C904355200AC607416C17 /* [CP-User] [RNFB] Core Configuration */,
+ 38CDDB6DCBD49BFAFB661CA5 /* [CP-User] [RNFB] Crashlytics Configuration */,
);
buildRules = (
);
@@ -226,7 +226,7 @@
shellPath = /bin/sh;
shellScript = "if [[ -f \"$PODS_ROOT/../.xcode.env\" ]]; then\n source \"$PODS_ROOT/../.xcode.env\"\nfi\nif [[ -f \"$PODS_ROOT/../.xcode.env.local\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.local\"\nfi\n\n# The project root by default is one level up from the ios directory\nexport PROJECT_ROOT=\"$PROJECT_DIR\"/..\n\nif [[ \"$CONFIGURATION\" = *Debug* ]]; then\n export SKIP_BUNDLING=1\nfi\nif [[ -z \"$ENTRY_FILE\" ]]; then\n # Set the entry JS file using the bundler's entry resolution.\n export ENTRY_FILE=\"$(\"$NODE_BINARY\" -e \"require('expo/scripts/resolveAppEntry')\" \"$PROJECT_ROOT\" ios absolute | tail -n 1)\"\nfi\n\nif [[ -z \"$CLI_PATH\" ]]; then\n # Use Expo CLI\n export CLI_PATH=\"$(\"$NODE_BINARY\" --print \"require.resolve('@expo/cli', { paths: [require.resolve('expo/package.json')] })\")\"\nfi\nif [[ -z \"$BUNDLE_COMMAND\" ]]; then\n # Default Expo CLI command for bundling\n export BUNDLE_COMMAND=\"export:embed\"\nfi\n\n# Source .xcode.env.updates if it exists to allow\n# SKIP_BUNDLING to be unset if needed\nif [[ -f \"$PODS_ROOT/../.xcode.env.updates\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.updates\"\nfi\n# Source local changes to allow overrides\n# if needed\nif [[ -f \"$PODS_ROOT/../.xcode.env.local\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.local\"\nfi\n\n`\"$NODE_BINARY\" --print \"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/react-native-xcode.sh'\"`\n\n";
};
- 08A4A3CD28434E44B6B9DE2E /* [CP] Check Pods Manifest.lock */ = {
+ 0369927E77FCBB347FC09C88 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
@@ -248,20 +248,6 @@
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
- 1A6633EF0A9950A3636D9464 /* [CP-User] [RNFB] Crashlytics Configuration */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}",
- "$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)",
- );
- name = "[CP-User] [RNFB] Crashlytics Configuration";
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "#!/usr/bin/env bash\n#\n# Copyright (c) 2016-present Invertase Limited & Contributors\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this library except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n#\nset -e\n\nif [[ ${PODS_ROOT} ]]; then\n echo \"info: Exec FirebaseCrashlytics Run from Pods\"\n \"${PODS_ROOT}/FirebaseCrashlytics/run\"\nelse\n echo \"info: Exec FirebaseCrashlytics Run from framework\"\n \"${PROJECT_DIR}/FirebaseCrashlytics.framework/run\"\nfi\n";
- };
222A08E96D18A813C81754E0 /* [Expo] Configure project */ = {
isa = PBXShellScriptBuildPhase;
alwaysOutOfDate = 1;
@@ -286,7 +272,21 @@
shellPath = /bin/sh;
shellScript = "# This script configures Expo modules and generates the modules provider file.\nbash -l -c \"./Pods/Target\\ Support\\ Files/Pods-BitSleuthWallet/expo-configure-project.sh\"\n";
};
- 800E24972A6A228C8D4807E9 /* [CP] Copy Pods Resources */ = {
+ 38CDDB6DCBD49BFAFB661CA5 /* [CP-User] [RNFB] Crashlytics Configuration */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputPaths = (
+ "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}",
+ "$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)",
+ );
+ name = "[CP-User] [RNFB] Crashlytics Configuration";
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "#!/usr/bin/env bash\n#\n# Copyright (c) 2016-present Invertase Limited & Contributors\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this library except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n#\nset -e\n\nif [[ ${PODS_ROOT} ]]; then\n echo \"info: Exec FirebaseCrashlytics Run from Pods\"\n \"${PODS_ROOT}/FirebaseCrashlytics/run\"\nelse\n echo \"info: Exec FirebaseCrashlytics Run from framework\"\n \"${PROJECT_DIR}/FirebaseCrashlytics.framework/run\"\nfi\n";
+ };
+ 8E22258012E426E0D21FB74F /* [CP] Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
@@ -348,7 +348,7 @@
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-BitSleuthWallet/Pods-BitSleuthWallet-resources.sh\"\n";
showEnvVarsInLog = 0;
};
- B61914A459064152380559D9 /* [CP-User] [RNFB] Core Configuration */ = {
+ E40C904355200AC607416C17 /* [CP-User] [RNFB] Core Configuration */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
@@ -361,7 +361,7 @@
shellPath = /bin/sh;
shellScript = "#!/usr/bin/env bash\n#\n# Copyright (c) 2016-present Invertase Limited & Contributors\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this library except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n#\n\n##########################################################################\n##########################################################################\n#\n# NOTE THAT IF YOU CHANGE THIS FILE YOU MUST RUN pod install AFTERWARDS\n#\n# This file is installed as an Xcode build script in the project file\n# by cocoapods, and you will not see your changes until you pod install\n#\n##########################################################################\n##########################################################################\n\nset -e\n\n_MAX_LOOKUPS=2;\n_SEARCH_RESULT=''\n_RN_ROOT_EXISTS=''\n_CURRENT_LOOKUPS=1\n_JSON_ROOT=\"'react-native'\"\n_JSON_FILE_NAME='firebase.json'\n_JSON_OUTPUT_BASE64='e30=' # { }\n_CURRENT_SEARCH_DIR=${PROJECT_DIR}\n_PLIST_BUDDY=/usr/libexec/PlistBuddy\n_TARGET_PLIST=\"${BUILT_PRODUCTS_DIR}/${INFOPLIST_PATH}\"\n_DSYM_PLIST=\"${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist\"\n\n# plist arrays\n_PLIST_ENTRY_KEYS=()\n_PLIST_ENTRY_TYPES=()\n_PLIST_ENTRY_VALUES=()\n\nfunction setPlistValue {\n echo \"note: setting plist entry '$1' of type '$2' in file '$4'\"\n ${_PLIST_BUDDY} -c \"Add :$1 $2 '$3'\" $4 || echo \"note: '$1' already exists\"\n}\n\nfunction getFirebaseJsonKeyValue () {\n if [[ ${_RN_ROOT_EXISTS} ]]; then\n ruby -Ku -e \"require 'rubygems';require 'json'; output=JSON.parse('$1'); puts output[$_JSON_ROOT]['$2']\"\n else\n echo \"\"\n fi;\n}\n\nfunction jsonBoolToYesNo () {\n if [[ $1 == \"false\" ]]; then\n echo \"NO\"\n elif [[ $1 == \"true\" ]]; then\n echo \"YES\"\n else echo \"NO\"\n fi\n}\n\necho \"note: -> RNFB build script started\"\necho \"note: 1) Locating ${_JSON_FILE_NAME} file:\"\n\nif [[ -z ${_CURRENT_SEARCH_DIR} ]]; then\n _CURRENT_SEARCH_DIR=$(pwd)\nfi;\n\nwhile true; do\n _CURRENT_SEARCH_DIR=$(dirname \"$_CURRENT_SEARCH_DIR\")\n if [[ \"$_CURRENT_SEARCH_DIR\" == \"/\" ]] || [[ ${_CURRENT_LOOKUPS} -gt ${_MAX_LOOKUPS} ]]; then break; fi;\n echo \"note: ($_CURRENT_LOOKUPS of $_MAX_LOOKUPS) Searching in '$_CURRENT_SEARCH_DIR' for a ${_JSON_FILE_NAME} file.\"\n _SEARCH_RESULT=$(find \"$_CURRENT_SEARCH_DIR\" -maxdepth 2 -name ${_JSON_FILE_NAME} -print | /usr/bin/head -n 1)\n if [[ ${_SEARCH_RESULT} ]]; then\n echo \"note: ${_JSON_FILE_NAME} found at $_SEARCH_RESULT\"\n break;\n fi;\n _CURRENT_LOOKUPS=$((_CURRENT_LOOKUPS+1))\ndone\n\nif [[ ${_SEARCH_RESULT} ]]; then\n _JSON_OUTPUT_RAW=$(cat \"${_SEARCH_RESULT}\")\n if ! _RN_ROOT_EXISTS=$(ruby -Ku -e \"require 'json'; output=JSON.parse('$_JSON_OUTPUT_RAW'); puts output[$_JSON_ROOT]\"); then\n echo \"error: Failed to parse firebase.json, check for syntax errors.\"\n exit 1\n fi\n\n if [[ ${_RN_ROOT_EXISTS} ]]; then\n if ! python3 --version >/dev/null 2>&1; then echo \"error: python3 not found, firebase.json file processing error.\" && exit 1; fi\n _JSON_OUTPUT_BASE64=$(python3 -c 'import json,sys,base64;print(base64.b64encode(bytes(json.dumps(json.loads(open('\"'${_SEARCH_RESULT}'\"', '\"'rb'\"').read())['${_JSON_ROOT}']), '\"'utf-8'\"')).decode())' || echo \"e30=\")\n fi\n\n _PLIST_ENTRY_KEYS+=(\"firebase_json_raw\")\n _PLIST_ENTRY_TYPES+=(\"string\")\n _PLIST_ENTRY_VALUES+=(\"$_JSON_OUTPUT_BASE64\")\n\n # config.app_data_collection_default_enabled\n _APP_DATA_COLLECTION_ENABLED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"app_data_collection_default_enabled\")\n if [[ $_APP_DATA_COLLECTION_ENABLED ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseDataCollectionDefaultEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_APP_DATA_COLLECTION_ENABLED\")\")\n fi\n\n # config.analytics_auto_collection_enabled\n _ANALYTICS_AUTO_COLLECTION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_auto_collection_enabled\")\n if [[ $_ANALYTICS_AUTO_COLLECTION ]]; then\n _PLIST_ENTRY_KEYS+=(\"FIREBASE_ANALYTICS_COLLECTION_ENABLED\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_AUTO_COLLECTION\")\")\n fi\n\n # config.analytics_collection_deactivated\n _ANALYTICS_DEACTIVATED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_collection_deactivated\")\n if [[ $_ANALYTICS_DEACTIVATED ]]; then\n _PLIST_ENTRY_KEYS+=(\"FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_DEACTIVATED\")\")\n fi\n\n # config.analytics_idfv_collection_enabled\n _ANALYTICS_IDFV_COLLECTION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_idfv_collection_enabled\")\n if [[ $_ANALYTICS_IDFV_COLLECTION ]]; then\n _PLIST_ENTRY_KEYS+=(\"GOOGLE_ANALYTICS_IDFV_COLLECTION_ENABLED\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_IDFV_COLLECTION\")\")\n fi\n\n # config.analytics_default_allow_analytics_storage\n _ANALYTICS_STORAGE=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_default_allow_analytics_storage\")\n if [[ $_ANALYTICS_STORAGE ]]; then\n _PLIST_ENTRY_KEYS+=(\"GOOGLE_ANALYTICS_DEFAULT_ALLOW_ANALYTICS_STORAGE\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_STORAGE\")\")\n fi\n\n # config.analytics_default_allow_ad_storage\n _ANALYTICS_AD_STORAGE=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_default_allow_ad_storage\")\n if [[ $_ANALYTICS_AD_STORAGE ]]; then\n _PLIST_ENTRY_KEYS+=(\"GOOGLE_ANALYTICS_DEFAULT_ALLOW_AD_STORAGE\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_AD_STORAGE\")\")\n fi\n\n # config.analytics_default_allow_ad_user_data\n _ANALYTICS_AD_USER_DATA=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_default_allow_ad_user_data\")\n if [[ $_ANALYTICS_AD_USER_DATA ]]; then\n _PLIST_ENTRY_KEYS+=(\"GOOGLE_ANALYTICS_DEFAULT_ALLOW_AD_USER_DATA\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_AD_USER_DATA\")\")\n fi\n\n # config.analytics_default_allow_ad_personalization_signals\n _ANALYTICS_PERSONALIZATION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_default_allow_ad_personalization_signals\")\n if [[ $_ANALYTICS_PERSONALIZATION ]]; then\n _PLIST_ENTRY_KEYS+=(\"GOOGLE_ANALYTICS_DEFAULT_ALLOW_AD_PERSONALIZATION_SIGNALS\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_PERSONALIZATION\")\")\n fi\n\n # config.analytics_registration_with_ad_network_enabled\n _ANALYTICS_REGISTRATION_WITH_AD_NETWORK=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"google_analytics_registration_with_ad_network_enabled\")\n if [[ $_ANALYTICS_REGISTRATION_WITH_AD_NETWORK ]]; then\n _PLIST_ENTRY_KEYS+=(\"GOOGLE_ANALYTICS_REGISTRATION_WITH_AD_NETWORK_ENABLED\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_REGISTRATION_WITH_AD_NETWORK\")\")\n fi\n\n # config.google_analytics_automatic_screen_reporting_enabled\n _ANALYTICS_AUTO_SCREEN_REPORTING=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"google_analytics_automatic_screen_reporting_enabled\")\n if [[ $_ANALYTICS_AUTO_SCREEN_REPORTING ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseAutomaticScreenReportingEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_AUTO_SCREEN_REPORTING\")\")\n fi\n\n # config.perf_auto_collection_enabled\n _PERF_AUTO_COLLECTION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"perf_auto_collection_enabled\")\n if [[ $_PERF_AUTO_COLLECTION ]]; then\n _PLIST_ENTRY_KEYS+=(\"firebase_performance_collection_enabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_PERF_AUTO_COLLECTION\")\")\n fi\n\n # config.perf_collection_deactivated\n _PERF_DEACTIVATED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"perf_collection_deactivated\")\n if [[ $_PERF_DEACTIVATED ]]; then\n _PLIST_ENTRY_KEYS+=(\"firebase_performance_collection_deactivated\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_PERF_DEACTIVATED\")\")\n fi\n\n # config.messaging_auto_init_enabled\n _MESSAGING_AUTO_INIT=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"messaging_auto_init_enabled\")\n if [[ $_MESSAGING_AUTO_INIT ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseMessagingAutoInitEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_MESSAGING_AUTO_INIT\")\")\n fi\n\n # config.in_app_messaging_auto_colllection_enabled\n _FIAM_AUTO_INIT=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"in_app_messaging_auto_collection_enabled\")\n if [[ $_FIAM_AUTO_INIT ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseInAppMessagingAutomaticDataCollectionEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_FIAM_AUTO_INIT\")\")\n fi\n\n # config.app_check_token_auto_refresh\n _APP_CHECK_TOKEN_AUTO_REFRESH=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"app_check_token_auto_refresh\")\n if [[ $_APP_CHECK_TOKEN_AUTO_REFRESH ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseAppCheckTokenAutoRefreshEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_APP_CHECK_TOKEN_AUTO_REFRESH\")\")\n fi\n\n # config.crashlytics_disable_auto_disabler - undocumented for now - mainly for debugging, document if becomes useful\n _CRASHLYTICS_AUTO_DISABLE_ENABLED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"crashlytics_disable_auto_disabler\")\n if [[ $_CRASHLYTICS_AUTO_DISABLE_ENABLED == \"true\" ]]; then\n echo \"Disabled Crashlytics auto disabler.\" # do nothing\n else\n _PLIST_ENTRY_KEYS+=(\"FirebaseCrashlyticsCollectionEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"NO\")\n fi\nelse\n _PLIST_ENTRY_KEYS+=(\"firebase_json_raw\")\n _PLIST_ENTRY_TYPES+=(\"string\")\n _PLIST_ENTRY_VALUES+=(\"$_JSON_OUTPUT_BASE64\")\n echo \"warning: A firebase.json file was not found, whilst this file is optional it is recommended to include it to configure firebase services in React Native Firebase.\"\nfi;\n\necho \"note: 2) Injecting Info.plist entries: \"\n\n# Log out the keys we're adding\nfor i in \"${!_PLIST_ENTRY_KEYS[@]}\"; do\n echo \" -> $i) ${_PLIST_ENTRY_KEYS[$i]}\" \"${_PLIST_ENTRY_TYPES[$i]}\" \"${_PLIST_ENTRY_VALUES[$i]}\"\ndone\n\nfor plist in \"${_TARGET_PLIST}\" \"${_DSYM_PLIST}\" ; do\n if [[ -f \"${plist}\" ]]; then\n\n # paths with spaces break the call to setPlistValue. temporarily modify\n # the shell internal field separator variable (IFS), which normally\n # includes spaces, to consist only of line breaks\n oldifs=$IFS\n IFS=\"\n\"\n\n for i in \"${!_PLIST_ENTRY_KEYS[@]}\"; do\n setPlistValue \"${_PLIST_ENTRY_KEYS[$i]}\" \"${_PLIST_ENTRY_TYPES[$i]}\" \"${_PLIST_ENTRY_VALUES[$i]}\" \"${plist}\"\n done\n\n # restore the original internal field separator value\n IFS=$oldifs\n else\n echo \"warning: A Info.plist build output file was not found (${plist})\"\n fi\ndone\n\necho \"note: <- RNFB build script finished\"\n";
};
- E986C6081C01DF6FB109AA5B /* [CP] Embed Pods Frameworks */ = {
+ E982820BE415D080A3E79E27 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
@@ -400,7 +400,7 @@
/* Begin XCBuildConfiguration section */
13B07F941A680F5B00A75B9A /* Debug */ = {
isa = XCBuildConfiguration;
- baseConfigurationReference = EA0BA62847627EEA01F47B4F /* Pods-BitSleuthWallet.debug.xcconfig */;
+ baseConfigurationReference = E234A8A20AD1ED5DA521DB8F /* Pods-BitSleuthWallet.debug.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
@@ -436,7 +436,7 @@
};
13B07F951A680F5B00A75B9A /* Release */ = {
isa = XCBuildConfiguration;
- baseConfigurationReference = 30AD29C50F7D634FEC5E15B3 /* Pods-BitSleuthWallet.release.xcconfig */;
+ baseConfigurationReference = 57E384E9F322CBB80A8825E1 /* Pods-BitSleuthWallet.release.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
diff --git a/ios/GoogleService-Info.example.plist b/ios/GoogleService-Info.example.plist
new file mode 100644
index 00000000..91963e89
--- /dev/null
+++ b/ios/GoogleService-Info.example.plist
@@ -0,0 +1,43 @@
+
+
+
+
+
+ API_KEY
+ AIzaSy_YOUR_IOS_API_KEY_HERE
+ GCM_SENDER_ID
+ YOUR_PROJECT_NUMBER
+ PLIST_VERSION
+ 1
+ BUNDLE_ID
+ ai.bitsleuth.wallet
+ PROJECT_ID
+ your-project-id
+ STORAGE_BUCKET
+ your-project-id.appspot.com
+ IS_ADS_ENABLED
+
+ IS_ANALYTICS_ENABLED
+
+ IS_APPINVITE_ENABLED
+
+ IS_GCM_ENABLED
+
+ IS_SIGNIN_ENABLED
+
+ GOOGLE_APP_ID
+ 1:YOUR_PROJECT_NUMBER:ios:YOUR_APP_ID
+
+
\ No newline at end of file
diff --git a/ios/Podfile.lock b/ios/Podfile.lock
index d4a2b4a6..ffe4dba5 100644
--- a/ios/Podfile.lock
+++ b/ios/Podfile.lock
@@ -1,11 +1,11 @@
PODS:
- - EXConstants (18.0.10):
+ - EXConstants (18.0.13):
- ExpoModulesCore
- EXImageLoader (6.0.0):
- ExpoModulesCore
- React-Core
- EXJSONUtils (0.15.0)
- - EXManifests (1.0.8):
+ - EXManifests (1.0.10):
- ExpoModulesCore
- Expo (54.0.23):
- ExpoModulesCore
@@ -32,15 +32,15 @@ PODS:
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- Yoga
- - expo-dev-client (6.0.17):
+ - expo-dev-client (6.0.20):
- EXManifests
- expo-dev-launcher
- expo-dev-menu
- expo-dev-menu-interface
- EXUpdatesInterface
- - expo-dev-launcher (6.0.17):
+ - expo-dev-launcher (6.0.20):
- EXManifests
- - expo-dev-launcher/Main (= 6.0.17)
+ - expo-dev-launcher/Main (= 6.0.20)
- expo-dev-menu
- expo-dev-menu-interface
- ExpoModulesCore
@@ -69,7 +69,7 @@ PODS:
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- Yoga
- - expo-dev-launcher/Main (6.0.17):
+ - expo-dev-launcher/Main (6.0.20):
- EXManifests
- expo-dev-launcher/Unsafe
- expo-dev-menu
@@ -100,7 +100,7 @@ PODS:
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- Yoga
- - expo-dev-launcher/Unsafe (6.0.17):
+ - expo-dev-launcher/Unsafe (6.0.20):
- EXManifests
- expo-dev-menu
- expo-dev-menu-interface
@@ -130,9 +130,9 @@ PODS:
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- Yoga
- - expo-dev-menu (7.0.16):
- - expo-dev-menu/Main (= 7.0.16)
- - expo-dev-menu/ReactNativeCompatibles (= 7.0.16)
+ - expo-dev-menu (7.0.18):
+ - expo-dev-menu/Main (= 7.0.18)
+ - expo-dev-menu/ReactNativeCompatibles (= 7.0.18)
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -155,7 +155,7 @@ PODS:
- ReactNativeDependencies
- Yoga
- expo-dev-menu-interface (2.0.0)
- - expo-dev-menu/Main (7.0.16):
+ - expo-dev-menu/Main (7.0.18):
- EXManifests
- expo-dev-menu-interface
- ExpoModulesCore
@@ -182,7 +182,7 @@ PODS:
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- Yoga
- - expo-dev-menu/ReactNativeCompatibles (7.0.16):
+ - expo-dev-menu/ReactNativeCompatibles (7.0.18):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -204,45 +204,45 @@ PODS:
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- Yoga
- - ExpoAsset (12.0.9):
+ - ExpoAsset (12.0.12):
- ExpoModulesCore
- - ExpoBlur (15.0.7):
+ - ExpoBlur (15.0.8):
- ExpoModulesCore
- - ExpoCamera (17.0.9):
+ - ExpoCamera (17.0.10):
- ExpoModulesCore
- ZXingObjC/OneD
- ZXingObjC/PDF417
- - ExpoClipboard (8.0.7):
+ - ExpoClipboard (8.0.8):
- ExpoModulesCore
- - ExpoFileSystem (19.0.17):
+ - ExpoFileSystem (19.0.21):
- ExpoModulesCore
- - ExpoFont (14.0.9):
+ - ExpoFont (14.0.10):
- ExpoModulesCore
- - ExpoGlassEffect (0.1.6):
+ - ExpoGlassEffect (0.1.8):
- ExpoModulesCore
- - ExpoHaptics (15.0.7):
+ - ExpoHaptics (15.0.8):
- ExpoModulesCore
- - ExpoHead (6.0.14):
+ - ExpoHead (6.0.21):
- ExpoModulesCore
- RNScreens
- - ExpoImage (3.0.10):
+ - ExpoImage (3.0.11):
- ExpoModulesCore
- libavif/libdav1d
- SDWebImage (~> 5.21.0)
- SDWebImageAVIFCoder (~> 0.11.0)
- SDWebImageSVGCoder (~> 1.7.0)
- SDWebImageWebPCoder (~> 0.14.6)
- - ExpoImagePicker (17.0.8):
+ - ExpoImagePicker (17.0.10):
- ExpoModulesCore
- - ExpoKeepAwake (15.0.7):
+ - ExpoKeepAwake (15.0.8):
- ExpoModulesCore
- - ExpoLinearGradient (15.0.7):
+ - ExpoLinearGradient (15.0.8):
- ExpoModulesCore
- - ExpoLinking (8.0.8):
+ - ExpoLinking (8.0.11):
- ExpoModulesCore
- - ExpoLocalAuthentication (17.0.7):
+ - ExpoLocalAuthentication (17.0.8):
- ExpoModulesCore
- - ExpoLocation (19.0.7):
+ - ExpoLocation (19.0.8):
- ExpoModulesCore
- ExpoModulesCore (3.0.25):
- hermes-engine
@@ -267,80 +267,80 @@ PODS:
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- Yoga
- - ExpoSecureStore (15.0.7):
+ - ExpoSecureStore (15.0.8):
- ExpoModulesCore
- - ExpoSplashScreen (31.0.10):
+ - ExpoSplashScreen (31.0.13):
- ExpoModulesCore
- - ExpoSymbols (1.0.7):
+ - ExpoSymbols (1.0.8):
- ExpoModulesCore
- - ExpoSystemUI (6.0.8):
+ - ExpoSystemUI (6.0.9):
- ExpoModulesCore
- - ExpoWebBrowser (15.0.9):
+ - ExpoWebBrowser (15.0.10):
- ExpoModulesCore
- EXUpdatesInterface (2.0.0):
- ExpoModulesCore
- FBLazyVector (0.81.5)
- - Firebase/CoreOnly (12.4.0):
- - FirebaseCore (~> 12.4.0)
- - Firebase/Crashlytics (12.4.0):
+ - Firebase/CoreOnly (12.6.0):
+ - FirebaseCore (~> 12.6.0)
+ - Firebase/Crashlytics (12.6.0):
- Firebase/CoreOnly
- - FirebaseCrashlytics (~> 12.4.0)
- - Firebase/Performance (12.4.0):
+ - FirebaseCrashlytics (~> 12.6.0)
+ - Firebase/Performance (12.6.0):
- Firebase/CoreOnly
- - FirebasePerformance (~> 12.4.0)
- - FirebaseABTesting (12.4.0):
- - FirebaseCore (~> 12.4.0)
- - FirebaseCore (12.4.0):
- - FirebaseCoreInternal (~> 12.4.0)
+ - FirebasePerformance (~> 12.6.0)
+ - FirebaseABTesting (12.6.0):
+ - FirebaseCore (~> 12.6.0)
+ - FirebaseCore (12.6.0):
+ - FirebaseCoreInternal (~> 12.6.0)
- GoogleUtilities/Environment (~> 8.1)
- GoogleUtilities/Logger (~> 8.1)
- - FirebaseCoreExtension (12.4.0):
- - FirebaseCore (~> 12.4.0)
- - FirebaseCoreInternal (12.4.0):
+ - FirebaseCoreExtension (12.6.0):
+ - FirebaseCore (~> 12.6.0)
+ - FirebaseCoreInternal (12.6.0):
- "GoogleUtilities/NSData+zlib (~> 8.1)"
- - FirebaseCrashlytics (12.4.0):
- - FirebaseCore (~> 12.4.0)
- - FirebaseInstallations (~> 12.4.0)
- - FirebaseRemoteConfigInterop (~> 12.4.0)
- - FirebaseSessions (~> 12.4.0)
+ - FirebaseCrashlytics (12.6.0):
+ - FirebaseCore (~> 12.6.0)
+ - FirebaseInstallations (~> 12.6.0)
+ - FirebaseRemoteConfigInterop (~> 12.6.0)
+ - FirebaseSessions (~> 12.6.0)
- GoogleDataTransport (~> 10.1)
- GoogleUtilities/Environment (~> 8.1)
- nanopb (~> 3.30910.0)
- PromisesObjC (~> 2.4)
- - FirebaseInstallations (12.4.0):
- - FirebaseCore (~> 12.4.0)
+ - FirebaseInstallations (12.6.0):
+ - FirebaseCore (~> 12.6.0)
- GoogleUtilities/Environment (~> 8.1)
- GoogleUtilities/UserDefaults (~> 8.1)
- PromisesObjC (~> 2.4)
- - FirebasePerformance (12.4.0):
- - FirebaseCore (~> 12.4.0)
- - FirebaseInstallations (~> 12.4.0)
- - FirebaseRemoteConfig (~> 12.4.0)
- - FirebaseSessions (~> 12.4.0)
+ - FirebasePerformance (12.6.0):
+ - FirebaseCore (~> 12.6.0)
+ - FirebaseInstallations (~> 12.6.0)
+ - FirebaseRemoteConfig (~> 12.6.0)
+ - FirebaseSessions (~> 12.6.0)
- GoogleDataTransport (~> 10.1)
- GoogleUtilities/Environment (~> 8.1)
- GoogleUtilities/MethodSwizzler (~> 8.1)
- GoogleUtilities/UserDefaults (~> 8.1)
- nanopb (~> 3.30910.0)
- - FirebaseRemoteConfig (12.4.0):
- - FirebaseABTesting (~> 12.4.0)
- - FirebaseCore (~> 12.4.0)
- - FirebaseInstallations (~> 12.4.0)
- - FirebaseRemoteConfigInterop (~> 12.4.0)
- - FirebaseSharedSwift (~> 12.4.0)
+ - FirebaseRemoteConfig (12.6.0):
+ - FirebaseABTesting (~> 12.6.0)
+ - FirebaseCore (~> 12.6.0)
+ - FirebaseInstallations (~> 12.6.0)
+ - FirebaseRemoteConfigInterop (~> 12.6.0)
+ - FirebaseSharedSwift (~> 12.6.0)
- GoogleUtilities/Environment (~> 8.1)
- "GoogleUtilities/NSData+zlib (~> 8.1)"
- - FirebaseRemoteConfigInterop (12.4.0)
- - FirebaseSessions (12.4.0):
- - FirebaseCore (~> 12.4.0)
- - FirebaseCoreExtension (~> 12.4.0)
- - FirebaseInstallations (~> 12.4.0)
+ - FirebaseRemoteConfigInterop (12.6.0)
+ - FirebaseSessions (12.6.0):
+ - FirebaseCore (~> 12.6.0)
+ - FirebaseCoreExtension (~> 12.6.0)
+ - FirebaseInstallations (~> 12.6.0)
- GoogleDataTransport (~> 10.1)
- GoogleUtilities/Environment (~> 8.1)
- GoogleUtilities/UserDefaults (~> 8.1)
- nanopb (~> 3.30910.0)
- PromisesSwift (~> 2.1)
- - FirebaseSharedSwift (12.4.0)
+ - FirebaseSharedSwift (12.6.0)
- GoogleDataTransport (10.1.0):
- nanopb (~> 3.30910.0)
- PromisesObjC (~> 2.4)
@@ -2114,16 +2114,16 @@ PODS:
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- Yoga
- - RNFBApp (23.5.0):
- - Firebase/CoreOnly (= 12.4.0)
+ - RNFBApp (23.7.0):
+ - Firebase/CoreOnly (= 12.6.0)
- React-Core
- - RNFBCrashlytics (23.5.0):
- - Firebase/Crashlytics (= 12.4.0)
+ - RNFBCrashlytics (23.7.0):
+ - Firebase/Crashlytics (= 12.6.0)
- FirebaseCoreExtension
- React-Core
- RNFBApp
- - RNFBPerf (23.5.0):
- - Firebase/Performance (= 12.4.0)
+ - RNFBPerf (23.7.0):
+ - Firebase/Performance (= 12.6.0)
- React-Core
- RNFBApp
- RNGestureHandler (2.28.0):
@@ -2149,7 +2149,7 @@ PODS:
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- Yoga
- - RNReanimated (4.1.3):
+ - RNReanimated (4.1.6):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -2171,10 +2171,10 @@ PODS:
- ReactCommon/turbomodule/bridging
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - RNReanimated/reanimated (= 4.1.3)
+ - RNReanimated/reanimated (= 4.1.6)
- RNWorklets
- Yoga
- - RNReanimated/reanimated (4.1.3):
+ - RNReanimated/reanimated (4.1.6):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -2196,10 +2196,10 @@ PODS:
- ReactCommon/turbomodule/bridging
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - RNReanimated/reanimated/apple (= 4.1.3)
+ - RNReanimated/reanimated/apple (= 4.1.6)
- RNWorklets
- Yoga
- - RNReanimated/reanimated/apple (4.1.3):
+ - RNReanimated/reanimated/apple (4.1.6):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -2386,9 +2386,9 @@ PODS:
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- Yoga
- - SDWebImage (5.21.3):
- - SDWebImage/Core (= 5.21.3)
- - SDWebImage/Core (5.21.3)
+ - SDWebImage (5.21.5):
+ - SDWebImage/Core (= 5.21.5)
+ - SDWebImage/Core (5.21.5)
- SDWebImageAVIFCoder (0.11.1):
- libavif/core (>= 0.11.0)
- SDWebImage (~> 5.10)
@@ -2778,51 +2778,51 @@ EXTERNAL SOURCES:
:path: "../node_modules/react-native/ReactCommon/yoga"
SPEC CHECKSUMS:
- EXConstants: fd688cef4e401dcf798a021cfb5d87c890c30ba3
+ EXConstants: fce59a631a06c4151602843667f7cfe35f81e271
EXImageLoader: 189e3476581efe3ad4d1d3fb4735b7179eb26f05
EXJSONUtils: 1d3e4590438c3ee593684186007028a14b3686cd
- EXManifests: 224345a575fca389073c416297b6348163f28d1a
+ EXManifests: a8d97683e5c7a3b026ffbd58559c64dc655b747b
Expo: 81e793cab9d63b5bf9529240110d15e7089160da
- expo-dev-client: b6e7b4f4063ae44b5e68cc6a8bcc0c79c3037c1a
- expo-dev-launcher: d9db9a797de273a54566af53e2ba84285bb00695
- expo-dev-menu: 56fdd59f02862814fcc857d98a8e3143736739a7
+ expo-dev-client: 425ee077d6754a98cfe3a2e2410d29b440b24c9d
+ expo-dev-launcher: 2559cd405f6e69bd1f1794b4756e46b7f0f648ef
+ expo-dev-menu: cf3e52f2e4402e54e9a36a25c7b38569a82c2c54
expo-dev-menu-interface: 600df12ea01efecdd822daaf13cc0ac091775533
- ExpoAsset: 9ba6fbd677fb8e241a3899ac00fa735bc911eadf
- ExpoBlur: 2dd8f64aa31f5d405652c21d3deb2d2588b1852f
- ExpoCamera: 2a87c210f8955350ea5c70f1d539520b2fc5d940
- ExpoClipboard: af650d14765f19c60ce2a1eaf9dfe6445eff7365
- ExpoFileSystem: b79eadbda7b7f285f378f95f959cc9313a1c9c61
- ExpoFont: cf9d90ec1d3b97c4f513211905724c8171f82961
- ExpoGlassEffect: 84523fbad3e2103bc8f80dc927fc23ead8b036f2
- ExpoHaptics: 807476b0c39e9d82b7270349d6487928ce32df84
- ExpoHead: e317214fa14edeaf17748d39ec9e550a3d1194fb
- ExpoImage: 9c3428921c536ab29e5c6721d001ad5c1f469566
- ExpoImagePicker: d251aab45a1b1857e4156fed88511b278b4eee1c
- ExpoKeepAwake: 1a2e820692e933c94a565ec3fbbe38ac31658ffe
- ExpoLinearGradient: a464898cb95153125e3b81894fd479bcb1c7dd27
- ExpoLinking: f051f28e50ea9269ff539317c166adec81d9342d
- ExpoLocalAuthentication: ea7b9878fefac9ae38dc5766af00b52cac55c51b
- ExpoLocation: 93d7faa0c2adbd5a04686af0c1a61bc6ed3ee2f7
+ ExpoAsset: f867e55ceb428aab99e1e8c082b5aee7c159ea18
+ ExpoBlur: b90747a3f22a8b6ceffd9cb0dc41a4184efdc656
+ ExpoCamera: 6a326deb45ba840749652e4c15198317aa78497e
+ ExpoClipboard: b36b287d8356887844bb08ed5c84b5979bb4dd1e
+ ExpoFileSystem: 858a44267a3e6e9057e0888ad7c7cfbf55d52063
+ ExpoFont: 35ac6191ed86bbf56b3ebd2d9154eda9fad5b509
+ ExpoGlassEffect: 8ce45eca31f12e949e23a4ee13e2bfb59e9b0785
+ ExpoHaptics: d3a6375d8dcc3a1083d003bc2298ff654fafb536
+ ExpoHead: 9719a74953454fac328e90f34eea55ebbb3bbbf9
+ ExpoImage: 686f972bff29525733aa13357f6691dc90aa03d8
+ ExpoImagePicker: 1af3e4e31512d2f34c95c2a3018a3edc40aee748
+ ExpoKeepAwake: 55f75eca6499bb9e4231ebad6f3e9cb8f99c0296
+ ExpoLinearGradient: 809102bdb979f590083af49f7fa4805cd931bd58
+ ExpoLinking: 8f0aaf69aa56f832913030503b6263dc6f647f37
+ ExpoLocalAuthentication: 8a31808565da7af926dd9b595e98594d8b1553b6
+ ExpoLocation: d5b61cb4970fa982e39ca94246a206a0c3b812ca
ExpoModulesCore: 89597e00f491f8310cff4edc91b1f41b8e74a981
- ExpoSecureStore: 9c6571fe3fcb045a671c4011c451546eaaab98fd
- ExpoSplashScreen: cbb839de72110dea1851dd3e85080b7923af2540
- ExpoSymbols: 1ae04ce686de719b9720453b988d8bc5bf776c68
- ExpoSystemUI: 2761aa6875849af83286364811d46e8ed8ea64c7
- ExpoWebBrowser: b973e1351fdcf5fec0c400997b1851f5a8219ec3
+ ExpoSecureStore: d32f751874a2ceb5aaeebeb3578e165c1ba2b24a
+ ExpoSplashScreen: bc3cffefca2716e5f22350ca109badd7e50ec14d
+ ExpoSymbols: 349ee2b4d7d5ff3ea8436467914f8a67635aa354
+ ExpoSystemUI: 2ad325f361a2fcd96a464e8574e19935c461c9cc
+ ExpoWebBrowser: 17b064c621789e41d4816c95c93f429b84971f52
EXUpdatesInterface: 5adf50cb41e079c861da6d9b4b954c3db9a50734
FBLazyVector: e95a291ad2dadb88e42b06e0c5fb8262de53ec12
- Firebase: f07b15ae5a6ec0f93713e30b923d9970d144af3e
- FirebaseABTesting: c05b5ec9f1d9f21a65909525de301d375032d9a4
- FirebaseCore: bb595f3114953664e3c1dc032f008a244147cfd3
- FirebaseCoreExtension: 7e1f7118ee970e001a8013719fb90950ee5e0018
- FirebaseCoreInternal: d7f5a043c2cd01a08103ab586587c1468047bca6
- FirebaseCrashlytics: a6ece278a837c7e88de2d9b5da0a3542f2342395
- FirebaseInstallations: ae9f4902cb5bf1d0c5eaa31ec1f4e5495a0714e2
- FirebasePerformance: ab6284808a5157a4c93a50d780803b8ccc36845f
- FirebaseRemoteConfig: 28e071a214ec66cdb113ed9ff4ce63e9abe018db
- FirebaseRemoteConfigInterop: 1e31ec72b89c9924367c59bfb5ec9ab60d1d6766
- FirebaseSessions: ba7c7a7ca8696a8d540eb3fe3800fbe98c79786d
- FirebaseSharedSwift: 93426a1de92f19e1199fac5295a4f8df16458daa
+ Firebase: a451a7b61536298fd5cbfe3a746fd40443a50679
+ FirebaseABTesting: 119f0a2b2e68b1ae05d248c5adb2455f148f20c1
+ FirebaseCore: 0e38ad5d62d980a47a64b8e9301ffa311457be04
+ FirebaseCoreExtension: 032fd6f8509e591fda8cb76f6651f20d926b121f
+ FirebaseCoreInternal: 69bf1306a05b8ac43004f6cc1f804bb7b05b229e
+ FirebaseCrashlytics: 3d6248c50726ee7832aef0e53cb84c9e64d9fa7e
+ FirebaseInstallations: 631b38da2e11a83daa4bfb482f79d286a5dfa7ad
+ FirebasePerformance: 9a73b170cefb06e5da537682e30f86c9865880c5
+ FirebaseRemoteConfig: c5dfe22828a7ae7673d16224ea92743687e993df
+ FirebaseRemoteConfigInterop: 3443b8cb8fffd76bb3e03b2a84bfd3db952fcda4
+ FirebaseSessions: 2e8f808347e665dff3e5843f275715f07045297d
+ FirebaseSharedSwift: 79f27fff0addd15c3de19b87fba426f3cc2c964f
GoogleDataTransport: aae35b7ea0c09004c3797d53c8c41f66f219d6a7
GoogleUtilities: 00c88b9a86066ef77f0da2fab05f65d7768ed8e1
hermes-engine: 9f4dfe93326146a1c99eb535b1cb0b857a3cd172
@@ -2902,15 +2902,15 @@ SPEC CHECKSUMS:
ReactCommon: 08810150b1206cc44aecf5f6ae19af32f29151a8
ReactNativeDependencies: 71ce9c28beb282aa720ea7b46980fff9669f428a
RNCAsyncStorage: c8407cc394627a3a4cf56b457d594bfa822b6ab8
- RNFBApp: 255fa19a91d6c1309e021ee75d5d209754e5961b
- RNFBCrashlytics: ab632410ce1383051ac26ef44c966da651b7cf91
- RNFBPerf: 66843b59e5b078a5d5494b57ddf5858aff56cdbd
+ RNFBApp: 0c4cadae3900893d4631ea9a9effd14f853cd8e0
+ RNFBCrashlytics: 70521bbf68b69c16273ab01f901e2439f231993a
+ RNFBPerf: b663b2eaa76360a1db8ffb463f9c24f0964529ae
RNGestureHandler: c3831b3b1b5014c6afab7fff7e4171394a3419ab
- RNReanimated: d6282d5be09ec53b2b69e4addeae2f342c4c99ed
+ RNReanimated: 8315d083516a6690fcdb479b56fca8fabf65a73d
RNScreens: 33bbd1d0f86ed957557620dc94054b71db0a94ee
RNSVG: ac3047fdd9c0ebac9d0b731a352bddf216af6242
RNWorklets: 76fce72926e28e304afb44f0da23b2d24f2c1fa0
- SDWebImage: 16309af6d214ba3f77a7c6f6fdda888cb313a50a
+ SDWebImage: e9c98383c7572d713c1a0d7dd2783b10599b9838
SDWebImageAVIFCoder: afe194a084e851f70228e4be35ef651df0fc5c57
SDWebImageSVGCoder: 15a300a97ec1c8ac958f009c02220ac0402e936c
SDWebImageWebPCoder: e38c0a70396191361d60c092933e22c20d5b1380
diff --git a/package-lock.json b/package-lock.json
index 66fdebc7..b5686a22 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -8,6 +8,7 @@
"name": "expo-app",
"version": "1.2.1",
"hasInstallScript": true,
+ "license": "AGPL-3.0",
"dependencies": {
"@babel/core": "^7.28.4",
"@babel/generator": "^7.28.3",
@@ -69,8 +70,8 @@
"node-libs-react-native": "^1.2.1",
"process": "^0.11.10",
"querystring-es3": "^0.2.1",
- "react": "19.1.2",
- "react-dom": "19.1.2",
+ "react": "19.1.0",
+ "react-dom": "19.1.0",
"react-native": "0.81.5",
"react-native-biometrics": "^3.0.1",
"react-native-bip32-utils": "^0.9.3",
@@ -96,7 +97,7 @@
"devDependencies": {
"@expo/ngrok": "^4.1.3",
"@types/node": "^24.5.2",
- "@types/react": "~19.1.2",
+ "@types/react": "~19.1.0",
"eas-cli-local-build-plugin": "^1.0.240",
"eslint": "^9.35.0",
"eslint-config-expo": "~10.0.0",
@@ -2259,13 +2260,13 @@
}
},
"node_modules/@expo/cli": {
- "version": "54.0.20",
- "resolved": "https://registry.npmjs.org/@expo/cli/-/cli-54.0.20.tgz",
- "integrity": "sha512-cwsXmhftvS0p9NNYOhXGnicBAZl9puWwRt19Qq5eQ6njLnaj8WvcR+kDZyADtgZxBsZiyVlrKXvnjt43HXywQA==",
+ "version": "54.0.21",
+ "resolved": "https://registry.npmjs.org/@expo/cli/-/cli-54.0.21.tgz",
+ "integrity": "sha512-L/FdpyZDsg/Nq6xW6kfiyF9DUzKfLZCKFXEVZcDqCNar6bXxQVotQyvgexRvtUF5nLinuT/UafLOdC3FUALUmA==",
"license": "MIT",
"dependencies": {
"@0no-co/graphql.web": "^1.0.8",
- "@expo/code-signing-certificates": "^0.0.5",
+ "@expo/code-signing-certificates": "^0.0.6",
"@expo/config": "~12.0.13",
"@expo/config-plugins": "~54.0.4",
"@expo/devcert": "^1.2.1",
@@ -2273,7 +2274,7 @@
"@expo/image-utils": "^0.8.8",
"@expo/json-file": "^10.0.8",
"@expo/metro": "~54.2.0",
- "@expo/metro-config": "~54.0.12",
+ "@expo/metro-config": "~54.0.13",
"@expo/osascript": "^2.3.8",
"@expo/package-manager": "^1.9.9",
"@expo/plist": "^0.4.8",
@@ -2302,7 +2303,7 @@
"glob": "^13.0.0",
"lan-network": "^0.1.6",
"minimatch": "^9.0.0",
- "node-forge": "^1.3.1",
+ "node-forge": "^1.3.3",
"npm-package-arg": "^11.0.0",
"ora": "^3.4.0",
"picomatch": "^3.0.1",
@@ -2358,13 +2359,12 @@
}
},
"node_modules/@expo/code-signing-certificates": {
- "version": "0.0.5",
- "resolved": "https://registry.npmjs.org/@expo/code-signing-certificates/-/code-signing-certificates-0.0.5.tgz",
- "integrity": "sha512-BNhXkY1bblxKZpltzAx98G2Egj9g1Q+JRcvR7E99DOj862FTCX+ZPsAUtPTr7aHxwtrL7+fL3r0JSmM9kBm+Bw==",
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/@expo/code-signing-certificates/-/code-signing-certificates-0.0.6.tgz",
+ "integrity": "sha512-iNe0puxwBNEcuua9gmTGzq+SuMDa0iATai1FlFTMHJ/vUmKvN/V//drXoLJkVb5i5H3iE/n/qIJxyoBnXouD0w==",
"license": "MIT",
"dependencies": {
- "node-forge": "^1.2.1",
- "nullthrows": "^1.1.1"
+ "node-forge": "^1.3.3"
}
},
"node_modules/@expo/config": {
@@ -2833,9 +2833,9 @@
}
},
"node_modules/@expo/metro-config": {
- "version": "54.0.12",
- "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-54.0.12.tgz",
- "integrity": "sha512-Xhv1z/ak/cuJWeLxlnWr2u22q2AM/klASbjpP5eE34y91lGWa2NUwrFWoS830MhJ6kuAqtGdoQhwyPa3TES7sA==",
+ "version": "54.0.13",
+ "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-54.0.13.tgz",
+ "integrity": "sha512-RRufMCgLR2Za1WGsh02OatIJo5qZFt31yCnIOSfoubNc3Qqe92Z41pVsbrFnmw5CIaisv1NgdBy05DHe7pEyuw==",
"license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.20.0",
@@ -3508,9 +3508,8 @@
"version": "1.24.0",
"resolved": "https://registry.npmjs.org/@react-native-async-storage/async-storage/-/async-storage-1.24.0.tgz",
"integrity": "sha512-W4/vbwUOYOjco0x3toB8QCr7EjIP6nE9G7o8PMguvvjYT5Awg09lyV4enACRx4s++PPulBiBSjL0KTFx2u0Z/g==",
+ "extraneous": true,
"license": "MIT",
- "optional": true,
- "peer": true,
"dependencies": {
"merge-options": "^3.0.4"
},
@@ -4098,9 +4097,9 @@
}
},
"node_modules/@hono/node-server": {
- "version": "1.19.7",
- "resolved": "https://registry.npmjs.org/@hono/node-server/-/node-server-1.19.7.tgz",
- "integrity": "sha512-vUcD0uauS7EU2caukW8z5lJKtoGMokxNbJtBiwHgpqxEXokaHCBkQUmCHhjFB1VUTWdqj25QoMkMKzgjq+uhrw==",
+ "version": "1.19.8",
+ "resolved": "https://registry.npmjs.org/@hono/node-server/-/node-server-1.19.8.tgz",
+ "integrity": "sha512-0/g2lIOPzX8f3vzW1ggQgvG5mjtFBDBHFAzI5SFAi2DzSqS9luJwqg9T6O/gKYLi+inS7eNxBeIFkkghIPvrMA==",
"devOptional": true,
"license": "MIT",
"engines": {
@@ -4567,6 +4566,7 @@
"resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.25.2.tgz",
"integrity": "sha512-LZFeo4F9M5qOhC/Uc1aQSrBHxMrvxett+9KLHt7OhcExtoiRN9DKgbZffMP/nxjutWDQpfMDfP3nkHI4X9ijww==",
"devOptional": true,
+ "license": "MIT",
"dependencies": {
"@hono/node-server": "^1.19.7",
"ajv": "^8.17.1",
@@ -5818,20 +5818,20 @@
"license": "MIT"
},
"node_modules/@typescript-eslint/eslint-plugin": {
- "version": "8.51.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.51.0.tgz",
- "integrity": "sha512-XtssGWJvypyM2ytBnSnKtHYOGT+4ZwTnBVl36TA4nRO2f4PRNGz5/1OszHzcZCvcBMh+qb7I06uoCmLTRdR9og==",
+ "version": "8.52.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.52.0.tgz",
+ "integrity": "sha512-okqtOgqu2qmZJ5iN4TWlgfF171dZmx2FzdOv2K/ixL2LZWDStL8+JgQerI2sa8eAEfoydG9+0V96m7V+P8yE1Q==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@eslint-community/regexpp": "^4.10.0",
- "@typescript-eslint/scope-manager": "8.51.0",
- "@typescript-eslint/type-utils": "8.51.0",
- "@typescript-eslint/utils": "8.51.0",
- "@typescript-eslint/visitor-keys": "8.51.0",
- "ignore": "^7.0.0",
+ "@eslint-community/regexpp": "^4.12.2",
+ "@typescript-eslint/scope-manager": "8.52.0",
+ "@typescript-eslint/type-utils": "8.52.0",
+ "@typescript-eslint/utils": "8.52.0",
+ "@typescript-eslint/visitor-keys": "8.52.0",
+ "ignore": "^7.0.5",
"natural-compare": "^1.4.0",
- "ts-api-utils": "^2.2.0"
+ "ts-api-utils": "^2.4.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -5841,7 +5841,7 @@
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "@typescript-eslint/parser": "^8.51.0",
+ "@typescript-eslint/parser": "^8.52.0",
"eslint": "^8.57.0 || ^9.0.0",
"typescript": ">=4.8.4 <6.0.0"
}
@@ -5857,17 +5857,17 @@
}
},
"node_modules/@typescript-eslint/parser": {
- "version": "8.51.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.51.0.tgz",
- "integrity": "sha512-3xP4XzzDNQOIqBMWogftkwxhg5oMKApqY0BAflmLZiFYHqyhSOxv/cd/zPQLTcCXr4AkaKb25joocY0BD1WC6A==",
+ "version": "8.52.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.52.0.tgz",
+ "integrity": "sha512-iIACsx8pxRnguSYhHiMn2PvhvfpopO9FXHyn1mG5txZIsAaB6F0KwbFnUQN3KCiG3Jcuad/Cao2FAs1Wp7vAyg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/scope-manager": "8.51.0",
- "@typescript-eslint/types": "8.51.0",
- "@typescript-eslint/typescript-estree": "8.51.0",
- "@typescript-eslint/visitor-keys": "8.51.0",
- "debug": "^4.3.4"
+ "@typescript-eslint/scope-manager": "8.52.0",
+ "@typescript-eslint/types": "8.52.0",
+ "@typescript-eslint/typescript-estree": "8.52.0",
+ "@typescript-eslint/visitor-keys": "8.52.0",
+ "debug": "^4.4.3"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -5882,15 +5882,15 @@
}
},
"node_modules/@typescript-eslint/project-service": {
- "version": "8.51.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.51.0.tgz",
- "integrity": "sha512-Luv/GafO07Z7HpiI7qeEW5NW8HUtZI/fo/kE0YbtQEFpJRUuR0ajcWfCE5bnMvL7QQFrmT/odMe8QZww8X2nfQ==",
+ "version": "8.52.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.52.0.tgz",
+ "integrity": "sha512-xD0MfdSdEmeFa3OmVqonHi+Cciab96ls1UhIF/qX/O/gPu5KXD0bY9lu33jj04fjzrXHcuvjBcBC+D3SNSadaw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/tsconfig-utils": "^8.51.0",
- "@typescript-eslint/types": "^8.51.0",
- "debug": "^4.3.4"
+ "@typescript-eslint/tsconfig-utils": "^8.52.0",
+ "@typescript-eslint/types": "^8.52.0",
+ "debug": "^4.4.3"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -5904,14 +5904,14 @@
}
},
"node_modules/@typescript-eslint/scope-manager": {
- "version": "8.51.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.51.0.tgz",
- "integrity": "sha512-JhhJDVwsSx4hiOEQPeajGhCWgBMBwVkxC/Pet53EpBVs7zHHtayKefw1jtPaNRXpI9RA2uocdmpdfE7T+NrizA==",
+ "version": "8.52.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.52.0.tgz",
+ "integrity": "sha512-ixxqmmCcc1Nf8S0mS0TkJ/3LKcC8mruYJPOU6Ia2F/zUUR4pApW7LzrpU3JmtePbRUTes9bEqRc1Gg4iyRnDzA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "8.51.0",
- "@typescript-eslint/visitor-keys": "8.51.0"
+ "@typescript-eslint/types": "8.52.0",
+ "@typescript-eslint/visitor-keys": "8.52.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -5922,9 +5922,9 @@
}
},
"node_modules/@typescript-eslint/tsconfig-utils": {
- "version": "8.51.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.51.0.tgz",
- "integrity": "sha512-Qi5bSy/vuHeWyir2C8u/uqGMIlIDu8fuiYWv48ZGlZ/k+PRPHtaAu7erpc7p5bzw2WNNSniuxoMSO4Ar6V9OXw==",
+ "version": "8.52.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.52.0.tgz",
+ "integrity": "sha512-jl+8fzr/SdzdxWJznq5nvoI7qn2tNYV/ZBAEcaFMVXf+K6jmXvAFrgo/+5rxgnL152f//pDEAYAhhBAZGrVfwg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -5939,17 +5939,17 @@
}
},
"node_modules/@typescript-eslint/type-utils": {
- "version": "8.51.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.51.0.tgz",
- "integrity": "sha512-0XVtYzxnobc9K0VU7wRWg1yiUrw4oQzexCG2V2IDxxCxhqBMSMbjB+6o91A+Uc0GWtgjCa3Y8bi7hwI0Tu4n5Q==",
+ "version": "8.52.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.52.0.tgz",
+ "integrity": "sha512-JD3wKBRWglYRQkAtsyGz1AewDu3mTc7NtRjR/ceTyGoPqmdS5oCdx/oZMWD5Zuqmo6/MpsYs0wp6axNt88/2EQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "8.51.0",
- "@typescript-eslint/typescript-estree": "8.51.0",
- "@typescript-eslint/utils": "8.51.0",
- "debug": "^4.3.4",
- "ts-api-utils": "^2.2.0"
+ "@typescript-eslint/types": "8.52.0",
+ "@typescript-eslint/typescript-estree": "8.52.0",
+ "@typescript-eslint/utils": "8.52.0",
+ "debug": "^4.4.3",
+ "ts-api-utils": "^2.4.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -5964,9 +5964,9 @@
}
},
"node_modules/@typescript-eslint/types": {
- "version": "8.51.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.51.0.tgz",
- "integrity": "sha512-TizAvWYFM6sSscmEakjY3sPqGwxZRSywSsPEiuZF6d5GmGD9Gvlsv0f6N8FvAAA0CD06l3rIcWNbsN1e5F/9Ag==",
+ "version": "8.52.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.52.0.tgz",
+ "integrity": "sha512-LWQV1V4q9V4cT4H5JCIx3481iIFxH1UkVk+ZkGGAV1ZGcjGI9IoFOfg3O6ywz8QqCDEp7Inlg6kovMofsNRaGg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -5978,21 +5978,21 @@
}
},
"node_modules/@typescript-eslint/typescript-estree": {
- "version": "8.51.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.51.0.tgz",
- "integrity": "sha512-1qNjGqFRmlq0VW5iVlcyHBbCjPB7y6SxpBkrbhNWMy/65ZoncXCEPJxkRZL8McrseNH6lFhaxCIaX+vBuFnRng==",
+ "version": "8.52.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.52.0.tgz",
+ "integrity": "sha512-XP3LClsCc0FsTK5/frGjolyADTh3QmsLp6nKd476xNI9CsSsLnmn4f0jrzNoAulmxlmNIpeXuHYeEQv61Q6qeQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/project-service": "8.51.0",
- "@typescript-eslint/tsconfig-utils": "8.51.0",
- "@typescript-eslint/types": "8.51.0",
- "@typescript-eslint/visitor-keys": "8.51.0",
- "debug": "^4.3.4",
- "minimatch": "^9.0.4",
- "semver": "^7.6.0",
+ "@typescript-eslint/project-service": "8.52.0",
+ "@typescript-eslint/tsconfig-utils": "8.52.0",
+ "@typescript-eslint/types": "8.52.0",
+ "@typescript-eslint/visitor-keys": "8.52.0",
+ "debug": "^4.4.3",
+ "minimatch": "^9.0.5",
+ "semver": "^7.7.3",
"tinyglobby": "^0.2.15",
- "ts-api-utils": "^2.2.0"
+ "ts-api-utils": "^2.4.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -6019,16 +6019,16 @@
}
},
"node_modules/@typescript-eslint/utils": {
- "version": "8.51.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.51.0.tgz",
- "integrity": "sha512-11rZYxSe0zabiKaCP2QAwRf/dnmgFgvTmeDTtZvUvXG3UuAdg/GU02NExmmIXzz3vLGgMdtrIosI84jITQOxUA==",
+ "version": "8.52.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.52.0.tgz",
+ "integrity": "sha512-wYndVMWkweqHpEpwPhwqE2lnD2DxC6WVLupU/DOt/0/v+/+iQbbzO3jOHjmBMnhu0DgLULvOaU4h4pwHYi2oRQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@eslint-community/eslint-utils": "^4.7.0",
- "@typescript-eslint/scope-manager": "8.51.0",
- "@typescript-eslint/types": "8.51.0",
- "@typescript-eslint/typescript-estree": "8.51.0"
+ "@eslint-community/eslint-utils": "^4.9.1",
+ "@typescript-eslint/scope-manager": "8.52.0",
+ "@typescript-eslint/types": "8.52.0",
+ "@typescript-eslint/typescript-estree": "8.52.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -6043,13 +6043,13 @@
}
},
"node_modules/@typescript-eslint/visitor-keys": {
- "version": "8.51.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.51.0.tgz",
- "integrity": "sha512-mM/JRQOzhVN1ykejrvwnBRV3+7yTKK8tVANVN3o1O0t0v7o+jqdVu9crPy5Y9dov15TJk/FTIgoUGHrTOVL3Zg==",
+ "version": "8.52.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.52.0.tgz",
+ "integrity": "sha512-ink3/Zofus34nmBsPjow63FP5M7IGff0RKAgqR6+CFpdk22M7aLwC9gOcLGYqr7MczLPzZVERW9hRog3O4n1sQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "8.51.0",
+ "@typescript-eslint/types": "8.52.0",
"eslint-visitor-keys": "^4.2.1"
},
"engines": {
@@ -7119,9 +7119,9 @@
"license": "MIT"
},
"node_modules/baseline-browser-mapping": {
- "version": "2.9.11",
- "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.11.tgz",
- "integrity": "sha512-Sg0xJUNDU1sJNGdfGWhVHX0kkZ+HWcvmVymJbj6NSgZZmW/8S9Y2HQ5euytnIgakgxN6papOAWiwDo1ctFDcoQ==",
+ "version": "2.9.13",
+ "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.13.tgz",
+ "integrity": "sha512-WhtvB2NG2wjr04+h77sg3klAIwrgOqnjS49GGudnUPGFFgg7G17y7Qecqp+2Dr5kUDxNRBca0SK7cG8JwzkWDQ==",
"license": "Apache-2.0",
"bin": {
"baseline-browser-mapping": "dist/cli.js"
@@ -7308,9 +7308,9 @@
"license": "MIT"
},
"node_modules/body-parser": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.1.tgz",
- "integrity": "sha512-nfDwkulwiZYQIGwxdy0RUmowMhKcFVcYXUU7m4QlKYim1rUtg83xm2yjZ40QjDuc291AJjjeSc9b++AWHSgSHw==",
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.2.tgz",
+ "integrity": "sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==",
"devOptional": true,
"license": "MIT",
"dependencies": {
@@ -7320,7 +7320,7 @@
"http-errors": "^2.0.0",
"iconv-lite": "^0.7.0",
"on-finished": "^2.4.1",
- "qs": "^6.14.0",
+ "qs": "^6.14.1",
"raw-body": "^3.0.1",
"type-is": "^2.0.1"
},
@@ -7755,9 +7755,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001762",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001762.tgz",
- "integrity": "sha512-PxZwGNvH7Ak8WX5iXzoK1KPZttBXNPuaOvI2ZYU7NrlM+d9Ov+TUvlLOBNGzVXAntMSMMlJPd+jY6ovrVjSmUw==",
+ "version": "1.0.30001763",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001763.tgz",
+ "integrity": "sha512-mh/dGtq56uN98LlNX9qdbKnzINhX0QzhiWBFEkFfsFO4QyCvL8YegrJAazCwXIeqkIob8BlZPGM3xdnY+sgmvQ==",
"funding": [
{
"type": "opencollective",
@@ -9929,12 +9929,12 @@
}
},
"node_modules/expo-constants": {
- "version": "18.0.12",
- "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-18.0.12.tgz",
- "integrity": "sha512-WzcKYMVNRRu4NcSzfIVRD5aUQFnSpTZgXFrlWmm19xJoDa4S3/PQNi6PNTBRc49xz9h8FT7HMxRKaC8lr0gflA==",
+ "version": "18.0.13",
+ "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-18.0.13.tgz",
+ "integrity": "sha512-FnZn12E1dRYKDHlAdIyNFhBurKTS3F9CrfrBDJI5m3D7U17KBHMQ6JEfYlSj7LG7t+Ulr+IKaj58L1k5gBwTcQ==",
"license": "MIT",
"dependencies": {
- "@expo/config": "~12.0.12",
+ "@expo/config": "~12.0.13",
"@expo/env": "~2.0.8"
},
"peerDependencies": {
@@ -10756,6 +10756,16 @@
}
}
},
+ "node_modules/expo/node_modules/@expo/code-signing-certificates": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/@expo/code-signing-certificates/-/code-signing-certificates-0.0.5.tgz",
+ "integrity": "sha512-BNhXkY1bblxKZpltzAx98G2Egj9g1Q+JRcvR7E99DOj862FTCX+ZPsAUtPTr7aHxwtrL7+fL3r0JSmM9kBm+Bw==",
+ "license": "MIT",
+ "dependencies": {
+ "node-forge": "^1.2.1",
+ "nullthrows": "^1.1.1"
+ }
+ },
"node_modules/expo/node_modules/@expo/metro": {
"version": "54.1.0",
"resolved": "https://registry.npmjs.org/@expo/metro/-/metro-54.1.0.tgz",
@@ -11728,9 +11738,8 @@
"version": "1.24.0",
"resolved": "https://registry.npmjs.org/@react-native-async-storage/async-storage/-/async-storage-1.24.0.tgz",
"integrity": "sha512-W4/vbwUOYOjco0x3toB8QCr7EjIP6nE9G7o8PMguvvjYT5Awg09lyV4enACRx4s++PPulBiBSjL0KTFx2u0Z/g==",
+ "extraneous": true,
"license": "MIT",
- "optional": true,
- "peer": true,
"dependencies": {
"merge-options": "^3.0.4"
},
@@ -12660,9 +12669,9 @@
}
},
"node_modules/iconv-lite": {
- "version": "0.7.1",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.1.tgz",
- "integrity": "sha512-2Tth85cXwGFHfvRgZWszZSvdo+0Xsqmw8k8ZwxScfcBneNUraK+dxRxRm24nszx80Y0TVio8kKLt5sLE7ZCLlw==",
+ "version": "0.7.2",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz",
+ "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==",
"devOptional": true,
"license": "MIT",
"dependencies": {
@@ -16800,9 +16809,9 @@
}
},
"node_modules/react": {
- "version": "19.1.2",
- "resolved": "https://registry.npmjs.org/react/-/react-19.1.2.tgz",
- "integrity": "sha512-MdWVitvLbQULD+4DP8GYjZUrepGW7d+GQkNVqJEzNxE+e9WIa4egVFE/RDfVb1u9u/Jw7dNMmPB4IqxzbFYJ0w==",
+ "version": "19.1.0",
+ "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz",
+ "integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==",
"license": "MIT",
"engines": {
"node": ">=0.10.0"
@@ -16840,15 +16849,15 @@
}
},
"node_modules/react-dom": {
- "version": "19.1.2",
- "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.2.tgz",
- "integrity": "sha512-dEoydsCp50i7kS1xHOmPXq4zQYoGWedUsvqv9H6zdif2r7yLHygyfP9qou71TulRN0d6ng9EbRVsQhSqfUc19g==",
+ "version": "19.1.0",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz",
+ "integrity": "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==",
"license": "MIT",
"dependencies": {
"scheduler": "^0.26.0"
},
"peerDependencies": {
- "react": "^19.1.2"
+ "react": "^19.1.0"
}
},
"node_modules/react-fast-compare": {
@@ -17995,9 +18004,9 @@
}
},
"node_modules/resolve-workspace-root": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/resolve-workspace-root/-/resolve-workspace-root-2.0.0.tgz",
- "integrity": "sha512-IsaBUZETJD5WsI11Wt8PKHwaIe45or6pwNc8yflvLJ4DWtImK9kuLoH5kUva/2Mmx/RdIyr4aONNSa2v9LTJsw==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/resolve-workspace-root/-/resolve-workspace-root-2.0.1.tgz",
+ "integrity": "sha512-nR23LHAvaI6aHtMg6RWoaHpdR4D881Nydkzi2CixINyg9T00KgaJdJI6Vwty+Ps8WLxZHuxsS0BseWjxSA4C+w==",
"license": "MIT"
},
"node_modules/resolve.exports": {
@@ -18272,10 +18281,13 @@
"license": "MIT"
},
"node_modules/sax": {
- "version": "1.4.3",
- "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.3.tgz",
- "integrity": "sha512-yqYn1JhPczigF94DMS+shiDMjDowYO6y9+wB/4WgO0Y19jWYk0lQ4tuG5KI7kj4FTp1wxPj5IFfcrz/s1c3jjQ==",
- "license": "BlueOak-1.0.0"
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.4.tgz",
+ "integrity": "sha512-1n3r/tGXO6b6VXMdFT54SHzT9ytu9yr7TaELowdYpMqY/Ao7EnlQGmAQ1+RatX7Tkkdm6hONI2owqNx2aZj5Sw==",
+ "license": "BlueOak-1.0.0",
+ "engines": {
+ "node": ">=11.0.0"
+ }
},
"node_modules/scheduler": {
"version": "0.26.0",
@@ -19330,9 +19342,8 @@
"version": "2.8.2",
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz",
"integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==",
+ "extraneous": true,
"license": "ISC",
- "optional": true,
- "peer": true,
"bin": {
"yaml": "bin.mjs"
},
@@ -19945,9 +19956,9 @@
}
},
"node_modules/undici": {
- "version": "6.22.0",
- "resolved": "https://registry.npmjs.org/undici/-/undici-6.22.0.tgz",
- "integrity": "sha512-hU/10obOIu62MGYjdskASR3CUAiYaFTtC9Pa6vHyf//mAipSvSQg6od2CnJswq7fvzNS3zJhxoRkgNVaHurWKw==",
+ "version": "6.23.0",
+ "resolved": "https://registry.npmjs.org/undici/-/undici-6.23.0.tgz",
+ "integrity": "sha512-VfQPToRA5FZs/qJxLIinmU59u0r7LXqoJkCzinq3ckNJp3vKEh7jTWN589YQ5+aoAC/TGRLyJLCPKcLQbM8r9g==",
"license": "MIT",
"engines": {
"node": ">=18.17"
@@ -20826,9 +20837,9 @@
}
},
"node_modules/ws": {
- "version": "8.18.3",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz",
- "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==",
+ "version": "8.19.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz",
+ "integrity": "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==",
"license": "MIT",
"engines": {
"node": ">=10.0.0"
diff --git a/package.json b/package.json
index 005a89b4..4dc04d6b 100644
--- a/package.json
+++ b/package.json
@@ -77,8 +77,8 @@
"node-libs-react-native": "^1.2.1",
"process": "^0.11.10",
"querystring-es3": "^0.2.1",
- "react": "19.1.2",
- "react-dom": "19.1.2",
+ "react": "19.1.0",
+ "react-dom": "19.1.0",
"react-native": "0.81.5",
"react-native-biometrics": "^3.0.1",
"react-native-bip32-utils": "^0.9.3",
@@ -104,7 +104,7 @@
"devDependencies": {
"@expo/ngrok": "^4.1.3",
"@types/node": "^24.5.2",
- "@types/react": "~19.1.2",
+ "@types/react": "~19.1.0",
"eas-cli-local-build-plugin": "^1.0.240",
"eslint": "^9.35.0",
"eslint-config-expo": "~10.0.0",
@@ -123,7 +123,8 @@
}
},
"overrides": {
- "react-native-randombytes": "^3.6.2"
+ "react-native-randombytes": "^3.6.2",
+ "react-native-renderer": "19.1.0"
},
"resolutions": {
"@babel/traverse": "^7.28.4",
@@ -132,7 +133,8 @@
"@babel/parser": "^7.28.4",
"@babel/template": "^7.27.2",
"@babel/types": "^7.28.4",
- "react-native-randombytes": "^3.6.2"
+ "react-native-randombytes": "^3.6.2",
+ "react-native-renderer": "19.1.0"
},
"private": true
}