{"version":3,"sources":["../../../../../src/server/route-modules/pages/pages-handler.ts"],"sourcesContent":["import type { IncomingMessage, ServerResponse } from 'node:http'\nimport type { ParsedUrlQuery } from 'node:querystring'\nimport { RouteKind } from '../../route-kind'\nimport { BaseServerSpan } from '../../lib/trace/constants'\nimport { getTracer, SpanKind, type Span } from '../../lib/trace/tracer'\nimport { formatUrl } from '../../../shared/lib/router/utils/format-url'\nimport {\n  addRequestMeta,\n  getRequestMeta,\n  setRequestMeta,\n  type RequestMeta,\n} from '../../request-meta'\nimport { interopDefault } from '../../app-render/interop-default'\nimport { getRevalidateReason } from '../../instrumentation/utils'\nimport { normalizeDataPath } from '../../../shared/lib/page-path/normalize-data-path'\nimport {\n  CachedRouteKind,\n  type CachedPageValue,\n  type CachedRedirectValue,\n  type ResponseCacheEntry,\n  type ResponseGenerator,\n} from '../../response-cache'\n\nimport {\n  getCacheControlHeader,\n  type CacheControl,\n} from '../../lib/cache-control'\nimport { normalizeRepeatedSlashes } from '../../../shared/lib/utils'\nimport { getRedirectStatus } from '../../../lib/redirect-status'\nimport {\n  CACHE_ONE_YEAR_SECONDS,\n  HTML_CONTENT_TYPE_HEADER,\n  JSON_CONTENT_TYPE_HEADER,\n  NEXT_NAV_DEPLOYMENT_ID_HEADER,\n} from '../../../lib/constants'\nimport path from 'path'\nimport { sendRenderResult } from '../../send-payload'\nimport RenderResult from '../../render-result'\nimport { toResponseCacheEntry } from '../../response-cache/utils'\nimport { NoFallbackError } from '../../../shared/lib/no-fallback-error.external'\nimport { RedirectStatusCode } from '../../../client/components/redirect-status-code'\nimport { isBot } from '../../../shared/lib/router/utils/is-bot'\nimport { addPathPrefix } from '../../../shared/lib/router/utils/add-path-prefix'\nimport { removeTrailingSlash } from '../../../shared/lib/router/utils/remove-trailing-slash'\nimport type { PagesRouteModule } from './module.compiled'\nimport type {\n  GetServerSideProps,\n  GetStaticPaths,\n  GetStaticProps,\n} from '../../../types'\n\nexport const getHandler = ({\n  srcPage: originalSrcPage,\n  config,\n  userland,\n  routeModule,\n  isFallbackError,\n  getStaticPaths,\n  getStaticProps,\n  getServerSideProps,\n}: {\n  srcPage: string\n  config: Record<string, any> | undefined\n  userland: any\n  isFallbackError?: boolean\n  routeModule: PagesRouteModule\n  getStaticProps?: GetStaticProps\n  getStaticPaths?: GetStaticPaths\n  getServerSideProps?: GetServerSideProps\n}) => {\n  return async function handler(\n    req: IncomingMessage,\n    res: ServerResponse,\n    ctx: {\n      waitUntil?: (prom: Promise<void>) => void\n      requestMeta?: RequestMeta\n    }\n  ) {\n    if (ctx.requestMeta) {\n      setRequestMeta(req, ctx.requestMeta)\n    }\n    if (routeModule.isDev) {\n      addRequestMeta(\n        req,\n        'devRequestTimingInternalsEnd',\n        process.hrtime.bigint()\n      )\n    }\n    let srcPage = originalSrcPage\n    // turbopack doesn't normalize `/index` in the page name\n    // so we need to to process dynamic routes properly\n    // TODO: fix turbopack providing differing value from webpack\n    if (process.env.TURBOPACK) {\n      srcPage = srcPage.replace(/\\/index$/, '') || '/'\n    } else if (srcPage === '/index') {\n      // we always normalize /index specifically\n      srcPage = '/'\n    }\n    const multiZoneDraftMode = process.env\n      .__NEXT_MULTI_ZONE_DRAFT_MODE as any as boolean\n\n    const prepareResult = await routeModule.prepare(req, res, {\n      srcPage,\n      multiZoneDraftMode,\n    })\n\n    if (!prepareResult) {\n      res.statusCode = 400\n      res.end('Bad Request')\n      ctx.waitUntil?.(Promise.resolve())\n      return\n    }\n\n    const isMinimalMode = Boolean(getRequestMeta(req, 'minimalMode'))\n\n    const render404 = async () => {\n      // TODO: should route-module itself handle rendering the 404\n      if (routerServerContext?.render404) {\n        await routerServerContext.render404(req, res, parsedUrl, false)\n      } else {\n        res.end('This page could not be found')\n      }\n    }\n\n    const {\n      buildId,\n      query,\n      params,\n      parsedUrl,\n      originalQuery,\n      originalPathname,\n      buildManifest,\n      fallbackBuildManifest,\n      nextFontManifest,\n      serverFilesManifest,\n      reactLoadableManifest,\n      prerenderManifest,\n      isDraftMode,\n      isOnDemandRevalidate,\n      revalidateOnlyGenerated,\n      locale,\n      locales,\n      defaultLocale,\n      routerServerContext,\n      nextConfig,\n      resolvedPathname,\n      encodedResolvedPathname,\n      deploymentId,\n      clientAssetToken,\n    } = prepareResult\n\n    const isExperimentalCompile =\n      serverFilesManifest?.config?.experimental?.isExperimentalCompile\n\n    const hasServerProps = Boolean(getServerSideProps)\n    const hasStaticProps = Boolean(getStaticProps)\n    const hasStaticPaths = Boolean(getStaticPaths)\n    const hasGetInitialProps = Boolean(\n      (userland.default || userland).getInitialProps\n    )\n    let cacheKey: null | string = null\n    let isIsrFallback = false\n    let isNextDataRequest =\n      prepareResult.isNextDataRequest && (hasStaticProps || hasServerProps)\n\n    const is404Page = srcPage === '/404'\n    const is500Page = srcPage === '/500'\n    const isErrorPage = srcPage === '/_error'\n\n    if (!routeModule.isDev && !isDraftMode && hasStaticProps) {\n      cacheKey = `${locale ? `/${locale}` : ''}${\n        (srcPage === '/' || resolvedPathname === '/') && locale\n          ? ''\n          : resolvedPathname\n      }`\n\n      if (is404Page || is500Page || isErrorPage) {\n        cacheKey = `${locale ? `/${locale}` : ''}${srcPage}`\n      }\n\n      // ensure /index and / is normalized to one key\n      cacheKey = cacheKey === '/index' ? '/' : cacheKey\n    }\n\n    if (hasStaticPaths && !isDraftMode) {\n      const decodedPathname = removeTrailingSlash(\n        locale\n          ? addPathPrefix(resolvedPathname, `/${locale}`)\n          : resolvedPathname\n      )\n      const isPrerendered =\n        Boolean(prerenderManifest.routes[decodedPathname]) ||\n        prerenderManifest.notFoundRoutes.includes(decodedPathname)\n\n      const prerenderInfo = prerenderManifest.dynamicRoutes[srcPage]\n\n      if (prerenderInfo) {\n        if (prerenderInfo.fallback === false && !isPrerendered) {\n          if (nextConfig.adapterPath) {\n            return await render404()\n          }\n          throw new NoFallbackError()\n        }\n\n        if (\n          typeof prerenderInfo.fallback === 'string' &&\n          !isPrerendered &&\n          !isNextDataRequest\n        ) {\n          isIsrFallback = true\n        }\n      }\n    }\n\n    // When serving a bot request, we want to serve a blocking render and not\n    // the prerendered page. This ensures that the correct content is served\n    // to the bot in the head.\n    if (\n      (isIsrFallback && isBot(req.headers['user-agent'] || '')) ||\n      isMinimalMode\n    ) {\n      isIsrFallback = false\n    }\n\n    const tracer = getTracer()\n    const activeSpan = tracer.getActiveScopeSpan()\n\n    try {\n      const method = req.method || 'GET'\n\n      const resolvedUrl = formatUrl({\n        pathname: nextConfig.trailingSlash\n          ? `${encodedResolvedPathname}${!encodedResolvedPathname.endsWith('/') && parsedUrl.pathname?.endsWith('/') ? '/' : ''}`\n          : removeTrailingSlash(encodedResolvedPathname || '/'),\n        // make sure to only add query values from original URL\n        query: hasStaticProps ? {} : originalQuery,\n      })\n\n      let parentSpan: Span | undefined\n      const handleResponse = async (span?: Span) => {\n        const responseGenerator: ResponseGenerator = async ({\n          previousCacheEntry,\n        }) => {\n          const doRender = async () => {\n            try {\n              return await routeModule\n                .render(req, res, {\n                  query:\n                    hasStaticProps && !isExperimentalCompile\n                      ? ({\n                          ...params,\n                        } as ParsedUrlQuery)\n                      : {\n                          ...query,\n                          ...params,\n                        },\n                  params,\n                  page: srcPage,\n                  renderContext: {\n                    isDraftMode,\n                    isFallback: isIsrFallback,\n                    developmentNotFoundSourcePage: getRequestMeta(\n                      req,\n                      'developmentNotFoundSourcePage'\n                    ),\n                  },\n                  sharedContext: {\n                    buildId,\n                    customServer:\n                      Boolean(routerServerContext?.isCustomServer) || undefined,\n                    deploymentId,\n                    clientAssetToken,\n                  },\n                  renderOpts: {\n                    params,\n                    routeModule,\n                    page: srcPage,\n                    pageConfig: config || {},\n                    Component: interopDefault(userland),\n                    ComponentMod: userland,\n                    getStaticProps,\n                    getStaticPaths,\n                    getServerSideProps,\n                    supportsDynamicResponse: !hasStaticProps,\n                    buildManifest: isFallbackError\n                      ? fallbackBuildManifest\n                      : buildManifest,\n                    nextFontManifest,\n                    reactLoadableManifest,\n\n                    assetPrefix: nextConfig.assetPrefix,\n                    previewProps: prerenderManifest.preview,\n                    images: nextConfig.images as any,\n                    nextConfigOutput: nextConfig.output,\n                    optimizeCss: Boolean(nextConfig.experimental.optimizeCss),\n                    nextScriptWorkers: Boolean(\n                      nextConfig.experimental.nextScriptWorkers\n                    ),\n                    domainLocales: nextConfig.i18n?.domains,\n                    crossOrigin: nextConfig.crossOrigin,\n\n                    multiZoneDraftMode,\n                    basePath: nextConfig.basePath,\n                    disableOptimizedLoading:\n                      nextConfig.experimental.disableOptimizedLoading,\n                    largePageDataBytes:\n                      nextConfig.experimental.largePageDataBytes,\n\n                    isExperimentalCompile,\n\n                    experimental: {\n                      clientTraceMetadata:\n                        nextConfig.experimental.clientTraceMetadata ||\n                        ([] as any),\n                    },\n\n                    locale,\n                    locales,\n                    defaultLocale,\n                    setIsrStatus: routerServerContext?.setIsrStatus,\n\n                    isNextDataRequest:\n                      isNextDataRequest && (hasServerProps || hasStaticProps),\n\n                    resolvedUrl,\n                    // For getServerSideProps and getInitialProps we need to ensure we use the original URL\n                    // and not the resolved URL to prevent a hydration mismatch on\n                    // asPath\n                    resolvedAsPath:\n                      hasServerProps || hasGetInitialProps\n                        ? formatUrl({\n                            // we use the original URL pathname less the _next/data prefix if\n                            // present\n                            pathname: isNextDataRequest\n                              ? normalizeDataPath(originalPathname)\n                              : originalPathname,\n                            query: originalQuery,\n                          })\n                        : resolvedUrl,\n\n                    isOnDemandRevalidate,\n\n                    ErrorDebug: getRequestMeta(req, 'PagesErrorDebug'),\n                    err: getRequestMeta(req, 'invokeError'),\n\n                    // needed for experimental.optimizeCss feature\n                    distDir: path.join(\n                      /* turbopackIgnore: true */\n                      process.cwd(),\n                      routeModule.relativeProjectDir,\n                      routeModule.distDir\n                    ),\n                  },\n                })\n                .then((renderResult): ResponseCacheEntry => {\n                  const { metadata } = renderResult\n\n                  let cacheControl: CacheControl | undefined =\n                    metadata.cacheControl\n\n                  if ('isNotFound' in metadata && metadata.isNotFound) {\n                    return {\n                      value: null,\n                      cacheControl,\n                    } satisfies ResponseCacheEntry\n                  }\n\n                  // Handle `isRedirect`.\n                  if (metadata.isRedirect) {\n                    return {\n                      value: {\n                        kind: CachedRouteKind.REDIRECT,\n                        props: metadata.pageData ?? metadata.flightData,\n                      } satisfies CachedRedirectValue,\n                      cacheControl,\n                    } satisfies ResponseCacheEntry\n                  }\n\n                  return {\n                    value: {\n                      kind: CachedRouteKind.PAGES,\n                      html: renderResult,\n                      pageData: renderResult.metadata.pageData,\n                      headers: renderResult.metadata.headers,\n                      status: renderResult.metadata.statusCode,\n                    },\n                    cacheControl,\n                  }\n                })\n                .finally(() => {\n                  if (!span) return\n\n                  span.setAttributes({\n                    'http.status_code': res.statusCode,\n                    'next.rsc': false,\n                  })\n\n                  const rootSpanAttributes = tracer.getRootSpanAttributes()\n                  // We were unable to get attributes, probably OTEL is not enabled\n                  if (!rootSpanAttributes) {\n                    return\n                  }\n\n                  if (\n                    rootSpanAttributes.get('next.span_type') !==\n                    BaseServerSpan.handleRequest\n                  ) {\n                    console.warn(\n                      `Unexpected root span type '${rootSpanAttributes.get(\n                        'next.span_type'\n                      )}'. Please report this Next.js issue https://github.com/vercel/next.js`\n                    )\n                    return\n                  }\n\n                  const route = rootSpanAttributes.get('next.route')\n                  if (route) {\n                    const name = `${method} ${route}`\n\n                    span.setAttributes({\n                      'next.route': route,\n                      'http.route': route,\n                      'next.span_name': name,\n                    })\n                    span.updateName(name)\n\n                    // Propagate http.route to the parent span if one exists\n                    // (e.g. a platform-created HTTP span in adapter\n                    // deployments).\n                    if (parentSpan && parentSpan !== span) {\n                      parentSpan.setAttribute('http.route', route)\n                      parentSpan.updateName(name)\n                    }\n                  } else {\n                    span.updateName(`${method} ${srcPage}`)\n                  }\n                })\n            } catch (err: unknown) {\n              // if this is a background revalidate we need to report\n              // the request error here as it won't be bubbled\n              if (previousCacheEntry?.isStale) {\n                const silenceLog = false\n                await routeModule.onRequestError(\n                  req,\n                  err,\n                  {\n                    routerKind: 'Pages Router',\n                    routePath: srcPage,\n                    routeType: 'render',\n                    revalidateReason: getRevalidateReason({\n                      isStaticGeneration: hasStaticProps,\n                      isOnDemandRevalidate,\n                    }),\n                  },\n                  silenceLog,\n                  routerServerContext\n                )\n              }\n              throw err\n            }\n          }\n\n          // if we've already generated this page we no longer\n          // serve the fallback\n          if (previousCacheEntry) {\n            isIsrFallback = false\n          }\n\n          if (isIsrFallback) {\n            const fallbackResponse = await routeModule\n              .getResponseCache(req)\n              .get(\n                routeModule.isDev\n                  ? null\n                  : locale\n                    ? `/${locale}${srcPage}`\n                    : srcPage,\n                async ({\n                  previousCacheEntry: previousFallbackCacheEntry = null,\n                }) => {\n                  if (!routeModule.isDev) {\n                    return toResponseCacheEntry(previousFallbackCacheEntry)\n                  }\n                  return doRender()\n                },\n                {\n                  routeKind: RouteKind.PAGES,\n                  isFallback: true,\n                  isRoutePPREnabled: false,\n                  isOnDemandRevalidate: false,\n                  incrementalCache: await routeModule.getIncrementalCache(\n                    req,\n                    nextConfig,\n                    prerenderManifest,\n                    isMinimalMode\n                  ),\n                  waitUntil: ctx.waitUntil,\n                }\n              )\n            if (fallbackResponse) {\n              // Remove the cache control from the response to prevent it from being\n              // used in the surrounding cache.\n              delete fallbackResponse.cacheControl\n              fallbackResponse.isMiss = true\n              return fallbackResponse\n            }\n          }\n\n          if (\n            !isMinimalMode &&\n            isOnDemandRevalidate &&\n            revalidateOnlyGenerated &&\n            !previousCacheEntry\n          ) {\n            res.statusCode = 404\n            // on-demand revalidate always sets this header\n            res.setHeader('x-nextjs-cache', 'REVALIDATED')\n            res.end('This page could not be found')\n            return null\n          }\n\n          if (\n            isIsrFallback &&\n            previousCacheEntry?.value?.kind === CachedRouteKind.PAGES\n          ) {\n            return {\n              value: {\n                kind: CachedRouteKind.PAGES,\n                html: new RenderResult(\n                  Buffer.from(previousCacheEntry.value.html),\n                  {\n                    contentType: HTML_CONTENT_TYPE_HEADER,\n                    metadata: {\n                      statusCode: previousCacheEntry.value.status,\n                      headers: previousCacheEntry.value.headers,\n                    },\n                  }\n                ),\n                pageData: {},\n                status: previousCacheEntry.value.status,\n                headers: previousCacheEntry.value.headers,\n              } satisfies CachedPageValue,\n              cacheControl: { revalidate: 0, expire: undefined },\n            } satisfies ResponseCacheEntry\n          }\n          return doRender()\n        }\n\n        const result = await routeModule.handleResponse({\n          cacheKey,\n          req,\n          nextConfig,\n          routeKind: RouteKind.PAGES,\n          isOnDemandRevalidate,\n          revalidateOnlyGenerated,\n          waitUntil: ctx.waitUntil,\n          responseGenerator: responseGenerator,\n          prerenderManifest,\n          isMinimalMode,\n        })\n\n        // if we got a cache hit this wasn't an ISR fallback\n        // but it wasn't generated during build so isn't in the\n        // prerender-manifest\n        if (isIsrFallback && !result?.isMiss) {\n          isIsrFallback = false\n        }\n\n        // response is finished is no cache entry\n        if (!result) {\n          return\n        }\n\n        if (hasStaticProps && !isMinimalMode) {\n          res.setHeader(\n            'x-nextjs-cache',\n            isOnDemandRevalidate\n              ? 'REVALIDATED'\n              : result.isMiss\n                ? 'MISS'\n                : result.isStale\n                  ? 'STALE'\n                  : 'HIT'\n          )\n        }\n\n        let cacheControl: CacheControl | undefined\n\n        if (!hasStaticProps || isIsrFallback) {\n          if (!res.getHeader('Cache-Control')) {\n            cacheControl = { revalidate: 0, expire: undefined }\n          }\n        } else if (is404Page) {\n          const notFoundRevalidate = getRequestMeta(req, 'notFoundRevalidate')\n\n          cacheControl = {\n            revalidate:\n              typeof notFoundRevalidate === 'undefined'\n                ? 0\n                : notFoundRevalidate,\n            expire: undefined,\n          }\n        } else if (is500Page) {\n          cacheControl = { revalidate: 0, expire: undefined }\n        } else if (result.cacheControl) {\n          // If the cache entry has a cache control with a revalidate value that's\n          // a number, use it.\n          if (typeof result.cacheControl.revalidate === 'number') {\n            if (result.cacheControl.revalidate < 1) {\n              throw new Error(\n                `Invalid revalidate configuration provided: ${result.cacheControl.revalidate} < 1`\n              )\n            }\n            cacheControl = {\n              revalidate: result.cacheControl.revalidate,\n              expire: result.cacheControl?.expire ?? nextConfig.expireTime,\n            }\n          } else {\n            // revalidate: false\n            cacheControl = {\n              revalidate: CACHE_ONE_YEAR_SECONDS,\n              expire: undefined,\n            }\n          }\n        }\n\n        // If cache control is already set on the response we don't\n        // override it to allow users to customize it via next.config\n        if (cacheControl && !res.getHeader('Cache-Control')) {\n          res.setHeader('Cache-Control', getCacheControlHeader(cacheControl))\n        }\n\n        // notFound: true case\n        if (!result.value) {\n          // add revalidate metadata before rendering 404 page\n          // so that we can use this as source of truth for the\n          // cache-control header instead of what the 404 page returns\n          // for the revalidate value\n          addRequestMeta(\n            req,\n            'notFoundRevalidate',\n            result.cacheControl?.revalidate\n          )\n\n          res.statusCode = 404\n\n          if (isNextDataRequest) {\n            if (deploymentId) {\n              res.setHeader(NEXT_NAV_DEPLOYMENT_ID_HEADER, deploymentId)\n            }\n            res.end('{\"notFound\":true}')\n            return\n          }\n          return await render404()\n        }\n\n        if (result.value.kind === CachedRouteKind.REDIRECT) {\n          if (isNextDataRequest) {\n            if (deploymentId) {\n              res.setHeader(NEXT_NAV_DEPLOYMENT_ID_HEADER, deploymentId)\n            }\n            res.setHeader('content-type', JSON_CONTENT_TYPE_HEADER)\n            res.end(JSON.stringify(result.value.props))\n            return\n          } else {\n            const handleRedirect = (pageData: any) => {\n              const redirect = {\n                destination: pageData.pageProps.__N_REDIRECT,\n                statusCode: pageData.pageProps.__N_REDIRECT_STATUS,\n                basePath: pageData.pageProps.__N_REDIRECT_BASE_PATH,\n              }\n              const statusCode = getRedirectStatus(redirect)\n              const { basePath } = nextConfig\n\n              if (\n                basePath &&\n                redirect.basePath !== false &&\n                redirect.destination.startsWith('/')\n              ) {\n                redirect.destination = `${basePath}${redirect.destination}`\n              }\n\n              if (redirect.destination.startsWith('/')) {\n                redirect.destination = normalizeRepeatedSlashes(\n                  redirect.destination\n                )\n              }\n\n              res.statusCode = statusCode\n              res.setHeader('Location', redirect.destination)\n              if (statusCode === RedirectStatusCode.PermanentRedirect) {\n                res.setHeader('Refresh', `0;url=${redirect.destination}`)\n              }\n              res.end(redirect.destination)\n            }\n            await handleRedirect(result.value.props)\n            return null\n          }\n        }\n\n        if (result.value.kind !== CachedRouteKind.PAGES) {\n          throw new Error(\n            `Invariant: received non-pages cache entry in pages handler`\n          )\n        }\n\n        // In dev, we should not cache pages for any reason.\n        if (routeModule.isDev) {\n          res.setHeader('Cache-Control', 'no-cache, must-revalidate')\n        }\n\n        // Draft mode should never be cached\n        if (isDraftMode) {\n          res.setHeader(\n            'Cache-Control',\n            'private, no-cache, no-store, max-age=0, must-revalidate'\n          )\n        }\n\n        // when invoking _error before pages/500 we don't actually\n        // send the _error response\n        if (\n          getRequestMeta(req, 'customErrorRender') ||\n          (isErrorPage && isMinimalMode && res.statusCode === 500)\n        ) {\n          return null\n        }\n\n        // Add deployment ID header for data requests\n        if (isNextDataRequest && !isErrorPage && !is500Page) {\n          if (deploymentId) {\n            res.setHeader(NEXT_NAV_DEPLOYMENT_ID_HEADER, deploymentId)\n          }\n        }\n\n        await sendRenderResult({\n          req,\n          res,\n          // If we are rendering the error page it's not a data request\n          // anymore\n          result:\n            isNextDataRequest && !isErrorPage && !is500Page\n              ? new RenderResult(\n                  Buffer.from(JSON.stringify(result.value.pageData)),\n                  {\n                    contentType: JSON_CONTENT_TYPE_HEADER,\n                    metadata: result.value.html.metadata,\n                  }\n                )\n              : result.value.html,\n          generateEtags: nextConfig.generateEtags,\n          poweredByHeader: nextConfig.poweredByHeader,\n          cacheControl: routeModule.isDev ? undefined : cacheControl,\n        })\n      }\n\n      // TODO: activeSpan code path is for when wrapped by\n      // next-server can be removed when this is no longer used\n      if (activeSpan) {\n        await handleResponse()\n      } else {\n        parentSpan = tracer.getActiveScopeSpan()\n        await tracer.withPropagatedContext(req.headers, () =>\n          tracer.trace(\n            BaseServerSpan.handleRequest,\n            {\n              spanName: `${method} ${srcPage}`,\n              kind: SpanKind.SERVER,\n              attributes: {\n                'http.method': method,\n                'http.target': req.url,\n              },\n            },\n            handleResponse\n          )\n        )\n      }\n    } catch (err) {\n      if (!(err instanceof NoFallbackError)) {\n        const silenceLog = false\n        await routeModule.onRequestError(\n          req,\n          err,\n          {\n            routerKind: 'Pages Router',\n            routePath: srcPage,\n            routeType: 'render',\n            revalidateReason: getRevalidateReason({\n              isStaticGeneration: hasStaticProps,\n              isOnDemandRevalidate,\n            }),\n          },\n          silenceLog,\n          routerServerContext\n        )\n      }\n\n      // rethrow so that we can handle serving error page\n      throw err\n    }\n  }\n}\n"],"names":["RouteKind","BaseServerSpan","getTracer","SpanKind","formatUrl","addRequestMeta","getRequestMeta","setRequestMeta","interopDefault","getRevalidateReason","normalizeDataPath","CachedRouteKind","getCacheControlHeader","normalizeRepeatedSlashes","getRedirectStatus","CACHE_ONE_YEAR_SECONDS","HTML_CONTENT_TYPE_HEADER","JSON_CONTENT_TYPE_HEADER","NEXT_NAV_DEPLOYMENT_ID_HEADER","path","sendRenderResult","RenderResult","toResponseCacheEntry","NoFallbackError","RedirectStatusCode","isBot","addPathPrefix","removeTrailingSlash","getHandler","srcPage","originalSrcPage","config","userland","routeModule","isFallbackError","getStaticPaths","getStaticProps","getServerSideProps","handler","req","res","ctx","serverFilesManifest","requestMeta","isDev","process","hrtime","bigint","env","TURBOPACK","replace","multiZoneDraftMode","__NEXT_MULTI_ZONE_DRAFT_MODE","prepareResult","prepare","statusCode","end","waitUntil","Promise","resolve","isMinimalMode","Boolean","render404","routerServerContext","parsedUrl","buildId","query","params","originalQuery","originalPathname","buildManifest","fallbackBuildManifest","nextFontManifest","reactLoadableManifest","prerenderManifest","isDraftMode","isOnDemandRevalidate","revalidateOnlyGenerated","locale","locales","defaultLocale","nextConfig","resolvedPathname","encodedResolvedPathname","deploymentId","clientAssetToken","isExperimentalCompile","experimental","hasServerProps","hasStaticProps","hasStaticPaths","hasGetInitialProps","default","getInitialProps","cacheKey","isIsrFallback","isNextDataRequest","is404Page","is500Page","isErrorPage","decodedPathname","isPrerendered","routes","notFoundRoutes","includes","prerenderInfo","dynamicRoutes","fallback","adapterPath","headers","tracer","activeSpan","getActiveScopeSpan","method","resolvedUrl","pathname","trailingSlash","endsWith","parentSpan","handleResponse","span","responseGenerator","previousCacheEntry","doRender","render","page","renderContext","isFallback","developmentNotFoundSourcePage","sharedContext","customServer","isCustomServer","undefined","renderOpts","pageConfig","Component","ComponentMod","supportsDynamicResponse","assetPrefix","previewProps","preview","images","nextConfigOutput","output","optimizeCss","nextScriptWorkers","domainLocales","i18n","domains","crossOrigin","basePath","disableOptimizedLoading","largePageDataBytes","clientTraceMetadata","setIsrStatus","resolvedAsPath","ErrorDebug","err","distDir","join","cwd","relativeProjectDir","then","renderResult","metadata","cacheControl","isNotFound","value","isRedirect","kind","REDIRECT","props","pageData","flightData","PAGES","html","status","finally","setAttributes","rootSpanAttributes","getRootSpanAttributes","get","handleRequest","console","warn","route","name","updateName","setAttribute","isStale","silenceLog","onRequestError","routerKind","routePath","routeType","revalidateReason","isStaticGeneration","fallbackResponse","getResponseCache","previousFallbackCacheEntry","routeKind","isRoutePPREnabled","incrementalCache","getIncrementalCache","isMiss","setHeader","Buffer","from","contentType","revalidate","expire","result","getHeader","notFoundRevalidate","Error","expireTime","JSON","stringify","handleRedirect","redirect","destination","pageProps","__N_REDIRECT","__N_REDIRECT_STATUS","__N_REDIRECT_BASE_PATH","startsWith","PermanentRedirect","generateEtags","poweredByHeader","withPropagatedContext","trace","spanName","SERVER","attributes","url"],"mappings":"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","ignoreList":[0]}