@askrjs/askr 0.2.1 → 0.2.3

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 (72) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +32 -4
  3. package/capabilities.json +9 -2
  4. package/dist/{access-d_DCdwqn.js → access-Rr7CMa06.js} +11 -8
  5. package/dist/actions/index.d.ts +1 -1
  6. package/dist/actions/index.js +5 -4
  7. package/dist/{activity-DOmzl9Yu.d.ts → activity-CAJ5eho-.d.ts} +1 -1
  8. package/dist/{activity-B2Yy7Wz9.js → activity-ZxJXI9hF.js} +2 -2
  9. package/dist/{compose-ref-1Fhs7mbF.js → aria-hKjThHcp.js} +1 -18
  10. package/dist/benchmark.js +8 -8
  11. package/dist/boot/index.d.ts +2 -2
  12. package/dist/boot/index.js +1 -1
  13. package/dist/{boot-DVwjHCNh.js → boot-D4GaLA0d.js} +12 -14
  14. package/dist/{cleanup-DPtpXtA4.js → cleanup-DsrbV-rr.js} +6 -11
  15. package/dist/{component-cleanup-DPe8claJ.js → component-cleanup-DjpwO9WX.js} +2 -2
  16. package/dist/{component-internal-xW_OnTmC.js → component-internal-Dl02WQKS.js} +15 -6
  17. package/dist/components/index.d.ts +1 -1
  18. package/dist/compose-ref-Bfaf4kUC.js +20 -0
  19. package/dist/control/index.d.ts +1 -1
  20. package/dist/control/index.js +1 -1
  21. package/dist/{control-BLVTE1gO.js → control-57x3wa4J.js} +4 -4
  22. package/dist/{csp-nonce-CCnMtOW-.js → csp-nonce-C9OuML0U.js} +1 -1
  23. package/dist/data/index.d.ts +2 -2
  24. package/dist/data/index.js +2 -2
  25. package/dist/{data-CAXqJzoS.js → data-B7XCDeC8.js} +268 -35
  26. package/dist/{deferred-BRw0gbn5.js → deferred-BELyvMsC.js} +2 -2
  27. package/dist/{effect-BQP5o0Kx.js → effect-4LwBwV58.js} +2 -2
  28. package/dist/{fastlane-DUxiFV9S.js → fastlane-Buz1Rvlr.js} +2 -2
  29. package/dist/{for-internal-DKcYl3nl.js → for-internal-DeoSg_AV.js} +5 -5
  30. package/dist/foundations/index.d.ts +1 -1
  31. package/dist/foundations/index.js +1 -1
  32. package/dist/foundations/interactions/index.d.ts +1 -1
  33. package/dist/foundations/interactions/index.js +1 -1
  34. package/dist/foundations/state/index.d.ts +1 -1
  35. package/dist/foundations/state/index.js +1 -1
  36. package/dist/foundations/structures/index.d.ts +1 -1
  37. package/dist/foundations/structures/index.js +1 -1
  38. package/dist/foundations/utilities/index.d.ts +1 -1
  39. package/dist/foundations/utilities/index.js +2 -1
  40. package/dist/fx/index.d.ts +1 -1
  41. package/dist/fx/index.js +1 -1
  42. package/dist/{index-CzH-0LcA.d.ts → index-B1gu0_m0.d.ts} +2 -0
  43. package/dist/{index-B1p8bHZE.d.ts → index-DSqXWc77.d.ts} +34 -1
  44. package/dist/{index-zEdpHD86.d.ts → index-r5THqzPN.d.ts} +1 -1
  45. package/dist/index.d.ts +2 -2
  46. package/dist/index.js +11 -11
  47. package/dist/{interactions-B-7vkBgx.js → interactions-D102JxBR.js} +10 -3
  48. package/dist/{lifecycle-batch-BYECQw8T.js → lifecycle-batch-Be-CLDjV.js} +2 -2
  49. package/dist/{lifecycle-operations-DJk_5MrD.js → lifecycle-operations-C5m03NQc.js} +1 -1
  50. package/dist/{navigate-DvJvo--6.js → navigate-C46GtScG.js} +9 -9
  51. package/dist/{navigate-DUcj-nLs.d.ts → navigate-wel1e6cU.d.ts} +1 -1
  52. package/dist/{readable-D-JIKCg2.js → readable-CEcteIDE.js} +1 -1
  53. package/dist/{renderer-RjZ8LHbt.js → renderer-BhXofszH.js} +15 -16
  54. package/dist/{resolution-dVYwYXrI.js → resolution-t8J0yNaU.js} +3 -3
  55. package/dist/{resource-operation-4qFIM02d.js → resource-operation-B8q-QRUx.js} +4 -4
  56. package/dist/resources/index.d.ts +2 -2
  57. package/dist/resources/index.js +5 -5
  58. package/dist/router/index.d.ts +3 -3
  59. package/dist/router/index.js +7 -7
  60. package/dist/{selector-NQiYHwZC.js → selector-C7rIpOnN.js} +2 -2
  61. package/dist/shared-CGrx2AOL.js +27 -0
  62. package/dist/ssg/index.d.ts +1 -1
  63. package/dist/ssg/index.js +4 -4
  64. package/dist/ssr/index.d.ts +7 -1
  65. package/dist/ssr/index.js +1 -1
  66. package/dist/{ssr-F87AcFMt.js → ssr-BaC5qHEw.js} +26 -15
  67. package/dist/{state-Ks-sWTQi.js → state-BzhOW2TX.js} +3 -3
  68. package/dist/{structures-C-wmHCi6.js → structures-BwfeO4Iz.js} +4 -4
  69. package/dist/testing/index.d.ts +1 -1
  70. package/dist/testing/index.js +4 -4
  71. package/dist/{verify-hydration-CThsx0pq.js → verify-hydration-_Q6avFp0.js} +1 -1
  72. package/package.json +2 -2
@@ -1,9 +1,10 @@
1
- import { n as enqueueRuntimeTask, y as logger } from "./access-d_DCdwqn.js";
1
+ import { n as enqueueRuntimeTask, y as logger } from "./access-Rr7CMa06.js";
2
2
  import { d as getCurrentAppRenderRuntime, f as getCurrentComponentInstance, i as claimHookIndex } from "./component-scope-4I3yEMkb.js";
3
- import { l as notifyReadableReaders, o as markReactivePropsDirtySource, s as markReadableDerivedSubscribersDirty, u as recordReadableRead } from "./readable-D-JIKCg2.js";
3
+ import { u as recordReadableRead } from "./readable-CEcteIDE.js";
4
4
  import { n as getActiveRenderContext } from "./render-context-B7ohlh6t.js";
