cojson 0.19.17 → 0.19.19

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.
Files changed (76) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +17 -0
  3. package/dist/PeerState.d.ts.map +1 -1
  4. package/dist/SyncStateManager.d.ts +5 -2
  5. package/dist/SyncStateManager.d.ts.map +1 -1
  6. package/dist/SyncStateManager.js +49 -12
  7. package/dist/SyncStateManager.js.map +1 -1
  8. package/dist/UnsyncedCoValuesTracker.d.ts +81 -0
  9. package/dist/UnsyncedCoValuesTracker.d.ts.map +1 -0
  10. package/dist/UnsyncedCoValuesTracker.js +209 -0
  11. package/dist/UnsyncedCoValuesTracker.js.map +1 -0
  12. package/dist/exports.d.ts +4 -2
  13. package/dist/exports.d.ts.map +1 -1
  14. package/dist/exports.js +2 -0
  15. package/dist/exports.js.map +1 -1
  16. package/dist/localNode.d.ts +9 -5
  17. package/dist/localNode.d.ts.map +1 -1
  18. package/dist/localNode.js +12 -8
  19. package/dist/localNode.js.map +1 -1
  20. package/dist/storage/knownState.d.ts +1 -1
  21. package/dist/storage/knownState.js +4 -4
  22. package/dist/storage/sqlite/client.d.ts +8 -0
  23. package/dist/storage/sqlite/client.d.ts.map +1 -1
  24. package/dist/storage/sqlite/client.js +17 -0
  25. package/dist/storage/sqlite/client.js.map +1 -1
  26. package/dist/storage/sqlite/sqliteMigrations.d.ts.map +1 -1
  27. package/dist/storage/sqlite/sqliteMigrations.js +9 -0
  28. package/dist/storage/sqlite/sqliteMigrations.js.map +1 -1
  29. package/dist/storage/sqliteAsync/client.d.ts +8 -0
  30. package/dist/storage/sqliteAsync/client.d.ts.map +1 -1
  31. package/dist/storage/sqliteAsync/client.js +19 -0
  32. package/dist/storage/sqliteAsync/client.js.map +1 -1
  33. package/dist/storage/storageAsync.d.ts +9 -2
  34. package/dist/storage/storageAsync.d.ts.map +1 -1
  35. package/dist/storage/storageAsync.js +9 -0
  36. package/dist/storage/storageAsync.js.map +1 -1
  37. package/dist/storage/storageSync.d.ts +9 -2
  38. package/dist/storage/storageSync.d.ts.map +1 -1
  39. package/dist/storage/storageSync.js +11 -0
  40. package/dist/storage/storageSync.js.map +1 -1
  41. package/dist/storage/types.d.ts +33 -0
  42. package/dist/storage/types.d.ts.map +1 -1
  43. package/dist/sync.d.ts +21 -1
  44. package/dist/sync.d.ts.map +1 -1
  45. package/dist/sync.js +107 -2
  46. package/dist/sync.js.map +1 -1
  47. package/dist/tests/SyncStateManager.test.js +3 -3
  48. package/dist/tests/SyncStateManager.test.js.map +1 -1
  49. package/dist/tests/coValueCore.loadFromStorage.test.js +3 -0
  50. package/dist/tests/coValueCore.loadFromStorage.test.js.map +1 -1
  51. package/dist/tests/sync.tracking.test.d.ts +2 -0
  52. package/dist/tests/sync.tracking.test.d.ts.map +1 -0
  53. package/dist/tests/sync.tracking.test.js +261 -0
  54. package/dist/tests/sync.tracking.test.js.map +1 -0
  55. package/dist/tests/testUtils.d.ts +2 -1
  56. package/dist/tests/testUtils.d.ts.map +1 -1
  57. package/dist/tests/testUtils.js +2 -2
  58. package/dist/tests/testUtils.js.map +1 -1
  59. package/package.json +4 -4
  60. package/src/PeerState.ts +2 -2
  61. package/src/SyncStateManager.ts +63 -12
  62. package/src/UnsyncedCoValuesTracker.ts +272 -0
  63. package/src/exports.ts +4 -1
  64. package/src/localNode.ts +15 -3
  65. package/src/storage/knownState.ts +4 -4
  66. package/src/storage/sqlite/client.ts +31 -0
  67. package/src/storage/sqlite/sqliteMigrations.ts +9 -0
  68. package/src/storage/sqliteAsync/client.ts +35 -0
  69. package/src/storage/storageAsync.ts +18 -1
  70. package/src/storage/storageSync.ts +20 -1
  71. package/src/storage/types.ts +39 -0
  72. package/src/sync.ts +151 -3
  73. package/src/tests/SyncStateManager.test.ts +3 -0
  74. package/src/tests/coValueCore.loadFromStorage.test.ts +11 -0
  75. package/src/tests/sync.tracking.test.ts +396 -0
  76. package/src/tests/testUtils.ts +9 -3
@@ -1,4 +1,4 @@
1
1
 
2
- > cojson@0.19.17 build /home/runner/_work/jazz/jazz/packages/cojson
2
+ > cojson@0.19.19 build /home/runner/_work/jazz/jazz/packages/cojson
3
3
  > rm -rf ./dist && tsc --sourceMap --outDir dist
4
4
 
package/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # cojson
2
2
 
