solid-js 1.8.3 → 1.8.5

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 (50) hide show
  1. package/dist/dev.cjs +2 -2
  2. package/dist/dev.js +299 -534
  3. package/dist/server.js +75 -170
  4. package/dist/solid.cjs +2 -2
  5. package/dist/solid.js +257 -461
  6. package/h/dist/h.js +8 -34
  7. package/h/jsx-runtime/dist/jsx.js +1 -1
  8. package/h/jsx-runtime/types/index.d.ts +8 -11
  9. package/h/types/hyperscript.d.ts +11 -11
  10. package/html/dist/html.js +94 -216
  11. package/html/types/lit.d.ts +33 -45
  12. package/package.json +7 -3
  13. package/store/dist/dev.js +42 -114
  14. package/store/dist/server.js +8 -19
  15. package/store/dist/store.js +39 -105
  16. package/store/types/index.d.ts +7 -21
  17. package/store/types/modifiers.d.ts +3 -6
  18. package/store/types/mutable.d.ts +2 -5
  19. package/store/types/server.d.ts +4 -12
  20. package/store/types/store.d.ts +61 -218
  21. package/types/index.d.ts +9 -72
  22. package/types/reactive/array.d.ts +4 -12
  23. package/types/reactive/observable.d.ts +17 -25
  24. package/types/reactive/scheduler.d.ts +6 -9
  25. package/types/reactive/signal.d.ts +140 -228
  26. package/types/render/Suspense.d.ts +5 -5
  27. package/types/render/component.d.ts +31 -62
  28. package/types/render/flow.d.ts +31 -43
  29. package/types/render/hydration.d.ts +13 -13
  30. package/types/server/index.d.ts +2 -57
  31. package/types/server/reactive.d.ts +42 -73
  32. package/types/server/rendering.d.ts +95 -166
  33. package/universal/dist/dev.js +12 -28
  34. package/universal/dist/universal.js +12 -28
  35. package/universal/types/index.d.ts +1 -3
  36. package/universal/types/universal.d.ts +1 -0
  37. package/web/dist/dev.cjs +3 -0
  38. package/web/dist/dev.js +82 -617
  39. package/web/dist/server.cjs +17 -5
  40. package/web/dist/server.js +105 -178
  41. package/web/dist/storage.cjs +12 -0
  42. package/web/dist/storage.js +10 -0
  43. package/web/dist/web.cjs +3 -0
  44. package/web/dist/web.js +81 -611
  45. package/web/types/client.d.ts +7 -2
  46. package/web/types/core.d.ts +1 -10
  47. package/web/types/index.d.ts +10 -27
  48. package/web/types/server-mock.d.ts +32 -47
  49. package/web/types/server.d.ts +10 -1
  50. package/web/types/storage.d.ts +2 -0
@@ -1,4 +1,4 @@
1
- import { $PROXY, $TRACK, getListener, batch, createSignal } from "solid-js";
1
+ import { $PROXY, $TRACK, getListener, batch, createSignal } from 'solid-js';
2
2
 
3
3
  const $RAW = Symbol("store-raw"),
4
4
  $NODE = Symbol("store-node"),
