/opt/canhelp/node_modules/next/dist/server
NameSizeModeActions
after/-0755rm
api-utils/-0755rm
app-render/-0755rm
async-storage/-0755rm
base-http/-0755rm
dev/-0755rm
instrumentation/-0755rm
lib/-0755rm
node-environment-extensions/-0755rm
normalizers/-0755rm
og/-0755rm
request/-0755rm
response-cache/-0755rm
resume-data-cache/-0755rm
route-definitions/-0755rm
route-matcher-managers/-0755rm
route-matcher-providers/-0755rm
route-matchers/-0755rm
route-matches/-0755rm
route-modules/-0755rm
stream-utils/-0755rm
typescript/-0755rm
use-cache/-0755rm
web/-0755rm
accept-header.d.ts980644editdlrm
accept-header.js40620644editdlrm
accept-header.js.map64740644editdlrm
base-server.d.ts148180644editdlrm
base-server.js1017700644editdlrm
base-server.js.map1626830644editdlrm
body-streams.d.ts4740644editdlrm
body-streams.js36550644editdlrm
body-streams.js.map54420644editdlrm
cache-dir.d.ts820644editdlrm
cache-dir.js7570644editdlrm
cache-dir.js.map7030644editdlrm
capsize-font-metrics.json43016220644editdlrm
ci-info.d.ts1240644editdlrm
ci-info.js11420644editdlrm
ci-info.js.map13140644editdlrm
client-component-renderer-logger.d.ts4050644editdlrm
client-component-renderer-logger.js22870644editdlrm
client-component-renderer-logger.js.map30360644editdlrm
config-schema.d.ts1510644editdlrm
config-schema.js303360644editdlrm
config-schema.js.map567480644editdlrm
config-shared.d.ts492800644editdlrm
config-shared.js72780644editdlrm
config-shared.js.map580640644editdlrm
config-utils.d.ts490644editdlrm
config-utils.js58880644editdlrm
config-utils.js.map66000644editdlrm
config.d.ts11590644editdlrm
config.js743130644editdlrm
config.js.map995600644editdlrm
create-deduped-by-callsite-server-error-logger.d.ts5910644editdlrm
create-deduped-by-callsite-server-error-logger.js35840644editdlrm
create-deduped-by-callsite-server-error-logger.js.map36670644editdlrm
crypto-utils.d.ts1710644editdlrm
crypto-utils.js30260644editdlrm
crypto-utils.js.map43690644editdlrm
dynamic-rendering-utils.d.ts4250644editdlrm
dynamic-rendering-utils.js33880644editdlrm
dynamic-rendering-utils.js.map49390644editdlrm
font-utils.d.ts1770644editdlrm
font-utils.js17760644editdlrm
font-utils.js.map30600644editdlrm
get-app-route-from-entrypoint.d.ts850644editdlrm
get-app-route-from-entrypoint.js8320644editdlrm
get-app-route-from-entrypoint.js.map8650644editdlrm
get-page-files.d.ts5360644editdlrm
get-page-files.js8070644editdlrm
get-page-files.js.map16920644editdlrm
get-route-from-entrypoint.d.ts970644editdlrm
get-route-from-entrypoint.js12450644editdlrm
get-route-from-entrypoint.js.map14150644editdlrm
htmlescape.d.ts1100644editdlrm
htmlescape.js9860644editdlrm
htmlescape.js.map10000644editdlrm
image-optimizer.d.ts46920644editdlrm
image-optimizer.js370660644editdlrm
image-optimizer.js.map555230644editdlrm
internal-utils.d.ts2230644editdlrm
internal-utils.js11270644editdlrm
internal-utils.js.map13470644editdlrm
load-components.d.ts29880644editdlrm
load-components.js70160644editdlrm
load-components.js.map131700644editdlrm
load-default-error-components.d.ts13520644editdlrm
load-default-error-components.js18870644editdlrm
load-default-error-components.js.map38260644editdlrm
load-manifest.external.d.ts18080644editdlrm
load-manifest.external.js30510644editdlrm
load-manifest.external.js.map58270644editdlrm
match-bundle.d.ts820644editdlrm
match-bundle.js6860644editdlrm
match-bundle.js.map7180644editdlrm
next-server.d.ts114480644editdlrm
next-server.js698440644editdlrm
next-server.js.map1100190644editdlrm
next-typescript.d.ts470644editdlrm
next-typescript.js3180644editdlrm
next-typescript.js.map2220644editdlrm
next.d.ts36460644editdlrm
next.js157070644editdlrm
next.js.map268160644editdlrm
node-environment-baseline.d.ts00644editdlrm
node-environment-baseline.js8900644editdlrm
node-environment-baseline.js.map15550644editdlrm
node-environment.d.ts2870644editdlrm
node-environment.js6480644editdlrm
node-environment.js.map10650644editdlrm
node-polyfill-crypto.d.ts00644editdlrm
node-polyfill-crypto.js5580644editdlrm
node-polyfill-crypto.js.map10140644editdlrm
optimize-amp.d.ts780644editdlrm
optimize-amp.js5490644editdlrm
optimize-amp.js.map8390644editdlrm
patch-error-inspect.d.ts4670644editdlrm
patch-error-inspect.js196530644editdlrm
patch-error-inspect.js.map285010644editdlrm
pipe-readable.d.ts2910644editdlrm
pipe-readable.js55980644editdlrm
pipe-readable.js.map76770644editdlrm
post-process.d.ts3720644editdlrm
post-process.js20060644editdlrm
post-process.js.map39830644editdlrm
ReactDOMServerPages.d.ts380644editdlrm
ReactDOMServerPages.js5980644editdlrm
ReactDOMServerPages.js.map9570644editdlrm
render-result.d.ts62410644editdlrm
render-result.js75550644editdlrm
render-result.js.map142430644editdlrm
render.d.ts48870644editdlrm
render.js557840644editdlrm
render.js.map850560644editdlrm
request-meta.d.ts80310644editdlrm
request-meta.js14650644editdlrm
request-meta.js.map94610644editdlrm
require-hook.d.ts2660644editdlrm
require-hook.js28400644editdlrm
require-hook.js.map44530644editdlrm
require.d.ts3770644editdlrm
require.js39220644editdlrm
require.js.map60480644editdlrm
revalidation-utils.d.ts5410644editdlrm
revalidation-utils.js33410644editdlrm
revalidation-utils.js.map57330644editdlrm
route-kind.d.ts7200644editdlrm
route-kind.js10290644editdlrm
route-kind.js.map9370644editdlrm
send-payload.d.ts5970644editdlrm
send-payload.js28490644editdlrm
send-payload.js.map42140644editdlrm
send-response.d.ts4200644editdlrm
send-response.js30650644editdlrm
send-response.js.map45590644editdlrm
serve-static.d.ts4030644editdlrm
serve-static.js21100644editdlrm
serve-static.js.map26800644editdlrm
server-route-utils.d.ts1970644editdlrm
server-route-utils.js11300644editdlrm
server-route-utils.js.map19350644editdlrm
server-utils.d.ts31340644editdlrm
server-utils.js165420644editdlrm
server-utils.js.map260640644editdlrm
setup-http-agent-env.d.ts1720644editdlrm
setup-http-agent-env.js10500644editdlrm
setup-http-agent-env.js.map14060644editdlrm
utils.d.ts3320644editdlrm
utils.js32080644editdlrm
utils.js.map41810644editdlrm
Edit: /opt/canhelp/node_modules/next/dist/server/server-utils.js (16542B)
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { getPreviouslyRevalidatedTags: null, getServerUtils: null, interpolateDynamicPath: null, normalizeCdnUrl: null, normalizeDynamicRouteParams: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { getPreviouslyRevalidatedTags: function() { return getPreviouslyRevalidatedTags; }, getServerUtils: function() { return getServerUtils; }, interpolateDynamicPath: function() { return interpolateDynamicPath; }, normalizeCdnUrl: function() { return normalizeCdnUrl; }, normalizeDynamicRouteParams: function() { return normalizeDynamicRouteParams; } }); const _normalizelocalepath = require("../shared/lib/i18n/normalize-locale-path"); const _pathmatch = require("../shared/lib/router/utils/path-match"); const _routeregex = require("../shared/lib/router/utils/route-regex"); const _routematcher = require("../shared/lib/router/utils/route-matcher"); const _preparedestination = require("../shared/lib/router/utils/prepare-destination"); const _removetrailingslash = require("../shared/lib/router/utils/remove-trailing-slash"); const _apppaths = require("../shared/lib/router/utils/app-paths"); const _constants = require("../lib/constants"); const _utils = require("./web/utils"); const _decodequerypathparameter = require("./lib/decode-query-path-parameter"); const _url = require("../lib/url"); const _formaturl = require("../shared/lib/router/utils/format-url"); const _parseandvalidateflightrouterstate = require("./app-render/parse-and-validate-flight-router-state"); const _generateinterceptionroutesrewrites = require("../lib/generate-interception-routes-rewrites"); const _approuterheaders = require("../client/components/app-router-headers"); const _computechangedpath = require("../client/components/router-reducer/compute-changed-path"); function filterInternalQuery(query, paramKeys) { // this is used to pass query information in rewrites // but should not be exposed in final query delete query['nextInternalLocale']; for(const key in query){ const isNextQueryPrefix = key !== _constants.NEXT_QUERY_PARAM_PREFIX && key.startsWith(_constants.NEXT_QUERY_PARAM_PREFIX); const isNextInterceptionMarkerPrefix = key !== _constants.NEXT_INTERCEPTION_MARKER_PREFIX && key.startsWith(_constants.NEXT_INTERCEPTION_MARKER_PREFIX); if (isNextQueryPrefix || isNextInterceptionMarkerPrefix || paramKeys.includes(key)) { delete query[key]; } } } function normalizeCdnUrl(req, paramKeys) { // make sure to normalize req.url from CDNs to strip dynamic and rewrite // params from the query which are added during routing const _parsedUrl = (0, _url.parseReqUrl)(req.url); // we can't normalize if we can't parse if (!_parsedUrl) { return req.url; } delete _parsedUrl.search; filterInternalQuery(_parsedUrl.query, paramKeys); req.url = (0, _formaturl.formatUrl)(_parsedUrl); } function interpolateDynamicPath(pathname, params, defaultRouteRegex) { if (!defaultRouteRegex) return pathname; for (const param of Object.keys(defaultRouteRegex.groups)){ const { optional, repeat } = defaultRouteRegex.groups[param]; let builtParam = `[${repeat ? '...' : ''}${param}]`; if (optional) { builtParam = `[${builtParam}]`; } let paramValue; const value = params[param]; if (Array.isArray(value)) { paramValue = value.map((v)=>v && encodeURIComponent(v)).join('/'); } else if (value) { paramValue = encodeURIComponent(value); } else { paramValue = ''; } if (paramValue || optional) { pathname = pathname.replaceAll(builtParam, paramValue); } } return pathname; } function normalizeDynamicRouteParams(query, defaultRouteRegex, defaultRouteMatches, ignoreMissingOptional) { let hasValidParams = true; let params = {}; for (const key of Object.keys(defaultRouteRegex.groups)){ let value = query[key]; if (typeof value === 'string') { value = (0, _apppaths.normalizeRscURL)(value); } else if (Array.isArray(value)) { value = value.map(_apppaths.normalizeRscURL); } // if the value matches the default value we can't rely // on the parsed params, this is used to signal if we need // to parse x-now-route-matches or not const defaultValue = defaultRouteMatches[key]; const isOptional = defaultRouteRegex.groups[key].optional; const isDefaultValue = Array.isArray(defaultValue) ? defaultValue.some((defaultVal)=>{ return Array.isArray(value) ? value.some((val)=>val.includes(defaultVal)) : value == null ? void 0 : value.includes(defaultVal); }) : value == null ? void 0 : value.includes(defaultValue); if (isDefaultValue || typeof value === 'undefined' && !(isOptional && ignoreMissingOptional)) { return { params: {}, hasValidParams: false }; } // non-provided optional values should be undefined so normalize // them to undefined if (isOptional && (!value || Array.isArray(value) && value.length === 1 && // fallback optional catch-all SSG pages have // [[...paramName]] for the root path on Vercel (value[0] === 'index' || value[0] === `[[...${key}]]`))) { value = undefined; delete query[key]; } // query values from the proxy aren't already split into arrays // so make sure to normalize catch-all values if (value && typeof value === 'string' && defaultRouteRegex.groups[key].repeat) { value = value.split('/'); } if (value) { params[key] = value; } } return { params, hasValidParams }; } function getServerUtils({ page, i18n, basePath, rewrites, pageIsDynamic, trailingSlash, caseSensitive }) { let defaultRouteRegex; let dynamicRouteMatcher; let defaultRouteMatches; if (pageIsDynamic) { defaultRouteRegex = (0, _routeregex.getNamedRouteRegex)(page, { prefixRouteKeys: false }); dynamicRouteMatcher = (0, _routematcher.getRouteMatcher)(defaultRouteRegex); defaultRouteMatches = dynamicRouteMatcher(page); } function handleRewrites(req, parsedUrl) { const rewriteParams = {}; let fsPathname = parsedUrl.pathname; const matchesPage = ()=>{ const fsPathnameNoSlash = (0, _removetrailingslash.removeTrailingSlash)(fsPathname || ''); return fsPathnameNoSlash === (0, _removetrailingslash.removeTrailingSlash)(page) || (dynamicRouteMatcher == null ? void 0 : dynamicRouteMatcher(fsPathnameNoSlash)); }; const checkRewrite = (rewrite)=>{ const matcher = (0, _pathmatch.getPathMatch)(rewrite.source + (trailingSlash ? '(/)?' : ''), { removeUnnamedParams: true, strict: true, sensitive: !!caseSensitive }); if (!parsedUrl.pathname) return false; let params = matcher(parsedUrl.pathname); if ((rewrite.has || rewrite.missing) && params) { const hasParams = (0, _preparedestination.matchHas)(req, parsedUrl.query, rewrite.has, rewrite.missing); if (hasParams) { Object.assign(params, hasParams); } else { params = false; } } if (params) { try { // An interception rewrite might reference a dynamic param for a route the user // is currently on, which wouldn't be extractable from the matched route params. // This attempts to extract the dynamic params from the provided router state. if ((0, _generateinterceptionroutesrewrites.isInterceptionRouteRewrite)(rewrite)) { const stateHeader = req.headers[_approuterheaders.NEXT_ROUTER_STATE_TREE_HEADER]; if (stateHeader) { params = { ...(0, _computechangedpath.getSelectedParams)((0, _parseandvalidateflightrouterstate.parseAndValidateFlightRouterState)(stateHeader)), ...params }; } } } catch (err) { // this is a no-op -- we couldn't extract dynamic params from the provided router state, // so we'll just use the params from the route matcher } const { parsedDestination, destQuery } = (0, _preparedestination.prepareDestination)({ appendParamsToQuery: true, destination: rewrite.destination, params: params, query: parsedUrl.query }); // if the rewrite destination is external break rewrite chain if (parsedDestination.protocol) { return true; } Object.assign(rewriteParams, destQuery, params); Object.assign(parsedUrl.query, parsedDestination.query); delete parsedDestination.query; // for each property in parsedUrl.query, if the value is parametrized (eg :foo), look up the value // in rewriteParams and replace the parametrized value with the actual value // this is used when the rewrite destination does not contain the original source param // and so the value is still parametrized and needs to be replaced with the actual rewrite param Object.entries(parsedUrl.query).forEach(([key, value])=>{ if (value && typeof value === 'string' && value.startsWith(':')) { const paramName = value.slice(1); const actualValue = rewriteParams[paramName]; if (actualValue) { parsedUrl.query[key] = actualValue; } } }); Object.assign(parsedUrl, parsedDestination); fsPathname = parsedUrl.pathname; if (!fsPathname) return false; if (basePath) { fsPathname = fsPathname.replace(new RegExp(`^${basePath}`), '') || '/'; } if (i18n) { const result = (0, _normalizelocalepath.normalizeLocalePath)(fsPathname, i18n.locales); fsPathname = result.pathname; parsedUrl.query.nextInternalLocale = result.detectedLocale || params.nextInternalLocale; } if (fsPathname === page) { return true; } if (pageIsDynamic && dynamicRouteMatcher) { const dynamicParams = dynamicRouteMatcher(fsPathname); if (dynamicParams) { parsedUrl.query = { ...parsedUrl.query, ...dynamicParams }; return true; } } } return false; }; for (const rewrite of rewrites.beforeFiles || []){ checkRewrite(rewrite); } if (fsPathname !== page) { let finished = false; for (const rewrite of rewrites.afterFiles || []){ finished = checkRewrite(rewrite); if (finished) break; } if (!finished && !matchesPage()) { for (const rewrite of rewrites.fallback || []){ finished = checkRewrite(rewrite); if (finished) break; } } } return rewriteParams; } function getParamsFromRouteMatches(routeMatchesHeader) { // If we don't have a default route regex, we can't get params from route // matches if (!defaultRouteRegex) return null; const { groups, routeKeys } = defaultRouteRegex; const matcher = (0, _routematcher.getRouteMatcher)({ re: { // Simulate a RegExp match from the \`req.url\` input exec: (str)=>{ // Normalize all the prefixed query params. const obj = Object.fromEntries(new URLSearchParams(str)); for (const [key, value] of Object.entries(obj)){ const normalizedKey = (0, _utils.normalizeNextQueryParam)(key); if (!normalizedKey) continue; obj[normalizedKey] = value; delete obj[key]; } // Use all the named route keys. const result = {}; for (const keyName of Object.keys(routeKeys)){ const paramName = routeKeys[keyName]; // If this param name is not a valid parameter name, then skip it. if (!paramName) continue; const group = groups[paramName]; const value = obj[keyName]; // When we're missing a required param, we can't match the route. if (!group.optional && !value) return null; result[group.pos] = value; } return result; } }, groups }); const routeMatches = matcher(routeMatchesHeader); if (!routeMatches) return null; return routeMatches; } function normalizeQueryParams(query, routeParamKeys) { // this is used to pass query information in rewrites // but should not be exposed in final query delete query['nextInternalLocale']; for (const [key, value] of Object.entries(query)){ const normalizedKey = (0, _utils.normalizeNextQueryParam)(key); if (!normalizedKey) continue; // Remove the prefixed key from the query params because we want // to consume it for the dynamic route matcher. delete query[key]; routeParamKeys.add(normalizedKey); if (typeof value === 'undefined') continue; query[normalizedKey] = Array.isArray(value) ? value.map((v)=>(0, _decodequerypathparameter.decodeQueryPathParameter)(v)) : (0, _decodequerypathparameter.decodeQueryPathParameter)(value); } } return { handleRewrites, defaultRouteRegex, dynamicRouteMatcher, defaultRouteMatches, normalizeQueryParams, getParamsFromRouteMatches, /** * Normalize dynamic route params. * * @param query - The query params to normalize. * @param ignoreMissingOptional - Whether to ignore missing optional params. * @returns The normalized params and whether they are valid. */ normalizeDynamicRouteParams: (query, ignoreMissingOptional)=>{ if (!defaultRouteRegex || !defaultRouteMatches) { return { params: {}, hasValidParams: false }; } return normalizeDynamicRouteParams(query, defaultRouteRegex, defaultRouteMatches, ignoreMissingOptional); }, normalizeCdnUrl: (req, paramKeys)=>normalizeCdnUrl(req, paramKeys), interpolateDynamicPath: (pathname, params)=>interpolateDynamicPath(pathname, params, defaultRouteRegex), filterInternalQuery: (query, paramKeys)=>filterInternalQuery(query, paramKeys) }; } function getPreviouslyRevalidatedTags(headers, previewModeId) { return typeof headers[_constants.NEXT_CACHE_REVALIDATED_TAGS_HEADER] === 'string' && headers[_constants.NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER] === previewModeId ? headers[_constants.NEXT_CACHE_REVALIDATED_TAGS_HEADER].split(',') : []; } //# sourceMappingURL=server-utils.js.map