{"version":3,"sources":["../../../src/build/templates/app-page.ts"],"sourcesContent":["import type { LoaderTree } from '../../server/lib/app-dir-module'\nimport type { IncomingMessage, ServerResponse } from 'node:http'\n\nimport {\n  AppPageRouteModule,\n  type AppPageRouteHandlerContext,\n} from '../../server/route-modules/app-page/module.compiled' with { 'turbopack-transition': 'next-ssr' }\n\nimport { RouteKind } from '../../server/route-kind' with { 'turbopack-transition': 'next-server-utility' }\n\nimport { getRevalidateReason } from '../../server/instrumentation/utils'\nimport { getTracer, SpanKind, type Span } from '../../server/lib/trace/tracer'\nimport { getRequestMeta } from '../../server/request-meta'\nimport { BaseServerSpan } from '../../server/lib/trace/constants'\nimport { interopDefault } from '../../server/app-render/interop-default'\nimport { stripFlightHeaders } from '../../server/app-render/strip-flight-headers'\nimport { NodeNextRequest, NodeNextResponse } from '../../server/base-http/node'\nimport { checkIsAppPPREnabled } from '../../server/lib/experimental/ppr'\nimport {\n  getFallbackRouteParams,\n  type FallbackRouteParams,\n} from '../../server/request/fallback-params'\nimport { setReferenceManifestsSingleton } from '../../server/app-render/encryption-utils'\nimport {\n  isHtmlBotRequest,\n  shouldServeStreamingMetadata,\n} from '../../server/lib/streaming-metadata'\nimport { createServerModuleMap } from '../../server/app-render/action-utils'\nimport { normalizeAppPath } from '../../shared/lib/router/utils/app-paths'\nimport { getIsPossibleServerAction } from '../../server/lib/server-action-request-meta'\nimport {\n  RSC_HEADER,\n  NEXT_ROUTER_PREFETCH_HEADER,\n  NEXT_IS_PRERENDER_HEADER,\n  NEXT_DID_POSTPONE_HEADER,\n  RSC_CONTENT_TYPE_HEADER,\n} from '../../client/components/app-router-headers'\nimport { getBotType, isBot } from '../../shared/lib/router/utils/is-bot'\nimport {\n  CachedRouteKind,\n  type CachedAppPageValue,\n  type CachedPageValue,\n  type ResponseCacheEntry,\n  type ResponseGenerator,\n} from '../../server/response-cache'\nimport { FallbackMode, parseFallbackField } from '../../lib/fallback'\nimport RenderResult from '../../server/render-result'\nimport {\n  CACHE_ONE_YEAR,\n  HTML_CONTENT_TYPE_HEADER,\n  NEXT_CACHE_TAGS_HEADER,\n} from '../../lib/constants'\nimport type { CacheControl } from '../../server/lib/cache-control'\nimport { ENCODED_TAGS } from '../../server/stream-utils/encoded-tags'\nimport { sendRenderResult } from '../../server/send-payload'\nimport { NoFallbackError } from '../../shared/lib/no-fallback-error.external'\n\n// These are injected by the loader afterwards.\n\n/**\n * The tree created in next-app-loader that holds component segments and modules\n * and I've updated it.\n */\ndeclare const tree: LoaderTree\ndeclare const pages: any\n\n// We inject the tree and pages here so that we can use them in the route\n// module.\n// INJECT:tree\n// INJECT:pages\n\nexport { tree, pages }\n\nimport GlobalError from 'VAR_MODULE_GLOBAL_ERROR' with { 'turbopack-transition': 'next-server-utility' }\n\nexport { GlobalError }\n\n// These are injected by the loader afterwards.\ndeclare const __next_app_require__: (id: string | number) => unknown\ndeclare const __next_app_load_chunk__: (id: string | number) => Promise<unknown>\n\n// INJECT:__next_app_require__\n// INJECT:__next_app_load_chunk__\n\nexport const __next_app__ = {\n  require: __next_app_require__,\n  loadChunk: __next_app_load_chunk__,\n}\n\nimport * as entryBase from '../../server/app-render/entry-base' with { 'turbopack-transition': 'next-server-utility' }\nimport { RedirectStatusCode } from '../../client/components/redirect-status-code'\n\nexport * from '../../server/app-render/entry-base' with { 'turbopack-transition': 'next-server-utility' }\n\n// Create and export the route module that will be consumed.\nexport const routeModule = new AppPageRouteModule({\n  definition: {\n    kind: RouteKind.APP_PAGE,\n    page: 'VAR_DEFINITION_PAGE',\n    pathname: 'VAR_DEFINITION_PATHNAME',\n    // The following aren't used in production.\n    bundlePath: '',\n    filename: '',\n    appPaths: [],\n  },\n  userland: {\n    loaderTree: tree,\n  },\n  distDir: process.env.__NEXT_RELATIVE_DIST_DIR || '',\n  relativeProjectDir: process.env.__NEXT_RELATIVE_PROJECT_DIR || '',\n})\n\nexport async function handler(\n  req: IncomingMessage,\n  res: ServerResponse,\n  ctx: {\n    waitUntil: (prom: Promise<void>) => void\n  }\n) {\n  let srcPage = 'VAR_DEFINITION_PAGE'\n\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 initialPostponed = getRequestMeta(req, 'postponed')\n  // TODO: replace with more specific flags\n  const minimalMode = getRequestMeta(req, 'minimalMode')\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 null\n  }\n\n  const {\n    buildId,\n    query,\n    params,\n    parsedUrl,\n    pageIsDynamic,\n    buildManifest,\n    nextFontManifest,\n    reactLoadableManifest,\n    serverActionsManifest,\n    clientReferenceManifest,\n    subresourceIntegrityManifest,\n    prerenderManifest,\n    isDraftMode,\n    resolvedPathname,\n    revalidateOnlyGenerated,\n    routerServerContext,\n    nextConfig,\n    interceptionRoutePatterns,\n  } = prepareResult\n\n  const pathname = parsedUrl.pathname || '/'\n  const normalizedSrcPage = normalizeAppPath(srcPage)\n\n  let { isOnDemandRevalidate } = prepareResult\n\n  const prerenderInfo = routeModule.match(pathname, prerenderManifest)\n  const isPrerendered = !!prerenderManifest.routes[resolvedPathname]\n\n  let isSSG = Boolean(\n    prerenderInfo ||\n      isPrerendered ||\n      prerenderManifest.routes[normalizedSrcPage]\n  )\n\n  const userAgent = req.headers['user-agent'] || ''\n  const botType = getBotType(userAgent)\n  const isHtmlBot = isHtmlBotRequest(req)\n\n  /**\n   * If true, this indicates that the request being made is for an app\n   * prefetch request.\n   */\n  const isPrefetchRSCRequest =\n    getRequestMeta(req, 'isPrefetchRSCRequest') ??\n    req.headers[NEXT_ROUTER_PREFETCH_HEADER] === '1' // exclude runtime prefetches, which use '2'\n\n  // NOTE: Don't delete headers[RSC] yet, it still needs to be used in renderToHTML later\n\n  const isRSCRequest =\n    getRequestMeta(req, 'isRSCRequest') ?? Boolean(req.headers[RSC_HEADER])\n\n  const isPossibleServerAction = getIsPossibleServerAction(req)\n\n  /**\n   * If the route being rendered is an app page, and the ppr feature has been\n   * enabled, then the given route _could_ support PPR.\n   */\n  const couldSupportPPR: boolean = checkIsAppPPREnabled(\n    nextConfig.experimental.ppr\n  )\n\n  // When enabled, this will allow the use of the `?__nextppronly` query to\n  // enable debugging of the static shell.\n  const hasDebugStaticShellQuery =\n    process.env.__NEXT_EXPERIMENTAL_STATIC_SHELL_DEBUGGING === '1' &&\n    typeof query.__nextppronly !== 'undefined' &&\n    couldSupportPPR\n\n  // When enabled, this will allow the use of the `?__nextppronly` query\n  // to enable debugging of the fallback shell.\n  const hasDebugFallbackShellQuery =\n    hasDebugStaticShellQuery && query.__nextppronly === 'fallback'\n\n  // This page supports PPR if it is marked as being `PARTIALLY_STATIC` in the\n  // prerender manifest and this is an app page.\n  const isRoutePPREnabled: boolean =\n    couldSupportPPR &&\n    ((\n      prerenderManifest.routes[normalizedSrcPage] ??\n      prerenderManifest.dynamicRoutes[normalizedSrcPage]\n    )?.renderingMode === 'PARTIALLY_STATIC' ||\n      // Ideally we'd want to check the appConfig to see if this page has PPR\n      // enabled or not, but that would require plumbing the appConfig through\n      // to the server during development. We assume that the page supports it\n      // but only during development.\n      (hasDebugStaticShellQuery &&\n        (routeModule.isDev === true ||\n          routerServerContext?.experimentalTestProxy === true)))\n\n  const isDebugStaticShell: boolean =\n    hasDebugStaticShellQuery && isRoutePPREnabled\n\n  // We should enable debugging dynamic accesses when the static shell\n  // debugging has been enabled and we're also in development mode.\n  const isDebugDynamicAccesses =\n    isDebugStaticShell && routeModule.isDev === true\n\n  const isDebugFallbackShell = hasDebugFallbackShellQuery && isRoutePPREnabled\n\n  // If we're in minimal mode, then try to get the postponed information from\n  // the request metadata. If available, use it for resuming the postponed\n  // render.\n  const minimalPostponed = isRoutePPREnabled ? initialPostponed : undefined\n\n  // If PPR is enabled, and this is a RSC request (but not a prefetch), then\n  // we can use this fact to only generate the flight data for the request\n  // because we can't cache the HTML (as it's also dynamic).\n  const isDynamicRSCRequest =\n    isRoutePPREnabled && isRSCRequest && !isPrefetchRSCRequest\n\n  // Need to read this before it's stripped by stripFlightHeaders. We don't\n  // need to transfer it to the request meta because it's only read\n  // within this function; the static segment data should have already been\n  // generated, so we will always either return a static response or a 404.\n  const segmentPrefetchHeader = getRequestMeta(req, 'segmentPrefetchRSCRequest')\n\n  // TODO: investigate existing bug with shouldServeStreamingMetadata always\n  // being true for a revalidate due to modifying the base-server this.renderOpts\n  // when fixing this to correct logic it causes hydration issue since we set\n  // serveStreamingMetadata to true during export\n  let serveStreamingMetadata = !userAgent\n    ? true\n    : shouldServeStreamingMetadata(userAgent, nextConfig.htmlLimitedBots)\n\n  if (isHtmlBot && isRoutePPREnabled) {\n    isSSG = false\n    serveStreamingMetadata = false\n  }\n\n  // In development, we always want to generate dynamic HTML.\n  let supportsDynamicResponse: boolean =\n    // If we're in development, we always support dynamic HTML, unless it's\n    // a data request, in which case we only produce static HTML.\n    routeModule.isDev === true ||\n    // If this is not SSG or does not have static paths, then it supports\n    // dynamic HTML.\n    !isSSG ||\n    // If this request has provided postponed data, it supports dynamic\n    // HTML.\n    typeof initialPostponed === 'string' ||\n    // If this is a dynamic RSC request, then this render supports dynamic\n    // HTML (it's dynamic).\n    isDynamicRSCRequest\n\n  // When html bots request PPR page, perform the full dynamic rendering.\n  const shouldWaitOnAllReady = isHtmlBot && isRoutePPREnabled\n\n  let ssgCacheKey: string | null = null\n  if (\n    !isDraftMode &&\n    isSSG &&\n    !supportsDynamicResponse &&\n    !isPossibleServerAction &&\n    !minimalPostponed &&\n    !isDynamicRSCRequest\n  ) {\n    ssgCacheKey = resolvedPathname\n  }\n\n  // the staticPathKey differs from ssgCacheKey since\n  // ssgCacheKey is null in dev since we're always in \"dynamic\"\n  // mode in dev to bypass the cache, but we still need to honor\n  // dynamicParams = false in dev mode\n  let staticPathKey = ssgCacheKey\n  if (!staticPathKey && routeModule.isDev) {\n    staticPathKey = resolvedPathname\n  }\n\n  // If this is a request for an app path that should be statically generated\n  // and we aren't in the edge runtime, strip the flight headers so it will\n  // generate the static response.\n  if (\n    !routeModule.isDev &&\n    !isDraftMode &&\n    isSSG &&\n    isRSCRequest &&\n    !isDynamicRSCRequest\n  ) {\n    stripFlightHeaders(req.headers)\n  }\n\n  const ComponentMod = {\n    ...entryBase,\n    tree,\n    pages,\n    GlobalError,\n    handler,\n    routeModule,\n    __next_app__,\n  }\n\n  // Before rendering (which initializes component tree modules), we have to\n  // set the reference manifests to our global store so Server Action's\n  // encryption util can access to them at the top level of the page module.\n  if (serverActionsManifest && clientReferenceManifest) {\n    setReferenceManifestsSingleton({\n      page: srcPage,\n      clientReferenceManifest,\n      serverActionsManifest,\n      serverModuleMap: createServerModuleMap({\n        serverActionsManifest,\n      }),\n    })\n  }\n\n  const method = req.method || 'GET'\n  const tracer = getTracer()\n  const activeSpan = tracer.getActiveScopeSpan()\n\n  try {\n    const varyHeader = routeModule.getVaryHeader(\n      resolvedPathname,\n      interceptionRoutePatterns\n    )\n    res.setHeader('Vary', varyHeader)\n    const invokeRouteModule = async (\n      span: Span | undefined,\n      context: AppPageRouteHandlerContext\n    ) => {\n      const nextReq = new NodeNextRequest(req)\n      const nextRes = new NodeNextResponse(res)\n\n      // TODO: adapt for putting the RDC inside the postponed data\n      // If we're in dev, and this isn't a prefetch or a server action,\n      // we should seed the resume data cache.\n      if (process.env.NODE_ENV === 'development') {\n        if (\n          nextConfig.experimental.cacheComponents &&\n          !isPrefetchRSCRequest &&\n          !context.renderOpts.isPossibleServerAction\n        ) {\n          const warmup = await routeModule.warmup(nextReq, nextRes, context)\n\n          // If the warmup is successful, we should use the resume data\n          // cache from the warmup.\n          if (warmup.metadata.renderResumeDataCache) {\n            context.renderOpts.renderResumeDataCache =\n              warmup.metadata.renderResumeDataCache\n          }\n        }\n      }\n\n      return routeModule.render(nextReq, nextRes, context).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    }\n\n    const doRender = async ({\n      span,\n      postponed,\n      fallbackRouteParams,\n    }: {\n      span?: Span\n      /**\n       * The postponed data for this render. This is only provided when resuming\n       * a render that has been postponed.\n       */\n      postponed: string | undefined\n\n      /**\n       * The unknown route params for this render.\n       */\n      fallbackRouteParams: FallbackRouteParams | null\n    }): Promise<ResponseCacheEntry> => {\n      const context: AppPageRouteHandlerContext = {\n        query,\n        params,\n        page: normalizedSrcPage,\n        sharedContext: {\n          buildId,\n        },\n        serverComponentsHmrCache: getRequestMeta(\n          req,\n          'serverComponentsHmrCache'\n        ),\n        fallbackRouteParams,\n        renderOpts: {\n          App: () => null,\n          Document: () => null,\n          pageConfig: {},\n          ComponentMod,\n          Component: interopDefault(ComponentMod),\n\n          params,\n          routeModule,\n          page: srcPage,\n          postponed,\n          shouldWaitOnAllReady,\n          serveStreamingMetadata,\n          supportsDynamicResponse:\n            typeof postponed === 'string' || supportsDynamicResponse,\n          buildManifest,\n          nextFontManifest,\n          reactLoadableManifest,\n          subresourceIntegrityManifest,\n          serverActionsManifest,\n          clientReferenceManifest,\n          setIsrStatus: routerServerContext?.setIsrStatus,\n\n          dir:\n            process.env.NEXT_RUNTIME === 'nodejs'\n              ? (require('path') as typeof import('path')).join(\n                  /* turbopackIgnore: true */\n                  process.cwd(),\n                  routeModule.relativeProjectDir\n                )\n              : `${process.cwd()}/${routeModule.relativeProjectDir}`,\n          isDraftMode,\n          isRevalidate: isSSG && !postponed && !isDynamicRSCRequest,\n          botType,\n          isOnDemandRevalidate,\n          isPossibleServerAction,\n          assetPrefix: nextConfig.assetPrefix,\n          nextConfigOutput: nextConfig.output,\n          crossOrigin: nextConfig.crossOrigin,\n          trailingSlash: nextConfig.trailingSlash,\n          previewProps: prerenderManifest.preview,\n          deploymentId: nextConfig.deploymentId,\n          enableTainting: nextConfig.experimental.taint,\n          htmlLimitedBots: nextConfig.htmlLimitedBots,\n          devtoolSegmentExplorer:\n            nextConfig.experimental.devtoolSegmentExplorer,\n          reactMaxHeadersLength: nextConfig.reactMaxHeadersLength,\n\n          multiZoneDraftMode,\n          incrementalCache: getRequestMeta(req, 'incrementalCache'),\n          cacheLifeProfiles: nextConfig.experimental.cacheLife,\n          basePath: nextConfig.basePath,\n          serverActions: nextConfig.experimental.serverActions,\n\n          ...(isDebugStaticShell || isDebugDynamicAccesses\n            ? {\n                nextExport: true,\n                supportsDynamicResponse: false,\n                isStaticGeneration: true,\n                isRevalidate: true,\n                isDebugDynamicAccesses: isDebugDynamicAccesses,\n              }\n            : {}),\n\n          experimental: {\n            isRoutePPREnabled,\n            expireTime: nextConfig.expireTime,\n            staleTimes: nextConfig.experimental.staleTimes,\n            cacheComponents: Boolean(nextConfig.experimental.cacheComponents),\n            clientSegmentCache: Boolean(\n              nextConfig.experimental.clientSegmentCache\n            ),\n            clientParamParsing: Boolean(\n              nextConfig.experimental.clientParamParsing\n            ),\n            dynamicOnHover: Boolean(nextConfig.experimental.dynamicOnHover),\n            inlineCss: Boolean(nextConfig.experimental.inlineCss),\n            authInterrupts: Boolean(nextConfig.experimental.authInterrupts),\n            clientTraceMetadata:\n              nextConfig.experimental.clientTraceMetadata || ([] as any),\n          },\n\n          waitUntil: ctx.waitUntil,\n          onClose: (cb) => {\n            res.on('close', cb)\n          },\n          onAfterTaskError: () => {},\n\n          onInstrumentationRequestError: (error, _request, errorContext) =>\n            routeModule.onRequestError(\n              req,\n              error,\n              errorContext,\n              routerServerContext\n            ),\n          err: getRequestMeta(req, 'invokeError'),\n          dev: routeModule.isDev,\n        },\n      }\n\n      const result = await invokeRouteModule(span, context)\n\n      const { metadata } = result\n\n      const {\n        cacheControl,\n        headers = {},\n        // Add any fetch tags that were on the page to the response headers.\n        fetchTags: cacheTags,\n      } = metadata\n\n      if (cacheTags) {\n        headers[NEXT_CACHE_TAGS_HEADER] = cacheTags\n      }\n\n      // Pull any fetch metrics from the render onto the request.\n      ;(req as any).fetchMetrics = metadata.fetchMetrics\n\n      // we don't throw static to dynamic errors in dev as isSSG\n      // is a best guess in dev since we don't have the prerender pass\n      // to know whether the path is actually static or not\n      if (\n        isSSG &&\n        cacheControl?.revalidate === 0 &&\n        !routeModule.isDev &&\n        !isRoutePPREnabled\n      ) {\n        const staticBailoutInfo = metadata.staticBailoutInfo\n\n        const err = new Error(\n          `Page changed from static to dynamic at runtime ${resolvedPathname}${\n            staticBailoutInfo?.description\n              ? `, reason: ${staticBailoutInfo.description}`\n              : ``\n          }` +\n            `\\nsee more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`\n        )\n\n        if (staticBailoutInfo?.stack) {\n          const stack = staticBailoutInfo.stack\n          err.stack = err.message + stack.substring(stack.indexOf('\\n'))\n        }\n\n        throw err\n      }\n\n      return {\n        value: {\n          kind: CachedRouteKind.APP_PAGE,\n          html: result,\n          headers,\n          rscData: metadata.flightData,\n          postponed: metadata.postponed,\n          status: metadata.statusCode,\n          segmentData: metadata.segmentData,\n        } satisfies CachedAppPageValue,\n        cacheControl,\n      } satisfies ResponseCacheEntry\n    }\n\n    const responseGenerator: ResponseGenerator = async ({\n      hasResolved,\n      previousCacheEntry,\n      isRevalidating,\n      span,\n    }) => {\n      const isProduction = routeModule.isDev === false\n      const didRespond = hasResolved || res.writableEnded\n\n      // skip on-demand revalidate if cache is not present and\n      // revalidate-if-generated is set\n      if (\n        isOnDemandRevalidate &&\n        revalidateOnlyGenerated &&\n        !previousCacheEntry &&\n        !minimalMode\n      ) {\n        if (routerServerContext?.render404) {\n          await routerServerContext.render404(req, res)\n        } else {\n          res.statusCode = 404\n          res.end('This page could not be found')\n        }\n        return null\n      }\n\n      let fallbackMode: FallbackMode | undefined\n\n      if (prerenderInfo) {\n        fallbackMode = parseFallbackField(prerenderInfo.fallback)\n      }\n\n      // When serving a HTML bot request, we want to serve a blocking render and\n      // not the prerendered page. This ensures that the correct content is served\n      // to the bot in the head.\n      if (fallbackMode === FallbackMode.PRERENDER && isBot(userAgent)) {\n        if (!isRoutePPREnabled || isHtmlBot) {\n          fallbackMode = FallbackMode.BLOCKING_STATIC_RENDER\n        }\n      }\n\n      if (previousCacheEntry?.isStale === -1) {\n        isOnDemandRevalidate = true\n      }\n\n      // TODO: adapt for PPR\n      // only allow on-demand revalidate for fallback: true/blocking\n      // or for prerendered fallback: false paths\n      if (\n        isOnDemandRevalidate &&\n        (fallbackMode !== FallbackMode.NOT_FOUND || previousCacheEntry)\n      ) {\n        fallbackMode = FallbackMode.BLOCKING_STATIC_RENDER\n      }\n\n      if (\n        !minimalMode &&\n        fallbackMode !== FallbackMode.BLOCKING_STATIC_RENDER &&\n        staticPathKey &&\n        !didRespond &&\n        !isDraftMode &&\n        pageIsDynamic &&\n        (isProduction || !isPrerendered)\n      ) {\n        // if the page has dynamicParams: false and this pathname wasn't\n        // prerendered trigger the no fallback handling\n        if (\n          // In development, fall through to render to handle missing\n          // getStaticPaths.\n          (isProduction || prerenderInfo) &&\n          // When fallback isn't present, abort this render so we 404\n          fallbackMode === FallbackMode.NOT_FOUND\n        ) {\n          throw new NoFallbackError()\n        }\n\n        let fallbackResponse: ResponseCacheEntry | null | undefined\n\n        if (isRoutePPREnabled && !isRSCRequest) {\n          const cacheKey =\n            typeof prerenderInfo?.fallback === 'string'\n              ? prerenderInfo.fallback\n              : isProduction\n                ? normalizedSrcPage\n                : null\n\n          // We use the response cache here to handle the revalidation and\n          // management of the fallback shell.\n          fallbackResponse = await routeModule.handleResponse({\n            cacheKey,\n            req,\n            nextConfig,\n            routeKind: RouteKind.APP_PAGE,\n            isFallback: true,\n            prerenderManifest,\n            isRoutePPREnabled,\n            responseGenerator: async () =>\n              doRender({\n                span,\n                // We pass `undefined` as rendering a fallback isn't resumed\n                // here.\n                postponed: undefined,\n                fallbackRouteParams:\n                  // If we're in production or we're debugging the fallback\n                  // shell then we should postpone when dynamic params are\n                  // accessed.\n                  isProduction || isDebugFallbackShell\n                    ? getFallbackRouteParams(normalizedSrcPage)\n                    : null,\n              }),\n            waitUntil: ctx.waitUntil,\n          })\n\n          // If the fallback response was set to null, then we should return null.\n          if (fallbackResponse === null) return null\n\n          // Otherwise, if we did get a fallback response, we should return it.\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\n            return fallbackResponse\n          }\n        }\n      }\n      // Only requests that aren't revalidating can be resumed. If we have the\n      // minimal postponed data, then we should resume the render with it.\n      const postponed =\n        !isOnDemandRevalidate && !isRevalidating && minimalPostponed\n          ? minimalPostponed\n          : undefined\n\n      // When we're in minimal mode, if we're trying to debug the static shell,\n      // we should just return nothing instead of resuming the dynamic render.\n      if (\n        (isDebugStaticShell || isDebugDynamicAccesses) &&\n        typeof postponed !== 'undefined'\n      ) {\n        return {\n          cacheControl: { revalidate: 1, expire: undefined },\n          value: {\n            kind: CachedRouteKind.PAGES,\n            html: RenderResult.EMPTY,\n            pageData: {},\n            headers: undefined,\n            status: undefined,\n          } satisfies CachedPageValue,\n        }\n      }\n\n      // If this is a dynamic route with PPR enabled and the default route\n      // matches were set, then we should pass the fallback route params to\n      // the renderer as this is a fallback revalidation request.\n      const fallbackRouteParams =\n        pageIsDynamic &&\n        isRoutePPREnabled &&\n        (getRequestMeta(req, 'renderFallbackShell') || isDebugFallbackShell)\n          ? getFallbackRouteParams(pathname)\n          : null\n\n      // Perform the render.\n      return doRender({\n        span,\n        postponed,\n        fallbackRouteParams,\n      })\n    }\n\n    const handleResponse = async (span?: Span): Promise<null | void> => {\n      const cacheEntry = await routeModule.handleResponse({\n        cacheKey: ssgCacheKey,\n        responseGenerator: (c) =>\n          responseGenerator({\n            span,\n            ...c,\n          }),\n        routeKind: RouteKind.APP_PAGE,\n        isOnDemandRevalidate,\n        isRoutePPREnabled,\n        req,\n        nextConfig,\n        prerenderManifest,\n        waitUntil: ctx.waitUntil,\n      })\n\n      if (isDraftMode) {\n        res.setHeader(\n          'Cache-Control',\n          'private, no-cache, no-store, max-age=0, must-revalidate'\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      if (!cacheEntry) {\n        if (ssgCacheKey) {\n          // A cache entry might not be generated if a response is written\n          // in `getInitialProps` or `getServerSideProps`, but those shouldn't\n          // have a cache key. If we do have a cache key but we don't end up\n          // with a cache entry, then either Next.js or the application has a\n          // bug that needs fixing.\n          throw new Error('invariant: cache entry required but not generated')\n        }\n        return null\n      }\n\n      if (cacheEntry.value?.kind !== CachedRouteKind.APP_PAGE) {\n        throw new Error(\n          `Invariant app-page handler received invalid cache entry ${cacheEntry.value?.kind}`\n        )\n      }\n\n      const didPostpone = typeof cacheEntry.value.postponed === 'string'\n\n      if (\n        isSSG &&\n        // We don't want to send a cache header for requests that contain dynamic\n        // data. If this is a Dynamic RSC request or wasn't a Prefetch RSC\n        // request, then we should set the cache header.\n        !isDynamicRSCRequest &&\n        (!didPostpone || isPrefetchRSCRequest)\n      ) {\n        if (!minimalMode) {\n          // set x-nextjs-cache header to match the header\n          // we set for the image-optimizer\n          res.setHeader(\n            'x-nextjs-cache',\n            isOnDemandRevalidate\n              ? 'REVALIDATED'\n              : cacheEntry.isMiss\n                ? 'MISS'\n                : cacheEntry.isStale\n                  ? 'STALE'\n                  : 'HIT'\n          )\n        }\n        // Set a header used by the client router to signal the response is static\n        // and should respect the `static` cache staleTime value.\n        res.setHeader(NEXT_IS_PRERENDER_HEADER, '1')\n      }\n      const { value: cachedData } = cacheEntry\n\n      // Coerce the cache control parameter from the render.\n      let cacheControl: CacheControl | undefined\n\n      // If this is a resume request in minimal mode it is streamed with dynamic\n      // content and should not be cached.\n      if (minimalPostponed) {\n        cacheControl = { revalidate: 0, expire: undefined }\n      }\n\n      // If this is in minimal mode and this is a flight request that isn't a\n      // prefetch request while PPR is enabled, it cannot be cached as it contains\n      // dynamic content.\n      else if (\n        minimalMode &&\n        isRSCRequest &&\n        !isPrefetchRSCRequest &&\n        isRoutePPREnabled\n      ) {\n        cacheControl = { revalidate: 0, expire: undefined }\n      } else if (!routeModule.isDev) {\n        // If this is a preview mode request, we shouldn't cache it\n        if (isDraftMode) {\n          cacheControl = { revalidate: 0, expire: undefined }\n        }\n\n        // If this isn't SSG, then we should set change the header only if it is\n        // not set already.\n        else if (!isSSG) {\n          if (!res.getHeader('Cache-Control')) {\n            cacheControl = { revalidate: 0, expire: undefined }\n          }\n        } else if (cacheEntry.cacheControl) {\n          // If the cache entry has a cache control with a revalidate value that's\n          // a number, use it.\n          if (typeof cacheEntry.cacheControl.revalidate === 'number') {\n            if (cacheEntry.cacheControl.revalidate < 1) {\n              throw new Error(\n                `Invalid revalidate configuration provided: ${cacheEntry.cacheControl.revalidate} < 1`\n              )\n            }\n\n            cacheControl = {\n              revalidate: cacheEntry.cacheControl.revalidate,\n              expire: cacheEntry.cacheControl?.expire ?? nextConfig.expireTime,\n            }\n          }\n          // Otherwise if the revalidate value is false, then we should use the\n          // cache time of one year.\n          else {\n            cacheControl = { revalidate: CACHE_ONE_YEAR, expire: undefined }\n          }\n        }\n      }\n\n      cacheEntry.cacheControl = cacheControl\n\n      if (\n        typeof segmentPrefetchHeader === 'string' &&\n        cachedData?.kind === CachedRouteKind.APP_PAGE &&\n        cachedData.segmentData\n      ) {\n        // This is a prefetch request issued by the client Segment Cache. These\n        // should never reach the application layer (lambda). We should either\n        // respond from the cache (HIT) or respond with 204 No Content (MISS).\n\n        // Set a header to indicate that PPR is enabled for this route. This\n        // lets the client distinguish between a regular cache miss and a cache\n        // miss due to PPR being disabled. In other contexts this header is used\n        // to indicate that the response contains dynamic data, but here we're\n        // only using it to indicate that the feature is enabled — the segment\n        // response itself contains whether the data is dynamic.\n        res.setHeader(NEXT_DID_POSTPONE_HEADER, '2')\n\n        // Add the cache tags header to the response if it exists and we're in\n        // minimal mode while rendering a static page.\n        const tags = cachedData.headers?.[NEXT_CACHE_TAGS_HEADER]\n        if (minimalMode && isSSG && tags && typeof tags === 'string') {\n          res.setHeader(NEXT_CACHE_TAGS_HEADER, tags)\n        }\n\n        const matchedSegment = cachedData.segmentData.get(segmentPrefetchHeader)\n        if (matchedSegment !== undefined) {\n          // Cache hit\n          return sendRenderResult({\n            req,\n            res,\n            generateEtags: nextConfig.generateEtags,\n            poweredByHeader: nextConfig.poweredByHeader,\n            result: RenderResult.fromStatic(\n              matchedSegment,\n              RSC_CONTENT_TYPE_HEADER\n            ),\n            cacheControl: cacheEntry.cacheControl,\n          })\n        }\n\n        // Cache miss. Either a cache entry for this route has not been generated\n        // (which technically should not be possible when PPR is enabled, because\n        // at a minimum there should always be a fallback entry) or there's no\n        // match for the requested segment. Respond with a 204 No Content. We\n        // don't bother to respond with 404, because these requests are only\n        // issued as part of a prefetch.\n        res.statusCode = 204\n        return sendRenderResult({\n          req,\n          res,\n          generateEtags: nextConfig.generateEtags,\n          poweredByHeader: nextConfig.poweredByHeader,\n          result: RenderResult.EMPTY,\n          cacheControl: cacheEntry.cacheControl,\n        })\n      }\n\n      // If there's a callback for `onCacheEntry`, call it with the cache entry\n      // and the revalidate options.\n      const onCacheEntry = getRequestMeta(req, 'onCacheEntry')\n      if (onCacheEntry) {\n        const finished = await onCacheEntry(\n          {\n            ...cacheEntry,\n            // TODO: remove this when upstream doesn't\n            // always expect this value to be \"PAGE\"\n            value: {\n              ...cacheEntry.value,\n              kind: 'PAGE',\n            },\n          },\n          {\n            url: getRequestMeta(req, 'initURL'),\n          }\n        )\n        if (finished) {\n          // TODO: maybe we have to end the request?\n          return null\n        }\n      }\n\n      // If the request has a postponed state and it's a resume request we\n      // should error.\n      if (didPostpone && minimalPostponed) {\n        throw new Error(\n          'Invariant: postponed state should not be present on a resume request'\n        )\n      }\n\n      if (cachedData.headers) {\n        const headers = { ...cachedData.headers }\n\n        if (!minimalMode || !isSSG) {\n          delete headers[NEXT_CACHE_TAGS_HEADER]\n        }\n\n        for (let [key, value] of Object.entries(headers)) {\n          if (typeof value === 'undefined') continue\n\n          if (Array.isArray(value)) {\n            for (const v of value) {\n              res.appendHeader(key, v)\n            }\n          } else if (typeof value === 'number') {\n            value = value.toString()\n            res.appendHeader(key, value)\n          } else {\n            res.appendHeader(key, value)\n          }\n        }\n      }\n\n      // Add the cache tags header to the response if it exists and we're in\n      // minimal mode while rendering a static page.\n      const tags = cachedData.headers?.[NEXT_CACHE_TAGS_HEADER]\n      if (minimalMode && isSSG && tags && typeof tags === 'string') {\n        res.setHeader(NEXT_CACHE_TAGS_HEADER, tags)\n      }\n\n      // If the request is a data request, then we shouldn't set the status code\n      // from the response because it should always be 200. This should be gated\n      // behind the experimental PPR flag.\n      if (cachedData.status && (!isRSCRequest || !isRoutePPREnabled)) {\n        res.statusCode = cachedData.status\n      }\n\n      // Redirect information is encoded in RSC payload, so we don't need to use redirect status codes\n      if (\n        !minimalMode &&\n        cachedData.status &&\n        RedirectStatusCode[cachedData.status] &&\n        isRSCRequest\n      ) {\n        res.statusCode = 200\n      }\n\n      // Mark that the request did postpone.\n      if (didPostpone) {\n        res.setHeader(NEXT_DID_POSTPONE_HEADER, '1')\n      }\n\n      // we don't go through this block when preview mode is true\n      // as preview mode is a dynamic request (bypasses cache) and doesn't\n      // generate both HTML and payloads in the same request so continue to just\n      // return the generated payload\n      if (isRSCRequest && !isDraftMode) {\n        // If this is a dynamic RSC request, then stream the response.\n        if (typeof cachedData.rscData === 'undefined') {\n          if (cachedData.postponed) {\n            throw new Error('Invariant: Expected postponed to be undefined')\n          }\n\n          return sendRenderResult({\n            req,\n            res,\n            generateEtags: nextConfig.generateEtags,\n            poweredByHeader: nextConfig.poweredByHeader,\n            result: cachedData.html,\n            // Dynamic RSC responses cannot be cached, even if they're\n            // configured with `force-static` because we have no way of\n            // distinguishing between `force-static` and pages that have no\n            // postponed state.\n            // TODO: distinguish `force-static` from pages with no postponed state (static)\n            cacheControl: isDynamicRSCRequest\n              ? { revalidate: 0, expire: undefined }\n              : cacheEntry.cacheControl,\n          })\n        }\n\n        // As this isn't a prefetch request, we should serve the static flight\n        // data.\n        return sendRenderResult({\n          req,\n          res,\n          generateEtags: nextConfig.generateEtags,\n          poweredByHeader: nextConfig.poweredByHeader,\n          result: RenderResult.fromStatic(\n            cachedData.rscData,\n            RSC_CONTENT_TYPE_HEADER\n          ),\n          cacheControl: cacheEntry.cacheControl,\n        })\n      }\n\n      // This is a request for HTML data.\n      let body = cachedData.html\n\n      // If there's no postponed state, we should just serve the HTML. This\n      // should also be the case for a resume request because it's completed\n      // as a server render (rather than a static render).\n      if (!didPostpone || minimalMode || isRSCRequest) {\n        // If we're in test mode, we should add a sentinel chunk to the response\n        // that's between the static and dynamic parts so we can compare the\n        // chunks and add assertions.\n        if (\n          process.env.__NEXT_TEST_MODE &&\n          minimalMode &&\n          isRoutePPREnabled &&\n          body.contentType === HTML_CONTENT_TYPE_HEADER\n        ) {\n          // As we're in minimal mode, the static part would have already been\n          // streamed first. The only part that this streams is the dynamic part\n          // so we should FIRST stream the sentinel and THEN the dynamic part.\n          body.unshift(createPPRBoundarySentinel())\n        }\n\n        return sendRenderResult({\n          req,\n          res,\n          generateEtags: nextConfig.generateEtags,\n          poweredByHeader: nextConfig.poweredByHeader,\n          result: body,\n          cacheControl: cacheEntry.cacheControl,\n        })\n      }\n\n      // If we're debugging the static shell or the dynamic API accesses, we\n      // should just serve the HTML without resuming the render. The returned\n      // HTML will be the static shell so all the Dynamic API's will be used\n      // during static generation.\n      if (isDebugStaticShell || isDebugDynamicAccesses) {\n        // Since we're not resuming the render, we need to at least add the\n        // closing body and html tags to create valid HTML.\n        body.push(\n          new ReadableStream({\n            start(controller) {\n              controller.enqueue(ENCODED_TAGS.CLOSED.BODY_AND_HTML)\n              controller.close()\n            },\n          })\n        )\n\n        return sendRenderResult({\n          req,\n          res,\n          generateEtags: nextConfig.generateEtags,\n          poweredByHeader: nextConfig.poweredByHeader,\n          result: body,\n          cacheControl: { revalidate: 0, expire: undefined },\n        })\n      }\n\n      // If we're in test mode, we should add a sentinel chunk to the response\n      // that's between the static and dynamic parts so we can compare the\n      // chunks and add assertions.\n      if (process.env.__NEXT_TEST_MODE) {\n        body.push(createPPRBoundarySentinel())\n      }\n\n      // This request has postponed, so let's create a new transformer that the\n      // dynamic data can pipe to that will attach the dynamic data to the end\n      // of the response.\n      const transformer = new TransformStream<Uint8Array, Uint8Array>()\n      body.push(transformer.readable)\n\n      // Perform the render again, but this time, provide the postponed state.\n      // We don't await because we want the result to start streaming now, and\n      // we've already chained the transformer's readable to the render result.\n      doRender({\n        span,\n        postponed: cachedData.postponed,\n        // This is a resume render, not a fallback render, so we don't need to\n        // set this.\n        fallbackRouteParams: null,\n      })\n        .then(async (result) => {\n          if (!result) {\n            throw new Error('Invariant: expected a result to be returned')\n          }\n\n          if (result.value?.kind !== CachedRouteKind.APP_PAGE) {\n            throw new Error(\n              `Invariant: expected a page response, got ${result.value?.kind}`\n            )\n          }\n\n          // Pipe the resume result to the transformer.\n          await result.value.html.pipeTo(transformer.writable)\n        })\n        .catch((err) => {\n          // An error occurred during piping or preparing the render, abort\n          // the transformers writer so we can terminate the stream.\n          transformer.writable.abort(err).catch((e) => {\n            console.error(\"couldn't abort transformer\", e)\n          })\n        })\n\n      return sendRenderResult({\n        req,\n        res,\n        generateEtags: nextConfig.generateEtags,\n        poweredByHeader: nextConfig.poweredByHeader,\n        result: body,\n        // We don't want to cache the response if it has postponed data because\n        // the response being sent to the client it's dynamic parts are streamed\n        // to the client on the same request.\n        cacheControl: { revalidate: 0, expire: undefined },\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(activeSpan)\n    } else {\n      return 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: 'App Router',\n          routePath: srcPage,\n          routeType: 'render',\n          revalidateReason: getRevalidateReason({\n            isRevalidate: isSSG,\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// TODO: omit this from production builds, only test builds should include it\n/**\n * Creates a readable stream that emits a PPR boundary sentinel.\n *\n * @returns A readable stream that emits a PPR boundary sentinel.\n */\nfunction createPPRBoundarySentinel() {\n  return new ReadableStream({\n    start(controller) {\n      controller.enqueue(\n        new TextEncoder().encode('<!-- PPR_BOUNDARY_SENTINEL -->')\n      )\n      controller.close()\n    },\n  })\n}\n"],"names":["AppPageRouteModule","RouteKind","getRevalidateReason","getTracer","SpanKind","getRequestMeta","BaseServerSpan","interopDefault","stripFlightHeaders","NodeNextRequest","NodeNextResponse","checkIsAppPPREnabled","getFallbackRouteParams","setReferenceManifestsSingleton","isHtmlBotRequest","shouldServeStreamingMetadata","createServerModuleMap","normalizeAppPath","getIsPossibleServerAction","RSC_HEADER","NEXT_ROUTER_PREFETCH_HEADER","NEXT_IS_PRERENDER_HEADER","NEXT_DID_POSTPONE_HEADER","RSC_CONTENT_TYPE_HEADER","getBotType","isBot","CachedRouteKind","FallbackMode","parseFallbackField","RenderResult","CACHE_ONE_YEAR","HTML_CONTENT_TYPE_HEADER","NEXT_CACHE_TAGS_HEADER","ENCODED_TAGS","sendRenderResult","NoFallbackError","tree","pages","GlobalError","__next_app__","require","__next_app_require__","loadChunk","__next_app_load_chunk__","entryBase","RedirectStatusCode","routeModule","definition","kind","APP_PAGE","page","pathname","bundlePath","filename","appPaths","userland","loaderTree","distDir","process","env","__NEXT_RELATIVE_DIST_DIR","relativeProjectDir","__NEXT_RELATIVE_PROJECT_DIR","handler","req","res","ctx","prerenderManifest","srcPage","TURBOPACK","replace","multiZoneDraftMode","__NEXT_MULTI_ZONE_DRAFT_MODE","initialPostponed","minimalMode","prepareResult","prepare","statusCode","end","waitUntil","Promise","resolve","buildId","query","params","parsedUrl","pageIsDynamic","buildManifest","nextFontManifest","reactLoadableManifest","serverActionsManifest","clientReferenceManifest","subresourceIntegrityManifest","isDraftMode","resolvedPathname","revalidateOnlyGenerated","routerServerContext","nextConfig","interceptionRoutePatterns","normalizedSrcPage","isOnDemandRevalidate","prerenderInfo","match","isPrerendered","routes","isSSG","Boolean","userAgent","headers","botType","isHtmlBot","isPrefetchRSCRequest","isRSCRequest","isPossibleServerAction","couldSupportPPR","experimental","ppr","hasDebugStaticShellQuery","__NEXT_EXPERIMENTAL_STATIC_SHELL_DEBUGGING","__nextppronly","hasDebugFallbackShellQuery","isRoutePPREnabled","dynamicRoutes","renderingMode","isDev","experimentalTestProxy","isDebugStaticShell","isDebugDynamicAccesses","isDebugFallbackShell","minimalPostponed","undefined","isDynamicRSCRequest","segmentPrefetchHeader","serveStreamingMetadata","htmlLimitedBots","supportsDynamicResponse","shouldWaitOnAllReady","ssgCacheKey","staticPathKey","ComponentMod","serverModuleMap","method","tracer","activeSpan","getActiveScopeSpan","varyHeader","getVaryHeader","setHeader","invokeRouteModule","span","context","nextReq","nextRes","NODE_ENV","cacheComponents","renderOpts","warmup","metadata","renderResumeDataCache","render","finally","setAttributes","rootSpanAttributes","getRootSpanAttributes","get","handleRequest","console","warn","route","name","updateName","url","doRender","postponed","fallbackRouteParams","sharedContext","serverComponentsHmrCache","App","Document","pageConfig","Component","setIsrStatus","dir","NEXT_RUNTIME","join","cwd","isRevalidate","assetPrefix","nextConfigOutput","output","crossOrigin","trailingSlash","previewProps","preview","deploymentId","enableTainting","taint","devtoolSegmentExplorer","reactMaxHeadersLength","incrementalCache","cacheLifeProfiles","cacheLife","basePath","serverActions","nextExport","isStaticGeneration","expireTime","staleTimes","clientSegmentCache","clientParamParsing","dynamicOnHover","inlineCss","authInterrupts","clientTraceMetadata","onClose","cb","on","onAfterTaskError","onInstrumentationRequestError","error","_request","errorContext","onRequestError","err","dev","result","cacheControl","fetchTags","cacheTags","fetchMetrics","revalidate","staticBailoutInfo","Error","description","stack","message","substring","indexOf","value","html","rscData","flightData","status","segmentData","responseGenerator","hasResolved","previousCacheEntry","isRevalidating","isProduction","didRespond","writableEnded","render404","fallbackMode","fallback","PRERENDER","BLOCKING_STATIC_RENDER","isStale","NOT_FOUND","fallbackResponse","cacheKey","handleResponse","routeKind","isFallback","expire","PAGES","EMPTY","pageData","cacheEntry","cachedData","c","didPostpone","isMiss","getHeader","tags","matchedSegment","generateEtags","poweredByHeader","fromStatic","onCacheEntry","finished","key","Object","entries","Array","isArray","v","appendHeader","toString","body","__NEXT_TEST_MODE","contentType","unshift","createPPRBoundarySentinel","push","ReadableStream","start","controller","enqueue","CLOSED","BODY_AND_HTML","close","transformer","TransformStream","readable","then","pipeTo","writable","catch","abort","e","withPropagatedContext","trace","spanName","SERVER","attributes","routerKind","routePath","routeType","revalidateReason","TextEncoder","encode"],"mappings":"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","ignoreList":[0]}