atom.io 0.29.0 → 0.29.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/dist/{chunk-XPYU2HY2.js → chunk-J4B56MM5.js} +36 -9
  2. package/dist/index.d.ts +15 -15
  3. package/ephemeral/dist/index.d.ts +6 -6
  4. package/ephemeral/src/find-state.ts +6 -6
  5. package/immortal/dist/index.d.ts +6 -6
  6. package/immortal/src/seek-state.ts +6 -6
  7. package/internal/dist/index.d.ts +27 -26
  8. package/internal/dist/index.js +1 -1
  9. package/internal/src/families/dispose-from-store.ts +1 -1
  10. package/internal/src/families/find-in-store.ts +8 -8
  11. package/internal/src/families/get-family-of-token.ts +64 -0
  12. package/internal/src/families/init-family-member.ts +9 -10
  13. package/internal/src/families/seek-in-store.ts +8 -8
  14. package/internal/src/future.ts +4 -0
  15. package/internal/src/get-state/get-from-store.ts +17 -4
  16. package/internal/src/set-state/set-into-store.ts +13 -5
  17. package/json/dist/index.d.ts +3 -3
  18. package/json/dist/index.js +1 -1
  19. package/json/src/entries.ts +1 -1
  20. package/json/src/index.ts +13 -1
  21. package/package.json +15 -15
  22. package/react-devtools/dist/index.css +2 -2
  23. package/react-devtools/dist/index.js +14 -11
  24. package/react-devtools/src/StateIndex.tsx +4 -4
  25. package/react-devtools/src/TimelineIndex.tsx +2 -2
  26. package/react-devtools/src/TransactionIndex.tsx +2 -2
  27. package/react-devtools/src/devtools.scss +2 -2
  28. package/react-devtools/src/elastic-input/NumberInput.tsx +8 -7
  29. package/react-devtools/src/elastic-input/TextInput.tsx +6 -2
  30. package/realtime-server/dist/index.d.ts +8 -10
  31. package/realtime-server/src/ipc-sockets/child-socket.ts +1 -5
  32. package/realtime-server/src/ipc-sockets/custom-socket.ts +7 -7
  33. package/realtime-server/src/ipc-sockets/parent-socket.ts +4 -4
  34. package/realtime-server/src/realtime-continuity-synchronizer.ts +1 -1
  35. package/src/index.ts +25 -17
  36. package/transceivers/set-rtx/dist/index.js +5 -5
  37. package/transceivers/set-rtx/src/set-rtx.ts +6 -6
