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":["BUILD_ID_FILE","BUILD_MANIFEST","CLIENT_REFERENCE_MANIFEST","DYNAMIC_CSS_MANIFEST","NEXT_FONT_MANIFEST","PRERENDER_MANIFEST","REACT_LOADABLE_MANIFEST","ROUTES_MANIFEST","SERVER_FILES_MANIFEST","SERVER_REFERENCE_MANIFEST","SUBRESOURCE_INTEGRITY_MANIFEST","parseReqUrl","normalizeLocalePath","isDynamicRoute","removePathPrefix","getServerUtils","detectDomainLocale","getHostname","checkIsOnDemandRevalidate","normalizeDataPath","pathHasPrefix","addRequestMeta","getRequestMeta","normalizePagePath","isStaticMetadataRoute","IncrementalCache","initializeCacheHandlers","setCacheHandler","interopDefault","RouteKind","ResponseCache","normalizeAppPath","RouterServerContextSymbol","routerServerGlobal","decodePathParams","removeTrailingSlash","isInterceptionRouteRewrite","dynamicImportEsmDefault","id","then","mod","default","RouteModule","constructor","userland","definition","distDir","relativeProjectDir","isDev","process","env","NODE_ENV","instrumentationOnRequestError","req","args","NEXT_RUNTIME","getEdgeInstrumentationModule","instrumentation","onRequestError","join","require","absoluteProjectDir","cwd","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","router","kind","PAGES","PAGES_API","manifest","shouldCache","handleMissing","TURBOPACK","useEval","replace","skipParse","filter","loadCustomCacheHandlers","cacheMaxMemorySize","cacheHandlers","handler","Object","entries","formatDynamicImportPath","getIncrementalCache","isMinimalMode","__incrementalCache","CacheHandler","cacheHandler","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","relative","absoluteDistDir","ensureInstrumentationRegistered","manifests","parsedUrl","isNextDataRequest","pathname","originalPathname","originalQuery","query","pageIsDynamic","localeResult","detectedLocale","locales","search","normalizedSrcPage","serverUtils","page","trailingSlash","__NEXT_TRAILING_SLASH","domainLocale","domains","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","isDraftMode","previewData","tryGetPreviewData","resolvedPathname","encodedResolvedPathname","_","getResponseCache","responseCache","MINIMAL_MODE","handleResponse","cacheKey","routeKind","isFallback","isRoutePPREnabled","responseGenerator","waitUntil","cacheEntry","get","isPrefetch","purpose"],"mappings":"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","ignoreList":[0]} |