@solidjs/web 2.0.0-rc.1 → 2.0.0-rc.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/dist/dev.cjs +116 -66
  2. package/dist/dev.js +109 -65
  3. package/dist/server.cjs +386 -109
  4. package/dist/server.js +378 -113
  5. package/dist/web.cjs +113 -64
  6. package/dist/web.js +106 -63
  7. package/frames/dist/client.cjs +100 -14
  8. package/frames/dist/client.dev.cjs +103 -14
  9. package/frames/dist/client.dev.js +104 -15
  10. package/frames/dist/client.js +101 -15
  11. package/frames/dist/server.cjs +285 -154
  12. package/frames/dist/server.js +287 -156
  13. package/package.json +20 -22
  14. package/serialization/dist/decode.cjs +22 -5
  15. package/serialization/dist/decode.js +23 -6
  16. package/serialization/dist/serialization.cjs +26 -13
  17. package/serialization/dist/serialization.js +26 -8
  18. package/serialization/types/index.d.ts +69 -157
  19. package/serialization/types/serializer-decode.d.ts +89 -112
  20. package/serialization/types/serializer.d.ts +94 -0
  21. package/serialization/types-cjs/index.d.cts +69 -157
  22. package/serialization/types-cjs/serializer-decode.d.cts +89 -112
  23. package/serialization/types-cjs/serializer.d.cts +94 -0
  24. package/server-functions/dist/client.cjs +48 -7
  25. package/server-functions/dist/client.js +48 -8
  26. package/server-functions/dist/server.cjs +76 -5
  27. package/server-functions/dist/server.dev.cjs +76 -5
  28. package/server-functions/dist/server.dev.js +76 -6
  29. package/server-functions/dist/server.js +76 -6
  30. package/types/client.d.ts +150 -290
  31. package/types/constants.d.ts +18 -0
  32. package/types/cookies.d.ts +31 -75
  33. package/types/frames/frame-client.d.ts +287 -259
  34. package/types/frames/frame-container-plugin.d.ts +71 -0
  35. package/types/frames/frame-sink.d.ts +58 -160
  36. package/types/frames/frame-transport.d.ts +161 -194
  37. package/types/frames/serializer-decode.d.ts +159 -0
  38. package/types/frames/serializer.d.ts +69 -157
  39. package/types/head.d.ts +16 -0
  40. package/types/index.d.ts +0 -65
  41. package/types/index.server.d.ts +125 -0
  42. package/types/jsx.d.ts +5 -13
  43. package/types/reconcile.d.ts +1 -0
  44. package/types/render.d.ts +4 -0
  45. package/types/response.d.ts +41 -153
  46. package/types/serializer-decode.d.ts +89 -112
  47. package/types/serializer.d.ts +69 -157
  48. package/types/server-functions/client.d.ts +101 -199
  49. package/types/server-functions/flash.d.ts +10 -30
  50. package/types/server-functions/registry.d.ts +63 -0
  51. package/types/server-functions/rich-args.d.ts +1 -10
  52. package/types/server-functions/server.d.ts +301 -518
  53. package/types/server-functions/shared.d.ts +112 -458
  54. package/types/server-mock.d.ts +13 -4
  55. package/types/server.d.ts +256 -427
  56. package/types-cjs/client.d.cts +150 -290
  57. package/types-cjs/constants.d.cts +18 -0
  58. package/types-cjs/cookies.d.cts +31 -75
  59. package/types-cjs/frames/frame-client.d.cts +287 -259
  60. package/types-cjs/frames/frame-container-plugin.d.cts +71 -0
  61. package/types-cjs/frames/frame-sink.d.cts +58 -160
  62. package/types-cjs/frames/frame-transport.d.cts +161 -194
  63. package/types-cjs/frames/serializer-decode.d.cts +159 -0
  64. package/types-cjs/frames/serializer.d.cts +69 -157
  65. package/types-cjs/head.d.cts +16 -0
  66. package/types-cjs/index.d.cts +0 -65
  67. package/types-cjs/index.server.d.cts +125 -0
  68. package/types-cjs/jsx.d.cts +5 -13
  69. package/types-cjs/reconcile.d.cts +1 -0
  70. package/types-cjs/render.d.cts +4 -0
  71. package/types-cjs/response.d.cts +41 -153
  72. package/types-cjs/serializer-decode.d.cts +89 -112
  73. package/types-cjs/serializer.d.cts +69 -157
  74. package/types-cjs/server-functions/client.d.cts +101 -199
  75. package/types-cjs/server-functions/flash.d.cts +10 -30
  76. package/types-cjs/server-functions/registry.d.cts +63 -0
  77. package/types-cjs/server-functions/rich-args.d.cts +1 -10
  78. package/types-cjs/server-functions/server.d.cts +301 -518
  79. package/types-cjs/server-functions/shared.d.cts +112 -458
  80. package/types-cjs/server-mock.d.cts +13 -4
  81. package/types-cjs/server.d.cts +256 -427
  82. package/LICENSE +0 -21
  83. package/types/core.d.ts +0 -6
  84. package/types-cjs/core.d.cts +0 -6
