@solidjs/web 2.0.0-beta.31 → 2.0.0-beta.32
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/README.md +1 -6
- package/dist/dev.cjs +234 -45
- package/dist/dev.js +221 -42
- package/dist/server.cjs +456 -123
- package/dist/server.js +445 -120
- package/dist/web.cjs +234 -45
- package/dist/web.js +221 -42
- package/frames/dist/client.cjs +217 -112
- package/frames/dist/client.dev.cjs +217 -112
- package/frames/dist/client.dev.js +218 -113
- package/frames/dist/client.js +218 -113
- package/frames/dist/server.cjs +488 -177
- package/frames/dist/server.js +489 -179
- package/package.json +55 -4
- package/serialization/dist/serialization.cjs +8 -0
- package/serialization/dist/serialization.js +1 -0
- package/serialization/types/index.d.ts +173 -6
- package/serialization/types-cjs/index.d.cts +173 -6
- package/server-functions/dist/client.cjs +46 -9
- package/server-functions/dist/client.js +47 -11
- package/server-functions/dist/rich-args.cjs +11 -0
- package/server-functions/dist/rich-args.js +9 -0
- package/server-functions/dist/server.cjs +275 -126
- package/server-functions/dist/server.dev.cjs +1053 -0
- package/server-functions/dist/server.dev.js +1021 -0
- package/server-functions/dist/server.js +273 -127
- package/server-functions/package.json +10 -0
- package/server-functions/rich-args/package.json +20 -0
- package/storage/types/index.d.ts +1 -1
- package/storage/types-cjs/index.d.cts +1 -1
- package/types/client.d.ts +127 -6
- package/types/core.d.ts +3 -1
- package/types/frames/client.d.ts +15 -1
- package/types/frames/frame-client.d.ts +37 -7
- package/types/frames/frame-sink.d.ts +26 -3
- package/types/frames/frame-transport.d.ts +39 -7
- package/types/frames/serializer.d.ts +173 -6
- package/types/frames/server.d.ts +22 -0
- package/types/index.d.ts +2 -3
- package/types/response.d.ts +45 -0
- package/types/serializer.d.ts +173 -6
- package/types/server-functions/client.d.ts +1 -0
- package/types/server-functions/rich-args.d.ts +10 -0
- package/types/server-functions/server.d.ts +98 -0
- package/types/server-functions/shared.d.ts +22 -0
- package/types/server-mock.d.ts +171 -59
- package/types/server.d.ts +188 -36
- package/types-cjs/client.d.cts +127 -6
- package/types-cjs/core.d.cts +3 -1
- package/types-cjs/frames/client.d.cts +15 -1
- package/types-cjs/frames/frame-client.d.cts +37 -7
- package/types-cjs/frames/frame-sink.d.cts +26 -3
- package/types-cjs/frames/frame-transport.d.cts +39 -7
- package/types-cjs/frames/serializer.d.cts +173 -6
- package/types-cjs/frames/server.d.cts +22 -0
- package/types-cjs/index.d.cts +2 -3
- package/types-cjs/response.d.cts +45 -0
- package/types-cjs/serializer.d.cts +173 -6
- package/types-cjs/server-functions/client.d.cts +1 -0
- package/types-cjs/server-functions/rich-args.d.cts +10 -0
- package/types-cjs/server-functions/server.d.cts +98 -0
- package/types-cjs/server-functions/shared.d.cts +22 -0
- package/types-cjs/server-mock.d.cts +171 -59
- package/types-cjs/server.d.cts +188 -36
package/dist/web.cjs
CHANGED
|
@@ -63,6 +63,17 @@ const effect = (fn, effectFn, options) => solidJs.createRenderEffect(fn, effectF
|
|
|
63
63
|
transparent: !options.scope
|
|
64
64
|
} : transparentOptions);
|
|
65
65
|
const memo = fn => solidJs.createMemo(() => fn(), syncOptions);
|
|
66
|
+
const assetGates = new WeakMap();
|
|
67
|
+
const waitAsset = promise => {
|
|
68
|
+
let gate = assetGates.get(promise);
|
|
69
|
+
if (!gate) {
|
|
70
|
+
solidJs.runWithOwner(null, () => {
|
|
71
|
+
gate = solidJs.createMemo(() => promise);
|
|
72
|
+
});
|
|
73
|
+
assetGates.set(promise, gate);
|
|
74
|
+
}
|
|
75
|
+
gate();
|
|
76
|
+
};
|
|
66
77
|
|
|
67
78
|
function reconcileArrays(parentNode, a, b, marker) {
|
|
68
79
|
let bLength = b.length,
|
|
@@ -174,6 +185,7 @@ const HEAD_ELIGIBLE_TAGS = new Set(["title", "meta", "link", "style", "script",
|
|
|
174
185
|
const HEAD_ATTR_NAME = /^[a-zA-Z_][a-zA-Z0-9_:.-]*$/;
|
|
175
186
|
const RESOURCE_LINK_RELS = new Set(["preload", "modulepreload", "prefetch", "preconnect", "dns-prefetch", "stylesheet"]);
|
|
176
187
|
const RESOURCE_QUALIFIERS = ["as", "crossorigin", "type", "media", "imagesrcset", "imagesizes"];
|
|
188
|
+
const STYLESHEET_FETCH_META = new Set(["crossorigin", "integrity", "referrerpolicy", "fetchpriority"]);
|
|
177
189
|
function evalHeadValue(v) {
|
|
178
190
|
return typeof v === "function" ? v() : v;
|
|
179
191
|
}
|
|
@@ -254,6 +266,43 @@ function resolveHead(groups) {
|
|
|
254
266
|
return winners;
|
|
255
267
|
}
|
|
256
268
|
|
|
269
|
+
function parseCookieHeader(header) {
|
|
270
|
+
const cookies = {};
|
|
271
|
+
if (!header) return cookies;
|
|
272
|
+
for (const part of header.split(";")) {
|
|
273
|
+
const eq = part.indexOf("=");
|
|
274
|
+
if (eq < 0) continue;
|
|
275
|
+
const name = decodeSafe(part.slice(0, eq).trim());
|
|
276
|
+
let value = part.slice(eq + 1).trim();
|
|
277
|
+
if (value.length > 1 && value[0] === '"' && value[value.length - 1] === '"') {
|
|
278
|
+
value = value.slice(1, -1);
|
|
279
|
+
}
|
|
280
|
+
cookies[name] = decodeSafe(value);
|
|
281
|
+
}
|
|
282
|
+
return cookies;
|
|
283
|
+
}
|
|
284
|
+
function decodeSafe(text) {
|
|
285
|
+
try {
|
|
286
|
+
return decodeURIComponent(text);
|
|
287
|
+
} catch {
|
|
288
|
+
return text;
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
function serializeCookie(name, value, options = {}) {
|
|
292
|
+
let cookie = `${encodeURIComponent(name)}=${encodeURIComponent(value)}`;
|
|
293
|
+
cookie += `; Path=${options.path === undefined ? "/" : options.path}`;
|
|
294
|
+
if (options.domain) cookie += `; Domain=${options.domain}`;
|
|
295
|
+
if (options.maxAge !== undefined) cookie += `; Max-Age=${Math.trunc(options.maxAge)}`;
|
|
296
|
+
if (options.expires) cookie += `; Expires=${options.expires.toUTCString()}`;
|
|
297
|
+
if (options.httpOnly) cookie += "; HttpOnly";
|
|
298
|
+
if (options.secure) cookie += "; Secure";
|
|
299
|
+
if (options.sameSite) {
|
|
300
|
+
const sameSite = options.sameSite.toLowerCase();
|
|
301
|
+
cookie += `; SameSite=${sameSite === "none" ? "None" : sameSite === "strict" ? "Strict" : "Lax"}`;
|
|
302
|
+
}
|
|
303
|
+
return cookie;
|
|
304
|
+
}
|
|
305
|
+
|
|
257
306
|
const $$EVENT_OWNER = "_$DX_EVENT_OWNER";
|
|
258
307
|
const INNER_OWNED = {};
|
|
259
308
|
const delegatedEvents = new Set();
|
|
@@ -652,6 +701,9 @@ function findAssetElement(selector, attr, value) {
|
|
|
652
701
|
}
|
|
653
702
|
return null;
|
|
654
703
|
}
|
|
704
|
+
function setAssetAttrs(el, attrs) {
|
|
705
|
+
for (const name in attrs) el.setAttribute(name, attrs[name]);
|
|
706
|
+
}
|
|
655
707
|
function mountAssetElement(descriptor) {
|
|
656
708
|
let el;
|
|
657
709
|
if (descriptor.type === "inline-style") {
|
|
@@ -670,12 +722,77 @@ function mountAssetElement(descriptor) {
|
|
|
670
722
|
el.href = descriptor.href;
|
|
671
723
|
}
|
|
672
724
|
}
|
|
673
|
-
if (descriptor.attrs)
|
|
674
|
-
for (const name in descriptor.attrs) el.setAttribute(name, descriptor.attrs[name]);
|
|
675
|
-
}
|
|
725
|
+
if (descriptor.attrs) setAssetAttrs(el, descriptor.attrs);
|
|
676
726
|
if (!el.isConnected) document.head.appendChild(el);
|
|
677
727
|
return el;
|
|
678
728
|
}
|
|
729
|
+
const assetLoadSettled = /*#__PURE__*/Promise.resolve();
|
|
730
|
+
function trackAssetLoad(entry, adopted) {
|
|
731
|
+
if (entry.loadPromise) return;
|
|
732
|
+
const el = entry.element;
|
|
733
|
+
let settled = el.sheet != null;
|
|
734
|
+
if (!settled && adopted && typeof performance !== "undefined" && performance.getEntriesByName) {
|
|
735
|
+
settled = performance.getEntriesByName(el.href).length > 0;
|
|
736
|
+
}
|
|
737
|
+
if (settled) {
|
|
738
|
+
entry.loadState = "loaded";
|
|
739
|
+
entry.loadPromise = assetLoadSettled;
|
|
740
|
+
return;
|
|
741
|
+
}
|
|
742
|
+
entry.loadState = "pending";
|
|
743
|
+
entry.loadPromise = new Promise(resolve => {
|
|
744
|
+
const settle = state => {
|
|
745
|
+
entry.loadState = state;
|
|
746
|
+
resolve();
|
|
747
|
+
};
|
|
748
|
+
el.addEventListener("load", () => settle("loaded"), {
|
|
749
|
+
once: true
|
|
750
|
+
});
|
|
751
|
+
el.addEventListener("error", () => settle("errored"), {
|
|
752
|
+
once: true
|
|
753
|
+
});
|
|
754
|
+
});
|
|
755
|
+
}
|
|
756
|
+
function warmAsset(descriptor) {
|
|
757
|
+
if (descriptor.policy === "exclusive" || descriptor.type === "inline-style") return;
|
|
758
|
+
const key = assetEntryKey(descriptor);
|
|
759
|
+
let entry = assetRegistry.get(key);
|
|
760
|
+
if (!entry) {
|
|
761
|
+
entry = {
|
|
762
|
+
count: 0,
|
|
763
|
+
element: null,
|
|
764
|
+
timer: null
|
|
765
|
+
};
|
|
766
|
+
assetRegistry.set(key, entry);
|
|
767
|
+
}
|
|
768
|
+
let adopted = true;
|
|
769
|
+
if (!entry.element || !entry.element.isConnected) {
|
|
770
|
+
const rel = descriptor.type === "module" ? "modulepreload" : "stylesheet";
|
|
771
|
+
let el = findAssetElement(`link[rel="${rel}"]`, "href", descriptor.href);
|
|
772
|
+
if (!el && descriptor.type === "style") {
|
|
773
|
+
el = findAssetElement('link[rel="preload"][as="style"]', "href", descriptor.href);
|
|
774
|
+
}
|
|
775
|
+
if (!el) {
|
|
776
|
+
adopted = false;
|
|
777
|
+
el = document.createElement("link");
|
|
778
|
+
if (descriptor.type === "style") {
|
|
779
|
+
el.setAttribute("rel", "preload");
|
|
780
|
+
el.setAttribute("as", "style");
|
|
781
|
+
} else {
|
|
782
|
+
el.setAttribute("rel", "modulepreload");
|
|
783
|
+
}
|
|
784
|
+
el.setAttribute("href", descriptor.href);
|
|
785
|
+
if (!document.body) el.setAttribute("blocking", "render");
|
|
786
|
+
}
|
|
787
|
+
if (descriptor.attrs) setAssetAttrs(el, descriptor.attrs);
|
|
788
|
+
if (!el.isConnected) document.head.appendChild(el);
|
|
789
|
+
entry.element = el;
|
|
790
|
+
entry.loadState = undefined;
|
|
791
|
+
entry.loadPromise = undefined;
|
|
792
|
+
}
|
|
793
|
+
if (descriptor.type === "style") trackAssetLoad(entry, adopted);
|
|
794
|
+
return entry;
|
|
795
|
+
}
|
|
679
796
|
function acquireAsset(descriptor) {
|
|
680
797
|
const key = assetEntryKey(descriptor);
|
|
681
798
|
let entry = assetRegistry.get(key);
|
|
@@ -722,7 +839,12 @@ function acquireAsset(descriptor) {
|
|
|
722
839
|
entry.timer = null;
|
|
723
840
|
}
|
|
724
841
|
entry.count++;
|
|
725
|
-
if (!entry.element || !entry.element.isConnected)
|
|
842
|
+
if (!entry.element || !entry.element.isConnected) {
|
|
843
|
+
entry.element = mountAssetElement(descriptor);
|
|
844
|
+
} else if (descriptor.type === "style" && entry.element.getAttribute("rel") === "preload") {
|
|
845
|
+
entry.element.removeAttribute("as");
|
|
846
|
+
entry.element.setAttribute("rel", "stylesheet");
|
|
847
|
+
}
|
|
726
848
|
let released = false;
|
|
727
849
|
return () => {
|
|
728
850
|
if (released) return;
|
|
@@ -869,25 +991,9 @@ function headElementMatches(el, t) {
|
|
|
869
991
|
const children = t.props.children;
|
|
870
992
|
return (children == null ? "" : String(children)) === el.textContent;
|
|
871
993
|
}
|
|
872
|
-
function
|
|
873
|
-
if (tag === "link" && (props.rel === "stylesheet" || props.rel === "modulepreload")) {
|
|
874
|
-
const descriptor = {
|
|
875
|
-
type: props.rel === "stylesheet" ? "style" : "module",
|
|
876
|
-
href: props.href
|
|
877
|
-
};
|
|
878
|
-
let attrs = null;
|
|
879
|
-
for (const name in props) {
|
|
880
|
-
if (name === "rel" || name === "href") continue;
|
|
881
|
-
if (!HEAD_ATTR_NAME.test(name)) continue;
|
|
882
|
-
const v = props[name];
|
|
883
|
-
if (v == null || v === false) continue;
|
|
884
|
-
(attrs || (attrs = {}))[name] = v === true ? "" : String(v);
|
|
885
|
-
}
|
|
886
|
-
if (attrs) descriptor.attrs = attrs;
|
|
887
|
-
return acquireAsset(descriptor);
|
|
888
|
-
}
|
|
994
|
+
function mountHeadResource(tag, props) {
|
|
889
995
|
const identity = resourceIdentity(tag, props);
|
|
890
|
-
if (headMountedResources.has(identity)) return
|
|
996
|
+
if (headMountedResources.has(identity)) return;
|
|
891
997
|
headMountedResources.add(identity);
|
|
892
998
|
const url = props.href || props.src;
|
|
893
999
|
let el = null;
|
|
@@ -895,9 +1001,28 @@ function acquireHeadResource(tag, props) {
|
|
|
895
1001
|
if (tag === "link") el = findAssetElement(`link[rel="${props.rel}"]`, "href", url);else if (tag === "script") el = findAssetElement("script[src]", "src", url);else el = findAssetElement("style[href]", "href", url);
|
|
896
1002
|
}
|
|
897
1003
|
if (!el) document.head.appendChild(createHeadElement(tag, props));
|
|
898
|
-
return noopFn;
|
|
899
1004
|
}
|
|
900
|
-
function
|
|
1005
|
+
function gateHeadResource(props) {
|
|
1006
|
+
const descriptor = {
|
|
1007
|
+
type: props.rel === "stylesheet" ? "style" : "module",
|
|
1008
|
+
href: props.href
|
|
1009
|
+
};
|
|
1010
|
+
let gateable = props.rel === "stylesheet" && props.href != null;
|
|
1011
|
+
let attrs = null;
|
|
1012
|
+
for (const name in props) {
|
|
1013
|
+
if (name === "rel" || name === "href") continue;
|
|
1014
|
+
if (!STYLESHEET_FETCH_META.has(name)) gateable = false;
|
|
1015
|
+
if (!HEAD_ATTR_NAME.test(name)) continue;
|
|
1016
|
+
const v = props[name];
|
|
1017
|
+
if (v == null || v === false) continue;
|
|
1018
|
+
(attrs || (attrs = {}))[name] = v === true ? "" : String(v);
|
|
1019
|
+
}
|
|
1020
|
+
if (attrs) descriptor.attrs = attrs;
|
|
1021
|
+
effect(() => {
|
|
1022
|
+
const entry = warmAsset(descriptor);
|
|
1023
|
+
if (gateable && entry.loadState === "pending" && typeof waitAsset === "function") waitAsset(entry.loadPromise);
|
|
1024
|
+
}, () => acquireAsset(descriptor));
|
|
1025
|
+
}
|
|
901
1026
|
function useHead(tags) {
|
|
902
1027
|
initHeadRegistry();
|
|
903
1028
|
const reg = {
|
|
@@ -920,10 +1045,16 @@ function useHead(tags) {
|
|
|
920
1045
|
rel: cls.rel
|
|
921
1046
|
} : undefined);
|
|
922
1047
|
if (cls.resource) {
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
1048
|
+
if (desc.tag === "link" && (props.rel === "stylesheet" || props.rel === "modulepreload")) {
|
|
1049
|
+
gateHeadResource(props);
|
|
1050
|
+
} else if (desc.tag === "link") {
|
|
1051
|
+
mountHeadResource(desc.tag, props);
|
|
1052
|
+
} else {
|
|
1053
|
+
resources.push({
|
|
1054
|
+
tag: desc.tag,
|
|
1055
|
+
props
|
|
1056
|
+
});
|
|
1057
|
+
}
|
|
927
1058
|
} else {
|
|
928
1059
|
const key = evalHeadValue(desc.key);
|
|
929
1060
|
replaceable.push({
|
|
@@ -938,9 +1069,8 @@ function useHead(tags) {
|
|
|
938
1069
|
resources
|
|
939
1070
|
};
|
|
940
1071
|
}, evaluated => {
|
|
941
|
-
const releases = [];
|
|
942
1072
|
for (let i = 0; i < evaluated.resources.length; i++) {
|
|
943
|
-
|
|
1073
|
+
mountHeadResource(evaluated.resources[i].tag, evaluated.resources[i].props);
|
|
944
1074
|
}
|
|
945
1075
|
reg.tags = evaluated.replaceable;
|
|
946
1076
|
if (reg.seq < 0) reg.seq = ++headSeq;
|
|
@@ -949,7 +1079,6 @@ function useHead(tags) {
|
|
|
949
1079
|
return () => {
|
|
950
1080
|
const idx = headRegistrations.indexOf(reg);
|
|
951
1081
|
if (idx > -1) headRegistrations.splice(idx, 1);
|
|
952
|
-
for (let i = 0; i < releases.length; i++) releases[i]();
|
|
953
1082
|
scheduleHeadApply();
|
|
954
1083
|
};
|
|
955
1084
|
});
|
|
@@ -1385,7 +1514,13 @@ function gatherHydratable(element, root) {
|
|
|
1385
1514
|
for (let i = 0; i < templates.length; i++) {
|
|
1386
1515
|
const node = templates[i];
|
|
1387
1516
|
const key = node.getAttribute("_hk");
|
|
1388
|
-
if (
|
|
1517
|
+
if (root) {
|
|
1518
|
+
if (!key.startsWith(root)) continue;
|
|
1519
|
+
} else {
|
|
1520
|
+
const frame = node.closest("[data-fid]");
|
|
1521
|
+
if (frame && frame !== element && element.contains(frame)) continue;
|
|
1522
|
+
}
|
|
1523
|
+
if (!solidJs.sharedConfig.registry.has(key)) solidJs.sharedConfig.registry.set(key, node);
|
|
1389
1524
|
}
|
|
1390
1525
|
}
|
|
1391
1526
|
function getHydrationKey() {
|
|
@@ -1401,20 +1536,37 @@ function throwInBrowser(func) {
|
|
|
1401
1536
|
function renderToString(fn, options) {
|
|
1402
1537
|
throwInBrowser(renderToString);
|
|
1403
1538
|
}
|
|
1404
|
-
function renderToStringAsync(fn, options) {
|
|
1405
|
-
throwInBrowser(renderToStringAsync);
|
|
1406
|
-
}
|
|
1407
1539
|
function renderToStream(fn, options) {
|
|
1408
1540
|
throwInBrowser(renderToStream);
|
|
1409
1541
|
}
|
|
1542
|
+
function createResponseStub() {
|
|
1543
|
+
throwInBrowser(createResponseStub);
|
|
1544
|
+
}
|
|
1545
|
+
function createRequestEvent(request, init) {
|
|
1546
|
+
throwInBrowser(createRequestEvent);
|
|
1547
|
+
}
|
|
1548
|
+
function getExpectedRedirectStatus(response) {
|
|
1549
|
+
throwInBrowser(getExpectedRedirectStatus);
|
|
1550
|
+
}
|
|
1551
|
+
function createSSRResponse() {
|
|
1552
|
+
throwInBrowser(createSSRResponse);
|
|
1553
|
+
}
|
|
1554
|
+
function commitEventResponse(response, event) {
|
|
1555
|
+
throwInBrowser(commitEventResponse);
|
|
1556
|
+
}
|
|
1557
|
+
function composeMiddleware(middlewares) {
|
|
1558
|
+
throwInBrowser(composeMiddleware);
|
|
1559
|
+
}
|
|
1410
1560
|
function ssr(template, ...nodes) {}
|
|
1411
1561
|
function ssrElement(name, props, children, needsId) {}
|
|
1412
|
-
function
|
|
1562
|
+
function ssrClassName(value) {}
|
|
1413
1563
|
function ssrStyle(value) {}
|
|
1564
|
+
function ssrStyleProperty(name, value) {}
|
|
1414
1565
|
function ssrAttribute(key, value) {}
|
|
1566
|
+
function ssrGroup(fn, n) {}
|
|
1415
1567
|
function ssrHydrationKey() {}
|
|
1416
|
-
function resolveSSRNode(node) {}
|
|
1417
|
-
function escape(
|
|
1568
|
+
function resolveSSRNode(node, result, top) {}
|
|
1569
|
+
function escape(s, attr) {}
|
|
1418
1570
|
|
|
1419
1571
|
const ENVELOPE = Symbol.for("solid.ResponseEnvelope");
|
|
1420
1572
|
class ResponseEnvelope {
|
|
@@ -1431,13 +1583,38 @@ const HREF = Symbol.for("solid.Href");
|
|
|
1431
1583
|
function isHref(value) {
|
|
1432
1584
|
return !!(value && (typeof value === "object" || typeof value === "function") && value[HREF]);
|
|
1433
1585
|
}
|
|
1586
|
+
const SAFE_ERROR = Symbol.for("solid.SafeError");
|
|
1587
|
+
function markSafeError(error) {
|
|
1588
|
+
if (error && (typeof error === "object" || typeof error === "function")) {
|
|
1589
|
+
Object.defineProperty(error, SAFE_ERROR, {
|
|
1590
|
+
value: true,
|
|
1591
|
+
enumerable: false,
|
|
1592
|
+
configurable: true
|
|
1593
|
+
});
|
|
1594
|
+
}
|
|
1595
|
+
return error;
|
|
1596
|
+
}
|
|
1597
|
+
function isSafeError(value) {
|
|
1598
|
+
return !!(value && (typeof value === "object" || typeof value === "function") && value[SAFE_ERROR]);
|
|
1599
|
+
}
|
|
1434
1600
|
const REVALIDATE_HEADER = "X-Revalidate";
|
|
1435
1601
|
function initWithRevalidate(init) {
|
|
1436
1602
|
const {
|
|
1437
1603
|
revalidate,
|
|
1438
1604
|
...responseInit
|
|
1439
1605
|
} = init;
|
|
1440
|
-
|
|
1606
|
+
let headers;
|
|
1607
|
+
if (responseInit.headers && responseInit.headers.getSetCookie) {
|
|
1608
|
+
headers = new Headers();
|
|
1609
|
+
responseInit.headers.forEach((value, key) => {
|
|
1610
|
+
if (key !== "set-cookie") headers.append(key, value);
|
|
1611
|
+
});
|
|
1612
|
+
for (const cookie of responseInit.headers.getSetCookie()) {
|
|
1613
|
+
headers.append("Set-Cookie", cookie);
|
|
1614
|
+
}
|
|
1615
|
+
} else {
|
|
1616
|
+
headers = new Headers(responseInit.headers);
|
|
1617
|
+
}
|
|
1441
1618
|
revalidate !== undefined && headers.set(REVALIDATE_HEADER, revalidate.toString());
|
|
1442
1619
|
return {
|
|
1443
1620
|
responseInit,
|
|
@@ -1562,9 +1739,11 @@ function bindingOf(value) {
|
|
|
1562
1739
|
function dynamic(source) {
|
|
1563
1740
|
let latest = 0;
|
|
1564
1741
|
const sites = new Set();
|
|
1742
|
+
let deliveredAddress;
|
|
1565
1743
|
const resolveBinding = (next, prev) => {
|
|
1566
1744
|
const binding = bindingOf(next);
|
|
1567
1745
|
if (!binding) return next;
|
|
1746
|
+
deliveredAddress = binding.address;
|
|
1568
1747
|
const prevBinding = bindingOf(prev);
|
|
1569
1748
|
if (prevBinding && prevBinding.component === binding.component) {
|
|
1570
1749
|
for (const deliver of sites) deliver(binding.address);
|
|
@@ -1590,7 +1769,7 @@ function dynamic(source) {
|
|
|
1590
1769
|
{
|
|
1591
1770
|
const binding = bindingOf(component);
|
|
1592
1771
|
if (binding) {
|
|
1593
|
-
const [address, setAddress] = solidJs.createSignal(binding.address);
|
|
1772
|
+
const [address, setAddress] = solidJs.createSignal(deliveredAddress ?? binding.address);
|
|
1594
1773
|
sites.add(setAddress);
|
|
1595
1774
|
solidJs.onCleanup(() => sites.delete(setAddress));
|
|
1596
1775
|
return solidJs.untrack(() => binding.component(props, address));
|
|
@@ -1692,7 +1871,6 @@ Object.defineProperty(exports, "untrack", {
|
|
|
1692
1871
|
enumerable: true,
|
|
1693
1872
|
get: function () { return solidJs.untrack; }
|
|
1694
1873
|
});
|
|
1695
|
-
exports.Assets = voidFn;
|
|
1696
1874
|
exports.ChildProperties = ChildProperties;
|
|
1697
1875
|
exports.DOMElements = DOMElements;
|
|
1698
1876
|
exports.DOMWithState = DOMWithState;
|
|
@@ -1707,6 +1885,7 @@ exports.REVALIDATE_HEADER = REVALIDATE_HEADER;
|
|
|
1707
1885
|
exports.RawTextElements = RawTextElements;
|
|
1708
1886
|
exports.RequestContext = RequestContext;
|
|
1709
1887
|
exports.ResponseEnvelope = ResponseEnvelope;
|
|
1888
|
+
exports.SAFE_ERROR = SAFE_ERROR;
|
|
1710
1889
|
exports.SVGElements = SVGElements;
|
|
1711
1890
|
exports.VoidElements = VoidElements;
|
|
1712
1891
|
exports.acquireAsset = acquireAsset;
|
|
@@ -1717,14 +1896,19 @@ exports.claimElement = claimElement;
|
|
|
1717
1896
|
exports.claimElementTree = claimElementTree;
|
|
1718
1897
|
exports.className = className;
|
|
1719
1898
|
exports.clientOnly = clientOnly;
|
|
1899
|
+
exports.commitEventResponse = commitEventResponse;
|
|
1900
|
+
exports.composeMiddleware = composeMiddleware;
|
|
1901
|
+
exports.createRequestEvent = createRequestEvent;
|
|
1902
|
+
exports.createResponseStub = createResponseStub;
|
|
1903
|
+
exports.createSSRResponse = createSSRResponse;
|
|
1720
1904
|
exports.delegateEvents = delegateEvents;
|
|
1721
1905
|
exports.dynamic = dynamic;
|
|
1722
1906
|
exports.dynamicProperty = dynamicProperty;
|
|
1723
1907
|
exports.effect = effect;
|
|
1724
1908
|
exports.escape = escape;
|
|
1725
1909
|
exports.generateHydrationScript = voidFn;
|
|
1726
|
-
exports.getAssets = voidFn;
|
|
1727
1910
|
exports.getDelegatedRoot = getDelegatedRoot;
|
|
1911
|
+
exports.getExpectedRedirectStatus = getExpectedRedirectStatus;
|
|
1728
1912
|
exports.getFirstChild = getFirstChild;
|
|
1729
1913
|
exports.getHydrationKey = getHydrationKey;
|
|
1730
1914
|
exports.getNextElement = getNextElement;
|
|
@@ -1740,9 +1924,12 @@ exports.installHydrationRuntime = installHydrationRuntime;
|
|
|
1740
1924
|
exports.isDev = isDev;
|
|
1741
1925
|
exports.isHref = isHref;
|
|
1742
1926
|
exports.isResponseEnvelope = isResponseEnvelope;
|
|
1927
|
+
exports.isSafeError = isSafeError;
|
|
1743
1928
|
exports.isServer = isServer;
|
|
1929
|
+
exports.markSafeError = markSafeError;
|
|
1744
1930
|
exports.memo = memo;
|
|
1745
1931
|
exports.mergeProps = mergeProps;
|
|
1932
|
+
exports.parseCookieHeader = parseCookieHeader;
|
|
1746
1933
|
exports.redirect = redirect;
|
|
1747
1934
|
exports.ref = ref;
|
|
1748
1935
|
exports.registerDelegatedContainer = registerDelegatedContainer;
|
|
@@ -1752,11 +1939,11 @@ exports.reload = reload;
|
|
|
1752
1939
|
exports.render = render;
|
|
1753
1940
|
exports.renderToStream = renderToStream;
|
|
1754
1941
|
exports.renderToString = renderToString;
|
|
1755
|
-
exports.renderToStringAsync = renderToStringAsync;
|
|
1756
1942
|
exports.resolveSSRNode = resolveSSRNode;
|
|
1757
1943
|
exports.respond = respond;
|
|
1758
1944
|
exports.runHydrationEvents = runHydrationEvents;
|
|
1759
1945
|
exports.scope = scope;
|
|
1946
|
+
exports.serializeCookie = serializeCookie;
|
|
1760
1947
|
exports.setAttribute = setAttribute;
|
|
1761
1948
|
exports.setAttributeNS = setAttributeNS;
|
|
1762
1949
|
exports.setProperty = setProperty;
|
|
@@ -1764,13 +1951,15 @@ exports.setStyleProperty = setStyleProperty;
|
|
|
1764
1951
|
exports.spread = spread;
|
|
1765
1952
|
exports.ssr = ssr;
|
|
1766
1953
|
exports.ssrAttribute = ssrAttribute;
|
|
1767
|
-
exports.
|
|
1954
|
+
exports.ssrClassName = ssrClassName;
|
|
1768
1955
|
exports.ssrElement = ssrElement;
|
|
1956
|
+
exports.ssrGroup = ssrGroup;
|
|
1769
1957
|
exports.ssrHydrationKey = ssrHydrationKey;
|
|
1770
1958
|
exports.ssrStyle = ssrStyle;
|
|
1959
|
+
exports.ssrStyleProperty = ssrStyleProperty;
|
|
1771
1960
|
exports.style = style;
|
|
1772
1961
|
exports.template = template;
|
|
1773
1962
|
exports.unregisterDelegatedContainer = unregisterDelegatedContainer;
|
|
1774
1963
|
exports.unregisterDelegatedRoot = unregisterDelegatedRoot;
|
|
1775
|
-
exports.useAssets = voidFn;
|
|
1776
1964
|
exports.useHead = useHead;
|
|
1965
|
+
exports.warmAsset = warmAsset;
|