From 4b5138fdc1b2b5779a93ce03ec31c0ea7803cb45 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Tue, 14 Jul 2026 15:39:05 +0300 Subject: [PATCH] Update Sentry to 8.x (#11147) Co-authored-by: Claude Fable 5 --- metro.config.js | 40 --- metro.config.ts | 57 ++++ package.json | 2 +- ...entry__expo-upload-sourcemaps@8.18.0.patch | 14 + ...ry__expo-upload-sourcemaps@8.18.0.patch.md | 7 + patches/@sentry__react-native@6.20.0.patch | 33 -- patches/@sentry__react-native@6.20.0.patch.md | 9 - pnpm-lock.yaml | 310 +++++++++--------- pnpm-workspace.yaml | 2 +- src/logger/sentry/setup/index.ts | 2 +- 10 files changed, 239 insertions(+), 237 deletions(-) delete mode 100644 metro.config.js create mode 100644 metro.config.ts create mode 100644 patches/@sentry__expo-upload-sourcemaps@8.18.0.patch create mode 100644 patches/@sentry__expo-upload-sourcemaps@8.18.0.patch.md delete mode 100644 patches/@sentry__react-native@6.20.0.patch delete mode 100644 patches/@sentry__react-native@6.20.0.patch.md diff --git a/metro.config.js b/metro.config.js deleted file mode 100644 index 363956a77d..0000000000 --- a/metro.config.js +++ /dev/null @@ -1,40 +0,0 @@ -// Learn more https://docs.expo.io/guides/customizing-metro -const {getSentryExpoConfig} = require('@sentry/react-native/metro') -const cfg = getSentryExpoConfig(__dirname) - -// inject `.e2e.ts` and `.e2e.tsx` into the sourceExts when running tests -cfg.resolver.sourceExts = process.env.RN_SRC_EXT - ? process.env.RN_SRC_EXT.split(',').concat(cfg.resolver.sourceExts) - : cfg.resolver.sourceExts - -if (cfg.resolver.resolveRequest) { - throw Error('Update this override because it is conflicting now.') -} - -if (process.env.BSKY_PROFILE) { - cfg.cacheVersion += ':PROFILE' -} - -cfg.resolver.assetExts = [...cfg.resolver.assetExts, 'woff2'] - -cfg.resolver.resolveRequest = (context, moduleName, platform) => { - if (process.env.BSKY_PROFILE) { - if (moduleName.endsWith('ReactNativeRenderer-prod')) { - return context.resolveRequest( - context, - moduleName.replace('-prod', '-profiling'), - platform, - ) - } - } - return context.resolveRequest(context, moduleName, platform) -} - -cfg.transformer.getTransformOptions = async () => ({ - transform: { - experimentalImportSupport: true, - inlineRequires: true, - }, -}) - -module.exports = cfg diff --git a/metro.config.ts b/metro.config.ts new file mode 100644 index 0000000000..070188c7c7 --- /dev/null +++ b/metro.config.ts @@ -0,0 +1,57 @@ +// Learn more https://docs.expo.io/guides/customizing-metro +import {type CustomResolver} from '@expo/metro/metro-resolver' +import {getDefaultConfig} from '@expo/metro-config' +import {getSentryExpoConfig} from '@sentry/react-native/metro.js' + +const config = getSentryExpoConfig(import.meta.dirname, { + // TODO: confirm this doesn't break anything when we switch to metro web + includeWebReplay: false, + annotateReactComponents: { + textComponentNames: ['Text', 'ButtonText'], + }, + getDefaultConfig: (projectRoot, options) => { + const config = getDefaultConfig(projectRoot, options) + + if (typeof process.env.RN_SRC_EXT === 'string') { + // inject `.e2e.ts` and `.e2e.tsx` into the sourceExts when running tests) + config.resolver.sourceExts.unshift(...process.env.RN_SRC_EXT.split(',')) + } + + config.resolver.assetExts = [...config.resolver.assetExts, 'woff2'] + + if (config.resolver.resolveRequest) { + throw Error('Update this override because it is conflicting now.') + } + + if (process.env.BSKY_PROFILE) { + // @ts-expect-error readonly property + config.cacheVersion += ':PROFILE' + + const resolver: CustomResolver = (context, moduleName, platform) => { + if (moduleName.endsWith('ReactNativeRenderer-prod')) { + return context.resolveRequest( + context, + moduleName.replace('-prod', '-profiling'), + platform, + ) + } + return context.resolveRequest(context, moduleName, platform) + } + + // @ts-expect-error readonly property + config.resolver.resolveRequest = resolver + } + + config.transformer.getTransformOptions = () => + Promise.resolve({ + transform: { + experimentalImportSupport: true, + inlineRequires: true as false, // ??? typescript why? + }, + }) + + return config as unknown as Record + }, +}) + +export default config diff --git a/package.json b/package.json index 0ffd9d742e..3dd3663a32 100644 --- a/package.json +++ b/package.json @@ -128,7 +128,7 @@ "@react-navigation/bottom-tabs": "^7.15.5", "@react-navigation/native": "^7.1.33", "@react-navigation/native-stack": "^7.14.4", - "@sentry/react-native": "~6.20.0", + "@sentry/react-native": "~8.18.0", "@tanstack/query-async-storage-persister": "^5.96.2", "@tanstack/react-query": "^5.96.2", "@tanstack/react-query-persist-client": "^5.96.2", diff --git a/patches/@sentry__expo-upload-sourcemaps@8.18.0.patch b/patches/@sentry__expo-upload-sourcemaps@8.18.0.patch new file mode 100644 index 0000000000..6246e99203 --- /dev/null +++ b/patches/@sentry__expo-upload-sourcemaps@8.18.0.patch @@ -0,0 +1,14 @@ +diff --git a/cli.js b/cli.js +index 2a2e6afbd46a6a5182918373d71853193945ff31..44e5888e869003438fc7ef4931b9992f2896a23f 100755 +--- a/cli.js ++++ b/cli.js +@@ -304,6 +304,9 @@ for (const [assetGroupName, assets] of Object.entries(groupedAssets)) { + if (isHermes) { + args.push('--debug-id-reference'); + } ++ if (process.env.SENTRY_DIST) { ++ args.push('--dist', process.env.SENTRY_DIST); ++ } + args.push(...assets); + + const result = spawnSync(sentryCliBin, args, { diff --git a/patches/@sentry__expo-upload-sourcemaps@8.18.0.patch.md b/patches/@sentry__expo-upload-sourcemaps@8.18.0.patch.md new file mode 100644 index 0000000000..6c09e13261 --- /dev/null +++ b/patches/@sentry__expo-upload-sourcemaps@8.18.0.patch.md @@ -0,0 +1,7 @@ +# @sentry/expo-upload-sourcemaps patch + +Adds `--dist $SENTRY_DIST` to the `sentry-cli sourcemaps upload` call, when the +env var is set. Symbolication matches on debug IDs so this isn't strictly +required, but it keeps OTA sourcemap artifacts associated with the commit hash +(`dist`) in the Sentry UI, matching the runtime `dist` set in +`src/logger/sentry/setup/index.ts`. diff --git a/patches/@sentry__react-native@6.20.0.patch b/patches/@sentry__react-native@6.20.0.patch deleted file mode 100644 index e8869040be..0000000000 --- a/patches/@sentry__react-native@6.20.0.patch +++ /dev/null @@ -1,33 +0,0 @@ -diff --git a/dist/js/tools/sentryMetroSerializer.js b/dist/js/tools/sentryMetroSerializer.js -index d7f2350196fc008f9f1ce530e224fe3d052347e9..4ce7b6614e38c8af747ebcf166dba556affea3de 100644 ---- a/dist/js/tools/sentryMetroSerializer.js -+++ b/dist/js/tools/sentryMetroSerializer.js -@@ -12,12 +12,9 @@ exports.createSentryMetroSerializer = exports.unstable_beforeAssetSerializationP - const crypto = require("crypto"); - const utils_1 = require("./utils"); - const utils_2 = require("./vendor/metro/utils"); --let countLines; --try { -- countLines = require('metro/private/lib/countLines'); --} --catch (e) { -- countLines = require('metro/src/lib/countLines'); -+const newline = /\r\n?|\n|\u2028|\u2029/g; -+function countLines(string) { -+ return (string.match(newline) || []).length + 1; - } - const DEBUG_ID_PLACE_HOLDER = '__debug_id_place_holder__'; - const DEBUG_ID_MODULE_PATH = '__debugid__'; -diff --git a/scripts/expo-upload-sourcemaps.js b/scripts/expo-upload-sourcemaps.js -index b3783b572171482778d31a96b8d6ebadbcc8783b..d5e3e45477c07b5419285237372d99ddd83c56a6 100755 ---- a/scripts/expo-upload-sourcemaps.js -+++ b/scripts/expo-upload-sourcemaps.js -@@ -218,7 +218,7 @@ for (const [assetGroupName, assets] of Object.entries(groupedAssets)) { - - const isHermes = assets.find(asset => asset.endsWith('.hbc')); - const windowsCallback = process.platform === "win32" ? 'node ' : ''; -- execSync(`${windowsCallback}${sentryCliBin} sourcemaps upload ${isHermes ? '--debug-id-reference' : ''} ${assets.join(' ')}`, { -+ execSync(`${windowsCallback}${sentryCliBin} sourcemaps upload ${isHermes ? '--debug-id-reference' : ''} ${assets.join(' ')} --dist ${process.env.SENTRY_DIST}`, { - env: { - ...process.env, - [SENTRY_PROJECT]: sentryProject, diff --git a/patches/@sentry__react-native@6.20.0.patch.md b/patches/@sentry__react-native@6.20.0.patch.md deleted file mode 100644 index d358fb4449..0000000000 --- a/patches/@sentry__react-native@6.20.0.patch.md +++ /dev/null @@ -1,9 +0,0 @@ -# @sentry/react-native/scripts/expo-upload-sourcemaps.js patch - -Lets us specify the output directory for the sourcemaps via an environment variable. - -# @sentry/react-native/dist/js/tools/sentryMetroSerializer.js patch - -Patch of this: https://github.com/getsentry/sentry-react-native/issues/5180#issuecomment-3311772038 - -Will be fixed in an upcoming release of @sentry/react-native - remove when available. diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f6bd990946..70e5e2ccf1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -215,7 +215,7 @@ overrides: react-native-screens: 4.24.0 patchedDependencies: - '@sentry/react-native@6.20.0': 1d48e4d5178f5684eb33262299e7eed283bf9601f79b9ae1af63a7f607d3483a + '@sentry/expo-upload-sourcemaps@8.18.0': 2368e1e1986165e7ead3c60017b78b2f9ade1b6a6b2f5ad27cd428608c6f12ae expo-age-range@0.2.18: c325225749993424461eeece1d97a99b19c00da2ebc958a73c12e4eca0c39306 expo-glass-effect@55.0.8: 6c9fa5b104e53b87df4e17b320acb3b94d12ac90c0101190045dd620681efff0 expo-haptics@15.0.8: b33910ba2753c4eccdc885b449e6e33aa90b9cefa75ca8639762a26013141410 @@ -347,8 +347,8 @@ importers: specifier: ^7.14.4 version: 7.15.0(@react-navigation/native@7.2.4(react-native@0.81.5(patch_hash=2656ac6deb71b92a4df4af4593d13ace6a5740936432e5e7e8ef32bc3cd05194)(@babel/core@7.29.0)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(patch_hash=2656ac6deb71b92a4df4af4593d13ace6a5740936432e5e7e8ef32bc3cd05194)(@babel/core@7.29.0)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-screens@4.24.0(react-native@0.81.5(patch_hash=2656ac6deb71b92a4df4af4593d13ace6a5740936432e5e7e8ef32bc3cd05194)(@babel/core@7.29.0)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=2656ac6deb71b92a4df4af4593d13ace6a5740936432e5e7e8ef32bc3cd05194)(@babel/core@7.29.0)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) '@sentry/react-native': - specifier: ~6.20.0 - version: 6.20.0(patch_hash=1d48e4d5178f5684eb33262299e7eed283bf9601f79b9ae1af63a7f607d3483a)(expo@54.0.34(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=2656ac6deb71b92a4df4af4593d13ace6a5740936432e5e7e8ef32bc3cd05194)(@babel/core@7.29.0)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=2656ac6deb71b92a4df4af4593d13ace6a5740936432e5e7e8ef32bc3cd05194)(@babel/core@7.29.0)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=2656ac6deb71b92a4df4af4593d13ace6a5740936432e5e7e8ef32bc3cd05194)(@babel/core@7.29.0)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + specifier: ~8.18.0 + version: 8.18.0(@expo/env@2.0.11)(dotenv@16.6.1)(expo@54.0.34(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=2656ac6deb71b92a4df4af4593d13ace6a5740936432e5e7e8ef32bc3cd05194)(@babel/core@7.29.0)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=2656ac6deb71b92a4df4af4593d13ace6a5740936432e5e7e8ef32bc3cd05194)(@babel/core@7.29.0)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=2656ac6deb71b92a4df4af4593d13ace6a5740936432e5e7e8ef32bc3cd05194)(@babel/core@7.29.0)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) '@tanstack/query-async-storage-persister': specifier: ^5.96.2 version: 5.100.10 @@ -3237,53 +3237,35 @@ packages: '@remirror/core-constants@3.0.0': resolution: {integrity: sha512-42aWfPrimMfDKDi4YegyS7x+/0tlzaqwPQCULLanv3DMIlu96KTJR0fM5isWX2UViOqlGnX6YFgqWepcX+XMNg==} - '@sentry-internal/browser-utils@8.55.0': - resolution: {integrity: sha512-ROgqtQfpH/82AQIpESPqPQe0UyWywKJsmVIqi3c5Fh+zkds5LUxnssTj3yNd1x+kxaPDVB023jAP+3ibNgeNDw==} - engines: {node: '>=14.18'} - - '@sentry-internal/feedback@8.55.0': - resolution: {integrity: sha512-cP3BD/Q6pquVQ+YL+rwCnorKuTXiS9KXW8HNKu4nmmBAyf7urjs+F6Hr1k9MXP5yQ8W3yK7jRWd09Yu6DHWOiw==} - engines: {node: '>=14.18'} - - '@sentry-internal/replay-canvas@8.55.0': - resolution: {integrity: sha512-nIkfgRWk1091zHdu4NbocQsxZF1rv1f7bbp3tTIlZYbrH62XVZosx5iHAuZG0Zc48AETLE7K4AX9VGjvQj8i9w==} - engines: {node: '>=14.18'} - - '@sentry-internal/replay@8.55.0': - resolution: {integrity: sha512-roCDEGkORwolxBn8xAKedybY+Jlefq3xYmgN2fr3BTnsXjSYOPC7D1/mYqINBat99nDtvgFvNfRcZPiwwZ1hSw==} - engines: {node: '>=14.18'} - '@sentry/babel-plugin-component-annotate@3.6.1': resolution: {integrity: sha512-zmvUa4RpzDG3LQJFpGCE8lniz8Rk1Wa6ZvvK+yEH+snZeaHHRbSnAQBMR607GOClP+euGHNO2YtaY4UAdNTYbg==} engines: {node: '>= 14'} - '@sentry/babel-plugin-component-annotate@4.1.1': - resolution: {integrity: sha512-HUpqrCK7zDVojTV6KL6BO9ZZiYrEYQqvYQrscyMsq04z+WCupXaH6YEliiNRvreR8DBJgdsG3lBRpebhUGmvfA==} - engines: {node: '>= 14'} + '@sentry/babel-plugin-component-annotate@5.3.0': + resolution: {integrity: sha512-p4q8gn8wcFqZGP/s2MnJCAAd8fTikaU6A0mM97RDHQgStcrYiaS0Sc5zUNfb1V+UOLPuvdEdL6MwyxfzjYJQTA==} + engines: {node: '>= 18'} - '@sentry/browser@8.55.0': - resolution: {integrity: sha512-1A31mCEWCjaMxJt6qGUK+aDnLDcK6AwLAZnqpSchNysGni1pSn1RWSmk9TBF8qyTds5FH8B31H480uxMPUJ7Cw==} - engines: {node: '>=14.18'} + '@sentry/browser-utils@10.64.0': + resolution: {integrity: sha512-qXvUpsZdE0+6SovhDZvjN4JkqQEpzeYsrOF5g63wMsqJWWv2vW/pQZIlJs0F6C0t4q5AHZL4fl5rNkvpVqFdKA==} + engines: {node: '>=18'} + + '@sentry/browser@10.64.0': + resolution: {integrity: sha512-CHZ7+79evh8knBtVHjW/XqV3mRaWs2TdjX7i55zpFe9vcNngQHV++0ss8ird/xfMY1mfCDtbyAN+Z6XY2o5aJA==} + engines: {node: '>=18'} '@sentry/bundler-plugin-core@3.6.1': resolution: {integrity: sha512-/ubWjPwgLep84sUPzHfKL2Ns9mK9aQrEX4aBFztru7ygiJidKJTxYGtvjh4dL2M1aZ0WRQYp+7PF6+VKwdZXcQ==} engines: {node: '>= 14'} - '@sentry/cli-darwin@2.51.1': - resolution: {integrity: sha512-R1u8IQdn/7Rr8sf6bVVr0vJT4OqwCFdYsS44Y3OoWGVJW2aAQTWRJOTlV4ueclVLAyUQzmgBjfR8AtiUhd/M5w==} - 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.51.1': - resolution: {integrity: sha512-nvA/hdhsw4bKLhslgbBqqvETjXwN1FVmwHLOrRvRcejDO6zeIKUElDiL5UOjGG0NC+62AxyNw5ri8Wzp/7rg9Q==} - engines: {node: '>=10'} - cpu: [arm64] - os: [linux, freebsd, android] + '@sentry/cli-darwin@3.6.0': + resolution: {integrity: sha512-C2SWHKaEP8NoYkLDr5jwrzklTwlJkzPIx7lu2LZrwBuHG/sNhWdili0ED2mD86b6Q90hlcMtuBm5IHUwcZ6FTQ==} + engines: {node: '>=18'} + os: [darwin] '@sentry/cli-linux-arm64@2.58.5': resolution: {integrity: sha512-/4gywFeBqRB6tR/iGMRAJ3HRqY6Z7Yp4l8ZCbl0TDLAfHNxu7schEw4tSnm2/Hh9eNMiOVy4z58uzAWlZXAYBQ==} @@ -3291,10 +3273,10 @@ packages: cpu: [arm64] os: [linux, freebsd, android] - '@sentry/cli-linux-arm@2.51.1': - resolution: {integrity: sha512-Klro17OmSSKOOSaxVKBBNPXet2+HrIDZUTSp8NRl4LQsIubdc1S/aQ79cH/g52Muwzpl3aFwPxyXw+46isfEgA==} - engines: {node: '>=10'} - cpu: [arm] + '@sentry/cli-linux-arm64@3.6.0': + resolution: {integrity: sha512-Rc+DB8vuTDpwqY2BxIPnooYk2ZDYQytF+n4nfi6pZZsJtr3SFFe+3wIWVmCVqxiHkaISb33+iJIDxOOqhkSNbQ==} + engines: {node: '>=18'} + cpu: [arm64] os: [linux, freebsd, android] '@sentry/cli-linux-arm@2.58.5': @@ -3303,10 +3285,10 @@ packages: cpu: [arm] os: [linux, freebsd, android] - '@sentry/cli-linux-i686@2.51.1': - resolution: {integrity: sha512-jp4TmR8VXBdT9dLo6mHniQHN0xKnmJoPGVz9h9VDvO2Vp/8o96rBc555D4Am5wJOXmfuPlyjGcmwHlB3+kQRWw==} - engines: {node: '>=10'} - cpu: [x86, ia32] + '@sentry/cli-linux-arm@3.6.0': + resolution: {integrity: sha512-S9xsDZTvybOGbrqqZ7DvF7JCNKp4cakDWJ4LdvQX+z82cHQSoLkYOXkA3EafDfWV9BGIRMIXitMMiSsV2PMU4g==} + engines: {node: '>=18'} + cpu: [arm] os: [linux, freebsd, android] '@sentry/cli-linux-i686@2.58.5': @@ -3315,10 +3297,10 @@ packages: cpu: [x86, ia32] os: [linux, freebsd, android] - '@sentry/cli-linux-x64@2.51.1': - resolution: {integrity: sha512-JuLt0MXM2KHNFmjqXjv23sly56mJmUQzGBWktkpY3r+jE08f5NLKPd5wQ6W/SoLXGIOKnwLz0WoUg7aBVyQdeQ==} - engines: {node: '>=10'} - cpu: [x64] + '@sentry/cli-linux-i686@3.6.0': + resolution: {integrity: sha512-PQ7+ctNmWtHgmbKa+rJheHU7D9GHJXafgWYfVW6gt7R0Ag9LxiDVYLGjrL4G/i7AGFNgudXFaLkGKNX7HUjc+g==} + engines: {node: '>=18'} + cpu: [x86, ia32] os: [linux, freebsd, android] '@sentry/cli-linux-x64@2.58.5': @@ -3327,11 +3309,11 @@ packages: cpu: [x64] os: [linux, freebsd, android] - '@sentry/cli-win32-arm64@2.51.1': - resolution: {integrity: sha512-PiwjTdIFDazTQCTyDCutiSkt4omggYSKnO3HE1+LDjElsFrWY9pJs4fU3D40WAyE2oKu0MarjNH/WxYGdqEAlg==} - engines: {node: '>=10'} - cpu: [arm64] - os: [win32] + '@sentry/cli-linux-x64@3.6.0': + resolution: {integrity: sha512-c+7xNg5BAaPE8N2Q6pg3Q/kt97JSaskuQIjRxHaFuDbCkJvww4VozY6mW5NUMJaW48rEs3mahWKamTLqJsO3wQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux, freebsd, android] '@sentry/cli-win32-arm64@2.58.5': resolution: {integrity: sha512-AOJ2nCXlQL1KBaCzv38m3i2VmSHNurUpm7xVKd6yAHX+ZoVBI8VT0EgvwmtJR2TY2N2hNCC7UrgRmdUsQ152bA==} @@ -3339,10 +3321,10 @@ packages: cpu: [arm64] os: [win32] - '@sentry/cli-win32-i686@2.51.1': - resolution: {integrity: sha512-TMvZZpeiI2HmrDFNVQ0uOiTuYKvjEGOZdmUxe3WlhZW82A/2Oka7sQ24ljcOovbmBOj5+fjCHRUMYvLMCWiysA==} - engines: {node: '>=10'} - cpu: [x86, ia32] + '@sentry/cli-win32-arm64@3.6.0': + resolution: {integrity: sha512-zhZ7YyGreHSKZ92Mwb9h4cEyL0I/eND7W6XIUXUW0BCCmxFOMc71vlQpUw8gijHIsFDbv8c8a6VOSkeRuwbSwQ==} + engines: {node: '>=18'} + cpu: [arm64] os: [win32] '@sentry/cli-win32-i686@2.58.5': @@ -3351,10 +3333,10 @@ packages: cpu: [x86, ia32] os: [win32] - '@sentry/cli-win32-x64@2.51.1': - resolution: {integrity: sha512-v2hreYUPPTNK1/N7+DeX7XBN/zb7p539k+2Osf0HFyVBaoUC3Y3+KBwSf4ASsnmgTAK7HCGR+X0NH1vP+icw4w==} - engines: {node: '>=10'} - cpu: [x64] + '@sentry/cli-win32-i686@3.6.0': + resolution: {integrity: sha512-JaxzVDdyetrPBp8NHh2yNAYdDk79ROXqfAfjQwG5z6V764MMMrf2WrhQ7EwoKXOPtBLm/drbOcYgaxHuDZKGRw==} + engines: {node: '>=18'} + cpu: [x86, ia32] os: [win32] '@sentry/cli-win32-x64@2.58.5': @@ -3363,22 +3345,49 @@ packages: cpu: [x64] os: [win32] - '@sentry/cli@2.51.1': - resolution: {integrity: sha512-FU+54kNcKJABU0+ekvtnoXHM9zVrDe1zXVFbQT7mS0On0m1P0zFRGdzbnWe2XzpzuEAJXtK6aog/W+esRU9AIA==} - engines: {node: '>= 10'} - hasBin: true + '@sentry/cli-win32-x64@3.6.0': + resolution: {integrity: sha512-LW0078VlxaUeVMMLA15A1zhkvZ5vby/lwthtBXPoBSDdTcgbTE4D4gQXM9vEapV28SvCO3fVIek3pbtrkaeDMw==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] '@sentry/cli@2.58.5': resolution: {integrity: sha512-tavJ7yGUZV+z3Ct2/ZB6mg339i08sAk6HDkgqmSRuQEu2iLS5sl9HIvuXfM6xjv8fwlgFOSy++WNABNAcGHUbg==} engines: {node: '>= 10'} hasBin: true - '@sentry/core@8.55.0': - resolution: {integrity: sha512-6g7jpbefjHYs821Z+EBJ8r4Z7LT5h80YSWRJaylGS4nW5W5Z2KXzpdnyFarv37O7QjauzVC2E+PABmpkw5/JGA==} - engines: {node: '>=14.18'} + '@sentry/cli@3.6.0': + resolution: {integrity: sha512-79XC8o59G/i3VqmnoQD74a/QD/422eQQlUqiPd3sEvcYCxnaZialRVAsxuNEFd6sx4aVGpqt775MMDT9cV/lMg==} + engines: {node: '>= 18'} + hasBin: true - '@sentry/react-native@6.20.0': - resolution: {integrity: sha512-YngSba14Hsb5t/ZNMOyxb/HInmYRL5pQ74BkoMBQ/UBBM5kWHgSILxoO2XkKYtaaJXrkSJj+kBalELHblz9h5g==} + '@sentry/conventions@0.15.1': + resolution: {integrity: sha512-ZLP8bRdMON3prWE2tJyImuYscCxdcJeIPIhrOs/rgyFm3C1nCh1B6gdvPj3AZ5zW08oSFFCsq7T+tYEW3h8MNA==} + engines: {node: '>=14'} + + '@sentry/core@10.64.0': + resolution: {integrity: sha512-HjojJcXD1l2qZ1AXje2s0XY/nYsaUt00wsM1HMBImA8vAClyPisFE/CC0/UD6pEvsGFhVgi8Dcxo7EN41uyeFw==} + engines: {node: '>=18'} + + '@sentry/expo-upload-sourcemaps@8.18.0': + resolution: {integrity: sha512-yJCJcG+gdGhYL11E6B59Upt0Txxb1RHTJ9df2CqfukNS723KRzg+kESEhUKHz9BQzYmvE8vnRvqobA3xA4j7Yw==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + '@expo/env': '*' + dotenv: '*' + peerDependenciesMeta: + '@expo/env': + optional: true + dotenv: + optional: true + + '@sentry/feedback@10.64.0': + resolution: {integrity: sha512-YrmKwRoAto+nwo26DoAhnpNmhkrVkuQFIAXqlTD8ipERjhcSNUYJAkAB+nH4w1KIgm9QQZE1sTq3iNQdPl1XMQ==} + engines: {node: '>=18'} + + '@sentry/react-native@8.18.0': + resolution: {integrity: sha512-W9jrTort+0LEkcezXRpIRMUaWXxbgvzEXlsuvCRU14n7yQiTfzKgFeSACpkzgqoW4iqJKphXoI9l4AVb54AdZg==} hasBin: true peerDependencies: expo: '>=49.0.0' @@ -3388,19 +3397,19 @@ packages: expo: optional: true - '@sentry/react@8.55.0': - resolution: {integrity: sha512-/qNBvFLpvSa/Rmia0jpKfJdy16d4YZaAnH/TuKLAtm0BWlsPQzbXCU4h8C5Hsst0Do0zG613MEtEmWpWrVOqWA==} - engines: {node: '>=14.18'} + '@sentry/react@10.64.0': + resolution: {integrity: sha512-oShEKcosBKdm0kgan8suFb6Jj8poccEyDz2qiflonq/5/hUDyzdVeKfFzf0b1MmdjWSn9k3hfrLNFfPNCuEt7Q==} + engines: {node: '>=18'} peerDependencies: react: ^16.14.0 || 17.x || 18.x || 19.x - '@sentry/types@8.55.0': - resolution: {integrity: sha512-6LRT0+r6NWQ+RtllrUW2yQfodST0cJnkOmdpHA75vONgBUhpKwiJ4H7AmgfoTET8w29pU6AnntaGOe0LJbOmog==} - engines: {node: '>=14.18'} + '@sentry/replay-canvas@10.64.0': + resolution: {integrity: sha512-EioBwcnnhtPiXzTZJTbZKaMEg3qNM5YZlX1VanoXomPATqfJD62cb/M27zhgiWXXJ7e8/NGVHvwNDYGrqsN39g==} + engines: {node: '>=18'} - '@sentry/utils@8.55.0': - resolution: {integrity: sha512-cYcl39+xcOivBpN9d8ZKbALl+DxZKo/8H0nueJZ0PO4JA+MJGhSm6oHakXxLPaiMoNLTX7yor8ndnQIuFg+vmQ==} - engines: {node: '>=14.18'} + '@sentry/replay@10.64.0': + resolution: {integrity: sha512-q8nke2GDSwEiu1zYoctDDvnSNTjHWoVAKo2JXTleD0nwOO6IlAgUYmsm3qEQiSW7BVla9W1TRbW6ChFAUXYZbw==} + engines: {node: '>=18'} '@sentry/webpack-plugin@3.6.1': resolution: {integrity: sha512-F2yqwbdxfCENMN5u4ih4WfOtGjW56/92DBC0bU6un7Ns/l2qd+wRONIvrF+58rl/VkCFfMlUtZTVoKGRyMRmHA==} @@ -12029,35 +12038,21 @@ snapshots: '@remirror/core-constants@3.0.0': {} - '@sentry-internal/browser-utils@8.55.0': - dependencies: - '@sentry/core': 8.55.0 - - '@sentry-internal/feedback@8.55.0': - dependencies: - '@sentry/core': 8.55.0 - - '@sentry-internal/replay-canvas@8.55.0': - dependencies: - '@sentry-internal/replay': 8.55.0 - '@sentry/core': 8.55.0 - - '@sentry-internal/replay@8.55.0': - dependencies: - '@sentry-internal/browser-utils': 8.55.0 - '@sentry/core': 8.55.0 - '@sentry/babel-plugin-component-annotate@3.6.1': {} - '@sentry/babel-plugin-component-annotate@4.1.1': {} + '@sentry/babel-plugin-component-annotate@5.3.0': {} - '@sentry/browser@8.55.0': + '@sentry/browser-utils@10.64.0': dependencies: - '@sentry-internal/browser-utils': 8.55.0 - '@sentry-internal/feedback': 8.55.0 - '@sentry-internal/replay': 8.55.0 - '@sentry-internal/replay-canvas': 8.55.0 - '@sentry/core': 8.55.0 + '@sentry/core': 10.64.0 + + '@sentry/browser@10.64.0': + dependencies: + '@sentry/browser-utils': 10.64.0 + '@sentry/core': 10.64.0 + '@sentry/feedback': 10.64.0 + '@sentry/replay': 10.64.0 + '@sentry/replay-canvas': 10.64.0 '@sentry/bundler-plugin-core@3.6.1': dependencies: @@ -12073,73 +12068,53 @@ snapshots: - encoding - supports-color - '@sentry/cli-darwin@2.51.1': - optional: true - '@sentry/cli-darwin@2.58.5': optional: true - '@sentry/cli-linux-arm64@2.51.1': + '@sentry/cli-darwin@3.6.0': optional: true '@sentry/cli-linux-arm64@2.58.5': optional: true - '@sentry/cli-linux-arm@2.51.1': + '@sentry/cli-linux-arm64@3.6.0': optional: true '@sentry/cli-linux-arm@2.58.5': optional: true - '@sentry/cli-linux-i686@2.51.1': + '@sentry/cli-linux-arm@3.6.0': optional: true '@sentry/cli-linux-i686@2.58.5': optional: true - '@sentry/cli-linux-x64@2.51.1': + '@sentry/cli-linux-i686@3.6.0': optional: true '@sentry/cli-linux-x64@2.58.5': optional: true - '@sentry/cli-win32-arm64@2.51.1': + '@sentry/cli-linux-x64@3.6.0': optional: true '@sentry/cli-win32-arm64@2.58.5': optional: true - '@sentry/cli-win32-i686@2.51.1': + '@sentry/cli-win32-arm64@3.6.0': optional: true '@sentry/cli-win32-i686@2.58.5': optional: true - '@sentry/cli-win32-x64@2.51.1': + '@sentry/cli-win32-i686@3.6.0': optional: true '@sentry/cli-win32-x64@2.58.5': optional: true - '@sentry/cli@2.51.1': - 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.51.1 - '@sentry/cli-linux-arm': 2.51.1 - '@sentry/cli-linux-arm64': 2.51.1 - '@sentry/cli-linux-i686': 2.51.1 - '@sentry/cli-linux-x64': 2.51.1 - '@sentry/cli-win32-arm64': 2.51.1 - '@sentry/cli-win32-i686': 2.51.1 - '@sentry/cli-win32-x64': 2.51.1 - transitivePeerDependencies: - - encoding - - supports-color + '@sentry/cli-win32-x64@3.6.0': + optional: true '@sentry/cli@2.58.5': dependencies: @@ -12161,39 +12136,70 @@ snapshots: - encoding - supports-color - '@sentry/core@8.55.0': {} - - '@sentry/react-native@6.20.0(patch_hash=1d48e4d5178f5684eb33262299e7eed283bf9601f79b9ae1af63a7f607d3483a)(expo@54.0.34(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=2656ac6deb71b92a4df4af4593d13ace6a5740936432e5e7e8ef32bc3cd05194)(@babel/core@7.29.0)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=2656ac6deb71b92a4df4af4593d13ace6a5740936432e5e7e8ef32bc3cd05194)(@babel/core@7.29.0)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=2656ac6deb71b92a4df4af4593d13ace6a5740936432e5e7e8ef32bc3cd05194)(@babel/core@7.29.0)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': + '@sentry/cli@3.6.0': dependencies: - '@sentry/babel-plugin-component-annotate': 4.1.1 - '@sentry/browser': 8.55.0 - '@sentry/cli': 2.51.1 - '@sentry/core': 8.55.0 - '@sentry/react': 8.55.0(react@19.1.0) - '@sentry/types': 8.55.0 - '@sentry/utils': 8.55.0 + progress: 2.0.3 + proxy-from-env: 1.1.0 + undici: 6.25.0 + which: 2.0.2 + optionalDependencies: + '@sentry/cli-darwin': 3.6.0 + '@sentry/cli-linux-arm': 3.6.0 + '@sentry/cli-linux-arm64': 3.6.0 + '@sentry/cli-linux-i686': 3.6.0 + '@sentry/cli-linux-x64': 3.6.0 + '@sentry/cli-win32-arm64': 3.6.0 + '@sentry/cli-win32-i686': 3.6.0 + '@sentry/cli-win32-x64': 3.6.0 + + '@sentry/conventions@0.15.1': {} + + '@sentry/core@10.64.0': + dependencies: + '@sentry/conventions': 0.15.1 + + '@sentry/expo-upload-sourcemaps@8.18.0(patch_hash=2368e1e1986165e7ead3c60017b78b2f9ade1b6a6b2f5ad27cd428608c6f12ae)(@expo/env@2.0.11)(dotenv@16.6.1)': + dependencies: + '@sentry/cli': 3.6.0 + optionalDependencies: + '@expo/env': 2.0.11 + dotenv: 16.6.1 + + '@sentry/feedback@10.64.0': + dependencies: + '@sentry/core': 10.64.0 + + '@sentry/react-native@8.18.0(@expo/env@2.0.11)(dotenv@16.6.1)(expo@54.0.34(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=2656ac6deb71b92a4df4af4593d13ace6a5740936432e5e7e8ef32bc3cd05194)(@babel/core@7.29.0)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=2656ac6deb71b92a4df4af4593d13ace6a5740936432e5e7e8ef32bc3cd05194)(@babel/core@7.29.0)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=2656ac6deb71b92a4df4af4593d13ace6a5740936432e5e7e8ef32bc3cd05194)(@babel/core@7.29.0)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': + dependencies: + '@sentry/babel-plugin-component-annotate': 5.3.0 + '@sentry/browser': 10.64.0 + '@sentry/cli': 3.6.0 + '@sentry/core': 10.64.0 + '@sentry/expo-upload-sourcemaps': 8.18.0(patch_hash=2368e1e1986165e7ead3c60017b78b2f9ade1b6a6b2f5ad27cd428608c6f12ae)(@expo/env@2.0.11)(dotenv@16.6.1) + '@sentry/react': 10.64.0(react@19.1.0) react: 19.1.0 react-native: 0.81.5(patch_hash=2656ac6deb71b92a4df4af4593d13ace6a5740936432e5e7e8ef32bc3cd05194)(@babel/core@7.29.0)(@types/react@19.1.17)(react@19.1.0) optionalDependencies: expo: 54.0.34(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=2656ac6deb71b92a4df4af4593d13ace6a5740936432e5e7e8ef32bc3cd05194)(@babel/core@7.29.0)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=2656ac6deb71b92a4df4af4593d13ace6a5740936432e5e7e8ef32bc3cd05194)(@babel/core@7.29.0)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) transitivePeerDependencies: - - encoding - - supports-color + - '@expo/env' + - dotenv - '@sentry/react@8.55.0(react@19.1.0)': + '@sentry/react@10.64.0(react@19.1.0)': dependencies: - '@sentry/browser': 8.55.0 - '@sentry/core': 8.55.0 - hoist-non-react-statics: 3.3.2 + '@sentry/browser': 10.64.0 + '@sentry/core': 10.64.0 react: 19.1.0 - '@sentry/types@8.55.0': + '@sentry/replay-canvas@10.64.0': dependencies: - '@sentry/core': 8.55.0 + '@sentry/core': 10.64.0 + '@sentry/replay': 10.64.0 - '@sentry/utils@8.55.0': + '@sentry/replay@10.64.0': dependencies: - '@sentry/core': 8.55.0 + '@sentry/browser-utils': 10.64.0 + '@sentry/core': 10.64.0 '@sentry/webpack-plugin@3.6.1(webpack@5.106.2(postcss@8.5.14))': dependencies: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 688f5f058b..c917be629a 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -19,7 +19,7 @@ allowBuilds: 'esbuild': true 'unrs-resolver': true patchedDependencies: - '@sentry/react-native@6.20.0': patches/@sentry__react-native@6.20.0.patch + '@sentry/expo-upload-sourcemaps@8.18.0': patches/@sentry__expo-upload-sourcemaps@8.18.0.patch expo-age-range@0.2.18: patches/expo-age-range@0.2.18.patch 'expo-glass-effect@55.0.8': patches/expo-glass-effect@55.0.8.patch 'expo-haptics@15.0.8': patches/expo-haptics@15.0.8.patch diff --git a/src/logger/sentry/setup/index.ts b/src/logger/sentry/setup/index.ts index 4fe07e97e2..666fc3b0a6 100644 --- a/src/logger/sentry/setup/index.ts +++ b/src/logger/sentry/setup/index.ts @@ -4,7 +4,7 @@ import * as env from '#/env' init({ enabled: !env.IS_DEV && !!env.SENTRY_DSN, - autoSessionTracking: false, + enableAutoSessionTracking: false, dsn: env.SENTRY_DSN, debug: false, // If `true`, Sentry will try to print out useful debugging information if something goes wrong with sending the event. Set it to `false` in production environment: env.ENV,