@@ -8,7 +8,7 @@ function wrap$1(value) {
8
8
  let p = value[$PROXY];
9
9
  if (!p) {
10
10
  Object.defineProperty(value, $PROXY, {
11
- value: (p = new Proxy(value, proxyTraps$1))
11
+ value: p = new Proxy(value, proxyTraps$1)
12
12
  });
13
13
  if (!Array.isArray(value)) {
14
14
  const keys = Object.keys(value),
@@ -28,29 +28,20 @@ function wrap$1(value) {
28
28
  }
29
29
  function isWrappable(obj) {
30
30
  let proto;
31
- return (
32
- obj != null &&
33
- typeof obj === "object" &&
34
- (obj[$PROXY] ||
35
- !(proto = Object.getPrototypeOf(obj)) ||
36
- proto === Object.prototype ||
37
- Array.isArray(obj))
38
- );
31
+ return obj != null && typeof obj === "object" && (obj[$PROXY] || !(proto = Object.getPrototypeOf(obj)) || proto === Object.prototype || Array.isArray(obj));
39
32
  }
40
33
  function unwrap(item, set = new Set()) {
41
34
  let result, unwrapped, v, prop;
42
- if ((result = item != null && item[$RAW])) return result;
35
+ if (result = item != null && item[$RAW]) return result;
43
36
  if (!isWrappable(item) || set.has(item)) return item;
44
37
  if (Array.isArray(item)) {
45
- if (Object.isFrozen(item)) item = item.slice(0);
46
- else set.add(item);
38
+ if (Object.isFrozen(item)) item = item.slice(0);else set.add(item);
47
39
  for (let i = 0, l = item.length; i < l; i++) {
48
40
  v = item[i];
49
41
  if ((unwrapped = unwrap(v, set)) !== v) item[i] = unwrapped;
50
42
  }
51
43
  } else {
52
- if (Object.isFrozen(item)) item = Object.assign({}, item);
53
- else set.add(item);
44
+ if (Object.isFrozen(item)) item = Object.assign({}, item);else set.add(item);
54
45
  const keys = Object.keys(item),
55
46
  desc = Object.getOwnPropertyDescriptors(item);
56
47
  for (let i = 0, l = keys.length; i < l; i++) {
@@ -64,10 +55,9 @@ function unwrap(item, set = new Set()) {
64
55
  }
65
56
  function getNodes(target, symbol) {
66
57
  let nodes = target[symbol];
67
- if (!nodes)
68
- Object.defineProperty(target, symbol, {
69
- value: (nodes = Object.create(null))
70
- });
58
+ if (!nodes) Object.defineProperty(target, symbol, {
59
+ value: nodes = Object.create(null)
60
+ });
71
61
  return nodes;
72
62
  }
73
63
  function getNode(nodes, property, value) {
@@ -77,12 +67,11 @@ function getNode(nodes, property, value) {
77
67
  internal: true
78
68
  });
79
69
  s.$ = set;
80
- return (nodes[property] = s);
70
+ return nodes[property] = s;
81
71
  }
82
72
  function proxyDescriptor$1(target, property) {
83
73
  const desc = Reflect.getOwnPropertyDescriptor(target, property);
84
- if (!desc || desc.get || !desc.configurable || property === $PROXY || property === $NODE)
85
- return desc;
74
+ if (!desc || desc.get || !desc.configurable || property === $PROXY || property === $NODE) return desc;
86
75
  delete desc.value;
87
76
  delete desc.writable;
88
77
  desc.get = () => target[$PROXY][property];
@@ -109,25 +98,12 @@ const proxyTraps$1 = {
109
98
  if (property === $NODE || property === $HAS || property === "__proto__") return value;
110
99
  if (!tracked) {
111
100
  const desc = Object.getOwnPropertyDescriptor(target, property);
112
- if (
113
- getListener() &&
114
- (typeof value !== "function" || target.hasOwnProperty(property)) &&
115
- !(desc && desc.get)
116
- )
117
- value = getNode(nodes, property, value)();
101
+ if (getListener() && (typeof value !== "function" || target.hasOwnProperty(property)) && !(desc && desc.get)) value = getNode(nodes, property, value)();
118
102
  }
119
103
  return isWrappable(value) ? wrap$1(value) : value;
120
104
  },
121
105
  has(target, property) {
122
- if (
123
- property === $RAW ||
124
- property === $PROXY ||
125
- property === $TRACK ||
126
- property === $NODE ||
127
- property === $HAS ||
128
- property === "__proto__"
129
- )
130
- return true;
106
+ if (property === $RAW || property === $PROXY || property === $TRACK || property === $NODE || property === $HAS || property === "__proto__") return true;
131
107
  getListener() && getNode(getNodes(target, $HAS), property)();
132
108
  return property in target;
133
109
  },
@@ -153,7 +129,7 @@ function setProperty(state, property, value, deleting = false) {
153
129
  }
154
130
  let nodes = getNodes(state, $NODE),
155
131
  node;
156
- if ((node = getNode(nodes, property, prev))) node.$(() => value);
132
+ if (node = getNode(nodes, property, prev)) node.$(() => value);
157
133
  if (Array.isArray(state) && state.length !== len) {
158
134
  for (let i = state.length; i < len; i++) (node = nodes[i]) && node.$();
159
135
  (node = getNode(nodes, "length", len)) && node.$(state.length);
@@ -199,7 +175,11 @@ function updatePath(current, path, traversed = []) {
199
175
  }
200
176
  return;
201
177
  } else if (isArray && partType === "object") {
202
- const { from = 0, to = current.length - 1, by = 1 } = part;
178
+ const {
179
+ from = 0,
180
+ to = current.length - 1,
181
+ by = 1
182
+ } = part;
203
183
  for (let i = from; i <= to; i += by) {
204
184
  updatePath(current, [i].concat(path), traversed);
205
185
  }
@@ -218,7 +198,7 @@ function updatePath(current, path, traversed = []) {
218
198
  }
219
199
  if (part === undefined && value == undefined) return;
220
200
  value = unwrap(value);
221
- if (part === undefined || (isWrappable(prev) && isWrappable(value) && !Array.isArray(value))) {
201
+ if (part === undefined || isWrappable(prev) && isWrappable(value) && !Array.isArray(value)) {
222
202
  mergeStoreNode(prev, value);
223
203
  } else setProperty(current, part, value);
224
204
  }
@@ -228,9 +208,7 @@ function createStore(...[store, options]) {
228
208
  const wrappedStore = wrap$1(unwrappedStore);
229
209
  function setStore(...args) {
230
210
  batch(() => {
231
- isArray && args.length === 1
232
- ? updateArray(unwrappedStore, args[0])
233
- : updatePath(unwrappedStore, args);
211
+ isArray && args.length === 1 ? updateArray(unwrappedStore, args[0]) : updatePath(unwrappedStore, args);
234
212
  });
235
213
  }
236
214
  return [wrappedStore, setStore];
@@ -238,19 +216,11 @@ function createStore(...[store, options]) {
238
216
 
239
217
  function proxyDescriptor(target, property) {
240
218
  const desc = Reflect.getOwnPropertyDescriptor(target, property);
241
- if (
242
- !desc ||
243
- desc.get ||
244
- desc.set ||
245
- !desc.configurable ||
246
- property === $PROXY ||
247
- property === $NODE
248
- )
249
- return desc;
219
+ if (!desc || desc.get || desc.set || !desc.configurable || property === $PROXY || property === $NODE) return desc;
250
220
  delete desc.value;
251
221
  delete desc.writable;
252
222
  desc.get = () => target[$PROXY][property];
253
- desc.set = v => (target[$PROXY][property] = v);
223
+ desc.set = v => target[$PROXY][property] = v;
254
224
  return desc;
255
225
  }
256
226
  const proxyTraps = {
@@ -268,24 +238,14 @@ const proxyTraps = {
268
238
  if (!tracked) {
269
239
  const desc = Object.getOwnPropertyDescriptor(target, property);
270
240
  const isFunction = typeof value === "function";
271
- if (getListener() && (!isFunction || target.hasOwnProperty(property)) && !(desc && desc.get))
272
- value = getNode(nodes, property, value)();
273
- else if (value != null && isFunction && value === Array.prototype[property]) {
241
+ if (getListener() && (!isFunction || target.hasOwnProperty(property)) && !(desc && desc.get)) value = getNode(nodes, property, value)();else if (value != null && isFunction && value === Array.prototype[property]) {
274
242
  return (...args) => batch(() => Array.prototype[property].apply(receiver, args));
275
243
  }
276
244
  }
277
245
  return isWrappable(value) ? wrap(value) : value;
278
246
  },
279
247
  has(target, property) {
280
- if (
281
- property === $RAW ||
282
- property === $PROXY ||
283
- property === $TRACK ||
284
- property === $NODE ||
285
- property === $HAS ||
286
- property === "__proto__"
287
- )
288
- return true;
248
+ if (property === $RAW || property === $PROXY || property === $TRACK || property === $NODE || property === $HAS || property === "__proto__") return true;
289
249
  getListener() && getNode(getNodes(target, $HAS), property)();
290
250
  return property in target;
291
251
  },
@@ -304,7 +264,7 @@ function wrap(value) {
304
264
  let p = value[$PROXY];
305
265
  if (!p) {
306
266
  Object.defineProperty(value, $PROXY, {
307
- value: (p = new Proxy(value, proxyTraps))
267
+ value: p = new Proxy(value, proxyTraps)
308
268
  });
309
269
  const keys = Object.keys(value),
310
270
  desc = Object.getOwnPropertyDescriptors(value);
@@ -340,39 +300,19 @@ const $ROOT = Symbol("store-root");
340
300
  function applyState(target, parent, property, merge, key) {
341
301
  const previous = parent[property];
342
302
  if (target === previous) return;
343
- if (
344
- property !== $ROOT &&
345
- (!isWrappable(target) || !isWrappable(previous) || (key && target[key] !== previous[key]))
346
- ) {
303
+ if (property !== $ROOT && (!isWrappable(target) || !isWrappable(previous) || key && target[key] !== previous[key])) {
347
304
  setProperty(parent, property, target);
348
305
  return;
349
306
  }
350
307
  if (Array.isArray(target)) {
351
- if (
352
- target.length &&
353
- previous.length &&
354
- (!merge || (key && target[0] && target[0][key] != null))
355
- ) {
308
+ if (target.length && previous.length && (!merge || key && target[0] && target[0][key] != null)) {
356
309
  let i, j, start, end, newEnd, item, newIndicesNext, keyVal;
357
- for (
358
- start = 0, end = Math.min(previous.length, target.length);
359
- start < end &&
360
- (previous[start] === target[start] ||
361
- (key && previous[start] && target[start] && previous[start][key] === target[start][key]));
362
- start++
363
- ) {
310
+ for (start = 0, end = Math.min(previous.length, target.length); start < end && (previous[start] === target[start] || key && previous[start] && target[start] && previous[start][key] === target[start][key]); start++) {
364
311
  applyState(target[start], previous, start, merge, key);
365
312
  }
366
313
  const temp = new Array(target.length),
367
314
  newIndices = new Map();
368
- for (
369
- end = previous.length - 1, newEnd = target.length - 1;
370
- end >= start &&
371
- newEnd >= start &&
372
- (previous[end] === target[newEnd] ||
373
- (key && previous[start] && target[start] && previous[end][key] === target[newEnd][key]));
374
- end--, newEnd--
375
- ) {
315
+ for (end = previous.length - 1, newEnd = target.length - 1; end >= start && newEnd >= start && (previous[end] === target[newEnd] || key && previous[start] && target[start] && previous[end][key] === target[newEnd][key]); end--, newEnd--) {
376
316
  temp[newEnd] = previous[end];
377
317
  }
378
318
  if (start > newEnd || start > end) {
@@ -426,19 +366,16 @@ function applyState(target, parent, property, merge, key) {
426
366
  }
427
367
  }
428
368
  function reconcile(value, options = {}) {
429
- const { merge, key = "id" } = options,
369
+ const {
370
+ merge,
371
+ key = "id"
372
+ } = options,
430
373
  v = unwrap(value);
431
374
  return state => {
432
375
  if (!isWrappable(state) || !isWrappable(v)) return v;
433
- const res = applyState(
434
- v,
435
- {
436
- [$ROOT]: state
437
- },
438
- $ROOT,
439
- merge,
440
- key
441
- );
376
+ const res = applyState(v, {
377
+ [$ROOT]: state
378
+ }, $ROOT, merge, key);
442
379
  return res === undefined ? state : res;
443
380
  };
444
381
  }
@@ -448,10 +385,7 @@ const setterTraps = {
448
385
  if (property === $RAW) return target;
449
386
  const value = target[property];
450
387
  let proxy;
451
- return isWrappable(value)
452
- ? producers.get(value) ||
453
- (producers.set(value, (proxy = new Proxy(value, setterTraps))), proxy)
454
- : value;
388
+ return isWrappable(value) ? producers.get(value) || (producers.set(value, proxy = new Proxy(value, setterTraps)), proxy) : value;
455
389
  },
456
390
  set(target, property, value) {
457
391
  setProperty(target, property, unwrap(value));
@@ -467,7 +401,7 @@ function produce(fn) {
467
401
  if (isWrappable(state)) {
468
402
  let proxy;
469
403
  if (!(proxy = producers.get(state))) {
470
- producers.set(state, (proxy = new Proxy(state, setterTraps)));
404
+ producers.set(state, proxy = new Proxy(state, setterTraps));
471
405
  }
472
406
  fn(proxy);
473
407
  }
@@ -1,26 +1,12 @@
1
1
  export { $RAW, createStore, unwrap } from "./store.js";
2
- export type {
3
- ArrayFilterFn,
4
- DeepMutable,
5
- DeepReadonly,
6
- NotWrappable,
7
- Part,
8
- SetStoreFunction,
9
- SolidStore,
10
- Store,
11
- StoreNode,
12
- StorePathRange,
13
- StoreSetter
14
- } from "./store.js";
2
+ export type { ArrayFilterFn, DeepMutable, DeepReadonly, NotWrappable, Part, SetStoreFunction, SolidStore, Store, StoreNode, StorePathRange, StoreSetter } from "./store.js";
15
3
  export * from "./mutable.js";
16
4
  export * from "./modifiers.js";
17
5
  import { $NODE, isWrappable } from "./store.js";
18
- export declare const DEV:
19
- | {
20
- readonly $NODE: typeof $NODE;
21
- readonly isWrappable: typeof isWrappable;
22
- readonly hooks: {
6
+ export declare const DEV: {
7
+ readonly $NODE: typeof $NODE;
8
+ readonly isWrappable: typeof isWrappable;
9
+ readonly hooks: {
23
10
  onStoreNodeUpdate: import("./store.js").OnStoreNodeUpdate | null;
24
- };
25
- }
26
- | undefined;
11
+ };
12
+ } | undefined;
@@ -1,9 +1,6 @@
1
1
  export type ReconcileOptions = {
2
- key?: string | null;
3
- merge?: boolean;
2
+ key?: string | null;
3
+ merge?: boolean;
4
4
  };
5
- export declare function reconcile<T extends U, U>(
6
- value: T,
7
- options?: ReconcileOptions
8
- ): (state: U) => T;
5
+ export declare function reconcile<T extends U, U>(value: T, options?: ReconcileOptions): (state: U) => T;
9
6
  export declare function produce<T>(fn: (state: T) => void): (state: T) => T;
@@ -1,8 +1,5 @@
1
1
  import { StoreNode } from "./store.js";
2
- export declare function createMutable<T extends StoreNode>(
3
- state: T,
4
- options?: {
2
+ export declare function createMutable<T extends StoreNode>(state: T, options?: {
5
3
  name?: string;
6
- }
7
- ): T;
4
+ }): T;
8
5
  export declare function modifyMutable<T>(state: T, modifier: (state: T) => T): void;
@@ -2,23 +2,15 @@ import type { SetStoreFunction, Store } from "./store.js";
2
2
  export declare const $RAW: unique symbol;
3
3
  export declare function isWrappable(obj: any): boolean;
4
4
  export declare function unwrap<T>(item: T): T;
5
- export declare function setProperty(
6
- state: any,
7
- property: PropertyKey,
8
- value: any,
9
- force?: boolean
10
- ): void;
5
+ export declare function setProperty(state: any, property: PropertyKey, value: any, force?: boolean): void;
11
6
  export declare function updatePath(current: any, path: any[], traversed?: PropertyKey[]): void;
12
7
  export declare function createStore<T>(state: T | Store<T>): [Store<T>, SetStoreFunction<T>];
13
8
  export declare function createMutable<T>(state: T | Store<T>): T;
14
9
  type ReconcileOptions = {
15
- key?: string | null;
16
- merge?: boolean;
10
+ key?: string | null;
11
+ merge?: boolean;
17
12
  };
18
- export declare function reconcile<T extends U, U extends object>(
19
- value: T,
20
- options?: ReconcileOptions
21
- ): (state: U) => T;
13
+ export declare function reconcile<T extends U, U extends object>(value: T, options?: ReconcileOptions): (state: U) => T;
22
14
  export declare function produce<T>(fn: (state: T) => void): (state: T) => T;
23
15
  export declare const DEV: undefined;
24
16
  export {};