Rocky_Mountain_Vending/.pnpm-store/v10/files/24/b588accdb6cbcced3b65bb5501db51f646d7f5b9986f834b6b40ea951bdce45d974c45ed4cbddb327ca292272808f129a5e0f85edc14d0a40e2becec007cdb
DMleadgen 46d973904b
Initial commit: Rocky Mountain Vending website
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>
2026-02-12 16:22:15 -07:00

1 line
No EOL
46 KiB
Text

{"version":3,"sources":["../../../../src/server/lib/router-utils/resolve-routes.ts"],"sourcesContent":["import type { FsOutput } from './filesystem'\nimport type { IncomingMessage, ServerResponse } from 'http'\nimport type { NextConfigComplete } from '../../config-shared'\nimport type { RenderServer, initialize } from '../router-server'\nimport type { PatchMatcher } from '../../../shared/lib/router/utils/path-match'\nimport type { Redirect } from '../../../types'\nimport type { Header } from '../../../lib/load-custom-routes'\nimport type { UnwrapPromise } from '../../../lib/coalesced-function'\nimport type { NextUrlWithParsedQuery } from '../../request-meta'\n\nimport url from 'url'\nimport path from 'node:path'\nimport setupDebug from 'next/dist/compiled/debug'\nimport { getCloneableBody } from '../../body-streams'\nimport { filterReqHeaders, ipcForbiddenHeaders } from '../server-ipc/utils'\nimport { stringifyQuery } from '../../server-route-utils'\nimport { formatHostname } from '../format-hostname'\nimport { toNodeOutgoingHttpHeaders } from '../../web/utils'\nimport { isAbortError } from '../../pipe-readable'\nimport { getHostname } from '../../../shared/lib/get-hostname'\nimport {\n getRedirectStatus,\n allowedStatusCodes,\n} from '../../../lib/redirect-status'\nimport { normalizeRepeatedSlashes } from '../../../shared/lib/utils'\nimport { getRelativeURL } from '../../../shared/lib/router/utils/relativize-url'\nimport { addPathPrefix } from '../../../shared/lib/router/utils/add-path-prefix'\nimport { pathHasPrefix } from '../../../shared/lib/router/utils/path-has-prefix'\nimport { detectDomainLocale } from '../../../shared/lib/i18n/detect-domain-locale'\nimport { normalizeLocalePath } from '../../../shared/lib/i18n/normalize-locale-path'\nimport { removePathPrefix } from '../../../shared/lib/router/utils/remove-path-prefix'\nimport { NextDataPathnameNormalizer } from '../../normalizers/request/next-data'\nimport { BasePathPathnameNormalizer } from '../../normalizers/request/base-path'\n\nimport { addRequestMeta } from '../../request-meta'\nimport {\n compileNonPath,\n matchHas,\n prepareDestination,\n} from '../../../shared/lib/router/utils/prepare-destination'\nimport type { TLSSocket } from 'tls'\nimport {\n NEXT_REWRITTEN_PATH_HEADER,\n NEXT_REWRITTEN_QUERY_HEADER,\n RSC_HEADER,\n} from '../../../client/components/app-router-headers'\n\nconst debug = setupDebug('next:router-server:resolve-routes')\n\nexport function getResolveRoutes(\n fsChecker: UnwrapPromise<\n ReturnType<typeof import('./filesystem').setupFsCheck>\n >,\n config: NextConfigComplete,\n opts: Parameters<typeof initialize>[0],\n renderServer: RenderServer,\n renderServerOpts: Parameters<RenderServer['initialize']>[0],\n ensureMiddleware?: (url?: string) => Promise<void>\n) {\n type Route = {\n /**\n * The path matcher to check if this route applies to this request.\n */\n match: PatchMatcher\n check?: boolean\n name?: string\n } & Partial<Header> &\n Partial<Redirect>\n\n let routes: Route[] | null = null\n const calculateRoutes = () => {\n return [\n // _next/data with middleware handling\n { match: () => ({}), name: 'middleware_next_data' },\n\n ...(opts.minimalMode ? [] : fsChecker.headers),\n ...(opts.minimalMode ? [] : fsChecker.redirects),\n\n // check middleware (using matchers)\n { match: () => ({}), name: 'middleware' },\n\n ...(opts.minimalMode ? [] : fsChecker.rewrites.beforeFiles),\n\n // check middleware (using matchers)\n { match: () => ({}), name: 'before_files_end' },\n\n // we check exact matches on fs before continuing to\n // after files rewrites\n { match: () => ({}), name: 'check_fs' },\n\n ...(opts.minimalMode ? [] : fsChecker.rewrites.afterFiles),\n\n // we always do the check: true handling before continuing to\n // fallback rewrites\n {\n check: true,\n match: () => ({}),\n name: 'after files check: true',\n },\n\n ...(opts.minimalMode ? [] : fsChecker.rewrites.fallback),\n ]\n }\n\n async function resolveRoutes({\n req,\n res,\n isUpgradeReq,\n invokedOutputs,\n }: {\n req: IncomingMessage\n res: ServerResponse\n isUpgradeReq: boolean\n signal: AbortSignal\n invokedOutputs?: Set<string>\n }): Promise<{\n finished: boolean\n statusCode?: number\n bodyStream?: ReadableStream | null\n resHeaders: Record<string, string | string[]>\n parsedUrl: NextUrlWithParsedQuery\n matchedOutput?: FsOutput | null\n }> {\n let finished = false\n let resHeaders: Record<string, string | string[]> = {}\n let matchedOutput: FsOutput | null = null\n let parsedUrl = url.parse(req.url || '', true) as NextUrlWithParsedQuery\n let didRewrite = false\n\n const urlParts = (req.url || '').split('?', 1)\n const urlNoQuery = urlParts[0]\n\n // Refresh the routes every time in development mode, but only initialize them\n // once in production. We don't need to recompute these every time unless the routes\n // are changing like in development, and the performance can be costly.\n if (!routes || opts.dev) {\n routes = calculateRoutes()\n }\n\n // this normalizes repeated slashes in the path e.g. hello//world ->\n // hello/world or backslashes to forward slashes, this does not\n // handle trailing slash as that is handled the same as a next.config.js\n // redirect\n if (urlNoQuery?.match(/(\\\\|\\/\\/)/)) {\n parsedUrl = url.parse(normalizeRepeatedSlashes(req.url!), true)\n return {\n parsedUrl,\n resHeaders,\n finished: true,\n statusCode: 308,\n }\n }\n // TODO: inherit this from higher up\n const protocol =\n (req?.socket as TLSSocket)?.encrypted ||\n req.headers['x-forwarded-proto']?.includes('https')\n ? 'https'\n : 'http'\n\n // When there are hostname and port we build an absolute URL\n const initUrl = (config.experimental as any).trustHostHeader\n ? `https://${req.headers.host || 'localhost'}${req.url}`\n : opts.port\n ? `${protocol}://${formatHostname(opts.hostname || 'localhost')}:${\n opts.port\n }${req.url}`\n : req.url || ''\n\n addRequestMeta(req, 'initURL', initUrl)\n addRequestMeta(req, 'initQuery', { ...parsedUrl.query })\n addRequestMeta(req, 'initProtocol', protocol)\n\n if (!isUpgradeReq) {\n const bodySizeLimit = config.experimental.proxyClientMaxBodySize as\n | number\n | undefined\n addRequestMeta(req, 'clonableBody', getCloneableBody(req, bodySizeLimit))\n }\n\n const maybeAddTrailingSlash = (pathname: string) => {\n if (\n config.trailingSlash &&\n !config.skipProxyUrlNormalize &&\n !pathname.endsWith('/')\n ) {\n return `${pathname}/`\n }\n return pathname\n }\n\n let domainLocale: ReturnType<typeof detectDomainLocale> | undefined\n let defaultLocale: string | undefined\n let initialLocaleResult:\n | ReturnType<typeof normalizeLocalePath>\n | undefined = undefined\n\n if (config.i18n) {\n const hadTrailingSlash = parsedUrl.pathname?.endsWith('/')\n const hadBasePath = pathHasPrefix(\n parsedUrl.pathname || '',\n config.basePath\n )\n let normalizedPath = parsedUrl.pathname || '/'\n\n if (config.basePath && pathHasPrefix(normalizedPath, config.basePath)) {\n normalizedPath = removePathPrefix(normalizedPath, config.basePath)\n } else if (\n config.assetPrefix &&\n pathHasPrefix(normalizedPath, config.assetPrefix)\n ) {\n normalizedPath = removePathPrefix(normalizedPath, config.assetPrefix)\n }\n\n initialLocaleResult = normalizeLocalePath(\n normalizedPath,\n config.i18n.locales\n )\n\n domainLocale = detectDomainLocale(\n config.i18n.domains,\n getHostname(parsedUrl, req.headers)\n )\n defaultLocale = domainLocale?.defaultLocale || config.i18n.defaultLocale\n\n addRequestMeta(req, 'defaultLocale', defaultLocale)\n addRequestMeta(\n req,\n 'locale',\n initialLocaleResult.detectedLocale || defaultLocale\n )\n\n // ensure locale is present for resolving routes\n if (\n !initialLocaleResult.detectedLocale &&\n !initialLocaleResult.pathname.startsWith('/_next/')\n ) {\n parsedUrl.pathname = addPathPrefix(\n initialLocaleResult.pathname === '/'\n ? `/${defaultLocale}`\n : addPathPrefix(\n initialLocaleResult.pathname || '',\n `/${defaultLocale}`\n ),\n hadBasePath ? config.basePath : ''\n )\n\n if (hadTrailingSlash) {\n parsedUrl.pathname = maybeAddTrailingSlash(parsedUrl.pathname)\n }\n }\n }\n\n const checkLocaleApi = (pathname: string) => {\n if (\n config.i18n &&\n pathname === urlNoQuery &&\n initialLocaleResult?.detectedLocale &&\n pathHasPrefix(initialLocaleResult.pathname, '/api')\n ) {\n return true\n }\n }\n\n async function checkTrue() {\n const pathname = parsedUrl.pathname || '/'\n\n if (checkLocaleApi(pathname)) {\n return\n }\n if (!invokedOutputs?.has(pathname)) {\n const output = await fsChecker.getItem(pathname)\n\n if (output) {\n if (\n config.useFileSystemPublicRoutes ||\n didRewrite ||\n (output.type !== 'appFile' && output.type !== 'pageFile')\n ) {\n return output\n }\n }\n }\n const dynamicRoutes = fsChecker.getDynamicRoutes()\n let curPathname = parsedUrl.pathname\n\n if (config.basePath) {\n if (!pathHasPrefix(curPathname || '', config.basePath)) {\n return\n }\n curPathname = curPathname?.substring(config.basePath.length) || '/'\n }\n const localeResult = fsChecker.handleLocale(curPathname || '')\n\n for (const route of dynamicRoutes) {\n // when resolving fallback: false the\n // render worker may return a no-fallback response\n // which signals we need to continue resolving.\n // TODO: optimize this to collect static paths\n // to use at the routing layer\n if (invokedOutputs?.has(route.page)) {\n continue\n }\n const params = route.match(localeResult.pathname)\n\n if (params) {\n const pageOutput = await fsChecker.getItem(\n addPathPrefix(route.page, config.basePath || '')\n )\n\n // i18n locales aren't matched for app dir\n if (\n pageOutput?.type === 'appFile' &&\n initialLocaleResult?.detectedLocale\n ) {\n continue\n }\n\n if (pageOutput && curPathname?.startsWith('/_next/data')) {\n addRequestMeta(req, 'isNextDataReq', true)\n }\n\n if (config.useFileSystemPublicRoutes || didRewrite) {\n return pageOutput\n }\n }\n }\n }\n\n const normalizers = {\n basePath:\n config.basePath && config.basePath !== '/'\n ? new BasePathPathnameNormalizer(config.basePath)\n : undefined,\n data: new NextDataPathnameNormalizer(fsChecker.buildId),\n }\n\n async function handleRoute(\n route: Route\n ): Promise<UnwrapPromise<ReturnType<typeof resolveRoutes>> | void> {\n let curPathname = parsedUrl.pathname || '/'\n\n if (config.i18n && route.internal) {\n const hadTrailingSlash = curPathname.endsWith('/')\n\n if (config.basePath) {\n curPathname = removePathPrefix(curPathname, config.basePath)\n }\n const hadBasePath = curPathname !== parsedUrl.pathname\n\n const localeResult = normalizeLocalePath(\n curPathname,\n config.i18n.locales\n )\n const isDefaultLocale = localeResult.detectedLocale === defaultLocale\n\n if (isDefaultLocale) {\n curPathname =\n localeResult.pathname === '/' && hadBasePath\n ? config.basePath\n : addPathPrefix(\n localeResult.pathname,\n hadBasePath ? config.basePath : ''\n )\n } else if (hadBasePath) {\n curPathname =\n curPathname === '/'\n ? config.basePath\n : addPathPrefix(curPathname, config.basePath)\n }\n\n if ((isDefaultLocale || hadBasePath) && hadTrailingSlash) {\n curPathname = maybeAddTrailingSlash(curPathname)\n }\n }\n let params = route.match(curPathname)\n\n if ((route.has || route.missing) && params) {\n const hasParams = matchHas(\n req,\n parsedUrl.query,\n route.has,\n route.missing\n )\n if (hasParams) {\n Object.assign(params, hasParams)\n } else {\n params = false\n }\n }\n\n if (params) {\n if (\n fsChecker.exportPathMapRoutes &&\n route.name === 'before_files_end'\n ) {\n for (const exportPathMapRoute of fsChecker.exportPathMapRoutes) {\n const result = await handleRoute(exportPathMapRoute)\n\n if (result) {\n return result\n }\n }\n }\n\n if (route.name === 'middleware_next_data' && parsedUrl.pathname) {\n if (fsChecker.getMiddlewareMatchers()?.length) {\n let normalized = parsedUrl.pathname\n\n // Remove the base path if it exists.\n const hadBasePath = normalizers.basePath?.match(parsedUrl.pathname)\n if (hadBasePath && normalizers.basePath) {\n normalized = normalizers.basePath.normalize(normalized, true)\n }\n\n let updated = false\n if (normalizers.data.match(normalized)) {\n updated = true\n addRequestMeta(req, 'isNextDataReq', true)\n normalized = normalizers.data.normalize(normalized, true)\n }\n\n if (config.i18n) {\n const curLocaleResult = normalizeLocalePath(\n normalized,\n config.i18n.locales\n )\n\n if (curLocaleResult.detectedLocale) {\n addRequestMeta(req, 'locale', curLocaleResult.detectedLocale)\n }\n }\n\n // If we updated the pathname, and it had a base path, re-add the\n // base path.\n if (updated) {\n if (hadBasePath) {\n normalized =\n normalized === '/'\n ? config.basePath\n : path.posix.join(config.basePath, normalized)\n }\n\n // Re-add the trailing slash (if required).\n normalized = maybeAddTrailingSlash(normalized)\n\n parsedUrl.pathname = normalized\n }\n }\n }\n\n if (route.name === 'check_fs') {\n const pathname = parsedUrl.pathname || '/'\n\n if (invokedOutputs?.has(pathname) || checkLocaleApi(pathname)) {\n return\n }\n const output = await fsChecker.getItem(pathname)\n\n if (\n output &&\n !(\n config.i18n &&\n initialLocaleResult?.detectedLocale &&\n pathHasPrefix(pathname, '/api')\n )\n ) {\n if (\n config.useFileSystemPublicRoutes ||\n didRewrite ||\n (output.type !== 'appFile' && output.type !== 'pageFile')\n ) {\n matchedOutput = output\n\n if (output.locale) {\n addRequestMeta(req, 'locale', output.locale)\n }\n return {\n parsedUrl,\n resHeaders,\n finished: true,\n matchedOutput,\n }\n }\n }\n }\n\n if (!opts.minimalMode && route.name === 'middleware') {\n const match = fsChecker.getMiddlewareMatchers()\n let maybeDecodedPathname = parsedUrl.pathname || '/'\n\n try {\n maybeDecodedPathname = decodeURIComponent(maybeDecodedPathname)\n } catch {\n /* non-fatal we can't decode so can't match it */\n }\n\n if (\n // @ts-expect-error BaseNextRequest stuff\n match?.(parsedUrl.pathname, req, parsedUrl.query) ||\n match?.(\n maybeDecodedPathname,\n // @ts-expect-error BaseNextRequest stuff\n req,\n parsedUrl.query\n )\n ) {\n if (ensureMiddleware) {\n await ensureMiddleware(req.url)\n }\n\n const serverResult =\n await renderServer?.initialize(renderServerOpts)\n\n if (!serverResult) {\n throw new Error(`Failed to initialize render server \"middleware\"`)\n }\n\n addRequestMeta(req, 'invokePath', '')\n addRequestMeta(req, 'invokeOutput', '')\n addRequestMeta(req, 'invokeQuery', {})\n addRequestMeta(req, 'middlewareInvoke', true)\n if (opts.dev) {\n addRequestMeta(\n req,\n 'devRequestTimingMiddlewareStart',\n process.hrtime.bigint()\n )\n }\n debug('invoking middleware', req.url, req.headers)\n\n let middlewareRes: Response | undefined = undefined\n let bodyStream: ReadableStream | undefined = undefined\n try {\n try {\n await serverResult.requestHandler(req, res, parsedUrl)\n } catch (err: any) {\n if (!('result' in err) || !('response' in err.result)) {\n throw err\n }\n middlewareRes = err.result.response as Response\n res.statusCode = middlewareRes.status\n\n if (middlewareRes.body) {\n bodyStream = middlewareRes.body\n } else if (middlewareRes.status) {\n bodyStream = new ReadableStream({\n start(controller) {\n controller.enqueue('')\n controller.close()\n },\n })\n }\n } finally {\n if (opts.dev) {\n addRequestMeta(\n req,\n 'devRequestTimingMiddlewareEnd',\n process.hrtime.bigint()\n )\n }\n }\n } catch (e) {\n // If the client aborts before we can receive a response object\n // (when the headers are flushed), then we can early exit without\n // further processing.\n if (isAbortError(e)) {\n return {\n parsedUrl,\n resHeaders,\n finished: true,\n }\n }\n throw e\n }\n\n if (res.closed || res.finished || !middlewareRes) {\n return {\n parsedUrl,\n resHeaders,\n finished: true,\n }\n }\n\n const middlewareHeaders = toNodeOutgoingHttpHeaders(\n middlewareRes.headers\n ) as Record<string, string | string[] | undefined>\n\n debug('middleware res', middlewareRes.status, middlewareHeaders)\n\n if (middlewareHeaders['x-middleware-override-headers']) {\n const overriddenHeaders: Set<string> = new Set()\n let overrideHeaders: string | string[] =\n middlewareHeaders['x-middleware-override-headers']\n\n if (typeof overrideHeaders === 'string') {\n overrideHeaders = overrideHeaders.split(',')\n }\n\n for (const key of overrideHeaders) {\n overriddenHeaders.add(key.trim())\n }\n delete middlewareHeaders['x-middleware-override-headers']\n\n // Delete headers.\n for (const key of Object.keys(req.headers)) {\n if (!overriddenHeaders.has(key)) {\n delete req.headers[key]\n }\n }\n\n // Update or add headers.\n for (const key of overriddenHeaders.keys()) {\n const valueKey = 'x-middleware-request-' + key\n const newValue = middlewareHeaders[valueKey]\n const oldValue = req.headers[key]\n\n if (oldValue !== newValue) {\n req.headers[key] = newValue === null ? undefined : newValue\n }\n delete middlewareHeaders[valueKey]\n }\n }\n\n if (\n !middlewareHeaders['x-middleware-rewrite'] &&\n !middlewareHeaders['x-middleware-next'] &&\n !middlewareHeaders['location']\n ) {\n middlewareHeaders['x-middleware-refresh'] = '1'\n }\n delete middlewareHeaders['x-middleware-next']\n\n for (const [key, value] of Object.entries({\n ...filterReqHeaders(middlewareHeaders, ipcForbiddenHeaders),\n })) {\n if (\n [\n 'content-length',\n 'x-middleware-rewrite',\n 'x-middleware-redirect',\n 'x-middleware-refresh',\n ].includes(key)\n ) {\n continue\n }\n\n // for set-cookie, the header shouldn't be added to the response\n // as it's only needed for the request to the middleware function.\n if (key === 'x-middleware-set-cookie') {\n req.headers[key] = value\n continue\n }\n\n if (value) {\n resHeaders[key] = value\n req.headers[key] = value\n }\n }\n\n if (middlewareHeaders['x-middleware-rewrite']) {\n const value = middlewareHeaders['x-middleware-rewrite'] as string\n const destination = getRelativeURL(value, initUrl)\n resHeaders['x-middleware-rewrite'] = destination\n\n parsedUrl = url.parse(destination, true)\n\n if (parsedUrl.protocol) {\n return {\n parsedUrl,\n resHeaders,\n finished: true,\n }\n }\n\n if (config.i18n) {\n const curLocaleResult = normalizeLocalePath(\n parsedUrl.pathname || '',\n config.i18n.locales\n )\n\n if (curLocaleResult.detectedLocale) {\n addRequestMeta(req, 'locale', curLocaleResult.detectedLocale)\n }\n }\n }\n\n if (middlewareHeaders['location']) {\n const value = middlewareHeaders['location'] as string\n\n // Only process Location header as a redirect if it has a proper redirect status\n // This prevents a Location header with non-redirect status from being treated as a redirect\n const isRedirectStatus = allowedStatusCodes.has(\n middlewareRes.status\n )\n\n if (isRedirectStatus) {\n // Process as redirect: update parsedUrl and convert to relative URL\n const rel = getRelativeURL(value, initUrl)\n resHeaders['location'] = rel\n parsedUrl = url.parse(rel, true)\n\n return {\n parsedUrl,\n resHeaders,\n finished: true,\n statusCode: middlewareRes.status,\n }\n } else {\n // Not a redirect: just pass through the Location header\n resHeaders['location'] = value\n\n return {\n parsedUrl,\n resHeaders,\n finished: true,\n bodyStream,\n statusCode: middlewareRes.status,\n }\n }\n }\n\n if (middlewareHeaders['x-middleware-refresh']) {\n return {\n parsedUrl,\n resHeaders,\n finished: true,\n bodyStream,\n statusCode: middlewareRes.status,\n }\n }\n }\n }\n\n // handle redirect\n if (\n ('statusCode' in route || 'permanent' in route) &&\n route.destination\n ) {\n const { parsedDestination } = prepareDestination({\n appendParamsToQuery: false,\n destination: route.destination,\n params: params,\n query: parsedUrl.query,\n })\n\n const { query } = parsedDestination\n delete (parsedDestination as any).query\n\n parsedDestination.search = stringifyQuery(req as any, query)\n\n parsedDestination.pathname = normalizeRepeatedSlashes(\n parsedDestination.pathname\n )\n\n return {\n finished: true,\n // @ts-expect-error custom ParsedUrl\n parsedUrl: parsedDestination,\n statusCode: getRedirectStatus(route),\n }\n }\n\n // handle headers\n if (route.headers) {\n const hasParams = Object.keys(params).length > 0\n for (const header of route.headers) {\n let { key, value } = header\n if (hasParams) {\n key = compileNonPath(key, params)\n value = compileNonPath(value, params)\n }\n\n if (key.toLowerCase() === 'set-cookie') {\n if (!Array.isArray(resHeaders[key])) {\n const val = resHeaders[key]\n resHeaders[key] = typeof val === 'string' ? [val] : []\n }\n ;(resHeaders[key] as string[]).push(value)\n } else {\n resHeaders[key] = value\n }\n }\n }\n\n // handle rewrite\n if (route.destination) {\n let rewriteParams = params\n\n const { parsedDestination } = prepareDestination({\n appendParamsToQuery: true,\n destination: route.destination,\n params: rewriteParams,\n query: parsedUrl.query,\n })\n\n // Check to see if this is a non-relative rewrite. If it is, we need\n // to check to see if it's an allowed origin to receive the rewritten\n // headers.\n const parsedDestinationOrigin = parsedDestination.origin\n const isAllowedOrigin = parsedDestinationOrigin\n ? config.experimental.clientParamParsingOrigins?.some((origin) =>\n new RegExp(origin).test(parsedDestinationOrigin)\n )\n : false\n\n // Set the rewrite headers only if this is a RSC request.\n if (\n req.headers[RSC_HEADER] === '1' &&\n (!parsedDestination.origin || isAllowedOrigin)\n ) {\n // We set the rewritten path and query headers on the response now\n // that we know that the it's not an external rewrite.\n if (parsedUrl.pathname !== parsedDestination.pathname) {\n res.setHeader(\n NEXT_REWRITTEN_PATH_HEADER,\n parsedDestination.pathname\n )\n }\n if (parsedUrl.search !== parsedDestination.search) {\n res.setHeader(\n NEXT_REWRITTEN_QUERY_HEADER,\n // remove the leading ? from the search\n parsedDestination.search.slice(1)\n )\n }\n }\n\n if (parsedDestination.protocol) {\n return {\n // @ts-expect-error custom ParsedUrl\n parsedUrl: parsedDestination,\n finished: true,\n }\n }\n\n if (config.i18n) {\n const curLocaleResult = normalizeLocalePath(\n removePathPrefix(parsedDestination.pathname, config.basePath),\n config.i18n.locales\n )\n\n if (curLocaleResult.detectedLocale) {\n addRequestMeta(req, 'locale', curLocaleResult.detectedLocale)\n }\n }\n didRewrite = true\n parsedUrl.pathname = parsedDestination.pathname\n Object.assign(parsedUrl.query, parsedDestination.query)\n }\n\n // handle check: true\n if (route.check) {\n const output = await checkTrue()\n\n if (output) {\n return {\n parsedUrl,\n resHeaders,\n finished: true,\n matchedOutput: output,\n }\n }\n }\n }\n }\n\n for (const route of routes) {\n const result = await handleRoute(route)\n if (result) {\n return result\n }\n }\n\n return {\n finished,\n parsedUrl,\n resHeaders,\n matchedOutput,\n }\n }\n\n return resolveRoutes\n}\n"],"names":["getResolveRoutes","debug","setupDebug","fsChecker","config","opts","renderServer","renderServerOpts","ensureMiddleware","routes","calculateRoutes","match","name","minimalMode","headers","redirects","rewrites","beforeFiles","afterFiles","check","fallback","resolveRoutes","req","res","isUpgradeReq","invokedOutputs","finished","resHeaders","matchedOutput","parsedUrl","url","parse","didRewrite","urlParts","split","urlNoQuery","dev","normalizeRepeatedSlashes","statusCode","protocol","socket","encrypted","includes","initUrl","experimental","trustHostHeader","host","port","formatHostname","hostname","addRequestMeta","query","bodySizeLimit","proxyClientMaxBodySize","getCloneableBody","maybeAddTrailingSlash","pathname","trailingSlash","skipProxyUrlNormalize","endsWith","domainLocale","defaultLocale","initialLocaleResult","undefined","i18n","hadTrailingSlash","hadBasePath","pathHasPrefix","basePath","normalizedPath","removePathPrefix","assetPrefix","normalizeLocalePath","locales","detectDomainLocale","domains","getHostname","detectedLocale","startsWith","addPathPrefix","checkLocaleApi","checkTrue","has","output","getItem","useFileSystemPublicRoutes","type","dynamicRoutes","getDynamicRoutes","curPathname","substring","length","localeResult","handleLocale","route","page","params","pageOutput","normalizers","BasePathPathnameNormalizer","data","NextDataPathnameNormalizer","buildId","handleRoute","internal","isDefaultLocale","missing","hasParams","matchHas","Object","assign","exportPathMapRoutes","exportPathMapRoute","result","getMiddlewareMatchers","normalized","normalize","updated","curLocaleResult","path","posix","join","locale","maybeDecodedPathname","decodeURIComponent","serverResult","initialize","Error","process","hrtime","bigint","middlewareRes","bodyStream","requestHandler","err","response","status","body","ReadableStream","start","controller","enqueue","close","e","isAbortError","closed","middlewareHeaders","toNodeOutgoingHttpHeaders","overriddenHeaders","Set","overrideHeaders","key","add","trim","keys","valueKey","newValue","oldValue","value","entries","filterReqHeaders","ipcForbiddenHeaders","destination","getRelativeURL","isRedirectStatus","allowedStatusCodes","rel","parsedDestination","prepareDestination","appendParamsToQuery","search","stringifyQuery","getRedirectStatus","header","compileNonPath","toLowerCase","Array","isArray","val","push","rewriteParams","parsedDestinationOrigin","origin","isAllowedOrigin","clientParamParsingOrigins","some","RegExp","test","RSC_HEADER","setHeader","NEXT_REWRITTEN_PATH_HEADER","NEXT_REWRITTEN_QUERY_HEADER","slice"],"mappings":"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","ignoreList":[0]}