{"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 { addRequestMeta, getRequestMeta } 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,\n  HTML_CONTENT_TYPE_HEADER,\n  JSON_CONTENT_TYPE_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    }\n  ): Promise<void> {\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 {\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    } = 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    const isAmp = query.amp && config?.amp\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      }${isAmp ? '.amp' : ''}`\n\n      if (is404Page || is500Page || isErrorPage) {\n        cacheKey = `${locale ? `/${locale}` : ''}${srcPage}${isAmp ? '.amp' : ''}`\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          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      getRequestMeta(req, 'minimalMode')\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          ? parsedUrl.pathname\n          : removeTrailingSlash(parsedUrl.pathname || '/'),\n        // make sure to only add query values from original URL\n        query: hasStaticProps ? {} : originalQuery,\n      })\n\n      const publicRuntimeConfig: Record<string, string> =\n        routerServerContext?.publicRuntimeConfig ||\n        nextConfig.publicRuntimeConfig\n\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                          ...(isAmp\n                            ? {\n                                amp: query.amp,\n                              }\n                            : {}),\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: process.env.NEXT_DEPLOYMENT_ID,\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                    canonicalBase: nextConfig.amp.canonicalBase || '',\n                    ampOptimizerConfig: nextConfig.experimental.amp?.optimizer,\n                    disableOptimizedLoading:\n                      nextConfig.experimental.disableOptimizedLoading,\n                    largePageDataBytes:\n                      nextConfig.experimental.largePageDataBytes,\n                    // Only the `publicRuntimeConfig` key is exposed to the client side\n                    // It'll be rendered as part of __NEXT_DATA__ on the client side\n                    runtimeConfig:\n                      Object.keys(publicRuntimeConfig).length > 0\n                        ? publicRuntimeConfig\n                        : undefined,\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                    dev: routeModule.isDev,\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                    ampSkipValidation:\n                      nextConfig.experimental.amp?.skipValidation,\n                    ampValidator: getRequestMeta(req, 'ampValidator'),\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                  } else {\n                    span.updateName(`${method} ${req.url}`)\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                await routeModule.onRequestError(\n                  req,\n                  err,\n                  {\n                    routerKind: 'Pages Router',\n                    routePath: srcPage,\n                    routeType: 'render',\n                    revalidateReason: getRevalidateReason({\n                      isRevalidate: hasStaticProps,\n                      isOnDemandRevalidate,\n                    }),\n                  },\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                  ),\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            !getRequestMeta(req, 'minimalMode') &&\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(previousCacheEntry.value.html, {\n                  contentType: HTML_CONTENT_TYPE_HEADER,\n                  metadata: {\n                    statusCode: previousCacheEntry.value.status,\n                    headers: previousCacheEntry.value.headers,\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        })\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 && !getRequestMeta(req, 'minimalMode')) {\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,\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            res.end('{\"notFound\":true}')\n            return\n          }\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          return\n        }\n\n        if (result.value.kind === CachedRouteKind.REDIRECT) {\n          if (isNextDataRequest) {\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-store, 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 &&\n            getRequestMeta(req, 'minimalMode') &&\n            res.statusCode === 500)\n        ) {\n          return null\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(JSON.stringify(result.value.pageData), {\n                  contentType: JSON_CONTENT_TYPE_HEADER,\n                  metadata: result.value.html.metadata,\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        await tracer.withPropagatedContext(req.headers, () =>\n          tracer.trace(\n            BaseServerSpan.handleRequest,\n            {\n              spanName: `${method} ${req.url}`,\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        await routeModule.onRequestError(\n          req,\n          err,\n          {\n            routerKind: 'Pages Router',\n            routePath: srcPage,\n            routeType: 'render',\n            revalidateReason: getRevalidateReason({\n              isRevalidate: hasStaticProps,\n              isOnDemandRevalidate,\n            }),\n          },\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","interopDefault","getRevalidateReason","normalizeDataPath","CachedRouteKind","getCacheControlHeader","normalizeRepeatedSlashes","getRedirectStatus","CACHE_ONE_YEAR","HTML_CONTENT_TYPE_HEADER","JSON_CONTENT_TYPE_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","process","env","TURBOPACK","replace","multiZoneDraftMode","__NEXT_MULTI_ZONE_DRAFT_MODE","prepareResult","prepare","statusCode","end","waitUntil","Promise","resolve","buildId","query","params","parsedUrl","originalQuery","originalPathname","buildManifest","fallbackBuildManifest","nextFontManifest","reactLoadableManifest","prerenderManifest","isDraftMode","isOnDemandRevalidate","revalidateOnlyGenerated","locale","locales","defaultLocale","routerServerContext","nextConfig","resolvedPathname","isExperimentalCompile","experimental","hasServerProps","Boolean","hasStaticProps","hasStaticPaths","hasGetInitialProps","default","getInitialProps","isAmp","amp","cacheKey","isIsrFallback","isNextDataRequest","is404Page","is500Page","isErrorPage","isDev","decodedPathname","isPrerendered","routes","notFoundRoutes","includes","prerenderInfo","dynamicRoutes","fallback","headers","tracer","activeSpan","getActiveScopeSpan","method","resolvedUrl","pathname","trailingSlash","publicRuntimeConfig","handleResponse","span","responseGenerator","previousCacheEntry","doRender","render","page","renderContext","isFallback","developmentNotFoundSourcePage","sharedContext","customServer","isCustomServer","undefined","deploymentId","NEXT_DEPLOYMENT_ID","renderOpts","pageConfig","Component","ComponentMod","supportsDynamicResponse","assetPrefix","previewProps","preview","images","nextConfigOutput","output","optimizeCss","nextScriptWorkers","domainLocales","i18n","domains","crossOrigin","basePath","canonicalBase","ampOptimizerConfig","optimizer","disableOptimizedLoading","largePageDataBytes","runtimeConfig","Object","keys","length","clientTraceMetadata","setIsrStatus","resolvedAsPath","ErrorDebug","err","dev","distDir","join","cwd","relativeProjectDir","ampSkipValidation","skipValidation","ampValidator","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","url","isStale","onRequestError","routerKind","routePath","routeType","revalidateReason","isRevalidate","fallbackResponse","getResponseCache","previousFallbackCacheEntry","routeKind","isRoutePPREnabled","incrementalCache","getIncrementalCache","isMiss","setHeader","contentType","revalidate","expire","result","getHeader","notFoundRevalidate","Error","expireTime","render404","JSON","stringify","handleRedirect","redirect","destination","pageProps","__N_REDIRECT","__N_REDIRECT_STATUS","__N_REDIRECT_BASE_PATH","startsWith","PermanentRedirect","generateEtags","poweredByHeader","withPropagatedContext","trace","spanName","SERVER","attributes"],"mappings":"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","ignoreList":[0]}