/
opt
/
canhelp
/
node_modules
/
next
/
dist
/
esm
/
build
/
/opt/canhelp/node_modules/next/dist/esm/build
mkdir
upload
Name
Size
Mode
Actions
adapter/
-
0755
rm
analysis/
-
0755
rm
babel/
-
0755
rm
manifests/
-
0755
rm
next-config-ts/
-
0755
rm
output/
-
0755
rm
polyfills/
-
0755
rm
segment-config/
-
0755
rm
static-paths/
-
0755
rm
swc/
-
0755
rm
templates/
-
0755
rm
turbopack-build/
-
0755
rm
turborepo-access-trace/
-
0755
rm
webpack/
-
0755
rm
webpack-build/
-
0755
rm
webpack-config-rules/
-
0755
rm
after-production-compile.js
1622
0644
edit
dl
rm
after-production-compile.js.map
3139
0644
edit
dl
rm
build-context.js
1353
0644
edit
dl
rm
build-context.js.map
4056
0644
edit
dl
rm
collect-build-traces.js
21598
0644
edit
dl
rm
collect-build-traces.js.map
35392
0644
edit
dl
rm
compiler.js
2884
0644
edit
dl
rm
compiler.js.map
4786
0644
edit
dl
rm
create-compiler-aliases.js
24564
0644
edit
dl
rm
create-compiler-aliases.js.map
39961
0644
edit
dl
rm
define-env.js
14335
0644
edit
dl
rm
define-env.js.map
23166
0644
edit
dl
rm
deployment-id.js
218
0644
edit
dl
rm
deployment-id.js.map
506
0644
edit
dl
rm
duration-to-string.js
544
0644
edit
dl
rm
duration-to-string.js.map
1084
0644
edit
dl
rm
entries.js
36260
0644
edit
dl
rm
entries.js.map
61660
0644
edit
dl
rm
generate-build-id.js
794
0644
edit
dl
rm
generate-build-id.js.map
1198
0644
edit
dl
rm
get-babel-config-file.js
622
0644
edit
dl
rm
get-babel-config-file.js.map
1100
0644
edit
dl
rm
get-babel-loader-config.js
2937
0644
edit
dl
rm
get-babel-loader-config.js.map
4885
0644
edit
dl
rm
handle-entrypoints.js
4571
0644
edit
dl
rm
handle-entrypoints.js.map
7076
0644
edit
dl
rm
handle-externals.js
13623
0644
edit
dl
rm
handle-externals.js.map
21653
0644
edit
dl
rm
index.js
147239
0644
edit
dl
rm
index.js.map
225575
0644
edit
dl
rm
is-writeable.js
262
0644
edit
dl
rm
is-writeable.js.map
635
0644
edit
dl
rm
load-entrypoint.js
1700
0644
edit
dl
rm
load-entrypoint.js.map
3098
0644
edit
dl
rm
load-jsconfig.js
3451
0644
edit
dl
rm
load-jsconfig.js.map
6508
0644
edit
dl
rm
next-dir-paths.js
301
0644
edit
dl
rm
next-dir-paths.js.map
681
0644
edit
dl
rm
normalize-catchall-routes.js
4195
0644
edit
dl
rm
normalize-catchall-routes.js.map
6643
0644
edit
dl
rm
page-extensions-type.js
61
0644
edit
dl
rm
page-extensions-type.js.map
180
0644
edit
dl
rm
preview-key-utils.js
3408
0644
edit
dl
rm
preview-key-utils.js.map
5966
0644
edit
dl
rm
progress.js
2949
0644
edit
dl
rm
progress.js.map
4588
0644
edit
dl
rm
rendering-mode.js
618
0644
edit
dl
rm
rendering-mode.js.map
711
0644
edit
dl
rm
spinner.js
2869
0644
edit
dl
rm
spinner.js.map
4933
0644
edit
dl
rm
type-check.js
5278
0644
edit
dl
rm
type-check.js.map
9251
0644
edit
dl
rm
utils.js
53806
0644
edit
dl
rm
utils.js.map
95393
0644
edit
dl
rm
webpack-config.js
108498
0644
edit
dl
rm
webpack-config.js.map
158206
0644
edit
dl
rm
worker.js
206
0644
edit
dl
rm
worker.js.map
481
0644
edit
dl
rm
write-build-id.js
331
0644
edit
dl
rm
write-build-id.js.map
743
0644
edit
dl
rm
Edit:
/opt/canhelp/node_modules/next/dist/esm/build/utils.js.map
(95393B)
{"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 { 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 originalAppPath: string | undefined\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 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 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 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 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 cacheComponents,\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 cacheComponents: 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 ;(\n require('../shared/lib/runtime-config.external') as typeof import('../shared/lib/runtime-config.external')\n ).setConfig(runtimeEnvConfig)\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 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 cacheComponents,\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 ;(\n require('../shared/lib/runtime-config.external') as typeof import('../shared/lib/runtime-config.external')\n ).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 ;(\n require('../shared/lib/runtime-config.external') as typeof import('../shared/lib/runtime-config.external')\n ).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\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(packageJsonPath, 'utf8')\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(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 '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 isAppBuiltinNotFoundPage(page: string) {\n return /next[\\\\/]dist[\\\\/]client[\\\\/]components[\\\\/]builtin[\\\\/](not-found|global-not-found)/.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 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"],"names":["green","yellow","red","cyan","white","bold","underline","getGzipSize","textTable","path","promises","fs","isValidElementType","stripAnsi","browserslist","SSG_GET_INITIAL_PROPS_CONFLICT","SERVER_PROPS_GET_INIT_PROPS_CONFLICT","SERVER_PROPS_SSG_CONFLICT","MIDDLEWARE_FILENAME","INSTRUMENTATION_HOOK_FILENAME","WEBPACK_LAYERS","MODERN_BROWSERSLIST_TARGET","UNDERSCORE_NOT_FOUND_ROUTE","prettyBytes","isDynamicRoute","findPageFile","isEdgeRuntime","Log","loadComponents","trace","setHttpClientAndAgentOptions","Sema","denormalizePagePath","normalizePagePath","getRuntimeContext","isClientReference","normalizeAppPath","denormalizeAppPagePath","RouteKind","checkIsRoutePPREnabled","collectSegments","createIncrementalCache","collectRootParamKeys","buildAppStaticPaths","buildPagesStaticPaths","formatExpire","formatRevalidate","print","console","log","RESERVED_PAGE","fileGzipStats","fsStatGzip","file","cached","fileSize","stat","size","fileStats","fsStat","unique","main","sub","Set","difference","a","b","filter","x","has","intersect","sum","reduce","cachedBuildManifest","cachedAppBuildManifest","lastCompute","lastComputePageInfo","computeFromManifest","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","join","groupFiles","listing","entries","shapeGroup","group","acc","push","total","len","common","router","undefined","sizes","isMiddlewareFilename","isInstrumentationHookFilename","filterAndSortList","list","routeType","hasCustomApp","e","slice","sort","localeCompare","collectRoutesUsingEdgeRuntime","input","routesUsingEdgeRuntime","route","info","runtime","printTreeView","lists","buildId","pagesDir","pageExtensions","buildManifest","appBuildManifest","middlewareManifest","useStaticPages404","getPrettySize","_size","strong","process","env","__NEXT_PRIVATE_DETERMINISTIC_BUILD_OUTPUT","MIN_DURATION","getPrettyDuration","_duration","duration","getCleanName","fileName","replace","usedSymbols","messages","printFileTree","routerType","filteredPages","length","showRevalidate","showExpire","page","cacheControl","initialCacheControl","revalidate","expire","entry","forEach","item","i","arr","border","ampFirst","ampFirstPages","includes","totalDuration","pageDuration","ssgPageDurations","symbol","isRoutePPREnabled","hasEmptyStaticShell","isDynamicAppRoute","hasPostponed","isStatic","isSSG","add","totalSize","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","middlewareInfo","middleware","middlewareSizes","dep","align","stringLength","str","staticFunctionInfo","printCustomRoutes","redirects","rewrites","headers","printRoutes","type","isRedirects","isHeaders","routesStr","routeStr","source","r","destination","statusCode","permanent","header","last","value","combinedRewrites","beforeFiles","afterFiles","fallback","getJsPageSizeInKb","cachedStats","pageManifest","Error","newKey","pageData","pagePath","fnFilterJs","pageFiles","appFiles","fnMapRealPath","allFilesReal","selfFilesReal","getCachedSize","allFilesSize","selfFilesSize","isPageStatic","dir","distDir","configFileName","runtimeEnvConfig","httpAgentOptions","locales","defaultLocale","parentId","pageRuntime","edgeInfo","pageType","cacheComponents","authInterrupts","originalAppPath","isrFlushToDisk","maxMemoryCacheSize","nextConfigOutput","cacheHandler","cacheHandlers","cacheLifeProfiles","pprConfig","sriEnabled","flushToDisk","cacheMaxMemorySize","isPageStaticSpan","traceAsyncFn","require","setConfig","componentsResult","prerenderedRoutes","prerenderFallbackMode","appConfig","rootParamKeys","isClientComponent","pathIsEdgeRuntime","paths","edgeFunctionEntry","wasm","binding","filePath","name","useCache","mod","context","_ENTRIES","ComponentMod","Component","default","Document","App","routeModule","pageConfig","config","reactLoadableManifest","getServerSideProps","getStaticPaths","getStaticProps","isAppPath","isDev","Comp","segments","err","cause","reduceAppConfig","dynamic","warn","definition","kind","APP_PAGE","fallbackMode","requestHeaders","hasGetInitialProps","getInitialProps","hasStaticProps","hasStaticPaths","hasServerProps","pageIsDynamic","isNextImageImported","globalThis","__NEXT_IMAGE_IMPORTED","amp","isAmpOnly","catch","message","error","segment","fetchCache","preferredRegion","experimental_ppr","maxDuration","hasCustomGetInitialProps","checkingApp","components","_app","origGetInitialProps","getDefinedNamedExports","detectConflictingPaths","combinedPages","ssgPages","additionalGeneratedSSGPaths","conflictingPaths","dynamicSsgPages","additionalSsgPathsByPath","pathsPage","curPath","currentPath","toLowerCase","lowerPath","conflictingPage","find","conflictingPath","conflictingPathsOutput","pathItems","pathItem","isDynamic","exit","copyTracedFiles","pageKeys","appPageKeys","tracingRoot","serverConfig","hasNodeMiddleware","hasInstrumentationHook","staticPages","outputPath","rm","recursive","force","moduleType","nextConfig","relative","packageJsonPath","packageJsonContent","readFile","packageJson","JSON","parse","packageJsonOutputPath","mkdir","dirname","writeFile","copiedFiles","handleTraceFiles","traceFilePath","traceData","copySema","capacity","traceFileDir","relativeFile","acquire","tracedFilePath","fileOutputPath","symlink","readlink","code","copyFile","release","handleEdgeFunction","handleFile","originalPath","assets","edgeFunctionHandlers","values","functions","hasOwnProperty","pageFile","pageTraceFile","middlewareFile","middlewareTrace","serverOutputPath","stringify","isReservedPage","test","isAppBuiltinNotFoundPage","isCustomErrorPage","isMiddlewareFile","isInstrumentationHookFile","getPossibleInstrumentationHookFilenames","folder","extensions","extension","getPossibleMiddlewareFilenames","NestedMiddlewareError","constructor","nestedFileNames","mainDir","pagesOrAppDir","posix","sep","resolve","getSupportedBrowsers","isDevelopment","browsers","browsersListConfig","loadConfig","shouldUseReactServerCondition","layer","Boolean","GROUP","serverOnly","isWebpackClientOnlyLayer","clientOnly","isWebpackDefaultLayer","pagesDirBrowser","pagesDirEdge","pagesDirNode","isWebpackBundledLayer","bundled","isWebpackAppPagesLayer","appPages","collectMeta","status","meta","Array","isArray","RSPACK_DEFAULT_LAYERS_REGEX","RegExp"],"mappings":"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","ignoreList":[0]}
Save
cmd:
run