@oimdb/core 3.9.0 → 3.11.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/README.md +18 -1
- package/dist/index.cjs +761 -458
- package/dist/index.d.cts +341 -125
- package/dist/index.d.ts +341 -125
- package/dist/index.js +755 -457
- package/llms.txt +82 -2
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -90,9 +90,9 @@ declare class OIMEventEmitter<T extends Record<string, unknown>> {
|
|
|
90
90
|
|
|
91
91
|
/**
|
|
92
92
|
* Payload for index update events containing the keys that were modified */
|
|
93
|
-
|
|
93
|
+
type TOIMIndexUpdatePayload<TKey> = {
|
|
94
94
|
keys: readonly TKey[];
|
|
95
|
-
}
|
|
95
|
+
};
|
|
96
96
|
|
|
97
97
|
/**
|
|
98
98
|
* Comparator function for index primary key arrays.
|
|
@@ -297,6 +297,19 @@ declare abstract class OIMEventQueueScheduler {
|
|
|
297
297
|
* Trigger a flush event. Should be called by subclasses when they execute the scheduled flush.
|
|
298
298
|
*/
|
|
299
299
|
protected flush(): void;
|
|
300
|
+
/**
|
|
301
|
+
* Detach a Node timer handle from the event loop, returning it unchanged.
|
|
302
|
+
*
|
|
303
|
+
* A pending flush must never be a reason for a process to stay alive: if
|
|
304
|
+
* nothing else is running there is no UI left to update, and the flush is
|
|
305
|
+
* moot. Without this a scheduled-but-not-yet-run flush keeps Node awake —
|
|
306
|
+
* which is why a test suite that leaves a queue scheduled reports
|
|
307
|
+
* "a worker process has failed to exit gracefully".
|
|
308
|
+
*
|
|
309
|
+
* In the browser `setTimeout` returns a number, which has no `unref`, so the
|
|
310
|
+
* call is guarded and the handle passes straight through.
|
|
311
|
+
*/
|
|
312
|
+
protected unref<THandle>(handle: THandle): THandle;
|
|
300
313
|
}
|
|
301
314
|
|
|
302
315
|
declare abstract class OIMIndexSetBased<TKey extends TOIMKey, TPk extends TOIMKey> extends OIMIndex<TKey, TPk, Set<TOIMAnyEntitySlot<TPk>>> {
|
|
@@ -384,18 +397,34 @@ type TOIMEventQueueOptions = {
|
|
|
384
397
|
* If not provided, flush() must be called manually.
|
|
385
398
|
*/
|
|
386
399
|
scheduler?: OIMEventQueueScheduler;
|
|
400
|
+
/**
|
|
401
|
+
* Handler for an error thrown by a task during flush. When set, the queue
|
|
402
|
+
* treats the error as handled — it is NOT re-raised out of `flush()`. When
|
|
403
|
+
* NOT set, the error propagates (loud by default: uncaught in async/scheduled
|
|
404
|
+
* mode, thrown to the caller of a manual `flush()`).
|
|
405
|
+
*
|
|
406
|
+
* Either way the queue's own state is always restored (one failing task never
|
|
407
|
+
* wedges the queue) and a `FLUSH_ERROR` event is emitted for tooling.
|
|
408
|
+
*/
|
|
409
|
+
onError?: (error: unknown) => void;
|
|
387
410
|
};
|
|
388
411
|
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
412
|
+
/** Payload of the `EOIMEventQueueEventType.FLUSH_ERROR` event. */
|
|
413
|
+
type TOIMFlushError = {
|
|
414
|
+
/** The value a queue task threw (not necessarily an `Error`). */
|
|
415
|
+
error: unknown;
|
|
416
|
+
};
|
|
393
417
|
|
|
394
418
|
/**
|
|
395
419
|
* Event queue that can optionally integrate with a scheduler for automatic flushing.
|
|
396
420
|
*/
|
|
397
421
|
declare class OIMEventQueue {
|
|
398
|
-
readonly emitter: OIMEventEmitter<
|
|
422
|
+
readonly emitter: OIMEventEmitter<{
|
|
423
|
+
1: void;
|
|
424
|
+
0: void;
|
|
425
|
+
2: TOIMFlushError;
|
|
426
|
+
}>;
|
|
427
|
+
protected readonly onError?: (error: unknown) => void;
|
|
399
428
|
protected tasks: Set<() => void>;
|
|
400
429
|
protected tasksSpare: Set<() => void>;
|
|
401
430
|
protected flushing?: Set<() => void>;
|
|
@@ -414,10 +443,14 @@ declare class OIMEventQueue {
|
|
|
414
443
|
cancel(fn: () => void): void;
|
|
415
444
|
get isInFlush(): boolean;
|
|
416
445
|
/**
|
|
417
|
-
* Execute
|
|
446
|
+
* Execute the tasks pending at the moment the flush starts — a single pass,
|
|
447
|
+
* not a drain-to-empty.
|
|
418
448
|
*
|
|
419
|
-
*
|
|
420
|
-
*
|
|
449
|
+
* The pending set is swapped out for an empty spare up front and the flush
|
|
450
|
+
* iterates that captured set. Tasks enqueued during the flush land in the
|
|
451
|
+
* fresh set and run on the NEXT flush, not this one. (Contrast
|
|
452
|
+
* `OIMComputeRuntime.flush()`, which re-reads its bucket per level and so
|
|
453
|
+
* does drain same-level tasks scheduled mid-flush.)
|
|
421
454
|
*/
|
|
422
455
|
flush(): void;
|
|
423
456
|
/**
|
|
@@ -476,6 +509,8 @@ declare class OIMCarrierKeyedEmitter<TKey extends TOIMKey, TCarrier extends IOIM
|
|
|
476
509
|
private readonly subscribedCarriers;
|
|
477
510
|
private dirtyCarriers;
|
|
478
511
|
private isFlushEnqueued;
|
|
512
|
+
private multiCarrierSubscriptions;
|
|
513
|
+
private deliveredPool?;
|
|
479
514
|
constructor(queue: OIMEventQueue, carrierProvider: IOIMCarrierProvider<TKey, TCarrier>);
|
|
480
515
|
subscribeOnKey(key: TKey, handler: TOIMEventHandler<void>): () => void;
|
|
481
516
|
subscribeOnKeys(keys: readonly TKey[], handler: TOIMEventHandler<void>): () => void;
|
|
@@ -771,7 +806,6 @@ declare class OIMReactiveCollection<TEntity extends object, TPk extends TOIMKey>
|
|
|
771
806
|
protected readonly updateEmitter: OIMCarrierKeyedEmitter<TPk, TOIMEntitySlot<TEntity, TPk>>;
|
|
772
807
|
private readonly anyUpdateHandlers;
|
|
773
808
|
private readonly pendingAnyUpdatePks;
|
|
774
|
-
private isAnyUpdateClearPending;
|
|
775
809
|
private isAnyUpdateScheduled;
|
|
776
810
|
constructor(queue: OIMEventQueue, opts?: TOIMCollectionOptions<TEntity, TPk>);
|
|
777
811
|
subscribeOnKey(pk: TPk, handler: TOIMEventHandler<void>): () => void;
|
|
@@ -788,8 +822,8 @@ declare class OIMReactiveCollection<TEntity extends object, TPk extends TOIMKey>
|
|
|
788
822
|
queueLength: number;
|
|
789
823
|
};
|
|
790
824
|
subscribeOnAnyUpdate(handler: (pks: readonly TPk[]) => void): () => void;
|
|
791
|
-
private
|
|
792
|
-
private
|
|
825
|
+
private notifyBatch;
|
|
826
|
+
private notifyBatchMany;
|
|
793
827
|
upsertOneByPk(pk: TPk, entity: Partial<TEntity>): TOIMEntitySlot<TEntity, TPk>;
|
|
794
828
|
upsertOne(entity: TEntity | Partial<TEntity>): TOIMEntitySlot<TEntity, TPk>;
|
|
795
829
|
upsertMany(entities: (TEntity | Partial<TEntity>)[]): TOIMEntitySlot<TEntity, TPk>[];
|
|
@@ -800,7 +834,6 @@ declare class OIMReactiveCollection<TEntity extends object, TPk extends TOIMKey>
|
|
|
800
834
|
clear(): void;
|
|
801
835
|
private trackAnyUpdatePk;
|
|
802
836
|
private trackAnyUpdatePks;
|
|
803
|
-
private trackAnyUpdateClear;
|
|
804
837
|
private ensureAnyUpdateEnqueued;
|
|
805
838
|
private readonly runAnyUpdate;
|
|
806
839
|
destroy(): void;
|
|
@@ -1135,6 +1168,7 @@ declare abstract class OIMOrderedListCommandBuffer<TKey extends TOIMKey, TItem>
|
|
|
1135
1168
|
readonly commandsEventEmitter: OIMUpdateEventEmitter<TKey>;
|
|
1136
1169
|
private readonly unsubscribeAfterFlush;
|
|
1137
1170
|
protected readonly commandsByKey: Map<TKey, TOIMOrderedListCommand<TItem>[]>;
|
|
1171
|
+
private readonly staleResetKeys;
|
|
1138
1172
|
constructor(queue: OIMEventQueue);
|
|
1139
1173
|
/** Current ordered items for `key` (the driver's backing order). */
|
|
1140
1174
|
abstract getItemsByKey(key: TKey): readonly TItem[];
|
|
@@ -1143,6 +1177,13 @@ declare abstract class OIMOrderedListCommandBuffer<TKey extends TOIMKey, TItem>
|
|
|
1143
1177
|
consumeCommands(key: TKey): TOIMOrderedListCommand<TItem>[];
|
|
1144
1178
|
destroy(): void;
|
|
1145
1179
|
private readonly onAfterFlush;
|
|
1180
|
+
/**
|
|
1181
|
+
* Rebuild a deferred leading `reset` from the current order, once, at read
|
|
1182
|
+
* time. All the post-reset edits that were folded in are already reflected
|
|
1183
|
+
* in the driver's backing order, so a single rebuild here is equivalent to
|
|
1184
|
+
* having recomputed the reset on each of those edits.
|
|
1185
|
+
*/
|
|
1186
|
+
private materializeStaleReset;
|
|
1146
1187
|
protected appendCommand(key: TKey, cmd: TOIMOrderedListCommand<TItem>): void;
|
|
1147
1188
|
protected appendResetCommand(key: TKey, items: readonly TItem[]): void;
|
|
1148
1189
|
protected createResetCommand(items: readonly TItem[]): TOIMOrderedListCommand<TItem>;
|
|
@@ -1725,6 +1766,45 @@ declare class OIMCollectionIndexFactory<TEntity extends object, TPk extends TOIM
|
|
|
1725
1766
|
}
|
|
1726
1767
|
declare function createOIMCollectionIndexFactory<TEntity extends object, TPk extends TOIMKey>(queue: OIMEventQueue, collection: OIMReactiveCollection<TEntity, TPk>): OIMCollectionIndexFactory<TEntity, TPk>;
|
|
1727
1768
|
|
|
1769
|
+
type TOIMDerivedCollectionOptions<TDerived extends object, TPk extends TOIMKey> = {
|
|
1770
|
+
/**
|
|
1771
|
+
* Skip a downstream update when a source change leaves the re-derived entity
|
|
1772
|
+
* equal. Default `Object.is` (a fresh object each derive → always different,
|
|
1773
|
+
* so it propagates every source change; pass a shallow/field compare to
|
|
1774
|
+
* memoize finer).
|
|
1775
|
+
*/
|
|
1776
|
+
compare?: (a: TDerived, b: TDerived) => boolean;
|
|
1777
|
+
/** Custom store — pass a trie-driven store when the source PK is composite. */
|
|
1778
|
+
store?: OIMCollectionStore<TDerived, TPk>;
|
|
1779
|
+
/** Build from the source's current contents at construction (default true). */
|
|
1780
|
+
buildInitial?: boolean;
|
|
1781
|
+
};
|
|
1782
|
+
/**
|
|
1783
|
+
* A reactive collection whose entities are derived one-to-one from a source
|
|
1784
|
+
* collection: `derived[pk] = derive(source[pk])`, keyed by the SOURCE pk. It
|
|
1785
|
+
* listens to the source and keeps itself in sync — add / update / remove.
|
|
1786
|
+
*
|
|
1787
|
+
* It is a first-class `OIMReactiveCollection`, so it can be indexed, selected,
|
|
1788
|
+
* and derived-from again (join → join). Maintenance runs on the source's
|
|
1789
|
+
* synchronous UPDATE channel, so a chain of derivations stays consistent within
|
|
1790
|
+
* the same flush; delivery to keyed subscribers is batched on flush as usual.
|
|
1791
|
+
*
|
|
1792
|
+
* Parallels `OIMDerivedCollectionIndex*`: the source stays the single source of
|
|
1793
|
+
* truth, and this needs no compute runtime — it is driven purely by the source's
|
|
1794
|
+
* update events.
|
|
1795
|
+
*/
|
|
1796
|
+
declare class OIMDerivedCollection<TSource extends object, TDerived extends object, TPk extends TOIMKey> extends OIMReactiveCollection<TDerived, TPk> {
|
|
1797
|
+
private readonly source;
|
|
1798
|
+
private readonly derive;
|
|
1799
|
+
private readonly compareDerived;
|
|
1800
|
+
private readonly unsubscribeFromSource;
|
|
1801
|
+
constructor(queue: OIMEventQueue, source: OIMReactiveCollection<TSource, TPk>, derive: (entity: TSource, pk: TPk) => TDerived, opts?: TOIMDerivedCollectionOptions<TDerived, TPk>);
|
|
1802
|
+
rebuildFromSource(): void;
|
|
1803
|
+
destroy(): void;
|
|
1804
|
+
private readonly onSourceUpdate;
|
|
1805
|
+
private syncPk;
|
|
1806
|
+
}
|
|
1807
|
+
|
|
1728
1808
|
/**
|
|
1729
1809
|
* Payload type for update events that contain keys */
|
|
1730
1810
|
type TOIMUpdatePayload<TKey> = {
|
|
@@ -2285,9 +2365,18 @@ declare class OIMPkSelectorFactory<TEntity extends object, TPk extends TOIMKey>
|
|
|
2285
2365
|
}, TPk>;
|
|
2286
2366
|
}
|
|
2287
2367
|
|
|
2368
|
+
interface IOIMEffectDependency {
|
|
2369
|
+
subscribe(onUpdate: () => void): () => void;
|
|
2370
|
+
}
|
|
2371
|
+
|
|
2288
2372
|
/**
|
|
2289
2373
|
* Computative runtime that schedules derived computations by levels and runs them
|
|
2290
2374
|
* on `queue.flush()` boundary (AFTER_FLUSH).
|
|
2375
|
+
*
|
|
2376
|
+
* Buckets are held in an array indexed by topological level (levels are dense
|
|
2377
|
+
* small non-negative ints), not a `Map` — so the hot schedule/drain path indexes
|
|
2378
|
+
* directly with no hashing. The per-level `Set`s are POOLED: kept in their slot
|
|
2379
|
+
* and `.clear()`ed between flushes rather than re-allocated.
|
|
2291
2380
|
*/
|
|
2292
2381
|
declare class OIMComputeRuntime {
|
|
2293
2382
|
readonly queue: OIMEventQueue;
|
|
@@ -2297,7 +2386,36 @@ declare class OIMComputeRuntime {
|
|
|
2297
2386
|
private maxLevel;
|
|
2298
2387
|
private readonly dirtyByLevel;
|
|
2299
2388
|
private readonly afterFlushTasks;
|
|
2389
|
+
private readonly levelByComputed;
|
|
2390
|
+
private readonly unsubscribeFromQueue;
|
|
2391
|
+
private _isDestroyed;
|
|
2300
2392
|
constructor(queue: OIMEventQueue);
|
|
2393
|
+
/**
|
|
2394
|
+
* Whether {@link destroy} has run. A destroyed runtime is detached from its
|
|
2395
|
+
* queue and must not be reused — `getOIMComputeRuntime` reads this to hand
|
|
2396
|
+
* out a fresh runtime instead of a dead one.
|
|
2397
|
+
*/
|
|
2398
|
+
get isDestroyed(): boolean;
|
|
2399
|
+
/**
|
|
2400
|
+
* Detach from the queue and drop everything pending.
|
|
2401
|
+
*
|
|
2402
|
+
* Without this the AFTER_FLUSH subscription lives as long as the queue does,
|
|
2403
|
+
* even once every computed / effect on this runtime is gone — harmless (the
|
|
2404
|
+
* handler early-returns) but impossible to unwind. Destroying does NOT
|
|
2405
|
+
* destroy the nodes scheduled on it; destroy them first, then the runtime.
|
|
2406
|
+
* Idempotent.
|
|
2407
|
+
*/
|
|
2408
|
+
destroy(): void;
|
|
2409
|
+
/**
|
|
2410
|
+
* Topological depth for a node with these dependencies: one above the deepest
|
|
2411
|
+
* computed dependency (source-only → 0). The engine owns this — callers pass
|
|
2412
|
+
* their dependencies and get back a level, they never compute it themselves.
|
|
2413
|
+
*/
|
|
2414
|
+
computeLevel(deps: readonly IOIMEffectDependency[]): number;
|
|
2415
|
+
/** Record a computed's depth so its dependents can look it up. */
|
|
2416
|
+
registerLevel(computed: object, level: number): void;
|
|
2417
|
+
/** The recorded topological depth of a computed (0 if unknown). Introspection. */
|
|
2418
|
+
getLevel(computed: object): number;
|
|
2301
2419
|
/**
|
|
2302
2420
|
* Schedule a one-shot task to run on the next `queue.flush()` (AFTER_FLUSH),
|
|
2303
2421
|
* ordered by `level` ascending.
|
|
@@ -2309,6 +2427,7 @@ declare class OIMComputeRuntime {
|
|
|
2309
2427
|
*/
|
|
2310
2428
|
scheduleAfterFlush(task: () => void): () => void;
|
|
2311
2429
|
private flush;
|
|
2430
|
+
private recomputePendingRange;
|
|
2312
2431
|
}
|
|
2313
2432
|
|
|
2314
2433
|
interface IOIMSelectorComputedDependency {
|
|
@@ -2377,12 +2496,160 @@ declare class OIMCollectionSelectors<TEntity extends object, TPk extends TOIMKey
|
|
|
2377
2496
|
entitiesBySetGlobalIndex<TIndex extends OIMGlobalIndexSetBased<TPk>>(index: OIMReactiveGlobalIndexSetBased<TPk, TIndex>): TOIMCollectionEntitiesSelector<TEntity>;
|
|
2378
2497
|
}
|
|
2379
2498
|
|
|
2499
|
+
type TOIMComputedOptions<TValue> = {
|
|
2500
|
+
compute: () => TValue;
|
|
2501
|
+
deps?: readonly IOIMEffectDependency[];
|
|
2502
|
+
compare?: (a: TValue, b: TValue) => boolean;
|
|
2503
|
+
};
|
|
2504
|
+
|
|
2505
|
+
type TOIMComputedUpdatePayload<TKey extends TOIMKey> = {
|
|
2506
|
+
keys: readonly TKey[];
|
|
2507
|
+
};
|
|
2508
|
+
|
|
2509
|
+
type TOIMComputedKey$2 = 'value';
|
|
2510
|
+
declare class OIMComputed<TValue> {
|
|
2511
|
+
readonly emitter: OIMEventEmitter<{
|
|
2512
|
+
update: TOIMComputedUpdatePayload<TOIMComputedKey$2>;
|
|
2513
|
+
}>;
|
|
2514
|
+
readonly updateEventEmitter: OIMUpdateEventEmitter<TOIMComputedKey$2>;
|
|
2515
|
+
private readonly runtime;
|
|
2516
|
+
private readonly compute;
|
|
2517
|
+
private readonly compare;
|
|
2518
|
+
private readonly _deps;
|
|
2519
|
+
private value;
|
|
2520
|
+
private hasValue;
|
|
2521
|
+
private isDirty;
|
|
2522
|
+
private readonly effect;
|
|
2523
|
+
constructor(runtime: OIMComputeRuntime, opts: TOIMComputedOptions<TValue>);
|
|
2524
|
+
get needsRecompute(): boolean;
|
|
2525
|
+
get isReady(): boolean;
|
|
2526
|
+
get deps(): readonly IOIMEffectDependency[];
|
|
2527
|
+
get(): TValue;
|
|
2528
|
+
getIfReady(): TValue | undefined;
|
|
2529
|
+
destroy(): void;
|
|
2530
|
+
private recomputeAndEmitIfChanged;
|
|
2531
|
+
}
|
|
2532
|
+
|
|
2533
|
+
declare class OIMEffectDependencyKeyedCollection<TEntity extends object, TPk extends TOIMKey> implements IOIMEffectDependency {
|
|
2534
|
+
private readonly dep;
|
|
2535
|
+
constructor(collection: OIMReactiveCollection<TEntity, TPk>, pk: TPk);
|
|
2536
|
+
get source(): OIMReactiveCollection<TEntity, TPk>;
|
|
2537
|
+
subscribe(onUpdate: () => void): () => void;
|
|
2538
|
+
}
|
|
2539
|
+
|
|
2540
|
+
declare class OIMEffectDependencyKeyedIndex<TKey extends TOIMKey> implements IOIMEffectDependency {
|
|
2541
|
+
private readonly dep;
|
|
2542
|
+
constructor(index: IOIMKeyedSubscription<TKey>, key: TKey);
|
|
2543
|
+
get source(): IOIMKeyedSubscription<TKey>;
|
|
2544
|
+
subscribe(onUpdate: () => void): () => void;
|
|
2545
|
+
}
|
|
2546
|
+
|
|
2547
|
+
declare class OIMEffectDependencyKeyedObject<TKey extends string, TValue> implements IOIMEffectDependency {
|
|
2548
|
+
private readonly dep;
|
|
2549
|
+
constructor(object: OIMReactiveObject<TKey, TValue>, key: TKey);
|
|
2550
|
+
get source(): OIMReactiveObject<TKey, TValue>;
|
|
2551
|
+
subscribe(onUpdate: () => void): () => void;
|
|
2552
|
+
}
|
|
2553
|
+
|
|
2554
|
+
type TOIMComputedKey$1 = 'value';
|
|
2555
|
+
type TOIMComputedLike = {
|
|
2556
|
+
emitter: OIMEventEmitter<{
|
|
2557
|
+
update: TOIMComputedUpdatePayload<TOIMComputedKey$1>;
|
|
2558
|
+
}>;
|
|
2559
|
+
updateEventEmitter: OIMUpdateEventEmitter<TOIMComputedKey$1>;
|
|
2560
|
+
};
|
|
2561
|
+
/**
|
|
2562
|
+
* Effect dependency on a computed. Carries the computed itself (`source`) so the
|
|
2563
|
+
* runtime can look up its topological depth — the level lives in the runtime,
|
|
2564
|
+
* not on this dependency.
|
|
2565
|
+
*/
|
|
2566
|
+
declare class OIMEffectDependencyComputed implements IOIMEffectDependency {
|
|
2567
|
+
readonly source: TOIMComputedLike;
|
|
2568
|
+
constructor(source: TOIMComputedLike);
|
|
2569
|
+
subscribe(onUpdate: () => void): () => void;
|
|
2570
|
+
}
|
|
2571
|
+
|
|
2572
|
+
/**
|
|
2573
|
+
* Dependency builders for `computed` / `effect`. They pick the right wrapper for
|
|
2574
|
+
* each source type so you never instantiate `OIMEffectDependency…` by hand:
|
|
2575
|
+
*
|
|
2576
|
+
* ```ts
|
|
2577
|
+
* kit.computed(
|
|
2578
|
+
* [on.collection(users, 'u1'), on.index(byRole, 'admin'), on.computed(orderCount)],
|
|
2579
|
+
* () => …,
|
|
2580
|
+
* );
|
|
2581
|
+
* ```
|
|
2582
|
+
*/
|
|
2583
|
+
declare const on: {
|
|
2584
|
+
/** Depend on one PK of a collection. */
|
|
2585
|
+
collection: <TEntity extends object, TPk extends TOIMKey>(collection: OIMReactiveCollection<TEntity, TPk>, pk: TPk) => OIMEffectDependencyKeyedCollection<TEntity, TPk>;
|
|
2586
|
+
/** Depend on one key of an index. */
|
|
2587
|
+
index: <TKey extends TOIMKey>(index: IOIMKeyedSubscription<TKey>, key: TKey) => OIMEffectDependencyKeyedIndex<TKey>;
|
|
2588
|
+
/** Depend on one key of a reactive object. */
|
|
2589
|
+
object: <TKey extends string, TValue>(object: OIMReactiveObject<TKey, TValue>, key: TKey) => OIMEffectDependencyKeyedObject<TKey, TValue>;
|
|
2590
|
+
/** Depend on another computed. */
|
|
2591
|
+
computed: <TValue>(computed: OIMComputed<TValue>) => OIMEffectDependencyComputed;
|
|
2592
|
+
};
|
|
2593
|
+
|
|
2594
|
+
type TOIMEffectOptions = {
|
|
2595
|
+
deps?: readonly IOIMEffectDependency[];
|
|
2596
|
+
onUpdate?: () => void;
|
|
2597
|
+
run: () => void;
|
|
2598
|
+
};
|
|
2599
|
+
|
|
2600
|
+
declare class OIMEffect {
|
|
2601
|
+
private readonly runtime;
|
|
2602
|
+
private readonly onUpdate?;
|
|
2603
|
+
private readonly run;
|
|
2604
|
+
private readonly deps;
|
|
2605
|
+
/**
|
|
2606
|
+
* Topological depth, owned by the runtime — one above the deepest computed
|
|
2607
|
+
* dependency (source-only effects are `0`). Passed to `runtime.schedule` so
|
|
2608
|
+
* this node runs only after everything it depends on. Internal: nodes never
|
|
2609
|
+
* expose their own level.
|
|
2610
|
+
*/
|
|
2611
|
+
private readonly level;
|
|
2612
|
+
private readonly sourceDeps;
|
|
2613
|
+
private readonly computedDeps;
|
|
2614
|
+
private sourceUnsubscribers;
|
|
2615
|
+
private computedUnsubscribers;
|
|
2616
|
+
private dequeueResubscribe?;
|
|
2617
|
+
private isResubscribeEnqueued;
|
|
2618
|
+
private isTemporarilyUnsubscribedForFlush;
|
|
2619
|
+
private isScheduled;
|
|
2620
|
+
private dequeueScheduled?;
|
|
2621
|
+
private readonly runTask;
|
|
2622
|
+
constructor(runtime: OIMComputeRuntime, opts: TOIMEffectOptions, level?: number);
|
|
2623
|
+
destroy(): void;
|
|
2624
|
+
private onSourceInvalidate;
|
|
2625
|
+
private onComputedInvalidate;
|
|
2626
|
+
private runOnce;
|
|
2627
|
+
private subscribeToDeps;
|
|
2628
|
+
private unsubscribeFromSourceDeps;
|
|
2629
|
+
private unsubscribeFromAllDeps;
|
|
2630
|
+
private ensureResubscribeAfterFlush;
|
|
2631
|
+
private readonly onAfterFlush;
|
|
2632
|
+
}
|
|
2633
|
+
|
|
2380
2634
|
type TOIMReactiveCollectionFactoryOptions<TEntity extends object, TPk extends TOIMKey> = TOIMCollectionOptions<TEntity, TPk>;
|
|
2381
2635
|
type TOIMCollectionKit<TEntity extends object, TPk extends TOIMKey> = {
|
|
2382
2636
|
queue: OIMEventQueue;
|
|
2383
2637
|
collection: OIMReactiveCollection<TEntity, TPk>;
|
|
2384
2638
|
indexFactory: OIMCollectionIndexFactory<TEntity, TPk>;
|
|
2385
2639
|
select: OIMCollectionSelectors<TEntity, TPk>;
|
|
2640
|
+
/** Dependency builders for `computed` / `effect` (no manual wrapper classes). */
|
|
2641
|
+
on: typeof on;
|
|
2642
|
+
/**
|
|
2643
|
+
* Create a computed on the queue's shared runtime and add it to `scope`.
|
|
2644
|
+
* Deps come from `on.*` and may reference any source sharing the queue.
|
|
2645
|
+
*/
|
|
2646
|
+
computed: <TValue>(deps: readonly IOIMEffectDependency[], compute: () => TValue, options?: {
|
|
2647
|
+
compare?: (a: TValue, b: TValue) => boolean;
|
|
2648
|
+
}) => OIMComputed<TValue>;
|
|
2649
|
+
/** Create an effect on the queue's shared runtime and add it to `scope`. */
|
|
2650
|
+
effect: (deps: readonly IOIMEffectDependency[], run: () => void, options?: {
|
|
2651
|
+
onUpdate?: () => void;
|
|
2652
|
+
}) => OIMEffect;
|
|
2386
2653
|
/**
|
|
2387
2654
|
* Dispose scope owning the kit's collection. `add()` indexes/streams/
|
|
2388
2655
|
* subscriptions you create off the kit, then `destroy()` tears them all down
|
|
@@ -2396,6 +2663,51 @@ type TOIMCollectionKit<TEntity extends object, TPk extends TOIMKey> = {
|
|
|
2396
2663
|
|
|
2397
2664
|
declare function createOIMCollectionKit<TEntity extends object, TPk extends TOIMKey>(queue: OIMEventQueue, opts?: TOIMReactiveCollectionFactoryOptions<TEntity, TPk>): TOIMCollectionKit<TEntity, TPk>;
|
|
2398
2665
|
|
|
2666
|
+
/**
|
|
2667
|
+
* The ONE compute runtime for a queue. Every computed / effect / selector that
|
|
2668
|
+
* shares a queue must share a runtime — they form one dependency graph, and
|
|
2669
|
+
* levels + scheduling live per-runtime. Created lazily on first use and cached
|
|
2670
|
+
* (per queue, garbage-collected with it), so cross-collection computeds all
|
|
2671
|
+
* schedule on the same topological pass.
|
|
2672
|
+
*
|
|
2673
|
+
* A runtime that was destroyed is replaced rather than handed back: it is
|
|
2674
|
+
* detached from the queue and would never drain again.
|
|
2675
|
+
*
|
|
2676
|
+
* See `peekOIMComputeRuntime` to read without creating, and
|
|
2677
|
+
* `setOIMComputeRuntime` to install your own.
|
|
2678
|
+
*/
|
|
2679
|
+
declare function getOIMComputeRuntime(queue: OIMEventQueue): OIMComputeRuntime;
|
|
2680
|
+
|
|
2681
|
+
/**
|
|
2682
|
+
* The runtime already attached to `queue`, or `undefined` — WITHOUT creating one.
|
|
2683
|
+
*
|
|
2684
|
+
* The read-only counterpart of `getOIMComputeRuntime`, for code that must not
|
|
2685
|
+
* change what it observes: devtools asking "does this queue even have a compute
|
|
2686
|
+
* graph", teardown checking whether there is anything to destroy, assertions in
|
|
2687
|
+
* tests. A runtime that has been destroyed reads as `undefined`, matching what
|
|
2688
|
+
* `getOIMComputeRuntime` would then replace — so a caller cannot get hold of a
|
|
2689
|
+
* detached runtime through this door either.
|
|
2690
|
+
*/
|
|
2691
|
+
declare function peekOIMComputeRuntime(queue: OIMEventQueue): OIMComputeRuntime | undefined;
|
|
2692
|
+
|
|
2693
|
+
/**
|
|
2694
|
+
* Install `runtime` as the one runtime for `queue`, replacing whatever was there.
|
|
2695
|
+
*
|
|
2696
|
+
* The injection seam for a subclassed runtime — an instrumented one that records
|
|
2697
|
+
* levels and drain order, a profiling one, a test double. Call it BEFORE anything
|
|
2698
|
+
* touches the queue's compute graph: nodes capture their runtime at construction,
|
|
2699
|
+
* so swapping afterwards leaves the existing ones on the old instance and splits
|
|
2700
|
+
* the dependency graph in two, which is exactly the glitch the one-runtime-per-
|
|
2701
|
+
* queue rule exists to prevent.
|
|
2702
|
+
*
|
|
2703
|
+
* `runtime.queue` must be `queue` — a runtime drains on its own queue's
|
|
2704
|
+
* AFTER_FLUSH, so a mismatched pair would never run.
|
|
2705
|
+
*
|
|
2706
|
+
* Replacing does NOT destroy the previous runtime: whoever installs a replacement
|
|
2707
|
+
* decides whether the old one still has live nodes on it.
|
|
2708
|
+
*/
|
|
2709
|
+
declare function setOIMComputeRuntime(queue: OIMEventQueue, runtime: OIMComputeRuntime): void;
|
|
2710
|
+
|
|
2399
2711
|
type TOIMFieldKey<TEntity extends object> = keyof TEntity & string;
|
|
2400
2712
|
/**
|
|
2401
2713
|
* Tracks changed fields per entity PK for an `OIMCollection`.
|
|
@@ -2894,6 +3206,18 @@ declare enum EOIMIndexEventType {
|
|
|
2894
3206
|
UPDATE = 0
|
|
2895
3207
|
}
|
|
2896
3208
|
|
|
3209
|
+
declare enum EOIMEventQueueEventType {
|
|
3210
|
+
AFTER_FLUSH = 0,
|
|
3211
|
+
BEFORE_FLUSH = 1,
|
|
3212
|
+
/**
|
|
3213
|
+
* A task threw during flush. Emitted once per failing task, ALWAYS (whether
|
|
3214
|
+
* or not an `onError` handler is installed) — an observation channel for
|
|
3215
|
+
* tooling (devtools / MCP). It does not replace the error being raised: with
|
|
3216
|
+
* no `onError` handler the error still propagates out of `flush()`.
|
|
3217
|
+
*/
|
|
3218
|
+
FLUSH_ERROR = 2
|
|
3219
|
+
}
|
|
3220
|
+
|
|
2897
3221
|
declare enum EOIMObjectEventType {
|
|
2898
3222
|
UPDATE = 0
|
|
2899
3223
|
}
|
|
@@ -2931,88 +3255,17 @@ declare class OIMDBSettings {
|
|
|
2931
3255
|
static readonly FLUSHING_KEYS_INDEX_KEY: "__flushingKeys__";
|
|
2932
3256
|
}
|
|
2933
3257
|
|
|
2934
|
-
interface IOIMEffectDependency {
|
|
2935
|
-
subscribe(onUpdate: () => void): () => void;
|
|
2936
|
-
}
|
|
2937
|
-
|
|
2938
|
-
type TOIMComputedOptions<TValue> = {
|
|
2939
|
-
compute: () => TValue;
|
|
2940
|
-
deps?: readonly IOIMEffectDependency[];
|
|
2941
|
-
compare?: (a: TValue, b: TValue) => boolean;
|
|
2942
|
-
};
|
|
2943
|
-
|
|
2944
|
-
type TOIMComputedUpdatePayload<TKey extends TOIMKey> = {
|
|
2945
|
-
keys: readonly TKey[];
|
|
2946
|
-
};
|
|
2947
|
-
|
|
2948
|
-
type TOIMComputedKey$2 = 'value';
|
|
2949
|
-
declare class OIMComputed<TValue> {
|
|
2950
|
-
readonly emitter: OIMEventEmitter<{
|
|
2951
|
-
update: TOIMComputedUpdatePayload<TOIMComputedKey$2>;
|
|
2952
|
-
}>;
|
|
2953
|
-
readonly updateEventEmitter: OIMUpdateEventEmitter<TOIMComputedKey$2>;
|
|
2954
|
-
private readonly runtime;
|
|
2955
|
-
private readonly compute;
|
|
2956
|
-
private readonly compare;
|
|
2957
|
-
private readonly _deps;
|
|
2958
|
-
private value;
|
|
2959
|
-
private hasValue;
|
|
2960
|
-
private isDirty;
|
|
2961
|
-
private readonly effect;
|
|
2962
|
-
constructor(runtime: OIMComputeRuntime, opts: TOIMComputedOptions<TValue>);
|
|
2963
|
-
get needsRecompute(): boolean;
|
|
2964
|
-
get isReady(): boolean;
|
|
2965
|
-
get deps(): readonly IOIMEffectDependency[];
|
|
2966
|
-
get(): TValue;
|
|
2967
|
-
getIfReady(): TValue | undefined;
|
|
2968
|
-
destroy(): void;
|
|
2969
|
-
private recomputeAndEmitIfChanged;
|
|
2970
|
-
}
|
|
2971
|
-
|
|
2972
3258
|
declare enum EOIMComputedEventType {
|
|
2973
3259
|
UPDATE = "update"
|
|
2974
3260
|
}
|
|
2975
3261
|
|
|
2976
|
-
type TOIMComputedKey
|
|
3262
|
+
type TOIMComputedKey = 'value';
|
|
2977
3263
|
interface IOIMComputedEventSource {
|
|
2978
3264
|
emitter: OIMEventEmitter<{
|
|
2979
|
-
[EOIMComputedEventType.UPDATE]: TOIMComputedUpdatePayload<TOIMComputedKey
|
|
3265
|
+
[EOIMComputedEventType.UPDATE]: TOIMComputedUpdatePayload<TOIMComputedKey>;
|
|
2980
3266
|
}>;
|
|
2981
3267
|
}
|
|
2982
3268
|
|
|
2983
|
-
type TOIMEffectOptions = {
|
|
2984
|
-
deps?: readonly IOIMEffectDependency[];
|
|
2985
|
-
onUpdate?: () => void;
|
|
2986
|
-
run: () => void;
|
|
2987
|
-
};
|
|
2988
|
-
|
|
2989
|
-
declare class OIMEffect {
|
|
2990
|
-
private readonly runtime;
|
|
2991
|
-
private readonly onUpdate?;
|
|
2992
|
-
private readonly run;
|
|
2993
|
-
private readonly deps;
|
|
2994
|
-
private readonly sourceDeps;
|
|
2995
|
-
private readonly computedDeps;
|
|
2996
|
-
private sourceUnsubscribers;
|
|
2997
|
-
private computedUnsubscribers;
|
|
2998
|
-
private dequeueResubscribe?;
|
|
2999
|
-
private isResubscribeEnqueued;
|
|
3000
|
-
private isTemporarilyUnsubscribedForFlush;
|
|
3001
|
-
private isScheduled;
|
|
3002
|
-
private dequeueScheduled?;
|
|
3003
|
-
private readonly runTask;
|
|
3004
|
-
constructor(runtime: OIMComputeRuntime, opts: TOIMEffectOptions);
|
|
3005
|
-
destroy(): void;
|
|
3006
|
-
private onSourceInvalidate;
|
|
3007
|
-
private onComputedInvalidate;
|
|
3008
|
-
private runOnce;
|
|
3009
|
-
private subscribeToDeps;
|
|
3010
|
-
private unsubscribeFromSourceDeps;
|
|
3011
|
-
private unsubscribeFromAllDeps;
|
|
3012
|
-
private ensureResubscribeAfterFlush;
|
|
3013
|
-
private readonly onAfterFlush;
|
|
3014
|
-
}
|
|
3015
|
-
|
|
3016
3269
|
/**
|
|
3017
3270
|
* Depends on updates to ONE key of a keyed source. The key argument is the whole
|
|
3018
3271
|
* key — a composite key `[a, b]` is one key, never split — so there is no
|
|
@@ -3026,43 +3279,6 @@ declare class OIMEffectDependencyKeyed<TKey extends TOIMKey> implements IOIMEffe
|
|
|
3026
3279
|
subscribe(onUpdate: () => void): () => void;
|
|
3027
3280
|
}
|
|
3028
3281
|
|
|
3029
|
-
declare class OIMEffectDependencyKeyedObject<TKey extends string, TValue> implements IOIMEffectDependency {
|
|
3030
|
-
private readonly dep;
|
|
3031
|
-
constructor(object: OIMReactiveObject<TKey, TValue>, key: TKey);
|
|
3032
|
-
get source(): OIMReactiveObject<TKey, TValue>;
|
|
3033
|
-
subscribe(onUpdate: () => void): () => void;
|
|
3034
|
-
}
|
|
3035
|
-
|
|
3036
|
-
declare class OIMEffectDependencyKeyedCollection<TEntity extends object, TPk extends TOIMKey> implements IOIMEffectDependency {
|
|
3037
|
-
private readonly dep;
|
|
3038
|
-
constructor(collection: OIMReactiveCollection<TEntity, TPk>, pk: TPk);
|
|
3039
|
-
get source(): OIMReactiveCollection<TEntity, TPk>;
|
|
3040
|
-
subscribe(onUpdate: () => void): () => void;
|
|
3041
|
-
}
|
|
3042
|
-
|
|
3043
|
-
declare class OIMEffectDependencyKeyedIndex<TKey extends TOIMKey> implements IOIMEffectDependency {
|
|
3044
|
-
private readonly dep;
|
|
3045
|
-
constructor(index: IOIMKeyedSubscription<TKey>, key: TKey);
|
|
3046
|
-
get source(): IOIMKeyedSubscription<TKey>;
|
|
3047
|
-
subscribe(onUpdate: () => void): () => void;
|
|
3048
|
-
}
|
|
3049
|
-
|
|
3050
|
-
type TOIMComputedKey = 'value';
|
|
3051
|
-
type TOIMComputedLike = {
|
|
3052
|
-
emitter: OIMEventEmitter<{
|
|
3053
|
-
update: TOIMComputedUpdatePayload<TOIMComputedKey>;
|
|
3054
|
-
}>;
|
|
3055
|
-
updateEventEmitter: OIMUpdateEventEmitter<TOIMComputedKey>;
|
|
3056
|
-
};
|
|
3057
|
-
/**
|
|
3058
|
-
* Effect dependency on a computed.
|
|
3059
|
-
*/
|
|
3060
|
-
declare class OIMEffectDependencyComputed implements IOIMEffectDependency {
|
|
3061
|
-
readonly source: TOIMComputedLike;
|
|
3062
|
-
constructor(source: TOIMComputedLike);
|
|
3063
|
-
subscribe(onUpdate: () => void): () => void;
|
|
3064
|
-
}
|
|
3065
|
-
|
|
3066
3282
|
declare class OIMCollectionByPkSelector<TEntity extends object, TPk extends TOIMKey> extends OIMSelector<TEntity | undefined> {
|
|
3067
3283
|
private readonly collection;
|
|
3068
3284
|
private readonly pk;
|
|
@@ -3158,4 +3374,4 @@ declare class OIMEntitiesByGlobalIndexArrayBasedSelector<TEntity extends object,
|
|
|
3158
3374
|
protected areEqual(prev: readonly (TEntity | undefined)[], next: readonly (TEntity | undefined)[]): boolean;
|
|
3159
3375
|
}
|
|
3160
3376
|
|
|
3161
|
-
export { EOIMCollectionEventType, EOIMComputedEventType, EOIMEventQueueEventType, EOIMEventQueueSchedulerEventType, EOIMIndexEventType, EOIMObjectEventType, type IOIMCarrierBucketStore, type IOIMCarrierProvider, type IOIMComputedEventSource, type IOIMDisposable, type IOIMEffectDependency, type IOIMEventQueueSchedulerEvents, type IOIMGlobalIndexSlotSource, type IOIMIndexSlotSource, type IOIMIndexStore, type IOIMKeyedMap, type IOIMKeyedSet, type IOIMKeyedUpdateEmitter, type IOIMOrderedListCommandSource, type IOIMPkCodec, type IOIMSingleUpdateEmitter, type IOIMSubscribable, type IOIMSubscription, OIMBucketCarrierProvider, OIMCarrierKeyedEmitter, OIMCarrierSingleEmitter, OIMCollection, OIMCollectionByPkSelector, OIMCollectionByPksSelector, OIMCollectionChangedFields, OIMCollectionIndexFactory, OIMCollectionIndexManualOrderedArrayBased, OIMCollectionOrderedListCommandStream, OIMCollectionSelectors, OIMCollectionStore, OIMCollectionStoreMapDriven, OIMCollectionStoreTrieDriven, OIMComparatorFactory, OIMComputeRuntime, OIMComputed, OIMDBSettings, OIMDerivedCollectionGlobalIndexArrayBased, OIMDerivedCollectionGlobalIndexSetBased, OIMDerivedCollectionIndexArrayBased, OIMDerivedCollectionIndexSetBased, OIMDisposeScope, OIMEffect, OIMEffectDependencyComputed, OIMEffectDependencyKeyed, OIMEffectDependencyKeyedCollection, OIMEffectDependencyKeyedIndex, OIMEffectDependencyKeyedObject, OIMEntitiesByGlobalIndexArrayBasedSelector, OIMEntitiesByGlobalIndexSetBasedSelector, OIMEntitiesByIndexKeyArrayBasedSelector, OIMEntitiesByIndexKeySetBasedSelector, OIMEntityUpdaterFactory, OIMEventEmitter, OIMEventQueue, OIMEventQueueScheduler, OIMEventQueueSchedulerAnimationFrame, OIMEventQueueSchedulerFactory, OIMEventQueueSchedulerImmediate, OIMEventQueueSchedulerMicrotask, OIMEventQueueSchedulerSync, OIMEventQueueSchedulerTimeout, OIMGlobalIndex, OIMGlobalIndexArrayBased, OIMGlobalIndexManualArrayBased, OIMGlobalIndexManualSetBased, OIMGlobalIndexSetBased, OIMGlobalIndexSlotMap, OIMIndex, OIMIndexArrayBased, OIMIndexComparatorFactory, OIMIndexManualArrayBased, OIMIndexManualOrderedArrayBased, OIMIndexManualSetBased, OIMIndexPksByKeyArrayBasedSelector, OIMIndexPksByKeySetBasedSelector, OIMIndexPksByKeysArrayBasedSelector, OIMIndexPksByKeysSetBasedSelector, OIMIndexSetBased, OIMIndexSlotMap, OIMIndexStoreArrayBased, OIMIndexStoreMapDrivenArrayBased, OIMIndexStoreMapDrivenSetBased, OIMIndexStoreSetBased, OIMIndexStoreTrieDrivenArrayBased, OIMIndexStoreTrieDrivenSetBased, OIMKeyPathCarrierProvider, OIMKeyedBucketArrayBased, OIMKeyedBucketSetBased, OIMMap2Keys, OIMObject, OIMObjectStore, OIMObjectStoreMapDriven, OIMObjectStoreRecordDriven, OIMObjectValueByKeySelector, OIMObjectValuesByKeysSelector, OIMOrderedListCommandBuffer, OIMOrderedListCommandStream, OIMOrderedListCommandStreamDiffDriven, OIMOrderedListMappedCommandStream, OIMPkCodecKeyPath, OIMPkSelectorFactory, OIMReactiveCollection, OIMReactiveCollectionGlobalIndexManualArrayBased, OIMReactiveCollectionGlobalIndexManualSetBased, OIMReactiveCollectionIndexCompositeTrieArrayBased, OIMReactiveCollectionIndexCompositeTrieSetBased, OIMReactiveCollectionIndexManualArrayBased, OIMReactiveCollectionIndexManualSetBased, OIMReactiveGlobalIndex, OIMReactiveGlobalIndexArrayBased, OIMReactiveGlobalIndexManualArrayBased, OIMReactiveGlobalIndexManualSetBased, OIMReactiveGlobalIndexSetBased, OIMReactiveIndex, OIMReactiveIndexArrayBased, OIMReactiveIndexManualArrayBased, OIMReactiveIndexManualSetBased, OIMReactiveIndexSetBased, OIMReactiveObject, OIMSelector, OIMTrieMap, OIMTrieSet, type TOIMAnyEntitySlot, type TOIMCollectionEntitiesSelector, type TOIMCollectionEntitySelector, type TOIMCollectionGlobalIndexArrayBasedOptions, type TOIMCollectionGlobalIndexSetBasedOptions, type TOIMCollectionIndexArrayBasedOptions, type TOIMCollectionIndexCompositeArrayBasedOptions, type TOIMCollectionIndexCompositeSetBasedOptions, type TOIMCollectionIndexSetBasedOptions, type TOIMCollectionKit, type TOIMCollectionOptions, type TOIMCollectionOrderedIndexOptions, type TOIMCollectionOrderedListCommandStreamOptions, type TOIMCollectionUpdatePayload, type TOIMComparator, type TOIMComputedOptions, type TOIMComputedUpdatePayload, type TOIMDerivedCollectionGlobalIndexArrayBasedOptions, type TOIMDerivedCollectionGlobalIndexSetBasedOptions, type TOIMDerivedCollectionIndexArrayBasedOptions, type TOIMDerivedCollectionIndexSetBasedOptions, type TOIMDerivedEntityComparator, type TOIMDerivedEntityOrderSelector, type TOIMDerivedEntityOrderValue, type TOIMDerivedIndexKeySelector, type TOIMDisposable, type TOIMEffectOptions, type TOIMEntitySlot, type TOIMEntitySlotGetter, type TOIMEntityUpdater, type TOIMEventHandler, type TOIMEventQueueOptions, type TOIMGlobalIndexFilter, type TOIMIndexComparator, type TOIMIndexKey, type TOIMIndexOptionsArrayBased, type TOIMIndexOptionsSetBased, type TOIMIndexPksUpdatePayload, type TOIMIndexUpdatePayload, type TOIMKey, type TOIMKeyPath, type TOIMObjectOptions, type TOIMOrderedListCommand, type TOIMOrderedListDiffOptions, type TOIMPk, type TOIMPkSelector, type TOIMReactiveCollectionFactoryOptions, type TOIMRelationsArrayIndexOptions, type TOIMRelationsCompositeArrayIndexOptions, type TOIMRelationsCompositeSetIndexOptions, type TOIMRelationsDerivedArrayIndexOptions, type TOIMRelationsDerivedGlobalArrayIndexOptions, type TOIMRelationsDerivedGlobalSetIndexOptions, type TOIMRelationsDerivedSetIndexOptions, type TOIMRelationsGlobalArrayIndexOptions, type TOIMRelationsGlobalSetIndexOptions, type TOIMRelationsOrderedListOptions, type TOIMRelationsSetIndexOptions, type TOIMSchedulerOptions, type TOIMSchedulerType, type TOIMUpdatePayload, createInPlaceEntityUpdater, createMergeEntityUpdater, createOIMCollectionIndexFactory, createOIMCollectionKit, createOIMDisposeScope, createOIMGlobalIndexSlotMap, createOIMIndexSlotMap, createOIMOrderedListCommandStreamDiffDriven, createOIMOrderedListMappedCommandStream, diffOrderedListByPk };
|
|
3377
|
+
export { EOIMCollectionEventType, EOIMComputedEventType, EOIMEventQueueEventType, EOIMEventQueueSchedulerEventType, EOIMIndexEventType, EOIMObjectEventType, type IOIMCarrierBucketStore, type IOIMCarrierProvider, type IOIMComputedEventSource, type IOIMDisposable, type IOIMEffectDependency, type IOIMEventQueueSchedulerEvents, type IOIMGlobalIndexSlotSource, type IOIMIndexSlotSource, type IOIMIndexStore, type IOIMKeyedMap, type IOIMKeyedSet, type IOIMKeyedUpdateEmitter, type IOIMOrderedListCommandSource, type IOIMPkCodec, type IOIMSingleUpdateEmitter, type IOIMSubscribable, type IOIMSubscription, OIMBucketCarrierProvider, OIMCarrierKeyedEmitter, OIMCarrierSingleEmitter, OIMCollection, OIMCollectionByPkSelector, OIMCollectionByPksSelector, OIMCollectionChangedFields, OIMCollectionIndexFactory, OIMCollectionIndexManualOrderedArrayBased, OIMCollectionOrderedListCommandStream, OIMCollectionSelectors, OIMCollectionStore, OIMCollectionStoreMapDriven, OIMCollectionStoreTrieDriven, OIMComparatorFactory, OIMComputeRuntime, OIMComputed, OIMDBSettings, OIMDerivedCollection, OIMDerivedCollectionGlobalIndexArrayBased, OIMDerivedCollectionGlobalIndexSetBased, OIMDerivedCollectionIndexArrayBased, OIMDerivedCollectionIndexSetBased, OIMDisposeScope, OIMEffect, OIMEffectDependencyComputed, OIMEffectDependencyKeyed, OIMEffectDependencyKeyedCollection, OIMEffectDependencyKeyedIndex, OIMEffectDependencyKeyedObject, OIMEntitiesByGlobalIndexArrayBasedSelector, OIMEntitiesByGlobalIndexSetBasedSelector, OIMEntitiesByIndexKeyArrayBasedSelector, OIMEntitiesByIndexKeySetBasedSelector, OIMEntityUpdaterFactory, OIMEventEmitter, OIMEventQueue, OIMEventQueueScheduler, OIMEventQueueSchedulerAnimationFrame, OIMEventQueueSchedulerFactory, OIMEventQueueSchedulerImmediate, OIMEventQueueSchedulerMicrotask, OIMEventQueueSchedulerSync, OIMEventQueueSchedulerTimeout, OIMGlobalIndex, OIMGlobalIndexArrayBased, OIMGlobalIndexManualArrayBased, OIMGlobalIndexManualSetBased, OIMGlobalIndexSetBased, OIMGlobalIndexSlotMap, OIMIndex, OIMIndexArrayBased, OIMIndexComparatorFactory, OIMIndexManualArrayBased, OIMIndexManualOrderedArrayBased, OIMIndexManualSetBased, OIMIndexPksByKeyArrayBasedSelector, OIMIndexPksByKeySetBasedSelector, OIMIndexPksByKeysArrayBasedSelector, OIMIndexPksByKeysSetBasedSelector, OIMIndexSetBased, OIMIndexSlotMap, OIMIndexStoreArrayBased, OIMIndexStoreMapDrivenArrayBased, OIMIndexStoreMapDrivenSetBased, OIMIndexStoreSetBased, OIMIndexStoreTrieDrivenArrayBased, OIMIndexStoreTrieDrivenSetBased, OIMKeyPathCarrierProvider, OIMKeyedBucketArrayBased, OIMKeyedBucketSetBased, OIMMap2Keys, OIMObject, OIMObjectStore, OIMObjectStoreMapDriven, OIMObjectStoreRecordDriven, OIMObjectValueByKeySelector, OIMObjectValuesByKeysSelector, OIMOrderedListCommandBuffer, OIMOrderedListCommandStream, OIMOrderedListCommandStreamDiffDriven, OIMOrderedListMappedCommandStream, OIMPkCodecKeyPath, OIMPkSelectorFactory, OIMReactiveCollection, OIMReactiveCollectionGlobalIndexManualArrayBased, OIMReactiveCollectionGlobalIndexManualSetBased, OIMReactiveCollectionIndexCompositeTrieArrayBased, OIMReactiveCollectionIndexCompositeTrieSetBased, OIMReactiveCollectionIndexManualArrayBased, OIMReactiveCollectionIndexManualSetBased, OIMReactiveGlobalIndex, OIMReactiveGlobalIndexArrayBased, OIMReactiveGlobalIndexManualArrayBased, OIMReactiveGlobalIndexManualSetBased, OIMReactiveGlobalIndexSetBased, OIMReactiveIndex, OIMReactiveIndexArrayBased, OIMReactiveIndexManualArrayBased, OIMReactiveIndexManualSetBased, OIMReactiveIndexSetBased, OIMReactiveObject, OIMSelector, OIMTrieMap, OIMTrieSet, type TOIMAnyEntitySlot, type TOIMCollectionEntitiesSelector, type TOIMCollectionEntitySelector, type TOIMCollectionGlobalIndexArrayBasedOptions, type TOIMCollectionGlobalIndexSetBasedOptions, type TOIMCollectionIndexArrayBasedOptions, type TOIMCollectionIndexCompositeArrayBasedOptions, type TOIMCollectionIndexCompositeSetBasedOptions, type TOIMCollectionIndexSetBasedOptions, type TOIMCollectionKit, type TOIMCollectionOptions, type TOIMCollectionOrderedIndexOptions, type TOIMCollectionOrderedListCommandStreamOptions, type TOIMCollectionUpdatePayload, type TOIMComparator, type TOIMComputedOptions, type TOIMComputedUpdatePayload, type TOIMDerivedCollectionGlobalIndexArrayBasedOptions, type TOIMDerivedCollectionGlobalIndexSetBasedOptions, type TOIMDerivedCollectionIndexArrayBasedOptions, type TOIMDerivedCollectionIndexSetBasedOptions, type TOIMDerivedCollectionOptions, type TOIMDerivedEntityComparator, type TOIMDerivedEntityOrderSelector, type TOIMDerivedEntityOrderValue, type TOIMDerivedIndexKeySelector, type TOIMDisposable, type TOIMEffectOptions, type TOIMEntitySlot, type TOIMEntitySlotGetter, type TOIMEntityUpdater, type TOIMEventHandler, type TOIMEventQueueOptions, type TOIMFlushError, type TOIMGlobalIndexFilter, type TOIMIndexComparator, type TOIMIndexKey, type TOIMIndexOptionsArrayBased, type TOIMIndexOptionsSetBased, type TOIMIndexPksUpdatePayload, type TOIMIndexUpdatePayload, type TOIMKey, type TOIMKeyPath, type TOIMObjectOptions, type TOIMOrderedListCommand, type TOIMOrderedListDiffOptions, type TOIMPk, type TOIMPkSelector, type TOIMReactiveCollectionFactoryOptions, type TOIMRelationsArrayIndexOptions, type TOIMRelationsCompositeArrayIndexOptions, type TOIMRelationsCompositeSetIndexOptions, type TOIMRelationsDerivedArrayIndexOptions, type TOIMRelationsDerivedGlobalArrayIndexOptions, type TOIMRelationsDerivedGlobalSetIndexOptions, type TOIMRelationsDerivedSetIndexOptions, type TOIMRelationsGlobalArrayIndexOptions, type TOIMRelationsGlobalSetIndexOptions, type TOIMRelationsOrderedListOptions, type TOIMRelationsSetIndexOptions, type TOIMSchedulerOptions, type TOIMSchedulerType, type TOIMUpdatePayload, createInPlaceEntityUpdater, createMergeEntityUpdater, createOIMCollectionIndexFactory, createOIMCollectionKit, createOIMDisposeScope, createOIMGlobalIndexSlotMap, createOIMIndexSlotMap, createOIMOrderedListCommandStreamDiffDriven, createOIMOrderedListMappedCommandStream, diffOrderedListByPk, getOIMComputeRuntime, on, peekOIMComputeRuntime, setOIMComputeRuntime };
|