@kdeveloper/kvark 0.17.0 → 1.0.0

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.
@@ -5,20 +5,20 @@ function atom(configOrInitial, options) {
5
5
  return fromInitialValue(configOrInitial, options);
6
6
  }
7
7
  function isAtomConfig(value) {
8
- return typeof value === "object" && value !== null && typeof value.get === "function";
8
+ return typeof value === "object" && value !== null && typeof value.read === "function";
9
9
  }
10
10
  function fromConfig(config) {
11
11
  const internal = Object.create(null);
12
- internal.get = config.get;
12
+ internal.read = config.read;
13
13
  if (config.debugLabel != null) internal.debugLabel = config.debugLabel;
14
14
  if (config.dependencies != null) internal.dependencies = config.dependencies;
15
15
  if (config.stalePolicy != null) internal.stalePolicy = config.stalePolicy;
16
16
  if (config.retry != null) internal.retry = config.retry;
17
17
  if (config.retryDelay != null) internal.retryDelay = config.retryDelay;
18
- if (config.invalidateAfterSet != null) internal.invalidateAfterSet = config.invalidateAfterSet;
19
- if (config.set != null) internal.set = config.set;
18
+ if (config.invalidateAfterWrite != null) internal.invalidateAfterWrite = config.invalidateAfterWrite;
19
+ if (config.write != null) internal.write = config.write;
20
20
  if (config.onMount != null) internal.onMount = config.onMount;
21
- if (config.set != null) return {
21
+ if (config.write != null) return {
22
22
  [CONFIG]: internal,
23
23
  [WRITABLE]: [],
24
24
  debugLabel: config.debugLabel
@@ -30,13 +30,13 @@ function fromConfig(config) {
30
30
  }
31
31
  function fromInitialValue(initialValue, options) {
32
32
  const internal = Object.create(null);
33
- internal.get = async (ctx) => {
33
+ internal.read = async (ctx) => {
34
34
  await Promise.resolve();
35
35
  const prev = ctx.getPreviousValue();
36
36
  return prev === void 0 ? initialValue : prev;
37
37
  };
38
- internal.invalidateAfterSet = false;
39
- internal.set = async (ctx, ...args) => {
38
+ internal.invalidateAfterWrite = false;
39
+ internal.write = async (ctx, ...args) => {
40
40
  const valueOrMutate = args[0];
41
41
  const previous = ctx.getPreviousValue();
42
42
  const next = typeof valueOrMutate === "function" ? valueOrMutate(previous === void 0 ? initialValue : previous) : valueOrMutate;
@@ -78,8 +78,8 @@ function infinityAtom(options) {
78
78
  };
79
79
  }
80
80
  const config = {
81
- invalidateAfterSet: false,
82
- get: async (ctx) => {
81
+ invalidateAfterWrite: false,
82
+ read: async (ctx) => {
83
83
  const prev = ctx.getPreviousValue();
84
84
  if (prev == null) return buildResult([await options.queryFn({
85
85
  cursor: options.initialCursor,
@@ -99,7 +99,7 @@ function infinityAtom(options) {
99
99
  }
100
100
  return buildResult(pages, pageCursors);
101
101
  },
102
- set: async (ctx, action) => {
102
+ write: async (ctx, action) => {
103
103
  if (action !== "loadNext") return;
104
104
  const current = ctx.getPreviousValue();
105
105
  if (current == null || !current.hasNextPage) return;
@@ -144,7 +144,7 @@ var LruCache = class {
144
144
  #head;
145
145
  #tail;
146
146
  constructor(maxSize) {
147
- this.#maxSize = maxSize;
147
+ this.#maxSize = normalizeMaxSize(maxSize);
148
148
  this.#head = {
149
149
  key: void 0,
150
150
  prev: null,
@@ -193,6 +193,12 @@ var LruCache = class {
193
193
  this.#nodeMap.delete(key);
194
194
  this.#valueMap.delete(key);
195
195
  }
196
+ clear() {
197
+ this.#nodeMap.clear();
198
+ this.#valueMap.clear();
199
+ this.#head.next = this.#tail;
200
+ this.#tail.prev = this.#head;
201
+ }
196
202
  values() {
197
203
  return this.#valueMap.values();
198
204
  }
@@ -222,13 +228,17 @@ var LruCache = class {
222
228
  if (!Number.isFinite(this.#maxSize)) return;
223
229
  while (this.#nodeMap.size > this.#maxSize) {
224
230
  const oldest = this.#head.next;
225
- if (oldest == null) break;
231
+ if (oldest == null || oldest === this.#tail) break;
226
232
  this.#detach(oldest);
227
233
  this.#nodeMap.delete(oldest.key);
228
234
  this.#valueMap.delete(oldest.key);
229
235
  }
230
236
  }
231
237
  };
238
+ function normalizeMaxSize(maxSize) {
239
+ if (!Number.isFinite(maxSize)) return Infinity;
240
+ return Math.max(0, Math.floor(maxSize));
241
+ }
232
242
  //#endregion
233
243
  //#region src/internal/infinity-atom-family.ts
234
244
  function infinityAtomFamily(options) {
@@ -285,9 +295,14 @@ function infinityAtomFamily(options) {
285
295
  family.invalidateAll = () => {
286
296
  for (const cached of cache.values()) link.invalidateAtom(cached);
287
297
  };
298
+ family.has = (param) => cache.peek(keyOf(param)) != null;
299
+ family.peek = (param) => cache.peek(keyOf(param));
288
300
  family.remove = (param) => {
289
301
  cache.delete(keyOf(param));
290
302
  };
303
+ family.clear = () => {
304
+ cache.clear();
305
+ };
291
306
  family.getCache = () => cache.asReadonlyMap();
292
307
  return family;
293
308
  }
@@ -446,34 +461,34 @@ function atomFamily(options) {
446
461
  const cached = cache.get(key);
447
462
  if (cached != null) return cached;
448
463
  let deps;
449
- let getFn;
450
- let setFn;
464
+ let readFn;
465
+ let writeFn;
451
466
  if (coordinator != null) {
452
467
  deps = options.dependencies?.();
453
- getFn = (ctx) => coordinator.enqueue(key, param, ctx, ctx.signal);
454
- setFn = void 0;
468
+ readFn = (ctx) => coordinator.enqueue(key, param, ctx, ctx.signal);
469
+ writeFn = void 0;
455
470
  } else {
456
- const getOpts = options;
457
- deps = getOpts.dependencies?.(param);
458
- getFn = getOpts.get(param);
459
- setFn = getOpts.set?.(param);
471
+ const readOptions = options;
472
+ deps = readOptions.dependencies?.(param);
473
+ readFn = readOptions.read(param);
474
+ writeFn = readOptions.write?.(param);
460
475
  }
461
476
  const labelSuffix = options.paramKey != null ? String(key) : String(param);
462
- const created = createAtom(options.debugLabel != null ? `${options.debugLabel}(${labelSuffix})` : void 0, deps, getFn, setFn);
477
+ const created = createAtom(options.debugLabel != null ? `${options.debugLabel}(${labelSuffix})` : void 0, deps, readFn, writeFn);
463
478
  attachLink(created);
464
479
  cache.set(key, created);
465
480
  return created;
466
481
  }
467
- function createAtom(label, deps, getFn, setFn) {
468
- const base = { get: getFn };
482
+ function createAtom(label, deps, readFn, writeFn) {
483
+ const base = { read: readFn };
469
484
  if (label != null) base.debugLabel = label;
470
485
  if (deps != null) base.dependencies = deps;
471
486
  if (options.stalePolicy != null) base.stalePolicy = options.stalePolicy;
472
487
  if (options.retry != null) base.retry = options.retry;
473
488
  if (options.retryDelay != null) base.retryDelay = options.retryDelay;
474
- if (options.invalidateAfterSet != null) base.invalidateAfterSet = options.invalidateAfterSet;
475
- if (setFn != null) {
476
- base.set = setFn;
489
+ if (options.invalidateAfterWrite != null) base.invalidateAfterWrite = options.invalidateAfterWrite;
490
+ if (writeFn != null) {
491
+ base.write = writeFn;
477
492
  return atom(base);
478
493
  }
479
494
  return atom(base);
@@ -486,9 +501,14 @@ function atomFamily(options) {
486
501
  family.invalidateAll = () => {
487
502
  for (const cached of cache.values()) link.invalidateAtom(cached);
488
503
  };
504
+ family.has = (param) => cache.peek(keyOf(param)) != null;
505
+ family.peek = (param) => cache.peek(keyOf(param));
489
506
  family.remove = (param) => {
490
507
  cache.delete(keyOf(param));
491
508
  };
509
+ family.clear = () => {
510
+ cache.clear();
511
+ };
492
512
  family.getCache = () => cache.asReadonlyMap();
493
513
  return family;
494
514
  }
@@ -507,14 +527,15 @@ const PENDING_STATE = {
507
527
  };
508
528
  var Store = class {
509
529
  #atoms = /* @__PURE__ */ new WeakMap();
530
+ #entries = /* @__PURE__ */ new Set();
510
531
  #rdeps = /* @__PURE__ */ new Map();
511
532
  #pending = /* @__PURE__ */ new Set();
512
- #controllers = /* @__PURE__ */ new WeakMap();
513
533
  #familyUnsubs = /* @__PURE__ */ new Set();
514
534
  #registeredFamilies = /* @__PURE__ */ new WeakSet();
515
535
  #context;
516
536
  #client = null;
517
537
  #flushScheduled = false;
538
+ #disposed = false;
518
539
  constructor(...args) {
519
540
  const [options] = args;
520
541
  this.#context = options?.context;
@@ -526,18 +547,49 @@ var Store = class {
526
547
  state: PENDING_STATE,
527
548
  version: 0,
528
549
  promise: null,
550
+ controller: null,
529
551
  listeners: /* @__PURE__ */ new Set(),
530
552
  mountCount: 0,
531
553
  unmount: null
532
554
  };
533
555
  this.#atoms.set(atom, entry);
556
+ this.#entries.add(entry);
534
557
  }
535
558
  return entry;
536
559
  }
537
- resolve(atom) {
560
+ #assertActive() {
561
+ if (this.#disposed) throw new Error("Store has been disposed");
562
+ }
563
+ #abortRead(atom) {
564
+ const entry = this.#atoms.get(atom);
565
+ if (entry?.controller != null) {
566
+ entry.controller.abort();
567
+ entry.controller = null;
568
+ }
569
+ }
570
+ get(atom) {
571
+ return this.getSnapshot(atom);
572
+ }
573
+ peek(atom) {
574
+ this.#assertActive();
575
+ const entry = this.#atoms.get(atom);
576
+ if (entry == null) return;
577
+ return extractPreviousValue(entry.state);
578
+ }
579
+ ensure(atom) {
580
+ this.#assertActive();
581
+ const entry = this.#atoms.get(atom);
582
+ if (entry != null) {
583
+ if (entry.state.status === "fresh" || entry.state.status === "stale") return Promise.resolve(entry.state.value);
584
+ if (entry.state.status === "error" && entry.state.value !== void 0) return Promise.resolve(entry.state.value);
585
+ }
586
+ return this.read(atom);
587
+ }
588
+ read(atom) {
589
+ this.#assertActive();
538
590
  const entry = this.#getOrCreate(atom);
539
591
  if (entry.promise != null) return entry.promise;
540
- const promise = this.#runGet(atom).finally(() => {
592
+ const promise = this.#runRead(atom).finally(() => {
541
593
  const e = this.#atoms.get(atom);
542
594
  if (e != null) e.promise = null;
543
595
  });
@@ -545,7 +597,7 @@ var Store = class {
545
597
  entry.promise = promise;
546
598
  return promise;
547
599
  }
548
- async #runGet(atom) {
600
+ async #runRead(atom) {
549
601
  const config = atom[CONFIG];
550
602
  const dependencies = config.dependencies;
551
603
  const stalePolicy = config.stalePolicy ?? "keep";
@@ -556,7 +608,7 @@ var Store = class {
556
608
  if (dependencies != null) {
557
609
  for (const [key, dep] of Object.entries(dependencies)) {
558
610
  if (isAtomFamily(dep)) continue;
559
- if (!depPromises.has(key)) depPromises.set(key, this.resolve(dep));
611
+ if (!depPromises.has(key)) depPromises.set(key, this.read(dep));
560
612
  }
561
613
  this.#registerRdeps(atom, dependencies);
562
614
  }
@@ -570,7 +622,7 @@ var Store = class {
570
622
  }
571
623
  try {
572
624
  if (depPromises.size > 0) await Promise.all(depPromises.values());
573
- const value = await config.get(ctx);
625
+ const value = await config.read(ctx);
574
626
  if (ctx.signal.aborted) throw new DOMException("The operation was aborted", "AbortError");
575
627
  entry.state = {
576
628
  status: "fresh",
@@ -596,11 +648,13 @@ var Store = class {
596
648
  throw lastError;
597
649
  }
598
650
  invalidate(atom) {
651
+ this.#assertActive();
599
652
  this.#markStale(atom);
600
653
  this.#pending.add(atom);
601
654
  this.#schedulePendingFlush();
602
655
  }
603
656
  invalidateMany(atoms) {
657
+ this.#assertActive();
604
658
  for (const a of atoms) {
605
659
  this.#markStale(a);
606
660
  this.#pending.add(a);
@@ -619,7 +673,7 @@ var Store = class {
619
673
  status: "stale"
620
674
  };
621
675
  entry.promise = null;
622
- this.#controllers.get(atom)?.abort();
676
+ this.#abortRead(atom);
623
677
  }
624
678
  const rdeps = this.#rdeps.get(atom);
625
679
  if (rdeps != null) for (const dep of rdeps) this.#markStale(dep, visited);
@@ -648,6 +702,11 @@ var Store = class {
648
702
  if (!this.#flushScheduled) {
649
703
  this.#flushScheduled = true;
650
704
  queueMicrotask(() => {
705
+ if (this.#disposed) {
706
+ this.#flushScheduled = false;
707
+ this.#pending.clear();
708
+ return;
709
+ }
651
710
  this.#flushScheduled = false;
652
711
  this.#flushPending();
653
712
  });
@@ -663,7 +722,7 @@ var Store = class {
663
722
  state: targetEntry.state,
664
723
  version: targetEntry.version
665
724
  });
666
- this.#controllers.get(target)?.abort();
725
+ this.#abortRead(target);
667
726
  targetEntry.promise = null;
668
727
  targetEntry.state = {
669
728
  status: "fresh",
@@ -699,38 +758,39 @@ var Store = class {
699
758
  set.add(atom);
700
759
  }
701
760
  #makeCtx(atom, deps, depPromises) {
702
- this.#controllers.get(atom)?.abort();
761
+ this.#abortRead(atom);
703
762
  const controller = new AbortController();
704
- this.#controllers.set(atom, controller);
705
- const get = async (key, ...rest) => {
763
+ this.#getOrCreate(atom).controller = controller;
764
+ const read = async (key, ...rest) => {
706
765
  const dep = deps[key];
707
766
  if (dep == null) throw new Error(`Unknown dependency key: "${String(key)}"`);
708
767
  if (isAtomFamily(dep)) {
709
- if (rest.length === 0) throw new Error(`Dependency "${String(key)}" is an atomFamily and requires a parameter. Use ctx.get("${String(key)}", param) instead of ctx.get("${String(key)}").`);
768
+ if (rest.length === 0) throw new Error(`Dependency "${String(key)}" is an atomFamily and requires a parameter. Use ctx.read("${String(key)}", param) instead of ctx.read("${String(key)}").`);
710
769
  const param = rest[0];
711
770
  const target = dep(param);
712
771
  this.#registerSingleRdep(atom, target);
713
- return this.resolve(target);
772
+ return this.read(target);
714
773
  }
715
- if (rest.length > 0) throw new Error(`Dependency "${String(key)}" is a plain atom and does not accept a parameter. Use ctx.get("${String(key)}") without a second argument.`);
774
+ if (rest.length > 0) throw new Error(`Dependency "${String(key)}" is a plain atom and does not accept a parameter. Use ctx.read("${String(key)}") without a second argument.`);
716
775
  const cached = depPromises?.get(key);
717
776
  if (cached != null) return cached;
718
- return this.resolve(dep);
777
+ return this.read(dep);
719
778
  };
720
779
  return {
721
780
  global: this.#context,
722
781
  signal: controller.signal,
723
- get,
782
+ read,
724
783
  getPreviousValue: () => {
725
784
  return extractPreviousValue(this.#getOrCreate(atom).state);
726
785
  }
727
786
  };
728
787
  }
729
788
  subscribe(atom, listener) {
789
+ this.#assertActive();
730
790
  const entry = this.#getOrCreate(atom);
731
791
  entry.listeners.add(listener);
732
792
  this.#autoRegisterFamily(atom);
733
- if ((entry.state.status === "pending" || entry.state.status === "error") && entry.promise == null) this.resolve(atom);
793
+ if ((entry.state.status === "pending" || entry.state.status === "error") && entry.promise == null) this.read(atom);
734
794
  entry.mountCount++;
735
795
  if (entry.mountCount === 1) {
736
796
  const config = atom[CONFIG];
@@ -748,7 +808,11 @@ var Store = class {
748
808
  if (typeof cleanup === "function") entry.unmount = cleanup;
749
809
  }
750
810
  }
811
+ let active = true;
751
812
  return () => {
813
+ if (!active) return;
814
+ active = false;
815
+ if (this.#disposed) return;
752
816
  entry.listeners.delete(listener);
753
817
  entry.mountCount--;
754
818
  if (entry.mountCount === 0 && entry.unmount != null) {
@@ -768,16 +832,19 @@ var Store = class {
768
832
  this.#familyUnsubs.add(unsub);
769
833
  }
770
834
  getSnapshot(atom) {
835
+ this.#assertActive();
771
836
  return this.#getOrCreate(atom).state;
772
837
  }
773
838
  getServerSnapshot(atom) {
839
+ this.#assertActive();
774
840
  const entry = this.#atoms.get(atom);
775
841
  if (entry != null) return entry.state;
776
842
  return PENDING_STATE;
777
843
  }
778
- async set(atom, ...args) {
844
+ async apply(atom, ...args) {
845
+ this.#assertActive();
779
846
  const config = atom[CONFIG];
780
- if (config.set == null) throw new Error(`Atom${atom.debugLabel != null ? ` "${atom.debugLabel}"` : ""} is not writable`);
847
+ if (config.write == null) throw new Error(`Atom${atom.debugLabel != null ? ` "${atom.debugLabel}"` : ""} is not writable`);
781
848
  const deps = config.dependencies ?? {};
782
849
  const baseCtx = this.#makeCtx(atom, deps);
783
850
  const entry = this.#getOrCreate(atom);
@@ -809,7 +876,7 @@ var Store = class {
809
876
  invalidateMany: (targets) => this.invalidateMany(targets)
810
877
  };
811
878
  try {
812
- await config.set(ctx, ...args);
879
+ await config.write(ctx, ...args);
813
880
  } catch (e) {
814
881
  const snap = optimisticSnapshot.current;
815
882
  if (snap != null) {
@@ -820,13 +887,14 @@ var Store = class {
820
887
  this.#rollbackRelatedSnapshots(relatedSnapshots);
821
888
  throw e;
822
889
  }
823
- if (config.invalidateAfterSet !== false) this.invalidate(atom);
890
+ if (config.invalidateAfterWrite !== false) this.invalidate(atom);
824
891
  }
825
892
  async mutate(mutation, ...args) {
893
+ this.#assertActive();
826
894
  const relatedSnapshots = /* @__PURE__ */ new Map();
827
895
  const ctx = {
828
896
  global: this.#context,
829
- get: (atom) => this.resolve(atom),
897
+ read: (atom) => this.read(atom),
830
898
  writeOptimistic: (target, valueOrMutate) => {
831
899
  this.#relatedOptimisticWrite(target, valueOrMutate, relatedSnapshots);
832
900
  },
@@ -841,8 +909,9 @@ var Store = class {
841
909
  }
842
910
  }
843
911
  write(atom, valueOrMutate) {
912
+ this.#assertActive();
844
913
  const entry = this.#getOrCreate(atom);
845
- this.#controllers.get(atom)?.abort();
914
+ this.#abortRead(atom);
846
915
  entry.promise = null;
847
916
  entry.state = {
848
917
  status: "fresh",
@@ -853,18 +922,71 @@ var Store = class {
853
922
  this.#scheduleNotify(atom);
854
923
  this.#markReverseDependentsStale(atom);
855
924
  }
925
+ run(atom, ...args) {
926
+ return this.apply(atom, ...args);
927
+ }
928
+ runMutation(mutation, ...args) {
929
+ return this.mutate(mutation, ...args);
930
+ }
931
+ set(atom, valueOrMutate) {
932
+ this.write(atom, valueOrMutate);
933
+ }
934
+ observe(atom, listener) {
935
+ return this.subscribe(atom, () => {
936
+ listener(this.getSnapshot(atom));
937
+ });
938
+ }
939
+ inspect(atom) {
940
+ this.#assertActive();
941
+ const entry = this.#atoms.get(atom);
942
+ return {
943
+ debugLabel: atom.debugLabel,
944
+ status: entry?.state.status ?? "pending",
945
+ dependencyCount: Object.keys(atom[CONFIG].dependencies ?? {}).length,
946
+ reverseDependentCount: this.#rdeps.get(atom)?.size ?? 0,
947
+ listenerCount: entry?.listeners.size ?? 0,
948
+ mountCount: entry?.mountCount ?? 0,
949
+ hasPromise: entry?.promise != null
950
+ };
951
+ }
952
+ dispose() {
953
+ if (this.#disposed) return;
954
+ this.#disposed = true;
955
+ this.#pending.clear();
956
+ for (const unsub of this.#familyUnsubs) unsub();
957
+ this.#familyUnsubs.clear();
958
+ for (const entry of this.#entries) {
959
+ entry.controller?.abort();
960
+ entry.controller = null;
961
+ entry.promise = null;
962
+ entry.listeners.clear();
963
+ entry.mountCount = 0;
964
+ if (entry.unmount != null) {
965
+ entry.unmount();
966
+ entry.unmount = null;
967
+ }
968
+ }
969
+ }
856
970
  getClient() {
971
+ this.#assertActive();
857
972
  if (this.#client != null) return this.#client;
858
973
  this.#client = {
859
- get: (atom) => this.resolve(atom),
860
- set: (atom, ...args) => this.set(atom, ...args),
974
+ get: (atom) => this.get(atom),
975
+ peek: (atom) => this.peek(atom),
976
+ ensure: (atom) => this.ensure(atom),
977
+ read: (atom) => this.read(atom),
978
+ run: (atom, ...args) => this.run(atom, ...args),
979
+ apply: (atom, ...args) => this.apply(atom, ...args),
980
+ runMutation: (m, ...args) => this.runMutation(m, ...args),
861
981
  mutate: (m, ...args) => this.mutate(m, ...args),
982
+ set: (atom, valueOrMutate) => this.set(atom, valueOrMutate),
862
983
  write: (atom, valueOrMutate) => this.write(atom, valueOrMutate),
863
984
  invalidate: (atom) => this.invalidate(atom),
864
985
  invalidateMany: (atoms) => this.invalidateMany(atoms),
865
- subscribe: (atom, listener) => this.subscribe(atom, () => {
866
- listener(this.getSnapshot(atom));
867
- })
986
+ observe: (atom, listener) => this.observe(atom, listener),
987
+ subscribe: (atom, listener) => this.observe(atom, listener),
988
+ inspect: (atom) => this.inspect(atom),
989
+ dispose: () => this.dispose()
868
990
  };
869
991
  return this.#client;
870
992
  }
@@ -906,4 +1028,4 @@ function extractPreviousValue(state) {
906
1028
  //#endregion
907
1029
  export { microtaskScheduler as a, infinityAtomFamily as c, maxBatchSizeScheduler as i, infinityAtom as l, mutation as n, windowScheduler as o, atomFamily as r, windowedFiniteBatchScheduler as s, createStore as t, atom as u };
908
1030
 
909
- //# sourceMappingURL=store-DSvJVL5c.js.map
1031
+ //# sourceMappingURL=store-Cq_V-puR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store-Cq_V-puR.js","names":["#maxSize","#nodeMap","#valueMap","#head","#tail","#moveToMru","#insertBeforeTail","#evict","#detach","#fetch","#scheduler","#queue","#keySet","#flush","#atoms","#entries","#rdeps","#pending","#familyUnsubs","#registeredFamilies","#context","#disposed","#assertActive","#getOrCreate","#runRead","#registerRdeps","#makeCtx","#scheduleNotify","#markStale","#schedulePendingFlush","#abortRead","#flushScheduled","#flushPending","#markReverseDependentsStale","#registerSingleRdep","#autoRegisterFamily","#relatedOptimisticWrite","#rollbackRelatedSnapshots","#client"],"sources":["../src/internal/atom.ts","../src/internal/infinity-atom.ts","../src/internal/lru-cache.ts","../src/internal/infinity-atom-family.ts","../src/internal/family-batch-schedulers.ts","../src/internal/family-batch.ts","../src/internal/family.ts","../src/internal/mutation.ts","../src/internal/store.ts"],"mappings":"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"}