From fc1ddab1210c3acca9215c13f27b6978882a1c3c Mon Sep 17 00:00:00 2001 From: Mad Dinh Date: Tue, 11 Aug 2026 22:38:10 +0700 Subject: [PATCH 1/3] docs: profile arrow transition design --- ...profile-scroll-to-top-transition-design.md | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 example/docs/superpowers/specs/2026-08-11-profile-scroll-to-top-transition-design.md diff --git a/example/docs/superpowers/specs/2026-08-11-profile-scroll-to-top-transition-design.md b/example/docs/superpowers/specs/2026-08-11-profile-scroll-to-top-transition-design.md new file mode 100644 index 0000000..e9497c5 --- /dev/null +++ b/example/docs/superpowers/specs/2026-08-11-profile-scroll-to-top-transition-design.md @@ -0,0 +1,29 @@ +# Profile Scroll-to-Top Transition Design + +## Goal + +Make the Profile tab's floating scroll-to-top arrow follow scrolling smoothly without changing the existing Motionify behavior elsewhere on the screen. + +## Design + +- Render the Profile list with Reanimated's `Animated.ScrollView`. +- Track its native UI-thread offset with `useAnimatedRef` and `useScrollOffset`. +- Pass that shared offset explicitly to the arrow's `MotionifyViewWithInterpolation`. +- Clamp a combined transition over roughly 80–260 px of scroll: + - opacity: hidden to visible; + - scale: 0.7 to 1; + - translateY: 12 to 0. +- Keep the existing `useMotionify` scroll handler attached so the floating header, status cards, and bottom-tab behavior remain unchanged. +- Keep the arrow press behavior: animate the same scroll view back to offset zero. + +## Scope + +Only `src/screens/core/Profile/index.tsx` should require behavior changes. No navigation, library, or shared animation API changes are planned. + +## Verification + +- TypeScript type-check passes. +- On iOS Simulator, entering Profile and scrolling through the reveal range produces a continuous arrow transition with no visible jump. +- Scrolling back upward reverses the interpolation smoothly. +- Pressing the visible arrow still animates to the top. +- Existing Profile header and tab-bar reactions continue working. From 36dd26d05170dcc63f7869a4de9cc81d5d5d4b6f Mon Sep 17 00:00:00 2001 From: Mad Dinh Date: Tue, 11 Aug 2026 23:09:38 +0700 Subject: [PATCH 2/3] fix(example): align Expo navigation and startup --- example/app.config.ts | 10 +- example/assets/bootsplash/logo.png | Bin 2609 -> 2670 bytes example/assets/bootsplash/logo@1,5x.png | Bin 3374 -> 3049 bytes example/assets/bootsplash/logo@2x.png | Bin 4246 -> 4336 bytes example/assets/bootsplash/logo@3x.png | Bin 6177 -> 7147 bytes example/assets/bootsplash/logo@4x.png | Bin 8816 -> 11976 bytes example/assets/bootsplash/manifest.json | 6 +- example/bun.lock | 294 +++++------------- example/package.json | 14 +- example/src/components/BottomTabBar/index.tsx | 8 +- example/src/components/Button/index.tsx | 9 +- example/src/components/Header/index.tsx | 2 +- example/src/components/Indicator/index.tsx | 2 +- example/src/components/Input/type.ts | 2 +- example/src/hooks/useCommon.ts | 2 +- example/src/libs/reactive/ReactiveView.tsx | 2 +- example/src/navigators/InitializeApp.tsx | 47 +-- example/src/navigators/RootNavigator.tsx | 13 +- example/src/navigators/global/index.ts | 4 +- example/src/navigators/native-stack.ts | 5 + example/src/navigators/stack/auth.tsx | 2 +- example/src/navigators/stack/bottom-tab.tsx | 13 +- example/src/navigators/stack/main.tsx | 2 +- example/src/navigators/stack/other.tsx | 2 +- example/src/navigators/stack/root.tsx | 6 +- .../src/screens/auth/ForgotPassword/index.tsx | 2 +- example/src/screens/auth/SignIn/index.tsx | 2 +- example/src/screens/auth/SignUp/index.tsx | 2 +- example/src/screens/core/Categories/index.tsx | 2 +- example/src/screens/core/Completed/index.tsx | 2 +- .../src/screens/core/EnterCategory/index.tsx | 2 +- .../src/screens/core/EnterTaskify/index.tsx | 2 +- example/src/screens/core/Home/index.tsx | 2 +- example/src/screens/core/Taskify/index.tsx | 2 +- example/src/screens/others/Onboard/index.tsx | 2 +- example/src/screens/others/Splash/index.tsx | 56 ++-- example/src/screens/others/Splash/style.ts | 21 +- example/src/screens/others/Welcome/index.tsx | 2 +- example/src/stores/slices/taskSlice.ts | 8 + example/src/stores/types/task.ts | 1 + example/src/styles/app-styles.ts | 2 +- .../src/types/react-native-indicators.d.ts | 15 + example/src/utils/helper/app.ts | 4 +- example/src/utils/holder/navigation.ts | 2 +- 44 files changed, 238 insertions(+), 338 deletions(-) create mode 100644 example/src/navigators/native-stack.ts create mode 100644 example/src/types/react-native-indicators.d.ts diff --git a/example/app.config.ts b/example/app.config.ts index 2786603..2621a71 100644 --- a/example/app.config.ts +++ b/example/app.config.ts @@ -76,7 +76,15 @@ export default (config: ExpoConfig): ExpoConfig => ({ }, plugins: [ "expo-router", - ["react-native-bootsplash", { assetsDir: "./assets/bootsplash" }], + [ + "react-native-bootsplash", + { + logo: "./assets/icons/logo/logo.png", + background: "#FAFAFA", + logoWidth: 110, + assetsOutput: "./assets/bootsplash", + }, + ], [ "expo-build-properties", { diff --git a/example/assets/bootsplash/logo.png b/example/assets/bootsplash/logo.png index aad3f0811f0c21227f3722f81d472468438de6f3..c851d9c684caae4607741bf717853b751879c162 100644 GIT binary patch literal 2670 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 Y{}c08mmc9mf!{tzR|~3{uVEGVU*7su!2kdN literal 3374 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 XL6Mmq^GA8$SBSyjHe9Dv%P#zX+x);= literal 4246 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 diff --git a/example/assets/bootsplash/logo@3x.png b/example/assets/bootsplash/logo@3x.png index 882e0ab2ebb2d6a09368e7758ba329651e703416..33979d3be10778cf0a1a125f1b49613867a329b6 100644 GIT binary patch literal 7147 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 diff --git a/example/assets/bootsplash/logo@4x.png b/example/assets/bootsplash/logo@4x.png index e08d46c8bb3a47f770211dff27a07b53467eb507..1982d170e987023d89ef0f06ef8425e05b0f2e49 100644 GIT binary patch literal 11976 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 WpdBaFMG&?XAn{Z7N0qRi|Nj64DB)EA literal 8816 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 diff --git a/example/assets/bootsplash/manifest.json b/example/assets/bootsplash/manifest.json index 728e3e9..cf7e9b1 100644 --- a/example/assets/bootsplash/manifest.json +++ b/example/assets/bootsplash/manifest.json @@ -1,7 +1,7 @@ { - "background": "#f5fcff", + "background": "#fafafa", "logo": { - "width": 100, - "height": 61 + "width": 110, + "height": 67 } } diff --git a/example/bun.lock b/example/bun.lock index b15c273..0d61d90 100644 --- a/example/bun.lock +++ b/example/bun.lock @@ -14,6 +14,7 @@ "@react-navigation/elements": "^2.7.0", "@react-navigation/native": "^7.1.18", "@reduxjs/toolkit": "^2.9.2", + "@shopify/react-native-skia": "2.6.2", "axios": "^1.12.2", "eas-local-cache": "^1.0.3", "expo": "~57.0.11", @@ -39,7 +40,7 @@ "react-fast-compare": "^3.2.2", "react-i18next": "^17.0.11", "react-native": "0.86.2", - "react-native-bootsplash": "^6.3.10", + "react-native-bootsplash": "^7.3.2", "react-native-gesture-handler": "~2.32.0", "react-native-indicators": "^0.17.0", "react-native-localize": "^3.5.4", @@ -65,6 +66,9 @@ }, }, }, + "trustedDependencies": [ + "@shopify/react-native-skia", + ], "packages": { "@adobe/css-tools": ["@adobe/css-tools@4.5.0", "", {}, "sha512-6OzddxPio9UiWTCemp4N8cYLV2ZN1ncRnV1cVGtve7dhPOtRkleRyx32GQCYSwDYgaHU3USMm84tNsvKzRCa1Q=="], @@ -114,8 +118,6 @@ "@babel/helpers": ["@babel/helpers@7.29.7", "", { "dependencies": { "@babel/template": "^7.29.7", "@babel/types": "^7.29.7" } }, "sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg=="], - "@babel/highlight": ["@babel/highlight@7.25.9", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.25.9", "chalk": "^2.4.2", "js-tokens": "^4.0.0", "picocolors": "^1.0.0" } }, "sha512-llL88JShoCsth8fF8R4SJnIn+WLvR6ccFxu1H3FlMhDontdcmZWf2HgIZ7AIqV3Xcck1idlohrN4EUBQz6klbw=="], - "@babel/parser": ["@babel/parser@7.29.8", "", { "dependencies": { "@babel/types": "^7.29.8" }, "bin": "./bin/babel-parser.js" }, "sha512-E8lTAYNB1KW+FH+VGJuZM1ioAx2E6oVlvQFRrf5P8ZZmsiJXYAD9vTFV7yyEURNzgh1dFqMZuO6tUwcARbqFCA=="], "@babel/plugin-proposal-decorators": ["@babel/plugin-proposal-decorators@7.29.7", "", { "dependencies": { "@babel/helper-create-class-features-plugin": "^7.29.7", "@babel/helper-plugin-utils": "^7.29.7", "@babel/plugin-syntax-decorators": "^7.29.7" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-EtU0Hi3GvrTqD56xKmZvV/uCXK2ZbwVNPNLAquVItcAZpUhkXwWlo3Fmj0c2LxgSf2I8IDULeAepwNP1OefLXg=="], @@ -326,7 +328,59 @@ "@humanwhocodes/retry": ["@humanwhocodes/retry@0.4.3", "", {}, "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ=="], - "@isaacs/cliui": ["@isaacs/cliui@8.0.2", "", { "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", "strip-ansi": "^7.0.1", "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", "wrap-ansi": "^8.1.0", "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" } }, "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA=="], + "@img/colour": ["@img/colour@1.1.0", "", {}, "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ=="], + + "@img/sharp-darwin-arm64": ["@img/sharp-darwin-arm64@0.35.3", "", { "optionalDependencies": { "@img/sharp-libvips-darwin-arm64": "1.3.2" }, "os": "darwin", "cpu": "arm64" }, "sha512-RMnFX7YQsMoh7lWfcM4NEHHymBX/rLuKNPVM84XE9ONPcaSCDgE7CHIHpSgPcO2xcRthgBy1HfNO319mwhIAkg=="], + + "@img/sharp-darwin-x64": ["@img/sharp-darwin-x64@0.35.3", "", { "optionalDependencies": { "@img/sharp-libvips-darwin-x64": "1.3.2" }, "os": "darwin", "cpu": "x64" }, "sha512-Xo+5uFBtLN0BKqieTxiFzFPQAUlBbbH5iBKyRX/z1JrbnYsHTfKJnUfL8+p2TPXr1pXqao4eeL4Rl144uDpK9w=="], + + "@img/sharp-freebsd-wasm32": ["@img/sharp-freebsd-wasm32@0.35.3", "", { "dependencies": { "@img/sharp-wasm32": "0.35.3" }, "os": "freebsd" }, "sha512-lUxcqWIj2wMQ9BrwNjngcr1gWUr5xgaGThBRqPPalIC2n67Cqj1uPh8NnA/ZhAg8hUbKl+kVHKwgUIwe6ZYPrg=="], + + "@img/sharp-libvips-darwin-arm64": ["@img/sharp-libvips-darwin-arm64@1.3.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-9J6ypZFpQBj4YnePGoq/S38w6nz+vqg5WZLrLGY4YuSemdMq47GMLBPO42MzwdGwpg/agZ7xzZcFHa48xlywfg=="], + + "@img/sharp-libvips-darwin-x64": ["@img/sharp-libvips-darwin-x64@1.3.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-m2pW1n6cns9VaubNwsZ+c3CRYjxNQWgJ5gPlnL1nbBcpkBvFm6SCFN5o0psFHI8w9n11NKhFkeEDns98tiqbEw=="], + + "@img/sharp-libvips-linux-arm": ["@img/sharp-libvips-linux-arm@1.3.2", "", { "os": "linux", "cpu": "arm" }, "sha512-1eMLzy92I4J6rmi4mAT8yC3HxOtniyGELlzGbNMLLeqe052ahFQ0h6LFq+lh5DsDIdYViIDst08abvSbcEdLXQ=="], + + "@img/sharp-libvips-linux-arm64": ["@img/sharp-libvips-linux-arm64@1.3.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-dqVSFynCox4C/J8kT16V7SIFAns0IjgLwkvYT7p8LQVmJ5OS5b6tI9IGflxTeuBS//zXeFIUbwt5dwxyZ17cnA=="], + + "@img/sharp-libvips-linux-ppc64": ["@img/sharp-libvips-linux-ppc64@1.3.2", "", { "os": "linux", "cpu": "ppc64" }, "sha512-3z0NHDxD6n5I9gc05U1eW1AyRm+Gznzq3naMrthPNqE6oYykcogW0l/jfpJdjYnuNl8R7yI9pNbE1XiUeyq0Aw=="], + + "@img/sharp-libvips-linux-riscv64": ["@img/sharp-libvips-linux-riscv64@1.3.2", "", { "os": "linux", "cpu": "none" }, "sha512-bsb4rI+NldGOsXuej2r8OdSS8+zXDVaCWxyWrcv6kneTOlgAHtZABRzBBCwdsPiD90J4myNJuHpg6kA20ImW/w=="], + + "@img/sharp-libvips-linux-s390x": ["@img/sharp-libvips-linux-s390x@1.3.2", "", { "os": "linux", "cpu": "s390x" }, "sha512-/ABshyj8gCpyIrNXnHn4LorDJ0HHm1VhXPBlxZ8zAtfVPAaSafXPGn+sUSIRiwaSBy0mmFjSjiXI5mkcwdChKQ=="], + + "@img/sharp-libvips-linux-x64": ["@img/sharp-libvips-linux-x64@1.3.2", "", { "os": "linux", "cpu": "x64" }, "sha512-ITPEtgffGJ0S6G9dRyw/366tJQqFRcHWPHhC+Stpg3Z8AEMrDrTr2lhdz4f/Y/HMbRh//7Z5mBzEpVdi62Oc3w=="], + + "@img/sharp-libvips-linuxmusl-arm64": ["@img/sharp-libvips-linuxmusl-arm64@1.3.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-zE9EdiUzUmg5mDT5a1rk5fYJ6GWPloTwWBYDS14naqHsL+EaMpDj1AWnpLgh3u0YCORv2Tt50wrcrpYqkP97Kw=="], + + "@img/sharp-libvips-linuxmusl-x64": ["@img/sharp-libvips-linuxmusl-x64@1.3.2", "", { "os": "linux", "cpu": "x64" }, "sha512-m0lrLiUt+lBYnCFr8qV/65yMR4E/c7/wf78I5eKTdkEakFAlZ9QlzEM3QIhhAwVeUhLAHLcCq7a7Vszq/oFNZQ=="], + + "@img/sharp-linux-arm": ["@img/sharp-linux-arm@0.35.3", "", { "optionalDependencies": { "@img/sharp-libvips-linux-arm": "1.3.2" }, "os": "linux", "cpu": "arm" }, "sha512-affVWCTLooy8TSxbDx2qkzuDeaWLNVBA+P//FNBirHsXpP2fuBhk5AuboYUnrDnzoXes8GFjpTx0SBFOCRg+FA=="], + + "@img/sharp-linux-arm64": ["@img/sharp-linux-arm64@0.35.3", "", { "optionalDependencies": { "@img/sharp-libvips-linux-arm64": "1.3.2" }, "os": "linux", "cpu": "arm64" }, "sha512-QgKDspHPnrU+GQ55XPhGwyhC8acLVOOSyAvo1oVfFmrIXLkDNmGWzAfDZ4xK8oSA1qBQrALcHX0G5UZni/SuFQ=="], + + "@img/sharp-linux-ppc64": ["@img/sharp-linux-ppc64@0.35.3", "", { "optionalDependencies": { "@img/sharp-libvips-linux-ppc64": "1.3.2" }, "os": "linux", "cpu": "ppc64" }, "sha512-sMd8rDxmpLOwv/7N44klFjOD5DUO7FLdjiXDI0hoxYaf7Ar262dQIEkosE98bps+5HPLtp/EvNqeqQtOycP/IA=="], + + "@img/sharp-linux-riscv64": ["@img/sharp-linux-riscv64@0.35.3", "", { "optionalDependencies": { "@img/sharp-libvips-linux-riscv64": "1.3.2" }, "os": "linux", "cpu": "none" }, "sha512-0Eob78yjlYPfL5vMNWAW55l3R9Y6BQS/gOfe0ZcP9mEz9ohhKSt4im1hayiknXgf8AWrFqMvJcKIdmLmEe7yeQ=="], + + "@img/sharp-linux-s390x": ["@img/sharp-linux-s390x@0.35.3", "", { "optionalDependencies": { "@img/sharp-libvips-linux-s390x": "1.3.2" }, "os": "linux", "cpu": "s390x" }, "sha512-KgAxQ0DxpNOq1rG2t5cgTgShJFGSuU7XO45cqC+1NVOuZnP6tlgZRuSYOfNupGkHID0o3cJOsw4DVeJpMovcGw=="], + + "@img/sharp-linux-x64": ["@img/sharp-linux-x64@0.35.3", "", { "optionalDependencies": { "@img/sharp-libvips-linux-x64": "1.3.2" }, "os": "linux", "cpu": "x64" }, "sha512-8pqvxubL2PGdhlPy6GLqzDYMUjyRmKAwKHYKixpdJYBUK7PJ0C029XdsnpFIdgRZG68fZiGdHVWcKPvtiPB4cA=="], + + "@img/sharp-linuxmusl-arm64": ["@img/sharp-linuxmusl-arm64@0.35.3", "", { "optionalDependencies": { "@img/sharp-libvips-linuxmusl-arm64": "1.3.2" }, "os": "linux", "cpu": "arm64" }, "sha512-Vz0iQjzzcSX3HCbfwFfCSG/9SCIqyO0mH2sXyiHaAYfBk0cRsCWXRyQYX0ovCK/PAQBbTzQ0dsPQHh5MAFL59w=="], + + "@img/sharp-linuxmusl-x64": ["@img/sharp-linuxmusl-x64@0.35.3", "", { "optionalDependencies": { "@img/sharp-libvips-linuxmusl-x64": "1.3.2" }, "os": "linux", "cpu": "x64" }, "sha512-6O1NPKcDVj9QEdg7Hx549EX8U0rp6yXQERqru6yRN7fGBn32UvIRJUlWnk+8xDCiG76hXVBbX82NZ/ZKr0euIg=="], + + "@img/sharp-wasm32": ["@img/sharp-wasm32@0.35.3", "", { "dependencies": { "@emnapi/runtime": "^1.11.1" } }, "sha512-cZ0XkcYGpHZkqW6iCkqTcmUC0CD9DhD5d/qeZlZkfRBn6GnHniZXLUo5+9xw8Iv76YE6LQFN9YNBlKREcCG76w=="], + + "@img/sharp-webcontainers-wasm32": ["@img/sharp-webcontainers-wasm32@0.35.3", "", { "dependencies": { "@img/sharp-wasm32": "0.35.3" }, "cpu": "none" }, "sha512-2rnq7bX3NzeR2T4YWgz8qiG4h3TSdMe+vN1iQXpJleSJ3SM5zQ8Fy2SyyXAWlbxpEZ2Y+Z4u1BePgJEYbSy80Q=="], + + "@img/sharp-win32-arm64": ["@img/sharp-win32-arm64@0.35.3", "", { "os": "win32", "cpu": "arm64" }, "sha512-4bPwFdMbeC4JQ8L8LOyWp6nsHcboP5fxkp6iPOXz2Vg49R42TuMs2whkJ5OAP4/Ul035qOzy0AecOF9VOscn4w=="], + + "@img/sharp-win32-ia32": ["@img/sharp-win32-ia32@0.35.3", "", { "os": "win32", "cpu": "ia32" }, "sha512-r53mXsBN6lFUDiST764SvgwUdHAqM4rPAiDzAmf4fLoB6X/rkfyTrLCg6+g17wJJiCmB3JYgHuUldCWUIRFSXw=="], + + "@img/sharp-win32-x64": ["@img/sharp-win32-x64@0.35.3", "", { "os": "win32", "cpu": "x64" }, "sha512-D4y1vNeZrIIJCN+uHaWVtH86B+aCrdMYYjicy9pXHvbGZeGYLLSd3wdVuC37FxVXlU1ARsk84eKWfWMXGYEqvA=="], "@isaacs/ttlcache": ["@isaacs/ttlcache@1.4.1", "", {}, "sha512-RQgQ4uQ+pLbqXfOmieB91ejmLwvSgv9nLx6sT6sD83s7umBypgg+OIBOBbEUiJXrfpnp9j0mRhYYdzp9uqq3lA=="], @@ -356,8 +410,6 @@ "@nolyfill/is-core-module": ["@nolyfill/is-core-module@1.0.39", "", {}, "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA=="], - "@pkgjs/parseargs": ["@pkgjs/parseargs@0.11.0", "", {}, "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg=="], - "@radix-ui/primitive": ["@radix-ui/primitive@1.1.7", "", {}, "sha512-rqWnm76nYT8HoNNqEjpgJ7Pw/DrBj5iBTrmEPo6HTX5+VJyBNOqTdv4g89G63HuR5g0AaENoAcH7Is5fF2kZ8Q=="], "@radix-ui/react-collection": ["@radix-ui/react-collection@1.1.15", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.5", "@radix-ui/react-context": "1.2.2", "@radix-ui/react-primitive": "2.1.10", "@radix-ui/react-slot": "1.3.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-9W+B9NPF0NaaPh/1NJd3+KqsnlLqU9H7T2rvww+fp+T/evVXdNAyYcnfRQZFOjkR1ajQp3yORlqnI8soawLvNA=="], @@ -404,12 +456,6 @@ "@react-native-community/blur": ["@react-native-community/blur@4.4.1", "", { "peerDependencies": { "react": "*", "react-native": "*" } }, "sha512-XBSsRiYxE/MOEln2ayunShfJtWztHwUxLFcSL20o+HNNRnuUDv+GXkF6FmM2zE8ZUfrnhQ/zeTqvnuDPGw6O8A=="], - "@react-native-community/cli-config-android": ["@react-native-community/cli-config-android@18.0.1", "", { "dependencies": { "@react-native-community/cli-tools": "18.0.1", "chalk": "^4.1.2", "fast-glob": "^3.3.2", "fast-xml-parser": "^4.4.1" } }, "sha512-1wzmGLfS7qgzm0ZfwX/f6Lat/af8/UYdjwtb3ap6RfKNclvIoap0wN6uBeiANmLfk0/BhoG8K1vKtIPwlU/V1A=="], - - "@react-native-community/cli-config-apple": ["@react-native-community/cli-config-apple@18.0.1", "", { "dependencies": { "@react-native-community/cli-tools": "18.0.1", "chalk": "^4.1.2", "execa": "^5.0.0", "fast-glob": "^3.3.2" } }, "sha512-ybr1ZrOSd/Z+oCJ1qVSKVQauvneObTu3VjvYPhhrme7tUUSaYmd3iikaWonbKk5rVp+2WqOFR6Cy7XqVfwwG8A=="], - - "@react-native-community/cli-tools": ["@react-native-community/cli-tools@18.0.1", "", { "dependencies": { "@vscode/sudo-prompt": "^9.0.0", "appdirsjs": "^1.2.4", "chalk": "^4.1.2", "execa": "^5.0.0", "find-up": "^5.0.0", "launch-editor": "^2.9.1", "mime": "^2.4.1", "ora": "^5.4.1", "prompts": "^2.4.2", "semver": "^7.5.2" } }, "sha512-WxWFXwfYhHR2eYiB4lkHZVC/PmIkRWeVHBQKmn0h1mecr3GrHYO4BzW1jpD5Xt6XZ9jojQ9wE5xrCqXjiMSAIQ=="], - "@react-native-masked-view/masked-view": ["@react-native-masked-view/masked-view@0.3.2", "", { "peerDependencies": { "react": ">=16", "react-native": ">=0.57" } }, "sha512-XwuQoW7/GEgWRMovOQtX3A4PrXhyaZm0lVUiY8qJDvdngjLms9Cpdck6SmGAUNqQwcj2EadHC1HwL0bEyoa/SQ=="], "@react-native/assets-registry": ["@react-native/assets-registry@0.86.2", "", {}, "sha512-vcX/mBjWAVnWofu7KecotquI2unZ/tITwA7OGdq/mdY/zmGXIEvYhfEYyOQij/LRqi9WAL+iizInTBWnxDhK/Q=="], @@ -454,6 +500,8 @@ "@rtsao/scc": ["@rtsao/scc@1.1.0", "", {}, "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g=="], + "@shopify/react-native-skia": ["@shopify/react-native-skia@2.6.2", "", { "dependencies": { "canvaskit-wasm": "0.41.0", "react-native-skia-android": "147.1.0", "react-native-skia-apple-ios": "147.1.0", "react-native-skia-apple-macos": "147.1.0", "react-native-skia-apple-tvos": "147.1.0", "react-reconciler": "0.31.0" }, "peerDependencies": { "react": ">=19.0", "react-native": ">=0.78", "react-native-reanimated": ">=3.19.1" }, "optionalPeers": ["react-native", "react-native-reanimated"], "bin": { "install-skia": "scripts/install-libs.js", "setup-skia-web": "scripts/setup-canvaskit.js" } }, "sha512-NzZ3+MRedZAUhguWw9DTCpWFd09Bq+tdGWhimGfJLGckuyoWGyimTiNTmaO2DeeivHTnGdv+eXbw7j/AV3LkRQ=="], + "@sinclair/typebox": ["@sinclair/typebox@0.27.12", "", {}, "sha512-hhyNJ+nbR6ZR7pToHvllEFun9TL0sbL+tk/ON75lo+Xas054uez98qRbsuNt7MBCyZKK4+8Yli/OAGZhmfBZ/g=="], "@standard-schema/spec": ["@standard-schema/spec@1.1.0", "", {}, "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w=="], @@ -564,7 +612,7 @@ "@unrs/resolver-binding-win32-x64-msvc": ["@unrs/resolver-binding-win32-x64-msvc@1.12.2", "", { "os": "win32", "cpu": "x64" }, "sha512-nAB74NfSNKknqQ1RrYj6uz8FcXEomu/MATJZxh/x+BArzN2U3JbOYC0APYzUIGhVY3m5hRxA8VPNdPBoG8txlA=="], - "@vscode/sudo-prompt": ["@vscode/sudo-prompt@9.3.2", "", {}, "sha512-gcXoCN00METUNFeQOFJ+C9xUI0DKB+0EGMVg7wbVYRHBw2Eq3fKisDZOkRdOz3kqXRKOENMfShPOmypw1/8nOw=="], + "@webgpu/types": ["@webgpu/types@0.1.21", "", {}, "sha512-pUrWq3V5PiSGFLeLxoGqReTZmiiXwY3jRkIG5sLLKjyqNxrwm/04b4nw7LSmGWJcKk59XOM/YRTUwOzo4MMlow=="], "@xmldom/xmldom": ["@xmldom/xmldom@0.8.13", "", {}, "sha512-KRYzxepc14G/CEpEGc3Yn+JKaAeT63smlDr+vjB8jRfgTBBI9wRj/nkQEO+ucV8p8I9bfKLWp37uHgFrbntPvw=="], @@ -592,8 +640,6 @@ "ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "appdirsjs": ["appdirsjs@1.2.8", "", {}, "sha512-8zl1xlxeS4a0/36CT6LOaVioPOL8TeLT1b9OHk0j9xSbzmPBuM7lUgWMSTh6SbuF8fbwjcP1rr30OCLpd1fl+A=="], - "arg": ["arg@5.0.2", "", {}, "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg=="], "argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="], @@ -628,8 +674,6 @@ "axios": ["axios@1.19.0", "", { "dependencies": { "follow-redirects": "^1.16.0", "form-data": "^4.0.6", "https-proxy-agent": "^5.0.1", "proxy-from-env": "^2.1.0" } }, "sha512-ht/iuYZXEjFxLH/Hkezgd7m6JKlHHXEUSneaDz8uZe1Gj5QZtCnpyDsckvAiEnT89OEbCLmnte4R4sn7P0EKFw=="], - "b4a": ["b4a@1.8.1", "", { "peerDependencies": { "react-native-b4a": "*" }, "optionalPeers": ["react-native-b4a"] }, "sha512-aiqre1Nr0B/6DgE2N5vwTc+2/oQZ4Wh1t4NznYY4E00y8LCt6NqdRv81so00oo27D8MVKTpUa/MwUUtBLXCoDw=="], - "babel-plugin-polyfill-corejs2": ["babel-plugin-polyfill-corejs2@0.4.17", "", { "dependencies": { "@babel/compat-data": "^7.28.6", "@babel/helper-define-polyfill-provider": "^0.6.8", "semver": "^6.3.1" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "sha512-aTyf30K/rqAsNwN76zYrdtx8obu0E4KoUME29B1xj+B3WxgvWkp943vYQ+z8Mv3lw9xHXMHpvSPOBxzAkIa94w=="], "babel-plugin-polyfill-corejs3": ["babel-plugin-polyfill-corejs3@0.13.0", "", { "dependencies": { "@babel/helper-define-polyfill-provider": "^0.6.5", "core-js-compat": "^3.43.0" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A=="], @@ -648,24 +692,12 @@ "balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="], - "bare-events": ["bare-events@2.9.1", "", { "peerDependencies": { "bare-abort-controller": "*" }, "optionalPeers": ["bare-abort-controller"] }, "sha512-Z0oHEHAFDZkffN8Qc39zNZjQlMDkPJRyyyZieU1VH7u8c5S+qHZ2S8ixdKIAxEjfHO7FJxXmJWgteOghVanIsg=="], - - "bare-fs": ["bare-fs@4.8.0", "", { "dependencies": { "bare-events": "^2.5.4", "bare-path": "^3.0.0", "bare-stream": "^2.6.4", "bare-url": "^2.2.2", "fast-fifo": "^1.3.2" }, "peerDependencies": { "bare-buffer": "*" }, "optionalPeers": ["bare-buffer"] }, "sha512-fM+MhCvdQhZ7NV6S95a07gPSqjIYKn6mFaXfx266wN3ajZGl/+1AzH+ubkXQ0fFZvOe2nk9VHkzdYkQE5zMV3Q=="], - - "bare-path": ["bare-path@3.1.1", "", {}, "sha512-JprUlveX3QjApC1cTpsUOiscADftCGVWkzitbHsRqv84hzYwYHw2mbluddsq5TvI8mH/8Ov1f4BiMAdcB0oYnQ=="], - - "bare-stream": ["bare-stream@2.13.3", "", { "dependencies": { "b4a": "^1.8.1", "streamx": "^2.25.0", "teex": "^1.0.1" }, "peerDependencies": { "bare-abort-controller": "*", "bare-buffer": "*", "bare-events": "*" }, "optionalPeers": ["bare-abort-controller", "bare-buffer", "bare-events"] }, "sha512-Kc+brLqvEqGkjyfiwJmImAOqLZL7OsoLKuavx+hJjgVV3nLTOjloJyPMFxjUPerGGHrNH0fLU06jjykMLWrERQ=="], - - "bare-url": ["bare-url@2.5.2", "", { "dependencies": { "bare-path": "^3.0.0" } }, "sha512-L13PCJzKG8RGvx8V1/DdMi12ERhC3tprr7/8a94BxpmnRsFqxh5XZNdhtMxu5HPkRshYOOWRGY8lDP7ZhpG9Cg=="], - "base64-js": ["base64-js@1.5.1", "", {}, "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="], "baseline-browser-mapping": ["baseline-browser-mapping@2.11.13", "", { "bin": { "baseline-browser-mapping": "dist/cli.cjs" } }, "sha512-k9HNuUVMlqVjQ9UHzfPjIqiDbWw7WqT1AoT7GL8VwvF3r0ZfArtgiSPAlmupyNquNgOJHTuH4CKYf8ttMTWBTQ=="], "big-integer": ["big-integer@1.6.52", "", {}, "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg=="], - "bl": ["bl@4.1.0", "", { "dependencies": { "buffer": "^5.5.0", "inherits": "^2.0.4", "readable-stream": "^3.4.0" } }, "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w=="], - "boolbase": ["boolbase@1.0.0", "", {}, "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww=="], "bplist-creator": ["bplist-creator@0.1.0", "", { "dependencies": { "stream-buffers": "2.2.x" } }, "sha512-sXaHZicyEEmY86WyueLTQesbeoH/mquvarJaQNbjuOQO+7gbFcDEWqKmcWA4cOTLzFlfgvkiVxolk1k5bBIpmg=="], @@ -680,8 +712,6 @@ "bser": ["bser@2.1.1", "", { "dependencies": { "node-int64": "^0.4.0" } }, "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ=="], - "buffer": ["buffer@5.7.1", "", { "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" } }, "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ=="], - "buffer-from": ["buffer-from@1.1.2", "", {}, "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="], "bytes": ["bytes@3.1.2", "", {}, "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="], @@ -698,9 +728,9 @@ "caniuse-lite": ["caniuse-lite@1.0.30001809", "", {}, "sha512-xxWVywk6a6Arlk+hymeycyn/VgqEfLDxupvhH/xiY5SJ/18kmi9o6MiO320DCUzypORHLtvh0I4i04tUhCNHNQ=="], - "chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "canvaskit-wasm": ["canvaskit-wasm@0.41.0", "", { "dependencies": { "@webgpu/types": "0.1.21" } }, "sha512-cnbL02NFB3yOYMF/MtxViZHgD1vh55Pvy+zR8q4JuFvyCPejZP3eClkt2GuZ0S7jOmGMCJXaHBasbMChbR9JZg=="], - "chownr": ["chownr@1.1.4", "", {}, "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="], + "chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], "chrome-launcher": ["chrome-launcher@0.15.2", "", { "dependencies": { "@types/node": "*", "escape-string-regexp": "^4.0.0", "is-wsl": "^2.2.0", "lighthouse-logger": "^1.0.0" }, "bin": { "print-chrome-path": "bin/print-chrome-path.js" } }, "sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ=="], @@ -768,10 +798,6 @@ "decode-uri-component": ["decode-uri-component@0.2.2", "", {}, "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ=="], - "decompress-response": ["decompress-response@6.0.0", "", { "dependencies": { "mimic-response": "^3.1.0" } }, "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ=="], - - "deep-extend": ["deep-extend@0.6.0", "", {}, "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="], - "deep-is": ["deep-is@0.1.4", "", {}, "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="], "deepmerge": ["deepmerge@4.3.1", "", {}, "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A=="], @@ -814,8 +840,6 @@ "eas-local-cache": ["eas-local-cache@1.0.4", "", {}, "sha512-5KhWNj8W8Fxg2Kf9VMH1XCll/1SZN69eXjE7Nwz4O1VrTgKhVp0wPkWcRT3/7GBzrU34M57eMoJlASCihnecWw=="], - "eastasianwidth": ["eastasianwidth@0.2.0", "", {}, "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA=="], - "ee-first": ["ee-first@1.1.1", "", {}, "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="], "electron-to-chromium": ["electron-to-chromium@1.5.404", "", {}, "sha512-3WJtd7/lVq2Jnuz6wed1l9+1ZD2u2Tet1/1NBc4Iedkmgbu+I7YuAqdAQ8T+VZtnwysMsAf3IqSq9D1gyZjA2g=="], @@ -824,8 +848,6 @@ "encodeurl": ["encodeurl@2.0.0", "", {}, "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg=="], - "end-of-stream": ["end-of-stream@1.4.5", "", { "dependencies": { "once": "^1.4.0" } }, "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg=="], - "entities": ["entities@4.5.0", "", {}, "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="], "error-stack-parser": ["error-stack-parser@2.1.4", "", { "dependencies": { "stackframe": "^1.3.4" } }, "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ=="], @@ -890,12 +912,6 @@ "event-target-shim": ["event-target-shim@5.0.1", "", {}, "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ=="], - "events-universal": ["events-universal@1.0.1", "", { "dependencies": { "bare-events": "^2.7.0" } }, "sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw=="], - - "execa": ["execa@5.1.1", "", { "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", "human-signals": "^2.1.0", "is-stream": "^2.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^4.0.1", "onetime": "^5.1.2", "signal-exit": "^3.0.3", "strip-final-newline": "^2.0.0" } }, "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg=="], - - "expand-template": ["expand-template@2.0.3", "", {}, "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg=="], - "expo": ["expo@57.0.12", "", { "dependencies": { "@babel/runtime": "^7.20.0", "@expo/cli": "^57.0.14", "@expo/config": "~57.0.7", "@expo/config-plugins": "~57.0.7", "@expo/devtools": "~57.0.1", "@expo/dom-webview": "~57.0.1", "@expo/fingerprint": "^0.20.7", "@expo/local-build-cache-provider": "^57.0.6", "@expo/log-box": "^57.0.2", "@expo/metro": "~56.0.0", "@expo/metro-config": "~57.0.8", "@ungap/structured-clone": "^1.3.0", "babel-preset-expo": "~57.0.6", "expo-asset": "~57.0.10", "expo-constants": "~57.0.10", "expo-file-system": "~57.0.2", "expo-font": "~57.0.1", "expo-keep-awake": "~57.0.1", "expo-modules-autolinking": "~57.0.9", "expo-modules-core": "~57.0.10", "pretty-format": "^29.7.0", "react-refresh": "^0.14.2", "whatwg-url-minimum": "^0.1.2" }, "peerDependencies": { "@expo/metro-runtime": "*", "react": "*", "react-dom": "*", "react-native": "*", "react-native-web": "*", "react-native-webview": "*" }, "optionalPeers": ["@expo/metro-runtime", "react-dom", "react-native-web", "react-native-webview"], "bin": { "expo": "bin/cli", "fingerprint": "bin/fingerprint", "expo-modules-autolinking": "bin/autolinking" } }, "sha512-sVgXaMjh5uapBvBkik3QibxbKI2g1zNtNeHntjRfixWAI3tlQZbaK4ACdInY4+jUBVymkf8u9BXJUaSes9jdtA=="], "expo-asset": ["expo-asset@57.0.10", "", { "dependencies": { "@expo/image-utils": "^0.11.4", "expo-constants": "~57.0.10" }, "peerDependencies": { "expo": "*", "react": "*", "react-native": "*" } }, "sha512-32QpNkWlb8ftxq3ClAriwFXcZlpzuP7Qx4z3Gc9vhbAm1QZzGsCN+PwYt3fN8W46HBw5qaI6DSXcAyBlYzeVqA=="], @@ -946,16 +962,12 @@ "fast-deep-equal": ["fast-deep-equal@3.1.3", "", {}, "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="], - "fast-fifo": ["fast-fifo@1.3.2", "", {}, "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ=="], - "fast-glob": ["fast-glob@3.3.3", "", { "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.8" } }, "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg=="], "fast-json-stable-stringify": ["fast-json-stable-stringify@2.1.0", "", {}, "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="], "fast-levenshtein": ["fast-levenshtein@2.0.6", "", {}, "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="], - "fast-xml-parser": ["fast-xml-parser@4.5.7", "", { "dependencies": { "strnum": "^1.0.5" }, "bin": { "fxparser": "src/cli/cli.js" } }, "sha512-a6Qh1RMCNbSrU1+sAyAAZH3rTe+OaWJbNZIq0S+ifZciUUOQtlVxBJwoTUE2bYhysmG/RYyI5WJFIKdBahJdrQ=="], - "fastq": ["fastq@1.20.1", "", { "dependencies": { "reusify": "^1.0.4" } }, "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw=="], "fb-dotslash": ["fb-dotslash@0.5.8", "", { "bin": { "dotslash": "bin/dotslash" } }, "sha512-XHYLKk9J4BupDxi9bSEhkfss0m+Vr9ChTrjhf9l2iw3jB5C7BnY4GVPoMcqbrTutsKJso6yj2nAB6BI/F2oZaA=="], @@ -994,14 +1006,10 @@ "for-each": ["for-each@0.3.5", "", { "dependencies": { "is-callable": "^1.2.7" } }, "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg=="], - "foreground-child": ["foreground-child@3.3.1", "", { "dependencies": { "cross-spawn": "^7.0.6", "signal-exit": "^4.0.1" } }, "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw=="], - "form-data": ["form-data@4.0.6", "", { "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "es-set-tostringtag": "^2.1.0", "hasown": "^2.0.4", "mime-types": "^2.1.35" } }, "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ=="], "fresh": ["fresh@0.5.2", "", {}, "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q=="], - "fs-constants": ["fs-constants@1.0.0", "", {}, "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="], - "fs-extra": ["fs-extra@10.1.0", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ=="], "function-bind": ["function-bind@1.1.2", "", {}, "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="], @@ -1022,16 +1030,12 @@ "get-proto": ["get-proto@1.0.1", "", { "dependencies": { "dunder-proto": "^1.0.1", "es-object-atoms": "^1.0.0" } }, "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g=="], - "get-stream": ["get-stream@6.0.1", "", {}, "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg=="], - "get-symbol-description": ["get-symbol-description@1.1.0", "", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6" } }, "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg=="], "get-tsconfig": ["get-tsconfig@4.14.1", "", { "dependencies": { "resolve-pkg-maps": "^1.0.0" } }, "sha512-Dz/6HxkrxgNehhxLVeyv8sad9UzF2xBVeaKBQNDfJ5XiSXmp2gTR0eO0RWiT2NCKS5aGP9jjkOMggTN90qU50A=="], "getenv": ["getenv@2.0.0", "", {}, "sha512-VilgtJj/ALgGY77fiLam5iD336eSWi96Q15JSAG1zi8NRBysm3LXKdGnHb4m5cuyxvOLQQKWpBZAT6ni4FI2iQ=="], - "github-from-package": ["github-from-package@0.0.0", "", {}, "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw=="], - "glob": ["glob@13.0.6", "", { "dependencies": { "minimatch": "^10.2.2", "minipass": "^7.1.3", "path-scurry": "^2.0.2" } }, "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw=="], "glob-parent": ["glob-parent@6.0.2", "", { "dependencies": { "is-glob": "^4.0.3" } }, "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A=="], @@ -1076,14 +1080,10 @@ "https-proxy-agent": ["https-proxy-agent@5.0.1", "", { "dependencies": { "agent-base": "6", "debug": "4" } }, "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA=="], - "human-signals": ["human-signals@2.1.0", "", {}, "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw=="], - "hyphenate-style-name": ["hyphenate-style-name@1.1.0", "", {}, "sha512-WDC/ui2VVRrz3jOVi+XtjqkDjiVjTtFaAGiW37k6b+ohyQ5wYDOGkvCZa8+H0nx3gyvv0+BST9xuOgIyGQ00gw=="], "i18next": ["i18next@26.3.6", "", { "peerDependencies": { "typescript": "^5 || ^6 || ^7" }, "optionalPeers": ["typescript"] }, "sha512-Bu5Z2nAXgfVyM8xvW3jk9EKRIuX37PudsrBViThNFx7CR7aaYTpP01cxNB/E4c4UUzTDiAZRstEhsRfPOL/8xA=="], - "ieee754": ["ieee754@1.2.1", "", {}, "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="], - "ignore": ["ignore@5.3.2", "", {}, "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g=="], "image-size": ["image-size@1.2.1", "", { "dependencies": { "queue": "6.0.2" }, "bin": { "image-size": "bin/image-size.js" } }, "sha512-rH+46sQJ2dlwfjfhCyNx5thzrv+dtmBIhPHk0zgRUukHzZ/kRueTJXoYYsclBaKcSMBWuGbOFXtioLpzTb5euw=="], @@ -1098,8 +1098,6 @@ "inherits": ["inherits@2.0.4", "", {}, "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="], - "ini": ["ini@1.3.8", "", {}, "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="], - "inline-style-prefixer": ["inline-style-prefixer@7.0.1", "", { "dependencies": { "css-in-js-utils": "^3.1.0" } }, "sha512-lhYo5qNTQp3EvSSp3sRvXMbVQTLrvGV6DycRMJ5dm2BLMiJ30wpXKdDdgX+GmJZ5uQMucwRKHamXSst3Sj/Giw=="], "internal-slot": ["internal-slot@1.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "hasown": "^2.0.2", "side-channel": "^1.1.0" } }, "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw=="], @@ -1140,8 +1138,6 @@ "is-glob": ["is-glob@4.0.3", "", { "dependencies": { "is-extglob": "^2.1.1" } }, "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="], - "is-interactive": ["is-interactive@1.0.0", "", {}, "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w=="], - "is-map": ["is-map@2.0.3", "", {}, "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw=="], "is-negative-zero": ["is-negative-zero@2.0.3", "", {}, "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw=="], @@ -1158,16 +1154,12 @@ "is-shared-array-buffer": ["is-shared-array-buffer@1.0.4", "", { "dependencies": { "call-bound": "^1.0.3" } }, "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A=="], - "is-stream": ["is-stream@2.0.1", "", {}, "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg=="], - "is-string": ["is-string@1.1.1", "", { "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" } }, "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA=="], "is-symbol": ["is-symbol@1.1.1", "", { "dependencies": { "call-bound": "^1.0.2", "has-symbols": "^1.1.0", "safe-regex-test": "^1.1.0" } }, "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w=="], "is-typed-array": ["is-typed-array@1.1.15", "", { "dependencies": { "which-typed-array": "^1.1.16" } }, "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ=="], - "is-unicode-supported": ["is-unicode-supported@0.1.0", "", {}, "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw=="], - "is-weakmap": ["is-weakmap@2.0.2", "", {}, "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w=="], "is-weakref": ["is-weakref@1.1.1", "", { "dependencies": { "call-bound": "^1.0.3" } }, "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew=="], @@ -1182,8 +1174,6 @@ "iterator.prototype": ["iterator.prototype@1.1.5", "", { "dependencies": { "define-data-property": "^1.1.4", "es-object-atoms": "^1.0.0", "get-intrinsic": "^1.2.6", "get-proto": "^1.0.0", "has-symbols": "^1.1.0", "set-function-name": "^2.0.2" } }, "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g=="], - "jackspeak": ["jackspeak@3.4.3", "", { "dependencies": { "@isaacs/cliui": "^8.0.2" }, "optionalDependencies": { "@pkgjs/parseargs": "^0.11.0" } }, "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw=="], - "jest-get-type": ["jest-get-type@29.6.3", "", {}, "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw=="], "jest-util": ["jest-util@29.7.0", "", { "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "ci-info": "^3.2.0", "graceful-fs": "^4.2.9", "picomatch": "^2.2.3" } }, "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA=="], @@ -1226,8 +1216,6 @@ "lan-network": ["lan-network@0.2.1", "", { "bin": { "lan-network": "dist/lan-network-cli.js" } }, "sha512-ONPnazC96VKDntab9j9JKwIWhZ4ZUceB4A9Epu4Ssg0hYFmtHZSeQ+n15nIwTFmcBUKtExOer8WTJ4GF9MO64A=="], - "launch-editor": ["launch-editor@2.14.1", "", { "dependencies": { "picocolors": "^1.1.1", "shell-quote": "^1.8.4" } }, "sha512-QWBrQsMpH7gPr965dsKD/3cKWiNoTjpATQf++Xq63N6sKRGMwlVXz41O1IZTMfZQgBctD/K5Zt06+/I6pP6+HA=="], - "leven": ["leven@3.1.0", "", {}, "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A=="], "levn": ["levn@0.4.1", "", { "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" } }, "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ=="], @@ -1322,15 +1310,13 @@ "micromatch": ["micromatch@4.0.8", "", { "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" } }, "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA=="], - "mime": ["mime@2.6.0", "", { "bin": { "mime": "cli.js" } }, "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg=="], + "mime": ["mime@1.6.0", "", { "bin": { "mime": "cli.js" } }, "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="], "mime-db": ["mime-db@1.52.0", "", {}, "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="], "mime-types": ["mime-types@2.1.35", "", { "dependencies": { "mime-db": "1.52.0" } }, "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="], - "mimic-fn": ["mimic-fn@2.1.0", "", {}, "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="], - - "mimic-response": ["mimic-response@3.1.0", "", {}, "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ=="], + "mimic-fn": ["mimic-fn@1.2.0", "", {}, "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ=="], "min-indent": ["min-indent@1.0.1", "", {}, "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg=="], @@ -1342,8 +1328,6 @@ "mkdirp": ["mkdirp@1.0.4", "", { "bin": { "mkdirp": "bin/cmd.js" } }, "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="], - "mkdirp-classic": ["mkdirp-classic@0.5.3", "", {}, "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A=="], - "moment": ["moment@2.30.1", "", {}, "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how=="], "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], @@ -1352,18 +1336,12 @@ "nanoid": ["nanoid@3.3.18", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w=="], - "napi-build-utils": ["napi-build-utils@2.0.0", "", {}, "sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA=="], - "napi-postinstall": ["napi-postinstall@0.3.4", "", { "bin": { "napi-postinstall": "lib/cli.js" } }, "sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ=="], "natural-compare": ["natural-compare@1.4.0", "", {}, "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="], "negotiator": ["negotiator@0.6.3", "", {}, "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="], - "node-abi": ["node-abi@3.94.0", "", { "dependencies": { "semver": "^7.3.5" } }, "sha512-W5ZNO5KRPB5TkYmGVD9F6YqhsglXJzE6etpbmT+f6EQElhiX/UTG551cnsRGvLG3fyZEg9HwaDmNmj5nwJ4z9g=="], - - "node-addon-api": ["node-addon-api@6.1.0", "", {}, "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA=="], - "node-exports-info": ["node-exports-info@1.6.2", "", { "dependencies": { "array.prototype.flatmap": "^1.3.3", "es-errors": "^1.3.0", "object.entries": "^1.1.9", "semver": "^6.3.1" } }, "sha512-kXs9Go0cah0qHVV2v389IXQLdLCeE1xfFtjOAF+iobu0OIoG1pje8At2vMHyaPMiPMnG/LWP50twML21eMcAag=="], "node-fetch": ["node-fetch@2.7.0", "", { "dependencies": { "whatwg-url": "^5.0.0" }, "peerDependencies": { "encoding": "^0.1.0" }, "optionalPeers": ["encoding"] }, "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A=="], @@ -1378,8 +1356,6 @@ "npm-package-arg": ["npm-package-arg@11.0.3", "", { "dependencies": { "hosted-git-info": "^7.0.0", "proc-log": "^4.0.0", "semver": "^7.3.5", "validate-npm-package-name": "^5.0.0" } }, "sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw=="], - "npm-run-path": ["npm-run-path@4.0.1", "", { "dependencies": { "path-key": "^3.0.0" } }, "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw=="], - "nth-check": ["nth-check@2.1.1", "", { "dependencies": { "boolbase": "^1.0.0" } }, "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w=="], "nullthrows": ["nullthrows@1.1.1", "", {}, "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw=="], @@ -1406,9 +1382,7 @@ "on-headers": ["on-headers@1.1.0", "", {}, "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A=="], - "once": ["once@1.4.0", "", { "dependencies": { "wrappy": "1" } }, "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="], - - "onetime": ["onetime@5.1.2", "", { "dependencies": { "mimic-fn": "^2.1.0" } }, "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg=="], + "onetime": ["onetime@2.0.1", "", { "dependencies": { "mimic-fn": "^1.0.0" } }, "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ=="], "open": ["open@7.4.2", "", { "dependencies": { "is-docker": "^2.0.0", "is-wsl": "^2.1.1" } }, "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q=="], @@ -1422,8 +1396,6 @@ "p-locate": ["p-locate@5.0.0", "", { "dependencies": { "p-limit": "^3.0.2" } }, "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw=="], - "package-json-from-dist": ["package-json-from-dist@1.0.1", "", {}, "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw=="], - "parent-module": ["parent-module@1.0.1", "", { "dependencies": { "callsites": "^3.0.0" } }, "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g=="], "parse-png": ["parse-png@2.1.0", "", { "dependencies": { "pngjs": "^3.3.0" } }, "sha512-Nt/a5SfCLiTnQAjx3fHlqp8hRgTL3z7kTQZzvIMS9uCAepnCyjpdEc6M/sz69WqMBdaDBw9sF1F1UaHROYzGkQ=="], @@ -1454,8 +1426,6 @@ "postcss-value-parser": ["postcss-value-parser@4.2.0", "", {}, "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="], - "prebuild-install": ["prebuild-install@7.1.3", "", { "dependencies": { "detect-libc": "^2.0.0", "expand-template": "^2.0.3", "github-from-package": "0.0.0", "minimist": "^1.2.3", "mkdirp-classic": "^0.5.3", "napi-build-utils": "^2.0.0", "node-abi": "^3.3.0", "pump": "^3.0.0", "rc": "^1.2.7", "simple-get": "^4.0.0", "tar-fs": "^2.0.0", "tunnel-agent": "^0.6.0" }, "bin": { "prebuild-install": "bin.js" } }, "sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug=="], - "prelude-ls": ["prelude-ls@1.2.1", "", {}, "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="], "prettier": ["prettier@3.9.6", "", { "bin": { "prettier": "bin/prettier.cjs" } }, "sha512-OpN0zzVdiaiAhxpuuj5efpIS4sY9j7bY6uR5mnj5yPzGkdkjNKSJeUThPb60Jw29QuAZgA4o+/iB49kFiaBX6g=="], @@ -1474,8 +1444,6 @@ "proxy-from-env": ["proxy-from-env@2.1.0", "", {}, "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA=="], - "pump": ["pump@3.0.4", "", { "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } }, "sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA=="], - "punycode": ["punycode@2.3.1", "", {}, "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="], "query-string": ["query-string@7.1.3", "", { "dependencies": { "decode-uri-component": "^0.2.2", "filter-obj": "^1.1.0", "split-on-first": "^1.0.0", "strict-uri-encode": "^2.0.0" } }, "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg=="], @@ -1486,8 +1454,6 @@ "range-parser": ["range-parser@1.2.1", "", {}, "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="], - "rc": ["rc@1.2.8", "", { "dependencies": { "deep-extend": "^0.6.0", "ini": "~1.3.0", "minimist": "^1.2.0", "strip-json-comments": "~2.0.1" }, "bin": { "rc": "./cli.js" } }, "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw=="], - "react": ["react@19.2.3", "", {}, "sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA=="], "react-devtools-core": ["react-devtools-core@6.1.5", "", { "dependencies": { "shell-quote": "^1.6.1", "ws": "^7" } }, "sha512-ePrwPfxAnB+7hgnEr8vpKxL9cmnp7F322t8oqcPshbIQQhDKgFDW4tjhF2wjVbdXF9O/nyuy3sQWd9JGpiLPvA=="], @@ -1506,7 +1472,7 @@ "react-native-animatable": ["react-native-animatable@1.4.0", "", { "dependencies": { "prop-types": "^15.8.1" } }, "sha512-DZwaDVWm2NBvBxf7I0wXKXLKb/TxDnkV53sWhCvei1pRyTX3MVFpkvdYBknNBqPrxYuAIlPxEp7gJOidIauUkw=="], - "react-native-bootsplash": ["react-native-bootsplash@6.3.12", "", { "dependencies": { "@expo/config-plugins": "^9.0.0 || ^10.0.0", "@react-native-community/cli-config-android": "^18.0.0", "@react-native-community/cli-config-apple": "^18.0.0", "@react-native-community/cli-tools": "^18.0.0", "commander": "^13.1.0", "detect-indent": "^6.1.0", "fs-extra": "^11.3.0", "node-html-parser": "^7.0.1", "picocolors": "^1.1.1", "prettier": "^3.5.3", "react-native-is-edge-to-edge": "^1.2.1", "sharp": "^0.32.6", "ts-dedent": "^2.2.0", "xml-formatter": "^3.6.5" }, "peerDependencies": { "react": "*", "react-native": "*" }, "bin": { "react-native-bootsplash": "cli.js" } }, "sha512-o+3rj6fNJGMW2tcWIyB3P1Mps4O4yU3+qcHeLmd7FFzABVzez0To7bpeQ7rTApdb3bIg8s61R8PI7+fwkakGBQ=="], + "react-native-bootsplash": ["react-native-bootsplash@7.3.2", "", { "dependencies": { "@expo/config-plugins": "*", "commander": "^14.0.3", "detect-indent": "^6.1.0", "fast-glob": "^3.3.3", "node-html-parser": "^7.1.0", "picocolors": "^1.1.1", "prettier": "^3.8.1", "react-native-is-edge-to-edge": "^1.3.1", "sharp": "^0.35.2", "ts-dedent": "^2.2.0", "xml-formatter": "^3.7.0" }, "peerDependencies": { "react": "*", "react-native": "*" }, "bin": { "react-native-bootsplash": "cli.js" } }, "sha512-tPOmyufxKUin+1cDjsJqz1dLBDBV1O7kO+5uZgATih73eDkYgyDerXwjtorwrE0U6ILvTvOJ7rA4PiW1t7PTxQ=="], "react-native-drawer-layout": ["react-native-drawer-layout@4.2.10", "", { "dependencies": { "color": "^4.2.3", "use-latest-callback": "^0.2.4" }, "peerDependencies": { "react": ">= 18.2.0", "react-native": "*", "react-native-gesture-handler": ">= 2.0.0", "react-native-reanimated": ">= 2.0.0" } }, "sha512-O6TQdZ5LSm3dqnuR4rX9KPtE+9dVg7jsezEYz1l01rkQTe4fQvYZIoPu2sZFl5X2N70uhRdjnPULySVR3sBUwA=="], @@ -1530,12 +1496,22 @@ "react-native-screens": ["react-native-screens@4.26.2", "", { "dependencies": { "react-freeze": "^1.0.0", "warn-once": "^0.1.0" }, "peerDependencies": { "react": "*", "react-native": "*" } }, "sha512-2XnWsZToKj76trGtEZzx5ELD/qOICFEprEeUntImmitQFVUkea27fiWdUSITArI356Y1qynpXZINW+Unbhky/A=="], + "react-native-skia-android": ["react-native-skia-android@147.1.0", "", {}, "sha512-pWA0M0G74AhjEop0HLCkjWJMup2HJxOmuUjfPt6kSDhYeWKVx8AEzWh0Fh19ah78zE/s4hD0Of0Tyem5shhiTg=="], + + "react-native-skia-apple-ios": ["react-native-skia-apple-ios@147.1.0", "", {}, "sha512-cr4rWe4Bf0H0TTutUp5cgHt5/Felttl1bh4BAAAsgAeL2F10FAK9urX8spjUshzMwjqXD7rNOWuFzU6ZcNlGKw=="], + + "react-native-skia-apple-macos": ["react-native-skia-apple-macos@147.1.0", "", {}, "sha512-Qbv0Y7LgawtRKuGk8gnGeh8nDWwNiu03LcX0mVaQzBBbxFDYvqejanA+AkO3p8gsQb+fsXRc9DAk+U8cBnzZvA=="], + + "react-native-skia-apple-tvos": ["react-native-skia-apple-tvos@147.1.0", "", {}, "sha512-b+4vILXHPu++t8H41PHLBVsTab2LPqwXNdzgdScyl4+Cu8Ta34aUQW3T469cB0ogAMPdu//KV00w4YVpDZoRUQ=="], + "react-native-svg": ["react-native-svg@15.15.4", "", { "dependencies": { "css-select": "^5.1.0", "css-tree": "^1.1.3", "warn-once": "0.1.1" }, "peerDependencies": { "react": "*", "react-native": "*" } }, "sha512-boT/vIRgj6zZKBpfTPJJiYWMbZE9duBMOwPK6kCSTgxsS947IFMOq9OgIFkpWZTB7t229H24pDRkh3W9ZK/J1A=="], "react-native-web": ["react-native-web@0.21.2", "", { "dependencies": { "@babel/runtime": "^7.18.6", "@react-native/normalize-colors": "^0.74.1", "fbjs": "^3.0.4", "inline-style-prefixer": "^7.0.1", "memoize-one": "^6.0.0", "nullthrows": "^1.1.1", "postcss-value-parser": "^4.2.0", "styleq": "^0.1.3" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" } }, "sha512-SO2t9/17zM4iEnFvlu2DA9jqNbzNhoUP+AItkoCOyFmDMOhUnBBznBDCYN92fGdfAkfQlWzPoez6+zLxFNsZEg=="], "react-native-worklets": ["react-native-worklets@0.10.1", "", { "dependencies": { "@babel/plugin-transform-arrow-functions": "^7.27.1", "@babel/plugin-transform-class-properties": "^7.28.6", "@babel/plugin-transform-classes": "^7.28.6", "@babel/plugin-transform-nullish-coalescing-operator": "^7.28.6", "@babel/plugin-transform-optional-chaining": "^7.28.6", "@babel/plugin-transform-shorthand-properties": "^7.27.1", "@babel/plugin-transform-template-literals": "^7.27.1", "@babel/plugin-transform-unicode-regex": "^7.27.1", "@babel/preset-typescript": "^7.28.5", "@babel/types": "^7.27.1", "convert-source-map": "^2.0.0", "semver": "^7.7.4" }, "peerDependencies": { "@babel/core": "*", "@react-native/metro-config": "*", "react": "*", "react-native": "0.83 - 0.86" } }, "sha512-62mRM19bDpfpdI8HLkEErcdOsrAPDtE9lA/sw+5lLRpzBHNhxaoj9QyY2KjXqUmirelxkX4zuPGTC3VdA0feJA=="], + "react-reconciler": ["react-reconciler@0.31.0", "", { "dependencies": { "scheduler": "^0.25.0" }, "peerDependencies": { "react": "^19.0.0" } }, "sha512-7Ob7Z+URmesIsIVRjnLoDGwBEG/tVitidU0nMsqX/eeJaLY89RISO/10ERe0MqmzuKUUB1rmY+h1itMbUHg9BQ=="], + "react-redux": ["react-redux@9.3.0", "", { "dependencies": { "@types/use-sync-external-store": "^0.0.6", "use-sync-external-store": "^1.4.0" }, "peerDependencies": { "@types/react": "^18.2.25 || ^19", "react": "^18.0 || ^19", "redux": "^5.0.0" }, "optionalPeers": ["@types/react", "redux"] }, "sha512-KQopgqFo/p/fgmAs5qz6p5RWaNAzq40WAu7fJIXnQpYxFPbJYtsJPWvGeF2rOBaY/kEuV77AVsX8TsQzKm+A/g=="], "react-refresh": ["react-refresh@0.14.2", "", {}, "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA=="], @@ -1546,8 +1522,6 @@ "react-style-singleton": ["react-style-singleton@2.2.3", "", { "dependencies": { "get-nonce": "^1.0.0", "tslib": "^2.0.0" }, "peerDependencies": { "@types/react": "*", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ=="], - "readable-stream": ["readable-stream@3.6.2", "", { "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } }, "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA=="], - "redent": ["redent@3.0.0", "", { "dependencies": { "indent-string": "^4.0.0", "strip-indent": "^3.0.0" } }, "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg=="], "redux": ["redux@5.0.1", "", {}, "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w=="], @@ -1626,7 +1600,7 @@ "shallowequal": ["shallowequal@1.1.0", "", {}, "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ=="], - "sharp": ["sharp@0.32.6", "", { "dependencies": { "color": "^4.2.3", "detect-libc": "^2.0.2", "node-addon-api": "^6.1.0", "prebuild-install": "^7.1.1", "semver": "^7.5.4", "simple-get": "^4.0.1", "tar-fs": "^3.0.4", "tunnel-agent": "^0.6.0" } }, "sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w=="], + "sharp": ["sharp@0.35.3", "", { "dependencies": { "@img/colour": "^1.1.0", "detect-libc": "^2.1.2", "semver": "^7.8.5" }, "optionalDependencies": { "@img/sharp-darwin-arm64": "0.35.3", "@img/sharp-darwin-x64": "0.35.3", "@img/sharp-freebsd-wasm32": "0.35.3", "@img/sharp-libvips-darwin-arm64": "1.3.2", "@img/sharp-libvips-darwin-x64": "1.3.2", "@img/sharp-libvips-linux-arm": "1.3.2", "@img/sharp-libvips-linux-arm64": "1.3.2", "@img/sharp-libvips-linux-ppc64": "1.3.2", "@img/sharp-libvips-linux-riscv64": "1.3.2", "@img/sharp-libvips-linux-s390x": "1.3.2", "@img/sharp-libvips-linux-x64": "1.3.2", "@img/sharp-libvips-linuxmusl-arm64": "1.3.2", "@img/sharp-libvips-linuxmusl-x64": "1.3.2", "@img/sharp-linux-arm": "0.35.3", "@img/sharp-linux-arm64": "0.35.3", "@img/sharp-linux-ppc64": "0.35.3", "@img/sharp-linux-riscv64": "0.35.3", "@img/sharp-linux-s390x": "0.35.3", "@img/sharp-linux-x64": "0.35.3", "@img/sharp-linuxmusl-arm64": "0.35.3", "@img/sharp-linuxmusl-x64": "0.35.3", "@img/sharp-webcontainers-wasm32": "0.35.3", "@img/sharp-win32-arm64": "0.35.3", "@img/sharp-win32-ia32": "0.35.3", "@img/sharp-win32-x64": "0.35.3" }, "peerDependencies": { "@types/node": "*" }, "optionalPeers": ["@types/node"] }, "sha512-ej0zVHuZGHCiABXcNxeYhpRnPNPAcvbG8RMdBAhDAxLKkCRVSpK3Iyu7qbqw3JMzoj0REeM6f3tJLtVwl0023Q=="], "shebang-command": ["shebang-command@2.0.0", "", { "dependencies": { "shebang-regex": "^3.0.0" } }, "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="], @@ -1644,10 +1618,6 @@ "signal-exit": ["signal-exit@3.0.7", "", {}, "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="], - "simple-concat": ["simple-concat@1.0.1", "", {}, "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q=="], - - "simple-get": ["simple-get@4.0.1", "", { "dependencies": { "decompress-response": "^6.0.0", "once": "^1.3.1", "simple-concat": "^1.0.0" } }, "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA=="], - "simple-plist": ["simple-plist@1.3.1", "", { "dependencies": { "bplist-creator": "0.1.0", "bplist-parser": "0.3.1", "plist": "^3.0.5" } }, "sha512-iMSw5i0XseMnrhtIzRb7XpQEXepa9xhWxGUojHBL43SIpQuDQkh3Wpy67ZbDzZVr6EKxvwVChnVpdl8hEVLDiw=="], "simple-swizzle": ["simple-swizzle@0.2.4", "", { "dependencies": { "is-arrayish": "^0.3.1" } }, "sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw=="], @@ -1680,14 +1650,10 @@ "stream-buffers": ["stream-buffers@2.2.0", "", {}, "sha512-uyQK/mx5QjHun80FLJTfaWE7JtwfRMKBLkMne6udYOmvH0CawotVa7TfgYHzAnpphn4+TweIx1QKMnRIbipmUg=="], - "streamx": ["streamx@2.28.0", "", { "dependencies": { "events-universal": "^1.0.0", "fast-fifo": "^1.3.2", "text-decoder": "^1.1.0" } }, "sha512-1Yowhzjf0ivGMrTIkY9hav5TxobO9qIVqUE41fiCGMGgc3CLlf4MY+9AHmZqBWgDTue0fY9zWjYFVyf6Diuobw=="], - "strict-uri-encode": ["strict-uri-encode@2.0.0", "", {}, "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ=="], "string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="], - "string-width-cjs": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="], - "string.prototype.matchall": ["string.prototype.matchall@4.0.12", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "define-properties": "^1.2.1", "es-abstract": "^1.23.6", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", "get-intrinsic": "^1.2.6", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "internal-slot": "^1.1.0", "regexp.prototype.flags": "^1.5.3", "set-function-name": "^2.0.2", "side-channel": "^1.1.0" } }, "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA=="], "string.prototype.repeat": ["string.prototype.repeat@1.0.0", "", { "dependencies": { "define-properties": "^1.1.3", "es-abstract": "^1.17.5" } }, "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w=="], @@ -1698,22 +1664,14 @@ "string.prototype.trimstart": ["string.prototype.trimstart@1.0.8", "", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" } }, "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg=="], - "string_decoder": ["string_decoder@1.3.0", "", { "dependencies": { "safe-buffer": "~5.2.0" } }, "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA=="], - "strip-ansi": ["strip-ansi@5.2.0", "", { "dependencies": { "ansi-regex": "^4.1.0" } }, "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA=="], - "strip-ansi-cjs": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], - "strip-bom": ["strip-bom@3.0.0", "", {}, "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA=="], - "strip-final-newline": ["strip-final-newline@2.0.0", "", {}, "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA=="], - "strip-indent": ["strip-indent@3.0.0", "", { "dependencies": { "min-indent": "^1.0.0" } }, "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ=="], "strip-json-comments": ["strip-json-comments@3.1.1", "", {}, "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="], - "strnum": ["strnum@1.1.2", "", {}, "sha512-vrN+B7DBIoTTZjnPNewwhx6cBA/H+IS7rfW68n7XxC1y7uoiGQBxaKzqucGUgavX15dJgiGztLJ8vxuEzwqBdA=="], - "structured-headers": ["structured-headers@0.4.1", "", {}, "sha512-0MP/Cxx5SzeeZ10p/bZI0S6MpgD+yxAhi1BOQ34jgnMXsCq3j1t6tQnZu+KdlL7dvJTLT3g9xN8tl10TqgFMcg=="], "styleq": ["styleq@0.1.3", "", {}, "sha512-3ZUifmCDCQanjeej1f6kyl/BeP/Vae5EYkQ9iJfUm/QwZvlgnZzyflqAsAWYURdtea8Vkvswu2GrC57h3qffcA=="], @@ -1724,18 +1682,10 @@ "supports-preserve-symlinks-flag": ["supports-preserve-symlinks-flag@1.0.0", "", {}, "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="], - "tar-fs": ["tar-fs@3.1.3", "", { "dependencies": { "pump": "^3.0.0", "tar-stream": "^3.1.5" }, "optionalDependencies": { "bare-fs": "^4.0.1", "bare-path": "^3.0.0" } }, "sha512-/hU4AXnIdZu+Gvl1pk0oI5f5HxWsCJRtY2aFaJdk9VvyL48DWU6iU5WAIPG+wIi1YvWA6eTJvIviP/tMAZZNwQ=="], - - "tar-stream": ["tar-stream@3.2.0", "", { "dependencies": { "b4a": "^1.6.4", "bare-fs": "^4.5.5", "fast-fifo": "^1.2.0", "streamx": "^2.15.0" } }, "sha512-ojzvCvVaNp6aOTFmG7jaRD0meowIAuPc3cMMhSgKiVWws1GyHbGd/xvnyuRKcKlMpt3qvxx6r0hreCNITP9hIg=="], - - "teex": ["teex@1.0.1", "", { "dependencies": { "streamx": "^2.12.5" } }, "sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg=="], - "terminal-link": ["terminal-link@2.1.1", "", { "dependencies": { "ansi-escapes": "^4.2.1", "supports-hyperlinks": "^2.0.0" } }, "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ=="], "terser": ["terser@5.49.2", "", { "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.15.0", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, "bin": { "terser": "bin/terser" } }, "sha512-rGbJiKeQ4WDe3EXlDAIaQcwftVfv2Q8o1awFNfvXolJYKkb1AuZY1RTOmqx4LJXZENbWZA7eIsYGHuEzHsi1nQ=="], - "text-decoder": ["text-decoder@1.2.7", "", { "dependencies": { "b4a": "^1.6.4" } }, "sha512-vlLytXkeP4xvEq2otHeJfSQIRyWxo/oZGEbXrtEEF9Hnmrdly59sUbzZ/QgyWuLYHctCHxFF4tRQZNQ9k60ExQ=="], - "throat": ["throat@5.0.0", "", {}, "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA=="], "tinyglobby": ["tinyglobby@0.2.17", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.4" } }, "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g=="], @@ -1760,8 +1710,6 @@ "tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], - "tunnel-agent": ["tunnel-agent@0.6.0", "", { "dependencies": { "safe-buffer": "^5.0.1" } }, "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w=="], - "type-check": ["type-check@0.4.0", "", { "dependencies": { "prelude-ls": "^1.2.1" } }, "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew=="], "type-fest": ["type-fest@0.7.1", "", {}, "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg=="], @@ -1808,8 +1756,6 @@ "use-sync-external-store": ["use-sync-external-store@1.6.0", "", { "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w=="], - "util-deprecate": ["util-deprecate@1.0.2", "", {}, "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="], - "utils-merge": ["utils-merge@1.0.1", "", {}, "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA=="], "uuid": ["uuid@7.0.3", "", { "bin": { "uuid": "dist/bin/uuid" } }, "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg=="], @@ -1850,10 +1796,6 @@ "wrap-ansi": ["wrap-ansi@7.0.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q=="], - "wrap-ansi-cjs": ["wrap-ansi@7.0.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q=="], - - "wrappy": ["wrappy@1.0.2", "", {}, "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="], - "ws": ["ws@7.5.13", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": "^5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-rsKI6xDBFVf4r/x8XyChGK04QR/XHroxs/jUcoWvtEZM8TPU/X/uIY9B1CsSzYws9ZJb/6bbBu7dPhFW00CAoA=="], "xcode": ["xcode@3.0.1", "", { "dependencies": { "simple-plist": "^1.1.0", "uuid": "^7.0.3" } }, "sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA=="], @@ -1892,8 +1834,6 @@ "@babel/helper-define-polyfill-provider/resolve": ["resolve@1.22.12", "", { "dependencies": { "es-errors": "^1.3.0", "is-core-module": "^2.16.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" } }, "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA=="], - "@babel/highlight/chalk": ["chalk@2.4.2", "", { "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" } }, "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ=="], - "@babel/plugin-transform-runtime/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], "@eslint-community/eslint-utils/eslint-visitor-keys": ["eslint-visitor-keys@3.4.3", "", {}, "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag=="], @@ -1910,13 +1850,7 @@ "@expo/ws-tunnel/ws": ["ws@8.21.3", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw=="], - "@isaacs/cliui/string-width": ["string-width@5.1.2", "", { "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", "strip-ansi": "^7.0.1" } }, "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA=="], - - "@isaacs/cliui/strip-ansi": ["strip-ansi@7.2.0", "", { "dependencies": { "ansi-regex": "^6.2.2" } }, "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w=="], - - "@isaacs/cliui/wrap-ansi": ["wrap-ansi@8.1.0", "", { "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", "strip-ansi": "^7.0.1" } }, "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ=="], - - "@react-native-community/cli-tools/ora": ["ora@5.4.1", "", { "dependencies": { "bl": "^4.1.0", "chalk": "^4.1.0", "cli-cursor": "^3.1.0", "cli-spinners": "^2.5.0", "is-interactive": "^1.0.0", "is-unicode-supported": "^0.1.0", "log-symbols": "^4.1.0", "strip-ansi": "^6.0.0", "wcwidth": "^1.0.1" } }, "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ=="], + "@img/sharp-wasm32/@emnapi/runtime": ["@emnapi/runtime@1.11.3", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA=="], "@react-native/babel-preset/@react-native/babel-plugin-codegen": ["@react-native/babel-plugin-codegen@0.87.0", "", { "dependencies": { "@babel/traverse": "^7.29.0", "@react-native/codegen": "0.87.0" } }, "sha512-q0CCSAYgomb2G1fkmJ5ughwvVLqjHcdJ4w3Ffxw4YsdBenWYZsnMARyr/ghvcvfV33/YsZQhdMZ3XnpG6oth/Q=="], @@ -1990,8 +1924,6 @@ "finalhandler/statuses": ["statuses@1.5.0", "", {}, "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA=="], - "foreground-child/signal-exit": ["signal-exit@4.1.0", "", {}, "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw=="], - "glob/minimatch": ["minimatch@10.2.6", "", { "dependencies": { "brace-expansion": "^5.0.8" } }, "sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A=="], "hoist-non-react-statics/react-is": ["react-is@16.13.1", "", {}, "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="], @@ -2030,38 +1962,26 @@ "plist/@xmldom/xmldom": ["@xmldom/xmldom@0.9.10", "", {}, "sha512-A9gOqLdi6cV4ibazAjcQufGj0B1y/vDqYrcuP6d/6x8P27gRS8643Dj9o1dEKtB6O7fwxb2FgBmJS2mX7gpvdw=="], - "prebuild-install/tar-fs": ["tar-fs@2.1.5", "", { "dependencies": { "chownr": "^1.1.1", "mkdirp-classic": "^0.5.2", "pump": "^3.0.0", "tar-stream": "^2.1.4" } }, "sha512-OboTd8mmMhZDNPV+UjQcK9yKAatXu2aJ+r1w4im1Otd4M4fl2hwvdoXUxIYHFTHWK/3y3FarBP70v3vwmGlOxw=="], - "pretty-format/ansi-styles": ["ansi-styles@5.2.0", "", {}, "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA=="], "pretty-format/react-is": ["react-is@18.3.1", "", {}, "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg=="], "prop-types/react-is": ["react-is@16.13.1", "", {}, "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="], - "rc/strip-json-comments": ["strip-json-comments@2.0.1", "", {}, "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ=="], - - "react-native-bootsplash/@expo/config-plugins": ["@expo/config-plugins@10.1.2", "", { "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" } }, "sha512-IMYCxBOcnuFStuK0Ay+FzEIBKrwW8OVUMc65+v0+i7YFIIe8aL342l7T4F8lR4oCfhXn7d6M5QPgXvjtc/gAcw=="], - - "react-native-bootsplash/commander": ["commander@13.1.0", "", {}, "sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw=="], - - "react-native-bootsplash/fs-extra": ["fs-extra@11.4.0", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-EQsFzMUJkCKGr1ePqlYADkIUmHW1s3ZXr5Yqy6wbGrfUCphpl2maM/kyOIRA2HpP3AaFQTZXD4ldjek+nccddA=="], + "react-native-bootsplash/commander": ["commander@14.0.3", "", {}, "sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw=="], "react-native-web/@react-native/normalize-colors": ["@react-native/normalize-colors@0.74.89", "", {}, "sha512-qoMMXddVKVhZ8PA1AbUCk83trpd6N+1nF2A6k1i6LsQObyS92fELuk8kU/lQs6M7BsMHwqyLCpQJ1uFgNvIQXg=="], "react-native-web/memoize-one": ["memoize-one@6.0.0", "", {}, "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw=="], - "restore-cursor/onetime": ["onetime@2.0.1", "", { "dependencies": { "mimic-fn": "^1.0.0" } }, "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ=="], + "react-reconciler/scheduler": ["scheduler@0.25.0", "", {}, "sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA=="], "send/debug": ["debug@2.6.9", "", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="], - "send/mime": ["mime@1.6.0", "", { "bin": { "mime": "cli.js" } }, "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="], - "source-map-support/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], "string-width/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], - "string-width-cjs/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], - "strip-ansi/ansi-regex": ["ansi-regex@4.1.1", "", {}, "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g=="], "terser/commander": ["commander@2.20.3", "", {}, "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="], @@ -2070,32 +1990,12 @@ "wrap-ansi/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], - "wrap-ansi-cjs/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], - "xml2js/xmlbuilder": ["xmlbuilder@11.0.1", "", {}, "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA=="], - "@babel/highlight/chalk/ansi-styles": ["ansi-styles@3.2.1", "", { "dependencies": { "color-convert": "^1.9.0" } }, "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA=="], - - "@babel/highlight/chalk/escape-string-regexp": ["escape-string-regexp@1.0.5", "", {}, "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg=="], - - "@babel/highlight/chalk/supports-color": ["supports-color@5.5.0", "", { "dependencies": { "has-flag": "^3.0.0" } }, "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow=="], - "@expo/fingerprint/minimatch/brace-expansion": ["brace-expansion@5.0.9", "", { "dependencies": { "balanced-match": "^4.0.2" } }, "sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg=="], "@expo/metro-config/hermes-parser/hermes-estree": ["hermes-estree@0.36.0", "", {}, "sha512-A1+8zn5oss2CFP7pKsOaxorQG6FNIz1WU1VDqruLPPZl3LVgeE2C5xfFg8Ow6/Ow4mSslLLtYP1J3n38eKyW9w=="], - "@isaacs/cliui/string-width/emoji-regex": ["emoji-regex@9.2.2", "", {}, "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="], - - "@isaacs/cliui/strip-ansi/ansi-regex": ["ansi-regex@6.2.2", "", {}, "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg=="], - - "@isaacs/cliui/wrap-ansi/ansi-styles": ["ansi-styles@6.2.3", "", {}, "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg=="], - - "@react-native-community/cli-tools/ora/cli-cursor": ["cli-cursor@3.1.0", "", { "dependencies": { "restore-cursor": "^3.1.0" } }, "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw=="], - - "@react-native-community/cli-tools/ora/log-symbols": ["log-symbols@4.1.0", "", { "dependencies": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" } }, "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg=="], - - "@react-native-community/cli-tools/ora/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], - "@react-native/babel-preset/@react-native/babel-plugin-codegen/@react-native/codegen": ["@react-native/codegen@0.87.0", "", { "dependencies": { "@babel/core": "^7.25.2", "@babel/parser": "^7.29.0", "hermes-parser": "0.36.1", "invariant": "^2.2.4", "nullthrows": "^1.1.1", "tinyglobby": "^0.2.15", "yargs": "^17.6.2" } }, "sha512-odcBGR0A9Ee83A/XvzOp9juGRkSQOQcI4ZYs+3H20MySMxvZJ34/2nVHoxdmj0YY0Mn6gF8BjLzYkL0axbHuCA=="], "@react-native/babel-preset/babel-plugin-syntax-hermes-parser/hermes-parser": ["hermes-parser@0.36.1", "", { "dependencies": { "hermes-estree": "0.36.1" } }, "sha512-GApNk4zLHi2UWoWZZkx7LNCOSzLSc5lB55pZ/PhK7ycFeg7u5LcF88p/WbpIi1XUDtE0MpHE3uRR3u3KB7TjSQ=="], @@ -2150,30 +2050,10 @@ "ora/chalk/supports-color": ["supports-color@5.5.0", "", { "dependencies": { "has-flag": "^3.0.0" } }, "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow=="], - "prebuild-install/tar-fs/tar-stream": ["tar-stream@2.2.0", "", { "dependencies": { "bl": "^4.0.3", "end-of-stream": "^1.4.1", "fs-constants": "^1.0.0", "inherits": "^2.0.3", "readable-stream": "^3.1.1" } }, "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ=="], - - "react-native-bootsplash/@expo/config-plugins/@expo/config-types": ["@expo/config-types@53.0.5", "", {}, "sha512-kqZ0w44E+HEGBjy+Lpyn0BVL5UANg/tmNixxaRMLS6nf37YsDrLk2VMAmeKMMk5CKG0NmOdVv3ngeUjRQMsy9g=="], - - "react-native-bootsplash/@expo/config-plugins/@expo/json-file": ["@expo/json-file@9.1.5", "", { "dependencies": { "@babel/code-frame": "~7.10.4", "json5": "^2.2.3" } }, "sha512-prWBhLUlmcQtvN6Y7BpW2k9zXGd3ySa3R6rAguMJkp1z22nunLN64KYTUWfijFlprFoxm9r2VNnGkcbndAlgKA=="], - - "react-native-bootsplash/@expo/config-plugins/@expo/plist": ["@expo/plist@0.3.5", "", { "dependencies": { "@xmldom/xmldom": "^0.8.8", "base64-js": "^1.2.3", "xmlbuilder": "^15.1.1" } }, "sha512-9RYVU1iGyCJ7vWfg3e7c/NVyMFs8wbl+dMWZphtFtsqyN9zppGREU3ctlD3i8KUE0sCUTVnLjCWr+VeUIDep2g=="], - - "react-native-bootsplash/@expo/config-plugins/glob": ["glob@10.5.0", "", { "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", "minimatch": "^9.0.4", "minipass": "^7.1.2", "package-json-from-dist": "^1.0.0", "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" } }, "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg=="], - - "react-native-bootsplash/@expo/config-plugins/slash": ["slash@3.0.0", "", {}, "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="], - - "restore-cursor/onetime/mimic-fn": ["mimic-fn@1.2.0", "", {}, "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ=="], - "send/debug/ms": ["ms@2.0.0", "", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="], - "@babel/highlight/chalk/ansi-styles/color-convert": ["color-convert@1.9.3", "", { "dependencies": { "color-name": "1.1.3" } }, "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg=="], - - "@babel/highlight/chalk/supports-color/has-flag": ["has-flag@3.0.0", "", {}, "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="], - "@expo/fingerprint/minimatch/brace-expansion/balanced-match": ["balanced-match@4.0.4", "", {}, "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA=="], - "@react-native-community/cli-tools/ora/cli-cursor/restore-cursor": ["restore-cursor@3.1.0", "", { "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" } }, "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA=="], - "@react-native/babel-preset/@react-native/babel-plugin-codegen/@react-native/codegen/hermes-parser": ["hermes-parser@0.36.1", "", { "dependencies": { "hermes-estree": "0.36.1" } }, "sha512-GApNk4zLHi2UWoWZZkx7LNCOSzLSc5lB55pZ/PhK7ycFeg7u5LcF88p/WbpIi1XUDtE0MpHE3uRR3u3KB7TjSQ=="], "@react-native/babel-preset/babel-plugin-syntax-hermes-parser/hermes-parser/hermes-estree": ["hermes-estree@0.36.1", "", {}, "sha512-guv1nQ6IJ7S83NRFPWc3SA7IBZrdNC9kapwOq6uXvF4wP+sDCgjzQbKPCoyYmoyZRzztF/n/c36l/rccCZSiCw=="], @@ -2218,14 +2098,6 @@ "ora/chalk/supports-color/has-flag": ["has-flag@3.0.0", "", {}, "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="], - "react-native-bootsplash/@expo/config-plugins/@expo/json-file/@babel/code-frame": ["@babel/code-frame@7.10.4", "", { "dependencies": { "@babel/highlight": "^7.10.4" } }, "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg=="], - - "react-native-bootsplash/@expo/config-plugins/glob/minimatch": ["minimatch@9.0.9", "", { "dependencies": { "brace-expansion": "^2.0.2" } }, "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg=="], - - "react-native-bootsplash/@expo/config-plugins/glob/path-scurry": ["path-scurry@1.11.1", "", { "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" } }, "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA=="], - - "@babel/highlight/chalk/ansi-styles/color-convert/color-name": ["color-name@1.1.3", "", {}, "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="], - "@react-native/babel-preset/@react-native/babel-plugin-codegen/@react-native/codegen/hermes-parser/hermes-estree": ["hermes-estree@0.36.1", "", {}, "sha512-guv1nQ6IJ7S83NRFPWc3SA7IBZrdNC9kapwOq6uXvF4wP+sDCgjzQbKPCoyYmoyZRzztF/n/c36l/rccCZSiCw=="], "@react-native/metro-config/metro-config/metro-cache/https-proxy-agent/agent-base": ["agent-base@7.1.4", "", {}, "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ=="], @@ -2243,9 +2115,5 @@ "log-symbols/chalk/ansi-styles/color-convert/color-name": ["color-name@1.1.3", "", {}, "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="], "ora/chalk/ansi-styles/color-convert/color-name": ["color-name@1.1.3", "", {}, "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="], - - "react-native-bootsplash/@expo/config-plugins/glob/minimatch/brace-expansion": ["brace-expansion@2.1.4", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-hGfVzPxthbf3+2yjg/RBs60cB0FhqBS/zvdV/4wn4/BmN0bNMMHPc4V/BbFieqf1TKAGGAHnY4eSjajCl0f2Xg=="], - - "react-native-bootsplash/@expo/config-plugins/glob/path-scurry/lru-cache": ["lru-cache@10.4.3", "", {}, "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="], } } diff --git a/example/package.json b/example/package.json index 126b0eb..c218b3a 100644 --- a/example/package.json +++ b/example/package.json @@ -2,6 +2,16 @@ "name": "motionify-example", "main": "index", "version": "1.0.0", + "trustedDependencies": [ + "@shopify/react-native-skia" + ], + "expo": { + "install": { + "exclude": [ + "react-native-bootsplash" + ] + } + }, "scripts": { "postinstall": "patch-package", "start": "expo start --dev-client", @@ -9,6 +19,7 @@ "android": "expo run:android", "ios": "expo run:ios", "web": "expo start --web", + "typecheck": "tsc --noEmit", "lint": "expo lint", "install-check": "npx expo install --check", "xc": "cd ios && open *.xcworkspace && cd ..", @@ -24,6 +35,7 @@ "@react-navigation/elements": "^2.7.0", "@react-navigation/native": "^7.1.18", "@reduxjs/toolkit": "^2.9.2", + "@shopify/react-native-skia": "2.6.2", "axios": "^1.12.2", "eas-local-cache": "^1.0.3", "expo": "~57.0.11", @@ -49,7 +61,7 @@ "react-fast-compare": "^3.2.2", "react-i18next": "^17.0.11", "react-native": "0.86.2", - "react-native-bootsplash": "^6.3.10", + "react-native-bootsplash": "^7.3.2", "react-native-gesture-handler": "~2.32.0", "react-native-indicators": "^0.17.0", "react-native-localize": "^3.5.4", diff --git a/example/src/components/BottomTabBar/index.tsx b/example/src/components/BottomTabBar/index.tsx index 04d501f..33b9779 100644 --- a/example/src/components/BottomTabBar/index.tsx +++ b/example/src/components/BottomTabBar/index.tsx @@ -1,4 +1,4 @@ -import { BottomTabBarProps } from "@react-navigation/bottom-tabs"; +import { BottomTabBarProps } from "expo-router/js-tabs"; import React from "react"; import { Pressable, StyleSheet, View } from "react-native"; import Animated, { @@ -150,7 +150,9 @@ const MotionifyBottomTabBar = (props: MotionifyBottomTabBarProps) => { key={"bottom-tab-" + route.key} accessibilityRole="button" accessibilityState={isFocused ? { selected: true } : {}} - accessibilityLabel={options.tabBarAccessibilityLabel} + accessibilityLabel={ + options.tabBarAccessibilityLabel ?? String(label) + } onPress={onPress} onLongPress={onLongPress} style={[ @@ -195,7 +197,7 @@ const styles = StyleSheet.create({ position: "absolute", }, tabContainer: { - ...StyleSheet.absoluteFillObject, + ...StyleSheet.absoluteFill, }, tabItem: { borderTopLeftRadius: 44, diff --git a/example/src/components/Button/index.tsx b/example/src/components/Button/index.tsx index 3e5cbdb..a2438ec 100644 --- a/example/src/components/Button/index.tsx +++ b/example/src/components/Button/index.tsx @@ -1,4 +1,9 @@ -import { StyleProp, TouchableOpacity, ViewStyle } from 'react-native'; +import { + StyleProp, + TextStyle, + TouchableOpacity, + ViewStyle, +} from 'react-native'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; import { COLORS } from '@/theme'; import React from 'react'; @@ -11,7 +16,7 @@ type Props = { onPress?: () => void; outline?: boolean; isOriginal?: boolean; - textButtonStyle?: StyleProp; + textButtonStyle?: StyleProp; style?: StyleProp; }; diff --git a/example/src/components/Header/index.tsx b/example/src/components/Header/index.tsx index 175f2a5..ad4bd62 100644 --- a/example/src/components/Header/index.tsx +++ b/example/src/components/Header/index.tsx @@ -1,7 +1,7 @@ import { Icons } from "@/theme"; import { isAndroid } from "@/utils/device"; import { moderateScale, moderateVerticalScale } from "@/utils/scale"; -import { useNavigation } from "@react-navigation/native"; +import { useNavigation } from "expo-router/react-navigation"; import { ImageProps } from "expo-image"; import React, { FC } from "react"; import { diff --git a/example/src/components/Indicator/index.tsx b/example/src/components/Indicator/index.tsx index d4ea755..3a82dc3 100644 --- a/example/src/components/Indicator/index.tsx +++ b/example/src/components/Indicator/index.tsx @@ -16,7 +16,7 @@ const Indicator = memo((props: IndicatorProps) => { if (visible) { return ( diff --git a/example/src/components/Input/type.ts b/example/src/components/Input/type.ts index f7710f4..2fea589 100644 --- a/example/src/components/Input/type.ts +++ b/example/src/components/Input/type.ts @@ -14,7 +14,7 @@ interface InputProps { containerStyle?: StyleProp; style?: StyleProp; titleStyle?: StyleProp; - inputStyle?: StyleProp; + inputStyle?: StyleProp; defaultValue?: string; isRequired?: boolean; isPickerImage?: boolean; diff --git a/example/src/hooks/useCommon.ts b/example/src/hooks/useCommon.ts index aaf730a..8287a80 100644 --- a/example/src/hooks/useCommon.ts +++ b/example/src/hooks/useCommon.ts @@ -45,7 +45,7 @@ function useAsyncState( (newValue: SetStateAction, callback?: (newState: T) => void) => void, ] { const [state, setState] = useState(initialValue); - const _callback = useRef<(newState: T) => void>(); + const _callback = useRef<((newState: T) => void) | undefined>(undefined); const _setState = ( newValue: SetStateAction, diff --git a/example/src/libs/reactive/ReactiveView.tsx b/example/src/libs/reactive/ReactiveView.tsx index 1114ffb..d0c8af1 100644 --- a/example/src/libs/reactive/ReactiveView.tsx +++ b/example/src/libs/reactive/ReactiveView.tsx @@ -152,7 +152,7 @@ export const ReactiveView: React.FC = ({ directionShared, ]); - const combinedStyle: StyleProp = [style, animatedStyle]; + const combinedStyle = [style, animatedStyle]; return ( { - const dispatch = useAppDispatch(); - const insets = useSafeAreaInsets(); +const InitializeApp = ({ navigationReady }: InitializeAppProps) => { + const { isFirstTimeLaunch } = useAppSelector(getAppState); + const { initialLoadSettled } = useAppSelector(getTaskState); const [visibleBootSplash, setVisibleBootSplash] = useState(true); - const appState = useRef(AppState.currentState); - - enableScreens(); - useEffect(() => { - const subscription = AppState.addEventListener("change", (nextAppState) => { - if ( - appState.current.match(/inactive|background/) && - nextAppState === "active" - ) { - onAppState(); - } - appState.current = nextAppState; - }); - - return () => subscription.remove(); - }, []); - - const onAppState = () => {}; + const appReady = + navigationReady && (isFirstTimeLaunch || initialLoadSettled); - const onBootSplashCompleted = async () => { + const onBootSplashCompleted = useCallback(() => { setVisibleBootSplash(false); - }; + }, []); return ( <> @@ -48,7 +33,9 @@ const InitializeApp = (props: InitializeAppType) => { showHideTransition={"fade"} /> - {visibleBootSplash && } + {visibleBootSplash && ( + + )} diff --git a/example/src/navigators/RootNavigator.tsx b/example/src/navigators/RootNavigator.tsx index dbaf29d..0da7884 100644 --- a/example/src/navigators/RootNavigator.tsx +++ b/example/src/navigators/RootNavigator.tsx @@ -1,8 +1,8 @@ -import React from "react"; +import React, { useState } from "react"; import { GestureHandlerRootView } from "react-native-gesture-handler"; import { MenuProvider } from "react-native-popup-menu"; import { BottomSheetModalProvider } from "@gorhom/bottom-sheet"; -import { NavigationContainer } from "@react-navigation/native"; +import { NavigationContainer } from "expo-router/react-navigation"; import { AppStyles } from "@/styles"; import { navigationRef } from "@/utils/holder"; @@ -10,14 +10,19 @@ import InitializeApp from "./InitializeApp"; import { RootStack } from "./stack"; const RootNavigator = () => { + const [navigationReady, setNavigationReady] = useState(false); + return ( - + setNavigationReady(true)} + > - + diff --git a/example/src/navigators/global/index.ts b/example/src/navigators/global/index.ts index 812dbc4..f995ccb 100644 --- a/example/src/navigators/global/index.ts +++ b/example/src/navigators/global/index.ts @@ -1,10 +1,8 @@ -import { NativeStackScreenProps } from '@react-navigation/native-stack'; +import type { NativeStackScreenProps } from '@/navigators/native-stack'; import { RootStackParamList } from '../stack/root'; declare global { namespace ReactNavigation { - interface RootParamList extends RootStackParamList {} - type RootStackNavigationProps = NativeStackScreenProps; type RootStackScreenProps = diff --git a/example/src/navigators/native-stack.ts b/example/src/navigators/native-stack.ts new file mode 100644 index 0000000..854e010 --- /dev/null +++ b/example/src/navigators/native-stack.ts @@ -0,0 +1,5 @@ +// Expo Router SDK 56+ owns the React Navigation runtime used by the app. +// Keep this compatibility import centralized because native-stack has no +// public codemod target while the app still uses an explicit NavigationContainer. +export { createNativeStackNavigator } from "expo-router/build/react-navigation/native-stack"; +export type { NativeStackScreenProps } from "expo-router"; diff --git a/example/src/navigators/stack/auth.tsx b/example/src/navigators/stack/auth.tsx index 2a9f8a4..988db85 100644 --- a/example/src/navigators/stack/auth.tsx +++ b/example/src/navigators/stack/auth.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { createNativeStackNavigator } from '@react-navigation/native-stack'; +import { createNativeStackNavigator } from '@/navigators/native-stack'; import { RoutesAuthStack } from '../routes'; import { ForgotPassword, SignIn, SignUp } from '@/screens'; diff --git a/example/src/navigators/stack/bottom-tab.tsx b/example/src/navigators/stack/bottom-tab.tsx index 09a8bc8..7a17637 100644 --- a/example/src/navigators/stack/bottom-tab.tsx +++ b/example/src/navigators/stack/bottom-tab.tsx @@ -1,10 +1,7 @@ import { BlurView } from "@react-native-community/blur"; import { - BottomTabScreenProps, createBottomTabNavigator, -} from "@react-navigation/bottom-tabs"; -import { CompositeScreenProps } from "@react-navigation/native"; -import { NativeStackScreenProps } from "@react-navigation/native-stack"; +} from "expo-router/js-tabs"; import React from "react"; import { StyleSheet } from "react-native"; @@ -20,12 +17,6 @@ export type BottomTabStackParamsList = { [RoutesBottomTabStack.COMPLETED]: undefined; }; -export type RootTabScreenProps = - CompositeScreenProps< - BottomTabScreenProps, - NativeStackScreenProps - >; - const Tab = createBottomTabNavigator(); const BottomTabStack = () => { @@ -39,7 +30,7 @@ const BottomTabStack = () => { (); +const Root = createNativeStackNavigator(); const RootStack = () => { const { isFirstTimeLaunch } = useAppSelector(getAppState); diff --git a/example/src/screens/auth/ForgotPassword/index.tsx b/example/src/screens/auth/ForgotPassword/index.tsx index ba2e0da..aebff84 100644 --- a/example/src/screens/auth/ForgotPassword/index.tsx +++ b/example/src/screens/auth/ForgotPassword/index.tsx @@ -1,6 +1,6 @@ import React, { useRef } from 'react'; import { ScrollView, TouchableOpacity, View } from 'react-native'; -import { useNavigation } from '@react-navigation/native'; +import { useNavigation } from "expo-router/react-navigation"; import { Button, Header, Input } from '@/components'; import { InputRef } from '@/components/Input/type'; diff --git a/example/src/screens/auth/SignIn/index.tsx b/example/src/screens/auth/SignIn/index.tsx index 96a2055..e943a08 100644 --- a/example/src/screens/auth/SignIn/index.tsx +++ b/example/src/screens/auth/SignIn/index.tsx @@ -1,7 +1,7 @@ import React, { useRef } from 'react'; import { ScrollView, TouchableOpacity, View } from 'react-native'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; -import { useNavigation } from '@react-navigation/native'; +import { useNavigation } from "expo-router/react-navigation"; import { Button, Image, Input } from '@/components'; import { InputRef } from '@/components/Input/type'; diff --git a/example/src/screens/auth/SignUp/index.tsx b/example/src/screens/auth/SignUp/index.tsx index f132c06..b974dcd 100644 --- a/example/src/screens/auth/SignUp/index.tsx +++ b/example/src/screens/auth/SignUp/index.tsx @@ -1,4 +1,4 @@ -import { useNavigation } from '@react-navigation/native'; +import { useNavigation } from "expo-router/react-navigation"; import React, { useRef } from 'react'; import { ScrollView, TouchableOpacity, View } from 'react-native'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; diff --git a/example/src/screens/core/Categories/index.tsx b/example/src/screens/core/Categories/index.tsx index 2c7e7b7..430b2b3 100644 --- a/example/src/screens/core/Categories/index.tsx +++ b/example/src/screens/core/Categories/index.tsx @@ -1,4 +1,4 @@ -import { useNavigation } from "@react-navigation/native"; +import { useNavigation } from "expo-router/react-navigation"; import { PayloadAction } from "@reduxjs/toolkit"; import React, { useCallback, useEffect, useRef, useState } from "react"; import { FlatList, TextInput, TouchableOpacity, View } from "react-native"; diff --git a/example/src/screens/core/Completed/index.tsx b/example/src/screens/core/Completed/index.tsx index 994cca7..efc4f08 100644 --- a/example/src/screens/core/Completed/index.tsx +++ b/example/src/screens/core/Completed/index.tsx @@ -1,5 +1,5 @@ import { RoutesMainStack, RoutesRootStack } from "@/navigators/routes"; -import { useNavigation } from "@react-navigation/native"; +import { useNavigation } from "expo-router/react-navigation"; import React, { useCallback, useState } from "react"; import { FlatList, TextInput, TouchableOpacity, View } from "react-native"; import { useSafeAreaInsets } from "react-native-safe-area-context"; diff --git a/example/src/screens/core/EnterCategory/index.tsx b/example/src/screens/core/EnterCategory/index.tsx index 6fe828f..7d14c82 100644 --- a/example/src/screens/core/EnterCategory/index.tsx +++ b/example/src/screens/core/EnterCategory/index.tsx @@ -1,7 +1,7 @@ import moment from 'moment'; import React, { useEffect, useRef } from 'react'; import { ScrollView, View } from 'react-native'; -import { useNavigation, useRoute } from '@react-navigation/native'; +import { useNavigation, useRoute } from "expo-router/react-navigation"; import { getCategories, diff --git a/example/src/screens/core/EnterTaskify/index.tsx b/example/src/screens/core/EnterTaskify/index.tsx index 7710165..15184c1 100644 --- a/example/src/screens/core/EnterTaskify/index.tsx +++ b/example/src/screens/core/EnterTaskify/index.tsx @@ -1,7 +1,7 @@ import moment from 'moment'; import React, { useEffect, useRef } from 'react'; import { ScrollView, View } from 'react-native'; -import { useNavigation, useRoute } from '@react-navigation/native'; +import { useNavigation, useRoute } from "expo-router/react-navigation"; import { getCategories } from '@/api/services/category'; import { getTasks, postAddTask, putUpdateTask } from '@/api/services/task'; diff --git a/example/src/screens/core/Home/index.tsx b/example/src/screens/core/Home/index.tsx index 7a9c774..1573170 100644 --- a/example/src/screens/core/Home/index.tsx +++ b/example/src/screens/core/Home/index.tsx @@ -1,5 +1,5 @@ import { RoutesMainStack, RoutesRootStack } from "@/navigators/routes"; -import { useNavigation } from "@react-navigation/native"; +import { useNavigation } from "expo-router/react-navigation"; import moment from "moment"; import React, { useCallback, useEffect, useRef, useState } from "react"; import { diff --git a/example/src/screens/core/Taskify/index.tsx b/example/src/screens/core/Taskify/index.tsx index b2e1ec3..9ce2e9b 100644 --- a/example/src/screens/core/Taskify/index.tsx +++ b/example/src/screens/core/Taskify/index.tsx @@ -1,6 +1,6 @@ import React from 'react'; import { Text, View } from 'react-native'; -import { useNavigation } from '@react-navigation/native'; +import { useNavigation } from "expo-router/react-navigation"; import { RoutesRootStack } from '@/navigators/routes'; import { styles } from './style'; diff --git a/example/src/screens/others/Onboard/index.tsx b/example/src/screens/others/Onboard/index.tsx index 68f0107..278fe3f 100644 --- a/example/src/screens/others/Onboard/index.tsx +++ b/example/src/screens/others/Onboard/index.tsx @@ -1,7 +1,7 @@ import React from 'react'; import { Text, View } from 'react-native'; import { RoutesRootStack } from '@/navigators/routes'; -import { useNavigation } from '@react-navigation/native'; +import { useNavigation } from "expo-router/react-navigation"; import { styles } from './style'; type NavigationProps = diff --git a/example/src/screens/others/Splash/index.tsx b/example/src/screens/others/Splash/index.tsx index 742e60f..4508877 100644 --- a/example/src/screens/others/Splash/index.tsx +++ b/example/src/screens/others/Splash/index.tsx @@ -1,60 +1,58 @@ -import { useCallback, useState } from 'react'; -import { Animated, Text, View } from 'react-native'; +import { useEffect, useState } from 'react'; +import { Animated } from 'react-native'; import AnimatedBootSplash from 'react-native-bootsplash'; -import { useSafeAreaInsets } from 'react-native-safe-area-context'; -import { translate } from '@/translations/translate'; -import { isIos } from '@/utils/device'; -import { moderateScale } from '@/utils/scale'; import { styles } from './style'; type Props = { + ready: boolean; onAnimationEnd: () => void; }; -const Splash = ({ onAnimationEnd }: Props) => { - const { bottom } = useSafeAreaInsets(); - const [opacity] = useState(() => new Animated.Value(1)); - const [translateY] = useState(() => new Animated.Value(0)); +const Splash = ({ ready, onAnimationEnd }: Props) => { + const [contentOpacity] = useState(() => new Animated.Value(1)); + const [nativeSplashHidden, setNativeSplashHidden] = useState(false); const { container, logo } = AnimatedBootSplash.useHideAnimation({ - manifest: require('@/assets/icons/bootsplash_logo/bootsplash_manifest.json'), - logo: require('@/assets/icons/bootsplash_logo/bootsplash_logo.png'), + manifest: require('@/assets/bootsplash/manifest.json'), + logo: require('@/assets/bootsplash/logo.png'), statusBarTranslucent: true, navigationBarTranslucent: false, animate: () => { - onRunAnimation(); + setNativeSplashHidden(true); }, }); - const onRunAnimation = useCallback(() => { - Animated.timing(opacity, { + useEffect(() => { + if (!nativeSplashHidden || !ready) { + return; + } + + const animation = Animated.timing(contentOpacity, { useNativeDriver: true, toValue: 0, duration: 150, - delay: 1000, - }).start(() => onAnimationEnd()); - }, []); + }); + + animation.start(({ finished }) => { + if (finished) { + onAnimationEnd(); + } + }); + + return () => animation.stop(); + }, [contentOpacity, nativeSplashHidden, onAnimationEnd, ready]); return ( + style={[container.style, styles.container]}> - - - - {translate('app.name').toUpperCase()} - - ); }; diff --git a/example/src/screens/others/Splash/style.ts b/example/src/screens/others/Splash/style.ts index aa7488f..a973fa9 100644 --- a/example/src/screens/others/Splash/style.ts +++ b/example/src/screens/others/Splash/style.ts @@ -1,18 +1,15 @@ import { StyleSheet } from 'react-native'; -import { moderateScale, width } from '@/utils/scale'; -import { COLORS, FONTS } from '@/theme'; +import { COLORS } from '@/theme'; export const styles = StyleSheet.create({ - progressBar: { - width: width - moderateScale(64), - marginHorizontal: 0, - justifyContent: 'center', + container: { position: 'absolute', - }, - textLogo: { - fontSize: moderateScale(20), - textAlign: 'center', - fontFamily: FONTS.bold, - color: COLORS.text, + top: 0, + right: 0, + bottom: 0, + left: 0, + zIndex: 9999, + elevation: 9999, + backgroundColor: COLORS.background, }, }); diff --git a/example/src/screens/others/Welcome/index.tsx b/example/src/screens/others/Welcome/index.tsx index 2bd5aeb..4d85a5f 100644 --- a/example/src/screens/others/Welcome/index.tsx +++ b/example/src/screens/others/Welcome/index.tsx @@ -1,7 +1,7 @@ import React from 'react'; import { View } from 'react-native'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; -import { useNavigation } from '@react-navigation/native'; +import { useNavigation } from "expo-router/react-navigation"; import { Button, Image } from '@/components'; import { BoldText, RegularText } from '@/components/Text'; diff --git a/example/src/stores/slices/taskSlice.ts b/example/src/stores/slices/taskSlice.ts index 11d91fb..cff7793 100644 --- a/example/src/stores/slices/taskSlice.ts +++ b/example/src/stores/slices/taskSlice.ts @@ -13,6 +13,7 @@ import { TaskResponseModel } from '@/api/types'; const initialTaskState: TaskState = { task: [], completedTask: [], + initialLoadSettled: false, }; const taskSlice = createSlice({ @@ -40,9 +41,16 @@ const taskSlice = createSlice({ // }, }, extraReducers: builder => { + builder.addCase(getTasks.pending, state => { + state.initialLoadSettled = false; + }); builder.addCase(getTasks.fulfilled, (state, action) => { state.task = action.payload || []; state.completedTask = state.task.filter(item => item.isChecked); + state.initialLoadSettled = true; + }); + builder.addCase(getTasks.rejected, state => { + state.initialLoadSettled = true; }); builder.addCase(postAddTask.fulfilled, (state, action) => { state.task.push(action.payload); diff --git a/example/src/stores/types/task.ts b/example/src/stores/types/task.ts index 6f6e99c..9caa862 100644 --- a/example/src/stores/types/task.ts +++ b/example/src/stores/types/task.ts @@ -3,4 +3,5 @@ import { TaskResponseModel } from '@/api/types'; export type TaskState = { task: TaskResponseModel[]; completedTask: TaskResponseModel[]; + initialLoadSettled: boolean; }; diff --git a/example/src/styles/app-styles.ts b/example/src/styles/app-styles.ts index 4857ec8..383bcf2 100644 --- a/example/src/styles/app-styles.ts +++ b/example/src/styles/app-styles.ts @@ -92,7 +92,7 @@ export const AppStyles = StyleSheet.create({ zIndex: 999, }, override: { - ...StyleSheet.absoluteFillObject, + ...StyleSheet.absoluteFill, flex: 1, zIndex: 999, height: '100%', diff --git a/example/src/types/react-native-indicators.d.ts b/example/src/types/react-native-indicators.d.ts new file mode 100644 index 0000000..7d48cb0 --- /dev/null +++ b/example/src/types/react-native-indicators.d.ts @@ -0,0 +1,15 @@ +declare module "react-native-indicators" { + import type { ComponentType } from "react"; + import type { ColorValue, ViewStyle } from "react-native"; + + interface IndicatorProps { + animationDuration?: number; + color?: ColorValue; + count?: number; + size?: number; + style?: ViewStyle; + waveFactor?: number; + } + + export const WaveIndicator: ComponentType; +} diff --git a/example/src/utils/helper/app.ts b/example/src/utils/helper/app.ts index d9fdb03..9760ea1 100644 --- a/example/src/utils/helper/app.ts +++ b/example/src/utils/helper/app.ts @@ -14,10 +14,10 @@ const get = ( }; const debounce = (calLback: (...args: any) => void, delay: number) => { - let timeout: number | NodeJS.Timeout = 0; + let timeout: ReturnType | undefined; return (...args: any) => { - clearTimeout(timeout); + if (timeout) clearTimeout(timeout); timeout = setTimeout(() => { calLback(...args); }, delay); diff --git a/example/src/utils/holder/navigation.ts b/example/src/utils/holder/navigation.ts index f0cc872..59b587b 100644 --- a/example/src/utils/holder/navigation.ts +++ b/example/src/utils/holder/navigation.ts @@ -4,7 +4,7 @@ import { NavigationContainerRef, StackActions, createNavigationContainerRef, -} from '@react-navigation/native'; +} from "expo-router/react-navigation"; import { RootStackParamList } from '@/navigators/stack/root'; const isReadyRef = From 20ba7b94512ad9494785ffd79516ac3639e9db03 Mon Sep 17 00:00:00 2001 From: Mad Dinh Date: Tue, 11 Aug 2026 23:09:43 +0700 Subject: [PATCH 3/3] feat(example): interpolate profile arrow on scroll --- example/src/screens/core/Profile/index.tsx | 34 ++++++++++++++++++---- 1 file changed, 28 insertions(+), 6 deletions(-) diff --git a/example/src/screens/core/Profile/index.tsx b/example/src/screens/core/Profile/index.tsx index ec618cc..9e537bd 100644 --- a/example/src/screens/core/Profile/index.tsx +++ b/example/src/screens/core/Profile/index.tsx @@ -1,7 +1,12 @@ import { Ionicons, MaterialCommunityIcons } from "@expo/vector-icons"; import { Image } from "expo-image"; -import React, { useRef } from "react"; +import React from "react"; import { Pressable, ScrollView, Text, View } from "react-native"; +import Animated, { + Extrapolation, + useAnimatedRef, + useScrollOffset, +} from "react-native-reanimated"; import { useSafeAreaInsets } from "react-native-safe-area-context"; import { AppStyles } from "@/styles"; @@ -16,7 +21,8 @@ import { styles } from "./style"; const Profile = () => { const insets = useSafeAreaInsets(); - const scrollViewRef = useRef(null); + const scrollViewRef = useAnimatedRef(); + const nativeScrollOffset = useScrollOffset(scrollViewRef); const { direction, onScroll, isScrolling } = useMotionify({ threshold: 30, @@ -53,7 +59,7 @@ const Profile = () => { - { - +