@solidjs/signals 2.0.0-rc.4 → 2.0.0-rc.6

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 (57) hide show
  1. package/dist/dev.js +1618 -232
  2. package/dist/node.cjs +2262 -1199
  3. package/dist/prod/boundaries.js +4 -1
  4. package/dist/prod/core/async.js +152 -101
  5. package/dist/prod/core/constants.js +55 -1
  6. package/dist/prod/core/core.js +305 -234
  7. package/dist/prod/core/effect.js +28 -28
  8. package/dist/prod/core/error.js +13 -1
  9. package/dist/prod/core/external.js +2 -2
  10. package/dist/prod/core/graph.js +27 -27
  11. package/dist/prod/core/heap.js +30 -30
  12. package/dist/prod/core/lanes.js +32 -32
  13. package/dist/prod/core/optimistic.js +57 -57
  14. package/dist/prod/core/owner.js +34 -34
  15. package/dist/prod/core/scheduler.js +346 -152
  16. package/dist/prod/core/verdict.js +122 -65
  17. package/dist/prod/index.js +3 -3
  18. package/dist/prod/map.js +106 -106
  19. package/dist/prod/signals.js +321 -26
  20. package/dist/prod/store/next/optimistic.js +363 -151
  21. package/dist/prod/store/next/patch.js +6 -6
  22. package/dist/prod/store/next/projection.js +25 -21
  23. package/dist/prod/store/next/store.js +223 -113
  24. package/dist/prod/store/store.js +2 -2
  25. package/dist/types/core/async.d.ts +2 -0
  26. package/dist/types/core/attribution-hooks.d.ts +11 -0
  27. package/dist/types/core/attribution.d.ts +57 -4
  28. package/dist/types/core/constants.d.ts +54 -0
  29. package/dist/types/core/core.d.ts +19 -20
  30. package/dist/types/core/dev.d.ts +8 -2
  31. package/dist/types/core/error.d.ts +9 -0
  32. package/dist/types/core/index.d.ts +2 -2
  33. package/dist/types/core/scheduler.d.ts +39 -0
  34. package/dist/types/core/types.d.ts +12 -0
  35. package/dist/types/index.d.ts +3 -3
  36. package/dist/types/signals.d.ts +108 -11
  37. package/dist/types/store/next/optimistic.d.ts +13 -10
  38. package/dist/types/store/next/projection.d.ts +1 -1
  39. package/dist/types/store/next/store.d.ts +22 -0
  40. package/dist/types/store/next/target.d.ts +25 -0
  41. package/dist/types-cjs/core/async.d.cts +2 -0
  42. package/dist/types-cjs/core/attribution-hooks.d.cts +11 -0
  43. package/dist/types-cjs/core/attribution.d.cts +57 -4
  44. package/dist/types-cjs/core/constants.d.cts +54 -0
  45. package/dist/types-cjs/core/core.d.cts +19 -20
  46. package/dist/types-cjs/core/dev.d.cts +8 -2
  47. package/dist/types-cjs/core/error.d.cts +9 -0
  48. package/dist/types-cjs/core/index.d.cts +2 -2
  49. package/dist/types-cjs/core/scheduler.d.cts +39 -0
  50. package/dist/types-cjs/core/types.d.cts +12 -0
  51. package/dist/types-cjs/index.d.cts +3 -3
  52. package/dist/types-cjs/signals.d.cts +108 -11
  53. package/dist/types-cjs/store/next/optimistic.d.cts +13 -10
  54. package/dist/types-cjs/store/next/projection.d.cts +1 -1
  55. package/dist/types-cjs/store/next/store.d.cts +22 -0
  56. package/dist/types-cjs/store/next/target.d.cts +25 -0
  57. package/package.json +1 -1
@@ -127,9 +127,9 @@ const UNSET = Symbol();
127
127
  let commitHookInstalled = false;
128
128
 
129
129
  function releaseBatch(e) {
130
- const t = e.Mt;
130
+ const t = e.wt;
131
131
  if (t === undefined) return;
132
- e.Mt = undefined;
132
+ e.wt = undefined;
133
133
  for (let e = 0; e < t.length; e++) pushLive(t[e]);
134
134
  }
135
135
 
