cojson 0.19.18 → 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.
- package/.turbo/turbo-build.log +1 -1
- package/CHANGELOG.md +9 -0
- package/dist/PeerState.d.ts.map +1 -1
- package/dist/SyncStateManager.d.ts +5 -2
- package/dist/SyncStateManager.d.ts.map +1 -1
- package/dist/SyncStateManager.js +49 -12
- package/dist/SyncStateManager.js.map +1 -1
- package/dist/UnsyncedCoValuesTracker.d.ts +81 -0
- package/dist/UnsyncedCoValuesTracker.d.ts.map +1 -0
- package/dist/UnsyncedCoValuesTracker.js +209 -0
- package/dist/UnsyncedCoValuesTracker.js.map +1 -0
- package/dist/exports.d.ts +4 -2
- package/dist/exports.d.ts.map +1 -1
- package/dist/exports.js +2 -0
- package/dist/exports.js.map +1 -1
- package/dist/localNode.d.ts +9 -5
- package/dist/localNode.d.ts.map +1 -1
- package/dist/localNode.js +12 -8
- package/dist/localNode.js.map +1 -1
- package/dist/storage/knownState.d.ts +1 -1
- package/dist/storage/knownState.js +4 -4
- package/dist/storage/sqlite/client.d.ts +8 -0
- package/dist/storage/sqlite/client.d.ts.map +1 -1
- package/dist/storage/sqlite/client.js +17 -0
- package/dist/storage/sqlite/client.js.map +1 -1
- package/dist/storage/sqlite/sqliteMigrations.d.ts.map +1 -1
- package/dist/storage/sqlite/sqliteMigrations.js +9 -0
- package/dist/storage/sqlite/sqliteMigrations.js.map +1 -1
- package/dist/storage/sqliteAsync/client.d.ts +8 -0
- package/dist/storage/sqliteAsync/client.d.ts.map +1 -1
- package/dist/storage/sqliteAsync/client.js +19 -0
- package/dist/storage/sqliteAsync/client.js.map +1 -1
- package/dist/storage/storageAsync.d.ts +9 -2
- package/dist/storage/storageAsync.d.ts.map +1 -1
- package/dist/storage/storageAsync.js +9 -0
- package/dist/storage/storageAsync.js.map +1 -1
- package/dist/storage/storageSync.d.ts +9 -2
- package/dist/storage/storageSync.d.ts.map +1 -1
- package/dist/storage/storageSync.js +11 -0
- package/dist/storage/storageSync.js.map +1 -1
- package/dist/storage/types.d.ts +33 -0
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/sync.d.ts +21 -1
- package/dist/sync.d.ts.map +1 -1
- package/dist/sync.js +107 -2
- package/dist/sync.js.map +1 -1
- package/dist/tests/SyncStateManager.test.js +3 -3
- package/dist/tests/SyncStateManager.test.js.map +1 -1
- package/dist/tests/coValueCore.loadFromStorage.test.js +3 -0
- package/dist/tests/coValueCore.loadFromStorage.test.js.map +1 -1
- package/dist/tests/sync.tracking.test.d.ts +2 -0
- package/dist/tests/sync.tracking.test.d.ts.map +1 -0
- package/dist/tests/sync.tracking.test.js +261 -0
- package/dist/tests/sync.tracking.test.js.map +1 -0
- package/dist/tests/testUtils.d.ts +2 -1
- package/dist/tests/testUtils.d.ts.map +1 -1
- package/dist/tests/testUtils.js +2 -2
- package/dist/tests/testUtils.js.map +1 -1
- package/package.json +4 -4
- package/src/PeerState.ts +2 -2
- package/src/SyncStateManager.ts +63 -12
- package/src/UnsyncedCoValuesTracker.ts +272 -0
- package/src/exports.ts +4 -1
- package/src/localNode.ts +15 -3
- package/src/storage/knownState.ts +4 -4
- package/src/storage/sqlite/client.ts +31 -0
- package/src/storage/sqlite/sqliteMigrations.ts +9 -0
- package/src/storage/sqliteAsync/client.ts +35 -0
- package/src/storage/storageAsync.ts +18 -1
- package/src/storage/storageSync.ts +20 -1
- package/src/storage/types.ts +39 -0
- package/src/sync.ts +151 -3
- package/src/tests/SyncStateManager.test.ts +3 -0
- package/src/tests/coValueCore.loadFromStorage.test.ts +11 -0
- package/src/tests/sync.tracking.test.ts +396 -0
- package/src/tests/testUtils.ts +9 -3
package/.turbo/turbo-build.log
CHANGED
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
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
|
+
|
|
3
12
|
## 0.19.18
|
|
4
13
|
|
|
5
14
|
### Patch Changes
|
package/dist/PeerState.d.ts.map
CHANGED
|
@@ -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,
|
|
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
|
|
15
|
+
private listenersByCoValues;
|
|
16
|
+
private listenersByPeersAndCoValues;
|
|
15
17
|
subscribeToUpdates(listener: GlobalSyncStateListenerCallback): () => void;
|
|
16
|
-
|
|
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,
|
|
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"}
|
package/dist/SyncStateManager.js
CHANGED
|
@@ -3,7 +3,8 @@ export class SyncStateManager {
|
|
|
3
3
|
constructor(syncManager) {
|
|
4
4
|
this.syncManager = syncManager;
|
|
5
5
|
this.listeners = new Set();
|
|
6
|
-
this.
|
|
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
|
-
|
|
15
|
-
|
|
16
|
-
if (listeners
|
|
17
|
-
|
|
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
|
|
26
|
-
|
|
27
|
-
|
|
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 (
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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;
|
|
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;
|
package/dist/exports.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exports.d.ts","sourceRoot":"","sources":["../src/exports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EACL,WAAW,EACX,WAAW,EACX,sBAAsB,EACtB,KAAK,oBAAoB,EAC1B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,aAAa,EACb,iBAAiB,EAClB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,UAAU,EACV,UAAU,EACV,kCAAkC,EACnC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,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,EACL,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACZ,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EACL,cAAc,EAGf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,SAAS,EACT,gBAAgB,EAChB,cAAc,EACf,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC1D,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;AAEzD,OAAO,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,mBAAmB,EACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,WAAW,EAA4B,MAAM,oBAAoB,CAAC;AAC3E,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,KAAK,KAAK,KAAK,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;
|
|
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,
|
package/dist/exports.js.map
CHANGED
|
@@ -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":"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"}
|
package/dist/localNode.d.ts
CHANGED
|
@@ -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
|
|
131
|
+
gracefulShutdown(): Promise<unknown>;
|
|
128
132
|
}
|
|
129
133
|
export type LoadCoValueCoreError = {
|
|
130
134
|
type: "ErrorLoadingCoValueCore";
|
package/dist/localNode.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localNode.d.ts","sourceRoot":"","sources":["../src/localNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EACL,KAAK,oBAAoB,EACzB,WAAW,EAEZ,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACvB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,WAAW,EAEX,wBAAwB,EAExB,0BAA0B,EAE1B,UAAU,EACV,YAAY,EACZ,mBAAmB,EACnB,UAAU,EAGX,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,QAAQ,EAEd,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAwB,MAAM,UAAU,CAAC;AAE7E,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"localNode.d.ts","sourceRoot":"","sources":["../src/localNode.ts"],"names":[],"mappings":"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"}
|