atom.io 0.36.1 → 0.36.2

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.
@@ -1,4 +1,3 @@
1
- import { Join as Join$1, arbitrary as arbitrary$1, subscribeToState as subscribeToState$1, subscribeToTimeline as subscribeToTimeline$1, subscribeToTransaction as subscribeToTransaction$1 } from "atom.io/internal";
2
1
  import { parseJson, stringifyJson } from "atom.io/json";
3
2
  import { Anarchy, AtomIOLogger } from "atom.io";
4
3
  import { SetRTX } from "atom.io/transceivers/set-rtx";
@@ -383,21 +382,6 @@ const recallState = (store, state) => {
383
382
  return target.valueMap.get(state.key);
384
383
  };
385
384
 
386
- //#endregion
387
- //#region src/internal/subscribe/subscribe-in-store.ts
388
- function subscribeInStore(store, token, handleUpdate, key = arbitrary$1()) {
389
- switch (token.type) {
390
- case `atom`:
391
- case `mutable_atom`:
392
- case `readonly_pure_selector`:
393
- case `readonly_held_selector`:
394
- case `writable_pure_selector`:
395
- case `writable_held_selector`: return subscribeToState$1(store, token, key, handleUpdate);
396
- case `transaction`: return subscribeToTransaction$1(store, token, key, handleUpdate);
397
- case `timeline`: return subscribeToTimeline$1(store, token, key, handleUpdate);
398
- }
399
- }
400
-
401
385
  //#endregion
402
386
  //#region src/internal/future.ts
