cojson 0.20.9 → 0.20.11

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 (179) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +29 -0
  3. package/dist/OngoingStorageReconciliationTracker.d.ts +16 -0
  4. package/dist/OngoingStorageReconciliationTracker.d.ts.map +1 -0
  5. package/dist/OngoingStorageReconciliationTracker.js +75 -0
  6. package/dist/OngoingStorageReconciliationTracker.js.map +1 -0
  7. package/dist/PeerState.d.ts +2 -2
  8. package/dist/PeerState.d.ts.map +1 -1
  9. package/dist/PeerState.js +3 -3
  10. package/dist/PeerState.js.map +1 -1
  11. package/dist/StorageReconciliationAckTracker.d.ts +14 -0
  12. package/dist/StorageReconciliationAckTracker.d.ts.map +1 -0
  13. package/dist/StorageReconciliationAckTracker.js +72 -0
  14. package/dist/StorageReconciliationAckTracker.js.map +1 -0
  15. package/dist/SyncStateManager.js +2 -2
  16. package/dist/SyncStateManager.js.map +1 -1
  17. package/dist/coValueCore/coValueCore.d.ts +2 -1
  18. package/dist/coValueCore/coValueCore.d.ts.map +1 -1
  19. package/dist/coValueCore/coValueCore.js +43 -10
  20. package/dist/coValueCore/coValueCore.js.map +1 -1
  21. package/dist/coValues/coList.d.ts +2 -0
  22. package/dist/coValues/coList.d.ts.map +1 -1
  23. package/dist/coValues/coList.js +28 -0
  24. package/dist/coValues/coList.js.map +1 -1
  25. package/dist/coValues/group.d.ts +4 -1
  26. package/dist/coValues/group.d.ts.map +1 -1
  27. package/dist/coValues/group.js +15 -1
  28. package/dist/coValues/group.js.map +1 -1
  29. package/dist/config.d.ts +8 -0
  30. package/dist/config.d.ts.map +1 -1
  31. package/dist/config.js +14 -0
  32. package/dist/config.js.map +1 -1
  33. package/dist/exports.d.ts +9 -1
  34. package/dist/exports.d.ts.map +1 -1
  35. package/dist/exports.js +5 -1
  36. package/dist/exports.js.map +1 -1
  37. package/dist/localNode.d.ts +7 -3
  38. package/dist/localNode.d.ts.map +1 -1
  39. package/dist/localNode.js +13 -5
  40. package/dist/localNode.js.map +1 -1
  41. package/dist/permissions.d.ts +1 -0
  42. package/dist/permissions.d.ts.map +1 -1
  43. package/dist/queue/LinkedList.d.ts +2 -0
  44. package/dist/queue/LinkedList.d.ts.map +1 -1
  45. package/dist/queue/LinkedList.js +7 -0
  46. package/dist/queue/LinkedList.js.map +1 -1
  47. package/dist/queue/OutgoingLoadQueue.d.ts +4 -1
  48. package/dist/queue/OutgoingLoadQueue.d.ts.map +1 -1
  49. package/dist/queue/OutgoingLoadQueue.js +41 -13
  50. package/dist/queue/OutgoingLoadQueue.js.map +1 -1
  51. package/dist/queue/PriorityBasedMessageQueue.d.ts +1 -0
  52. package/dist/queue/PriorityBasedMessageQueue.d.ts.map +1 -1
  53. package/dist/queue/PriorityBasedMessageQueue.js +11 -1
  54. package/dist/queue/PriorityBasedMessageQueue.js.map +1 -1
  55. package/dist/storage/knownState.d.ts +2 -0
  56. package/dist/storage/knownState.d.ts.map +1 -1
  57. package/dist/storage/knownState.js +11 -0
  58. package/dist/storage/knownState.js.map +1 -1
  59. package/dist/storage/sqlite/client.d.ts +10 -1
  60. package/dist/storage/sqlite/client.d.ts.map +1 -1
  61. package/dist/storage/sqlite/client.js +84 -0
  62. package/dist/storage/sqlite/client.js.map +1 -1
  63. package/dist/storage/sqlite/sqliteMigrations.d.ts.map +1 -1
  64. package/dist/storage/sqlite/sqliteMigrations.js +11 -0
  65. package/dist/storage/sqlite/sqliteMigrations.js.map +1 -1
  66. package/dist/storage/sqliteAsync/client.d.ts +10 -1
  67. package/dist/storage/sqliteAsync/client.d.ts.map +1 -1
  68. package/dist/storage/sqliteAsync/client.js +86 -0
  69. package/dist/storage/sqliteAsync/client.js.map +1 -1
  70. package/dist/storage/storageAsync.d.ts +9 -2
  71. package/dist/storage/storageAsync.d.ts.map +1 -1
  72. package/dist/storage/storageAsync.js +19 -0
  73. package/dist/storage/storageAsync.js.map +1 -1
  74. package/dist/storage/storageSync.d.ts +9 -2
  75. package/dist/storage/storageSync.d.ts.map +1 -1
  76. package/dist/storage/storageSync.js +20 -13
  77. package/dist/storage/storageSync.js.map +1 -1
  78. package/dist/storage/types.d.ts +64 -0
  79. package/dist/storage/types.d.ts.map +1 -1
  80. package/dist/storage/types.js.map +1 -1
  81. package/dist/sync.d.ts +53 -2
  82. package/dist/sync.d.ts.map +1 -1
  83. package/dist/sync.js +300 -44
  84. package/dist/sync.js.map +1 -1
  85. package/dist/tests/OngoingStorageReconciliationTracker.test.d.ts +2 -0
  86. package/dist/tests/OngoingStorageReconciliationTracker.test.d.ts.map +1 -0
  87. package/dist/tests/OngoingStorageReconciliationTracker.test.js +60 -0
  88. package/dist/tests/OngoingStorageReconciliationTracker.test.js.map +1 -0
  89. package/dist/tests/OutgoingLoadQueue.test.js +137 -39
  90. package/dist/tests/OutgoingLoadQueue.test.js.map +1 -1
  91. package/dist/tests/SQLiteClientAsync.test.js +1 -1
  92. package/dist/tests/SQLiteClientAsync.test.js.map +1 -1
  93. package/dist/tests/StorageApiAsync.test.js +138 -0
  94. package/dist/tests/StorageApiAsync.test.js.map +1 -1
  95. package/dist/tests/StorageApiSync.test.js +154 -0
  96. package/dist/tests/StorageApiSync.test.js.map +1 -1
  97. package/dist/tests/StorageReconciliationAckTracker.test.d.ts +2 -0
  98. package/dist/tests/StorageReconciliationAckTracker.test.d.ts.map +1 -0
  99. package/dist/tests/StorageReconciliationAckTracker.test.js +74 -0
  100. package/dist/tests/StorageReconciliationAckTracker.test.js.map +1 -0
  101. package/dist/tests/SyncStateManager.test.js +18 -0
  102. package/dist/tests/SyncStateManager.test.js.map +1 -1
  103. package/dist/tests/coList.test.js +112 -1
  104. package/dist/tests/coList.test.js.map +1 -1
  105. package/dist/tests/coValueCore.loadFromStorage.test.js +36 -0
  106. package/dist/tests/coValueCore.loadFromStorage.test.js.map +1 -1
  107. package/dist/tests/group.test.js +44 -0
  108. package/dist/tests/group.test.js.map +1 -1
  109. package/dist/tests/knownState.lazyLoading.test.js +6 -0
  110. package/dist/tests/knownState.lazyLoading.test.js.map +1 -1
  111. package/dist/tests/messagesTestUtils.d.ts.map +1 -1
  112. package/dist/tests/messagesTestUtils.js +4 -0
  113. package/dist/tests/messagesTestUtils.js.map +1 -1
  114. package/dist/tests/sync.concurrentLoad.test.js +333 -1
  115. package/dist/tests/sync.concurrentLoad.test.js.map +1 -1
  116. package/dist/tests/sync.garbageCollection.test.js +4 -0
  117. package/dist/tests/sync.garbageCollection.test.js.map +1 -1
  118. package/dist/tests/sync.load.test.js +19 -0
  119. package/dist/tests/sync.load.test.js.map +1 -1
  120. package/dist/tests/sync.mesh.test.js +1 -0
  121. package/dist/tests/sync.mesh.test.js.map +1 -1
  122. package/dist/tests/sync.multipleServers.test.js +41 -3
  123. package/dist/tests/sync.multipleServers.test.js.map +1 -1
  124. package/dist/tests/sync.storage.test.js +2 -0
  125. package/dist/tests/sync.storage.test.js.map +1 -1
  126. package/dist/tests/sync.storageAsync.test.js +1 -0
  127. package/dist/tests/sync.storageAsync.test.js.map +1 -1
  128. package/dist/tests/sync.storageReconciliation.test.d.ts +2 -0
  129. package/dist/tests/sync.storageReconciliation.test.d.ts.map +1 -0
  130. package/dist/tests/sync.storageReconciliation.test.js +502 -0
  131. package/dist/tests/sync.storageReconciliation.test.js.map +1 -0
  132. package/dist/tests/testUtils.d.ts +1 -0
  133. package/dist/tests/testUtils.d.ts.map +1 -1
  134. package/dist/tests/testUtils.js +3 -2
  135. package/dist/tests/testUtils.js.map +1 -1
  136. package/package.json +4 -4
  137. package/src/OngoingStorageReconciliationTracker.ts +97 -0
  138. package/src/PeerState.ts +10 -3
  139. package/src/StorageReconciliationAckTracker.ts +83 -0
  140. package/src/SyncStateManager.ts +3 -3
  141. package/src/coValueCore/coValueCore.ts +47 -16
  142. package/src/coValues/coList.ts +23 -0
  143. package/src/coValues/group.ts +18 -0
  144. package/src/config.ts +18 -0
  145. package/src/exports.ts +8 -0
  146. package/src/localNode.ts +18 -0
  147. package/src/permissions.ts +1 -1
  148. package/src/queue/LinkedList.ts +10 -0
  149. package/src/queue/OutgoingLoadQueue.ts +57 -15
  150. package/src/queue/PriorityBasedMessageQueue.ts +15 -1
  151. package/src/storage/knownState.ts +14 -0
  152. package/src/storage/sqlite/client.ts +128 -0
  153. package/src/storage/sqlite/sqliteMigrations.ts +11 -0
  154. package/src/storage/sqliteAsync/client.ts +139 -0
  155. package/src/storage/storageAsync.ts +37 -0
  156. package/src/storage/storageSync.ts +41 -16
  157. package/src/storage/types.ts +110 -0
  158. package/src/sync.ts +359 -14
  159. package/src/tests/OngoingStorageReconciliationTracker.test.ts +85 -0
  160. package/src/tests/OutgoingLoadQueue.test.ts +226 -59
  161. package/src/tests/SQLiteClientAsync.test.ts +1 -1
  162. package/src/tests/StorageApiAsync.test.ts +161 -1
  163. package/src/tests/StorageApiSync.test.ts +176 -0
  164. package/src/tests/StorageReconciliationAckTracker.test.ts +99 -0
  165. package/src/tests/SyncStateManager.test.ts +25 -0
  166. package/src/tests/coList.test.ts +138 -0
  167. package/src/tests/coValueCore.loadFromStorage.test.ts +72 -1
  168. package/src/tests/group.test.ts +87 -0
  169. package/src/tests/knownState.lazyLoading.test.ts +36 -1
  170. package/src/tests/messagesTestUtils.ts +4 -0
  171. package/src/tests/sync.concurrentLoad.test.ts +491 -0
  172. package/src/tests/sync.garbageCollection.test.ts +4 -0
  173. package/src/tests/sync.load.test.ts +26 -0
  174. package/src/tests/sync.mesh.test.ts +1 -0
  175. package/src/tests/sync.multipleServers.test.ts +60 -2
  176. package/src/tests/sync.storage.test.ts +2 -0
  177. package/src/tests/sync.storageAsync.test.ts +1 -0
  178. package/src/tests/sync.storageReconciliation.test.ts +696 -0
  179. package/src/tests/testUtils.ts +10 -1
