Next.js website for Rocky Mountain Vending company featuring: - Product catalog with Stripe integration - Service areas and parts pages - Admin dashboard with Clerk authentication - SEO optimized pages with JSON-LD structured data Co-authored-by: Cursor <cursoragent@cursor.com>
1 line
No EOL
51 KiB
Text
1 line
No EOL
51 KiB
Text
{"version":3,"sources":["../../../src/server/route-modules/route-module.ts"],"sourcesContent":["import type { IncomingMessage, ServerResponse } from 'node:http'\nimport type {\n InstrumentationOnRequestError,\n RequestErrorContext,\n} from '../instrumentation/types'\nimport type { ParsedUrlQuery } from 'node:querystring'\nimport type { UrlWithParsedQuery } from 'node:url'\nimport type {\n PrerenderManifest,\n RequiredServerFilesManifest,\n} from '../../build'\nimport type { DevRoutesManifest } from '../lib/router-utils/setup-dev-bundler'\nimport type { RouteDefinition } from '../route-definitions/route-definition'\nimport type { DeepReadonly } from '../../shared/lib/deep-readonly'\nimport {\n BUILD_ID_FILE,\n BUILD_MANIFEST,\n CLIENT_REFERENCE_MANIFEST,\n DYNAMIC_CSS_MANIFEST,\n NEXT_FONT_MANIFEST,\n PRERENDER_MANIFEST,\n REACT_LOADABLE_MANIFEST,\n ROUTES_MANIFEST,\n SERVER_FILES_MANIFEST,\n SERVER_REFERENCE_MANIFEST,\n SUBRESOURCE_INTEGRITY_MANIFEST,\n} from '../../shared/lib/constants'\nimport { parseReqUrl } from '../../lib/url'\nimport {\n normalizeLocalePath,\n type PathLocale,\n} from '../../shared/lib/i18n/normalize-locale-path'\nimport { isDynamicRoute } from '../../shared/lib/router/utils'\nimport { removePathPrefix } from '../../shared/lib/router/utils/remove-path-prefix'\nimport { getServerUtils } from '../server-utils'\nimport { detectDomainLocale } from '../../shared/lib/i18n/detect-domain-locale'\nimport { getHostname } from '../../shared/lib/get-hostname'\nimport { checkIsOnDemandRevalidate } from '../api-utils'\nimport type { PreviewData } from '../../types'\nimport type { BuildManifest } from '../get-page-files'\nimport type { ReactLoadableManifest } from '../load-components'\nimport type { NextFontManifest } from '../../build/webpack/plugins/next-font-manifest-plugin'\nimport { normalizeDataPath } from '../../shared/lib/page-path/normalize-data-path'\nimport { pathHasPrefix } from '../../shared/lib/router/utils/path-has-prefix'\nimport { addRequestMeta, getRequestMeta } from '../request-meta'\nimport { normalizePagePath } from '../../shared/lib/page-path/normalize-page-path'\nimport { isStaticMetadataRoute } from '../../lib/metadata/is-metadata-route'\nimport { IncrementalCache } from '../lib/incremental-cache'\nimport { initializeCacheHandlers, setCacheHandler } from '../use-cache/handlers'\nimport { interopDefault } from '../app-render/interop-default'\nimport { RouteKind } from '../route-kind'\nimport type { BaseNextRequest } from '../base-http'\nimport type { I18NConfig, NextConfigComplete } from '../config-shared'\nimport ResponseCache, { type ResponseGenerator } from '../response-cache'\nimport { normalizeAppPath } from '../../shared/lib/router/utils/app-paths'\nimport {\n RouterServerContextSymbol,\n routerServerGlobal,\n type RouterServerContext,\n} from '../lib/router-utils/router-server-context'\nimport { decodePathParams } from '../lib/router-utils/decode-path-params'\nimport { removeTrailingSlash } from '../../shared/lib/router/utils/remove-trailing-slash'\nimport { isInterceptionRouteRewrite } from '../../lib/generate-interception-routes-rewrites'\n\n/**\n * RouteModuleOptions is the options that are passed to the route module, other\n * route modules should extend this class to add specific options for their\n * route.\n */\nexport interface RouteModuleOptions<\n D extends RouteDefinition = RouteDefinition,\n U = unknown,\n> {\n readonly definition: Readonly<D>\n readonly userland: Readonly<U>\n readonly distDir: string\n readonly relativeProjectDir: string\n}\n\n/**\n * RouteHandlerContext is the base context for a route handler.\n */\nexport interface RouteModuleHandleContext {\n /**\n * Any matched parameters for the request. This is only defined for dynamic\n * routes.\n */\n params: Record<string, string | string[] | undefined> | undefined\n}\n\nconst dynamicImportEsmDefault = (id: string) =>\n import(/* webpackIgnore: true */ /* turbopackIgnore: true */ id).then(\n (mod) => mod.default || mod\n )\n\n/**\n * RouteModule is the base class for all route modules. This class should be\n * extended by all route modules.\n */\nexport abstract class RouteModule<\n D extends RouteDefinition = RouteDefinition,\n U = unknown,\n> {\n /**\n * The userland module. This is the module that is exported from the user's\n * code. This is marked as readonly to ensure that the module is not mutated\n * because the module (when compiled) only provides getters.\n */\n public readonly userland: Readonly<U>\n\n /**\n * The definition of the route.\n */\n public readonly definition: Readonly<D>\n\n /**\n * The shared modules that are exposed and required for the route module.\n */\n public static readonly sharedModules: any\n\n public isDev: boolean\n public distDir: string\n public relativeProjectDir: string\n public incrementCache?: IncrementalCache\n public responseCache?: ResponseCache\n\n constructor({\n userland,\n definition,\n distDir,\n relativeProjectDir,\n }: RouteModuleOptions<D, U>) {\n this.userland = userland\n this.definition = definition\n this.isDev = process.env.NODE_ENV === 'development'\n this.distDir = distDir\n this.relativeProjectDir = relativeProjectDir\n }\n\n public async instrumentationOnRequestError(\n req: IncomingMessage | BaseNextRequest,\n ...args: Parameters<InstrumentationOnRequestError>\n ) {\n if (process.env.NEXT_RUNTIME === 'edge') {\n const { getEdgeInstrumentationModule } = await import('../web/globals')\n const instrumentation = await getEdgeInstrumentationModule()\n\n if (instrumentation) {\n await instrumentation.onRequestError?.(...args)\n }\n } else {\n const { join } = require('node:path') as typeof import('node:path')\n const absoluteProjectDir = join(\n /* turbopackIgnore: true */\n process.cwd(),\n getRequestMeta(req, 'relativeProjectDir') || this.relativeProjectDir\n )\n\n const { instrumentationOnRequestError } = await import(\n '../lib/router-utils/instrumentation-globals.external.js'\n )\n\n return instrumentationOnRequestError(\n absoluteProjectDir,\n this.distDir,\n ...args\n )\n }\n }\n\n private loadManifests(\n srcPage: string,\n projectDir?: string\n ): {\n buildId: string\n buildManifest: BuildManifest\n fallbackBuildManifest: BuildManifest\n routesManifest: DeepReadonly<DevRoutesManifest>\n nextFontManifest: DeepReadonly<NextFontManifest>\n prerenderManifest: DeepReadonly<PrerenderManifest>\n serverFilesManifest: RequiredServerFilesManifest\n reactLoadableManifest: DeepReadonly<ReactLoadableManifest>\n subresourceIntegrityManifest: any\n clientReferenceManifest: any\n serverActionsManifest: any\n dynamicCssManifest: any\n interceptionRoutePatterns: RegExp[]\n } {\n if (process.env.NEXT_RUNTIME === 'edge') {\n const { getEdgePreviewProps } =\n require('../web/get-edge-preview-props') as typeof import('../web/get-edge-preview-props')\n\n const maybeJSONParse = (str?: string) =>\n str ? JSON.parse(str) : undefined\n\n return {\n buildId: process.env.__NEXT_BUILD_ID || '',\n buildManifest: self.__BUILD_MANIFEST as any,\n fallbackBuildManifest: {} as any,\n reactLoadableManifest: maybeJSONParse(self.__REACT_LOADABLE_MANIFEST),\n nextFontManifest: maybeJSONParse(self.__NEXT_FONT_MANIFEST),\n prerenderManifest: {\n routes: {},\n dynamicRoutes: {},\n notFoundRoutes: [],\n version: 4,\n preview: getEdgePreviewProps(),\n },\n routesManifest: {\n version: 4,\n caseSensitive: Boolean(process.env.__NEXT_CASE_SENSITIVE_ROUTES),\n basePath: process.env.__NEXT_BASE_PATH || '',\n rewrites: (process.env.__NEXT_REWRITES as any) || {\n beforeFiles: [],\n afterFiles: [],\n fallback: [],\n },\n redirects: [],\n headers: [],\n i18n:\n (process.env.__NEXT_I18N_CONFIG as any as I18NConfig) || undefined,\n skipProxyUrlNormalize: Boolean(\n process.env.__NEXT_NO_MIDDLEWARE_URL_NORMALIZE\n ),\n },\n serverFilesManifest: {\n config: (globalThis as any).nextConfig || {},\n } as any,\n clientReferenceManifest: self.__RSC_MANIFEST?.[srcPage],\n serverActionsManifest: maybeJSONParse(self.__RSC_SERVER_MANIFEST),\n subresourceIntegrityManifest: maybeJSONParse(\n self.__SUBRESOURCE_INTEGRITY_MANIFEST\n ),\n dynamicCssManifest: maybeJSONParse(self.__DYNAMIC_CSS_MANIFEST),\n interceptionRoutePatterns: (\n maybeJSONParse(self.__INTERCEPTION_ROUTE_REWRITE_MANIFEST) ?? []\n ).map((rewrite: any) => new RegExp(rewrite.regex)),\n }\n } else {\n if (!projectDir) {\n throw new Error('Invariant: projectDir is required for node runtime')\n }\n const { loadManifestFromRelativePath } =\n require('../load-manifest.external') as typeof import('../load-manifest.external')\n const normalizedPagePath = normalizePagePath(srcPage)\n\n const router =\n this.definition.kind === RouteKind.PAGES ||\n this.definition.kind === RouteKind.PAGES_API\n ? 'pages'\n : 'app'\n\n const [\n routesManifest,\n prerenderManifest,\n buildManifest,\n fallbackBuildManifest,\n reactLoadableManifest,\n nextFontManifest,\n clientReferenceManifest,\n serverActionsManifest,\n subresourceIntegrityManifest,\n serverFilesManifest,\n buildId,\n dynamicCssManifest,\n ] = [\n loadManifestFromRelativePath<DevRoutesManifest>({\n projectDir,\n distDir: this.distDir,\n manifest: ROUTES_MANIFEST,\n shouldCache: !this.isDev,\n }),\n loadManifestFromRelativePath<PrerenderManifest>({\n projectDir,\n distDir: this.distDir,\n manifest: PRERENDER_MANIFEST,\n shouldCache: !this.isDev,\n }),\n loadManifestFromRelativePath<BuildManifest>({\n projectDir,\n distDir: this.distDir,\n manifest: BUILD_MANIFEST,\n shouldCache: !this.isDev,\n }),\n srcPage === '/_error'\n ? loadManifestFromRelativePath<BuildManifest>({\n projectDir,\n distDir: this.distDir,\n manifest: `fallback-${BUILD_MANIFEST}`,\n shouldCache: !this.isDev,\n handleMissing: true,\n })\n : ({} as BuildManifest),\n loadManifestFromRelativePath<ReactLoadableManifest>({\n projectDir,\n distDir: this.distDir,\n manifest: process.env.TURBOPACK\n ? `server/${router === 'app' ? 'app' : 'pages'}${normalizedPagePath}/${REACT_LOADABLE_MANIFEST}`\n : REACT_LOADABLE_MANIFEST,\n handleMissing: true,\n shouldCache: !this.isDev,\n }),\n loadManifestFromRelativePath<NextFontManifest>({\n projectDir,\n distDir: this.distDir,\n manifest: `server/${NEXT_FONT_MANIFEST}.json`,\n shouldCache: !this.isDev,\n }),\n router === 'app' && !isStaticMetadataRoute(srcPage)\n ? loadManifestFromRelativePath({\n distDir: this.distDir,\n projectDir,\n useEval: true,\n handleMissing: true,\n manifest: `server/app${srcPage.replace(/%5F/g, '_') + '_' + CLIENT_REFERENCE_MANIFEST}.js`,\n shouldCache: !this.isDev,\n })\n : undefined,\n router === 'app'\n ? loadManifestFromRelativePath<any>({\n distDir: this.distDir,\n projectDir,\n manifest: `server/${SERVER_REFERENCE_MANIFEST}.json`,\n handleMissing: true,\n shouldCache: !this.isDev,\n })\n : {},\n loadManifestFromRelativePath<Record<string, string>>({\n projectDir,\n distDir: this.distDir,\n manifest: `server/${SUBRESOURCE_INTEGRITY_MANIFEST}.json`,\n handleMissing: true,\n shouldCache: !this.isDev,\n }),\n this.isDev\n ? ({} as any)\n : loadManifestFromRelativePath<RequiredServerFilesManifest>({\n projectDir,\n distDir: this.distDir,\n manifest: SERVER_FILES_MANIFEST,\n }),\n this.isDev\n ? 'development'\n : loadManifestFromRelativePath<any>({\n projectDir,\n distDir: this.distDir,\n manifest: BUILD_ID_FILE,\n skipParse: true,\n }),\n loadManifestFromRelativePath<any>({\n projectDir,\n distDir: this.distDir,\n manifest: DYNAMIC_CSS_MANIFEST,\n handleMissing: true,\n }),\n ]\n\n return {\n buildId,\n buildManifest,\n fallbackBuildManifest,\n routesManifest,\n nextFontManifest,\n prerenderManifest,\n serverFilesManifest,\n reactLoadableManifest,\n clientReferenceManifest: (clientReferenceManifest as any)\n ?.__RSC_MANIFEST?.[srcPage.replace(/%5F/g, '_')],\n serverActionsManifest,\n subresourceIntegrityManifest,\n dynamicCssManifest,\n interceptionRoutePatterns: routesManifest.rewrites.beforeFiles\n .filter(isInterceptionRouteRewrite)\n .map((rewrite) => new RegExp(rewrite.regex)),\n }\n }\n }\n\n public async loadCustomCacheHandlers(\n req: IncomingMessage | BaseNextRequest,\n nextConfig: NextConfigComplete\n ) {\n if (process.env.NEXT_RUNTIME !== 'edge') {\n const { cacheMaxMemorySize, cacheHandlers } = nextConfig\n if (!cacheHandlers) return\n\n // If we've already initialized the cache handlers interface, don't do it\n // again.\n if (!initializeCacheHandlers(cacheMaxMemorySize)) return\n\n for (const [kind, handler] of Object.entries(cacheHandlers)) {\n if (!handler) continue\n\n const { formatDynamicImportPath } =\n require('../../lib/format-dynamic-import-path') as typeof import('../../lib/format-dynamic-import-path')\n\n const { join } = require('node:path') as typeof import('node:path')\n const absoluteProjectDir = join(\n /* turbopackIgnore: true */\n process.cwd(),\n getRequestMeta(req, 'relativeProjectDir') || this.relativeProjectDir\n )\n\n setCacheHandler(\n kind,\n interopDefault(\n await dynamicImportEsmDefault(\n formatDynamicImportPath(\n `${absoluteProjectDir}/${this.distDir}`,\n handler\n )\n )\n )\n )\n }\n }\n }\n\n public async getIncrementalCache(\n req: IncomingMessage | BaseNextRequest,\n nextConfig: NextConfigComplete,\n prerenderManifest: DeepReadonly<PrerenderManifest>,\n isMinimalMode: boolean\n ): Promise<IncrementalCache> {\n if (process.env.NEXT_RUNTIME === 'edge') {\n return (globalThis as any).__incrementalCache\n } else {\n let CacheHandler: any\n const { cacheHandler } = nextConfig\n\n if (cacheHandler) {\n const { formatDynamicImportPath } =\n require('../../lib/format-dynamic-import-path') as typeof import('../../lib/format-dynamic-import-path')\n\n CacheHandler = interopDefault(\n await dynamicImportEsmDefault(\n formatDynamicImportPath(this.distDir, cacheHandler)\n )\n )\n }\n const { join } = require('node:path') as typeof import('node:path')\n const projectDir = join(\n /* turbopackIgnore: true */\n process.cwd(),\n getRequestMeta(req, 'relativeProjectDir') || this.relativeProjectDir\n )\n\n await this.loadCustomCacheHandlers(req, nextConfig)\n\n // incremental-cache is request specific\n // although can have shared caches in module scope\n // per-cache handler\n const incrementalCache = new IncrementalCache({\n fs: (\n require('../lib/node-fs-methods') as typeof import('../lib/node-fs-methods')\n ).nodeFs,\n dev: this.isDev,\n requestHeaders: req.headers,\n allowedRevalidateHeaderKeys:\n nextConfig.experimental.allowedRevalidateHeaderKeys,\n minimalMode: isMinimalMode,\n serverDistDir: `${projectDir}/${this.distDir}/server`,\n fetchCacheKeyPrefix: nextConfig.experimental.fetchCacheKeyPrefix,\n maxMemoryCacheSize: nextConfig.cacheMaxMemorySize,\n flushToDisk: !isMinimalMode && nextConfig.experimental.isrFlushToDisk,\n getPrerenderManifest: () => prerenderManifest,\n CurCacheHandler: CacheHandler,\n })\n\n // we need to expose this on globalThis as the app-render\n // workStore grabs the incrementalCache from there\n ;(globalThis as any).__incrementalCache = incrementalCache\n return incrementalCache\n }\n }\n\n public async onRequestError(\n req: IncomingMessage | BaseNextRequest,\n err: unknown,\n errorContext: RequestErrorContext,\n routerServerContext?: RouterServerContext[string]\n ) {\n if (routerServerContext?.logErrorWithOriginalStack) {\n routerServerContext.logErrorWithOriginalStack(err, 'app-dir')\n } else {\n console.error(err)\n }\n await this.instrumentationOnRequestError(\n req,\n err,\n {\n path: req.url || '/',\n headers: req.headers,\n method: req.method || 'GET',\n },\n errorContext\n )\n }\n\n public async prepare(\n req: IncomingMessage | BaseNextRequest,\n res: ServerResponse | null,\n {\n srcPage,\n multiZoneDraftMode,\n }: {\n srcPage: string\n multiZoneDraftMode?: boolean\n }\n ): Promise<\n | {\n buildId: string\n locale?: string\n locales?: readonly string[]\n defaultLocale?: string\n query: ParsedUrlQuery\n originalQuery: ParsedUrlQuery\n originalPathname: string\n params?: ParsedUrlQuery\n parsedUrl: UrlWithParsedQuery\n previewData: PreviewData\n pageIsDynamic: boolean\n isDraftMode: boolean\n resolvedPathname: string\n encodedResolvedPathname: string\n isNextDataRequest: boolean\n buildManifest: DeepReadonly<BuildManifest>\n fallbackBuildManifest: DeepReadonly<BuildManifest>\n nextFontManifest: DeepReadonly<NextFontManifest>\n serverFilesManifest: DeepReadonly<RequiredServerFilesManifest>\n reactLoadableManifest: DeepReadonly<ReactLoadableManifest>\n routesManifest: DeepReadonly<DevRoutesManifest>\n prerenderManifest: DeepReadonly<PrerenderManifest>\n // we can't pull in the client reference type or it causes issues with\n // our pre-compiled types\n clientReferenceManifest?: any\n serverActionsManifest?: any\n dynamicCssManifest?: any\n subresourceIntegrityManifest?: DeepReadonly<Record<string, string>>\n isOnDemandRevalidate: boolean\n revalidateOnlyGenerated: boolean\n nextConfig: NextConfigComplete\n routerServerContext?: RouterServerContext[string]\n interceptionRoutePatterns?: any\n }\n | undefined\n > {\n let absoluteProjectDir: string | undefined\n\n // edge runtime handles loading instrumentation at the edge adapter level\n if (process.env.NEXT_RUNTIME !== 'edge') {\n const { join, relative } =\n require('node:path') as typeof import('node:path')\n\n absoluteProjectDir = join(\n /* turbopackIgnore: true */\n process.cwd(),\n getRequestMeta(req, 'relativeProjectDir') || this.relativeProjectDir\n )\n\n const absoluteDistDir = getRequestMeta(req, 'distDir')\n\n if (absoluteDistDir) {\n this.distDir = relative(absoluteProjectDir, absoluteDistDir)\n }\n const { ensureInstrumentationRegistered } = await import(\n '../lib/router-utils/instrumentation-globals.external.js'\n )\n // ensure instrumentation is registered and pass\n // onRequestError below\n ensureInstrumentationRegistered(absoluteProjectDir, this.distDir)\n }\n const manifests = await this.loadManifests(srcPage, absoluteProjectDir)\n const { routesManifest, prerenderManifest, serverFilesManifest } = manifests\n\n const { basePath, i18n, rewrites } = routesManifest\n\n if (basePath) {\n req.url = removePathPrefix(req.url || '/', basePath)\n }\n\n const parsedUrl = parseReqUrl(req.url || '/')\n // if we couldn't parse the URL we can't continue\n if (!parsedUrl) {\n return\n }\n let isNextDataRequest = false\n\n if (pathHasPrefix(parsedUrl.pathname || '/', '/_next/data')) {\n isNextDataRequest = true\n parsedUrl.pathname = normalizeDataPath(parsedUrl.pathname || '/')\n }\n let originalPathname = parsedUrl.pathname || '/'\n const originalQuery = { ...parsedUrl.query }\n const pageIsDynamic = isDynamicRoute(srcPage)\n\n let localeResult: PathLocale | undefined\n let detectedLocale: string | undefined\n\n if (i18n) {\n localeResult = normalizeLocalePath(\n parsedUrl.pathname || '/',\n i18n.locales\n )\n\n if (localeResult.detectedLocale) {\n req.url = `${localeResult.pathname}${parsedUrl.search}`\n originalPathname = localeResult.pathname\n\n if (!detectedLocale) {\n detectedLocale = localeResult.detectedLocale\n }\n }\n }\n\n // Normalize the page path for route matching. The srcPage contains the\n // internal page path (e.g., /app/[slug]/page), but route matchers expect\n // the pathname format (e.g., /app/[slug]).\n const normalizedSrcPage = normalizeAppPath(srcPage)\n\n const serverUtils = getServerUtils({\n page: normalizedSrcPage,\n i18n,\n basePath,\n rewrites,\n pageIsDynamic,\n trailingSlash: process.env.__NEXT_TRAILING_SLASH as any as boolean,\n caseSensitive: Boolean(routesManifest.caseSensitive),\n })\n\n const domainLocale = detectDomainLocale(\n i18n?.domains,\n getHostname(parsedUrl, req.headers),\n detectedLocale\n )\n addRequestMeta(req, 'isLocaleDomain', Boolean(domainLocale))\n\n const defaultLocale = domainLocale?.defaultLocale || i18n?.defaultLocale\n\n // Ensure parsedUrl.pathname includes locale before processing\n // rewrites or they won't match correctly.\n if (defaultLocale && !detectedLocale) {\n parsedUrl.pathname = `/${defaultLocale}${parsedUrl.pathname === '/' ? '' : parsedUrl.pathname}`\n }\n const locale =\n getRequestMeta(req, 'locale') || detectedLocale || defaultLocale\n\n // we apply rewrites against cloned URL so that we don't\n // modify the original with the rewrite destination\n const { rewriteParams, rewrittenParsedUrl } = serverUtils.handleRewrites(\n req,\n parsedUrl\n )\n const rewriteParamKeys = Object.keys(rewriteParams)\n Object.assign(parsedUrl.query, rewrittenParsedUrl.query)\n\n // after processing rewrites we want to remove locale\n // from parsedUrl pathname\n if (i18n) {\n parsedUrl.pathname = normalizeLocalePath(\n parsedUrl.pathname || '/',\n i18n.locales\n ).pathname\n\n rewrittenParsedUrl.pathname = normalizeLocalePath(\n rewrittenParsedUrl.pathname || '/',\n i18n.locales\n ).pathname\n }\n\n let params: Record<string, undefined | string | string[]> | undefined =\n getRequestMeta(req, 'params')\n\n // attempt parsing from pathname\n if (!params && serverUtils.dynamicRouteMatcher) {\n const paramsMatch = serverUtils.dynamicRouteMatcher(\n normalizeDataPath(\n rewrittenParsedUrl?.pathname || parsedUrl.pathname || '/'\n )\n )\n const paramsResult = serverUtils.normalizeDynamicRouteParams(\n paramsMatch || {},\n true\n )\n\n if (paramsResult.hasValidParams) {\n params = paramsResult.params\n }\n }\n\n // Local \"next start\" expects the routing parsed query values\n // to not be present in the URL although when deployed proxies\n // will add query values from resolving the routes to pass to function.\n\n // TODO: do we want to change expectations for \"next start\"\n // to include these query values in the URL which affects asPath\n // but would match deployed behavior, e.g. a rewrite from middleware\n // that adds a query param would be in asPath as query but locally\n // it won't be in the asPath but still available in the query object\n const query = getRequestMeta(req, 'query') || {\n ...parsedUrl.query,\n }\n\n const routeParamKeys = new Set<string>()\n const combinedParamKeys = []\n\n // We don't include rewriteParamKeys in the combinedParamKeys\n // for app router since the searchParams is populated from the\n // URL so we don't want to strip the rewrite params from the URL\n // so that searchParams can include them.\n if (\n this.definition.kind === RouteKind.PAGES ||\n this.definition.kind === RouteKind.PAGES_API\n ) {\n for (const key of [\n ...rewriteParamKeys,\n ...Object.keys(serverUtils.defaultRouteMatches || {}),\n ]) {\n // We only want to filter rewrite param keys from the URL\n // if they are matches from the URL e.g. the key/value matches\n // before and after applying the rewrites /:path for /hello and\n // { path: 'hello' } but not for { path: 'another' } and /hello\n // TODO: we should prefix rewrite param keys the same as we do\n // for dynamic routes so we can identify them properly\n const originalValue = Array.isArray(originalQuery[key])\n ? originalQuery[key].join('')\n : originalQuery[key]\n\n const queryValue = Array.isArray(query[key])\n ? query[key].join('')\n : query[key]\n\n if (!(key in originalQuery) || originalValue === queryValue) {\n combinedParamKeys.push(key)\n }\n }\n }\n\n serverUtils.normalizeCdnUrl(req, combinedParamKeys)\n serverUtils.normalizeQueryParams(query, routeParamKeys)\n serverUtils.filterInternalQuery(originalQuery, combinedParamKeys)\n\n if (pageIsDynamic) {\n const queryResult = serverUtils.normalizeDynamicRouteParams(query, true)\n\n const paramsResult = serverUtils.normalizeDynamicRouteParams(\n params || {},\n true\n )\n\n let paramsToInterpolate: ParsedUrlQuery\n\n if (\n // if both query and params are valid but one\n // provided more information rely on that one\n query &&\n params &&\n paramsResult.hasValidParams &&\n queryResult.hasValidParams &&\n Object.keys(paramsResult.params).length <\n Object.keys(queryResult.params).length\n ) {\n paramsToInterpolate = queryResult.params\n params = Object.assign(queryResult.params)\n } else {\n paramsToInterpolate =\n paramsResult.hasValidParams && params\n ? params\n : queryResult.hasValidParams\n ? query\n : {}\n }\n\n req.url = serverUtils.interpolateDynamicPath(\n req.url || '/',\n paramsToInterpolate\n )\n parsedUrl.pathname = serverUtils.interpolateDynamicPath(\n parsedUrl.pathname || '/',\n paramsToInterpolate\n )\n originalPathname = serverUtils.interpolateDynamicPath(\n originalPathname,\n paramsToInterpolate\n )\n\n // try pulling from query if valid\n if (!params) {\n if (queryResult.hasValidParams) {\n params = Object.assign({}, queryResult.params)\n\n // If we pulled from query remove it so it's\n // only in params\n for (const key in serverUtils.defaultRouteMatches) {\n delete query[key]\n }\n } else {\n // use final params from URL matching\n const paramsMatch = serverUtils.dynamicRouteMatcher?.(\n normalizeDataPath(\n localeResult?.pathname || parsedUrl.pathname || '/'\n )\n )\n // we don't normalize these as they are allowed to be\n // the literal slug matches here e.g. /blog/[slug]\n // actually being requested\n if (paramsMatch) {\n params = Object.assign({}, paramsMatch)\n }\n }\n }\n }\n\n // Remove any normalized params from the query if they\n // weren't present as non-prefixed query key e.g.\n // ?search=1&nxtPsearch=hello we don't delete search\n for (const key of routeParamKeys) {\n if (!(key in originalQuery)) {\n delete query[key]\n }\n }\n\n const { isOnDemandRevalidate, revalidateOnlyGenerated } =\n checkIsOnDemandRevalidate(req, prerenderManifest.preview)\n\n let isDraftMode = false\n let previewData: PreviewData\n\n // preview data relies on non-edge utils\n if (process.env.NEXT_RUNTIME !== 'edge' && res) {\n const { tryGetPreviewData } =\n require('../api-utils/node/try-get-preview-data') as typeof import('../api-utils/node/try-get-preview-data')\n\n previewData = tryGetPreviewData(\n req,\n res,\n prerenderManifest.preview,\n Boolean(multiZoneDraftMode)\n )\n isDraftMode = previewData !== false\n }\n\n const relativeProjectDir =\n getRequestMeta(req, 'relativeProjectDir') || this.relativeProjectDir\n\n const routerServerContext =\n routerServerGlobal[RouterServerContextSymbol]?.[relativeProjectDir]\n const nextConfig =\n routerServerContext?.nextConfig || serverFilesManifest.config\n\n let resolvedPathname = normalizedSrcPage\n if (isDynamicRoute(resolvedPathname) && params) {\n resolvedPathname = serverUtils.interpolateDynamicPath(\n resolvedPathname,\n params\n )\n }\n\n if (resolvedPathname === '/index') {\n resolvedPathname = '/'\n }\n const encodedResolvedPathname = resolvedPathname\n\n // we decode for cache key/manifest usage encoded is\n // for URL building\n try {\n resolvedPathname = decodePathParams(resolvedPathname)\n } catch (_) {}\n\n resolvedPathname = removeTrailingSlash(resolvedPathname)\n\n return {\n query,\n originalQuery,\n originalPathname,\n params,\n parsedUrl,\n locale,\n isNextDataRequest,\n locales: i18n?.locales,\n defaultLocale,\n isDraftMode,\n previewData,\n pageIsDynamic,\n resolvedPathname,\n encodedResolvedPathname,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n ...manifests,\n serverActionsManifest: manifests.serverActionsManifest,\n clientReferenceManifest: manifests.clientReferenceManifest,\n nextConfig,\n routerServerContext,\n }\n }\n\n public getResponseCache(req: IncomingMessage | BaseNextRequest) {\n if (!this.responseCache) {\n const minimalMode =\n (Boolean(process.env.MINIMAL_MODE) ||\n getRequestMeta(req, 'minimalMode')) ??\n false\n this.responseCache = new ResponseCache(minimalMode)\n }\n return this.responseCache\n }\n\n public async handleResponse({\n req,\n nextConfig,\n cacheKey,\n routeKind,\n isFallback,\n prerenderManifest,\n isRoutePPREnabled,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n responseGenerator,\n waitUntil,\n isMinimalMode,\n }: {\n req: IncomingMessage | BaseNextRequest\n nextConfig: NextConfigComplete\n cacheKey: string | null\n routeKind: RouteKind\n isFallback?: boolean\n prerenderManifest: DeepReadonly<PrerenderManifest>\n isRoutePPREnabled?: boolean\n isOnDemandRevalidate?: boolean\n revalidateOnlyGenerated?: boolean\n responseGenerator: ResponseGenerator\n waitUntil?: (prom: Promise<any>) => void\n isMinimalMode: boolean\n }) {\n const responseCache = this.getResponseCache(req)\n const cacheEntry = await responseCache.get(cacheKey, responseGenerator, {\n routeKind,\n isFallback,\n isRoutePPREnabled,\n isOnDemandRevalidate,\n isPrefetch: req.headers.purpose === 'prefetch',\n incrementalCache: await this.getIncrementalCache(\n req,\n nextConfig,\n prerenderManifest,\n isMinimalMode\n ),\n waitUntil,\n })\n\n if (!cacheEntry) {\n if (\n cacheKey &&\n // revalidate only generated can bail even if cacheKey is provided\n !(isOnDemandRevalidate && revalidateOnlyGenerated)\n ) {\n // A cache entry might not be generated if a response is written\n // in `getInitialProps` or `getServerSideProps`, but those shouldn't\n // have a cache key. If we do have a cache key but we don't end up\n // with a cache entry, then either Next.js or the application has a\n // bug that needs fixing.\n throw new Error('invariant: cache entry required but not generated')\n }\n }\n return cacheEntry\n }\n}\n"],"names":["RouteModule","dynamicImportEsmDefault","id","then","mod","default","constructor","userland","definition","distDir","relativeProjectDir","isDev","process","env","NODE_ENV","instrumentationOnRequestError","req","args","NEXT_RUNTIME","getEdgeInstrumentationModule","instrumentation","onRequestError","join","require","absoluteProjectDir","cwd","getRequestMeta","loadManifests","srcPage","projectDir","self","getEdgePreviewProps","maybeJSONParse","str","JSON","parse","undefined","buildId","__NEXT_BUILD_ID","buildManifest","__BUILD_MANIFEST","fallbackBuildManifest","reactLoadableManifest","__REACT_LOADABLE_MANIFEST","nextFontManifest","__NEXT_FONT_MANIFEST","prerenderManifest","routes","dynamicRoutes","notFoundRoutes","version","preview","routesManifest","caseSensitive","Boolean","__NEXT_CASE_SENSITIVE_ROUTES","basePath","__NEXT_BASE_PATH","rewrites","__NEXT_REWRITES","beforeFiles","afterFiles","fallback","redirects","headers","i18n","__NEXT_I18N_CONFIG","skipProxyUrlNormalize","__NEXT_NO_MIDDLEWARE_URL_NORMALIZE","serverFilesManifest","config","globalThis","nextConfig","clientReferenceManifest","__RSC_MANIFEST","serverActionsManifest","__RSC_SERVER_MANIFEST","subresourceIntegrityManifest","__SUBRESOURCE_INTEGRITY_MANIFEST","dynamicCssManifest","__DYNAMIC_CSS_MANIFEST","interceptionRoutePatterns","__INTERCEPTION_ROUTE_REWRITE_MANIFEST","map","rewrite","RegExp","regex","Error","loadManifestFromRelativePath","normalizedPagePath","normalizePagePath","router","kind","RouteKind","PAGES","PAGES_API","manifest","ROUTES_MANIFEST","shouldCache","PRERENDER_MANIFEST","BUILD_MANIFEST","handleMissing","TURBOPACK","REACT_LOADABLE_MANIFEST","NEXT_FONT_MANIFEST","isStaticMetadataRoute","useEval","replace","CLIENT_REFERENCE_MANIFEST","SERVER_REFERENCE_MANIFEST","SUBRESOURCE_INTEGRITY_MANIFEST","SERVER_FILES_MANIFEST","BUILD_ID_FILE","skipParse","DYNAMIC_CSS_MANIFEST","filter","isInterceptionRouteRewrite","loadCustomCacheHandlers","cacheMaxMemorySize","cacheHandlers","initializeCacheHandlers","handler","Object","entries","formatDynamicImportPath","setCacheHandler","interopDefault","getIncrementalCache","isMinimalMode","__incrementalCache","CacheHandler","cacheHandler","incrementalCache","IncrementalCache","fs","nodeFs","dev","requestHeaders","allowedRevalidateHeaderKeys","experimental","minimalMode","serverDistDir","fetchCacheKeyPrefix","maxMemoryCacheSize","flushToDisk","isrFlushToDisk","getPrerenderManifest","CurCacheHandler","err","errorContext","routerServerContext","logErrorWithOriginalStack","console","error","path","url","method","prepare","res","multiZoneDraftMode","routerServerGlobal","relative","absoluteDistDir","ensureInstrumentationRegistered","manifests","removePathPrefix","parsedUrl","parseReqUrl","isNextDataRequest","pathHasPrefix","pathname","normalizeDataPath","originalPathname","originalQuery","query","pageIsDynamic","isDynamicRoute","localeResult","detectedLocale","normalizeLocalePath","locales","search","normalizedSrcPage","normalizeAppPath","serverUtils","getServerUtils","page","trailingSlash","__NEXT_TRAILING_SLASH","domainLocale","detectDomainLocale","domains","getHostname","addRequestMeta","defaultLocale","locale","rewriteParams","rewrittenParsedUrl","handleRewrites","rewriteParamKeys","keys","assign","params","dynamicRouteMatcher","paramsMatch","paramsResult","normalizeDynamicRouteParams","hasValidParams","routeParamKeys","Set","combinedParamKeys","key","defaultRouteMatches","originalValue","Array","isArray","queryValue","push","normalizeCdnUrl","normalizeQueryParams","filterInternalQuery","queryResult","paramsToInterpolate","length","interpolateDynamicPath","isOnDemandRevalidate","revalidateOnlyGenerated","checkIsOnDemandRevalidate","isDraftMode","previewData","tryGetPreviewData","RouterServerContextSymbol","resolvedPathname","encodedResolvedPathname","decodePathParams","_","removeTrailingSlash","getResponseCache","responseCache","MINIMAL_MODE","ResponseCache","handleResponse","cacheKey","routeKind","isFallback","isRoutePPREnabled","responseGenerator","waitUntil","cacheEntry","get","isPrefetch","purpose"],"mappings":"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","ignoreList":[0]} |