solid-js 1.8.6 → 1.8.8
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/dev.cjs +31 -21
- package/dist/dev.js +327 -552
- package/dist/server.js +75 -170
- package/dist/solid.cjs +31 -21
- package/dist/solid.js +285 -479
- package/h/dist/h.js +8 -34
- package/h/jsx-runtime/dist/jsx.js +1 -1
- package/h/jsx-runtime/types/index.d.ts +8 -11
- package/h/jsx-runtime/types/jsx.d.ts +15 -1
- package/h/types/hyperscript.d.ts +11 -11
- package/html/dist/html.js +94 -216
- package/html/types/lit.d.ts +33 -47
- package/package.json +2 -2
- package/store/dist/dev.cjs +3 -2
- package/store/dist/dev.js +44 -115
- package/store/dist/server.js +8 -19
- package/store/dist/store.cjs +3 -2
- package/store/dist/store.js +41 -106
- package/store/types/index.d.ts +7 -21
- package/store/types/modifiers.d.ts +3 -6
- package/store/types/mutable.d.ts +2 -5
- package/store/types/server.d.ts +4 -12
- package/store/types/store.d.ts +61 -218
- package/types/index.d.ts +10 -75
- package/types/jsx.d.ts +15 -1
- package/types/reactive/array.d.ts +4 -12
- package/types/reactive/observable.d.ts +17 -25
- package/types/reactive/scheduler.d.ts +6 -9
- package/types/reactive/signal.d.ts +142 -231
- package/types/render/Suspense.d.ts +5 -5
- package/types/render/component.d.ts +33 -62
- package/types/render/flow.d.ts +31 -43
- package/types/render/hydration.d.ts +13 -13
- package/types/server/index.d.ts +2 -57
- package/types/server/reactive.d.ts +42 -73
- package/types/server/rendering.d.ts +96 -166
- package/universal/dist/dev.js +12 -28
- package/universal/dist/universal.js +12 -28
- package/universal/types/index.d.ts +1 -3
- package/universal/types/universal.d.ts +1 -0
- package/web/dist/dev.js +81 -620
- package/web/dist/server.cjs +23 -15
- package/web/dist/server.js +117 -191
- package/web/dist/storage.js +3 -3
- package/web/dist/web.js +80 -614
- package/web/types/client.d.ts +2 -2
- package/web/types/core.d.ts +1 -10
- package/web/types/index.d.ts +10 -27
- package/web/types/server-mock.d.ts +32 -47
package/web/dist/server.cjs
CHANGED
|
@@ -11,6 +11,8 @@ const Aliases = /*#__PURE__*/Object.assign(Object.create(null), {
|
|
|
11
11
|
htmlFor: "for"
|
|
12
12
|
});
|
|
13
13
|
|
|
14
|
+
seroval.createPlugin({tag:"seroval-plugins/web/Blob",test(e){return typeof Blob=="undefined"?!1:e instanceof Blob},parse:{async async(e,r){return {type:await r.parse(e.type),buffer:await r.parse(await e.arrayBuffer())}}},serialize(e,r){return "new Blob(["+r.serialize(e.buffer)+"],{type:"+r.serialize(e.type)+"})"},deserialize(e,r){return new Blob([r.deserialize(e.buffer)],{type:r.deserialize(e.type)})}});function p(e){return {detail:e.detail,bubbles:e.bubbles,cancelable:e.cancelable,composed:e.composed}}var E=seroval.createPlugin({tag:"seroval-plugins/web/CustomEvent",test(e){return typeof CustomEvent=="undefined"?!1:e instanceof CustomEvent},parse:{sync(e,r){return {type:r.parse(e.type),options:r.parse(p(e))}},async async(e,r){return {type:await r.parse(e.type),options:await r.parse(p(e))}},stream(e,r){return {type:r.parse(e.type),options:r.parse(p(e))}}},serialize(e,r){return "new CustomEvent("+r.serialize(e.type)+","+r.serialize(e.options)+")"},deserialize(e,r){return new CustomEvent(r.deserialize(e.type),r.deserialize(e.options))}}),F=E;var I=seroval.createPlugin({tag:"seroval-plugins/web/DOMException",test(e){return typeof DOMException=="undefined"?!1:e instanceof DOMException},parse:{sync(e,r){return {name:r.parse(e.name),message:r.parse(e.message)}},async async(e,r){return {name:await r.parse(e.name),message:await r.parse(e.message)}},stream(e,r){return {name:r.parse(e.name),message:r.parse(e.message)}}},serialize(e,r){return "new DOMException("+r.serialize(e.message)+","+r.serialize(e.name)+")"},deserialize(e,r){return new DOMException(r.deserialize(e.message),r.deserialize(e.name))}}),B=I;function u(e){return {bubbles:e.bubbles,cancelable:e.cancelable,composed:e.composed}}var L=seroval.createPlugin({tag:"seroval-plugins/web/Event",test(e){return typeof Event=="undefined"?!1:e instanceof Event},parse:{sync(e,r){return {type:r.parse(e.type),options:r.parse(u(e))}},async async(e,r){return {type:await r.parse(e.type),options:await r.parse(u(e))}},stream(e,r){return {type:r.parse(e.type),options:r.parse(u(e))}}},serialize(e,r){return "new Event("+r.serialize(e.type)+","+r.serialize(e.options)+")"},deserialize(e,r){return new Event(r.deserialize(e.type),r.deserialize(e.options))}}),O=L;var q=seroval.createPlugin({tag:"seroval-plugins/web/File",test(e){return typeof File=="undefined"?!1:e instanceof File},parse:{async async(e,r){return {name:await r.parse(e.name),options:await r.parse({type:e.type,lastModified:e.lastModified}),buffer:await r.parse(await e.arrayBuffer())}}},serialize(e,r){return "new File(["+r.serialize(e.buffer)+"],"+r.serialize(e.name)+","+r.serialize(e.options)+")"},deserialize(e,r){return new File([r.deserialize(e.buffer)],r.deserialize(e.name),r.deserialize(e.options))}}),d=q;function f(e){let r=[];return e.forEach((s,a)=>{r.push([a,s]);}),r}var n={},H=seroval.createPlugin({tag:"seroval-plugins/web/FormDataFactory",test(e){return e===n},parse:{sync(){},async async(){return await Promise.resolve(void 0)},stream(){}},serialize(e,r){return r.createEffectfulFunction(["e","f","i","s","t"],"f=new FormData;for(i=0,s=e.length;i<s;i++)f.append((t=e[i])[0],t[1]);return f")},deserialize(){return n}}),M=seroval.createPlugin({tag:"seroval-plugins/web/FormData",extends:[d,H],test(e){return typeof FormData=="undefined"?!1:e instanceof FormData},parse:{sync(e,r){return {factory:r.parse(n),entries:r.parse(f(e))}},async async(e,r){return {factory:await r.parse(n),entries:await r.parse(f(e))}},stream(e,r){return {factory:r.parse(n),entries:r.parse(f(e))}}},serialize(e,r){return "("+r.serialize(e.factory)+")("+r.serialize(e.entries)+")"},deserialize(e,r){let s=new FormData,a=r.deserialize(e.entries);for(let t=0,b=a.length;t<b;t++){let c=a[t];s.append(c[0],c[1]);}return s}}),A=M;function m(e){let r=[];return e.forEach((s,a)=>{r.push([a,s]);}),r}var _=seroval.createPlugin({tag:"seroval-plugins/web/Headers",test(e){return typeof Headers=="undefined"?!1:e instanceof Headers},parse:{sync(e,r){return r.parse(m(e))},async async(e,r){return await r.parse(m(e))},stream(e,r){return r.parse(m(e))}},serialize(e,r){return "new Headers("+r.serialize(e)+")"},deserialize(e,r){return new Headers(r.deserialize(e))}}),i=_;seroval.createPlugin({tag:"seroval-plugins/web/ImageData",test(e){return typeof ImageData=="undefined"?!1:e instanceof ImageData},parse:{sync(e,r){return {data:r.parse(e.data),width:r.parse(e.width),height:r.parse(e.height),options:r.parse({colorSpace:e.colorSpace})}},async async(e,r){return {data:await r.parse(e.data),width:await r.parse(e.width),height:await r.parse(e.height),options:await r.parse({colorSpace:e.colorSpace})}},stream(e,r){return {data:r.parse(e.data),width:r.parse(e.width),height:r.parse(e.height),options:r.parse({colorSpace:e.colorSpace})}}},serialize(e,r){return "new ImageData("+r.serialize(e.data)+","+r.serialize(e.width)+","+r.serialize(e.height)+","+r.serialize(e.options)+")"},deserialize(e,r){return new ImageData(r.deserialize(e.data),r.deserialize(e.width),r.deserialize(e.height),r.deserialize(e.options))}});var o={},V=seroval.createPlugin({tag:"seroval-plugins/web/ReadableStreamFactory",test(e){return e===o},parse:{sync(){},async async(){return await Promise.resolve(void 0)},stream(){}},serialize(e,r){return r.createFunction(["d"],"new ReadableStream({start:"+r.createEffectfulFunction(["c"],"d.on({next:"+r.createEffectfulFunction(["v"],"c.enqueue(v)")+",throw:"+r.createEffectfulFunction(["v"],"c.error(v)")+",return:"+r.createEffectfulFunction([],"c.close()")+"})")+"})")},deserialize(){return o}});function g(e){let r=seroval.createStream(),s=e.getReader();async function a(){try{let t=await s.read();t.done?r.return(t.value):(r.next(t.value),await a());}catch(t){r.throw(t);}}return a().catch(()=>{}),r}var G=seroval.createPlugin({tag:"seroval/plugins/web/ReadableStream",extends:[V],test(e){return typeof ReadableStream=="undefined"?!1:e instanceof ReadableStream},parse:{sync(e,r){return {factory:r.parse(o),stream:r.parse(seroval.createStream())}},async async(e,r){return {factory:await r.parse(o),stream:await r.parse(g(e))}},stream(e,r){return {factory:r.parse(o),stream:r.parse(g(e))}}},serialize(e,r){return "("+r.serialize(e.factory)+")("+r.serialize(e.stream)+")"},deserialize(e,r){let s=r.deserialize(e.stream);return new ReadableStream({start(a){s.on({next(t){a.enqueue(t);},throw(t){a.error(t);},return(){a.close();}});}})}}),l=G;function z(e,r){return {body:r,cache:e.cache,credentials:e.credentials,headers:e.headers,integrity:e.integrity,keepalive:e.keepalive,method:e.method,mode:e.mode,redirect:e.redirect,referrer:e.referrer,referrerPolicy:e.referrerPolicy}}var K=seroval.createPlugin({tag:"seroval-plugins/web/Request",extends:[l,i],test(e){return typeof Request=="undefined"?!1:e instanceof Request},parse:{async async(e,r){return {url:await r.parse(e.url),options:await r.parse(z(e,e.body?await e.clone().arrayBuffer():null))}},stream(e,r){return {url:r.parse(e.url),options:r.parse(z(e,e.clone().body))}}},serialize(e,r){return "new Request("+r.serialize(e.url)+","+r.serialize(e.options)+")"},deserialize(e,r){return new Request(r.deserialize(e.url),r.deserialize(e.options))}}),Q=K;function S(e){return {headers:e.headers,status:e.status,statusText:e.statusText}}var X=seroval.createPlugin({tag:"seroval-plugins/web/Response",extends:[l,i],test(e){return typeof Response=="undefined"?!1:e instanceof Response},parse:{async async(e,r){return {body:await r.parse(e.body?await e.clone().arrayBuffer():null),options:await r.parse(S(e))}},stream(e,r){return {body:r.parse(e.clone().body),options:r.parse(S(e))}}},serialize(e,r){return "new Response("+r.serialize(e.body)+","+r.serialize(e.options)+")"},deserialize(e,r){return new Response(r.deserialize(e.body),r.deserialize(e.options))}}),Z=X;var x=seroval.createPlugin({tag:"seroval-plugins/web/URLSearchParams",test(e){return typeof URLSearchParams=="undefined"?!1:e instanceof URLSearchParams},parse:{sync(e,r){return r.parse(e.toString())},async async(e,r){return await r.parse(e.toString())},stream(e,r){return r.parse(e.toString())}},serialize(e,r){return "new URLSearchParams("+r.serialize(e)+")"},deserialize(e,r){return new URLSearchParams(r.deserialize(e))}}),ee=x;var ae=seroval.createPlugin({tag:"seroval-plugins/web/URL",test(e){return typeof URL=="undefined"?!1:e instanceof URL},parse:{sync(e,r){return r.parse(e.href)},async async(e,r){return await r.parse(e.href)},stream(e,r){return r.parse(e.href)}},serialize(e,r){return "new URL("+r.serialize(e)+")"},deserialize(e,r){return new URL(r.deserialize(e))}}),te=ae;
|
|
15
|
+
|
|
14
16
|
const ES2017FLAG = seroval.Feature.AggregateError
|
|
15
17
|
| seroval.Feature.BigInt
|
|
16
18
|
| seroval.Feature.BigIntTypedArray;
|
|
@@ -23,6 +25,9 @@ function createSerializer({
|
|
|
23
25
|
}) {
|
|
24
26
|
return new seroval.Serializer({
|
|
25
27
|
scopeId,
|
|
28
|
+
plugins: [
|
|
29
|
+
F, B, O,
|
|
30
|
+
A, i, l, Q, Z, ee, te],
|
|
26
31
|
globalIdentifier: GLOBAL_IDENTIFIER,
|
|
27
32
|
disabledFeatures: ES2017FLAG,
|
|
28
33
|
onData,
|
|
@@ -31,7 +36,7 @@ function createSerializer({
|
|
|
31
36
|
});
|
|
32
37
|
}
|
|
33
38
|
function getLocalHeaderScript(id) {
|
|
34
|
-
return seroval.getCrossReferenceHeader(id);
|
|
39
|
+
return seroval.getCrossReferenceHeader(id) + ';';
|
|
35
40
|
}
|
|
36
41
|
|
|
37
42
|
const VOID_ELEMENTS = /^(?:area|base|br|col|embed|hr|img|input|keygen|link|menuitem|meta|param|source|track|wbr)$/i;
|
|
@@ -61,11 +66,9 @@ function renderToString(code, options = {}) {
|
|
|
61
66
|
serialize(id, p) {
|
|
62
67
|
!solidJs.sharedConfig.context.noHydrate && serializer.write(id, p);
|
|
63
68
|
},
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
this.serialize(id, p);
|
|
68
|
-
return id;
|
|
69
|
+
roots: 0,
|
|
70
|
+
nextRoot() {
|
|
71
|
+
return this.renderId + "i-" + this.roots++;
|
|
69
72
|
}
|
|
70
73
|
};
|
|
71
74
|
let html = solidJs.createRoot(d => {
|
|
@@ -188,11 +191,9 @@ function renderToStream(code, options = {}) {
|
|
|
188
191
|
});
|
|
189
192
|
} else if (!serverOnly) serializer.write(id, p);
|
|
190
193
|
},
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
this.serialize(id, p);
|
|
195
|
-
return id;
|
|
194
|
+
roots: 0,
|
|
195
|
+
nextRoot() {
|
|
196
|
+
return this.renderId + "i-" + this.roots++;
|
|
196
197
|
},
|
|
197
198
|
registerFragment(key) {
|
|
198
199
|
if (!registry.has(key)) {
|
|
@@ -265,7 +266,7 @@ function renderToStream(code, options = {}) {
|
|
|
265
266
|
if (!registry.size) queue(flushEnd);
|
|
266
267
|
},
|
|
267
268
|
pipe(w) {
|
|
268
|
-
|
|
269
|
+
allSettled(blockingPromises).then(() => {
|
|
269
270
|
doShell();
|
|
270
271
|
buffer = writable = w;
|
|
271
272
|
buffer.write(tmp);
|
|
@@ -274,7 +275,7 @@ function renderToStream(code, options = {}) {
|
|
|
274
275
|
});
|
|
275
276
|
},
|
|
276
277
|
pipeTo(w) {
|
|
277
|
-
return
|
|
278
|
+
return allSettled(blockingPromises).then(() => {
|
|
278
279
|
doShell();
|
|
279
280
|
const encoder = new TextEncoder();
|
|
280
281
|
const writer = w.getWriter();
|
|
@@ -338,7 +339,7 @@ function ssrClassList(value) {
|
|
|
338
339
|
}
|
|
339
340
|
function ssrStyle(value) {
|
|
340
341
|
if (!value) return "";
|
|
341
|
-
if (typeof value === "string") return value;
|
|
342
|
+
if (typeof value === "string") return escape(value, true);
|
|
342
343
|
let result = "";
|
|
343
344
|
const k = Object.keys(value);
|
|
344
345
|
for (let i = 0; i < k.length; i++) {
|
|
@@ -497,6 +498,13 @@ function NoHydration(props) {
|
|
|
497
498
|
function queue(fn) {
|
|
498
499
|
return Promise.resolve().then(fn);
|
|
499
500
|
}
|
|
501
|
+
function allSettled(promises) {
|
|
502
|
+
let length = promises.length;
|
|
503
|
+
return Promise.allSettled(promises).then(() => {
|
|
504
|
+
if (promises.length !== length) return allSettled(promises);
|
|
505
|
+
return;
|
|
506
|
+
});
|
|
507
|
+
}
|
|
500
508
|
function injectAssets(assets, html) {
|
|
501
509
|
if (!assets || !assets.length) return html;
|
|
502
510
|
let out = "";
|
|
@@ -527,7 +535,7 @@ function replacePlaceholder(html, key, value) {
|
|
|
527
535
|
}
|
|
528
536
|
const RequestContext = Symbol();
|
|
529
537
|
function getRequestEvent() {
|
|
530
|
-
return globalThis[RequestContext] ? globalThis[RequestContext].getStore() : undefined;
|
|
538
|
+
return globalThis[RequestContext] ? globalThis[RequestContext].getStore() || solidJs.sharedConfig.context && solidJs.sharedConfig.context.event || console.log("RequestEvent is missing. This is most likely due to accessing `getRequestEvent` non-managed async scope in a partially polyfilled environment. Try moving it above all `await` calls.") : undefined;
|
|
531
539
|
}
|
|
532
540
|
function Assets(props) {
|
|
533
541
|
useAssets(() => props.children);
|
package/web/dist/server.js
CHANGED
|
@@ -1,62 +1,32 @@
|
|
|
1
|
-
import { sharedConfig, createRoot, splitProps } from
|
|
2
|
-
export {
|
|
3
|
-
|
|
4
|
-
For,
|
|
5
|
-
Index,
|
|
6
|
-
Match,
|
|
7
|
-
Show,
|
|
8
|
-
Suspense,
|
|
9
|
-
SuspenseList,
|
|
10
|
-
Switch,
|
|
11
|
-
createComponent,
|
|
12
|
-
mergeProps
|
|
13
|
-
} from "solid-js";
|
|
14
|
-
import { Feature, Serializer, getCrossReferenceHeader } from "seroval";
|
|
1
|
+
import { sharedConfig, createRoot, splitProps } from 'solid-js';
|
|
2
|
+
export { ErrorBoundary, For, Index, Match, Show, Suspense, SuspenseList, Switch, createComponent, mergeProps } from 'solid-js';
|
|
3
|
+
import { createPlugin, createStream, Feature, Serializer, getCrossReferenceHeader } from 'seroval';
|
|
15
4
|
|
|
16
|
-
const booleans = [
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
"autoplay",
|
|
21
|
-
"checked",
|
|
22
|
-
"controls",
|
|
23
|
-
"default",
|
|
24
|
-
"disabled",
|
|
25
|
-
"formnovalidate",
|
|
26
|
-
"hidden",
|
|
27
|
-
"indeterminate",
|
|
28
|
-
"inert",
|
|
29
|
-
"ismap",
|
|
30
|
-
"loop",
|
|
31
|
-
"multiple",
|
|
32
|
-
"muted",
|
|
33
|
-
"nomodule",
|
|
34
|
-
"novalidate",
|
|
35
|
-
"open",
|
|
36
|
-
"playsinline",
|
|
37
|
-
"readonly",
|
|
38
|
-
"required",
|
|
39
|
-
"reversed",
|
|
40
|
-
"seamless",
|
|
41
|
-
"selected"
|
|
42
|
-
];
|
|
43
|
-
const BooleanAttributes = /*#__PURE__*/ new Set(booleans);
|
|
44
|
-
const ChildProperties = /*#__PURE__*/ new Set([
|
|
45
|
-
"innerHTML",
|
|
46
|
-
"textContent",
|
|
47
|
-
"innerText",
|
|
48
|
-
"children"
|
|
49
|
-
]);
|
|
50
|
-
const Aliases = /*#__PURE__*/ Object.assign(Object.create(null), {
|
|
5
|
+
const booleans = ["allowfullscreen", "async", "autofocus", "autoplay", "checked", "controls", "default", "disabled", "formnovalidate", "hidden", "indeterminate", "inert", "ismap", "loop", "multiple", "muted", "nomodule", "novalidate", "open", "playsinline", "readonly", "required", "reversed", "seamless", "selected"];
|
|
6
|
+
const BooleanAttributes = /*#__PURE__*/new Set(booleans);
|
|
7
|
+
const ChildProperties = /*#__PURE__*/new Set(["innerHTML", "textContent", "innerText", "children"]);
|
|
8
|
+
const Aliases = /*#__PURE__*/Object.assign(Object.create(null), {
|
|
51
9
|
className: "class",
|
|
52
10
|
htmlFor: "for"
|
|
53
11
|
});
|
|
54
12
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
13
|
+
createPlugin({tag:"seroval-plugins/web/Blob",test(e){return typeof Blob=="undefined"?!1:e instanceof Blob},parse:{async async(e,r){return {type:await r.parse(e.type),buffer:await r.parse(await e.arrayBuffer())}}},serialize(e,r){return "new Blob(["+r.serialize(e.buffer)+"],{type:"+r.serialize(e.type)+"})"},deserialize(e,r){return new Blob([r.deserialize(e.buffer)],{type:r.deserialize(e.type)})}});function p(e){return {detail:e.detail,bubbles:e.bubbles,cancelable:e.cancelable,composed:e.composed}}var E=createPlugin({tag:"seroval-plugins/web/CustomEvent",test(e){return typeof CustomEvent=="undefined"?!1:e instanceof CustomEvent},parse:{sync(e,r){return {type:r.parse(e.type),options:r.parse(p(e))}},async async(e,r){return {type:await r.parse(e.type),options:await r.parse(p(e))}},stream(e,r){return {type:r.parse(e.type),options:r.parse(p(e))}}},serialize(e,r){return "new CustomEvent("+r.serialize(e.type)+","+r.serialize(e.options)+")"},deserialize(e,r){return new CustomEvent(r.deserialize(e.type),r.deserialize(e.options))}}),F=E;var I=createPlugin({tag:"seroval-plugins/web/DOMException",test(e){return typeof DOMException=="undefined"?!1:e instanceof DOMException},parse:{sync(e,r){return {name:r.parse(e.name),message:r.parse(e.message)}},async async(e,r){return {name:await r.parse(e.name),message:await r.parse(e.message)}},stream(e,r){return {name:r.parse(e.name),message:r.parse(e.message)}}},serialize(e,r){return "new DOMException("+r.serialize(e.message)+","+r.serialize(e.name)+")"},deserialize(e,r){return new DOMException(r.deserialize(e.message),r.deserialize(e.name))}}),B=I;function u(e){return {bubbles:e.bubbles,cancelable:e.cancelable,composed:e.composed}}var L=createPlugin({tag:"seroval-plugins/web/Event",test(e){return typeof Event=="undefined"?!1:e instanceof Event},parse:{sync(e,r){return {type:r.parse(e.type),options:r.parse(u(e))}},async async(e,r){return {type:await r.parse(e.type),options:await r.parse(u(e))}},stream(e,r){return {type:r.parse(e.type),options:r.parse(u(e))}}},serialize(e,r){return "new Event("+r.serialize(e.type)+","+r.serialize(e.options)+")"},deserialize(e,r){return new Event(r.deserialize(e.type),r.deserialize(e.options))}}),O=L;var q=createPlugin({tag:"seroval-plugins/web/File",test(e){return typeof File=="undefined"?!1:e instanceof File},parse:{async async(e,r){return {name:await r.parse(e.name),options:await r.parse({type:e.type,lastModified:e.lastModified}),buffer:await r.parse(await e.arrayBuffer())}}},serialize(e,r){return "new File(["+r.serialize(e.buffer)+"],"+r.serialize(e.name)+","+r.serialize(e.options)+")"},deserialize(e,r){return new File([r.deserialize(e.buffer)],r.deserialize(e.name),r.deserialize(e.options))}}),d=q;function f(e){let r=[];return e.forEach((s,a)=>{r.push([a,s]);}),r}var n={},H=createPlugin({tag:"seroval-plugins/web/FormDataFactory",test(e){return e===n},parse:{sync(){},async async(){return await Promise.resolve(void 0)},stream(){}},serialize(e,r){return r.createEffectfulFunction(["e","f","i","s","t"],"f=new FormData;for(i=0,s=e.length;i<s;i++)f.append((t=e[i])[0],t[1]);return f")},deserialize(){return n}}),M=createPlugin({tag:"seroval-plugins/web/FormData",extends:[d,H],test(e){return typeof FormData=="undefined"?!1:e instanceof FormData},parse:{sync(e,r){return {factory:r.parse(n),entries:r.parse(f(e))}},async async(e,r){return {factory:await r.parse(n),entries:await r.parse(f(e))}},stream(e,r){return {factory:r.parse(n),entries:r.parse(f(e))}}},serialize(e,r){return "("+r.serialize(e.factory)+")("+r.serialize(e.entries)+")"},deserialize(e,r){let s=new FormData,a=r.deserialize(e.entries);for(let t=0,b=a.length;t<b;t++){let c=a[t];s.append(c[0],c[1]);}return s}}),A=M;function m(e){let r=[];return e.forEach((s,a)=>{r.push([a,s]);}),r}var _=createPlugin({tag:"seroval-plugins/web/Headers",test(e){return typeof Headers=="undefined"?!1:e instanceof Headers},parse:{sync(e,r){return r.parse(m(e))},async async(e,r){return await r.parse(m(e))},stream(e,r){return r.parse(m(e))}},serialize(e,r){return "new Headers("+r.serialize(e)+")"},deserialize(e,r){return new Headers(r.deserialize(e))}}),i=_;createPlugin({tag:"seroval-plugins/web/ImageData",test(e){return typeof ImageData=="undefined"?!1:e instanceof ImageData},parse:{sync(e,r){return {data:r.parse(e.data),width:r.parse(e.width),height:r.parse(e.height),options:r.parse({colorSpace:e.colorSpace})}},async async(e,r){return {data:await r.parse(e.data),width:await r.parse(e.width),height:await r.parse(e.height),options:await r.parse({colorSpace:e.colorSpace})}},stream(e,r){return {data:r.parse(e.data),width:r.parse(e.width),height:r.parse(e.height),options:r.parse({colorSpace:e.colorSpace})}}},serialize(e,r){return "new ImageData("+r.serialize(e.data)+","+r.serialize(e.width)+","+r.serialize(e.height)+","+r.serialize(e.options)+")"},deserialize(e,r){return new ImageData(r.deserialize(e.data),r.deserialize(e.width),r.deserialize(e.height),r.deserialize(e.options))}});var o={},V=createPlugin({tag:"seroval-plugins/web/ReadableStreamFactory",test(e){return e===o},parse:{sync(){},async async(){return await Promise.resolve(void 0)},stream(){}},serialize(e,r){return r.createFunction(["d"],"new ReadableStream({start:"+r.createEffectfulFunction(["c"],"d.on({next:"+r.createEffectfulFunction(["v"],"c.enqueue(v)")+",throw:"+r.createEffectfulFunction(["v"],"c.error(v)")+",return:"+r.createEffectfulFunction([],"c.close()")+"})")+"})")},deserialize(){return o}});function g(e){let r=createStream(),s=e.getReader();async function a(){try{let t=await s.read();t.done?r.return(t.value):(r.next(t.value),await a());}catch(t){r.throw(t);}}return a().catch(()=>{}),r}var G=createPlugin({tag:"seroval/plugins/web/ReadableStream",extends:[V],test(e){return typeof ReadableStream=="undefined"?!1:e instanceof ReadableStream},parse:{sync(e,r){return {factory:r.parse(o),stream:r.parse(createStream())}},async async(e,r){return {factory:await r.parse(o),stream:await r.parse(g(e))}},stream(e,r){return {factory:r.parse(o),stream:r.parse(g(e))}}},serialize(e,r){return "("+r.serialize(e.factory)+")("+r.serialize(e.stream)+")"},deserialize(e,r){let s=r.deserialize(e.stream);return new ReadableStream({start(a){s.on({next(t){a.enqueue(t);},throw(t){a.error(t);},return(){a.close();}});}})}}),l=G;function z(e,r){return {body:r,cache:e.cache,credentials:e.credentials,headers:e.headers,integrity:e.integrity,keepalive:e.keepalive,method:e.method,mode:e.mode,redirect:e.redirect,referrer:e.referrer,referrerPolicy:e.referrerPolicy}}var K=createPlugin({tag:"seroval-plugins/web/Request",extends:[l,i],test(e){return typeof Request=="undefined"?!1:e instanceof Request},parse:{async async(e,r){return {url:await r.parse(e.url),options:await r.parse(z(e,e.body?await e.clone().arrayBuffer():null))}},stream(e,r){return {url:r.parse(e.url),options:r.parse(z(e,e.clone().body))}}},serialize(e,r){return "new Request("+r.serialize(e.url)+","+r.serialize(e.options)+")"},deserialize(e,r){return new Request(r.deserialize(e.url),r.deserialize(e.options))}}),Q=K;function S(e){return {headers:e.headers,status:e.status,statusText:e.statusText}}var X=createPlugin({tag:"seroval-plugins/web/Response",extends:[l,i],test(e){return typeof Response=="undefined"?!1:e instanceof Response},parse:{async async(e,r){return {body:await r.parse(e.body?await e.clone().arrayBuffer():null),options:await r.parse(S(e))}},stream(e,r){return {body:r.parse(e.clone().body),options:r.parse(S(e))}}},serialize(e,r){return "new Response("+r.serialize(e.body)+","+r.serialize(e.options)+")"},deserialize(e,r){return new Response(r.deserialize(e.body),r.deserialize(e.options))}}),Z=X;var x=createPlugin({tag:"seroval-plugins/web/URLSearchParams",test(e){return typeof URLSearchParams=="undefined"?!1:e instanceof URLSearchParams},parse:{sync(e,r){return r.parse(e.toString())},async async(e,r){return await r.parse(e.toString())},stream(e,r){return r.parse(e.toString())}},serialize(e,r){return "new URLSearchParams("+r.serialize(e)+")"},deserialize(e,r){return new URLSearchParams(r.deserialize(e))}}),ee=x;var ae=createPlugin({tag:"seroval-plugins/web/URL",test(e){return typeof URL=="undefined"?!1:e instanceof URL},parse:{sync(e,r){return r.parse(e.href)},async async(e,r){return await r.parse(e.href)},stream(e,r){return r.parse(e.href)}},serialize(e,r){return "new URL("+r.serialize(e)+")"},deserialize(e,r){return new URL(r.deserialize(e))}}),te=ae;
|
|
14
|
+
|
|
15
|
+
const ES2017FLAG = Feature.AggregateError
|
|
16
|
+
| Feature.BigInt
|
|
17
|
+
| Feature.BigIntTypedArray;
|
|
18
|
+
const GLOBAL_IDENTIFIER = '_$HY.r';
|
|
19
|
+
function createSerializer({
|
|
20
|
+
onData,
|
|
21
|
+
onDone,
|
|
22
|
+
scopeId,
|
|
23
|
+
onError
|
|
24
|
+
}) {
|
|
58
25
|
return new Serializer({
|
|
59
26
|
scopeId,
|
|
27
|
+
plugins: [
|
|
28
|
+
F, B, O,
|
|
29
|
+
A, i, l, Q, Z, ee, te],
|
|
60
30
|
globalIdentifier: GLOBAL_IDENTIFIER,
|
|
61
31
|
disabledFeatures: ES2017FLAG,
|
|
62
32
|
onData,
|
|
@@ -65,14 +35,15 @@ function createSerializer({ onData, onDone, scopeId, onError }) {
|
|
|
65
35
|
});
|
|
66
36
|
}
|
|
67
37
|
function getLocalHeaderScript(id) {
|
|
68
|
-
return getCrossReferenceHeader(id);
|
|
38
|
+
return getCrossReferenceHeader(id) + ';';
|
|
69
39
|
}
|
|
70
40
|
|
|
71
|
-
const VOID_ELEMENTS =
|
|
72
|
-
/^(?:area|base|br|col|embed|hr|img|input|keygen|link|menuitem|meta|param|source|track|wbr)$/i;
|
|
41
|
+
const VOID_ELEMENTS = /^(?:area|base|br|col|embed|hr|img|input|keygen|link|menuitem|meta|param|source|track|wbr)$/i;
|
|
73
42
|
const REPLACE_SCRIPT = `function $df(e,n,o,t){if(n=document.getElementById(e),o=document.getElementById("pl-"+e)){for(;o&&8!==o.nodeType&&o.nodeValue!=="pl-"+e;)t=o.nextSibling,o.remove(),o=t;_$HY.done?o.remove():o.replaceWith(n.content)}n.remove(),_$HY.fe(e)}`;
|
|
74
43
|
function renderToString(code, options = {}) {
|
|
75
|
-
const {
|
|
44
|
+
const {
|
|
45
|
+
renderId
|
|
46
|
+
} = options;
|
|
76
47
|
let scripts = "";
|
|
77
48
|
const serializer = createSerializer({
|
|
78
49
|
scopeId: renderId,
|
|
@@ -94,11 +65,9 @@ function renderToString(code, options = {}) {
|
|
|
94
65
|
serialize(id, p) {
|
|
95
66
|
!sharedConfig.context.noHydrate && serializer.write(id, p);
|
|
96
67
|
},
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
this.serialize(id, p);
|
|
101
|
-
return id;
|
|
68
|
+
roots: 0,
|
|
69
|
+
nextRoot() {
|
|
70
|
+
return this.renderId + "i-" + this.roots++;
|
|
102
71
|
}
|
|
103
72
|
};
|
|
104
73
|
let html = createRoot(d => {
|
|
@@ -112,7 +81,9 @@ function renderToString(code, options = {}) {
|
|
|
112
81
|
return html;
|
|
113
82
|
}
|
|
114
83
|
function renderToStringAsync(code, options = {}) {
|
|
115
|
-
const {
|
|
84
|
+
const {
|
|
85
|
+
timeoutMs = 30000
|
|
86
|
+
} = options;
|
|
116
87
|
let timeoutHandle;
|
|
117
88
|
const timeout = new Promise((_, reject) => {
|
|
118
89
|
timeoutHandle = setTimeout(() => reject("renderToString timed out"), timeoutMs);
|
|
@@ -123,7 +94,13 @@ function renderToStringAsync(code, options = {}) {
|
|
|
123
94
|
});
|
|
124
95
|
}
|
|
125
96
|
function renderToStream(code, options = {}) {
|
|
126
|
-
let {
|
|
97
|
+
let {
|
|
98
|
+
nonce,
|
|
99
|
+
onCompleteShell,
|
|
100
|
+
onCompleteAll,
|
|
101
|
+
renderId,
|
|
102
|
+
noScripts
|
|
103
|
+
} = options;
|
|
127
104
|
let dispose;
|
|
128
105
|
const blockingPromises = [];
|
|
129
106
|
const pushTask = task => {
|
|
@@ -139,12 +116,11 @@ function renderToStream(code, options = {}) {
|
|
|
139
116
|
const checkEnd = () => {
|
|
140
117
|
if (!registry.size && !completed) {
|
|
141
118
|
writeTasks();
|
|
142
|
-
onCompleteAll &&
|
|
143
|
-
|
|
144
|
-
write(v)
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
});
|
|
119
|
+
onCompleteAll && onCompleteAll({
|
|
120
|
+
write(v) {
|
|
121
|
+
!completed && buffer.write(v);
|
|
122
|
+
}
|
|
123
|
+
});
|
|
148
124
|
writable && writable.end();
|
|
149
125
|
completed = true;
|
|
150
126
|
setTimeout(dispose);
|
|
@@ -201,35 +177,27 @@ function renderToStream(code, options = {}) {
|
|
|
201
177
|
const first = html.indexOf(placeholder);
|
|
202
178
|
if (first === -1) return;
|
|
203
179
|
const last = html.indexOf(`<!--!$/${id}-->`, first + placeholder.length);
|
|
204
|
-
html = html.replace(
|
|
205
|
-
html.slice(first, last + placeholder.length + 1),
|
|
206
|
-
resolveSSRNode(payloadFn())
|
|
207
|
-
);
|
|
180
|
+
html = html.replace(html.slice(first, last + placeholder.length + 1), resolveSSRNode(payloadFn()));
|
|
208
181
|
},
|
|
209
182
|
serialize(id, p, wait) {
|
|
210
183
|
const serverOnly = sharedConfig.context.noHydrate;
|
|
211
184
|
if (!firstFlushed && wait && typeof p === "object" && "then" in p) {
|
|
212
185
|
blockingPromises.push(p);
|
|
213
|
-
!serverOnly &&
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
.catch(e => {
|
|
219
|
-
serializer.write(id, e);
|
|
220
|
-
});
|
|
186
|
+
!serverOnly && p.then(d => {
|
|
187
|
+
serializer.write(id, d);
|
|
188
|
+
}).catch(e => {
|
|
189
|
+
serializer.write(id, e);
|
|
190
|
+
});
|
|
221
191
|
} else if (!serverOnly) serializer.write(id, p);
|
|
222
192
|
},
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
this.serialize(id, p);
|
|
227
|
-
return id;
|
|
193
|
+
roots: 0,
|
|
194
|
+
nextRoot() {
|
|
195
|
+
return this.renderId + "i-" + this.roots++;
|
|
228
196
|
},
|
|
229
197
|
registerFragment(key) {
|
|
230
198
|
if (!registry.has(key)) {
|
|
231
199
|
let resolve, reject;
|
|
232
|
-
const p = new Promise((r, rej) => (
|
|
200
|
+
const p = new Promise((r, rej) => (resolve = r, reject = rej));
|
|
233
201
|
registry.set(key, {
|
|
234
202
|
resolve: v => queue(() => queue(() => resolve(v))),
|
|
235
203
|
reject: e => queue(() => queue(() => reject(e)))
|
|
@@ -238,7 +206,10 @@ function renderToStream(code, options = {}) {
|
|
|
238
206
|
}
|
|
239
207
|
return (value, error) => {
|
|
240
208
|
if (registry.has(key)) {
|
|
241
|
-
const {
|
|
209
|
+
const {
|
|
210
|
+
resolve,
|
|
211
|
+
reject
|
|
212
|
+
} = registry.get(key);
|
|
242
213
|
registry.delete(key);
|
|
243
214
|
if (waitForFragments(registry, key)) {
|
|
244
215
|
resolve(true);
|
|
@@ -246,7 +217,7 @@ function renderToStream(code, options = {}) {
|
|
|
246
217
|
}
|
|
247
218
|
if ((value !== undefined || error) && !completed) {
|
|
248
219
|
if (!firstFlushed) {
|
|
249
|
-
queue(() =>
|
|
220
|
+
queue(() => html = replacePlaceholder(html, key, value !== undefined ? value : ""));
|
|
250
221
|
error ? reject(error) : resolve(true);
|
|
251
222
|
} else {
|
|
252
223
|
buffer.write(`<template id="${key}">${value !== undefined ? value : " "}</template>`);
|
|
@@ -272,12 +243,11 @@ function renderToStream(code, options = {}) {
|
|
|
272
243
|
if (tasks.length) html = injectScripts(html, tasks, nonce);
|
|
273
244
|
buffer.write(html);
|
|
274
245
|
tasks = "";
|
|
275
|
-
onCompleteShell &&
|
|
276
|
-
|
|
277
|
-
write(v)
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
});
|
|
246
|
+
onCompleteShell && onCompleteShell({
|
|
247
|
+
write(v) {
|
|
248
|
+
!completed && buffer.write(v);
|
|
249
|
+
}
|
|
250
|
+
});
|
|
281
251
|
}
|
|
282
252
|
return {
|
|
283
253
|
then(fn) {
|
|
@@ -295,22 +265,21 @@ function renderToStream(code, options = {}) {
|
|
|
295
265
|
if (!registry.size) queue(flushEnd);
|
|
296
266
|
},
|
|
297
267
|
pipe(w) {
|
|
298
|
-
|
|
268
|
+
allSettled(blockingPromises).then(() => {
|
|
299
269
|
doShell();
|
|
300
270
|
buffer = writable = w;
|
|
301
271
|
buffer.write(tmp);
|
|
302
272
|
firstFlushed = true;
|
|
303
|
-
if (completed) writable.end();
|
|
304
|
-
else setTimeout(flushEnd);
|
|
273
|
+
if (completed) writable.end();else setTimeout(flushEnd);
|
|
305
274
|
});
|
|
306
275
|
},
|
|
307
276
|
pipeTo(w) {
|
|
308
|
-
return
|
|
277
|
+
return allSettled(blockingPromises).then(() => {
|
|
309
278
|
doShell();
|
|
310
279
|
const encoder = new TextEncoder();
|
|
311
280
|
const writer = w.getWriter();
|
|
312
281
|
let resolve;
|
|
313
|
-
const p = new Promise(r =>
|
|
282
|
+
const p = new Promise(r => resolve = r);
|
|
314
283
|
writable = {
|
|
315
284
|
end() {
|
|
316
285
|
writer.releaseLock();
|
|
@@ -325,21 +294,20 @@ function renderToStream(code, options = {}) {
|
|
|
325
294
|
};
|
|
326
295
|
buffer.write(tmp);
|
|
327
296
|
firstFlushed = true;
|
|
328
|
-
if (completed) writable.end();
|
|
329
|
-
else setTimeout(flushEnd);
|
|
297
|
+
if (completed) writable.end();else setTimeout(flushEnd);
|
|
330
298
|
return p;
|
|
331
299
|
});
|
|
332
300
|
}
|
|
333
301
|
};
|
|
334
302
|
}
|
|
335
303
|
function HydrationScript(props) {
|
|
336
|
-
const {
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
);
|
|
304
|
+
const {
|
|
305
|
+
nonce
|
|
306
|
+
} = sharedConfig.context;
|
|
307
|
+
return ssr(generateHydrationScript({
|
|
308
|
+
nonce,
|
|
309
|
+
...props
|
|
310
|
+
}));
|
|
343
311
|
}
|
|
344
312
|
function ssr(t, ...nodes) {
|
|
345
313
|
if (nodes.length) {
|
|
@@ -370,7 +338,7 @@ function ssrClassList(value) {
|
|
|
370
338
|
}
|
|
371
339
|
function ssrStyle(value) {
|
|
372
340
|
if (!value) return "";
|
|
373
|
-
if (typeof value === "string") return value;
|
|
341
|
+
if (typeof value === "string") return escape(value, true);
|
|
374
342
|
let result = "";
|
|
375
343
|
const k = Object.keys(value);
|
|
376
344
|
for (let i = 0; i < k.length; i++) {
|
|
@@ -384,8 +352,7 @@ function ssrStyle(value) {
|
|
|
384
352
|
return result;
|
|
385
353
|
}
|
|
386
354
|
function ssrElement(tag, props, children, needsId) {
|
|
387
|
-
if (props == null) props = {};
|
|
388
|
-
else if (typeof props === "function") props = props();
|
|
355
|
+
if (props == null) props = {};else if (typeof props === "function") props = props();
|
|
389
356
|
const skipChildren = VOID_ELEMENTS.test(tag);
|
|
390
357
|
const keys = Object.keys(props);
|
|
391
358
|
let result = `<${tag}${needsId ? ssrHydrationKey() : ""} `;
|
|
@@ -393,8 +360,7 @@ function ssrElement(tag, props, children, needsId) {
|
|
|
393
360
|
for (let i = 0; i < keys.length; i++) {
|
|
394
361
|
const prop = keys[i];
|
|
395
362
|
if (ChildProperties.has(prop)) {
|
|
396
|
-
if (children === undefined && !skipChildren)
|
|
397
|
-
children = prop === "innerHTML" ? props[prop] : escape(props[prop]);
|
|
363
|
+
if (children === undefined && !skipChildren) children = prop === "innerHTML" ? props[prop] : escape(props[prop]);
|
|
398
364
|
continue;
|
|
399
365
|
}
|
|
400
366
|
const value = props[prop];
|
|
@@ -403,14 +369,10 @@ function ssrElement(tag, props, children, needsId) {
|
|
|
403
369
|
} else if (prop === "class" || prop === "className" || prop === "classList") {
|
|
404
370
|
if (classResolved) continue;
|
|
405
371
|
let n;
|
|
406
|
-
result += `class="${
|
|
407
|
-
escape(((n = props.class) ? n + " " : "") + ((n = props.className) ? n + " " : ""), true) +
|
|
408
|
-
ssrClassList(props.classList)
|
|
409
|
-
}"`;
|
|
372
|
+
result += `class="${escape(((n = props.class) ? n + " " : "") + ((n = props.className) ? n + " " : ""), true) + ssrClassList(props.classList)}"`;
|
|
410
373
|
classResolved = true;
|
|
411
374
|
} else if (BooleanAttributes.has(prop)) {
|
|
412
|
-
if (value) result += prop;
|
|
413
|
-
else continue;
|
|
375
|
+
if (value) result += prop;else continue;
|
|
414
376
|
} else if (value == undefined || prop === "ref" || prop.slice(0, 2) === "on") {
|
|
415
377
|
continue;
|
|
416
378
|
} else {
|
|
@@ -418,17 +380,16 @@ function ssrElement(tag, props, children, needsId) {
|
|
|
418
380
|
}
|
|
419
381
|
if (i !== keys.length - 1) result += " ";
|
|
420
382
|
}
|
|
421
|
-
if (skipChildren)
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
};
|
|
383
|
+
if (skipChildren) return {
|
|
384
|
+
t: result + "/>"
|
|
385
|
+
};
|
|
425
386
|
if (typeof children === "function") children = children();
|
|
426
387
|
return {
|
|
427
388
|
t: result + `>${resolveSSRNode(children, true)}</${tag}>`
|
|
428
389
|
};
|
|
429
390
|
}
|
|
430
391
|
function ssrAttribute(key, value, isBoolean) {
|
|
431
|
-
return isBoolean ?
|
|
392
|
+
return isBoolean ? value ? " " + key : "" : value != null ? ` ${key}="${value}"` : "";
|
|
432
393
|
}
|
|
433
394
|
function ssrHydrationKey() {
|
|
434
395
|
const hk = getHydrationKey();
|
|
@@ -472,13 +433,12 @@ function escape(s, attr) {
|
|
|
472
433
|
left = iDelim + 1;
|
|
473
434
|
iDelim = s.indexOf(delim, left);
|
|
474
435
|
} while (iDelim >= 0);
|
|
475
|
-
} else
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
}
|
|
436
|
+
} else while (iAmp >= 0) {
|
|
437
|
+
if (left < iAmp) out += s.substring(left, iAmp);
|
|
438
|
+
out += "&";
|
|
439
|
+
left = iAmp + 1;
|
|
440
|
+
iAmp = s.indexOf("&", left);
|
|
441
|
+
}
|
|
482
442
|
return left < s.length ? out + s.substring(left) : out;
|
|
483
443
|
}
|
|
484
444
|
function resolveSSRNode(node, top) {
|
|
@@ -490,7 +450,7 @@ function resolveSSRNode(node, top) {
|
|
|
490
450
|
let mapped = "";
|
|
491
451
|
for (let i = 0, len = node.length; i < len; i++) {
|
|
492
452
|
if (!top && typeof prev !== "object" && typeof node[i] !== "object") mapped += `<!--!$-->`;
|
|
493
|
-
mapped += resolveSSRNode(
|
|
453
|
+
mapped += resolveSSRNode(prev = node[i]);
|
|
494
454
|
}
|
|
495
455
|
return mapped;
|
|
496
456
|
}
|
|
@@ -511,12 +471,11 @@ function getAssets() {
|
|
|
511
471
|
for (let i = 0, len = assets.length; i < len; i++) out += assets[i]();
|
|
512
472
|
return out;
|
|
513
473
|
}
|
|
514
|
-
function generateHydrationScript({
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
)}"].forEach((o=>document.addEventListener(o,(o=>{let a=o.composedPath&&o.composedPath()[0]||o.target,s=t(a);s&&!e.completed.has(s)&&e.events.push([s,o])}))))})(_$HY={events:[],completed:new WeakSet,r:{},fe(){}});</script><!--xs-->`;
|
|
474
|
+
function generateHydrationScript({
|
|
475
|
+
eventNames = ["click", "input"],
|
|
476
|
+
nonce
|
|
477
|
+
} = {}) {
|
|
478
|
+
return `<script${nonce ? ` nonce="${nonce}"` : ""}>window._$HY||(e=>{let t=e=>e&&e.hasAttribute&&(e.hasAttribute("data-hk")?e:t(e.host&&e.host.nodeType?e.host:e.parentNode));["${eventNames.join('", "')}"].forEach((o=>document.addEventListener(o,(o=>{let a=o.composedPath&&o.composedPath()[0]||o.target,s=t(a);s&&!e.completed.has(s)&&e.events.push([s,o])}))))})(_$HY={events:[],completed:new WeakSet,r:{},fe(){}});</script><!--xs-->`;
|
|
520
479
|
}
|
|
521
480
|
function Hydration(props) {
|
|
522
481
|
if (!sharedConfig.context.noHydrate) return props.children;
|
|
@@ -538,6 +497,13 @@ function NoHydration(props) {
|
|
|
538
497
|
function queue(fn) {
|
|
539
498
|
return Promise.resolve().then(fn);
|
|
540
499
|
}
|
|
500
|
+
function allSettled(promises) {
|
|
501
|
+
let length = promises.length;
|
|
502
|
+
return Promise.allSettled(promises).then(() => {
|
|
503
|
+
if (promises.length !== length) return allSettled(promises);
|
|
504
|
+
return;
|
|
505
|
+
});
|
|
506
|
+
}
|
|
541
507
|
function injectAssets(assets, html) {
|
|
542
508
|
if (!assets || !assets.length) return html;
|
|
543
509
|
let out = "";
|
|
@@ -568,14 +534,16 @@ function replacePlaceholder(html, key, value) {
|
|
|
568
534
|
}
|
|
569
535
|
const RequestContext = Symbol();
|
|
570
536
|
function getRequestEvent() {
|
|
571
|
-
return globalThis[RequestContext] ? globalThis[RequestContext].getStore() : undefined;
|
|
537
|
+
return globalThis[RequestContext] ? globalThis[RequestContext].getStore() || sharedConfig.context && sharedConfig.context.event || console.log("RequestEvent is missing. This is most likely due to accessing `getRequestEvent` non-managed async scope in a partially polyfilled environment. Try moving it above all `await` calls.") : undefined;
|
|
572
538
|
}
|
|
573
539
|
function Assets(props) {
|
|
574
540
|
useAssets(() => props.children);
|
|
575
541
|
}
|
|
576
542
|
function pipeToNodeWritable(code, writable, options = {}) {
|
|
577
543
|
if (options.onReady) {
|
|
578
|
-
options.onCompleteShell = ({
|
|
544
|
+
options.onCompleteShell = ({
|
|
545
|
+
write
|
|
546
|
+
}) => {
|
|
579
547
|
options.onReady({
|
|
580
548
|
write,
|
|
581
549
|
startWriting() {
|
|
@@ -589,7 +557,9 @@ function pipeToNodeWritable(code, writable, options = {}) {
|
|
|
589
557
|
}
|
|
590
558
|
function pipeToWritable(code, writable, options = {}) {
|
|
591
559
|
if (options.onReady) {
|
|
592
|
-
options.onCompleteShell = ({
|
|
560
|
+
options.onCompleteShell = ({
|
|
561
|
+
write
|
|
562
|
+
}) => {
|
|
593
563
|
options.onReady({
|
|
594
564
|
write,
|
|
595
565
|
startWriting() {
|
|
@@ -619,19 +589,11 @@ function ssrSpread(props, isSVG, skipChildren) {
|
|
|
619
589
|
} else if (prop === "class" || prop === "className" || prop === "classList") {
|
|
620
590
|
if (classResolved) continue;
|
|
621
591
|
let n;
|
|
622
|
-
result += `class="${(n = props.class) ? n + " " : ""}${
|
|
623
|
-
(n = props.className) ? n + " " : ""
|
|
624
|
-
}${ssrClassList(props.classList)}"`;
|
|
592
|
+
result += `class="${(n = props.class) ? n + " " : ""}${(n = props.className) ? n + " " : ""}${ssrClassList(props.classList)}"`;
|
|
625
593
|
classResolved = true;
|
|
626
594
|
} else if (BooleanAttributes.has(prop)) {
|
|
627
|
-
if (value) result += prop;
|
|
628
|
-
|
|
629
|
-
} else if (
|
|
630
|
-
value == undefined ||
|
|
631
|
-
prop === "ref" ||
|
|
632
|
-
prop.slice(0, 2) === "on" ||
|
|
633
|
-
prop.slice(0, 5) === "prop:"
|
|
634
|
-
) {
|
|
595
|
+
if (value) result += prop;else continue;
|
|
596
|
+
} else if (value == undefined || prop === "ref" || prop.slice(0, 2) === "on" || prop.slice(0, 5) === "prop:") {
|
|
635
597
|
continue;
|
|
636
598
|
} else {
|
|
637
599
|
if (prop.slice(0, 5) === "attr:") prop = prop.slice(5);
|
|
@@ -655,8 +617,7 @@ function Dynamic(props) {
|
|
|
655
617
|
const comp = p.component,
|
|
656
618
|
t = typeof comp;
|
|
657
619
|
if (comp) {
|
|
658
|
-
if (t === "function") return comp(others);
|
|
659
|
-
else if (t === "string") {
|
|
620
|
+
if (t === "function") return comp(others);else if (t === "string") {
|
|
660
621
|
return ssrElement(comp, others, undefined, true);
|
|
661
622
|
}
|
|
662
623
|
}
|
|
@@ -665,39 +626,4 @@ function Portal(props) {
|
|
|
665
626
|
return "";
|
|
666
627
|
}
|
|
667
628
|
|
|
668
|
-
export {
|
|
669
|
-
Assets,
|
|
670
|
-
Dynamic,
|
|
671
|
-
Hydration,
|
|
672
|
-
HydrationScript,
|
|
673
|
-
NoHydration,
|
|
674
|
-
Portal,
|
|
675
|
-
RequestContext,
|
|
676
|
-
addEventListener,
|
|
677
|
-
delegateEvents,
|
|
678
|
-
escape,
|
|
679
|
-
generateHydrationScript,
|
|
680
|
-
getAssets,
|
|
681
|
-
getHydrationKey,
|
|
682
|
-
getRequestEvent,
|
|
683
|
-
hydrate,
|
|
684
|
-
insert,
|
|
685
|
-
isDev,
|
|
686
|
-
isServer,
|
|
687
|
-
pipeToNodeWritable,
|
|
688
|
-
pipeToWritable,
|
|
689
|
-
render,
|
|
690
|
-
renderToStream,
|
|
691
|
-
renderToString,
|
|
692
|
-
renderToStringAsync,
|
|
693
|
-
resolveSSRNode,
|
|
694
|
-
spread,
|
|
695
|
-
ssr,
|
|
696
|
-
ssrAttribute,
|
|
697
|
-
ssrClassList,
|
|
698
|
-
ssrElement,
|
|
699
|
-
ssrHydrationKey,
|
|
700
|
-
ssrSpread,
|
|
701
|
-
ssrStyle,
|
|
702
|
-
useAssets
|
|
703
|
-
};
|
|
629
|
+
export { Assets, Dynamic, Hydration, HydrationScript, NoHydration, Portal, RequestContext, addEventListener, delegateEvents, escape, generateHydrationScript, getAssets, getHydrationKey, getRequestEvent, hydrate, insert, isDev, isServer, pipeToNodeWritable, pipeToWritable, render, renderToStream, renderToString, renderToStringAsync, resolveSSRNode, spread, ssr, ssrAttribute, ssrClassList, ssrElement, ssrHydrationKey, ssrSpread, ssrStyle, useAssets };
|