meridian-sdk 0.3.4 → 0.4.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/CHANGELOG.md +7 -0
- package/README.md +45 -0
- package/dist/client.d.ts +26 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +39 -0
- package/dist/client.js.map +1 -1
- package/dist/crdt/awareness.d.ts +79 -0
- package/dist/crdt/awareness.d.ts.map +1 -0
- package/dist/crdt/awareness.js +119 -0
- package/dist/crdt/awareness.js.map +1 -0
- package/dist/crdt/crdtmap.d.ts +4 -4
- package/dist/crdt/crdtmap.d.ts.map +1 -1
- package/dist/crdt/crdtmap.js +8 -8
- package/dist/crdt/crdtmap.js.map +1 -1
- package/dist/crdt/gcounter.d.ts +1 -1
- package/dist/crdt/gcounter.d.ts.map +1 -1
- package/dist/crdt/gcounter.js +2 -2
- package/dist/crdt/gcounter.js.map +1 -1
- package/dist/crdt/lwwregister.d.ts +1 -1
- package/dist/crdt/lwwregister.d.ts.map +1 -1
- package/dist/crdt/lwwregister.js +2 -1
- package/dist/crdt/lwwregister.js.map +1 -1
- package/dist/crdt/orset.d.ts +2 -2
- package/dist/crdt/orset.d.ts.map +1 -1
- package/dist/crdt/orset.js +4 -2
- package/dist/crdt/orset.js.map +1 -1
- package/dist/crdt/pncounter.d.ts +2 -2
- package/dist/crdt/pncounter.d.ts.map +1 -1
- package/dist/crdt/pncounter.js +6 -6
- package/dist/crdt/pncounter.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/schema.d.ts +12 -0
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +16 -1
- package/dist/schema.js.map +1 -1
- package/dist/transport/websocket.d.ts.map +1 -1
- package/dist/transport/websocket.js +9 -1
- package/dist/transport/websocket.js.map +1 -1
- package/package.json +1 -1
- package/src/client.ts +40 -0
- package/src/crdt/awareness.ts +149 -0
- package/src/crdt/crdtmap.ts +8 -8
- package/src/crdt/gcounter.ts +2 -2
- package/src/crdt/lwwregister.ts +2 -1
- package/src/crdt/orset.ts +4 -2
- package/src/crdt/pncounter.ts +6 -6
- package/src/index.ts +2 -0
- package/src/schema.ts +18 -1
- package/src/transport/websocket.ts +8 -1
- package/test/crdt.test.ts +71 -0
package/CHANGELOG.md
ADDED
package/README.md
CHANGED
|
@@ -94,9 +94,54 @@ await Effect.runPromise(
|
|
|
94
94
|
| `client.lwwregister(id, schema?)` | `LwwRegisterHandle<T>` | Optional |
|
|
95
95
|
| `client.presence(id, schema?)` | `PresenceHandle<T>` | Optional |
|
|
96
96
|
| `client.crdtmap(id)` | `CRDTMapHandle` | — |
|
|
97
|
+
| `client.awareness(key, schema?)` | `AwarenessHandle<T>` | Optional |
|
|
97
98
|
|
|
98
99
|
Without a schema, `T = unknown`. With a schema, incoming deltas are validated at runtime via `Schema.decodeUnknownSync`.
|
|
99
100
|
|
|
101
|
+
### Awareness
|
|
102
|
+
|
|
103
|
+
Ephemeral pub/sub channel — updates are fanned out to all other subscribers in real time but are **not** persisted. Use this for high-frequency transient state like cursor positions or "is typing" indicators.
|
|
104
|
+
|
|
105
|
+
```ts
|
|
106
|
+
const CursorSchema = Schema.Struct({ x: Schema.Number, y: Schema.Number });
|
|
107
|
+
const cursors = client.awareness("cursors", CursorSchema);
|
|
108
|
+
|
|
109
|
+
// Send our state (fire-and-forget)
|
|
110
|
+
cursors.update({ x: 120, y: 80 });
|
|
111
|
+
|
|
112
|
+
// Listen to peer updates
|
|
113
|
+
const unsub = cursors.onChange(peers => {
|
|
114
|
+
console.log("peers:", peers); // AwarenessEntry<{ x, y }>[]
|
|
115
|
+
});
|
|
116
|
+
|
|
117
|
+
// Clear our entry when leaving (e.g. tab hidden, component unmount)
|
|
118
|
+
cursors.clear();
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Unlike `presence`, awareness entries are never stored — if a client connects after a peer's last update, it will not see that peer's state until the peer sends another update.
|
|
122
|
+
|
|
123
|
+
### TTL-based expiry
|
|
124
|
+
|
|
125
|
+
Any op can include an optional `ttlMs` to schedule automatic server-side deletion after the given duration. The GC task runs every 5 seconds and permanently removes expired entries.
|
|
126
|
+
|
|
127
|
+
```ts
|
|
128
|
+
// LWW register that auto-deletes after 60 seconds
|
|
129
|
+
const session = client.lwwregister("lw:session:abc");
|
|
130
|
+
session.set({ userId: 42, role: "editor" }, 60_000);
|
|
131
|
+
|
|
132
|
+
// GCounter with a 1-hour TTL
|
|
133
|
+
const views = client.gcounter("gc:daily-views");
|
|
134
|
+
views.increment(1, 3_600_000);
|
|
135
|
+
|
|
136
|
+
// ORSet entry with a 5-minute TTL
|
|
137
|
+
const cart = client.orset("or:cart");
|
|
138
|
+
cart.add({ sku: "ABC" }, 300_000);
|
|
139
|
+
|
|
140
|
+
// CRDTMap with TTL on a single field write
|
|
141
|
+
const doc = client.crdtmap("cm:doc");
|
|
142
|
+
doc.lwwSet("draft", "Hello world", 86_400_000); // 24h
|
|
143
|
+
```
|
|
144
|
+
|
|
100
145
|
### Offline queue
|
|
101
146
|
|
|
102
147
|
Operations sent while disconnected are buffered automatically and flushed in order on reconnect. No configuration needed — it works transparently for all CRDT handles.
|
package/dist/client.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ import { ORSetHandle } from "./crdt/orset.js";
|
|
|
8
8
|
import { LwwRegisterHandle } from "./crdt/lwwregister.js";
|
|
9
9
|
import { PresenceHandle } from "./crdt/presence.js";
|
|
10
10
|
import { CRDTMapHandle } from "./crdt/crdtmap.js";
|
|
11
|
+
import { AwarenessHandle } from "./crdt/awareness.js";
|
|
11
12
|
import type { TokenClaims } from "./schema.js";
|
|
12
13
|
import type { TokenParseError, TokenExpiredError } from "./errors.js";
|
|
13
14
|
export interface GCounterSnapshotEntry {
|
|
@@ -106,6 +107,7 @@ export declare class MeridianClient {
|
|
|
106
107
|
private readonly lwHandles;
|
|
107
108
|
private readonly prHandles;
|
|
108
109
|
private readonly cmHandles;
|
|
110
|
+
private readonly awHandles;
|
|
109
111
|
private readonly anyListeners;
|
|
110
112
|
private readonly deltaListeners;
|
|
111
113
|
private readonly handleUnsubs;
|
|
@@ -240,6 +242,30 @@ export declare class MeridianClient {
|
|
|
240
242
|
* ```
|
|
241
243
|
*/
|
|
242
244
|
crdtmap(crdtId: string): CRDTMapHandle;
|
|
245
|
+
/**
|
|
246
|
+
* Returns a handle for an ephemeral awareness channel.
|
|
247
|
+
*
|
|
248
|
+
* Awareness updates are fanned out to all other subscribers in the namespace
|
|
249
|
+
* in real time but are **not** persisted. Use this for high-frequency,
|
|
250
|
+
* transient UI state like cursor positions or "is typing" indicators.
|
|
251
|
+
*
|
|
252
|
+
* Handles are cached by `key`; the same handle is returned for repeated calls
|
|
253
|
+
* with the same key.
|
|
254
|
+
*
|
|
255
|
+
* @param key - Logical channel name (e.g. `"cursors"`, `"selection:doc-1"`).
|
|
256
|
+
* @param schema - Optional Effect schema used to decode peer payloads at runtime.
|
|
257
|
+
*
|
|
258
|
+
* @example
|
|
259
|
+
* ```ts
|
|
260
|
+
* import { Schema } from 'effect';
|
|
261
|
+
*
|
|
262
|
+
* const CursorSchema = Schema.Struct({ x: Schema.Number, y: Schema.Number });
|
|
263
|
+
* const cursors = client.awareness('cursors', CursorSchema);
|
|
264
|
+
* cursors.update({ x: 42, y: 100 });
|
|
265
|
+
* cursors.onChange(peers => console.log(peers));
|
|
266
|
+
* ```
|
|
267
|
+
*/
|
|
268
|
+
awareness<T = unknown>(key: string, schema?: Schema.Schema<T>): AwarenessHandle<T>;
|
|
243
269
|
waitForConnected(timeoutMs?: number): Promise<void>;
|
|
244
270
|
/** Number of ops buffered locally, waiting to be sent on reconnect. */
|
|
245
271
|
get pendingOpCount(): number;
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAExD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/client.js
CHANGED
|
@@ -7,6 +7,7 @@ import { ORSetHandle } from "./crdt/orset.js";
|
|
|
7
7
|
import { LwwRegisterHandle } from "./crdt/lwwregister.js";
|
|
8
8
|
import { PresenceHandle } from "./crdt/presence.js";
|
|
9
9
|
import { CRDTMapHandle } from "./crdt/crdtmap.js";
|
|
10
|
+
import { AwarenessHandle } from "./crdt/awareness.js";
|
|
10
11
|
import { decodeGCounterDelta, decodePNCounterDelta, decodeORSetDelta, decodeLwwDelta, decodePresenceDelta, decodeCRDTMapDelta, } from "./sync/delta.js";
|
|
11
12
|
import { parseAndValidateToken } from "./auth/token.js";
|
|
12
13
|
/**
|
|
@@ -48,6 +49,7 @@ export class MeridianClient {
|
|
|
48
49
|
lwHandles = new Map();
|
|
49
50
|
prHandles = new Map();
|
|
50
51
|
cmHandles = new Map();
|
|
52
|
+
awHandles = new Map();
|
|
51
53
|
anyListeners = new Set();
|
|
52
54
|
deltaListeners = new Set();
|
|
53
55
|
handleUnsubs = [];
|
|
@@ -261,6 +263,38 @@ export class MeridianClient {
|
|
|
261
263
|
}
|
|
262
264
|
return handle;
|
|
263
265
|
}
|
|
266
|
+
/**
|
|
267
|
+
* Returns a handle for an ephemeral awareness channel.
|
|
268
|
+
*
|
|
269
|
+
* Awareness updates are fanned out to all other subscribers in the namespace
|
|
270
|
+
* in real time but are **not** persisted. Use this for high-frequency,
|
|
271
|
+
* transient UI state like cursor positions or "is typing" indicators.
|
|
272
|
+
*
|
|
273
|
+
* Handles are cached by `key`; the same handle is returned for repeated calls
|
|
274
|
+
* with the same key.
|
|
275
|
+
*
|
|
276
|
+
* @param key - Logical channel name (e.g. `"cursors"`, `"selection:doc-1"`).
|
|
277
|
+
* @param schema - Optional Effect schema used to decode peer payloads at runtime.
|
|
278
|
+
*
|
|
279
|
+
* @example
|
|
280
|
+
* ```ts
|
|
281
|
+
* import { Schema } from 'effect';
|
|
282
|
+
*
|
|
283
|
+
* const CursorSchema = Schema.Struct({ x: Schema.Number, y: Schema.Number });
|
|
284
|
+
* const cursors = client.awareness('cursors', CursorSchema);
|
|
285
|
+
* cursors.update({ x: 42, y: 100 });
|
|
286
|
+
* cursors.onChange(peers => console.log(peers));
|
|
287
|
+
* ```
|
|
288
|
+
*/
|
|
289
|
+
awareness(key, schema) {
|
|
290
|
+
const existing = this.awHandles.get(key);
|
|
291
|
+
if (existing)
|
|
292
|
+
return existing;
|
|
293
|
+
const handle = new AwarenessHandle(key, this.transport, this.clientId, schema);
|
|
294
|
+
this.awHandles.set(key, handle);
|
|
295
|
+
this.handleUnsubs.push(handle.onChange(() => { this.notifyAnyChange(); }));
|
|
296
|
+
return handle;
|
|
297
|
+
}
|
|
264
298
|
waitForConnected(timeoutMs = 5_000) {
|
|
265
299
|
return this.transport.waitForConnected(timeoutMs);
|
|
266
300
|
}
|
|
@@ -343,6 +377,11 @@ export class MeridianClient {
|
|
|
343
377
|
fn();
|
|
344
378
|
}
|
|
345
379
|
handleServerMsg(msg) {
|
|
380
|
+
if ("AwarenessBroadcast" in msg) {
|
|
381
|
+
const { client_id, key, data } = msg.AwarenessBroadcast;
|
|
382
|
+
this.awHandles.get(key)?.applyBroadcast(client_id, data);
|
|
383
|
+
return;
|
|
384
|
+
}
|
|
346
385
|
if (!("Delta" in msg))
|
|
347
386
|
return;
|
|
348
387
|
const { crdt_id, delta_bytes } = msg.Delta;
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import type { Schema } from "effect";
|
|
2
|
+
import type { WsTransport } from "../transport/websocket.js";
|
|
3
|
+
/**
|
|
4
|
+
* A single peer's awareness state on a given channel.
|
|
5
|
+
*
|
|
6
|
+
* Unlike presence entries, awareness entries are ephemeral: they are not
|
|
7
|
+
* persisted and disappear when the sender disconnects or clears their state.
|
|
8
|
+
*/
|
|
9
|
+
export interface AwarenessEntry<T> {
|
|
10
|
+
/** The sender's client ID (from their token). */
|
|
11
|
+
clientId: number;
|
|
12
|
+
/** The decoded payload sent by the peer. */
|
|
13
|
+
data: T;
|
|
14
|
+
/** Local timestamp (ms) when this entry was last received. */
|
|
15
|
+
receivedAt: number;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Handle for an ephemeral awareness channel.
|
|
19
|
+
*
|
|
20
|
+
* Awareness is a stateless pub/sub channel: updates are fanned out to all
|
|
21
|
+
* other subscribers in the same namespace in real time, but are **not**
|
|
22
|
+
* persisted. If a client connects after a peer's last update, it will not
|
|
23
|
+
* see that peer's state until the peer sends another update.
|
|
24
|
+
*
|
|
25
|
+
* Use this for high-frequency, transient UI state like cursor positions,
|
|
26
|
+
* text selections, or "is typing" indicators — not for durable shared data.
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```ts
|
|
30
|
+
* const cursors = client.awareness<{ x: number; y: number }>('cursors');
|
|
31
|
+
* cursors.update({ x: 100, y: 200 });
|
|
32
|
+
* cursors.onChange(peers => console.log('peers:', peers));
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export declare class AwarenessHandle<T = unknown> {
|
|
36
|
+
private readonly key;
|
|
37
|
+
private readonly transport;
|
|
38
|
+
private readonly clientId;
|
|
39
|
+
private readonly schema?;
|
|
40
|
+
private readonly entries;
|
|
41
|
+
private readonly listeners;
|
|
42
|
+
constructor(key: string, transport: WsTransport, clientId: number, schema?: Schema.Schema<T> | undefined);
|
|
43
|
+
/**
|
|
44
|
+
* Send our local awareness state to all peers (fire-and-forget).
|
|
45
|
+
*
|
|
46
|
+
* The server does not acknowledge awareness updates — this is a best-effort
|
|
47
|
+
* broadcast. Offline updates are **not** queued: they are dropped silently
|
|
48
|
+
* since awareness data is inherently time-sensitive.
|
|
49
|
+
*/
|
|
50
|
+
update(data: T): void;
|
|
51
|
+
/**
|
|
52
|
+
* Clear our own entry from remote peers (e.g. on tab hide or component unmount).
|
|
53
|
+
*
|
|
54
|
+
* Sends a `null` payload, which causes all subscribers to remove our entry.
|
|
55
|
+
*/
|
|
56
|
+
clear(): void;
|
|
57
|
+
/**
|
|
58
|
+
* Apply an incoming `AwarenessBroadcast` from the server.
|
|
59
|
+
* Called internally by `MeridianClient.handleServerMsg`.
|
|
60
|
+
*
|
|
61
|
+
* @internal
|
|
62
|
+
*/
|
|
63
|
+
applyBroadcast(fromClientId: number, rawData: Uint8Array): void;
|
|
64
|
+
/**
|
|
65
|
+
* Returns the current awareness state for all **other** peers on this channel.
|
|
66
|
+
*
|
|
67
|
+
* Self is excluded (own updates are not echoed back by the server).
|
|
68
|
+
*/
|
|
69
|
+
peers(): AwarenessEntry<T>[];
|
|
70
|
+
/**
|
|
71
|
+
* Subscribe to peer awareness changes.
|
|
72
|
+
*
|
|
73
|
+
* The listener receives the updated `peers()` array whenever a remote peer
|
|
74
|
+
* sends an update or clears their state. Returns an unsubscribe function.
|
|
75
|
+
*/
|
|
76
|
+
onChange(listener: (entries: AwarenessEntry<T>[]) => void): () => void;
|
|
77
|
+
private emit;
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=awareness.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"awareness.d.ts","sourceRoot":"","sources":["../../src/crdt/awareness.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAM7D;;;;;GAKG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,iDAAiD;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,IAAI,EAAE,CAAC,CAAC;IACR,8DAA8D;IAC9D,UAAU,EAAE,MAAM,CAAC;CACpB;AAMD;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,eAAe,CAAC,CAAC,GAAG,OAAO;IAOpC,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IAT1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwC;IAChE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAEtB;gBAGe,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,WAAW,EACtB,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,YAAA;IAG5C;;;;;;OAMG;IACH,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI;IAKrB;;;;OAIG;IACH,KAAK,IAAI,IAAI;IAMb;;;;;OAKG;IACH,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI;IA4B/D;;;;OAIG;IACH,KAAK,IAAI,cAAc,CAAC,CAAC,CAAC,EAAE;IAQ5B;;;;;OAKG;IACH,QAAQ,CACN,QAAQ,EAAE,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,GAC/C,MAAM,IAAI;IAOb,OAAO,CAAC,IAAI;CAIb"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { Schema as S } from "effect";
|
|
2
|
+
import { encode, decode } from "../codec.js";
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
// AwarenessHandle
|
|
5
|
+
// ---------------------------------------------------------------------------
|
|
6
|
+
/**
|
|
7
|
+
* Handle for an ephemeral awareness channel.
|
|
8
|
+
*
|
|
9
|
+
* Awareness is a stateless pub/sub channel: updates are fanned out to all
|
|
10
|
+
* other subscribers in the same namespace in real time, but are **not**
|
|
11
|
+
* persisted. If a client connects after a peer's last update, it will not
|
|
12
|
+
* see that peer's state until the peer sends another update.
|
|
13
|
+
*
|
|
14
|
+
* Use this for high-frequency, transient UI state like cursor positions,
|
|
15
|
+
* text selections, or "is typing" indicators — not for durable shared data.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```ts
|
|
19
|
+
* const cursors = client.awareness<{ x: number; y: number }>('cursors');
|
|
20
|
+
* cursors.update({ x: 100, y: 200 });
|
|
21
|
+
* cursors.onChange(peers => console.log('peers:', peers));
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export class AwarenessHandle {
|
|
25
|
+
key;
|
|
26
|
+
transport;
|
|
27
|
+
clientId;
|
|
28
|
+
schema;
|
|
29
|
+
entries = new Map();
|
|
30
|
+
listeners = new Set();
|
|
31
|
+
constructor(key, transport, clientId, schema) {
|
|
32
|
+
this.key = key;
|
|
33
|
+
this.transport = transport;
|
|
34
|
+
this.clientId = clientId;
|
|
35
|
+
this.schema = schema;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Send our local awareness state to all peers (fire-and-forget).
|
|
39
|
+
*
|
|
40
|
+
* The server does not acknowledge awareness updates — this is a best-effort
|
|
41
|
+
* broadcast. Offline updates are **not** queued: they are dropped silently
|
|
42
|
+
* since awareness data is inherently time-sensitive.
|
|
43
|
+
*/
|
|
44
|
+
update(data) {
|
|
45
|
+
const encoded = encode(data);
|
|
46
|
+
this.transport.send({ AwarenessUpdate: { key: this.key, data: encoded } });
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Clear our own entry from remote peers (e.g. on tab hide or component unmount).
|
|
50
|
+
*
|
|
51
|
+
* Sends a `null` payload, which causes all subscribers to remove our entry.
|
|
52
|
+
*/
|
|
53
|
+
clear() {
|
|
54
|
+
this.transport.send({
|
|
55
|
+
AwarenessUpdate: { key: this.key, data: encode(null) },
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Apply an incoming `AwarenessBroadcast` from the server.
|
|
60
|
+
* Called internally by `MeridianClient.handleServerMsg`.
|
|
61
|
+
*
|
|
62
|
+
* @internal
|
|
63
|
+
*/
|
|
64
|
+
applyBroadcast(fromClientId, rawData) {
|
|
65
|
+
const decoded = decode(rawData);
|
|
66
|
+
if (decoded === null || decoded === undefined) {
|
|
67
|
+
if (this.entries.has(fromClientId)) {
|
|
68
|
+
this.entries.delete(fromClientId);
|
|
69
|
+
this.emit();
|
|
70
|
+
}
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
const data = this.schema
|
|
74
|
+
? S.decodeUnknownSync(this.schema)(decoded)
|
|
75
|
+
: decoded;
|
|
76
|
+
const existing = this.entries.get(fromClientId);
|
|
77
|
+
this.entries.set(fromClientId, {
|
|
78
|
+
clientId: fromClientId,
|
|
79
|
+
data,
|
|
80
|
+
receivedAt: Date.now(),
|
|
81
|
+
});
|
|
82
|
+
// Only notify if the entry was new or data changed (reference check is
|
|
83
|
+
// sufficient for the "new entry" case; data change always yields a new obj).
|
|
84
|
+
if (!existing || existing.data !== data) {
|
|
85
|
+
this.emit();
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Returns the current awareness state for all **other** peers on this channel.
|
|
90
|
+
*
|
|
91
|
+
* Self is excluded (own updates are not echoed back by the server).
|
|
92
|
+
*/
|
|
93
|
+
peers() {
|
|
94
|
+
const result = [];
|
|
95
|
+
for (const entry of this.entries.values()) {
|
|
96
|
+
if (entry.clientId !== this.clientId)
|
|
97
|
+
result.push(entry);
|
|
98
|
+
}
|
|
99
|
+
return result;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Subscribe to peer awareness changes.
|
|
103
|
+
*
|
|
104
|
+
* The listener receives the updated `peers()` array whenever a remote peer
|
|
105
|
+
* sends an update or clears their state. Returns an unsubscribe function.
|
|
106
|
+
*/
|
|
107
|
+
onChange(listener) {
|
|
108
|
+
this.listeners.add(listener);
|
|
109
|
+
return () => {
|
|
110
|
+
this.listeners.delete(listener);
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
emit() {
|
|
114
|
+
const entries = this.peers();
|
|
115
|
+
for (const fn of this.listeners)
|
|
116
|
+
fn(entries);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=awareness.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"awareness.js","sourceRoot":"","sources":["../../src/crdt/awareness.ts"],"names":[],"mappings":"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"}
|
package/dist/crdt/crdtmap.d.ts
CHANGED
|
@@ -36,17 +36,17 @@ export declare class CRDTMapHandle {
|
|
|
36
36
|
*/
|
|
37
37
|
onChange(listener: (value: CrdtMapValue) => void): () => void;
|
|
38
38
|
/** Increment a GCounter key by `amount` (default `1`). */
|
|
39
|
-
incrementCounter(key: string, amount?: number): void;
|
|
39
|
+
incrementCounter(key: string, amount?: number, ttlMs?: number): void;
|
|
40
40
|
/** Increment a PNCounter key by `amount` (default `1`). */
|
|
41
|
-
incrementPNCounter(key: string, amount?: number): void;
|
|
41
|
+
incrementPNCounter(key: string, amount?: number, ttlMs?: number): void;
|
|
42
42
|
/** Decrement a PNCounter key by `amount` (default `1`). */
|
|
43
|
-
decrementPNCounter(key: string, amount?: number): void;
|
|
43
|
+
decrementPNCounter(key: string, amount?: number, ttlMs?: number): void;
|
|
44
44
|
/** Add an element to an ORSet key. `tag` must be a 16-byte UUID as Uint8Array. */
|
|
45
45
|
orsetAdd(key: string, element: unknown, tag: Uint8Array): void;
|
|
46
46
|
/** Remove an element from an ORSet key. `knownTags` is the set of tags to remove. */
|
|
47
47
|
orsetRemove(key: string, element: unknown, knownTags: Uint8Array[]): void;
|
|
48
48
|
/** Write a value to an LWW-Register key. */
|
|
49
|
-
lwwSet(key: string, value: unknown): void;
|
|
49
|
+
lwwSet(key: string, value: unknown, ttlMs?: number): void;
|
|
50
50
|
applyDelta(delta: CRDTMapDelta): void;
|
|
51
51
|
private emit;
|
|
52
52
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crdtmap.d.ts","sourceRoot":"","sources":["../../src/crdt/crdtmap.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAkB,MAAM,kBAAkB,CAAC;AAErE,MAAM,WAAW,YAAY;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;;;;;GAQG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAc;IAExC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA4C;gBAE1D,IAAI,EAAE;QAChB,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,WAAW,CAAC;QACvB,OAAO,CAAC,EAAE,YAAY,CAAC;KACxB;IAOD,iFAAiF;IACjF,KAAK,IAAI,QAAQ,CAAC,YAAY,CAAC;IAI/B,qEAAqE;IACrE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,MAAM,IAAI;IAK7D,0DAA0D;IAC1D,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,MAAU,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"crdtmap.d.ts","sourceRoot":"","sources":["../../src/crdt/crdtmap.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAkB,MAAM,kBAAkB,CAAC;AAErE,MAAM,WAAW,YAAY;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;;;;;GAQG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAc;IAExC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA4C;gBAE1D,IAAI,EAAE;QAChB,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,WAAW,CAAC;QACvB,OAAO,CAAC,EAAE,YAAY,CAAC;KACxB;IAOD,iFAAiF;IACjF,KAAK,IAAI,QAAQ,CAAC,YAAY,CAAC;IAI/B,qEAAqE;IACrE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,MAAM,IAAI;IAK7D,0DAA0D;IAC1D,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,MAAU,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAYvE,2DAA2D;IAC3D,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,MAAU,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAYzE,2DAA2D;IAC3D,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,MAAU,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAYzE,kFAAkF;IAClF,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,GAAG,IAAI;IAW9D,qFAAqF;IACrF,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,IAAI;IAWzE,4CAA4C;IAC5C,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAkBzD,UAAU,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAYrC,OAAO,CAAC,IAAI;CAGb"}
|
package/dist/crdt/crdtmap.js
CHANGED
|
@@ -38,7 +38,7 @@ export class CRDTMapHandle {
|
|
|
38
38
|
return () => { this.listeners.delete(listener); };
|
|
39
39
|
}
|
|
40
40
|
/** Increment a GCounter key by `amount` (default `1`). */
|
|
41
|
-
incrementCounter(key, amount = 1) {
|
|
41
|
+
incrementCounter(key, amount = 1, ttlMs) {
|
|
42
42
|
if (amount <= 0)
|
|
43
43
|
throw new RangeError("CRDTMap.incrementCounter: amount must be > 0");
|
|
44
44
|
const op = encode({
|
|
@@ -48,10 +48,10 @@ export class CRDTMapHandle {
|
|
|
48
48
|
op: { GCounter: { client_id: this.clientId, amount } },
|
|
49
49
|
},
|
|
50
50
|
});
|
|
51
|
-
this.transport.send({ Op: { crdt_id: this.crdtId, op_bytes: op } });
|
|
51
|
+
this.transport.send({ Op: { crdt_id: this.crdtId, op_bytes: op, ...(ttlMs !== undefined && { ttl_ms: ttlMs }) } });
|
|
52
52
|
}
|
|
53
53
|
/** Increment a PNCounter key by `amount` (default `1`). */
|
|
54
|
-
incrementPNCounter(key, amount = 1) {
|
|
54
|
+
incrementPNCounter(key, amount = 1, ttlMs) {
|
|
55
55
|
if (amount <= 0)
|
|
56
56
|
throw new RangeError("CRDTMap.incrementPNCounter: amount must be > 0");
|
|
57
57
|
const op = encode({
|
|
@@ -61,10 +61,10 @@ export class CRDTMapHandle {
|
|
|
61
61
|
op: { PNCounter: { Increment: { client_id: this.clientId, amount } } },
|
|
62
62
|
},
|
|
63
63
|
});
|
|
64
|
-
this.transport.send({ Op: { crdt_id: this.crdtId, op_bytes: op } });
|
|
64
|
+
this.transport.send({ Op: { crdt_id: this.crdtId, op_bytes: op, ...(ttlMs !== undefined && { ttl_ms: ttlMs }) } });
|
|
65
65
|
}
|
|
66
66
|
/** Decrement a PNCounter key by `amount` (default `1`). */
|
|
67
|
-
decrementPNCounter(key, amount = 1) {
|
|
67
|
+
decrementPNCounter(key, amount = 1, ttlMs) {
|
|
68
68
|
if (amount <= 0)
|
|
69
69
|
throw new RangeError("CRDTMap.decrementPNCounter: amount must be > 0");
|
|
70
70
|
const op = encode({
|
|
@@ -74,7 +74,7 @@ export class CRDTMapHandle {
|
|
|
74
74
|
op: { PNCounter: { Decrement: { client_id: this.clientId, amount } } },
|
|
75
75
|
},
|
|
76
76
|
});
|
|
77
|
-
this.transport.send({ Op: { crdt_id: this.crdtId, op_bytes: op } });
|
|
77
|
+
this.transport.send({ Op: { crdt_id: this.crdtId, op_bytes: op, ...(ttlMs !== undefined && { ttl_ms: ttlMs }) } });
|
|
78
78
|
}
|
|
79
79
|
/** Add an element to an ORSet key. `tag` must be a 16-byte UUID as Uint8Array. */
|
|
80
80
|
orsetAdd(key, element, tag) {
|
|
@@ -99,7 +99,7 @@ export class CRDTMapHandle {
|
|
|
99
99
|
this.transport.send({ Op: { crdt_id: this.crdtId, op_bytes: op } });
|
|
100
100
|
}
|
|
101
101
|
/** Write a value to an LWW-Register key. */
|
|
102
|
-
lwwSet(key, value) {
|
|
102
|
+
lwwSet(key, value, ttlMs) {
|
|
103
103
|
const wallMs = Date.now();
|
|
104
104
|
const op = encode({
|
|
105
105
|
CRDTMap: {
|
|
@@ -114,7 +114,7 @@ export class CRDTMapHandle {
|
|
|
114
114
|
},
|
|
115
115
|
},
|
|
116
116
|
});
|
|
117
|
-
this.transport.send({ Op: { crdt_id: this.crdtId, op_bytes: op } });
|
|
117
|
+
this.transport.send({ Op: { crdt_id: this.crdtId, op_bytes: op, ...(ttlMs !== undefined && { ttl_ms: ttlMs }) } });
|
|
118
118
|
}
|
|
119
119
|
applyDelta(delta) {
|
|
120
120
|
let changed = false;
|
package/dist/crdt/crdtmap.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crdtmap.js","sourceRoot":"","sources":["../../src/crdt/crdtmap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAQrC;;;;;;;;GAQG;AACH,MAAM,OAAO,aAAa;IAChB,KAAK,GAAiB,EAAE,CAAC;IAChB,MAAM,CAAS;IACf,QAAQ,CAAS;IACjB,SAAS,CAAc;IAEvB,SAAS,GAAG,IAAI,GAAG,EAAiC,CAAC;IAEtE,YAAY,IAMX;QACC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;IAClC,CAAC;IAED,iFAAiF;IACjF,KAAK;QACH,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,qEAAqE;IACrE,GAAG,CAAC,GAAW;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,QAAuC;QAC9C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7B,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,0DAA0D;IAC1D,gBAAgB,CAAC,GAAW,EAAE,SAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"crdtmap.js","sourceRoot":"","sources":["../../src/crdt/crdtmap.ts"],"names":[],"mappings":"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"}
|
package/dist/crdt/gcounter.d.ts
CHANGED
|
@@ -38,7 +38,7 @@ export declare class GCounterHandle {
|
|
|
38
38
|
*
|
|
39
39
|
* @throws {RangeError} If `amount` is not greater than zero.
|
|
40
40
|
*/
|
|
41
|
-
increment(amount?: number): void;
|
|
41
|
+
increment(amount?: number, ttlMs?: number): void;
|
|
42
42
|
applyDelta(delta: GCounterDelta): void;
|
|
43
43
|
private emit;
|
|
44
44
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gcounter.d.ts","sourceRoot":"","sources":["../../src/crdt/gcounter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAED;;;;;GAKG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAc;IAExC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsC;gBAEpD,IAAI,EAAE;QAChB,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,WAAW,CAAC;QACvB,OAAO,CAAC,EAAE,aAAa,CAAC;KACzB;IAQD,2EAA2E;IAC3E,KAAK,IAAI,MAAM;IAIf,8EAA8E;IAC9E,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAI1C;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,IAAI;IAKvD;;;;OAIG;IACH,SAAS,CAAC,MAAM,GAAE,MAAU,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"gcounter.d.ts","sourceRoot":"","sources":["../../src/crdt/gcounter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAED;;;;;GAKG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAc;IAExC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsC;gBAEpD,IAAI,EAAE;QAChB,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,WAAW,CAAC;QACvB,OAAO,CAAC,EAAE,aAAa,CAAC;KACzB;IAQD,2EAA2E;IAC3E,KAAK,IAAI,MAAM;IAIf,8EAA8E;IAC9E,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAI1C;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,IAAI;IAKvD;;;;OAIG;IACH,SAAS,CAAC,MAAM,GAAE,MAAU,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAkBnD,UAAU,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAYtC,OAAO,CAAC,IAAI;CAMb"}
|
package/dist/crdt/gcounter.js
CHANGED
|
@@ -41,7 +41,7 @@ export class GCounterHandle {
|
|
|
41
41
|
*
|
|
42
42
|
* @throws {RangeError} If `amount` is not greater than zero.
|
|
43
43
|
*/
|
|
44
|
-
increment(amount = 1) {
|
|
44
|
+
increment(amount = 1, ttlMs) {
|
|
45
45
|
if (amount <= 0)
|
|
46
46
|
throw new RangeError("GCounter: increment amount must be > 0");
|
|
47
47
|
const key = String(this.clientId);
|
|
@@ -54,7 +54,7 @@ export class GCounterHandle {
|
|
|
54
54
|
},
|
|
55
55
|
});
|
|
56
56
|
this.transport.send({
|
|
57
|
-
Op: { crdt_id: this.crdtId, op_bytes: op },
|
|
57
|
+
Op: { crdt_id: this.crdtId, op_bytes: op, ...(ttlMs !== undefined && { ttl_ms: ttlMs }) },
|
|
58
58
|
});
|
|
59
59
|
}
|
|
60
60
|
applyDelta(delta) {
|