@tanstack/solid-query-devtools 6.0.0-alpha.0 → 6.0.0-alpha.1

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/build/dev.jsx CHANGED
@@ -1,8 +1,8 @@
1
- // ../../node_modules/.pnpm/@solidjs+web@2.0.0-beta.2_@solidjs+signals@0.12.0_solid-js@2.0.0-beta.2/node_modules/@solidjs/web/dist/dev.js
2
- import { createRenderEffect, createMemo as createMemo$1, sharedConfig, untrack as untrack2, runWithOwner, flatten, createRoot, omit, $DEVCOMP, enableHydration, setOnUnhandledAsync } from "solid-js";
1
+ // ../../node_modules/.pnpm/@solidjs+web@2.0.0-beta.4_@solidjs+signals@0.13.6_solid-js@2.0.0-beta.4/node_modules/@solidjs/web/dist/dev.js
2
+ import { createRenderEffect, createMemo as createMemo$1, sharedConfig, untrack as untrack2, runWithOwner, flatten, createRoot, omit, $DEVCOMP, enableHydration, enforceLoadingBoundary } from "solid-js";
3
3
  import { Errored, For, Hydration, Loading, Match, NoHydration, Show, Switch, createComponent, getOwner, merge, untrack as untrack3 } from "solid-js";
4
4
 
