{"version":3,"sources":["../../src/build/utils.ts"],"sourcesContent":["import type {\n  NextConfigComplete,\n  NextConfigRuntime,\n} from '../server/config-shared'\nimport type { ExperimentalPPRConfig } from '../server/lib/experimental/ppr'\nimport { checkIsRoutePPREnabled } from '../server/lib/experimental/ppr'\nimport type { AssetBinding } from './webpack/loaders/get-module-build-info'\nimport type { ServerRuntime } from '../types'\nimport type { BuildManifest } from '../server/get-page-files'\nimport {\n  normalizeRouteRegex,\n  type CustomRoutes,\n  type Header,\n  type Redirect,\n  type Rewrite,\n} from '../lib/load-custom-routes'\nimport type {\n  EdgeFunctionDefinition,\n  MiddlewareManifest,\n} from './webpack/plugins/middleware-plugin'\nimport type { WebpackLayerName } from '../lib/constants'\nimport {\n  INSTRUMENTATION_HOOK_FILENAME,\n  MIDDLEWARE_FILENAME,\n  SERVER_PROPS_GET_INIT_PROPS_CONFLICT,\n  SERVER_PROPS_SSG_CONFLICT,\n  SSG_GET_INITIAL_PROPS_CONFLICT,\n  WEBPACK_LAYERS,\n  PROXY_FILENAME,\n} from '../lib/constants'\nimport type {\n  AppPageModule,\n  AppPageRouteModule,\n} from '../server/route-modules/app-page/module'\nimport type { NextComponentType } from '../shared/lib/utils'\n\nimport '../server/require-hook'\nimport '../server/node-polyfill-crypto'\nimport '../server/node-environment'\n\nimport { bold, cyan, green, red, underline, yellow } from '../lib/picocolors'\nimport textTable from 'next/dist/compiled/text-table'\nimport path from 'path'\nimport { promises as fs } from 'fs'\nimport { isValidElementType } from 'next/dist/compiled/react-is'\nimport stripAnsi from 'next/dist/compiled/strip-ansi'\nimport {\n  UNDERSCORE_GLOBAL_ERROR_ROUTE,\n  UNDERSCORE_GLOBAL_ERROR_ROUTE_ENTRY,\n  UNDERSCORE_NOT_FOUND_ROUTE,\n} from '../shared/lib/constants'\nimport { isDynamicRoute } from '../shared/lib/router/utils/is-dynamic'\nimport { findPageFile } from '../server/lib/find-page-file'\nimport { isEdgeRuntime } from '../lib/is-edge-runtime'\nimport * as Log from './output/log'\nimport type { LoadComponentsReturnType } from '../server/load-components'\nimport { loadComponents } from '../server/load-components'\nimport { trace } from '../trace'\nimport { setHttpClientAndAgentOptions } from '../server/setup-http-agent-env'\nimport { Sema } from 'next/dist/compiled/async-sema'\nimport { normalizePagePath } from '../shared/lib/page-path/normalize-page-path'\nimport { getRuntimeContext } from '../server/web/sandbox'\nimport { RouteKind } from '../server/route-kind'\nimport type { PageExtensions } from './page-extensions-type'\nimport type { FallbackMode } from '../lib/fallback'\nimport type { OutgoingHttpHeaders } from 'http'\nimport type { AppSegmentConfig } from './segment-config/app/app-segment-config'\nimport type { AppSegment } from './segment-config/app/app-segments'\nimport { collectSegments } from './segment-config/app/app-segments'\nimport { createIncrementalCache } from '../export/helpers/create-incremental-cache'\nimport { collectRootParamKeys } from './segment-config/app/collect-root-param-keys'\nimport { buildAppStaticPaths } from './static-paths/app'\nimport { buildPagesStaticPaths } from './static-paths/pages'\nimport type { PrerenderedRoute } from './static-paths/types'\nimport type { CacheControl } from '../server/lib/cache-control'\nimport { formatExpire, formatRevalidate } from './output/format'\nimport type {\n  AppRouteModule,\n  AppRouteRouteModule,\n} from '../server/route-modules/app-route/module'\nimport type { FunctionsConfigManifest, ManifestRoute } from './index'\nimport { getNamedRouteRegex } from '../shared/lib/router/utils/route-regex'\nimport { parseAppRoute } from '../shared/lib/router/routes/app'\nimport { fillMetadataSegment } from '../lib/metadata/get-metadata-route'\nimport { STATIC_METADATA_IMAGES } from '../lib/metadata/is-metadata-route'\n\n// Build a set of static metadata image filenames for quick lookup\nconst staticMetadataImageFilenames = new Set<string>(\n  Object.values(STATIC_METADATA_IMAGES).map((meta) => meta.filename)\n)\n\n/**\n * Get the display path for build output. For static metadata files under\n * dynamic routes, this normalizes the path to use \"-\" placeholder.\n * e.g., /dynamic/[id]/icon.png -> /dynamic/-/icon.png\n */\nfunction getTreeViewDisplayPath(pagePath: string): string {\n  // Check if the path contains dynamic segments\n  if (!isDynamicRoute(pagePath)) {\n    return pagePath\n  }\n\n  // Check if the filename is a static metadata image\n  const lastSlash = pagePath.lastIndexOf('/')\n  const filename = pagePath.slice(lastSlash + 1)\n  const dotIndex = filename.lastIndexOf('.')\n  const baseName = dotIndex > 0 ? filename.slice(0, dotIndex) : filename\n\n  // Check against known static metadata image filenames (e.g., icon, apple-icon, opengraph-image)\n  if (!staticMetadataImageFilenames.has(baseName)) {\n    return pagePath\n  }\n\n  // Transform using fillMetadataSegment with isStatic=true\n  const segment = pagePath.slice(0, lastSlash)\n  const lastSegment = filename\n  return fillMetadataSegment(segment, {}, lastSegment, true)\n}\n\nexport type ROUTER_TYPE = 'pages' | 'app'\n\nexport type DynamicManifestRoute = ManifestRoute & {\n  /**\n   * The source page that this route is based on. This is used to determine the\n   * source page for the route and is only relevant for app pages where PPR is\n   * enabled and the page differs from the source page.\n   */\n  sourcePage: string | undefined\n}\n\n// Use `print()` for expected console output\nconst print = console.log\n\nconst RESERVED_PAGE = /^\\/(_app|_error|_document|api(\\/|$))/\n\nexport function unique<T>(main: ReadonlyArray<T>, sub: ReadonlyArray<T>): T[] {\n  return [...new Set([...main, ...sub])]\n}\n\nexport function difference<T>(\n  main: ReadonlyArray<T> | ReadonlySet<T>,\n  sub: ReadonlyArray<T> | ReadonlySet<T>\n): T[] {\n  const a = new Set(main)\n  const b = new Set(sub)\n  return [...a].filter((x) => !b.has(x))\n}\n\nexport function isMiddlewareFilename(file?: string | null) {\n  return (\n    file === MIDDLEWARE_FILENAME ||\n    file === `src/${MIDDLEWARE_FILENAME}` ||\n    file === PROXY_FILENAME ||\n    file === `src/${PROXY_FILENAME}`\n  )\n}\n\nexport function isInstrumentationHookFilename(file?: string | null) {\n  return (\n    file === INSTRUMENTATION_HOOK_FILENAME ||\n    file === `src/${INSTRUMENTATION_HOOK_FILENAME}`\n  )\n}\n\nexport const filterAndSortList = (\n  list: ReadonlyArray<string>,\n  routeType: ROUTER_TYPE,\n  hasCustomApp: boolean\n) => {\n  let pages: string[]\n  if (routeType === 'app') {\n    // filter out static app route of /favicon.ico and /_global-error\n    pages = list.filter((e) => {\n      if (e === '/favicon.ico') return false\n      // Hide static /_global-error from build output\n      if (e === '/_global-error') return false\n      return true\n    })\n  } else {\n    // filter built-in pages\n    pages = list\n      .slice()\n      .filter(\n        (e) =>\n          !(\n            e === '/_document' ||\n            e === '/_error' ||\n            (!hasCustomApp && e === '/_app')\n          )\n      )\n  }\n  return pages.sort((a, b) => a.localeCompare(b))\n}\n\nexport interface PageInfo {\n  originalAppPath: string | undefined\n  isStatic: boolean\n  isSSG: boolean\n  /**\n   * If true, it means that the route has partial prerendering enabled.\n   */\n  isRoutePPREnabled: boolean\n  ssgPageRoutes: string[] | null\n  initialCacheControl: CacheControl | undefined\n  pageDuration: number | undefined\n  ssgPageDurations: number[] | undefined\n  runtime: ServerRuntime\n  hasEmptyStaticShell?: boolean\n  hasPostponed?: boolean\n  isDynamicAppRoute?: boolean\n}\n\nexport type PageInfos = Map<string, PageInfo>\n\nexport interface RoutesUsingEdgeRuntime {\n  [route: string]: 0\n}\n\nexport function collectRoutesUsingEdgeRuntime(\n  input: PageInfos\n): RoutesUsingEdgeRuntime {\n  const routesUsingEdgeRuntime: RoutesUsingEdgeRuntime = {}\n  for (const [route, info] of input.entries()) {\n    if (isEdgeRuntime(info.runtime)) {\n      routesUsingEdgeRuntime[route] = 0\n    }\n  }\n\n  return routesUsingEdgeRuntime\n}\n\nexport async function printTreeView(\n  lists: {\n    pages: ReadonlyArray<string>\n    app: ReadonlyArray<string> | undefined\n  },\n  pageInfos: Map<string, PageInfo>,\n  {\n    pagesDir,\n    pageExtensions,\n    middlewareManifest,\n    functionsConfigManifest,\n    useStaticPages404,\n    hasGSPAndRevalidateZero,\n  }: {\n    pagesDir?: string\n    pageExtensions: PageExtensions\n    buildManifest: BuildManifest\n    middlewareManifest: MiddlewareManifest\n    functionsConfigManifest: FunctionsConfigManifest\n    useStaticPages404: boolean\n    hasGSPAndRevalidateZero: Set<string>\n  }\n) {\n  // Can be overridden for test purposes to omit the build duration output.\n  const MIN_DURATION = process.env.__NEXT_PRIVATE_DETERMINISTIC_BUILD_OUTPUT\n    ? Infinity // Don't ever log build durations.\n    : 300\n\n  const getPrettyDuration = (_duration: number): string => {\n    const duration = `${_duration} ms`\n    // green for 300-1000ms\n    if (_duration < 1000) return green(duration)\n    // yellow for 1000-2000ms\n    if (_duration < 2000) return yellow(duration)\n    // red for >= 2000ms\n    return red(bold(duration))\n  }\n\n  // Check if we have a custom app.\n  const hasCustomApp = !!(\n    pagesDir && (await findPageFile(pagesDir, '/_app', pageExtensions, false))\n  )\n\n  // Collect all the symbols we use so we can print the icons out.\n  const usedSymbols = new Set()\n\n  const messages: string[][] = []\n\n  const printFileTree = async ({\n    list,\n    routerType,\n  }: {\n    list: ReadonlyArray<string>\n    routerType: ROUTER_TYPE\n  }) => {\n    const filteredPages = filterAndSortList(list, routerType, hasCustomApp)\n    if (filteredPages.length === 0) {\n      return\n    }\n\n    let showRevalidate = false\n    let showExpire = false\n\n    for (const page of filteredPages) {\n      const cacheControl = pageInfos.get(page)?.initialCacheControl\n\n      if (cacheControl?.revalidate) {\n        showRevalidate = true\n      }\n\n      if (cacheControl?.expire) {\n        showExpire = true\n      }\n\n      if (showRevalidate && showExpire) {\n        break\n      }\n    }\n\n    messages.push(\n      [\n        routerType === 'app' ? 'Route (app)' : 'Route (pages)',\n        showRevalidate ? 'Revalidate' : '',\n        showExpire ? 'Expire' : '',\n      ]\n        .filter((entry) => entry !== '')\n        .map((entry) => underline(entry))\n    )\n\n    filteredPages.forEach((item, i, arr) => {\n      const border =\n        i === 0\n          ? arr.length === 1\n            ? '─'\n            : '┌'\n          : i === arr.length - 1\n            ? '└'\n            : '├'\n\n      const pageInfo = pageInfos.get(item)\n      const totalDuration =\n        (pageInfo?.pageDuration || 0) +\n        (pageInfo?.ssgPageDurations?.reduce((a, b) => a + (b || 0), 0) || 0)\n\n      let symbol: string\n\n      if (item === '/_app' || item === '/_app.server') {\n        symbol = ' '\n      } else if (isEdgeRuntime(pageInfo?.runtime)) {\n        symbol = 'ƒ'\n      } else if (pageInfo?.isRoutePPREnabled) {\n        if (\n          // If the page has an empty static shell, then it's equivalent to a\n          // dynamic page\n          pageInfo?.hasEmptyStaticShell ||\n          // ensure we don't mark dynamic paths that postponed as being dynamic\n          // since in this case we're able to partially prerender it\n          (pageInfo.isDynamicAppRoute && !pageInfo.hasPostponed)\n        ) {\n          symbol = 'ƒ'\n        } else if (!pageInfo?.hasPostponed) {\n          symbol = '○'\n        } else {\n          symbol = '◐'\n        }\n      } else if (pageInfo?.isStatic) {\n        symbol = '○'\n      } else if (pageInfo?.isSSG) {\n        symbol = '●'\n      } else {\n        symbol = 'ƒ'\n      }\n\n      const displayPath = getTreeViewDisplayPath(item)\n\n      if (hasGSPAndRevalidateZero.has(item)) {\n        usedSymbols.add('ƒ')\n        messages.push([\n          `${border} ƒ ${displayPath}${\n            totalDuration > MIN_DURATION\n              ? ` (${getPrettyDuration(totalDuration)})`\n              : ''\n          }`,\n          showRevalidate && pageInfo?.initialCacheControl\n            ? formatRevalidate(pageInfo.initialCacheControl)\n            : '',\n          showExpire && pageInfo?.initialCacheControl\n            ? formatExpire(pageInfo.initialCacheControl)\n            : '',\n        ])\n      }\n\n      usedSymbols.add(symbol)\n\n      messages.push([\n        `${border} ${symbol} ${displayPath}${\n          totalDuration > MIN_DURATION\n            ? ` (${getPrettyDuration(totalDuration)})`\n            : ''\n        }`,\n        showRevalidate && pageInfo?.initialCacheControl\n          ? formatRevalidate(pageInfo.initialCacheControl)\n          : '',\n        showExpire && pageInfo?.initialCacheControl\n          ? formatExpire(pageInfo.initialCacheControl)\n          : '',\n      ])\n\n      if (pageInfo?.ssgPageRoutes?.length) {\n        const totalRoutes = pageInfo.ssgPageRoutes.length\n        const contSymbol = i === arr.length - 1 ? ' ' : '│'\n\n        // HERE\n\n        let routes: { route: string; duration: number; avgDuration?: number }[]\n        if (pageInfo.ssgPageDurations?.some((d) => d > MIN_DURATION)) {\n          const previewPages = totalRoutes === 8 ? 8 : Math.min(totalRoutes, 7)\n          const routesWithDuration = pageInfo.ssgPageRoutes\n            .map((route, idx) => ({\n              route,\n              duration: pageInfo.ssgPageDurations![idx] || 0,\n            }))\n            .sort(({ duration: a }, { duration: b }) =>\n              // Sort by duration\n              // keep too small durations in original order at the end\n              a <= MIN_DURATION && b <= MIN_DURATION ? 0 : b - a\n            )\n          routes = routesWithDuration.slice(0, previewPages)\n          const remainingRoutes = routesWithDuration.slice(previewPages)\n          if (remainingRoutes.length) {\n            const remaining = remainingRoutes.length\n            const avgDuration = Math.round(\n              remainingRoutes.reduce(\n                (total, { duration }) => total + duration,\n                0\n              ) / remainingRoutes.length\n            )\n            routes.push({\n              route: `[+${remaining} more paths]`,\n              duration: 0,\n              avgDuration,\n            })\n          }\n        } else {\n          const previewPages = totalRoutes === 4 ? 4 : Math.min(totalRoutes, 3)\n          routes = pageInfo.ssgPageRoutes\n            .slice(0, previewPages)\n            .map((route) => ({ route, duration: 0 }))\n          if (totalRoutes > previewPages) {\n            const remaining = totalRoutes - previewPages\n            routes.push({ route: `[+${remaining} more paths]`, duration: 0 })\n          }\n        }\n\n        routes.forEach(\n          ({ route, duration, avgDuration }, index, { length }) => {\n            const innerSymbol = index === length - 1 ? '└' : '├'\n\n            const initialCacheControl =\n              pageInfos.get(route)?.initialCacheControl\n\n            messages.push([\n              `${contSymbol} ${innerSymbol} ${route}${\n                duration > MIN_DURATION\n                  ? ` (${getPrettyDuration(duration)})`\n                  : ''\n              }${\n                avgDuration && avgDuration > MIN_DURATION\n                  ? ` (avg ${getPrettyDuration(avgDuration)})`\n                  : ''\n              }`,\n              showRevalidate && initialCacheControl\n                ? formatRevalidate(initialCacheControl)\n                : '',\n              showExpire && initialCacheControl\n                ? formatExpire(initialCacheControl)\n                : '',\n            ])\n          }\n        )\n      }\n    })\n  }\n\n  // If enabled, then print the tree for the app directory.\n  if (lists.app) {\n    await printFileTree({\n      routerType: 'app',\n      list: lists.app,\n    })\n\n    messages.push(['', '', '', ''])\n  }\n\n  pageInfos.set('/404', {\n    ...(pageInfos.get('/404') || pageInfos.get('/_error'))!,\n    isStatic: useStaticPages404,\n  })\n\n  // If there's no app /_notFound page present, then the 404 is still using the pages/404\n  if (\n    !lists.pages.includes('/404') &&\n    !lists.app?.includes(UNDERSCORE_NOT_FOUND_ROUTE)\n  ) {\n    lists.pages = [...lists.pages, '/404']\n  }\n\n  // Print the tree view for the pages directory.\n  await printFileTree({\n    routerType: 'pages',\n    list: lists.pages,\n  })\n\n  if (\n    middlewareManifest.middleware?.['/']?.files.length > 0 ||\n    // 'nodejs' runtime middleware or proxy is set to\n    // functions-config-manifest instead of middleware-manifest.\n    functionsConfigManifest.functions?.['/_middleware']\n  ) {\n    messages.push([])\n    messages.push(['ƒ Proxy (Middleware)'])\n  }\n\n  print(\n    textTable(messages, {\n      align: ['l', 'r', 'r', 'r'],\n      stringLength: (str) => stripAnsi(str).length,\n    })\n  )\n\n  const staticFunctionInfo = lists.app\n    ? 'generateStaticParams'\n    : 'getStaticProps'\n  print()\n  print(\n    textTable(\n      [\n        usedSymbols.has('○') && [\n          '○',\n          '(Static)',\n          'prerendered as static content',\n        ],\n        usedSymbols.has('●') && [\n          '●',\n          '(SSG)',\n          `prerendered as static HTML (uses ${cyan(staticFunctionInfo)})`,\n        ],\n        usedSymbols.has('◐') && [\n          '◐',\n          '(Partial Prerender)',\n          'prerendered as static HTML with dynamic server-streamed content',\n        ],\n        usedSymbols.has('ƒ') && ['ƒ', '(Dynamic)', `server-rendered on demand`],\n      ].filter((x) => x) as [string, string, string][],\n      {\n        align: ['l', 'l', 'l'],\n        stringLength: (str) => stripAnsi(str).length,\n      }\n    )\n  )\n\n  print()\n}\n\nexport function printCustomRoutes({\n  redirects,\n  rewrites,\n  headers,\n  onMatchHeaders,\n}: CustomRoutes) {\n  const printRoutes = (\n    routes: Redirect[] | Rewrite[] | Header[],\n    type: 'Redirects' | 'Rewrites' | 'Headers' | 'On Match Headers'\n  ) => {\n    const isRedirects = type === 'Redirects'\n    const isHeaders = type === 'Headers' || type === 'On Match Headers'\n    print(underline(type))\n\n    /*\n        ┌ source\n        ├ permanent/statusCode\n        └ destination\n     */\n    const routesStr = (routes as any[])\n      .map((route: { source: string }) => {\n        let routeStr = `┌ source: ${route.source}\\n`\n\n        if (!isHeaders) {\n          const r = route as Rewrite\n          routeStr += `${isRedirects ? '├' : '└'} destination: ${\n            r.destination\n          }\\n`\n        }\n        if (isRedirects) {\n          const r = route as Redirect\n          routeStr += `└ ${\n            r.statusCode\n              ? `status: ${r.statusCode}`\n              : `permanent: ${r.permanent}`\n          }\\n`\n        }\n\n        if (isHeaders) {\n          const r = route as Header\n          routeStr += `└ headers:\\n`\n\n          for (let i = 0; i < r.headers.length; i++) {\n            const header = r.headers[i]\n            const last = i === headers.length - 1\n\n            routeStr += `  ${last ? '└' : '├'} ${header.key}: ${header.value}\\n`\n          }\n        }\n\n        return routeStr\n      })\n      .join('\\n')\n\n    print(`${routesStr}\\n`)\n  }\n\n  print()\n  if (redirects.length) {\n    printRoutes(redirects, 'Redirects')\n  }\n  if (headers.length) {\n    printRoutes(headers, 'Headers')\n  }\n  if (onMatchHeaders.length) {\n    printRoutes(onMatchHeaders, 'On Match Headers')\n  }\n\n  const combinedRewrites = [\n    ...rewrites.beforeFiles,\n    ...rewrites.afterFiles,\n    ...rewrites.fallback,\n  ]\n  if (combinedRewrites.length) {\n    printRoutes(combinedRewrites, 'Rewrites')\n  }\n}\n\ntype PageIsStaticResult = {\n  isRoutePPREnabled?: boolean\n  isStatic?: boolean\n  hasServerProps?: boolean\n  hasStaticProps?: boolean\n  prerenderedRoutes: PrerenderedRoute[] | undefined\n  prerenderFallbackMode: FallbackMode | undefined\n  rootParamKeys: readonly string[] | undefined\n  isNextImageImported?: boolean\n  traceIncludes?: string[]\n  traceExcludes?: string[]\n  appConfig?: AppSegmentConfig\n}\n\nexport async function isPageStatic({\n  dir,\n  page,\n  distDir,\n  configFileName,\n  httpAgentOptions,\n  locales,\n  defaultLocale,\n  parentId,\n  pageRuntime,\n  edgeInfo,\n  pageType,\n  cacheComponents,\n  authInterrupts,\n  originalAppPath,\n  isrFlushToDisk,\n  cacheMaxMemorySize,\n  nextConfigOutput,\n  cacheHandler,\n  cacheHandlers,\n  cacheLifeProfiles,\n  pprConfig,\n  partialFallbacksEnabled,\n  buildId,\n  clientAssetToken,\n  sriEnabled,\n}: {\n  dir: string\n  page: string\n  distDir: string\n  cacheComponents: boolean\n  authInterrupts: boolean\n  configFileName: string\n  httpAgentOptions: NextConfigComplete['httpAgentOptions']\n  locales?: readonly string[]\n  defaultLocale?: string\n  parentId?: any\n  edgeInfo?: any\n  pageType?: 'pages' | 'app'\n  pageRuntime?: ServerRuntime\n  originalAppPath?: string\n  isrFlushToDisk?: boolean\n  cacheMaxMemorySize: number\n  cacheHandler?: string\n  cacheHandlers?: Record<string, string | undefined>\n  cacheLifeProfiles?: {\n    [profile: string]: import('../server/use-cache/cache-life').CacheLife\n  }\n  nextConfigOutput: 'standalone' | 'export' | undefined\n  pprConfig: ExperimentalPPRConfig | undefined\n  partialFallbacksEnabled: boolean\n  buildId: string\n  clientAssetToken: string\n  sriEnabled: boolean\n}): Promise<PageIsStaticResult> {\n  // Skip page data collection for synthetic _global-error routes\n  if (page === UNDERSCORE_GLOBAL_ERROR_ROUTE) {\n    return {\n      isStatic: true,\n      isRoutePPREnabled: false,\n      prerenderFallbackMode: undefined,\n      prerenderedRoutes: undefined,\n      rootParamKeys: undefined,\n      hasStaticProps: false,\n      hasServerProps: false,\n      isNextImageImported: false,\n      appConfig: {},\n    }\n  }\n\n  await createIncrementalCache({\n    cacheHandler,\n    cacheHandlers,\n    distDir,\n    dir,\n    flushToDisk: isrFlushToDisk,\n    cacheMaxMemorySize,\n  })\n\n  const isPageStaticSpan = trace('is-page-static-utils', parentId)\n  return isPageStaticSpan\n    .traceAsyncFn(async (): Promise<PageIsStaticResult> => {\n      setHttpClientAndAgentOptions({\n        httpAgentOptions,\n      })\n\n      let componentsResult: LoadComponentsReturnType\n      let prerenderedRoutes: PrerenderedRoute[] | undefined\n      let prerenderFallbackMode: FallbackMode | undefined\n      let appConfig: AppSegmentConfig = {}\n      let rootParamKeys: readonly string[] | undefined\n      const pathIsEdgeRuntime = isEdgeRuntime(pageRuntime)\n\n      if (pathIsEdgeRuntime) {\n        const runtime = await getRuntimeContext({\n          paths: edgeInfo.files.map((file: string) => path.join(distDir, file)),\n          edgeFunctionEntry: {\n            ...edgeInfo,\n            wasm: (edgeInfo.wasm ?? []).map((binding: AssetBinding) => ({\n              ...binding,\n              filePath: path.join(distDir, binding.filePath),\n            })),\n          },\n          name: edgeInfo.name,\n          useCache: true,\n          distDir,\n          clientAssetToken,\n        })\n        const mod = (\n          await runtime.context._ENTRIES[`middleware_${edgeInfo.name}`]\n        ).ComponentMod\n\n        // This is not needed during require.\n        const buildManifest = {} as BuildManifest\n\n        componentsResult = {\n          Component: mod.default,\n          Document: mod.Document,\n          App: mod.App,\n          routeModule: mod.routeModule,\n          page,\n          ComponentMod: mod,\n          pageConfig: mod.config || {},\n          buildManifest,\n          reactLoadableManifest: {},\n          getServerSideProps: mod.getServerSideProps,\n          getStaticPaths: mod.getStaticPaths,\n          getStaticProps: mod.getStaticProps,\n        }\n      } else {\n        componentsResult = await loadComponents({\n          distDir,\n          page: originalAppPath || page,\n          isAppPath: pageType === 'app',\n          isDev: false,\n          sriEnabled,\n          needsManifestsForLegacyReasons: true,\n        })\n      }\n\n      const { Component, routeModule } = componentsResult\n\n      const Comp = Component as NextComponentType | undefined\n\n      let isRoutePPREnabled: boolean = false\n\n      if (pageType === 'app') {\n        // @ts-expect-error pageType is app, so we can assume AppPageModule | AppRouteModule\n        const ComponentMod: AppPageModule | AppRouteModule =\n          componentsResult.ComponentMod\n\n        let segments: AppSegment[]\n        try {\n          segments = await collectSegments(\n            // We know this is an app page or app route module because we\n            // checked above that the page type is 'app'.\n            routeModule as AppPageRouteModule | AppRouteRouteModule\n          )\n        } catch (err) {\n          throw new Error(`Failed to collect configuration for ${page}`, {\n            cause: err,\n          })\n        }\n\n        appConfig =\n          originalAppPath === UNDERSCORE_GLOBAL_ERROR_ROUTE_ENTRY\n            ? {}\n            : reduceAppConfig(segments)\n\n        if (appConfig.dynamic === 'force-static' && pathIsEdgeRuntime) {\n          Log.warn(\n            `Page \"${page}\" is using runtime = 'edge' which is currently incompatible with dynamic = 'force-static'. Please remove either \"runtime\" or \"force-static\" for correct behavior`\n          )\n        }\n\n        rootParamKeys = collectRootParamKeys(routeModule)\n\n        // A page supports partial prerendering if it is an app page and either\n        // the whole app has PPR enabled or this page has PPR enabled when we're\n        // in incremental mode.\n        isRoutePPREnabled =\n          routeModule.definition.kind === RouteKind.APP_PAGE &&\n          checkIsRoutePPREnabled(pprConfig)\n\n        // If force dynamic was set and we don't have PPR enabled, then set the\n        // revalidate to 0.\n        // TODO: (PPR) remove this once PPR is enabled by default\n        if (appConfig.dynamic === 'force-dynamic' && !isRoutePPREnabled) {\n          appConfig.revalidate = 0\n        }\n\n        const route = parseAppRoute(page, true)\n\n        // If the page is dynamic and we're not in edge runtime, then we need to\n        // build the static paths. The edge runtime doesn't support static\n        // paths.\n        if (route.dynamicSegments.length > 0 && !pathIsEdgeRuntime) {\n          ;({ prerenderedRoutes, fallbackMode: prerenderFallbackMode } =\n            await buildAppStaticPaths({\n              dir,\n              page,\n              route,\n              cacheComponents,\n              authInterrupts,\n              segments,\n              distDir,\n              requestHeaders: {},\n              isrFlushToDisk,\n              cacheMaxMemorySize,\n              cacheHandler,\n              cacheLifeProfiles,\n              ComponentMod,\n              nextConfigOutput,\n              isRoutePPREnabled,\n              partialFallbacksEnabled,\n              buildId,\n              rootParamKeys,\n            }))\n        }\n      } else {\n        if (!Comp || !isValidElementType(Comp) || typeof Comp === 'string') {\n          throw new Error('INVALID_DEFAULT_EXPORT')\n        }\n      }\n\n      const hasGetInitialProps = !!Comp?.getInitialProps\n      const hasStaticProps = !!componentsResult.getStaticProps\n      const hasStaticPaths = !!componentsResult.getStaticPaths\n      const hasServerProps = !!componentsResult.getServerSideProps\n\n      // A page cannot be prerendered _and_ define a data requirement. That's\n      // contradictory!\n      if (hasGetInitialProps && hasStaticProps) {\n        throw new Error(SSG_GET_INITIAL_PROPS_CONFLICT)\n      }\n\n      if (hasGetInitialProps && hasServerProps) {\n        throw new Error(SERVER_PROPS_GET_INIT_PROPS_CONFLICT)\n      }\n\n      if (hasStaticProps && hasServerProps) {\n        throw new Error(SERVER_PROPS_SSG_CONFLICT)\n      }\n\n      const pageIsDynamic = isDynamicRoute(page)\n      // A page cannot have static parameters if it is not a dynamic page.\n      if (hasStaticProps && hasStaticPaths && !pageIsDynamic) {\n        throw new Error(\n          `getStaticPaths can only be used with dynamic pages, not '${page}'.` +\n            `\\nLearn more: https://nextjs.org/docs/routing/dynamic-routes`\n        )\n      }\n\n      if (hasStaticProps && pageIsDynamic && !hasStaticPaths) {\n        throw new Error(\n          `getStaticPaths is required for dynamic SSG pages and is missing for '${page}'.` +\n            `\\nRead more: https://nextjs.org/docs/messages/invalid-getstaticpaths-value`\n        )\n      }\n\n      if (hasStaticProps && hasStaticPaths) {\n        ;({ prerenderedRoutes, fallbackMode: prerenderFallbackMode } =\n          await buildPagesStaticPaths({\n            page,\n            locales,\n            defaultLocale,\n            configFileName,\n            getStaticPaths: componentsResult.getStaticPaths!,\n          }))\n      }\n\n      const isNextImageImported = (globalThis as any).__NEXT_IMAGE_IMPORTED\n\n      let isStatic = false\n      if (!hasStaticProps && !hasGetInitialProps && !hasServerProps) {\n        isStatic = true\n      }\n\n      // When PPR is enabled, any route may be completely static, so\n      // mark this route as static.\n      if (isRoutePPREnabled) {\n        isStatic = true\n      }\n\n      return {\n        isStatic,\n        isRoutePPREnabled,\n        prerenderFallbackMode,\n        prerenderedRoutes,\n        rootParamKeys,\n        hasStaticProps,\n        hasServerProps,\n        isNextImageImported,\n        appConfig,\n      }\n    })\n    .catch((err) => {\n      if (err.message === 'INVALID_DEFAULT_EXPORT') {\n        throw err\n      }\n      console.error(err)\n      throw new Error(`Failed to collect page data for ${page}`)\n    })\n}\n\ntype ReducedAppConfig = Pick<\n  AppSegmentConfig,\n  | 'revalidate'\n  | 'dynamic'\n  | 'fetchCache'\n  | 'preferredRegion'\n  | 'runtime'\n  | 'maxDuration'\n>\n\n/**\n * Collect the app config from the generate param segments. This only gets a\n * subset of the config options.\n *\n * @param segments the generate param segments\n * @returns the reduced app config\n */\nexport function reduceAppConfig(\n  segments: Pick<AppSegment, 'config'>[]\n): ReducedAppConfig {\n  const config: ReducedAppConfig = {}\n\n  for (const segment of segments) {\n    const {\n      dynamic,\n      fetchCache,\n      preferredRegion,\n      revalidate,\n      runtime,\n      maxDuration,\n    } = segment.config || {}\n\n    // TODO: should conflicting configs here throw an error\n    // e.g. if layout defines one region but page defines another\n\n    if (typeof preferredRegion !== 'undefined') {\n      config.preferredRegion = preferredRegion\n    }\n\n    if (typeof dynamic !== 'undefined') {\n      config.dynamic = dynamic\n    }\n\n    if (typeof fetchCache !== 'undefined') {\n      config.fetchCache = fetchCache\n    }\n\n    if (typeof revalidate !== 'undefined') {\n      config.revalidate = revalidate\n    }\n\n    // Any revalidate number overrides false, and shorter revalidate overrides\n    // longer (initially).\n    if (\n      typeof revalidate === 'number' &&\n      (typeof config.revalidate !== 'number' || revalidate < config.revalidate)\n    ) {\n      config.revalidate = revalidate\n    }\n\n    if (typeof runtime !== 'undefined') {\n      config.runtime = runtime\n    }\n\n    if (typeof maxDuration !== 'undefined') {\n      config.maxDuration = maxDuration\n    }\n  }\n\n  return config\n}\n\nexport async function hasCustomGetInitialProps({\n  page,\n  distDir,\n  checkingApp,\n  sriEnabled,\n}: {\n  page: string\n  distDir: string\n  checkingApp: boolean\n  sriEnabled: boolean\n}): Promise<boolean> {\n  const { ComponentMod } = await loadComponents({\n    distDir,\n    page: page,\n    isAppPath: false,\n    isDev: false,\n    sriEnabled,\n    needsManifestsForLegacyReasons: true,\n  })\n  let mod = ComponentMod\n\n  if (checkingApp) {\n    // @ts-expect-error very dynamic code\n    mod = (await mod._app) || mod.default || mod\n  } else {\n    // @ts-expect-error very dynamic code\n    mod = mod.default || mod\n  }\n  mod = await mod\n  // @ts-expect-error very dynamic code\n  return mod.getInitialProps !== mod.origGetInitialProps\n}\n\nexport async function getDefinedNamedExports({\n  page,\n  distDir,\n  sriEnabled,\n}: {\n  page: string\n  distDir: string\n  sriEnabled: boolean\n}): Promise<ReadonlyArray<string>> {\n  const { ComponentMod } = await loadComponents({\n    distDir,\n    page: page,\n    isAppPath: false,\n    isDev: false,\n    sriEnabled,\n    needsManifestsForLegacyReasons: true,\n  })\n\n  return Object.keys(ComponentMod).filter((key) => {\n    return typeof ComponentMod[key as keyof typeof ComponentMod] !== 'undefined'\n  })\n}\n\nexport function detectConflictingPaths(\n  combinedPages: string[],\n  ssgPages: Set<string>,\n  additionalGeneratedSSGPaths: Map<string, string[]>\n) {\n  const conflictingPaths = new Map<\n    string,\n    Array<{\n      path: string\n      page: string\n    }>\n  >()\n\n  const dynamicSsgPages = [...ssgPages].filter((page) => isDynamicRoute(page))\n  const additionalSsgPathsByPath: {\n    [page: string]: { [path: string]: string }\n  } = {}\n\n  additionalGeneratedSSGPaths.forEach((paths, pathsPage) => {\n    additionalSsgPathsByPath[pathsPage] ||= {}\n    paths.forEach((curPath) => {\n      const currentPath = curPath.toLowerCase()\n      additionalSsgPathsByPath[pathsPage][currentPath] = curPath\n    })\n  })\n\n  additionalGeneratedSSGPaths.forEach((paths, pathsPage) => {\n    paths.forEach((curPath) => {\n      const lowerPath = curPath.toLowerCase()\n      let conflictingPage = combinedPages.find(\n        (page) => page.toLowerCase() === lowerPath\n      )\n\n      if (conflictingPage) {\n        conflictingPaths.set(lowerPath, [\n          { path: curPath, page: pathsPage },\n          { path: conflictingPage, page: conflictingPage },\n        ])\n      } else {\n        let conflictingPath: string | undefined\n\n        conflictingPage = dynamicSsgPages.find((page) => {\n          if (page === pathsPage) return false\n\n          conflictingPath =\n            additionalGeneratedSSGPaths.get(page) == null\n              ? undefined\n              : additionalSsgPathsByPath[page][lowerPath]\n          return conflictingPath\n        })\n\n        if (conflictingPage && conflictingPath) {\n          conflictingPaths.set(lowerPath, [\n            { path: curPath, page: pathsPage },\n            { path: conflictingPath, page: conflictingPage },\n          ])\n        }\n      }\n    })\n  })\n\n  if (conflictingPaths.size > 0) {\n    let conflictingPathsOutput = ''\n\n    conflictingPaths.forEach((pathItems) => {\n      pathItems.forEach((pathItem, idx) => {\n        const isDynamic = pathItem.page !== pathItem.path\n\n        if (idx > 0) {\n          conflictingPathsOutput += 'conflicts with '\n        }\n\n        conflictingPathsOutput += `path: \"${pathItem.path}\"${\n          isDynamic ? ` from page: \"${pathItem.page}\" ` : ' '\n        }`\n      })\n      conflictingPathsOutput += '\\n'\n    })\n\n    Log.error(\n      'Conflicting paths returned from getStaticPaths, paths must be unique per page.\\n' +\n        'See more info here: https://nextjs.org/docs/messages/conflicting-ssg-paths\\n\\n' +\n        conflictingPathsOutput\n    )\n    process.exit(1)\n  }\n}\n\nexport async function copyTracedFiles(\n  dir: string,\n  distDir: string,\n  pageKeys: readonly string[],\n  appPageKeys: readonly string[] | undefined,\n  tracingRoot: string,\n  serverConfig: NextConfigRuntime,\n  middlewareManifest: MiddlewareManifest,\n  hasNodeMiddleware: boolean,\n  hasInstrumentationHook: boolean,\n  staticPages: Set<string>\n) {\n  const outputPath = path.join(distDir, 'standalone')\n\n  // Clean up standalone directory first.\n  await fs.rm(outputPath, { recursive: true, force: true })\n\n  let moduleType = false\n  const nextConfig = {\n    ...serverConfig,\n    distDir: `./${path.relative(dir, distDir)}`,\n  }\n  try {\n    const packageJsonPath = path.join(distDir, '../package.json')\n    const packageJsonContent = await fs.readFile(\n      /* turbopackIgnore: true */ packageJsonPath,\n      'utf8'\n    )\n    const packageJson = JSON.parse(packageJsonContent)\n    moduleType = packageJson.type === 'module'\n\n    // we always copy the package.json to the standalone\n    // folder to ensure any resolving logic is maintained\n    const packageJsonOutputPath = path.join(\n      outputPath,\n      path.relative(tracingRoot, dir),\n      'package.json'\n    )\n    await fs.mkdir(path.dirname(packageJsonOutputPath), { recursive: true })\n    await fs.writeFile(packageJsonOutputPath, packageJsonContent)\n  } catch {}\n  const copiedFiles = new Set()\n\n  async function handleTraceFiles(traceFilePath: string) {\n    const traceData = JSON.parse(\n      await fs.readFile(/* turbopackIgnore: true */ traceFilePath, 'utf8')\n    ) as {\n      files: string[]\n    }\n    const copySema = new Sema(10, { capacity: traceData.files.length })\n    const traceFileDir = path.dirname(traceFilePath)\n\n    await Promise.all(\n      traceData.files.map(async (relativeFile) => {\n        await copySema.acquire()\n\n        const tracedFilePath = path.join(traceFileDir, relativeFile)\n        const fileOutputPath = path.join(\n          outputPath,\n          path.relative(tracingRoot, tracedFilePath)\n        )\n\n        if (!copiedFiles.has(fileOutputPath)) {\n          copiedFiles.add(fileOutputPath)\n\n          await fs.mkdir(path.dirname(fileOutputPath), { recursive: true })\n          const symlink = await fs.readlink(tracedFilePath).catch(() => null)\n\n          if (symlink) {\n            try {\n              await fs.symlink(symlink, fileOutputPath)\n            } catch (err: any) {\n              // Windows doesn't support creating symlinks without elevated privileges, unless\n              // \"Developer Mode\" is turned on. If we failed to create a symlink due to EPERM, try\n              // creating a junction point instead.\n              //\n              // Ideally we'd just preserve the input file type (junction point or symlink), but\n              // there's no API in node.js to differentiate between a junction point and a symlink,\n              // so we just try making a symlink first. Symlinks are preferred because they support\n              // relative paths and non-directory (file) targets.\n              if (\n                process.platform === 'win32' &&\n                err.code === 'EPERM' &&\n                path.isAbsolute(symlink)\n              ) {\n                try {\n                  await fs.symlink(symlink, fileOutputPath, 'junction')\n                } catch (junctionErr: any) {\n                  if (junctionErr.code !== 'EEXIST') {\n                    throw junctionErr\n                  }\n                }\n              } else if (err.code !== 'EEXIST') {\n                throw err\n              }\n            }\n          } else {\n            await fs.copyFile(tracedFilePath, fileOutputPath)\n          }\n        }\n\n        await copySema.release()\n      })\n    )\n  }\n\n  async function handleEdgeFunction(page: EdgeFunctionDefinition) {\n    async function handleFile(file: string) {\n      const originalPath = path.join(distDir, file)\n      const fileOutputPath = path.join(\n        outputPath,\n        path.relative(tracingRoot, distDir),\n        file\n      )\n      await fs.mkdir(path.dirname(fileOutputPath), { recursive: true })\n      await fs.copyFile(originalPath, fileOutputPath)\n    }\n    await Promise.all([\n      page.files.map(handleFile),\n      page.wasm?.map((file) => handleFile(file.filePath)),\n      page.assets?.map((file) => handleFile(file.filePath)),\n    ])\n  }\n\n  const edgeFunctionHandlers: Promise<any>[] = []\n\n  for (const middleware of Object.values(middlewareManifest.middleware)) {\n    if (isMiddlewareFilename(middleware.name)) {\n      edgeFunctionHandlers.push(handleEdgeFunction(middleware))\n    }\n  }\n\n  for (const page of Object.values(middlewareManifest.functions)) {\n    edgeFunctionHandlers.push(handleEdgeFunction(page))\n  }\n\n  await Promise.all(edgeFunctionHandlers)\n\n  for (const page of pageKeys) {\n    if (middlewareManifest.functions.hasOwnProperty(page)) {\n      continue\n    }\n    const route = normalizePagePath(page)\n\n    if (staticPages.has(route)) {\n      continue\n    }\n\n    const pageFile = path.join(\n      distDir,\n      'server',\n      'pages',\n      `${normalizePagePath(page)}.js`\n    )\n    const pageTraceFile = `${pageFile}.nft.json`\n    await handleTraceFiles(pageTraceFile).catch((err) => {\n      if (err.code !== 'ENOENT' || (page !== '/404' && page !== '/500')) {\n        Log.warn(`Failed to copy traced files for ${pageFile}`, err)\n      }\n    })\n  }\n\n  if (hasNodeMiddleware) {\n    const middlewareFile = path.join(distDir, 'server', 'middleware.js')\n    const middlewareTrace = `${middlewareFile}.nft.json`\n    await handleTraceFiles(middlewareTrace)\n  }\n\n  if (appPageKeys) {\n    for (const page of appPageKeys) {\n      if (middlewareManifest.functions.hasOwnProperty(page)) {\n        continue\n      }\n      const pageFile = path.join(distDir, 'server', 'app', `${page}.js`)\n      const pageTraceFile = `${pageFile}.nft.json`\n      await handleTraceFiles(pageTraceFile).catch((err) => {\n        Log.warn(`Failed to copy traced files for ${pageFile}`, err)\n      })\n    }\n  }\n\n  if (hasInstrumentationHook) {\n    await handleTraceFiles(\n      path.join(distDir, 'server', 'instrumentation.js.nft.json')\n    )\n  }\n\n  await handleTraceFiles(path.join(distDir, 'next-server.js.nft.json'))\n  const serverOutputPath = path.join(\n    outputPath,\n    path.relative(tracingRoot, dir),\n    'server.js'\n  )\n  await fs.mkdir(path.dirname(serverOutputPath), { recursive: true })\n\n  await fs.writeFile(\n    serverOutputPath,\n    `${\n      moduleType\n        ? `performance.mark('next-start');\nimport path from 'node:path'\nimport { fileURLToPath } from 'node:url'\nimport module from 'node:module'\nconst require = module.createRequire(import.meta.url)\nconst __dirname = fileURLToPath(new URL('.', import.meta.url))\n`\n        : `const path = require('path')`\n    }\n\nconst dir = path.join(__dirname)\n\nprocess.env.NODE_ENV = 'production'\nprocess.chdir(__dirname)\n\nconst currentPort = parseInt(process.env.PORT, 10) || 3000\nconst hostname = process.env.HOSTNAME || '0.0.0.0'\n\nlet keepAliveTimeout = parseInt(process.env.KEEP_ALIVE_TIMEOUT, 10)\nconst nextConfig = ${JSON.stringify(nextConfig)}\n\nprocess.env.__NEXT_PRIVATE_STANDALONE_CONFIG = JSON.stringify(nextConfig)\n\nrequire('next')\nconst { startServer } = require('next/dist/server/lib/start-server')\n\nif (\n  Number.isNaN(keepAliveTimeout) ||\n  !Number.isFinite(keepAliveTimeout) ||\n  keepAliveTimeout < 0\n) {\n  keepAliveTimeout = undefined\n}\n\nstartServer({\n  dir,\n  isDev: false,\n  config: nextConfig,\n  hostname,\n  port: currentPort,\n  allowRetry: false,\n  keepAliveTimeout,\n}).catch((err) => {\n  console.error(err);\n  process.exit(1);\n});`\n  )\n}\n\nexport function isReservedPage(page: string) {\n  return RESERVED_PAGE.test(page)\n}\n\nexport function isAppBuiltinPage(page: string) {\n  return /next[\\\\/]dist[\\\\/](esm[\\\\/])?client[\\\\/]components[\\\\/]builtin[\\\\/]/.test(\n    page\n  )\n}\n\nexport function isCustomErrorPage(page: string) {\n  return page === '/404' || page === '/500'\n}\n\nexport function isMiddlewareFile(file: string) {\n  return (\n    file === `/${MIDDLEWARE_FILENAME}` ||\n    file === `/src/${MIDDLEWARE_FILENAME}` ||\n    file === `/${PROXY_FILENAME}` ||\n    file === `/src/${PROXY_FILENAME}`\n  )\n}\n\nexport function isProxyFile(file: string) {\n  return file === `/${PROXY_FILENAME}` || file === `/src/${PROXY_FILENAME}`\n}\n\nexport function isInstrumentationHookFile(file: string) {\n  return (\n    file === `/${INSTRUMENTATION_HOOK_FILENAME}` ||\n    file === `/src/${INSTRUMENTATION_HOOK_FILENAME}`\n  )\n}\n\nexport function getPossibleInstrumentationHookFilenames(\n  folder: string,\n  extensions: string[]\n) {\n  const files = []\n  for (const extension of extensions) {\n    files.push(\n      path.join(folder, `${INSTRUMENTATION_HOOK_FILENAME}.${extension}`),\n      path.join(folder, `src`, `${INSTRUMENTATION_HOOK_FILENAME}.${extension}`)\n    )\n  }\n\n  return files\n}\n\nexport function getPossibleMiddlewareFilenames(\n  folder: string,\n  extensions: string[]\n) {\n  return extensions.flatMap((extension) => [\n    path.join(folder, `${MIDDLEWARE_FILENAME}.${extension}`),\n    path.join(folder, `${PROXY_FILENAME}.${extension}`),\n  ])\n}\n\nexport class NestedMiddlewareError extends Error {\n  constructor(\n    nestedFileNames: string[],\n    mainDir: string,\n    pagesOrAppDir: string\n  ) {\n    super(\n      `Nested Middleware is not allowed, found:\\n` +\n        `${nestedFileNames.map((file) => `pages${file}`).join('\\n')}\\n` +\n        `Please move your code to a single file at ${path.join(\n          path.posix.sep,\n          path.relative(mainDir, path.resolve(pagesOrAppDir, '..')),\n          'middleware'\n        )} instead.\\n` +\n        `Read More - https://nextjs.org/docs/messages/nested-middleware`\n    )\n  }\n}\n\nexport { getSupportedBrowsers } from './get-supported-browsers'\n\nexport function shouldUseReactServerCondition(\n  layer: WebpackLayerName | null | undefined\n): boolean {\n  return Boolean(\n    layer && WEBPACK_LAYERS.GROUP.serverOnly.includes(layer as any)\n  )\n}\n\nexport function isWebpackClientOnlyLayer(\n  layer: WebpackLayerName | null | undefined\n): boolean {\n  return Boolean(\n    layer && WEBPACK_LAYERS.GROUP.clientOnly.includes(layer as any)\n  )\n}\n\nexport function isWebpackDefaultLayer(\n  layer: WebpackLayerName | null | undefined\n): boolean {\n  return (\n    layer === null ||\n    layer === undefined ||\n    layer === WEBPACK_LAYERS.pagesDirBrowser ||\n    layer === WEBPACK_LAYERS.pagesDirEdge ||\n    layer === WEBPACK_LAYERS.pagesDirNode\n  )\n}\n\nexport function isWebpackBundledLayer(\n  layer: WebpackLayerName | null | undefined\n): boolean {\n  return Boolean(layer && WEBPACK_LAYERS.GROUP.bundled.includes(layer as any))\n}\n\nexport function isWebpackAppPagesLayer(\n  layer: WebpackLayerName | null | undefined\n): boolean {\n  return Boolean(layer && WEBPACK_LAYERS.GROUP.appPages.includes(layer as any))\n}\n\nexport function collectMeta({\n  status,\n  headers,\n}: {\n  status?: number\n  headers?: OutgoingHttpHeaders\n}): {\n  status?: number\n  headers?: Record<string, string>\n} {\n  const meta: {\n    status?: number\n    headers?: Record<string, string>\n  } = {}\n\n  if (status !== 200) {\n    meta.status = status\n  }\n\n  if (headers && Object.keys(headers).length) {\n    meta.headers = {}\n\n    // normalize header values as initialHeaders\n    // must be Record<string, string>\n    for (const key in headers) {\n      // set-cookie is already handled - the middleware cookie setting case\n      // isn't needed for the prerender manifest since it can't read cookies\n      if (key === 'x-middleware-set-cookie') continue\n\n      let value = headers[key]\n\n      if (Array.isArray(value)) {\n        if (key === 'set-cookie') {\n          value = value.join(',')\n        } else {\n          value = value[value.length - 1]\n        }\n      }\n\n      if (typeof value === 'string') {\n        meta.headers[key] = value\n      }\n    }\n  }\n\n  return meta\n}\n\nexport const RSPACK_DEFAULT_LAYERS_REGEX = new RegExp(\n  `^(|${[WEBPACK_LAYERS.pagesDirBrowser, WEBPACK_LAYERS.pagesDirEdge, WEBPACK_LAYERS.pagesDirNode].join('|')})$`\n)\n\n/**\n * Converts a page to a manifest route.\n *\n * @param page The page to convert to a route.\n * @returns A route object.\n */\nexport function pageToRoute(page: string): ManifestRoute\n/**\n * Converts a page to a dynamic manifest route.\n *\n * @param page The page to convert to a route.\n * @param sourcePage The source page that this route is based on. This is used\n * to determine the source page for the route and is only relevant for app\n * pages when PPR is enabled on them.\n * @returns A route object.\n */\nexport function pageToRoute(\n  page: string,\n  sourcePage: string | undefined\n): DynamicManifestRoute\nexport function pageToRoute(\n  page: string,\n  sourcePage?: string\n): DynamicManifestRoute | ManifestRoute {\n  const routeRegex = getNamedRouteRegex(page, {\n    prefixRouteKeys: true,\n  })\n  return {\n    sourcePage,\n    page,\n    regex: normalizeRouteRegex(routeRegex.re.source),\n    routeKeys: routeRegex.routeKeys,\n    namedRegex: routeRegex.namedRegex,\n  }\n}\n"],"names":["NestedMiddlewareError","RSPACK_DEFAULT_LAYERS_REGEX","collectMeta","collectRoutesUsingEdgeRuntime","copyTracedFiles","detectConflictingPaths","difference","filterAndSortList","getDefinedNamedExports","getPossibleInstrumentationHookFilenames","getPossibleMiddlewareFilenames","getSupportedBrowsers","hasCustomGetInitialProps","isAppBuiltinPage","isCustomErrorPage","isInstrumentationHookFile","isInstrumentationHookFilename","isMiddlewareFile","isMiddlewareFilename","isPageStatic","isProxyFile","isReservedPage","isWebpackAppPagesLayer","isWebpackBundledLayer","isWebpackClientOnlyLayer","isWebpackDefaultLayer","pageToRoute","printCustomRoutes","printTreeView","reduceAppConfig","shouldUseReactServerCondition","unique","staticMetadataImageFilenames","Set","Object","values","STATIC_METADATA_IMAGES","map","meta","filename","getTreeViewDisplayPath","pagePath","isDynamicRoute","lastSlash","lastIndexOf","slice","dotIndex","baseName","has","segment","lastSegment","fillMetadataSegment","print","console","log","RESERVED_PAGE","main","sub","a","b","filter","x","file","MIDDLEWARE_FILENAME","PROXY_FILENAME","INSTRUMENTATION_HOOK_FILENAME","list","routeType","hasCustomApp","pages","e","sort","localeCompare","input","routesUsingEdgeRuntime","route","info","entries","isEdgeRuntime","runtime","lists","pageInfos","pagesDir","pageExtensions","middlewareManifest","functionsConfigManifest","useStaticPages404","hasGSPAndRevalidateZero","MIN_DURATION","process","env","__NEXT_PRIVATE_DETERMINISTIC_BUILD_OUTPUT","Infinity","getPrettyDuration","_duration","duration","green","yellow","red","bold","findPageFile","usedSymbols","messages","printFileTree","routerType","filteredPages","length","showRevalidate","showExpire","page","cacheControl","get","initialCacheControl","revalidate","expire","push","entry","underline","forEach","item","i","arr","pageInfo","border","totalDuration","pageDuration","ssgPageDurations","reduce","symbol","isRoutePPREnabled","hasEmptyStaticShell","isDynamicAppRoute","hasPostponed","isStatic","isSSG","displayPath","add","formatRevalidate","formatExpire","ssgPageRoutes","totalRoutes","contSymbol","routes","some","d","previewPages","Math","min","routesWithDuration","idx","remainingRoutes","remaining","avgDuration","round","total","index","innerSymbol","app","set","includes","UNDERSCORE_NOT_FOUND_ROUTE","middleware","files","functions","textTable","align","stringLength","str","stripAnsi","staticFunctionInfo","cyan","redirects","rewrites","headers","onMatchHeaders","printRoutes","type","isRedirects","isHeaders","routesStr","routeStr","source","r","destination","statusCode","permanent","header","last","key","value","join","combinedRewrites","beforeFiles","afterFiles","fallback","dir","distDir","configFileName","httpAgentOptions","locales","defaultLocale","parentId","pageRuntime","edgeInfo","pageType","cacheComponents","authInterrupts","originalAppPath","isrFlushToDisk","cacheMaxMemorySize","nextConfigOutput","cacheHandler","cacheHandlers","cacheLifeProfiles","pprConfig","partialFallbacksEnabled","buildId","clientAssetToken","sriEnabled","UNDERSCORE_GLOBAL_ERROR_ROUTE","prerenderFallbackMode","undefined","prerenderedRoutes","rootParamKeys","hasStaticProps","hasServerProps","isNextImageImported","appConfig","createIncrementalCache","flushToDisk","isPageStaticSpan","trace","traceAsyncFn","setHttpClientAndAgentOptions","componentsResult","pathIsEdgeRuntime","getRuntimeContext","paths","path","edgeFunctionEntry","wasm","binding","filePath","name","useCache","mod","context","_ENTRIES","ComponentMod","buildManifest","Component","default","Document","App","routeModule","pageConfig","config","reactLoadableManifest","getServerSideProps","getStaticPaths","getStaticProps","loadComponents","isAppPath","isDev","needsManifestsForLegacyReasons","Comp","segments","collectSegments","err","Error","cause","UNDERSCORE_GLOBAL_ERROR_ROUTE_ENTRY","dynamic","Log","warn","collectRootParamKeys","definition","kind","RouteKind","APP_PAGE","checkIsRoutePPREnabled","parseAppRoute","dynamicSegments","fallbackMode","buildAppStaticPaths","requestHeaders","isValidElementType","hasGetInitialProps","getInitialProps","hasStaticPaths","SSG_GET_INITIAL_PROPS_CONFLICT","SERVER_PROPS_GET_INIT_PROPS_CONFLICT","SERVER_PROPS_SSG_CONFLICT","pageIsDynamic","buildPagesStaticPaths","globalThis","__NEXT_IMAGE_IMPORTED","catch","message","error","fetchCache","preferredRegion","maxDuration","checkingApp","_app","origGetInitialProps","keys","combinedPages","ssgPages","additionalGeneratedSSGPaths","conflictingPaths","Map","dynamicSsgPages","additionalSsgPathsByPath","pathsPage","curPath","currentPath","toLowerCase","lowerPath","conflictingPage","find","conflictingPath","size","conflictingPathsOutput","pathItems","pathItem","isDynamic","exit","pageKeys","appPageKeys","tracingRoot","serverConfig","hasNodeMiddleware","hasInstrumentationHook","staticPages","outputPath","fs","rm","recursive","force","moduleType","nextConfig","relative","packageJsonPath","packageJsonContent","readFile","packageJson","JSON","parse","packageJsonOutputPath","mkdir","dirname","writeFile","copiedFiles","handleTraceFiles","traceFilePath","traceData","copySema","Sema","capacity","traceFileDir","Promise","all","relativeFile","acquire","tracedFilePath","fileOutputPath","symlink","readlink","platform","code","isAbsolute","junctionErr","copyFile","release","handleEdgeFunction","handleFile","originalPath","assets","edgeFunctionHandlers","hasOwnProperty","normalizePagePath","pageFile","pageTraceFile","middlewareFile","middlewareTrace","serverOutputPath","stringify","test","folder","extensions","extension","flatMap","constructor","nestedFileNames","mainDir","pagesOrAppDir","posix","sep","resolve","layer","Boolean","WEBPACK_LAYERS","GROUP","serverOnly","clientOnly","pagesDirBrowser","pagesDirEdge","pagesDirNode","bundled","appPages","status","Array","isArray","RegExp","sourcePage","routeRegex","getNamedRouteRegex","prefixRouteKeys","regex","normalizeRouteRegex","re","routeKeys","namedRegex"],"mappings":"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","ignoreList":[0]}