@editneo/sync 0.1.2 → 0.1.3
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/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +69 -8
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export interface SyncConfig {
|
|
|
6
6
|
url: string;
|
|
7
7
|
room: string;
|
|
8
8
|
}
|
|
9
|
+
export type SyncStatus = 'connecting' | 'connected' | 'disconnected';
|
|
9
10
|
export declare class SyncManager {
|
|
10
11
|
doc: Y.Doc;
|
|
11
12
|
yBlocks: Y.Map<any>;
|
|
@@ -15,6 +16,8 @@ export declare class SyncManager {
|
|
|
15
16
|
private store?;
|
|
16
17
|
private unsubscribeStore?;
|
|
17
18
|
private isSyncing;
|
|
19
|
+
private _status;
|
|
20
|
+
private _statusListeners;
|
|
18
21
|
constructor(docId?: string, syncConfig?: SyncConfig);
|
|
19
22
|
/**
|
|
20
23
|
* Bind this SyncManager to a specific editor store instance.
|
|
@@ -24,6 +27,8 @@ export declare class SyncManager {
|
|
|
24
27
|
bindStore(store: EditorStoreInstance): void;
|
|
25
28
|
/**
|
|
26
29
|
* (#31) Apply minimal inserts/deletes to a Y.Array instead of replacing everything.
|
|
30
|
+
* Uses a simple forward diff — handles most common operations (single insert, delete, move)
|
|
31
|
+
* with targeted Y.Array mutations to preserve CRDT history.
|
|
27
32
|
*/
|
|
28
33
|
private updateYArraySurgically;
|
|
29
34
|
private setupObservers;
|
|
@@ -35,5 +40,9 @@ export declare class SyncManager {
|
|
|
35
40
|
setCursor(blockId: string | null, index?: number): void;
|
|
36
41
|
destroy(): void;
|
|
37
42
|
get awareness(): import("y-protocols/awareness").Awareness | undefined;
|
|
43
|
+
/** Get the current sync connection status. */
|
|
44
|
+
getStatus(): SyncStatus;
|
|
45
|
+
/** Register a listener for connection status changes. Returns unsubscribe function. */
|
|
46
|
+
onStatusChange(listener: (status: SyncStatus) => void): () => void;
|
|
38
47
|
}
|
|
39
48
|
//# 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":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAY,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAE9D,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,WAAW;IACtB,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC;IACX,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACvB,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,OAAO,CAAC,KAAK,CAAC,CAAsB;IACpC,OAAO,CAAC,gBAAgB,CAAC,CAAa;IACtC,OAAO,CAAC,SAAS,CAAS;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAY,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAE9D,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG,WAAW,GAAG,cAAc,CAAC;AAErE,qBAAa,WAAW;IACtB,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC;IACX,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACvB,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,OAAO,CAAC,KAAK,CAAC,CAAsB;IACpC,OAAO,CAAC,gBAAgB,CAAC,CAAa;IACtC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,gBAAgB,CAA2C;gBAEvD,KAAK,GAAE,MAAkB,EAAE,UAAU,CAAC,EAAE,UAAU;IAqC9D;;;;OAIG;IACH,SAAS,CAAC,KAAK,EAAE,mBAAmB;IA4CpC;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;IAkD9B,OAAO,CAAC,cAAc;IA0Bf,OAAO,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;IAM9D,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,GAAE,MAAU;IAQ1D,OAAO;IAUP,IAAI,SAAS,0DAEZ;IAED,8CAA8C;IAC9C,SAAS,IAAI,UAAU;IAIvB,uFAAuF;IACvF,cAAc,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,GAAG,MAAM,IAAI;CAMnE"}
|
package/dist/index.js
CHANGED
|
@@ -4,6 +4,8 @@ import { WebsocketProvider } from 'y-websocket';
|
|
|
4
4
|
export class SyncManager {
|
|
5
5
|
constructor(docId = 'default', syncConfig) {
|
|
6
6
|
this.isSyncing = false; // (#32) Transaction flag to prevent loops
|
|
7
|
+
this._status = 'disconnected';
|
|
8
|
+
this._statusListeners = [];
|
|
7
9
|
this.doc = new Y.Doc();
|
|
8
10
|
this.yBlocks = this.doc.getMap('blocks');
|
|
9
11
|
this.yRoot = this.doc.getArray('rootBlocks');
|
|
@@ -13,13 +15,21 @@ export class SyncManager {
|
|
|
13
15
|
if (syncConfig) {
|
|
14
16
|
this.wsProvider = new WebsocketProvider(syncConfig.url, syncConfig.room, this.doc);
|
|
15
17
|
// (#30) Connection status and error handling
|
|
18
|
+
this._status = 'connecting';
|
|
16
19
|
this.wsProvider.on('status', (event) => {
|
|
20
|
+
const newStatus = event.status === 'connected' ? 'connected' : 'disconnected';
|
|
21
|
+
this._status = newStatus;
|
|
22
|
+
this._statusListeners.forEach(fn => fn(newStatus));
|
|
17
23
|
console.log('[EditNeo Sync] Status:', event.status);
|
|
18
24
|
});
|
|
19
25
|
this.wsProvider.on('connection-error', (event) => {
|
|
26
|
+
this._status = 'disconnected';
|
|
27
|
+
this._statusListeners.forEach(fn => fn('disconnected'));
|
|
20
28
|
console.warn('[EditNeo Sync] Connection error:', event);
|
|
21
29
|
});
|
|
22
|
-
this.wsProvider.on('connection-close', (
|
|
30
|
+
this.wsProvider.on('connection-close', (_event) => {
|
|
31
|
+
this._status = 'connecting'; // will auto-reconnect
|
|
32
|
+
this._statusListeners.forEach(fn => fn('connecting'));
|
|
23
33
|
console.log('[EditNeo Sync] Connection closed, will auto-reconnect');
|
|
24
34
|
});
|
|
25
35
|
}
|
|
@@ -71,18 +81,58 @@ export class SyncManager {
|
|
|
71
81
|
}
|
|
72
82
|
/**
|
|
73
83
|
* (#31) Apply minimal inserts/deletes to a Y.Array instead of replacing everything.
|
|
84
|
+
* Uses a simple forward diff — handles most common operations (single insert, delete, move)
|
|
85
|
+
* with targeted Y.Array mutations to preserve CRDT history.
|
|
74
86
|
*/
|
|
75
|
-
updateYArraySurgically(yArray,
|
|
76
|
-
// Simple diff: find minimal operations
|
|
87
|
+
updateYArraySurgically(yArray, _oldArr, newArr) {
|
|
77
88
|
const currentY = yArray.toJSON();
|
|
78
89
|
// If they already match, skip
|
|
79
90
|
if (JSON.stringify(currentY) === JSON.stringify(newArr))
|
|
80
91
|
return;
|
|
81
|
-
//
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
92
|
+
// Build a simple LCS-based diff
|
|
93
|
+
const m = currentY.length;
|
|
94
|
+
const n = newArr.length;
|
|
95
|
+
// LCS table
|
|
96
|
+
const dp = Array.from({ length: m + 1 }, () => new Array(n + 1).fill(0));
|
|
97
|
+
for (let i = 1; i <= m; i++) {
|
|
98
|
+
for (let j = 1; j <= n; j++) {
|
|
99
|
+
dp[i][j] = currentY[i - 1] === newArr[j - 1]
|
|
100
|
+
? dp[i - 1][j - 1] + 1
|
|
101
|
+
: Math.max(dp[i - 1][j], dp[i][j - 1]);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
// Backtrack to find operations
|
|
105
|
+
const ops = [];
|
|
106
|
+
let i = m, j = n;
|
|
107
|
+
while (i > 0 || j > 0) {
|
|
108
|
+
if (i > 0 && j > 0 && currentY[i - 1] === newArr[j - 1]) {
|
|
109
|
+
ops.unshift({ type: 'keep', value: currentY[i - 1] });
|
|
110
|
+
i--;
|
|
111
|
+
j--;
|
|
112
|
+
}
|
|
113
|
+
else if (j > 0 && (i === 0 || dp[i][j - 1] >= dp[i - 1][j])) {
|
|
114
|
+
ops.unshift({ type: 'insert', value: newArr[j - 1] });
|
|
115
|
+
j--;
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
ops.unshift({ type: 'delete', value: currentY[i - 1] });
|
|
119
|
+
i--;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
// Apply operations to Y.Array with positional tracking
|
|
123
|
+
let pos = 0;
|
|
124
|
+
for (const op of ops) {
|
|
125
|
+
if (op.type === 'keep') {
|
|
126
|
+
pos++;
|
|
127
|
+
}
|
|
128
|
+
else if (op.type === 'delete') {
|
|
129
|
+
yArray.delete(pos, 1);
|
|
130
|
+
}
|
|
131
|
+
else if (op.type === 'insert') {
|
|
132
|
+
yArray.insert(pos, [op.value]);
|
|
133
|
+
pos++;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
86
136
|
}
|
|
87
137
|
setupObservers() {
|
|
88
138
|
// Yjs → Store (remote changes)
|
|
@@ -138,5 +188,16 @@ export class SyncManager {
|
|
|
138
188
|
var _a;
|
|
139
189
|
return (_a = this.wsProvider) === null || _a === void 0 ? void 0 : _a.awareness;
|
|
140
190
|
}
|
|
191
|
+
/** Get the current sync connection status. */
|
|
192
|
+
getStatus() {
|
|
193
|
+
return this._status;
|
|
194
|
+
}
|
|
195
|
+
/** Register a listener for connection status changes. Returns unsubscribe function. */
|
|
196
|
+
onStatusChange(listener) {
|
|
197
|
+
this._statusListeners.push(listener);
|
|
198
|
+
return () => {
|
|
199
|
+
this._statusListeners = this._statusListeners.filter(fn => fn !== listener);
|
|
200
|
+
};
|
|
201
|
+
}
|
|
141
202
|
}
|
|
142
203
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@editneo/sync",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "Yjs-based CRDT sync manager for EditNeo with offline and WebSocket support",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"yjs": "^13.6.10",
|
|
25
25
|
"y-indexeddb": "^9.0.12",
|
|
26
26
|
"y-websocket": "^1.5.0",
|
|
27
|
-
"@editneo/core": "
|
|
27
|
+
"@editneo/core": "^0.1.2"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"typescript": "^5.3.3",
|