atom.io 0.21.1 → 0.23.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.cjs +152 -63
- package/data/dist/index.d.ts +6 -0
- package/data/dist/index.js +3 -3
- package/data/src/join.ts +164 -51
- package/data/src/struct-family.ts +2 -2
- package/dist/chunk-6MLFYN32.js +18 -0
- package/dist/{chunk-HITX3MO4.js → chunk-7DT3PVS3.js} +151 -62
- package/dist/{chunk-RT43TVKP.js → chunk-GVHKIJ3G.js} +1 -1
- package/dist/chunk-OAYGID5B.js +27 -0
- package/dist/index.cjs +4 -18
- package/dist/index.d.ts +71 -28
- package/dist/index.js +6 -19
- package/ephemeral/dist/index.cjs +11 -0
- package/ephemeral/dist/index.js +9 -0
- package/ephemeral/package.json +16 -0
- package/ephemeral/src/index.ts +1 -0
- package/eslint-plugin/dist/index.cjs +155 -1
- package/eslint-plugin/dist/index.js +155 -1
- package/eslint-plugin/src/rules/index.ts +1 -0
- package/eslint-plugin/src/rules/lifespan.ts +203 -0
- package/eslint-plugin/src/rules/synchronous-selector-dependencies.ts +1 -65
- package/eslint-plugin/src/walk.ts +73 -0
- package/immortal/dist/index.cjs +260 -0
- package/immortal/dist/index.js +212 -0
- package/immortal/package.json +16 -0
- package/immortal/src/index.ts +3 -0
- package/immortal/src/make-molecule.ts +222 -0
- package/immortal/src/molecule.ts +167 -0
- package/immortal/src/seek-state.ts +73 -0
- package/internal/dist/index.cjs +1242 -837
- package/internal/dist/index.d.ts +135 -22
- package/internal/dist/index.js +1215 -838
- package/internal/src/atom/create-regular-atom.ts +0 -2
- package/internal/src/atom/create-standalone-atom.ts +6 -2
- package/internal/src/atom/dispose-atom.ts +26 -3
- package/internal/src/families/create-readonly-selector-family.ts +15 -10
- package/internal/src/families/create-regular-atom-family.ts +20 -21
- package/internal/src/families/create-writable-selector-family.ts +13 -9
- package/{src/dispose.ts → internal/src/families/dispose-from-store.ts} +7 -4
- package/internal/src/families/find-in-store.ts +11 -6
- package/internal/src/families/index.ts +3 -0
- package/internal/src/families/init-family-member.ts +112 -0
- package/internal/src/families/seek-in-store.ts +123 -0
- package/internal/src/get-state/get-from-store.ts +2 -2
- package/internal/src/ingest-updates/index.ts +1 -0
- package/internal/src/ingest-updates/ingest-creation-disposal.ts +104 -0
- package/internal/src/ingest-updates/ingest-transaction-update.ts +26 -4
- package/internal/src/mutable/create-mutable-atom-family.ts +22 -24
- package/internal/src/mutable/create-mutable-atom.ts +3 -3
- package/internal/src/mutable/get-json-family.ts +2 -2
- package/internal/src/mutable/get-json-token.ts +26 -12
- package/internal/src/mutable/tracker-family.ts +21 -19
- package/internal/src/not-found-error.ts +16 -3
- package/internal/src/selector/create-readonly-selector.ts +2 -3
- package/internal/src/selector/create-standalone-selector.ts +6 -2
- package/internal/src/selector/create-writable-selector.ts +2 -3
- package/internal/src/selector/dispose-selector.ts +68 -24
- package/internal/src/selector/register-selector.ts +10 -5
- package/internal/src/set-state/set-into-store.ts +2 -2
- package/internal/src/set-state/stow-update.ts +5 -1
- package/internal/src/store/deposit.ts +41 -7
- package/internal/src/store/index.ts +0 -1
- package/internal/src/store/store.ts +29 -5
- package/internal/src/store/withdraw.ts +28 -1
- package/internal/src/subscribe/subscribe-to-state.ts +2 -2
- package/internal/src/timeline/add-atom-to-timeline.ts +206 -182
- package/internal/src/timeline/create-timeline.ts +181 -60
- package/internal/src/timeline/time-travel.ts +20 -0
- package/internal/src/transaction/apply-transaction.ts +2 -12
- package/internal/src/transaction/build-transaction.ts +16 -2
- package/introspection/dist/index.cjs +40 -53
- package/introspection/dist/index.js +40 -53
- package/introspection/src/attach-atom-index.ts +38 -48
- package/introspection/src/attach-selector-index.ts +45 -50
- package/introspection/src/attach-timeline-family.ts +1 -0
- package/json/dist/index.cjs +40 -6
- package/json/dist/index.js +44 -9
- package/json/src/select-json-family.ts +47 -9
- package/package.json +30 -10
- package/react/dist/index.cjs +1 -1
- package/react/dist/index.js +1 -1
- package/react/src/use-json.ts +1 -1
- package/react-devtools/dist/index.cjs +69 -57
- package/react-devtools/dist/index.js +62 -49
- package/react-devtools/src/StateIndex.tsx +2 -1
- package/react-devtools/src/TimelineIndex.tsx +17 -14
- package/react-devtools/src/TransactionIndex.tsx +7 -7
- package/react-devtools/src/Updates.tsx +41 -32
- package/realtime-client/dist/index.cjs +3 -3
- package/realtime-client/dist/index.js +3 -3
- package/realtime-client/src/pull-mutable-atom-family-member.ts +1 -1
- package/realtime-client/src/pull-mutable-atom.ts +1 -1
- package/realtime-client/src/sync-continuity.ts +1 -2
- package/realtime-react/dist/index.cjs +1 -1
- package/realtime-react/dist/index.js +1 -1
- package/realtime-server/dist/index.cjs +39 -27
- package/realtime-server/dist/index.d.ts +1 -1
- package/realtime-server/dist/index.js +27 -16
- package/realtime-server/src/realtime-continuity-synchronizer.ts +5 -3
- package/realtime-server/src/realtime-mutable-family-provider.ts +2 -1
- package/realtime-server/src/realtime-mutable-provider.ts +1 -1
- package/realtime-server/src/realtime-server-stores/server-sync-store.ts +21 -11
- package/realtime-testing/dist/index.cjs +7 -2
- package/realtime-testing/dist/index.js +8 -5
- package/realtime-testing/src/setup-realtime-test.tsx +5 -2
- package/src/atom.ts +19 -7
- package/src/dispose-state.ts +10 -0
- package/src/index.ts +5 -2
- package/src/selector.ts +13 -7
- package/src/silo.ts +3 -3
- package/src/subscribe.ts +8 -4
- package/src/timeline.ts +18 -1
- package/src/transaction.ts +59 -4
- package/dist/chunk-BF4MVQF6.js +0 -44
- package/internal/src/store/withdraw-new-family-member.ts +0 -69
- /package/{src → ephemeral/src}/find-state.ts +0 -0
package/internal/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
|
-
import { Func, TransactionToken, TransactionUpdate, TransactionOptions, TransactorsWithRunAndEnv, RegularAtomToken, MutableAtomToken, AtomToken, WritableSelectorToken, ReadonlySelectorToken, SelectorToken, WritableToken, ReadableToken, TimelineManageable, StateUpdate, TokenType, FamilyMetadata, TimelineUpdate, TimelineOptions, TimelineToken, WritableSelectorFamily, MutableAtomFamily, RegularAtomFamily, ReadonlySelectorFamily, AtomIOLogger, Logger, AtomFamily, SelectorFamily,
|
|
1
|
+
import { Func, TransactionToken, TransactionUpdate, TransactionOptions, TransactorsWithRunAndEnv, RegularAtomToken, MutableAtomToken, AtomToken, WritableSelectorToken, ReadonlySelectorToken, SelectorToken, WritableToken, ReadableToken, StateCreation, StateDisposal, MutableAtomFamilyToken, RegularAtomFamilyToken, WritableSelectorFamilyToken, ReadonlySelectorFamilyToken, WritableFamilyToken, ReadableFamilyToken, Flat, MoleculeCreation, MoleculeDisposal, TimelineManageable, StateUpdate, TokenType, FamilyMetadata, TimelineUpdate, TimelineOptions, TimelineToken, WritableSelectorFamily, MutableAtomFamily, RegularAtomFamily, ReadonlySelectorFamily, AtomIOLogger, Logger, AtomFamily, SelectorFamily, AtomFamilyToken, SelectorFamilyToken, MutableAtomOptions, MutableAtomFamilyOptions, RegularAtomOptions, RegularAtomFamilyOptions, ReadonlySelectorFamilyOptions, WritableSelectorFamilyOptions, KeyedStateUpdate, ReadonlySelectorOptions, WritableSelectorOptions, Transactors, UpdateHandler, TransactionUpdateHandler } from 'atom.io';
|
|
2
2
|
import { Json, JsonInterface } from 'atom.io/json';
|
|
3
|
+
import { Molecule as Molecule$1, MoleculeToken as MoleculeToken$1, MoleculeFamily as MoleculeFamily$1, MoleculeFamilyToken as MoleculeFamilyToken$1 } from 'atom.io/immortal';
|
|
4
|
+
import * as Internal from 'atom.io/internal';
|
|
5
|
+
import { Store as Store$1, Subject as Subject$1, Transceiver as Transceiver$1 } from 'atom.io/internal';
|
|
6
|
+
import { Join, JoinToken } from 'atom.io/data';
|
|
3
7
|
|
|
4
8
|
type primitive = boolean | number | string | null;
|
|
5
9
|
|
|
@@ -146,9 +150,70 @@ declare function deposit<T>(state: WritableSelector<T>): WritableSelectorToken<T
|
|
|
146
150
|
declare function deposit<T>(state: ReadonlySelector<T>): ReadonlySelectorToken<T>;
|
|
147
151
|
declare function deposit<T>(state: Selector<T>): SelectorToken<T>;
|
|
148
152
|
declare function deposit<T>(state: WritableState<T>): WritableToken<T>;
|
|
153
|
+
declare function deposit<K extends Json.Serializable, S extends {
|
|
154
|
+
[key: string]: any;
|
|
155
|
+
}, P extends any[]>(state: Molecule$1<K>): MoleculeToken$1<K, S, P>;
|
|
156
|
+
declare function deposit<K extends Json.Serializable, S extends {
|
|
157
|
+
[key: string]: any;
|
|
158
|
+
}, P extends any[]>(state: MoleculeFamily$1<K, S, P>): MoleculeFamilyToken$1<K, S, P>;
|
|
149
159
|
declare function deposit<T extends Func>(state: Transaction<T>): TransactionToken<T>;
|
|
150
160
|
declare function deposit<T>(state: ReadableState<T>): ReadableToken<T>;
|
|
151
161
|
|
|
162
|
+
declare class Molecule<Key extends Json.Serializable> {
|
|
163
|
+
readonly store: Store$1;
|
|
164
|
+
readonly token: MoleculeToken<Key, any, any>;
|
|
165
|
+
readonly type = "molecule";
|
|
166
|
+
get key(): Key;
|
|
167
|
+
readonly family?: MoleculeFamilyToken<Key, any, any>;
|
|
168
|
+
readonly above: Molecule<any>[];
|
|
169
|
+
readonly below: Molecule<any>[];
|
|
170
|
+
readonly tokens: ReadableToken<any>[];
|
|
171
|
+
readonly joins: Join<any, any, any, any>[];
|
|
172
|
+
readonly subject: Subject$1<StateCreation<any> | StateDisposal<any>>;
|
|
173
|
+
constructor(store: Store$1, above: Molecule<any> | Molecule<any>[] | undefined, token: MoleculeToken<Key, any, any>);
|
|
174
|
+
bond<T extends Transceiver$1<any>, J extends Json.Serializable, K extends string>(token: MutableAtomFamilyToken<T, J, K>): MutableAtomToken<T, J>;
|
|
175
|
+
bond<T, K extends Key>(token: RegularAtomFamilyToken<T, K>): RegularAtomToken<T>;
|
|
176
|
+
bond<T, K extends Json.Serializable>(token: WritableSelectorFamilyToken<T, K>): WritableSelectorToken<T>;
|
|
177
|
+
bond<T, K extends Json.Serializable>(token: ReadonlySelectorFamilyToken<T, K>): ReadonlySelectorToken<T>;
|
|
178
|
+
bond<T, K extends Json.Serializable>(token: WritableFamilyToken<T, K>): WritableToken<T>;
|
|
179
|
+
bond<T, K extends Json.Serializable>(token: ReadableFamilyToken<T, K>): ReadableToken<T>;
|
|
180
|
+
spawn<K extends Json.Serializable>(key: K): Molecule<K>;
|
|
181
|
+
with(molecule: Molecule<any>): (key: string) => Molecule<any>;
|
|
182
|
+
detach(child: Molecule<any>): void;
|
|
183
|
+
claim(child: Molecule<any>): void;
|
|
184
|
+
clear(): void;
|
|
185
|
+
join(token: JoinToken<any, any, any, any>): void;
|
|
186
|
+
private [Symbol.dispose];
|
|
187
|
+
dispose: () => void;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
type MoleculeConstructor<Key extends Json.Serializable, Struct extends {
|
|
191
|
+
[key: string]: any;
|
|
192
|
+
}, Params extends any[]> = new (context: Molecule<any>[], token: MoleculeToken<Key, Struct, Params>, ...params: Params) => Molecule<Key> & Struct;
|
|
193
|
+
type MoleculeFamilyToken<Key extends Json.Serializable, Struct extends {
|
|
194
|
+
[key: string]: any;
|
|
195
|
+
}, Params extends any[]> = {
|
|
196
|
+
key: string;
|
|
197
|
+
type: `molecule_family`;
|
|
198
|
+
__K?: Key;
|
|
199
|
+
__S?: Struct;
|
|
200
|
+
__P?: Params;
|
|
201
|
+
};
|
|
202
|
+
type MoleculeFamily<Key extends Json.Serializable, Struct extends {
|
|
203
|
+
[key: string]: any;
|
|
204
|
+
}, Params extends any[]> = Flat<MoleculeFamilyToken<Key, Struct, Params> & {
|
|
205
|
+
subject: Internal.Subject<MoleculeCreation<Key> | MoleculeDisposal<Key>>;
|
|
206
|
+
}> & MoleculeConstructor<Key, Struct, Params>;
|
|
207
|
+
type MoleculeToken<Key extends Json.Serializable, Struct extends {
|
|
208
|
+
[key: string]: any;
|
|
209
|
+
}, Params extends any[]> = {
|
|
210
|
+
key: Key;
|
|
211
|
+
type: `molecule`;
|
|
212
|
+
family?: MoleculeFamilyToken<Key, Struct, Params>;
|
|
213
|
+
__S?: Struct;
|
|
214
|
+
__P?: Params;
|
|
215
|
+
};
|
|
216
|
+
|
|
152
217
|
interface Lineage {
|
|
153
218
|
parent: typeof this | null;
|
|
154
219
|
child: typeof this | null;
|
|
@@ -169,34 +234,47 @@ declare const closeOperation: (store: Store) => void;
|
|
|
169
234
|
declare const isDone: (key: string, store: Store) => boolean;
|
|
170
235
|
declare const markDone: (key: string, store: Store) => void;
|
|
171
236
|
|
|
172
|
-
type TimelineAtomUpdate<ManagedAtom extends TimelineManageable> = StateUpdate<TokenType<ManagedAtom>> & {
|
|
237
|
+
type TimelineAtomUpdate<ManagedAtom extends TimelineManageable> = Flat<StateUpdate<TokenType<ManagedAtom>> & {
|
|
173
238
|
key: string;
|
|
174
239
|
type: `atom_update`;
|
|
175
240
|
timestamp: number;
|
|
176
241
|
family?: FamilyMetadata;
|
|
177
|
-
}
|
|
242
|
+
}>;
|
|
178
243
|
type TimelineSelectorUpdate<ManagedAtom extends TimelineManageable> = {
|
|
179
244
|
key: string;
|
|
180
245
|
type: `selector_update`;
|
|
181
246
|
timestamp: number;
|
|
182
247
|
atomUpdates: Omit<TimelineAtomUpdate<ManagedAtom>, `timestamp`>[];
|
|
183
248
|
};
|
|
184
|
-
type TimelineTransactionUpdate = TransactionUpdate<Func> & {
|
|
249
|
+
type TimelineTransactionUpdate = Flat<TransactionUpdate<Func> & {
|
|
185
250
|
key: string;
|
|
186
251
|
type: `transaction_update`;
|
|
187
252
|
timestamp: number;
|
|
188
|
-
}
|
|
253
|
+
}>;
|
|
254
|
+
type TimelineStateCreation<T extends ReadableToken<any>> = Flat<StateCreation<T> & {
|
|
255
|
+
timestamp: number;
|
|
256
|
+
}>;
|
|
257
|
+
type TimelineStateDisposal<T extends ReadableToken<any>> = Flat<StateDisposal<T> & {
|
|
258
|
+
timestamp: number;
|
|
259
|
+
}>;
|
|
260
|
+
type TimelineMoleculeCreation<Key extends Json.Serializable> = Flat<MoleculeCreation<Key> & {
|
|
261
|
+
timestamp: number;
|
|
262
|
+
}>;
|
|
263
|
+
type TimelineMoleculeDisposal<Key extends Json.Serializable> = Flat<MoleculeDisposal<Key> & {
|
|
264
|
+
timestamp: number;
|
|
265
|
+
}>;
|
|
189
266
|
type Timeline<ManagedAtom extends TimelineManageable> = {
|
|
190
267
|
type: `timeline`;
|
|
191
268
|
key: string;
|
|
192
269
|
at: number;
|
|
193
|
-
shouldCapture?: (update: TimelineUpdate<
|
|
270
|
+
shouldCapture?: (update: TimelineUpdate<ManagedAtom>, timeline: Timeline<ManagedAtom>) => boolean;
|
|
194
271
|
timeTraveling: `into_future` | `into_past` | null;
|
|
195
272
|
history: TimelineUpdate<ManagedAtom>[];
|
|
196
273
|
selectorTime: number | null;
|
|
197
274
|
transactionKey: string | null;
|
|
198
275
|
install: (store: Store) => void;
|
|
199
|
-
subject: Subject<
|
|
276
|
+
subject: Subject<TimelineUpdate<ManagedAtom> | `redo` | `undo`>;
|
|
277
|
+
subscriptions: Map<string, () => void>;
|
|
200
278
|
};
|
|
201
279
|
declare function createTimeline<ManagedAtom extends TimelineManageable>(options: TimelineOptions<ManagedAtom>, store: Store, data?: Timeline<ManagedAtom>): TimelineToken<ManagedAtom>;
|
|
202
280
|
|
|
@@ -221,6 +299,9 @@ declare class Store implements Lineage {
|
|
|
221
299
|
selectorGraph: Junction<"upstreamSelectorKey", "downstreamSelectorKey", {
|
|
222
300
|
source: string;
|
|
223
301
|
}>;
|
|
302
|
+
molecules: Map<string, Molecule$1<any>>;
|
|
303
|
+
moleculeFamilies: Map<string, MoleculeFamily<any, any, any>>;
|
|
304
|
+
miscResources: Map<string, Disposable>;
|
|
224
305
|
on: {
|
|
225
306
|
atomCreation: Subject<AtomToken<unknown>>;
|
|
226
307
|
atomDisposal: Subject<AtomToken<unknown>>;
|
|
@@ -230,15 +311,19 @@ declare class Store implements Lineage {
|
|
|
230
311
|
transactionCreation: Subject<TransactionToken<Func>>;
|
|
231
312
|
transactionApplying: StatefulSubject<TransactionProgress<Func> | null>;
|
|
232
313
|
operationClose: Subject<OperationProgress>;
|
|
314
|
+
moleculeCreationStart: Subject<MoleculeToken<any, any, any>>;
|
|
315
|
+
moleculeCreationDone: Subject<MoleculeToken<any, any, any>>;
|
|
316
|
+
moleculeDisposal: Subject<MoleculeToken<any, any, any>>;
|
|
233
317
|
};
|
|
234
318
|
operation: OperationProgress;
|
|
235
319
|
transactionMeta: TransactionEpoch | TransactionProgress<Func>;
|
|
236
320
|
config: {
|
|
237
321
|
name: string;
|
|
322
|
+
lifespan: `ephemeral` | `immortal`;
|
|
238
323
|
};
|
|
239
324
|
loggers: AtomIOLogger[];
|
|
240
325
|
logger: Logger;
|
|
241
|
-
constructor(
|
|
326
|
+
constructor(config: Store[`config`], store?: Store | null);
|
|
242
327
|
}
|
|
243
328
|
declare const IMPLICIT: {
|
|
244
329
|
STORE_INTERNAL: Store | undefined;
|
|
@@ -246,7 +331,7 @@ declare const IMPLICIT: {
|
|
|
246
331
|
};
|
|
247
332
|
declare const clearStore: (store: Store) => void;
|
|
248
333
|
|
|
249
|
-
type Withdrawable = Atom<any> | AtomFamily<any, any> | MutableAtom<any, any> | MutableAtomFamily<any, any, any> | ReadableState<any> | ReadonlySelector<any> | ReadonlySelectorFamily<any, any> | RegularAtom<any> | RegularAtomFamily<any, any> | Selector<any> | SelectorFamily<any, any> | Timeline<any> | Transaction<any> | WritableSelector<any> | WritableSelectorFamily<any, any> | WritableState<any>;
|
|
334
|
+
type Withdrawable = Atom<any> | AtomFamily<any, any> | Molecule$1<any> | MoleculeFamily$1<any, any, any> | MutableAtom<any, any> | MutableAtomFamily<any, any, any> | ReadableState<any> | ReadonlySelector<any> | ReadonlySelectorFamily<any, any> | RegularAtom<any> | RegularAtomFamily<any, any> | Selector<any> | SelectorFamily<any, any> | Timeline<any> | Transaction<any> | WritableSelector<any> | WritableSelectorFamily<any, any> | WritableState<any>;
|
|
250
335
|
declare function withdraw<T>(token: RegularAtomToken<T>, store: Store): RegularAtom<T>;
|
|
251
336
|
declare function withdraw<T extends Transceiver<any>>(token: MutableAtomToken<T, any>, store: Store): MutableAtom<T, any>;
|
|
252
337
|
declare function withdraw<T>(token: AtomToken<T>, store: Store): Atom<T>;
|
|
@@ -261,15 +346,15 @@ declare function withdraw<T, K extends Json.Serializable>(token: AtomFamilyToken
|
|
|
261
346
|
declare function withdraw<T, K extends Json.Serializable>(token: ReadonlySelectorFamilyToken<T, K>, store: Store): ReadonlySelectorFamily<T, any>;
|
|
262
347
|
declare function withdraw<T, K extends Json.Serializable>(token: WritableSelectorFamilyToken<T, K>, store: Store): WritableSelectorFamily<T, any>;
|
|
263
348
|
declare function withdraw<T, K extends Json.Serializable>(token: SelectorFamilyToken<T, K>, store: Store): SelectorFamily<T, any>;
|
|
349
|
+
declare function withdraw<K extends Json.Serializable, S extends {
|
|
350
|
+
[key: string]: any;
|
|
351
|
+
}, P extends any[]>(token: MoleculeToken$1<K, S, P>, store: Store): Molecule$1<K> & S;
|
|
352
|
+
declare function withdraw<K extends Json.Serializable, S extends {
|
|
353
|
+
[key: string]: any;
|
|
354
|
+
}, P extends any[]>(token: MoleculeFamilyToken$1<K, S, P>, store: Store): MoleculeFamily$1<K, S, P>;
|
|
264
355
|
declare function withdraw<T extends Func>(token: TransactionToken<T>, store: Store): Transaction<T extends Func ? T : never>;
|
|
265
356
|
declare function withdraw<T>(token: TimelineToken<T>, store: Store): Timeline<T extends TimelineManageable ? T : never>;
|
|
266
357
|
|
|
267
|
-
declare function withdrawOrCreate<T>(token: RegularAtomToken<T>, store: Store): Atom<T>;
|
|
268
|
-
declare function withdrawOrCreate<T>(token: WritableSelectorToken<T>, store: Store): WritableSelector<T>;
|
|
269
|
-
declare function withdrawOrCreate<T>(token: ReadonlySelectorToken<T>, store: Store): ReadonlySelector<T>;
|
|
270
|
-
declare function withdrawOrCreate<T>(token: WritableToken<T>, store: Store): WritableState<T>;
|
|
271
|
-
declare function withdrawOrCreate<T>(token: ReadableToken<T>, store: Store): ReadableState<T>;
|
|
272
|
-
|
|
273
358
|
interface Transceiver<Signal extends Json.Serializable> {
|
|
274
359
|
do: (update: Signal) => number | `OUT_OF_RANGE` | null;
|
|
275
360
|
undo: (update: Signal) => void;
|
|
@@ -285,9 +370,9 @@ declare function createMutableAtom<T extends Transceiver<any>, J extends Json.Se
|
|
|
285
370
|
|
|
286
371
|
declare function createMutableAtomFamily<T extends Transceiver<any>, J extends Json.Serializable, K extends string>(options: MutableAtomFamilyOptions<T, J, K>, store: Store): MutableAtomFamily<T, J, K>;
|
|
287
372
|
|
|
288
|
-
declare const getJsonFamily: <Core extends Transceiver<Json.Serializable>, SerializableCore extends Json.Serializable, Key extends string>(mutableAtomFamily:
|
|
373
|
+
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>;
|
|
289
374
|
|
|
290
|
-
declare const getJsonToken: <Core extends Transceiver<any>, SerializableCore extends Json.Serializable>(mutableAtomToken: MutableAtomToken<Core, SerializableCore
|
|
375
|
+
declare const getJsonToken: <Core extends Transceiver<any>, SerializableCore extends Json.Serializable>(mutableAtomToken: MutableAtomToken<Core, SerializableCore>, store: Store) => WritableSelectorToken<SerializableCore>;
|
|
291
376
|
|
|
292
377
|
declare const getUpdateToken: <Core extends Transceiver<any>, SerializableCore extends Json.Serializable>(mutableAtomToken: MutableAtomToken<Core, SerializableCore>) => RegularAtomToken<Signal<Core>>;
|
|
293
378
|
|
|
@@ -314,9 +399,9 @@ declare class Tracker<Mutable extends Transceiver<any>> {
|
|
|
314
399
|
|
|
315
400
|
declare class FamilyTracker<Core extends Transceiver<any>, FamilyMemberKey extends Json.Serializable> {
|
|
316
401
|
private readonly Update;
|
|
317
|
-
readonly
|
|
318
|
-
readonly
|
|
319
|
-
constructor(
|
|
402
|
+
readonly latestUpdateAtoms: RegularAtomFamily<typeof this.Update | null, FamilyMemberKey>;
|
|
403
|
+
readonly mutableAtoms: MutableAtomFamily<Core, any, FamilyMemberKey>;
|
|
404
|
+
constructor(mutableAtoms: MutableAtomFamily<Core, any, FamilyMemberKey>, store: Store);
|
|
320
405
|
}
|
|
321
406
|
|
|
322
407
|
declare function arbitrary(random?: () => number): string;
|
|
@@ -366,6 +451,8 @@ declare function createRegularAtomFamily<T, K extends Json.Serializable>(options
|
|
|
366
451
|
declare function createSelectorFamily<T, K extends Json.Serializable>(options: WritableSelectorFamilyOptions<T, K>, store: Store): WritableSelectorFamily<T, K>;
|
|
367
452
|
declare function createSelectorFamily<T, K extends Json.Serializable>(options: ReadonlySelectorFamilyOptions<T, K>, store: Store): ReadonlySelectorFamily<T, K>;
|
|
368
453
|
|
|
454
|
+
declare function disposeFromStore(token: MoleculeToken$1<any, any, any> | ReadableToken<any>, store?: Internal.Store): void;
|
|
455
|
+
|
|
369
456
|
declare function findInStore<T extends Transceiver<any>, J extends Json.Serializable, K extends Json.Serializable, Key extends K>(token: MutableAtomFamilyToken<T, J, K>, key: Key, store: Store): MutableAtomToken<T, J>;
|
|
370
457
|
declare function findInStore<T, K extends Json.Serializable, Key extends K>(token: RegularAtomFamilyToken<T, K>, key: Key, store: Store): RegularAtomToken<T>;
|
|
371
458
|
declare function findInStore<T, K extends Json.Serializable, Key extends K>(token: AtomFamilyToken<T, K>, key: Key, store: Store): AtomToken<T>;
|
|
@@ -375,6 +462,27 @@ declare function findInStore<T, K extends Json.Serializable, Key extends K>(toke
|
|
|
375
462
|
declare function findInStore<T, K extends Json.Serializable, Key extends K>(token: WritableFamilyToken<T, K>, key: Key, store: Store): WritableToken<T>;
|
|
376
463
|
declare function findInStore<T, K extends Json.Serializable, Key extends K>(token: ReadableFamilyToken<T, K>, key: Key, store: Store): ReadableToken<T>;
|
|
377
464
|
|
|
465
|
+
declare function initFamilyMember<T extends Transceiver<any>, J extends Json.Serializable, K extends Json.Serializable, Key extends K>(token: MutableAtomFamilyToken<T, J, K>, key: Key, store: Store): MutableAtomToken<T, J>;
|
|
466
|
+
declare function initFamilyMember<T, K extends Json.Serializable, Key extends K>(token: RegularAtomFamilyToken<T, K>, key: Key, store: Store): RegularAtomToken<T>;
|
|
467
|
+
declare function initFamilyMember<T, K extends Json.Serializable, Key extends K>(token: AtomFamilyToken<T, K>, key: Key, store: Store): AtomToken<T>;
|
|
468
|
+
declare function initFamilyMember<T, K extends Json.Serializable, Key extends K>(token: WritableSelectorFamilyToken<T, K>, key: Key, store: Store): WritableSelectorToken<T>;
|
|
469
|
+
declare function initFamilyMember<T, K extends Json.Serializable, Key extends K>(token: ReadonlySelectorFamilyToken<T, K>, key: Key, store: Store): ReadonlySelectorToken<T>;
|
|
470
|
+
declare function initFamilyMember<T, K extends Json.Serializable, Key extends K>(token: SelectorFamilyToken<T, K>, key: Key, store: Store): SelectorToken<T>;
|
|
471
|
+
declare function initFamilyMember<T, K extends Json.Serializable, Key extends K>(token: WritableFamilyToken<T, K>, key: Key, store: Store): WritableToken<T>;
|
|
472
|
+
declare function initFamilyMember<T, K extends Json.Serializable, Key extends K>(token: ReadableFamilyToken<T, K>, key: Key, store: Store): ReadableToken<T>;
|
|
473
|
+
|
|
474
|
+
declare function seekInStore<T extends Transceiver<any>, J extends Json.Serializable, K extends Json.Serializable, Key extends K>(token: MutableAtomFamilyToken<T, J, K>, key: Key, store: Store): MutableAtomToken<T, J> | undefined;
|
|
475
|
+
declare function seekInStore<T, K extends Json.Serializable, Key extends K>(token: RegularAtomFamilyToken<T, K>, key: Key, store: Store): RegularAtomToken<T> | undefined;
|
|
476
|
+
declare function seekInStore<T, K extends Json.Serializable, Key extends K>(token: AtomFamilyToken<T, K>, key: Key, store: Store): AtomToken<T> | undefined;
|
|
477
|
+
declare function seekInStore<T, K extends Json.Serializable, Key extends K>(token: WritableSelectorFamilyToken<T, K>, key: Key, store: Store): WritableSelectorToken<T> | undefined;
|
|
478
|
+
declare function seekInStore<T, K extends Json.Serializable, Key extends K>(token: ReadonlySelectorFamilyToken<T, K>, key: Key, store: Store): ReadonlySelectorToken<T> | undefined;
|
|
479
|
+
declare function seekInStore<T, K extends Json.Serializable, Key extends K>(token: SelectorFamilyToken<T, K>, key: Key, store: Store): SelectorToken<T> | undefined;
|
|
480
|
+
declare function seekInStore<T, K extends Json.Serializable, Key extends K>(token: WritableFamilyToken<T, K>, key: Key, store: Store): WritableToken<T> | undefined;
|
|
481
|
+
declare function seekInStore<T, K extends Json.Serializable, Key extends K>(token: ReadableFamilyToken<T, K>, key: Key, store: Store): ReadableToken<T> | undefined;
|
|
482
|
+
declare function seekInStore<K extends Json.Serializable, S extends {
|
|
483
|
+
[key: string]: any;
|
|
484
|
+
}>(token: MoleculeFamilyToken$1<K, S, any[]>, key: K, store: Store): MoleculeToken$1<K, S, any[]> | undefined;
|
|
485
|
+
|
|
378
486
|
type EnvironmentData = {
|
|
379
487
|
window: typeof window | undefined;
|
|
380
488
|
global: typeof global | undefined;
|
|
@@ -388,6 +496,11 @@ declare const readOrComputeValue: <T>(state: ReadableState<T>, target: Store) =>
|
|
|
388
496
|
|
|
389
497
|
declare function ingestAtomUpdate(applying: `newValue` | `oldValue`, atomUpdate: KeyedStateUpdate<any>, store: Store): void;
|
|
390
498
|
|
|
499
|
+
declare function ingestCreationEvent(update: StateCreation<any>, applying: `newValue` | `oldValue`, store: Store): void;
|
|
500
|
+
declare function ingestDisposalEvent(update: StateDisposal<any>, applying: `newValue` | `oldValue`, store: Store): void;
|
|
501
|
+
declare function ingestMoleculeCreationEvent(update: MoleculeCreation<any>, applying: `newValue` | `oldValue`, store: Store): void;
|
|
502
|
+
declare function ingestMoleculeDisposalEvent(update: MoleculeDisposal<any>, applying: `newValue` | `oldValue`, store: Store): void;
|
|
503
|
+
|
|
391
504
|
declare function ingestSelectorUpdate(applying: `newValue` | `oldValue`, selectorUpdate: TimelineSelectorUpdate<any>, store: Store): void;
|
|
392
505
|
|
|
393
506
|
declare function ingestTransactionUpdate(applying: `newValue` | `oldValue`, transactionUpdate: TransactionUpdate<any>, store: Store): void;
|
|
@@ -421,7 +534,7 @@ declare class LazyMap<K, V> extends Map<K, V> {
|
|
|
421
534
|
delete(key: K): boolean;
|
|
422
535
|
}
|
|
423
536
|
|
|
424
|
-
type AtomIOToken = ReadableFamilyToken<any, any> | ReadableToken<any> | TimelineToken<any> | TransactionToken<any>;
|
|
537
|
+
type AtomIOToken = MoleculeFamilyToken$1<any, any, any> | MoleculeToken$1<any, any, any> | ReadableFamilyToken<any, any> | ReadableToken<any> | TimelineToken<any> | TransactionToken<any>;
|
|
425
538
|
declare class NotFoundError extends Error {
|
|
426
539
|
constructor(token: AtomIOToken, store: Store);
|
|
427
540
|
}
|
|
@@ -492,4 +605,4 @@ type Selector<T> = ReadonlySelector<T> | WritableSelector<T>;
|
|
|
492
605
|
type WritableState<T> = Atom<T> | WritableSelector<T>;
|
|
493
606
|
type ReadableState<T> = Atom<T> | Selector<T>;
|
|
494
607
|
|
|
495
|
-
export { type Atom, type AtomIOState, type AtomKey, type ChildStore, type EnvironmentData, FamilyTracker, Future, IMPLICIT, LazyMap, type Lineage, type Modify, type MutableAtom, NotFoundError, type OperationProgress, type ReadableState, type ReadonlySelector, type ReadonlySelectorKey, type RegularAtom, type RootStore, type Selector, type SelectorKey, type Signal, type StateKey, StatefulSubject, Store, Subject, TRANSACTION_PHASES, type Timeline, type TimelineAtomUpdate, type TimelineSelectorUpdate, type TimelineTransactionUpdate, Tracker, type Transaction, type TransactionEpoch, type TransactionPhase, type TransactionProgress, type Transceiver, type TransceiverMode, type Withdrawable, type WritableSelector, type WritableState, abortTransaction, actUponStore, addAtomToTimeline, applyTransaction, arbitrary, assignTransactionToContinuity, become, buildTransaction, cacheValue, clearStore, closeOperation, createAtomFamily, createMutableAtom, createMutableAtomFamily, createReadonlySelector, createReadonlySelectorFamily, createRegularAtom, createRegularAtomFamily, createSelectorFamily, createStandaloneAtom, createStandaloneSelector, createTimeline, createTransaction, createWritableSelector, deposit, disposeAtom, disposeSelector, evictCachedValue, findInStore, getContinuityKey, getEnvironmentData, getEpochNumberOfAction, getEpochNumberOfContinuity, getFromStore, getJsonFamily, getJsonToken, getSelectorDependencyKeys, getUpdateToken, ingestAtomUpdate, ingestSelectorUpdate, ingestTransactionUpdate, isAtomDefault, isAtomKey, isChildStore, isDone, isMutable, isReadonlySelectorKey, isRootStore, isSelectorKey, isStateKey, isTransceiver, markAtomAsDefault, markAtomAsNotDefault, markDone, newest, openOperation, readCachedValue, readOrComputeValue, registerSelector, setAtomOrSelector, setEpochNumberOfAction, setEpochNumberOfContinuity, setIntoStore, subscribeToRootAtoms, subscribeToState, subscribeToTimeline, subscribeToTransaction, timeTravel, traceAllSelectorAtoms, traceSelectorAtoms, updateSelectorAtoms, withdraw
|
|
608
|
+
export { type Atom, type AtomIOState, type AtomKey, type ChildStore, type EnvironmentData, FamilyTracker, Future, IMPLICIT, LazyMap, type Lineage, type Modify, type MutableAtom, NotFoundError, type OperationProgress, type ReadableState, type ReadonlySelector, type ReadonlySelectorKey, type RegularAtom, type RootStore, type Selector, type SelectorKey, type Signal, type StateKey, StatefulSubject, Store, Subject, TRANSACTION_PHASES, type Timeline, type TimelineAtomUpdate, type TimelineMoleculeCreation, type TimelineMoleculeDisposal, type TimelineSelectorUpdate, type TimelineStateCreation, type TimelineStateDisposal, type TimelineTransactionUpdate, Tracker, type Transaction, type TransactionEpoch, type TransactionPhase, type TransactionProgress, type Transceiver, type TransceiverMode, type Withdrawable, type WritableSelector, type WritableState, abortTransaction, actUponStore, addAtomToTimeline, applyTransaction, arbitrary, assignTransactionToContinuity, become, buildTransaction, cacheValue, clearStore, closeOperation, createAtomFamily, createMutableAtom, createMutableAtomFamily, createReadonlySelector, createReadonlySelectorFamily, createRegularAtom, createRegularAtomFamily, createSelectorFamily, createStandaloneAtom, createStandaloneSelector, createTimeline, createTransaction, createWritableSelector, deposit, disposeAtom, disposeFromStore, disposeSelector, evictCachedValue, findInStore, getContinuityKey, getEnvironmentData, getEpochNumberOfAction, getEpochNumberOfContinuity, getFromStore, getJsonFamily, getJsonToken, getSelectorDependencyKeys, getUpdateToken, ingestAtomUpdate, ingestCreationEvent, ingestDisposalEvent, ingestMoleculeCreationEvent, ingestMoleculeDisposalEvent, ingestSelectorUpdate, ingestTransactionUpdate, initFamilyMember, isAtomDefault, isAtomKey, isChildStore, isDone, isMutable, isReadonlySelectorKey, isRootStore, isSelectorKey, isStateKey, isTransceiver, markAtomAsDefault, markAtomAsNotDefault, markDone, newest, openOperation, readCachedValue, readOrComputeValue, registerSelector, seekInStore, setAtomOrSelector, setEpochNumberOfAction, setEpochNumberOfContinuity, setIntoStore, subscribeToRootAtoms, subscribeToState, subscribeToTimeline, subscribeToTransaction, timeTravel, traceAllSelectorAtoms, traceSelectorAtoms, updateSelectorAtoms, withdraw };
|