atom.io 0.26.0 → 0.27.1

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 (62) hide show
  1. package/data/dist/index.d.ts +3 -3
  2. package/data/src/dict.ts +3 -3
  3. package/dist/chunk-AK23DRMD.js +21 -0
  4. package/dist/index.d.ts +32 -54
  5. package/ephemeral/dist/index.d.ts +7 -7
  6. package/ephemeral/src/find-state.ts +7 -7
  7. package/immortal/dist/index.d.ts +7 -7
  8. package/immortal/src/seek-state.ts +8 -8
  9. package/internal/dist/index.d.ts +57 -59
  10. package/internal/dist/index.js +5 -10
  11. package/internal/src/families/create-atom-family.ts +4 -4
  12. package/internal/src/families/create-readonly-selector-family.ts +2 -2
  13. package/internal/src/families/create-regular-atom-family.ts +2 -2
  14. package/internal/src/families/create-selector-family.ts +4 -4
  15. package/internal/src/families/create-writable-selector-family.ts +2 -2
  16. package/internal/src/families/dispose-from-store.ts +3 -7
  17. package/internal/src/families/find-in-store.ts +9 -9
  18. package/internal/src/families/init-family-member.ts +25 -37
  19. package/internal/src/families/seek-in-store.ts +11 -10
  20. package/internal/src/get-state/get-from-store.ts +3 -3
  21. package/internal/src/molecule/grow-molecule-in-store.ts +9 -9
  22. package/internal/src/mutable/index.ts +0 -1
  23. package/internal/src/mutable/tracker-family.ts +2 -2
  24. package/internal/src/set-state/set-into-store.ts +4 -4
  25. package/internal/src/store/deposit.ts +3 -3
  26. package/internal/src/store/withdraw.ts +10 -9
  27. package/internal/src/utility-types.ts +4 -0
  28. package/json/dist/index.d.ts +21 -28
  29. package/json/dist/index.js +7 -3
  30. package/json/src/entries.ts +19 -0
  31. package/json/src/index.ts +9 -3
  32. package/json/src/select-json-family.ts +4 -4
  33. package/package.json +20 -17
  34. package/react/dist/index.d.ts +4 -4
  35. package/react/src/parse-state-overloads.ts +4 -4
  36. package/react/src/use-i.ts +3 -3
  37. package/react/src/use-json.ts +3 -3
  38. package/react/src/use-o.ts +3 -3
  39. package/react-devtools/dist/index.d.ts +1 -1
  40. package/react-devtools/dist/index.js +15 -4
  41. package/react-devtools/src/StateIndex.tsx +5 -4
  42. package/realtime/dist/index.d.ts +3 -3
  43. package/realtime/src/realtime-continuity.ts +2 -2
  44. package/realtime-react/dist/index.d.ts +4 -4
  45. package/realtime-react/src/use-pull-atom-family-member.ts +2 -2
  46. package/realtime-react/src/use-pull-mutable-family-member.ts +2 -2
  47. package/realtime-react/src/use-pull-selector-family-member.ts +2 -2
  48. package/realtime-server/dist/index.d.ts +9 -9
  49. package/realtime-server/src/ipc-sockets/custom-socket.ts +2 -2
  50. package/realtime-server/src/realtime-family-provider.ts +3 -2
  51. package/realtime-server/src/realtime-mutable-family-provider.ts +2 -2
  52. package/src/atom.ts +15 -42
  53. package/src/dispose-state.ts +2 -2
  54. package/src/get-state.ts +4 -4
  55. package/src/index.ts +5 -5
  56. package/src/molecule.ts +4 -3
  57. package/src/selector.ts +17 -39
  58. package/src/set-state.ts +3 -2
  59. package/src/silo.ts +4 -4
  60. package/transceivers/set-rtx/src/set-rtx.ts +5 -5
  61. package/dist/chunk-BF4MVQF6.js +0 -44
  62. package/internal/src/mutable/is-mutable.ts +0 -16
@@ -1,6 +1,6 @@
1
1
  import * as atom_io from 'atom.io';
2
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, WritableSelectorFamily, MutableAtomFamily, RegularAtomFamily, ReadonlySelectorFamily, AtomIOLogger, Logger, AtomFamily, ReadableFamily, SelectorFamily, WritableFamily, 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';
3
- import { Json, JsonInterface } from 'atom.io/json';
3
+ import { Canonical, Json, JsonInterface } from 'atom.io/json';
4
4
  import { Join } from 'atom.io/data';
5
5
 
6
6
  type primitive = boolean | number | string | null;
@@ -83,6 +83,7 @@ type Flat<R extends {
83
83
  }> = {
84
84
  [K in keyof R]: R[K];
85
85
  };
86
+ type Range<N extends number, A extends any[] = []> = A[`length`] extends N ? A[`length`] : A[`length`] | Range<N, [...A, any]>;
86
87
 
87
88
  declare const abortTransaction: (store: Store) => void;
88
89
 
@@ -155,10 +156,10 @@ declare function deposit<T>(state: WritableSelector<T>): WritableSelectorToken<T
155
156
  declare function deposit<T>(state: ReadonlySelector<T>): ReadonlySelectorToken<T>;
156
157
  declare function deposit<T>(state: Selector<T>): SelectorToken<T>;
157
158
  declare function deposit<T>(state: WritableState<T>): WritableToken<T>;
