atom.io 0.27.3 → 0.27.5

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 (96) hide show
  1. package/data/dist/index.js +57 -72
  2. package/data/src/dict.ts +9 -12
  3. package/data/src/join.ts +25 -26
  4. package/data/src/struct-family.ts +17 -23
  5. package/data/src/struct.ts +9 -12
  6. package/dist/{chunk-ETCFHO7J.js → chunk-6ABWLAGY.js} +246 -159
  7. package/dist/index.d.ts +4 -4
  8. package/dist/index.js +33 -53
  9. package/ephemeral/dist/index.js +1 -1
  10. package/ephemeral/src/find-state.ts +1 -1
  11. package/immortal/dist/index.js +2 -2
  12. package/immortal/src/seek-state.ts +2 -2
  13. package/internal/dist/index.d.ts +88 -73
  14. package/internal/dist/index.js +1 -1
  15. package/internal/src/atom/create-regular-atom.ts +3 -3
  16. package/internal/src/atom/create-standalone-atom.ts +7 -5
  17. package/internal/src/families/create-atom-family.ts +5 -5
  18. package/internal/src/families/create-readonly-selector-family.ts +35 -7
  19. package/internal/src/families/create-regular-atom-family.ts +16 -6
  20. package/internal/src/families/create-selector-family.ts +5 -5
  21. package/internal/src/families/create-writable-selector-family.ts +35 -8
  22. package/internal/src/families/dispose-from-store.ts +22 -16
  23. package/internal/src/families/find-in-store.ts +11 -11
  24. package/internal/src/families/init-family-member.ts +9 -9
  25. package/internal/src/families/seek-in-store.ts +10 -13
  26. package/internal/src/get-state/get-from-store.ts +58 -20
  27. package/internal/src/get-state/read-or-compute-value.ts +1 -1
  28. package/internal/src/index.ts +5 -3
  29. package/internal/src/ingest-updates/ingest-atom-update.ts +1 -1
  30. package/internal/src/ingest-updates/ingest-creation-disposal.ts +5 -5
  31. package/internal/src/molecule/create-molecule-family.ts +1 -1
  32. package/internal/src/molecule/dispose-molecule.ts +1 -1
  33. package/internal/src/molecule/grow-molecule-in-store.ts +1 -1
  34. package/internal/src/molecule/make-molecule-in-store.ts +5 -5
  35. package/internal/src/mutable/create-mutable-atom-family.ts +15 -6
  36. package/internal/src/mutable/create-mutable-atom.ts +3 -3
  37. package/internal/src/mutable/get-json-token.ts +2 -2
  38. package/internal/src/mutable/tracker-family.ts +3 -3
  39. package/internal/src/mutable/tracker.ts +14 -18
  40. package/internal/src/selector/create-readonly-selector.ts +2 -2
  41. package/internal/src/selector/create-standalone-selector.ts +5 -5
  42. package/internal/src/selector/create-writable-selector.ts +8 -8
  43. package/internal/src/selector/register-selector.ts +9 -9
  44. package/internal/src/set-state/set-into-store.ts +21 -18
  45. package/internal/src/store/deposit.ts +62 -21
  46. package/internal/src/store/store.ts +2 -1
  47. package/internal/src/subscribe/index.ts +2 -0
  48. package/internal/src/subscribe/subscribe-in-store.ts +62 -0
  49. package/internal/src/timeline/time-travel.ts +1 -1
  50. package/internal/src/transaction/build-transaction.ts +7 -6
  51. package/introspection/dist/index.js +66 -87
  52. package/introspection/src/attach-atom-index.ts +5 -8
  53. package/introspection/src/attach-selector-index.ts +6 -8
  54. package/introspection/src/attach-timeline-family.ts +25 -28
  55. package/introspection/src/attach-timeline-index.ts +5 -8
  56. package/introspection/src/attach-transaction-index.ts +5 -8
  57. package/introspection/src/attach-transaction-logs.ts +21 -27
  58. package/json/dist/index.js +12 -15
  59. package/json/src/select-json-family.ts +4 -4
  60. package/json/src/select-json.ts +6 -9
  61. package/package.json +4 -4
  62. package/react/dist/index.js +7 -7
  63. package/react/src/parse-state-overloads.ts +2 -2
  64. package/react/src/use-i.ts +1 -1
  65. package/react/src/use-json.ts +2 -2
  66. package/react/src/use-o.ts +2 -2
  67. package/realtime-client/dist/index.js +35 -55
  68. package/realtime-client/src/pull-atom-family-member.ts +1 -1
  69. package/realtime-client/src/pull-atom.ts +1 -1
  70. package/realtime-client/src/pull-mutable-atom-family-member.ts +3 -3
  71. package/realtime-client/src/pull-mutable-atom.ts +3 -3
  72. package/realtime-client/src/sync-continuity.ts +27 -47
  73. package/realtime-react/dist/index.js +3 -3
  74. package/realtime-react/src/use-pull-atom-family-member.ts +1 -1
  75. package/realtime-react/src/use-pull-mutable-family-member.ts +1 -1
  76. package/realtime-react/src/use-pull-selector-family-member.ts +1 -1
  77. package/realtime-server/dist/index.js +32 -32
  78. package/realtime-server/src/realtime-continuity-synchronizer.ts +16 -16
  79. package/realtime-server/src/realtime-family-provider.ts +3 -3
  80. package/realtime-server/src/realtime-mutable-family-provider.ts +5 -5
  81. package/realtime-server/src/realtime-mutable-provider.ts +2 -2
  82. package/realtime-server/src/realtime-state-provider.ts +1 -1
  83. package/realtime-server/src/realtime-state-receiver.ts +1 -1
  84. package/realtime-testing/dist/index.js +7 -7
  85. package/realtime-testing/src/setup-realtime-test.tsx +7 -7
  86. package/src/atom.ts +2 -2
  87. package/src/dispose-state.ts +2 -2
  88. package/src/get-state.ts +9 -13
  89. package/src/logger.ts +4 -0
  90. package/src/molecule.ts +1 -1
  91. package/src/selector.ts +2 -2
  92. package/src/set-state.ts +10 -7
  93. package/src/silo.ts +23 -53
  94. package/src/subscribe.ts +3 -23
  95. package/src/timeline.ts +2 -2
  96. package/internal/src/families/throw-in-case-of-conflicting-family.ts +0 -18
package/dist/index.d.ts CHANGED
@@ -287,7 +287,7 @@ declare const LoggerIconDictionary: {
287
287
  readonly "\uD83D\uDC41": "Determining perspective";
288
288
  };
289
289
  type LoggerIcon = keyof typeof LoggerIconDictionary;
290
- type TokenDenomination = `atom` | `continuity` | `molecule_family` | `molecule` | `mutable_atom` | `readonly_selector` | `selector` | `state` | `timeline` | `transaction` | `unknown`;
290
+ type TokenDenomination = `atom_family` | `atom` | `continuity` | `molecule_family` | `molecule` | `mutable_atom_family` | `mutable_atom` | `readonly_selector_family` | `readonly_selector` | `selector_family` | `selector` | `state` | `timeline` | `transaction` | `unknown`;
291
291
  declare const LOG_LEVELS: readonly ["info", "warn", "error"];
292
292
  type LogLevel = (typeof LOG_LEVELS)[number];
293
293
  type LogFn = (icon: LoggerIcon, denomination: TokenDenomination, tokenKey: string, message: string, ...rest: unknown[]) => void;
@@ -355,9 +355,9 @@ type KeyedStateUpdate<T> = Flat<StateUpdate<T> & {
355
355
  }>;
356
356
  type UpdateHandler<T> = (update: StateUpdate<T>) => void;
357
357
  type TransactionUpdateHandler<F extends Func> = (data: TransactionUpdate<F>) => void;
