fix(sentry): repair Android source-map upload (debug IDs + release/dist match)
Releases 0.4.3-0.4.7 uploaded zero source-map files to Sentry, leaving every JS frame unsymbolicated (app:///index.android.bundle:1). Root-caused two independent bugs: 1. No metro.config.js existed, so Metro never ran Sentry's debug-ID injection. Without an embedded debug ID, sentry.gradle's upload task falls back to matching source maps to events by release/dist string alone (see has-sourcemap-debugid.js check in sentry.gradle) - and that fallback was broken (see #2). Added metro.config.js wrapping Expo's default config with getSentryExpoConfig from @sentry/react-native/metro, the officially documented path for Expo + debug-ID symbolication. The installed @sentry/react-native@6.14.0 could not actually bundle with this enabled: its metro integration does a hard `require("metro/src/lib/ countLines")`, a deep path metro 0.83.x (bundled by Expo SDK 54) no longer exposes via its package.json `exports` map, crashing every build. Bumped to ~6.22.0 (package.json:18), which vendors countLines and adds metro/private/* fallbacks for other deep metro imports. Verified via a real `npx expo export:embed` run: bundle and source map now share a matching `debugId`. 2. sentry.gradle's default release/dist for the upload is `${applicationId}@${versionName}+${versionCode}` (computed from android/app/build.gradle), which never matched what Sentry.init() reports at runtime (`opencode-mobile@${app.json version}`, src/lib/sentry.ts:33-34). Every source map was therefore filed under a release Sentry never queries. Added a "Set Sentry release identifiers" step to build.yml, publish-play-store.yml, and publish-fdroid.yml that exports SENTRY_RELEASE/SENTRY_DIST from app.json's version before the Gradle build step, forcing an exact match. Also filled in organization/project on the `@sentry/react-native/expo` plugin in app.json (previously a bare string, which only warned "Missing config for organization, project" and relied on env-var fallback) so android/sentry.properties is generated deterministically instead of by accident/history. Verified locally (no push - GitHub is down, consolidating to local main): - npx expo export:embed (real Metro bundle) succeeds and embeds a matching debugId in both index.android.bundle and its .map - npm run typecheck: clean - npm test: 81/81 passing - Full ./gradlew Android build not verified: this machine has no ANDROID_HOME/SDK and a JDK/Gradle-wrapper version mismatch unrelated to this change; CI's Java 17 + Android SDK toolchain is unaffected. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NJKAQ6HAikWGQK7PGZ5Y4E
This commit is contained in:
14
.github/workflows/build.yml
vendored
14
.github/workflows/build.yml
vendored
@@ -66,6 +66,20 @@ jobs:
|
|||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: npm install --legacy-peer-deps
|
run: npm install --legacy-peer-deps
|
||||||
|
|
||||||
|
- name: Set Sentry release identifiers
|
||||||
|
# sentry.gradle (applied from android/app/build.gradle) defaults the
|
||||||
|
# upload's --release/--dist to `${applicationId}@${versionName}+${versionCode}`,
|
||||||
|
# which does NOT match the release/dist Sentry.init() reports at runtime
|
||||||
|
# (`opencode-mobile@${app.json version}`, see src/lib/sentry.ts). That
|
||||||
|
# mismatch made every uploaded source map land under a release Sentry
|
||||||
|
# never looks up, so symbolication silently failed. Pin the Gradle-side
|
||||||
|
# values to exactly what the app reports.
|
||||||
|
run: |
|
||||||
|
VERSION=$(node -p "require('./app.json').expo.version")
|
||||||
|
echo "SENTRY_RELEASE=opencode-mobile@${VERSION}" >> "$GITHUB_ENV"
|
||||||
|
echo "SENTRY_DIST=${VERSION}" >> "$GITHUB_ENV"
|
||||||
|
echo "Sentry release=opencode-mobile@${VERSION} dist=${VERSION}"
|
||||||
|
|
||||||
- name: Expo prebuild
|
- name: Expo prebuild
|
||||||
run: npx expo prebuild --platform android --no-install
|
run: npx expo prebuild --platform android --no-install
|
||||||
|
|
||||||
|
|||||||
14
.github/workflows/publish-fdroid.yml
vendored
14
.github/workflows/publish-fdroid.yml
vendored
@@ -45,6 +45,20 @@ jobs:
|
|||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: npm install --legacy-peer-deps
|
run: npm install --legacy-peer-deps
|
||||||
|
|
||||||
|
- name: Set Sentry release identifiers
|
||||||
|
# sentry.gradle (applied from android/app/build.gradle) defaults the
|
||||||
|
# upload's --release/--dist to `${applicationId}@${versionName}+${versionCode}`,
|
||||||
|
# which does NOT match the release/dist Sentry.init() reports at runtime
|
||||||
|
# (`opencode-mobile@${app.json version}`, see src/lib/sentry.ts). That
|
||||||
|
# mismatch made every uploaded source map land under a release Sentry
|
||||||
|
# never looks up, so symbolication silently failed. Pin the Gradle-side
|
||||||
|
# values to exactly what the app reports.
|
||||||
|
run: |
|
||||||
|
VERSION=$(node -p "require('./app.json').expo.version")
|
||||||
|
echo "SENTRY_RELEASE=opencode-mobile@${VERSION}" >> "$GITHUB_ENV"
|
||||||
|
echo "SENTRY_DIST=${VERSION}" >> "$GITHUB_ENV"
|
||||||
|
echo "Sentry release=opencode-mobile@${VERSION} dist=${VERSION}"
|
||||||
|
|
||||||
- name: Expo prebuild
|
- name: Expo prebuild
|
||||||
run: npx expo prebuild --platform android --no-install
|
run: npx expo prebuild --platform android --no-install
|
||||||
|
|
||||||
|
|||||||
15
.github/workflows/publish-play-store.yml
vendored
15
.github/workflows/publish-play-store.yml
vendored
@@ -84,6 +84,21 @@ jobs:
|
|||||||
node -e "const f='app.json';const j=require('./'+f);j.expo.android=j.expo.android||{};j.expo.android.versionCode=${{ github.run_number }}+100;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\n')"
|
node -e "const f='app.json';const j=require('./'+f);j.expo.android=j.expo.android||{};j.expo.android.versionCode=${{ github.run_number }}+100;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\n')"
|
||||||
echo "versionCode now: $(node -p "require('./app.json').expo.android.versionCode")"
|
echo "versionCode now: $(node -p "require('./app.json').expo.android.versionCode")"
|
||||||
|
|
||||||
|
- name: Set Sentry release identifiers
|
||||||
|
# sentry.gradle (applied from android/app/build.gradle) defaults the
|
||||||
|
# upload's --release/--dist to `${applicationId}@${versionName}+${versionCode}`,
|
||||||
|
# which does NOT match the release/dist Sentry.init() reports at runtime
|
||||||
|
# (`opencode-mobile@${app.json version}`, see src/lib/sentry.ts). That
|
||||||
|
# mismatch made every uploaded source map land under a release Sentry
|
||||||
|
# never looks up, so symbolication silently failed. Pin the Gradle-side
|
||||||
|
# values to exactly what the app reports. (Only expo.version matters
|
||||||
|
# here, not the android.versionCode bumped above.)
|
||||||
|
run: |
|
||||||
|
VERSION=$(node -p "require('./app.json').expo.version")
|
||||||
|
echo "SENTRY_RELEASE=opencode-mobile@${VERSION}" >> "$GITHUB_ENV"
|
||||||
|
echo "SENTRY_DIST=${VERSION}" >> "$GITHUB_ENV"
|
||||||
|
echo "Sentry release=opencode-mobile@${VERSION} dist=${VERSION}"
|
||||||
|
|
||||||
- name: Purge stale generated sources
|
- name: Purge stale generated sources
|
||||||
# The Android build cache (restore-keys prefix fallback) can restore a
|
# The Android build cache (restore-keys prefix fallback) can restore a
|
||||||
# generated autolinking tree from a previous package id. Gradle then
|
# generated autolinking tree from a previous package id. Gradle then
|
||||||
|
|||||||
8
app.json
8
app.json
@@ -50,7 +50,13 @@
|
|||||||
"expo-router",
|
"expo-router",
|
||||||
"expo-secure-store",
|
"expo-secure-store",
|
||||||
"expo-local-authentication",
|
"expo-local-authentication",
|
||||||
"@sentry/react-native/expo",
|
[
|
||||||
|
"@sentry/react-native/expo",
|
||||||
|
{
|
||||||
|
"organization": "vibetechnologies",
|
||||||
|
"project": "opencode-mobile"
|
||||||
|
}
|
||||||
|
],
|
||||||
[
|
[
|
||||||
"expo-notifications",
|
"expo-notifications",
|
||||||
{
|
{
|
||||||
|
|||||||
22
metro.config.js
Normal file
22
metro.config.js
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
// Metro bundler config.
|
||||||
|
//
|
||||||
|
// Wraps Expo's default Metro config with Sentry's config so the JS bundle
|
||||||
|
// gets a Debug ID embedded at build time (see
|
||||||
|
// https://docs.sentry.io/platforms/react-native/manual-setup/metro/).
|
||||||
|
//
|
||||||
|
// Why this matters: without this, Metro/Hermes produce bundles + source maps
|
||||||
|
// with NO debug ID. `android/sentry.gradle` (applied from
|
||||||
|
// android/app/build.gradle) then falls back to associating the uploaded
|
||||||
|
// source map with Sentry purely by `--release`/`--dist` string matching
|
||||||
|
// (see its `has-sourcemap-debugid.js` check). That legacy path is fragile —
|
||||||
|
// it silently breaks if the release/dist Gradle computes for the upload
|
||||||
|
// ever drifts from the release/dist the app reports at runtime via
|
||||||
|
// `Sentry.init()` (src/lib/sentry.ts). Debug ID matching sidesteps that
|
||||||
|
// entire class of bug: the bundle and its source map are linked by an
|
||||||
|
// embedded ID, independent of any release/dist string.
|
||||||
|
const { getSentryExpoConfig } = require("@sentry/react-native/metro")
|
||||||
|
|
||||||
|
/** @type {import('expo/metro-config').MetroConfig} */
|
||||||
|
const config = getSentryExpoConfig(__dirname)
|
||||||
|
|
||||||
|
module.exports = config
|
||||||
198
package-lock.json
generated
198
package-lock.json
generated
@@ -1,17 +1,17 @@
|
|||||||
{
|
{
|
||||||
"name": "@opencode-ai/mobile",
|
"name": "@opencode-ai/mobile",
|
||||||
"version": "0.4.3",
|
"version": "0.4.7",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "@opencode-ai/mobile",
|
"name": "@opencode-ai/mobile",
|
||||||
"version": "0.4.3",
|
"version": "0.4.7",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@expo/vector-icons": "^15.0.3",
|
"@expo/vector-icons": "^15.0.3",
|
||||||
"@gorhom/bottom-sheet": "5.2.8",
|
"@gorhom/bottom-sheet": "5.2.8",
|
||||||
"@react-navigation/native": "^7.0.14",
|
"@react-navigation/native": "^7.0.14",
|
||||||
"@sentry/react-native": "~6.14.0",
|
"@sentry/react-native": "~6.22.0",
|
||||||
"@tanstack/react-query": "^5.62.0",
|
"@tanstack/react-query": "^5.62.0",
|
||||||
"expo": "^54.0.0",
|
"expo": "^54.0.0",
|
||||||
"expo-clipboard": "8.0.8",
|
"expo-clipboard": "8.0.8",
|
||||||
@@ -2786,84 +2786,84 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@sentry-internal/browser-utils": {
|
"node_modules/@sentry-internal/browser-utils": {
|
||||||
"version": "8.54.0",
|
"version": "8.55.0",
|
||||||
"resolved": "https://registry.npmjs.org/@sentry-internal/browser-utils/-/browser-utils-8.54.0.tgz",
|
"resolved": "https://registry.npmjs.org/@sentry-internal/browser-utils/-/browser-utils-8.55.0.tgz",
|
||||||
"integrity": "sha512-DKWCqb4YQosKn6aD45fhKyzhkdG7N6goGFDeyTaJFREJDFVDXiNDsYZu30nJ6BxMM7uQIaARhPAC5BXfoED3pQ==",
|
"integrity": "sha512-ROgqtQfpH/82AQIpESPqPQe0UyWywKJsmVIqi3c5Fh+zkds5LUxnssTj3yNd1x+kxaPDVB023jAP+3ibNgeNDw==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@sentry/core": "8.54.0"
|
"@sentry/core": "8.55.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=14.18"
|
"node": ">=14.18"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@sentry-internal/feedback": {
|
"node_modules/@sentry-internal/feedback": {
|
||||||
"version": "8.54.0",
|
"version": "8.55.0",
|
||||||
"resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-8.54.0.tgz",
|
"resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-8.55.0.tgz",
|
||||||
"integrity": "sha512-nQqRacOXoElpE0L0ADxUUII0I3A94niqG9Z4Fmsw6057QvyrV/LvTiMQBop6r5qLjwMqK+T33iR4/NQI5RhsXQ==",
|
"integrity": "sha512-cP3BD/Q6pquVQ+YL+rwCnorKuTXiS9KXW8HNKu4nmmBAyf7urjs+F6Hr1k9MXP5yQ8W3yK7jRWd09Yu6DHWOiw==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@sentry/core": "8.54.0"
|
"@sentry/core": "8.55.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=14.18"
|
"node": ">=14.18"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@sentry-internal/replay": {
|
"node_modules/@sentry-internal/replay": {
|
||||||
"version": "8.54.0",
|
"version": "8.55.0",
|
||||||
"resolved": "https://registry.npmjs.org/@sentry-internal/replay/-/replay-8.54.0.tgz",
|
"resolved": "https://registry.npmjs.org/@sentry-internal/replay/-/replay-8.55.0.tgz",
|
||||||
"integrity": "sha512-8xuBe06IaYIGJec53wUC12tY2q4z2Z0RPS2s1sLtbA00EvK1YDGuXp96IDD+HB9mnDMrQ/jW5f97g9TvPsPQUg==",
|
"integrity": "sha512-roCDEGkORwolxBn8xAKedybY+Jlefq3xYmgN2fr3BTnsXjSYOPC7D1/mYqINBat99nDtvgFvNfRcZPiwwZ1hSw==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@sentry-internal/browser-utils": "8.54.0",
|
"@sentry-internal/browser-utils": "8.55.0",
|
||||||
"@sentry/core": "8.54.0"
|
"@sentry/core": "8.55.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=14.18"
|
"node": ">=14.18"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@sentry-internal/replay-canvas": {
|
"node_modules/@sentry-internal/replay-canvas": {
|
||||||
"version": "8.54.0",
|
"version": "8.55.0",
|
||||||
"resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-8.54.0.tgz",
|
"resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-8.55.0.tgz",
|
||||||
"integrity": "sha512-K/On3OAUBeq/TV2n+1EvObKC+WMV9npVXpVyJqCCyn8HYMm8FUGzuxeajzm0mlW4wDTPCQor6mK9/IgOquUzCw==",
|
"integrity": "sha512-nIkfgRWk1091zHdu4NbocQsxZF1rv1f7bbp3tTIlZYbrH62XVZosx5iHAuZG0Zc48AETLE7K4AX9VGjvQj8i9w==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@sentry-internal/replay": "8.54.0",
|
"@sentry-internal/replay": "8.55.0",
|
||||||
"@sentry/core": "8.54.0"
|
"@sentry/core": "8.55.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=14.18"
|
"node": ">=14.18"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@sentry/babel-plugin-component-annotate": {
|
"node_modules/@sentry/babel-plugin-component-annotate": {
|
||||||
"version": "3.4.0",
|
"version": "4.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/@sentry/babel-plugin-component-annotate/-/babel-plugin-component-annotate-3.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/@sentry/babel-plugin-component-annotate/-/babel-plugin-component-annotate-4.2.0.tgz",
|
||||||
"integrity": "sha512-tSzfc3aE7m0PM0Aj7HBDet5llH9AB9oc+tBQ8AvOqUSnWodLrNCuWeQszJ7mIBovD3figgCU3h0cvI6U5cDtsg==",
|
"integrity": "sha512-GFpS3REqaHuyX4LCNqlneAQZIKyHb5ePiI1802n0fhtYjk68I1DTQ3PnbzYi50od/vAsTQVCknaS5F6tidNqTQ==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 14"
|
"node": ">= 14"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@sentry/browser": {
|
"node_modules/@sentry/browser": {
|
||||||
"version": "8.54.0",
|
"version": "8.55.0",
|
||||||
"resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-8.54.0.tgz",
|
"resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-8.55.0.tgz",
|
||||||
"integrity": "sha512-BgUtvxFHin0fS0CmJVKTLXXZcke0Av729IVfi+2fJ4COX8HO7/HAP02RKaSQGmL2HmvWYTfNZ7529AnUtrM4Rg==",
|
"integrity": "sha512-1A31mCEWCjaMxJt6qGUK+aDnLDcK6AwLAZnqpSchNysGni1pSn1RWSmk9TBF8qyTds5FH8B31H480uxMPUJ7Cw==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@sentry-internal/browser-utils": "8.54.0",
|
"@sentry-internal/browser-utils": "8.55.0",
|
||||||
"@sentry-internal/feedback": "8.54.0",
|
"@sentry-internal/feedback": "8.55.0",
|
||||||
"@sentry-internal/replay": "8.54.0",
|
"@sentry-internal/replay": "8.55.0",
|
||||||
"@sentry-internal/replay-canvas": "8.54.0",
|
"@sentry-internal/replay-canvas": "8.55.0",
|
||||||
"@sentry/core": "8.54.0"
|
"@sentry/core": "8.55.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=14.18"
|
"node": ">=14.18"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@sentry/cli": {
|
"node_modules/@sentry/cli": {
|
||||||
"version": "2.45.0",
|
"version": "2.53.0",
|
||||||
"resolved": "https://registry.npmjs.org/@sentry/cli/-/cli-2.45.0.tgz",
|
"resolved": "https://registry.npmjs.org/@sentry/cli/-/cli-2.53.0.tgz",
|
||||||
"integrity": "sha512-4sWu7zgzgHAjIxIjXUA/66qgeEf5ZOlloO+/JaGD5qXNSW0G7KMTR6iYjReNKMgdBCTH6bUUt9qiuA+Ex9Masw==",
|
"integrity": "sha512-n2ZNb+5Z6AZKQSI0SusQ7ZzFL637mfw3Xh4C3PEyVSn9LiF683fX0TTq8OeGmNZQS4maYfS95IFD+XpydU0dEA==",
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"license": "BSD-3-Clause",
|
"license": "BSD-3-Clause",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -2880,20 +2880,20 @@
|
|||||||
"node": ">= 10"
|
"node": ">= 10"
|
||||||
},
|
},
|
||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
"@sentry/cli-darwin": "2.45.0",
|
"@sentry/cli-darwin": "2.53.0",
|
||||||
"@sentry/cli-linux-arm": "2.45.0",
|
"@sentry/cli-linux-arm": "2.53.0",
|
||||||
"@sentry/cli-linux-arm64": "2.45.0",
|
"@sentry/cli-linux-arm64": "2.53.0",
|
||||||
"@sentry/cli-linux-i686": "2.45.0",
|
"@sentry/cli-linux-i686": "2.53.0",
|
||||||
"@sentry/cli-linux-x64": "2.45.0",
|
"@sentry/cli-linux-x64": "2.53.0",
|
||||||
"@sentry/cli-win32-arm64": "2.45.0",
|
"@sentry/cli-win32-arm64": "2.53.0",
|
||||||
"@sentry/cli-win32-i686": "2.45.0",
|
"@sentry/cli-win32-i686": "2.53.0",
|
||||||
"@sentry/cli-win32-x64": "2.45.0"
|
"@sentry/cli-win32-x64": "2.53.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@sentry/cli-darwin": {
|
"node_modules/@sentry/cli-darwin": {
|
||||||
"version": "2.45.0",
|
"version": "2.53.0",
|
||||||
"resolved": "https://registry.npmjs.org/@sentry/cli-darwin/-/cli-darwin-2.45.0.tgz",
|
"resolved": "https://registry.npmjs.org/@sentry/cli-darwin/-/cli-darwin-2.53.0.tgz",
|
||||||
"integrity": "sha512-p4Uxfv/L2fQdP3/wYnKVVz9gzZJf/1Xp9D+6raax/3Bu5y87yHYUqcdt98y/VAXQD4ofp2QgmhGUVPofvQNZmg==",
|
"integrity": "sha512-NNPfpILMwKgpHiyJubHHuauMKltkrgLQ5tvMdxNpxY60jBNdo5VJtpESp4XmXlnidzV4j1z61V4ozU6ttDgt5Q==",
|
||||||
"license": "BSD-3-Clause",
|
"license": "BSD-3-Clause",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"os": [
|
"os": [
|
||||||
@@ -2904,9 +2904,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@sentry/cli-linux-arm": {
|
"node_modules/@sentry/cli-linux-arm": {
|
||||||
"version": "2.45.0",
|
"version": "2.53.0",
|
||||||
"resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm/-/cli-linux-arm-2.45.0.tgz",
|
"resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm/-/cli-linux-arm-2.53.0.tgz",
|
||||||
"integrity": "sha512-6sEskFLlFKJ+e0MOYgIclBTUX5jYMyYhHIxXahEkI/4vx6JO0uvpyRAkUJRpJkRh/lPog0FM+tbP3so+VxB2qQ==",
|
"integrity": "sha512-NdRzQ15Ht83qG0/Lyu11ciy/Hu/oXbbtJUgwzACc7bWvHQA8xEwTsehWexqn1529Kfc5EjuZ0Wmj3MHmp+jOWw==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm"
|
"arm"
|
||||||
],
|
],
|
||||||
@@ -2914,16 +2914,17 @@
|
|||||||
"optional": true,
|
"optional": true,
|
||||||
"os": [
|
"os": [
|
||||||
"linux",
|
"linux",
|
||||||
"freebsd"
|
"freebsd",
|
||||||
|
"android"
|
||||||
],
|
],
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=10"
|
"node": ">=10"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@sentry/cli-linux-arm64": {
|
"node_modules/@sentry/cli-linux-arm64": {
|
||||||
"version": "2.45.0",
|
"version": "2.53.0",
|
||||||
"resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm64/-/cli-linux-arm64-2.45.0.tgz",
|
"resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm64/-/cli-linux-arm64-2.53.0.tgz",
|
||||||
"integrity": "sha512-gUcLoEjzg7AIc4QQGEZwRHri+EHf3Gcms9zAR1VHiNF3/C/jL4WeDPJF2YiWAQt6EtH84tHiyhw1Ab/R8XFClg==",
|
"integrity": "sha512-xY/CZ1dVazsSCvTXzKpAgXaRqfljVfdrFaYZRUaRPf1ZJRGa3dcrivoOhSIeG/p5NdYtMvslMPY9Gm2MT0M83A==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
@@ -2931,16 +2932,17 @@
|
|||||||
"optional": true,
|
"optional": true,
|
||||||
"os": [
|
"os": [
|
||||||
"linux",
|
"linux",
|
||||||
"freebsd"
|
"freebsd",
|
||||||
|
"android"
|
||||||
],
|
],
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=10"
|
"node": ">=10"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@sentry/cli-linux-i686": {
|
"node_modules/@sentry/cli-linux-i686": {
|
||||||
"version": "2.45.0",
|
"version": "2.53.0",
|
||||||
"resolved": "https://registry.npmjs.org/@sentry/cli-linux-i686/-/cli-linux-i686-2.45.0.tgz",
|
"resolved": "https://registry.npmjs.org/@sentry/cli-linux-i686/-/cli-linux-i686-2.53.0.tgz",
|
||||||
"integrity": "sha512-VmmOaEAzSW23YdGNdy/+oQjCNAMY+HmOGA77A25/ep/9AV7PQB6FI7xO5Y1PVvlkxZFJ23e373njSsEeg4uDZw==",
|
"integrity": "sha512-0REmBibGAB4jtqt9S6JEsFF4QybzcXHPcHtJjgMi5T0ueh952uG9wLzjSxQErCsxTKF+fL8oG0Oz5yKBuCwCCQ==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x86",
|
"x86",
|
||||||
"ia32"
|
"ia32"
|
||||||
@@ -2949,16 +2951,17 @@
|
|||||||
"optional": true,
|
"optional": true,
|
||||||
"os": [
|
"os": [
|
||||||
"linux",
|
"linux",
|
||||||
"freebsd"
|
"freebsd",
|
||||||
|
"android"
|
||||||
],
|
],
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=10"
|
"node": ">=10"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@sentry/cli-linux-x64": {
|
"node_modules/@sentry/cli-linux-x64": {
|
||||||
"version": "2.45.0",
|
"version": "2.53.0",
|
||||||
"resolved": "https://registry.npmjs.org/@sentry/cli-linux-x64/-/cli-linux-x64-2.45.0.tgz",
|
"resolved": "https://registry.npmjs.org/@sentry/cli-linux-x64/-/cli-linux-x64-2.53.0.tgz",
|
||||||
"integrity": "sha512-a0Oj68mrb25a0WjX/ShZ6AAd4PPiuLcgyzQr7bl2+DvYxIOajwkGbR+CZFEhOVZcfhTnixKy/qIXEzApEPHPQg==",
|
"integrity": "sha512-9UGJL+Vy5N/YL1EWPZ/dyXLkShlNaDNrzxx4G7mTS9ywjg+BIuemo6rnN7w43K1NOjObTVO6zY0FwumJ1pCyLg==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
@@ -2966,16 +2969,17 @@
|
|||||||
"optional": true,
|
"optional": true,
|
||||||
"os": [
|
"os": [
|
||||||
"linux",
|
"linux",
|
||||||
"freebsd"
|
"freebsd",
|
||||||
|
"android"
|
||||||
],
|
],
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=10"
|
"node": ">=10"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@sentry/cli-win32-arm64": {
|
"node_modules/@sentry/cli-win32-arm64": {
|
||||||
"version": "2.45.0",
|
"version": "2.53.0",
|
||||||
"resolved": "https://registry.npmjs.org/@sentry/cli-win32-arm64/-/cli-win32-arm64-2.45.0.tgz",
|
"resolved": "https://registry.npmjs.org/@sentry/cli-win32-arm64/-/cli-win32-arm64-2.53.0.tgz",
|
||||||
"integrity": "sha512-vn+CwS4p+52pQSLNPoi20ZOrQmv01ZgAmuMnjkh1oUZfTyBAwWLrAh6Cy4cztcN8DfL5dOWKQBo8DBKURE4ttg==",
|
"integrity": "sha512-G1kjOjrjMBY20rQcJV2GA8KQE74ufmROCDb2GXYRfjvb1fKAsm4Oh8N5+Tqi7xEHdjQoLPkE4CNW0aH68JSUDQ==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
@@ -2989,9 +2993,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@sentry/cli-win32-i686": {
|
"node_modules/@sentry/cli-win32-i686": {
|
||||||
"version": "2.45.0",
|
"version": "2.53.0",
|
||||||
"resolved": "https://registry.npmjs.org/@sentry/cli-win32-i686/-/cli-win32-i686-2.45.0.tgz",
|
"resolved": "https://registry.npmjs.org/@sentry/cli-win32-i686/-/cli-win32-i686-2.53.0.tgz",
|
||||||
"integrity": "sha512-8mMoDdlwxtcdNIMtteMK7dbi7054jak8wKSHJ5yzMw8UmWxC5thc/gXBc1uPduiaI56VjoJV+phWHBKCD+6I4w==",
|
"integrity": "sha512-qbGTZUzesuUaPtY9rPXdNfwLqOZKXrJRC1zUFn52hdo6B+Dmv0m/AHwRVFHZP53Tg1NCa8bDei2K/uzRN0dUZw==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x86",
|
"x86",
|
||||||
"ia32"
|
"ia32"
|
||||||
@@ -3006,9 +3010,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@sentry/cli-win32-x64": {
|
"node_modules/@sentry/cli-win32-x64": {
|
||||||
"version": "2.45.0",
|
"version": "2.53.0",
|
||||||
"resolved": "https://registry.npmjs.org/@sentry/cli-win32-x64/-/cli-win32-x64-2.45.0.tgz",
|
"resolved": "https://registry.npmjs.org/@sentry/cli-win32-x64/-/cli-win32-x64-2.53.0.tgz",
|
||||||
"integrity": "sha512-ZvK9cIqFaq7vZ0jkHJ/xh5au6902Dr+AUxSk6L6vCL7JCe2p93KGL/4d8VFB5PD/P7Y9b+105G/e0QIFKzpeOw==",
|
"integrity": "sha512-1TXYxYHtwgUq5KAJt3erRzzUtPqg7BlH9T7MdSPHjJatkrr/kwZqnVe2H6Arr/5NH891vOlIeSPHBdgJUAD69g==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
@@ -3047,22 +3051,22 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@sentry/core": {
|
"node_modules/@sentry/core": {
|
||||||
"version": "8.54.0",
|
"version": "8.55.0",
|
||||||
"resolved": "https://registry.npmjs.org/@sentry/core/-/core-8.54.0.tgz",
|
"resolved": "https://registry.npmjs.org/@sentry/core/-/core-8.55.0.tgz",
|
||||||
"integrity": "sha512-03bWf+D1j28unOocY/5FDB6bUHtYlm6m6ollVejhg45ZmK9iPjdtxNWbrLsjT1WRym0Tjzowu+A3p+eebYEv0Q==",
|
"integrity": "sha512-6g7jpbefjHYs821Z+EBJ8r4Z7LT5h80YSWRJaylGS4nW5W5Z2KXzpdnyFarv37O7QjauzVC2E+PABmpkw5/JGA==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=14.18"
|
"node": ">=14.18"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@sentry/react": {
|
"node_modules/@sentry/react": {
|
||||||
"version": "8.54.0",
|
"version": "8.55.0",
|
||||||
"resolved": "https://registry.npmjs.org/@sentry/react/-/react-8.54.0.tgz",
|
"resolved": "https://registry.npmjs.org/@sentry/react/-/react-8.55.0.tgz",
|
||||||
"integrity": "sha512-42T/fp8snYN19Fy/2P0Mwotu4gcdy+1Lx+uYCNcYP1o7wNGigJ7qb27sW7W34GyCCHjoCCfQgeOqDQsyY8LC9w==",
|
"integrity": "sha512-/qNBvFLpvSa/Rmia0jpKfJdy16d4YZaAnH/TuKLAtm0BWlsPQzbXCU4h8C5Hsst0Do0zG613MEtEmWpWrVOqWA==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@sentry/browser": "8.54.0",
|
"@sentry/browser": "8.55.0",
|
||||||
"@sentry/core": "8.54.0",
|
"@sentry/core": "8.55.0",
|
||||||
"hoist-non-react-statics": "^3.3.2"
|
"hoist-non-react-statics": "^3.3.2"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
@@ -3073,18 +3077,18 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@sentry/react-native": {
|
"node_modules/@sentry/react-native": {
|
||||||
"version": "6.14.0",
|
"version": "6.22.0",
|
||||||
"resolved": "https://registry.npmjs.org/@sentry/react-native/-/react-native-6.14.0.tgz",
|
"resolved": "https://registry.npmjs.org/@sentry/react-native/-/react-native-6.22.0.tgz",
|
||||||
"integrity": "sha512-BBqixN6oV6tCNp1ABXfzvD531zxj1fUAH0HDPvOR/jX0h9f9pYfxCyI64B+DoQbVZKFsg8nte0QIHkZDhRAW9A==",
|
"integrity": "sha512-Xt8ZuYa7YsMTG7hFU8awfNpVWijH6kWdyqykML6qVohBmP2OS57oSAd4fAdCmbtaIbHs8Drux+uPtb/SdOy2Vg==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@sentry/babel-plugin-component-annotate": "3.4.0",
|
"@sentry/babel-plugin-component-annotate": "4.2.0",
|
||||||
"@sentry/browser": "8.54.0",
|
"@sentry/browser": "8.55.0",
|
||||||
"@sentry/cli": "2.45.0",
|
"@sentry/cli": "2.53.0",
|
||||||
"@sentry/core": "8.54.0",
|
"@sentry/core": "8.55.0",
|
||||||
"@sentry/react": "8.54.0",
|
"@sentry/react": "8.55.0",
|
||||||
"@sentry/types": "8.54.0",
|
"@sentry/types": "8.55.0",
|
||||||
"@sentry/utils": "8.54.0"
|
"@sentry/utils": "8.55.0"
|
||||||
},
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
"sentry-expo-upload-sourcemaps": "scripts/expo-upload-sourcemaps.js"
|
"sentry-expo-upload-sourcemaps": "scripts/expo-upload-sourcemaps.js"
|
||||||
@@ -3101,24 +3105,24 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@sentry/types": {
|
"node_modules/@sentry/types": {
|
||||||
"version": "8.54.0",
|
"version": "8.55.0",
|
||||||
"resolved": "https://registry.npmjs.org/@sentry/types/-/types-8.54.0.tgz",
|
"resolved": "https://registry.npmjs.org/@sentry/types/-/types-8.55.0.tgz",
|
||||||
"integrity": "sha512-wztdtr7dOXQKi0iRvKc8XJhJ7HaAfOv8lGu0yqFOFwBZucO/SHnu87GOPi8mvrTiy1bentQO5l+zXWAaMvG4uw==",
|
"integrity": "sha512-6LRT0+r6NWQ+RtllrUW2yQfodST0cJnkOmdpHA75vONgBUhpKwiJ4H7AmgfoTET8w29pU6AnntaGOe0LJbOmog==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@sentry/core": "8.54.0"
|
"@sentry/core": "8.55.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=14.18"
|
"node": ">=14.18"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@sentry/utils": {
|
"node_modules/@sentry/utils": {
|
||||||
"version": "8.54.0",
|
"version": "8.55.0",
|
||||||
"resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-8.54.0.tgz",
|
"resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-8.55.0.tgz",
|
||||||
"integrity": "sha512-JL8UDjrsKxKclTdLXfuHfE7B3KbrAPEYP7tMyN/xiO2vsF6D84fjwYyalO0ZMtuFZE6vpSze8ZOLEh6hLnPYsw==",
|
"integrity": "sha512-cYcl39+xcOivBpN9d8ZKbALl+DxZKo/8H0nueJZ0PO4JA+MJGhSm6oHakXxLPaiMoNLTX7yor8ndnQIuFg+vmQ==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@sentry/core": "8.54.0"
|
"@sentry/core": "8.55.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=14.18"
|
"node": ">=14.18"
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
"@expo/vector-icons": "^15.0.3",
|
"@expo/vector-icons": "^15.0.3",
|
||||||
"@gorhom/bottom-sheet": "5.2.8",
|
"@gorhom/bottom-sheet": "5.2.8",
|
||||||
"@react-navigation/native": "^7.0.14",
|
"@react-navigation/native": "^7.0.14",
|
||||||
"@sentry/react-native": "~6.14.0",
|
"@sentry/react-native": "~6.22.0",
|
||||||
"@tanstack/react-query": "^5.62.0",
|
"@tanstack/react-query": "^5.62.0",
|
||||||
"expo": "^54.0.0",
|
"expo": "^54.0.0",
|
||||||
"expo-clipboard": "8.0.8",
|
"expo-clipboard": "8.0.8",
|
||||||
|
|||||||
Reference in New Issue
Block a user