solid-js 1.7.9 → 1.7.11

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