From 725700f667bbb74d79bc7c534370dc59f5e1f1fd Mon Sep 17 00:00:00 2001 From: Birk Skyum Date: Sat, 25 Oct 2025 17:43:42 +0200 Subject: [PATCH 1/4] test(solid-router): add sentry e2e --- .../sentry-integration/.gitignore | 11 ++ .../sentry-integration/index.html | 12 ++ .../sentry-integration/package.json | 31 +++++ .../sentry-integration/playwright.config.ts | 34 +++++ .../sentry-integration/postcss.config.mjs | 5 + .../sentry-integration/src/main.tsx | 92 ++++++++++++++ .../sentry-integration/src/styles.css | 21 ++++ .../sentry-integration/tests/app.spec.ts | 10 ++ .../sentry-integration/tsconfig.json | 15 +++ .../sentry-integration/vite.config.js | 8 ++ pnpm-lock.yaml | 119 ++++++++++++++++++ 11 files changed, 358 insertions(+) create mode 100644 e2e/solid-router/sentry-integration/.gitignore create mode 100644 e2e/solid-router/sentry-integration/index.html create mode 100644 e2e/solid-router/sentry-integration/package.json create mode 100644 e2e/solid-router/sentry-integration/playwright.config.ts create mode 100644 e2e/solid-router/sentry-integration/postcss.config.mjs create mode 100644 e2e/solid-router/sentry-integration/src/main.tsx create mode 100644 e2e/solid-router/sentry-integration/src/styles.css create mode 100644 e2e/solid-router/sentry-integration/tests/app.spec.ts create mode 100644 e2e/solid-router/sentry-integration/tsconfig.json create mode 100644 e2e/solid-router/sentry-integration/vite.config.js diff --git a/e2e/solid-router/sentry-integration/.gitignore b/e2e/solid-router/sentry-integration/.gitignore new file mode 100644 index 00000000000..218ef7614ba --- /dev/null +++ b/e2e/solid-router/sentry-integration/.gitignore @@ -0,0 +1,11 @@ +node_modules +.DS_Store +dist +dist-hash +dist-ssr +*.local + +/test-results/ +/playwright-report/ +/blob-report/ +/playwright/.cache/ \ No newline at end of file diff --git a/e2e/solid-router/sentry-integration/index.html b/e2e/solid-router/sentry-integration/index.html new file mode 100644 index 00000000000..9b6335c0ac1 --- /dev/null +++ b/e2e/solid-router/sentry-integration/index.html @@ -0,0 +1,12 @@ + + + + + + Vite App + + +
+ + + diff --git a/e2e/solid-router/sentry-integration/package.json b/e2e/solid-router/sentry-integration/package.json new file mode 100644 index 00000000000..36fd5c83108 --- /dev/null +++ b/e2e/solid-router/sentry-integration/package.json @@ -0,0 +1,31 @@ +{ + "name": "tanstack-solid-router-e2e-sentry-integration", + "private": true, + "type": "module", + "scripts": { + "dev": "vite --port 3000", + "dev:e2e": "vite", + "build": "vite build && tsc --noEmit", + "serve": "vite preview", + "start": "vite", + "test:e2e": "rm -rf port*.txt; playwright test --project=chromium" + }, + "dependencies": { + "@sentry/solid": "^10.22.0", + "@sentry/tracing": "^7.120.3", + "@sentry/vite-plugin": "^3.1.2", + "@tailwindcss/postcss": "^4.1.15", + "@tanstack/solid-router": "workspace:^", + "@tanstack/solid-router-devtools": "workspace:^", + "postcss": "^8.5.1", + "solid-js": "^1.9.9", + "redaxios": "^0.5.1", + "tailwindcss": "^4.1.15" + }, + "devDependencies": { + "@playwright/test": "^1.50.1", + "@tanstack/router-e2e-utils": "workspace:^", + "vite-plugin-solid": "^2.11.10", + "vite": "^7.1.7" + } +} diff --git a/e2e/solid-router/sentry-integration/playwright.config.ts b/e2e/solid-router/sentry-integration/playwright.config.ts new file mode 100644 index 00000000000..63c29e7505c --- /dev/null +++ b/e2e/solid-router/sentry-integration/playwright.config.ts @@ -0,0 +1,34 @@ +import { defineConfig, devices } from '@playwright/test' +import { getTestServerPort } from '@tanstack/router-e2e-utils' +import packageJson from './package.json' with { type: 'json' } + +const PORT = await getTestServerPort(packageJson.name) +const baseURL = `http://localhost:${PORT}` +/** + * See https://playwright.dev/docs/test-configuration. + */ +export default defineConfig({ + testDir: './tests', + workers: 1, + + reporter: [['line']], + + use: { + /* Base URL to use in actions like `await page.goto('/')`. */ + baseURL, + }, + + webServer: { + command: `VITE_SERVER_PORT=${PORT} pnpm build && VITE_SERVER_PORT=${PORT} pnpm serve --port ${PORT}`, + url: baseURL, + reuseExistingServer: !process.env.CI, + stdout: 'pipe', + }, + + projects: [ + { + name: 'chromium', + use: { ...devices['Desktop Chrome'] }, + }, + ], +}) diff --git a/e2e/solid-router/sentry-integration/postcss.config.mjs b/e2e/solid-router/sentry-integration/postcss.config.mjs new file mode 100644 index 00000000000..a7f73a2d1d7 --- /dev/null +++ b/e2e/solid-router/sentry-integration/postcss.config.mjs @@ -0,0 +1,5 @@ +export default { + plugins: { + '@tailwindcss/postcss': {}, + }, +} diff --git a/e2e/solid-router/sentry-integration/src/main.tsx b/e2e/solid-router/sentry-integration/src/main.tsx new file mode 100644 index 00000000000..a4d05ec73d4 --- /dev/null +++ b/e2e/solid-router/sentry-integration/src/main.tsx @@ -0,0 +1,92 @@ +import { render } from 'solid-js/web'; + +import { tanstackRouterBrowserTracingIntegration } from '@sentry/solid/tanstackrouter'; +import * as Sentry from '@sentry/solid'; + +import { + Link, + Outlet, + RouterProvider, + createRootRoute, + createRoute, + createRouter, +} from '@tanstack/solid-router' +import { TanStackRouterDevtools } from '@tanstack/solid-router-devtools' +import './styles.css' + +const rootRoute = createRootRoute({ + component: RootComponent, + notFoundComponent: () => { + return ( +
+

This is the notFoundComponent configured on root route

+ Start Over +
+ ) + }, +}) + +function RootComponent() { + return ( + <> +
+ + Home + +
+ + + + ) +} +const indexRoute = createRoute({ + getParentRoute: () => rootRoute, + path: '/', + component: IndexComponent, +}) + +function IndexComponent() { + return ( +
+

Welcome Home!

+
+ ) +} + +const routeTree = rootRoute.addChildren([indexRoute]) + +// Set up a Router instance +const router = createRouter({ + routeTree, + defaultPreload: 'intent', + defaultStaleTime: 5000, +}) + +// Register things for typesafety +declare module '@tanstack/solid-router' { + interface Register { + router: typeof router + } +} + +Sentry.init({ + dsn: 'https://examplePublicKey@o0.ingest.sentry.io/0', + integrations: [tanstackRouterBrowserTracingIntegration(router)], + transport: () => ({ + send: (): Promise => Promise.resolve(), + flush: () => Promise.resolve(true), + }), + tracesSampleRate: 0.2, + sendClientReports: false, +}) + +const rootElement = document.getElementById('app'); +if (rootElement) { + render(() => , rootElement); +} \ No newline at end of file diff --git a/e2e/solid-router/sentry-integration/src/styles.css b/e2e/solid-router/sentry-integration/src/styles.css new file mode 100644 index 00000000000..37a1064738a --- /dev/null +++ b/e2e/solid-router/sentry-integration/src/styles.css @@ -0,0 +1,21 @@ +@import 'tailwindcss'; + +@layer base { + *, + ::after, + ::before, + ::backdrop, + ::file-selector-button { + border-color: var(--color-gray-200, currentcolor); + } +} + +html { + color-scheme: light dark; +} +* { + @apply border-gray-200 dark:border-gray-800; +} +body { + @apply bg-gray-50 text-gray-950 dark:bg-gray-900 dark:text-gray-200; +} diff --git a/e2e/solid-router/sentry-integration/tests/app.spec.ts b/e2e/solid-router/sentry-integration/tests/app.spec.ts new file mode 100644 index 00000000000..1de2800c80a --- /dev/null +++ b/e2e/solid-router/sentry-integration/tests/app.spec.ts @@ -0,0 +1,10 @@ +import { expect } from '@playwright/test' +import { test } from '@tanstack/router-e2e-utils' + +test.beforeEach(async ({ page }) => { + await page.goto('/') +}) + +test('should load', async ({ page }) => { + await expect(page.getByRole('heading')).toContainText('Welcome Home!') +}) diff --git a/e2e/solid-router/sentry-integration/tsconfig.json b/e2e/solid-router/sentry-integration/tsconfig.json new file mode 100644 index 00000000000..e011e786b59 --- /dev/null +++ b/e2e/solid-router/sentry-integration/tsconfig.json @@ -0,0 +1,15 @@ +{ + "compilerOptions": { + "strict": true, + "esModuleInterop": true, + "jsx": "preserve", + "jsxImportSource": "solid-js", + "target": "ESNext", + "moduleResolution": "Bundler", + "module": "ESNext", + "resolveJsonModule": true, + "allowJs": true, + "skipLibCheck": true + }, + "exclude": ["node_modules", "dist"] +} diff --git a/e2e/solid-router/sentry-integration/vite.config.js b/e2e/solid-router/sentry-integration/vite.config.js new file mode 100644 index 00000000000..233553d9365 --- /dev/null +++ b/e2e/solid-router/sentry-integration/vite.config.js @@ -0,0 +1,8 @@ +import { defineConfig } from 'vite' +import solid from 'vite-plugin-solid' +import { sentryVitePlugin } from '@sentry/vite-plugin' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [solid(), sentryVitePlugin()], +}) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index facdcf5ef89..aab7cf4e7de 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2518,6 +2518,52 @@ importers: specifier: ^2.11.10 version: 2.11.10(@testing-library/jest-dom@6.6.3)(solid-js@1.9.9)(vite@7.1.7(@types/node@22.10.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.37.0)(tsx@4.20.3)(yaml@2.8.1)) + e2e/solid-router/sentry-integration: + dependencies: + '@sentry/solid': + specifier: ^10.22.0 + version: 10.22.0(@tanstack/solid-router@packages+solid-router)(solid-js@1.9.9) + '@sentry/tracing': + specifier: ^7.120.3 + version: 7.120.3 + '@sentry/vite-plugin': + specifier: ^3.1.2 + version: 3.1.2 + '@tailwindcss/postcss': + specifier: ^4.1.15 + version: 4.1.15 + '@tanstack/solid-router': + specifier: workspace:^ + version: link:../../../packages/solid-router + '@tanstack/solid-router-devtools': + specifier: workspace:^ + version: link:../../../packages/solid-router-devtools + postcss: + specifier: ^8.5.1 + version: 8.5.6 + redaxios: + specifier: ^0.5.1 + version: 0.5.1 + solid-js: + specifier: 1.9.9 + version: 1.9.9 + tailwindcss: + specifier: ^4.1.15 + version: 4.1.15 + devDependencies: + '@playwright/test': + specifier: ^1.52.0 + version: 1.52.0 + '@tanstack/router-e2e-utils': + specifier: workspace:^ + version: link:../../e2e-utils + vite: + specifier: ^7.1.7 + version: 7.1.7(@types/node@22.10.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.37.0)(tsx@4.20.3)(yaml@2.8.1) + vite-plugin-solid: + specifier: ^2.11.10 + version: 2.11.10(@testing-library/jest-dom@6.6.3)(solid-js@1.9.9)(vite@7.1.7(@types/node@22.10.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.37.0)(tsx@4.20.3)(yaml@2.8.1)) + e2e/solid-start/basic: dependencies: '@tanstack/solid-router': @@ -11771,18 +11817,34 @@ packages: '@rushstack/ts-command-line@4.22.3': resolution: {integrity: sha512-edMpWB3QhFFZ4KtSzS8WNjBgR4PXPPOVrOHMbb7kNpmQ1UFS9HdVtjCXg1H5fG+xYAbeE+TMPcVPUyX2p84STA==} + '@sentry-internal/browser-utils@10.22.0': + resolution: {integrity: sha512-BpJoLZEyJr7ORzkCrIjxRTnFWwO1mJNICVh3B9g5d9245niGT4OJvRozmLz89WgJkZFHWu84ls6Xfq5b/3tGFQ==} + engines: {node: '>=18'} + '@sentry-internal/browser-utils@8.54.0': resolution: {integrity: sha512-DKWCqb4YQosKn6aD45fhKyzhkdG7N6goGFDeyTaJFREJDFVDXiNDsYZu30nJ6BxMM7uQIaARhPAC5BXfoED3pQ==} engines: {node: '>=14.18'} + '@sentry-internal/feedback@10.22.0': + resolution: {integrity: sha512-zXySOin/gGHPV+yKaHqjN9YZ7psEJwzLn8PzCLeo+4REzF1eQwbYZIgOxJFD32z8s3nZiABSWFM/n1CvVfMEsQ==} + engines: {node: '>=18'} + '@sentry-internal/feedback@8.54.0': resolution: {integrity: sha512-nQqRacOXoElpE0L0ADxUUII0I3A94niqG9Z4Fmsw6057QvyrV/LvTiMQBop6r5qLjwMqK+T33iR4/NQI5RhsXQ==} engines: {node: '>=14.18'} + '@sentry-internal/replay-canvas@10.22.0': + resolution: {integrity: sha512-DE4JNUskJg+O+wFq42W5gAa/99aD5k7TfGOwABxvnzFv8vkKA7pqXwPbFFPzypdKIkln+df7RmbnDwQRNg6/lA==} + engines: {node: '>=18'} + '@sentry-internal/replay-canvas@8.54.0': resolution: {integrity: sha512-K/On3OAUBeq/TV2n+1EvObKC+WMV9npVXpVyJqCCyn8HYMm8FUGzuxeajzm0mlW4wDTPCQor6mK9/IgOquUzCw==} engines: {node: '>=14.18'} + '@sentry-internal/replay@10.22.0': + resolution: {integrity: sha512-JNE4kHAQSG4/V+J+Zog3vKBWgOe9H33ol/MEU1RuLM/4I+uLf4mTetwnS9ilpnnW/Z/gQYfA+R3CiMrZtqTivw==} + engines: {node: '>=18'} + '@sentry-internal/replay@8.54.0': resolution: {integrity: sha512-8xuBe06IaYIGJec53wUC12tY2q4z2Z0RPS2s1sLtbA00EvK1YDGuXp96IDD+HB9mnDMrQ/jW5f97g9TvPsPQUg==} engines: {node: '>=14.18'} @@ -11795,6 +11857,10 @@ packages: resolution: {integrity: sha512-5h2WXRJ6swKA0TwxHHryC8M2QyOfS9QhTAL6ElPfkEYe9HhJieXmxsDpyspbqAa26ccnCUcmwE5vL34jAjt4sQ==} engines: {node: '>= 14'} + '@sentry/browser@10.22.0': + resolution: {integrity: sha512-wD2XqN+yeBpQFfdPo6+wlKDMyyuDctVGzZWE4qTPntICKQuwMdAfeq5Ma89ad0Dw+bzG9UijGeyuJQlswF87Mw==} + engines: {node: '>=18'} + '@sentry/browser@8.54.0': resolution: {integrity: sha512-BgUtvxFHin0fS0CmJVKTLXXZcke0Av729IVfi+2fJ4COX8HO7/HAP02RKaSQGmL2HmvWYTfNZ7529AnUtrM4Rg==} engines: {node: '>=14.18'} @@ -11849,6 +11915,10 @@ packages: engines: {node: '>= 10'} hasBin: true + '@sentry/core@10.22.0': + resolution: {integrity: sha512-V1oeHbrOKzxadsCmgtPku3v3Emo/Bpb3VSuKmlLrQefiHX98MWtjJ3XDGfduzD5/dCdh0r/OOLwjcmrO/PZ2aw==} + engines: {node: '>=18'} + '@sentry/core@7.120.3': resolution: {integrity: sha512-vyy11fCGpkGK3qI5DSXOjgIboBZTriw0YDx/0KyX5CjIjDDNgp5AGgpgFkfZyiYiaU2Ww3iFuKo4wHmBusz1uA==} engines: {node: '>=8'} @@ -11863,6 +11933,19 @@ packages: peerDependencies: react: ^19.0.0 + '@sentry/solid@10.22.0': + resolution: {integrity: sha512-jaDChYQkrCq/SkE6IrpLZ9yul2vDaEwcD6oZYBmVbpT4lag2w5d6Y0kYuD5BUs5MEOblEZYhaebBw/pDKxsYlw==} + engines: {node: '>=18'} + peerDependencies: + '@solidjs/router': ^0.13.4 + '@tanstack/solid-router': ^1.132.27 + solid-js: 1.9.9 + peerDependenciesMeta: + '@solidjs/router': + optional: true + '@tanstack/solid-router': + optional: true + '@sentry/tracing@7.120.3': resolution: {integrity: sha512-B7bqyYFgHuab1Pn7w5KXsZP/nfFo4VDBDdSXDSWYk5+TYJ3IDruO3eJFhOrircfsz4YwazWm9kbeZhkpsHDyHg==} engines: {node: '>=8'} @@ -22446,19 +22529,37 @@ snapshots: transitivePeerDependencies: - '@types/node' + '@sentry-internal/browser-utils@10.22.0': + dependencies: + '@sentry/core': 10.22.0 + '@sentry-internal/browser-utils@8.54.0': dependencies: '@sentry/core': 8.54.0 + '@sentry-internal/feedback@10.22.0': + dependencies: + '@sentry/core': 10.22.0 + '@sentry-internal/feedback@8.54.0': dependencies: '@sentry/core': 8.54.0 + '@sentry-internal/replay-canvas@10.22.0': + dependencies: + '@sentry-internal/replay': 10.22.0 + '@sentry/core': 10.22.0 + '@sentry-internal/replay-canvas@8.54.0': dependencies: '@sentry-internal/replay': 8.54.0 '@sentry/core': 8.54.0 + '@sentry-internal/replay@10.22.0': + dependencies: + '@sentry-internal/browser-utils': 10.22.0 + '@sentry/core': 10.22.0 + '@sentry-internal/replay@8.54.0': dependencies: '@sentry-internal/browser-utils': 8.54.0 @@ -22472,6 +22573,14 @@ snapshots: '@sentry/babel-plugin-component-annotate@3.1.2': {} + '@sentry/browser@10.22.0': + dependencies: + '@sentry-internal/browser-utils': 10.22.0 + '@sentry-internal/feedback': 10.22.0 + '@sentry-internal/replay': 10.22.0 + '@sentry-internal/replay-canvas': 10.22.0 + '@sentry/core': 10.22.0 + '@sentry/browser@8.54.0': dependencies: '@sentry-internal/browser-utils': 8.54.0 @@ -22534,6 +22643,8 @@ snapshots: - encoding - supports-color + '@sentry/core@10.22.0': {} + '@sentry/core@7.120.3': dependencies: '@sentry/types': 7.120.3 @@ -22548,6 +22659,14 @@ snapshots: hoist-non-react-statics: 3.3.2 react: 19.0.0 + '@sentry/solid@10.22.0(@tanstack/solid-router@packages+solid-router)(solid-js@1.9.9)': + dependencies: + '@sentry/browser': 10.22.0 + '@sentry/core': 10.22.0 + solid-js: 1.9.9 + optionalDependencies: + '@tanstack/solid-router': link:packages/solid-router + '@sentry/tracing@7.120.3': dependencies: '@sentry-internal/tracing': 7.120.3 From c0b38a73ca53443a457be9cf8c2d8650abc33d52 Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Sat, 25 Oct 2025 15:45:22 +0000 Subject: [PATCH 2/4] ci: apply automated fixes --- e2e/solid-router/sentry-integration/src/main.tsx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/e2e/solid-router/sentry-integration/src/main.tsx b/e2e/solid-router/sentry-integration/src/main.tsx index a4d05ec73d4..2ed8e476a62 100644 --- a/e2e/solid-router/sentry-integration/src/main.tsx +++ b/e2e/solid-router/sentry-integration/src/main.tsx @@ -1,7 +1,7 @@ -import { render } from 'solid-js/web'; +import { render } from 'solid-js/web' -import { tanstackRouterBrowserTracingIntegration } from '@sentry/solid/tanstackrouter'; -import * as Sentry from '@sentry/solid'; +import { tanstackRouterBrowserTracingIntegration } from '@sentry/solid/tanstackrouter' +import * as Sentry from '@sentry/solid' import { Link, @@ -86,7 +86,7 @@ Sentry.init({ sendClientReports: false, }) -const rootElement = document.getElementById('app'); +const rootElement = document.getElementById('app') if (rootElement) { - render(() => , rootElement); -} \ No newline at end of file + render(() => , rootElement) +} From 0def1c8f71070b9d9e8670e36e42b97984e36e36 Mon Sep 17 00:00:00 2001 From: Birk Skyum Date: Sat, 25 Oct 2025 17:46:01 +0200 Subject: [PATCH 3/4] add link from Sentry observability page --- docs/start/framework/solid/guide/observability.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/start/framework/solid/guide/observability.md b/docs/start/framework/solid/guide/observability.md index 73edf5929a5..5999bd56d45 100644 --- a/docs/start/framework/solid/guide/observability.md +++ b/docs/start/framework/solid/guide/observability.md @@ -47,7 +47,7 @@ const serverFn = createServerFn().handler(async () => { }) ``` -[Get started with Sentry →](https://sentry.io/signup?utm_source=tanstack) +[Get started with Sentry →](https://sentry.io/signup?utm_source=tanstack) | [View integration example →](https://github.com/TanStack/router/tree/main/e2e/solid-router/sentry-integration) ## Built-in Observability Patterns From 82a581359e36b1cc44bd75008c25478059ad671d Mon Sep 17 00:00:00 2001 From: Birk Skyum Date: Sat, 25 Oct 2025 17:49:49 +0200 Subject: [PATCH 4/4] update react sentry integration package --- .../sentry-integration/package.json | 2 +- pnpm-lock.yaml | 68 +++---------------- 2 files changed, 9 insertions(+), 61 deletions(-) diff --git a/e2e/react-router/sentry-integration/package.json b/e2e/react-router/sentry-integration/package.json index 1d40447b465..e43177ab65b 100644 --- a/e2e/react-router/sentry-integration/package.json +++ b/e2e/react-router/sentry-integration/package.json @@ -11,7 +11,7 @@ "test:e2e": "rm -rf port*.txt; playwright test --project=chromium" }, "dependencies": { - "@sentry/react": "^8.54.0", + "@sentry/react": "^10.22.0", "@sentry/tracing": "^7.120.3", "@sentry/vite-plugin": "^3.1.2", "@tailwindcss/postcss": "^4.1.15", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index aab7cf4e7de..3bd4067aba8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -930,8 +930,8 @@ importers: e2e/react-router/sentry-integration: dependencies: '@sentry/react': - specifier: ^8.54.0 - version: 8.54.0(react@19.0.0) + specifier: ^10.22.0 + version: 10.22.0(react@19.0.0) '@sentry/tracing': specifier: ^7.120.3 version: 7.120.3 @@ -11821,34 +11821,18 @@ packages: resolution: {integrity: sha512-BpJoLZEyJr7ORzkCrIjxRTnFWwO1mJNICVh3B9g5d9245niGT4OJvRozmLz89WgJkZFHWu84ls6Xfq5b/3tGFQ==} engines: {node: '>=18'} - '@sentry-internal/browser-utils@8.54.0': - resolution: {integrity: sha512-DKWCqb4YQosKn6aD45fhKyzhkdG7N6goGFDeyTaJFREJDFVDXiNDsYZu30nJ6BxMM7uQIaARhPAC5BXfoED3pQ==} - engines: {node: '>=14.18'} - '@sentry-internal/feedback@10.22.0': resolution: {integrity: sha512-zXySOin/gGHPV+yKaHqjN9YZ7psEJwzLn8PzCLeo+4REzF1eQwbYZIgOxJFD32z8s3nZiABSWFM/n1CvVfMEsQ==} engines: {node: '>=18'} - '@sentry-internal/feedback@8.54.0': - resolution: {integrity: sha512-nQqRacOXoElpE0L0ADxUUII0I3A94niqG9Z4Fmsw6057QvyrV/LvTiMQBop6r5qLjwMqK+T33iR4/NQI5RhsXQ==} - engines: {node: '>=14.18'} - '@sentry-internal/replay-canvas@10.22.0': resolution: {integrity: sha512-DE4JNUskJg+O+wFq42W5gAa/99aD5k7TfGOwABxvnzFv8vkKA7pqXwPbFFPzypdKIkln+df7RmbnDwQRNg6/lA==} engines: {node: '>=18'} - '@sentry-internal/replay-canvas@8.54.0': - resolution: {integrity: sha512-K/On3OAUBeq/TV2n+1EvObKC+WMV9npVXpVyJqCCyn8HYMm8FUGzuxeajzm0mlW4wDTPCQor6mK9/IgOquUzCw==} - engines: {node: '>=14.18'} - '@sentry-internal/replay@10.22.0': resolution: {integrity: sha512-JNE4kHAQSG4/V+J+Zog3vKBWgOe9H33ol/MEU1RuLM/4I+uLf4mTetwnS9ilpnnW/Z/gQYfA+R3CiMrZtqTivw==} engines: {node: '>=18'} - '@sentry-internal/replay@8.54.0': - resolution: {integrity: sha512-8xuBe06IaYIGJec53wUC12tY2q4z2Z0RPS2s1sLtbA00EvK1YDGuXp96IDD+HB9mnDMrQ/jW5f97g9TvPsPQUg==} - engines: {node: '>=14.18'} - '@sentry-internal/tracing@7.120.3': resolution: {integrity: sha512-Ausx+Jw1pAMbIBHStoQ6ZqDZR60PsCByvHdw/jdH9AqPrNE9xlBSf9EwcycvmrzwyKspSLaB52grlje2cRIUMg==} engines: {node: '>=8'} @@ -11861,10 +11845,6 @@ packages: resolution: {integrity: sha512-wD2XqN+yeBpQFfdPo6+wlKDMyyuDctVGzZWE4qTPntICKQuwMdAfeq5Ma89ad0Dw+bzG9UijGeyuJQlswF87Mw==} engines: {node: '>=18'} - '@sentry/browser@8.54.0': - resolution: {integrity: sha512-BgUtvxFHin0fS0CmJVKTLXXZcke0Av729IVfi+2fJ4COX8HO7/HAP02RKaSQGmL2HmvWYTfNZ7529AnUtrM4Rg==} - engines: {node: '>=14.18'} - '@sentry/bundler-plugin-core@3.1.2': resolution: {integrity: sha512-lqOCvmOPzKiQenIMhmm5/mwCntwFy0dPZbVD28Dnr3MXpT1rIBg1HXjfnqQWFlMRbL9haSsWiY/TQyR/6b30YA==} engines: {node: '>= 14'} @@ -11923,13 +11903,9 @@ packages: resolution: {integrity: sha512-vyy11fCGpkGK3qI5DSXOjgIboBZTriw0YDx/0KyX5CjIjDDNgp5AGgpgFkfZyiYiaU2Ww3iFuKo4wHmBusz1uA==} engines: {node: '>=8'} - '@sentry/core@8.54.0': - resolution: {integrity: sha512-03bWf+D1j28unOocY/5FDB6bUHtYlm6m6ollVejhg45ZmK9iPjdtxNWbrLsjT1WRym0Tjzowu+A3p+eebYEv0Q==} - engines: {node: '>=14.18'} - - '@sentry/react@8.54.0': - resolution: {integrity: sha512-42T/fp8snYN19Fy/2P0Mwotu4gcdy+1Lx+uYCNcYP1o7wNGigJ7qb27sW7W34GyCCHjoCCfQgeOqDQsyY8LC9w==} - engines: {node: '>=14.18'} + '@sentry/react@10.22.0': + resolution: {integrity: sha512-XByOjtW30LMNibmCPJF5LNYFmETNOUmWByECADox8GYV4BEX18WGXl4K1fpPDTSk+y4vUCHbltHa4GkyTRwG8Q==} + engines: {node: '>=18'} peerDependencies: react: ^19.0.0 @@ -22533,38 +22509,20 @@ snapshots: dependencies: '@sentry/core': 10.22.0 - '@sentry-internal/browser-utils@8.54.0': - dependencies: - '@sentry/core': 8.54.0 - '@sentry-internal/feedback@10.22.0': dependencies: '@sentry/core': 10.22.0 - '@sentry-internal/feedback@8.54.0': - dependencies: - '@sentry/core': 8.54.0 - '@sentry-internal/replay-canvas@10.22.0': dependencies: '@sentry-internal/replay': 10.22.0 '@sentry/core': 10.22.0 - '@sentry-internal/replay-canvas@8.54.0': - dependencies: - '@sentry-internal/replay': 8.54.0 - '@sentry/core': 8.54.0 - '@sentry-internal/replay@10.22.0': dependencies: '@sentry-internal/browser-utils': 10.22.0 '@sentry/core': 10.22.0 - '@sentry-internal/replay@8.54.0': - dependencies: - '@sentry-internal/browser-utils': 8.54.0 - '@sentry/core': 8.54.0 - '@sentry-internal/tracing@7.120.3': dependencies: '@sentry/core': 7.120.3 @@ -22581,14 +22539,6 @@ snapshots: '@sentry-internal/replay-canvas': 10.22.0 '@sentry/core': 10.22.0 - '@sentry/browser@8.54.0': - dependencies: - '@sentry-internal/browser-utils': 8.54.0 - '@sentry-internal/feedback': 8.54.0 - '@sentry-internal/replay': 8.54.0 - '@sentry-internal/replay-canvas': 8.54.0 - '@sentry/core': 8.54.0 - '@sentry/bundler-plugin-core@3.1.2': dependencies: '@babel/core': 7.27.7 @@ -22650,12 +22600,10 @@ snapshots: '@sentry/types': 7.120.3 '@sentry/utils': 7.120.3 - '@sentry/core@8.54.0': {} - - '@sentry/react@8.54.0(react@19.0.0)': + '@sentry/react@10.22.0(react@19.0.0)': dependencies: - '@sentry/browser': 8.54.0 - '@sentry/core': 8.54.0 + '@sentry/browser': 10.22.0 + '@sentry/core': 10.22.0 hoist-non-react-statics: 3.3.2 react: 19.0.0