@absolutejs/absolute 0.20.0-beta.177 → 0.20.0-beta.178

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 (82) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/changelog.json +51 -0
  3. package/dist/angular/browser.js +17 -2
  4. package/dist/angular/browser.js.map +4 -4
  5. package/dist/angular/components/core/streamingSlotRegistrar.js +1 -1
  6. package/dist/angular/components/core/streamingSlotRegistry.js +2 -2
  7. package/dist/angular/index.js +57 -33
  8. package/dist/angular/index.js.map +9 -8
  9. package/dist/angular/server.js +57 -33
  10. package/dist/angular/server.js.map +9 -8
  11. package/dist/build.js +532 -416
  12. package/dist/build.js.map +15 -15
  13. package/dist/cli/{compile-w2z6c9vt.js → compile-p5yv6ecp.js} +2 -2
  14. package/dist/cli/config/server.js +45 -12
  15. package/dist/cli/{dev-8br5mr7t.js → dev-2hbcsvkp.js} +1 -1
  16. package/dist/cli/{index-420h9hq7.js → index-1ewba8ye.js} +32 -3
  17. package/dist/cli/{index-7z1hh3fg.js → index-9dzdbbfc.js} +1 -1
  18. package/dist/cli/index.js +7 -7
  19. package/dist/cli/{islands-bx67g15t.js → islands-6zgb7501.js} +1 -1
  20. package/dist/cli/{mobile-we5q51ey.js → mobile-c92dh8s2.js} +2 -2
  21. package/dist/cli/{start-srs11bm8.js → start-asxb79rc.js} +2 -2
  22. package/dist/cli/{typecheck-7fvww3b7.js → typecheck-m2j4tkdk.js} +165 -35
  23. package/dist/client/chunks/{index-8m2qq61n.js → index-58svs66p.js} +13 -3
  24. package/dist/client/chunks/{index-8m2qq61n.js.map → index-58svs66p.js.map} +5 -4
  25. package/dist/client/chunks/{islands-mfjmdwnb.js → islands-tcadmgcx.js} +3 -6
  26. package/dist/client/chunks/{islands-mfjmdwnb.js.map → islands-tcadmgcx.js.map} +3 -4
  27. package/dist/client/chunks/{react-sprprqzs.js → react-khr6ewhr.js} +2 -2
  28. package/dist/client/index.js +82 -6
  29. package/dist/client/index.js.map +7 -6
  30. package/dist/dev/client/handlers/islands.ts +2 -0
  31. package/dist/dev/client/handlers/react.ts +92 -111
  32. package/dist/dev/client/handlers/reactUpdateQueue.ts +153 -0
  33. package/dist/index.js +505 -389
  34. package/dist/index.js.map +15 -15
  35. package/dist/islands/browser.js +2 -2
  36. package/dist/islands/browser.js.map +3 -3
  37. package/dist/islands/index.js +13 -6
  38. package/dist/islands/index.js.map +6 -5
  39. package/dist/react/browser.js +113 -12
  40. package/dist/react/browser.js.map +10 -7
  41. package/dist/react/components/index.js +31 -7
  42. package/dist/react/components/index.js.map +5 -4
  43. package/dist/react/components/server/index.js +22 -6
  44. package/dist/react/index.js +190 -46
  45. package/dist/react/index.js.map +15 -11
  46. package/dist/react/server.js +82 -23
  47. package/dist/react/server.js.map +11 -9
  48. package/dist/src/build/compileSvelte.d.ts +12 -1
  49. package/dist/src/build/compileVue.d.ts +1 -0
  50. package/dist/src/build/islandEntries.d.ts +3 -1
  51. package/dist/src/cli/scripts/typecheck.d.ts +8 -0
  52. package/dist/src/cli/scripts/typecheckDiagnostics.d.ts +17 -0
  53. package/dist/src/client/preserveIslandMarkup.d.ts +4 -0
  54. package/dist/src/core/islandManifest.d.ts +6 -0
  55. package/dist/src/core/islandStylesheet.d.ts +17 -0
  56. package/dist/src/react/Island.d.ts +9 -2
  57. package/dist/src/react/IslandStyleLink.d.ts +11 -0
  58. package/dist/src/react/createIsland.d.ts +1 -1
  59. package/dist/src/react/serverComponents/nodeRendererRef.d.ts +13 -0
  60. package/dist/src/utils/requestRenderUrl.d.ts +1 -0
  61. package/dist/src/utils/resolveConvention.d.ts +1 -0
  62. package/dist/src/vue/Island.browser.d.ts +3 -1
  63. package/dist/src/vue/Island.d.ts +2 -2
  64. package/dist/src/vue/createIsland.browser.d.ts +2 -2
  65. package/dist/src/vue/createIsland.d.ts +2 -2
  66. package/dist/src/vue/islandStyleLink.d.ts +30 -0
  67. package/dist/svelte/browser.js +2 -2
  68. package/dist/svelte/browser.js.map +3 -3
  69. package/dist/svelte/index.js +51 -49
  70. package/dist/svelte/index.js.map +9 -8
  71. package/dist/svelte/server.js +48 -45
  72. package/dist/svelte/server.js.map +8 -7
  73. package/dist/types/globals.d.ts +3 -0
  74. package/dist/vue/browser.js +105 -10
  75. package/dist/vue/browser.js.map +10 -7
  76. package/dist/vue/index.js +170 -47
  77. package/dist/vue/index.js.map +14 -11
  78. package/dist/vue/server.js +81 -22
  79. package/dist/vue/server.js.map +9 -7
  80. package/package.json +1 -1
  81. /package/dist/cli/{index-6522t968.js → index-yd672jyq.js} +0 -0
  82. /package/dist/client/chunks/{react-sprprqzs.js.map → react-khr6ewhr.js.map} +0 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/utils/runtimeMode.ts", "../src/utils/cspNonceRef.ts", "../src/utils/ssrErrorPage.ts", "../src/core/requestContext.ts", "../src/utils/escapeScriptContent.ts", "../src/constants.ts", "../src/utils/getDurationString.ts", "../src/utils/startupBanner.ts", "../src/utils/logger.ts", "../src/core/islandManifest.ts", "../src/core/islandPageContext.ts", "../src/core/devRouteRegistrationCallsite.ts", "../src/mobile/producerContextState.ts", "../src/mobile/pageProtocol.ts", "../src/core/pageResponseCache.ts", "../src/client/streamSwap.ts", "../src/utils/streamingSlots.ts", "../src/core/partialPrerender.ts", "../src/utils/stringModifiers.ts", "../src/core/staticHtmlNonce.ts", "../src/utils/resolveConvention.ts", "../src/utils/spaRouteManifest.ts", "../src/client/browserTranslationAttributes.ts", "../src/core/browserTranslation.ts", "../src/react/serverComponents/constants.ts", "../src/core/fileRouteAdapter.ts", "../src/core/lookup.ts", "../src/react/pageHandler.ts", "../src/core/responseEnhancers.ts", "../src/core/streamingSlotRegistrar.ts", "../src/core/streamingSlotRegistry.ts", "../src/core/streamingSlotWarningScope.ts", "../src/react/fileRoute.ts", "../src/react/serverComponents/pageHandler.ts", "../src/react/serverComponents/flightPayload.ts"],
