@mmstack/primitives 22.11.0 → 22.12.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mmstack/primitives",
3
- "version": "22.11.0",
3
+ "version": "22.12.0",
4
4
  "keywords": [
5
5
  "angular",
6
6
  "signals",
@@ -3561,6 +3561,18 @@ type RegisterCheckpoint = {
3561
3561
  readonly siblings: readonly SyncSibling[];
3562
3562
  readonly water: Readonly<Record<string, Hlc>>;
3563
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
+ };
3569
+ /**
3570
+ * The highest HLC this replica has applied from each origin: what it has observed, as a version
3571
+ * vector. A sibling whose `hlc` is at or below the vector's entry for its origin was observed by
3572
+ * this replica (one writer per origin, applied in that writer's order). Monotone: maintained on
3573
+ * every ingest and checkpoint load, never lowered by pruning or reset.
3574
+ */
3575
+ type AppliedFrontier = Readonly<Record<string, Hlc>>;
3564
3576
  type ConvergingApply = {
3565
3577
  /**
3566
3578
  * Fold an envelope into the per-path registers and return the materialization deltas the
@@ -3593,6 +3605,14 @@ type ConvergingApply = {
3593
3605
  captureFrontier(): DotFrontier;
3594
3606
  /** The live (causally-maximal) siblings at a path: the emission-frontier read. */
3595
3607
  liveAt(path: readonly Key[]): readonly SyncSibling[];
3608
+ /**
3609
+ * The live registers at and under a path, shallow-first: what a reader compares its own
3610
+ * observation frontier against to tell "someone wrote here since I looked" for a whole
3611
+ * subtree (a fork's conflict projection). Registers with no live sibling are omitted.
3612
+ */
3613
+ liveUnder(path: readonly Key[]): readonly LiveRegister[];
3614
+ /** The per-origin observation vector; see {@link AppliedFrontier}. */
3615
+ appliedFrontier(): AppliedFrontier;
3596
3616
  /**
3597
3617
  * Deepest-live-wins materialization of the whole tree from the current register state: the
3598
3618
  * root register's fold value with every live descendant fold grafted on. This is what a
@@ -3719,6 +3739,19 @@ type OpSync<T = unknown> = {
3719
3739
  * never saw. Scoped and synchronous, like {@link override}.
3720
3740
  */
3721
3741
  commitScope(frontier: DotFrontier, fn: () => void): void;
3742
+ /**
3743
+ * Read the live registers at and under a path (see {@link ConvergingApply.liveUnder}). A pure
3744
+ * read of what this peer has applied: pending local writes are not in it until they flush.
3745
+ */
3746
+ liveUnder(path: readonly Key[]): readonly LiveRegister[];
3747
+ /** The live siblings at one path (see {@link ConvergingApply.liveAt}); a pure read like `liveUnder`. */
3748
+ liveAt(path: readonly Key[]): readonly SyncSibling[];
3749
+ /**
3750
+ * What this replica has observed, per origin (see {@link AppliedFrontier}). A pure read: pending
3751
+ * local writes are not in it until they flush. The comparable form for "did the writer of this
3752
+ * sibling's register see that write" questions, which relay order can never answer.
3753
+ */
3754
+ appliedFrontier(): AppliedFrontier;
3722
3755
  /** Per-origin latest versions — the handshake watermark. */
3723
3756
  watermark(): Record<string, number>;
3724
3757
  /** The full checkpoint (root + register state + watermark), for answering a peer's hello. */
@@ -4701,4 +4734,4 @@ type CreateHistoryOptions<T> = Omit<CreateSignalOptions<T[]>, 'equal'> & {
4701
4734
  declare function withHistory<T>(sourceOrValue: WritableSignal<T> | T, opt?: CreateHistoryOptions<T>): SignalWithHistory<T>;
4702
4735
 
4703
4736
  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 };
4704
- 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, 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 };
4737
+ export type { AppliedFrontier, 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 };