158
- declare function deposit<K extends Json.Serializable, S extends {
159
+ declare function deposit<K extends Canonical, S extends {
159
160
  [key: string]: any;
160
161
  }, P extends any[]>(state: Molecule<any>): MoleculeToken<any>;
161
- declare function deposit<K extends Json.Serializable, S extends {
162
+ declare function deposit<K extends Canonical, S extends {
162
163
  [key: string]: any;
163
164
  }, P extends any[]>(state: MoleculeFamily<any>): MoleculeFamilyToken<any>;
164
165
  declare function deposit<T extends Func>(state: Transaction<T>): TransactionToken<T>;
@@ -295,14 +296,14 @@ declare function withdraw<T>(token: ReadonlySelectorToken<T>, store: Store): Rea
295
296
  declare function withdraw<T>(token: SelectorToken<T>, store: Store): Selector<T>;
296
297
  declare function withdraw<T>(token: WritableToken<T>, store: Store): WritableState<T>;
297
298
  declare function withdraw<T>(token: ReadableToken<T>, store: Store): ReadableState<T>;
298
- declare function withdraw<T, K extends Json.Serializable>(token: RegularAtomFamilyToken<T, K>, store: Store): RegularAtomFamily<T, K>;
299
- declare function withdraw<T extends Transceiver<any>, J extends Json.Serializable, K extends Json.Serializable>(token: MutableAtomFamilyToken<T, J, K>, store: Store): MutableAtomFamily<T, J, K>;
300
- declare function withdraw<T, K extends Json.Serializable>(token: AtomFamilyToken<T>, store: Store): AtomFamily<T, any>;
301
- declare function withdraw<T, K extends Json.Serializable>(token: ReadonlySelectorFamilyToken<T, K>, store: Store): ReadonlySelectorFamily<T, any>;
302
- declare function withdraw<T, K extends Json.Serializable>(token: WritableSelectorFamilyToken<T, K>, store: Store): WritableSelectorFamily<T, any>;
303
- declare function withdraw<T, K extends Json.Serializable>(token: SelectorFamilyToken<T, K>, store: Store): SelectorFamily<T, any>;
304
- declare function withdraw<T, K extends Json.Serializable>(token: ReadableFamilyToken<T, K>, store: Store): ReadableFamily<T, any>;
305
- declare function withdraw<T, K extends Json.Serializable>(token: WritableFamilyToken<T, K>, store: Store): WritableFamily<T, any>;
299
+ declare function withdraw<T, K extends Canonical>(token: RegularAtomFamilyToken<T, K>, store: Store): RegularAtomFamily<T, K>;
300
+ declare function withdraw<T extends Transceiver<any>, J extends Json.Serializable, K extends Canonical>(token: MutableAtomFamilyToken<T, J, K>, store: Store): MutableAtomFamily<T, J, K>;
301
+ declare function withdraw<T, K extends Canonical>(token: AtomFamilyToken<T>, store: Store): AtomFamily<T, any>;
302
+ declare function withdraw<T, K extends Canonical>(token: ReadonlySelectorFamilyToken<T, K>, store: Store): ReadonlySelectorFamily<T, any>;
303
+ declare function withdraw<T, K extends Canonical>(token: WritableSelectorFamilyToken<T, K>, store: Store): WritableSelectorFamily<T, any>;
304
+ declare function withdraw<T, K extends Canonical>(token: SelectorFamilyToken<T, K>, store: Store): SelectorFamily<T, any>;
305
+ declare function withdraw<T, K extends Canonical>(token: ReadableFamilyToken<T, K>, store: Store): ReadableFamily<T, any>;
306
+ declare function withdraw<T, K extends Canonical>(token: WritableFamilyToken<T, K>, store: Store): WritableFamily<T, any>;
306
307
  declare function withdraw<M extends MoleculeConstructor>(token: MoleculeToken<M>, store: Store): Molecule<M>;
307
308
  declare function withdraw<M extends MoleculeConstructor>(token: MoleculeFamilyToken<M>, store: Store): MoleculeFamily<M>;
308
309
  declare function withdraw<T extends Func>(token: TransactionToken<T>, store: Store): Transaction<T extends Func ? T : never>;
@@ -329,9 +330,6 @@ declare const getJsonToken: <Core extends Transceiver<any>, SerializableCore ext
329
330
 
330
331
  declare const getUpdateToken: <Core extends Transceiver<any>, SerializableCore extends Json.Serializable>(mutableAtomToken: MutableAtomToken<Core, SerializableCore>) => RegularAtomToken<Signal<Core>>;
331
332
 
332
- declare function isMutable(atom: Atom<any>): atom is MutableAtom<any, any>;
333
- declare function isMutable(family: AtomFamily<any, any>): family is MutableAtomFamily<any, any, any>;
334
-
335
333
  /**
336
334
  * @internal Give the tracker a transceiver state and a store, and it will
337
335
  * subscribe to the transceiver's inner value. When the inner value changes,
@@ -350,7 +348,7 @@ declare class Tracker<Mutable extends Transceiver<any>> {
350
348
  constructor(mutableState: MutableAtomToken<Mutable, Json.Serializable>, store: Store);
351
349
  }
352
350
 
353
- declare class FamilyTracker<Core extends Transceiver<any>, FamilyMemberKey extends Json.Serializable> {
351
+ declare class FamilyTracker<Core extends Transceiver<any>, FamilyMemberKey extends Canonical> {
354
352
  private readonly Update;
355
353
  readonly latestUpdateAtoms: RegularAtomFamily<typeof this.Update | null, FamilyMemberKey>;
356
354
  readonly mutableAtoms: MutableAtomFamily<Core, any, FamilyMemberKey>;
@@ -394,46 +392,46 @@ declare function cacheValue<T extends Promise<any>>(key: string, value: T, subje
394
392
  declare const readCachedValue: <T>(token: ReadableState<any>, target: Store) => T;
395
393
  declare const evictCachedValue: (key: string, target: Store) => void;
396
394
 
397
- declare function createAtomFamily<T extends Transceiver<any>, J extends Json.Serializable, K extends Json.Serializable>(options: MutableAtomFamilyOptions<T, J, K>, store: Store): MutableAtomFamily<T, J, K>;
398
- declare function createAtomFamily<T, K extends Json.Serializable>(options: RegularAtomFamilyOptions<T, K>, store: Store): RegularAtomFamily<T, K>;
395
+ declare function createAtomFamily<T extends Transceiver<any>, J extends Json.Serializable, K extends Canonical>(options: MutableAtomFamilyOptions<T, J, K>, store: Store): MutableAtomFamily<T, J, K>;
396
+ declare function createAtomFamily<T, K extends Canonical>(options: RegularAtomFamilyOptions<T, K>, store: Store): RegularAtomFamily<T, K>;
399
397
 
400
- declare function createReadonlySelectorFamily<T, K extends Json.Serializable>(options: ReadonlySelectorFamilyOptions<T, K>, store: Store): ReadonlySelectorFamily<T, K>;
398
+ declare function createReadonlySelectorFamily<T, K extends Canonical>(options: ReadonlySelectorFamilyOptions<T, K>, store: Store): ReadonlySelectorFamily<T, K>;
401
399
 
402
- declare function createRegularAtomFamily<T, K extends Json.Serializable>(options: RegularAtomFamilyOptions<T, K>, store: Store): RegularAtomFamily<T, K>;
400
+ declare function createRegularAtomFamily<T, K extends Canonical>(options: RegularAtomFamilyOptions<T, K>, store: Store): RegularAtomFamily<T, K>;
403
401
 
404
- declare function createSelectorFamily<T, K extends Json.Serializable>(options: WritableSelectorFamilyOptions<T, K>, store: Store): WritableSelectorFamily<T, K>;
405
- declare function createSelectorFamily<T, K extends Json.Serializable>(options: ReadonlySelectorFamilyOptions<T, K>, store: Store): ReadonlySelectorFamily<T, K>;
402
+ declare function createSelectorFamily<T, K extends Canonical>(options: WritableSelectorFamilyOptions<T, K>, store: Store): WritableSelectorFamily<T, K>;
403
+ declare function createSelectorFamily<T, K extends Canonical>(options: ReadonlySelectorFamilyOptions<T, K>, store: Store): ReadonlySelectorFamily<T, K>;
406
404
 
407
405
  declare function disposeFromStore(token: MoleculeToken<any> | ReadableToken<any>, store: Store): void;
408
- declare function disposeFromStore<K extends Json.Serializable>(token: ReadableFamilyToken<any, K>, key: K, store: Store): void;
406
+ declare function disposeFromStore<K extends Canonical>(token: ReadableFamilyToken<any, K>, key: K, store: Store): void;
409
407
  declare function disposeFromStore<M extends MoleculeConstructor>(token: MoleculeFamilyToken<M>, key: MoleculeKey<M>, store: Store): void;
410
408
 
411
- declare function findInStore<T extends Transceiver<any>, J extends Json.Serializable, K extends Json.Serializable, Key extends K>(token: MutableAtomFamilyToken<T, J, K>, key: Key, store: Store): MutableAtomToken<T, J>;
412
- declare function findInStore<T, K extends Json.Serializable, Key extends K>(token: RegularAtomFamilyToken<T, K>, key: Key, store: Store): RegularAtomToken<T>;
413
- declare function findInStore<T, K extends Json.Serializable, Key extends K>(token: AtomFamilyToken<T, K>, key: Key, store: Store): AtomToken<T>;
414
- declare function findInStore<T, K extends Json.Serializable, Key extends K>(token: WritableSelectorFamilyToken<T, K>, key: Key, store: Store): WritableSelectorToken<T>;
415
- declare function findInStore<T, K extends Json.Serializable, Key extends K>(token: ReadonlySelectorFamilyToken<T, K>, key: Key, store: Store): ReadonlySelectorToken<T>;
416
- declare function findInStore<T, K extends Json.Serializable, Key extends K>(token: SelectorFamilyToken<T, K>, key: Key, store: Store): SelectorToken<T>;
417
- declare function findInStore<T, K extends Json.Serializable, Key extends K>(token: WritableFamilyToken<T, K>, key: Key, store: Store): WritableToken<T>;
418
- declare function findInStore<T, K extends Json.Serializable, 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 Json.Serializable, Key extends K>(token: MutableAtomFamilyToken<T, J, K>, key: Key, store: Store): MutableAtomToken<T, J>;
421
- declare function initFamilyMemberInStore<T, K extends Json.Serializable, Key extends K>(token: RegularAtomFamilyToken<T, K>, key: Key, store: Store): RegularAtomToken<T>;
422
- declare function initFamilyMemberInStore<T, K extends Json.Serializable, Key extends K>(token: AtomFamilyToken<T, K>, key: Key, store: Store): AtomToken<T>;
423
- declare function initFamilyMemberInStore<T, K extends Json.Serializable, Key extends K>(token: WritableSelectorFamilyToken<T, K>, key: Key, store: Store): WritableSelectorToken<T>;
424
- declare function initFamilyMemberInStore<T, K extends Json.Serializable, Key extends K>(token: ReadonlySelectorFamilyToken<T, K>, key: Key, store: Store): ReadonlySelectorToken<T>;
425
- declare function initFamilyMemberInStore<T, K extends Json.Serializable, Key extends K>(token: SelectorFamilyToken<T, K>, key: Key, store: Store): SelectorToken<T>;
426
- declare function initFamilyMemberInStore<T, K extends Json.Serializable, Key extends K>(token: WritableFamilyToken<T, K>, key: Key, store: Store): WritableToken<T>;
427
- declare function initFamilyMemberInStore<T, K extends Json.Serializable, 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 Json.Serializable, Key extends K>(token: MutableAtomFamilyToken<T, J, K>, key: Key, store: Store): MutableAtomToken<T, J> | undefined;
430
- declare function seekInStore<T, K extends Json.Serializable, Key extends K>(token: RegularAtomFamilyToken<T, K>, key: Key, store: Store): RegularAtomToken<T> | undefined;
431
- declare function seekInStore<T, K extends Json.Serializable, Key extends K>(token: AtomFamilyToken<T, K>, key: Key, store: Store): AtomToken<T> | undefined;
432
- declare function seekInStore<T, K extends Json.Serializable, Key extends K>(token: WritableSelectorFamilyToken<T, K>, key: Key, store: Store): WritableSelectorToken<T> | undefined;
433
- declare function seekInStore<T, K extends Json.Serializable, Key extends K>(token: ReadonlySelectorFamilyToken<T, K>, key: Key, store: Store): ReadonlySelectorToken<T> | undefined;
434
- declare function seekInStore<T, K extends Json.Serializable, Key extends K>(token: SelectorFamilyToken<T, K>, key: Key, store: Store): SelectorToken<T> | undefined;
435
- declare function seekInStore<T, K extends Json.Serializable, Key extends K>(token: WritableFamilyToken<T, K>, key: Key, store: Store): WritableToken<T> | undefined;
436
- declare function seekInStore<T, K extends Json.Serializable, Key extends K>(token: ReadableFamilyToken<T, K>, key: Key, store: Store): ReadableToken<T> | undefined;
409
+ 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>;
410
+ declare function findInStore<T, K extends Canonical, Key extends K>(token: RegularAtomFamilyToken<T, K>, key: Key, store: Store): RegularAtomToken<T>;
411
+ declare function findInStore<T, K extends Canonical, Key extends K>(token: AtomFamilyToken<T, K>, key: Key, store: Store): AtomToken<T>;
412
+ declare function findInStore<T, K extends Canonical, Key extends K>(token: WritableSelectorFamilyToken<T, K>, key: Key, store: Store): WritableSelectorToken<T>;
413
+ declare function findInStore<T, K extends Canonical, Key extends K>(token: ReadonlySelectorFamilyToken<T, K>, key: Key, store: Store): ReadonlySelectorToken<T>;
414
+ declare function findInStore<T, K extends Canonical, Key extends K>(token: SelectorFamilyToken<T, K>, key: Key, store: Store): SelectorToken<T>;
415
+ declare function findInStore<T, K extends Canonical, Key extends K>(token: WritableFamilyToken<T, K>, key: Key, store: Store): WritableToken<T>;
416
+ declare function findInStore<T, K extends Canonical, Key extends K>(token: ReadableFamilyToken<T, K>, key: Key, store: Store): ReadableToken<T>;
417
+
418
+ 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>;
419
+ declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(token: RegularAtomFamilyToken<T, K>, key: Key, store: Store): RegularAtomToken<T>;
420
+ declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(token: AtomFamilyToken<T, K>, key: Key, store: Store): AtomToken<T>;
421
+ declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(token: WritableSelectorFamilyToken<T, K>, key: Key, store: Store): WritableSelectorToken<T>;
422
+ declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(token: ReadonlySelectorFamilyToken<T, K>, key: Key, store: Store): ReadonlySelectorToken<T>;
423
+ declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(token: SelectorFamilyToken<T, K>, key: Key, store: Store): SelectorToken<T>;
424
+ declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(token: WritableFamilyToken<T, K>, key: Key, store: Store): WritableToken<T>;
425
+ declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(token: ReadableFamilyToken<T, K>, key: Key, store: Store): ReadableToken<T>;
426
+
427
+ 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;
428
+ declare function seekInStore<T, K extends Canonical, Key extends K>(token: RegularAtomFamilyToken<T, K>, key: Key, store: Store): RegularAtomToken<T> | undefined;
429
+ declare function seekInStore<T, K extends Canonical, Key extends K>(token: AtomFamilyToken<T, K>, key: Key, store: Store): AtomToken<T> | undefined;
430
+ declare function seekInStore<T, K extends Canonical, Key extends K>(token: WritableSelectorFamilyToken<T, K>, key: Key, store: Store): WritableSelectorToken<T> | undefined;
431
+ declare function seekInStore<T, K extends Canonical, Key extends K>(token: ReadonlySelectorFamilyToken<T, K>, key: Key, store: Store): ReadonlySelectorToken<T> | undefined;
432
+ declare function seekInStore<T, K extends Canonical, Key extends K>(token: SelectorFamilyToken<T, K>, key: Key, store: Store): SelectorToken<T> | undefined;
433
+ declare function seekInStore<T, K extends Canonical, Key extends K>(token: WritableFamilyToken<T, K>, key: Key, store: Store): WritableToken<T> | undefined;
434
+ declare function seekInStore<T, K extends Canonical, Key extends K>(token: ReadableFamilyToken<T, K>, key: Key, store: Store): ReadableToken<T> | undefined;
437
435
  declare function seekInStore<M extends MoleculeConstructor>(token: MoleculeFamilyToken<M>, key: MoleculeKey<M>, store: Store): MoleculeKey<M> | undefined;
438
436
 
439
437
  type EnvironmentData = {
@@ -443,7 +441,7 @@ declare function getEnvironmentData(store: Store): EnvironmentData;
443
441
 
444
442
  declare function getFromStore<T>(token: ReadableToken<T>, store: Store): T;
445
443
  declare function getFromStore<M extends MoleculeConstructor>(token: MoleculeToken<M>, store: Store): InstanceType<M> | undefined;
446
- declare function getFromStore<T, K extends Json.Serializable>(token: ReadableFamilyToken<T, K>, key: K, store: Store): T;
444
+ declare function getFromStore<T, K extends Canonical>(token: ReadableFamilyToken<T, K>, key: K, store: Store): T;
447
445
  declare function getFromStore<M extends MoleculeConstructor>(token: MoleculeFamilyToken<M>, key: MoleculeKey<M>, store: Store): InstanceType<M>;
448
446
 
449
447
  declare const readOrComputeValue: <T>(state: ReadableState<T>, target: Store) => T;
@@ -506,14 +504,14 @@ declare class Molecule<M extends MoleculeConstructor> implements MoleculeToken<M
506
504
  constructor(ctx: Molecule<any> | Molecule<any>[] | undefined, key: MoleculeKey<M>, family?: MoleculeFamilyToken<M>);
507
505
  }
508
506
 
509
- declare function growMoleculeInStore<T extends Transceiver<any>, J extends Json.Serializable, K extends Json.Serializable>(molecule: Molecule<any>, family: MutableAtomFamily<T, J, K>, store: Store): MutableAtomToken<T, J>;
510
- declare function growMoleculeInStore<T, K extends Json.Serializable>(molecule: Molecule<any>, family: RegularAtomFamily<T, K>, store: Store): RegularAtomToken<T>;
511
- declare function growMoleculeInStore<T, K extends Json.Serializable>(molecule: Molecule<any>, family: AtomFamily<T, K>, store: Store): AtomToken<T>;
512
- declare function growMoleculeInStore<T, K extends Json.Serializable>(molecule: Molecule<any>, family: WritableSelectorFamily<T, K>, store: Store): WritableSelectorToken<T>;
513
- declare function growMoleculeInStore<T, K extends Json.Serializable>(molecule: Molecule<any>, family: ReadonlySelectorFamily<T, K>, store: Store): ReadonlySelectorToken<T>;
514
- declare function growMoleculeInStore<T, K extends Json.Serializable>(molecule: Molecule<any>, family: SelectorFamily<T, K>, store: Store): SelectorToken<T>;
515
- declare function growMoleculeInStore<T, K extends Json.Serializable>(molecule: Molecule<any>, family: WritableFamily<T, K>, store: Store): WritableToken<T>;
516
- declare function growMoleculeInStore<T, K extends Json.Serializable>(molecule: Molecule<any>, family: ReadableFamily<T, K>, store: Store): ReadableToken<T>;
507
+ declare function growMoleculeInStore<T extends Transceiver<any>, J extends Json.Serializable, K extends Canonical>(molecule: Molecule<any>, family: MutableAtomFamily<T, J, K>, store: Store): MutableAtomToken<T, J>;
508
+ declare function growMoleculeInStore<T, K extends Canonical>(molecule: Molecule<any>, family: RegularAtomFamily<T, K>, store: Store): RegularAtomToken<T>;
509
+ declare function growMoleculeInStore<T, K extends Canonical>(molecule: Molecule<any>, family: AtomFamily<T, K>, store: Store): AtomToken<T>;
510
+ declare function growMoleculeInStore<T, K extends Canonical>(molecule: Molecule<any>, family: WritableSelectorFamily<T, K>, store: Store): WritableSelectorToken<T>;
511
+ declare function growMoleculeInStore<T, K extends Canonical>(molecule: Molecule<any>, family: ReadonlySelectorFamily<T, K>, store: Store): ReadonlySelectorToken<T>;
512
+ declare function growMoleculeInStore<T, K extends Canonical>(molecule: Molecule<any>, family: SelectorFamily<T, K>, store: Store): SelectorToken<T>;
513
+ declare function growMoleculeInStore<T, K extends Canonical>(molecule: Molecule<any>, family: WritableFamily<T, K>, store: Store): WritableToken<T>;
514
+ declare function growMoleculeInStore<T, K extends Canonical>(molecule: Molecule<any>, family: ReadableFamily<T, K>, store: Store): ReadableToken<T>;
517
515
 
518
516
  declare function makeMoleculeInStore<M extends MoleculeConstructor>(store: Store, context: MoleculeToken<M> | MoleculeToken<M>[], familyToken: MoleculeFamilyToken<M>, key: MoleculeKey<M>, ...params: MoleculeParams<M>): MoleculeToken<M>;
519
517
 
@@ -547,7 +545,7 @@ declare const become: <T>(nextVersionOfThing: Modify<T> | T) => (originalThing:
547
545
  declare const setAtomOrSelector: <T>(state: WritableState<T>, value: T | ((oldValue: T) => T), store: Store) => void;
548
546
 
549
547
  declare function setIntoStore<T, New extends T>(token: WritableToken<T>, value: New | ((oldValue: T) => New), store: Store): void;
550
- declare function setIntoStore<T, K extends Json.Serializable, New extends T>(token: WritableFamilyToken<T, K>, key: K, value: New | ((oldValue: T) => New), store: Store): void;
548
+ declare function setIntoStore<T, K extends Canonical, New extends T>(token: WritableFamilyToken<T, K>, key: K, value: New | ((oldValue: T) => New), store: Store): void;
551
549
 
552
550
  declare const subscribeToRootAtoms: <T>(selector: Selector<T>, store: Store) => (() => void)[];
553
551
 
@@ -590,4 +588,4 @@ type Selector<T> = ReadonlySelector<T> | WritableSelector<T>;
590
588
  type WritableState<T> = Atom<T> | WritableSelector<T>;
591
589
  type ReadableState<T> = Atom<T> | Selector<T>;
592
590
 
593
- export { type Atom, type AtomIOState, type AtomKey, type ChildStore, type EnvironmentData, FamilyTracker, type Flat, type Func, Future, IMPLICIT, LazyMap, type Lineage, type Modify, Molecule, type MutableAtom, NotFoundError, type OperationProgress, type ReadableState, type ReadonlySelector, type ReadonlySelectorKey, type RegularAtom, type RootStore, type Selector, 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 WritableSelector, 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, getUpdateToken, growMoleculeInStore, ingestAtomUpdate, ingestCreationEvent, ingestDisposalEvent, ingestMoleculeCreationEvent, ingestMoleculeDisposalEvent, ingestSelectorUpdate, ingestTransactionUpdate, initFamilyMemberInStore, isAtomDefault, isAtomKey, isChildStore, isDone, isMutable, isReadonlySelectorKey, isRootStore, isSelectorKey, isStateKey, isTransceiver, makeMoleculeInStore, markAtomAsDefault, markAtomAsNotDefault, markDone, newest, openOperation, readCachedValue, readOrComputeValue, registerSelector, seekInStore, setAtomOrSelector, setEpochNumberOfAction, setEpochNumberOfContinuity, setIntoStore, subscribeToRootAtoms, subscribeToState, subscribeToTimeline, subscribeToTransaction, timeTravel, traceAllSelectorAtoms, traceSelectorAtoms, updateSelectorAtoms, withdraw };
591
+ export { type Atom, type AtomIOState, type AtomKey, type ChildStore, type EnvironmentData, FamilyTracker, type Flat, type Func, Future, IMPLICIT, LazyMap, type Lineage, type Modify, Molecule, type MutableAtom, NotFoundError, type OperationProgress, type Range, type ReadableState, type ReadonlySelector, type ReadonlySelectorKey, type RegularAtom, type RootStore, type Selector, 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 WritableSelector, 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, 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, readCachedValue, readOrComputeValue, registerSelector, seekInStore, setAtomOrSelector, setEpochNumberOfAction, setEpochNumberOfContinuity, setIntoStore, subscribeToRootAtoms, subscribeToState, subscribeToTimeline, subscribeToTransaction, timeTravel, traceAllSelectorAtoms, traceSelectorAtoms, updateSelectorAtoms, withdraw };
@@ -465,8 +465,8 @@ function createRegularAtomFamily(options, store) {
465
465
 
466
466
  // internal/src/families/create-atom-family.ts
467
467
  function createAtomFamily(options, store) {
468
- const isMutable2 = `mutable` in options;
469
- if (isMutable2) {
468
+ const isMutable = `mutable` in options;
469
+ if (isMutable) {
470
470
  return createMutableAtomFamily(options, store);
471
471
  }
472
472
  return createRegularAtomFamily(options, store);
@@ -2325,11 +2325,6 @@ var getUpdateToken = (mutableAtomToken) => {
2325
2325
  return updateToken;
2326
2326
  };
2327
2327
 
2328
- // internal/src/mutable/is-mutable.ts
2329
- function isMutable(atomOrTokenOrFamily) {
2330
- return atomOrTokenOrFamily.type === `mutable_atom` || atomOrTokenOrFamily.type === `mutable_atom_family`;
2331
- }
2332
-
2333
2328
  // internal/src/mutable/transceiver.ts
2334
2329
  function isTransceiver(value) {
2335
2330
  return typeof value === `object` && value !== null && `do` in value && `undo` in value && `subscribe` in value;
@@ -2486,8 +2481,8 @@ function createRegularAtom(options, family, store) {
2486
2481
 
2487
2482
  // internal/src/atom/create-standalone-atom.ts
2488
2483
  function createStandaloneAtom(options, store) {
2489
- const isMutable2 = `mutable` in options;
2490
- if (isMutable2) {
2484
+ const isMutable = `mutable` in options;
2485
+ if (isMutable) {
2491
2486
  const state2 = createMutableAtom(options, void 0, store);
2492
2487
  store.on.atomCreation.next(state2);
2493
2488
  return state2;
@@ -3047,4 +3042,4 @@ var timeTravel = (action, token, store) => {
3047
3042
  );
3048
3043
  };
3049
3044
 
3050
- 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, getUpdateToken, growMoleculeInStore, ingestAtomUpdate, ingestCreationEvent, ingestDisposalEvent, ingestMoleculeCreationEvent, ingestMoleculeDisposalEvent, ingestSelectorUpdate, ingestTransactionUpdate, initFamilyMemberInStore, isAtomDefault, isAtomKey, isChildStore, isDone, isMutable, isReadonlySelectorKey, isRootStore, isSelectorKey, isStateKey, isTransceiver, makeMoleculeInStore, markAtomAsDefault, markAtomAsNotDefault, markDone, newest, openOperation, readCachedValue, readOrComputeValue, registerSelector, seekInStore, setAtomOrSelector, setEpochNumberOfAction, setEpochNumberOfContinuity, setIntoStore, subscribeToRootAtoms, subscribeToState, subscribeToTimeline, subscribeToTransaction, timeTravel, traceAllSelectorAtoms, traceSelectorAtoms, updateSelectorAtoms, withdraw };
3045
+ 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, 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, readCachedValue, readOrComputeValue, registerSelector, seekInStore, setAtomOrSelector, setEpochNumberOfAction, setEpochNumberOfContinuity, setIntoStore, subscribeToRootAtoms, subscribeToState, subscribeToTimeline, subscribeToTransaction, timeTravel, traceAllSelectorAtoms, traceSelectorAtoms, updateSelectorAtoms, withdraw };
@@ -4,7 +4,7 @@ import type {
4
4
  RegularAtomFamily,
5
5
  RegularAtomFamilyOptions,
6
6
  } from "atom.io"
7
- import type { Json } from "atom.io/json"
7
+ import type { Canonical, Json } from "atom.io/json"
8
8
 
9
9
  import { createMutableAtomFamily, type Transceiver } from "../mutable"
10
10
  import type { Store } from "../store"
@@ -13,16 +13,16 @@ import { createRegularAtomFamily } from "./create-regular-atom-family"
13
13
  export function createAtomFamily<
14
14
  T extends Transceiver<any>,
15
15
  J extends Json.Serializable,
16
- K extends Json.Serializable,
16
+ K extends Canonical,
17
17
  >(
18
18
  options: MutableAtomFamilyOptions<T, J, K>,
19
19
  store: Store,
20
20
  ): MutableAtomFamily<T, J, K>
21
- export function createAtomFamily<T, K extends Json.Serializable>(
21
+ export function createAtomFamily<T, K extends Canonical>(
22
22
  options: RegularAtomFamilyOptions<T, K>,
23
23
  store: Store,
24
24
  ): RegularAtomFamily<T, K>
25
- export function createAtomFamily<T, K extends Json.Serializable>(
25
+ export function createAtomFamily<T, K extends Canonical>(
26
26
  options:
27
27
  | MutableAtomFamilyOptions<any, any, any>
28
28
  | RegularAtomFamilyOptions<T, K>,
@@ -6,7 +6,7 @@ import type {
6
6
  StateCreation,
7
7
  StateDisposal,
8
8
  } from "atom.io"
9
- import type { Json } from "atom.io/json"
9
+ import type { Canonical } from "atom.io/json"
10
10
  import { stringifyJson } from "atom.io/json"
11
11
 
12
12
  import { newest } from "../lineage"
@@ -14,7 +14,7 @@ import { createReadonlySelector } from "../selector"
14
14
  import type { Store } from "../store"
15
15
  import { Subject } from "../subject"
16
16
 
17
- export function createReadonlySelectorFamily<T, K extends Json.Serializable>(
17
+ export function createReadonlySelectorFamily<T, K extends Canonical>(
18
18
  options: ReadonlySelectorFamilyOptions<T, K>,
19
19
  store: Store,
20
20
  ): ReadonlySelectorFamily<T, K> {
@@ -7,7 +7,7 @@ import type {
7
7
  StateCreation,
8
8
  StateDisposal,
9
9
  } from "atom.io"
10
- import type { Json } from "atom.io/json"
10
+ import type { Canonical } from "atom.io/json"
11
11
  import { stringifyJson } from "atom.io/json"
12
12
 
13
13
  import { createRegularAtom } from "../atom"
@@ -15,7 +15,7 @@ import { newest } from "../lineage"
15
15
  import type { Store } from "../store"
16
16
  import { Subject } from "../subject"
17
17
 
18
- export function createRegularAtomFamily<T, K extends Json.Serializable>(
18
+ export function createRegularAtomFamily<T, K extends Canonical>(
19
19
  options: RegularAtomFamilyOptions<T, K>,
20
20
  store: Store,
21
21
  ): RegularAtomFamily<T, K> {
@@ -4,21 +4,21 @@ import type {
4
4
  WritableSelectorFamily,
5
5
  WritableSelectorFamilyOptions,
6
6
  } from "atom.io"
7
- import type { Json } from "atom.io/json"
7
+ import type { Canonical } from "atom.io/json"
8
8
 
9
9
  import type { Store } from "../store"
10
10
  import { createReadonlySelectorFamily } from "./create-readonly-selector-family"
11
11
  import { createWritableSelectorFamily } from "./create-writable-selector-family"
12
12
 
13
- export function createSelectorFamily<T, K extends Json.Serializable>(
13
+ export function createSelectorFamily<T, K extends Canonical>(
14
14
  options: WritableSelectorFamilyOptions<T, K>,
15
15
  store: Store,
16
16
  ): WritableSelectorFamily<T, K>
17
- export function createSelectorFamily<T, K extends Json.Serializable>(
17
+ export function createSelectorFamily<T, K extends Canonical>(
18
18
  options: ReadonlySelectorFamilyOptions<T, K>,
19
19
  store: Store,
20
20
  ): ReadonlySelectorFamily<T, K>
21
- export function createSelectorFamily<T, K extends Json.Serializable>(
21
+ export function createSelectorFamily<T, K extends Canonical>(
22
22
  options:
23
23
  | ReadonlySelectorFamilyOptions<T, K>
24
24
  | WritableSelectorFamilyOptions<T, K>,
@@ -6,7 +6,7 @@ import type {
6
6
  WritableSelectorFamilyOptions,
7
7
  WritableSelectorToken,
8
8
  } from "atom.io"
9
- import type { Json } from "atom.io/json"
9
+ import type { Canonical } from "atom.io/json"
10
10
  import { stringifyJson } from "atom.io/json"
11
11
 
12
12
  import { newest } from "../lineage"
@@ -14,7 +14,7 @@ import { createWritableSelector } from "../selector"
14
14
  import type { Store } from "../store"
15
15
  import { Subject } from "../subject"
16
16
 
17
- export function createWritableSelectorFamily<T, K extends Json.Serializable>(
17
+ export function createWritableSelectorFamily<T, K extends Canonical>(
18
18
  options: WritableSelectorFamilyOptions<T, K>,
19
19
  store: Store,
20
20
  ): WritableSelectorFamily<T, K> {
@@ -6,7 +6,7 @@ import type {
6
6
  ReadableFamilyToken,
7
7
  ReadableToken,
8
8
  } from "atom.io"
9
- import type { Json } from "atom.io/json"
9
+ import type { Canonical } from "atom.io/json"
10
10
 
11
11
  import { disposeAtom } from "../atom"
12
12
  import { disposeMolecule } from "../molecule/dispose-molecule"
@@ -21,7 +21,7 @@ export function disposeFromStore(
21
21
  store: Store,
22
22
  ): void
23
23
 
24
- export function disposeFromStore<K extends Json.Serializable>(
24
+ export function disposeFromStore<K extends Canonical>(
25
25
  token: ReadableFamilyToken<any, K>,
26
26
  key: K,
27
27
  store: Store,
@@ -35,13 +35,9 @@ export function disposeFromStore<M extends MoleculeConstructor>(
35
35
 
36
36
  export function disposeFromStore(
37
37
  ...params:
38
- | [
39
- token: ReadableFamilyToken<any, any>,
40
- key: Json.Serializable,
41
- store: Store,
42
- ]
43
38
  | [token: MoleculeFamilyToken<any>, key: MoleculeKey<any>, store: Store]
44
39
  | [token: MoleculeToken<any> | ReadableToken<any>, store: Store]
40
+ | [token: ReadableFamilyToken<any, any>, key: Canonical, store: Store]
45
41
  ): void {
46
42
  let token: MoleculeToken<any> | ReadableToken<any>
47
43
  let store: Store
@@ -16,7 +16,7 @@ import type {
16
16
  WritableSelectorToken,
17
17
  WritableToken,
18
18
  } from "atom.io"
19
- import type { Json } from "atom.io/json"
19
+ import type { Canonical, Json } from "atom.io/json"
20
20
 
21
21
  import type { Transceiver } from "../mutable"
22
22
  import type { Store } from "../store"
@@ -26,7 +26,7 @@ import { seekInStore } from "./seek-in-store"
26
26
  export function findInStore<
27
27
  T extends Transceiver<any>,
28
28
  J extends Json.Serializable,
29
- K extends Json.Serializable,
29
+ K extends Canonical,
30
30
  Key extends K,
31
31
  >(
32
32
  token: MutableAtomFamilyToken<T, J, K>,
@@ -34,43 +34,43 @@ export function findInStore<
34
34
  store: Store,
35
35
  ): MutableAtomToken<T, J>
36
36
 
37
- export function findInStore<T, K extends Json.Serializable, Key extends K>(
37
+ export function findInStore<T, K extends Canonical, Key extends K>(
38
38
  token: RegularAtomFamilyToken<T, K>,
39
39
  key: Key,
40
40
  store: Store,
41
41
  ): RegularAtomToken<T>
42
42
 
43
- export function findInStore<T, K extends Json.Serializable, Key extends K>(
43
+ export function findInStore<T, K extends Canonical, Key extends K>(
44
44
  token: AtomFamilyToken<T, K>,
45
45
  key: Key,
46
46
  store: Store,
47
47
  ): AtomToken<T>
48
48
 
49
- export function findInStore<T, K extends Json.Serializable, Key extends K>(
49
+ export function findInStore<T, K extends Canonical, Key extends K>(
50
50
  token: WritableSelectorFamilyToken<T, K>,
51
51
  key: Key,
52
52
  store: Store,
53
53
  ): WritableSelectorToken<T>
54
54
 
55
- export function findInStore<T, K extends Json.Serializable, Key extends K>(
55
+ export function findInStore<T, K extends Canonical, Key extends K>(
56
56
  token: ReadonlySelectorFamilyToken<T, K>,
57
57
  key: Key,
58
58
  store: Store,
59
59
  ): ReadonlySelectorToken<T>
60
60
 
61
- export function findInStore<T, K extends Json.Serializable, Key extends K>(
61
+ export function findInStore<T, K extends Canonical, Key extends K>(
62
62
  token: SelectorFamilyToken<T, K>,
63
63
  key: Key,
64
64
  store: Store,
65
65
  ): SelectorToken<T>
66
66
 
67
- export function findInStore<T, K extends Json.Serializable, Key extends K>(
67
+ export function findInStore<T, K extends Canonical, Key extends K>(
68
68
  token: WritableFamilyToken<T, K>,
69
69
  key: Key,
70
70
  store: Store,
71
71
  ): WritableToken<T>
72
72
 
73
- export function findInStore<T, K extends Json.Serializable, Key extends K>(
73
+ export function findInStore<T, K extends Canonical, Key extends K>(
74
74
  token: ReadableFamilyToken<T, K>,
75
75
  key: Key,
76
76
  store: Store,
@@ -16,7 +16,7 @@ import type {
16
16
  WritableSelectorToken,
17
17
  WritableToken,
18
18
  } from "atom.io"
19
- import type { Json } from "atom.io/json"
19
+ import type { Canonical, Json } from "atom.io/json"
20
20
 
21
21
  import { newest } from "../lineage"
22
22
  import type { Transceiver } from "../mutable"
@@ -27,7 +27,7 @@ import { isChildStore, isRootStore } from "../transaction"
27
27
  export function initFamilyMemberInStore<
28
28
  T extends Transceiver<any>,
29
29
  J extends Json.Serializable,
30
- K extends Json.Serializable,
30
+ K extends Canonical,
31
31
  Key extends K,
32
32
  >(
33
33
  token: MutableAtomFamilyToken<T, J, K>,
@@ -35,59 +35,47 @@ export function initFamilyMemberInStore<
35
35
  store: Store,
36
36
  ): MutableAtomToken<T, J>
37
37
 
38
- export function initFamilyMemberInStore<
39
- T,
40
- K extends Json.Serializable,
41
- Key extends K,
42
- >(
38
+ export function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(
43
39
  token: RegularAtomFamilyToken<T, K>,
44
40
  key: Key,
45
41
  store: Store,
46
42
  ): RegularAtomToken<T>
47
43
 
48
- export function initFamilyMemberInStore<
49
- T,
50
- K extends Json.Serializable,
51
- Key extends K,
52
- >(token: AtomFamilyToken<T, K>, key: Key, store: Store): AtomToken<T>
44
+ export function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(
45
+ token: AtomFamilyToken<T, K>,
46
+ key: Key,
47
+ store: Store,
48
+ ): AtomToken<T>
53
49
 
54
- export function initFamilyMemberInStore<
55
- T,
56
- K extends Json.Serializable,
57
- Key extends K,
58
- >(
50
+ export function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(
59
51
  token: WritableSelectorFamilyToken<T, K>,
60
52
  key: Key,
61
53
  store: Store,
62
54
  ): WritableSelectorToken<T>
63
55
 
64
- export function initFamilyMemberInStore<
65
- T,
66
- K extends Json.Serializable,
67
- Key extends K,
68
- >(
56
+ export function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(
69
57
  token: ReadonlySelectorFamilyToken<T, K>,
70
58
  key: Key,
71
59
  store: Store,
72
60
  ): ReadonlySelectorToken<T>
73
61
 
74
- export function initFamilyMemberInStore<
75
- T,
76
- K extends Json.Serializable,
77
- Key extends K,
78
- >(token: SelectorFamilyToken<T, K>, key: Key, store: Store): SelectorToken<T>
62
+ export function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(
63
+ token: SelectorFamilyToken<T, K>,
64
+ key: Key,
65
+ store: Store,
66
+ ): SelectorToken<T>
79
67
 
80
- export function initFamilyMemberInStore<
81
- T,
82
- K extends Json.Serializable,
83
- Key extends K,
84
- >(token: WritableFamilyToken<T, K>, key: Key, store: Store): WritableToken<T>
68
+ export function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(
69
+ token: WritableFamilyToken<T, K>,
70
+ key: Key,
71
+ store: Store,
72
+ ): WritableToken<T>
85
73
 
86
- export function initFamilyMemberInStore<
87
- T,
88
- K extends Json.Serializable,
89
- Key extends K,
90
- >(token: ReadableFamilyToken<T, K>, key: Key, store: Store): ReadableToken<T>
74
+ export function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(
75
+ token: ReadableFamilyToken<T, K>,
76
+ key: Key,
77
+ store: Store,
78
+ ): ReadableToken<T>
91
79
 
92
80
  export function initFamilyMemberInStore(
93
81
  token: ReadableFamilyToken<any, any>,