{"version":3,"sources":["../../src/server/next-server.ts"],"sourcesContent":["import './node-environment'\nimport './require-hook'\nimport './node-polyfill-crypto'\n\nimport type { CacheFs } from '../shared/lib/utils'\nimport {\n  DecodeError,\n  PageNotFoundError,\n  MiddlewareNotFoundError,\n} from '../shared/lib/utils'\nimport type { MiddlewareManifest } from '../build/webpack/plugins/middleware-plugin'\nimport type RenderResult from './render-result'\nimport type { FetchEventResult } from './web/types'\nimport type { PrerenderManifest, RoutesManifest } from '../build'\nimport type { PagesManifest } from '../build/webpack/plugins/pages-manifest-plugin'\nimport type {\n  NextParsedUrlQuery,\n  NextUrlWithParsedQuery,\n  RequestMeta,\n} from './request-meta'\nimport type { Params } from './request/params'\nimport type { MiddlewareRouteMatch } from '../shared/lib/router/utils/middleware-route-matcher'\nimport type { RouteMatch } from './route-matches/route-match'\nimport type { IncomingMessage, ServerResponse } from 'http'\nimport type { ParsedUrlQuery } from 'querystring'\nimport type { ParsedUrl } from '../shared/lib/router/utils/parse-url'\nimport type { CacheControl } from './lib/cache-control'\nimport type { WaitUntil } from './after/builtin-request-context'\nimport type { AppPageModule } from './route-modules/app-page/module'\nimport type { AppRouteModule } from './route-modules/app-route/module.compiled'\nimport type { ErrorModule } from './load-default-error-components'\nimport type { PagesModule } from './route-modules/pages/module.compiled'\n\nimport fs from 'fs'\nimport { join, relative } from 'path'\nimport { getRouteMatcher } from '../shared/lib/router/utils/route-matcher'\nimport { addRequestMeta, getRequestMeta, setRequestMeta } from './request-meta'\nimport {\n  PAGES_MANIFEST,\n  BUILD_ID_FILE,\n  MIDDLEWARE_MANIFEST,\n  PREFETCH_HINTS,\n  PRERENDER_MANIFEST,\n  ROUTES_MANIFEST,\n  CLIENT_PUBLIC_FILES_PATH,\n  APP_PATHS_MANIFEST,\n  SERVER_DIRECTORY,\n  NEXT_FONT_MANIFEST,\n  UNDERSCORE_NOT_FOUND_ROUTE_ENTRY,\n  FUNCTIONS_CONFIG_MANIFEST,\n} from '../shared/lib/constants'\nimport { findDir } from '../lib/find-pages-dir'\nimport { NodeNextRequest, NodeNextResponse } from './base-http/node'\nimport { sendRenderResult } from './send-payload'\nimport { parseUrl } from '../shared/lib/router/utils/parse-url'\nimport * as Log from '../build/output/log'\n\nimport type {\n  Options,\n  FindComponentsResult,\n  MiddlewareRoutingItem,\n  RequestContext,\n  NormalizedRouteManifest,\n  LoadedRenderOpts,\n  RouteHandler,\n  NextEnabledDirectories,\n  BaseRequestHandler,\n} from './base-server'\nimport BaseServer from './base-server'\nimport { getMaybePagePath, getPagePath } from './require'\nimport { denormalizePagePath } from '../shared/lib/page-path/denormalize-page-path'\nimport { normalizePagePath } from '../shared/lib/page-path/normalize-page-path'\nimport { loadComponents } from './load-components'\nimport type { LoadComponentsReturnType } from './load-components'\nimport isError, { getProperError } from '../lib/is-error'\nimport { splitCookiesString, toNodeOutgoingHttpHeaders } from './web/utils'\nimport { getMiddlewareRouteMatcher } from '../shared/lib/router/utils/middleware-route-matcher'\nimport { loadEnvConfig } from '@next/env'\nimport { urlQueryToSearchParams } from '../shared/lib/router/utils/querystring'\nimport { removeTrailingSlash } from '../shared/lib/router/utils/remove-trailing-slash'\nimport { getNextPathnameInfo } from '../shared/lib/router/utils/get-next-pathname-info'\nimport { getCloneableBody } from './body-streams'\nimport { checkIsOnDemandRevalidate } from './api-utils'\nimport ResponseCache, {\n  CachedRouteKind,\n  type IncrementalResponseCacheEntry,\n} from './response-cache'\nimport {\n  IncrementalCache,\n  type CacheHandler as ICacheHandler,\n} from './lib/incremental-cache'\nimport { normalizeAppPath } from '../shared/lib/router/utils/app-paths'\n\nimport { setHttpClientAndAgentOptions } from './setup-http-agent-env'\n\nimport { isPagesAPIRouteMatch } from './route-matches/pages-api-route-match'\nimport type { PagesAPIRouteMatch } from './route-matches/pages-api-route-match'\nimport type { MatchOptions } from './route-matcher-managers/route-matcher-manager'\nimport { BubbledError, getTracer } from './lib/trace/tracer'\nimport { NextNodeServerSpan } from './lib/trace/constants'\nimport { nodeFs } from './lib/node-fs-methods'\nimport { getRouteRegex } from '../shared/lib/router/utils/route-regex'\nimport { pipeToNodeResponse } from './pipe-readable'\nimport { createRequestResponseMocks } from './lib/mock-request'\nimport { NEXT_RSC_UNION_QUERY } from '../client/components/app-router-headers'\nimport { signalFromNodeResponse } from './web/spec-extension/adapters/next-request'\nimport { loadManifest } from './load-manifest.external'\nimport { lazyRenderAppPage } from './route-modules/app-page/module.render'\nimport { lazyRenderPagesPage } from './route-modules/pages/module.render'\nimport { interopDefault } from '../lib/interop-default'\nimport { formatDynamicImportPath } from '../lib/format-dynamic-import-path'\nimport type { NextFontManifest } from '../build/webpack/plugins/next-font-manifest-plugin'\nimport { isInterceptionRouteRewrite } from '../lib/is-interception-route-rewrite'\nimport type { ServerOnInstrumentationRequestError } from './app-render/types'\nimport type { PrefetchHints } from '../shared/lib/app-router-types'\nimport { RouteKind } from './route-kind'\nimport { InvariantError } from '../shared/lib/invariant-error'\nimport { AwaiterOnce } from './after/awaiter'\nimport { AsyncCallbackSet } from './lib/async-callback-set'\nimport { initializeCacheHandlers, setCacheHandler } from './use-cache/handlers'\nimport type { UnwrapPromise } from '../lib/coalesced-function'\nimport { populateStaticEnv } from '../lib/static-env'\nimport { NodeModuleLoader } from './lib/module-loader/node-module-loader'\nimport { NoFallbackError } from '../shared/lib/no-fallback-error.external'\nimport {\n  ensureInstrumentationRegistered,\n  getInstrumentationModule,\n} from './lib/router-utils/instrumentation-globals.external'\nimport {\n  RouterServerContextSymbol,\n  routerServerGlobal,\n} from './lib/router-utils/router-server-context'\nimport { installGlobalBehaviors } from './node-environment-extensions/global-behaviors'\nimport { installProcessErrorHandlers } from './node-environment-extensions/process-error-handlers'\n\nexport * from './base-server'\n\n// For module that can be both CJS or ESM\nconst dynamicImportEsmDefault = process.env.NEXT_MINIMAL\n  ? (id: string) =>\n      import(/* webpackIgnore: true */ id).then((mod) => mod.default || mod)\n  : (id: string) => import(id).then((mod) => mod.default || mod)\n\nexport type NodeRequestHandler = BaseRequestHandler<\n  IncomingMessage | NodeNextRequest,\n  ServerResponse | NodeNextResponse\n>\n\ntype NodeRouteHandler = RouteHandler<NodeNextRequest, NodeNextResponse>\n\nconst MiddlewareMatcherCache = new WeakMap<\n  MiddlewareManifest['middleware'][string],\n  MiddlewareRouteMatch\n>()\n\nfunction getMiddlewareMatcher(\n  info: MiddlewareManifest['middleware'][string]\n): MiddlewareRouteMatch {\n  const stored = MiddlewareMatcherCache.get(info)\n  if (stored) {\n    return stored\n  }\n\n  if (!Array.isArray(info.matchers)) {\n    throw new Error(\n      `Invariant: invalid matchers for middleware ${JSON.stringify(info)}`\n    )\n  }\n\n  const matcher = getMiddlewareRouteMatcher(info.matchers)\n  MiddlewareMatcherCache.set(info, matcher)\n  return matcher\n}\n\nexport default class NextNodeServer extends BaseServer<\n  Options,\n  NodeNextRequest,\n  NodeNextResponse\n> {\n  protected middlewareManifestPath: string\n  private _serverDistDir: string | undefined\n  private imageResponseCache?: ResponseCache\n  private imageCacheHandler?: ICacheHandler\n  protected renderWorkersPromises?: Promise<void>\n  protected dynamicRoutes?: {\n    match: import('../shared/lib/router/utils/route-matcher').RouteMatchFn\n    page: string\n    re: RegExp\n  }[]\n  private routerServerHandler?: (\n    req: IncomingMessage,\n    res: ServerResponse\n  ) => void\n\n  protected cleanupListeners = new AsyncCallbackSet()\n  protected internalWaitUntil: WaitUntil | undefined\n  private isDev: boolean\n  private sriEnabled: boolean\n\n  constructor(options: Options) {\n    // Initialize super class\n    super(options)\n\n    installGlobalBehaviors(this.nextConfig)\n\n    // Load prefetch hints from the build output. This must happen before\n    // any render to ensure segment inlining decisions are available.\n    this.renderOpts.prefetchHints = this.getPrefetchHints()\n\n    const isDev = options.dev ?? false\n    this.isDev = isDev\n    this.sriEnabled = Boolean(options.conf.experimental?.sri?.algorithm)\n\n    /**\n     * This sets environment variable to be used at the time of SSR by head.tsx.\n     * Using this from process.env allows targeting SSR by calling\n     * `process.env.__NEXT_OPTIMIZE_CSS`.\n     */\n    if (this.renderOpts.optimizeCss) {\n      process.env.__NEXT_OPTIMIZE_CSS = JSON.stringify(true)\n    }\n    if (this.renderOpts.nextScriptWorkers) {\n      process.env.__NEXT_SCRIPT_WORKERS = JSON.stringify(true)\n    }\n\n    if (!this.minimalMode) {\n      this.imageResponseCache = new ResponseCache(this.minimalMode)\n    }\n\n    if (\n      !options.dev &&\n      !this.minimalMode &&\n      this.nextConfig.experimental.preloadEntriesOnStart\n    ) {\n      this.unstable_preloadEntries()\n    }\n\n    if (!options.dev) {\n      const { dynamicRoutes = [] } = this.getRoutesManifest() ?? {}\n      this.dynamicRoutes = dynamicRoutes.map((r) => {\n        // TODO: can we just re-use the regex from the manifest?\n        const regex = getRouteRegex(r.page)\n        const match = getRouteMatcher(regex)\n\n        return {\n          match,\n          page: r.page,\n          re: regex.re,\n        }\n      })\n    }\n\n    // ensure options are set when loadConfig isn't called\n    setHttpClientAndAgentOptions(this.nextConfig)\n\n    // Intercept fetch and other testmode apis.\n    if (this.serverOptions.experimentalTestProxy) {\n      process.env.NEXT_PRIVATE_TEST_PROXY = 'true'\n      const { interceptTestApis } =\n        // eslint-disable-next-line @next/internal/typechecked-require -- experimental/testmode is not built ins next/dist/esm\n        require('next/dist/experimental/testmode/server') as typeof import('../experimental/testmode/server')\n      interceptTestApis()\n    }\n\n    this.middlewareManifestPath = join(\n      /* turbopackIgnore: true */ this.serverDistDir,\n      MIDDLEWARE_MANIFEST\n    )\n\n    // This is just optimization to fire prepare as soon as possible. It will be\n    // properly awaited later. We add the catch here to ensure that it does not\n    // cause a unhandled promise rejection. The promise rejection will be\n    // handled later on via the `await` when the request handler is called.\n    if (!options.dev) {\n      this.prepare().catch((err) => {\n        console.error('Failed to prepare server', err)\n      })\n    }\n\n    // when using compile mode static env isn't inlined so we\n    // need to populate in normal runtime env\n    if (this.renderOpts.isExperimentalCompile) {\n      // immutableAssetToken only works with Turbopack, and `isExperimentalCompile` isn't supported\n      // with that anyway, so we can assign immutableAssetToken to deploymentId here\n      populateStaticEnv(this.nextConfig, this.deploymentId || '')\n    }\n\n    const shouldRemoveUncaughtErrorAndRejectionListeners = Boolean(\n      options.conf.experimental?.removeUncaughtErrorAndRejectionListeners\n    )\n    installProcessErrorHandlers(shouldRemoveUncaughtErrorAndRejectionListeners)\n  }\n\n  public async unstable_preloadEntries(): Promise<void> {\n    // Ensure prepare process will be finished before preloading entries.\n    await this.prepare()\n\n    const appPathsManifest = this.getAppPathsManifest()\n    const pagesManifest = this.getPagesManifest()\n\n    await this.loadCustomCacheHandlers()\n\n    for (const page of Object.keys(pagesManifest || {})) {\n      try {\n        await loadComponents({\n          distDir: this.distDir,\n          page,\n          isAppPath: false,\n          isDev: this.isDev,\n          sriEnabled: this.sriEnabled,\n          needsManifestsForLegacyReasons: false,\n        })\n      } catch (_err) {\n        // Intentionally ignored because this is a preload step.\n      }\n    }\n\n    for (const page of Object.keys(appPathsManifest || {})) {\n      try {\n        const { ComponentMod } = await loadComponents<\n          AppPageModule | AppRouteModule\n        >({\n          distDir: this.distDir,\n          page,\n          isAppPath: true,\n          isDev: this.isDev,\n          sriEnabled: this.sriEnabled,\n          needsManifestsForLegacyReasons: false,\n        })\n        // we need to ensure fetch is patched before we require the page,\n        // otherwise if the fetch is patched by user code, we will be patching it\n        // too late and there won't be any caching behaviors\n        ComponentMod.patchFetch()\n      } catch (_err) {\n        // Intentionally ignored because this is a preload step.\n      }\n    }\n  }\n\n  protected async handleUpgrade(): Promise<void> {\n    // The web server does not support web sockets, it's only used for HMR in\n    // development.\n  }\n\n  protected async loadInstrumentationModule() {\n    if (!this.serverOptions.dev) {\n      try {\n        this.instrumentation = await getInstrumentationModule(\n          this.dir,\n          this.nextConfig.distDir\n        )\n      } catch (err: any) {\n        if (err.code !== 'MODULE_NOT_FOUND') {\n          throw new Error(\n            'An error occurred while loading the instrumentation hook',\n            { cause: err }\n          )\n        }\n      }\n    }\n    return this.instrumentation\n  }\n\n  protected async prepareImpl() {\n    await super.prepareImpl()\n    await this.runInstrumentationHookIfAvailable()\n  }\n\n  protected async runInstrumentationHookIfAvailable() {\n    await ensureInstrumentationRegistered(this.dir, this.nextConfig.distDir)\n  }\n\n  protected loadEnvConfig({\n    dev,\n    forceReload,\n  }: {\n    dev: boolean\n    forceReload: boolean\n  }) {\n    loadEnvConfig(\n      this.dir,\n      dev,\n      Log,\n      forceReload,\n      forceReload\n        ? (envFilePath) => {\n            Log.info(`Reload env: ${envFilePath}`)\n          }\n        : undefined\n    )\n  }\n\n  private async loadCustomCacheHandlers() {\n    const { cacheMaxMemorySize, cacheHandlers } = this.nextConfig\n    if (!cacheHandlers) return\n\n    // If we've already initialized the cache handlers interface, don't do it\n    // again.\n    if (!initializeCacheHandlers(cacheMaxMemorySize)) return\n\n    for (const [kind, handler] of Object.entries(cacheHandlers)) {\n      if (!handler) continue\n\n      setCacheHandler(\n        kind,\n        interopDefault(\n          await dynamicImportEsmDefault(\n            formatDynamicImportPath(this.distDir, handler)\n          )\n        )\n      )\n    }\n  }\n\n  protected async getIncrementalCache({\n    requestHeaders,\n  }: {\n    requestHeaders: IncrementalCache['requestHeaders']\n  }) {\n    const dev = !!this.dev\n    let CacheHandler: any\n    const { cacheHandler } = this.nextConfig\n\n    if (cacheHandler) {\n      CacheHandler = interopDefault(\n        await dynamicImportEsmDefault(\n          formatDynamicImportPath(this.distDir, cacheHandler)\n        )\n      )\n    }\n\n    await this.loadCustomCacheHandlers()\n\n    // incremental-cache is request specific\n    // although can have shared caches in module scope\n    // per-cache handler\n    return new IncrementalCache({\n      fs: this.getCacheFilesystem(),\n      dev,\n      requestHeaders,\n      allowedRevalidateHeaderKeys:\n        this.nextConfig.experimental.allowedRevalidateHeaderKeys,\n      minimalMode: this.minimalMode,\n      serverDistDir: this.serverDistDir,\n      fetchCacheKeyPrefix: this.nextConfig.experimental.fetchCacheKeyPrefix,\n      maxMemoryCacheSize: this.nextConfig.cacheMaxMemorySize,\n      flushToDisk:\n        !this.minimalMode && this.nextConfig.experimental.isrFlushToDisk,\n      getPrerenderManifest: () => this.getPrerenderManifest(),\n      CurCacheHandler: CacheHandler,\n    })\n  }\n\n  protected getPublicDir(): string {\n    return join(/* turbopackIgnore: true */ this.dir, CLIENT_PUBLIC_FILES_PATH)\n  }\n\n  protected getHasStaticDir(): boolean {\n    return fs.existsSync(\n      /* turbopackIgnore: true */ join(\n        /* turbopackIgnore: true */ this.dir,\n        'static'\n      )\n    )\n  }\n\n  protected getPagesManifest(): PagesManifest | undefined {\n    return loadManifest(\n      join(/* turbopackIgnore: true */ this.serverDistDir, PAGES_MANIFEST)\n    ) as PagesManifest\n  }\n\n  protected getAppPathsManifest(): PagesManifest | undefined {\n    if (!this.enabledDirectories.app) return undefined\n\n    return loadManifest(\n      join(/* turbopackIgnore: true */ this.serverDistDir, APP_PATHS_MANIFEST)\n    ) as PagesManifest\n  }\n\n  protected getinterceptionRoutePatterns(): RegExp[] {\n    if (!this.enabledDirectories.app) return []\n\n    const routesManifest = this.getRoutesManifest()\n    return (\n      routesManifest?.rewrites.beforeFiles\n        .filter(isInterceptionRouteRewrite)\n        .map((rewrite) => new RegExp(rewrite.regex)) ?? []\n    )\n  }\n\n  protected async hasPage(pathname: string): Promise<boolean> {\n    return !!getMaybePagePath(\n      pathname,\n      this.distDir,\n      this.nextConfig.i18n?.locales,\n      this.enabledDirectories.app\n    )\n  }\n\n  protected getBuildId(): string {\n    const buildIdFile = join(\n      /* turbopackIgnore: true */ this.distDir,\n      BUILD_ID_FILE\n    )\n    try {\n      return fs\n        .readFileSync(/* turbopackIgnore: true */ buildIdFile, 'utf8')\n        .trim()\n    } catch (err: any) {\n      if (err.code === 'ENOENT') {\n        throw new Error(\n          `Could not find a production build in the '${this.distDir}' directory. Try building your app with 'next build' before starting the production server. https://nextjs.org/docs/messages/production-start-no-build-id`\n        )\n      }\n\n      throw err\n    }\n  }\n\n  protected getEnabledDirectories(dev: boolean): NextEnabledDirectories {\n    const dir = dev ? this.dir : this.serverDistDir\n\n    return {\n      app: findDir(dir, 'app') ? true : false,\n      pages: findDir(dir, 'pages') ? true : false,\n    }\n  }\n\n  protected sendRenderResult(\n    req: NodeNextRequest,\n    res: NodeNextResponse,\n    options: {\n      result: RenderResult\n      generateEtags: boolean\n      poweredByHeader: boolean\n      cacheControl: CacheControl | undefined\n    }\n  ): Promise<void> {\n    return sendRenderResult({\n      req: req.originalRequest,\n      res: res.originalResponse,\n      result: options.result,\n      generateEtags: options.generateEtags,\n      poweredByHeader: options.poweredByHeader,\n      cacheControl: options.cacheControl,\n    })\n  }\n\n  protected async runApi(\n    req: NodeNextRequest,\n    res: NodeNextResponse,\n    query: ParsedUrlQuery,\n    match: PagesAPIRouteMatch\n  ): Promise<boolean> {\n    const edgeFunctionsPages = this.getEdgeFunctionsPages()\n\n    for (const edgeFunctionsPage of edgeFunctionsPages) {\n      if (edgeFunctionsPage === match.definition.pathname) {\n        const handledAsEdgeFunction = await this.runEdgeFunction({\n          req,\n          res,\n          query,\n          params: match.params,\n          page: match.definition.pathname,\n          appPaths: null,\n        })\n\n        if (handledAsEdgeFunction) {\n          return true\n        }\n      }\n    }\n    // The module supports minimal mode, load the minimal module.\n    // Restore original URL as the handler handles it's own parsing\n    const parsedInitUrl = parseUrl(getRequestMeta(req, 'initURL') || req.url)\n    req.url = `${parsedInitUrl.pathname}${parsedInitUrl.search || ''}`\n\n    const loader = new NodeModuleLoader()\n    const module = (await loader.load(match.definition.filename)) as {\n      handler: (\n        req: IncomingMessage,\n        res: ServerResponse,\n        ctx: {\n          waitUntil: ReturnType<BaseServer['getWaitUntil']>\n        }\n      ) => Promise<void>\n    }\n    addRequestMeta(\n      req.originalRequest,\n      'relativeProjectDir',\n      relative(process.cwd(), this.dir)\n    )\n    addRequestMeta(req.originalRequest, 'distDir', this.distDir)\n    await module.handler(req.originalRequest, res.originalResponse, {\n      waitUntil: this.getWaitUntil(),\n    })\n    return true\n  }\n\n  protected async renderHTML(\n    req: NodeNextRequest,\n    res: NodeNextResponse,\n    pathname: string,\n    query: NextParsedUrlQuery,\n    renderOpts: LoadedRenderOpts\n  ): Promise<RenderResult> {\n    return getTracer().trace(NextNodeServerSpan.renderHTML, async () =>\n      this.renderHTMLImpl(req, res, pathname, query, renderOpts)\n    )\n  }\n\n  private async renderHTMLImpl(\n    req: NodeNextRequest,\n    res: NodeNextResponse,\n    pathname: string,\n    query: NextParsedUrlQuery,\n    renderOpts: LoadedRenderOpts\n  ): Promise<RenderResult> {\n    if (process.env.NEXT_MINIMAL) {\n      throw new Error(\n        'Invariant: renderHTML should not be called in minimal mode'\n      )\n      // the `else` branch is needed for tree-shaking\n    } else {\n      // Due to the way we pass data by mutating `renderOpts`, we can't extend the\n      // object here but only updating its `nextFontManifest` field.\n      // https://github.com/vercel/next.js/blob/df7cbd904c3bd85f399d1ce90680c0ecf92d2752/packages/next/server/render.tsx#L947-L952\n      renderOpts.nextFontManifest = this.nextFontManifest\n\n      if (this.enabledDirectories.app && renderOpts.isAppPath) {\n        return lazyRenderAppPage(\n          req,\n          res,\n          pathname,\n          query,\n          // This code path does not service revalidations for unknown param\n          // shells. As a result, we don't need to pass in the unknown params.\n          null,\n          renderOpts as LoadedRenderOpts<AppPageModule>,\n          this.getServerComponentsHmrCache(),\n          {\n            buildId: this.buildId,\n            deploymentId: this.deploymentId,\n            clientAssetToken:\n              this.nextConfig.experimental.immutableAssetToken ??\n              this.deploymentId,\n          }\n        )\n      } else {\n        // TODO: re-enable this once we've refactored to use implicit matches\n        // throw new Error('Invariant: render should have used routeModule')\n\n        return lazyRenderPagesPage(\n          req.originalRequest,\n          res.originalResponse,\n          pathname,\n          query,\n          renderOpts as LoadedRenderOpts<PagesModule>,\n          {\n            buildId: this.buildId,\n            deploymentId: this.deploymentId,\n            clientAssetToken:\n              this.nextConfig.experimental.immutableAssetToken ??\n              this.deploymentId,\n            customServer: this.serverOptions.customServer || undefined,\n          },\n          {\n            isFallback: false,\n            isDraftMode: renderOpts.isDraftMode,\n            developmentNotFoundSourcePage: getRequestMeta(\n              req,\n              'developmentNotFoundSourcePage'\n            ),\n          }\n        )\n      }\n    }\n  }\n\n  protected async imageOptimizer(\n    req: NodeNextRequest,\n    res: NodeNextResponse,\n    paramsResult: import('./image-optimizer').ImageParamsResult,\n    previousCacheEntry?: IncrementalResponseCacheEntry | null\n  ): Promise<{\n    buffer: Buffer\n    contentType: string\n    maxAge: number\n    upstreamEtag: string\n    etag: string\n  }> {\n    if (process.env.NEXT_MINIMAL) {\n      throw new Error(\n        'invariant: imageOptimizer should not be called in minimal mode'\n      )\n    } else {\n      const { imageOptimizer, fetchExternalImage, fetchInternalImage } =\n        require('./image-optimizer') as typeof import('./image-optimizer')\n\n      const handleInternalReq = async (\n        newReq: IncomingMessage,\n        newRes: ServerResponse\n      ) => {\n        if (newReq.url === req.url) {\n          throw new Error(`Invariant attempted to optimize _next/image itself`)\n        }\n\n        if (!this.routerServerHandler) {\n          throw new Error(`Invariant missing routerServerHandler`)\n        }\n\n        await this.routerServerHandler(newReq, newRes)\n        return\n      }\n\n      let { href } = paramsResult\n\n      if (\n        process.env.__NEXT_TEST_MODE &&\n        process.env.IS_TURBOPACK_TEST &&\n        !paramsResult.isAbsolute\n      ) {\n        // Forward the dpl query param from the original /_next/image request to the\n        // internal static file request so that the static file validation in\n        // resolve-routes.ts can verify it.\n        const dpl =\n          typeof req.url === 'string'\n            ? new URL(req.url, 'http://n').searchParams.get('dpl')\n            : undefined\n        if (dpl) {\n          href += `${href.includes('?') ? '&' : '?'}dpl=${dpl}`\n        }\n      }\n\n      const imageUpstream = paramsResult.isAbsolute\n        ? await fetchExternalImage(\n            href,\n            this.nextConfig.images.dangerouslyAllowLocalIP,\n            this.nextConfig.images.maximumResponseBody,\n            this.nextConfig.images.maximumRedirects\n          )\n        : await fetchInternalImage(\n            href,\n            req.originalRequest,\n            res.originalResponse,\n            handleInternalReq\n          )\n\n      return imageOptimizer(imageUpstream, paramsResult, this.nextConfig, {\n        isDev: this.dev,\n        previousCacheEntry,\n      })\n    }\n  }\n\n  protected getPagePath(pathname: string, locales?: string[]): string {\n    return getPagePath(\n      pathname,\n      this.distDir,\n      locales,\n      this.enabledDirectories.app\n    )\n  }\n\n  protected async renderPageComponent(\n    ctx: RequestContext<NodeNextRequest, NodeNextResponse>,\n    bubbleNoFallback: boolean\n  ) {\n    const edgeFunctionsPages = this.getEdgeFunctionsPages() || []\n    if (edgeFunctionsPages.length) {\n      const appPaths = this.getOriginalAppPaths(ctx.pathname)\n      const isAppPath = Array.isArray(appPaths)\n\n      let page = ctx.pathname\n      if (isAppPath) {\n        // When it's an array, we need to pass all parallel routes to the loader.\n        page = appPaths[0]\n      }\n\n      for (const edgeFunctionsPage of edgeFunctionsPages) {\n        if (edgeFunctionsPage === page) {\n          await this.runEdgeFunction({\n            req: ctx.req,\n            res: ctx.res,\n            query: ctx.query,\n            params: ctx.renderOpts.params,\n            page,\n            appPaths,\n          })\n          return null\n        }\n      }\n    }\n\n    return super.renderPageComponent(ctx, bubbleNoFallback)\n  }\n\n  protected async findPageComponents({\n    locale,\n    page,\n    query,\n    params,\n    isAppPath,\n    url,\n  }: {\n    locale: string | undefined\n    page: string\n    query: NextParsedUrlQuery\n    params: Params\n    isAppPath: boolean\n    // The following parameters are used in the development server's\n    // implementation.\n    sriEnabled?: boolean\n    appPaths?: ReadonlyArray<string> | null\n    shouldEnsure: boolean\n    url?: string\n  }): Promise<FindComponentsResult | null> {\n    return getTracer().trace(\n      NextNodeServerSpan.findPageComponents,\n      {\n        spanName: 'resolve page components',\n        attributes: {\n          'next.route': isAppPath ? normalizeAppPath(page) : page,\n        },\n      },\n      () =>\n        this.findPageComponentsImpl({\n          locale,\n          page,\n          query,\n          params,\n          isAppPath,\n          url,\n        })\n    )\n  }\n\n  private async findPageComponentsImpl({\n    locale,\n    page,\n    query,\n    params,\n    isAppPath,\n    url: _url,\n  }: {\n    locale: string | undefined\n    page: string\n    query: NextParsedUrlQuery\n    params: Params\n    isAppPath: boolean\n    url?: string\n  }): Promise<FindComponentsResult | null> {\n    const pagePaths: string[] = [page]\n\n    if (locale) {\n      pagePaths.unshift(\n        ...pagePaths.map((path) => `/${locale}${path === '/' ? '' : path}`)\n      )\n    }\n\n    for (const pagePath of pagePaths) {\n      try {\n        const components = await loadComponents({\n          distDir: this.distDir,\n          page: pagePath,\n          isAppPath,\n          isDev: this.isDev,\n          sriEnabled: this.sriEnabled,\n          needsManifestsForLegacyReasons: false,\n        })\n\n        if (\n          locale &&\n          typeof components.Component === 'string' &&\n          !pagePath.startsWith(`/${locale}/`) &&\n          pagePath !== `/${locale}`\n        ) {\n          // if loading an static HTML file the locale is required\n          // to be present since all HTML files are output under their locale\n          continue\n        }\n\n        return {\n          components,\n          query: {\n            ...(!this.renderOpts.isExperimentalCompile &&\n            components.getStaticProps\n              ? {}\n              : query),\n            // For appDir params is excluded.\n            ...((isAppPath ? {} : params) || {}),\n          },\n        }\n      } catch (err) {\n        // we should only not throw if we failed to find the page\n        // in the pages-manifest\n        if (!(err instanceof PageNotFoundError)) {\n          throw err\n        }\n      }\n    }\n    return null\n  }\n\n  protected getNextFontManifest(): NextFontManifest | undefined {\n    return loadManifest(\n      join(\n        /* turbopackIgnore: true */ this.distDir,\n        'server',\n        NEXT_FONT_MANIFEST + '.json'\n      )\n    ) as NextFontManifest\n  }\n\n  protected handleNextImageRequest: NodeRouteHandler = async (\n    req,\n    res,\n    parsedUrl\n  ) => {\n    if (!parsedUrl.pathname || !parsedUrl.pathname.startsWith('/_next/image')) {\n      return false\n    }\n    // Ignore if its a middleware request\n    if (getRequestMeta(req, 'middlewareInvoke')) {\n      return false\n    }\n\n    if (\n      this.minimalMode ||\n      this.nextConfig.output === 'export' ||\n      process.env.NEXT_MINIMAL\n    ) {\n      res.statusCode = 400\n      res.body('Bad Request').send()\n      return true\n      // the `else` branch is needed for tree-shaking\n    } else {\n      const { ImageOptimizerCache } =\n        require('./image-optimizer') as typeof import('./image-optimizer')\n\n      // Load custom cache handler if configured and opt-in via images.customCacheHandler\n      // Cache the handler instance to preserve state across requests\n      if (\n        !this.imageCacheHandler &&\n        this.nextConfig.images.customCacheHandler\n      ) {\n        const { cacheHandler } = this.nextConfig\n        if (cacheHandler) {\n          const CacheHandler = interopDefault(\n            await dynamicImportEsmDefault(\n              formatDynamicImportPath(this.distDir, cacheHandler)\n            )\n          )\n          this.imageCacheHandler = new CacheHandler({\n            dev: !!this.dev,\n            flushToDisk: this.nextConfig.experimental.isrFlushToDisk,\n            serverDistDir: this.serverDistDir,\n            maxMemoryCacheSize: this.nextConfig.cacheMaxMemorySize,\n            revalidatedTags: [],\n            _requestHeaders: {},\n          })\n        }\n      }\n\n      const imageOptimizerCache = new ImageOptimizerCache({\n        distDir: this.distDir,\n        nextConfig: this.nextConfig,\n        cacheHandler: this.imageCacheHandler,\n      })\n\n      const { sendResponse, ImageError } =\n        require('./image-optimizer') as typeof import('./image-optimizer')\n\n      if (!this.imageResponseCache) {\n        throw new Error('invariant image optimizer cache was not initialized')\n      }\n      const imagesConfig = this.nextConfig.images\n\n      if (imagesConfig.loader !== 'default' || imagesConfig.unoptimized) {\n        await this.render404(req, res)\n        return true\n      }\n\n      const paramsResult = ImageOptimizerCache.validateParams(\n        req.originalRequest,\n        parsedUrl.query,\n        this.nextConfig,\n        !!this.dev\n      )\n\n      if ('errorMessage' in paramsResult) {\n        res.statusCode = 400\n        res.body(paramsResult.errorMessage).send()\n        return true\n      }\n\n      const cacheKey = ImageOptimizerCache.getCacheKey(paramsResult)\n\n      try {\n        const { getExtension } =\n          require('./serve-static') as typeof import('./serve-static')\n        const cacheEntry = await this.imageResponseCache.get(\n          cacheKey,\n          async ({ previousCacheEntry }) => {\n            const { buffer, contentType, maxAge, upstreamEtag, etag } =\n              await this.imageOptimizer(\n                req,\n                res,\n                paramsResult,\n                previousCacheEntry\n              )\n\n            return {\n              value: {\n                kind: CachedRouteKind.IMAGE,\n                buffer,\n                etag,\n                extension: getExtension(contentType) as string,\n                upstreamEtag,\n              },\n              cacheControl: { revalidate: maxAge, expire: undefined },\n            }\n          },\n          {\n            routeKind: RouteKind.IMAGE,\n            incrementalCache: imageOptimizerCache,\n            isFallback: false,\n          }\n        )\n\n        if (cacheEntry?.value?.kind !== CachedRouteKind.IMAGE) {\n          throw new Error(\n            'invariant did not get entry from image response cache'\n          )\n        }\n\n        sendResponse(\n          req.originalRequest,\n          res.originalResponse,\n          paramsResult.href,\n          cacheEntry.value.extension,\n          cacheEntry.value.buffer,\n          cacheEntry.value.etag,\n          paramsResult.isStatic,\n          cacheEntry.isMiss ? 'MISS' : cacheEntry.isStale ? 'STALE' : 'HIT',\n          imagesConfig,\n          cacheEntry.cacheControl?.revalidate || 0,\n          Boolean(this.dev)\n        )\n        return true\n      } catch (err) {\n        if (err instanceof ImageError) {\n          res.statusCode = err.statusCode\n          res.body(err.message).send()\n          return true\n        }\n        throw err\n      }\n    }\n  }\n\n  protected handleCatchallRenderRequest: NodeRouteHandler = async (\n    req,\n    res,\n    parsedUrl\n  ) => {\n    let { pathname, query } = parsedUrl\n    if (!pathname) {\n      throw new Error('Invariant: pathname is undefined')\n    }\n\n    // When in minimal mode we do not bubble the fallback as the\n    // router-server is not present to handle the error\n    addRequestMeta(req, 'bubbleNoFallback', this.minimalMode ? undefined : true)\n\n    // This is needed to expose render404 and nextConfig\n    // for environments without router-server\n    if (!routerServerGlobal[RouterServerContextSymbol]) {\n      routerServerGlobal[RouterServerContextSymbol] = {}\n    }\n    const relativeProjectDir = relative(process.cwd(), this.dir)\n    const existingServerContext =\n      routerServerGlobal[RouterServerContextSymbol][relativeProjectDir]\n\n    if (!existingServerContext) {\n      routerServerGlobal[RouterServerContextSymbol][relativeProjectDir] = {\n        render404: this.render404.bind(this),\n      }\n    }\n    routerServerGlobal[RouterServerContextSymbol][\n      relativeProjectDir\n    ].nextConfig = this.nextConfig\n    routerServerGlobal[RouterServerContextSymbol][\n      relativeProjectDir\n    ].isWrappedByNextServer = true\n\n    try {\n      // next.js core assumes page path without trailing slash\n      pathname = removeTrailingSlash(pathname)\n\n      const options: MatchOptions = {\n        i18n: this.i18nProvider?.fromRequest(req, pathname),\n      }\n      const match = await this.matchers.match(pathname, options)\n\n      // If we don't have a match, try to render it anyways.\n      if (!match) {\n        await this.render(req, res, pathname, query, parsedUrl, true)\n\n        return true\n      }\n\n      // Add the match to the request so we don't have to re-run the matcher\n      // for the same request.\n      addRequestMeta(req, 'match', match)\n\n      // TODO-APP: move this to a route handler\n      const edgeFunctionsPages = this.getEdgeFunctionsPages()\n      for (const edgeFunctionsPage of edgeFunctionsPages) {\n        // If the page doesn't match the edge function page, skip it.\n        if (edgeFunctionsPage !== match.definition.page) continue\n\n        if (this.nextConfig.output === 'export') {\n          await this.render404(req, res, parsedUrl)\n          return true\n        }\n        delete query[NEXT_RSC_UNION_QUERY]\n\n        // If we handled the request, we can return early.\n        // For api routes edge runtime\n        try {\n          const handled = await this.runEdgeFunction({\n            req,\n            res,\n            query,\n            params: match.params,\n            page: match.definition.page,\n            match,\n            appPaths: null,\n          })\n          if (handled) return true\n        } catch (apiError) {\n          const silenceLog = false\n          await this.instrumentationOnRequestError(\n            apiError,\n            req,\n            {\n              routePath: match.definition.page,\n              routerKind: 'Pages Router',\n              routeType: 'route',\n              // Edge runtime does not support ISR\n              revalidateReason: undefined,\n            },\n            silenceLog\n          )\n          throw apiError\n        }\n      }\n\n      // If the route was detected as being a Pages API route, then handle\n      // it.\n      // TODO: move this behavior into a route handler.\n      if (isPagesAPIRouteMatch(match)) {\n        if (this.nextConfig.output === 'export') {\n          await this.render404(req, res, parsedUrl)\n          return true\n        }\n\n        const handled = await this.handleApiRequest(req, res, query, match)\n        if (handled) return true\n      }\n\n      await this.render(req, res, pathname, query, parsedUrl, true)\n\n      return true\n    } catch (err: any) {\n      if (err instanceof NoFallbackError) {\n        throw err\n      }\n\n      try {\n        if (this.dev) {\n          const { formatServerError } =\n            require('../lib/format-server-error') as typeof import('../lib/format-server-error')\n          formatServerError(err)\n          this.logErrorWithOriginalStack(err)\n        } else {\n          this.logError(err)\n        }\n        res.statusCode = 500\n        await this.renderError(err, req, res, pathname, query)\n        return true\n      } catch {}\n\n      throw err\n    }\n  }\n\n  // Used in development only, overloaded in next-dev-server\n  protected logErrorWithOriginalStack(\n    _err?: unknown,\n    _type?: 'unhandledRejection' | 'uncaughtException' | 'warning' | 'app-dir'\n  ): void {\n    throw new Error(\n      'Invariant: logErrorWithOriginalStack can only be called on the development server'\n    )\n  }\n\n  // Used in development only, overloaded in next-dev-server\n  protected async ensurePage(_opts: {\n    page: string\n    clientOnly: boolean\n    appPaths?: ReadonlyArray<string> | null\n    match?: RouteMatch\n    url?: string\n  }): Promise<void> {\n    throw new Error(\n      'Invariant: ensurePage can only be called on the development server'\n    )\n  }\n\n  /**\n   * Resolves `API` request, in development builds on demand\n   * @param req http request\n   * @param res http response\n   * @param pathname path of request\n   */\n  protected async handleApiRequest(\n    req: NodeNextRequest,\n    res: NodeNextResponse,\n    query: ParsedUrlQuery,\n    match: PagesAPIRouteMatch\n  ): Promise<boolean> {\n    return this.runApi(req, res, query, match)\n  }\n\n  protected getCacheFilesystem(): CacheFs {\n    return nodeFs\n  }\n\n  protected normalizeReq(\n    req: NodeNextRequest | IncomingMessage\n  ): NodeNextRequest {\n    return !(req instanceof NodeNextRequest) ? new NodeNextRequest(req) : req\n  }\n\n  protected normalizeRes(\n    res: NodeNextResponse | ServerResponse\n  ): NodeNextResponse {\n    return !(res instanceof NodeNextResponse) ? new NodeNextResponse(res) : res\n  }\n\n  public getRequestHandler(): NodeRequestHandler {\n    const handler = this.makeRequestHandler()\n    if (this.serverOptions.experimentalTestProxy) {\n      const { wrapRequestHandlerNode } =\n        // eslint-disable-next-line @next/internal/typechecked-require -- experimental/testmode is not built ins next/dist/esm\n        require('next/dist/experimental/testmode/server') as typeof import('../experimental/testmode/server')\n      return wrapRequestHandlerNode(handler)\n    }\n    return handler\n  }\n\n  /**\n   * @internal - this method is internal to Next.js and should not be used directly by end-users\n   */\n  public getRequestHandlerWithMetadata(meta: RequestMeta): NodeRequestHandler {\n    const handler = this.makeRequestHandler()\n    return (req, res, parsedUrl) => {\n      setRequestMeta(req, meta)\n      return handler(req, res, parsedUrl)\n    }\n  }\n\n  private makeRequestHandler(): NodeRequestHandler {\n    // This is just optimization to fire prepare as soon as possible. It will be\n    // properly awaited later. We add the catch here to ensure that it does not\n    // cause an unhandled promise rejection. The promise rejection will be\n    // handled later on via the `await` when the request handler is called.\n    this.prepare().catch((err) => {\n      console.error('Failed to prepare server', err)\n    })\n\n    const handler = super.getRequestHandler()\n\n    return (req, res, parsedUrl) =>\n      handler(this.normalizeReq(req), this.normalizeRes(res), parsedUrl)\n  }\n\n  public async revalidate({\n    urlPath,\n    headers,\n    opts,\n  }: {\n    urlPath: string\n    headers: { [key: string]: string | string[] }\n    opts: { unstable_onlyGenerated?: boolean }\n  }) {\n    const mocked = createRequestResponseMocks({\n      url: urlPath,\n      headers,\n    })\n\n    const handler = this.getRequestHandler()\n    await handler(\n      new NodeNextRequest(mocked.req),\n      new NodeNextResponse(mocked.res)\n    )\n    await mocked.res.hasStreamed\n\n    if (\n      mocked.res.getHeader('x-nextjs-cache') !== 'REVALIDATED' &&\n      mocked.res.statusCode !== 200 &&\n      !(mocked.res.statusCode === 404 && opts.unstable_onlyGenerated)\n    ) {\n      throw new Error(`Invalid response ${mocked.res.statusCode}`)\n    }\n  }\n\n  public async render(\n    req: NodeNextRequest | IncomingMessage,\n    res: NodeNextResponse | ServerResponse,\n    pathname: string,\n    query?: NextParsedUrlQuery,\n    parsedUrl?: NextUrlWithParsedQuery,\n    internal = false\n  ): Promise<void> {\n    return super.render(\n      this.normalizeReq(req),\n      this.normalizeRes(res),\n      pathname,\n      query,\n      parsedUrl,\n      internal\n    )\n  }\n\n  public async renderToHTML(\n    req: NodeNextRequest | IncomingMessage,\n    res: NodeNextResponse | ServerResponse,\n    pathname: string,\n    query?: ParsedUrlQuery\n  ): Promise<string | null> {\n    return super.renderToHTML(\n      this.normalizeReq(req),\n      this.normalizeRes(res),\n      pathname,\n      query\n    )\n  }\n\n  protected async renderErrorToResponseImpl(\n    ctx: RequestContext<NodeNextRequest, NodeNextResponse>,\n    err: Error | null\n  ) {\n    const { req, res, query } = ctx\n    const is404 = res.statusCode === 404\n\n    if (is404 && this.enabledDirectories.app) {\n      if (this.dev) {\n        await this.ensurePage({\n          page: UNDERSCORE_NOT_FOUND_ROUTE_ENTRY,\n          clientOnly: false,\n          url: req.url,\n        }).catch(() => {})\n      }\n\n      if (\n        this.getEdgeFunctionsPages().includes(UNDERSCORE_NOT_FOUND_ROUTE_ENTRY)\n      ) {\n        await this.runEdgeFunction({\n          req,\n          res,\n          query: query || {},\n          params: {},\n          page: UNDERSCORE_NOT_FOUND_ROUTE_ENTRY,\n          appPaths: null,\n        })\n        return null\n      }\n    }\n    return super.renderErrorToResponseImpl(ctx, err)\n  }\n\n  public async renderError(\n    err: Error | null,\n    req: NodeNextRequest | IncomingMessage,\n    res: NodeNextResponse | ServerResponse,\n    pathname: string,\n    query?: NextParsedUrlQuery,\n    setHeaders?: boolean\n  ): Promise<void> {\n    return super.renderError(\n      err,\n      this.normalizeReq(req),\n      this.normalizeRes(res),\n      pathname,\n      query,\n      setHeaders\n    )\n  }\n\n  public async renderErrorToHTML(\n    err: Error | null,\n    req: NodeNextRequest | IncomingMessage,\n    res: NodeNextResponse | ServerResponse,\n    pathname: string,\n    query?: ParsedUrlQuery\n  ): Promise<string | null> {\n    return super.renderErrorToHTML(\n      err,\n      this.normalizeReq(req),\n      this.normalizeRes(res),\n      pathname,\n      query\n    )\n  }\n\n  public async render404(\n    req: NodeNextRequest | IncomingMessage,\n    res: NodeNextResponse | ServerResponse,\n    parsedUrl?: NextUrlWithParsedQuery,\n    setHeaders?: boolean\n  ): Promise<void> {\n    return super.render404(\n      this.normalizeReq(req),\n      this.normalizeRes(res),\n      parsedUrl,\n      setHeaders\n    )\n  }\n\n  protected getMiddlewareManifest(): MiddlewareManifest | null {\n    if (this.minimalMode) {\n      return null\n    } else {\n      const manifest: MiddlewareManifest = require(this.middlewareManifestPath)\n      return manifest\n    }\n  }\n\n  /** Returns the middleware routing item if there is one. */\n  protected async getMiddleware(): Promise<MiddlewareRoutingItem | undefined> {\n    const manifest = this.getMiddlewareManifest()\n    const middleware = manifest?.middleware?.['/']\n    if (!middleware) {\n      const middlewareModule = await this.loadNodeMiddleware()\n\n      if (middlewareModule) {\n        return {\n          match: getMiddlewareRouteMatcher(\n            middlewareModule.config?.matchers || [\n              { regexp: '.*', originalSource: '/:path*' },\n            ]\n          ),\n          page: '/',\n        }\n      }\n\n      return\n    }\n\n    return {\n      match: getMiddlewareMatcher(middleware),\n      page: '/',\n    }\n  }\n\n  protected getEdgeFunctionsPages(): string[] {\n    const manifest = this.getMiddlewareManifest()\n    if (!manifest) {\n      return []\n    }\n\n    return Object.keys(manifest.functions)\n  }\n\n  /**\n   * Get information for the edge function located in the provided page\n   * folder. If the edge function info can't be found it will throw\n   * an error.\n   */\n  protected getEdgeFunctionInfo(params: {\n    page: string\n    /** Whether we should look for a middleware or not */\n    middleware: boolean\n  }): {\n    name: string\n    paths: string[]\n    wasm: { filePath: string; name: string }[]\n    env: { [key: string]: string }\n    assets?: { filePath: string; name: string }[]\n  } | null {\n    const manifest = this.getMiddlewareManifest()\n    if (!manifest) {\n      return null\n    }\n\n    let foundPage: string\n\n    try {\n      foundPage = denormalizePagePath(normalizePagePath(params.page))\n    } catch (err) {\n      return null\n    }\n\n    let pageInfo = params.middleware\n      ? manifest.middleware[foundPage]\n      : manifest.functions[foundPage]\n\n    if (!pageInfo) {\n      if (!params.middleware) {\n        throw new PageNotFoundError(foundPage)\n      }\n      return null\n    }\n\n    return {\n      name: pageInfo.name,\n      paths: pageInfo.files.map((file) =>\n        join(/* turbopackIgnore: true */ this.distDir, file)\n      ),\n      wasm: (pageInfo.wasm ?? []).map((binding) => ({\n        ...binding,\n        filePath: join(\n          /* turbopackIgnore: true */ this.distDir,\n          binding.filePath\n        ),\n      })),\n      assets:\n        pageInfo.assets &&\n        pageInfo.assets.map((binding) => {\n          return {\n            ...binding,\n            filePath: join(\n              /* turbopackIgnore: true */ this.distDir,\n              binding.filePath\n            ),\n          }\n        }),\n      env: pageInfo.env,\n    }\n  }\n\n  private async loadNodeMiddleware() {\n    if (!process.env.NEXT_MINIMAL) {\n      try {\n        const functionsConfig = this.dev\n          ? {}\n          : require(\n              join(\n                /* turbopackIgnore: true */ this.distDir,\n                'server',\n                FUNCTIONS_CONFIG_MANIFEST\n              )\n            )\n\n        if (this.dev || functionsConfig?.functions?.['/_middleware']) {\n          // if used with top level await, this will be a promise\n          return require(\n            join(\n              /* turbopackIgnore: true */ this.distDir,\n              'server',\n              'middleware.js'\n            )\n          )\n        }\n      } catch (err) {\n        if (\n          isError(err) &&\n          err.code !== 'ENOENT' &&\n          err.code !== 'MODULE_NOT_FOUND'\n        ) {\n          throw err\n        }\n      }\n    }\n  }\n\n  /**\n   * Checks if a middleware exists. This method is useful for the development\n   * server where we need to check the filesystem. Here we just check the\n   * middleware manifest.\n   */\n  protected async hasMiddleware(pathname: string): Promise<boolean> {\n    const info = this.getEdgeFunctionInfo({ page: pathname, middleware: true })\n    const nodeMiddleware = await this.loadNodeMiddleware()\n\n    if (!info && nodeMiddleware) {\n      return true\n    }\n    return Boolean(info && info.paths.length > 0)\n  }\n\n  /**\n   * A placeholder for a function to be defined in the development server.\n   * It will make sure that the root middleware or an edge function has been compiled\n   * so that we can run it.\n   */\n  protected async ensureMiddleware(_url?: string) {}\n  protected async ensureEdgeFunction(_params: {\n    page: string\n    appPaths: string[] | null\n    url?: string\n  }) {}\n\n  /**\n   * This method gets all middleware matchers and execute them when the request\n   * matches. It will make sure that each middleware exists and is compiled and\n   * ready to be invoked. The development server will decorate it to add warns\n   * and errors with rich traces.\n   */\n  protected async runMiddleware(params: {\n    request: NodeNextRequest\n    response: NodeNextResponse\n    parsedUrl: ParsedUrl\n    parsed: NextUrlWithParsedQuery\n    onWarning?: (warning: Error) => void\n  }) {\n    if (process.env.NEXT_MINIMAL) {\n      throw new Error(\n        'invariant: runMiddleware should not be called in minimal mode'\n      )\n    }\n\n    // Middleware is skipped for on-demand revalidate requests\n    if (\n      checkIsOnDemandRevalidate(params.request, this.renderOpts.previewProps)\n        .isOnDemandRevalidate\n    ) {\n      return {\n        response: new Response(null, { headers: { 'x-middleware-next': '1' } }),\n      } as FetchEventResult\n    }\n\n    let url: string\n\n    if (this.nextConfig.skipProxyUrlNormalize) {\n      url = getRequestMeta(params.request, 'initURL')!\n    } else {\n      // For middleware to \"fetch\" we must always provide an absolute URL\n      const query = urlQueryToSearchParams(params.parsed.query).toString()\n      const locale = getRequestMeta(params.request, 'locale')\n\n      url = `${getRequestMeta(params.request, 'initProtocol')}://${\n        this.fetchHostname || 'localhost'\n      }:${this.port}${locale ? `/${locale}` : ''}${params.parsed.pathname}${\n        query ? `?${query}` : ''\n      }`\n    }\n\n    if (!url.startsWith('http')) {\n      throw new Error(\n        'To use middleware you must provide a `hostname` and `port` to the Next.js Server'\n      )\n    }\n\n    const page: {\n      name?: string\n      params?: { [key: string]: string | string[] }\n    } = {}\n\n    const middleware = await this.getMiddleware()\n    if (!middleware) {\n      return { finished: false }\n    }\n    if (!(await this.hasMiddleware(middleware.page))) {\n      return { finished: false }\n    }\n\n    await this.ensureMiddleware(params.request.url)\n    const middlewareInfo = this.getEdgeFunctionInfo({\n      page: middleware.page,\n      middleware: true,\n    })\n\n    const method = (params.request.method || 'GET').toUpperCase()\n    const requestData = {\n      headers: params.request.headers,\n      method,\n      nextConfig: {\n        basePath: this.nextConfig.basePath,\n        i18n: this.nextConfig.i18n,\n        trailingSlash: this.nextConfig.trailingSlash,\n        experimental: this.nextConfig.experimental,\n      },\n      url: url,\n      page,\n      body:\n        method !== 'GET' && method !== 'HEAD'\n          ? (getRequestMeta(params.request, 'clonableBody') as any)\n          : undefined,\n\n      signal: signalFromNodeResponse(params.response.originalResponse),\n      waitUntil: this.getWaitUntil(),\n    }\n    let result:\n      | UnwrapPromise<ReturnType<typeof import('./web/sandbox').run>>\n      | undefined\n\n    // if no middleware info check for Node.js middleware\n    // this is not in the middleware-manifest as that historically\n    // has only included edge-functions, we need to do a breaking\n    // version bump for that manifest to write this info there if\n    // we decide we want to\n    if (!middlewareInfo) {\n      let middlewareModule\n      middlewareModule = await this.loadNodeMiddleware()\n\n      if (!middlewareModule) {\n        throw new MiddlewareNotFoundError()\n      }\n      const adapterFn: typeof import('./web/adapter').adapter =\n        middlewareModule.default || middlewareModule\n\n      const hasRequestBody =\n        !['HEAD', 'GET'].includes(params.request.method) &&\n        Boolean(requestData.body)\n\n      try {\n        result = await adapterFn({\n          handler:\n            middlewareModule.proxy ||\n            middlewareModule.middleware ||\n            middlewareModule,\n          request: {\n            ...requestData,\n            body: hasRequestBody\n              ? requestData.body.cloneBodyStream()\n              : undefined,\n          },\n          page: 'middleware',\n        })\n      } finally {\n        if (hasRequestBody) {\n          await requestData.body.finalize()\n        }\n      }\n    } else {\n      const { run } = require('./web/sandbox') as typeof import('./web/sandbox')\n\n      result = await run({\n        distDir: this.distDir,\n        name: middlewareInfo.name,\n        paths: middlewareInfo.paths,\n        edgeFunctionEntry: middlewareInfo,\n        request: requestData,\n        useCache: true,\n        onWarning: params.onWarning,\n        clientAssetToken:\n          this.nextConfig.experimental.immutableAssetToken || this.deploymentId,\n      })\n    }\n\n    if (!this.dev) {\n      result.waitUntil.catch((error) => {\n        console.error(`Uncaught: middleware waitUntil errored`, error)\n      })\n    }\n\n    if (!result) {\n      this.render404(params.request, params.response, params.parsed)\n      return { finished: true }\n    }\n\n    // Split compound (comma-separated) set-cookie headers\n    if (result.response.headers.has('set-cookie')) {\n      const cookies = result.response.headers\n        .getSetCookie()\n        .flatMap((maybeCompoundCookie) =>\n          splitCookiesString(maybeCompoundCookie)\n        )\n\n      // Clear existing header(s)\n      result.response.headers.delete('set-cookie')\n\n      // Append each cookie individually.\n      for (const cookie of cookies) {\n        result.response.headers.append('set-cookie', cookie)\n      }\n\n      // Add cookies to request meta.\n      addRequestMeta(params.request, 'middlewareCookie', cookies)\n    }\n\n    return result\n  }\n\n  protected handleCatchallMiddlewareRequest: NodeRouteHandler = async (\n    req,\n    res,\n    parsed\n  ) => {\n    const isMiddlewareInvoke = getRequestMeta(req, 'middlewareInvoke')\n\n    if (!isMiddlewareInvoke) {\n      return false\n    }\n\n    const handleFinished = () => {\n      addRequestMeta(req, 'middlewareInvoke', true)\n      res.body('').send()\n      return true\n    }\n\n    const middleware = await this.getMiddleware()\n    if (!middleware) {\n      return handleFinished()\n    }\n\n    const initUrl = getRequestMeta(req, 'initURL')!\n    const parsedUrl = parseUrl(initUrl)\n    const pathnameInfo = getNextPathnameInfo(parsedUrl.pathname, {\n      nextConfig: this.nextConfig,\n      i18nProvider: this.i18nProvider,\n    })\n\n    parsedUrl.pathname = pathnameInfo.pathname\n    const normalizedPathname = removeTrailingSlash(parsed.pathname || '')\n    let maybeDecodedPathname = normalizedPathname\n\n    try {\n      maybeDecodedPathname = decodeURIComponent(normalizedPathname)\n    } catch {\n      /* non-fatal we can't decode so can't match it */\n    }\n\n    if (\n      !(\n        middleware.match(normalizedPathname, req, parsedUrl.query) ||\n        middleware.match(maybeDecodedPathname, req, parsedUrl.query)\n      )\n    ) {\n      return handleFinished()\n    }\n\n    let result: Awaited<\n      ReturnType<typeof NextNodeServer.prototype.runMiddleware>\n    >\n    let bubblingResult = false\n\n    try {\n      await this.ensureMiddleware(req.url)\n\n      result = await this.runMiddleware({\n        request: req,\n        response: res,\n        parsedUrl: parsedUrl,\n        parsed: parsed,\n      })\n\n      if ('response' in result) {\n        if (isMiddlewareInvoke) {\n          bubblingResult = true\n          throw new BubbledError(true, result)\n        }\n\n        for (const [key, value] of Object.entries(\n          toNodeOutgoingHttpHeaders(result.response.headers)\n        )) {\n          if (key !== 'content-encoding' && value !== undefined) {\n            res.setHeader(key, value as string | string[])\n          }\n        }\n        res.statusCode = result.response.status\n\n        const { originalResponse } = res\n        if (result.response.body) {\n          await pipeToNodeResponse(result.response.body, originalResponse)\n        } else {\n          originalResponse.end()\n        }\n        return true\n      }\n    } catch (err: unknown) {\n      if (bubblingResult) {\n        throw err\n      }\n\n      if (isError(err) && err.code === 'ENOENT') {\n        await this.render404(req, res, parsed)\n        return true\n      }\n\n      if (err instanceof DecodeError) {\n        res.statusCode = 400\n        await this.renderError(err, req, res, parsed.pathname || '')\n        return true\n      }\n\n      const error = getProperError(err)\n      console.error(error)\n      res.statusCode = 500\n      await this.renderError(error, req, res, parsed.pathname || '')\n      return true\n    }\n\n    return result.finished\n  }\n\n  private _cachedPreviewManifest: PrerenderManifest | undefined\n  protected getPrerenderManifest(): PrerenderManifest {\n    if (this._cachedPreviewManifest) {\n      return this._cachedPreviewManifest\n    }\n\n    this._cachedPreviewManifest = loadManifest(\n      join(/* turbopackIgnore: true */ this.distDir, PRERENDER_MANIFEST)\n    ) as PrerenderManifest\n\n    return this._cachedPreviewManifest\n  }\n\n  private _cachedPrefetchHints: Record<string, PrefetchHints> | undefined\n  protected getPrefetchHints(): Record<string, PrefetchHints> {\n    if (this._cachedPrefetchHints) {\n      return this._cachedPrefetchHints\n    }\n\n    this._cachedPrefetchHints =\n      (loadManifest(\n        join(\n          /* turbopackIgnore: true */ this.distDir,\n          SERVER_DIRECTORY,\n          PREFETCH_HINTS\n        ),\n        true,\n        undefined,\n        false,\n        true // handleMissing: don't crash if the file doesn't exist\n      ) as Record<string, PrefetchHints>) ?? {}\n\n    return this._cachedPrefetchHints\n  }\n\n  protected getRoutesManifest(): NormalizedRouteManifest | undefined {\n    return getTracer().trace(\n      NextNodeServerSpan.getRoutesManifest,\n      () =>\n        loadManifest(\n          join(/* turbopackIgnore: true */ this.distDir, ROUTES_MANIFEST)\n        ) as RoutesManifest\n    )\n  }\n\n  protected attachRequestMeta(\n    req: NodeNextRequest,\n    parsedUrl: NextUrlWithParsedQuery,\n    isUpgradeReq?: boolean\n  ) {\n    // Injected in base-server.ts\n    const protocol = req.headers['x-forwarded-proto']?.includes('https')\n      ? 'https'\n      : 'http'\n\n    // When there are hostname and port we build an absolute URL\n    const initUrl =\n      this.fetchHostname && this.port\n        ? `${protocol}://${this.fetchHostname}:${this.port}${req.url}`\n        : this.nextConfig.experimental.trustHostHeader\n          ? `https://${req.headers.host || 'localhost'}${req.url}`\n          : req.url\n\n    addRequestMeta(req, 'initURL', initUrl)\n    addRequestMeta(req, 'initQuery', { ...parsedUrl.query })\n    addRequestMeta(req, 'initProtocol', protocol)\n\n    if (!isUpgradeReq) {\n      const bodySizeLimit = this.nextConfig.experimental\n        ?.proxyClientMaxBodySize as number | undefined\n      addRequestMeta(\n        req,\n        'clonableBody',\n        getCloneableBody(req.originalRequest, bodySizeLimit)\n      )\n    }\n  }\n\n  protected async runEdgeFunction(params: {\n    req: NodeNextRequest\n    res: NodeNextResponse\n    query: ParsedUrlQuery\n    params: Params | undefined\n    page: string\n    appPaths: string[] | null\n    match?: RouteMatch\n    onError?: (err: unknown) => void\n    onWarning?: (warning: Error) => void\n  }): Promise<FetchEventResult | null> {\n    if (process.env.NEXT_MINIMAL) {\n      throw new Error(\n        'Middleware is not supported in minimal mode. Please remove the `NEXT_MINIMAL` environment variable.'\n      )\n    }\n    let edgeInfo: ReturnType<typeof this.getEdgeFunctionInfo> | undefined\n\n    const { query, page, match } = params\n\n    if (!match)\n      await this.ensureEdgeFunction({\n        page,\n        appPaths: params.appPaths,\n        url: params.req.url,\n      })\n    edgeInfo = this.getEdgeFunctionInfo({\n      page,\n      middleware: false,\n    })\n\n    if (!edgeInfo) {\n      return null\n    }\n\n    // For edge to \"fetch\" we must always provide an absolute URL\n    const isNextDataRequest = getRequestMeta(params.req, 'isNextDataReq')\n    const initialUrl = new URL(\n      getRequestMeta(params.req, 'initURL') || '/',\n      'http://n'\n    )\n    const queryString = urlQueryToSearchParams({\n      ...Object.fromEntries(initialUrl.searchParams),\n      ...query,\n      ...params.params,\n    }).toString()\n\n    if (isNextDataRequest) {\n      params.req.headers['x-nextjs-data'] = '1'\n    }\n    initialUrl.search = queryString\n    const url = initialUrl.toString()\n\n    if (!url.startsWith('http')) {\n      throw new Error(\n        'To use middleware you must provide a `hostname` and `port` to the Next.js Server'\n      )\n    }\n\n    const { run } = require('./web/sandbox') as typeof import('./web/sandbox')\n    const result = await run({\n      distDir: this.distDir,\n      name: edgeInfo.name,\n      paths: edgeInfo.paths,\n      edgeFunctionEntry: edgeInfo,\n      request: {\n        headers: params.req.headers,\n        method: params.req.method,\n        nextConfig: {\n          basePath: this.nextConfig.basePath,\n          i18n: this.nextConfig.i18n,\n          trailingSlash: this.nextConfig.trailingSlash,\n        },\n        url,\n        page: {\n          name: params.page,\n          ...(params.params && { params: params.params }),\n        },\n        body: getRequestMeta(params.req, 'clonableBody'),\n        signal: signalFromNodeResponse(params.res.originalResponse),\n        waitUntil: this.getWaitUntil(),\n      },\n      useCache: true,\n      onError: params.onError,\n      onWarning: params.onWarning,\n      incrementalCache:\n        (globalThis as any).__incrementalCache ||\n        getRequestMeta(params.req, 'incrementalCache'),\n      serverComponentsHmrCache: getRequestMeta(\n        params.req,\n        'serverComponentsHmrCache'\n      ),\n      clientAssetToken:\n        this.nextConfig.experimental.immutableAssetToken || this.deploymentId,\n    })\n\n    if (result.fetchMetrics) {\n      params.req.fetchMetrics = result.fetchMetrics\n    }\n\n    if (!params.res.statusCode || params.res.statusCode < 400) {\n      params.res.statusCode = result.response.status\n      params.res.statusMessage = result.response.statusText\n    }\n\n    // TODO: (wyattjoh) investigate improving this\n\n    result.response.headers.forEach((value, key) => {\n      // The append handling is special cased for `set-cookie`.\n      if (key.toLowerCase() === 'set-cookie') {\n        // TODO: (wyattjoh) replace with native response iteration when we can upgrade undici\n        for (const cookie of splitCookiesString(value)) {\n          params.res.appendHeader(key, cookie)\n        }\n      } else {\n        params.res.appendHeader(key, value)\n      }\n    })\n\n    const { originalResponse } = params.res\n    if (result.response.body) {\n      await pipeToNodeResponse(result.response.body, originalResponse)\n    } else {\n      originalResponse.end()\n    }\n\n    return result\n  }\n\n  protected get serverDistDir(): string {\n    if (this._serverDistDir) {\n      return this._serverDistDir\n    }\n    const serverDistDir = join(\n      /* turbopackIgnore: true */ this.distDir,\n      SERVER_DIRECTORY\n    )\n    this._serverDistDir = serverDistDir\n    return serverDistDir\n  }\n\n  protected async getFallbackErrorComponents(\n    _url?: string\n  ): Promise<LoadComponentsReturnType<ErrorModule> | null> {\n    // Not implemented for production use cases, this is implemented on the\n    // development server.\n    return null\n  }\n\n  protected async instrumentationOnRequestError(\n    ...args: Parameters<ServerOnInstrumentationRequestError>\n  ) {\n    await super.instrumentationOnRequestError(...args)\n\n    // For Node.js runtime production logs, in dev it will be overridden by next-dev-server\n    if (!this.dev) {\n      const [err, , , silenceLog] = args\n      if (!silenceLog) {\n        this.logError(err)\n      }\n    }\n  }\n\n  protected onServerClose(listener: () => Promise<void>) {\n    this.cleanupListeners.add(listener)\n  }\n\n  async close(): Promise<void> {\n    await this.cleanupListeners.runAll()\n  }\n\n  protected getInternalWaitUntil(): WaitUntil {\n    this.internalWaitUntil ??= this.createInternalWaitUntil()\n    return this.internalWaitUntil\n  }\n\n  private createInternalWaitUntil() {\n    if (this.minimalMode) {\n      throw new InvariantError(\n        'createInternalWaitUntil should never be called in minimal mode'\n      )\n    }\n\n    const awaiter = new AwaiterOnce({ onError: console.error })\n\n    // TODO(after): warn if the process exits before these are awaited\n    this.onServerClose(() => awaiter.awaiting())\n\n    return awaiter.waitUntil\n  }\n}\n"],"names":["NextNodeServer","dynamicImportEsmDefault","process","env","NEXT_MINIMAL","id","then","mod","default","MiddlewareMatcherCache","WeakMap","getMiddlewareMatcher","info","stored","get","Array","isArray","matchers","Error","JSON","stringify","matcher","getMiddlewareRouteMatcher","set","BaseServer","constructor","options","cleanupListeners","AsyncCallbackSet","handleNextImageRequest","req","res","parsedUrl","pathname","startsWith","getRequestMeta","minimalMode","nextConfig","output","statusCode","body","send","ImageOptimizerCache","require","imageCacheHandler","images","customCacheHandler","cacheHandler","CacheHandler","interopDefault","formatDynamicImportPath","distDir","dev","flushToDisk","experimental","isrFlushToDisk","serverDistDir","maxMemoryCacheSize","cacheMaxMemorySize","revalidatedTags","_requestHeaders","imageOptimizerCache","sendResponse","ImageError","imageResponseCache","imagesConfig","loader","unoptimized","render404","paramsResult","validateParams","originalRequest","query","errorMessage","cacheKey","getCacheKey","cacheEntry","getExtension","previousCacheEntry","buffer","contentType","maxAge","upstreamEtag","etag","imageOptimizer","value","kind","CachedRouteKind","IMAGE","extension","cacheControl","revalidate","expire","undefined","routeKind","RouteKind","incrementalCache","isFallback","originalResponse","href","isStatic","isMiss","isStale","Boolean","err","message","handleCatchallRenderRequest","addRequestMeta","routerServerGlobal","RouterServerContextSymbol","relativeProjectDir","relative","cwd","dir","existingServerContext","bind","isWrappedByNextServer","removeTrailingSlash","i18n","i18nProvider","fromRequest","match","render","edgeFunctionsPages","getEdgeFunctionsPages","edgeFunctionsPage","definition","page","NEXT_RSC_UNION_QUERY","handled","runEdgeFunction","params","appPaths","apiError","silenceLog","instrumentationOnRequestError","routePath","routerKind","routeType","revalidateReason","isPagesAPIRouteMatch","handleApiRequest","NoFallbackError","formatServerError","logErrorWithOriginalStack","logError","renderError","handleCatchallMiddlewareRequest","parsed","isMiddlewareInvoke","handleFinished","middleware","getMiddleware","initUrl","parseUrl","pathnameInfo","getNextPathnameInfo","normalizedPathname","maybeDecodedPathname","decodeURIComponent","result","bubblingResult","ensureMiddleware","url","runMiddleware","request","response","BubbledError","key","Object","entries","toNodeOutgoingHttpHeaders","headers","setHeader","status","pipeToNodeResponse","end","isError","code","DecodeError","error","getProperError","console","finished","installGlobalBehaviors","renderOpts","prefetchHints","getPrefetchHints","isDev","sriEnabled","conf","sri","algorithm","optimizeCss","__NEXT_OPTIMIZE_CSS","nextScriptWorkers","__NEXT_SCRIPT_WORKERS","ResponseCache","preloadEntriesOnStart","unstable_preloadEntries","dynamicRoutes","getRoutesManifest","map","r","regex","getRouteRegex","getRouteMatcher","re","setHttpClientAndAgentOptions","serverOptions","experimentalTestProxy","NEXT_PRIVATE_TEST_PROXY","interceptTestApis","middlewareManifestPath","join","MIDDLEWARE_MANIFEST","prepare","catch","isExperimentalCompile","populateStaticEnv","deploymentId","shouldRemoveUncaughtErrorAndRejectionListeners","removeUncaughtErrorAndRejectionListeners","installProcessErrorHandlers","appPathsManifest","getAppPathsManifest","pagesManifest","getPagesManifest","loadCustomCacheHandlers","keys","loadComponents","isAppPath","needsManifestsForLegacyReasons","_err","ComponentMod","patchFetch","handleUpgrade","loadInstrumentationModule","instrumentation","getInstrumentationModule","cause","prepareImpl","runInstrumentationHookIfAvailable","ensureInstrumentationRegistered","loadEnvConfig","forceReload","Log","envFilePath","cacheHandlers","initializeCacheHandlers","handler","setCacheHandler","getIncrementalCache","requestHeaders","IncrementalCache","fs","getCacheFilesystem","allowedRevalidateHeaderKeys","fetchCacheKeyPrefix","getPrerenderManifest","CurCacheHandler","getPublicDir","CLIENT_PUBLIC_FILES_PATH","getHasStaticDir","existsSync","loadManifest","PAGES_MANIFEST","enabledDirectories","app","APP_PATHS_MANIFEST","getinterceptionRoutePatterns","routesManifest","rewrites","beforeFiles","filter","isInterceptionRouteRewrite","rewrite","RegExp","hasPage","getMaybePagePath","locales","getBuildId","buildIdFile","BUILD_ID_FILE","readFileSync","trim","getEnabledDirectories","findDir","pages","sendRenderResult","generateEtags","poweredByHeader","runApi","handledAsEdgeFunction","parsedInitUrl","search","NodeModuleLoader","module","load","filename","waitUntil","getWaitUntil","renderHTML","getTracer","trace","NextNodeServerSpan","renderHTMLImpl","nextFontManifest","lazyRenderAppPage","getServerComponentsHmrCache","buildId","clientAssetToken","immutableAssetToken","lazyRenderPagesPage","customServer","isDraftMode","developmentNotFoundSourcePage","fetchExternalImage","fetchInternalImage","handleInternalReq","newReq","newRes","routerServerHandler","__NEXT_TEST_MODE","IS_TURBOPACK_TEST","isAbsolute","dpl","URL","searchParams","includes","imageUpstream","dangerouslyAllowLocalIP","maximumResponseBody","maximumRedirects","getPagePath","renderPageComponent","ctx","bubbleNoFallback","length","getOriginalAppPaths","findPageComponents","locale","spanName","attributes","normalizeAppPath","findPageComponentsImpl","_url","pagePaths","unshift","path","pagePath","components","Component","getStaticProps","PageNotFoundError","getNextFontManifest","NEXT_FONT_MANIFEST","_type","ensurePage","_opts","nodeFs","normalizeReq","NodeNextRequest","normalizeRes","NodeNextResponse","getRequestHandler","makeRequestHandler","wrapRequestHandlerNode","getRequestHandlerWithMetadata","meta","setRequestMeta","urlPath","opts","mocked","createRequestResponseMocks","hasStreamed","getHeader","unstable_onlyGenerated","internal","renderToHTML","renderErrorToResponseImpl","is404","UNDERSCORE_NOT_FOUND_ROUTE_ENTRY","clientOnly","setHeaders","renderErrorToHTML","getMiddlewareManifest","manifest","middlewareModule","loadNodeMiddleware","config","regexp","originalSource","functions","getEdgeFunctionInfo","foundPage","denormalizePagePath","normalizePagePath","pageInfo","name","paths","files","file","wasm","binding","filePath","assets","functionsConfig","FUNCTIONS_CONFIG_MANIFEST","hasMiddleware","nodeMiddleware","ensureEdgeFunction","_params","checkIsOnDemandRevalidate","previewProps","isOnDemandRevalidate","Response","skipProxyUrlNormalize","urlQueryToSearchParams","toString","fetchHostname","port","middlewareInfo","method","toUpperCase","requestData","basePath","trailingSlash","signal","signalFromNodeResponse","MiddlewareNotFoundError","adapterFn","hasRequestBody","proxy","cloneBodyStream","finalize","run","edgeFunctionEntry","useCache","onWarning","has","cookies","getSetCookie","flatMap","maybeCompoundCookie","splitCookiesString","delete","cookie","append","_cachedPreviewManifest","PRERENDER_MANIFEST","_cachedPrefetchHints","SERVER_DIRECTORY","PREFETCH_HINTS","ROUTES_MANIFEST","attachRequestMeta","isUpgradeReq","protocol","trustHostHeader","host","bodySizeLimit","proxyClientMaxBodySize","getCloneableBody","edgeInfo","isNextDataRequest","initialUrl","queryString","fromEntries","onError","globalThis","__incrementalCache","serverComponentsHmrCache","fetchMetrics","statusMessage","statusText","forEach","toLowerCase","appendHeader","_serverDistDir","getFallbackErrorComponents","args","onServerClose","listener","add","close","runAll","getInternalWaitUntil","internalWaitUntil","createInternalWaitUntil","InvariantError","awaiter","AwaiterOnce","awaiting"],"mappings":"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","ignoreList":[0]}