@reckona/mreact-router 0.0.67 → 0.0.69

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/dist/actions.js.map +1 -1
  2. package/dist/adapters/aws-lambda.js.map +1 -1
  3. package/dist/adapters/cloudflare.js.map +1 -1
  4. package/dist/adapters/devtools.js.map +1 -1
  5. package/dist/adapters/edge.js.map +1 -1
  6. package/dist/adapters/node.js.map +1 -1
  7. package/dist/adapters/static.js.map +1 -1
  8. package/dist/app-router-globals.js.map +1 -1
  9. package/dist/assets.js.map +1 -1
  10. package/dist/build.js.map +1 -1
  11. package/dist/bundle-pipeline.js.map +1 -1
  12. package/dist/cache-config.js.map +1 -1
  13. package/dist/cache-stats.js.map +1 -1
  14. package/dist/cache.js.map +1 -1
  15. package/dist/cli-options.js.map +1 -1
  16. package/dist/cli.js.map +1 -1
  17. package/dist/client.js.map +1 -1
  18. package/dist/config.js.map +1 -1
  19. package/dist/cookies.js.map +1 -1
  20. package/dist/csp.js.map +1 -1
  21. package/dist/csrf.js.map +1 -1
  22. package/dist/deferred.js.map +1 -1
  23. package/dist/dev-server.js.map +1 -1
  24. package/dist/file-conventions.js.map +1 -1
  25. package/dist/http.js.map +1 -1
  26. package/dist/i18n.js.map +1 -1
  27. package/dist/import-policy.js.map +1 -1
  28. package/dist/index.js.map +1 -1
  29. package/dist/link.js.map +1 -1
  30. package/dist/logger.js.map +1 -1
  31. package/dist/module-runner.js.map +1 -1
  32. package/dist/multipart.js.map +1 -1
  33. package/dist/native-escape.js.map +1 -1
  34. package/dist/native-route-matcher.js.map +1 -1
  35. package/dist/navigation-state.js.map +1 -1
  36. package/dist/navigation.js.map +1 -1
  37. package/dist/prerender-store.js.map +1 -1
  38. package/dist/render.js.map +1 -1
  39. package/dist/route-path.js.map +1 -1
  40. package/dist/route-shells.js.map +1 -1
  41. package/dist/route-source.js.map +1 -1
  42. package/dist/route-styles.js.map +1 -1
  43. package/dist/routes.js.map +1 -1
  44. package/dist/runtime-cache.js.map +1 -1
  45. package/dist/runtime-state.js.map +1 -1
  46. package/dist/security-headers.js.map +1 -1
  47. package/dist/serve.js.map +1 -1
  48. package/dist/session.js.map +1 -1
  49. package/dist/source-jsx.js.map +1 -1
  50. package/dist/source-modules.js.map +1 -1
  51. package/dist/stream-list.js.map +1 -1
  52. package/dist/trace.js.map +1 -1
  53. package/dist/types.js.map +1 -1
  54. package/dist/upgrade.js.map +1 -1
  55. package/dist/vite-config.js.map +1 -1
  56. package/dist/vite-plugin-cache-key.js.map +1 -1
  57. package/dist/vite.js.map +1 -1
  58. package/dist/workspace-packages.js.map +1 -1
  59. package/package.json +11 -11
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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","sourcesContent":["import { createHash, randomUUID } from \"node:crypto\";\nimport { AsyncLocalStorage } from \"node:async_hooks\";\nimport { access, readFile, stat } from \"node:fs/promises\";\nimport { dirname, join, relative, sep } from \"node:path\";\nimport {\n formatDiagnostic,\n transform,\n type ClientReferenceMetadata,\n type ServerOutputMode,\n type TransformOutput,\n} from \"@reckona/mreact-compiler\";\nimport {\n createQueryClient,\n dehydrate,\n __MREACT_QUERY_STATE_SCRIPT_ID,\n runWithQueryClient,\n type DehydratedQueryClient,\n type QueryClient,\n} from \"@reckona/mreact-query\";\nimport {\n createStringSink,\n type HtmlSink,\n renderAsyncBoundary,\n renderOutOfOrderReorderScript,\n renderToReadableStream,\n} from \"@reckona/mreact-server\";\nimport {\n createClientRouteInferenceCache,\n hydrationMarkerParts,\n formatClientRouteInferenceDiagnostic,\n inferClientRouteModule,\n routeIdForPath,\n type ClientRouteInferenceCache,\n type ClientRouteInferenceResult,\n withHydrationMarkers,\n withRouteMarkers,\n} from \"./client.js\";\nimport { assetPath } from \"./assets.js\";\nimport {\n escapeHtmlAttribute,\n escapeHtmlText as escapeHtml,\n} from \"@reckona/mreact-shared/html-escape\";\nimport { matchRoute, scanAppRoutes } from \"./routes.js\";\nimport type { AppRoute, RouteMatcher } from \"./routes.js\";\nimport { appFileConventionContentType, type AppFileConvention } from \"./file-conventions.js\";\nimport {\n type AppRouterServerActionOptions,\n dispatchServerActionRequest,\n prepareRouteServerActions,\n} from \"./actions.js\";\nimport { serverActionCookie } from \"./csrf.js\";\nimport {\n type AppRouterCache,\n beginRouteCacheContext,\n cachedRouteResponse,\n cacheRouteResponse,\n routeCacheKey,\n routeCachePolicyFromSource,\n} from \"./cache.js\";\nimport { resolveRouterCacheLimit } from \"./cache-config.js\";\nimport {\n importAppRouterBuiltFileModule,\n importAppRouterFileModule,\n importAppRouterSourceModule,\n fileImportMetaUrlPlugin,\n} from \"./module-runner.js\";\nimport { contentSecurityPolicy } from \"./csp.js\";\nimport { bytesResponse, htmlResponse } from \"./http.js\";\nimport { isNotFoundError, isRedirectError, rewriteLocation } from \"./navigation.js\";\nimport { createAppRouterImportPolicyPlugin, type AppRouterImportPolicy } from \"./import-policy.js\";\nimport { existingRouteShellCandidates } from \"./route-shells.js\";\nimport type { PluginOption } from \"vite\";\nimport type { BuiltRouteSourceAnalysisSummary, BuiltServerModuleArtifact } from \"./build.js\";\nimport {\n hasLoaderExport,\n isStreamRouteSource,\n routeClosureMayUseAwaitBoundary,\n stripRouteClientOnlyExports,\n stripRouteLoaderOnlyExports,\n stripRouteMetadataOnlyExports,\n stripRouteModuleExports,\n} from \"./route-source.js\";\nimport { emitRouterLog, logDurationMs, logNow, type AppRouterLogger } from \"./logger.js\";\nimport {\n createRouterRuntimeCacheCounters,\n readRouterRuntimeCacheEntry,\n routerRuntimeCacheStat,\n type RouterRuntimeCacheCounters,\n type RouterRuntimeCacheStat,\n} from \"./cache-stats.js\";\nimport { bundleRouterModule } from \"./bundle-pipeline.js\";\nimport { routeSecurityHeaders } from \"./security-headers.js\";\nimport { vitePluginsCacheKey } from \"./vite-plugin-cache-key.js\";\nimport type {\n ManifestDescriptor,\n MetadataImage,\n MetadataScalar,\n MetadataThemeColor,\n MetadataViewport,\n RobotsManifest,\n RouteParams,\n RouteHeadDescriptor,\n RouteMetadata,\n SitemapEntry,\n} from \"./types.js\";\nimport {\n invokeRouterInstrumentation,\n traceContextFromRequest,\n type RouterInstrumentation,\n} from \"./trace.js\";\n\nconst nativeEscapeTransform = {\n batchImportName: \"escapeHtmlBatch\",\n batchImportSource: \"@reckona/mreact-router/native-escape\",\n} as const;\nconst authRuntimeStateKey = \"__mreactAuthRuntimeState\";\nconst authSessionScriptId = \"__mreact_auth_session\";\n\ninterface AuthRuntimeRequestState {\n claims?: unknown;\n}\n\ninterface AuthRuntimeState {\n storage?: AsyncLocalStorage<AuthRuntimeRequestState> | undefined;\n}\n\ninterface RenderTiming {\n phases: Record<string, number>;\n}\n\nexport interface RenderAppRequestOptions {\n appDir: string;\n assetBaseUrl?: string | undefined;\n clientScripts?: ReadonlyMap<string, string>;\n clientStyles?: ReadonlyMap<string, readonly string[]>;\n env?: unknown;\n importPolicy?: AppRouterImportPolicy | undefined;\n instrumentation?: RouterInstrumentation | undefined;\n logger?: AppRouterLogger | undefined;\n navigationScripts?: ReadonlyMap<string, string> | undefined;\n onResponse?: AppRouterResponseHook | undefined;\n queryClient?: QueryClient | undefined;\n request: Request;\n routeCache?: AppRouterCache | undefined;\n routeMatcher?: RouteMatcher | undefined;\n routes?: readonly AppRoute[] | undefined;\n serverModules?: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined;\n serverModuleCacheVersion?: string | undefined;\n serverSourceFiles?: ReadonlyMap<string, string> | undefined;\n serverActions?: AppRouterServerActionOptions | undefined;\n skipMiddleware?: boolean | undefined;\n preload?: AppRouterRenderPreload | undefined;\n vitePlugins?: readonly PluginOption[] | undefined;\n}\n\nexport interface AppRouterRenderPreload {\n promise: Promise<void>;\n wait: \"before-render\";\n}\n\nexport type AppRouterResponseHook = (\n response: Response,\n context: AppRouterResponseHookContext,\n) => Response | undefined | void | Promise<Response | undefined | void>;\n\nexport interface AppRouterResponseHookContext {\n request: Request;\n}\n\nexport async function preloadBuiltRequestModules(options: {\n appDir: string;\n includeRenderModules?: boolean | undefined;\n importPolicy?: AppRouterImportPolicy | undefined;\n routes: readonly AppRoute[];\n serverModules?: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined;\n serverModuleCacheVersion: string;\n serverSourceFiles: ReadonlyMap<string, string>;\n vitePlugins?: readonly PluginOption[] | undefined;\n}): Promise<void> {\n const clientRouteInferenceCache = createClientRouteInferenceCache();\n const middlewareFiles = [\n join(options.appDir, \"middleware.ts\"),\n join(options.appDir, \"middleware.mreact.ts\"),\n ];\n\n for (const file of middlewareFiles) {\n if (options.serverSourceFiles.has(file)) {\n await loadMiddlewareModule({\n appDir: options.appDir,\n file,\n importPolicy: options.importPolicy,\n serverModules: options.serverModules,\n serverModuleCacheVersion: options.serverModuleCacheVersion,\n serverSourceFiles: options.serverSourceFiles,\n vitePlugins: options.vitePlugins,\n });\n }\n }\n\n for (const route of options.routes) {\n const code = await readServerSourceFile(\n route.file,\n options.serverModuleCacheVersion,\n options.serverSourceFiles,\n );\n\n if (route.kind === \"server\") {\n await loadServerRouteModule({\n file: route.file,\n serverModules: options.serverModules,\n serverModuleCacheVersion: options.serverModuleCacheVersion,\n serverSourceFiles: options.serverSourceFiles,\n });\n continue;\n }\n\n if (options.includeRenderModules !== false) {\n const analysis = await analyzeRouteSource({\n appDir: options.appDir,\n artifact: options.serverModules?.get(route.file)?.analysis,\n code,\n filename: route.file,\n routePath: route.path,\n clientRouteInferenceCache,\n serverModuleCacheVersion: options.serverModuleCacheVersion,\n serverSourceFiles: options.serverSourceFiles,\n vitePlugins: options.vitePlugins,\n });\n await preloadBuiltPageRouteModules({\n ...options,\n analysis,\n code,\n file: route.file,\n });\n }\n\n if (hasLoaderExport(code)) {\n await loadRouteLoaderModule({\n appDir: options.appDir,\n code,\n filename: route.file,\n importPolicy: options.importPolicy,\n serverModules: options.serverModules,\n serverModuleCacheVersion: options.serverModuleCacheVersion,\n vitePlugins: options.vitePlugins,\n });\n }\n }\n}\n\nasync function preloadBuiltPageRouteModules(options: {\n analysis: RouteSourceAnalysis;\n appDir: string;\n code: string;\n file: string;\n importPolicy?: AppRouterImportPolicy | undefined;\n serverModules?: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined;\n serverModuleCacheVersion: string;\n serverSourceFiles: ReadonlyMap<string, string>;\n vitePlugins?: readonly PluginOption[] | undefined;\n}): Promise<void> {\n const routeCode = options.analysis.routeCode;\n const stringArtifact = options.serverModules?.get(options.file)?.string;\n const shouldPreloadString =\n !options.analysis.streamRoute ||\n options.serverModules === undefined ||\n stringArtifact !== undefined;\n\n if (shouldPreloadString) {\n const stringOutput = transformServerModule({\n code: routeCode,\n clientBoundaryImports: options.analysis.clientInference.clientBoundaryImports,\n filename: options.file,\n serverModules: options.serverModules,\n serverOutput: \"string\",\n });\n assertNoFatalServerDiagnostics(options.file, stringOutput.diagnostics);\n await loadServerModule(\n stringOutput.code,\n options.file,\n options.serverModules,\n options.serverModuleCacheVersion,\n options.vitePlugins,\n );\n }\n\n if (options.analysis.streamRoute) {\n const streamOutput = transformServerModule({\n code: routeCode,\n clientBoundaryImports: options.analysis.clientInference.clientBoundaryImports,\n filename: options.file,\n serverModules: options.serverModules,\n serverOutput: \"stream\",\n serverAwaitHydration: options.analysis.clientInference.client,\n });\n assertNoFatalServerDiagnostics(options.file, streamOutput.diagnostics);\n await loadServerStreamModule(\n streamOutput.code,\n options.file,\n options.serverModules,\n options.serverModuleCacheVersion,\n options.vitePlugins,\n );\n }\n\n await preloadShellModulesForPage({\n appDir: options.appDir,\n pageFile: options.file,\n serverModules: options.serverModules,\n serverModuleCacheVersion: options.serverModuleCacheVersion,\n serverSourceFiles: options.serverSourceFiles,\n vitePlugins: options.vitePlugins,\n });\n if (!hasGenerateMetadataExport(options.code)) {\n await loadComposedRouteMetadata({\n appDir: options.appDir,\n code: options.code,\n context: {\n data: undefined,\n params: {},\n request: new Request(\"http://mreact.local/\"),\n },\n filename: options.file,\n importPolicy: options.importPolicy,\n routes: [],\n serverModules: options.serverModules,\n serverModuleCacheVersion: options.serverModuleCacheVersion,\n serverSourceFiles: options.serverSourceFiles,\n vitePlugins: options.vitePlugins,\n });\n }\n}\n\nasync function preloadShellModulesForPage(options: {\n appDir: string;\n pageFile: string;\n serverModules?: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined;\n serverModuleCacheVersion: string;\n serverSourceFiles: ReadonlyMap<string, string>;\n vitePlugins?: readonly PluginOption[] | undefined;\n}): Promise<void> {\n const shellFiles = await shellFilesForPage(\n options.appDir,\n options.pageFile,\n options.serverModuleCacheVersion,\n );\n\n for (const shell of shellFiles) {\n const code = await readServerSourceFile(\n shell.file,\n options.serverModuleCacheVersion,\n options.serverSourceFiles,\n );\n const output = transformServerModule({\n code,\n filename: shell.file,\n serverModules: options.serverModules,\n serverOutput: \"string\",\n });\n assertNoFatalServerDiagnostics(shell.file, output.diagnostics);\n await loadServerModule(\n output.code,\n shell.file,\n options.serverModules,\n options.serverModuleCacheVersion,\n options.vitePlugins,\n );\n }\n}\n\nfunction fatalServerDiagnostics(\n diagnostics: TransformOutput[\"diagnostics\"],\n): TransformOutput[\"diagnostics\"] {\n return diagnostics.filter(\n (diagnostic) => diagnostic.code !== \"MR_UNSUPPORTED_SERVER_EVENT_HANDLER\",\n );\n}\n\nfunction formatServerDiagnostics(\n filename: string,\n diagnostics: TransformOutput[\"diagnostics\"],\n): string {\n return diagnostics.map((diagnostic) => formatDiagnostic(filename, diagnostic)).join(\"\\n\");\n}\n\nfunction assertNoFatalServerDiagnostics(\n filename: string,\n diagnostics: TransformOutput[\"diagnostics\"],\n): void {\n const fatalDiagnostics = fatalServerDiagnostics(diagnostics);\n if (fatalDiagnostics.length > 0) {\n throw new Error(formatServerDiagnostics(filename, fatalDiagnostics));\n }\n}\n\ninterface ServerComponentProps {\n data: unknown;\n params: RouteParams;\n queryClient: QueryClient;\n request: Request;\n}\n\ntype ServerComponent = (props: ServerComponentProps) => string | PromiseLike<string>;\ntype RouteSlotValue = string | ServerComponent;\ntype RouteSlotExports = Record<string, RouteSlotValue>;\ntype ServerModuleExports = Record<string, unknown> & {\n App?: ServerComponent;\n default?: ServerComponent;\n slots?: RouteSlotExports;\n};\ntype StreamComponent = (sink: HtmlSink, props: ServerComponentProps) => void | PromiseLike<void>;\ntype StreamRouteSlotValue = string | StreamComponent;\ntype StreamRouteSlotExports = Record<string, StreamRouteSlotValue>;\ntype StreamModuleExports = Record<string, unknown> & {\n App?: StreamComponent;\n default?: StreamComponent;\n slots?: StreamRouteSlotExports;\n};\n\ninterface SlotRenderContext {\n consumedSlots: Set<string>;\n namedSlots: Readonly<Record<string, string>>;\n}\n\nconst serverTransformCache = new Map<string, TransformOutput>();\nconst serverTransformCacheCounters = createRouterRuntimeCacheCounters();\nconst serverSourceFileCache = new Map<string, Promise<string>>();\nconst serverSourceFileCacheCounters = createRouterRuntimeCacheCounters();\nconst routeSourceAnalysisCache = new Map<string, Promise<RouteSourceAnalysis>>();\nconst routeSourceAnalysisCacheCounters = createRouterRuntimeCacheCounters();\nconst routeOutOfOrderBoundaryAnalysisCache = new Map<string, Promise<boolean>>();\nconst routeOutOfOrderBoundaryAnalysisCacheCounters = createRouterRuntimeCacheCounters();\nconst routeLoaderModuleCache = new Map<string, Promise<RouteLoaderModule>>();\nconst routeLoaderModuleCacheCounters = createRouterRuntimeCacheCounters();\nconst middlewareModuleCache = new Map<string, Promise<MiddlewareModule>>();\nconst middlewareModuleCacheCounters = createRouterRuntimeCacheCounters();\nconst serverRouteModuleCache = new Map<string, Promise<Record<string, unknown>>>();\nconst serverRouteModuleCacheCounters = createRouterRuntimeCacheCounters();\nconst composedRouteMetadataCache = new Map<string, Promise<RouteMetadata | undefined>>();\nconst composedRouteMetadataCacheCounters = createRouterRuntimeCacheCounters();\nconst maxServerTransformCacheEntries = resolveRouterCacheLimit(\"SERVER_TRANSFORM\", 512);\nconst maxServerSourceFileCacheEntries = resolveRouterCacheLimit(\"SERVER_SOURCE_FILE\", 512);\nconst maxRouteSourceAnalysisCacheEntries = resolveRouterCacheLimit(\"ROUTE_SOURCE_ANALYSIS\", 512);\nconst maxRouteOutOfOrderBoundaryAnalysisCacheEntries = resolveRouterCacheLimit(\n \"ROUTE_OUT_OF_ORDER_BOUNDARY_ANALYSIS\",\n 512,\n);\nconst maxRouteLoaderModuleCacheEntries = resolveRouterCacheLimit(\"ROUTE_LOADER_MODULE\", 512);\nconst maxMiddlewareModuleCacheEntries = resolveRouterCacheLimit(\"MIDDLEWARE_MODULE\", 64);\nconst maxServerRouteModuleCacheEntries = resolveRouterCacheLimit(\"SERVER_ROUTE_MODULE\", 512);\nconst maxComposedRouteMetadataCacheEntries = resolveRouterCacheLimit(\n \"COMPOSED_ROUTE_METADATA\",\n 512,\n);\n\nexport function routerRenderRuntimeCacheStats(): RouterRuntimeCacheStat[] {\n return [\n routerRuntimeCacheStat(\n \"server-transform\",\n serverTransformCache,\n maxServerTransformCacheEntries,\n serverTransformCacheCounters,\n ),\n routerRuntimeCacheStat(\n \"server-source-file\",\n serverSourceFileCache,\n maxServerSourceFileCacheEntries,\n serverSourceFileCacheCounters,\n ),\n routerRuntimeCacheStat(\n \"route-source-analysis\",\n routeSourceAnalysisCache,\n maxRouteSourceAnalysisCacheEntries,\n routeSourceAnalysisCacheCounters,\n ),\n routerRuntimeCacheStat(\n \"route-out-of-order-boundary-analysis\",\n routeOutOfOrderBoundaryAnalysisCache,\n maxRouteOutOfOrderBoundaryAnalysisCacheEntries,\n routeOutOfOrderBoundaryAnalysisCacheCounters,\n ),\n routerRuntimeCacheStat(\n \"route-loader-module\",\n routeLoaderModuleCache,\n maxRouteLoaderModuleCacheEntries,\n routeLoaderModuleCacheCounters,\n ),\n routerRuntimeCacheStat(\n \"middleware-module\",\n middlewareModuleCache,\n maxMiddlewareModuleCacheEntries,\n middlewareModuleCacheCounters,\n ),\n routerRuntimeCacheStat(\n \"server-route-module\",\n serverRouteModuleCache,\n maxServerRouteModuleCacheEntries,\n serverRouteModuleCacheCounters,\n ),\n routerRuntimeCacheStat(\n \"composed-route-metadata\",\n composedRouteMetadataCache,\n maxComposedRouteMetadataCacheEntries,\n composedRouteMetadataCacheCounters,\n ),\n routerRuntimeCacheStat(\n \"rendered-shell\",\n renderedShellCache,\n MAX_RENDERED_SHELL_CACHE_ENTRIES,\n renderedShellCacheCounters,\n ),\n ];\n}\n\n// Issue 086: per-shell prefix/suffix cache. Pure layouts (whose\n// exported component takes zero arguments and therefore cannot\n// depend on the request props) produce the same HTML for every\n// request, so we cache the already-split { prefix, suffix } strings\n// keyed by appDir + shellFile + serverModuleCacheVersion. Impure\n// layouts (function.length > 0) are tagged \"impure\" so we skip the\n// detection on subsequent requests but still render per-request.\n//\n// The cache is only active when a version is present (production\n// builds); dev mode keeps the previous behaviour so reloads pick up\n// edits without server restart.\nconst renderedShellCache = new Map<string, RenderedShell | \"impure\">();\nconst MAX_RENDERED_SHELL_CACHE_ENTRIES = 1024;\nconst renderedShellCacheCounters = createRouterRuntimeCacheCounters();\n\ninterface RenderedShell {\n hasOutOfOrderBoundary: boolean;\n prefix: string;\n suffix: string;\n}\n\ninterface RouteSourceAnalysis {\n authIncludesClaims: boolean;\n cachePolicy: ReturnType<typeof routeCachePolicyFromSource>;\n clientInference: ClientRouteInferenceResult;\n hasLoader: boolean;\n routeCode: string;\n streamRoute: boolean;\n usesRuntimeCacheControl: boolean;\n}\n\nexport async function renderAppRequest(options: RenderAppRequestOptions): Promise<Response> {\n const authStorage = authRequestStorage();\n\n if (authStorage.getStore() === undefined) {\n return authStorage.run({}, () => renderAppRequest(options));\n }\n\n const trace = traceContextFromRequest(options.request);\n const url = new URL(options.request.url);\n const requestEvent = {\n method: options.request.method,\n path: url.pathname,\n request: options.request,\n ...(trace === undefined ? {} : { trace }),\n };\n invokeRouterInstrumentation(options.instrumentation?.onRequestStart, requestEvent);\n const response = await renderAppRequestInternal(options);\n invokeRouterInstrumentation(options.instrumentation?.onRequestEnd, {\n ...requestEvent,\n status: response.status,\n });\n\n return applyAppRouterResponseHook(response, options);\n}\n\nfunction createRenderTiming(logger: AppRouterLogger | undefined): RenderTiming | undefined {\n return logger?.debug === undefined ? undefined : { phases: {} };\n}\n\nfunction renderTimingPhaseStartedAt(timing: RenderTiming | undefined): number | undefined {\n return timing === undefined ? undefined : logNow();\n}\n\nfunction finishRenderTimingPhase(\n timing: RenderTiming | undefined,\n startedAt: number | undefined,\n phaseName: string,\n): void {\n if (timing === undefined || startedAt === undefined) {\n return;\n }\n\n timing.phases[phaseName] = logDurationMs(startedAt);\n}\n\nfunction addRenderTimingPhaseDuration(\n timing: RenderTiming | undefined,\n startedAt: number | undefined,\n phaseName: string,\n): void {\n if (timing === undefined || startedAt === undefined) {\n return;\n }\n\n timing.phases[phaseName] = (timing.phases[phaseName] ?? 0) + logDurationMs(startedAt);\n}\n\nasync function waitForRenderPreload(\n options: Pick<RenderAppRequestOptions, \"preload\">,\n timing: RenderTiming | undefined,\n): Promise<void> {\n if (options.preload?.wait !== \"before-render\") {\n return;\n }\n\n const phaseStartedAt = renderTimingPhaseStartedAt(timing);\n try {\n await options.preload.promise;\n } finally {\n finishRenderTimingPhase(timing, phaseStartedAt, \"preloadWaitMs\");\n }\n}\n\nasync function loadServerRenderArtifacts(\n options: RenderAppRequestOptions,\n routeFile: string,\n timing: RenderTiming | undefined,\n): Promise<void> {\n const loader = (\n options as RenderAppRequestOptions & {\n __mreactLoadServerRenderArtifacts?: ((routeFile: string) => Promise<void>) | undefined;\n }\n ).__mreactLoadServerRenderArtifacts;\n\n if (loader === undefined) {\n return;\n }\n\n const phaseStartedAt = renderTimingPhaseStartedAt(timing);\n try {\n await loader(routeFile);\n } finally {\n finishRenderTimingPhase(timing, phaseStartedAt, \"renderArtifactLoadMs\");\n }\n}\n\nfunction emitRenderTiming(\n options: RenderAppRequestOptions,\n timing: RenderTiming | undefined,\n status: number,\n): void {\n if (timing === undefined) {\n return;\n }\n\n emitRouterLog(options.logger, \"debug\", {\n method: options.request.method,\n path: new URL(options.request.url).pathname,\n phases: timing.phases,\n status,\n type: \"router:render:timing\",\n });\n}\n\nexport type AppRouterMiddlewareResult =\n | { request: Request; type: \"continue\" }\n | { response: Response; type: \"response\" };\n\ninterface RouteMiddlewareControl {\n skip?: boolean | readonly string[];\n}\n\nexport async function resolveAppRouterMiddleware(options: {\n appDir: string;\n importPolicy?: AppRouterImportPolicy | undefined;\n instrumentation?: RouterInstrumentation | undefined;\n middlewareControl?: RouteMiddlewareControl | undefined;\n request: Request;\n serverModules?: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined;\n serverModuleCacheVersion?: string | undefined;\n serverSourceFiles?: ReadonlyMap<string, string> | undefined;\n timing?: RenderTiming | undefined;\n vitePlugins?: readonly PluginOption[] | undefined;\n}): Promise<AppRouterMiddlewareResult> {\n const middlewareResponse = await runMiddleware(options);\n\n if (middlewareResponse === undefined) {\n return { request: options.request, type: \"continue\" };\n }\n\n const location = rewriteLocation(middlewareResponse);\n\n if (location !== undefined) {\n return {\n request: new Request(new URL(location, options.request.url), options.request),\n type: \"continue\",\n };\n }\n\n return { response: middlewareResponse, type: \"response\" };\n}\n\nasync function renderAppRequestInternal(options: RenderAppRequestOptions): Promise<Response> {\n const timing = createRenderTiming(options.logger);\n const clientRouteInferenceCache = createClientRouteInferenceCache();\n let phaseStartedAt = renderTimingPhaseStartedAt(timing);\n const routes = options.routes ?? (await scanAppRoutes({ appDir: options.appDir }));\n finishRenderTimingPhase(timing, phaseStartedAt, \"routeScanMs\");\n const url = new URL(options.request.url);\n phaseStartedAt = renderTimingPhaseStartedAt(timing);\n const matched = options.routeMatcher?.match(url.pathname) ?? matchRoute(routes, url.pathname);\n finishRenderTimingPhase(timing, phaseStartedAt, \"routeMatchMs\");\n const hasMiddleware =\n options.skipMiddleware === true\n ? false\n : await hasAppMiddleware({\n appDir: options.appDir,\n serverModuleCacheVersion: options.serverModuleCacheVersion,\n serverSourceFiles: options.serverSourceFiles,\n });\n const middlewareControl =\n hasMiddleware && matched?.route.kind === \"page\"\n ? await loadRouteMiddlewareControl({\n appDir: options.appDir,\n pageFile: matched.route.file,\n serverModuleCacheVersion: options.serverModuleCacheVersion,\n serverSourceFiles: options.serverSourceFiles,\n })\n : undefined;\n phaseStartedAt = renderTimingPhaseStartedAt(timing);\n const middlewareResult =\n options.skipMiddleware === true || !hasMiddleware\n ? ({ request: options.request, type: \"continue\" } satisfies AppRouterMiddlewareResult)\n : await resolveAppRouterMiddleware({\n appDir: options.appDir,\n importPolicy: options.importPolicy,\n instrumentation: options.instrumentation,\n middlewareControl,\n request: options.request,\n serverModules: options.serverModules,\n serverModuleCacheVersion: options.serverModuleCacheVersion,\n serverSourceFiles: options.serverSourceFiles,\n timing,\n vitePlugins: options.vitePlugins,\n });\n finishRenderTimingPhase(timing, phaseStartedAt, \"middlewareMs\");\n\n if (middlewareResult.type === \"response\") {\n emitRenderTiming(options, timing, middlewareResult.response.status);\n return middlewareResult.response;\n }\n\n if (middlewareResult.request !== options.request) {\n return renderAppRequestInternal({\n ...options,\n request: middlewareResult.request,\n skipMiddleware: true,\n });\n }\n\n if (url.pathname === \"/_mreact/actions\") {\n return dispatchServerActionRequest({\n appDir: options.appDir,\n importPolicy: options.importPolicy,\n request: options.request,\n routeCache: options.routeCache,\n ...(options.serverModuleCacheVersion === undefined\n ? {}\n : { serverActionCacheVersion: options.serverModuleCacheVersion }),\n serverActions: options.serverActions,\n });\n }\n\n if (matched === undefined) {\n const notFoundFile = await nearestBoundaryFileForPath({\n appDir: options.appDir,\n filename: \"not-found.mreact.tsx\",\n pathname: url.pathname,\n });\n\n const response = await renderSpecialRoute({\n appDir: options.appDir,\n assetBaseUrl: options.assetBaseUrl,\n error: undefined,\n request: options.request,\n routePath: url.pathname,\n routeFile: notFoundFile,\n routeScripts: options.clientScripts,\n serverModules: options.serverModules,\n serverModuleCacheVersion: options.serverModuleCacheVersion,\n serverSourceFiles: options.serverSourceFiles,\n vitePlugins: options.vitePlugins,\n status: 404,\n textFallback: \"Not Found\",\n });\n emitRenderTiming(options, timing, response.status);\n return response;\n }\n\n const queryClient = options.queryClient ?? createQueryClient();\n let recoveryRoute:\n | {\n clientRoute: boolean;\n props: unknown;\n routePath: string;\n script: string | undefined;\n }\n | undefined;\n let routeCacheContext: ReturnType<typeof beginRouteCacheContext> | undefined;\n\n try {\n if (matched.route.kind === \"asset\") {\n return await dispatchConventionAssetRoute({\n file: matched.route.file,\n request: options.request,\n });\n }\n\n if (matched.route.kind === \"metadata\") {\n return await dispatchMetadataRoute({\n file: matched.route.file,\n params: matched.params,\n request: options.request,\n route: matched.route,\n serverModules: options.serverModules,\n serverModuleCacheVersion: options.serverModuleCacheVersion,\n serverSourceFiles: options.serverSourceFiles,\n vitePlugins: options.vitePlugins,\n });\n }\n\n if (matched.route.kind === \"server\") {\n return await dispatchServerRoute({\n env: options.env,\n file: matched.route.file,\n params: matched.params,\n request: options.request,\n route: matched.route,\n serverModules: options.serverModules,\n serverModuleCacheVersion: options.serverModuleCacheVersion,\n serverSourceFiles: options.serverSourceFiles,\n vitePlugins: options.vitePlugins,\n });\n }\n\n // Issue 080: page routes render HTML for GET / HEAD only. Other\n // methods (PUT, PATCH, DELETE, PROPFIND, ...) get 405 with an\n // Allow header so the response shape complies with RFC 9110 §9\n // and so caching intermediaries do not cross-cache method results.\n const method = options.request.method;\n if (method === \"OPTIONS\") {\n return new Response(null, {\n status: 204,\n headers: { allow: \"GET, HEAD, OPTIONS\" },\n });\n }\n if (method !== \"GET\" && method !== \"HEAD\") {\n return new Response(\"Method Not Allowed\", {\n status: 405,\n headers: { allow: \"GET, HEAD, OPTIONS\" },\n });\n }\n\n routeCacheContext = beginRouteCacheContext(options.routeCache);\n const clientScript = options.clientScripts?.get(matched.route.path);\n const clientStyleSheets = options.clientStyles?.get(matched.route.path);\n phaseStartedAt = renderTimingPhaseStartedAt(timing);\n const originalCode = await readServerSourceFile(\n matched.route.file,\n options.serverModuleCacheVersion,\n options.serverSourceFiles,\n );\n finishRenderTimingPhase(timing, phaseStartedAt, \"readSourceMs\");\n phaseStartedAt = renderTimingPhaseStartedAt(timing);\n const originalAnalysis = await analyzeRouteSource({\n appDir: options.appDir,\n artifact: options.serverModules?.get(matched.route.file)?.analysis,\n code: originalCode,\n filename: matched.route.file,\n routePath: matched.route.path,\n clientRouteInferenceCache,\n serverModuleCacheVersion: options.serverModuleCacheVersion,\n serverSourceFiles: options.serverSourceFiles,\n timing,\n vitePlugins: options.vitePlugins,\n });\n finishRenderTimingPhase(timing, phaseStartedAt, \"sourceAnalysisMs\");\n const cachePolicy = originalAnalysis.cachePolicy;\n const navigationScript = options.navigationScripts?.get(matched.route.path);\n const cacheKey = routeCacheKey(options.appDir, matched.route.path, url);\n const mayUseRouteCache =\n cachePolicy === undefined\n ? originalAnalysis.usesRuntimeCacheControl\n : cachePolicy.revalidateSeconds !== 0;\n phaseStartedAt = renderTimingPhaseStartedAt(timing);\n const cachedResponse = !mayUseRouteCache\n ? undefined\n : await cachedRouteResponse({\n cache: options.routeCache,\n key: cacheKey,\n });\n finishRenderTimingPhase(timing, phaseStartedAt, \"routeCacheMs\");\n\n if (cachedResponse !== undefined) {\n return cachedResponse;\n }\n\n phaseStartedAt = renderTimingPhaseStartedAt(timing);\n const preparedActions = await prepareRouteServerActions({\n appDir: options.appDir,\n code: originalCode,\n pageFile: matched.route.file,\n request: options.request,\n });\n finishRenderTimingPhase(timing, phaseStartedAt, \"serverActionsMs\");\n const code = preparedActions.code;\n phaseStartedAt = renderTimingPhaseStartedAt(timing);\n const routeAnalysis =\n code === originalCode\n ? originalAnalysis\n : await analyzeRouteSource({\n appDir: options.appDir,\n code,\n filename: matched.route.file,\n routePath: matched.route.path,\n clientRouteInferenceCache,\n serverModuleCacheVersion: undefined,\n serverSourceFiles: options.serverSourceFiles,\n vitePlugins: options.vitePlugins,\n });\n finishRenderTimingPhase(timing, phaseStartedAt, \"routeCodeAnalysisMs\");\n const routeCode = routeAnalysis.routeCode;\n const streamRoute = routeAnalysis.streamRoute;\n const clientInference = routeAnalysis.clientInference;\n const clientRoute = clientInference.client;\n phaseStartedAt = renderTimingPhaseStartedAt(timing);\n const dataPromise = routeAnalysis.hasLoader\n ? loadRouteDataWithInstrumentation({\n appDir: options.appDir,\n code,\n context: {\n params: matched.params,\n queryClient,\n request: options.request,\n },\n filename: matched.route.file,\n importPolicy: options.importPolicy,\n instrumentation: options.instrumentation,\n request: options.request,\n routeId: routeIdForPath(matched.route.path),\n routePath: matched.route.path,\n serverModules: options.serverModules,\n serverModuleCacheVersion: options.serverModuleCacheVersion,\n vitePlugins: options.vitePlugins,\n timing,\n })\n : undefined;\n finishRenderTimingPhase(timing, phaseStartedAt, \"loaderStartMs\");\n recoveryRoute = {\n clientRoute,\n props: {\n params: matched.params,\n request: { url: options.request.url },\n },\n routePath: matched.route.path,\n script: clientScript,\n };\n if (streamRoute) {\n phaseStartedAt = renderTimingPhaseStartedAt(timing);\n const loadingFile = await nearestExistingBoundaryFileForPage({\n appDir: options.appDir,\n filename: \"loading.mreact.tsx\",\n pageFile: matched.route.file,\n serverSourceFiles: options.serverSourceFiles,\n });\n finishRenderTimingPhase(timing, phaseStartedAt, \"loadingBoundaryLookupMs\");\n const streamShellResponseHeaders = {\n \"content-type\": \"text/html; charset=utf-8\",\n \"x-mreact-stream\": \"1\",\n };\n\n phaseStartedAt = renderTimingPhaseStartedAt(timing);\n const mayRenderOutOfOrder = await mayRenderOutOfOrderBoundaryDeep({\n code: routeCode,\n filename: matched.route.file,\n serverModuleCacheVersion: options.serverModuleCacheVersion,\n serverSourceFiles: options.serverSourceFiles,\n });\n finishRenderTimingPhase(timing, phaseStartedAt, \"outOfOrderAnalysisMs\");\n\n if (loadingFile === undefined && !mayRenderOutOfOrder) {\n phaseStartedAt = renderTimingPhaseStartedAt(timing);\n let data: unknown;\n try {\n data = dataPromise === undefined ? undefined : await dataPromise;\n } finally {\n finishRenderTimingPhase(timing, phaseStartedAt, \"loaderWaitMs\");\n }\n if (data instanceof Response) {\n emitRenderTiming(options, timing, data.status);\n return data;\n }\n await waitForRenderPreload(options, timing);\n await loadServerRenderArtifacts(options, matched.route.file, timing);\n phaseStartedAt = renderTimingPhaseStartedAt(timing);\n const stringOutput = transformServerModule({\n code: routeCode,\n clientBoundaryImports: clientInference.clientBoundaryImports,\n filename: matched.route.file,\n serverModules: options.serverModules,\n serverOutput: \"string\",\n });\n finishRenderTimingPhase(timing, phaseStartedAt, \"stringTransformMs\");\n const stringFatalDiagnostics = fatalServerDiagnostics(stringOutput.diagnostics);\n\n if (stringFatalDiagnostics.length > 0) {\n return new Response(formatServerDiagnostics(matched.route.file, stringFatalDiagnostics), {\n status: 500,\n headers: { \"content-type\": \"text/plain; charset=utf-8\" },\n });\n }\n\n const renderedPage = await runWithQueryClient(queryClient, () =>\n runServerModuleWithSlots(\n stringOutput.code,\n {\n data,\n params: matched.params,\n queryClient,\n request: options.request,\n },\n matched.route.file,\n options.serverModules,\n options.serverModuleCacheVersion,\n options.vitePlugins,\n ),\n );\n const pageHtml = renderedPage.html;\n const pageHtmlForLayout = clientRoute\n ? withHydrationMarkers({\n assetBaseUrl: options.assetBaseUrl,\n clientReferenceManifest: stringOutput.metadata.clientReferenceManifest,\n html: pageHtml,\n routePath: matched.route.path,\n script: clientScript,\n props: {\n params: matched.params,\n request: { url: options.request.url },\n data,\n },\n })\n : isNavigationRequest(options.request)\n ? withRouteMarkers({\n html: pageHtml,\n routePath: matched.route.path,\n })\n : pageHtml;\n let html = await runWithQueryClient(queryClient, () =>\n applyLayouts({\n appDir: options.appDir,\n pageFile: matched.route.file,\n html: pageHtmlForLayout,\n props: {\n data,\n params: matched.params,\n queryClient,\n request: options.request,\n },\n slots: renderedPage.slots,\n serverModules: options.serverModules,\n serverModuleCacheVersion: options.serverModuleCacheVersion,\n serverSourceFiles: options.serverSourceFiles,\n clientRouteInferenceCache,\n timing,\n vitePlugins: options.vitePlugins,\n }),\n );\n const metadata = await loadComposedRouteMetadata({\n appDir: options.appDir,\n code: originalCode,\n context: {\n data,\n params: matched.params,\n request: options.request,\n },\n filename: matched.route.file,\n importPolicy: options.importPolicy,\n routes,\n serverModules: options.serverModules,\n serverModuleCacheVersion: options.serverModuleCacheVersion,\n serverSourceFiles: options.serverSourceFiles,\n vitePlugins: options.vitePlugins,\n });\n html = injectHeadMetadata(html, metadata);\n html = injectAuthSessionClaims(\n html,\n originalAnalysis.authIncludesClaims ? currentAuthClaims() : undefined,\n );\n html = injectQueryState(html, dehydrate(queryClient));\n const response = withOptionalActionCookie(\n htmlResponse(\n `<!DOCTYPE html>${clientNavigationHeadTags({\n assetBaseUrl: options.assetBaseUrl,\n currentStyleSheets: clientStyleSheets,\n currentScript: clientRoute ? clientScript : undefined,\n currentNavigationScript: clientRoute ? undefined : navigationScript,\n routeScripts: options.clientScripts,\n })}${html}`,\n {\n headers: responseHeadersForMetadata(metadata, options.request, {\n \"x-mreact-stream\": \"1\",\n }),\n },\n ),\n preparedActions.csrfToken,\n preparedActions.csrfTokenIsNew === true,\n );\n emitRenderTiming(options, timing, response.status);\n return response;\n }\n\n let streamData: unknown;\n if (loadingFile === undefined) {\n phaseStartedAt = renderTimingPhaseStartedAt(timing);\n try {\n streamData = dataPromise === undefined ? undefined : await dataPromise;\n } finally {\n finishRenderTimingPhase(timing, phaseStartedAt, \"loaderWaitMs\");\n }\n if (streamData instanceof Response) {\n emitRenderTiming(options, timing, streamData.status);\n return streamData;\n }\n }\n\n await waitForRenderPreload(options, timing);\n await loadServerRenderArtifacts(options, matched.route.file, timing);\n phaseStartedAt = renderTimingPhaseStartedAt(timing);\n const output = transformServerModule({\n code: routeCode,\n clientBoundaryImports: clientInference.clientBoundaryImports,\n filename: matched.route.file,\n serverModules: options.serverModules,\n serverOutput: \"stream\",\n serverAwaitHydration: clientRoute,\n });\n finishRenderTimingPhase(timing, phaseStartedAt, \"streamTransformMs\");\n const fatalDiagnostics = fatalServerDiagnostics(output.diagnostics);\n\n if (fatalDiagnostics.length > 0) {\n return new Response(formatServerDiagnostics(matched.route.file, fatalDiagnostics), {\n status: 500,\n headers: { \"content-type\": \"text/plain; charset=utf-8\" },\n });\n }\n\n if (loadingFile !== undefined) {\n phaseStartedAt = renderTimingPhaseStartedAt(timing);\n const stream = await runServerStreamModuleWithLoading(output.code, {\n appDir: options.appDir,\n assetBaseUrl: options.assetBaseUrl,\n clientRoute,\n data: dataPromise ?? Promise.resolve(undefined),\n loadingFile,\n pageFile: matched.route.file,\n params: matched.params,\n queryClient,\n request: options.request,\n routePath: matched.route.path,\n routeScripts: options.clientScripts,\n serverModules: options.serverModules,\n serverModuleCacheVersion: options.serverModuleCacheVersion,\n serverSourceFiles: options.serverSourceFiles,\n vitePlugins: options.vitePlugins,\n clientRouteInferenceCache,\n script: clientScript,\n clientReferenceManifest: output.metadata.clientReferenceManifest,\n });\n finishRenderTimingPhase(timing, phaseStartedAt, \"streamConstructionMs\");\n\n const response = withOptionalActionCookie(\n new Response(stream, {\n headers: streamShellResponseHeaders,\n }),\n preparedActions.csrfToken,\n preparedActions.csrfTokenIsNew === true,\n );\n emitRenderTiming(options, timing, response.status);\n return response;\n }\n\n const data = streamData;\n const props = {\n data,\n params: matched.params,\n queryClient,\n request: options.request,\n };\n phaseStartedAt = renderTimingPhaseStartedAt(timing);\n const stream = runServerStreamModule(output.code, {\n appDir: options.appDir,\n assetBaseUrl: options.assetBaseUrl,\n pageFile: matched.route.file,\n props,\n routePath: matched.route.path,\n routeScripts: options.clientScripts,\n serverModules: options.serverModules,\n serverModuleCacheVersion: options.serverModuleCacheVersion,\n serverSourceFiles: options.serverSourceFiles,\n vitePlugins: options.vitePlugins,\n clientRouteInferenceCache,\n clientRoute,\n script: clientScript,\n clientReferenceManifest: output.metadata.clientReferenceManifest,\n });\n finishRenderTimingPhase(timing, phaseStartedAt, \"streamConstructionMs\");\n\n const response = withOptionalActionCookie(\n new Response(stream, {\n headers: streamShellResponseHeaders,\n }),\n preparedActions.csrfToken,\n preparedActions.csrfTokenIsNew === true,\n );\n emitRenderTiming(options, timing, response.status);\n return response;\n }\n\n phaseStartedAt = renderTimingPhaseStartedAt(timing);\n let data: unknown;\n try {\n data = dataPromise === undefined ? undefined : await dataPromise;\n } finally {\n finishRenderTimingPhase(timing, phaseStartedAt, \"loaderWaitMs\");\n }\n if (data instanceof Response) {\n emitRenderTiming(options, timing, data.status);\n return data;\n }\n await waitForRenderPreload(options, timing);\n await loadServerRenderArtifacts(options, matched.route.file, timing);\n phaseStartedAt = renderTimingPhaseStartedAt(timing);\n const output = transformServerModule({\n code: routeCode,\n clientBoundaryImports: clientInference.clientBoundaryImports,\n filename: matched.route.file,\n serverModules: options.serverModules,\n serverOutput: \"string\",\n });\n finishRenderTimingPhase(timing, phaseStartedAt, \"stringTransformMs\");\n const fatalDiagnostics = fatalServerDiagnostics(output.diagnostics);\n\n if (fatalDiagnostics.length > 0) {\n return new Response(formatServerDiagnostics(matched.route.file, fatalDiagnostics), {\n status: 500,\n headers: { \"content-type\": \"text/plain; charset=utf-8\" },\n });\n }\n\n phaseStartedAt = renderTimingPhaseStartedAt(timing);\n const renderedPage = await runWithQueryClient(queryClient, () =>\n runServerModuleWithSlots(\n output.code,\n {\n data,\n params: matched.params,\n queryClient,\n request: options.request,\n },\n matched.route.file,\n options.serverModules,\n options.serverModuleCacheVersion,\n options.vitePlugins,\n timing,\n ),\n );\n finishRenderTimingPhase(timing, phaseStartedAt, \"pageRenderMs\");\n const pageHtml = renderedPage.html;\n // Wrap the page (not the full document) with the hydration marker so\n // the marker sits inside <body>, not around <html>. Wrapping <html>\n // forces the browser HTML parser to strip the wrappers and promote\n // <head> / <body> children up to the marker, which flattens the\n // layout into the marker and breaks the hydration target lookup.\n const pageHtmlForLayout = clientRoute\n ? withHydrationMarkers({\n assetBaseUrl: options.assetBaseUrl,\n clientReferenceManifest: output.metadata.clientReferenceManifest,\n html: pageHtml,\n routePath: matched.route.path,\n script: clientScript,\n props: {\n params: matched.params,\n request: { url: options.request.url },\n data,\n },\n })\n : isNavigationRequest(options.request)\n ? withRouteMarkers({\n html: pageHtml,\n routePath: matched.route.path,\n })\n : pageHtml;\n phaseStartedAt = renderTimingPhaseStartedAt(timing);\n let html = await runWithQueryClient(queryClient, () =>\n applyLayouts({\n appDir: options.appDir,\n pageFile: matched.route.file,\n html: pageHtmlForLayout,\n props: {\n data,\n params: matched.params,\n queryClient,\n request: options.request,\n },\n slots: renderedPage.slots,\n serverModules: options.serverModules,\n serverModuleCacheVersion: options.serverModuleCacheVersion,\n serverSourceFiles: options.serverSourceFiles,\n clientRouteInferenceCache,\n timing,\n vitePlugins: options.vitePlugins,\n }),\n );\n finishRenderTimingPhase(timing, phaseStartedAt, \"layoutRenderMs\");\n phaseStartedAt = renderTimingPhaseStartedAt(timing);\n const metadata = await loadComposedRouteMetadata({\n appDir: options.appDir,\n code: originalCode,\n context: {\n data,\n params: matched.params,\n request: options.request,\n },\n filename: matched.route.file,\n importPolicy: options.importPolicy,\n routes,\n serverModules: options.serverModules,\n serverModuleCacheVersion: options.serverModuleCacheVersion,\n serverSourceFiles: options.serverSourceFiles,\n vitePlugins: options.vitePlugins,\n });\n finishRenderTimingPhase(timing, phaseStartedAt, \"metadataMs\");\n phaseStartedAt = renderTimingPhaseStartedAt(timing);\n html = injectHeadMetadata(html, metadata);\n html = injectAuthSessionClaims(\n html,\n originalAnalysis.authIncludesClaims ? currentAuthClaims() : undefined,\n );\n html = injectQueryState(html, dehydrate(queryClient));\n\n const response = withOptionalActionCookie(\n htmlResponse(\n `<!DOCTYPE html>${clientNavigationHeadTags({\n assetBaseUrl: options.assetBaseUrl,\n currentStyleSheets: clientStyleSheets,\n currentScript: clientRoute ? clientScript : undefined,\n currentNavigationScript: clientRoute ? undefined : navigationScript,\n routeScripts: options.clientScripts,\n })}${html}`,\n {\n headers: responseHeadersForMetadata(metadata, options.request),\n },\n ),\n preparedActions.csrfToken,\n preparedActions.csrfTokenIsNew === true,\n );\n\n const effectiveCachePolicy = cachePolicy ?? routeCacheContext.cachePolicy;\n\n const finalResponse = preparedActions.hasFormActions\n ? withRouteCacheHeader(response, effectiveCachePolicy)\n : await cacheRouteResponse({\n key: cacheKey,\n cache: options.routeCache,\n path: matched.route.path,\n policy: effectiveCachePolicy,\n response,\n });\n finishRenderTimingPhase(timing, phaseStartedAt, \"responseBuildMs\");\n emitRenderTiming(options, timing, finalResponse.status);\n return finalResponse;\n } catch (error) {\n if (isRedirectError(error)) {\n const response = new Response(null, {\n headers: { location: error.location },\n status: error.status,\n });\n emitRenderTiming(options, timing, response.status);\n return response;\n }\n\n if (isNotFoundError(error)) {\n const notFoundFile = await nearestBoundaryFileForPage({\n appDir: options.appDir,\n filename: \"not-found.mreact.tsx\",\n pageFile: matched.route.file,\n });\n\n const response = await renderSpecialRoute({\n appDir: options.appDir,\n assetBaseUrl: options.assetBaseUrl,\n error: undefined,\n request: options.request,\n routePath: matched.route.path,\n routeFile: notFoundFile,\n routeScripts: options.clientScripts,\n serverModules: options.serverModules,\n serverModuleCacheVersion: options.serverModuleCacheVersion,\n serverSourceFiles: options.serverSourceFiles,\n vitePlugins: options.vitePlugins,\n navigation: recoveryRoute,\n status: 404,\n textFallback: \"Not Found\",\n });\n emitRenderTiming(options, timing, response.status);\n return response;\n }\n\n const errorFile = await nearestBoundaryFileForPage({\n appDir: options.appDir,\n filename: \"error.mreact.tsx\",\n pageFile: matched.route.file,\n });\n\n const response = await renderSpecialRoute({\n appDir: options.appDir,\n assetBaseUrl: options.assetBaseUrl,\n error,\n request: options.request,\n routePath: matched.route.path,\n routeFile: errorFile,\n routeScripts: options.clientScripts,\n serverModules: options.serverModules,\n serverModuleCacheVersion: options.serverModuleCacheVersion,\n serverSourceFiles: options.serverSourceFiles,\n vitePlugins: options.vitePlugins,\n navigation: recoveryRoute,\n status: 500,\n textFallback: error instanceof Error ? error.message : String(error),\n });\n emitRenderTiming(options, timing, response.status);\n return response;\n } finally {\n await routeCacheContext?.dispose();\n }\n}\n\nasync function applyAppRouterResponseHook(\n response: Response,\n options: RenderAppRequestOptions,\n): Promise<Response> {\n const hooked = await options.onResponse?.(response, {\n request: options.request,\n });\n\n return hooked instanceof Response ? hooked : response;\n}\n\nfunction withOptionalActionCookie(\n response: Response,\n csrfToken: string | undefined,\n csrfTokenIsNew: boolean,\n): Response {\n // Only re-issue Set-Cookie when this render minted the token. Reusing\n // an incoming cookie value (Issue 070) means no Set-Cookie is needed\n // and avoids stomping on a concurrent tab's hidden form input.\n if (csrfToken !== undefined && csrfTokenIsNew) {\n response.headers.append(\"set-cookie\", serverActionCookie(csrfToken));\n }\n\n return response;\n}\n\nfunction modulePreloadTags(script: string | undefined, assetBaseUrl: string | undefined): string {\n return script === undefined\n ? \"\"\n : `<link rel=\"modulepreload\" href=\"${escapeHtmlAttribute(\n assetPath(script, assetBaseUrl ?? \"/_mreact/client/\"),\n )}\">`;\n}\n\nfunction clientNavigationHeadTags(options: {\n assetBaseUrl: string | undefined;\n currentStyleSheets?: readonly string[] | undefined;\n currentNavigationScript?: string | undefined;\n currentScript: string | undefined;\n routeScripts: ReadonlyMap<string, string> | undefined;\n}): string {\n return [\n styleSheetTags(options.currentStyleSheets, options.assetBaseUrl),\n modulePreloadTags(options.currentScript, options.assetBaseUrl),\n navigationRuntimeScriptTag(options.currentNavigationScript, options.assetBaseUrl),\n routePrefetchManifestScript(options.routeScripts, options.assetBaseUrl),\n ].join(\"\");\n}\n\nfunction styleSheetTags(\n styleSheets: readonly string[] | undefined,\n assetBaseUrl: string | undefined,\n): string {\n return (styleSheets ?? [])\n .map(\n (styleSheet) =>\n `<link rel=\"stylesheet\" href=\"${escapeHtmlAttribute(\n styleSheetHref(styleSheet, assetBaseUrl),\n )}\">`,\n )\n .join(\"\");\n}\n\nfunction styleSheetHref(styleSheet: string, assetBaseUrl: string | undefined): string {\n if (styleSheet.startsWith(\"/\") || hasUrlScheme(styleSheet)) {\n return styleSheet;\n }\n\n return assetPath(styleSheet, assetBaseUrl ?? \"/_mreact/client/\");\n}\n\nfunction hasUrlScheme(value: string): boolean {\n const colon = value.indexOf(\":\");\n\n if (colon <= 0) {\n return false;\n }\n\n for (let index = 0; index < colon; index += 1) {\n const code = value.charCodeAt(index);\n const letter = (code >= 65 && code <= 90) || (code >= 97 && code <= 122);\n const digit = code >= 48 && code <= 57;\n const allowedSymbol = code === 43 || code === 45 || code === 46;\n\n if (index === 0 ? !letter : !letter && !digit && !allowedSymbol) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction navigationRuntimeScriptTag(\n script: string | undefined,\n assetBaseUrl: string | undefined,\n): string {\n return script === undefined\n ? \"\"\n : `<script type=\"module\" src=\"${escapeHtmlAttribute(\n assetPath(script, assetBaseUrl ?? \"/_mreact/client/\"),\n )}\"></script>`;\n}\n\nfunction routePrefetchManifestScript(\n routeScripts: ReadonlyMap<string, string> | undefined,\n assetBaseUrl: string | undefined,\n): string {\n if (routeScripts === undefined || routeScripts.size === 0) {\n return \"\";\n }\n\n const routes = Array.from(routeScripts.entries(), ([path, script]) => ({\n path,\n script: assetPath(script, assetBaseUrl ?? \"/_mreact/client/\"),\n }));\n const json = JSON.stringify(routes).replaceAll(\"<\", \"\\\\u003c\");\n\n return `<script type=\"application/json\" id=\"mreact-route-prefetch-manifest\">${json}</script>`;\n}\n\nfunction isNavigationRequest(request: Request): boolean {\n return request.headers.get(\"x-mreact-navigation\") === \"1\";\n}\n\nasync function nearestBoundaryFileForPage(options: {\n appDir: string;\n filename: string;\n pageFile: string;\n}): Promise<string> {\n const relativeDir = relative(options.appDir, dirname(options.pageFile));\n const parts = relativeDir === \"\" ? [] : relativeDir.split(sep);\n\n return nearestBoundaryFileFromParts({\n appDir: options.appDir,\n filename: options.filename,\n parts,\n });\n}\n\nasync function nearestExistingBoundaryFileForPage(options: {\n appDir: string;\n filename: string;\n pageFile: string;\n serverSourceFiles?: ReadonlyMap<string, string> | undefined;\n}): Promise<string | undefined> {\n const relativeDir = relative(options.appDir, dirname(options.pageFile));\n const parts = relativeDir === \"\" ? [] : relativeDir.split(sep);\n\n return nearestExistingBoundaryFileFromParts({\n appDir: options.appDir,\n filename: options.filename,\n parts,\n serverSourceFiles: options.serverSourceFiles,\n });\n}\n\nasync function nearestBoundaryFileForPath(options: {\n appDir: string;\n filename: string;\n pathname: string;\n}): Promise<string> {\n const parts = options.pathname\n .replace(/^\\/+|\\/+$/g, \"\")\n .split(\"/\")\n .filter((part) => part.length > 0);\n\n return nearestBoundaryFileFromParts({\n appDir: options.appDir,\n filename: options.filename,\n parts,\n });\n}\n\nasync function nearestBoundaryFileFromParts(options: {\n appDir: string;\n filename: string;\n parts: string[];\n}): Promise<string> {\n for (let count = options.parts.length; count >= 0; count -= 1) {\n for (const filename of boundaryFilenameCandidates(options.filename)) {\n const candidate = join(options.appDir, ...options.parts.slice(0, count), filename);\n\n try {\n await access(candidate);\n return candidate;\n } catch {\n // Keep walking toward the root boundary.\n }\n }\n }\n\n return join(options.appDir, boundaryFilenameCandidates(options.filename)[0] ?? options.filename);\n}\n\nasync function nearestExistingBoundaryFileFromParts(options: {\n appDir: string;\n filename: string;\n parts: string[];\n serverSourceFiles?: ReadonlyMap<string, string> | undefined;\n}): Promise<string | undefined> {\n for (let count = options.parts.length; count >= 0; count -= 1) {\n for (const filename of boundaryFilenameCandidates(options.filename)) {\n const candidate = join(options.appDir, ...options.parts.slice(0, count), filename);\n\n if (options.serverSourceFiles !== undefined) {\n if (options.serverSourceFiles.has(candidate)) {\n return candidate;\n }\n continue;\n }\n\n try {\n await access(candidate);\n return candidate;\n } catch {\n // Keep walking toward the root boundary.\n }\n }\n }\n\n return undefined;\n}\n\nfunction boundaryFilenameCandidates(filename: string): string[] {\n if (!filename.endsWith(\".mreact.tsx\")) {\n return [filename];\n }\n\n const standardFilename = filename.replace(\".mreact.tsx\", \".tsx\");\n\n return [standardFilename, filename];\n}\n\nasync function renderSpecialRoute(options: {\n appDir: string;\n assetBaseUrl?: string | undefined;\n error: unknown;\n navigation?:\n | {\n clientRoute: boolean;\n props: unknown;\n routePath: string;\n script: string | undefined;\n }\n | undefined;\n request: Request;\n routePath?: string | undefined;\n routeFile: string;\n routeScripts?: ReadonlyMap<string, string> | undefined;\n serverModules?: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined;\n serverModuleCacheVersion?: string | undefined;\n serverSourceFiles?: ReadonlyMap<string, string> | undefined;\n status: number;\n textFallback: string;\n vitePlugins?: readonly PluginOption[] | undefined;\n}): Promise<Response> {\n try {\n await access(options.routeFile);\n } catch {\n return new Response(options.textFallback, { status: options.status });\n }\n\n const props = {\n data: undefined,\n debug: errorDebugContext(options.error, options.routePath),\n error: normalizeErrorForProps(options.error),\n params: {},\n queryClient: createQueryClient(),\n request: options.request,\n requestId: requestIdForErrorContext(options.request),\n routeId: routeIdForPath(options.routePath ?? new URL(options.request.url).pathname),\n traceId: traceContextFromRequest(options.request)?.traceId,\n };\n const pageHtml = await renderServerFileToHtml(\n options.routeFile,\n props,\n options.serverModules,\n options.serverModuleCacheVersion,\n options.serverSourceFiles,\n options.vitePlugins,\n );\n const pageHtmlForLayout =\n options.navigation?.clientRoute === true\n ? withHydrationMarkers({\n assetBaseUrl: options.assetBaseUrl,\n clientReferenceManifest: undefined,\n html: pageHtml,\n props: options.navigation.props,\n routePath: options.navigation.routePath,\n script: options.navigation.script,\n })\n : pageHtml;\n const html = await applyLayouts({\n appDir: options.appDir,\n pageFile: options.routeFile,\n html: pageHtmlForLayout,\n props,\n serverModules: options.serverModules,\n serverModuleCacheVersion: options.serverModuleCacheVersion,\n serverSourceFiles: options.serverSourceFiles,\n vitePlugins: options.vitePlugins,\n });\n\n return new Response(\n `<!DOCTYPE html>${clientNavigationHeadTags({\n assetBaseUrl: options.assetBaseUrl,\n currentScript:\n options.navigation?.clientRoute === true ? options.navigation.script : undefined,\n routeScripts: options.routeScripts,\n })}${html}`,\n {\n headers: { \"content-type\": \"text/html; charset=utf-8\" },\n status: options.status,\n },\n );\n}\n\nasync function renderServerFileToHtml(\n file: string,\n props: ServerComponentProps,\n serverModules: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined,\n serverModuleCacheVersion: string | undefined,\n serverSourceFiles: ReadonlyMap<string, string> | undefined,\n vitePlugins?: readonly PluginOption[] | undefined,\n): Promise<string> {\n const code = await readServerSourceFile(file, serverModuleCacheVersion, serverSourceFiles);\n const output = transformServerModule({\n code,\n filename: file,\n serverModules,\n serverOutput: \"string\",\n });\n const fatalDiagnostics = fatalServerDiagnostics(output.diagnostics);\n\n if (fatalDiagnostics.length > 0) {\n throw new Error(formatServerDiagnostics(file, fatalDiagnostics));\n }\n\n return runServerModule(\n output.code,\n props,\n file,\n serverModules,\n serverModuleCacheVersion,\n vitePlugins,\n );\n}\n\nfunction normalizeErrorForProps(error: unknown): { message: string } {\n if (error instanceof Error) {\n return { message: error.message };\n }\n\n return { message: String(error) };\n}\n\nfunction requestIdForErrorContext(request: Request): string {\n return request.headers.get(\"x-request-id\") ?? randomUUID();\n}\n\nfunction errorDebugContext(\n error: unknown,\n routePath: string | undefined,\n):\n | {\n cause?: unknown;\n route?: { matched: string };\n stack?: string;\n }\n | undefined {\n if (process.env.NODE_ENV === \"production\" || !(error instanceof Error)) {\n return undefined;\n }\n\n return {\n ...(error.cause === undefined ? {} : { cause: error.cause }),\n ...(routePath === undefined ? {} : { route: { matched: routePath } }),\n ...(error.stack === undefined ? {} : { stack: error.stack }),\n };\n}\n\nasync function dispatchServerRoute(options: {\n env?: unknown;\n file: string;\n params: RouteParams;\n request: Request;\n route: AppRoute;\n serverModules?: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined;\n serverModuleCacheVersion?: string | undefined;\n serverSourceFiles?: ReadonlyMap<string, string> | undefined;\n vitePlugins?: readonly PluginOption[] | undefined;\n}): Promise<Response> {\n const module = await loadServerRouteModule(options);\n const handler = module[options.request.method] ?? module.ALL ?? module.default;\n\n if (typeof handler !== \"function\") {\n return new Response(\"Method Not Allowed\", { status: 405 });\n }\n\n let response: unknown;\n\n try {\n response = await handler(options.request, {\n env: options.env,\n params: options.params,\n request: options.request,\n route: options.route,\n });\n } catch (error) {\n if (error instanceof Response) {\n return error;\n }\n\n throw error;\n }\n\n return response instanceof Response\n ? response\n : new Response(\"Invalid route response\", { status: 500 });\n}\n\nasync function dispatchConventionAssetRoute(options: {\n file: string;\n request: Request;\n}): Promise<Response> {\n if (options.request.method !== \"GET\" && options.request.method !== \"HEAD\") {\n return new Response(\"Method Not Allowed\", {\n status: 405,\n headers: { allow: \"GET, HEAD\" },\n });\n }\n\n const bytes = await readFile(options.file);\n return bytesResponse(options.request.method === \"HEAD\" ? new Uint8Array() : bytes, {\n headers: {\n \"cache-control\": \"public, max-age=3600\",\n \"content-type\": appFileConventionContentType(options.file),\n },\n });\n}\n\nasync function dispatchMetadataRoute(options: {\n file: string;\n params: RouteParams;\n request: Request;\n route: Extract<AppRoute, { kind: \"metadata\" }>;\n serverModules?: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined;\n serverModuleCacheVersion?: string | undefined;\n serverSourceFiles?: ReadonlyMap<string, string> | undefined;\n vitePlugins?: readonly PluginOption[] | undefined;\n}): Promise<Response> {\n if (options.request.method !== \"GET\" && options.request.method !== \"HEAD\") {\n return new Response(\"Method Not Allowed\", {\n status: 405,\n headers: { allow: \"GET, HEAD\" },\n });\n }\n\n const module = await loadServerRouteModule(options);\n const handler = module.default;\n if (typeof handler !== \"function\") {\n return new Response(\"Invalid metadata route response\", { status: 500 });\n }\n\n const url = new URL(options.request.url);\n const context = {\n baseUrl: url.origin,\n host: url.host,\n params: options.params,\n request: options.request,\n };\n const value = await handler(context);\n\n if (value instanceof Response) {\n return value;\n }\n\n if (options.route.convention === \"robots\") {\n return textConventionResponse(serializeRobots(value as RobotsManifest));\n }\n if (options.route.convention === \"sitemap\") {\n return xmlConventionResponse(serializeSitemap(value as readonly SitemapEntry[]));\n }\n if (options.route.convention === \"manifest\") {\n return jsonConventionResponse(value as ManifestDescriptor);\n }\n if (options.route.convention === \"opengraph-image\") {\n const body =\n value instanceof Uint8Array\n ? value\n : new TextEncoder().encode(typeof value === \"string\" ? value : String(value));\n return bytesResponse(\n body,\n {\n headers: {\n \"cache-control\": \"public, max-age=3600\",\n \"content-type\": typeof value === \"string\" && value.trimStart().startsWith(\"<svg\")\n ? \"image/svg+xml\"\n : \"application/octet-stream\",\n },\n },\n );\n }\n\n return new Response(\"Invalid metadata route convention\", { status: 500 });\n}\n\nasync function loadServerRouteModule(options: {\n file: string;\n serverModules?: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined;\n serverModuleCacheVersion?: string | undefined;\n serverSourceFiles?: ReadonlyMap<string, string> | undefined;\n vitePlugins?: readonly PluginOption[] | undefined;\n}): Promise<Record<string, unknown>> {\n if (\n options.serverModuleCacheVersion === undefined &&\n (options.vitePlugins === undefined || options.vitePlugins.length === 0)\n ) {\n return await importAppRouterFileModule<Record<string, unknown>>(options.file);\n }\n\n const code = await readServerSourceFile(\n options.file,\n options.serverModuleCacheVersion,\n options.serverSourceFiles,\n );\n const artifactCode = options.serverModules?.get(options.file)?.request;\n const codeHash = memoizedHashText(code);\n if (\n artifactCode !== undefined &&\n artifactCode.sourceHash === codeHash &&\n artifactCode.moduleFile !== undefined\n ) {\n return await importBuiltServerModuleFile<Record<string, unknown>>({\n file: artifactCode.moduleFile,\n label: `server-route:${options.file}`,\n serverModuleCacheVersion: options.serverModuleCacheVersion,\n });\n }\n\n const moduleCode =\n artifactCode !== undefined && artifactCode.sourceHash === codeHash ? artifactCode.code : code;\n const cacheKey = `server-route\\0${options.file}\\0${options.serverModuleCacheVersion}\\0${codeHash}\\0${memoizedHashText(moduleCode)}\\0${vitePluginsCacheKey(options.vitePlugins)}`;\n const cached = readRouterRuntimeCacheEntry(\n serverRouteModuleCache,\n cacheKey,\n serverRouteModuleCacheCounters,\n );\n\n if (cached !== undefined) {\n return cached;\n }\n\n const loaded = importAppRouterSourceModule<Record<string, unknown>>({\n cacheKey,\n code: moduleCode,\n label: `server-route:${options.file}`,\n ...(moduleCode === code ? { resolveDir: dirname(options.file) } : {}),\n sourcefile: options.file,\n vitePlugins: options.vitePlugins,\n }).catch((error) => {\n serverRouteModuleCache.delete(cacheKey);\n throw error;\n });\n setBoundedCacheEntry(\n serverRouteModuleCache,\n cacheKey,\n loaded,\n maxServerRouteModuleCacheEntries,\n serverRouteModuleCacheCounters,\n );\n\n return loaded;\n}\n\nasync function runMiddleware(options: {\n appDir: string;\n importPolicy?: AppRouterImportPolicy | undefined;\n instrumentation?: RouterInstrumentation | undefined;\n middlewareControl?: RouteMiddlewareControl | undefined;\n request: Request;\n serverModules?: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined;\n serverModuleCacheVersion?: string | undefined;\n serverSourceFiles?: ReadonlyMap<string, string> | undefined;\n timing?: RenderTiming | undefined;\n vitePlugins?: readonly PluginOption[] | undefined;\n}): Promise<Response | undefined> {\n if (options.middlewareControl?.skip === true) {\n return undefined;\n }\n\n const candidates = [\n join(options.appDir, \"middleware.ts\"),\n join(options.appDir, \"middleware.mreact.ts\"),\n ];\n const pathname = new URL(options.request.url).pathname;\n\n for (const file of candidates) {\n try {\n await access(file);\n } catch {\n continue;\n }\n\n const code = await readServerSourceFile(\n file,\n options.serverModuleCacheVersion,\n options.serverSourceFiles,\n );\n const staticConfig = parseStaticMiddlewareConfig(code);\n\n if (shouldSkipMiddleware(staticConfig, options.middlewareControl)) {\n return undefined;\n }\n\n if (\n staticConfig.hasMatcher &&\n staticConfig.matcher !== undefined &&\n !middlewareMatches(staticConfig, pathname)\n ) {\n return undefined;\n }\n\n let module: MiddlewareModule;\n const moduleLoadStartedAt = renderTimingPhaseStartedAt(options.timing);\n try {\n module = await loadMiddlewareModule({\n appDir: options.appDir,\n code,\n file,\n importPolicy: options.importPolicy,\n serverModules: options.serverModules,\n serverModuleCacheVersion: options.serverModuleCacheVersion,\n serverSourceFiles: options.serverSourceFiles,\n vitePlugins: options.vitePlugins,\n });\n } finally {\n finishRenderTimingPhase(options.timing, moduleLoadStartedAt, \"middlewareModuleLoadMs\");\n }\n\n if (shouldSkipMiddleware(module.config, options.middlewareControl)) {\n return undefined;\n }\n\n if (!middlewareMatches(module.config, pathname)) {\n return undefined;\n }\n\n const middleware = module.middleware ?? module.default;\n\n if (typeof middleware !== \"function\") {\n return undefined;\n }\n\n const trace = traceContextFromRequest(options.request);\n const event = {\n method: options.request.method,\n name: \"middleware\",\n path: new URL(options.request.url).pathname,\n request: options.request,\n ...(trace === undefined ? {} : { trace }),\n };\n invokeRouterInstrumentation(options.instrumentation?.onMiddlewareStart, event);\n\n try {\n const executionStartedAt = renderTimingPhaseStartedAt(options.timing);\n let response: unknown;\n try {\n response = await middleware(options.request);\n } finally {\n finishRenderTimingPhase(options.timing, executionStartedAt, \"middlewareExecutionMs\");\n }\n invokeRouterInstrumentation(options.instrumentation?.onMiddlewareEnd, event);\n\n return response instanceof Response ? response : undefined;\n } catch (error) {\n invokeRouterInstrumentation(options.instrumentation?.onMiddlewareEnd, {\n ...event,\n error,\n });\n\n if (isRedirectError(error)) {\n return new Response(null, {\n headers: { location: error.location },\n status: error.status,\n });\n }\n\n if (isNotFoundError(error)) {\n return new Response(\"Not Found\", { status: 404 });\n }\n\n throw error;\n }\n }\n\n return undefined;\n}\n\ninterface MiddlewareModule {\n config?: {\n id?: string | undefined;\n matcher?: string | RegExp | readonly string[] | undefined;\n };\n default?: unknown;\n middleware?: unknown;\n}\n\ninterface StaticMiddlewareConfig {\n hasMatcher: boolean;\n id?: string | undefined;\n matcher?: string | readonly string[] | undefined;\n}\n\nfunction shouldSkipMiddleware(\n config: Pick<NonNullable<MiddlewareModule[\"config\"]>, \"id\"> | undefined,\n control: RouteMiddlewareControl | undefined,\n): boolean {\n if (control?.skip === true) {\n return true;\n }\n\n if (!Array.isArray(control?.skip)) {\n return false;\n }\n\n return typeof config?.id === \"string\" && control.skip.includes(config.id);\n}\n\nfunction parseStaticMiddlewareConfig(code: string): StaticMiddlewareConfig {\n const configBody = /\\bexport\\s+const\\s+config\\s*=\\s*\\{(?<body>[\\s\\S]*?)\\}\\s*;?/.exec(code)?.groups\n ?.body;\n\n if (configBody === undefined) {\n return { hasMatcher: false };\n }\n\n const id = /\\bid\\s*:\\s*[\"'](?<id>[^\"']+)[\"']/.exec(configBody)?.groups?.id;\n const stringMatcher = /\\bmatcher\\s*:\\s*[\"'](?<matcher>[^\"']+)[\"']/.exec(configBody)?.groups\n ?.matcher;\n\n if (stringMatcher !== undefined) {\n return {\n hasMatcher: true,\n ...(id === undefined ? {} : { id }),\n matcher: stringMatcher,\n };\n }\n\n const matcherArray = /\\bmatcher\\s*:\\s*\\[(?<items>[\\s\\S]*?)\\]/.exec(configBody)?.groups?.items;\n\n if (matcherArray !== undefined) {\n return {\n hasMatcher: true,\n ...(id === undefined ? {} : { id }),\n matcher: Array.from(\n matcherArray.matchAll(/[\"'](?<matcher>[^\"']+)[\"']/g),\n (match) => match.groups?.matcher,\n ).filter((matcher): matcher is string => matcher !== undefined),\n };\n }\n\n return {\n hasMatcher: /\\bmatcher\\s*:/.test(configBody),\n ...(id === undefined ? {} : { id }),\n };\n}\n\nasync function loadMiddlewareModule(options: {\n appDir: string;\n code?: string | undefined;\n file: string;\n importPolicy?: AppRouterImportPolicy | undefined;\n serverModules?: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined;\n serverModuleCacheVersion?: string | undefined;\n serverSourceFiles?: ReadonlyMap<string, string> | undefined;\n vitePlugins?: readonly PluginOption[] | undefined;\n}): Promise<MiddlewareModule> {\n const code =\n options.code ??\n (await readServerSourceFile(\n options.file,\n options.serverModuleCacheVersion,\n options.serverSourceFiles,\n ));\n const cacheKey =\n options.serverModuleCacheVersion === undefined\n ? undefined\n : `middleware\\0${options.appDir}\\0${options.file}\\0${options.serverModuleCacheVersion}\\0${memoizedHashText(code)}\\0${importPolicyCacheKey(options.importPolicy)}\\0${vitePluginsCacheKey(options.vitePlugins)}`;\n\n if (cacheKey !== undefined) {\n const cached = readRouterRuntimeCacheEntry(\n middlewareModuleCache,\n cacheKey,\n middlewareModuleCacheCounters,\n );\n\n if (cached !== undefined) {\n return cached;\n }\n }\n\n const loaded = loadBundledMiddlewareModule({\n appDir: options.appDir,\n code,\n file: options.file,\n importPolicy: options.importPolicy,\n prebuiltArtifact: prebuiltRequestModuleArtifact(options.serverModules, options.file, code),\n serverModuleCacheVersion: options.serverModuleCacheVersion,\n vitePlugins: options.vitePlugins,\n }).catch((error) => {\n if (cacheKey !== undefined) {\n middlewareModuleCache.delete(cacheKey);\n }\n throw error;\n });\n\n if (cacheKey !== undefined) {\n setBoundedCacheEntry(\n middlewareModuleCache,\n cacheKey,\n loaded,\n maxMiddlewareModuleCacheEntries,\n middlewareModuleCacheCounters,\n );\n }\n\n return loaded;\n}\n\nexport async function bundleMiddlewareModuleCode(options: {\n appDir: string;\n code: string;\n file: string;\n importPolicy?: AppRouterImportPolicy | undefined;\n vitePlugins?: readonly PluginOption[] | undefined;\n}): Promise<string> {\n const output = await bundleRouterModule({\n code: options.code,\n filename: options.file,\n platform: \"node\",\n plugins: [\n fileImportMetaUrlPlugin(),\n createAppRouterImportPolicyPlugin({\n appDir: options.appDir,\n importPolicy: options.importPolicy,\n label: \"Middleware\",\n }),\n ],\n vitePlugins: options.vitePlugins,\n });\n const compiled = output.code;\n\n if (compiled === undefined) {\n throw new Error(`Failed to compile middleware for ${options.file}.`);\n }\n\n return compiled;\n}\n\nasync function loadBundledMiddlewareModule(options: {\n appDir: string;\n code: string;\n file: string;\n importPolicy?: AppRouterImportPolicy | undefined;\n prebuiltArtifact?: BuiltServerModuleOutputLike | undefined;\n serverModuleCacheVersion?: string | undefined;\n vitePlugins?: readonly PluginOption[] | undefined;\n}): Promise<MiddlewareModule> {\n if (options.prebuiltArtifact?.moduleFile !== undefined) {\n return await importBuiltServerModuleFile<MiddlewareModule>({\n file: options.prebuiltArtifact.moduleFile,\n label: `middleware:${options.file}`,\n serverModuleCacheVersion: options.serverModuleCacheVersion,\n });\n }\n\n const compiled =\n options.prebuiltArtifact?.code ??\n (await bundleMiddlewareModuleCode({\n appDir: options.appDir,\n code: options.code,\n file: options.file,\n importPolicy: options.importPolicy,\n vitePlugins: options.vitePlugins,\n }));\n\n return importAppRouterSourceModule<MiddlewareModule>({\n ...(options.serverModuleCacheVersion === undefined\n ? {}\n : {\n cacheKey: `middleware:${options.file}:${options.serverModuleCacheVersion}:${memoizedHashText(compiled)}:${vitePluginsCacheKey(options.vitePlugins)}`,\n }),\n code: compiled,\n label: `middleware:${options.file}`,\n vitePlugins: options.vitePlugins,\n });\n}\n\nfunction middlewareMatches(config: MiddlewareModule[\"config\"], pathname: string): boolean {\n const matcher = config?.matcher;\n\n if (matcher === undefined) {\n return true;\n }\n\n if (matcher instanceof RegExp) {\n return matcher.test(pathname);\n }\n\n if (Array.isArray(matcher)) {\n return matcher.some((item) => middlewarePatternMatches(item, pathname));\n }\n\n return typeof matcher === \"string\" && middlewarePatternMatches(matcher, pathname);\n}\n\nfunction middlewarePatternMatches(pattern: string, pathname: string): boolean {\n if (pattern === pathname) {\n return true;\n }\n\n if (pattern.endsWith(\"/:path*\")) {\n const prefix = pattern.slice(0, -\"/:path*\".length);\n\n return pathname === prefix || pathname.startsWith(`${prefix}/`);\n }\n\n if (pattern.endsWith(\"*\")) {\n const prefix = pattern.slice(0, -1);\n\n return pathname.startsWith(prefix);\n }\n\n return false;\n}\n\nfunction transformServerModule(options: {\n code: string;\n clientBoundaryImports?: readonly string[];\n filename: string;\n serverModules?: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined;\n serverOutput: ServerOutputMode;\n serverAwaitHydration?: boolean;\n}): TransformOutput {\n const sourceHash = memoizedHashText(options.code);\n const artifact = options.serverModules?.get(options.filename)?.[options.serverOutput];\n\n if (\n artifact !== undefined &&\n artifact.sourceHash === sourceHash &&\n options.serverAwaitHydration !== true\n ) {\n return {\n code: artifact.code,\n diagnostics: [],\n map: null,\n metadata: artifact.metadata ?? {\n compiler: {\n frontend: \"oxc\",\n typescriptFallback: false,\n },\n components: [],\n filename: options.filename,\n imports: [],\n serverOutput: options.serverOutput,\n target: \"server\",\n },\n };\n }\n\n const awaitHydrationKey = options.serverAwaitHydration === true ? \"1\" : \"0\";\n const key = `${options.filename}\\0${options.serverOutput}\\0${sourceHash}\\0${awaitHydrationKey}`;\n const cached = readRouterRuntimeCacheEntry(\n serverTransformCache,\n key,\n serverTransformCacheCounters,\n );\n\n if (cached !== undefined) {\n return cached;\n }\n\n const output = transform({\n code: options.code,\n ...(options.clientBoundaryImports === undefined\n ? {}\n : { clientBoundaryImports: options.clientBoundaryImports }),\n dev: true,\n filename: options.filename,\n serverEscape: nativeEscapeTransform,\n serverOutput: options.serverOutput,\n target: \"server\",\n ...(options.serverAwaitHydration === true ? { serverAwaitHydration: true } : {}),\n });\n\n setBoundedCacheEntry(\n serverTransformCache,\n key,\n output,\n maxServerTransformCacheEntries,\n serverTransformCacheCounters,\n );\n\n return output;\n}\n\nasync function analyzeRouteSource(options: {\n appDir: string;\n artifact?: BuiltRouteSourceAnalysisSummary | undefined;\n clientRouteInferenceCache: ClientRouteInferenceCache;\n code: string;\n filename: string;\n routePath: string;\n serverModuleCacheVersion: string | undefined;\n serverSourceFiles?: ReadonlyMap<string, string> | undefined;\n timing?: RenderTiming | undefined;\n vitePlugins?: readonly PluginOption[] | undefined;\n}): Promise<RouteSourceAnalysis> {\n const sourceHash = memoizedHashText(options.code);\n if (\n options.artifact !== undefined &&\n options.serverModuleCacheVersion !== undefined &&\n options.artifact.sourceHash === sourceHash &&\n options.artifact.routePath === options.routePath\n ) {\n const artifactStartedAt = renderTimingPhaseStartedAt(options.timing);\n const analysis = routeSourceAnalysisFromArtifact(options.artifact);\n finishRenderTimingPhase(options.timing, artifactStartedAt, \"sourceAnalysisArtifactMs\");\n return analysis;\n }\n\n const cacheKey = `${options.serverModuleCacheVersion ?? \"dev\"}\\0${options.filename}\\0${sourceHash}\\0${vitePluginsCacheKey(options.vitePlugins)}`;\n const cached = readRouterRuntimeCacheEntry(\n routeSourceAnalysisCache,\n cacheKey,\n routeSourceAnalysisCacheCounters,\n );\n\n if (cached !== undefined) {\n return cached;\n }\n\n const pending = analyzeRouteSourceUncached(options).catch((error) => {\n routeSourceAnalysisCache.delete(cacheKey);\n throw error;\n });\n setBoundedCacheEntry(\n routeSourceAnalysisCache,\n cacheKey,\n pending,\n maxRouteSourceAnalysisCacheEntries,\n routeSourceAnalysisCacheCounters,\n );\n\n return pending;\n}\n\nfunction routeSourceAnalysisFromArtifact(\n artifact: BuiltRouteSourceAnalysisSummary,\n): RouteSourceAnalysis {\n return {\n authIncludesClaims: artifact.authIncludesClaims,\n cachePolicy: artifact.cachePolicy,\n clientInference: {\n client: artifact.clientRoute,\n clientBoundaryImports: [...artifact.clientBoundaryImports],\n diagnostics: [],\n },\n hasLoader: artifact.hasLoader,\n routeCode: artifact.routeCode,\n streamRoute: artifact.streamRoute,\n usesRuntimeCacheControl: artifact.usesRuntimeCacheControl,\n };\n}\n\nasync function analyzeRouteSourceUncached(options: {\n appDir: string;\n clientRouteInferenceCache: ClientRouteInferenceCache;\n code: string;\n filename: string;\n routePath: string;\n serverSourceFiles?: ReadonlyMap<string, string> | undefined;\n vitePlugins?: readonly PluginOption[] | undefined;\n}): Promise<RouteSourceAnalysis> {\n const routeCode = stripRouteModuleExports(options.code);\n const clientInference = await inferClientRouteModule({\n appDir: options.appDir,\n cache: options.clientRouteInferenceCache,\n code: routeCode,\n filename: options.filename,\n routePath: options.routePath,\n vitePlugins: options.vitePlugins,\n });\n\n return {\n authIncludesClaims: authIncludesClaims(options.code),\n cachePolicy: routeCachePolicyFromSource(options.code),\n clientInference,\n hasLoader: hasLoaderExport(options.code),\n routeCode,\n streamRoute:\n isStreamRouteSource(options.code) ||\n routeClosureMayUseAwaitBoundary({\n filename: options.filename,\n files: routeSourceFilesForAnalysis(options),\n projectRoot: options.appDir,\n source: options.code,\n }),\n usesRuntimeCacheControl: usesRuntimeCacheControl(options.code),\n };\n}\n\nfunction routeSourceFilesForAnalysis(options: {\n code: string;\n filename: string;\n serverSourceFiles?: ReadonlyMap<string, string> | undefined;\n}): Record<string, string> {\n return options.serverSourceFiles === undefined\n ? { [options.filename]: options.code }\n : { ...Object.fromEntries(options.serverSourceFiles), [options.filename]: options.code };\n}\n\n// Per-request hashText (SHA-256) is one of the hot path's dominant\n// costs. Cache hashes for `code` strings we have already seen this\n// process (common case: the prepared code is identical across requests\n// when the source file is unchanged).\nconst codeHashCache = new Map<string, string>();\nconst MAX_CODE_HASH_ENTRIES = 256;\n\nfunction memoizedHashText(code: string): string {\n const cached = codeHashCache.get(code);\n if (cached !== undefined) {\n return cached;\n }\n\n const hash = hashText(code);\n if (codeHashCache.size >= MAX_CODE_HASH_ENTRIES) {\n // Simple LRU eviction: drop the oldest entry (Map keeps insertion order).\n const oldestKey = codeHashCache.keys().next().value;\n if (oldestKey !== undefined) {\n codeHashCache.delete(oldestKey);\n }\n }\n codeHashCache.set(code, hash);\n return hash;\n}\n\nasync function runServerModule(\n code: string,\n props: ServerComponentProps,\n sourcefile: string,\n serverModules: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined,\n serverModuleCacheVersion: string | undefined,\n vitePlugins: readonly PluginOption[] | undefined,\n): Promise<string> {\n const component = await loadServerComponent(\n code,\n sourcefile,\n serverModules,\n serverModuleCacheVersion,\n vitePlugins,\n );\n\n return component(props);\n}\n\nasync function runServerModuleWithSlots(\n code: string,\n props: ServerComponentProps,\n sourcefile: string,\n serverModules: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined,\n serverModuleCacheVersion: string | undefined,\n vitePlugins?: readonly PluginOption[] | undefined,\n timing?: RenderTiming | undefined,\n): Promise<{ html: string; slots: Record<string, string> }> {\n const moduleLoadStartedAt = renderTimingPhaseStartedAt(timing);\n const module = await loadServerModule(\n code,\n sourcefile,\n serverModules,\n serverModuleCacheVersion,\n vitePlugins,\n );\n finishRenderTimingPhase(timing, moduleLoadStartedAt, \"pageModuleLoadMs\");\n const component = selectServerComponent(module);\n const componentStartedAt = renderTimingPhaseStartedAt(timing);\n const html = await component(props);\n finishRenderTimingPhase(timing, componentStartedAt, \"pageComponentRenderMs\");\n const slotsStartedAt = renderTimingPhaseStartedAt(timing);\n const slots = await renderRouteSlots(module.slots, props);\n finishRenderTimingPhase(timing, slotsStartedAt, \"routeSlotsRenderMs\");\n\n return {\n html,\n slots,\n };\n}\n\nasync function loadServerModule(\n code: string,\n sourcefile: string,\n serverModules: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined,\n serverModuleCacheVersion: string | undefined,\n vitePlugins?: readonly PluginOption[] | undefined,\n): Promise<ServerModuleExports> {\n const artifact = serverModules?.get(sourcefile)?.string;\n const codeHash = memoizedHashText(code);\n const prebuiltCode = prebuiltServerComponentModuleCode(artifact, code, codeHash);\n if (\n artifact !== undefined &&\n prebuiltServerModuleOutputMatches(artifact, code, codeHash) &&\n artifact.moduleFile !== undefined\n ) {\n return await importBuiltServerModuleFile<ServerModuleExports>({\n file: artifact.moduleFile,\n label: `server-component:${sourcefile}`,\n serverModuleCacheVersion,\n });\n }\n const moduleCode = prebuiltCode ?? code;\n const cacheKey =\n serverModuleCacheVersion === undefined\n ? undefined\n : `server-component:${serverModuleCacheVersion}:${sourcefile}:${\n moduleCode === code ? codeHash : memoizedHashText(moduleCode)\n }:${vitePluginsCacheKey(vitePlugins)}`;\n return await importAppRouterSourceModule<ServerModuleExports>({\n cacheKey,\n code: moduleCode,\n label: `server-component:${sourcefile}`,\n ...(prebuiltCode === undefined\n ? {\n resolveDir: dirname(sourcefile),\n serverSourceTransform: {\n dev: serverModuleCacheVersion === undefined,\n serverModules,\n serverOutput: \"string\" as const,\n vitePlugins,\n },\n }\n : {}),\n sourcefile,\n vitePlugins,\n });\n}\n\nfunction prebuiltServerComponentModuleCode(\n artifact: BuiltServerModuleArtifact[\"string\"] | BuiltServerModuleArtifact[\"stream\"] | undefined,\n code: string,\n codeHash: string,\n): string | undefined {\n if (artifact === undefined) {\n return undefined;\n }\n\n if (!prebuiltServerModuleOutputMatches(artifact, code, codeHash)) {\n return undefined;\n }\n\n return artifact.bundleCode;\n}\n\nfunction prebuiltServerModuleOutputMatches(\n artifact: BuiltServerModuleOutputLike,\n code: string,\n codeHash: string,\n): boolean {\n return artifact.sourceHash === codeHash || artifact.code === code;\n}\n\nasync function importBuiltServerModuleFile<T>(options: {\n file: string;\n label: string;\n serverModuleCacheVersion?: string | undefined;\n}): Promise<T> {\n return await importAppRouterBuiltFileModule<T>({\n ...(options.serverModuleCacheVersion === undefined\n ? {}\n : {\n cacheKey: `${options.label}:${options.serverModuleCacheVersion}:${options.file}`,\n }),\n file: options.file,\n });\n}\n\nasync function loadServerComponent(\n code: string,\n sourcefile: string,\n serverModules: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined,\n serverModuleCacheVersion: string | undefined,\n vitePlugins?: readonly PluginOption[] | undefined,\n): Promise<ServerComponent> {\n const module = await loadServerModule(\n code,\n sourcefile,\n serverModules,\n serverModuleCacheVersion,\n vitePlugins,\n );\n return selectServerComponent(module);\n}\n\nfunction selectServerComponent(module: ServerModuleExports): ServerComponent {\n const component = module.default ?? module.App ?? Object.values(module)[0];\n\n if (typeof component !== \"function\") {\n throw new Error(\"No page component export was found.\");\n }\n\n return component as ServerComponent;\n}\n\nasync function renderRouteSlots(\n slots: RouteSlotExports | undefined,\n props: ServerComponentProps,\n): Promise<Record<string, string>> {\n if (slots === undefined) {\n return {};\n }\n\n const rendered: Record<string, string> = {};\n\n for (const [name, value] of Object.entries(slots)) {\n rendered[name] = typeof value === \"function\" ? await value(props) : value;\n }\n\n return rendered;\n}\n\nfunction runServerStreamModule(\n code: string,\n options: {\n appDir: string;\n assetBaseUrl?: string | undefined;\n clientRouteInferenceCache: ClientRouteInferenceCache;\n pageFile: string;\n props: ServerComponentProps;\n routePath: string;\n routeScripts?: ReadonlyMap<string, string> | undefined;\n clientRoute: boolean;\n clientReferenceManifest?: readonly ClientReferenceMetadata[] | undefined;\n serverModules?: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined;\n serverModuleCacheVersion?: string | undefined;\n serverSourceFiles?: ReadonlyMap<string, string> | undefined;\n script?: string | undefined;\n vitePlugins?: readonly PluginOption[] | undefined;\n },\n): ReadableStream<Uint8Array> {\n return renderToReadableStream(async (sink) => {\n const slots = await renderServerStreamSlots(code, {\n pageFile: options.pageFile,\n props: options.props,\n serverModules: options.serverModules,\n serverModuleCacheVersion: options.serverModuleCacheVersion,\n vitePlugins: options.vitePlugins,\n });\n const layoutShells = await layoutShellsForPage(\n options.appDir,\n options.pageFile,\n options.props,\n slots,\n options.serverModules,\n options.serverModuleCacheVersion,\n options.serverSourceFiles,\n options.clientRouteInferenceCache,\n options.vitePlugins,\n );\n const marker = options.clientRoute\n ? hydrationMarkerParts({\n assetBaseUrl: options.assetBaseUrl,\n clientReferenceManifest: options.clientReferenceManifest,\n routePath: options.routePath,\n script: options.script,\n props: {\n params: options.props.params,\n request: { url: options.props.request.url },\n data: options.props.data,\n },\n })\n : undefined;\n\n sink.append(\"<!DOCTYPE html>\");\n sink.append(\n clientNavigationHeadTags({\n assetBaseUrl: options.assetBaseUrl,\n currentScript: options.clientRoute ? options.script : undefined,\n routeScripts: options.routeScripts,\n }),\n );\n\n for (const shell of layoutShells) {\n sink.append(shell.prefix);\n }\n\n sink.append(marker?.prefix ?? \"\");\n\n await appendServerStreamModule(\n code,\n sink,\n options.props,\n options.pageFile,\n options.serverModules,\n options.serverModuleCacheVersion,\n options.vitePlugins,\n );\n\n sink.append(marker?.suffix ?? \"\");\n\n for (const shell of [...layoutShells].reverse()) {\n sink.append(shell.suffix);\n }\n\n if (hasOutOfOrderBoundary(code) || layoutShells.some((shell) => shell.hasOutOfOrderBoundary)) {\n renderOutOfOrderReorderScript(sink);\n }\n });\n}\n\nfunction hasOutOfOrderBoundary(code: string): boolean {\n return code.includes(\"renderOutOfOrderBoundary\");\n}\n\nfunction mayRenderOutOfOrderBoundary(code: string): boolean {\n return (\n code.includes(\"<Await\") || code.includes(\"Await(\") || code.includes(\"renderOutOfOrderBoundary\")\n );\n}\n\nasync function mayRenderOutOfOrderBoundaryDeep(options: {\n code: string;\n filename: string;\n serverModuleCacheVersion: string | undefined;\n serverSourceFiles: ReadonlyMap<string, string> | undefined;\n}): Promise<boolean> {\n const seen = new Set<string>();\n\n return await mayRenderOutOfOrderBoundaryDeepInner(options, seen);\n}\n\nasync function mayRenderOutOfOrderBoundaryDeepInner(\n options: {\n code: string;\n filename: string;\n serverModuleCacheVersion: string | undefined;\n serverSourceFiles: ReadonlyMap<string, string> | undefined;\n },\n seen: Set<string>,\n): Promise<boolean> {\n if (mayRenderOutOfOrderBoundary(options.code)) {\n return true;\n }\n\n if (seen.has(options.filename)) {\n return false;\n }\n seen.add(options.filename);\n\n const sourceHash = memoizedHashText(options.code);\n const cacheKey = `${options.serverModuleCacheVersion ?? \"dev\"}\\0${options.filename}\\0${sourceHash}`;\n const cached = readRouterRuntimeCacheEntry(\n routeOutOfOrderBoundaryAnalysisCache,\n cacheKey,\n routeOutOfOrderBoundaryAnalysisCacheCounters,\n );\n\n if (cached !== undefined) {\n return cached;\n }\n\n const pending = mayRenderImportedOutOfOrderBoundary(options, seen).catch((error) => {\n routeOutOfOrderBoundaryAnalysisCache.delete(cacheKey);\n throw error;\n });\n setBoundedCacheEntry(\n routeOutOfOrderBoundaryAnalysisCache,\n cacheKey,\n pending,\n maxRouteOutOfOrderBoundaryAnalysisCacheEntries,\n routeOutOfOrderBoundaryAnalysisCacheCounters,\n );\n\n return pending;\n}\n\nasync function mayRenderImportedOutOfOrderBoundary(\n options: {\n code: string;\n filename: string;\n serverModuleCacheVersion: string | undefined;\n serverSourceFiles: ReadonlyMap<string, string> | undefined;\n },\n seen: Set<string>,\n): Promise<boolean> {\n for (const specifier of localModuleSpecifiers(options.code)) {\n const file = await resolveLocalServerSourceImport(options.filename, specifier);\n\n if (file === undefined) {\n continue;\n }\n\n const code = await readServerSourceFile(\n file,\n options.serverModuleCacheVersion,\n options.serverSourceFiles,\n );\n\n if (\n await mayRenderOutOfOrderBoundaryDeepInner(\n {\n code,\n filename: file,\n serverModuleCacheVersion: options.serverModuleCacheVersion,\n serverSourceFiles: options.serverSourceFiles,\n },\n seen,\n )\n ) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction localModuleSpecifiers(code: string): string[] {\n const specifiers = new Set<string>();\n const importPattern =\n /\\b(?:import|export)\\s+(?:type\\s+)?(?:[^\"']*?\\s+from\\s*)?[\"'](?<source>\\.{1,2}\\/[^\"']+)[\"']/g;\n\n for (const match of code.matchAll(importPattern)) {\n const source = match.groups?.source;\n\n if (source !== undefined) {\n specifiers.add(source);\n }\n }\n\n return Array.from(specifiers);\n}\n\nasync function resolveLocalServerSourceImport(\n fromFile: string,\n specifier: string,\n): Promise<string | undefined> {\n const base = join(dirname(fromFile), specifier);\n const candidates = localServerSourceImportCandidates(base);\n\n for (const candidate of candidates) {\n try {\n await access(candidate);\n return candidate;\n } catch {\n // Try the next TypeScript route/source extension.\n }\n }\n\n return undefined;\n}\n\nfunction localServerSourceImportCandidates(base: string): string[] {\n const candidates = [base];\n\n if (base.endsWith(\".js\")) {\n const withoutJs = base.slice(0, -\".js\".length);\n candidates.push(`${withoutJs}.ts`, `${withoutJs}.tsx`, `${withoutJs}.mreact.tsx`);\n } else if (base.endsWith(\".jsx\")) {\n const withoutJsx = base.slice(0, -\".jsx\".length);\n candidates.push(`${withoutJsx}.tsx`, `${withoutJsx}.mreact.tsx`);\n } else if (base.endsWith(\".mreact\")) {\n candidates.push(`${base}.tsx`);\n } else {\n candidates.push(\n `${base}.ts`,\n `${base}.tsx`,\n `${base}.mreact.tsx`,\n join(base, \"index.ts\"),\n join(base, \"index.tsx\"),\n join(base, \"index.mreact.tsx\"),\n );\n }\n\n return candidates;\n}\n\nasync function runServerStreamModuleWithLoading(\n code: string,\n options: {\n appDir: string;\n assetBaseUrl?: string | undefined;\n clientRouteInferenceCache: ClientRouteInferenceCache;\n clientRoute: boolean;\n clientReferenceManifest?: readonly ClientReferenceMetadata[] | undefined;\n data: Promise<unknown>;\n loadingFile: string;\n pageFile: string;\n params: RouteParams;\n queryClient: QueryClient;\n request: Request;\n routePath: string;\n routeScripts?: ReadonlyMap<string, string> | undefined;\n serverModules?: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined;\n serverModuleCacheVersion?: string | undefined;\n serverSourceFiles?: ReadonlyMap<string, string> | undefined;\n script?: string | undefined;\n vitePlugins?: readonly PluginOption[] | undefined;\n },\n): Promise<ReadableStream<Uint8Array>> {\n const loadingProps = {\n data: undefined,\n params: options.params,\n queryClient: options.queryClient,\n request: options.request,\n };\n const layoutShells = await layoutShellsForPage(\n options.appDir,\n options.pageFile,\n loadingProps,\n {},\n options.serverModules,\n options.serverModuleCacheVersion,\n options.serverSourceFiles,\n options.clientRouteInferenceCache,\n options.vitePlugins,\n );\n const loadingHtml = await renderServerFileToHtml(\n options.loadingFile,\n loadingProps,\n options.serverModules,\n options.serverModuleCacheVersion,\n options.serverSourceFiles,\n options.vitePlugins,\n );\n const marker = options.clientRoute\n ? hydrationMarkerParts({\n assetBaseUrl: options.assetBaseUrl,\n clientReferenceManifest: options.clientReferenceManifest,\n routePath: options.routePath,\n script: options.script,\n props: {\n params: options.params,\n request: { url: options.request.url },\n },\n })\n : undefined;\n\n return renderToReadableStream((sink) => {\n sink.append(\"<!DOCTYPE html>\");\n sink.append(\n clientNavigationHeadTags({\n assetBaseUrl: options.assetBaseUrl,\n currentScript: options.clientRoute ? options.script : undefined,\n routeScripts: options.routeScripts,\n }),\n );\n\n for (const shell of layoutShells) {\n sink.append(shell.prefix);\n }\n\n sink.append(marker?.prefix ?? \"\");\n\n renderVisibleOutOfOrderBoundary(\n sink,\n \"mreact-route\",\n options.data,\n async (boundarySink, data) => {\n await appendServerStreamModule(\n code,\n boundarySink,\n {\n data,\n params: options.params,\n queryClient: options.queryClient,\n request: options.request,\n },\n options.pageFile,\n options.serverModules,\n options.serverModuleCacheVersion,\n options.vitePlugins,\n );\n },\n {\n placeholder(boundarySink) {\n boundarySink.append(loadingHtml);\n },\n placeholderTag: \"div\",\n },\n );\n\n sink.append(marker?.suffix ?? \"\");\n\n for (const shell of [...layoutShells].reverse()) {\n sink.append(shell.suffix);\n }\n\n renderOutOfOrderReorderScript(sink);\n });\n}\n\nfunction renderVisibleOutOfOrderBoundary<T>(\n sink: HtmlSink,\n id: string,\n value: T,\n render: (sink: HtmlSink, value: Awaited<T>) => void | PromiseLike<void>,\n options: {\n catch?: (sink: HtmlSink, error: unknown) => void | PromiseLike<void>;\n placeholder?: (sink: HtmlSink) => void | PromiseLike<void>;\n placeholderTag?: string;\n } = {},\n): void {\n const placeholderSink = createStringSink();\n void options.placeholder?.(placeholderSink);\n const placeholderTag = normalizeVisibleOutOfOrderPlaceholderTag(options.placeholderTag);\n sink.append(\n `<${placeholderTag} data-mreact-oob-placeholder=\"${escapeHtmlAttribute(id)}\">${placeholderSink.toString()}</${placeholderTag}>`,\n );\n\n const task = renderVisibleOutOfOrderFragment(sink, id, value, render, options);\n\n if (sink.defer === undefined) {\n void task;\n return;\n }\n\n sink.defer(task);\n}\n\nfunction normalizeVisibleOutOfOrderPlaceholderTag(tag: unknown): string {\n if (typeof tag !== \"string\") {\n return \"span\";\n }\n\n const normalized = tag.trim().toLowerCase();\n return /^[a-z][a-z0-9-]*$/.test(normalized) ? normalized : \"span\";\n}\n\nasync function renderVisibleOutOfOrderFragment<T>(\n sink: HtmlSink,\n id: string,\n value: T,\n render: (sink: HtmlSink, value: Awaited<T>) => void | PromiseLike<void>,\n options: {\n catch?: (sink: HtmlSink, error: unknown) => void | PromiseLike<void>;\n },\n): Promise<void> {\n const fragmentSink = createStringSink();\n\n await renderAsyncBoundary(\n fragmentSink,\n value,\n render,\n options.catch === undefined ? {} : { catch: options.catch },\n );\n await fragmentSink.drain();\n\n sink.append(\n `<template data-mreact-oob-fragment=\"${escapeHtmlAttribute(id)}\">${fragmentSink.toString()}</template>`,\n );\n}\n\nasync function appendServerStreamModule(\n code: string,\n sink: HtmlSink,\n props: ServerComponentProps,\n sourcefile: string,\n serverModules: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined,\n serverModuleCacheVersion: string | undefined,\n vitePlugins?: readonly PluginOption[] | undefined,\n): Promise<void> {\n const module = await loadServerStreamModule(\n code,\n sourcefile,\n serverModules,\n serverModuleCacheVersion,\n vitePlugins,\n );\n const component = selectStreamComponent(module);\n\n await component(sink, props);\n}\n\nasync function renderServerStreamSlots(\n code: string,\n options: {\n pageFile: string;\n props: ServerComponentProps;\n serverModules?: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined;\n serverModuleCacheVersion?: string | undefined;\n vitePlugins?: readonly PluginOption[] | undefined;\n },\n): Promise<Record<string, string>> {\n if (!hasRouteSlotsExport(code)) {\n return {};\n }\n\n const module = await loadServerStreamModule(\n code,\n options.pageFile,\n options.serverModules,\n options.serverModuleCacheVersion,\n options.vitePlugins,\n );\n\n if (module.slots === undefined) {\n return {};\n }\n\n const rendered: Record<string, string> = {};\n\n for (const [name, value] of Object.entries(module.slots)) {\n if (typeof value !== \"function\") {\n rendered[name] = value;\n continue;\n }\n\n const sink = createStringSink();\n await value(sink, options.props);\n await sink.drain();\n rendered[name] = sink.toString();\n }\n\n return rendered;\n}\n\nfunction hasRouteSlotsExport(code: string): boolean {\n return /^\\s*export\\s+const\\s+slots\\s*=/m.test(code);\n}\n\nasync function loadServerStreamModule(\n code: string,\n sourcefile: string,\n serverModules: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined,\n serverModuleCacheVersion: string | undefined,\n vitePlugins?: readonly PluginOption[] | undefined,\n): Promise<StreamModuleExports> {\n const artifactCode = serverModules?.get(sourcefile)?.stream;\n const codeHash = memoizedHashText(code);\n const prebuiltCode = prebuiltServerComponentModuleCode(artifactCode, code, codeHash);\n if (\n artifactCode !== undefined &&\n prebuiltServerModuleOutputMatches(artifactCode, code, codeHash) &&\n artifactCode.moduleFile !== undefined\n ) {\n return await importBuiltServerModuleFile<StreamModuleExports>({\n file: artifactCode.moduleFile,\n label: `server-stream-component:${sourcefile}`,\n serverModuleCacheVersion,\n });\n }\n const moduleCode = prebuiltCode ?? code;\n const cacheKey =\n serverModuleCacheVersion === undefined\n ? undefined\n : `server-stream-component:${serverModuleCacheVersion}:${sourcefile}:${\n moduleCode === code ? codeHash : memoizedHashText(moduleCode)\n }:${vitePluginsCacheKey(vitePlugins)}`;\n return await importAppRouterSourceModule<StreamModuleExports>({\n cacheKey,\n code: moduleCode,\n label: `server-stream-component:${sourcefile}`,\n ...(prebuiltCode === undefined\n ? {\n resolveDir: dirname(sourcefile),\n serverSourceTransform: {\n dev: serverModuleCacheVersion === undefined,\n serverModules,\n serverOutput: \"stream\" as const,\n vitePlugins,\n },\n }\n : {}),\n sourcefile,\n vitePlugins,\n });\n}\n\nfunction selectStreamComponent(module: StreamModuleExports): StreamComponent {\n const component = module.default ?? module.App ?? Object.values(module)[0];\n\n if (typeof component !== \"function\") {\n throw new Error(\"No page component export was found.\");\n }\n\n return component as StreamComponent;\n}\n\nasync function applyLayouts(options: {\n appDir: string;\n clientRouteInferenceCache?: ClientRouteInferenceCache | undefined;\n pageFile: string;\n html: string;\n props: ServerComponentProps;\n slots?: Record<string, string> | undefined;\n serverModules?: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined;\n serverModuleCacheVersion?: string | undefined;\n serverSourceFiles?: ReadonlyMap<string, string> | undefined;\n timing?: RenderTiming | undefined;\n vitePlugins?: readonly PluginOption[] | undefined;\n}): Promise<string> {\n const layoutFiles = await shellFilesForPage(\n options.appDir,\n options.pageFile,\n options.serverModuleCacheVersion,\n );\n let html = options.html;\n let shellHasOutOfOrderBoundary = false;\n const slotContext = createSlotRenderContext(options.slots);\n\n for (const shell of layoutFiles.reverse()) {\n const rendered = await renderShellPrefixSuffix(\n options.appDir,\n shell,\n options.props,\n slotContext,\n options.serverModules,\n options.serverModuleCacheVersion,\n options.serverSourceFiles,\n options.clientRouteInferenceCache,\n options.timing,\n options.vitePlugins,\n );\n shellHasOutOfOrderBoundary ||= rendered.hasOutOfOrderBoundary;\n html = `${rendered.prefix}${html}${rendered.suffix}`;\n }\n\n warnUnconsumedRouteSlots({\n appDir: options.appDir,\n pageFile: options.pageFile,\n serverModuleCacheVersion: options.serverModuleCacheVersion,\n slotContext,\n });\n\n if (!shellHasOutOfOrderBoundary) {\n return html;\n }\n\n const sink = createStringSink();\n sink.append(html);\n renderOutOfOrderReorderScript(sink);\n await sink.drain();\n return sink.toString();\n}\n\nasync function layoutShellsForPage(\n appDir: string,\n pageFile: string,\n props: ServerComponentProps,\n slots: Readonly<Record<string, string>>,\n serverModules: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined,\n serverModuleCacheVersion: string | undefined,\n serverSourceFiles: ReadonlyMap<string, string> | undefined,\n clientRouteInferenceCache: ClientRouteInferenceCache | undefined,\n vitePlugins?: readonly PluginOption[] | undefined,\n): Promise<RenderedShell[]> {\n const layoutFiles = await shellFilesForPage(appDir, pageFile, serverModuleCacheVersion);\n const shells: RenderedShell[] = [];\n const slotContext = createSlotRenderContext(slots);\n\n for (const shell of layoutFiles) {\n shells.push(\n await renderShellPrefixSuffix(\n appDir,\n shell,\n props,\n slotContext,\n serverModules,\n serverModuleCacheVersion,\n serverSourceFiles,\n clientRouteInferenceCache,\n undefined,\n vitePlugins,\n ),\n );\n }\n\n warnUnconsumedRouteSlots({\n appDir,\n pageFile,\n serverModuleCacheVersion,\n slotContext,\n });\n\n return shells;\n}\n\nasync function renderShellPrefixSuffix(\n appDir: string,\n shell: ShellFile,\n props: ServerComponentProps,\n slotContext: SlotRenderContext,\n serverModules: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined,\n serverModuleCacheVersion: string | undefined,\n serverSourceFiles: ReadonlyMap<string, string> | undefined,\n clientRouteInferenceCache?: ClientRouteInferenceCache | undefined,\n timing?: RenderTiming | undefined,\n vitePlugins?: readonly PluginOption[] | undefined,\n): Promise<RenderedShell> {\n const hasNamedSlots = Object.keys(slotContext.namedSlots).length > 0;\n const cacheKey =\n serverModuleCacheVersion === undefined || hasNamedSlots || shell.kind === \"template\"\n ? undefined\n : `${appDir}\\0${shell.file}\\0${serverModuleCacheVersion}\\0${vitePluginsCacheKey(vitePlugins)}`;\n if (cacheKey !== undefined) {\n const cached = readRouterRuntimeCacheEntry(\n renderedShellCache,\n cacheKey,\n renderedShellCacheCounters,\n );\n if (cached !== undefined && cached !== \"impure\") {\n return cached;\n }\n }\n\n let phaseStartedAt = renderTimingPhaseStartedAt(timing);\n const code = await readServerSourceFile(shell.file, serverModuleCacheVersion, serverSourceFiles);\n addRenderTimingPhaseDuration(timing, phaseStartedAt, \"layoutSourceReadMs\");\n phaseStartedAt = renderTimingPhaseStartedAt(timing);\n const shellUsesAwait = await mayRenderOutOfOrderBoundaryDeep({\n code,\n filename: shell.file,\n serverModuleCacheVersion,\n serverSourceFiles,\n });\n const serverOutput: ServerOutputMode = shellUsesAwait ? \"stream\" : \"string\";\n const artifact = serverModules?.get(shell.file)?.[serverOutput];\n const clientInference =\n artifact !== undefined && artifact.sourceHash === memoizedHashText(code)\n ? { client: false, clientBoundaryImports: [], diagnostics: [] }\n : await inferClientRouteModule({\n cache: clientRouteInferenceCache,\n code: stripRouteClientOnlyExports(code),\n filename: shell.file,\n vitePlugins,\n });\n for (const diagnostic of clientInference.diagnostics) {\n console.warn(formatClientRouteInferenceDiagnostic(diagnostic));\n }\n const output = transformServerModule({\n code,\n clientBoundaryImports: clientInference.clientBoundaryImports,\n filename: shell.file,\n serverModules,\n serverOutput,\n });\n addRenderTimingPhaseDuration(timing, phaseStartedAt, \"layoutTransformMs\");\n const fatalDiagnostics = fatalServerDiagnostics(output.diagnostics);\n\n if (fatalDiagnostics.length > 0) {\n throw new Error(formatServerDiagnostics(shell.file, fatalDiagnostics));\n }\n\n phaseStartedAt = renderTimingPhaseStartedAt(timing);\n const component = shellUsesAwait\n ? selectStreamComponent(\n await loadServerStreamModule(\n output.code,\n shell.file,\n serverModules,\n serverModuleCacheVersion,\n vitePlugins,\n ),\n )\n : await loadServerComponent(\n output.code,\n shell.file,\n serverModules,\n serverModuleCacheVersion,\n vitePlugins,\n );\n addRenderTimingPhaseDuration(timing, phaseStartedAt, \"layoutModuleLoadMs\");\n phaseStartedAt = renderTimingPhaseStartedAt(timing);\n const layoutHtml = shellUsesAwait\n ? await renderShellStreamComponent(component as StreamComponent, props)\n : await (component as ServerComponent)(props);\n addRenderTimingPhaseDuration(timing, phaseStartedAt, \"layoutComponentRenderMs\");\n phaseStartedAt = renderTimingPhaseStartedAt(timing);\n const rendered = {\n ...splitLayoutSlot(markShellBoundary(layoutHtml, shell), slotContext),\n hasOutOfOrderBoundary: hasOutOfOrderBoundary(output.code),\n };\n addRenderTimingPhaseDuration(timing, phaseStartedAt, \"layoutSlotSplitMs\");\n const shellCacheKey = shellUsesAwait ? undefined : cacheKey;\n const cached =\n shellCacheKey !== undefined\n ? readRouterRuntimeCacheEntry(renderedShellCache, shellCacheKey, renderedShellCacheCounters)\n : undefined;\n\n // Detect purity: a zero-arg component cannot depend on props. The\n // markShellBoundary + splitLayoutSlot output is then constant for\n // the (appDir, shellFile, version) tuple. We only set the cache\n // entry on the first request that observes the function arity; on\n // an \"impure\" tag we never overwrite it.\n if (shellCacheKey !== undefined && cached !== \"impure\") {\n if (component.length === 0) {\n if (renderedShellCache.size >= MAX_RENDERED_SHELL_CACHE_ENTRIES) {\n const oldestKey = renderedShellCache.keys().next().value;\n if (oldestKey !== undefined) {\n renderedShellCache.delete(oldestKey);\n renderedShellCacheCounters.evictions += 1;\n }\n }\n renderedShellCache.set(shellCacheKey, rendered);\n } else {\n // Impure — stamp the cache so subsequent lookups short-circuit\n // without re-checking arity. We still run the per-request\n // render path above so the props are honoured.\n renderedShellCache.set(shellCacheKey, \"impure\");\n }\n }\n\n return rendered;\n}\n\nasync function renderShellStreamComponent(\n component: StreamComponent,\n props: ServerComponentProps,\n): Promise<string> {\n const sink = createStringSink();\n await component(sink, props);\n await sink.drain();\n return sink.toString();\n}\n\nfunction splitLayoutSlot(\n layoutHtml: string,\n slotContext: SlotRenderContext = createSlotRenderContext(),\n): Pick<RenderedShell, \"prefix\" | \"suffix\"> {\n const html = replaceNamedLayoutSlots(layoutHtml, slotContext);\n const match = findDefaultLayoutSlot(html);\n\n if (match === null) {\n return { prefix: html, suffix: \"\" };\n }\n\n return {\n prefix: html.slice(0, match.index),\n suffix: html.slice(match.index + match[0].length),\n };\n}\n\ninterface ShellFile {\n file: string;\n id: string;\n kind: \"layout\" | \"template\";\n}\n\n// Layout/template files for a given page do not change during a server's\n// lifetime in production. Each cache miss costs up to N×4 filesystem\n// `access()` syscalls (~5-10μs each on a fast SSD), making this one of\n// the largest fixed costs in `renderBuiltAppRequest` for a minimal page.\n//\n// We cache by `appDir + pageFile + serverModuleCacheVersion` so the cache\n// is only active when a server-module manifest version is available\n// (= production builds). In dev mode the version is `undefined`, so we\n// skip the cache and pick up newly added layout / template files on the\n// next request.\nconst shellFilesCache = new Map<string, ShellFile[]>();\nconst MAX_SHELL_FILES_CACHE_ENTRIES = 1024;\nconst routeMiddlewareControlCache = new Map<string, Promise<RouteMiddlewareControl | undefined>>();\nconst MAX_ROUTE_MIDDLEWARE_CONTROL_CACHE_ENTRIES = 1024;\nconst appMiddlewareFileCache = new Map<string, Promise<boolean>>();\nconst MAX_APP_MIDDLEWARE_FILE_CACHE_ENTRIES = 1024;\nconst routeMiddlewareControlSourceCache = new Map<\n string,\n { control: RouteMiddlewareControl | undefined; mtimeMs: number }\n>();\n\nasync function shellFilesForPage(\n appDir: string,\n pageFile: string,\n serverModuleCacheVersion?: string,\n): Promise<ShellFile[]> {\n const cacheKey =\n serverModuleCacheVersion === undefined\n ? undefined\n : `${appDir}\\0${pageFile}\\0${serverModuleCacheVersion}`;\n if (cacheKey !== undefined) {\n const cached = shellFilesCache.get(cacheKey);\n if (cached !== undefined) {\n return cached;\n }\n }\n\n const shells = await existingRouteShellCandidates(appDir, pageFile, async (file) => {\n try {\n await access(file);\n return true;\n } catch {\n return false;\n }\n });\n const files: ShellFile[] = shells.map((shell) => ({\n file: shell.file,\n id: shellBoundaryId(appDir, shell.directory),\n kind: shell.kind,\n }));\n\n if (cacheKey !== undefined) {\n if (shellFilesCache.size >= MAX_SHELL_FILES_CACHE_ENTRIES) {\n const oldestKey = shellFilesCache.keys().next().value;\n if (oldestKey !== undefined) {\n shellFilesCache.delete(oldestKey);\n }\n }\n shellFilesCache.set(cacheKey, files);\n }\n return files;\n}\n\nfunction withRouteCacheHeader(\n response: Response,\n policy: ReturnType<typeof routeCachePolicyFromSource>,\n): Response {\n if (policy !== undefined) {\n response.headers.set(\"cache-control\", policy.cacheControl);\n }\n\n return response;\n}\n\nfunction shellBoundaryId(appDir: string, directory: string): string {\n const relativeDirectory = relative(appDir, directory);\n\n return relativeDirectory === \"\"\n ? \"root\"\n : relativeDirectory.replaceAll(sep, \"/\").replace(/[^A-Za-z0-9_$/-]/g, \"_\");\n}\n\nasync function hasAppMiddleware(options: {\n appDir: string;\n serverModuleCacheVersion?: string | undefined;\n serverSourceFiles?: ReadonlyMap<string, string> | undefined;\n}): Promise<boolean> {\n const middlewareFiles = [\n join(options.appDir, \"middleware.ts\"),\n join(options.appDir, \"middleware.mreact.ts\"),\n ];\n\n if (options.serverSourceFiles !== undefined) {\n return middlewareFiles.some((file) => options.serverSourceFiles?.has(file) === true);\n }\n\n const cacheKey =\n options.serverModuleCacheVersion === undefined\n ? undefined\n : `${options.appDir}\\0${options.serverModuleCacheVersion}`;\n\n if (cacheKey !== undefined) {\n const cached = appMiddlewareFileCache.get(cacheKey);\n if (cached !== undefined) {\n return cached;\n }\n }\n\n const loaded = hasAppMiddlewareUncached(middlewareFiles).catch((error) => {\n if (cacheKey !== undefined) {\n appMiddlewareFileCache.delete(cacheKey);\n }\n throw error;\n });\n\n if (cacheKey !== undefined) {\n if (appMiddlewareFileCache.size >= MAX_APP_MIDDLEWARE_FILE_CACHE_ENTRIES) {\n const oldestKey = appMiddlewareFileCache.keys().next().value;\n if (oldestKey !== undefined) {\n appMiddlewareFileCache.delete(oldestKey);\n }\n }\n appMiddlewareFileCache.set(cacheKey, loaded);\n }\n\n return loaded;\n}\n\nasync function hasAppMiddlewareUncached(files: readonly string[]): Promise<boolean> {\n for (const file of files) {\n try {\n await access(file);\n return true;\n } catch {\n // Missing middleware files are allowed.\n }\n }\n\n return false;\n}\n\nasync function loadRouteMiddlewareControl(options: {\n appDir: string;\n pageFile: string;\n serverModuleCacheVersion?: string | undefined;\n serverSourceFiles?: ReadonlyMap<string, string> | undefined;\n}): Promise<RouteMiddlewareControl | undefined> {\n const cacheKey =\n options.serverModuleCacheVersion === undefined\n ? undefined\n : `${options.appDir}\\0${options.pageFile}\\0${options.serverModuleCacheVersion}`;\n\n if (cacheKey !== undefined) {\n const cached = routeMiddlewareControlCache.get(cacheKey);\n if (cached !== undefined) {\n return cached;\n }\n }\n\n const loaded = loadRouteMiddlewareControlUncached(options).catch((error) => {\n if (cacheKey !== undefined) {\n routeMiddlewareControlCache.delete(cacheKey);\n }\n throw error;\n });\n\n if (cacheKey !== undefined) {\n if (routeMiddlewareControlCache.size >= MAX_ROUTE_MIDDLEWARE_CONTROL_CACHE_ENTRIES) {\n const oldestKey = routeMiddlewareControlCache.keys().next().value;\n if (oldestKey !== undefined) {\n routeMiddlewareControlCache.delete(oldestKey);\n }\n }\n routeMiddlewareControlCache.set(cacheKey, loaded);\n }\n\n return loaded;\n}\n\nasync function loadRouteMiddlewareControlUncached(options: {\n appDir: string;\n pageFile: string;\n serverModuleCacheVersion?: string | undefined;\n serverSourceFiles?: ReadonlyMap<string, string> | undefined;\n}): Promise<RouteMiddlewareControl | undefined> {\n const controls: Array<RouteMiddlewareControl | undefined> = [];\n const shellFiles = await shellFilesForPage(\n options.appDir,\n options.pageFile,\n options.serverModuleCacheVersion,\n );\n\n for (const shell of shellFiles) {\n if (shell.kind !== \"layout\") {\n continue;\n }\n\n controls.push(\n await loadRouteMiddlewareControlFile({\n file: shell.file,\n serverModuleCacheVersion: options.serverModuleCacheVersion,\n serverSourceFiles: options.serverSourceFiles,\n }),\n );\n }\n\n controls.push(\n await loadRouteMiddlewareControlFile({\n file: options.pageFile,\n serverModuleCacheVersion: options.serverModuleCacheVersion,\n serverSourceFiles: options.serverSourceFiles,\n }),\n );\n\n return mergeRouteMiddlewareControls(controls);\n}\n\nasync function loadRouteMiddlewareControlFile(options: {\n file: string;\n serverModuleCacheVersion?: string | undefined;\n serverSourceFiles?: ReadonlyMap<string, string> | undefined;\n}): Promise<RouteMiddlewareControl | undefined> {\n if (options.serverSourceFiles !== undefined || options.serverModuleCacheVersion !== undefined) {\n return parseRouteMiddlewareControl(\n await readServerSourceFile(\n options.file,\n options.serverModuleCacheVersion,\n options.serverSourceFiles,\n ),\n );\n }\n\n const fileStat = await stat(options.file);\n const cached = routeMiddlewareControlSourceCache.get(options.file);\n\n if (cached !== undefined && cached.mtimeMs === fileStat.mtimeMs) {\n return cached.control;\n }\n\n const control = parseRouteMiddlewareControl(await readFile(options.file, \"utf8\"));\n routeMiddlewareControlSourceCache.set(options.file, {\n control,\n mtimeMs: fileStat.mtimeMs,\n });\n\n return control;\n}\n\nfunction parseRouteMiddlewareControl(code: string): RouteMiddlewareControl | undefined {\n if (!/\\bexport\\s+const\\s+middleware\\s*=/.test(code)) {\n return undefined;\n }\n\n if (/\\bmiddleware\\s*=\\s*\\{[\\s\\S]*?\\bskip\\s*:\\s*true\\b/.test(code)) {\n return { skip: true };\n }\n\n const skipArray = /\\bmiddleware\\s*=\\s*\\{[\\s\\S]*?\\bskip\\s*:\\s*\\[([\\s\\S]*?)\\]/.exec(code);\n\n if (skipArray === null) {\n return undefined;\n }\n\n const ids = Array.from(\n skipArray[1]?.matchAll(/[\"']([^\"']+)[\"']/g) ?? [],\n (match) => match[1],\n ).filter((id) => id !== undefined);\n\n return ids.length === 0 ? undefined : { skip: ids };\n}\n\nfunction mergeRouteMiddlewareControls(\n controls: readonly (RouteMiddlewareControl | undefined)[],\n): RouteMiddlewareControl | undefined {\n const skippedIds = new Set<string>();\n\n for (const control of controls) {\n if (control?.skip === true) {\n return { skip: true };\n }\n\n if (Array.isArray(control?.skip)) {\n for (const id of control.skip) {\n skippedIds.add(id);\n }\n }\n }\n\n return skippedIds.size === 0 ? undefined : { skip: [...skippedIds] };\n}\n\nfunction markShellBoundary(html: string, shell: ShellFile): string {\n const attributeName =\n shell.kind === \"layout\" ? \"data-mreact-layout-boundary\" : \"data-mreact-template-boundary\";\n\n if (html.includes(`${attributeName}=`)) {\n return html;\n }\n\n return html.replace(\n /<([A-Za-z][^\\s/>]*)([^>]*)>/,\n `<$1$2 ${attributeName}=\"${escapeHtmlAttribute(shell.id)}\">`,\n );\n}\n\nfunction replaceNamedLayoutSlots(layoutHtml: string, slotContext: SlotRenderContext): string {\n return layoutHtml.replace(SLOT_TAG_PATTERN, (source, openAttributes: string) => {\n const name = readSlotName(openAttributes);\n\n if (name === undefined || name === \"default\") {\n return source;\n }\n\n if (Object.hasOwn(slotContext.namedSlots, name)) {\n slotContext.consumedSlots.add(name);\n return slotContext.namedSlots[name] ?? \"\";\n }\n\n return \"\";\n });\n}\n\nconst SLOT_TAG_PATTERN = /<slot\\b([^>]*)>(?:<\\/slot\\s*>)?/g;\n\nfunction findDefaultLayoutSlot(html: string): RegExpExecArray | null {\n SLOT_TAG_PATTERN.lastIndex = 0;\n\n for (;;) {\n const match = SLOT_TAG_PATTERN.exec(html);\n\n if (match === null) {\n return null;\n }\n\n const name = readSlotName(match[1] ?? \"\");\n\n if (name === undefined || name === \"default\") {\n return match;\n }\n }\n}\n\nfunction readSlotName(attributes: string): string | undefined {\n const match = /\\bname\\s*=\\s*(?:\"([^\"]*)\"|'([^']*)')/.exec(attributes);\n\n return match?.[1] ?? match?.[2];\n}\n\nfunction createSlotRenderContext(\n namedSlots: Readonly<Record<string, string>> = {},\n): SlotRenderContext {\n return {\n consumedSlots: new Set(),\n namedSlots,\n };\n}\n\nfunction warnUnconsumedRouteSlots(options: {\n appDir: string;\n pageFile: string;\n serverModuleCacheVersion: string | undefined;\n slotContext: SlotRenderContext;\n}): void {\n if (options.serverModuleCacheVersion !== undefined) {\n return;\n }\n\n const slotNames = Object.keys(options.slotContext.namedSlots);\n if (slotNames.length === 0) {\n return;\n }\n\n const routeLabel = relative(options.appDir, options.pageFile).replaceAll(sep, \"/\");\n\n for (const name of slotNames) {\n if (name === \"default\") {\n console.warn(\n `[mreact] ${routeLabel}: slots.default does not target <Slot />; use the page body for default slot content.`,\n );\n continue;\n }\n\n if (!options.slotContext.consumedSlots.has(name)) {\n console.warn(\n `[mreact] ${routeLabel}: slots.{${name}} is not consumed by any ancestor layout or template.`,\n );\n }\n }\n}\n\ninterface RouteDataContext {\n params: RouteParams;\n queryClient: QueryClient;\n request: Request;\n}\n\ninterface RouteLoaderModule {\n loader?: (context: RouteDataContext) => unknown;\n}\n\ninterface RouteMetadataContext {\n data: unknown;\n params: RouteParams;\n request: Request;\n}\n\ninterface RouteMetadataModule {\n generateMetadata?:\n | ((\n context: RouteMetadataContext,\n ) => Promise<RouteMetadata | undefined> | RouteMetadata | undefined)\n | undefined;\n metadata?: RouteMetadata;\n}\n\ntype CspDirectiveMap = Record<string, readonly string[] | string>;\n\nasync function loadRouteData(options: {\n appDir: string;\n code: string;\n context: RouteDataContext;\n filename: string;\n importPolicy?: AppRouterImportPolicy | undefined;\n serverModules?: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined;\n serverModuleCacheVersion?: string | undefined;\n timing?: RenderTiming | undefined;\n vitePlugins?: readonly PluginOption[] | undefined;\n}): Promise<unknown> {\n if (!hasLoaderExport(options.code)) {\n return undefined;\n }\n\n let module: RouteLoaderModule;\n const moduleLoadStartedAt = renderTimingPhaseStartedAt(options.timing);\n try {\n module = await loadRouteLoaderModule(options);\n } finally {\n finishRenderTimingPhase(options.timing, moduleLoadStartedAt, \"loaderModuleLoadMs\");\n }\n\n if (module.loader === undefined) {\n return undefined;\n }\n\n const executionStartedAt = renderTimingPhaseStartedAt(options.timing);\n try {\n return await module.loader(options.context);\n } catch (error) {\n if (error instanceof Response) {\n return error;\n }\n\n throw error;\n } finally {\n finishRenderTimingPhase(options.timing, executionStartedAt, \"loaderExecutionMs\");\n }\n}\n\nasync function loadRouteDataWithInstrumentation(options: {\n appDir: string;\n code: string;\n context: RouteDataContext;\n filename: string;\n importPolicy?: AppRouterImportPolicy | undefined;\n instrumentation?: RouterInstrumentation | undefined;\n request: Request;\n routeId: string;\n routePath: string;\n serverModules?: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined;\n serverModuleCacheVersion?: string | undefined;\n timing?: RenderTiming | undefined;\n vitePlugins?: readonly PluginOption[] | undefined;\n}): Promise<unknown> {\n const trace = traceContextFromRequest(options.request);\n const event = {\n method: options.request.method,\n path: new URL(options.request.url).pathname,\n request: options.request,\n routeId: options.routeId,\n routePath: options.routePath,\n ...(trace === undefined ? {} : { trace }),\n };\n invokeRouterInstrumentation(options.instrumentation?.onLoaderStart, event);\n\n try {\n const data = await loadRouteData(options);\n invokeRouterInstrumentation(options.instrumentation?.onLoaderEnd, event);\n\n return data;\n } catch (error) {\n invokeRouterInstrumentation(options.instrumentation?.onLoaderEnd, {\n ...event,\n error,\n });\n throw error;\n }\n}\n\nasync function loadRouteLoaderModule(options: {\n appDir: string;\n code: string;\n filename: string;\n importPolicy?: AppRouterImportPolicy | undefined;\n serverModules?: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined;\n serverModuleCacheVersion?: string | undefined;\n vitePlugins?: readonly PluginOption[] | undefined;\n}): Promise<RouteLoaderModule> {\n const cacheKey =\n options.serverModuleCacheVersion === undefined\n ? undefined\n : `${options.appDir}\\0${options.filename}\\0${options.serverModuleCacheVersion}\\0${memoizedHashText(options.code)}\\0${importPolicyCacheKey(options.importPolicy)}\\0${vitePluginsCacheKey(options.vitePlugins)}`;\n\n if (cacheKey !== undefined) {\n const cached = readRouterRuntimeCacheEntry(\n routeLoaderModuleCache,\n cacheKey,\n routeLoaderModuleCacheCounters,\n );\n\n if (cached !== undefined) {\n return cached;\n }\n }\n\n const loaded = loadBundledRouteLoaderModule({\n ...options,\n prebuiltArtifact: prebuiltRouteLoaderModuleArtifact(\n options.serverModules,\n options.filename,\n options.code,\n ),\n }).catch((error) => {\n if (cacheKey !== undefined) {\n routeLoaderModuleCache.delete(cacheKey);\n }\n throw error;\n });\n\n if (cacheKey !== undefined) {\n setBoundedCacheEntry(\n routeLoaderModuleCache,\n cacheKey,\n loaded,\n maxRouteLoaderModuleCacheEntries,\n routeLoaderModuleCacheCounters,\n );\n }\n\n return loaded;\n}\n\nexport async function bundleRouteLoaderModuleCode(options: {\n appDir: string;\n code: string;\n filename: string;\n importPolicy?: AppRouterImportPolicy | undefined;\n vitePlugins?: readonly PluginOption[] | undefined;\n}): Promise<string> {\n const output = await bundleRouterModule({\n code: stripRouteLoaderOnlyExports(options.code),\n filename: options.filename,\n platform: \"node\",\n vitePlugins: options.vitePlugins,\n plugins: [\n fileImportMetaUrlPlugin(),\n createAppRouterImportPolicyPlugin({\n appDir: options.appDir,\n importPolicy: options.importPolicy,\n label: \"Loader\",\n }),\n ],\n });\n const code = output.code;\n\n if (code === undefined) {\n throw new Error(`Failed to compile loader for ${options.filename}.`);\n }\n\n return code;\n}\n\nasync function loadBundledRouteLoaderModule(options: {\n appDir: string;\n code: string;\n filename: string;\n importPolicy?: AppRouterImportPolicy | undefined;\n prebuiltArtifact?: BuiltServerModuleOutputLike | undefined;\n serverModuleCacheVersion?: string | undefined;\n vitePlugins?: readonly PluginOption[] | undefined;\n}): Promise<RouteLoaderModule> {\n if (options.prebuiltArtifact?.moduleFile !== undefined) {\n return await importBuiltServerModuleFile<RouteLoaderModule>({\n file: options.prebuiltArtifact.moduleFile,\n label: `loader:${options.filename}`,\n serverModuleCacheVersion: options.serverModuleCacheVersion,\n });\n }\n\n const code =\n options.prebuiltArtifact?.code ??\n (await bundleRouteLoaderModuleCode({\n appDir: options.appDir,\n code: options.code,\n filename: options.filename,\n importPolicy: options.importPolicy,\n vitePlugins: options.vitePlugins,\n }));\n\n return await importAppRouterSourceModule<RouteLoaderModule>({\n ...(options.serverModuleCacheVersion === undefined\n ? {}\n : {\n cacheKey: `loader:${options.filename}:${options.serverModuleCacheVersion}:${memoizedHashText(code)}`,\n }),\n code,\n label: `loader:${options.filename}`,\n });\n}\n\ntype BuiltServerModuleOutputLike = NonNullable<BuiltServerModuleArtifact[\"request\"]>;\n\nfunction prebuiltRequestModuleArtifact(\n serverModules: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined,\n file: string,\n source: string,\n kind: \"request\" | \"routeMetadata\" = \"request\",\n): BuiltServerModuleOutputLike | undefined {\n const artifact = serverModules?.get(file)?.[kind];\n\n return artifact !== undefined && artifact.sourceHash === memoizedHashText(source)\n ? artifact\n : undefined;\n}\n\nfunction prebuiltRouteLoaderModuleArtifact(\n serverModules: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined,\n file: string,\n source: string,\n): BuiltServerModuleOutputLike | undefined {\n const artifact = serverModules?.get(file)?.loader;\n\n return artifact !== undefined && artifact.sourceHash === memoizedHashText(source)\n ? artifact\n : prebuiltRequestModuleArtifact(serverModules, file, source);\n}\n\nfunction importPolicyCacheKey(policy: AppRouterImportPolicy | undefined): string {\n if (policy === undefined) {\n return \"\";\n }\n\n return JSON.stringify({\n allowedPackages: [...(policy.allowedPackages ?? [])].sort(),\n allowedSourceDirs: [...(policy.allowedSourceDirs ?? [])].sort(),\n projectRoot: policy.projectRoot ?? \"\",\n });\n}\n\nasync function loadRouteMetadata(options: {\n appDir: string;\n code: string;\n context: RouteMetadataContext;\n filename: string;\n importPolicy?: AppRouterImportPolicy | undefined;\n serverModules?: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined;\n serverModuleCacheVersion?: string | undefined;\n vitePlugins?: readonly PluginOption[] | undefined;\n}): Promise<RouteMetadata | undefined> {\n if (!hasMetadataExport(options.code)) {\n return undefined;\n }\n\n const prebuiltArtifact = prebuiltRequestModuleArtifact(\n options.serverModules,\n options.filename,\n options.code,\n \"routeMetadata\",\n );\n if (prebuiltArtifact?.moduleFile !== undefined) {\n const module = await importBuiltServerModuleFile<RouteMetadataModule>({\n file: prebuiltArtifact.moduleFile,\n label: `metadata:${options.filename}`,\n serverModuleCacheVersion: options.serverModuleCacheVersion,\n });\n\n return await resolveRouteMetadataModule(module, options.context);\n }\n\n const code = prebuiltArtifact?.code ?? (await bundleRouteMetadataModuleCode(options));\n\n const module = await importAppRouterSourceModule<RouteMetadataModule>({\n ...(options.serverModuleCacheVersion === undefined\n ? {}\n : {\n cacheKey: `metadata:${options.filename}:${options.serverModuleCacheVersion}:${memoizedHashText(code)}`,\n }),\n code,\n label: `metadata:${options.filename}`,\n });\n\n return await resolveRouteMetadataModule(module, options.context);\n}\n\nasync function resolveRouteMetadataModule(\n module: RouteMetadataModule,\n context: RouteMetadataContext,\n): Promise<RouteMetadata | undefined> {\n if (module.generateMetadata === undefined) {\n return module.metadata;\n }\n\n try {\n const generated = await module.generateMetadata(context);\n return generated === undefined\n ? module.metadata\n : mergeRouteMetadata([module.metadata, generated].filter(isRouteMetadata));\n } catch (error) {\n if (module.metadata !== undefined) {\n return module.metadata;\n }\n\n throw error;\n }\n}\n\nfunction isRouteMetadata(value: RouteMetadata | undefined): value is RouteMetadata {\n return value !== undefined;\n}\n\nasync function bundleRouteMetadataModuleCode(options: {\n appDir: string;\n code: string;\n filename: string;\n importPolicy?: AppRouterImportPolicy | undefined;\n vitePlugins?: readonly PluginOption[] | undefined;\n}): Promise<string> {\n const output = await bundleRouterModule({\n code: stripRouteMetadataOnlyExports(options.code),\n filename: options.filename,\n platform: \"node\",\n vitePlugins: options.vitePlugins,\n plugins: [\n fileImportMetaUrlPlugin(),\n createAppRouterImportPolicyPlugin({\n appDir: options.appDir,\n importPolicy: options.importPolicy,\n label: \"Metadata\",\n }),\n ],\n });\n const code = output.code;\n\n if (code === undefined) {\n throw new Error(`Failed to compile metadata for ${options.filename}.`);\n }\n\n return code;\n}\n\nasync function loadComposedRouteMetadata(options: {\n appDir: string;\n code: string;\n context: RouteMetadataContext;\n filename: string;\n importPolicy?: AppRouterImportPolicy | undefined;\n routes: readonly AppRoute[];\n serverModules?: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined;\n serverModuleCacheVersion?: string | undefined;\n serverSourceFiles?: ReadonlyMap<string, string> | undefined;\n vitePlugins?: readonly PluginOption[] | undefined;\n}): Promise<RouteMetadata | undefined> {\n const cacheKey =\n options.serverModuleCacheVersion === undefined\n ? undefined\n : `${options.appDir}\\0${options.filename}\\0${options.serverModuleCacheVersion}\\0${memoizedHashText(options.code)}\\0${vitePluginsCacheKey(options.vitePlugins)}`;\n if (cacheKey !== undefined) {\n const cached = readRouterRuntimeCacheEntry(\n composedRouteMetadataCache,\n cacheKey,\n composedRouteMetadataCacheCounters,\n );\n if (cached !== undefined) {\n return cached;\n }\n }\n\n try {\n const loaded = await loadComposedRouteMetadataUncached(options);\n if (cacheKey !== undefined && !loaded.dynamic) {\n setBoundedCacheEntry(\n composedRouteMetadataCache,\n cacheKey,\n Promise.resolve(loaded.metadata),\n maxComposedRouteMetadataCacheEntries,\n composedRouteMetadataCacheCounters,\n );\n }\n\n return loaded.metadata;\n } catch (error) {\n if (cacheKey !== undefined) {\n composedRouteMetadataCache.delete(cacheKey);\n }\n throw error;\n }\n}\n\nasync function loadComposedRouteMetadataUncached(options: {\n appDir: string;\n code: string;\n context: RouteMetadataContext;\n filename: string;\n importPolicy?: AppRouterImportPolicy | undefined;\n routes: readonly AppRoute[];\n serverModules?: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined;\n serverModuleCacheVersion?: string | undefined;\n serverSourceFiles?: ReadonlyMap<string, string> | undefined;\n vitePlugins?: readonly PluginOption[] | undefined;\n}): Promise<{ dynamic: boolean; metadata: RouteMetadata | undefined }> {\n const layoutFiles = await shellFilesForPage(\n options.appDir,\n options.filename,\n options.serverModuleCacheVersion,\n );\n const metadata: RouteMetadata[] = [];\n let dynamic = hasGenerateMetadataExport(options.code);\n\n for (const shell of layoutFiles) {\n if (shell.kind !== \"layout\") {\n continue;\n }\n\n const code = await readServerSourceFile(\n shell.file,\n options.serverModuleCacheVersion,\n options.serverSourceFiles,\n );\n dynamic ||= hasGenerateMetadataExport(code);\n const shellMetadata = await loadRouteMetadata({\n appDir: options.appDir,\n code,\n context: options.context,\n filename: shell.file,\n importPolicy: options.importPolicy,\n serverModules: options.serverModules,\n serverModuleCacheVersion: options.serverModuleCacheVersion,\n vitePlugins: options.vitePlugins,\n });\n\n if (shellMetadata !== undefined) {\n metadata.push(shellMetadata);\n }\n }\n\n const pageMetadata = await loadRouteMetadata({\n appDir: options.appDir,\n code: options.code,\n context: options.context,\n filename: options.filename,\n importPolicy: options.importPolicy,\n serverModules: options.serverModules,\n serverModuleCacheVersion: options.serverModuleCacheVersion,\n vitePlugins: options.vitePlugins,\n });\n\n if (pageMetadata !== undefined) {\n metadata.push(pageMetadata);\n }\n\n return {\n dynamic,\n metadata: applyFileConventionMetadata(\n mergeRouteMetadata(metadata),\n options.routes,\n options.filename,\n options.context.params,\n ),\n };\n}\n\nfunction mergeRouteMetadata(metadata: readonly RouteMetadata[]): RouteMetadata | undefined {\n if (metadata.length === 0) {\n return undefined;\n }\n\n return metadata.reduce<RouteMetadata>((merged, next) => {\n const mergedMetadata: RouteMetadata = { ...merged, ...next };\n const alternates = mergeObject(merged.alternates, next.alternates);\n const csp = mergeCspMetadata(merged.csp, next.csp);\n const head = mergeReadonlyArrays(merged.head, next.head);\n const icons = mergeObject(merged.icons, next.icons);\n const openGraph = mergeOpenGraphMetadata(merged.openGraph, next.openGraph);\n\n if (alternates !== undefined) {\n mergedMetadata.alternates = alternates;\n }\n if (csp !== undefined) {\n mergedMetadata.csp = csp;\n }\n if (head !== undefined) {\n mergedMetadata.head = head;\n }\n if (icons !== undefined) {\n mergedMetadata.icons = icons;\n }\n if (openGraph !== undefined) {\n mergedMetadata.openGraph = openGraph;\n }\n\n return mergedMetadata;\n }, {});\n}\n\nfunction applyFileConventionMetadata(\n metadata: RouteMetadata | undefined,\n routes: readonly AppRoute[],\n filename: string,\n params: RouteParams,\n): RouteMetadata | undefined {\n const next: RouteMetadata = metadata === undefined ? {} : { ...metadata };\n const iconRoute = routes.find((route) => route.kind === \"asset\" && route.convention === \"icon\");\n const appleIconRoute = routes.find(\n (route) => route.kind === \"asset\" && route.convention === \"apple-icon\",\n );\n const openGraphImagePath = fileConventionMetadataRoutePath(\n routes,\n filename,\n params,\n \"opengraph-image\",\n );\n\n if (iconRoute !== undefined && next.icons?.icon === undefined) {\n next.icons = { ...next.icons, icon: iconRoute.path };\n }\n if (appleIconRoute !== undefined && next.icons?.apple === undefined) {\n next.icons = { ...next.icons, apple: appleIconRoute.path };\n }\n if (\n openGraphImagePath !== undefined &&\n next.openGraph?.image === undefined &&\n (next.openGraph?.images === undefined || next.openGraph.images.length === 0)\n ) {\n next.openGraph = { ...next.openGraph, image: openGraphImagePath };\n }\n\n return Object.keys(next).length === 0 ? undefined : next;\n}\n\nfunction fileConventionMetadataRoutePath(\n routes: readonly AppRoute[],\n filename: string,\n params: RouteParams,\n convention: AppFileConvention,\n): string | undefined {\n const pageRoute = routes.find((route) => route.kind === \"page\" && route.file === filename);\n const candidateRoutes = routes.filter(\n (route) =>\n (route.kind === \"asset\" || route.kind === \"metadata\") &&\n route.convention === convention,\n );\n\n if (pageRoute !== undefined) {\n const expectedPath = pageRoute.path === \"/\" ? `/${convention}` : `${pageRoute.path}/${convention}`;\n const routeLocal = candidateRoutes.find((route) => route.path === expectedPath);\n const routeLocalPath =\n routeLocal === undefined ? undefined : concreteRoutePath(routeLocal.path, params);\n\n if (routeLocalPath !== undefined) {\n return routeLocalPath;\n }\n }\n\n return candidateRoutes.find((route) => route.path === `/${convention}`)?.path;\n}\n\nfunction concreteRoutePath(path: string, params: RouteParams): string | undefined {\n const segments = path === \"/\" ? [] : path.slice(1).split(\"/\");\n const concrete: string[] = [];\n\n for (const segment of segments) {\n if (segment.startsWith(\":...\")) {\n const value = params[segment.slice(4)];\n const values = Array.isArray(value)\n ? value\n : typeof value === \"string\"\n ? value.split(\"/\").filter((part) => part !== \"\")\n : undefined;\n\n if (values === undefined) {\n return undefined;\n }\n concrete.push(...values.map((part) => encodeURIComponent(part)));\n continue;\n }\n\n if (segment.startsWith(\":\")) {\n const value = params[segment.slice(1)];\n const stringValue = Array.isArray(value) ? value[0] : value;\n\n if (typeof stringValue !== \"string\") {\n return undefined;\n }\n concrete.push(encodeURIComponent(stringValue));\n continue;\n }\n\n concrete.push(segment);\n }\n\n return `/${concrete.join(\"/\")}`;\n}\n\nfunction mergeObject<T extends object>(left: T | undefined, right: T | undefined): T | undefined {\n if (left === undefined) {\n return right;\n }\n\n if (right === undefined) {\n return left;\n }\n\n return { ...left, ...right };\n}\n\nfunction mergeReadonlyArrays<T>(\n left: readonly T[] | undefined,\n right: readonly T[] | undefined,\n): readonly T[] | undefined {\n if (left === undefined || left.length === 0) {\n return right;\n }\n\n if (right === undefined || right.length === 0) {\n return left;\n }\n\n return [...left, ...right];\n}\n\nfunction mergeCspMetadata(\n left: RouteMetadata[\"csp\"],\n right: RouteMetadata[\"csp\"],\n): RouteMetadata[\"csp\"] | undefined {\n if (right?.disable === true) {\n return { disable: true };\n }\n\n if (left === undefined) {\n if (right === undefined) {\n return undefined;\n }\n\n const merged: NonNullable<RouteMetadata[\"csp\"]> = { ...right };\n const directives = applyCspOverrides(undefined, right);\n\n if (directives !== undefined) {\n merged.directives = directives;\n } else {\n delete merged.directives;\n }\n\n return merged;\n }\n\n if (right === undefined) {\n return left;\n }\n\n const merged: NonNullable<RouteMetadata[\"csp\"]> = {\n ...left,\n ...right,\n };\n const directives = applyCspOverrides(left.directives, right);\n\n if (directives !== undefined) {\n merged.directives = directives;\n } else {\n delete merged.directives;\n }\n\n return merged;\n}\n\nfunction applyCspOverrides(\n left: CspDirectiveMap | undefined,\n right: RouteMetadata[\"csp\"] | undefined,\n): CspDirectiveMap | undefined {\n if (right === undefined) {\n return left;\n }\n\n const merged = { ...left, ...right.directives };\n\n for (const [name, value] of Object.entries(right.replace ?? {})) {\n merged[name] = value;\n }\n\n for (const name of right.remove ?? []) {\n delete merged[name];\n }\n\n return Object.keys(merged).length === 0 ? undefined : merged;\n}\n\nfunction mergeOpenGraphMetadata(\n left: RouteMetadata[\"openGraph\"],\n right: RouteMetadata[\"openGraph\"],\n): RouteMetadata[\"openGraph\"] | undefined {\n if (left === undefined) {\n return right;\n }\n\n if (right === undefined) {\n return left;\n }\n\n const merged: NonNullable<RouteMetadata[\"openGraph\"]> = {\n ...left,\n ...right,\n };\n const images = mergeReadonlyArrays(openGraphImages(left), openGraphImages(right));\n\n if (images !== undefined && images.length > 0) {\n merged.images = images;\n }\n\n return merged;\n}\n\nfunction hasMetadataExport(code: string): boolean {\n return /\\bexport\\s+const\\s+metadata\\s*=/.test(code) || hasGenerateMetadataExport(code);\n}\n\nfunction hasGenerateMetadataExport(code: string): boolean {\n return (\n /\\bexport\\s+(?:async\\s+)?function\\s+generateMetadata\\b/.test(code) ||\n /\\bexport\\s*\\{[^}]*\\bgenerateMetadata\\b[^}]*\\}/.test(code)\n );\n}\n\nfunction usesRuntimeCacheControl(code: string): boolean {\n return /\\bcacheControl\\s*\\(/.test(code);\n}\n\nfunction injectHeadMetadata(html: string, metadata: RouteMetadata | undefined): string {\n if (metadata === undefined) {\n return html;\n }\n\n let nextHtml =\n metadata.lang === undefined\n ? html\n : injectHtmlLangAttribute(html, metadataString(metadata.lang, \"lang\"));\n const tags = [\n metadata.title === undefined\n ? undefined\n : `<title>${escapeHtml(metadataString(metadata.title, \"title\"))}</title>`,\n metadata.description === undefined\n ? undefined\n : `<meta name=\"description\" content=\"${escapeHtmlAttribute(metadataString(metadata.description, \"description\"))}\">`,\n metadata.alternates?.canonical === undefined\n ? undefined\n : `<link rel=\"canonical\" href=\"${escapeHtmlAttribute(metadataString(metadata.alternates.canonical, \"alternates.canonical\"))}\">`,\n metadata.openGraph?.title === undefined\n ? undefined\n : `<meta property=\"og:title\" content=\"${escapeHtmlAttribute(metadataString(metadata.openGraph.title, \"openGraph.title\"))}\">`,\n metadata.openGraph?.description === undefined\n ? undefined\n : `<meta property=\"og:description\" content=\"${escapeHtmlAttribute(metadataString(metadata.openGraph.description, \"openGraph.description\"))}\">`,\n ...openGraphImages(metadata.openGraph).map(\n (image) => `<meta property=\"og:image\" content=\"${escapeHtmlAttribute(image)}\">`,\n ),\n metadata.icons?.icon === undefined\n ? undefined\n : `<link rel=\"icon\" href=\"${escapeHtmlAttribute(metadataString(metadata.icons.icon, \"icons.icon\"))}\">`,\n metadata.icons?.apple === undefined\n ? undefined\n : `<link rel=\"apple-touch-icon\" href=\"${escapeHtmlAttribute(metadataString(metadata.icons.apple, \"icons.apple\"))}\">`,\n metadata.robots === undefined\n ? undefined\n : `<meta name=\"robots\" content=\"${escapeHtmlAttribute(robotsContent(metadata.robots))}\">`,\n metadata.themeColor === undefined ? undefined : themeColorTag(metadata.themeColor),\n metadata.viewport === undefined\n ? undefined\n : `<meta name=\"viewport\" content=\"${escapeHtmlAttribute(viewportContent(metadata.viewport))}\">`,\n ...headDescriptorTags(metadata.head, metadata.csp?.nonce),\n ]\n .filter((tag): tag is string => tag !== undefined)\n .join(\"\");\n\n if (tags === \"\") {\n return nextHtml;\n }\n\n if (/<head(?:\\s[^>]*)?>/i.test(nextHtml)) {\n return nextHtml.replace(/<head(\\s[^>]*)?>/i, (match) => `${match}${tags}`);\n }\n\n if (/<html(?:\\s[^>]*)?>/i.test(nextHtml)) {\n return nextHtml.replace(/<html(\\s[^>]*)?>/i, (match) => `${match}<head>${tags}</head>`);\n }\n\n return `<head>${tags}</head>${nextHtml}`;\n}\n\nfunction injectHtmlLangAttribute(html: string, lang: string): string {\n const escapedLang = escapeHtmlAttribute(lang);\n\n if (!/<html(?:\\s[^>]*)?>/i.test(html)) {\n return html;\n }\n\n return html.replace(/<html(\\s[^>]*)?>/i, (_match, attrs = \"\") => {\n const strippedAttrs = String(attrs).replace(/\\s+lang=(?:\"[^\"]*\"|'[^']*'|[^\\s>]+)/i, \"\");\n return `<html lang=\"${escapedLang}\"${strippedAttrs}>`;\n });\n}\n\nconst DEFAULT_HTML_RESPONSE_HEADERS = Object.freeze({\n \"content-type\": \"text/html; charset=utf-8\",\n});\n\nfunction responseHeadersForMetadata(\n metadata: RouteMetadata | undefined,\n request: Request,\n extra?: Readonly<Record<string, string>>,\n): HeadersInit {\n const csp = contentSecurityPolicy(metadata?.csp);\n const security = routeSecurityHeaders({\n request,\n security: metadata?.security,\n });\n\n if (csp === undefined && extra === undefined) {\n return {\n ...DEFAULT_HTML_RESPONSE_HEADERS,\n ...security,\n };\n }\n\n return {\n ...DEFAULT_HTML_RESPONSE_HEADERS,\n ...security,\n ...(csp === undefined ? undefined : { \"content-security-policy\": csp }),\n ...extra,\n };\n}\n\nfunction textConventionResponse(body: string): Response {\n return htmlResponse(body, {\n headers: {\n \"cache-control\": \"public, max-age=3600\",\n \"content-type\": \"text/plain; charset=utf-8\",\n },\n });\n}\n\nfunction xmlConventionResponse(body: string): Response {\n return htmlResponse(body, {\n headers: {\n \"cache-control\": \"no-cache\",\n \"content-type\": \"application/xml; charset=utf-8\",\n },\n });\n}\n\nfunction jsonConventionResponse(body: ManifestDescriptor): Response {\n return htmlResponse(JSON.stringify(body), {\n headers: {\n \"cache-control\": \"public, max-age=3600\",\n \"content-type\": \"application/manifest+json; charset=utf-8\",\n },\n });\n}\n\nfunction serializeRobots(manifest: RobotsManifest): string {\n const lines: string[] = [];\n const rules =\n manifest.rules === undefined\n ? []\n : Array.isArray(manifest.rules)\n ? manifest.rules\n : [manifest.rules];\n\n for (const rule of rules) {\n for (const userAgent of arrayValue(rule.userAgent)) {\n lines.push(`User-agent: ${userAgent}`);\n }\n for (const allow of arrayValue(rule.allow)) {\n lines.push(`Allow: ${allow}`);\n }\n for (const disallow of arrayValue(rule.disallow)) {\n lines.push(`Disallow: ${disallow}`);\n }\n }\n\n for (const sitemap of arrayValue(manifest.sitemap)) {\n lines.push(`Sitemap: ${sitemap}`);\n }\n if (manifest.host !== undefined) {\n lines.push(`Host: ${manifest.host}`);\n }\n\n return `${lines.join(\"\\n\")}\\n`;\n}\n\nfunction serializeSitemap(entries: readonly SitemapEntry[]): string {\n const urls = entries\n .map((entry) => {\n const fields = [\n `<loc>${escapeXml(entry.url)}</loc>`,\n entry.lastModified === undefined\n ? undefined\n : `<lastmod>${escapeXml(sitemapDate(entry.lastModified))}</lastmod>`,\n entry.changeFrequency === undefined\n ? undefined\n : `<changefreq>${escapeXml(entry.changeFrequency)}</changefreq>`,\n entry.priority === undefined ? undefined : `<priority>${entry.priority}</priority>`,\n ].filter((field): field is string => field !== undefined);\n\n return `<url>${fields.join(\"\")}</url>`;\n })\n .join(\"\");\n\n return `<?xml version=\"1.0\" encoding=\"UTF-8\"?><urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">${urls}</urlset>`;\n}\n\nfunction sitemapDate(value: Date | number | string): string {\n if (value instanceof Date) {\n return value.toISOString();\n }\n\n return typeof value === \"number\" ? new Date(value).toISOString() : value;\n}\n\nfunction arrayValue<T>(value: T | readonly T[] | undefined): readonly T[] {\n if (value === undefined) {\n return [];\n }\n\n return Array.isArray(value) ? (value as readonly T[]) : [value as T];\n}\n\nfunction escapeXml(value: string): string {\n return value\n .replaceAll(\"&\", \"&amp;\")\n .replaceAll(\"<\", \"&lt;\")\n .replaceAll(\">\", \"&gt;\")\n .replaceAll('\"', \"&quot;\");\n}\n\nfunction injectQueryState(html: string, state: DehydratedQueryClient): string {\n if (state.queries.length === 0) {\n return html;\n }\n\n const script = `<script type=\"application/json\" id=\"${__MREACT_QUERY_STATE_SCRIPT_ID}\">${escapeJsonForHtml(\n JSON.stringify(state),\n )}</script>`;\n\n return /<\\/body>/i.test(html)\n ? html.replace(/<\\/body>/i, `${script}</body>`)\n : `${html}${script}`;\n}\n\nfunction injectAuthSessionClaims(html: string, claims: unknown): string {\n if (claims === undefined) {\n return html;\n }\n\n const script = `<script type=\"application/json\" id=\"${authSessionScriptId}\">${escapeJsonForHtml(\n JSON.stringify(claims),\n )}</script>`;\n\n return /<\\/body>/i.test(html)\n ? html.replace(/<\\/body>/i, `${script}</body>`)\n : `${html}${script}`;\n}\n\nfunction authIncludesClaims(code: string): boolean {\n return /\\bexport\\s+const\\s+auth\\s*=\\s*[\"']include-claims[\"']\\s*;?/.test(code);\n}\n\nfunction currentAuthClaims(): unknown {\n return authRequestStorage().getStore()?.claims;\n}\n\nfunction authRequestStorage(): AsyncLocalStorage<AuthRuntimeRequestState> {\n const global = globalThis as typeof globalThis & {\n [authRuntimeStateKey]?: AuthRuntimeState | undefined;\n };\n global[authRuntimeStateKey] ??= {};\n global[authRuntimeStateKey].storage ??= new AsyncLocalStorage<AuthRuntimeRequestState>();\n return global[authRuntimeStateKey].storage;\n}\n\nfunction escapeJsonForHtml(value: string): string {\n return value\n .replaceAll(\"&\", \"\\\\u0026\")\n .replaceAll(\"<\", \"\\\\u003c\")\n .replaceAll(\">\", \"\\\\u003e\")\n .replaceAll(\"\\u2028\", \"\\\\u2028\")\n .replaceAll(\"\\u2029\", \"\\\\u2029\");\n}\n\nfunction headDescriptorTags(\n descriptors: readonly RouteHeadDescriptor[] | undefined,\n nonce: string | undefined,\n): string[] {\n return (descriptors ?? []).flatMap((descriptor) => {\n const descriptorNonce = descriptor.nonce === true ? nonce : descriptor.nonce || undefined;\n const attrs: Record<string, boolean | number | string | undefined> = {\n ...descriptor.attrs,\n ...(descriptorNonce === undefined ? {} : { nonce: descriptorNonce }),\n };\n const attrText = Object.entries(attrs)\n .flatMap(([name, value]) => {\n if (value === undefined || value === false) {\n return [];\n }\n\n return value === true\n ? [escapeHtmlAttribute(name)]\n : [`${escapeHtmlAttribute(name)}=\"${escapeHtmlAttribute(String(value))}\"`];\n })\n .join(\" \");\n const open = attrText === \"\" ? `<${descriptor.tag}>` : `<${descriptor.tag} ${attrText}>`;\n\n if (descriptor.tag === \"meta\" || descriptor.tag === \"link\" || descriptor.tag === \"base\") {\n return [open.slice(0, -1) + \">\"];\n }\n\n return [`${open}${escapeHeadTextContent(descriptor.content ?? \"\")}</${descriptor.tag}>`];\n });\n}\n\nfunction escapeHeadTextContent(value: string): string {\n return value.replaceAll(\"<\", \"\\\\u003c\");\n}\n\nfunction metadataString(value: MetadataScalar, path: string): string {\n if (isMetadataScalar(value)) {\n return String(value);\n }\n\n throw new Error(`Invalid metadata field ${path}: expected string, number, or boolean.`);\n}\n\nfunction metadataKebabName(name: string): string {\n return name.replace(/[A-Z]/g, (char) => `-${char.toLowerCase()}`);\n}\n\nfunction viewportContent(viewport: MetadataScalar | MetadataViewport): string {\n if (isMetadataScalar(viewport)) {\n return metadataString(viewport, \"viewport\");\n }\n\n return Object.entries(viewport)\n .flatMap(([key, value]) => {\n if (value === undefined || value === null || value === false) {\n return [];\n }\n\n return [`${metadataKebabName(key)}=${metadataString(value, `viewport.${key}`)}`];\n })\n .join(\", \");\n}\n\nfunction themeColorTag(themeColor: MetadataScalar | MetadataThemeColor): string {\n if (isMetadataScalar(themeColor)) {\n return `<meta name=\"theme-color\" content=\"${escapeHtmlAttribute(metadataString(themeColor, \"themeColor\"))}\">`;\n }\n\n const content = themeColor.color;\n if (!isMetadataScalar(content)) {\n throw new Error(\n \"Invalid metadata field themeColor.color: expected string, number, or boolean.\",\n );\n }\n\n const media =\n themeColor.media === undefined\n ? \"\"\n : ` media=\"${escapeHtmlAttribute(metadataString(metadataScalarField(themeColor.media, \"themeColor.media\"), \"themeColor.media\"))}\"`;\n\n return `<meta name=\"theme-color\"${media} content=\"${escapeHtmlAttribute(metadataString(content, \"themeColor.color\"))}\">`;\n}\n\nfunction metadataScalarField(value: unknown, path: string): MetadataScalar {\n if (isMetadataScalar(value)) {\n return value;\n }\n\n throw new Error(`Invalid metadata field ${path}: expected string, number, or boolean.`);\n}\n\nfunction isMetadataScalar(value: unknown): value is MetadataScalar {\n return typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\";\n}\n\nfunction openGraphImages(openGraph: RouteMetadata[\"openGraph\"]): readonly string[] {\n if (openGraph?.images !== undefined) {\n return openGraph.images.map((image, index) =>\n metadataImageUrl(image, `openGraph.images.${index}`),\n );\n }\n\n return openGraph?.image === undefined ? [] : [metadataImageUrl(openGraph.image, \"openGraph.image\")];\n}\n\nfunction metadataImageUrl(value: MetadataImage | MetadataScalar, path: string): string {\n if (isMetadataScalar(value)) {\n return metadataString(value, path);\n }\n\n if (typeof value === \"object\" && value !== null && \"url\" in value) {\n return metadataString(value.url, `${path}.url`);\n }\n\n throw new Error(`Invalid metadata field ${path}: expected string, number, boolean, or object with url.`);\n}\n\nfunction robotsContent(robots: NonNullable<RouteMetadata[\"robots\"]>): string {\n if (typeof robots === \"string\") {\n return robots;\n }\n\n return [\n robots.index === false ? \"noindex\" : \"index\",\n robots.follow === false ? \"nofollow\" : \"follow\",\n ].join(\",\");\n}\n\nfunction readServerSourceFile(\n file: string,\n serverModuleCacheVersion: string | undefined,\n serverSourceFiles: ReadonlyMap<string, string> | undefined,\n): Promise<string> {\n const manifestSource = serverSourceFiles?.get(file);\n\n if (manifestSource !== undefined) {\n return Promise.resolve(manifestSource);\n }\n\n if (serverModuleCacheVersion === undefined) {\n return readFile(file, \"utf8\");\n }\n\n const key = `${serverModuleCacheVersion}:${file}`;\n const cached = readRouterRuntimeCacheEntry(\n serverSourceFileCache,\n key,\n serverSourceFileCacheCounters,\n );\n\n if (cached !== undefined) {\n return cached;\n }\n\n const loaded = readFile(file, \"utf8\").catch((error) => {\n serverSourceFileCache.delete(key);\n throw error;\n });\n setBoundedCacheEntry(\n serverSourceFileCache,\n key,\n loaded,\n maxServerSourceFileCacheEntries,\n serverSourceFileCacheCounters,\n );\n\n return loaded;\n}\n\nfunction hashText(text: string): string {\n return createHash(\"sha256\").update(text).digest(\"hex\").slice(0, 16);\n}\n\nfunction setBoundedCacheEntry<K, V>(\n cache: Map<K, V>,\n key: K,\n value: V,\n maxEntries: number,\n counters?: RouterRuntimeCacheCounters,\n): void {\n if (cache.size >= maxEntries) {\n const oldestKey = cache.keys().next().value as K | undefined;\n\n if (oldestKey !== undefined) {\n cache.delete(oldestKey);\n if (counters !== undefined) {\n counters.evictions += 1;\n }\n }\n }\n\n cache.set(key, value);\n}\n"]}