diff --git a/package.json b/package.json index 794e2534..38fce621 100644 --- a/package.json +++ b/package.json @@ -43,8 +43,7 @@ "@react-three/drei": "^10.7.7", "@react-three/fiber": "^9.5.0", "@sentry/node": "^10.33.0", - "@sentry/tanstackstart-react": "^10.32.1", - "@sentry/vite-plugin": "^4.6.1", + "@sentry/tanstackstart-react": "^10.35.0", "@stackblitz/sdk": "^1.11.0", "@tailwindcss/typography": "^0.5.13", "@tailwindcss/vite": "^4.1.11", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 31537195..6493b48f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -67,11 +67,8 @@ importers: specifier: ^10.33.0 version: 10.33.0 '@sentry/tanstackstart-react': - specifier: ^10.32.1 - version: 10.32.1(react@19.2.0) - '@sentry/vite-plugin': - specifier: ^4.6.1 - version: 4.6.1 + specifier: ^10.35.0 + version: 10.35.0(react@19.2.0) '@stackblitz/sdk': specifier: ^1.11.0 version: 1.11.0 @@ -2993,32 +2990,32 @@ packages: '@sec-ant/readable-stream@0.4.1': resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} - '@sentry-internal/browser-utils@10.32.1': - resolution: {integrity: sha512-sjLLep1es3rTkbtAdTtdpc/a6g7v7bK5YJiZJsUigoJ4NTiFeMI5uIDCxbH/tjJ1q23YE1LzVn7T96I+qBRjHA==} + '@sentry-internal/browser-utils@10.35.0': + resolution: {integrity: sha512-YjVbyqpJu6E6U/BCdOgIUuUQPUDZ7XdFiBYXtGy59xqQB1qSqNfei163hkfnXxIN90csDubxWNrnit+W5Wo/uQ==} engines: {node: '>=18'} - '@sentry-internal/feedback@10.32.1': - resolution: {integrity: sha512-O24G8jxbfBY1RE/v2qFikPJISVMOrd/zk8FKyl+oUVYdOxU2Ucjk2cR3EQruBFlc7irnL6rT3GPfRZ/kBgLkmQ==} + '@sentry-internal/feedback@10.35.0': + resolution: {integrity: sha512-h/rtGcgvGtZIY9njxnzHHMzMwFYAYG/UwDaNtpf8jN63JD6cTQDQ8wNWp0arD9gmUr96YjER55BNRRF8oSg6Fw==} engines: {node: '>=18'} - '@sentry-internal/replay-canvas@10.32.1': - resolution: {integrity: sha512-/XGTzWNWVc+B691fIVekV2KeoHFEDA5KftrLFAhEAW7uWOwk/xy3aQX4TYM0LcPm2PBKvoumlAD+Sd/aXk63oA==} + '@sentry-internal/replay-canvas@10.35.0': + resolution: {integrity: sha512-efaz8ETDLd0rSpoqX4m8fMnq7abzUJAdqeChz9Jdq6OgvHeBgM6tTfqWSes6sFnSCvFUVkdFngZQfgmBxWGuEA==} engines: {node: '>=18'} - '@sentry-internal/replay@10.32.1': - resolution: {integrity: sha512-KKmLUgIaLRM0VjrMA1ByQTawZyRDYSkG2evvEOVpEtR9F0sumidAQdi7UY71QEKE1RYe/Jcp/3WoaqsMh8tbnQ==} + '@sentry-internal/replay@10.35.0': + resolution: {integrity: sha512-9hGP3lD+7o/4ovGTdwv3T9K2t9LxSlR/CAcRQeFApW2c0AGsjTdcglOxsgxYei4YmaISx0CBJ/YqJfQVYxaxWw==} engines: {node: '>=18'} - '@sentry/babel-plugin-component-annotate@4.6.1': - resolution: {integrity: sha512-aSIk0vgBqv7PhX6/Eov+vlI4puCE0bRXzUG5HdCsHBpAfeMkI8Hva6kSOusnzKqs8bf04hU7s3Sf0XxGTj/1AA==} + '@sentry/babel-plugin-component-annotate@4.7.0': + resolution: {integrity: sha512-MkyajDiO17/GaHHFgOmh05ZtOwF5hmm9KRjVgn9PXHIdpz+TFM5mkp1dABmR6Y75TyNU98Z1aOwPOgyaR5etJw==} engines: {node: '>= 14'} - '@sentry/browser@10.32.1': - resolution: {integrity: sha512-NPNCXTZ05ZGTFyJdKNqjykpFm+urem0ebosILQiw3C4BxNVNGH4vfYZexyl6prRhmg91oB6GjVNiVDuJiap1gg==} + '@sentry/browser@10.35.0': + resolution: {integrity: sha512-3wCdmKOTqg6Fvmb9HLHzCVIpSSYCPhXFQ95VaYsb1rESIgL7BMS9nyqhecPcPR3oJppU2a/TqZk4YH3nFrPXmA==} engines: {node: '>=18'} - '@sentry/bundler-plugin-core@4.6.1': - resolution: {integrity: sha512-WPeRbnMXm927m4Kr69NTArPfI+p5/34FHftdCRI3LFPMyhZDzz6J3wLy4hzaVUgmMf10eLzmq2HGEMvpQmdynA==} + '@sentry/bundler-plugin-core@4.7.0': + resolution: {integrity: sha512-gFdEtiup/7qYhN3vp1v2f0WL9AG9OorWLtIpfSBYbWjtzklVNg1sizvNyZ8nEiwtnb25LzvvCUbOP1SyP6IodQ==} engines: {node: '>= 14'} '@sentry/cli-darwin@2.58.4': @@ -3073,16 +3070,16 @@ packages: engines: {node: '>= 10'} hasBin: true - '@sentry/core@10.32.1': - resolution: {integrity: sha512-PH2ldpSJlhqsMj2vCTyU0BI2Fx1oIDhm7Izo5xFALvjVCS0gmlqHt1udu6YlKn8BtpGH6bGzssvv5APrk+OdPQ==} - engines: {node: '>=18'} - '@sentry/core@10.33.0': resolution: {integrity: sha512-ehH1VSUclIHZKEZVdv+klofsFIh8FFzqA6AAV23RtLepptzA8wqQzUGraEuSN25sYcNmYJ0jti5U0Ys+WZv5Dw==} engines: {node: '>=18'} - '@sentry/node-core@10.32.1': - resolution: {integrity: sha512-w56rxdBanBKc832zuwnE+zNzUQ19fPxfHEtOhK8JGPu3aSwQYcIxwz9z52lOx3HN7k/8Fj5694qlT3x/PokhRw==} + '@sentry/core@10.35.0': + resolution: {integrity: sha512-lEK1WFqt6oHtMq5dDLVE/FDzHDGs1PlYT5cZH4aBirYtJVyUiTf0NknKFob4a2zTywczlq7SbLv6Ba8UMU9dYg==} + engines: {node: '>=18'} + + '@sentry/node-core@10.33.0': + resolution: {integrity: sha512-73J1yLMdtjyadtcsrZ5VBYIyWrJ5gHh5dRsJlfm6XMD3ZFHQQ9Fwd6mwnSY+X+VLJaNq7RtoNECij6LLqE4R0g==} engines: {node: '>=18'} peerDependencies: '@opentelemetry/api': ^1.9.0 @@ -3093,8 +3090,8 @@ packages: '@opentelemetry/sdk-trace-base': ^1.30.1 || ^2.1.0 || ^2.2.0 '@opentelemetry/semantic-conventions': ^1.37.0 - '@sentry/node-core@10.33.0': - resolution: {integrity: sha512-73J1yLMdtjyadtcsrZ5VBYIyWrJ5gHh5dRsJlfm6XMD3ZFHQQ9Fwd6mwnSY+X+VLJaNq7RtoNECij6LLqE4R0g==} + '@sentry/node-core@10.35.0': + resolution: {integrity: sha512-8DQc13zYJtIWlz7U0MkxGOGMQmNsJxb6ZuojLnitUvGPMyc5GFT/JKOIv0rqHNfmr63n60tplfmD7lKzfXC3mQ==} engines: {node: '>=18'} peerDependencies: '@opentelemetry/api': ^1.9.0 @@ -3105,16 +3102,16 @@ packages: '@opentelemetry/sdk-trace-base': ^1.30.1 || ^2.1.0 || ^2.2.0 '@opentelemetry/semantic-conventions': ^1.37.0 - '@sentry/node@10.32.1': - resolution: {integrity: sha512-oxlybzt8QW0lx/QaEj1DcvZDRXkgouewFelu/10dyUwv5So3YvipfvWInda+yMLmn25OggbloDQ0gyScA2jU3g==} - engines: {node: '>=18'} - '@sentry/node@10.33.0': resolution: {integrity: sha512-HZ7U0igIXs8nHSeh0YAe9C3eE/fjkHOprctQHwoYpRrZelsKO8NsvZU0K/1+knFr36vFj7jtt1QlF/UjCQZD+Q==} engines: {node: '>=18'} - '@sentry/opentelemetry@10.32.1': - resolution: {integrity: sha512-YLssSz5Y+qPvufrh2cDaTXDoXU8aceOhB+YTjT8/DLF6SOj7Tzen52aAcjNaifawaxEsLCC8O+B+A2iA+BllvA==} + '@sentry/node@10.35.0': + resolution: {integrity: sha512-r6lEOEQo28grF4DtoD4H6IeK5tb90IZBN68osbIfA7QGphpgoKd54YBA5AEC5f3OXBVlbcK6dQ95bol5b98qhg==} + engines: {node: '>=18'} + + '@sentry/opentelemetry@10.33.0': + resolution: {integrity: sha512-v/6mAYLxtfcKLCw6Ktk46T6fWEQBVWB9Ah81axr8OvuIomK71jkv1zb0v7D8ot0ESesJ3JF6I/aKhfxpyLInSQ==} engines: {node: '>=18'} peerDependencies: '@opentelemetry/api': ^1.9.0 @@ -3123,8 +3120,8 @@ packages: '@opentelemetry/sdk-trace-base': ^1.30.1 || ^2.1.0 || ^2.2.0 '@opentelemetry/semantic-conventions': ^1.37.0 - '@sentry/opentelemetry@10.33.0': - resolution: {integrity: sha512-v/6mAYLxtfcKLCw6Ktk46T6fWEQBVWB9Ah81axr8OvuIomK71jkv1zb0v7D8ot0ESesJ3JF6I/aKhfxpyLInSQ==} + '@sentry/opentelemetry@10.35.0': + resolution: {integrity: sha512-6RolzEXh9o9gorhyYZ+y0IbExdZKWb0N7DY+ltOTt9SxyQ02evUgxDqLi1pOW2pvXahEghjrGPAKVBv7uccLNw==} engines: {node: '>=18'} peerDependencies: '@opentelemetry/api': ^1.9.0 @@ -3133,18 +3130,18 @@ packages: '@opentelemetry/sdk-trace-base': ^1.30.1 || ^2.1.0 || ^2.2.0 '@opentelemetry/semantic-conventions': ^1.37.0 - '@sentry/react@10.32.1': - resolution: {integrity: sha512-/tX0HeACbAmVP57x8txTrGk/U3fa9pDBaoAtlOrnPv5VS/aC5SGkehXWeTGSAa+ahlOWwp3IF8ILVXRiOoG/Vg==} + '@sentry/react@10.35.0': + resolution: {integrity: sha512-RJsJVZRVe646euf1HLlhbjeAHn2ABd54Y7Zpy4XUJaL4FdKqaaFmqeHKi6IxXFf6IE35onk/kn8CfR7xWBhe2g==} engines: {node: '>=18'} peerDependencies: react: ^16.14.0 || 17.x || 18.x || 19.x - '@sentry/tanstackstart-react@10.32.1': - resolution: {integrity: sha512-zbzMcF4X4NLbGQwJ1/nO4vSVY+m42sMhPUEgJDDr6Yo+4oaT5ejs0+K7t6S08LyDbLKUBPQuFtsroPCpfKPxlQ==} + '@sentry/tanstackstart-react@10.35.0': + resolution: {integrity: sha512-MOw2XIiOQaLRcXR3BI2xRLS9A6KV9Kl7UJOcGAdmuAadiY5I07EroKWCJWhOHluG/y3ZMXyplJYacaxcuErL/w==} engines: {node: '>=18'} - '@sentry/vite-plugin@4.6.1': - resolution: {integrity: sha512-Qvys1y3o8/bfL3ikrHnJS9zxdjt0z3POshdBl3967UcflrTqBmnGNkcVk53SlmtJWIfh85fgmrLvGYwZ2YiqNg==} + '@sentry/vite-plugin@4.7.0': + resolution: {integrity: sha512-eQXDghOQLsYwnHutJo8TCzhG4gp0KLNq3h96iqFMhsbjnNnfYeCX1lIw1pJEh/az3cDwSyPI/KGkvf8hr0dZmQ==} engines: {node: '>= 14'} '@shikijs/core@1.10.3': @@ -5675,9 +5672,6 @@ packages: resolution: {integrity: sha512-RqGs4wavGYJWE07t35JQccByczmNUXQT0E12ZYV1VKYu5UiAU9lsos/yBAcf840+zrUQQxgVduCR5/B8nNtibg==} hasBin: true - hoist-non-react-statics@3.3.2: - resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} - hono-rate-limiter@0.4.2: resolution: {integrity: sha512-AAtFqgADyrmbDijcRTT/HJfwqfvhalya2Zo+MgfdrMPas3zSMD8SU03cv+ZsYwRU1swv7zgVt0shwN059yzhjw==} peerDependencies: @@ -11422,38 +11416,38 @@ snapshots: '@sec-ant/readable-stream@0.4.1': {} - '@sentry-internal/browser-utils@10.32.1': + '@sentry-internal/browser-utils@10.35.0': dependencies: - '@sentry/core': 10.32.1 + '@sentry/core': 10.35.0 - '@sentry-internal/feedback@10.32.1': + '@sentry-internal/feedback@10.35.0': dependencies: - '@sentry/core': 10.32.1 + '@sentry/core': 10.35.0 - '@sentry-internal/replay-canvas@10.32.1': + '@sentry-internal/replay-canvas@10.35.0': dependencies: - '@sentry-internal/replay': 10.32.1 - '@sentry/core': 10.32.1 + '@sentry-internal/replay': 10.35.0 + '@sentry/core': 10.35.0 - '@sentry-internal/replay@10.32.1': + '@sentry-internal/replay@10.35.0': dependencies: - '@sentry-internal/browser-utils': 10.32.1 - '@sentry/core': 10.32.1 + '@sentry-internal/browser-utils': 10.35.0 + '@sentry/core': 10.35.0 - '@sentry/babel-plugin-component-annotate@4.6.1': {} + '@sentry/babel-plugin-component-annotate@4.7.0': {} - '@sentry/browser@10.32.1': + '@sentry/browser@10.35.0': dependencies: - '@sentry-internal/browser-utils': 10.32.1 - '@sentry-internal/feedback': 10.32.1 - '@sentry-internal/replay': 10.32.1 - '@sentry-internal/replay-canvas': 10.32.1 - '@sentry/core': 10.32.1 + '@sentry-internal/browser-utils': 10.35.0 + '@sentry-internal/feedback': 10.35.0 + '@sentry-internal/replay': 10.35.0 + '@sentry-internal/replay-canvas': 10.35.0 + '@sentry/core': 10.35.0 - '@sentry/bundler-plugin-core@4.6.1': + '@sentry/bundler-plugin-core@4.7.0': dependencies: '@babel/core': 7.28.4 - '@sentry/babel-plugin-component-annotate': 4.6.1 + '@sentry/babel-plugin-component-annotate': 4.7.0 '@sentry/cli': 2.58.4 dotenv: 16.6.1 find-up: 5.0.0 @@ -11508,11 +11502,11 @@ snapshots: - encoding - supports-color - '@sentry/core@10.32.1': {} - '@sentry/core@10.33.0': {} - '@sentry/node-core@10.32.1(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.208.0(@opentelemetry/api@1.9.0))(@opentelemetry/resources@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.38.0)': + '@sentry/core@10.35.0': {} + + '@sentry/node-core@10.33.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.208.0(@opentelemetry/api@1.9.0))(@opentelemetry/resources@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.38.0)': dependencies: '@apm-js-collab/tracing-hooks': 0.3.1 '@opentelemetry/api': 1.9.0 @@ -11522,13 +11516,13 @@ snapshots: '@opentelemetry/resources': 2.3.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 2.3.0(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.38.0 - '@sentry/core': 10.32.1 - '@sentry/opentelemetry': 10.32.1(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.38.0) + '@sentry/core': 10.33.0 + '@sentry/opentelemetry': 10.33.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.38.0) import-in-the-middle: 2.0.1 transitivePeerDependencies: - supports-color - '@sentry/node-core@10.33.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.208.0(@opentelemetry/api@1.9.0))(@opentelemetry/resources@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.38.0)': + '@sentry/node-core@10.35.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.208.0(@opentelemetry/api@1.9.0))(@opentelemetry/resources@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.38.0)': dependencies: '@apm-js-collab/tracing-hooks': 0.3.1 '@opentelemetry/api': 1.9.0 @@ -11538,13 +11532,13 @@ snapshots: '@opentelemetry/resources': 2.3.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 2.3.0(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.38.0 - '@sentry/core': 10.33.0 - '@sentry/opentelemetry': 10.33.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.38.0) + '@sentry/core': 10.35.0 + '@sentry/opentelemetry': 10.35.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.38.0) import-in-the-middle: 2.0.1 transitivePeerDependencies: - supports-color - '@sentry/node@10.32.1': + '@sentry/node@10.33.0': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/context-async-hooks': 2.3.0(@opentelemetry/api@1.9.0) @@ -11576,15 +11570,15 @@ snapshots: '@opentelemetry/sdk-trace-base': 2.3.0(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.38.0 '@prisma/instrumentation': 6.19.0(@opentelemetry/api@1.9.0) - '@sentry/core': 10.32.1 - '@sentry/node-core': 10.32.1(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.208.0(@opentelemetry/api@1.9.0))(@opentelemetry/resources@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.38.0) - '@sentry/opentelemetry': 10.32.1(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.38.0) + '@sentry/core': 10.33.0 + '@sentry/node-core': 10.33.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.208.0(@opentelemetry/api@1.9.0))(@opentelemetry/resources@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.38.0) + '@sentry/opentelemetry': 10.33.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.38.0) import-in-the-middle: 2.0.1 minimatch: 9.0.5 transitivePeerDependencies: - supports-color - '@sentry/node@10.33.0': + '@sentry/node@10.35.0': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/context-async-hooks': 2.3.0(@opentelemetry/api@1.9.0) @@ -11616,54 +11610,55 @@ snapshots: '@opentelemetry/sdk-trace-base': 2.3.0(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.38.0 '@prisma/instrumentation': 6.19.0(@opentelemetry/api@1.9.0) - '@sentry/core': 10.33.0 - '@sentry/node-core': 10.33.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.208.0(@opentelemetry/api@1.9.0))(@opentelemetry/resources@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.38.0) - '@sentry/opentelemetry': 10.33.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.38.0) + '@sentry/core': 10.35.0 + '@sentry/node-core': 10.35.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.208.0(@opentelemetry/api@1.9.0))(@opentelemetry/resources@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.38.0) + '@sentry/opentelemetry': 10.35.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.38.0) import-in-the-middle: 2.0.1 minimatch: 9.0.5 transitivePeerDependencies: - supports-color - '@sentry/opentelemetry@10.32.1(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.38.0)': + '@sentry/opentelemetry@10.33.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.38.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/context-async-hooks': 2.3.0(@opentelemetry/api@1.9.0) '@opentelemetry/core': 2.3.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 2.3.0(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.38.0 - '@sentry/core': 10.32.1 + '@sentry/core': 10.33.0 - '@sentry/opentelemetry@10.33.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.38.0)': + '@sentry/opentelemetry@10.35.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.38.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/context-async-hooks': 2.3.0(@opentelemetry/api@1.9.0) '@opentelemetry/core': 2.3.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 2.3.0(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.38.0 - '@sentry/core': 10.33.0 + '@sentry/core': 10.35.0 - '@sentry/react@10.32.1(react@19.2.0)': + '@sentry/react@10.35.0(react@19.2.0)': dependencies: - '@sentry/browser': 10.32.1 - '@sentry/core': 10.32.1 - hoist-non-react-statics: 3.3.2 + '@sentry/browser': 10.35.0 + '@sentry/core': 10.35.0 react: 19.2.0 - '@sentry/tanstackstart-react@10.32.1(react@19.2.0)': + '@sentry/tanstackstart-react@10.35.0(react@19.2.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/semantic-conventions': 1.38.0 - '@sentry-internal/browser-utils': 10.32.1 - '@sentry/core': 10.32.1 - '@sentry/node': 10.32.1 - '@sentry/react': 10.32.1(react@19.2.0) + '@sentry-internal/browser-utils': 10.35.0 + '@sentry/core': 10.35.0 + '@sentry/node': 10.35.0 + '@sentry/react': 10.35.0(react@19.2.0) + '@sentry/vite-plugin': 4.7.0 transitivePeerDependencies: + - encoding - react - supports-color - '@sentry/vite-plugin@4.6.1': + '@sentry/vite-plugin@4.7.0': dependencies: - '@sentry/bundler-plugin-core': 4.6.1 + '@sentry/bundler-plugin-core': 4.7.0 unplugin: 1.0.1 transitivePeerDependencies: - encoding @@ -14904,10 +14899,6 @@ snapshots: mkdirp: 0.3.0 nopt: 1.0.10 - hoist-non-react-statics@3.3.2: - dependencies: - react-is: 16.13.1 - hono-rate-limiter@0.4.2(hono@4.11.3): dependencies: hono: 4.11.3 diff --git a/src/server.ts b/src/server.ts index 9accf04d..ab85be9f 100644 --- a/src/server.ts +++ b/src/server.ts @@ -1,41 +1,44 @@ import './instrument.server.mjs' +import { wrapFetchWithSentry } from '@sentry/tanstackstart-react' import handler, { createServerEntry } from '@tanstack/react-start/server-entry' -export default createServerEntry({ - async fetch(request) { - const url = new URL(request.url) +export default createServerEntry( + wrapFetchWithSentry({ + async fetch(request) { + const url = new URL(request.url) - // Redirect to markdown version if AI/LLM requests text/markdown for doc pages - const acceptHeader = request.headers.get('Accept') || '' - if ( - acceptHeader.includes('text/markdown') && - url.pathname.includes('/docs/') && - !url.pathname.endsWith('.md') - ) { - return new Response(null, { - status: 303, - headers: { - Location: `${url.pathname}.md`, - }, - }) - } + // Redirect to markdown version if AI/LLM requests text/markdown for doc pages + const acceptHeader = request.headers.get('Accept') || '' + if ( + acceptHeader.includes('text/markdown') && + url.pathname.includes('/docs/') && + !url.pathname.endsWith('.md') + ) { + return new Response(null, { + status: 303, + headers: { + Location: `${url.pathname}.md`, + }, + }) + } - const response = await handler.fetch(request) + const response = await handler.fetch(request) - // Add COOP/COEP headers for /builder route (required for WebContainer) - if (url.pathname === '/builder' || url.pathname.startsWith('/builder/')) { - const newHeaders = new Headers(response.headers) - newHeaders.set('Cross-Origin-Opener-Policy', 'same-origin') - newHeaders.set('Cross-Origin-Embedder-Policy', 'require-corp') + // Add COOP/COEP headers for /builder route (required for WebContainer) + if (url.pathname === '/builder' || url.pathname.startsWith('/builder/')) { + const newHeaders = new Headers(response.headers) + newHeaders.set('Cross-Origin-Opener-Policy', 'same-origin') + newHeaders.set('Cross-Origin-Embedder-Policy', 'require-corp') - return new Response(response.body, { - status: response.status, - statusText: response.statusText, - headers: newHeaders, - }) - } + return new Response(response.body, { + status: response.status, + statusText: response.statusText, + headers: newHeaders, + }) + } - return response - }, -}) + return response + }, + }), +) diff --git a/vite.config.ts b/vite.config.ts index b0a7f0e5..660ddb7a 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,4 +1,4 @@ -import { sentryVitePlugin } from '@sentry/vite-plugin' +import { sentryTanstackStart } from '@sentry/tanstackstart-react' import { defineConfig } from 'vite' import contentCollections from '@content-collections/vite' import tsConfigPaths from 'vite-tsconfig-paths' @@ -102,7 +102,7 @@ export default defineConfig({ : []), viteReact(), - sentryVitePlugin({ + sentryTanstackStart({ authToken: process.env.SENTRY_AUTH_TOKEN, org: 'tanstack', project: 'tanstack-com',