diff --git a/.claude/projects/-Users-ullrich-Projects-trails-cool/memory/feedback_eas_builds.md b/.claude/projects/-Users-ullrich-Projects-trails-cool/memory/feedback_eas_builds.md new file mode 100644 index 0000000..272e011 --- /dev/null +++ b/.claude/projects/-Users-ullrich-Projects-trails-cool/memory/feedback_eas_builds.md @@ -0,0 +1,9 @@ +--- +name: EAS build credits +description: Avoid unnecessary EAS cloud builds — they consume limited credits +type: feedback +--- + +Don't trigger EAS builds casually. They consume limited cloud build credits. +**Why:** Free tier has a monthly cap; each `eas build` / `eas build:dev` costs credits. +**How to apply:** Only suggest or run EAS builds when adding/changing native dependencies. JS-only changes don't need a new build — the dev client hot-reloads via the bundler. diff --git a/apps/mobile/app.config.ts b/apps/mobile/app.config.ts index db5a842..b10ed58 100644 --- a/apps/mobile/app.config.ts +++ b/apps/mobile/app.config.ts @@ -34,7 +34,14 @@ export default ({ config }: ConfigContext): ExpoConfig => ({ web: { favicon: "./assets/favicon.png", }, - plugins: ["expo-router", "expo-secure-store", "expo-web-browser"], + plugins: [ + "expo-router", + "expo-secure-store", + "expo-web-browser", + "@maplibre/maplibre-react-native", + "@sentry/react-native", + "expo-sqlite", + ], extra: { eas: { projectId: "93c75cae-fecf-4ce5-8cd8-c823760b12e2", diff --git a/apps/mobile/eas.json b/apps/mobile/eas.json index ce4c4cf..d6af290 100644 --- a/apps/mobile/eas.json +++ b/apps/mobile/eas.json @@ -16,6 +16,14 @@ }, "production": { "autoIncrement": true + }, + "development-simulator": { + "developmentClient": true, + "distribution": "internal", + "ios": { + "simulator": true + }, + "environment": "development" } }, "submit": { diff --git a/apps/mobile/package.json b/apps/mobile/package.json index 5ae5c26..973d7c8 100644 --- a/apps/mobile/package.json +++ b/apps/mobile/package.json @@ -5,7 +5,9 @@ "main": "index.ts", "expo": { "install": { - "exclude": ["react"] + "exclude": [ + "react" + ] } }, "scripts": { @@ -16,8 +18,8 @@ "typecheck": "tsc --noEmit", "test": "jest", "lint": "eslint .", - "build:dev": "eas build --profile development --platform ios", - "build:preview": "eas build --profile preview --platform all" + "build:dev": "npx eas-cli build:dev --platform ios", + "build:preview": "npx eas-cli build --profile preview --platform all" }, "jest": { "preset": "jest-expo", @@ -26,6 +28,8 @@ ] }, "dependencies": { + "@maplibre/maplibre-react-native": "^10.4.2", + "@sentry/react-native": "~7.11.0", "@trails-cool/api": "workspace:*", "@trails-cool/gpx": "workspace:*", "@trails-cool/i18n": "workspace:*", @@ -36,14 +40,18 @@ "expo-crypto": "~55.0.14", "expo-dev-client": "~55.0.27", "expo-linking": "~55.0.12", + "expo-location": "~55.1.8", + "expo-notifications": "~55.0.18", "expo-router": "~55.0.12", "expo-secure-store": "~55.0.13", + "expo-sqlite": "~55.0.15", "expo-status-bar": "~55.0.5", "expo-web-browser": "~55.0.14", "react": "catalog:", "react-native": "0.83.4", "react-native-safe-area-context": "~5.6.2", "react-native-screens": "~4.23.0", + "use-latest-callback": "^0.3.3", "zod": "^3.25.76" }, "devDependencies": { diff --git a/package.json b/package.json index 05ee8ab..b82de59 100644 --- a/package.json +++ b/package.json @@ -21,9 +21,8 @@ "db:studio": "drizzle-kit studio --config packages/db/drizzle.config.ts", "dev:services": "docker compose -f docker-compose.dev.yml up -d", "dev:full": "./scripts/dev.sh", - "dev:mobile": "pnpm --filter @trails-cool/mobile start", - "dev:mobile:ios": "pnpm --filter @trails-cool/mobile ios", - "dev:mobile:android": "pnpm --filter @trails-cool/mobile android" + "dev:ios": "pnpm --filter @trails-cool/mobile build:dev", + "dev:android": "pnpm --filter @trails-cool/mobile build:dev -- --platform android" }, "pnpm": { "overrides": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 29806d7..201fd09 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -118,7 +118,7 @@ importers: version: 0.31.10 drizzle-orm: specifier: 'catalog:' - version: 0.45.2(@opentelemetry/api@1.9.1)(@types/pg@8.15.6)(postgres@3.4.9) + version: 0.45.2(@opentelemetry/api@1.9.1)(@types/pg@8.15.6)(expo-sqlite@55.0.15(expo@55.0.14)(react-native@0.83.4(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.5))(react@19.2.5))(postgres@3.4.9) drizzle-postgis: specifier: 'catalog:' version: 1.1.1 @@ -163,7 +163,7 @@ importers: version: 19.2.5(react@19.2.5) react-i18next: specifier: ^17.0.2 - version: 17.0.2(i18next@26.0.4(typescript@5.9.3))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@5.9.3) + version: 17.0.2(i18next@26.0.4(typescript@5.9.3))(react-dom@19.2.5(react@19.2.5))(react-native@0.83.4(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.5))(react@19.2.5)(typescript@5.9.3) react-leaflet: specifier: ^5.0.0 version: 5.0.0(leaflet@1.9.4)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) @@ -229,7 +229,7 @@ importers: version: link:../../packages/ui drizzle-orm: specifier: 'catalog:' - version: 0.45.2(@opentelemetry/api@1.9.1)(@types/pg@8.15.6)(postgres@3.4.9) + version: 0.45.2(@opentelemetry/api@1.9.1)(@types/pg@8.15.6)(expo-sqlite@55.0.15(expo@55.0.14)(react-native@0.83.4(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.5))(react@19.2.5))(postgres@3.4.9) isbot: specifier: ^5.1.37 version: 5.1.37 @@ -291,6 +291,12 @@ importers: apps/mobile: dependencies: + '@maplibre/maplibre-react-native': + specifier: ^10.4.2 + version: 10.4.2(@expo/config-plugins@55.0.8)(@types/geojson@7946.0.16)(@types/react@19.2.14)(react-native@0.83.4(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.5))(react@19.2.5) + '@sentry/react-native': + specifier: ~7.11.0 + version: 7.11.0(expo@55.0.14)(react-native@0.83.4(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.5))(react@19.2.5) '@trails-cool/api': specifier: workspace:* version: link:../../packages/api @@ -321,12 +327,21 @@ importers: expo-linking: specifier: ~55.0.12 version: 55.0.12(expo@55.0.14)(react-native@0.83.4(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.5))(react@19.2.5)(typescript@5.9.3) + expo-location: + specifier: ~55.1.8 + version: 55.1.8(expo@55.0.14)(typescript@5.9.3) + expo-notifications: + specifier: ~55.0.18 + version: 55.0.18(expo@55.0.14)(react-native@0.83.4(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.5))(react@19.2.5)(typescript@5.9.3) expo-router: specifier: ~55.0.12 version: 55.0.12(@expo/log-box@55.0.10)(@expo/metro-runtime@5.0.4(react-native@0.83.4(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.5)))(@testing-library/react-native@13.3.3(jest@29.7.0(@types/node@25.5.2)(ts-node@10.9.2(@types/node@25.5.2)(typescript@5.9.3)))(react-native@0.83.4(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.5))(react-test-renderer@19.2.0(react@19.2.5))(react@19.2.5))(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(expo-constants@55.0.13)(expo-font@55.0.6)(expo-linking@55.0.12)(expo@55.0.14)(react-dom@19.2.5(react@19.2.5))(react-native-safe-area-context@5.6.2(react-native@0.83.4(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.5))(react@19.2.5))(react-native-screens@4.23.0(react-native@0.83.4(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.5))(react@19.2.5))(react-native@0.83.4(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.5))(react@19.2.5) expo-secure-store: specifier: ~55.0.13 version: 55.0.13(expo@55.0.14) + expo-sqlite: + specifier: ~55.0.15 + version: 55.0.15(expo@55.0.14)(react-native@0.83.4(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.5))(react@19.2.5) expo-status-bar: specifier: ~55.0.5 version: 55.0.5(react-native@0.83.4(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.5))(react@19.2.5) @@ -345,6 +360,9 @@ importers: react-native-screens: specifier: ~4.23.0 version: 4.23.0(react-native@0.83.4(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.5))(react@19.2.5) + use-latest-callback: + specifier: ^0.3.3 + version: 0.3.3(react@19.2.5) zod: specifier: ^3.25.76 version: 3.25.76 @@ -420,7 +438,7 @@ importers: version: 6.0.2 drizzle-orm: specifier: 'catalog:' - version: 0.45.2(@opentelemetry/api@1.9.1)(@types/pg@8.15.6)(postgres@3.4.9) + version: 0.45.2(@opentelemetry/api@1.9.1)(@types/pg@8.15.6)(expo-sqlite@55.0.15(expo@55.0.14)(react-native@0.83.4(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.5))(react@19.2.5))(postgres@3.4.9) isbot: specifier: ^5.1.37 version: 5.1.37 @@ -502,7 +520,7 @@ importers: dependencies: drizzle-orm: specifier: 'catalog:' - version: 0.45.2(@opentelemetry/api@1.9.1)(@types/pg@8.15.6)(postgres@3.4.9) + version: 0.45.2(@opentelemetry/api@1.9.1)(@types/pg@8.15.6)(expo-sqlite@55.0.15(expo@55.0.14)(react-native@0.83.4(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.5))(react@19.2.5))(postgres@3.4.9) postgres: specifier: 'catalog:' version: 3.4.9 @@ -534,7 +552,7 @@ importers: version: 19.2.5 react-i18next: specifier: '>=17' - version: 17.0.2(i18next@26.0.4(typescript@5.9.3))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@5.9.3) + version: 17.0.2(i18next@26.0.4(typescript@5.9.3))(react-dom@19.2.5(react@19.2.5))(react-native@0.83.4(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.5))(react@19.2.5)(typescript@5.9.3) packages/map: dependencies: @@ -1966,6 +1984,22 @@ packages: '@lezer/lr@1.4.8': resolution: {integrity: sha512-bPWa0Pgx69ylNlMlPvBPryqeLYQjyJjqPx+Aupm5zydLIF3NE+6MMLT8Yi23Bd9cif9VS00aUebn+6fDIGBcDA==} + '@maplibre/maplibre-react-native@10.4.2': + resolution: {integrity: sha512-5qAfaEe66eMXyILklm2DMHwyaXwXxsZWVop4BqfU7AyTg13LHAcaMmLJNJ3jPkMtiJvjH2m8ywGnobdIg2I0lg==} + peerDependencies: + '@expo/config-plugins': '>=7' + '@types/geojson': ^7946.0.0 + '@types/react': '>=16.6.1' + react: '>=16.6.1' + react-native: '>=0.59.9' + peerDependenciesMeta: + '@expo/config-plugins': + optional: true + '@types/geojson': + optional: true + '@types/react': + optional: true + '@marijn/find-cluster-break@1.0.2': resolution: {integrity: sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g==} @@ -2856,26 +2890,50 @@ packages: cpu: [x64] os: [win32] + '@sentry-internal/browser-utils@10.37.0': + resolution: {integrity: sha512-rqdESYaVio9Ktz55lhUhtBsBUCF3wvvJuWia5YqoHDd+egyIfwWxITTAa0TSEyZl7283A4WNHNl0hyeEMblmfA==} + engines: {node: '>=18'} + '@sentry-internal/browser-utils@10.48.0': resolution: {integrity: sha512-SCiTLBXzugFKxev6NoKYBIhQoDk0gUh0AVVVepCBqfCJiWBG01Zvv0R5tCVohr4cWRllkQ8mlBdNQd/I7s9tdA==} engines: {node: '>=18'} + '@sentry-internal/feedback@10.37.0': + resolution: {integrity: sha512-P0PVlfrDvfvCYg2KPIS7YUG/4i6ZPf8z1MicXx09C9Cz9W9UhSBh/nii13eBdDtLav2BFMKhvaFMcghXHX03Hw==} + engines: {node: '>=18'} + '@sentry-internal/feedback@10.48.0': resolution: {integrity: sha512-tGkEyOM1HDS9qebDphUMEnyk3qq/50AnuTBiFmMJyjNzowylVGmRRk0sr3xkmbVHCDXQCiYnDmSVlJ2x4SDMrQ==} engines: {node: '>=18'} + '@sentry-internal/replay-canvas@10.37.0': + resolution: {integrity: sha512-PyIYSbjLs+L5essYV0MyIsh4n5xfv2eV7l0nhUoPJv9Bak3kattQY3tholOj0EP3SgKgb+8HSZnmazgF++Hbog==} + engines: {node: '>=18'} + '@sentry-internal/replay-canvas@10.48.0': resolution: {integrity: sha512-9nWuN2z4O+iwbTfuYV5ZmngBgJU/ZxfOo47A5RJP3Nu/kl59aJ1lUhILYOKyeNOIC/JyeERmpIcTxnlPXQzZ3Q==} engines: {node: '>=18'} + '@sentry-internal/replay@10.37.0': + resolution: {integrity: sha512-snuk12ZaDerxesSnetNIwKoth/51R0y/h3eXD/bGtXp+hnSkeXN5HanI/RJl297llRjn4zJYRShW9Nx86Ay0Dw==} + engines: {node: '>=18'} + '@sentry-internal/replay@10.48.0': resolution: {integrity: sha512-sevRTePfuk4PNuz9KAKpmTZEomAU0aLXyIhOwA0OnUDdxPhkY8kq5lwDbuxTHv6DQUjUX3YgFbY45VH1JEqHKA==} engines: {node: '>=18'} + '@sentry/babel-plugin-component-annotate@4.8.0': + resolution: {integrity: sha512-cy/9Eipkv23MsEJ4IuB4dNlVwS9UqOzI3Eu+QPake5BVFgPYCX0uP0Tr3Z43Ime6Rb+BiDnWC51AJK9i9afHYw==} + engines: {node: '>= 14'} + '@sentry/babel-plugin-component-annotate@5.2.0': resolution: {integrity: sha512-8LbOI5Kzb5F0+7LVQPi2+zGz1iPiRRFhM+7uZ/ZQ33L9BmDOYNIy3xWxCfMw2JCuMXXaxF47XCjGmR22/B0WPg==} engines: {node: '>= 18'} + '@sentry/browser@10.37.0': + resolution: {integrity: sha512-kheqJNqGZP5TSBCPv4Vienv1sfZwXKHQDYR+xrdHHYdZqwWuZMJJW/cLO9XjYAe+B9NnJ4UwJOoY4fPvU+HQ1Q==} + engines: {node: '>=18'} + '@sentry/browser@10.48.0': resolution: {integrity: sha512-4jt2zX2ExgFcNe2x+W+/k81fmDUsOrquGtt028CiGuDuma6kEsWBI4JbooT1jhj2T+eeUxe3YGbM23Zhh7Ghhw==} engines: {node: '>=18'} @@ -2884,58 +2942,114 @@ packages: resolution: {integrity: sha512-+C0x4gEIJRgoMwyRFGx+TFiJ1Po2BZlT1v61+PnouiaprKL5qtZG8n5PXx/5LPLDsVjSIcXjnDrTz9aSm8SJ3w==} engines: {node: '>= 18'} + '@sentry/cli-darwin@2.58.4': + resolution: {integrity: sha512-kbTD+P4X8O+nsNwPxCywtj3q22ecyRHWff98rdcmtRrvwz8CKi/T4Jxn/fnn2i4VEchy08OWBuZAqaA5Kh2hRQ==} + engines: {node: '>=10'} + os: [darwin] + '@sentry/cli-darwin@2.58.5': resolution: {integrity: sha512-lYrNzenZFJftfwSya7gwrHGxtE+Kob/e1sr9lmHMFOd4utDlmq0XFDllmdZAMf21fxcPRI1GL28ejZ3bId01fQ==} engines: {node: '>=10'} os: [darwin] + '@sentry/cli-linux-arm64@2.58.4': + resolution: {integrity: sha512-0g0KwsOozkLtzN8/0+oMZoOuQ0o7W6O+hx+ydVU1bktaMGKEJLMAWxOQNjsh1TcBbNIXVOKM/I8l0ROhaAb8Ig==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux, freebsd, android] + '@sentry/cli-linux-arm64@2.58.5': resolution: {integrity: sha512-/4gywFeBqRB6tR/iGMRAJ3HRqY6Z7Yp4l8ZCbl0TDLAfHNxu7schEw4tSnm2/Hh9eNMiOVy4z58uzAWlZXAYBQ==} engines: {node: '>=10'} cpu: [arm64] os: [linux, freebsd, android] + '@sentry/cli-linux-arm@2.58.4': + resolution: {integrity: sha512-rdQ8beTwnN48hv7iV7e7ZKucPec5NJkRdrrycMJMZlzGBPi56LqnclgsHySJ6Kfq506A2MNuQnKGaf/sBC9REA==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux, freebsd, android] + '@sentry/cli-linux-arm@2.58.5': resolution: {integrity: sha512-KtHweSIomYL4WVDrBrYSYJricKAAzxUgX86kc6OnlikbyOhoK6Fy8Vs6vwd52P6dvWPjgrMpUYjW2M5pYXQDUw==} engines: {node: '>=10'} cpu: [arm] os: [linux, freebsd, android] + '@sentry/cli-linux-i686@2.58.4': + resolution: {integrity: sha512-NseoIQAFtkziHyjZNPTu1Gm1opeQHt7Wm1LbLrGWVIRvUOzlslO9/8i6wETUZ6TjlQxBVRgd3Q0lRBG2A8rFYA==} + engines: {node: '>=10'} + cpu: [x86, ia32] + os: [linux, freebsd, android] + '@sentry/cli-linux-i686@2.58.5': resolution: {integrity: sha512-G7261dkmyxqlMdyvyP06b+RTIVzp1gZNgglj5UksxSouSUqRd/46W/2pQeOMPhloDYo9yLtCN2YFb3Mw4aUsWw==} engines: {node: '>=10'} cpu: [x86, ia32] os: [linux, freebsd, android] + '@sentry/cli-linux-x64@2.58.4': + resolution: {integrity: sha512-d3Arz+OO/wJYTqCYlSN3Ktm+W8rynQ/IMtSZLK8nu0ryh5mJOh+9XlXY6oDXw4YlsM8qCRrNquR8iEI1Y/IH+Q==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux, freebsd, android] + '@sentry/cli-linux-x64@2.58.5': resolution: {integrity: sha512-rP04494RSmt86xChkQ+ecBNRYSPbyXc4u0IA7R7N1pSLCyO74e5w5Al+LnAq35cMfVbZgz5Sm0iGLjyiUu4I1g==} engines: {node: '>=10'} cpu: [x64] os: [linux, freebsd, android] + '@sentry/cli-win32-arm64@2.58.4': + resolution: {integrity: sha512-bqYrF43+jXdDBh0f8HIJU3tbvlOFtGyRjHB8AoRuMQv9TEDUfENZyCelhdjA+KwDKYl48R1Yasb4EHNzsoO83w==} + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] + '@sentry/cli-win32-arm64@2.58.5': resolution: {integrity: sha512-AOJ2nCXlQL1KBaCzv38m3i2VmSHNurUpm7xVKd6yAHX+ZoVBI8VT0EgvwmtJR2TY2N2hNCC7UrgRmdUsQ152bA==} engines: {node: '>=10'} cpu: [arm64] os: [win32] + '@sentry/cli-win32-i686@2.58.4': + resolution: {integrity: sha512-3triFD6jyvhVcXOmGyttf+deKZcC1tURdhnmDUIBkiDPJKGT/N5xa4qAtHJlAB/h8L9jgYih9bvJnvvFVM7yug==} + engines: {node: '>=10'} + cpu: [x86, ia32] + os: [win32] + '@sentry/cli-win32-i686@2.58.5': resolution: {integrity: sha512-EsuboLSOnlrN7MMPJ1eFvfMDm+BnzOaSWl8eYhNo8W/BIrmNgpRUdBwnWn9Q2UOjJj5ZopukmsiMYtU/D7ml9g==} engines: {node: '>=10'} cpu: [x86, ia32] os: [win32] + '@sentry/cli-win32-x64@2.58.4': + resolution: {integrity: sha512-cSzN4PjM1RsCZ4pxMjI0VI7yNCkxiJ5jmWncyiwHXGiXrV1eXYdQ3n1LhUYLZ91CafyprR0OhDcE+RVZ26Qb5w==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + '@sentry/cli-win32-x64@2.58.5': resolution: {integrity: sha512-IZf+XIMiQwj+5NzqbOQfywlOitmCV424Vtf9c+ep61AaVScUFD1TSrQbOcJJv5xGxhlxNOMNgMeZhdexdzrKZg==} engines: {node: '>=10'} cpu: [x64] os: [win32] + '@sentry/cli@2.58.4': + resolution: {integrity: sha512-ArDrpuS8JtDYEvwGleVE+FgR+qHaOp77IgdGSacz6SZy6Lv90uX0Nu4UrHCQJz8/xwIcNxSqnN22lq0dH4IqTg==} + engines: {node: '>= 10'} + hasBin: true + '@sentry/cli@2.58.5': resolution: {integrity: sha512-tavJ7yGUZV+z3Ct2/ZB6mg339i08sAk6HDkgqmSRuQEu2iLS5sl9HIvuXfM6xjv8fwlgFOSy++WNABNAcGHUbg==} engines: {node: '>= 10'} hasBin: true + '@sentry/core@10.37.0': + resolution: {integrity: sha512-hkRz7S4gkKLgPf+p3XgVjVm7tAfvcEPZxeACCC6jmoeKhGkzN44nXwLiqqshJ25RMcSrhfFvJa/FlBg6zupz7g==} + engines: {node: '>=18'} + '@sentry/core@10.48.0': resolution: {integrity: sha512-h8F+fXVwYC9ro5ZaO8V+v3vqc0awlXHGblEAuVxSGgh4IV/oFX+QVzXeDTTrFOFS6v/Vn5vAyu240eJrJAS6/g==} engines: {node: '>=18'} @@ -2984,6 +3098,23 @@ packages: '@opentelemetry/sdk-trace-base': ^1.30.1 || ^2.1.0 '@opentelemetry/semantic-conventions': ^1.39.0 + '@sentry/react-native@7.11.0': + resolution: {integrity: sha512-OiDaLCAGpRN18YG/o7IIwLhU0Xpb0tYKQ5QxkGHiwb+L3VHn+MqGCGfITYNdhqr06HHMvu9Lysm+UJxaNmGaJg==} + hasBin: true + peerDependencies: + expo: '>=49.0.0' + react: '>=17.0.0' + react-native: '>=0.65.0' + peerDependenciesMeta: + expo: + optional: true + + '@sentry/react@10.37.0': + resolution: {integrity: sha512-XLnXJOHgsCeVAVBbO+9AuGlZWnCxLQHLOmKxpIr8wjE3g7dHibtug6cv8JLx78O4dd7aoCqv2TTyyKY9FLJ2EQ==} + engines: {node: '>=18'} + peerDependencies: + react: ^16.14.0 || 17.x || 18.x || 19.x + '@sentry/react@10.48.0': resolution: {integrity: sha512-uc93vKjmu6gNns+JAX4qquuxWpAMit0uGPA1TYlMjct9NG1uX3TkDPJAr9Pgd1lOXx8mKqCmj5fK33QeExMpPw==} engines: {node: '>=18'} @@ -2999,6 +3130,10 @@ packages: rollup: optional: true + '@sentry/types@10.37.0': + resolution: {integrity: sha512-umpnUKRC0AAbJrADg6SlFtqN2yzf7NHciCF9lkHau+ax2PIZ/NDmoG4RQujFVflVaVoD60Ly2t+CcPnYIWMPlw==} + engines: {node: '>=18'} + '@sentry/vite-plugin@5.2.0': resolution: {integrity: sha512-4Jo3ixBspso5HY81PDvZdRXkH9wYGVmcw/0a2IX9ejbyKBdHqkYg4IhAtNqGUAyGuHwwRS9Y1S+sCMvrXv6htw==} engines: {node: '>= 18'} @@ -3231,6 +3366,9 @@ packages: '@turf/kinks@7.3.4': resolution: {integrity: sha512-LZTKELWxvXl0vc9ZxVgi0v07fO9+2FrZOam2B10fz/eGjy3oKNazU5gjggbnc499wEIcJS4hN+VyjQZrmsJAdQ==} + '@turf/length@7.3.4': + resolution: {integrity: sha512-Dg1GnQ/B2go5NIWXt91N4L7XTjIgIWCftBSYIXkrpIM7QGjItzglek0Z5caytvb8ZRWXzZOGs8//+Q5we91WuQ==} + '@turf/line-intersect@7.3.4': resolution: {integrity: sha512-XygbTvHa6A+v6l2ZKYtS8AAWxwmrPxKxfBbdH75uED1JvdytSLWYTKGlcU3soxd9sYb4x/g9sDvRIVyU6Lucrg==} @@ -3589,6 +3727,9 @@ packages: resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} engines: {node: '>=8.0.0'} + await-lock@2.2.2: + resolution: {integrity: sha512-aDczADvlvTGajTDjcjpJMqRkOF6Qdz3YbPZm/PyW6tKPkx2hlYBzxMhEywM/tU72HrVZjgl5VCdRuMlA7pZ8Gw==} + babel-dead-code-elimination@1.0.12: resolution: {integrity: sha512-GERT7L2TiYcYDtYk1IpD+ASAYXjKbLTDPhBtYj7X1NuRMDTMtAx9kyBenub1Ev41lo91OHCKdmP+egTDmfQ7Ig==} @@ -3662,6 +3803,9 @@ packages: peerDependencies: '@babel/core': ^7.0.0 + badgin@1.2.3: + resolution: {integrity: sha512-NQGA7LcfCpSzIbGRbkgjgdWkjy7HI+Th5VLxTJfW5EeaAf3fnS+xWQaQOCYiny+q6QSvxqoSO04vCx+4u++EJw==} + balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} @@ -3984,6 +4128,10 @@ packages: dateformat@4.6.3: resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==} + debounce@2.2.0: + resolution: {integrity: sha512-Xks6RUDLZFdz8LIdR6q0MTH44k7FikOmnh5xkSjMig6ch45afc8sjTjRQf3P6ax8dMgcQrYO/AR2RGWURrruqw==} + engines: {node: '>=18'} + debug@2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} peerDependencies: @@ -4398,6 +4546,11 @@ packages: resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + expo-application@55.0.14: + resolution: {integrity: sha512-NgqDIt3eCf4aVLp1L6AcEanCYoyJeuBsGrgGSzOIvxAsOvp5X3SYKW3ROgpKUnLQEKMWlzwETpjsUGszcqkk8g==} + peerDependencies: + expo: '*' + expo-asset@55.0.14: resolution: {integrity: sha512-8jeWHW39/UOQytGoXXFIrpE+DhK72RhMu09iuTxYuGluqGzGgs+DgcaP9jTvCPwkAXxSfWZdsTttuKXE5nDUCQ==} peerDependencies: @@ -4482,6 +4635,11 @@ packages: react: '*' react-native: '*' + expo-location@55.1.8: + resolution: {integrity: sha512-mEExFf84nmWLwi14GFfUsFLrCm10gbcqFn9EPXpuruQ28YMtJWgCD+jJtESYPQkYF44N21fVok3T28fLuCqydA==} + peerDependencies: + expo: '*' + expo-manifests@55.0.15: resolution: {integrity: sha512-p40ftXpgLTFGddFy35MYZMyjm/E6IQdn3l6fBZZ6zeraEzYLt+VLHYsplOL9ccTYvUSWKN9aOWRpoEYpyGVBVw==} peerDependencies: @@ -4501,6 +4659,13 @@ packages: react-native-worklets: optional: true + expo-notifications@55.0.18: + resolution: {integrity: sha512-NxA9zdADnsQ5g66cznpu3m+bFMyoi7XKN+GkKZCRQ0RJAi4NXwB+1mljzdCAt5TGlcnAwwVBw+3zC1B9qORfcQ==} + peerDependencies: + expo: '*' + react: '*' + react-native: '*' + expo-router@55.0.12: resolution: {integrity: sha512-Bm6IhI0Kl5/tDlCHPms8jDqy1O6HLHIOrMsEmmAQ5Lgg5UBtDfRThEyHPVOLNTOs8e7/bG/Ftz6a4UgQVA+NhQ==} peerDependencies: @@ -4545,6 +4710,13 @@ packages: resolution: {integrity: sha512-Cc1btFyPsD9P4DT2xd1pG/uR96TLVMx0W+dPm9Gjk1uDV9xuzvMcUsY7nf9bt4U5pGyWWkCXmPJcKwWfdl51Pw==} engines: {node: '>=20.16.0'} + expo-sqlite@55.0.15: + resolution: {integrity: sha512-vxE5fs6l953QSIyievQ8TuSstj62eC7zUREjNzbUOwRWaHGGnhnlPJM1HLoTIv+oIt3+b1m7k2fmcDGkpK5t3w==} + peerDependencies: + expo: '*' + react: '*' + react-native: '*' + expo-status-bar@55.0.5: resolution: {integrity: sha512-qb0c3rJO2b7CC0gUVGi1JYp92oLenWdYGyk8l4YQs6U+uaXUTPv6aaFa3KkT2HON10re3AxxPNJci8rsz6kPxg==} peerDependencies: @@ -6690,6 +6862,11 @@ packages: peerDependencies: react: '>=16.8' + use-latest-callback@0.3.3: + resolution: {integrity: sha512-G9A/EL7okx4wzBfATt8bdGg0v1K0Gp0IClTzljffM63gtPisgDKCaLCLUb4g2M4CoXDg5yyHjOU+g3SUPbXwrA==} + peerDependencies: + react: '>=16.8' + use-sidecar@1.1.3: resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==} engines: {node: '>=10'} @@ -8654,6 +8831,20 @@ snapshots: dependencies: '@lezer/common': 1.5.2 + '@maplibre/maplibre-react-native@10.4.2(@expo/config-plugins@55.0.8)(@types/geojson@7946.0.16)(@types/react@19.2.14)(react-native@0.83.4(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.5))(react@19.2.5)': + dependencies: + '@turf/distance': 7.3.4 + '@turf/helpers': 7.3.4 + '@turf/length': 7.3.4 + '@turf/nearest-point-on-line': 7.3.4 + debounce: 2.2.0 + react: 19.2.5 + react-native: 0.83.4(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.5) + optionalDependencies: + '@expo/config-plugins': 55.0.8 + '@types/geojson': 7946.0.16 + '@types/react': 19.2.14 + '@marijn/find-cluster-break@1.0.2': {} '@mjackson/node-fetch-server@0.2.0': {} @@ -9626,26 +9817,54 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.60.0': optional: true + '@sentry-internal/browser-utils@10.37.0': + dependencies: + '@sentry/core': 10.37.0 + '@sentry-internal/browser-utils@10.48.0': dependencies: '@sentry/core': 10.48.0 + '@sentry-internal/feedback@10.37.0': + dependencies: + '@sentry/core': 10.37.0 + '@sentry-internal/feedback@10.48.0': dependencies: '@sentry/core': 10.48.0 + '@sentry-internal/replay-canvas@10.37.0': + dependencies: + '@sentry-internal/replay': 10.37.0 + '@sentry/core': 10.37.0 + '@sentry-internal/replay-canvas@10.48.0': dependencies: '@sentry-internal/replay': 10.48.0 '@sentry/core': 10.48.0 + '@sentry-internal/replay@10.37.0': + dependencies: + '@sentry-internal/browser-utils': 10.37.0 + '@sentry/core': 10.37.0 + '@sentry-internal/replay@10.48.0': dependencies: '@sentry-internal/browser-utils': 10.48.0 '@sentry/core': 10.48.0 + '@sentry/babel-plugin-component-annotate@4.8.0': {} + '@sentry/babel-plugin-component-annotate@5.2.0': {} + '@sentry/browser@10.37.0': + dependencies: + '@sentry-internal/browser-utils': 10.37.0 + '@sentry-internal/feedback': 10.37.0 + '@sentry-internal/replay': 10.37.0 + '@sentry-internal/replay-canvas': 10.37.0 + '@sentry/core': 10.37.0 + '@sentry/browser@10.48.0': dependencies: '@sentry-internal/browser-utils': 10.48.0 @@ -9667,30 +9886,74 @@ snapshots: - encoding - supports-color + '@sentry/cli-darwin@2.58.4': + optional: true + '@sentry/cli-darwin@2.58.5': optional: true + '@sentry/cli-linux-arm64@2.58.4': + optional: true + '@sentry/cli-linux-arm64@2.58.5': optional: true + '@sentry/cli-linux-arm@2.58.4': + optional: true + '@sentry/cli-linux-arm@2.58.5': optional: true + '@sentry/cli-linux-i686@2.58.4': + optional: true + '@sentry/cli-linux-i686@2.58.5': optional: true + '@sentry/cli-linux-x64@2.58.4': + optional: true + '@sentry/cli-linux-x64@2.58.5': optional: true + '@sentry/cli-win32-arm64@2.58.4': + optional: true + '@sentry/cli-win32-arm64@2.58.5': optional: true + '@sentry/cli-win32-i686@2.58.4': + optional: true + '@sentry/cli-win32-i686@2.58.5': optional: true + '@sentry/cli-win32-x64@2.58.4': + optional: true + '@sentry/cli-win32-x64@2.58.5': optional: true + '@sentry/cli@2.58.4': + dependencies: + https-proxy-agent: 5.0.1 + node-fetch: 2.7.0 + progress: 2.0.3 + proxy-from-env: 1.1.0 + which: 2.0.2 + optionalDependencies: + '@sentry/cli-darwin': 2.58.4 + '@sentry/cli-linux-arm': 2.58.4 + '@sentry/cli-linux-arm64': 2.58.4 + '@sentry/cli-linux-i686': 2.58.4 + '@sentry/cli-linux-x64': 2.58.4 + '@sentry/cli-win32-arm64': 2.58.4 + '@sentry/cli-win32-i686': 2.58.4 + '@sentry/cli-win32-x64': 2.58.4 + transitivePeerDependencies: + - encoding + - supports-color + '@sentry/cli@2.58.5': dependencies: https-proxy-agent: 5.0.1 @@ -9711,6 +9974,8 @@ snapshots: - encoding - supports-color + '@sentry/core@10.37.0': {} + '@sentry/core@10.48.0': {} '@sentry/node-core@10.48.0(@opentelemetry/api@1.9.1)(@opentelemetry/context-async-hooks@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/core@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/resources@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0)': @@ -9776,6 +10041,28 @@ snapshots: '@opentelemetry/semantic-conventions': 1.40.0 '@sentry/core': 10.48.0 + '@sentry/react-native@7.11.0(expo@55.0.14)(react-native@0.83.4(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.5))(react@19.2.5)': + dependencies: + '@sentry/babel-plugin-component-annotate': 4.8.0 + '@sentry/browser': 10.37.0 + '@sentry/cli': 2.58.4 + '@sentry/core': 10.37.0 + '@sentry/react': 10.37.0(react@19.2.5) + '@sentry/types': 10.37.0 + react: 19.2.5 + react-native: 0.83.4(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.5) + optionalDependencies: + expo: 55.0.14(@babel/core@7.29.0)(@expo/dom-webview@55.0.5)(@expo/metro-runtime@5.0.4(react-native@0.83.4(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.5)))(expo-router@55.0.12)(react-dom@19.2.5(react@19.2.5))(react-native@0.83.4(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.5))(react@19.2.5)(typescript@5.9.3) + transitivePeerDependencies: + - encoding + - supports-color + + '@sentry/react@10.37.0(react@19.2.5)': + dependencies: + '@sentry/browser': 10.37.0 + '@sentry/core': 10.37.0 + react: 19.2.5 + '@sentry/react@10.48.0(react@19.2.5)': dependencies: '@sentry/browser': 10.48.0 @@ -9792,6 +10079,10 @@ snapshots: - encoding - supports-color + '@sentry/types@10.37.0': + dependencies: + '@sentry/core': 10.37.0 + '@sentry/vite-plugin@5.2.0(rollup@4.60.0)': dependencies: '@sentry/bundler-plugin-core': 5.2.0 @@ -10038,6 +10329,14 @@ snapshots: '@types/geojson': 7946.0.16 tslib: 2.8.1 + '@turf/length@7.3.4': + dependencies: + '@turf/distance': 7.3.4 + '@turf/helpers': 7.3.4 + '@turf/meta': 7.3.4 + '@types/geojson': 7946.0.16 + tslib: 2.8.1 + '@turf/line-intersect@7.3.4': dependencies: '@turf/helpers': 7.3.4 @@ -10477,6 +10776,8 @@ snapshots: atomic-sleep@1.0.0: {} + await-lock@2.2.2: {} + babel-dead-code-elimination@1.0.12: dependencies: '@babel/core': 7.29.0 @@ -10618,6 +10919,8 @@ snapshots: babel-plugin-jest-hoist: 29.6.3 babel-preset-current-node-syntax: 1.2.0(@babel/core@7.29.0) + badgin@1.2.3: {} + balanced-match@1.0.2: {} balanced-match@4.0.4: {} @@ -10962,6 +11265,8 @@ snapshots: dateformat@4.6.3: {} + debounce@2.2.0: {} + debug@2.6.9: dependencies: ms: 2.0.0 @@ -11046,10 +11351,11 @@ snapshots: esbuild: 0.25.12 tsx: 4.21.0 - drizzle-orm@0.45.2(@opentelemetry/api@1.9.1)(@types/pg@8.15.6)(postgres@3.4.9): + drizzle-orm@0.45.2(@opentelemetry/api@1.9.1)(@types/pg@8.15.6)(expo-sqlite@55.0.15(expo@55.0.14)(react-native@0.83.4(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.5))(react@19.2.5))(postgres@3.4.9): optionalDependencies: '@opentelemetry/api': 1.9.1 '@types/pg': 8.15.6 + expo-sqlite: 55.0.15(expo@55.0.14)(react-native@0.83.4(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.5))(react@19.2.5) postgres: 3.4.9 drizzle-postgis@1.1.1: @@ -11323,6 +11629,10 @@ snapshots: jest-message-util: 29.7.0 jest-util: 29.7.0 + expo-application@55.0.14(expo@55.0.14): + dependencies: + expo: 55.0.14(@babel/core@7.29.0)(@expo/dom-webview@55.0.5)(@expo/metro-runtime@5.0.4(react-native@0.83.4(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.5)))(expo-router@55.0.12)(react-dom@19.2.5(react@19.2.5))(react-native@0.83.4(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.5))(react@19.2.5)(typescript@5.9.3) + expo-asset@55.0.14(expo@55.0.14)(react-native@0.83.4(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.5))(react@19.2.5)(typescript@5.9.3): dependencies: '@expo/image-utils': 0.8.13(typescript@5.9.3) @@ -11422,6 +11732,14 @@ snapshots: - supports-color - typescript + expo-location@55.1.8(expo@55.0.14)(typescript@5.9.3): + dependencies: + '@expo/image-utils': 0.8.13(typescript@5.9.3) + expo: 55.0.14(@babel/core@7.29.0)(@expo/dom-webview@55.0.5)(@expo/metro-runtime@5.0.4(react-native@0.83.4(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.5)))(expo-router@55.0.12)(react-dom@19.2.5(react@19.2.5))(react-native@0.83.4(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.5))(react@19.2.5)(typescript@5.9.3) + transitivePeerDependencies: + - supports-color + - typescript + expo-manifests@55.0.15(expo@55.0.14)(typescript@5.9.3): dependencies: '@expo/config': 55.0.14(typescript@5.9.3) @@ -11447,6 +11765,20 @@ snapshots: react: 19.2.5 react-native: 0.83.4(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.5) + expo-notifications@55.0.18(expo@55.0.14)(react-native@0.83.4(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.5))(react@19.2.5)(typescript@5.9.3): + dependencies: + '@expo/image-utils': 0.8.13(typescript@5.9.3) + abort-controller: 3.0.0 + badgin: 1.2.3 + expo: 55.0.14(@babel/core@7.29.0)(@expo/dom-webview@55.0.5)(@expo/metro-runtime@5.0.4(react-native@0.83.4(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.5)))(expo-router@55.0.12)(react-dom@19.2.5(react@19.2.5))(react-native@0.83.4(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.5))(react@19.2.5)(typescript@5.9.3) + expo-application: 55.0.14(expo@55.0.14) + expo-constants: 55.0.13(expo@55.0.14)(react-native@0.83.4(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.5))(typescript@5.9.3) + react: 19.2.5 + react-native: 0.83.4(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.5) + transitivePeerDependencies: + - supports-color + - typescript + expo-router@55.0.12(@expo/log-box@55.0.10)(@expo/metro-runtime@5.0.4(react-native@0.83.4(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.5)))(@testing-library/react-native@13.3.3(jest@29.7.0(@types/node@25.5.2)(ts-node@10.9.2(@types/node@25.5.2)(typescript@5.9.3)))(react-native@0.83.4(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.5))(react-test-renderer@19.2.0(react@19.2.5))(react@19.2.5))(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(expo-constants@55.0.13)(expo-font@55.0.6)(expo-linking@55.0.12)(expo@55.0.14)(react-dom@19.2.5(react@19.2.5))(react-native-safe-area-context@5.6.2(react-native@0.83.4(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.5))(react@19.2.5))(react-native-screens@4.23.0(react-native@0.83.4(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.5))(react@19.2.5))(react-native@0.83.4(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.5))(react@19.2.5): dependencies: '@expo/log-box': 55.0.10(@expo/dom-webview@55.0.5)(expo@55.0.14)(react-native@0.83.4(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.5))(react@19.2.5) @@ -11499,6 +11831,13 @@ snapshots: expo-server@55.0.7: {} + expo-sqlite@55.0.15(expo@55.0.14)(react-native@0.83.4(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.5))(react@19.2.5): + dependencies: + await-lock: 2.2.2 + expo: 55.0.14(@babel/core@7.29.0)(@expo/dom-webview@55.0.5)(@expo/metro-runtime@5.0.4(react-native@0.83.4(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.5)))(expo-router@55.0.12)(react-dom@19.2.5(react@19.2.5))(react-native@0.83.4(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.5))(react@19.2.5)(typescript@5.9.3) + react: 19.2.5 + react-native: 0.83.4(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.5) + expo-status-bar@55.0.5(react-native@0.83.4(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.5))(react@19.2.5): dependencies: react: 19.2.5 @@ -13269,7 +13608,7 @@ snapshots: dependencies: react: 19.2.5 - react-i18next@17.0.2(i18next@26.0.4(typescript@5.9.3))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@5.9.3): + react-i18next@17.0.2(i18next@26.0.4(typescript@5.9.3))(react-dom@19.2.5(react@19.2.5))(react-native@0.83.4(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.5))(react@19.2.5)(typescript@5.9.3): dependencies: '@babel/runtime': 7.29.2 html-parse-stringify: 3.0.1 @@ -13278,6 +13617,7 @@ snapshots: use-sync-external-store: 1.6.0(react@19.2.5) optionalDependencies: react-dom: 19.2.5(react@19.2.5) + react-native: 0.83.4(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.5) typescript: 5.9.3 react-is@17.0.2: {} @@ -13995,6 +14335,10 @@ snapshots: dependencies: react: 19.2.5 + use-latest-callback@0.3.3(react@19.2.5): + dependencies: + react: 19.2.5 + use-sidecar@1.1.3(@types/react@19.2.14)(react@19.2.5): dependencies: detect-node-es: 1.1.0