@@ -14,6 +14,7 @@ var Future = class extends Promise {
14
14
  fate;
15
15
  resolve;
16
16
  reject;
17
+ done = false;
17
18
  constructor(executor) {
18
19
  let superResolve;
19
20
  let superReject;
@@ -28,11 +29,13 @@ var Future = class extends Promise {
28
29
  pass(promise, value) {
29
30
  if (promise === this.fate) {
30
31
  this.resolve(value);
32
+ this.done = true;
31
33
  }
32
34
  }
33
35
  fail(promise, reason) {
34
36
  if (promise === this.fate) {
35
37
  this.reject(reason);
38
+ this.done = true;
36
39
  }
37
40
  }
38
41
  use(value) {
@@ -505,14 +508,33 @@ function createAtomFamily(store, options) {
505
508
  return createRegularAtomFamily(store, options);
506
509
  }
507
510
 
511
+ // internal/src/families/get-family-of-token.ts
512
+ function getFamilyOfToken(store, token) {
513
+ if (token.family) {
514
+ const family = store.families.get(token.family.key);
515
+ if (family) {
516
+ return family;
517
+ }
518
+ }
519
+ }
520
+
508
521
  // internal/src/get-state/get-from-store.ts
509
522
  function getFromStore(store, ...params) {
510
523
  let token;
524
+ let family;
525
+ let key;
511
526
  if (params.length === 1) {
512
527
  token = params[0];
528
+ if (token.type !== `molecule`) {
529
+ family = getFamilyOfToken(store, token) ?? null;
530
+ if (family) {
531
+ key = token.family ? parseJson(token.family.subKey) : null;
532
+ token = findInStore(store, family, key);
533
+ }
534
+ }
513
535
  } else {
514
- const family = params[0];
515
- const key = params[1];
536
+ family = params[0];
537
+ key = params[1];
516
538
  let maybeToken;
517
539
  if (family.type === `molecule_family`) {
518
540
  maybeToken = seekInStore(store, family, key) ?? counterfeit(family, key);
@@ -522,7 +544,7 @@ function getFromStore(store, ...params) {
522
544
  token = maybeToken;
523
545
  }
524
546
  if (`counterfeit` in token && `family` in token) {
525
- const family = token.type === `molecule` ? withdraw(token.family, store) : (
547
+ family = token.type === `molecule` ? withdraw(token.family, store) : (
526
548
  // biome-ignore lint/style/noNonNullAssertion: family must be present
527
549
  store.families.get(token.family.key)
528
550
  );
@@ -1248,8 +1270,7 @@ function makeMoleculeInStore(store, context, familyToken, key, ...params) {
1248
1270
 
1249
1271
  // internal/src/families/init-family-member.ts
1250
1272
  function initFamilyMemberInStore(store, token, key) {
1251
- const familyKey = token.key;
1252
- const family = store.families.get(familyKey);
1273
+ const family = store.families.get(token.key);
1253
1274
  if (family === void 0) {
1254
1275
  throw new NotFoundError(token, store);
1255
1276
  }
@@ -1379,16 +1400,22 @@ ${disposal.trace}` : `No previous disposal trace was found.`
1379
1400
  // internal/src/set-state/set-into-store.ts
1380
1401
  function setIntoStore(store, ...params) {
1381
1402
  let token;
1403
+ let family;
1404
+ let key;
1382
1405
  let value;
1383
1406
  if (params.length === 2) {
1384
1407
  token = params[0];
1385
1408
  value = params[1];
1409
+ family = getFamilyOfToken(store, token) ?? null;
1410
+ if (family) {
1411
+ key = token.family ? parseJson(token.family.subKey) : null;
1412
+ token = findInStore(store, family, key);
1413
+ }
1386
1414
  } else {
1387
- const family = params[0];
1388
- const key = params[1];
1415
+ family = params[0];
1416
+ key = params[1];
1389
1417
  value = params[2];
1390
- const maybeToken = findInStore(store, family, key);
1391
- token = maybeToken;
1418
+ token = findInStore(store, family, key);
1392
1419
  }
1393
1420
  if (`counterfeit` in token) {
1394
1421
  const disposal = store.disposalTraces.buffer.find(
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Transceiver, Func, EnvironmentData, Flat, Subject, Store, Timeline, TimelineAtomUpdate, TimelineMoleculeCreation, TimelineMoleculeDisposal, TimelineSelectorUpdate, TimelineStateCreation, TimelineStateDisposal, TimelineTransactionUpdate } from 'atom.io/internal';
2
- import { Json, JsonInterface, Canonical } from 'atom.io/json';
2
+ import { Json, JsonInterface, Canonical, stringified } 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';
@@ -391,40 +391,40 @@ declare function belongsTo<Family extends ReadonlySelectorFamilyToken$1<any, any
391
391
  declare function belongsTo<Family extends WritableFamilyToken$1<any, any>>(family: Family, unknownToken: ReadableToken$1<any>): unknownToken is WritableToken$1<TokenType<Family>>;
392
392
  declare function belongsTo<Family extends ReadableFamilyToken$1<any, any>>(family: Family, unknownToken: ReadableToken$1<any>): unknownToken is ReadableToken$1<TokenType<Family>>;
393
393
 
394
- type RegularAtomToken<T> = {
394
+ type RegularAtomToken<T, K extends Canonical = any> = {
395
395
  key: string;
396
396
  type: `atom`;
397
- family?: FamilyMetadata;
397
+ family?: FamilyMetadata<K>;
398
398
  __T?: T;
399
399
  };
400
- type MutableAtomToken<T extends Transceiver<any>, J extends Json.Serializable> = {
400
+ type MutableAtomToken<T extends Transceiver<any>, J extends Json.Serializable, K extends Canonical = any> = {
401
401
  key: string;
402
402
  type: `mutable_atom`;
403
- family?: FamilyMetadata;
403
+ family?: FamilyMetadata<K>;
404
404
  __J?: J;
405
405
  __U?: T extends Transceiver<infer Update> ? Update : never;
406
406
  };
407
- type AtomToken<T> = MutableAtomToken<T extends Transceiver<any> ? T : never, any> | RegularAtomToken<T>;
408
- type WritableSelectorToken<T> = {
407
+ type AtomToken<T, K extends Canonical = any> = MutableAtomToken<T extends Transceiver<any> ? T : never, any, K> | RegularAtomToken<T, K>;
408
+ type WritableSelectorToken<T, K extends Canonical = any> = {
409
409
  key: string;
410
410
  type: `selector`;
411
- family?: FamilyMetadata;
411
+ family?: FamilyMetadata<K>;
412
412
  __T?: T;
413
413
  };
414
- type ReadonlySelectorToken<T> = {
414
+ type ReadonlySelectorToken<T, K extends Canonical = any> = {
415
415
  key: string;
416
416
  type: `readonly_selector`;
417
- family?: FamilyMetadata;
417
+ family?: FamilyMetadata<K>;
418
418
  __T?: T;
419
419
  };
420
- type SelectorToken<T> = ReadonlySelectorToken<T> | WritableSelectorToken<T>;
421
- type WritableToken<T> = AtomToken<T> | WritableSelectorToken<T>;
422
- type ReadableToken<T> = AtomToken<T> | SelectorToken<T>;
420
+ type SelectorToken<T, K extends Canonical = any> = ReadonlySelectorToken<T, K> | WritableSelectorToken<T, K>;
421
+ type WritableToken<T, K extends Canonical = any> = AtomToken<T, K> | WritableSelectorToken<T, K>;
422
+ type ReadableToken<T, K extends Canonical = any> = AtomToken<T, K> | SelectorToken<T, K>;
423
423
  type WritableFamilyToken<T, K extends Canonical> = AtomFamilyToken<T, K> | WritableSelectorFamilyToken<T, K>;
424
424
  type ReadableFamilyToken<T, K extends Canonical> = AtomFamilyToken<T, K> | SelectorFamilyToken<T, K>;
425
- type FamilyMetadata = {
425
+ type FamilyMetadata<K extends Canonical = any> = {
426
426
  key: string;
427
- subKey: string;
427
+ subKey: stringified<K>;
428
428
  };
429
429
 
430
430
  export { type ActorToolkit, type AtomEffect, 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 MutableAtomFamilyOptions, type MutableAtomFamilyToken, type MutableAtomOptions, type MutableAtomToken, type Read, type ReadableFamilyToken, type ReadableToken, type ReadonlySelectorFamilyOptions, type ReadonlySelectorFamilyToken, type ReadonlySelectorOptions, type ReadonlySelectorToken, type RegularAtomFamilyOptions, type RegularAtomFamilyToken, type RegularAtomOptions, type RegularAtomToken, 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 WritableFamilyToken, 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 };
@@ -10,7 +10,7 @@ import { Json, Canonical } 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 Canonical, 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, K>;
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 Canonical, 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, K>;
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 Canonical, Key extends K>(token: Regular
26
26
  * @returns
27
27
  * The current value of the state.
28
28
  */
29
- declare function findState<T, K extends Canonical, 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, K>;
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 Canonical, Key extends K>(token: Writabl
34
34
  * @returns
35
35
  * The current value of the state.
36
36
  */
37
- declare function findState<T, K extends Canonical, 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, K>;
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 Canonical, Key extends K>(token: Readonl
42
42
  * @returns
43
43
  * The current value of the state.
44
44
  */
45
- declare function findState<T, K extends Canonical, 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, K>;
46
46
  /**
47
47
  * @public
48
48
  * Finds a {@link ReadableToken} in the store.
@@ -52,6 +52,6 @@ declare function findState<T, K extends Canonical, Key extends K>(token: Writabl
52
52
  * The current value of the state.
53
53
  * @overload Unknown
54
54
  */
55
- declare function findState<T, K extends Canonical, 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, K>;
56
56
 
57
57
  export { findState };
@@ -29,7 +29,7 @@ export function findState<
29
29
  J extends Json.Serializable,
30
30
  K extends Canonical,
31
31
  Key extends K,
32
- >(token: MutableAtomFamilyToken<T, J, K>, key: Key): MutableAtomToken<T, J>
32
+ >(token: MutableAtomFamilyToken<T, J, K>, key: Key): MutableAtomToken<T, J, K>
33
33
  /**
34
34
  * Finds a state in the store.
35
35
  * @param token - The token of the state family.
@@ -40,7 +40,7 @@ export function findState<
40
40
  export function findState<T, K extends Canonical, Key extends K>(
41
41
  token: RegularAtomFamilyToken<T, K>,
42
42
  key: Key,
43
- ): RegularAtomToken<T>
43
+ ): RegularAtomToken<T, K>
44
44
  /**
45
45
  * Finds a state in the store.
46
46
  * @param token - The token of the state family.
@@ -51,7 +51,7 @@ export function findState<T, K extends Canonical, Key extends K>(
51
51
  export function findState<T, K extends Canonical, Key extends K>(
52
52
  token: WritableSelectorFamilyToken<T, K>,
53
53
  key: Key,
54
- ): WritableSelectorToken<T>
54
+ ): WritableSelectorToken<T, K>
55
55
  /**
56
56
  * Finds a state in the store.
57
57
  * @param token - The token of the state family.
@@ -62,7 +62,7 @@ export function findState<T, K extends Canonical, Key extends K>(
62
62
  export function findState<T, K extends Canonical, Key extends K>(
63
63
  token: ReadonlySelectorFamilyToken<T, K>,
64
64
  key: Key,
65
- ): ReadonlySelectorToken<T>
65
+ ): ReadonlySelectorToken<T, K>
66
66
  /**
67
67
  * Finds a state in the store.
68
68
  * @param token - The token of the state family.
@@ -73,7 +73,7 @@ export function findState<T, K extends Canonical, Key extends K>(
73
73
  export function findState<T, K extends Canonical, Key extends K>(
74
74
  token: WritableFamilyToken<T, K>,
75
75
  key: Key,
76
- ): WritableToken<T>
76
+ ): WritableToken<T, K>
77
77
  /**
78
78
  * @public
79
79
  * Finds a {@link ReadableToken} in the store.
@@ -86,7 +86,7 @@ export function findState<T, K extends Canonical, Key extends K>(
86
86
  export function findState<T, K extends Canonical, Key extends K>(
87
87
  token: ReadableFamilyToken<T, K>,
88
88
  key: Key,
89
- ): ReadableToken<T>
89
+ ): ReadableToken<T, K>
90
90
 
91
91
  export function findState(
92
92
  token: ReadableFamilyToken<any, any>,
@@ -2,12 +2,12 @@ import { MutableAtomFamilyToken, MutableAtomToken, RegularAtomFamilyToken, Regul
2
2
  import { Transceiver } from 'atom.io/internal';
3
3
  import { Json, Canonical } from 'atom.io/json';
4
4
 
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;
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, K> | undefined;
6
+ declare function seekState<T, K extends Canonical, Key extends K>(token: RegularAtomFamilyToken<T, K>, key: Key): RegularAtomToken<T, K> | undefined;
7
+ declare function seekState<T, K extends Canonical, Key extends K>(token: WritableSelectorFamilyToken<T, K>, key: Key): WritableSelectorToken<T, K> | undefined;
8
+ declare function seekState<T, K extends Canonical, Key extends K>(token: ReadonlySelectorFamilyToken<T, K>, key: Key): ReadonlySelectorToken<T, K> | undefined;
9
+ declare function seekState<T, K extends Canonical, Key extends K>(token: WritableFamilyToken<T, K>, key: Key): WritableToken<T, K> | undefined;
10
+ declare function seekState<T, K extends Canonical, Key extends K>(token: ReadableFamilyToken<T, K>, key: Key): ReadableToken<T, K> | undefined;
11
11
  declare function seekState<M extends MoleculeConstructor>(token: MoleculeFamilyToken<M>, key: MoleculeKey<M>): MoleculeToken<M> | undefined;
12
12
 
13
13
  export { seekState };
@@ -28,32 +28,32 @@ export function seekState<
28
28
  >(
29
29
  token: MutableAtomFamilyToken<T, J, K>,
30
30
  key: Key,
31
- ): MutableAtomToken<T, J> | undefined
31
+ ): MutableAtomToken<T, J, K> | undefined
32
32
 
33
33
  export function seekState<T, K extends Canonical, Key extends K>(
34
34
  token: RegularAtomFamilyToken<T, K>,
35
35
  key: Key,
36
- ): RegularAtomToken<T> | undefined
36
+ ): RegularAtomToken<T, K> | undefined
37
37
 
38
38
  export function seekState<T, K extends Canonical, Key extends K>(
39
39
  token: WritableSelectorFamilyToken<T, K>,
40
40
  key: Key,
41
- ): WritableSelectorToken<T> | undefined
41
+ ): WritableSelectorToken<T, K> | undefined
42
42
 
43
43
  export function seekState<T, K extends Canonical, Key extends K>(
44
44
  token: ReadonlySelectorFamilyToken<T, K>,
45
45
  key: Key,
46
- ): ReadonlySelectorToken<T> | undefined
46
+ ): ReadonlySelectorToken<T, K> | undefined
47
47
 
48
48
  export function seekState<T, K extends Canonical, Key extends K>(
49
49
  token: WritableFamilyToken<T, K>,
50
50
  key: Key,
51
- ): WritableToken<T> | undefined
51
+ ): WritableToken<T, K> | undefined
52
52
 
53
53
  export function seekState<T, K extends Canonical, Key extends K>(
54
54
  token: ReadableFamilyToken<T, K>,
55
55
  key: Key,
56
- ): ReadableToken<T> | undefined
56
+ ): ReadableToken<T, K> | undefined
57
57
 
58
58
  export function seekState<M extends MoleculeConstructor>(
59
59
  token: MoleculeFamilyToken<M>,
@@ -426,6 +426,7 @@ declare class Future<T> extends Promise<T> {
426
426
  private fate;
427
427
  private resolve;
428
428
  private reject;
429
+ done: boolean;
429
430
  constructor(executor: Promise<T> | ((resolve: (value: T) => void, reject: (reason?: any) => void) => void));
430
431
  private pass;
431
432
  private fail;
@@ -451,32 +452,32 @@ declare function disposeFromStore(store: Store, token: MoleculeToken<any> | Read
451
452
  declare function disposeFromStore<K extends Canonical>(store: Store, token: ReadableFamilyToken<any, K>, key: K): void;
452
453
  declare function disposeFromStore<M extends MoleculeConstructor>(store: Store, token: MoleculeFamilyToken<M>, key: MoleculeKey<M>): void;
453
454
 
454
- declare function findInStore<T extends Transceiver<any>, J extends Json$1.Serializable, K extends Canonical, Key extends K>(store: Store, token: MutableAtomFamilyToken<T, J, K>, key: Key): MutableAtomToken<T, J>;
455
- declare function findInStore<T, K extends Canonical, Key extends K>(store: Store, token: RegularAtomFamilyToken<T, K>, key: Key): RegularAtomToken<T>;
456
- declare function findInStore<T, K extends Canonical, Key extends K>(store: Store, token: AtomFamilyToken<T, K>, key: Key): AtomToken<T>;
457
- declare function findInStore<T, K extends Canonical, Key extends K>(store: Store, token: WritableSelectorFamilyToken<T, K>, key: Key): WritableSelectorToken<T>;
458
- declare function findInStore<T, K extends Canonical, Key extends K>(store: Store, token: ReadonlySelectorFamilyToken<T, K>, key: Key): ReadonlySelectorToken<T>;
459
- declare function findInStore<T, K extends Canonical, Key extends K>(store: Store, token: SelectorFamilyToken<T, K>, key: Key): SelectorToken<T>;
460
- declare function findInStore<T, K extends Canonical, Key extends K>(store: Store, token: WritableFamilyToken<T, K>, key: Key): WritableToken<T>;
461
- declare function findInStore<T, K extends Canonical, Key extends K>(store: Store, token: ReadableFamilyToken<T, K>, key: Key): ReadableToken<T>;
462
-
463
- declare function initFamilyMemberInStore<T extends Transceiver<any>, J extends Json$1.Serializable, K extends Canonical, Key extends K>(store: Store, token: MutableAtomFamilyToken<T, J, K>, key: Key): MutableAtomToken<T, J>;
464
- declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(store: Store, token: RegularAtomFamilyToken<T, K>, key: Key): RegularAtomToken<T>;
465
- declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(store: Store, token: AtomFamilyToken<T, K>, key: Key): AtomToken<T>;
466
- declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(store: Store, token: WritableSelectorFamilyToken<T, K>, key: Key): WritableSelectorToken<T>;
467
- declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(store: Store, token: ReadonlySelectorFamilyToken<T, K>, key: Key): ReadonlySelectorToken<T>;
468
- declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(store: Store, token: SelectorFamilyToken<T, K>, key: Key): SelectorToken<T>;
469
- declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(store: Store, token: WritableFamilyToken<T, K>, key: Key): WritableToken<T>;
470
- declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(store: Store, token: ReadableFamilyToken<T, K>, key: Key): ReadableToken<T>;
471
-
472
- declare function seekInStore<T extends Transceiver<any>, J extends Json$1.Serializable, K extends Canonical, Key extends K>(store: Store, token: MutableAtomFamilyToken<T, J, K>, key: Key): MutableAtomToken<T, J> | undefined;
473
- declare function seekInStore<T, K extends Canonical, Key extends K>(store: Store, token: RegularAtomFamilyToken<T, K>, key: Key): RegularAtomToken<T> | undefined;
474
- declare function seekInStore<T, K extends Canonical, Key extends K>(store: Store, token: AtomFamilyToken<T, K>, key: Key): AtomToken<T> | undefined;
475
- declare function seekInStore<T, K extends Canonical, Key extends K>(store: Store, token: WritableSelectorFamilyToken<T, K>, key: Key): WritableSelectorToken<T> | undefined;
476
- declare function seekInStore<T, K extends Canonical, Key extends K>(store: Store, token: ReadonlySelectorFamilyToken<T, K>, key: Key): ReadonlySelectorToken<T> | undefined;
477
- declare function seekInStore<T, K extends Canonical, Key extends K>(store: Store, token: SelectorFamilyToken<T, K>, key: Key): SelectorToken<T> | undefined;
478
- declare function seekInStore<T, K extends Canonical, Key extends K>(store: Store, token: WritableFamilyToken<T, K>, key: Key): WritableToken<T> | undefined;
479
- declare function seekInStore<T, K extends Canonical, Key extends K>(store: Store, token: ReadableFamilyToken<T, K>, key: Key): ReadableToken<T> | undefined;
455
+ declare function findInStore<T extends Transceiver<any>, J extends Json$1.Serializable, K extends Canonical, Key extends K>(store: Store, token: MutableAtomFamilyToken<T, J, K>, key: Key): MutableAtomToken<T, J, K>;
456
+ declare function findInStore<T, K extends Canonical, Key extends K>(store: Store, token: RegularAtomFamilyToken<T, K>, key: Key): RegularAtomToken<T, K>;
457
+ declare function findInStore<T, K extends Canonical, Key extends K>(store: Store, token: AtomFamilyToken<T, K>, key: Key): AtomToken<T, K>;
458
+ declare function findInStore<T, K extends Canonical, Key extends K>(store: Store, token: WritableSelectorFamilyToken<T, K>, key: Key): WritableSelectorToken<T, K>;
459
+ declare function findInStore<T, K extends Canonical, Key extends K>(store: Store, token: ReadonlySelectorFamilyToken<T, K>, key: Key): ReadonlySelectorToken<T, K>;
460
+ declare function findInStore<T, K extends Canonical, Key extends K>(store: Store, token: SelectorFamilyToken<T, K>, key: Key): SelectorToken<T, K>;
461
+ declare function findInStore<T, K extends Canonical, Key extends K>(store: Store, token: WritableFamilyToken<T, K>, key: Key): WritableToken<T, K>;
462
+ declare function findInStore<T, K extends Canonical, Key extends K>(store: Store, token: ReadableFamilyToken<T, K>, key: Key): ReadableToken<T, K>;
463
+
464
+ declare function initFamilyMemberInStore<T extends Transceiver<any>, J extends Json$1.Serializable, K extends Canonical, Key extends K>(store: Store, token: MutableAtomFamilyToken<T, J, K>, key: Key): MutableAtomToken<T, J, K>;
465
+ declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(store: Store, token: RegularAtomFamilyToken<T, K>, key: Key): RegularAtomToken<T, K>;
466
+ declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(store: Store, token: AtomFamilyToken<T, K>, key: Key): AtomToken<T, K>;
467
+ declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(store: Store, token: WritableSelectorFamilyToken<T, K>, key: Key): WritableSelectorToken<T, K>;
468
+ declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(store: Store, token: ReadonlySelectorFamilyToken<T, K>, key: Key): ReadonlySelectorToken<T, K>;
469
+ declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(store: Store, token: SelectorFamilyToken<T, K>, key: Key): SelectorToken<T, K>;
470
+ declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(store: Store, token: WritableFamilyToken<T, K>, key: Key): WritableToken<T, K>;
471
+ declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(store: Store, token: ReadableFamilyToken<T, K>, key: Key): ReadableToken<T, K>;
472
+
473
+ declare function seekInStore<T extends Transceiver<any>, J extends Json$1.Serializable, K extends Canonical, Key extends K>(store: Store, token: MutableAtomFamilyToken<T, J, K>, key: Key): MutableAtomToken<T, J, K> | undefined;
474
+ declare function seekInStore<T, K extends Canonical, Key extends K>(store: Store, token: RegularAtomFamilyToken<T, K>, key: Key): RegularAtomToken<T, K> | undefined;
475
+ declare function seekInStore<T, K extends Canonical, Key extends K>(store: Store, token: AtomFamilyToken<T, K>, key: Key): AtomToken<T, K> | undefined;
476
+ declare function seekInStore<T, K extends Canonical, Key extends K>(store: Store, token: WritableSelectorFamilyToken<T, K>, key: Key): WritableSelectorToken<T, K> | undefined;
477
+ declare function seekInStore<T, K extends Canonical, Key extends K>(store: Store, token: ReadonlySelectorFamilyToken<T, K>, key: Key): ReadonlySelectorToken<T, K> | undefined;
478
+ declare function seekInStore<T, K extends Canonical, Key extends K>(store: Store, token: SelectorFamilyToken<T, K>, key: Key): SelectorToken<T, K> | undefined;
479
+ declare function seekInStore<T, K extends Canonical, Key extends K>(store: Store, token: WritableFamilyToken<T, K>, key: Key): WritableToken<T, K> | undefined;
480
+ declare function seekInStore<T, K extends Canonical, Key extends K>(store: Store, token: ReadableFamilyToken<T, K>, key: Key): ReadableToken<T, K> | undefined;
480
481
  declare function seekInStore<M extends MoleculeConstructor>(store: Store, token: MoleculeFamilyToken<M>, key: MoleculeKey<M>): MoleculeKey<M> | undefined;
481
482
 
482
483
  type EnvironmentData = {
@@ -1,3 +1,3 @@
1
- export { FAMILY_MEMBER_TOKEN_TYPES, FamilyTracker, Future, IMPLICIT, LazyMap, Molecule, NotFoundError, StatefulSubject, Store, Subject, TRANSACTION_PHASES, Tracker, abortTransaction, actUponStore, applyTransaction, arbitrary, assignTransactionToContinuity, become, buildTransaction, cacheValue, clearStore, closeOperation, counterfeit, 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-XPYU2HY2.js';
1
+ export { FAMILY_MEMBER_TOKEN_TYPES, FamilyTracker, Future, IMPLICIT, LazyMap, Molecule, NotFoundError, StatefulSubject, Store, Subject, TRANSACTION_PHASES, Tracker, abortTransaction, actUponStore, applyTransaction, arbitrary, assignTransactionToContinuity, become, buildTransaction, cacheValue, clearStore, closeOperation, counterfeit, 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-J4B56MM5.js';
2
2
  import '../../dist/chunk-IBTHB2PI.js';
3
3
  import '../../dist/chunk-XWL6SNVU.js';
@@ -49,7 +49,7 @@ export function disposeFromStore(
49
49
  const key = params[1]
50
50
  const maybeToken =
51
51
  family.type === `molecule_family`
52
- ? seekInStore(store, family, key) ?? counterfeit(family, key)
52
+ ? (seekInStore(store, family, key) ?? counterfeit(family, key))
53
53
  : findInStore(store, family, key)
54
54
  token = maybeToken
55
55
  }
@@ -33,49 +33,49 @@ export function findInStore<
33
33
  store: Store,
34
34
  token: MutableAtomFamilyToken<T, J, K>,
35
35
  key: Key,
36
- ): MutableAtomToken<T, J>
36
+ ): MutableAtomToken<T, J, K>
37
37
 
38
38
  export function findInStore<T, K extends Canonical, Key extends K>(
39
39
  store: Store,
40
40
  token: RegularAtomFamilyToken<T, K>,
41
41
  key: Key,
42
- ): RegularAtomToken<T>
42
+ ): RegularAtomToken<T, K>
43
43
 
44
44
  export function findInStore<T, K extends Canonical, Key extends K>(
45
45
  store: Store,
46
46
  token: AtomFamilyToken<T, K>,
47
47
  key: Key,
48
- ): AtomToken<T>
48
+ ): AtomToken<T, K>
49
49
 
50
50
  export function findInStore<T, K extends Canonical, Key extends K>(
51
51
  store: Store,
52
52
  token: WritableSelectorFamilyToken<T, K>,
53
53
  key: Key,
54
- ): WritableSelectorToken<T>
54
+ ): WritableSelectorToken<T, K>
55
55
 
56
56
  export function findInStore<T, K extends Canonical, Key extends K>(
57
57
  store: Store,
58
58
  token: ReadonlySelectorFamilyToken<T, K>,
59
59
  key: Key,
60
- ): ReadonlySelectorToken<T>
60
+ ): ReadonlySelectorToken<T, K>
61
61
 
62
62
  export function findInStore<T, K extends Canonical, Key extends K>(
63
63
  store: Store,
64
64
  token: SelectorFamilyToken<T, K>,
65
65
  key: Key,
66
- ): SelectorToken<T>
66
+ ): SelectorToken<T, K>
67
67
 
68
68
  export function findInStore<T, K extends Canonical, Key extends K>(
69
69
  store: Store,
70
70
  token: WritableFamilyToken<T, K>,
71
71
  key: Key,
72
- ): WritableToken<T>
72
+ ): WritableToken<T, K>
73
73
 
74
74
  export function findInStore<T, K extends Canonical, Key extends K>(
75
75
  store: Store,
76
76
  token: ReadableFamilyToken<T, K>,
77
77
  key: Key,
78
- ): ReadableToken<T>
78
+ ): ReadableToken<T, K>
79
79
 
80
80
  export function findInStore(
81
81
  store: Store,
@@ -0,0 +1,64 @@
1
+ import type {
2
+ MutableAtomFamilyToken,
3
+ MutableAtomToken,
4
+ ReadableFamilyToken,
5
+ ReadableToken,
6
+ ReadonlySelectorFamilyToken,
7
+ ReadonlySelectorToken,
8
+ RegularAtomFamilyToken,
9
+ RegularAtomToken,
10
+ WritableFamilyToken,
11
+ WritableSelectorFamilyToken,
12
+ WritableSelectorToken,
13
+ WritableToken,
14
+ } from "atom.io"
15
+ import type { Canonical, Json } from "atom.io/json"
16
+
17
+ import type { Transceiver } from "../mutable"
18
+ import type { Store } from "../store"
19
+
20
+ export function getFamilyOfToken<
21
+ T extends Transceiver<any>,
22
+ J extends Json.Serializable,
23
+ K extends Canonical,
24
+ >(
25
+ store: Store,
26
+ token: MutableAtomToken<T, J, K>,
27
+ ): MutableAtomFamilyToken<T, J, K> | undefined
28
+
29
+ export function getFamilyOfToken<T, K extends Canonical>(
30
+ store: Store,
31
+ token: RegularAtomToken<T, K>,
32
+ ): RegularAtomFamilyToken<T, K> | undefined
33
+
34
+ export function getFamilyOfToken<T, K extends Canonical>(
35
+ store: Store,
36
+ token: WritableSelectorToken<T, K>,
37
+ ): WritableSelectorFamilyToken<T, K> | undefined
38
+
39
+ export function getFamilyOfToken<T, K extends Canonical>(
40
+ store: Store,
41
+ token: ReadonlySelectorToken<T, K>,
42
+ ): ReadonlySelectorFamilyToken<T, K> | undefined
43
+
44
+ export function getFamilyOfToken<T, K extends Canonical>(
45
+ store: Store,
46
+ token: WritableToken<T, K>,
47
+ ): WritableFamilyToken<T, K> | undefined
48
+
49
+ export function getFamilyOfToken<T, K extends Canonical>(
50
+ store: Store,
51
+ token: ReadableToken<T, K>,
52
+ ): ReadableFamilyToken<T, K> | undefined
53
+
54
+ export function getFamilyOfToken(
55
+ store: Store,
56
+ token: ReadableToken<any, any>,
57
+ ): ReadableFamilyToken<any, any> | undefined {
58
+ if (token.family) {
59
+ const family = store.families.get(token.family.key)
60
+ if (family) {
61
+ return family
62
+ }
63
+ }
64
+ }
@@ -33,57 +33,56 @@ export function initFamilyMemberInStore<
33
33
  store: Store,
34
34
  token: MutableAtomFamilyToken<T, J, K>,
35
35
  key: Key,
36
- ): MutableAtomToken<T, J>
36
+ ): MutableAtomToken<T, J, K>
37
37
 
38
38
  export function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(
39
39
  store: Store,
40
40
  token: RegularAtomFamilyToken<T, K>,
41
41
  key: Key,
42
- ): RegularAtomToken<T>
42
+ ): RegularAtomToken<T, K>
43
43
 
44
44
  export function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(
45
45
  store: Store,
46
46
  token: AtomFamilyToken<T, K>,
47
47
  key: Key,
48
- ): AtomToken<T>
48
+ ): AtomToken<T, K>
49
49
 
50
50
  export function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(
51
51
  store: Store,
52
52
  token: WritableSelectorFamilyToken<T, K>,
53
53
  key: Key,
54
- ): WritableSelectorToken<T>
54
+ ): WritableSelectorToken<T, K>
55
55
 
56
56
  export function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(
57
57
  store: Store,
58
58
  token: ReadonlySelectorFamilyToken<T, K>,
59
59
  key: Key,
60
- ): ReadonlySelectorToken<T>
60
+ ): ReadonlySelectorToken<T, K>
61
61
 
62
62
  export function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(
63
63
  store: Store,
64
64
  token: SelectorFamilyToken<T, K>,
65
65
  key: Key,
66
- ): SelectorToken<T>
66
+ ): SelectorToken<T, K>
67
67
 
68
68
  export function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(
69
69
  store: Store,
70
70
  token: WritableFamilyToken<T, K>,
71
71
  key: Key,
72
- ): WritableToken<T>
72
+ ): WritableToken<T, K>
73
73
 
74
74
  export function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(
75
75
  store: Store,
76
76
  token: ReadableFamilyToken<T, K>,
77
77
  key: Key,
78
- ): ReadableToken<T>
78
+ ): ReadableToken<T, K>
79
79
 
80
80
  export function initFamilyMemberInStore(
81
81
  store: Store,
82
82
  token: ReadableFamilyToken<any, any>,
83
83
  key: Json.Serializable,
84
84
  ): ReadableToken<any> {
85
- const familyKey = token.key
86
- const family = store.families.get(familyKey)
85
+ const family = store.families.get(token.key)
87
86
  if (family === undefined) {
88
87
  throw new NotFoundError(token, store)
89
88
  }