3
+ "sources": ["../src/utils/runtimeMode.ts", "../src/utils/cspNonceRef.ts", "../src/utils/ssrErrorPage.ts", "../src/core/requestContext.ts", "../src/utils/escapeScriptContent.ts", "../src/constants.ts", "../src/utils/getDurationString.ts", "../src/utils/startupBanner.ts", "../src/utils/logger.ts", "../src/core/islandManifest.ts", "../src/core/islandPageContext.ts", "../src/core/devRouteRegistrationCallsite.ts", "../src/mobile/producerContextState.ts", "../src/mobile/pageProtocol.ts", "../src/core/pageResponseCache.ts", "../src/client/streamSwap.ts", "../src/utils/streamingSlots.ts", "../src/core/partialPrerender.ts", "../src/utils/stringModifiers.ts", "../src/core/staticHtmlNonce.ts", "../src/utils/resolveConvention.ts", "../src/utils/spaRouteManifest.ts", "../src/client/browserTranslationAttributes.ts", "../src/core/browserTranslation.ts", "../src/react/serverComponents/constants.ts", "../src/core/fileRouteAdapter.ts", "../src/core/lookup.ts", "../src/utils/requestRenderUrl.ts", "../src/react/pageHandler.ts", "../src/core/responseEnhancers.ts", "../src/core/streamingSlotRegistrar.ts", "../src/core/streamingSlotRegistry.ts", "../src/core/streamingSlotWarningScope.ts", "../src/react/fileRoute.ts", "../src/react/serverComponents/pageHandler.ts", "../src/react/serverComponents/flightPayload.ts", "../src/react/serverComponents/nodeRendererRef.ts"],
4
4
  "sourcesContent": [
5
5
  "/* Bundler-safe NODE_ENV reader.\n *\n * Bun (like esbuild and most modern bundlers) statically replaces\n * `process.env.NODE_ENV` with the build-time string. When absolutejs\n * itself is bundled (`bun run scripts/build.ts`), NODE_ENV is unset,\n * so every `process.env.NODE_ENV === 'production'` site collapses to\n * `false` and the production branch is dead-code-eliminated from\n * `dist/`. That breaks `bun start`, `bun compile`, and the standalone\n * compiled binary — they all run with NODE_ENV=production but see the\n * dev branches baked in.\n *\n * Computed-property access (`process.env[KEY]`) is NOT constant-folded\n * by Bun, so we read NODE_ENV through a string variable. Both branches\n * stay live in `dist/`, and the consumer's actual runtime NODE_ENV\n * decides which one fires.\n *\n * Verified empirically: Bun's bundler matches the literal AST shape\n * `MemberExpression { object: process.env, property: NODE_ENV }` for\n * its replacement. Computed-key access uses\n * `MemberExpression { computed: true, property: Identifier(KEY) }`,\n * which doesn't match the pattern. */\n\nconst ENV_VAR = 'NODE_ENV';\n\n/* These helpers are written for server code, but a shared module can pull\n * them into a browser bundle (the Angular defer slot did, through the\n * streaming-slot registrar). Browsers have no `process`, and a bare\n * `process.env` read there throws `ReferenceError: process is not defined`,\n * so read through a guard: with no `process`, NODE_ENV is simply unset. */\nconst readEnv = () =>\n\ttypeof process === 'undefined' ? undefined : process.env?.[ENV_VAR];\n\nexport const getNodeEnv = () => readEnv();\nexport const isDevelopmentRuntime = () => readEnv() === 'development';\nexport const isProductionRuntime = () => readEnv() === 'production';\n",
6
6
  "/* Dependency-free access to the current request's CSP nonce, for code that\n * also ships to the browser (streaming slots, Angular components) and so\n * can't import the server's request context. `secureHeaders()` registers\n * the getter (src/core/cspNonce.ts); in the browser, or with secure headers\n * off, there is none and these return undefined / ''. */\n\nconst GETTER_KEY = Symbol.for('absolutejs.cspNonceGetter');\n\n/** ` nonce=\"…\"` for an inline <script>/<style> tag, or '' without one. */\nexport const nonceAttr = (nonce: string | undefined = readCspNonce()) =>\n\tnonce ? ` nonce=\"${nonce}\"` : '';\n\n/** Adds the nonce to the <style id=\"svelte-…\"> tags Svelte renders into the\n * head for components compiled with injected CSS. Only those: a <style>\n * that arrived through {@html} stays without one. */\nexport const nonceSvelteHeadStyles = (\n\thead: string,\n\tnonce: string | undefined = readCspNonce()\n) =>\n\tnonce\n\t\t? head.replace(\n\t\t\t\t/<style(?=\\s+id=\"svelte-[^\"]*\")(?![^>]*\\snonce=)/g,\n\t\t\t\t`<style nonce=\"${nonce}\"`\n\t\t\t)\n\t\t: head;\n\nexport const readCspNonce = () => {\n\tconst getter: unknown = Reflect.get(globalThis, GETTER_KEY);\n\tif (typeof getter !== 'function') return undefined;\n\tconst nonce: unknown = getter();\n\n\treturn typeof nonce === 'string' ? nonce : undefined;\n};\n\nexport const registerCspNonceGetter = (getter: () => string | undefined) => {\n\tReflect.set(globalThis, GETTER_KEY, getter);\n};\n",
@@ -11,8 +11,8 @@
11
11
  "import {\n\tMILLISECONDS_IN_A_SECOND,\n\tTIME_PRECISION,\n\tMILLISECONDS_IN_A_MINUTE\n} from '../constants';\n\nexport const getDurationString = (duration: number) => {\n\tlet durationString;\n\n\tif (duration < MILLISECONDS_IN_A_SECOND) {\n\t\tdurationString = `${duration.toFixed(TIME_PRECISION)}ms`;\n\t} else if (duration < MILLISECONDS_IN_A_MINUTE) {\n\t\tdurationString = `${(duration / MILLISECONDS_IN_A_SECOND).toFixed(TIME_PRECISION)}s`;\n\t} else {\n\t\tconst totalSeconds = Math.round(duration / MILLISECONDS_IN_A_SECOND);\n\t\tconst minutes = Math.floor(totalSeconds / 60);\n\t\tconst seconds = totalSeconds % 60;\n\t\tdurationString =\n\t\t\tseconds === 0 ? `${minutes}m` : `${minutes}m ${seconds}s`;\n\t}\n\n\treturn durationString;\n};\n",
12
12
  "import { HOURS_IN_HALF_DAY } from '../constants';\nimport { getDurationString } from './getDurationString';\n\nconst colors = {\n\tbold: '\\x1b[1m',\n\tcyan: '\\x1b[36m',\n\tdim: '\\x1b[2m',\n\tgreen: '\\x1b[32m',\n\treset: '\\x1b[0m'\n} as const;\n\nconst MONTHS = [\n\t'Jan',\n\t'Feb',\n\t'Mar',\n\t'Apr',\n\t'May',\n\t'Jun',\n\t'Jul',\n\t'Aug',\n\t'Sep',\n\t'Oct',\n\t'Nov',\n\t'Dec'\n] as const;\n\nexport const formatTimestamp = () => {\n\tconst now = new Date();\n\tconst month = MONTHS[now.getMonth()];\n\tconst day = now.getDate().toString().padStart(2, '0');\n\tlet hours = now.getHours();\n\tconst minutes = now.getMinutes().toString().padStart(2, '0');\n\tconst seconds = now.getSeconds().toString().padStart(2, '0');\n\tconst ampm = hours >= HOURS_IN_HALF_DAY ? 'PM' : 'AM';\n\thours = hours % HOURS_IN_HALF_DAY || HOURS_IN_HALF_DAY;\n\n\treturn `${month} ${day} ${hours}:${minutes}:${seconds} ${ampm}`;\n};\n\nexport const startupBanner = (options: {\n\tversion: string;\n\treadyDuration: number;\n\tbuildDuration?: number;\n\tport: string | number;\n\thost: string;\n\tnetworkUrl?: string;\n\tmobilePreviewUrl?: string;\n\tprotocol?: string;\n}) => {\n\tconst {\n\t\tversion,\n\t\treadyDuration,\n\t\tbuildDuration,\n\t\tport,\n\t\thost,\n\t\tnetworkUrl,\n\t\tmobilePreviewUrl,\n\t\tprotocol = 'http'\n\t} = options;\n\tconst name = `${colors.cyan}${colors.bold}ABSOLUTEJS${colors.reset}`;\n\tconst ver = `${colors.dim}v${version}${colors.reset}`;\n\tconst time = `${colors.dim}ready in${colors.reset} ${colors.bold}${getDurationString(readyDuration)}${colors.reset}`;\n\tconst build =\n\t\ttypeof buildDuration === 'number' && Number.isFinite(buildDuration)\n\t\t\t? ` ${colors.dim}(build ${getDurationString(buildDuration)})${colors.reset}`\n\t\t\t: '';\n\tconsole.log('');\n\tconsole.log(` ${name} ${ver} ${time}${build}`);\n\tconsole.log('');\n\tconsole.log(\n\t\t` ${colors.green}➜${colors.reset} ${colors.bold}Local:${colors.reset} ${protocol}://${host === '0.0.0.0' ? 'localhost' : host}:${port}/`\n\t);\n\tif (networkUrl) {\n\t\tconsole.log(\n\t\t\t` ${colors.green}➜${colors.reset} ${colors.bold}Network:${colors.reset} ${networkUrl}`\n\t\t);\n\t}\n\tif (mobilePreviewUrl) {\n\t\tconsole.log(\n\t\t\t` ${colors.green}➜${colors.reset} ${colors.bold}Mobile:${colors.reset} ${mobilePreviewUrl}`\n\t\t);\n\t}\n\tconsole.log('');\n};\n",
13
13
  "/**\n * Centralized logger utility for AbsoluteJS\n * Provides formatted output with ANSI colors and timestamps\n */\n\nimport { isDevelopmentRuntime } from './runtimeMode';\nimport { formatTimestamp, startupBanner } from './startupBanner';\nimport type {\n\tHMRApplyKind,\n\tHMRApplyOutcome,\n\tHMRClientTarget\n} from '../../types/messages';\n\nexport { formatTimestamp };\n\n// ANSI color codes\nconst colors = {\n\tblue: '\\x1b[34m',\n\tbold: '\\x1b[1m',\n\t// Core colors\n\tcyan: '\\x1b[36m',\n\tdim: '\\x1b[2m',\n\tgreen: '\\x1b[32m',\n\tmagenta: '\\x1b[35m',\n\tred: '\\x1b[31m',\n\treset: '\\x1b[0m',\n\twhite: '\\x1b[37m',\n\tyellow: '\\x1b[33m'\n} as const;\n\n// Framework color mapping\nconst frameworkColors: Record<string, string> = {\n\tangular: colors.magenta,\n\tassets: colors.dim,\n\tcss: colors.cyan,\n\thtml: colors.white,\n\thtmx: colors.white,\n\treact: colors.blue,\n\tsvelte: colors.yellow,\n\tvue: colors.green\n};\n\n/**\n * The line prefix. `[hmr]` belongs to the dev server's log stream; a\n * production server or build has no HMR, so its warnings and errors (a\n * shadowed file route, a manifest problem) say `[absolutejs]` instead.\n */\nconst logTag = () => (isDevelopmentRuntime() ? '[hmr]' : '[absolutejs]');\n\n/**\n * Format a file path for display (relative, clean)\n */\nconst formatPath = (filePath: string) => {\n\tconst cwd = process.cwd();\n\tlet relative = filePath.startsWith(cwd)\n\t\t? filePath.slice(cwd.length + 1)\n\t\t: filePath;\n\t// Normalize slashes\n\trelative = relative.replace(/\\\\/g, '/');\n\t// Ensure it starts with /\n\tif (!relative.startsWith('/')) {\n\t\trelative = `/${relative}`;\n\t}\n\n\treturn relative;\n};\n\n/**\n * Get color for a framework\n */\nconst getFrameworkColor = (framework: string) =>\n\tframeworkColors[framework] || colors.white;\n\n/**\n * Core logging function\n */\nconst log = (\n\taction: string,\n\toptions?: {\n\t\tframework?: string;\n\t\tduration?: number;\n\t\tpath?: string;\n\t\tcolor?: string;\n\t}\n) => {\n\tconst timestamp = `${colors.dim}${formatTimestamp()}${colors.reset}`;\n\tconst tag = `${colors.cyan}${logTag()}${colors.reset}`;\n\n\tlet message = action;\n\n\t// Apply framework color to path if present\n\tif (options?.path) {\n\t\tconst pathColor = options.framework\n\t\t\t? getFrameworkColor(options.framework)\n\t\t\t: colors.white;\n\t\tmessage += ` ${pathColor}${formatPath(options.path)}${colors.reset}`;\n\t}\n\n\t// Add duration if present\n\tif (options?.duration !== undefined) {\n\t\tmessage += ` ${colors.dim}(${options.duration}ms)${colors.reset}`;\n\t}\n\n\tconsole.log(`${timestamp} ${tag} ${message}`);\n};\n\n/**\n * Startup banner\n */\nexport const logReady = startupBanner;\n\n/**\n * CSS update message\n * Format: \"10:30:45 AM [hmr] css update /styles/main.css (125ms)\"\n */\nexport const logCssUpdate = (\n\tpath: string,\n\tframework?: string,\n\tduration?: number\n) => {\n\tlog('css update', { duration, framework: framework ?? 'css', path });\n};\n\n/**\n * Build error\n * Format: \"10:30:45 AM [hmr] error Build failed: ...\" (`[absolutejs]`\n * outside dev)\n */\nexport const logError = (message: string, error?: Error | string) => {\n\tconst timestamp = `${colors.dim}${formatTimestamp()}${colors.reset}`;\n\tconst tag = `${colors.red}${logTag()}${colors.reset}`;\n\tconst errorMsg = error instanceof Error ? error.message : error;\n\tconst fullMessage = `${colors.red}error${colors.reset} ${message}${errorMsg ? `: ${errorMsg}` : ''}`;\n\tconsole.error(`${timestamp} ${tag} ${fullMessage}`);\n};\n\n/**\n * HMR update message\n * Format: \"10:30:45 AM [hmr] hmr update /pages/App.tsx\"\n */\nexport const logHmrClientUpdate = (\n\tpath: string,\n\tframework: string | undefined,\n\tduration: number,\n\ttarget: HMRClientTarget,\n\tserverMs?: number,\n\tclientMs?: number,\n\toutcome: HMRApplyOutcome = 'applied',\n\tkind?: HMRApplyKind\n) => {\n\tconst timestamp = `${colors.dim}${formatTimestamp()}${colors.reset}`;\n\tconst targetLabel = target.startsWith('capacitor-')\n\t\t? target.slice('capacitor-'.length)\n\t\t: target;\n\tconst tag = `${colors.cyan}[hmr:${targetLabel}]${colors.reset}`;\n\tconst pathColor = framework ? getFrameworkColor(framework) : colors.white;\n\tconst breakdown =\n\t\tserverMs === undefined || clientMs === undefined\n\t\t\t? ''\n\t\t\t: `; server ${serverMs}ms, client ${clientMs}ms`;\n\tlet action = 'failed after';\n\tif (outcome === 'applied') action = 'applied in';\n\telse if (outcome === 'reloaded') action = 'falling back to reload after';\n\tconst kindLabel = kind ? `${kind} ` : '';\n\tconsole.log(\n\t\t`${timestamp} ${tag} ${framework ?? 'update'} ${kindLabel}${pathColor}${formatPath(path)}${colors.reset} ${colors.dim}${action} ${duration}ms${breakdown}${colors.reset}`\n\t);\n};\n\nexport const logHmrUpdate = (\n\tpath: string,\n\tframework?: string,\n\tduration?: number\n) => {\n\tlog('hmr update', { duration, framework, path });\n};\n\n/**\n * Generic info message\n */\nexport const logInfo = (message: string) => {\n\tlog(message);\n};\n\n/**\n * Dev on-demand page build (first request for a page bundles it)\n * Format: \"10:30:45 AM [hmr] page build vue/pages/Home.vue (1250ms)\"\n */\nexport const logPageBuild = (\n\tpath: string,\n\tframework?: string,\n\tduration?: number\n) => {\n\tlog('page build', { duration, framework, path });\n};\n\n/**\n * Page reload message\n * Format: \"10:30:45 AM [hmr] page reload /src/App.tsx (125ms)\"\n */\nexport const logPageReload = (\n\tpath: string,\n\tframework?: string,\n\tduration?: number\n) => {\n\tlog('page reload', { duration, framework, path });\n};\n\n/**\n * Script update message\n * Format: \"10:30:45 AM [hmr] script update /scripts/counter.ts (125ms)\"\n */\nexport const logScriptUpdate = (\n\tpath: string,\n\tframework?: string,\n\tduration?: number\n) => {\n\tlog('script update', { duration, framework, path });\n};\n\n/**\n * Server module reloaded (Bun --hot triggered a server-side change)\n */\nexport const logServerReload = () => {\n\tlog(`${colors.cyan}server module reloaded${colors.reset}`);\n};\n\n/**\n * Warning message\n * Format: \"10:30:45 AM [hmr] warning ...\" (`[absolutejs]` outside dev)\n */\nexport const logWarn = (message: string) => {\n\tconst timestamp = `${colors.dim}${formatTimestamp()}${colors.reset}`;\n\tconst tag = `${colors.yellow}${logTag()}${colors.reset}`;\n\tconsole.log(\n\t\t`${timestamp} ${tag} ${colors.yellow}warning ${message}${colors.reset}`\n\t);\n};\n",
14
- "import type { IslandFramework } from '../../types/island';\n\n/** Manifest key the server injects as the islands bootstrap script on any\n * page with island markers. The build records the configured\n * `islands.bootstrap` (whatever its file name) or a generated default under\n * it — see build/islandBootstrap.ts. */\nexport const ISLAND_BOOTSTRAP_MANIFEST_KEY = 'AbsoluteIslandBootstrap';\n\n/** Key a bootstrap file named `bootstrapClient.*` gets naturally, which is\n * all the server used to look for. Still honored for manifests built\n * before the reserved key existed. */\nexport const LEGACY_ISLAND_BOOTSTRAP_MANIFEST_KEY = 'BootstrapClient';\n\nconst toIslandFrameworkSegment = (framework: IslandFramework) =>\n\tframework[0]?.toUpperCase() + framework.slice(1);\n\nconst collectFrameworkIslands = (\n\tmanifest: Record<string, string>,\n\tprefix: string\n) => {\n\tconst entries: Record<string, string> = {};\n\tlet found = false;\n\n\tfor (const [key, value] of Object.entries(manifest)) {\n\t\tif (!key.startsWith(prefix)) continue;\n\n\t\tconst component = key.slice(prefix.length);\n\t\tif (!component) continue;\n\n\t\tentries[component] = value;\n\t\tfound = true;\n\t}\n\n\treturn found ? entries : undefined;\n};\n\nexport const getIslandBootstrapPath = (manifest: Record<string, string>) =>\n\tmanifest[ISLAND_BOOTSTRAP_MANIFEST_KEY] ??\n\tmanifest[LEGACY_ISLAND_BOOTSTRAP_MANIFEST_KEY];\nexport const getIslandManifestEntries = (manifest: Record<string, string>) => {\n\tconst islands: Partial<Record<IslandFramework, Record<string, string>>> =\n\t\t{};\n\tconst frameworks: IslandFramework[] = ['react', 'svelte', 'vue', 'angular'];\n\n\tfor (const framework of frameworks) {\n\t\tconst prefix = `Island${toIslandFrameworkSegment(framework)}`;\n\t\tconst entries = collectFrameworkIslands(manifest, prefix);\n\t\tif (entries) islands[framework] = entries;\n\t}\n\n\treturn islands;\n};\nexport const getIslandManifestKey = (\n\tframework: IslandFramework,\n\tcomponent: string\n) => `Island${toIslandFrameworkSegment(framework)}${component}`;\n",
15
- "import { escapeScriptContent } from '../utils/escapeScriptContent';\nimport { nonceAttr } from '../utils/cspNonceRef';\nimport { isProductionRuntime } from '../utils/runtimeMode';\nimport { logWarn } from '../utils/logger';\nimport { getIslandBootstrapPath } from './islandManifest';\n\nconst ISLAND_MARKER = 'data-island=\"true\"';\nconst MANIFEST_MARKER = '__ABSOLUTE_MANIFEST__';\nconst ISLAND_STATE_MARKER = '__ABS_ISLAND_STATE__';\nconst CLOSING_HEAD_TAG = '</head>';\n\ndeclare global {\n\tvar __absoluteManifest: Record<string, string> | undefined;\n\tvar __ABS_ISLAND_STATE__:\n\t\tRecord<string, Record<string, unknown>> | undefined;\n}\n\nlet warnedMissingBootstrap = false;\n\n/* A page with island markers and no bootstrap in the manifest renders its\n * islands but never hydrates them. Say so once per process outside\n * production instead of failing silently. */\nconst warnIfBootstrapMissing = (manifest: Record<string, string>) => {\n\tif (warnedMissingBootstrap || getIslandBootstrapPath(manifest)) return;\n\tif (isProductionRuntime()) return;\n\twarnedMissingBootstrap = true;\n\tlogWarn(\n\t\t'A page contains islands, but the build manifest has no islands bootstrap, so they will render without hydrating. Set `islands.registry` in absolute.config.ts (a default bootstrap is generated from it) or point `islands.bootstrap` at a file that calls startIslands().'\n\t);\n};\n\n/** @internal Test hook: lets each test observe the one-time warning. */\nexport const resetIslandBootstrapWarning = () => {\n\twarnedMissingBootstrap = false;\n};\n\nconst MANIFEST_BUILD_DIR_KEY = Symbol.for('absolutejs.islandManifestBuildDir');\n\n/* One value per process: dist/index.js and each framework entry\n * (dist/react/index.js, dist/svelte/index.js, ...) carry their own copy of\n * this module, and a production server bundle can inline several of them.\n * prepare() sets the build directory through one copy while a page handler\n * injects the manifest through another, so the value lives on globalThis. */\nconst getManifestBuildDir = () => {\n\tconst value: unknown = Reflect.get(globalThis, MANIFEST_BUILD_DIR_KEY);\n\n\treturn typeof value === 'string' ? value : undefined;\n};\n\nconst WINDOWS_ABSOLUTE_PATH = /^[A-Za-z]:[\\\\/]|^\\\\\\\\/;\n\nconst withTrailingSlash = (path: string) =>\n\tpath.endsWith('/') ? path : `${path}/`;\n\nconst currentWorkingRoot = () => {\n\ttry {\n\t\treturn withTrailingSlash(process.cwd().replaceAll('\\\\', '/'));\n\t} catch {\n\t\treturn undefined;\n\t}\n};\n\n/* The build manifest also maps SSR pages and server bundles to absolute\n * paths on the server's disk (the server imports them from there). Those\n * entries mean nothing to a browser and would publish the server's file\n * layout in every page with islands, so only web paths are sent. Browser\n * entries are root-relative URLs such as `/react/pages/Foo.abc.js`; a value\n * is a server path when it is a Windows path or sits inside the build\n * directory or the project root. The project-root check keeps the filter\n * working even if the build directory was never recorded. */\nconst isServerFilePath = (value: string) => {\n\tif (WINDOWS_ABSOLUTE_PATH.test(value)) return true;\n\tconst buildDir = getManifestBuildDir();\n\tif (buildDir && value.startsWith(withTrailingSlash(buildDir))) return true;\n\tconst root = currentWorkingRoot();\n\tif (root && root !== '/' && value.startsWith(root)) return true;\n\n\treturn false;\n};\n\n/** The part of the build manifest a browser may see. */\nexport const toBrowserManifest = (manifest: Record<string, string>) => {\n\tconst browserManifest: Record<string, string> = {};\n\tfor (const [key, value] of Object.entries(manifest)) {\n\t\tif (typeof value !== 'string' || isServerFilePath(value)) continue;\n\t\tbrowserManifest[key] = value;\n\t}\n\n\treturn browserManifest;\n};\n\nconst buildIslandsHeadMarkup = (manifest: Record<string, string>) => {\n\tconst manifestScript = `<script${nonceAttr()}>window.__ABSOLUTE_MANIFEST__ = ${escapeScriptContent(JSON.stringify(toBrowserManifest(manifest)))}</script>`;\n\tconst islandStateScript = `<script${nonceAttr()}>window.__ABS_ISLAND_STATE__ = ${escapeScriptContent(JSON.stringify(globalThis.__ABS_ISLAND_STATE__ ?? {}))}</script>`;\n\tconst bootstrapPath = getIslandBootstrapPath(manifest);\n\tconst bootstrapScript = bootstrapPath\n\t\t? `<script${nonceAttr()} type=\"module\" src=\"${bootstrapPath}\"></script>`\n\t\t: '';\n\n\treturn `${manifestScript}${islandStateScript}${bootstrapScript}`;\n};\n\nconst injectHeadMarkup = (html: string, markup: string) => {\n\tconst closingHeadIndex = html.indexOf('</head>');\n\tif (closingHeadIndex >= 0) {\n\t\treturn `${html.slice(0, closingHeadIndex)}${markup}${html.slice(closingHeadIndex)}`;\n\t}\n\n\tconst openingBodyIndex = html.indexOf('<body');\n\tif (openingBodyIndex >= 0) {\n\t\tconst bodyStart = html.indexOf('>', openingBodyIndex);\n\t\tif (bodyStart >= 0) {\n\t\t\treturn `${html.slice(0, openingBodyIndex)}<head>${markup}</head>${html.slice(openingBodyIndex)}`;\n\t\t}\n\t}\n\n\treturn `<!DOCTYPE html><html><head>${markup}</head><body>${html}</body></html>`;\n};\n\nconst streamChunkToString = (\n\tvalue: string | Uint8Array,\n\tdecoder: TextDecoder\n) =>\n\ttypeof value === 'string' ? value : decoder.decode(value, { stream: true });\n\nconst flushSafePendingText = (\n\tcontroller: ReadableStreamDefaultController<Uint8Array>,\n\tencoder: TextEncoder,\n\tpending: string,\n\tlookbehind: number\n) => {\n\tif (pending.length <= lookbehind) {\n\t\treturn pending;\n\t}\n\n\tconst safeText = pending.slice(0, pending.length - lookbehind);\n\tcontroller.enqueue(encoder.encode(safeText));\n\n\treturn pending.slice(-lookbehind);\n};\n\nconst updateInjectedState = (\n\tconsumed: { done: boolean; injected: boolean; pending: string },\n\tinjected: boolean,\n\tpending: string\n) => {\n\tif (consumed.done) {\n\t\treturn { done: true, injected, pending };\n\t}\n\n\treturn {\n\t\tdone: false,\n\t\tinjected: consumed.injected,\n\t\tpending: consumed.pending\n\t};\n};\n\nconst readStreamChunk = async (\n\treader: ReadableStreamDefaultReader<string | Uint8Array>\n) => {\n\tconst { done, value } = await reader.read();\n\tif (done || !value) {\n\t\treturn { done, value: undefined };\n\t}\n\n\treturn { done, value };\n};\n\nconst pipeStreamWithHeadInjection = (\n\tstream: ReadableStream<string | Uint8Array>,\n\tmarkup: string\n) => {\n\tconst encoder = new TextEncoder();\n\tconst decoder = new TextDecoder();\n\tconst lookbehind = CLOSING_HEAD_TAG.length - 1;\n\tconst processPending = (\n\t\tcontroller: ReadableStreamDefaultController<Uint8Array>,\n\t\tpending: string,\n\t\tinjected: boolean\n\t) => {\n\t\tif (injected) {\n\t\t\tcontroller.enqueue(encoder.encode(pending));\n\n\t\t\treturn { injected, pending: '' };\n\t\t}\n\n\t\tconst headIndex = pending.indexOf(CLOSING_HEAD_TAG);\n\t\tif (headIndex >= 0) {\n\t\t\tconst next = `${pending.slice(0, headIndex)}${markup}${pending.slice(headIndex)}`;\n\t\t\tcontroller.enqueue(encoder.encode(next));\n\n\t\t\treturn { injected: true, pending: '' };\n\t\t}\n\n\t\treturn {\n\t\t\tinjected,\n\t\t\tpending: flushSafePendingText(\n\t\t\t\tcontroller,\n\t\t\t\tencoder,\n\t\t\t\tpending,\n\t\t\t\tlookbehind\n\t\t\t)\n\t\t};\n\t};\n\tconst finishHeadInjectionStream = (\n\t\tcontroller: ReadableStreamDefaultController<Uint8Array>,\n\t\tpending: string,\n\t\tinjected: boolean\n\t) => {\n\t\tlet finalPending = pending + decoder.decode();\n\t\tif (!injected) {\n\t\t\tfinalPending = injectHeadMarkup(finalPending, markup);\n\t\t}\n\t\tif (finalPending.length > 0) {\n\t\t\tcontroller.enqueue(encoder.encode(finalPending));\n\t\t}\n\t\tcontroller.close();\n\t};\n\tconst consumeHeadChunk = async (\n\t\tcontroller: ReadableStreamDefaultController<Uint8Array>,\n\t\treader: ReadableStreamDefaultReader<string | Uint8Array>,\n\t\tpending: string,\n\t\tinjected: boolean\n\t) => {\n\t\tconst { done, value } = await readStreamChunk(reader);\n\t\tif (done || !value) {\n\t\t\treturn { done, injected, pending };\n\t\t}\n\n\t\tconst processed = processPending(\n\t\t\tcontroller,\n\t\t\tpending + streamChunkToString(value, decoder),\n\t\t\tinjected\n\t\t);\n\n\t\treturn {\n\t\t\tdone,\n\t\t\tinjected: processed.injected,\n\t\t\tpending: processed.pending\n\t\t};\n\t};\n\tconst runHeadInjectionLoop = async (\n\t\tcontroller: ReadableStreamDefaultController<Uint8Array>,\n\t\treader: ReadableStreamDefaultReader<string | Uint8Array>\n\t) => {\n\t\tconst consumeNextHeadChunk = async (\n\t\t\tinjected: boolean,\n\t\t\tpending: string\n\t\t) => {\n\t\t\tconst consumed = await consumeHeadChunk(\n\t\t\t\tcontroller,\n\t\t\t\treader,\n\t\t\t\tpending,\n\t\t\t\tinjected\n\t\t\t);\n\t\t\tconst nextState = updateInjectedState(consumed, injected, pending);\n\t\t\tif (nextState.done) {\n\t\t\t\treturn { injected, pending };\n\t\t\t}\n\n\t\t\treturn consumeNextHeadChunk(nextState.injected, nextState.pending);\n\t\t};\n\n\t\treturn consumeNextHeadChunk(false, '');\n\t};\n\n\treturn new ReadableStream<Uint8Array>({\n\t\tasync start(controller) {\n\t\t\tconst reader = stream.getReader();\n\n\t\t\ttry {\n\t\t\t\tconst { injected, pending } = await runHeadInjectionLoop(\n\t\t\t\t\tcontroller,\n\t\t\t\t\treader\n\t\t\t\t);\n\t\t\t\tfinishHeadInjectionStream(controller, pending, injected);\n\t\t\t} catch (error) {\n\t\t\t\tcontroller.error(error);\n\t\t\t}\n\t\t}\n\t});\n};\n\n// `held` is the buffer kept from `</head>` onward once `sawHead` is true;\n// `pending` is the not-yet-flushed text before `</head>`; `injected` flips on\n// once the scripts have been emitted and the rest can stream straight through.\ntype IslandMarkerStreamState = {\n\theld: string;\n\tinjected: boolean;\n\tpending: string;\n\tsawHead: boolean;\n};\n\n// Streaming injector for pages whose island presence isn't known up front.\n// The manifest/state/bootstrap scripts must land in `<head>` — React 19\n// tolerates hoistable elements (scripts/links/…) there during hydration, but\n// injecting them inline in the body (e.g. just before the first island marker)\n// makes them a sibling inside a host-React-rendered element, which breaks\n// hydration with a structural mismatch. `</head>` is streamed before any body\n// island, so we flush the head immediately, then hold from `</head>` onward\n// until we can confirm whether the body actually contains an island. If it\n// does, we inject right before the held `</head>`; if it doesn't, we flush the\n// held content untouched so island-free pages don't pull in the runtime.\nconst pipeStreamWithIslandMarkerDetection = (\n\tstream: ReadableStream<string | Uint8Array>,\n\tmarkup: string,\n\tonIslandsDetected: () => void\n) => {\n\tconst encoder = new TextEncoder();\n\tconst decoder = new TextDecoder();\n\tconst headLookbehind = CLOSING_HEAD_TAG.length - 1;\n\n\tconst enqueue = (\n\t\tcontroller: ReadableStreamDefaultController<Uint8Array>,\n\t\ttext: string\n\t) => {\n\t\tif (text.length > 0) {\n\t\t\tcontroller.enqueue(encoder.encode(text));\n\t\t}\n\t};\n\t// From `</head>` onward: hold until an island marker confirms the page has\n\t// islands, then inject the scripts just before the held `</head>`.\n\tconst processHolding = (\n\t\tcontroller: ReadableStreamDefaultController<Uint8Array>,\n\t\theld: string\n\t) => {\n\t\tif (!held.includes(ISLAND_MARKER)) {\n\t\t\treturn { held, injected: false, pending: '', sawHead: true };\n\t\t}\n\t\tonIslandsDetected();\n\t\tenqueue(controller, `${markup}${held}`);\n\n\t\treturn { held: '', injected: true, pending: '', sawHead: true };\n\t};\n\t// Before `</head>`: flush safe text and watch for the head close tag.\n\tconst processHead = (\n\t\tcontroller: ReadableStreamDefaultController<Uint8Array>,\n\t\tpending: string\n\t) => {\n\t\tconst headIndex = pending.indexOf(CLOSING_HEAD_TAG);\n\t\tif (headIndex < 0) {\n\t\t\treturn {\n\t\t\t\theld: '',\n\t\t\t\tinjected: false,\n\t\t\t\tpending: flushSafePendingText(\n\t\t\t\t\tcontroller,\n\t\t\t\t\tencoder,\n\t\t\t\t\tpending,\n\t\t\t\t\theadLookbehind\n\t\t\t\t),\n\t\t\t\tsawHead: false\n\t\t\t};\n\t\t}\n\t\tenqueue(controller, pending.slice(0, headIndex));\n\n\t\treturn processHolding(controller, pending.slice(headIndex));\n\t};\n\tconst processChunk = (\n\t\tcontroller: ReadableStreamDefaultController<Uint8Array>,\n\t\tstate: IslandMarkerStreamState,\n\t\tchunk: string\n\t) => {\n\t\tif (state.injected) {\n\t\t\tenqueue(controller, chunk);\n\n\t\t\treturn state;\n\t\t}\n\t\tif (!state.sawHead) {\n\t\t\treturn processHead(controller, state.pending + chunk);\n\t\t}\n\n\t\treturn processHolding(controller, state.held + chunk);\n\t};\n\tconst finishMarkerStream = (\n\t\tcontroller: ReadableStreamDefaultController<Uint8Array>,\n\t\tstate: IslandMarkerStreamState\n\t) => {\n\t\tconst tail = decoder.decode();\n\t\t// `injected` → tail only; `sawHead` (held, no islands) → flush as-is;\n\t\t// otherwise no `</head>` was ever seen, so pass the buffer through.\n\t\tconst remainder = state.injected\n\t\t\t? tail\n\t\t\t: (state.sawHead ? state.held : state.pending) + tail;\n\t\tenqueue(controller, remainder);\n\t\tcontroller.close();\n\t};\n\tconst runMarkerLoop = (\n\t\tcontroller: ReadableStreamDefaultController<Uint8Array>,\n\t\treader: ReadableStreamDefaultReader<string | Uint8Array>\n\t) => {\n\t\tconst consumeNext = async (state: IslandMarkerStreamState) => {\n\t\t\tconst { done, value } = await readStreamChunk(reader);\n\t\t\tif (done || !value) {\n\t\t\t\treturn state;\n\t\t\t}\n\n\t\t\treturn consumeNext(\n\t\t\t\tprocessChunk(\n\t\t\t\t\tcontroller,\n\t\t\t\t\tstate,\n\t\t\t\t\tstreamChunkToString(value, decoder)\n\t\t\t\t)\n\t\t\t);\n\t\t};\n\n\t\treturn consumeNext({\n\t\t\theld: '',\n\t\t\tinjected: false,\n\t\t\tpending: '',\n\t\t\tsawHead: false\n\t\t});\n\t};\n\n\treturn new ReadableStream<Uint8Array>({\n\t\tasync start(controller) {\n\t\t\tconst reader = stream.getReader();\n\n\t\t\ttry {\n\t\t\t\tconst finalState = await runMarkerLoop(controller, reader);\n\t\t\t\tfinishMarkerStream(controller, finalState);\n\t\t\t} catch (error) {\n\t\t\t\tcontroller.error(error);\n\t\t\t}\n\t\t}\n\t});\n};\n\nexport const htmlContainsIslands = (html: string) =>\n\thtml.includes(ISLAND_MARKER);\nexport const injectIslandPageContext = (\n\thtml: string,\n\toptions?: { hasIslands?: boolean }\n) => {\n\tconst manifest = globalThis.__absoluteManifest;\n\tconst hasIslands = options?.hasIslands ?? htmlContainsIslands(html);\n\tif (!manifest || !hasIslands) {\n\t\treturn html;\n\t}\n\n\tif (html.includes(MANIFEST_MARKER) || html.includes(ISLAND_STATE_MARKER)) {\n\t\treturn html;\n\t}\n\twarnIfBootstrapMissing(manifest);\n\n\treturn injectHeadMarkup(html, buildIslandsHeadMarkup(manifest));\n};\n\nexport const injectIslandPageContextStream = (\n\tstream: ReadableStream<string | Uint8Array>,\n\toptions?: { hasIslands?: boolean }\n) => {\n\tconst manifest = globalThis.__absoluteManifest;\n\tif (!manifest) return stream;\n\tconst markup = buildIslandsHeadMarkup(manifest);\n\n\tif (options?.hasIslands === true) {\n\t\twarnIfBootstrapMissing(manifest);\n\n\t\treturn pipeStreamWithHeadInjection(stream, markup);\n\t}\n\tif (options?.hasIslands === false) {\n\t\treturn stream;\n\t}\n\n\treturn pipeStreamWithIslandMarkerDetection(stream, markup, () =>\n\t\twarnIfBootstrapMissing(manifest)\n\t);\n};\n/** `buildDir` is the absolute build directory: manifest entries inside it\n * are server-side file paths and stay out of the page. */\nexport const setCurrentIslandManifest = (\n\tmanifest: Record<string, string>,\n\tbuildDir?: string\n) => {\n\tglobalThis.__absoluteManifest = manifest;\n\tReflect.set(\n\t\tglobalThis,\n\t\tMANIFEST_BUILD_DIR_KEY,\n\t\tbuildDir?.replaceAll('\\\\', '/')\n\t);\n};\n",
14
+ "import type { IslandFramework } from '../../types/island';\n\n/** Manifest key the server injects as the islands bootstrap script on any\n * page with island markers. The build records the configured\n * `islands.bootstrap` (whatever its file name) or a generated default under\n * it — see build/islandBootstrap.ts. */\nexport const ISLAND_BOOTSTRAP_MANIFEST_KEY = 'AbsoluteIslandBootstrap';\n\n/** Key a bootstrap file named `bootstrapClient.*` gets naturally, which is\n * all the server used to look for. Still honored for manifests built\n * before the reserved key existed. */\nexport const LEGACY_ISLAND_BOOTSTRAP_MANIFEST_KEY = 'BootstrapClient';\n\nconst toIslandFrameworkSegment = (framework: IslandFramework) =>\n\tframework[0]?.toUpperCase() + framework.slice(1);\n\nconst collectFrameworkIslands = (\n\tmanifest: Record<string, string>,\n\tprefix: string\n) => {\n\tconst entries: Record<string, string> = {};\n\tlet found = false;\n\n\tfor (const [key, value] of Object.entries(manifest)) {\n\t\tif (!key.startsWith(prefix)) continue;\n\n\t\tconst component = key.slice(prefix.length);\n\t\tif (!component) continue;\n\n\t\tentries[component] = value;\n\t\tfound = true;\n\t}\n\n\treturn found ? entries : undefined;\n};\n\nexport const getIslandBootstrapPath = (manifest: Record<string, string>) =>\n\tmanifest[ISLAND_BOOTSTRAP_MANIFEST_KEY] ??\n\tmanifest[LEGACY_ISLAND_BOOTSTRAP_MANIFEST_KEY];\nexport const getIslandManifestEntries = (manifest: Record<string, string>) => {\n\tconst islands: Partial<Record<IslandFramework, Record<string, string>>> =\n\t\t{};\n\tconst frameworks: IslandFramework[] = ['react', 'svelte', 'vue', 'angular'];\n\n\tfor (const framework of frameworks) {\n\t\tconst prefix = `Island${toIslandFrameworkSegment(framework)}`;\n\t\tconst entries = collectFrameworkIslands(manifest, prefix);\n\t\tif (entries) islands[framework] = entries;\n\t}\n\n\treturn islands;\n};\nexport const getIslandManifestKey = (\n\tframework: IslandFramework,\n\tcomponent: string\n) => `Island${toIslandFrameworkSegment(framework)}${component}`;\n\nconst ISLAND_STYLE_PREFIX = 'IslandStyle';\n\n/** Every island stylesheet in the manifest, by manifest key. */\nexport const getIslandStyleManifestEntries = (\n\tmanifest: Record<string, string>\n) =>\n\tObject.entries(manifest).filter(([key]) =>\n\t\tkey.startsWith(ISLAND_STYLE_PREFIX)\n\t);\n\n/** Manifest key of the stylesheet the island client pass emits for an\n * island (its Svelte/Vue component styles and any CSS it imports). The\n * server links it from every page that renders the island. */\nexport const getIslandStyleManifestKey = (\n\tframework: IslandFramework,\n\tcomponent: string\n) => `${ISLAND_STYLE_PREFIX}${toIslandFrameworkSegment(framework)}${component}`;\n",
15
+ "import { escapeScriptContent } from '../utils/escapeScriptContent';\nimport { nonceAttr } from '../utils/cspNonceRef';\nimport { isProductionRuntime } from '../utils/runtimeMode';\nimport { logWarn } from '../utils/logger';\nimport {\n\tgetIslandBootstrapPath,\n\tgetIslandStyleManifestEntries,\n\tgetIslandStyleManifestKey\n} from './islandManifest';\nimport type { IslandFramework } from '../../types/island';\n\nconst ISLAND_MARKER = 'data-island=\"true\"';\nconst MANIFEST_MARKER = '__ABSOLUTE_MANIFEST__';\nconst ISLAND_STATE_MARKER = '__ABS_ISLAND_STATE__';\nconst CLOSING_HEAD_TAG = '</head>';\n\ndeclare global {\n\tvar __absoluteManifest: Record<string, string> | undefined;\n\tvar __ABS_ISLAND_STATE__:\n\t\tRecord<string, Record<string, unknown>> | undefined;\n}\n\nlet warnedMissingBootstrap = false;\n\n/* A page with island markers and no bootstrap in the manifest renders its\n * islands but never hydrates them. Say so once per process outside\n * production instead of failing silently. */\nconst warnIfBootstrapMissing = (manifest: Record<string, string>) => {\n\tif (warnedMissingBootstrap || getIslandBootstrapPath(manifest)) return;\n\tif (isProductionRuntime()) return;\n\twarnedMissingBootstrap = true;\n\tlogWarn(\n\t\t'A page contains islands, but the build manifest has no islands bootstrap, so they will render without hydrating. Set `islands.registry` in absolute.config.ts (a default bootstrap is generated from it) or point `islands.bootstrap` at a file that calls startIslands().'\n\t);\n};\n\n/** @internal Test hook: lets each test observe the one-time warning. */\nexport const resetIslandBootstrapWarning = () => {\n\twarnedMissingBootstrap = false;\n};\n\nconst MANIFEST_BUILD_DIR_KEY = Symbol.for('absolutejs.islandManifestBuildDir');\n\n/* One value per process: dist/index.js and each framework entry\n * (dist/react/index.js, dist/svelte/index.js, ...) carry their own copy of\n * this module, and a production server bundle can inline several of them.\n * prepare() sets the build directory through one copy while a page handler\n * injects the manifest through another, so the value lives on globalThis. */\nconst getManifestBuildDir = () => {\n\tconst value: unknown = Reflect.get(globalThis, MANIFEST_BUILD_DIR_KEY);\n\n\treturn typeof value === 'string' ? value : undefined;\n};\n\nconst WINDOWS_ABSOLUTE_PATH = /^[A-Za-z]:[\\\\/]|^\\\\\\\\/;\n\nconst withTrailingSlash = (path: string) =>\n\tpath.endsWith('/') ? path : `${path}/`;\n\nconst currentWorkingRoot = () => {\n\ttry {\n\t\treturn withTrailingSlash(process.cwd().replaceAll('\\\\', '/'));\n\t} catch {\n\t\treturn undefined;\n\t}\n};\n\n/* The build manifest also maps SSR pages and server bundles to absolute\n * paths on the server's disk (the server imports them from there). Those\n * entries mean nothing to a browser and would publish the server's file\n * layout in every page with islands, so only web paths are sent. Browser\n * entries are root-relative URLs such as `/react/pages/Foo.abc.js`; a value\n * is a server path when it is a Windows path or sits inside the build\n * directory or the project root. The project-root check keeps the filter\n * working even if the build directory was never recorded. */\nconst isServerFilePath = (value: string) => {\n\tif (WINDOWS_ABSOLUTE_PATH.test(value)) return true;\n\tconst buildDir = getManifestBuildDir();\n\tif (buildDir && value.startsWith(withTrailingSlash(buildDir))) return true;\n\tconst root = currentWorkingRoot();\n\tif (root && root !== '/' && value.startsWith(root)) return true;\n\n\treturn false;\n};\n\n/** The part of the build manifest a browser may see. */\nexport const toBrowserManifest = (manifest: Record<string, string>) => {\n\tconst browserManifest: Record<string, string> = {};\n\tfor (const [key, value] of Object.entries(manifest)) {\n\t\tif (typeof value !== 'string' || isServerFilePath(value)) continue;\n\t\tbrowserManifest[key] = value;\n\t}\n\n\treturn browserManifest;\n};\n\nconst ISLAND_MARKER_TAG = /<[^>]*\\bdata-island=\"true\"[^>]*>/g;\nconst ISLAND_FRAMEWORKS: readonly IslandFramework[] = [\n\t'react',\n\t'svelte',\n\t'vue',\n\t'angular'\n];\n\nconst readMarkerAttribute = (tag: string, name: string) =>\n\tnew RegExp(`\\\\b${name}=\"([^\"]*)\"`)\n\t\t.exec(tag)?.[1]\n\t\t?.replaceAll('&quot;', '\"')\n\t\t.replaceAll('&lt;', '<')\n\t\t.replaceAll('&gt;', '>')\n\t\t.replaceAll('&amp;', '&');\n\nconst toIslandFramework = (value: string | undefined) =>\n\tISLAND_FRAMEWORKS.find((framework) => framework === value);\n\n/* Manifest keys of the stylesheets of the islands an HTML document renders,\n * read from its island markers. */\nconst collectRenderedIslandStyleKeys = (html: string) => {\n\tconst keys = new Set<string>();\n\tfor (const [tag] of html.matchAll(ISLAND_MARKER_TAG)) {\n\t\tconst framework = toIslandFramework(\n\t\t\treadMarkerAttribute(tag, 'data-framework')\n\t\t);\n\t\tconst component = readMarkerAttribute(tag, 'data-component');\n\t\tif (framework && component)\n\t\t\tkeys.add(getIslandStyleManifestKey(framework, component));\n\t}\n\n\treturn keys;\n};\n\n/* An island's styles (Svelte/Vue component styles, CSS it imports) are\n * built into its own stylesheet; link it with the request's nonce, so the\n * server-rendered island is styled on first paint and no framework runtime\n * injects an inline <style> a nonce-based CSP would block.\n *\n * A whole document (HTML, HTMX, Svelte, Angular and Vue pages) links, in\n * its head, the stylesheets of the islands it renders, read from its\n * markers. A streamed page's head is written before its body exists, so\n * it links none here: its Island components render each stylesheet next\n * to the island instead (React as a hoisted stylesheet resource, Vue's\n * streamed render as a link before the island). */\nconst buildIslandStyleLinks = (\n\tmanifest: Record<string, string>,\n\thtml?: string\n) => {\n\tif (html === undefined) return '';\n\tconst renderedKeys = collectRenderedIslandStyleKeys(html);\n\n\treturn getIslandStyleManifestEntries(manifest)\n\t\t.filter(([key]) => renderedKeys.has(key))\n\t\t.filter(([, href]) => !html.includes(`href=\"${href}\"`))\n\t\t.map(\n\t\t\t([key, href]) =>\n\t\t\t\t`<link rel=\"stylesheet\" href=\"${href}\" data-island-style=\"${key}\"${nonceAttr()}>`\n\t\t)\n\t\t.join('');\n};\n\nconst buildIslandsHeadMarkup = (\n\tmanifest: Record<string, string>,\n\thtml?: string\n) => {\n\tconst styleLinks = buildIslandStyleLinks(manifest, html);\n\tconst manifestScript = `<script${nonceAttr()}>window.__ABSOLUTE_MANIFEST__ = ${escapeScriptContent(JSON.stringify(toBrowserManifest(manifest)))}</script>`;\n\tconst islandStateScript = `<script${nonceAttr()}>window.__ABS_ISLAND_STATE__ = ${escapeScriptContent(JSON.stringify(globalThis.__ABS_ISLAND_STATE__ ?? {}))}</script>`;\n\tconst bootstrapPath = getIslandBootstrapPath(manifest);\n\tconst bootstrapScript = bootstrapPath\n\t\t? `<script${nonceAttr()} type=\"module\" src=\"${bootstrapPath}\"></script>`\n\t\t: '';\n\n\treturn `${styleLinks}${manifestScript}${islandStateScript}${bootstrapScript}`;\n};\n\nconst injectHeadMarkup = (html: string, markup: string) => {\n\tconst closingHeadIndex = html.indexOf('</head>');\n\tif (closingHeadIndex >= 0) {\n\t\treturn `${html.slice(0, closingHeadIndex)}${markup}${html.slice(closingHeadIndex)}`;\n\t}\n\n\tconst openingBodyIndex = html.indexOf('<body');\n\tif (openingBodyIndex >= 0) {\n\t\tconst bodyStart = html.indexOf('>', openingBodyIndex);\n\t\tif (bodyStart >= 0) {\n\t\t\treturn `${html.slice(0, openingBodyIndex)}<head>${markup}</head>${html.slice(openingBodyIndex)}`;\n\t\t}\n\t}\n\n\treturn `<!DOCTYPE html><html><head>${markup}</head><body>${html}</body></html>`;\n};\n\nconst streamChunkToString = (\n\tvalue: string | Uint8Array,\n\tdecoder: TextDecoder\n) =>\n\ttypeof value === 'string' ? value : decoder.decode(value, { stream: true });\n\nconst flushSafePendingText = (\n\tcontroller: ReadableStreamDefaultController<Uint8Array>,\n\tencoder: TextEncoder,\n\tpending: string,\n\tlookbehind: number\n) => {\n\tif (pending.length <= lookbehind) {\n\t\treturn pending;\n\t}\n\n\tconst safeText = pending.slice(0, pending.length - lookbehind);\n\tcontroller.enqueue(encoder.encode(safeText));\n\n\treturn pending.slice(-lookbehind);\n};\n\nconst updateInjectedState = (\n\tconsumed: { done: boolean; injected: boolean; pending: string },\n\tinjected: boolean,\n\tpending: string\n) => {\n\tif (consumed.done) {\n\t\treturn { done: true, injected, pending };\n\t}\n\n\treturn {\n\t\tdone: false,\n\t\tinjected: consumed.injected,\n\t\tpending: consumed.pending\n\t};\n};\n\nconst readStreamChunk = async (\n\treader: ReadableStreamDefaultReader<string | Uint8Array>\n) => {\n\tconst { done, value } = await reader.read();\n\tif (done || !value) {\n\t\treturn { done, value: undefined };\n\t}\n\n\treturn { done, value };\n};\n\nconst pipeStreamWithHeadInjection = (\n\tstream: ReadableStream<string | Uint8Array>,\n\tmarkup: string\n) => {\n\tconst encoder = new TextEncoder();\n\tconst decoder = new TextDecoder();\n\tconst lookbehind = CLOSING_HEAD_TAG.length - 1;\n\tconst processPending = (\n\t\tcontroller: ReadableStreamDefaultController<Uint8Array>,\n\t\tpending: string,\n\t\tinjected: boolean\n\t) => {\n\t\tif (injected) {\n\t\t\tcontroller.enqueue(encoder.encode(pending));\n\n\t\t\treturn { injected, pending: '' };\n\t\t}\n\n\t\tconst headIndex = pending.indexOf(CLOSING_HEAD_TAG);\n\t\tif (headIndex >= 0) {\n\t\t\tconst next = `${pending.slice(0, headIndex)}${markup}${pending.slice(headIndex)}`;\n\t\t\tcontroller.enqueue(encoder.encode(next));\n\n\t\t\treturn { injected: true, pending: '' };\n\t\t}\n\n\t\treturn {\n\t\t\tinjected,\n\t\t\tpending: flushSafePendingText(\n\t\t\t\tcontroller,\n\t\t\t\tencoder,\n\t\t\t\tpending,\n\t\t\t\tlookbehind\n\t\t\t)\n\t\t};\n\t};\n\tconst finishHeadInjectionStream = (\n\t\tcontroller: ReadableStreamDefaultController<Uint8Array>,\n\t\tpending: string,\n\t\tinjected: boolean\n\t) => {\n\t\tlet finalPending = pending + decoder.decode();\n\t\tif (!injected) {\n\t\t\tfinalPending = injectHeadMarkup(finalPending, markup);\n\t\t}\n\t\tif (finalPending.length > 0) {\n\t\t\tcontroller.enqueue(encoder.encode(finalPending));\n\t\t}\n\t\tcontroller.close();\n\t};\n\tconst consumeHeadChunk = async (\n\t\tcontroller: ReadableStreamDefaultController<Uint8Array>,\n\t\treader: ReadableStreamDefaultReader<string | Uint8Array>,\n\t\tpending: string,\n\t\tinjected: boolean\n\t) => {\n\t\tconst { done, value } = await readStreamChunk(reader);\n\t\tif (done || !value) {\n\t\t\treturn { done, injected, pending };\n\t\t}\n\n\t\tconst processed = processPending(\n\t\t\tcontroller,\n\t\t\tpending + streamChunkToString(value, decoder),\n\t\t\tinjected\n\t\t);\n\n\t\treturn {\n\t\t\tdone,\n\t\t\tinjected: processed.injected,\n\t\t\tpending: processed.pending\n\t\t};\n\t};\n\tconst runHeadInjectionLoop = async (\n\t\tcontroller: ReadableStreamDefaultController<Uint8Array>,\n\t\treader: ReadableStreamDefaultReader<string | Uint8Array>\n\t) => {\n\t\tconst consumeNextHeadChunk = async (\n\t\t\tinjected: boolean,\n\t\t\tpending: string\n\t\t) => {\n\t\t\tconst consumed = await consumeHeadChunk(\n\t\t\t\tcontroller,\n\t\t\t\treader,\n\t\t\t\tpending,\n\t\t\t\tinjected\n\t\t\t);\n\t\t\tconst nextState = updateInjectedState(consumed, injected, pending);\n\t\t\tif (nextState.done) {\n\t\t\t\treturn { injected, pending };\n\t\t\t}\n\n\t\t\treturn consumeNextHeadChunk(nextState.injected, nextState.pending);\n\t\t};\n\n\t\treturn consumeNextHeadChunk(false, '');\n\t};\n\n\treturn new ReadableStream<Uint8Array>({\n\t\tasync start(controller) {\n\t\t\tconst reader = stream.getReader();\n\n\t\t\ttry {\n\t\t\t\tconst { injected, pending } = await runHeadInjectionLoop(\n\t\t\t\t\tcontroller,\n\t\t\t\t\treader\n\t\t\t\t);\n\t\t\t\tfinishHeadInjectionStream(controller, pending, injected);\n\t\t\t} catch (error) {\n\t\t\t\tcontroller.error(error);\n\t\t\t}\n\t\t}\n\t});\n};\n\n// `held` is the buffer kept from `</head>` onward once `sawHead` is true;\n// `pending` is the not-yet-flushed text before `</head>`; `injected` flips on\n// once the scripts have been emitted and the rest can stream straight through.\ntype IslandMarkerStreamState = {\n\theld: string;\n\tinjected: boolean;\n\tpending: string;\n\tsawHead: boolean;\n};\n\n// Streaming injector for pages whose island presence isn't known up front.\n// The manifest/state/bootstrap scripts must land in `<head>` — React 19\n// tolerates hoistable elements (scripts/links/…) there during hydration, but\n// injecting them inline in the body (e.g. just before the first island marker)\n// makes them a sibling inside a host-React-rendered element, which breaks\n// hydration with a structural mismatch. `</head>` is streamed before any body\n// island, so we flush the head immediately, then hold from `</head>` onward\n// until we can confirm whether the body actually contains an island. If it\n// does, we inject right before the held `</head>`; if it doesn't, we flush the\n// held content untouched so island-free pages don't pull in the runtime.\nconst pipeStreamWithIslandMarkerDetection = (\n\tstream: ReadableStream<string | Uint8Array>,\n\tmarkup: string,\n\tonIslandsDetected: () => void\n) => {\n\tconst encoder = new TextEncoder();\n\tconst decoder = new TextDecoder();\n\tconst headLookbehind = CLOSING_HEAD_TAG.length - 1;\n\n\tconst enqueue = (\n\t\tcontroller: ReadableStreamDefaultController<Uint8Array>,\n\t\ttext: string\n\t) => {\n\t\tif (text.length > 0) {\n\t\t\tcontroller.enqueue(encoder.encode(text));\n\t\t}\n\t};\n\t// From `</head>` onward: hold until an island marker confirms the page has\n\t// islands, then inject the scripts just before the held `</head>`.\n\tconst processHolding = (\n\t\tcontroller: ReadableStreamDefaultController<Uint8Array>,\n\t\theld: string\n\t) => {\n\t\tif (!held.includes(ISLAND_MARKER)) {\n\t\t\treturn { held, injected: false, pending: '', sawHead: true };\n\t\t}\n\t\tonIslandsDetected();\n\t\tenqueue(controller, `${markup}${held}`);\n\n\t\treturn { held: '', injected: true, pending: '', sawHead: true };\n\t};\n\t// Before `</head>`: flush safe text and watch for the head close tag.\n\tconst processHead = (\n\t\tcontroller: ReadableStreamDefaultController<Uint8Array>,\n\t\tpending: string\n\t) => {\n\t\tconst headIndex = pending.indexOf(CLOSING_HEAD_TAG);\n\t\tif (headIndex < 0) {\n\t\t\treturn {\n\t\t\t\theld: '',\n\t\t\t\tinjected: false,\n\t\t\t\tpending: flushSafePendingText(\n\t\t\t\t\tcontroller,\n\t\t\t\t\tencoder,\n\t\t\t\t\tpending,\n\t\t\t\t\theadLookbehind\n\t\t\t\t),\n\t\t\t\tsawHead: false\n\t\t\t};\n\t\t}\n\t\tenqueue(controller, pending.slice(0, headIndex));\n\n\t\treturn processHolding(controller, pending.slice(headIndex));\n\t};\n\tconst processChunk = (\n\t\tcontroller: ReadableStreamDefaultController<Uint8Array>,\n\t\tstate: IslandMarkerStreamState,\n\t\tchunk: string\n\t) => {\n\t\tif (state.injected) {\n\t\t\tenqueue(controller, chunk);\n\n\t\t\treturn state;\n\t\t}\n\t\tif (!state.sawHead) {\n\t\t\treturn processHead(controller, state.pending + chunk);\n\t\t}\n\n\t\treturn processHolding(controller, state.held + chunk);\n\t};\n\tconst finishMarkerStream = (\n\t\tcontroller: ReadableStreamDefaultController<Uint8Array>,\n\t\tstate: IslandMarkerStreamState\n\t) => {\n\t\tconst tail = decoder.decode();\n\t\t// `injected` → tail only; `sawHead` (held, no islands) → flush as-is;\n\t\t// otherwise no `</head>` was ever seen, so pass the buffer through.\n\t\tconst remainder = state.injected\n\t\t\t? tail\n\t\t\t: (state.sawHead ? state.held : state.pending) + tail;\n\t\tenqueue(controller, remainder);\n\t\tcontroller.close();\n\t};\n\tconst runMarkerLoop = (\n\t\tcontroller: ReadableStreamDefaultController<Uint8Array>,\n\t\treader: ReadableStreamDefaultReader<string | Uint8Array>\n\t) => {\n\t\tconst consumeNext = async (state: IslandMarkerStreamState) => {\n\t\t\tconst { done, value } = await readStreamChunk(reader);\n\t\t\tif (done || !value) {\n\t\t\t\treturn state;\n\t\t\t}\n\n\t\t\treturn consumeNext(\n\t\t\t\tprocessChunk(\n\t\t\t\t\tcontroller,\n\t\t\t\t\tstate,\n\t\t\t\t\tstreamChunkToString(value, decoder)\n\t\t\t\t)\n\t\t\t);\n\t\t};\n\n\t\treturn consumeNext({\n\t\t\theld: '',\n\t\t\tinjected: false,\n\t\t\tpending: '',\n\t\t\tsawHead: false\n\t\t});\n\t};\n\n\treturn new ReadableStream<Uint8Array>({\n\t\tasync start(controller) {\n\t\t\tconst reader = stream.getReader();\n\n\t\t\ttry {\n\t\t\t\tconst finalState = await runMarkerLoop(controller, reader);\n\t\t\t\tfinishMarkerStream(controller, finalState);\n\t\t\t} catch (error) {\n\t\t\t\tcontroller.error(error);\n\t\t\t}\n\t\t}\n\t});\n};\n\nexport const htmlContainsIslands = (html: string) =>\n\thtml.includes(ISLAND_MARKER);\nexport const injectIslandPageContext = (\n\thtml: string,\n\toptions?: { hasIslands?: boolean }\n) => {\n\tconst manifest = globalThis.__absoluteManifest;\n\tconst hasIslands = options?.hasIslands ?? htmlContainsIslands(html);\n\tif (!manifest || !hasIslands) {\n\t\treturn html;\n\t}\n\n\tif (html.includes(MANIFEST_MARKER) || html.includes(ISLAND_STATE_MARKER)) {\n\t\treturn html;\n\t}\n\twarnIfBootstrapMissing(manifest);\n\n\treturn injectHeadMarkup(html, buildIslandsHeadMarkup(manifest, html));\n};\n\nexport const injectIslandPageContextStream = (\n\tstream: ReadableStream<string | Uint8Array>,\n\toptions?: { hasIslands?: boolean }\n) => {\n\tconst manifest = globalThis.__absoluteManifest;\n\tif (!manifest) return stream;\n\tconst markup = buildIslandsHeadMarkup(manifest);\n\n\tif (options?.hasIslands === true) {\n\t\twarnIfBootstrapMissing(manifest);\n\n\t\treturn pipeStreamWithHeadInjection(stream, markup);\n\t}\n\tif (options?.hasIslands === false) {\n\t\treturn stream;\n\t}\n\n\treturn pipeStreamWithIslandMarkerDetection(stream, markup, () =>\n\t\twarnIfBootstrapMissing(manifest)\n\t);\n};\n/** `buildDir` is the absolute build directory: manifest entries inside it\n * are server-side file paths and stay out of the page. */\nexport const setCurrentIslandManifest = (\n\tmanifest: Record<string, string>,\n\tbuildDir?: string\n) => {\n\tglobalThis.__absoluteManifest = manifest;\n\tReflect.set(\n\t\tglobalThis,\n\t\tMANIFEST_BUILD_DIR_KEY,\n\t\tbuildDir?.replaceAll('\\\\', '/')\n\t);\n};\n",
16
16
  "import { AsyncLocalStorage } from 'node:async_hooks';\nimport { Elysia } from 'elysia';\n\ntype RouteCallsiteStore = { callsite?: string };\ntype RouteCallsiteStorage = AsyncLocalStorage<RouteCallsiteStore>;\ntype RouteMethod = (this: unknown, ...args: unknown[]) => unknown;\n\nconst ROUTE_CALLSITE_STORAGE_KEY = Symbol.for(\n\t'absolutejs.devRouteRegistrationCallsiteStorage'\n);\nconst ROUTE_CALLSITE_PATCHED_KEY = Symbol.for(\n\t'absolutejs.devRouteRegistrationCallsitePatched'\n);\nconst NODE_ENV_KEY = 'NODE_ENV';\n\nconst ROUTE_METHOD_NAMES = [\n\t'all',\n\t'delete',\n\t'get',\n\t'head',\n\t'options',\n\t'patch',\n\t'post',\n\t'put'\n] as const;\n\n// Names of the framework page-request helpers. A GET route whose\n// handler source mentions any of these is treated as a page route by\n// the sitemap generator. Keep in sync with the page handlers exported\n// from each framework's pageHandler module.\nconst PAGE_HANDLER_NAMES = [\n\t'handleReactPageRequest',\n\t'handleSveltePageRequest',\n\t'handleVuePageRequest',\n\t'handleAngularPageRequest',\n\t'handleHTMLPageRequest',\n\t'handleHTMXPageRequest'\n] as const;\n\n/* In dev, the registration patch replaces each handler with a wrapper\n * whose `.toString()` no longer mentions the original page-helper name —\n * which used to break sitemap discovery. We instead peek at the raw\n * handler at registration time (where it still has its real source) and\n * record per-route info keyed by the resulting wrapper here. The\n * sitemap looks up `route.handler` to identify page routes and to read\n * any literal `sitemap: { ... }` block the user passed to a\n * `handle*PageRequest` call. In prod no wrapping happens, so the same\n * helpers fall through to inspecting the raw handler directly. */\ntype PageHandlerInfo = {\n\t/** The unwrapped handler function — its `.toString()` exposes the\n\t * literal `handle*PageRequest({ ... })` call source. */\n\toriginalHandler: (...args: unknown[]) => unknown;\n};\n\nconst pageHandlerWrappers = new WeakMap<\n\t(...args: unknown[]) => unknown,\n\tPageHandlerInfo\n>();\nconst isPageHandlerFunction = (\n\tvalue: unknown\n): value is (...args: unknown[]) => unknown => typeof value === 'function';\n\nconst handlerSourceMentionsPageHelper = (\n\thandler: (...args: unknown[]) => unknown\n) => {\n\tconst source = handler.toString();\n\n\treturn PAGE_HANDLER_NAMES.some((name) => source.includes(name));\n};\n\nexport const getOriginalPageHandlerSource = (handler: unknown) => {\n\tif (!isPageHandlerFunction(handler)) return undefined;\n\tconst info = pageHandlerWrappers.get(handler);\n\n\treturn (info?.originalHandler ?? handler).toString();\n};\nexport const isPageHandler = (handler: unknown) => {\n\tif (!isPageHandlerFunction(handler)) return false;\n\tif (pageHandlerWrappers.has(handler)) return true;\n\n\treturn handlerSourceMentionsPageHelper(handler);\n};\n\nconst isObjectRecord = (value: unknown): value is Record<string, unknown> =>\n\tBoolean(value) && typeof value === 'object';\n\nconst isAsyncLocalStorage = (value: unknown): value is RouteCallsiteStorage =>\n\tisObjectRecord(value) &&\n\t'getStore' in value &&\n\ttypeof value.getStore === 'function' &&\n\t'run' in value &&\n\ttypeof value.run === 'function';\n\nconst isRouteMethod = (value: unknown): value is RouteMethod =>\n\ttypeof value === 'function';\n\nconst getRouteCallsiteStorage = () => {\n\tconst value = Reflect.get(globalThis, ROUTE_CALLSITE_STORAGE_KEY);\n\tif (value === null || typeof value === 'undefined') {\n\t\treturn undefined;\n\t}\n\n\treturn isAsyncLocalStorage(value) ? value : undefined;\n};\n\nconst ensureRouteCallsiteStorage = () => {\n\tconst existing = getRouteCallsiteStorage();\n\tif (existing) {\n\t\treturn existing;\n\t}\n\n\tconst storage = new AsyncLocalStorage<RouteCallsiteStore>();\n\tReflect.set(globalThis, ROUTE_CALLSITE_STORAGE_KEY, storage);\n\n\treturn storage;\n};\n\nconst normalizeCallsitePath = (value: string) =>\n\tvalue\n\t\t.replace(`${process.cwd()}/`, '')\n\t\t.replace(process.cwd(), '')\n\t\t.replace(/^\\.\\/+/, '');\n\nconst shouldIgnoreRouteCallsiteFrame = (frame: string) =>\n\tframe.includes('/node_modules/') ||\n\tframe.includes('/dist/') ||\n\tframe.includes('/src/core/devRouteRegistrationCallsite.');\n\nconst getRouteCallsiteLocation = (frame: string) =>\n\tframe.match(/\\((\\/[^)]+:\\d+:\\d+)\\)$/)?.[1] ??\n\tframe.match(/at (\\/[^ ]+:\\d+:\\d+)$/)?.[1];\n\nconst extractRouteRegistrationCallsite = (stack: string) => {\n\tconst location = stack\n\t\t.split('\\n')\n\t\t.slice(1)\n\t\t.map((line) => line.trim())\n\t\t.filter((frame) => !shouldIgnoreRouteCallsiteFrame(frame))\n\t\t.map((frame) => getRouteCallsiteLocation(frame))\n\t\t.find((frameLocation) => frameLocation !== undefined);\n\n\treturn location ? normalizeCallsitePath(location) : undefined;\n};\n\nconst captureRouteRegistrationCallsite = () => {\n\tconst { stack } = new Error();\n\tif (!stack) {\n\t\treturn undefined;\n\t}\n\n\treturn extractRouteRegistrationCallsite(stack);\n};\n\nconst wrapRouteHandlerWithCallsite = (handler: unknown, callsite?: string) => {\n\tif (typeof handler !== 'function' || !callsite) {\n\t\treturn handler;\n\t}\n\n\tconst storage = ensureRouteCallsiteStorage();\n\tconst routeHandler = handler;\n\n\treturn function wrappedRouteHandler(this: unknown, ...args: unknown[]) {\n\t\treturn storage.run({ callsite }, () =>\n\t\t\tReflect.apply(routeHandler, this, args)\n\t\t);\n\t};\n};\n\nconst createPatchedRouteMethod = (\n\toriginalMethod: RouteMethod,\n\tmethodName: string\n) =>\n\tfunction patchedRouteMethod(\n\t\tthis: unknown,\n\t\tpath: unknown,\n\t\t...routeArguments: unknown[]\n\t) {\n\t\t// Elysia 2 route overloads are `(path, handler)` and\n\t\t// `(path, hooks, handler)`. The handler is therefore the second route\n\t\t// argument only when a hooks argument is present.\n\t\tconst handlerIndex = routeArguments.length >= 2 ? 1 : 0;\n\t\tconst handler = routeArguments[handlerIndex];\n\t\tconst callsite = captureRouteRegistrationCallsite();\n\t\tconst wrapped = wrapRouteHandlerWithCallsite(handler, callsite);\n\n\t\t/* Record page-route registrations now, while the raw handler\n\t\t * still exposes its real source. After this point the wrapper\n\t\t * replaces it and `.toString()` no longer mentions the\n\t\t * `handle*PageRequest` helper, so the sitemap can't discover\n\t\t * the route by inspection. The wrapper itself goes into the\n\t\t * `pageHandlerWrappers` map keyed by reference, with the\n\t\t * original handler kept alive for later `.toString()` reads\n\t\t * (used to extract literal `sitemap: { ... }` metadata). */\n\t\tif (\n\t\t\tmethodName === 'get' &&\n\t\t\tisPageHandlerFunction(handler) &&\n\t\t\tisPageHandlerFunction(wrapped) &&\n\t\t\thandlerSourceMentionsPageHelper(handler)\n\t\t) {\n\t\t\tpageHandlerWrappers.set(wrapped, {\n\t\t\t\toriginalHandler: handler\n\t\t\t});\n\t\t}\n\n\t\trouteArguments[handlerIndex] = wrapped;\n\n\t\treturn Reflect.apply(originalMethod, this, [path, ...routeArguments]);\n\t};\n\nexport const getCurrentRouteRegistrationCallsite = () =>\n\tgetRouteCallsiteStorage()?.getStore()?.callsite;\nexport const patchElysiaRouteRegistrationCallsites = () => {\n\tif (process.env[NODE_ENV_KEY] === 'production') {\n\t\treturn;\n\t}\n\n\tif (Reflect.get(globalThis, ROUTE_CALLSITE_PATCHED_KEY) === true) {\n\t\treturn;\n\t}\n\n\tconst { prototype } = Elysia;\n\tROUTE_METHOD_NAMES.forEach((methodName) => {\n\t\tconst originalMethod = Reflect.get(prototype, methodName);\n\t\tif (!isRouteMethod(originalMethod)) return;\n\t\tReflect.set(\n\t\t\tprototype,\n\t\t\tmethodName,\n\t\t\tcreatePatchedRouteMethod(originalMethod, methodName)\n\t\t);\n\t});\n\n\tReflect.set(globalThis, ROUTE_CALLSITE_PATCHED_KEY, true);\n};\n",
17
17
  "import type { AbsoluteMobileCompatibilityPage } from './releaseArtifact';\n\nexport type AbsoluteMobileProducerContext = {\n\tpage: AbsoluteMobileCompatibilityPage;\n\treleaseId: string;\n};\n\nexport const ABSOLUTE_MOBILE_PRODUCER_STORAGE_KEY = Symbol.for(\n\t'absolutejs.mobileProducerAsyncLocalStorage'\n);\n\nconst frameworks = new Set<string>([\n\t'angular',\n\t'ember',\n\t'html',\n\t'htmx',\n\t'react',\n\t'svelte',\n\t'vue'\n]);\n\nconst isCompatibilityPage = (\n\tvalue: unknown\n): value is AbsoluteMobileCompatibilityPage =>\n\ttypeof value === 'object' &&\n\tvalue !== null &&\n\t'bundleHash' in value &&\n\ttypeof value.bundleHash === 'string' &&\n\t'contract' in value &&\n\ttypeof value.contract === 'string' &&\n\t'framework' in value &&\n\ttypeof value.framework === 'string' &&\n\tframeworks.has(value.framework) &&\n\t'pageId' in value &&\n\ttypeof value.pageId === 'string' &&\n\t'propsSchemaHash' in value &&\n\ttypeof value.propsSchemaHash === 'string';\n\nexport const getCurrentAbsoluteMobileProducerContext = () => {\n\tconst value: unknown = Reflect.get(\n\t\tglobalThis,\n\t\tABSOLUTE_MOBILE_PRODUCER_STORAGE_KEY\n\t);\n\tif (\n\t\ttypeof value !== 'object' ||\n\t\tvalue === null ||\n\t\t!('getStore' in value) ||\n\t\ttypeof value.getStore !== 'function'\n\t) {\n\t\treturn undefined;\n\t}\n\tconst context: unknown = value.getStore();\n\tif (\n\t\ttypeof context !== 'object' ||\n\t\tcontext === null ||\n\t\t!('page' in context) ||\n\t\t!isCompatibilityPage(context.page) ||\n\t\t!('releaseId' in context) ||\n\t\ttypeof context.releaseId !== 'string'\n\t) {\n\t\treturn undefined;\n\t}\n\n\treturn { page: context.page, releaseId: context.releaseId };\n};\n",
18
18
  "import { isDevelopmentRuntime } from '../utils/runtimeMode';\nimport {\n\tgetCurrentAbsoluteMobileProducerContext,\n\ttype AbsoluteMobileProducerContext\n} from './producerContextState';\n\nexport const ABSOLUTE_MOBILE_PAGE_MEDIA_TYPE =\n\t'application/vnd.absolute.page+json';\nexport const ABSOLUTE_MOBILE_PAGE_PROTOCOL_VERSION = 1 as const;\nexport const ABSOLUTE_NATIVE_ROUTE_DATA_MEDIA_TYPE =\n\t'application/vnd.absolute.native-route+json';\n/** Web route data: the props + asset list a browser `<Link>` prefetches\n * alongside the document so the click that follows has the page's\n * modules, CSS and data warm. Unlike the mobile media types it needs no\n * client identity headers, is served in every environment, and is\n * cacheable (`ETag` + `must-revalidate`) so a prefetch and the request\n * that follows it can 304. */\nexport const ABSOLUTE_ROUTE_DATA_MEDIA_TYPE =\n\t'application/vnd.absolute.route+json';\nexport const ABSOLUTE_ROUTE_DATA_PROTOCOL_VERSION = 1 as const;\nconst BAD_REQUEST_STATUS = 400;\nconst METHOD_NOT_ALLOWED_STATUS = 405;\nconst NOT_MODIFIED_STATUS = 304;\nconst OK_STATUS = 200;\nconst SERVER_ERROR_STATUS = 500;\nconst UPGRADE_REQUIRED_STATUS = 426;\n\nexport const MOBILE_PAGE_REQUEST_HEADERS = {\n\tappBuild: 'x-absolute-mobile-app-build',\n\tpageBundle: 'x-absolute-mobile-page-bundle',\n\tpageContracts: 'x-absolute-mobile-page-contracts',\n\tpageId: 'x-absolute-mobile-page-id',\n\tprotocol: 'x-absolute-mobile-protocol',\n\truntime: 'x-absolute-mobile-runtime'\n} as const;\n\nexport type AbsoluteMobilePageFramework =\n\t'angular' | 'ember' | 'html' | 'htmx' | 'react' | 'svelte' | 'vue';\n\nexport type AbsoluteMobilePageClient = {\n\tappBuild: string;\n\tpageBundle: string;\n\tpageContracts: string[];\n\tpageId: string;\n\tprotocol: number;\n\truntime: string;\n};\n\nexport type AbsoluteMobilePageRepresentation<Props> = {\n\t/** Stable data contract understood by an embedded page bundle. */\n\tcontract: string;\n\t/**\n\t * Adapts the current route props to an older compatible contract. The\n\t * current representation normally uses the identity function.\n\t */\n\tmapProps: (props: Props) => Record<string, unknown>;\n};\n\nexport type AbsoluteMobilePageCompatibility<Props> = {\n\tframework: AbsoluteMobilePageFramework;\n\tpageId: string;\n\t/** Newest representation first, followed by retained compatibility forms. */\n\trepresentations: readonly AbsoluteMobilePageRepresentation<Props>[];\n\t/** Current runtime plus every retained compatible runtime generation. */\n\truntimes: readonly string[];\n};\n\nexport type AbsoluteMobilePageResult = {\n\tkind: 'page';\n\tcontract: string;\n\tframework: AbsoluteMobilePageFramework;\n\tpageId: string;\n\tprops: Record<string, unknown>;\n\tstatus: number;\n};\n\nexport type AbsoluteMobileUpgradeReason =\n\t'app-release' | 'page-contract' | 'protocol' | 'runtime';\n\nexport type AbsoluteMobileUpgradeRequiredResult = {\n\tkind: 'upgrade-required';\n\treason: AbsoluteMobileUpgradeReason;\n\tpageId: string;\n\tsupportedContracts?: string[];\n\tsupportedRuntimes?: string[];\n};\n\nexport type AbsoluteMobileInvalidRequestResult = {\n\tkind: 'invalid-request';\n\tmessage: string;\n};\n\nexport type AbsoluteMobilePageErrorResult = {\n\tcode: 'representation-failed';\n\tkind: 'error';\n\tpageId: string;\n\tstatus: typeof SERVER_ERROR_STATUS;\n};\n\nexport type AbsoluteMobilePageEnvelope = {\n\tprotocol: typeof ABSOLUTE_MOBILE_PAGE_PROTOCOL_VERSION;\n\tresponse:\n\t\t| AbsoluteMobilePageErrorResult\n\t\t| AbsoluteMobileInvalidRequestResult\n\t\t| AbsoluteMobilePageResult\n\t\t| AbsoluteMobileUpgradeRequiredResult;\n};\n\n/** Hashed asset URLs a client can warm before navigating to the page. */\nexport type AbsoluteRouteDataAssets = {\n\t/** The page's client entry (hydration index). Absent for static pages. */\n\tindex?: string;\n\t/** A separate client module besides the index, when the page has one. */\n\tclient?: string;\n\t/** Stylesheets the page's `<head>` links. */\n\tcss: string[];\n};\n\nexport type AbsoluteRouteDataHead = {\n\ttitle?: string;\n};\n\n/** What a page handler knows about its assets / head when it answers a\n * route-data request. Everything is optional: a handler without a\n * `<head>` (React) still serves props + index. */\nexport type AbsoluteRouteDataInput = {\n\tassets?: {\n\t\tindex?: string;\n\t\tclient?: string;\n\t\tcss?: readonly string[];\n\t};\n\thead?: AbsoluteRouteDataHead;\n};\n\nexport type AbsoluteRouteDataEnvelope = {\n\tprotocol: typeof ABSOLUTE_ROUTE_DATA_PROTOCOL_VERSION;\n\tkind: 'route';\n\tpageId: string;\n\tframework: AbsoluteMobilePageFramework;\n\tprops: Record<string, unknown>;\n\tstatus: number;\n\tassets: AbsoluteRouteDataAssets;\n\thead?: AbsoluteRouteDataHead;\n};\n\nexport type AbsoluteRouteDataErrorEnvelope = {\n\tprotocol: typeof ABSOLUTE_ROUTE_DATA_PROTOCOL_VERSION;\n\tkind: 'error';\n\tcode: 'representation-failed';\n\tpageId: string;\n\tstatus: typeof SERVER_ERROR_STATUS;\n};\n\ntype ParsedMobilePageRequest =\n\t| { kind: 'not-mobile' }\n\t| { kind: 'invalid'; message: string }\n\t| { kind: 'mobile'; client: AbsoluteMobilePageClient };\n\ntype FinalizeAbsoluteMobilePageInput<Props> = {\n\tcompatibility: AbsoluteMobilePageCompatibility<Props>;\n\tprops: Props;\n\trequest: Request | undefined;\n\tstatus?: number;\n\t/** Assets / head for the web route-data representation. A thunk is\n\t * only invoked for a route-data request, so handlers can defer the\n\t * `<head>` scan behind it. */\n\troute?: AbsoluteRouteDataInput | (() => AbsoluteRouteDataInput);\n};\n\nconst parseMediaType = (value: string) =>\n\tvalue.split(';', 1)[0]?.trim().toLowerCase();\n\nexport const acceptsAbsoluteMobilePage = (request: Request | undefined) => {\n\tif (!request) return false;\n\n\treturn (request.headers.get('accept') ?? '')\n\t\t.split(',')\n\t\t.some(\n\t\t\t(value) => parseMediaType(value) === ABSOLUTE_MOBILE_PAGE_MEDIA_TYPE\n\t\t);\n};\n\nexport const acceptsAbsoluteNativeRouteData = (\n\trequest: Request | undefined\n) => {\n\tif (!request) return false;\n\n\treturn (request.headers.get('accept') ?? '')\n\t\t.split(',')\n\t\t.some(\n\t\t\t(value) =>\n\t\t\t\tparseMediaType(value) === ABSOLUTE_NATIVE_ROUTE_DATA_MEDIA_TYPE\n\t\t);\n};\n\nexport const acceptsAbsoluteRouteData = (request: Request | undefined) => {\n\tif (!request) return false;\n\n\treturn (request.headers.get('accept') ?? '')\n\t\t.split(',')\n\t\t.some(\n\t\t\t(value) => parseMediaType(value) === ABSOLUTE_ROUTE_DATA_MEDIA_TYPE\n\t\t);\n};\n\nconst readRequiredHeader = (request: Request, name: string) => {\n\tconst value = request.headers.get(name)?.trim();\n\n\treturn value ? value : undefined;\n};\n\nexport const parseAbsoluteMobilePageRequest = (\n\trequest: Request | undefined\n): ParsedMobilePageRequest => {\n\tif (!request || !acceptsAbsoluteMobilePage(request)) {\n\t\treturn { kind: 'not-mobile' };\n\t}\n\n\tconst protocolValue = readRequiredHeader(\n\t\trequest,\n\t\tMOBILE_PAGE_REQUEST_HEADERS.protocol\n\t);\n\tconst runtime = readRequiredHeader(\n\t\trequest,\n\t\tMOBILE_PAGE_REQUEST_HEADERS.runtime\n\t);\n\tconst appBuild = readRequiredHeader(\n\t\trequest,\n\t\tMOBILE_PAGE_REQUEST_HEADERS.appBuild\n\t);\n\tconst pageBundle = readRequiredHeader(\n\t\trequest,\n\t\tMOBILE_PAGE_REQUEST_HEADERS.pageBundle\n\t);\n\tconst pageContractsValue = readRequiredHeader(\n\t\trequest,\n\t\tMOBILE_PAGE_REQUEST_HEADERS.pageContracts\n\t);\n\tconst pageId = readRequiredHeader(\n\t\trequest,\n\t\tMOBILE_PAGE_REQUEST_HEADERS.pageId\n\t);\n\n\tif (!protocolValue || !/^\\d+$/.test(protocolValue)) {\n\t\treturn {\n\t\t\tkind: 'invalid',\n\t\t\tmessage: `Missing or invalid ${MOBILE_PAGE_REQUEST_HEADERS.protocol} header.`\n\t\t};\n\t}\n\tif (!runtime) {\n\t\treturn {\n\t\t\tkind: 'invalid',\n\t\t\tmessage: `Missing ${MOBILE_PAGE_REQUEST_HEADERS.runtime} header.`\n\t\t};\n\t}\n\tif (!appBuild) {\n\t\treturn {\n\t\t\tkind: 'invalid',\n\t\t\tmessage: `Missing ${MOBILE_PAGE_REQUEST_HEADERS.appBuild} header.`\n\t\t};\n\t}\n\tif (!pageBundle) {\n\t\treturn {\n\t\t\tkind: 'invalid',\n\t\t\tmessage: `Missing ${MOBILE_PAGE_REQUEST_HEADERS.pageBundle} header.`\n\t\t};\n\t}\n\tif (!pageContractsValue) {\n\t\treturn {\n\t\t\tkind: 'invalid',\n\t\t\tmessage: `Missing ${MOBILE_PAGE_REQUEST_HEADERS.pageContracts} header.`\n\t\t};\n\t}\n\tif (!pageId) {\n\t\treturn {\n\t\t\tkind: 'invalid',\n\t\t\tmessage: `Missing ${MOBILE_PAGE_REQUEST_HEADERS.pageId} header.`\n\t\t};\n\t}\n\n\tconst pageContracts = [\n\t\t...new Set(\n\t\t\tpageContractsValue\n\t\t\t\t.split(',')\n\t\t\t\t.map((value) => value.trim())\n\t\t\t\t.filter(Boolean)\n\t\t)\n\t];\n\tif (pageContracts.length === 0) {\n\t\treturn {\n\t\t\tkind: 'invalid',\n\t\t\tmessage: `${MOBILE_PAGE_REQUEST_HEADERS.pageContracts} must contain at least one contract.`\n\t\t};\n\t}\n\n\treturn {\n\t\tclient: {\n\t\t\tappBuild,\n\t\t\tpageBundle,\n\t\t\tpageContracts,\n\t\t\tpageId,\n\t\t\tprotocol: Number(protocolValue),\n\t\t\truntime\n\t\t},\n\t\tkind: 'mobile'\n\t};\n};\n\nconst responseHeaders = () => {\n\tconst headers = new Headers({\n\t\t'cache-control': 'no-store',\n\t\t'content-type': `${ABSOLUTE_MOBILE_PAGE_MEDIA_TYPE}; version=${ABSOLUTE_MOBILE_PAGE_PROTOCOL_VERSION}`\n\t});\n\theaderVaryValues.forEach((value) => headers.append('vary', value));\n\n\treturn headers;\n};\n\nconst headerVaryValues = [\n\t'Accept',\n\tMOBILE_PAGE_REQUEST_HEADERS.protocol,\n\tMOBILE_PAGE_REQUEST_HEADERS.runtime,\n\tMOBILE_PAGE_REQUEST_HEADERS.appBuild,\n\tMOBILE_PAGE_REQUEST_HEADERS.pageBundle,\n\tMOBILE_PAGE_REQUEST_HEADERS.pageContracts,\n\tMOBILE_PAGE_REQUEST_HEADERS.pageId\n];\n\nconst envelopeResponse = (\n\tresponse: AbsoluteMobilePageEnvelope['response'],\n\tstatus: number\n) =>\n\tnew Response(\n\t\tJSON.stringify({\n\t\t\tprotocol: ABSOLUTE_MOBILE_PAGE_PROTOCOL_VERSION,\n\t\t\tresponse\n\t\t} satisfies AbsoluteMobilePageEnvelope),\n\t\t{ headers: responseHeaders(), status }\n\t);\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n\ttypeof value === 'object' && value !== null && !Array.isArray(value);\n\nconst normalizeJsonValue = (value: Record<string, unknown>) => {\n\tconst serialized = JSON.stringify(value);\n\tif (serialized === undefined) {\n\t\tthrow new TypeError('Mobile page props must be JSON-serializable.');\n\t}\n\n\tconst parsed: unknown = JSON.parse(serialized);\n\tif (!isRecord(parsed)) {\n\t\tthrow new TypeError('Mobile page props must serialize to an object.');\n\t}\n\n\treturn parsed;\n};\n\nconst finalizeArchivedMobilePage = <Props>(\n\tcontext: AbsoluteMobileProducerContext,\n\tinput: FinalizeAbsoluteMobilePageInput<Props>\n) => {\n\tconst { page } = context;\n\tif (\n\t\tpage.pageId !== input.compatibility.pageId ||\n\t\tpage.framework !== input.compatibility.framework\n\t) {\n\t\treturn envelopeResponse(\n\t\t\t{\n\t\t\t\tkind: 'invalid-request',\n\t\t\t\tmessage:\n\t\t\t\t\t'Archived producer page identity does not match its release artifact.'\n\t\t\t},\n\t\t\tBAD_REQUEST_STATUS\n\t\t);\n\t}\n\n\ttry {\n\t\tconst [currentRepresentation] = input.compatibility.representations;\n\t\tif (!currentRepresentation) {\n\t\t\tthrow new TypeError('Mobile page has no current representation.');\n\t\t}\n\n\t\treturn envelopeResponse(\n\t\t\t{\n\t\t\t\tcontract: page.contract,\n\t\t\t\tframework: page.framework,\n\t\t\t\tkind: 'page',\n\t\t\t\tpageId: page.pageId,\n\t\t\t\tprops: normalizeJsonValue(\n\t\t\t\t\tcurrentRepresentation.mapProps(input.props)\n\t\t\t\t),\n\t\t\t\tstatus: input.status ?? OK_STATUS\n\t\t\t},\n\t\t\tinput.status ?? OK_STATUS\n\t\t);\n\t} catch (error) {\n\t\tconsole.error(\n\t\t\t`[Mobile] Archived producer ${context.releaseId} failed for ${page.pageId}:`,\n\t\t\terror\n\t\t);\n\n\t\treturn createAbsoluteMobilePageErrorResponse(page.pageId);\n\t}\n};\n\nconst finalizeAbsoluteNativeRouteDevelopmentPage = <Props>(\n\tinput: FinalizeAbsoluteMobilePageInput<Props>\n) => {\n\tif (!isDevelopmentRuntime()) {\n\t\treturn createAbsoluteMobileInvalidRequestResponse(\n\t\t\t'The native-route development representation is disabled outside development.'\n\t\t);\n\t}\n\tif (input.request?.method !== 'GET') {\n\t\treturn createAbsoluteMobileInvalidRequestResponse(\n\t\t\t'Native-route data requests must use GET.'\n\t\t);\n\t}\n\tif (\n\t\tinput.request.headers.get(MOBILE_PAGE_REQUEST_HEADERS.protocol) !==\n\t\tString(ABSOLUTE_MOBILE_PAGE_PROTOCOL_VERSION)\n\t) {\n\t\treturn createAbsoluteMobileInvalidRequestResponse(\n\t\t\t`Native-route data requires protocol ${ABSOLUTE_MOBILE_PAGE_PROTOCOL_VERSION}.`\n\t\t);\n\t}\n\tconst [representation] = input.compatibility.representations;\n\tif (!representation) {\n\t\treturn createAbsoluteMobilePageErrorResponse(\n\t\t\tinput.compatibility.pageId\n\t\t);\n\t}\n\n\ttry {\n\t\treturn envelopeResponse(\n\t\t\t{\n\t\t\t\tcontract: representation.contract,\n\t\t\t\tframework: input.compatibility.framework,\n\t\t\t\tkind: 'page',\n\t\t\t\tpageId: input.compatibility.pageId,\n\t\t\t\tprops: normalizeJsonValue(representation.mapProps(input.props)),\n\t\t\t\tstatus: input.status ?? OK_STATUS\n\t\t\t},\n\t\t\tinput.status ?? OK_STATUS\n\t\t);\n\t} catch (error) {\n\t\tconsole.error(\n\t\t\t`[Mobile] Failed to produce development native route ${input.compatibility.pageId}:`,\n\t\t\terror\n\t\t);\n\n\t\treturn createAbsoluteMobilePageErrorResponse(\n\t\t\tinput.compatibility.pageId\n\t\t);\n\t}\n};\n\n/* ------------------------------------------------------------------\n * Web route data\n * ---------------------------------------------------------------- */\n\nconst FNV_OFFSET_BASIS = 0x811c9dc5;\nconst FNV_PRIME = 0x01000193;\nconst FNV_SECOND_SEED = 0x5bd1e995;\nconst HEX_RADIX = 16;\nconst HEX_WORD_LENGTH = 8;\n\nconst fnv1a32 = (value: string, seed: number) => {\n\tlet hash = seed >>> 0;\n\tfor (let index = 0; index < value.length; index += 1) {\n\t\thash ^= value.charCodeAt(index);\n\t\thash = Math.imul(hash, FNV_PRIME) >>> 0;\n\t}\n\n\treturn hash;\n};\n\nconst hexWord = (value: number) =>\n\tvalue.toString(HEX_RADIX).padStart(HEX_WORD_LENGTH, '0');\n\n/** Weak content-hash ETag for a route-data body. Two seeded FNV-1a passes\n * keep this dependency-free (this module ships in the mobile browser\n * bundle, so `node:crypto` is off the table) while still telling any two\n * realistic bodies apart. */\nconst routeDataEtag = (body: string) =>\n\t`W/\"${hexWord(fnv1a32(body, FNV_OFFSET_BASIS))}${hexWord(\n\t\tfnv1a32(body, FNV_OFFSET_BASIS ^ FNV_SECOND_SEED)\n\t)}\"`;\n\nconst ROUTE_DATA_CACHE_CONTROL = 'private, max-age=0, must-revalidate';\n\nconst routeDataHeaders = (etag?: string) => {\n\tconst headers = new Headers({\n\t\t'cache-control': etag ? ROUTE_DATA_CACHE_CONTROL : 'no-store',\n\t\t'content-type': `${ABSOLUTE_ROUTE_DATA_MEDIA_TYPE}; version=${ABSOLUTE_ROUTE_DATA_PROTOCOL_VERSION}`,\n\t\tvary: 'Accept'\n\t});\n\tif (etag) headers.set('etag', etag);\n\n\treturn headers;\n};\n\nconst matchesIfNoneMatch = (request: Request, etag: string) => {\n\tconst header = request.headers.get('if-none-match');\n\tif (!header) return false;\n\n\treturn header\n\t\t.split(',')\n\t\t.map((value) => value.trim())\n\t\t.some((value) => value === '*' || value === etag);\n};\n\nconst resolveRouteDataInput = <Props>(\n\tinput: FinalizeAbsoluteMobilePageInput<Props>\n) => (typeof input.route === 'function' ? input.route() : (input.route ?? {}));\n\nconst buildRouteDataAssets = (\n\tassets: AbsoluteRouteDataInput['assets']\n): AbsoluteRouteDataAssets => ({\n\t...(assets?.index ? { index: assets.index } : {}),\n\t...(assets?.client ? { client: assets.client } : {}),\n\tcss: [...new Set((assets?.css ?? []).filter((href) => href.length > 0))]\n});\n\nconst buildRouteDataHead = (head: AbsoluteRouteDataHead | undefined) =>\n\thead?.title ? { title: head.title } : undefined;\n\nconst createRouteDataErrorResponse = (pageId: string) =>\n\tnew Response(\n\t\tJSON.stringify({\n\t\t\tcode: 'representation-failed',\n\t\t\tkind: 'error',\n\t\t\tpageId,\n\t\t\tprotocol: ABSOLUTE_ROUTE_DATA_PROTOCOL_VERSION,\n\t\t\tstatus: SERVER_ERROR_STATUS\n\t\t} satisfies AbsoluteRouteDataErrorEnvelope),\n\t\t{ headers: routeDataHeaders(), status: SERVER_ERROR_STATUS }\n\t);\n\nexport const createAbsoluteMobileInvalidRequestResponse = (message: string) =>\n\tenvelopeResponse({ kind: 'invalid-request', message }, BAD_REQUEST_STATUS);\n\nexport const createAbsoluteMobilePageErrorResponse = (pageId: string) =>\n\tenvelopeResponse(\n\t\t{\n\t\t\tcode: 'representation-failed',\n\t\t\tkind: 'error',\n\t\t\tpageId,\n\t\t\tstatus: SERVER_ERROR_STATUS\n\t\t},\n\t\tSERVER_ERROR_STATUS\n\t);\n\nexport const createAbsoluteMobileUpgradeResponse = (\n\tresult: AbsoluteMobileUpgradeRequiredResult\n) => envelopeResponse(result, UPGRADE_REQUIRED_STATUS);\n\n/**\n * Serve the web route-data representation of a page when the request\n * asks for `application/vnd.absolute.route+json`; `undefined` otherwise.\n *\n * GET only, negotiated on `Accept` alone (no client identity headers),\n * available in every environment. The body is the page's props plus the\n * asset URLs a client needs to warm before navigating, and it carries a\n * content-hash `ETag` with `private, max-age=0, must-revalidate` so the\n * browser keeps a prefetched copy and revalidates it with a 304.\n */\nexport const finalizeAbsoluteRouteData = <Props>(\n\tinput: FinalizeAbsoluteMobilePageInput<Props>\n) => {\n\tif (!acceptsAbsoluteRouteData(input.request)) return undefined;\n\tconst { request } = input;\n\tif (!request || request.method !== 'GET') {\n\t\treturn new Response(null, {\n\t\t\theaders: { allow: 'GET', vary: 'Accept' },\n\t\t\tstatus: METHOD_NOT_ALLOWED_STATUS\n\t\t});\n\t}\n\tconst { pageId } = input.compatibility;\n\tconst [representation] = input.compatibility.representations;\n\tif (!representation) return createRouteDataErrorResponse(pageId);\n\n\tlet body: string;\n\tconst status = input.status ?? OK_STATUS;\n\ttry {\n\t\tconst route = resolveRouteDataInput(input);\n\t\tconst head = buildRouteDataHead(route.head);\n\t\tconst envelope: AbsoluteRouteDataEnvelope = {\n\t\t\tassets: buildRouteDataAssets(route.assets),\n\t\t\tframework: input.compatibility.framework,\n\t\t\t...(head ? { head } : {}),\n\t\t\tkind: 'route',\n\t\t\tpageId,\n\t\t\tprops: normalizeJsonValue(representation.mapProps(input.props)),\n\t\t\tprotocol: ABSOLUTE_ROUTE_DATA_PROTOCOL_VERSION,\n\t\t\tstatus\n\t\t};\n\t\tbody = JSON.stringify(envelope);\n\t} catch (error) {\n\t\tconsole.error(\n\t\t\t`[Route] Failed to produce route data for ${pageId}:`,\n\t\t\terror\n\t\t);\n\n\t\treturn createRouteDataErrorResponse(pageId);\n\t}\n\n\tconst etag = routeDataEtag(body);\n\tif (matchesIfNoneMatch(request, etag)) {\n\t\treturn new Response(null, {\n\t\t\theaders: routeDataHeaders(etag),\n\t\t\tstatus: NOT_MODIFIED_STATUS\n\t\t});\n\t}\n\n\treturn new Response(body, { headers: routeDataHeaders(etag), status });\n};\n\nconst ABSOLUTE_MEDIA_TYPE_MARKER = /vnd\\.absolute/i;\n\n/** Every AbsoluteJS page media type carries the `vnd.absolute` tree, so an\n * Accept header without it is an ordinary browser request. Checking the raw\n * header first keeps the common SSR path free of Accept parsing and of any\n * allocation, and it never reads `compatibility`, so callers can defer that\n * work behind a getter. */\nconst mentionsAbsoluteMediaType = (request: Request | undefined) => {\n\tconst accept = request?.headers.get('accept');\n\n\treturn (\n\t\ttypeof accept === 'string' && ABSOLUTE_MEDIA_TYPE_MARKER.test(accept)\n\t);\n};\n\nexport const finalizeAbsoluteMobilePage = <Props>(\n\tinput: FinalizeAbsoluteMobilePageInput<Props>\n) => {\n\tif (!mentionsAbsoluteMediaType(input.request)) return undefined;\n\tif (acceptsAbsoluteNativeRouteData(input.request)) {\n\t\treturn finalizeAbsoluteNativeRouteDevelopmentPage(input);\n\t}\n\tconst routeData = finalizeAbsoluteRouteData(input);\n\tif (routeData) return routeData;\n\tconst parsed = parseAbsoluteMobilePageRequest(input.request);\n\tif (parsed.kind === 'not-mobile') return undefined;\n\tif (parsed.kind === 'invalid') {\n\t\treturn envelopeResponse(\n\t\t\t{ kind: 'invalid-request', message: parsed.message },\n\t\t\tBAD_REQUEST_STATUS\n\t\t);\n\t}\n\n\tconst { client } = parsed;\n\tif (client.pageId !== input.compatibility.pageId) {\n\t\treturn envelopeResponse(\n\t\t\t{\n\t\t\t\tkind: 'invalid-request',\n\t\t\t\tmessage: `Requested mobile page ${client.pageId} does not match ${input.compatibility.pageId}.`\n\t\t\t},\n\t\t\tBAD_REQUEST_STATUS\n\t\t);\n\t}\n\tconst producerContext = getCurrentAbsoluteMobileProducerContext();\n\tif (producerContext)\n\t\treturn finalizeArchivedMobilePage(producerContext, input);\n\tif (client.protocol !== ABSOLUTE_MOBILE_PAGE_PROTOCOL_VERSION) {\n\t\treturn envelopeResponse(\n\t\t\t{\n\t\t\t\tkind: 'upgrade-required',\n\t\t\t\tpageId: input.compatibility.pageId,\n\t\t\t\treason: 'protocol'\n\t\t\t},\n\t\t\tUPGRADE_REQUIRED_STATUS\n\t\t);\n\t}\n\tif (!input.compatibility.runtimes.includes(client.runtime)) {\n\t\treturn envelopeResponse(\n\t\t\t{\n\t\t\t\tkind: 'upgrade-required',\n\t\t\t\tpageId: input.compatibility.pageId,\n\t\t\t\treason: 'runtime',\n\t\t\t\tsupportedRuntimes: [...input.compatibility.runtimes]\n\t\t\t},\n\t\t\tUPGRADE_REQUIRED_STATUS\n\t\t);\n\t}\n\n\tconst clientContracts = new Set(client.pageContracts);\n\tconst representation = input.compatibility.representations.find(\n\t\t({ contract }) => clientContracts.has(contract)\n\t);\n\tif (!representation) {\n\t\treturn envelopeResponse(\n\t\t\t{\n\t\t\t\tkind: 'upgrade-required',\n\t\t\t\tpageId: input.compatibility.pageId,\n\t\t\t\treason: 'page-contract',\n\t\t\t\tsupportedContracts: input.compatibility.representations.map(\n\t\t\t\t\t({ contract }) => contract\n\t\t\t\t)\n\t\t\t},\n\t\t\tUPGRADE_REQUIRED_STATUS\n\t\t);\n\t}\n\n\ttry {\n\t\treturn envelopeResponse(\n\t\t\t{\n\t\t\t\tcontract: representation.contract,\n\t\t\t\tframework: input.compatibility.framework,\n\t\t\t\tkind: 'page',\n\t\t\t\tpageId: input.compatibility.pageId,\n\t\t\t\tprops: normalizeJsonValue(representation.mapProps(input.props)),\n\t\t\t\tstatus: input.status ?? OK_STATUS\n\t\t\t},\n\t\t\tinput.status ?? OK_STATUS\n\t\t);\n\t} catch (error) {\n\t\tconsole.error(\n\t\t\t`[Mobile] Failed to produce ${input.compatibility.pageId} representation ${representation.contract}:`,\n\t\t\terror\n\t\t);\n\n\t\treturn envelopeResponse(\n\t\t\t{\n\t\t\t\tcode: 'representation-failed',\n\t\t\t\tkind: 'error',\n\t\t\t\tpageId: input.compatibility.pageId,\n\t\t\t\tstatus: SERVER_ERROR_STATUS\n\t\t\t},\n\t\t\tSERVER_ERROR_STATUS\n\t\t);\n\t}\n};\n",
@@ -22,23 +22,25 @@
22
22
  "import { AsyncLocalStorage } from 'node:async_hooks';\nimport { existsSync, readFileSync } from 'node:fs';\nimport { rm } from 'node:fs/promises';\nimport type { StreamingSlot } from '../utils/streamingSlots';\n\n/* Partial prerendering: the render-side half.\n *\n * A pre-rendered route whose page has dynamic streaming slots\n * (`dynamic: true`) is stored as a static shell. Two render modes make\n * that work, both entered through `withRegisteredStreamingSlots`:\n *\n * - Shell capture. The build (and an ISR re-render) requests the route\n * with PARTIAL_SHELL_HEADER. Static slots resolve into the page as\n * usual; dynamic slots keep their fallback, and their ids go back in\n * PARTIAL_HOLES_HEADER so the shell is stored with its list of holes.\n * - Hole collection. Serving a shell, the server renders the route again\n * in-process under `collectPartialHoles`. The page hands over its\n * registered dynamic slots instead of a body, and the server resolves\n * them into the shell it already sent (partialPrerenderServe.ts).\n *\n * The storage lives on globalThis under Symbol.for so the server runtime\n * and each framework's page-handler bundle share one instance. */\n\n/** Response header listing a captured shell's dynamic slot ids. */\nexport const PARTIAL_HOLES_HEADER = 'X-Absolute-Partial-Holes';\n/** Request header asking a page render for its static shell. */\nexport const PARTIAL_SHELL_HEADER = 'X-Absolute-Partial-Shell';\n\ntype HolesSink = { slots: StreamingSlot[] | undefined };\n\nconst SINK_STORAGE_KEY = Symbol.for('absolutejs.partialPrerenderHolesSink');\n\nconst isSinkStorage = (value: unknown): value is AsyncLocalStorage<HolesSink> =>\n\tvalue instanceof AsyncLocalStorage;\n\nconst getSinkStorage = () => {\n\tconst existing: unknown = Reflect.get(globalThis, SINK_STORAGE_KEY);\n\tif (isSinkStorage(existing)) return existing;\n\tconst created = new AsyncLocalStorage<HolesSink>();\n\tReflect.set(globalThis, SINK_STORAGE_KEY, created);\n\n\treturn created;\n};\n\n/** The hole sink of the request being rendered, when it's a hole\n * collection render. */\nexport const activePartialHolesSink = () => getSinkStorage().getStore();\n\n/** Runs `render` (a request through the app) and returns the dynamic\n * slots the page registered. `slots` is undefined when the request never\n * reached a page that collects streaming slots. */\nexport const collectPartialHoles = async (\n\trender: () => Promise<Response> | Response\n) => {\n\tconst sink: HolesSink = { slots: undefined };\n\tconst response = await getSinkStorage().run(sink, render);\n\n\treturn { response, slots: sink.slots };\n};\n\nexport const decodePartialHoles = (value: string | null | undefined) =>\n\tvalue\n\t\t? value\n\t\t\t\t.split(',')\n\t\t\t\t.filter(Boolean)\n\t\t\t\t.map((id) => decodeURIComponent(id))\n\t\t: [];\n\nexport const encodePartialHoles = (ids: string[]) =>\n\tids.map((id) => encodeURIComponent(id)).join(',');\n\nexport const isDynamicStreamingSlot = (slot: StreamingSlot) =>\n\tslot.dynamic === true;\n\nexport const isPartialShellCapture = (request: Request | undefined) =>\n\trequest?.headers.get(PARTIAL_SHELL_HEADER) === '1';\n\n/* A shell captured with holes is stored with `<page>.holes` next to it: one\n * URI-encoded slot id per line. */\nconst holesPath = (htmlPath: string) => htmlPath.replace(/\\.html$/, '.holes');\n\n/** Dynamic slot ids a shell was captured with; none for a fully\n * pre-rendered page. */\nexport const readPartialHoles = (htmlPath: string) => {\n\tconst path = holesPath(htmlPath);\n\tif (!existsSync(path)) return [];\n\n\treturn decodePartialHoles(\n\t\treadFileSync(path, 'utf-8').trim().split('\\n').join(',')\n\t);\n};\n\n/** Stores (or clears) the holes a shell render reported, returning them. */\nexport const writePartialHoles = async (\n\thtmlPath: string,\n\tresponse: Response\n) => {\n\tconst ids = decodePartialHoles(response.headers.get(PARTIAL_HOLES_HEADER));\n\tif (ids.length > 0) {\n\t\tawait Bun.write(\n\t\t\tholesPath(htmlPath),\n\t\t\t`${encodePartialHoles(ids).split(',').join('\\n')}\\n`\n\t\t);\n\t} else {\n\t\tawait rm(holesPath(htmlPath), { force: true });\n\t}\n\n\treturn ids;\n};\n",
23
23
  "const normalizeSlug = (str: string) =>\n\tstr\n\t\t.trim()\n\t\t.replace(/\\s+/g, '-')\n\t\t.replace(/[^A-Za-z0-9\\-_]+/g, '')\n\t\t.replace(/[-_]{2,}/g, '-');\n\nexport const toKebab = (str: string) =>\n\tnormalizeSlug(str)\n\t\t.replace(/([a-z0-9])([A-Z])/g, '$1-$2')\n\t\t.toLowerCase();\nexport const toPascal = (str: string) => {\n\tif (!str.includes('-') && !str.includes('_')) {\n\t\treturn str.charAt(0).toUpperCase() + str.slice(1);\n\t}\n\n\treturn normalizeSlug(str)\n\t\t.split(/[-_]/)\n\t\t.filter(Boolean)\n\t\t.map(\n\t\t\t(segment) =>\n\t\t\t\tsegment.charAt(0).toUpperCase() + segment.slice(1).toLowerCase()\n\t\t)\n\t\t.join('');\n};\nexport const toScreamingSnake = (str: string) =>\n\tstr.replace(/([a-z0-9])([A-Z])/g, '$1_$2').toUpperCase();\n",
24
24
  "import { readCspNonce } from '../utils/cspNonceRef';\n\n/* HTML and HTMX pages, and html convention files, are files from the\n * project rather than markup rendered from data, so every inline <script>\n * and <style> in them is the author's own: each gets the request's CSP\n * nonce. Framework pages never go through this; their scripts get the\n * nonce where AbsoluteJS writes them, so a script injected through\n * {@html} / v-html / dangerouslySetInnerHTML stays blocked. */\nexport const nonceStaticHtml = async (\n\thtml: string,\n\tnonce: string | undefined = readCspNonce()\n) => {\n\tif (!nonce) return html;\n\tconst stamp: HTMLRewriterTypes.HTMLRewriterElementContentHandlers = {\n\t\telement: (element: HTMLRewriterTypes.Element) => {\n\t\t\tif (!element.hasAttribute('nonce'))\n\t\t\t\telement.setAttribute('nonce', nonce);\n\t\t}\n\t};\n\n\treturn new HTMLRewriter()\n\t\t.on('script', stamp)\n\t\t.on('style', stamp)\n\t\t.transform(new Response(html))\n\t\t.text();\n};\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n\ttypeof value === 'object' && value !== null && !Array.isArray(value);\n\nconst parseHtmxConfig = (content: string | null) => {\n\ttry {\n\t\tconst parsed: unknown = JSON.parse(content ?? '{}');\n\n\t\treturn isRecord(parsed) ? parsed : {};\n\t} catch {\n\t\treturn {};\n\t}\n};\n\n/* htmx inserts its own indicator <style> at runtime, which a nonce-based\n * policy blocks unless htmx knows the nonce: it reads `inlineStyleNonce`\n * from <meta name=\"htmx-config\">. Merged into an existing config, or added.\n * `inlineScriptNonce` is deliberately not set: htmx would put it on scripts\n * inside swapped fragments, which can carry data. */\nexport const withHtmxStyleNonce = async (\n\thtml: string,\n\tnonce: string | undefined = readCspNonce()\n) => {\n\tif (!nonce) return html;\n\tlet found = false;\n\tconst merged = await new HTMLRewriter()\n\t\t.on('meta[name=\"htmx-config\"]', {\n\t\t\telement: (element) => {\n\t\t\t\tfound = true;\n\t\t\t\tconst config = parseHtmxConfig(element.getAttribute('content'));\n\t\t\t\telement.setAttribute(\n\t\t\t\t\t'content',\n\t\t\t\t\tJSON.stringify({ ...config, inlineStyleNonce: nonce })\n\t\t\t\t);\n\t\t\t}\n\t\t})\n\t\t.transform(new Response(html))\n\t\t.text();\n\tif (found) return merged;\n\tconst meta = `<meta name=\"htmx-config\" content='${JSON.stringify({ inlineStyleNonce: nonce })}'>`;\n\tconst headClose = merged.search(/<\\/head>/i);\n\n\treturn headClose >= 0\n\t\t? `${merged.slice(0, headClose)}${meta}${merged.slice(headClose)}`\n\t\t: `${meta}${merged}`;\n};\n",
25
- "import { isDevelopmentRuntime } from './runtimeMode';\nimport { basename } from 'node:path';\nimport type { ConventionsMap, ErrorPageProps } from '../../types/conventions';\nimport { toPascal } from './stringModifiers';\nimport { nonceAttr, nonceSvelteHeadStyles, readCspNonce } from './cspNonceRef';\nimport { nonceStaticHtml } from '../core/staticHtmlNonce';\nimport { GENERIC_ERROR_MESSAGE } from './ssrErrorPage';\n\n// Use globalThis so the conventions map is shared across all bundles.\n// The main bundle (dist/index.js) calls setConventions, but framework\n// bundles (dist/svelte/index.js, etc.) need to read the same map.\nconst CONVENTIONS_KEY = '__absoluteConventions';\n\nconst isConventionsMap = (value: unknown): value is ConventionsMap =>\n\tBoolean(value) && typeof value === 'object';\n\nconst getMap = () => {\n\tconst value: unknown = Reflect.get(globalThis, CONVENTIONS_KEY);\n\tif (isConventionsMap(value)) return value;\n\n\tconst empty: ConventionsMap = {};\n\n\treturn empty;\n};\n\nexport const derivePageName = (pagePath: string) => {\n\tconst base = basename(pagePath);\n\t// Strip hash and extension: \"SvelteExample.abc123.js\" → \"SvelteExample\"\n\tconst dotIndex = base.indexOf('.');\n\tconst name = dotIndex > 0 ? base.slice(0, dotIndex) : base;\n\n\treturn toPascal(name);\n};\nexport const getConventions = () => getMap();\n\nconst normalizeConventionPageName = (name: string) =>\n\ttoPascal(name).replace(/\\d+$/, '');\n\nexport const hasErrorConvention = (framework: keyof ConventionsMap) => {\n\tconst conventions = getMap()[framework];\n\tif (!conventions) return false;\n\tif (conventions.defaults?.error) return true;\n\n\treturn Object.values(conventions.pages ?? {}).some((page) =>\n\t\tBoolean(page.error)\n\t);\n};\nexport const resolveErrorConventionPath = (\n\tframework: keyof ConventionsMap,\n\tpageName: string\n) => {\n\tconst conventions = getMap()[framework];\n\tif (!conventions) return undefined;\n\n\tconst exact = conventions.pages?.[pageName]?.error;\n\tif (exact) return exact;\n\n\tconst normalizedPageName = normalizeConventionPageName(pageName);\n\tfor (const [candidate, page] of Object.entries(conventions.pages ?? {})) {\n\t\tif (normalizeConventionPageName(candidate) === normalizedPageName) {\n\t\t\treturn page.error ?? conventions.defaults?.error;\n\t\t}\n\t}\n\n\treturn conventions.defaults?.error;\n};\nexport const resolveNotFoundConventionPath = (\n\tframework: keyof ConventionsMap\n) => getMap()[framework]?.defaults?.notFound;\nexport const setConventions = (map: ConventionsMap) => {\n\tReflect.set(globalThis, CONVENTIONS_KEY, map);\n};\n\nconst isDev = () => isDevelopmentRuntime();\n\n/* Outside development an error page gets a generic message and no stack.\n * Error messages routinely carry server details (a failed read names the\n * absolute path it tried, a database error names hosts and tables), and the\n * convention page renders them to whoever sent the request. The request\n * handler has already logged the full error on the server. */\nconst buildErrorProps = (error: unknown): ErrorPageProps => {\n\tconst name = error instanceof Error ? error.name : 'Error';\n\tif (!isDev()) return { message: GENERIC_ERROR_MESSAGE, name };\n\tif (error instanceof Error) {\n\t\treturn {\n\t\t\tmessage: error.message,\n\t\t\tname,\n\t\t\t...(error.stack ? { stack: error.stack } : {})\n\t\t};\n\t}\n\n\treturn { message: String(error), name };\n};\n\nconst renderReactError = async (\n\tconventionPath: string,\n\terrorProps: ErrorPageProps\n) => {\n\tconst { createElement } = await import('react');\n\tconst { renderToReadableStream } = await import('react-dom/server');\n\tconst mod = await import(conventionPath);\n\tconst ErrorComponent = mod.default;\n\tif (typeof ErrorComponent !== 'function') return null;\n\n\tconst element = createElement(ErrorComponent, errorProps);\n\tconst stream = await renderToReadableStream(element, {\n\t\tnonce: readCspNonce()\n\t});\n\n\treturn new Response(stream, {\n\t\theaders: { 'Content-Type': 'text/html' },\n\t\tstatus: 500\n\t});\n};\n\nconst renderSvelteError = async (\n\tconventionPath: string,\n\terrorProps: ErrorPageProps\n) => {\n\tconst { render } = await import('svelte/server');\n\tconst mod = await import(conventionPath);\n\tconst ErrorComponent = mod.default;\n\tif (!ErrorComponent) return null;\n\n\tconst nonce = readCspNonce();\n\tconst { head, body } = render(ErrorComponent, {\n\t\tprops: errorProps,\n\t\t...(nonce ? { csp: { nonce } } : {})\n\t});\n\tconst html = `<!DOCTYPE html><html><head>${nonceSvelteHeadStyles(head)}</head><body>${body}</body></html>`;\n\n\treturn new Response(html, {\n\t\theaders: { 'Content-Type': 'text/html' },\n\t\tstatus: 500\n\t});\n};\n\nconst unescapeVueStyles = (ssrBody: string) => {\n\tlet styles = '';\n\tconst body = ssrBody.replace(\n\t\t/<style>([\\s\\S]*?)<\\/style>/g,\n\t\t(_, css: string) => {\n\t\t\tstyles += `<style${nonceAttr()}>${css\n\t\t\t\t.replace(/&quot;/g, '\"')\n\t\t\t\t.replace(/&amp;/g, '&')\n\t\t\t\t.replace(/&lt;/g, '<')\n\t\t\t\t.replace(/&gt;/g, '>')}</style>`;\n\n\t\t\treturn '';\n\t\t}\n\t);\n\n\treturn { body, styles };\n};\n\nconst renderVueError = async (\n\tconventionPath: string,\n\terrorProps: ErrorPageProps\n) => {\n\tconst { createSSRApp, h } = await import('vue');\n\tconst { renderToString } = await import('vue/server-renderer');\n\tconst mod = await import(conventionPath);\n\tconst ErrorComponent = mod.default;\n\tif (!ErrorComponent) return null;\n\n\tconst app = createSSRApp({\n\t\trender: () => h(ErrorComponent, errorProps)\n\t});\n\tconst rawBody = await renderToString(app);\n\n\t// Vue SSR escapes quotes inside <component is=\"style\"> tags.\n\t// Extract style content, unescape it, and move to <head>.\n\tconst { styles, body } = unescapeVueStyles(rawBody);\n\tconst html = `<!DOCTYPE html><html><head>${styles}</head><body><div id=\"root\">${body}</div></body></html>`;\n\n\treturn new Response(html, {\n\t\theaders: { 'Content-Type': 'text/html' },\n\t\tstatus: 500\n\t});\n};\n\nconst renderAngularError = async (\n\tconventionPath: string,\n\terrorProps: ErrorPageProps\n) => {\n\t// Angular convention error pages use the simple function-style renderer.\n\t// Class-style components (templateUrl/styleUrl trio) routed through the\n\t// full Angular SSR pipeline are tracked separately — see CLAUDE.md.\n\tconst mod = await import(conventionPath);\n\tconst renderFn = mod.default;\n\tif (typeof renderFn !== 'function') return null;\n\n\tconst html = renderFn(errorProps);\n\n\treturn new Response(html, {\n\t\theaders: { 'Content-Type': 'text/html' },\n\t\tstatus: 500\n\t});\n};\n\nconst escapeHtml = (value: string) =>\n\tvalue\n\t\t.replace(/&/g, '&amp;')\n\t\t.replace(/</g, '&lt;')\n\t\t.replace(/>/g, '&gt;')\n\t\t.replace(/\"/g, '&quot;')\n\t\t.replace(/'/g, '&#39;');\n\nconst replaceErrorTokens = (template: string, errorProps: ErrorPageProps) =>\n\ttemplate\n\t\t.replace(/\\{\\{\\s*name\\s*\\}\\}/g, escapeHtml(errorProps.name))\n\t\t.replace(/\\{\\{\\s*message\\s*\\}\\}/g, escapeHtml(errorProps.message))\n\t\t.replace(\n\t\t\t/\\{\\{\\s*stack\\s*\\}\\}/g,\n\t\t\terrorProps.stack ? escapeHtml(errorProps.stack) : ''\n\t\t);\n\nconst renderHtmlError = async (\n\tconventionPath: string,\n\terrorProps: ErrorPageProps\n) => {\n\tconst template = await nonceStaticHtml(\n\t\tawait Bun.file(conventionPath).text()\n\t);\n\tconst html = replaceErrorTokens(template, errorProps);\n\n\treturn new Response(html, {\n\t\theaders: { 'Content-Type': 'text/html' },\n\t\tstatus: 500\n\t});\n};\n\nconst logConventionRenderError = (\n\tframework: keyof ConventionsMap,\n\tlabel: string,\n\trenderError: unknown\n) => {\n\tconst message = renderError instanceof Error ? renderError.message : '';\n\tif (\n\t\tmessage.includes('Cannot find module') ||\n\t\tmessage.includes('Cannot find package') ||\n\t\tmessage.includes('not found in module')\n\t) {\n\t\tconsole.error(\n\t\t\t`[SSR] Convention ${label} page for ${framework} failed: missing framework package. ` +\n\t\t\t\t`Ensure the ${framework} runtime is installed (e.g. bun add ${framework === 'react' ? 'react react-dom' : framework}).`\n\t\t);\n\n\t\treturn;\n\t}\n\n\tconsole.error(\n\t\t`[SSR] Failed to render ${framework} convention ${label} page:`,\n\t\trenderError\n\t);\n};\n\n// Phase 1 Ember adapter: convention pages aren't wired yet (no\n// renderEmberError analog ships in v1). Returning null falls through to\n// the generic ssrErrorPage. Phase 1.5 replaces this stub with a real\n// renderer once the convention scanner knows about .gjs/.gts files.\nconst renderEmberError = async () => null;\nconst renderEmberNotFound = async () => null;\n\nconst ERROR_RENDERERS: Record<\n\tkeyof ConventionsMap,\n\t(\n\t\tconventionPath: string,\n\t\terrorProps: ErrorPageProps\n\t) => Promise<Response | null>\n> = {\n\tangular: renderAngularError,\n\tember: renderEmberError,\n\thtml: renderHtmlError,\n\thtmx: renderHtmlError,\n\treact: renderReactError,\n\tsvelte: renderSvelteError,\n\tvue: renderVueError\n};\n\nconst tryFrameworkErrorConvention = async (\n\tframework: keyof ConventionsMap,\n\tpageName: string,\n\terrorProps: ErrorPageProps,\n\terror: unknown\n) => {\n\tlet conventionPath = resolveErrorConventionPath(framework, pageName);\n\tif (!conventionPath && error instanceof Error && error.stack) {\n\t\tfor (const match of error.stack.matchAll(\n\t\t\t/^\\s*at\\s+([A-Za-z_$][\\w$]*)/gm\n\t\t)) {\n\t\t\tconst [, candidate] = match;\n\t\t\tif (!candidate) continue;\n\n\t\t\tconventionPath = resolveErrorConventionPath(framework, candidate);\n\t\t\tif (conventionPath) break;\n\t\t}\n\t}\n\tif (!conventionPath) return null;\n\n\tconst renderer = ERROR_RENDERERS[framework];\n\tif (!renderer) return null;\n\n\ttry {\n\t\treturn await renderer(conventionPath, errorProps);\n\t} catch (renderError) {\n\t\tlogConventionRenderError(framework, 'error', renderError);\n\t}\n\n\treturn null;\n};\n\nexport const renderConventionError = async (\n\tframework: keyof ConventionsMap,\n\tpageName: string,\n\terror: unknown\n) => {\n\tconst errorProps = buildErrorProps(error);\n\n\tconst frameworkResponse = await tryFrameworkErrorConvention(\n\t\tframework,\n\t\tpageName,\n\t\terrorProps,\n\t\terror\n\t);\n\tif (frameworkResponse) return frameworkResponse;\n\n\t// Universal fallback: any project can ship a plain `error.html` in\n\t// the html pages dir as the last-resort branded error page before\n\t// the inline ssrErrorPage() takes over.\n\tif (framework !== 'html') {\n\t\tconst htmlResponse = await tryFrameworkErrorConvention(\n\t\t\t'html',\n\t\t\tpageName,\n\t\t\terrorProps,\n\t\t\terror\n\t\t);\n\t\tif (htmlResponse) return htmlResponse;\n\t}\n\n\treturn null;\n};\n\n/* An error thrown by a route handler (not by a page handler, which renders\n * its own error page) reaches Elysia's onError. When the request is a page\n * navigation or an HTMX request and the project ships an HTML or HTMX\n * error.html, render that instead of Elysia's JSON 500. HTMX requests try\n * the HTMX directory's error.html first. Outside development\n * buildErrorProps gives the page a generic message and no stack, so no file\n * paths or internals leak. */\n\nconst isPageRequest = (request: Request) => {\n\tif (request.headers.get('hx-request') === 'true') return true;\n\tif (request.headers.get('sec-fetch-dest') === 'document') return true;\n\n\treturn (request.headers.get('accept') ?? '').includes('text/html');\n};\n\nexport const renderStaticRouteError = async (\n\trequest: Request,\n\terror: unknown\n) => {\n\tif (!isPageRequest(request)) return null;\n\tconst preferHtmx = request.headers.get('hx-request') === 'true';\n\tconst order: ('html' | 'htmx')[] = preferHtmx\n\t\t? ['htmx', 'html']\n\t\t: ['html', 'htmx'];\n\tconst frameworks = order.filter((framework) =>\n\t\thasErrorConvention(framework)\n\t);\n\tif (frameworks.length === 0) return null;\n\n\tconst errorProps = buildErrorProps(error);\n\tconst renderNext = async (\n\t\tremaining: ('html' | 'htmx')[]\n\t): Promise<Response | null> => {\n\t\tconst [framework, ...rest] = remaining;\n\t\tif (!framework) return null;\n\t\tconst response = await tryFrameworkErrorConvention(\n\t\t\tframework,\n\t\t\t'',\n\t\t\terrorProps,\n\t\t\t// Per-page conventions are matched from the original stack.\n\t\t\terror\n\t\t);\n\n\t\treturn response ?? renderNext(rest);\n\t};\n\n\treturn renderNext(frameworks);\n};\n\nconst renderReactNotFound = async (conventionPath: string) => {\n\tconst { createElement } = await import('react');\n\tconst { renderToReadableStream } = await import('react-dom/server');\n\tconst mod = await import(conventionPath);\n\tconst NotFoundComponent = mod.default;\n\tif (typeof NotFoundComponent !== 'function') return null;\n\n\tconst element = createElement(NotFoundComponent);\n\tconst stream = await renderToReadableStream(element, {\n\t\tnonce: readCspNonce()\n\t});\n\n\treturn new Response(stream, {\n\t\theaders: { 'Content-Type': 'text/html' },\n\t\tstatus: 404\n\t});\n};\n\nconst renderSvelteNotFound = async (conventionPath: string) => {\n\tconst { render } = await import('svelte/server');\n\tconst mod = await import(conventionPath);\n\tconst NotFoundComponent = mod.default;\n\tif (!NotFoundComponent) return null;\n\n\tconst nonce = readCspNonce();\n\tconst { head, body } = render(\n\t\tNotFoundComponent,\n\t\tnonce ? { csp: { nonce } } : {}\n\t);\n\tconst html = `<!DOCTYPE html><html><head>${nonceSvelteHeadStyles(head)}</head><body>${body}</body></html>`;\n\n\treturn new Response(html, {\n\t\theaders: { 'Content-Type': 'text/html' },\n\t\tstatus: 404\n\t});\n};\n\nconst renderVueNotFound = async (conventionPath: string) => {\n\tconst { createSSRApp, h } = await import('vue');\n\tconst { renderToString } = await import('vue/server-renderer');\n\tconst mod = await import(conventionPath);\n\tconst NotFoundComponent = mod.default;\n\tif (!NotFoundComponent) return null;\n\n\tconst app = createSSRApp({\n\t\trender: () => h(NotFoundComponent)\n\t});\n\tconst rawBody = await renderToString(app);\n\n\tconst { styles, body } = unescapeVueStyles(rawBody);\n\tconst html = `<!DOCTYPE html><html><head>${styles}</head><body><div id=\"root\">${body}</div></body></html>`;\n\n\treturn new Response(html, {\n\t\theaders: { 'Content-Type': 'text/html' },\n\t\tstatus: 404\n\t});\n};\n\nconst renderAngularNotFound = async (conventionPath: string) => {\n\tconst mod = await import(conventionPath);\n\tconst renderFn = mod.default;\n\tif (typeof renderFn !== 'function') return null;\n\n\tconst html = renderFn();\n\n\treturn new Response(html, {\n\t\theaders: { 'Content-Type': 'text/html' },\n\t\tstatus: 404\n\t});\n};\n\nconst renderHtmlNotFound = async (conventionPath: string) => {\n\tconst html = await nonceStaticHtml(await Bun.file(conventionPath).text());\n\n\treturn new Response(html, {\n\t\theaders: { 'Content-Type': 'text/html' },\n\t\tstatus: 404\n\t});\n};\n\nconst NOT_FOUND_RENDERERS: Record<\n\tkeyof ConventionsMap,\n\t(conventionPath: string) => Promise<Response | null>\n> = {\n\tangular: renderAngularNotFound,\n\tember: renderEmberNotFound,\n\thtml: renderHtmlNotFound,\n\thtmx: renderHtmlNotFound,\n\treact: renderReactNotFound,\n\tsvelte: renderSvelteNotFound,\n\tvue: renderVueNotFound\n};\n\nexport const renderConventionNotFound = async (\n\tframework: keyof ConventionsMap\n) => {\n\tconst conventionPath = resolveNotFoundConventionPath(framework);\n\tif (!conventionPath) return null;\n\n\tconst renderer = NOT_FOUND_RENDERERS[framework];\n\tif (!renderer) return null;\n\n\ttry {\n\t\treturn await renderer(conventionPath);\n\t} catch (renderError) {\n\t\tlogConventionRenderError(framework, 'not-found', renderError);\n\t}\n\n\treturn null;\n};\n\nconst NOT_FOUND_PRIORITY: (keyof ConventionsMap)[] = [\n\t'react',\n\t'svelte',\n\t'vue',\n\t'angular',\n\t'html',\n\t'htmx'\n];\n\n/** Renders the first available not-found convention. An HTMX request\n * (`HX-Request` header) tries the HTMX pages directory's not-found.html\n * first, so an HTMX swap gets HTMX markup. */\nexport const renderFirstNotFound = async (\n\toptions: { preferHtmx?: boolean } = {}\n) => {\n\tconst renderNext = async (frameworks: (keyof ConventionsMap)[]) => {\n\t\tconst [framework, ...remaining] = frameworks;\n\t\tif (!framework) {\n\t\t\treturn null;\n\t\t}\n\t\tif (!getMap()[framework]?.defaults?.notFound) {\n\t\t\treturn renderNext(remaining);\n\t\t}\n\n\t\tconst response = await renderConventionNotFound(framework);\n\t\tif (response) {\n\t\t\treturn response;\n\t\t}\n\n\t\treturn renderNext(remaining);\n\t};\n\n\treturn renderNext(\n\t\toptions.preferHtmx\n\t\t\t? ['htmx', ...NOT_FOUND_PRIORITY.filter((key) => key !== 'htmx')]\n\t\t\t: NOT_FOUND_PRIORITY\n\t);\n};\n",
25
+ "import { isDevelopmentRuntime } from './runtimeMode';\nimport { basename } from 'node:path';\nimport type { ConventionsMap, ErrorPageProps } from '../../types/conventions';\nimport { toPascal } from './stringModifiers';\nimport { nonceAttr, nonceSvelteHeadStyles, readCspNonce } from './cspNonceRef';\nimport { nonceStaticHtml } from '../core/staticHtmlNonce';\nimport { GENERIC_ERROR_MESSAGE } from './ssrErrorPage';\n\n// Use globalThis so the conventions map is shared across all bundles.\n// The main bundle (dist/index.js) calls setConventions, but framework\n// bundles (dist/svelte/index.js, etc.) need to read the same map.\nconst CONVENTIONS_KEY = '__absoluteConventions';\n\nconst isConventionsMap = (value: unknown): value is ConventionsMap =>\n\tBoolean(value) && typeof value === 'object';\n\nconst getMap = () => {\n\tconst value: unknown = Reflect.get(globalThis, CONVENTIONS_KEY);\n\tif (isConventionsMap(value)) return value;\n\n\tconst empty: ConventionsMap = {};\n\n\treturn empty;\n};\n\nexport const derivePageName = (pagePath: string) => {\n\tconst base = basename(pagePath);\n\t// Strip hash and extension: \"SvelteExample.abc123.js\" → \"SvelteExample\"\n\tconst dotIndex = base.indexOf('.');\n\tconst name = dotIndex > 0 ? base.slice(0, dotIndex) : base;\n\n\treturn toPascal(name);\n};\nexport const getConventions = () => getMap();\n\nconst normalizeConventionPageName = (name: string) =>\n\ttoPascal(name).replace(/\\d+$/, '');\n\nexport const hasErrorConvention = (framework: keyof ConventionsMap) => {\n\tconst conventions = getMap()[framework];\n\tif (!conventions) return false;\n\tif (conventions.defaults?.error) return true;\n\n\treturn Object.values(conventions.pages ?? {}).some((page) =>\n\t\tBoolean(page.error)\n\t);\n};\nexport const resolveErrorConventionPath = (\n\tframework: keyof ConventionsMap,\n\tpageName: string\n) => {\n\tconst conventions = getMap()[framework];\n\tif (!conventions) return undefined;\n\n\tconst exact = conventions.pages?.[pageName]?.error;\n\tif (exact) return exact;\n\n\tconst normalizedPageName = normalizeConventionPageName(pageName);\n\tfor (const [candidate, page] of Object.entries(conventions.pages ?? {})) {\n\t\tif (normalizeConventionPageName(candidate) === normalizedPageName) {\n\t\t\treturn page.error ?? conventions.defaults?.error;\n\t\t}\n\t}\n\n\treturn conventions.defaults?.error;\n};\nexport const resolveNotFoundConventionPath = (\n\tframework: keyof ConventionsMap\n) => getMap()[framework]?.defaults?.notFound;\nexport const setConventions = (map: ConventionsMap) => {\n\tReflect.set(globalThis, CONVENTIONS_KEY, map);\n};\n\nconst isDev = () => isDevelopmentRuntime();\n\n/* Outside development an error page gets a generic message and no stack.\n * Error messages routinely carry server details (a failed read names the\n * absolute path it tried, a database error names hosts and tables), and the\n * convention page renders them to whoever sent the request. The request\n * handler has already logged the full error on the server. */\nconst buildErrorProps = (error: unknown): ErrorPageProps => {\n\tconst name = error instanceof Error ? error.name : 'Error';\n\tif (!isDev()) return { message: GENERIC_ERROR_MESSAGE, name };\n\tif (error instanceof Error) {\n\t\treturn {\n\t\t\tmessage: error.message,\n\t\t\tname,\n\t\t\t...(error.stack ? { stack: error.stack } : {})\n\t\t};\n\t}\n\n\treturn { message: String(error), name };\n};\n\nconst renderReactError = async (\n\tconventionPath: string,\n\terrorProps: ErrorPageProps\n) => {\n\tconst { createElement } = await import('react');\n\tconst { renderToReadableStream } = await import('react-dom/server');\n\tconst mod = await import(conventionPath);\n\tconst ErrorComponent = mod.default;\n\tif (typeof ErrorComponent !== 'function') return null;\n\n\tconst element = createElement(ErrorComponent, errorProps);\n\tconst stream = await renderToReadableStream(element, {\n\t\tnonce: readCspNonce()\n\t});\n\n\treturn new Response(stream, {\n\t\theaders: { 'Content-Type': 'text/html' },\n\t\tstatus: 500\n\t});\n};\n\nconst renderSvelteError = async (\n\tconventionPath: string,\n\terrorProps: ErrorPageProps\n) => {\n\tconst { render } = await import('svelte/server');\n\tconst mod = await import(conventionPath);\n\tconst ErrorComponent = mod.default;\n\tif (!ErrorComponent) return null;\n\n\tconst nonce = readCspNonce();\n\tconst { head, body } = render(ErrorComponent, {\n\t\tprops: errorProps,\n\t\t...(nonce ? { csp: { nonce } } : {})\n\t});\n\tconst html = `<!DOCTYPE html><html><head>${nonceSvelteHeadStyles(head)}</head><body>${body}</body></html>`;\n\n\treturn new Response(html, {\n\t\theaders: { 'Content-Type': 'text/html' },\n\t\tstatus: 500\n\t});\n};\n\nconst unescapeVueStyles = (ssrBody: string) => {\n\tlet styles = '';\n\tconst body = ssrBody.replace(\n\t\t/<style>([\\s\\S]*?)<\\/style>/g,\n\t\t(_, css: string) => {\n\t\t\tstyles += `<style${nonceAttr()}>${css\n\t\t\t\t.replace(/&quot;/g, '\"')\n\t\t\t\t.replace(/&amp;/g, '&')\n\t\t\t\t.replace(/&lt;/g, '<')\n\t\t\t\t.replace(/&gt;/g, '>')}</style>`;\n\n\t\t\treturn '';\n\t\t}\n\t);\n\n\treturn { body, styles };\n};\n\nconst renderVueError = async (\n\tconventionPath: string,\n\terrorProps: ErrorPageProps\n) => {\n\tconst { createSSRApp, h } = await import('vue');\n\tconst { renderToString } = await import('vue/server-renderer');\n\tconst mod = await import(conventionPath);\n\tconst ErrorComponent = mod.default;\n\tif (!ErrorComponent) return null;\n\n\tconst app = createSSRApp({\n\t\trender: () => h(ErrorComponent, errorProps)\n\t});\n\tconst rawBody = await renderToString(app);\n\n\t// Vue SSR escapes quotes inside <component is=\"style\"> tags.\n\t// Extract style content, unescape it, and move to <head>.\n\tconst { styles, body } = unescapeVueStyles(rawBody);\n\tconst html = `<!DOCTYPE html><html><head>${styles}</head><body><div id=\"root\">${body}</div></body></html>`;\n\n\treturn new Response(html, {\n\t\theaders: { 'Content-Type': 'text/html' },\n\t\tstatus: 500\n\t});\n};\n\nconst renderAngularError = async (\n\tconventionPath: string,\n\terrorProps: ErrorPageProps\n) => {\n\t// Angular convention error pages use the simple function-style renderer.\n\t// Class-style components (templateUrl/styleUrl trio) routed through the\n\t// full Angular SSR pipeline are tracked separately — see CLAUDE.md.\n\tconst mod = await import(conventionPath);\n\tconst renderFn = mod.default;\n\tif (typeof renderFn !== 'function') return null;\n\n\tconst html = renderFn(errorProps);\n\n\treturn new Response(html, {\n\t\theaders: { 'Content-Type': 'text/html' },\n\t\tstatus: 500\n\t});\n};\n\nconst escapeHtml = (value: string) =>\n\tvalue\n\t\t.replace(/&/g, '&amp;')\n\t\t.replace(/</g, '&lt;')\n\t\t.replace(/>/g, '&gt;')\n\t\t.replace(/\"/g, '&quot;')\n\t\t.replace(/'/g, '&#39;');\n\nconst replaceErrorTokens = (template: string, errorProps: ErrorPageProps) =>\n\ttemplate\n\t\t.replace(/\\{\\{\\s*name\\s*\\}\\}/g, escapeHtml(errorProps.name))\n\t\t.replace(/\\{\\{\\s*message\\s*\\}\\}/g, escapeHtml(errorProps.message))\n\t\t.replace(\n\t\t\t/\\{\\{\\s*stack\\s*\\}\\}/g,\n\t\t\terrorProps.stack ? escapeHtml(errorProps.stack) : ''\n\t\t);\n\nconst renderHtmlError = async (\n\tconventionPath: string,\n\terrorProps: ErrorPageProps\n) => {\n\tconst template = await nonceStaticHtml(\n\t\tawait Bun.file(conventionPath).text()\n\t);\n\tconst html = replaceErrorTokens(template, errorProps);\n\n\treturn new Response(html, {\n\t\theaders: { 'Content-Type': 'text/html' },\n\t\tstatus: 500\n\t});\n};\n\nconst logConventionRenderError = (\n\tframework: keyof ConventionsMap,\n\tlabel: string,\n\trenderError: unknown\n) => {\n\tconst message = renderError instanceof Error ? renderError.message : '';\n\tif (\n\t\tmessage.includes('Cannot find module') ||\n\t\tmessage.includes('Cannot find package') ||\n\t\tmessage.includes('not found in module')\n\t) {\n\t\tconsole.error(\n\t\t\t`[SSR] Convention ${label} page for ${framework} failed: missing framework package. ` +\n\t\t\t\t`Ensure the ${framework} runtime is installed (e.g. bun add ${framework === 'react' ? 'react react-dom' : framework}).`\n\t\t);\n\n\t\treturn;\n\t}\n\n\tconsole.error(\n\t\t`[SSR] Failed to render ${framework} convention ${label} page:`,\n\t\trenderError\n\t);\n};\n\n// Phase 1 Ember adapter: convention pages aren't wired yet (no\n// renderEmberError analog ships in v1). Returning null falls through to\n// the generic ssrErrorPage. Phase 1.5 replaces this stub with a real\n// renderer once the convention scanner knows about .gjs/.gts files.\nconst renderEmberError = async () => null;\nconst renderEmberNotFound = async () => null;\n\nconst ERROR_RENDERERS: Record<\n\tkeyof ConventionsMap,\n\t(\n\t\tconventionPath: string,\n\t\terrorProps: ErrorPageProps\n\t) => Promise<Response | null>\n> = {\n\tangular: renderAngularError,\n\tember: renderEmberError,\n\thtml: renderHtmlError,\n\thtmx: renderHtmlError,\n\treact: renderReactError,\n\tsvelte: renderSvelteError,\n\tvue: renderVueError\n};\n\nconst tryFrameworkErrorConvention = async (\n\tframework: keyof ConventionsMap,\n\tpageName: string,\n\terrorProps: ErrorPageProps,\n\terror: unknown\n) => {\n\tlet conventionPath = resolveErrorConventionPath(framework, pageName);\n\tif (!conventionPath && error instanceof Error && error.stack) {\n\t\tfor (const match of error.stack.matchAll(\n\t\t\t/^\\s*at\\s+([A-Za-z_$][\\w$]*)/gm\n\t\t)) {\n\t\t\tconst [, candidate] = match;\n\t\t\tif (!candidate) continue;\n\n\t\t\tconventionPath = resolveErrorConventionPath(framework, candidate);\n\t\t\tif (conventionPath) break;\n\t\t}\n\t}\n\tif (!conventionPath) return null;\n\n\tconst renderer = ERROR_RENDERERS[framework];\n\tif (!renderer) return null;\n\n\ttry {\n\t\treturn await renderer(conventionPath, errorProps);\n\t} catch (renderError) {\n\t\tlogConventionRenderError(framework, 'error', renderError);\n\t}\n\n\treturn null;\n};\n\n/* Whether a request is a page navigation or an HTMX request, the only\n * requests the HTML error and not-found conventions answer (see\n * renderStaticRouteError below). A fetch or API client asking for JSON gets\n * Elysia's JSON response, not an HTML page. */\nexport const isPageRequest = (request: Request) => {\n\tif (request.headers.get('hx-request') === 'true') return true;\n\tif (request.headers.get('sec-fetch-dest') === 'document') return true;\n\n\treturn (request.headers.get('accept') ?? '').includes('text/html');\n};\n\nexport const renderConventionError = async (\n\tframework: keyof ConventionsMap,\n\tpageName: string,\n\terror: unknown\n) => {\n\tconst errorProps = buildErrorProps(error);\n\n\tconst frameworkResponse = await tryFrameworkErrorConvention(\n\t\tframework,\n\t\tpageName,\n\t\terrorProps,\n\t\terror\n\t);\n\tif (frameworkResponse) return frameworkResponse;\n\n\t// Universal fallback: any project can ship a plain `error.html` in\n\t// the html pages dir as the last-resort branded error page before\n\t// the inline ssrErrorPage() takes over.\n\tif (framework !== 'html') {\n\t\tconst htmlResponse = await tryFrameworkErrorConvention(\n\t\t\t'html',\n\t\t\tpageName,\n\t\t\terrorProps,\n\t\t\terror\n\t\t);\n\t\tif (htmlResponse) return htmlResponse;\n\t}\n\n\treturn null;\n};\n\n/* An error thrown by a route handler (not by a page handler, which renders\n * its own error page) reaches Elysia's onError. When the request is a page\n * navigation or an HTMX request and the project ships an HTML or HTMX\n * error.html, render that instead of Elysia's JSON 500. HTMX requests try\n * the HTMX directory's error.html first. Outside development\n * buildErrorProps gives the page a generic message and no stack, so no file\n * paths or internals leak. */\n\nexport const renderStaticRouteError = async (\n\trequest: Request,\n\terror: unknown\n) => {\n\tif (!isPageRequest(request)) return null;\n\tconst preferHtmx = request.headers.get('hx-request') === 'true';\n\tconst order: ('html' | 'htmx')[] = preferHtmx\n\t\t? ['htmx', 'html']\n\t\t: ['html', 'htmx'];\n\tconst frameworks = order.filter((framework) =>\n\t\thasErrorConvention(framework)\n\t);\n\tif (frameworks.length === 0) return null;\n\n\tconst errorProps = buildErrorProps(error);\n\tconst renderNext = async (\n\t\tremaining: ('html' | 'htmx')[]\n\t): Promise<Response | null> => {\n\t\tconst [framework, ...rest] = remaining;\n\t\tif (!framework) return null;\n\t\tconst response = await tryFrameworkErrorConvention(\n\t\t\tframework,\n\t\t\t'',\n\t\t\terrorProps,\n\t\t\t// Per-page conventions are matched from the original stack.\n\t\t\terror\n\t\t);\n\n\t\treturn response ?? renderNext(rest);\n\t};\n\n\treturn renderNext(frameworks);\n};\n\nconst renderReactNotFound = async (conventionPath: string) => {\n\tconst { createElement } = await import('react');\n\tconst { renderToReadableStream } = await import('react-dom/server');\n\tconst mod = await import(conventionPath);\n\tconst NotFoundComponent = mod.default;\n\tif (typeof NotFoundComponent !== 'function') return null;\n\n\tconst element = createElement(NotFoundComponent);\n\tconst stream = await renderToReadableStream(element, {\n\t\tnonce: readCspNonce()\n\t});\n\n\treturn new Response(stream, {\n\t\theaders: { 'Content-Type': 'text/html' },\n\t\tstatus: 404\n\t});\n};\n\nconst renderSvelteNotFound = async (conventionPath: string) => {\n\tconst { render } = await import('svelte/server');\n\tconst mod = await import(conventionPath);\n\tconst NotFoundComponent = mod.default;\n\tif (!NotFoundComponent) return null;\n\n\tconst nonce = readCspNonce();\n\tconst { head, body } = render(\n\t\tNotFoundComponent,\n\t\tnonce ? { csp: { nonce } } : {}\n\t);\n\tconst html = `<!DOCTYPE html><html><head>${nonceSvelteHeadStyles(head)}</head><body>${body}</body></html>`;\n\n\treturn new Response(html, {\n\t\theaders: { 'Content-Type': 'text/html' },\n\t\tstatus: 404\n\t});\n};\n\nconst renderVueNotFound = async (conventionPath: string) => {\n\tconst { createSSRApp, h } = await import('vue');\n\tconst { renderToString } = await import('vue/server-renderer');\n\tconst mod = await import(conventionPath);\n\tconst NotFoundComponent = mod.default;\n\tif (!NotFoundComponent) return null;\n\n\tconst app = createSSRApp({\n\t\trender: () => h(NotFoundComponent)\n\t});\n\tconst rawBody = await renderToString(app);\n\n\tconst { styles, body } = unescapeVueStyles(rawBody);\n\tconst html = `<!DOCTYPE html><html><head>${styles}</head><body><div id=\"root\">${body}</div></body></html>`;\n\n\treturn new Response(html, {\n\t\theaders: { 'Content-Type': 'text/html' },\n\t\tstatus: 404\n\t});\n};\n\nconst renderAngularNotFound = async (conventionPath: string) => {\n\tconst mod = await import(conventionPath);\n\tconst renderFn = mod.default;\n\tif (typeof renderFn !== 'function') return null;\n\n\tconst html = renderFn();\n\n\treturn new Response(html, {\n\t\theaders: { 'Content-Type': 'text/html' },\n\t\tstatus: 404\n\t});\n};\n\nconst renderHtmlNotFound = async (conventionPath: string) => {\n\tconst html = await nonceStaticHtml(await Bun.file(conventionPath).text());\n\n\treturn new Response(html, {\n\t\theaders: { 'Content-Type': 'text/html' },\n\t\tstatus: 404\n\t});\n};\n\nconst NOT_FOUND_RENDERERS: Record<\n\tkeyof ConventionsMap,\n\t(conventionPath: string) => Promise<Response | null>\n> = {\n\tangular: renderAngularNotFound,\n\tember: renderEmberNotFound,\n\thtml: renderHtmlNotFound,\n\thtmx: renderHtmlNotFound,\n\treact: renderReactNotFound,\n\tsvelte: renderSvelteNotFound,\n\tvue: renderVueNotFound\n};\n\nexport const renderConventionNotFound = async (\n\tframework: keyof ConventionsMap\n) => {\n\tconst conventionPath = resolveNotFoundConventionPath(framework);\n\tif (!conventionPath) return null;\n\n\tconst renderer = NOT_FOUND_RENDERERS[framework];\n\tif (!renderer) return null;\n\n\ttry {\n\t\treturn await renderer(conventionPath);\n\t} catch (renderError) {\n\t\tlogConventionRenderError(framework, 'not-found', renderError);\n\t}\n\n\treturn null;\n};\n\nconst NOT_FOUND_PRIORITY: (keyof ConventionsMap)[] = [\n\t'react',\n\t'svelte',\n\t'vue',\n\t'angular',\n\t'html',\n\t'htmx'\n];\n\n/** Renders the first available not-found convention. An HTMX request\n * (`HX-Request` header) tries the HTMX pages directory's not-found.html\n * first, so an HTMX swap gets HTMX markup. */\nexport const renderFirstNotFound = async (\n\toptions: { preferHtmx?: boolean } = {}\n) => {\n\tconst renderNext = async (frameworks: (keyof ConventionsMap)[]) => {\n\t\tconst [framework, ...remaining] = frameworks;\n\t\tif (!framework) {\n\t\t\treturn null;\n\t\t}\n\t\tif (!getMap()[framework]?.defaults?.notFound) {\n\t\t\treturn renderNext(remaining);\n\t\t}\n\n\t\tconst response = await renderConventionNotFound(framework);\n\t\tif (response) {\n\t\t\treturn response;\n\t\t}\n\n\t\treturn renderNext(remaining);\n\t};\n\n\treturn renderNext(\n\t\toptions.preferHtmx\n\t\t\t? ['htmx', ...NOT_FOUND_PRIORITY.filter((key) => key !== 'htmx')]\n\t\t\t: NOT_FOUND_PRIORITY\n\t);\n};\n",
26
26
  "import type { SpaHost } from './spaRouteTypes';\nimport { renderFirstNotFound } from './resolveConvention';\nimport { basename } from 'node:path';\nimport type { ConventionsMap } from '../../types/conventions';\n\nconst SPA_ROUTES_KEY = '__absoluteSpaRoutes';\n\nexport type RuntimeSpaHost = SpaHost & { framework: keyof ConventionsMap };\n\nexport const setSpaRouteManifest = (hosts: RuntimeSpaHost[]) => {\n\tReflect.set(globalThis, SPA_ROUTES_KEY, hosts);\n};\n\nconst isRuntimeSpaHost = (value: unknown): value is RuntimeSpaHost =>\n\ttypeof value === 'object' &&\n\tvalue !== null &&\n\ttypeof Reflect.get(value, 'framework') === 'string';\n\nconst getSpaRouteManifest = () => {\n\tconst value: unknown = Reflect.get(globalThis, SPA_ROUTES_KEY);\n\n\treturn Array.isArray(value) ? value.filter(isRuntimeSpaHost) : [];\n};\n\nconst normalizePath = (path: string) => {\n\tconst withLeadingSlash = path.startsWith('/') ? path : `/${path}`;\n\tconst trimmed = withLeadingSlash.replace(/\\/+$/, '');\n\n\treturn trimmed || '/';\n};\n\nconst fullRoutePath = (baseHref: string, routePath: string) => {\n\tconst base = normalizePath(baseHref);\n\tconst route = normalizePath(routePath);\n\tif (base !== '/' && (route === base || route.startsWith(`${base}/`))) {\n\t\treturn route;\n\t}\n\tif (base === '/') return route;\n\n\treturn normalizePath(`${base}/${route.replace(/^\\/+/, '')}`);\n};\n\nconst routePattern = (path: string) => {\n\tconst segments = normalizePath(path).split('/').filter(Boolean);\n\tlet expression = '^';\n\tfor (const segment of segments) {\n\t\tif (segment === '*' || segment === '**') {\n\t\t\texpression += '(?:/.*)?';\n\t\t\tcontinue;\n\t\t}\n\t\tconst parameter = /^:[A-Za-z_$][A-Za-z0-9_$]*(?:\\((.*)\\))?(\\?)?$/.exec(\n\t\t\tsegment\n\t\t);\n\t\tif (parameter) {\n\t\t\tconst valuePattern = parameter[1] || '[^/]+';\n\t\t\texpression += parameter[2]\n\t\t\t\t? `(?:/${valuePattern})?`\n\t\t\t\t: `/${valuePattern}`;\n\t\t\tcontinue;\n\t\t}\n\t\texpression += `/${segment.replace(/[.+?^${}()|[\\]\\\\]/g, '\\\\$&')}`;\n\t}\n\n\treturn new RegExp(`${expression || '^/'}/?$`);\n};\n\nconst sourcePageName = (sourceFile: string) =>\n\tbasename(sourceFile)\n\t\t.replace(/\\.[^.]+$/, '')\n\t\t.toLowerCase();\n\nexport const isKnownSpaRoute = (\n\tframework: keyof ConventionsMap,\n\tpageName: string,\n\trequest: Request | undefined\n) => {\n\tif (!request) return true;\n\tlet pathname: string;\n\ttry {\n\t\tpathname = normalizePath(new URL(request.url).pathname);\n\t} catch {\n\t\treturn true;\n\t}\n\n\tconst hosts = getSpaRouteManifest().filter((host) => {\n\t\tif (host.framework !== framework) return false;\n\t\tif (sourcePageName(host.sourceFile) !== pageName.toLowerCase())\n\t\t\treturn false;\n\t\tconst base = normalizePath(host.baseHref);\n\n\t\treturn (\n\t\t\tbase === '/' || pathname === base || pathname.startsWith(`${base}/`)\n\t\t);\n\t});\n\tif (hosts.length === 0) return true;\n\n\treturn hosts.some((host) =>\n\t\thost.routes.some((route) =>\n\t\t\troutePattern(fullRoutePath(host.baseHref, route.path)).test(\n\t\t\t\tpathname\n\t\t\t)\n\t\t)\n\t);\n};\n\nexport const renderSpaNotFound = async (\n\tframework: keyof ConventionsMap,\n\tpageName: string,\n\trequest: Request | undefined\n) => {\n\tif (isKnownSpaRoute(framework, pageName, request)) return null;\n\n\treturn (\n\t\t(await renderFirstNotFound()) ??\n\t\tnew Response('Not found', {\n\t\t\theaders: { 'Content-Type': 'text/plain' },\n\t\t\tstatus: 404\n\t\t})\n\t);\n};\n",
27
27
  "/** Human-readable attributes a browser translator may rewrite before hydration. */\nexport const TRANSLATABLE_ATTRIBUTES = [\n\t'alt',\n\t'title',\n\t'placeholder',\n\t'aria-label'\n] as const;\n",
28
28
  "import { nonceAttr } from '../utils/cspNonceRef';\nimport { TRANSLATABLE_ATTRIBUTES } from '../client/browserTranslationAttributes';\n\nconst BASELINE_MARKER = '__ABSOLUTE_SSR_TEXT_BASELINES__';\n\n/** Inline this after SSR markup and before any client entry executes. The\n * snapshot records server-authored text while keeping it out of the DOM, so\n * browser translation remains free to edit the rendered text. */\nexport const BROWSER_TRANSLATION_BASELINE_SCRIPT =\n\t'window.__ABSOLUTE_SSR_TEXT_BASELINES__=new WeakMap();' +\n\t'window.__ABSOLUTE_SSR_ATTRIBUTE_BASELINES__=new WeakMap();' +\n\t'{const r=document.body,b=window.__ABSOLUTE_SSR_TEXT_BASELINES__,' +\n\t'a=window.__ABSOLUTE_SSR_ATTRIBUTE_BASELINES__;' +\n\t'if(r)for(const e of [r,...r.querySelectorAll(\"*\")]){' +\n\t'const t=new Map();for(const [i,n]of[...e.childNodes].entries())' +\n\t'if(n.nodeType===3)t.set(i,n.nodeValue??\"\");if(t.size)b.set(e,t);' +\n\t`const v=new Map();for(const k of ${JSON.stringify(TRANSLATABLE_ATTRIBUTES)}){` +\n\t'const s=e.getAttribute(k);if(s!==null)v.set(k,s);}if(v.size)a.set(e,v);}}';\n\nexport const browserTranslationBaselineTag = () =>\n\t`<script${nonceAttr()}>${BROWSER_TRANSLATION_BASELINE_SCRIPT}</script>`;\n\nexport const injectBrowserTranslationBaseline = (html: string) => {\n\tif (html.includes(BASELINE_MARKER)) return html;\n\tconst script = browserTranslationBaselineTag();\n\tconst closingBodyIndex = html.lastIndexOf('</body>');\n\tif (closingBodyIndex < 0) return `${html}${script}`;\n\n\treturn `${html.slice(0, closingBodyIndex)}${script}${html.slice(closingBodyIndex)}`;\n};\n",
29
29
  "/* Shared by the React Server Components build pass and page handler. */\n\n/** Manifest key of the browser entry that hydrates every RSC page. */\nexport const REACT_SERVER_CLIENT_MANIFEST_KEY = 'ReactServerClient';\n/** `asset(manifest, '<Page>RSC')` names a page's react-server bundle. A\n * page whose name already ends in RSC is not suffixed twice. */\nexport const REACT_SERVER_PAGE_MANIFEST_SUFFIX = 'RSC';\n/** Global array the inline Flight payload scripts push into. */\nexport const REACT_SERVER_PAYLOAD_GLOBAL = '__absoluteReactServerPayload';\n/** Manifest key of the server bundle that renders Flight to HTML. */\nexport const REACT_SERVER_RENDERER_MANIFEST_KEY = 'ReactServerRenderer';\n/** Written next to the react-server page bundles: where the SSR renderer and\n * the hydration entry of the same build live. */\nexport const REACT_SERVER_RUNTIME_FILE = 'react-server-runtime.json';\n",
30
30
  "import type {\n\tFileRouteContext,\n\tFileRouteDefinition,\n\tFileRouteFramework,\n\tFileRouteParams,\n\tFileRouteRenderInput,\n\tFileRouteServerModule\n} from '../../types/fileRoutes';\n\n/* Shared by the framework adapters (`reactFileRoute`, `svelteFileRoute`):\n * turns a route's lazily imported server module into the framework-neutral\n * hooks `fileRoutes()` runs. The adapters' generics check, at compile time,\n * that the module's `load` takes this route's params and returns the page's\n * props; at run time the request's params are checked against the path. */\n\nconst PARAM_NAME_RE = /:([A-Za-z_$][\\w$]*)/g;\n\nconst paramNamesOf = (path: string) =>\n\t[...path.matchAll(PARAM_NAME_RE)]\n\t\t.map((match) => match[1])\n\t\t.filter((name): name is string => name !== undefined);\n\nconst hasRouteParams = <Path extends string>(\n\tcontext: FileRouteContext,\n\tnames: readonly string[]\n): context is FileRouteContext & { params: FileRouteParams<Path> } =>\n\tnames.every((name) => typeof context.params[name] === 'string');\n\ntype ServerHooks<Path extends string> = {\n\tpath: Path;\n\tserver?: () => Promise<FileRouteServerModule<Path, unknown> | undefined>;\n};\n\nexport const serverHooksOf = <Path extends string>({\n\tpath,\n\tserver\n}: ServerHooks<Path>) => {\n\tif (!server) return {};\n\tconst names = paramNamesOf(path);\n\tconst withParams = async <Result>(\n\t\tcontext: FileRouteContext,\n\t\trun: (\n\t\t\tmodule: FileRouteServerModule<Path, unknown>,\n\t\t\ttyped: FileRouteContext<Path>\n\t\t) => Result\n\t) => {\n\t\tconst module = await server();\n\t\tif (!module || !hasRouteParams<Path>(context, names)) return undefined;\n\n\t\treturn run(module, context);\n\t};\n\tconst hooks: Pick<FileRouteDefinition, 'beforeHandle' | 'load'> = {\n\t\tbeforeHandle: (context) =>\n\t\t\twithParams(context, (module, typed) =>\n\t\t\t\tmodule.beforeHandle?.(typed)\n\t\t\t),\n\t\tload: (context) =>\n\t\t\twithParams(context, (module, typed) => module.load?.(typed))\n\t};\n\n\treturn hooks;\n};\n\nexport type FileRouteAdapterInput<Path extends string> = {\n\tname: string;\n\tpath: Path;\n\tsource: string;\n};\n\nexport const defineFileRouteWith = <Path extends string>(\n\tframework: FileRouteFramework,\n\troute: FileRouteAdapterInput<Path> & {\n\t\tserver?: () => Promise<\n\t\t\tFileRouteServerModule<Path, unknown> | undefined\n\t\t>;\n\t},\n\trender: (input: FileRouteRenderInput) => Promise<Response>\n) => {\n\tconst definition: FileRouteDefinition = {\n\t\tframework,\n\t\tname: route.name,\n\t\tpath: route.path,\n\t\trender,\n\t\tsource: route.source,\n\t\t...serverHooksOf(route)\n\t};\n\n\treturn definition;\n};\n",
31
31
  "import { isProductionRuntime } from '../utils/runtimeMode';\nimport { getDevPageWarmer, recordMissingAsset } from './requestContext';\n\nconst DOUBLED_RSC_SUFFIX = 'RSCRSC';\nconst warnedDoubledRscKeys = new Set<string>();\n\n/* A React Server Components page whose file name ends in RSC (HomeRSC.tsx)\n * used to get the key `HomeRSCRSC`; it is now `HomeRSC`, and the old key is\n * kept as a deprecated alias pointing at the same bundle. */\nconst warnDoubledRscKey = (\n\tsource: Record<string, string>,\n\tname: string,\n\tassetPath: string\n) => {\n\tif (!name.endsWith(DOUBLED_RSC_SUFFIX)) return;\n\tconst current = name.slice(0, -'RSC'.length);\n\tif (source[current] !== assetPath || warnedDoubledRscKeys.has(name)) return;\n\twarnedDoubledRscKeys.add(name);\n\tconsole.warn(\n\t\t`[asset] key \"${name}\" is deprecated: React Server Components pages whose file name ends in RSC no longer get the suffix twice. Use asset(manifest, '${current}').`\n\t);\n};\n\nexport const asset = (source: Record<string, string>, name: string) => {\n\tconst assetPath = source[name];\n\n\tif (assetPath === undefined) {\n\t\t// Production: a missing manifest key is a real build error — fail loud.\n\t\tif (isProductionRuntime()) {\n\t\t\tthrow new Error(`Asset \"${name}\" not found in manifest.`);\n\t\t}\n\n\t\t// Dev mode: the asset likely hasn't been built yet. Record the miss on\n\t\t// the request context so the page handler can build the page on\n\t\t// demand (see `resolveDeferredPageAssets`), and return an empty\n\t\t// placeholder — the handler re-reads the manifest once the build\n\t\t// lands, or throws the manifest error if it fails.\n\t\trecordMissingAsset(name);\n\t\tconst page = getDevPageWarmer()?.describe(name);\n\t\t// A page that will be built by this request needs no warning; keep\n\t\t// it for keys that are not a deferred page (or whose page is built\n\t\t// and really lacks this key, e.g. optional CSS).\n\t\tif (page !== undefined && !page.built) return '';\n\t\tconsole.warn(\n\t\t\t`[asset] key \"${name}\" not found in manifest (dev mode — skipping)`\n\t\t);\n\n\t\treturn '';\n\t}\n\n\tif (!isProductionRuntime()) warnDoubledRscKey(source, name, assetPath);\n\n\treturn assetPath;\n};\n",
32
- "import { readCspNonce } from '../utils/cspNonceRef';\nimport { isProductionRuntime } from '../utils/runtimeMode';\nimport type { ComponentType as ReactComponent } from 'react';\nimport { injectIslandPageContextStream } from '../core/islandPageContext';\nimport { getCurrentRouteRegistrationCallsite } from '../core/devRouteRegistrationCallsite';\nimport {\n\tdevBuildErrorResponse,\n\tgetCurrentAbsoluteRequest,\n\tresolveDeferredPageAssets\n} from '../core/requestContext';\nimport {\n\tABSOLUTE_MOBILE_PAGE_PROTOCOL_VERSION,\n\tfinalizeAbsoluteMobilePage\n} from '../mobile/pageProtocol';\nimport type { AbsoluteMobileBuildPageMetadata } from '../mobile/buildMetadata';\nimport {\n\tstreamingPageHeaders,\n\twithPageCacheHeaders\n} from '../core/pageResponseCache';\nimport {\n\ttype StreamingSlotEnhancerOptions,\n\twithRegisteredStreamingSlots\n} from '../core/responseEnhancers';\nimport {\n\tcaptureStreamingSlotWarningCallsite,\n\trunWithStreamingSlotWarningScope\n} from '../core/streamingSlotWarningScope';\nimport { ssrErrorPage } from '../utils/ssrErrorPage';\nimport { renderSpaNotFound } from '../utils/spaRouteManifest';\nimport {\n\thasErrorConvention,\n\trenderConventionError,\n\tresolveErrorConventionPath\n} from '../utils/resolveConvention';\nimport { BROWSER_TRANSLATION_BASELINE_SCRIPT } from '../core/browserTranslation';\n\ntype ReactPageRenderOptions = StreamingSlotEnhancerOptions & {\n\t/** Collect `<SuspenseSlot>` / `<StreamSlot>` registrations during the\n\t * render and stream their resolved content after the shell. On by\n\t * default: a page that renders no slot gets byte-identical output and\n\t * no extra work. Set `false` to turn collection off for this route;\n\t * slots then stay on their fallback and a warning is logged once. */\n\tcollectStreamingSlots?: boolean;\n\t/** Buffer this page's stream so it can carry a content-hash `ETag` and\n\t * serve a `304` on repeat visits, at the cost of streaming's fast first\n\t * byte. Only worth it on pages static enough that the 304 beats the\n\t * stream. See {@link PageCacheOptions.bufferStreamForEtag}. */\n\tbufferStreamForEtag?: boolean;\n};\nexport type ReactPageRequestInput<\n\tProps extends Record<string, unknown> = Record<never, never>\n> = ReactPageRenderOptions & {\n\t/** @internal Build-generated mobile identity. Application code must not set this. */\n\t__absoluteMobile?: AbsoluteMobileBuildPageMetadata;\n\tPage: ReactComponent<Props>;\n\tindex: string;\n\t/** The incoming Elysia request. When provided, the request's pathname\n\t * is auto-injected into props as `url` so the Page can wire\n\t * `<StaticRouter location={url}>` on the server without the caller\n\t * threading the URL by hand. User-supplied `props.url` (if present)\n\t * takes precedence — the auto-injection only fills in when missing. */\n\trequest?: Request;\n\t/** Sitemap metadata for this route. Statically read from the handler\n\t * source at registration time, so only literal-object values are\n\t * honoured. */\n\tsitemap?: import('../../types/sitemap').PageHandlerSitemapMetadata;\n} & (keyof Props extends never\n\t\t? { props?: NoInfer<Props> }\n\t\t: { props: NoInfer<Props> });\ntype PropsWithUrlBuilder = <Props extends Record<string, unknown>>(\n\tprops: Props | undefined,\n\turl: string\n) => Props;\nconst withRequestUrl: PropsWithUrlBuilder = (props, url) =>\n\tObject.assign(Object.create(null), props, { url });\n\nconst resolveRequestPathname = (request: Request | undefined) => {\n\tif (!request) return undefined;\n\n\ttry {\n\t\tconst parsed = new URL(request.url);\n\n\t\treturn `${parsed.pathname}${parsed.search}`;\n\t} catch {\n\t\treturn undefined;\n\t}\n};\n\nconst buildRefreshSetup = () => {\n\tif (isProductionRuntime()) {\n\t\treturn '';\n\t}\n\n\treturn (\n\t\t'window.__REFRESH_BUFFER__=[];' +\n\t\t'window.$RefreshReg$=function(t,i){window.__REFRESH_BUFFER__.push([t,i])};' +\n\t\t'window.$RefreshSig$=function(){return function(t){return t}};'\n\t);\n};\n\nexport const handleReactPageRequest = async <\n\tProps extends Record<string, unknown> = Record<never, never>\n>(\n\tinput: ReactPageRequestInput<Props>\n) => {\n\tconst { Page } = input;\n\t// Dev on-demand pages: `asset()` returned `''` for an index that has\n\t// not been built yet. Build the page now and re-read the manifest;\n\t// otherwise fall through to the manifest error so the overlay shows\n\t// the real cause.\n\tconst deferredAssets =\n\t\tinput.index === '' ? await resolveDeferredPageAssets() : null;\n\tconst buildFailure = devBuildErrorResponse('react', deferredAssets);\n\tif (buildFailure) return buildFailure;\n\tconst resolvedIndex =\n\t\tdeferredAssets && input.index === ''\n\t\t\t? deferredAssets.lookup(`${deferredAssets.name}Index`)\n\t\t\t: input.index;\n\tconst options = input;\n\tconst userProps = input.props;\n\tconst request = input.request ?? getCurrentAbsoluteRequest();\n\tconst requestPathname = resolveRequestPathname(request);\n\t// Auto-inject `url` from the request when the caller didn't already\n\t// pass one in props. Lets users wire <StaticRouter location={url}>\n\t// just by forwarding `request` instead of unwrapping it themselves.\n\tconst maybeProps =\n\t\trequestPathname !== undefined && (!userProps || !('url' in userProps))\n\t\t\t? withRequestUrl(userProps, requestPathname)\n\t\t\t: userProps;\n\tconst pageName = Page.name || Page.displayName || '';\n\tif (resolvedIndex === '') {\n\t\tthrow new Error(\n\t\t\t`Asset \"${deferredAssets?.name || pageName || 'Page'}Index\" not found in manifest.`\n\t\t);\n\t}\n\tconst pageId =\n\t\tinput.__absoluteMobile?.pageId ?? (pageName || resolvedIndex);\n\tconst currentContract =\n\t\tinput.__absoluteMobile?.contract ??\n\t\t`react:${pageId}:${ABSOLUTE_MOBILE_PAGE_PROTOCOL_VERSION}`;\n\tconst mobileResponse = finalizeAbsoluteMobilePage({\n\t\tcompatibility: {\n\t\t\tframework: 'react',\n\t\t\tpageId,\n\t\t\trepresentations: [\n\t\t\t\t{ contract: currentContract, mapProps: (props) => props }\n\t\t\t],\n\t\t\truntimes: [String(ABSOLUTE_MOBILE_PAGE_PROTOCOL_VERSION)]\n\t\t},\n\t\tprops: maybeProps ?? Object.create(null),\n\t\trequest,\n\t\t// Web route data: the assets a hovered `<Link>` warms before the\n\t\t// click. React pages own their `<head>` inside the component, so\n\t\t// the handler can only name the client entry (plus any stylesheet\n\t\t// an on-demand dev build just resolved).\n\t\troute: () => ({\n\t\t\tassets: {\n\t\t\t\tcss: deferredAssets?.cssHrefs() ?? [],\n\t\t\t\tindex: resolvedIndex\n\t\t\t}\n\t\t})\n\t});\n\tif (mobileResponse) return mobileResponse;\n\n\ttry {\n\t\tconst spaNotFound = await renderSpaNotFound('react', pageName, request);\n\t\tif (spaNotFound) return withPageCacheHeaders(spaNotFound, request);\n\t\t// Slot collection is on unless the handler opts out with `false`:\n\t\t// installing the collector costs nothing when no slot registers.\n\t\tconst collectStreamingSlots = options?.collectStreamingSlots !== false;\n\t\tconst handlerCallsite = collectStreamingSlots\n\t\t\t? undefined\n\t\t\t: (getCurrentRouteRegistrationCallsite() ??\n\t\t\t\tcaptureStreamingSlotWarningCallsite());\n\t\tconst renderPageResponse = async () => {\n\t\t\tconst { createElement } = await import('react');\n\t\t\tconst { renderToReadableStream } = await import('react-dom/server');\n\n\t\t\tconst element =\n\t\t\t\tmaybeProps !== undefined\n\t\t\t\t\t? createElement(Page, maybeProps)\n\t\t\t\t\t: createElement(Page);\n\n\t\t\tconst propsScript = maybeProps\n\t\t\t\t? `window.__INITIAL_PROPS__=${JSON.stringify(maybeProps)};`\n\t\t\t\t: '';\n\n\t\t\t// Buffer React Refresh registrations until the runtime loads.\n\t\t\t// Bun.build injects $RefreshReg$ calls in the bundle, but the\n\t\t\t// real runtime isn't ready yet. This buffering function captures\n\t\t\t// all registrations, then replays them when the runtime is set up.\n\t\t\tconst refreshSetup = buildRefreshSetup();\n\n\t\t\tconst stream = await renderToReadableStream(element, {\n\t\t\t\tbootstrapModules: [resolvedIndex],\n\t\t\t\tbootstrapScriptContent:\n\t\t\t\t\tBROWSER_TRANSLATION_BASELINE_SCRIPT +\n\t\t\t\t\tpropsScript +\n\t\t\t\t\trefreshSetup,\n\t\t\t\t// React writes this nonce on its bootstrap and streaming\n\t\t\t\t// scripts when secureHeaders() is on.\n\t\t\t\tnonce: readCspNonce(),\n\t\t\t\tonError(error: unknown) {\n\t\t\t\t\tconsole.error('[SSR] React streaming error:', error);\n\t\t\t\t}\n\t\t\t});\n\t\t\tconst htmlStream = injectIslandPageContextStream(stream);\n\t\t\tif (\n\t\t\t\tresolveErrorConventionPath('react', pageName) ||\n\t\t\t\thasErrorConvention('react')\n\t\t\t) {\n\t\t\t\tconst html = await new Response(htmlStream).text();\n\n\t\t\t\treturn new Response(html, {\n\t\t\t\t\theaders: { 'Content-Type': 'text/html' }\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn new Response(htmlStream, {\n\t\t\t\theaders: streamingPageHeaders()\n\t\t\t});\n\t\t};\n\n\t\tconst pageResponse = await runWithStreamingSlotWarningScope(\n\t\t\t() =>\n\t\t\t\tcollectStreamingSlots\n\t\t\t\t\t? withRegisteredStreamingSlots(renderPageResponse, options)\n\t\t\t\t\t: renderPageResponse(),\n\t\t\t{ explicitlyDisabled: !collectStreamingSlots, handlerCallsite }\n\t\t);\n\n\t\treturn withPageCacheHeaders(pageResponse, request, {\n\t\t\tbufferStreamForEtag: input.bufferStreamForEtag\n\t\t});\n\t} catch (error) {\n\t\tconsole.error('[SSR] React render error:', error);\n\n\t\tconst conventionResponse = await renderConventionError(\n\t\t\t'react',\n\t\t\tpageName,\n\t\t\terror\n\t\t);\n\t\tif (conventionResponse) {\n\t\t\treturn withPageCacheHeaders(conventionResponse, request);\n\t\t}\n\n\t\treturn withPageCacheHeaders(\n\t\t\tnew Response(ssrErrorPage('react', error), {\n\t\t\t\theaders: { 'Content-Type': 'text/html' },\n\t\t\t\tstatus: 500\n\t\t\t}),\n\t\t\trequest\n\t\t);\n\t}\n};\n",
32
+ "/* The path and query a page handler renders for (the `url` a router\n * matches), or undefined without a parsable request URL. Repeated slashes\n * collapse to one: a request for `//` (or `//x`) would otherwise reach the\n * router as a protocol-relative URL, which Angular's platform-server\n * rejects with NG05701 (a 500) and other routers misread as a host. */\nexport const requestRenderUrl = (request: Request | undefined) => {\n\tif (!request) return undefined;\n\n\ttry {\n\t\tconst parsed = new URL(request.url);\n\n\t\treturn `${parsed.pathname.replace(/\\/{2,}/g, '/')}${parsed.search}`;\n\t} catch {\n\t\treturn undefined;\n\t}\n};\n",
33
+ "import { requestRenderUrl } from '../utils/requestRenderUrl';\nimport { readCspNonce } from '../utils/cspNonceRef';\nimport { isProductionRuntime } from '../utils/runtimeMode';\nimport type { ComponentType as ReactComponent } from 'react';\nimport { injectIslandPageContextStream } from '../core/islandPageContext';\nimport { getCurrentRouteRegistrationCallsite } from '../core/devRouteRegistrationCallsite';\nimport {\n\tdevBuildErrorResponse,\n\tgetCurrentAbsoluteRequest,\n\tresolveDeferredPageAssets\n} from '../core/requestContext';\nimport {\n\tABSOLUTE_MOBILE_PAGE_PROTOCOL_VERSION,\n\tfinalizeAbsoluteMobilePage\n} from '../mobile/pageProtocol';\nimport type { AbsoluteMobileBuildPageMetadata } from '../mobile/buildMetadata';\nimport {\n\tstreamingPageHeaders,\n\twithPageCacheHeaders\n} from '../core/pageResponseCache';\nimport {\n\ttype StreamingSlotEnhancerOptions,\n\twithRegisteredStreamingSlots\n} from '../core/responseEnhancers';\nimport {\n\tcaptureStreamingSlotWarningCallsite,\n\trunWithStreamingSlotWarningScope\n} from '../core/streamingSlotWarningScope';\nimport { ssrErrorPage } from '../utils/ssrErrorPage';\nimport { renderSpaNotFound } from '../utils/spaRouteManifest';\nimport {\n\thasErrorConvention,\n\trenderConventionError,\n\tresolveErrorConventionPath\n} from '../utils/resolveConvention';\nimport { BROWSER_TRANSLATION_BASELINE_SCRIPT } from '../core/browserTranslation';\n\ntype ReactPageRenderOptions = StreamingSlotEnhancerOptions & {\n\t/** Collect `<SuspenseSlot>` / `<StreamSlot>` registrations during the\n\t * render and stream their resolved content after the shell. On by\n\t * default: a page that renders no slot gets byte-identical output and\n\t * no extra work. Set `false` to turn collection off for this route;\n\t * slots then stay on their fallback and a warning is logged once. */\n\tcollectStreamingSlots?: boolean;\n\t/** Buffer this page's stream so it can carry a content-hash `ETag` and\n\t * serve a `304` on repeat visits, at the cost of streaming's fast first\n\t * byte. Only worth it on pages static enough that the 304 beats the\n\t * stream. See {@link PageCacheOptions.bufferStreamForEtag}. */\n\tbufferStreamForEtag?: boolean;\n};\nexport type ReactPageRequestInput<\n\tProps extends Record<string, unknown> = Record<never, never>\n> = ReactPageRenderOptions & {\n\t/** @internal Build-generated mobile identity. Application code must not set this. */\n\t__absoluteMobile?: AbsoluteMobileBuildPageMetadata;\n\tPage: ReactComponent<Props>;\n\tindex: string;\n\t/** The incoming Elysia request. When provided, the request's pathname\n\t * is auto-injected into props as `url` so the Page can wire\n\t * `<StaticRouter location={url}>` on the server without the caller\n\t * threading the URL by hand. User-supplied `props.url` (if present)\n\t * takes precedence — the auto-injection only fills in when missing. */\n\trequest?: Request;\n\t/** Sitemap metadata for this route. Statically read from the handler\n\t * source at registration time, so only literal-object values are\n\t * honoured. */\n\tsitemap?: import('../../types/sitemap').PageHandlerSitemapMetadata;\n} & (keyof Props extends never\n\t\t? { props?: NoInfer<Props> }\n\t\t: { props: NoInfer<Props> });\ntype PropsWithUrlBuilder = <Props extends Record<string, unknown>>(\n\tprops: Props | undefined,\n\turl: string\n) => Props;\nconst withRequestUrl: PropsWithUrlBuilder = (props, url) =>\n\tObject.assign(Object.create(null), props, { url });\n\nconst resolveRequestPathname = (request: Request | undefined) =>\n\trequestRenderUrl(request);\n\nconst buildRefreshSetup = () => {\n\tif (isProductionRuntime()) {\n\t\treturn '';\n\t}\n\n\treturn (\n\t\t'window.__REFRESH_BUFFER__=[];' +\n\t\t'window.$RefreshReg$=function(t,i){window.__REFRESH_BUFFER__.push([t,i])};' +\n\t\t'window.$RefreshSig$=function(){return function(t){return t}};'\n\t);\n};\n\nexport const handleReactPageRequest = async <\n\tProps extends Record<string, unknown> = Record<never, never>\n>(\n\tinput: ReactPageRequestInput<Props>\n) => {\n\tconst { Page } = input;\n\t// Dev on-demand pages: `asset()` returned `''` for an index that has\n\t// not been built yet. Build the page now and re-read the manifest;\n\t// otherwise fall through to the manifest error so the overlay shows\n\t// the real cause.\n\tconst deferredAssets =\n\t\tinput.index === '' ? await resolveDeferredPageAssets() : null;\n\tconst buildFailure = devBuildErrorResponse('react', deferredAssets);\n\tif (buildFailure) return buildFailure;\n\tconst resolvedIndex =\n\t\tdeferredAssets && input.index === ''\n\t\t\t? deferredAssets.lookup(`${deferredAssets.name}Index`)\n\t\t\t: input.index;\n\tconst options = input;\n\tconst userProps = input.props;\n\tconst request = input.request ?? getCurrentAbsoluteRequest();\n\tconst requestPathname = resolveRequestPathname(request);\n\t// Auto-inject `url` from the request when the caller didn't already\n\t// pass one in props. Lets users wire <StaticRouter location={url}>\n\t// just by forwarding `request` instead of unwrapping it themselves.\n\tconst maybeProps =\n\t\trequestPathname !== undefined && (!userProps || !('url' in userProps))\n\t\t\t? withRequestUrl(userProps, requestPathname)\n\t\t\t: userProps;\n\tconst pageName = Page.name || Page.displayName || '';\n\tif (resolvedIndex === '') {\n\t\tthrow new Error(\n\t\t\t`Asset \"${deferredAssets?.name || pageName || 'Page'}Index\" not found in manifest.`\n\t\t);\n\t}\n\tconst pageId =\n\t\tinput.__absoluteMobile?.pageId ?? (pageName || resolvedIndex);\n\tconst currentContract =\n\t\tinput.__absoluteMobile?.contract ??\n\t\t`react:${pageId}:${ABSOLUTE_MOBILE_PAGE_PROTOCOL_VERSION}`;\n\tconst mobileResponse = finalizeAbsoluteMobilePage({\n\t\tcompatibility: {\n\t\t\tframework: 'react',\n\t\t\tpageId,\n\t\t\trepresentations: [\n\t\t\t\t{ contract: currentContract, mapProps: (props) => props }\n\t\t\t],\n\t\t\truntimes: [String(ABSOLUTE_MOBILE_PAGE_PROTOCOL_VERSION)]\n\t\t},\n\t\tprops: maybeProps ?? Object.create(null),\n\t\trequest,\n\t\t// Web route data: the assets a hovered `<Link>` warms before the\n\t\t// click. React pages own their `<head>` inside the component, so\n\t\t// the handler can only name the client entry (plus any stylesheet\n\t\t// an on-demand dev build just resolved).\n\t\troute: () => ({\n\t\t\tassets: {\n\t\t\t\tcss: deferredAssets?.cssHrefs() ?? [],\n\t\t\t\tindex: resolvedIndex\n\t\t\t}\n\t\t})\n\t});\n\tif (mobileResponse) return mobileResponse;\n\n\ttry {\n\t\tconst spaNotFound = await renderSpaNotFound('react', pageName, request);\n\t\tif (spaNotFound) return withPageCacheHeaders(spaNotFound, request);\n\t\t// Slot collection is on unless the handler opts out with `false`:\n\t\t// installing the collector costs nothing when no slot registers.\n\t\tconst collectStreamingSlots = options?.collectStreamingSlots !== false;\n\t\tconst handlerCallsite = collectStreamingSlots\n\t\t\t? undefined\n\t\t\t: (getCurrentRouteRegistrationCallsite() ??\n\t\t\t\tcaptureStreamingSlotWarningCallsite());\n\t\tconst renderPageResponse = async () => {\n\t\t\tconst { createElement } = await import('react');\n\t\t\tconst { renderToReadableStream } = await import('react-dom/server');\n\n\t\t\tconst element =\n\t\t\t\tmaybeProps !== undefined\n\t\t\t\t\t? createElement(Page, maybeProps)\n\t\t\t\t\t: createElement(Page);\n\n\t\t\tconst propsScript = maybeProps\n\t\t\t\t? `window.__INITIAL_PROPS__=${JSON.stringify(maybeProps)};`\n\t\t\t\t: '';\n\n\t\t\t// Buffer React Refresh registrations until the runtime loads.\n\t\t\t// Bun.build injects $RefreshReg$ calls in the bundle, but the\n\t\t\t// real runtime isn't ready yet. This buffering function captures\n\t\t\t// all registrations, then replays them when the runtime is set up.\n\t\t\tconst refreshSetup = buildRefreshSetup();\n\n\t\t\tconst stream = await renderToReadableStream(element, {\n\t\t\t\tbootstrapModules: [resolvedIndex],\n\t\t\t\tbootstrapScriptContent:\n\t\t\t\t\tBROWSER_TRANSLATION_BASELINE_SCRIPT +\n\t\t\t\t\tpropsScript +\n\t\t\t\t\trefreshSetup,\n\t\t\t\t// React writes this nonce on its bootstrap and streaming\n\t\t\t\t// scripts when secureHeaders() is on.\n\t\t\t\tnonce: readCspNonce(),\n\t\t\t\tonError(error: unknown) {\n\t\t\t\t\tconsole.error('[SSR] React streaming error:', error);\n\t\t\t\t}\n\t\t\t});\n\t\t\tconst htmlStream = injectIslandPageContextStream(stream);\n\t\t\tif (\n\t\t\t\tresolveErrorConventionPath('react', pageName) ||\n\t\t\t\thasErrorConvention('react')\n\t\t\t) {\n\t\t\t\tconst html = await new Response(htmlStream).text();\n\n\t\t\t\treturn new Response(html, {\n\t\t\t\t\theaders: { 'Content-Type': 'text/html' }\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn new Response(htmlStream, {\n\t\t\t\theaders: streamingPageHeaders()\n\t\t\t});\n\t\t};\n\n\t\tconst pageResponse = await runWithStreamingSlotWarningScope(\n\t\t\t() =>\n\t\t\t\tcollectStreamingSlots\n\t\t\t\t\t? withRegisteredStreamingSlots(renderPageResponse, options)\n\t\t\t\t\t: renderPageResponse(),\n\t\t\t{ explicitlyDisabled: !collectStreamingSlots, handlerCallsite }\n\t\t);\n\n\t\treturn withPageCacheHeaders(pageResponse, request, {\n\t\t\tbufferStreamForEtag: input.bufferStreamForEtag\n\t\t});\n\t} catch (error) {\n\t\tconsole.error('[SSR] React render error:', error);\n\n\t\tconst conventionResponse = await renderConventionError(\n\t\t\t'react',\n\t\t\tpageName,\n\t\t\terror\n\t\t);\n\t\tif (conventionResponse) {\n\t\t\treturn withPageCacheHeaders(conventionResponse, request);\n\t\t}\n\n\t\treturn withPageCacheHeaders(\n\t\t\tnew Response(ssrErrorPage('react', error), {\n\t\t\t\theaders: { 'Content-Type': 'text/html' },\n\t\t\t\tstatus: 500\n\t\t\t}),\n\t\t\trequest\n\t\t);\n\t}\n};\n",
33
34
  "import {\n\tappendStreamingSlotPatchesToStream,\n\ttype AppendStreamingSlotsOptions,\n\tinjectStreamingRuntimeIntoStream,\n\ttype StreamingSlotPolicy,\n\ttype StreamingSlot\n} from '../utils/streamingSlots';\nimport { STREAMING_PAGE_HEADER } from './pageResponseCache';\nimport {\n\tactivePartialHolesSink,\n\tencodePartialHoles,\n\tisDynamicStreamingSlot,\n\tisPartialShellCapture,\n\tPARTIAL_HOLES_HEADER\n} from './partialPrerender';\nimport { getCurrentAbsoluteRequest } from './requestContext';\nimport { runWithStreamingSlotRegistry } from './streamingSlotRegistry';\n\ntype ResponseLike = Response | Promise<Response>;\n\nexport type StreamingSlotEnhancerOptions = Omit<\n\tAppendStreamingSlotsOptions,\n\t'injectRuntime'\n> & {\n\tstreamingSlots?: StreamingSlot[];\n\tpolicy?: StreamingSlotPolicy;\n};\n\nconst toResponse = async (responseLike: ResponseLike) => responseLike;\n\nconst cloneHeaders = (response: Response) => {\n\tconst headers = new Headers(response.headers);\n\n\treturn headers;\n};\n\nexport const enhanceHtmlResponseWithStreamingSlots = (\n\tresponse: Response,\n\t{\n\t\tnonce,\n\t\tonError,\n\t\truntimePlacement,\n\t\truntimePreludeScript,\n\t\tstreamingSlots = [],\n\t\tpolicy\n\t}: StreamingSlotEnhancerOptions = {}\n) => {\n\tif (!response.body || streamingSlots.length === 0) {\n\t\treturn response;\n\t}\n\n\tconst body = appendStreamingSlotPatchesToStream(\n\t\tresponse.body,\n\t\tstreamingSlots,\n\t\t{\n\t\t\tnonce,\n\t\t\tonError,\n\t\t\tpolicy,\n\t\t\truntimePlacement,\n\t\t\truntimePreludeScript\n\t\t}\n\t);\n\n\t// This response now streams, so it can't carry a content-hash ETag — tag it\n\t// so withPageCacheHeaders marks it no-cache instead of buffering to hash.\n\tconst headers = cloneHeaders(response);\n\theaders.set(STREAMING_PAGE_HEADER, '1');\n\n\treturn new Response(body, {\n\t\theaders,\n\t\tstatus: response.status,\n\t\tstatusText: response.statusText\n\t});\n};\n\nexport const withStreamingSlots = async (\n\tresponseLike: ResponseLike,\n\toptions: StreamingSlotEnhancerOptions = {}\n) =>\n\tenhanceHtmlResponseWithStreamingSlots(\n\t\tawait toResponse(responseLike),\n\t\toptions\n\t);\n\nconst mergeStreamingSlots = (\n\tregistered: StreamingSlot[],\n\texplicit: StreamingSlot[]\n) => {\n\tconst merged = new Map<string, StreamingSlot>();\n\tfor (const slot of registered) merged.set(slot.id, slot);\n\tfor (const slot of explicit) merged.set(slot.id, slot);\n\n\treturn [...merged.values()];\n};\n\n/* Partial prerendering's shell capture: static slots resolve into the page,\n * dynamic ones keep their fallback and are listed in PARTIAL_HOLES_HEADER.\n * The swap runtime goes in even with no static slot, for the holes' patches\n * streamed at request time. */\nconst captureStaticShell = async (\n\tresponseLike: ResponseLike,\n\tslots: StreamingSlot[],\n\toptions: StreamingSlotEnhancerOptions\n) => {\n\tconst holes = slots.filter(isDynamicStreamingSlot);\n\tconst staticSlots = slots.filter((slot) => !isDynamicStreamingSlot(slot));\n\tconst response = await withStreamingSlots(responseLike, {\n\t\t...options,\n\t\tstreamingSlots: staticSlots\n\t});\n\tif (holes.length === 0 || !response.body) return response;\n\n\tconst headers = cloneHeaders(response);\n\theaders.set(\n\t\tPARTIAL_HOLES_HEADER,\n\t\tencodePartialHoles(holes.map((slot) => slot.id))\n\t);\n\tconst body =\n\t\tstaticSlots.length > 0\n\t\t\t? response.body\n\t\t\t: injectStreamingRuntimeIntoStream(\n\t\t\t\t\tresponse.body,\n\t\t\t\t\toptions.nonce,\n\t\t\t\t\toptions.runtimePlacement,\n\t\t\t\t\toptions.runtimePreludeScript\n\t\t\t\t);\n\n\treturn new Response(body, {\n\t\theaders,\n\t\tstatus: response.status,\n\t\tstatusText: response.statusText\n\t});\n};\n\n/* Partial prerendering's hole collection: the server already sent the\n * cached shell, so the page hands over its dynamic slots and its own HTML\n * is dropped. */\nconst handOverHoles = async (\n\tresponseLike: ResponseLike,\n\tslots: StreamingSlot[],\n\tsink: NonNullable<ReturnType<typeof activePartialHolesSink>>\n) => {\n\tsink.slots = slots.filter(isDynamicStreamingSlot);\n\tconst response = await toResponse(responseLike);\n\tawait response.body?.cancel().catch(() => undefined);\n\n\treturn new Response(null, { status: 204 });\n};\n\nexport const withRegisteredStreamingSlots = async (\n\trenderResponse: () => ResponseLike,\n\toptions: StreamingSlotEnhancerOptions = {}\n) => {\n\tconst { result, slots } =\n\t\tawait runWithStreamingSlotRegistry(renderResponse);\n\tconst explicit = options.streamingSlots ?? [];\n\tconst streamingSlots = mergeStreamingSlots(slots, explicit);\n\tconst holesSink = activePartialHolesSink();\n\tif (holesSink) return handOverHoles(result, streamingSlots, holesSink);\n\tif (isPartialShellCapture(getCurrentAbsoluteRequest())) {\n\t\treturn captureStaticShell(result, streamingSlots, options);\n\t}\n\n\treturn withStreamingSlots(result, {\n\t\t...options,\n\t\tstreamingSlots\n\t});\n};\n",
34
35
  "import type { StreamingSlot } from '../utils/streamingSlots';\n\ntype StreamingSlotRegistrar = (slot: StreamingSlot) => void;\ntype StreamingSlotWarningController = {\n\tmaybeWarn(primitiveName: string): void;\n};\ntype StreamingSlotCollectionController = {\n\tisCollecting(): boolean;\n};\n\nconst STREAMING_SLOT_REGISTRAR_KEY = Symbol.for(\n\t'absolutejs.streamingSlotRegistrar'\n);\nconst STREAMING_SLOT_WARNING_STORAGE_KEY = Symbol.for(\n\t'absolutejs.streamingSlotWarningController'\n);\nconst STREAMING_SLOT_COLLECTION_STORAGE_KEY = Symbol.for(\n\t'absolutejs.streamingSlotCollectionController'\n);\n\nconst getRegisteredStreamingSlotRegistrar = () => {\n\tconst value = Reflect.get(globalThis, STREAMING_SLOT_REGISTRAR_KEY);\n\tif (typeof value === 'function' || value === null) {\n\t\treturn value;\n\t}\n\n\treturn undefined;\n};\n\nconst isObjectRecord = (value: unknown): value is Record<string, unknown> =>\n\tBoolean(value) && typeof value === 'object';\n\nconst isStreamingSlotWarningController = (\n\tvalue: unknown\n): value is StreamingSlotWarningController =>\n\tisObjectRecord(value) &&\n\t'maybeWarn' in value &&\n\ttypeof value.maybeWarn === 'function';\n\nconst isStreamingSlotCollectionController = (\n\tvalue: unknown\n): value is StreamingSlotCollectionController =>\n\tisObjectRecord(value) &&\n\t'isCollecting' in value &&\n\ttypeof value.isCollecting === 'function';\n\nconst getWarningController = () => {\n\tconst value = Reflect.get(globalThis, STREAMING_SLOT_WARNING_STORAGE_KEY);\n\tif (value === null || typeof value === 'undefined') return undefined;\n\n\treturn isStreamingSlotWarningController(value) ? value : undefined;\n};\n\nconst getCollectionController = () => {\n\tconst value = Reflect.get(\n\t\tglobalThis,\n\t\tSTREAMING_SLOT_COLLECTION_STORAGE_KEY\n\t);\n\tif (value === null || typeof value === 'undefined') return undefined;\n\n\treturn isStreamingSlotCollectionController(value) ? value : undefined;\n};\n\nexport const hasRegisteredStreamingSlotRegistrar = () =>\n\ttypeof getRegisteredStreamingSlotRegistrar() === 'function';\nexport const isStreamingSlotCollectionActive = () =>\n\tgetCollectionController()?.isCollecting() === true;\nexport const registerStreamingSlot = (slot: StreamingSlot) => {\n\tgetRegisteredStreamingSlotRegistrar()?.(slot);\n};\nexport const setStreamingSlotCollectionController = (\n\tcontroller: StreamingSlotCollectionController | null\n) => {\n\tReflect.set(globalThis, STREAMING_SLOT_COLLECTION_STORAGE_KEY, controller);\n};\nexport const setStreamingSlotRegistrar = (\n\tnextRegistrar: StreamingSlotRegistrar | null\n) => {\n\tReflect.set(globalThis, STREAMING_SLOT_REGISTRAR_KEY, nextRegistrar);\n};\nexport const setStreamingSlotWarningController = (\n\tcontroller: StreamingSlotWarningController | null\n) => {\n\tReflect.set(globalThis, STREAMING_SLOT_WARNING_STORAGE_KEY, controller);\n};\n/* Warns in production too: a slot that silently stays on its fallback is\n * worse there. The controller logs each distinct warning once per process\n * in production. */\nexport const warnMissingStreamingSlotCollector = (primitiveName: string) => {\n\tif (isStreamingSlotCollectionActive()) {\n\t\treturn;\n\t}\n\n\tgetWarningController()?.maybeWarn(primitiveName);\n};\n",
35
36
  "import type { StreamingSlot } from '../utils/streamingSlots';\nimport {\n\tsetStreamingSlotCollectionController,\n\tsetStreamingSlotRegistrar\n} from './streamingSlotRegistrar';\n\ntype SlotStore = Map<string, StreamingSlot>;\ntype AsyncLocalStorageType =\n\timport('node:async_hooks').AsyncLocalStorage<SlotStore>;\n\nconst STREAMING_SLOT_STORAGE_KEY = Symbol.for(\n\t'absolutejs.streamingSlotAsyncLocalStorage'\n);\n\nconst isObjectRecord = (value: unknown): value is Record<string, unknown> =>\n\tBoolean(value) && typeof value === 'object';\n\nconst isAsyncLocalStorage = (value: unknown): value is AsyncLocalStorageType =>\n\tisObjectRecord(value) &&\n\t'getStore' in value &&\n\ttypeof value.getStore === 'function' &&\n\t'run' in value &&\n\ttypeof value.run === 'function';\n\nconst getStorageGlobal = () => {\n\tconst value = Reflect.get(globalThis, STREAMING_SLOT_STORAGE_KEY);\n\tif (value === null || typeof value === 'undefined') {\n\t\treturn value;\n\t}\n\n\treturn isAsyncLocalStorage(value) ? value : undefined;\n};\n\nconst isServerRuntime = () =>\n\ttypeof process !== 'undefined' &&\n\ttypeof process.versions?.node === 'string';\n\nconst ensureAsyncLocalStorage = async () => {\n\tconst storage = getStorageGlobal();\n\tif (typeof storage !== 'undefined') {\n\t\treturn storage;\n\t}\n\tif (!isServerRuntime()) {\n\t\tReflect.set(globalThis, STREAMING_SLOT_STORAGE_KEY, null);\n\n\t\treturn getStorageGlobal();\n\t}\n\n\tconst mod = await import('node:async_hooks');\n\tReflect.set(\n\t\tglobalThis,\n\t\tSTREAMING_SLOT_STORAGE_KEY,\n\t\tnew mod.AsyncLocalStorage<SlotStore>()\n\t);\n\n\treturn getStorageGlobal();\n};\n\nconst getActiveSlotStore = () => {\n\tconst storage = getStorageGlobal();\n\tif (!storage) return undefined;\n\n\treturn storage.getStore();\n};\n\nconst registerStreamingSlot = (slot: StreamingSlot) => {\n\tconst store = getActiveSlotStore();\n\tif (!store) return;\n\tstore.set(slot.id, slot);\n};\n\nsetStreamingSlotRegistrar(registerStreamingSlot);\nsetStreamingSlotCollectionController({\n\tisCollecting: () => getActiveSlotStore() !== undefined\n});\n\nexport const hasActiveStreamingSlotRegistry = () =>\n\tgetActiveSlotStore() !== undefined;\n\nexport const runWithStreamingSlotRegistry = async <T>(\n\ttask: () => Promise<T> | T\n) => {\n\tconst storage = await ensureAsyncLocalStorage();\n\tif (!storage) {\n\t\tconst slots: StreamingSlot[] = [];\n\n\t\treturn {\n\t\t\tresult: await task(),\n\t\t\tslots\n\t\t};\n\t}\n\n\treturn storage.run(new Map<string, StreamingSlot>(), async () => {\n\t\tconst result = await task();\n\t\tconst store = storage.getStore();\n\n\t\treturn {\n\t\t\tresult,\n\t\t\tslots: store ? [...store.values()] : []\n\t\t};\n\t});\n};\n",
36
37
  "import { isProductionRuntime } from '../utils/runtimeMode';\nimport { AsyncLocalStorage } from 'node:async_hooks';\nimport { logWarn } from '../utils/logger';\nimport { setStreamingSlotWarningController } from './streamingSlotRegistrar';\n\ntype WarningStore = {\n\texplicitlyDisabled: boolean;\n\thandlerCallsite?: string;\n\thasWarned: boolean;\n};\n\ntype WarningStorage = AsyncLocalStorage<WarningStore>;\n\nconst STREAMING_SLOT_WARNING_STORAGE_KEY = Symbol.for(\n\t'absolutejs.streamingSlotWarningAsyncLocalStorage'\n);\n\nconst isObjectRecord = (value: unknown): value is Record<string, unknown> =>\n\tBoolean(value) && typeof value === 'object';\n\nconst isAsyncLocalStorage = (value: unknown): value is WarningStorage =>\n\tisObjectRecord(value) &&\n\t'getStore' in value &&\n\ttypeof value.getStore === 'function' &&\n\t'run' in value &&\n\ttypeof value.run === 'function';\n\nconst getWarningStorage = () => {\n\tconst value = Reflect.get(globalThis, STREAMING_SLOT_WARNING_STORAGE_KEY);\n\tif (value === null || typeof value === 'undefined') {\n\t\treturn undefined;\n\t}\n\n\treturn isAsyncLocalStorage(value) ? value : undefined;\n};\n\nconst ensureWarningStorage = () => {\n\tconst existing = getWarningStorage();\n\tif (existing) {\n\t\treturn existing;\n\t}\n\n\tconst storage = new AsyncLocalStorage<WarningStore>();\n\tReflect.set(globalThis, STREAMING_SLOT_WARNING_STORAGE_KEY, storage);\n\n\treturn storage;\n};\n\nconst normalizeCallsitePath = (value: string) =>\n\tvalue\n\t\t.replace(`${process.cwd()}/`, '')\n\t\t.replace(process.cwd(), '')\n\t\t.replace(/^\\.\\/+/, '');\n\nconst formatWarningCallsite = (callsite: string) => {\n\tconst match = callsite.match(/^(.*?)(:\\d+:\\d+)$/);\n\tif (!match) {\n\t\treturn `\\x1b[36m${callsite}\\x1b[0m`;\n\t}\n\n\treturn `\\x1b[36m${match[1]}\\x1b[33m${match[2]}\\x1b[0m`;\n};\n\nconst shouldIgnoreWarningFrame = (frame: string) =>\n\tframe.includes('/node_modules/') ||\n\tframe.includes('/dist/') ||\n\tframe.includes('/src/react/pageHandler.') ||\n\tframe.includes('/src/vue/pageHandler.') ||\n\tframe.includes('/src/svelte/pageHandler.') ||\n\tframe.includes('/src/angular/pageHandler.') ||\n\tframe.includes('/src/core/streamingSlotWarningScope.');\n\nconst getWarningLocation = (frame: string) =>\n\tframe.match(/\\((\\/[^)]+:\\d+:\\d+)\\)$/)?.[1] ??\n\tframe.match(/at (\\/[^ ]+:\\d+:\\d+)$/)?.[1];\n\nconst extractCallsiteFromStack = (stack: string) => {\n\tconst location = stack\n\t\t.split('\\n')\n\t\t.slice(1)\n\t\t.map((line) => line.trim())\n\t\t.filter((frame) => !shouldIgnoreWarningFrame(frame))\n\t\t.map((frame) => getWarningLocation(frame))\n\t\t.find((frameLocation) => frameLocation !== undefined);\n\n\treturn location ? normalizeCallsitePath(location) : undefined;\n};\n\nconst buildMissingCollectorWarning = (\n\tprimitiveName: string,\n\t{ explicitlyDisabled, handlerCallsite }: WarningStore\n) => {\n\tconst fix = explicitlyDisabled\n\t\t? 'This page handler sets { collectStreamingSlots: false }, so the slot stays on its fallback and never streams. Remove the option (or set it to true) to stream this route.'\n\t\t: 'The slot stays on its fallback and never streams. Add { collectStreamingSlots: true } to this page handler to enable out-of-order streaming for this route.';\n\n\treturn `${primitiveName} rendered during SSR without streaming slot collection enabled. ${fix}${handlerCallsite ? ` Update ${formatWarningCallsite(handlerCallsite)}.` : ''}`;\n};\n\n/* Production logs each distinct warning once per process instead of once\n * per render, so a busy route doesn't flood the log. */\nconst productionWarnings = new Set<string>();\n\nsetStreamingSlotWarningController({\n\tmaybeWarn: (primitiveName: string) => {\n\t\tconst store = getWarningStorage()?.getStore();\n\t\tif (!store || store.hasWarned) {\n\t\t\treturn;\n\t\t}\n\n\t\tstore.hasWarned = true;\n\t\tconst message = buildMissingCollectorWarning(primitiveName, store);\n\t\tif (isProductionRuntime()) {\n\t\t\tif (productionWarnings.has(message)) return;\n\t\t\tproductionWarnings.add(message);\n\t\t}\n\t\tlogWarn(message);\n\t}\n});\n\nexport const captureStreamingSlotWarningCallsite = () => {\n\tif (isProductionRuntime()) {\n\t\treturn undefined;\n\t}\n\n\tconst { stack } = new Error();\n\tif (!stack) {\n\t\treturn undefined;\n\t}\n\n\treturn extractCallsiteFromStack(stack);\n};\n\nexport const runWithStreamingSlotWarningScope = <T>(\n\ttask: () => Promise<T> | T,\n\tmetadata?: {\n\t\t/** The handler turned collection off with `collectStreamingSlots: false`\n\t\t * (rather than leaving it at a framework default of off). */\n\t\texplicitlyDisabled?: boolean;\n\t\thandlerCallsite?: string;\n\t}\n) =>\n\tensureWarningStorage().run(\n\t\t{\n\t\t\texplicitlyDisabled: metadata?.explicitlyDisabled === true,\n\t\t\thandlerCallsite: metadata?.handlerCallsite,\n\t\t\thasWarned: false\n\t\t},\n\t\ttask\n\t);\n",
37
38
  "import type { ComponentType } from 'react';\nimport type { FileRouteServerModuleFor } from '../../types/fileRoutes';\nimport {\n\tdefineFileRouteWith,\n\ttype FileRouteAdapterInput\n} from '../core/fileRouteAdapter';\nimport { asset } from '../core/lookup';\nimport { handleReactPageRequest } from './pageHandler';\n\ntype PagePropsOf<PageModule> = PageModule extends {\n\tdefault: ComponentType<infer Props>;\n}\n\t? Props\n\t: never;\n\ntype RenderableComponent = ComponentType<Record<string, unknown>>;\n\ntype ReactFileRouteInput<\n\tPath extends string,\n\tPageModule,\n\tServerModule\n> = FileRouteAdapterInput<Path> & {\n\tpage: () => Promise<PageModule>;\n\tserver?: () => Promise<ServerModule>;\n};\n\nconst isReactComponent = (value: unknown): value is RenderableComponent =>\n\ttypeof value === 'function' ||\n\t(typeof value === 'object' && value !== null && '$$typeof' in value);\n\n/** One React file route, as written by the generated route module. The\n * type arguments check the route at compile time: `ServerModule`'s `load`\n * must accept this path's params and return the page component's props\n * (and must exist when the page has required props). */\nexport const reactFileRoute = <\n\tPath extends string,\n\tPageModule extends { default: unknown },\n\tServerModule extends FileRouteServerModuleFor<Path, PagePropsOf<PageModule>>\n>(\n\troute: ReactFileRouteInput<Path, PageModule, ServerModule>\n) =>\n\tdefineFileRouteWith(\n\t\t'react',\n\t\troute,\n\t\tasync ({ manifest, props, request }) => {\n\t\t\tconst { default: Page } = await route.page();\n\t\t\tif (!isReactComponent(Page)) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`File route ${route.source} has no default-exported React component.`\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn handleReactPageRequest<Record<string, unknown>>({\n\t\t\t\tindex: asset(manifest, `${route.name}Index`),\n\t\t\t\tPage,\n\t\t\t\tprops,\n\t\t\t\trequest\n\t\t\t});\n\t\t}\n\t);\n",
38
- "import { readFile } from 'node:fs/promises';\nimport { dirname, join } from 'node:path';\nimport { readCspNonce } from '../../utils/cspNonceRef';\nimport { isProductionRuntime } from '../../utils/runtimeMode';\nimport { getCurrentAbsoluteRequest } from '../../core/requestContext';\nimport {\n\tstreamingPageHeaders,\n\twithPageCacheHeaders\n} from '../../core/pageResponseCache';\nimport {\n\ttype StreamingSlotEnhancerOptions,\n\twithRegisteredStreamingSlots\n} from '../../core/responseEnhancers';\nimport {\n\tcaptureStreamingSlotWarningCallsite,\n\trunWithStreamingSlotWarningScope\n} from '../../core/streamingSlotWarningScope';\nimport { getCurrentRouteRegistrationCallsite } from '../../core/devRouteRegistrationCallsite';\nimport { ssrErrorPage } from '../../utils/ssrErrorPage';\nimport { BROWSER_TRANSLATION_BASELINE_SCRIPT } from '../../core/browserTranslation';\nimport { REACT_SERVER_RUNTIME_FILE } from './constants';\nimport { injectFlightPayload } from './flightPayload';\n\nexport type ReactServerPageRequestInput<\n\tProps extends Record<string, unknown> = Record<never, never>\n> = StreamingSlotEnhancerOptions & {\n\t/** Buffer the response so it can carry a content-hash `ETag`. */\n\tbufferStreamForEtag?: boolean;\n\t/** Collect streaming slots rendered by the page. On by default; set\n\t * `false` to turn it off (slots then keep their fallback). */\n\tcollectStreamingSlots?: boolean;\n\t/** `asset(manifest, '<Page>RSC')`: the page's react-server bundle. */\n\tpage: string;\n\trequest?: Request;\n} & (keyof Props extends never\n\t\t? { props?: NoInfer<Props> }\n\t\t: { props: NoInfer<Props> });\n\ntype FlightRenderOptions = {\n\tonError: (error: unknown) => void;\n};\ntype ReactServerPageModule = {\n\tPage: unknown;\n\tclientManifest: Record<string, unknown>;\n\tcreateElement: (type: unknown, props?: unknown) => unknown;\n\trenderToReadableStream: (\n\t\tmodel: unknown,\n\t\tmanifest: Record<string, unknown>,\n\t\toptions: FlightRenderOptions\n\t) => ReadableStream<Uint8Array>;\n};\ntype HtmlRenderOptions = {\n\tbootstrapModules: string[];\n\tbootstrapScriptContent: string;\n\tnonce: string | undefined;\n\tonError: (error: unknown) => void;\n};\ntype ReactServerRendererModule = {\n\trenderHtml: (\n\t\tflight: ReadableStream<Uint8Array>,\n\t\toptions: HtmlRenderOptions\n\t) => Promise<ReadableStream<Uint8Array>>;\n};\ntype ReactServerRuntime = { client: string; ssr: string };\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n\ttypeof value === 'object' && value !== null;\n\nconst isPageModule = (value: unknown): value is ReactServerPageModule =>\n\tisRecord(value) &&\n\ttypeof value.Page === 'function' &&\n\tisRecord(value.clientManifest) &&\n\ttypeof value.createElement === 'function' &&\n\ttypeof value.renderToReadableStream === 'function';\n\nconst isRendererModule = (value: unknown): value is ReactServerRendererModule =>\n\tisRecord(value) && typeof value.renderHtml === 'function';\n\nconst isRuntime = (value: unknown): value is ReactServerRuntime =>\n\tisRecord(value) &&\n\ttypeof value.client === 'string' &&\n\ttypeof value.ssr === 'string';\n\nconst runtimeCache = new Map<string, Promise<ReactServerRuntime>>();\n\nconst loadRuntime = async (pagePath: string) => {\n\tconst runtimeDir = dirname(pagePath);\n\tconst parsed: unknown = JSON.parse(\n\t\tawait readFile(join(runtimeDir, REACT_SERVER_RUNTIME_FILE), 'utf8')\n\t);\n\tif (!isRuntime(parsed)) {\n\t\tthrow new Error(\n\t\t\t`Invalid ${REACT_SERVER_RUNTIME_FILE} in ${runtimeDir}`\n\t\t);\n\t}\n\n\treturn { client: parsed.client, ssr: join(runtimeDir, parsed.ssr) };\n};\n\n/* Production builds never change under a running server; dev rebuilds\n * rewrite the runtime file whenever a client component changes, so it is\n * read per request there. */\nconst readRuntime = (pagePath: string) => {\n\tif (!isProductionRuntime()) return loadRuntime(pagePath);\n\tconst cached = runtimeCache.get(pagePath);\n\tif (cached) return cached;\n\tconst loading = loadRuntime(pagePath);\n\truntimeCache.set(pagePath, loading);\n\tloading.catch(() => runtimeCache.delete(pagePath));\n\n\treturn loading;\n};\n\nconst loadPageModule = async (pagePath: string) => {\n\tconst loaded: unknown = await import(pagePath);\n\tif (!isPageModule(loaded)) {\n\t\tthrow new Error(\n\t\t\t`${pagePath} is not a React Server Components page bundle. ` +\n\t\t\t\t'Pass asset(manifest, \"<Page>RSC\") and give the page a default export.'\n\t\t);\n\t}\n\n\treturn loaded;\n};\n\nconst loadRenderer = async (rendererPath: string) => {\n\tconst loaded: unknown = await import(rendererPath);\n\tif (!isRendererModule(loaded)) {\n\t\tthrow new Error(\n\t\t\t`${rendererPath} is not a React Server Components renderer.`\n\t\t);\n\t}\n\n\treturn loaded;\n};\n\nconst logRenderError = (error: unknown) => {\n\tconsole.error('[SSR] React Server Components error:', error);\n};\n\nexport const handleReactServerPageRequest = async <\n\tProps extends Record<string, unknown> = Record<never, never>\n>(\n\tinput: ReactServerPageRequestInput<Props>\n) => {\n\tconst request = input.request ?? getCurrentAbsoluteRequest();\n\tif (input.page === '') {\n\t\tthrow new Error(\n\t\t\t'React Server Components page bundle not found in manifest. ' +\n\t\t\t\t'Is reactServerComponentsDirectory set in absolute.config.ts?'\n\t\t);\n\t}\n\n\ttry {\n\t\t// Slot collection is on unless the handler opts out with `false`:\n\t\t// installing the collector costs nothing when no slot registers.\n\t\tconst collectStreamingSlots = input.collectStreamingSlots !== false;\n\t\tconst handlerCallsite = collectStreamingSlots\n\t\t\t? undefined\n\t\t\t: (getCurrentRouteRegistrationCallsite() ??\n\t\t\t\tcaptureStreamingSlotWarningCallsite());\n\t\tconst renderPageResponse = async () => {\n\t\t\tconst [pageModule, runtime] = await Promise.all([\n\t\t\t\tloadPageModule(input.page),\n\t\t\t\treadRuntime(input.page)\n\t\t\t]);\n\t\t\tconst renderer = await loadRenderer(runtime.ssr);\n\t\t\tconst nonce = readCspNonce();\n\t\t\tconst flight = pageModule.renderToReadableStream(\n\t\t\t\tpageModule.createElement(pageModule.Page, input.props ?? {}),\n\t\t\t\tpageModule.clientManifest,\n\t\t\t\t{ onError: logRenderError }\n\t\t\t);\n\t\t\tconst [forHtml, forPayload] = flight.tee();\n\t\t\tconst html = await renderer.renderHtml(forHtml, {\n\t\t\t\tbootstrapModules: [runtime.client],\n\t\t\t\tbootstrapScriptContent: BROWSER_TRANSLATION_BASELINE_SCRIPT,\n\t\t\t\tnonce,\n\t\t\t\tonError: logRenderError\n\t\t\t});\n\n\t\t\treturn new Response(injectFlightPayload(html, forPayload, nonce), {\n\t\t\t\theaders: streamingPageHeaders()\n\t\t\t});\n\t\t};\n\n\t\tconst pageResponse = await runWithStreamingSlotWarningScope(\n\t\t\t() =>\n\t\t\t\tcollectStreamingSlots\n\t\t\t\t\t? withRegisteredStreamingSlots(renderPageResponse, input)\n\t\t\t\t\t: renderPageResponse(),\n\t\t\t{ explicitlyDisabled: !collectStreamingSlots, handlerCallsite }\n\t\t);\n\n\t\treturn withPageCacheHeaders(pageResponse, request, {\n\t\t\tbufferStreamForEtag: input.bufferStreamForEtag\n\t\t});\n\t} catch (error) {\n\t\tlogRenderError(error);\n\n\t\treturn withPageCacheHeaders(\n\t\t\tnew Response(ssrErrorPage('react', error), {\n\t\t\t\theaders: { 'Content-Type': 'text/html' },\n\t\t\t\tstatus: 500\n\t\t\t}),\n\t\t\trequest\n\t\t);\n\t}\n};\n",
39
- "import { nonceAttr } from '../../utils/cspNonceRef';\nimport { REACT_SERVER_PAYLOAD_GLOBAL } from './constants';\n\n/* Inlines the Flight (RSC) payload into the HTML stream so the browser\n * hydrates from the same render instead of fetching it again. Each decoded\n * Flight chunk becomes\n * <script nonce>(self.X??=[]).push(\"…\")</script>\n * once the <body> has opened, and the rest lands just before </body>. The\n * hydration entry drains that array into a ReadableStream. */\n\nconst BODY_OPEN = /<body[\\s>]/i;\nconst BODY_CLOSE = '</body>';\n\n/* JSON escapes quotes and control characters; `<` is escaped too so the\n * payload can never close the script element or open a comment. */\nconst escapePayloadChunk = (chunk: string) =>\n\tJSON.stringify(chunk)\n\t\t.replace(/</g, '\\\\u003c')\n\t\t.replace(/\\u2028/g, '\\\\u2028')\n\t\t.replace(/\\u2029/g, '\\\\u2029');\n\nexport const flightPayloadScript = (chunk: string, nonce?: string) =>\n\t`<script${nonceAttr(nonce)}>(self.${REACT_SERVER_PAYLOAD_GLOBAL}??=[]).push(${escapePayloadChunk(chunk)})</script>`;\n\n/* Decodes a byte stream as UTF-8 text, calling `onText` per chunk (a\n * multi-byte character split across chunks is held until complete). */\nconst readText = async (\n\tstream: ReadableStream<Uint8Array>,\n\tonText: (text: string) => void\n) => {\n\tconst reader = stream.getReader();\n\tconst decoder = new TextDecoder();\n\tconst step = async (): Promise<void> => {\n\t\tconst { done, value } = await reader.read();\n\t\tif (done) {\n\t\t\tonText(decoder.decode());\n\n\t\t\treturn;\n\t\t}\n\t\tonText(decoder.decode(value, { stream: true }));\n\t\tawait step();\n\t};\n\tawait step();\n};\n\nconst takeAll = (pending: string[]) => pending.splice(0).join('');\n\nexport const injectFlightPayload = (\n\thtml: ReadableStream<Uint8Array>,\n\tflight: ReadableStream<Uint8Array>,\n\tnonce?: string\n) => {\n\tconst encoder = new TextEncoder();\n\tconst pending: string[] = [];\n\tconst flightDone = readText(flight, (text) => {\n\t\tif (text) pending.push(flightPayloadScript(text, nonce));\n\t});\n\t// Surfaced when the HTML stream finishes; never an unhandled rejection.\n\tflightDone.catch(() => undefined);\n\tlet bodyOpen = false;\n\tlet tail = '';\n\n\tconst handleHtml = (\n\t\tcontroller: ReadableStreamDefaultController<Uint8Array>,\n\t\ttext: string\n\t) => {\n\t\tif (!text) return;\n\t\tif (tail) {\n\t\t\ttail += text;\n\n\t\t\treturn;\n\t\t}\n\t\tconst closeIndex = text.indexOf(BODY_CLOSE);\n\t\tif (closeIndex >= 0) {\n\t\t\ttail = text.slice(closeIndex);\n\t\t\tcontroller.enqueue(\n\t\t\t\tencoder.encode(text.slice(0, closeIndex) + takeAll(pending))\n\t\t\t);\n\n\t\t\treturn;\n\t\t}\n\t\tbodyOpen = bodyOpen || BODY_OPEN.test(text);\n\t\tcontroller.enqueue(\n\t\t\tencoder.encode(bodyOpen ? text + takeAll(pending) : text)\n\t\t);\n\t};\n\n\tconst pump = async (\n\t\tcontroller: ReadableStreamDefaultController<Uint8Array>\n\t) => {\n\t\ttry {\n\t\t\tawait readText(html, (text) => handleHtml(controller, text));\n\t\t\tawait flightDone;\n\t\t\tcontroller.enqueue(encoder.encode(takeAll(pending) + tail));\n\t\t\tcontroller.close();\n\t\t} catch (error) {\n\t\t\tcontroller.error(error);\n\t\t}\n\t};\n\n\treturn new ReadableStream<Uint8Array>({\n\t\tstart(controller) {\n\t\t\tvoid pump(controller);\n\t\t}\n\t});\n};\n"
39
+ "import { AsyncLocalStorage } from 'node:async_hooks';\nimport { readFile } from 'node:fs/promises';\nimport { dirname, join } from 'node:path';\nimport { readCspNonce } from '../../utils/cspNonceRef';\nimport { isProductionRuntime } from '../../utils/runtimeMode';\nimport { getCurrentAbsoluteRequest } from '../../core/requestContext';\nimport {\n\tstreamingPageHeaders,\n\twithPageCacheHeaders\n} from '../../core/pageResponseCache';\nimport {\n\ttype StreamingSlotEnhancerOptions,\n\twithRegisteredStreamingSlots\n} from '../../core/responseEnhancers';\nimport {\n\tcaptureStreamingSlotWarningCallsite,\n\trunWithStreamingSlotWarningScope\n} from '../../core/streamingSlotWarningScope';\nimport { getCurrentRouteRegistrationCallsite } from '../../core/devRouteRegistrationCallsite';\nimport { ssrErrorPage } from '../../utils/ssrErrorPage';\nimport { BROWSER_TRANSLATION_BASELINE_SCRIPT } from '../../core/browserTranslation';\nimport { REACT_SERVER_RUNTIME_FILE } from './constants';\nimport { injectFlightPayload } from './flightPayload';\nimport {\n\ttype ReactServerNodeRenderer,\n\trunWithReactServerNodeRenderer\n} from './nodeRendererRef';\n\nexport type ReactServerPageRequestInput<\n\tProps extends Record<string, unknown> = Record<never, never>\n> = StreamingSlotEnhancerOptions & {\n\t/** Buffer the response so it can carry a content-hash `ETag`. */\n\tbufferStreamForEtag?: boolean;\n\t/** Collect streaming slots rendered by the page. On by default; set\n\t * `false` to turn it off (slots then keep their fallback). */\n\tcollectStreamingSlots?: boolean;\n\t/** `asset(manifest, '<Page>RSC')`: the page's react-server bundle. */\n\tpage: string;\n\trequest?: Request;\n} & (keyof Props extends never\n\t\t? { props?: NoInfer<Props> }\n\t\t: { props: NoInfer<Props> });\n\ntype FlightRenderOptions = {\n\tonError: (error: unknown) => void;\n};\ntype ReactServerPageModule = {\n\tPage: unknown;\n\tclientManifest: Record<string, unknown>;\n\tcreateElement: (type: unknown, props?: unknown) => unknown;\n\trenderToReadableStream: (\n\t\tmodel: unknown,\n\t\tmanifest: Record<string, unknown>,\n\t\toptions: FlightRenderOptions\n\t) => ReadableStream<Uint8Array>;\n};\ntype HtmlRenderOptions = {\n\tbootstrapModules: string[];\n\tbootstrapScriptContent: string;\n\tnonce: string | undefined;\n\tonError: (error: unknown) => void;\n};\ntype ReactServerRendererModule = {\n\trenderHtml: (\n\t\tflight: ReadableStream<Uint8Array>,\n\t\toptions: HtmlRenderOptions\n\t) => Promise<ReadableStream<Uint8Array>>;\n\t/** Absent from renderers built before SuspenseSlot rendered in RSC. */\n\trenderStaticHtml?: (flight: ReadableStream<Uint8Array>) => Promise<string>;\n};\ntype ReactServerRuntime = { client: string; ssr: string };\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n\ttypeof value === 'object' && value !== null;\n\nconst isPageModule = (value: unknown): value is ReactServerPageModule =>\n\tisRecord(value) &&\n\ttypeof value.Page === 'function' &&\n\tisRecord(value.clientManifest) &&\n\ttypeof value.createElement === 'function' &&\n\ttypeof value.renderToReadableStream === 'function';\n\nconst isRendererModule = (value: unknown): value is ReactServerRendererModule =>\n\tisRecord(value) && typeof value.renderHtml === 'function';\n\nconst isRuntime = (value: unknown): value is ReactServerRuntime =>\n\tisRecord(value) &&\n\ttypeof value.client === 'string' &&\n\ttypeof value.ssr === 'string';\n\nconst runtimeCache = new Map<string, Promise<ReactServerRuntime>>();\n\nconst loadRuntime = async (pagePath: string) => {\n\tconst runtimeDir = dirname(pagePath);\n\tconst parsed: unknown = JSON.parse(\n\t\tawait readFile(join(runtimeDir, REACT_SERVER_RUNTIME_FILE), 'utf8')\n\t);\n\tif (!isRuntime(parsed)) {\n\t\tthrow new Error(\n\t\t\t`Invalid ${REACT_SERVER_RUNTIME_FILE} in ${runtimeDir}`\n\t\t);\n\t}\n\n\treturn { client: parsed.client, ssr: join(runtimeDir, parsed.ssr) };\n};\n\n/* Production builds never change under a running server; dev rebuilds\n * rewrite the runtime file whenever a client component changes, so it is\n * read per request there. */\nconst readRuntime = (pagePath: string) => {\n\tif (!isProductionRuntime()) return loadRuntime(pagePath);\n\tconst cached = runtimeCache.get(pagePath);\n\tif (cached) return cached;\n\tconst loading = loadRuntime(pagePath);\n\truntimeCache.set(pagePath, loading);\n\tloading.catch(() => runtimeCache.delete(pagePath));\n\n\treturn loading;\n};\n\nconst loadPageModule = async (pagePath: string) => {\n\tconst loaded: unknown = await import(pagePath);\n\tif (!isPageModule(loaded)) {\n\t\tthrow new Error(\n\t\t\t`${pagePath} is not a React Server Components page bundle. ` +\n\t\t\t\t'Pass asset(manifest, \"<Page>RSC\") and give the page a default export.'\n\t\t);\n\t}\n\n\treturn loaded;\n};\n\nconst loadRenderer = async (rendererPath: string) => {\n\tconst loaded: unknown = await import(rendererPath);\n\tif (!isRendererModule(loaded)) {\n\t\tthrow new Error(\n\t\t\t`${rendererPath} is not a React Server Components renderer.`\n\t\t);\n\t}\n\n\treturn loaded;\n};\n\nconst logRenderError = (error: unknown) => {\n\tconsole.error('[SSR] React Server Components error:', error);\n};\n\n/* What a SuspenseSlot rendered by this page uses to turn its resolved node\n * into HTML (see nodeRendererRef): the node goes through the page's own\n * Flight server and the build's SSR renderer. */\nconst createNodeRenderer = (\n\tpageModule: ReactServerPageModule,\n\trenderer: ReactServerRendererModule\n) => {\n\tconst { renderStaticHtml } = renderer;\n\tif (!renderStaticHtml) return undefined;\n\tconst render: ReactServerNodeRenderer = (node) =>\n\t\trenderStaticHtml(\n\t\t\tpageModule.renderToReadableStream(node, pageModule.clientManifest, {\n\t\t\t\tonError: logRenderError\n\t\t\t})\n\t\t);\n\n\treturn render;\n};\n\nconst createRendererStorage = () =>\n\tnew AsyncLocalStorage<ReactServerNodeRenderer>();\n\nexport const handleReactServerPageRequest = async <\n\tProps extends Record<string, unknown> = Record<never, never>\n>(\n\tinput: ReactServerPageRequestInput<Props>\n) => {\n\tconst request = input.request ?? getCurrentAbsoluteRequest();\n\tif (input.page === '') {\n\t\tthrow new Error(\n\t\t\t'React Server Components page bundle not found in manifest. ' +\n\t\t\t\t'Is reactServerComponentsDirectory set in absolute.config.ts?'\n\t\t);\n\t}\n\n\ttry {\n\t\t// Slot collection is on unless the handler opts out with `false`:\n\t\t// installing the collector costs nothing when no slot registers.\n\t\tconst collectStreamingSlots = input.collectStreamingSlots !== false;\n\t\tconst handlerCallsite = collectStreamingSlots\n\t\t\t? undefined\n\t\t\t: (getCurrentRouteRegistrationCallsite() ??\n\t\t\t\tcaptureStreamingSlotWarningCallsite());\n\t\tconst renderPageResponse = async () => {\n\t\t\tconst [pageModule, runtime] = await Promise.all([\n\t\t\t\tloadPageModule(input.page),\n\t\t\t\treadRuntime(input.page)\n\t\t\t]);\n\t\t\tconst renderer = await loadRenderer(runtime.ssr);\n\t\t\tconst nonce = readCspNonce();\n\t\t\tconst renderFlight = () =>\n\t\t\t\tpageModule.renderToReadableStream(\n\t\t\t\t\tpageModule.createElement(\n\t\t\t\t\t\tpageModule.Page,\n\t\t\t\t\t\tinput.props ?? {}\n\t\t\t\t\t),\n\t\t\t\t\tpageModule.clientManifest,\n\t\t\t\t\t{ onError: logRenderError }\n\t\t\t\t);\n\t\t\tconst nodeRenderer = createNodeRenderer(pageModule, renderer);\n\t\t\tconst flight = nodeRenderer\n\t\t\t\t? runWithReactServerNodeRenderer(\n\t\t\t\t\t\tnodeRenderer,\n\t\t\t\t\t\tcreateRendererStorage,\n\t\t\t\t\t\trenderFlight\n\t\t\t\t\t)\n\t\t\t\t: renderFlight();\n\t\t\tconst [forHtml, forPayload] = flight.tee();\n\t\t\tconst html = await renderer.renderHtml(forHtml, {\n\t\t\t\tbootstrapModules: [runtime.client],\n\t\t\t\t// Streamed slots wait for hydration (released by the\n\t\t\t\t// client entry), as on Svelte and Vue pages.\n\t\t\t\tbootstrapScriptContent: `${BROWSER_TRANSLATION_BASELINE_SCRIPT}window.__ABS_SLOT_HYDRATION_PENDING__=true;`,\n\t\t\t\tnonce,\n\t\t\t\tonError: logRenderError\n\t\t\t});\n\n\t\t\treturn new Response(injectFlightPayload(html, forPayload, nonce), {\n\t\t\t\theaders: streamingPageHeaders()\n\t\t\t});\n\t\t};\n\n\t\tconst pageResponse = await runWithStreamingSlotWarningScope(\n\t\t\t() =>\n\t\t\t\tcollectStreamingSlots\n\t\t\t\t\t? withRegisteredStreamingSlots(renderPageResponse, input)\n\t\t\t\t\t: renderPageResponse(),\n\t\t\t{ explicitlyDisabled: !collectStreamingSlots, handlerCallsite }\n\t\t);\n\n\t\treturn withPageCacheHeaders(pageResponse, request, {\n\t\t\tbufferStreamForEtag: input.bufferStreamForEtag\n\t\t});\n\t} catch (error) {\n\t\tlogRenderError(error);\n\n\t\treturn withPageCacheHeaders(\n\t\t\tnew Response(ssrErrorPage('react', error), {\n\t\t\t\theaders: { 'Content-Type': 'text/html' },\n\t\t\t\tstatus: 500\n\t\t\t}),\n\t\t\trequest\n\t\t);\n\t}\n};\n",
40
+ "import { nonceAttr } from '../../utils/cspNonceRef';\nimport { REACT_SERVER_PAYLOAD_GLOBAL } from './constants';\n\n/* Inlines the Flight (RSC) payload into the HTML stream so the browser\n * hydrates from the same render instead of fetching it again. Each decoded\n * Flight chunk becomes\n * <script nonce>(self.X??=[]).push(\"…\")</script>\n * once the <body> has opened, and the rest lands just before </body>. The\n * hydration entry drains that array into a ReadableStream. */\n\nconst BODY_OPEN = /<body[\\s>]/i;\nconst BODY_CLOSE = '</body>';\n\n/* JSON escapes quotes and control characters; `<` is escaped too so the\n * payload can never close the script element or open a comment. */\nconst escapePayloadChunk = (chunk: string) =>\n\tJSON.stringify(chunk)\n\t\t.replace(/</g, '\\\\u003c')\n\t\t.replace(/\\u2028/g, '\\\\u2028')\n\t\t.replace(/\\u2029/g, '\\\\u2029');\n\nexport const flightPayloadScript = (chunk: string, nonce?: string) =>\n\t`<script${nonceAttr(nonce)}>(self.${REACT_SERVER_PAYLOAD_GLOBAL}??=[]).push(${escapePayloadChunk(chunk)})</script>`;\n\n/* Decodes a byte stream as UTF-8 text, calling `onText` per chunk (a\n * multi-byte character split across chunks is held until complete). */\nconst readText = async (\n\tstream: ReadableStream<Uint8Array>,\n\tonText: (text: string) => void\n) => {\n\tconst reader = stream.getReader();\n\tconst decoder = new TextDecoder();\n\tconst step = async (): Promise<void> => {\n\t\tconst { done, value } = await reader.read();\n\t\tif (done) {\n\t\t\tonText(decoder.decode());\n\n\t\t\treturn;\n\t\t}\n\t\tonText(decoder.decode(value, { stream: true }));\n\t\tawait step();\n\t};\n\tawait step();\n};\n\nconst takeAll = (pending: string[]) => pending.splice(0).join('');\n\nexport const injectFlightPayload = (\n\thtml: ReadableStream<Uint8Array>,\n\tflight: ReadableStream<Uint8Array>,\n\tnonce?: string\n) => {\n\tconst encoder = new TextEncoder();\n\tconst pending: string[] = [];\n\tconst flightDone = readText(flight, (text) => {\n\t\tif (text) pending.push(flightPayloadScript(text, nonce));\n\t});\n\t// Surfaced when the HTML stream finishes; never an unhandled rejection.\n\tflightDone.catch(() => undefined);\n\tlet bodyOpen = false;\n\tlet tail = '';\n\n\tconst handleHtml = (\n\t\tcontroller: ReadableStreamDefaultController<Uint8Array>,\n\t\ttext: string\n\t) => {\n\t\tif (!text) return;\n\t\tif (tail) {\n\t\t\ttail += text;\n\n\t\t\treturn;\n\t\t}\n\t\tconst closeIndex = text.indexOf(BODY_CLOSE);\n\t\tif (closeIndex >= 0) {\n\t\t\ttail = text.slice(closeIndex);\n\t\t\tcontroller.enqueue(\n\t\t\t\tencoder.encode(text.slice(0, closeIndex) + takeAll(pending))\n\t\t\t);\n\n\t\t\treturn;\n\t\t}\n\t\tbodyOpen = bodyOpen || BODY_OPEN.test(text);\n\t\tcontroller.enqueue(\n\t\t\tencoder.encode(bodyOpen ? text + takeAll(pending) : text)\n\t\t);\n\t};\n\n\tconst pump = async (\n\t\tcontroller: ReadableStreamDefaultController<Uint8Array>\n\t) => {\n\t\ttry {\n\t\t\tawait readText(html, (text) => handleHtml(controller, text));\n\t\t\tawait flightDone;\n\t\t\tcontroller.enqueue(encoder.encode(takeAll(pending) + tail));\n\t\t\tcontroller.close();\n\t\t} catch (error) {\n\t\t\tcontroller.error(error);\n\t\t}\n\t};\n\n\treturn new ReadableStream<Uint8Array>({\n\t\tstart(controller) {\n\t\t\tvoid pump(controller);\n\t\t}\n\t});\n};\n",
41
+ "/* How a SuspenseSlot inside a React Server Component turns its resolved\n * React node into HTML. Classic SSR renders it with react-dom/server, but a\n * server component runs on React's react-server build, where react-dom/server\n * throws on import (\"not supported in React Server Components\"), so the slot\n * silently kept its fallback. handleReactServerPageRequest provides a\n * renderer for the duration of the Flight render instead: the node goes\n * through Flight and then the build's SSR renderer, the same way the page\n * itself does.\n *\n * The storage sits on globalThis: the slot runs from the page's\n * react-server bundle, the handler from the framework's own module, and\n * each has its copy of this file. No node: imports here, so the slot's\n * module stays importable anywhere. */\n\nexport type ReactServerNodeRenderer = (node: unknown) => Promise<string>;\n\ntype RendererStorage = {\n\tgetStore: () => unknown;\n\trun: <Result>(\n\t\tstore: ReactServerNodeRenderer,\n\t\tcallback: () => Result\n\t) => Result;\n};\n\nconst STORAGE_KEY = Symbol.for('absolutejs.reactServerNodeRendererStorage');\n\nconst isRendererStorage = (value: unknown): value is RendererStorage =>\n\ttypeof value === 'object' &&\n\tvalue !== null &&\n\t'getStore' in value &&\n\ttypeof value.getStore === 'function' &&\n\t'run' in value &&\n\ttypeof value.run === 'function';\n\nconst isRenderer = (value: unknown): value is ReactServerNodeRenderer =>\n\ttypeof value === 'function';\n\nconst readStorage = () => {\n\tconst storage: unknown = Reflect.get(globalThis, STORAGE_KEY);\n\n\treturn isRendererStorage(storage) ? storage : undefined;\n};\n\n/** The renderer of the React Server Components render in progress, or\n * undefined outside one (classic SSR). */\nexport const getReactServerNodeRenderer = () => {\n\tconst store = readStorage()?.getStore();\n\n\treturn isRenderer(store) ? store : undefined;\n};\n\n/** Runs `render` (the Flight render) with `renderer` available to the\n * SuspenseSlots it renders. `createStorage` makes the AsyncLocalStorage\n * on first use. */\nexport const runWithReactServerNodeRenderer = <Result>(\n\trenderer: ReactServerNodeRenderer,\n\tcreateStorage: () => RendererStorage,\n\trender: () => Result\n) => {\n\tlet storage = readStorage();\n\tif (!storage) {\n\t\tstorage = createStorage();\n\t\tReflect.set(globalThis, STORAGE_KEY, storage);\n\t}\n\n\treturn storage.run(renderer, render);\n};\n"
40
42
  ],
41
- "mappings": "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",
42
- "debugId": "FB633E162EB858B764756E2164756E21",
43
+ "mappings": "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",
44
+ "debugId": "567A32D4B8B7FF0164756E2164756E21",
43
45
  "names": []
44
46
  }