From 810b1fd2bd96fecbe68ccd43dbcd5af6709884b6 Mon Sep 17 00:00:00 2001 From: Daniel Salinas Date: Sat, 13 Dec 2025 12:35:24 -0500 Subject: [PATCH 1/2] move to expo 54 --- package.json | 47 +- yarn.lock | 1424 +++++++++++++++++++++++++++++--------------------- 2 files changed, 856 insertions(+), 615 deletions(-) diff --git a/package.json b/package.json index f30aa4e9d..3325aaa05 100644 --- a/package.json +++ b/package.json @@ -40,8 +40,8 @@ "resolutions": { "@apollo/client": "3.11.1", "cross-undici-fetch": "0.1.20", - "react-native-gesture-handler": "2.24.0", - "react-native-svg": "15.11.2", + "react-native-gesture-handler": "2.28.0", + "react-native-svg": "15.12.1", "@types/react": "~19.0.10" }, "copyFilesSettings": { @@ -55,7 +55,7 @@ "@op-engineering/op-sqlite": "15.1.4", "@react-hook/debounce": "4.0.0", "@react-hook/throttle": "2.2.0", - "@react-native-async-storage/async-storage": "2.1.2", + "@react-native-async-storage/async-storage": "2.2.0", "@react-native-clipboard/clipboard": "^1.16.3", "@react-native-community/cli": "18.0.0", "@react-native-community/cli-platform-android": "18.0.0", @@ -86,30 +86,30 @@ "domhandler": "^5.0.3", "domutils": "^3.2.2", "events": "3.3.0", - "expo": "53.0.23", - "expo-asset": "^12.0.9", - "expo-audio": "~0.4.9", - "expo-auth-session": "~6.2.1", - "expo-build-properties": "~0.14.8", - "expo-crypto": "~14.1.5", - "expo-dev-client": "~5.2.4", - "expo-file-system": "^19.0.17", - "expo-image": "2.4.1", - "expo-keep-awake": "~14.1.4", + "expo": "54.0.29", + "expo-asset": "~12.0.11", + "expo-audio": "~1.1.0", + "expo-auth-session": "~7.0.10", + "expo-build-properties": "~1.0.10", + "expo-crypto": "~15.0.8", + "expo-dev-client": "~6.0.20", + "expo-file-system": "~19.0.21", + "expo-image": "3.0.11", + "expo-keep-awake": "~15.0.8", "expo-key-event": "^1.4.0", - "expo-splash-screen": "~0.30.10", + "expo-splash-screen": "~31.0.12", "flatted": "3.3.1", "graphql": "16.8.1", "hoist-non-react-statics": "3.3.2", "htmlparser2": "^10.0.0", "lodash": "4.17.21", - "lottie-react-native": "7.2.2", + "lottie-react-native": "~7.3.1", "lucide-react-native": "^0.475.0", "priority-queue-typescript": "1.0.1", "query-string": "8.1.0", - "react": "19.0.0", + "react": "19.1.0", "react-hook-thunk-reducer": "0.3.0", - "react-native": "0.79.6", + "react-native": "0.81.5", "react-native-anchor-point": "^1.0.6", "react-native-appstate-hook": "1.0.6", "react-native-base64": "0.2.1", @@ -124,14 +124,14 @@ "react-native-flip-card": "3.5.7", "react-native-floating-action": "^1.22.0", "react-native-fresh-refresh": "2.1.1", - "react-native-gesture-handler": "2.24.0", + "react-native-gesture-handler": "~2.28.0", "react-native-haptic-feedback": "2.3.3", "react-native-keychain": "10.0.0", "react-native-localize": "3.2.0", "react-native-markdown-display": "^7.0.2", "react-native-markdown-view": "https://github.com/zzorba/react-native-markdown-view#1.1.23", "react-native-modal": "14.0.0-rc.1", - "react-native-pager-view": "6.7.1", + "react-native-pager-view": "6.9.1", "react-native-pan-pinch-view": "2.0.0", "react-native-progress": "5.0.1", "react-native-reanimated": "4.1.5", @@ -144,13 +144,13 @@ "react-native-side-menu-updated": "1.3.2", "react-native-snap-carousel": "4.0.0-beta.6", "react-native-super-grid": "^5.0.0", - "react-native-svg": "15.11.2", + "react-native-svg": "15.12.1", "react-native-tab-view": "4.1.3", "react-native-table-component": "^1.2.2", "react-native-toast-message": "^2.2.1", "react-native-uuid": "2.0.3", "react-native-vector-icons": "10.2.0", - "react-native-worklets": "^0.6.1", + "react-native-worklets": "0.5.1", "react-native-zoom-view": "1.0.2", "react-redux": "8.1.3", "redux": "4.2.1", @@ -163,7 +163,6 @@ "remove-accents": "^0.5.0", "remove-diacritical-marks": "1.0.1", "reselect": "4.1.8", - "rn-fetch-blob": "0.12.0", "rn-placeholder": "3.0.3", "simple-markdown": "0.7.3", "stable": "0.1.8", @@ -202,7 +201,7 @@ "@types/hoist-non-react-statics": "3.3.4", "@types/lodash": "4.14.200", "@types/markdown-it": "^14.1.2", - "@types/react": "~19.0.10", + "@types/react": "~19.1.10", "@types/react-native-flip-card": "3.5.4", "@types/react-native-keep-awake": "2.0.5", "@types/react-native-vector-icons": "6.4.16", @@ -225,7 +224,7 @@ "react-native-svg-transformer": "1.5.0", "react-test-renderer": "19.0.0", "ttag-cli": "1.10.6", - "typescript": "~5.8.3" + "typescript": "~5.9.2" }, "engines": { "node": ">=18" diff --git a/yarn.lock b/yarn.lock index 469b4ce58..9b0c138c8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -73,7 +73,7 @@ dependencies: "@babel/highlight" "^7.10.4" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.24.7", "@babel/code-frame@^7.27.1": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.20.0", "@babel/code-frame@^7.24.7", "@babel/code-frame@^7.27.1": version "7.27.1" resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz#200f715e66d52a23b221a9435534a91cc13ad5be" integrity sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg== @@ -264,6 +264,11 @@ resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz#a7054dcc145a967dd4dc8fee845a57c1316c9df8" integrity sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow== +"@babel/helper-validator-identifier@^7.28.5": + version "7.28.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz#010b6938fab7cb7df74aa2bbc06aa503b8fe5fb4" + integrity sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q== + "@babel/helper-validator-option@^7.27.1": version "7.27.1" resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz#fa52f5b1e7db1ab049445b421c4471303897702f" @@ -296,7 +301,7 @@ js-tokens "^4.0.0" picocolors "^1.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.0", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.25.3", "@babel/parser@^7.26.10", "@babel/parser@^7.27.2", "@babel/parser@^7.28.3", "@babel/parser@^7.28.4": +"@babel/parser@^7.1.0", "@babel/parser@^7.14.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.25.3", "@babel/parser@^7.26.10", "@babel/parser@^7.27.2", "@babel/parser@^7.28.3", "@babel/parser@^7.28.4": version "7.28.4" resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.28.4.tgz#da25d4643532890932cc03f7705fe19637e03fa8" integrity sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg== @@ -651,9 +656,9 @@ "@babel/helper-create-class-features-plugin" "^7.27.1" "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-class-static-block@^7.28.3": +"@babel/plugin-transform-class-static-block@^7.27.1", "@babel/plugin-transform-class-static-block@^7.28.3": version "7.28.3" - resolved "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.3.tgz#d1b8e69b54c9993bc558203e1f49bfc979bfd852" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.3.tgz#d1b8e69b54c9993bc558203e1f49bfc979bfd852" integrity sha512-LtPXlBbRoc4Njl/oh1CeD/3jC+atytbnf/UqLoqTDcEYGUPj022+rvfkbDYieUrSj3CaV4yHDByPE+T2HwfsJg== dependencies: "@babel/helper-create-class-features-plugin" "^7.28.3" @@ -1244,7 +1249,7 @@ "@babel/types" "^7.28.4" debug "^4.3.1" -"@babel/types@^7.0.0", "@babel/types@^7.12.6", "@babel/types@^7.18.13", "@babel/types@^7.20.0", "@babel/types@^7.20.7", "@babel/types@^7.21.3", "@babel/types@^7.24.7", "@babel/types@^7.25.2", "@babel/types@^7.26.10", "@babel/types@^7.27.1", "@babel/types@^7.27.3", "@babel/types@^7.28.2", "@babel/types@^7.28.4", "@babel/types@^7.3.3", "@babel/types@^7.4.4": +"@babel/types@^7.0.0", "@babel/types@^7.12.6", "@babel/types@^7.18.13", "@babel/types@^7.20.7", "@babel/types@^7.21.3", "@babel/types@^7.24.7", "@babel/types@^7.25.2", "@babel/types@^7.26.10", "@babel/types@^7.27.1", "@babel/types@^7.27.3", "@babel/types@^7.28.2", "@babel/types@^7.28.4", "@babel/types@^7.3.3", "@babel/types@^7.4.4": version "7.28.4" resolved "https://registry.npmjs.org/@babel/types/-/types-7.28.4.tgz#0a4e618f4c60a7cd6c11cb2d48060e4dbe38ac3a" integrity sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q== @@ -1252,6 +1257,14 @@ "@babel/helper-string-parser" "^7.27.1" "@babel/helper-validator-identifier" "^7.27.1" +"@babel/types@^7.26.0": + version "7.28.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.28.5.tgz#10fc405f60897c35f07e85493c932c7b5ca0592b" + integrity sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA== + dependencies: + "@babel/helper-string-parser" "^7.27.1" + "@babel/helper-validator-identifier" "^7.28.5" + "@bcoe/v8-coverage@^0.2.3": version "0.2.3" resolved "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" @@ -1327,30 +1340,30 @@ resolved "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz#de633db3ec2ef6a3c89e2f19038063e8a122e2c2" integrity sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q== -"@expo/cli@0.24.22": - version "0.24.22" - resolved "https://registry.npmjs.org/@expo/cli/-/cli-0.24.22.tgz#75bef7ce8df0e239b489b70a396e9ddf9833bad1" - integrity sha512-cEg6/F8ZWjoVkEwm0rXKReWbsCUROFbLFBYht+d5RzHnDwJoTX4QWJKx4m+TGNDPamRUIGw36U4z41Fvev0XmA== +"@expo/cli@54.0.19": + version "54.0.19" + resolved "https://registry.yarnpkg.com/@expo/cli/-/cli-54.0.19.tgz#42f3e99a507717c5238c35f8005fd6beee271ea0" + integrity sha512-Za+Ena29uYkq2c1Lbh+r3VrooR/mW7c9dahoH4WvL1T9ttbfAeu7sJmCuWZo88bZ4bFsOpE5fYne71DK11iSrQ== dependencies: "@0no-co/graphql.web" "^1.0.8" - "@babel/runtime" "^7.20.0" "@expo/code-signing-certificates" "^0.0.5" - "@expo/config" "~11.0.13" - "@expo/config-plugins" "~10.1.2" - "@expo/devcert" "^1.1.2" - "@expo/env" "~1.0.7" - "@expo/image-utils" "^0.7.6" - "@expo/json-file" "^9.1.5" - "@expo/metro-config" "~0.20.17" - "@expo/osascript" "^2.2.5" - "@expo/package-manager" "^1.8.6" - "@expo/plist" "^0.3.5" - "@expo/prebuild-config" "^9.0.12" - "@expo/schema-utils" "^0.1.0" + "@expo/config" "~12.0.12" + "@expo/config-plugins" "~54.0.3" + "@expo/devcert" "^1.2.1" + "@expo/env" "~2.0.8" + "@expo/image-utils" "^0.8.8" + "@expo/json-file" "^10.0.8" + "@expo/metro" "~54.1.0" + "@expo/metro-config" "~54.0.11" + "@expo/osascript" "^2.3.8" + "@expo/package-manager" "^1.9.9" + "@expo/plist" "^0.4.8" + "@expo/prebuild-config" "^54.0.7" + "@expo/schema-utils" "^0.1.8" "@expo/spawn-async" "^1.7.2" "@expo/ws-tunnel" "^1.0.1" "@expo/xcpretty" "^4.3.0" - "@react-native/dev-middleware" "0.79.6" + "@react-native/dev-middleware" "0.81.5" "@urql/core" "^5.0.6" "@urql/exchange-retry" "^1.3.0" accepts "^1.3.8" @@ -1364,9 +1377,10 @@ connect "^3.7.0" debug "^4.3.4" env-editor "^0.4.1" + expo-server "^1.0.5" freeport-async "^2.0.0" getenv "^2.0.0" - glob "^10.4.2" + glob "^13.0.0" lan-network "^0.1.6" minimatch "^9.0.0" node-forge "^1.3.1" @@ -1389,7 +1403,7 @@ source-map-support "~0.5.21" stacktrace-parser "^0.1.10" structured-headers "^0.4.1" - tar "^7.4.3" + tar "^7.5.2" terminal-link "^2.1.1" undici "^6.18.2" wrap-ansi "^7.0.0" @@ -1423,39 +1437,19 @@ xcode "^3.0.1" xml2js "0.6.0" -"@expo/config-plugins@~10.1.2": - version "10.1.2" - resolved "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-10.1.2.tgz#6efa256a3fa2fca116eeb5bef8b22b089e287282" - integrity sha512-IMYCxBOcnuFStuK0Ay+FzEIBKrwW8OVUMc65+v0+i7YFIIe8aL342l7T4F8lR4oCfhXn7d6M5QPgXvjtc/gAcw== - dependencies: - "@expo/config-types" "^53.0.5" - "@expo/json-file" "~9.1.5" - "@expo/plist" "^0.3.5" - "@expo/sdk-runtime-versions" "^1.0.0" - chalk "^4.1.2" - debug "^4.3.5" - getenv "^2.0.0" - glob "^10.4.2" - resolve-from "^5.0.0" - semver "^7.5.4" - slash "^3.0.0" - slugify "^1.6.6" - xcode "^3.0.1" - xml2js "0.6.0" - -"@expo/config-plugins@~54.0.2": - version "54.0.2" - resolved "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-54.0.2.tgz#4760319898e1a55c0d039adaee1360cff147d454" - integrity sha512-jD4qxFcURQUVsUFGMcbo63a/AnviK8WUGard+yrdQE3ZrB/aurn68SlApjirQQLEizhjI5Ar2ufqflOBlNpyPg== +"@expo/config-plugins@~54.0.3", "@expo/config-plugins@~54.0.4": + version "54.0.4" + resolved "https://registry.yarnpkg.com/@expo/config-plugins/-/config-plugins-54.0.4.tgz#b31cb16f6651342abcdafba600118245ecd9fb00" + integrity sha512-g2yXGICdoOw5i3LkQSDxl2Q5AlQCrG7oniu0pCPPO+UxGb7He4AFqSvPSy8HpRUj55io17hT62FTjYRD+d6j3Q== dependencies: - "@expo/config-types" "^54.0.8" - "@expo/json-file" "~10.0.7" - "@expo/plist" "^0.4.7" + "@expo/config-types" "^54.0.10" + "@expo/json-file" "~10.0.8" + "@expo/plist" "^0.4.8" "@expo/sdk-runtime-versions" "^1.0.0" chalk "^4.1.2" debug "^4.3.5" getenv "^2.0.0" - glob "^10.4.2" + glob "^13.0.0" resolve-from "^5.0.0" semver "^7.5.4" slash "^3.0.0" @@ -1463,78 +1457,54 @@ xcode "^3.0.1" xml2js "0.6.0" -"@expo/config-types@^53.0.0", "@expo/config-types@^53.0.5": +"@expo/config-types@^53.0.0": version "53.0.5" resolved "https://registry.npmjs.org/@expo/config-types/-/config-types-53.0.5.tgz#bba7e0712c2c5b1d8963348d68ea96339f858db4" integrity sha512-kqZ0w44E+HEGBjy+Lpyn0BVL5UANg/tmNixxaRMLS6nf37YsDrLk2VMAmeKMMk5CKG0NmOdVv3ngeUjRQMsy9g== -"@expo/config-types@^54.0.8": - version "54.0.8" - resolved "https://registry.npmjs.org/@expo/config-types/-/config-types-54.0.8.tgz#2aa1f96e0abad6a125d0ff1092b303280f7962e9" - integrity sha512-lyIn/x/Yz0SgHL7IGWtgTLg6TJWC9vL7489++0hzCHZ4iGjVcfZmPTUfiragZ3HycFFj899qN0jlhl49IHa94A== +"@expo/config-types@^54.0.10", "@expo/config-types@^54.0.9": + version "54.0.10" + resolved "https://registry.yarnpkg.com/@expo/config-types/-/config-types-54.0.10.tgz#688f4338255d2fdea970f44e2dfd8e8d37dec292" + integrity sha512-/J16SC2an1LdtCZ67xhSkGXpALYUVUNyZws7v+PVsFZxClYehDSoKLqyRaGkpHlYrCc08bS0RF5E0JV6g50psA== -"@expo/config@~11.0.12", "@expo/config@~11.0.13": - version "11.0.13" - resolved "https://registry.npmjs.org/@expo/config/-/config-11.0.13.tgz#1cc490a5f667e0129db5f98755f6bc4d8921edb2" - integrity sha512-TnGb4u/zUZetpav9sx/3fWK71oCPaOjZHoVED9NaEncktAd0Eonhq5NUghiJmkUGt3gGSjRAEBXiBbbY9/B1LA== +"@expo/config@~12.0.11", "@expo/config@~12.0.12": + version "12.0.12" + resolved "https://registry.yarnpkg.com/@expo/config/-/config-12.0.12.tgz#5e26390ec209ee56432e980451c08b361e0f07dd" + integrity sha512-X2MW86+ulLpMGvdgfvpl2EOBAKUlwvnvoPwdaZeeyWufGopn1nTUeh4C9gMsplDaP1kXv9sLXVhOoUoX6g9PvQ== dependencies: "@babel/code-frame" "~7.10.4" - "@expo/config-plugins" "~10.1.2" - "@expo/config-types" "^53.0.5" - "@expo/json-file" "^9.1.5" + "@expo/config-plugins" "~54.0.3" + "@expo/config-types" "^54.0.10" + "@expo/json-file" "^10.0.8" deepmerge "^4.3.1" getenv "^2.0.0" - glob "^10.4.2" + glob "^13.0.0" require-from-string "^2.0.2" resolve-from "^5.0.0" resolve-workspace-root "^2.0.0" semver "^7.6.0" slugify "^1.3.4" - sucrase "3.35.0" + sucrase "~3.35.1" -"@expo/config@~12.0.10": - version "12.0.10" - resolved "https://registry.npmjs.org/@expo/config/-/config-12.0.10.tgz#18acc0a2d5994dc167d1d4faca3e939de2bb95de" - integrity sha512-lJMof5Nqakq1DxGYlghYB/ogSBjmv4Fxn1ovyDmcjlRsQdFCXgu06gEUogkhPtc9wBt9WlTTfqENln5HHyLW6w== - dependencies: - "@babel/code-frame" "~7.10.4" - "@expo/config-plugins" "~54.0.2" - "@expo/config-types" "^54.0.8" - "@expo/json-file" "^10.0.7" - deepmerge "^4.3.1" - getenv "^2.0.0" - glob "^10.4.2" - require-from-string "^2.0.2" - resolve-from "^5.0.0" - resolve-workspace-root "^2.0.0" - semver "^7.6.0" - slugify "^1.3.4" - sucrase "3.35.0" - -"@expo/devcert@^1.1.2": - version "1.2.0" - resolved "https://registry.npmjs.org/@expo/devcert/-/devcert-1.2.0.tgz#7b32c2d959e36baaa0649433395e5170c808b44f" - integrity sha512-Uilcv3xGELD5t/b0eM4cxBFEKQRIivB3v7i+VhWLV/gL98aw810unLKKJbGAxAIhY6Ipyz8ChWibFsKFXYwstA== +"@expo/devcert@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@expo/devcert/-/devcert-1.2.1.tgz#1a687985bea1670866e54d5ba7c0ced963c354f4" + integrity sha512-qC4eaxmKMTmJC2ahwyui6ud8f3W60Ss7pMkpBq40Hu3zyiAaugPXnZ24145U7K36qO9UHdZUVxsCvIpz2RYYCA== dependencies: "@expo/sudo-prompt" "^9.3.1" debug "^3.1.0" - glob "^10.4.2" -"@expo/env@~1.0.7": - version "1.0.7" - resolved "https://registry.npmjs.org/@expo/env/-/env-1.0.7.tgz#6ee604e158d0f140fc2be711b9a7cb3adc341889" - integrity sha512-qSTEnwvuYJ3umapO9XJtrb1fAqiPlmUUg78N0IZXXGwQRt+bkp0OBls+Y5Mxw/Owj8waAM0Z3huKKskRADR5ow== +"@expo/devtools@0.1.8": + version "0.1.8" + resolved "https://registry.yarnpkg.com/@expo/devtools/-/devtools-0.1.8.tgz#bc5b297698f78b3b67037f04593a31e688330a7a" + integrity sha512-SVLxbuanDjJPgc0sy3EfXUMLb/tXzp6XIHkhtPVmTWJAp+FOr6+5SeiCfJrCzZFet0Ifyke2vX3sFcKwEvCXwQ== dependencies: - chalk "^4.0.0" - debug "^4.3.4" - dotenv "~16.4.5" - dotenv-expand "~11.0.6" - getenv "^2.0.0" + chalk "^4.1.2" -"@expo/env@~2.0.7": - version "2.0.7" - resolved "https://registry.npmjs.org/@expo/env/-/env-2.0.7.tgz#7b30d3ef9f262c131ac01d8e539e37dd04b8f4bd" - integrity sha512-BNETbLEohk3HQ2LxwwezpG8pq+h7Fs7/vAMP3eAtFT1BCpprLYoBBFZH7gW4aqGfqOcVP4Lc91j014verrYNGg== +"@expo/env@~2.0.8": + version "2.0.8" + resolved "https://registry.yarnpkg.com/@expo/env/-/env-2.0.8.tgz#2aea906eed3d297b2e19608dc1a800fba0a3fe03" + integrity sha512-5VQD6GT8HIMRaSaB5JFtOXuvfDVU80YtZIuUT/GDhUF782usIXY13Tn3IdDz1Tm/lqA9qnRZQ1BF4t7LlvdJPA== dependencies: chalk "^4.0.0" debug "^4.3.4" @@ -1542,43 +1512,27 @@ dotenv-expand "~11.0.6" getenv "^2.0.0" -"@expo/fingerprint@0.13.4": - version "0.13.4" - resolved "https://registry.npmjs.org/@expo/fingerprint/-/fingerprint-0.13.4.tgz#380762d68e3d55718331ede813e24b8760ebb2b5" - integrity sha512-MYfPYBTMfrrNr07DALuLhG6EaLVNVrY/PXjEzsjWdWE4ZFn0yqI0IdHNkJG7t1gePT8iztHc7qnsx+oo/rDo6w== +"@expo/fingerprint@0.15.4": + version "0.15.4" + resolved "https://registry.yarnpkg.com/@expo/fingerprint/-/fingerprint-0.15.4.tgz#578bd1e1179a13313f7de682ebaaacb703b2b7ac" + integrity sha512-eYlxcrGdR2/j2M6pEDXo9zU9KXXF1vhP+V+Tl+lyY+bU8lnzrN6c637mz6Ye3em2ANy8hhUR03Raf8VsT9Ogng== dependencies: "@expo/spawn-async" "^1.7.2" arg "^5.0.2" chalk "^4.1.2" debug "^4.3.4" - find-up "^5.0.0" getenv "^2.0.0" - glob "^10.4.2" + glob "^13.0.0" ignore "^5.3.1" minimatch "^9.0.0" p-limit "^3.1.0" resolve-from "^5.0.0" semver "^7.6.0" -"@expo/image-utils@^0.7.6": - version "0.7.6" - resolved "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.7.6.tgz#b8442bef770e1c7b39997d57f666bffeeced0a7a" - integrity sha512-GKnMqC79+mo/1AFrmAcUcGfbsXXTRqOMNS1umebuevl3aaw+ztsYEFEiuNhHZW7PQ3Xs3URNT513ZxKhznDscw== - dependencies: - "@expo/spawn-async" "^1.7.2" - chalk "^4.0.0" - getenv "^2.0.0" - jimp-compact "0.16.1" - parse-png "^2.1.0" - resolve-from "^5.0.0" - semver "^7.6.0" - temp-dir "~2.0.0" - unique-string "~2.0.0" - -"@expo/image-utils@^0.8.7": - version "0.8.7" - resolved "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.8.7.tgz#3e765005def8a4e5533155b0042e053ebfafc9d2" - integrity sha512-SXOww4Wq3RVXLyOaXiCCuQFguCDh8mmaHBv54h/R29wGl4jRY8GEyQEx8SypV/iHt1FbzsU/X3Qbcd9afm2W2w== +"@expo/image-utils@^0.8.8": + version "0.8.8" + resolved "https://registry.yarnpkg.com/@expo/image-utils/-/image-utils-0.8.8.tgz#db5d460fd0c7101b10e9d027ffbe42f9cf115248" + integrity sha512-HHHaG4J4nKjTtVa1GG9PCh763xlETScfEyNxxOvfTRr8IKPJckjTyqSLEtdJoFNJ1vqiABEjW7tqGhqGibZLeA== dependencies: "@expo/spawn-async" "^1.7.2" chalk "^4.0.0" @@ -1591,15 +1545,15 @@ temp-dir "~2.0.0" unique-string "~2.0.0" -"@expo/json-file@^10.0.7", "@expo/json-file@~10.0.7": - version "10.0.7" - resolved "https://registry.npmjs.org/@expo/json-file/-/json-file-10.0.7.tgz#e4f58fdc03fc62f13610eeafe086d84e6e44fe01" - integrity sha512-z2OTC0XNO6riZu98EjdNHC05l51ySeTto6GP7oSQrCvQgG9ARBwD1YvMQaVZ9wU7p/4LzSf1O7tckL3B45fPpw== +"@expo/json-file@^10.0.8", "@expo/json-file@~10.0.8": + version "10.0.8" + resolved "https://registry.yarnpkg.com/@expo/json-file/-/json-file-10.0.8.tgz#05e524d1ecc0011db0a6d66b525ea2f58cfe6d43" + integrity sha512-9LOTh1PgKizD1VXfGQ88LtDH0lRwq9lsTb4aichWTWSWqy3Ugfkhfm3BhzBIkJJfQQ5iJu3m/BoRlEIjoCGcnQ== dependencies: "@babel/code-frame" "~7.10.4" json5 "^2.2.3" -"@expo/json-file@^9.1.5", "@expo/json-file@~9.1.3", "@expo/json-file@~9.1.5": +"@expo/json-file@~9.1.3": version "9.1.5" resolved "https://registry.npmjs.org/@expo/json-file/-/json-file-9.1.5.tgz#7d7b2dc4990dc2c2de69a571191aba984b7fb7ed" integrity sha512-prWBhLUlmcQtvN6Y7BpW2k9zXGd3ySa3R6rAguMJkp1z22nunLN64KYTUWfijFlprFoxm9r2VNnGkcbndAlgKA== @@ -1607,52 +1561,72 @@ "@babel/code-frame" "~7.10.4" json5 "^2.2.3" -"@expo/metro-config@0.20.17", "@expo/metro-config@~0.20.17": - version "0.20.17" - resolved "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.20.17.tgz#3be75fd6b93081c8a9f0022dcfa9e5b767334902" - integrity sha512-lpntF2UZn5bTwrPK6guUv00Xv3X9mkN3YYla+IhEHiYXWyG7WKOtDU0U4KR8h3ubkZ6SPH3snDyRyAzMsWtZFA== +"@expo/metro-config@54.0.11", "@expo/metro-config@~54.0.11": + version "54.0.11" + resolved "https://registry.yarnpkg.com/@expo/metro-config/-/metro-config-54.0.11.tgz#a4fa797f288a9ec037cdd5139956a9fcfa8fb3d8" + integrity sha512-Bmht6VW9w6Wk49EFqkMzYpICV++Q3Kuqh2KygjH/e5mj/9wHSCWLkmJYmUn0XaOo4bm6BwOp/hO3r5YNKP3AeQ== dependencies: + "@babel/code-frame" "^7.20.0" "@babel/core" "^7.20.0" "@babel/generator" "^7.20.5" - "@babel/parser" "^7.20.0" - "@babel/types" "^7.20.0" - "@expo/config" "~11.0.12" - "@expo/env" "~1.0.7" - "@expo/json-file" "~9.1.5" + "@expo/config" "~12.0.12" + "@expo/env" "~2.0.8" + "@expo/json-file" "~10.0.8" + "@expo/metro" "~54.1.0" "@expo/spawn-async" "^1.7.2" + browserslist "^4.25.0" chalk "^4.1.0" debug "^4.3.2" dotenv "~16.4.5" dotenv-expand "~11.0.6" getenv "^2.0.0" - glob "^10.4.2" + glob "^13.0.0" + hermes-parser "^0.29.1" jsc-safe-url "^0.2.4" - lightningcss "~1.27.0" + lightningcss "^1.30.1" minimatch "^9.0.0" postcss "~8.4.32" resolve-from "^5.0.0" -"@expo/osascript@^2.2.5": - version "2.3.7" - resolved "https://registry.npmjs.org/@expo/osascript/-/osascript-2.3.7.tgz#2d53ef06733593405c83767de7420510736e0fa9" - integrity sha512-IClSOXxR0YUFxIriUJVqyYki7lLMIHrrzOaP01yxAL1G8pj2DWV5eW1y5jSzIcIfSCNhtGsshGd1tU/AYup5iQ== +"@expo/metro@~54.1.0": + version "54.1.0" + resolved "https://registry.yarnpkg.com/@expo/metro/-/metro-54.1.0.tgz#27765ef2c342c39086a2f5c9f932a375dc2ccad3" + integrity sha512-MgdeRNT/LH0v1wcO0TZp9Qn8zEF0X2ACI0wliPtv5kXVbXWI+yK9GyrstwLAiTXlULKVIg3HVSCCvmLu0M3tnw== + dependencies: + metro "0.83.2" + metro-babel-transformer "0.83.2" + metro-cache "0.83.2" + metro-cache-key "0.83.2" + metro-config "0.83.2" + metro-core "0.83.2" + metro-file-map "0.83.2" + metro-resolver "0.83.2" + metro-runtime "0.83.2" + metro-source-map "0.83.2" + metro-transform-plugins "0.83.2" + metro-transform-worker "0.83.2" + +"@expo/osascript@^2.3.8": + version "2.3.8" + resolved "https://registry.yarnpkg.com/@expo/osascript/-/osascript-2.3.8.tgz#6b376f09650e6476991f707356be54b5ea53d89e" + integrity sha512-/TuOZvSG7Nn0I8c+FcEaoHeBO07yu6vwDgk7rZVvAXoeAK5rkA09jRyjYsZo+0tMEFaToBeywA6pj50Mb3ny9w== dependencies: "@expo/spawn-async" "^1.7.2" exec-async "^2.2.0" -"@expo/package-manager@^1.8.6": - version "1.9.8" - resolved "https://registry.npmjs.org/@expo/package-manager/-/package-manager-1.9.8.tgz#8f6b46a2f5f4bf4f2c78507b1a7a368e0c2e2126" - integrity sha512-4/I6OWquKXYnzo38pkISHCOCOXxfeEmu4uDoERq1Ei/9Ur/s9y3kLbAamEkitUkDC7gHk1INxRWEfFNzGbmOrA== +"@expo/package-manager@^1.9.9": + version "1.9.9" + resolved "https://registry.yarnpkg.com/@expo/package-manager/-/package-manager-1.9.9.tgz#dd030d2bccebd095e02bfb6976852afaddcd122a" + integrity sha512-Nv5THOwXzPprMJwbnXU01iXSrCp3vJqly9M4EJ2GkKko9Ifer2ucpg7x6OUsE09/lw+npaoUnHMXwkw7gcKxlg== dependencies: - "@expo/json-file" "^10.0.7" + "@expo/json-file" "^10.0.8" "@expo/spawn-async" "^1.7.2" chalk "^4.0.0" npm-package-arg "^11.0.0" ora "^3.4.0" resolve-workspace-root "^2.0.0" -"@expo/plist@^0.3.3", "@expo/plist@^0.3.5": +"@expo/plist@^0.3.3": version "0.3.5" resolved "https://registry.npmjs.org/@expo/plist/-/plist-0.3.5.tgz#11913c64951936101529cb26d7260ef16970fc31" integrity sha512-9RYVU1iGyCJ7vWfg3e7c/NVyMFs8wbl+dMWZphtFtsqyN9zppGREU3ctlD3i8KUE0sCUTVnLjCWr+VeUIDep2g== @@ -1661,35 +1635,35 @@ base64-js "^1.2.3" xmlbuilder "^15.1.1" -"@expo/plist@^0.4.7": - version "0.4.7" - resolved "https://registry.npmjs.org/@expo/plist/-/plist-0.4.7.tgz#40fa796e93d5be0452ce72e5110e69c8ac915403" - integrity sha512-dGxqHPvCZKeRKDU1sJZMmuyVtcASuSYh1LPFVaM1DuffqPL36n6FMEL0iUqq2Tx3xhWk8wCnWl34IKplUjJDdA== +"@expo/plist@^0.4.8": + version "0.4.8" + resolved "https://registry.yarnpkg.com/@expo/plist/-/plist-0.4.8.tgz#e014511a4a5008cf2b832b91caa8e9f2704127cc" + integrity sha512-pfNtErGGzzRwHP+5+RqswzPDKkZrx+Cli0mzjQaus1ZWFsog5ibL+nVT3NcporW51o8ggnt7x813vtRbPiyOrQ== dependencies: "@xmldom/xmldom" "^0.8.8" base64-js "^1.2.3" xmlbuilder "^15.1.1" -"@expo/prebuild-config@^9.0.10", "@expo/prebuild-config@^9.0.12": - version "9.0.12" - resolved "https://registry.npmjs.org/@expo/prebuild-config/-/prebuild-config-9.0.12.tgz#ee009b6b4e01ce93f90726f58b084016d2e820a3" - integrity sha512-AKH5Scf+gEMgGxZZaimrJI2wlUJlRoqzDNn7/rkhZa5gUTnO4l6slKak2YdaH+nXlOWCNfAQWa76NnpQIfmv6Q== - dependencies: - "@expo/config" "~11.0.13" - "@expo/config-plugins" "~10.1.2" - "@expo/config-types" "^53.0.5" - "@expo/image-utils" "^0.7.6" - "@expo/json-file" "^9.1.5" - "@react-native/normalize-colors" "0.79.6" +"@expo/prebuild-config@^54.0.7": + version "54.0.7" + resolved "https://registry.yarnpkg.com/@expo/prebuild-config/-/prebuild-config-54.0.7.tgz#b8b0769baca750495abc936c00670a5e37a1780d" + integrity sha512-cKqBsiwcFFzpDWgtvemrCqJULJRLDLKo2QMF74NusoGNpfPI3vQVry1iwnYLeGht02AeD3dvfhpqBczD3wchxA== + dependencies: + "@expo/config" "~12.0.11" + "@expo/config-plugins" "~54.0.3" + "@expo/config-types" "^54.0.9" + "@expo/image-utils" "^0.8.8" + "@expo/json-file" "^10.0.8" + "@react-native/normalize-colors" "0.81.5" debug "^4.3.1" resolve-from "^5.0.0" semver "^7.6.0" xml2js "0.6.0" -"@expo/schema-utils@^0.1.0": - version "0.1.7" - resolved "https://registry.npmjs.org/@expo/schema-utils/-/schema-utils-0.1.7.tgz#38baa0effa0823cd4eca3f05e5eee3bde311da12" - integrity sha512-jWHoSuwRb5ZczjahrychMJ3GWZu54jK9ulNdh1d4OzAEq672K9E5yOlnlBsfIHWHGzUAT+0CL7Yt1INiXTz68g== +"@expo/schema-utils@^0.1.8": + version "0.1.8" + resolved "https://registry.yarnpkg.com/@expo/schema-utils/-/schema-utils-0.1.8.tgz#8b9543d77fc4ac4954196e3fa00f8fcedd71426a" + integrity sha512-9I6ZqvnAvKKDiO+ZF8BpQQFYWXOJvTAL5L/227RUbWG1OVZDInFifzCBiqAZ3b67NRfeAgpgvbA7rejsqhY62A== "@expo/sdk-runtime-versions@^1.0.0": version "1.0.0" @@ -1708,10 +1682,10 @@ resolved "https://registry.npmjs.org/@expo/sudo-prompt/-/sudo-prompt-9.3.2.tgz#0fd2813402a42988e49145cab220e25bea74b308" integrity sha512-HHQigo3rQWKMDzYDLkubN5WQOYXJJE2eNqIQC2axC2iO3mHdwnIR7FgZVvHWtBwAdzBgAP0ECp8KqS8TiMKvgw== -"@expo/vector-icons@^14.0.0": - version "14.1.0" - resolved "https://registry.npmjs.org/@expo/vector-icons/-/vector-icons-14.1.0.tgz#d3dddad8b6ea60502e0fe5485b86751827606ce4" - integrity sha512-7T09UE9h8QDTsUeMGymB4i+iqvtEeaO5VvUjryFB4tugDTG/bkzViWA74hm5pfjjDEhYMXWaX112mcvhccmIwQ== +"@expo/vector-icons@^15.0.3": + version "15.0.3" + resolved "https://registry.yarnpkg.com/@expo/vector-icons/-/vector-icons-15.0.3.tgz#12c38d4e6cc927dd0500e4591ac00672a8909748" + integrity sha512-SBUyYKphmlfUBqxSfDdJ3jAdEVSALS2VUPOUyqn48oZmb2TL/O7t7/PQm5v4NQujYEPLPMTLn9KVw6H7twwbTA== "@expo/ws-tunnel@^1.0.1": version "1.0.6" @@ -2816,6 +2790,18 @@ resolved "https://registry.npmjs.org/@invertase/react-native-apple-authentication/-/react-native-apple-authentication-2.2.2.tgz#1d3b6d22ba1fab8ef8a285396acdbf0778ab071b" integrity sha512-uNZcUn9WbAQP5zSOFXI1+kEUokLwZG9imUulFdt5t22CU2ozGq6zyPm+BAVVg8D5eUUXduX/dJFhbuOpJxiEhQ== +"@isaacs/balanced-match@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz#3081dadbc3460661b751e7591d7faea5df39dd29" + integrity sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ== + +"@isaacs/brace-expansion@^5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz#4b3dabab7d8e75a429414a96bd67bf4c1d13e0f3" + integrity sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA== + dependencies: + "@isaacs/balanced-match" "^4.0.1" + "@isaacs/cliui@^8.0.2": version "8.0.2" resolved "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" @@ -3223,10 +3209,10 @@ dependencies: "@react-hook/latest" "^1.0.2" -"@react-native-async-storage/async-storage@2.1.2": - version "2.1.2" - resolved "https://registry.npmjs.org/@react-native-async-storage/async-storage/-/async-storage-2.1.2.tgz#8aae432adfc20800308e2ef3ce380864f0f9def8" - integrity sha512-dvlNq4AlGWC+ehtH12p65+17V0Dx7IecOWl6WanF2ja38O1Dcjjvn7jVzkUHJ5oWkQBlyASurTPlTHgKXyYiow== +"@react-native-async-storage/async-storage@2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@react-native-async-storage/async-storage/-/async-storage-2.2.0.tgz#a3aa565253e46286655560172f4e366e8969f5ad" + integrity sha512-gvRvjR5JAaUZF8tv2Kcq/Gbt3JHwbKFYfmb445rhOj6NUMx3qPLixmDx5pZAyb9at1bYvJ4/eTUipU5aki45xw== dependencies: merge-options "^3.0.4" @@ -3445,10 +3431,10 @@ resolved "https://registry.npmjs.org/@react-native-google-signin/google-signin/-/google-signin-12.2.1.tgz#242247ab18ea7bb3a1dcabb50df7ad236f104294" integrity sha512-qt2Cb+bN2NS8BBT06M3UbLVS1gaSYTenNh4uZtPNmyJC23xZAynLkuhvsC6gmeEnxcj0wLVUn1Es+LSHw0OhVQ== -"@react-native/assets-registry@0.79.6": - version "0.79.6" - resolved "https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.79.6.tgz#cecc2a1140a9584d590000b951a08a0611ec30c3" - integrity sha512-UVSP1224PWg0X+mRlZNftV5xQwZGfawhivuW8fGgxNK9MS/U84xZ+16lkqcPh1ank6MOt239lIWHQ1S33CHgqA== +"@react-native/assets-registry@0.81.5": + version "0.81.5" + resolved "https://registry.yarnpkg.com/@react-native/assets-registry/-/assets-registry-0.81.5.tgz#d22c924fa6f6d4a463c5af34ce91f38756c0fa7d" + integrity sha512-705B6x/5Kxm1RKRvSv0ADYWm5JOnoiQ1ufW7h8uu2E6G9Of/eE6hP/Ivw3U5jI16ERqZxiKQwk34VJbB0niX9w== "@react-native/assets-registry@0.82.1": version "0.82.1" @@ -3463,13 +3449,13 @@ "@babel/traverse" "^7.25.3" "@react-native/codegen" "0.79.5" -"@react-native/babel-plugin-codegen@0.79.6": - version "0.79.6" - resolved "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.79.6.tgz#2e86024a649072268b03b28da8555f9c81bdb51b" - integrity sha512-CS5OrgcMPixOyUJ/Sk/HSsKsKgyKT5P7y3CojimOQzWqRZBmoQfxdST4ugj7n1H+ebM2IKqbgovApFbqXsoX0g== +"@react-native/babel-plugin-codegen@0.81.5": + version "0.81.5" + resolved "https://registry.yarnpkg.com/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.81.5.tgz#328d03f42c32b5a8cc2dee1aa84a7c48dddc5f18" + integrity sha512-oF71cIH6je3fSLi6VPjjC3Sgyyn57JLHXs+mHWc9MoCiJJcM4nqsS5J38zv1XQ8d3zOW2JtHro+LF0tagj2bfQ== dependencies: "@babel/traverse" "^7.25.3" - "@react-native/codegen" "0.79.6" + "@react-native/codegen" "0.81.5" "@react-native/babel-preset@0.79.5": version "0.79.5" @@ -3522,10 +3508,10 @@ babel-plugin-transform-flow-enums "^0.0.2" react-refresh "^0.14.0" -"@react-native/babel-preset@0.79.6": - version "0.79.6" - resolved "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.79.6.tgz#bc0e94a0b3403d237a60902161587ff90205835c" - integrity sha512-H+FRO+r2Ql6b5IwfE0E7D52JhkxjeGSBSUpCXAI5zQ60zSBJ54Hwh2bBJOohXWl4J+C7gKYSAd2JHMUETu+c/A== +"@react-native/babel-preset@0.81.5": + version "0.81.5" + resolved "https://registry.yarnpkg.com/@react-native/babel-preset/-/babel-preset-0.81.5.tgz#e8b7969d21f87ef4e41e603248e8a70c44b4a5bb" + integrity sha512-UoI/x/5tCmi+pZ3c1+Ypr1DaRMDLI3y+Q70pVLLVgrnC3DHsHRIbHcCHIeG/IJvoeFqFM2sTdhSOLJrf8lOPrA== dependencies: "@babel/core" "^7.25.2" "@babel/plugin-proposal-export-default-from" "^7.24.7" @@ -3568,8 +3554,8 @@ "@babel/plugin-transform-typescript" "^7.25.2" "@babel/plugin-transform-unicode-regex" "^7.24.7" "@babel/template" "^7.25.0" - "@react-native/babel-plugin-codegen" "0.79.6" - babel-plugin-syntax-hermes-parser "0.25.1" + "@react-native/babel-plugin-codegen" "0.81.5" + babel-plugin-syntax-hermes-parser "0.29.1" babel-plugin-transform-flow-enums "^0.0.2" react-refresh "^0.14.0" @@ -3584,15 +3570,15 @@ nullthrows "^1.1.1" yargs "^17.6.2" -"@react-native/codegen@0.79.6": - version "0.79.6" - resolved "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.79.6.tgz#25e9bb68ce02afcdb01b9b2b0bf8a3a7fd99bf8b" - integrity sha512-iRBX8Lgbqypwnfba7s6opeUwVyaR23mowh9ILw7EcT2oLz3RqMmjJdrbVpWhGSMGq2qkPfqAH7bhO8C7O+xfjQ== +"@react-native/codegen@0.81.5": + version "0.81.5" + resolved "https://registry.yarnpkg.com/@react-native/codegen/-/codegen-0.81.5.tgz#d4dec668c94b9d58a5c2dbdbf026db331e1b6b27" + integrity sha512-a2TDA03Up8lpSa9sh5VRGCQDXgCTOyDOFH+aqyinxp1HChG8uk89/G+nkJ9FPd0rqgi25eCTR16TWdS3b+fA6g== dependencies: "@babel/core" "^7.25.2" "@babel/parser" "^7.25.3" glob "^7.1.1" - hermes-parser "0.25.1" + hermes-parser "0.29.1" invariant "^2.2.4" nullthrows "^1.1.1" yargs "^17.6.2" @@ -3610,18 +3596,17 @@ nullthrows "^1.1.1" yargs "^17.6.2" -"@react-native/community-cli-plugin@0.79.6": - version "0.79.6" - resolved "https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.79.6.tgz#6d95bc10b0dff0150f8e971b4b0f0867b8c0c06c" - integrity sha512-ZHVst9vByGsegeaddkD2YbZ6NvYb4n3pD9H7Pit94u+NlByq2uBJghoOjT6EKqg+UVl8tLRdi88cU2pDPwdHqA== +"@react-native/community-cli-plugin@0.81.5": + version "0.81.5" + resolved "https://registry.yarnpkg.com/@react-native/community-cli-plugin/-/community-cli-plugin-0.81.5.tgz#617789cda4da419d03dda00e2a78c36188b4391e" + integrity sha512-yWRlmEOtcyvSZ4+OvqPabt+NS36vg0K/WADTQLhrYrm9qdZSuXmq8PmdJWz/68wAqKQ+4KTILiq2kjRQwnyhQw== dependencies: - "@react-native/dev-middleware" "0.79.6" - chalk "^4.0.0" - debug "^2.2.0" + "@react-native/dev-middleware" "0.81.5" + debug "^4.4.0" invariant "^2.2.4" - metro "^0.82.0" - metro-config "^0.82.0" - metro-core "^0.82.0" + metro "^0.83.1" + metro-config "^0.83.1" + metro-core "^0.83.1" semver "^7.1.3" "@react-native/community-cli-plugin@0.82.1": @@ -3637,10 +3622,10 @@ metro-core "^0.83.1" semver "^7.1.3" -"@react-native/debugger-frontend@0.79.6": - version "0.79.6" - resolved "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.79.6.tgz#ec0ea9c2f140a564d26789a18dc097519f1b9c48" - integrity sha512-lIK/KkaH7ueM22bLO0YNaQwZbT/oeqhaghOvmZacaNVbJR1Cdh/XAqjT8FgCS+7PUnbxA8B55NYNKGZG3O2pYw== +"@react-native/debugger-frontend@0.81.5": + version "0.81.5" + resolved "https://registry.yarnpkg.com/@react-native/debugger-frontend/-/debugger-frontend-0.81.5.tgz#82ece0181e9a7a3dcbdfa86cf9decd654e13f81f" + integrity sha512-bnd9FSdWKx2ncklOetCgrlwqSGhMHP2zOxObJbOWXoj7GHEmih4MKarBo5/a8gX8EfA1EwRATdfNBQ81DY+h+w== "@react-native/debugger-frontend@0.82.1": version "0.82.1" @@ -3655,17 +3640,17 @@ cross-spawn "^7.0.6" fb-dotslash "0.5.8" -"@react-native/dev-middleware@0.79.6": - version "0.79.6" - resolved "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.79.6.tgz#62a4c0b987e5d100eae3e8c95c58ae1c8abe377a" - integrity sha512-BK3GZBa9c7XSNR27EDRtxrgyyA3/mf1j3/y+mPk7Ac0Myu85YNrXnC9g3mL5Ytwo0g58TKrAIgs1fF2Q5Mn6mQ== +"@react-native/dev-middleware@0.81.5": + version "0.81.5" + resolved "https://registry.yarnpkg.com/@react-native/dev-middleware/-/dev-middleware-0.81.5.tgz#81e8ac545d7736ef6ebb2e59fdbaebc5cf9aedec" + integrity sha512-WfPfZzboYgo/TUtysuD5xyANzzfka8Ebni6RIb2wDxhb56ERi7qDrE4xGhtPsjCL4pQBXSVxyIlCy0d8I6EgGA== dependencies: "@isaacs/ttlcache" "^1.4.1" - "@react-native/debugger-frontend" "0.79.6" + "@react-native/debugger-frontend" "0.81.5" chrome-launcher "^0.15.2" chromium-edge-launcher "^0.2.0" connect "^3.6.5" - debug "^2.2.0" + debug "^4.4.0" invariant "^2.2.4" nullthrows "^1.1.1" open "^7.0.3" @@ -3713,10 +3698,10 @@ resolved "https://registry.npmjs.org/@react-native/eslint-plugin/-/eslint-plugin-0.79.5.tgz#92a2ecc72dd4c548b85d6c46f5054d97bcebeb31" integrity sha512-OUplb18Jaq524t1FYShOWr/dXyIeDsa1l1+Q2XdbdmYzxt5jarzDCP4Oj9VXikoElJwx9nh29CZ+PKNb0BQTNQ== -"@react-native/gradle-plugin@0.79.6": - version "0.79.6" - resolved "https://registry.npmjs.org/@react-native/gradle-plugin/-/gradle-plugin-0.79.6.tgz#02d996aae3df87512c2a56e1f5fefffc883c8a18" - integrity sha512-C5odetI6py3CSELeZEVz+i00M+OJuFZXYnjVD4JyvpLn462GesHRh+Se8mSkU5QSaz9cnpMnyFLJAx05dokWbA== +"@react-native/gradle-plugin@0.81.5": + version "0.81.5" + resolved "https://registry.yarnpkg.com/@react-native/gradle-plugin/-/gradle-plugin-0.81.5.tgz#a58830f38789f6254b64449a17fe57455b589d00" + integrity sha512-hORRlNBj+ReNMLo9jme3yQ6JQf4GZpVEBLxmTXGGlIL78MAezDZr5/uq9dwElSbcGmLEgeiax6e174Fie6qPLg== "@react-native/gradle-plugin@0.82.1": version "0.82.1" @@ -3728,10 +3713,10 @@ resolved "https://registry.npmjs.org/@react-native/js-polyfills/-/js-polyfills-0.79.5.tgz#61b6c43832b644669d1f00dbbaa51a079c5b9b4c" integrity sha512-a2wsFlIhvd9ZqCD5KPRsbCQmbZi6KxhRN++jrqG0FUTEV5vY7MvjjUqDILwJd2ZBZsf7uiDuClCcKqA+EEdbvw== -"@react-native/js-polyfills@0.79.6": - version "0.79.6" - resolved "https://registry.npmjs.org/@react-native/js-polyfills/-/js-polyfills-0.79.6.tgz#11dab284ace2708f0483833cfff0c9aee81274df" - integrity sha512-6wOaBh1namYj9JlCNgX2ILeGUIwc6OP6MWe3Y5jge7Xz9fVpRqWQk88Q5Y9VrAtTMTcxoX3CvhrfRr3tGtSfQw== +"@react-native/js-polyfills@0.81.5": + version "0.81.5" + resolved "https://registry.yarnpkg.com/@react-native/js-polyfills/-/js-polyfills-0.81.5.tgz#2ca68188c8fff9b951f507b1dec7efe928848274" + integrity sha512-fB7M1CMOCIUudTRuj7kzxIBTVw2KXnsgbQ6+4cbqSxo8NmRRhA0Ul4ZUzZj3rFd3VznTL4Brmocv1oiN0bWZ8w== "@react-native/js-polyfills@0.82.1": version "0.82.1" @@ -3763,10 +3748,10 @@ resolved "https://registry.npmjs.org/@react-native/normalize-color/-/normalize-color-2.1.0.tgz#939b87a9849e81687d3640c5efa2a486ac266f91" integrity sha512-Z1jQI2NpdFJCVgpY+8Dq/Bt3d+YUi1928Q+/CZm/oh66fzM0RUl54vvuXlPJKybH4pdCZey1eDTPaLHkMPNgWA== -"@react-native/normalize-colors@0.79.6": - version "0.79.6" - resolved "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.79.6.tgz#e076519b6dba9150dad7f935c1b0a64ea0a90033" - integrity sha512-0v2/ruY7eeKun4BeKu+GcfO+SHBdl0LJn4ZFzTzjHdWES0Cn+ONqKljYaIv8p9MV2Hx/kcdEvbY4lWI34jC/mQ== +"@react-native/normalize-colors@0.81.5": + version "0.81.5" + resolved "https://registry.yarnpkg.com/@react-native/normalize-colors/-/normalize-colors-0.81.5.tgz#1ca6cb6772bb7324df2b11aab35227eacd6bdfe7" + integrity sha512-0HuJ8YtqlTVRXGZuGeBejLE04wSQsibpTI+RGOyVqxZvgtlLLC/Ssw0UmbHhT4lYMp2fhdtvKZSs5emWB1zR/g== "@react-native/normalize-colors@0.82.1": version "0.82.1" @@ -3783,10 +3768,10 @@ resolved "https://registry.npmjs.org/@react-native/typescript-config/-/typescript-config-0.79.5.tgz#55159b43b99981feb1baade33c8cbfbf8fd2d395" integrity sha512-qvXPilb8G4Au4/DDM336D5CLpT6P8rzRtH2eEUjBnG8UHfRwOUylMJ0QRh95OD+7E4xSyoEdzDvKkhEF8mDRrA== -"@react-native/virtualized-lists@0.79.6": - version "0.79.6" - resolved "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.79.6.tgz#ab395e3a1edba1c8c564d3a85961f213cc164a99" - integrity sha512-khA/Hrbb+rB68YUHrLubfLgMOD9up0glJhw25UE3Kntj32YDyuO0Tqc81ryNTcCekFKJ8XrAaEjcfPg81zBGPw== +"@react-native/virtualized-lists@0.81.5": + version "0.81.5" + resolved "https://registry.yarnpkg.com/@react-native/virtualized-lists/-/virtualized-lists-0.81.5.tgz#24123fded16992d7e46ecc4ccd473be939ea8c1b" + integrity sha512-UVXgV/db25OPIvwZySeToXD/9sKKhOdkcWmmf4Jh8iBZuyfML+/5CasaZ1E7Lqg6g3uqVQq75NqIwkYmORJMPw== dependencies: invariant "^2.2.4" nullthrows "^1.1.1" @@ -4241,6 +4226,13 @@ dependencies: csstype "^3.0.2" +"@types/react@~19.1.10": + version "19.1.17" + resolved "https://registry.yarnpkg.com/@types/react/-/react-19.1.17.tgz#8be0b9c546cede389b930a98eb3fad1897f209c3" + integrity sha512-Qec1E3mhALmaspIrhWt9jkQMNdw6bReVu64mjvhbhq2NFPftLPVr+l1SZgmw/66WwBNpDh7ao5AT6gF5v41PFA== + dependencies: + csstype "^3.0.2" + "@types/semver@^7.3.12": version "7.7.1" resolved "https://registry.npmjs.org/@types/semver/-/semver-7.7.1.tgz#3ce3af1a5524ef327d2da9e4fd8b6d95c8d70528" @@ -4438,9 +4430,9 @@ "@typescript-eslint/types" "7.18.0" eslint-visitor-keys "^3.4.3" -"@ungap/structured-clone@^1.2.0": +"@ungap/structured-clone@^1.2.0", "@ungap/structured-clone@^1.3.0": version "1.3.0" - resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz#d06bbb384ebcf6c505fde1c3d0ed4ddffe0aaff8" + resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.3.0.tgz#d06bbb384ebcf6c505fde1c3d0ed4ddffe0aaff8" integrity sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g== "@urql/core@^5.0.6", "@urql/core@^5.1.2": @@ -4593,16 +4585,6 @@ ajv@6.12.3: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@8.11.0: - version "8.11.0" - resolved "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz#977e91dd96ca669f54a11e23e378e33b884a565f" - integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg== - dependencies: - fast-deep-equal "^3.1.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - uri-js "^4.2.2" - ajv@^6.12.3, ajv@^6.12.4: version "6.12.6" resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" @@ -4997,18 +4979,32 @@ babel-plugin-polyfill-regenerator@^0.6.5: dependencies: "@babel/helper-define-polyfill-provider" "^0.6.5" -babel-plugin-react-native-web@~0.19.13: - version "0.19.13" - resolved "https://registry.npmjs.org/babel-plugin-react-native-web/-/babel-plugin-react-native-web-0.19.13.tgz#bf919bd6f18c4689dd1a528a82bda507363b953d" - integrity sha512-4hHoto6xaN23LCyZgL9LJZc3olmAxd7b6jDzlZnKXAh4rRAbZRKNBJoOOdp46OBqgy+K0t0guTj5/mhA8inymQ== +babel-plugin-react-compiler@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/babel-plugin-react-compiler/-/babel-plugin-react-compiler-1.0.0.tgz#bdf7360a23a4d5ebfca090255da3893efd07425f" + integrity sha512-Ixm8tFfoKKIPYdCCKYTsqv+Fd4IJ0DQqMyEimo+pxUOMUR9cVPlwTrFt9Avu+3cb6Zp3mAzl+t1MrG2fxxKsxw== + dependencies: + "@babel/types" "^7.26.0" + +babel-plugin-react-native-web@~0.21.0: + version "0.21.2" + resolved "https://registry.yarnpkg.com/babel-plugin-react-native-web/-/babel-plugin-react-native-web-0.21.2.tgz#d2f7fd673278da82577aa583457edb55d9cccbe0" + integrity sha512-SPD0J6qjJn8231i0HZhlAGH6NORe+QvRSQM2mwQEzJ2Fb3E4ruWTiiicPlHjmeWShDXLcvoorOCXjeR7k/lyWA== -babel-plugin-syntax-hermes-parser@0.25.1, babel-plugin-syntax-hermes-parser@^0.25.1: +babel-plugin-syntax-hermes-parser@0.25.1: version "0.25.1" resolved "https://registry.npmjs.org/babel-plugin-syntax-hermes-parser/-/babel-plugin-syntax-hermes-parser-0.25.1.tgz#58b539df973427fcfbb5176a3aec7e5dee793cb0" integrity sha512-IVNpGzboFLfXZUAwkLFcI/bnqVbwky0jP3eBno4HKtqvQJAHBLdgxiG6lQ4to0+Q/YCN3PO0od5NZwIKyY4REQ== dependencies: hermes-parser "0.25.1" +babel-plugin-syntax-hermes-parser@0.29.1, babel-plugin-syntax-hermes-parser@^0.29.1: + version "0.29.1" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-hermes-parser/-/babel-plugin-syntax-hermes-parser-0.29.1.tgz#09ca9ecb0330eba1ef939b6d3f1f55bb06a9dc33" + integrity sha512-2WFYnoWGdmih1I1J5eIqxATOeycOqRwYxAQBu3cUu/rhwInwHUg7k60AFNbuGjSDL8tje5GDrAnxzRLcu2pYcA== + dependencies: + hermes-parser "0.29.1" + babel-plugin-syntax-hermes-parser@0.32.0: version "0.32.0" resolved "https://registry.npmjs.org/babel-plugin-syntax-hermes-parser/-/babel-plugin-syntax-hermes-parser-0.32.0.tgz#06f7452bf91adf6cafd7c98e7467404d4eb65cec" @@ -5072,15 +5068,16 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-private-property-in-object" "^7.14.5" "@babel/plugin-syntax-top-level-await" "^7.14.5" -babel-preset-expo@~13.2.4: - version "13.2.4" - resolved "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-13.2.4.tgz#ad31bbfc8b3169a5a61108cebdee5350feebc071" - integrity sha512-3IKORo3KR+4qtLdCkZNDj8KeA43oBn7RRQejFGWfiZgu/NeaRUSri8YwYjZqybm7hn3nmMv9OLahlvXBX23o5Q== +babel-preset-expo@~54.0.8: + version "54.0.8" + resolved "https://registry.yarnpkg.com/babel-preset-expo/-/babel-preset-expo-54.0.8.tgz#13e084fe0b8259d772037eb18ed5b10af7d34661" + integrity sha512-3ZJ4Q7uQpm8IR/C9xbKhE/IUjGpLm+OIjF8YCedLgqoe/wN1Ns2wLT7HwG6ZXXb6/rzN8IMCiKFQ2F93qlN6GA== dependencies: "@babel/helper-module-imports" "^7.25.9" "@babel/plugin-proposal-decorators" "^7.12.9" "@babel/plugin-proposal-export-default-from" "^7.24.7" "@babel/plugin-syntax-export-default-from" "^7.24.7" + "@babel/plugin-transform-class-static-block" "^7.27.1" "@babel/plugin-transform-export-namespace-from" "^7.25.9" "@babel/plugin-transform-flow-strip-types" "^7.25.2" "@babel/plugin-transform-modules-commonjs" "^7.24.8" @@ -5091,12 +5088,12 @@ babel-preset-expo@~13.2.4: "@babel/plugin-transform-runtime" "^7.24.7" "@babel/preset-react" "^7.22.15" "@babel/preset-typescript" "^7.23.0" - "@react-native/babel-preset" "0.79.6" - babel-plugin-react-native-web "~0.19.13" - babel-plugin-syntax-hermes-parser "^0.25.1" + "@react-native/babel-preset" "0.81.5" + babel-plugin-react-compiler "^1.0.0" + babel-plugin-react-native-web "~0.21.0" + babel-plugin-syntax-hermes-parser "^0.29.1" babel-plugin-transform-flow-enums "^0.0.2" debug "^4.3.4" - react-refresh "^0.14.2" resolve-from "^5.0.0" babel-preset-fbjs@^3.4.0: @@ -5150,11 +5147,6 @@ balanced-match@^1.0.0: resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -base-64@0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/base-64/-/base-64-0.1.0.tgz#780a99c84e7d600260361511c4877613bf24f6bb" - integrity sha512-Y5gU45svrR5tI2Vt/X9GPd3L0HNIKzGu202EjxrXMpuc2V2CiKgemAbUUsqYmZJvPtCXoUKjNZwBJzsNScUbXA== - base64-js@^1.2.3, base64-js@^1.3.0, base64-js@^1.3.1, base64-js@^1.5.1: version "1.5.1" resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" @@ -5165,6 +5157,11 @@ baseline-browser-mapping@^2.8.9: resolved "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.18.tgz#b44b18cadddfa037ee8440dafaba4a329dfb327c" integrity sha512-UYmTpOBwgPScZpS4A+YbapwWuBwasxvO/2IOHArSsAhL/+ZdmATBXTex3t+l2hXwLVYK382ibr/nKoY9GKe86w== +baseline-browser-mapping@^2.9.0: + version "2.9.7" + resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.9.7.tgz#d36ce64f2a2c468f6f743c8db495d319120007db" + integrity sha512-k9xFKplee6KIio3IDbwj+uaCLpqzOwakOgmqzPezM0sFJlFKcg30vk2wOiAJtkTSfx0SSQDSe8q+mWA/fSH5Zg== + bcrypt-pbkdf@^1.0.0: version "1.0.2" resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" @@ -5270,6 +5267,17 @@ browserslist@^4.24.0, browserslist@^4.26.3: node-releases "^2.0.21" update-browserslist-db "^1.1.3" +browserslist@^4.25.0: + version "4.28.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.28.1.tgz#7f534594628c53c63101079e27e40de490456a95" + integrity sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA== + dependencies: + baseline-browser-mapping "^2.9.0" + caniuse-lite "^1.0.30001759" + electron-to-chromium "^1.5.263" + node-releases "^2.0.27" + update-browserslist-db "^1.2.0" + bser@2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" @@ -5389,6 +5397,11 @@ caniuse-lite@^1.0.30001746: resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001751.tgz#dacd5d9f4baeea841641640139d2b2a4df4226ad" integrity sha512-A0QJhug0Ly64Ii3eIqHu5X51ebln3k4yTUkY1j8drqpWHVreg/VLijN48cZ1bYPiqOQuqpkIKnzr/Ul8V+p6Cw== +caniuse-lite@^1.0.30001759: + version "1.0.30001760" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001760.tgz#bdd1960fafedf8d5f04ff16e81460506ff9b798f" + integrity sha512-7AAMPcueWELt1p3mi13HR/LHH0TJLT11cnwDJEs3xA4+CK/PLKeO9Kl1oru24htkyUKtkGCvAx4ohB0Ttry8Dw== + canvaskit-wasm@0.40.0: version "0.40.0" resolved "https://registry.npmjs.org/canvaskit-wasm/-/canvaskit-wasm-0.40.0.tgz#61a77657259fddfc0025ad1c3f57ac8d4d5850ff" @@ -6215,7 +6228,7 @@ debounce@^1.2.0: resolved "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5" integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug== -debug@2.6.9, debug@^2.2.0, debug@^2.6.9: +debug@2.6.9, debug@^2.6.9: version "2.6.9" resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== @@ -6405,10 +6418,10 @@ detect-indent@^6.0.0: resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== -detect-libc@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== +detect-libc@^2.0.3: + version "2.1.2" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.1.2.tgz#689c5dcdc1900ef5583a4cb9f6d7b473742074ad" + integrity sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ== detect-newline@^3.0.0: version "3.1.0" @@ -6538,6 +6551,11 @@ electron-to-chromium@^1.5.227: resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.237.tgz#eacf61cef3f6345d0069ab427585c5a04d7084f0" integrity sha512-icUt1NvfhGLar5lSWH3tHNzablaA5js3HVHacQimfP8ViEBOQv+L7DKEuHdbTZ0SKCO1ogTJTIL1Gwk9S6Qvcg== +electron-to-chromium@^1.5.263: + version "1.5.267" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.267.tgz#5d84f2df8cdb6bfe7e873706bb21bd4bfb574dc7" + integrity sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw== + emittery@^0.13.1: version "0.13.1" resolved "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad" @@ -6979,7 +6997,7 @@ etag@~1.8.1: resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== -event-target-shim@^5.0.0, event-target-shim@^5.0.1: +event-target-shim@^5.0.0: version "5.0.1" resolved "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== @@ -7030,178 +7048,154 @@ expect@^29.7.0: jest-message-util "^29.7.0" jest-util "^29.7.0" -expo-application@~6.1.5: - version "6.1.5" - resolved "https://registry.npmjs.org/expo-application/-/expo-application-6.1.5.tgz#78e569ed8ab237c9bae67d693fec629dd447e53d" - integrity sha512-ToImFmzw8luY043pWFJhh2ZMm4IwxXoHXxNoGdlhD4Ym6+CCmkAvCglg0FK8dMLzAb+/XabmOE7Rbm8KZb6NZg== - -expo-asset@^12.0.9: - version "12.0.9" - resolved "https://registry.npmjs.org/expo-asset/-/expo-asset-12.0.9.tgz#e5b06b793bfc45a76b70a2253862351effa42e73" - integrity sha512-vrdRoyhGhBmd0nJcssTSk1Ypx3Mbn/eXaaBCQVkL0MJ8IOZpAObAjfD5CTy8+8RofcHEQdh3wwZVCs7crvfOeg== - dependencies: - "@expo/image-utils" "^0.8.7" - expo-constants "~18.0.9" - -expo-asset@~11.1.7: - version "11.1.7" - resolved "https://registry.npmjs.org/expo-asset/-/expo-asset-11.1.7.tgz#dfc61100312cc0dd394d0e0b33613bb0cc898746" - integrity sha512-b5P8GpjUh08fRCf6m5XPVAh7ra42cQrHBIMgH2UXP+xsj4Wufl6pLy6jRF5w6U7DranUMbsXm8TOyq4EHy7ADg== - dependencies: - "@expo/image-utils" "^0.7.6" - expo-constants "~17.1.7" - -expo-audio@~0.4.9: - version "0.4.9" - resolved "https://registry.npmjs.org/expo-audio/-/expo-audio-0.4.9.tgz#f15f64652785ecd416ad351bf42666315e1e0b69" - integrity sha512-J4mMYEt2mqRqqwmSsXFylMGlrNWa+MbCzGl1IZBs+smvPAMJ3Ni8fNplzCQ0I9RnRzygKhRwJNpnAVL+n4MuyA== - -expo-auth-session@~6.2.1: - version "6.2.1" - resolved "https://registry.npmjs.org/expo-auth-session/-/expo-auth-session-6.2.1.tgz#27c645575ce98508ed8a0faf2c586b04e1a1ba15" - integrity sha512-9KgqrGpW7PoNOhxJ7toofi/Dz5BU2TE4Q+ktJZsmDXLoFcNOcvBokh2+mkhG58Qvd/xJ9Z5sAt/5QoOFaPb9wA== - dependencies: - expo-application "~6.1.5" - expo-constants "~17.1.7" - expo-crypto "~14.1.5" - expo-linking "~7.1.7" - expo-web-browser "~14.2.0" +expo-application@~7.0.8: + version "7.0.8" + resolved "https://registry.yarnpkg.com/expo-application/-/expo-application-7.0.8.tgz#320af0d6c39b331456d3bc833b25763c702d23db" + integrity sha512-qFGyxk7VJbrNOQWBbE09XUuGuvkOgFS9QfToaK2FdagM2aQ+x3CvGV2DuVgl/l4ZxPgIf3b/MNh9xHpwSwn74Q== + +expo-asset@~12.0.11: + version "12.0.11" + resolved "https://registry.yarnpkg.com/expo-asset/-/expo-asset-12.0.11.tgz#f1905538f35b7e3d6f730efbc633ce596d88f16d" + integrity sha512-pnK/gQ5iritDPBeK54BV35ZpG7yeW5DtgGvJHruIXkyDT9BCoQq3i0AAxfcWG/e4eiRmTzAt5kNVYFJi48uo+A== + dependencies: + "@expo/image-utils" "^0.8.8" + expo-constants "~18.0.11" + +expo-audio@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/expo-audio/-/expo-audio-1.1.0.tgz#f13901d7dfe3df4f2931b85e3aaa569182984b25" + integrity sha512-B6SlDVQ8AHzCo8ImzO3C/5BzZ8vxULTCj9Ubx9bBSdcyDmU1DpDi0Tr4znEXOvBGn+u8eaTaPDN2a8RCAyXyXw== + +expo-auth-session@~7.0.10: + version "7.0.10" + resolved "https://registry.yarnpkg.com/expo-auth-session/-/expo-auth-session-7.0.10.tgz#37250576baf5d56f16b861fb7c387a990f8eaf45" + integrity sha512-XDnKkudvhHSKkZfJ+KkodM+anQcrxB71i+h0kKabdLa5YDXTQ81aC38KRc3TMqmnBDHAu0NpfbzEVd9WDFY3Qg== + dependencies: + expo-application "~7.0.8" + expo-constants "~18.0.11" + expo-crypto "~15.0.8" + expo-linking "~8.0.10" + expo-web-browser "~15.0.10" invariant "^2.2.4" -expo-build-properties@~0.14.8: - version "0.14.8" - resolved "https://registry.npmjs.org/expo-build-properties/-/expo-build-properties-0.14.8.tgz#03aac5eb297c1f4ad3c5b95d8bf897340104d041" - integrity sha512-GTFNZc5HaCS9RmCi6HspCe2+isleuOWt2jh7UEKHTDQ9tdvzkIoWc7U6bQO9lH3Mefk4/BcCUZD/utl7b1wdqw== +expo-build-properties@~1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/expo-build-properties/-/expo-build-properties-1.0.10.tgz#2c3fb4248f78828e952defa636635a653e3ad546" + integrity sha512-mFCZbrbrv0AP5RB151tAoRzwRJelqM7bCJzCkxpu+owOyH+p/rFC/q7H5q8B9EpVWj8etaIuszR+gKwohpmu1Q== dependencies: ajv "^8.11.0" semver "^7.6.0" -expo-constants@~17.1.7: - version "17.1.7" - resolved "https://registry.npmjs.org/expo-constants/-/expo-constants-17.1.7.tgz#35194c1cef51f1ea756333418f1e077be79a012b" - integrity sha512-byBjGsJ6T6FrLlhOBxw4EaiMXrZEn/MlUYIj/JAd+FS7ll5X/S4qVRbIimSJtdW47hXMq0zxPfJX6njtA56hHA== +expo-constants@~18.0.11, expo-constants@~18.0.12: + version "18.0.12" + resolved "https://registry.yarnpkg.com/expo-constants/-/expo-constants-18.0.12.tgz#3e67f7109ffd03eaa5514c19875a767c39f5a2ca" + integrity sha512-WzcKYMVNRRu4NcSzfIVRD5aUQFnSpTZgXFrlWmm19xJoDa4S3/PQNi6PNTBRc49xz9h8FT7HMxRKaC8lr0gflA== dependencies: - "@expo/config" "~11.0.12" - "@expo/env" "~1.0.7" + "@expo/config" "~12.0.12" + "@expo/env" "~2.0.8" -expo-constants@~18.0.9: - version "18.0.10" - resolved "https://registry.npmjs.org/expo-constants/-/expo-constants-18.0.10.tgz#92d4490d51193fc94bd40590453ce9cab4faf6fb" - integrity sha512-Rhtv+X974k0Cahmvx6p7ER5+pNhBC0XbP1lRviL2J1Xl4sT2FBaIuIxF/0I0CbhOsySf0ksqc5caFweAy9Ewiw== +expo-crypto@~15.0.8: + version "15.0.8" + resolved "https://registry.yarnpkg.com/expo-crypto/-/expo-crypto-15.0.8.tgz#339198aae149b3ccc0b44f7150d7261a3a1f5287" + integrity sha512-aF7A914TB66WIlTJvl5J6/itejfY78O7dq3ibvFltL9vnTALJ/7LYHvLT4fwmx9yUNS6ekLBtDGWivFWnj2Fcw== dependencies: - "@expo/config" "~12.0.10" - "@expo/env" "~2.0.7" + base64-js "^1.3.0" -expo-crypto@~14.1.5: - version "14.1.5" - resolved "https://registry.npmjs.org/expo-crypto/-/expo-crypto-14.1.5.tgz#1c29ddd4657d96af6358a9ecdc85a0c344c9ae0c" - integrity sha512-ZXJoUMoUeiMNEoSD4itItFFz3cKrit6YJ/BR0hjuwNC+NczbV9rorvhvmeJmrU9O2cFQHhJQQR1fjQnt45Vu4Q== +expo-dev-client@~6.0.20: + version "6.0.20" + resolved "https://registry.yarnpkg.com/expo-dev-client/-/expo-dev-client-6.0.20.tgz#d5b65974785100ae7f2538e16701fa1ef55f5fad" + integrity sha512-5XjoVlj1OxakNxy55j/AUaGPrDOlQlB6XdHLLWAw61w5ffSpUDHDnuZzKzs9xY1eIaogOqTOQaAzZ2ddBkdXLA== dependencies: - base64-js "^1.3.0" + expo-dev-launcher "6.0.20" + expo-dev-menu "7.0.18" + expo-dev-menu-interface "2.0.0" + expo-manifests "~1.0.10" + expo-updates-interface "~2.0.0" -expo-dev-client@~5.2.4: - version "5.2.4" - resolved "https://registry.npmjs.org/expo-dev-client/-/expo-dev-client-5.2.4.tgz#cdffaea81841b2903cb9585bdd1566dea275a097" - integrity sha512-s/N/nK5LPo0QZJpV4aPijxyrzV4O49S3dN8D2fljqrX2WwFZzWwFO6dX1elPbTmddxumdcpczsdUPY+Ms8g43g== - dependencies: - expo-dev-launcher "5.1.16" - expo-dev-menu "6.1.14" - expo-dev-menu-interface "1.10.0" - expo-manifests "~0.16.6" - expo-updates-interface "~1.1.0" - -expo-dev-launcher@5.1.16: - version "5.1.16" - resolved "https://registry.npmjs.org/expo-dev-launcher/-/expo-dev-launcher-5.1.16.tgz#7f2b4f73421523f1deb5c7c832e56bbf8178335f" - integrity sha512-tbCske9pvbozaEblyxoyo/97D6od9Ma4yAuyUnXtRET1CKAPKYS+c4fiZ+I3B4qtpZwN3JNFUjG3oateN0y6Hg== - dependencies: - ajv "8.11.0" - expo-dev-menu "6.1.14" - expo-manifests "~0.16.6" - resolve-from "^5.0.0" +expo-dev-launcher@6.0.20: + version "6.0.20" + resolved "https://registry.yarnpkg.com/expo-dev-launcher/-/expo-dev-launcher-6.0.20.tgz#b2ce90ff6af4c4de28bc1ea595b0b504ed9b467d" + integrity sha512-a04zHEeT9sB0L5EB38fz7sNnUKJ2Ar1pXpcyl60Ki8bXPNCs9rjY7NuYrDkP/irM8+1DklMBqHpyHiLyJ/R+EA== + dependencies: + ajv "^8.11.0" + expo-dev-menu "7.0.18" + expo-manifests "~1.0.10" -expo-dev-menu-interface@1.10.0: - version "1.10.0" - resolved "https://registry.npmjs.org/expo-dev-menu-interface/-/expo-dev-menu-interface-1.10.0.tgz#04671bda3c163d1d7b9438ce7095c3913a3f53f9" - integrity sha512-NxtM/qot5Rh2cY333iOE87dDg1S8CibW+Wu4WdLua3UMjy81pXYzAGCZGNOeY7k9GpNFqDPNDXWyBSlk9r2pBg== +expo-dev-menu-interface@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/expo-dev-menu-interface/-/expo-dev-menu-interface-2.0.0.tgz#c0d6db65eb4abc44a2701bc2303744619ad05ca6" + integrity sha512-BvAMPt6x+vyXpThsyjjOYyjwfjREV4OOpQkZ0tNl+nGpsPfcY9mc6DRACoWnH9KpLzyIt3BOgh3cuy/h/OxQjw== -expo-dev-menu@6.1.14: - version "6.1.14" - resolved "https://registry.npmjs.org/expo-dev-menu/-/expo-dev-menu-6.1.14.tgz#c2ee13d0af2c335d47ca5057b080dcd594a40291" - integrity sha512-yonNMg2GHJZtuisVowdl1iQjZfYP85r1D1IO+ar9D9zlrBPBJhq2XEju52jd1rDmDkmDuEhBSbPNhzIcsBNiPg== +expo-dev-menu@7.0.18: + version "7.0.18" + resolved "https://registry.yarnpkg.com/expo-dev-menu/-/expo-dev-menu-7.0.18.tgz#4f3e2dc20b82fc495afb602301b83fa16430f6b8" + integrity sha512-4kTdlHrnZCAWCT6tZRQHSSjZ7vECFisL4T+nsG/GJDo/jcHNaOVGV5qPV9wzlTxyMk3YOPggRw4+g7Ownrg5eA== dependencies: - expo-dev-menu-interface "1.10.0" + expo-dev-menu-interface "2.0.0" -expo-file-system@^19.0.17: - version "19.0.17" - resolved "https://registry.npmjs.org/expo-file-system/-/expo-file-system-19.0.17.tgz#2555c05c26a19038d005f281b11dbda9722d0c0d" - integrity sha512-WwaS01SUFrxBnExn87pg0sCTJjZpf2KAOzfImG0o8yhkU7fbYpihpl/oocXBEsNbj58a8hVt1Y4CVV5c1tzu/g== +expo-file-system@~19.0.21: + version "19.0.21" + resolved "https://registry.yarnpkg.com/expo-file-system/-/expo-file-system-19.0.21.tgz#e96a68107fb629cf0dd1906fe7b46b566ff13e10" + integrity sha512-s3DlrDdiscBHtab/6W1osrjGL+C2bvoInPJD7sOwmxfJ5Woynv2oc+Fz1/xVXaE/V7HE/+xrHC/H45tu6lZzzg== -expo-file-system@~18.1.11: - version "18.1.11" - resolved "https://registry.npmjs.org/expo-file-system/-/expo-file-system-18.1.11.tgz#a563c715c4bb5c18729d6d104e8c6cdfbd383e69" - integrity sha512-HJw/m0nVOKeqeRjPjGdvm+zBi5/NxcdPf8M8P3G2JFvH5Z8vBWqVDic2O58jnT1OFEy0XXzoH9UqFu7cHg9DTQ== - -expo-font@~13.3.2: - version "13.3.2" - resolved "https://registry.npmjs.org/expo-font/-/expo-font-13.3.2.tgz#1b5a1a14d6827a48a3f003577d5f7dc6b344a1d3" - integrity sha512-wUlMdpqURmQ/CNKK/+BIHkDA5nGjMqNlYmW0pJFXY/KE/OG80Qcavdu2sHsL4efAIiNGvYdBS10WztuQYU4X0A== +expo-font@~14.0.10: + version "14.0.10" + resolved "https://registry.yarnpkg.com/expo-font/-/expo-font-14.0.10.tgz#33fb9f6dc5661729192a6bc8cd6f08bd1a9097cc" + integrity sha512-UqyNaaLKRpj4pKAP4HZSLnuDQqueaO5tB1c/NWu5vh1/LF9ulItyyg2kF/IpeOp0DeOLk0GY0HrIXaKUMrwB+Q== dependencies: fontfaceobserver "^2.1.0" -expo-image@2.4.1: - version "2.4.1" - resolved "https://registry.npmjs.org/expo-image/-/expo-image-2.4.1.tgz#c3f84795e33ea98d833fc4dad11ad750ea290b3e" - integrity sha512-yHp0Cy4ylOYyLR21CcH6i70DeRyLRPc0yAIPFPn4BT/BpkJNaX5QMXDppcHa58t4WI3Bb8QRJRLuAQaeCtDF8A== +expo-image@3.0.11: + version "3.0.11" + resolved "https://registry.yarnpkg.com/expo-image/-/expo-image-3.0.11.tgz#54195565dc710e632c10414c3609deebb7149ac5" + integrity sha512-4TudfUCLgYgENv+f48omnU8tjS2S0Pd9EaON5/s1ZUBRwZ7K8acEr4NfvLPSaeXvxW24iLAiyQ7sV7BXQH3RoA== expo-json-utils@~0.15.0: version "0.15.0" resolved "https://registry.npmjs.org/expo-json-utils/-/expo-json-utils-0.15.0.tgz#6723574814b9e6b0a90e4e23662be76123ab6ae9" integrity sha512-duRT6oGl80IDzH2LD2yEFWNwGIC2WkozsB6HF3cDYNoNNdUvFk6uN3YiwsTsqVM/D0z6LEAQ01/SlYvN+Fw0JQ== -expo-keep-awake@~14.1.4: - version "14.1.4" - resolved "https://registry.npmjs.org/expo-keep-awake/-/expo-keep-awake-14.1.4.tgz#80197728563e0e17523e5a606fbd6fbed9639503" - integrity sha512-wU9qOnosy4+U4z/o4h8W9PjPvcFMfZXrlUoKTMBW7F4pLqhkkP/5G4EviPZixv4XWFMjn1ExQ5rV6BX8GwJsWA== +expo-keep-awake@~15.0.8: + version "15.0.8" + resolved "https://registry.yarnpkg.com/expo-keep-awake/-/expo-keep-awake-15.0.8.tgz#911c5effeba9baff2ccde79ef0ff5bf856215f8d" + integrity sha512-YK9M1VrnoH1vLJiQzChZgzDvVimVoriibiDIFLbQMpjYBnvyfUeHJcin/Gx1a+XgupNXy92EQJLgI/9ZuXajYQ== expo-key-event@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/expo-key-event/-/expo-key-event-1.4.0.tgz#c15da54ad1b9e2f940551346f2efad19b3e26d2f" integrity sha512-XE/NvVx+PFzXV6Mp5uJ3irli4e7hqdnIEykG308Mr0k/vJlMDb4GtJ2jwTQ0HOiL5a3Igc/iuJn721w1ONKpWA== -expo-linking@~7.1.7: - version "7.1.7" - resolved "https://registry.npmjs.org/expo-linking/-/expo-linking-7.1.7.tgz#8e41ef1ca5d1190dfc01b7f4dbc4c3993bdc4523" - integrity sha512-ZJaH1RIch2G/M3hx2QJdlrKbYFUTOjVVW4g39hfxrE5bPX9xhZUYXqxqQtzMNl1ylAevw9JkgEfWbBWddbZ3UA== +expo-linking@~8.0.10: + version "8.0.10" + resolved "https://registry.yarnpkg.com/expo-linking/-/expo-linking-8.0.10.tgz#9108dabf97085ea93fa5036d64143bb07ffc553d" + integrity sha512-0EKtn4Sk6OYmb/5ZqK8riO0k1Ic+wyT3xExbmDvUYhT7p/cKqlVUExMuOIAt3Cx3KUUU1WCgGmdd493W/D5XjA== dependencies: - expo-constants "~17.1.7" + expo-constants "~18.0.11" invariant "^2.2.4" -expo-manifests@~0.16.6: - version "0.16.6" - resolved "https://registry.npmjs.org/expo-manifests/-/expo-manifests-0.16.6.tgz#a0e5b3225ee032999eac8408337494f464603209" - integrity sha512-1A+do6/mLUWF9xd3uCrlXr9QFDbjbfqAYmUy8UDLOjof1lMrOhyeC4Yi6WexA/A8dhZEpIxSMCKfn7G4aHAh4w== +expo-manifests@~1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/expo-manifests/-/expo-manifests-1.0.10.tgz#5dfb3db1cdf6b46fee349f1d68a25edf5e087994" + integrity sha512-oxDUnURPcL4ZsOBY6X1DGWGuoZgVAFzp6PISWV7lPP2J0r8u1/ucuChBgpK7u1eLGFp6sDIPwXyEUCkI386XSQ== dependencies: - "@expo/config" "~11.0.12" + "@expo/config" "~12.0.11" expo-json-utils "~0.15.0" -expo-modules-autolinking@2.1.14: - version "2.1.14" - resolved "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-2.1.14.tgz#4b4afddefba1a8b6fec0bf795cf6fe52c81343d1" - integrity sha512-nT5ERXwc+0ZT/pozDoJjYZyUQu5RnXMk9jDGm5lg+PiKvsrCTSA/2/eftJGMxLkTjVI2MXp5WjSz3JRjbA7UXA== +expo-modules-autolinking@3.0.23: + version "3.0.23" + resolved "https://registry.yarnpkg.com/expo-modules-autolinking/-/expo-modules-autolinking-3.0.23.tgz#1b4349476d4c75b4f2dcefe716ff28c6746aa6ed" + integrity sha512-YZnaE0G+52xftjH5nsIRaWsoVBY38SQCECclpdgLisdbRY/6Mzo7ndokjauOv3mpFmzMZACHyJNu1YSAffQwTg== dependencies: "@expo/spawn-async" "^1.7.2" chalk "^4.1.0" commander "^7.2.0" - find-up "^5.0.0" - glob "^10.4.2" require-from-string "^2.0.2" resolve-from "^5.0.0" -expo-modules-core@2.5.0: - version "2.5.0" - resolved "https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-2.5.0.tgz#cc098607c9b0665e0cbd0a423c9542253caab58a" - integrity sha512-aIbQxZE2vdCKsolQUl6Q9Farlf8tjh/ROR4hfN1qT7QBGPl1XrJGnaOKkcgYaGrlzCPg/7IBe0Np67GzKMZKKQ== +expo-modules-core@3.0.29: + version "3.0.29" + resolved "https://registry.yarnpkg.com/expo-modules-core/-/expo-modules-core-3.0.29.tgz#99287eba52f21784bcb2e4f4edd4fc4c21b5b265" + integrity sha512-LzipcjGqk8gvkrOUf7O2mejNWugPkf3lmd9GkqL9WuNyeN2fRwU0Dn77e3ZUKI3k6sI+DNwjkq4Nu9fNN9WS7Q== dependencies: invariant "^2.2.4" @@ -7212,44 +7206,53 @@ expo-plugin-ios-static-libraries@^1.0.4: dependencies: "@expo/config-plugins" "^9.0.0" -expo-splash-screen@~0.30.10: - version "0.30.10" - resolved "https://registry.npmjs.org/expo-splash-screen/-/expo-splash-screen-0.30.10.tgz#d249d350f867b6513fa34a9c4cf6545260ab5208" - integrity sha512-Tt9va/sLENQDQYeOQ6cdLdGvTZ644KR3YG9aRlnpcs2/beYjOX1LHT510EGzVN9ljUTg+1ebEo5GGt2arYtPjw== +expo-server@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/expo-server/-/expo-server-1.0.5.tgz#2d52002199a2af99c2c8771d0657916004345ca9" + integrity sha512-IGR++flYH70rhLyeXF0Phle56/k4cee87WeQ4mamS+MkVAVP+dDlOHf2nN06Z9Y2KhU0Gp1k+y61KkghF7HdhA== + +expo-splash-screen@~31.0.12: + version "31.0.12" + resolved "https://registry.yarnpkg.com/expo-splash-screen/-/expo-splash-screen-31.0.12.tgz#917bc5ad533933fbf5788f61d3212b0aaa760a45" + integrity sha512-o466xFYh7Fld7CuBrzx5I12LONo7a4xzOSbxS+buOEObL/Wp4Xu4QhXg80ZY7puCGbJbtm7Ltjgg5olnWOU/Rg== dependencies: - "@expo/prebuild-config" "^9.0.10" + "@expo/prebuild-config" "^54.0.7" -expo-updates-interface@~1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/expo-updates-interface/-/expo-updates-interface-1.1.0.tgz#62497d4647b381da9fdb68868ed180203ae737ef" - integrity sha512-DeB+fRe0hUDPZhpJ4X4bFMAItatFBUPjw/TVSbJsaf3Exeami+2qbbJhWkcTMoYHOB73nOIcaYcWXYJnCJXO0w== +expo-updates-interface@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/expo-updates-interface/-/expo-updates-interface-2.0.0.tgz#7721cb64c37bcb46b23827b2717ef451a9378749" + integrity sha512-pTzAIufEZdVPKql6iMi5ylVSPqV1qbEopz9G6TSECQmnNde2nwq42PxdFBaUEd8IZJ/fdJLQnOT3m6+XJ5s7jg== -expo-web-browser@~14.2.0: - version "14.2.0" - resolved "https://registry.npmjs.org/expo-web-browser/-/expo-web-browser-14.2.0.tgz#d8fb521ae349aebbf5c0ca32448877480124c06c" - integrity sha512-6S51d8pVlDRDsgGAp8BPpwnxtyKiMWEFdezNz+5jVIyT+ctReW42uxnjRgtsdn5sXaqzhaX+Tzk/CWaKCyC0hw== +expo-web-browser@~15.0.10: + version "15.0.10" + resolved "https://registry.yarnpkg.com/expo-web-browser/-/expo-web-browser-15.0.10.tgz#ee7fb59b4f143f262c13c020433a83444181f1a3" + integrity sha512-fvDhW4bhmXAeWFNFiInmsGCK83PAqAcQaFyp/3pE/jbdKmFKoRCWr46uZGIfN4msLK/OODhaQ/+US7GSJNDHJg== -expo@53.0.23: - version "53.0.23" - resolved "https://registry.npmjs.org/expo/-/expo-53.0.23.tgz#b6fd102ac74537d86f99e87bd26a254a1b560b9b" - integrity sha512-6TOLuNCP3AsSkXBJA5W6U/7wpZUop3Q6BxHMtRD2OOgT7CCPvnYgJdnTzqU+gD1hMfcryD8Ejq9RdHbLduXohg== +expo@54.0.29: + version "54.0.29" + resolved "https://registry.yarnpkg.com/expo/-/expo-54.0.29.tgz#c685e152b72883ab77c685b1dcd7bfa8dbf57a08" + integrity sha512-9C90gyOzV83y2S3XzCbRDCuKYNaiyCzuP9ketv46acHCEZn+QTamPK/DobdghoSiofCmlfoaiD6/SzfxDiHMnw== dependencies: "@babel/runtime" "^7.20.0" - "@expo/cli" "0.24.22" - "@expo/config" "~11.0.13" - "@expo/config-plugins" "~10.1.2" - "@expo/fingerprint" "0.13.4" - "@expo/metro-config" "0.20.17" - "@expo/vector-icons" "^14.0.0" - babel-preset-expo "~13.2.4" - expo-asset "~11.1.7" - expo-constants "~17.1.7" - expo-file-system "~18.1.11" - expo-font "~13.3.2" - expo-keep-awake "~14.1.4" - expo-modules-autolinking "2.1.14" - expo-modules-core "2.5.0" - react-native-edge-to-edge "1.6.0" + "@expo/cli" "54.0.19" + "@expo/config" "~12.0.12" + "@expo/config-plugins" "~54.0.4" + "@expo/devtools" "0.1.8" + "@expo/fingerprint" "0.15.4" + "@expo/metro" "~54.1.0" + "@expo/metro-config" "54.0.11" + "@expo/vector-icons" "^15.0.3" + "@ungap/structured-clone" "^1.3.0" + babel-preset-expo "~54.0.8" + expo-asset "~12.0.11" + expo-constants "~18.0.12" + expo-file-system "~19.0.21" + expo-font "~14.0.10" + expo-keep-awake "~15.0.8" + expo-modules-autolinking "3.0.23" + expo-modules-core "3.0.29" + pretty-format "^29.7.0" + react-refresh "^0.14.2" whatwg-url-without-unicode "8.0.0-3" exponential-backoff@^3.1.1: @@ -7367,6 +7370,11 @@ fbjs@^3.0.0: setimmediate "^1.0.5" ua-parser-js "^1.0.35" +fdir@^6.5.0: + version "6.5.0" + resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.5.0.tgz#ed2ab967a331ade62f18d077dae192684d50d350" + integrity sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg== + fetch-blob@^3.1.2, fetch-blob@^3.1.4: version "3.2.0" resolved "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9" @@ -7749,19 +7757,7 @@ glob-parent@^6.0.2: dependencies: is-glob "^4.0.3" -glob@7.0.6: - version "7.0.6" - resolved "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz#211bafaf49e525b8cd93260d14ab136152b3f57a" - integrity sha512-f8c0rE8JiCxpa52kWPAOa3ZaYEnzofDzCQLCn3Vdk0Z5OVLq3BsRFJI4S4ykpeVW6QMGBUkMeUpoEgWnMTnw5Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.2" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^10.3.10, glob@^10.4.2: +glob@^10.4.2: version "10.4.5" resolved "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz#f4d9f0b90ffdbab09c9d77f5f29b4262517b0956" integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg== @@ -7773,6 +7769,15 @@ glob@^10.3.10, glob@^10.4.2: package-json-from-dist "^1.0.0" path-scurry "^1.11.1" +glob@^13.0.0: + version "13.0.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-13.0.0.tgz#9d9233a4a274fc28ef7adce5508b7ef6237a1be3" + integrity sha512-tvZgpqk6fz4BaNZ66ZsRaZnbHvP/jG3uKJvAZOwEVUL4RTA5nJeeLYfyN9/VA8NX/V3IBG+hkeuGpKjvELkVhA== + dependencies: + minimatch "^10.1.1" + minipass "^7.1.2" + path-scurry "^2.0.0" + glob@^7.1.1, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: version "7.2.3" resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" @@ -7986,7 +7991,7 @@ hermes-parser@0.25.1: dependencies: hermes-estree "0.25.1" -hermes-parser@0.29.1: +hermes-parser@0.29.1, hermes-parser@^0.29.1: version "0.29.1" resolved "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.29.1.tgz#436b24bcd7bb1e71f92a04c396ccc0716c288d56" integrity sha512-xBHWmUtRC5e/UL0tI7Ivt2riA/YBq9+SiYFU7C1oBa/j2jYGlIF9043oak1F47ihuDIxQ5nbsKueYJDRY02UgA== @@ -9364,73 +9369,79 @@ lighthouse-logger@^1.0.0: debug "^2.6.9" marky "^1.2.2" -lightningcss-darwin-arm64@1.27.0: - version "1.27.0" - resolved "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.27.0.tgz#565bd610533941cba648a70e105987578d82f996" - integrity sha512-Gl/lqIXY+d+ySmMbgDf0pgaWSqrWYxVHoc88q+Vhf2YNzZ8DwoRzGt5NZDVqqIW5ScpSnmmjcgXP87Dn2ylSSQ== - -lightningcss-darwin-x64@1.27.0: - version "1.27.0" - resolved "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.27.0.tgz#c906a267237b1c7fe08bff6c5ac032c099bc9482" - integrity sha512-0+mZa54IlcNAoQS9E0+niovhyjjQWEMrwW0p2sSdLRhLDc8LMQ/b67z7+B5q4VmjYCMSfnFi3djAAQFIDuj/Tg== - -lightningcss-freebsd-x64@1.27.0: - version "1.27.0" - resolved "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.27.0.tgz#a7c3c4d6ee18dffeb8fa69f14f8f9267f7dc0c34" - integrity sha512-n1sEf85fePoU2aDN2PzYjoI8gbBqnmLGEhKq7q0DKLj0UTVmOTwDC7PtLcy/zFxzASTSBlVQYJUhwIStQMIpRA== - -lightningcss-linux-arm-gnueabihf@1.27.0: - version "1.27.0" - resolved "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.27.0.tgz#c7c16432a571ec877bf734fe500e4a43d48c2814" - integrity sha512-MUMRmtdRkOkd5z3h986HOuNBD1c2lq2BSQA1Jg88d9I7bmPGx08bwGcnB75dvr17CwxjxD6XPi3Qh8ArmKFqCA== - -lightningcss-linux-arm64-gnu@1.27.0: - version "1.27.0" - resolved "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.27.0.tgz#cfd9e18df1cd65131da286ddacfa3aee6862a752" - integrity sha512-cPsxo1QEWq2sfKkSq2Bq5feQDHdUEwgtA9KaB27J5AX22+l4l0ptgjMZZtYtUnteBofjee+0oW1wQ1guv04a7A== - -lightningcss-linux-arm64-musl@1.27.0: - version "1.27.0" - resolved "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.27.0.tgz#6682ff6b9165acef9a6796bd9127a8e1247bb0ed" - integrity sha512-rCGBm2ax7kQ9pBSeITfCW9XSVF69VX+fm5DIpvDZQl4NnQoMQyRwhZQm9pd59m8leZ1IesRqWk2v/DntMo26lg== - -lightningcss-linux-x64-gnu@1.27.0: - version "1.27.0" - resolved "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.27.0.tgz#714221212ad184ddfe974bbb7dbe9300dfde4bc0" - integrity sha512-Dk/jovSI7qqhJDiUibvaikNKI2x6kWPN79AQiD/E/KeQWMjdGe9kw51RAgoWFDi0coP4jinaH14Nrt/J8z3U4A== - -lightningcss-linux-x64-musl@1.27.0: - version "1.27.0" - resolved "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.27.0.tgz#247958daf622a030a6dc2285afa16b7184bdf21e" - integrity sha512-QKjTxXm8A9s6v9Tg3Fk0gscCQA1t/HMoF7Woy1u68wCk5kS4fR+q3vXa1p3++REW784cRAtkYKrPy6JKibrEZA== - -lightningcss-win32-arm64-msvc@1.27.0: - version "1.27.0" - resolved "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.27.0.tgz#64cfe473c264ef5dc275a4d57a516d77fcac6bc9" - integrity sha512-/wXegPS1hnhkeG4OXQKEMQeJd48RDC3qdh+OA8pCuOPCyvnm/yEayrJdJVqzBsqpy1aJklRCVxscpFur80o6iQ== - -lightningcss-win32-x64-msvc@1.27.0: - version "1.27.0" - resolved "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.27.0.tgz#237d0dc87d9cdc9cf82536bcbc07426fa9f3f422" - integrity sha512-/OJLj94Zm/waZShL8nB5jsNj3CfNATLCTyFxZyouilfTmSoLDX7VlVAmhPHoZWVFp4vdmoiEbPEYC8HID3m6yw== - -lightningcss@~1.27.0: - version "1.27.0" - resolved "https://registry.npmjs.org/lightningcss/-/lightningcss-1.27.0.tgz#d4608e63044343836dd9769f6c8b5d607867649a" - integrity sha512-8f7aNmS1+etYSLHht0fQApPc2kNO8qGRutifN5rVIc6Xo6ABsEbqOr758UwI7ALVbTt4x1fllKt0PYgzD9S3yQ== - dependencies: - detect-libc "^1.0.3" +lightningcss-android-arm64@1.30.2: + version "1.30.2" + resolved "https://registry.yarnpkg.com/lightningcss-android-arm64/-/lightningcss-android-arm64-1.30.2.tgz#6966b7024d39c94994008b548b71ab360eb3a307" + integrity sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A== + +lightningcss-darwin-arm64@1.30.2: + version "1.30.2" + resolved "https://registry.yarnpkg.com/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.2.tgz#a5fa946d27c029e48c7ff929e6e724a7de46eb2c" + integrity sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA== + +lightningcss-darwin-x64@1.30.2: + version "1.30.2" + resolved "https://registry.yarnpkg.com/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.2.tgz#5ce87e9cd7c4f2dcc1b713f5e8ee185c88d9b7cd" + integrity sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ== + +lightningcss-freebsd-x64@1.30.2: + version "1.30.2" + resolved "https://registry.yarnpkg.com/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.2.tgz#6ae1d5e773c97961df5cff57b851807ef33692a5" + integrity sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA== + +lightningcss-linux-arm-gnueabihf@1.30.2: + version "1.30.2" + resolved "https://registry.yarnpkg.com/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.2.tgz#62c489610c0424151a6121fa99d77731536cdaeb" + integrity sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA== + +lightningcss-linux-arm64-gnu@1.30.2: + version "1.30.2" + resolved "https://registry.yarnpkg.com/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.2.tgz#2a3661b56fe95a0cafae90be026fe0590d089298" + integrity sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A== + +lightningcss-linux-arm64-musl@1.30.2: + version "1.30.2" + resolved "https://registry.yarnpkg.com/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.2.tgz#d7ddd6b26959245e026bc1ad9eb6aa983aa90e6b" + integrity sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA== + +lightningcss-linux-x64-gnu@1.30.2: + version "1.30.2" + resolved "https://registry.yarnpkg.com/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.30.2.tgz#5a89814c8e63213a5965c3d166dff83c36152b1a" + integrity sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w== + +lightningcss-linux-x64-musl@1.30.2: + version "1.30.2" + resolved "https://registry.yarnpkg.com/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.30.2.tgz#808c2e91ce0bf5d0af0e867c6152e5378c049728" + integrity sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA== + +lightningcss-win32-arm64-msvc@1.30.2: + version "1.30.2" + resolved "https://registry.yarnpkg.com/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.2.tgz#ab4a8a8a2e6a82a4531e8bbb6bf0ff161ee6625a" + integrity sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ== + +lightningcss-win32-x64-msvc@1.30.2: + version "1.30.2" + resolved "https://registry.yarnpkg.com/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.2.tgz#f01f382c8e0a27e1c018b0bee316d210eac43b6e" + integrity sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw== + +lightningcss@^1.30.1: + version "1.30.2" + resolved "https://registry.yarnpkg.com/lightningcss/-/lightningcss-1.30.2.tgz#4ade295f25d140f487d37256f4cd40dc607696d0" + integrity sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ== + dependencies: + detect-libc "^2.0.3" optionalDependencies: - lightningcss-darwin-arm64 "1.27.0" - lightningcss-darwin-x64 "1.27.0" - lightningcss-freebsd-x64 "1.27.0" - lightningcss-linux-arm-gnueabihf "1.27.0" - lightningcss-linux-arm64-gnu "1.27.0" - lightningcss-linux-arm64-musl "1.27.0" - lightningcss-linux-x64-gnu "1.27.0" - lightningcss-linux-x64-musl "1.27.0" - lightningcss-win32-arm64-msvc "1.27.0" - lightningcss-win32-x64-msvc "1.27.0" + lightningcss-android-arm64 "1.30.2" + lightningcss-darwin-arm64 "1.30.2" + lightningcss-darwin-x64 "1.30.2" + lightningcss-freebsd-x64 "1.30.2" + lightningcss-linux-arm-gnueabihf "1.30.2" + lightningcss-linux-arm64-gnu "1.30.2" + lightningcss-linux-arm64-musl "1.30.2" + lightningcss-linux-x64-gnu "1.30.2" + lightningcss-linux-x64-musl "1.30.2" + lightningcss-win32-arm64-msvc "1.30.2" + lightningcss-win32-x64-msvc "1.30.2" lines-and-columns@^1.1.6: version "1.2.4" @@ -9578,10 +9589,10 @@ loose-envify@^1.0.0, loose-envify@^1.4.0: dependencies: js-tokens "^3.0.0 || ^4.0.0" -lottie-react-native@7.2.2: - version "7.2.2" - resolved "https://registry.npmjs.org/lottie-react-native/-/lottie-react-native-7.2.2.tgz#f328526dba9a36ba8c908aed9d3f68a8d3e0ec41" - integrity sha512-pp3dnFVFZlfZzIL5qKGXju2d6RfnYhPbb8xQL9dYqvPbPy2EbnK2aFlv6jAZLYh0QjUGPEmRAgAAnsOOtT+H9Q== +lottie-react-native@~7.3.1: + version "7.3.4" + resolved "https://registry.yarnpkg.com/lottie-react-native/-/lottie-react-native-7.3.4.tgz#774bc028e2b93dd88cd87ab84ac51a1c3e015cad" + integrity sha512-XUh7eGFb7ID8JRdU6U4N4cYQeYmjtdQRvd8ZXJ6xrdSsn5gZD0c79ITOREPcwJg4YupBFHgyV1GXdAHQP+KYUQ== lower-case-first@^2.0.2: version "2.0.2" @@ -9602,6 +9613,11 @@ lru-cache@^10.0.1, lru-cache@^10.2.0: resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== +lru-cache@^11.0.0: + version "11.2.4" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-11.2.4.tgz#ecb523ebb0e6f4d837c807ad1abaea8e0619770d" + integrity sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg== + lru-cache@^4.0.1: version "4.1.5" resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" @@ -9738,6 +9754,16 @@ metro-babel-transformer@0.82.5: hermes-parser "0.29.1" nullthrows "^1.1.1" +metro-babel-transformer@0.83.2: + version "0.83.2" + resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.83.2.tgz#d3885f2a266f01e43f16bdcfb786b1d8f1598f56" + integrity sha512-rirY1QMFlA1uxH3ZiNauBninwTioOgwChnRdDcbB4tgRZ+bGX9DiXoh9QdpppiaVKXdJsII932OwWXGGV4+Nlw== + dependencies: + "@babel/core" "^7.25.2" + flow-enums-runtime "^0.0.6" + hermes-parser "0.32.0" + nullthrows "^1.1.1" + metro-babel-transformer@0.83.3: version "0.83.3" resolved "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.83.3.tgz#d8c134615530c9ee61364526d44ca4bb0c5343ea" @@ -9755,6 +9781,13 @@ metro-cache-key@0.82.5: dependencies: flow-enums-runtime "^0.0.6" +metro-cache-key@0.83.2: + version "0.83.2" + resolved "https://registry.yarnpkg.com/metro-cache-key/-/metro-cache-key-0.83.2.tgz#b34427fdafe551d567ac312f8a3c7e334a20f796" + integrity sha512-3EMG/GkGKYoTaf5RqguGLSWRqGTwO7NQ0qXKmNBjr0y6qD9s3VBXYlwB+MszGtmOKsqE9q3FPrE5Nd9Ipv7rZw== + dependencies: + flow-enums-runtime "^0.0.6" + metro-cache-key@0.83.3: version "0.83.3" resolved "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.83.3.tgz#ae6c5d4eb1ad8d06a92bf7294ca730a8d880b573" @@ -9772,6 +9805,16 @@ metro-cache@0.82.5: https-proxy-agent "^7.0.5" metro-core "0.82.5" +metro-cache@0.83.2: + version "0.83.2" + resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.83.2.tgz#d647d9253312801b19c4930be586c60976244540" + integrity sha512-Z43IodutUZeIS7OTH+yQFjc59QlFJ6s5OvM8p2AP9alr0+F8UKr8ADzFzoGKoHefZSKGa4bJx7MZJLF6GwPDHQ== + dependencies: + exponential-backoff "^3.1.1" + flow-enums-runtime "^0.0.6" + https-proxy-agent "^7.0.5" + metro-core "0.83.2" + metro-cache@0.83.3: version "0.83.3" resolved "https://registry.npmjs.org/metro-cache/-/metro-cache-0.83.3.tgz#f1245cc48570c47d8944495e61d67f0228f10172" @@ -9796,6 +9839,20 @@ metro-config@0.82.5, metro-config@^0.82.0: metro-core "0.82.5" metro-runtime "0.82.5" +metro-config@0.83.2: + version "0.83.2" + resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.83.2.tgz#5ab5eba754c7affd0f3e44be98543aea37c9fab7" + integrity sha512-1FjCcdBe3e3D08gSSiU9u3Vtxd7alGH3x/DNFqWDFf5NouX4kLgbVloDDClr1UrLz62c0fHh2Vfr9ecmrOZp+g== + dependencies: + connect "^3.6.5" + flow-enums-runtime "^0.0.6" + jest-validate "^29.7.0" + metro "0.83.2" + metro-cache "0.83.2" + metro-core "0.83.2" + metro-runtime "0.83.2" + yaml "^2.6.1" + metro-config@0.83.3, metro-config@^0.83.1: version "0.83.3" resolved "https://registry.npmjs.org/metro-config/-/metro-config-0.83.3.tgz#a30e7a69b5cf8c4ac4c4b68b1b4c33649ae129a2" @@ -9810,7 +9867,7 @@ metro-config@0.83.3, metro-config@^0.83.1: metro-runtime "0.83.3" yaml "^2.6.1" -metro-core@0.82.5, metro-core@^0.82.0: +metro-core@0.82.5: version "0.82.5" resolved "https://registry.npmjs.org/metro-core/-/metro-core-0.82.5.tgz#fda1b2f7365e3a09055dd72ba1681f8fc1f6f492" integrity sha512-OJL18VbSw2RgtBm1f2P3J5kb892LCVJqMvslXxuxjAPex8OH7Eb8RBfgEo7VZSjgb/LOf4jhC4UFk5l5tAOHHA== @@ -9819,6 +9876,15 @@ metro-core@0.82.5, metro-core@^0.82.0: lodash.throttle "^4.1.1" metro-resolver "0.82.5" +metro-core@0.83.2: + version "0.83.2" + resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.83.2.tgz#8b6292482c8cd88bae5f56c5f4903ef7ee292631" + integrity sha512-8DRb0O82Br0IW77cNgKMLYWUkx48lWxUkvNUxVISyMkcNwE/9ywf1MYQUE88HaKwSrqne6kFgCSA/UWZoUT0Iw== + dependencies: + flow-enums-runtime "^0.0.6" + lodash.throttle "^4.1.1" + metro-resolver "0.83.2" + metro-core@0.83.3, metro-core@^0.83.1: version "0.83.3" resolved "https://registry.npmjs.org/metro-core/-/metro-core-0.83.3.tgz#007e93f7d1983777da8988dfb103ad897c9835b8" @@ -9843,6 +9909,21 @@ metro-file-map@0.82.5: nullthrows "^1.1.1" walker "^1.0.7" +metro-file-map@0.83.2: + version "0.83.2" + resolved "https://registry.yarnpkg.com/metro-file-map/-/metro-file-map-0.83.2.tgz#8f943d608f27216fde8dd91787294b5a9409752e" + integrity sha512-cMSWnEqZrp/dzZIEd7DEDdk72PXz6w5NOKriJoDN9p1TDQ5nAYrY2lHi8d6mwbcGLoSlWmpPyny9HZYFfPWcGQ== + dependencies: + debug "^4.4.0" + fb-watchman "^2.0.0" + flow-enums-runtime "^0.0.6" + graceful-fs "^4.2.4" + invariant "^2.2.4" + jest-worker "^29.7.0" + micromatch "^4.0.4" + nullthrows "^1.1.1" + walker "^1.0.7" + metro-file-map@0.83.3: version "0.83.3" resolved "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.83.3.tgz#3d79fbb1d379ab178dd895ce54cb5ecb183d74a2" @@ -9866,6 +9947,14 @@ metro-minify-terser@0.82.5: flow-enums-runtime "^0.0.6" terser "^5.15.0" +metro-minify-terser@0.83.2: + version "0.83.2" + resolved "https://registry.yarnpkg.com/metro-minify-terser/-/metro-minify-terser-0.83.2.tgz#17ea8aef987970f8505ed8f890ab00c47c419608" + integrity sha512-zvIxnh7U0JQ7vT4quasKsijId3dOAWgq+ip2jF/8TMrPUqQabGrs04L2dd0haQJ+PA+d4VvK/bPOY8X/vL2PWw== + dependencies: + flow-enums-runtime "^0.0.6" + terser "^5.15.0" + metro-minify-terser@0.83.3: version "0.83.3" resolved "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.83.3.tgz#c1c70929c86b14c8bf03e6321b4f9310bc8dbe87" @@ -9926,6 +10015,13 @@ metro-resolver@0.82.5: dependencies: flow-enums-runtime "^0.0.6" +metro-resolver@0.83.2: + version "0.83.2" + resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.83.2.tgz#d4a40a602615baacfb94d8a773e8b93eaac70d0f" + integrity sha512-Yf5mjyuiRE/Y+KvqfsZxrbHDA15NZxyfg8pIk0qg47LfAJhpMVEX+36e6ZRBq7KVBqy6VDX5Sq55iHGM4xSm7Q== + dependencies: + flow-enums-runtime "^0.0.6" + metro-resolver@0.83.3: version "0.83.3" resolved "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.83.3.tgz#06207bdddc280b9335722a8c992aeec017413942" @@ -9941,6 +10037,14 @@ metro-runtime@0.82.5, metro-runtime@^0.82.0: "@babel/runtime" "^7.25.0" flow-enums-runtime "^0.0.6" +metro-runtime@0.83.2: + version "0.83.2" + resolved "https://registry.yarnpkg.com/metro-runtime/-/metro-runtime-0.83.2.tgz#77c9715483fd3d449407435c1c160f7410c588d7" + integrity sha512-nnsPtgRvFbNKwemqs0FuyFDzXLl+ezuFsUXDbX8o0SXOfsOPijqiQrf3kuafO1Zx1aUWf4NOrKJMAQP5EEHg9A== + dependencies: + "@babel/runtime" "^7.25.0" + flow-enums-runtime "^0.0.6" + metro-runtime@0.83.3, metro-runtime@^0.83.1: version "0.83.3" resolved "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.83.3.tgz#ff504df5d93f38b1af396715b327e589ba8d184d" @@ -9949,7 +10053,7 @@ metro-runtime@0.83.3, metro-runtime@^0.83.1: "@babel/runtime" "^7.25.0" flow-enums-runtime "^0.0.6" -metro-source-map@0.82.5, metro-source-map@^0.82.0: +metro-source-map@0.82.5: version "0.82.5" resolved "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.82.5.tgz#85e2e9672bff6d6cefb3b65b96fcc69f929c69c6" integrity sha512-wH+awTOQJVkbhn2SKyaw+0cd+RVSCZ3sHVgyqJFQXIee/yLs3dZqKjjeKKhhVeudgjXo7aE/vSu/zVfcQEcUfw== @@ -9965,6 +10069,22 @@ metro-source-map@0.82.5, metro-source-map@^0.82.0: source-map "^0.5.6" vlq "^1.0.0" +metro-source-map@0.83.2: + version "0.83.2" + resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.83.2.tgz#5688eeb3fc85a1ca0f5f5efede2257a872e2b9fe" + integrity sha512-5FL/6BSQvshIKjXOennt9upFngq2lFvDakZn5LfauIVq8+L4sxXewIlSTcxAtzbtjAIaXeOSVMtCJ5DdfCt9AA== + dependencies: + "@babel/traverse" "^7.25.3" + "@babel/traverse--for-generate-function-map" "npm:@babel/traverse@^7.25.3" + "@babel/types" "^7.25.2" + flow-enums-runtime "^0.0.6" + invariant "^2.2.4" + metro-symbolicate "0.83.2" + nullthrows "^1.1.1" + ob1 "0.83.2" + source-map "^0.5.6" + vlq "^1.0.0" + metro-source-map@0.83.3, metro-source-map@^0.83.1: version "0.83.3" resolved "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.83.3.tgz#04bb464f7928ea48bcdfd18912c8607cf317c898" @@ -9993,6 +10113,18 @@ metro-symbolicate@0.82.5: source-map "^0.5.6" vlq "^1.0.0" +metro-symbolicate@0.83.2: + version "0.83.2" + resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.83.2.tgz#63a5f31cdb6db17371a00d259890643d84a75549" + integrity sha512-KoU9BLwxxED6n33KYuQQuc5bXkIxF3fSwlc3ouxrrdLWwhu64muYZNQrukkWzhVKRNFIXW7X2iM8JXpi2heIPw== + dependencies: + flow-enums-runtime "^0.0.6" + invariant "^2.2.4" + metro-source-map "0.83.2" + nullthrows "^1.1.1" + source-map "^0.5.6" + vlq "^1.0.0" + metro-symbolicate@0.83.3: version "0.83.3" resolved "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.83.3.tgz#67af03950f0dfe19a7c059e3983e39a31e95d03a" @@ -10017,6 +10149,18 @@ metro-transform-plugins@0.82.5: flow-enums-runtime "^0.0.6" nullthrows "^1.1.1" +metro-transform-plugins@0.83.2: + version "0.83.2" + resolved "https://registry.yarnpkg.com/metro-transform-plugins/-/metro-transform-plugins-0.83.2.tgz#c4353147212cad1c76dcea8fd93c7f0c7b09b3a4" + integrity sha512-5WlW25WKPkiJk2yA9d8bMuZrgW7vfA4f4MBb9ZeHbTB3eIAoNN8vS8NENgG/X/90vpTB06X66OBvxhT3nHwP6A== + dependencies: + "@babel/core" "^7.25.2" + "@babel/generator" "^7.25.0" + "@babel/template" "^7.25.0" + "@babel/traverse" "^7.25.3" + flow-enums-runtime "^0.0.6" + nullthrows "^1.1.1" + metro-transform-plugins@0.83.3: version "0.83.3" resolved "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.83.3.tgz#2c59ba841e269363cf3acb13138cb992f0c75013" @@ -10048,6 +10192,25 @@ metro-transform-worker@0.82.5: metro-transform-plugins "0.82.5" nullthrows "^1.1.1" +metro-transform-worker@0.83.2: + version "0.83.2" + resolved "https://registry.yarnpkg.com/metro-transform-worker/-/metro-transform-worker-0.83.2.tgz#f97367b6384be87ea216a97072810705c19c3775" + integrity sha512-G5DsIg+cMZ2KNfrdLnWMvtppb3+Rp1GMyj7Bvd9GgYc/8gRmvq1XVEF9XuO87Shhb03kFhGqMTgZerz3hZ1v4Q== + dependencies: + "@babel/core" "^7.25.2" + "@babel/generator" "^7.25.0" + "@babel/parser" "^7.25.3" + "@babel/types" "^7.25.2" + flow-enums-runtime "^0.0.6" + metro "0.83.2" + metro-babel-transformer "0.83.2" + metro-cache "0.83.2" + metro-cache-key "0.83.2" + metro-minify-terser "0.83.2" + metro-source-map "0.83.2" + metro-transform-plugins "0.83.2" + nullthrows "^1.1.1" + metro-transform-worker@0.83.3: version "0.83.3" resolved "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.83.3.tgz#ca6ae4a02b0f61b33299e6e56bacaba32dcd607f" @@ -10067,7 +10230,7 @@ metro-transform-worker@0.83.3: metro-transform-plugins "0.83.3" nullthrows "^1.1.1" -metro@0.82.5, metro@^0.82.0: +metro@0.82.5: version "0.82.5" resolved "https://registry.npmjs.org/metro/-/metro-0.82.5.tgz#a27fbc08dd283a14ae58496288c10adaae65f461" integrity sha512-8oAXxL7do8QckID/WZEKaIFuQJFUTLzfVcC48ghkHhNK2RGuQq8Xvf4AVd+TUA0SZtX0q8TGNXZ/eba1ckeGCg== @@ -10113,6 +10276,52 @@ metro@0.82.5, metro@^0.82.0: ws "^7.5.10" yargs "^17.6.2" +metro@0.83.2: + version "0.83.2" + resolved "https://registry.yarnpkg.com/metro/-/metro-0.83.2.tgz#a56d31a604819951c8b9cf19d570897341e29b07" + integrity sha512-HQgs9H1FyVbRptNSMy/ImchTTE5vS2MSqLoOo7hbDoBq6hPPZokwJvBMwrYSxdjQZmLXz2JFZtdvS+ZfgTc9yw== + dependencies: + "@babel/code-frame" "^7.24.7" + "@babel/core" "^7.25.2" + "@babel/generator" "^7.25.0" + "@babel/parser" "^7.25.3" + "@babel/template" "^7.25.0" + "@babel/traverse" "^7.25.3" + "@babel/types" "^7.25.2" + accepts "^1.3.7" + chalk "^4.0.0" + ci-info "^2.0.0" + connect "^3.6.5" + debug "^4.4.0" + error-stack-parser "^2.0.6" + flow-enums-runtime "^0.0.6" + graceful-fs "^4.2.4" + hermes-parser "0.32.0" + image-size "^1.0.2" + invariant "^2.2.4" + jest-worker "^29.7.0" + jsc-safe-url "^0.2.2" + lodash.throttle "^4.1.1" + metro-babel-transformer "0.83.2" + metro-cache "0.83.2" + metro-cache-key "0.83.2" + metro-config "0.83.2" + metro-core "0.83.2" + metro-file-map "0.83.2" + metro-resolver "0.83.2" + metro-runtime "0.83.2" + metro-source-map "0.83.2" + metro-symbolicate "0.83.2" + metro-transform-plugins "0.83.2" + metro-transform-worker "0.83.2" + mime-types "^2.1.27" + nullthrows "^1.1.1" + serialize-error "^2.1.0" + source-map "^0.5.6" + throat "^5.0.0" + ws "^7.5.10" + yargs "^17.6.2" + metro@0.83.3, metro@^0.83.1: version "0.83.3" resolved "https://registry.npmjs.org/metro/-/metro-0.83.3.tgz#1e7e04c15519af746f8932c7f9c553d92c39e922" @@ -10204,7 +10413,14 @@ mimic-fn@^2.1.0: resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: +minimatch@^10.1.1: + version "10.1.1" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.1.1.tgz#e6e61b9b0c1dcab116b5a7d1458e8b6ae9e73a55" + integrity sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ== + dependencies: + "@isaacs/brace-expansion" "^5.0.0" + +minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== @@ -10353,6 +10569,11 @@ node-releases@^2.0.21: resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.25.tgz#95479437bd409231e03981c1f6abee67f5e962df" integrity sha512-4auku8B/vw5psvTiiN9j1dAOsXvMoGqJuKJcR+dTdqiXEK20mMTk1UEo3HS16LeGQsVG6+qKTPM9u/qQ2LqATA== +node-releases@^2.0.27: + version "2.0.27" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.27.tgz#eedca519205cf20f650f61d56b070db111231e4e" + integrity sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA== + node-stream-zip@^1.9.1: version "1.15.0" resolved "https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.15.0.tgz#158adb88ed8004c6c49a396b50a6a5de3bca33ea" @@ -10425,6 +10646,13 @@ ob1@0.82.5: dependencies: flow-enums-runtime "^0.0.6" +ob1@0.83.2: + version "0.83.2" + resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.83.2.tgz#23c2e58b7d542fb01e627049710334d14c287cf8" + integrity sha512-XlK3w4M+dwd1g1gvHzVbxiXEbUllRONEgcF2uEO0zm4nxa0eKlh41c6N65q1xbiDOeKKda1tvNOAD33fNjyvCg== + dependencies: + flow-enums-runtime "^0.0.6" + ob1@0.83.3: version "0.83.3" resolved "https://registry.npmjs.org/ob1/-/ob1-0.83.3.tgz#2208e20c9070e9beff3ad067f2db458fa6b07014" @@ -10854,6 +11082,14 @@ path-scurry@^1.11.1: lru-cache "^10.2.0" minipass "^5.0.0 || ^6.0.2 || ^7.0.0" +path-scurry@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-2.0.1.tgz#4b6572376cfd8b811fca9cd1f5c24b3cbac0fe10" + integrity sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA== + dependencies: + lru-cache "^11.0.0" + minipass "^7.1.2" + path-to-regexp@^6.1.0: version "6.3.0" resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz#2b6a26a337737a8e1416f9272ed0766b1c0389f4" @@ -10884,6 +11120,11 @@ picomatch@^3.0.1: resolved "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz#817033161def55ec9638567a2f3bbc876b3e7516" integrity sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag== +picomatch@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.3.tgz#796c76136d1eead715db1e7bad785dedd695a042" + integrity sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q== + pirates@^4.0.1, pirates@^4.0.4: version "4.0.7" resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz#643b4a18c4257c8a65104b73f3049ce9a0a15e22" @@ -11176,7 +11417,7 @@ react-addons-shallow-compare@15.6.2: fbjs "^0.8.4" object-assign "^4.1.0" -react-devtools-core@^6.1.1, react-devtools-core@^6.1.5: +react-devtools-core@^6.1.5: version "6.1.5" resolved "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-6.1.5.tgz#c5eca79209dab853a03b2158c034c5166975feee" integrity sha512-ePrwPfxAnB+7hgnEr8vpKxL9cmnp7F322t8oqcPshbIQQhDKgFDW4tjhF2wjVbdXF9O/nyuy3sQWd9JGpiLPvA== @@ -11287,11 +11528,6 @@ react-native-draggable-flatlist@4.0.3: dependencies: "@babel/preset-typescript" "^7.17.12" -react-native-edge-to-edge@1.6.0: - version "1.6.0" - resolved "https://registry.npmjs.org/react-native-edge-to-edge/-/react-native-edge-to-edge-1.6.0.tgz#2ba63b941704a7f713e298185c26cde4d9e4b973" - integrity sha512-2WCNdE3Qd6Fwg9+4BpbATUxCLcouF6YRY7K+J36KJ4l3y+tWN6XCqAC4DuoGblAAbb2sLkhEDp4FOlbOIot2Og== - react-native-edge-to-edge@^1.7.0: version "1.7.0" resolved "https://registry.npmjs.org/react-native-edge-to-edge/-/react-native-edge-to-edge-1.7.0.tgz#6999ee86febe920b9b4e730ec1f0eaf0c28f0003" @@ -11322,10 +11558,10 @@ react-native-fresh-refresh@2.1.1: resolved "https://registry.npmjs.org/react-native-fresh-refresh/-/react-native-fresh-refresh-2.1.1.tgz#1afd80650cccfcfc2ea5106063aaade49551d91c" integrity sha512-0X9yV9xlhxrABq5ov+Ja03qV350eUPKVSle4WIE5BZJQJZhm/4YeRO8l24wpysVygi7ZTk3opVCcrb83K9ynag== -react-native-gesture-handler@2.24.0: - version "2.24.0" - resolved "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-2.24.0.tgz#b6e1f13ec9bf8dfa5f4911854b6e0d73d882a81a" - integrity sha512-ZdWyOd1C8axKJHIfYxjJKCcxjWEpUtUWgTOVY2wynbiveSQDm8X/PDyAKXSer/GOtIpjudUbACOndZXCN3vHsw== +react-native-gesture-handler@2.28.0, react-native-gesture-handler@~2.28.0: + version "2.28.0" + resolved "https://registry.yarnpkg.com/react-native-gesture-handler/-/react-native-gesture-handler-2.28.0.tgz#07fb4f5eae72f810aac3019b060d26c1835bfd0c" + integrity sha512-0msfJ1vRxXKVgTgvL+1ZOoYw3/0z1R+Ked0+udoJhyplC2jbVKIJ8Z1bzWdpQRCV3QcQ87Op0zJVE5DhKK2A0A== dependencies: "@egjs/hammerjs" "^2.0.17" hoist-non-react-statics "^3.3.0" @@ -11377,10 +11613,10 @@ react-native-modal@14.0.0-rc.1: dependencies: react-native-animatable "1.4.0" -react-native-pager-view@6.7.1: - version "6.7.1" - resolved "https://registry.npmjs.org/react-native-pager-view/-/react-native-pager-view-6.7.1.tgz#60d52dedbcc92ee7037a13287ebeed5f74e49df7" - integrity sha512-cBSr6xw4g5N7Kd3VGWcf+kmaH7iBWb0DXAf2bVo3bXkzBcBbTOmYSvc0LVLHhUPW8nEq5WjT9LCIYAzgF++EXw== +react-native-pager-view@6.9.1: + version "6.9.1" + resolved "https://registry.yarnpkg.com/react-native-pager-view/-/react-native-pager-view-6.9.1.tgz#a9e6d9323935cc2ae1d46d7816b66f76dc3eff8e" + integrity sha512-uUT0MMMbNtoSbxe9pRvdJJKEi9snjuJ3fXlZhG8F2vVMOBJVt/AFtqMPUHu9yMflmqOr08PewKzj9EPl/Yj+Gw== react-native-pan-pinch-view@2.0.0: version "2.0.0" @@ -11471,10 +11707,10 @@ react-native-svg-transformer@1.5.0: "@svgr/plugin-svgo" "^8.1.0" path-dirname "^1.0.2" -react-native-svg@15.11.2: - version "15.11.2" - resolved "https://registry.npmjs.org/react-native-svg/-/react-native-svg-15.11.2.tgz#7540e8e1eabc4dcd3b1e35ada5a1d9f1b96d37c4" - integrity sha512-+YfF72IbWQUKzCIydlijV1fLuBsQNGMT6Da2kFlo1sh+LE3BIm/2Q7AR1zAAR6L0BFLi1WaQPLfFUC9bNZpOmw== +react-native-svg@15.12.1: + version "15.12.1" + resolved "https://registry.yarnpkg.com/react-native-svg/-/react-native-svg-15.12.1.tgz#7ba756dd6a235f86a2c312a1e7911f9b0d18ad3a" + integrity sha512-vCuZJDf8a5aNC2dlMovEv4Z0jjEUET53lm/iILFnFewa15b4atjVxU6Wirm6O9y6dEsdjDZVD7Q3QM4T1wlI8g== dependencies: css-select "^5.1.0" css-tree "^1.1.3" @@ -11516,10 +11752,10 @@ react-native-vector-icons@10.2.0: prop-types "^15.7.2" yargs "^16.1.1" -react-native-worklets@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/react-native-worklets/-/react-native-worklets-0.6.1.tgz#daa56dea896c7bdcead064b675ef341ac1f41029" - integrity sha512-URca8l7c7Uog7gv4mcg9KILdJlnbvwdS5yfXQYf5TDkD2W1VY1sduEKrD+sA3lUPXH/TG1vmXAvNxCNwPMYgGg== +react-native-worklets@0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/react-native-worklets/-/react-native-worklets-0.5.1.tgz#d153242655e3757b6c62a474768831157316ad33" + integrity sha512-lJG6Uk9YuojjEX/tQrCbcbmpdLCSFxDK1rJlkDhgqkVi1KZzG7cdcBFQRqyNOOzR9Y0CXNuldmtWTGOyM0k0+w== dependencies: "@babel/plugin-transform-arrow-functions" "^7.0.0-0" "@babel/plugin-transform-class-properties" "^7.0.0-0" @@ -11579,42 +11815,40 @@ react-native@*: ws "^6.2.3" yargs "^17.6.2" -react-native@0.79.6: - version "0.79.6" - resolved "https://registry.npmjs.org/react-native/-/react-native-0.79.6.tgz#ee95428f67da2f62ede473eaa6e8a2f4ee40e272" - integrity sha512-kvIWSmf4QPfY41HC25TR285N7Fv0Pyn3DAEK8qRL9dA35usSaxsJkHfw+VqnonqJjXOaoKCEanwudRAJ60TBGA== +react-native@0.81.5: + version "0.81.5" + resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.81.5.tgz#6c963f137d3979b22aef2d8482067775c8fe2fed" + integrity sha512-1w+/oSjEXZjMqsIvmkCRsOc8UBYv163bTWKTI8+1mxztvQPhCRYGTvZ/PL1w16xXHneIj/SLGfxWg2GWN2uexw== dependencies: "@jest/create-cache-key-function" "^29.7.0" - "@react-native/assets-registry" "0.79.6" - "@react-native/codegen" "0.79.6" - "@react-native/community-cli-plugin" "0.79.6" - "@react-native/gradle-plugin" "0.79.6" - "@react-native/js-polyfills" "0.79.6" - "@react-native/normalize-colors" "0.79.6" - "@react-native/virtualized-lists" "0.79.6" + "@react-native/assets-registry" "0.81.5" + "@react-native/codegen" "0.81.5" + "@react-native/community-cli-plugin" "0.81.5" + "@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" abort-controller "^3.0.0" anser "^1.4.9" ansi-regex "^5.0.0" babel-jest "^29.7.0" - babel-plugin-syntax-hermes-parser "0.25.1" + babel-plugin-syntax-hermes-parser "0.29.1" base64-js "^1.5.1" - chalk "^4.0.0" commander "^12.0.0" - event-target-shim "^5.0.1" flow-enums-runtime "^0.0.6" glob "^7.1.1" invariant "^2.2.4" jest-environment-node "^29.7.0" memoize-one "^5.0.0" - metro-runtime "^0.82.0" - metro-source-map "^0.82.0" + metro-runtime "^0.83.1" + metro-source-map "^0.83.1" nullthrows "^1.1.1" pretty-format "^29.7.0" promise "^8.3.0" - react-devtools-core "^6.1.1" + react-devtools-core "^6.1.5" react-refresh "^0.14.0" regenerator-runtime "^0.13.2" - scheduler "0.25.0" + scheduler "0.26.0" semver "^7.1.3" stacktrace-parser "^0.1.10" whatwg-fetch "^3.0.0" @@ -11658,10 +11892,10 @@ react-test-renderer@19.0.0: react-is "^19.0.0" scheduler "^0.25.0" -react@19.0.0: - version "19.0.0" - resolved "https://registry.npmjs.org/react/-/react-19.0.0.tgz#6e1969251b9f108870aa4bff37a0ce9ddfaaabdd" - integrity sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ== +react@19.1.0: + version "19.1.0" + resolved "https://registry.yarnpkg.com/react/-/react-19.1.0.tgz#926864b6c48da7627f004795d6cce50e90793b75" + integrity sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg== readable-stream@^3.4.0: version "3.6.2" @@ -12020,14 +12254,6 @@ rn-color-matrices@^4.1.0: dependencies: clamp "^1.0.1" -rn-fetch-blob@0.12.0: - version "0.12.0" - resolved "https://registry.npmjs.org/rn-fetch-blob/-/rn-fetch-blob-0.12.0.tgz#ec610d2f9b3f1065556b58ab9c106eeb256f3cba" - integrity sha512-+QnR7AsJ14zqpVVUbzbtAjq0iI8c9tCg49tIoKO2ezjzRunN7YL6zFSFSWZm6d+mE/l9r+OeDM3jmb2tBb2WbA== - dependencies: - base-64 "0.1.0" - glob "7.0.6" - rn-placeholder@3.0.3: version "3.0.3" resolved "https://registry.npmjs.org/rn-placeholder/-/rn-placeholder-3.0.3.tgz#98f635b263ee003af2a984eed32d86ade308df35" @@ -12095,16 +12321,16 @@ sax@>=0.6.0: resolved "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz#44cc8988377f126304d3b3fc1010c733b929ef0f" integrity sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg== -scheduler@0.25.0, scheduler@^0.25.0: - version "0.25.0" - resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0.tgz#336cd9768e8cceebf52d3c80e3dcf5de23e7e015" - integrity sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA== - scheduler@0.26.0: version "0.26.0" resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz#4ce8a8c2a2095f13ea11bf9a445be50c555d6337" integrity sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA== +scheduler@^0.25.0: + version "0.25.0" + resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0.tgz#336cd9768e8cceebf52d3c80e3dcf5de23e7e015" + integrity sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA== + scuid@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/scuid/-/scuid-1.1.0.tgz#d3f9f920956e737a60f72d0e4ad280bf324d5dab" @@ -12754,17 +12980,17 @@ subscriptions-transport-ws@0.11.0: symbol-observable "^1.0.4" ws "^5.2.0 || ^6.0.0 || ^7.0.0" -sucrase@3.35.0: - version "3.35.0" - resolved "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz#57f17a3d7e19b36d8995f06679d121be914ae263" - integrity sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA== +sucrase@~3.35.1: + version "3.35.1" + resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.35.1.tgz#4619ea50393fe8bd0ae5071c26abd9b2e346bfe1" + integrity sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw== dependencies: "@jridgewell/gen-mapping" "^0.3.2" commander "^4.0.0" - glob "^10.3.10" lines-and-columns "^1.1.6" mz "^2.7.0" pirates "^4.0.1" + tinyglobby "^0.2.11" ts-interface-checker "^0.1.9" superstruct@^2.0.2: @@ -12865,10 +13091,10 @@ sync-fetch@0.6.0-2: timeout-signal "^2.0.0" whatwg-mimetype "^4.0.0" -tar@^7.4.3: - version "7.5.1" - resolved "https://registry.npmjs.org/tar/-/tar-7.5.1.tgz#750a8bd63b7c44c1848e7bf982260a083cf747c9" - integrity sha512-nlGpxf+hv0v7GkWBK2V9spgactGOp0qvfWRxUMjqHyzrt3SgwE48DIv/FhqPHJYLHpgW1opq3nERbz5Anq7n1g== +tar@^7.5.2: + version "7.5.2" + resolved "https://registry.yarnpkg.com/tar/-/tar-7.5.2.tgz#115c061495ec51ff3c6745ff8f6d0871c5b1dedc" + integrity sha512-7NyxrTE4Anh8km8iEy7o0QYPs+0JKBTj5ZaqHg6B39erLg0qYXN3BijtShwbsNSvQ+LN75+KV+C4QR/f6Gwnpg== dependencies: "@isaacs/fs-minipass" "^4.0.0" chownr "^3.0.0" @@ -12952,6 +13178,14 @@ tinycolor2@1.6.0: resolved "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz#f98007460169b0263b97072c5ae92484ce02d09e" integrity sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw== +tinyglobby@^0.2.11: + version "0.2.15" + resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.15.tgz#e228dd1e638cea993d2fdb4fcd2d4602a79951c2" + integrity sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ== + dependencies: + fdir "^6.5.0" + picomatch "^4.0.3" + title-case@^3.0.3: version "3.0.3" resolved "https://registry.npmjs.org/title-case/-/title-case-3.0.3.tgz#bc689b46f02e411f1d1e1d081f7c3deca0489982" @@ -13230,10 +13464,10 @@ typeorm@0.2.45: yargs "^17.0.1" zen-observable-ts "^1.0.0" -typescript@~5.8.3: - version "5.8.3" - resolved "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz#92f8a3e5e3cf497356f4178c34cd65a7f5e8440e" - integrity sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ== +typescript@~5.9.2: + version "5.9.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f" + integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== ua-parser-js@^0.7.30: version "0.7.41" @@ -13345,6 +13579,14 @@ update-browserslist-db@^1.1.3: escalade "^3.2.0" picocolors "^1.1.1" +update-browserslist-db@^1.2.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.2.2.tgz#cfb4358afa08b3d5731a2ecd95eebf4ddef8033e" + integrity sha512-E85pfNzMQ9jpKkA7+TJAi4TJN+tBCuWh5rUcS/sv6cFi+1q9LYDwDI5dpUL0u/73EElyQ8d3TEaeW4sPedBqYA== + dependencies: + escalade "^3.2.0" + picocolors "^1.1.1" + upper-case-first@^2.0.2: version "2.0.2" resolved "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz#992c3273f882abd19d1e02894cc147117f844324" From 8c9ad1a5eb3380ffd2c403ed22fb5bfe3ed27e25 Mon Sep 17 00:00:00 2001 From: Daniel Salinas Date: Sun, 14 Dec 2025 09:55:33 -0500 Subject: [PATCH 2/2] Move to material design icons, clean up some old stale options --- coderules.md | 1 - package.json | 6 +- src/application/NavIcons.ts | 66 ----- .../campaign/AddScenarioResultView/index.tsx | 18 +- .../campaign/CampaignDetailView/index.tsx | 9 - .../campaign/CampaignScenarioButton.tsx | 2 +- .../campaign/MyDecksSelectorDialog/index.tsx | 2 +- .../campaign/NewCampaignView/index.tsx | 12 +- src/components/campaign/actions.ts | 4 +- .../CampaignLogComponent/index.tsx | 4 +- .../campaignguide/InvestigatorButton.tsx | 2 +- .../campaignguide/NarrationWrapper.tsx | 6 +- .../campaignguide/prompts/ActionButton.tsx | 2 +- .../ChooseInvestigatorPrompt/index.tsx | 4 +- .../withCampaignGuideContext.tsx | 2 - .../withScenarioGuideContext.tsx | 2 - src/components/card/CardInvestigatorsView.tsx | 17 -- src/components/card/DbCardDetailSwipeView.tsx | 19 +- src/components/card/FetchCardsGate.tsx | 4 +- src/components/card/withFetchCardsGate.tsx | 2 - .../ControlComponent/ShuffleButton.tsx | 2 +- src/components/core/CardSectionHeader.tsx | 4 +- src/components/core/NavButton.tsx | 2 +- src/components/core/PickerStyleButton.tsx | 4 +- src/components/core/PlusMinusButtons.tsx | 2 +- src/components/core/withApolloGate.tsx | 2 - src/components/core/withLoginState/index.tsx | 2 - .../DeckChartsView/ChartIconComponent.tsx | 7 +- .../deck/NewDeckOptionsDialog/index.tsx | 2 +- src/components/deck/controls/DeckButton.tsx | 7 +- .../filter/CardFilterView/index.tsx | 12 - src/components/filter/PackFilterView.tsx | 15 +- src/components/nav/helper.tsx | 1 - .../auth/ArkhamCardsLoginButton.tsx | 2 +- src/components/settings/BackupView.tsx | 2 +- .../settings/CollectionEditView.tsx | 15 +- .../MergeBackupView/CampaignMergeSection.tsx | 2 +- .../MergeBackupView/DeckMergeSection.tsx | 2 +- .../settings/MergeBackupView/index.tsx | 12 +- src/components/settings/ReleaseNotesView.tsx | 8 +- src/components/settings/SettingsItem.tsx | 2 +- src/data/hooks.ts | 2 +- src/data/remote/apollo.ts | 4 +- src/data/scenario/CampaignGuide.ts | 8 +- src/data/scenario/ScenarioStep.tsx | 4 +- src/data/sqlite/DatabaseProvider.tsx | 239 ++++++++---------- src/icons/AgesIcon.ts | 2 +- src/icons/AliceIcon.ts | 2 +- src/icons/AppIcon.ts | 2 +- src/icons/ArkhamButtonIcon.tsx | 2 +- src/icons/ArkhamIcon.ts | 22 +- src/icons/CarcosaIcon.ts | 2 +- src/icons/CardIcon.ts | 2 +- src/icons/CircleIcon.ts | 2 +- src/icons/CircusExMortisIcon.ts | 2 +- src/icons/CoreSetIcon.ts | 2 +- src/icons/CyclopeanIcon.tsx | 2 +- src/icons/DarkMatterIcon.ts | 2 +- src/icons/DreamEatersIcon.ts | 2 +- src/icons/DrownedIcon.ts | 2 +- src/icons/DunwichIcon.ts | 2 +- src/icons/EdgeIcon.ts | 2 +- src/icons/ForgottenIcon.ts | 2 +- src/icons/HemlockIcon.ts | 2 +- src/icons/InnsmouthIcon.ts | 2 +- src/icons/OzIcon.ts | 2 +- src/icons/ScarletIcon.ts | 2 +- src/icons/StandaloneIcon.ts | 2 +- src/icons/TokenIcon.ts | 2 +- src/navigation/AppNavigator.tsx | 16 +- src/reducers/campaigns.ts | 12 +- src/reducers/deckEdits.ts | 10 +- yarn.lock | 100 ++++++-- 73 files changed, 306 insertions(+), 446 deletions(-) delete mode 100644 src/application/NavIcons.ts diff --git a/coderules.md b/coderules.md index 5b6886152..0f55d4017 100644 --- a/coderules.md +++ b/coderules.md @@ -41,5 +41,4 @@ Steps for replacing Navigation.push: ## Project Structure Notes - Navigation types are in `src/navigation/types.ts` -- Custom icons are in the `iconsMap` from `@app/NavIcons` - Theme colors are in `COLORS` from `@styles/colors` \ No newline at end of file diff --git a/package.json b/package.json index 3325aaa05..e7e5b1387 100644 --- a/package.json +++ b/package.json @@ -70,6 +70,10 @@ "@react-native-firebase/database": "^23.4.1", "@react-native-firebase/functions": "^23.4.1", "@react-native-google-signin/google-signin": "12.2.1", + "@react-native-vector-icons/common": "^12.4.0", + "@react-native-vector-icons/icomoon": "^12.3.0", + "@react-native-vector-icons/material-design-icons": "^12.4.0", + "@react-native-vector-icons/material-icons": "^12.4.0", "@react-navigation/bottom-tabs": "^7.4.7", "@react-navigation/native": "^7.1.17", "@react-navigation/native-stack": "^7.3.26", @@ -149,7 +153,6 @@ "react-native-table-component": "^1.2.2", "react-native-toast-message": "^2.2.1", "react-native-uuid": "2.0.3", - "react-native-vector-icons": "10.2.0", "react-native-worklets": "0.5.1", "react-native-zoom-view": "1.0.2", "react-redux": "8.1.3", @@ -204,7 +207,6 @@ "@types/react": "~19.1.10", "@types/react-native-flip-card": "3.5.4", "@types/react-native-keep-awake": "2.0.5", - "@types/react-native-vector-icons": "6.4.16", "@types/react-test-renderer": "^19.0.0", "@types/throttle-debounce": "5.0.1", "@types/tinycolor2": "^1.4.5", diff --git a/src/application/NavIcons.ts b/src/application/NavIcons.ts deleted file mode 100644 index 100848d20..000000000 --- a/src/application/NavIcons.ts +++ /dev/null @@ -1,66 +0,0 @@ -import { forEach, keys, map } from 'lodash'; -import { Platform } from 'react-native'; - -import AppIcon from '@icons/AppIcon'; -import ArkhamIcon, { ArkhamSlimIcon } from '@icons/ArkhamIcon'; -import MaterialIcons from 'react-native-vector-icons/MaterialIcons'; -import MaterialCommunityIcons from 'react-native-vector-icons/MaterialCommunityIcons'; -import COLORS from '@styles/colors'; -import { Icon } from 'react-native-vector-icons/Icon'; - -const icons: { - [iconName: string]: [number, string, typeof Icon]; -} = { - elder_sign: [30, COLORS.M, ArkhamIcon], - intellect: [26, COLORS.M, ArkhamIcon], - per_investigator: [24, COLORS.M, ArkhamSlimIcon], - auto_fail: [24, COLORS.M, ArkhamIcon], - cultist: [24, COLORS.M, ArkhamIcon], - edit: [Platform.OS === 'android' ? 30 : 32, COLORS.M, AppIcon], - tune: [32, COLORS.M, AppIcon], - dismiss: [32, COLORS.M, AppIcon], - undo: [32, COLORS.M, AppIcon], - 'arrow-up-bold': [26, COLORS.M, MaterialCommunityIcons], - 'arrow-left': [30, COLORS.M, MaterialCommunityIcons], - 'chevron-left': [40, COLORS.M, MaterialCommunityIcons], - 'chevron-right': [40, COLORS.M, MaterialCommunityIcons], - filter: [30, COLORS.M, AppIcon], - sort: [30, COLORS.M, AppIcon], - 'arrow-back': [24, '#000', MaterialIcons], - menu: [32, COLORS.M, AppIcon], - 'plus-button': [32, COLORS.M, AppIcon], - deck: [32, COLORS.M, AppIcon], - wild: [28, COLORS.M, ArkhamIcon], - flip_card: [32, COLORS.M, AppIcon], - share: [32, COLORS.M, AppIcon], - world: [32, COLORS.M, AppIcon], - book: [28, COLORS.M, AppIcon], - log: [28, COLORS.M, AppIcon], - cards: [28, COLORS.M, AppIcon], - settings: [28, COLORS.M, AppIcon], - chaos_bag: [28, COLORS.M, AppIcon], -}; - -const iconsMap: { - [key: string]: number; -} = {}; - -const iconsLoaded = new Promise((resolve) => { - Promise.all( - map(icons, ([size, color, Provider], iconName) => { - return Provider.getImageSource(iconName, size, color); - }) - ).then(sources => { - forEach(keys(icons), (iconName, idx) => { - iconsMap[iconName] = sources[idx]; - }); - - // Call resolve (and we are done) - resolve(true); - }); -}); - -export { - iconsMap, - iconsLoaded, -}; diff --git a/src/components/campaign/AddScenarioResultView/index.tsx b/src/components/campaign/AddScenarioResultView/index.tsx index cbd71bdd1..a79fbf4b8 100644 --- a/src/components/campaign/AddScenarioResultView/index.tsx +++ b/src/components/campaign/AddScenarioResultView/index.tsx @@ -63,7 +63,7 @@ function AddScenarioResultView() { const state = navigation.getState(); const routes = dropWhile( - reverse([...state?.routes ?? []]), + reverse([...(state?.routes ?? [])]), r => r.name === 'Campaign.AddResult' ).reverse(); navigation.reset({ @@ -183,20 +183,8 @@ function AddScenarioResultView() { AddScenarioResultView.options = () => { return { - topBar: { - title: { - text: t`Scenario Result`, - }, - backButton: { - title: t`Cancel`, - }, - rightButtonDisabledColor: COLORS.darkGray, - rightButtons: [{ - text: t`Save`, - id: 'save', - color: COLORS.M, - }], - }, + title: t`Scenario Result`, + headerBackTitle: t`Cancel`, }; }; export default AddScenarioResultView; diff --git a/src/components/campaign/CampaignDetailView/index.tsx b/src/components/campaign/CampaignDetailView/index.tsx index a97fbdc5c..b368d1c7f 100644 --- a/src/components/campaign/CampaignDetailView/index.tsx +++ b/src/components/campaign/CampaignDetailView/index.tsx @@ -350,15 +350,6 @@ function CampaignDetailView() { ); } -CampaignDetailView.options = () => { - return { - topBar: { - title: { - text: t`Campaign`, - }, - }, - }; -}; export default CampaignDetailView; const styles = StyleSheet.create({ diff --git a/src/components/campaign/CampaignScenarioButton.tsx b/src/components/campaign/CampaignScenarioButton.tsx index d8d137510..0be884fdc 100644 --- a/src/components/campaign/CampaignScenarioButton.tsx +++ b/src/components/campaign/CampaignScenarioButton.tsx @@ -5,7 +5,7 @@ import { View, } from 'react-native'; import { t } from 'ttag'; -import MaterialCommunityIcons from 'react-native-vector-icons/MaterialCommunityIcons'; +import MaterialCommunityIcons from '@react-native-vector-icons/material-design-icons'; import NavButton from '@components/core/NavButton'; import space, { s } from '@styles/space'; diff --git a/src/components/campaign/MyDecksSelectorDialog/index.tsx b/src/components/campaign/MyDecksSelectorDialog/index.tsx index b55a3cf4a..ee9c7e803 100644 --- a/src/components/campaign/MyDecksSelectorDialog/index.tsx +++ b/src/components/campaign/MyDecksSelectorDialog/index.tsx @@ -220,7 +220,7 @@ function MyDecksSelectorDialog() { toggleHideOtherCampaignDecks, toggleHideEliminatedInvestigators, toggleOnlyShowPreviousCampaignMembers]); const onlyInvestigators = useMemo(() => { if (investigatorId) { - return new Set([investigatorId, ...investigatorSet?.alternate_codes ?? []]); + return new Set([investigatorId, ...(investigatorSet?.alternate_codes ?? [])]); } return undefined; }, [investigatorId, investigatorSet]); diff --git a/src/components/campaign/NewCampaignView/index.tsx b/src/components/campaign/NewCampaignView/index.tsx index 88c1db98c..8d4d6f517 100644 --- a/src/components/campaign/NewCampaignView/index.tsx +++ b/src/components/campaign/NewCampaignView/index.tsx @@ -253,7 +253,7 @@ function NewCampaignView() { const selection = campaignChoice.selection; const state = navigation.getState(); const routes = dropWhile( - reverse([...state?.routes ?? []]), + reverse([...(state?.routes ?? [])]), r => r.name === 'Campaign.New' ).reverse(); if (selection.type === 'campaign') { @@ -649,16 +649,6 @@ function NewCampaignView() { ); } -NewCampaignView.options = () => { - return { - topBar: { - title: { - text: t`New Campaign`, - }, - }, - }; -}; - export default NewCampaignView; const styles = StyleSheet.create({ diff --git a/src/components/campaign/actions.ts b/src/components/campaign/actions.ts index 2713a5a29..7763dfecd 100644 --- a/src/components/campaign/actions.ts +++ b/src/components/campaign/actions.ts @@ -591,12 +591,12 @@ export function editScenarioResult( return async(dispatch) => { if (campaign) { const scenarioResults = [ - ...campaign.scenarioResults || [], + ...(campaign.scenarioResults || []), ]; scenarioResults[index] = { ...scenarioResult }; dispatch(updateCampaignScenarioResults(actions, campaign.id, scenarioResults)); } - } + }; } export default { diff --git a/src/components/campaignguide/CampaignLogComponent/index.tsx b/src/components/campaignguide/CampaignLogComponent/index.tsx index 453f4a1ac..30dc42df8 100644 --- a/src/components/campaignguide/CampaignLogComponent/index.tsx +++ b/src/components/campaignguide/CampaignLogComponent/index.tsx @@ -1,8 +1,8 @@ import React, { useCallback, useContext, useMemo } from 'react'; import { StyleSheet, Text, View } from 'react-native'; import { flatMap, keys, range, map, sum, values } from 'lodash'; -import MaterialIcons from 'react-native-vector-icons/MaterialIcons'; -import MaterialCommunityIcons from 'react-native-vector-icons/MaterialCommunityIcons'; +import MaterialIcons from '@react-native-vector-icons/material-icons'; +import MaterialCommunityIcons from '@react-native-vector-icons/material-design-icons'; import { t } from 'ttag'; import ChaosBagLine from '@components/core/ChaosBagLine'; diff --git a/src/components/campaignguide/InvestigatorButton.tsx b/src/components/campaignguide/InvestigatorButton.tsx index 30f8fb65f..8af1091cf 100644 --- a/src/components/campaignguide/InvestigatorButton.tsx +++ b/src/components/campaignguide/InvestigatorButton.tsx @@ -1,6 +1,6 @@ import React, { useCallback, useContext } from 'react'; import { Text, View } from 'react-native'; -import MaterialCommunityIcons from 'react-native-vector-icons/MaterialCommunityIcons'; +import MaterialCommunityIcons from '@react-native-vector-icons/material-design-icons'; import StyleContext from '@styles/StyleContext'; import CompactInvestigatorRow from '@components/core/CompactInvestigatorRow'; diff --git a/src/components/campaignguide/NarrationWrapper.tsx b/src/components/campaignguide/NarrationWrapper.tsx index 33d06be6e..368ab6a1d 100644 --- a/src/components/campaignguide/NarrationWrapper.tsx +++ b/src/components/campaignguide/NarrationWrapper.tsx @@ -10,7 +10,7 @@ import { ViewStyle, } from 'react-native'; import { t } from 'ttag'; -import MaterialIcons from 'react-native-vector-icons/MaterialIcons'; +import MaterialIcons, { MaterialIconsIconName } from '@react-native-vector-icons/material-icons'; import { TouchableOpacity } from '@components/core/Touchables'; import EncounterIcon from '@icons/EncounterIcon'; @@ -253,7 +253,7 @@ function TitleView({ style, track }: TitleProps) { } interface PlaybackButtonProps { - name: string; + name: MaterialIconsIconName; size?: number; disabled?: boolean; onPress?: () => void; @@ -294,7 +294,7 @@ function ReplayButton({ onPress }: ButtonProps) { } function InfoButton({ onPress }: ButtonProps) { - return ; + return ; } interface NarratorContainerProps { diff --git a/src/components/campaignguide/prompts/ActionButton.tsx b/src/components/campaignguide/prompts/ActionButton.tsx index 5fa26504e..1b8042c33 100644 --- a/src/components/campaignguide/prompts/ActionButton.tsx +++ b/src/components/campaignguide/prompts/ActionButton.tsx @@ -1,6 +1,6 @@ import React, { useContext, useMemo } from 'react'; import { ActivityIndicator, StyleSheet, Text, View } from 'react-native'; -import MaterialCommunityIcons from 'react-native-vector-icons/MaterialCommunityIcons'; +import MaterialCommunityIcons from '@react-native-vector-icons/material-design-icons'; import Ripple from '@lib/react-native-material-ripple'; import StyleContext from '@styles/StyleContext'; diff --git a/src/components/campaignguide/prompts/ChooseInvestigatorPrompt/index.tsx b/src/components/campaignguide/prompts/ChooseInvestigatorPrompt/index.tsx index 885a78829..170c46648 100644 --- a/src/components/campaignguide/prompts/ChooseInvestigatorPrompt/index.tsx +++ b/src/components/campaignguide/prompts/ChooseInvestigatorPrompt/index.tsx @@ -132,9 +132,9 @@ export default function ChooseInvestigatorPrompt({ { choice !== undefined && ( // TODO: need to handle no-choice here? - !!renderResults && renderResults( + (!!renderResults && renderResults( selectedIndex === -1 ? undefined : theInvestigators[selectedIndex] - )) + ))) } ); diff --git a/src/components/campaignguide/withCampaignGuideContext.tsx b/src/components/campaignguide/withCampaignGuideContext.tsx index 5474c657d..c626886c1 100644 --- a/src/components/campaignguide/withCampaignGuideContext.tsx +++ b/src/components/campaignguide/withCampaignGuideContext.tsx @@ -1,5 +1,4 @@ import React from 'react'; -import hoistNonReactStatic from 'hoist-non-react-statics'; import { t } from 'ttag'; import CampaignGuideContext, { CampaignGuideContextType } from '@components/campaignguide/CampaignGuideContext'; @@ -57,6 +56,5 @@ export default function withCampaignGuideContext( ); } - hoistNonReactStatic(CampaignDataComponent, WrappedComponent); return CampaignDataComponent; } diff --git a/src/components/campaignguide/withScenarioGuideContext.tsx b/src/components/campaignguide/withScenarioGuideContext.tsx index 9b80ab5e4..dfe8050b2 100644 --- a/src/components/campaignguide/withScenarioGuideContext.tsx +++ b/src/components/campaignguide/withScenarioGuideContext.tsx @@ -1,5 +1,4 @@ import React, { useMemo } from 'react'; -import hoistNonReactStatic from 'hoist-non-react-statics'; import { t } from 'ttag'; import ScenarioGuideContext, { ScenarioGuideContextType } from './ScenarioGuideContext'; @@ -82,6 +81,5 @@ export default function withScenarioGuideContext( ); } - hoistNonReactStatic(ScenarioDataComponent, WrappedComponent); return ScenarioDataComponent as React.ComponentType; } diff --git a/src/components/card/CardInvestigatorsView.tsx b/src/components/card/CardInvestigatorsView.tsx index 65f195e34..fc9d1732f 100644 --- a/src/components/card/CardInvestigatorsView.tsx +++ b/src/components/card/CardInvestigatorsView.tsx @@ -14,7 +14,6 @@ import { SortType, SORT_BY_FACTION, SORT_BY_TITLE } from '@actions/types'; import Card from '@data/types/Card'; import { showCard } from '@components/nav/helper'; import { useInvestigatorSortDialog } from '@components/cardlist/InvestigatorSortDialog'; -import { iconsMap } from '@app/NavIcons'; import StyleContext from '@styles/StyleContext'; export interface CardInvestigatorProps { @@ -79,20 +78,4 @@ function CardInvestigatorsView() { ); } -CardInvestigatorsView.options = () => { - return { - topBar: { - title: { - text: t`Investigators`, - }, - rightButtons: [{ - icon: iconsMap.sort, - id: 'sort', - color: COLORS.M, - accessibilityLabel: t`Sort`, - }], - }, - }; -}; - export default CardInvestigatorsView; \ No newline at end of file diff --git a/src/components/card/DbCardDetailSwipeView.tsx b/src/components/card/DbCardDetailSwipeView.tsx index c848d5356..3eb653fdf 100644 --- a/src/components/card/DbCardDetailSwipeView.tsx +++ b/src/components/card/DbCardDetailSwipeView.tsx @@ -50,7 +50,6 @@ export interface CardDetailSwipeProps { controls?: ('deck' | 'side' | 'extra' | 'special' | 'ignore' | 'bonded' | 'checklist' | 'attachment')[]; initialCards?: Card[]; initialIndex: number; - whiteNav: boolean; showAllSpoilers?: boolean; tabooSetId?: number; deckId?: DeckId; @@ -63,17 +62,6 @@ export interface CardDetailSwipeProps { type Props = CardDetailSwipeProps; -const options = (passProps: CardDetailSwipeProps) => { - return { - topBar: { - backButton: { - title: t`Back`, - color: passProps.whiteNav ? 'white' : COLORS.M, - }, - }, - }; -}; - function AttachmentSection({ card, attachment, attachmentCards, width }: { width: number; card: Card, attachment: AttachableDefinition; attachmentCards: Card[] }) { const { typography } = useContext(StyleContext); const sorted = useMemo(() => sortBy(attachmentCards, a => a.name), [attachmentCards]); @@ -322,7 +310,7 @@ function DbCardDetailSwipeViewComponent(props: Props & { parsedDeck: ParsedDeckR }, [navigation]); useEffect(() => { if (currentCard) { - const buttonColor = props.whiteNav ? 'white' : COLORS.M; + const buttonColor = props.headerBackgroundColor ? 'white' : COLORS.M; const rightButtons = rightButtonsForCard(currentCard, buttonColor); navigation.setOptions({ headerRight: () => ( @@ -340,7 +328,7 @@ function DbCardDetailSwipeViewComponent(props: Props & { parsedDeck: ParsedDeckR ), }); } - }, [currentCard, navigation, props.whiteNav, handleButtonPress]); + }, [currentCard, navigation, props.headerBackgroundColor, handleButtonPress]); const showCardSpoiler = useCallback((card: Card) => { return !!(showAllSpoilers || showSpoilers[card.pack_code] || spoilers[card.code]); @@ -471,11 +459,8 @@ function DeckCardControls({ return null; } -DbCardDetailSwipeView.options = options; - export default DbCardDetailSwipeView; - const styles = StyleSheet.create({ wrapper: { flex: 1, diff --git a/src/components/card/FetchCardsGate.tsx b/src/components/card/FetchCardsGate.tsx index 7c00e216a..84d09155a 100644 --- a/src/components/card/FetchCardsGate.tsx +++ b/src/components/card/FetchCardsGate.tsx @@ -153,9 +153,7 @@ export default function FetchCardsGate({ promptForUpdate, children }: Props) { updates.missingCardCount ), '\n', - ...updates?.possiblePartialSync ? - [t`Some decks may not load fully and campaigns might appear incomplete until this is fixed.`] : - [t`These cards might have been updated, from a new taboo list, or contain minor corrections.`], + ...(updates?.possiblePartialSync ? [t`Some decks may not load fully and campaigns might appear incomplete until this is fixed.`] : [t`These cards might have been updated, from a new taboo list, or contain minor corrections.`]), ].join('\n'), [ { text: t`Not now`, onPress: () => { diff --git a/src/components/card/withFetchCardsGate.tsx b/src/components/card/withFetchCardsGate.tsx index 72933aa3c..19aa48c4c 100644 --- a/src/components/card/withFetchCardsGate.tsx +++ b/src/components/card/withFetchCardsGate.tsx @@ -1,5 +1,4 @@ import React from 'react'; -import hoistNonReactStatics from 'hoist-non-react-statics'; import FetchCardsGate from './FetchCardsGate'; interface Arguments { @@ -18,6 +17,5 @@ export default function withFetchCardsGate( ); }; - hoistNonReactStatics(FetchCardsResult, WrappedComponent); return FetchCardsResult; } diff --git a/src/components/cardlist/CardSearchResult/ControlComponent/ShuffleButton.tsx b/src/components/cardlist/CardSearchResult/ControlComponent/ShuffleButton.tsx index 972231f8e..09652935e 100644 --- a/src/components/cardlist/CardSearchResult/ControlComponent/ShuffleButton.tsx +++ b/src/components/cardlist/CardSearchResult/ControlComponent/ShuffleButton.tsx @@ -1,6 +1,6 @@ import React, { useCallback, useContext } from 'react'; import { StyleSheet, View } from 'react-native'; -import MaterialCommunityIcons from 'react-native-vector-icons/MaterialCommunityIcons'; +import MaterialCommunityIcons from '@react-native-vector-icons/material-design-icons'; import { t } from 'ttag'; import StyleContext from '@styles/StyleContext'; diff --git a/src/components/core/CardSectionHeader.tsx b/src/components/core/CardSectionHeader.tsx index e9f9d4547..c04dd4a0b 100644 --- a/src/components/core/CardSectionHeader.tsx +++ b/src/components/core/CardSectionHeader.tsx @@ -4,7 +4,7 @@ import { Text, View, } from 'react-native'; -import MaterialIcons from 'react-native-vector-icons/MaterialIcons'; +import MaterialIcons, { MaterialIconsIconName } from '@react-native-vector-icons/material-icons'; import Ripple from '@lib/react-native-material-ripple'; import Card from '@data/types/Card'; @@ -14,7 +14,7 @@ import AppIcon from '@icons/AppIcon'; export interface CardSectionHeaderData { superTitle?: string; - superTitleIcon?: string; + superTitleIcon?: MaterialIconsIconName | 'deck'; title?: string; subTitle?: string; subTitleDetail?: string; diff --git a/src/components/core/NavButton.tsx b/src/components/core/NavButton.tsx index a87a46103..62768c3c5 100644 --- a/src/components/core/NavButton.tsx +++ b/src/components/core/NavButton.tsx @@ -4,7 +4,7 @@ import { Text, View, } from 'react-native'; -import MaterialIcons from 'react-native-vector-icons/MaterialIcons'; +import MaterialIcons from '@react-native-vector-icons/material-icons'; import { TouchableOpacity } from '@components/core/Touchables'; import { xs, s, isBig } from '@styles/space'; diff --git a/src/components/core/PickerStyleButton.tsx b/src/components/core/PickerStyleButton.tsx index f4ca23043..30014659d 100644 --- a/src/components/core/PickerStyleButton.tsx +++ b/src/components/core/PickerStyleButton.tsx @@ -1,7 +1,7 @@ import React, { useCallback, useContext, useMemo } from 'react'; import { StyleSheet, Text, View } from 'react-native'; -import MaterialCommunityIcons from 'react-native-vector-icons/MaterialCommunityIcons'; -import MaterialIcons from 'react-native-vector-icons/MaterialIcons'; +import MaterialCommunityIcons from '@react-native-vector-icons/material-design-icons'; +import MaterialIcons from '@react-native-vector-icons/material-icons'; import { TouchableShrink } from '@components/core/Touchables'; import space, { s } from '@styles/space'; diff --git a/src/components/core/PlusMinusButtons.tsx b/src/components/core/PlusMinusButtons.tsx index 3a1b75230..6a41aa919 100644 --- a/src/components/core/PlusMinusButtons.tsx +++ b/src/components/core/PlusMinusButtons.tsx @@ -7,7 +7,7 @@ import { ViewStyle, } from 'react-native'; import { flatten } from 'lodash'; -import MaterialCommunityIcons from 'react-native-vector-icons/MaterialCommunityIcons'; +import MaterialCommunityIcons from '@react-native-vector-icons/material-design-icons'; import { TouchableQuickSize } from '@components/core/Touchables'; import { xs } from '@styles/space'; diff --git a/src/components/core/withApolloGate.tsx b/src/components/core/withApolloGate.tsx index 02e682de1..3bcc6ce68 100644 --- a/src/components/core/withApolloGate.tsx +++ b/src/components/core/withApolloGate.tsx @@ -13,7 +13,6 @@ import StyleContext from '@styles/StyleContext'; import ArkhamCardsAuthContext from '@lib/ArkhamCardsAuthContext'; import useNetworkStatus from '@components/core/useNetworkStatus'; import { apolloQueueLink } from '@data/apollo/createApolloClient'; -import hoistNonReactStatics from 'hoist-non-react-statics'; import { useApolloClient } from '@apollo/client'; import { genericOptimisticUpdates } from '@data/remote/apollo'; import { trackedQueriesRemove } from '@data/apollo/trackerLink'; @@ -110,7 +109,6 @@ export default function withApolloGate(WrappedComponent: React.ComponentT ); }; - hoistNonReactStatics(ApolloResult, WrappedComponent); return ApolloResult; } diff --git a/src/components/core/withLoginState/index.tsx b/src/components/core/withLoginState/index.tsx index 87ed53aa5..7933402a2 100644 --- a/src/components/core/withLoginState/index.tsx +++ b/src/components/core/withLoginState/index.tsx @@ -1,5 +1,4 @@ import React from 'react'; -import hoistNonReactStatics from 'hoist-non-react-statics'; import LoginStateComponent from './LoginStateComponent'; @@ -35,6 +34,5 @@ export default function withLoginState

( ); } - hoistNonReactStatics(LoginStateWrapper, WrappedComponent); return LoginStateWrapper; } diff --git a/src/components/deck/DeckChartsView/ChartIconComponent.tsx b/src/components/deck/DeckChartsView/ChartIconComponent.tsx index 1ae66b893..6693d93cb 100644 --- a/src/components/deck/DeckChartsView/ChartIconComponent.tsx +++ b/src/components/deck/DeckChartsView/ChartIconComponent.tsx @@ -1,7 +1,7 @@ -import React, { useContext, useMemo, useRef } from 'react'; +import React, { useContext, useMemo } from 'react'; import { Text, matchFont } from '@shopify/react-native-skia'; -import ArkhamIcon from '@icons/ArkhamIcon'; +import { arkhamIconGlyphs } from '@icons/ArkhamIcon'; import StyleContext from '@styles/StyleContext'; interface Props { @@ -14,7 +14,6 @@ const SIZE = 32; export default function ChartIconComponent({ x, y, text }: Props) { const { colors } = useContext(StyleContext); - const iconGlyphs = useRef(ArkhamIcon.getRawGlyphMap()); const font = useMemo(() => matchFont({ fontFamily: 'arkhamicons', @@ -47,7 +46,7 @@ export default function ChartIconComponent({ x, y, text }: Props) { diff --git a/src/components/deck/NewDeckOptionsDialog/index.tsx b/src/components/deck/NewDeckOptionsDialog/index.tsx index 0a05b169c..4d529200f 100644 --- a/src/components/deck/NewDeckOptionsDialog/index.tsx +++ b/src/components/deck/NewDeckOptionsDialog/index.tsx @@ -384,7 +384,7 @@ function NewDeckOptionsDialog({ // Get the current navigation state and remove Deck.New and Deck.NewOptions from the top of the stack const state = navigation.getState(); const routes = dropWhile( - reverse([...state?.routes ?? []]), + reverse([...(state?.routes ?? [])]), r => r.name === 'Deck.New' || r.name === 'Deck.NewOptions' || r.name === 'Dialog.DeckSelector' ).reverse(); diff --git a/src/components/deck/controls/DeckButton.tsx b/src/components/deck/controls/DeckButton.tsx index b915aeed1..b530b4ebd 100644 --- a/src/components/deck/controls/DeckButton.tsx +++ b/src/components/deck/controls/DeckButton.tsx @@ -1,6 +1,6 @@ import React, { useCallback, useContext, useMemo } from 'react'; import { ActivityIndicator, StyleSheet, Text, View, ViewStyle } from 'react-native'; -import MaterialIcons from 'react-native-vector-icons/MaterialIcons'; +import MaterialIcons, { MaterialIconsIconName } from '@react-native-vector-icons/material-icons'; import ReactNativeHapticFeedback from 'react-native-haptic-feedback'; import Ripple from '@lib/react-native-material-ripple'; @@ -124,6 +124,9 @@ const ICON_STYLE: { [icon: string]: ViewStyle | undefined } = { }; const MATERIAL_ICONS = new Set(['email', 'login', 'backup', 'headset']); +const isMaterialIcon = (icon: string): icon is MaterialIconsIconName => { + return MATERIAL_ICONS.has(icon); +} const APP_ICONS = new Set(['xp']); const ARKHAM_ICONS = new Set(['per_investigator', 'faq', 'elder_sign', 'weakness']); const ENCOUNTER_ICONS = new Set(['tdea', 'tdeb']); @@ -214,7 +217,7 @@ export default function DeckButton({ return null; } const size = (thin ? ICON_SIZE_THIN[icon] : undefined) || ICON_SIZE[icon] || 28; - if (MATERIAL_ICONS.has(icon)) { + if (isMaterialIcon(icon)) { return ; } if (APP_ICONS.has(icon)) { diff --git a/src/components/filter/CardFilterView/index.tsx b/src/components/filter/CardFilterView/index.tsx index 3b8d95aa0..8df8158ef 100644 --- a/src/components/filter/CardFilterView/index.tsx +++ b/src/components/filter/CardFilterView/index.tsx @@ -19,7 +19,6 @@ import SliderChooser from '../SliderChooser'; import ToggleFilter from '@components/core/ToggleFilter'; import NavButton from '@components/core/NavButton'; import { getAllRealPacks } from '@reducers'; -import COLORS from '@styles/colors'; import StyleContext from '@styles/StyleContext'; import useFilterFunctions, { FilterFunctionProps } from '../useFilterFunctions'; import FixedSetChooserButton from '../FixedSetChooserButton'; @@ -637,17 +636,6 @@ const CardFilterView = () => { ); }; -CardFilterView.options = () => { - return { - topBar: { - title: { - text: t`Filter`, - color: COLORS.M, - }, - }, - }; -}; - export default CardFilterView; const styles = StyleSheet.create({ diff --git a/src/components/filter/PackFilterView.tsx b/src/components/filter/PackFilterView.tsx index cb9c52037..a65c07ed6 100644 --- a/src/components/filter/PackFilterView.tsx +++ b/src/components/filter/PackFilterView.tsx @@ -11,7 +11,6 @@ import { RouteProp, useRoute } from '@react-navigation/native'; import PackListComponent from '@components/core/PackListComponent'; import { getAllPacks, getAllRealPacks } from '@reducers'; -import COLORS from '@styles/colors'; import StyleContext from '@styles/StyleContext'; import useFilterFunctions from './useFilterFunctions'; import { BasicStackParamList } from '@navigation/types'; @@ -89,19 +88,7 @@ const PackFilterView = () => { ); }; -PackFilterView.options = () => { - return { - topBar: { - backButton: { - title: t`Back`, - color: COLORS.M, - }, - title: { - text: t`Select Packs`, - }, - }, - }; -}; + export default PackFilterView; const styles = StyleSheet.create({ diff --git a/src/components/nav/helper.tsx b/src/components/nav/helper.tsx index ebedc581d..c82a8ba8d 100644 --- a/src/components/nav/helper.tsx +++ b/src/components/nav/helper.tsx @@ -209,7 +209,6 @@ export function showCardSwipe( showAllSpoilers: !!showSpoilers, tabooSetId, deckId, - whiteNav: !!investigator, faction: investigator?.factionCode(), controls: controls === 'side' || controls === 'extra' || controls === 'checklist' ? map(range(0, codes.length), () => controls) : controls, editable, diff --git a/src/components/settings/AccountSection/auth/ArkhamCardsLoginButton.tsx b/src/components/settings/AccountSection/auth/ArkhamCardsLoginButton.tsx index 186cf8f8c..0e6280530 100644 --- a/src/components/settings/AccountSection/auth/ArkhamCardsLoginButton.tsx +++ b/src/components/settings/AccountSection/auth/ArkhamCardsLoginButton.tsx @@ -1,6 +1,6 @@ import React, { useCallback, useContext, useEffect, useMemo, useState, useRef } from 'react'; import { forEach, map, uniq } from 'lodash'; -import MaterialIcons from 'react-native-vector-icons/MaterialIcons'; +import MaterialIcons from '@react-native-vector-icons/material-icons'; import { Platform, StyleSheet, Text, TextInput, View } from 'react-native'; import { AppleButton, appleAuth, appleAuthAndroid } from '@invertase/react-native-apple-authentication'; import { GoogleSignin, GoogleSigninButton } from '@react-native-google-signin/google-signin'; diff --git a/src/components/settings/BackupView.tsx b/src/components/settings/BackupView.tsx index 69f191cd4..9237a1342 100644 --- a/src/components/settings/BackupView.tsx +++ b/src/components/settings/BackupView.tsx @@ -121,7 +121,7 @@ export default function BackupView({ safeMode }: BackupProps) { const backupData = useSelector(getBackupData); const navigation = useNavigation(); const pickBackupFile = useCallback(async() => { - if (!await hasFileSystemPermission(true)) { + if (!(await hasFileSystemPermission(true))) { return; } try { diff --git a/src/components/settings/CollectionEditView.tsx b/src/components/settings/CollectionEditView.tsx index 2b6e12d4d..e7365ec88 100644 --- a/src/components/settings/CollectionEditView.tsx +++ b/src/components/settings/CollectionEditView.tsx @@ -6,7 +6,7 @@ import { } from 'react-native'; import { useSelector } from 'react-redux'; import { useRoute, RouteProp, useNavigation } from '@react-navigation/native'; -import { RootStackParamList } from '@navigation/types'; +import { BasicStackParamList, RootStackParamList } from '@navigation/types'; import { t } from 'ttag'; import PackListComponent from '@components/core/PackListComponent'; @@ -21,6 +21,7 @@ import LoadingSpinner from '@components/core/LoadingSpinner'; import DeckButton from '@components/deck/controls/DeckButton'; import { useAppDispatch } from '@app/store'; import { useUpdateRemotePack, useUpdateRemoteSetting } from '@data/remote/settings'; +import { NativeStackNavigationOptions } from '@react-navigation/native-stack'; export interface CollectionEditProps { draftMode?: boolean; @@ -128,15 +129,11 @@ export default function CollectionEditView() { ); } -CollectionEditView.options = (passProps: CollectionEditProps) => { - return { - topBar: { - title: { - text: passProps.draftMode ? t`Draft Pool` : t`Edit Collection`, - }, - }, - }; + +function options({ route }: { route: RouteProp }): NativeStackNavigationOptions { + return { title: route.params?.draftMode ? t`Draft Pool` : t`Edit Collection` }; }; +CollectionEditView.options = options; const styles = StyleSheet.create({ diff --git a/src/components/settings/MergeBackupView/CampaignMergeSection.tsx b/src/components/settings/MergeBackupView/CampaignMergeSection.tsx index fd053ea88..eb3a394d3 100644 --- a/src/components/settings/MergeBackupView/CampaignMergeSection.tsx +++ b/src/components/settings/MergeBackupView/CampaignMergeSection.tsx @@ -2,7 +2,7 @@ import React, { useContext, useMemo } from 'react'; import { StyleSheet, Text, View } from 'react-native'; import Collapsible from 'react-native-collapsible'; import { map, sumBy } from 'lodash'; -import MaterialIcons from 'react-native-vector-icons/MaterialIcons'; +import MaterialIcons from '@react-native-vector-icons/material-icons'; import { TouchableOpacity } from '@components/core/Touchables'; import CampaignMergeItem from './CampaignMergeItem'; diff --git a/src/components/settings/MergeBackupView/DeckMergeSection.tsx b/src/components/settings/MergeBackupView/DeckMergeSection.tsx index a401f5eed..e7aea463d 100644 --- a/src/components/settings/MergeBackupView/DeckMergeSection.tsx +++ b/src/components/settings/MergeBackupView/DeckMergeSection.tsx @@ -2,7 +2,7 @@ import React, { useContext, useMemo } from 'react'; import { StyleSheet, Text, View } from 'react-native'; import Collapsible from 'react-native-collapsible'; import { map, sumBy } from 'lodash'; -import MaterialIcons from 'react-native-vector-icons/MaterialIcons'; +import MaterialIcons from '@react-native-vector-icons/material-icons'; import { TouchableOpacity } from '@components/core/Touchables'; import DeckMergeItem from './DeckMergeItem'; diff --git a/src/components/settings/MergeBackupView/index.tsx b/src/components/settings/MergeBackupView/index.tsx index f3773f260..255a359cf 100644 --- a/src/components/settings/MergeBackupView/index.tsx +++ b/src/components/settings/MergeBackupView/index.tsx @@ -251,17 +251,7 @@ function MergeBackupView() { MergeBackupView.options = () => { return { - topBar: { - title: { - text: t`Select items to import`, - }, - rightButtons: [{ - text: t`Import`, - id: 'import', - color: COLORS.M, - accessibilityLabel: t`Import`, - }], - }, + title: t`Select items to import`, }; }; export default MergeBackupView; diff --git a/src/components/settings/ReleaseNotesView.tsx b/src/components/settings/ReleaseNotesView.tsx index 9c6e83538..d53df9a5b 100644 --- a/src/components/settings/ReleaseNotesView.tsx +++ b/src/components/settings/ReleaseNotesView.tsx @@ -1,7 +1,7 @@ import React, { useCallback, useContext, useMemo } from 'react'; import { Text, ScrollView, StyleSheet, View, Linking } from 'react-native'; import { Image as FastImage } from 'expo-image'; -import { c } from 'ttag'; +import { c, t } from 'ttag'; import StyleContext from '@styles/StyleContext'; import { FactionCodeType } from '@app_constants'; @@ -315,6 +315,12 @@ export default function ReleaseNotesView() { ); } +ReleaseNotesView.options = () => { + return { + title: t`Recent updates`, + }; +} + const styles = StyleSheet.create({ noteBody: { flexDirection: 'column', diff --git a/src/components/settings/SettingsItem.tsx b/src/components/settings/SettingsItem.tsx index 9181cf04d..b5ffeefcd 100644 --- a/src/components/settings/SettingsItem.tsx +++ b/src/components/settings/SettingsItem.tsx @@ -5,7 +5,7 @@ import { StyleSheet, View, } from 'react-native'; -import MaterialCommunityIcons from 'react-native-vector-icons/MaterialCommunityIcons'; +import MaterialCommunityIcons from '@react-native-vector-icons/material-design-icons'; import { SettingsButton, diff --git a/src/data/hooks.ts b/src/data/hooks.ts index e1de067a7..97c0e419d 100644 --- a/src/data/hooks.ts +++ b/src/data/hooks.ts @@ -150,7 +150,7 @@ export function useCampaignInvestigators( ): [CampaignInvestigator[], Card[], false] | [undefined, undefined, true] { const campaignInvestigators = campaign?.investigators; const decks = campaign?.latestDecks(); - const allInvestigatorCodes = useMemo(() => uniq([...campaign?.investigators ?? [], ...flatMap(Object.values(campaign?.investigatorPrintings ?? {}), x => x ?? [])]), [campaign?.investigatorPrintings, campaign?.investigators]); + const allInvestigatorCodes = useMemo(() => uniq([...(campaign?.investigators ?? []), ...flatMap(Object.values(campaign?.investigatorPrintings ?? {}), x => x ?? [])]), [campaign?.investigatorPrintings, campaign?.investigators]); // Fetch investigator sets for all investigator codes to understand reprints/alternates const [investigatorSets, investigatorSetsLoading] = useInvestigatorSets(allInvestigatorCodes); diff --git a/src/data/remote/apollo.ts b/src/data/remote/apollo.ts index 60b504780..b12adca8f 100644 --- a/src/data/remote/apollo.ts +++ b/src/data/remote/apollo.ts @@ -996,7 +996,7 @@ const handleUpdateInvestigatorTrauma: MutationUpdaterFn, campaignId: num return { ...existingCacheData, investigator_data: [ - ...existingCacheData.investigator_data || [], + ...(existingCacheData.investigator_data || []), update(), ], }; diff --git a/src/data/scenario/CampaignGuide.ts b/src/data/scenario/CampaignGuide.ts index f2b673b30..665aeefaa 100644 --- a/src/data/scenario/CampaignGuide.ts +++ b/src/data/scenario/CampaignGuide.ts @@ -154,7 +154,7 @@ export default class CampaignGuide { return stable( [ ...this.campaignRules(lang), - ...this.campaign.scenarios.find(s => s.id === scenario)?.rules ?? [], + ...(this.campaign.scenarios.find(s => s.id === scenario)?.rules ?? []), ], (a, b) => a.title.localeCompare(b.title, lang) ); @@ -516,8 +516,8 @@ export default class CampaignGuide { inputs, rules: stable( [ - ...campaignLog.campaignGuide.campaign.campaign.rules ?? [], - ...scenario.rules ?? [], + ...(campaignLog.campaignGuide.campaign.campaign.rules ?? []), + ...(scenario.rules ?? []), ], (a, b) => a.title.localeCompare(b.title, lang), ), @@ -638,7 +638,7 @@ export default class CampaignGuide { return { ...scenario, steps: [ - ...this.campaign.campaign.side_scenario_steps || [], + ...(this.campaign.campaign.side_scenario_steps || []), ...scenario.steps, ], }; diff --git a/src/data/scenario/ScenarioStep.tsx b/src/data/scenario/ScenarioStep.tsx index 3a8431f77..5dbd3d2b7 100644 --- a/src/data/scenario/ScenarioStep.tsx +++ b/src/data/scenario/ScenarioStep.tsx @@ -1504,7 +1504,7 @@ export default class ScenarioStep { return this.maybeCreateEffectsStep( this.step.id, [ - ...(theBadThing && theBadThing.steps) || [], + ...((theBadThing && theBadThing.steps) || []), ...this.remainingStepIds, ], [ @@ -1563,7 +1563,7 @@ export default class ScenarioStep { return this.maybeCreateEffectsStep( this.step.id, [ - ...(branchChoice && branchChoice.steps) || [], + ...((branchChoice && branchChoice.steps) || []), ...this.remainingStepIds, ], [ diff --git a/src/data/sqlite/DatabaseProvider.tsx b/src/data/sqlite/DatabaseProvider.tsx index b0630ed64..babc80288 100644 --- a/src/data/sqlite/DatabaseProvider.tsx +++ b/src/data/sqlite/DatabaseProvider.tsx @@ -1,168 +1,129 @@ -import React from 'react'; +import React, { useState, useEffect, useCallback, useRef } from 'react'; import { Platform } from 'react-native'; -import { connect } from 'react-redux'; -import { Dispatch } from 'redux'; +import { useSelector, useDispatch } from 'react-redux'; import Database from './Database'; import DatabaseContext, { PlayerCards } from './DatabaseContext'; import { AppState, getLangChoice } from '@reducers'; import TabooSet from '../types/TabooSet'; import { loadBundledDatabaseIfNeeded } from './bundledDatabase'; -import { CARD_SET_SCHEMA_VERSION, CARD_FETCH_SUCCESS, PACKS_AVAILABLE, Pack } from '@actions/types'; +import { CARD_SET_SCHEMA_VERSION, CARD_FETCH_SUCCESS, PACKS_AVAILABLE } from '@actions/types'; -interface OwnProps { +interface Props { children: React.ReactNode; } - -interface ReduxProps { - schemaVersion?: number; - langChoice?: string; -} - -interface DispatchProps { - setSchemaVersion: (schemaVersion: number) => void; - setCardCache: (cache: any, cardLang: string) => void; - setPacks: (packs: Pack[], lang: string, lastModified: string | undefined) => void; -} - -type Props = OwnProps & ReduxProps & DispatchProps; let theDatabase: Database | null = null; let databaseInitializing = false; -interface State { - playerCardsByTaboo: { - [tabooSet: string]: PlayerCards; - }; - tabooSets: TabooSet[]; - initializing: boolean; -} -class DatabaseProvider extends React.Component { - _mounted = false; - - constructor(props: Props) { - super(props); +function DatabaseProvider({ children }: Props) { + const schemaVersion = useSelector((state: AppState) => state.cards.schemaVersion); + const langChoice = useSelector((state: AppState) => getLangChoice(state)); + const dispatch = useDispatch(); - this.state = { - playerCardsByTaboo: theDatabase?.playerState?.playerCards || {}, - tabooSets: theDatabase?.playerState?.tabooSets || [], - initializing: theDatabase === null && !databaseInitializing, - }; - } + const [playerCardsByTaboo, setPlayerCardsByTaboo] = useState<{ [tabooSet: string]: PlayerCards }>( + theDatabase?.playerState?.playerCards || {} + ); + const [tabooSets, setTabooSets] = useState( + theDatabase?.playerState?.tabooSets || [] + ); + const [initializing, setInitializing] = useState( + theDatabase === null && !databaseInitializing + ); - async componentDidMount() { - this._mounted = true; + const mountedRef = useRef(true); - if (theDatabase === null && !databaseInitializing) { - databaseInitializing = true; - - // Create database first - theDatabase = new Database(this.props.schemaVersion); - - // Then try to load bundled database into it - try { - const connection = await theDatabase.connectionP; - const metadata = await loadBundledDatabaseIfNeeded(connection, this.props.langChoice); - if (metadata) { - // Database was loaded from bundled assets, set Redux state - if (metadata.schemaVersion) { - this.props.setSchemaVersion(metadata.schemaVersion); - } - if (metadata.cache) { - this.props.setCardCache(metadata.cache, metadata.cardLang || 'en'); - } - if (metadata.packs) { - this.props.setPacks(metadata.packs, metadata.cardLang || 'en', metadata.packsLastModified); + const playerCardsChanged = useCallback(() => { + if (theDatabase) { + setPlayerCardsByTaboo(theDatabase.playerState?.playerCards || {}); + setTabooSets(theDatabase.playerState?.tabooSets || []); + } + }, []); + + useEffect(() => { + mountedRef.current = true; + + const initializeDatabase = async() => { + if (theDatabase === null && !databaseInitializing) { + databaseInitializing = true; + + // Create database first + theDatabase = new Database(schemaVersion); + + // Then try to load bundled database into it + try { + const connection = await theDatabase.connectionP; + const metadata = await loadBundledDatabaseIfNeeded(connection, langChoice); + if (metadata) { + // Database was loaded from bundled assets, set Redux state + if (metadata.schemaVersion) { + dispatch({ + type: CARD_SET_SCHEMA_VERSION, + schemaVersion: metadata.schemaVersion, + }); + } + if (metadata.cache) { + dispatch({ + type: CARD_FETCH_SUCCESS, + cache: metadata.cache, + tabooCache: undefined, + cardLang: metadata.cardLang || 'en', + }); + } + if (metadata.packs) { + dispatch({ + type: PACKS_AVAILABLE, + packs: metadata.packs, + lang: metadata.cardLang || 'en', + lastModified: metadata.packsLastModified, + timestamp: new Date(), + }); + } } + } catch (error) { + console.error('Error loading bundled database:', error); } - } catch (error) { - console.error('Error loading bundled database:', error); - } - setTimeout(() => { - if (theDatabase) { - theDatabase.reloadPlayerCards(); - } - }, Platform.OS === 'android' ? 500 : 25); + setTimeout(() => { + if (theDatabase) { + theDatabase.reloadPlayerCards(); + } + }, Platform.OS === 'android' ? 500 : 25); - if (this._mounted) { - this.setState({ initializing: false }); + if (mountedRef.current) { + setInitializing(false); + } } - } - if (theDatabase) { - theDatabase.addListener(this._playerCardsChanged); - if (this._mounted) { - this.setState({ - playerCardsByTaboo: theDatabase.playerState?.playerCards || {}, - tabooSets: theDatabase.playerState?.tabooSets || [], - }); + if (theDatabase) { + theDatabase.addListener(playerCardsChanged); + if (mountedRef.current) { + setPlayerCardsByTaboo(theDatabase.playerState?.playerCards || {}); + setTabooSets(theDatabase.playerState?.tabooSets || []); + } } - } - } + }; - componentWillUnmount() { - this._mounted = false; - theDatabase && theDatabase.removeListener(this._playerCardsChanged); - } + initializeDatabase(); - _playerCardsChanged = () => { - if (theDatabase) { - this.setState({ - playerCardsByTaboo: theDatabase.playerState?.playerCards || {}, - tabooSets: theDatabase.playerState?.tabooSets || [], - }); - } - }; + return () => { + mountedRef.current = false; + theDatabase && theDatabase.removeListener(playerCardsChanged); + }; + }, [schemaVersion, langChoice, dispatch, playerCardsChanged]); - render() { - if (this.state.initializing || theDatabase === null) { - // Return null or a loading indicator while database is initializing - return null; - } - return ( - - { this.props.children } - - ); + if (initializing || theDatabase === null) { + // Return null or a loading indicator while database is initializing + return null; } -} - - -function mapStateToProps(state: AppState): ReduxProps { - return { - schemaVersion: state.cards.schemaVersion, - langChoice: getLangChoice(state), - }; -} -function mapDispatchToProps(dispatch: Dispatch): DispatchProps { - return { - setSchemaVersion: (schemaVersion: number) => { - dispatch({ - type: CARD_SET_SCHEMA_VERSION, - schemaVersion, - }); - }, - setCardCache: (cache: any, cardLang: string) => { - dispatch({ - type: CARD_FETCH_SUCCESS, - cache, - tabooCache: undefined, - cardLang, - }); - }, - setPacks: (packs: Pack[], lang: string, lastModified: string | undefined) => { - dispatch({ - type: PACKS_AVAILABLE, - packs, - lang, - lastModified, - timestamp: new Date(), - }); - }, - }; + return ( + + {children} + + ); } -export default connect(mapStateToProps, mapDispatchToProps)(DatabaseProvider); \ No newline at end of file +export default DatabaseProvider; \ No newline at end of file diff --git a/src/icons/AgesIcon.ts b/src/icons/AgesIcon.ts index a831b8264..b2398509c 100644 --- a/src/icons/AgesIcon.ts +++ b/src/icons/AgesIcon.ts @@ -1,4 +1,4 @@ -import { createIconSetFromIcoMoon } from 'react-native-vector-icons'; +import createIconSetFromIcoMoon from '@react-native-vector-icons/icomoon'; import agesIconConfig from '../../assets/ages.json'; diff --git a/src/icons/AliceIcon.ts b/src/icons/AliceIcon.ts index 40ccb0b9c..d13b871fb 100644 --- a/src/icons/AliceIcon.ts +++ b/src/icons/AliceIcon.ts @@ -1,4 +1,4 @@ -import { createIconSetFromIcoMoon } from 'react-native-vector-icons'; +import createIconSetFromIcoMoon from '@react-native-vector-icons/icomoon'; import aliceIconConfig from '../../assets/alice.json'; diff --git a/src/icons/AppIcon.ts b/src/icons/AppIcon.ts index d3da7f7c1..3a168fb85 100644 --- a/src/icons/AppIcon.ts +++ b/src/icons/AppIcon.ts @@ -1,4 +1,4 @@ -import { createIconSetFromIcoMoon } from 'react-native-vector-icons'; +import createIconSetFromIcoMoon from '@react-native-vector-icons/icomoon'; // @ts-ignore import appIconConfig from '../../assets/app.json'; diff --git a/src/icons/ArkhamButtonIcon.tsx b/src/icons/ArkhamButtonIcon.tsx index ac9984a41..6ffbbfe8b 100644 --- a/src/icons/ArkhamButtonIcon.tsx +++ b/src/icons/ArkhamButtonIcon.tsx @@ -1,6 +1,6 @@ import React, { useContext } from 'react'; import { StyleSheet, View } from 'react-native'; -import MaterialCommunityIcons from 'react-native-vector-icons/MaterialCommunityIcons'; +import MaterialCommunityIcons from '@react-native-vector-icons/material-design-icons'; import AppIcon from './AppIcon'; import ArkhamIcon from './ArkhamIcon'; diff --git a/src/icons/ArkhamIcon.ts b/src/icons/ArkhamIcon.ts index 9f95b7907..07de47f27 100644 --- a/src/icons/ArkhamIcon.ts +++ b/src/icons/ArkhamIcon.ts @@ -1,14 +1,34 @@ -import { createIconSetFromIcoMoon } from 'react-native-vector-icons'; +import createIconSetFromIcoMoon from '@react-native-vector-icons/icomoon'; import Animated from 'react-native-reanimated'; import arkhamIconConfig from '../../assets/arkhamicons-config.json'; import arkhamSlimIconConfig from '../../assets/arkhamslim.json'; +// Extract glyph map from IcoMoon config +// Replaces the removed getRawGlyphMap() function from react-native-vector-icons +function extractGlyphMap(config: any): Record { + const glyphMap: Record = {}; + + if (config.icons && Array.isArray(config.icons)) { + config.icons.forEach((icon: any) => { + if (icon.properties && icon.properties.name && icon.properties.code) { + glyphMap[icon.properties.name] = icon.properties.code; + } + }); + } + + return glyphMap; +} + /* eslint-disable no-undef */ const ArkhamIcon = createIconSetFromIcoMoon(arkhamIconConfig); export const ArkhamSlimIcon = createIconSetFromIcoMoon(arkhamSlimIconConfig); +// Export glyph maps for direct access to icon codes +export const arkhamIconGlyphs = extractGlyphMap(arkhamIconConfig); +export const arkhamSlimIconGlyphs = extractGlyphMap(arkhamSlimIconConfig); + export default ArkhamIcon; export const AnimatedArkhamIcon = Animated.createAnimatedComponent(ArkhamIcon); diff --git a/src/icons/CarcosaIcon.ts b/src/icons/CarcosaIcon.ts index e4f151cd1..18113d074 100644 --- a/src/icons/CarcosaIcon.ts +++ b/src/icons/CarcosaIcon.ts @@ -1,4 +1,4 @@ -import { createIconSetFromIcoMoon } from 'react-native-vector-icons'; +import createIconSetFromIcoMoon from '@react-native-vector-icons/icomoon'; import carcosaIconConfig from '../../assets/carcosa.json'; diff --git a/src/icons/CardIcon.ts b/src/icons/CardIcon.ts index 73c34db4b..186778120 100644 --- a/src/icons/CardIcon.ts +++ b/src/icons/CardIcon.ts @@ -1,4 +1,4 @@ -import { createIconSetFromIcoMoon } from 'react-native-vector-icons'; +import createIconSetFromIcoMoon from '@react-native-vector-icons/icomoon'; import cardIconConfig from '../../assets/cardicons.json'; diff --git a/src/icons/CircleIcon.ts b/src/icons/CircleIcon.ts index 6cb5ed198..d176a16dc 100644 --- a/src/icons/CircleIcon.ts +++ b/src/icons/CircleIcon.ts @@ -1,4 +1,4 @@ -import { createIconSetFromIcoMoon } from 'react-native-vector-icons'; +import createIconSetFromIcoMoon from '@react-native-vector-icons/icomoon'; import circleIconConfig from '../../assets/circle.json'; diff --git a/src/icons/CircusExMortisIcon.ts b/src/icons/CircusExMortisIcon.ts index 6f4b27f95..53bda6241 100644 --- a/src/icons/CircusExMortisIcon.ts +++ b/src/icons/CircusExMortisIcon.ts @@ -1,4 +1,4 @@ -import { createIconSetFromIcoMoon } from 'react-native-vector-icons'; +import createIconSetFromIcoMoon from '@react-native-vector-icons/icomoon'; import circusExMortisIconConfig from '../../assets/circusexmortis.json'; diff --git a/src/icons/CoreSetIcon.ts b/src/icons/CoreSetIcon.ts index 03037a440..d3d14a31b 100644 --- a/src/icons/CoreSetIcon.ts +++ b/src/icons/CoreSetIcon.ts @@ -1,4 +1,4 @@ -import { createIconSetFromIcoMoon } from 'react-native-vector-icons'; +import createIconSetFromIcoMoon from '@react-native-vector-icons/icomoon'; import coreSetIconConfig from '../../assets/coreset.json'; diff --git a/src/icons/CyclopeanIcon.tsx b/src/icons/CyclopeanIcon.tsx index 33449c981..5a7af9e0b 100644 --- a/src/icons/CyclopeanIcon.tsx +++ b/src/icons/CyclopeanIcon.tsx @@ -1,4 +1,4 @@ -import { createIconSetFromIcoMoon } from 'react-native-vector-icons'; +import createIconSetFromIcoMoon from '@react-native-vector-icons/icomoon'; import cyclopeanIconConfig from '../../assets/cyclopean.json'; diff --git a/src/icons/DarkMatterIcon.ts b/src/icons/DarkMatterIcon.ts index 0ac3f9296..be9c12991 100644 --- a/src/icons/DarkMatterIcon.ts +++ b/src/icons/DarkMatterIcon.ts @@ -1,4 +1,4 @@ -import { createIconSetFromIcoMoon } from 'react-native-vector-icons'; +import createIconSetFromIcoMoon from '@react-native-vector-icons/icomoon'; import darkMatterIconConfig from '../../assets/dark_matter.json'; diff --git a/src/icons/DreamEatersIcon.ts b/src/icons/DreamEatersIcon.ts index fa80a74b4..981a37609 100644 --- a/src/icons/DreamEatersIcon.ts +++ b/src/icons/DreamEatersIcon.ts @@ -1,4 +1,4 @@ -import { createIconSetFromIcoMoon } from 'react-native-vector-icons'; +import createIconSetFromIcoMoon from '@react-native-vector-icons/icomoon'; import dreamEatersIconConfig from '../../assets/dreameaters.json'; diff --git a/src/icons/DrownedIcon.ts b/src/icons/DrownedIcon.ts index a0abe8dec..dfb18f419 100644 --- a/src/icons/DrownedIcon.ts +++ b/src/icons/DrownedIcon.ts @@ -1,4 +1,4 @@ -import { createIconSetFromIcoMoon } from 'react-native-vector-icons'; +import createIconSetFromIcoMoon from '@react-native-vector-icons/icomoon'; // @ts-ignore import drownedIconConfig from '../../assets/drowned.json'; diff --git a/src/icons/DunwichIcon.ts b/src/icons/DunwichIcon.ts index 466b5f5e5..83234e628 100644 --- a/src/icons/DunwichIcon.ts +++ b/src/icons/DunwichIcon.ts @@ -1,4 +1,4 @@ -import { createIconSetFromIcoMoon } from 'react-native-vector-icons'; +import createIconSetFromIcoMoon from '@react-native-vector-icons/icomoon'; import dunwichIconConfig from '../../assets/dunwich.json'; diff --git a/src/icons/EdgeIcon.ts b/src/icons/EdgeIcon.ts index 21f07ee2c..0bbafe9af 100644 --- a/src/icons/EdgeIcon.ts +++ b/src/icons/EdgeIcon.ts @@ -1,4 +1,4 @@ -import { createIconSetFromIcoMoon } from 'react-native-vector-icons'; +import createIconSetFromIcoMoon from '@react-native-vector-icons/icomoon'; import edgeIconConfig from '../../assets/edge.json'; diff --git a/src/icons/ForgottenIcon.ts b/src/icons/ForgottenIcon.ts index 9f2c4c2f1..d90641013 100644 --- a/src/icons/ForgottenIcon.ts +++ b/src/icons/ForgottenIcon.ts @@ -1,4 +1,4 @@ -import { createIconSetFromIcoMoon } from 'react-native-vector-icons'; +import createIconSetFromIcoMoon from '@react-native-vector-icons/icomoon'; import forgottenIconConfig from '../../assets/forgotten.json'; diff --git a/src/icons/HemlockIcon.ts b/src/icons/HemlockIcon.ts index f5b7e1fef..52e2890c9 100644 --- a/src/icons/HemlockIcon.ts +++ b/src/icons/HemlockIcon.ts @@ -1,4 +1,4 @@ -import { createIconSetFromIcoMoon } from 'react-native-vector-icons'; +import createIconSetFromIcoMoon from '@react-native-vector-icons/icomoon'; import hemlockIconConfig from '../../assets/hemlock.json'; diff --git a/src/icons/InnsmouthIcon.ts b/src/icons/InnsmouthIcon.ts index cb76c7406..2f92b2b0b 100644 --- a/src/icons/InnsmouthIcon.ts +++ b/src/icons/InnsmouthIcon.ts @@ -1,4 +1,4 @@ -import { createIconSetFromIcoMoon } from 'react-native-vector-icons'; +import createIconSetFromIcoMoon from '@react-native-vector-icons/icomoon'; import innsmouthIconConfig from '../../assets/innsmouth.json'; diff --git a/src/icons/OzIcon.ts b/src/icons/OzIcon.ts index ead55a695..4dec9c59e 100644 --- a/src/icons/OzIcon.ts +++ b/src/icons/OzIcon.ts @@ -1,4 +1,4 @@ -import { createIconSetFromIcoMoon } from 'react-native-vector-icons'; +import createIconSetFromIcoMoon from '@react-native-vector-icons/icomoon'; import ozIconConfig from '../../assets/oz.json'; diff --git a/src/icons/ScarletIcon.ts b/src/icons/ScarletIcon.ts index a38c83068..675655837 100644 --- a/src/icons/ScarletIcon.ts +++ b/src/icons/ScarletIcon.ts @@ -1,4 +1,4 @@ -import { createIconSetFromIcoMoon } from 'react-native-vector-icons'; +import createIconSetFromIcoMoon from '@react-native-vector-icons/icomoon'; import scarletIconConfig from '../../assets/scarlet.json'; diff --git a/src/icons/StandaloneIcon.ts b/src/icons/StandaloneIcon.ts index 85e1030b9..08f57f502 100644 --- a/src/icons/StandaloneIcon.ts +++ b/src/icons/StandaloneIcon.ts @@ -1,4 +1,4 @@ -import { createIconSetFromIcoMoon } from 'react-native-vector-icons'; +import createIconSetFromIcoMoon from '@react-native-vector-icons/icomoon'; import standaloneIconConfig from '../../assets/standalone.json'; diff --git a/src/icons/TokenIcon.ts b/src/icons/TokenIcon.ts index 3f1644ee1..1c8609bd8 100644 --- a/src/icons/TokenIcon.ts +++ b/src/icons/TokenIcon.ts @@ -1,4 +1,4 @@ -import { createIconSetFromIcoMoon } from 'react-native-vector-icons'; +import createIconSetFromIcoMoon from '@react-native-vector-icons/icomoon'; import tokensIconConfig from '../../assets/tokens.json'; diff --git a/src/navigation/AppNavigator.tsx b/src/navigation/AppNavigator.tsx index af939d953..d023cdd84 100644 --- a/src/navigation/AppNavigator.tsx +++ b/src/navigation/AppNavigator.tsx @@ -296,7 +296,7 @@ function renderCommonScreens( name="SearchFilters" component={CardFilterView} options={{ - title: t`Filters`, + title: t`Filter`, }} /> ( name="SearchFilters.Packs" component={PackFilterView} options={{ - title: t`Pack Filters`, + title: t`Select Packs`, + headerBackTitle: t`Back`, }} /> ( ( ( {/* Social screens */} diff --git a/src/reducers/campaigns.ts b/src/reducers/campaigns.ts index a4d520f3b..c0e6ef3f1 100644 --- a/src/reducers/campaigns.ts +++ b/src/reducers/campaigns.ts @@ -191,7 +191,7 @@ export default function( [newCampaignB.uuid]: newCampaignB, }, chaosBagResults: { - ...state.chaosBagResults || {}, + ...(state.chaosBagResults || {}), [newCampaign.uuid]: NEW_CHAOS_BAG_RESULTS, [newCampaignA.uuid]: NEW_CHAOS_BAG_RESULTS, [newCampaignB.uuid]: NEW_CHAOS_BAG_RESULTS, @@ -237,7 +237,7 @@ export default function( [newCampaign.uuid]: newCampaign, }, chaosBagResults: { - ...state.chaosBagResults || {}, + ...(state.chaosBagResults || {}), [newCampaign.uuid]: NEW_CHAOS_BAG_RESULTS, }, }; @@ -291,7 +291,7 @@ export default function( [newCampaign.uuid]: newCampaign, }, chaosBagResults: { - ...state.chaosBagResults || {}, + ...(state.chaosBagResults || {}), [newCampaign.uuid]: NEW_CHAOS_BAG_RESULTS, }, }; @@ -352,7 +352,7 @@ export default function( ]; } campaign.nonDeckInvestigators = uniq([ - ...campaign.nonDeckInvestigators || [], + ...(campaign.nonDeckInvestigators || []), action.investigator, ]); const investigatorPrintings = { @@ -376,7 +376,7 @@ export default function( return { ...state, chaosBagResults: { - ...state.chaosBagResults || {}, + ...(state.chaosBagResults || {}), [action.id.campaignId]: action.chaosBagResults, }, }; @@ -391,7 +391,7 @@ export default function( return { ...state, chaosBagResults: { - ...state.chaosBagResults || {}, + ...(state.chaosBagResults || {}), [action.id.campaignId]: chaosBagResults, }, }; diff --git a/src/reducers/deckEdits.ts b/src/reducers/deckEdits.ts index 04ab7367e..5e1cc9703 100644 --- a/src/reducers/deckEdits.ts +++ b/src/reducers/deckEdits.ts @@ -97,7 +97,7 @@ export default function( } if (action.type === START_DECK_EDIT) { const newEdits = action.deck ? { - ...state.edits || {}, + ...(state.edits || {}), [action.id.uuid]: { nameChange: undefined, tagsChange: undefined, @@ -113,16 +113,16 @@ export default function( return { ...state, editting: { - ...state.editting || {}, + ...(state.editting || {}), [action.id.uuid]: true, }, edits: newEdits, }; } if (action.type === FINISH_DECK_EDIT) { - const newEditting = { ...state.editting || {} }; + const newEditting = { ...(state.editting || {}) }; delete newEditting[action.id.uuid]; - const newEdits = { ...state.edits || {} }; + const newEdits = { ...(state.edits || {}) }; delete newEdits[action.id.uuid]; return { ...state, @@ -327,7 +327,7 @@ export default function( } if (action.type === SET_DECK_CHECKLIST_CARD) { const checklist = { - ...(state.checklist_counts ?? {})[action.id.uuid] ?? {}, + ...((state.checklist_counts ?? {})[action.id.uuid] ?? {}), }; const counts = filter((checklist[action.card] ?? []), card => card !== action.value); if (action.toggle) { diff --git a/yarn.lock b/yarn.lock index 9b0c138c8..053a65485 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3431,6 +3431,36 @@ resolved "https://registry.npmjs.org/@react-native-google-signin/google-signin/-/google-signin-12.2.1.tgz#242247ab18ea7bb3a1dcabb50df7ad236f104294" integrity sha512-qt2Cb+bN2NS8BBT06M3UbLVS1gaSYTenNh4uZtPNmyJC23xZAynLkuhvsC6gmeEnxcj0wLVUn1Es+LSHw0OhVQ== +"@react-native-vector-icons/common@^12.4.0": + version "12.4.0" + resolved "https://registry.yarnpkg.com/@react-native-vector-icons/common/-/common-12.4.0.tgz#60fc6f4d9a0e7e7b06f7c3a996e320c72c588a15" + integrity sha512-t9W0q+AW7WH1Oj5aEg7wGNXDLZJb5sIVkAWo5qtad3PcbBADqoCdikRK/ToLK+xlB0TxjcuL0T74ogudMkYGeA== + dependencies: + find-up "^7.0.0" + picocolors "^1.1.1" + plist "^3.1.0" + +"@react-native-vector-icons/icomoon@^12.3.0": + version "12.3.0" + resolved "https://registry.yarnpkg.com/@react-native-vector-icons/icomoon/-/icomoon-12.3.0.tgz#259e9f332ad0308ef9d75a900d4320f8c823b1e1" + integrity sha512-44dyE1S5WvSAspBcOt66giALapnMxESqpRYOWz2DWwD8Z9eIgY1t/sZ+ccAxe3/OZ+IXu/tj1c1+C4RlJJdcow== + dependencies: + "@react-native-vector-icons/common" "^12.4.0" + +"@react-native-vector-icons/material-design-icons@^12.4.0": + version "12.4.0" + resolved "https://registry.yarnpkg.com/@react-native-vector-icons/material-design-icons/-/material-design-icons-12.4.0.tgz#e4377ce3214fc97e536190920fa48638930ca31a" + integrity sha512-4ewAiHdOCujqprUJYFnBcUJduNddAc+w3Plnl1NhJksAyOaHzCNBg01JgVtkysxPho6++OOMge3FhwyBT8Wtcg== + dependencies: + "@react-native-vector-icons/common" "^12.4.0" + +"@react-native-vector-icons/material-icons@^12.4.0": + version "12.4.0" + resolved "https://registry.yarnpkg.com/@react-native-vector-icons/material-icons/-/material-icons-12.4.0.tgz#818d1818a3978c596fa8fe3a1ac1cf65bc9f2ae2" + integrity sha512-R0C2BBoZZ5sjZJYLbFx1vfyYwfbOcBHRYzRHDKUlsCdplc34HLa0JyHYGMGx3q5xHAJB6Dl4N2cmZUVALuJ60w== + dependencies: + "@react-native-vector-icons/common" "^12.4.0" + "@react-native/assets-registry@0.81.5": version "0.81.5" resolved "https://registry.yarnpkg.com/@react-native/assets-registry/-/assets-registry-0.81.5.tgz#d22c924fa6f6d4a463c5af34ce91f38756c0fa7d" @@ -4185,14 +4215,6 @@ dependencies: "@types/react" "*" -"@types/react-native-vector-icons@6.4.16": - version "6.4.16" - resolved "https://registry.npmjs.org/@types/react-native-vector-icons/-/react-native-vector-icons-6.4.16.tgz#879aeb05846d539353d5c571b40cbbfd96c29223" - integrity sha512-27p1tItacE/0yYKCs+nmGxtO5hiA9nhUSg9W+ipnq9PFS1NMQ+Cjf6Y+tFQgE4u0wF412xkgA40MIGLuocgqCg== - dependencies: - "@types/react" "*" - "@types/react-native" "^0.70" - "@types/react-native@*": version "0.73.0" resolved "https://registry.npmjs.org/@types/react-native/-/react-native-0.73.0.tgz#b316be230745779814caa533360262140b0f5984" @@ -4200,13 +4222,6 @@ dependencies: react-native "*" -"@types/react-native@^0.70": - version "0.70.19" - resolved "https://registry.npmjs.org/@types/react-native/-/react-native-0.70.19.tgz#b4e651dcf7f49c69ff3a4c3072584cad93155582" - integrity sha512-c6WbyCgWTBgKKMESj/8b4w+zWcZSsCforson7UdXtXMecG3MxCinYi6ihhrHVPyUrVzORsvEzK8zg32z4pK6Sg== - dependencies: - "@types/react" "*" - "@types/react-reconciler@^0.28.0": version "0.28.9" resolved "https://registry.npmjs.org/@types/react-reconciler/-/react-reconciler-0.28.9.tgz#d24b4864c384e770c83275b3fe73fba00269c83b" @@ -7458,6 +7473,15 @@ find-up@^5.0.0: locate-path "^6.0.0" path-exists "^4.0.0" +find-up@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-7.0.0.tgz#e8dec1455f74f78d888ad65bf7ca13dd2b4e66fb" + integrity sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g== + dependencies: + locate-path "^7.2.0" + path-exists "^5.0.0" + unicorn-magic "^0.1.0" + find-yarn-workspace-root@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz#f47fb8d239c900eb78179aa81b66673eac88f7bd" @@ -9491,6 +9515,13 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" +locate-path@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-7.2.0.tgz#69cb1779bd90b35ab1e771e1f2f89a202c2a8a8a" + integrity sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA== + dependencies: + p-locate "^6.0.0" + lodash-es@^4.17.4: version "4.17.21" resolved "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" @@ -10881,6 +10912,13 @@ p-limit@^2.0.0, p-limit@^2.2.0: dependencies: p-try "^2.0.0" +p-limit@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644" + integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ== + dependencies: + yocto-queue "^1.0.0" + p-locate@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" @@ -10902,6 +10940,13 @@ p-locate@^5.0.0: dependencies: p-limit "^3.0.2" +p-locate@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-6.0.0.tgz#3da9a49d4934b901089dca3302fa65dc5a05c04f" + integrity sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw== + dependencies: + p-limit "^4.0.0" + p-map@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" @@ -11047,6 +11092,11 @@ path-exists@^4.0.0: resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== +path-exists@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-5.0.0.tgz#a6aad9489200b21fab31e49cf09277e5116fb9e7" + integrity sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ== + path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" @@ -11744,14 +11794,6 @@ react-native-uuid@2.0.3: resolved "https://registry.npmjs.org/react-native-uuid/-/react-native-uuid-2.0.3.tgz#f85f8a8d68e52e3f1c18ba0f02ec7776f9d4a0da" integrity sha512-f/YfIS2f5UB+gut7t/9BKGSCYbRA9/74A5R1MDp+FLYsuS+OSWoiM/D8Jko6OJB6Jcu3v6ONuddvZKHdIGpeiw== -react-native-vector-icons@10.2.0: - version "10.2.0" - resolved "https://registry.npmjs.org/react-native-vector-icons/-/react-native-vector-icons-10.2.0.tgz#f438f2ca16f7d6be658fd6ec8f0d2b7e2132b91c" - integrity sha512-n5HGcxUuVaTf9QJPs/W22xQpC2Z9u0nb0KgLPnVltP8vdUvOp6+R26gF55kilP/fV4eL4vsAHUqUjewppJMBOQ== - dependencies: - prop-types "^15.7.2" - yargs "^16.1.1" - react-native-worklets@0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/react-native-worklets/-/react-native-worklets-0.5.1.tgz#d153242655e3757b6c62a474768831157316ad33" @@ -13542,6 +13584,11 @@ unicode-property-aliases-ecmascript@^2.0.0: resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz#301d4f8a43d2b75c97adfad87c9dd5350c9475d1" integrity sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ== +unicorn-magic@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/unicorn-magic/-/unicorn-magic-0.1.0.tgz#1bb9a51c823aaf9d73a8bfcd3d1a23dde94b0ce4" + integrity sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ== + unique-string@~2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" @@ -14084,7 +14131,7 @@ yargs@^15.1.0, yargs@^15.3.1, yargs@^15.4.1: y18n "^4.0.0" yargs-parser "^18.1.2" -yargs@^16.0.0, yargs@^16.0.3, yargs@^16.1.1: +yargs@^16.0.0, yargs@^16.0.3: version "16.2.0" resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== @@ -14120,6 +14167,11 @@ yocto-queue@^0.1.0: resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== +yocto-queue@^1.0.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.2.2.tgz#3e09c95d3f1aa89a58c114c99223edf639152c00" + integrity sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ== + zen-observable-ts@^0.8.11: version "0.8.21" resolved "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-0.8.21.tgz#85d0031fbbde1eba3cd07d3ba90da241215f421d"