@mmstack/primitives 22.10.4 → 22.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -1251,6 +1251,15 @@ declare function nestedEffect(effectFn: (registerCleanup: EffectCleanupRegisterF
|
|
|
1251
1251
|
bindToFrame?: (parent: Frame | null) => Frame | null;
|
|
1252
1252
|
}): EffectRef;
|
|
1253
1253
|
|
|
1254
|
+
/**
|
|
1255
|
+
* Options for {@link keepPrevious}: the signal options of the held value, plus
|
|
1256
|
+
* `fallback` — what to yield while there is nothing to hold yet (the source has
|
|
1257
|
+
* never been defined). Once a defined value has been seen the fallback is never
|
|
1258
|
+
* yielded again; the previous value is.
|
|
1259
|
+
*/
|
|
1260
|
+
type KeepPreviousOptions<T> = CreateSignalOptions<T> & {
|
|
1261
|
+
readonly fallback?: T;
|
|
1262
|
+
};
|
|
1254
1263
|
/**
|
|
1255
1264
|
* Wraps a signal so it HOLDS its last defined value whenever the source becomes
|
|
1256
1265
|
* `undefined`, yielding that value instead of the gap. This is the foundation of
|
|
@@ -1264,10 +1273,10 @@ declare function nestedEffect(effectFn: (registerCleanup: EffectCleanupRegisterF
|
|
|
1264
1273
|
* so it stays a drop-in replacement. (Angular's `resource` is itself linkedSignal-backed
|
|
1265
1274
|
* and exposes a writable `value` for optimistic updates; this preserves that.)
|
|
1266
1275
|
*/
|
|
1267
|
-
declare function keepPrevious<T>(value: MutableSignal<T>, opt?:
|
|
1268
|
-
declare function keepPrevious<T, U>(value: DerivedSignal<T, U>, opt?:
|
|
1269
|
-
declare function keepPrevious<T>(value: WritableSignal<T>, opt?:
|
|
1270
|
-
declare function keepPrevious<T>(value: Signal<T>, opt?:
|
|
1276
|
+
declare function keepPrevious<T>(value: MutableSignal<T>, opt?: KeepPreviousOptions<T>): MutableSignal<T>;
|
|
1277
|
+
declare function keepPrevious<T, U>(value: DerivedSignal<T, U>, opt?: KeepPreviousOptions<U>): DerivedSignal<T, U>;
|
|
1278
|
+
declare function keepPrevious<T>(value: WritableSignal<T>, opt?: KeepPreviousOptions<T>): WritableSignal<T>;
|
|
1279
|
+
declare function keepPrevious<T>(value: Signal<T>, opt?: KeepPreviousOptions<T>): Signal<T>;
|
|
1271
1280
|
|
|
1272
1281
|
/**
|
|
1273
1282
|
* Reactively maps items from a source array to a new array, creating stable signals for each item.
|
|
@@ -2855,7 +2864,10 @@ type Key$2 = string | number;
|
|
|
2855
2864
|
/**
|
|
2856
2865
|
* One structural operation. `set` on a key that did not previously exist carries NO `prev`
|
|
2857
2866
|
* property (an absent key is not the same as a key holding `undefined` — the merge3 lesson),
|
|
2858
|
-
* which is what lets {@link invertBatch} invert an add into a delete.
|
|
2867
|
+
* which is what lets {@link invertBatch} invert an add into a delete. A JSON text transport
|
|
2868
|
+
* collapses an own `prev: undefined` into an absent `prev` (structured-clone and in-process
|
|
2869
|
+
* channels preserve the distinction) — wire-serialized batches were already not invertible,
|
|
2870
|
+
* see {@link invertBatch}.
|
|
2859
2871
|
*
|
|
2860
2872
|
* `clear` is a sync-layer intent, not a value change: it retires a per-path register (the
|
|
2861
2873
|
* observed-remove half of a subtree replace) and contributes NOTHING to a value: {@link applyOps}
|
|
@@ -3415,7 +3427,8 @@ type SyncOp = StoreOp & {
|
|
|
3415
3427
|
* The wire/journal record. `writer` is an opaque principal pseudonym (natural identity never
|
|
3416
3428
|
* enters the envelope); `origin` identifies the emitting replica. All ops in one envelope share
|
|
3417
3429
|
* the envelope stamp, and an envelope carries at most one op per path, so `(origin, hlc)` is a
|
|
3418
|
-
* unique dot per path register.
|
|
3430
|
+
* unique dot per path register. Op VALUES are wire data under the JSON-fidelity law — see
|
|
3431
|
+
* {@link wireValueViolation}; emission lints them in dev mode.
|
|
3419
3432
|
*/
|
|
3420
3433
|
type OpEnvelope = {
|
|
3421
3434
|
readonly proto: number;
|
|
@@ -3548,6 +3561,11 @@ type RegisterCheckpoint = {
|
|
|
3548
3561
|
readonly siblings: readonly SyncSibling[];
|
|
3549
3562
|
readonly water: Readonly<Record<string, Hlc>>;
|
|
3550
3563
|
};
|
|
3564
|
+
/** One register's live siblings, as {@link ConvergingApply.liveUnder} reports them. */
|
|
3565
|
+
type LiveRegister = {
|
|
3566
|
+
readonly path: readonly Key[];
|
|
3567
|
+
readonly siblings: readonly SyncSibling[];
|
|
3568
|
+
};
|
|
3551
3569
|
type ConvergingApply = {
|
|
3552
3570
|
/**
|
|
3553
3571
|
* Fold an envelope into the per-path registers and return the materialization deltas the
|
|
@@ -3580,6 +3598,12 @@ type ConvergingApply = {
|
|
|
3580
3598
|
captureFrontier(): DotFrontier;
|
|
3581
3599
|
/** The live (causally-maximal) siblings at a path: the emission-frontier read. */
|
|
3582
3600
|
liveAt(path: readonly Key[]): readonly SyncSibling[];
|
|
3601
|
+
/**
|
|
3602
|
+
* The live registers at and under a path, shallow-first: what a reader compares its own
|
|
3603
|
+
* observation frontier against to tell "someone wrote here since I looked" for a whole
|
|
3604
|
+
* subtree (a fork's conflict projection). Registers with no live sibling are omitted.
|
|
3605
|
+
*/
|
|
3606
|
+
liveUnder(path: readonly Key[]): readonly LiveRegister[];
|
|
3583
3607
|
/**
|
|
3584
3608
|
* Deepest-live-wins materialization of the whole tree from the current register state: the
|
|
3585
3609
|
* root register's fold value with every live descendant fold grafted on. This is what a
|
|
@@ -3706,6 +3730,11 @@ type OpSync<T = unknown> = {
|
|
|
3706
3730
|
* never saw. Scoped and synchronous, like {@link override}.
|
|
3707
3731
|
*/
|
|
3708
3732
|
commitScope(frontier: DotFrontier, fn: () => void): void;
|
|
3733
|
+
/**
|
|
3734
|
+
* Read the live registers at and under a path (see {@link ConvergingApply.liveUnder}). A pure
|
|
3735
|
+
* read of what this peer has applied: pending local writes are not in it until they flush.
|
|
3736
|
+
*/
|
|
3737
|
+
liveUnder(path: readonly Key[]): readonly LiveRegister[];
|
|
3709
3738
|
/** Per-origin latest versions — the handshake watermark. */
|
|
3710
3739
|
watermark(): Record<string, number>;
|
|
3711
3740
|
/** The full checkpoint (root + register state + watermark), for answering a peer's hello. */
|
|
@@ -4688,4 +4717,4 @@ type CreateHistoryOptions<T> = Omit<CreateSignalOptions<T[]>, 'equal'> & {
|
|
|
4688
4717
|
declare function withHistory<T>(sourceOrValue: WritableSignal<T> | T, opt?: CreateHistoryOptions<T>): SignalWithHistory<T>;
|
|
4689
4718
|
|
|
4690
4719
|
export { CONCURRENCY_INSTRUMENTATION, MmActivity, MmTransition, MmViewTransitionName, OP_PROTO_VERSION, PAUSABLE_OPTIONS, PERSISTED_STORE_OPTIONS, POS_SEGMENT, SuspenseBoundary, SuspenseBoundaryBase, UnscopedSuspenseBoundary, activeTransaction, applyOps, batteryStatus, bridgeScopeToPendingTasks, chunked, clipboard, combineWith, compareHlc, compareSiblings, compareTotal, createAttributedPending, createConvergingApply, createForwardingScope, createHlcClock, createStoreContext, createTransaction, createTransitionScope, debounce, debounced, defaultFold, deferredValue, derived, diffOps, distinct, elementSize, elementVisibility, extendStore, filter, filterWith, focusWithin, forkStore, geolocation, getTransitionScope, holdUntilReady, idle, indexArray, injectPaused, injectRegisterResource, injectStartTransaction, injectStartTransition, injectTransitionScope, insertElement, invertBatch, isConflicted, isDerivation, isLeaf, isMutable, isOpaque, isStore, isStored, keepPrevious, keyArray, keyedArray, keyedContainer, latest, lww, map, mapArray, mapObject, mediaQuery, merge3, mergeThree, mousePosition, moveElement, mutable, mutableStore, nestedEffect, networkStatus, opLog, opSync, opaque, orderedEntries, orientation, pageVisibility, pairwise, pausableComputed, pausableEffect, pausableSignal, perfCustomTracks, persist, persistedStore, pipeable, piped, pointerDrag, policyStrategy, pooled, pooledArray, pooledKeys, pooledMap, pooledSet, posBetween, prefersDarkMode, prefersReducedMotion, preserve, projection, provideConcurrencyInstrumentation, provideForwardingTransitionScope, providePausableOptions, providePaused, providePersistedStoreOptions, provideTransitionScope, rebalanceContainer, rebaseOps, reconcile, registerResource, removeElement, resolvePause, scan, scrollPosition, select, sensor, sensors, signalFromEvent, startWith, store, storeHistory, stored, syncedFork, tabSync, tap, throttle, throttled, toFakeDerivation, toFakeSignalDerivation, toStore, toWritable, traced, until, use, validateEnvelope, windowSize, withHistory, wrappedContainer };
|
|
4691
|
-
export type { AsyncStore, BatteryStatus, ClipboardSignal, Computation, ConcurrencyInstrumentation, Conflicted, ContainerEntry, ContainerNode, ConvergingApply, CreateChunkedOptions, CreateDebouncedOptions, CreateHistoryOptions, CreateLatestOptions, CreateOpLogOptions, CreatePooledOptions, CreateProvidedPooledOptions, CreateStoredOptions, CreateThrottledOptions, CreateTransitionScopeOptions, DebouncedSignal, DeferStrategy, DeferredSignal, DeferredValueOptions, DerivedSignal, Dot, DotFrontier, DuplicateKeyPolicy, ElementSize, ElementSizeOptions, ElementSizeSignal, ElementVisibilityOptions, ElementVisibilitySignal, ExtendStoreOptions, FoldFn, FoldPolicyEntry, FoldResult, Fork, ForkStoreOptions, ForkStrategy, ForwardingTransitionScope, Frame, GeolocationOptions, GeolocationSignal, Hlc, HlcClock, IdleOptions, IdleSignal, KeyedContainer, KeyedContainerConfig, LatestSignal, MergeContext, MergeFn, MergePolicyEntry, MmTransitionContext, MousePositionOptions, MousePositionSignal, MutableSignal, MutableSignalStore, NetworkStatusSignal, OpBatch, OpEnvelope, OpLog, OpLogDriver, OpSync, OpSyncCheckpoint, OpSyncOptions, Opaque, OrderedEntry, PausableOptions, PauseOption, PersistHandle, PersistOptions, PersistedStore, PersistedStoreDefaults, PersistedStoreOptions, PipeableSignal, PointerDragOptions, PointerDragSignal, PointerDragState, PointerModifiers, PointerPoint, ProjectionOptions, RebaseResult, ReconcileFn, ReconcileKey, RegisterCheckpoint, RegisterOptions, ResourceLike, ScreenOrientation, ScreenOrientationState, ScrollPosition, ScrollPositionOptions, ScrollPositionSignal, SelfKeyedContainer, SensorRunOptions, SignalFromEventOptions, SignalStore, SignalWithHistory, StoreHistory, StoreHistoryOptions, StoreOp, StoreOptions, StoreTabSyncOptions, StoredSignal, SuspendType, SyncOp, SyncSibling, SyncSignalOptions, SyncedFork, TabSyncBus, ThrottledSignal, Traced, Transaction, TransactionRef, TransitionRef, TransitionScope, UntilOptions, UseSource, Vivify, WindowSize, WindowSizeOptions, WindowSizeSignal, WithVivify, WritableSignalStore, toStoreOptions };
|
|
4720
|
+
export type { AsyncStore, BatteryStatus, ClipboardSignal, Computation, ConcurrencyInstrumentation, Conflicted, ContainerEntry, ContainerNode, ConvergingApply, CreateChunkedOptions, CreateDebouncedOptions, CreateHistoryOptions, CreateLatestOptions, CreateOpLogOptions, CreatePooledOptions, CreateProvidedPooledOptions, CreateStoredOptions, CreateThrottledOptions, CreateTransitionScopeOptions, DebouncedSignal, DeferStrategy, DeferredSignal, DeferredValueOptions, DerivedSignal, Dot, DotFrontier, DuplicateKeyPolicy, ElementSize, ElementSizeOptions, ElementSizeSignal, ElementVisibilityOptions, ElementVisibilitySignal, ExtendStoreOptions, FoldFn, FoldPolicyEntry, FoldResult, Fork, ForkStoreOptions, ForkStrategy, ForwardingTransitionScope, Frame, GeolocationOptions, GeolocationSignal, Hlc, HlcClock, IdleOptions, IdleSignal, KeepPreviousOptions, KeyedContainer, KeyedContainerConfig, LatestSignal, LiveRegister, MergeContext, MergeFn, MergePolicyEntry, MmTransitionContext, MousePositionOptions, MousePositionSignal, MutableSignal, MutableSignalStore, NetworkStatusSignal, OpBatch, OpEnvelope, OpLog, OpLogDriver, OpSync, OpSyncCheckpoint, OpSyncOptions, Opaque, OrderedEntry, PausableOptions, PauseOption, PersistHandle, PersistOptions, PersistedStore, PersistedStoreDefaults, PersistedStoreOptions, PipeableSignal, PointerDragOptions, PointerDragSignal, PointerDragState, PointerModifiers, PointerPoint, ProjectionOptions, RebaseResult, ReconcileFn, ReconcileKey, RegisterCheckpoint, RegisterOptions, ResourceLike, ScreenOrientation, ScreenOrientationState, ScrollPosition, ScrollPositionOptions, ScrollPositionSignal, SelfKeyedContainer, SensorRunOptions, SignalFromEventOptions, SignalStore, SignalWithHistory, StoreHistory, StoreHistoryOptions, StoreOp, StoreOptions, StoreTabSyncOptions, StoredSignal, SuspendType, SyncOp, SyncSibling, SyncSignalOptions, SyncedFork, TabSyncBus, ThrottledSignal, Traced, Transaction, TransactionRef, TransitionRef, TransitionScope, UntilOptions, UseSource, Vivify, WindowSize, WindowSizeOptions, WindowSizeSignal, WithVivify, WritableSignalStore, toStoreOptions };
|