{"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":["getHandler","srcPage","originalSrcPage","config","userland","routeModule","isFallbackError","getStaticPaths","getStaticProps","getServerSideProps","handler","req","res","ctx","serverFilesManifest","requestMeta","setRequestMeta","isDev","addRequestMeta","process","hrtime","bigint","env","TURBOPACK","replace","multiZoneDraftMode","__NEXT_MULTI_ZONE_DRAFT_MODE","prepareResult","prepare","statusCode","end","waitUntil","Promise","resolve","isMinimalMode","Boolean","getRequestMeta","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","removeTrailingSlash","addPathPrefix","isPrerendered","routes","notFoundRoutes","includes","prerenderInfo","dynamicRoutes","fallback","adapterPath","NoFallbackError","isBot","headers","tracer","getTracer","activeSpan","getActiveScopeSpan","method","resolvedUrl","formatUrl","pathname","trailingSlash","endsWith","parentSpan","handleResponse","span","responseGenerator","previousCacheEntry","doRender","render","page","renderContext","isFallback","developmentNotFoundSourcePage","sharedContext","customServer","isCustomServer","undefined","renderOpts","pageConfig","Component","interopDefault","ComponentMod","supportsDynamicResponse","assetPrefix","previewProps","preview","images","nextConfigOutput","output","optimizeCss","nextScriptWorkers","domainLocales","i18n","domains","crossOrigin","basePath","disableOptimizedLoading","largePageDataBytes","clientTraceMetadata","setIsrStatus","resolvedAsPath","normalizeDataPath","ErrorDebug","err","distDir","path","join","cwd","relativeProjectDir","then","renderResult","metadata","cacheControl","isNotFound","value","isRedirect","kind","CachedRouteKind","REDIRECT","props","pageData","flightData","PAGES","html","status","finally","setAttributes","rootSpanAttributes","getRootSpanAttributes","get","BaseServerSpan","handleRequest","console","warn","route","name","updateName","setAttribute","isStale","silenceLog","onRequestError","routerKind","routePath","routeType","revalidateReason","getRevalidateReason","isStaticGeneration","fallbackResponse","getResponseCache","previousFallbackCacheEntry","toResponseCacheEntry","routeKind","RouteKind","isRoutePPREnabled","incrementalCache","getIncrementalCache","isMiss","setHeader","RenderResult","Buffer","from","contentType","HTML_CONTENT_TYPE_HEADER","revalidate","expire","result","getHeader","notFoundRevalidate","Error","expireTime","CACHE_ONE_YEAR_SECONDS","getCacheControlHeader","NEXT_NAV_DEPLOYMENT_ID_HEADER","JSON_CONTENT_TYPE_HEADER","JSON","stringify","handleRedirect","redirect","destination","pageProps","__N_REDIRECT","__N_REDIRECT_STATUS","__N_REDIRECT_BASE_PATH","getRedirectStatus","startsWith","normalizeRepeatedSlashes","RedirectStatusCode","PermanentRedirect","sendRenderResult","generateEtags","poweredByHeader","withPropagatedContext","trace","spanName","SpanKind","SERVER","attributes","url"],"mappings":"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","ignoreList":[0]}