5
- import { i as routeActive, n as documentVisible, o as timer, s as windowFocused } from "./lifecycle-operations-DJk_5MrD.js";
5
+ import { i as routeActive, n as documentVisible, o as timer, s as windowFocused } from "./lifecycle-operations-C5m03NQc.js";
6
6
  import { a as getMutationSlotStore, c as resolveDataRuntimeState, i as getDefaultDataRuntime, n as ensureMutationCleanup, o as getQuerySlotStore, r as ensureQueryCleanup, s as invalidateQueriesForRuntime } from "./data-runtime-7t_Y0iv3.js";
7
+ import { a as normalizeAsyncDataError, i as isCurrentAsyncOperation, n as isAbortError, o as notifySource, t as createReadableSource } from "./shared-CGrx2AOL.js";
7
8
  //#region src/data/query-key.ts
8
9
  function serializeQueryKeyNumber(part) {
9
10
  if (Number.isNaN(part)) return "NaN";
@@ -69,23 +70,6 @@ function invalidateOnInterval(prefix, options) {
69
70
  }, when.length > 0 ? { when } : void 0);
70
71
  }
71
72
  //#endregion
72
- //#region src/data/shared.ts
73
- function createReadableSource() {
74
- return (() => void 0);
75
- }
76
- function notifySource(source) {
77
- markReadableDerivedSubscribersDirty(source);
78
- markReactivePropsDirtySource(source);
79
- notifyReadableReaders(source);
80
- }
81
- function isAbortError(error, signal) {
82
- return signal.aborted || error instanceof Error && error.name === "AbortError" || typeof DOMException !== "undefined" && error instanceof DOMException && error.name === "AbortError";
83
- }
84
- function normalizeAsyncDataError(error, fallbackMessage) {
85
- if (error instanceof Error) return error;
86
- return new Error(error == null ? fallbackMessage : String(error));
87
- }
88
- //#endregion
89
73
  //#region src/data/mutation-cell.ts
