@vuer-ai/vuer-rtc 0.3.3 → 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/CLAUDE.md +27 -10
- package/dist/client/actions.d.ts.map +1 -1
- package/dist/client/actions.js +1 -5
- package/dist/client/actions.js.map +1 -1
- package/dist/crdt/Rope.d.ts +13 -0
- package/dist/crdt/Rope.d.ts.map +1 -1
- package/dist/crdt/Rope.js +17 -0
- package/dist/crdt/Rope.js.map +1 -1
- package/dist/operations/apply/text.d.ts +11 -7
- package/dist/operations/apply/text.d.ts.map +1 -1
- package/dist/operations/apply/text.js +45 -46
- package/dist/operations/apply/text.js.map +1 -1
- package/package.json +1 -1
- package/src/client/actions.ts +1 -4
- package/src/crdt/Rope.ts +19 -0
- package/src/operations/apply/text.ts +46 -49
- package/tests/client/actions.test.ts +16 -9
- package/tests/crdt/rope.test.ts +5 -8
- package/tests/crdt/text-operations.test.ts +18 -11
package/CLAUDE.md
CHANGED
|
@@ -60,9 +60,9 @@ All text operations support both local (position-based) and CRDT (ID-based) form
|
|
|
60
60
|
otype: 'text.insert',
|
|
61
61
|
key: 'node-1',
|
|
62
62
|
path: 'description',
|
|
63
|
-
id:
|
|
63
|
+
id: 'session-1-42',
|
|
64
64
|
content: 'hello',
|
|
65
|
-
parentId:
|
|
65
|
+
parentId: 'session-1-41',
|
|
66
66
|
seq: 100 // Lamport timestamp
|
|
67
67
|
}
|
|
68
68
|
```
|
|
@@ -76,19 +76,31 @@ All text operations support both local (position-based) and CRDT (ID-based) form
|
|
|
76
76
|
|
|
77
77
|
**Important**: Operations are automatically converted from local to CRDT format when applied. The operation object is mutated to include CRDT metadata.
|
|
78
78
|
|
|
79
|
-
## Storage Pattern
|
|
79
|
+
## Storage Pattern (Lazy Upgrade)
|
|
80
80
|
|
|
81
81
|
```
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
82
|
+
// Initial state (string)
|
|
83
|
+
nodes['doc-1'] = { content: "Hello World" }
|
|
84
|
+
|
|
85
|
+
// After first text operation (lazy upgrade to TextRope)
|
|
86
|
+
nodes['doc-1'] = { content: TextRope }
|
|
87
|
+
|
|
88
|
+
// TextRope automatically serializes back to string via toJSON()
|
|
89
|
+
JSON.stringify(nodes['doc-1']) // { content: "Hello World" }
|
|
85
90
|
```
|
|
86
91
|
|
|
92
|
+
**Lazy Upgrade Pattern**:
|
|
93
|
+
1. Store plain strings initially
|
|
94
|
+
2. When text operation arrives, replace string with TextRope in-place
|
|
95
|
+
3. TextRope.toJSON() serializes back to string for storage
|
|
96
|
+
4. React renders TextRope via toString()
|
|
97
|
+
|
|
87
98
|
**Why this works**:
|
|
88
99
|
1. TextRope is a class instance (not a plain object)
|
|
89
100
|
2. Immer skips class instances (doesn't wrap in proxies)
|
|
90
101
|
3. Shallow cloning preserves TextRope references
|
|
91
102
|
4. TextRope is mutable (edits work across clones)
|
|
103
|
+
5. JSON.stringify() auto-calls toJSON() for serialization
|
|
92
104
|
|
|
93
105
|
## Serialization
|
|
94
106
|
|
|
@@ -97,10 +109,15 @@ nodes['doc-1']
|
|
|
97
109
|
- `maxDepth: 10000` to handle deep B-tree structures
|
|
98
110
|
- Operations include full CRDT metadata for replay
|
|
99
111
|
|
|
100
|
-
**Storage
|
|
101
|
-
-
|
|
102
|
-
-
|
|
103
|
-
-
|
|
112
|
+
**Storage** (Automatic via toJSON()):
|
|
113
|
+
- TextRope instances automatically serialize to plain strings
|
|
114
|
+
- `JSON.stringify()` calls `TextRope.toJSON()` → returns plain text
|
|
115
|
+
- MongoDB stores: `{ content: "Hello World" }` (just strings)
|
|
116
|
+
- No special serialization/deserialization code needed
|
|
117
|
+
|
|
118
|
+
**Compaction**:
|
|
119
|
+
- Use `compact()` to remove tombstones from TextRope instances
|
|
120
|
+
- Reduces memory and improves performance
|
|
104
121
|
|
|
105
122
|
## Testing
|
|
106
123
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../src/client/actions.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAa,MAAM,iCAAiC,CAAC;AACrG,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtE,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAM/E;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,QAAQ,GAAG,WAAW,CAkB7F;
|
|
1
|
+
{"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../src/client/actions.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAa,MAAM,iCAAiC,CAAC;AACrG,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtE,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAM/E;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,QAAQ,GAAG,WAAW,CAkB7F;AAyGD;;GAEG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,YAAY,EAAE,EACvB,UAAU,EAAE,SAAS,EAAE,GACtB,UAAU,CAkCZ;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,SAAS,GAAG,WAAW,CAgErE;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,WAAW,EAClB,YAAY,CAAC,EAAE,MAAM,GACpB;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CAAA;CAAE,CA8BjD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW,CAU3D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,CAK1E;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,GAAG,WAAW,CA8BjF;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,WAAW,GAAG;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CAAA;CAAE,CAyDxF;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,WAAW,GAAG;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CAAA;CAAE,CAoDxF;AAyCD;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW,CA6BvD;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,GAAG,WAAW,CA4C1F;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW,EAAE,CAIpE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAE9D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAE1D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,WAAW,EAAE,GACrB,WAAW,CA8Cb"}
|
package/dist/client/actions.js
CHANGED
|
@@ -11,7 +11,7 @@ import { nanoid } from 'nanoid';
|
|
|
11
11
|
import { applyMessage, applyOperation, createEmptyGraph } from '../operations/dispatcher.js';
|
|
12
12
|
import { VectorClockManager } from '../state/VectorClock.js';
|
|
13
13
|
import { isAdditiveOp, mergeValues, opDedupKey, coalesceTextOps } from './EditBuffer.js';
|
|
14
|
-
import { TextRope, snapshot as cloneRope, compact as compactRope
|
|
14
|
+
import { TextRope, snapshot as cloneRope, compact as compactRope } from '../crdt/Rope.js';
|
|
15
15
|
const clockManager = new VectorClockManager();
|
|
16
16
|
/**
|
|
17
17
|
* Generate a compact session ID (12-char nanoid, 2^72 entropy)
|
|
@@ -56,10 +56,6 @@ function cloneSnapshotGraph(graph) {
|
|
|
56
56
|
if (cloned[prop] instanceof TextRope) {
|
|
57
57
|
cloned[prop] = cloneRope(cloned[prop]);
|
|
58
58
|
}
|
|
59
|
-
else if (isSerializedRope(cloned[prop])) {
|
|
60
|
-
// Hydrate serialized TextRope from server snapshot
|
|
61
|
-
cloned[prop] = hydrateRope(cloned[prop]);
|
|
62
|
-
}
|
|
63
59
|
}
|
|
64
60
|
nodes[key] = cloned;
|
|
65
61
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actions.js","sourceRoot":"","sources":["../../src/client/actions.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"actions.js","sourceRoot":"","sources":["../../src/client/actions.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC7F,OAAO,EAAE,kBAAkB,EAAoB,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACzF,OAAO,EAAE,QAAQ,EAAE,QAAQ,IAAI,SAAS,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE1F,MAAM,YAAY,GAAG,IAAI,kBAAkB,EAAE,CAAC;AAE9C;;GAEG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,SAAiB,EAAE,eAA0B;IAC9E,MAAM,UAAU,GAAG,gBAAgB,EAAE,CAAC;IACtC,MAAM,QAAQ,GAAG,eAAe,IAAI;QAClC,KAAK,EAAE,UAAU;QACjB,WAAW,EAAE,EAAE;QACf,WAAW,EAAE,CAAC;QACd,YAAY,EAAE,CAAC;KAChB,CAAC;IAEF,OAAO;QACL,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,OAAO,EAAE,EAAE;QACX,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;QACnC,QAAQ;QACR,WAAW,EAAE,QAAQ,CAAC,WAAW,IAAI,CAAC;QACtC,WAAW,EAAE,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC;QAC3C,SAAS;KACV,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,kBAAkB,CAAC,KAAiB;IAC3C,MAAM,KAAK,GAA8B,EAAE,CAAC;IAC5C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,MAAM,GAAc;YACxB,GAAG,IAAI;YACP,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;SACrC,CAAC;QACF,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACvC,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,QAAQ,EAAE,CAAC;gBACrC,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAa,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;IACtB,CAAC;IACD,OAAO;QACL,GAAG,KAAK;QACR,KAAK;QACL,GAAG,EAAE,EAAE,GAAG,KAAK,CAAC,GAAG,EAAE;QACrB,UAAU,EAAE,EAAE,GAAG,KAAK,CAAC,UAAU,EAAE;KACpC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,aAAa,CAAC,CAAY,EAAE,CAAY,EAAE,QAAoB,EAAE,QAAoB;IAC3F,4CAA4C;IAC5C,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjD,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAExC,0BAA0B;IAC1B,MAAM,EAAE,GAAG,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC;IAC5B,MAAM,EAAE,GAAG,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC;IAC5B,IAAI,EAAE,CAAC,MAAM,KAAK,EAAE,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;IACpC,CAAC;IAED,2DAA2D;IAC3D,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,UAAU,CAAC,CAAC;IACjF,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,UAAU,CAAC,CAAC;IACjF,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAEhD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,EAAE,GAAI,CAAS,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,EAAE,GAAI,CAAS,CAAC,CAAC,CAAC,CAAC;QAEzB,IAAI,EAAE,YAAY,QAAQ,IAAI,EAAE,YAAY,QAAQ,EAAE,CAAC;YACrD,IAAI,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE;gBAAE,OAAO,KAAK,CAAC;YAClD,SAAS;QACX,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;YAC3C,IAAI,EAAE,CAAC,MAAM,KAAK,EAAE,CAAC,MAAM;gBAAE,OAAO,KAAK,CAAC;YAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACnC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;oBAAE,OAAO,KAAK,CAAC;YACpC,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,EAAE,KAAK,EAAE;YAAE,OAAO,KAAK,CAAC;IAC9B,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,SAAS,mBAAmB,CAAC,QAAoB,EAAE,QAAoB;IACrE,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC;IAChC,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC;IAChC,MAAM,WAAW,GAA8B,EAAE,CAAC;IAClD,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxC,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,OAAO,IAAI,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC;YACzE,WAAW,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,sBAAsB;QACpD,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;YACjC,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;IACH,CAAC;IAED,0BAA0B;IAC1B,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;QAClE,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IAED,IAAI,CAAC,OAAO;QAAE,OAAO,QAAQ,CAAC,CAAC,uCAAuC;IACtE,OAAO,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAC1B,QAAkB,EAClB,OAAuB,EACvB,UAAuB;IAEvB,IAAI,KAAK,GAAG,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE/C,0DAA0D;IAC1D,yDAAyD;IACzD,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACxC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC;QACjD,IAAI,EAAE,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACxB,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5F,CAAC,CAAC,CAAC;IAEH,oDAAoD;IACpD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,SAAS;YAAE,SAAS;QAE9B,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1E,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,EAAE,GAAG,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,wEAAwE;IACxE,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;YAC5B,cAAc,CAAC,KAAK,EAAE,EAAE,EAAE;gBACxB,SAAS,EAAE,OAAO;gBAClB,KAAK,EAAE,EAAE;gBACT,WAAW,EAAE,CAAC;gBACd,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI;aAC7B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,MAAM,CAAC,KAAkB,EAAE,EAAa;IACtD,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC;IAErF,yBAAyB;IACzB,MAAM,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,GAAG,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;IAC3B,MAAM,WAAW,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;IAE9D,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;QACrB,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC;QAClC,IAAI,QAAQ,CAAC,KAAK,KAAK,EAAE,CAAC,KAAK,IAAI,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1D,MAAM,WAAW,GAAG,WAAW,CAAC,EAAE,CAAC,KAAK,EAAG,QAAgB,CAAC,KAAK,EAAG,EAAU,CAAC,KAAK,CAAC,CAAC;YACtF,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAe,CAAC;QACtE,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,CAAC;IAED,wEAAwE;IACxE,MAAM,KAAK,GAAe,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;IAE9E,0DAA0D;IAC1D,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,IAAI,OAAO,EAAE,CAAC,GAAG,KAAK,QAAQ,IAAI,EAAE,CAAC,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QACxD,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IACD,IAAI,EAAE,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;QAC7B,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAI,EAAU,CAAC,KAAK,CAAC;QACjD,IAAI,OAAO,IAAI,OAAO,IAAI,KAAK,CAAC,KAAK;YAAE,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjE,IAAI,SAAS,IAAI,SAAS,IAAI,KAAK,CAAC,KAAK;YAAE,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACzE,CAAC;IACD,IAAI,EAAE,CAAC,KAAK,KAAK,aAAa,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAI,EAAU,CAAC,KAAK,CAAC;QAClC,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,CAAC,KAAK;YAAE,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvF,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,IAAI,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,MAAM,GAAc;YACxB,GAAG,IAAI;YACP,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;SAClD,CAAC;QACF,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACvC,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,QAAQ,EAAE,CAAC;gBACrC,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAa,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;QACD,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;IAC1B,CAAC;IAED,cAAc,CAAC,KAAK,EAAE,EAAE,EAAE;QACxB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,KAAK,EAAE,KAAK,CAAC,WAAW;QACxB,WAAW,EAAE,KAAK,CAAC,WAAW,GAAG,CAAC;QAClC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI;KAC7B,CAAC,CAAC;IAEH,OAAO;QACL,GAAG,KAAK;QACR,KAAK;QACL,KAAK,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE;KAC1B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CACzB,KAAkB,EAClB,YAAqB;IAErB,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;IAC9B,CAAC;IAED,MAAM,QAAQ,GAAG,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC5E,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC;IAEzC,sDAAsD;IACtD,MAAM,YAAY,GAAG,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAEtD,MAAM,GAAG,GAAgB;QACvB,EAAE,EAAE,GAAG,KAAK,CAAC,SAAS,IAAI,UAAU,EAAE;QACtC,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,UAAU;QACvB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI;QAC5B,GAAG,EAAE,YAAY;KAClB,CAAC;IAEF,OAAO;QACL,KAAK,EAAE;YACL,GAAG,KAAK;YACR,OAAO,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;YAChD,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;YACnC,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,WAAW,EAAE,QAAQ;SACtB;QACD,GAAG;KACJ,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,KAAkB;IAC5C,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO;QACL,GAAG,KAAK;QACR,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,KAAK;QAC3C,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;KACpC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,KAAkB,EAAE,KAAa;IAC3D,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CACpC,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAC7C,CAAC;IACF,OAAO,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,KAAkB,EAAE,GAAgB;IAClE,kBAAkB;IAClB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;QACjD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,OAAO,GAAmB,CAAC,GAAG,KAAK,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;IAEvE,wDAAwD;IACxD,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;QACzB,IAAI,EAAE,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;YAC7B,MAAM,WAAW,GAAI,EAAU,CAAC,WAAW,CAAC;YAC5C,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,WAAW,CAAC,CAAC;YAC7D,IAAI,GAAG,IAAI,CAAC;gBAAE,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC;QAC/E,CAAC;aAAM,IAAI,EAAE,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;YACpC,MAAM,WAAW,GAAI,EAAU,CAAC,WAAW,CAAC;YAC5C,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,WAAW,CAAC,CAAC;YAC7D,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;gBACb,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;gBAC/C,OAAO,CAAC,GAAG,CAAC,GAAG,IAAoB,CAAC;YACtC,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IACrE,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;IACjE,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACvE,MAAM,KAAK,GAAG,mBAAmB,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAExD,OAAO,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;AAChE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,IAAI,CAAC,KAAkB;IACrC,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,IAAI,WAAmB,CAAC;IAExB,8DAA8D;IAC9D,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QACrD,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;QACtC,YAAY,GAAG,SAAS,CAAC;QACzB,WAAW,GAAG,GAAG,CAAC,EAAE,CAAC;IACvB,CAAC;SAAM,CAAC;QACN,MAAM,UAAU,GAAG,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC;aACzC,OAAO,EAAE;aACT,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;eAClB,CAAC,CAAC,GAAG,CAAC,SAAS,KAAK,YAAY,CAAC,SAAS;eAC1C,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CACvD,CAAC;QAEJ,IAAI,CAAC,UAAU;YAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;QAC3D,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;IAClC,CAAC;IAED,sBAAsB;IACtB,MAAM,QAAQ,GAAG,YAAY,CAAC,SAAS,CAAC,YAAY,CAAC,WAAW,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;IAC1F,MAAM,UAAU,GAAG,YAAY,CAAC,WAAW,GAAG,CAAC,CAAC;IAChD,MAAM,OAAO,GAAgB;QAC3B,EAAE,EAAE,GAAG,YAAY,CAAC,SAAS,IAAI,UAAU,EAAE;QAC7C,SAAS,EAAE,YAAY,CAAC,SAAS;QACjC,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,UAAU;QACvB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI;QAC5B,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;KACxE,CAAC;IAEF,4DAA4D;IAC5D,mEAAmE;IACnE,oDAAoD;IACpD,MAAM,OAAO,GAAmB,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QAC3D,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,WAAW,EAAE,CAAC;YAC7B,OAAO,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,WAAW,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;QAC9D,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;IAE3C,MAAM,OAAO,GAAG,YAAY,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrF,MAAM,KAAK,GAAG,mBAAmB,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAE/D,MAAM,QAAQ,GAAgB;QAC5B,GAAG,YAAY;QACf,OAAO;QACP,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,WAAW,EAAE,QAAQ;QACrB,KAAK;KACN,CAAC;IAEF,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,IAAI,CAAC,KAAkB;IACrC,qEAAqE;IACrE,2CAA2C;IAC3C,IAAI,WAAW,GAAwB,IAAI,CAAC;IAC5C,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAC9B,IACE,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,GAAG,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS;YACnC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EACnD,CAAC;YACD,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,SAAS,GAAG,WAAW,CAAC,SAAU,EAAE,CAAC;gBACzD,WAAW,GAAG,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC,WAAW;QAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;IAE9C,sBAAsB;IACtB,MAAM,QAAQ,GAAG,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC5E,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC;IACzC,MAAM,OAAO,GAAgB;QAC3B,EAAE,EAAE,GAAG,KAAK,CAAC,SAAS,IAAI,UAAU,EAAE;QACtC,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,UAAU;QACvB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI;QAC5B,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;KAC5F,CAAC;IAEF,wDAAwD;IACxD,MAAM,OAAO,GAAmB,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QACpD,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACpC,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC;YACpC,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,EAAkB,CAAC;QACjD,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;IAE3C,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACvE,MAAM,KAAK,GAAG,mBAAmB,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAExD,MAAM,QAAQ,GAAgB;QAC5B,GAAG,KAAK;QACR,OAAO;QACP,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,WAAW,EAAE,QAAQ;QACrB,KAAK;KACN,CAAC;IAEF,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;AAC3C,CAAC;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,KAAiB;IACzC,MAAM,KAAK,GAA8B,EAAE,CAAC;IAC5C,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,IAAI,MAAM,GAAqB,IAAI,CAAC;QAEpC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,QAAQ,EAAE,CAAC;gBACnC,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,MAAM,GAAG;wBACP,GAAG,IAAI;wBACP,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;qBACrC,CAAC;gBACJ,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAa,CAAC,CAAC;gBACnD,WAAW,GAAG,IAAI,CAAC;YACrB,CAAC;QACH,CAAC;QAED,IAAI,WAAW,IAAI,MAAM,EAAE,CAAC;YAC1B,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;YACpB,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QACpB,CAAC;IACH,CAAC;IAED,IAAI,CAAC,UAAU;QAAE,OAAO,KAAK,CAAC;IAC9B,OAAO,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC;AAC7B,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,OAAO,CAAC,KAAkB;IACxC,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC7D,IAAI,YAAY,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAEnC,2BAA2B;IAC3B,IAAI,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;IACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,KAAK,CAAC,SAAS;YAAE,SAAS;QAE9B,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1E,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,aAAa,GAAG,YAAY,CAAC,aAAa,EAAE,EAAE,GAAG,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IAED,oDAAoD;IACpD,aAAa,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAEhD,OAAO;QACL,GAAG,KAAK;QACR,QAAQ,EAAE;YACR,KAAK,EAAE,aAAa;YACpB,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,KAAK;YAClD,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,WAAW;YACxD,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,YAAY,GAAG,YAAY,GAAG,CAAC;SAC7D;QACD,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC;KAC/C,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAkB,EAAE,SAAsB;IAC3E,yDAAyD;IACzD,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC;IACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,CAAC,KAAK,CAAC,GAAG;YAAE,SAAS;QAEzB,8DAA8D;QAC9D,IAAI,SAAS,GAAG,IAAI,CAAC;QACrB,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1D,IAAI,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBACjC,SAAS,GAAG,KAAK,CAAC;gBAClB,MAAM;YACR,CAAC;QACH,CAAC;QACD,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,GAAG,CAAC,CAAC;QACd,CAAC;IACH,CAAC;IAED,IAAI,OAAO,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAE9B,8CAA8C;IAC9C,IAAI,aAAa,GAAG,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,KAAK,CAAC,SAAS;YAAE,SAAS;QAE9B,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1E,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,aAAa,GAAG,YAAY,CAAC,aAAa,EAAE,EAAE,GAAG,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IAED,OAAO;QACL,GAAG,KAAK;QACR,QAAQ,EAAE;YACR,KAAK,EAAE,aAAa;YACpB,WAAW,EAAE,SAAS;YACtB,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,WAAW;YACnD,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,YAAY,GAAG,OAAO,GAAG,CAAC;SACxD;QACD,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;KAC1C,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAkB;IACnD,OAAO,KAAK,CAAC,OAAO;SACjB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;SACnB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAkB;IACnD,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,KAAkB;IAChD,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAC5B,SAAiB,EACjB,QAAkB,EAClB,OAAsB;IAEtB,IAAI,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;IAC3B,MAAM,cAAc,GAAmB,EAAE,CAAC;IAC1C,IAAI,UAAU,GAAG,QAAQ,CAAC,WAAW,IAAI,CAAC,CAAC;IAC3C,IAAI,WAAW,GAAgB,QAAQ,CAAC,WAAW,CAAC;IAEpD,gEAAgE;IAChE,2DAA2D;IAC3D,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;QAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACpD,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC;QAC3D,CAAC;QACD,OAAO,KAAK,CAAC,CAAC,kEAAkE;IAClF,CAAC,CAAC,CAAC;IAEH,KAAK,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QAClC,mBAAmB;QACnB,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;YACzB,IAAI,EAAE,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;gBAC7B,MAAM,WAAW,GAAI,EAAU,CAAC,WAAW,CAAC;gBAC5C,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,WAAW,CAAC,CAAC;gBAClE,IAAI,MAAM;oBAAE,MAAM,CAAC,SAAS,GAAG,GAAG,CAAC,WAAW,CAAC;YACjD,CAAC;iBAAM,IAAI,EAAE,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;gBACpC,MAAM,WAAW,GAAI,EAAU,CAAC,WAAW,CAAC;gBAC5C,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,WAAW,CAAC,CAAC;gBAClE,IAAI,MAAM;oBAAE,OAAO,MAAM,CAAC,SAAS,CAAC;YACtC,CAAC;QACH,CAAC;QAED,cAAc,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;QACxC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;QACnD,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IAC3D,CAAC;IAED,gBAAgB;IAChB,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC;IAEnD,OAAO;QACL,KAAK;QACL,OAAO,EAAE,cAAc;QACvB,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;QACnC,QAAQ;QACR,WAAW,EAAE,UAAU;QACvB,WAAW,EAAE,YAAY,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC;QAC3D,SAAS;KACV,CAAC;AACJ,CAAC"}
|
package/dist/crdt/Rope.d.ts
CHANGED
|
@@ -35,6 +35,19 @@ export declare class TextRope {
|
|
|
35
35
|
clock: number;
|
|
36
36
|
maxSeq: number;
|
|
37
37
|
constructor(tree: ItemTree, agentIndex: Map<string, SpanEntry[]>, agentId: string, clock: number, maxSeq: number);
|
|
38
|
+
/**
|
|
39
|
+
* Convert TextRope to plain string for display/rendering.
|
|
40
|
+
* React automatically calls this when rendering JSX.
|
|
41
|
+
*/
|
|
42
|
+
toString(): string;
|
|
43
|
+
/**
|
|
44
|
+
* Serialize TextRope to plain string for JSON/MongoDB storage.
|
|
45
|
+
* JSON.stringify() automatically calls this method.
|
|
46
|
+
*
|
|
47
|
+
* This enables clean storage: store as string, load as string,
|
|
48
|
+
* lazy upgrade to TextRope only when text operations are applied.
|
|
49
|
+
*/
|
|
50
|
+
toJSON(): string;
|
|
38
51
|
}
|
|
39
52
|
export interface InsertOp {
|
|
40
53
|
id: ItemId;
|
package/dist/crdt/Rope.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Rope.d.ts","sourceRoot":"","sources":["../../src/crdt/Rope.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAIL,KAAK,QAAQ,EACd,MAAM,YAAY,CAAC;AAMpB,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,UAAU,SAAS;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,IAAI,CAAC;CACZ;AAED;;;;;GAKG;AACH,qBAAa,QAAQ;IACnB,KAAK,EAAE,QAAQ,CAAC;IAChB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;gBAGb,IAAI,EAAE,QAAQ,EACd,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,EACpC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"Rope.d.ts","sourceRoot":"","sources":["../../src/crdt/Rope.ts"],"names":[],"mappings":"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"}
|
package/dist/crdt/Rope.js
CHANGED
|
@@ -25,6 +25,23 @@ export class TextRope {
|
|
|
25
25
|
this.clock = clock;
|
|
26
26
|
this.maxSeq = maxSeq;
|
|
27
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* Convert TextRope to plain string for display/rendering.
|
|
30
|
+
* React automatically calls this when rendering JSX.
|
|
31
|
+
*/
|
|
32
|
+
toString() {
|
|
33
|
+
return getText(this);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Serialize TextRope to plain string for JSON/MongoDB storage.
|
|
37
|
+
* JSON.stringify() automatically calls this method.
|
|
38
|
+
*
|
|
39
|
+
* This enables clean storage: store as string, load as string,
|
|
40
|
+
* lazy upgrade to TextRope only when text operations are applied.
|
|
41
|
+
*/
|
|
42
|
+
toJSON() {
|
|
43
|
+
return getText(this);
|
|
44
|
+
}
|
|
28
45
|
}
|
|
29
46
|
// ============================================
|
|
30
47
|
// Utilities
|
package/dist/crdt/Rope.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Rope.js","sourceRoot":"","sources":["../../src/crdt/Rope.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Rope.js","sourceRoot":"","sources":["../../src/crdt/Rope.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Text operations for graph nodes
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* -
|
|
6
|
-
* -
|
|
7
|
-
* -
|
|
4
|
+
* ARCHITECTURE:
|
|
5
|
+
* - Nodes store plain strings initially
|
|
6
|
+
* - When text operations arrive, we lazy-upgrade strings to TextRope in-place
|
|
7
|
+
* - TextRope.toJSON() serializes back to plain string for storage
|
|
8
|
+
* - React can render TextRope directly via toString()
|
|
8
9
|
*
|
|
9
|
-
*
|
|
10
|
+
* Benefits:
|
|
11
|
+
* - Simple storage (just strings in MongoDB)
|
|
12
|
+
* - CRDT overhead only for edited text
|
|
13
|
+
* - Transparent to rendering code
|
|
10
14
|
*/
|
|
11
15
|
import type { SceneGraph, TextInitOp, TextInsertOp, TextDeleteOp, TextReplaceOp } from '../OperationTypes.js';
|
|
12
16
|
import type { OpMeta } from './types.js';
|
|
13
|
-
import {
|
|
17
|
+
import { TextRope } from '../../crdt/Rope.js';
|
|
14
18
|
/**
|
|
15
19
|
* text.init - Initialize a CRDT-backed text property
|
|
16
20
|
*/
|
|
@@ -28,7 +32,7 @@ export declare function TextDelete(draft: SceneGraph, op: TextDeleteOp, meta: Op
|
|
|
28
32
|
*/
|
|
29
33
|
export declare function TextReplace(draft: SceneGraph, op: TextReplaceOp, meta: OpMeta): void;
|
|
30
34
|
/**
|
|
31
|
-
* Get the TextRope for a text property
|
|
35
|
+
* Get the TextRope for a text property (if it's been upgraded)
|
|
32
36
|
*/
|
|
33
37
|
export declare function getTextDocument(graph: SceneGraph, nodeKey: string, path: string): TextRope | undefined;
|
|
34
38
|
//# sourceMappingURL=text.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../src/operations/apply/text.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../src/operations/apply/text.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EACV,UAAU,EAEV,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,aAAa,EACd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAUL,QAAQ,EACT,MAAM,oBAAoB,CAAC;AAyC5B;;GAEG;AACH,wBAAgB,QAAQ,CACtB,KAAK,EAAE,UAAU,EACjB,EAAE,EAAE,UAAU,EACd,IAAI,EAAE,MAAM,GACX,IAAI,CAWN;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,UAAU,EACjB,EAAE,EAAE,YAAY,EAChB,IAAI,EAAE,MAAM,GACX,IAAI,CAyBN;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,UAAU,EACjB,EAAE,EAAE,YAAY,EAChB,IAAI,EAAE,MAAM,GACX,IAAI,CAiBN;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,UAAU,EACjB,EAAE,EAAE,aAAa,EACjB,IAAI,EAAE,MAAM,GACX,IAAI,CA4BN;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,GACX,QAAQ,GAAG,SAAS,CAItB"}
|
|
@@ -1,52 +1,51 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Text operations for graph nodes
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* -
|
|
6
|
-
* -
|
|
7
|
-
* -
|
|
4
|
+
* ARCHITECTURE:
|
|
5
|
+
* - Nodes store plain strings initially
|
|
6
|
+
* - When text operations arrive, we lazy-upgrade strings to TextRope in-place
|
|
7
|
+
* - TextRope.toJSON() serializes back to plain string for storage
|
|
8
|
+
* - React can render TextRope directly via toString()
|
|
8
9
|
*
|
|
9
|
-
*
|
|
10
|
+
* Benefits:
|
|
11
|
+
* - Simple storage (just strings in MongoDB)
|
|
12
|
+
* - CRDT overhead only for edited text
|
|
13
|
+
* - Transparent to rendering code
|
|
10
14
|
*/
|
|
11
|
-
import { create,
|
|
15
|
+
import { create, insert, insertWithSplit, remove, replace, apply, applyDelete, applyReplace, TextRope, } from '../../crdt/Rope.js';
|
|
12
16
|
/**
|
|
13
|
-
*
|
|
17
|
+
* Get or create a TextRope for a property.
|
|
14
18
|
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
* - TextRope is mutable (edits work across clones)
|
|
19
|
-
*/
|
|
20
|
-
function getTextRopeKey(path) {
|
|
21
|
-
return `_textRope.${path}`;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Get or create a TextRope for a property
|
|
19
|
+
* If the property is a string, replaces it with a TextRope in-place.
|
|
20
|
+
* If the property is already a TextRope, returns it.
|
|
21
|
+
* Otherwise, creates a new empty TextRope.
|
|
25
22
|
*/
|
|
26
23
|
function getOrCreateRope(node, path, agentId) {
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
if (
|
|
30
|
-
rope = create(agentId);
|
|
31
|
-
|
|
24
|
+
const value = node[path];
|
|
25
|
+
// Lazy upgrade: string → TextRope
|
|
26
|
+
if (typeof value === 'string') {
|
|
27
|
+
const rope = create(agentId);
|
|
28
|
+
if (value.length > 0) {
|
|
29
|
+
insert(rope, 0, value);
|
|
30
|
+
}
|
|
31
|
+
node[path] = rope;
|
|
32
|
+
return rope;
|
|
33
|
+
}
|
|
34
|
+
// Already a TextRope
|
|
35
|
+
if (value instanceof TextRope) {
|
|
36
|
+
return value;
|
|
32
37
|
}
|
|
38
|
+
// Create new empty TextRope
|
|
39
|
+
const rope = create(agentId);
|
|
40
|
+
node[path] = rope;
|
|
33
41
|
return rope;
|
|
34
42
|
}
|
|
35
43
|
/**
|
|
36
|
-
* Get existing TextRope for a property
|
|
44
|
+
* Get existing TextRope for a property (returns undefined if not a TextRope)
|
|
37
45
|
*/
|
|
38
46
|
function getRope(node, path) {
|
|
39
|
-
const
|
|
40
|
-
return
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Update the visible text content on the node
|
|
44
|
-
*
|
|
45
|
-
* For now, stores as plain string for compatibility.
|
|
46
|
-
* TODO: Lazy upgrade to StringRope when beneficial (long texts, many edits)
|
|
47
|
-
*/
|
|
48
|
-
function updateTextContent(node, path, rope) {
|
|
49
|
-
node[path] = getText(rope);
|
|
47
|
+
const value = node[path];
|
|
48
|
+
return value instanceof TextRope ? value : undefined;
|
|
50
49
|
}
|
|
51
50
|
/**
|
|
52
51
|
* text.init - Initialize a CRDT-backed text property
|
|
@@ -59,7 +58,7 @@ export function TextInit(draft, op, meta) {
|
|
|
59
58
|
if (op.value && op.value.length > 0) {
|
|
60
59
|
insert(rope, 0, op.value);
|
|
61
60
|
}
|
|
62
|
-
|
|
61
|
+
// node[path] is now the TextRope instance
|
|
63
62
|
}
|
|
64
63
|
/**
|
|
65
64
|
* text.insert - Apply an insert operation
|
|
@@ -70,7 +69,7 @@ export function TextInsert(draft, op, meta) {
|
|
|
70
69
|
return;
|
|
71
70
|
const rope = getOrCreateRope(node, op.path, meta.sessionId);
|
|
72
71
|
if (op.id !== undefined && op.content !== undefined && op.seq !== undefined) {
|
|
73
|
-
// CRDT metadata format
|
|
72
|
+
// CRDT metadata format (replay from journal)
|
|
74
73
|
apply(rope, {
|
|
75
74
|
id: op.id,
|
|
76
75
|
content: op.content,
|
|
@@ -79,15 +78,15 @@ export function TextInsert(draft, op, meta) {
|
|
|
79
78
|
});
|
|
80
79
|
}
|
|
81
80
|
else if (op.position !== undefined && op.value !== undefined) {
|
|
82
|
-
// Position-based format → convert to CRDT metadata in-place
|
|
83
|
-
// op is order-independent when replayed from a different journal order.
|
|
81
|
+
// Position-based format (local edit) → convert to CRDT metadata in-place
|
|
82
|
+
// so the op is order-independent when replayed from a different journal order.
|
|
84
83
|
const crdtOp = insertWithSplit(rope, op.position, op.value, meta.sessionId);
|
|
85
84
|
op.id = crdtOp.id;
|
|
86
85
|
op.content = crdtOp.content;
|
|
87
86
|
op.parentId = crdtOp.parentId;
|
|
88
87
|
op.seq = crdtOp.seq;
|
|
89
88
|
}
|
|
90
|
-
|
|
89
|
+
// node[path] is the mutated TextRope (React will call .toString())
|
|
91
90
|
}
|
|
92
91
|
/**
|
|
93
92
|
* text.delete - Apply a delete operation
|
|
@@ -100,15 +99,15 @@ export function TextDelete(draft, op, meta) {
|
|
|
100
99
|
if (!rope)
|
|
101
100
|
return;
|
|
102
101
|
if (op.deletions !== undefined) {
|
|
103
|
-
// CRDT metadata format
|
|
102
|
+
// CRDT metadata format (replay from journal)
|
|
104
103
|
applyDelete(rope, { deletions: op.deletions });
|
|
105
104
|
}
|
|
106
105
|
else if (op.position !== undefined && op.length !== undefined) {
|
|
107
|
-
// Position-based format → convert to CRDT metadata in-place
|
|
106
|
+
// Position-based format (local edit) → convert to CRDT metadata in-place
|
|
108
107
|
const crdtOp = remove(rope, op.position, op.length);
|
|
109
108
|
op.deletions = crdtOp.deletions;
|
|
110
109
|
}
|
|
111
|
-
|
|
110
|
+
// node[path] is the mutated TextRope
|
|
112
111
|
}
|
|
113
112
|
/**
|
|
114
113
|
* text.replace - Atomic delete + insert (for select-and-type)
|
|
@@ -119,7 +118,7 @@ export function TextReplace(draft, op, meta) {
|
|
|
119
118
|
return;
|
|
120
119
|
const rope = getOrCreateRope(node, op.path, meta.sessionId);
|
|
121
120
|
if (op.deletions !== undefined && op.id !== undefined && op.seq !== undefined) {
|
|
122
|
-
// CRDT metadata format
|
|
121
|
+
// CRDT metadata format (replay from journal)
|
|
123
122
|
applyReplace(rope, {
|
|
124
123
|
delete: { deletions: op.deletions },
|
|
125
124
|
insert: {
|
|
@@ -131,7 +130,7 @@ export function TextReplace(draft, op, meta) {
|
|
|
131
130
|
});
|
|
132
131
|
}
|
|
133
132
|
else if (op.position !== undefined && op.length !== undefined && op.value !== undefined) {
|
|
134
|
-
// Position-based format → convert to CRDT metadata in-place
|
|
133
|
+
// Position-based format (local edit) → convert to CRDT metadata in-place
|
|
135
134
|
const crdtOp = replace(rope, op.position, op.length, op.value, meta.sessionId);
|
|
136
135
|
op.deletions = crdtOp.delete.deletions;
|
|
137
136
|
op.id = crdtOp.insert.id;
|
|
@@ -139,10 +138,10 @@ export function TextReplace(draft, op, meta) {
|
|
|
139
138
|
op.parentId = crdtOp.insert.parentId;
|
|
140
139
|
op.seq = crdtOp.insert.seq;
|
|
141
140
|
}
|
|
142
|
-
|
|
141
|
+
// node[path] is the mutated TextRope
|
|
143
142
|
}
|
|
144
143
|
/**
|
|
145
|
-
* Get the TextRope for a text property
|
|
144
|
+
* Get the TextRope for a text property (if it's been upgraded)
|
|
146
145
|
*/
|
|
147
146
|
export function getTextDocument(graph, nodeKey, path) {
|
|
148
147
|
const node = graph.nodes[nodeKey];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text.js","sourceRoot":"","sources":["../../../src/operations/apply/text.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"text.js","sourceRoot":"","sources":["../../../src/operations/apply/text.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAWH,OAAO,EACL,MAAM,EAEN,MAAM,EACN,eAAe,EACf,MAAM,EACN,OAAO,EACP,KAAK,EACL,WAAW,EACX,YAAY,EACZ,QAAQ,GACT,MAAM,oBAAoB,CAAC;AAE5B;;;;;;GAMG;AACH,SAAS,eAAe,CAAC,IAAe,EAAE,IAAY,EAAE,OAAe;IACrE,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IAEzB,kCAAkC;IAClC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAC7B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QACzB,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,qBAAqB;IACrB,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,4BAA4B;IAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAC7B,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAClB,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,OAAO,CAAC,IAAe,EAAE,IAAY;IAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,OAAO,KAAK,YAAY,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CACtB,KAAiB,EACjB,EAAc,EACd,IAAY;IAEZ,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,CAAC,IAAI;QAAE,OAAO;IAElB,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAE5D,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,0CAA0C;AAC5C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CACxB,KAAiB,EACjB,EAAgB,EAChB,IAAY;IAEZ,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,CAAC,IAAI;QAAE,OAAO;IAElB,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAE5D,IAAI,EAAE,CAAC,EAAE,KAAK,SAAS,IAAI,EAAE,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QAC5E,6CAA6C;QAC7C,KAAK,CAAC,IAAI,EAAE;YACV,EAAE,EAAE,EAAE,CAAC,EAAE;YACT,OAAO,EAAE,EAAE,CAAC,OAAO;YACnB,QAAQ,EAAE,EAAE,CAAC,QAAQ,IAAI,IAAI;YAC7B,GAAG,EAAE,EAAE,CAAC,GAAG;SACZ,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,EAAE,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/D,yEAAyE;QACzE,+EAA+E;QAC/E,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5E,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;QAClB,EAAE,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC5B,EAAE,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC9B,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;IACtB,CAAC;IAED,mEAAmE;AACrE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CACxB,KAAiB,EACjB,EAAgB,EAChB,IAAY;IAEZ,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,CAAC,IAAI;QAAE,OAAO;IAElB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,CAAC,IAAI;QAAE,OAAO;IAElB,IAAI,EAAE,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAC/B,6CAA6C;QAC7C,WAAW,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC;IACjD,CAAC;SAAM,IAAI,EAAE,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAChE,yEAAyE;QACzE,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;QACpD,EAAE,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;IAClC,CAAC;IAED,qCAAqC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CACzB,KAAiB,EACjB,EAAiB,EACjB,IAAY;IAEZ,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,CAAC,IAAI;QAAE,OAAO;IAElB,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAE5D,IAAI,EAAE,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,CAAC,EAAE,KAAK,SAAS,IAAI,EAAE,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QAC9E,6CAA6C;QAC7C,YAAY,CAAC,IAAI,EAAE;YACjB,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE;YACnC,MAAM,EAAE;gBACN,EAAE,EAAE,EAAE,CAAC,EAAE;gBACT,OAAO,EAAE,EAAE,CAAC,OAAO,IAAI,EAAE;gBACzB,QAAQ,EAAE,EAAE,CAAC,QAAQ,IAAI,IAAI;gBAC7B,GAAG,EAAE,EAAE,CAAC,GAAG;aACZ;SACF,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,EAAE,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1F,yEAAyE;QACzE,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/E,EAAE,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;QACvC,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,EAAE,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;QACnC,EAAE,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;QACrC,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;IAC7B,CAAC;IAED,qCAAqC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAC7B,KAAiB,EACjB,OAAe,EACf,IAAY;IAEZ,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAClC,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,OAAO,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7B,CAAC"}
|
package/package.json
CHANGED
package/src/client/actions.ts
CHANGED
|
@@ -14,7 +14,7 @@ import type { ClientState, JournalEntry, Snapshot } from './types.js';
|
|
|
14
14
|
import { applyMessage, applyOperation, createEmptyGraph } from '../operations/dispatcher.js';
|
|
15
15
|
import { VectorClockManager, type VectorClock } from '../state/VectorClock.js';
|
|
16
16
|
import { isAdditiveOp, mergeValues, opDedupKey, coalesceTextOps } from './EditBuffer.js';
|
|
17
|
-
import { TextRope, snapshot as cloneRope, compact as compactRope
|
|
17
|
+
import { TextRope, snapshot as cloneRope, compact as compactRope } from '../crdt/Rope.js';
|
|
18
18
|
|
|
19
19
|
const clockManager = new VectorClockManager();
|
|
20
20
|
|
|
@@ -63,9 +63,6 @@ function cloneSnapshotGraph(graph: SceneGraph): SceneGraph {
|
|
|
63
63
|
for (const prop of Object.keys(cloned)) {
|
|
64
64
|
if (cloned[prop] instanceof TextRope) {
|
|
65
65
|
cloned[prop] = cloneRope(cloned[prop] as TextRope);
|
|
66
|
-
} else if (isSerializedRope(cloned[prop])) {
|
|
67
|
-
// Hydrate serialized TextRope from server snapshot
|
|
68
|
-
cloned[prop] = hydrateRope(cloned[prop]);
|
|
69
66
|
}
|
|
70
67
|
}
|
|
71
68
|
nodes[key] = cloned;
|
package/src/crdt/Rope.ts
CHANGED
|
@@ -62,6 +62,25 @@ export class TextRope {
|
|
|
62
62
|
this.clock = clock;
|
|
63
63
|
this.maxSeq = maxSeq;
|
|
64
64
|
}
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Convert TextRope to plain string for display/rendering.
|
|
68
|
+
* React automatically calls this when rendering JSX.
|
|
69
|
+
*/
|
|
70
|
+
toString(): string {
|
|
71
|
+
return getText(this);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Serialize TextRope to plain string for JSON/MongoDB storage.
|
|
76
|
+
* JSON.stringify() automatically calls this method.
|
|
77
|
+
*
|
|
78
|
+
* This enables clean storage: store as string, load as string,
|
|
79
|
+
* lazy upgrade to TextRope only when text operations are applied.
|
|
80
|
+
*/
|
|
81
|
+
toJSON(): string {
|
|
82
|
+
return getText(this);
|
|
83
|
+
}
|
|
65
84
|
}
|
|
66
85
|
|
|
67
86
|
export interface InsertOp {
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Text operations for graph nodes
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* -
|
|
6
|
-
* -
|
|
7
|
-
* -
|
|
4
|
+
* ARCHITECTURE:
|
|
5
|
+
* - Nodes store plain strings initially
|
|
6
|
+
* - When text operations arrive, we lazy-upgrade strings to TextRope in-place
|
|
7
|
+
* - TextRope.toJSON() serializes back to plain string for storage
|
|
8
|
+
* - React can render TextRope directly via toString()
|
|
8
9
|
*
|
|
9
|
-
*
|
|
10
|
+
* Benefits:
|
|
11
|
+
* - Simple storage (just strings in MongoDB)
|
|
12
|
+
* - CRDT overhead only for edited text
|
|
13
|
+
* - Transparent to rendering code
|
|
10
14
|
*/
|
|
11
15
|
|
|
12
16
|
import type {
|
|
@@ -18,7 +22,6 @@ import type {
|
|
|
18
22
|
TextReplaceOp,
|
|
19
23
|
} from '../OperationTypes.js';
|
|
20
24
|
import type { OpMeta } from './types.js';
|
|
21
|
-
import { StringRope } from '../../datastructures/StringRope.js';
|
|
22
25
|
import {
|
|
23
26
|
create,
|
|
24
27
|
getText,
|
|
@@ -29,52 +32,46 @@ import {
|
|
|
29
32
|
apply,
|
|
30
33
|
applyDelete,
|
|
31
34
|
applyReplace,
|
|
32
|
-
|
|
35
|
+
TextRope,
|
|
33
36
|
} from '../../crdt/Rope.js';
|
|
34
37
|
|
|
35
38
|
/**
|
|
36
|
-
*
|
|
39
|
+
* Get or create a TextRope for a property.
|
|
37
40
|
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
* - TextRope is mutable (edits work across clones)
|
|
42
|
-
*/
|
|
43
|
-
function getTextRopeKey(path: string): string {
|
|
44
|
-
return `_textRope.${path}`;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* Get or create a TextRope for a property
|
|
41
|
+
* If the property is a string, replaces it with a TextRope in-place.
|
|
42
|
+
* If the property is already a TextRope, returns it.
|
|
43
|
+
* Otherwise, creates a new empty TextRope.
|
|
49
44
|
*/
|
|
50
45
|
function getOrCreateRope(node: SceneNode, path: string, agentId: string): TextRope {
|
|
51
|
-
const
|
|
52
|
-
|
|
46
|
+
const value = node[path];
|
|
47
|
+
|
|
48
|
+
// Lazy upgrade: string → TextRope
|
|
49
|
+
if (typeof value === 'string') {
|
|
50
|
+
const rope = create(agentId);
|
|
51
|
+
if (value.length > 0) {
|
|
52
|
+
insert(rope, 0, value);
|
|
53
|
+
}
|
|
54
|
+
node[path] = rope;
|
|
55
|
+
return rope;
|
|
56
|
+
}
|
|
53
57
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
58
|
+
// Already a TextRope
|
|
59
|
+
if (value instanceof TextRope) {
|
|
60
|
+
return value;
|
|
57
61
|
}
|
|
58
62
|
|
|
63
|
+
// Create new empty TextRope
|
|
64
|
+
const rope = create(agentId);
|
|
65
|
+
node[path] = rope;
|
|
59
66
|
return rope;
|
|
60
67
|
}
|
|
61
68
|
|
|
62
69
|
/**
|
|
63
|
-
* Get existing TextRope for a property
|
|
70
|
+
* Get existing TextRope for a property (returns undefined if not a TextRope)
|
|
64
71
|
*/
|
|
65
72
|
function getRope(node: SceneNode, path: string): TextRope | undefined {
|
|
66
|
-
const
|
|
67
|
-
return
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
/**
|
|
71
|
-
* Update the visible text content on the node
|
|
72
|
-
*
|
|
73
|
-
* For now, stores as plain string for compatibility.
|
|
74
|
-
* TODO: Lazy upgrade to StringRope when beneficial (long texts, many edits)
|
|
75
|
-
*/
|
|
76
|
-
function updateTextContent(node: SceneNode, path: string, rope: TextRope): void {
|
|
77
|
-
node[path] = getText(rope);
|
|
73
|
+
const value = node[path];
|
|
74
|
+
return value instanceof TextRope ? value : undefined;
|
|
78
75
|
}
|
|
79
76
|
|
|
80
77
|
/**
|
|
@@ -94,7 +91,7 @@ export function TextInit(
|
|
|
94
91
|
insert(rope, 0, op.value);
|
|
95
92
|
}
|
|
96
93
|
|
|
97
|
-
|
|
94
|
+
// node[path] is now the TextRope instance
|
|
98
95
|
}
|
|
99
96
|
|
|
100
97
|
/**
|
|
@@ -111,7 +108,7 @@ export function TextInsert(
|
|
|
111
108
|
const rope = getOrCreateRope(node, op.path, meta.sessionId);
|
|
112
109
|
|
|
113
110
|
if (op.id !== undefined && op.content !== undefined && op.seq !== undefined) {
|
|
114
|
-
// CRDT metadata format
|
|
111
|
+
// CRDT metadata format (replay from journal)
|
|
115
112
|
apply(rope, {
|
|
116
113
|
id: op.id,
|
|
117
114
|
content: op.content,
|
|
@@ -119,8 +116,8 @@ export function TextInsert(
|
|
|
119
116
|
seq: op.seq,
|
|
120
117
|
});
|
|
121
118
|
} else if (op.position !== undefined && op.value !== undefined) {
|
|
122
|
-
// Position-based format → convert to CRDT metadata in-place
|
|
123
|
-
// op is order-independent when replayed from a different journal order.
|
|
119
|
+
// Position-based format (local edit) → convert to CRDT metadata in-place
|
|
120
|
+
// so the op is order-independent when replayed from a different journal order.
|
|
124
121
|
const crdtOp = insertWithSplit(rope, op.position, op.value, meta.sessionId);
|
|
125
122
|
op.id = crdtOp.id;
|
|
126
123
|
op.content = crdtOp.content;
|
|
@@ -128,7 +125,7 @@ export function TextInsert(
|
|
|
128
125
|
op.seq = crdtOp.seq;
|
|
129
126
|
}
|
|
130
127
|
|
|
131
|
-
|
|
128
|
+
// node[path] is the mutated TextRope (React will call .toString())
|
|
132
129
|
}
|
|
133
130
|
|
|
134
131
|
/**
|
|
@@ -146,15 +143,15 @@ export function TextDelete(
|
|
|
146
143
|
if (!rope) return;
|
|
147
144
|
|
|
148
145
|
if (op.deletions !== undefined) {
|
|
149
|
-
// CRDT metadata format
|
|
146
|
+
// CRDT metadata format (replay from journal)
|
|
150
147
|
applyDelete(rope, { deletions: op.deletions });
|
|
151
148
|
} else if (op.position !== undefined && op.length !== undefined) {
|
|
152
|
-
// Position-based format → convert to CRDT metadata in-place
|
|
149
|
+
// Position-based format (local edit) → convert to CRDT metadata in-place
|
|
153
150
|
const crdtOp = remove(rope, op.position, op.length);
|
|
154
151
|
op.deletions = crdtOp.deletions;
|
|
155
152
|
}
|
|
156
153
|
|
|
157
|
-
|
|
154
|
+
// node[path] is the mutated TextRope
|
|
158
155
|
}
|
|
159
156
|
|
|
160
157
|
/**
|
|
@@ -171,7 +168,7 @@ export function TextReplace(
|
|
|
171
168
|
const rope = getOrCreateRope(node, op.path, meta.sessionId);
|
|
172
169
|
|
|
173
170
|
if (op.deletions !== undefined && op.id !== undefined && op.seq !== undefined) {
|
|
174
|
-
// CRDT metadata format
|
|
171
|
+
// CRDT metadata format (replay from journal)
|
|
175
172
|
applyReplace(rope, {
|
|
176
173
|
delete: { deletions: op.deletions },
|
|
177
174
|
insert: {
|
|
@@ -182,7 +179,7 @@ export function TextReplace(
|
|
|
182
179
|
},
|
|
183
180
|
});
|
|
184
181
|
} else if (op.position !== undefined && op.length !== undefined && op.value !== undefined) {
|
|
185
|
-
// Position-based format → convert to CRDT metadata in-place
|
|
182
|
+
// Position-based format (local edit) → convert to CRDT metadata in-place
|
|
186
183
|
const crdtOp = replace(rope, op.position, op.length, op.value, meta.sessionId);
|
|
187
184
|
op.deletions = crdtOp.delete.deletions;
|
|
188
185
|
op.id = crdtOp.insert.id;
|
|
@@ -191,11 +188,11 @@ export function TextReplace(
|
|
|
191
188
|
op.seq = crdtOp.insert.seq;
|
|
192
189
|
}
|
|
193
190
|
|
|
194
|
-
|
|
191
|
+
// node[path] is the mutated TextRope
|
|
195
192
|
}
|
|
196
193
|
|
|
197
194
|
/**
|
|
198
|
-
* Get the TextRope for a text property
|
|
195
|
+
* Get the TextRope for a text property (if it's been upgraded)
|
|
199
196
|
*/
|
|
200
197
|
export function getTextDocument(
|
|
201
198
|
graph: SceneGraph,
|
|
@@ -26,6 +26,13 @@ import type { Operation, CRDTMessage } from '../../src/operations/OperationTypes
|
|
|
26
26
|
|
|
27
27
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
28
28
|
|
|
29
|
+
/** Get text content from a node property (handles both string and TextRope) */
|
|
30
|
+
function getText(value: any): string {
|
|
31
|
+
if (typeof value === 'string') return value;
|
|
32
|
+
if (value && typeof value.toString === 'function') return value.toString();
|
|
33
|
+
return '';
|
|
34
|
+
}
|
|
35
|
+
|
|
29
36
|
// Helper to load JSONL fixtures
|
|
30
37
|
function loadFixtures<T>(filename: string): T[] {
|
|
31
38
|
const filepath = join(__dirname, '../fixtures', filename);
|
|
@@ -677,7 +684,7 @@ describe('Client Actions', () => {
|
|
|
677
684
|
// Alice types "a b c d e" one char at a time
|
|
678
685
|
const chars = ['a', ' ', 'b', ' ', 'c', ' ', 'd', ' ', 'e'];
|
|
679
686
|
for (const ch of chars) {
|
|
680
|
-
const pos = (alice.graph.nodes['text-doc']?.content
|
|
687
|
+
const pos = getText(alice.graph.nodes['text-doc']?.content).length;
|
|
681
688
|
alice = onEdit(alice, {
|
|
682
689
|
key: 'text-doc',
|
|
683
690
|
otype: 'text.insert',
|
|
@@ -691,8 +698,8 @@ describe('Client Actions', () => {
|
|
|
691
698
|
}
|
|
692
699
|
|
|
693
700
|
// Verify both have "a b c d e"
|
|
694
|
-
expect(alice.graph.nodes['text-doc']?.content).toBe('a b c d e');
|
|
695
|
-
expect(bob.graph.nodes['text-doc']?.content).toBe('a b c d e');
|
|
701
|
+
expect(getText(alice.graph.nodes['text-doc']?.content)).toBe('a b c d e');
|
|
702
|
+
expect(getText(bob.graph.nodes['text-doc']?.content)).toBe('a b c d e');
|
|
696
703
|
|
|
697
704
|
// Bob replaces each lowercase letter with uppercase using text.replace
|
|
698
705
|
const replacements = [
|
|
@@ -729,7 +736,7 @@ describe('Client Actions', () => {
|
|
|
729
736
|
}
|
|
730
737
|
|
|
731
738
|
// Bob should see "A B C D E"
|
|
732
|
-
expect(bob.graph.nodes['text-doc']?.content).toBe('A B C D E');
|
|
739
|
+
expect(getText(bob.graph.nodes['text-doc']?.content)).toBe('A B C D E');
|
|
733
740
|
|
|
734
741
|
// Deliver all of Bob's messages to Alice
|
|
735
742
|
for (const msg of bobMsgs) {
|
|
@@ -737,8 +744,8 @@ describe('Client Actions', () => {
|
|
|
737
744
|
}
|
|
738
745
|
|
|
739
746
|
// Both should converge to the same text
|
|
740
|
-
expect(alice.graph.nodes['text-doc']?.content).toBe('A B C D E');
|
|
741
|
-
expect(bob.graph.nodes['text-doc']?.content).toBe('A B C D E');
|
|
747
|
+
expect(getText(alice.graph.nodes['text-doc']?.content)).toBe('A B C D E');
|
|
748
|
+
expect(getText(bob.graph.nodes['text-doc']?.content)).toBe('A B C D E');
|
|
742
749
|
});
|
|
743
750
|
|
|
744
751
|
it('should not drop text.delete from edit buffer when using separate ops', () => {
|
|
@@ -767,7 +774,7 @@ describe('Client Actions', () => {
|
|
|
767
774
|
|
|
768
775
|
bob = onRemoteMessage(bob, m1!);
|
|
769
776
|
bob = onRemoteMessage(bob, m2!);
|
|
770
|
-
expect(bob.graph.nodes['doc']?.content).toBe('hello');
|
|
777
|
+
expect(getText(bob.graph.nodes['doc']?.content)).toBe('hello');
|
|
771
778
|
|
|
772
779
|
// Bob uses text.replace to change "h" → "H"
|
|
773
780
|
bob = onEdit(bob, {
|
|
@@ -781,11 +788,11 @@ describe('Client Actions', () => {
|
|
|
781
788
|
const { state: b1, msg: replaceMsg } = commitEdits(bob);
|
|
782
789
|
bob = b1;
|
|
783
790
|
|
|
784
|
-
expect(bob.graph.nodes['doc']?.content).toBe('Hello');
|
|
791
|
+
expect(getText(bob.graph.nodes['doc']?.content)).toBe('Hello');
|
|
785
792
|
|
|
786
793
|
// Send to Alice
|
|
787
794
|
alice = onRemoteMessage(alice, replaceMsg!);
|
|
788
|
-
expect(alice.graph.nodes['doc']?.content).toBe('Hello');
|
|
795
|
+
expect(getText(alice.graph.nodes['doc']?.content)).toBe('Hello');
|
|
789
796
|
});
|
|
790
797
|
});
|
|
791
798
|
});
|
package/tests/crdt/rope.test.ts
CHANGED
|
@@ -1210,20 +1210,17 @@ describe('TextRope', () => {
|
|
|
1210
1210
|
expect(getLength(restored)).toBe(getLength(rope1));
|
|
1211
1211
|
});
|
|
1212
1212
|
|
|
1213
|
-
it('should
|
|
1213
|
+
it('should serialize to plain string via toJSON()', () => {
|
|
1214
1214
|
const rope = create('agent-1');
|
|
1215
1215
|
insert(rope, 0, 'hello world');
|
|
1216
1216
|
|
|
1217
|
-
//
|
|
1217
|
+
// JSON.stringify() should call toJSON() and return plain string
|
|
1218
1218
|
const json = JSON.stringify(rope);
|
|
1219
1219
|
const plain = JSON.parse(json);
|
|
1220
1220
|
|
|
1221
|
-
//
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
expect(hydrated).toBeInstanceOf(TextRope);
|
|
1225
|
-
expect(getText(hydrated)).toBe('hello world');
|
|
1226
|
-
expect(hydrated.agentId).toBe('agent-1');
|
|
1221
|
+
// After JSON round-trip, we get a plain string (not an object)
|
|
1222
|
+
expect(typeof plain).toBe('string');
|
|
1223
|
+
expect(plain).toBe('hello world');
|
|
1227
1224
|
});
|
|
1228
1225
|
|
|
1229
1226
|
it('should hydrateRope handle already-hydrated rope', () => {
|
|
@@ -29,6 +29,13 @@ function createMsg(op: Operation, sessionId = 'test-session', lamport = 1): CRDT
|
|
|
29
29
|
};
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
+
/** Get text content from a node property (handles both string and TextRope) */
|
|
33
|
+
function getText(value: any): string {
|
|
34
|
+
if (typeof value === 'string') return value;
|
|
35
|
+
if (value && typeof value.toString === 'function') return value.toString();
|
|
36
|
+
return '';
|
|
37
|
+
}
|
|
38
|
+
|
|
32
39
|
function createNode(graph: SceneGraph, key: string): SceneGraph {
|
|
33
40
|
const nodeOp: Operation = {
|
|
34
41
|
key: '',
|
|
@@ -60,7 +67,7 @@ describe('Text CRDT Operations', () => {
|
|
|
60
67
|
};
|
|
61
68
|
const result = applyMessage(graph, createMsg(op));
|
|
62
69
|
|
|
63
|
-
expect(result.nodes['doc-1'].content).toBe('');
|
|
70
|
+
expect(getText(result.nodes['doc-1'].content)).toBe('');
|
|
64
71
|
});
|
|
65
72
|
|
|
66
73
|
it('should initialize text with initial content', () => {
|
|
@@ -72,7 +79,7 @@ describe('Text CRDT Operations', () => {
|
|
|
72
79
|
};
|
|
73
80
|
const result = applyMessage(graph, createMsg(op));
|
|
74
81
|
|
|
75
|
-
expect(result.nodes['doc-1'].content).toBe('Hello, World!');
|
|
82
|
+
expect(getText(result.nodes['doc-1'].content)).toBe('Hello, World!');
|
|
76
83
|
});
|
|
77
84
|
});
|
|
78
85
|
|
|
@@ -94,7 +101,7 @@ describe('Text CRDT Operations', () => {
|
|
|
94
101
|
value: 'Hello',
|
|
95
102
|
} as TextInsertOp));
|
|
96
103
|
|
|
97
|
-
expect(result.nodes['doc-1'].content).toBe('Hello');
|
|
104
|
+
expect(getText(result.nodes['doc-1'].content)).toBe('Hello');
|
|
98
105
|
});
|
|
99
106
|
|
|
100
107
|
it('should insert text at the end', () => {
|
|
@@ -113,7 +120,7 @@ describe('Text CRDT Operations', () => {
|
|
|
113
120
|
value: ' World',
|
|
114
121
|
} as TextInsertOp));
|
|
115
122
|
|
|
116
|
-
expect(result.nodes['doc-1'].content).toBe('Hello World');
|
|
123
|
+
expect(getText(result.nodes['doc-1'].content)).toBe('Hello World');
|
|
117
124
|
});
|
|
118
125
|
|
|
119
126
|
it('should insert text in the middle', () => {
|
|
@@ -132,7 +139,7 @@ describe('Text CRDT Operations', () => {
|
|
|
132
139
|
value: 'e',
|
|
133
140
|
} as TextInsertOp));
|
|
134
141
|
|
|
135
|
-
expect(result.nodes['doc-1'].content).toBe('Hello');
|
|
142
|
+
expect(getText(result.nodes['doc-1'].content)).toBe('Hello');
|
|
136
143
|
});
|
|
137
144
|
});
|
|
138
145
|
|
|
@@ -153,7 +160,7 @@ describe('Text CRDT Operations', () => {
|
|
|
153
160
|
length: 6,
|
|
154
161
|
} as Operation));
|
|
155
162
|
|
|
156
|
-
expect(result.nodes['doc-1'].content).toBe('World');
|
|
163
|
+
expect(getText(result.nodes['doc-1'].content)).toBe('World');
|
|
157
164
|
});
|
|
158
165
|
|
|
159
166
|
it('should delete text from the end', () => {
|
|
@@ -172,7 +179,7 @@ describe('Text CRDT Operations', () => {
|
|
|
172
179
|
length: 6,
|
|
173
180
|
} as Operation));
|
|
174
181
|
|
|
175
|
-
expect(result.nodes['doc-1'].content).toBe('Hello');
|
|
182
|
+
expect(getText(result.nodes['doc-1'].content)).toBe('Hello');
|
|
176
183
|
});
|
|
177
184
|
|
|
178
185
|
it('should delete text from the middle', () => {
|
|
@@ -191,7 +198,7 @@ describe('Text CRDT Operations', () => {
|
|
|
191
198
|
length: 6,
|
|
192
199
|
} as Operation));
|
|
193
200
|
|
|
194
|
-
expect(result.nodes['doc-1'].content).toBe('Herld');
|
|
201
|
+
expect(getText(result.nodes['doc-1'].content)).toBe('Herld');
|
|
195
202
|
});
|
|
196
203
|
});
|
|
197
204
|
|
|
@@ -231,8 +238,8 @@ describe('Text CRDT Operations', () => {
|
|
|
231
238
|
} as TextInsertOp, 'user-b', 2));
|
|
232
239
|
|
|
233
240
|
// Both should have their local changes
|
|
234
|
-
expect(graphA.nodes['doc-1'].content).toBe('AHello');
|
|
235
|
-
expect(graphB.nodes['doc-1'].content).toBe('HelloB');
|
|
241
|
+
expect(getText(graphA.nodes['doc-1'].content)).toBe('AHello');
|
|
242
|
+
expect(getText(graphB.nodes['doc-1'].content)).toBe('HelloB');
|
|
236
243
|
|
|
237
244
|
// After syncing, both should converge
|
|
238
245
|
// (In a real app, you'd use remoteInsert to sync)
|
|
@@ -309,7 +316,7 @@ describe('Text CRDT Operations', () => {
|
|
|
309
316
|
}
|
|
310
317
|
}
|
|
311
318
|
|
|
312
|
-
expect(result.nodes['doc-1'].content).toBe('> Hello World!');
|
|
319
|
+
expect(getText(result.nodes['doc-1'].content)).toBe('> Hello World!');
|
|
313
320
|
});
|
|
314
321
|
});
|
|
315
322
|
});
|