358
- declare function subscribe<T>(token: ReadableToken<T>, handleUpdate: UpdateHandler<T>, key?: string, store?: Store): () => void;
359
- declare function subscribe<F extends Func>(token: TransactionToken<F>, handleUpdate: TransactionUpdateHandler<F>, key?: string, store?: Store): () => void;
360
- declare function subscribe<M extends TimelineManageable>(token: TimelineToken<M>, handleUpdate: (update: TimelineUpdate<M> | `redo` | `undo`) => void, key?: string, store?: Store): () => void;
358
+ declare function subscribe<T>(token: ReadableToken<T>, handleUpdate: UpdateHandler<T>, key?: string): () => void;
359
+ declare function subscribe<F extends Func>(token: TransactionToken<F>, handleUpdate: TransactionUpdateHandler<F>, key?: string): () => void;
360
+ declare function subscribe<M extends TimelineManageable>(token: TimelineToken<M>, handleUpdate: (update: TimelineUpdate<M> | `redo` | `undo`) => void, key?: string): () => void;
361
361
 
362
362
  type TimelineManageable = AtomFamilyToken<any, any> | AtomToken<any>;
363
363
  type AtomOnly<M extends TimelineManageable> = M extends AtomFamilyToken<any, any> ? AtomToken<any> : M extends AtomToken<any> ? M : never;
package/dist/index.js CHANGED
@@ -1,30 +1,26 @@
1
1
  import './chunk-XWL6SNVU.js';
2
2
  import * as Internal from 'atom.io/internal';
3
- import { createStandaloneAtom, IMPLICIT, createAtomFamily, createMoleculeFamily, makeMoleculeInStore, Molecule, createStandaloneSelector, createSelectorFamily, Store, createTransaction, createTimeline, findInStore, getFromStore, setIntoStore, disposeFromStore, timeTravel, subscribeToTimeline, subscribeToTransaction, subscribeToState, arbitrary, actUponStore } from 'atom.io/internal';
3
+ import { createStandaloneAtom, IMPLICIT, createAtomFamily, createMoleculeFamily, makeMoleculeInStore, Molecule, createStandaloneSelector, createSelectorFamily, Store, createTransaction, createTimeline, findInStore, getFromStore, setIntoStore, disposeFromStore, subscribeInStore, timeTravel, arbitrary, actUponStore } from 'atom.io/internal';
4
4
  import { stringifyJson } from 'atom.io/json';
5
5
 
6
6
  function atom(options) {
7
- return createStandaloneAtom(options, IMPLICIT.STORE);
7
+ return createStandaloneAtom(IMPLICIT.STORE, options);
8
8
  }
9
9
  function atomFamily(options) {
10
- return createAtomFamily(options, IMPLICIT.STORE);
10
+ return createAtomFamily(IMPLICIT.STORE, options);
11
11
  }
12
12
  function disposeState(token, key) {
13
13
  if (key) {
14
- Internal.disposeFromStore(token, key, Internal.IMPLICIT.STORE);
14
+ Internal.disposeFromStore(Internal.IMPLICIT.STORE, token, key);
15
15
  } else {
16
- Internal.disposeFromStore(token, Internal.IMPLICIT.STORE);
16
+ Internal.disposeFromStore(Internal.IMPLICIT.STORE, token);
17
17
  }
18
18
  }
