Files
klz-cables.com/.pnpm-store/v10/files/ad/9481573625ed1323332193df666b5aeb1fd1becae6feb2be8daab498945a3f4d4e10ed5c287f41abc50e169898315386855eb582c50c4e43b0a1f11c186e58
Marc Mintel 5397309103
Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 20s
Build & Deploy / 🧪 QA (push) Failing after 34s
Build & Deploy / 🏗️ Build (push) Has started running
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🧪 Smoke Test (push) Has been cancelled
Build & Deploy / ⚡ Lighthouse (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
fix(products): fix breadcrumbs and product filtering (backport from main)
2026-02-24 16:04:21 +01:00

1 line
6.3 KiB
Plaintext

{"version":3,"file":"wrapMiddlewareWithSentry.js","sources":["../../../src/common/wrapMiddlewareWithSentry.ts"],"sourcesContent":["import type { TransactionSource } from '@sentry/core';\nimport {\n captureException,\n getActiveSpan,\n getCurrentScope,\n getRootSpan,\n handleCallbackErrors,\n SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n SEMANTIC_ATTRIBUTE_SENTRY_SOURCE,\n setCapturedScopesOnSpan,\n startSpan,\n winterCGRequestToRequestData,\n withIsolationScope,\n} from '@sentry/core';\nimport { flushSafelyWithTimeout, waitUntil } from '../common/utils/responseEnd';\nimport type { EdgeRouteHandler } from '../edge/types';\n\n/**\n * Wraps Next.js middleware with Sentry error and performance instrumentation.\n *\n * @param middleware The middleware handler.\n * @returns a wrapped middleware handler.\n */\nexport function wrapMiddlewareWithSentry<H extends EdgeRouteHandler>(\n middleware: H,\n): (...params: Parameters<H>) => Promise<ReturnType<H>> {\n return new Proxy(middleware, {\n apply: async (wrappingTarget, thisArg, args: Parameters<H>) => {\n const tunnelRoute =\n '_sentryRewritesTunnelPath' in globalThis\n ? (globalThis as Record<string, unknown>)._sentryRewritesTunnelPath\n : undefined;\n\n if (tunnelRoute && typeof tunnelRoute === 'string') {\n const req: unknown = args[0];\n // Check if the current request matches the tunnel route\n if (req instanceof Request) {\n const url = new URL(req.url);\n const isTunnelRequest = url.pathname.startsWith(tunnelRoute);\n\n if (isTunnelRequest) {\n // Create a simple response that mimics NextResponse.next() so we don't need to import internals here\n // which breaks next 13 apps\n // https://github.com/vercel/next.js/blob/c12c9c1f78ad384270902f0890dc4cd341408105/packages/next/src/server/web/spec-extension/response.ts#L146\n return new Response(null, {\n status: 200,\n headers: {\n 'x-middleware-next': '1',\n },\n }) as ReturnType<H>;\n }\n }\n }\n // TODO: We still should add central isolation scope creation for when our build-time instrumentation does not work anymore with turbopack.\n return withIsolationScope(isolationScope => {\n const req: unknown = args[0];\n const currentScope = getCurrentScope();\n\n let spanName: string;\n let spanSource: TransactionSource;\n\n if (req instanceof Request) {\n isolationScope.setSDKProcessingMetadata({\n normalizedRequest: winterCGRequestToRequestData(req),\n });\n spanName = `middleware ${req.method}`;\n spanSource = 'url';\n } else {\n spanName = 'middleware';\n spanSource = 'component';\n }\n\n currentScope.setTransactionName(spanName);\n\n const activeSpan = getActiveSpan();\n\n if (activeSpan) {\n // If there is an active span, it likely means that the automatic Next.js OTEL instrumentation worked and we can\n // rely on that for parameterization.\n spanName = 'middleware';\n spanSource = 'component';\n\n const rootSpan = getRootSpan(activeSpan);\n if (rootSpan) {\n setCapturedScopesOnSpan(rootSpan, currentScope, isolationScope);\n }\n }\n\n return startSpan(\n {\n name: spanName,\n op: 'http.server.middleware',\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: spanSource,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.function.nextjs.wrap_middleware',\n },\n },\n () => {\n return handleCallbackErrors(\n () => wrappingTarget.apply(thisArg, args),\n error => {\n captureException(error, {\n mechanism: {\n type: 'auto.function.nextjs.wrap_middleware',\n handled: false,\n },\n });\n },\n () => {\n waitUntil(flushSafelyWithTimeout());\n },\n );\n },\n );\n });\n },\n });\n}\n"],"names":[],"mappings":"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"}