meridian-sdk 1.2.0 → 1.3.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 +18 -0
- package/README.md +1 -0
- package/dist/agents.d.ts +143 -8
- package/dist/agents.d.ts.map +1 -1
- package/dist/agents.js +141 -14
- package/dist/agents.js.map +1 -1
- package/dist/client.d.ts +35 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +45 -3
- package/dist/client.js.map +1 -1
- package/dist/conflict/types.d.ts +54 -0
- package/dist/conflict/types.d.ts.map +1 -0
- package/dist/conflict/types.js +9 -0
- package/dist/conflict/types.js.map +1 -0
- package/dist/crdt/rga.d.ts +20 -4
- package/dist/crdt/rga.d.ts.map +1 -1
- package/dist/crdt/rga.js +42 -6
- package/dist/crdt/rga.js.map +1 -1
- package/dist/crdt/tree.d.ts +128 -0
- package/dist/crdt/tree.d.ts.map +1 -0
- package/dist/crdt/tree.js +304 -0
- package/dist/crdt/tree.js.map +1 -0
- package/dist/index.d.ts +13 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -3
- package/dist/index.js.map +1 -1
- package/dist/schema.d.ts +63 -3
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +18 -1
- package/dist/schema.js.map +1 -1
- package/dist/sync/delta.d.ts +35 -0
- package/dist/sync/delta.d.ts.map +1 -1
- package/dist/sync/delta.js +4 -0
- package/dist/sync/delta.js.map +1 -1
- package/dist/undo/UndoManager.d.ts +74 -0
- package/dist/undo/UndoManager.d.ts.map +1 -0
- package/dist/undo/UndoManager.js +318 -0
- package/dist/undo/UndoManager.js.map +1 -0
- package/dist/undo/types.d.ts +63 -0
- package/dist/undo/types.d.ts.map +1 -0
- package/dist/undo/types.js +9 -0
- package/dist/undo/types.js.map +1 -0
- package/dist/utils/fractional.d.ts +78 -0
- package/dist/utils/fractional.d.ts.map +1 -0
- package/dist/utils/fractional.js +159 -0
- package/dist/utils/fractional.js.map +1 -0
- package/dist/validation/index.d.ts +107 -0
- package/dist/validation/index.d.ts.map +1 -0
- package/dist/validation/index.js +123 -0
- package/dist/validation/index.js.map +1 -0
- package/package.json +1 -1
- package/src/agents.ts +224 -15
- package/src/client.ts +52 -3
- package/src/conflict/types.ts +60 -0
- package/src/crdt/rga.ts +46 -7
- package/src/crdt/tree.ts +367 -0
- package/src/index.ts +31 -1
- package/src/schema.ts +24 -1
- package/src/sync/delta.ts +30 -1
- package/src/undo/UndoManager.ts +369 -0
- package/src/undo/types.ts +74 -0
- package/src/utils/fractional.ts +166 -0
- package/src/validation/index.ts +137 -0
- package/test/conflict.test.ts +242 -0
- package/test/fractional.test.ts +127 -0
- package/test/undo.test.ts +272 -0
- package/test/validation.test.ts +137 -0
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
import { Chunk, Effect, Stream } from "effect";
|
|
2
|
+
import { encode } from "../codec.js";
|
|
3
|
+
import { runValidator } from "../validation/index.js";
|
|
4
|
+
/** Maximum number of conflict events retained in the in-memory log. */
|
|
5
|
+
const CONFLICT_LOG_CAP = 200;
|
|
6
|
+
export class TreeHandle {
|
|
7
|
+
roots = [];
|
|
8
|
+
crdtId;
|
|
9
|
+
clientId;
|
|
10
|
+
transport;
|
|
11
|
+
validator;
|
|
12
|
+
listeners = new Set();
|
|
13
|
+
conflictListeners = new Set();
|
|
14
|
+
conflictHistory = [];
|
|
15
|
+
opCounter = 0;
|
|
16
|
+
/** Tracks parent, position, updatedAt, and value per node for undo support. */
|
|
17
|
+
nodeMetaMap = new Map();
|
|
18
|
+
constructor(opts) {
|
|
19
|
+
this.crdtId = opts.crdtId;
|
|
20
|
+
this.clientId = opts.clientId;
|
|
21
|
+
this.transport = opts.transport;
|
|
22
|
+
this.validator = opts.validator;
|
|
23
|
+
}
|
|
24
|
+
/** The CRDT key this handle is bound to. */
|
|
25
|
+
get id() { return this.crdtId; }
|
|
26
|
+
/** Returns the current tree value. */
|
|
27
|
+
value() {
|
|
28
|
+
return { roots: this.roots };
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Registers a listener called whenever the tree changes.
|
|
32
|
+
*
|
|
33
|
+
* @returns An unsubscribe function.
|
|
34
|
+
*/
|
|
35
|
+
onChange(listener) {
|
|
36
|
+
this.listeners.add(listener);
|
|
37
|
+
return () => { this.listeners.delete(listener); };
|
|
38
|
+
}
|
|
39
|
+
/** Returns an Effect Stream that emits the tree on every change. */
|
|
40
|
+
stream() {
|
|
41
|
+
return Stream.async((emit) => {
|
|
42
|
+
const unsub = this.onChange((value) => { void emit(Effect.succeed(Chunk.of(value))); });
|
|
43
|
+
return Effect.sync(unsub);
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Adds a new node to the tree.
|
|
48
|
+
*
|
|
49
|
+
* @param parentId - ID of the parent node, or null for a root-level node.
|
|
50
|
+
* @param position - Fractional index string for sibling ordering (e.g. "a0", "b0").
|
|
51
|
+
* @param value - String content of the node.
|
|
52
|
+
* @param ttlMs - Optional TTL.
|
|
53
|
+
* @returns The new node's ID as a string.
|
|
54
|
+
*/
|
|
55
|
+
addNode(parentId, position, value, ttlMs) {
|
|
56
|
+
runValidator(this.validator, value);
|
|
57
|
+
const wallMs = Date.now();
|
|
58
|
+
const logical = this.opCounter++;
|
|
59
|
+
const id = { wall_ms: wallMs, logical, node_id: this.clientId };
|
|
60
|
+
const idStr = `${wallMs}:${logical}:${this.clientId}`;
|
|
61
|
+
// Optimistic meta update — allows UndoManager to read state immediately.
|
|
62
|
+
this.nodeMetaMap.set(idStr, {
|
|
63
|
+
parentId,
|
|
64
|
+
position,
|
|
65
|
+
updatedAt: idStr,
|
|
66
|
+
value,
|
|
67
|
+
});
|
|
68
|
+
const op = encode({
|
|
69
|
+
Tree: {
|
|
70
|
+
AddNode: {
|
|
71
|
+
id,
|
|
72
|
+
parent_id: parentId !== null ? this.parseHlc(parentId) : null,
|
|
73
|
+
position,
|
|
74
|
+
value,
|
|
75
|
+
},
|
|
76
|
+
},
|
|
77
|
+
});
|
|
78
|
+
this.transport.send({
|
|
79
|
+
Op: {
|
|
80
|
+
crdt_id: this.crdtId,
|
|
81
|
+
op_bytes: op,
|
|
82
|
+
...(ttlMs !== undefined && { ttl_ms: ttlMs }),
|
|
83
|
+
},
|
|
84
|
+
});
|
|
85
|
+
return idStr;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Moves a node to a new parent and/or position.
|
|
89
|
+
*
|
|
90
|
+
* @param nodeId - ID of the node to move.
|
|
91
|
+
* @param newParentId - New parent node ID, or null for root level.
|
|
92
|
+
* @param newPosition - New fractional index position.
|
|
93
|
+
* @param ttlMs - Optional TTL.
|
|
94
|
+
*/
|
|
95
|
+
moveNode(nodeId, newParentId, newPosition, ttlMs) {
|
|
96
|
+
const wallMs = Date.now();
|
|
97
|
+
const logical = this.opCounter++;
|
|
98
|
+
const opId = { wall_ms: wallMs, logical, node_id: this.clientId };
|
|
99
|
+
// Optimistic meta update.
|
|
100
|
+
const existing = this.nodeMetaMap.get(nodeId);
|
|
101
|
+
if (existing !== undefined) {
|
|
102
|
+
this.nodeMetaMap.set(nodeId, { ...existing, parentId: newParentId, position: newPosition });
|
|
103
|
+
}
|
|
104
|
+
const op = encode({
|
|
105
|
+
Tree: {
|
|
106
|
+
MoveNode: {
|
|
107
|
+
op_id: opId,
|
|
108
|
+
node_id: this.parseHlc(nodeId),
|
|
109
|
+
new_parent_id: newParentId !== null ? this.parseHlc(newParentId) : null,
|
|
110
|
+
new_position: newPosition,
|
|
111
|
+
},
|
|
112
|
+
},
|
|
113
|
+
});
|
|
114
|
+
this.transport.send({
|
|
115
|
+
Op: {
|
|
116
|
+
crdt_id: this.crdtId,
|
|
117
|
+
op_bytes: op,
|
|
118
|
+
...(ttlMs !== undefined && { ttl_ms: ttlMs }),
|
|
119
|
+
},
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Updates the value of an existing node (LWW — last write wins).
|
|
124
|
+
*
|
|
125
|
+
* @param nodeId - ID of the node to update.
|
|
126
|
+
* @param value - New string value.
|
|
127
|
+
* @param ttlMs - Optional TTL.
|
|
128
|
+
*/
|
|
129
|
+
updateNode(nodeId, value, ttlMs) {
|
|
130
|
+
runValidator(this.validator, value);
|
|
131
|
+
const wallMs = Date.now();
|
|
132
|
+
const logical = this.opCounter++;
|
|
133
|
+
const updatedAt = { wall_ms: wallMs, logical, node_id: this.clientId };
|
|
134
|
+
const updatedAtStr = `${wallMs}:${logical}:${this.clientId}`;
|
|
135
|
+
// Optimistic meta update.
|
|
136
|
+
const existing = this.nodeMetaMap.get(nodeId);
|
|
137
|
+
if (existing !== undefined) {
|
|
138
|
+
this.nodeMetaMap.set(nodeId, { ...existing, value, updatedAt: updatedAtStr });
|
|
139
|
+
}
|
|
140
|
+
const op = encode({
|
|
141
|
+
Tree: {
|
|
142
|
+
UpdateNode: {
|
|
143
|
+
id: this.parseHlc(nodeId),
|
|
144
|
+
value,
|
|
145
|
+
updated_at: updatedAt,
|
|
146
|
+
},
|
|
147
|
+
},
|
|
148
|
+
});
|
|
149
|
+
this.transport.send({
|
|
150
|
+
Op: {
|
|
151
|
+
crdt_id: this.crdtId,
|
|
152
|
+
op_bytes: op,
|
|
153
|
+
...(ttlMs !== undefined && { ttl_ms: ttlMs }),
|
|
154
|
+
},
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Tombstone-deletes a node. Children are preserved in the tree structure
|
|
159
|
+
* but become invisible until the node is undeleted via a concurrent move.
|
|
160
|
+
*
|
|
161
|
+
* @param nodeId - ID of the node to delete.
|
|
162
|
+
* @param ttlMs - Optional TTL.
|
|
163
|
+
*/
|
|
164
|
+
deleteNode(nodeId, ttlMs) {
|
|
165
|
+
const op = encode({
|
|
166
|
+
Tree: {
|
|
167
|
+
DeleteNode: {
|
|
168
|
+
id: this.parseHlc(nodeId),
|
|
169
|
+
},
|
|
170
|
+
},
|
|
171
|
+
});
|
|
172
|
+
this.transport.send({
|
|
173
|
+
Op: {
|
|
174
|
+
crdt_id: this.crdtId,
|
|
175
|
+
op_bytes: op,
|
|
176
|
+
...(ttlMs !== undefined && { ttl_ms: ttlMs }),
|
|
177
|
+
},
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Returns the last-known metadata for a node (parent, position, value, updatedAt).
|
|
182
|
+
* Used by UndoManager to capture pre-op state before mutations.
|
|
183
|
+
*/
|
|
184
|
+
getNodeMeta(nodeId) {
|
|
185
|
+
return this.nodeMetaMap.get(nodeId);
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Registers a listener called whenever a conflict is detected in an incoming delta.
|
|
189
|
+
* Conflicts include concurrent move resolutions, LWW overwrites, and discarded moves.
|
|
190
|
+
*
|
|
191
|
+
* @returns An unsubscribe function.
|
|
192
|
+
*/
|
|
193
|
+
onConflict(listener) {
|
|
194
|
+
this.conflictListeners.add(listener);
|
|
195
|
+
return () => { this.conflictListeners.delete(listener); };
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Returns the last up-to-200 conflict events in chronological order.
|
|
199
|
+
* Useful for rendering an audit log or "track changes" UI.
|
|
200
|
+
*/
|
|
201
|
+
conflictLog() {
|
|
202
|
+
return this.conflictHistory;
|
|
203
|
+
}
|
|
204
|
+
/** Apply a delta received from the server. Replaces local state with authoritative tree. */
|
|
205
|
+
applyDelta(delta) {
|
|
206
|
+
this.detectConflicts(delta.roots, null, delta.discarded_moves ?? []);
|
|
207
|
+
this.roots = delta.roots;
|
|
208
|
+
this.rebuildMetaMap(delta.roots, null);
|
|
209
|
+
this.emit();
|
|
210
|
+
}
|
|
211
|
+
/** Emit a conflict event to all listeners and append to history. */
|
|
212
|
+
emitConflict(event) {
|
|
213
|
+
if (this.conflictHistory.length >= CONFLICT_LOG_CAP) {
|
|
214
|
+
this.conflictHistory.shift();
|
|
215
|
+
}
|
|
216
|
+
this.conflictHistory.push(event);
|
|
217
|
+
for (const listener of this.conflictListeners)
|
|
218
|
+
listener(event);
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Walks the incoming delta tree and compares each node's server-authoritative
|
|
222
|
+
* parent/position/value against what the local client last recorded.
|
|
223
|
+
* Also processes discarded_moves from the server to emit move_discarded events.
|
|
224
|
+
* Emits conflict events for discrepancies caused by concurrent op resolution.
|
|
225
|
+
*/
|
|
226
|
+
detectConflicts(nodes, serverParentId, discardedMoves) {
|
|
227
|
+
const now = Date.now();
|
|
228
|
+
// Emit move_discarded events for server-rejected cycle moves.
|
|
229
|
+
for (const dm of discardedMoves) {
|
|
230
|
+
const hlcToStr = (hlc) => `${hlc.wall_ms}:${hlc.logical}:${hlc.node_id}`;
|
|
231
|
+
const event = {
|
|
232
|
+
kind: "move_discarded",
|
|
233
|
+
nodeId: hlcToStr(dm.node_id),
|
|
234
|
+
attemptedParentId: dm.attempted_parent_id !== null ? hlcToStr(dm.attempted_parent_id) : null,
|
|
235
|
+
attemptedPosition: dm.attempted_position,
|
|
236
|
+
actualParentId: dm.actual_parent_id !== null ? hlcToStr(dm.actual_parent_id) : null,
|
|
237
|
+
actualPosition: dm.actual_position,
|
|
238
|
+
at: now,
|
|
239
|
+
};
|
|
240
|
+
this.emitConflict(event);
|
|
241
|
+
}
|
|
242
|
+
for (const node of nodes) {
|
|
243
|
+
const local = this.nodeMetaMap.get(node.id);
|
|
244
|
+
if (local !== undefined) {
|
|
245
|
+
// Detect move reordering: server placed the node somewhere different
|
|
246
|
+
// from what the local optimistic update recorded.
|
|
247
|
+
if (local.parentId !== serverParentId || local.position !== node.position) {
|
|
248
|
+
const event = {
|
|
249
|
+
kind: "move_reordered",
|
|
250
|
+
nodeId: node.id,
|
|
251
|
+
localParentId: local.parentId,
|
|
252
|
+
localPosition: local.position,
|
|
253
|
+
serverParentId,
|
|
254
|
+
serverPosition: node.position,
|
|
255
|
+
at: now,
|
|
256
|
+
};
|
|
257
|
+
this.emitConflict(event);
|
|
258
|
+
}
|
|
259
|
+
// Detect LWW overwrite: server has a different value than local recorded.
|
|
260
|
+
if (local.value !== node.value) {
|
|
261
|
+
const event = {
|
|
262
|
+
kind: "lww_overwrite",
|
|
263
|
+
nodeId: node.id,
|
|
264
|
+
discardedValue: local.value,
|
|
265
|
+
winnerValue: node.value,
|
|
266
|
+
at: now,
|
|
267
|
+
};
|
|
268
|
+
this.emitConflict(event);
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
// Recurse into children — serverParentId for children is this node's id.
|
|
272
|
+
// discardedMoves are top-level only (already processed above).
|
|
273
|
+
this.detectConflicts(node.children, node.id, []);
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
/** Rebuilds nodeMetaMap from a full tree snapshot (called on each server delta). */
|
|
277
|
+
rebuildMetaMap(nodes, parentId) {
|
|
278
|
+
for (const node of nodes) {
|
|
279
|
+
const existing = this.nodeMetaMap.get(node.id);
|
|
280
|
+
this.nodeMetaMap.set(node.id, {
|
|
281
|
+
parentId,
|
|
282
|
+
position: node.position,
|
|
283
|
+
updatedAt: existing?.updatedAt ?? node.id,
|
|
284
|
+
value: node.value,
|
|
285
|
+
});
|
|
286
|
+
this.rebuildMetaMap(node.children, node.id);
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
emit() {
|
|
290
|
+
const v = { roots: this.roots };
|
|
291
|
+
for (const listener of this.listeners)
|
|
292
|
+
listener(v);
|
|
293
|
+
}
|
|
294
|
+
/** Parse an HLC string "wall_ms:logical:node_id" back to a Rust-compatible object. */
|
|
295
|
+
parseHlc(id) {
|
|
296
|
+
const parts = id.split(":");
|
|
297
|
+
return {
|
|
298
|
+
wall_ms: Number(parts[0]),
|
|
299
|
+
logical: Number(parts[1]),
|
|
300
|
+
node_id: Number(parts[2]),
|
|
301
|
+
};
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
//# sourceMappingURL=tree.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tree.js","sourceRoot":"","sources":["../../src/crdt/tree.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAKrC,OAAO,EAAsB,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAoB1E,uEAAuE;AACvE,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAE7B,MAAM,OAAO,UAAU;IACb,KAAK,GAAoB,EAAE,CAAC;IACnB,MAAM,CAAS;IACf,QAAQ,CAAS;IACjB,SAAS,CAAc;IACvB,SAAS,CAA4B;IACrC,SAAS,GAAG,IAAI,GAAG,EAA+C,CAAC;IACnE,iBAAiB,GAAG,IAAI,GAAG,EAAkC,CAAC;IAC9D,eAAe,GAAoB,EAAE,CAAC;IAC/C,SAAS,GAAG,CAAC,CAAC;IACtB,+EAA+E;IAC9D,WAAW,GAAG,IAAI,GAAG,EAAwB,CAAC;IAE/D,YAAY,IAKX;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,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IAClC,CAAC;IAED,4CAA4C;IAC5C,IAAI,EAAE,KAAa,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAExC,sCAAsC;IACtC,KAAK;QACH,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;IAC/B,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,QAAqD;QAC5D,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,oEAAoE;IACpE,MAAM;QACJ,OAAO,MAAM,CAAC,KAAK,CAA6B,CAAC,IAAI,EAAE,EAAE;YACvD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,GAAG,KAAK,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxF,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IACH,OAAO,CAAC,QAAuB,EAAE,QAAgB,EAAE,KAAa,EAAE,KAAc;QAC9E,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QACjC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChE,MAAM,KAAK,GAAG,GAAG,MAAM,IAAI,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEtD,yEAAyE;QACzE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE;YAC1B,QAAQ;YACR,QAAQ;YACR,SAAS,EAAE,KAAK;YAChB,KAAK;SACN,CAAC,CAAC;QAEH,MAAM,EAAE,GAAG,MAAM,CAAC;YAChB,IAAI,EAAE;gBACJ,OAAO,EAAE;oBACP,EAAE;oBACF,SAAS,EAAE,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI;oBAC7D,QAAQ;oBACR,KAAK;iBACN;aACF;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAClB,EAAE,EAAE;gBACF,OAAO,EAAE,IAAI,CAAC,MAAM;gBACpB,QAAQ,EAAE,EAAE;gBACZ,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;aAC9C;SACF,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;OAOG;IACH,QAAQ,CAAC,MAAc,EAAE,WAA0B,EAAE,WAAmB,EAAE,KAAc;QACtF,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;QAElE,0BAA0B;QAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,GAAG,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC;QAC9F,CAAC;QAED,MAAM,EAAE,GAAG,MAAM,CAAC;YAChB,IAAI,EAAE;gBACJ,QAAQ,EAAE;oBACR,KAAK,EAAE,IAAI;oBACX,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;oBAC9B,aAAa,EAAE,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI;oBACvE,YAAY,EAAE,WAAW;iBAC1B;aACF;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAClB,EAAE,EAAE;gBACF,OAAO,EAAE,IAAI,CAAC,MAAM;gBACpB,QAAQ,EAAE,EAAE;gBACZ,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;aAC9C;SACF,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,UAAU,CAAC,MAAc,EAAE,KAAa,EAAE,KAAc;QACtD,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QACjC,MAAM,SAAS,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACvE,MAAM,YAAY,GAAG,GAAG,MAAM,IAAI,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAE7D,0BAA0B;QAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC;QAChF,CAAC;QAED,MAAM,EAAE,GAAG,MAAM,CAAC;YAChB,IAAI,EAAE;gBACJ,UAAU,EAAE;oBACV,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;oBACzB,KAAK;oBACL,UAAU,EAAE,SAAS;iBACtB;aACF;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAClB,EAAE,EAAE;gBACF,OAAO,EAAE,IAAI,CAAC,MAAM;gBACpB,QAAQ,EAAE,EAAE;gBACZ,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;aAC9C;SACF,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,UAAU,CAAC,MAAc,EAAE,KAAc;QACvC,MAAM,EAAE,GAAG,MAAM,CAAC;YAChB,IAAI,EAAE;gBACJ,UAAU,EAAE;oBACV,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;iBAC1B;aACF;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAClB,EAAE,EAAE;gBACF,OAAO,EAAE,IAAI,CAAC,MAAM;gBACpB,QAAQ,EAAE,EAAE;gBACZ,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;aAC9C;SACF,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,WAAW,CAAC,MAAc;QACxB,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,QAAwC;QACjD,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACrC,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED;;;OAGG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED,4FAA4F;IAC5F,UAAU,CAAC,KAAgB;QACzB,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC;QACrE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,oEAAoE;IAC5D,YAAY,CAAC,KAAoB;QACvC,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,IAAI,gBAAgB,EAAE,CAAC;YACpD,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC/B,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,iBAAiB;YAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IACjE,CAAC;IAED;;;;;OAKG;IACK,eAAe,CACrB,KAAsB,EACtB,cAA6B,EAC7B,cAA+B;QAE/B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,8DAA8D;QAC9D,KAAK,MAAM,EAAE,IAAI,cAAc,EAAE,CAAC;YAChC,MAAM,QAAQ,GAAG,CAAC,GAA0D,EAAU,EAAE,CACtF,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YACjD,MAAM,KAAK,GAAuB;gBAChC,IAAI,EAAE,gBAAgB;gBACtB,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC;gBAC5B,iBAAiB,EAAE,EAAE,CAAC,mBAAmB,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,IAAI;gBAC5F,iBAAiB,EAAE,EAAE,CAAC,kBAAkB;gBACxC,cAAc,EAAE,EAAE,CAAC,gBAAgB,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI;gBACnF,cAAc,EAAE,EAAE,CAAC,eAAe;gBAClC,EAAE,EAAE,GAAG;aACR,CAAC;YACF,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC5C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,qEAAqE;gBACrE,kDAAkD;gBAClD,IAAI,KAAK,CAAC,QAAQ,KAAK,cAAc,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAC1E,MAAM,KAAK,GAAuB;wBAChC,IAAI,EAAE,gBAAgB;wBACtB,MAAM,EAAE,IAAI,CAAC,EAAE;wBACf,aAAa,EAAE,KAAK,CAAC,QAAQ;wBAC7B,aAAa,EAAE,KAAK,CAAC,QAAQ;wBAC7B,cAAc;wBACd,cAAc,EAAE,IAAI,CAAC,QAAQ;wBAC7B,EAAE,EAAE,GAAG;qBACR,CAAC;oBACF,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBAC3B,CAAC;gBAED,0EAA0E;gBAC1E,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;oBAC/B,MAAM,KAAK,GAAsB;wBAC/B,IAAI,EAAE,eAAe;wBACrB,MAAM,EAAE,IAAI,CAAC,EAAE;wBACf,cAAc,EAAE,KAAK,CAAC,KAAK;wBAC3B,WAAW,EAAE,IAAI,CAAC,KAAK;wBACvB,EAAE,EAAE,GAAG;qBACR,CAAC;oBACF,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBAC3B,CAAC;YACH,CAAC;YACD,yEAAyE;YACzE,+DAA+D;YAC/D,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,oFAAoF;IAC5E,cAAc,CAAC,KAAsB,EAAE,QAAuB;QACpE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC/C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE;gBAC5B,QAAQ;gBACR,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,SAAS,EAAE,QAAQ,EAAE,SAAS,IAAI,IAAI,CAAC,EAAE;gBACzC,KAAK,EAAE,IAAI,CAAC,KAAK;aAClB,CAAC,CAAC;YACH,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAEO,IAAI;QACV,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;QAChC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS;YAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,sFAAsF;IAC9E,QAAQ,CAAC,EAAU;QACzB,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5B,OAAO;YACL,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAC1B,CAAC;IACJ,CAAC;CACF"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { MeridianClient } from "./client.js";
|
|
2
|
-
export type { MeridianClientConfig, ClientSnapshot, DeltaEvent, CRDTSnapshotEntry, GCounterSnapshotEntry, PNCounterSnapshotEntry, ORSetSnapshotEntry, LwwRegisterSnapshotEntry, PresenceSnapshotEntry, CRDTMapSnapshotEntry, RGASnapshotEntry, } from "./client.js";
|
|
2
|
+
export type { MeridianClientConfig, ClientSnapshot, DeltaEvent, CRDTSnapshotEntry, GCounterSnapshotEntry, PNCounterSnapshotEntry, ORSetSnapshotEntry, LwwRegisterSnapshotEntry, PresenceSnapshotEntry, CRDTMapSnapshotEntry, RGASnapshotEntry, TreeSnapshotEntry, } from "./client.js";
|
|
3
3
|
export { GCounterHandle } from "./crdt/gcounter.js";
|
|
4
4
|
export { PNCounterHandle } from "./crdt/pncounter.js";
|
|
5
5
|
export { ORSetHandle } from "./crdt/orset.js";
|
|
@@ -11,16 +11,25 @@ export type { CrdtMapValue } from "./crdt/crdtmap.js";
|
|
|
11
11
|
export { AwarenessHandle } from "./crdt/awareness.js";
|
|
12
12
|
export type { AwarenessEntry } from "./crdt/awareness.js";
|
|
13
13
|
export { RGAHandle } from "./crdt/rga.js";
|
|
14
|
+
export { TreeHandle } from "./crdt/tree.js";
|
|
15
|
+
export type { TreeNodeValue, TreeDelta } from "./sync/delta.js";
|
|
14
16
|
export { HttpClient } from "./transport/http.js";
|
|
15
17
|
export type { HttpClientConfig, HistoryEntry, HistoryResponse } from "./transport/http.js";
|
|
16
18
|
export { WsTransport } from "./transport/websocket.js";
|
|
17
19
|
export type { WsTransportConfig, WsState } from "./transport/websocket.js";
|
|
18
20
|
export { parseToken, parseAndValidateToken, checkTokenExpiry, tokenTtlMs } from "./auth/token.js";
|
|
19
21
|
export { CodecError, TokenParseError, TokenExpiredError, HttpError, NetworkError, TransportError, } from "./errors.js";
|
|
20
|
-
export { TokenClaims, Permissions, VectorClock, ClientMsg, ServerMsg, GCounterValue, PNCounterValue, ORSetValue, LwwValue, PresenceValue, CrdtGetResponse, CrdtOpResponse, ErrorResponse, } from "./schema.js";
|
|
22
|
+
export { TokenClaims, Permissions, PermissionsV1, PermissionsV2, PermEntry, VectorClock, ClientMsg, ServerMsg, GCounterValue, PNCounterValue, ORSetValue, LwwValue, PresenceValue, CrdtGetResponse, CrdtOpResponse, ErrorResponse, } from "./schema.js";
|
|
21
23
|
export type { TimestampMs, ClientId } from "./schema.js";
|
|
22
|
-
export {
|
|
23
|
-
export type {
|
|
24
|
+
export { UndoManager } from "./undo/UndoManager.js";
|
|
25
|
+
export type { UndoEntry, UndoBatch, RgaInsertEntry, TreeAddEntry, TreeDeleteEntry, TreeMoveEntry, TreeUpdateEntry } from "./undo/types.js";
|
|
26
|
+
export { fi, between, before, after, start, end, spread } from "./utils/fractional.js";
|
|
27
|
+
export { CrdtValidationError, zodValidator, fnValidator } from "./validation/index.js";
|
|
28
|
+
export type { CrdtValidator } from "./validation/index.js";
|
|
29
|
+
export type { ConflictEvent, MoveDiscardedEvent, MoveReorderedEvent, LwwOverwriteEvent } from "./conflict/types.js";
|
|
30
|
+
export type { DiscardedMove } from "./sync/delta.js";
|
|
31
|
+
export { getMeridianTools, toOpenAITools, toGeminiTools, executeMeridianTool, executeOpenAITool, executeGeminiTool, } from "./agents.js";
|
|
32
|
+
export type { Tool, OpenAITool, GeminiFunctionDeclaration, GeminiTool, ToolUseBlock, OpenAIToolCall, GeminiFunctionCall, MeridianAgentConfig, } from "./agents.js";
|
|
24
33
|
export { MeridianService, MeridianLive } from "./layer.js";
|
|
25
34
|
export { encode, decode, encodeClientMsg, decodeServerMsg, encodeVectorClock, decodeVectorClock, } from "./codec.js";
|
|
26
35
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,YAAY,EACV,oBAAoB,EACpB,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACtB,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -9,6 +9,7 @@ export { PresenceHandle } from "./crdt/presence.js";
|
|
|
9
9
|
export { CRDTMapHandle } from "./crdt/crdtmap.js";
|
|
10
10
|
export { AwarenessHandle } from "./crdt/awareness.js";
|
|
11
11
|
export { RGAHandle } from "./crdt/rga.js";
|
|
12
|
+
export { TreeHandle } from "./crdt/tree.js";
|
|
12
13
|
// Transport
|
|
13
14
|
export { HttpClient } from "./transport/http.js";
|
|
14
15
|
export { WsTransport } from "./transport/websocket.js";
|
|
@@ -17,9 +18,15 @@ export { parseToken, parseAndValidateToken, checkTokenExpiry, tokenTtlMs } from
|
|
|
17
18
|
// Errors (all Data.TaggedError — matchable with Effect.catchTag)
|
|
18
19
|
export { CodecError, TokenParseError, TokenExpiredError, HttpError, NetworkError, TransportError, } from "./errors.js";
|
|
19
20
|
// Schema (Effect Schema — use for runtime validation / advanced use)
|
|
20
|
-
export { TokenClaims, Permissions, VectorClock, ClientMsg, ServerMsg, GCounterValue, PNCounterValue, ORSetValue, LwwValue, PresenceValue, CrdtGetResponse, CrdtOpResponse, ErrorResponse, } from "./schema.js";
|
|
21
|
-
//
|
|
22
|
-
export {
|
|
21
|
+
export { TokenClaims, Permissions, PermissionsV1, PermissionsV2, PermEntry, VectorClock, ClientMsg, ServerMsg, GCounterValue, PNCounterValue, ORSetValue, LwwValue, PresenceValue, CrdtGetResponse, CrdtOpResponse, ErrorResponse, } from "./schema.js";
|
|
22
|
+
// Undo/redo
|
|
23
|
+
export { UndoManager } from "./undo/UndoManager.js";
|
|
24
|
+
// Fractional indexing — position helpers for TreeCRDT
|
|
25
|
+
export { fi, between, before, after, start, end, spread } from "./utils/fractional.js";
|
|
26
|
+
// Validation — runtime validators for CRDT string values
|
|
27
|
+
export { CrdtValidationError, zodValidator, fnValidator } from "./validation/index.js";
|
|
28
|
+
// AI Agents — provider-agnostic tool use helpers (Anthropic, OpenAI, Gemini)
|
|
29
|
+
export { getMeridianTools, toOpenAITools, toGeminiTools, executeMeridianTool, executeOpenAITool, executeGeminiTool, } from "./agents.js";
|
|
23
30
|
// Effect Layer — dependency injection
|
|
24
31
|
export { MeridianService, MeridianLive } from "./layer.js";
|
|
25
32
|
// Codec (for advanced use / testing)
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qBAAqB;AAErB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qBAAqB;AAErB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAgB7C,eAAe;AACf,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;AAEpD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAG5C,YAAY;AACZ,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO;AACP,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElG,iEAAiE;AACjE,OAAO,EACL,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,SAAS,EACT,YAAY,EACZ,cAAc,GACf,MAAM,aAAa,CAAC;AAErB,qEAAqE;AACrE,OAAO,EACL,WAAW,EACX,WAAW,EACX,aAAa,EACb,aAAa,EACb,SAAS,EACT,WAAW,EACX,SAAS,EACT,SAAS,EACT,aAAa,EACb,cAAc,EACd,UAAU,EACV,QAAQ,EACR,aAAa,EACb,eAAe,EACf,cAAc,EACd,aAAa,GACd,MAAM,aAAa,CAAC;AAGrB,YAAY;AACZ,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGpD,sDAAsD;AACtD,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEvF,yDAAyD;AACzD,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAOvF,6EAA6E;AAC7E,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,aAAa,CAAC;AAYrB,sCAAsC;AACtC,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE3D,qCAAqC;AACrC,OAAO,EACL,MAAM,EACN,MAAM,EACN,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,YAAY,CAAC"}
|
package/dist/schema.d.ts
CHANGED
|
@@ -11,21 +11,81 @@ export type TimestampMs = number;
|
|
|
11
11
|
/** client_id / author — Rust u64, may decode as bigint for large values. Normalise to number. */
|
|
12
12
|
export declare const ClientId: Schema.Union<[typeof Schema.Number, Schema.transform<typeof Schema.BigIntFromSelf, typeof Schema.Number>]>;
|
|
13
13
|
export type ClientId = number;
|
|
14
|
-
|
|
14
|
+
/** V1 permissions — glob-list style (legacy tokens). */
|
|
15
|
+
export declare const PermissionsV1: Schema.Struct<{
|
|
15
16
|
read: Schema.Array$<typeof Schema.String>;
|
|
16
17
|
write: Schema.Array$<typeof Schema.String>;
|
|
17
18
|
admin: typeof Schema.Boolean;
|
|
18
19
|
}>;
|
|
20
|
+
export type PermissionsV1 = typeof PermissionsV1.Type;
|
|
21
|
+
/** A single permission rule in a V2 token. */
|
|
22
|
+
export declare const PermEntry: Schema.Struct<{
|
|
23
|
+
p: typeof Schema.String;
|
|
24
|
+
o: Schema.optional<typeof Schema.Number>;
|
|
25
|
+
e: Schema.optional<typeof Schema.Number>;
|
|
26
|
+
}>;
|
|
27
|
+
export type PermEntry = typeof PermEntry.Type;
|
|
28
|
+
/** V2 fine-grained permissions. */
|
|
29
|
+
export declare const PermissionsV2: Schema.Struct<{
|
|
30
|
+
v: Schema.Literal<[2]>;
|
|
31
|
+
r: Schema.Array$<Schema.Struct<{
|
|
32
|
+
p: typeof Schema.String;
|
|
33
|
+
o: Schema.optional<typeof Schema.Number>;
|
|
34
|
+
e: Schema.optional<typeof Schema.Number>;
|
|
35
|
+
}>>;
|
|
36
|
+
w: Schema.Array$<Schema.Struct<{
|
|
37
|
+
p: typeof Schema.String;
|
|
38
|
+
o: Schema.optional<typeof Schema.Number>;
|
|
39
|
+
e: Schema.optional<typeof Schema.Number>;
|
|
40
|
+
}>>;
|
|
41
|
+
admin: typeof Schema.Boolean;
|
|
42
|
+
rl: Schema.optional<typeof Schema.Number>;
|
|
43
|
+
}>;
|
|
44
|
+
export type PermissionsV2 = typeof PermissionsV2.Type;
|
|
45
|
+
/** Token permissions — V1 or V2. */
|
|
46
|
+
export declare const Permissions: Schema.Union<[Schema.Struct<{
|
|
47
|
+
v: Schema.Literal<[2]>;
|
|
48
|
+
r: Schema.Array$<Schema.Struct<{
|
|
49
|
+
p: typeof Schema.String;
|
|
50
|
+
o: Schema.optional<typeof Schema.Number>;
|
|
51
|
+
e: Schema.optional<typeof Schema.Number>;
|
|
52
|
+
}>>;
|
|
53
|
+
w: Schema.Array$<Schema.Struct<{
|
|
54
|
+
p: typeof Schema.String;
|
|
55
|
+
o: Schema.optional<typeof Schema.Number>;
|
|
56
|
+
e: Schema.optional<typeof Schema.Number>;
|
|
57
|
+
}>>;
|
|
58
|
+
admin: typeof Schema.Boolean;
|
|
59
|
+
rl: Schema.optional<typeof Schema.Number>;
|
|
60
|
+
}>, Schema.Struct<{
|
|
61
|
+
read: Schema.Array$<typeof Schema.String>;
|
|
62
|
+
write: Schema.Array$<typeof Schema.String>;
|
|
63
|
+
admin: typeof Schema.Boolean;
|
|
64
|
+
}>]>;
|
|
19
65
|
export type Permissions = typeof Permissions.Type;
|
|
20
66
|
export declare const TokenClaims: Schema.Struct<{
|
|
21
67
|
namespace: typeof Schema.String;
|
|
22
68
|
client_id: Schema.Union<[typeof Schema.Number, Schema.transform<typeof Schema.BigIntFromSelf, typeof Schema.Number>]>;
|
|
23
69
|
expires_at: Schema.Union<[typeof Schema.Number, Schema.transform<typeof Schema.BigIntFromSelf, typeof Schema.Number>]>;
|
|
24
|
-
permissions: Schema.Struct<{
|
|
70
|
+
permissions: Schema.Union<[Schema.Struct<{
|
|
71
|
+
v: Schema.Literal<[2]>;
|
|
72
|
+
r: Schema.Array$<Schema.Struct<{
|
|
73
|
+
p: typeof Schema.String;
|
|
74
|
+
o: Schema.optional<typeof Schema.Number>;
|
|
75
|
+
e: Schema.optional<typeof Schema.Number>;
|
|
76
|
+
}>>;
|
|
77
|
+
w: Schema.Array$<Schema.Struct<{
|
|
78
|
+
p: typeof Schema.String;
|
|
79
|
+
o: Schema.optional<typeof Schema.Number>;
|
|
80
|
+
e: Schema.optional<typeof Schema.Number>;
|
|
81
|
+
}>>;
|
|
82
|
+
admin: typeof Schema.Boolean;
|
|
83
|
+
rl: Schema.optional<typeof Schema.Number>;
|
|
84
|
+
}>, Schema.Struct<{
|
|
25
85
|
read: Schema.Array$<typeof Schema.String>;
|
|
26
86
|
write: Schema.Array$<typeof Schema.String>;
|
|
27
87
|
admin: typeof Schema.Boolean;
|
|
28
|
-
}>;
|
|
88
|
+
}>]>;
|
|
29
89
|
}>;
|
|
30
90
|
export type TokenClaims = typeof TokenClaims.Type;
|
|
31
91
|
/** BTreeMap<client_id, version> — matches server VectorClock.entries */
|
package/dist/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,uHAAuH;AACvH,eAAO,MAAM,WAAW,4GAGrB,CAAC;AACJ,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AAEjC,iGAAiG;AACjG,eAAO,MAAM,QAAQ,4GAGlB,CAAC;AACJ,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAE9B,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,uHAAuH;AACvH,eAAO,MAAM,WAAW,4GAGrB,CAAC;AACJ,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AAEjC,iGAAiG;AACjG,eAAO,MAAM,QAAQ,4GAGlB,CAAC;AACJ,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAE9B,wDAAwD;AACxD,eAAO,MAAM,aAAa;;;;EAIxB,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC,IAAI,CAAC;AAEtD,8CAA8C;AAC9C,eAAO,MAAM,SAAS;;;;EAIpB,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC,IAAI,CAAC;AAE9C,mCAAmC;AACnC,eAAO,MAAM,aAAa;;;;;;;;;;;;;;EAMxB,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC,IAAI,CAAC;AAEtD,oCAAoC;AACpC,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;IAA6C,CAAC;AACtE,MAAM,MAAM,WAAW,GAAG,OAAO,WAAW,CAAC,IAAI,CAAC;AAElD,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;EAKtB,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,WAAW,CAAC,IAAI,CAAC;AAElD,wEAAwE;AACxE,eAAO,MAAM,WAAW,4DAA8D,CAAC;AACvF,MAAM,MAAM,WAAW,GAAG,OAAO,WAAW,CAAC,IAAI,CAAC;AAElD,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;IAmBrB,CAAC;AACF,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC,IAAI,CAAC;AAE9C,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;IAkBrB,CAAC;AACF,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC,IAAI,CAAC;AAE9C,eAAO,MAAM,aAAa;;;EAGxB,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC,IAAI,CAAC;AAEtD,eAAO,MAAM,cAAc;;EAEzB,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,cAAc,CAAC,IAAI,CAAC;AAExD,eAAO,MAAM,UAAU;;EAErB,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC,IAAI,CAAC;AAEhD,eAAO,MAAM,QAAQ;;;;EAInB,CAAC;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,QAAQ,CAAC,IAAI,CAAC;AAE5C,eAAO,MAAM,iBAAiB;;;EAG5B,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,OAAO,iBAAiB,CAAC,IAAI,CAAC;AAE9D,eAAO,MAAM,aAAa;;;;;EAExB,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC,IAAI,CAAC;AAEtD,qFAAqF;AACrF,eAAO,MAAM,eAAe,uBAAiB,CAAC;AAC9C,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC;AAEtC,0FAA0F;AAC1F,eAAO,MAAM,cAAc,uBAAiB,CAAC;AAC7C,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC;AAErC,eAAO,MAAM,kBAAkB;;EAE7B,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,OAAO,kBAAkB,CAAC,IAAI,CAAC;AAEhE,eAAO,MAAM,aAAa;;;EAGxB,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC,IAAI,CAAC"}
|
package/dist/schema.js
CHANGED
|
@@ -9,11 +9,28 @@ import { Schema } from "effect";
|
|
|
9
9
|
export const TimestampMs = Schema.Union(Schema.Number, Schema.BigIntFromSelf.pipe(Schema.transform(Schema.Number, { decode: (n) => Number(n), encode: (n) => BigInt(n) })));
|
|
10
10
|
/** client_id / author — Rust u64, may decode as bigint for large values. Normalise to number. */
|
|
11
11
|
export const ClientId = Schema.Union(Schema.Number, Schema.BigIntFromSelf.pipe(Schema.transform(Schema.Number, { decode: (n) => Number(n), encode: (n) => BigInt(n) })));
|
|
12
|
-
|
|
12
|
+
/** V1 permissions — glob-list style (legacy tokens). */
|
|
13
|
+
export const PermissionsV1 = Schema.Struct({
|
|
13
14
|
read: Schema.Array(Schema.String),
|
|
14
15
|
write: Schema.Array(Schema.String),
|
|
15
16
|
admin: Schema.Boolean,
|
|
16
17
|
});
|
|
18
|
+
/** A single permission rule in a V2 token. */
|
|
19
|
+
export const PermEntry = Schema.Struct({
|
|
20
|
+
p: Schema.String,
|
|
21
|
+
o: Schema.optional(Schema.Number),
|
|
22
|
+
e: Schema.optional(Schema.Number),
|
|
23
|
+
});
|
|
24
|
+
/** V2 fine-grained permissions. */
|
|
25
|
+
export const PermissionsV2 = Schema.Struct({
|
|
26
|
+
v: Schema.Literal(2),
|
|
27
|
+
r: Schema.Array(PermEntry),
|
|
28
|
+
w: Schema.Array(PermEntry),
|
|
29
|
+
admin: Schema.Boolean,
|
|
30
|
+
rl: Schema.optional(Schema.Number),
|
|
31
|
+
});
|
|
32
|
+
/** Token permissions — V1 or V2. */
|
|
33
|
+
export const Permissions = Schema.Union(PermissionsV2, PermissionsV1);
|
|
17
34
|
export const TokenClaims = Schema.Struct({
|
|
18
35
|
namespace: Schema.String,
|
|
19
36
|
client_id: ClientId,
|
package/dist/schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,uHAAuH;AACvH,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAChG,MAAM,CAAC,MAAM,EACb,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CACvD,CAAC,CAAC,CAAC;AAGJ,iGAAiG;AACjG,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAC7F,MAAM,CAAC,MAAM,EACb,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CACvD,CAAC,CAAC,CAAC;AAGJ,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
|
package/dist/sync/delta.d.ts
CHANGED
|
@@ -42,6 +42,39 @@ export interface RGADelta {
|
|
|
42
42
|
text: string;
|
|
43
43
|
}
|
|
44
44
|
export declare const decodeRGADelta: (bytes: Uint8Array) => RGADelta;
|
|
45
|
+
export interface TreeNodeValue {
|
|
46
|
+
id: string;
|
|
47
|
+
value: string;
|
|
48
|
+
/** Fractional index string for sibling ordering (e.g. "a0", "b0"). */
|
|
49
|
+
position: string;
|
|
50
|
+
children: TreeNodeValue[];
|
|
51
|
+
}
|
|
52
|
+
/** A MoveNode op that was rejected by the server due to cycle prevention. */
|
|
53
|
+
export interface DiscardedMove {
|
|
54
|
+
node_id: {
|
|
55
|
+
wall_ms: number;
|
|
56
|
+
logical: number;
|
|
57
|
+
node_id: number;
|
|
58
|
+
};
|
|
59
|
+
attempted_parent_id: {
|
|
60
|
+
wall_ms: number;
|
|
61
|
+
logical: number;
|
|
62
|
+
node_id: number;
|
|
63
|
+
} | null;
|
|
64
|
+
attempted_position: string;
|
|
65
|
+
actual_parent_id: {
|
|
66
|
+
wall_ms: number;
|
|
67
|
+
logical: number;
|
|
68
|
+
node_id: number;
|
|
69
|
+
} | null;
|
|
70
|
+
actual_position: string;
|
|
71
|
+
}
|
|
72
|
+
export interface TreeDelta {
|
|
73
|
+
roots: TreeNodeValue[];
|
|
74
|
+
/** MoveNode ops discarded due to cycle prevention. Empty in the common case. */
|
|
75
|
+
discarded_moves?: DiscardedMove[];
|
|
76
|
+
}
|
|
77
|
+
export declare const decodeTreeDelta: (bytes: Uint8Array) => TreeDelta;
|
|
45
78
|
export type CrdtValueDelta = {
|
|
46
79
|
GCounter: GCounterDelta;
|
|
47
80
|
} | {
|
|
@@ -54,6 +87,8 @@ export type CrdtValueDelta = {
|
|
|
54
87
|
Presence: PresenceDelta;
|
|
55
88
|
} | {
|
|
56
89
|
RGA: RGADelta;
|
|
90
|
+
} | {
|
|
91
|
+
Tree: TreeDelta;
|
|
57
92
|
};
|
|
58
93
|
export interface CRDTMapDelta {
|
|
59
94
|
deltas: Record<string, CrdtValueDelta>;
|
package/dist/sync/delta.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delta.d.ts","sourceRoot":"","sources":["../../src/sync/delta.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,eAAO,MAAM,mBAAmB,GAAI,OAAO,UAAU,KAAG,aAGvD,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,aAAa,GAAG,IAAI,CAAC;IAC1B,GAAG,EAAE,aAAa,GAAG,IAAI,CAAC;CAC3B;AAED,eAAO,MAAM,oBAAoB,GAAI,OAAO,UAAU,KAAG,cASxD,CAAC;AAEF,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;IACnC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;CACvC;AAED,eAAO,MAAM,gBAAgB,GAAI,OAAO,UAAU,KAAG,UAUpD,CAAC;AAEF,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE;QAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAC7E,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;CACxB;AAED,eAAO,MAAM,cAAc,GAAI,OAAO,UAAU,KAAG,QAGlD,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,OAAO,CAAC;IACd,GAAG,EAAE;QAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAC7E,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAAC,CAAC;CACpD;AAED,eAAO,MAAM,mBAAmB,GAAI,OAAO,UAAU,KAAG,aAGvD,CAAC;AAEF,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,cAAc,GAAI,OAAO,UAAU,KAAG,QAGlD,CAAC;AAEF,MAAM,MAAM,cAAc,GACtB;IAAE,QAAQ,EAAE,aAAa,CAAA;CAAE,GAC3B;IAAE,SAAS,EAAE,cAAc,CAAA;CAAE,GAC7B;IAAE,KAAK,EAAE,UAAU,CAAA;CAAE,GACrB;IAAE,WAAW,EAAE,QAAQ,CAAA;CAAE,GACzB;IAAE,QAAQ,EAAE,aAAa,CAAA;CAAE,GAC3B;IAAE,GAAG,EAAE,QAAQ,CAAA;CAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"delta.d.ts","sourceRoot":"","sources":["../../src/sync/delta.ts"],"names":[],"mappings":"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"}
|
package/dist/sync/delta.js
CHANGED
|
@@ -28,6 +28,10 @@ export const decodeRGADelta = (bytes) => {
|
|
|
28
28
|
const raw = decode(bytes);
|
|
29
29
|
return { text: raw.text ?? "" };
|
|
30
30
|
};
|
|
31
|
+
export const decodeTreeDelta = (bytes) => {
|
|
32
|
+
const raw = decode(bytes);
|
|
33
|
+
return { roots: raw.roots ?? [], discarded_moves: raw.discarded_moves ?? [] };
|
|
34
|
+
};
|
|
31
35
|
export const decodeCRDTMapDelta = (bytes) => {
|
|
32
36
|
const raw = decode(bytes);
|
|
33
37
|
return { deltas: (raw.deltas ?? {}) };
|
package/dist/sync/delta.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delta.js","sourceRoot":"","sources":["../../src/sync/delta.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAM1C,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAAiB,EAAiB,EAAE;IACtE,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAA0C,CAAC;IACnE,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;AAC1C,CAAC,CAAC;AAOF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAAiB,EAAkB,EAAE;IACxE,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAGvB,CAAC;IACF,OAAO;QACL,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI;QAC1D,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI;KAC3D,CAAC;AACJ,CAAC,CAAC;AAOF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAiB,EAAc,EAAE;IAChE,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAGvB,CAAC;IACF,MAAM,OAAO,GAAG,CAAC,KAAc,EAAc,EAAE,CAC7C,KAAK,YAAY,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,KAAiB,CAAC,CAAC;IAC1E,MAAM,SAAS,GAAG,CAAC,GAA+B,EAAE,EAAE,CACpD,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/F,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;AACxE,CAAC,CAAC;AAYF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAiB,EAAY,EAAE;IAC5D,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAgC,CAAC;IACzD,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;AACtC,CAAC,CAAC;AAYF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAAiB,EAAiB,EAAE;IACtE,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAA4D,CAAC;IACrF,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;AACxC,CAAC,CAAC;AAMF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAiB,EAAY,EAAE;IAC5D,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAsB,CAAC;IAC/C,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;AAClC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"delta.js","sourceRoot":"","sources":["../../src/sync/delta.ts"],"names":[],"mappings":"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"}
|