atom.io 0.36.1 → 0.36.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.
@@ -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,19 @@ 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_pure_selector`:
542
+ case `writable_pure_selector`:
543
+ evictDownstreamFromSelector(target, key);
544
+ break;
560
545
  }
546
+ closeOperation(target);
561
547
  subject.next({
562
548
  newValue: resolved,
563
549
  oldValue: future
@@ -611,45 +597,31 @@ function evictCachedValue(target, key) {
611
597
  //#region src/internal/get-state/read-or-compute-value.ts
612
598
  function readOrComputeValue(target, state, mut) {
613
599
  if (target.valueMap.has(state.key)) return readFromCache(target, state, mut);
600
+ const { key } = state;
614
601
  switch (state.type) {
615
602
  case `readonly_held_selector`:
616
603
  case `readonly_pure_selector`:
617
604
  case `writable_held_selector`:
618
605
  case `writable_pure_selector`:
619
- target.logger.info(`🧮`, state.type, state.key, `computing value`);
606
+ target.logger.info(`🧮`, state.type, key, `computing value`);
620
607
  return state.get();
621
608
  case `atom`: {
622
609
  let def;
623
610
  if (state.default instanceof Function) def = state.default();
624
611
  else def = state.default;
625
- const cachedValue = writeToCache(target, state.key, def, state.subject);
612
+ const cachedValue = writeToCache(target, state, def);
626
613
  target.logger.info(`💁`, `atom`, state.key, `could not find cached value; using default`, def);
627
614
  return cachedValue;
628
615
  }
629
616
  case `mutable_atom`: {
630
617
  const instance = new state.class();
631
- const cachedValue = writeToCache(target, state.key, instance, state.subject);
618
+ const cachedValue = writeToCache(target, state, instance);
632
619
  target.logger.info(`💁`, `mutable_atom`, state.key, `could not find cached value; using default`, instance);
633
620
  return cachedValue;
634
621
  }
635
622
  }
636
623
  }
637
624
 
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
625
  //#endregion
654
626
  //#region src/internal/set-state/become.ts
655
627
  const become = (nextVersionOfThing) => (originalThing) => nextVersionOfThing instanceof Function ? nextVersionOfThing(originalThing) : nextVersionOfThing;
@@ -684,9 +656,9 @@ const setAtom = (target, atom, next) => {
684
656
  const oldValue = readOrComputeValue(target, atom, `mut`);
685
657
  let newValue = become(next)(oldValue);
686
658
  target.logger.info(`📝`, `atom`, atom.key, `set to`, newValue);
687
- newValue = writeToCache(target, atom.key, newValue, atom.subject);
659
+ newValue = writeToCache(target, atom, newValue);
688
660
  markDone(target, atom.key);
689
- evictDownStream(target, atom);
661
+ evictDownstreamFromAtom(target, atom);
690
662
  const update = {
691
663
  oldValue,
692
664
  newValue
@@ -711,7 +683,7 @@ const setAtom = (target, atom, next) => {
711
683
  const mutable = target.atoms.get(key);
712
684
  const transceiver = readOrComputeValue(target, mutable, `mut`);
713
685
  const accepted = transceiver.do(update.newValue) === null;
714
- if (accepted === true) evictDownStream(target, mutable);
686
+ if (accepted === true) evictDownstreamFromAtom(target, mutable);
715
687
  }
716
688
  };
717
689
 
@@ -754,44 +726,6 @@ function getFamilyOfToken(store, token) {
754
726
  }
755
727
  }
756
728
 
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
729
  //#endregion
796
730
  //#region src/internal/set-state/set-atom-or-selector.ts
797
731
  const setAtomOrSelector = (store, state, value) => {
@@ -828,26 +762,45 @@ function setIntoStore(store, ...params) {
828
762
  value = params[2];
829
763
  token = findInStore(store, family, key);
830
764
  }
765
+ const action = value === RESET_STATE ? `reset` : `set`;
831
766
  if (`counterfeit` in token && `family` in token) {
832
767
  const subKey = token.family.subKey;
833
768
  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.`);
769
+ 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
770
  return;
836
771
  }
837
772
  const rejectionTime = openOperation(store, token);
