cojson-storage-indexeddb 0.20.9 → 0.20.10

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,4 +1,4 @@
1
1
 
2
- > cojson-storage-indexeddb@0.20.9 build /home/runner/_work/jazz/jazz/packages/cojson-storage-indexeddb
2
+ > cojson-storage-indexeddb@0.20.10 build /home/runner/_work/jazz/jazz/packages/cojson-storage-indexeddb
3
3
  > rm -rf ./dist && tsc --sourceMap --outDir dist
4
4
 
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # cojson-storage-indexeddb
2
2
 
3
+ ## 0.20.10
4
+
5
+ ### Patch Changes
6
+
7
+ - 41d8587: Run a full storage reconciliation process periodically to ensure all CoValues in storage are synced with the server.
8
+ - Updated dependencies [706ab57]
9
+ - Updated dependencies [3f50adb]
10
+ - Updated dependencies [283ff4f]
11
+ - Updated dependencies [93c220c]
12
+ - Updated dependencies [41d8587]
13
+ - cojson@0.20.10
14
+
3
15
  ## 0.20.9
4
16
 
5
17
  ### Patch Changes
@@ -1,4 +1,4 @@
1
- export type StoreName = "coValues" | "sessions" | "transactions" | "signatureAfter" | "deletedCoValues" | "unsyncedCoValues";
1
+ export type StoreName = "coValues" | "sessions" | "transactions" | "signatureAfter" | "deletedCoValues" | "unsyncedCoValues" | "storageReconciliationLocks";
2
2
  /**
3
3
  * An access unit for the IndexedDB Jazz database.
4
4
  * It's a wrapper around the IDBTransaction object that helps on batching multiple operations
@@ -1 +1 @@
1
- {"version":3,"file":"CoJsonIDBTransaction.d.ts","sourceRoot":"","sources":["../src/CoJsonIDBTransaction.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GACjB,UAAU,GACV,UAAU,GACV,cAAc,GACd,gBAAgB,GAChB,iBAAiB,GACjB,kBAAkB,CAAC;AAUvB;;;;GAIG;AACH,qBAAa,oBAAoB;IAatB,EAAE,EAAE,WAAW;IAEtB,OAAO,CAAC,UAAU;IAdZ,EAAE,EAAE,cAAc,CAAC;IAE3B,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,KAAK,IAAI,CAAC,EAAE,CAAM;IAClD,cAAc,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE,CAAM;IAEpC,EAAE,SAAiB;IAEnB,OAAO,UAAS;IAChB,MAAM,UAAS;IACf,IAAI,UAAS;gBAGJ,EAAE,EAAE,WAAW,EAEd,UAAU,GAAE,SAAS,EAAsB;IAKrD,OAAO;IAWP,QAAQ;IAIR,cAAc,CAAC,IAAI,EAAE,SAAS;IAS9B,OAAO,CAAC,WAAW;IAgCnB,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC;IAyB1D,MAAM;CAKP;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EACnC,EAAE,EAAE,WAAW,EACf,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,UAAU,CAAC,CAAC,CAAC,cAenD;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,CAAC,SAAS,WAAW,EACxD,EAAE,EAAE,WAAW,EACf,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,CAAC,cAeT"}
1
+ {"version":3,"file":"CoJsonIDBTransaction.d.ts","sourceRoot":"","sources":["../src/CoJsonIDBTransaction.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GACjB,UAAU,GACV,UAAU,GACV,cAAc,GACd,gBAAgB,GAChB,iBAAiB,GACjB,kBAAkB,GAClB,4BAA4B,CAAC;AAUjC;;;;GAIG;AACH,qBAAa,oBAAoB;IAatB,EAAE,EAAE,WAAW;IAEtB,OAAO,CAAC,UAAU;IAdZ,EAAE,EAAE,cAAc,CAAC;IAE3B,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,KAAK,IAAI,CAAC,EAAE,CAAM;IAClD,cAAc,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE,CAAM;IAEpC,EAAE,SAAiB;IAEnB,OAAO,UAAS;IAChB,MAAM,UAAS;IACf,IAAI,UAAS;gBAGJ,EAAE,EAAE,WAAW,EAEd,UAAU,GAAE,SAAS,EAAsB;IAKrD,OAAO;IAWP,QAAQ;IAIR,cAAc,CAAC,IAAI,EAAE,SAAS;IAS9B,OAAO,CAAC,WAAW;IAgCnB,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC;IAyB1D,MAAM;CAKP;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EACnC,EAAE,EAAE,WAAW,EACf,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,UAAU,CAAC,CAAC,CAAC,cAenD;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,CAAC,SAAS,WAAW,EACxD,EAAE,EAAE,WAAW,EACf,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,CAAC,cAeT"}
@@ -1 +1 @@
1
- {"version":3,"file":"CoJsonIDBTransaction.js","sourceRoot":"","sources":["../src/CoJsonIDBTransaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CoJsonIDBTransaction.js","sourceRoot":"","sources":["../src/CoJsonIDBTransaction.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { CojsonInternalTypes, RawCoID, SessionID, DBTransactionInterfaceAsync } from "cojson";
2
- import type { DBClientInterfaceAsync, SessionRow, SignatureAfterRow, StoredCoValueRow, StoredSessionRow, TransactionRow } from "cojson";
2
+ import type { DBClientInterfaceAsync, SessionRow, SignatureAfterRow, StorageReconciliationLockRow, StoredCoValueRow, StoredSessionRow, TransactionRow, StorageReconciliationAcquireResult } from "cojson";
3
3
  import { CoJsonIDBTransaction, StoreName } from "./CoJsonIDBTransaction.js";
4
4
  /**
5
5
  * Contains operations that should run as part of a readwrite transaction.
@@ -53,6 +53,8 @@ export declare class IDBTransaction implements DBTransactionInterfaceAsync {
53
53
  coValueId: RawCoID;
54
54
  peerId: string;
55
55
  }): Promise<void>;
56
+ getStorageReconciliationLock(key: string): Promise<StorageReconciliationLockRow | undefined>;
57
+ putStorageReconciliationLock(entry: StorageReconciliationLockRow): Promise<void>;
56
58
  }
57
59
  export declare class IDBClient implements DBClientInterfaceAsync {
58
60
  private db;
@@ -73,8 +75,15 @@ export declare class IDBClient implements DBClientInterfaceAsync {
73
75
  synced: boolean;
74
76
  }[]): Promise<void>;
75
77
  eraseCoValueButKeepTombstone(coValueID: RawCoID): Promise<void>;
78
+ getCoValueIDs(limit: number, offset: number): Promise<{
79
+ id: RawCoID;
80
+ }[]>;
81
+ getCoValueCount(): Promise<number>;
76
82
  getUnsyncedCoValueIDs(): Promise<RawCoID[]>;
77
83
  stopTrackingSyncState(id: RawCoID): Promise<void>;
84
+ tryAcquireStorageReconciliationLock(sessionId: SessionID, peerId: string): Promise<StorageReconciliationAcquireResult>;
85
+ renewStorageReconciliationLock(sessionId: SessionID, peerId: string, offset: number): Promise<void>;
86
+ releaseStorageReconciliationLock(sessionId: SessionID, peerId: string): Promise<void>;
78
87
  getCoValueKnownState(coValueId: string): Promise<CojsonInternalTypes.CoValueKnownState | undefined>;
79
88
  }
80
89
  //# sourceMappingURL=idbClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"idbClient.d.ts","sourceRoot":"","sources":["../src/idbClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"idbClient.d.ts","sourceRoot":"","sources":["../src/idbClient.ts"],"names":[],"mappings":"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"}
package/dist/idbClient.js CHANGED
@@ -4,6 +4,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
4
4
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
5
  };
6
6
  var _IDBTransaction_instances, _IDBTransaction_deleteAllBySesPrefix;
7
+ import { cojsonInternals } from "cojson";
7
8
  import { CoJsonIDBTransaction, putIndexedDbStore, queryIndexedDbStore, } from "./CoJsonIDBTransaction.js";
8
9
  /**
9
10
  * Contains operations that should run as part of a readwrite transaction.
@@ -102,6 +103,12 @@ export class IDBTransaction {
102
103
  async putUnsyncedCoValueRecord(record) {
103
104
  await this.run((tx) => tx.getObjectStore("unsyncedCoValues").put(record));
104
105
  }
106
+ async getStorageReconciliationLock(key) {
107
+ return this.run((tx) => tx.getObjectStore("storageReconciliationLocks").get(key));
108
+ }
109
+ async putStorageReconciliationLock(entry) {
110
+ await this.run((tx) => tx.getObjectStore("storageReconciliationLocks").put(entry));
111
+ }
105
112
  }
106
113
  _IDBTransaction_instances = new WeakSet(), _IDBTransaction_deleteAllBySesPrefix = async function _IDBTransaction_deleteAllBySesPrefix(storeName, sesRowID) {
107
114
  const range = IDBKeyRange.bound([sesRowID, 0], [sesRowID, Number.POSITIVE_INFINITY]);
@@ -189,6 +196,15 @@ export class IDBClient {
189
196
  }
190
197
  await this.transaction((tx) => tx.deleteCoValueContent(coValue));
191
198
  }
199
+ async getCoValueIDs(limit, offset) {
200
+ const rows = await queryIndexedDbStore(this.db, "coValues", (store) =>
201
+ // Include upper bound but not lower bound (offset starts at 0)
202
+ store.getAll(IDBKeyRange.bound(offset, offset + limit, true, false)));
203
+ return rows.map((row) => ({ id: row.id }));
204
+ }
205
+ async getCoValueCount() {
206
+ return queryIndexedDbStore(this.db, "coValues", (store) => store.count());
207
+ }
192
208
  async getUnsyncedCoValueIDs() {
193
209
  const records = await queryIndexedDbStore(this.db, "unsyncedCoValues", (store) => store.getAll());
194
210
  const uniqueIds = new Set();
@@ -204,6 +220,64 @@ export class IDBClient {
204
220
  await Promise.all(records.map((record) => idbTx.deleteUnsyncedCoValueRecord(record.rowID)));
205
221
  }, ["unsyncedCoValues"]);
206
222
  }
223
+ async tryAcquireStorageReconciliationLock(sessionId, peerId) {
224
+ const lockKey = `lock#${peerId}`;
225
+ const now = Date.now();
226
+ const { LOCK_TTL_MS, RECONCILIATION_INTERVAL_MS } = cojsonInternals.STORAGE_RECONCILIATION_CONFIG;
227
+ let result;
228
+ await this.transaction(async (tx) => {
229
+ const lock = await tx.getStorageReconciliationLock(lockKey);
230
+ if (lock?.releasedAt &&
231
+ now - lock.releasedAt < RECONCILIATION_INTERVAL_MS) {
232
+ result = { acquired: false, reason: "not_due" };
233
+ return;
234
+ }
235
+ const expiresAt = lock ? lock.acquiredAt + LOCK_TTL_MS : 0;
236
+ const isLockHeldByOtherSession = lock?.holderSessionId !== sessionId;
237
+ if (lock &&
238
+ !lock.releasedAt &&
239
+ expiresAt >= now &&
240
+ isLockHeldByOtherSession) {
241
+ result = { acquired: false, reason: "lock_held" };
242
+ return;
243
+ }
244
+ const lastProcessedOffset = lock && !lock.releasedAt ? (lock.lastProcessedOffset ?? 0) : 0;
245
+ await tx.putStorageReconciliationLock({
246
+ key: lockKey,
247
+ holderSessionId: sessionId,
248
+ acquiredAt: now,
249
+ lastProcessedOffset,
250
+ });
251
+ result = { acquired: true, lastProcessedOffset };
252
+ }, ["storageReconciliationLocks"]);
253
+ return result;
254
+ }
255
+ async renewStorageReconciliationLock(sessionId, peerId, offset) {
256
+ const lockKey = `lock#${peerId}`;
257
+ await this.transaction(async (tx) => {
258
+ const lock = await tx.getStorageReconciliationLock(lockKey);
259
+ if (lock && lock.holderSessionId === sessionId && !lock.releasedAt) {
260
+ await tx.putStorageReconciliationLock({
261
+ ...lock,
262
+ lastProcessedOffset: offset,
263
+ });
264
+ }
265
+ }, ["storageReconciliationLocks"]);
266
+ }
267
+ async releaseStorageReconciliationLock(sessionId, peerId) {
268
+ const lockKey = `lock#${peerId}`;
269
+ const releasedAt = Date.now();
270
+ await this.transaction(async (tx) => {
271
+ const lock = await tx.getStorageReconciliationLock(lockKey);
272
+ if (lock?.holderSessionId === sessionId) {
273
+ await tx.putStorageReconciliationLock({
274
+ ...lock,
275
+ releasedAt,
276
+ lastProcessedOffset: 0,
277
+ });
278
+ }
279
+ }, ["storageReconciliationLocks"]);
280
+ }
207
281
  async getCoValueKnownState(coValueId) {
208
282
  // First check if the CoValue exists
209
283
  const coValueRow = await this.getCoValue(coValueId);
@@ -1 +1 @@
1
- {"version":3,"file":"idbClient.js","sourceRoot":"","sources":["../src/idbClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"idbClient.js","sourceRoot":"","sources":["../src/idbClient.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"idbNode.d.ts","sourceRoot":"","sources":["../src/idbNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAKzC,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,QAEpD;AAED,wBAAsB,mBAAmB,CAAC,IAAI,SAAgB,4BAoE7D"}
1
+ {"version":3,"file":"idbNode.d.ts","sourceRoot":"","sources":["../src/idbNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAKzC,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,QAEpD;AAED,wBAAsB,mBAAmB,CAAC,IAAI,SAAgB,4BAyE7D"}
package/dist/idbNode.js CHANGED
@@ -6,7 +6,7 @@ export function internal_setDatabaseName(name) {
6
6
  }
7
7
  export async function getIndexedDBStorage(name = DATABASE_NAME) {
8
8
  const dbPromise = new Promise((resolve, reject) => {
9
- const request = indexedDB.open(name, 6);
9
+ const request = indexedDB.open(name, 7);
10
10
  request.onerror = () => {
11
11
  reject(request.error);
12
12
  };
@@ -58,6 +58,11 @@ export async function getIndexedDBStorage(name = DATABASE_NAME) {
58
58
  unique: false,
59
59
  });
60
60
  }
61
+ if (ev.oldVersion <= 6) {
62
+ db.createObjectStore("storageReconciliationLocks", {
63
+ keyPath: "key",
64
+ });
65
+ }
61
66
  };
62
67
  });
63
68
  const db = await dbPromise;
@@ -1 +1 @@
1
- {"version":3,"file":"idbNode.js","sourceRoot":"","sources":["../src/idbNode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"idbNode.js","sourceRoot":"","sources":["../src/idbNode.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import type { CoValueCore, SyncMessage } from "cojson";
2
2
  export declare function toSimplifiedMessages(coValues: Record<string, CoValueCore>, messages: {
3
3
  from: "client" | "server" | "storage";
4
4
  msg: SyncMessage;
5
- }[]): string[];
5
+ }[]): (string | undefined)[];
6
6
  export declare function debugMessages(coValues: Record<string, CoValueCore>, messages: {
7
7
  from: "client" | "server" | "storage";
8
8
  msg: SyncMessage;
@@ -1 +1 @@
1
- {"version":3,"file":"messagesTestUtils.d.ts","sourceRoot":"","sources":["../../src/tests/messagesTestUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAuB,WAAW,EAAE,MAAM,QAAQ,CAAC;AA2B5E,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EACrC,QAAQ,EAAE;IACR,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IACtC,GAAG,EAAE,WAAW,CAAC;CAClB,EAAE,YA6BJ;AAED,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EACrC,QAAQ,EAAE;IACR,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IACtC,GAAG,EAAE,WAAW,CAAC;CAClB,EAAE,QAGJ"}
1
+ {"version":3,"file":"messagesTestUtils.d.ts","sourceRoot":"","sources":["../../src/tests/messagesTestUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAuB,WAAW,EAAE,MAAM,QAAQ,CAAC;AA2B5E,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EACrC,QAAQ,EAAE;IACR,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IACtC,GAAG,EAAE,WAAW,CAAC;CAClB,EAAE,0BA6BJ;AAED,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EACrC,QAAQ,EAAE;IACR,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IACtC,GAAG,EAAE,WAAW,CAAC;CAClB,EAAE,QAGJ"}
@@ -1,4 +1,4 @@
1
- import { LocalNode, StorageApiAsync, cojsonInternals } from "cojson";
1
+ import { LocalNode, StorageApiAsync, cojsonInternals, } from "cojson";
2
2
  import { WasmCrypto } from "cojson/crypto/WasmCrypto";
3
3
  import { afterEach, beforeEach, describe, expect, test, vi } from "vitest";
4
4
  import { getIndexedDBStorage, internal_setDatabaseName } from "../index.js";
@@ -7,12 +7,14 @@ import { connectToSyncServer, createTestNode, getAllCoValuesWaitingForDelete, ge
7
7
  const Crypto = await WasmCrypto.create();
8
8
  let syncMessages;
9
9
  let dbName;
10
+ const originalStorageReconciliationBatchSize = cojsonInternals.STORAGE_RECONCILIATION_CONFIG.BATCH_SIZE;
10
11
  beforeEach(() => {
11
12
  dbName = `test-${crypto.randomUUID()}`;
12
13
  internal_setDatabaseName(dbName);
13
14
  syncMessages = trackMessages();
14
15
  cojsonInternals.setSyncStateTrackingBatchDelay(0);
15
16
  cojsonInternals.setCoValueLoadingRetryDelay(10);
17
+ cojsonInternals.setStorageReconciliationBatchSize(originalStorageReconciliationBatchSize);
16
18
  });
17
19
  afterEach(async () => {
18
20
  syncMessages.restore();
@@ -508,4 +510,222 @@ describe("sync resumption", () => {
508
510
  await node2.gracefulShutdown();
509
511
  });
510
512
  });
513
+ describe("getCoValueIDs", () => {
514
+ test("returns CoValue IDs in batch from storage", async () => {
515
+ const node1 = createTestNode();
516
+ node1.setStorage(await getIndexedDBStorage());
517
+ const group = node1.createGroup();
518
+ const map = group.createMap();
519
+ map.set("hello", "world");
520
+ await map.core.waitForSync();
521
+ const ids = await new Promise((resolve) => {
522
+ node1.storage.getCoValueIDs(100, 0, resolve);
523
+ });
524
+ expect(ids.map((e) => e.id)).toContain(group.id);
525
+ expect(ids.map((e) => e.id)).toContain(map.id);
526
+ expect(ids.length).toEqual(2);
527
+ });
528
+ test("paginates when there are more CoValues than the limit and returns each ID only once", async () => {
529
+ const node1 = createTestNode();
530
+ node1.setStorage(await getIndexedDBStorage());
531
+ const group = node1.createGroup();
532
+ const expectedIds = new Set([group.id]);
533
+ const maps = [];
534
+ for (let i = 0; i < 4; i++) {
535
+ const map = group.createMap();
536
+ map.set(`key${i}`, `value${i}`);
537
+ maps.push(map);
538
+ expectedIds.add(map.id);
539
+ }
540
+ await maps[maps.length - 1].core.waitForSync();
541
+ const limit = 2;
542
+ const allIds = [];
543
+ await new Promise((resolve) => {
544
+ const fetchBatch = (offset) => {
545
+ node1.storage.getCoValueIDs(limit, offset, (batch) => {
546
+ for (const { id } of batch) {
547
+ allIds.push(id);
548
+ }
549
+ if (batch.length >= limit) {
550
+ fetchBatch(offset + batch.length);
551
+ }
552
+ else {
553
+ resolve();
554
+ }
555
+ });
556
+ };
557
+ fetchBatch(0);
558
+ });
559
+ expect(allIds).toHaveLength(expectedIds.size);
560
+ const seen = new Set();
561
+ for (const id of allIds) {
562
+ expect(seen.has(id)).toBe(false);
563
+ seen.add(id);
564
+ expect(expectedIds.has(id)).toBe(true);
565
+ }
566
+ });
567
+ });
568
+ describe("getCoValueCount", () => {
569
+ test("returns 0 when storage has no CoValues", async () => {
570
+ const node1 = createTestNode();
571
+ node1.setStorage(await getIndexedDBStorage());
572
+ const count = await new Promise((resolve) => {
573
+ node1.storage.getCoValueCount(resolve);
574
+ });
575
+ expect(count).toBe(0);
576
+ });
577
+ test("returns CoValue count after storing CoValues", async () => {
578
+ const node1 = createTestNode();
579
+ node1.setStorage(await getIndexedDBStorage());
580
+ const countEmpty = await new Promise((resolve) => {
581
+ node1.storage.getCoValueCount(resolve);
582
+ });
583
+ expect(countEmpty).toBe(0);
584
+ const group = node1.createGroup();
585
+ const map = group.createMap();
586
+ map.set("hello", "world");
587
+ await map.core.waitForSync();
588
+ const countTwo = await new Promise((resolve) => {
589
+ node1.storage.getCoValueCount(resolve);
590
+ });
591
+ expect(countTwo).toBe(2);
592
+ });
593
+ });
594
+ describe("full storage reconciliation", () => {
595
+ test("syncs CoValues in storage", async () => {
596
+ const client = createTestNode();
597
+ const storage = await getIndexedDBStorage();
598
+ client.setStorage(storage);
599
+ const group = client.createGroup();
600
+ const map = group.createMap();
601
+ map.set("hello", "world", "trusting");
602
+ await map.core.waitForSync();
603
+ const anotherClient = createTestNode();
604
+ anotherClient.setStorage(storage);
605
+ const syncServer = createTestNode();
606
+ connectToSyncServer(anotherClient, syncServer, true);
607
+ expect(syncServer.hasCoValue(group.id)).toBe(false);
608
+ expect(syncServer.hasCoValue(map.id)).toBe(false);
609
+ const serverPeer = Object.values(anotherClient.syncManager.peers).find((p) => p.role === "server" && p.persistent);
610
+ anotherClient.syncManager.startStorageReconciliation(serverPeer);
611
+ await waitFor(() => syncServer.hasCoValue(group.id));
612
+ await waitFor(() => syncServer.hasCoValue(map.id));
613
+ });
614
+ test("sends reconcile messages in multiple batches", async () => {
615
+ cojsonInternals.setStorageReconciliationBatchSize(2);
616
+ const client = createTestNode();
617
+ const storage = await getIndexedDBStorage();
618
+ client.setStorage(storage);
619
+ const group = client.createGroup();
620
+ const maps = [];
621
+ for (let i = 0; i < 4; i++) {
622
+ const m = group.createMap();
623
+ m.set("i", i, "trusting");
624
+ maps.push(m);
625
+ }
626
+ await Promise.all(maps.map((m) => m.core.waitForSync()));
627
+ const anotherClient = createTestNode();
628
+ anotherClient.setStorage(storage);
629
+ const syncServer = createTestNode();
630
+ connectToSyncServer(anotherClient, syncServer, true);
631
+ const serverPeer = Object.values(anotherClient.syncManager.peers).find((p) => p.role === "server" && p.persistent);
632
+ anotherClient.syncManager.startStorageReconciliation(serverPeer);
633
+ await waitFor(() => syncServer.hasCoValue(group.id));
634
+ for (const map of maps) {
635
+ await waitFor(() => syncServer.hasCoValue(map.id));
636
+ }
637
+ });
638
+ describe("scheduling", () => {
639
+ const originalLockTTL = cojsonInternals.STORAGE_RECONCILIATION_CONFIG.LOCK_TTL_MS;
640
+ const originalInterval = cojsonInternals.STORAGE_RECONCILIATION_CONFIG.RECONCILIATION_INTERVAL_MS;
641
+ beforeEach(() => {
642
+ cojsonInternals.setStorageReconciliationLockTTL(originalLockTTL);
643
+ cojsonInternals.setStorageReconciliationInterval(originalInterval);
644
+ });
645
+ function tryAcquireStorageReconciliationLock(client) {
646
+ const sessionId = client.currentSessionID;
647
+ const peerId = Object.values(client.syncManager.peers).find((p) => p.role === "server" && p.persistent).id;
648
+ return new Promise((resolve) => {
649
+ client.storage.tryAcquireStorageReconciliationLock(sessionId, peerId, resolve);
650
+ });
651
+ }
652
+ test("full storage reconciliation is run when adding a new persistent server peer", async () => {
653
+ const client = createTestNode({ enableFullStorageReconciliation: true });
654
+ const storage = await getIndexedDBStorage();
655
+ client.setStorage(storage);
656
+ const group = client.createGroup();
657
+ const map = group.createMap();
658
+ map.set("hello", "world", "trusting");
659
+ await map.core.waitForSync();
660
+ const anotherClient = createTestNode({
661
+ enableFullStorageReconciliation: true,
662
+ });
663
+ anotherClient.setStorage(storage);
664
+ const syncServer = createTestNode();
665
+ connectToSyncServer(anotherClient, syncServer, false);
666
+ await waitFor(() => syncServer.hasCoValue(group.id));
667
+ await waitFor(() => syncServer.hasCoValue(map.id));
668
+ });
669
+ test("reconciliation is not run again until the reconciliation interval passed", async () => {
670
+ cojsonInternals.setStorageReconciliationInterval(200);
671
+ const syncServer = createTestNode();
672
+ const client = createTestNode({ enableFullStorageReconciliation: true });
673
+ const storage = await getIndexedDBStorage();
674
+ client.setStorage(storage);
675
+ connectToSyncServer(client, syncServer, false);
676
+ const group = client.createGroup();
677
+ await group.core.waitForSync();
678
+ // Lock cannot be acquired after reconciliation was completed
679
+ await waitFor(async () => {
680
+ const lock = await tryAcquireStorageReconciliationLock(client);
681
+ return lock.acquired === false && lock.reason === "not_due";
682
+ });
683
+ // Wait for the reconciliation interval to pass
684
+ await new Promise((resolve) => setTimeout(resolve, 200));
685
+ const lock = await tryAcquireStorageReconciliationLock(client);
686
+ expect(lock.acquired).toBe(true);
687
+ });
688
+ test("if reconciliation is interrupted, it won't be started by another client until the lock TTL expires", async () => {
689
+ cojsonInternals.setStorageReconciliationInterval(0);
690
+ cojsonInternals.setStorageReconciliationLockTTL(100);
691
+ const syncServer = createTestNode();
692
+ let client = createTestNode({ enableFullStorageReconciliation: true });
693
+ const storage = await getIndexedDBStorage();
694
+ client.setStorage(storage);
695
+ const group = client.createGroup();
696
+ await group.core.waitForSync();
697
+ connectToSyncServer(client, syncServer, false);
698
+ // Kill the node before the reconciliation completes
699
+ client.gracefulShutdown();
700
+ const anotherClient = createTestNode({
701
+ enableFullStorageReconciliation: true,
702
+ });
703
+ anotherClient.setStorage(storage);
704
+ connectToSyncServer(anotherClient, syncServer, false);
705
+ const lockResult = await tryAcquireStorageReconciliationLock(anotherClient);
706
+ expect(lockResult.acquired).toBe(false);
707
+ if (!lockResult.acquired) {
708
+ expect(lockResult.reason).toBe("lock_held");
709
+ }
710
+ await new Promise((resolve) => setTimeout(resolve, 200));
711
+ const lockResult2 = await tryAcquireStorageReconciliationLock(anotherClient);
712
+ expect(lockResult2.acquired).toBe(true);
713
+ });
714
+ test("if reconciliation is interrupted, it can be resumed by the same client", async () => {
715
+ cojsonInternals.setStorageReconciliationInterval(0);
716
+ cojsonInternals.setStorageReconciliationLockTTL(100);
717
+ const syncServer = createTestNode();
718
+ let client = createTestNode({ enableFullStorageReconciliation: true });
719
+ const storage = await getIndexedDBStorage();
720
+ client.setStorage(storage);
721
+ const group = client.createGroup();
722
+ await group.core.waitForSync();
723
+ connectToSyncServer(client, syncServer, false);
724
+ // Kill the node before the reconciliation completes
725
+ client.gracefulShutdown();
726
+ const lockResult = await tryAcquireStorageReconciliationLock(client);
727
+ expect(lockResult.acquired).toBe(true);
728
+ });
729
+ });
730
+ });
511
731
  //# sourceMappingURL=storage.indexeddb.test.js.map