Duffer Derek

Current Path : /var/www/uibuilder.cmshelp.dk/httpdocs/node_modules/next/dist/build/
Upload File :
Current File : /var/www/uibuilder.cmshelp.dk/httpdocs/node_modules/next/dist/build/utils.js.map

{"version":3,"sources":["../../src/build/utils.ts"],"sourcesContent":["import type { NextConfigComplete } from '../server/config-shared'\nimport type { ExperimentalPPRConfig } from '../server/lib/experimental/ppr'\nimport type { AppBuildManifest } from './webpack/plugins/app-build-manifest-plugin'\nimport type { AssetBinding } from './webpack/loaders/get-module-build-info'\nimport type { PageConfig, ServerRuntime } from '../types'\nimport type { BuildManifest } from '../server/get-page-files'\nimport type {\n  Redirect,\n  Rewrite,\n  Header,\n  CustomRoutes,\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 type { AppPageModule } from '../server/route-modules/app-page/module'\nimport type { RouteModule } from '../server/route-modules/route-module'\nimport type { NextComponentType } from '../shared/lib/utils'\n\nimport '../server/require-hook'\nimport '../server/node-polyfill-crypto'\nimport '../server/node-environment'\n\nimport {\n  green,\n  yellow,\n  red,\n  cyan,\n  white,\n  bold,\n  underline,\n} from '../lib/picocolors'\nimport getGzipSize from 'next/dist/compiled/gzip-size'\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 browserslist from 'next/dist/compiled/browserslist'\nimport {\n  SSG_GET_INITIAL_PROPS_CONFLICT,\n  SERVER_PROPS_GET_INIT_PROPS_CONFLICT,\n  SERVER_PROPS_SSG_CONFLICT,\n  MIDDLEWARE_FILENAME,\n  INSTRUMENTATION_HOOK_FILENAME,\n  WEBPACK_LAYERS,\n} from '../lib/constants'\nimport {\n  MODERN_BROWSERSLIST_TARGET,\n  UNDERSCORE_NOT_FOUND_ROUTE,\n} from '../shared/lib/constants'\nimport prettyBytes from '../lib/pretty-bytes'\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 { loadComponents } from '../server/load-components'\nimport type { LoadComponentsReturnType } 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 { denormalizePagePath } from '../shared/lib/page-path/denormalize-page-path'\nimport { normalizePagePath } from '../shared/lib/page-path/normalize-page-path'\nimport { getRuntimeContext } from '../server/web/sandbox'\nimport { isClientReference } from '../lib/client-and-server-references'\nimport { normalizeAppPath } from '../shared/lib/router/utils/app-paths'\nimport { denormalizeAppPagePath } from '../shared/lib/page-path/denormalize-app-path'\nimport { RouteKind } from '../server/route-kind'\nimport type { PageExtensions } from './page-extensions-type'\nimport { isInterceptionRouteAppPath } from '../shared/lib/router/utils/interception-routes'\nimport { checkIsRoutePPREnabled } from '../server/lib/experimental/ppr'\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'\n\nexport type ROUTER_TYPE = 'pages' | 'app'\n\n// Use `print()` for expected console output\nconst print = console.log\n\nconst RESERVED_PAGE = /^\\/(_app|_error|_document|api(\\/|$))/\nconst fileGzipStats: { [k: string]: Promise<number> | undefined } = {}\nconst fsStatGzip = (file: string) => {\n  const cached = fileGzipStats[file]\n  if (cached) return cached\n  return (fileGzipStats[file] = getGzipSize.file(file))\n}\n\nconst fileSize = async (file: string) => (await fs.stat(file)).size\n\nconst fileStats: { [k: string]: Promise<number> | undefined } = {}\nconst fsStat = (file: string) => {\n  const cached = fileStats[file]\n  if (cached) return cached\n  return (fileStats[file] = fileSize(file))\n}\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\n/**\n * Return an array of the items shared by both arrays.\n */\nfunction intersect<T>(main: ReadonlyArray<T>, sub: ReadonlyArray<T>): T[] {\n  const a = new Set(main)\n  const b = new Set(sub)\n  return [...new Set([...a].filter((x) => b.has(x)))]\n}\n\nfunction sum(a: ReadonlyArray<number>): number {\n  return a.reduce((size, stat) => size + stat, 0)\n}\n\ntype ComputeFilesGroup = {\n  files: ReadonlyArray<string>\n  size: {\n    total: number\n  }\n}\n\ntype ComputeFilesManifest = {\n  unique: ComputeFilesGroup\n  common: ComputeFilesGroup\n}\n\ntype ComputeFilesManifestResult = {\n  router: {\n    pages: ComputeFilesManifest\n    app?: ComputeFilesManifest\n  }\n  sizes: Map<string, number>\n}\n\nlet cachedBuildManifest: BuildManifest | undefined\nlet cachedAppBuildManifest: AppBuildManifest | undefined\n\nlet lastCompute: ComputeFilesManifestResult | undefined\nlet lastComputePageInfo: boolean | undefined\n\nexport async function computeFromManifest(\n  manifests: {\n    build: BuildManifest\n    app?: AppBuildManifest\n  },\n  distPath: string,\n  gzipSize: boolean = true,\n  pageInfos?: Map<string, PageInfo>\n): Promise<ComputeFilesManifestResult> {\n  if (\n    Object.is(cachedBuildManifest, manifests.build) &&\n    lastComputePageInfo === !!pageInfos &&\n    Object.is(cachedAppBuildManifest, manifests.app)\n  ) {\n    return lastCompute!\n  }\n\n  // Determine the files that are in pages and app and count them, this will\n  // tell us if they are unique or common.\n\n  const countBuildFiles = (\n    map: Map<string, number>,\n    key: string,\n    manifest: Record<string, ReadonlyArray<string>>\n  ) => {\n    for (const file of manifest[key]) {\n      if (key === '/_app') {\n        map.set(file, Infinity)\n      } else if (map.has(file)) {\n        map.set(file, map.get(file)! + 1)\n      } else {\n        map.set(file, 1)\n      }\n    }\n  }\n\n  const files: {\n    pages: {\n      each: Map<string, number>\n      expected: number\n    }\n    app?: {\n      each: Map<string, number>\n      expected: number\n    }\n  } = {\n    pages: { each: new Map(), expected: 0 },\n  }\n\n  for (const key in manifests.build.pages) {\n    if (pageInfos) {\n      const pageInfo = pageInfos.get(key)\n      // don't include AMP pages since they don't rely on shared bundles\n      // AMP First pages are not under the pageInfos key\n      if (pageInfo?.isHybridAmp) {\n        continue\n      }\n    }\n\n    files.pages.expected++\n    countBuildFiles(files.pages.each, key, manifests.build.pages)\n  }\n\n  // Collect the build files form the app manifest.\n  if (manifests.app?.pages) {\n    files.app = { each: new Map<string, number>(), expected: 0 }\n\n    for (const key in manifests.app.pages) {\n      files.app.expected++\n      countBuildFiles(files.app.each, key, manifests.app.pages)\n    }\n  }\n\n  const getSize = gzipSize ? fsStatGzip : fsStat\n  const stats = new Map<string, number>()\n\n  // For all of the files in the pages and app manifests, compute the file size\n  // at once.\n\n  await Promise.all(\n    [\n      ...new Set<string>([\n        ...files.pages.each.keys(),\n        ...(files.app?.each.keys() ?? []),\n      ]),\n    ].map(async (f) => {\n      try {\n        // Add the file size to the stats.\n        stats.set(f, await getSize(path.join(distPath, f)))\n      } catch {}\n    })\n  )\n\n  const groupFiles = async (listing: {\n    each: Map<string, number>\n    expected: number\n  }): Promise<ComputeFilesManifest> => {\n    const entries = [...listing.each.entries()]\n\n    const shapeGroup = (group: [string, number][]): ComputeFilesGroup =>\n      group.reduce(\n        (acc, [f]) => {\n          acc.files.push(f)\n\n          const size = stats.get(f)\n          if (typeof size === 'number') {\n            acc.size.total += size\n          }\n\n          return acc\n        },\n        {\n          files: [] as string[],\n          size: {\n            total: 0,\n          },\n        }\n      )\n\n    return {\n      unique: shapeGroup(entries.filter(([, len]) => len === 1)),\n      common: shapeGroup(\n        entries.filter(\n          ([, len]) => len === listing.expected || len === Infinity\n        )\n      ),\n    }\n  }\n\n  lastCompute = {\n    router: {\n      pages: await groupFiles(files.pages),\n      app: files.app ? await groupFiles(files.app) : undefined,\n    },\n    sizes: stats,\n  }\n\n  cachedBuildManifest = manifests.build\n  cachedAppBuildManifest = manifests.app\n  lastComputePageInfo = !!pageInfos\n  return lastCompute!\n}\n\nexport function isMiddlewareFilename(file?: string | null) {\n  return file === MIDDLEWARE_FILENAME || file === `src/${MIDDLEWARE_FILENAME}`\n}\n\nexport function isInstrumentationHookFilename(file?: string | null) {\n  return (\n    file === INSTRUMENTATION_HOOK_FILENAME ||\n    file === `src/${INSTRUMENTATION_HOOK_FILENAME}`\n  )\n}\n\nconst 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\n    pages = list.filter((e) => e !== '/favicon.ico')\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  isHybridAmp?: boolean\n  size: number\n  totalSize: number\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  hasEmptyPrelude?: 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    distPath,\n    buildId,\n    pagesDir,\n    pageExtensions,\n    buildManifest,\n    appBuildManifest,\n    middlewareManifest,\n    useStaticPages404,\n    gzipSize = true,\n  }: {\n    distPath: string\n    buildId: string\n    pagesDir?: string\n    pageExtensions: PageExtensions\n    buildManifest: BuildManifest\n    appBuildManifest?: AppBuildManifest\n    middlewareManifest: MiddlewareManifest\n    useStaticPages404: boolean\n    gzipSize?: boolean\n  }\n) {\n  const getPrettySize = (\n    _size: number,\n    { strong }: { strong?: boolean } = {}\n  ): string => {\n    const size = process.env.__NEXT_PRIVATE_DETERMINISTIC_BUILD_OUTPUT\n      ? 'N/A kB'\n      : prettyBytes(_size)\n\n    return strong ? white(bold(size)) : size\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  const getCleanName = (fileName: string) =>\n    fileName\n      // Trim off `static/`\n      .replace(/^static\\//, '')\n      // Re-add `static/` for root files\n      .replace(/^<buildId>/, 'static')\n      // Remove file hash\n      .replace(/(?:^|[.-])([0-9a-z]{6})[0-9a-z]{14}(?=\\.)/, '.$1')\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, string, string, string, string][] = []\n\n  const stats = await computeFromManifest(\n    { build: buildManifest, app: appBuildManifest },\n    distPath,\n    gzipSize,\n    pageInfos\n  )\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        'Size',\n        'First Load JS',\n        showRevalidate ? 'Revalidate' : '',\n        showExpire ? 'Expire' : '',\n      ].map((entry) => underline(entry)) as [\n        string,\n        string,\n        string,\n        string,\n        string,\n      ]\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 ampFirst = buildManifest.ampFirstPages.includes(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 prelude, then it's equivalent to a dynamic page\n          pageInfo?.hasEmptyPrelude ||\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      usedSymbols.add(symbol)\n\n      messages.push([\n        `${border} ${symbol} ${item}${\n          totalDuration > MIN_DURATION\n            ? ` (${getPrettyDuration(totalDuration)})`\n            : ''\n        }`,\n        pageInfo\n          ? ampFirst\n            ? cyan('AMP')\n            : pageInfo.size >= 0\n              ? getPrettySize(pageInfo.size)\n              : ''\n          : '',\n        pageInfo\n          ? ampFirst\n            ? cyan('AMP')\n            : pageInfo.size >= 0\n              ? getPrettySize(pageInfo.totalSize, { strong: true })\n              : ''\n          : '',\n        showRevalidate && pageInfo?.initialCacheControl\n          ? formatRevalidate(pageInfo.initialCacheControl)\n          : '',\n        showExpire && pageInfo?.initialCacheControl\n          ? formatExpire(pageInfo.initialCacheControl)\n          : '',\n      ])\n\n      const uniqueCssFiles =\n        buildManifest.pages[item]?.filter(\n          (file) =>\n            file.endsWith('.css') &&\n            stats.router[routerType]?.unique.files.includes(file)\n        ) || []\n\n      if (uniqueCssFiles.length > 0) {\n        const contSymbol = i === arr.length - 1 ? ' ' : '├'\n\n        uniqueCssFiles.forEach((file, index, { length }) => {\n          const innerSymbol = index === length - 1 ? '└' : '├'\n          const size = stats.sizes.get(file)\n          messages.push([\n            `${contSymbol}   ${innerSymbol} ${getCleanName(file)}`,\n            typeof size === 'number' ? getPrettySize(size) : '',\n            '',\n            '',\n            '',\n          ])\n        })\n      }\n\n      if (pageInfo?.ssgPageRoutes?.length) {\n        const totalRoutes = pageInfo.ssgPageRoutes.length\n        const contSymbol = i === arr.length - 1 ? ' ' : '├'\n\n        let routes: { route: string; duration: number; avgDuration?: number }[]\n        if (\n          pageInfo.ssgPageDurations &&\n          pageInfo.ssgPageDurations.some((d) => d > MIN_DURATION)\n        ) {\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              '',\n              '',\n              showRevalidate && initialCacheControl\n                ? formatRevalidate(initialCacheControl)\n                : '',\n              showExpire && initialCacheControl\n                ? formatExpire(initialCacheControl)\n                : '',\n            ])\n          }\n        )\n      }\n    })\n\n    const sharedFilesSize = stats.router[routerType]?.common.size.total\n\n    const sharedFiles = process.env.__NEXT_PRIVATE_DETERMINISTIC_BUILD_OUTPUT\n      ? []\n      : stats.router[routerType]?.common.files ?? []\n\n    messages.push([\n      '+ First Load JS shared by all',\n      typeof sharedFilesSize === 'number'\n        ? getPrettySize(sharedFilesSize, { strong: true })\n        : '',\n      '',\n      '',\n      '',\n    ])\n    const sharedCssFiles: string[] = []\n    const sharedJsChunks = [\n      ...sharedFiles\n        .filter((file) => {\n          if (file.endsWith('.css')) {\n            sharedCssFiles.push(file)\n            return false\n          }\n          return true\n        })\n        .map((e) => e.replace(buildId, '<buildId>'))\n        .sort(),\n      ...sharedCssFiles.map((e) => e.replace(buildId, '<buildId>')).sort(),\n    ]\n\n    // if the some chunk are less than 10kb or we don't know the size, we only show the total size of the rest\n    const tenKbLimit = 10 * 1000\n    let restChunkSize = 0\n    let restChunkCount = 0\n    sharedJsChunks.forEach((fileName, index, { length }) => {\n      const innerSymbol = index + restChunkCount === length - 1 ? '└' : '├'\n\n      const originalName = fileName.replace('<buildId>', buildId)\n      const cleanName = getCleanName(fileName)\n      const size = stats.sizes.get(originalName)\n\n      if (!size || size < tenKbLimit) {\n        restChunkCount++\n        restChunkSize += size || 0\n        return\n      }\n\n      messages.push([\n        `  ${innerSymbol} ${cleanName}`,\n        getPrettySize(size),\n        '',\n        '',\n        '',\n      ])\n    })\n\n    if (restChunkCount > 0) {\n      messages.push([\n        `  └ other shared chunks (total)`,\n        getPrettySize(restChunkSize),\n        '',\n        '',\n        '',\n      ])\n    }\n  }\n\n  // If enabled, then print the tree for the app directory.\n  if (lists.app && stats.router.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  const middlewareInfo = middlewareManifest.middleware?.['/']\n  if (middlewareInfo?.files.length > 0) {\n    const middlewareSizes = await Promise.all(\n      middlewareInfo.files\n        .map((dep) => `${distPath}/${dep}`)\n        .map(gzipSize ? fsStatGzip : fsStat)\n    )\n\n    messages.push(['', '', '', '', ''])\n    messages.push([\n      'ƒ Middleware',\n      getPrettySize(sum(middlewareSizes), { strong: true }),\n      '',\n      '',\n      '',\n    ])\n  }\n\n  print(\n    textTable(messages, {\n      align: ['l', 'r', 'r', 'r', 'r'],\n      stringLength: (str) => stripAnsi(str).length,\n    })\n  )\n\n  const staticFunctionInfo =\n    lists.app && stats.router.app ? 'generateStaticParams' : '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}: CustomRoutes) {\n  const printRoutes = (\n    routes: Redirect[] | Rewrite[] | Header[],\n    type: 'Redirects' | 'Rewrites' | 'Headers'\n  ) => {\n    const isRedirects = type === 'Redirects'\n    const isHeaders = type === '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\n  const combinedRewrites = [\n    ...rewrites.beforeFiles,\n    ...rewrites.afterFiles,\n    ...rewrites.fallback,\n  ]\n  if (combinedRewrites.length) {\n    printRoutes(combinedRewrites, 'Rewrites')\n  }\n}\n\nexport async function getJsPageSizeInKb(\n  routerType: ROUTER_TYPE,\n  page: string,\n  distPath: string,\n  buildManifest: BuildManifest,\n  appBuildManifest?: AppBuildManifest,\n  gzipSize: boolean = true,\n  cachedStats?: ComputeFilesManifestResult\n): Promise<[number, number]> {\n  const pageManifest = routerType === 'pages' ? buildManifest : appBuildManifest\n  if (!pageManifest) {\n    throw new Error('expected appBuildManifest with an \"app\" pageType')\n  }\n\n  // Normalize appBuildManifest keys\n  if (routerType === 'app') {\n    pageManifest.pages = Object.entries(pageManifest.pages).reduce(\n      (acc: Record<string, string[]>, [key, value]) => {\n        const newKey = normalizeAppPath(key)\n        acc[newKey] = value as string[]\n        return acc\n      },\n      {}\n    )\n  }\n\n  // If stats was not provided, then compute it again.\n  const stats =\n    cachedStats ??\n    (await computeFromManifest(\n      { build: buildManifest, app: appBuildManifest },\n      distPath,\n      gzipSize\n    ))\n\n  const pageData = stats.router[routerType]\n  if (!pageData) {\n    // This error shouldn't happen and represents an error in Next.js.\n    throw new Error('expected \"app\" manifest data with an \"app\" pageType')\n  }\n\n  const pagePath =\n    routerType === 'pages'\n      ? denormalizePagePath(page)\n      : denormalizeAppPagePath(page)\n\n  const fnFilterJs = (entry: string) => entry.endsWith('.js')\n\n  const pageFiles = (pageManifest.pages[pagePath] ?? []).filter(fnFilterJs)\n  const appFiles = (pageManifest.pages['/_app'] ?? []).filter(fnFilterJs)\n\n  const fnMapRealPath = (dep: string) => `${distPath}/${dep}`\n\n  const allFilesReal = unique(pageFiles, appFiles).map(fnMapRealPath)\n  const selfFilesReal = difference(\n    // Find the files shared by the pages files and the unique files...\n    intersect(pageFiles, pageData.unique.files),\n    // but without the common files.\n    pageData.common.files\n  ).map(fnMapRealPath)\n\n  const getSize = gzipSize ? fsStatGzip : fsStat\n\n  // Try to get the file size from the page data if available, otherwise do a\n  // raw compute.\n  const getCachedSize = async (file: string) => {\n    const key = file.slice(distPath.length + 1)\n    const size: number | undefined = stats.sizes.get(key)\n\n    // If the size wasn't in the stats bundle, then get it from the file\n    // directly.\n    if (typeof size !== 'number') {\n      return getSize(file)\n    }\n\n    return size\n  }\n\n  try {\n    // Doesn't use `Promise.all`, as we'd double compute duplicate files. This\n    // function is memoized, so the second one will instantly resolve.\n    const allFilesSize = sum(await Promise.all(allFilesReal.map(getCachedSize)))\n    const selfFilesSize = sum(\n      await Promise.all(selfFilesReal.map(getCachedSize))\n    )\n\n    return [selfFilesSize, allFilesSize]\n  } catch {}\n  return [-1, -1]\n}\n\ntype PageIsStaticResult = {\n  isRoutePPREnabled?: boolean\n  isStatic?: boolean\n  isAmpOnly?: boolean\n  isHybridAmp?: 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  runtimeEnvConfig,\n  httpAgentOptions,\n  locales,\n  defaultLocale,\n  parentId,\n  pageRuntime,\n  edgeInfo,\n  pageType,\n  dynamicIO,\n  authInterrupts,\n  originalAppPath,\n  isrFlushToDisk,\n  maxMemoryCacheSize,\n  nextConfigOutput,\n  cacheHandler,\n  cacheHandlers,\n  cacheLifeProfiles,\n  pprConfig,\n  buildId,\n  sriEnabled,\n}: {\n  dir: string\n  page: string\n  distDir: string\n  dynamicIO: boolean\n  authInterrupts: boolean\n  configFileName: string\n  runtimeEnvConfig: any\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  maxMemoryCacheSize?: 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  buildId: string\n  sriEnabled: boolean\n}): Promise<PageIsStaticResult> {\n  await createIncrementalCache({\n    cacheHandler,\n    cacheHandlers,\n    distDir,\n    dir,\n    flushToDisk: isrFlushToDisk,\n    cacheMaxMemorySize: maxMemoryCacheSize,\n  })\n\n  const isPageStaticSpan = trace('is-page-static-utils', parentId)\n  return isPageStaticSpan\n    .traceAsyncFn(async (): Promise<PageIsStaticResult> => {\n      require('../shared/lib/runtime-config.external').setConfig(\n        runtimeEnvConfig\n      )\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      let isClientComponent: boolean = false\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        })\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        isClientComponent = isClientReference(mod)\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        })\n      }\n      const Comp = componentsResult.Component as NextComponentType | undefined\n\n      const routeModule: RouteModule = componentsResult.routeModule\n\n      let isRoutePPREnabled: boolean = false\n\n      if (pageType === 'app') {\n        const ComponentMod: AppPageModule = componentsResult.ComponentMod\n\n        isClientComponent = isClientReference(componentsResult.ComponentMod)\n\n        let segments\n        try {\n          segments = await collectSegments(componentsResult)\n        } catch (err) {\n          throw new Error(`Failed to collect configuration for ${page}`, {\n            cause: err,\n          })\n        }\n\n        appConfig = 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(componentsResult)\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          !isInterceptionRouteAppPath(page) &&\n          checkIsRoutePPREnabled(pprConfig, appConfig)\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        // 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 (isDynamicRoute(page) && !pathIsEdgeRuntime) {\n          ;({ prerenderedRoutes, fallbackMode: prerenderFallbackMode } =\n            await buildAppStaticPaths({\n              dir,\n              page,\n              dynamicIO,\n              authInterrupts,\n              segments,\n              distDir,\n              requestHeaders: {},\n              isrFlushToDisk,\n              maxMemoryCacheSize,\n              cacheHandler,\n              cacheLifeProfiles,\n              ComponentMod,\n              nextConfigOutput,\n              isRoutePPREnabled,\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      const config: PageConfig = isClientComponent\n        ? {}\n        : componentsResult.pageConfig\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        isHybridAmp: config.amp === 'hybrid',\n        isAmpOnly: config.amp === true,\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  | 'experimental_ppr'\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      experimental_ppr,\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 partial prerendering has been set, only override it if the current\n    // value is provided as it's resolved from root layout to leaf page.\n    if (typeof experimental_ppr !== 'undefined') {\n      config.experimental_ppr = experimental_ppr\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  runtimeEnvConfig,\n  checkingApp,\n  sriEnabled,\n}: {\n  page: string\n  distDir: string\n  runtimeEnvConfig: any\n  checkingApp: boolean\n  sriEnabled: boolean\n}): Promise<boolean> {\n  require('../shared/lib/runtime-config.external').setConfig(runtimeEnvConfig)\n\n  const components = await loadComponents({\n    distDir,\n    page: page,\n    isAppPath: false,\n    isDev: false,\n    sriEnabled,\n  })\n  let mod = components.ComponentMod\n\n  if (checkingApp) {\n    mod = (await mod._app) || mod.default || mod\n  } else {\n    mod = mod.default || mod\n  }\n  mod = await mod\n  return mod.getInitialProps !== mod.origGetInitialProps\n}\n\nexport async function getDefinedNamedExports({\n  page,\n  distDir,\n  runtimeEnvConfig,\n  sriEnabled,\n}: {\n  page: string\n  distDir: string\n  runtimeEnvConfig: any\n  sriEnabled: boolean\n}): Promise<ReadonlyArray<string>> {\n  require('../shared/lib/runtime-config.external').setConfig(runtimeEnvConfig)\n  const components = await loadComponents({\n    distDir,\n    page: page,\n    isAppPath: false,\n    isDev: false,\n    sriEnabled,\n  })\n\n  return Object.keys(components.ComponentMod).filter((key) => {\n    return typeof components.ComponentMod[key] !== '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: NextConfigComplete,\n  middlewareManifest: MiddlewareManifest,\n  hasNodeMiddleware: boolean,\n  hasInstrumentationHook: boolean,\n  staticPages: Set<string>\n) {\n  const outputPath = path.join(distDir, 'standalone')\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 packageJson = JSON.parse(await fs.readFile(packageJsonPath, 'utf8'))\n    moduleType = packageJson.type === 'module'\n  } catch {}\n  const copiedFiles = new Set()\n  await fs.rm(outputPath, { recursive: true, force: true })\n\n  async function handleTraceFiles(traceFilePath: string) {\n    const traceData = JSON.parse(await fs.readFile(traceFilePath, 'utf8')) 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 (e: any) {\n              if (e.code !== 'EEXIST') {\n                throw e\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 'path'\nimport { fileURLToPath } from 'url'\nimport module from '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 isAppBuiltinNotFoundPage(page: string) {\n  return /next[\\\\/]dist[\\\\/]client[\\\\/]components[\\\\/]not-found-error/.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}` || file === `/src/${MIDDLEWARE_FILENAME}`\n  )\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.map((extension) =>\n    path.join(folder, `${MIDDLEWARE_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 function getSupportedBrowsers(\n  dir: string,\n  isDevelopment: boolean\n): string[] {\n  let browsers: any\n  try {\n    const browsersListConfig = browserslist.loadConfig({\n      path: dir,\n      env: isDevelopment ? 'development' : 'production',\n    })\n    // Running `browserslist` resolves `extends` and other config features into a list of browsers\n    if (browsersListConfig && browsersListConfig.length > 0) {\n      browsers = browserslist(browsersListConfig)\n    }\n  } catch {}\n\n  // When user has browserslist use that target\n  if (browsers && browsers.length > 0) {\n    return browsers\n  }\n\n  // Uses modern browsers as the default.\n  return MODERN_BROWSERSLIST_TARGET\n}\n\nexport function isWebpackServerOnlyLayer(\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"],"names":["NestedMiddlewareError","collectMeta","collectRoutesUsingEdgeRuntime","computeFromManifest","copyTracedFiles","detectConflictingPaths","difference","getDefinedNamedExports","getJsPageSizeInKb","getPossibleInstrumentationHookFilenames","getPossibleMiddlewareFilenames","getSupportedBrowsers","hasCustomGetInitialProps","isAppBuiltinNotFoundPage","isCustomErrorPage","isInstrumentationHookFile","isInstrumentationHookFilename","isMiddlewareFile","isMiddlewareFilename","isPageStatic","isReservedPage","isWebpackAppPagesLayer","isWebpackBundledLayer","isWebpackClientOnlyLayer","isWebpackDefaultLayer","isWebpackServerOnlyLayer","printCustomRoutes","printTreeView","reduceAppConfig","unique","print","console","log","RESERVED_PAGE","fileGzipStats","fsStatGzip","file","cached","getGzipSize","fileSize","fs","stat","size","fileStats","fsStat","main","sub","Set","a","b","filter","x","has","intersect","sum","reduce","cachedBuildManifest","cachedAppBuildManifest","lastCompute","lastComputePageInfo","manifests","distPath","gzipSize","pageInfos","files","Object","is","build","app","countBuildFiles","map","key","manifest","set","Infinity","get","pages","each","Map","expected","pageInfo","isHybridAmp","getSize","stats","Promise","all","keys","f","path","join","groupFiles","listing","entries","shapeGroup","group","acc","push","total","len","common","router","undefined","sizes","MIDDLEWARE_FILENAME","INSTRUMENTATION_HOOK_FILENAME","filterAndSortList","list","routeType","hasCustomApp","e","slice","sort","localeCompare","input","routesUsingEdgeRuntime","route","info","isEdgeRuntime","runtime","lists","buildId","pagesDir","pageExtensions","buildManifest","appBuildManifest","middlewareManifest","useStaticPages404","getPrettySize","_size","strong","process","env","__NEXT_PRIVATE_DETERMINISTIC_BUILD_OUTPUT","prettyBytes","white","bold","MIN_DURATION","getPrettyDuration","_duration","duration","green","yellow","red","getCleanName","fileName","replace","findPageFile","usedSymbols","messages","printFileTree","routerType","filteredPages","length","showRevalidate","showExpire","page","cacheControl","initialCacheControl","revalidate","expire","entry","underline","forEach","item","i","arr","border","ampFirst","ampFirstPages","includes","totalDuration","pageDuration","ssgPageDurations","symbol","isRoutePPREnabled","hasEmptyPrelude","isDynamicAppRoute","hasPostponed","isStatic","isSSG","add","cyan","totalSize","formatRevalidate","formatExpire","uniqueCssFiles","endsWith","contSymbol","index","innerSymbol","ssgPageRoutes","totalRoutes","routes","some","d","previewPages","Math","min","routesWithDuration","idx","remainingRoutes","remaining","avgDuration","round","sharedFilesSize","sharedFiles","sharedCssFiles","sharedJsChunks","tenKbLimit","restChunkSize","restChunkCount","originalName","cleanName","UNDERSCORE_NOT_FOUND_ROUTE","middlewareInfo","middleware","middlewareSizes","dep","textTable","align","stringLength","str","stripAnsi","staticFunctionInfo","redirects","rewrites","headers","printRoutes","type","isRedirects","isHeaders","routesStr","routeStr","source","r","destination","statusCode","permanent","header","last","value","combinedRewrites","beforeFiles","afterFiles","fallback","cachedStats","pageManifest","Error","newKey","normalizeAppPath","pageData","pagePath","denormalizePagePath","denormalizeAppPagePath","fnFilterJs","pageFiles","appFiles","fnMapRealPath","allFilesReal","selfFilesReal","getCachedSize","allFilesSize","selfFilesSize","dir","distDir","configFileName","runtimeEnvConfig","httpAgentOptions","locales","defaultLocale","parentId","pageRuntime","edgeInfo","pageType","dynamicIO","authInterrupts","originalAppPath","isrFlushToDisk","maxMemoryCacheSize","nextConfigOutput","cacheHandler","cacheHandlers","cacheLifeProfiles","pprConfig","sriEnabled","createIncrementalCache","flushToDisk","cacheMaxMemorySize","isPageStaticSpan","trace","traceAsyncFn","require","setConfig","setHttpClientAndAgentOptions","componentsResult","prerenderedRoutes","prerenderFallbackMode","appConfig","rootParamKeys","isClientComponent","pathIsEdgeRuntime","getRuntimeContext","paths","edgeFunctionEntry","wasm","binding","filePath","name","useCache","mod","context","_ENTRIES","ComponentMod","isClientReference","Component","default","Document","App","routeModule","pageConfig","config","reactLoadableManifest","getServerSideProps","getStaticPaths","getStaticProps","loadComponents","isAppPath","isDev","Comp","segments","collectSegments","err","cause","dynamic","Log","warn","collectRootParamKeys","definition","kind","RouteKind","APP_PAGE","isInterceptionRouteAppPath","checkIsRoutePPREnabled","isDynamicRoute","fallbackMode","buildAppStaticPaths","requestHeaders","isValidElementType","hasGetInitialProps","getInitialProps","hasStaticProps","hasStaticPaths","hasServerProps","SSG_GET_INITIAL_PROPS_CONFLICT","SERVER_PROPS_GET_INIT_PROPS_CONFLICT","SERVER_PROPS_SSG_CONFLICT","pageIsDynamic","buildPagesStaticPaths","isNextImageImported","globalThis","__NEXT_IMAGE_IMPORTED","amp","isAmpOnly","catch","message","error","segment","fetchCache","preferredRegion","experimental_ppr","maxDuration","checkingApp","components","_app","origGetInitialProps","combinedPages","ssgPages","additionalGeneratedSSGPaths","conflictingPaths","dynamicSsgPages","additionalSsgPathsByPath","pathsPage","curPath","currentPath","toLowerCase","lowerPath","conflictingPage","find","conflictingPath","conflictingPathsOutput","pathItems","pathItem","isDynamic","exit","pageKeys","appPageKeys","tracingRoot","serverConfig","hasNodeMiddleware","hasInstrumentationHook","staticPages","outputPath","moduleType","nextConfig","relative","packageJsonPath","packageJson","JSON","parse","readFile","copiedFiles","rm","recursive","force","handleTraceFiles","traceFilePath","traceData","copySema","Sema","capacity","traceFileDir","dirname","relativeFile","acquire","tracedFilePath","fileOutputPath","mkdir","symlink","readlink","code","copyFile","release","handleEdgeFunction","handleFile","originalPath","assets","edgeFunctionHandlers","values","functions","hasOwnProperty","normalizePagePath","pageFile","pageTraceFile","middlewareFile","middlewareTrace","serverOutputPath","writeFile","stringify","test","folder","extensions","extension","constructor","nestedFileNames","mainDir","pagesOrAppDir","posix","sep","resolve","isDevelopment","browsers","browsersListConfig","browserslist","loadConfig","MODERN_BROWSERSLIST_TARGET","layer","Boolean","WEBPACK_LAYERS","GROUP","serverOnly","clientOnly","pagesDirBrowser","pagesDirEdge","pagesDirNode","bundled","appPages","status","meta","Array","isArray"],"mappings":"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"}

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists