@vuer-ai/vuer-rtc 0.6.0 → 0.8.1
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 +66 -0
- package/dist/client/EditBuffer.d.ts +4 -4
- package/dist/client/EditBuffer.d.ts.map +1 -1
- package/dist/client/EditBuffer.js +26 -25
- package/dist/client/EditBuffer.js.map +1 -1
- package/dist/client/actions.d.ts +3 -3
- package/dist/client/actions.d.ts.map +1 -1
- package/dist/client/actions.js +71 -70
- package/dist/client/actions.js.map +1 -1
- package/dist/client/coalesceGraphOps.d.ts +4 -4
- package/dist/client/coalesceGraphOps.js +4 -4
- package/dist/client/coalesceTextOperations.d.ts.map +1 -1
- package/dist/client/coalesceTextOperations.js +28 -24
- package/dist/client/coalesceTextOperations.js.map +1 -1
- package/dist/client/coalescence/lwwOperations.js +3 -3
- package/dist/client/coalescence/lwwOperations.js.map +1 -1
- package/dist/client/coalescence/numberOperations.js +2 -2
- package/dist/client/coalescence/numberOperations.js.map +1 -1
- package/dist/client/coalescence/registry.d.ts +3 -3
- package/dist/client/coalescence/registry.d.ts.map +1 -1
- package/dist/client/coalescence/registry.js +11 -11
- package/dist/client/coalescence/registry.js.map +1 -1
- package/dist/client/coalescence/textDeletes.d.ts +8 -7
- package/dist/client/coalescence/textDeletes.d.ts.map +1 -1
- package/dist/client/coalescence/textDeletes.js +11 -11
- package/dist/client/coalescence/textDeletes.js.map +1 -1
- package/dist/client/coalescence/textInserts.d.ts +8 -5
- package/dist/client/coalescence/textInserts.d.ts.map +1 -1
- package/dist/client/coalescence/textInserts.js +32 -12
- package/dist/client/coalescence/textInserts.js.map +1 -1
- package/dist/client/coalescence/utils.d.ts +3 -9
- package/dist/client/coalescence/utils.d.ts.map +1 -1
- package/dist/client/coalescence/utils.js +10 -8
- package/dist/client/coalescence/utils.js.map +1 -1
- package/dist/client/coalescence/vector3Operations.js +2 -2
- package/dist/client/coalescence/vector3Operations.js.map +1 -1
- package/dist/client/createGraph.d.ts +2 -2
- package/dist/client/createGraph.js +4 -4
- package/dist/client/createGraph.js.map +1 -1
- package/dist/client/createTextDocument.d.ts +1 -1
- package/dist/client/createTextDocument.js +7 -7
- package/dist/client/createTextDocument.js.map +1 -1
- package/dist/client/hooks.d.ts +3 -3
- package/dist/client/hooks.d.ts.map +1 -1
- package/dist/client/hooks.js +4 -4
- package/dist/client/hooks.js.map +1 -1
- package/dist/client/textActions.d.ts +2 -2
- package/dist/client/textActions.d.ts.map +1 -1
- package/dist/client/textActions.js +57 -57
- package/dist/client/textActions.js.map +1 -1
- package/dist/client/textTypes.d.ts +10 -16
- package/dist/client/textTypes.d.ts.map +1 -1
- package/dist/client/types.d.ts +4 -4
- package/dist/client/types.d.ts.map +1 -1
- package/dist/crdt/BTree.d.ts +2 -2
- package/dist/crdt/BTree.d.ts.map +1 -1
- package/dist/crdt/BTree.js +12 -12
- package/dist/crdt/BTree.js.map +1 -1
- package/dist/crdt/GraphTextCRDT.d.ts +2 -2
- package/dist/crdt/GraphTextCRDT.d.ts.map +1 -1
- package/dist/crdt/GraphTextCRDT.js +6 -6
- package/dist/crdt/GraphTextCRDT.js.map +1 -1
- package/dist/crdt/RangeTree.d.ts +2 -2
- package/dist/crdt/RangeTree.d.ts.map +1 -1
- package/dist/crdt/RangeTree.js +10 -10
- package/dist/crdt/RangeTree.js.map +1 -1
- package/dist/crdt/Rope.d.ts +15 -10
- package/dist/crdt/Rope.d.ts.map +1 -1
- package/dist/crdt/Rope.js +158 -59
- package/dist/crdt/Rope.js.map +1 -1
- package/dist/crdt/index.d.ts +1 -1
- package/dist/crdt/index.d.ts.map +1 -1
- package/dist/crdt/index.js +1 -1
- package/dist/crdt/index.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/operations/OperationTypes.d.ts +45 -48
- package/dist/operations/OperationTypes.d.ts.map +1 -1
- package/dist/operations/OperationValidator.js +11 -11
- package/dist/operations/OperationValidator.js.map +1 -1
- package/dist/operations/apply/node.js +3 -3
- package/dist/operations/apply/node.js.map +1 -1
- package/dist/operations/apply/text.d.ts.map +1 -1
- package/dist/operations/apply/text.js +35 -29
- package/dist/operations/apply/text.js.map +1 -1
- package/dist/operations/apply/types.d.ts +4 -4
- package/dist/operations/apply/types.d.ts.map +1 -1
- package/dist/operations/apply/types.js +8 -8
- package/dist/operations/apply/types.js.map +1 -1
- package/dist/operations/dispatcher.d.ts.map +1 -1
- package/dist/operations/dispatcher.js +52 -13
- package/dist/operations/dispatcher.js.map +1 -1
- package/dist/serdes.d.ts +1 -1
- package/dist/serdes.d.ts.map +1 -1
- package/dist/state/ConflictResolver.d.ts +9 -9
- package/dist/state/ConflictResolver.d.ts.map +1 -1
- package/dist/state/ConflictResolver.js +20 -20
- package/dist/state/ConflictResolver.js.map +1 -1
- package/dist/state/DType.d.ts +2 -2
- package/dist/state/DType.d.ts.map +1 -1
- package/dist/state/DType.js +14 -14
- package/dist/state/DType.js.map +1 -1
- package/dist/state/VectorClock.d.ts +6 -6
- package/dist/state/VectorClock.d.ts.map +1 -1
- package/dist/state/VectorClock.js +14 -14
- package/dist/state/VectorClock.js.map +1 -1
- package/dist/state/index.d.ts +1 -1
- package/dist/state/index.js +1 -1
- package/examples/01-basic-usage.ts +16 -16
- package/examples/02-concurrent-edits.ts +29 -29
- package/examples/03-scene-building.ts +28 -28
- package/examples/04-conflict-resolution.ts +56 -56
- package/examples/05-coalescence-usage.ts +23 -23
- package/examples/README.md +12 -12
- package/package.json +1 -1
- package/src/client/EditBuffer.ts +28 -27
- package/src/client/TEXT_DOCUMENT_API.md +20 -13
- package/src/client/actions.ts +74 -70
- package/src/client/coalesceGraphOps.ts +4 -4
- package/src/client/coalesceTextOperations.ts +34 -29
- package/src/client/coalescence/lwwOperations.ts +3 -3
- package/src/client/coalescence/numberOperations.ts +2 -2
- package/src/client/coalescence/registry.ts +13 -12
- package/src/client/coalescence/textDeletes.ts +22 -18
- package/src/client/coalescence/textInserts.ts +49 -25
- package/src/client/coalescence/utils.ts +14 -11
- package/src/client/coalescence/vector3Operations.ts +2 -2
- package/src/client/createGraph.ts +4 -4
- package/src/client/createTextDocument.ts +7 -7
- package/src/client/hooks.tsx +5 -5
- package/src/client/textActions.ts +57 -57
- package/src/client/textTypes.ts +10 -12
- package/src/client/types.ts +4 -4
- package/src/crdt/BTree.ts +14 -14
- package/src/crdt/GraphTextCRDT.ts +6 -6
- package/src/crdt/RangeTree.ts +12 -12
- package/src/crdt/Rope.ts +188 -68
- package/src/crdt/index.ts +2 -0
- package/src/index.ts +2 -0
- package/src/operations/OperationTypes.ts +47 -47
- package/src/operations/OperationValidator.ts +11 -11
- package/src/operations/apply/node.ts +3 -3
- package/src/operations/apply/text.ts +38 -29
- package/src/operations/apply/types.ts +11 -11
- package/src/operations/dispatcher.ts +57 -13
- package/src/serdes.ts +1 -1
- package/src/state/ConflictResolver.ts +23 -23
- package/src/state/DType.ts +16 -16
- package/src/state/VectorClock.ts +14 -14
- package/src/state/index.ts +1 -1
- package/tests/client/actions.test.ts +76 -76
- package/tests/client/coalesce-graph-operations.test.ts +84 -84
- package/tests/client/coalesce-text-operations.test.ts +160 -245
- package/tests/client/compaction.test.ts +18 -18
- package/tests/client/delete-coalescence-bug.test.ts +37 -37
- package/tests/client/edit-buffer.test.ts +27 -30
- package/tests/client/graph-coalescence-phase1.test.ts +66 -66
- package/tests/client/graph-coalescence.test.ts +50 -50
- package/tests/client/journal-benchmark.test.ts +5 -5
- package/tests/crdt/btree.test.ts +2 -2
- package/tests/crdt/graph-text-crdt.test.ts +60 -64
- package/tests/crdt/rope.test.ts +48 -6
- package/tests/crdt/text-operations.test.ts +28 -28
- package/tests/fixtures/array-ops.jsonl +6 -6
- package/tests/fixtures/boolean-ops.jsonl +6 -6
- package/tests/fixtures/color-ops.jsonl +4 -4
- package/tests/fixtures/edit-buffer.jsonl +3 -3
- package/tests/fixtures/node-ops.jsonl +6 -6
- package/tests/fixtures/number-ops.jsonl +7 -7
- package/tests/fixtures/object-ops.jsonl +4 -4
- package/tests/fixtures/operations.jsonl +7 -7
- package/tests/fixtures/string-ops.jsonl +4 -4
- package/tests/fixtures/undo-redo.jsonl +3 -3
- package/tests/fixtures/vector-ops.jsonl +17 -17
- package/tests/operations/collections.test.ts +4 -4
- package/tests/operations/nodes.test.ts +5 -5
- package/tests/operations/primitives.test.ts +4 -4
- package/tests/operations/unified-schema.test.ts +27 -27
- package/tests/operations/vectors.test.ts +4 -4
- package/tests/sync/digest.test.ts +5 -5
- package/docs/rope-optimization-plan.md +0 -329
package/CLAUDE.md
CHANGED
|
@@ -29,6 +29,72 @@ Deploy
|
|
|
29
29
|
|
|
30
30
|
This ensures high-quality implementations and catches issues early.
|
|
31
31
|
|
|
32
|
+
### Deployment Process
|
|
33
|
+
|
|
34
|
+
**Publishing a new version requires careful coordination between npm publish and documentation site updates.**
|
|
35
|
+
|
|
36
|
+
#### Complete Deployment Workflow
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
# 1. Update package version
|
|
40
|
+
# Edit packages/vuer-rtc/package.json → bump version (e.g., 0.6.0)
|
|
41
|
+
|
|
42
|
+
# 2. Build and test locally
|
|
43
|
+
pnpm build && pnpm test
|
|
44
|
+
|
|
45
|
+
# 3. Commit package changes
|
|
46
|
+
git add -A && git commit -m "Release v0.6.0: <summary>" && git push
|
|
47
|
+
|
|
48
|
+
# 4. Publish to npm
|
|
49
|
+
pass otp npmjs && pnpm publish --otp $(pass otp npmjs)
|
|
50
|
+
|
|
51
|
+
# 5. Update documentation site
|
|
52
|
+
cd vuer-rtc-docs
|
|
53
|
+
# Edit package.json → update @vuer-ai/vuer-rtc to ^0.6.0
|
|
54
|
+
pnpm install # Updates pnpm-lock.yaml
|
|
55
|
+
|
|
56
|
+
# 6. Commit and deploy
|
|
57
|
+
git add -A && git commit -m "Update docs to v0.6.0"
|
|
58
|
+
cd ..
|
|
59
|
+
pnpm build # ← IMPORTANT: Rebuild with new version
|
|
60
|
+
pnpm run deploy # ← IMPORTANT: Uses workspace deploy script, pushes to main:netlify-production
|
|
61
|
+
|
|
62
|
+
# 7. WAIT for Netlify build (2-3 minutes)
|
|
63
|
+
# Do NOT check the site immediately - Netlify needs time to build and deploy
|
|
64
|
+
|
|
65
|
+
# 8. Verify deployment
|
|
66
|
+
curl https://rtc.vuer.ai | grep "v0.6.0"
|
|
67
|
+
# Or visit https://rtc.vuer.ai and check the version badge in the hero section
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
#### Important Notes
|
|
71
|
+
|
|
72
|
+
**Why lockfile update is sufficient:**
|
|
73
|
+
- The docs site uses a Vite alias that points to the LOCAL package.json:
|
|
74
|
+
```typescript
|
|
75
|
+
// vuer-rtc-docs/vite.config.ts
|
|
76
|
+
alias: {
|
|
77
|
+
'#vuer-rtc-pkg': path.resolve(__dirname, '../packages/vuer-rtc/package.json')
|
|
78
|
+
}
|
|
79
|
+
```
|
|
80
|
+
- The VuerRTCBadge component imports version from this alias:
|
|
81
|
+
```typescript
|
|
82
|
+
import packageJson from '#vuer-rtc-pkg';
|
|
83
|
+
const PACKAGE_VERSION = packageJson.version;
|
|
84
|
+
```
|
|
85
|
+
- This means the site reads the version from the workspace, NOT from npm
|
|
86
|
+
- The lockfile change triggers Netlify rebuild, which picks up the updated local package.json
|
|
87
|
+
|
|
88
|
+
**Why to use `pnpm run deploy`:**
|
|
89
|
+
- The workspace has a deploy script: `"deploy": "git push origin main:netlify-production"`
|
|
90
|
+
- This pushes to the correct branch that triggers Netlify deployment
|
|
91
|
+
- Using manual `git push` may push to the wrong branch
|
|
92
|
+
|
|
93
|
+
**Why to wait:**
|
|
94
|
+
- Netlify build takes 2-3 minutes after push
|
|
95
|
+
- Checking the site immediately will show stale version
|
|
96
|
+
- Wait for the build to complete before verifying
|
|
97
|
+
|
|
32
98
|
## Text Architecture (3-Component Design)
|
|
33
99
|
|
|
34
100
|
The text handling system uses a 3-component architecture with clear separation of concerns:
|
|
@@ -22,12 +22,12 @@ export declare function opDedupKey(op: Operation): string;
|
|
|
22
22
|
/**
|
|
23
23
|
* Check if an operation type is additive (can be merged)
|
|
24
24
|
*/
|
|
25
|
-
export declare function isAdditiveOp(
|
|
25
|
+
export declare function isAdditiveOp(ot: string): boolean;
|
|
26
26
|
/**
|
|
27
27
|
* Type for position-based text insert (used locally before CRDT conversion)
|
|
28
28
|
*/
|
|
29
29
|
interface PositionTextInsertOp {
|
|
30
|
-
|
|
30
|
+
ot: 'text.insert';
|
|
31
31
|
key: string;
|
|
32
32
|
path: string;
|
|
33
33
|
position: number;
|
|
@@ -41,7 +41,7 @@ export declare function isPositionTextInsertOp(op: Operation): op is PositionTex
|
|
|
41
41
|
* Type for position-based text delete
|
|
42
42
|
*/
|
|
43
43
|
interface PositionTextDeleteOp {
|
|
44
|
-
|
|
44
|
+
ot: 'text.delete';
|
|
45
45
|
key: string;
|
|
46
46
|
path: string;
|
|
47
47
|
position: number;
|
|
@@ -82,7 +82,7 @@ export declare function coalesceTextOps(ops: Operation[]): Operation[];
|
|
|
82
82
|
/**
|
|
83
83
|
* Merge two values for additive operations
|
|
84
84
|
*/
|
|
85
|
-
export declare function mergeValues(
|
|
85
|
+
export declare function mergeValues(ot: string, a: unknown, b: unknown): unknown;
|
|
86
86
|
/**
|
|
87
87
|
* Edit buffer class
|
|
88
88
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditBuffer.d.ts","sourceRoot":"","sources":["../../src/client/EditBuffer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAEjE;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,SAAS,GAAG,MAAM,CAQhD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"EditBuffer.d.ts","sourceRoot":"","sources":["../../src/client/EditBuffer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAEjE;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,SAAS,GAAG,MAAM,CAQhD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAKhD;AAED;;GAEG;AACH,UAAU,oBAAoB;IAC5B,EAAE,EAAE,aAAa,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,SAAS,GAAG,EAAE,IAAI,oBAAoB,CAIhF;AAED;;GAEG;AACH,UAAU,oBAAoB;IAC5B,EAAE,EAAE,aAAa,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,SAAS,GAAG,EAAE,IAAI,oBAAoB,CAIhF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CA6K7D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CAyBvE;AAED;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAqC;IACnD,OAAO,CAAC,OAAO,CAAgB;IAE/B;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI;IAiBxB;;OAEG;IACH,MAAM,IAAI,SAAS,EAAE;IAIrB;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACH,OAAO,IAAI,OAAO;IAIlB;;OAEG;IACH,IAAI,IAAI,MAAM;CAGf"}
|
|
@@ -18,33 +18,33 @@
|
|
|
18
18
|
* separately (coalesced later in commitEdits).
|
|
19
19
|
*/
|
|
20
20
|
export function opDedupKey(op) {
|
|
21
|
-
if (op.
|
|
21
|
+
if (op.ot === 'node.insert')
|
|
22
22
|
return `${op.key}:${op.path}:insert:${op.value.key}`;
|
|
23
|
-
if (op.
|
|
23
|
+
if (op.ot === 'node.remove')
|
|
24
24
|
return `${op.key}:${op.path}:remove:${op.value}`;
|
|
25
|
-
if (op.
|
|
25
|
+
if (op.ot === 'node.move')
|
|
26
26
|
return `${op.key}:${op.path}:move:${op.value.nodeKey}`;
|
|
27
27
|
// Text operations: include position so consecutive inserts aren't deduped
|
|
28
|
-
if (op.
|
|
28
|
+
if (op.ot === 'text.insert')
|
|
29
29
|
return `${op.key}:${op.path}:text.insert:${op.position}`;
|
|
30
|
-
if (op.
|
|
30
|
+
if (op.ot === 'text.delete')
|
|
31
31
|
return `${op.key}:${op.path}:text.delete:${op.position}:${op.length}`;
|
|
32
32
|
return `${op.key}:${op.path}`;
|
|
33
33
|
}
|
|
34
34
|
/**
|
|
35
35
|
* Check if an operation type is additive (can be merged)
|
|
36
36
|
*/
|
|
37
|
-
export function isAdditiveOp(
|
|
38
|
-
return
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
37
|
+
export function isAdditiveOp(ot) {
|
|
38
|
+
return ot === 'vector3.add' ||
|
|
39
|
+
ot === 'number.add' ||
|
|
40
|
+
ot === 'number.multiply' ||
|
|
41
|
+
ot === 'quaternion.multiply';
|
|
42
42
|
}
|
|
43
43
|
/**
|
|
44
44
|
* Check if an operation is a position-based text insert
|
|
45
45
|
*/
|
|
46
46
|
export function isPositionTextInsertOp(op) {
|
|
47
|
-
return op.
|
|
47
|
+
return op.ot === 'text.insert' &&
|
|
48
48
|
typeof op.position === 'number' &&
|
|
49
49
|
typeof op.value === 'string';
|
|
50
50
|
}
|
|
@@ -52,7 +52,7 @@ export function isPositionTextInsertOp(op) {
|
|
|
52
52
|
* Check if an operation is a text delete with position
|
|
53
53
|
*/
|
|
54
54
|
export function isPositionTextDeleteOp(op) {
|
|
55
|
-
return op.
|
|
55
|
+
return op.ot === 'text.delete' &&
|
|
56
56
|
typeof op.position === 'number' &&
|
|
57
57
|
typeof op.length === 'number';
|
|
58
58
|
}
|
|
@@ -116,7 +116,7 @@ export function coalesceTextOps(ops) {
|
|
|
116
116
|
if (pendingInsert === null) {
|
|
117
117
|
// Start new pending insert
|
|
118
118
|
pendingInsert = {
|
|
119
|
-
|
|
119
|
+
ot: 'text.insert',
|
|
120
120
|
key: op.key,
|
|
121
121
|
path: op.path,
|
|
122
122
|
position: op.position,
|
|
@@ -128,7 +128,7 @@ export function coalesceTextOps(ops) {
|
|
|
128
128
|
pendingInsert.position + pendingInsert.value.length === op.position) {
|
|
129
129
|
// Sequential insert - merge values
|
|
130
130
|
pendingInsert = {
|
|
131
|
-
|
|
131
|
+
ot: 'text.insert',
|
|
132
132
|
key: pendingInsert.key,
|
|
133
133
|
path: pendingInsert.path,
|
|
134
134
|
position: pendingInsert.position,
|
|
@@ -139,7 +139,7 @@ export function coalesceTextOps(ops) {
|
|
|
139
139
|
// Different target or non-sequential - flush pending and start new
|
|
140
140
|
result.push(pendingInsert);
|
|
141
141
|
pendingInsert = {
|
|
142
|
-
|
|
142
|
+
ot: 'text.insert',
|
|
143
143
|
key: op.key,
|
|
144
144
|
path: op.path,
|
|
145
145
|
position: op.position,
|
|
@@ -149,7 +149,8 @@ export function coalesceTextOps(ops) {
|
|
|
149
149
|
}
|
|
150
150
|
else if (isPositionTextDeleteOp(op)) {
|
|
151
151
|
// Check if operation has CRDT metadata - if so, don't coalesce it
|
|
152
|
-
|
|
152
|
+
// Support both old (deletions) and new (value) field names
|
|
153
|
+
const hasCRDTMetadata = op.deletions !== undefined || op.value !== undefined;
|
|
153
154
|
if (hasCRDTMetadata) {
|
|
154
155
|
// Flush any pending operations
|
|
155
156
|
if (pendingInsert !== null) {
|
|
@@ -172,7 +173,7 @@ export function coalesceTextOps(ops) {
|
|
|
172
173
|
// Coalesce deletes (only for position-based operations without CRDT metadata)
|
|
173
174
|
if (pendingDelete === null) {
|
|
174
175
|
pendingDelete = {
|
|
175
|
-
|
|
176
|
+
ot: 'text.delete',
|
|
176
177
|
key: op.key,
|
|
177
178
|
path: op.path,
|
|
178
179
|
position: op.position,
|
|
@@ -187,7 +188,7 @@ export function coalesceTextOps(ops) {
|
|
|
187
188
|
if (isForwardDelete) {
|
|
188
189
|
// Forward delete: accumulate lengths at same position
|
|
189
190
|
pendingDelete = {
|
|
190
|
-
|
|
191
|
+
ot: 'text.delete',
|
|
191
192
|
key: pendingDelete.key,
|
|
192
193
|
path: pendingDelete.path,
|
|
193
194
|
position: pendingDelete.position,
|
|
@@ -197,7 +198,7 @@ export function coalesceTextOps(ops) {
|
|
|
197
198
|
else if (isBackwardDelete) {
|
|
198
199
|
// Backward delete: position moves left, accumulate lengths
|
|
199
200
|
pendingDelete = {
|
|
200
|
-
|
|
201
|
+
ot: 'text.delete',
|
|
201
202
|
key: pendingDelete.key,
|
|
202
203
|
path: pendingDelete.path,
|
|
203
204
|
position: op.position, // use new (leftmost) position
|
|
@@ -208,7 +209,7 @@ export function coalesceTextOps(ops) {
|
|
|
208
209
|
// Non-consecutive - flush and start new
|
|
209
210
|
result.push(pendingDelete);
|
|
210
211
|
pendingDelete = {
|
|
211
|
-
|
|
212
|
+
ot: 'text.delete',
|
|
212
213
|
key: op.key,
|
|
213
214
|
path: op.path,
|
|
214
215
|
position: op.position,
|
|
@@ -220,7 +221,7 @@ export function coalesceTextOps(ops) {
|
|
|
220
221
|
// Different key/path - flush and start new
|
|
221
222
|
result.push(pendingDelete);
|
|
222
223
|
pendingDelete = {
|
|
223
|
-
|
|
224
|
+
ot: 'text.delete',
|
|
224
225
|
key: op.key,
|
|
225
226
|
path: op.path,
|
|
226
227
|
position: op.position,
|
|
@@ -253,8 +254,8 @@ export function coalesceTextOps(ops) {
|
|
|
253
254
|
/**
|
|
254
255
|
* Merge two values for additive operations
|
|
255
256
|
*/
|
|
256
|
-
export function mergeValues(
|
|
257
|
-
switch (
|
|
257
|
+
export function mergeValues(ot, a, b) {
|
|
258
|
+
switch (ot) {
|
|
258
259
|
case 'vector3.add': {
|
|
259
260
|
const va = a;
|
|
260
261
|
const vb = b;
|
|
@@ -291,9 +292,9 @@ export class EditBufferImpl {
|
|
|
291
292
|
add(op) {
|
|
292
293
|
const key = opDedupKey(op);
|
|
293
294
|
const existing = this.opsMap.get(key);
|
|
294
|
-
if (existing && existing.
|
|
295
|
+
if (existing && existing.ot === op.ot && isAdditiveOp(op.ot)) {
|
|
295
296
|
// Merge additive ops
|
|
296
|
-
const mergedValue = mergeValues(op.
|
|
297
|
+
const mergedValue = mergeValues(op.ot, existing.value, op.value);
|
|
297
298
|
this.opsMap.set(key, { ...existing, value: mergedValue });
|
|
298
299
|
}
|
|
299
300
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditBuffer.js","sourceRoot":"","sources":["../../src/client/EditBuffer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,UAAU,CAAC,EAAa;IACtC,IAAI,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"EditBuffer.js","sourceRoot":"","sources":["../../src/client/EditBuffer.ts"],"names":[],"mappings":"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"}
|
package/dist/client/actions.d.ts
CHANGED
|
@@ -17,11 +17,11 @@ export declare function generateUUID(): string;
|
|
|
17
17
|
/**
|
|
18
18
|
* Create initial client state
|
|
19
19
|
*/
|
|
20
|
-
export declare function createInitialState(
|
|
20
|
+
export declare function createInitialState(client: string, initialSnapshot?: Snapshot): ClientState;
|
|
21
21
|
/**
|
|
22
22
|
* Rebuild graph from snapshot + journal + edits
|
|
23
23
|
*/
|
|
24
|
-
export declare function rebuildGraph(snapshot: Snapshot, journal: JournalEntry[], pendingOps: Operation[]): SceneGraph;
|
|
24
|
+
export declare function rebuildGraph(snapshot: Snapshot, journal: JournalEntry[], pendingOps: Operation[], client: string, vectorClock: VectorClock, lt: number): SceneGraph;
|
|
25
25
|
/**
|
|
26
26
|
* Action: Edit (uncommitted)
|
|
27
27
|
*/
|
|
@@ -99,5 +99,5 @@ export declare function getPendingCount(state: ClientState): number;
|
|
|
99
99
|
/**
|
|
100
100
|
* Initialize from server snapshot + journal
|
|
101
101
|
*/
|
|
102
|
-
export declare function initFromServer(
|
|
102
|
+
export declare function initFromServer(client: string, snapshot: Snapshot, journal: CRDTMessage[]): ClientState;
|
|
103
103
|
//# sourceMappingURL=actions.d.ts.map
|
|
@@ -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;AAO/E;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,
|
|
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;AAO/E;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,QAAQ,GAAG,WAAW,CAkB1F;AAyGD;;GAEG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,YAAY,EAAE,EACvB,UAAU,EAAE,SAAS,EAAE,EACvB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,EACxB,EAAE,EAAE,MAAM,GACT,UAAU,CAkCZ;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,SAAS,GAAG,WAAW,CA4DrE;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,WAAW,EAClB,WAAW,CAAC,EAAE,MAAM,EACpB,qBAAqB,CAAC,EAAE,MAAM,GAC7B;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CAAA;CAAE,CAgCjD;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,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,WAAW,EAAE,GACrB,WAAW,CA+Cb"}
|