atom.io 0.27.4 → 0.28.0
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/data/dist/index.d.ts +31 -29
- package/data/dist/index.js +65 -81
- package/data/src/dict.ts +9 -12
- package/data/src/join.ts +30 -33
- package/data/src/struct-family.ts +17 -23
- package/data/src/struct.ts +9 -12
- package/dist/{chunk-JRENM6KL.js → chunk-BX3MTH2Z.js} +482 -385
- package/dist/chunk-D52JNVER.js +721 -0
- package/dist/chunk-EUVKUTW3.js +89 -0
- package/dist/index.d.ts +4 -3
- package/dist/index.js +35 -53
- package/ephemeral/dist/index.js +1 -1
- package/ephemeral/src/find-state.ts +1 -1
- package/immortal/dist/index.js +2 -2
- package/immortal/src/seek-state.ts +2 -2
- package/internal/dist/index.d.ts +141 -87
- package/internal/dist/index.js +1 -1
- package/internal/src/atom/create-regular-atom.ts +3 -3
- package/internal/src/atom/create-standalone-atom.ts +7 -5
- package/internal/src/atom/dispose-atom.ts +2 -9
- package/internal/src/families/create-atom-family.ts +5 -5
- package/internal/src/families/create-readonly-selector-family.ts +20 -9
- package/internal/src/families/create-regular-atom-family.ts +15 -6
- package/internal/src/families/create-selector-family.ts +5 -5
- package/internal/src/families/create-writable-selector-family.ts +20 -10
- package/internal/src/families/dispose-from-store.ts +43 -29
- package/internal/src/families/find-in-store.ts +28 -18
- package/internal/src/families/init-family-member.ts +9 -9
- package/internal/src/families/seek-in-store.ts +10 -10
- package/internal/src/get-state/get-from-store.ts +70 -47
- package/internal/src/ingest-updates/ingest-atom-update.ts +1 -1
- package/internal/src/ingest-updates/ingest-creation-disposal.ts +15 -6
- package/internal/src/molecule/create-molecule-family.ts +1 -1
- package/internal/src/molecule/dispose-molecule.ts +7 -18
- package/internal/src/molecule/grow-molecule-in-store.ts +1 -1
- package/internal/src/molecule/make-molecule-in-store.ts +5 -5
- package/internal/src/mutable/create-mutable-atom-family.ts +15 -6
- package/internal/src/mutable/create-mutable-atom.ts +3 -3
- package/internal/src/mutable/get-json-token.ts +2 -2
- package/internal/src/mutable/tracker-family.ts +3 -3
- package/internal/src/mutable/tracker.ts +14 -18
- package/internal/src/pretty-print.ts +1 -16
- package/internal/src/selector/create-readonly-selector.ts +2 -2
- package/internal/src/selector/create-standalone-selector.ts +5 -5
- package/internal/src/selector/create-writable-selector.ts +2 -2
- package/internal/src/selector/dispose-selector.ts +2 -9
- package/internal/src/selector/register-selector.ts +9 -9
- package/internal/src/set-state/set-into-store.ts +23 -33
- package/internal/src/store/circular-buffer.ts +34 -0
- package/internal/src/store/counterfeit.ts +109 -0
- package/internal/src/store/deposit.ts +67 -13
- package/internal/src/store/index.ts +1 -0
- package/internal/src/store/store.ts +4 -1
- package/internal/src/store/withdraw.ts +15 -10
- package/internal/src/subscribe/index.ts +2 -0
- package/internal/src/subscribe/subscribe-in-store.ts +62 -0
- package/internal/src/timeline/time-travel.ts +1 -1
- package/internal/src/transaction/build-transaction.ts +7 -6
- package/introspection/dist/index.d.ts +84 -4
- package/introspection/dist/index.js +1 -413
- package/introspection/src/attach-atom-index.ts +5 -8
- package/introspection/src/attach-introspection-states.ts +7 -4
- package/introspection/src/attach-selector-index.ts +6 -8
- package/introspection/src/attach-timeline-family.ts +25 -28
- package/introspection/src/attach-timeline-index.ts +5 -8
- package/introspection/src/attach-transaction-index.ts +5 -8
- package/introspection/src/attach-transaction-logs.ts +21 -27
- package/introspection/src/attach-type-selectors.ts +26 -0
- package/introspection/src/differ.ts +167 -0
- package/introspection/src/index.ts +2 -0
- package/introspection/src/refinery.ts +100 -0
- package/json/dist/index.d.ts +31 -30
- package/json/dist/index.js +2 -80
- package/json/src/entries.ts +6 -0
- package/json/src/index.ts +47 -6
- package/json/src/select-json-family.ts +4 -4
- package/json/src/select-json.ts +6 -9
- package/package.json +17 -8
- package/react/dist/index.js +7 -7
- package/react/src/parse-state-overloads.ts +2 -2
- package/react/src/use-i.ts +1 -1
- package/react/src/use-json.ts +2 -2
- package/react/src/use-o.ts +2 -2
- package/react-devtools/dist/index.d.ts +1 -91
- package/react-devtools/dist/index.js +285 -414
- package/react-devtools/src/AtomIODevtools.tsx +2 -2
- package/react-devtools/src/StateEditor.tsx +20 -12
- package/react-devtools/src/StateIndex.tsx +8 -26
- package/react-devtools/src/TimelineIndex.tsx +3 -3
- package/react-devtools/src/TransactionIndex.tsx +6 -6
- package/react-devtools/src/Updates.tsx +1 -4
- package/react-devtools/src/index.ts +0 -71
- package/react-devtools/src/store.ts +51 -0
- package/realtime/dist/index.d.ts +7 -7
- package/realtime/dist/index.js +18 -22
- package/realtime/src/realtime-continuity.ts +27 -35
- package/realtime-client/dist/index.js +59 -65
- package/realtime-client/src/pull-atom-family-member.ts +1 -1
- package/realtime-client/src/pull-atom.ts +1 -1
- package/realtime-client/src/pull-mutable-atom-family-member.ts +3 -3
- package/realtime-client/src/pull-mutable-atom.ts +3 -3
- package/realtime-client/src/realtime-client-stores/client-main-store.ts +6 -6
- package/realtime-client/src/sync-continuity.ts +55 -53
- package/realtime-react/dist/index.js +3 -3
- package/realtime-react/src/use-pull-atom-family-member.ts +1 -1
- package/realtime-react/src/use-pull-mutable-family-member.ts +1 -1
- package/realtime-react/src/use-pull-selector-family-member.ts +1 -1
- package/realtime-server/dist/index.js +72 -36
- package/realtime-server/src/realtime-continuity-synchronizer.ts +57 -93
- package/realtime-server/src/realtime-family-provider.ts +3 -3
- package/realtime-server/src/realtime-mutable-family-provider.ts +5 -5
- package/realtime-server/src/realtime-mutable-provider.ts +2 -2
- package/realtime-server/src/realtime-state-provider.ts +1 -1
- package/realtime-server/src/realtime-state-receiver.ts +1 -1
- package/realtime-testing/dist/index.d.ts +2 -0
- package/realtime-testing/dist/index.js +57 -15
- package/realtime-testing/src/setup-realtime-test.tsx +66 -16
- package/src/atom.ts +2 -2
- package/src/dispose-state.ts +2 -2
- package/src/get-state.ts +9 -13
- package/src/molecule.ts +1 -1
- package/src/selector.ts +2 -2
- package/src/set-state.ts +10 -7
- package/src/silo.ts +29 -55
- package/src/subscribe.ts +3 -23
- package/src/timeline.ts +2 -2
- package/web/dist/index.d.ts +9 -0
- package/{dist/chunk-H6EDLPKH.js → web/dist/index.js} +5 -4
- package/web/package.json +13 -0
- package/web/src/index.ts +1 -0
- package/web/src/persist-sync.ts +25 -0
- package/dist/chunk-AK23DRMD.js +0 -21
- package/dist/chunk-IW6WYRS7.js +0 -140
- package/internal/src/families/throw-in-case-of-conflicting-family.ts +0 -18
package/internal/dist/index.d.ts
CHANGED
|
@@ -1,23 +1,43 @@
|
|
|
1
1
|
import * as atom_io from 'atom.io';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { MutableAtomFamilyToken, MutableAtomToken, RegularAtomFamilyToken, RegularAtomToken, AtomFamilyToken, AtomToken, WritableSelectorFamilyToken, WritableSelectorToken, ReadonlySelectorFamilyToken, ReadonlySelectorToken, SelectorFamilyToken, SelectorToken, WritableFamilyToken, WritableToken, ReadableFamilyToken, ReadableToken, MoleculeConstructor, MoleculeFamilyToken, MoleculeKey, TransactionToken, TransactionUpdate, TransactionOptions, ActorToolkit, MoleculeFamily, MoleculeToken, TimelineManageable, StateUpdate, TokenType, FamilyMetadata, StateCreation, StateDisposal, MoleculeCreation, MoleculeDisposal, TimelineUpdate, TimelineOptions, TimelineToken, AtomIOLogger, Logger, MutableAtomOptions, MutableAtomFamilyOptions, RegularAtomOptions, RegularAtomFamilyOptions, ReadonlySelectorFamilyOptions, WritableSelectorFamilyOptions, KeyedStateUpdate, MoleculeFamilyOptions, MoleculeParams, ReadonlySelectorOptions, WritableSelectorOptions, SetterToolkit, UpdateHandler, TransactionUpdateHandler } from 'atom.io';
|
|
3
|
+
import { Json as Json$1, Canonical, JsonInterface } from 'atom.io/json';
|
|
4
4
|
import { Join } from 'atom.io/data';
|
|
5
|
+
import { Store as Store$1, Func as Func$1 } from 'atom.io/internal';
|
|
6
|
+
|
|
7
|
+
declare const FAMILY_MEMBER_TOKEN_TYPES: {
|
|
8
|
+
readonly atom_family: "atom";
|
|
9
|
+
readonly mutable_atom_family: "mutable_atom";
|
|
10
|
+
readonly selector_family: "selector";
|
|
11
|
+
readonly readonly_selector_family: "readonly_selector";
|
|
12
|
+
readonly molecule_family: "molecule";
|
|
13
|
+
};
|
|
14
|
+
declare function counterfeit<T extends Transceiver<any>, J extends Json$1.Serializable, K extends Canonical, Key extends K>(token: MutableAtomFamilyToken<T, J, K>, key: Key): MutableAtomToken<T, J>;
|
|
15
|
+
declare function counterfeit<T, K extends Canonical, Key extends K>(token: RegularAtomFamilyToken<T, K>, key: Key): RegularAtomToken<T>;
|
|
16
|
+
declare function counterfeit<T, K extends Canonical, Key extends K>(token: AtomFamilyToken<T, K>, key: Key): AtomToken<T>;
|
|
17
|
+
declare function counterfeit<T, K extends Canonical, Key extends K>(token: WritableSelectorFamilyToken<T, K>, key: Key): WritableSelectorToken<T>;
|
|
18
|
+
declare function counterfeit<T, K extends Canonical, Key extends K>(token: ReadonlySelectorFamilyToken<T, K>, key: Key): ReadonlySelectorToken<T>;
|
|
19
|
+
declare function counterfeit<T, K extends Canonical, Key extends K>(token: SelectorFamilyToken<T, K>, key: Key): SelectorToken<T>;
|
|
20
|
+
declare function counterfeit<T, K extends Canonical, Key extends K>(token: WritableFamilyToken<T, K>, key: Key): WritableToken<T>;
|
|
21
|
+
declare function counterfeit<T, K extends Canonical, Key extends K>(token: ReadableFamilyToken<T, K>, key: Key): ReadableToken<T>;
|
|
22
|
+
declare function counterfeit<M extends MoleculeConstructor>(token: MoleculeFamilyToken<M>, key: MoleculeKey<M>): MoleculeKey<M>;
|
|
5
23
|
|
|
6
24
|
type primitive = boolean | number | string | null;
|
|
7
|
-
|
|
8
|
-
type Serializable = primitive | Readonly<{
|
|
9
|
-
|
|
10
|
-
}> | ReadonlyArray<Serializable>;
|
|
11
|
-
type Object
|
|
25
|
+
declare namespace Json {
|
|
26
|
+
type Serializable = primitive | Readonly<{
|
|
27
|
+
[key: string]: Serializable;
|
|
28
|
+
}> | ReadonlyArray<Serializable>;
|
|
29
|
+
type Object<Key extends string = string, Value extends Serializable = Serializable> = Record<Key, Value>;
|
|
30
|
+
type Array<Element extends Serializable = Serializable> = ReadonlyArray<Element>;
|
|
31
|
+
}
|
|
12
32
|
|
|
13
33
|
type Refinement<Unrefined, Refined extends Unrefined> = (value: Unrefined) => value is Refined;
|
|
14
34
|
type Cardinality = `1:1` | `1:n` | `n:n`;
|
|
15
35
|
|
|
16
|
-
interface JunctionEntries<Content extends Object
|
|
36
|
+
interface JunctionEntries<Content extends Json.Object | null> extends Json.Object {
|
|
17
37
|
readonly relations: [string, string[]][];
|
|
18
38
|
readonly contents: [string, Content][];
|
|
19
39
|
}
|
|
20
|
-
interface JunctionSchema<ASide extends string, BSide extends string> extends Object
|
|
40
|
+
interface JunctionSchema<ASide extends string, BSide extends string> extends Json.Object {
|
|
21
41
|
readonly between: [a: ASide, b: BSide];
|
|
22
42
|
readonly cardinality: Cardinality;
|
|
23
43
|
}
|
|
@@ -29,7 +49,7 @@ type BaseExternalStoreConfiguration = {
|
|
|
29
49
|
getRelatedKeys: (key: string) => Set<string> | undefined;
|
|
30
50
|
has: (a: string, b?: string) => boolean;
|
|
31
51
|
};
|
|
32
|
-
type ExternalStoreWithContentConfiguration<Content extends Object
|
|
52
|
+
type ExternalStoreWithContentConfiguration<Content extends Json.Object> = {
|
|
33
53
|
getContent: (contentKey: string) => Content | undefined;
|
|
34
54
|
setContent: (contentKey: string, content: Content) => void;
|
|
35
55
|
deleteContent: (contentKey: string) => void;
|
|
@@ -37,14 +57,14 @@ type ExternalStoreWithContentConfiguration<Content extends Object$1> = {
|
|
|
37
57
|
type Empty<Obj extends object> = {
|
|
38
58
|
[Key in keyof Obj]?: undefined;
|
|
39
59
|
};
|
|
40
|
-
type ExternalStoreConfiguration<Content extends Object
|
|
41
|
-
type JunctionAdvancedConfiguration<Content extends Object
|
|
60
|
+
type ExternalStoreConfiguration<Content extends Json.Object | null> = Content extends Json.Object ? BaseExternalStoreConfiguration & ExternalStoreWithContentConfiguration<Content> : BaseExternalStoreConfiguration & Empty<ExternalStoreWithContentConfiguration<Json.Object>>;
|
|
61
|
+
type JunctionAdvancedConfiguration<Content extends Json.Object | null> = {
|
|
42
62
|
externalStore?: ExternalStoreConfiguration<Content>;
|
|
43
63
|
isContent?: Refinement<unknown, Content>;
|
|
44
64
|
makeContentKey?: (a: string, b: string) => string;
|
|
45
65
|
};
|
|
46
|
-
type JunctionJSON<ASide extends string, BSide extends string, Content extends Object
|
|
47
|
-
declare class Junction<const ASide extends string, const BSide extends string, const Content extends Object
|
|
66
|
+
type JunctionJSON<ASide extends string, BSide extends string, Content extends Json.Object | null> = JunctionEntries<Content> & JunctionSchema<ASide, BSide>;
|
|
67
|
+
declare class Junction<const ASide extends string, const BSide extends string, const Content extends Json.Object | null = null> {
|
|
48
68
|
readonly a: ASide;
|
|
49
69
|
readonly b: BSide;
|
|
50
70
|
readonly cardinality: Cardinality;
|
|
@@ -156,11 +176,20 @@ declare function deposit<T>(state: WritableSelector<T>): WritableSelectorToken<T
|
|
|
156
176
|
declare function deposit<T>(state: ReadonlySelector<T>): ReadonlySelectorToken<T>;
|
|
157
177
|
declare function deposit<T>(state: Selector<T>): SelectorToken<T>;
|
|
158
178
|
declare function deposit<T>(state: WritableState<T>): WritableToken<T>;
|
|
179
|
+
declare function deposit<T>(state: ReadableState<T>): ReadableToken<T>;
|
|
180
|
+
declare function deposit<T, K extends Canonical>(state: RegularAtomFamily<T, K>): RegularAtomFamilyToken<T, K>;
|
|
181
|
+
declare function deposit<T extends Transceiver<any>, J extends Json$1.Serializable, K extends Canonical>(state: MutableAtomFamily<T, J, K>): MutableAtomFamilyToken<T, J, K>;
|
|
182
|
+
declare function deposit<T>(state: AtomFamily<T, any>): AtomFamilyToken<T, any>;
|
|
183
|
+
declare function deposit<T>(state: WritableSelectorFamily<T, any>): WritableSelectorFamilyToken<T, any>;
|
|
184
|
+
declare function deposit<T>(state: ReadonlySelectorFamily<T, any>): ReadonlySelectorFamilyToken<T, any>;
|
|
185
|
+
declare function deposit<T>(state: SelectorFamily<T, any>): SelectorFamilyToken<T, any>;
|
|
186
|
+
declare function deposit<T>(state: WritableFamily<T, any>): WritableFamilyToken<T, any>;
|
|
187
|
+
declare function deposit<T>(state: ReadableFamily<T, any>): ReadableFamilyToken<T, any>;
|
|
159
188
|
declare function deposit<M extends MoleculeConstructor>(state: MoleculeFamily<M>): MoleculeFamilyToken<M>;
|
|
160
189
|
declare function deposit<M extends MoleculeConstructor>(state: Molecule<M>): MoleculeToken<M>;
|
|
161
190
|
declare function deposit<T extends Func>(state: Transaction<T>): TransactionToken<T>;
|
|
162
|
-
declare function deposit<T>(state: ReadableState<T>): ReadableToken<T>;
|
|
163
191
|
declare function deposit(state: Molecule<any> | ReadableState<any>): MoleculeToken<any> | ReadableToken<any>;
|
|
192
|
+
declare function deposit(state: Molecule<any> | MoleculeFamily<any> | ReadableFamily<any, any> | ReadableState<any> | Transaction<Func>): MoleculeFamilyToken<any> | MoleculeToken<any> | ReadableFamilyToken<any, any> | ReadableToken<any> | TransactionToken<Func>;
|
|
164
193
|
|
|
165
194
|
interface Lineage {
|
|
166
195
|
parent: typeof this | null;
|
|
@@ -227,7 +256,18 @@ type Timeline<ManagedAtom extends TimelineManageable> = {
|
|
|
227
256
|
};
|
|
228
257
|
declare function createTimeline<ManagedAtom extends TimelineManageable>(options: TimelineOptions<ManagedAtom>, store: Store, data?: Timeline<ManagedAtom>): TimelineToken<ManagedAtom>;
|
|
229
258
|
|
|
230
|
-
declare const timeTravel: (action: `redo` | `undo`, token: TimelineToken<any
|
|
259
|
+
declare const timeTravel: (store: Store, action: `redo` | `undo`, token: TimelineToken<any>) => void;
|
|
260
|
+
|
|
261
|
+
declare class CircularBuffer<T> {
|
|
262
|
+
protected _buffer: T[];
|
|
263
|
+
protected _index: number;
|
|
264
|
+
constructor(array: T[]);
|
|
265
|
+
constructor(length: number);
|
|
266
|
+
get buffer(): ReadonlyArray<T | undefined>;
|
|
267
|
+
get index(): number;
|
|
268
|
+
add(item: T): void;
|
|
269
|
+
copy(): CircularBuffer<T>;
|
|
270
|
+
}
|
|
231
271
|
|
|
232
272
|
declare class Store implements Lineage {
|
|
233
273
|
parent: Store | null;
|
|
@@ -250,6 +290,10 @@ declare class Store implements Lineage {
|
|
|
250
290
|
timelineTopics: Junction<"timelineKey", "topicKey", {
|
|
251
291
|
topicType: `atom_family` | `atom` | `molecule_family` | `molecule`;
|
|
252
292
|
}>;
|
|
293
|
+
disposalTraces: CircularBuffer<{
|
|
294
|
+
key: string;
|
|
295
|
+
trace: string;
|
|
296
|
+
}>;
|
|
253
297
|
molecules: Map<string, Molecule<any>>;
|
|
254
298
|
moleculeFamilies: Map<string, Flat<atom_io.MoleculeFamilyToken<any> & {
|
|
255
299
|
subject: Subject<atom_io.MoleculeCreation<any> | atom_io.MoleculeDisposal>;
|
|
@@ -295,7 +339,7 @@ declare function withdraw<T>(token: SelectorToken<T>, store: Store): Selector<T>
|
|
|
295
339
|
declare function withdraw<T>(token: WritableToken<T>, store: Store): WritableState<T>;
|
|
296
340
|
declare function withdraw<T>(token: ReadableToken<T>, store: Store): ReadableState<T>;
|
|
297
341
|
declare function withdraw<T, K extends Canonical>(token: RegularAtomFamilyToken<T, K>, store: Store): RegularAtomFamily<T, K>;
|
|
298
|
-
declare function withdraw<T extends Transceiver<any>, J extends Json.Serializable, K extends Canonical>(token: MutableAtomFamilyToken<T, J, K>, store: Store): MutableAtomFamily<T, J, K>;
|
|
342
|
+
declare function withdraw<T extends Transceiver<any>, J extends Json$1.Serializable, K extends Canonical>(token: MutableAtomFamilyToken<T, J, K>, store: Store): MutableAtomFamily<T, J, K>;
|
|
299
343
|
declare function withdraw<T, K extends Canonical>(token: AtomFamilyToken<T>, store: Store): AtomFamily<T, any>;
|
|
300
344
|
declare function withdraw<T, K extends Canonical>(token: ReadonlySelectorFamilyToken<T, K>, store: Store): ReadonlySelectorFamily<T, any>;
|
|
301
345
|
declare function withdraw<T, K extends Canonical>(token: WritableSelectorFamilyToken<T, K>, store: Store): WritableSelectorFamily<T, any>;
|
|
@@ -306,29 +350,30 @@ declare function withdraw<M extends MoleculeConstructor>(token: MoleculeToken<M>
|
|
|
306
350
|
declare function withdraw<M extends MoleculeConstructor>(token: MoleculeFamilyToken<M>, store: Store): MoleculeFamily<M>;
|
|
307
351
|
declare function withdraw<T extends Func>(token: TransactionToken<T>, store: Store): Transaction<T extends Func ? T : never>;
|
|
308
352
|
declare function withdraw<T>(token: TimelineToken<T>, store: Store): Timeline<T extends TimelineManageable ? T : never>;
|
|
353
|
+
declare function withdraw<T, M extends MoleculeConstructor>(token: MoleculeToken<M> | ReadableToken<T>, store: Store): Molecule<M> | ReadableState<T>;
|
|
309
354
|
|
|
310
|
-
interface Transceiver<Signal extends Json.Serializable> {
|
|
355
|
+
interface Transceiver<Signal extends Json$1.Serializable> {
|
|
311
356
|
do: (update: Signal) => number | `OUT_OF_RANGE` | null;
|
|
312
357
|
undo: (update: Signal) => void;
|
|
313
358
|
subscribe: (key: string, fn: (update: Signal) => void) => () => void;
|
|
314
359
|
cacheUpdateNumber: number;
|
|
315
360
|
getUpdateNumber: (update: Signal) => number;
|
|
316
361
|
}
|
|
317
|
-
declare function isTransceiver(value: unknown): value is Transceiver<Json.Serializable>;
|
|
362
|
+
declare function isTransceiver(value: unknown): value is Transceiver<Json$1.Serializable>;
|
|
318
363
|
type TransceiverMode = `playback` | `record` | `transaction`;
|
|
319
364
|
type Signal<TVR extends Transceiver<any>> = TVR extends Transceiver<infer S> ? S : never;
|
|
320
365
|
|
|
321
|
-
declare function createMutableAtom<T extends Transceiver<any>, J extends Json.Serializable>(options: MutableAtomOptions<T, J>, family: FamilyMetadata | undefined
|
|
366
|
+
declare function createMutableAtom<T extends Transceiver<any>, J extends Json$1.Serializable>(store: Store, options: MutableAtomOptions<T, J>, family: FamilyMetadata | undefined): MutableAtomToken<T, J>;
|
|
322
367
|
|
|
323
|
-
declare function createMutableAtomFamily<T extends Transceiver<any>, J extends Json.Serializable, K extends string>(options: MutableAtomFamilyOptions<T, J, K>,
|
|
368
|
+
declare function createMutableAtomFamily<T extends Transceiver<any>, J extends Json$1.Serializable, K extends string>(store: Store, options: MutableAtomFamilyOptions<T, J, K>, internalRoles?: string[]): MutableAtomFamilyToken<T, J, K>;
|
|
324
369
|
|
|
325
|
-
declare const getJsonFamily: <Core extends Transceiver<Json.Serializable>, SerializableCore extends Json.Serializable, Key extends string>(mutableAtomFamily: MutableAtomFamilyToken<Core, SerializableCore, Key>, store: Store) => WritableSelectorFamily<SerializableCore, Key>;
|
|
370
|
+
declare const getJsonFamily: <Core extends Transceiver<Json$1.Serializable>, SerializableCore extends Json$1.Serializable, Key extends string>(mutableAtomFamily: MutableAtomFamilyToken<Core, SerializableCore, Key>, store: Store) => WritableSelectorFamily<SerializableCore, Key>;
|
|
326
371
|
|
|
327
|
-
declare const getJsonToken: <Core extends Transceiver<any>, SerializableCore extends Json.Serializable>(mutableAtomToken: MutableAtomToken<Core, SerializableCore
|
|
372
|
+
declare const getJsonToken: <Core extends Transceiver<any>, SerializableCore extends Json$1.Serializable>(store: Store, mutableAtomToken: MutableAtomToken<Core, SerializableCore>) => WritableSelectorToken<SerializableCore>;
|
|
328
373
|
|
|
329
|
-
declare const getUpdateFamily: <Core extends Transceiver<Json.Serializable>, SerializableCore extends Json.Serializable, Key extends string>(mutableAtomFamily: MutableAtomFamilyToken<Core, SerializableCore, Key>, store: Store) => AtomFamily<Signal<Core>, Key>;
|
|
374
|
+
declare const getUpdateFamily: <Core extends Transceiver<Json$1.Serializable>, SerializableCore extends Json$1.Serializable, Key extends string>(mutableAtomFamily: MutableAtomFamilyToken<Core, SerializableCore, Key>, store: Store) => AtomFamily<Signal<Core>, Key>;
|
|
330
375
|
|
|
331
|
-
declare const getUpdateToken: <Core extends Transceiver<any>, SerializableCore extends Json.Serializable>(mutableAtomToken: MutableAtomToken<Core, SerializableCore>) => RegularAtomToken<Signal<Core>>;
|
|
376
|
+
declare const getUpdateToken: <Core extends Transceiver<any>, SerializableCore extends Json$1.Serializable>(mutableAtomToken: MutableAtomToken<Core, SerializableCore>) => RegularAtomToken<Signal<Core>>;
|
|
332
377
|
|
|
333
378
|
/**
|
|
334
379
|
* @internal Give the tracker a transceiver state and a store, and it will
|
|
@@ -342,10 +387,10 @@ declare class Tracker<Mutable extends Transceiver<any>> {
|
|
|
342
387
|
private unsubscribeFromState;
|
|
343
388
|
private observeCore;
|
|
344
389
|
private updateCore;
|
|
345
|
-
mutableState: MutableAtomToken<Mutable, Json.Serializable>;
|
|
390
|
+
mutableState: MutableAtomToken<Mutable, Json$1.Serializable>;
|
|
346
391
|
latestUpdateState: RegularAtomToken<typeof this.Update | null>;
|
|
347
392
|
dispose: () => void;
|
|
348
|
-
constructor(mutableState: MutableAtomToken<Mutable, Json.Serializable>, store: Store);
|
|
393
|
+
constructor(mutableState: MutableAtomToken<Mutable, Json$1.Serializable>, store: Store);
|
|
349
394
|
}
|
|
350
395
|
|
|
351
396
|
declare class FamilyTracker<Core extends Transceiver<any>, FamilyMemberKey extends Canonical> {
|
|
@@ -357,10 +402,10 @@ declare class FamilyTracker<Core extends Transceiver<any>, FamilyMemberKey exten
|
|
|
357
402
|
|
|
358
403
|
declare function arbitrary(random?: () => number): string;
|
|
359
404
|
|
|
360
|
-
declare function createRegularAtom<T>(options: RegularAtomOptions<T>, family: FamilyMetadata | undefined
|
|
405
|
+
declare function createRegularAtom<T>(store: Store, options: RegularAtomOptions<T>, family: FamilyMetadata | undefined): RegularAtomToken<T>;
|
|
361
406
|
|
|
362
|
-
declare function createStandaloneAtom<T>(options: RegularAtomOptions<T
|
|
363
|
-
declare function createStandaloneAtom<T extends Transceiver<any>, J extends Json.Serializable>(options: MutableAtomOptions<T, J
|
|
407
|
+
declare function createStandaloneAtom<T>(store: Store, options: RegularAtomOptions<T>): RegularAtomToken<T>;
|
|
408
|
+
declare function createStandaloneAtom<T extends Transceiver<any>, J extends Json$1.Serializable>(store: Store, options: MutableAtomOptions<T, J>): MutableAtomToken<T, J>;
|
|
364
409
|
|
|
365
410
|
declare function disposeAtom(atomToken: AtomToken<unknown>, store: Store): void;
|
|
366
411
|
|
|
@@ -392,57 +437,59 @@ declare function cacheValue<T extends Promise<any>>(key: string, value: T, subje
|
|
|
392
437
|
declare const readCachedValue: <T>(token: ReadableState<any>, target: Store) => T;
|
|
393
438
|
declare const evictCachedValue: (key: string, target: Store) => void;
|
|
394
439
|
|
|
395
|
-
declare function createAtomFamily<T extends Transceiver<any>, J extends Json.Serializable, K extends Canonical>(options: MutableAtomFamilyOptions<T, J, K
|
|
396
|
-
declare function createAtomFamily<T, K extends Canonical>(options: RegularAtomFamilyOptions<T, K
|
|
397
|
-
|
|
398
|
-
declare function createReadonlySelectorFamily<T, K extends Canonical>(options: ReadonlySelectorFamilyOptions<T, K>,
|
|
399
|
-
|
|
400
|
-
declare function createRegularAtomFamily<T, K extends Canonical>(options: RegularAtomFamilyOptions<T, K>,
|
|
401
|
-
|
|
402
|
-
declare function createSelectorFamily<T, K extends Canonical>(options: WritableSelectorFamilyOptions<T, K
|
|
403
|
-
declare function createSelectorFamily<T, K extends Canonical>(options: ReadonlySelectorFamilyOptions<T, K
|
|
404
|
-
|
|
405
|
-
declare function disposeFromStore(token: MoleculeToken<any> | ReadableToken<any
|
|
406
|
-
declare function disposeFromStore<K extends Canonical>(token: ReadableFamilyToken<any, K>, key: K
|
|
407
|
-
declare function disposeFromStore<M extends MoleculeConstructor>(token: MoleculeFamilyToken<M>, key: MoleculeKey<M
|
|
408
|
-
|
|
409
|
-
declare function findInStore<T extends Transceiver<any>, J extends Json.Serializable, K extends Canonical, Key extends K>(token: MutableAtomFamilyToken<T, J, K>, key: Key
|
|
410
|
-
declare function findInStore<T, K extends Canonical, Key extends K>(token: RegularAtomFamilyToken<T, K>, key: Key
|
|
411
|
-
declare function findInStore<T, K extends Canonical, Key extends K>(token: AtomFamilyToken<T, K>, key: Key
|
|
412
|
-
declare function findInStore<T, K extends Canonical, Key extends K>(token: WritableSelectorFamilyToken<T, K>, key: Key
|
|
413
|
-
declare function findInStore<T, K extends Canonical, Key extends K>(token: ReadonlySelectorFamilyToken<T, K>, key: Key
|
|
414
|
-
declare function findInStore<T, K extends Canonical, Key extends K>(token: SelectorFamilyToken<T, K>, key: Key
|
|
415
|
-
declare function findInStore<T, K extends Canonical, Key extends K>(token: WritableFamilyToken<T, K>, key: Key
|
|
416
|
-
declare function findInStore<T, K extends Canonical, Key extends K>(token: ReadableFamilyToken<T, K>, key: Key
|
|
417
|
-
|
|
418
|
-
declare function initFamilyMemberInStore<T extends Transceiver<any>, J extends Json.Serializable, K extends Canonical, Key extends K>(token: MutableAtomFamilyToken<T, J, K>, key: Key
|
|
419
|
-
declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(token: RegularAtomFamilyToken<T, K>, key: Key
|
|
420
|
-
declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(token: AtomFamilyToken<T, K>, key: Key
|
|
421
|
-
declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(token: WritableSelectorFamilyToken<T, K>, key: Key
|
|
422
|
-
declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(token: ReadonlySelectorFamilyToken<T, K>, key: Key
|
|
423
|
-
declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(token: SelectorFamilyToken<T, K>, key: Key
|
|
424
|
-
declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(token: WritableFamilyToken<T, K>, key: Key
|
|
425
|
-
declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(token: ReadableFamilyToken<T, K>, key: Key
|
|
426
|
-
|
|
427
|
-
declare function seekInStore<T extends Transceiver<any>, J extends Json.Serializable, K extends Canonical, Key extends K>(token: MutableAtomFamilyToken<T, J, K>, key: Key
|
|
428
|
-
declare function seekInStore<T, K extends Canonical, Key extends K>(token: RegularAtomFamilyToken<T, K>, key: Key
|
|
429
|
-
declare function seekInStore<T, K extends Canonical, Key extends K>(token: AtomFamilyToken<T, K>, key: Key
|
|
430
|
-
declare function seekInStore<T, K extends Canonical, Key extends K>(token: WritableSelectorFamilyToken<T, K>, key: Key
|
|
431
|
-
declare function seekInStore<T, K extends Canonical, Key extends K>(token: ReadonlySelectorFamilyToken<T, K>, key: Key
|
|
432
|
-
declare function seekInStore<T, K extends Canonical, Key extends K>(token: SelectorFamilyToken<T, K>, key: Key
|
|
433
|
-
declare function seekInStore<T, K extends Canonical, Key extends K>(token: WritableFamilyToken<T, K>, key: Key
|
|
434
|
-
declare function seekInStore<T, K extends Canonical, Key extends K>(token: ReadableFamilyToken<T, K>, key: Key
|
|
435
|
-
declare function seekInStore<M extends MoleculeConstructor>(token: MoleculeFamilyToken<M>, key: MoleculeKey<M
|
|
440
|
+
declare function createAtomFamily<T extends Transceiver<any>, J extends Json$1.Serializable, K extends Canonical>(store: Store, options: MutableAtomFamilyOptions<T, J, K>): MutableAtomFamilyToken<T, J, K>;
|
|
441
|
+
declare function createAtomFamily<T, K extends Canonical>(store: Store, options: RegularAtomFamilyOptions<T, K>): RegularAtomFamilyToken<T, K>;
|
|
442
|
+
|
|
443
|
+
declare function createReadonlySelectorFamily<T, K extends Canonical>(store: Store, options: ReadonlySelectorFamilyOptions<T, K>, internalRoles?: string[]): ReadonlySelectorFamilyToken<T, K>;
|
|
444
|
+
|
|
445
|
+
declare function createRegularAtomFamily<T, K extends Canonical>(store: Store, options: RegularAtomFamilyOptions<T, K>, internalRoles?: string[]): RegularAtomFamilyToken<T, K>;
|
|
446
|
+
|
|
447
|
+
declare function createSelectorFamily<T, K extends Canonical>(store: Store, options: WritableSelectorFamilyOptions<T, K>): WritableSelectorFamilyToken<T, K>;
|
|
448
|
+
declare function createSelectorFamily<T, K extends Canonical>(store: Store, options: ReadonlySelectorFamilyOptions<T, K>): ReadonlySelectorFamilyToken<T, K>;
|
|
449
|
+
|
|
450
|
+
declare function disposeFromStore(store: Store, token: MoleculeToken<any> | ReadableToken<any>): void;
|
|
451
|
+
declare function disposeFromStore<K extends Canonical>(store: Store, token: ReadableFamilyToken<any, K>, key: K): void;
|
|
452
|
+
declare function disposeFromStore<M extends MoleculeConstructor>(store: Store, token: MoleculeFamilyToken<M>, key: MoleculeKey<M>): void;
|
|
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;
|
|
480
|
+
declare function seekInStore<M extends MoleculeConstructor>(store: Store, token: MoleculeFamilyToken<M>, key: MoleculeKey<M>): MoleculeKey<M> | undefined;
|
|
436
481
|
|
|
437
482
|
type EnvironmentData = {
|
|
438
483
|
store: Store;
|
|
439
484
|
};
|
|
440
485
|
declare function getEnvironmentData(store: Store): EnvironmentData;
|
|
441
486
|
|
|
442
|
-
declare function getFromStore<T>(token: ReadableToken<T
|
|
443
|
-
declare function getFromStore<M extends MoleculeConstructor>(token: MoleculeToken<M
|
|
444
|
-
declare function getFromStore<T, K extends Canonical>(token: ReadableFamilyToken<T, K>, key: K
|
|
445
|
-
declare function getFromStore<M extends MoleculeConstructor>(token: MoleculeFamilyToken<M>, key: MoleculeKey<M
|
|
487
|
+
declare function getFromStore<T>(store: Store, token: ReadableToken<T>): T;
|
|
488
|
+
declare function getFromStore<M extends MoleculeConstructor>(store: Store, token: MoleculeToken<M>): InstanceType<M>;
|
|
489
|
+
declare function getFromStore<T, K extends Canonical>(store: Store, token: ReadableFamilyToken<T, K>, key: K): T;
|
|
490
|
+
declare function getFromStore<M extends MoleculeConstructor>(store: Store, token: MoleculeFamilyToken<M>, key: MoleculeKey<M>): InstanceType<M>;
|
|
491
|
+
declare function getFromStore(store: Store, token: MoleculeToken<any> | ReadableToken<any>): any;
|
|
492
|
+
declare function getFromStore(store: Store, token: MoleculeFamilyToken<any> | ReadableFamilyToken<any, any>, key: Canonical): any;
|
|
446
493
|
|
|
447
494
|
declare const readOrComputeValue: <T>(state: ReadableState<T>, target: Store) => T;
|
|
448
495
|
|
|
@@ -486,7 +533,7 @@ declare class LazyMap<K, V> extends Map<K, V> {
|
|
|
486
533
|
delete(key: K): boolean;
|
|
487
534
|
}
|
|
488
535
|
|
|
489
|
-
declare function createMoleculeFamily<M extends MoleculeConstructor>(options: MoleculeFamilyOptions<M
|
|
536
|
+
declare function createMoleculeFamily<M extends MoleculeConstructor>(store: Store, options: MoleculeFamilyOptions<M>): MoleculeFamilyToken<M>;
|
|
490
537
|
|
|
491
538
|
declare function disposeMolecule<M extends MoleculeConstructor>(token: MoleculeToken<M>, store: Store): void;
|
|
492
539
|
|
|
@@ -504,7 +551,7 @@ declare class Molecule<M extends MoleculeConstructor> implements MoleculeToken<M
|
|
|
504
551
|
constructor(ctx: Molecule<any> | Molecule<any>[] | undefined, key: MoleculeKey<M>, family?: MoleculeFamilyToken<M>);
|
|
505
552
|
}
|
|
506
553
|
|
|
507
|
-
declare function growMoleculeInStore<T extends Transceiver<any>, J extends Json.Serializable, K extends Canonical>(molecule: Molecule<any>, family: MutableAtomFamilyToken<T, J, K>, store: Store): MutableAtomToken<T, J>;
|
|
554
|
+
declare function growMoleculeInStore<T extends Transceiver<any>, J extends Json$1.Serializable, K extends Canonical>(molecule: Molecule<any>, family: MutableAtomFamilyToken<T, J, K>, store: Store): MutableAtomToken<T, J>;
|
|
508
555
|
declare function growMoleculeInStore<T, K extends Canonical>(molecule: Molecule<any>, family: RegularAtomFamilyToken<T, K>, store: Store): RegularAtomToken<T>;
|
|
509
556
|
declare function growMoleculeInStore<T, K extends Canonical>(molecule: Molecule<any>, family: AtomFamilyToken<T, K>, store: Store): AtomToken<T>;
|
|
510
557
|
declare function growMoleculeInStore<T, K extends Canonical>(molecule: Molecule<any>, family: WritableSelectorFamilyToken<T, K>, store: Store): WritableSelectorToken<T>;
|
|
@@ -520,15 +567,15 @@ declare function prettyPrintTokenType(token: AtomIOToken): string;
|
|
|
520
567
|
|
|
521
568
|
declare class NotFoundError extends Error {
|
|
522
569
|
constructor(token: AtomIOToken, store: Store);
|
|
523
|
-
constructor(familyToken: AtomIOToken, key: Json.Serializable, store: Store);
|
|
570
|
+
constructor(familyToken: AtomIOToken, key: Json$1.Serializable, store: Store);
|
|
524
571
|
}
|
|
525
572
|
|
|
526
|
-
declare const createReadonlySelector: <T>(options: ReadonlySelectorOptions<T>, family: FamilyMetadata | undefined
|
|
573
|
+
declare const createReadonlySelector: <T>(store: Store, options: ReadonlySelectorOptions<T>, family: FamilyMetadata | undefined) => ReadonlySelectorToken<T>;
|
|
527
574
|
|
|
528
|
-
declare function createStandaloneSelector<T>(options: WritableSelectorOptions<T
|
|
529
|
-
declare function createStandaloneSelector<T>(options: ReadonlySelectorOptions<T
|
|
575
|
+
declare function createStandaloneSelector<T>(store: Store, options: WritableSelectorOptions<T>): WritableSelectorToken<T>;
|
|
576
|
+
declare function createStandaloneSelector<T>(store: Store, options: ReadonlySelectorOptions<T>): ReadonlySelectorToken<T>;
|
|
530
577
|
|
|
531
|
-
declare const createWritableSelector: <T>(options: WritableSelectorOptions<T>, family: FamilyMetadata | undefined
|
|
578
|
+
declare const createWritableSelector: <T>(store: Store, options: WritableSelectorOptions<T>, family: FamilyMetadata | undefined) => WritableSelectorToken<T>;
|
|
532
579
|
|
|
533
580
|
declare function disposeSelector(selectorToken: ReadonlySelectorToken<unknown> | WritableSelectorToken<unknown>, store: Store): void;
|
|
534
581
|
|
|
@@ -546,8 +593,15 @@ declare const become: <T>(nextVersionOfThing: Modify<T> | T) => (originalThing:
|
|
|
546
593
|
|
|
547
594
|
declare const setAtomOrSelector: <T>(state: WritableState<T>, value: T | ((oldValue: T) => T), store: Store) => void;
|
|
548
595
|
|
|
549
|
-
declare function setIntoStore<T, New extends T>(token: WritableToken<T>, value: New | ((oldValue: T) => New)
|
|
550
|
-
declare function setIntoStore<T, K extends Canonical, New extends T>(token: WritableFamilyToken<T, K>, key: K, value: New | ((oldValue: T) => New)
|
|
596
|
+
declare function setIntoStore<T, New extends T>(store: Store, token: WritableToken<T>, value: New | ((oldValue: T) => New)): void;
|
|
597
|
+
declare function setIntoStore<T, K extends Canonical, New extends T>(store: Store, token: WritableFamilyToken<T, K>, key: K, value: New | ((oldValue: T) => New)): void;
|
|
598
|
+
|
|
599
|
+
declare const recallState: <T>(state: ReadableState<T>, store: Store) => T;
|
|
600
|
+
|
|
601
|
+
declare function subscribeInStore<T>(store: Store$1, token: ReadableToken<T>, handleUpdate: UpdateHandler<T>, key?: string): () => void;
|
|
602
|
+
declare function subscribeInStore<F extends Func$1>(store: Store$1, token: TransactionToken<F>, handleUpdate: TransactionUpdateHandler<F>, key?: string): () => void;
|
|
603
|
+
declare function subscribeInStore<M extends TimelineManageable>(store: Store$1, token: TimelineToken<M>, handleUpdate: (update: TimelineUpdate<M> | `redo` | `undo`) => void, key?: string): () => void;
|
|
604
|
+
declare function subscribeInStore<M extends TimelineManageable>(store: Store$1, token: ReadableToken<any> | TimelineToken<M> | TransactionToken<any>, handleUpdate: TransactionUpdateHandler<any> | UpdateHandler<any> | ((update: TimelineUpdate<M> | `redo` | `undo`) => void), key?: string): () => void;
|
|
551
605
|
|
|
552
606
|
declare const subscribeToRootAtoms: <T>(selector: Selector<T>, store: Store) => (() => void)[];
|
|
553
607
|
|
|
@@ -571,7 +625,7 @@ type RegularAtom<T> = AtomIOState & {
|
|
|
571
625
|
default: T | (() => T);
|
|
572
626
|
cleanup?: () => void;
|
|
573
627
|
};
|
|
574
|
-
type MutableAtom<T extends Transceiver<any>, J extends Json.Serializable> = AtomIOState & JsonInterface<T, J> & {
|
|
628
|
+
type MutableAtom<T extends Transceiver<any>, J extends Json$1.Serializable> = AtomIOState & JsonInterface<T, J> & {
|
|
575
629
|
type: `mutable_atom`;
|
|
576
630
|
default: T | (() => T);
|
|
577
631
|
cleanup?: () => void;
|
|
@@ -595,7 +649,7 @@ type RegularAtomFamily<T, K extends Canonical> = RegularAtomFamilyToken<T, K> &
|
|
|
595
649
|
install: (store: Store) => void;
|
|
596
650
|
internalRoles: string[] | undefined;
|
|
597
651
|
};
|
|
598
|
-
type MutableAtomFamily<T extends Transceiver<any>, J extends Json.Serializable, K extends Canonical> = JsonInterface<T, J> & MutableAtomFamilyToken<T, J, K> & {
|
|
652
|
+
type MutableAtomFamily<T extends Transceiver<any>, J extends Json$1.Serializable, K extends Canonical> = JsonInterface<T, J> & MutableAtomFamilyToken<T, J, K> & {
|
|
599
653
|
(key: K): MutableAtomToken<T, J>;
|
|
600
654
|
subject: Subject<StateCreation<MutableAtomToken<T, J>> | StateDisposal<MutableAtomToken<T, J>>>;
|
|
601
655
|
install: (store: Store) => void;
|
|
@@ -618,4 +672,4 @@ type SelectorFamily<T, K extends Canonical> = ReadonlySelectorFamily<T, K> | Wri
|
|
|
618
672
|
type WritableFamily<T, K extends Canonical> = AtomFamily<T, K> | WritableSelectorFamily<T, K>;
|
|
619
673
|
type ReadableFamily<T, K extends Canonical> = AtomFamily<T, K> | SelectorFamily<T, K>;
|
|
620
674
|
|
|
621
|
-
export { type Atom, type AtomFamily, type AtomIOState, type AtomIOToken, type AtomKey, type ChildStore, type EnvironmentData, FamilyTracker, type Flat, type Func, Future, IMPLICIT, LazyMap, type Lineage, type Modify, Molecule, type MutableAtom, type MutableAtomFamily, NotFoundError, type OperationProgress, type Range, type ReadableFamily, type ReadableState, type ReadonlySelector, type ReadonlySelectorFamily, type ReadonlySelectorKey, type RegularAtom, type RegularAtomFamily, type RootStore, type Selector, type SelectorFamily, type SelectorKey, type Signal, type StateKey, StatefulSubject, Store, Subject, TRANSACTION_PHASES, type Timeline, type TimelineAtomUpdate, type TimelineMoleculeCreation, type TimelineMoleculeDisposal, type TimelineSelectorUpdate, type TimelineStateCreation, type TimelineStateDisposal, type TimelineTransactionUpdate, Tracker, type Transaction, type TransactionEpoch, type TransactionPhase, type TransactionProgress, type Transceiver, type TransceiverMode, type Withdrawable, type WritableFamily, type WritableSelector, type WritableSelectorFamily, type WritableState, abortTransaction, actUponStore, applyTransaction, arbitrary, assignTransactionToContinuity, become, buildTransaction, cacheValue, clearStore, closeOperation, createAtomFamily, createMoleculeFamily, createMutableAtom, createMutableAtomFamily, createReadonlySelector, createReadonlySelectorFamily, createRegularAtom, createRegularAtomFamily, createSelectorFamily, createStandaloneAtom, createStandaloneSelector, createTimeline, createTransaction, createWritableSelector, deposit, disposeAtom, disposeFromStore, disposeMolecule, disposeSelector, eldest, evictCachedValue, findInStore, getContinuityKey, getEnvironmentData, getEpochNumberOfAction, getEpochNumberOfContinuity, getFromStore, getJsonFamily, getJsonToken, getSelectorDependencyKeys, getUpdateFamily, getUpdateToken, growMoleculeInStore, ingestAtomUpdate, ingestCreationEvent, ingestDisposalEvent, ingestMoleculeCreationEvent, ingestMoleculeDisposalEvent, ingestSelectorUpdate, ingestTransactionUpdate, initFamilyMemberInStore, isAtomDefault, isAtomKey, isChildStore, isDone, isReadonlySelectorKey, isRootStore, isSelectorKey, isStateKey, isTransceiver, makeMoleculeInStore, markAtomAsDefault, markAtomAsNotDefault, markDone, newest, openOperation, prettyPrintTokenType, readCachedValue, readOrComputeValue, registerSelector, seekInStore, setAtomOrSelector, setEpochNumberOfAction, setEpochNumberOfContinuity, setIntoStore, subscribeToRootAtoms, subscribeToState, subscribeToTimeline, subscribeToTransaction, timeTravel, traceAllSelectorAtoms, traceSelectorAtoms, updateSelectorAtoms, withdraw };
|
|
675
|
+
export { type Atom, type AtomFamily, type AtomIOState, type AtomIOToken, type AtomKey, type ChildStore, type EnvironmentData, FAMILY_MEMBER_TOKEN_TYPES, FamilyTracker, type Flat, type Func, Future, IMPLICIT, LazyMap, type Lineage, type Modify, Molecule, type MutableAtom, type MutableAtomFamily, NotFoundError, type OperationProgress, type Range, type ReadableFamily, type ReadableState, type ReadonlySelector, type ReadonlySelectorFamily, type ReadonlySelectorKey, type RegularAtom, type RegularAtomFamily, type RootStore, type Selector, type SelectorFamily, type SelectorKey, type Signal, type StateKey, StatefulSubject, Store, Subject, TRANSACTION_PHASES, type Timeline, type TimelineAtomUpdate, type TimelineMoleculeCreation, type TimelineMoleculeDisposal, type TimelineSelectorUpdate, type TimelineStateCreation, type TimelineStateDisposal, type TimelineTransactionUpdate, Tracker, type Transaction, type TransactionEpoch, type TransactionPhase, type TransactionProgress, type Transceiver, type TransceiverMode, type Withdrawable, type WritableFamily, type WritableSelector, type WritableSelectorFamily, type WritableState, abortTransaction, actUponStore, applyTransaction, arbitrary, assignTransactionToContinuity, become, buildTransaction, cacheValue, clearStore, closeOperation, 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 };
|
package/internal/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { FamilyTracker, Future, IMPLICIT, LazyMap, Molecule, NotFoundError, StatefulSubject, Store, Subject, TRANSACTION_PHASES, Tracker, abortTransaction, actUponStore, applyTransaction, arbitrary, assignTransactionToContinuity, become, buildTransaction, cacheValue, clearStore, closeOperation, createAtomFamily, createMoleculeFamily, createMutableAtom, createMutableAtomFamily, createReadonlySelector, createReadonlySelectorFamily, createRegularAtom, createRegularAtomFamily, createSelectorFamily, createStandaloneAtom, createStandaloneSelector, createTimeline, createTransaction, createWritableSelector, deposit, disposeAtom, disposeFromStore, disposeMolecule, disposeSelector, eldest, evictCachedValue, findInStore, getContinuityKey, getEnvironmentData, getEpochNumberOfAction, getEpochNumberOfContinuity, getFromStore, getJsonFamily, getJsonToken, getSelectorDependencyKeys, getUpdateFamily, getUpdateToken, growMoleculeInStore, ingestAtomUpdate, ingestCreationEvent, ingestDisposalEvent, ingestMoleculeCreationEvent, ingestMoleculeDisposalEvent, ingestSelectorUpdate, ingestTransactionUpdate, initFamilyMemberInStore, isAtomDefault, isAtomKey, isChildStore, isDone, isReadonlySelectorKey, isRootStore, isSelectorKey, isStateKey, isTransceiver, makeMoleculeInStore, markAtomAsDefault, markAtomAsNotDefault, markDone, newest, openOperation, prettyPrintTokenType, readCachedValue, readOrComputeValue, registerSelector, seekInStore, setAtomOrSelector, setEpochNumberOfAction, setEpochNumberOfContinuity, setIntoStore, subscribeToRootAtoms, subscribeToState, subscribeToTimeline, subscribeToTransaction, timeTravel, traceAllSelectorAtoms, traceSelectorAtoms, updateSelectorAtoms, withdraw } from '../../dist/chunk-
|
|
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-BX3MTH2Z.js';
|
|
2
2
|
import '../../dist/chunk-IBTHB2PI.js';
|
|
3
3
|
import '../../dist/chunk-XWL6SNVU.js';
|
|
@@ -15,9 +15,9 @@ import { subscribeToState } from "../subscribe"
|
|
|
15
15
|
import { markAtomAsDefault } from "./is-default"
|
|
16
16
|
|
|
17
17
|
export function createRegularAtom<T>(
|
|
18
|
+
store: Store,
|
|
18
19
|
options: RegularAtomOptions<T>,
|
|
19
20
|
family: FamilyMetadata | undefined,
|
|
20
|
-
store: Store,
|
|
21
21
|
): RegularAtomToken<T> {
|
|
22
22
|
store.logger.info(
|
|
23
23
|
`🔨`,
|
|
@@ -47,7 +47,7 @@ export function createRegularAtom<T>(
|
|
|
47
47
|
options.key,
|
|
48
48
|
`installing in store "${s.config.name}"`,
|
|
49
49
|
)
|
|
50
|
-
return createRegularAtom(options, family
|
|
50
|
+
return createRegularAtom(s, options, family)
|
|
51
51
|
},
|
|
52
52
|
subject,
|
|
53
53
|
} as const
|
|
@@ -68,7 +68,7 @@ export function createRegularAtom<T>(
|
|
|
68
68
|
for (const effect of options.effects) {
|
|
69
69
|
const cleanup = effect({
|
|
70
70
|
setSelf: (next) => {
|
|
71
|
-
setIntoStore(token, next
|
|
71
|
+
setIntoStore(store, token, next)
|
|
72
72
|
},
|
|
73
73
|
onSet: (handle: UpdateHandler<T>) =>
|
|
74
74
|
subscribeToState(token, handle, `effect[${effectIndex}]`, store),
|
|
@@ -13,25 +13,27 @@ import type { Store } from "../store"
|
|
|
13
13
|
import { createRegularAtom } from "./create-regular-atom"
|
|
14
14
|
|
|
15
15
|
export function createStandaloneAtom<T>(
|
|
16
|
-
options: RegularAtomOptions<T>,
|
|
17
16
|
store: Store,
|
|
17
|
+
options: RegularAtomOptions<T>,
|
|
18
18
|
): RegularAtomToken<T>
|
|
19
|
+
|
|
19
20
|
export function createStandaloneAtom<
|
|
20
21
|
T extends Transceiver<any>,
|
|
21
22
|
J extends Json.Serializable,
|
|
22
|
-
>(options: MutableAtomOptions<T, J
|
|
23
|
+
>(store: Store, options: MutableAtomOptions<T, J>): MutableAtomToken<T, J>
|
|
24
|
+
|
|
23
25
|
export function createStandaloneAtom<T>(
|
|
24
|
-
options: MutableAtomOptions<any, any> | RegularAtomOptions<T>,
|
|
25
26
|
store: Store,
|
|
27
|
+
options: MutableAtomOptions<any, any> | RegularAtomOptions<T>,
|
|
26
28
|
): AtomToken<T> {
|
|
27
29
|
const isMutable = `mutable` in options
|
|
28
30
|
|
|
29
31
|
if (isMutable) {
|
|
30
|
-
const state = createMutableAtom(options, undefined
|
|
32
|
+
const state = createMutableAtom(store, options, undefined)
|
|
31
33
|
store.on.atomCreation.next(state)
|
|
32
34
|
return state
|
|
33
35
|
}
|
|
34
|
-
const state = createRegularAtom(options, undefined
|
|
36
|
+
const state = createRegularAtom(store, options, undefined)
|
|
35
37
|
store.on.atomCreation.next(state)
|
|
36
38
|
return state
|
|
37
39
|
}
|
|
@@ -12,15 +12,8 @@ import {
|
|
|
12
12
|
export function disposeAtom(atomToken: AtomToken<unknown>, store: Store): void {
|
|
13
13
|
const target = newest(store)
|
|
14
14
|
const { key } = atomToken
|
|
15
|
-
const atom = target
|
|
16
|
-
if (!atom) {
|
|
17
|
-
store.logger.error(
|
|
18
|
-
`❌`,
|
|
19
|
-
`atom`,
|
|
20
|
-
key,
|
|
21
|
-
`Tried to dispose atom, but it does not exist in the store.`,
|
|
22
|
-
)
|
|
23
|
-
} else if (!atom.family) {
|
|
15
|
+
const atom = withdraw(atomToken, target)
|
|
16
|
+
if (!atom.family) {
|
|
24
17
|
store.logger.error(`❌`, `atom`, key, `Standalone atoms cannot be disposed.`)
|
|
25
18
|
} else {
|
|
26
19
|
atom.cleanup?.()
|
|
@@ -16,23 +16,23 @@ export function createAtomFamily<
|
|
|
16
16
|
J extends Json.Serializable,
|
|
17
17
|
K extends Canonical,
|
|
18
18
|
>(
|
|
19
|
-
options: MutableAtomFamilyOptions<T, J, K>,
|
|
20
19
|
store: Store,
|
|
20
|
+
options: MutableAtomFamilyOptions<T, J, K>,
|
|
21
21
|
): MutableAtomFamilyToken<T, J, K>
|
|
22
22
|
export function createAtomFamily<T, K extends Canonical>(
|
|
23
|
-
options: RegularAtomFamilyOptions<T, K>,
|
|
24
23
|
store: Store,
|
|
24
|
+
options: RegularAtomFamilyOptions<T, K>,
|
|
25
25
|
): RegularAtomFamilyToken<T, K>
|
|
26
26
|
export function createAtomFamily<T, K extends Canonical>(
|
|
27
|
+
store: Store,
|
|
27
28
|
options:
|
|
28
29
|
| MutableAtomFamilyOptions<any, any, any>
|
|
29
30
|
| RegularAtomFamilyOptions<T, K>,
|
|
30
|
-
store: Store,
|
|
31
31
|
): AtomFamilyToken<any, any> {
|
|
32
32
|
const isMutable = `mutable` in options
|
|
33
33
|
|
|
34
34
|
if (isMutable) {
|
|
35
|
-
return createMutableAtomFamily(
|
|
35
|
+
return createMutableAtomFamily(store, options)
|
|
36
36
|
}
|
|
37
|
-
return createRegularAtomFamily<T, K>(
|
|
37
|
+
return createRegularAtomFamily<T, K>(store, options)
|
|
38
38
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type {
|
|
2
2
|
FamilyMetadata,
|
|
3
|
+
getState,
|
|
3
4
|
ReadonlySelectorFamilyOptions,
|
|
4
5
|
ReadonlySelectorFamilyToken,
|
|
5
6
|
ReadonlySelectorToken,
|
|
@@ -15,6 +16,7 @@ import {
|
|
|
15
16
|
findInStore,
|
|
16
17
|
getFromStore,
|
|
17
18
|
getJsonToken,
|
|
19
|
+
prettyPrintTokenType,
|
|
18
20
|
type ReadonlySelectorFamily,
|
|
19
21
|
seekInStore,
|
|
20
22
|
} from ".."
|
|
@@ -22,11 +24,10 @@ import { newest } from "../lineage"
|
|
|
22
24
|
import { createReadonlySelector } from "../selector"
|
|
23
25
|
import type { Store } from "../store"
|
|
24
26
|
import { Subject } from "../subject"
|
|
25
|
-
import { throwInCaseOfConflictingFamily } from "./throw-in-case-of-conflicting-family"
|
|
26
27
|
|
|
27
28
|
export function createReadonlySelectorFamily<T, K extends Canonical>(
|
|
28
|
-
options: ReadonlySelectorFamilyOptions<T, K>,
|
|
29
29
|
store: Store,
|
|
30
|
+
options: ReadonlySelectorFamilyOptions<T, K>,
|
|
30
31
|
internalRoles?: string[],
|
|
31
32
|
): ReadonlySelectorFamilyToken<T, K> {
|
|
32
33
|
const familyToken = {
|
|
@@ -34,7 +35,17 @@ export function createReadonlySelectorFamily<T, K extends Canonical>(
|
|
|
34
35
|
type: `readonly_selector_family`,
|
|
35
36
|
} as const satisfies ReadonlySelectorFamilyToken<T, K>
|
|
36
37
|
|
|
37
|
-
|
|
38
|
+
const existing = store.families.get(options.key)
|
|
39
|
+
if (existing) {
|
|
40
|
+
store.logger.error(
|
|
41
|
+
`❗`,
|
|
42
|
+
`readonly_selector_family`,
|
|
43
|
+
options.key,
|
|
44
|
+
`Overwriting an existing ${prettyPrintTokenType(
|
|
45
|
+
existing,
|
|
46
|
+
)} "${existing.key}" in store "${store.config.name}". You can safely ignore this warning if it is due to hot module replacement.`,
|
|
47
|
+
)
|
|
48
|
+
}
|
|
38
49
|
|
|
39
50
|
const subject = new Subject<
|
|
40
51
|
| StateCreation<ReadonlySelectorToken<T>>
|
|
@@ -48,12 +59,12 @@ export function createReadonlySelectorFamily<T, K extends Canonical>(
|
|
|
48
59
|
const target = newest(store)
|
|
49
60
|
|
|
50
61
|
const token = createReadonlySelector(
|
|
62
|
+
target,
|
|
51
63
|
{
|
|
52
64
|
key: fullKey,
|
|
53
65
|
get: options.get(key),
|
|
54
66
|
},
|
|
55
67
|
family,
|
|
56
|
-
target,
|
|
57
68
|
)
|
|
58
69
|
|
|
59
70
|
subject.next({ type: `state_creation`, token })
|
|
@@ -63,14 +74,14 @@ export function createReadonlySelectorFamily<T, K extends Canonical>(
|
|
|
63
74
|
const readonlySelectorFamily = Object.assign(familyFunction, familyToken, {
|
|
64
75
|
internalRoles,
|
|
65
76
|
subject,
|
|
66
|
-
install: (s: Store) => createReadonlySelectorFamily(
|
|
77
|
+
install: (s: Store) => createReadonlySelectorFamily(s, options),
|
|
67
78
|
default: (key: K) => {
|
|
68
79
|
const getFn = options.get(key)
|
|
69
80
|
return getFn({
|
|
70
|
-
get: (
|
|
71
|
-
find: ((token, k) => findInStore(token, k
|
|
72
|
-
seek: ((token, k) => seekInStore(token, k
|
|
73
|
-
json: (token) => getJsonToken(
|
|
81
|
+
get: ((...ps: [any]) => getFromStore(store, ...ps)) as typeof getState,
|
|
82
|
+
find: ((token, k) => findInStore(store, token, k)) as typeof findState,
|
|
83
|
+
seek: ((token, k) => seekInStore(store, token, k)) as typeof seekState,
|
|
84
|
+
json: (token) => getJsonToken(store, token),
|
|
74
85
|
})
|
|
75
86
|
},
|
|
76
87
|
}) satisfies ReadonlySelectorFamily<T, K>
|