838
773
  if (rejectionTime) {
839
- const unsubscribe = store.on.operationClose.subscribe(`waiting to set "${token.key}" at T-${rejectionTime}`, function waitUntilOperationCloseToSetState() {
774
+ const unsubscribe = store.on.operationClose.subscribe(`waiting to ${action} "${token.key}" at T-${rejectionTime}`, function waitUntilOperationCloseToSetState() {
840
775
  unsubscribe();
841
- store.logger.info(`🟢`, token.type, token.key, `resuming deferred setState from T-${rejectionTime}`);
776
+ store.logger.info(`🟢`, token.type, token.key, `resuming deferred`, action, `from T-${rejectionTime}`);
842
777
  setIntoStore(store, token, value);
843
778
  });
844
779
  return;
845
780
  }
846
781
  const state = withdraw(store, token);
847
- setAtomOrSelector(store, state, value);
782
+ if (value === RESET_STATE) resetAtomOrSelector(store, state);
783
+ else setAtomOrSelector(store, state, value);
848
784
  closeOperation(store);
849
785
  }
850
786
 
787
+ //#endregion
788
+ //#region src/internal/set-state/reset-in-store.ts
789
+ const RESET_STATE = Symbol(`RESET`);
790
+ function resetInStore(store, ...params) {
791
+ let token;
792
+ let family;
793
+ let key;
794
+ if (params.length === 1) {
795
+ token = params[0];
796
+ setIntoStore(store, token, RESET_STATE);
797
+ } else {
798
+ family = params[0];
799
+ key = params[1];
800
+ setIntoStore(store, family, key, RESET_STATE);
801
+ }
802
+ }
803
+
851
804
  //#endregion
852
805
  //#region src/internal/keys.ts
853
806
  const isAtomKey = (store, key) => newest(store).atoms.has(key);
@@ -961,7 +914,7 @@ const createReadonlyHeldSelector = (store, options, family) => {
961
914
  find,
962
915
  json
963
916
  }, constant);
964
- writeToCache(newest(store), key, constant, subject);
917
+ writeToCache(newest(store), readonlySelector, constant);
965
918
  covered.clear();
966
919
  return constant;
967
920
  };
@@ -1002,7 +955,7 @@ const createReadonlyPureSelector = (store, options, family) => {
1002
955
  find,
1003
956
  json
1004
957
  });
1005
- const cached = writeToCache(innerTarget, key, value, subject);
958
+ const cached = writeToCache(innerTarget, readonlySelector, value);
1006
959
  store.logger.info(`✨`, type, key, `=`, cached);
1007
960
  covered.clear();
1008
961
  return cached;
