Skip to content

Documentation / @super-line/core / ResourceReplica

Interface: ResourceReplica ​

Defined in: packages/core/src/store.ts:53

A reactive handle over one opened CRDT document (mirrors super-store's StoreValue surface). Mutations are void: every local change leaves through ResourceReplica.onLocalChange, whoever produced it. applyRemote merges an inbound Change (own-origin merges are idempotent); seed hydrates the catch-up snapshot. Implemented by the client DocHandle replica.

Methods ​

applyDelete() ​

applyDelete(): void

Defined in: packages/core/src/store.ts:84

Mark this document deleted (server fan-out of a delete) + notify subscribers, so consumers re-read.

Returns ​

void


applyRemote() ​

applyRemote(change): void

Defined in: packages/core/src/store.ts:75

Parameters ​

change ​

StoreChange

Returns ​

void


delete() ​

delete(path): void

Defined in: packages/core/src/store.ts:59

Remove the value at path (a surgical key removal that merges, unlike a full-doc set).

Parameters ​

path ​

(string | number)[]

Returns ​

void


getSnapshot() ​

getSnapshot(): unknown

Defined in: packages/core/src/store.ts:54

Returns ​

unknown


native()? ​

optional native(): unknown

Defined in: packages/core/src/store.ts:74

The engine's own document handle, for content the contract cannot describe — a native root, i.e. a CRDT type bound beside the described root in the same document. Typed unknown on purpose: it keeps every CRDT vocabulary out of @super-line/client, so the engine package that already owns that dependency is the one that hands back a typed handle (yDocOf for the Yjs engine). Undefined for engines with nothing to expose.

Returns ​

unknown


onLocalChange() ​

onLocalChange(cb): () => void

Defined in: packages/core/src/store.ts:67

Observe local changes so the client can write them through. Push, not pull, because set is no longer the only writer: a ResourceReplica.native handle is mutated directly by whatever binds to it (a rich-text editor, say), producing changes no set call will ever return. It must therefore survive ResourceReplica.reset, which swaps the underlying document — the implementation owns the subscriber set rather than delegating to a document that a resync will discard.

Parameters ​

cb ​

(change) => void

Returns ​

() => void


reset()? ​

optional reset(snapshot): void

Defined in: packages/core/src/store.ts:82

Hard-resync to authoritative full state, discarding any local optimistic edits — unlike seed, which merges. Used by CRDT document collections after a server rejects a write (validate-before-commit, ADR-0007): the rejected edit was applied optimistically and must be thrown away.

Parameters ​

snapshot ​

unknown

Returns ​

void


seed() ​

seed(snapshot): void

Defined in: packages/core/src/store.ts:76

Parameters ​

snapshot ​

unknown

Returns ​

void


set() ​

set(data): void

Defined in: packages/core/src/store.ts:56

Parameters ​

data ​

unknown

Returns ​

void


subscribe() ​

subscribe(cb): () => void

Defined in: packages/core/src/store.ts:55

Parameters ​

cb ​

() => void

Returns ​

() => void


update() ​

update(partial): void

Defined in: packages/core/src/store.ts:57

Parameters ​

partial ​

unknown

Returns ​

void

Released under the MIT License.