@absolutejs/absolute 0.19.0-beta.366 → 0.19.0-beta.368
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.
- package/dist/angular/browser.js +13 -8
- package/dist/angular/browser.js.map +4 -4
- package/dist/angular/components/core/streamingSlotRegistrar.js +4 -3
- package/dist/angular/components/core/streamingSlotRegistry.js +4 -3
- package/dist/angular/index.js +668 -622
- package/dist/angular/index.js.map +8 -8
- package/dist/build.js +24 -579
- package/dist/build.js.map +4 -10
- package/dist/client/index.js +45 -44
- package/dist/client/index.js.map +4 -4
- package/dist/index.js +1322 -1138
- package/dist/index.js.map +28 -22
- package/dist/react/components/browser/index.js +9 -20
- package/dist/react/components/index.js +17 -35
- package/dist/react/components/index.js.map +5 -6
- package/dist/react/index.js +1125 -1095
- package/dist/react/index.js.map +12 -12
- package/dist/react/server.js +3 -574
- package/dist/react/server.js.map +4 -11
- package/dist/src/core/pageHandlers.d.ts +1 -0
- package/dist/src/react/index.d.ts +1 -1
- package/dist/svelte/index.js +1506 -1460
- package/dist/svelte/index.js.map +8 -8
- package/dist/vue/components/index.js +13 -8
- package/dist/vue/components/index.js.map +5 -5
- package/dist/vue/index.js +667 -619
- package/dist/vue/index.js.map +8 -8
- package/package.json +1 -1
- package/dist/src/react/streamingSlotCollection.d.ts +0 -9
package/dist/react/server.js.map
CHANGED
|
@@ -1,22 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../src/core/islandPageContext.ts", "../src/
|
|
3
|
+
"sources": ["../src/core/islandPageContext.ts", "../src/utils/ssrErrorPage.ts", "../src/utils/stringModifiers.ts", "../src/utils/resolveConvention.ts", "../src/react/pageHandler.ts", "../src/react/server.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"const BOOTSTRAP_MANIFEST_KEY = 'BootstrapClient';\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\t| Record<string, Record<string, unknown>>\n\t\t| undefined;\n}\n\nconst buildIslandsHeadMarkup = (manifest: Record<string, string>) => {\n\tconst manifestScript = `<script>window.__ABSOLUTE_MANIFEST__ = ${JSON.stringify(manifest)}</script>`;\n\tconst islandStateScript = `<script>window.__ABS_ISLAND_STATE__ = ${JSON.stringify(globalThis.__ABS_ISLAND_STATE__ ?? {})}</script>`;\n\tconst bootstrapPath = manifest[BOOTSTRAP_MANIFEST_KEY];\n\tconst bootstrapScript = bootstrapPath\n\t\t? `<script 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 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\n\treturn new ReadableStream<Uint8Array>({\n\t\tasync start(controller) {\n\t\t\tconst reader = stream.getReader();\n\t\t\tlet injected = false;\n\t\t\tlet pending = '';\n\n\t\t\ttry {\n\t\t\t\tfor (;;) {\n\t\t\t\t\tconst { done, value } = await reader.read();\n\t\t\t\t\tif (done) break;\n\t\t\t\t\tif (!value) continue;\n\n\t\t\t\t\tpending += streamChunkToString(value, decoder);\n\t\t\t\t\tif (injected) {\n\t\t\t\t\t\tcontroller.enqueue(encoder.encode(pending));\n\t\t\t\t\t\tpending = '';\n\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst headIndex = pending.indexOf(CLOSING_HEAD_TAG);\n\t\t\t\t\tif (headIndex >= 0) {\n\t\t\t\t\t\tconst next = `${pending.slice(0, headIndex)}${markup}${pending.slice(headIndex)}`;\n\t\t\t\t\t\tcontroller.enqueue(encoder.encode(next));\n\t\t\t\t\t\tpending = '';\n\t\t\t\t\t\tinjected = true;\n\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (pending.length > lookbehind) {\n\t\t\t\t\t\tconst safeText = pending.slice(\n\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\tpending.length - lookbehind\n\t\t\t\t\t\t);\n\t\t\t\t\t\tcontroller.enqueue(encoder.encode(safeText));\n\t\t\t\t\t\tpending = pending.slice(-lookbehind);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tpending += decoder.decode();\n\t\t\t\tif (!injected) {\n\t\t\t\t\tpending = injectHeadMarkup(pending, markup);\n\t\t\t\t}\n\t\t\t\tif (pending.length > 0) {\n\t\t\t\t\tcontroller.enqueue(encoder.encode(pending));\n\t\t\t\t}\n\t\t\t\tcontroller.close();\n\t\t\t} catch (error) {\n\t\t\t\tcontroller.error(error);\n\t\t\t}\n\t\t}\n\t});\n};\n\nconst pipeStreamWithIslandMarkerDetection = (\n\tstream: ReadableStream<string | Uint8Array>,\n\tmarkup: string\n) => {\n\tconst encoder = new TextEncoder();\n\tconst decoder = new TextDecoder();\n\t// Keep enough context to catch split markers and find the start tag.\n\tconst lookbehind = Math.max(ISLAND_MARKER.length, 1024);\n\n\treturn new ReadableStream<Uint8Array>({\n\t\tasync start(controller) {\n\t\t\tconst reader = stream.getReader();\n\t\t\tlet injected = false;\n\t\t\tlet pending = '';\n\n\t\t\ttry {\n\t\t\t\tfor (;;) {\n\t\t\t\t\tconst { done, value } = await reader.read();\n\t\t\t\t\tif (done) break;\n\t\t\t\t\tif (!value) continue;\n\n\t\t\t\t\tpending += streamChunkToString(value, decoder);\n\t\t\t\t\tif (injected) {\n\t\t\t\t\t\tcontroller.enqueue(encoder.encode(pending));\n\t\t\t\t\t\tpending = '';\n\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst markerIndex = pending.indexOf(ISLAND_MARKER);\n\t\t\t\t\tif (markerIndex >= 0) {\n\t\t\t\t\t\tconst tagStart = pending.lastIndexOf('<', markerIndex);\n\t\t\t\t\t\tconst injectAt = tagStart >= 0 ? tagStart : markerIndex;\n\t\t\t\t\t\tconst next = `${pending.slice(0, injectAt)}${markup}${pending.slice(injectAt)}`;\n\t\t\t\t\t\tcontroller.enqueue(encoder.encode(next));\n\t\t\t\t\t\tpending = '';\n\t\t\t\t\t\tinjected = true;\n\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (pending.length > lookbehind) {\n\t\t\t\t\t\tconst safeText = pending.slice(\n\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\tpending.length - lookbehind\n\t\t\t\t\t\t);\n\t\t\t\t\t\tcontroller.enqueue(encoder.encode(safeText));\n\t\t\t\t\t\tpending = pending.slice(-lookbehind);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tpending += decoder.decode();\n\t\t\t\tif (pending.length > 0) {\n\t\t\t\t\tcontroller.enqueue(encoder.encode(pending));\n\t\t\t\t}\n\t\t\t\tcontroller.close();\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\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\treturn pipeStreamWithHeadInjection(stream, markup);\n\t}\n\tif (options?.hasIslands === false) {\n\t\treturn stream;\n\t}\n\n\treturn pipeStreamWithIslandMarkerDetection(stream, markup);\n};\nexport const setCurrentIslandManifest = (manifest: Record<string, string>) => {\n\tglobalThis.__absoluteManifest = manifest;\n};\n",
|
|
6
|
-
"declare global {\n\tinterface Window {\n\t\t__ABS_SLOT_ENQUEUE__?: (id: string, html: string) => void;\n\t\t__ABS_SLOT_PENDING__?: Record<string, string>;\n\t\t__ABS_SLOT_RUNTIME__?: boolean;\n\t}\n}\n\nconst streamSwapRuntime = () => {\n\tif (window.__ABS_SLOT_RUNTIME__ === true) return;\n\twindow.__ABS_SLOT_RUNTIME__ = true;\n\twindow.__ABS_SLOT_PENDING__ = window.__ABS_SLOT_PENDING__ ?? {};\n\tconst pending = window.__ABS_SLOT_PENDING__;\n\n\tconst apply = (id: string, html: string) => {\n\t\tconst node = document.getElementById(`slot-${id}`);\n\t\tif (!node) {\n\t\t\tpending[id] = html;\n\n\t\t\treturn;\n\t\t}\n\t\tnode.innerHTML = html;\n\t\tdelete pending[id];\n\t};\n\n\tconst flush = () => {\n\t\tfor (const id in pending) {\n\t\t\tif (!Object.prototype.hasOwnProperty.call(pending, id)) continue;\n\t\t\tapply(id, pending[id] ?? '');\n\t\t}\n\t};\n\n\twindow.__ABS_SLOT_ENQUEUE__ = (id: string, html: string) => {\n\t\tapply(id, html);\n\t};\n\n\tif (typeof MutationObserver === 'function') {\n\t\tconst observer = new MutationObserver(flush);\n\t\tconst root = document.documentElement ?? document.body ?? document;\n\t\tobserver.observe(root, { childList: true, subtree: true });\n\t}\n\n\tif (document.readyState === 'loading') {\n\t\tdocument.addEventListener('DOMContentLoaded', flush, { once: true });\n\t}\n\tflush();\n};\n\nconst stripFunctionWrapper = (value: string) => {\n\tconst start = value.indexOf('{');\n\tconst end = value.lastIndexOf('}');\n\tif (start < 0 || end <= start) return '';\n\n\treturn value.slice(start + 1, end);\n};\n\nexport const getStreamSwapRuntimeScript = () =>\n\t`(function(){${stripFunctionWrapper(streamSwapRuntime.toString())}})();`;\n",
|
|
7
|
-
"const ESCAPE_LOOKUP: Record<string, string> = {\n\t'\\u2028': '\\\\u2028',\n\t'\\u2029': '\\\\u2029',\n\t'&': '\\\\u0026',\n\t'<': '\\\\u003C',\n\t'>': '\\\\u003E'\n};\n\nconst ESCAPE_REGEX = /[&><\\u2028\\u2029]/g;\n\nexport const escapeScriptContent = (content: string) =>\n\tcontent.replace(ESCAPE_REGEX, (char) => {\n\t\tconst escaped = ESCAPE_LOOKUP[char];\n\n\t\treturn escaped !== undefined ? escaped : char;\n\t});\n",
|
|
8
|
-
"import { getStreamSwapRuntimeScript } from '../client/streamSwap';\nimport { escapeScriptContent } from './escapeScriptContent';\n\nconst SLOT_ID_PREFIX = 'abs-slot-';\nconst SLOT_PLACEHOLDER_PREFIX = 'slot-';\nconst CLOSING_HEAD_TAG = '</head>';\nconst CLOSING_HEAD_TAG_LENGTH = CLOSING_HEAD_TAG.length;\nconst CLOSING_PAGE_TAG_REGEX = /<\\/body>\\s*<\\/html>\\s*$/i;\nconst STREAMING_RUNTIME_GLOBAL = '__ABS_SLOT_ENQUEUE__';\nconst STREAMING_PENDING_GLOBAL = '__ABS_SLOT_PENDING__';\nconst STREAM_TAIL_LOOKBEHIND = 128;\nconst STREAMING_SLOT_TIMEOUT_MS = 5_000;\nconst STREAMING_SLOT_MAX_PER_RESPONSE = 128;\nconst STREAMING_SLOT_MAX_HTML_BYTES = 64_000;\n\ntype SlotResolver = () => Promise<string> | string;\ntype SlotErrorHandler = (error: unknown, slot: StreamingSlot) => void;\nexport type StreamingSlotMetricType =\n\t| 'prepared'\n\t| 'dropped'\n\t| 'resolved'\n\t| 'patched'\n\t| 'timeout'\n\t| 'size_exceeded'\n\t| 'error';\nexport type StreamingSlotMetric = {\n\ttype: StreamingSlotMetricType;\n\tslotId: string;\n\tdurationMs?: number;\n\tbytes?: number;\n\treason?: string;\n\terror?: unknown;\n};\nexport type StreamingSlotMetricHandler = (metric: StreamingSlotMetric) => void;\n\nexport type StreamingSlotPolicy = {\n\ttimeoutMs?: number;\n\tfallbackHtml?: string;\n\terrorHtml?: string;\n\tmaxSlotsPerResponse?: number;\n\tmaxSlotHtmlSizeBytes?: number;\n\tonError?: SlotErrorHandler;\n\tonSlotMetric?: StreamingSlotMetricHandler;\n};\n\ntype StreamingSlotPolicyValue = {\n\ttimeoutMs: number;\n\tfallbackHtml: string;\n\terrorHtml?: string;\n\tmaxSlotsPerResponse: number;\n\tmaxSlotHtmlSizeBytes: number;\n\tonError?: SlotErrorHandler;\n\tonSlotMetric?: StreamingSlotMetricHandler;\n};\n\nexport type StreamingSlot = {\n\terrorHtml?: string;\n\tfallbackHtml?: string;\n\tid: string;\n\ttimeoutMs?: number;\n\tresolve: SlotResolver;\n};\n\ntype DeferredStreamingSlot = Omit<StreamingSlot, 'id'> & { id?: string };\n\nexport type AppendStreamingSlotsOptions = {\n\tinjectRuntime?: boolean;\n\tnonce?: string;\n\tpolicy?: StreamingSlotPolicy;\n\tonSlotMetric?: StreamingSlotMetricHandler;\n\tonError?: (error: unknown, slot: StreamingSlot) => void;\n};\n\nexport type StreamOutOfOrderSlotsOptions = {\n\tfooterHtml?: string;\n\theaderHtml?: string;\n\tnonce?: string;\n\tpolicy?: StreamingSlotPolicy;\n\tonSlotMetric?: StreamingSlotMetricHandler;\n\tonError?: (error: unknown, slot: StreamingSlot) => void;\n\tslots: DeferredStreamingSlot[];\n};\n\nconst createSlotPlaceholderId = (id: string) =>\n\t`${SLOT_PLACEHOLDER_PREFIX}${id}`;\nconst createSlotPatchStatement = (id: string, html: string) =>\n\t`(window.${STREAMING_RUNTIME_GLOBAL}||function(i,h){window.${STREAMING_PENDING_GLOBAL}=window.${STREAMING_PENDING_GLOBAL}||{};window.${STREAMING_PENDING_GLOBAL}[i]=h;})(${JSON.stringify(id)},${JSON.stringify(html)});`;\n\nconst createNonceAttr = (nonce?: string) => (nonce ? ` nonce=\"${nonce}\"` : '');\n\nexport const createStreamingSlotId = () =>\n\t`${SLOT_ID_PREFIX}${Math.random().toString(36).slice(2, 10)}`;\n\nexport const getStreamingSlotsRuntimeScript = () =>\n\tgetStreamSwapRuntimeScript();\n\nexport const renderStreamingSlotsRuntimeTag = (nonce?: string) =>\n\t`<script${createNonceAttr(nonce)}>${escapeScriptContent(\n\t\tgetStreamingSlotsRuntimeScript()\n\t)}</script>`;\n\nexport const renderStreamingSlotPlaceholder = (id: string, fallbackHtml = '') =>\n\t`<div id=\"${createSlotPlaceholderId(id)}\" data-absolute-slot=\"true\">${fallbackHtml}</div>`;\n\nexport const renderStreamingSlotPatchTag = (\n\tid: string,\n\thtml: string,\n\tnonce?: string\n) =>\n\t`<script${createNonceAttr(nonce)}>${escapeScriptContent(\n\t\tcreateSlotPatchStatement(id, html)\n\t)}</script>`;\n\nexport const injectHtmlIntoHead = (html: string, injection: string) => {\n\tconst closingHeadIndex = html.indexOf(CLOSING_HEAD_TAG);\n\tif (closingHeadIndex >= 0) {\n\t\treturn `${html.slice(0, closingHeadIndex)}${injection}${html.slice(closingHeadIndex)}`;\n\t}\n\n\treturn `${html}${injection}`;\n};\n\nconst toUint8 = (value: string, encoder: TextEncoder) => encoder.encode(value);\n\nlet currentStreamingSlotPolicy: StreamingSlotPolicyValue = {\n\ttimeoutMs: STREAMING_SLOT_TIMEOUT_MS,\n\tfallbackHtml: '',\n\terrorHtml: undefined,\n\tmaxSlotsPerResponse: STREAMING_SLOT_MAX_PER_RESPONSE,\n\tmaxSlotHtmlSizeBytes: STREAMING_SLOT_MAX_HTML_BYTES\n};\n\nconst clonePolicy = (policy: StreamingSlotPolicyValue): StreamingSlotPolicyValue => ({\n\t...policy\n});\n\nconst normalizeSlotBytes = (value: unknown, fallback: number) => {\n\tif (typeof value === 'number' && Number.isFinite(value) && value >= 0) {\n\t\treturn Math.floor(value);\n\t}\n\n\treturn fallback;\n};\n\nconst normalizeSlotText = (value: unknown, fallback: string) =>\n\ttypeof value === 'string' ? value : fallback;\nconst normalizeSlotError = (value: unknown, fallback?: string) =>\n\ttypeof value === 'string' ? value : fallback;\nconst hasPolicyValue = (\n\tpolicy: StreamingSlotPolicy,\n\tkey: keyof StreamingSlotPolicy\n) => Object.prototype.hasOwnProperty.call(policy, key);\n\nconst applyStreamingSlotPolicyOverrides = (\n\tbase: StreamingSlotPolicyValue,\n\toverridePolicy: StreamingSlotPolicy = {}\n) => ({\n\ttimeoutMs: hasPolicyValue(overridePolicy, 'timeoutMs')\n\t\t? normalizeSlotBytes(overridePolicy.timeoutMs, base.timeoutMs)\n\t\t: base.timeoutMs,\n\tfallbackHtml: hasPolicyValue(overridePolicy, 'fallbackHtml')\n\t\t? normalizeSlotText(overridePolicy.fallbackHtml, '')\n\t\t: base.fallbackHtml,\n\terrorHtml: hasPolicyValue(overridePolicy, 'errorHtml')\n\t\t? normalizeSlotError(overridePolicy.errorHtml)\n\t\t: base.errorHtml,\n\tmaxSlotsPerResponse: hasPolicyValue(\n\t\toverridePolicy,\n\t\t'maxSlotsPerResponse'\n\t)\n\t\t? normalizeSlotBytes(\n\t\t\t\toverridePolicy.maxSlotsPerResponse,\n\t\t\t\tbase.maxSlotsPerResponse\n\t\t )\n\t\t: base.maxSlotsPerResponse,\n\tmaxSlotHtmlSizeBytes: hasPolicyValue(\n\t\toverridePolicy,\n\t\t'maxSlotHtmlSizeBytes'\n\t)\n\t\t? normalizeSlotBytes(\n\t\t\t\toverridePolicy.maxSlotHtmlSizeBytes,\n\t\t\t\tbase.maxSlotHtmlSizeBytes\n\t\t )\n\t\t: base.maxSlotHtmlSizeBytes,\n\tonError: hasPolicyValue(overridePolicy, 'onError')\n\t\t? overridePolicy.onError\n\t\t: base.onError,\n\tonSlotMetric: hasPolicyValue(overridePolicy, 'onSlotMetric')\n\t\t? overridePolicy.onSlotMetric\n\t\t: base.onSlotMetric\n});\n\nconst createCombinedSlotErrorHandler = (\n\tpolicyOnError?: SlotErrorHandler,\n\tenhancerOnError?: SlotErrorHandler\n) => {\n\tif (!policyOnError && !enhancerOnError) return undefined;\n\n\treturn (error: unknown, slot: StreamingSlot) => {\n\t\tpolicyOnError?.(error, slot);\n\t\tenhancerOnError?.(error, slot);\n\t};\n};\n\nconst createCombinedSlotMetricHandler = (\n\tpolicyOnSlotMetric?: StreamingSlotMetricHandler,\n\tcallOnSlotMetric?: StreamingSlotMetricHandler\n) => {\n\tif (!policyOnSlotMetric && !callOnSlotMetric) return undefined;\n\n\treturn (metric: StreamingSlotMetric) => {\n\t\tpolicyOnSlotMetric?.(metric);\n\t\tcallOnSlotMetric?.(metric);\n\t};\n};\n\nconst resolveStreamingSlotPolicy = (\n\toverridePolicy: StreamingSlotPolicy = {}\n): StreamingSlotPolicyValue => {\n\tconst base = getStreamingSlotPolicy();\n\n\treturn applyStreamingSlotPolicyOverrides(base, overridePolicy);\n};\n\nexport const getStreamingSlotPolicy = (): StreamingSlotPolicyValue =>\n\tclonePolicy(currentStreamingSlotPolicy);\n\nexport const setStreamingSlotPolicy = (policy: StreamingSlotPolicy = {}) => {\n\tconst base = getStreamingSlotPolicy();\n\n\tcurrentStreamingSlotPolicy = applyStreamingSlotPolicyOverrides(base, policy);\n};\n\nexport const withStreamingSlotPolicy = async <T>(\n\tpolicy: StreamingSlotPolicy,\n\tcallback: () => Promise<T> | T\n) => {\n\tconst previous = getStreamingSlotPolicy();\n\n\tsetStreamingSlotPolicy(policy);\n\ttry {\n\t\treturn await callback();\n\t} finally {\n\t\tcurrentStreamingSlotPolicy = previous;\n\t}\n};\n\nconst emitSlotMetric = (\n\tmetric: StreamingSlotMetric,\n\tonSlotMetric?: StreamingSlotMetricHandler\n) => {\n\tonSlotMetric?.(metric);\n};\n\nconst createTimeoutError = (slot: StreamingSlot, timeoutMs: number) => {\n\tconst error = new Error(\n\t\t`Streaming slot \"${slot.id}\" timed out after ${timeoutMs}ms`\n\t) as Error & { __absTimeout: true };\n\n\terror.__absTimeout = true;\n\n\treturn error;\n};\n\nconst toStreamingSlot = (\n\tslot: DeferredStreamingSlot,\n\tpolicy: StreamingSlotPolicyValue\n): StreamingSlot => ({\n\terrorHtml:\n\t\tslot.errorHtml === undefined ? policy.errorHtml : slot.errorHtml,\n\tfallbackHtml: normalizeSlotText(slot.fallbackHtml, policy.fallbackHtml),\n\tid: slot.id ?? createStreamingSlotId(),\n\ttimeoutMs: normalizeSlotBytes(slot.timeoutMs, policy.timeoutMs),\n\tresolve: slot.resolve\n});\n\nconst prepareSlots = ({\n\tpolicy,\n\tslots,\n\tonError,\n\tonSlotMetric\n}: {\n\tpolicy: StreamingSlotPolicyValue;\n\tslots: DeferredStreamingSlot[];\n\tonError?: SlotErrorHandler;\n\tonSlotMetric?: StreamingSlotMetricHandler;\n}) => {\n\tconst preparedSlots = slots.map((slot) => toStreamingSlot(slot, policy));\n\n\tconst maxSlotsPerResponse = policy.maxSlotsPerResponse;\n\tif (maxSlotsPerResponse === 0) {\n\t\tconst error = new Error('Streaming slot limit is set to 0');\n\t\tfor (const slot of preparedSlots) {\n\t\t\tonError?.(error, slot);\n\t\t\temitSlotMetric(\n\t\t\t\t{\n\t\t\t\t\ttype: 'dropped',\n\t\t\t\t\tslotId: slot.id,\n\t\t\t\t\treason: 'maxSlotsPerResponse is 0'\n\t\t\t\t},\n\t\t\t\tonSlotMetric\n\t\t\t);\n\t\t}\n\n\t\treturn [];\n\t}\n\n\tif (preparedSlots.length <= maxSlotsPerResponse) {\n\t\tpreparedSlots.forEach((slot) =>\n\t\t\temitSlotMetric(\n\t\t\t\t{\n\t\t\t\t\ttype: 'prepared',\n\t\t\t\t\tslotId: slot.id\n\t\t\t\t},\n\t\t\t\tonSlotMetric\n\t\t\t)\n\t\t);\n\n\t\treturn preparedSlots;\n\t}\n\n\tconst keptSlots = preparedSlots.slice(0, maxSlotsPerResponse);\n\tconst droppedSlots = preparedSlots.slice(maxSlotsPerResponse);\n\tdroppedSlots.forEach((slot) => {\n\t\tonError?.(\n\t\t\tnew Error(\n\t\t\t\t`Streaming slot \"${slot.id}\" dropped because ${maxSlotsPerResponse} slots is the configured maximum`\n\t\t\t),\n\t\t\tslot\n\t\t);\n\t\temitSlotMetric(\n\t\t\t{\n\t\t\t\ttype: 'dropped',\n\t\t\t\tslotId: slot.id,\n\t\t\t\treason: `maxSlotsPerResponse is ${maxSlotsPerResponse}`\n\t\t\t},\n\t\t\tonSlotMetric\n\t\t);\n\t});\n\tkeptSlots.forEach((slot) =>\n\t\temitSlotMetric(\n\t\t\t{\n\t\t\t\ttype: 'prepared',\n\t\t\t\tslotId: slot.id\n\t\t\t},\n\t\t\tonSlotMetric\n\t\t)\n\t);\n\n\treturn keptSlots;\n};\n\nconst htmlByteLength = (value: string, encoder: TextEncoder) =>\n\tencoder.encode(value).length;\n\ntype ResolvedStreamingSlot = {\n\thtml: string | null;\n\tid: string;\n\tdurationMs: number;\n\tbytes: number;\n};\n\nconst resolveSlot = async (\n\tslot: StreamingSlot,\n\tonError?: SlotErrorHandler,\n\tpolicy?: StreamingSlotPolicyValue,\n\tonSlotMetric?: StreamingSlotMetricHandler\n) => {\n\tconst safePolicy = policy ?? getStreamingSlotPolicy();\n\tconst encoder = new TextEncoder();\n\tconst start = Date.now();\n\ttry {\n\t\tconst maybeAsyncValue = Promise.resolve(slot.resolve());\n\t\tconst resolved =\n\t\t\ttypeof slot.timeoutMs === 'number' && slot.timeoutMs > 0\n\t\t\t\t? await Promise.race([\n\t\t\t\t\t\tmaybeAsyncValue,\n\t\t\t\t\t\tnew Promise<string>((_, reject) =>\n\t\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\t\treject(\n\t\t\t\t\t\t\t\t\tcreateTimeoutError(\n\t\t\t\t\t\t\t\t\t\tslot,\n\t\t\t\t\t\t\t\t\t\tslot.timeoutMs ?? 0\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}, slot.timeoutMs)\n\t\t\t\t\t\t)\n\t\t\t\t\t])\n\t\t\t\t: await maybeAsyncValue;\n\t\tconst html = typeof resolved === 'string' ? resolved : `${resolved}`;\n\t\tif (\n\t\t\tsafePolicy.maxSlotHtmlSizeBytes > 0 &&\n\t\t\thtmlByteLength(html, encoder) > safePolicy.maxSlotHtmlSizeBytes\n\t\t) {\n\t\t\tconst bytes = htmlByteLength(html, encoder);\n\t\t\tconst error = new Error(\n\t\t\t\t`Streaming slot \"${slot.id}\" exceeded max payload size of ${safePolicy.maxSlotHtmlSizeBytes} bytes`\n\t\t\t);\n\t\t\tconst durationMs = Date.now() - start;\n\t\t\tonError?.(error, slot);\n\t\t\temitSlotMetric(\n\t\t\t\t{\n\t\t\t\t\ttype: 'size_exceeded',\n\t\t\t\t\tslotId: slot.id,\n\t\t\t\t\tdurationMs,\n\t\t\t\t\tbytes,\n\t\t\t\t\terror\n\t\t\t\t},\n\t\t\t\tonSlotMetric\n\t\t\t);\n\n\t\t\tconst fallbackHtml =\n\t\t\t\ttypeof slot.errorHtml === 'string' ? slot.errorHtml : null;\n\n\t\t\treturn {\n\t\t\t\thtml: fallbackHtml,\n\t\t\t\tid: slot.id,\n\t\t\t\tdurationMs,\n\t\t\t\tbytes:\n\t\t\t\t\tfallbackHtml === null\n\t\t\t\t\t\t? 0\n\t\t\t\t\t\t: htmlByteLength(fallbackHtml, encoder)\n\t\t\t};\n\t\t}\n\t\tconst durationMs = Date.now() - start;\n\t\tconst bytes = htmlByteLength(html, encoder);\n\t\temitSlotMetric(\n\t\t\t{\n\t\t\t\ttype: 'resolved',\n\t\t\t\tslotId: slot.id,\n\t\t\t\tdurationMs,\n\t\t\t\tbytes\n\t\t\t},\n\t\t\tonSlotMetric\n\t\t);\n\n\t\treturn {\n\t\t\thtml,\n\t\t\tid: slot.id,\n\t\t\tdurationMs,\n\t\t\tbytes\n\t\t};\n\t} catch (error) {\n\t\tconst durationMs = Date.now() - start;\n\t\tonError?.(error, slot);\n\t\temitSlotMetric(\n\t\t\t{\n\t\t\t\ttype:\n\t\t\t\t\t(error as { __absTimeout?: boolean })?.__absTimeout === true\n\t\t\t\t\t\t? 'timeout'\n\t\t\t\t\t\t: 'error',\n\t\t\t\tslotId: slot.id,\n\t\t\t\tdurationMs,\n\t\t\t\terror\n\t\t\t},\n\t\t\tonSlotMetric\n\t\t);\n\t\tif (typeof slot.errorHtml === 'string') {\n\t\t\tconst html = slot.errorHtml;\n\t\t\treturn {\n\t\t\t\thtml,\n\t\t\t\tid: slot.id,\n\t\t\t\tdurationMs,\n\t\t\t\tbytes: htmlByteLength(html, encoder)\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\thtml: null,\n\t\t\tid: slot.id,\n\t\t\tdurationMs,\n\t\t\tbytes: 0\n\t\t};\n\t}\n};\n\nconst nextResolvedSlot = async (\n\tpending: Array<Promise<ResolvedStreamingSlot>>\n) => {\n\tconst wrapped = pending.map((promise) =>\n\t\tpromise.then((result) => ({\n\t\t\toriginal: promise,\n\t\t\tresult\n\t\t}))\n\t);\n\n\treturn Promise.race(wrapped);\n};\n\nconst streamChunkToString = (\n\tvalue: string | Uint8Array,\n\tdecoder: TextDecoder\n) =>\n\ttypeof value === 'string' ? value : decoder.decode(value, { stream: true });\n\nexport const streamOutOfOrderSlots = ({\n\tfooterHtml = '',\n\theaderHtml = '',\n\tnonce,\n\tpolicy,\n\tonSlotMetric,\n\tonError,\n\tslots\n}: StreamOutOfOrderSlotsOptions) => {\n\tconst resolvedPolicy = resolveStreamingSlotPolicy(policy);\n\tconst combinedOnError = createCombinedSlotErrorHandler(\n\t\tresolvedPolicy.onError,\n\t\tonError\n\t);\n\tconst combinedOnSlotMetric = createCombinedSlotMetricHandler(\n\t\tresolvedPolicy.onSlotMetric,\n\t\tonSlotMetric\n\t);\n\tconst effectivePolicy = {\n\t\t...resolvedPolicy,\n\t\tonSlotMetric: combinedOnSlotMetric\n\t};\n\tconst preparedSlots = prepareSlots({\n\t\tpolicy: effectivePolicy,\n\t\tslots,\n\t\tonError: combinedOnError,\n\t\tonSlotMetric: combinedOnSlotMetric\n\t});\n\tconst encoder = new TextEncoder();\n\n\treturn new ReadableStream<Uint8Array>({\n\t\tasync start(controller) {\n\t\t\ttry {\n\t\t\t\tlet header = headerHtml;\n\t\t\t\tif (\n\t\t\t\t\tpreparedSlots.length > 0 &&\n\t\t\t\t\t!header.includes(STREAMING_RUNTIME_GLOBAL)\n\t\t\t\t) {\n\t\t\t\t\theader = injectHtmlIntoHead(\n\t\t\t\t\t\theader,\n\t\t\t\t\t\trenderStreamingSlotsRuntimeTag(nonce)\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tcontroller.enqueue(toUint8(header, encoder));\n\n\t\t\t\tconst pending = preparedSlots.map((slot) => {\n\t\t\t\t\tconst fallback = renderStreamingSlotPlaceholder(\n\t\t\t\t\t\tslot.id,\n\t\t\t\t\t\tslot.fallbackHtml ?? ''\n\t\t\t\t\t);\n\t\t\t\t\tcontroller.enqueue(toUint8(fallback, encoder));\n\n\t\t\t\t\treturn resolveSlot(\n\t\t\t\t\t\tslot,\n\t\t\t\t\t\tcombinedOnError,\n\t\t\t\t\t\teffectivePolicy,\n\t\t\t\t\t\tcombinedOnSlotMetric\n\t\t\t\t\t);\n\t\t\t\t});\n\n\t\t\t\twhile (pending.length > 0) {\n\t\t\t\t\tconst { original, result } =\n\t\t\t\t\t\tawait nextResolvedSlot(pending);\n\t\t\t\t\tconst index = pending.indexOf(original);\n\t\t\t\t\tif (index >= 0) pending.splice(index, 1);\n\t\t\t\t\tif (result.html === null) continue;\n\t\t\t\t\temitSlotMetric(\n\t\t\t\t\t\t{\n\t\t\t\t\t\ttype: 'patched',\n\t\t\t\t\t\tslotId: result.id,\n\t\t\t\t\t\tdurationMs: result.durationMs,\n\t\t\t\t\t\tbytes: result.bytes\n\t\t\t\t\t},\n\t\t\t\t\tcombinedOnSlotMetric\n\t\t\t\t);\n\t\t\t\t\tcontroller.enqueue(\n\t\t\t\t\t\ttoUint8(\n\t\t\t\t\t\t\trenderStreamingSlotPatchTag(\n\t\t\t\t\t\t\t\tresult.id,\n\t\t\t\t\t\t\t\tresult.html,\n\t\t\t\t\t\t\t\tnonce\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tencoder\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif (footerHtml.length > 0) {\n\t\t\t\t\tcontroller.enqueue(toUint8(footerHtml, encoder));\n\t\t\t\t}\n\t\t\t\tcontroller.close();\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 injectStreamingRuntimeIntoStream = (\n\tstream: ReadableStream<string | Uint8Array>,\n\tnonce?: string\n) => {\n\tconst runtimeTag = renderStreamingSlotsRuntimeTag(nonce);\n\tconst encoder = new TextEncoder();\n\tconst decoder = new TextDecoder();\n\tconst lookbehind = CLOSING_HEAD_TAG_LENGTH - 1;\n\n\treturn new ReadableStream<Uint8Array>({\n\t\tasync start(controller) {\n\t\t\tconst reader = stream.getReader();\n\t\t\tlet injected = false;\n\t\t\tlet pending = '';\n\n\t\t\ttry {\n\t\t\t\tfor (;;) {\n\t\t\t\t\tconst { done, value } = await reader.read();\n\t\t\t\t\tif (done) break;\n\t\t\t\t\tif (!value) continue;\n\n\t\t\t\t\tpending += streamChunkToString(value, decoder);\n\n\t\t\t\t\tif (injected) {\n\t\t\t\t\t\tcontroller.enqueue(encoder.encode(pending));\n\t\t\t\t\t\tpending = '';\n\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst headIndex = pending.indexOf(CLOSING_HEAD_TAG);\n\t\t\t\t\tif (headIndex >= 0) {\n\t\t\t\t\t\tconst withRuntime = `${pending.slice(0, headIndex)}${runtimeTag}${pending.slice(headIndex)}`;\n\t\t\t\t\t\tcontroller.enqueue(encoder.encode(withRuntime));\n\t\t\t\t\t\tpending = '';\n\t\t\t\t\t\tinjected = true;\n\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (pending.length > lookbehind) {\n\t\t\t\t\t\tconst safeText = pending.slice(\n\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\tpending.length - lookbehind\n\t\t\t\t\t\t);\n\t\t\t\t\t\tcontroller.enqueue(encoder.encode(safeText));\n\t\t\t\t\t\tpending = pending.slice(-lookbehind);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tpending += decoder.decode();\n\t\t\t\tif (!injected) {\n\t\t\t\t\tpending = injectHtmlIntoHead(pending, runtimeTag);\n\t\t\t\t}\n\t\t\t\tif (pending.length > 0) {\n\t\t\t\t\tcontroller.enqueue(encoder.encode(pending));\n\t\t\t\t}\n\t\t\t\tcontroller.close();\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 appendStreamingSlotPatchesToStream = (\n\tstream: ReadableStream<string | Uint8Array>,\n\tslots: DeferredStreamingSlot[] = [],\n\t{\n\t\tinjectRuntime = true,\n\t\tnonce,\n\t\tonError,\n\t\tonSlotMetric,\n\t\tpolicy\n\t}: AppendStreamingSlotsOptions = {}\n) => {\n\tconst resolvedPolicy = resolveStreamingSlotPolicy(policy);\n\tconst combinedOnError = createCombinedSlotErrorHandler(\n\t\tresolvedPolicy.onError,\n\t\tonError\n\t);\n\tconst combinedOnSlotMetric = createCombinedSlotMetricHandler(\n\t\tresolvedPolicy.onSlotMetric,\n\t\tonSlotMetric\n\t);\n\tconst effectivePolicy = {\n\t\t...resolvedPolicy,\n\t\tonSlotMetric: combinedOnSlotMetric\n\t};\n\tconst preparedSlots = prepareSlots({\n\t\tpolicy: effectivePolicy,\n\t\tslots,\n\t\tonError: combinedOnError,\n\t\tonSlotMetric: combinedOnSlotMetric\n\t});\n\tif (preparedSlots.length === 0) return stream;\n\n\tconst source = injectRuntime\n\t\t? injectStreamingRuntimeIntoStream(stream, nonce)\n\t\t: stream;\n\tconst encoder = new TextEncoder();\n\tconst decoder = new TextDecoder();\n\tconst reader = source.getReader();\n\tconst pending = preparedSlots.map((slot) =>\n\t\tresolveSlot(\n\t\t\tslot,\n\t\t\tcombinedOnError,\n\t\t\teffectivePolicy,\n\t\t\tcombinedOnSlotMetric\n\t\t)\n\t);\n\n\treturn new ReadableStream<Uint8Array>({\n\t\tasync start(controller) {\n\t\t\tlet baseDone = false;\n\t\t\tlet baseRead = reader.read();\n\t\t\tlet tail = '';\n\t\t\tlet footer = '';\n\t\t\ttry {\n\t\t\t\twhile (!baseDone || pending.length > 0) {\n\t\t\t\t\tconst racers: Array<\n\t\t\t\t\t\tPromise<\n\t\t\t\t\t\t\t| {\n\t\t\t\t\t\t\t\t\tdone: boolean;\n\t\t\t\t\t\t\t\t\tkind: 'base';\n\t\t\t\t\t\t\t\t\tvalue?: string | Uint8Array;\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t| {\n\t\t\t\t\t\t\t\t\tkind: 'slot';\n\t\t\t\t\t\t\t\t\toriginal: Promise<{\n\t\t\t\t\t\t\t\t\t\thtml: string | null;\n\t\t\t\t\t\t\t\t\t\tid: string;\n\t\t\t\t\t\t\t\t\t\tdurationMs: number;\n\t\t\t\t\t\t\t\t\t\tbytes: number;\n\t\t\t\t\t\t\t\t\t}>;\n\t\t\t\t\t\t\t\t\tresult: {\n\t\t\t\t\t\t\t\t\t\thtml: string | null;\n\t\t\t\t\t\t\t\t\t\tid: string;\n\t\t\t\t\t\t\t\t\t\tdurationMs: number;\n\t\t\t\t\t\t\t\t\t\tbytes: number;\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t>\n\t\t\t\t\t> = [];\n\t\t\t\t\tif (!baseDone) {\n\t\t\t\t\t\tracers.push(\n\t\t\t\t\t\t\tbaseRead.then(({ done, value }) => ({\n\t\t\t\t\t\t\t\tdone,\n\t\t\t\t\t\t\t\tkind: 'base' as const,\n\t\t\t\t\t\t\t\tvalue\n\t\t\t\t\t\t\t}))\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tif (pending.length > 0) {\n\t\t\t\t\t\tracers.push(\n\t\t\t\t\t\t\tnextResolvedSlot(pending).then((resolved) => ({\n\t\t\t\t\t\t\t\tkind: 'slot' as const,\n\t\t\t\t\t\t\t\t...resolved\n\t\t\t\t\t\t\t}))\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tif (racers.length === 0) break;\n\n\t\t\t\t\tconst winner = await Promise.race(racers);\n\t\t\t\t\tif (winner.kind === 'base') {\n\t\t\t\t\t\tif (winner.done) {\n\t\t\t\t\t\t\tbaseDone = true;\n\t\t\t\t\t\t\ttail += decoder.decode();\n\t\t\t\t\t\t\tconst footerStart = tail.search(\n\t\t\t\t\t\t\t\tCLOSING_PAGE_TAG_REGEX\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tif (footerStart >= 0) {\n\t\t\t\t\t\t\t\tconst content = tail.slice(0, footerStart);\n\t\t\t\t\t\t\t\tfooter = tail.slice(footerStart);\n\t\t\t\t\t\t\t\tif (content.length > 0) {\n\t\t\t\t\t\t\t\t\tcontroller.enqueue(encoder.encode(content));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if (tail.length > 0) {\n\t\t\t\t\t\t\t\tcontroller.enqueue(encoder.encode(tail));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttail = '';\n\t\t\t\t\t\t} else if (winner.value) {\n\t\t\t\t\t\t\ttail += streamChunkToString(winner.value, decoder);\n\t\t\t\t\t\t\tif (tail.length > STREAM_TAIL_LOOKBEHIND) {\n\t\t\t\t\t\t\t\tconst content = tail.slice(\n\t\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t\ttail.length - STREAM_TAIL_LOOKBEHIND\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tcontroller.enqueue(encoder.encode(content));\n\t\t\t\t\t\t\t\ttail = tail.slice(-STREAM_TAIL_LOOKBEHIND);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbaseRead = reader.read();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst index = pending.indexOf(winner.original);\n\t\t\t\t\tif (index >= 0) pending.splice(index, 1);\n\t\t\t\t\tif (winner.result.html === null) continue;\n\t\t\t\t\temitSlotMetric(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: 'patched',\n\t\t\t\t\t\t\tslotId: winner.result.id,\n\t\t\t\t\t\t\tdurationMs: winner.result.durationMs,\n\t\t\t\t\t\t\tbytes: winner.result.bytes\n\t\t\t\t\t\t},\n\t\t\t\t\t\tcombinedOnSlotMetric\n\t\t\t\t\t);\n\n\t\t\t\t\tcontroller.enqueue(\n\t\t\t\t\t\tencoder.encode(\n\t\t\t\t\t\t\trenderStreamingSlotPatchTag(\n\t\t\t\t\t\t\t\twinner.result.id,\n\t\t\t\t\t\t\t\twinner.result.html,\n\t\t\t\t\t\t\t\tnonce\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif (footer.length > 0)\n\t\t\t\t\tcontroller.enqueue(encoder.encode(footer));\n\t\t\t\tcontroller.close();\n\t\t\t} catch (error) {\n\t\t\t\tcontroller.error(error);\n\t\t\t}\n\t\t}\n\t});\n};\n",
|
|
9
|
-
"import type { StreamingSlot } from '../utils/streamingSlots';\n\ntype StreamingSlotRegistrar = (slot: StreamingSlot) => void;\n\nlet registrar: StreamingSlotRegistrar | null = null;\n\nexport const setStreamingSlotRegistrar = (\n\tnextRegistrar: StreamingSlotRegistrar | null\n) => {\n\tregistrar = nextRegistrar;\n};\n\nexport const registerStreamingSlot = (slot: StreamingSlot) => {\n\tregistrar?.(slot);\n};\n",
|
|
10
|
-
"import type { StreamingSlot } from '../utils/streamingSlots';\nimport { setStreamingSlotRegistrar } from './streamingSlotRegistrar';\n\ntype SlotStore = Map<string, StreamingSlot>;\ntype AsyncLocalStorageType =\n\timport('node:async_hooks').AsyncLocalStorage<SlotStore>;\n\nlet asyncLocalStorage: AsyncLocalStorageType | null | undefined;\n\nconst isServerRuntime = () =>\n\ttypeof process !== 'undefined' &&\n\ttypeof process.versions?.node === 'string';\n\nconst ensureAsyncLocalStorage = async () => {\n\tif (typeof asyncLocalStorage !== 'undefined') return asyncLocalStorage;\n\tif (!isServerRuntime()) {\n\t\tasyncLocalStorage = null;\n\n\t\treturn asyncLocalStorage;\n\t}\n\n\tconst mod = await import('node:async_hooks');\n\tasyncLocalStorage = new mod.AsyncLocalStorage<SlotStore>();\n\n\treturn asyncLocalStorage;\n};\n\nconst registerStreamingSlot = (slot: StreamingSlot) => {\n\tif (!asyncLocalStorage) return;\n\tconst store = asyncLocalStorage.getStore();\n\tif (!store) return;\n\tstore.set(slot.id, slot);\n};\n\nsetStreamingSlotRegistrar(registerStreamingSlot);\n\nexport const runWithStreamingSlotRegistry = async <T>(\n\ttask: () => Promise<T> | T\n) => {\n\tconst storage = await ensureAsyncLocalStorage();\n\tif (!storage) {\n\t\treturn {\n\t\t\tresult: await task(),\n\t\t\tslots: [] as StreamingSlot[]\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",
|
|
11
|
-
"import {\n\tappendStreamingSlotPatchesToStream,\n\ttype AppendStreamingSlotsOptions,\n\ttype StreamingSlotPolicy,\n\ttype StreamingSlot\n} from '../utils/streamingSlots';\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) => await 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{ nonce, onError, streamingSlots = [], policy }: 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}\n\t);\n\n\treturn new Response(body, {\n\t\theaders: cloneHeaders(response),\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\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\n\treturn withStreamingSlots(result, {\n\t\t...options,\n\t\tstreamingSlots: mergeStreamingSlots(slots, explicit)\n\t});\n};\n",
|
|
12
6
|
"export const ssrErrorPage = (framework: string, error: unknown) => {\n\tconst frameworkColors: Record<string, string> = {\n\t\tangular: '#dd0031',\n\t\thtml: '#e34c26',\n\t\thtmx: '#1a365d',\n\t\treact: '#61dafb',\n\t\tsvelte: '#ff3e00',\n\t\tvue: '#42b883'\n\t};\n\n\tconst accent = frameworkColors[framework] ?? '#94a3b8';\n\tconst label = framework.charAt(0).toUpperCase() + framework.slice(1);\n\tconst message = error instanceof Error ? error.message : String(error);\n\n\treturn `<!DOCTYPE html>\n<html>\n<head>\n<meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n<title>SSR Error - AbsoluteJS</title>\n<style>\n*{margin:0;padding:0;box-sizing:border-box}\nbody{min-height:100vh;background:linear-gradient(135deg,rgba(15,23,42,0.98) 0%,rgba(30,41,59,0.98) 100%);color:#e2e8f0;font-family:\"JetBrains Mono\",\"Fira Code\",ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:14px;line-height:1.6;display:flex;align-items:flex-start;justify-content:center;padding:32px}\n.card{max-width:720px;width:100%;background:rgba(30,41,59,0.6);border:1px solid rgba(71,85,105,0.5);border-radius:16px;box-shadow:0 25px 50px -12px rgba(0,0,0,0.5),0 0 0 1px rgba(255,255,255,0.05);overflow:hidden}\n.header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 24px;background:rgba(15,23,42,0.5);border-bottom:1px solid rgba(71,85,105,0.4)}\n.brand{font-weight:700;font-size:20px;color:#fff;letter-spacing:-0.02em}\n.badge{padding:5px 10px;border-radius:8px;font-size:12px;font-weight:600;background:${accent};color:#fff;opacity:0.95;box-shadow:0 2px 4px rgba(0,0,0,0.2)}\n.kind{color:#94a3b8;font-size:13px;font-weight:500}\n.content{padding:24px}\n.label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:0.08em;color:#94a3b8;margin-bottom:8px}\n.message{margin:0;padding:16px 20px;background:rgba(239,68,68,0.12);border:1px solid rgba(239,68,68,0.25);border-radius:10px;overflow-x:auto;white-space:pre-wrap;word-break:break-word;color:#fca5a5;font-size:13px;line-height:1.5}\n.hint{margin-top:20px;padding:12px 20px;background:rgba(71,85,105,0.3);border-radius:10px;border:1px solid rgba(71,85,105,0.4);color:#cbd5e1;font-size:13px}\n</style>\n</head>\n<body>\n<div class=\"card\">\n<div class=\"header\">\n<div style=\"display:flex;align-items:center;gap:12px\">\n<span class=\"brand\">AbsoluteJS</span>\n<span class=\"badge\">${label}</span>\n</div>\n<span class=\"kind\">Server Render Error</span>\n</div>\n<div class=\"content\">\n<div class=\"label\">What went wrong</div>\n<pre class=\"message\">${message.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>')}</pre>\n<div class=\"hint\">A component threw during server-side rendering. Check the terminal for the full stack trace.</div>\n</div>\n</div>\n</body>\n</html>`;\n};\n",
|
|
13
7
|
"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",
|
|
14
8
|
"import { basename } from 'node:path';\nimport type { ConventionsMap } from '../../types/conventions';\nimport { toPascal } from './stringModifiers';\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();\nexport const resolveErrorConventionPath = (\n\tframework: keyof ConventionsMap,\n\tpageName: string\n) => {\n\tconst conventions = getMap()[framework];\n\tif (!conventions) return undefined;\n\n\treturn conventions.pages?.[pageName]?.error ?? 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 = () => process.env.NODE_ENV === 'development';\n\nconst buildErrorProps = (error: unknown) => {\n\tconst message = error instanceof Error ? error.message : String(error);\n\tconst stack = isDev() && error instanceof Error ? error.stack : undefined;\n\n\treturn { error: { message, stack } };\n};\n\nconst renderReactError = async (\n\tconventionPath: string,\n\terrorProps: ReturnType<typeof buildErrorProps>\n) => {\n\tconst { createElement } = await import('react');\n\tconst { renderToReadableStream } = await import('react-dom/server');\n\tconst mod = await import(conventionPath);\n\tconst [firstKey] = Object.keys(mod);\n\tconst ErrorComponent =\n\t\tmod.default ?? (firstKey ? mod[firstKey] : undefined);\n\tconst element = createElement(ErrorComponent, errorProps);\n\tconst stream = await renderToReadableStream(element);\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: ReturnType<typeof buildErrorProps>\n) => {\n\tconst { render } = await import('svelte/server');\n\tconst mod = await import(conventionPath);\n\tconst ErrorComponent = mod.default;\n\tconst { head, body } = render(ErrorComponent, {\n\t\tprops: errorProps\n\t});\n\tconst html = `<!DOCTYPE html><html><head>${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>${css\n\t\t\t\t.replace(/"/g, '\"')\n\t\t\t\t.replace(/&/g, '&')\n\t\t\t\t.replace(/</g, '<')\n\t\t\t\t.replace(/>/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: ReturnType<typeof buildErrorProps>\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\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: ReturnType<typeof buildErrorProps>\n) => {\n\t// Angular error pages are rendered as plain HTML templates\n\t// since the full Angular SSR pipeline is too heavy for error pages\n\tconst mod = await import(conventionPath);\n\tconst renderError = mod.default ?? mod.renderError;\n\tif (typeof renderError !== 'function') return null;\n\n\tconst html = renderError(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\nconst ERROR_RENDERERS: Record<\n\tkeyof ConventionsMap,\n\t(\n\t\tconventionPath: string,\n\t\terrorProps: ReturnType<typeof buildErrorProps>\n\t) => Promise<Response | null>\n> = {\n\tangular: renderAngularError,\n\treact: renderReactError,\n\tsvelte: renderSvelteError,\n\tvue: renderVueError\n};\n\nexport const renderConventionError = async (\n\tframework: keyof ConventionsMap,\n\tpageName: string,\n\terror: unknown\n) => {\n\tconst conventionPath = resolveErrorConventionPath(framework, pageName);\n\tif (!conventionPath) return null;\n\n\tconst errorProps = buildErrorProps(error);\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\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 [nfKey] = Object.keys(mod);\n\tconst NotFoundComponent = mod.default ?? (nfKey ? mod[nfKey] : undefined);\n\tconst element = createElement(NotFoundComponent);\n\tconst stream = await renderToReadableStream(element);\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\tconst { head, body } = render(NotFoundComponent);\n\tconst html = `<!DOCTYPE html><html><head>${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\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 renderNotFound = mod.default ?? mod.renderNotFound;\n\tif (typeof renderNotFound !== 'function') return null;\n\n\tconst html = renderNotFound();\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\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];\n\nexport const renderFirstNotFound = async () => {\n\tfor (const framework of NOT_FOUND_PRIORITY) {\n\t\tif (!getMap()[framework]?.defaults?.notFound) continue;\n\t\t// eslint-disable-next-line no-await-in-loop -- frameworks must be tried sequentially; first match wins\n\t\tconst response = await renderConventionNotFound(framework);\n\t\tif (response) return response;\n\t}\n\n\treturn null;\n};\n",
|
|
15
|
-
"import {
|
|
16
|
-
"import type { ComponentType as ReactComponent } from 'react';\nimport { injectIslandPageContextStream } from '../core/islandPageContext';\nimport { withStreamingSlots } from '../core/responseEnhancers';\nimport type { StreamingSlot } from '../utils/streamingSlots';\nimport { ssrErrorPage } from '../utils/ssrErrorPage';\nimport { renderConventionError } from '../utils/resolveConvention';\nimport { StreamingSlotCollectorProvider } from './streamingSlotCollection';\n\nlet ssrDirty = false;\n\nconst buildDirtyResponse = (\n\tindex: string,\n\tmaybeProps: Record<string, unknown> | undefined\n) => {\n\tconst propsScript = maybeProps\n\t\t? `window.__INITIAL_PROPS__=${JSON.stringify(maybeProps)};`\n\t\t: '';\n\tconst dirtyFlag = 'window.__SSR_DIRTY__=true;';\n\tconst refreshSetup =\n\t\tprocess.env.NODE_ENV !== 'production'\n\t\t\t? 'window.__REFRESH_BUFFER__=[];' +\n\t\t\t\t'window.$RefreshReg$=function(t,i){window.__REFRESH_BUFFER__.push([t,i])};' +\n\t\t\t\t'window.$RefreshSig$=function(){return function(t){return t}};'\n\t\t\t: '';\n\tconst inlineScript = `${propsScript}${dirtyFlag}${refreshSetup}`;\n\tconst html =\n\t\t`<!DOCTYPE html><html><head></head><body>` +\n\t\t`<script>${inlineScript}</script>` +\n\t\t`<script type=\"module\" src=\"${index}\"></script>` +\n\t\t`</body></html>`;\n\n\treturn new Response(html, {\n\t\theaders: { 'Content-Type': 'text/html' }\n\t});\n};\n\nexport const handleReactPageRequest = async <\n\tProps extends Record<string, unknown> = Record<never, never>\n>(\n\tPageComponent: ReactComponent<Props>,\n\tindex: string,\n\t...props: keyof Props extends never ? [] : [props: NoInfer<Props>]\n) => {\n\tconst [maybeProps] = props;\n\n\tif (ssrDirty) {\n\t\treturn buildDirtyResponse(index, maybeProps);\n\t}\n\n\ttry {\n\t\tconst { createElement } = await import('react');\n\t\tconst { renderToReadableStream } = await import('react-dom/server');\n\t\tconst slotCollector = new Map<string, StreamingSlot>();\n\n\t\tconst pageElement =\n\t\t\tmaybeProps !== undefined\n\t\t\t\t? createElement(PageComponent, maybeProps)\n\t\t\t\t: createElement(PageComponent);\n\t\tconst element = createElement(\n\t\t\tStreamingSlotCollectorProvider,\n\t\t\t{ collector: slotCollector },\n\t\t\tpageElement\n\t\t);\n\n\t\tconst propsScript = maybeProps\n\t\t\t? `window.__INITIAL_PROPS__=${JSON.stringify(maybeProps)};`\n\t\t\t: '';\n\n\t\t// Buffer React Refresh registrations until the runtime loads.\n\t\t// Bun.build injects $RefreshReg$ calls in the bundle, but the\n\t\t// real runtime isn't ready yet. This buffering function captures\n\t\t// all registrations, then replays them when the runtime is set up.\n\t\tconst refreshSetup =\n\t\t\tprocess.env.NODE_ENV !== 'production'\n\t\t\t\t? 'window.__REFRESH_BUFFER__=[];' +\n\t\t\t\t\t'window.$RefreshReg$=function(t,i){window.__REFRESH_BUFFER__.push([t,i])};' +\n\t\t\t\t\t'window.$RefreshSig$=function(){return function(t){return t}};'\n\t\t\t\t: '';\n\n\t\tconst stream = await renderToReadableStream(element, {\n\t\t\tbootstrapModules: [index],\n\t\t\tbootstrapScriptContent: propsScript + refreshSetup || undefined,\n\t\t\tonError(error: unknown) {\n\t\t\t\tconsole.error('[SSR] React streaming error:', error);\n\t\t\t}\n\t\t});\n\t\t// Force the initial React server render to complete before the response\n\t\t// leaves the AsyncLocalStorage scope so StreamSlot registrations are captured.\n\t\tif ('allReady' in stream && stream.allReady instanceof Promise) {\n\t\t\tawait stream.allReady;\n\t\t}\n\t\tconst htmlStream = injectIslandPageContextStream(stream);\n\n\t\treturn withStreamingSlots(\n\t\t\tnew Response(htmlStream, {\n\t\t\t\theaders: { 'Content-Type': 'text/html' }\n\t\t\t}),\n\t\t\t{\n\t\t\t\tstreamingSlots: [...slotCollector.values()]\n\t\t\t}\n\t\t);\n\t} catch (error) {\n\t\tconsole.error('[SSR] React render error:', error);\n\n\t\tconst pageName = PageComponent.name || PageComponent.displayName || '';\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) return conventionResponse;\n\n\t\treturn new Response(ssrErrorPage('react', error), {\n\t\t\theaders: { 'Content-Type': 'text/html' },\n\t\t\tstatus: 500\n\t\t});\n\t}\n};\n\nexport const invalidateReactSsrCache = () => {\n\tssrDirty = true;\n};\n",
|
|
9
|
+
"import type { ComponentType as ReactComponent } from 'react';\nimport { injectIslandPageContextStream } from '../core/islandPageContext';\nimport { ssrErrorPage } from '../utils/ssrErrorPage';\nimport { renderConventionError } from '../utils/resolveConvention';\n\nlet ssrDirty = false;\n\nconst buildDirtyResponse = (\n\tindex: string,\n\tmaybeProps: Record<string, unknown> | undefined\n) => {\n\tconst propsScript = maybeProps\n\t\t? `window.__INITIAL_PROPS__=${JSON.stringify(maybeProps)};`\n\t\t: '';\n\tconst dirtyFlag = 'window.__SSR_DIRTY__=true;';\n\tconst refreshSetup =\n\t\tprocess.env.NODE_ENV !== 'production'\n\t\t\t? 'window.__REFRESH_BUFFER__=[];' +\n\t\t\t\t'window.$RefreshReg$=function(t,i){window.__REFRESH_BUFFER__.push([t,i])};' +\n\t\t\t\t'window.$RefreshSig$=function(){return function(t){return t}};'\n\t\t\t: '';\n\tconst inlineScript = `${propsScript}${dirtyFlag}${refreshSetup}`;\n\tconst html =\n\t\t`<!DOCTYPE html><html><head></head><body>` +\n\t\t`<script>${inlineScript}</script>` +\n\t\t`<script type=\"module\" src=\"${index}\"></script>` +\n\t\t`</body></html>`;\n\n\treturn new Response(html, {\n\t\theaders: { 'Content-Type': 'text/html' }\n\t});\n};\n\nexport const handleReactPageRequest = async <\n\tProps extends Record<string, unknown> = Record<never, never>\n>(\n\tPageComponent: ReactComponent<Props>,\n\tindex: string,\n\t...props: keyof Props extends never ? [] : [props: NoInfer<Props>]\n) => {\n\tconst [maybeProps] = props;\n\n\tif (ssrDirty) {\n\t\treturn buildDirtyResponse(index, maybeProps);\n\t}\n\n\ttry {\n\t\tconst { createElement } = await import('react');\n\t\tconst { renderToReadableStream } = await import('react-dom/server');\n\n\t\tconst element =\n\t\t\tmaybeProps !== undefined\n\t\t\t\t? createElement(PageComponent, maybeProps)\n\t\t\t\t: createElement(PageComponent);\n\n\t\tconst propsScript = maybeProps\n\t\t\t? `window.__INITIAL_PROPS__=${JSON.stringify(maybeProps)};`\n\t\t\t: '';\n\n\t\t// Buffer React Refresh registrations until the runtime loads.\n\t\t// Bun.build injects $RefreshReg$ calls in the bundle, but the\n\t\t// real runtime isn't ready yet. This buffering function captures\n\t\t// all registrations, then replays them when the runtime is set up.\n\t\tconst refreshSetup =\n\t\t\tprocess.env.NODE_ENV !== 'production'\n\t\t\t\t? 'window.__REFRESH_BUFFER__=[];' +\n\t\t\t\t\t'window.$RefreshReg$=function(t,i){window.__REFRESH_BUFFER__.push([t,i])};' +\n\t\t\t\t\t'window.$RefreshSig$=function(){return function(t){return t}};'\n\t\t\t\t: '';\n\n\t\tconst stream = await renderToReadableStream(element, {\n\t\t\tbootstrapModules: [index],\n\t\t\tbootstrapScriptContent: propsScript + refreshSetup || undefined,\n\t\t\tonError(error: unknown) {\n\t\t\t\tconsole.error('[SSR] React streaming error:', error);\n\t\t\t}\n\t\t});\n\t\tconst htmlStream = injectIslandPageContextStream(stream);\n\n\t\treturn new Response(htmlStream, {\n\t\t\theaders: { 'Content-Type': 'text/html' }\n\t\t});\n\t} catch (error) {\n\t\tconsole.error('[SSR] React render error:', error);\n\n\t\tconst pageName = PageComponent.name || PageComponent.displayName || '';\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) return conventionResponse;\n\n\t\treturn new Response(ssrErrorPage('react', error), {\n\t\t\theaders: { 'Content-Type': 'text/html' },\n\t\t\tstatus: 500\n\t\t});\n\t}\n};\n\nexport const invalidateReactSsrCache = () => {\n\tssrDirty = true;\n};\n",
|
|
17
10
|
"export { handleReactPageRequest } from './pageHandler';\n"
|
|
18
11
|
],
|
|
19
|
-
"mappings": "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",
|
|
20
|
-
"debugId": "
|
|
12
|
+
"mappings": "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",
|
|
13
|
+
"debugId": "857ADC881A97071764756E2164756E21",
|
|
21
14
|
"names": []
|
|
22
15
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export
|
|
1
|
+
export declare const handleReactPageRequest: <Props extends Record<string, unknown> = Record<never, never>>(PageComponent: import("react").ComponentType<Props>, index: string, ...props: keyof Props extends never ? [] : [props: NoInfer<Props>]) => Promise<Response>;
|
|
2
2
|
export { Island } from './Island';
|
|
3
3
|
export { createTypedIsland } from './createIsland';
|
|
4
4
|
export { useIslandStore } from './hooks/useIslandStore';
|