5
- // ../../node_modules/.pnpm/@solidjs+signals@0.12.0/node_modules/@solidjs/signals/dist/dev.js
5
+ // ../../node_modules/.pnpm/@solidjs+signals@0.13.6/node_modules/@solidjs/signals/dist/dev.js
6
6
  var NotReadyError = class extends Error {
7
7
  source;
8
8
  constructor(source) {
@@ -114,7 +114,10 @@ var clock = 0;
114
114
  var activeTransition = null;
115
115
  var scheduled = false;
116
116
  var projectionWriteActive = false;
117
- var _onUnhandledAsync = null;
117
+ var inTrackedQueueCallback = false;
118
+ var _enforceLoadingBoundary = false;
119
+ var _hitUnhandledAsync = false;
120
+ var stashedOptimisticReads = null;
118
121
  function runLaneEffects(type) {
119
122
  for (const lane of activeLanes) {
120
123
  if (lane._mergedInto || lane._pendingAsync.size > 0) continue;
@@ -125,6 +128,65 @@ function runLaneEffects(type) {
125
128
  }
126
129
  }
127
130
  }
131
+ function queueStashedOptimisticEffects(node) {
132
+ for (let s = node._subs; s !== null; s = s._nextSub) {
133
+ const sub = s._sub;
134
+ if (!sub._type) continue;
135
+ if (sub._type === EFFECT_TRACKED) {
136
+ if (!sub._modified) {
137
+ sub._modified = true;
138
+ sub._queue.enqueue(EFFECT_USER, sub._run);
139
+ }
140
+ continue;
141
+ }
142
+ const queue = sub._flags & REACTIVE_ZOMBIE ? zombieQueue : dirtyQueue;
143
+ if (queue._min > sub._height) queue._min = sub._height;
144
+ insertIntoHeap(sub, queue);
145
+ }
146
+ }
147
+ function mergeTransitionState(target, outgoing) {
148
+ outgoing._done = target;
149
+ target._actions.push(...outgoing._actions);
150
+ for (const lane of activeLanes) {
151
+ if (lane._transition === outgoing) lane._transition = target;
152
+ }
153
+ target._optimisticNodes.push(...outgoing._optimisticNodes);
154
+ for (const store of outgoing._optimisticStores) target._optimisticStores.add(store);
155
+ for (const node of outgoing._asyncNodes) {
156
+ if (!target._asyncNodes.includes(node)) target._asyncNodes.push(node);
157
+ }
158
+ }
159
+ function resolveOptimisticNodes(nodes) {
160
+ for (let i = 0; i < nodes.length; i++) {
161
+ const node = nodes[i];
162
+ node._optimisticLane = void 0;
163
+ if (node._pendingValue !== NOT_PENDING) {
164
+ node._value = node._pendingValue;
165
+ node._pendingValue = NOT_PENDING;
166
+ }
167
+ const prevOverride = node._overrideValue;
168
+ node._overrideValue = NOT_PENDING;
169
+ if (prevOverride !== NOT_PENDING && node._value !== prevOverride) insertSubs(node, true);
170
+ node._transition = null;
171
+ }
172
+ nodes.length = 0;
173
+ }
174
+ function cleanupCompletedLanes(completingTransition) {
175
+ for (const lane of activeLanes) {
176
+ const owned = completingTransition ? lane._transition === completingTransition : !lane._transition;
177
+ if (!owned) continue;
178
+ if (!lane._mergedInto) {
179
+ if (lane._effectQueues[0].length) runQueue(lane._effectQueues[0], EFFECT_RENDER);
180
+ if (lane._effectQueues[1].length) runQueue(lane._effectQueues[1], EFFECT_USER);
181
+ }
182
+ if (lane._source._optimisticLane === lane) lane._source._optimisticLane = void 0;
183
+ lane._pendingAsync.clear();
184
+ lane._effectQueues[0].length = 0;
185
+ lane._effectQueues[1].length = 0;
186
+ activeLanes.delete(lane);
187
+ signalLanes.delete(lane._source);
188
+ }
189
+ }
128
190
  function schedule() {
129
191
  if (scheduled) return;
130
192
  scheduled = true;
@@ -209,19 +271,32 @@ var GlobalQueue = class _GlobalQueue extends Queue {
209
271
  if (activeTransition) {
210
272
  const isComplete = transitionComplete(activeTransition);
211
273
  if (!isComplete) {
212
- let t = activeTransition;
274
+ const stashedTransition = activeTransition;
213
275
  runHeap(zombieQueue, _GlobalQueue._update);
214
276
  this._pendingNodes = [];
215
277
  this._optimisticNodes = [];
216
278
  this._optimisticStores = /* @__PURE__ */ new Set();
217
279
  runLaneEffects(EFFECT_RENDER);
218
280
  runLaneEffects(EFFECT_USER);
219
- this.stashQueues(activeTransition._queueStash);
281
+ this.stashQueues(stashedTransition._queueStash);
220
282
  clock++;
221
283
  scheduled = dirtyQueue._max >= dirtyQueue._min;
222
- reassignPendingTransition(activeTransition._pendingNodes);
284
+ reassignPendingTransition(stashedTransition._pendingNodes);
223
285
  activeTransition = null;
224
- finalizePureQueue(null, true);
286
+ if (!stashedTransition._actions.length && stashedTransition._optimisticNodes.length) {
287
+ stashedOptimisticReads = /* @__PURE__ */ new Set();
288
+ for (let i = 0; i < stashedTransition._optimisticNodes.length; i++) {
289
+ const node = stashedTransition._optimisticNodes[i];
290
+ if (node._fn || node._pureWrite) continue;
291
+ stashedOptimisticReads.add(node);
292
+ queueStashedOptimisticEffects(node);
293
+ }
294
+ }
295
+ try {
296
+ finalizePureQueue(null, true);
297
+ } finally {
298
+ stashedOptimisticReads = null;
299
+ }
225
300
  return;
226
301
  }
227
302
  this._pendingNodes !== activeTransition._pendingNodes && this._pendingNodes.push(...activeTransition._pendingNodes);
@@ -247,15 +322,16 @@ var GlobalQueue = class _GlobalQueue extends Queue {
247
322
  }
248
323
  notify(node, mask, flags, error) {
249
324
  if (mask & STATUS_PENDING) {
250
- if (_onUnhandledAsync && flags & STATUS_PENDING) {
251
- _onUnhandledAsync();
252
- }
253
325
  if (flags & STATUS_PENDING) {
254
326
  const actualError = error !== void 0 ? error : node._error;
255
- if (activeTransition && actualError && !activeTransition._asyncNodes.includes(actualError.source)) {
256
- activeTransition._asyncNodes.push(actualError.source);
257
- schedule();
327
+ if (activeTransition && actualError) {
328
+ const source = actualError.source;
329
+ if (!activeTransition._asyncNodes.includes(source)) {
330
+ activeTransition._asyncNodes.push(source);
331
+ schedule();
332
+ }
258
333
  }
334
+ if (_enforceLoadingBoundary) _hitUnhandledAsync = true;
259
335
  }
260
336
  return true;
261
337
  }
@@ -278,37 +354,35 @@ var GlobalQueue = class _GlobalQueue extends Queue {
278
354
  };
279
355
  } else if (transition) {
280
356
  const outgoing = activeTransition;
281
- outgoing._done = transition;
282
- transition._actions.push(...outgoing._actions);
283
- for (const lane of activeLanes) {
284
- if (lane._transition === outgoing) lane._transition = transition;
285
- }
286
- transition._optimisticNodes.push(...outgoing._optimisticNodes);
287
- for (const store of outgoing._optimisticStores) {
288
- transition._optimisticStores.add(store);
289
- }
357
+ mergeTransitionState(transition, outgoing);
290
358
  transitions.delete(outgoing);
291
359
  activeTransition = transition;
292
360
  }
293
361
  transitions.add(activeTransition);
294
362
  activeTransition._time = clock;
295
- for (let i = 0; i < this._pendingNodes.length; i++) {
296
- const n = this._pendingNodes[i];
297
- n._transition = activeTransition;
298
- activeTransition._pendingNodes.push(n);
363
+ if (this._pendingNodes !== activeTransition._pendingNodes) {
364
+ for (let i = 0; i < this._pendingNodes.length; i++) {
365
+ const node = this._pendingNodes[i];
366
+ node._transition = activeTransition;
367
+ activeTransition._pendingNodes.push(node);
368
+ }
369
+ this._pendingNodes = activeTransition._pendingNodes;
299
370
  }
300
- this._pendingNodes = activeTransition._pendingNodes;
301
- for (let i = 0; i < this._optimisticNodes.length; i++) {
302
- const node = this._optimisticNodes[i];
303
- node._transition = activeTransition;
304
- activeTransition._optimisticNodes.push(node);
371
+ if (this._optimisticNodes !== activeTransition._optimisticNodes) {
372
+ for (let i = 0; i < this._optimisticNodes.length; i++) {
373
+ const node = this._optimisticNodes[i];
374
+ node._transition = activeTransition;
375
+ activeTransition._optimisticNodes.push(node);
376
+ }
377
+ this._optimisticNodes = activeTransition._optimisticNodes;
305
378
  }
306
- this._optimisticNodes = activeTransition._optimisticNodes;
307
379
  for (const lane of activeLanes) {
308
380
  if (!lane._transition) lane._transition = activeTransition;
309
381
  }
310
- for (const store of this._optimisticStores) activeTransition._optimisticStores.add(store);
311
- this._optimisticStores = activeTransition._optimisticStores;
382
+ if (this._optimisticStores !== activeTransition._optimisticStores) {
383
+ for (const store of this._optimisticStores) activeTransition._optimisticStores.add(store);
384
+ this._optimisticStores = activeTransition._optimisticStores;
385
+ }
312
386
  }
313
387
  };
314
388
  function insertSubs(node, optimistic = false) {
@@ -339,36 +413,30 @@ function insertSubs(node, optimistic = false) {
339
413
  insertIntoHeap(s._sub, queue);
340
414
  }
341
415
  }
416
+ function commitPendingNodes() {
417
+ const pendingNodes = globalQueue._pendingNodes;
418
+ for (let i = 0; i < pendingNodes.length; i++) {
419
+ const n = pendingNodes[i];
420
+ if (n._pendingValue !== NOT_PENDING) {
421
+ n._value = n._pendingValue;
422
+ n._pendingValue = NOT_PENDING;
423
+ if (n._type && n._type !== EFFECT_TRACKED) n._modified = true;
424
+ }
425
+ if (!(n._statusFlags & STATUS_PENDING)) n._statusFlags &= ~STATUS_UNINITIALIZED;
426
+ if (n._fn) GlobalQueue._dispose(n, false, true);
427
+ }
428
+ pendingNodes.length = 0;
429
+ }
342
430
  function finalizePureQueue(completingTransition = null, incomplete = false) {
343
- let resolvePending = !incomplete;
431
+ const resolvePending = !incomplete;
432
+ if (resolvePending) commitPendingNodes();
344
433
  if (!incomplete) checkBoundaryChildren(globalQueue);
345
434
  if (dirtyQueue._max >= dirtyQueue._min) runHeap(dirtyQueue, GlobalQueue._update);
346
435
  if (resolvePending) {
347
- const pendingNodes = globalQueue._pendingNodes;
348
- for (let i = 0; i < pendingNodes.length; i++) {
349
- const n = pendingNodes[i];
350
- if (n._pendingValue !== NOT_PENDING) {
351
- n._value = n._pendingValue;
352
- n._pendingValue = NOT_PENDING;
353
- if (n._type && n._type !== EFFECT_TRACKED) n._modified = true;
354
- }
355
- if (!(n._statusFlags & STATUS_PENDING)) n._statusFlags &= ~STATUS_UNINITIALIZED;
356
- if (n._fn) GlobalQueue._dispose(n, false, true);
357
- }
358
- pendingNodes.length = 0;
359
- const optimisticNodes = completingTransition ? completingTransition._optimisticNodes : globalQueue._optimisticNodes;
360
- for (let i = 0; i < optimisticNodes.length; i++) {
361
- const n = optimisticNodes[i];
362
- const original = n._pendingValue;
363
- n._optimisticLane = void 0;
364
- if (original !== NOT_PENDING && n._value !== original) {
365
- n._value = original;
366
- insertSubs(n, true);
367
- }
368
- n._pendingValue = NOT_PENDING;
369
- n._transition = null;
370
- }
371
- optimisticNodes.length = 0;
436
+ commitPendingNodes();
437
+ resolveOptimisticNodes(
438
+ completingTransition ? completingTransition._optimisticNodes : globalQueue._optimisticNodes
439
+ );
372
440
  const optimisticStores = completingTransition ? completingTransition._optimisticStores : globalQueue._optimisticStores;
373
441
  if (GlobalQueue._clearOptimisticStore && optimisticStores.size) {
374
442
  for (const store of optimisticStores) {
@@ -377,20 +445,7 @@ function finalizePureQueue(completingTransition = null, incomplete = false) {
377
445
  optimisticStores.clear();
378
446
  schedule();
379
447
  }
380
- for (const lane of activeLanes) {
381
- const owned = completingTransition ? lane._transition === completingTransition : !lane._transition;
382
- if (!owned) continue;
383
- if (!lane._mergedInto) {
384
- if (lane._effectQueues[0].length) runQueue(lane._effectQueues[0], EFFECT_RENDER);
385
- if (lane._effectQueues[1].length) runQueue(lane._effectQueues[1], EFFECT_USER);
386
- }
387
- if (lane._source._optimisticLane === lane) lane._source._optimisticLane = void 0;
388
- lane._pendingAsync.clear();
389
- lane._effectQueues[0].length = 0;
390
- lane._effectQueues[1].length = 0;
391
- activeLanes.delete(lane);
392
- signalLanes.delete(lane._source);
393
- }
448
+ cleanupCompletedLanes(completingTransition);
394
449
  }
395
450
  }
396
451
  function checkBoundaryChildren(queue) {
@@ -406,8 +461,16 @@ function reassignPendingTransition(pendingNodes) {
406
461
  }
407
462
  var globalQueue = new GlobalQueue();
408
463
  function flush() {
464
+ if (globalQueue._running) {
465
+ if (inTrackedQueueCallback) {
466
+ throw new Error(
467
+ "Cannot call flush() from inside onSettled or createTrackedEffect. flush() is not reentrant there."
468
+ );
469
+ }
470
+ return;
471
+ }
409
472
  let count = 0;
410
- while (scheduled) {
473
+ while (scheduled || activeTransition) {
411
474
  if (++count === 1e5) throw new Error("Potential Infinite Loop Detected.");
412
475
  globalQueue.flush();
413
476
  }
@@ -426,6 +489,15 @@ function transitionComplete(transition) {
426
489
  break;
427
490
  }
428
491
  }
492
+ if (done) {
493
+ for (let i = 0; i < transition._optimisticNodes.length; i++) {
494
+ const node = transition._optimisticNodes[i];
495
+ if (hasActiveOverride(node) && "_statusFlags" in node && node._statusFlags & STATUS_PENDING && node._error instanceof NotReadyError && node._error.source !== node) {
496
+ done = false;
497
+ break;
498
+ }
499
+ }
500
+ }
429
501
  done && (transition._done = true);
430
502
  return done;
431
503
  }
@@ -461,7 +533,7 @@ function getOrCreateLane(signal) {
461
533
  };
462
534
  signalLanes.set(signal, lane);
463
535
  activeLanes.add(lane);
464
- signal._laneVersion = signal._overrideVersion || 0;
536
+ signal._overrideSinceLane = false;
465
537
  return lane;
466
538
  }
467
539
  function findLane(lane) {
@@ -486,8 +558,11 @@ function resolveLane(el) {
486
558
  el._optimisticLane = void 0;
487
559
  return void 0;
488
560
  }
561
+ function resolveTransition(el) {
562
+ return resolveLane(el)?._transition ?? el._transition;
563
+ }
489
564
  function hasActiveOverride(el) {
490
- return !!(el._optimistic && el._pendingValue !== NOT_PENDING);
565
+ return !!(el._overrideValue !== void 0 && el._overrideValue !== NOT_PENDING);
491
566
  }
492
567
  function assignOrMergeLane(el, sourceLane) {
493
568
  const sourceRoot = findLane(sourceLane);
@@ -510,6 +585,96 @@ function assignOrMergeLane(el, sourceLane) {
510
585
  }
511
586
  el._optimisticLane = sourceLane;
512
587
  }
588
+ function addPendingSource(el, source) {
589
+ if (el._pendingSource === source || el._pendingSources?.has(source)) return false;
590
+ if (!el._pendingSource) {
591
+ el._pendingSource = source;
592
+ return true;
593
+ }
594
+ if (!el._pendingSources) {
595
+ el._pendingSources = /* @__PURE__ */ new Set([el._pendingSource, source]);
596
+ } else {
597
+ el._pendingSources.add(source);
598
+ }
599
+ el._pendingSource = void 0;
600
+ return true;
601
+ }
602
+ function removePendingSource(el, source) {
603
+ if (el._pendingSource) {
604
+ if (el._pendingSource !== source) return false;
605
+ el._pendingSource = void 0;
606
+ return true;
607
+ }
608
+ if (!el._pendingSources?.delete(source)) return false;
609
+ if (el._pendingSources.size === 1) {
610
+ el._pendingSource = el._pendingSources.values().next().value;
611
+ el._pendingSources = void 0;
612
+ } else if (el._pendingSources.size === 0) {
613
+ el._pendingSources = void 0;
614
+ }
615
+ return true;
616
+ }
617
+ function clearPendingSources(el) {
618
+ el._pendingSource = void 0;
619
+ el._pendingSources?.clear();
620
+ el._pendingSources = void 0;
621
+ }
622
+ function setPendingError(el, source, error) {
623
+ if (!source) {
624
+ el._error = null;
625
+ return;
626
+ }
627
+ if (error instanceof NotReadyError && error.source === source) {
628
+ el._error = error;
629
+ return;
630
+ }
631
+ const current = el._error;
632
+ if (!(current instanceof NotReadyError) || current.source !== source) {
633
+ el._error = new NotReadyError(source);
634
+ }
635
+ }
636
+ function forEachDependent(el, fn) {
637
+ for (let s = el._subs; s !== null; s = s._nextSub) fn(s._sub);
638
+ for (let child = el._child; child !== null; child = child._nextChild) {
639
+ for (let s = child._subs; s !== null; s = s._nextSub) fn(s._sub);
640
+ }
641
+ }
642
+ function settlePendingSource(el) {
643
+ let scheduled2 = false;
644
+ const visited = /* @__PURE__ */ new Set();
645
+ const settle = (node) => {
646
+ if (visited.has(node) || !removePendingSource(node, el)) return;
647
+ visited.add(node);
648
+ node._time = clock;
649
+ const source = node._pendingSource ?? node._pendingSources?.values().next().value;
650
+ if (source) {
651
+ setPendingError(node, source);
652
+ updatePendingSignal(node);
653
+ } else {
654
+ node._statusFlags &= ~STATUS_PENDING;
655
+ setPendingError(node);
656
+ updatePendingSignal(node);
657
+ if (node._blocked) {
658
+ if (node._type === EFFECT_TRACKED) {
659
+ const tracked = node;
660
+ if (!tracked._modified) {
661
+ tracked._modified = true;
662
+ tracked._queue.enqueue(EFFECT_USER, tracked._run);
663
+ }
664
+ } else {
665
+ const queue = node._flags & REACTIVE_ZOMBIE ? zombieQueue : dirtyQueue;
666
+ if (queue._min > node._height) queue._min = node._height;
667
+ insertIntoHeap(node, queue);
668
+ }
669
+ scheduled2 = true;
670
+ }
671
+ node._blocked = false;
672
+ }
673
+ forEachDependent(node, settle);
674
+ };
675
+ forEachDependent(el, settle);
676
+ if (scheduled2) schedule();
677
+ }
513
678
  function handleAsync(el, result, setter) {
514
679
  const isObject = typeof result === "object" && result !== null;
515
680
  const iterator = isObject && untrack(() => result[Symbol.asyncIterator]);
@@ -522,22 +687,22 @@ function handleAsync(el, result, setter) {
522
687
  let syncValue;
523
688
  const handleError = (error) => {
524
689
  if (el._inFlight !== result) return;
525
- globalQueue.initTransition(el._transition);
690
+ globalQueue.initTransition(resolveTransition(el));
526
691
  notifyStatus(el, error instanceof NotReadyError ? STATUS_PENDING : STATUS_ERROR, error);
527
692
  el._time = clock;
528
693
  };
529
694
  const asyncWrite = (value, then) => {
530
695
  if (el._inFlight !== result) return;
531
696
  if (el._flags & (REACTIVE_DIRTY | REACTIVE_OPTIMISTIC_DIRTY)) return;
532
- globalQueue.initTransition(el._transition);
697
+ globalQueue.initTransition(resolveTransition(el));
533
698
  clearStatus(el);
534
699
  const lane = resolveLane(el);
535
700
  if (lane) lane._pendingAsync.delete(el);
536
701
  if (setter) setter(value);
537
- else if (el._optimistic) {
538
- const hadOverride = el._pendingValue !== NOT_PENDING;
539
- if (el._fn) el._pendingValue = value;
540
- if (!hadOverride) {
702
+ else if (el._overrideValue !== void 0) {
703
+ if (el._overrideValue !== void 0 && el._overrideValue !== NOT_PENDING)
704
+ el._pendingValue = value;
705
+ else {
541
706
  el._value = value;
542
707
  insertSubs(el);
543
708
  }
@@ -556,6 +721,7 @@ function handleAsync(el, result, setter) {
556
721
  } else {
557
722
  setSignal(el, () => value);
558
723
  }
724
+ settlePendingSource(el);
559
725
  schedule();
560
726
  flush();
561
727
  then?.();
@@ -575,7 +741,7 @@ function handleAsync(el, result, setter) {
575
741
  );
576
742
  isSync = false;
577
743
  if (!resolved) {
578
- globalQueue.initTransition(el._transition);
744
+ globalQueue.initTransition(resolveTransition(el));
579
745
  throw new NotReadyError(context);
580
746
  }
581
747
  }
@@ -609,41 +775,48 @@ function handleAsync(el, result, setter) {
609
775
  };
610
776
  const immediatelyDone = iterate();
611
777
  if (!hadSyncValue && !immediatelyDone) {
612
- globalQueue.initTransition(el._transition);
778
+ globalQueue.initTransition(resolveTransition(el));
613
779
  throw new NotReadyError(context);
614
780
  }
615
781
  }
616
782
  return syncValue;
617
783
  }
618
- function clearStatus(el) {
619
- el._statusFlags = el._statusFlags & STATUS_UNINITIALIZED;
620
- el._error = null;
784
+ function clearStatus(el, clearUninitialized = false) {
785
+ clearPendingSources(el);
786
+ el._blocked = false;
787
+ el._statusFlags = clearUninitialized ? 0 : el._statusFlags & STATUS_UNINITIALIZED;
788
+ setPendingError(el);
621
789
  updatePendingSignal(el);
622
790
  el._notifyStatus?.();
623
791
  }
624
792
  function notifyStatus(el, status, error, blockStatus, lane) {
625
793
  if (status === STATUS_ERROR && !(error instanceof StatusError) && !(error instanceof NotReadyError))
626
794
  error = new StatusError(el, error);
627
- const isSource = error instanceof NotReadyError && error.source === el;
628
- const isOptimisticBoundary = status === STATUS_PENDING && el._optimistic && !isSource;
795
+ const pendingSource = status === STATUS_PENDING && error instanceof NotReadyError ? error.source : void 0;
796
+ const isSource = pendingSource === el;
797
+ const isOptimisticBoundary = status === STATUS_PENDING && el._overrideValue !== void 0 && !isSource;
629
798
  const startsBlocking = isOptimisticBoundary && hasActiveOverride(el);
630
799
  if (!blockStatus) {
631
- el._statusFlags = status | (status !== STATUS_ERROR ? el._statusFlags & STATUS_UNINITIALIZED : 0);
632
- el._error = error;
800
+ if (status === STATUS_PENDING && pendingSource) {
801
+ addPendingSource(el, pendingSource);
802
+ el._statusFlags = STATUS_PENDING | el._statusFlags & STATUS_UNINITIALIZED;
803
+ setPendingError(el, pendingSource, error);
804
+ } else {
805
+ clearPendingSources(el);
806
+ el._statusFlags = status | (status !== STATUS_ERROR ? el._statusFlags & STATUS_UNINITIALIZED : 0);
807
+ el._error = error;
808
+ }
633
809
  updatePendingSignal(el);
634
810
  }
635
811
  if (lane && !blockStatus) {
636
812
  assignOrMergeLane(el, lane);
637
813
  }
638
- if (startsBlocking && activeTransition && error instanceof NotReadyError) {
639
- const source = error.source;
640
- if (!activeTransition._asyncNodes.includes(source)) {
641
- activeTransition._asyncNodes.push(source);
642
- }
643
- }
644
814
  const downstreamBlockStatus = blockStatus || startsBlocking;
645
815
  const downstreamLane = blockStatus || isOptimisticBoundary ? void 0 : lane;
646
816
  if (el._notifyStatus) {
817
+ if (blockStatus && status === STATUS_PENDING) {
818
+ return;
819
+ }
647
820
  if (downstreamBlockStatus) {
648
821
  el._notifyStatus(status, error);
649
822
  } else {
@@ -651,49 +824,15 @@ function notifyStatus(el, status, error, blockStatus, lane) {
651
824
  }
652
825
  return;
653
826
  }
654
- for (let s = el._subs; s !== null; s = s._nextSub) {
655
- s._sub._time = clock;
656
- if (s._sub._error !== error) {
657
- !s._sub._transition && globalQueue._pendingNodes.push(s._sub);
658
- notifyStatus(s._sub, status, error, downstreamBlockStatus, downstreamLane);
659
- }
660
- }
661
- for (let child = el._child; child !== null; child = child._nextChild) {
662
- for (let s = child._subs; s !== null; s = s._nextSub) {
663
- s._sub._time = clock;
664
- if (s._sub._error !== error) {
665
- !s._sub._transition && globalQueue._pendingNodes.push(s._sub);
666
- notifyStatus(s._sub, status, error, downstreamBlockStatus, downstreamLane);
667
- }
668
- }
669
- }
670
- }
671
- function unlinkSubs(link) {
672
- const dep = link._dep;
673
- const nextDep = link._nextDep;
674
- const nextSub = link._nextSub;
675
- const prevSub = link._prevSub;
676
- if (nextSub !== null) nextSub._prevSub = prevSub;
677
- else dep._subsTail = prevSub;
678
- if (prevSub !== null) prevSub._nextSub = nextSub;
679
- else {
680
- dep._subs = nextSub;
681
- if (nextSub === null) {
682
- dep._unobserved?.();
683
- dep._fn && !dep._preventAutoDisposal && !(dep._flags & REACTIVE_ZOMBIE) && unobserved(dep);
827
+ forEachDependent(el, (sub) => {
828
+ sub._time = clock;
829
+ if (status === STATUS_PENDING && pendingSource && sub._pendingSource !== pendingSource && !sub._pendingSources?.has(pendingSource) || status !== STATUS_PENDING && (sub._error !== error || sub._pendingSource || sub._pendingSources)) {
830
+ if (!downstreamBlockStatus && !sub._transition) globalQueue._pendingNodes.push(sub);
831
+ notifyStatus(sub, status, error, downstreamBlockStatus, downstreamLane);
684
832
  }
685
- }
686
- return nextDep;
687
- }
688
- function unobserved(el) {
689
- deleteFromHeap(el, el._flags & REACTIVE_ZOMBIE ? zombieQueue : dirtyQueue);
690
- let dep = el._deps;
691
- while (dep !== null) {
692
- dep = unlinkSubs(dep);
693
- }
694
- el._deps = null;
695
- disposeChildren(el, true);
833
+ });
696
834
  }
835
+ var externalSourceConfig = null;
697
836
  function markDisposal(el) {
698
837
  let child = el._firstChild;
699
838
  while (child) {
@@ -729,7 +868,6 @@ function disposeChildren(node, self = false, zombie) {
729
868
  node._pendingFirstChild = null;
730
869
  } else {
731
870
  node._firstChild = null;
732
- node._nextSibling = null;
733
871
  node._childCount = 0;
734
872
  }
735
873
  runDisposal(node, zombie);
@@ -747,7 +885,32 @@ function runDisposal(node, zombie) {
747
885
  }
748
886
  zombie ? node._pendingDisposal = null : node._disposal = null;
749
887
  }
750
- var leafEffectActive = false;
888
+ function unlinkSubs(link) {
889
+ const dep = link._dep;
890
+ const nextDep = link._nextDep;
891
+ const nextSub = link._nextSub;
892
+ const prevSub = link._prevSub;
893
+ if (nextSub !== null) nextSub._prevSub = prevSub;
894
+ else dep._subsTail = prevSub;
895
+ if (prevSub !== null) prevSub._nextSub = nextSub;
896
+ else {
897
+ dep._subs = nextSub;
898
+ if (nextSub === null) {
899
+ dep._unobserved?.();
900
+ dep._fn && !dep._preventAutoDisposal && !(dep._flags & REACTIVE_ZOMBIE) && unobserved(dep);
901
+ }
902
+ }
903
+ return nextDep;
904
+ }
905
+ function unobserved(el) {
906
+ deleteFromHeap(el, el._flags & REACTIVE_ZOMBIE ? zombieQueue : dirtyQueue);
907
+ let dep = el._deps;
908
+ while (dep !== null) {
909
+ dep = unlinkSubs(dep);
910
+ }
911
+ el._deps = null;
912
+ disposeChildren(el, true);
913
+ }
751
914
  GlobalQueue._update = recompute;
752
915
  GlobalQueue._dispose = disposeChildren;
753
916
  var tracking = false;
@@ -770,7 +933,7 @@ function recompute(el, create = false) {
770
933
  }
771
934
  }
772
935
  const isOptimisticDirty = !!(el._flags & REACTIVE_OPTIMISTIC_DIRTY);
773
- const hasOverride = hasActiveOverride(el);
936
+ const hasOverride = el._overrideValue !== void 0 && el._overrideValue !== NOT_PENDING;
774
937
  const wasPending = !!(el._statusFlags & STATUS_PENDING);
775
938
  const oldcontext = context;
776
939
  context = el;
@@ -793,7 +956,7 @@ function recompute(el, create = false) {
793
956
  }
794
957
  try {
795
958
  value = handleAsync(el, el._fn(value));
796
- clearStatus(el);
959
+ clearStatus(el, create);
797
960
  const resolvedLane = resolveLane(el);
798
961
  if (resolvedLane) {
799
962
  resolvedLane._pendingAsync.delete(el);
@@ -808,6 +971,7 @@ function recompute(el, create = false) {
808
971
  updatePendingSignal(lane._source);
809
972
  }
810
973
  }
974
+ if (e instanceof NotReadyError) el._blocked = true;
811
975
  notifyStatus(
812
976
  el,
813
977
  e instanceof NotReadyError ? STATUS_PENDING : STATUS_ERROR,
@@ -831,21 +995,21 @@ function recompute(el, create = false) {
831
995
  if (depsTail !== null) depsTail._nextDep = null;
832
996
  else el._deps = null;
833
997
  }
834
- const compareValue = hasOverride ? el._value : el._pendingValue === NOT_PENDING ? el._value : el._pendingValue;
998
+ const compareValue = hasOverride ? el._overrideValue : el._pendingValue === NOT_PENDING ? el._value : el._pendingValue;
835
999
  const valueChanged = !el._equals || !el._equals(compareValue, value);
836
1000
  if (valueChanged) {
837
- const prevVisible = hasOverride ? el._value : void 0;
838
- if (create || isEffect && activeTransition !== el._transition || isOptimisticDirty)
1001
+ const prevVisible = hasOverride ? el._overrideValue : void 0;
1002
+ if (create || isEffect && activeTransition !== el._transition || isOptimisticDirty) {
839
1003
  el._value = value;
840
- else el._pendingValue = value;
841
- if (hasOverride && !isOptimisticDirty && wasPending) {
842
- const ov = el._overrideVersion || 0;
843
- const lv = el._laneVersion || 0;
844
- if (ov <= lv) el._value = value;
845
- }
846
- if (!hasOverride || isOptimisticDirty || el._value !== prevVisible) {
1004
+ if (hasOverride && isOptimisticDirty) {
1005
+ el._overrideValue = value;
1006
+ el._pendingValue = value;
1007
+ }
1008
+ } else el._pendingValue = value;
1009
+ if (hasOverride && !isOptimisticDirty && wasPending && !el._overrideSinceLane)
1010
+ el._overrideValue = value;
1011
+ if (!hasOverride || isOptimisticDirty || el._overrideValue !== prevVisible)
847
1012
  insertSubs(el, isOptimisticDirty || hasOverride);
848
- }
849
1013
  } else if (hasOverride) {
850
1014
  el._pendingValue = value;
851
1015
  } else if (el._height != oldHeight) {
@@ -855,17 +1019,18 @@ function recompute(el, create = false) {
855
1019
  }
856
1020
  }
857
1021
  currentOptimisticLane = prevLane;
858
- (!create || el._statusFlags & STATUS_PENDING) && !el._transition && !(activeTransition && el._optimistic) && globalQueue._pendingNodes.push(el);
1022
+ (!create || el._statusFlags & STATUS_PENDING) && !el._transition && !(activeTransition && hasOverride) && globalQueue._pendingNodes.push(el);
859
1023
  el._transition && isEffect && activeTransition !== el._transition && runInTransition(el._transition, () => recompute(el));
860
1024
  }
861
1025
  var strictRead = false;
862
1026
  function untrack(fn, strictReadLabel) {
863
- if (!tracking && !strictRead && !strictReadLabel) return fn();
1027
+ if (!externalSourceConfig && !tracking && !strictRead && !strictReadLabel) return fn();
864
1028
  const prevTracking = tracking;
865
1029
  const prevStrictRead = strictRead;
866
1030
  tracking = false;
867
1031
  strictRead = strictReadLabel || false;
868
1032
  try {
1033
+ if (externalSourceConfig) return externalSourceConfig.untrack(fn);
869
1034
  return fn();
870
1035
  } finally {
871
1036
  tracking = prevTracking;
@@ -873,36 +1038,33 @@ function untrack(fn, strictReadLabel) {
873
1038
  }
874
1039
  }
875
1040
  function setSignal(el, v) {
876
- if (!el._pureWrite && !leafEffectActive && context && el._firewall !== context)
1041
+ if (!el._pureWrite && !context?._childrenForbidden && context && el._firewall !== context)
877
1042
  console.warn("A Signal was written to in an owned scope.");
878
1043
  if (el._transition && activeTransition !== el._transition)
879
1044
  globalQueue.initTransition(el._transition);
880
- const isOptimistic = el._optimistic && !projectionWriteActive;
881
- const currentValue = isOptimistic ? el._value : el._pendingValue === NOT_PENDING ? el._value : el._pendingValue;
1045
+ const isOptimistic = el._overrideValue !== void 0 && !projectionWriteActive;
1046
+ const hasOverride = el._overrideValue !== void 0 && el._overrideValue !== NOT_PENDING;
1047
+ const currentValue = isOptimistic ? hasOverride ? el._overrideValue : el._value : el._pendingValue === NOT_PENDING ? el._value : el._pendingValue;
882
1048
  if (typeof v === "function") v = v(currentValue);
883
1049
  const valueChanged = !el._equals || !el._equals(currentValue, v) || !!(el._statusFlags & STATUS_UNINITIALIZED);
884
1050
  if (!valueChanged) {
885
- if (isOptimistic && el._pendingValue !== NOT_PENDING && el._fn) {
1051
+ if (isOptimistic && hasOverride && el._fn) {
886
1052
  insertSubs(el, true);
887
1053
  schedule();
888
1054
  }
889
1055
  return v;
890
1056
  }
891
1057
  if (isOptimistic) {
892
- const alreadyTracked = globalQueue._optimisticNodes.includes(el);
893
- if (el._transition && alreadyTracked) {
894
- globalQueue.initTransition(el._transition);
895
- }
896
- if (el._pendingValue === NOT_PENDING) {
1058
+ const firstOverride = el._overrideValue === NOT_PENDING;
1059
+ if (!firstOverride) globalQueue.initTransition(resolveTransition(el));
1060
+ if (firstOverride) {
897
1061
  el._pendingValue = el._value;
898
- }
899
- if (!alreadyTracked) {
900
1062
  globalQueue._optimisticNodes.push(el);
901
1063
  }
902
- el._overrideVersion = (el._overrideVersion || 0) + 1;
1064
+ el._overrideSinceLane = true;
903
1065
  const lane = getOrCreateLane(el);
904
1066
  el._optimisticLane = lane;
905
- el._value = v;
1067
+ el._overrideValue = v;
906
1068
  } else {
907
1069
  if (el._pendingValue === NOT_PENDING) globalQueue._pendingNodes.push(el);
908
1070
  el._pendingValue = v;
@@ -918,7 +1080,11 @@ function setSignal(el, v) {
918
1080
  }
919
1081
  function computePendingState(el) {
920
1082
  const comp = el;
921
- if (el._optimistic && el._pendingValue !== NOT_PENDING) {
1083
+ const firewall = el._firewall;
1084
+ if (firewall && el._pendingValue !== NOT_PENDING) {
1085
+ return !firewall._inFlight && !(firewall._statusFlags & STATUS_PENDING);
1086
+ }
1087
+ if (el._overrideValue !== void 0 && el._overrideValue !== NOT_PENDING) {
922
1088
  if (comp._statusFlags & STATUS_PENDING && !(comp._statusFlags & STATUS_UNINITIALIZED))
923
1089
  return true;
924
1090
  if (el._parentSource) {
@@ -927,6 +1093,9 @@ function computePendingState(el) {
927
1093
  }
928
1094
  return true;
929
1095
  }
1096
+ if (el._overrideValue !== void 0 && el._overrideValue === NOT_PENDING && !el._parentSource) {
1097
+ return false;
1098
+ }
930
1099
  if (el._pendingValue !== NOT_PENDING && !(comp._statusFlags & STATUS_UNINITIALIZED)) return true;
931
1100
  return !!(comp._statusFlags & STATUS_PENDING && !(comp._statusFlags & STATUS_UNINITIALIZED));
932
1101
  }
@@ -1013,7 +1182,7 @@ var storePath = Object.assign(
1013
1182
  { DELETE }
1014
1183
  );
1015
1184
 
1016
- // ../../node_modules/.pnpm/@solidjs+web@2.0.0-beta.2_@solidjs+signals@0.12.0_solid-js@2.0.0-beta.2/node_modules/@solidjs/web/dist/dev.js
1185
+ // ../../node_modules/.pnpm/@solidjs+web@2.0.0-beta.4_@solidjs+signals@0.13.6_solid-js@2.0.0-beta.4/node_modules/@solidjs/web/dist/dev.js
1017
1186
  var isServer = false;
1018
1187
  var isDev = true;
1019
1188
 
@@ -1047,10 +1216,10 @@ function clientOnly(fn) {
1047
1216
  }
1048
1217
 
1049
1218
  // src/index.tsx
1050
- var SolidQueryDevtools = isDev ? clientOnly(() => import("./devtools/MU7AYS7J.jsx")) : function() {
1219
+ var SolidQueryDevtools = isDev ? clientOnly(() => import("./devtools/R2AGYIME.jsx")) : function() {
1051
1220
  return null;
1052
1221
  };
1053
- var SolidQueryDevtoolsPanel = isDev ? clientOnly(() => import("./devtoolsPanel/NLCUKFXJ.jsx")) : function() {
1222
+ var SolidQueryDevtoolsPanel = isDev ? clientOnly(() => import("./devtoolsPanel/QZBU22C7.jsx")) : function() {
1054
1223
  return null;
1055
1224
  };
1056
1225
  export {