@@ -1,16 +1,18 @@
1
1
  import { afterEach, beforeEach, describe, expect, test, vi } from "vitest";
2
- import { CO_VALUE_LOADING_CONFIG, setMaxInFlightLoadsPerPeer, } from "../config.js";
2
+ import { CO_VALUE_LOADING_CONFIG, GARBAGE_COLLECTOR_CONFIG, setGarbageCollectorMaxAge, setMaxInFlightLoadsPerPeer, } from "../config.js";
3
3
  import { blockMessageTypeOnOutgoingPeer, fillCoMapWithLargeData, loadCoValueOrFail, importContentIntoNode, setupTestNode, SyncMessagesLog, TEST_NODE_CONFIG, waitFor, } from "./testUtils.js";
4
4
  let jazzCloud;
5
5
  // Store original config values
6
6
  let originalMaxInFlightLoads;
7
7
  let originalTimeout;
8
+ let originalGarbageCollectorMaxAge;
8
9
  beforeEach(async () => {
9
10
  // We want to simulate a real world communication that happens asynchronously
10
11
  TEST_NODE_CONFIG.withAsyncPeers = true;
11
12
  originalMaxInFlightLoads =
12
13
  CO_VALUE_LOADING_CONFIG.MAX_IN_FLIGHT_LOADS_PER_PEER;
13
14
  originalTimeout = CO_VALUE_LOADING_CONFIG.TIMEOUT;
15
+ originalGarbageCollectorMaxAge = GARBAGE_COLLECTOR_CONFIG.MAX_AGE;
14
16
  SyncMessagesLog.clear();
15
17
  jazzCloud = setupTestNode({ isSyncServer: true });
16
18
  });
