/
opt
/
canhelp
/
node_modules
/
next
/
dist
/
esm
/
build
/
webpack
/
loaders
/
/opt/canhelp/node_modules/next/dist/esm/build/webpack/loaders
mkdir
upload
Name
Size
Mode
Actions
css-loader/
-
0755
rm
devtool/
-
0755
rm
lightningcss-loader/
-
0755
rm
metadata/
-
0755
rm
next-app-loader/
-
0755
rm
next-edge-app-route-loader/
-
0755
rm
next-edge-ssr-loader/
-
0755
rm
next-flight-loader/
-
0755
rm
next-font-loader/
-
0755
rm
next-image-loader/
-
0755
rm
next-route-loader/
-
0755
rm
next-style-loader/
-
0755
rm
postcss-loader/
-
0755
rm
resolve-url-loader/
-
0755
rm
empty-loader.js
114
0644
edit
dl
rm
empty-loader.js.map
374
0644
edit
dl
rm
error-loader.js
1028
0644
edit
dl
rm
error-loader.js.map
1673
0644
edit
dl
rm
get-module-build-info.js
276
0644
edit
dl
rm
get-module-build-info.js.map
1932
0644
edit
dl
rm
modularize-import-loader.js
881
0644
edit
dl
rm
modularize-import-loader.js.map
1703
0644
edit
dl
rm
next-barrel-loader.js
9964
0644
edit
dl
rm
next-barrel-loader.js.map
15507
0644
edit
dl
rm
next-client-pages-loader.js
1007
0644
edit
dl
rm
next-client-pages-loader.js.map
1904
0644
edit
dl
rm
next-edge-function-loader.js
1650
0644
edit
dl
rm
next-edge-function-loader.js.map
3216
0644
edit
dl
rm
next-error-browser-binary-loader.js
505
0644
edit
dl
rm
next-error-browser-binary-loader.js.map
913
0644
edit
dl
rm
next-flight-action-entry-loader.js
766
0644
edit
dl
rm
next-flight-action-entry-loader.js.map
1941
0644
edit
dl
rm
next-flight-client-entry-loader.js
1760
0644
edit
dl
rm
next-flight-client-entry-loader.js.map
4145
0644
edit
dl
rm
next-flight-client-module-loader.js
1982
0644
edit
dl
rm
next-flight-client-module-loader.js.map
3436
0644
edit
dl
rm
next-flight-css-loader.js
1705
0644
edit
dl
rm
next-flight-css-loader.js.map
3052
0644
edit
dl
rm
next-flight-server-reference-proxy-loader.js
1128
0644
edit
dl
rm
next-flight-server-reference-proxy-loader.js.map
1869
0644
edit
dl
rm
next-invalid-import-error-loader.js
362
0644
edit
dl
rm
next-invalid-import-error-loader.js.map
721
0644
edit
dl
rm
next-metadata-image-loader.js
5582
0644
edit
dl
rm
next-metadata-image-loader.js.map
9774
0644
edit
dl
rm
next-metadata-route-loader.js
8714
0644
edit
dl
rm
next-metadata-route-loader.js.map
13696
0644
edit
dl
rm
next-middleware-asset-loader.js
718
0644
edit
dl
rm
next-middleware-asset-loader.js.map
1515
0644
edit
dl
rm
next-middleware-loader.js
1560
0644
edit
dl
rm
next-middleware-loader.js.map
3585
0644
edit
dl
rm
next-middleware-wasm-loader.js
661
0644
edit
dl
rm
next-middleware-wasm-loader.js.map
1468
0644
edit
dl
rm
next-root-params-loader.js
4862
0644
edit
dl
rm
next-root-params-loader.js.map
8558
0644
edit
dl
rm
next-swc-loader.js
9073
0644
edit
dl
rm
next-swc-loader.js.map
15038
0644
edit
dl
rm
utils.js
2963
0644
edit
dl
rm
utils.js.map
5821
0644
edit
dl
rm
Edit:
/opt/canhelp/node_modules/next/dist/esm/build/webpack/loaders/next-metadata-route-loader.js.map
(13696B)
{"version":3,"sources":["../../../../src/build/webpack/loaders/next-metadata-route-loader.ts"],"sourcesContent":["import type webpack from 'webpack'\nimport fs from 'fs'\nimport path from 'path'\nimport { imageExtMimeTypeMap } from '../../../lib/mime-type'\nimport { getLoaderModuleNamedExports } from './utils'\n\nfunction errorOnBadHandler(resourcePath: string) {\n return `\n if (typeof handler !== 'function') {\n throw new Error('Default export is missing in ${JSON.stringify(\n resourcePath\n )}')\n }\n `\n}\n\n/* re-export the userland route configs */\nasync function createReExportsCode(\n resourcePath: string,\n loaderContext: webpack.LoaderContext<any>\n) {\n const exportNames = await getLoaderModuleNamedExports(\n resourcePath,\n loaderContext\n )\n // Re-export configs but avoid conflicted exports\n const reExportNames = exportNames.filter(\n (name) => name !== 'default' && name !== 'generateSitemaps'\n )\n\n return reExportNames.length > 0\n ? `export { ${reExportNames.join(', ')} } from ${JSON.stringify(\n resourcePath\n )}\\n`\n : ''\n}\n\nconst cacheHeader = {\n none: 'no-cache, no-store',\n longCache: 'public, immutable, no-transform, max-age=31536000',\n revalidate: 'public, max-age=0, must-revalidate',\n}\n\nexport type MetadataRouteLoaderOptions = {\n // Using separate argument to avoid json being parsed and hit error\n // x-ref: https://github.com/vercel/next.js/pull/62615\n filePath: string\n isDynamicRouteExtension: '1' | '0'\n}\n\nexport function getFilenameAndExtension(resourcePath: string) {\n const filename = path.basename(resourcePath)\n const [name, ext] = filename.split('.', 2)\n return {\n name,\n ext,\n }\n}\n\nfunction getContentType(resourcePath: string) {\n let { name, ext } = getFilenameAndExtension(resourcePath)\n if (ext === 'jpg') ext = 'jpeg'\n\n if (name === 'favicon' && ext === 'ico') return 'image/x-icon'\n if (name === 'sitemap') return 'application/xml'\n if (name === 'robots') return 'text/plain'\n if (name === 'manifest') return 'application/manifest+json'\n\n if (ext === 'png' || ext === 'jpeg' || ext === 'ico' || ext === 'svg') {\n return imageExtMimeTypeMap[ext]\n }\n return 'text/plain'\n}\n\nasync function getStaticAssetRouteCode(\n resourcePath: string,\n fileBaseName: string\n) {\n const cache =\n fileBaseName === 'favicon'\n ? 'public, max-age=0, must-revalidate'\n : process.env.NODE_ENV !== 'production'\n ? cacheHeader.none\n : cacheHeader.longCache\n\n const isTwitter = fileBaseName === 'twitter-image'\n const isOpenGraph = fileBaseName === 'opengraph-image'\n // Twitter image file size limit is 5MB.\n // General Open Graph image file size limit is 8MB.\n // x-ref: https://developer.x.com/en/docs/x-for-websites/cards/overview/summary\n // x-ref(facebook): https://developers.facebook.com/docs/sharing/webmasters/images\n const fileSizeLimit = isTwitter ? 5 : 8\n const imgName = isTwitter ? 'Twitter' : 'Open Graph'\n\n const code = `\\\n/* static asset route */\nimport { NextResponse } from 'next/server'\n\nconst contentType = ${JSON.stringify(getContentType(resourcePath))}\nconst buffer = Buffer.from(${JSON.stringify(\n (await fs.promises.readFile(resourcePath)).toString('base64')\n )}, 'base64'\n )\n\nif (${isTwitter || isOpenGraph}) {\n const fileSizeInMB = buffer.byteLength / 1024 / 1024\n if (fileSizeInMB > ${fileSizeLimit}) {\n throw new Error('File size for ${imgName} image ${JSON.stringify(resourcePath)} exceeds ${fileSizeLimit}MB. ' +\n \\`(Current: \\${fileSizeInMB.toFixed(2)}MB)\\n\\` +\n 'Read more: https://nextjs.org/docs/app/api-reference/file-conventions/metadata/opengraph-image#image-files-jpg-png-gif'\n )\n }\n}\n\nexport function GET() {\n return new NextResponse(buffer, {\n headers: {\n 'Content-Type': contentType,\n 'Cache-Control': ${JSON.stringify(cache)},\n },\n })\n}\n\nexport const dynamic = 'force-static'\n`\n return code\n}\n\nasync function getDynamicTextRouteCode(\n resourcePath: string,\n loaderContext: webpack.LoaderContext<any>\n) {\n return `\\\n/* dynamic asset route */\nimport { NextResponse } from 'next/server'\nimport handler from ${JSON.stringify(resourcePath)}\nimport { resolveRouteData } from 'next/dist/build/webpack/loaders/metadata/resolve-route-data'\n\nconst contentType = ${JSON.stringify(getContentType(resourcePath))}\nconst fileType = ${JSON.stringify(getFilenameAndExtension(resourcePath).name)}\n\n${errorOnBadHandler(resourcePath)}\n${await createReExportsCode(resourcePath, loaderContext)}\n\nexport async function GET() {\n const data = await handler()\n const content = resolveRouteData(data, fileType)\n\n return new NextResponse(content, {\n headers: {\n 'Content-Type': contentType,\n 'Cache-Control': ${JSON.stringify(cacheHeader.revalidate)},\n },\n })\n}\n`\n}\n\n// <metadata-image>/[id]/route.js\nasync function getDynamicImageRouteCode(\n resourcePath: string,\n loaderContext: webpack.LoaderContext<any>\n) {\n return `\\\n/* dynamic image route */\nimport { NextResponse } from 'next/server'\nimport * as userland from ${JSON.stringify(resourcePath)}\n\nconst imageModule = { ...userland }\n\nconst handler = imageModule.default\nconst generateImageMetadata = imageModule.generateImageMetadata\n\n${errorOnBadHandler(resourcePath)}\n${await createReExportsCode(resourcePath, loaderContext)}\n\nexport async function GET(_, ctx) {\n const params = await ctx.params\n const { __metadata_id__, ...rest } = params || {}\n const restParams = params ? rest : undefined\n const targetId = __metadata_id__\n let id = undefined\n \n if (generateImageMetadata) {\n const imageMetadata = await generateImageMetadata({ params: restParams })\n id = imageMetadata.find((item) => {\n if (process.env.NODE_ENV !== 'production') {\n if (item?.id == null) {\n throw new Error('id property is required for every item returned from generateImageMetadata')\n }\n }\n return item.id.toString() === targetId\n })?.id\n if (id == null) {\n return new NextResponse('Not Found', {\n status: 404,\n })\n }\n }\n\n return handler({ params: restParams, id })\n}\n`\n}\n\nasync function getDynamicSitemapRouteCode(\n resourcePath: string,\n loaderContext: webpack.LoaderContext<any>\n) {\n let staticGenerationCode = ''\n\n const exportNames = await getLoaderModuleNamedExports(\n resourcePath,\n loaderContext\n )\n\n const hasGenerateSitemaps = exportNames.includes('generateSitemaps')\n\n if (process.env.NODE_ENV === 'production' && hasGenerateSitemaps) {\n staticGenerationCode = `\\\n /* dynamic sitemap route */\n export async function generateStaticParams() {\n const sitemaps = await sitemapModule.generateSitemaps()\n const params = []\n\n for (const item of sitemaps) {\n params.push({ __metadata_id__: item.id.toString() + '.xml' })\n }\n return params\n }\n `\n }\n\n const code = `\\\nimport { NextResponse } from 'next/server'\nimport * as userland from ${JSON.stringify(resourcePath)}\nimport { resolveRouteData } from 'next/dist/build/webpack/loaders/metadata/resolve-route-data'\n\nconst sitemapModule = { ...userland }\nconst handler = sitemapModule.default\nconst contentType = ${JSON.stringify(getContentType(resourcePath))}\nconst fileType = ${JSON.stringify(getFilenameAndExtension(resourcePath).name)}\n\n${errorOnBadHandler(resourcePath)}\n${await createReExportsCode(resourcePath, loaderContext)}\n\nexport async function GET(_, ctx) {\n const { __metadata_id__: id, ...params } = await ctx.params || {}\n const hasXmlExtension = id ? id.endsWith('.xml') : false\n\n if (id && !hasXmlExtension) {\n return new NextResponse('Not Found', {\n status: 404,\n })\n }\n\n if (process.env.NODE_ENV !== 'production' && sitemapModule.generateSitemaps) {\n const sitemaps = await sitemapModule.generateSitemaps()\n for (const item of sitemaps) {\n if (item?.id == null) {\n throw new Error('id property is required for every item returned from generateSitemaps')\n }\n }\n }\n\n const targetId = id && hasXmlExtension ? id.slice(0, -4) : undefined\n\n const data = await handler({ id: targetId })\n const content = resolveRouteData(data, fileType)\n\n return new NextResponse(content, {\n headers: {\n 'Content-Type': contentType,\n 'Cache-Control': ${JSON.stringify(cacheHeader.revalidate)},\n },\n })\n}\n\n${staticGenerationCode}\n`\n return code\n}\n\n// When it's static route, it could be favicon.ico, sitemap.xml, robots.txt etc.\n// TODO-METADATA: improve the cache control strategy\nconst nextMetadataRouterLoader: webpack.LoaderDefinitionFunction<MetadataRouteLoaderOptions> =\n async function () {\n const { isDynamicRouteExtension, filePath } = this.getOptions()\n const { name: fileBaseName } = getFilenameAndExtension(filePath)\n this.addDependency(filePath)\n\n let code = ''\n if (isDynamicRouteExtension === '1') {\n if (fileBaseName === 'robots' || fileBaseName === 'manifest') {\n code = await getDynamicTextRouteCode(filePath, this)\n } else if (fileBaseName === 'sitemap') {\n code = await getDynamicSitemapRouteCode(filePath, this)\n } else {\n code = await getDynamicImageRouteCode(filePath, this)\n }\n } else {\n code = await getStaticAssetRouteCode(filePath, fileBaseName)\n }\n\n return code\n }\n\nexport default nextMetadataRouterLoader\n"],"names":["fs","path","imageExtMimeTypeMap","getLoaderModuleNamedExports","errorOnBadHandler","resourcePath","JSON","stringify","createReExportsCode","loaderContext","exportNames","reExportNames","filter","name","length","join","cacheHeader","none","longCache","revalidate","getFilenameAndExtension","filename","basename","ext","split","getContentType","getStaticAssetRouteCode","fileBaseName","cache","process","env","NODE_ENV","isTwitter","isOpenGraph","fileSizeLimit","imgName","code","promises","readFile","toString","getDynamicTextRouteCode","getDynamicImageRouteCode","getDynamicSitemapRouteCode","staticGenerationCode","hasGenerateSitemaps","includes","nextMetadataRouterLoader","isDynamicRouteExtension","filePath","getOptions","addDependency"],"mappings":"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","ignoreList":[0]}
Save
cmd:
run