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.
@@ -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,EAIL,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,YAAY,EACZ,UAAU,EAIV,aAAa,EACb,eAAe,EACf,cAAc,EACf,MAAM,UAAU,CAAC;AAuBlB;;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;IAmF/B;;OAEG;YACW,gBAAgB;IAuC9B;;OAEG;YACW,gBAAgB;IAwD9B;;OAEG;YACW,gBAAgB;IA0B9B;;OAEG;YACW,kBAAkB;IA8DhC;;;OAGG;YACW,uBAAuB;IAiIrC;;OAEG;YACW,uBAAuB;IA2ErC;;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;IAoChC;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IA2B5B;;;;;;;;;;;;;;OAcG;YACW,4BAA4B;IAU1C;;OAEG;YACW,2BAA2B;IA+GzC;;;OAGG;YACW,sBAAsB;CAgHrC"}
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"}
@@ -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
- if (heads && heads.length > 0) {
468
- handle.changeAt(heads, (doc) => {
469
- doc.name = toFileName;
470
- // If new content is provided, update it (handles move + modification case)
471
- if (move.newContent !== undefined) {
472
- if (typeof move.newContent === "string") {
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
- if (heads) {
610
- handle.changeAt(heads, (doc) => {
611
- doc.content = new A.ImmutableString("");
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
- if (heads) {
637
- dirHandle.changeAt(heads, (doc) => {
638
- const existingIndex = doc.docs.findIndex((entry) => entry.name === fileName && entry.type === "file");
639
- if (existingIndex === -1) {
640
- doc.docs.push({
641
- name: fileName,
642
- type: "file",
643
- url: fileUrl,
644
- });
645
- didChange = true;
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
- if (heads) {
796
- dirHandle.changeAt(heads, (doc) => {
797
- const indexToRemove = doc.docs.findIndex((entry) => entry.name === fileName && entry.type === "file");
798
- if (indexToRemove !== -1) {
799
- doc.docs.splice(indexToRemove, 1);
800
- didChange = true;
801
- output_1.out.taskLine(`Removed ${fileName} from ${(0, utils_1.formatRelativePath)(directoryPath) || "root"}`);
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
- if (heads) {
912
- rootHandle.changeAt(heads, (doc) => {
913
- doc.lastSyncAt = timestamp;
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 each directory that has files
994
- for (const [dirPath, filePaths] of filesByDir.entries()) {
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
- if (heads) {
1037
- dirHandle.changeAt(heads, (doc) => {
1038
- for (const [fileName, newUrl] of fileUrlUpdates) {
1039
- const existingIndex = doc.docs.findIndex((entry) => entry.name === fileName && entry.type === "file");
1040
- if (existingIndex !== -1 && doc.docs[existingIndex].url !== newUrl) {
1041
- doc.docs[existingIndex].url = newUrl;
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
- if (parentHeads) {
1134
- parentHandle.changeAt(parentHeads, (doc) => {
1135
- const existingIndex = doc.docs.findIndex((entry) => entry.name === dirName && entry.type === "folder");
1136
- if (existingIndex !== -1) {
1137
- // Update the URL with current versioned URL
1138
- doc.docs[existingIndex].url = currentVersionedUrl;
1139
- didChange = true;
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,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAMrF;;;;;;;;;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,MAAc,GACxB,OAAO,CAAC,IAAI,CAAC,CAmGf"}
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 = 60000) {
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":"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"}
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pushwork",
3
- "version": "1.0.11",
3
+ "version": "1.0.14",
4
4
  "description": "Bidirectional directory synchronization using Automerge CRDTs",
5
5
  "main": "dist/index.js",
6
6
  "exports": {
@@ -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
- if (heads && heads.length > 0) {
591
- handle.changeAt(heads, (doc: FileDocument) => {
592
- doc.name = toFileName;
593
-
594
- // If new content is provided, update it (handles move + modification case)
595
- if (move.newContent !== undefined) {
596
- if (typeof move.newContent === "string") {
597
- doc.content = new A.ImmutableString(move.newContent);
598
- } else {
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
- } else {
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
- if (heads) {
764
- handle.changeAt(heads, (doc: FileDocument) => {
765
- doc.content = new A.ImmutableString("");
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
- if (heads) {
803
- dirHandle.changeAt(heads, (doc: DirectoryDocument) => {
804
- const existingIndex = doc.docs.findIndex(
805
- (entry) => entry.name === fileName && entry.type === "file"
806
- );
807
- if (existingIndex === -1) {
808
- doc.docs.push({
809
- name: fileName,
810
- type: "file",
811
- url: fileUrl,
812
- });
813
- didChange = true;
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
- if (heads) {
1011
- dirHandle.changeAt(heads, (doc: DirectoryDocument) => {
1012
- const indexToRemove = doc.docs.findIndex(
1013
- (entry) => entry.name === fileName && entry.type === "file"
1014
- );
1015
- if (indexToRemove !== -1) {
1016
- doc.docs.splice(indexToRemove, 1);
1017
- didChange = true;
1018
- out.taskLine(
1019
- `Removed ${fileName} from ${
1020
- formatRelativePath(directoryPath) || "root"
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
- if (indexToRemove !== -1) {
1031
- doc.docs.splice(indexToRemove, 1);
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
- if (heads) {
1188
- rootHandle.changeAt(heads, (doc: DirectoryDocument) => {
1189
- doc.lastSyncAt = timestamp;
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 each directory that has files
1285
- for (const [dirPath, filePaths] of filesByDir.entries()) {
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
- if (heads) {
1337
- dirHandle.changeAt(heads, (doc: DirectoryDocument) => {
1338
- for (const [fileName, newUrl] of fileUrlUpdates) {
1339
- const existingIndex = doc.docs.findIndex(
1340
- (entry) => entry.name === fileName && entry.type === "file"
1341
- );
1342
- if (existingIndex !== -1 && doc.docs[existingIndex].url !== newUrl) {
1343
- doc.docs[existingIndex].url = newUrl;
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
- if (parentHeads) {
1456
- parentHandle.changeAt(parentHeads, (doc: DirectoryDocument) => {
1457
- const existingIndex = doc.docs.findIndex(
1458
- (entry) => entry.name === dirName && entry.type === "folder"
1459
- );
1460
- if (existingIndex !== -1) {
1461
- // Update the URL with current versioned URL
1462
- doc.docs[existingIndex].url = currentVersionedUrl;
1463
- didChange = true;
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 { DocHandle, StorageId, Repo, AutomergeUrl } from "@automerge/automerge-repo";
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 = 60000
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