@@ -18,6 +20,7 @@ afterEach(() => {
18
20
  // Restore original config
19
21
  setMaxInFlightLoadsPerPeer(originalMaxInFlightLoads);
20
22
  CO_VALUE_LOADING_CONFIG.TIMEOUT = originalTimeout;
23
+ setGarbageCollectorMaxAge(originalGarbageCollectorMaxAge);
21
24
  vi.useRealTimers();
22
25
  });
23
26
  describe("concurrent load", () => {
@@ -342,6 +345,65 @@ describe("concurrent load", () => {
342
345
  ]
343
346
  `);
344
347
  });
348
+ test("should forward client LOAD to core even when edge is at concurrency limit", async () => {
349
+ setMaxInFlightLoadsPerPeer(1);
350
+ CO_VALUE_LOADING_CONFIG.TIMEOUT = 60000;
351
+ const core = jazzCloud;
352
+ const edge = setupTestNode({ connected: false });
353
+ const { peerOnServer: edgePeerOnCore, peerState: corePeerOnEdge } = edge.connectToSyncServer({
354
+ ourName: "edge",
355
+ syncServerName: "core",
356
+ syncServer: core.node,
357
+ persistent: true,
358
+ });
359
+ const client = setupTestNode({ connected: false });
360
+ client.connectToSyncServer({
361
+ ourName: "client",
362
+ syncServerName: "edge",
363
+ syncServer: edge.node,
364
+ });
365
+ // Create two CoValues on core so edge has to forward LOADs to core.
366
+ const group = core.node.createGroup();
367
+ const map1 = group.createMap();
368
+ const map2 = group.createMap();
369
+ map1.set("key", "value1", "trusting");
370
+ map2.set("key", "value2", "trusting");
371
+ // Keep the first edge->core load in-flight to saturate the concurrency limit.
372
+ const blocker = blockMessageTypeOnOutgoingPeer(edgePeerOnCore, "content", {});
373
+ const edgeLoadPromise = edge.node.loadCoValueCore(map1.id);
374
+ await waitFor(() => {
375
+ const simplified = SyncMessagesLog.getMessages({
376
+ Group: group.core,
377
+ Map1: map1.core,
378
+ Map2: map2.core,
379
+ });
380
+ return simplified.some((m) => m === "edge -> core | LOAD Map1 sessions: empty");
381
+ });
382
+ // Ensure the edge->core peer is already at its concurrency limit (1 in-flight load).
383
+ // @ts-expect-error loadQueue is private
384
+ expect(corePeerOnEdge.loadQueue.inFlightCount).toBe(1);
385
+ SyncMessagesLog.clear();
386
+ // Now the client asks the edge for map2. Edge must forward the LOAD to core
387
+ // even though it already has an in-flight load to core and the limit is 1.
388
+ const clientLoadPromise = client.node.loadCoValueCore(map2.id);
389
+ await waitFor(() => {
390
+ const simplified = SyncMessagesLog.getMessages({
391
+ Group: group.core,
392
+ Map1: map1.core,
393
+ Map2: map2.core,
394
+ });
395
+ expect(simplified).toContain("edge -> core | LOAD Map2 sessions: empty");
396
+ return true;
397
+ });
398
+ blocker.unblock();
399
+ blocker.sendBlockedMessages();
400
+ const [map1OnEdge, map2OnClient] = await Promise.all([
401
+ edgeLoadPromise,
402
+ clientLoadPromise,
403
+ ]);
404
+ expect(map1OnEdge.isAvailable()).toBe(true);
405
+ expect(map2OnClient.isAvailable()).toBe(true);
406
+ });
345
407
  test("should keep load slot occupied while streaming large CoValues", async () => {
346
408
  setMaxInFlightLoadsPerPeer(1);
347
409
  const client = setupTestNode({
@@ -477,5 +539,275 @@ describe("concurrent load", () => {
477
539
  ]
478
540
  `);
479
541
  });
