From f530ac649b7b9536959958325f74c6f9fd3f6a52 Mon Sep 17 00:00:00 2001 From: Onur Temizkan Date: Mon, 10 Nov 2025 14:21:41 +0000 Subject: [PATCH 1/4] fix(browser): Add `ok` status to succesful `idleSpan`s --- .../tests/transactions.test.ts | 89 +++++++++++++++++++ packages/core/src/tracing/idleSpan.ts | 8 +- 2 files changed, 96 insertions(+), 1 deletion(-) diff --git a/dev-packages/e2e-tests/test-applications/react-router-7-lazy-routes/tests/transactions.test.ts b/dev-packages/e2e-tests/test-applications/react-router-7-lazy-routes/tests/transactions.test.ts index 3901b0938ca5..a57199c52633 100644 --- a/dev-packages/e2e-tests/test-applications/react-router-7-lazy-routes/tests/transactions.test.ts +++ b/dev-packages/e2e-tests/test-applications/react-router-7-lazy-routes/tests/transactions.test.ts @@ -21,6 +21,7 @@ test('Creates a pageload transaction with parameterized route', async ({ page }) expect(event.transaction).toBe('/lazy/inner/:id/:anotherId/:someAnotherId'); expect(event.type).toBe('transaction'); expect(event.contexts?.trace?.op).toBe('pageload'); + expect(event.contexts?.trace?.status).toBe('ok'); }); test('Does not create a navigation transaction on initial load to deep lazy route', async ({ page }) => { @@ -82,6 +83,7 @@ test('Creates a navigation transaction inside a lazy route', async ({ page }) => expect(event.transaction).toBe('/lazy/inner/:id/:anotherId/:someAnotherId'); expect(event.type).toBe('transaction'); expect(event.contexts?.trace?.op).toBe('navigation'); + expect(event.contexts?.trace?.status).toBe('ok'); }); test('Creates navigation transactions between two different lazy routes', async ({ page }) => { @@ -498,3 +500,90 @@ test('Updates navigation transaction name correctly when span is cancelled early expect(['externalFinish', 'cancelled']).toContain(idleSpanFinishReason); } }); + +test('Creates separate transactions for rapid consecutive navigations', async ({ page }) => { + await page.goto('/'); + + // First navigation: / -> /lazy/inner/:id/:anotherId/:someAnotherId + const firstTransactionPromise = waitForTransaction('react-router-7-lazy-routes', async transactionEvent => { + return ( + !!transactionEvent?.transaction && + transactionEvent.contexts?.trace?.op === 'navigation' && + transactionEvent.transaction === '/lazy/inner/:id/:anotherId/:someAnotherId' + ); + }); + + const navigationToInner = page.locator('id=navigation'); + await expect(navigationToInner).toBeVisible(); + await navigationToInner.click(); + + const firstEvent = await firstTransactionPromise; + + // Verify first transaction + expect(firstEvent.transaction).toBe('/lazy/inner/:id/:anotherId/:someAnotherId'); + expect(firstEvent.contexts?.trace?.op).toBe('navigation'); + expect(firstEvent.contexts?.trace?.status).toBe('ok'); + const firstTraceId = firstEvent.contexts?.trace?.trace_id; + const firstSpanId = firstEvent.contexts?.trace?.span_id; + + // Second navigation: /lazy/inner -> /another-lazy/sub/:id/:subId + const secondTransactionPromise = waitForTransaction('react-router-7-lazy-routes', async transactionEvent => { + return ( + !!transactionEvent?.transaction && + transactionEvent.contexts?.trace?.op === 'navigation' && + transactionEvent.transaction === '/another-lazy/sub/:id/:subId' + ); + }); + + const navigationToAnother = page.locator('id=navigate-to-another-from-inner'); + await expect(navigationToAnother).toBeVisible(); + await navigationToAnother.click(); + + const secondEvent = await secondTransactionPromise; + + // Verify second transaction + expect(secondEvent.transaction).toBe('/another-lazy/sub/:id/:subId'); + expect(secondEvent.contexts?.trace?.op).toBe('navigation'); + expect(secondEvent.contexts?.trace?.status).toBe('ok'); + const secondTraceId = secondEvent.contexts?.trace?.trace_id; + const secondSpanId = secondEvent.contexts?.trace?.span_id; + + // Third navigation: /another-lazy -> /lazy/inner/:id/:anotherId/:someAnotherId (back to same route as first) + const thirdTransactionPromise = waitForTransaction('react-router-7-lazy-routes', async transactionEvent => { + return ( + !!transactionEvent?.transaction && + transactionEvent.contexts?.trace?.op === 'navigation' && + transactionEvent.transaction === '/lazy/inner/:id/:anotherId/:someAnotherId' && + // Ensure we're not matching the first transaction again + transactionEvent.contexts?.trace?.trace_id !== firstTraceId + ); + }); + + const navigationBackToInner = page.locator('id=navigate-to-inner-from-deep'); + await expect(navigationBackToInner).toBeVisible(); + await navigationBackToInner.click(); + + const thirdEvent = await thirdTransactionPromise; + + // Verify third transaction + expect(thirdEvent.transaction).toBe('/lazy/inner/:id/:anotherId/:someAnotherId'); + expect(thirdEvent.contexts?.trace?.op).toBe('navigation'); + expect(thirdEvent.contexts?.trace?.status).toBe('ok'); + const thirdTraceId = thirdEvent.contexts?.trace?.trace_id; + const thirdSpanId = thirdEvent.contexts?.trace?.span_id; + + // Verify each navigation created a separate transaction with unique trace and span IDs + expect(firstTraceId).toBeDefined(); + expect(secondTraceId).toBeDefined(); + expect(thirdTraceId).toBeDefined(); + + // All trace IDs should be unique + expect(firstTraceId).not.toBe(secondTraceId); + expect(secondTraceId).not.toBe(thirdTraceId); + expect(firstTraceId).not.toBe(thirdTraceId); + + // All span IDs should be unique + expect(firstSpanId).not.toBe(secondSpanId); + expect(secondSpanId).not.toBe(thirdSpanId); + expect(firstSpanId).not.toBe(thirdSpanId); +}); diff --git a/packages/core/src/tracing/idleSpan.ts b/packages/core/src/tracing/idleSpan.ts index b35e31322ecd..53848a9c9191 100644 --- a/packages/core/src/tracing/idleSpan.ts +++ b/packages/core/src/tracing/idleSpan.ts @@ -19,7 +19,7 @@ import { timestampInSeconds } from '../utils/time'; import { freezeDscOnSpan, getDynamicSamplingContextFromSpan } from './dynamicSamplingContext'; import { SentryNonRecordingSpan } from './sentryNonRecordingSpan'; import { SentrySpan } from './sentrySpan'; -import { SPAN_STATUS_ERROR } from './spanstatus'; +import { SPAN_STATUS_ERROR, SPAN_STATUS_OK } from './spanstatus'; import { startInactiveSpan } from './trace'; export const TRACING_DEFAULTS = { @@ -302,6 +302,12 @@ export function startIdleSpan(startSpanOptions: StartSpanOptions, options: Parti span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON, _finishReason); } + // Set span status to 'ok' if it hasn't been explicitly set to an error status + const currentStatus = spanJSON.status; + if (!currentStatus || currentStatus === 'unknown') { + span.setStatus({ code: SPAN_STATUS_OK }); + } + debug.log(`[Tracing] Idle span "${spanJSON.op}" finished`); const childSpans = getSpanDescendants(span).filter(child => child !== span); From 0c0be9dc30a2719606ae5abdde128379fb820a58 Mon Sep 17 00:00:00 2001 From: Onur Temizkan Date: Mon, 10 Nov 2025 19:20:37 +0000 Subject: [PATCH 2/4] Update E2E test assertions --- .../create-next-app/tests/client-transactions.test.ts | 2 ++ .../nextjs-app-dir/tests/transactions.test.ts | 1 + .../nextjs-pages-dir/tests/transactions.test.ts | 1 + .../react-create-browser-router/tests/transactions.test.ts | 4 ++++ .../react-create-hash-router/tests/transactions.test.ts | 2 ++ .../react-create-memory-router/tests/transactions.test.ts | 2 ++ 6 files changed, 12 insertions(+) diff --git a/dev-packages/e2e-tests/test-applications/create-next-app/tests/client-transactions.test.ts b/dev-packages/e2e-tests/test-applications/create-next-app/tests/client-transactions.test.ts index cbb2cae29265..a539216efee7 100644 --- a/dev-packages/e2e-tests/test-applications/create-next-app/tests/client-transactions.test.ts +++ b/dev-packages/e2e-tests/test-applications/create-next-app/tests/client-transactions.test.ts @@ -24,6 +24,7 @@ test('Sends a pageload transaction to Sentry', async ({ page }) => { trace_id: expect.stringMatching(/[a-f0-9]{32}/), op: 'pageload', origin: 'auto.pageload.nextjs.pages_router_instrumentation', + status: 'ok', data: expect.objectContaining({ 'sentry.idle_span_finish_reason': 'idleTimeout', 'sentry.op': 'pageload', @@ -69,6 +70,7 @@ test('captures a navigation transaction to Sentry', async ({ page }) => { trace_id: expect.stringMatching(/[a-f0-9]{32}/), op: 'navigation', origin: 'auto.navigation.nextjs.pages_router_instrumentation', + status: 'ok', data: expect.objectContaining({ 'sentry.idle_span_finish_reason': 'idleTimeout', 'sentry.op': 'navigation', diff --git a/dev-packages/e2e-tests/test-applications/nextjs-app-dir/tests/transactions.test.ts b/dev-packages/e2e-tests/test-applications/nextjs-app-dir/tests/transactions.test.ts index 9819507f5cb9..c938817e2642 100644 --- a/dev-packages/e2e-tests/test-applications/nextjs-app-dir/tests/transactions.test.ts +++ b/dev-packages/e2e-tests/test-applications/nextjs-app-dir/tests/transactions.test.ts @@ -33,6 +33,7 @@ test('Sends a pageload transaction', async ({ page }) => { trace_id: expect.stringMatching(/[a-f0-9]{32}/), op: 'pageload', origin: 'auto.pageload.nextjs.app_router_instrumentation', + status: 'ok', data: expect.objectContaining({ 'sentry.op': 'pageload', 'sentry.origin': 'auto.pageload.nextjs.app_router_instrumentation', diff --git a/dev-packages/e2e-tests/test-applications/nextjs-pages-dir/tests/transactions.test.ts b/dev-packages/e2e-tests/test-applications/nextjs-pages-dir/tests/transactions.test.ts index 3569789ed995..5b648065e45a 100644 --- a/dev-packages/e2e-tests/test-applications/nextjs-pages-dir/tests/transactions.test.ts +++ b/dev-packages/e2e-tests/test-applications/nextjs-pages-dir/tests/transactions.test.ts @@ -33,6 +33,7 @@ test('Sends a pageload transaction', async ({ page }) => { trace_id: expect.stringMatching(/[a-f0-9]{32}/), op: 'pageload', origin: 'auto.pageload.nextjs.pages_router_instrumentation', + status: 'ok', data: expect.objectContaining({ 'sentry.op': 'pageload', 'sentry.origin': 'auto.pageload.nextjs.pages_router_instrumentation', diff --git a/dev-packages/e2e-tests/test-applications/react-create-browser-router/tests/transactions.test.ts b/dev-packages/e2e-tests/test-applications/react-create-browser-router/tests/transactions.test.ts index ee0c507076fa..4af30d8e139d 100644 --- a/dev-packages/e2e-tests/test-applications/react-create-browser-router/tests/transactions.test.ts +++ b/dev-packages/e2e-tests/test-applications/react-create-browser-router/tests/transactions.test.ts @@ -36,6 +36,7 @@ test('Captures a pageload transaction', async ({ page }) => { span_id: expect.stringMatching(/[a-f0-9]{16}/), trace_id: expect.stringMatching(/[a-f0-9]{32}/), origin: 'auto.pageload.react.reactrouter_v6', + status: 'ok', }), ); }); @@ -72,6 +73,7 @@ test('Captures a navigation transaction', async ({ page }) => { span_id: expect.stringMatching(/[a-f0-9]{16}/), trace_id: expect.stringMatching(/[a-f0-9]{32}/), origin: 'auto.navigation.react.reactrouter_v6', + status: 'ok', }); expect(transactionEvent).toEqual( @@ -107,6 +109,7 @@ test('Captures a lazy pageload transaction', async ({ page }) => { span_id: expect.stringMatching(/[a-f0-9]{16}/), trace_id: expect.stringMatching(/[a-f0-9]{32}/), origin: 'auto.pageload.react.reactrouter_v6', + status: 'ok', }); expect(transactionEvent).toEqual( @@ -169,6 +172,7 @@ test('Captures a lazy navigation transaction', async ({ page }) => { span_id: expect.stringMatching(/[a-f0-9]{16}/), trace_id: expect.stringMatching(/[a-f0-9]{32}/), origin: 'auto.navigation.react.reactrouter_v6', + status: 'ok', }); expect(transactionEvent).toEqual( diff --git a/dev-packages/e2e-tests/test-applications/react-create-hash-router/tests/transactions.test.ts b/dev-packages/e2e-tests/test-applications/react-create-hash-router/tests/transactions.test.ts index 36e6d0c18ee2..15cab5e8569e 100644 --- a/dev-packages/e2e-tests/test-applications/react-create-hash-router/tests/transactions.test.ts +++ b/dev-packages/e2e-tests/test-applications/react-create-hash-router/tests/transactions.test.ts @@ -31,6 +31,7 @@ test('Captures a pageload transaction', async ({ page }) => { span_id: expect.stringMatching(/[a-f0-9]{16}/), trace_id: expect.stringMatching(/[a-f0-9]{32}/), origin: 'auto.pageload.react.reactrouter_v6', + status: 'ok', }); expect(transactionEvent).toEqual( @@ -136,6 +137,7 @@ test('Captures a navigation transaction', async ({ page }) => { span_id: expect.stringMatching(/[a-f0-9]{16}/), trace_id: expect.stringMatching(/[a-f0-9]{32}/), origin: 'auto.navigation.react.reactrouter_v6', + status: 'ok', }); expect(transactionEvent).toEqual( diff --git a/dev-packages/e2e-tests/test-applications/react-create-memory-router/tests/transactions.test.ts b/dev-packages/e2e-tests/test-applications/react-create-memory-router/tests/transactions.test.ts index 61a583a7bf55..5c60b704bb7a 100644 --- a/dev-packages/e2e-tests/test-applications/react-create-memory-router/tests/transactions.test.ts +++ b/dev-packages/e2e-tests/test-applications/react-create-memory-router/tests/transactions.test.ts @@ -33,6 +33,7 @@ test('Captures a pageload transaction', async ({ page }) => { span_id: expect.stringMatching(/[a-f0-9]{16}/), trace_id: expect.stringMatching(/[a-f0-9]{32}/), origin: 'auto.pageload.react.reactrouter_v6', + status: 'ok', }), ); }); @@ -69,6 +70,7 @@ test('Captures a navigation transaction', async ({ page }) => { span_id: expect.stringMatching(/[a-f0-9]{16}/), trace_id: expect.stringMatching(/[a-f0-9]{32}/), origin: 'auto.navigation.react.reactrouter_v6', + status: 'ok', }); expect(transactionEvent).toEqual( From 307b0a2047ca245bd97e85e17af48186002e0377 Mon Sep 17 00:00:00 2001 From: Onur Temizkan Date: Mon, 10 Nov 2025 21:10:13 +0000 Subject: [PATCH 3/4] Fix lockfile --- yarn.lock | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/yarn.lock b/yarn.lock index 99e434f5efff..934e3f2dc2af 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6943,6 +6943,20 @@ "@angular-devkit/schematics" "14.2.13" jsonc-parser "3.1.0" +"@sentry-internal/browser-utils@10.23.0": + version "10.23.0" + resolved "https://registry.yarnpkg.com/@sentry-internal/browser-utils/-/browser-utils-10.23.0.tgz#738a07ed99168cdf69d0cdb5a152289ed049de81" + integrity sha512-FUak8FH51TnGrx2i31tgqun0VsbDCVQS7dxWnUZHdi+0hpnFoq9+wBHY+qrOQjaInZSz3crIifYv3z7SEzD0Jg== + dependencies: + "@sentry/core" "10.23.0" + +"@sentry-internal/feedback@10.23.0": + version "10.23.0" + resolved "https://registry.yarnpkg.com/@sentry-internal/feedback/-/feedback-10.23.0.tgz#4b9ade29f1d96309eea83cc513c4a73e3992c4d7" + integrity sha512-+HWC9VTPICsFX/lIPoBU9GxTaJZVXJcukP+qGxj+j/8q/Dy1w22JHDWcJbZiaW4kWWlz7VbA0KVKS3grD+e9aA== + dependencies: + "@sentry/core" "10.23.0" + "@sentry-internal/node-cpu-profiler@^2.2.0": version "2.2.0" resolved "https://registry.yarnpkg.com/@sentry-internal/node-cpu-profiler/-/node-cpu-profiler-2.2.0.tgz#0640d4aebb4d36031658ccff83dc22b76f437ede" @@ -6959,6 +6973,22 @@ detect-libc "^2.0.4" node-abi "^3.73.0" +"@sentry-internal/replay-canvas@10.23.0": + version "10.23.0" + resolved "https://registry.yarnpkg.com/@sentry-internal/replay-canvas/-/replay-canvas-10.23.0.tgz#236916fb9d40637d8c9f86c52b2b1619b1170854" + integrity sha512-GLNY8JPcMI6xhQ5FHiYO/W/3flrwZMt4CI/E3jDRNujYWbCrca60MRke6k7Zm1qi9rZ1FuhVWZ6BAFc4vwXnSg== + dependencies: + "@sentry-internal/replay" "10.23.0" + "@sentry/core" "10.23.0" + +"@sentry-internal/replay@10.23.0": + version "10.23.0" + resolved "https://registry.yarnpkg.com/@sentry-internal/replay/-/replay-10.23.0.tgz#7a6075e2c2e1d0a371764d7c2e5dad578bb7b1fe" + integrity sha512-5yPD7jVO2JY8+JEHXep0Bf/ugp4rmxv5BkHIcSAHQsKSPhziFks2x+KP+6M8hhbF1WydqAaDYlGjrkL2yspHqA== + dependencies: + "@sentry-internal/browser-utils" "10.23.0" + "@sentry/core" "10.23.0" + "@sentry-internal/rrdom@2.34.0": version "2.34.0" resolved "https://registry.yarnpkg.com/@sentry-internal/rrdom/-/rrdom-2.34.0.tgz#fccc9fe211c3995d4200abafbe8d75b671961ee9" @@ -7032,6 +7062,17 @@ resolved "https://registry.yarnpkg.com/@sentry/babel-plugin-component-annotate/-/babel-plugin-component-annotate-4.3.0.tgz#c5b6cbb986952596d3ad233540a90a1fd18bad80" integrity sha512-OuxqBprXRyhe8Pkfyz/4yHQJc5c3lm+TmYWSSx8u48g5yKewSQDOxkiLU5pAk3WnbLPy8XwU/PN+2BG0YFU9Nw== +"@sentry/browser@10.23.0": + version "10.23.0" + resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-10.23.0.tgz#aa85f9c21c9a6c80b8952ee15307997fb34edbb3" + integrity sha512-9hViLfYONxRJykOhJQ3ZHQ758t1wQIsxEC7mTsydbDm+m12LgbBtXbfgcypWHlom5Yvb+wg6W+31bpdGnATglw== + dependencies: + "@sentry-internal/browser-utils" "10.23.0" + "@sentry-internal/feedback" "10.23.0" + "@sentry-internal/replay" "10.23.0" + "@sentry-internal/replay-canvas" "10.23.0" + "@sentry/core" "10.23.0" + "@sentry/bundler-plugin-core@4.3.0", "@sentry/bundler-plugin-core@^4.3.0": version "4.3.0" resolved "https://registry.yarnpkg.com/@sentry/bundler-plugin-core/-/bundler-plugin-core-4.3.0.tgz#cf302522a3e5b8a3bf727635d0c6a7bece981460" @@ -7106,6 +7147,11 @@ "@sentry/cli-win32-i686" "2.56.0" "@sentry/cli-win32-x64" "2.56.0" +"@sentry/core@10.23.0": + version "10.23.0" + resolved "https://registry.yarnpkg.com/@sentry/core/-/core-10.23.0.tgz#7d4eb4d2c7b9ecc88872975a916f44e0b9fec78a" + integrity sha512-4aZwu6VnSHWDplY5eFORcVymhfvS/P6BRfK81TPnG/ReELaeoykKjDwR+wC4lO7S0307Vib9JGpszjsEZw245g== + "@sentry/rollup-plugin@^4.3.0": version "4.3.0" resolved "https://registry.yarnpkg.com/@sentry/rollup-plugin/-/rollup-plugin-4.3.0.tgz#d23fe49e48fa68dafa2b0933a8efabcc964b1df9" From f1188ee3a19d48d58f15715c2cacc6b4906fd268 Mon Sep 17 00:00:00 2001 From: Onur Temizkan Date: Tue, 11 Nov 2025 10:33:29 +0000 Subject: [PATCH 4/4] Update lockfile --- yarn.lock | 46 ---------------------------------------------- 1 file changed, 46 deletions(-) diff --git a/yarn.lock b/yarn.lock index 934e3f2dc2af..99e434f5efff 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6943,20 +6943,6 @@ "@angular-devkit/schematics" "14.2.13" jsonc-parser "3.1.0" -"@sentry-internal/browser-utils@10.23.0": - version "10.23.0" - resolved "https://registry.yarnpkg.com/@sentry-internal/browser-utils/-/browser-utils-10.23.0.tgz#738a07ed99168cdf69d0cdb5a152289ed049de81" - integrity sha512-FUak8FH51TnGrx2i31tgqun0VsbDCVQS7dxWnUZHdi+0hpnFoq9+wBHY+qrOQjaInZSz3crIifYv3z7SEzD0Jg== - dependencies: - "@sentry/core" "10.23.0" - -"@sentry-internal/feedback@10.23.0": - version "10.23.0" - resolved "https://registry.yarnpkg.com/@sentry-internal/feedback/-/feedback-10.23.0.tgz#4b9ade29f1d96309eea83cc513c4a73e3992c4d7" - integrity sha512-+HWC9VTPICsFX/lIPoBU9GxTaJZVXJcukP+qGxj+j/8q/Dy1w22JHDWcJbZiaW4kWWlz7VbA0KVKS3grD+e9aA== - dependencies: - "@sentry/core" "10.23.0" - "@sentry-internal/node-cpu-profiler@^2.2.0": version "2.2.0" resolved "https://registry.yarnpkg.com/@sentry-internal/node-cpu-profiler/-/node-cpu-profiler-2.2.0.tgz#0640d4aebb4d36031658ccff83dc22b76f437ede" @@ -6973,22 +6959,6 @@ detect-libc "^2.0.4" node-abi "^3.73.0" -"@sentry-internal/replay-canvas@10.23.0": - version "10.23.0" - resolved "https://registry.yarnpkg.com/@sentry-internal/replay-canvas/-/replay-canvas-10.23.0.tgz#236916fb9d40637d8c9f86c52b2b1619b1170854" - integrity sha512-GLNY8JPcMI6xhQ5FHiYO/W/3flrwZMt4CI/E3jDRNujYWbCrca60MRke6k7Zm1qi9rZ1FuhVWZ6BAFc4vwXnSg== - dependencies: - "@sentry-internal/replay" "10.23.0" - "@sentry/core" "10.23.0" - -"@sentry-internal/replay@10.23.0": - version "10.23.0" - resolved "https://registry.yarnpkg.com/@sentry-internal/replay/-/replay-10.23.0.tgz#7a6075e2c2e1d0a371764d7c2e5dad578bb7b1fe" - integrity sha512-5yPD7jVO2JY8+JEHXep0Bf/ugp4rmxv5BkHIcSAHQsKSPhziFks2x+KP+6M8hhbF1WydqAaDYlGjrkL2yspHqA== - dependencies: - "@sentry-internal/browser-utils" "10.23.0" - "@sentry/core" "10.23.0" - "@sentry-internal/rrdom@2.34.0": version "2.34.0" resolved "https://registry.yarnpkg.com/@sentry-internal/rrdom/-/rrdom-2.34.0.tgz#fccc9fe211c3995d4200abafbe8d75b671961ee9" @@ -7062,17 +7032,6 @@ resolved "https://registry.yarnpkg.com/@sentry/babel-plugin-component-annotate/-/babel-plugin-component-annotate-4.3.0.tgz#c5b6cbb986952596d3ad233540a90a1fd18bad80" integrity sha512-OuxqBprXRyhe8Pkfyz/4yHQJc5c3lm+TmYWSSx8u48g5yKewSQDOxkiLU5pAk3WnbLPy8XwU/PN+2BG0YFU9Nw== -"@sentry/browser@10.23.0": - version "10.23.0" - resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-10.23.0.tgz#aa85f9c21c9a6c80b8952ee15307997fb34edbb3" - integrity sha512-9hViLfYONxRJykOhJQ3ZHQ758t1wQIsxEC7mTsydbDm+m12LgbBtXbfgcypWHlom5Yvb+wg6W+31bpdGnATglw== - dependencies: - "@sentry-internal/browser-utils" "10.23.0" - "@sentry-internal/feedback" "10.23.0" - "@sentry-internal/replay" "10.23.0" - "@sentry-internal/replay-canvas" "10.23.0" - "@sentry/core" "10.23.0" - "@sentry/bundler-plugin-core@4.3.0", "@sentry/bundler-plugin-core@^4.3.0": version "4.3.0" resolved "https://registry.yarnpkg.com/@sentry/bundler-plugin-core/-/bundler-plugin-core-4.3.0.tgz#cf302522a3e5b8a3bf727635d0c6a7bece981460" @@ -7147,11 +7106,6 @@ "@sentry/cli-win32-i686" "2.56.0" "@sentry/cli-win32-x64" "2.56.0" -"@sentry/core@10.23.0": - version "10.23.0" - resolved "https://registry.yarnpkg.com/@sentry/core/-/core-10.23.0.tgz#7d4eb4d2c7b9ecc88872975a916f44e0b9fec78a" - integrity sha512-4aZwu6VnSHWDplY5eFORcVymhfvS/P6BRfK81TPnG/ReELaeoykKjDwR+wC4lO7S0307Vib9JGpszjsEZw245g== - "@sentry/rollup-plugin@^4.3.0": version "4.3.0" resolved "https://registry.yarnpkg.com/@sentry/rollup-plugin/-/rollup-plugin-4.3.0.tgz#d23fe49e48fa68dafa2b0933a8efabcc964b1df9"