90
74
  var MutationCell = class {
91
75
  constructor(options, runtimeState) {
@@ -148,7 +132,7 @@ var MutationCell = class {
148
132
  try {
149
133
  result = await action(input, { signal: controller.signal });
150
134
  } catch (error) {
151
- if (this.generation !== generation || this.controller !== controller) throw error;
135
+ if (!isCurrentAsyncOperation(this.generation, generation, this.controller, controller)) throw error;
152
136
  if (isAbortError(error, controller.signal)) {
153
137
  this.setState({
154
138
  status: "idle",
@@ -162,8 +146,7 @@ var MutationCell = class {
162
146
  });
163
147
  throw error;
164
148
  }
165
- if (this.generation !== generation || this.controller !== controller) return result;
166
- this.setState({
149
+ if (isCurrentAsyncOperation(this.generation, generation, this.controller, controller)) this.setState({
167
150
  status: "success",
168
151
  error: null,
169
152
  result
@@ -249,6 +232,7 @@ var QueryCell = class {
249
232
  this.pendingRefreshResolve = null;
250
233
  this.pendingRefreshToken = 0;
251
234
  this.reconcileAttemptCount = 0;
235
+ this.reconcileSequence = 0;
252
236
  this.destroyed = false;
253
237
  this.ownerCount = 0;
254
238
  this.owners = /* @__PURE__ */ new Map();
@@ -348,6 +332,10 @@ var QueryCell = class {
348
332
  recordReadableRead(this.source);
349
333
  return this.state.staleReason;
350
334
  }
335
+ /** @internal Whether a collection should schedule this cell's first load. */
336
+ needsInitialStart() {
337
+ return !this.destroyed && this.state.data === null && this.state.error === null && !this.pendingRefresh && !this.startQueued;
338
+ }
351
339
  ensureStarted() {
352
340
  if (this.destroyed || this.state.data !== null || this.pendingRefresh || this.startQueued || this.options.skipInitialFetch) return;
353
341
  this.queueStart();
@@ -378,19 +366,24 @@ var QueryCell = class {
378
366
  staleReason: null
379
367
  });
380
368
  }
381
- queueStart() {
369
+ queueStart(reconcileSequence) {
382
370
  if (this.destroyed) return;
371
+ const sequence = reconcileSequence ?? (() => {
372
+ this.reconcileAttemptCount = 0;
373
+ return ++this.reconcileSequence;
374
+ })();
383
375
  this.startQueued = true;
384
376
  const token = ++this.pendingRefreshToken;
385
377
  this.pendingRefresh = new Promise((resolve) => {
386
378
  this.pendingRefreshResolve = resolve;
387
379
  enqueueRuntimeTask(() => {
380
+ if (token !== this.pendingRefreshToken) return;
388
381
  this.startQueued = false;
389
382
  if (this.destroyed) {
390
383
  this.finishPendingRefresh(token);
391
384
  return;
392
385
  }
393
- this.start().finally(() => {
386
+ this.start(sequence).finally(() => {
394
387
  this.finishPendingRefresh(token);
395
388
  });
396
389
  });
@@ -411,7 +404,7 @@ var QueryCell = class {
411
404
  };
412
405
  notifySource(this.source);
413
406
  }
414
- async start() {
407
+ async start(reconcileSequence) {
415
408
  if (this.destroyed) return;
416
409
  this.generation += 1;
417
410
  const generation = this.generation;
@@ -431,7 +424,7 @@ var QueryCell = class {
431
424
  try {
432
425
  nextData = await this.options.fetch({ signal: controller.signal });
433
426
  } catch (error) {
434
- if (this.destroyed || this.generation !== generation || this.controller !== controller) return;
427
+ if (this.destroyed || !isCurrentAsyncOperation(this.generation, generation, this.controller, controller)) return;
435
428
  if (isAbortError(error, controller.signal)) {
436
429
  this.setState(hasData ? {
437
430
  loading: false,
@@ -460,7 +453,7 @@ var QueryCell = class {
460
453
  });
461
454
  return;
462
455
  }
463
- if (this.destroyed || this.generation !== generation || this.controller !== controller) return;
456
+ if (this.destroyed || !isCurrentAsyncOperation(this.generation, generation, this.controller, controller)) return;
464
457
  let isConsistent;
465
458
  try {
466
459
  isConsistent = this.options.isConsistent?.(nextData) ?? true;
@@ -485,9 +478,9 @@ var QueryCell = class {
485
478
  staleReason: "inconsistent"
486
479
  });
487
480
  try {
488
- await this.reconcile(nextData);
481
+ await this.reconcile(nextData, generation, controller, reconcileSequence);
489
482
  } catch (error) {
490
- if (this.generation === generation && this.controller === controller) this.setState({
483
+ if (isCurrentAsyncOperation(this.generation, generation, this.controller, controller)) this.setState({
491
484
  loading: false,
492
485
  refreshing: false,
493
486
  stale: true,
@@ -509,8 +502,8 @@ var QueryCell = class {
509
502
  staleReason: null
510
503
  });
511
504
  }
512
- async reconcile(data) {
513
- if (!await (this.options.reconcile?.(data, { key: this.options.key }) ?? false) || this.destroyed) return;
505
+ async reconcile(data, generation, controller, reconcileSequence) {
506
+ if (!await (this.options.reconcile?.(data, { key: this.options.key }) ?? false) || this.destroyed || reconcileSequence !== this.reconcileSequence || !isCurrentAsyncOperation(this.generation, generation, this.controller, controller)) return;
514
507
  this.reconcileAttemptCount += 1;
515
508
  if (this.reconcileAttemptCount > RECONCILE_MAX_ATTEMPTS) {
516
509
  this.setState({
@@ -521,8 +514,10 @@ var QueryCell = class {
521
514
  return;
522
515
  }
523
516
  await new Promise((resolve) => setTimeout(resolve, RECONCILE_RETRY_DELAY_MS));
524
- if (this.destroyed || this.state.consistency === "fresh") return;
525
- this.invalidate();
517
+ if (this.destroyed || reconcileSequence !== this.reconcileSequence || this.state.consistency === "fresh" || !isCurrentAsyncOperation(this.generation, generation, this.controller, controller)) return;
518
+ this.controller?.abort();
519
+ this.finishPendingRefresh(this.pendingRefreshToken);
520
+ this.queueStart(reconcileSequence);
526
521
  }
527
522
  };
528
523
  function createLegacyQuery(options) {
@@ -589,4 +584,242 @@ function createQuery(optionsOrDefinition, input, options) {
589
584
  return createLegacyQuery(optionsOrDefinition);
590
585
  }
591
586
  //#endregion
592
- export { notifySource as a, queryScope as c, normalizeAsyncDataError as i, createMutation as n, invalidate as o, createReadableSource as r, invalidateOnInterval as s, createQuery as t };
587
+ //#region src/data/query-collection.ts
588
+ const DEFAULT_QUERY_COLLECTION_CONCURRENCY = 4;
589
+ const collectionSlotsByGeneration = /* @__PURE__ */ new WeakMap();
590
+ /** @internal Validate and normalize a query collection's concurrency cap. */
591
+ function normalizeQueryCollectionConcurrency(concurrency) {
592
+ const value = concurrency ?? DEFAULT_QUERY_COLLECTION_CONCURRENCY;
593
+ if (!Number.isInteger(value) || value < 1) throw new Error("[Askr] createQueryCollection() concurrency must be a positive integer.");
594
+ return value;
595
+ }
596
+ function getCollectionStore(generation) {
597
+ let store = collectionSlotsByGeneration.get(generation);
598
+ if (!store) {
599
+ store = /* @__PURE__ */ new Map();
600
+ collectionSlotsByGeneration.set(generation, store);
601
+ }
602
+ return store;
603
+ }
604
+ function createCellOptions(runtimeState, query, input, queryKey) {
605
+ return {
606
+ key: queryKey,
607
+ definitionIdentity: query,
608
+ fetch: ({ signal }) => query.fetch({
609
+ ...input,
610
+ signal
611
+ }),
612
+ isConsistent: query.isConsistent,
613
+ reconcile: query.reconcile,
614
+ initialData: runtimeState.queryData.get(queryKey),
615
+ skipInitialFetch: true
616
+ };
617
+ }
618
+ var QueryCollectionCell = class {
619
+ constructor(runtimeState) {
620
+ this.runtimeState = runtimeState;
621
+ this.records = /* @__PURE__ */ new Map();
622
+ this.ordered = [];
623
+ this.tasks = /* @__PURE__ */ new Map();
624
+ this.queue = [];
625
+ this.activeCount = 0;
626
+ this.concurrency = DEFAULT_QUERY_COLLECTION_CONCURRENCY;
627
+ this.disposed = false;
628
+ }
629
+ get entries() {
630
+ return this.ordered;
631
+ }
632
+ get loading() {
633
+ return this.ordered.some(({ query }) => query.loading || query.refreshing);
634
+ }
635
+ get settled() {
636
+ return !this.loading;
637
+ }
638
+ get results() {
639
+ const results = /* @__PURE__ */ new Map();
640
+ for (const { key, query } of this.ordered) if (query.data !== null) results.set(key, query.data);
641
+ return results;
642
+ }
643
+ get errors() {
644
+ const errors = /* @__PURE__ */ new Map();
645
+ for (const { key, query } of this.ordered) if (query.error !== null) errors.set(key, query.error);
646
+ return errors;
647
+ }
648
+ get(key) {
649
+ return this.records.get(key);
650
+ }
651
+ retry(key) {
652
+ const record = this.records.get(key);
653
+ return record ? this.schedule(record.cell) : Promise.resolve();
654
+ }
655
+ update(query, inputs, keyForInput, concurrency, startInitialFetches) {
656
+ if (this.disposed) return;
657
+ this.concurrency = concurrency;
658
+ const desired = [];
659
+ const seenKeys = /* @__PURE__ */ new Set();
660
+ for (const input of inputs) {
661
+ const key = keyForInput(input);
662
+ if (seenKeys.has(key)) continue;
663
+ seenKeys.add(key);
664
+ desired.push({
665
+ input,
666
+ key,
667
+ queryKey: query.key(input)
668
+ });
669
+ }
670
+ const nextRecords = /* @__PURE__ */ new Map();
671
+ const nextOrdered = [];
672
+ const startCandidates = /* @__PURE__ */ new Set();
673
+ const detachedCells = /* @__PURE__ */ new Set();
674
+ for (const { input, key, queryKey } of desired) {
675
+ const cellOptions = createCellOptions(this.runtimeState, query, input, queryKey);
676
+ const previous = this.records.get(key);
677
+ let record;
678
+ if (previous?.queryKey === queryKey) {
679
+ previous.input = input;
680
+ previous.cell.warnOnConflictingDefinition(cellOptions);
681
+ record = previous;
682
+ } else {
683
+ if (previous) {
684
+ this.detach(previous);
685
+ detachedCells.add(previous.cell);
686
+ }
687
+ const cache = this.runtimeState.queryCache;
688
+ let cell = cache.get(queryKey);
689
+ if (!cell) {
690
+ cell = new QueryCell(cellOptions, queryKey, cache);
691
+ cache.set(queryKey, cell);
692
+ } else cell.warnOnConflictingDefinition(cellOptions);
693
+ const owner = {};
694
+ cell.attach(owner, 0);
695
+ record = {
696
+ key,
697
+ input,
698
+ query: cell,
699
+ queryKey,
700
+ cell,
701
+ owner
702
+ };
703
+ if (startInitialFetches && cell.needsInitialStart()) startCandidates.add(cell);
704
+ }
705
+ nextRecords.set(key, record);
706
+ nextOrdered.push(record);
707
+ }
708
+ for (const [key, record] of this.records) if (!nextRecords.has(key)) {
709
+ this.detach(record);
710
+ detachedCells.add(record.cell);
711
+ }
712
+ this.records = nextRecords;
713
+ this.ordered = Object.freeze(nextOrdered);
714
+ for (const cell of detachedCells) this.cancelIfUnused(cell);
715
+ for (const cell of startCandidates) this.schedule(cell);
716
+ this.pump();
717
+ }
718
+ dispose() {
719
+ if (this.disposed) return;
720
+ this.disposed = true;
721
+ const cells = /* @__PURE__ */ new Set();
722
+ for (const record of this.records.values()) {
723
+ cells.add(record.cell);
724
+ record.cell.detach(record.owner, 0);
725
+ }
726
+ this.records.clear();
727
+ this.ordered = [];
728
+ for (const cell of cells) this.cancelIfUnused(cell);
729
+ }
730
+ detach(record) {
731
+ record.cell.detach(record.owner, 0);
732
+ }
733
+ isCellUsed(cell) {
734
+ for (const record of this.records.values()) if (record.cell === cell) return true;
735
+ return false;
736
+ }
737
+ cancelIfUnused(cell) {
738
+ if (this.isCellUsed(cell)) return;
739
+ const task = this.tasks.get(cell);
740
+ if (!task || task.state === "cancelled" || task.state === "done") return;
741
+ if (task.state === "active") this.activeCount -= 1;
742
+ task.state = "cancelled";
743
+ this.tasks.delete(cell);
744
+ task.resolve();
745
+ this.pump();
746
+ }
747
+ schedule(cell) {
748
+ if (this.disposed) return Promise.resolve();
749
+ const existing = this.tasks.get(cell);
750
+ if (existing) return existing.promise;
751
+ let resolve;
752
+ const promise = new Promise((done) => {
753
+ resolve = done;
754
+ });
755
+ const task = {
756
+ cell,
757
+ promise,
758
+ resolve,
759
+ state: "queued"
760
+ };
761
+ this.tasks.set(cell, task);
762
+ this.queue.push(task);
763
+ this.pump();
764
+ return promise;
765
+ }
766
+ pump() {
767
+ if (this.disposed) return;
768
+ while (this.activeCount < this.concurrency) {
769
+ const task = this.queue.shift();
770
+ if (!task) return;
771
+ if (task.state !== "queued" || this.tasks.get(task.cell) !== task) continue;
772
+ task.state = "active";
773
+ this.activeCount += 1;
774
+ task.cell.refresh().finally(() => this.finish(task));
775
+ }
776
+ }
777
+ finish(task) {
778
+ if (task.state !== "active") return;
779
+ task.state = "done";
780
+ this.activeCount -= 1;
781
+ if (this.tasks.get(task.cell) === task) this.tasks.delete(task.cell);
782
+ task.resolve();
783
+ this.pump();
784
+ }
785
+ };
786
+ /**
787
+ * Create one lifecycle-owned collection of dynamically keyed readers for a
788
+ * reusable query definition, with bounded collection-started fetches.
789
+ */
790
+ function createQueryCollection(options) {
791
+ const instance = getCurrentComponentInstance();
792
+ if (!instance) throw new Error("[Askr] createQueryCollection() must be called during component render execution.");
793
+ const hookIndex = claimHookIndex(instance, "createQueryCollection");
794
+ const concurrency = normalizeQueryCollectionConcurrency(options.concurrency);
795
+ const inputs = options.inputs();
796
+ if (!Array.isArray(inputs)) throw new Error("[Askr] createQueryCollection() inputs must return a readonly array.");
797
+ const generation = instance._ownershipGeneration;
798
+ const runtimeState = resolveDataRuntimeState(options.runtime);
799
+ const store = getCollectionStore(generation);
800
+ let slot = store.get(hookIndex);
801
+ if (slot && slot.runtimeState !== runtimeState) {
802
+ slot.collection.dispose();
803
+ store.delete(hookIndex);
804
+ slot = void 0;
805
+ }
806
+ if (!slot) {
807
+ slot = {
808
+ runtimeState,
809
+ collection: new QueryCollectionCell(runtimeState)
810
+ };
811
+ store.set(hookIndex, slot);
812
+ (instance.cleanupFns ??= []).push(() => {
813
+ store.get(hookIndex)?.collection.dispose();
814
+ store.delete(hookIndex);
815
+ if (store.size === 0 && collectionSlotsByGeneration.get(generation) === store) collectionSlotsByGeneration.delete(generation);
816
+ });
817
+ }
818
+ const context = getActiveRenderContext();
819
+ const startInitialFetches = !(context?.mode === "ssr" || context?.mode === void 0 && typeof window === "undefined");
820
+ const collection = slot.collection;
821
+ collection.update(options.query, inputs, options.key, concurrency, startInitialFetches);
822
+ return collection;
823
+ }
824
+ //#endregion
825
+ export { invalidateOnInterval as a, invalidate as i, createQuery as n, queryScope as o, createMutation as r, createQueryCollection as t };
@@ -1,9 +1,9 @@
1
1
  import { d as getCurrentAppRenderRuntime, f as getCurrentComponentInstance } from "./component-scope-4I3yEMkb.js";
2
2
  import { i as getExecutionModel } from "./manifest-D6rfj_jC.js";
3
3
  import { n as getActiveRenderContext, r as getCurrentRenderData } from "./render-context-B7ohlh6t.js";
4
- import { t as resource } from "./resource-operation-4qFIM02d.js";
4
+ import { t as resource } from "./resource-operation-B8q-QRUx.js";
5
5
  import { A as getDefaultRouteBasePath, C as getCurrentInheritedPolicies, D as getCurrentPathPrefix, E as getCurrentPageScope, F as insertRecordSorted, H as computeRank, L as pushRegistrationScope, N as hasActivePageScope, O as getCurrentScopeKind, S as getCurrentInheritedMeta, T as getCurrentPageChain, U as normalizeRouteSegmentName, W as parseSegments, g as assertRouteRegistrationUnlocked, h as addRouteToStores, w as getCurrentLayoutChain, x as getCurrentInheritedAuthRequirements } from "./route-matching-Bo6UqG-5.js";
6
- import { _ as createRouteHandler, d as DEFERRED_BOUNDARY, p as isDeferred, s as guardHydratedRouteData } from "./resolution-dVYwYXrI.js";
6
+ import { _ as createRouteHandler, d as DEFERRED_BOUNDARY, p as isDeferred, s as guardHydratedRouteData } from "./resolution-t8J0yNaU.js";
7
7
  import { allOf } from "@askrjs/auth";
8
8
  //#region src/router/access.ts
9
9
  function compileNodePolicies(node) {
@@ -1,5 +1,5 @@
1
- import { t as enqueueRuntimeLane } from "./access-d_DCdwqn.js";
2
- import { m as withFineGrainedReadTracking } from "./readable-D-JIKCg2.js";
1
+ import { t as enqueueRuntimeLane } from "./access-Rr7CMa06.js";
2
+ import { m as withFineGrainedReadTracking } from "./readable-CEcteIDE.js";
3
3
  //#region src/runtime/effect.ts
4
4
  const SOURCE_EFFECTS = Symbol("askr.source-effects");
5
5
  const effectSources = /* @__PURE__ */ new WeakMap();
@@ -1,6 +1,6 @@
1
- import { d as setRuntimeBulkCommitProbe, o as getRuntimeRenderer, u as runRuntimeWithSyncProgress, x as isDevelopmentEnvironment } from "./access-d_DCdwqn.js";
1
+ import { d as setRuntimeBulkCommitProbe, o as getRuntimeRenderer, u as runRuntimeWithSyncProgress, x as isDevelopmentEnvironment } from "./access-Rr7CMa06.js";
2
2
  import { i as isFragmentType } from "./jsx-DRS-qjiN.js";
3
- import { i as finalizeReadableSubscriptions, l as notifyReadableReaders, o as markReactivePropsDirtySource, s as markReadableDerivedSubscribersDirty } from "./readable-D-JIKCg2.js";
3
+ import { i as finalizeReadableSubscriptions, l as notifyReadableReaders, o as markReactivePropsDirtySource, s as markReadableDerivedSubscribersDirty } from "./readable-CEcteIDE.js";
4
4
  //#region src/runtime/dev-namespace.ts
5
5
  /**
6
6
  * Set a value in the dev namespace (no-op in production).
@@ -1,10 +1,10 @@
1
1
  import { n as _isDOMElement } from "./vnode-D24p6IW2.js";
2
- import { o as getRuntimeRenderer, x as isDevelopmentEnvironment, y as logger } from "./access-d_DCdwqn.js";
2
+ import { o as getRuntimeRenderer, x as isDevelopmentEnvironment, y as logger } from "./access-Rr7CMa06.js";
3
3
  import { h as getCurrentStateIndex, i as claimHookIndex, o as clearRenderTracking, p as getCurrentInstance } from "./component-scope-4I3yEMkb.js";
4
- import { _ as haveEquivalentContextFrames, b as rebaseVNodeTreeWithContextFrame, n as createComponentInstance, s as renderScopedComponent } from "./component-internal-xW_OnTmC.js";
5
- import { d as shouldCoalesceFineGrainedItemReads, l as notifyReadableReaders, o as markReactivePropsDirtySource, s as markReadableDerivedSubscribersDirty, u as recordReadableRead } from "./readable-D-JIKCg2.js";
6
- import { i as unregisterOwnedChildScope, r as registerOwnedChildScope, t as cleanupComponent } from "./component-cleanup-DPe8claJ.js";
7
- import { o as finalizeInlineReadSubscriptions, u as registerLifecycleTransaction } from "./lifecycle-batch-BYECQw8T.js";
4
+ import { _ as haveEquivalentContextFrames, b as rebaseVNodeTreeWithContextFrame, n as createComponentInstance, s as renderScopedComponent } from "./component-internal-Dl02WQKS.js";
5
+ import { d as shouldCoalesceFineGrainedItemReads, l as notifyReadableReaders, o as markReactivePropsDirtySource, s as markReadableDerivedSubscribersDirty, u as recordReadableRead } from "./readable-CEcteIDE.js";
6
+ import { i as unregisterOwnedChildScope, r as registerOwnedChildScope, t as cleanupComponent } from "./component-cleanup-DjpwO9WX.js";
7
+ import { o as finalizeInlineReadSubscriptions, u as registerLifecycleTransaction } from "./lifecycle-batch-Be-CLDjV.js";
8
8
  //#region src/runtime/child-scope.ts
9
9
  const EMPTY_CHILD_SCOPE_PROPS = {};
10
10
  const childScopesByInstance = /* @__PURE__ */ new WeakMap();
@@ -1,3 +1,3 @@
1
1
  import { r as JSXElement } from "../types-DkVJhVs9.js";
2
- import { c as DefaultPortal, d as definePortal, f as Presence, h as SlotProps, l as Portal, m as Slot, p as PresenceProps, u as PortalProps, v as LayoutComponent, y as layout } from "../index-zEdpHD86.js";
2
+ import { c as DefaultPortal, d as definePortal, f as Presence, h as SlotProps, l as Portal, m as Slot, p as PresenceProps, u as PortalProps, v as LayoutComponent, y as layout } from "../index-r5THqzPN.js";
3
3
  export { DefaultPortal, type JSXElement, type LayoutComponent, Portal, type PortalProps, Presence, type PresenceProps, Slot, type SlotProps, definePortal, layout };
@@ -1,2 +1,2 @@
1
- import { a as definePortal, c as layout, i as Portal, o as Presence, r as DefaultPortal, s as Slot } from "../structures-C-wmHCi6.js";
1
+ import { a as definePortal, c as layout, i as Portal, o as Presence, r as DefaultPortal, s as Slot } from "../structures-BwfeO4Iz.js";
2
2
  export { DefaultPortal, Portal, Presence, Slot, definePortal, layout };
@@ -1,5 +1,5 @@
1
1
  import { t as Ref } from "../../compose-ref-DOJHoW5X.js";
2
- import { d as KeyboardLikeEvent, f as PointerLikeEvent, l as DefaultPreventable, p as PropagationStoppable } from "../../index-CzH-0LcA.js";
2
+ import { d as KeyboardLikeEvent, f as PointerLikeEvent, l as DefaultPreventable, p as PropagationStoppable } from "../../index-B1gu0_m0.js";
3
3
  //#region src/foundations/interactions/pressable.d.ts
4
4
  /**
5
5
  * pressable
@@ -1,2 +1,2 @@
1
- import { a as focusable, i as hoverable, n as mergeInteractionProps, o as dismissable, r as rovingFocus, s as pressable, t as applyInteractionPolicy } from "../../interactions-B-7vkBgx.js";
1
+ import { a as focusable, i as hoverable, n as mergeInteractionProps, o as dismissable, r as rovingFocus, s as pressable, t as applyInteractionPolicy } from "../../interactions-D102JxBR.js";
2
2
  export { applyInteractionPolicy, dismissable, focusable, hoverable, mergeInteractionProps, pressable, rovingFocus };
@@ -1,4 +1,4 @@
1
- import { dn as State } from "../../index-B1p8bHZE.js";
1
+ import { gn as State } from "../../index-DSqXWc77.js";
2
2
  //#region src/foundations/state/controllable.d.ts
3
3
  /** Whether `value` represents controlled mode (not `undefined`). */
4
4
  declare function isControlled<T>(value: T | undefined): value is T;
@@ -1,4 +1,4 @@
1
- import { t as state } from "../../state-Ks-sWTQi.js";
1
+ import { t as state } from "../../state-BzhOW2TX.js";
2
2
  //#region src/foundations/state/controllable.ts
3
3
  /**
4
4
  * controllable
@@ -1,3 +1,3 @@
1
1
  import { r as JSXElement } from "../../types-DkVJhVs9.js";
2
- import { _ as isElement, a as Collection, c as DefaultPortal, d as definePortal, f as Presence, g as cloneElement, h as SlotProps, i as createLayer, l as Portal, m as Slot, n as LayerManager, o as CollectionItem, p as PresenceProps, r as LayerOptions, s as createCollection, t as Layer, u as PortalProps, v as LayoutComponent, y as layout } from "../../index-zEdpHD86.js";
2
+ import { _ as isElement, a as Collection, c as DefaultPortal, d as definePortal, f as Presence, g as cloneElement, h as SlotProps, i as createLayer, l as Portal, m as Slot, n as LayerManager, o as CollectionItem, p as PresenceProps, r as LayerOptions, s as createCollection, t as Layer, u as PortalProps, v as LayoutComponent, y as layout } from "../../index-r5THqzPN.js";
3
3
  export { type Collection, type CollectionItem, DefaultPortal, type JSXElement, type Layer, type LayerManager, type LayerOptions, type LayoutComponent, Portal, type PortalProps, Presence, type PresenceProps, Slot, type SlotProps, cloneElement, createCollection, createLayer, definePortal, isElement, layout };
@@ -1,2 +1,2 @@
1
- import { a as definePortal, c as layout, i as Portal, l as cloneElement, n as createCollection, o as Presence, r as DefaultPortal, s as Slot, t as createLayer, u as isElement } from "../../structures-C-wmHCi6.js";
1
+ import { a as definePortal, c as layout, i as Portal, l as cloneElement, n as createCollection, o as Presence, r as DefaultPortal, s as Slot, t as createLayer, u as isElement } from "../../structures-BwfeO4Iz.js";
2
2
  export { DefaultPortal, Portal, Presence, Slot, cloneElement, createCollection, createLayer, definePortal, isElement, layout };
@@ -1,3 +1,3 @@
1
1
  import { n as composeRefs, r as setRef, t as Ref } from "../../compose-ref-DOJHoW5X.js";
2
- import { a as ariaSelected, c as composeHandlers, d as KeyboardLikeEvent, f as PointerLikeEvent, i as ariaExpanded, l as DefaultPreventable, n as formatId, o as mergeProps, p as PropagationStoppable, r as ariaDisabled, s as ComposeHandlersOptions, t as FormatIdOptions, u as FocusLikeEvent } from "../../index-CzH-0LcA.js";
2
+ import { a as ariaSelected, c as composeHandlers, d as KeyboardLikeEvent, f as PointerLikeEvent, i as ariaExpanded, l as DefaultPreventable, n as formatId, o as mergeProps, p as PropagationStoppable, r as ariaDisabled, s as ComposeHandlersOptions, t as FormatIdOptions, u as FocusLikeEvent } from "../../index-B1gu0_m0.js";
3
3
  export { type ComposeHandlersOptions, type DefaultPreventable, type FocusLikeEvent, type FormatIdOptions, type KeyboardLikeEvent, type PointerLikeEvent, type PropagationStoppable, type Ref, ariaDisabled, ariaExpanded, ariaSelected, composeHandlers, composeRefs, formatId, mergeProps, setRef };
@@ -1,3 +1,4 @@
1
- import { a as ariaSelected, i as ariaExpanded, n as setRef, o as mergeProps, r as ariaDisabled, s as composeHandlers, t as composeRefs } from "../../compose-ref-1Fhs7mbF.js";
1
+ import { n as setRef, t as composeRefs } from "../../compose-ref-Bfaf4kUC.js";
2
+ import { a as composeHandlers, i as mergeProps, n as ariaExpanded, r as ariaSelected, t as ariaDisabled } from "../../aria-hKjThHcp.js";
2
3
  import { t as formatId } from "../../utilities-C_CGX4Dz.js";
3
4
  export { ariaDisabled, ariaExpanded, ariaSelected, composeHandlers, composeRefs, formatId, mergeProps, setRef };
@@ -1,4 +1,4 @@
1
- import { X as scheduleEventHandler } from "../index-B1p8bHZE.js";
1
+ import { Z as scheduleEventHandler } from "../index-DSqXWc77.js";
2
2
  //#region src/fx/timing.d.ts
3
3
  /**
4
4
  * Timing utilities — pure helpers for common async patterns
package/dist/fx/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { g as scheduleEventHandler, n as enqueueRuntimeTask, y as logger } from "../access-d_DCdwqn.js";
1
+ import { g as scheduleEventHandler, n as enqueueRuntimeTask, y as logger } from "../access-Rr7CMa06.js";
2
2
  import { f as getCurrentComponentInstance } from "../component-scope-4I3yEMkb.js";
3
3
  //#region src/fx/timing.ts
4
4
  /**
@@ -11,6 +11,8 @@ interface PropagationStoppable {
11
11
  /** Structural subset of a keyboard event, for handlers that accept native or synthetic events. */
12
12
  interface KeyboardLikeEvent extends DefaultPreventable, PropagationStoppable {
13
13
  key: string;
14
+ currentTarget?: unknown;
15
+ target?: unknown;
14
16
  }
15
17
  /** Structural subset of a pointer event, for handlers that accept native or synthetic events. */
16
18
  interface PointerLikeEvent extends DefaultPreventable, PropagationStoppable {
@@ -179,6 +179,32 @@ interface QueryDefinition<TInput, TResult extends {}> {
179
179
  key: string;
180
180
  }) => Promise<boolean> | boolean;
181
181
  }
182
+ /** Stable identity for one member of a {@link QueryCollection}. */
183
+ type QueryCollectionKey = string | number | symbol;
184
+ /** One keyed input and its underlying cache-backed query reader. */
185
+ interface QueryCollectionEntry<TInput, TResult extends {}, TKey extends QueryCollectionKey = string> {
186
+ readonly key: TKey;
187
+ readonly input: TInput;
188
+ readonly query: Query<TResult>;
189
+ }
190
+ /** Options for {@link createQueryCollection}. */
191
+ interface QueryCollectionOptions<TInput, TResult extends {}, TKey extends QueryCollectionKey = string> {
192
+ readonly query: QueryDefinition<TInput, TResult>;
193
+ readonly inputs: () => readonly TInput[];
194
+ readonly key: (input: TInput) => TKey;
195
+ readonly concurrency?: number;
196
+ readonly runtime?: DataRuntime;
197
+ }
198
+ /** Aggregate reactive state for a lifecycle-owned dynamic query collection. */
199
+ interface QueryCollection<TInput, TResult extends {}, TKey extends QueryCollectionKey = string> {
200
+ readonly entries: readonly QueryCollectionEntry<TInput, TResult, TKey>[];
201
+ readonly loading: boolean;
202
+ readonly settled: boolean;
203
+ readonly results: ReadonlyMap<TKey, TResult>;
204
+ readonly errors: ReadonlyMap<TKey, {}>;
205
+ get(key: TKey): QueryCollectionEntry<TInput, TResult, TKey> | undefined;
206
+ retry(key: TKey): Promise<void>;
207
+ }
182
208
  /** Context passed to server prefetch callbacks, exposing a scoped `prefetch` helper. */
183
209
  interface QueryPrefetchContext {
184
210
  readonly runtime: DataRuntime;
@@ -1291,6 +1317,13 @@ declare function queryScope(namespace: string): QueryScope;
1291
1317
  */
1292
1318
  declare function invalidateOnInterval(prefix: string, options: InvalidateOnIntervalOptions): void;
1293
1319
  //#endregion
1320
+ //#region src/data/query-collection.d.ts
1321
+ /**
1322
+ * Create one lifecycle-owned collection of dynamically keyed readers for a
1323
+ * reusable query definition, with bounded collection-started fetches.
1324
+ */
1325
+ declare function createQueryCollection<TInput, TResult extends {}, TKey extends QueryCollectionKey = string>(options: QueryCollectionOptions<TInput, TResult, TKey>): QueryCollection<TInput, TResult, TKey>;
1326
+ //#endregion
1294
1327
  //#region src/data/query-registry.d.ts
1295
1328
  /** Lookup table of server handlers keyed by their {@link QueryDefinition}, built by {@link defineServerQueries}. */
1296
1329
  interface ServerQueryRegistry {
@@ -1366,4 +1399,4 @@ declare function action<TInput extends Record<string, unknown>, TResult = unknow
1366
1399
  submit(input: TInput): Promise<TResult>;
1367
1400
  };
1368
1401
  //#endregion
1369
- export { AccessDecision as $, Scope as $t, Case as A, RouteRegistry as At, RenderDiagnosticsOptions as B, DataRuntimeOptions as Bt, Ref as C, RouteParams as Ct, registerSSRStyle as D, RouteRecord as Dt, SSRPortalState as E, RouteQuery as Et, ShowProps as F, RouteSearch as Ft, AskrRuntimeOptions as G, Query as Gt, Derived as H, InvalidateOptions as Ht, For as I, RouteSearchValue as It, createRuntime as J, QueryKeyPart as Jt, RuntimeKeyedReorderDecision as K, QueryConsistency as Kt, ForProps as L, RouteSnapshot as Lt, Match as M, RouteRenderResult as Mt, MatchProps as N, RouteRequestOptions as Nt, CspNonceScope as O, RouteRef as Ot, Show as P, RouteRequestResult as Pt, AccessAllowDecision as Q, ServerQueryHandler as Qt, Selector as R, CoreTelemetry as Rt, createMutation as S, RouteOptions as St, DeferredBoundaryRegistration as T, RoutePolicy as Tt, derive as U, Mutation as Ut, configureRenderDiagnostics as V, InvalidateOnIntervalOptions as Vt, AskrRuntime as W, MutationOptions as Wt, scheduleEventHandler as X, QueryScope as Xt, getDefaultRuntime as Y, QueryPrefetchContext as Yt, getSignal as Z, QueryStaleReason as Zt, invalidateOnInterval as _, RouteManifest as _t, action as a, DocumentRenderArgs as an, LayoutScopeRecord as at, getDefaultDataRuntime as b, RouteMetaSource as bt, ServerQueryRegistry as c, SSRData as cn, ParsedSegment as ct, defineServerQueries as d, State as dn, RouteAuthResolver as dt, defineScope as en, AccessDenyDecision as et, dehydrateDataRuntime as f, StateSetter as fn, RouteComponent as ft, invalidate as g, RouteHandler as gt, serveQuery as h, RouteDestination as ht, ActionValidationError as i, VNode as in, GroupHelperOptions as it, CaseProps as j, RouteRegistryOptions as jt, cspNonce as k, RouteRefSearch as kt, createQueryPrefetchContext as l, SSRStyleRegistration as ln, Route as lt, prefetchQuery as m, state as mn, RouteDefinition as mt, ActionForm as n, ComponentFunction as nn, AccessRedirectDecision as nt, defineAction as o, DocumentRenderContext as on, PageHelperOptions as ot, hydrateDataRuntime as p, StateTuple as pn, RouteContext as pt, RuntimeRendererHost as q, QueryDefinition as qt, ActionStatus as r, RenderableChild as rn, AccessRedirectStatus as rt, ServerQueryEntry as s, DocumentRenderer as sn, PageScopeRecord as st, ActionDescriptor as t, readScope as tn, AccessDenyStatus as tt, defineQuery as u, SSRStyleRegistrationValidation as un, RouteAuthOptions as ut, queryScope as v, RouteMatch as vt, createRef as w, RoutePathParams as wt, createQuery as x, RouteMode as xt, createDataRuntime as y, RouteMeta as yt, selector as z, DataRuntime as zt };
1402
+ export { AccessAllowDecision as $, QueryKeyPart as $t, cspNonce as A, RouteRefSearch as At, selector as B, DataRuntime as Bt, createMutation as C, RouteOptions as Ct, SSRPortalState as D, RouteQuery as Dt, DeferredBoundaryRegistration as E, RoutePolicy as Et, Show as F, RouteRequestResult as Ft, AskrRuntime as G, MutationOptions as Gt, configureRenderDiagnostics as H, InvalidateOnIntervalOptions as Ht, ShowProps as I, RouteSearch as It, RuntimeRendererHost as J, QueryCollectionEntry as Jt, AskrRuntimeOptions as K, Query as Kt, For as L, RouteSearchValue as Lt, CaseProps as M, RouteRegistryOptions as Mt, Match as N, RouteRenderResult as Nt, registerSSRStyle as O, RouteRecord as Ot, MatchProps as P, RouteRequestOptions as Pt, getSignal as Q, QueryDefinition as Qt, ForProps as R, RouteSnapshot as Rt, createQuery as S, RouteMode as St, createRef as T, RoutePathParams as Tt, Derived as U, InvalidateOptions as Ut, RenderDiagnosticsOptions as V, DataRuntimeOptions as Vt, derive as W, Mutation as Wt, getDefaultRuntime as X, QueryCollectionOptions as Xt, createRuntime as Y, QueryCollectionKey as Yt, scheduleEventHandler as Z, QueryConsistency as Zt, invalidate as _, StateSetter as _n, RouteHandler as _t, action as a, defineScope as an, GroupHelperOptions as at, createDataRuntime as b, RouteMeta as bt, ServerQueryRegistry as c, RenderableChild as cn, PageScopeRecord as ct, defineServerQueries as d, DocumentRenderContext as dn, RouteAuthOptions as dt, QueryPrefetchContext as en, AccessDecision as et, dehydrateDataRuntime as f, DocumentRenderer as fn, RouteAuthResolver as ft, createQueryCollection as g, State as gn, RouteDestination as gt, serveQuery as h, SSRStyleRegistrationValidation as hn, RouteDefinition as ht, ActionValidationError as i, Scope as in, AccessRedirectStatus as it, Case as j, RouteRegistry as jt, CspNonceScope as k, RouteRef as kt, createQueryPrefetchContext as l, VNode as ln, ParsedSegment as lt, prefetchQuery as m, SSRStyleRegistration as mn, RouteContext as mt, ActionForm as n, QueryStaleReason as nn, AccessDenyStatus as nt, defineAction as o, readScope as on, LayoutScopeRecord as ot, hydrateDataRuntime as p, SSRData as pn, RouteComponent as pt, RuntimeKeyedReorderDecision as q, QueryCollection as qt, ActionStatus as r, ServerQueryHandler as rn, AccessRedirectDecision as rt, ServerQueryEntry as s, ComponentFunction as sn, PageHelperOptions as st, ActionDescriptor as t, QueryScope as tn, AccessDenyDecision as tt, defineQuery as u, DocumentRenderArgs as un, Route as ut, invalidateOnInterval as v, StateTuple as vn, RouteManifest as vt, Ref as w, RouteParams as wt, getDefaultDataRuntime as x, RouteMetaSource as xt, queryScope as y, state as yn, RouteMatch as yt, Selector as z, CoreTelemetry as zt };
@@ -1,4 +1,4 @@
1
- import { rn as RenderableChild } from "./index-B1p8bHZE.js";
1
+ import { cn as RenderableChild } from "./index-DSqXWc77.js";
2
2
  import { r as JSXElement } from "./types-DkVJhVs9.js";
3
3
  //#region src/foundations/structures/layout.d.ts
4
4
  /**
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { $t as Scope, A as Case, B as RenderDiagnosticsOptions, C as Ref, D as registerSSRStyle, F as ShowProps, G as AskrRuntimeOptions, H as Derived, I as For, J as createRuntime, K as RuntimeKeyedReorderDecision, L as ForProps, M as Match, N as MatchProps, O as CspNonceScope, P as Show, Qt as ServerQueryHandler, R as Selector, U as derive, V as configureRenderDiagnostics, W as AskrRuntime, Y as getDefaultRuntime, Yt as QueryPrefetchContext, Z as getSignal, d as defineServerQueries, dn as State, en as defineScope, f as dehydrateDataRuntime, fn as StateSetter, h as serveQuery, j as CaseProps, k as cspNonce, m as prefetchQuery, mn as state, p as hydrateDataRuntime, pn as StateTuple, q as RuntimeRendererHost, qt as QueryDefinition, tn as readScope, u as defineQuery, w as createRef, x as createQuery, z as selector, zt as DataRuntime } from "./index-B1p8bHZE.js";
1
+ import { A as cspNonce, B as selector, Bt as DataRuntime, F as Show, G as AskrRuntime, H as configureRenderDiagnostics, I as ShowProps, J as RuntimeRendererHost, Jt as QueryCollectionEntry, K as AskrRuntimeOptions, L as For, M as CaseProps, N as Match, O as registerSSRStyle, P as MatchProps, Q as getSignal, Qt as QueryDefinition, R as ForProps, S as createQuery, T as createRef, U as Derived, V as RenderDiagnosticsOptions, W as derive, X as getDefaultRuntime, Xt as QueryCollectionOptions, Y as createRuntime, Yt as QueryCollectionKey, _n as StateSetter, an as defineScope, d as defineServerQueries, en as QueryPrefetchContext, f as dehydrateDataRuntime, g as createQueryCollection, gn as State, h as serveQuery, in as Scope, j as Case, k as CspNonceScope, m as prefetchQuery, on as readScope, p as hydrateDataRuntime, q as RuntimeKeyedReorderDecision, qt as QueryCollection, rn as ServerQueryHandler, u as defineQuery, vn as StateTuple, w as Ref, yn as state, z as Selector } from "./index-DSqXWc77.js";
2
2
  import { s as Props, t as Fragment } from "./types-DkVJhVs9.js";
3
3
  import { i as jsxs, n as jsx } from "./jsx-runtime-Cdd6Gkb0.js";
4
- export { AskrRuntime, type AskrRuntimeOptions, Case, type CaseProps, CspNonceScope, type DataRuntime, type Derived, For, type ForProps, Fragment, Match, type MatchProps, type Props, type QueryDefinition, type QueryPrefetchContext, type Ref, type RenderDiagnosticsOptions, type RuntimeKeyedReorderDecision, type RuntimeRendererHost, type Scope, type Selector, type ServerQueryHandler, Show, type ShowProps, type State, type StateSetter, type StateTuple, configureRenderDiagnostics, createQuery, createRef, createRuntime, cspNonce, defineQuery, defineScope, defineServerQueries, dehydrateDataRuntime, derive, getDefaultRuntime, getSignal, hydrateDataRuntime, jsx, jsxs, prefetchQuery, readScope, registerSSRStyle, selector, serveQuery, state };
4
+ export { AskrRuntime, type AskrRuntimeOptions, Case, type CaseProps, CspNonceScope, type DataRuntime, type Derived, For, type ForProps, Fragment, Match, type MatchProps, type Props, type QueryCollection, type QueryCollectionEntry, type QueryCollectionKey, type QueryCollectionOptions, type QueryDefinition, type QueryPrefetchContext, type Ref, type RenderDiagnosticsOptions, type RuntimeKeyedReorderDecision, type RuntimeRendererHost, type Scope, type Selector, type ServerQueryHandler, Show, type ShowProps, type State, type StateSetter, type StateTuple, configureRenderDiagnostics, createQuery, createQueryCollection, createRef, createRuntime, cspNonce, defineQuery, defineScope, defineServerQueries, dehydrateDataRuntime, derive, getDefaultRuntime, getSignal, hydrateDataRuntime, jsx, jsxs, prefetchQuery, readScope, registerSSRStyle, selector, serveQuery, state };