542
+ test("should consider garbageCollected load requests processed when server replies with KNOWN", async () => {
543
+ setMaxInFlightLoadsPerPeer(1);
544
+ setGarbageCollectorMaxAge(-1);
545
+ const client = setupTestNode({
546
+ connected: false,
547
+ });
548
+ client.addStorage({ ourName: "client" });
549
+ client.node.enableGarbageCollector();
550
+ const group = client.node.createGroup();
551
+ const map1 = group.createMap();
552
+ const map2 = group.createMap();
553
+ map1.set("key", "value1", "trusting");
554
+ map2.set("key", "value2", "trusting");
555
+ const { peerState } = client.connectToSyncServer();
556
+ await client.node.syncManager.waitForAllCoValuesSync();
557
+ // Disconnect and GC so the node keeps only garbageCollected shells with cached knownState.
558
+ peerState.gracefulShutdown();
559
+ client.node.garbageCollector?.collect();
560
+ client.node.garbageCollector?.collect();
561
+ const gcGroup = client.node.getCoValue(group.id);
562
+ const gcMap1 = client.node.getCoValue(map1.id);
563
+ const gcMap2 = client.node.getCoValue(map2.id);
564
+ expect(gcGroup.loadingState).toBe("garbageCollected");
565
+ expect(gcMap1.loadingState).toBe("garbageCollected");
566
+ expect(gcMap2.loadingState).toBe("garbageCollected");
567
+ SyncMessagesLog.clear();
568
+ client.connectToSyncServer();
569
+ await waitFor(() => {
570
+ const messages = SyncMessagesLog.getMessages({
571
+ Group: gcGroup,
572
+ Map1: gcMap1,
573
+ Map2: gcMap2,
574
+ });
575
+ expect(messages).toMatchInlineSnapshot(`
576
+ [
577
+ "client -> server | LOAD Group sessions: header/4",
578
+ "server -> client | KNOWN Group sessions: header/4",
579
+ "client -> server | LOAD Map1 sessions: header/1",
580
+ "server -> client | KNOWN Map1 sessions: header/1",
581
+ "client -> server | LOAD Map2 sessions: header/1",
582
+ "server -> client | KNOWN Map2 sessions: header/1",
583
+ ]
584
+ `);
585
+ return true;
586
+ });
587
+ // Create a new group to test that the load queue is now empty
588
+ const groupToTestTheLoadQueue = await loadCoValueOrFail(client.node, jazzCloud.node.createGroup().id);
589
+ expect(groupToTestTheLoadQueue.core.isAvailable()).toBe(true);
590
+ });
591
+ test("should load garbageCollected CoValues when receiving KNOWN from a peer", async () => {
592
+ setGarbageCollectorMaxAge(-1);
593
+ const client = setupTestNode({
594
+ connected: false,
595
+ });
596
+ client.addStorage({ ourName: "client" });
597
+ client.node.enableGarbageCollector();
598
+ const group = client.node.createGroup();
599
+ const map = group.createMap();
600
+ map.set("key", "value", "trusting");
601
+ client.node.garbageCollector?.collect();
602
+ client.node.garbageCollector?.collect();
603
+ const gcMap = client.node.getCoValue(map.id);
604
+ expect(gcMap.loadingState).toBe("garbageCollected");
605
+ const { peerState } = client.connectToSyncServer({
606
+ skipReconciliation: true,
607
+ });
608
+ const loadSpy = vi.spyOn(client.node, "loadCoValueCore");
609
+ client.node.syncManager.handleKnownState({
610
+ action: "known",
611
+ id: map.id,
612
+ header: false,
613
+ sessions: {},
614
+ }, peerState);
615
+ expect(loadSpy).toHaveBeenCalledWith(map.id);
616
+ loadSpy.mockRestore();
617
+ });
618
+ test("should consider onlyKnownState load requests processed when server replies with KNOWN", async () => {
619
+ setMaxInFlightLoadsPerPeer(1);
620
+ const client = setupTestNode({
621
+ connected: false,
622
+ });
623
+ const { storage } = client.addStorage({ ourName: "client" });
624
+ const group = client.node.createGroup();
625
+ const map1 = group.createMap();
626
+ const map2 = group.createMap();
627
+ map1.set("key", "value1", "trusting");
628
+ map2.set("key", "value2", "trusting");
629
+ const { peerState } = client.connectToSyncServer();
630
+ await client.node.syncManager.waitForAllCoValuesSync();
631
+ peerState.gracefulShutdown();
632
+ await client.restart();
633
+ client.addStorage({ storage });
634
+ const onlyKnownGroup = client.node.getCoValue(group.id);
635
+ const onlyKnownMap1 = client.node.getCoValue(map1.id);
636
+ const onlyKnownMap2 = client.node.getCoValue(map2.id);
637
+ await Promise.all([
638
+ new Promise((resolve) => onlyKnownGroup.getKnownStateFromStorage(() => resolve())),
639
+ new Promise((resolve) => onlyKnownMap1.getKnownStateFromStorage(() => resolve())),
640
+ new Promise((resolve) => onlyKnownMap2.getKnownStateFromStorage(() => resolve())),
641
+ ]);
642
+ expect(onlyKnownGroup.loadingState).toBe("onlyKnownState");
643
+ expect(onlyKnownMap1.loadingState).toBe("onlyKnownState");
644
+ expect(onlyKnownMap2.loadingState).toBe("onlyKnownState");
645
+ SyncMessagesLog.clear();
646
+ client.connectToSyncServer();
647
+ await waitFor(() => {
648
+ const messages = SyncMessagesLog.getMessages({
649
+ Group: onlyKnownGroup,
650
+ Map1: onlyKnownMap1,
651
+ Map2: onlyKnownMap2,
652
+ });
653
+ expect(messages).toMatchInlineSnapshot(`
654
+ [
655
+ "client -> server | LOAD Group sessions: header/4",
656
+ "server -> client | KNOWN Group sessions: header/4",
657
+ "client -> server | LOAD Map1 sessions: header/1",
658
+ "server -> client | KNOWN Map1 sessions: header/1",
659
+ "client -> server | LOAD Map2 sessions: header/1",
660
+ "server -> client | KNOWN Map2 sessions: header/1",
661
+ ]
662
+ `);
663
+ return true;
664
+ });
665
+ // Create a new group to test that the load queue is now empty
666
+ const groupToTestTheLoadQueue = await loadCoValueOrFail(client.node, jazzCloud.node.createGroup().id);
667
+ expect(groupToTestTheLoadQueue.core.isAvailable()).toBe(true);
668
+ });
669
+ test("should keep onlyKnownState while peer load is pending and KNOWN replies arrive", async () => {
670
+ const client = setupTestNode({
671
+ connected: false,
672
+ });
673
+ const { storage } = client.addStorage({ ourName: "client" });
674
+ const group = client.node.createGroup();
675
+ const map = group.createMap();
676
+ map.set("key", "value", "trusting");
677
+ const initialConnection = client.connectToSyncServer();
678
+ await client.node.syncManager.waitForAllCoValuesSync();
679
+ initialConnection.peerState.gracefulShutdown();
680
+ await client.restart();
681
+ client.addStorage({ storage });
682
+ const onlyKnownMap = client.node.getCoValue(map.id);
683
+ await new Promise((resolve) => onlyKnownMap.getKnownStateFromStorage(() => resolve()));
684
+ expect(onlyKnownMap.loadingState).toBe("onlyKnownState");
685
+ // Force explicit loads to use peers (not local full-content storage).
686
+ vi.spyOn(storage, "load").mockImplementation(async (_id, _cb, done) => done(false));
687
+ const { peerState } = client.connectToSyncServer({
688
+ skipReconciliation: true,
689
+ });
690
+ SyncMessagesLog.clear();
691
+ onlyKnownMap.load([peerState]);
692
+ await waitFor(() => {
693
+ const messages = SyncMessagesLog.getMessages({
694
+ Group: client.node.getCoValue(group.id),
695
+ Map: onlyKnownMap,
696
+ });
697
+ expect(messages).toContain("client -> server | LOAD Map sessions: header/1");
698
+ expect(messages).toContain("server -> client | KNOWN Map sessions: header/1");
699
+ return true;
700
+ });
701
+ expect(onlyKnownMap.getLoadingStateForPeer(peerState.id)).toBe("pending");
702
+ expect(onlyKnownMap.loadingState).toBe("onlyKnownState");
703
+ });
704
+ /**
705
+ * This test covers the case where the client is streaming a value from storage and since the value is already on the server
706
+ * the server sends only a KNOWN message.
707
+ *
708
+ * Without a specialized logic the value results inStreaming and the "load" would be considered in-flight indefinitely.
709
+ */
710
+ test("should process queued loads when KNOWN arrives while first CoValue is streaming from storage", async () => {
711
+ setMaxInFlightLoadsPerPeer(1);
712
+ const client = setupTestNode({
713
+ connected: true,
714
+ });
715
+ const { storage } = await client.addAsyncStorage({ ourName: "client" });
716
+ const group = jazzCloud.node.createGroup();
717
+ const streamingMap = group.createMap();
718
+ fillCoMapWithLargeData(streamingMap);
719
+ const queuedMap = group.createMap();
720
+ queuedMap.set("key", "value", "trusting");
721
+ const mapOnClient = await loadCoValueOrFail(client.node, streamingMap.id);
722
+ await mapOnClient.core.waitForFullStreaming();
723
+ await client.restart();
724
+ client.addStorage({ storage });
725
+ client.connectToSyncServer();
726
+ SyncMessagesLog.clear();
727
+ const originalLoad = storage.load.bind(storage);
728
+ let firstChunk = true;
729
+ const pausedOps = [];
730
+ vi.spyOn(storage, "load").mockImplementation(async (id, callback, done) => {
731
+ if (id !== streamingMap.id) {
732
+ return originalLoad(id, callback, done);
733
+ }
734
+ return originalLoad(id, (chunk) => {
735
+ if (firstChunk) {
736
+ firstChunk = false;
737
+ callback(chunk);
738
+ }
739
+ else {
740
+ pausedOps.push(() => callback(chunk));
741
+ }
742
+ }, (found) => {
743
+ pausedOps.push(() => done(found));
744
+ });
745
+ });
746
+ const streamingMapOnClientPromise = client.node.loadCoValueCore(streamingMap.id);
747
+ await waitFor(() => {
748
+ expect(firstChunk).toBe(false);
749
+ });
750
+ const queuedMapOnClient = await client.node.loadCoValueCore(queuedMap.id);
751
+ expect(queuedMapOnClient.isAvailable()).toBe(true);
752
+ for (const op of pausedOps) {
753
+ op();
754
+ }
755
+ const streamingMapOnClient = await streamingMapOnClientPromise;
756
+ expect(streamingMapOnClient.isStreaming()).toBe(false);
757
+ });
758
+ test("should process queued loads when CoValue instance changes while in-flight", async () => {
759
+ setMaxInFlightLoadsPerPeer(1);
760
+ const client = setupTestNode({
761
+ connected: false,
762
+ });
763
+ const { storage } = client.addStorage({ ourName: "client" });
764
+ const { peerOnServer } = client.connectToSyncServer();
765
+ const group = jazzCloud.node.createGroup();
766
+ const map1 = group.createMap();
767
+ const map2 = group.createMap();
768
+ map1.set("key", "value1", "trusting");
769
+ map2.set("key", "value2", "trusting");
770
+ // Prime map1 locally so GC leaves a shell with knownState.
771
+ await loadCoValueOrFail(client.node, map1.id);
772
+ // Force load attempts to go through peers instead of satisfying from storage.
773
+ vi.spyOn(storage, "load").mockImplementation(async (_id, _cb, done) => done(false));
774
+ const unmounted = client.node.internalUnmountCoValue(map1.id);
775
+ expect(unmounted).toBe(true);
776
+ expect(client.node.getCoValue(map1.id).loadingState).toBe("garbageCollected");
777
+ const blockedKnown = blockMessageTypeOnOutgoingPeer(peerOnServer, "known", {
778
+ id: map1.id,
779
+ });
780
+ SyncMessagesLog.clear();
781
+ const map1LoadPromise = client.node.loadCoValueCore(map1.id);
782
+ const map2LoadPromise = client.node.loadCoValueCore(map2.id);
783
+ await waitFor(() => {
784
+ expect(SyncMessagesLog.messages.some((m) => m.msg.action === "load" && m.msg.id === map1.id)).toBe(true);
785
+ return true;
786
+ });
787
+ // Queue is saturated by map1 while KNOWN(Map1) is blocked.
788
+ expect(SyncMessagesLog.messages.some((m) => m.msg.action === "load" && m.msg.id === map2.id)).toBe(false);
789
+ // Replace the in-flight CoValue instance with a new one (same id).
790
+ const oldMap1Core = client.node.getCoValue(map1.id);
791
+ const oldMap1KnownState = oldMap1Core.knownState();
792
+ client.node.internalDeleteCoValue(map1.id);
793
+ const newMap1Core = client.node.getCoValue(map1.id);
794
+ expect(newMap1Core).not.toBe(oldMap1Core);
795
+ newMap1Core.setGarbageCollectedState(oldMap1KnownState);
796
+ expect(newMap1Core.loadingState).toBe("garbageCollected");
797
+ // Deliver KNOWN(Map1). With ID-based tracking, this should free the slot and send LOAD(Map2).
798
+ blockedKnown.unblock();
799
+ blockedKnown.sendBlockedMessages();
800
+ await waitFor(() => {
801
+ expect(SyncMessagesLog.messages.some((m) => m.msg.action === "known" && m.msg.id === map1.id)).toBe(true);
802
+ expect(SyncMessagesLog.messages.some((m) => m.msg.action === "load" && m.msg.id === map2.id)).toBe(true);
803
+ return true;
804
+ });
805
+ // The critical behavior is that map2 starts loading after KNOWN(map1).
806
+ const map2OnClient = await loadCoValueOrFail(client.node, map2.id);
807
+ expect(map2OnClient.get("key")).toBe("value2");
808
+ // Avoid unhandled promise rejection in case these earlier promises resolve later.
809
+ void map1LoadPromise;
810
+ void map2LoadPromise;
811
+ });
480
812
  });
