@reckona/mreact-router 0.0.108 → 0.0.109

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.
@@ -1 +1 @@
1
- {"version":3,"file":"cloudflare.d.ts","sourceRoot":"","sources":["../../src/adapters/cloudflare.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cloudflare.d.ts","sourceRoot":"","sources":["../../src/adapters/cloudflare.ts"],"names":[],"mappings":"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"}
@@ -178,13 +178,16 @@ const cloudflareReservedPageModuleExportNames = new Set([
178
178
  "stream",
179
179
  ]);
180
180
  function selectCloudflarePageComponent(module) {
181
- if (typeof module.default === "function") {
182
- return module.default;
181
+ const defaultExport = readCloudflareModuleExport(module, "default");
182
+ if (typeof defaultExport === "function") {
183
+ return defaultExport;
183
184
  }
184
- if (typeof module.App === "function") {
185
- return module.App;
185
+ const appExport = readCloudflareModuleExport(module, "App");
186
+ if (typeof appExport === "function") {
187
+ return appExport;
186
188
  }
187
- for (const [name, value] of Object.entries(module)) {
189
+ for (const name of Object.keys(module)) {
190
+ const value = readCloudflareModuleExport(module, name);
188
191
  if (!cloudflareReservedPageModuleExportNames.has(name) &&
189
192
  typeof value === "function") {
190
193
  return value;
@@ -192,6 +195,16 @@ function selectCloudflarePageComponent(module) {
192
195
  }
193
196
  return undefined;
194
197
  }
198
+ function readCloudflareModuleExport(module, name) {
199
+ const descriptor = Object.getOwnPropertyDescriptor(module, name);
200
+ if (descriptor === undefined) {
201
+ return undefined;
202
+ }
203
+ if ("value" in descriptor) {
204
+ return descriptor.value;
205
+ }
206
+ return descriptor.get?.call(module);
207
+ }
195
208
  const cloudflareDiagnosticPageModuleExportNames = ["default", "App", "slots"];
196
209
  // Fixed names + typeof only (never values) so the 500 response is useful without
197
210
  // listing app-specific export names. Accessors are not invoked.
@@ -1 +1 @@
1
- {"version":3,"file":"cloudflare.js","sourceRoot":"","sources":["../../src/adapters/cloudflare.ts"],"names":[],"mappings":"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","sourcesContent":["import type { BuiltPrerenderedRoute, BuiltServerManifest } from \"../build.js\";\nimport type { ClientRouteManifestEntry } from \"../client.js\";\nimport type { AppRouterResponseHook } from \"../render.js\";\nimport type {\n GenerateMetadataContext,\n ManifestDescriptor,\n RobotsManifest,\n RouteMetadata,\n SitemapEntry,\n} from \"../types.js\";\nimport {\n emitRouterLog,\n logDurationMs,\n logError,\n logNow,\n requestLogFields,\n type AppRouterLogger,\n} from \"../logger.js\";\nimport { normalizeRoutePath } from \"../route-path.js\";\nimport type { AppRoute } from \"../routes.js\";\nimport { isNotFoundError } from \"../navigation.js\";\nimport { routeSecurityHeaders } from \"../security-headers.js\";\nimport type { AppRouterPrerenderStore } from \"../serve.js\";\nimport { emitRouterDevtoolsEvent } from \"./devtools.js\";\nimport { escapeHtmlAttribute, escapeHtmlText } from \"@reckona/mreact-shared/html-escape\";\n\nexport interface CloudflareExecutionContext {\n passThroughOnException(): void;\n waitUntil(promise: Promise<unknown>): void;\n}\n\nexport interface CloudflareAssetLoader<Env = unknown> {\n fetch?:\n | ((\n pathname: string,\n request: Request,\n env: Env,\n context: CloudflareExecutionContext,\n ) => Response | Promise<Response | undefined> | undefined)\n | undefined;\n}\n\nexport interface CloudflareRenderContext<Env = unknown> {\n clientManifest: CloudflareClientManifest;\n context: CloudflareExecutionContext;\n env: Env;\n serverManifest: BuiltServerManifest;\n}\n\nexport interface CloudflareRequestHandlerOptions<Env = unknown> {\n assets?: CloudflareAssetLoader<Env> | undefined;\n clientManifest: CloudflareClientManifest;\n logger?: AppRouterLogger | undefined;\n onResponse?: AppRouterResponseHook | undefined;\n onError?:\n | ((\n error: unknown,\n request: Request,\n env: Env,\n context: CloudflareExecutionContext,\n ) => Response | Promise<Response>)\n | undefined;\n render?:\n | ((request: Request, context: CloudflareRenderContext<Env>) => Response | Promise<Response>)\n | undefined;\n serverManifest: BuiltServerManifest;\n}\n\nexport interface CloudflareRequestHandler<Env = unknown> {\n fetch(request: Request, env: Env, context: CloudflareExecutionContext): Promise<Response>;\n}\n\nexport interface CloudflareBuiltRouteRenderContext<\n Env = unknown,\n> extends CloudflareRenderContext<Env> {\n params: Record<string, readonly string[] | string>;\n route: AppRoute;\n}\n\nexport interface CloudflareRouteModuleLoaderContext<\n Env = unknown,\n> extends CloudflareBuiltRouteRenderContext<Env> {\n request: Request;\n}\n\nexport interface CloudflareServerRouteContext<\n Env = unknown,\n> extends CloudflareBuiltRouteRenderContext<Env> {\n request: Request;\n}\n\nexport interface CloudflareRouteModuleComponentProps<\n Data = unknown,\n Env = unknown,\n> extends CloudflareBuiltRouteRenderContext<Env> {\n data: Data;\n request: Request;\n}\n\nexport type CloudflareRouteModuleComponent<Data = unknown, Env = unknown> = (\n props: CloudflareRouteModuleComponentProps<Data, Env>,\n) => Response | string | PromiseLike<Response | string>;\n\nexport interface CloudflareRouteModule<Data = unknown, Env = unknown> {\n App?: CloudflareRouteModuleComponent<Data, Env> | undefined;\n default?: CloudflareRouteModuleComponent<Data, Env> | undefined;\n generateMetadata?:\n | ((\n context: GenerateMetadataContext<Data>,\n ) => RouteMetadata | PromiseLike<RouteMetadata | undefined> | undefined)\n | undefined;\n loader?:\n | ((context: CloudflareRouteModuleLoaderContext<Env>) => Data | PromiseLike<Data>)\n | undefined;\n metadata?: RouteMetadata | undefined;\n}\n\nexport type CloudflareServerRouteHandler<Env = unknown> = (\n request: Request,\n context: CloudflareServerRouteContext<Env>,\n) => unknown | PromiseLike<unknown>;\n\nexport interface CloudflareServerRouteModule<Env = unknown> {\n ALL?: CloudflareServerRouteHandler<Env> | undefined;\n DELETE?: CloudflareServerRouteHandler<Env> | undefined;\n default?: CloudflareServerRouteHandler<Env> | undefined;\n GET?: CloudflareServerRouteHandler<Env> | undefined;\n HEAD?: CloudflareServerRouteHandler<Env> | undefined;\n OPTIONS?: CloudflareServerRouteHandler<Env> | undefined;\n PATCH?: CloudflareServerRouteHandler<Env> | undefined;\n POST?: CloudflareServerRouteHandler<Env> | undefined;\n PUT?: CloudflareServerRouteHandler<Env> | undefined;\n}\n\nexport interface CloudflareMetadataRouteContext {\n baseUrl: string;\n host: string;\n params: Record<string, readonly string[] | string>;\n request: Request;\n}\n\nexport interface CloudflareMetadataRouteModule {\n default?: ((context: CloudflareMetadataRouteContext) => unknown | PromiseLike<unknown>) | undefined;\n}\n\nexport type CloudflareRouteModuleRegistryEntry<Env = unknown> =\n | CloudflareRouteModule<unknown, Env>\n | CloudflareMetadataRouteModule\n | CloudflareServerRouteModule<Env>;\n\nexport type CloudflareRouteModuleRegistry<Env = unknown> = Record<\n string,\n | CloudflareRouteModuleRegistryEntry<Env>\n | (() => CloudflareRouteModuleRegistryEntry<Env> | PromiseLike<CloudflareRouteModuleRegistryEntry<Env>>)\n>;\n\nexport interface CloudflareRouteModuleRendererOptions<Env = unknown> {\n document?:\n | ((\n context: CloudflareRouteModuleComponentProps<unknown, Env> & {\n body: string;\n modulePreload: string;\n },\n ) => Response | string | PromiseLike<Response | string>)\n | undefined;\n modules: CloudflareRouteModuleRegistry<Env>;\n}\n\nexport type CloudflareRouteModuleGlob<Env = unknown> = Record<\n string,\n | CloudflareRouteModuleRegistryEntry<Env>\n | (() => CloudflareRouteModuleRegistryEntry<Env> | PromiseLike<CloudflareRouteModuleRegistryEntry<Env>>)\n>;\n\nexport interface CollectCloudflareRouteModulesOptions {\n manifest: BuiltServerManifest;\n}\n\nexport interface CloudflareBuiltRequestHandlerOptions<Env = unknown> extends Omit<\n CloudflareRequestHandlerOptions<Env>,\n \"render\"\n> {\n renderRoute?:\n | ((\n request: Request,\n context: CloudflareBuiltRouteRenderContext<Env>,\n ) => Response | Promise<Response>)\n | undefined;\n}\n\nexport interface CloudflareClientManifest {\n publicAssets?: readonly string[] | undefined;\n routes: ClientRouteManifestEntry[];\n}\n\nexport interface CloudflareAssetBinding {\n fetch(request: Request): Response | Promise<Response>;\n}\n\nexport interface CloudflareStaticAssetLoaderOptions<Env = unknown> {\n binding:\n | CloudflareAssetBinding\n | ((\n env: Env,\n ) => CloudflareAssetBinding | Promise<CloudflareAssetBinding | undefined> | undefined);\n clientManifest: CloudflareClientManifest;\n extraPaths?: readonly string[] | undefined;\n prefix?: string | undefined;\n}\n\nexport interface CloudflareCache {\n delete(request: Request | string): boolean | Promise<boolean>;\n match(request: Request | string): Response | Promise<Response | undefined> | undefined;\n put(request: Request | string, response: Response): void | Promise<void>;\n}\n\nexport interface CloudflarePrerenderStoreOptions {\n cache: CloudflareCache;\n keyOrigin?: string | undefined;\n keyPrefix?: string | undefined;\n}\n\nconst clientPrefix = \"/_mreact/client/\";\nconst defaultPrerenderCacheOrigin = \"https://mreact.local\";\nconst defaultPrerenderCachePrefix = \"/_mreact/prerender\";\n\nexport function createCloudflareRequestHandler<Env = unknown>(\n options: CloudflareRequestHandlerOptions<Env>,\n): CloudflareRequestHandler<Env> {\n return {\n async fetch(request, env, context) {\n const startedAt = logNow();\n try {\n return await handleCloudflareRequest(options, request, env, context);\n } catch (error) {\n const logFields = requestLogFields(request, \"cloudflare\");\n emitRouterDevtoolsEvent({\n method: request.method,\n type: \"router:request:error\",\n url: request.url,\n });\n emitRouterLog(options.logger, \"error\", {\n ...logFields,\n durationMs: logDurationMs(startedAt),\n error: logError(error),\n type: \"router:request:error\",\n });\n\n return await applyCloudflareResponseHook(\n options.onError === undefined\n ? new Response(\"Internal Server Error\", {\n headers: { \"content-type\": \"text/plain; charset=utf-8\" },\n status: 500,\n })\n : await options.onError(error, request, env, context),\n options,\n request,\n );\n }\n },\n };\n}\n\nexport function createCloudflareBuiltRequestHandler<Env = unknown>(\n options: CloudflareBuiltRequestHandlerOptions<Env>,\n): CloudflareRequestHandler<Env> {\n const sortedRoutes = [...options.serverManifest.routes].sort(compareCloudflareRoutes);\n\n return createCloudflareRequestHandler({\n ...options,\n render(request, context) {\n const matched = matchCloudflareRoute(\n sortedRoutes,\n new URL(request.url).pathname,\n );\n\n if (matched === undefined || options.renderRoute === undefined) {\n return new Response(\"Not Found\", { status: 404 });\n }\n\n return options.renderRoute(request, {\n ...context,\n params: matched.params,\n route: matched.route,\n });\n },\n });\n}\n\nexport function createCloudflareRouteModuleRenderer<Env = unknown>(\n options: CloudflareRouteModuleRendererOptions<Env>,\n): NonNullable<CloudflareBuiltRequestHandlerOptions<Env>[\"renderRoute\"]> {\n return async (request, context) => {\n if (context.route.kind !== \"server\" && isCloudflareNavigationRequest(request)) {\n return cloudflareDocumentReloadNavigationResponse();\n }\n\n const module = await loadCloudflareRouteModule(options.modules, context.route.file);\n\n if (module === undefined) {\n return new Response(`No Cloudflare route module registered for ${context.route.file}.`, {\n headers: { \"content-type\": \"text/plain; charset=utf-8\" },\n status: 500,\n });\n }\n\n if (context.route.kind === \"server\") {\n return withDefaultSecurityHeaders(\n await dispatchCloudflareServerRoute(module as CloudflareServerRouteModule<Env>, request, {\n ...context,\n request,\n }),\n request,\n );\n }\n\n if (context.route.kind === \"metadata\") {\n return withDefaultSecurityHeaders(\n await dispatchCloudflareMetadataRoute(module as CloudflareMetadataRouteModule, request, {\n ...context,\n request,\n }),\n request,\n );\n }\n\n const pageModule = module as CloudflareRouteModule<unknown, Env>;\n const component = selectCloudflarePageComponent(pageModule);\n\n if (component === undefined) {\n return new Response(\n `No Cloudflare page component registered for ${context.route.file}. Module exports: ${describeCloudflareModuleExports(pageModule)}.`,\n {\n headers: { \"content-type\": \"text/plain; charset=utf-8\" },\n status: 500,\n },\n );\n }\n\n const loaderContext = {\n ...context,\n request,\n };\n let data: unknown;\n\n try {\n data = pageModule.loader === undefined ? undefined : await pageModule.loader(loaderContext);\n } catch (error) {\n if (error instanceof Response) {\n return error;\n }\n\n if (isNotFoundError(error)) {\n return cloudflareNotFoundResponse(request);\n }\n\n throw error;\n }\n const props = {\n ...context,\n data,\n request,\n };\n let rendered: Awaited<ReturnType<typeof component>>;\n\n try {\n rendered = await component(props);\n } catch (error) {\n if (isNotFoundError(error)) {\n return cloudflareNotFoundResponse(request);\n }\n\n throw error;\n }\n\n if (rendered instanceof Response) {\n return withDefaultSecurityHeaders(rendered, request);\n }\n\n const modulePreload = cloudflareModulePreloadTag(context.clientManifest, context.route.path);\n const metadata = await resolveCloudflareRouteMetadata([pageModule], props);\n const documented =\n options.document === undefined\n ? defaultCloudflareDocument(rendered, modulePreload, metadata)\n : await options.document({\n ...props,\n body: rendered,\n modulePreload,\n });\n\n return withDefaultSecurityHeaders(\n documented instanceof Response\n ? documented\n : new Response(documented, {\n headers: { \"content-type\": \"text/html; charset=utf-8\" },\n }),\n request,\n );\n };\n}\n\nasync function dispatchCloudflareServerRoute<Env>(\n module: CloudflareServerRouteModule<Env>,\n request: Request,\n context: CloudflareServerRouteContext<Env>,\n): Promise<Response> {\n const handler =\n module[request.method as keyof CloudflareServerRouteModule<Env>] ?? 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(request, context);\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\nconst cloudflareReservedPageModuleExportNames = new Set([\n \"ALL\",\n \"DELETE\",\n \"GET\",\n \"HEAD\",\n \"OPTIONS\",\n \"PATCH\",\n \"POST\",\n \"PUT\",\n \"App\",\n \"default\",\n \"generateMetadata\",\n \"generateStaticParams\",\n \"loader\",\n \"metadata\",\n \"middleware\",\n \"prerender\",\n \"revalidate\",\n \"slots\",\n \"stream\",\n]);\n\nfunction selectCloudflarePageComponent<Data, Env>(\n module: CloudflareRouteModule<Data, Env>,\n): CloudflareRouteModuleComponent<Data, Env> | undefined {\n if (typeof module.default === \"function\") {\n return module.default;\n }\n\n if (typeof module.App === \"function\") {\n return module.App;\n }\n\n for (const [name, value] of Object.entries(module)) {\n if (\n !cloudflareReservedPageModuleExportNames.has(name) &&\n typeof value === \"function\"\n ) {\n return value as CloudflareRouteModuleComponent<Data, Env>;\n }\n }\n\n return undefined;\n}\n\nconst cloudflareDiagnosticPageModuleExportNames = [\"default\", \"App\", \"slots\"] as const;\n\n// Fixed names + typeof only (never values) so the 500 response is useful without\n// listing app-specific export names. Accessors are not invoked.\nfunction describeCloudflareModuleExports(module: object): string {\n const described = cloudflareDiagnosticPageModuleExportNames.map(\n (name) => `${name}=${typeofCloudflareModuleExport(module, name)}`,\n );\n\n return described.join(\", \");\n}\n\nfunction typeofCloudflareModuleExport(module: object, name: string): string {\n const descriptor = Object.getOwnPropertyDescriptor(module, name);\n if (descriptor === undefined) {\n return \"absent\";\n }\n\n if (!(\"value\" in descriptor)) {\n return \"accessor\";\n }\n\n return typeof descriptor.value;\n}\n\nasync function dispatchCloudflareMetadataRoute(\n module: CloudflareMetadataRouteModule,\n request: Request,\n context: CloudflareBuiltRouteRenderContext & { request: Request },\n): Promise<Response> {\n if (request.method !== \"GET\" && request.method !== \"HEAD\") {\n return new Response(\"Method Not Allowed\", {\n headers: { allow: \"GET, HEAD\" },\n status: 405,\n });\n }\n\n if (typeof module.default !== \"function\") {\n return new Response(\"Invalid metadata route response\", { status: 500 });\n }\n\n const url = new URL(request.url);\n const value = await module.default({\n baseUrl: url.origin,\n host: url.host,\n params: context.params,\n request,\n });\n\n if (value instanceof Response) {\n return value;\n }\n\n if (context.route.kind !== \"metadata\") {\n return new Response(\"Invalid metadata route convention\", { status: 500 });\n }\n\n if (context.route.convention === \"robots\") {\n return new Response(serializeCloudflareRobots(value as RobotsManifest), {\n headers: {\n \"cache-control\": \"public, max-age=3600\",\n \"content-type\": \"text/plain; charset=utf-8\",\n },\n });\n }\n\n if (context.route.convention === \"sitemap\") {\n return new Response(serializeCloudflareSitemap(value as readonly SitemapEntry[]), {\n headers: {\n \"cache-control\": \"no-cache\",\n \"content-type\": \"application/xml; charset=utf-8\",\n },\n });\n }\n\n if (context.route.convention === \"manifest\") {\n return new Response(JSON.stringify(value as ManifestDescriptor), {\n headers: {\n \"cache-control\": \"public, max-age=3600\",\n \"content-type\": \"application/manifest+json; charset=utf-8\",\n },\n });\n }\n\n if (context.route.convention === \"opengraph-image\") {\n const body = value instanceof Uint8Array ? value.slice().buffer : String(value);\n return new Response(body, {\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 return new Response(\"Invalid metadata route convention\", { status: 500 });\n}\n\nfunction isCloudflareNavigationRequest(request: Request): boolean {\n return request.headers.get(\"x-mreact-navigation\") === \"1\";\n}\n\nfunction cloudflareDocumentReloadNavigationResponse(): Response {\n return new Response(null, {\n headers: { \"x-mreact-navigation\": \"reload\" },\n status: 204,\n });\n}\n\nfunction withDefaultSecurityHeaders(response: Response, request: Request): Response {\n const headers = new Headers(response.headers);\n\n for (const [name, value] of Object.entries(routeSecurityHeaders({ request, security: undefined }))) {\n if (!headers.has(name)) {\n headers.set(name, value);\n }\n }\n\n return new Response(response.body, {\n headers,\n status: response.status,\n statusText: response.statusText,\n });\n}\n\nexport function collectCloudflareRouteModules<Env = unknown>(\n glob: CloudflareRouteModuleGlob<Env>,\n options: CollectCloudflareRouteModulesOptions,\n): CloudflareRouteModuleRegistry<Env> {\n const requiredRoutes = options.manifest.routes.filter((route) =>\n cloudflareRouteRequiresModule(route, options.manifest),\n );\n const matchedKeys = new Set<string>();\n const modules: CloudflareRouteModuleRegistry<Env> = {};\n\n for (const route of requiredRoutes) {\n const match = Object.entries(glob).find(([key]) =>\n cloudflareRouteGlobKeyMatchesRoute(key, route.file),\n );\n\n if (match === undefined) {\n throw new Error(`Missing Cloudflare route module for ${route.file}.`);\n }\n\n const [key, module] = match;\n matchedKeys.add(key);\n modules[route.file] = module;\n }\n\n const extraKeys = Object.keys(glob).filter((key) => !matchedKeys.has(key));\n\n if (extraKeys.length > 0) {\n throw new Error(`Extra Cloudflare route module entries: ${extraKeys.join(\", \")}.`);\n }\n\n return modules;\n}\n\nexport function createCloudflareStaticAssetLoader<Env = unknown>(\n options: CloudflareStaticAssetLoaderOptions<Env>,\n): CloudflareAssetLoader<Env> {\n const prefix = normalizeAssetPrefix(options.prefix ?? clientPrefix);\n const allowedPaths = cloudflareClientAssetPaths(options.clientManifest, {\n extraPaths: options.extraPaths,\n prefix,\n });\n\n return {\n async fetch(pathname, request, env) {\n if (!allowedPaths.has(pathname)) {\n return undefined;\n }\n\n const binding =\n typeof options.binding === \"function\" ? await options.binding(env) : options.binding;\n\n if (binding === undefined) {\n return undefined;\n }\n\n const assetUrl = new URL(request.url);\n assetUrl.pathname = pathname;\n assetUrl.search = \"\";\n\n return await binding.fetch(new Request(assetUrl, request));\n },\n };\n}\n\nexport function cloudflareClientAssetPaths(\n manifest: CloudflareClientManifest,\n options: { extraPaths?: readonly string[] | undefined; prefix?: string | undefined } = {},\n): Set<string> {\n const prefix = normalizeAssetPrefix(options.prefix ?? clientPrefix);\n const paths = new Set<string>([`${prefix}manifest.json`]);\n\n for (const route of manifest.routes) {\n for (const asset of [\n route.script,\n route.sourceMap,\n route.navigationScript,\n ...(route.css ?? []),\n ...(route.imports ?? []),\n ]) {\n const path = safeClientAssetPath(prefix, asset);\n\n if (path !== undefined) {\n paths.add(path);\n }\n }\n }\n\n for (const extraPath of options.extraPaths ?? []) {\n const path = safeClientAssetPath(prefix, extraPath);\n\n if (path !== undefined) {\n paths.add(path);\n }\n }\n\n for (const publicAsset of manifest.publicAssets ?? []) {\n const path = safePublicAssetPath(publicAsset);\n\n if (path !== undefined) {\n paths.add(path);\n }\n }\n\n return paths;\n}\n\nfunction safePublicAssetPath(asset: string): string | undefined {\n if (!asset.startsWith(\"/\") || asset.startsWith(\"//\") || asset.includes(\"..\")) {\n return undefined;\n }\n\n return asset;\n}\n\nexport function createCloudflarePrerenderStore(\n options: CloudflarePrerenderStoreOptions,\n): AppRouterPrerenderStore {\n return {\n async delete(path) {\n await options.cache.delete(prerenderCacheRequest(options, path));\n },\n async get(path) {\n const response = await options.cache.match(prerenderCacheRequest(options, path));\n\n if (response === undefined) {\n return undefined;\n }\n\n return (await response.json()) as BuiltPrerenderedRoute;\n },\n async set(path, entry) {\n await options.cache.put(\n prerenderCacheRequest(options, path),\n Response.json(entry, {\n headers: { \"cache-control\": \"no-store\" },\n }),\n );\n },\n };\n}\n\nasync function handleCloudflareRequest<Env>(\n options: CloudflareRequestHandlerOptions<Env>,\n request: Request,\n env: Env,\n context: CloudflareExecutionContext,\n): Promise<Response> {\n const startedAt = logNow();\n const logFields = requestLogFields(request, \"cloudflare\");\n emitRouterLog(options.logger, \"info\", {\n ...logFields,\n type: \"router:request:start\",\n });\n emitRouterDevtoolsEvent({\n method: request.method,\n type: \"router:request:start\",\n url: request.url,\n });\n\n const url = new URL(request.url);\n\n if (\n url.pathname.startsWith(clientPrefix) ||\n isCloudflarePublicAssetPath(options.clientManifest, url.pathname)\n ) {\n const response = await options.assets?.fetch?.(url.pathname, request, env, context);\n const assetResponse = await applyCloudflareResponseHook(\n response ?? new Response(\"Not Found\", { status: 404 }),\n options,\n request,\n );\n emitRouterLog(options.logger, \"info\", {\n ...logFields,\n durationMs: logDurationMs(startedAt),\n status: assetResponse.status,\n type: \"router:request:end\",\n });\n return assetResponse;\n }\n\n const staticResponse = prerenderedResponse(\n options.serverManifest.prerenderedRoutes,\n normalizeRoutePath(url.pathname),\n request.method,\n isCloudflareNavigationRequest(request),\n );\n\n if (staticResponse !== undefined) {\n emitRouterDevtoolsEvent({\n method: request.method,\n status: staticResponse.status,\n type: \"router:request:end\",\n url: request.url,\n });\n emitRouterLog(options.logger, \"info\", {\n ...logFields,\n durationMs: logDurationMs(startedAt),\n status: staticResponse.status,\n type: \"router:request:end\",\n });\n return await applyCloudflareResponseHook(staticResponse, options, request);\n }\n\n if (options.render === undefined) {\n const notFoundResponse = await applyCloudflareResponseHook(\n new Response(\"Not Found\", { status: 404 }),\n options,\n request,\n );\n emitRouterLog(options.logger, \"info\", {\n ...logFields,\n durationMs: logDurationMs(startedAt),\n status: notFoundResponse.status,\n type: \"router:request:end\",\n });\n return notFoundResponse;\n }\n\n const renderedResponse = await options.render(request, {\n clientManifest: options.clientManifest,\n context,\n env,\n serverManifest: options.serverManifest,\n });\n const response = await applyCloudflareResponseHook(\n preserveCloudflareStreamedHtmlResponse(renderedResponse),\n options,\n request,\n );\n emitRouterDevtoolsEvent({\n method: request.method,\n status: response.status,\n type: \"router:request:end\",\n url: request.url,\n });\n emitRouterLog(options.logger, \"info\", {\n ...logFields,\n durationMs: logDurationMs(startedAt),\n status: response.status,\n type: \"router:request:end\",\n });\n\n return response;\n}\n\nfunction isCloudflarePublicAssetPath(manifest: CloudflareClientManifest, pathname: string): boolean {\n return (manifest.publicAssets ?? []).includes(pathname);\n}\n\nasync function applyCloudflareResponseHook<Env>(\n response: Response,\n options: Pick<CloudflareRequestHandlerOptions<Env>, \"onResponse\">,\n request: Request,\n): Promise<Response> {\n const hooked = await options.onResponse?.(response, { request });\n\n return hooked instanceof Response ? hooked : response;\n}\n\nfunction preserveCloudflareStreamedHtmlResponse(response: Response): Response {\n if (\n response.headers.get(\"x-mreact-stream\") !== \"1\" ||\n !isHtmlContentType(response.headers.get(\"content-type\"))\n ) {\n return response;\n }\n\n const headers = new Headers(response.headers);\n const cacheControl = headers.get(\"cache-control\");\n\n if (!cacheControlHasDirective(cacheControl, \"no-transform\")) {\n headers.set(\n \"cache-control\",\n cacheControl === null || cacheControl.trim() === \"\"\n ? \"no-transform\"\n : `${cacheControl}, no-transform`,\n );\n }\n\n if (headers.get(\"content-encoding\") === null) {\n headers.set(\"content-encoding\", \"identity\");\n }\n\n return new Response(response.body, {\n headers,\n status: response.status,\n statusText: response.statusText,\n });\n}\n\nfunction isHtmlContentType(contentType: string | null): boolean {\n return contentType?.toLowerCase().split(\";\", 1)[0]?.trim() === \"text/html\";\n}\n\nfunction cacheControlHasDirective(cacheControl: string | null, directive: string): boolean {\n if (cacheControl === null) {\n return false;\n }\n\n const normalizedDirective = directive.toLowerCase();\n return cacheControl\n .split(\",\")\n .some((part) => part.trim().toLowerCase() === normalizedDirective);\n}\n\nfunction prerenderedResponse(\n prerenderedRoutes: Record<string, BuiltPrerenderedRoute> | undefined,\n path: string,\n method: string,\n isNavigation: boolean,\n): Response | undefined {\n if (method !== \"GET\" && method !== \"HEAD\") {\n return undefined;\n }\n\n const prerendered = prerenderedRoutes?.[path];\n\n if (prerendered === undefined) {\n return undefined;\n }\n\n if (isNavigation && !prerendered.html.includes(\"data-mreact-route-id\")) {\n return cloudflareDocumentReloadNavigationResponse();\n }\n\n return new Response(method === \"HEAD\" ? null : prerendered.html, {\n headers: prerendered.headers,\n status: prerendered.status,\n });\n}\n\nfunction cloudflareRouteRequiresModule(\n route: AppRoute,\n manifest: BuiltServerManifest,\n): boolean {\n return (\n route.kind === \"metadata\" ||\n route.kind === \"server\" ||\n (route.kind === \"page\" &&\n (route.segments.some((segment) => segment.kind !== \"static\") ||\n manifest.prerenderedRoutes?.[route.path] === undefined))\n );\n}\n\nfunction cloudflareRouteGlobKeyMatchesRoute(key: string, routeFile: string): boolean {\n const normalizedKey = normalizeCloudflareRouteModulePath(key);\n const normalizedRoute = normalizeCloudflareRouteModulePath(routeFile);\n\n return (\n normalizedKey === normalizedRoute ||\n normalizedKey.endsWith(`/${normalizedRoute}`)\n );\n}\n\nfunction normalizeCloudflareRouteModulePath(path: string): string {\n const withoutPrefix = path\n .replace(/\\\\/g, \"/\")\n .replace(/^\\.\\//, \"\")\n .replace(/^\\/+/, \"\");\n\n return withoutPrefix.replace(/\\.(?:mjs|js|ts|tsx)$/, \"\");\n}\n\nfunction matchCloudflareRoute(\n routes: readonly AppRoute[],\n pathname: string,\n): { params: Record<string, readonly string[] | string>; route: AppRoute } | undefined {\n const normalizedPath = normalizeRoutePath(pathname);\n const pathSegments = normalizedPath === \"/\" ? [] : normalizedPath.slice(1).split(\"/\");\n\n for (const route of routes) {\n const params: Record<string, readonly string[] | string> = {};\n const catchAllIndex = route.segments.findIndex((segment) => segment.kind === \"catch-all\");\n\n if (catchAllIndex === -1 && route.segments.length !== pathSegments.length) {\n continue;\n }\n\n if (\n catchAllIndex !== -1 &&\n pathSegments.length <\n catchAllIndex + 1 + route.segments.length - catchAllIndex - 1\n ) {\n continue;\n }\n\n let matched = true;\n\n for (const [index, segment] of route.segments.entries()) {\n const value = pathSegments[index];\n\n if (value === undefined) {\n matched = false;\n break;\n }\n\n if (segment.kind === \"static\") {\n if (segment.value !== value) {\n matched = false;\n break;\n }\n continue;\n }\n\n if (segment.kind === \"dynamic\") {\n const decoded = safeDecodePathSegment(value);\n if (decoded === undefined) {\n matched = false;\n break;\n }\n params[segment.name] = decoded;\n continue;\n }\n\n const suffixSegments = route.segments.slice(index + 1);\n const catchAllEnd = pathSegments.length - suffixSegments.length;\n\n if (catchAllEnd <= index) {\n matched = false;\n break;\n }\n\n const decodedParts: string[] = [];\n for (const part of pathSegments.slice(index, catchAllEnd)) {\n const decoded = safeDecodePathSegment(part);\n if (decoded === undefined) {\n matched = false;\n break;\n }\n decodedParts.push(decoded);\n }\n params[segment.name] = decodedParts;\n\n for (let suffixIndex = 0; suffixIndex < suffixSegments.length; suffixIndex += 1) {\n const suffixSegment = suffixSegments[suffixIndex];\n const suffixValue = pathSegments[catchAllEnd + suffixIndex];\n\n if (suffixSegment === undefined || suffixValue === undefined) {\n matched = false;\n break;\n }\n\n if (suffixSegment.kind === \"static\") {\n if (suffixSegment.value !== suffixValue) {\n matched = false;\n break;\n }\n continue;\n }\n\n if (suffixSegment.kind === \"dynamic\") {\n const decoded = safeDecodePathSegment(suffixValue);\n if (decoded === undefined) {\n matched = false;\n break;\n }\n params[suffixSegment.name] = decoded;\n continue;\n }\n\n matched = false;\n break;\n }\n\n break;\n }\n\n if (matched) {\n return { params, route };\n }\n }\n\n return undefined;\n}\n\nfunction compareCloudflareRoutes(a: AppRoute, b: AppRoute): number {\n const scoreDelta = routeSpecificityScore(b) - routeSpecificityScore(a);\n\n return scoreDelta === 0 ? a.path.localeCompare(b.path) || a.kind.localeCompare(b.kind) : scoreDelta;\n}\n\nfunction routeSpecificityScore(route: AppRoute): number {\n return route.segments.reduce((score, segment) => {\n if (segment.kind === \"static\") {\n return score + 100;\n }\n\n if (segment.kind === \"dynamic\") {\n return score + 10;\n }\n\n return score;\n }, route.segments.length);\n}\n\nfunction safeDecodePathSegment(segment: string): string | undefined {\n try {\n return decodeURIComponent(segment);\n } catch {\n return undefined;\n }\n}\n\nfunction normalizeAssetPrefix(prefix: string): string {\n const withLeadingSlash = prefix.startsWith(\"/\") ? prefix : `/${prefix}`;\n\n return withLeadingSlash.endsWith(\"/\") ? withLeadingSlash : `${withLeadingSlash}/`;\n}\n\nfunction safeClientAssetPath(prefix: string, asset: string | undefined): string | undefined {\n if (asset === undefined || asset === \"\" || asset.startsWith(\"/\") || asset.includes(\"\\\\\")) {\n return undefined;\n }\n\n const segments = asset.split(\"/\");\n\n if (segments.some((segment) => unsafeAssetSegment(segment))) {\n return undefined;\n }\n\n return `${prefix}${segments.join(\"/\")}`;\n}\n\nfunction unsafeAssetSegment(segment: string): boolean {\n if (segment === \"\" || segment === \".\" || segment === \"..\") {\n return true;\n }\n\n try {\n const decoded = decodeURIComponent(segment);\n return decoded === \".\" || decoded === \"..\" || decoded.includes(\"/\") || decoded.includes(\"\\\\\");\n } catch {\n return true;\n }\n}\n\nasync function loadCloudflareRouteModule<Env>(\n modules: CloudflareRouteModuleRegistry<Env>,\n file: string,\n): Promise<CloudflareRouteModuleRegistryEntry<Env> | undefined> {\n const entry = modules[file];\n\n return typeof entry === \"function\" ? await entry() : entry;\n}\n\nfunction cloudflareModulePreloadTag(manifest: CloudflareClientManifest, routePath: string): string {\n const script = manifest.routes.find((route) => route.path === routePath)?.script;\n\n return script === undefined\n ? \"\"\n : `<link rel=\"modulepreload\" href=\"/_mreact/client/${escapeHtmlAttribute(script)}\">`;\n}\n\nasync function resolveCloudflareRouteMetadata<Data, Env>(\n modules: readonly CloudflareRouteModule<Data, Env>[],\n context: GenerateMetadataContext<Data>,\n): Promise<RouteMetadata | undefined> {\n const metadata: RouteMetadata[] = [];\n\n for (const module of modules) {\n let next = module.metadata;\n\n if (module.generateMetadata !== undefined) {\n const generated = await module.generateMetadata(context);\n next = mergeCloudflareRouteMetadata([next, generated].filter(isCloudflareRouteMetadata));\n }\n\n if (next !== undefined) {\n metadata.push(next);\n }\n }\n\n return mergeCloudflareRouteMetadata(metadata);\n}\n\nfunction isCloudflareRouteMetadata(value: RouteMetadata | undefined): value is RouteMetadata {\n return value !== undefined;\n}\n\nfunction mergeCloudflareRouteMetadata(metadata: readonly RouteMetadata[]): RouteMetadata | undefined {\n if (metadata.length === 0) {\n return undefined;\n }\n\n return metadata.reduce<RouteMetadata>((merged, next) => {\n const openGraph = mergeCloudflareMetadataObject(merged.openGraph, next.openGraph);\n const openGraphImages = mergeCloudflareMetadataArrays(\n merged.openGraph?.images,\n next.openGraph?.images,\n );\n\n const alternates = mergeCloudflareMetadataObject(merged.alternates, next.alternates);\n const csp = mergeCloudflareMetadataObject(merged.csp, next.csp);\n const head = mergeCloudflareMetadataArrays(merged.head, next.head);\n const icons = mergeCloudflareMetadataObject(merged.icons, next.icons);\n const mergedMetadata: RouteMetadata = {\n ...merged,\n ...next,\n ...(alternates === undefined ? {} : { alternates }),\n ...(csp === undefined ? {} : { csp }),\n ...(head === undefined ? {} : { head }),\n ...(icons === undefined ? {} : { icons }),\n ...(openGraph === undefined && openGraphImages === undefined\n ? {}\n : { openGraph: { ...openGraph, ...(openGraphImages === undefined ? {} : { images: openGraphImages }) } }),\n };\n\n return mergedMetadata;\n }, {});\n}\n\nfunction mergeCloudflareMetadataObject<T extends object>(\n left: T | undefined,\n right: T | undefined,\n): T | undefined {\n if (left === undefined) {\n return right;\n }\n if (right === undefined) {\n return left;\n }\n\n return { ...left, ...right };\n}\n\nfunction mergeCloudflareMetadataArrays<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 if (right === undefined || right.length === 0) {\n return left;\n }\n\n return [...left, ...right];\n}\n\nfunction defaultCloudflareDocument(\n body: string,\n modulePreload: string,\n metadata: RouteMetadata | undefined,\n): string {\n return `<!DOCTYPE html><html><head>${modulePreload}${cloudflareMetadataTitle(metadata)}</head><body>${body}</body></html>`;\n}\n\nfunction cloudflareMetadataTitle(metadata: RouteMetadata | undefined): string {\n if (metadata?.title === undefined) {\n return \"\";\n }\n\n return `<title>${escapeHtmlText(metadataString(metadata.title))}</title>`;\n}\n\nfunction metadataString(value: boolean | number | string): string {\n return String(value);\n}\n\nfunction serializeCloudflareRobots(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 serializeCloudflareSitemap(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 cloudflareNotFoundResponse(request: Request): Response {\n return withDefaultSecurityHeaders(\n new Response(\"<!DOCTYPE html><html><head></head><body>Not Found</body></html>\", {\n headers: { \"content-type\": \"text/html; charset=utf-8\" },\n status: 404,\n }),\n request,\n );\n}\n\nfunction prerenderCacheRequest(options: CloudflarePrerenderStoreOptions, path: string): Request {\n const origin = options.keyOrigin ?? defaultPrerenderCacheOrigin;\n const prefix = options.keyPrefix ?? defaultPrerenderCachePrefix;\n const normalizedPath = normalizeRoutePath(path.startsWith(\"/\") ? path : `/${path}`);\n const url = new URL(`${normalizePrerenderPrefix(prefix)}${normalizedPath}`, origin);\n\n return new Request(url, { method: \"GET\" });\n}\n\nfunction normalizePrerenderPrefix(prefix: string): string {\n const withLeadingSlash = prefix.startsWith(\"/\") ? prefix : `/${prefix}`;\n\n return withLeadingSlash.replace(/\\/+$/, \"\");\n}\n"]}
1
+ {"version":3,"file":"cloudflare.js","sourceRoot":"","sources":["../../src/adapters/cloudflare.ts"],"names":[],"mappings":"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","sourcesContent":["import type { BuiltPrerenderedRoute, BuiltServerManifest } from \"../build.js\";\nimport type { ClientRouteManifestEntry } from \"../client.js\";\nimport type { AppRouterResponseHook } from \"../render.js\";\nimport type {\n GenerateMetadataContext,\n ManifestDescriptor,\n RobotsManifest,\n RouteMetadata,\n SitemapEntry,\n} from \"../types.js\";\nimport {\n emitRouterLog,\n logDurationMs,\n logError,\n logNow,\n requestLogFields,\n type AppRouterLogger,\n} from \"../logger.js\";\nimport { normalizeRoutePath } from \"../route-path.js\";\nimport type { AppRoute } from \"../routes.js\";\nimport { isNotFoundError } from \"../navigation.js\";\nimport { routeSecurityHeaders } from \"../security-headers.js\";\nimport type { AppRouterPrerenderStore } from \"../serve.js\";\nimport { emitRouterDevtoolsEvent } from \"./devtools.js\";\nimport { escapeHtmlAttribute, escapeHtmlText } from \"@reckona/mreact-shared/html-escape\";\n\nexport interface CloudflareExecutionContext {\n passThroughOnException(): void;\n waitUntil(promise: Promise<unknown>): void;\n}\n\nexport interface CloudflareAssetLoader<Env = unknown> {\n fetch?:\n | ((\n pathname: string,\n request: Request,\n env: Env,\n context: CloudflareExecutionContext,\n ) => Response | Promise<Response | undefined> | undefined)\n | undefined;\n}\n\nexport interface CloudflareRenderContext<Env = unknown> {\n clientManifest: CloudflareClientManifest;\n context: CloudflareExecutionContext;\n env: Env;\n serverManifest: BuiltServerManifest;\n}\n\nexport interface CloudflareRequestHandlerOptions<Env = unknown> {\n assets?: CloudflareAssetLoader<Env> | undefined;\n clientManifest: CloudflareClientManifest;\n logger?: AppRouterLogger | undefined;\n onResponse?: AppRouterResponseHook | undefined;\n onError?:\n | ((\n error: unknown,\n request: Request,\n env: Env,\n context: CloudflareExecutionContext,\n ) => Response | Promise<Response>)\n | undefined;\n render?:\n | ((request: Request, context: CloudflareRenderContext<Env>) => Response | Promise<Response>)\n | undefined;\n serverManifest: BuiltServerManifest;\n}\n\nexport interface CloudflareRequestHandler<Env = unknown> {\n fetch(request: Request, env: Env, context: CloudflareExecutionContext): Promise<Response>;\n}\n\nexport interface CloudflareBuiltRouteRenderContext<\n Env = unknown,\n> extends CloudflareRenderContext<Env> {\n params: Record<string, readonly string[] | string>;\n route: AppRoute;\n}\n\nexport interface CloudflareRouteModuleLoaderContext<\n Env = unknown,\n> extends CloudflareBuiltRouteRenderContext<Env> {\n request: Request;\n}\n\nexport interface CloudflareServerRouteContext<\n Env = unknown,\n> extends CloudflareBuiltRouteRenderContext<Env> {\n request: Request;\n}\n\nexport interface CloudflareRouteModuleComponentProps<\n Data = unknown,\n Env = unknown,\n> extends CloudflareBuiltRouteRenderContext<Env> {\n data: Data;\n request: Request;\n}\n\nexport type CloudflareRouteModuleComponent<Data = unknown, Env = unknown> = (\n props: CloudflareRouteModuleComponentProps<Data, Env>,\n) => Response | string | PromiseLike<Response | string>;\n\nexport interface CloudflareRouteModule<Data = unknown, Env = unknown> {\n App?: CloudflareRouteModuleComponent<Data, Env> | undefined;\n default?: CloudflareRouteModuleComponent<Data, Env> | undefined;\n generateMetadata?:\n | ((\n context: GenerateMetadataContext<Data>,\n ) => RouteMetadata | PromiseLike<RouteMetadata | undefined> | undefined)\n | undefined;\n loader?:\n | ((context: CloudflareRouteModuleLoaderContext<Env>) => Data | PromiseLike<Data>)\n | undefined;\n metadata?: RouteMetadata | undefined;\n}\n\nexport type CloudflareServerRouteHandler<Env = unknown> = (\n request: Request,\n context: CloudflareServerRouteContext<Env>,\n) => unknown | PromiseLike<unknown>;\n\nexport interface CloudflareServerRouteModule<Env = unknown> {\n ALL?: CloudflareServerRouteHandler<Env> | undefined;\n DELETE?: CloudflareServerRouteHandler<Env> | undefined;\n default?: CloudflareServerRouteHandler<Env> | undefined;\n GET?: CloudflareServerRouteHandler<Env> | undefined;\n HEAD?: CloudflareServerRouteHandler<Env> | undefined;\n OPTIONS?: CloudflareServerRouteHandler<Env> | undefined;\n PATCH?: CloudflareServerRouteHandler<Env> | undefined;\n POST?: CloudflareServerRouteHandler<Env> | undefined;\n PUT?: CloudflareServerRouteHandler<Env> | undefined;\n}\n\nexport interface CloudflareMetadataRouteContext {\n baseUrl: string;\n host: string;\n params: Record<string, readonly string[] | string>;\n request: Request;\n}\n\nexport interface CloudflareMetadataRouteModule {\n default?: ((context: CloudflareMetadataRouteContext) => unknown | PromiseLike<unknown>) | undefined;\n}\n\nexport type CloudflareRouteModuleRegistryEntry<Env = unknown> =\n | CloudflareRouteModule<unknown, Env>\n | CloudflareMetadataRouteModule\n | CloudflareServerRouteModule<Env>;\n\nexport type CloudflareRouteModuleRegistry<Env = unknown> = Record<\n string,\n | CloudflareRouteModuleRegistryEntry<Env>\n | (() => CloudflareRouteModuleRegistryEntry<Env> | PromiseLike<CloudflareRouteModuleRegistryEntry<Env>>)\n>;\n\nexport interface CloudflareRouteModuleRendererOptions<Env = unknown> {\n document?:\n | ((\n context: CloudflareRouteModuleComponentProps<unknown, Env> & {\n body: string;\n modulePreload: string;\n },\n ) => Response | string | PromiseLike<Response | string>)\n | undefined;\n modules: CloudflareRouteModuleRegistry<Env>;\n}\n\nexport type CloudflareRouteModuleGlob<Env = unknown> = Record<\n string,\n | CloudflareRouteModuleRegistryEntry<Env>\n | (() => CloudflareRouteModuleRegistryEntry<Env> | PromiseLike<CloudflareRouteModuleRegistryEntry<Env>>)\n>;\n\nexport interface CollectCloudflareRouteModulesOptions {\n manifest: BuiltServerManifest;\n}\n\nexport interface CloudflareBuiltRequestHandlerOptions<Env = unknown> extends Omit<\n CloudflareRequestHandlerOptions<Env>,\n \"render\"\n> {\n renderRoute?:\n | ((\n request: Request,\n context: CloudflareBuiltRouteRenderContext<Env>,\n ) => Response | Promise<Response>)\n | undefined;\n}\n\nexport interface CloudflareClientManifest {\n publicAssets?: readonly string[] | undefined;\n routes: ClientRouteManifestEntry[];\n}\n\nexport interface CloudflareAssetBinding {\n fetch(request: Request): Response | Promise<Response>;\n}\n\nexport interface CloudflareStaticAssetLoaderOptions<Env = unknown> {\n binding:\n | CloudflareAssetBinding\n | ((\n env: Env,\n ) => CloudflareAssetBinding | Promise<CloudflareAssetBinding | undefined> | undefined);\n clientManifest: CloudflareClientManifest;\n extraPaths?: readonly string[] | undefined;\n prefix?: string | undefined;\n}\n\nexport interface CloudflareCache {\n delete(request: Request | string): boolean | Promise<boolean>;\n match(request: Request | string): Response | Promise<Response | undefined> | undefined;\n put(request: Request | string, response: Response): void | Promise<void>;\n}\n\nexport interface CloudflarePrerenderStoreOptions {\n cache: CloudflareCache;\n keyOrigin?: string | undefined;\n keyPrefix?: string | undefined;\n}\n\nconst clientPrefix = \"/_mreact/client/\";\nconst defaultPrerenderCacheOrigin = \"https://mreact.local\";\nconst defaultPrerenderCachePrefix = \"/_mreact/prerender\";\n\nexport function createCloudflareRequestHandler<Env = unknown>(\n options: CloudflareRequestHandlerOptions<Env>,\n): CloudflareRequestHandler<Env> {\n return {\n async fetch(request, env, context) {\n const startedAt = logNow();\n try {\n return await handleCloudflareRequest(options, request, env, context);\n } catch (error) {\n const logFields = requestLogFields(request, \"cloudflare\");\n emitRouterDevtoolsEvent({\n method: request.method,\n type: \"router:request:error\",\n url: request.url,\n });\n emitRouterLog(options.logger, \"error\", {\n ...logFields,\n durationMs: logDurationMs(startedAt),\n error: logError(error),\n type: \"router:request:error\",\n });\n\n return await applyCloudflareResponseHook(\n options.onError === undefined\n ? new Response(\"Internal Server Error\", {\n headers: { \"content-type\": \"text/plain; charset=utf-8\" },\n status: 500,\n })\n : await options.onError(error, request, env, context),\n options,\n request,\n );\n }\n },\n };\n}\n\nexport function createCloudflareBuiltRequestHandler<Env = unknown>(\n options: CloudflareBuiltRequestHandlerOptions<Env>,\n): CloudflareRequestHandler<Env> {\n const sortedRoutes = [...options.serverManifest.routes].sort(compareCloudflareRoutes);\n\n return createCloudflareRequestHandler({\n ...options,\n render(request, context) {\n const matched = matchCloudflareRoute(\n sortedRoutes,\n new URL(request.url).pathname,\n );\n\n if (matched === undefined || options.renderRoute === undefined) {\n return new Response(\"Not Found\", { status: 404 });\n }\n\n return options.renderRoute(request, {\n ...context,\n params: matched.params,\n route: matched.route,\n });\n },\n });\n}\n\nexport function createCloudflareRouteModuleRenderer<Env = unknown>(\n options: CloudflareRouteModuleRendererOptions<Env>,\n): NonNullable<CloudflareBuiltRequestHandlerOptions<Env>[\"renderRoute\"]> {\n return async (request, context) => {\n if (context.route.kind !== \"server\" && isCloudflareNavigationRequest(request)) {\n return cloudflareDocumentReloadNavigationResponse();\n }\n\n const module = await loadCloudflareRouteModule(options.modules, context.route.file);\n\n if (module === undefined) {\n return new Response(`No Cloudflare route module registered for ${context.route.file}.`, {\n headers: { \"content-type\": \"text/plain; charset=utf-8\" },\n status: 500,\n });\n }\n\n if (context.route.kind === \"server\") {\n return withDefaultSecurityHeaders(\n await dispatchCloudflareServerRoute(module as CloudflareServerRouteModule<Env>, request, {\n ...context,\n request,\n }),\n request,\n );\n }\n\n if (context.route.kind === \"metadata\") {\n return withDefaultSecurityHeaders(\n await dispatchCloudflareMetadataRoute(module as CloudflareMetadataRouteModule, request, {\n ...context,\n request,\n }),\n request,\n );\n }\n\n const pageModule = module as CloudflareRouteModule<unknown, Env>;\n const component = selectCloudflarePageComponent(pageModule);\n\n if (component === undefined) {\n return new Response(\n `No Cloudflare page component registered for ${context.route.file}. Module exports: ${describeCloudflareModuleExports(pageModule)}.`,\n {\n headers: { \"content-type\": \"text/plain; charset=utf-8\" },\n status: 500,\n },\n );\n }\n\n const loaderContext = {\n ...context,\n request,\n };\n let data: unknown;\n\n try {\n data = pageModule.loader === undefined ? undefined : await pageModule.loader(loaderContext);\n } catch (error) {\n if (error instanceof Response) {\n return error;\n }\n\n if (isNotFoundError(error)) {\n return cloudflareNotFoundResponse(request);\n }\n\n throw error;\n }\n const props = {\n ...context,\n data,\n request,\n };\n let rendered: Awaited<ReturnType<typeof component>>;\n\n try {\n rendered = await component(props);\n } catch (error) {\n if (isNotFoundError(error)) {\n return cloudflareNotFoundResponse(request);\n }\n\n throw error;\n }\n\n if (rendered instanceof Response) {\n return withDefaultSecurityHeaders(rendered, request);\n }\n\n const modulePreload = cloudflareModulePreloadTag(context.clientManifest, context.route.path);\n const metadata = await resolveCloudflareRouteMetadata([pageModule], props);\n const documented =\n options.document === undefined\n ? defaultCloudflareDocument(rendered, modulePreload, metadata)\n : await options.document({\n ...props,\n body: rendered,\n modulePreload,\n });\n\n return withDefaultSecurityHeaders(\n documented instanceof Response\n ? documented\n : new Response(documented, {\n headers: { \"content-type\": \"text/html; charset=utf-8\" },\n }),\n request,\n );\n };\n}\n\nasync function dispatchCloudflareServerRoute<Env>(\n module: CloudflareServerRouteModule<Env>,\n request: Request,\n context: CloudflareServerRouteContext<Env>,\n): Promise<Response> {\n const handler =\n module[request.method as keyof CloudflareServerRouteModule<Env>] ?? 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(request, context);\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\nconst cloudflareReservedPageModuleExportNames = new Set([\n \"ALL\",\n \"DELETE\",\n \"GET\",\n \"HEAD\",\n \"OPTIONS\",\n \"PATCH\",\n \"POST\",\n \"PUT\",\n \"App\",\n \"default\",\n \"generateMetadata\",\n \"generateStaticParams\",\n \"loader\",\n \"metadata\",\n \"middleware\",\n \"prerender\",\n \"revalidate\",\n \"slots\",\n \"stream\",\n]);\n\nfunction selectCloudflarePageComponent<Data, Env>(\n module: CloudflareRouteModule<Data, Env>,\n): CloudflareRouteModuleComponent<Data, Env> | undefined {\n const defaultExport = readCloudflareModuleExport(module, \"default\");\n if (typeof defaultExport === \"function\") {\n return defaultExport as CloudflareRouteModuleComponent<Data, Env>;\n }\n\n const appExport = readCloudflareModuleExport(module, \"App\");\n if (typeof appExport === \"function\") {\n return appExport as CloudflareRouteModuleComponent<Data, Env>;\n }\n\n for (const name of Object.keys(module)) {\n const value = readCloudflareModuleExport(module, name);\n if (\n !cloudflareReservedPageModuleExportNames.has(name) &&\n typeof value === \"function\"\n ) {\n return value as CloudflareRouteModuleComponent<Data, Env>;\n }\n }\n\n return undefined;\n}\n\nfunction readCloudflareModuleExport(module: object, name: string): unknown {\n const descriptor = Object.getOwnPropertyDescriptor(module, name);\n if (descriptor === undefined) {\n return undefined;\n }\n\n if (\"value\" in descriptor) {\n return descriptor.value;\n }\n\n return descriptor.get?.call(module);\n}\n\nconst cloudflareDiagnosticPageModuleExportNames = [\"default\", \"App\", \"slots\"] as const;\n\n// Fixed names + typeof only (never values) so the 500 response is useful without\n// listing app-specific export names. Accessors are not invoked.\nfunction describeCloudflareModuleExports(module: object): string {\n const described = cloudflareDiagnosticPageModuleExportNames.map(\n (name) => `${name}=${typeofCloudflareModuleExport(module, name)}`,\n );\n\n return described.join(\", \");\n}\n\nfunction typeofCloudflareModuleExport(module: object, name: string): string {\n const descriptor = Object.getOwnPropertyDescriptor(module, name);\n if (descriptor === undefined) {\n return \"absent\";\n }\n\n if (!(\"value\" in descriptor)) {\n return \"accessor\";\n }\n\n return typeof descriptor.value;\n}\n\nasync function dispatchCloudflareMetadataRoute(\n module: CloudflareMetadataRouteModule,\n request: Request,\n context: CloudflareBuiltRouteRenderContext & { request: Request },\n): Promise<Response> {\n if (request.method !== \"GET\" && request.method !== \"HEAD\") {\n return new Response(\"Method Not Allowed\", {\n headers: { allow: \"GET, HEAD\" },\n status: 405,\n });\n }\n\n if (typeof module.default !== \"function\") {\n return new Response(\"Invalid metadata route response\", { status: 500 });\n }\n\n const url = new URL(request.url);\n const value = await module.default({\n baseUrl: url.origin,\n host: url.host,\n params: context.params,\n request,\n });\n\n if (value instanceof Response) {\n return value;\n }\n\n if (context.route.kind !== \"metadata\") {\n return new Response(\"Invalid metadata route convention\", { status: 500 });\n }\n\n if (context.route.convention === \"robots\") {\n return new Response(serializeCloudflareRobots(value as RobotsManifest), {\n headers: {\n \"cache-control\": \"public, max-age=3600\",\n \"content-type\": \"text/plain; charset=utf-8\",\n },\n });\n }\n\n if (context.route.convention === \"sitemap\") {\n return new Response(serializeCloudflareSitemap(value as readonly SitemapEntry[]), {\n headers: {\n \"cache-control\": \"no-cache\",\n \"content-type\": \"application/xml; charset=utf-8\",\n },\n });\n }\n\n if (context.route.convention === \"manifest\") {\n return new Response(JSON.stringify(value as ManifestDescriptor), {\n headers: {\n \"cache-control\": \"public, max-age=3600\",\n \"content-type\": \"application/manifest+json; charset=utf-8\",\n },\n });\n }\n\n if (context.route.convention === \"opengraph-image\") {\n const body = value instanceof Uint8Array ? value.slice().buffer : String(value);\n return new Response(body, {\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 return new Response(\"Invalid metadata route convention\", { status: 500 });\n}\n\nfunction isCloudflareNavigationRequest(request: Request): boolean {\n return request.headers.get(\"x-mreact-navigation\") === \"1\";\n}\n\nfunction cloudflareDocumentReloadNavigationResponse(): Response {\n return new Response(null, {\n headers: { \"x-mreact-navigation\": \"reload\" },\n status: 204,\n });\n}\n\nfunction withDefaultSecurityHeaders(response: Response, request: Request): Response {\n const headers = new Headers(response.headers);\n\n for (const [name, value] of Object.entries(routeSecurityHeaders({ request, security: undefined }))) {\n if (!headers.has(name)) {\n headers.set(name, value);\n }\n }\n\n return new Response(response.body, {\n headers,\n status: response.status,\n statusText: response.statusText,\n });\n}\n\nexport function collectCloudflareRouteModules<Env = unknown>(\n glob: CloudflareRouteModuleGlob<Env>,\n options: CollectCloudflareRouteModulesOptions,\n): CloudflareRouteModuleRegistry<Env> {\n const requiredRoutes = options.manifest.routes.filter((route) =>\n cloudflareRouteRequiresModule(route, options.manifest),\n );\n const matchedKeys = new Set<string>();\n const modules: CloudflareRouteModuleRegistry<Env> = {};\n\n for (const route of requiredRoutes) {\n const match = Object.entries(glob).find(([key]) =>\n cloudflareRouteGlobKeyMatchesRoute(key, route.file),\n );\n\n if (match === undefined) {\n throw new Error(`Missing Cloudflare route module for ${route.file}.`);\n }\n\n const [key, module] = match;\n matchedKeys.add(key);\n modules[route.file] = module;\n }\n\n const extraKeys = Object.keys(glob).filter((key) => !matchedKeys.has(key));\n\n if (extraKeys.length > 0) {\n throw new Error(`Extra Cloudflare route module entries: ${extraKeys.join(\", \")}.`);\n }\n\n return modules;\n}\n\nexport function createCloudflareStaticAssetLoader<Env = unknown>(\n options: CloudflareStaticAssetLoaderOptions<Env>,\n): CloudflareAssetLoader<Env> {\n const prefix = normalizeAssetPrefix(options.prefix ?? clientPrefix);\n const allowedPaths = cloudflareClientAssetPaths(options.clientManifest, {\n extraPaths: options.extraPaths,\n prefix,\n });\n\n return {\n async fetch(pathname, request, env) {\n if (!allowedPaths.has(pathname)) {\n return undefined;\n }\n\n const binding =\n typeof options.binding === \"function\" ? await options.binding(env) : options.binding;\n\n if (binding === undefined) {\n return undefined;\n }\n\n const assetUrl = new URL(request.url);\n assetUrl.pathname = pathname;\n assetUrl.search = \"\";\n\n return await binding.fetch(new Request(assetUrl, request));\n },\n };\n}\n\nexport function cloudflareClientAssetPaths(\n manifest: CloudflareClientManifest,\n options: { extraPaths?: readonly string[] | undefined; prefix?: string | undefined } = {},\n): Set<string> {\n const prefix = normalizeAssetPrefix(options.prefix ?? clientPrefix);\n const paths = new Set<string>([`${prefix}manifest.json`]);\n\n for (const route of manifest.routes) {\n for (const asset of [\n route.script,\n route.sourceMap,\n route.navigationScript,\n ...(route.css ?? []),\n ...(route.imports ?? []),\n ]) {\n const path = safeClientAssetPath(prefix, asset);\n\n if (path !== undefined) {\n paths.add(path);\n }\n }\n }\n\n for (const extraPath of options.extraPaths ?? []) {\n const path = safeClientAssetPath(prefix, extraPath);\n\n if (path !== undefined) {\n paths.add(path);\n }\n }\n\n for (const publicAsset of manifest.publicAssets ?? []) {\n const path = safePublicAssetPath(publicAsset);\n\n if (path !== undefined) {\n paths.add(path);\n }\n }\n\n return paths;\n}\n\nfunction safePublicAssetPath(asset: string): string | undefined {\n if (!asset.startsWith(\"/\") || asset.startsWith(\"//\") || asset.includes(\"..\")) {\n return undefined;\n }\n\n return asset;\n}\n\nexport function createCloudflarePrerenderStore(\n options: CloudflarePrerenderStoreOptions,\n): AppRouterPrerenderStore {\n return {\n async delete(path) {\n await options.cache.delete(prerenderCacheRequest(options, path));\n },\n async get(path) {\n const response = await options.cache.match(prerenderCacheRequest(options, path));\n\n if (response === undefined) {\n return undefined;\n }\n\n return (await response.json()) as BuiltPrerenderedRoute;\n },\n async set(path, entry) {\n await options.cache.put(\n prerenderCacheRequest(options, path),\n Response.json(entry, {\n headers: { \"cache-control\": \"no-store\" },\n }),\n );\n },\n };\n}\n\nasync function handleCloudflareRequest<Env>(\n options: CloudflareRequestHandlerOptions<Env>,\n request: Request,\n env: Env,\n context: CloudflareExecutionContext,\n): Promise<Response> {\n const startedAt = logNow();\n const logFields = requestLogFields(request, \"cloudflare\");\n emitRouterLog(options.logger, \"info\", {\n ...logFields,\n type: \"router:request:start\",\n });\n emitRouterDevtoolsEvent({\n method: request.method,\n type: \"router:request:start\",\n url: request.url,\n });\n\n const url = new URL(request.url);\n\n if (\n url.pathname.startsWith(clientPrefix) ||\n isCloudflarePublicAssetPath(options.clientManifest, url.pathname)\n ) {\n const response = await options.assets?.fetch?.(url.pathname, request, env, context);\n const assetResponse = await applyCloudflareResponseHook(\n response ?? new Response(\"Not Found\", { status: 404 }),\n options,\n request,\n );\n emitRouterLog(options.logger, \"info\", {\n ...logFields,\n durationMs: logDurationMs(startedAt),\n status: assetResponse.status,\n type: \"router:request:end\",\n });\n return assetResponse;\n }\n\n const staticResponse = prerenderedResponse(\n options.serverManifest.prerenderedRoutes,\n normalizeRoutePath(url.pathname),\n request.method,\n isCloudflareNavigationRequest(request),\n );\n\n if (staticResponse !== undefined) {\n emitRouterDevtoolsEvent({\n method: request.method,\n status: staticResponse.status,\n type: \"router:request:end\",\n url: request.url,\n });\n emitRouterLog(options.logger, \"info\", {\n ...logFields,\n durationMs: logDurationMs(startedAt),\n status: staticResponse.status,\n type: \"router:request:end\",\n });\n return await applyCloudflareResponseHook(staticResponse, options, request);\n }\n\n if (options.render === undefined) {\n const notFoundResponse = await applyCloudflareResponseHook(\n new Response(\"Not Found\", { status: 404 }),\n options,\n request,\n );\n emitRouterLog(options.logger, \"info\", {\n ...logFields,\n durationMs: logDurationMs(startedAt),\n status: notFoundResponse.status,\n type: \"router:request:end\",\n });\n return notFoundResponse;\n }\n\n const renderedResponse = await options.render(request, {\n clientManifest: options.clientManifest,\n context,\n env,\n serverManifest: options.serverManifest,\n });\n const response = await applyCloudflareResponseHook(\n preserveCloudflareStreamedHtmlResponse(renderedResponse),\n options,\n request,\n );\n emitRouterDevtoolsEvent({\n method: request.method,\n status: response.status,\n type: \"router:request:end\",\n url: request.url,\n });\n emitRouterLog(options.logger, \"info\", {\n ...logFields,\n durationMs: logDurationMs(startedAt),\n status: response.status,\n type: \"router:request:end\",\n });\n\n return response;\n}\n\nfunction isCloudflarePublicAssetPath(manifest: CloudflareClientManifest, pathname: string): boolean {\n return (manifest.publicAssets ?? []).includes(pathname);\n}\n\nasync function applyCloudflareResponseHook<Env>(\n response: Response,\n options: Pick<CloudflareRequestHandlerOptions<Env>, \"onResponse\">,\n request: Request,\n): Promise<Response> {\n const hooked = await options.onResponse?.(response, { request });\n\n return hooked instanceof Response ? hooked : response;\n}\n\nfunction preserveCloudflareStreamedHtmlResponse(response: Response): Response {\n if (\n response.headers.get(\"x-mreact-stream\") !== \"1\" ||\n !isHtmlContentType(response.headers.get(\"content-type\"))\n ) {\n return response;\n }\n\n const headers = new Headers(response.headers);\n const cacheControl = headers.get(\"cache-control\");\n\n if (!cacheControlHasDirective(cacheControl, \"no-transform\")) {\n headers.set(\n \"cache-control\",\n cacheControl === null || cacheControl.trim() === \"\"\n ? \"no-transform\"\n : `${cacheControl}, no-transform`,\n );\n }\n\n if (headers.get(\"content-encoding\") === null) {\n headers.set(\"content-encoding\", \"identity\");\n }\n\n return new Response(response.body, {\n headers,\n status: response.status,\n statusText: response.statusText,\n });\n}\n\nfunction isHtmlContentType(contentType: string | null): boolean {\n return contentType?.toLowerCase().split(\";\", 1)[0]?.trim() === \"text/html\";\n}\n\nfunction cacheControlHasDirective(cacheControl: string | null, directive: string): boolean {\n if (cacheControl === null) {\n return false;\n }\n\n const normalizedDirective = directive.toLowerCase();\n return cacheControl\n .split(\",\")\n .some((part) => part.trim().toLowerCase() === normalizedDirective);\n}\n\nfunction prerenderedResponse(\n prerenderedRoutes: Record<string, BuiltPrerenderedRoute> | undefined,\n path: string,\n method: string,\n isNavigation: boolean,\n): Response | undefined {\n if (method !== \"GET\" && method !== \"HEAD\") {\n return undefined;\n }\n\n const prerendered = prerenderedRoutes?.[path];\n\n if (prerendered === undefined) {\n return undefined;\n }\n\n if (isNavigation && !prerendered.html.includes(\"data-mreact-route-id\")) {\n return cloudflareDocumentReloadNavigationResponse();\n }\n\n return new Response(method === \"HEAD\" ? null : prerendered.html, {\n headers: prerendered.headers,\n status: prerendered.status,\n });\n}\n\nfunction cloudflareRouteRequiresModule(\n route: AppRoute,\n manifest: BuiltServerManifest,\n): boolean {\n return (\n route.kind === \"metadata\" ||\n route.kind === \"server\" ||\n (route.kind === \"page\" &&\n (route.segments.some((segment) => segment.kind !== \"static\") ||\n manifest.prerenderedRoutes?.[route.path] === undefined))\n );\n}\n\nfunction cloudflareRouteGlobKeyMatchesRoute(key: string, routeFile: string): boolean {\n const normalizedKey = normalizeCloudflareRouteModulePath(key);\n const normalizedRoute = normalizeCloudflareRouteModulePath(routeFile);\n\n return (\n normalizedKey === normalizedRoute ||\n normalizedKey.endsWith(`/${normalizedRoute}`)\n );\n}\n\nfunction normalizeCloudflareRouteModulePath(path: string): string {\n const withoutPrefix = path\n .replace(/\\\\/g, \"/\")\n .replace(/^\\.\\//, \"\")\n .replace(/^\\/+/, \"\");\n\n return withoutPrefix.replace(/\\.(?:mjs|js|ts|tsx)$/, \"\");\n}\n\nfunction matchCloudflareRoute(\n routes: readonly AppRoute[],\n pathname: string,\n): { params: Record<string, readonly string[] | string>; route: AppRoute } | undefined {\n const normalizedPath = normalizeRoutePath(pathname);\n const pathSegments = normalizedPath === \"/\" ? [] : normalizedPath.slice(1).split(\"/\");\n\n for (const route of routes) {\n const params: Record<string, readonly string[] | string> = {};\n const catchAllIndex = route.segments.findIndex((segment) => segment.kind === \"catch-all\");\n\n if (catchAllIndex === -1 && route.segments.length !== pathSegments.length) {\n continue;\n }\n\n if (\n catchAllIndex !== -1 &&\n pathSegments.length <\n catchAllIndex + 1 + route.segments.length - catchAllIndex - 1\n ) {\n continue;\n }\n\n let matched = true;\n\n for (const [index, segment] of route.segments.entries()) {\n const value = pathSegments[index];\n\n if (value === undefined) {\n matched = false;\n break;\n }\n\n if (segment.kind === \"static\") {\n if (segment.value !== value) {\n matched = false;\n break;\n }\n continue;\n }\n\n if (segment.kind === \"dynamic\") {\n const decoded = safeDecodePathSegment(value);\n if (decoded === undefined) {\n matched = false;\n break;\n }\n params[segment.name] = decoded;\n continue;\n }\n\n const suffixSegments = route.segments.slice(index + 1);\n const catchAllEnd = pathSegments.length - suffixSegments.length;\n\n if (catchAllEnd <= index) {\n matched = false;\n break;\n }\n\n const decodedParts: string[] = [];\n for (const part of pathSegments.slice(index, catchAllEnd)) {\n const decoded = safeDecodePathSegment(part);\n if (decoded === undefined) {\n matched = false;\n break;\n }\n decodedParts.push(decoded);\n }\n params[segment.name] = decodedParts;\n\n for (let suffixIndex = 0; suffixIndex < suffixSegments.length; suffixIndex += 1) {\n const suffixSegment = suffixSegments[suffixIndex];\n const suffixValue = pathSegments[catchAllEnd + suffixIndex];\n\n if (suffixSegment === undefined || suffixValue === undefined) {\n matched = false;\n break;\n }\n\n if (suffixSegment.kind === \"static\") {\n if (suffixSegment.value !== suffixValue) {\n matched = false;\n break;\n }\n continue;\n }\n\n if (suffixSegment.kind === \"dynamic\") {\n const decoded = safeDecodePathSegment(suffixValue);\n if (decoded === undefined) {\n matched = false;\n break;\n }\n params[suffixSegment.name] = decoded;\n continue;\n }\n\n matched = false;\n break;\n }\n\n break;\n }\n\n if (matched) {\n return { params, route };\n }\n }\n\n return undefined;\n}\n\nfunction compareCloudflareRoutes(a: AppRoute, b: AppRoute): number {\n const scoreDelta = routeSpecificityScore(b) - routeSpecificityScore(a);\n\n return scoreDelta === 0 ? a.path.localeCompare(b.path) || a.kind.localeCompare(b.kind) : scoreDelta;\n}\n\nfunction routeSpecificityScore(route: AppRoute): number {\n return route.segments.reduce((score, segment) => {\n if (segment.kind === \"static\") {\n return score + 100;\n }\n\n if (segment.kind === \"dynamic\") {\n return score + 10;\n }\n\n return score;\n }, route.segments.length);\n}\n\nfunction safeDecodePathSegment(segment: string): string | undefined {\n try {\n return decodeURIComponent(segment);\n } catch {\n return undefined;\n }\n}\n\nfunction normalizeAssetPrefix(prefix: string): string {\n const withLeadingSlash = prefix.startsWith(\"/\") ? prefix : `/${prefix}`;\n\n return withLeadingSlash.endsWith(\"/\") ? withLeadingSlash : `${withLeadingSlash}/`;\n}\n\nfunction safeClientAssetPath(prefix: string, asset: string | undefined): string | undefined {\n if (asset === undefined || asset === \"\" || asset.startsWith(\"/\") || asset.includes(\"\\\\\")) {\n return undefined;\n }\n\n const segments = asset.split(\"/\");\n\n if (segments.some((segment) => unsafeAssetSegment(segment))) {\n return undefined;\n }\n\n return `${prefix}${segments.join(\"/\")}`;\n}\n\nfunction unsafeAssetSegment(segment: string): boolean {\n if (segment === \"\" || segment === \".\" || segment === \"..\") {\n return true;\n }\n\n try {\n const decoded = decodeURIComponent(segment);\n return decoded === \".\" || decoded === \"..\" || decoded.includes(\"/\") || decoded.includes(\"\\\\\");\n } catch {\n return true;\n }\n}\n\nasync function loadCloudflareRouteModule<Env>(\n modules: CloudflareRouteModuleRegistry<Env>,\n file: string,\n): Promise<CloudflareRouteModuleRegistryEntry<Env> | undefined> {\n const entry = modules[file];\n\n return typeof entry === \"function\" ? await entry() : entry;\n}\n\nfunction cloudflareModulePreloadTag(manifest: CloudflareClientManifest, routePath: string): string {\n const script = manifest.routes.find((route) => route.path === routePath)?.script;\n\n return script === undefined\n ? \"\"\n : `<link rel=\"modulepreload\" href=\"/_mreact/client/${escapeHtmlAttribute(script)}\">`;\n}\n\nasync function resolveCloudflareRouteMetadata<Data, Env>(\n modules: readonly CloudflareRouteModule<Data, Env>[],\n context: GenerateMetadataContext<Data>,\n): Promise<RouteMetadata | undefined> {\n const metadata: RouteMetadata[] = [];\n\n for (const module of modules) {\n let next = module.metadata;\n\n if (module.generateMetadata !== undefined) {\n const generated = await module.generateMetadata(context);\n next = mergeCloudflareRouteMetadata([next, generated].filter(isCloudflareRouteMetadata));\n }\n\n if (next !== undefined) {\n metadata.push(next);\n }\n }\n\n return mergeCloudflareRouteMetadata(metadata);\n}\n\nfunction isCloudflareRouteMetadata(value: RouteMetadata | undefined): value is RouteMetadata {\n return value !== undefined;\n}\n\nfunction mergeCloudflareRouteMetadata(metadata: readonly RouteMetadata[]): RouteMetadata | undefined {\n if (metadata.length === 0) {\n return undefined;\n }\n\n return metadata.reduce<RouteMetadata>((merged, next) => {\n const openGraph = mergeCloudflareMetadataObject(merged.openGraph, next.openGraph);\n const openGraphImages = mergeCloudflareMetadataArrays(\n merged.openGraph?.images,\n next.openGraph?.images,\n );\n\n const alternates = mergeCloudflareMetadataObject(merged.alternates, next.alternates);\n const csp = mergeCloudflareMetadataObject(merged.csp, next.csp);\n const head = mergeCloudflareMetadataArrays(merged.head, next.head);\n const icons = mergeCloudflareMetadataObject(merged.icons, next.icons);\n const mergedMetadata: RouteMetadata = {\n ...merged,\n ...next,\n ...(alternates === undefined ? {} : { alternates }),\n ...(csp === undefined ? {} : { csp }),\n ...(head === undefined ? {} : { head }),\n ...(icons === undefined ? {} : { icons }),\n ...(openGraph === undefined && openGraphImages === undefined\n ? {}\n : { openGraph: { ...openGraph, ...(openGraphImages === undefined ? {} : { images: openGraphImages }) } }),\n };\n\n return mergedMetadata;\n }, {});\n}\n\nfunction mergeCloudflareMetadataObject<T extends object>(\n left: T | undefined,\n right: T | undefined,\n): T | undefined {\n if (left === undefined) {\n return right;\n }\n if (right === undefined) {\n return left;\n }\n\n return { ...left, ...right };\n}\n\nfunction mergeCloudflareMetadataArrays<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 if (right === undefined || right.length === 0) {\n return left;\n }\n\n return [...left, ...right];\n}\n\nfunction defaultCloudflareDocument(\n body: string,\n modulePreload: string,\n metadata: RouteMetadata | undefined,\n): string {\n return `<!DOCTYPE html><html><head>${modulePreload}${cloudflareMetadataTitle(metadata)}</head><body>${body}</body></html>`;\n}\n\nfunction cloudflareMetadataTitle(metadata: RouteMetadata | undefined): string {\n if (metadata?.title === undefined) {\n return \"\";\n }\n\n return `<title>${escapeHtmlText(metadataString(metadata.title))}</title>`;\n}\n\nfunction metadataString(value: boolean | number | string): string {\n return String(value);\n}\n\nfunction serializeCloudflareRobots(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 serializeCloudflareSitemap(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 cloudflareNotFoundResponse(request: Request): Response {\n return withDefaultSecurityHeaders(\n new Response(\"<!DOCTYPE html><html><head></head><body>Not Found</body></html>\", {\n headers: { \"content-type\": \"text/html; charset=utf-8\" },\n status: 404,\n }),\n request,\n );\n}\n\nfunction prerenderCacheRequest(options: CloudflarePrerenderStoreOptions, path: string): Request {\n const origin = options.keyOrigin ?? defaultPrerenderCacheOrigin;\n const prefix = options.keyPrefix ?? defaultPrerenderCachePrefix;\n const normalizedPath = normalizeRoutePath(path.startsWith(\"/\") ? path : `/${path}`);\n const url = new URL(`${normalizePrerenderPrefix(prefix)}${normalizedPath}`, origin);\n\n return new Request(url, { method: \"GET\" });\n}\n\nfunction normalizePrerenderPrefix(prefix: string): string {\n const withLeadingSlash = prefix.startsWith(\"/\") ? prefix : `/${prefix}`;\n\n return withLeadingSlash.replace(/\\/+$/, \"\");\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reckona/mreact-router",
3
- "version": "0.0.108",
3
+ "version": "0.0.109",
4
4
  "description": "File-system app router, SSR, actions, and deployment adapters for mreact.",
5
5
  "keywords": [
6
6
  "jsx",
@@ -105,20 +105,20 @@
105
105
  },
106
106
  "dependencies": {
107
107
  "typescript": "^6.0.3",
108
- "@reckona/mreact": "0.0.108",
109
- "@reckona/mreact-compiler": "0.0.108",
110
- "@reckona/mreact-compat": "0.0.108",
111
- "@reckona/mreact-query": "0.0.108",
112
- "@reckona/mreact-devtools": "0.0.108",
113
- "@reckona/mreact-reactive-core": "0.0.108",
114
- "@reckona/mreact-reactive-dom": "0.0.108",
115
- "@reckona/mreact-server": "0.0.108",
116
- "@reckona/mreact-shared": "0.0.108"
108
+ "@reckona/mreact": "0.0.109",
109
+ "@reckona/mreact-compat": "0.0.109",
110
+ "@reckona/mreact-query": "0.0.109",
111
+ "@reckona/mreact-reactive-core": "0.0.109",
112
+ "@reckona/mreact-devtools": "0.0.109",
113
+ "@reckona/mreact-compiler": "0.0.109",
114
+ "@reckona/mreact-reactive-dom": "0.0.109",
115
+ "@reckona/mreact-server": "0.0.109",
116
+ "@reckona/mreact-shared": "0.0.109"
117
117
  },
118
118
  "peerDependencies": {
119
119
  "vite": ">=8 <9"
120
120
  },
121
121
  "optionalDependencies": {
122
- "@reckona/mreact-router-native": "0.0.108"
122
+ "@reckona/mreact-router-native": "0.0.109"
123
123
  }
124
124
  }
@@ -453,15 +453,18 @@ const cloudflareReservedPageModuleExportNames = new Set([
453
453
  function selectCloudflarePageComponent<Data, Env>(
454
454
  module: CloudflareRouteModule<Data, Env>,
455
455
  ): CloudflareRouteModuleComponent<Data, Env> | undefined {
456
- if (typeof module.default === "function") {
457
- return module.default;
456
+ const defaultExport = readCloudflareModuleExport(module, "default");
457
+ if (typeof defaultExport === "function") {
458
+ return defaultExport as CloudflareRouteModuleComponent<Data, Env>;
458
459
  }
459
460
 
460
- if (typeof module.App === "function") {
461
- return module.App;
461
+ const appExport = readCloudflareModuleExport(module, "App");
462
+ if (typeof appExport === "function") {
463
+ return appExport as CloudflareRouteModuleComponent<Data, Env>;
462
464
  }
463
465
 
464
- for (const [name, value] of Object.entries(module)) {
466
+ for (const name of Object.keys(module)) {
467
+ const value = readCloudflareModuleExport(module, name);
465
468
  if (
466
469
  !cloudflareReservedPageModuleExportNames.has(name) &&
467
470
  typeof value === "function"
@@ -473,6 +476,19 @@ function selectCloudflarePageComponent<Data, Env>(
473
476
  return undefined;
474
477
  }
475
478
 
479
+ function readCloudflareModuleExport(module: object, name: string): unknown {
480
+ const descriptor = Object.getOwnPropertyDescriptor(module, name);
481
+ if (descriptor === undefined) {
482
+ return undefined;
483
+ }
484
+
485
+ if ("value" in descriptor) {
486
+ return descriptor.value;
487
+ }
488
+
489
+ return descriptor.get?.call(module);
490
+ }
491
+
476
492
  const cloudflareDiagnosticPageModuleExportNames = ["default", "App", "slots"] as const;
477
493
 
478
494
  // Fixed names + typeof only (never values) so the 500 response is useful without