/opt/canhelp/node_modules/next/dist/esm/build/analysis
Edit: /opt/canhelp/node_modules/next/dist/esm/build/analysis/get-page-static-info.js.map (33130B)
{"version":3,"sources":["../../../src/build/analysis/get-page-static-info.ts"],"sourcesContent":["import type { NextConfig } from '../../server/config-shared'\nimport type { RouteHas } from '../../lib/load-custom-routes'\n\nimport { promises as fs } from 'fs'\nimport { LRUCache } from '../../server/lib/lru-cache'\nimport {\n extractExportedConstValue,\n UnsupportedValueError,\n} from './extract-const-value'\nimport { parseModule } from './parse-module'\nimport * as Log from '../output/log'\nimport { SERVER_RUNTIME } from '../../lib/constants'\nimport { tryToParsePath } from '../../lib/try-to-parse-path'\nimport { isAPIRoute } from '../../lib/is-api-route'\nimport { isEdgeRuntime } from '../../lib/is-edge-runtime'\nimport { RSC_MODULE_TYPES } from '../../shared/lib/constants'\nimport type { RSCMeta } from '../webpack/loaders/get-module-build-info'\nimport { PAGE_TYPES } from '../../lib/page-types'\nimport {\n AppSegmentConfigSchemaKeys,\n parseAppSegmentConfig,\n type AppSegmentConfig,\n} from '../segment-config/app/app-segment-config'\nimport { reportZodError } from '../../shared/lib/zod'\nimport {\n PagesSegmentConfigSchemaKeys,\n parsePagesSegmentConfig,\n type PagesSegmentConfig,\n type PagesSegmentConfigConfig,\n} from '../segment-config/pages/pages-segment-config'\nimport {\n MiddlewareConfigInputSchema,\n SourceSchema,\n type MiddlewareConfigMatcherInput,\n} from '../segment-config/middleware/middleware-config'\nimport { normalizeAppPath } from '../../shared/lib/router/utils/app-paths'\nimport { normalizePagePath } from '../../shared/lib/page-path/normalize-page-path'\n\nconst PARSE_PATTERN =\n /(? | undefined\n runtime: AppSegmentConfig['runtime'] | undefined\n preferredRegion: AppSegmentConfig['preferredRegion'] | undefined\n maxDuration: number | undefined\n hadUnsupportedValue: boolean\n}\n\nexport interface PagesPageStaticInfo {\n type: PAGE_TYPES.PAGES\n getStaticProps?: boolean\n getServerSideProps?: boolean\n rsc?: RSCModuleType\n generateStaticParams?: boolean\n generateSitemaps?: boolean\n generateImageMetadata?: boolean\n middleware?: MiddlewareConfig\n config:\n | (Omit
& {\n config?: Omit\n })\n | undefined\n runtime: PagesSegmentConfig['runtime'] | undefined\n preferredRegion: PagesSegmentConfigConfig['regions'] | undefined\n maxDuration: number | undefined\n hadUnsupportedValue: boolean\n}\n\nexport type PageStaticInfo = AppPageStaticInfo | PagesPageStaticInfo\n\nconst CLIENT_MODULE_LABEL =\n /\\/\\* __next_internal_client_entry_do_not_use__ ([^ ]*) (cjs|auto) \\*\\//\n\nconst ACTION_MODULE_LABEL =\n /\\/\\* __next_internal_action_entry_do_not_use__ (\\{[^}]+\\}) \\*\\//\n\nconst CLIENT_DIRECTIVE = 'use client'\nconst SERVER_ACTION_DIRECTIVE = 'use server'\n\nexport type RSCModuleType = 'server' | 'client'\nexport function getRSCModuleInformation(\n source: string,\n isReactServerLayer: boolean\n): RSCMeta {\n const actionsJson = source.match(ACTION_MODULE_LABEL)\n const parsedActionsMeta = actionsJson\n ? (JSON.parse(actionsJson[1]) as Record)\n : undefined\n const clientInfoMatch = source.match(CLIENT_MODULE_LABEL)\n const isClientRef = !!clientInfoMatch\n\n if (!isReactServerLayer) {\n return {\n type: RSC_MODULE_TYPES.client,\n actionIds: parsedActionsMeta,\n isClientRef,\n }\n }\n\n const clientRefsString = clientInfoMatch?.[1]\n const clientRefs = clientRefsString ? clientRefsString.split(',') : []\n const clientEntryType = clientInfoMatch?.[2] as 'cjs' | 'auto' | undefined\n\n const type = clientInfoMatch\n ? RSC_MODULE_TYPES.client\n : RSC_MODULE_TYPES.server\n\n return {\n type,\n actionIds: parsedActionsMeta,\n clientRefs,\n clientEntryType,\n isClientRef,\n }\n}\n\n/**\n * Receives a parsed AST from SWC and checks if it belongs to a module that\n * requires a runtime to be specified. Those are:\n * - Modules with `export function getStaticProps | getServerSideProps`\n * - Modules with `export { getStaticProps | getServerSideProps } `\n * - Modules with `export const runtime = ...`\n */\nfunction checkExports(\n ast: any,\n expectedExports: string[],\n page: string\n): {\n getStaticProps?: boolean\n getServerSideProps?: boolean\n generateImageMetadata?: boolean\n generateSitemaps?: boolean\n generateStaticParams?: boolean\n directives?: Set\n exports?: Set\n} {\n const exportsSet = new Set([\n 'getStaticProps',\n 'getServerSideProps',\n 'generateImageMetadata',\n 'generateSitemaps',\n 'generateStaticParams',\n ])\n if (!Array.isArray(ast?.body)) {\n return {}\n }\n\n try {\n let getStaticProps: boolean = false\n let getServerSideProps: boolean = false\n let generateImageMetadata: boolean = false\n let generateSitemaps: boolean = false\n let generateStaticParams = false\n let exports = new Set()\n let directives = new Set()\n let hasLeadingNonDirectiveNode = false\n\n for (const node of ast.body) {\n // There should be no non-string literals nodes before directives\n if (\n node.type === 'ExpressionStatement' &&\n node.expression.type === 'StringLiteral'\n ) {\n if (!hasLeadingNonDirectiveNode) {\n const directive = node.expression.value\n if (CLIENT_DIRECTIVE === directive) {\n directives.add('client')\n }\n if (SERVER_ACTION_DIRECTIVE === directive) {\n directives.add('server')\n }\n }\n } else {\n hasLeadingNonDirectiveNode = true\n }\n if (\n node.type === 'ExportDeclaration' &&\n node.declaration?.type === 'VariableDeclaration'\n ) {\n for (const declaration of node.declaration?.declarations) {\n if (expectedExports.includes(declaration.id.value)) {\n exports.add(declaration.id.value)\n }\n }\n }\n\n if (\n node.type === 'ExportDeclaration' &&\n node.declaration?.type === 'FunctionDeclaration' &&\n exportsSet.has(node.declaration.identifier?.value)\n ) {\n const id = node.declaration.identifier.value\n getServerSideProps = id === 'getServerSideProps'\n getStaticProps = id === 'getStaticProps'\n generateImageMetadata = id === 'generateImageMetadata'\n generateSitemaps = id === 'generateSitemaps'\n generateStaticParams = id === 'generateStaticParams'\n }\n\n if (\n node.type === 'ExportDeclaration' &&\n node.declaration?.type === 'VariableDeclaration'\n ) {\n const id = node.declaration?.declarations[0]?.id.value\n if (exportsSet.has(id)) {\n getServerSideProps = id === 'getServerSideProps'\n getStaticProps = id === 'getStaticProps'\n generateImageMetadata = id === 'generateImageMetadata'\n generateSitemaps = id === 'generateSitemaps'\n generateStaticParams = id === 'generateStaticParams'\n }\n }\n\n if (node.type === 'ExportNamedDeclaration') {\n for (const specifier of node.specifiers) {\n if (\n specifier.type === 'ExportSpecifier' &&\n specifier.orig?.type === 'Identifier'\n ) {\n const value = specifier.orig.value\n\n if (!getServerSideProps && value === 'getServerSideProps') {\n getServerSideProps = true\n }\n if (!getStaticProps && value === 'getStaticProps') {\n getStaticProps = true\n }\n if (!generateImageMetadata && value === 'generateImageMetadata') {\n generateImageMetadata = true\n }\n if (!generateSitemaps && value === 'generateSitemaps') {\n generateSitemaps = true\n }\n if (!generateStaticParams && value === 'generateStaticParams') {\n generateStaticParams = true\n }\n if (expectedExports.includes(value) && !exports.has(value)) {\n // An export was found that was actually a re-export, and not a\n // literal value. We should warn here.\n Log.warn(\n `Next.js can't recognize the exported \\`${value}\\` field in \"${page}\", it may be re-exported from another file. The default config will be used instead.`\n )\n }\n }\n }\n }\n }\n\n return {\n getStaticProps,\n getServerSideProps,\n generateImageMetadata,\n generateSitemaps,\n generateStaticParams,\n directives,\n exports,\n }\n } catch {}\n\n return {}\n}\n\nasync function tryToReadFile(filePath: string, shouldThrow: boolean) {\n try {\n return await fs.readFile(filePath, {\n encoding: 'utf8',\n })\n } catch (error: any) {\n if (shouldThrow) {\n error.message = `Next.js ERROR: Failed to read file ${filePath}:\\n${error.message}`\n throw error\n }\n }\n}\n\n/**\n * @internal - required to exclude zod types from the build\n */\nexport function getMiddlewareMatchers(\n matcherOrMatchers: MiddlewareConfigMatcherInput,\n nextConfig: Pick\n): MiddlewareMatcher[] {\n const matchers = Array.isArray(matcherOrMatchers)\n ? matcherOrMatchers\n : [matcherOrMatchers]\n\n const { i18n } = nextConfig\n\n return matchers.map((matcher) => {\n matcher = typeof matcher === 'string' ? { source: matcher } : matcher\n\n const originalSource = matcher.source\n\n let { source, ...rest } = matcher\n\n const isRoot = source === '/'\n\n if (i18n?.locales && matcher.locale !== false) {\n source = `/:nextInternalLocale((?!_next/)[^/.]{1,})${\n isRoot ? '' : source\n }`\n }\n\n source = `/:nextData(_next/data/[^/]{1,})?${source}${\n isRoot\n ? `(${nextConfig.i18n ? '|\\\\.json|' : ''}/?index|/?index\\\\.json)?`\n : '{(\\\\.json)}?'\n }`\n\n if (nextConfig.basePath) {\n source = `${nextConfig.basePath}${source}`\n }\n\n // Validate that the source is still.\n const result = SourceSchema.safeParse(source)\n if (!result.success) {\n reportZodError('Failed to parse middleware source', result.error)\n\n // We need to exit here because middleware being built occurs before we\n // finish setting up the server. Exiting here is the only way to ensure\n // that we don't hang.\n process.exit(1)\n }\n\n return {\n ...rest,\n // We know that parsed.regexStr is not undefined because we already\n // checked that the source is valid.\n regexp: tryToParsePath(result.data).regexStr!,\n originalSource: originalSource || source,\n }\n })\n}\n\nfunction parseMiddlewareConfig(\n page: string,\n rawConfig: unknown,\n nextConfig: NextConfig\n): MiddlewareConfig {\n // If there's no config to parse, then return nothing.\n if (typeof rawConfig !== 'object' || !rawConfig) return {}\n\n const input = MiddlewareConfigInputSchema.safeParse(rawConfig)\n if (!input.success) {\n reportZodError(`${page} contains invalid middleware config`, input.error)\n\n // We need to exit here because middleware being built occurs before we\n // finish setting up the server. Exiting here is the only way to ensure\n // that we don't hang.\n process.exit(1)\n }\n\n const config: MiddlewareConfig = {}\n\n if (input.data.matcher) {\n config.matchers = getMiddlewareMatchers(input.data.matcher, nextConfig)\n }\n\n if (input.data.unstable_allowDynamic) {\n config.unstable_allowDynamic = Array.isArray(\n input.data.unstable_allowDynamic\n )\n ? input.data.unstable_allowDynamic\n : [input.data.unstable_allowDynamic]\n }\n\n if (input.data.regions) {\n config.regions = input.data.regions\n }\n\n return config\n}\n\nconst apiRouteWarnings = new LRUCache(250)\nfunction warnAboutExperimentalEdge(apiRoute: string | null) {\n if (\n process.env.NODE_ENV === 'production' &&\n process.env.NEXT_PRIVATE_BUILD_WORKER === '1'\n ) {\n return\n }\n\n if (apiRoute && apiRouteWarnings.has(apiRoute)) {\n return\n }\n\n Log.warn(\n apiRoute\n ? `${apiRoute} provided runtime 'experimental-edge'. It can be updated to 'edge' instead.`\n : `You are using an experimental edge runtime, the API might change.`\n )\n\n if (apiRoute) {\n apiRouteWarnings.set(apiRoute, 1)\n }\n}\n\nlet hadUnsupportedValue = false\nconst warnedUnsupportedValueMap = new LRUCache(250, () => 1)\n\nfunction warnAboutUnsupportedValue(\n pageFilePath: string,\n page: string | undefined,\n error: UnsupportedValueError\n) {\n hadUnsupportedValue = true\n const isProductionBuild = process.env.NODE_ENV === 'production'\n if (\n // we only log for the server compilation so it's not\n // duplicated due to webpack build worker having fresh\n // module scope for each compiler\n process.env.NEXT_COMPILER_NAME !== 'server' ||\n (isProductionBuild && warnedUnsupportedValueMap.has(pageFilePath))\n ) {\n return\n }\n warnedUnsupportedValueMap.set(pageFilePath, true)\n\n const message =\n `Next.js can't recognize the exported \\`config\\` field in ` +\n (page ? `route \"${page}\"` : `\"${pageFilePath}\"`) +\n ':\\n' +\n error.message +\n (error.path ? ` at \"${error.path}\"` : '') +\n '.\\n' +\n 'Read More - https://nextjs.org/docs/messages/invalid-page-config'\n\n // for a build we use `Log.error` instead of throwing\n // so that all errors can be logged before exiting the process\n if (isProductionBuild) {\n Log.error(message)\n } else {\n throw new Error(message)\n }\n}\n\ntype GetPageStaticInfoParams = {\n pageFilePath: string\n nextConfig: Partial\n isDev?: boolean\n page: string\n pageType: PAGE_TYPES\n}\n\nexport async function getAppPageStaticInfo({\n pageFilePath,\n nextConfig,\n isDev,\n page,\n}: GetPageStaticInfoParams): Promise {\n const content = await tryToReadFile(pageFilePath, !isDev)\n if (!content || !PARSE_PATTERN.test(content)) {\n return {\n type: PAGE_TYPES.APP,\n config: undefined,\n runtime: undefined,\n preferredRegion: undefined,\n maxDuration: undefined,\n hadUnsupportedValue: false,\n }\n }\n\n const ast = await parseModule(pageFilePath, content)\n\n const {\n generateStaticParams,\n generateImageMetadata,\n generateSitemaps,\n exports,\n directives,\n } = checkExports(ast, AppSegmentConfigSchemaKeys, page)\n\n const { type: rsc } = getRSCModuleInformation(content, true)\n\n const exportedConfig: Record = {}\n if (exports) {\n for (const property of exports) {\n try {\n exportedConfig[property] = extractExportedConstValue(ast, property)\n } catch (e) {\n if (e instanceof UnsupportedValueError) {\n warnAboutUnsupportedValue(pageFilePath, page, e)\n }\n }\n }\n }\n\n try {\n exportedConfig.config = extractExportedConstValue(ast, 'config')\n } catch (e) {\n if (e instanceof UnsupportedValueError) {\n warnAboutUnsupportedValue(pageFilePath, page, e)\n }\n // `export config` doesn't exist, or other unknown error thrown by swc, silence them\n }\n\n const route = normalizeAppPath(page)\n const config = parseAppSegmentConfig(exportedConfig, route)\n\n // Prevent edge runtime and generateStaticParams in the same file.\n if (isEdgeRuntime(config.runtime) && generateStaticParams) {\n throw new Error(\n `Page \"${page}\" cannot use both \\`export const runtime = 'edge'\\` and export \\`generateStaticParams\\`.`\n )\n }\n\n // Prevent use client and generateStaticParams in the same file.\n if (directives?.has('client') && generateStaticParams) {\n throw new Error(\n `Page \"${page}\" cannot use both \"use client\" and export function \"generateStaticParams()\".`\n )\n }\n\n return {\n type: PAGE_TYPES.APP,\n rsc,\n generateImageMetadata,\n generateSitemaps,\n generateStaticParams,\n config,\n middleware: parseMiddlewareConfig(page, exportedConfig.config, nextConfig),\n runtime: config.runtime,\n preferredRegion: config.preferredRegion,\n maxDuration: config.maxDuration,\n hadUnsupportedValue,\n }\n}\n\nexport async function getPagesPageStaticInfo({\n pageFilePath,\n nextConfig,\n isDev,\n page,\n}: GetPageStaticInfoParams): Promise {\n const content = await tryToReadFile(pageFilePath, !isDev)\n if (!content || !PARSE_PATTERN.test(content)) {\n return {\n type: PAGE_TYPES.PAGES,\n config: undefined,\n runtime: undefined,\n preferredRegion: undefined,\n maxDuration: undefined,\n hadUnsupportedValue: false,\n }\n }\n\n const ast = await parseModule(pageFilePath, content)\n\n const { getServerSideProps, getStaticProps, exports } = checkExports(\n ast,\n PagesSegmentConfigSchemaKeys,\n page\n )\n\n const { type: rsc } = getRSCModuleInformation(content, true)\n\n const exportedConfig: Record = {}\n if (exports) {\n for (const property of exports) {\n try {\n exportedConfig[property] = extractExportedConstValue(ast, property)\n } catch (e) {\n if (e instanceof UnsupportedValueError) {\n warnAboutUnsupportedValue(pageFilePath, page, e)\n }\n }\n }\n }\n\n try {\n exportedConfig.config = extractExportedConstValue(ast, 'config')\n } catch (e) {\n if (e instanceof UnsupportedValueError) {\n warnAboutUnsupportedValue(pageFilePath, page, e)\n }\n // `export config` doesn't exist, or other unknown error thrown by swc, silence them\n }\n\n // Validate the config.\n const route = normalizePagePath(page)\n const config = parsePagesSegmentConfig(exportedConfig, route)\n const isAnAPIRoute = isAPIRoute(route)\n\n const resolvedRuntime = config.runtime ?? config.config?.runtime\n\n if (resolvedRuntime === SERVER_RUNTIME.experimentalEdge) {\n warnAboutExperimentalEdge(isAnAPIRoute ? page! : null)\n }\n\n if (resolvedRuntime === SERVER_RUNTIME.edge && page && !isAnAPIRoute) {\n const message = `Page ${page} provided runtime 'edge', the edge runtime for rendering is currently experimental. Use runtime 'experimental-edge' instead.`\n if (isDev) {\n Log.error(message)\n } else {\n throw new Error(message)\n }\n }\n\n return {\n type: PAGE_TYPES.PAGES,\n getStaticProps,\n getServerSideProps,\n rsc,\n config,\n middleware: parseMiddlewareConfig(page, exportedConfig.config, nextConfig),\n runtime: resolvedRuntime,\n preferredRegion: config.config?.regions,\n maxDuration: config.maxDuration ?? config.config?.maxDuration,\n hadUnsupportedValue,\n }\n}\n\n/**\n * For a given pageFilePath and nextConfig, if the config supports it, this\n * function will read the file and return the runtime that should be used.\n * It will look into the file content only if the page *requires* a runtime\n * to be specified, that is, when gSSP or gSP is used.\n * Related discussion: https://github.com/vercel/next.js/discussions/34179\n */\nexport async function getPageStaticInfo(\n params: GetPageStaticInfoParams\n): Promise {\n if (params.pageType === PAGE_TYPES.APP) {\n return getAppPageStaticInfo(params)\n }\n\n return getPagesPageStaticInfo(params)\n}\n"],"names":["promises","fs","LRUCache","extractExportedConstValue","UnsupportedValueError","parseModule","Log","SERVER_RUNTIME","tryToParsePath","isAPIRoute","isEdgeRuntime","RSC_MODULE_TYPES","PAGE_TYPES","AppSegmentConfigSchemaKeys","parseAppSegmentConfig","reportZodError","PagesSegmentConfigSchemaKeys","parsePagesSegmentConfig","MiddlewareConfigInputSchema","SourceSchema","normalizeAppPath","normalizePagePath","PARSE_PATTERN","CLIENT_MODULE_LABEL","ACTION_MODULE_LABEL","CLIENT_DIRECTIVE","SERVER_ACTION_DIRECTIVE","getRSCModuleInformation","source","isReactServerLayer","actionsJson","match","parsedActionsMeta","JSON","parse","undefined","clientInfoMatch","isClientRef","type","client","actionIds","clientRefsString","clientRefs","split","clientEntryType","server","checkExports","ast","expectedExports","page","exportsSet","Set","Array","isArray","body","getStaticProps","getServerSideProps","generateImageMetadata","generateSitemaps","generateStaticParams","exports","directives","hasLeadingNonDirectiveNode","node","expression","directive","value","add","declaration","declarations","includes","id","has","identifier","specifier","specifiers","orig","warn","tryToReadFile","filePath","shouldThrow","readFile","encoding","error","message","getMiddlewareMatchers","matcherOrMatchers","nextConfig","matchers","i18n","map","matcher","originalSource","rest","isRoot","locales","locale","basePath","result","safeParse","success","process","exit","regexp","data","regexStr","parseMiddlewareConfig","rawConfig","input","config","unstable_allowDynamic","regions","apiRouteWarnings","warnAboutExperimentalEdge","apiRoute","env","NODE_ENV","NEXT_PRIVATE_BUILD_WORKER","set","hadUnsupportedValue","warnedUnsupportedValueMap","warnAboutUnsupportedValue","pageFilePath","isProductionBuild","NEXT_COMPILER_NAME","path","Error","getAppPageStaticInfo","isDev","content","test","APP","runtime","preferredRegion","maxDuration","rsc","exportedConfig","property","e","route","middleware","getPagesPageStaticInfo","PAGES","isAnAPIRoute","resolvedRuntime","experimentalEdge","edge","getPageStaticInfo","params","pageType"],"mappings":"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","ignoreList":[0]}