481
813
  //# sourceMappingURL=sync.concurrentLoad.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sync.concurrentLoad.test.js","sourceRoot":"","sources":["../../src/tests/sync.concurrentLoad.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync.concurrentLoad.test.js","sourceRoot":"","sources":["../../src/tests/sync.concurrentLoad.test.ts"],"names":[],"mappings":"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"}
@@ -43,6 +43,7 @@ describe("sync after the garbage collector has run", () => {
43
43
  "storage -> server | CONTENT Map header: true new: After: 0 New: 1",
44
44
  "server -> client | CONTENT Group header: true new: After: 0 New: 4",
45
45
  "server -> client | CONTENT Map header: true new: After: 0 New: 1",
46
+ "server -> client | KNOWN Map sessions: header/1",
46
47
  "client -> server | KNOWN Group sessions: header/4",
47
48
  "client -> server | KNOWN Map sessions: header/1",
48
49
  ]
@@ -74,6 +75,7 @@ describe("sync after the garbage collector has run", () => {
74
75
  "storage -> server | CONTENT Map header: true new: After: 0 New: 1",
75
76
  "server -> client | CONTENT Group header: true new: After: 0 New: 4",
76
77
  "server -> client | CONTENT Map header: true new: After: 0 New: 1",
78
+ "server -> client | KNOWN Map sessions: header/1",
77
79
  "client -> server | KNOWN Group sessions: header/4",
78
80
  "client -> server | KNOWN Map sessions: header/1",
79
81
  ]
@@ -150,6 +152,8 @@ describe("sync after the garbage collector has run", () => {
150
152
  "server -> storage | CONTENT Group header: true new: After: 0 New: 4",
151
153
  "server -> client | KNOWN Map sessions: header/1",
152
154
  "server -> storage | CONTENT Map header: true new: After: 0 New: 1",
155
+ "client -> storage | LOAD Map sessions: empty",
156
+ "storage -> client | CONTENT Map header: true new: After: 0 New: 1",
153
157
  ]
154
158
  `);
155
159
  });
@@ -1 +1 @@
1
- {"version":3,"file":"sync.garbageCollection.test.js","sourceRoot":"","sources":["../../src/tests/sync.garbageCollection.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync.garbageCollection.test.js","sourceRoot":"","sources":["../../src/tests/sync.garbageCollection.test.ts"],"names":[],"mappings":"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"}
@@ -477,6 +477,24 @@ describe("loading coValues from server", () => {
477
477
  ]
478
478
  `);
479
479
  });