19
- function getState(token, key) {
20
- if (key) {
21
- return Internal.getFromStore(
22
- token,
23
- key,
24
- Internal.IMPLICIT.STORE
25
- );
19
+ function getState(...params) {
20
+ if (params.length === 2) {
21
+ return Internal.getFromStore(Internal.IMPLICIT.STORE, ...params);
26
22
  }
27
- return Internal.getFromStore(token, Internal.IMPLICIT.STORE);
23
+ return Internal.getFromStore(Internal.IMPLICIT.STORE, ...params);
28
24
  }
29
25
 
30
26
  // src/logger.ts
@@ -63,7 +59,7 @@ var AtomIOLogger = class {
63
59
  };
64
60
  };
65
61
  function moleculeFamily(options) {
66
- return createMoleculeFamily(options, IMPLICIT.STORE);
62
+ return createMoleculeFamily(IMPLICIT.STORE, options);
67
63
  }
68
64
  function makeMolecule(context, family, key, ...params) {
69
65
  return makeMoleculeInStore(IMPLICIT.STORE, context, family, key, ...params);
@@ -77,16 +73,16 @@ function makeRootMolecule(key, store = IMPLICIT.STORE) {
77
73
  };
78
74
  }
79
75
  function selector(options) {
80
- return createStandaloneSelector(options, IMPLICIT.STORE);
76
+ return createStandaloneSelector(IMPLICIT.STORE, options);
81
77
  }
82
78
  function selectorFamily(options) {
83
- return createSelectorFamily(options, IMPLICIT.STORE);
79
+ return createSelectorFamily(IMPLICIT.STORE, options);
84
80
  }
85
- function setState(token, p1, p2) {
86
- if (p2) {
87
- Internal.setIntoStore(token, p1, p2, Internal.IMPLICIT.STORE);
81
+ function setState(...params) {
82
+ if (params.length === 2) {
83
+ Internal.setIntoStore(Internal.IMPLICIT.STORE, ...params);
88
84
  } else {
89
- Internal.setIntoStore(token, p1, Internal.IMPLICIT.STORE);
85
+ Internal.setIntoStore(Internal.IMPLICIT.STORE, ...params);
90
86
  }
91
87
  }
92
88
  var Silo = class {
@@ -108,63 +104,47 @@ var Silo = class {
108
104
  makeMolecule;
109
105
  constructor(config, fromStore = null) {
110
106
  const s = new Store(config, fromStore);
111
- function _atom(options) {
112
- return createStandaloneAtom(options, s);
113
- }
114
- function _atomFamily(options) {
115
- return createAtomFamily(options, s);
116
- }
117
107
  this.store = s;
118
- this.atom = _atom;
119
- this.atomFamily = _atomFamily;
120
- this.selector = (options) => createStandaloneSelector(options, s);
121
- this.selectorFamily = (options) => createSelectorFamily(options, s);
108
+ this.atom = (options) => createStandaloneAtom(s, options);
109
+ this.atomFamily = (options) => createAtomFamily(s, options);
110
+ this.selector = (options) => createStandaloneSelector(s, options);
111
+ this.selectorFamily = (options) => createSelectorFamily(s, options);
122
112
  this.transaction = (options) => createTransaction(options, s);
123
113
  this.timeline = (options) => createTimeline(options, s);
124
- this.findState = (token, key) => findInStore(token, key, s);
125
- this.getState = (...params) => getFromStore(...params, s);
114
+ this.findState = (...params) => findInStore(s, ...params);
115
+ this.getState = (...params) => getFromStore(s, ...params);
126
116
  this.setState = (...params) => {
127
- setIntoStore(...params, s);
117
+ setIntoStore(s, ...params);
128
118
  };
129
119
  this.disposeState = (...params) => {
130
- disposeFromStore(...params, s);
120
+ disposeFromStore(s, ...params);
131
121
  };
132
- this.subscribe = (token, handler, key) => subscribe(token, handler, key, s);
122
+ this.subscribe = (...params) => subscribeInStore(s, ...params);
133
123
  this.undo = (token) => {
134
- timeTravel(`undo`, token, s);
124
+ timeTravel(s, `undo`, token);
135
125
  };
136
126
  this.redo = (token) => {
137
- timeTravel(`redo`, token, s);
127
+ timeTravel(s, `redo`, token);
138
128
  };
139
- this.moleculeFamily = (...params) => {
140
- return createMoleculeFamily(...params, s);
129
+ this.moleculeFamily = (options) => {
130
+ return createMoleculeFamily(s, options);
141
131
  };
142
132
  this.makeMolecule = (...params) => {
143
133
  return makeMoleculeInStore(s, ...params);
144
134
  };
145
135
  }
146
136
  };
147
- function subscribe(token, handleUpdate, key = arbitrary(), store = IMPLICIT.STORE) {
148
- switch (token.type) {
149
- case `atom`:
150
- case `mutable_atom`:
151
- case `readonly_selector`:
152
- case `selector`:
153
- return subscribeToState(token, handleUpdate, key, store);
154
- case `transaction`:
155
- return subscribeToTransaction(token, handleUpdate, key, store);
156
- case `timeline`:
157
- return subscribeToTimeline(token, handleUpdate, key, store);
158
- }
137
+ function subscribe(token, handleUpdate, key = arbitrary()) {
138
+ return subscribeInStore(IMPLICIT.STORE, token, handleUpdate, key);
159
139
  }
160
140
  var timeline = (options) => {
161
141
  return createTimeline(options, IMPLICIT.STORE);
162
142
  };
163
143
  var redo = (tl) => {
164
- timeTravel(`redo`, tl, IMPLICIT.STORE);
144
+ timeTravel(IMPLICIT.STORE, `redo`, tl);
165
145
  };
166
146
  var undo = (tl) => {
167
- timeTravel(`undo`, tl, IMPLICIT.STORE);
147
+ timeTravel(IMPLICIT.STORE, `undo`, tl);
168
148
  };
169
149
  function transaction(options) {
170
150
  return createTransaction(options, IMPLICIT.STORE);
@@ -2,7 +2,7 @@ import '../../dist/chunk-XWL6SNVU.js';
2
2
  import { findInStore, IMPLICIT } from 'atom.io/internal';
3
3
 
4
4
  function findState(token, key) {
5
- const state = findInStore(token, key, IMPLICIT.STORE);
5
+ const state = findInStore(IMPLICIT.STORE, token, key);
6
6
  return state;
7
7
  }
8
8
 
@@ -92,6 +92,6 @@ export function findState(
92
92
  token: ReadableFamilyToken<any, any>,
93
93
  key: Json.Serializable,
94
94
  ): ReadableToken<any> {
95
- const state = findInStore(token, key, IMPLICIT.STORE)
95
+ const state = findInStore(IMPLICIT.STORE, token, key)
96
96
  return state
97
97
  }
@@ -3,9 +3,9 @@ import { seekInStore, IMPLICIT } from 'atom.io/internal';
3
3
 
4
4
  function seekState(token, key) {
5
5
  if (token.type === `molecule_family`) {
6
- return seekInStore(token, key, IMPLICIT.STORE);
6
+ return seekInStore(IMPLICIT.STORE, token, key);
7
7
  }
8
- const state = seekInStore(token, key, IMPLICIT.STORE);
8
+ const state = seekInStore(IMPLICIT.STORE, token, key);
9
9
  return state;
10
10
  }
11
11
 
@@ -65,8 +65,8 @@ export function seekState(
65
65
  key: Canonical,
66
66
  ): MoleculeToken<any> | ReadableToken<any> | undefined {
67
67
  if (token.type === `molecule_family`) {
68
- return seekInStore(token, key, IMPLICIT.STORE)
68
+ return seekInStore(IMPLICIT.STORE, token, key)
69
69
  }
70
- const state = seekInStore(token, key, IMPLICIT.STORE)
70
+ const state = seekInStore(IMPLICIT.STORE, token, key)
71
71
  return state
72
72
  }
@@ -1,7 +1,8 @@
1
1
  import * as atom_io from 'atom.io';
2
- import { TransactionToken, TransactionUpdate, TransactionOptions, ActorToolkit, RegularAtomToken, MutableAtomToken, AtomToken, WritableSelectorToken, ReadonlySelectorToken, SelectorToken, WritableToken, MoleculeToken, MoleculeFamily, MoleculeFamilyToken, ReadableToken, TimelineManageable, StateUpdate, TokenType, FamilyMetadata, StateCreation, StateDisposal, MoleculeConstructor, MoleculeCreation, MoleculeDisposal, TimelineUpdate, TimelineOptions, TimelineToken, AtomIOLogger, Logger, RegularAtomFamilyToken, MutableAtomFamilyToken, AtomFamilyToken, ReadonlySelectorFamilyToken, WritableSelectorFamilyToken, SelectorFamilyToken, ReadableFamilyToken, WritableFamilyToken, MutableAtomOptions, MutableAtomFamilyOptions, RegularAtomOptions, RegularAtomFamilyOptions, ReadonlySelectorFamilyOptions, WritableSelectorFamilyOptions, MoleculeKey, KeyedStateUpdate, MoleculeFamilyOptions, MoleculeParams, ReadonlySelectorOptions, WritableSelectorOptions, SetterToolkit, UpdateHandler, TransactionUpdateHandler } from 'atom.io';
2
+ import { TransactionToken, TransactionUpdate, TransactionOptions, ActorToolkit, RegularAtomToken, MutableAtomToken, AtomToken, WritableSelectorToken, ReadonlySelectorToken, SelectorToken, WritableToken, ReadableToken, RegularAtomFamilyToken, MutableAtomFamilyToken, AtomFamilyToken, WritableSelectorFamilyToken, ReadonlySelectorFamilyToken, SelectorFamilyToken, WritableFamilyToken, ReadableFamilyToken, MoleculeConstructor, MoleculeFamily, MoleculeFamilyToken, MoleculeToken, TimelineManageable, StateUpdate, TokenType, FamilyMetadata, StateCreation, StateDisposal, MoleculeCreation, MoleculeDisposal, TimelineUpdate, TimelineOptions, TimelineToken, AtomIOLogger, Logger, MutableAtomOptions, MutableAtomFamilyOptions, RegularAtomOptions, RegularAtomFamilyOptions, ReadonlySelectorFamilyOptions, WritableSelectorFamilyOptions, MoleculeKey, KeyedStateUpdate, MoleculeFamilyOptions, MoleculeParams, ReadonlySelectorOptions, WritableSelectorOptions, SetterToolkit, UpdateHandler, TransactionUpdateHandler } from 'atom.io';
3
3
  import { Canonical, Json, JsonInterface } from 'atom.io/json';
4
4
  import { Join } from 'atom.io/data';
5
+ import { Store as Store$1, Func as Func$1 } from 'atom.io/internal';
5
6
 
6
7
  type primitive = boolean | number | string | null;
7
8
 
@@ -156,14 +157,19 @@ declare function deposit<T>(state: WritableSelector<T>): WritableSelectorToken<T
156
157
  declare function deposit<T>(state: ReadonlySelector<T>): ReadonlySelectorToken<T>;
157
158
  declare function deposit<T>(state: Selector<T>): SelectorToken<T>;
158
159
  declare function deposit<T>(state: WritableState<T>): WritableToken<T>;
159
- declare function deposit<K extends Canonical, S extends {
160
- [key: string]: any;
161
- }, P extends any[]>(state: Molecule<any>): MoleculeToken<any>;
162
- declare function deposit<K extends Canonical, S extends {
163
- [key: string]: any;
164
- }, P extends any[]>(state: MoleculeFamily<any>): MoleculeFamilyToken<any>;
165
- declare function deposit<T extends Func>(state: Transaction<T>): TransactionToken<T>;
166
160
  declare function deposit<T>(state: ReadableState<T>): ReadableToken<T>;
161
+ declare function deposit<T, K extends Canonical>(state: RegularAtomFamily<T, K>): RegularAtomFamilyToken<T, K>;
162
+ declare function deposit<T extends Transceiver<any>, J extends Json.Serializable, K extends Canonical>(state: MutableAtomFamily<T, J, K>): MutableAtomFamilyToken<T, J, K>;
163
+ declare function deposit<T>(state: AtomFamily<T, any>): AtomFamilyToken<T, any>;
164
+ declare function deposit<T>(state: WritableSelectorFamily<T, any>): WritableSelectorFamilyToken<T, any>;
165
+ declare function deposit<T>(state: ReadonlySelectorFamily<T, any>): ReadonlySelectorFamilyToken<T, any>;
166
+ declare function deposit<T>(state: SelectorFamily<T, any>): SelectorFamilyToken<T, any>;
167
+ declare function deposit<T>(state: WritableFamily<T, any>): WritableFamilyToken<T, any>;
168
+ declare function deposit<T>(state: ReadableFamily<T, any>): ReadableFamilyToken<T, any>;
169
+ declare function deposit<M extends MoleculeConstructor>(state: MoleculeFamily<M>): MoleculeFamilyToken<M>;
170
+ declare function deposit<M extends MoleculeConstructor>(state: Molecule<M>): MoleculeToken<M>;
171
+ declare function deposit<T extends Func>(state: Transaction<T>): TransactionToken<T>;
172
+ declare function deposit(state: Molecule<any> | ReadableState<any>): MoleculeToken<any> | ReadableToken<any>;
167
173
 
168
174
  interface Lineage {
169
175
  parent: typeof this | null;
@@ -230,12 +236,13 @@ type Timeline<ManagedAtom extends TimelineManageable> = {
230
236
  };
231
237
  declare function createTimeline<ManagedAtom extends TimelineManageable>(options: TimelineOptions<ManagedAtom>, store: Store, data?: Timeline<ManagedAtom>): TimelineToken<ManagedAtom>;
232
238
 
233
- declare const timeTravel: (action: `redo` | `undo`, token: TimelineToken<any>, store: Store) => void;
239
+ declare const timeTravel: (store: Store, action: `redo` | `undo`, token: TimelineToken<any>) => void;
234
240
 
235
241
  declare class Store implements Lineage {
236
242
  parent: Store | null;
237
243
  child: Store | null;
238
244
  valueMap: Map<string, any>;
245
+ defaults: Map<string, any>;
239
246
  atoms: Map<string, Atom<any>>;
240
247
  selectors: Map<string, WritableSelector<any>>;
241
248
  readonlySelectors: Map<string, ReadonlySelector<any>>;
@@ -320,13 +327,13 @@ declare function isTransceiver(value: unknown): value is Transceiver<Json.Serial
320
327
  type TransceiverMode = `playback` | `record` | `transaction`;
321
328
  type Signal<TVR extends Transceiver<any>> = TVR extends Transceiver<infer S> ? S : never;
322
329
 
323
- declare function createMutableAtom<T extends Transceiver<any>, J extends Json.Serializable>(options: MutableAtomOptions<T, J>, family: FamilyMetadata | undefined, store: Store): MutableAtomToken<T, J>;
330
+ declare function createMutableAtom<T extends Transceiver<any>, J extends Json.Serializable>(store: Store, options: MutableAtomOptions<T, J>, family: FamilyMetadata | undefined): MutableAtomToken<T, J>;
324
331
 
325
- declare function createMutableAtomFamily<T extends Transceiver<any>, J extends Json.Serializable, K extends string>(options: MutableAtomFamilyOptions<T, J, K>, store: Store, internalRoles?: string[]): MutableAtomFamilyToken<T, J, K>;
332
+ declare function createMutableAtomFamily<T extends Transceiver<any>, J extends Json.Serializable, K extends string>(store: Store, options: MutableAtomFamilyOptions<T, J, K>, internalRoles?: string[]): MutableAtomFamilyToken<T, J, K>;
326
333
 
327
334
  declare const getJsonFamily: <Core extends Transceiver<Json.Serializable>, SerializableCore extends Json.Serializable, Key extends string>(mutableAtomFamily: MutableAtomFamilyToken<Core, SerializableCore, Key>, store: Store) => WritableSelectorFamily<SerializableCore, Key>;
328
335
 
329
- declare const getJsonToken: <Core extends Transceiver<any>, SerializableCore extends Json.Serializable>(mutableAtomToken: MutableAtomToken<Core, SerializableCore>, store: Store) => WritableSelectorToken<SerializableCore>;
336
+ declare const getJsonToken: <Core extends Transceiver<any>, SerializableCore extends Json.Serializable>(store: Store, mutableAtomToken: MutableAtomToken<Core, SerializableCore>) => WritableSelectorToken<SerializableCore>;
330
337
 
331
338
  declare const getUpdateFamily: <Core extends Transceiver<Json.Serializable>, SerializableCore extends Json.Serializable, Key extends string>(mutableAtomFamily: MutableAtomFamilyToken<Core, SerializableCore, Key>, store: Store) => AtomFamily<Signal<Core>, Key>;
332
339
 
@@ -359,10 +366,10 @@ declare class FamilyTracker<Core extends Transceiver<any>, FamilyMemberKey exten
359
366
 
360
367
  declare function arbitrary(random?: () => number): string;
361
368
 
362
- declare function createRegularAtom<T>(options: RegularAtomOptions<T>, family: FamilyMetadata | undefined, store: Store): RegularAtomToken<T>;
369
+ declare function createRegularAtom<T>(store: Store, options: RegularAtomOptions<T>, family: FamilyMetadata | undefined): RegularAtomToken<T>;
363
370
 
364
- declare function createStandaloneAtom<T>(options: RegularAtomOptions<T>, store: Store): RegularAtomToken<T>;
365
- declare function createStandaloneAtom<T extends Transceiver<any>, J extends Json.Serializable>(options: MutableAtomOptions<T, J>, store: Store): MutableAtomToken<T, J>;
371
+ declare function createStandaloneAtom<T>(store: Store, options: RegularAtomOptions<T>): RegularAtomToken<T>;
372
+ declare function createStandaloneAtom<T extends Transceiver<any>, J extends Json.Serializable>(store: Store, options: MutableAtomOptions<T, J>): MutableAtomToken<T, J>;
366
373
 
367
374
  declare function disposeAtom(atomToken: AtomToken<unknown>, store: Store): void;
368
375
 
@@ -394,57 +401,59 @@ declare function cacheValue<T extends Promise<any>>(key: string, value: T, subje
394
401
  declare const readCachedValue: <T>(token: ReadableState<any>, target: Store) => T;
395
402
  declare const evictCachedValue: (key: string, target: Store) => void;
396
403
 
397
- declare function createAtomFamily<T extends Transceiver<any>, J extends Json.Serializable, K extends Canonical>(options: MutableAtomFamilyOptions<T, J, K>, store: Store): MutableAtomFamilyToken<T, J, K>;
398
- declare function createAtomFamily<T, K extends Canonical>(options: RegularAtomFamilyOptions<T, K>, store: Store): RegularAtomFamilyToken<T, K>;
399
-
400
- declare function createReadonlySelectorFamily<T, K extends Canonical>(options: ReadonlySelectorFamilyOptions<T, K>, store: Store, internalRoles?: string[]): ReadonlySelectorFamilyToken<T, K>;
401
-
402
- declare function createRegularAtomFamily<T, K extends Canonical>(options: RegularAtomFamilyOptions<T, K>, store: Store, internalRoles?: string[]): RegularAtomFamilyToken<T, K>;
403
-
404
- declare function createSelectorFamily<T, K extends Canonical>(options: WritableSelectorFamilyOptions<T, K>, store: Store): WritableSelectorFamilyToken<T, K>;
405
- declare function createSelectorFamily<T, K extends Canonical>(options: ReadonlySelectorFamilyOptions<T, K>, store: Store): ReadonlySelectorFamilyToken<T, K>;
406
-
407
- declare function disposeFromStore(token: MoleculeToken<any> | ReadableToken<any>, store: Store): void;
408
- declare function disposeFromStore<K extends Canonical>(token: ReadableFamilyToken<any, K>, key: K, store: Store): void;
409
- declare function disposeFromStore<M extends MoleculeConstructor>(token: MoleculeFamilyToken<M>, key: MoleculeKey<M>, store: Store): void;
410
-
411
- declare function findInStore<T extends Transceiver<any>, J extends Json.Serializable, K extends Canonical, Key extends K>(token: MutableAtomFamilyToken<T, J, K>, key: Key, store: Store): MutableAtomToken<T, J>;
412
- declare function findInStore<T, K extends Canonical, Key extends K>(token: RegularAtomFamilyToken<T, K>, key: Key, store: Store): RegularAtomToken<T>;
413
- declare function findInStore<T, K extends Canonical, Key extends K>(token: AtomFamilyToken<T, K>, key: Key, store: Store): AtomToken<T>;
414
- declare function findInStore<T, K extends Canonical, Key extends K>(token: WritableSelectorFamilyToken<T, K>, key: Key, store: Store): WritableSelectorToken<T>;
415
- declare function findInStore<T, K extends Canonical, Key extends K>(token: ReadonlySelectorFamilyToken<T, K>, key: Key, store: Store): ReadonlySelectorToken<T>;
416
- declare function findInStore<T, K extends Canonical, Key extends K>(token: SelectorFamilyToken<T, K>, key: Key, store: Store): SelectorToken<T>;
417
- declare function findInStore<T, K extends Canonical, Key extends K>(token: WritableFamilyToken<T, K>, key: Key, store: Store): WritableToken<T>;
418
- declare function findInStore<T, K extends Canonical, Key extends K>(token: ReadableFamilyToken<T, K>, key: Key, store: Store): ReadableToken<T>;
419
-
420
- declare function initFamilyMemberInStore<T extends Transceiver<any>, J extends Json.Serializable, K extends Canonical, Key extends K>(token: MutableAtomFamilyToken<T, J, K>, key: Key, store: Store): MutableAtomToken<T, J>;
421
- declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(token: RegularAtomFamilyToken<T, K>, key: Key, store: Store): RegularAtomToken<T>;
422
- declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(token: AtomFamilyToken<T, K>, key: Key, store: Store): AtomToken<T>;
423
- declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(token: WritableSelectorFamilyToken<T, K>, key: Key, store: Store): WritableSelectorToken<T>;
424
- declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(token: ReadonlySelectorFamilyToken<T, K>, key: Key, store: Store): ReadonlySelectorToken<T>;
425
- declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(token: SelectorFamilyToken<T, K>, key: Key, store: Store): SelectorToken<T>;
426
- declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(token: WritableFamilyToken<T, K>, key: Key, store: Store): WritableToken<T>;
427
- declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(token: ReadableFamilyToken<T, K>, key: Key, store: Store): ReadableToken<T>;
428
-
429
- declare function seekInStore<T extends Transceiver<any>, J extends Json.Serializable, K extends Canonical, Key extends K>(token: MutableAtomFamilyToken<T, J, K>, key: Key, store: Store): MutableAtomToken<T, J> | undefined;
430
- declare function seekInStore<T, K extends Canonical, Key extends K>(token: RegularAtomFamilyToken<T, K>, key: Key, store: Store): RegularAtomToken<T> | undefined;
431
- declare function seekInStore<T, K extends Canonical, Key extends K>(token: AtomFamilyToken<T, K>, key: Key, store: Store): AtomToken<T> | undefined;
432
- declare function seekInStore<T, K extends Canonical, Key extends K>(token: WritableSelectorFamilyToken<T, K>, key: Key, store: Store): WritableSelectorToken<T> | undefined;
433
- declare function seekInStore<T, K extends Canonical, Key extends K>(token: ReadonlySelectorFamilyToken<T, K>, key: Key, store: Store): ReadonlySelectorToken<T> | undefined;
434
- declare function seekInStore<T, K extends Canonical, Key extends K>(token: SelectorFamilyToken<T, K>, key: Key, store: Store): SelectorToken<T> | undefined;
435
- declare function seekInStore<T, K extends Canonical, Key extends K>(token: WritableFamilyToken<T, K>, key: Key, store: Store): WritableToken<T> | undefined;
436
- declare function seekInStore<T, K extends Canonical, Key extends K>(token: ReadableFamilyToken<T, K>, key: Key, store: Store): ReadableToken<T> | undefined;
437
- declare function seekInStore<M extends MoleculeConstructor>(token: MoleculeFamilyToken<M>, key: MoleculeKey<M>, store: Store): MoleculeKey<M> | undefined;
404
+ declare function createAtomFamily<T extends Transceiver<any>, J extends Json.Serializable, K extends Canonical>(store: Store, options: MutableAtomFamilyOptions<T, J, K>): MutableAtomFamilyToken<T, J, K>;
405
+ declare function createAtomFamily<T, K extends Canonical>(store: Store, options: RegularAtomFamilyOptions<T, K>): RegularAtomFamilyToken<T, K>;
406
+
407
+ declare function createReadonlySelectorFamily<T, K extends Canonical>(store: Store, options: ReadonlySelectorFamilyOptions<T, K>, internalRoles?: string[]): ReadonlySelectorFamilyToken<T, K>;
408
+
409
+ declare function createRegularAtomFamily<T, K extends Canonical>(store: Store, options: RegularAtomFamilyOptions<T, K>, internalRoles?: string[]): RegularAtomFamilyToken<T, K>;
410
+
411
+ declare function createSelectorFamily<T, K extends Canonical>(store: Store, options: WritableSelectorFamilyOptions<T, K>): WritableSelectorFamilyToken<T, K>;
412
+ declare function createSelectorFamily<T, K extends Canonical>(store: Store, options: ReadonlySelectorFamilyOptions<T, K>): ReadonlySelectorFamilyToken<T, K>;
413
+
414
+ declare function disposeFromStore(store: Store, token: MoleculeToken<any> | ReadableToken<any>): void;
415
+ declare function disposeFromStore<K extends Canonical>(store: Store, token: ReadableFamilyToken<any, K>, key: K): void;
416
+ declare function disposeFromStore<M extends MoleculeConstructor>(store: Store, token: MoleculeFamilyToken<M>, key: MoleculeKey<M>): void;
417
+
418
+ declare function findInStore<T extends Transceiver<any>, J extends Json.Serializable, K extends Canonical, Key extends K>(store: Store, token: MutableAtomFamilyToken<T, J, K>, key: Key): MutableAtomToken<T, J>;
419
+ declare function findInStore<T, K extends Canonical, Key extends K>(store: Store, token: RegularAtomFamilyToken<T, K>, key: Key): RegularAtomToken<T>;
420
+ declare function findInStore<T, K extends Canonical, Key extends K>(store: Store, token: AtomFamilyToken<T, K>, key: Key): AtomToken<T>;
421
+ declare function findInStore<T, K extends Canonical, Key extends K>(store: Store, token: WritableSelectorFamilyToken<T, K>, key: Key): WritableSelectorToken<T>;
422
+ declare function findInStore<T, K extends Canonical, Key extends K>(store: Store, token: ReadonlySelectorFamilyToken<T, K>, key: Key): ReadonlySelectorToken<T>;
423
+ declare function findInStore<T, K extends Canonical, Key extends K>(store: Store, token: SelectorFamilyToken<T, K>, key: Key): SelectorToken<T>;
424
+ declare function findInStore<T, K extends Canonical, Key extends K>(store: Store, token: WritableFamilyToken<T, K>, key: Key): WritableToken<T>;
425
+ declare function findInStore<T, K extends Canonical, Key extends K>(store: Store, token: ReadableFamilyToken<T, K>, key: Key): ReadableToken<T>;
426
+
427
+ declare function initFamilyMemberInStore<T extends Transceiver<any>, J extends Json.Serializable, K extends Canonical, Key extends K>(store: Store, token: MutableAtomFamilyToken<T, J, K>, key: Key): MutableAtomToken<T, J>;
428
+ declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(store: Store, token: RegularAtomFamilyToken<T, K>, key: Key): RegularAtomToken<T>;
429
+ declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(store: Store, token: AtomFamilyToken<T, K>, key: Key): AtomToken<T>;
430
+ declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(store: Store, token: WritableSelectorFamilyToken<T, K>, key: Key): WritableSelectorToken<T>;
431
+ declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(store: Store, token: ReadonlySelectorFamilyToken<T, K>, key: Key): ReadonlySelectorToken<T>;
432
+ declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(store: Store, token: SelectorFamilyToken<T, K>, key: Key): SelectorToken<T>;
433
+ declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(store: Store, token: WritableFamilyToken<T, K>, key: Key): WritableToken<T>;
434
+ declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(store: Store, token: ReadableFamilyToken<T, K>, key: Key): ReadableToken<T>;
435
+
436
+ declare function seekInStore<T extends Transceiver<any>, J extends Json.Serializable, K extends Canonical, Key extends K>(store: Store, token: MutableAtomFamilyToken<T, J, K>, key: Key): MutableAtomToken<T, J> | undefined;
437
+ declare function seekInStore<T, K extends Canonical, Key extends K>(store: Store, token: RegularAtomFamilyToken<T, K>, key: Key): RegularAtomToken<T> | undefined;
438
+ declare function seekInStore<T, K extends Canonical, Key extends K>(store: Store, token: AtomFamilyToken<T, K>, key: Key): AtomToken<T> | undefined;
439
+ declare function seekInStore<T, K extends Canonical, Key extends K>(store: Store, token: WritableSelectorFamilyToken<T, K>, key: Key): WritableSelectorToken<T> | undefined;
440
+ declare function seekInStore<T, K extends Canonical, Key extends K>(store: Store, token: ReadonlySelectorFamilyToken<T, K>, key: Key): ReadonlySelectorToken<T> | undefined;
441
+ declare function seekInStore<T, K extends Canonical, Key extends K>(store: Store, token: SelectorFamilyToken<T, K>, key: Key): SelectorToken<T> | undefined;
442
+ declare function seekInStore<T, K extends Canonical, Key extends K>(store: Store, token: WritableFamilyToken<T, K>, key: Key): WritableToken<T> | undefined;
443
+ declare function seekInStore<T, K extends Canonical, Key extends K>(store: Store, token: ReadableFamilyToken<T, K>, key: Key): ReadableToken<T> | undefined;
444
+ declare function seekInStore<M extends MoleculeConstructor>(store: Store, token: MoleculeFamilyToken<M>, key: MoleculeKey<M>): MoleculeKey<M> | undefined;
438
445
 
439
446
  type EnvironmentData = {
440
447
  store: Store;
441
448
  };
442
449
  declare function getEnvironmentData(store: Store): EnvironmentData;
443
450
 
444
- declare function getFromStore<T>(token: ReadableToken<T>, store: Store): T;
445
- declare function getFromStore<M extends MoleculeConstructor>(token: MoleculeToken<M>, store: Store): InstanceType<M> | undefined;
446
- declare function getFromStore<T, K extends Canonical>(token: ReadableFamilyToken<T, K>, key: K, store: Store): T;
447
- declare function getFromStore<M extends MoleculeConstructor>(token: MoleculeFamilyToken<M>, key: MoleculeKey<M>, store: Store): InstanceType<M>;
451
+ declare function getFromStore<T>(store: Store, token: ReadableToken<T>): T;
452
+ declare function getFromStore<M extends MoleculeConstructor>(store: Store, token: MoleculeToken<M>): InstanceType<M>;
453
+ declare function getFromStore<T, K extends Canonical>(store: Store, token: ReadableFamilyToken<T, K>, key: K): T;
454
+ declare function getFromStore<M extends MoleculeConstructor>(store: Store, token: MoleculeFamilyToken<M>, key: MoleculeKey<M>): InstanceType<M>;
455
+ declare function getFromStore(store: Store, token: MoleculeToken<any> | ReadableToken<any>): any;
456
+ declare function getFromStore(store: Store, token: MoleculeFamilyToken<any> | ReadableFamilyToken<any, any>, key: Canonical): any;
448
457
 
449
458
  declare const readOrComputeValue: <T>(state: ReadableState<T>, target: Store) => T;
450
459
 
@@ -488,7 +497,7 @@ declare class LazyMap<K, V> extends Map<K, V> {
488
497
  delete(key: K): boolean;
489
498
  }
490
499
 
491
- declare function createMoleculeFamily<M extends MoleculeConstructor>(options: MoleculeFamilyOptions<M>, store: Store): MoleculeFamilyToken<M>;
500
+ declare function createMoleculeFamily<M extends MoleculeConstructor>(store: Store, options: MoleculeFamilyOptions<M>): MoleculeFamilyToken<M>;
492
501
 
493
502
  declare function disposeMolecule<M extends MoleculeConstructor>(token: MoleculeToken<M>, store: Store): void;
494
503
 
@@ -525,12 +534,12 @@ declare class NotFoundError extends Error {
525
534
  constructor(familyToken: AtomIOToken, key: Json.Serializable, store: Store);
526
535
  }
527
536
 
528
- declare const createReadonlySelector: <T>(options: ReadonlySelectorOptions<T>, family: FamilyMetadata | undefined, store: Store) => ReadonlySelectorToken<T>;
537
+ declare const createReadonlySelector: <T>(store: Store, options: ReadonlySelectorOptions<T>, family: FamilyMetadata | undefined) => ReadonlySelectorToken<T>;
529
538
 
530
- declare function createStandaloneSelector<T>(options: WritableSelectorOptions<T>, store: Store): WritableSelectorToken<T>;
531
- declare function createStandaloneSelector<T>(options: ReadonlySelectorOptions<T>, store: Store): ReadonlySelectorToken<T>;
539
+ declare function createStandaloneSelector<T>(store: Store, options: WritableSelectorOptions<T>): WritableSelectorToken<T>;
540
+ declare function createStandaloneSelector<T>(store: Store, options: ReadonlySelectorOptions<T>): ReadonlySelectorToken<T>;
532
541
 
533
- declare const createWritableSelector: <T>(options: WritableSelectorOptions<T>, family: FamilyMetadata | undefined, store: Store) => WritableSelectorToken<T>;
542
+ declare const createWritableSelector: <T>(store: Store, options: WritableSelectorOptions<T>, family: FamilyMetadata | undefined) => WritableSelectorToken<T>;
534
543
 
535
544
  declare function disposeSelector(selectorToken: ReadonlySelectorToken<unknown> | WritableSelectorToken<unknown>, store: Store): void;
536
545
 
@@ -548,8 +557,15 @@ declare const become: <T>(nextVersionOfThing: Modify<T> | T) => (originalThing:
548
557
 
549
558
  declare const setAtomOrSelector: <T>(state: WritableState<T>, value: T | ((oldValue: T) => T), store: Store) => void;
550
559
 
551
- declare function setIntoStore<T, New extends T>(token: WritableToken<T>, value: New | ((oldValue: T) => New), store: Store): void;
552
- declare function setIntoStore<T, K extends Canonical, New extends T>(token: WritableFamilyToken<T, K>, key: K, value: New | ((oldValue: T) => New), store: Store): void;
560
+ declare function setIntoStore<T, New extends T>(store: Store, token: WritableToken<T>, value: New | ((oldValue: T) => New)): void;
561
+ declare function setIntoStore<T, K extends Canonical, New extends T>(store: Store, token: WritableFamilyToken<T, K>, key: K, value: New | ((oldValue: T) => New)): void;
562
+
563
+ declare const recallState: <T>(state: ReadableState<T>, store: Store) => T;
564
+
565
+ declare function subscribeInStore<T>(store: Store$1, token: ReadableToken<T>, handleUpdate: UpdateHandler<T>, key?: string): () => void;
566
+ declare function subscribeInStore<F extends Func$1>(store: Store$1, token: TransactionToken<F>, handleUpdate: TransactionUpdateHandler<F>, key?: string): () => void;
567
+ declare function subscribeInStore<M extends TimelineManageable>(store: Store$1, token: TimelineToken<M>, handleUpdate: (update: TimelineUpdate<M> | `redo` | `undo`) => void, key?: string): () => void;
568
+ declare function subscribeInStore<M extends TimelineManageable>(store: Store$1, token: ReadableToken<any> | TimelineToken<M> | TransactionToken<any>, handleUpdate: TransactionUpdateHandler<any> | UpdateHandler<any> | ((update: TimelineUpdate<M> | `redo` | `undo`) => void), key?: string): () => void;
553
569
 
554
570
  declare const subscribeToRootAtoms: <T>(selector: Selector<T>, store: Store) => (() => void)[];
555
571
 
@@ -604,15 +620,14 @@ type MutableAtomFamily<T extends Transceiver<any>, J extends Json.Serializable,
604
620
  internalRoles: string[] | undefined;
605
621
  };
606
622
  type AtomFamily<T, K extends Canonical = Canonical> = MutableAtomFamily<T extends Transceiver<any> ? T : never, any, K> | RegularAtomFamily<T, K>;
607
- type WritableSelectorFamily<T, K extends Canonical> = WritableSelectorFamilyToken<T, K> & {
608
- (key: K): WritableSelectorToken<T>;
623
+ type WritableSelectorFamily<T, K extends Canonical> = WritableSelectorFamilyToken<T, K> & ((key: K) => WritableSelectorToken<T>) & {
624
+ default: (key: K) => T;
609
625
  subject: Subject<StateCreation<WritableSelectorToken<T>> | StateDisposal<WritableSelectorToken<T>>>;
610
626
  install: (store: Store) => void;
611
627
  internalRoles: string[] | undefined;
612
628
  };
613
- type ReadonlySelectorFamily<T, K extends Canonical> = ((key: K) => ReadonlySelectorToken<T>) & {
614
- key: string;
615
- type: `readonly_selector_family`;
629
+ type ReadonlySelectorFamily<T, K extends Canonical> = ReadonlySelectorFamilyToken<T, K> & ((key: K) => ReadonlySelectorToken<T>) & {
630
+ default: (key: K) => T;
616
631
  subject: Subject<StateCreation<ReadonlySelectorToken<T>> | StateDisposal<ReadonlySelectorToken<T>>>;
617
632
  install: (store: Store) => void;
618
633
  internalRoles: string[] | undefined;
@@ -621,4 +636,4 @@ type SelectorFamily<T, K extends Canonical> = ReadonlySelectorFamily<T, K> | Wri
621
636
  type WritableFamily<T, K extends Canonical> = AtomFamily<T, K> | WritableSelectorFamily<T, K>;
622
637
  type ReadableFamily<T, K extends Canonical> = AtomFamily<T, K> | SelectorFamily<T, K>;
623
638
 
624
- export { type Atom, type AtomFamily, type AtomIOState, type AtomIOToken, type AtomKey, type ChildStore, type EnvironmentData, FamilyTracker, type Flat, type Func, Future, IMPLICIT, LazyMap, type Lineage, type Modify, Molecule, type MutableAtom, type MutableAtomFamily, NotFoundError, type OperationProgress, type Range, type ReadableFamily, type ReadableState, type ReadonlySelector, type ReadonlySelectorFamily, type ReadonlySelectorKey, type RegularAtom, type RegularAtomFamily, type RootStore, type Selector, type SelectorFamily, type SelectorKey, type Signal, type StateKey, StatefulSubject, Store, Subject, TRANSACTION_PHASES, type Timeline, type TimelineAtomUpdate, type TimelineMoleculeCreation, type TimelineMoleculeDisposal, type TimelineSelectorUpdate, type TimelineStateCreation, type TimelineStateDisposal, type TimelineTransactionUpdate, Tracker, type Transaction, type TransactionEpoch, type TransactionPhase, type TransactionProgress, type Transceiver, type TransceiverMode, type Withdrawable, type WritableFamily, type WritableSelector, type WritableSelectorFamily, type WritableState, abortTransaction, actUponStore, applyTransaction, arbitrary, assignTransactionToContinuity, become, buildTransaction, cacheValue, clearStore, closeOperation, createAtomFamily, createMoleculeFamily, createMutableAtom, createMutableAtomFamily, createReadonlySelector, createReadonlySelectorFamily, createRegularAtom, createRegularAtomFamily, createSelectorFamily, createStandaloneAtom, createStandaloneSelector, createTimeline, createTransaction, createWritableSelector, deposit, disposeAtom, disposeFromStore, disposeMolecule, disposeSelector, eldest, evictCachedValue, findInStore, getContinuityKey, getEnvironmentData, getEpochNumberOfAction, getEpochNumberOfContinuity, getFromStore, getJsonFamily, getJsonToken, getSelectorDependencyKeys, getUpdateFamily, getUpdateToken, growMoleculeInStore, ingestAtomUpdate, ingestCreationEvent, ingestDisposalEvent, ingestMoleculeCreationEvent, ingestMoleculeDisposalEvent, ingestSelectorUpdate, ingestTransactionUpdate, initFamilyMemberInStore, isAtomDefault, isAtomKey, isChildStore, isDone, isReadonlySelectorKey, isRootStore, isSelectorKey, isStateKey, isTransceiver, makeMoleculeInStore, markAtomAsDefault, markAtomAsNotDefault, markDone, newest, openOperation, prettyPrintTokenType, readCachedValue, readOrComputeValue, registerSelector, seekInStore, setAtomOrSelector, setEpochNumberOfAction, setEpochNumberOfContinuity, setIntoStore, subscribeToRootAtoms, subscribeToState, subscribeToTimeline, subscribeToTransaction, timeTravel, traceAllSelectorAtoms, traceSelectorAtoms, updateSelectorAtoms, withdraw };
639
+ export { type Atom, type AtomFamily, type AtomIOState, type AtomIOToken, type AtomKey, type ChildStore, type EnvironmentData, FamilyTracker, type Flat, type Func, Future, IMPLICIT, LazyMap, type Lineage, type Modify, Molecule, type MutableAtom, type MutableAtomFamily, NotFoundError, type OperationProgress, type Range, type ReadableFamily, type ReadableState, type ReadonlySelector, type ReadonlySelectorFamily, type ReadonlySelectorKey, type RegularAtom, type RegularAtomFamily, type RootStore, type Selector, type SelectorFamily, type SelectorKey, type Signal, type StateKey, StatefulSubject, Store, Subject, TRANSACTION_PHASES, type Timeline, type TimelineAtomUpdate, type TimelineMoleculeCreation, type TimelineMoleculeDisposal, type TimelineSelectorUpdate, type TimelineStateCreation, type TimelineStateDisposal, type TimelineTransactionUpdate, Tracker, type Transaction, type TransactionEpoch, type TransactionPhase, type TransactionProgress, type Transceiver, type TransceiverMode, type Withdrawable, type WritableFamily, type WritableSelector, type WritableSelectorFamily, type WritableState, abortTransaction, actUponStore, applyTransaction, arbitrary, assignTransactionToContinuity, become, buildTransaction, cacheValue, clearStore, closeOperation, createAtomFamily, createMoleculeFamily, createMutableAtom, createMutableAtomFamily, createReadonlySelector, createReadonlySelectorFamily, createRegularAtom, createRegularAtomFamily, createSelectorFamily, createStandaloneAtom, createStandaloneSelector, createTimeline, createTransaction, createWritableSelector, deposit, disposeAtom, disposeFromStore, disposeMolecule, disposeSelector, eldest, evictCachedValue, findInStore, getContinuityKey, getEnvironmentData, getEpochNumberOfAction, getEpochNumberOfContinuity, getFromStore, getJsonFamily, getJsonToken, getSelectorDependencyKeys, getUpdateFamily, getUpdateToken, growMoleculeInStore, ingestAtomUpdate, ingestCreationEvent, ingestDisposalEvent, ingestMoleculeCreationEvent, ingestMoleculeDisposalEvent, ingestSelectorUpdate, ingestTransactionUpdate, initFamilyMemberInStore, isAtomDefault, isAtomKey, isChildStore, isDone, isReadonlySelectorKey, isRootStore, isSelectorKey, isStateKey, isTransceiver, makeMoleculeInStore, markAtomAsDefault, markAtomAsNotDefault, markDone, newest, openOperation, prettyPrintTokenType, readCachedValue, readOrComputeValue, recallState, registerSelector, seekInStore, setAtomOrSelector, setEpochNumberOfAction, setEpochNumberOfContinuity, setIntoStore, subscribeInStore, subscribeToRootAtoms, subscribeToState, subscribeToTimeline, subscribeToTransaction, timeTravel, traceAllSelectorAtoms, traceSelectorAtoms, updateSelectorAtoms, withdraw };
@@ -1,3 +1,3 @@
1
- export { FamilyTracker, Future, IMPLICIT, LazyMap, Molecule, NotFoundError, StatefulSubject, Store, Subject, TRANSACTION_PHASES, Tracker, abortTransaction, actUponStore, applyTransaction, arbitrary, assignTransactionToContinuity, become, buildTransaction, cacheValue, clearStore, closeOperation, createAtomFamily, createMoleculeFamily, createMutableAtom, createMutableAtomFamily, createReadonlySelector, createReadonlySelectorFamily, createRegularAtom, createRegularAtomFamily, createSelectorFamily, createStandaloneAtom, createStandaloneSelector, createTimeline, createTransaction, createWritableSelector, deposit, disposeAtom, disposeFromStore, disposeMolecule, disposeSelector, eldest, evictCachedValue, findInStore, getContinuityKey, getEnvironmentData, getEpochNumberOfAction, getEpochNumberOfContinuity, getFromStore, getJsonFamily, getJsonToken, getSelectorDependencyKeys, getUpdateFamily, getUpdateToken, growMoleculeInStore, ingestAtomUpdate, ingestCreationEvent, ingestDisposalEvent, ingestMoleculeCreationEvent, ingestMoleculeDisposalEvent, ingestSelectorUpdate, ingestTransactionUpdate, initFamilyMemberInStore, isAtomDefault, isAtomKey, isChildStore, isDone, isReadonlySelectorKey, isRootStore, isSelectorKey, isStateKey, isTransceiver, makeMoleculeInStore, markAtomAsDefault, markAtomAsNotDefault, markDone, newest, openOperation, prettyPrintTokenType, readCachedValue, readOrComputeValue, registerSelector, seekInStore, setAtomOrSelector, setEpochNumberOfAction, setEpochNumberOfContinuity, setIntoStore, subscribeToRootAtoms, subscribeToState, subscribeToTimeline, subscribeToTransaction, timeTravel, traceAllSelectorAtoms, traceSelectorAtoms, updateSelectorAtoms, withdraw } from '../../dist/chunk-ETCFHO7J.js';
1
+ export { FamilyTracker, Future, IMPLICIT, LazyMap, Molecule, NotFoundError, StatefulSubject, Store, Subject, TRANSACTION_PHASES, Tracker, abortTransaction, actUponStore, applyTransaction, arbitrary, assignTransactionToContinuity, become, buildTransaction, cacheValue, clearStore, closeOperation, createAtomFamily, createMoleculeFamily, createMutableAtom, createMutableAtomFamily, createReadonlySelector, createReadonlySelectorFamily, createRegularAtom, createRegularAtomFamily, createSelectorFamily, createStandaloneAtom, createStandaloneSelector, createTimeline, createTransaction, createWritableSelector, deposit, disposeAtom, disposeFromStore, disposeMolecule, disposeSelector, eldest, evictCachedValue, findInStore, getContinuityKey, getEnvironmentData, getEpochNumberOfAction, getEpochNumberOfContinuity, getFromStore, getJsonFamily, getJsonToken, getSelectorDependencyKeys, getUpdateFamily, getUpdateToken, growMoleculeInStore, ingestAtomUpdate, ingestCreationEvent, ingestDisposalEvent, ingestMoleculeCreationEvent, ingestMoleculeDisposalEvent, ingestSelectorUpdate, ingestTransactionUpdate, initFamilyMemberInStore, isAtomDefault, isAtomKey, isChildStore, isDone, isReadonlySelectorKey, isRootStore, isSelectorKey, isStateKey, isTransceiver, makeMoleculeInStore, markAtomAsDefault, markAtomAsNotDefault, markDone, newest, openOperation, prettyPrintTokenType, readCachedValue, readOrComputeValue, recallState, registerSelector, seekInStore, setAtomOrSelector, setEpochNumberOfAction, setEpochNumberOfContinuity, setIntoStore, subscribeInStore, subscribeToRootAtoms, subscribeToState, subscribeToTimeline, subscribeToTransaction, timeTravel, traceAllSelectorAtoms, traceSelectorAtoms, updateSelectorAtoms, withdraw } from '../../dist/chunk-6ABWLAGY.js';
2
2
  import '../../dist/chunk-IBTHB2PI.js';
3
3
  import '../../dist/chunk-XWL6SNVU.js';
@@ -15,9 +15,9 @@ import { subscribeToState } from "../subscribe"
15
15
  import { markAtomAsDefault } from "./is-default"
16
16
 
17
17
  export function createRegularAtom<T>(
18
+ store: Store,
18
19
  options: RegularAtomOptions<T>,
19
20
  family: FamilyMetadata | undefined,
20
- store: Store,
21
21
  ): RegularAtomToken<T> {
22
22
  store.logger.info(
23
23
  `🔨`,
@@ -47,7 +47,7 @@ export function createRegularAtom<T>(
47
47
  options.key,
48
48
  `installing in store "${s.config.name}"`,
49
49
  )
50
- return createRegularAtom(options, family, s)
50
+ return createRegularAtom(s, options, family)
51
51
  },
52
52
  subject,
53
53
  } as const
@@ -68,7 +68,7 @@ export function createRegularAtom<T>(
68
68
  for (const effect of options.effects) {
69
69
  const cleanup = effect({
70
70
  setSelf: (next) => {
71
- setIntoStore(token, next, store)
71
+ setIntoStore(store, token, next)
72
72
  },
73
73
  onSet: (handle: UpdateHandler<T>) =>
74
74
  subscribeToState(token, handle, `effect[${effectIndex}]`, store),
@@ -13,25 +13,27 @@ import type { Store } from "../store"
13
13
  import { createRegularAtom } from "./create-regular-atom"
14
14
 
15
15
  export function createStandaloneAtom<T>(
16
- options: RegularAtomOptions<T>,
17
16
  store: Store,
17
+ options: RegularAtomOptions<T>,
18
18
  ): RegularAtomToken<T>
19
+
19
20
  export function createStandaloneAtom<
20
21
  T extends Transceiver<any>,
21
22
  J extends Json.Serializable,
22
- >(options: MutableAtomOptions<T, J>, store: Store): MutableAtomToken<T, J>
23
+ >(store: Store, options: MutableAtomOptions<T, J>): MutableAtomToken<T, J>
24
+
23
25
  export function createStandaloneAtom<T>(
24
- options: MutableAtomOptions<any, any> | RegularAtomOptions<T>,
25
26
  store: Store,
27
+ options: MutableAtomOptions<any, any> | RegularAtomOptions<T>,
26
28
  ): AtomToken<T> {
27
29
  const isMutable = `mutable` in options
28
30
 
29
31
  if (isMutable) {
30
- const state = createMutableAtom(options, undefined, store)
32
+ const state = createMutableAtom(store, options, undefined)
31
33
  store.on.atomCreation.next(state)
32
34
  return state
33
35
  }
34
- const state = createRegularAtom(options, undefined, store)
36
+ const state = createRegularAtom(store, options, undefined)
35
37
  store.on.atomCreation.next(state)
36
38
  return state
37
39
  }
@@ -16,23 +16,23 @@ export function createAtomFamily<
16
16
  J extends Json.Serializable,
17
17
  K extends Canonical,
18
18
  >(
19
- options: MutableAtomFamilyOptions<T, J, K>,
20
19
  store: Store,
20
+ options: MutableAtomFamilyOptions<T, J, K>,
21
21
  ): MutableAtomFamilyToken<T, J, K>
22
22
  export function createAtomFamily<T, K extends Canonical>(
23
- options: RegularAtomFamilyOptions<T, K>,
24
23
  store: Store,
24
+ options: RegularAtomFamilyOptions<T, K>,
25
25
  ): RegularAtomFamilyToken<T, K>
26
26
  export function createAtomFamily<T, K extends Canonical>(
27
+ store: Store,
27
28
  options:
28
29
  | MutableAtomFamilyOptions<any, any, any>
29
30
  | RegularAtomFamilyOptions<T, K>,
30
- store: Store,
31
31
  ): AtomFamilyToken<any, any> {
32
32
  const isMutable = `mutable` in options
33
33
 
34
34
  if (isMutable) {
35
- return createMutableAtomFamily(options, store)
35
+ return createMutableAtomFamily(store, options)
36
36
  }
37
- return createRegularAtomFamily<T, K>(options, store)
37
+ return createRegularAtomFamily<T, K>(store, options)
38
38
  }