@@ -145,8 +145,8 @@ function pushLive(e) {
145
145
  function push(e) {
146
146
  const t = activeTransition;
147
147
  if (t !== null) {
148
- let n = t.Mt;
149
- if (n === undefined) t.Mt = n = [];
148
+ let n = t.wt;
149
+ if (n === undefined) t.wt = n = [];
150
150
  n.push(e);
151
151
  return;
152
152
  }
@@ -165,8 +165,8 @@ function push(e) {
165
165
  const n = activeTransition;
166
166
  let l;
167
167
  if (n !== null) {
168
- let e = n.Mt;
169
- if (e === undefined) n.Mt = e = [];
168
+ let e = n.wt;
169
+ if (e === undefined) n.wt = e = [];
170
170
  l = e;
171
171
  } else {
172
172
  if (queue === null) queue = [];
@@ -12,11 +12,11 @@ import "../../core/effect.js";
12
12
 
13
13
  import { CONFIG_AUTO_DISPOSE } from "../../core/constants.js";
14
14
 
15
- import { $TARGET, markRawIngest, STORE_VALUE, setWriteOverride } from "../store.js";
15
+ import { $TARGET, STORE_VALUE, markRawIngest, setWriteOverride } from "../store.js";
16
16
 
17
17
  import { reconcileNextState } from "./reconcile.js";
18
18
 
19
- import { wrapNext, storeSetterNext } from "./store.js";
19
+ import { storeSetterNext, wrapNext } from "./store.js";
20
20
 
21
21
  /**
22
22
  * Store rewrite — projections (§7/§7b): a projection is a computed store.
@@ -56,6 +56,7 @@ import { wrapNext, storeSetterNext } from "./store.js";
56
56
  * driven from inside an enclosing authoritative-write scope (next-store
57
57
  * optimistic derives), and a hard `false` would clobber it mid-derive.
58
58
  */ function wrapDraft(e, t, r) {
59
+ const write = e => r ? r(e) : e();
59
60
  const i = {
60
61
  get(i, o) {
61
62
  let n;
@@ -84,31 +85,33 @@ import { wrapNext, storeSetterNext } from "./store.js";
84
85
  }
85
86
  return i;
86
87
  },
87
- set(i, o, n) {
88
+ set(r, i, o) {
88
89
  if (t && !t()) return true;
89
- const c = projectionWriteActive;
90
+ const n = projectionWriteActive;
90
91
  setWriteOverride(true);
91
92
  setProjectionWriteActive(true);
92
93
  try {
93
- e[o] = n;
94
- r?.();
94
+ write(() => {
95
+ e[i] = o;
96
+ });
95
97
  } finally {
96
98
  setWriteOverride(false);
97
- setProjectionWriteActive(c);
99
+ setProjectionWriteActive(n);
98
100
  }
99
101
  return true;
100
102
  },
101
- deleteProperty(i, o) {
103
+ deleteProperty(r, i) {
102
104
  if (t && !t()) return true;
103
- const n = projectionWriteActive;
105
+ const o = projectionWriteActive;
104
106
  setWriteOverride(true);
105
107
  setProjectionWriteActive(true);
106
108
  try {
107
- delete e[o];
108
- r?.();
109
+ write(() => {
110
+ delete e[i];
111
+ });
109
112
  } finally {
110
113
  setWriteOverride(false);
111
- setProjectionWriteActive(n);
114
+ setProjectionWriteActive(o);
112
115
  }
113
116
  return true;
114
117
  },
@@ -140,17 +143,18 @@ import { wrapNext, storeSetterNext } from "./store.js";
140
143
  if (i) i.configurable = true;
141
144
  return i;
142
145
  },
143
- defineProperty(i, o, n) {
146
+ defineProperty(r, i, o) {
144
147
  if (t && !t()) return true;
145
- const c = projectionWriteActive;
148
+ const n = projectionWriteActive;
146
149
  setWriteOverride(true);
147
150
  setProjectionWriteActive(true);
148
151
  try {
149
- Reflect.defineProperty(e, o, n);
150
- r?.();
152
+ write(() => {
153
+ Reflect.defineProperty(e, i, o);
154
+ });
151
155
  } finally {
152
156
  setWriteOverride(false);
153
- setProjectionWriteActive(c);
157
+ setProjectionWriteActive(n);
154
158
  }
155
159
  return true;
156
160
  }
@@ -211,8 +215,8 @@ function runProjectionComputedNext(e, t, r, i, o) {
211
215
  // for the whole first flight — the derive works a detached shadow of the
212
216
  // seed so draft writes cannot tear through to readers (#2988). Every commit
213
217
  // point reconciles the shadow through the normal commit path.
214
- const u = n.Ie ? JSON.parse(JSON.stringify(e[$TARGET][STORE_VALUE])) : null;
215
- const l = wrapDraft(e, () => !c || n.o?.Ee === s, o);
218
+ const u = n.Ne ? JSON.parse(JSON.stringify(e[$TARGET][STORE_VALUE])) : null;
219
+ const l = wrapDraft(e, () => !c || n.o?.Ie === s, o);
216
220
  storeSetterNext(l, o => {
217
221
  s = t(u ?? o);
218
222
  c = true;
@@ -223,10 +227,10 @@ function runProjectionComputedNext(e, t, r, i, o) {
223
227
  if (u && (t === undefined || t === u)) t = JSON.parse(JSON.stringify(u));
224
228
  if (t === o || t === undefined) return;
225
229
  const write = () => storeSetterNext(e, e => reconcileNextState(t, e, r, true), false);
226
- i ? i(write) : write();
230
+ i ? i(write, t) : write();
227
231
  };
228
232
  const l = handleAsync(n, s, commit);
229
- if (!n.Ie) commit(l);
233
+ if (!n.Ne) commit(l);
230
234
  }, false);
231
235
  return n;
232
236
  }