480
+ test("should mark closed persistent peers as unavailable after grace timeout", async () => {
481
+ vi.useFakeTimers();
482
+ const client = setupTestNode();
483
+ const connection = client.connectToSyncServer({
484
+ persistent: true,
485
+ });
486
+ connection.peerState.gracefulShutdown();
487
+ const group = jazzCloud.node.createGroup();
488
+ group.addMember("everyone", "writer");
489
+ const map = group.createMap({
490
+ test: "value",
491
+ });
492
+ const loadPromise = client.node.load(map.id, true);
493
+ await vi.advanceTimersByTimeAsync(CO_VALUE_LOADING_CONFIG.TIMEOUT + 10);
494
+ const coValue = await loadPromise;
495
+ expect(coValue).toBe("unavailable");
496
+ vi.useRealTimers();
497
+ });
480
498
  test("should handle reconnections in the middle of a load with a persistent peer", async () => {
481
499
  TEST_NODE_CONFIG.withAsyncPeers = false; // To avoid flakiness
482
500
  const client = setupTestNode();
@@ -1155,6 +1173,7 @@ describe("lazy storage load optimization", () => {
1155
1173
  "storage -> server | CONTENT Map header: true new: After: 0 New: 1",
1156
1174
  "server -> client | CONTENT Group header: true new: After: 0 New: 4",
1157
1175
  "server -> client | CONTENT Map header: true new: After: 0 New: 1",
1176
+ "server -> client | KNOWN Map sessions: header/1",
1158
1177
  "client -> server | KNOWN Group sessions: header/4",
1159
1178
  "client -> server | KNOWN Map sessions: header/1",
1160
1179
  ]