@absolutejs/absolute 0.19.0-beta.807 → 0.19.0-beta.809
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 +9801 -57
- package/dist/angular/browser.js.map +246 -4
- package/dist/angular/components/core/streamingSlotRegistrar.js +1 -1
- package/dist/angular/components/core/streamingSlotRegistry.js +2 -2
- package/dist/angular/index.js +14877 -60
- package/dist/angular/index.js.map +281 -4
- package/dist/angular/server.js +5610 -45
- package/dist/angular/server.js.map +51 -3
- package/dist/build.js +18092 -45
- package/dist/build.js.map +99 -3
- package/dist/cli/index.js +317 -86
- package/dist/client/index.js +1091 -70
- package/dist/client/index.js.map +24 -4
- package/dist/core/streamingSlotRegistrar.js +108 -11
- package/dist/core/streamingSlotRegistrar.js.map +4 -3
- package/dist/core/streamingSlotRegistry.js +169 -7
- package/dist/core/streamingSlotRegistry.js.map +5 -3
- package/dist/index.js +19957 -547
- package/dist/index.js.map +116 -3
- package/dist/islands/browser.js +228 -9
- package/dist/islands/browser.js.map +9 -4
- package/dist/islands/index.js +1908 -17
- package/dist/islands/index.js.map +27 -3
- package/dist/react/browser.js +328 -12
- package/dist/react/browser.js.map +12 -4
- package/dist/react/components/index.js +167 -16
- package/dist/react/components/index.js.map +6 -3
- package/dist/react/hooks/index.js +183 -8
- package/dist/react/hooks/index.js.map +7 -3
- package/dist/react/index.js +3627 -36
- package/dist/react/index.js.map +45 -4
- package/dist/react/jsxDevRuntimeCompat.js +61 -2
- package/dist/react/jsxDevRuntimeCompat.js.map +2 -2
- package/dist/react/server.js +1789 -18
- package/dist/react/server.js.map +21 -3
- package/dist/src/angular/injectorPatch.d.ts +1 -0
- package/dist/src/angular/islands.d.ts +1 -0
- package/dist/src/client/hydrators/react.d.ts +3 -0
- package/dist/src/client/hydrators/svelte.d.ts +2 -0
- package/dist/src/client/hydrators/vue.d.ts +2 -0
- package/dist/src/index.d.ts +1 -0
- package/dist/svelte/browser.js +247 -12
- package/dist/svelte/browser.js.map +10 -3
- package/dist/svelte/index.js +3732 -37
- package/dist/svelte/index.js.map +47 -4
- package/dist/svelte/server.js +2794 -21
- package/dist/svelte/server.js.map +27 -3
- package/dist/vue/browser.js +348 -12
- package/dist/vue/browser.js.map +12 -4
- package/dist/vue/components/Image.js +240 -7
- package/dist/vue/components/Image.js.map +6 -3
- package/dist/vue/components/index.js +544 -11
- package/dist/vue/components/index.js.map +9 -3
- package/dist/vue/index.js +4212 -52
- package/dist/vue/index.js.map +50 -4
- package/dist/vue/server.js +1849 -18
- package/dist/vue/server.js.map +21 -3
- package/package.json +1 -1
- package/dist/chunk-0867j0r0.js +0 -136
- package/dist/chunk-0867j0r0.js.map +0 -10
- package/dist/chunk-102fp7xe.js +0 -63
- package/dist/chunk-102fp7xe.js.map +0 -10
- package/dist/chunk-11zpfqz6.js +0 -19
- package/dist/chunk-11zpfqz6.js.map +0 -10
- package/dist/chunk-1rfh7hw9.js +0 -319
- package/dist/chunk-1rfh7hw9.js.map +0 -11
- package/dist/chunk-1x4fxm57.js +0 -51
- package/dist/chunk-1x4fxm57.js.map +0 -9
- package/dist/chunk-25v9t56f.js +0 -29
- package/dist/chunk-25v9t56f.js.map +0 -11
- package/dist/chunk-2f21eenc.js +0 -21
- package/dist/chunk-2f21eenc.js.map +0 -10
- package/dist/chunk-2ga2znex.js +0 -13
- package/dist/chunk-2ga2znex.js.map +0 -9
- package/dist/chunk-30yrw0f6.js +0 -33
- package/dist/chunk-30yrw0f6.js.map +0 -10
- package/dist/chunk-3g91wb4f.js +0 -358
- package/dist/chunk-3g91wb4f.js.map +0 -10
- package/dist/chunk-3rea1gam.js +0 -4403
- package/dist/chunk-3rea1gam.js.map +0 -28
- package/dist/chunk-3yjzpcne.js +0 -34
- package/dist/chunk-3yjzpcne.js.map +0 -10
- package/dist/chunk-41bf6aqt.js +0 -17
- package/dist/chunk-41bf6aqt.js.map +0 -9
- package/dist/chunk-4d39r92n.js +0 -81
- package/dist/chunk-4d39r92n.js.map +0 -10
- package/dist/chunk-5003emhv.js +0 -17
- package/dist/chunk-5003emhv.js.map +0 -10
- package/dist/chunk-5f67rsed.js +0 -466
- package/dist/chunk-5f67rsed.js.map +0 -10
- package/dist/chunk-5fhp1jap.js +0 -9169
- package/dist/chunk-5fhp1jap.js.map +0 -236
- package/dist/chunk-629x0yh4.js +0 -20
- package/dist/chunk-629x0yh4.js.map +0 -9
- package/dist/chunk-6pdj08z3.js +0 -73
- package/dist/chunk-6pdj08z3.js.map +0 -12
- package/dist/chunk-6qjbrt0k.js +0 -13
- package/dist/chunk-6qjbrt0k.js.map +0 -9
- package/dist/chunk-6sccb4jr.js +0 -14
- package/dist/chunk-6sccb4jr.js.map +0 -9
- package/dist/chunk-798spvzv.js +0 -50
- package/dist/chunk-798spvzv.js.map +0 -10
- package/dist/chunk-7fw6x3js.js +0 -131
- package/dist/chunk-7fw6x3js.js.map +0 -11
- package/dist/chunk-7kjj42xm.js +0 -11
- package/dist/chunk-7kjj42xm.js.map +0 -10
- package/dist/chunk-7mtstdqn.js +0 -90
- package/dist/chunk-7mtstdqn.js.map +0 -10
- package/dist/chunk-851whwc7.js +0 -17
- package/dist/chunk-851whwc7.js.map +0 -10
- package/dist/chunk-85n68sy6.js +0 -103
- package/dist/chunk-85n68sy6.js.map +0 -10
- package/dist/chunk-8kcfffry.js +0 -35
- package/dist/chunk-8kcfffry.js.map +0 -10
- package/dist/chunk-92fsjfpp.js +0 -1731
- package/dist/chunk-92fsjfpp.js.map +0 -11
- package/dist/chunk-93sqk7be.js +0 -139
- package/dist/chunk-93sqk7be.js.map +0 -12
- package/dist/chunk-9c5tj4k3.js +0 -130
- package/dist/chunk-9c5tj4k3.js.map +0 -10
- package/dist/chunk-9j59emg3.js +0 -184
- package/dist/chunk-9j59emg3.js.map +0 -11
- package/dist/chunk-9ve9jq72.js +0 -203
- package/dist/chunk-9ve9jq72.js.map +0 -10
- package/dist/chunk-9xrsjeem.js +0 -12
- package/dist/chunk-9xrsjeem.js.map +0 -9
- package/dist/chunk-a9mvyp04.js +0 -87
- package/dist/chunk-a9mvyp04.js.map +0 -10
- package/dist/chunk-b3gbnrwe.js +0 -21
- package/dist/chunk-b3gbnrwe.js.map +0 -10
- package/dist/chunk-bgb8k1qs.js +0 -672
- package/dist/chunk-bgb8k1qs.js.map +0 -15
- package/dist/chunk-bmgqm774.js +0 -65
- package/dist/chunk-bmgqm774.js.map +0 -9
- package/dist/chunk-bxfghpma.js +0 -69
- package/dist/chunk-bxfghpma.js.map +0 -10
- package/dist/chunk-c1jfjnka.js +0 -74
- package/dist/chunk-c1jfjnka.js.map +0 -10
- package/dist/chunk-cbkrwmvh.js +0 -80
- package/dist/chunk-cbkrwmvh.js.map +0 -10
- package/dist/chunk-cdxd7sy2.js +0 -71
- package/dist/chunk-cdxd7sy2.js.map +0 -10
- package/dist/chunk-cg95827x.js +0 -21
- package/dist/chunk-cg95827x.js.map +0 -10
- package/dist/chunk-cm0g4q6w.js +0 -149
- package/dist/chunk-cm0g4q6w.js.map +0 -10
- package/dist/chunk-d7mwkzry.js +0 -261
- package/dist/chunk-d7mwkzry.js.map +0 -10
- package/dist/chunk-d9c0am65.js +0 -12
- package/dist/chunk-d9c0am65.js.map +0 -10
- package/dist/chunk-daqghmg8.js +0 -12
- package/dist/chunk-daqghmg8.js.map +0 -9
- package/dist/chunk-e3r9fxaa.js +0 -149
- package/dist/chunk-e3r9fxaa.js.map +0 -10
- package/dist/chunk-e8eecyrq.js +0 -244
- package/dist/chunk-e8eecyrq.js.map +0 -10
- package/dist/chunk-ex2hxe0v.js +0 -160
- package/dist/chunk-ex2hxe0v.js.map +0 -11
- package/dist/chunk-fak944et.js +0 -91
- package/dist/chunk-fak944et.js.map +0 -10
- package/dist/chunk-fygx2ymm.js +0 -118
- package/dist/chunk-fygx2ymm.js.map +0 -12
- package/dist/chunk-g15qj669.js +0 -271
- package/dist/chunk-g15qj669.js.map +0 -11
- package/dist/chunk-gd6wmknh.js +0 -121
- package/dist/chunk-gd6wmknh.js.map +0 -11
- package/dist/chunk-gf0ygptk.js +0 -85
- package/dist/chunk-gf0ygptk.js.map +0 -11
- package/dist/chunk-gytkmthr.js +0 -220
- package/dist/chunk-gytkmthr.js.map +0 -10
- package/dist/chunk-h5bbfn3n.js +0 -28
- package/dist/chunk-h5bbfn3n.js.map +0 -11
- package/dist/chunk-h6mye9r3.js +0 -93
- package/dist/chunk-h6mye9r3.js.map +0 -10
- package/dist/chunk-hcsmxw1v.js +0 -85
- package/dist/chunk-hcsmxw1v.js.map +0 -10
- package/dist/chunk-hyjs4bqs.js +0 -8
- package/dist/chunk-hyjs4bqs.js.map +0 -10
- package/dist/chunk-jn91vzkh.js +0 -66
- package/dist/chunk-jn91vzkh.js.map +0 -10
- package/dist/chunk-jpkjdgsk.js +0 -167
- package/dist/chunk-jpkjdgsk.js.map +0 -11
- package/dist/chunk-jwxt8gnp.js +0 -13
- package/dist/chunk-jwxt8gnp.js.map +0 -9
- package/dist/chunk-kk8w9rh5.js +0 -195
- package/dist/chunk-kk8w9rh5.js.map +0 -10
- package/dist/chunk-kwgh8rmg.js +0 -426
- package/dist/chunk-kwgh8rmg.js.map +0 -14
- package/dist/chunk-m97ze5hz.js +0 -46
- package/dist/chunk-m97ze5hz.js.map +0 -10
- package/dist/chunk-mbazhahf.js +0 -60
- package/dist/chunk-mbazhahf.js.map +0 -10
- package/dist/chunk-mgfwq18r.js +0 -15
- package/dist/chunk-mgfwq18r.js.map +0 -9
- package/dist/chunk-mtgf69xn.js +0 -88
- package/dist/chunk-mtgf69xn.js.map +0 -10
- package/dist/chunk-mtxzyxpg.js +0 -102
- package/dist/chunk-mtxzyxpg.js.map +0 -10
- package/dist/chunk-nehhtthw.js +0 -225
- package/dist/chunk-nehhtthw.js.map +0 -10
- package/dist/chunk-p5504p14.js +0 -16
- package/dist/chunk-p5504p14.js.map +0 -10
- package/dist/chunk-p5zgj77m.js +0 -184
- package/dist/chunk-p5zgj77m.js.map +0 -10
- package/dist/chunk-pnscgw95.js +0 -90
- package/dist/chunk-pnscgw95.js.map +0 -10
- package/dist/chunk-pvpp4pvs.js +0 -17
- package/dist/chunk-pvpp4pvs.js.map +0 -10
- package/dist/chunk-qh75agse.js +0 -95
- package/dist/chunk-qh75agse.js.map +0 -10
- package/dist/chunk-qxq2zcty.js +0 -52
- package/dist/chunk-qxq2zcty.js.map +0 -10
- package/dist/chunk-r6e8pytx.js +0 -22
- package/dist/chunk-r6e8pytx.js.map +0 -9
- package/dist/chunk-r7jmgqnw.js +0 -114
- package/dist/chunk-r7jmgqnw.js.map +0 -10
- package/dist/chunk-s6defjk2.js +0 -116
- package/dist/chunk-s6defjk2.js.map +0 -10
- package/dist/chunk-sd39p726.js +0 -619
- package/dist/chunk-sd39p726.js.map +0 -10
- package/dist/chunk-swrnzs4c.js +0 -63
- package/dist/chunk-swrnzs4c.js.map +0 -10
- package/dist/chunk-tfe3sb44.js +0 -33
- package/dist/chunk-tfe3sb44.js.map +0 -10
- package/dist/chunk-tjr0kcev.js +0 -41
- package/dist/chunk-tjr0kcev.js.map +0 -9
- package/dist/chunk-tx9edm1x.js +0 -34
- package/dist/chunk-tx9edm1x.js.map +0 -10
- package/dist/chunk-txhm2vb5.js +0 -18
- package/dist/chunk-txhm2vb5.js.map +0 -9
- package/dist/chunk-v5vmsxmy.js +0 -526
- package/dist/chunk-v5vmsxmy.js.map +0 -12
- package/dist/chunk-vjhxm8n2.js +0 -29
- package/dist/chunk-vjhxm8n2.js.map +0 -9
- package/dist/chunk-vkrpm7kc.js +0 -247
- package/dist/chunk-vkrpm7kc.js.map +0 -12
- package/dist/chunk-w3m4m5we.js +0 -4925
- package/dist/chunk-w3m4m5we.js.map +0 -12
- package/dist/chunk-wrxtn9ve.js +0 -18
- package/dist/chunk-wrxtn9ve.js.map +0 -10
- package/dist/chunk-x09cskqd.js +0 -377
- package/dist/chunk-x09cskqd.js.map +0 -10
- package/dist/chunk-xnt8c6h2.js +0 -576
- package/dist/chunk-xnt8c6h2.js.map +0 -10
- package/dist/chunk-xw0tx842.js +0 -13
- package/dist/chunk-xw0tx842.js.map +0 -9
- package/dist/chunk-xx5b6b9m.js +0 -69
- package/dist/chunk-xx5b6b9m.js.map +0 -10
- package/dist/chunk-xz1kdswj.js +0 -21
- package/dist/chunk-xz1kdswj.js.map +0 -9
- package/dist/chunk-y84qnsd3.js +0 -32
- package/dist/chunk-y84qnsd3.js.map +0 -10
- package/dist/chunk-ywjn0rad.js +0 -14
- package/dist/chunk-ywjn0rad.js.map +0 -9
- package/dist/chunk-z9nvhm6r.js +0 -13
- package/dist/chunk-z9nvhm6r.js.map +0 -9
- package/dist/chunk-zhmvdpk6.js +0 -15
- package/dist/chunk-zhmvdpk6.js.map +0 -9
- package/dist/chunk-zrg9d4zw.js +0 -784
- package/dist/chunk-zrg9d4zw.js.map +0 -10
package/dist/chunk-v5vmsxmy.js
DELETED
|
@@ -1,526 +0,0 @@
|
|
|
1
|
-
// @bun
|
|
2
|
-
import {
|
|
3
|
-
runWithStreamingSlotRegistry
|
|
4
|
-
} from "./chunk-c1jfjnka.js";
|
|
5
|
-
import {
|
|
6
|
-
appendStreamingSlotPatchesToStream
|
|
7
|
-
} from "./chunk-sd39p726.js";
|
|
8
|
-
import {
|
|
9
|
-
toPascal
|
|
10
|
-
} from "./chunk-p5504p14.js";
|
|
11
|
-
import {
|
|
12
|
-
BYTES_PER_KILOBYTE
|
|
13
|
-
} from "./chunk-qh75agse.js";
|
|
14
|
-
import {
|
|
15
|
-
__require
|
|
16
|
-
} from "./chunk-bmgqm774.js";
|
|
17
|
-
|
|
18
|
-
// src/core/responseEnhancers.ts
|
|
19
|
-
var toResponse = async (responseLike) => responseLike;
|
|
20
|
-
var cloneHeaders = (response) => {
|
|
21
|
-
const headers = new Headers(response.headers);
|
|
22
|
-
return headers;
|
|
23
|
-
};
|
|
24
|
-
var enhanceHtmlResponseWithStreamingSlots = (response, {
|
|
25
|
-
nonce,
|
|
26
|
-
onError,
|
|
27
|
-
runtimePlacement,
|
|
28
|
-
runtimePreludeScript,
|
|
29
|
-
streamingSlots = [],
|
|
30
|
-
policy
|
|
31
|
-
} = {}) => {
|
|
32
|
-
if (!response.body || streamingSlots.length === 0) {
|
|
33
|
-
return response;
|
|
34
|
-
}
|
|
35
|
-
const body = appendStreamingSlotPatchesToStream(response.body, streamingSlots, {
|
|
36
|
-
nonce,
|
|
37
|
-
onError,
|
|
38
|
-
policy,
|
|
39
|
-
runtimePlacement,
|
|
40
|
-
runtimePreludeScript
|
|
41
|
-
});
|
|
42
|
-
return new Response(body, {
|
|
43
|
-
headers: cloneHeaders(response),
|
|
44
|
-
status: response.status,
|
|
45
|
-
statusText: response.statusText
|
|
46
|
-
});
|
|
47
|
-
};
|
|
48
|
-
var withStreamingSlots = async (responseLike, options = {}) => enhanceHtmlResponseWithStreamingSlots(await toResponse(responseLike), options);
|
|
49
|
-
var mergeStreamingSlots = (registered, explicit) => {
|
|
50
|
-
const merged = new Map;
|
|
51
|
-
for (const slot of registered)
|
|
52
|
-
merged.set(slot.id, slot);
|
|
53
|
-
for (const slot of explicit)
|
|
54
|
-
merged.set(slot.id, slot);
|
|
55
|
-
return [...merged.values()];
|
|
56
|
-
};
|
|
57
|
-
var withRegisteredStreamingSlots = async (renderResponse, options = {}) => {
|
|
58
|
-
const { result, slots } = await runWithStreamingSlotRegistry(renderResponse);
|
|
59
|
-
const explicit = options.streamingSlots ?? [];
|
|
60
|
-
return withStreamingSlots(result, {
|
|
61
|
-
...options,
|
|
62
|
-
streamingSlots: mergeStreamingSlots(slots, explicit)
|
|
63
|
-
});
|
|
64
|
-
};
|
|
65
|
-
|
|
66
|
-
// src/core/islandPageContext.ts
|
|
67
|
-
var BOOTSTRAP_MANIFEST_KEY = "BootstrapClient";
|
|
68
|
-
var ISLAND_MARKER = 'data-island="true"';
|
|
69
|
-
var MANIFEST_MARKER = "__ABSOLUTE_MANIFEST__";
|
|
70
|
-
var ISLAND_STATE_MARKER = "__ABS_ISLAND_STATE__";
|
|
71
|
-
var CLOSING_HEAD_TAG = "</head>";
|
|
72
|
-
var buildIslandsHeadMarkup = (manifest) => {
|
|
73
|
-
const manifestScript = `<script>window.__ABSOLUTE_MANIFEST__ = ${JSON.stringify(manifest)}</script>`;
|
|
74
|
-
const islandStateScript = `<script>window.__ABS_ISLAND_STATE__ = ${JSON.stringify(globalThis.__ABS_ISLAND_STATE__ ?? {})}</script>`;
|
|
75
|
-
const bootstrapPath = manifest[BOOTSTRAP_MANIFEST_KEY];
|
|
76
|
-
const bootstrapScript = bootstrapPath ? `<script type="module" src="${bootstrapPath}"></script>` : "";
|
|
77
|
-
return `${manifestScript}${islandStateScript}${bootstrapScript}`;
|
|
78
|
-
};
|
|
79
|
-
var injectHeadMarkup = (html, markup) => {
|
|
80
|
-
const closingHeadIndex = html.indexOf("</head>");
|
|
81
|
-
if (closingHeadIndex >= 0) {
|
|
82
|
-
return `${html.slice(0, closingHeadIndex)}${markup}${html.slice(closingHeadIndex)}`;
|
|
83
|
-
}
|
|
84
|
-
const openingBodyIndex = html.indexOf("<body");
|
|
85
|
-
if (openingBodyIndex >= 0) {
|
|
86
|
-
const bodyStart = html.indexOf(">", openingBodyIndex);
|
|
87
|
-
if (bodyStart >= 0) {
|
|
88
|
-
return `${html.slice(0, openingBodyIndex)}<head>${markup}</head>${html.slice(openingBodyIndex)}`;
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
return `<!DOCTYPE html><html><head>${markup}</head><body>${html}</body></html>`;
|
|
92
|
-
};
|
|
93
|
-
var streamChunkToString = (value, decoder) => typeof value === "string" ? value : decoder.decode(value, { stream: true });
|
|
94
|
-
var flushSafePendingText = (controller, encoder, pending, lookbehind) => {
|
|
95
|
-
if (pending.length <= lookbehind) {
|
|
96
|
-
return pending;
|
|
97
|
-
}
|
|
98
|
-
const safeText = pending.slice(0, pending.length - lookbehind);
|
|
99
|
-
controller.enqueue(encoder.encode(safeText));
|
|
100
|
-
return pending.slice(-lookbehind);
|
|
101
|
-
};
|
|
102
|
-
var updateInjectedState = (consumed, injected, pending) => {
|
|
103
|
-
if (consumed.done) {
|
|
104
|
-
return { done: true, injected, pending };
|
|
105
|
-
}
|
|
106
|
-
return {
|
|
107
|
-
done: false,
|
|
108
|
-
injected: consumed.injected,
|
|
109
|
-
pending: consumed.pending
|
|
110
|
-
};
|
|
111
|
-
};
|
|
112
|
-
var readStreamChunk = async (reader) => {
|
|
113
|
-
const { done, value } = await reader.read();
|
|
114
|
-
if (done || !value) {
|
|
115
|
-
return { done, value: undefined };
|
|
116
|
-
}
|
|
117
|
-
return { done, value };
|
|
118
|
-
};
|
|
119
|
-
var pipeStreamWithHeadInjection = (stream, markup) => {
|
|
120
|
-
const encoder = new TextEncoder;
|
|
121
|
-
const decoder = new TextDecoder;
|
|
122
|
-
const lookbehind = CLOSING_HEAD_TAG.length - 1;
|
|
123
|
-
const processPending = (controller, pending, injected) => {
|
|
124
|
-
if (injected) {
|
|
125
|
-
controller.enqueue(encoder.encode(pending));
|
|
126
|
-
return { injected, pending: "" };
|
|
127
|
-
}
|
|
128
|
-
const headIndex = pending.indexOf(CLOSING_HEAD_TAG);
|
|
129
|
-
if (headIndex >= 0) {
|
|
130
|
-
const next = `${pending.slice(0, headIndex)}${markup}${pending.slice(headIndex)}`;
|
|
131
|
-
controller.enqueue(encoder.encode(next));
|
|
132
|
-
return { injected: true, pending: "" };
|
|
133
|
-
}
|
|
134
|
-
return {
|
|
135
|
-
injected,
|
|
136
|
-
pending: flushSafePendingText(controller, encoder, pending, lookbehind)
|
|
137
|
-
};
|
|
138
|
-
};
|
|
139
|
-
const finishHeadInjectionStream = (controller, pending, injected) => {
|
|
140
|
-
let finalPending = pending + decoder.decode();
|
|
141
|
-
if (!injected) {
|
|
142
|
-
finalPending = injectHeadMarkup(finalPending, markup);
|
|
143
|
-
}
|
|
144
|
-
if (finalPending.length > 0) {
|
|
145
|
-
controller.enqueue(encoder.encode(finalPending));
|
|
146
|
-
}
|
|
147
|
-
controller.close();
|
|
148
|
-
};
|
|
149
|
-
const consumeHeadChunk = async (controller, reader, pending, injected) => {
|
|
150
|
-
const { done, value } = await readStreamChunk(reader);
|
|
151
|
-
if (done || !value) {
|
|
152
|
-
return { done, injected, pending };
|
|
153
|
-
}
|
|
154
|
-
const processed = processPending(controller, pending + streamChunkToString(value, decoder), injected);
|
|
155
|
-
return {
|
|
156
|
-
done,
|
|
157
|
-
injected: processed.injected,
|
|
158
|
-
pending: processed.pending
|
|
159
|
-
};
|
|
160
|
-
};
|
|
161
|
-
const runHeadInjectionLoop = async (controller, reader) => {
|
|
162
|
-
const consumeNextHeadChunk = async (injected, pending) => {
|
|
163
|
-
const consumed = await consumeHeadChunk(controller, reader, pending, injected);
|
|
164
|
-
const nextState = updateInjectedState(consumed, injected, pending);
|
|
165
|
-
if (nextState.done) {
|
|
166
|
-
return { injected, pending };
|
|
167
|
-
}
|
|
168
|
-
return consumeNextHeadChunk(nextState.injected, nextState.pending);
|
|
169
|
-
};
|
|
170
|
-
return consumeNextHeadChunk(false, "");
|
|
171
|
-
};
|
|
172
|
-
return new ReadableStream({
|
|
173
|
-
async start(controller) {
|
|
174
|
-
const reader = stream.getReader();
|
|
175
|
-
try {
|
|
176
|
-
const { injected, pending } = await runHeadInjectionLoop(controller, reader);
|
|
177
|
-
finishHeadInjectionStream(controller, pending, injected);
|
|
178
|
-
} catch (error) {
|
|
179
|
-
controller.error(error);
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
});
|
|
183
|
-
};
|
|
184
|
-
var pipeStreamWithIslandMarkerDetection = (stream, markup) => {
|
|
185
|
-
const encoder = new TextEncoder;
|
|
186
|
-
const decoder = new TextDecoder;
|
|
187
|
-
const lookbehind = Math.max(ISLAND_MARKER.length, BYTES_PER_KILOBYTE);
|
|
188
|
-
const processPending = (controller, pending, injected) => {
|
|
189
|
-
if (injected) {
|
|
190
|
-
controller.enqueue(encoder.encode(pending));
|
|
191
|
-
return { injected, pending: "" };
|
|
192
|
-
}
|
|
193
|
-
const markerIndex = pending.indexOf(ISLAND_MARKER);
|
|
194
|
-
if (markerIndex >= 0) {
|
|
195
|
-
const tagStart = pending.lastIndexOf("<", markerIndex);
|
|
196
|
-
const injectAt = tagStart >= 0 ? tagStart : markerIndex;
|
|
197
|
-
const next = `${pending.slice(0, injectAt)}${markup}${pending.slice(injectAt)}`;
|
|
198
|
-
controller.enqueue(encoder.encode(next));
|
|
199
|
-
return { injected: true, pending: "" };
|
|
200
|
-
}
|
|
201
|
-
return {
|
|
202
|
-
injected,
|
|
203
|
-
pending: flushSafePendingText(controller, encoder, pending, lookbehind)
|
|
204
|
-
};
|
|
205
|
-
};
|
|
206
|
-
const finishIslandMarkerStream = (controller, pending) => {
|
|
207
|
-
const finalPending = pending + decoder.decode();
|
|
208
|
-
if (finalPending.length > 0) {
|
|
209
|
-
controller.enqueue(encoder.encode(finalPending));
|
|
210
|
-
}
|
|
211
|
-
controller.close();
|
|
212
|
-
};
|
|
213
|
-
const consumeIslandChunk = async (controller, reader, pending, injected) => {
|
|
214
|
-
const { done, value } = await readStreamChunk(reader);
|
|
215
|
-
if (done || !value) {
|
|
216
|
-
return { done, injected, pending };
|
|
217
|
-
}
|
|
218
|
-
const processed = processPending(controller, pending + streamChunkToString(value, decoder), injected);
|
|
219
|
-
return {
|
|
220
|
-
done,
|
|
221
|
-
injected: processed.injected,
|
|
222
|
-
pending: processed.pending
|
|
223
|
-
};
|
|
224
|
-
};
|
|
225
|
-
const runIslandMarkerLoop = async (controller, reader) => {
|
|
226
|
-
const consumeNextIslandChunk = async (injected, pending) => {
|
|
227
|
-
const consumed = await consumeIslandChunk(controller, reader, pending, injected);
|
|
228
|
-
const nextState = updateInjectedState(consumed, injected, pending);
|
|
229
|
-
if (nextState.done) {
|
|
230
|
-
return { injected, pending };
|
|
231
|
-
}
|
|
232
|
-
return consumeNextIslandChunk(nextState.injected, nextState.pending);
|
|
233
|
-
};
|
|
234
|
-
return consumeNextIslandChunk(false, "");
|
|
235
|
-
};
|
|
236
|
-
return new ReadableStream({
|
|
237
|
-
async start(controller) {
|
|
238
|
-
const reader = stream.getReader();
|
|
239
|
-
try {
|
|
240
|
-
const { pending } = await runIslandMarkerLoop(controller, reader);
|
|
241
|
-
finishIslandMarkerStream(controller, pending);
|
|
242
|
-
} catch (error) {
|
|
243
|
-
controller.error(error);
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
});
|
|
247
|
-
};
|
|
248
|
-
var htmlContainsIslands = (html) => html.includes(ISLAND_MARKER);
|
|
249
|
-
var injectIslandPageContext = (html, options) => {
|
|
250
|
-
const manifest = globalThis.__absoluteManifest;
|
|
251
|
-
const hasIslands = options?.hasIslands ?? htmlContainsIslands(html);
|
|
252
|
-
if (!manifest || !hasIslands) {
|
|
253
|
-
return html;
|
|
254
|
-
}
|
|
255
|
-
if (html.includes(MANIFEST_MARKER) || html.includes(ISLAND_STATE_MARKER)) {
|
|
256
|
-
return html;
|
|
257
|
-
}
|
|
258
|
-
return injectHeadMarkup(html, buildIslandsHeadMarkup(manifest));
|
|
259
|
-
};
|
|
260
|
-
var injectIslandPageContextStream = (stream, options) => {
|
|
261
|
-
const manifest = globalThis.__absoluteManifest;
|
|
262
|
-
if (!manifest)
|
|
263
|
-
return stream;
|
|
264
|
-
const markup = buildIslandsHeadMarkup(manifest);
|
|
265
|
-
if (options?.hasIslands === true) {
|
|
266
|
-
return pipeStreamWithHeadInjection(stream, markup);
|
|
267
|
-
}
|
|
268
|
-
if (options?.hasIslands === false) {
|
|
269
|
-
return stream;
|
|
270
|
-
}
|
|
271
|
-
return pipeStreamWithIslandMarkerDetection(stream, markup);
|
|
272
|
-
};
|
|
273
|
-
var setCurrentIslandManifest = (manifest) => {
|
|
274
|
-
globalThis.__absoluteManifest = manifest;
|
|
275
|
-
};
|
|
276
|
-
|
|
277
|
-
// src/utils/resolveConvention.ts
|
|
278
|
-
import { basename } from "path";
|
|
279
|
-
var CONVENTIONS_KEY = "__absoluteConventions";
|
|
280
|
-
var isConventionsMap = (value) => Boolean(value) && typeof value === "object";
|
|
281
|
-
var getMap = () => {
|
|
282
|
-
const value = Reflect.get(globalThis, CONVENTIONS_KEY);
|
|
283
|
-
if (isConventionsMap(value))
|
|
284
|
-
return value;
|
|
285
|
-
const empty = {};
|
|
286
|
-
return empty;
|
|
287
|
-
};
|
|
288
|
-
var derivePageName = (pagePath) => {
|
|
289
|
-
const base = basename(pagePath);
|
|
290
|
-
const dotIndex = base.indexOf(".");
|
|
291
|
-
const name = dotIndex > 0 ? base.slice(0, dotIndex) : base;
|
|
292
|
-
return toPascal(name);
|
|
293
|
-
};
|
|
294
|
-
var normalizeConventionPageName = (name) => toPascal(name).replace(/\d+$/, "");
|
|
295
|
-
var resolveErrorConventionPath = (framework, pageName) => {
|
|
296
|
-
const conventions = getMap()[framework];
|
|
297
|
-
if (!conventions)
|
|
298
|
-
return;
|
|
299
|
-
const exact = conventions.pages?.[pageName]?.error;
|
|
300
|
-
if (exact)
|
|
301
|
-
return exact;
|
|
302
|
-
const normalizedPageName = normalizeConventionPageName(pageName);
|
|
303
|
-
for (const [candidate, page] of Object.entries(conventions.pages ?? {})) {
|
|
304
|
-
if (normalizeConventionPageName(candidate) === normalizedPageName) {
|
|
305
|
-
return page.error ?? conventions.defaults?.error;
|
|
306
|
-
}
|
|
307
|
-
}
|
|
308
|
-
return conventions.defaults?.error;
|
|
309
|
-
};
|
|
310
|
-
var resolveNotFoundConventionPath = (framework) => getMap()[framework]?.defaults?.notFound;
|
|
311
|
-
var hasErrorConvention = (framework) => {
|
|
312
|
-
const conventions = getMap()[framework];
|
|
313
|
-
if (!conventions)
|
|
314
|
-
return false;
|
|
315
|
-
if (conventions.defaults?.error)
|
|
316
|
-
return true;
|
|
317
|
-
return Object.values(conventions.pages ?? {}).some((page) => Boolean(page.error));
|
|
318
|
-
};
|
|
319
|
-
var setConventions = (map) => {
|
|
320
|
-
Reflect.set(globalThis, CONVENTIONS_KEY, map);
|
|
321
|
-
};
|
|
322
|
-
var isDev = () => true;
|
|
323
|
-
var buildErrorProps = (error) => {
|
|
324
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
325
|
-
const stack = isDev() && error instanceof Error ? error.stack : undefined;
|
|
326
|
-
return { error: { message, stack } };
|
|
327
|
-
};
|
|
328
|
-
var renderReactError = async (conventionPath, errorProps) => {
|
|
329
|
-
const { createElement } = await import("react");
|
|
330
|
-
const { renderToReadableStream } = await import("react-dom/server");
|
|
331
|
-
const mod = await import(conventionPath);
|
|
332
|
-
const [firstKey] = Object.keys(mod);
|
|
333
|
-
const ErrorComponent = mod.default ?? (firstKey ? mod[firstKey] : undefined);
|
|
334
|
-
const element = createElement(ErrorComponent, errorProps);
|
|
335
|
-
const stream = await renderToReadableStream(element);
|
|
336
|
-
return new Response(stream, {
|
|
337
|
-
headers: { "Content-Type": "text/html" },
|
|
338
|
-
status: 500
|
|
339
|
-
});
|
|
340
|
-
};
|
|
341
|
-
var renderSvelteError = async (conventionPath, errorProps) => {
|
|
342
|
-
const { render } = await import("svelte/server");
|
|
343
|
-
const mod = await import(conventionPath);
|
|
344
|
-
const ErrorComponent = mod.default;
|
|
345
|
-
const { head, body } = render(ErrorComponent, {
|
|
346
|
-
props: errorProps
|
|
347
|
-
});
|
|
348
|
-
const html = `<!DOCTYPE html><html><head>${head}</head><body>${body}</body></html>`;
|
|
349
|
-
return new Response(html, {
|
|
350
|
-
headers: { "Content-Type": "text/html" },
|
|
351
|
-
status: 500
|
|
352
|
-
});
|
|
353
|
-
};
|
|
354
|
-
var unescapeVueStyles = (ssrBody) => {
|
|
355
|
-
let styles = "";
|
|
356
|
-
const body = ssrBody.replace(/<style>([\s\S]*?)<\/style>/g, (_, css) => {
|
|
357
|
-
styles += `<style>${css.replace(/"/g, '"').replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">")}</style>`;
|
|
358
|
-
return "";
|
|
359
|
-
});
|
|
360
|
-
return { body, styles };
|
|
361
|
-
};
|
|
362
|
-
var renderVueError = async (conventionPath, errorProps) => {
|
|
363
|
-
const { createSSRApp, h } = await import("vue");
|
|
364
|
-
const { renderToString } = await import("vue/server-renderer");
|
|
365
|
-
const mod = await import(conventionPath);
|
|
366
|
-
const ErrorComponent = mod.default;
|
|
367
|
-
const app = createSSRApp({
|
|
368
|
-
render: () => h(ErrorComponent, errorProps)
|
|
369
|
-
});
|
|
370
|
-
const rawBody = await renderToString(app);
|
|
371
|
-
const { styles, body } = unescapeVueStyles(rawBody);
|
|
372
|
-
const html = `<!DOCTYPE html><html><head>${styles}</head><body><div id="root">${body}</div></body></html>`;
|
|
373
|
-
return new Response(html, {
|
|
374
|
-
headers: { "Content-Type": "text/html" },
|
|
375
|
-
status: 500
|
|
376
|
-
});
|
|
377
|
-
};
|
|
378
|
-
var renderAngularError = async (conventionPath, errorProps) => {
|
|
379
|
-
const mod = await import(conventionPath);
|
|
380
|
-
const renderError = mod.default ?? mod.renderError;
|
|
381
|
-
if (typeof renderError !== "function")
|
|
382
|
-
return null;
|
|
383
|
-
const html = renderError(errorProps);
|
|
384
|
-
return new Response(html, {
|
|
385
|
-
headers: { "Content-Type": "text/html" },
|
|
386
|
-
status: 500
|
|
387
|
-
});
|
|
388
|
-
};
|
|
389
|
-
var logConventionRenderError = (framework, label, renderError) => {
|
|
390
|
-
const message = renderError instanceof Error ? renderError.message : "";
|
|
391
|
-
if (message.includes("Cannot find module") || message.includes("Cannot find package") || message.includes("not found in module")) {
|
|
392
|
-
console.error(`[SSR] Convention ${label} page for ${framework} failed: missing framework package. Ensure the ${framework} runtime is installed (e.g. bun add ${framework === "react" ? "react react-dom" : framework}).`);
|
|
393
|
-
return;
|
|
394
|
-
}
|
|
395
|
-
console.error(`[SSR] Failed to render ${framework} convention ${label} page:`, renderError);
|
|
396
|
-
};
|
|
397
|
-
var ERROR_RENDERERS = {
|
|
398
|
-
angular: renderAngularError,
|
|
399
|
-
react: renderReactError,
|
|
400
|
-
svelte: renderSvelteError,
|
|
401
|
-
vue: renderVueError
|
|
402
|
-
};
|
|
403
|
-
var renderConventionError = async (framework, pageName, error) => {
|
|
404
|
-
let conventionPath = resolveErrorConventionPath(framework, pageName);
|
|
405
|
-
if (!conventionPath && error instanceof Error && error.stack) {
|
|
406
|
-
for (const match of error.stack.matchAll(/^\s*at\s+([A-Za-z_$][\w$]*)/gm)) {
|
|
407
|
-
const candidate = match[1];
|
|
408
|
-
if (!candidate)
|
|
409
|
-
continue;
|
|
410
|
-
conventionPath = resolveErrorConventionPath(framework, candidate);
|
|
411
|
-
if (conventionPath)
|
|
412
|
-
break;
|
|
413
|
-
}
|
|
414
|
-
}
|
|
415
|
-
if (!conventionPath)
|
|
416
|
-
return null;
|
|
417
|
-
const errorProps = buildErrorProps(error);
|
|
418
|
-
const renderer = ERROR_RENDERERS[framework];
|
|
419
|
-
if (!renderer)
|
|
420
|
-
return null;
|
|
421
|
-
try {
|
|
422
|
-
return await renderer(conventionPath, errorProps);
|
|
423
|
-
} catch (renderError) {
|
|
424
|
-
logConventionRenderError(framework, "error", renderError);
|
|
425
|
-
}
|
|
426
|
-
return null;
|
|
427
|
-
};
|
|
428
|
-
var renderReactNotFound = async (conventionPath) => {
|
|
429
|
-
const { createElement } = await import("react");
|
|
430
|
-
const { renderToReadableStream } = await import("react-dom/server");
|
|
431
|
-
const mod = await import(conventionPath);
|
|
432
|
-
const [nfKey] = Object.keys(mod);
|
|
433
|
-
const NotFoundComponent = mod.default ?? (nfKey ? mod[nfKey] : undefined);
|
|
434
|
-
const element = createElement(NotFoundComponent);
|
|
435
|
-
const stream = await renderToReadableStream(element);
|
|
436
|
-
return new Response(stream, {
|
|
437
|
-
headers: { "Content-Type": "text/html" },
|
|
438
|
-
status: 404
|
|
439
|
-
});
|
|
440
|
-
};
|
|
441
|
-
var renderSvelteNotFound = async (conventionPath) => {
|
|
442
|
-
const { render } = await import("svelte/server");
|
|
443
|
-
const mod = await import(conventionPath);
|
|
444
|
-
const NotFoundComponent = mod.default;
|
|
445
|
-
const { head, body } = render(NotFoundComponent);
|
|
446
|
-
const html = `<!DOCTYPE html><html><head>${head}</head><body>${body}</body></html>`;
|
|
447
|
-
return new Response(html, {
|
|
448
|
-
headers: { "Content-Type": "text/html" },
|
|
449
|
-
status: 404
|
|
450
|
-
});
|
|
451
|
-
};
|
|
452
|
-
var renderVueNotFound = async (conventionPath) => {
|
|
453
|
-
const { createSSRApp, h } = await import("vue");
|
|
454
|
-
const { renderToString } = await import("vue/server-renderer");
|
|
455
|
-
const mod = await import(conventionPath);
|
|
456
|
-
const NotFoundComponent = mod.default;
|
|
457
|
-
const app = createSSRApp({
|
|
458
|
-
render: () => h(NotFoundComponent)
|
|
459
|
-
});
|
|
460
|
-
const rawBody = await renderToString(app);
|
|
461
|
-
const { styles, body } = unescapeVueStyles(rawBody);
|
|
462
|
-
const html = `<!DOCTYPE html><html><head>${styles}</head><body><div id="root">${body}</div></body></html>`;
|
|
463
|
-
return new Response(html, {
|
|
464
|
-
headers: { "Content-Type": "text/html" },
|
|
465
|
-
status: 404
|
|
466
|
-
});
|
|
467
|
-
};
|
|
468
|
-
var renderAngularNotFound = async (conventionPath) => {
|
|
469
|
-
const mod = await import(conventionPath);
|
|
470
|
-
const renderNotFound = mod.default ?? mod.renderNotFound;
|
|
471
|
-
if (typeof renderNotFound !== "function")
|
|
472
|
-
return null;
|
|
473
|
-
const html = renderNotFound();
|
|
474
|
-
return new Response(html, {
|
|
475
|
-
headers: { "Content-Type": "text/html" },
|
|
476
|
-
status: 404
|
|
477
|
-
});
|
|
478
|
-
};
|
|
479
|
-
var NOT_FOUND_RENDERERS = {
|
|
480
|
-
angular: renderAngularNotFound,
|
|
481
|
-
react: renderReactNotFound,
|
|
482
|
-
svelte: renderSvelteNotFound,
|
|
483
|
-
vue: renderVueNotFound
|
|
484
|
-
};
|
|
485
|
-
var renderConventionNotFound = async (framework) => {
|
|
486
|
-
const conventionPath = resolveNotFoundConventionPath(framework);
|
|
487
|
-
if (!conventionPath)
|
|
488
|
-
return null;
|
|
489
|
-
const renderer = NOT_FOUND_RENDERERS[framework];
|
|
490
|
-
if (!renderer)
|
|
491
|
-
return null;
|
|
492
|
-
try {
|
|
493
|
-
return await renderer(conventionPath);
|
|
494
|
-
} catch (renderError) {
|
|
495
|
-
logConventionRenderError(framework, "not-found", renderError);
|
|
496
|
-
}
|
|
497
|
-
return null;
|
|
498
|
-
};
|
|
499
|
-
var NOT_FOUND_PRIORITY = [
|
|
500
|
-
"react",
|
|
501
|
-
"svelte",
|
|
502
|
-
"vue",
|
|
503
|
-
"angular"
|
|
504
|
-
];
|
|
505
|
-
var renderFirstNotFound = async () => {
|
|
506
|
-
const renderNext = async (frameworks) => {
|
|
507
|
-
const [framework, ...remaining] = frameworks;
|
|
508
|
-
if (!framework) {
|
|
509
|
-
return null;
|
|
510
|
-
}
|
|
511
|
-
if (!getMap()[framework]?.defaults?.notFound) {
|
|
512
|
-
return renderNext(remaining);
|
|
513
|
-
}
|
|
514
|
-
const response = await renderConventionNotFound(framework);
|
|
515
|
-
if (response) {
|
|
516
|
-
return response;
|
|
517
|
-
}
|
|
518
|
-
return renderNext(remaining);
|
|
519
|
-
};
|
|
520
|
-
return renderNext(NOT_FOUND_PRIORITY);
|
|
521
|
-
};
|
|
522
|
-
|
|
523
|
-
export { injectIslandPageContext, injectIslandPageContextStream, setCurrentIslandManifest, enhanceHtmlResponseWithStreamingSlots, withStreamingSlots, withRegisteredStreamingSlots, derivePageName, resolveErrorConventionPath, hasErrorConvention, setConventions, renderConventionError, renderFirstNotFound };
|
|
524
|
-
|
|
525
|
-
//# debugId=07AF9404315C5F2F64756E2164756E21
|
|
526
|
-
//# sourceMappingURL=chunk-v5vmsxmy.js.map
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/core/responseEnhancers.ts", "../src/core/islandPageContext.ts", "../src/utils/resolveConvention.ts"],
|
|
4
|
-
"sourcesContent": [
|
|
5
|
-
"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) => 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\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",
|
|
6
|
-
"import { BYTES_PER_KILOBYTE } from '../constants';\n\nconst 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 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\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, BYTES_PER_KILOBYTE);\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 markerIndex = pending.indexOf(ISLAND_MARKER);\n\t\tif (markerIndex >= 0) {\n\t\t\tconst tagStart = pending.lastIndexOf('<', markerIndex);\n\t\t\tconst injectAt = tagStart >= 0 ? tagStart : markerIndex;\n\t\t\tconst next = `${pending.slice(0, injectAt)}${markup}${pending.slice(injectAt)}`;\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 finishIslandMarkerStream = (\n\t\tcontroller: ReadableStreamDefaultController<Uint8Array>,\n\t\tpending: string\n\t) => {\n\t\tconst finalPending = pending + decoder.decode();\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 consumeIslandChunk = 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 runIslandMarkerLoop = async (\n\t\tcontroller: ReadableStreamDefaultController<Uint8Array>,\n\t\treader: ReadableStreamDefaultReader<string | Uint8Array>\n\t) => {\n\t\tconst consumeNextIslandChunk = async (\n\t\t\tinjected: boolean,\n\t\t\tpending: string\n\t\t) => {\n\t\t\tconst consumed = await consumeIslandChunk(\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 consumeNextIslandChunk(\n\t\t\t\tnextState.injected,\n\t\t\t\tnextState.pending\n\t\t\t);\n\t\t};\n\n\t\treturn consumeNextIslandChunk(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 { pending } = await runIslandMarkerLoop(\n\t\t\t\t\tcontroller,\n\t\t\t\t\treader\n\t\t\t\t);\n\t\t\t\tfinishIslandMarkerStream(controller, pending);\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",
|
|
7
|
-
"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();\n\nconst normalizeConventionPageName = (name: string) =>\n\ttoPascal(name).replace(/\\d+$/, '');\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;\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};\n\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\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[1];\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 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\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(NOT_FOUND_PRIORITY);\n};\n"
|
|
8
|
-
],
|
|
9
|
-
"mappings": "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",
|
|
10
|
-
"debugId": "07AF9404315C5F2F64756E2164756E21",
|
|
11
|
-
"names": []
|
|
12
|
-
}
|
package/dist/chunk-vjhxm8n2.js
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
// @bun
|
|
2
|
-
import {
|
|
3
|
-
getAngularServerVendorPaths,
|
|
4
|
-
getAngularVendorPaths,
|
|
5
|
-
getDevVendorPaths,
|
|
6
|
-
getSvelteVendorPaths,
|
|
7
|
-
getVueVendorPaths,
|
|
8
|
-
setAngularServerVendorPaths,
|
|
9
|
-
setAngularVendorPaths,
|
|
10
|
-
setDevVendorPaths,
|
|
11
|
-
setSvelteVendorPaths,
|
|
12
|
-
setVueVendorPaths
|
|
13
|
-
} from "./chunk-y84qnsd3.js";
|
|
14
|
-
import"./chunk-bmgqm774.js";
|
|
15
|
-
export {
|
|
16
|
-
setVueVendorPaths,
|
|
17
|
-
setSvelteVendorPaths,
|
|
18
|
-
setDevVendorPaths,
|
|
19
|
-
setAngularVendorPaths,
|
|
20
|
-
setAngularServerVendorPaths,
|
|
21
|
-
getVueVendorPaths,
|
|
22
|
-
getSvelteVendorPaths,
|
|
23
|
-
getDevVendorPaths,
|
|
24
|
-
getAngularVendorPaths,
|
|
25
|
-
getAngularServerVendorPaths
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
//# debugId=12057FC8D31DCC3F64756E2164756E21
|
|
29
|
-
//# sourceMappingURL=chunk-vjhxm8n2.js.map
|