403
387
  /**
@@ -502,32 +486,35 @@ const markDone = (store, key) => {
502
486
 
503
487
  //#endregion
504
488
  //#region src/internal/set-state/evict-downstream.ts
505
- function evictDownStream(store, atom) {
489
+ function evictDownstreamFromAtom(store, atom) {
506
490
  const target = newest(store);
507
- const downstreamKeys = target.selectorAtoms.getRelatedKeys(atom.key);
508
- target.logger.info(`🧹`, atom.type, atom.key, downstreamKeys ? `evicting ${downstreamKeys.size} states downstream:` : `no downstream states`, downstreamKeys ?? `to evict`);
491
+ const { key, type } = atom;
492
+ const downstreamKeys = target.selectorAtoms.getRelatedKeys(key);
493
+ target.logger.info(`🧹`, type, key, downstreamKeys ? `evicting ${downstreamKeys.size} states downstream:` : `no downstream states`, downstreamKeys ?? `to evict`);
509
494
  if (downstreamKeys) {
510
- if (target.operation.open) target.logger.info(`🧹`, atom.type, atom.key, `[ ${[...target.operation.done].join(`, `)} ] already done`);
511
- for (const key of downstreamKeys) {
512
- if (isDone(target, key)) continue;
513
- evictCachedValue(target, key);
514
- markDone(target, key);
495
+ if (target.operation.open) target.logger.info(`🧹`, type, key, `[ ${[...target.operation.done].join(`, `)} ] already done`);
496
+ for (const downstreamKey of downstreamKeys) {
497
+ if (isDone(target, downstreamKey)) continue;
498
+ evictCachedValue(target, downstreamKey);
499
+ markDone(target, downstreamKey);
515
500
  }
516
501
  }
517
502
  }
518
- function evictDownStreamFromSelector(store, selector) {
503
+ function evictDownstreamFromSelector(store, selectorKey) {
519
504
  const target = newest(store);
520
- const relationEntries = target.selectorGraph.getRelationEntries({ upstreamSelectorKey: selector.key }).filter(([_, { source }]) => source === selector.key);
505
+ const relationEntries = target.selectorGraph.getRelationEntries({ upstreamSelectorKey: selectorKey }).filter(([_, { source }]) => source === selectorKey);
521
506
  for (const [downstreamSelectorKey] of relationEntries) {
522
507
  if (isDone(target, downstreamSelectorKey)) continue;
523
508
  evictCachedValue(target, downstreamSelectorKey);
524
509
  markDone(target, downstreamSelectorKey);
510
+ evictDownstreamFromSelector(store, downstreamSelectorKey);
525
511
  }
526
512
  }
527
513
 
528
514
  //#endregion
529
515
  //#region src/internal/caching.ts
530
- function writeToCache(target, key, value, subject) {
516
+ function writeToCache(target, state, value) {
517
+ const { key, subject, type } = state;
531
518
  const currentValue = target.valueMap.get(key);
532
519
  if (currentValue instanceof Future && !currentValue.done) {
533
520
  const future = currentValue;
@@ -544,20 +531,21 @@ function writeToCache(target, key, value, subject) {
544
531
  future.then(function handleResolvedFuture(resolved) {
545
532
  const current = target.valueMap.get(key);
546
533
  if (current === future) {
547
- writeToCache(target, key, resolved, subject);
548
- const atom = target.atoms.get(key);
549
- if (atom) {
550
- openOperation(target, atom);
551
- evictDownStream(target, atom);
552
- closeOperation(target);
553
- } else {
554
- const selector = target.writableSelectors.get(key) ?? target.readonlySelectors.get(key);
555
- if (selector) {
556
- openOperation(target, selector);
557
- evictDownStreamFromSelector(target, selector);
558
- closeOperation(target);
559
- }
534
+ openOperation(target, state);
535
+ writeToCache(target, state, resolved);
536
+ switch (type) {
537
+ case `atom`:
538
+ case `mutable_atom`:
539
+ evictDownstreamFromAtom(target, state);
540
+ break;
541
+ case `readonly_held_selector`:
542
+ case `readonly_pure_selector`:
543
+ case `writable_held_selector`:
544
+ case `writable_pure_selector`:
545
+ evictDownstreamFromSelector(target, key);
546
+ break;
560
547
  }
548
+ closeOperation(target);
561
549
  subject.next({
562
550
  newValue: resolved,
563
551
  oldValue: future
@@ -611,45 +599,31 @@ function evictCachedValue(target, key) {
611
599
  //#region src/internal/get-state/read-or-compute-value.ts
612
600
  function readOrComputeValue(target, state, mut) {
613
601
  if (target.valueMap.has(state.key)) return readFromCache(target, state, mut);
602
+ const { key } = state;
614
603
  switch (state.type) {
615
604
  case `readonly_held_selector`:
616
605
  case `readonly_pure_selector`:
617
606
  case `writable_held_selector`:
618
607
  case `writable_pure_selector`:
619
- target.logger.info(`🧮`, state.type, state.key, `computing value`);
608
+ target.logger.info(`🧮`, state.type, key, `computing value`);
620
609
  return state.get();
621
610
  case `atom`: {
622
611
  let def;
623
612
  if (state.default instanceof Function) def = state.default();
624
613
  else def = state.default;
625
- const cachedValue = writeToCache(target, state.key, def, state.subject);
614
+ const cachedValue = writeToCache(target, state, def);
626
615
  target.logger.info(`💁`, `atom`, state.key, `could not find cached value; using default`, def);
627
616
  return cachedValue;
628
617
  }
629
618
  case `mutable_atom`: {
630
619
  const instance = new state.class();
631
- const cachedValue = writeToCache(target, state.key, instance, state.subject);
620
+ const cachedValue = writeToCache(target, state, instance);
632
621
  target.logger.info(`💁`, `mutable_atom`, state.key, `could not find cached value; using default`, instance);
633
622
  return cachedValue;
634
623
  }
635
624
  }
636
625
  }
637
626
 
638
- //#endregion
639
- //#region src/internal/subscribe/subscribe-to-root-atoms.ts
640
- const subscribeToRootDependency = (target, selector, atom) => {
641
- return atom.subject.subscribe(`${selector.type}:${selector.key}`, (atomChange) => {
642
- target.logger.info(`📢`, selector.type, selector.key, `root`, atom.key, `went`, atomChange.oldValue, `->`, atomChange.newValue);
643
- const oldValue = recallState(target, selector);
644
- const newValue = readOrComputeValue(target, selector);
645
- target.logger.info(`✨`, selector.type, selector.key, `went`, oldValue, `->`, newValue);
646
- selector.subject.next({
647
- newValue,
648
- oldValue
649
- });
650
- });
651
- };
652
-
653
627
  //#endregion
654
628
  //#region src/internal/set-state/become.ts
655
629
  const become = (nextVersionOfThing) => (originalThing) => nextVersionOfThing instanceof Function ? nextVersionOfThing(originalThing) : nextVersionOfThing;
@@ -684,9 +658,9 @@ const setAtom = (target, atom, next) => {
684
658
  const oldValue = readOrComputeValue(target, atom, `mut`);
685
659
  let newValue = become(next)(oldValue);
686
660
  target.logger.info(`📝`, `atom`, atom.key, `set to`, newValue);
687
- newValue = writeToCache(target, atom.key, newValue, atom.subject);
661
+ newValue = writeToCache(target, atom, newValue);
688
662
  markDone(target, atom.key);
689
- evictDownStream(target, atom);
663
+ evictDownstreamFromAtom(target, atom);
690
664
  const update = {
691
665
  oldValue,
692
666
  newValue
@@ -711,7 +685,7 @@ const setAtom = (target, atom, next) => {
711
685
  const mutable = target.atoms.get(key);
712
686
  const transceiver = readOrComputeValue(target, mutable, `mut`);
713
687
  const accepted = transceiver.do(update.newValue) === null;
714
- if (accepted === true) evictDownStream(target, mutable);
688
+ if (accepted === true) evictDownstreamFromAtom(target, mutable);
715
689
  }
716
690
  };
717
691
 
@@ -754,44 +728,6 @@ function getFamilyOfToken(store, token) {
754
728
  }
755
729
  }
756
730
 
757
- //#endregion
758
- //#region src/internal/set-state/reset-in-store.ts
759
- function resetInStore(store, ...params) {
760
- let token;
761
- let family;
762
- let key;
763
- if (params.length === 1) {
764
- token = params[0];
765
- family = getFamilyOfToken(store, token) ?? null;
766
- if (family) {
767
- key = token.family ? parseJson(token.family.subKey) : null;
768
- token = findInStore(store, family, key);
769
- }
770
- } else {
771
- family = params[0];
772
- key = params[1];
773
- token = findInStore(store, family, key);
774
- }
775
- if (`counterfeit` in token && `family` in token) {
776
- const subKey = token.family.subKey;
777
- const disposal = store.disposalTraces.buffer.find((item) => item?.key === subKey);
778
- store.logger.error(`❌`, token.type, token.key, `could not be reset because it was not found in the store "${store.config.name}".`, disposal ? `This state was previously disposed:\n${disposal.trace}` : `No previous disposal trace was found.`);
779
- return;
780
- }
781
- const rejectionTime = openOperation(store, token);
782
- if (rejectionTime) {
783
- const unsubscribe = store.on.operationClose.subscribe(`waiting to reset "${token.key}" at T-${rejectionTime}`, () => {
784
- unsubscribe();
785
- store.logger.info(`🟢`, token.type, token.key, `resuming deferred resetState from T-${rejectionTime}`);
786
- resetInStore(store, token);
787
- });
788
- return;
789
- }
790
- const state = withdraw(store, token);
791
- resetAtomOrSelector(store, state);
792
- closeOperation(store);
793
- }
794
-
795
731
  //#endregion
796
732
  //#region src/internal/set-state/set-atom-or-selector.ts
797
733
  const setAtomOrSelector = (store, state, value) => {
@@ -828,26 +764,45 @@ function setIntoStore(store, ...params) {
828
764
  value = params[2];
829
765
  token = findInStore(store, family, key);
830
766
  }
767
+ const action = value === RESET_STATE ? `reset` : `set`;
831
768
  if (`counterfeit` in token && `family` in token) {
832
769
  const subKey = token.family.subKey;
833
770
  const disposal = store.disposalTraces.buffer.find((item) => item?.key === subKey);
834
- store.logger.error(`❌`, token.type, token.key, `could not be set because it was not found in the store "${store.config.name}".`, disposal ? `This state was previously disposed:\n${disposal.trace}` : `No previous disposal trace was found.`);
771
+ store.logger.error(`❌`, token.type, token.key, `could not be`, action, `because it was not found in the store "${store.config.name}".`, disposal ? `This state was previously disposed:\n${disposal.trace}` : `No previous disposal trace was found.`);
835
772
  return;
836
773
  }
837
774
  const rejectionTime = openOperation(store, token);
838
775
  if (rejectionTime) {
839
- const unsubscribe = store.on.operationClose.subscribe(`waiting to set "${token.key}" at T-${rejectionTime}`, function waitUntilOperationCloseToSetState() {
776
+ const unsubscribe = store.on.operationClose.subscribe(`waiting to ${action} "${token.key}" at T-${rejectionTime}`, function waitUntilOperationCloseToSetState() {
840
777
  unsubscribe();
841
- store.logger.info(`🟢`, token.type, token.key, `resuming deferred setState from T-${rejectionTime}`);
778
+ store.logger.info(`🟢`, token.type, token.key, `resuming deferred`, action, `from T-${rejectionTime}`);
842
779
  setIntoStore(store, token, value);
843
780
  });
844
781
  return;
845
782
  }
846
783
  const state = withdraw(store, token);
847
- setAtomOrSelector(store, state, value);
784
+ if (value === RESET_STATE) resetAtomOrSelector(store, state);
785
+ else setAtomOrSelector(store, state, value);
848
786
  closeOperation(store);
849
787
  }
850
788
 
789
+ //#endregion
790
+ //#region src/internal/set-state/reset-in-store.ts
791
+ const RESET_STATE = Symbol(`RESET`);
792
+ function resetInStore(store, ...params) {
793
+ let token;
794
+ let family;
795
+ let key;
796
+ if (params.length === 1) {
797
+ token = params[0];
798
+ setIntoStore(store, token, RESET_STATE);
799
+ } else {
800
+ family = params[0];
801
+ key = params[1];
802
+ setIntoStore(store, family, key, RESET_STATE);
803
+ }
804
+ }
805
+
851
806
  //#endregion
852
807
  //#region src/internal/keys.ts
853
808
  const isAtomKey = (store, key) => newest(store).atoms.has(key);
@@ -961,7 +916,7 @@ const createReadonlyHeldSelector = (store, options, family) => {
961
916
  find,
962
917
  json
963
918
  }, constant);
964
- writeToCache(newest(store), key, constant, subject);
919
+ writeToCache(newest(store), readonlySelector, constant);
965
920
  covered.clear();
966
921
  return constant;
967
922
  };
@@ -1002,7 +957,7 @@ const createReadonlyPureSelector = (store, options, family) => {
1002
957
  find,
1003
958
  json
1004
959
  });
1005
- const cached = writeToCache(innerTarget, key, value, subject);
960
+ const cached = writeToCache(innerTarget, readonlySelector, value);
1006
961
  store.logger.info(`✨`, type, key, `=`, cached);
1007
962
  covered.clear();
1008
963
  return cached;
@@ -1580,7 +1535,7 @@ const createWritableHeldSelector = (store, options, family) => {
1580
1535
  for (const [downstreamSelectorKey, { source }] of upstreamStates) if (source !== key) innerTarget.selectorGraph.delete(downstreamSelectorKey, key);
1581
1536
  innerTarget.selectorAtoms.delete(key);
1582
1537
  getFn(getterToolkit, constant);
1583
- writeToCache(innerTarget, key, constant, subject);
1538
+ writeToCache(innerTarget, mySelector, constant);
1584
1539
  store.logger.info(`✨`, type, key, `=`, constant);
1585
1540
  covered.clear();
1586
1541
  return constant;
@@ -1590,7 +1545,7 @@ const createWritableHeldSelector = (store, options, family) => {
1590
1545
  const oldValue = getSelf(options.get, innerTarget);
1591
1546
  const newValue = become(next)(oldValue);
1592
1547
  store.logger.info(`📝`, type, key, `set (`, oldValue, `->`, newValue, `)`);
1593
- writeToCache(innerTarget, key, newValue, subject);
1548
+ writeToCache(innerTarget, mySelector, newValue);
1594
1549
  markDone(innerTarget, key);
1595
1550
  if (isRootStore(innerTarget)) subject.next({
1596
1551
  newValue,
@@ -1636,7 +1591,7 @@ const createWritablePureSelector = (store, options, family) => {
1636
1591
  for (const [downstreamSelectorKey, { source }] of upstreamStates) if (source !== key) innerTarget.selectorGraph.delete(downstreamSelectorKey, key);
1637
1592
  innerTarget.selectorAtoms.delete(key);
1638
1593
  const value = getFn(getterToolkit);
1639
- const cached = writeToCache(innerTarget, key, value, subject);
1594
+ const cached = writeToCache(innerTarget, mySelector, value);
1640
1595
  store.logger.info(`✨`, type, key, `=`, cached);
1641
1596
  covered.clear();
1642
1597
  return value;
@@ -1646,7 +1601,7 @@ const createWritablePureSelector = (store, options, family) => {
1646
1601
  const oldValue = getSelf(options.get, innerTarget);
1647
1602
  const newValue = become(next)(oldValue);
1648
1603
  store.logger.info(`📝`, type, key, `set (`, oldValue, `->`, newValue, `)`);
1649
- writeToCache(innerTarget, options.key, newValue, subject);
1604
+ writeToCache(innerTarget, mySelector, newValue);
1650
1605
  markDone(innerTarget, options.key);
1651
1606
  if (isRootStore(innerTarget)) subject.next({
1652
1607
  newValue,
@@ -2153,6 +2108,21 @@ function getFromStore(store, ...params) {
2153
2108
  return readOrComputeValue(store, withdraw(store, token));
2154
2109
  }
2155
2110
 
2111
+ //#endregion
2112
+ //#region src/internal/subscribe/subscribe-to-root-atoms.ts
2113
+ const subscribeToRootDependency = (target, selector, atom) => {
2114
+ return atom.subject.subscribe(`${selector.type}:${selector.key}`, (atomChange) => {
2115
+ target.logger.info(`📢`, selector.type, selector.key, `root`, atom.key, `went`, atomChange.oldValue, `->`, atomChange.newValue);
2116
+ const oldValue = recallState(target, selector);
2117
+ const newValue = readOrComputeValue(target, selector);
2118
+ target.logger.info(`✨`, selector.type, selector.key, `went`, oldValue, `->`, newValue);
2119
+ selector.subject.next({
2120
+ newValue,
2121
+ oldValue
2122
+ });
2123
+ });
2124
+ };
2125
+
2156
2126
  //#endregion
2157
2127
  //#region src/internal/subscribe/subscribe-to-state.ts
2158
2128
  function subscribeToState(store, token, key, handleUpdate) {
@@ -2195,6 +2165,46 @@ function subscribeToState(store, token, key, handleUpdate) {
2195
2165
  return unsubscribe;
2196
2166
  }
2197
2167
 
2168
+ //#endregion
2169
+ //#region src/internal/store/withdraw.ts
2170
+ function withdraw(store, token) {
2171
+ let withdrawn;
2172
+ let target = store;
2173
+ while (target !== null) {
2174
+ switch (token.type) {
2175
+ case `atom`:
2176
+ case `mutable_atom`:
2177
+ withdrawn = target.atoms.get(token.key);
2178
+ break;
2179
+ case `writable_pure_selector`:
2180
+ case `writable_held_selector`:
2181
+ withdrawn = target.writableSelectors.get(token.key);
2182
+ break;
2183
+ case `readonly_pure_selector`:
2184
+ case `readonly_held_selector`:
2185
+ withdrawn = target.readonlySelectors.get(token.key);
2186
+ break;
2187
+ case `atom_family`:
2188
+ case `mutable_atom_family`:
2189
+ case `writable_pure_selector_family`:
2190
+ case `readonly_pure_selector_family`:
2191
+ case `writable_held_selector_family`:
2192
+ case `readonly_held_selector_family`:
2193
+ withdrawn = target.families.get(token.key);
2194
+ break;
2195
+ case `timeline`:
2196
+ withdrawn = target.timelines.get(token.key);
2197
+ break;
2198
+ case `transaction`:
2199
+ withdrawn = target.transactions.get(token.key);
2200
+ break;
2201
+ }
2202
+ if (withdrawn) return withdrawn;
2203
+ target = target.child;
2204
+ }
2205
+ throw new NotFoundError(token, store);
2206
+ }
2207
+
2198
2208
  //#endregion
2199
2209
  //#region src/internal/subscribe/subscribe-to-timeline.ts
2200
2210
  const subscribeToTimeline = (store, token, key, handleUpdate) => {
@@ -2219,6 +2229,21 @@ const subscribeToTransaction = (store, token, key, handleUpdate) => {
2219
2229
  };
2220
2230
  };
2221
2231
 
2232
+ //#endregion
2233
+ //#region src/internal/subscribe/subscribe-in-store.ts
2234
+ function subscribeInStore(store, token, handleUpdate, key = arbitrary()) {
2235
+ switch (token.type) {
2236
+ case `atom`:
2237
+ case `mutable_atom`:
2238
+ case `readonly_pure_selector`:
2239
+ case `readonly_held_selector`:
2240
+ case `writable_pure_selector`:
2241
+ case `writable_held_selector`: return subscribeToState(store, token, key, handleUpdate);
2242
+ case `transaction`: return subscribeToTransaction(store, token, key, handleUpdate);
2243
+ case `timeline`: return subscribeToTimeline(store, token, key, handleUpdate);
2244
+ }
2245
+ }
2246
+
2222
2247
  //#endregion
2223
2248
  //#region src/internal/mutable/tracker.ts
2224
2249
  /**
@@ -2640,46 +2665,6 @@ const clearStore = (store) => {
2640
2665
  store.config = config;
2641
2666
  };
2642
2667
 
2643
- //#endregion
2644
- //#region src/internal/store/withdraw.ts
2645
- function withdraw(store, token) {
2646
- let withdrawn;
2647
- let target = store;
2648
- while (target !== null) {
2649
- switch (token.type) {
2650
- case `atom`:
2651
- case `mutable_atom`:
2652
- withdrawn = target.atoms.get(token.key);
2653
- break;
2654
- case `writable_pure_selector`:
2655
- case `writable_held_selector`:
2656
- withdrawn = target.writableSelectors.get(token.key);
2657
- break;
2658
- case `readonly_pure_selector`:
2659
- case `readonly_held_selector`:
2660
- withdrawn = target.readonlySelectors.get(token.key);
2661
- break;
2662
- case `atom_family`:
2663
- case `mutable_atom_family`:
2664
- case `writable_pure_selector_family`:
2665
- case `readonly_pure_selector_family`:
2666
- case `writable_held_selector_family`:
2667
- case `readonly_held_selector_family`:
2668
- withdrawn = target.families.get(token.key);
2669
- break;
2670
- case `timeline`:
2671
- withdrawn = target.timelines.get(token.key);
2672
- break;
2673
- case `transaction`:
2674
- withdrawn = target.transactions.get(token.key);
2675
- break;
2676
- }
2677
- if (withdrawn) return withdrawn;
2678
- target = target.child;
2679
- }
2680
- throw new NotFoundError(token, store);
2681
- }
2682
-
2683
2668
  //#endregion
2684
2669
  //#region src/internal/atom/create-regular-atom.ts
2685
2670
  function createRegularAtom(store, options, family, internalRoles) {
@@ -2800,20 +2785,6 @@ function installIntoStore(tokens, target, source) {
2800
2785
  }
2801
2786
  }
2802
2787
 
2803
- //#endregion
2804
- //#region src/internal/join/create-join.ts
2805
- function createJoin(store, options, defaultContent) {
2806
- store.joins.set(options.key, new Join$1(options, defaultContent, store));
2807
- const token = {
2808
- key: options.key,
2809
- type: `join`,
2810
- a: options.between[0],
2811
- b: options.between[1],
2812
- cardinality: options.cardinality
2813
- };
2814
- return token;
2815
- }
2816
-
2817
2788
  //#endregion
2818
2789
  //#region src/internal/join/join-internal.ts
2819
2790
  var Join = class {
@@ -3117,6 +3088,20 @@ var Join = class {
3117
3088
  }
3118
3089
  };
3119
3090
 
3091
+ //#endregion
3092
+ //#region src/internal/join/create-join.ts
3093
+ function createJoin(store, options, defaultContent) {
3094
+ store.joins.set(options.key, new Join(options, defaultContent, store));
3095
+ const token = {
3096
+ key: options.key,
3097
+ type: `join`,
3098
+ a: options.between[0],
3099
+ b: options.between[1],
3100
+ cardinality: options.cardinality
3101
+ };
3102
+ return token;
3103
+ }
3104
+
3120
3105
  //#endregion
3121
3106
  //#region src/internal/join/get-join.ts
3122
3107
  function getJoin(token, store) {
@@ -3547,5 +3532,5 @@ const timeTravel = (store, action, token) => {
3547
3532
  };
3548
3533
 
3549
3534
  //#endregion
3550
- export { CircularBuffer, FAMILY_MEMBER_TOKEN_TYPES, FamilyTracker, Future, IMPLICIT, INTERNAL_ROLES, Join, Junction, LazyMap, NotFoundError, StatefulSubject, Store, Subject, TRANSACTION_PHASES, Tracker, abortTransaction, actUponStore, allocateIntoStore, applyTransaction, arbitrary, assignTransactionToContinuity, become, buildTransaction, capitalize, claimWithinStore, clearStore, closeOperation, counterfeit, createJoin, createMutableAtom, createMutableAtomFamily, createReadonlyHeldSelector, createReadonlyPureSelector, createReadonlyPureSelectorFamily, createRegularAtom, createRegularAtomFamily, createSelectorFamily, createStandaloneSelector, createTimeline, createTransaction, createWritableHeldSelector, createWritablePureSelector, createWritablePureSelectorFamily, deallocateFromStore, deposit, disposeAtom, disposeFromStore, disposeSelector, editRelationsInStore, evictCachedValue, findInStore, findRelationsInStore, fuseWithinStore, getContinuityKey, getEnvironmentData, getEpochNumberOfAction, getEpochNumberOfContinuity, getFromStore, getInternalRelationsFromStore, getJoin, getJsonFamily, getJsonToken, getSelectorDependencyKeys, getTrace, getUpdateFamily, getUpdateToken, hasRole, ingestAtomUpdate, ingestCreationEvent, ingestDisposalEvent, ingestMoleculeCreationEvent, ingestMoleculeDisposalEvent, ingestMoleculeTransferEvent, ingestSelectorUpdate, ingestTransactionUpdate, initFamilyMemberInStore, installIntoStore, isAtomKey, isChildStore, isDone, isReadonlySelectorKey, isReservedIntrospectionKey, isRootStore, isSelectorKey, isStateKey, isTransceiver, makeRootMoleculeInStore, markDone, newest, openOperation, prettyPrintTokenType, readFromCache, readOrComputeValue, recallState, registerSelector, resetAtomOrSelector, resetInStore, seekInStore, setAtomOrSelector, setEpochNumberOfAction, setEpochNumberOfContinuity, setIntoStore, subscribeInStore, subscribeToRootDependency, subscribeToState, subscribeToTimeline, subscribeToTransaction, timeTravel, traceRootSelectorAtoms, updateSelectorAtoms, withdraw, writeToCache };
3535
+ export { CircularBuffer, FAMILY_MEMBER_TOKEN_TYPES, FamilyTracker, Future, IMPLICIT, INTERNAL_ROLES, Join, Junction, LazyMap, NotFoundError, RESET_STATE, StatefulSubject, Store, Subject, TRANSACTION_PHASES, Tracker, abortTransaction, actUponStore, allocateIntoStore, applyTransaction, arbitrary, assignTransactionToContinuity, become, buildTransaction, capitalize, claimWithinStore, clearStore, closeOperation, counterfeit, createJoin, createMutableAtom, createMutableAtomFamily, createReadonlyHeldSelector, createReadonlyPureSelector, createReadonlyPureSelectorFamily, createRegularAtom, createRegularAtomFamily, createSelectorFamily, createStandaloneSelector, createTimeline, createTransaction, createWritableHeldSelector, createWritablePureSelector, createWritablePureSelectorFamily, deallocateFromStore, deposit, disposeAtom, disposeFromStore, disposeSelector, editRelationsInStore, evictCachedValue, evictDownstreamFromAtom, evictDownstreamFromSelector, findInStore, findRelationsInStore, fuseWithinStore, getContinuityKey, getEnvironmentData, getEpochNumberOfAction, getEpochNumberOfContinuity, getFromStore, getInternalRelationsFromStore, getJoin, getJsonFamily, getJsonToken, getSelectorDependencyKeys, getTrace, getUpdateFamily, getUpdateToken, hasRole, ingestAtomUpdate, ingestCreationEvent, ingestDisposalEvent, ingestMoleculeCreationEvent, ingestMoleculeDisposalEvent, ingestMoleculeTransferEvent, ingestSelectorUpdate, ingestTransactionUpdate, initFamilyMemberInStore, installIntoStore, isAtomKey, isChildStore, isDone, isReadonlySelectorKey, isReservedIntrospectionKey, isRootStore, isSelectorKey, isStateKey, isTransceiver, makeRootMoleculeInStore, markDone, newest, openOperation, prettyPrintTokenType, readFromCache, readOrComputeValue, recallState, registerSelector, resetAtomOrSelector, resetInStore, seekInStore, setAtomOrSelector, setEpochNumberOfAction, setEpochNumberOfContinuity, setIntoStore, subscribeInStore, subscribeToRootDependency, subscribeToState, subscribeToTimeline, subscribeToTransaction, timeTravel, traceRootSelectorAtoms, updateSelectorAtoms, withdraw, writeToCache };
3551
3536
  //# sourceMappingURL=index.js.map