@sentry/nextjs
Advanced tools
Comparing version
@@ -682,3 +682,5 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); | ||
_sentryRewritesTunnelPath: | ||
userSentryOptions.tunnelRoute !== undefined && userNextConfig.output !== 'export' | ||
userSentryOptions.tunnelRoute !== undefined && | ||
userNextConfig.output !== 'export' && | ||
typeof userSentryOptions.tunnelRoute === 'string' | ||
? `${userNextConfig.basePath ?? ''}${userSentryOptions.tunnelRoute}` | ||
@@ -685,0 +687,0 @@ : undefined, |
@@ -75,2 +75,11 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); | ||
/** | ||
* Generates a random tunnel route path that's less likely to be blocked by ad-blockers | ||
*/ | ||
function generateRandomTunnelRoute() { | ||
// Generate a random 8-character alphanumeric string | ||
const randomString = Math.random().toString(36).substring(2, 10); | ||
return `/${randomString}`; | ||
} | ||
// Modify the materialized object form of the user's next config by deleting the `sentry` property and wrapping the | ||
@@ -94,3 +103,10 @@ // `webpack` property | ||
} else { | ||
setUpTunnelRewriteRules(incomingUserNextConfigObject, userSentryOptions.tunnelRoute); | ||
const resolvedTunnelRoute = | ||
typeof userSentryOptions.tunnelRoute === 'boolean' | ||
? generateRandomTunnelRoute() | ||
: userSentryOptions.tunnelRoute; | ||
// Update the global options object to use the resolved value everywhere | ||
userSentryOptions.tunnelRoute = resolvedTunnelRoute; | ||
setUpTunnelRewriteRules(incomingUserNextConfigObject, resolvedTunnelRoute); | ||
} | ||
@@ -365,4 +381,7 @@ } | ||
const basePath = userNextConfig.basePath ?? ''; | ||
const rewritesTunnelPath = | ||
userSentryOptions.tunnelRoute !== undefined && userNextConfig.output !== 'export' | ||
userSentryOptions.tunnelRoute !== undefined && | ||
userNextConfig.output !== 'export' && | ||
typeof userSentryOptions.tunnelRoute === 'string' | ||
? `${basePath}${userSentryOptions.tunnelRoute}` | ||
@@ -435,3 +454,3 @@ : undefined; | ||
['instrumentation-client.ts'], | ||
['instrumentation-client.ts'], | ||
['instrumentation-client.js'], | ||
]; | ||
@@ -438,0 +457,0 @@ |
@@ -680,3 +680,5 @@ import { escapeStringForRegex, parseSemver, logger, loadModule } from '@sentry/core'; | ||
_sentryRewritesTunnelPath: | ||
userSentryOptions.tunnelRoute !== undefined && userNextConfig.output !== 'export' | ||
userSentryOptions.tunnelRoute !== undefined && | ||
userNextConfig.output !== 'export' && | ||
typeof userSentryOptions.tunnelRoute === 'string' | ||
? `${userNextConfig.basePath ?? ''}${userSentryOptions.tunnelRoute}` | ||
@@ -683,0 +685,0 @@ : undefined, |
@@ -73,2 +73,11 @@ import { isThenable, parseSemver } from '@sentry/core'; | ||
/** | ||
* Generates a random tunnel route path that's less likely to be blocked by ad-blockers | ||
*/ | ||
function generateRandomTunnelRoute() { | ||
// Generate a random 8-character alphanumeric string | ||
const randomString = Math.random().toString(36).substring(2, 10); | ||
return `/${randomString}`; | ||
} | ||
// Modify the materialized object form of the user's next config by deleting the `sentry` property and wrapping the | ||
@@ -92,3 +101,10 @@ // `webpack` property | ||
} else { | ||
setUpTunnelRewriteRules(incomingUserNextConfigObject, userSentryOptions.tunnelRoute); | ||
const resolvedTunnelRoute = | ||
typeof userSentryOptions.tunnelRoute === 'boolean' | ||
? generateRandomTunnelRoute() | ||
: userSentryOptions.tunnelRoute; | ||
// Update the global options object to use the resolved value everywhere | ||
userSentryOptions.tunnelRoute = resolvedTunnelRoute; | ||
setUpTunnelRewriteRules(incomingUserNextConfigObject, resolvedTunnelRoute); | ||
} | ||
@@ -363,4 +379,7 @@ } | ||
const basePath = userNextConfig.basePath ?? ''; | ||
const rewritesTunnelPath = | ||
userSentryOptions.tunnelRoute !== undefined && userNextConfig.output !== 'export' | ||
userSentryOptions.tunnelRoute !== undefined && | ||
userNextConfig.output !== 'export' && | ||
typeof userSentryOptions.tunnelRoute === 'string' | ||
? `${basePath}${userSentryOptions.tunnelRoute}` | ||
@@ -433,3 +452,3 @@ : undefined; | ||
['instrumentation-client.ts'], | ||
['instrumentation-client.ts'], | ||
['instrumentation-client.js'], | ||
]; | ||
@@ -436,0 +455,0 @@ |
@@ -1,1 +0,1 @@ | ||
{"type":"module","version":"9.30.0","sideEffects":false} | ||
{"type":"module","version":"9.31.0","sideEffects":false} |
@@ -360,5 +360,8 @@ import { GLOBAL_OBJ } from '@sentry/core'; | ||
* | ||
* - Pass `true` to auto-generate a random, ad-blocker-resistant route for each build | ||
* - Pass a string path (e.g., '/monitoring') to use a custom route | ||
* | ||
* NOTE: This feature only works with Next.js 11+ | ||
*/ | ||
tunnelRoute?: string; | ||
tunnelRoute?: string | boolean; | ||
/** | ||
@@ -365,0 +368,0 @@ * Tree shakes Sentry SDK logger statements from the bundle. |
@@ -360,5 +360,8 @@ import type { GLOBAL_OBJ } from '@sentry/core'; | ||
* | ||
* - Pass `true` to auto-generate a random, ad-blocker-resistant route for each build | ||
* - Pass a string path (e.g., '/monitoring') to use a custom route | ||
* | ||
* NOTE: This feature only works with Next.js 11+ | ||
*/ | ||
tunnelRoute?: string; | ||
tunnelRoute?: string | boolean; | ||
/** | ||
@@ -365,0 +368,0 @@ * Tree shakes Sentry SDK logger statements from the bundle. |
{ | ||
"name": "@sentry/nextjs", | ||
"version": "9.30.0", | ||
"version": "9.31.0", | ||
"description": "Official Sentry SDK for Next.js", | ||
@@ -82,9 +82,9 @@ "repository": "git://github.com/getsentry/sentry-javascript.git", | ||
"@rollup/plugin-commonjs": "28.0.1", | ||
"@sentry-internal/browser-utils": "9.30.0", | ||
"@sentry/core": "9.30.0", | ||
"@sentry/node": "9.30.0", | ||
"@sentry/opentelemetry": "9.30.0", | ||
"@sentry/react": "9.30.0", | ||
"@sentry/vercel-edge": "9.30.0", | ||
"@sentry/webpack-plugin": "3.5.0", | ||
"@sentry-internal/browser-utils": "9.31.0", | ||
"@sentry/core": "9.31.0", | ||
"@sentry/node": "9.31.0", | ||
"@sentry/opentelemetry": "9.31.0", | ||
"@sentry/react": "9.31.0", | ||
"@sentry/vercel-edge": "9.31.0", | ||
"@sentry/webpack-plugin": "^3.5.0", | ||
"chalk": "3.0.0", | ||
@@ -91,0 +91,0 @@ "resolve": "1.22.8", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
1344248
0.29%12643
0.33%+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
Updated
Updated
Updated
Updated
Updated