atom.io 0.29.0 → 0.29.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.
- package/dist/{chunk-XPYU2HY2.js → chunk-4WXELLFT.js} +33 -9
- package/dist/index.d.ts +15 -15
- package/ephemeral/dist/index.d.ts +6 -6
- package/ephemeral/src/find-state.ts +6 -6
- package/immortal/dist/index.d.ts +6 -6
- package/immortal/src/seek-state.ts +6 -6
- package/internal/dist/index.d.ts +26 -26
- package/internal/dist/index.js +1 -1
- package/internal/src/families/find-in-store.ts +8 -8
- package/internal/src/families/get-family-of-token.ts +64 -0
- package/internal/src/families/init-family-member.ts +9 -10
- package/internal/src/families/seek-in-store.ts +8 -8
- package/internal/src/get-state/get-from-store.ts +18 -4
- package/internal/src/set-state/set-into-store.ts +13 -5
- package/json/dist/index.d.ts +3 -3
- package/json/dist/index.js +1 -1
- package/json/src/entries.ts +1 -1
- package/json/src/index.ts +13 -1
- package/package.json +11 -11
- package/realtime-server/dist/index.d.ts +8 -10
- package/realtime-server/src/ipc-sockets/child-socket.ts +1 -5
- package/realtime-server/src/ipc-sockets/custom-socket.ts +7 -7
- package/realtime-server/src/ipc-sockets/parent-socket.ts +4 -4
- package/src/index.ts +25 -17
- package/transceivers/set-rtx/dist/index.js +5 -5
- package/transceivers/set-rtx/src/set-rtx.ts +6 -6
|
@@ -505,14 +505,33 @@ function createAtomFamily(store, options) {
|
|
|
505
505
|
return createRegularAtomFamily(store, options);
|
|
506
506
|
}
|
|
507
507
|
|
|
508
|
+
// internal/src/families/get-family-of-token.ts
|
|
509
|
+
function getFamilyOfToken(store, token) {
|
|
510
|
+
if (token.family) {
|
|
511
|
+
const family = store.families.get(token.family.key);
|
|
512
|
+
if (family) {
|
|
513
|
+
return family;
|
|
514
|
+
}
|
|
515
|
+
}
|
|
516
|
+
}
|
|
517
|
+
|
|
508
518
|
// internal/src/get-state/get-from-store.ts
|
|
509
519
|
function getFromStore(store, ...params) {
|
|
510
520
|
let token;
|
|
521
|
+
let family;
|
|
522
|
+
let key;
|
|
511
523
|
if (params.length === 1) {
|
|
512
524
|
token = params[0];
|
|
525
|
+
if (token.type !== `molecule`) {
|
|
526
|
+
family = getFamilyOfToken(store, token) ?? null;
|
|
527
|
+
if (family) {
|
|
528
|
+
key = token.family ? parseJson(token.family.subKey) : null;
|
|
529
|
+
token = findInStore(store, family, key);
|
|
530
|
+
}
|
|
531
|
+
}
|
|
513
532
|
} else {
|
|
514
|
-
|
|
515
|
-
|
|
533
|
+
family = params[0];
|
|
534
|
+
key = params[1];
|
|
516
535
|
let maybeToken;
|
|
517
536
|
if (family.type === `molecule_family`) {
|
|
518
537
|
maybeToken = seekInStore(store, family, key) ?? counterfeit(family, key);
|
|
@@ -522,7 +541,7 @@ function getFromStore(store, ...params) {
|
|
|
522
541
|
token = maybeToken;
|
|
523
542
|
}
|
|
524
543
|
if (`counterfeit` in token && `family` in token) {
|
|
525
|
-
|
|
544
|
+
family = token.type === `molecule` ? withdraw(token.family, store) : (
|
|
526
545
|
// biome-ignore lint/style/noNonNullAssertion: family must be present
|
|
527
546
|
store.families.get(token.family.key)
|
|
528
547
|
);
|
|
@@ -1248,8 +1267,7 @@ function makeMoleculeInStore(store, context, familyToken, key, ...params) {
|
|
|
1248
1267
|
|
|
1249
1268
|
// internal/src/families/init-family-member.ts
|
|
1250
1269
|
function initFamilyMemberInStore(store, token, key) {
|
|
1251
|
-
const
|
|
1252
|
-
const family = store.families.get(familyKey);
|
|
1270
|
+
const family = store.families.get(token.key);
|
|
1253
1271
|
if (family === void 0) {
|
|
1254
1272
|
throw new NotFoundError(token, store);
|
|
1255
1273
|
}
|
|
@@ -1379,16 +1397,22 @@ ${disposal.trace}` : `No previous disposal trace was found.`
|
|
|
1379
1397
|
// internal/src/set-state/set-into-store.ts
|
|
1380
1398
|
function setIntoStore(store, ...params) {
|
|
1381
1399
|
let token;
|
|
1400
|
+
let family;
|
|
1401
|
+
let key;
|
|
1382
1402
|
let value;
|
|
1383
1403
|
if (params.length === 2) {
|
|
1384
1404
|
token = params[0];
|
|
1385
1405
|
value = params[1];
|
|
1406
|
+
family = getFamilyOfToken(store, token) ?? null;
|
|
1407
|
+
if (family) {
|
|
1408
|
+
key = token.family ? parseJson(token.family.subKey) : null;
|
|
1409
|
+
token = findInStore(store, family, key);
|
|
1410
|
+
}
|
|
1386
1411
|
} else {
|
|
1387
|
-
|
|
1388
|
-
|
|
1412
|
+
family = params[0];
|
|
1413
|
+
key = params[1];
|
|
1389
1414
|
value = params[2];
|
|
1390
|
-
|
|
1391
|
-
token = maybeToken;
|
|
1415
|
+
token = findInStore(store, family, key);
|
|
1392
1416
|
}
|
|
1393
1417
|
if (`counterfeit` in token) {
|
|
1394
1418
|
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:
|
|
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>,
|
package/immortal/dist/index.d.ts
CHANGED
|
@@ -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>,
|
package/internal/dist/index.d.ts
CHANGED
|
@@ -451,32 +451,32 @@ declare function disposeFromStore(store: Store, token: MoleculeToken<any> | Read
|
|
|
451
451
|
declare function disposeFromStore<K extends Canonical>(store: Store, token: ReadableFamilyToken<any, K>, key: K): void;
|
|
452
452
|
declare function disposeFromStore<M extends MoleculeConstructor>(store: Store, token: MoleculeFamilyToken<M>, key: MoleculeKey<M>): void;
|
|
453
453
|
|
|
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;
|
|
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, K>;
|
|
455
|
+
declare function findInStore<T, K extends Canonical, Key extends K>(store: Store, token: RegularAtomFamilyToken<T, K>, key: Key): RegularAtomToken<T, K>;
|
|
456
|
+
declare function findInStore<T, K extends Canonical, Key extends K>(store: Store, token: AtomFamilyToken<T, K>, key: Key): AtomToken<T, K>;
|
|
457
|
+
declare function findInStore<T, K extends Canonical, Key extends K>(store: Store, token: WritableSelectorFamilyToken<T, K>, key: Key): WritableSelectorToken<T, K>;
|
|
458
|
+
declare function findInStore<T, K extends Canonical, Key extends K>(store: Store, token: ReadonlySelectorFamilyToken<T, K>, key: Key): ReadonlySelectorToken<T, K>;
|
|
459
|
+
declare function findInStore<T, K extends Canonical, Key extends K>(store: Store, token: SelectorFamilyToken<T, K>, key: Key): SelectorToken<T, K>;
|
|
460
|
+
declare function findInStore<T, K extends Canonical, Key extends K>(store: Store, token: WritableFamilyToken<T, K>, key: Key): WritableToken<T, K>;
|
|
461
|
+
declare function findInStore<T, K extends Canonical, Key extends K>(store: Store, token: ReadableFamilyToken<T, K>, key: Key): ReadableToken<T, K>;
|
|
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, K>;
|
|
464
|
+
declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(store: Store, token: RegularAtomFamilyToken<T, K>, key: Key): RegularAtomToken<T, K>;
|
|
465
|
+
declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(store: Store, token: AtomFamilyToken<T, K>, key: Key): AtomToken<T, K>;
|
|
466
|
+
declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(store: Store, token: WritableSelectorFamilyToken<T, K>, key: Key): WritableSelectorToken<T, K>;
|
|
467
|
+
declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(store: Store, token: ReadonlySelectorFamilyToken<T, K>, key: Key): ReadonlySelectorToken<T, K>;
|
|
468
|
+
declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(store: Store, token: SelectorFamilyToken<T, K>, key: Key): SelectorToken<T, K>;
|
|
469
|
+
declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(store: Store, token: WritableFamilyToken<T, K>, key: Key): WritableToken<T, K>;
|
|
470
|
+
declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(store: Store, token: ReadableFamilyToken<T, K>, key: Key): ReadableToken<T, K>;
|
|
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, K> | undefined;
|
|
473
|
+
declare function seekInStore<T, K extends Canonical, Key extends K>(store: Store, token: RegularAtomFamilyToken<T, K>, key: Key): RegularAtomToken<T, K> | undefined;
|
|
474
|
+
declare function seekInStore<T, K extends Canonical, Key extends K>(store: Store, token: AtomFamilyToken<T, K>, key: Key): AtomToken<T, K> | undefined;
|
|
475
|
+
declare function seekInStore<T, K extends Canonical, Key extends K>(store: Store, token: WritableSelectorFamilyToken<T, K>, key: Key): WritableSelectorToken<T, K> | undefined;
|
|
476
|
+
declare function seekInStore<T, K extends Canonical, Key extends K>(store: Store, token: ReadonlySelectorFamilyToken<T, K>, key: Key): ReadonlySelectorToken<T, K> | undefined;
|
|
477
|
+
declare function seekInStore<T, K extends Canonical, Key extends K>(store: Store, token: SelectorFamilyToken<T, K>, key: Key): SelectorToken<T, K> | undefined;
|
|
478
|
+
declare function seekInStore<T, K extends Canonical, Key extends K>(store: Store, token: WritableFamilyToken<T, K>, key: Key): WritableToken<T, K> | undefined;
|
|
479
|
+
declare function seekInStore<T, K extends Canonical, Key extends K>(store: Store, token: ReadableFamilyToken<T, K>, key: Key): ReadableToken<T, K> | undefined;
|
|
480
480
|
declare function seekInStore<M extends MoleculeConstructor>(store: Store, token: MoleculeFamilyToken<M>, key: MoleculeKey<M>): MoleculeKey<M> | undefined;
|
|
481
481
|
|
|
482
482
|
type EnvironmentData = {
|
package/internal/dist/index.js
CHANGED
|
@@ -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-
|
|
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-4WXELLFT.js';
|
|
2
2
|
import '../../dist/chunk-IBTHB2PI.js';
|
|
3
3
|
import '../../dist/chunk-XWL6SNVU.js';
|
|
@@ -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
|
|
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
|
}
|
|
@@ -37,49 +37,49 @@ export function seekInStore<
|
|
|
37
37
|
store: Store,
|
|
38
38
|
token: MutableAtomFamilyToken<T, J, K>,
|
|
39
39
|
key: Key,
|
|
40
|
-
): MutableAtomToken<T, J> | undefined
|
|
40
|
+
): MutableAtomToken<T, J, K> | undefined
|
|
41
41
|
|
|
42
42
|
export function seekInStore<T, K extends Canonical, Key extends K>(
|
|
43
43
|
store: Store,
|
|
44
44
|
token: RegularAtomFamilyToken<T, K>,
|
|
45
45
|
key: Key,
|
|
46
|
-
): RegularAtomToken<T> | undefined
|
|
46
|
+
): RegularAtomToken<T, K> | undefined
|
|
47
47
|
|
|
48
48
|
export function seekInStore<T, K extends Canonical, Key extends K>(
|
|
49
49
|
store: Store,
|
|
50
50
|
token: AtomFamilyToken<T, K>,
|
|
51
51
|
key: Key,
|
|
52
|
-
): AtomToken<T> | undefined
|
|
52
|
+
): AtomToken<T, K> | undefined
|
|
53
53
|
|
|
54
54
|
export function seekInStore<T, K extends Canonical, Key extends K>(
|
|
55
55
|
store: Store,
|
|
56
56
|
token: WritableSelectorFamilyToken<T, K>,
|
|
57
57
|
key: Key,
|
|
58
|
-
): WritableSelectorToken<T> | undefined
|
|
58
|
+
): WritableSelectorToken<T, K> | undefined
|
|
59
59
|
|
|
60
60
|
export function seekInStore<T, K extends Canonical, Key extends K>(
|
|
61
61
|
store: Store,
|
|
62
62
|
token: ReadonlySelectorFamilyToken<T, K>,
|
|
63
63
|
key: Key,
|
|
64
|
-
): ReadonlySelectorToken<T> | undefined
|
|
64
|
+
): ReadonlySelectorToken<T, K> | undefined
|
|
65
65
|
|
|
66
66
|
export function seekInStore<T, K extends Canonical, Key extends K>(
|
|
67
67
|
store: Store,
|
|
68
68
|
token: SelectorFamilyToken<T, K>,
|
|
69
69
|
key: Key,
|
|
70
|
-
): SelectorToken<T> | undefined
|
|
70
|
+
): SelectorToken<T, K> | undefined
|
|
71
71
|
|
|
72
72
|
export function seekInStore<T, K extends Canonical, Key extends K>(
|
|
73
73
|
store: Store,
|
|
74
74
|
token: WritableFamilyToken<T, K>,
|
|
75
75
|
key: Key,
|
|
76
|
-
): WritableToken<T> | undefined
|
|
76
|
+
): WritableToken<T, K> | undefined
|
|
77
77
|
|
|
78
78
|
export function seekInStore<T, K extends Canonical, Key extends K>(
|
|
79
79
|
store: Store,
|
|
80
80
|
token: ReadableFamilyToken<T, K>,
|
|
81
81
|
key: Key,
|
|
82
|
-
): ReadableToken<T> | undefined
|
|
82
|
+
): ReadableToken<T, K> | undefined
|
|
83
83
|
|
|
84
84
|
export function seekInStore<M extends MoleculeConstructor>(
|
|
85
85
|
store: Store,
|
|
@@ -6,9 +6,11 @@ import type {
|
|
|
6
6
|
ReadableFamilyToken,
|
|
7
7
|
ReadableToken,
|
|
8
8
|
} from "atom.io"
|
|
9
|
-
import { type Canonical,
|
|
9
|
+
import { type Canonical, parseJson } from "atom.io/json"
|
|
10
|
+
import { M } from "vitest/dist/chunks/environment.0M5R1SX_.js"
|
|
10
11
|
|
|
11
12
|
import { findInStore, seekInStore } from "../families"
|
|
13
|
+
import { getFamilyOfToken } from "../families/get-family-of-token"
|
|
12
14
|
import { NotFoundError } from "../not-found-error"
|
|
13
15
|
import type { Store } from "../store"
|
|
14
16
|
import { counterfeit, withdraw } from "../store"
|
|
@@ -58,11 +60,23 @@ export function getFromStore(
|
|
|
58
60
|
| [token: ReadableToken<any>]
|
|
59
61
|
): any {
|
|
60
62
|
let token: MoleculeToken<any> | ReadableToken<any>
|
|
63
|
+
let family:
|
|
64
|
+
| MoleculeFamilyToken<any>
|
|
65
|
+
| ReadableFamilyToken<any, Canonical>
|
|
66
|
+
| null
|
|
67
|
+
let key: Canonical | null
|
|
61
68
|
if (params.length === 1) {
|
|
62
69
|
token = params[0]
|
|
70
|
+
if (token.type !== `molecule`) {
|
|
71
|
+
family = getFamilyOfToken(store, token) ?? null
|
|
72
|
+
if (family) {
|
|
73
|
+
key = token.family ? parseJson(token.family.subKey) : null
|
|
74
|
+
token = findInStore(store, family, key)
|
|
75
|
+
}
|
|
76
|
+
}
|
|
63
77
|
} else {
|
|
64
|
-
|
|
65
|
-
|
|
78
|
+
family = params[0]
|
|
79
|
+
key = params[1]
|
|
66
80
|
let maybeToken: MoleculeToken<any> | ReadableToken<any>
|
|
67
81
|
if (family.type === `molecule_family`) {
|
|
68
82
|
maybeToken = seekInStore(store, family, key) ?? counterfeit(family, key)
|
|
@@ -72,7 +86,7 @@ export function getFromStore(
|
|
|
72
86
|
token = maybeToken
|
|
73
87
|
}
|
|
74
88
|
if (`counterfeit` in token && `family` in token) {
|
|
75
|
-
|
|
89
|
+
family =
|
|
76
90
|
token.type === `molecule`
|
|
77
91
|
? withdraw(token.family, store)
|
|
78
92
|
: // biome-ignore lint/style/noNonNullAssertion: family must be present
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { WritableFamilyToken, WritableToken } from "atom.io"
|
|
2
|
-
import { type Canonical, stringifyJson } from "atom.io/json"
|
|
2
|
+
import { type Canonical, parseJson, stringifyJson } from "atom.io/json"
|
|
3
3
|
|
|
4
4
|
import { findInStore } from "../families"
|
|
5
|
+
import { getFamilyOfToken } from "../families/get-family-of-token"
|
|
5
6
|
import { closeOperation, openOperation } from "../operation"
|
|
6
7
|
import type { Store } from "../store"
|
|
7
8
|
import { withdraw } from "../store"
|
|
@@ -31,17 +32,24 @@ export function setIntoStore<T, New extends T>(
|
|
|
31
32
|
| [token: WritableToken<T>, value: New | ((oldValue: T) => New)]
|
|
32
33
|
): void {
|
|
33
34
|
let token: WritableToken<T>
|
|
35
|
+
let family: WritableFamilyToken<T, Canonical> | null
|
|
36
|
+
let key: Canonical | null
|
|
34
37
|
let value: New | ((oldValue: T) => New)
|
|
35
38
|
if (params.length === 2) {
|
|
36
39
|
token = params[0]
|
|
37
40
|
value = params[1]
|
|
41
|
+
family = getFamilyOfToken(store, token) ?? null
|
|
42
|
+
if (family) {
|
|
43
|
+
key = token.family ? parseJson(token.family.subKey) : null
|
|
44
|
+
token = findInStore(store, family, key)
|
|
45
|
+
}
|
|
38
46
|
} else {
|
|
39
|
-
|
|
40
|
-
|
|
47
|
+
family = params[0]
|
|
48
|
+
key = params[1]
|
|
41
49
|
value = params[2]
|
|
42
|
-
|
|
43
|
-
token = maybeToken
|
|
50
|
+
token = findInStore(store, family, key)
|
|
44
51
|
}
|
|
52
|
+
|
|
45
53
|
if (`counterfeit` in token) {
|
|
46
54
|
const disposal = store.disposalTraces.buffer.find(
|
|
47
55
|
(item) => item?.key === token.key,
|
package/json/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Range, Flat, Store, Transceiver } from 'atom.io/internal';
|
|
2
2
|
import * as AtomIO from 'atom.io';
|
|
3
3
|
|
|
4
|
-
type Entries<K extends
|
|
4
|
+
type Entries<K extends PropertyKey = keyof any, V = any> = [K, V][];
|
|
5
5
|
type KeyOfEntries<E extends Entries> = E extends [infer K, any][] ? K : never;
|
|
6
6
|
type ValueOfEntry<E extends Entries, K extends KeyOfEntries<E>> = {
|
|
7
7
|
[P in Range<E[`length`]>]: E[P] extends [K, infer V] ? V : never;
|
|
@@ -32,8 +32,8 @@ declare namespace Json {
|
|
|
32
32
|
type Object<Key extends string = string, Value extends Serializable = Serializable> = Record<Key, Value>;
|
|
33
33
|
type Array<Element extends Serializable = Serializable> = ReadonlyArray<Element>;
|
|
34
34
|
}
|
|
35
|
-
type stringified<J extends Json.Serializable> = string & {
|
|
36
|
-
__json
|
|
35
|
+
type stringified<J extends Json.Serializable> = J extends string ? `"${J}"` : J extends number ? `${J}` : J extends true ? `true` : J extends false ? `false` : J extends boolean ? `false` | `true` : J extends null ? `null` : string & {
|
|
36
|
+
__json?: J;
|
|
37
37
|
};
|
|
38
38
|
declare const parseJson: <S extends stringified<Json.Serializable>>(str: S | string) => S extends stringified<infer J> ? J : Json.Serializable;
|
|
39
39
|
declare const stringifyJson: <J extends Json.Serializable>(json: J) => stringified<J>;
|
package/json/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createWritableSelectorFamily } from '../../dist/chunk-
|
|
1
|
+
import { createWritableSelectorFamily } from '../../dist/chunk-4WXELLFT.js';
|
|
2
2
|
import '../../dist/chunk-IBTHB2PI.js';
|
|
3
3
|
import '../../dist/chunk-XWL6SNVU.js';
|
|
4
4
|
import { createStandaloneSelector, IMPLICIT, growMoleculeInStore, initFamilyMemberInStore, withdraw, seekInStore } from 'atom.io/internal';
|
package/json/src/entries.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Flat, Range } from "atom.io/internal"
|
|
2
2
|
|
|
3
|
-
export type Entries<K extends
|
|
3
|
+
export type Entries<K extends PropertyKey = keyof any, V = any> = [K, V][]
|
|
4
4
|
|
|
5
5
|
export type KeyOfEntries<E extends Entries> = E extends [infer K, any][]
|
|
6
6
|
? K
|
package/json/src/index.ts
CHANGED
|
@@ -27,7 +27,19 @@ export namespace Json {
|
|
|
27
27
|
ReadonlyArray<Element>
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
export type stringified<J extends Json.Serializable> =
|
|
30
|
+
export type stringified<J extends Json.Serializable> = J extends string
|
|
31
|
+
? `"${J}"`
|
|
32
|
+
: J extends number
|
|
33
|
+
? `${J}`
|
|
34
|
+
: J extends true
|
|
35
|
+
? `true`
|
|
36
|
+
: J extends false
|
|
37
|
+
? `false`
|
|
38
|
+
: J extends boolean
|
|
39
|
+
? `false` | `true`
|
|
40
|
+
: J extends null
|
|
41
|
+
? `null`
|
|
42
|
+
: string & { __json?: J }
|
|
31
43
|
|
|
32
44
|
export const parseJson = <S extends stringified<Json.Serializable>>(
|
|
33
45
|
str: S | string,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "atom.io",
|
|
3
|
-
"version": "0.29.
|
|
3
|
+
"version": "0.29.1",
|
|
4
4
|
"description": "Composable and testable reactive data library.",
|
|
5
5
|
"homepage": "https://atom.io.fyi",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -59,30 +59,30 @@
|
|
|
59
59
|
"@types/npmlog": "7.0.0",
|
|
60
60
|
"@types/react": "18.3.5",
|
|
61
61
|
"@types/tmp": "0.2.6",
|
|
62
|
-
"@typescript-eslint/parser": "8.
|
|
63
|
-
"@typescript-eslint/rule-tester": "8.
|
|
62
|
+
"@typescript-eslint/parser": "8.5.0",
|
|
63
|
+
"@typescript-eslint/rule-tester": "8.5.0",
|
|
64
64
|
"@vitest/coverage-v8": "2.0.5",
|
|
65
65
|
"@vitest/ui": "2.0.5",
|
|
66
|
-
"concurrently": "
|
|
66
|
+
"concurrently": "9.0.1",
|
|
67
67
|
"drizzle-kit": "0.24.2",
|
|
68
68
|
"drizzle-orm": "0.33.0",
|
|
69
|
-
"eslint": "9.
|
|
70
|
-
"framer-motion": "11.5.
|
|
71
|
-
"happy-dom": "15.7.
|
|
69
|
+
"eslint": "9.10.0",
|
|
70
|
+
"framer-motion": "11.5.4",
|
|
71
|
+
"happy-dom": "15.7.4",
|
|
72
72
|
"http-proxy": "1.18.1",
|
|
73
73
|
"npmlog": "7.0.1",
|
|
74
74
|
"postgres": "3.4.4",
|
|
75
75
|
"preact": "10.23.2",
|
|
76
76
|
"react": "18.3.1",
|
|
77
77
|
"react-dom": "18.3.1",
|
|
78
|
-
"react-router-dom": "6.26.
|
|
78
|
+
"react-router-dom": "6.26.2",
|
|
79
79
|
"socket.io": "4.7.5",
|
|
80
80
|
"socket.io-client": "4.7.5",
|
|
81
81
|
"tmp": "0.2.3",
|
|
82
82
|
"tsup": "8.2.4",
|
|
83
|
-
"tsx": "4.19.
|
|
84
|
-
"typescript": "5.
|
|
85
|
-
"vite": "5.4.
|
|
83
|
+
"tsx": "4.19.1",
|
|
84
|
+
"typescript": "5.6.2",
|
|
85
|
+
"vite": "5.4.4",
|
|
86
86
|
"vite-tsconfig-paths": "5.0.1",
|
|
87
87
|
"vitest": "2.0.5"
|
|
88
88
|
},
|
|
@@ -14,21 +14,19 @@ interface EventBuffer<Key extends string, Params extends Json.Serializable[]> ex
|
|
|
14
14
|
toString(): StringifiedEvent<Key, Params>;
|
|
15
15
|
}
|
|
16
16
|
declare class CustomSocket<I extends Events, O extends Events> implements Socket {
|
|
17
|
-
emit: <Event extends keyof
|
|
18
|
-
protected listeners: Map<keyof
|
|
17
|
+
emit: <Event extends keyof I>(event: Event, ...args: I[Event]) => CustomSocket<I, O>;
|
|
18
|
+
protected listeners: Map<keyof O, Set<(...args: Json.Array) => void>>;
|
|
19
19
|
protected globalListeners: Set<(event: string, ...args: Json.Array) => void>;
|
|
20
20
|
protected handleEvent<Event extends keyof I>(event: string, ...args: I[Event]): void;
|
|
21
21
|
id: string;
|
|
22
|
-
constructor(emit: <Event extends keyof
|
|
23
|
-
on<Event extends keyof
|
|
22
|
+
constructor(emit: <Event extends keyof I>(event: Event, ...args: I[Event]) => CustomSocket<I, O>);
|
|
23
|
+
on<Event extends keyof O>(event: Event, listener: (...args: O[Event]) => void): this;
|
|
24
24
|
onAny(listener: (event: string, ...args: Json.Array) => void): this;
|
|
25
|
-
off<Event extends keyof
|
|
25
|
+
off<Event extends keyof O>(event: Event, listener?: (...args: O[Event]) => void): this;
|
|
26
26
|
offAny(listener: (event: string, ...args: Json.Array) => void): this;
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
declare class ChildSocket<I extends Events, O extends Events
|
|
30
|
-
"setup-relay": [string];
|
|
31
|
-
}> extends CustomSocket<I, O> {
|
|
29
|
+
declare class ChildSocket<I extends Events, O extends Events> extends CustomSocket<I, O> {
|
|
32
30
|
process: ChildProcessWithoutNullStreams;
|
|
33
31
|
key: string;
|
|
34
32
|
logger: {
|
|
@@ -58,12 +56,12 @@ declare class SubjectSocket<I extends Events, O extends Events> extends CustomSo
|
|
|
58
56
|
dispose(): void;
|
|
59
57
|
}
|
|
60
58
|
declare class ParentSocket<I extends Events & {
|
|
59
|
+
[id in string as `relay:${id}`]: [string, ...Json.Serializable[]];
|
|
60
|
+
}, O extends Events & {
|
|
61
61
|
[id in string as `user:${id}`]: [string, ...Json.Serializable[]];
|
|
62
62
|
} & {
|
|
63
63
|
"user-joins": [string];
|
|
64
64
|
"user-leaves": [string];
|
|
65
|
-
}, O extends Events & {
|
|
66
|
-
[id in string as `relay:${id}`]: [string, ...Json.Serializable[]];
|
|
67
65
|
}> extends CustomSocket<I, O> {
|
|
68
66
|
protected incompleteData: string;
|
|
69
67
|
protected unprocessedEvents: string[];
|
|
@@ -10,11 +10,7 @@ import { CustomSocket } from "./custom-socket"
|
|
|
10
10
|
|
|
11
11
|
export class ChildSocket<
|
|
12
12
|
I extends Events,
|
|
13
|
-
O extends Events
|
|
14
|
-
/* eslint-disable quotes */
|
|
15
|
-
"setup-relay": [string]
|
|
16
|
-
/* eslint-enable quotes */
|
|
17
|
-
},
|
|
13
|
+
O extends Events,
|
|
18
14
|
> extends CustomSocket<I, O> {
|
|
19
15
|
protected incompleteData = ``
|
|
20
16
|
protected unprocessedEvents: string[] = []
|
|
@@ -17,7 +17,7 @@ export interface EventBuffer<
|
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
export class CustomSocket<I extends Events, O extends Events> implements Socket {
|
|
20
|
-
protected listeners: Map<keyof
|
|
20
|
+
protected listeners: Map<keyof O, Set<(...args: Json.Array) => void>>
|
|
21
21
|
protected globalListeners: Set<(event: string, ...args: Json.Array) => void>
|
|
22
22
|
protected handleEvent<Event extends keyof I>(
|
|
23
23
|
event: string,
|
|
@@ -37,18 +37,18 @@ export class CustomSocket<I extends Events, O extends Events> implements Socket
|
|
|
37
37
|
public id = `no_id_retrieved`
|
|
38
38
|
|
|
39
39
|
public constructor(
|
|
40
|
-
public emit: <Event extends keyof
|
|
40
|
+
public emit: <Event extends keyof I>(
|
|
41
41
|
event: Event,
|
|
42
|
-
...args:
|
|
42
|
+
...args: I[Event]
|
|
43
43
|
) => CustomSocket<I, O>,
|
|
44
44
|
) {
|
|
45
45
|
this.listeners = new Map()
|
|
46
46
|
this.globalListeners = new Set()
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
public on<Event extends keyof
|
|
49
|
+
public on<Event extends keyof O>(
|
|
50
50
|
event: Event,
|
|
51
|
-
listener: (...args:
|
|
51
|
+
listener: (...args: O[Event]) => void,
|
|
52
52
|
): this {
|
|
53
53
|
const listeners = this.listeners.get(event)
|
|
54
54
|
if (listeners) {
|
|
@@ -64,9 +64,9 @@ export class CustomSocket<I extends Events, O extends Events> implements Socket
|
|
|
64
64
|
return this
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
-
public off<Event extends keyof
|
|
67
|
+
public off<Event extends keyof O>(
|
|
68
68
|
event: Event,
|
|
69
|
-
listener?: (...args:
|
|
69
|
+
listener?: (...args: O[Event]) => void,
|
|
70
70
|
): this {
|
|
71
71
|
const listeners = this.listeners.get(event)
|
|
72
72
|
if (listeners) {
|
|
@@ -37,6 +37,9 @@ export class SubjectSocket<
|
|
|
37
37
|
|
|
38
38
|
export class ParentSocket<
|
|
39
39
|
I extends Events & {
|
|
40
|
+
[id in string as `relay:${id}`]: [string, ...Json.Serializable[]]
|
|
41
|
+
},
|
|
42
|
+
O extends Events & {
|
|
40
43
|
[id in string as `user:${id}`]: [string, ...Json.Serializable[]]
|
|
41
44
|
} & {
|
|
42
45
|
/* eslint-disable quotes */
|
|
@@ -44,9 +47,6 @@ export class ParentSocket<
|
|
|
44
47
|
"user-leaves": [string]
|
|
45
48
|
/* eslint-enable quotes */
|
|
46
49
|
},
|
|
47
|
-
O extends Events & {
|
|
48
|
-
[id in string as `relay:${id}`]: [string, ...Json.Serializable[]]
|
|
49
|
-
},
|
|
50
50
|
> extends CustomSocket<I, O> {
|
|
51
51
|
protected incompleteData = ``
|
|
52
52
|
protected unprocessedEvents: string[] = []
|
|
@@ -167,7 +167,7 @@ export class ParentSocket<
|
|
|
167
167
|
relay.in.next(data)
|
|
168
168
|
})
|
|
169
169
|
relay.out.subscribe(`socket`, (data) => {
|
|
170
|
-
this.emit(...(data as [string, ...
|
|
170
|
+
this.emit(...(data as [string, ...I[keyof I]]))
|
|
171
171
|
})
|
|
172
172
|
})
|
|
173
173
|
|
package/src/index.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Transceiver } from "atom.io/internal"
|
|
2
|
-
import type { Canonical, Json } from "atom.io/json"
|
|
2
|
+
import type { Canonical, Json, stringified } from "atom.io/json"
|
|
3
3
|
|
|
4
4
|
import type { AtomFamilyToken } from "./atom"
|
|
5
5
|
import type {
|
|
@@ -20,44 +20,49 @@ export * from "./timeline"
|
|
|
20
20
|
export * from "./transaction"
|
|
21
21
|
export * from "./validators"
|
|
22
22
|
|
|
23
|
-
export type RegularAtomToken<T> = {
|
|
23
|
+
export type RegularAtomToken<T, K extends Canonical = any> = {
|
|
24
24
|
key: string
|
|
25
25
|
type: `atom`
|
|
26
|
-
family?: FamilyMetadata
|
|
26
|
+
family?: FamilyMetadata<K>
|
|
27
27
|
__T?: T
|
|
28
28
|
}
|
|
29
29
|
export type MutableAtomToken<
|
|
30
30
|
T extends Transceiver<any>,
|
|
31
31
|
J extends Json.Serializable,
|
|
32
|
+
K extends Canonical = any,
|
|
32
33
|
> = {
|
|
33
34
|
key: string
|
|
34
35
|
type: `mutable_atom`
|
|
35
|
-
family?: FamilyMetadata
|
|
36
|
+
family?: FamilyMetadata<K>
|
|
36
37
|
__J?: J
|
|
37
38
|
__U?: T extends Transceiver<infer Update> ? Update : never
|
|
38
39
|
}
|
|
39
|
-
export type AtomToken<T> =
|
|
40
|
-
| MutableAtomToken<T extends Transceiver<any> ? T : never, any>
|
|
41
|
-
| RegularAtomToken<T>
|
|
40
|
+
export type AtomToken<T, K extends Canonical = any> =
|
|
41
|
+
| MutableAtomToken<T extends Transceiver<any> ? T : never, any, K>
|
|
42
|
+
| RegularAtomToken<T, K>
|
|
42
43
|
|
|
43
|
-
export type WritableSelectorToken<T> = {
|
|
44
|
+
export type WritableSelectorToken<T, K extends Canonical = any> = {
|
|
44
45
|
key: string
|
|
45
46
|
type: `selector`
|
|
46
|
-
family?: FamilyMetadata
|
|
47
|
+
family?: FamilyMetadata<K>
|
|
47
48
|
__T?: T
|
|
48
49
|
}
|
|
49
|
-
export type ReadonlySelectorToken<T> = {
|
|
50
|
+
export type ReadonlySelectorToken<T, K extends Canonical = any> = {
|
|
50
51
|
key: string
|
|
51
52
|
type: `readonly_selector`
|
|
52
|
-
family?: FamilyMetadata
|
|
53
|
+
family?: FamilyMetadata<K>
|
|
53
54
|
__T?: T
|
|
54
55
|
}
|
|
55
|
-
export type SelectorToken<T> =
|
|
56
|
-
| ReadonlySelectorToken<T>
|
|
57
|
-
| WritableSelectorToken<T>
|
|
56
|
+
export type SelectorToken<T, K extends Canonical = any> =
|
|
57
|
+
| ReadonlySelectorToken<T, K>
|
|
58
|
+
| WritableSelectorToken<T, K>
|
|
58
59
|
|
|
59
|
-
export type WritableToken<T
|
|
60
|
-
|
|
60
|
+
export type WritableToken<T, K extends Canonical = any> =
|
|
61
|
+
| AtomToken<T, K>
|
|
62
|
+
| WritableSelectorToken<T, K>
|
|
63
|
+
export type ReadableToken<T, K extends Canonical = any> =
|
|
64
|
+
| AtomToken<T, K>
|
|
65
|
+
| SelectorToken<T, K>
|
|
61
66
|
|
|
62
67
|
export type WritableFamilyToken<T, K extends Canonical> =
|
|
63
68
|
| AtomFamilyToken<T, K>
|
|
@@ -66,4 +71,7 @@ export type ReadableFamilyToken<T, K extends Canonical> =
|
|
|
66
71
|
| AtomFamilyToken<T, K>
|
|
67
72
|
| SelectorFamilyToken<T, K>
|
|
68
73
|
|
|
69
|
-
export type FamilyMetadata
|
|
74
|
+
export type FamilyMetadata<K extends Canonical = any> = {
|
|
75
|
+
key: string
|
|
76
|
+
subKey: stringified<K>
|
|
77
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import '../../../dist/chunk-XWL6SNVU.js';
|
|
2
2
|
import { Subject } from 'atom.io/internal';
|
|
3
|
-
import { stringifyJson
|
|
3
|
+
import { stringifyJson } from 'atom.io/json';
|
|
4
4
|
|
|
5
5
|
var SetRTX = class _SetRTX extends Set {
|
|
6
6
|
mode = `record`;
|
|
@@ -111,13 +111,13 @@ var SetRTX = class _SetRTX extends Set {
|
|
|
111
111
|
const value = update.substring(typeValueBreak + 1);
|
|
112
112
|
switch (type) {
|
|
113
113
|
case `add`:
|
|
114
|
-
this.add(
|
|
114
|
+
this.add(JSON.parse(value));
|
|
115
115
|
break;
|
|
116
116
|
case `clear`:
|
|
117
117
|
this.clear();
|
|
118
118
|
break;
|
|
119
119
|
case `del`:
|
|
120
|
-
this.delete(
|
|
120
|
+
this.delete(JSON.parse(value));
|
|
121
121
|
break;
|
|
122
122
|
case `tx`:
|
|
123
123
|
for (const subUpdate of value.split(`;`)) {
|
|
@@ -177,10 +177,10 @@ var SetRTX = class _SetRTX extends Set {
|
|
|
177
177
|
const value = update.substring(breakpoint + 1);
|
|
178
178
|
switch (type) {
|
|
179
179
|
case `add`:
|
|
180
|
-
this.delete(
|
|
180
|
+
this.delete(JSON.parse(value));
|
|
181
181
|
break;
|
|
182
182
|
case `del`:
|
|
183
|
-
this.add(
|
|
183
|
+
this.add(JSON.parse(value));
|
|
184
184
|
break;
|
|
185
185
|
case `clear`: {
|
|
186
186
|
const values = JSON.parse(value);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Lineage, Transceiver, TransceiverMode } from "atom.io/internal"
|
|
2
2
|
import { Subject } from "atom.io/internal"
|
|
3
|
-
import type { Json, primitive
|
|
4
|
-
import {
|
|
3
|
+
import type { Json, primitive } from "atom.io/json"
|
|
4
|
+
import { stringifyJson } from "atom.io/json"
|
|
5
5
|
|
|
6
6
|
export type SetUpdate =
|
|
7
7
|
| `add:${string}`
|
|
@@ -146,13 +146,13 @@ export class SetRTX<P extends primitive>
|
|
|
146
146
|
const value = update.substring(typeValueBreak + 1)
|
|
147
147
|
switch (type) {
|
|
148
148
|
case `add`:
|
|
149
|
-
this.add(
|
|
149
|
+
this.add(JSON.parse(value))
|
|
150
150
|
break
|
|
151
151
|
case `clear`:
|
|
152
152
|
this.clear()
|
|
153
153
|
break
|
|
154
154
|
case `del`:
|
|
155
|
-
this.delete(
|
|
155
|
+
this.delete(JSON.parse(value))
|
|
156
156
|
break
|
|
157
157
|
case `tx`:
|
|
158
158
|
for (const subUpdate of value.split(`;`)) {
|
|
@@ -215,10 +215,10 @@ export class SetRTX<P extends primitive>
|
|
|
215
215
|
const value = update.substring(breakpoint + 1)
|
|
216
216
|
switch (type) {
|
|
217
217
|
case `add`:
|
|
218
|
-
this.delete(
|
|
218
|
+
this.delete(JSON.parse(value))
|
|
219
219
|
break
|
|
220
220
|
case `del`:
|
|
221
|
-
this.add(
|
|
221
|
+
this.add(JSON.parse(value))
|
|
222
222
|
break
|
|
223
223
|
case `clear`: {
|
|
224
224
|
const values = JSON.parse(value) as P[]
|