solid-js 1.6.1 → 1.6.2

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 CHANGED
@@ -419,12 +419,13 @@ function batch(fn) {
419
419
  return runUpdates(fn, false);
420
420
  }
421
421
  function untrack(fn) {
422
- let result,
423
- listener = Listener;
422
+ const listener = Listener;
424
423
  Listener = null;
425
- result = fn();
426
- Listener = listener;
427
- return result;
424
+ try {
425
+ return fn();
426
+ } finally {
427
+ Listener = listener;
428
+ }
428
429
  }
429
430
  function on(deps, fn, options) {
430
431
  const isArray = Array.isArray(deps);
@@ -1256,7 +1257,7 @@ const propTraps = {
1256
1257
  }
1257
1258
  };
1258
1259
  function resolveSource(s) {
1259
- return (s = typeof s === "function" ? s() : s) == null ? {} : s;
1260
+ return !(s = typeof s === "function" ? s() : s) ? {} : s;
1260
1261
  }
1261
1262
  function mergeProps(...sources) {
1262
1263
  if (sources.some(s => s && ($PROXY in s || typeof s === "function"))) {
@@ -1359,7 +1360,7 @@ function lazy(fn) {
1359
1360
  }
1360
1361
  let Comp;
1361
1362
  return createMemo(() => (Comp = comp()) && untrack(() => {
1362
- Object.assign(Comp, {
1363
+ if ("_SOLID_DEV_") Object.assign(Comp, {
1363
1364
  [$DEVCOMP]: true
1364
1365
  });
1365
1366
  if (!ctx) return Comp(props);
package/dist/dev.js CHANGED
@@ -415,12 +415,13 @@ function batch(fn) {
415
415
  return runUpdates(fn, false);
416
416
  }
417
417
  function untrack(fn) {
418
- let result,
419
- listener = Listener;
418
+ const listener = Listener;
420
419
  Listener = null;
421
- result = fn();
422
- Listener = listener;
423
- return result;
420
+ try {
421
+ return fn();
422
+ } finally {
423
+ Listener = listener;
424
+ }
424
425
  }
425
426
  function on(deps, fn, options) {
426
427
  const isArray = Array.isArray(deps);
@@ -1252,7 +1253,7 @@ const propTraps = {
1252
1253
  }
1253
1254
  };
1254
1255
  function resolveSource(s) {
1255
- return (s = typeof s === "function" ? s() : s) == null ? {} : s;
1256
+ return !(s = typeof s === "function" ? s() : s) ? {} : s;
1256
1257
  }
1257
1258
  function mergeProps(...sources) {
1258
1259
  if (sources.some(s => s && ($PROXY in s || typeof s === "function"))) {
@@ -1355,7 +1356,7 @@ function lazy(fn) {
1355
1356
  }
1356
1357
  let Comp;
1357
1358
  return createMemo(() => (Comp = comp()) && untrack(() => {
1358
- Object.assign(Comp, {
1359
+ if ("_SOLID_DEV_") Object.assign(Comp, {
1359
1360
  [$DEVCOMP]: true
1360
1361
  });
1361
1362
  if (!ctx) return Comp(props);
package/dist/solid.cjs CHANGED
@@ -411,12 +411,13 @@ function batch(fn) {
411
411
  return runUpdates(fn, false);
412
412
  }
413
413
  function untrack(fn) {
414
- let result,
415
- listener = Listener;
414
+ const listener = Listener;
416
415
  Listener = null;
417
- result = fn();
418
- Listener = listener;
419
- return result;
416
+ try {
417
+ return fn();
418
+ } finally {
419
+ Listener = listener;
420
+ }
420
421
  }
421
422
  function on(deps, fn, options) {
422
423
  const isArray = Array.isArray(deps);
@@ -1170,7 +1171,7 @@ const propTraps = {
1170
1171
  }
1171
1172
  };
1172
1173
  function resolveSource(s) {
1173
- return (s = typeof s === "function" ? s() : s) == null ? {} : s;
1174
+ return !(s = typeof s === "function" ? s() : s) ? {} : s;
1174
1175
  }
1175
1176
  function mergeProps(...sources) {
1176
1177
  if (sources.some(s => s && ($PROXY in s || typeof s === "function"))) {
@@ -1273,6 +1274,7 @@ function lazy(fn) {
1273
1274
  }
1274
1275
  let Comp;
1275
1276
  return createMemo(() => (Comp = comp()) && untrack(() => {
1277
+ if (false) ;
1276
1278
  if (!ctx) return Comp(props);
1277
1279
  const c = sharedConfig.context;
1278
1280
  setHydrateContext(ctx);
package/dist/solid.js CHANGED
@@ -407,12 +407,13 @@ function batch(fn) {
407
407
  return runUpdates(fn, false);
408
408
  }
409
409
  function untrack(fn) {
410
- let result,
411
- listener = Listener;
410
+ const listener = Listener;
412
411
  Listener = null;
413
- result = fn();
414
- Listener = listener;
415
- return result;
412
+ try {
413
+ return fn();
414
+ } finally {
415
+ Listener = listener;
416
+ }
416
417
  }
417
418
  function on(deps, fn, options) {
418
419
  const isArray = Array.isArray(deps);
@@ -1166,7 +1167,7 @@ const propTraps = {
1166
1167
  }
1167
1168
  };
1168
1169
  function resolveSource(s) {
1169
- return (s = typeof s === "function" ? s() : s) == null ? {} : s;
1170
+ return !(s = typeof s === "function" ? s() : s) ? {} : s;
1170
1171
  }
1171
1172
  function mergeProps(...sources) {
1172
1173
  if (sources.some(s => s && ($PROXY in s || typeof s === "function"))) {
@@ -1269,6 +1270,7 @@ function lazy(fn) {
1269
1270
  }
1270
1271
  let Comp;
1271
1272
  return createMemo(() => (Comp = comp()) && untrack(() => {
1273
+ if (false) ;
1272
1274
  if (!ctx) return Comp(props);
1273
1275
  const c = sharedConfig.context;
1274
1276
  setHydrateContext(ctx);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "solid-js",
3
3
  "description": "A declarative JavaScript library for building user interfaces.",
4
- "version": "1.6.1",
4
+ "version": "1.6.2",
5
5
  "author": "Ryan Carniato",
6
6
  "license": "MIT",
7
7
  "homepage": "https://solidjs.com",
@@ -116,8 +116,7 @@ const proxyTraps$1 = {
116
116
  },
117
117
  has(target, property) {
118
118
  if (property === $RAW || property === solidJs.$PROXY || property === solidJs.$TRACK || property === $NODE || property === "__proto__") return true;
119
- const tracked = getDataNodes(target)[property];
120
- tracked && tracked();
119
+ this.get(target, property, target);
121
120
  return property in target;
122
121
  },
123
122
  set() {
@@ -133,11 +132,10 @@ const proxyTraps$1 = {
133
132
  };
134
133
  function setProperty(state, property, value, deleting = false) {
135
134
  if (!deleting && state[property] === value) return;
136
- const prev = state[property];
137
- const len = state.length;
138
- if (value === undefined) {
139
- delete state[property];
140
- } else state[property] = value;
135
+ const prev = state[property],
136
+ len = state.length;
137
+ if (globalThis._$onStoreNodeUpdate) globalThis._$onStoreNodeUpdate(state, property, value, prev);
138
+ if (value === undefined) delete state[property];else state[property] = value;
141
139
  let nodes = getDataNodes(state),
142
140
  node;
143
141
  if (node = getDataNode(nodes, property, prev)) node.$(() => value);
@@ -261,8 +259,7 @@ const proxyTraps = {
261
259
  },
262
260
  has(target, property) {
263
261
  if (property === $RAW || property === solidJs.$PROXY || property === solidJs.$TRACK || property === $NODE || property === "__proto__") return true;
264
- const tracked = getDataNodes(target)[property];
265
- tracked && tracked();
262
+ this.get(target, property, target);
266
263
  return property in target;
267
264
  },
268
265
  set(target, property, value) {
@@ -438,7 +435,14 @@ function produce(fn) {
438
435
  };
439
436
  }
440
437
 
438
+ const DEV = {
439
+ $NAME,
440
+ $NODE,
441
+ isWrappable
442
+ } ;
443
+
441
444
  exports.$RAW = $RAW;
445
+ exports.DEV = DEV;
442
446
  exports.createMutable = createMutable;
443
447
  exports.createStore = createStore;
444
448
  exports.modifyMutable = modifyMutable;
package/store/dist/dev.js CHANGED
@@ -1,4 +1,4 @@
1
- import { DEV, $PROXY, $TRACK, getListener, batch, createSignal } from 'solid-js';
1
+ import { $PROXY, DEV as DEV$1, $TRACK, getListener, batch, createSignal } from 'solid-js';
2
2
 
3
3
  const $RAW = Symbol("store-raw"),
4
4
  $NODE = Symbol("store-node"),
@@ -112,8 +112,7 @@ const proxyTraps$1 = {
112
112
  },
113
113
  has(target, property) {
114
114
  if (property === $RAW || property === $PROXY || property === $TRACK || property === $NODE || property === "__proto__") return true;
115
- const tracked = getDataNodes(target)[property];
116
- tracked && tracked();
115
+ this.get(target, property, target);
117
116
  return property in target;
118
117
  },
119
118
  set() {
@@ -129,11 +128,10 @@ const proxyTraps$1 = {
129
128
  };
130
129
  function setProperty(state, property, value, deleting = false) {
131
130
  if (!deleting && state[property] === value) return;
132
- const prev = state[property];
133
- const len = state.length;
134
- if (value === undefined) {
135
- delete state[property];
136
- } else state[property] = value;
131
+ const prev = state[property],
132
+ len = state.length;
133
+ if (globalThis._$onStoreNodeUpdate) globalThis._$onStoreNodeUpdate(state, property, value, prev);
134
+ if (value === undefined) delete state[property];else state[property] = value;
137
135
  let nodes = getDataNodes(state),
138
136
  node;
139
137
  if (node = getDataNode(nodes, property, prev)) node.$(() => value);
@@ -210,10 +208,10 @@ function createStore(...[store, options]) {
210
208
  const unwrappedStore = unwrap(store || {});
211
209
  const isArray = Array.isArray(unwrappedStore);
212
210
  if (typeof unwrappedStore !== "object" && typeof unwrappedStore !== "function") throw new Error(`Unexpected type ${typeof unwrappedStore} received when initializing 'createStore'. Expected an object.`);
213
- const wrappedStore = wrap$1(unwrappedStore, (options && options.name || DEV.hashValue(unwrappedStore)));
211
+ const wrappedStore = wrap$1(unwrappedStore, (options && options.name || DEV$1.hashValue(unwrappedStore)));
214
212
  {
215
- const name = options && options.name || DEV.hashValue(unwrappedStore);
216
- DEV.registerGraph(name, {
213
+ const name = options && options.name || DEV$1.hashValue(unwrappedStore);
214
+ DEV$1.registerGraph(name, {
217
215
  value: unwrappedStore
218
216
  });
219
217
  }
@@ -257,8 +255,7 @@ const proxyTraps = {
257
255
  },
258
256
  has(target, property) {
259
257
  if (property === $RAW || property === $PROXY || property === $TRACK || property === $NODE || property === "__proto__") return true;
260
- const tracked = getDataNodes(target)[property];
261
- tracked && tracked();
258
+ this.get(target, property, target);
262
259
  return property in target;
263
260
  },
264
261
  set(target, property, value) {
@@ -305,10 +302,10 @@ function wrap(value, name) {
305
302
  function createMutable(state, options) {
306
303
  const unwrappedStore = unwrap(state || {});
307
304
  if (typeof unwrappedStore !== "object" && typeof unwrappedStore !== "function") throw new Error(`Unexpected type ${typeof unwrappedStore} received when initializing 'createMutable'. Expected an object.`);
308
- const wrappedStore = wrap(unwrappedStore, (options && options.name || DEV.hashValue(unwrappedStore)));
305
+ const wrappedStore = wrap(unwrappedStore, (options && options.name || DEV$1.hashValue(unwrappedStore)));
309
306
  {
310
- const name = options && options.name || DEV.hashValue(unwrappedStore);
311
- DEV.registerGraph(name, {
307
+ const name = options && options.name || DEV$1.hashValue(unwrappedStore);
308
+ DEV$1.registerGraph(name, {
312
309
  value: unwrappedStore
313
310
  });
314
311
  }
@@ -434,4 +431,10 @@ function produce(fn) {
434
431
  };
435
432
  }
436
433
 
437
- export { $RAW, createMutable, createStore, modifyMutable, produce, reconcile, unwrap };
434
+ const DEV = {
435
+ $NAME,
436
+ $NODE,
437
+ isWrappable
438
+ } ;
439
+
440
+ export { $RAW, DEV, createMutable, createStore, modifyMutable, produce, reconcile, unwrap };
@@ -110,8 +110,10 @@ function produce(fn) {
110
110
  return state;
111
111
  };
112
112
  }
113
+ const DEV = undefined;
113
114
 
114
115
  exports.$RAW = $RAW;
116
+ exports.DEV = DEV;
115
117
  exports.createMutable = createMutable;
116
118
  exports.createStore = createStore;
117
119
  exports.isWrappable = isWrappable;
@@ -106,5 +106,6 @@ function produce(fn) {
106
106
  return state;
107
107
  };
108
108
  }
109
+ const DEV = undefined;
109
110
 
110
- export { $RAW, createMutable, createStore, isWrappable, produce, reconcile, setProperty, unwrap, updatePath };
111
+ export { $RAW, DEV, createMutable, createStore, isWrappable, produce, reconcile, setProperty, unwrap, updatePath };
@@ -113,8 +113,7 @@ const proxyTraps$1 = {
113
113
  },
114
114
  has(target, property) {
115
115
  if (property === $RAW || property === solidJs.$PROXY || property === solidJs.$TRACK || property === $NODE || property === "__proto__") return true;
116
- const tracked = getDataNodes(target)[property];
117
- tracked && tracked();
116
+ this.get(target, property, target);
118
117
  return property in target;
119
118
  },
120
119
  set() {
@@ -128,11 +127,9 @@ const proxyTraps$1 = {
128
127
  };
129
128
  function setProperty(state, property, value, deleting = false) {
130
129
  if (!deleting && state[property] === value) return;
131
- const prev = state[property];
132
- const len = state.length;
133
- if (value === undefined) {
134
- delete state[property];
135
- } else state[property] = value;
130
+ const prev = state[property],
131
+ len = state.length;
132
+ if (value === undefined) delete state[property];else state[property] = value;
136
133
  let nodes = getDataNodes(state),
137
134
  node;
138
135
  if (node = getDataNode(nodes, property, prev)) node.$(() => value);
@@ -249,8 +246,7 @@ const proxyTraps = {
249
246
  },
250
247
  has(target, property) {
251
248
  if (property === $RAW || property === solidJs.$PROXY || property === solidJs.$TRACK || property === $NODE || property === "__proto__") return true;
252
- const tracked = getDataNodes(target)[property];
253
- tracked && tracked();
249
+ this.get(target, property, target);
254
250
  return property in target;
255
251
  },
256
252
  set(target, property, value) {
@@ -416,7 +412,10 @@ function produce(fn) {
416
412
  };
417
413
  }
418
414
 
415
+ const DEV = undefined;
416
+
419
417
  exports.$RAW = $RAW;
418
+ exports.DEV = DEV;
420
419
  exports.createMutable = createMutable;
421
420
  exports.createStore = createStore;
422
421
  exports.modifyMutable = modifyMutable;
@@ -109,8 +109,7 @@ const proxyTraps$1 = {
109
109
  },
110
110
  has(target, property) {
111
111
  if (property === $RAW || property === $PROXY || property === $TRACK || property === $NODE || property === "__proto__") return true;
112
- const tracked = getDataNodes(target)[property];
113
- tracked && tracked();
112
+ this.get(target, property, target);
114
113
  return property in target;
115
114
  },
116
115
  set() {
@@ -124,11 +123,9 @@ const proxyTraps$1 = {
124
123
  };
125
124
  function setProperty(state, property, value, deleting = false) {
126
125
  if (!deleting && state[property] === value) return;
127
- const prev = state[property];
128
- const len = state.length;
129
- if (value === undefined) {
130
- delete state[property];
131
- } else state[property] = value;
126
+ const prev = state[property],
127
+ len = state.length;
128
+ if (value === undefined) delete state[property];else state[property] = value;
132
129
  let nodes = getDataNodes(state),
133
130
  node;
134
131
  if (node = getDataNode(nodes, property, prev)) node.$(() => value);
@@ -245,8 +242,7 @@ const proxyTraps = {
245
242
  },
246
243
  has(target, property) {
247
244
  if (property === $RAW || property === $PROXY || property === $TRACK || property === $NODE || property === "__proto__") return true;
248
- const tracked = getDataNodes(target)[property];
249
- tracked && tracked();
245
+ this.get(target, property, target);
250
246
  return property in target;
251
247
  },
252
248
  set(target, property, value) {
@@ -412,4 +408,6 @@ function produce(fn) {
412
408
  };
413
409
  }
414
410
 
415
- export { $RAW, createMutable, createStore, modifyMutable, produce, reconcile, unwrap };
411
+ const DEV = undefined;
412
+
413
+ export { $RAW, DEV, createMutable, createStore, modifyMutable, produce, reconcile, unwrap };
@@ -2,3 +2,9 @@ export { createStore, unwrap, $RAW } from "./store.js";
2
2
  export type { Store, SetStoreFunction, NotWrappable, SolidStore, StoreNode, StoreSetter, StorePathRange, ArrayFilterFn, Part, DeepReadonly, DeepMutable } from "./store.js";
3
3
  export * from "./mutable.js";
4
4
  export * from "./modifiers.js";
5
+ import { $NAME, $NODE, isWrappable } from "./store.js";
6
+ export declare const DEV: {
7
+ readonly $NAME: typeof $NAME;
8
+ readonly $NODE: typeof $NODE;
9
+ readonly isWrappable: typeof isWrappable;
10
+ } | undefined;
@@ -12,4 +12,5 @@ declare type ReconcileOptions = {
12
12
  };
13
13
  export declare function reconcile<T extends U, U>(value: T, options?: ReconcileOptions): (state: U) => T;
14
14
  export declare function produce<T>(fn: (state: T) => void): (state: T) => T;
15
+ export declare const DEV: undefined;
15
16
  export {};
@@ -1,5 +1,18 @@
1
1
  export declare const $RAW: unique symbol, $NODE: unique symbol, $NAME: unique symbol;
2
- export declare type StoreNode = Record<PropertyKey, any>;
2
+ declare global {
3
+ var _$onStoreNodeUpdate: OnStoreNodeUpdate | undefined;
4
+ }
5
+ declare type DataNode = {
6
+ (): any;
7
+ $(value?: any): void;
8
+ };
9
+ declare type DataNodes = Record<PropertyKey, DataNode>;
10
+ export declare type OnStoreNodeUpdate = (state: StoreNode, property: PropertyKey, value: StoreNode | NotWrappable, prev: StoreNode | NotWrappable) => void;
11
+ export interface StoreNode {
12
+ [$NAME]?: string;
13
+ [$NODE]?: DataNodes;
14
+ [key: PropertyKey]: any;
15
+ }
3
16
  export declare namespace SolidStore {
4
17
  interface Unwrappable {
5
18
  }
@@ -7,9 +20,20 @@ export declare namespace SolidStore {
7
20
  export declare type NotWrappable = string | number | bigint | symbol | boolean | Function | null | undefined | SolidStore.Unwrappable[keyof SolidStore.Unwrappable];
8
21
  export declare type Store<T> = T;
9
22
  export declare function isWrappable<T>(obj: T | NotWrappable): obj is T;
23
+ /**
24
+ * Returns the underlying data in the store without a proxy.
25
+ * @param item store proxy object
26
+ * @example
27
+ * ```js
28
+ * const initial = {z...};
29
+ * const [state, setState] = createStore(initial);
30
+ * initial === state; // => false
31
+ * initial === unwrap(state); // => true
32
+ * ```
33
+ */
10
34
  export declare function unwrap<T>(item: T, set?: Set<unknown>): T;
11
- export declare function getDataNodes(target: StoreNode): any;
12
- export declare function getDataNode(nodes: Record<string, any>, property: string | symbol, value: any): any;
35
+ export declare function getDataNodes(target: StoreNode): DataNodes;
36
+ export declare function getDataNode(nodes: DataNodes, property: PropertyKey, value: any): DataNode;
13
37
  export declare function proxyDescriptor(target: StoreNode, property: PropertyKey): PropertyDescriptor | undefined;
14
38
  export declare function trackSelf(target: StoreNode): void;
15
39
  export declare function ownKeys(target: StoreNode): (string | symbol)[];
@@ -9,8 +9,8 @@ export declare var Owner: Owner | null;
9
9
  export declare let Transition: TransitionState | null;
10
10
  declare let ExternalSourceFactory: ExternalSourceFactory | null;
11
11
  declare global {
12
- var _$afterUpdate: () => void;
13
- var _$afterCreateRoot: (root: Owner) => void;
12
+ var _$afterUpdate: (() => void) | undefined;
13
+ var _$afterCreateRoot: ((root: Owner) => void) | undefined;
14
14
  }
15
15
  export interface SignalState<T> {
16
16
  value?: T;
@@ -103,7 +103,7 @@ function writeProp(cur, accessor) {
103
103
  case undefined:
104
104
  BUFFER.push("Object.assign(Object.create(null),");
105
105
  writeObject(cur);
106
- BUFFER.push("))");
106
+ BUFFER.push(")");
107
107
  break;
108
108
  default:
109
109
  return false;
@@ -638,7 +638,7 @@ function generateHydrationScript({
638
638
  eventNames = ["click", "input"],
639
639
  nonce
640
640
  } = {}) {
641
- return `<script${nonce ? ` nonce="${nonce}"` : ""}>var e,t;e=window._$HY||(_$HY={events:[],completed:new WeakSet,r:{},fe(){},init(e,t){_$HY.r[e]=[new Promise(((e,o)=>t=e)),t]},set(e,t,o){(o=_$HY.r[e])&&o[1](t),_$HY.r[e]=[t]},unset(e){delete _$HY.r[e]},load:e=>_$HY.r[e]}),t=e=>e&&e.hasAttribute&&(e.hasAttribute("data-hk")?e:t(e.host&&e.host instanceof Node?e.host:e.parentNode)),["${eventNames.join('", "')}"].forEach((o=>document.addEventListener(o,(o=>{let s=o.composedPath&&o.composedPath()[0]||o.target,a=t(s);a&&!e.completed.has(a)&&e.events.push([a,o])}))));</script><!--xs-->`;
641
+ return `<script${nonce ? ` nonce="${nonce}"` : ""}>(e=>{let t=e=>e&&e.hasAttribute&&(e.hasAttribute("data-hk")?e:t(e.host&&e.host instanceof Node?e.host:e.parentNode));["${eventNames.join('", "')}"].forEach((o=>document.addEventListener(o,(o=>{let s=o.composedPath&&o.composedPath()[0]||o.target,a=t(s);a&&!e.completed.has(a)&&e.events.push([a,o])}))))})(window._$HY||(_$HY={events:[],completed:new WeakSet,r:{},fe(){},init(e,t){_$HY.r[e]=[new Promise((e=>t=e)),t]},set(e,t,o){(o=_$HY.r[e])&&o[1](t),_$HY.r[e]=[t]},unset(e){delete _$HY.r[e]},load:e=>_$HY.r[e]}));</script><!--xs-->`;
642
642
  }
643
643
  function Hydration(props) {
644
644
  if (!solidJs.sharedConfig.context.noHydrate) return props.children;
@@ -871,4 +871,5 @@ exports.ssrElement = ssrElement;
871
871
  exports.ssrHydrationKey = ssrHydrationKey;
872
872
  exports.ssrSpread = ssrSpread;
873
873
  exports.ssrStyle = ssrStyle;
874
+ exports.stringify = stringify;
874
875
  exports.useAssets = useAssets;
@@ -100,7 +100,7 @@ function writeProp(cur, accessor) {
100
100
  case undefined:
101
101
  BUFFER.push("Object.assign(Object.create(null),");
102
102
  writeObject(cur);
103
- BUFFER.push("))");
103
+ BUFFER.push(")");
104
104
  break;
105
105
  default:
106
106
  return false;
@@ -635,7 +635,7 @@ function generateHydrationScript({
635
635
  eventNames = ["click", "input"],
636
636
  nonce
637
637
  } = {}) {
638
- return `<script${nonce ? ` nonce="${nonce}"` : ""}>var e,t;e=window._$HY||(_$HY={events:[],completed:new WeakSet,r:{},fe(){},init(e,t){_$HY.r[e]=[new Promise(((e,o)=>t=e)),t]},set(e,t,o){(o=_$HY.r[e])&&o[1](t),_$HY.r[e]=[t]},unset(e){delete _$HY.r[e]},load:e=>_$HY.r[e]}),t=e=>e&&e.hasAttribute&&(e.hasAttribute("data-hk")?e:t(e.host&&e.host instanceof Node?e.host:e.parentNode)),["${eventNames.join('", "')}"].forEach((o=>document.addEventListener(o,(o=>{let s=o.composedPath&&o.composedPath()[0]||o.target,a=t(s);a&&!e.completed.has(a)&&e.events.push([a,o])}))));</script><!--xs-->`;
638
+ return `<script${nonce ? ` nonce="${nonce}"` : ""}>(e=>{let t=e=>e&&e.hasAttribute&&(e.hasAttribute("data-hk")?e:t(e.host&&e.host instanceof Node?e.host:e.parentNode));["${eventNames.join('", "')}"].forEach((o=>document.addEventListener(o,(o=>{let s=o.composedPath&&o.composedPath()[0]||o.target,a=t(s);a&&!e.completed.has(a)&&e.events.push([a,o])}))))})(window._$HY||(_$HY={events:[],completed:new WeakSet,r:{},fe(){},init(e,t){_$HY.r[e]=[new Promise((e=>t=e)),t]},set(e,t,o){(o=_$HY.r[e])&&o[1](t),_$HY.r[e]=[t]},unset(e){delete _$HY.r[e]},load:e=>_$HY.r[e]}));</script><!--xs-->`;
639
639
  }
640
640
  function Hydration(props) {
641
641
  if (!sharedConfig.context.noHydrate) return props.children;
@@ -800,4 +800,4 @@ function Portal(props) {
800
800
  return "";
801
801
  }
802
802
 
803
- export { Assets, Dynamic, Hydration, HydrationScript, NoHydration, Portal, addEventListener, delegateEvents, escape, generateHydrationScript, getAssets, getHydrationKey, insert, isServer, pipeToNodeWritable, pipeToWritable, renderToStream, renderToString, renderToStringAsync, resolveSSRNode, spread, ssr, ssrAttribute, ssrClassList, ssrElement, ssrHydrationKey, ssrSpread, ssrStyle, useAssets };
803
+ export { Assets, Dynamic, Hydration, HydrationScript, NoHydration, Portal, addEventListener, delegateEvents, escape, generateHydrationScript, getAssets, getHydrationKey, insert, isServer, pipeToNodeWritable, pipeToWritable, renderToStream, renderToString, renderToStringAsync, resolveSSRNode, spread, ssr, ssrAttribute, ssrClassList, ssrElement, ssrHydrationKey, ssrSpread, ssrStyle, stringify, useAssets };
@@ -49,6 +49,7 @@ export function createComponent<T>(Comp: (props: T) => JSX.Element, props: T): J
49
49
  export function mergeProps(...sources: unknown[]): unknown;
50
50
  export function getOwner(): unknown;
51
51
  export function generateHydrationScript(options: { nonce?: string; eventNames?: string[] }): string;
52
+ export function stringify(root: unknown): string;
52
53
 
53
54
  export function Hydration(props: { children?: JSX.Element }): JSX.Element;
54
55
  export function NoHydration(props: { children?: JSX.Element }): JSX.Element;