3
+ ## 0.19.19
4
+
5
+ ### Patch Changes
6
+
7
+ - 83f84ca: Resume interrupted CoValue sync on app restart (without requiring CoValues to be manually reloaded)
8
+ - cojson-core-wasm@0.19.19
9
+ - cojson-core-rn@0.19.19
10
+ - cojson-core-napi@0.19.19
11
+
12
+ ## 0.19.18
13
+
14
+ ### Patch Changes
15
+
16
+ - cojson-core-wasm@0.19.18
17
+ - cojson-core-rn@0.19.18
18
+ - cojson-core-napi@0.19.18
19
+
3
20
  ## 0.19.17
4
21
 
5
22
  ### Patch Changes
@@ -1 +1 @@
1
- {"version":3,"file":"PeerState.d.ts","sourceRoot":"","sources":["../src/PeerState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,OAAO,EAAa,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE9C,qBAAa,SAAS;IASlB,OAAO,CAAC,IAAI;IARd;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA+B;gBAGlD,IAAI,EAAE,IAAI,EAClB,WAAW,EAAE,GAAG,CAAC,OAAO,EAAE,cAAc,CAAC,GAAG,SAAS;IAKvD,aAAa,CAAC,EAAE,EAAE,OAAO;IAIzB,uBAAuB,CAAC,EAAE,EAAE,OAAO;IAInC,yBAAyB,CAAC,EAAE,EAAE,OAAO;IAIrC;;;;;OAKG;IACH,gBAAgB,CAAC,IAAI,EAAE,IAAI;IAe3B,QAAQ,CAAC,cAAc,EAAE,GAAG,CAAC,OAAO,CAAC,CAAa;IAClD,QAAQ,CAAC,eAAe,EAAE,GAAG,CAAC,OAAO,CAAC,CAAa;IAEnD,oBAAoB,CAAC,EAAE,EAAE,OAAO;IAKhC,mBAAmB,CAAC,EAAE,EAAE,OAAO;IAI/B,OAAO,CAAC,qBAAqB;IAW7B,YAAY,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO;IAMzC,WAAW,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,iBAAiB;IAMjD,qBAAqB,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,iBAAiB;IAM3D,aAAa,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO;IAM/D;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,EAAE,OAAO;IAS7B,OAAO,CAAC,SAAS,CAA2D;IAE5E,OAAO,CAAC,aAAa;IAMrB,6BAA6B,CAC3B,QAAQ,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,KAAK,IAAI;IASxD,IAAI,EAAE,WAEL;IAED,IAAI,IAAI,wBAEP;IAED,IAAI,QAAQ,uBAEX;IAEM,MAAM,UAAS;IAEtB,IAAI,QAAQ,4CAEX;IAED,IAAI,UAAU,wBAEb;IAED,mBAAmB,CAAC,GAAG,EAAE,WAAW;IAIpC,cAAc,YAAiB,IAAI,EAAI;IAEvC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,IAAI;IAarC,SAAS;IAQT,gBAAgB;CAgBjB"}
1
+ {"version":3,"file":"PeerState.d.ts","sourceRoot":"","sources":["../src/PeerState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE9C,qBAAa,SAAS;IASlB,OAAO,CAAC,IAAI;IARd;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA+B;gBAGlD,IAAI,EAAE,IAAI,EAClB,WAAW,EAAE,GAAG,CAAC,OAAO,EAAE,cAAc,CAAC,GAAG,SAAS;IAKvD,aAAa,CAAC,EAAE,EAAE,OAAO;IAIzB,uBAAuB,CAAC,EAAE,EAAE,OAAO;IAInC,yBAAyB,CAAC,EAAE,EAAE,OAAO;IAIrC;;;;;OAKG;IACH,gBAAgB,CAAC,IAAI,EAAE,IAAI;IAe3B,QAAQ,CAAC,cAAc,EAAE,GAAG,CAAC,OAAO,CAAC,CAAa;IAClD,QAAQ,CAAC,eAAe,EAAE,GAAG,CAAC,OAAO,CAAC,CAAa;IAEnD,oBAAoB,CAAC,EAAE,EAAE,OAAO;IAKhC,mBAAmB,CAAC,EAAE,EAAE,OAAO;IAI/B,OAAO,CAAC,qBAAqB;IAW7B,YAAY,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO;IAMzC,WAAW,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,iBAAiB;IAMjD,qBAAqB,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,iBAAiB;IAM3D,aAAa,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO;IAM/D;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,EAAE,OAAO;IAS7B,OAAO,CAAC,SAAS,CAA2D;IAE5E,OAAO,CAAC,aAAa;IAMrB,6BAA6B,CAC3B,QAAQ,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,KAAK,IAAI;IASxD,IAAI,EAAE,WAEL;IAED,IAAI,IAAI,wBAEP;IAED,IAAI,QAAQ,uBAEX;IAEM,MAAM,UAAS;IAEtB,IAAI,QAAQ,4CAEX;IAED,IAAI,UAAU,wBAEb;IAED,mBAAmB,CAAC,GAAG,EAAE,WAAW;IAIpC,cAAc,YAAiB,IAAI,EAAI;IAEvC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,IAAI;IAarC,SAAS;IAQT,gBAAgB,IAAI,IAAI;CAgBzB"}
@@ -6,14 +6,17 @@ export type SyncState = {
6
6
  uploaded: boolean;
7
7
  };
8
8
  export type GlobalSyncStateListenerCallback = (peerId: PeerID, knownState: CoValueKnownState, sync: SyncState) => void;
9
+ export type CoValueSyncStateListenerCallback = GlobalSyncStateListenerCallback;
9
10
  export type PeerSyncStateListenerCallback = (knownState: CoValueKnownState, sync: SyncState) => void;
10
11
  export declare class SyncStateManager {
11
12
  private syncManager;
12
13
  constructor(syncManager: SyncManager);
13
14
  private listeners;
14
- private listenersByPeers;
15
+ private listenersByCoValues;
16
+ private listenersByPeersAndCoValues;
15
17
  subscribeToUpdates(listener: GlobalSyncStateListenerCallback): () => void;
16
- subscribeToPeerUpdates(peerId: PeerID, listener: PeerSyncStateListenerCallback): () => void;
18
+ subscribeToCoValueUpdates(coValueId: RawCoID, listener: CoValueSyncStateListenerCallback): () => void;
19
+ subscribeToPeerUpdates(peerId: PeerID, coValueId: RawCoID, listener: PeerSyncStateListenerCallback): () => void;
17
20
  triggerUpdate(peerId: PeerID, id: RawCoID, knownState: CoValueKnownState): void;
18
21
  isSynced(peer: PeerState, id: RawCoID): boolean;
19
22
  private getIsCoValueFullyUploadedIntoPeer;
@@ -1 +1 @@
1
- {"version":3,"file":"SyncStateManager.d.ts","sourceRoot":"","sources":["../src/SyncStateManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EACL,iBAAiB,EAElB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAEhD,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,+BAA+B,GAAG,CAC5C,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,iBAAiB,EAC7B,IAAI,EAAE,SAAS,KACZ,IAAI,CAAC;AAEV,MAAM,MAAM,6BAA6B,GAAG,CAC1C,UAAU,EAAE,iBAAiB,EAC7B,IAAI,EAAE,SAAS,KACZ,IAAI,CAAC;AAEV,qBAAa,gBAAgB;IACf,OAAO,CAAC,WAAW;gBAAX,WAAW,EAAE,WAAW;IAE5C,OAAO,CAAC,SAAS,CAA8C;IAC/D,OAAO,CAAC,gBAAgB,CAGpB;IAEJ,kBAAkB,CAAC,QAAQ,EAAE,+BAA+B;IAQ5D,sBAAsB,CACpB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,6BAA6B;IAezC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,iBAAiB;IAuBxE,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO;IAQrC,OAAO,CAAC,iCAAiC;CAmB1C"}
1
+ {"version":3,"file":"SyncStateManager.d.ts","sourceRoot":"","sources":["../src/SyncStateManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EACL,iBAAiB,EAElB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAEhD,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,+BAA+B,GAAG,CAC5C,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,iBAAiB,EAC7B,IAAI,EAAE,SAAS,KACZ,IAAI,CAAC;AAEV,MAAM,MAAM,gCAAgC,GAAG,+BAA+B,CAAC;AAE/E,MAAM,MAAM,6BAA6B,GAAG,CAC1C,UAAU,EAAE,iBAAiB,EAC7B,IAAI,EAAE,SAAS,KACZ,IAAI,CAAC;AAEV,qBAAa,gBAAgB;IACf,OAAO,CAAC,WAAW;gBAAX,WAAW,EAAE,WAAW;IAE5C,OAAO,CAAC,SAAS,CAA8C;IAC/D,OAAO,CAAC,mBAAmB,CAGvB;IACJ,OAAO,CAAC,2BAA2B,CAG/B;IAEJ,kBAAkB,CAAC,QAAQ,EAAE,+BAA+B;IAQ5D,yBAAyB,CACvB,SAAS,EAAE,OAAO,EAClB,QAAQ,EAAE,gCAAgC;IAiB5C,sBAAsB,CACpB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,OAAO,EAClB,QAAQ,EAAE,6BAA6B;IA2BzC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,iBAAiB;IAoCxE,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO;IAQrC,OAAO,CAAC,iCAAiC;CAmB1C"}
@@ -3,7 +3,8 @@ export class SyncStateManager {
3
3
  constructor(syncManager) {
4
4
  this.syncManager = syncManager;
5
5
  this.listeners = new Set();
6
- this.listenersByPeers = new Map();
6
+ this.listenersByCoValues = new Map();
7
+ this.listenersByPeersAndCoValues = new Map();
7
8
  }
8
9
  subscribeToUpdates(listener) {
9
10
  this.listeners.add(listener);
@@ -11,20 +12,51 @@ export class SyncStateManager {
11
12
  this.listeners.delete(listener);
12
13
  };
13
14
  }
14
- subscribeToPeerUpdates(peerId, listener) {
15
- const listeners = this.listenersByPeers.get(peerId) ?? new Set();
16
- if (listeners.size === 0) {
17
- this.listenersByPeers.set(peerId, listeners);
15
+ subscribeToCoValueUpdates(coValueId, listener) {
16
+ let listeners = this.listenersByCoValues.get(coValueId);
17
+ if (!listeners) {
18
+ listeners = new Set();
19
+ this.listenersByCoValues.set(coValueId, listeners);
18
20
  }
19
21
  listeners.add(listener);
20
22
  return () => {
21
23
  listeners.delete(listener);
24
+ if (listeners.size === 0) {
25
+ this.listenersByCoValues.delete(coValueId);
26
+ }
27
+ };
28
+ }
29
+ subscribeToPeerUpdates(peerId, coValueId, listener) {
30
+ let peerMap = this.listenersByPeersAndCoValues.get(peerId);
31
+ if (!peerMap) {
32
+ peerMap = new Map();
33
+ this.listenersByPeersAndCoValues.set(peerId, peerMap);
34
+ }
35
+ let listeners = peerMap.get(coValueId);
36
+ if (!listeners) {
37
+ listeners = new Set();
38
+ peerMap.set(coValueId, listeners);
39
+ }
40
+ listeners.add(listener);
41
+ return () => {
42
+ listeners.delete(listener);
43
+ if (listeners.size === 0) {
44
+ peerMap.delete(coValueId);
45
+ if (peerMap.size === 0) {
46
+ this.listenersByPeersAndCoValues.delete(peerId);
47
+ }
48
+ }
22
49
  };
23
50
  }
24
51
  triggerUpdate(peerId, id, knownState) {
25
- const peerListeners = this.listenersByPeers.get(peerId);
26
- // If we don't have any active listeners do nothing
27
- if (!peerListeners?.size && !this.listeners.size) {
52
+ const globalListeners = this.listeners;
53
+ const coValueListeners = this.listenersByCoValues.get(id);
54
+ const peerMap = this.listenersByPeersAndCoValues.get(peerId);
55
+ const coValueAndPeerListeners = peerMap?.get(id);
56
+ if (!globalListeners.size &&
57
+ !coValueListeners?.size &&
58
+ !coValueAndPeerListeners?.size) {
59
+ // If we don't have any active listeners do nothing
28
60
  return;
29
61
  }
30
62
  const syncState = {
@@ -33,10 +65,15 @@ export class SyncStateManager {
33
65
  for (const listener of this.listeners) {
34
66
  listener(peerId, knownState, syncState);
35
67
  }
36
- if (!peerListeners)
37
- return;
38
- for (const listener of peerListeners) {
39
- listener(knownState, syncState);
68
+ if (coValueListeners) {
69
+ for (const listener of coValueListeners) {
70
+ listener(peerId, knownState, syncState);
71
+ }
72
+ }
73
+ if (coValueAndPeerListeners) {
74
+ for (const listener of coValueAndPeerListeners) {
75
+ listener(knownState, syncState);
76
+ }
40
77
  }
41
78
  }
42
79
  isSynced(peer, id) {
@@ -1 +1 @@
1
- {"version":3,"file":"SyncStateManager.js","sourceRoot":"","sources":["../src/SyncStateManager.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,4BAA4B,GAC7B,MAAM,iBAAiB,CAAC;AAmBzB,MAAM,OAAO,gBAAgB;IAC3B,YAAoB,WAAwB;QAAxB,gBAAW,GAAX,WAAW,CAAa;QAEpC,cAAS,GAAG,IAAI,GAAG,EAAmC,CAAC;QACvD,qBAAgB,GAAG,IAAI,GAAG,EAG/B,CAAC;IAN2C,CAAC;IAQhD,kBAAkB,CAAC,QAAyC;QAC1D,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE7B,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC,CAAC;IACJ,CAAC;IAED,sBAAsB,CACpB,MAAc,EACd,QAAuC;QAEvC,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;QAEjE,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC/C,CAAC;QAED,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAExB,OAAO,GAAG,EAAE;YACV,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC7B,CAAC,CAAC;IACJ,CAAC;IAED,aAAa,CAAC,MAAc,EAAE,EAAW,EAAE,UAA6B;QACtE,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAExD,mDAAmD;QACnD,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YACjD,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAG;YAChB,QAAQ,EAAE,IAAI,CAAC,iCAAiC,CAAC,UAAU,EAAE,EAAE,CAAC;SACjE,CAAC;QAEF,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,CAAC,aAAa;YAAE,OAAO;QAE3B,KAAK,MAAM,QAAQ,IAAI,aAAa,EAAE,CAAC;YACrC,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,IAAe,EAAE,EAAW;QACnC,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAE9C,IAAI,CAAC,cAAc;YAAE,OAAO,KAAK,CAAC;QAElC,OAAO,IAAI,CAAC,iCAAiC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IACpE,CAAC;IAEO,iCAAiC,CACvC,cAAiC,EACjC,EAAW;QAEX,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAEpD,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,EAAE,CAAC;YAChC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,yDAAyD;QACzD,yBAAyB;QACzB,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;QAE/C,OAAO,4BAA4B,CACjC,UAAU,CAAC,QAAQ,EACnB,cAAc,CAAC,QAAQ,CACxB,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"SyncStateManager.js","sourceRoot":"","sources":["../src/SyncStateManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ import type { RawCoID } from "./ids.js";
2
+ import type { PeerID } from "./sync.js";
3
+ import type { StorageAPI } from "./storage/types.js";
4
+ /**
5
+ * Set the delay for flushing pending sync state updates to storage.
6
+ * @internal
7
+ */
8
+ export declare function setSyncStateTrackingBatchDelay(delay: number): void;
9
+ /**
10
+ * Tracks CoValues that have unsynced changes to specific peers.
11
+ * Maintains an in-memory map and periodically persists to storage.
12
+ */
13
+ export declare class UnsyncedCoValuesTracker {
14
+ private unsynced;
15
+ private coValueListeners;
16
+ private globalListeners;
17
+ private pendingUpdates;
18
+ private flushTimer;
19
+ private storage?;
20
+ /**
21
+ * Add a CoValue as unsynced to a specific peer.
22
+ * Triggers persistence if storage is available.
23
+ * @returns true if the CoValue was already tracked, false otherwise.
24
+ */
25
+ add(id: RawCoID, peerId?: PeerID): boolean;
26
+ /**
27
+ * Remove a CoValue from being unsynced to a specific peer.
28
+ * Triggers persistence if storage is available.
29
+ */
30
+ remove(id: RawCoID, peerId?: PeerID): void;
31
+ /**
32
+ * Remove all tracking for a CoValue (all peers).
33
+ * Triggers persistence if storage is available.
34
+ */
35
+ removeAll(id: RawCoID): void;
36
+ forcePersist(): Promise<void> | undefined;
37
+ private schedulePersist;
38
+ /**
39
+ * Flush all pending persistence updates in a batch
40
+ */
41
+ private flush;
42
+ /**
43
+ * Get all CoValue IDs that have at least one unsynced peer.
44
+ */
45
+ getAll(): RawCoID[];
46
+ /**
47
+ * Check if all CoValues are synced
48
+ */
49
+ isAllSynced(): boolean;
50
+ /**
51
+ * Check if a specific CoValue is tracked as unsynced.
52
+ */
53
+ has(id: RawCoID): boolean;
54
+ /**
55
+ * Subscribe to changes in whether a specific CoValue is synced.
56
+ * The listener is called immediately with the current state.
57
+ * @returns Unsubscribe function
58
+ */
59
+ subscribe(id: RawCoID, listener: (synced: boolean) => void): () => void;
60
+ /**
61
+ * Subscribe to changes in whether all CoValues are synced.
62
+ * The listener is called immediately with the current state.
63
+ * @returns Unsubscribe function
64
+ */
65
+ subscribe(listener: (synced: boolean) => void): () => void;
66
+ setStorage(storage: StorageAPI): void;
67
+ removeStorage(): void;
68
+ /**
69
+ * Notify all listeners for a specific CoValue about sync status change.
70
+ */
71
+ private notifyCoValueListeners;
72
+ /**
73
+ * Notify all global listeners about "all synced" status change.
74
+ */
75
+ private notifyGlobalListeners;
76
+ /**
77
+ * Keep only the last update for each (id, peerId) combination
78
+ */
79
+ private simplifyPendingUpdates;
80
+ }
81
+ //# sourceMappingURL=UnsyncedCoValuesTracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnsyncedCoValuesTracker.d.ts","sourceRoot":"","sources":["../src/UnsyncedCoValuesTracker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAExC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAWrD;;;GAGG;AACH,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAElE;AAQD;;;GAGG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAwC;IACxD,OAAO,CAAC,gBAAgB,CACZ;IAEZ,OAAO,CAAC,eAAe,CAA6C;IAGpE,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,UAAU,CAA4C;IAE9D,OAAO,CAAC,OAAO,CAAC,CAAa;IAE7B;;;;OAIG;IACH,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,GAAE,MAAoB,GAAG,OAAO;IAoBvD;;;OAGG;IACH,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,GAAE,MAAoB,GAAG,IAAI;IAoBvD;;;OAGG;IACH,SAAS,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI;IAa5B,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS;IAIzC,OAAO,CAAC,eAAe;IAcvB;;OAEG;IACH,OAAO,CAAC,KAAK;IA8Bb;;OAEG;IACH,MAAM,IAAI,OAAO,EAAE;IAInB;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO;IAIzB;;;;OAIG;IACH,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI;IACvE;;;;OAIG;IACH,SAAS,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI;IAsC1D,UAAU,CAAC,OAAO,EAAE,UAAU;IAI9B,aAAa;IAIb;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAS9B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAM7B;;OAEG;IACH,OAAO,CAAC,sBAAsB;CAO/B"}
@@ -0,0 +1,209 @@
1
+ import { logger } from "./logger.js";
2
+ /**
3
+ * Used to track a CoValue that hasn't been synced to any peer,
4
+ * because none is currently connected.
5
+ */
6
+ const ANY_PEER_ID = "any";
7
+ // Flush pending updates to storage after 200ms
8
+ let BATCH_DELAY_MS = 200;
9
+ /**
10
+ * Set the delay for flushing pending sync state updates to storage.
11
+ * @internal
12
+ */
13
+ export function setSyncStateTrackingBatchDelay(delay) {
14
+ BATCH_DELAY_MS = delay;
15
+ }
16
+ /**
17
+ * Tracks CoValues that have unsynced changes to specific peers.
18
+ * Maintains an in-memory map and periodically persists to storage.
19
+ */
20
+ export class UnsyncedCoValuesTracker {
21
+ constructor() {
22
+ this.unsynced = new Map();
23
+ this.coValueListeners = new Map();
24
+ // Listeners for global "all synced" status changes
25
+ this.globalListeners = new Set();
26
+ // Pending updates to be persisted
27
+ this.pendingUpdates = [];
28
+ }
29
+ /**
30
+ * Add a CoValue as unsynced to a specific peer.
31
+ * Triggers persistence if storage is available.
32
+ * @returns true if the CoValue was already tracked, false otherwise.
33
+ */
34
+ add(id, peerId = ANY_PEER_ID) {
35
+ if (!this.unsynced.has(id)) {
36
+ this.unsynced.set(id, new Set());
37
+ }
38
+ const peerSet = this.unsynced.get(id);
39
+ const alreadyTracked = peerSet.has(peerId);
40
+ if (!alreadyTracked) {
41
+ // Only update if this is a new peer
42
+ peerSet.add(peerId);
43
+ this.schedulePersist(id, peerId, false);
44
+ this.notifyCoValueListeners(id, false);
45
+ this.notifyGlobalListeners(false);
46
+ }
47
+ return alreadyTracked;
48
+ }
49
+ /**
50
+ * Remove a CoValue from being unsynced to a specific peer.
51
+ * Triggers persistence if storage is available.
52
+ */
53
+ remove(id, peerId = ANY_PEER_ID) {
54
+ const peerSet = this.unsynced.get(id);
55
+ if (!peerSet || !peerSet.has(peerId)) {
56
+ return;
57
+ }
58
+ peerSet.delete(peerId);
59
+ // If no more unsynced peers for this CoValue, remove the entry
60
+ if (peerSet.size === 0) {
61
+ this.unsynced.delete(id);
62
+ }
63
+ this.schedulePersist(id, peerId, true);
64
+ const isSynced = !this.unsynced.has(id);
65
+ this.notifyCoValueListeners(id, isSynced);
66
+ this.notifyGlobalListeners(this.isAllSynced());
67
+ }
68
+ /**
69
+ * Remove all tracking for a CoValue (all peers).
70
+ * Triggers persistence if storage is available.
71
+ */
72
+ removeAll(id) {
73
+ const peerSet = this.unsynced.get(id);
74
+ if (!peerSet) {
75
+ return;
76
+ }
77
+ // Remove all peers for this CoValue
78
+ const peersToRemove = Array.from(peerSet);
79
+ for (const peerId of peersToRemove) {
80
+ this.remove(id, peerId);
81
+ }
82
+ }
83
+ forcePersist() {
84
+ return this.flush();
85
+ }
86
+ schedulePersist(id, peerId, synced) {
87
+ const storage = this.storage;
88
+ if (!storage) {
89
+ return;
90
+ }
91
+ this.pendingUpdates.push({ id, peerId, synced });
92
+ if (!this.flushTimer) {
93
+ this.flushTimer = setTimeout(() => {
94
+ this.flush();
95
+ }, BATCH_DELAY_MS);
96
+ }
97
+ }
98
+ /**
99
+ * Flush all pending persistence updates in a batch
100
+ */
101
+ flush() {
102
+ if (this.flushTimer) {
103
+ clearTimeout(this.flushTimer);
104
+ this.flushTimer = undefined;
105
+ }
106
+ if (this.pendingUpdates.length === 0) {
107
+ return;
108
+ }
109
+ const storage = this.storage;
110
+ if (!storage) {
111
+ return;
112
+ }
113
+ const filteredUpdates = this.simplifyPendingUpdates(this.pendingUpdates);
114
+ this.pendingUpdates = [];
115
+ return new Promise((resolve) => {
116
+ try {
117
+ storage.trackCoValuesSyncState(filteredUpdates, () => resolve());
118
+ }
119
+ catch (error) {
120
+ logger.warn("Failed to persist batched unsynced CoValue tracking", {
121
+ err: error,
122
+ });
123
+ resolve();
124
+ }
125
+ });
126
+ }
127
+ /**
128
+ * Get all CoValue IDs that have at least one unsynced peer.
129
+ */
130
+ getAll() {
131
+ return Array.from(this.unsynced.keys());
132
+ }
133
+ /**
134
+ * Check if all CoValues are synced
135
+ */
136
+ isAllSynced() {
137
+ return this.unsynced.size === 0;
138
+ }
139
+ /**
140
+ * Check if a specific CoValue is tracked as unsynced.
141
+ */
142
+ has(id) {
143
+ return this.unsynced.has(id);
144
+ }
145
+ subscribe(idOrListener, listener) {
146
+ if (typeof idOrListener === "string" && listener) {
147
+ const id = idOrListener;
148
+ if (!this.coValueListeners.has(id)) {
149
+ this.coValueListeners.set(id, new Set());
150
+ }
151
+ this.coValueListeners.get(id).add(listener);
152
+ // Call immediately with current state
153
+ const isSynced = !this.unsynced.has(id);
154
+ listener(isSynced);
155
+ return () => {
156
+ const listeners = this.coValueListeners.get(id);
157
+ if (listeners) {
158
+ listeners.delete(listener);
159
+ if (listeners.size === 0) {
160
+ this.coValueListeners.delete(id);
161
+ }
162
+ }
163
+ };
164
+ }
165
+ const globalListener = idOrListener;
166
+ this.globalListeners.add(globalListener);
167
+ // Call immediately with current state
168
+ globalListener(this.isAllSynced());
169
+ return () => {
170
+ this.globalListeners.delete(globalListener);
171
+ };
172
+ }
173
+ setStorage(storage) {
174
+ this.storage = storage;
175
+ }
176
+ removeStorage() {
177
+ this.storage = undefined;
178
+ }
179
+ /**
180
+ * Notify all listeners for a specific CoValue about sync status change.
181
+ */
182
+ notifyCoValueListeners(id, synced) {
183
+ const listeners = this.coValueListeners.get(id);
184
+ if (listeners) {
185
+ for (const listener of listeners) {
186
+ listener(synced);
187
+ }
188
+ }
189
+ }
190
+ /**
191
+ * Notify all global listeners about "all synced" status change.
192
+ */
193
+ notifyGlobalListeners(allSynced) {
194
+ for (const listener of this.globalListeners) {
195
+ listener(allSynced);
196
+ }
197
+ }
198
+ /**
199
+ * Keep only the last update for each (id, peerId) combination
200
+ */
201
+ simplifyPendingUpdates(updates) {
202
+ const latestUpdates = new Map();
203
+ for (const update of updates) {
204
+ latestUpdates.set(`${update.id}|${update.peerId}`, update);
205
+ }
206
+ return Array.from(latestUpdates.values());
207
+ }
208
+ }
209
+ //# sourceMappingURL=UnsyncedCoValuesTracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnsyncedCoValuesTracker.js","sourceRoot":"","sources":["../src/UnsyncedCoValuesTracker.ts"],"names":[],"mappings":"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"}
package/dist/exports.d.ts CHANGED
@@ -27,8 +27,9 @@ import type { AgentID, RawCoID, SessionID } from "./ids.js";
27
27
  import type { JsonObject, JsonValue } from "./jsonValue.js";
28
28
  import type * as Media from "./media.js";
29
29
  import { isAccountRole } from "./permissions.js";
30
- import type { Peer, SyncMessage } from "./sync.js";
30
+ import type { Peer, SyncMessage, SyncWhen } from "./sync.js";
31
31
  import { DisconnectedError, SyncManager, hwrServerPeerSelector } from "./sync.js";
32
+ import { setSyncStateTrackingBatchDelay } from "./UnsyncedCoValuesTracker.js";
32
33
  import { emptyKnownState } from "./knownState.js";
33
34
  import { getContentMessageSize, getTransactionSize } from "./coValueContentMessage.js";
34
35
  import { getDependedOnCoValuesFromRawData } from "./coValueCore/utils.js";
@@ -77,6 +78,7 @@ export declare const cojsonInternals: {
77
78
  setCoValueLoadingRetryDelay: typeof setCoValueLoadingRetryDelay;
78
79
  setCoValueLoadingMaxRetries: typeof setCoValueLoadingMaxRetries;
79
80
  setCoValueLoadingTimeout: typeof setCoValueLoadingTimeout;
81
+ setSyncStateTrackingBatchDelay: typeof setSyncStateTrackingBatchDelay;
80
82
  ConnectedPeerChannel: typeof ConnectedPeerChannel;
81
83
  textEncoder: import("util").TextEncoder;
82
84
  textDecoder: import("util").TextDecoder;
@@ -90,7 +92,7 @@ export declare const cojsonInternals: {
90
92
  canBeBranched: typeof canBeBranched;
91
93
  };
92
94
  export { LocalNode, RawGroup, Role, EVERYONE, Everyone, RawCoMap, RawCoList, RawCoStream, RawBinaryCoStream, RawCoValue, RawCoID, CoID, AnyRawCoValue, RawAccount, RawAccountID, ControlledAccount, AccountMeta, RawAccountMigration, RawProfile as Profile, SessionID, Media, CoValueCore, ControlledAgent, JsonObject, JsonValue, Peer, BinaryStreamInfo, BinaryCoStreamMeta, AgentID, AgentSecret, InviteSecret, CryptoProvider, SyncMessage, isRawCoID, emptyKnownState, RawCoPlainText, stringifyOpID, logger, LogLevel, base64URLtoBytes, bytesToBase64url, hwrServerPeerSelector, isAccountRole, };
93
- export type { Value, DisconnectedError, CoValueUniqueness, Stringified, CoStreamItem, BinaryStreamItem, BinaryStreamStart, OpID, AccountRole, AvailableCoValueCore, PeerState, CoValueHeader, };
95
+ export type { Value, DisconnectedError, CoValueUniqueness, Stringified, CoStreamItem, BinaryStreamItem, BinaryStreamStart, OpID, AccountRole, AvailableCoValueCore, PeerState, SyncWhen, CoValueHeader, };
94
96
  export * from "./storage/index.js";
95
97
  export declare namespace CojsonInternalTypes {
96
98
  type CoValueKnownState = import("./knownState.js").CoValueKnownState;
@@ -1 +1 @@
1
- {"version":3,"file":"exports.d.ts","sourceRoot":"","sources":["../src/exports.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"exports.d.ts","sourceRoot":"","sources":["../src/exports.ts"],"names":[],"mappings":"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"}
package/dist/exports.js CHANGED
@@ -17,6 +17,7 @@ import { isAccountID } from "./typeUtils/isAccountID.js";
17
17
  import { textDecoder, textEncoder } from "./crypto/crypto.js";
18
18
  import { isAccountRole } from "./permissions.js";
19
19
  import { SyncManager, hwrServerPeerSelector, } from "./sync.js";
20
+ import { setSyncStateTrackingBatchDelay } from "./UnsyncedCoValuesTracker.js";
20
21
  import { emptyKnownState } from "./knownState.js";
21
22
  import { getContentMessageSize, getTransactionSize, } from "./coValueContentMessage.js";
22
23
  import { getDependedOnCoValuesFromRawData } from "./coValueCore/utils.js";
@@ -55,6 +56,7 @@ export const cojsonInternals = {
55
56
  setCoValueLoadingRetryDelay,
56
57
  setCoValueLoadingMaxRetries,
57
58
  setCoValueLoadingTimeout,
59
+ setSyncStateTrackingBatchDelay,
58
60
  ConnectedPeerChannel,
59
61
  textEncoder,
60
62
  textDecoder,
@@ -1 +1 @@
1
- {"version":3,"file":"exports.js","sourceRoot":"","sources":["../src/exports.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"exports.js","sourceRoot":"","sources":["../src/exports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEpE,OAAO,EACL,WAAW,EACX,WAAW,EACX,sBAAsB,GAEvB,MAAM,8BAA8B,CAAC;AAKtC,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,UAAU,EACV,UAAU,EACV,kCAAkC,GACnC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAQ,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EAIL,iBAAiB,EACjB,WAAW,GACZ,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,SAAS,EACT,gBAAgB,EAChB,cAAc,GACf,MAAM,UAAU,CAAC;AAClB,OAAO,EAAe,SAAS,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,6BAA6B,EAAE,MAAM,8CAA8C,CAAC;AAC7F,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAazD,OAAO,EAAe,WAAW,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAI3E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAEL,WAAW,EACX,qBAAqB,GACtB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EACL,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,gCAAgC,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,2BAA2B,EAC3B,2BAA2B,EAC3B,wBAAwB,EACxB,6BAA6B,EAC7B,uBAAuB,GACxB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAK3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AACjF,cAAc;AACd,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,cAAc;IACd,cAAc;IACd,gBAAgB;IAChB,gBAAgB;IAChB,eAAe;IACf,WAAW;IACX,gBAAgB;IAChB,gBAAgB;IAChB,SAAS;IACT,eAAe;IACf,qBAAqB;IACrB,gCAAgC;IAChC,6BAA6B;IAC7B,WAAW;IACX,kCAAkC;IAClC,WAAW;IACX,qBAAqB;IACrB,wBAAwB;IACxB,oBAAoB;IACpB,sBAAsB;IACtB,WAAW;IACX,uBAAuB;IACvB,iBAAiB;IACjB,6BAA6B;IAC7B,2BAA2B;IAC3B,2BAA2B;IAC3B,wBAAwB;IACxB,8BAA8B;IAC9B,oBAAoB;IACpB,WAAW;IACX,WAAW;IACX,kBAAkB;IAClB,qBAAqB;IACrB,kBAAkB;IAClB,uBAAuB;IACvB,aAAa;CACd,CAAC;AAEF,OAAO,EACL,SAAS,EACT,QAAQ,EAER,QAAQ,EAER,QAAQ,EACR,SAAS,EACT,WAAW,EACX,iBAAiB,EAKjB,UAAU,EAEV,iBAAiB,EAGjB,UAAU,IAAI,OAAO,EAGrB,WAAW,EACX,eAAe,EASf,cAAc,EAEd,SAAS,EACT,eAAe,EACf,cAAc,EACd,aAAa,EACb,MAAM,EACN,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACrB,aAAa,GACd,CAAC;AAkBF,cAAc,oBAAoB,CAAC;AA2BnC,0BAA0B"}
@@ -8,7 +8,7 @@ import { type InviteSecret, type RawGroup } from "./coValues/group.js";
8
8
  import { AgentSecret, CryptoProvider } from "./crypto/crypto.js";
9
9
  import { AgentID, RawCoID, SessionID } from "./ids.js";
10
10
  import { StorageAPI } from "./storage/index.js";
11
- import { Peer, PeerID, SyncManager } from "./sync.js";
11
+ import { Peer, PeerID, SyncManager, type SyncWhen } from "./sync.js";
12
12
  /** A `LocalNode` represents a local view of a set of loaded `CoValue`s, from the perspective of a particular account (or primitive cryptographic agent).
13
13
 
14
14
  A `LocalNode` can have peers that it syncs to, for example some form of local persistence, or a sync server, such as `cloud.jazz.tools` (Jazz Cloud).
@@ -21,6 +21,7 @@ const { localNode } = useJazz();
21
21
  ```
22
22
  */
23
23
  export declare class LocalNode {
24
+ readonly syncWhen?: SyncWhen | undefined;
24
25
  /** @internal */
25
26
  crypto: CryptoProvider;
26
27
  /** @internal */
@@ -34,7 +35,7 @@ export declare class LocalNode {
34
35
  crashed: Error | undefined;
35
36
  storage?: StorageAPI;
36
37
  /** @category 3. Low-level */
37
- constructor(agentSecret: AgentSecret, currentSessionID: SessionID, crypto: CryptoProvider);
38
+ constructor(agentSecret: AgentSecret, currentSessionID: SessionID, crypto: CryptoProvider, syncWhen?: SyncWhen | undefined);
38
39
  enableGarbageCollector(opts?: {
39
40
  garbageCollectGroups?: boolean;
40
41
  }): void;
@@ -53,14 +54,16 @@ export declare class LocalNode {
53
54
  crypto: CryptoProvider;
54
55
  initialAgentSecret?: AgentSecret;
55
56
  peers?: Peer[];
57
+ syncWhen?: SyncWhen;
56
58
  storage?: StorageAPI;
57
59
  }): RawAccount;
58
60
  /** @category 2. Node Creation */
59
- static withNewlyCreatedAccount({ creationProps, peers, migration, crypto, initialAgentSecret, storage, }: {
61
+ static withNewlyCreatedAccount({ creationProps, peers, syncWhen, migration, crypto, initialAgentSecret, storage, }: {
60
62
  creationProps: {
61
63
  name: string;
62
64
  };
63
65
  peers?: Peer[];
66
+ syncWhen?: SyncWhen;
64
67
  migration?: RawAccountMigration<AccountMeta>;
65
68
  crypto: CryptoProvider;
66
69
  initialAgentSecret?: AgentSecret;
@@ -72,11 +75,12 @@ export declare class LocalNode {
72
75
  sessionID: SessionID;
73
76
  }>;
74
77
  /** @category 2. Node Creation */
75
- static withLoadedAccount({ accountID, accountSecret, sessionID, peers, crypto, migration, storage, }: {
78
+ static withLoadedAccount({ accountID, accountSecret, sessionID, peers, syncWhen, crypto, migration, storage, }: {
76
79
  accountID: RawAccountID;
77
80
  accountSecret: AgentSecret;
78
81
  sessionID: SessionID | undefined;
79
82
  peers: Peer[];
83
+ syncWhen?: SyncWhen;
80
84
  crypto: CryptoProvider;
81
85
  migration?: RawAccountMigration<AccountMeta>;
82
86
  storage?: StorageAPI;
@@ -124,7 +128,7 @@ export declare class LocalNode {
124
128
  *
125
129
  * @returns Promise of the current pending store operation, if any.
126
130
  */
127
- gracefulShutdown(): Promise<unknown> | undefined;
131
+ gracefulShutdown(): Promise<unknown>;
128
132
  }
129
133
  export type LoadCoValueCoreError = {
130
134
  type: "ErrorLoadingCoValueCore";