pushwork 1.0.11 → 1.0.14
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/core/sync-engine.d.ts.map +1 -1
- package/dist/core/sync-engine.js +73 -135
- package/dist/core/sync-engine.js.map +1 -1
- package/dist/utils/network-sync.d.ts.map +1 -1
- package/dist/utils/network-sync.js +1 -1
- package/dist/utils/network-sync.js.map +1 -1
- package/dist/utils/text-diff.d.ts +37 -0
- package/dist/utils/text-diff.d.ts.map +1 -0
- package/dist/utils/text-diff.js +131 -0
- package/dist/utils/text-diff.js.map +1 -0
- package/package.json +1 -1
- package/src/core/sync-engine.ts +90 -152
- package/src/utils/network-sync.ts +15 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-engine.d.ts","sourceRoot":"","sources":["../../src/core/sync-engine.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,IAAI,
|
|
1
|
+
{"version":3,"file":"sync-engine.d.ts","sourceRoot":"","sources":["../../src/core/sync-engine.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,IAAI,EAKL,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,YAAY,EACZ,UAAU,EAIV,aAAa,EACb,eAAe,EACf,cAAc,EACf,MAAM,UAAU,CAAC;AAuClB;;GAEG;AACH,qBAAa,UAAU;IAUnB,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,QAAQ;IAVlB,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,YAAY,CAAe;IAGnC,OAAO,CAAC,aAAa,CAA8C;IACnE,OAAO,CAAC,MAAM,CAAkB;gBAGtB,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,MAAM,EACxB,MAAM,EAAE,eAAe;IAYzB;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAKrB;;;OAGG;IACH,OAAO,CAAC,eAAe;IAMvB;;OAEG;IACG,mBAAmB,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAS3D;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,UAAU,CAAC;IAiExC;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC;IAiLjC;;OAEG;YACW,gBAAgB;IAoD9B;;OAEG;YACW,iBAAiB;IAuC/B;;OAEG;YACW,wBAAwB;IA6CtC;;OAEG;YACW,wBAAwB;IA8DtC;;OAEG;YACW,iBAAiB;IAoE/B;;OAEG;YACW,gBAAgB;IAuC9B;;OAEG;YACW,gBAAgB;IAwD9B;;OAEG;YACW,gBAAgB;IAoB9B;;OAEG;YACW,kBAAkB;IA8ChC;;;OAGG;YACW,uBAAuB;IAiIrC;;OAEG;YACW,uBAAuB;IA0DrC;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAS/B;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC;QACzB,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;QAC9B,UAAU,EAAE,OAAO,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAC;KACvB,CAAC;IAsBF;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC;QAC9B,OAAO,EAAE,cAAc,EAAE,CAAC;QAC1B,KAAK,EAAE,aAAa,EAAE,CAAC;QACvB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IAkBF;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAiD7B;;OAEG;YACW,kBAAkB;IA8BhC;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IA2B5B;;;;;;;;;;;;;;OAcG;YACW,4BAA4B;IAU1C;;OAEG;YACW,2BAA2B;IA0GzC;;;OAGG;YACW,sBAAsB;CAkGrC"}
|
package/dist/core/sync-engine.js
CHANGED
|
@@ -44,6 +44,18 @@ const snapshot_1 = require("./snapshot");
|
|
|
44
44
|
const change_detection_1 = require("./change-detection");
|
|
45
45
|
const move_detection_1 = require("./move-detection");
|
|
46
46
|
const output_1 = require("../utils/output");
|
|
47
|
+
/**
|
|
48
|
+
* Apply a change to a document handle, using changeAt when heads are available
|
|
49
|
+
* to branch from a known version, otherwise falling back to change.
|
|
50
|
+
*/
|
|
51
|
+
function changeWithOptionalHeads(handle, heads, callback) {
|
|
52
|
+
if (heads && heads.length > 0) {
|
|
53
|
+
handle.changeAt(heads, callback);
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
handle.change(callback);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
47
59
|
/**
|
|
48
60
|
* Sync configuration constants
|
|
49
61
|
*/
|
|
@@ -464,34 +476,18 @@ class SyncEngine {
|
|
|
464
476
|
const handle = await this.repo.find((0, utils_1.getPlainUrl)(fromEntry.url));
|
|
465
477
|
const heads = fromEntry.head;
|
|
466
478
|
// Update both name and content (if content changed during move)
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
if (move.newContent
|
|
472
|
-
|
|
473
|
-
doc.content = new A.ImmutableString(move.newContent);
|
|
474
|
-
}
|
|
475
|
-
else {
|
|
476
|
-
doc.content = move.newContent;
|
|
477
|
-
}
|
|
479
|
+
changeWithOptionalHeads(handle, heads, (doc) => {
|
|
480
|
+
doc.name = toFileName;
|
|
481
|
+
// If new content is provided, update it (handles move + modification case)
|
|
482
|
+
if (move.newContent !== undefined) {
|
|
483
|
+
if (typeof move.newContent === "string") {
|
|
484
|
+
doc.content = new A.ImmutableString(move.newContent);
|
|
478
485
|
}
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
else {
|
|
482
|
-
handle.change((doc) => {
|
|
483
|
-
doc.name = toFileName;
|
|
484
|
-
// If new content is provided, update it (handles move + modification case)
|
|
485
|
-
if (move.newContent !== undefined) {
|
|
486
|
-
if (typeof move.newContent === "string") {
|
|
487
|
-
doc.content = new A.ImmutableString(move.newContent);
|
|
488
|
-
}
|
|
489
|
-
else {
|
|
490
|
-
doc.content = move.newContent;
|
|
491
|
-
}
|
|
486
|
+
else {
|
|
487
|
+
doc.content = move.newContent;
|
|
492
488
|
}
|
|
493
|
-
}
|
|
494
|
-
}
|
|
489
|
+
}
|
|
490
|
+
});
|
|
495
491
|
// Get versioned URL after changes (includes current heads)
|
|
496
492
|
const versionedUrl = this.getVersionedUrl(handle);
|
|
497
493
|
// 4) Add file entry to destination directory with versioned URL
|
|
@@ -606,16 +602,9 @@ class SyncEngine {
|
|
|
606
602
|
if (snapshot && filePath) {
|
|
607
603
|
heads = snapshot.files.get(filePath)?.head;
|
|
608
604
|
}
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
});
|
|
613
|
-
}
|
|
614
|
-
else {
|
|
615
|
-
handle.change((doc) => {
|
|
616
|
-
doc.content = new A.ImmutableString("");
|
|
617
|
-
});
|
|
618
|
-
}
|
|
605
|
+
changeWithOptionalHeads(handle, heads, (doc) => {
|
|
606
|
+
doc.content = new A.ImmutableString("");
|
|
607
|
+
});
|
|
619
608
|
}
|
|
620
609
|
/**
|
|
621
610
|
* Add file entry to appropriate directory document (maintains hierarchy)
|
|
@@ -633,32 +622,17 @@ class SyncEngine {
|
|
|
633
622
|
let didChange = false;
|
|
634
623
|
const snapshotEntry = snapshot.directories.get(directoryPath);
|
|
635
624
|
const heads = snapshotEntry?.head;
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
});
|
|
648
|
-
}
|
|
649
|
-
else {
|
|
650
|
-
dirHandle.change((doc) => {
|
|
651
|
-
const existingIndex = doc.docs.findIndex((entry) => entry.name === fileName && entry.type === "file");
|
|
652
|
-
if (existingIndex === -1) {
|
|
653
|
-
doc.docs.push({
|
|
654
|
-
name: fileName,
|
|
655
|
-
type: "file",
|
|
656
|
-
url: fileUrl,
|
|
657
|
-
});
|
|
658
|
-
didChange = true;
|
|
659
|
-
}
|
|
660
|
-
});
|
|
661
|
-
}
|
|
625
|
+
changeWithOptionalHeads(dirHandle, heads, (doc) => {
|
|
626
|
+
const existingIndex = doc.docs.findIndex((entry) => entry.name === fileName && entry.type === "file");
|
|
627
|
+
if (existingIndex === -1) {
|
|
628
|
+
doc.docs.push({
|
|
629
|
+
name: fileName,
|
|
630
|
+
type: "file",
|
|
631
|
+
url: fileUrl,
|
|
632
|
+
});
|
|
633
|
+
didChange = true;
|
|
634
|
+
}
|
|
635
|
+
});
|
|
662
636
|
// Always track the directory (even if unchanged) for proper leaf-first sync ordering
|
|
663
637
|
this.handlesByPath.set(directoryPath, dirHandle);
|
|
664
638
|
if (didChange && snapshotEntry) {
|
|
@@ -792,26 +766,14 @@ class SyncEngine {
|
|
|
792
766
|
const snapshotEntry = snapshot.directories.get(directoryPath);
|
|
793
767
|
const heads = snapshotEntry?.head;
|
|
794
768
|
let didChange = false;
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
});
|
|
804
|
-
}
|
|
805
|
-
else {
|
|
806
|
-
dirHandle.change((doc) => {
|
|
807
|
-
const indexToRemove = doc.docs.findIndex((entry) => entry.name === fileName && entry.type === "file");
|
|
808
|
-
if (indexToRemove !== -1) {
|
|
809
|
-
doc.docs.splice(indexToRemove, 1);
|
|
810
|
-
didChange = true;
|
|
811
|
-
output_1.out.taskLine(`Removed ${fileName} from ${(0, utils_1.formatRelativePath)(directoryPath) || "root"}`);
|
|
812
|
-
}
|
|
813
|
-
});
|
|
814
|
-
}
|
|
769
|
+
changeWithOptionalHeads(dirHandle, heads, (doc) => {
|
|
770
|
+
const indexToRemove = doc.docs.findIndex((entry) => entry.name === fileName && entry.type === "file");
|
|
771
|
+
if (indexToRemove !== -1) {
|
|
772
|
+
doc.docs.splice(indexToRemove, 1);
|
|
773
|
+
didChange = true;
|
|
774
|
+
output_1.out.taskLine(`Removed ${fileName} from ${(0, utils_1.formatRelativePath)(directoryPath) || "root"}`);
|
|
775
|
+
}
|
|
776
|
+
});
|
|
815
777
|
if (didChange && snapshotEntry) {
|
|
816
778
|
snapshotEntry.head = dirHandle.heads();
|
|
817
779
|
}
|
|
@@ -908,16 +870,9 @@ class SyncEngine {
|
|
|
908
870
|
const snapshotEntry = snapshot.directories.get("");
|
|
909
871
|
const heads = snapshotEntry?.head;
|
|
910
872
|
const timestamp = Date.now();
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
});
|
|
915
|
-
}
|
|
916
|
-
else {
|
|
917
|
-
rootHandle.change((doc) => {
|
|
918
|
-
doc.lastSyncAt = timestamp;
|
|
919
|
-
});
|
|
920
|
-
}
|
|
873
|
+
changeWithOptionalHeads(rootHandle, heads, (doc) => {
|
|
874
|
+
doc.lastSyncAt = timestamp;
|
|
875
|
+
});
|
|
921
876
|
// Track root directory for network sync
|
|
922
877
|
this.handlesByPath.set("", rootHandle);
|
|
923
878
|
if (snapshotEntry) {
|
|
@@ -990,8 +945,17 @@ class SyncEngine {
|
|
|
990
945
|
}
|
|
991
946
|
filesByDir.get(dirPath).push(filePath);
|
|
992
947
|
}
|
|
993
|
-
// Process
|
|
994
|
-
|
|
948
|
+
// Process directories leaf-first (deepest first) so children are
|
|
949
|
+
// up-to-date before their parents are processed
|
|
950
|
+
const sortedDirPaths = Array.from(filesByDir.keys()).sort((a, b) => {
|
|
951
|
+
const depthA = a ? a.split("/").length : 0;
|
|
952
|
+
const depthB = b ? b.split("/").length : 0;
|
|
953
|
+
if (depthA !== depthB)
|
|
954
|
+
return depthB - depthA;
|
|
955
|
+
return a.localeCompare(b);
|
|
956
|
+
});
|
|
957
|
+
for (const dirPath of sortedDirPaths) {
|
|
958
|
+
const filePaths = filesByDir.get(dirPath);
|
|
995
959
|
try {
|
|
996
960
|
// Get the directory URL
|
|
997
961
|
let dirUrl;
|
|
@@ -1033,28 +997,15 @@ class SyncEngine {
|
|
|
1033
997
|
}
|
|
1034
998
|
// Update all file entries in the directory document
|
|
1035
999
|
let didChange = false;
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
didChange = true;
|
|
1043
|
-
}
|
|
1044
|
-
}
|
|
1045
|
-
});
|
|
1046
|
-
}
|
|
1047
|
-
else {
|
|
1048
|
-
dirHandle.change((doc) => {
|
|
1049
|
-
for (const [fileName, newUrl] of fileUrlUpdates) {
|
|
1050
|
-
const existingIndex = doc.docs.findIndex((entry) => entry.name === fileName && entry.type === "file");
|
|
1051
|
-
if (existingIndex !== -1 && doc.docs[existingIndex].url !== newUrl) {
|
|
1052
|
-
doc.docs[existingIndex].url = newUrl;
|
|
1053
|
-
didChange = true;
|
|
1054
|
-
}
|
|
1000
|
+
changeWithOptionalHeads(dirHandle, heads, (doc) => {
|
|
1001
|
+
for (const [fileName, newUrl] of fileUrlUpdates) {
|
|
1002
|
+
const existingIndex = doc.docs.findIndex((entry) => entry.name === fileName && entry.type === "file");
|
|
1003
|
+
if (existingIndex !== -1 && doc.docs[existingIndex].url !== newUrl) {
|
|
1004
|
+
doc.docs[existingIndex].url = newUrl;
|
|
1005
|
+
didChange = true;
|
|
1055
1006
|
}
|
|
1056
|
-
}
|
|
1057
|
-
}
|
|
1007
|
+
}
|
|
1008
|
+
});
|
|
1058
1009
|
// Track directory and update heads
|
|
1059
1010
|
if (didChange) {
|
|
1060
1011
|
this.handlesByPath.set(dirPath, dirHandle);
|
|
@@ -1130,26 +1081,13 @@ class SyncEngine {
|
|
|
1130
1081
|
: snapshot.directories.get(parentPath);
|
|
1131
1082
|
const parentHeads = parentSnapshotEntry?.head;
|
|
1132
1083
|
let didChange = false;
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
}
|
|
1141
|
-
});
|
|
1142
|
-
}
|
|
1143
|
-
else {
|
|
1144
|
-
parentHandle.change((doc) => {
|
|
1145
|
-
const existingIndex = doc.docs.findIndex((entry) => entry.name === dirName && entry.type === "folder");
|
|
1146
|
-
if (existingIndex !== -1) {
|
|
1147
|
-
// Update the URL with current versioned URL
|
|
1148
|
-
doc.docs[existingIndex].url = currentVersionedUrl;
|
|
1149
|
-
didChange = true;
|
|
1150
|
-
}
|
|
1151
|
-
});
|
|
1152
|
-
}
|
|
1084
|
+
changeWithOptionalHeads(parentHandle, parentHeads, (doc) => {
|
|
1085
|
+
const existingIndex = doc.docs.findIndex((entry) => entry.name === dirName && entry.type === "folder");
|
|
1086
|
+
if (existingIndex !== -1) {
|
|
1087
|
+
doc.docs[existingIndex].url = currentVersionedUrl;
|
|
1088
|
+
didChange = true;
|
|
1089
|
+
}
|
|
1090
|
+
});
|
|
1153
1091
|
// Track parent for sync and update its heads in snapshot
|
|
1154
1092
|
if (didChange) {
|
|
1155
1093
|
this.handlesByPath.set(parentPath, parentHandle);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-engine.js","sourceRoot":"","sources":["../../src/core/sync-engine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sync-engine.js","sourceRoot":"","sources":["../../src/core/sync-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"network-sync.d.ts","sourceRoot":"","sources":["../../src/utils/network-sync.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"network-sync.d.ts","sourceRoot":"","sources":["../../src/utils/network-sync.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,SAAS,EACT,IAAI,EACJ,YAAY,EACb,MAAM,2BAA2B,CAAC;AAMnC;;;;;;;;;GASG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,IAAI,EACV,gBAAgB,EAAE,YAAY,GAAG,SAAS,EAC1C,mBAAmB,EAAE,SAAS,GAAG,SAAS,EAC1C,OAAO,GAAE;IACP,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC1B,GACL,OAAO,CAAC,IAAI,CAAC,CAsCf;AA6ED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,eAAe,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,EACrC,mBAAmB,CAAC,EAAE,SAAS,EAC/B,SAAS,GAAE,MAAgB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAmGf"}
|
|
@@ -142,7 +142,7 @@ function headsMapEqual(a, b) {
|
|
|
142
142
|
/**
|
|
143
143
|
* Wait for documents to sync to the remote server
|
|
144
144
|
*/
|
|
145
|
-
async function waitForSync(handlesToWaitOn, syncServerStorageId, timeoutMs =
|
|
145
|
+
async function waitForSync(handlesToWaitOn, syncServerStorageId, timeoutMs = 1000000) {
|
|
146
146
|
const startTime = Date.now();
|
|
147
147
|
if (!syncServerStorageId) {
|
|
148
148
|
// No sync server storage ID - skip network sync
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"network-sync.js","sourceRoot":"","sources":["../../src/utils/network-sync.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"network-sync.js","sourceRoot":"","sources":["../../src/utils/network-sync.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import * as A from "@automerge/automerge";
|
|
2
|
+
/**
|
|
3
|
+
* Read content from an Automerge document, normalizing legacy ImmutableString
|
|
4
|
+
* values to plain strings for backwards compatibility.
|
|
5
|
+
*
|
|
6
|
+
* Old documents may store text as ImmutableString. This helper ensures callers
|
|
7
|
+
* always get back `string | Uint8Array | null`.
|
|
8
|
+
*/
|
|
9
|
+
export declare function readDocContent(content: unknown): string | Uint8Array | null;
|
|
10
|
+
/**
|
|
11
|
+
* Update text content on an Automerge document property inside a change
|
|
12
|
+
* callback.
|
|
13
|
+
*
|
|
14
|
+
* If the existing value is already a collaborative text string, we diff and
|
|
15
|
+
* splice for minimal CRDT operations. If the existing value is a legacy
|
|
16
|
+
* ImmutableString we can't splice into it, so we assign the whole string
|
|
17
|
+
* which converts the field to a collaborative text CRDT going forward.
|
|
18
|
+
*
|
|
19
|
+
* @param doc - The mutable Automerge document (inside a change callback)
|
|
20
|
+
* @param path - Property path to the text field, e.g. ["content"]
|
|
21
|
+
* @param newContent - The desired new text value
|
|
22
|
+
*/
|
|
23
|
+
export declare function updateTextContent(doc: any, path: A.Prop[], newContent: string): void;
|
|
24
|
+
/**
|
|
25
|
+
* Apply a text diff between oldContent and newContent as Automerge splice
|
|
26
|
+
* operations on the given document property path.
|
|
27
|
+
*
|
|
28
|
+
* This preserves the collaborative text CRDT structure by making minimal
|
|
29
|
+
* character-level edits rather than replacing the entire string.
|
|
30
|
+
*
|
|
31
|
+
* @param doc - The Automerge document (inside a change callback)
|
|
32
|
+
* @param path - The property path to the text field, e.g. ["content"]
|
|
33
|
+
* @param oldContent - The previous text content
|
|
34
|
+
* @param newContent - The desired new text content
|
|
35
|
+
*/
|
|
36
|
+
export declare function spliceText(doc: any, path: A.Prop[], oldContent: string, newContent: string): void;
|
|
37
|
+
//# sourceMappingURL=text-diff.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text-diff.d.ts","sourceRoot":"","sources":["../../src/utils/text-diff.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,sBAAsB,CAAA;AAGzC;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,UAAU,GAAG,IAAI,CAO3E;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAChC,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EACd,UAAU,EAAE,MAAM,GAChB,IAAI,CAeN;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CACzB,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EACd,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GAChB,IAAI,CA8BN"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.readDocContent = readDocContent;
|
|
37
|
+
exports.updateTextContent = updateTextContent;
|
|
38
|
+
exports.spliceText = spliceText;
|
|
39
|
+
const A = __importStar(require("@automerge/automerge"));
|
|
40
|
+
const diffLib = __importStar(require("diff"));
|
|
41
|
+
/**
|
|
42
|
+
* Read content from an Automerge document, normalizing legacy ImmutableString
|
|
43
|
+
* values to plain strings for backwards compatibility.
|
|
44
|
+
*
|
|
45
|
+
* Old documents may store text as ImmutableString. This helper ensures callers
|
|
46
|
+
* always get back `string | Uint8Array | null`.
|
|
47
|
+
*/
|
|
48
|
+
function readDocContent(content) {
|
|
49
|
+
if (content == null)
|
|
50
|
+
return null;
|
|
51
|
+
if (typeof content === "string")
|
|
52
|
+
return content;
|
|
53
|
+
if (content instanceof Uint8Array)
|
|
54
|
+
return content;
|
|
55
|
+
// Legacy ImmutableString — convert to plain string
|
|
56
|
+
if (A.isImmutableString(content))
|
|
57
|
+
return content.toString();
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Update text content on an Automerge document property inside a change
|
|
62
|
+
* callback.
|
|
63
|
+
*
|
|
64
|
+
* If the existing value is already a collaborative text string, we diff and
|
|
65
|
+
* splice for minimal CRDT operations. If the existing value is a legacy
|
|
66
|
+
* ImmutableString we can't splice into it, so we assign the whole string
|
|
67
|
+
* which converts the field to a collaborative text CRDT going forward.
|
|
68
|
+
*
|
|
69
|
+
* @param doc - The mutable Automerge document (inside a change callback)
|
|
70
|
+
* @param path - Property path to the text field, e.g. ["content"]
|
|
71
|
+
* @param newContent - The desired new text value
|
|
72
|
+
*/
|
|
73
|
+
function updateTextContent(doc, path, newContent) {
|
|
74
|
+
const target = path.reduce((obj, key) => obj?.[key], doc);
|
|
75
|
+
if (typeof target === "string") {
|
|
76
|
+
// Already a collaborative text string — diff and splice
|
|
77
|
+
spliceText(doc, path, target, newContent);
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
// Legacy ImmutableString, undefined, or other — assign directly.
|
|
81
|
+
// This converts the field to a collaborative text CRDT.
|
|
82
|
+
let obj = doc;
|
|
83
|
+
for (let i = 0; i < path.length - 1; i++) {
|
|
84
|
+
obj = obj[path[i]];
|
|
85
|
+
}
|
|
86
|
+
obj[path[path.length - 1]] = newContent;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Apply a text diff between oldContent and newContent as Automerge splice
|
|
91
|
+
* operations on the given document property path.
|
|
92
|
+
*
|
|
93
|
+
* This preserves the collaborative text CRDT structure by making minimal
|
|
94
|
+
* character-level edits rather than replacing the entire string.
|
|
95
|
+
*
|
|
96
|
+
* @param doc - The Automerge document (inside a change callback)
|
|
97
|
+
* @param path - The property path to the text field, e.g. ["content"]
|
|
98
|
+
* @param oldContent - The previous text content
|
|
99
|
+
* @param newContent - The desired new text content
|
|
100
|
+
*/
|
|
101
|
+
function spliceText(doc, path, oldContent, newContent) {
|
|
102
|
+
if (oldContent === newContent)
|
|
103
|
+
return;
|
|
104
|
+
// Fast path: if old is empty, just insert everything
|
|
105
|
+
if (oldContent === "") {
|
|
106
|
+
A.splice(doc, path, 0, 0, newContent);
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
// Fast path: if new is empty, just delete everything
|
|
110
|
+
if (newContent === "") {
|
|
111
|
+
A.splice(doc, path, 0, oldContent.length);
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
const changes = diffLib.diffChars(oldContent, newContent);
|
|
115
|
+
let pos = 0;
|
|
116
|
+
for (const part of changes) {
|
|
117
|
+
if (part.removed) {
|
|
118
|
+
A.splice(doc, path, pos, part.value.length);
|
|
119
|
+
// Don't advance pos — text shifted left after deletion
|
|
120
|
+
}
|
|
121
|
+
else if (part.added) {
|
|
122
|
+
A.splice(doc, path, pos, 0, part.value);
|
|
123
|
+
pos += part.value.length;
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
// Unchanged text — just advance the cursor
|
|
127
|
+
pos += part.value.length;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=text-diff.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text-diff.js","sourceRoot":"","sources":["../../src/utils/text-diff.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/core/sync-engine.ts
CHANGED
|
@@ -2,6 +2,7 @@ import {
|
|
|
2
2
|
AutomergeUrl,
|
|
3
3
|
Repo,
|
|
4
4
|
DocHandle,
|
|
5
|
+
UrlHeads,
|
|
5
6
|
parseAutomergeUrl,
|
|
6
7
|
stringifyAutomergeUrl,
|
|
7
8
|
} from "@automerge/automerge-repo";
|
|
@@ -33,6 +34,22 @@ import { ChangeDetector } from "./change-detection";
|
|
|
33
34
|
import { MoveDetector } from "./move-detection";
|
|
34
35
|
import { out } from "../utils/output";
|
|
35
36
|
|
|
37
|
+
/**
|
|
38
|
+
* Apply a change to a document handle, using changeAt when heads are available
|
|
39
|
+
* to branch from a known version, otherwise falling back to change.
|
|
40
|
+
*/
|
|
41
|
+
function changeWithOptionalHeads<T>(
|
|
42
|
+
handle: DocHandle<T>,
|
|
43
|
+
heads: UrlHeads | undefined,
|
|
44
|
+
callback: A.ChangeFn<T>
|
|
45
|
+
): void {
|
|
46
|
+
if (heads && heads.length > 0) {
|
|
47
|
+
handle.changeAt(heads, callback);
|
|
48
|
+
} else {
|
|
49
|
+
handle.change(callback);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
36
53
|
/**
|
|
37
54
|
* Sync configuration constants
|
|
38
55
|
*/
|
|
@@ -587,33 +604,18 @@ export class SyncEngine {
|
|
|
587
604
|
const heads = fromEntry.head;
|
|
588
605
|
|
|
589
606
|
// Update both name and content (if content changed during move)
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
if (move.newContent
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
doc.content = move.newContent;
|
|
600
|
-
}
|
|
607
|
+
changeWithOptionalHeads(handle, heads, (doc: FileDocument) => {
|
|
608
|
+
doc.name = toFileName;
|
|
609
|
+
|
|
610
|
+
// If new content is provided, update it (handles move + modification case)
|
|
611
|
+
if (move.newContent !== undefined) {
|
|
612
|
+
if (typeof move.newContent === "string") {
|
|
613
|
+
doc.content = new A.ImmutableString(move.newContent);
|
|
614
|
+
} else {
|
|
615
|
+
doc.content = move.newContent;
|
|
601
616
|
}
|
|
602
|
-
}
|
|
603
|
-
}
|
|
604
|
-
handle.change((doc: FileDocument) => {
|
|
605
|
-
doc.name = toFileName;
|
|
606
|
-
|
|
607
|
-
// If new content is provided, update it (handles move + modification case)
|
|
608
|
-
if (move.newContent !== undefined) {
|
|
609
|
-
if (typeof move.newContent === "string") {
|
|
610
|
-
doc.content = new A.ImmutableString(move.newContent);
|
|
611
|
-
} else {
|
|
612
|
-
doc.content = move.newContent;
|
|
613
|
-
}
|
|
614
|
-
}
|
|
615
|
-
});
|
|
616
|
-
}
|
|
617
|
+
}
|
|
618
|
+
});
|
|
617
619
|
|
|
618
620
|
// Get versioned URL after changes (includes current heads)
|
|
619
621
|
const versionedUrl = this.getVersionedUrl(handle);
|
|
@@ -760,15 +762,9 @@ export class SyncEngine {
|
|
|
760
762
|
if (snapshot && filePath) {
|
|
761
763
|
heads = snapshot.files.get(filePath)?.head;
|
|
762
764
|
}
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
});
|
|
767
|
-
} else {
|
|
768
|
-
handle.change((doc: FileDocument) => {
|
|
769
|
-
doc.content = new A.ImmutableString("");
|
|
770
|
-
});
|
|
771
|
-
}
|
|
765
|
+
changeWithOptionalHeads(handle, heads, (doc: FileDocument) => {
|
|
766
|
+
doc.content = new A.ImmutableString("");
|
|
767
|
+
});
|
|
772
768
|
}
|
|
773
769
|
|
|
774
770
|
/**
|
|
@@ -799,35 +795,19 @@ export class SyncEngine {
|
|
|
799
795
|
let didChange = false;
|
|
800
796
|
const snapshotEntry = snapshot.directories.get(directoryPath);
|
|
801
797
|
const heads = snapshotEntry?.head;
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
});
|
|
816
|
-
} else {
|
|
817
|
-
dirHandle.change((doc: DirectoryDocument) => {
|
|
818
|
-
const existingIndex = doc.docs.findIndex(
|
|
819
|
-
(entry) => entry.name === fileName && entry.type === "file"
|
|
820
|
-
);
|
|
821
|
-
if (existingIndex === -1) {
|
|
822
|
-
doc.docs.push({
|
|
823
|
-
name: fileName,
|
|
824
|
-
type: "file",
|
|
825
|
-
url: fileUrl,
|
|
826
|
-
});
|
|
827
|
-
didChange = true;
|
|
828
|
-
}
|
|
829
|
-
});
|
|
830
|
-
}
|
|
798
|
+
changeWithOptionalHeads(dirHandle, heads, (doc: DirectoryDocument) => {
|
|
799
|
+
const existingIndex = doc.docs.findIndex(
|
|
800
|
+
(entry) => entry.name === fileName && entry.type === "file"
|
|
801
|
+
);
|
|
802
|
+
if (existingIndex === -1) {
|
|
803
|
+
doc.docs.push({
|
|
804
|
+
name: fileName,
|
|
805
|
+
type: "file",
|
|
806
|
+
url: fileUrl,
|
|
807
|
+
});
|
|
808
|
+
didChange = true;
|
|
809
|
+
}
|
|
810
|
+
});
|
|
831
811
|
// Always track the directory (even if unchanged) for proper leaf-first sync ordering
|
|
832
812
|
this.handlesByPath.set(directoryPath, dirHandle);
|
|
833
813
|
|
|
@@ -1007,37 +987,20 @@ export class SyncEngine {
|
|
|
1007
987
|
const heads = snapshotEntry?.head;
|
|
1008
988
|
let didChange = false;
|
|
1009
989
|
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
}`
|
|
1022
|
-
);
|
|
1023
|
-
}
|
|
1024
|
-
});
|
|
1025
|
-
} else {
|
|
1026
|
-
dirHandle.change((doc: DirectoryDocument) => {
|
|
1027
|
-
const indexToRemove = doc.docs.findIndex(
|
|
1028
|
-
(entry) => entry.name === fileName && entry.type === "file"
|
|
990
|
+
changeWithOptionalHeads(dirHandle, heads, (doc: DirectoryDocument) => {
|
|
991
|
+
const indexToRemove = doc.docs.findIndex(
|
|
992
|
+
(entry) => entry.name === fileName && entry.type === "file"
|
|
993
|
+
);
|
|
994
|
+
if (indexToRemove !== -1) {
|
|
995
|
+
doc.docs.splice(indexToRemove, 1);
|
|
996
|
+
didChange = true;
|
|
997
|
+
out.taskLine(
|
|
998
|
+
`Removed ${fileName} from ${
|
|
999
|
+
formatRelativePath(directoryPath) || "root"
|
|
1000
|
+
}`
|
|
1029
1001
|
);
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
didChange = true;
|
|
1033
|
-
out.taskLine(
|
|
1034
|
-
`Removed ${fileName} from ${
|
|
1035
|
-
formatRelativePath(directoryPath) || "root"
|
|
1036
|
-
}`
|
|
1037
|
-
);
|
|
1038
|
-
}
|
|
1039
|
-
});
|
|
1040
|
-
}
|
|
1002
|
+
}
|
|
1003
|
+
});
|
|
1041
1004
|
|
|
1042
1005
|
if (didChange && snapshotEntry) {
|
|
1043
1006
|
snapshotEntry.head = dirHandle.heads();
|
|
@@ -1184,15 +1147,9 @@ export class SyncEngine {
|
|
|
1184
1147
|
|
|
1185
1148
|
const timestamp = Date.now();
|
|
1186
1149
|
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
});
|
|
1191
|
-
} else {
|
|
1192
|
-
rootHandle.change((doc: DirectoryDocument) => {
|
|
1193
|
-
doc.lastSyncAt = timestamp;
|
|
1194
|
-
});
|
|
1195
|
-
}
|
|
1150
|
+
changeWithOptionalHeads(rootHandle, heads, (doc: DirectoryDocument) => {
|
|
1151
|
+
doc.lastSyncAt = timestamp;
|
|
1152
|
+
});
|
|
1196
1153
|
|
|
1197
1154
|
// Track root directory for network sync
|
|
1198
1155
|
this.handlesByPath.set("", rootHandle);
|
|
@@ -1281,8 +1238,17 @@ export class SyncEngine {
|
|
|
1281
1238
|
filesByDir.get(dirPath)!.push(filePath);
|
|
1282
1239
|
}
|
|
1283
1240
|
|
|
1284
|
-
// Process
|
|
1285
|
-
|
|
1241
|
+
// Process directories leaf-first (deepest first) so children are
|
|
1242
|
+
// up-to-date before their parents are processed
|
|
1243
|
+
const sortedDirPaths = Array.from(filesByDir.keys()).sort((a, b) => {
|
|
1244
|
+
const depthA = a ? a.split("/").length : 0;
|
|
1245
|
+
const depthB = b ? b.split("/").length : 0;
|
|
1246
|
+
if (depthA !== depthB) return depthB - depthA;
|
|
1247
|
+
return a.localeCompare(b);
|
|
1248
|
+
});
|
|
1249
|
+
|
|
1250
|
+
for (const dirPath of sortedDirPaths) {
|
|
1251
|
+
const filePaths = filesByDir.get(dirPath)!;
|
|
1286
1252
|
try {
|
|
1287
1253
|
// Get the directory URL
|
|
1288
1254
|
let dirUrl: AutomergeUrl;
|
|
@@ -1333,31 +1299,17 @@ export class SyncEngine {
|
|
|
1333
1299
|
|
|
1334
1300
|
// Update all file entries in the directory document
|
|
1335
1301
|
let didChange = false;
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
|
|
1344
|
-
didChange = true;
|
|
1345
|
-
}
|
|
1346
|
-
}
|
|
1347
|
-
});
|
|
1348
|
-
} else {
|
|
1349
|
-
dirHandle.change((doc: DirectoryDocument) => {
|
|
1350
|
-
for (const [fileName, newUrl] of fileUrlUpdates) {
|
|
1351
|
-
const existingIndex = doc.docs.findIndex(
|
|
1352
|
-
(entry) => entry.name === fileName && entry.type === "file"
|
|
1353
|
-
);
|
|
1354
|
-
if (existingIndex !== -1 && doc.docs[existingIndex].url !== newUrl) {
|
|
1355
|
-
doc.docs[existingIndex].url = newUrl;
|
|
1356
|
-
didChange = true;
|
|
1357
|
-
}
|
|
1302
|
+
changeWithOptionalHeads(dirHandle, heads, (doc: DirectoryDocument) => {
|
|
1303
|
+
for (const [fileName, newUrl] of fileUrlUpdates) {
|
|
1304
|
+
const existingIndex = doc.docs.findIndex(
|
|
1305
|
+
(entry) => entry.name === fileName && entry.type === "file"
|
|
1306
|
+
);
|
|
1307
|
+
if (existingIndex !== -1 && doc.docs[existingIndex].url !== newUrl) {
|
|
1308
|
+
doc.docs[existingIndex].url = newUrl;
|
|
1309
|
+
didChange = true;
|
|
1358
1310
|
}
|
|
1359
|
-
}
|
|
1360
|
-
}
|
|
1311
|
+
}
|
|
1312
|
+
});
|
|
1361
1313
|
|
|
1362
1314
|
// Track directory and update heads
|
|
1363
1315
|
if (didChange) {
|
|
@@ -1452,29 +1404,15 @@ export class SyncEngine {
|
|
|
1452
1404
|
const parentHeads = parentSnapshotEntry?.head;
|
|
1453
1405
|
|
|
1454
1406
|
let didChange = false;
|
|
1455
|
-
|
|
1456
|
-
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
|
|
1461
|
-
|
|
1462
|
-
|
|
1463
|
-
|
|
1464
|
-
}
|
|
1465
|
-
});
|
|
1466
|
-
} else {
|
|
1467
|
-
parentHandle.change((doc: DirectoryDocument) => {
|
|
1468
|
-
const existingIndex = doc.docs.findIndex(
|
|
1469
|
-
(entry) => entry.name === dirName && entry.type === "folder"
|
|
1470
|
-
);
|
|
1471
|
-
if (existingIndex !== -1) {
|
|
1472
|
-
// Update the URL with current versioned URL
|
|
1473
|
-
doc.docs[existingIndex].url = currentVersionedUrl;
|
|
1474
|
-
didChange = true;
|
|
1475
|
-
}
|
|
1476
|
-
});
|
|
1477
|
-
}
|
|
1407
|
+
changeWithOptionalHeads(parentHandle, parentHeads, (doc: DirectoryDocument) => {
|
|
1408
|
+
const existingIndex = doc.docs.findIndex(
|
|
1409
|
+
(entry) => entry.name === dirName && entry.type === "folder"
|
|
1410
|
+
);
|
|
1411
|
+
if (existingIndex !== -1) {
|
|
1412
|
+
doc.docs[existingIndex].url = currentVersionedUrl;
|
|
1413
|
+
didChange = true;
|
|
1414
|
+
}
|
|
1415
|
+
});
|
|
1478
1416
|
|
|
1479
1417
|
// Track parent for sync and update its heads in snapshot
|
|
1480
1418
|
if (didChange) {
|
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
DocHandle,
|
|
3
|
+
StorageId,
|
|
4
|
+
Repo,
|
|
5
|
+
AutomergeUrl,
|
|
6
|
+
} from "@automerge/automerge-repo";
|
|
2
7
|
import * as A from "@automerge/automerge";
|
|
3
8
|
import { out } from "./output";
|
|
4
9
|
import { DirectoryDocument } from "../types";
|
|
@@ -8,7 +13,7 @@ import { getPlainUrl } from "./directory";
|
|
|
8
13
|
* Wait for bidirectional sync to stabilize.
|
|
9
14
|
* This function waits until document heads stop changing, indicating that
|
|
10
15
|
* both outgoing and incoming sync has completed.
|
|
11
|
-
*
|
|
16
|
+
*
|
|
12
17
|
* @param repo - The Automerge repository
|
|
13
18
|
* @param rootDirectoryUrl - The root directory URL to start traversal from
|
|
14
19
|
* @param syncServerStorageId - The sync server storage ID
|
|
@@ -22,7 +27,7 @@ export async function waitForBidirectionalSync(
|
|
|
22
27
|
timeoutMs?: number;
|
|
23
28
|
pollIntervalMs?: number;
|
|
24
29
|
stableChecksRequired?: number;
|
|
25
|
-
} = {}
|
|
30
|
+
} = {},
|
|
26
31
|
): Promise<void> {
|
|
27
32
|
const {
|
|
28
33
|
timeoutMs = 10000,
|
|
@@ -70,7 +75,7 @@ export async function waitForBidirectionalSync(
|
|
|
70
75
|
*/
|
|
71
76
|
async function getAllDocumentHeads(
|
|
72
77
|
repo: Repo,
|
|
73
|
-
rootDirectoryUrl: AutomergeUrl
|
|
78
|
+
rootDirectoryUrl: AutomergeUrl,
|
|
74
79
|
): Promise<Map<string, string>> {
|
|
75
80
|
const heads = new Map<string, string>();
|
|
76
81
|
// Pass URL as-is; collectHeadsRecursive will strip heads
|
|
@@ -85,13 +90,13 @@ async function getAllDocumentHeads(
|
|
|
85
90
|
async function collectHeadsRecursive(
|
|
86
91
|
repo: Repo,
|
|
87
92
|
directoryUrl: AutomergeUrl,
|
|
88
|
-
heads: Map<string, string
|
|
93
|
+
heads: Map<string, string>,
|
|
89
94
|
): Promise<void> {
|
|
90
95
|
try {
|
|
91
96
|
const plainUrl = getPlainUrl(directoryUrl);
|
|
92
97
|
const handle = await repo.find<DirectoryDocument>(plainUrl);
|
|
93
98
|
const doc = await handle.doc();
|
|
94
|
-
|
|
99
|
+
|
|
95
100
|
// Record this directory's heads (use plain URL as key for consistency)
|
|
96
101
|
heads.set(plainUrl, JSON.stringify(handle.heads()));
|
|
97
102
|
|
|
@@ -125,7 +130,7 @@ async function collectHeadsRecursive(
|
|
|
125
130
|
*/
|
|
126
131
|
function headsMapEqual(
|
|
127
132
|
a: Map<string, string>,
|
|
128
|
-
b: Map<string, string
|
|
133
|
+
b: Map<string, string>,
|
|
129
134
|
): boolean {
|
|
130
135
|
if (a.size !== b.size) {
|
|
131
136
|
return false;
|
|
@@ -144,7 +149,7 @@ function headsMapEqual(
|
|
|
144
149
|
export async function waitForSync(
|
|
145
150
|
handlesToWaitOn: DocHandle<unknown>[],
|
|
146
151
|
syncServerStorageId?: StorageId,
|
|
147
|
-
timeoutMs: number =
|
|
152
|
+
timeoutMs: number = 1000000,
|
|
148
153
|
): Promise<void> {
|
|
149
154
|
const startTime = Date.now();
|
|
150
155
|
|
|
@@ -192,8 +197,8 @@ export async function waitForSync(
|
|
|
192
197
|
cleanup();
|
|
193
198
|
reject(
|
|
194
199
|
new Error(
|
|
195
|
-
`Sync timeout after ${timeoutMs}ms for document ${handle.url}
|
|
196
|
-
)
|
|
200
|
+
`Sync timeout after ${timeoutMs}ms for document ${handle.url}`,
|
|
201
|
+
),
|
|
197
202
|
);
|
|
198
203
|
}, timeoutMs);
|
|
199
204
|
|