From ce959cdedf15f5990d2bd805a2ffbd4f31c838cb Mon Sep 17 00:00:00 2001 From: Luca Forstner Date: Fri, 12 Apr 2024 15:14:35 +0200 Subject: [PATCH] fix(nextjs): Fix `tunnelRoute` matching logic for hybrid cloud (#11576) --- packages/nextjs/src/config/withSentryConfig.ts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/packages/nextjs/src/config/withSentryConfig.ts b/packages/nextjs/src/config/withSentryConfig.ts index 0d68448f81ba..f9c815fe6efb 100644 --- a/packages/nextjs/src/config/withSentryConfig.ts +++ b/packages/nextjs/src/config/withSentryConfig.ts @@ -137,25 +137,28 @@ function setUpTunnelRewriteRules(userNextConfig: NextConfigObject, tunnelPath: s { type: 'query', key: 'r', // short for region - we keep it short so matching is harder for ad-blockers - value: '(?\\[a-z\\]{2})', + value: '(?[a-z]{2})', }, ], destination: 'https://o:orgid.ingest.:region.sentry.io/api/:projectid/envelope/?hsts=0', }; + // Order of these is important, they get applied first to last. + const newRewrites = [tunnelRouteRewriteWithRegion, tunnelRouteRewrite]; + if (typeof originalRewrites !== 'function') { - return [tunnelRouteRewriteWithRegion, tunnelRouteRewrite]; + return newRewrites; } // @ts-expect-error Expected 0 arguments but got 1 - this is from the future-proofing mentioned above, so we don't care about it const originalRewritesResult = await originalRewrites(...args); if (Array.isArray(originalRewritesResult)) { - return [tunnelRouteRewriteWithRegion, tunnelRouteRewrite, ...originalRewritesResult]; + return [...newRewrites, ...originalRewritesResult]; } else { return { ...originalRewritesResult, - beforeFiles: [tunnelRouteRewriteWithRegion, tunnelRouteRewrite, ...(originalRewritesResult.beforeFiles || [])], + beforeFiles: [...newRewrites, ...(originalRewritesResult.beforeFiles || [])], }; } };