package/dist/dev.cjs CHANGED
@@ -57,23 +57,16 @@ const transparentOptions = {
57
57
  const syncOptions = {
58
58
  sync: true
59
59
  };
60
- const effect = (fn, effectFn, options) => solidJs.createRenderEffect(fn, effectFn, options ? {
61
- sync: true,
62
- ...options,
63
- transparent: !options.scope
64
- } : transparentOptions);
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
- };
60
+ function effect(fn, effectFn, options) {
61
+ solidJs.createRenderEffect(fn, effectFn, options ? {
62
+ sync: true,
63
+ ...options,
64
+ transparent: !options.scope
65
+ } : transparentOptions);
66
+ }
67
+ function memo(fn) {
68
+ return solidJs.createMemo(() => fn(), syncOptions);
69
+ }
77
70
 
78
71
  function reconcileArrays(parentNode, a, b, marker) {
79
72
  let bLength = b.length,
@@ -87,13 +80,18 @@ function reconcileArrays(parentNode, a, b, marker) {
87
80
  map = null,
88
81
  anchor,
89
82
  anchorTag;
83
+ const isLive = n => {
84
+ if (!n) return false;
85
+ const tag = n[$$SLOT];
86
+ return n.parentNode === parentNode && (!tag || tag === marker);
87
+ };
90
88
  while (aStart < aEnd || bStart < bEnd) {
91
- if (a[aStart] === b[bStart]) {
89
+ if (a[aStart] === b[bStart] && isLive(a[aStart])) {
92
90
  aStart++;
93
91
  bStart++;
94
92
  continue;
95
93
  }
96
- while (a[aEnd - 1] === b[bEnd - 1]) {
94
+ while (a[aEnd - 1] === b[bEnd - 1] && isLive(a[aEnd - 1])) {
97
95
  aEnd--;
98
96
  bEnd--;
99
97
  }
@@ -325,14 +323,35 @@ function getServerFunctionRPC() {
325
323
  return globalThis[SERVER_FUNCTION_RPC];
326
324
  }
327
325
 
328
- const $$EVENT_OWNER = "_$DX_EVENT_OWNER";
326
+ const assetGates = new WeakMap();
327
+ const waitAsset = promise => {
328
+ let gate = assetGates.get(promise);
329
+ if (!gate) {
330
+ solidJs.runWithOwner(null, () => {
331
+ gate = solidJs.createMemo(() => promise);
332
+ });
333
+ assetGates.set(promise, gate);
334
+ }
335
+ gate();
336
+ };
337
+ const $$EVENT_OWNER = "_$SOLID_EVENT_OWNER";
329
338
  const INNER_OWNED = {};
330
339
  const delegatedEvents = new Set();
331
340
  const delegatedContainers = new Map();
332
- function render$1(code, element, init, options = {}) {
341
+ function voidFn() {}
342
+ function generateHydrationScript(_options) {
343
+ return "";
344
+ }
345
+ function HydrationScript(_props) {
346
+ return null;
347
+ }
348
+ const getRequestEvent = voidFn;
349
+ function render(code, element, init, options = {}) {
333
350
  if (!element) {
334
351
  throw new Error("The `element` passed to `render(..., element)` doesn't exist. Make sure `element` exists in the document.");
335
352
  }
353
+ solidJs.resetErrorHalt();
354
+ solidJs.enforceLoadingBoundary(true);
336
355
  let disposer;
337
356
  registerDelegatedRoot(element);
338
357
  try {
@@ -343,15 +362,21 @@ function render$1(code, element, init, options = {}) {
343
362
  effect(() => solidJs.flatten(tree), () => {});
344
363
  } else {
345
364
  const tree = code();
346
- insert(element, () => tree, element.firstChild ? null : undefined, init, options.insertOptions);
365
+ insert(element, () => tree, element.firstChild ? null : undefined, init, {
366
+ ...options.insertOptions,
367
+ schedule: true
368
+ });
347
369
  }
348
370
  }, {
349
371
  id: options.renderId
350
372
  });
373
+ solidJs.flush();
351
374
  } catch (err) {
352
375
  if (disposer) disposer();
353
376
  unregisterDelegatedRoot(element);
354
377
  throw err;
378
+ } finally {
379
+ solidJs.enforceLoadingBoundary(false);
355
380
  }
356
381
  return () => {
357
382
  disposer();
@@ -438,7 +463,7 @@ function setProperty(node, name, value) {
438
463
  node[name] = value;
439
464
  }
440
465
  let claimHandlers = null;
441
- const CLAIM_SEAM = Symbol.for("dom-expressions.element-claims");
466
+ const CLAIM_SEAM = Symbol.for("solid.element-claims");
442
467
  function registerElementClaim(handler) {
443
468
  (claimHandlers || (claimHandlers = globalThis[CLAIM_SEAM] = [])).push(handler);
444
469
  return () => {
@@ -592,6 +617,11 @@ function ref(fn, element) {
592
617
  const resolved = solidJs.untrack(fn);
593
618
  solidJs.runWithOwner(null, () => applyRef(resolved, element));
594
619
  }
620
+ const PURE_ROW = Symbol.for("solid.pure-row");
621
+ function rowProof(fn) {
622
+ fn[PURE_ROW] = true;
623
+ return fn;
624
+ }
595
625
  function scope(fn) {
596
626
  fn.$s = true;
597
627
  return fn;
@@ -655,6 +685,11 @@ function stripTextSeparators(nodes) {
655
685
  nodes.length = j;
656
686
  return nodes;
657
687
  }
688
+ function patchDriver(subject, body) {
689
+ {
690
+ effect(() => body(subject, subject, false), () => body(subject, undefined, true));
691
+ }
692
+ }
658
693
  function insert(parent, accessor, marker, initial, options) {
659
694
  const multi = marker !== undefined;
660
695
  const host = options && options.host;
@@ -895,7 +930,7 @@ function initHeadRegistry() {
895
930
  headOwned = new Map();
896
931
  headApplied = new Map();
897
932
  const t = document.querySelector("title");
898
- headFallbackTitle = t && !t.hasAttribute("data-dh") ? t.textContent : null;
933
+ headFallbackTitle = t ? t.hasAttribute("data-dh") ? t.getAttribute("data-dhf") : t.textContent : null;
899
934
  if (globalThis._$HY) globalThis._$HY.h = applyServerHeadOps;
900
935
  }
901
936
  function applyServerHeadOps(ops) {
@@ -950,7 +985,11 @@ function flushHeadRegistry() {
950
985
  headOwned.delete(identity);
951
986
  headApplied.delete(identity);
952
987
  if (identity === "title") {
953
- if (headFallbackTitle != null) setHeadTitle(headFallbackTitle).removeAttribute("data-dh");
988
+ if (headFallbackTitle != null) {
989
+ const el = setHeadTitle(headFallbackTitle);
990
+ el.removeAttribute("data-dh");
991
+ el.removeAttribute("data-dhf");
992
+ }
954
993
  } else {
955
994
  for (let i = 0; i < els.length; i++) els[i].remove();
956
995
  }
@@ -1117,7 +1156,7 @@ function loadModuleAssets(mapping) {
1117
1156
  const pending = [];
1118
1157
  for (const key in mapping) {
1119
1158
  if (hy.modules[key]) continue;
1120
- const entryUrl = mapping[key];
1159
+ const entryUrl = new URL(mapping[key], document.baseURI).href;
1121
1160
  if (!hy.loading[key]) {
1122
1161
  hy.loading[key] = import(entryUrl).then(mod => {
1123
1162
  hy.modules[key] = mod;
@@ -1130,9 +1169,10 @@ function loadModuleAssets(mapping) {
1130
1169
  }
1131
1170
  return pending.length ? Promise.all(pending).then(() => {}) : undefined;
1132
1171
  }
1133
- function hydrate$1(code, element, options = {}) {
1172
+ function hydrate(code, element, options = {}) {
1173
+ solidJs.enableHydration();
1134
1174
  installHydrationRuntime();
1135
- if (globalThis._$HY.done) return render$1(code, element, [...element.childNodes], options);
1175
+ if (globalThis._$HY.done) return render(code, element, [...element.childNodes], options);
1136
1176
  options.renderId ||= "";
1137
1177
  if (!globalThis._$HY.modules) globalThis._$HY.modules = {};
1138
1178
  if (!globalThis._$HY.loading) globalThis._$HY.loading = {};
@@ -1191,7 +1231,7 @@ function hydrate$1(code, element, options = {}) {
1191
1231
  solidJs.sharedConfig.gather = gather;
1192
1232
  solidJs.sharedConfig.hydrating = true;
1193
1233
  try {
1194
- disposer = render$1(code, element, [...element.childNodes], options);
1234
+ disposer = render(code, element, [...element.childNodes], options);
1195
1235
  } finally {
1196
1236
  solidJs.sharedConfig.hydrating = false;
1197
1237
  }
@@ -1199,14 +1239,14 @@ function hydrate$1(code, element, options = {}) {
1199
1239
  console.error("Hydration module preload failed, falling back to client render:", err);
1200
1240
  solidJs.sharedConfig.hydrating = false;
1201
1241
  solidJs.sharedConfig.registry = undefined;
1202
- disposer = render$1(code, element, [...element.childNodes], options);
1242
+ disposer = render(code, element, [...element.childNodes], options);
1203
1243
  });
1204
1244
  return () => disposer && disposer();
1205
1245
  }
1206
1246
  }
1207
1247
  try {
1208
1248
  gatherHydratable(element, options.renderId);
1209
- return render$1(code, element, [...element.childNodes], options);
1249
+ return render(code, element, [...element.childNodes], options);
1210
1250
  } finally {
1211
1251
  solidJs.sharedConfig.hydrating = false;
1212
1252
  }
@@ -1436,7 +1476,11 @@ function eventHandler(e, container, state) {
1436
1476
  value
1437
1477
  });
1438
1478
  const handleNode = () => {
1439
- const handler = node[key];
1479
+ let handler = node[key];
1480
+ if (handler === undefined && node.hasAttribute && node.hasAttribute("_bnd")) {
1481
+ const seam = globalThis[Symbol.for("solid.bnd")];
1482
+ if (seam) handler = seam.resolve(node, e.type);
1483
+ }
1440
1484
  if (handler && !node.disabled) {
1441
1485
  const data = node[`${key}Data`];
1442
1486
  data !== undefined ? handler.call(node, data, e) : handler.call(node, e);
@@ -1483,7 +1527,16 @@ function eventHandler(e, container, state) {
1483
1527
  }
1484
1528
  function insertExpression(parent, value, current, marker) {
1485
1529
  if (hydrationRt !== null && isHydrating(parent)) {
1486
- if (value && value !== current) for (const n of Array.isArray(value) ? value : [value]) if (n && n.nodeType && !isHydrating(n)) return current;
1530
+ if (value && value !== current) {
1531
+ const arr = Array.isArray(value);
1532
+ for (const n of arr ? value : [value]) {
1533
+ if (n && n.nodeType) {
1534
+ if (!isHydrating(n)) return current;
1535
+ } else if (arr && (typeof n === "string" || typeof n === "number")) {
1536
+ return current;
1537
+ }
1538
+ }
1539
+ }
1487
1540
  return value;
1488
1541
  }
1489
1542
  if (value === current) return value;
@@ -1514,6 +1567,17 @@ function insertExpression(parent, value, current, marker) {
1514
1567
  if (marker) value[$$SLOT] = marker;
1515
1568
  } else if (Array.isArray(value)) {
1516
1569
  const currentArray = current && Array.isArray(current);
1570
+ for (let i = 0, len = value.length; i < len; i++) {
1571
+ const item = value[i],
1572
+ t = typeof item;
1573
+ if (t === "string" || t === "number") {
1574
+ const prev = currentArray ? current[i] : undefined;
1575
+ if (prev && prev.nodeType === 3) {
1576
+ if (prev.data !== "" + item) prev.data = item;
1577
+ value[i] = prev;
1578
+ } else value[i] = document.createTextNode(item);
1579
+ }
1580
+ }
1517
1581
  if (value.length === 0) {
1518
1582
  cleanChildren(parent, current, marker);
1519
1583
  } else if (currentArray) {
@@ -1534,12 +1598,12 @@ function normalize(value, current, multi, doNotUnwrap) {
1534
1598
  });
1535
1599
  if (doNotUnwrap && typeof value === "function") return value;
1536
1600
  if (multi && !Array.isArray(value)) value = [value != null ? value : ""];
1537
- if (Array.isArray(value)) {
1601
+ if (solidJs.sharedConfig.hydrating && Array.isArray(value)) {
1538
1602
  for (let i = 0, len = value.length; i < len; i++) {
1539
1603
  const item = value[i],
1540
1604
  prev = current && current[i],
1541
1605
  t = typeof item;
1542
- if (t === "string" || t === "number") value[i] = prev && prev.nodeType === 3 && (solidJs.sharedConfig.hydrating || prev.data === "" + item) ? prev : document.createTextNode(item);
1606
+ if ((t === "string" || t === "number") && prev && prev.nodeType === 3) value[i] = prev;
1543
1607
  }
1544
1608
  }
1545
1609
  return value;
@@ -1620,7 +1684,6 @@ function gatherHydratable(element, root) {
1620
1684
  function getHydrationKey() {
1621
1685
  return solidJs.sharedConfig.getNextContextId();
1622
1686
  }
1623
- const voidFn = () => undefined;
1624
1687
  const RequestContext = Symbol();
1625
1688
 
1626
1689
  function throwInBrowser(func) {
@@ -1696,11 +1759,14 @@ function isSafeError(value) {
1696
1759
  return !!(value && (typeof value === "object" || typeof value === "function") && value[SAFE_ERROR]);
1697
1760
  }
1698
1761
  const REVALIDATE_HEADER = "X-Revalidate";
1699
- function initWithRevalidate(init) {
1762
+ function initWithRevalidate(init = {}) {
1763
+ const resolved = typeof init === "number" ? {
1764
+ status: init
1765
+ } : init;
1700
1766
  const {
1701
1767
  revalidate,
1702
1768
  ...responseInit
1703
- } = init;
1769
+ } = resolved;
1704
1770
  let headers;
1705
1771
  if (responseInit.headers && responseInit.headers.getSetCookie) {
1706
1772
  headers = new Headers();
@@ -1726,9 +1792,7 @@ function redirect(url, init = 302) {
1726
1792
  const {
1727
1793
  responseInit,
1728
1794
  headers
1729
- } = initWithRevalidate(typeof init === "number" ? {
1730
- status: init
1731
- } : init);
1795
+ } = initWithRevalidate(init);
1732
1796
  if (responseInit.status === undefined) {
1733
1797
  responseInit.status = 302;
1734
1798
  }
@@ -1760,28 +1824,8 @@ function respond(value, init = {}) {
1760
1824
  }), value);
1761
1825
  }
1762
1826
 
1763
- const mergeProps = solidJs.merge;
1764
1827
  const isServer = false;
1765
1828
  const isDev = true;
1766
- function render(code, element, init, options = {}) {
1767
- solidJs.enforceLoadingBoundary(true);
1768
- try {
1769
- const dispose = render$1(code, element, init, {
1770
- ...options,
1771
- insertOptions: {
1772
- schedule: true
1773
- }
1774
- });
1775
- solidJs.flush();
1776
- return dispose;
1777
- } finally {
1778
- solidJs.enforceLoadingBoundary(false);
1779
- }
1780
- }
1781
- const hydrate = (...args) => {
1782
- solidJs.enableHydration();
1783
- return hydrate$1(...args);
1784
- };
1785
1829
  function Portal(props) {
1786
1830
  return solidJs.runWithOwner(solidJs.createOwner(), () => portalImpl(props));
1787
1831
  }
@@ -1834,7 +1878,7 @@ function portalImpl(props) {
1834
1878
  });
1835
1879
  return treeMarker;
1836
1880
  }
1837
- const COMPONENT_BINDING = Symbol.for("dom-expressions.component-binding");
1881
+ const COMPONENT_BINDING = Symbol.for("solid.component-binding");
1838
1882
  function bindingOf(value) {
1839
1883
  return value !== null && (typeof value === "function" || typeof value === "object") && value[COMPONENT_BINDING] || undefined;
1840
1884
  }
@@ -1974,6 +2018,10 @@ Object.defineProperty(exports, "getOwner", {
1974
2018
  enumerable: true,
1975
2019
  get: function () { return solidJs.getOwner; }
1976
2020
  });
2021
+ Object.defineProperty(exports, "mergeProps", {
2022
+ enumerable: true,
2023
+ get: function () { return solidJs.merge; }
2024
+ });
1977
2025
  Object.defineProperty(exports, "untrack", {
1978
2026
  enumerable: true,
1979
2027
  get: function () { return solidJs.untrack; }
@@ -1984,7 +2032,7 @@ exports.DOMWithState = DOMWithState;
1984
2032
  exports.DelegatedEvents = DelegatedEvents;
1985
2033
  exports.Dynamic = Dynamic;
1986
2034
  exports.HREF = HREF;
1987
- exports.HydrationScript = voidFn;
2035
+ exports.HydrationScript = HydrationScript;
1988
2036
  exports.MathMLElements = MathMLElements;
1989
2037
  exports.Namespaces = Namespaces;
1990
2038
  exports.Portal = Portal;
@@ -2014,7 +2062,7 @@ exports.dynamic = dynamic;
2014
2062
  exports.dynamicProperty = dynamicProperty;
2015
2063
  exports.effect = effect;
2016
2064
  exports.escape = escape;
2017
- exports.generateHydrationScript = voidFn;
2065
+ exports.generateHydrationScript = generateHydrationScript;
2018
2066
  exports.getDelegatedRoot = getDelegatedRoot;
2019
2067
  exports.getExpectedRedirectStatus = getExpectedRedirectStatus;
2020
2068
  exports.getFirstChild = getFirstChild;
@@ -2023,7 +2071,7 @@ exports.getNextElement = getNextElement;
2023
2071
  exports.getNextMarker = getNextMarker;
2024
2072
  exports.getNextMatch = getNextMatch;
2025
2073
  exports.getNextSibling = getNextSibling;
2026
- exports.getRequestEvent = voidFn;
2074
+ exports.getRequestEvent = getRequestEvent;
2027
2075
  exports.getServerFunctionMetadata = getServerFunctionMetadata;
2028
2076
  exports.getServerFunctionRPC = getServerFunctionRPC;
2029
2077
  exports.hasFlashCookie = hasFlashCookie;
@@ -2040,8 +2088,8 @@ exports.isServer = isServer;
2040
2088
  exports.isServerFunction = isServerFunction;
2041
2089
  exports.markSafeError = markSafeError;
2042
2090
  exports.memo = memo;
2043
- exports.mergeProps = mergeProps;
2044
2091
  exports.parseCookieHeader = parseCookieHeader;
2092
+ exports.patchDriver = patchDriver;
2045
2093
  exports.redirect = redirect;
2046
2094
  exports.ref = ref;
2047
2095
  exports.registerDelegatedContainer = registerDelegatedContainer;
@@ -2053,6 +2101,7 @@ exports.renderToStream = renderToStream;
2053
2101
  exports.renderToString = renderToString;
2054
2102
  exports.resolveSSRNode = resolveSSRNode;
2055
2103
  exports.respond = respond;
2104
+ exports.rowProof = rowProof;
2056
2105
  exports.runHydrationEvents = runHydrationEvents;
2057
2106
  exports.scope = scope;
2058
2107
  exports.serializeCookie = serializeCookie;
@@ -2074,4 +2123,5 @@ exports.template = template;
2074
2123
  exports.unregisterDelegatedContainer = unregisterDelegatedContainer;
2075
2124
  exports.unregisterDelegatedRoot = unregisterDelegatedRoot;
2076
2125
  exports.useHead = useHead;
2126
+ exports.waitAsset = waitAsset;
2077
2127
  exports.warmAsset = warmAsset;