/opt/canhelp/node_modules/next/dist/server/lib
NameSizeModeActions
cache-handlers/-0755rm
experimental/-0755rm
incremental-cache/-0755rm
module-loader/-0755rm
router-utils/-0755rm
server-ipc/-0755rm
trace/-0755rm
app-dir-module.d.ts6230644editdlrm
app-dir-module.js16750644editdlrm
app-dir-module.js.map26320644editdlrm
app-info-log.d.ts6170644editdlrm
app-info-log.js48460644editdlrm
app-info-log.js.map58670644editdlrm
async-callback-set.d.ts1400644editdlrm
async-callback-set.js7330644editdlrm
async-callback-set.js.map11130644editdlrm
cache-control.d.ts5720644editdlrm
cache-control.js8150644editdlrm
cache-control.js.map16230644editdlrm
chrome-devtools-workspace.d.ts4180644editdlrm
chrome-devtools-workspace.js43680644editdlrm
chrome-devtools-workspace.js.map41900644editdlrm
clone-response.d.ts5310644editdlrm
clone-response.js26410644editdlrm
clone-response.js.map44410644editdlrm
cpu-profile.d.ts1120644editdlrm
cpu-profile.js10340644editdlrm
cpu-profile.js.map20620644editdlrm
decode-query-path-parameter.d.ts1890644editdlrm
decode-query-path-parameter.js6880644editdlrm
decode-query-path-parameter.js.map7550644editdlrm
dedupe-fetch.d.ts1470644editdlrm
dedupe-fetch.js67850644editdlrm
dedupe-fetch.js.map73960644editdlrm
dev-bundler-service.d.ts11830644editdlrm
dev-bundler-service.js32380644editdlrm
dev-bundler-service.js.map57920644editdlrm
disk-lru-cache.external.d.ts8080644editdlrm
disk-lru-cache.external.js19150644editdlrm
disk-lru-cache.external.js.map31460644editdlrm
etag.d.ts4530644editdlrm
etag.js15850644editdlrm
etag.js.map21980644editdlrm
find-page-file.d.ts13950644editdlrm
find-page-file.js54210644editdlrm
find-page-file.js.map94400644editdlrm
fix-mojibake.d.ts600644editdlrm
fix-mojibake.js7270644editdlrm
fix-mojibake.js.map10410644editdlrm
format-hostname.d.ts2150644editdlrm
format-hostname.js4080644editdlrm
format-hostname.js.map6100644editdlrm
i18n-provider.d.ts23910644editdlrm
i18n-provider.js55930644editdlrm
i18n-provider.js.map90460644editdlrm
implicit-tags.d.ts9860644editdlrm
implicit-tags.js26850644editdlrm
implicit-tags.js.map52120644editdlrm
is-ipv6.d.ts520644editdlrm
is-ipv6.js22840644editdlrm
is-ipv6.js.map34070644editdlrm
lazy-result.d.ts5650644editdlrm
lazy-result.js12460644editdlrm
lazy-result.js.map19070644editdlrm
lru-cache.d.ts36610644editdlrm
lru-cache.js66430644editdlrm
lru-cache.js.map113580644editdlrm
match-next-data-pathname.d.ts1130644editdlrm
match-next-data-pathname.js5510644editdlrm
match-next-data-pathname.js.map6360644editdlrm
mock-request.d.ts41250644editdlrm
mock-request.js144950644editdlrm
mock-request.js.map212690644editdlrm
node-fs-methods.d.ts930644editdlrm
node-fs-methods.js7720644editdlrm
node-fs-methods.js.map9760644editdlrm
parse-stack.d.ts2930644editdlrm
parse-stack.js17990644editdlrm
parse-stack.js.map29910644editdlrm
patch-fetch.d.ts9580644editdlrm
patch-fetch.js459600644editdlrm
patch-fetch.js.map647100644editdlrm
patch-set-header.d.ts4640644editdlrm
patch-set-header.js14520644editdlrm
patch-set-header.js.map24630644editdlrm
render-server.d.ts38030644editdlrm
render-server.js39380644editdlrm
render-server.js.map63770644editdlrm
router-server.d.ts8160644editdlrm
router-server.js330710644editdlrm
router-server.js.map464730644editdlrm
server-action-request-meta.d.ts5370644editdlrm
server-action-request-meta.js21160644editdlrm
server-action-request-meta.js.map30700644editdlrm
source-maps.d.ts19760644editdlrm
source-maps.js90100644editdlrm
source-maps.js.map149080644editdlrm
start-server.d.ts10600644editdlrm
start-server.js195790644editdlrm
start-server.js.map276000644editdlrm
streaming-metadata.d.ts2740644editdlrm
streaming-metadata.js11370644editdlrm
streaming-metadata.js.map15880644editdlrm
to-route.d.ts5060644editdlrm
to-route.js7780644editdlrm
to-route.js.map8630644editdlrm
types.d.ts2910644editdlrm
types.js1150644editdlrm
types.js.map670644editdlrm
utils.d.ts29660644editdlrm
utils.js83120644editdlrm
utils.js.map136580644editdlrm
worker-utils.d.ts570644editdlrm
worker-utils.js11280644editdlrm
worker-utils.js.map11250644editdlrm
Edit: /opt/canhelp/node_modules/next/dist/server/lib/find-page-file.js.map (9440B)
{"version":3,"sources":["../../../src/server/lib/find-page-file.ts"],"sourcesContent":["import { fileExists } from '../../lib/file-exists'\nimport { getPagePaths } from '../../shared/lib/page-path/get-page-paths'\nimport { nonNullable } from '../../lib/non-nullable'\nimport { join, sep, normalize } from 'path'\nimport { promises as fsPromises } from 'fs'\nimport { warn } from '../../build/output/log'\nimport { cyan } from '../../lib/picocolors'\nimport { isMetadataRouteFile } from '../../lib/metadata/is-metadata-route'\nimport type { PageExtensions } from '../../build/page-extensions-type'\n\nasync function isTrueCasePagePath(pagePath: string, pagesDir: string) {\n const pageSegments = normalize(pagePath).split(sep).filter(Boolean)\n const segmentExistsPromises = pageSegments.map(async (segment, i) => {\n const segmentParentDir = join(pagesDir, ...pageSegments.slice(0, i))\n const parentDirEntries = await fsPromises.readdir(segmentParentDir)\n return parentDirEntries.includes(segment)\n })\n\n return (await Promise.all(segmentExistsPromises)).every(Boolean)\n}\n\n/**\n * Finds a page file with the given parameters. If the page is duplicated with\n * multiple extensions it will throw, otherwise it will return the *relative*\n * path to the page file or null if it is not found.\n *\n * @param pagesDir Absolute path to the pages folder with trailing `/pages`.\n * @param normalizedPagePath The page normalized (it will be denormalized).\n * @param pageExtensions Array of page extensions.\n */\nexport async function findPageFile(\n pagesDir: string,\n normalizedPagePath: string,\n pageExtensions: PageExtensions,\n isAppDir: boolean\n): Promise {\n const pagePaths = getPagePaths(normalizedPagePath, pageExtensions, isAppDir)\n const [existingPath, ...others] = (\n await Promise.all(\n pagePaths.map(async (path) => {\n const filePath = join(pagesDir, path)\n try {\n return (await fileExists(filePath)) ? path : null\n } catch (err: any) {\n if (!err?.code?.includes('ENOTDIR')) throw err\n }\n return null\n })\n )\n ).filter(nonNullable)\n\n if (!existingPath) {\n return null\n }\n\n if (!(await isTrueCasePagePath(existingPath, pagesDir))) {\n return null\n }\n\n if (others.length > 0) {\n warn(\n `Duplicate page detected. ${cyan(join('pages', existingPath))} and ${cyan(\n join('pages', others[0])\n )} both resolve to ${cyan(normalizedPagePath)}.`\n )\n }\n\n return existingPath\n}\n\n/**\n *\n * createValidFileMatcher receives configured page extensions and return helpers to determine:\n * `isLayoutsLeafPage`: if a file is a valid page file or routes file under app directory\n * `isTrackedFiles`: if it's a tracked file for webpack watcher\n *\n */\nexport function createValidFileMatcher(\n pageExtensions: PageExtensions,\n appDirPath: string | undefined\n) {\n const getExtensionRegexString = (extensions: string[]) =>\n `(?:${extensions.join('|')})`\n\n const validExtensionFileRegex = new RegExp(\n '\\\\.' + getExtensionRegexString(pageExtensions) + '$'\n )\n const leafOnlyPageFileRegex = new RegExp(\n `(^(page|route)|[\\\\\\\\/](page|route))\\\\.${getExtensionRegexString(\n pageExtensions\n )}$`\n )\n\n const leafOnlyRouteFileRegex = new RegExp(\n `(^route|[\\\\\\\\/]route)\\\\.${getExtensionRegexString(pageExtensions)}$`\n )\n const leafOnlyLayoutFileRegex = new RegExp(\n `(^(layout)|[\\\\\\\\/](layout))\\\\.${getExtensionRegexString(pageExtensions)}$`\n )\n const rootNotFoundFileRegex = new RegExp(\n `^not-found\\\\.${getExtensionRegexString(pageExtensions)}$`\n )\n const leafOnlyDefaultFileRegex = new RegExp(\n `(^(default)|[\\\\\\\\/](default))\\\\.${getExtensionRegexString(pageExtensions)}$`\n )\n /** TODO-METADATA: support other metadata routes\n * regex for:\n *\n * /robots.txt|\n * /sitemap.xml|\n * /favicon.ico\n * /manifest.json|\n * /icon.png|jpg|\n * /apple-touch-icon.png|jpg|\n *\n */\n\n /**\n * Match the file if it's a metadata route file, static: if the file is a static metadata file.\n * It needs to be a file which doesn't match the custom metadata routes e.g. `app/robots.txt/route.js`\n */\n function isMetadataFile(filePath: string) {\n const appDirRelativePath = appDirPath\n ? filePath.replace(appDirPath, '')\n : filePath\n\n return isMetadataRouteFile(appDirRelativePath, pageExtensions, true)\n }\n\n // Determine if the file is leaf node page file or route file under layouts,\n // 'page.' | 'route.'\n function isAppRouterPage(filePath: string) {\n return leafOnlyPageFileRegex.test(filePath) || isMetadataFile(filePath)\n }\n\n // Determine if the file is leaf node route file under app directory\n function isAppRouterRoute(filePath: string) {\n return leafOnlyRouteFileRegex.test(filePath)\n }\n\n function isAppLayoutPage(filePath: string) {\n return leafOnlyLayoutFileRegex.test(filePath)\n }\n\n function isAppDefaultPage(filePath: string) {\n return leafOnlyDefaultFileRegex.test(filePath)\n }\n\n function isPageFile(filePath: string) {\n return validExtensionFileRegex.test(filePath) || isMetadataFile(filePath)\n }\n\n function isRootNotFound(filePath: string) {\n if (!appDirPath) {\n return false\n }\n if (!filePath.startsWith(appDirPath + sep)) {\n return false\n }\n const rest = filePath.slice(appDirPath.length + 1)\n return rootNotFoundFileRegex.test(rest)\n }\n\n return {\n isPageFile,\n isAppRouterPage,\n isAppRouterRoute,\n isAppLayoutPage,\n isAppDefaultPage,\n isMetadataFile,\n isRootNotFound,\n }\n}\n"],"names":["createValidFileMatcher","findPageFile","isTrueCasePagePath","pagePath","pagesDir","pageSegments","normalize","split","sep","filter","Boolean","segmentExistsPromises","map","segment","i","segmentParentDir","join","slice","parentDirEntries","fsPromises","readdir","includes","Promise","all","every","normalizedPagePath","pageExtensions","isAppDir","pagePaths","getPagePaths","existingPath","others","path","filePath","fileExists","err","code","nonNullable","length","warn","cyan","appDirPath","getExtensionRegexString","extensions","validExtensionFileRegex","RegExp","leafOnlyPageFileRegex","leafOnlyRouteFileRegex","leafOnlyLayoutFileRegex","rootNotFoundFileRegex","leafOnlyDefaultFileRegex","isMetadataFile","appDirRelativePath","replace","isMetadataRouteFile","isAppRouterPage","test","isAppRouterRoute","isAppLayoutPage","isAppDefaultPage","isPageFile","isRootNotFound","startsWith","rest"],"mappings":"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","ignoreList":[0]}