@@ -1580,7 +1533,7 @@ const createWritableHeldSelector = (store, options, family) => {
1580
1533
  for (const [downstreamSelectorKey, { source }] of upstreamStates) if (source !== key) innerTarget.selectorGraph.delete(downstreamSelectorKey, key);
1581
1534
  innerTarget.selectorAtoms.delete(key);
1582
1535
  getFn(getterToolkit, constant);
1583
- writeToCache(innerTarget, key, constant, subject);
1536
+ writeToCache(innerTarget, mySelector, constant);
1584
1537
  store.logger.info(`✨`, type, key, `=`, constant);
1585
1538
  covered.clear();
1586
1539
  return constant;
@@ -1590,7 +1543,7 @@ const createWritableHeldSelector = (store, options, family) => {
1590
1543
  const oldValue = getSelf(options.get, innerTarget);
1591
1544
  const newValue = become(next)(oldValue);
1592
1545
  store.logger.info(`📝`, type, key, `set (`, oldValue, `->`, newValue, `)`);
1593
- writeToCache(innerTarget, key, newValue, subject);
1546
+ writeToCache(innerTarget, mySelector, newValue);
1594
1547
  markDone(innerTarget, key);
1595
1548
  if (isRootStore(innerTarget)) subject.next({
1596
1549
  newValue,
@@ -1636,17 +1589,17 @@ const createWritablePureSelector = (store, options, family) => {
1636
1589
  for (const [downstreamSelectorKey, { source }] of upstreamStates) if (source !== key) innerTarget.selectorGraph.delete(downstreamSelectorKey, key);
1637
1590
  innerTarget.selectorAtoms.delete(key);
1638
1591
  const value = getFn(getterToolkit);
1639
- const cached = writeToCache(innerTarget, key, value, subject);
1592
+ const cached = writeToCache(innerTarget, mySelector, value);
1640
1593
  store.logger.info(`✨`, type, key, `=`, cached);
1641
1594
  covered.clear();
1642
- return value;
1595
+ return cached;
1643
1596
  };
1644
1597
  const setSelf = (next) => {
1645
1598
  const innerTarget = newest(store);
1646
1599
  const oldValue = getSelf(options.get, innerTarget);
1647
1600
  const newValue = become(next)(oldValue);
1648
1601
  store.logger.info(`📝`, type, key, `set (`, oldValue, `->`, newValue, `)`);
1649
- writeToCache(innerTarget, options.key, newValue, subject);
1602
+ writeToCache(innerTarget, mySelector, newValue);
1650
1603
  markDone(innerTarget, options.key);
1651
1604
  if (isRootStore(innerTarget)) subject.next({
1652
1605
  newValue,
@@ -2153,6 +2106,21 @@ function getFromStore(store, ...params) {
2153
2106
  return readOrComputeValue(store, withdraw(store, token));
2154
2107
  }
2155
2108
 
2109
+ //#endregion
2110
+ //#region src/internal/subscribe/subscribe-to-root-atoms.ts
2111
+ const subscribeToRootDependency = (target, selector, atom) => {
2112
+ return atom.subject.subscribe(`${selector.type}:${selector.key}`, (atomChange) => {
2113
+ target.logger.info(`📢`, selector.type, selector.key, `root`, atom.key, `went`, atomChange.oldValue, `->`, atomChange.newValue);
2114
+ const oldValue = recallState(target, selector);
2115
+ const newValue = readOrComputeValue(target, selector);
2116
+ target.logger.info(`✨`, selector.type, selector.key, `went`, oldValue, `->`, newValue);
2117
+ selector.subject.next({
2118
+ newValue,
2119
+ oldValue
2120
+ });
2121
+ });
2122
+ };
2123
+
2156
2124
  //#endregion
2157
2125
  //#region src/internal/subscribe/subscribe-to-state.ts
2158
2126
  function subscribeToState(store, token, key, handleUpdate) {
@@ -2195,6 +2163,46 @@ function subscribeToState(store, token, key, handleUpdate) {
2195
2163
  return unsubscribe;
2196
2164
  }
2197
2165
 
2166
+ //#endregion
2167
+ //#region src/internal/store/withdraw.ts
2168
+ function withdraw(store, token) {
2169
+ let withdrawn;
2170
+ let target = store;
2171
+ while (target !== null) {
2172
+ switch (token.type) {
2173
+ case `atom`:
2174
+ case `mutable_atom`:
2175
+ withdrawn = target.atoms.get(token.key);
2176
+ break;
2177
+ case `writable_pure_selector`:
2178
+ case `writable_held_selector`:
2179
+ withdrawn = target.writableSelectors.get(token.key);
2180
+ break;
2181
+ case `readonly_pure_selector`:
2182
+ case `readonly_held_selector`:
2183
+ withdrawn = target.readonlySelectors.get(token.key);
2184
+ break;
2185
+ case `atom_family`:
2186
+ case `mutable_atom_family`:
2187
+ case `writable_pure_selector_family`:
2188
+ case `readonly_pure_selector_family`:
2189
+ case `writable_held_selector_family`:
2190
+ case `readonly_held_selector_family`:
2191
+ withdrawn = target.families.get(token.key);
2192
+ break;
2193
+ case `timeline`:
2194
+ withdrawn = target.timelines.get(token.key);
2195
+ break;
2196
+ case `transaction`:
2197
+ withdrawn = target.transactions.get(token.key);
2198
+ break;
2199
+ }
2200
+ if (withdrawn) return withdrawn;
2201
+ target = target.child;
2202
+ }
2203
+ throw new NotFoundError(token, store);
2204
+ }
2205
+
2198
2206
  //#endregion
2199
2207
  //#region src/internal/subscribe/subscribe-to-timeline.ts
2200
2208
  const subscribeToTimeline = (store, token, key, handleUpdate) => {
@@ -2219,6 +2227,21 @@ const subscribeToTransaction = (store, token, key, handleUpdate) => {
2219
2227
  };
2220
2228
  };
2221
2229
 
2230
+ //#endregion
2231
+ //#region src/internal/subscribe/subscribe-in-store.ts
2232
+ function subscribeInStore(store, token, handleUpdate, key = arbitrary()) {
2233
+ switch (token.type) {
2234
+ case `atom`:
2235
+ case `mutable_atom`:
2236
+ case `readonly_pure_selector`:
2237
+ case `readonly_held_selector`:
2238
+ case `writable_pure_selector`:
2239
+ case `writable_held_selector`: return subscribeToState(store, token, key, handleUpdate);
2240
+ case `transaction`: return subscribeToTransaction(store, token, key, handleUpdate);
2241
+ case `timeline`: return subscribeToTimeline(store, token, key, handleUpdate);
2242
+ }
2243
+ }
2244
+
2222
2245
  //#endregion
2223
2246
  //#region src/internal/mutable/tracker.ts
2224
2247
  /**
@@ -2640,46 +2663,6 @@ const clearStore = (store) => {
2640
2663
  store.config = config;
2641
2664
  };
2642
2665
 
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
2666
  //#endregion
2684
2667
  //#region src/internal/atom/create-regular-atom.ts
2685
2668
  function createRegularAtom(store, options, family, internalRoles) {
@@ -2800,20 +2783,6 @@ function installIntoStore(tokens, target, source) {
2800
2783
  }
2801
2784
  }
2802
2785
 
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
2786
  //#endregion
2818
2787
  //#region src/internal/join/join-internal.ts
2819
2788
  var Join = class {
@@ -3117,6 +3086,20 @@ var Join = class {
3117
3086
  }
3118
3087
  };
3119
3088
 
3089
+ //#endregion
3090
+ //#region src/internal/join/create-join.ts
3091
+ function createJoin(store, options, defaultContent) {
3092
+ store.joins.set(options.key, new Join(options, defaultContent, store));
3093
+ const token = {
3094
+ key: options.key,
3095
+ type: `join`,
3096
+ a: options.between[0],
3097
+ b: options.between[1],
3098
+ cardinality: options.cardinality
3099
+ };
3100
+ return token;
3101
+ }
3102
+
3120
3103
  //#endregion
3121
3104
  //#region src/internal/join/get-join.ts
3122
3105
  function getJoin(token, store) {
@@ -3547,5 +3530,5 @@ const timeTravel = (store, action, token) => {
3547
3530
  };
3548
3531
 
3549
3532
  //#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 };
3533
+ 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
3534
  //# sourceMappingURL=index.js.map