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,12 +1,12 @@
1
1
  import * as AtomIO from 'atom.io';
2
2
  import { ReadonlySelectorFamily, MutableAtomFamily, SetterToolkit, disposeState, ReadonlySelectorToken, MutableAtomFamilyToken } from 'atom.io';
3
3
  import { Store, Molecule } from 'atom.io/internal';
4
- import { Json, Stringified } from 'atom.io/json';
4
+ import { Canonical, stringified, Json } from 'atom.io/json';
5
5
  import { findState } from 'atom.io/ephemeral';
6
6
  import { SetRTX, SetRTXJson } from 'atom.io/transceivers/set-rtx';
7
7
 
8
- declare function dict<State, Key extends Json.Serializable>(findState: AtomIO.ReadonlySelectorFamilyToken<State, Key> | AtomIO.RegularAtomFamilyToken<State, Key> | AtomIO.WritableSelectorFamily<State, Key>, index: AtomIO.ReadonlySelectorToken<Key[]> | AtomIO.RegularAtomToken<Key[]> | AtomIO.WritableSelectorToken<Key[]>, store?: Store): AtomIO.ReadonlySelectorToken<{
9
- [K in Stringified<Key>]: State;
8
+ declare function dict<State, Key extends Canonical>(findState: AtomIO.ReadonlySelectorFamilyToken<State, Key> | AtomIO.RegularAtomFamilyToken<State, Key> | AtomIO.WritableSelectorFamily<State, Key>, index: AtomIO.ReadonlySelectorToken<Key[]> | AtomIO.RegularAtomToken<Key[]> | AtomIO.WritableSelectorToken<Key[]>, store?: Store): AtomIO.ReadonlySelectorToken<{
9
+ [K in stringified<Key>]: State;
10
10
  }>;
11
11
 
12
12
  type primitive = boolean | number | string | null;
package/data/src/dict.ts CHANGED
@@ -5,9 +5,9 @@ import {
5
5
  findInStore,
6
6
  IMPLICIT,
7
7
  } from "atom.io/internal"
8
- import type { Json, Stringified } from "atom.io/json"
8
+ import type { Canonical, stringified } from "atom.io/json"
9
9
 
10
- export function dict<State, Key extends Json.Serializable>(
10
+ export function dict<State, Key extends Canonical>(
11
11
  findState:
12
12
  | AtomIO.ReadonlySelectorFamilyToken<State, Key>
13
13
  | AtomIO.RegularAtomFamilyToken<State, Key>
@@ -17,7 +17,7 @@ export function dict<State, Key extends Json.Serializable>(
17
17
  | AtomIO.RegularAtomToken<Key[]>
18
18
  | AtomIO.WritableSelectorToken<Key[]>,
19
19
  store: Store = IMPLICIT.STORE,
20
- ): AtomIO.ReadonlySelectorToken<{ [K in Stringified<Key>]: State }> {
20
+ ): AtomIO.ReadonlySelectorToken<{ [K in stringified<Key>]: State }> {
21
21
  return createStandaloneSelector(
22
22
  {
23
23
  key: `${findState.key}Dict`,
@@ -0,0 +1,21 @@
1
+ // ../anvl/src/json/index.ts
2
+ var parseJson = (str) => JSON.parse(str);
3
+ var stringifyJson = (json) => JSON.stringify(json);
4
+ var JSON_TYPE_NAMES = [
5
+ `array`,
6
+ `boolean`,
7
+ `null`,
8
+ `number`,
9
+ `object`,
10
+ `string`
11
+ ];
12
+ var JSON_DEFAULTS = {
13
+ array: [],
14
+ boolean: false,
15
+ null: null,
16
+ number: 0,
17
+ object: {},
18
+ string: ``
19
+ };
20
+
21
+ export { JSON_DEFAULTS, JSON_TYPE_NAMES, parseJson, stringifyJson };
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Transceiver, Subject, Store, Func, EnvironmentData, Flat, Timeline, TimelineAtomUpdate, TimelineMoleculeCreation, TimelineMoleculeDisposal, TimelineSelectorUpdate, TimelineStateCreation, TimelineStateDisposal, TimelineTransactionUpdate } from 'atom.io/internal';
2
- import { Json, JsonInterface } from 'atom.io/json';
2
+ import { Json, JsonInterface, Canonical } from 'atom.io/json';
3
3
  import { MoleculeConstructor as MoleculeConstructor$1, MoleculeToken as MoleculeToken$1, MoleculeFamilyToken as MoleculeFamilyToken$1, MoleculeParams as MoleculeParams$1, getState as getState$1, setState as setState$1, makeMolecule as makeMolecule$1, ActorToolkit as ActorToolkit$1, MutableAtomFamilyToken as MutableAtomFamilyToken$1, MutableAtomToken as MutableAtomToken$1, RegularAtomFamilyToken as RegularAtomFamilyToken$1, RegularAtomToken as RegularAtomToken$1, WritableSelectorFamilyToken as WritableSelectorFamilyToken$1, WritableSelectorToken as WritableSelectorToken$1, ReadonlySelectorFamilyToken as ReadonlySelectorFamilyToken$1, ReadonlySelectorToken as ReadonlySelectorToken$1, WritableFamilyToken as WritableFamilyToken$1, WritableToken as WritableToken$1, ReadableFamilyToken as ReadableFamilyToken$1, ReadableToken as ReadableToken$1, MoleculeCreation as MoleculeCreation$1, MoleculeDisposal as MoleculeDisposal$1 } from 'atom.io';
4
4
  import { findState } from 'atom.io/ephemeral';
5
5
  import { seekState } from 'atom.io/immortal';
@@ -40,52 +40,44 @@ declare function atom<T extends Transceiver<any>, J extends Json.Serializable>(o
40
40
  * @overload Regular
41
41
  */
42
42
  declare function atom<T>(options: RegularAtomOptions<T>): RegularAtomToken<T>;
43
- type RegularAtomFamilyOptions<T, K extends Json.Serializable> = {
43
+ type RegularAtomFamilyOptions<T, K extends Canonical> = {
44
44
  key: string;
45
45
  default: T | ((key: K) => T);
46
46
  effects?: (key: K) => AtomEffect<T>[];
47
47
  };
48
- type RegularAtomFamilyToken<T, K extends Json.Serializable> = {
48
+ type RegularAtomFamilyToken<T, K extends Canonical> = {
49
49
  key: string;
50
50
  type: `atom_family`;
51
51
  __T?: T;
52
52
  __K?: K;
53
53
  };
54
- type RegularAtomFamilyTokenWithCall<T, K extends Json.Serializable> = RegularAtomFamilyToken<T, K> & {
55
- /** @deprecated In ephemeral stores, prefer the `findState`, `findInStore`, or `find` functions. In immortal stores, prefer the `seekState`, `seekInStore`, or `seek` functions. */
56
- (key: K): RegularAtomToken<T>;
57
- };
58
- type RegularAtomFamily<T, K extends Json.Serializable> = RegularAtomFamilyToken<T, K> & {
54
+ type RegularAtomFamily<T, K extends Canonical> = RegularAtomFamilyToken<T, K> & {
59
55
  (key: K): RegularAtomToken<T>;
60
56
  subject: Subject<StateCreation<AtomToken<T>> | StateDisposal<AtomToken<T>>>;
61
57
  install: (store: Store) => void;
62
58
  };
63
- type MutableAtomFamilyOptions<T extends Transceiver<any>, J extends Json.Serializable, K extends Json.Serializable> = JsonInterface<T, J> & {
59
+ type MutableAtomFamilyOptions<T extends Transceiver<any>, J extends Json.Serializable, K extends Canonical> = JsonInterface<T, J> & {
64
60
  key: string;
65
61
  default: (key: K) => T;
66
62
  effects?: (key: K) => AtomEffect<T>[];
67
63
  mutable: true;
68
64
  };
69
- type MutableAtomFamilyToken<T extends Transceiver<any>, J extends Json.Serializable, K extends Json.Serializable> = {
65
+ type MutableAtomFamilyToken<T extends Transceiver<any>, J extends Json.Serializable, K extends Canonical> = {
70
66
  key: string;
71
67
  type: `mutable_atom_family`;
72
68
  __T?: T;
73
69
  __J?: J;
74
70
  __K?: K;
75
71
  };
76
- type MutableAtomFamilyTokenWithCall<T extends Transceiver<any>, J extends Json.Serializable, K extends Json.Serializable> = MutableAtomFamilyToken<T, J, K> & {
77
- /** @deprecated In ephemeral stores, prefer the `findState`, `findInStore`, or `find` functions. In immortal stores, prefer the `seekState`, `seekInStore`, or `seek` functions. */
78
- (key: K): MutableAtomToken<T, J>;
79
- };
80
- type MutableAtomFamily<T extends Transceiver<any>, J extends Json.Serializable, K extends Json.Serializable> = JsonInterface<T, J> & MutableAtomFamilyToken<T, J, K> & {
72
+ type MutableAtomFamily<T extends Transceiver<any>, J extends Json.Serializable, K extends Canonical> = JsonInterface<T, J> & MutableAtomFamilyToken<T, J, K> & {
81
73
  (key: K): MutableAtomToken<T, J>;
82
74
  subject: Subject<StateCreation<MutableAtomToken<T, J>> | StateDisposal<MutableAtomToken<T, J>>>;
83
75
  install: (store: Store) => void;
84
76
  };
85
- type AtomFamily<T, K extends Json.Serializable = Json.Serializable> = MutableAtomFamily<T extends Transceiver<any> ? T : never, any, K> | RegularAtomFamily<T, K>;
86
- type AtomFamilyToken<T, K extends Json.Serializable = Json.Serializable> = MutableAtomFamilyToken<T extends Transceiver<any> ? T : never, any, K> | RegularAtomFamilyToken<T, K>;
87
- declare function atomFamily<T extends Transceiver<any>, J extends Json.Serializable, K extends Json.Serializable>(options: MutableAtomFamilyOptions<T, J, K>): MutableAtomFamilyTokenWithCall<T, J, K>;
88
- declare function atomFamily<T, K extends Json.Serializable>(options: RegularAtomFamilyOptions<T, K>): RegularAtomFamilyTokenWithCall<T, K>;
77
+ type AtomFamily<T, K extends Canonical = Canonical> = MutableAtomFamily<T extends Transceiver<any> ? T : never, any, K> | RegularAtomFamily<T, K>;
78
+ type AtomFamilyToken<T, K extends Canonical = Canonical> = MutableAtomFamilyToken<T extends Transceiver<any> ? T : never, any, K> | RegularAtomFamilyToken<T, K>;
79
+ declare function atomFamily<T extends Transceiver<any>, J extends Json.Serializable, K extends Canonical>(options: MutableAtomFamilyOptions<T, J, K>): MutableAtomFamilyToken<T, J, K>;
80
+ declare function atomFamily<T, K extends Canonical>(options: RegularAtomFamilyOptions<T, K>): RegularAtomFamilyToken<T, K>;
89
81
 
90
82
  type TransactionToken<F extends Func> = {
91
83
  key: string;
@@ -166,41 +158,33 @@ type ReadonlySelectorOptions<T> = {
166
158
  };
167
159
  declare function selector<T>(options: WritableSelectorOptions<T>): WritableSelectorToken<T>;
168
160
  declare function selector<T>(options: ReadonlySelectorOptions<T>): ReadonlySelectorToken<T>;
169
- type WritableSelectorFamilyOptions<T, K extends Json.Serializable> = {
161
+ type WritableSelectorFamilyOptions<T, K extends Canonical> = {
170
162
  key: string;
171
163
  get: (key: K) => Read<() => T>;
172
164
  set: (key: K) => Write<(newValue: T) => void>;
173
165
  };
174
- type ReadonlySelectorFamilyOptions<T, K extends Json.Serializable> = {
166
+ type ReadonlySelectorFamilyOptions<T, K extends Canonical> = {
175
167
  key: string;
176
168
  get: (key: K) => Read<() => T>;
177
169
  };
178
- type WritableSelectorFamilyToken<T, K extends Json.Serializable> = {
170
+ type WritableSelectorFamilyToken<T, K extends Canonical> = {
179
171
  key: string;
180
172
  type: `selector_family`;
181
173
  __T?: T;
182
174
  __K?: K;
183
175
  };
184
- type WritableSelectorFamilyTokenWithCall<T, K extends Json.Serializable> = WritableSelectorFamilyToken<T, K> & {
185
- /** @deprecated In ephemeral stores, prefer the `findState`, `findInStore`, or `find` functions. In immortal stores, prefer the `seekState`, `seekInStore`, or `seek` functions. */
186
- (key: K): WritableSelectorToken<T>;
187
- };
188
- type WritableSelectorFamily<T, K extends Json.Serializable> = WritableSelectorFamilyToken<T, K> & {
176
+ type WritableSelectorFamily<T, K extends Canonical> = WritableSelectorFamilyToken<T, K> & {
189
177
  (key: K): WritableSelectorToken<T>;
190
178
  subject: Subject<StateCreation<WritableSelectorToken<T>> | StateDisposal<WritableSelectorToken<T>>>;
191
179
  install: (store: Store) => void;
192
180
  };
193
- type ReadonlySelectorFamilyToken<T, K extends Json.Serializable> = {
181
+ type ReadonlySelectorFamilyToken<T, K extends Canonical> = {
194
182
  key: string;
195
183
  type: `readonly_selector_family`;
196
184
  __T?: T;
197
185
  __K?: K;
198
186
  };
199
- type ReadonlySelectorFamilyTokenWithCall<T, K extends Json.Serializable> = ReadonlySelectorFamilyToken<T, K> & {
200
- /** @deprecated In ephemeral stores, prefer the `findState`, `findInStore`, or `find` functions. In immortal stores, prefer the `seekState`, `seekInStore`, or `seek` functions. */
201
- (key: K): ReadonlySelectorToken<T>;
202
- };
203
- type ReadonlySelectorFamily<T, K extends Json.Serializable> = ((key: K) => ReadonlySelectorToken<T>) & {
187
+ type ReadonlySelectorFamily<T, K extends Canonical> = ((key: K) => ReadonlySelectorToken<T>) & {
204
188
  key: string;
205
189
  type: `readonly_selector_family`;
206
190
  subject: Subject<StateCreation<ReadonlySelectorToken<T>> | StateDisposal<ReadonlySelectorToken<T>>>;
@@ -208,12 +192,12 @@ type ReadonlySelectorFamily<T, K extends Json.Serializable> = ((key: K) => Reado
208
192
  __T?: T;
209
193
  __K?: K;
210
194
  };
211
- type SelectorFamily<T, K extends Json.Serializable> = ReadonlySelectorFamily<T, K> | WritableSelectorFamily<T, K>;
212
- type SelectorFamilyToken<T, K extends Json.Serializable> = ReadonlySelectorFamilyToken<T, K> | WritableSelectorFamilyToken<T, K>;
213
- declare function selectorFamily<T, K extends Json.Serializable>(options: WritableSelectorFamilyOptions<T, K>): WritableSelectorFamilyTokenWithCall<T, K>;
214
- declare function selectorFamily<T, K extends Json.Serializable>(options: ReadonlySelectorFamilyOptions<T, K>): ReadonlySelectorFamilyTokenWithCall<T, K>;
195
+ type SelectorFamily<T, K extends Canonical> = ReadonlySelectorFamily<T, K> | WritableSelectorFamily<T, K>;
196
+ type SelectorFamilyToken<T, K extends Canonical> = ReadonlySelectorFamilyToken<T, K> | WritableSelectorFamilyToken<T, K>;
197
+ declare function selectorFamily<T, K extends Canonical>(options: WritableSelectorFamilyOptions<T, K>): WritableSelectorFamilyToken<T, K>;
198
+ declare function selectorFamily<T, K extends Canonical>(options: ReadonlySelectorFamilyOptions<T, K>): ReadonlySelectorFamilyToken<T, K>;
215
199
 
216
- type CtorToolkit<K extends Json.Serializable> = Flat<Omit<ActorToolkit$1, `find`> & {
200
+ type CtorToolkit<K extends Canonical> = Flat<Omit<ActorToolkit$1, `find`> & {
217
201
  bond<T extends Transceiver<any>, J extends Json.Serializable>(family: MutableAtomFamilyToken$1<T, J, K>): MutableAtomToken$1<T, J>;
218
202
  bond<T>(family: RegularAtomFamilyToken$1<T, K>): RegularAtomToken$1<T>;
219
203
  bond<T>(family: WritableSelectorFamilyToken$1<T, K>): WritableSelectorToken$1<T>;
@@ -234,7 +218,7 @@ type CtorToolkit<K extends Json.Serializable> = Flat<Omit<ActorToolkit$1, `find`
234
218
  claim(below: MoleculeToken<any>, options: {
235
219
  exclusive: boolean;
236
220
  }): void;
237
- spawn<Key extends Json.Serializable, Ctor extends MoleculeConstructor>(family: MoleculeFamilyToken<Ctor>, key: Key, ...params: MoleculeParams<Ctor>): MoleculeToken<Ctor>;
221
+ spawn<Key extends Canonical, Ctor extends MoleculeConstructor>(family: MoleculeFamilyToken<Ctor>, key: Key, ...params: MoleculeParams<Ctor>): MoleculeToken<Ctor>;
238
222
  }>;
239
223
  type MoleculeConstructor = new (toolkit: CtorToolkit<any>, key: any, ...params: any) => any;
240
224
  type Tail<T extends any[]> = T extends [any, ...infer Rest] ? Rest : any[];
@@ -268,13 +252,13 @@ type MoleculeKey<M extends MoleculeConstructor> = InstanceType<M>[`key`];
268
252
  declare function makeRootMolecule(key: string, store?: Store): MoleculeToken<ObjectConstructor>;
269
253
 
270
254
  declare function disposeState(token: MoleculeToken<any> | ReadableToken<any>): void;
271
- declare function disposeState<K extends Json.Serializable>(token: ReadableFamilyToken<any, K>, key: K): void;
255
+ declare function disposeState<K extends Canonical>(token: ReadableFamilyToken<any, K>, key: K): void;
272
256
  declare function disposeState<M extends MoleculeConstructor>(token: MoleculeFamilyToken<M>, key: MoleculeKey<M>): void;
273
257
 
274
258
  declare function getState<T>(token: ReadableToken<T>): T;
275
259
  declare function getState<M extends MoleculeConstructor>(token: MoleculeToken<M>): InstanceType<M>;
276
- declare function getState<T, K extends Json.Serializable>(token: ReadableFamilyToken<T, K>, key: K): T;
277
- declare function getState<M extends MoleculeConstructor>(token: MoleculeFamilyToken<M>, key: Json.Serializable): InstanceType<M>;
260
+ declare function getState<T, K extends Canonical>(token: ReadableFamilyToken<T, K>, key: K): T;
261
+ declare function getState<M extends MoleculeConstructor>(token: MoleculeFamilyToken<M>, key: Canonical): InstanceType<M>;
278
262
 
279
263
  declare const LoggerIconDictionary: {
280
264
  readonly "\u231B": "Timeline event fully captured";
@@ -346,12 +330,6 @@ declare class AtomIOLogger implements Logger {
346
330
  warn: LogFn;
347
331
  }
348
332
 
349
- type primitive = boolean | number | string | null;
350
-
351
- type Serializable = primitive | Readonly<{
352
- [key: string]: Serializable;
353
- }> | ReadonlyArray<Serializable>;
354
-
355
333
  /**
356
334
  * @public
357
335
  * Set the value of a state into the implicit store.
@@ -369,7 +347,7 @@ declare function setState<T, New extends T>(token: WritableToken<T>, value: New
369
347
  * @param value - The new value of the state.
370
348
  * @overload Streamlined
371
349
  */
372
- declare function setState<T, K extends Serializable, New extends T>(token: WritableFamilyToken<T, K>, key: K, value: New | ((oldValue: T) => New)): void;
350
+ declare function setState<T, K extends Canonical, New extends T>(token: WritableFamilyToken<T, K>, key: K, value: New | ((oldValue: T) => New)): void;
373
351
 
374
352
  declare class Silo {
375
353
  store: Store;
@@ -466,13 +444,13 @@ type ReadonlySelectorToken<T> = {
466
444
  type SelectorToken<T> = ReadonlySelectorToken<T> | WritableSelectorToken<T>;
467
445
  type WritableToken<T> = AtomToken<T> | WritableSelectorToken<T>;
468
446
  type ReadableToken<T> = AtomToken<T> | SelectorToken<T>;
469
- type WritableFamily<T, K extends Json.Serializable> = AtomFamily<T, K> | WritableSelectorFamily<T, K>;
470
- type ReadableFamily<T, K extends Json.Serializable> = AtomFamily<T, K> | SelectorFamily<T, K>;
471
- type WritableFamilyToken<T, K extends Json.Serializable> = AtomFamilyToken<T, K> | WritableSelectorFamilyToken<T, K>;
472
- type ReadableFamilyToken<T, K extends Json.Serializable> = AtomFamilyToken<T, K> | SelectorFamilyToken<T, K>;
447
+ type WritableFamily<T, K extends Canonical> = AtomFamily<T, K> | WritableSelectorFamily<T, K>;
448
+ type ReadableFamily<T, K extends Canonical> = AtomFamily<T, K> | SelectorFamily<T, K>;
449
+ type WritableFamilyToken<T, K extends Canonical> = AtomFamilyToken<T, K> | WritableSelectorFamilyToken<T, K>;
450
+ type ReadableFamilyToken<T, K extends Canonical> = AtomFamilyToken<T, K> | SelectorFamilyToken<T, K>;
473
451
  type FamilyMetadata = {
474
452
  key: string;
475
453
  subKey: string;
476
454
  };
477
455
 
478
- export { type ActorToolkit, type AtomEffect, type AtomFamily, type AtomFamilyToken, AtomIOLogger, type AtomOnly, type AtomToken, type CtorToolkit, type Effectors, type FamilyMetadata, type GetterToolkit, type KeyedStateUpdate, LOG_LEVELS, type LogFilter, type LogFn, type LogLevel, type Logger, type LoggerIcon, type MoleculeConstructor, type MoleculeCreation, type MoleculeDisposal, type MoleculeFamily, type MoleculeFamilyOptions, type MoleculeFamilyToken, type MoleculeKey, type MoleculeParams, type MoleculeToken, type MoleculeType, type MutableAtomFamily, type MutableAtomFamilyOptions, type MutableAtomFamilyToken, type MutableAtomFamilyTokenWithCall, type MutableAtomOptions, type MutableAtomToken, type Read, type ReadableFamily, type ReadableFamilyToken, type ReadableToken, type ReadonlySelectorFamily, type ReadonlySelectorFamilyOptions, type ReadonlySelectorFamilyToken, type ReadonlySelectorFamilyTokenWithCall, type ReadonlySelectorOptions, type ReadonlySelectorToken, type RegularAtomFamily, type RegularAtomFamilyOptions, type RegularAtomFamilyToken, type RegularAtomFamilyTokenWithCall, type RegularAtomOptions, type RegularAtomToken, type SelectorFamily, type SelectorFamilyToken, type SelectorToken, type SetterToolkit, Silo, type StateCreation, type StateDisposal, type StateUpdate, type TimelineManageable, type TimelineOptions, type TimelineToken, type TimelineUpdate, type TokenDenomination, type TokenType, type Transact, type TransactionIO, type TransactionOptions, type TransactionToken, type TransactionUpdate, type TransactionUpdateContent, type TransactionUpdateHandler, type UpdateHandler, type WritableFamily, type WritableFamilyToken, type WritableSelectorFamily, type WritableSelectorFamilyOptions, type WritableSelectorFamilyToken, type WritableSelectorFamilyTokenWithCall, type WritableSelectorOptions, type WritableSelectorToken, type WritableToken, type Write, atom, atomFamily, belongsTo, disposeState, getState, isToken, makeMolecule, makeRootMolecule, moleculeFamily, redo, runTransaction, selector, selectorFamily, setState, simpleLog, simpleLogger, subscribe, timeline, transaction, undo };
456
+ export { type ActorToolkit, type AtomEffect, type AtomFamily, type AtomFamilyToken, AtomIOLogger, type AtomOnly, type AtomToken, type CtorToolkit, type Effectors, type FamilyMetadata, type GetterToolkit, type KeyedStateUpdate, LOG_LEVELS, type LogFilter, type LogFn, type LogLevel, type Logger, type LoggerIcon, type MoleculeConstructor, type MoleculeCreation, type MoleculeDisposal, type MoleculeFamily, type MoleculeFamilyOptions, type MoleculeFamilyToken, type MoleculeKey, type MoleculeParams, type MoleculeToken, type MoleculeType, type MutableAtomFamily, type MutableAtomFamilyOptions, type MutableAtomFamilyToken, type MutableAtomOptions, type MutableAtomToken, type Read, type ReadableFamily, type ReadableFamilyToken, type ReadableToken, type ReadonlySelectorFamily, type ReadonlySelectorFamilyOptions, type ReadonlySelectorFamilyToken, type ReadonlySelectorOptions, type ReadonlySelectorToken, type RegularAtomFamily, type RegularAtomFamilyOptions, type RegularAtomFamilyToken, type RegularAtomOptions, type RegularAtomToken, type SelectorFamily, type SelectorFamilyToken, type SelectorToken, type SetterToolkit, Silo, type StateCreation, type StateDisposal, type StateUpdate, type TimelineManageable, type TimelineOptions, type TimelineToken, type TimelineUpdate, type TokenDenomination, type TokenType, type Transact, type TransactionIO, type TransactionOptions, type TransactionToken, type TransactionUpdate, type TransactionUpdateContent, type TransactionUpdateHandler, type UpdateHandler, type WritableFamily, type WritableFamilyToken, type WritableSelectorFamily, type WritableSelectorFamilyOptions, type WritableSelectorFamilyToken, type WritableSelectorOptions, type WritableSelectorToken, type WritableToken, type Write, atom, atomFamily, belongsTo, disposeState, getState, isToken, makeMolecule, makeRootMolecule, moleculeFamily, redo, runTransaction, selector, selectorFamily, setState, simpleLog, simpleLogger, subscribe, timeline, transaction, undo };
@@ -1,6 +1,6 @@
1
1
  import { MutableAtomFamilyToken, MutableAtomToken, RegularAtomFamilyToken, RegularAtomToken, WritableSelectorFamilyToken, WritableSelectorToken, ReadonlySelectorFamilyToken, ReadonlySelectorToken, WritableFamilyToken, WritableToken, ReadableFamilyToken, ReadableToken } from 'atom.io';
2
2
  import { Transceiver } from 'atom.io/internal';
3
- import { Json } from 'atom.io/json';
3
+ import { Json, Canonical } from 'atom.io/json';
4
4
 
5
5
  /**
6
6
  * @overload Mutable Atom
@@ -10,7 +10,7 @@ import { Json } from 'atom.io/json';
10
10
  * @returns
11
11
  * The current value of the state.
12
12
  */
13
- declare function findState<T extends Transceiver<any>, J extends Json.Serializable, K extends Json.Serializable, Key extends K>(token: MutableAtomFamilyToken<T, J, K>, key: Key): MutableAtomToken<T, J>;
13
+ declare function findState<T extends Transceiver<any>, J extends Json.Serializable, K extends Canonical, Key extends K>(token: MutableAtomFamilyToken<T, J, K>, key: Key): MutableAtomToken<T, J>;
14
14
  /**
15
15
  * Finds a state in the store.
16
16
  * @param token - The token of the state family.
@@ -18,7 +18,7 @@ declare function findState<T extends Transceiver<any>, J extends Json.Serializab
18
18
  * @returns
19
19
  * The current value of the state.
20
20
  */
21
- declare function findState<T, K extends Json.Serializable, Key extends K>(token: RegularAtomFamilyToken<T, K>, key: Key): RegularAtomToken<T>;
21
+ declare function findState<T, K extends Canonical, Key extends K>(token: RegularAtomFamilyToken<T, K>, key: Key): RegularAtomToken<T>;
22
22
  /**
23
23
  * Finds a state in the store.
24
24
  * @param token - The token of the state family.
@@ -26,7 +26,7 @@ declare function findState<T, K extends Json.Serializable, Key extends K>(token:
26
26
  * @returns
27
27
  * The current value of the state.
28
28
  */
29
- declare function findState<T, K extends Json.Serializable, Key extends K>(token: WritableSelectorFamilyToken<T, K>, key: Key): WritableSelectorToken<T>;
29
+ declare function findState<T, K extends Canonical, Key extends K>(token: WritableSelectorFamilyToken<T, K>, key: Key): WritableSelectorToken<T>;
30
30
  /**
31
31
  * Finds a state in the store.
32
32
  * @param token - The token of the state family.
@@ -34,7 +34,7 @@ declare function findState<T, K extends Json.Serializable, Key extends K>(token:
34
34
  * @returns
35
35
  * The current value of the state.
36
36
  */
37
- declare function findState<T, K extends Json.Serializable, Key extends K>(token: ReadonlySelectorFamilyToken<T, K>, key: Key): ReadonlySelectorToken<T>;
37
+ declare function findState<T, K extends Canonical, Key extends K>(token: ReadonlySelectorFamilyToken<T, K>, key: Key): ReadonlySelectorToken<T>;
38
38
  /**
39
39
  * Finds a state in the store.
40
40
  * @param token - The token of the state family.
@@ -42,7 +42,7 @@ declare function findState<T, K extends Json.Serializable, Key extends K>(token:
42
42
  * @returns
43
43
  * The current value of the state.
44
44
  */
45
- declare function findState<T, K extends Json.Serializable, Key extends K>(token: WritableFamilyToken<T, K>, key: Key): WritableToken<T>;
45
+ declare function findState<T, K extends Canonical, Key extends K>(token: WritableFamilyToken<T, K>, key: Key): WritableToken<T>;
46
46
  /**
47
47
  * @public
48
48
  * Finds a {@link ReadableToken} in the store.
@@ -52,6 +52,6 @@ declare function findState<T, K extends Json.Serializable, Key extends K>(token:
52
52
  * The current value of the state.
53
53
  * @overload Unknown
54
54
  */
55
- declare function findState<T, K extends Json.Serializable, Key extends K>(token: ReadableFamilyToken<T, K>, key: Key): ReadableToken<T>;
55
+ declare function findState<T, K extends Canonical, Key extends K>(token: ReadableFamilyToken<T, K>, key: Key): ReadableToken<T>;
56
56
 
57
57
  export { findState };
@@ -14,7 +14,7 @@ import type {
14
14
  } from "atom.io"
15
15
  import type { Transceiver } from "atom.io/internal"
16
16
  import { findInStore, IMPLICIT } from "atom.io/internal"
17
- import type { Json } from "atom.io/json"
17
+ import type { Canonical, Json } from "atom.io/json"
18
18
 
19
19
  /**
20
20
  * @overload Mutable Atom
@@ -27,7 +27,7 @@ import type { Json } from "atom.io/json"
27
27
  export function findState<
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
  >(token: MutableAtomFamilyToken<T, J, K>, key: Key): MutableAtomToken<T, J>
33
33
  /**
@@ -37,7 +37,7 @@ export function findState<
37
37
  * @returns
38
38
  * The current value of the state.
39
39
  */
40
- export function findState<T, K extends Json.Serializable, Key extends K>(
40
+ export function findState<T, K extends Canonical, Key extends K>(
41
41
  token: RegularAtomFamilyToken<T, K>,
42
42
  key: Key,
43
43
  ): RegularAtomToken<T>
@@ -48,7 +48,7 @@ export function findState<T, K extends Json.Serializable, Key extends K>(
48
48
  * @returns
49
49
  * The current value of the state.
50
50
  */
51
- export function findState<T, K extends Json.Serializable, Key extends K>(
51
+ export function findState<T, K extends Canonical, Key extends K>(
52
52
  token: WritableSelectorFamilyToken<T, K>,
53
53
  key: Key,
54
54
  ): WritableSelectorToken<T>
@@ -59,7 +59,7 @@ export function findState<T, K extends Json.Serializable, Key extends K>(
59
59
  * @returns
60
60
  * The current value of the state.
61
61
  */
62
- export function findState<T, K extends Json.Serializable, Key extends K>(
62
+ export function findState<T, K extends Canonical, Key extends K>(
63
63
  token: ReadonlySelectorFamilyToken<T, K>,
64
64
  key: Key,
65
65
  ): ReadonlySelectorToken<T>
@@ -70,7 +70,7 @@ export function findState<T, K extends Json.Serializable, Key extends K>(
70
70
  * @returns
71
71
  * The current value of the state.
72
72
  */
73
- export function findState<T, K extends Json.Serializable, Key extends K>(
73
+ export function findState<T, K extends Canonical, Key extends K>(
74
74
  token: WritableFamilyToken<T, K>,
75
75
  key: Key,
76
76
  ): WritableToken<T>
@@ -83,7 +83,7 @@ export function findState<T, K extends Json.Serializable, Key extends K>(
83
83
  * The current value of the state.
84
84
  * @overload Unknown
85
85
  */
86
- export function findState<T, K extends Json.Serializable, Key extends K>(
86
+ export function findState<T, K extends Canonical, Key extends K>(
87
87
  token: ReadableFamilyToken<T, K>,
88
88
  key: Key,
89
89
  ): ReadableToken<T>
@@ -1,13 +1,13 @@
1
1
  import { MutableAtomFamilyToken, MutableAtomToken, RegularAtomFamilyToken, RegularAtomToken, WritableSelectorFamilyToken, WritableSelectorToken, ReadonlySelectorFamilyToken, ReadonlySelectorToken, WritableFamilyToken, WritableToken, ReadableFamilyToken, ReadableToken, MoleculeConstructor, MoleculeFamilyToken, MoleculeKey, MoleculeToken } from 'atom.io';
2
2
  import { Transceiver } from 'atom.io/internal';
3
- import { Json } from 'atom.io/json';
3
+ import { Json, Canonical } from 'atom.io/json';
4
4
 
5
- declare function seekState<T extends Transceiver<any>, J extends Json.Serializable, K extends Json.Serializable, Key extends K>(token: MutableAtomFamilyToken<T, J, K>, key: Key): MutableAtomToken<T, J> | undefined;
6
- declare function seekState<T, K extends Json.Serializable, Key extends K>(token: RegularAtomFamilyToken<T, K>, key: Key): RegularAtomToken<T> | undefined;
7
- declare function seekState<T, K extends Json.Serializable, Key extends K>(token: WritableSelectorFamilyToken<T, K>, key: Key): WritableSelectorToken<T> | undefined;
8
- declare function seekState<T, K extends Json.Serializable, Key extends K>(token: ReadonlySelectorFamilyToken<T, K>, key: Key): ReadonlySelectorToken<T> | undefined;
9
- declare function seekState<T, K extends Json.Serializable, Key extends K>(token: WritableFamilyToken<T, K>, key: Key): WritableToken<T> | undefined;
10
- declare function seekState<T, K extends Json.Serializable, Key extends K>(token: ReadableFamilyToken<T, K>, key: Key): ReadableToken<T> | undefined;
5
+ declare function seekState<T extends Transceiver<any>, J extends Json.Serializable, K extends Canonical, Key extends K>(token: MutableAtomFamilyToken<T, J, K>, key: Key): MutableAtomToken<T, J> | undefined;
6
+ declare function seekState<T, K extends Canonical, Key extends K>(token: RegularAtomFamilyToken<T, K>, key: Key): RegularAtomToken<T> | undefined;
7
+ declare function seekState<T, K extends Canonical, Key extends K>(token: WritableSelectorFamilyToken<T, K>, key: Key): WritableSelectorToken<T> | undefined;
8
+ declare function seekState<T, K extends Canonical, Key extends K>(token: ReadonlySelectorFamilyToken<T, K>, key: Key): ReadonlySelectorToken<T> | undefined;
9
+ declare function seekState<T, K extends Canonical, Key extends K>(token: WritableFamilyToken<T, K>, key: Key): WritableToken<T> | undefined;
10
+ declare function seekState<T, K extends Canonical, Key extends K>(token: ReadableFamilyToken<T, K>, key: Key): ReadableToken<T> | undefined;
11
11
  declare function seekState<M extends MoleculeConstructor>(token: MoleculeFamilyToken<M>, key: MoleculeKey<M>): MoleculeToken<M> | undefined;
12
12
 
13
13
  export { seekState };
@@ -18,39 +18,39 @@ import type {
18
18
  } from "atom.io"
19
19
  import type { Transceiver } from "atom.io/internal"
20
20
  import { IMPLICIT, seekInStore } from "atom.io/internal"
21
- import type { Json } from "atom.io/json"
21
+ import type { Canonical, Json } from "atom.io/json"
22
22
 
23
23
  export function seekState<
24
24
  T extends Transceiver<any>,
25
25
  J extends Json.Serializable,
26
- K extends Json.Serializable,
26
+ K extends Canonical,
27
27
  Key extends K,
28
28
  >(
29
29
  token: MutableAtomFamilyToken<T, J, K>,
30
30
  key: Key,
31
31
  ): MutableAtomToken<T, J> | undefined
32
32
 
33
- export function seekState<T, K extends Json.Serializable, Key extends K>(
33
+ export function seekState<T, K extends Canonical, Key extends K>(
34
34
  token: RegularAtomFamilyToken<T, K>,
35
35
  key: Key,
36
36
  ): RegularAtomToken<T> | undefined
37
37
 
38
- export function seekState<T, K extends Json.Serializable, Key extends K>(
38
+ export function seekState<T, K extends Canonical, Key extends K>(
39
39
  token: WritableSelectorFamilyToken<T, K>,
40
40
  key: Key,
41
41
  ): WritableSelectorToken<T> | undefined
42
42
 
43
- export function seekState<T, K extends Json.Serializable, Key extends K>(
43
+ export function seekState<T, K extends Canonical, Key extends K>(
44
44
  token: ReadonlySelectorFamilyToken<T, K>,
45
45
  key: Key,
46
46
  ): ReadonlySelectorToken<T> | undefined
47
47
 
48
- export function seekState<T, K extends Json.Serializable, Key extends K>(
48
+ export function seekState<T, K extends Canonical, Key extends K>(
49
49
  token: WritableFamilyToken<T, K>,
50
50
  key: Key,
51
51
  ): WritableToken<T> | undefined
52
52
 
53
- export function seekState<T, K extends Json.Serializable, Key extends K>(
53
+ export function seekState<T, K extends Canonical, Key extends K>(
54
54
  token: ReadableFamilyToken<T, K>,
55
55
  key: Key,
56
56
  ): ReadableToken<T> | undefined
@@ -62,7 +62,7 @@ export function seekState<M extends MoleculeConstructor>(
62
62
 
63
63
  export function seekState(
64
64
  token: MoleculeFamilyToken<any> | ReadableFamilyToken<any, any>,
65
- key: Json.Serializable,
65
+ key: Canonical,
66
66
  ): MoleculeToken<any> | ReadableToken<any> | undefined {
67
67
  if (token.type === `molecule_family`) {
68
68
  return seekInStore(token, key, IMPLICIT.STORE)