diff --git a/App.tsx b/App.tsx index 90d1aa6427..1a97dfca8e 100644 --- a/App.tsx +++ b/App.tsx @@ -3,7 +3,7 @@ import { enableFreeze } from 'react-native-screens'; enableFreeze(true); -import React from 'react'; +import React, { useRef } from 'react'; import { StatusBar, StyleSheet } from 'react-native'; import { GestureHandlerRootView } from 'react-native-gesture-handler'; import LottieSplashScreen from 'react-native-lottie-splash-screen'; @@ -17,6 +17,15 @@ import AppErrorBoundary from '@components/AppErrorBoundary/AppErrorBoundary'; import Main from './src/navigators/Main'; import { BottomSheetModalProvider } from '@gorhom/bottom-sheet'; +// Rozenite DevTools +import { useReactNavigationDevTools } from '@rozenite/react-navigation-plugin'; +import { useNetworkActivityDevTools } from '@rozenite/network-activity-plugin'; +import { usePerformanceMonitorDevTools } from '@rozenite/performance-monitor-plugin'; +import { useMMKVDevTools } from '@rozenite/mmkv-plugin'; +import { store } from '@plugins/helpers/storage'; +import { MMKVStorage } from '@utils/mmkv/mmkv'; +import { NavigationContainerRef } from '@react-navigation/native'; + Notifications.setNotificationHandler({ handleNotification: async () => { return { @@ -31,6 +40,16 @@ createTables(); LottieSplashScreen.hide(); const App = () => { + const navigationRef = useRef>(null); + + // Enable React Navigation DevTools in development + useReactNavigationDevTools({ ref: navigationRef }); + useNetworkActivityDevTools(); + usePerformanceMonitorDevTools(); + useMMKVDevTools({ + storages: [store, MMKVStorage], + }); + return ( @@ -38,7 +57,8 @@ const App = () => { -
+ {/* @ts-ignore */} +
diff --git a/env.d.ts b/env.d.ts index 992934aa76..439325067e 100644 --- a/env.d.ts +++ b/env.d.ts @@ -4,4 +4,5 @@ declare module '@env' { export const GIT_HASH: string; export const RELEASE_DATE: string; export const BUILD_TYPE: 'Debug' | 'Release' | 'Beta' | 'Github Action'; + export const ROZENITE_ENABLED: boolean; } diff --git a/ln b/ln new file mode 160000 index 0000000000..7522993bcb --- /dev/null +++ b/ln @@ -0,0 +1 @@ +Subproject commit 7522993bcb70a745181dd5b390d6c079c9d5666e diff --git a/metro.config.js b/metro.config.js index 7920a7c2c3..52c8e9be8d 100644 --- a/metro.config.js +++ b/metro.config.js @@ -7,6 +7,7 @@ * @type {import('@react-native/metro-config').MetroConfig} */ +const { withRozenite } = require('@rozenite/metro'); const path = require('path'); const fs = require('fs'); const { getDefaultConfig, mergeConfig } = require('@react-native/metro-config'); @@ -51,4 +52,4 @@ const customConfig = { }, }, }; -module.exports = mergeConfig(defaultConfig, customConfig); +module.exports = withRozenite(mergeConfig(defaultConfig, customConfig)); \ No newline at end of file diff --git a/package.json b/package.json index 4bb242bbb1..f05d9af434 100644 --- a/package.json +++ b/package.json @@ -81,7 +81,6 @@ "react-native-file-access": "^3.2.0", "react-native-gesture-handler": "^2.28.0", "react-native-lottie-splash-screen": "^1.1.2", - "react-native-mmkv": "^3.3.1", "react-native-pager-view": "^6.9.1", "react-native-paper": "^5.14.5", "react-native-reanimated": "^4.1.0", @@ -109,6 +108,11 @@ "@rock-js/platform-android": "^0.11.1", "@rock-js/platform-ios": "^0.11.1", "@rock-js/plugin-metro": "^0.11.1", + "@rozenite/metro": "1.0.0-alpha.12", + "@rozenite/mmkv-plugin": "1.0.0-alpha.12", + "@rozenite/network-activity-plugin": "1.0.0-alpha.12", + "@rozenite/performance-monitor-plugin": "1.0.0-alpha.12", + "@rozenite/react-navigation-plugin": "1.0.0-alpha.13-canary.1757712627960", "@types/color": "^4.2.0", "@types/lodash-es": "^4.17.12", "@types/react": "~19.1.12", @@ -120,6 +124,8 @@ "lint-staged": "^12.5.0", "prettier": "2.8.8", "react-native-dotenv": "^3.4.11", + "react-native-mmkv": "^3.3.1", + "react-native-performance": "^5.1.4", "rock": "^0.11.1", "typescript": "~5.9.2" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3def370d53..4335446e71 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -146,9 +146,6 @@ importers: react-native-lottie-splash-screen: specifier: ^1.1.2 version: 1.1.2(react-native@0.81.4(@babel/core@7.28.4)(@react-native-community/cli@20.0.2(typescript@5.9.2))(@react-native/metro-config@0.81.1(@babel/core@7.28.4))(@types/react@19.1.12)(react@19.1.0))(react@19.1.0) - react-native-mmkv: - specifier: ^3.3.1 - version: 3.3.1(react-native@0.81.4(@babel/core@7.28.4)(@react-native-community/cli@20.0.2(typescript@5.9.2))(@react-native/metro-config@0.81.1(@babel/core@7.28.4))(@types/react@19.1.12)(react@19.1.0))(react@19.1.0) react-native-pager-view: specifier: ^6.9.1 version: 6.9.1(react-native@0.81.4(@babel/core@7.28.4)(@react-native-community/cli@20.0.2(typescript@5.9.2))(@react-native/metro-config@0.81.1(@babel/core@7.28.4))(@types/react@19.1.12)(react@19.1.0))(react@19.1.0) @@ -225,6 +222,21 @@ importers: '@rock-js/plugin-metro': specifier: ^0.11.1 version: 0.11.1 + '@rozenite/metro': + specifier: 1.0.0-alpha.12 + version: 1.0.0-alpha.12 + '@rozenite/mmkv-plugin': + specifier: 1.0.0-alpha.12 + version: 1.0.0-alpha.12(react-native-mmkv@3.3.1(react-native@0.81.4(@babel/core@7.28.4)(@react-native-community/cli@20.0.2(typescript@5.9.2))(@react-native/metro-config@0.81.1(@babel/core@7.28.4))(@types/react@19.1.12)(react@19.1.0))(react@19.1.0))(react-native@0.81.4(@babel/core@7.28.4)(@react-native-community/cli@20.0.2(typescript@5.9.2))(@react-native/metro-config@0.81.1(@babel/core@7.28.4))(@types/react@19.1.12)(react@19.1.0))(react@19.1.0) + '@rozenite/network-activity-plugin': + specifier: 1.0.0-alpha.12 + version: 1.0.0-alpha.12(react@19.1.0) + '@rozenite/performance-monitor-plugin': + specifier: 1.0.0-alpha.12 + version: 1.0.0-alpha.12(react-native-performance@5.1.4(react-native@0.81.4(@babel/core@7.28.4)(@react-native-community/cli@20.0.2(typescript@5.9.2))(@react-native/metro-config@0.81.1(@babel/core@7.28.4))(@types/react@19.1.12)(react@19.1.0)))(react-native@0.81.4(@babel/core@7.28.4)(@react-native-community/cli@20.0.2(typescript@5.9.2))(@react-native/metro-config@0.81.1(@babel/core@7.28.4))(@types/react@19.1.12)(react@19.1.0))(react@19.1.0) + '@rozenite/react-navigation-plugin': + specifier: 1.0.0-alpha.13-canary.1757712627960 + version: 1.0.0-alpha.13-canary.1757712627960(@react-navigation/core@7.12.4(react@19.1.0))(react@19.1.0) '@types/color': specifier: ^4.2.0 version: 4.2.0 @@ -258,6 +270,12 @@ importers: react-native-dotenv: specifier: ^3.4.11 version: 3.4.11(@babel/runtime@7.28.4) + react-native-mmkv: + specifier: ^3.3.1 + version: 3.3.1(react-native@0.81.4(@babel/core@7.28.4)(@react-native-community/cli@20.0.2(typescript@5.9.2))(@react-native/metro-config@0.81.1(@babel/core@7.28.4))(@types/react@19.1.12)(react@19.1.0))(react@19.1.0) + react-native-performance: + specifier: ^5.1.4 + version: 5.1.4(react-native@0.81.4(@babel/core@7.28.4)(@react-native-community/cli@20.0.2(typescript@5.9.2))(@react-native/metro-config@0.81.1(@babel/core@7.28.4))(@types/react@19.1.12)(react@19.1.0)) rock: specifier: ^0.11.1 version: 0.11.1(typescript@5.9.2) @@ -1536,6 +1554,60 @@ packages: '@rock-js/tools@0.11.1': resolution: {integrity: sha512-Hvp30ZCTLG1oaD74kpBJWiTNsFxqQdi8wDjOmZWVGsVl+g5aa8BMYO5rQ3DqiTlPYhfli//RjkfP+MHzP+Nj9A==} + '@rozenite/metro@1.0.0-alpha.12': + resolution: {integrity: sha512-rAwqnPTtBh+8+65b94K9OL95sCf77FE4LCCOwu75uTqk9eHomF79EXjw8eqtlgNkIgRs/THLcz5tNAkBrtPIPQ==} + engines: {node: '>=22'} + + '@rozenite/middleware@1.0.0-alpha.12': + resolution: {integrity: sha512-q+KcYPgj2tolQFByjHWQ1gFnHANUu3hd8+Ph0TyEnHHGsAzeJmG53zgviWNosjUI32pv1wzDpd1tVmBXGK4xfQ==} + engines: {node: '>=22'} + + '@rozenite/mmkv-plugin@1.0.0-alpha.12': + resolution: {integrity: sha512-Eom1JHY/npVjapbmci5uGHXNXXyVvaupqJ0AX/qBHAnhxQ01Bo1ThKZDDkl/3W5lwwg5siJdnjr6Xu2HPLBaYQ==} + peerDependencies: + react: '*' + react-native: '*' + react-native-mmkv: '*' + + '@rozenite/network-activity-plugin@1.0.0-alpha.12': + resolution: {integrity: sha512-aMhZtUEVSjqZafMiORQG8r8J6UiuGORAd+6/Lr7XoaRwTFbqW0nci6uohxQ0HIbQHrfOLobdLqyvzEDUhhwLlg==} + peerDependencies: + react-native-sse: '*' + peerDependenciesMeta: + react-native-sse: + optional: true + + '@rozenite/performance-monitor-plugin@1.0.0-alpha.12': + resolution: {integrity: sha512-dCYJpV18XLcRMu2VQmR+heQ1iiIlFTcBjNPZrOplUkLXVSZCHhJe7Zv/Qm9ZEBHWEmRV48oDXKAp6dd3O3xXqg==} + peerDependencies: + react: '*' + react-native: '*' + react-native-performance: '*' + + '@rozenite/plugin-bridge@1.0.0-alpha.12': + resolution: {integrity: sha512-iYxj7xjceFBtnivf+EZ82IoQjG9JmqtT+MkqdOGFCtQa6POOTtrtHE6MlEAqlmXimddMdpOscKlYzeP8SKNabw==} + engines: {node: '>=22'} + peerDependencies: + react: '>=17' + + '@rozenite/plugin-bridge@1.0.0-alpha.13-canary.1757712627960': + resolution: {integrity: sha512-2k/53nzyrJh7551F26tnRZ35hZKXb1MzCD4lk1etfc4IesJ+m70eUiT5KZDh6R+FradeoYvaSArNJHxp7C/Xkg==} + engines: {node: '>=22'} + peerDependencies: + react: '>=17' + + '@rozenite/react-navigation-plugin@1.0.0-alpha.13-canary.1757712627960': + resolution: {integrity: sha512-S6QZX9X+oa1EnQXzEOBlt6a2yILd7wubWiXcCuPxwepV4tXvuzqruOSyJj/6wexa+syfG7PgJ9JGMnaguLiNzg==} + peerDependencies: + '@react-navigation/core': ^7.12.1 + + '@rozenite/runtime@1.0.0-alpha.12': + resolution: {integrity: sha512-JJTBftU1U6ScjMYwQqvUw0q4eXSpL5wUdK1aFnOM9CkI/q/F7AocLTQQcQ94khLc/QohbwVk3G2ietoqR8MJkA==} + engines: {node: '>=22'} + + '@rozenite/tools@1.0.0-alpha.12': + resolution: {integrity: sha512-7aNQdvx2gCKkI5Fbzp6/Hi42CJnqD3jje71zWyP4xv1r0KPbvJP0cyiBTCcCJ/f4fbYY6MQgBZuhdP2AK3/9Dw==} + '@shopify/flash-list@2.0.2': resolution: {integrity: sha512-zhlrhA9eiuEzja4wxVvotgXHtqd3qsYbXkQ3rsBfOgbFA9BVeErpDE/yEwtlIviRGEqpuFj/oU5owD6ByaNX+w==} peerDependencies: @@ -1741,6 +1813,10 @@ packages: resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} engines: {node: '>= 0.6'} + accepts@2.0.0: + resolution: {integrity: sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==} + engines: {node: '>= 0.6'} + acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -1980,6 +2056,10 @@ packages: resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + body-parser@2.2.0: + resolution: {integrity: sha512-02qvAaxv8tp7fBa/mw1ga98OGm+eCbqzJOKoRt70sLmfEEi+jyBYVTDGfCL/k06/4EMk/z01gCe7HoCH/f2LTg==} + engines: {node: '>=18'} + boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} @@ -2212,6 +2292,10 @@ packages: resolution: {integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==} engines: {node: '>= 0.10.0'} + content-disposition@1.0.0: + resolution: {integrity: sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg==} + engines: {node: '>= 0.6'} + content-type@1.0.5: resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} engines: {node: '>= 0.6'} @@ -2219,6 +2303,14 @@ packages: convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + cookie-signature@1.2.2: + resolution: {integrity: sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==} + engines: {node: '>=6.6.0'} + + cookie@0.7.2: + resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} + engines: {node: '>= 0.6'} + core-js-compat@3.45.1: resolution: {integrity: sha512-tqTt5T4PzsMIZ430XGviK4vzYSoeNJ6CXODi6c/voxOT6IZqBht5/EKaSNnYiEjjRYxjVz7DQIsOsY0XNi8PIA==} @@ -2748,6 +2840,10 @@ packages: exponential-backoff@3.1.2: resolution: {integrity: sha512-8QxYTVXUkuy7fIIoitQkPwGonB8F3Zj8eEO8Sqg9Zv/bkI7RJAzowee4gr81Hak/dUTpA2Z7VfQgoijjPNlUZA==} + express@5.1.0: + resolution: {integrity: sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==} + engines: {node: '>= 18'} + fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -2787,6 +2883,10 @@ packages: resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==} engines: {node: '>= 0.8'} + finalhandler@2.1.0: + resolution: {integrity: sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q==} + engines: {node: '>= 0.8'} + find-babel-config@2.1.2: resolution: {integrity: sha512-ZfZp1rQyp4gyuxqt1ZqjFGVeVBvmpURMqdIWXbPRfB97Bf6BzdK/xSIbylEINzQ0kB5tlDQfn9HkNXXWsqTqLg==} @@ -2827,6 +2927,10 @@ packages: resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} engines: {node: '>=14'} + forwarded@0.2.0: + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + engines: {node: '>= 0.6'} + freeport-async@2.0.0: resolution: {integrity: sha512-K7od3Uw45AJg00XUmy15+Hae2hOcgKcmN3/EF6Y7i01O0gaqiRx8sUSpsb9+BRNL8RPBrhzPsVfy8q9ADlJuWQ==} engines: {node: '>=8'} @@ -2835,6 +2939,10 @@ packages: resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} engines: {node: '>= 0.6'} + fresh@2.0.0: + resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==} + engines: {node: '>= 0.8'} + fs-extra@8.1.0: resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} engines: {node: '>=6 <7 || >=8'} @@ -3023,6 +3131,10 @@ packages: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} + iconv-lite@0.7.0: + resolution: {integrity: sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==} + engines: {node: '>=0.10.0'} + ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -3072,6 +3184,10 @@ packages: invariant@2.2.4: resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} + ipaddr.js@1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} + is-arguments@1.2.0: resolution: {integrity: sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==} engines: {node: '>= 0.4'} @@ -3183,6 +3299,9 @@ packages: resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} engines: {node: '>=0.10.0'} + is-promise@4.0.0: + resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==} + is-regex@1.2.1: resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} engines: {node: '>= 0.4'} @@ -3557,9 +3676,17 @@ packages: resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} engines: {node: '>= 0.6'} + media-typer@1.1.0: + resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==} + engines: {node: '>= 0.8'} + memoize-one@5.2.1: resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==} + merge-descriptors@2.0.0: + resolution: {integrity: sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==} + engines: {node: '>=18'} + merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} @@ -3641,6 +3768,10 @@ packages: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} + mime-types@3.0.1: + resolution: {integrity: sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==} + engines: {node: '>= 0.6'} + mime@1.6.0: resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} engines: {node: '>=4'} @@ -3708,6 +3839,10 @@ packages: resolution: {integrity: sha512-/pULofvsF8mOVcl/nUeVXL/GYOEvc7eJWSIxa+K4OYUolvXa5zwSgevsn4eoHs1xvh/BO3vx/PZiD9+Ow2ZVuw==} engines: {node: '>=18.19'} + nanoevents@9.1.0: + resolution: {integrity: sha512-Jd0fILWG44a9luj8v5kED4WI+zfkkgwKyRQKItTtlPfEsh7Lznfi1kr8/iZ+XAIss4Qq5GqRB0qtWbaz9ceO/A==} + engines: {node: ^18.0.0 || >=20.0.0} + nanoid@3.3.11: resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -3724,6 +3859,10 @@ packages: resolution: {integrity: sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==} engines: {node: '>= 0.6'} + negotiator@1.0.0: + resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==} + engines: {node: '>= 0.6'} + nested-error-stacks@2.0.1: resolution: {integrity: sha512-SrQrok4CATudVzBS7coSz26QRSmlK9TzzoFbeKfcPBUFPjcQM9Rqvr/DlJkOrwI/0KcgvMub1n1g5Jt9EgRn4A==} @@ -3949,6 +4088,9 @@ packages: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} + path-to-regexp@8.3.0: + resolution: {integrity: sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA==} + path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} @@ -4040,6 +4182,10 @@ packages: resolution: {integrity: sha512-CvexbZtbov6jW2eXAvLukXjXUW1TzFaivC46BpWc/3BpcCysb5Vffu+B3XHMm8lVEuy2Mm4XGex8hBSg1yapPg==} engines: {node: '>=12.0.0'} + proxy-addr@2.0.7: + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + engines: {node: '>= 0.10'} + punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} @@ -4052,6 +4198,10 @@ packages: resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} engines: {node: '>=0.6'} + qs@6.14.0: + resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==} + engines: {node: '>=0.6'} + query-string@7.1.3: resolution: {integrity: sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==} engines: {node: '>=6'} @@ -4070,6 +4220,10 @@ packages: resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} engines: {node: '>= 0.8'} + raw-body@3.0.1: + resolution: {integrity: sha512-9G8cA+tuMS75+6G/TzW8OtLzmBDMo8p1JRxN5AZ+LAp8uxGA8V8GZm4GQ4/N5QNQEnLmg6SS7wyuSmbKepiKqA==} + engines: {node: '>= 0.10'} + rc@1.2.8: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true @@ -4179,6 +4333,11 @@ packages: react-native: '*' react-native-safe-area-context: '*' + react-native-performance@5.1.4: + resolution: {integrity: sha512-ydqDe8EFlA9iuhA/DBYAnt4Hs3lpmLKcaXPsDfQJwowT4dXPgLgUDqJUuDIYEVsEsjZybloSmUj0fvUuUogqpw==} + peerDependencies: + react-native: '*' + react-native-reanimated@4.1.0: resolution: {integrity: sha512-L8FqZn8VjZyBaCUMYFyx1Y+T+ZTbblaudpxReOXJ66RnOf52g6UM4Pa/IjwLD1XAw1FUxLRQrtpdjbkEc74FiQ==} peerDependencies: @@ -4382,6 +4541,10 @@ packages: resolution: {integrity: sha512-14uaV6ERRPbPo9yyP5gwE54WDQt7KmrXDj5wuBeNSeaU9gdhG+/hW92aXGohlGbFCQJESOzqdfpF6NvGZukVOA==} hasBin: true + router@2.2.0: + resolution: {integrity: sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==} + engines: {node: '>= 18'} + rtl-detect@1.1.2: resolution: {integrity: sha512-PGMBq03+TTG/p/cRB7HCLKJ1MgDIi07+QU1faSjiYRfmY5UsAttV9Hs08jDAHVwcOwmVLcSJkpwyfXszVjWfIQ==} @@ -4435,6 +4598,10 @@ packages: resolution: {integrity: sha512-p4rRk4f23ynFEfcD9LA0xRYngj+IyGiEYyqqOak8kaN0TvNmuxC2dcVeBn62GpCeR2CpWqyHCNScTP91QbAVFg==} engines: {node: '>= 0.8.0'} + send@1.2.0: + resolution: {integrity: sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==} + engines: {node: '>= 18'} + serialize-error@2.1.0: resolution: {integrity: sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw==} engines: {node: '>=0.10.0'} @@ -4443,6 +4610,10 @@ packages: resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} engines: {node: '>= 0.8.0'} + serve-static@2.2.0: + resolution: {integrity: sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==} + engines: {node: '>= 18'} + set-blocking@2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} @@ -4775,6 +4946,10 @@ packages: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} engines: {node: '>= 0.6'} + type-is@2.0.1: + resolution: {integrity: sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==} + engines: {node: '>= 0.6'} + typed-array-buffer@1.0.3: resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} engines: {node: '>= 0.4'} @@ -7018,6 +7193,70 @@ snapshots: tar: 7.4.3 tslib: 2.8.1 + '@rozenite/metro@1.0.0-alpha.12': + dependencies: + '@rozenite/middleware': 1.0.0-alpha.12 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color + + '@rozenite/middleware@1.0.0-alpha.12': + dependencies: + '@rozenite/runtime': 1.0.0-alpha.12 + '@rozenite/tools': 1.0.0-alpha.12 + express: 5.1.0 + semver: 7.7.2 + serve-static: 2.2.0 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color + + '@rozenite/mmkv-plugin@1.0.0-alpha.12(react-native-mmkv@3.3.1(react-native@0.81.4(@babel/core@7.28.4)(@react-native-community/cli@20.0.2(typescript@5.9.2))(@react-native/metro-config@0.81.1(@babel/core@7.28.4))(@types/react@19.1.12)(react@19.1.0))(react@19.1.0))(react-native@0.81.4(@babel/core@7.28.4)(@react-native-community/cli@20.0.2(typescript@5.9.2))(@react-native/metro-config@0.81.1(@babel/core@7.28.4))(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)': + dependencies: + '@rozenite/plugin-bridge': 1.0.0-alpha.12(react@19.1.0) + nanoevents: 9.1.0 + react: 19.1.0 + react-native: 0.81.4(@babel/core@7.28.4)(@react-native-community/cli@20.0.2(typescript@5.9.2))(@react-native/metro-config@0.81.1(@babel/core@7.28.4))(@types/react@19.1.12)(react@19.1.0) + react-native-mmkv: 3.3.1(react-native@0.81.4(@babel/core@7.28.4)(@react-native-community/cli@20.0.2(typescript@5.9.2))(@react-native/metro-config@0.81.1(@babel/core@7.28.4))(@types/react@19.1.12)(react@19.1.0))(react@19.1.0) + + '@rozenite/network-activity-plugin@1.0.0-alpha.12(react@19.1.0)': + dependencies: + '@rozenite/plugin-bridge': 1.0.0-alpha.12(react@19.1.0) + nanoevents: 9.1.0 + transitivePeerDependencies: + - react + + '@rozenite/performance-monitor-plugin@1.0.0-alpha.12(react-native-performance@5.1.4(react-native@0.81.4(@babel/core@7.28.4)(@react-native-community/cli@20.0.2(typescript@5.9.2))(@react-native/metro-config@0.81.1(@babel/core@7.28.4))(@types/react@19.1.12)(react@19.1.0)))(react-native@0.81.4(@babel/core@7.28.4)(@react-native-community/cli@20.0.2(typescript@5.9.2))(@react-native/metro-config@0.81.1(@babel/core@7.28.4))(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)': + dependencies: + '@rozenite/plugin-bridge': 1.0.0-alpha.12(react@19.1.0) + react: 19.1.0 + react-native: 0.81.4(@babel/core@7.28.4)(@react-native-community/cli@20.0.2(typescript@5.9.2))(@react-native/metro-config@0.81.1(@babel/core@7.28.4))(@types/react@19.1.12)(react@19.1.0) + react-native-performance: 5.1.4(react-native@0.81.4(@babel/core@7.28.4)(@react-native-community/cli@20.0.2(typescript@5.9.2))(@react-native/metro-config@0.81.1(@babel/core@7.28.4))(@types/react@19.1.12)(react@19.1.0)) + + '@rozenite/plugin-bridge@1.0.0-alpha.12(react@19.1.0)': + dependencies: + react: 19.1.0 + tslib: 2.8.1 + + '@rozenite/plugin-bridge@1.0.0-alpha.13-canary.1757712627960(react@19.1.0)': + dependencies: + react: 19.1.0 + tslib: 2.8.1 + + '@rozenite/react-navigation-plugin@1.0.0-alpha.13-canary.1757712627960(@react-navigation/core@7.12.4(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-navigation/core': 7.12.4(react@19.1.0) + '@rozenite/plugin-bridge': 1.0.0-alpha.13-canary.1757712627960(react@19.1.0) + fast-deep-equal: 3.1.3 + transitivePeerDependencies: + - react + + '@rozenite/runtime@1.0.0-alpha.12': + dependencies: + tslib: 2.8.1 + + '@rozenite/tools@1.0.0-alpha.12': {} + '@shopify/flash-list@2.0.2(@babel/runtime@7.28.4)(react-native@0.81.4(@babel/core@7.28.4)(@react-native-community/cli@20.0.2(typescript@5.9.2))(@react-native/metro-config@0.81.1(@babel/core@7.28.4))(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)': dependencies: '@babel/runtime': 7.28.4 @@ -7273,6 +7512,11 @@ snapshots: mime-types: 2.1.35 negotiator: 0.6.3 + accepts@2.0.0: + dependencies: + mime-types: 3.0.1 + negotiator: 1.0.0 + acorn-jsx@5.3.2(acorn@8.15.0): dependencies: acorn: 8.15.0 @@ -7603,6 +7847,20 @@ snapshots: transitivePeerDependencies: - supports-color + body-parser@2.2.0: + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 4.4.1(supports-color@9.4.0) + http-errors: 2.0.0 + iconv-lite: 0.6.3 + on-finished: 2.4.1 + qs: 6.14.0 + raw-body: 3.0.1 + type-is: 2.0.1 + transitivePeerDependencies: + - supports-color + boolbase@1.0.0: {} bplist-creator@0.1.0: @@ -7865,10 +8123,18 @@ snapshots: transitivePeerDependencies: - supports-color + content-disposition@1.0.0: + dependencies: + safe-buffer: 5.2.1 + content-type@1.0.5: {} convert-source-map@2.0.0: {} + cookie-signature@1.2.2: {} + + cookie@0.7.2: {} + core-js-compat@3.45.1: dependencies: browserslist: 4.25.4 @@ -8504,6 +8770,38 @@ snapshots: exponential-backoff@3.1.2: {} + express@5.1.0: + dependencies: + accepts: 2.0.0 + body-parser: 2.2.0 + content-disposition: 1.0.0 + content-type: 1.0.5 + cookie: 0.7.2 + cookie-signature: 1.2.2 + debug: 4.4.1(supports-color@9.4.0) + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 2.1.0 + fresh: 2.0.0 + http-errors: 2.0.0 + merge-descriptors: 2.0.0 + mime-types: 3.0.1 + on-finished: 2.4.1 + once: 1.4.0 + parseurl: 1.3.3 + proxy-addr: 2.0.7 + qs: 6.14.0 + range-parser: 1.2.1 + router: 2.2.0 + send: 1.2.0 + serve-static: 2.2.0 + statuses: 2.0.1 + type-is: 2.0.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + fast-deep-equal@3.1.3: {} fast-glob@3.3.3: @@ -8552,6 +8850,17 @@ snapshots: transitivePeerDependencies: - supports-color + finalhandler@2.1.0: + dependencies: + debug: 4.4.1(supports-color@9.4.0) + encodeurl: 2.0.0 + escape-html: 1.0.3 + on-finished: 2.4.1 + parseurl: 1.3.3 + statuses: 2.0.1 + transitivePeerDependencies: + - supports-color + find-babel-config@2.1.2: dependencies: json5: 2.2.3 @@ -8597,10 +8906,14 @@ snapshots: cross-spawn: 7.0.6 signal-exit: 4.1.0 + forwarded@0.2.0: {} + freeport-async@2.0.0: {} fresh@0.5.2: {} + fresh@2.0.0: {} + fs-extra@8.1.0: dependencies: graceful-fs: 4.2.11 @@ -8818,6 +9131,10 @@ snapshots: dependencies: safer-buffer: 2.1.2 + iconv-lite@0.7.0: + dependencies: + safer-buffer: 2.1.2 + ieee754@1.2.1: {} ignore@5.3.2: {} @@ -8861,6 +9178,8 @@ snapshots: dependencies: loose-envify: 1.4.0 + ipaddr.js@1.9.1: {} + is-arguments@1.2.0: dependencies: call-bound: 1.0.4 @@ -8960,6 +9279,8 @@ snapshots: is-plain-object@5.0.0: {} + is-promise@4.0.0: {} + is-regex@1.2.1: dependencies: call-bound: 1.0.4 @@ -9357,8 +9678,12 @@ snapshots: media-typer@0.3.0: {} + media-typer@1.1.0: {} + memoize-one@5.2.1: {} + merge-descriptors@2.0.0: {} + merge-stream@2.0.0: {} merge2@1.4.1: {} @@ -9551,6 +9876,10 @@ snapshots: dependencies: mime-db: 1.52.0 + mime-types@3.0.1: + dependencies: + mime-db: 1.54.0 + mime@1.6.0: {} mime@2.6.0: {} @@ -9597,6 +9926,8 @@ snapshots: nano-spawn@0.2.1: {} + nanoevents@9.1.0: {} + nanoid@3.3.11: {} natural-compare@1.4.0: {} @@ -9605,6 +9936,8 @@ snapshots: negotiator@0.6.4: {} + negotiator@1.0.0: {} + nested-error-stacks@2.0.1: {} nocache@3.0.4: {} @@ -9845,6 +10178,8 @@ snapshots: lru-cache: 10.4.3 minipass: 7.1.2 + path-to-regexp@8.3.0: {} + path-type@4.0.0: {} picocolors@1.1.1: {} @@ -9931,6 +10266,11 @@ snapshots: '@types/node': 24.3.1 long: 5.3.2 + proxy-addr@2.0.7: + dependencies: + forwarded: 0.2.0 + ipaddr.js: 1.9.1 + punycode@2.3.1: {} qrcode-terminal@0.11.0: {} @@ -9939,6 +10279,10 @@ snapshots: dependencies: side-channel: 1.1.0 + qs@6.14.0: + dependencies: + side-channel: 1.1.0 + query-string@7.1.3: dependencies: decode-uri-component: 0.2.2 @@ -9961,6 +10305,13 @@ snapshots: iconv-lite: 0.4.24 unpipe: 1.0.0 + raw-body@3.0.1: + dependencies: + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.7.0 + unpipe: 1.0.0 + rc@1.2.8: dependencies: deep-extend: 0.6.0 @@ -10069,6 +10420,10 @@ snapshots: react-native-safe-area-context: 5.6.1(react-native@0.81.4(@babel/core@7.28.4)(@react-native-community/cli@20.0.2(typescript@5.9.2))(@react-native/metro-config@0.81.1(@babel/core@7.28.4))(@types/react@19.1.12)(react@19.1.0))(react@19.1.0) use-latest-callback: 0.2.4(react@19.1.0) + react-native-performance@5.1.4(react-native@0.81.4(@babel/core@7.28.4)(@react-native-community/cli@20.0.2(typescript@5.9.2))(@react-native/metro-config@0.81.1(@babel/core@7.28.4))(@types/react@19.1.12)(react@19.1.0)): + dependencies: + react-native: 0.81.4(@babel/core@7.28.4)(@react-native-community/cli@20.0.2(typescript@5.9.2))(@react-native/metro-config@0.81.1(@babel/core@7.28.4))(@types/react@19.1.12)(react@19.1.0) + react-native-reanimated@4.1.0(@babel/core@7.28.4)(react-native-worklets@0.5.1(@babel/core@7.28.4)(react-native@0.81.4(@babel/core@7.28.4)(@react-native-community/cli@20.0.2(typescript@5.9.2))(@react-native/metro-config@0.81.1(@babel/core@7.28.4))(@types/react@19.1.12)(react@19.1.0))(react@19.1.0))(react-native@0.81.4(@babel/core@7.28.4)(@react-native-community/cli@20.0.2(typescript@5.9.2))(@react-native/metro-config@0.81.1(@babel/core@7.28.4))(@types/react@19.1.12)(react@19.1.0))(react@19.1.0): dependencies: '@babel/core': 7.28.4 @@ -10329,6 +10684,16 @@ snapshots: transitivePeerDependencies: - typescript + router@2.2.0: + dependencies: + debug: 4.4.1(supports-color@9.4.0) + depd: 2.0.0 + is-promise: 4.0.0 + parseurl: 1.3.3 + path-to-regexp: 8.3.0 + transitivePeerDependencies: + - supports-color + rtl-detect@1.1.2: {} run-parallel@1.2.0: @@ -10415,6 +10780,22 @@ snapshots: transitivePeerDependencies: - supports-color + send@1.2.0: + dependencies: + debug: 4.4.1(supports-color@9.4.0) + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 2.0.0 + http-errors: 2.0.0 + mime-types: 3.0.1 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.1 + transitivePeerDependencies: + - supports-color + serialize-error@2.1.0: {} serve-static@1.16.2: @@ -10426,6 +10807,15 @@ snapshots: transitivePeerDependencies: - supports-color + serve-static@2.2.0: + dependencies: + encodeurl: 2.0.0 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 1.2.0 + transitivePeerDependencies: + - supports-color + set-blocking@2.0.0: optional: true @@ -10773,6 +11163,12 @@ snapshots: media-typer: 0.3.0 mime-types: 2.1.35 + type-is@2.0.1: + dependencies: + content-type: 1.0.5 + media-typer: 1.1.0 + mime-types: 3.0.1 + typed-array-buffer@1.0.3: dependencies: call-bound: 1.0.4 diff --git a/src/navigators/Main.tsx b/src/navigators/Main.tsx index ed08f5b2f6..aa552f2dca 100644 --- a/src/navigators/Main.tsx +++ b/src/navigators/Main.tsx @@ -1,6 +1,10 @@ import React, { useEffect } from 'react'; -import { DefaultTheme, NavigationContainer } from '@react-navigation/native'; +import { + DefaultTheme, + NavigationContainer, + NavigationContainerRef, +} from '@react-navigation/native'; import { createNativeStackNavigator } from '@react-navigation/native-stack'; import { @@ -41,7 +45,11 @@ import { LibraryContextProvider } from '@components/Context/LibraryContext'; import { UpdateContextProvider } from '@components/Context/UpdateContext'; const Stack = createNativeStackNavigator(); -const MainNavigator = () => { +const MainNavigator = ({ + ref, +}: { + ref: React.Ref | null>; +}) => { const theme = useTheme(); const { updateLibraryOnLaunch } = useAppSettings(); const { refreshPlugins } = usePlugins(); @@ -76,6 +84,7 @@ const MainNavigator = () => { return ( + ref={ref} theme={{ colors: { ...DefaultTheme.colors,