cojson 0.19.19 → 0.19.21

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 (140) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/dist/coValueCore/coValueCore.d.ts +9 -0
  3. package/dist/coValueCore/coValueCore.d.ts.map +1 -1
  4. package/dist/coValueCore/coValueCore.js +21 -0
  5. package/dist/coValueCore/coValueCore.js.map +1 -1
  6. package/dist/coValues/account.d.ts.map +1 -1
  7. package/dist/coValues/account.js +10 -10
  8. package/dist/coValues/account.js.map +1 -1
  9. package/dist/config.d.ts +6 -0
  10. package/dist/config.d.ts.map +1 -1
  11. package/dist/config.js +10 -0
  12. package/dist/config.js.map +1 -1
  13. package/dist/exports.d.ts +7 -1
  14. package/dist/exports.d.ts.map +1 -1
  15. package/dist/exports.js +4 -1
  16. package/dist/exports.js.map +1 -1
  17. package/dist/ids.d.ts +1 -1
  18. package/dist/ids.d.ts.map +1 -1
  19. package/dist/ids.js.map +1 -1
  20. package/dist/knownState.d.ts +5 -0
  21. package/dist/knownState.d.ts.map +1 -1
  22. package/dist/knownState.js +15 -0
  23. package/dist/knownState.js.map +1 -1
  24. package/dist/localNode.d.ts.map +1 -1
  25. package/dist/localNode.js +8 -2
  26. package/dist/localNode.js.map +1 -1
  27. package/dist/queue/IncomingMessagesQueue.d.ts +6 -7
  28. package/dist/queue/IncomingMessagesQueue.d.ts.map +1 -1
  29. package/dist/queue/IncomingMessagesQueue.js +7 -30
  30. package/dist/queue/IncomingMessagesQueue.js.map +1 -1
  31. package/dist/queue/LinkedList.d.ts +1 -1
  32. package/dist/queue/LinkedList.d.ts.map +1 -1
  33. package/dist/queue/LinkedList.js.map +1 -1
  34. package/dist/queue/StorageStreamingQueue.d.ts +43 -0
  35. package/dist/queue/StorageStreamingQueue.d.ts.map +1 -0
  36. package/dist/queue/StorageStreamingQueue.js +70 -0
  37. package/dist/queue/StorageStreamingQueue.js.map +1 -0
  38. package/dist/storage/knownState.d.ts +5 -0
  39. package/dist/storage/knownState.d.ts.map +1 -1
  40. package/dist/storage/knownState.js +11 -0
  41. package/dist/storage/knownState.js.map +1 -1
  42. package/dist/storage/sqlite/client.d.ts +2 -0
  43. package/dist/storage/sqlite/client.d.ts.map +1 -1
  44. package/dist/storage/sqlite/client.js +18 -0
  45. package/dist/storage/sqlite/client.js.map +1 -1
  46. package/dist/storage/sqliteAsync/client.d.ts +2 -0
  47. package/dist/storage/sqliteAsync/client.d.ts.map +1 -1
  48. package/dist/storage/sqliteAsync/client.js +20 -0
  49. package/dist/storage/sqliteAsync/client.js.map +1 -1
  50. package/dist/storage/storageAsync.d.ts +2 -0
  51. package/dist/storage/storageAsync.d.ts.map +1 -1
  52. package/dist/storage/storageAsync.js +40 -0
  53. package/dist/storage/storageAsync.js.map +1 -1
  54. package/dist/storage/storageSync.d.ts +9 -2
  55. package/dist/storage/storageSync.d.ts.map +1 -1
  56. package/dist/storage/storageSync.js +71 -44
  57. package/dist/storage/storageSync.js.map +1 -1
  58. package/dist/storage/types.d.ts +20 -0
  59. package/dist/storage/types.d.ts.map +1 -1
  60. package/dist/sync.d.ts +34 -0
  61. package/dist/sync.d.ts.map +1 -1
  62. package/dist/sync.js +185 -46
  63. package/dist/sync.js.map +1 -1
  64. package/dist/tests/IncomingMessagesQueue.test.js +4 -150
  65. package/dist/tests/IncomingMessagesQueue.test.js.map +1 -1
  66. package/dist/tests/StorageApiAsync.test.js +91 -0
  67. package/dist/tests/StorageApiAsync.test.js.map +1 -1
  68. package/dist/tests/StorageApiSync.test.js +91 -0
  69. package/dist/tests/StorageApiSync.test.js.map +1 -1
  70. package/dist/tests/StorageStreamingQueue.test.d.ts +2 -0
  71. package/dist/tests/StorageStreamingQueue.test.d.ts.map +1 -0
  72. package/dist/tests/StorageStreamingQueue.test.js +213 -0
  73. package/dist/tests/StorageStreamingQueue.test.js.map +1 -0
  74. package/dist/tests/SyncManager.processQueues.test.d.ts +2 -0
  75. package/dist/tests/SyncManager.processQueues.test.d.ts.map +1 -0
  76. package/dist/tests/SyncManager.processQueues.test.js +208 -0
  77. package/dist/tests/SyncManager.processQueues.test.js.map +1 -0
  78. package/dist/tests/coValueCore.loadFromStorage.test.js +1 -0
  79. package/dist/tests/coValueCore.loadFromStorage.test.js.map +1 -1
  80. package/dist/tests/knownState.lazyLoading.test.d.ts +2 -0
  81. package/dist/tests/knownState.lazyLoading.test.d.ts.map +1 -0
  82. package/dist/tests/knownState.lazyLoading.test.js +166 -0
  83. package/dist/tests/knownState.lazyLoading.test.js.map +1 -0
  84. package/dist/tests/messagesTestUtils.d.ts +5 -2
  85. package/dist/tests/messagesTestUtils.d.ts.map +1 -1
  86. package/dist/tests/messagesTestUtils.js +4 -0
  87. package/dist/tests/messagesTestUtils.js.map +1 -1
  88. package/dist/tests/setup.d.ts +2 -0
  89. package/dist/tests/setup.d.ts.map +1 -0
  90. package/dist/tests/setup.js +4 -0
  91. package/dist/tests/setup.js.map +1 -0
  92. package/dist/tests/sync.garbageCollection.test.js.map +1 -1
  93. package/dist/tests/sync.load.test.js +388 -0
  94. package/dist/tests/sync.load.test.js.map +1 -1
  95. package/dist/tests/sync.mesh.test.js +23 -23
  96. package/dist/tests/sync.storage.test.js +176 -20
  97. package/dist/tests/sync.storage.test.js.map +1 -1
  98. package/dist/tests/sync.test.js +1 -1
  99. package/dist/tests/sync.test.js.map +1 -1
  100. package/dist/tests/testStorage.js +36 -0
  101. package/dist/tests/testStorage.js.map +1 -1
  102. package/dist/tests/testUtils.d.ts +16 -4
  103. package/dist/tests/testUtils.d.ts.map +1 -1
  104. package/dist/tests/testUtils.js +2 -2
  105. package/dist/tests/testUtils.js.map +1 -1
  106. package/package.json +4 -4
  107. package/src/coValueCore/coValueCore.ts +26 -0
  108. package/src/coValues/account.ts +12 -14
  109. package/src/config.ts +13 -0
  110. package/src/exports.ts +6 -0
  111. package/src/ids.ts +1 -1
  112. package/src/knownState.ts +24 -0
  113. package/src/localNode.ts +9 -2
  114. package/src/queue/IncomingMessagesQueue.ts +7 -39
  115. package/src/queue/LinkedList.ts +1 -1
  116. package/src/queue/StorageStreamingQueue.ts +96 -0
  117. package/src/storage/knownState.ts +12 -0
  118. package/src/storage/sqlite/client.ts +31 -0
  119. package/src/storage/sqliteAsync/client.ts +35 -0
  120. package/src/storage/storageAsync.ts +51 -0
  121. package/src/storage/storageSync.ts +121 -55
  122. package/src/storage/types.ts +29 -0
  123. package/src/sync.ts +210 -47
  124. package/src/tests/IncomingMessagesQueue.test.ts +4 -206
  125. package/src/tests/StorageApiAsync.test.ts +136 -0
  126. package/src/tests/StorageApiSync.test.ts +132 -0
  127. package/src/tests/StorageStreamingQueue.test.ts +276 -0
  128. package/src/tests/SyncManager.processQueues.test.ts +287 -0
  129. package/src/tests/coValueCore.loadFromStorage.test.ts +3 -0
  130. package/src/tests/knownState.lazyLoading.test.ts +217 -0
  131. package/src/tests/messagesTestUtils.ts +10 -3
  132. package/src/tests/setup.ts +4 -0
  133. package/src/tests/sync.garbageCollection.test.ts +1 -3
  134. package/src/tests/sync.load.test.ts +483 -1
  135. package/src/tests/sync.mesh.test.ts +23 -23
  136. package/src/tests/sync.storage.test.ts +224 -32
  137. package/src/tests/sync.test.ts +1 -9
  138. package/src/tests/testStorage.ts +38 -0
  139. package/src/tests/testUtils.ts +16 -4
  140. package/vitest.config.ts +1 -0
@@ -1077,4 +1077,392 @@ describe("loading coValues from server", () => {
1077
1077
  expect(shardedCoreNode.hasCoValue(group.id)).toBe(false);
1078
1078
  });
1079
1079
  });
1080
+ describe("lazy storage load optimization", () => {
1081
+ test("handleLoad skips full load when peer already has all content", async () => {
1082
+ // Setup server with storage
1083
+ const { storage } = jazzCloud.addStorage({ ourName: "server" });
1084
+ // Create content on server and sync to storage
1085
+ const group = jazzCloud.node.createGroup();
1086
+ const map = group.createMap();
1087
+ map.set("hello", "world", "trusting");
1088
+ await map.core.waitForSync();
1089
+ // Setup client and load the content (client now has everything)
1090
+ const client = setupTestNode({
1091
+ connected: true,
1092
+ });
1093
+ const mapOnClient = await loadCoValueOrFail(client.node, map.id);
1094
+ expect(mapOnClient.get("hello")).toEqual("world");
1095
+ // Disconnect client
1096
+ client.disconnect();
1097
+ // Restart the server to clear memory (keeping storage)
1098
+ // Now the server has no CoValues in memory, only in storage
1099
+ jazzCloud.restart();
1100
+ jazzCloud.node.setStorage(storage);
1101
+ SyncMessagesLog.clear();
1102
+ // Reconnect client - it will send LOAD with its knownState
1103
+ // Server should use LAZY_LOAD to check storage and see peer already has everything
1104
+ client.connectToSyncServer();
1105
+ await client.node.syncManager.waitForAllCoValuesSync();
1106
+ // Verify the flow: LAZY_LOAD checks storage to get knownState,
1107
+ // sees peer already has everything, responds with KNOWN (skips full LOAD)
1108
+ expect(SyncMessagesLog.getMessages({
1109
+ Group: group.core,
1110
+ Map: map.core,
1111
+ })).toMatchInlineSnapshot(`
1112
+ [
1113
+ "client -> server | LOAD Group sessions: header/3",
1114
+ "client -> server | LOAD Map sessions: header/1",
1115
+ "server -> storage | GET_KNOWN_STATE Group",
1116
+ "storage -> server | GET_KNOWN_STATE_RESULT Group sessions: header/3",
1117
+ "server -> client | KNOWN Group sessions: header/3",
1118
+ "server -> storage | GET_KNOWN_STATE Map",
1119
+ "storage -> server | GET_KNOWN_STATE_RESULT Map sessions: header/1",
1120
+ "server -> client | KNOWN Map sessions: header/1",
1121
+ ]
1122
+ `);
1123
+ });
1124
+ test("handleLoad does full load when peer needs content", async () => {
1125
+ // Setup server with storage
1126
+ const { storage } = jazzCloud.addStorage({ ourName: "server" });
1127
+ // Create content on server and sync to storage
1128
+ const group = jazzCloud.node.createGroup();
1129
+ const map = group.createMap();
1130
+ map.set("hello", "world", "trusting");
1131
+ await map.core.waitForSync();
1132
+ // Restart the server to clear memory (keeping storage)
1133
+ jazzCloud.restart();
1134
+ jazzCloud.node.setStorage(storage);
1135
+ SyncMessagesLog.clear();
1136
+ // Setup client without any data
1137
+ const client = setupTestNode({
1138
+ connected: true,
1139
+ });
1140
+ // Client requests a load - server needs to load from storage and send content
1141
+ const mapOnClient = await loadCoValueOrFail(client.node, map.id);
1142
+ expect(mapOnClient.get("hello")).toEqual("world");
1143
+ // Verify the flow:
1144
+ // 1. Client sends LOAD with empty sessions (no header)
1145
+ // 2. Server skips LAZY_LOAD since peer has no content - goes directly to full LOAD
1146
+ // 3. Server sends CONTENT to client
1147
+ expect(SyncMessagesLog.getMessages({
1148
+ Group: group.core,
1149
+ Map: map.core,
1150
+ })).toMatchInlineSnapshot(`
1151
+ [
1152
+ "client -> server | LOAD Map sessions: empty",
1153
+ "server -> storage | LOAD Map sessions: empty",
1154
+ "storage -> server | CONTENT Group header: true new: After: 0 New: 3",
1155
+ "storage -> server | CONTENT Map header: true new: After: 0 New: 1",
1156
+ "server -> client | CONTENT Group header: true new: After: 0 New: 3",
1157
+ "server -> client | CONTENT Map header: true new: After: 0 New: 1",
1158
+ "client -> server | KNOWN Group sessions: header/3",
1159
+ "client -> server | KNOWN Map sessions: header/1",
1160
+ ]
1161
+ `);
1162
+ });
1163
+ test("handleLoad falls back to peers when not in storage", async () => {
1164
+ // Setup server WITHOUT storage
1165
+ // Create content on server (in memory only)
1166
+ const group = jazzCloud.node.createGroup();
1167
+ const map = group.createMap();
1168
+ map.set("hello", "world", "trusting");
1169
+ SyncMessagesLog.clear();
1170
+ // Setup client
1171
+ const client = setupTestNode({
1172
+ connected: true,
1173
+ });
1174
+ // Client requests a load - server should respond from memory
1175
+ const mapOnClient = await loadCoValueOrFail(client.node, map.id);
1176
+ expect(mapOnClient.get("hello")).toEqual("world");
1177
+ // Verify the content was delivered
1178
+ expect(SyncMessagesLog.getMessages({
1179
+ Group: group.core,
1180
+ Map: map.core,
1181
+ })).toMatchInlineSnapshot(`
1182
+ [
1183
+ "client -> server | LOAD Map sessions: empty",
1184
+ "server -> client | CONTENT Group header: true new: After: 0 New: 3",
1185
+ "server -> client | CONTENT Map header: true new: After: 0 New: 1",
1186
+ "client -> server | KNOWN Group sessions: header/3",
1187
+ "client -> server | KNOWN Map sessions: header/1",
1188
+ ]
1189
+ `);
1190
+ });
1191
+ test("handleNewContent loads from storage for garbage-collected CoValues", async () => {
1192
+ // Setup server with storage
1193
+ jazzCloud.addStorage({ ourName: "server" });
1194
+ // Create content on server and sync to storage
1195
+ const group = jazzCloud.node.createGroup();
1196
+ group.addMember("everyone", "writer");
1197
+ const map = group.createMap();
1198
+ map.set("initial", "value", "trusting");
1199
+ await map.core.waitForSync();
1200
+ // Verify storage has the data
1201
+ expect(jazzCloud.node.storage).toBeDefined();
1202
+ // Load the content on a client first to get the knownState
1203
+ const client1 = setupTestNode({
1204
+ connected: true,
1205
+ });
1206
+ const mapOnClient1 = await loadCoValueOrFail(client1.node, map.id);
1207
+ expect(mapOnClient1.get("initial")).toEqual("value");
1208
+ // Now simulate the CoValue being garbage collected from server memory
1209
+ // by removing it and then receiving new content from a different client
1210
+ jazzCloud.node.internalDeleteCoValue(map.id);
1211
+ // Clear messages to track what happens next
1212
+ SyncMessagesLog.clear();
1213
+ // Have client1 make an update - this should trigger handleNewContent
1214
+ // which should load from storage since the CoValue was "garbage collected"
1215
+ mapOnClient1.set("new", "update", "trusting");
1216
+ await waitFor(() => {
1217
+ // The server should have reloaded from storage and processed the update
1218
+ const serverMap = jazzCloud.node.getCoValue(map.id);
1219
+ return serverMap.isAvailable();
1220
+ });
1221
+ // Verify the server has the updated content
1222
+ const serverMap = jazzCloud.node.getCoValue(map.id);
1223
+ expect(serverMap.isAvailable()).toBe(true);
1224
+ // Verify that the server did a full load from storage
1225
+ expect(SyncMessagesLog.getMessages({
1226
+ Group: group.core,
1227
+ Map: map.core,
1228
+ })).toMatchInlineSnapshot(`
1229
+ [
1230
+ "client -> server | CONTENT Map header: false new: After: 0 New: 1",
1231
+ "server -> storage | LOAD Map sessions: empty",
1232
+ "storage -> server | CONTENT Group header: true new: After: 0 New: 5",
1233
+ "storage -> server | CONTENT Map header: true new: After: 0 New: 1",
1234
+ "server -> client | KNOWN Map sessions: header/2",
1235
+ "server -> storage | CONTENT Map header: false new: After: 0 New: 1",
1236
+ ]
1237
+ `);
1238
+ });
1239
+ test("handleNewContent loads large CoValue from storage when garbage-collected", async () => {
1240
+ // Setup server with storage
1241
+ jazzCloud.addStorage({ ourName: "server" });
1242
+ // Create a large map on server and sync to storage
1243
+ const group = jazzCloud.node.createGroup();
1244
+ group.addMember("everyone", "writer");
1245
+ const largeMap = group.createMap();
1246
+ fillCoMapWithLargeData(largeMap);
1247
+ await largeMap.core.waitForSync();
1248
+ // Verify storage has the data
1249
+ expect(jazzCloud.node.storage).toBeDefined();
1250
+ // Load the content on a client first
1251
+ const client1 = setupTestNode({
1252
+ connected: true,
1253
+ });
1254
+ const mapOnClient1 = await loadCoValueOrFail(client1.node, largeMap.id);
1255
+ await mapOnClient1.core.waitForFullStreaming();
1256
+ // Simulate the CoValue being garbage collected from server memory
1257
+ jazzCloud.node.internalDeleteCoValue(largeMap.id);
1258
+ // Clear messages to track what happens next
1259
+ SyncMessagesLog.clear();
1260
+ // Have client1 make an update - this should trigger handleNewContent
1261
+ // which should load from storage (streaming) since the CoValue was "garbage collected"
1262
+ mapOnClient1.set("new", "update", "trusting");
1263
+ await waitFor(() => {
1264
+ // The server should have reloaded from storage and processed the update
1265
+ const serverMap = jazzCloud.node.getCoValue(largeMap.id);
1266
+ return serverMap.isAvailable();
1267
+ });
1268
+ // Verify the server has the updated content
1269
+ const serverMap = jazzCloud.node.getCoValue(largeMap.id);
1270
+ expect(serverMap.isAvailable()).toBe(true);
1271
+ // Verify that the server did a full load from storage (with streaming for large data)
1272
+ expect(SyncMessagesLog.getMessages({
1273
+ Group: group.core,
1274
+ Map: largeMap.core,
1275
+ })).toMatchInlineSnapshot(`
1276
+ [
1277
+ "client -> server | CONTENT Map header: false new: After: 0 New: 1",
1278
+ "server -> storage | LOAD Map sessions: empty",
1279
+ "storage -> server | CONTENT Group header: true new: After: 0 New: 5",
1280
+ "storage -> server | CONTENT Map header: true new: After: 0 New: 73 expectContentUntil: header/201",
1281
+ "server -> client | KNOWN Map sessions: header/74",
1282
+ "server -> storage | CONTENT Map header: false new: After: 0 New: 1",
1283
+ "storage -> server | CONTENT Map header: true new: After: 73 New: 73",
1284
+ "storage -> server | CONTENT Map header: true new: After: 146 New: 54",
1285
+ ]
1286
+ `);
1287
+ });
1288
+ test("handleNewContent loads CoValue from storage when group is large and garbage-collected", async () => {
1289
+ // Setup server with storage
1290
+ jazzCloud.addStorage({ ourName: "server" });
1291
+ // Create a group with large data
1292
+ const group = jazzCloud.node.createGroup();
1293
+ group.addMember("everyone", "writer");
1294
+ // Add large data to the group itself
1295
+ for (let i = 0; i < 200; i++) {
1296
+ const value = Buffer.alloc(1024, `value${i}`).toString("base64");
1297
+ group.set(`key${i}`, value, "trusting");
1298
+ }
1299
+ const map = group.createMap();
1300
+ map.set("initial", "value", "trusting");
1301
+ await map.core.waitForSync();
1302
+ await group.core.waitForSync();
1303
+ // Verify storage has the data
1304
+ expect(jazzCloud.node.storage).toBeDefined();
1305
+ // Load the content on a client first
1306
+ const client1 = setupTestNode({
1307
+ connected: true,
1308
+ });
1309
+ const mapOnClient1 = await loadCoValueOrFail(client1.node, map.id);
1310
+ expect(mapOnClient1.get("initial")).toEqual("value");
1311
+ // Wait for the group to finish streaming
1312
+ const groupOnClient1 = client1.node.getCoValue(group.id);
1313
+ await groupOnClient1.waitForAvailableOrUnavailable();
1314
+ // Simulate the map being garbage collected from server memory
1315
+ // The group should also be deleted to force reload from storage
1316
+ jazzCloud.node.internalDeleteCoValue(map.id);
1317
+ jazzCloud.node.internalDeleteCoValue(group.id);
1318
+ // Clear messages to track what happens next
1319
+ SyncMessagesLog.clear();
1320
+ // Have client1 make an update - this should trigger handleNewContent
1321
+ // which should load from storage (with the large group streaming)
1322
+ mapOnClient1.set("new", "update", "trusting");
1323
+ await waitFor(() => {
1324
+ // The server should have reloaded from storage and processed the update
1325
+ const serverMap = jazzCloud.node.getCoValue(map.id);
1326
+ return serverMap.isAvailable();
1327
+ });
1328
+ // Verify the server has the updated content
1329
+ const serverMap = jazzCloud.node.getCoValue(map.id);
1330
+ expect(serverMap.isAvailable()).toBe(true);
1331
+ // Verify that the server did a full load from storage
1332
+ // Note: No LAZY_LOAD here because the content message has no header (it's an update),
1333
+ // so the server goes directly to full LOAD
1334
+ expect(SyncMessagesLog.getMessages({
1335
+ Group: group.core,
1336
+ Map: map.core,
1337
+ })).toMatchInlineSnapshot(`
1338
+ [
1339
+ "client -> server | CONTENT Map header: false new: After: 0 New: 1",
1340
+ "server -> storage | LOAD Map sessions: empty",
1341
+ "storage -> server | CONTENT Group header: true new: After: 0 New: 78 expectContentUntil: header/205",
1342
+ "storage -> server | CONTENT Map header: true new: After: 0 New: 1",
1343
+ "server -> client | KNOWN Map sessions: header/2",
1344
+ "server -> storage | CONTENT Map header: false new: After: 0 New: 1",
1345
+ "storage -> server | CONTENT Group header: true new: After: 78 New: 73",
1346
+ "storage -> server | CONTENT Group header: true new: After: 151 New: 54",
1347
+ ]
1348
+ `);
1349
+ });
1350
+ test("handleNewContent loads CoValue from storage when parent group is large and garbage-collected", async () => {
1351
+ // Setup server with storage
1352
+ jazzCloud.addStorage({ ourName: "server" });
1353
+ // Create parent group with large data
1354
+ const parentGroup = jazzCloud.node.createGroup();
1355
+ parentGroup.addMember("everyone", "reader");
1356
+ // Add large data to the parent group
1357
+ fillCoMapWithLargeData(parentGroup);
1358
+ // Create child group that extends parent
1359
+ const group = jazzCloud.node.createGroup();
1360
+ group.addMember("everyone", "writer");
1361
+ group.extend(parentGroup);
1362
+ const map = group.createMap();
1363
+ map.set("initial", "value", "trusting");
1364
+ await map.core.waitForSync();
1365
+ await group.core.waitForSync();
1366
+ await parentGroup.core.waitForSync();
1367
+ // Verify storage has the data
1368
+ expect(jazzCloud.node.storage).toBeDefined();
1369
+ // Load the content on a client first
1370
+ const client1 = setupTestNode({
1371
+ connected: true,
1372
+ });
1373
+ const mapOnClient1 = await loadCoValueOrFail(client1.node, map.id);
1374
+ expect(mapOnClient1.get("initial")).toEqual("value");
1375
+ // Wait for the parent group to finish streaming
1376
+ const parentGroupOnClient1 = client1.node.getCoValue(parentGroup.id);
1377
+ await parentGroupOnClient1.waitForAvailableOrUnavailable();
1378
+ if (parentGroupOnClient1.isAvailable()) {
1379
+ await parentGroupOnClient1.waitForFullStreaming();
1380
+ }
1381
+ // Simulate CoValues being garbage collected from server memory
1382
+ jazzCloud.node.internalDeleteCoValue(map.id);
1383
+ jazzCloud.node.internalDeleteCoValue(group.id);
1384
+ jazzCloud.node.internalDeleteCoValue(parentGroup.id);
1385
+ // Clear messages to track what happens next
1386
+ SyncMessagesLog.clear();
1387
+ // Have client1 make an update - this should trigger handleNewContent
1388
+ // which should load from storage (with the large parent group streaming)
1389
+ mapOnClient1.set("new", "update", "trusting");
1390
+ await waitFor(() => {
1391
+ // The server should have reloaded from storage and processed the update
1392
+ const serverMap = jazzCloud.node.getCoValue(map.id);
1393
+ return serverMap.isAvailable();
1394
+ });
1395
+ // Verify the server has the updated content
1396
+ const serverMap = jazzCloud.node.getCoValue(map.id);
1397
+ expect(serverMap.isAvailable()).toBe(true);
1398
+ // Verify that the server did a full load from storage for all CoValues
1399
+ // The snapshot shows the complete flow: loading Map triggers loading its dependencies
1400
+ expect(SyncMessagesLog.getMessages({
1401
+ ParentGroup: parentGroup.core,
1402
+ Group: group.core,
1403
+ Map: map.core,
1404
+ })).toMatchInlineSnapshot(`
1405
+ [
1406
+ "client -> server | CONTENT Map header: false new: After: 0 New: 1",
1407
+ "server -> storage | LOAD Map sessions: empty",
1408
+ "storage -> server | CONTENT ParentGroup header: true new: After: 0 New: 78 expectContentUntil: header/205",
1409
+ "storage -> server | CONTENT Group header: true new: After: 0 New: 7",
1410
+ "storage -> server | CONTENT Map header: true new: After: 0 New: 1",
1411
+ "server -> client | KNOWN Map sessions: header/2",
1412
+ "server -> storage | CONTENT Map header: false new: After: 0 New: 1",
1413
+ "storage -> server | CONTENT ParentGroup header: true new: After: 78 New: 73",
1414
+ "storage -> server | CONTENT ParentGroup header: true new: After: 151 New: 54",
1415
+ ]
1416
+ `);
1417
+ });
1418
+ test("handles gracefully when CoValue is garbage collected mid-stream from storage", async () => {
1419
+ // This test verifies the edge case where:
1420
+ // 1. Storage is streaming a large CoValue in chunks
1421
+ // 2. The CoValue is garbage collected mid-stream
1422
+ // 3. Subsequent chunks from storage (without header) should be handled gracefully
1423
+ // Setup server with storage
1424
+ jazzCloud.addStorage({ ourName: "server" });
1425
+ // Create a large CoValue that will stream
1426
+ const group = jazzCloud.node.createGroup();
1427
+ group.addMember("everyone", "writer");
1428
+ const largeMap = group.createMap();
1429
+ fillCoMapWithLargeData(largeMap);
1430
+ await largeMap.core.waitForSync();
1431
+ // Get the sessions from the largeMap to create a realistic streaming chunk
1432
+ const sessions = Object.entries(largeMap.core.knownState().sessions);
1433
+ const [sessionId, txCount] = sessions[0];
1434
+ // Simulate receiving a streaming chunk from storage for a non-existent CoValue
1435
+ // This happens when:
1436
+ // 1. A large CoValue starts streaming from storage
1437
+ // 2. The CoValue gets garbage collected mid-stream
1438
+ // 3. Remaining chunks arrive with no header (they're continuation chunks)
1439
+ // First, ensure the CoValue doesn't exist in server memory
1440
+ jazzCloud.node.internalDeleteCoValue(largeMap.id);
1441
+ expect(jazzCloud.node.hasCoValue(largeMap.id)).toBe(false);
1442
+ // Now simulate a streaming chunk arriving from storage without a header
1443
+ // This is what happens when GC runs between streaming chunks
1444
+ const streamingChunk = {
1445
+ action: "content",
1446
+ id: largeMap.id,
1447
+ header: undefined, // No header - it's a continuation chunk
1448
+ priority: 0,
1449
+ new: {
1450
+ [sessionId]: {
1451
+ after: Math.floor(txCount / 2), // Middle of the stream
1452
+ newTransactions: [],
1453
+ lastSignature: "test",
1454
+ },
1455
+ },
1456
+ };
1457
+ // Call handleNewContent directly with the storage message
1458
+ // This should NOT crash, just log a warning and return early
1459
+ jazzCloud.node.syncManager.handleNewContent(streamingChunk, "storage");
1460
+ // The CoValue entry gets created by getOrCreateCoValue, but it should
1461
+ // NOT be available (the chunk was ignored because it had no header)
1462
+ const coValue = jazzCloud.node.getCoValue(largeMap.id);
1463
+ expect(coValue).toBeDefined();
1464
+ expect(coValue?.isAvailable()).toBe(false);
1465
+ // Test passes if we reach here without crashing
1466
+ });
1467
+ });
1080
1468
  //# sourceMappingURL=sync.load.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sync.load.test.js","sourceRoot":"","sources":["../../src/tests/sync.load.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync.load.test.js","sourceRoot":"","sources":["../../src/tests/sync.load.test.ts"],"names":[],"mappings":"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"}
@@ -410,26 +410,38 @@ describe("multiple clients syncing with the a cloud-like server mesh", () => {
410
410
  "edge -> core | LOAD Map sessions: header/100",
411
411
  "edge -> client | CONTENT Group header: true new: After: 0 New: 5",
412
412
  "edge -> client | CONTENT Map header: true new: After: 0 New: 21 expectContentUntil: header/100",
413
- "core -> storage | LOAD Group sessions: empty",
414
- "storage -> core | KNOWN Group sessions: empty",
413
+ "storage -> edge | CONTENT Map header: true new: After: 21 New: 21",
414
+ "edge -> client | CONTENT Map header: false new: After: 21 New: 21 expectContentUntil: header/100",
415
+ "storage -> edge | CONTENT Map header: true new: After: 42 New: 21",
416
+ "edge -> client | CONTENT Map header: false new: After: 42 New: 21 expectContentUntil: header/100",
417
+ "storage -> edge | CONTENT Map header: true new: After: 63 New: 21",
418
+ "edge -> client | CONTENT Map header: false new: After: 63 New: 21 expectContentUntil: header/100",
419
+ "storage -> edge | CONTENT Map header: true new: After: 84 New: 16",
420
+ "edge -> client | CONTENT Map header: false new: After: 84 New: 16",
421
+ "core -> storage | GET_KNOWN_STATE Group",
422
+ "storage -> core | GET_KNOWN_STATE_RESULT Group sessions: empty",
415
423
  "core -> edge | KNOWN Group sessions: empty",
416
- "core -> storage | LOAD Map sessions: empty",
417
- "storage -> core | KNOWN Map sessions: empty",
424
+ "core -> storage | GET_KNOWN_STATE Map",
425
+ "storage -> core | GET_KNOWN_STATE_RESULT Map sessions: empty",
418
426
  "core -> edge | KNOWN Map sessions: empty",
419
427
  "client -> edge | KNOWN Group sessions: header/5",
420
428
  "client -> storage | CONTENT Group header: true new: After: 0 New: 5",
421
429
  "client -> edge | KNOWN Map sessions: header/21",
422
430
  "client -> storage | CONTENT Map header: true new: After: 0 New: 21",
423
- "storage -> edge | CONTENT Map header: true new: After: 21 New: 21",
424
- "edge -> client | CONTENT Map header: false new: After: 21 New: 21 expectContentUntil: header/100",
431
+ "client -> edge | KNOWN Map sessions: header/42",
432
+ "client -> storage | CONTENT Map header: false new: After: 21 New: 21",
433
+ "client -> edge | KNOWN Map sessions: header/63",
434
+ "client -> storage | CONTENT Map header: false new: After: 42 New: 21",
435
+ "client -> edge | KNOWN Map sessions: header/84",
436
+ "client -> storage | CONTENT Map header: false new: After: 63 New: 21",
437
+ "client -> edge | KNOWN Map sessions: header/100",
438
+ "client -> storage | CONTENT Map header: false new: After: 84 New: 16",
425
439
  "edge -> core | CONTENT Group header: true new: After: 0 New: 5",
426
440
  "edge -> core | CONTENT Map header: true new: After: 0 New: 21 expectContentUntil: header/100",
427
441
  "edge -> core | CONTENT Map header: false new: After: 21 New: 21",
428
- "client -> edge | KNOWN Map sessions: header/42",
429
- "client -> storage | CONTENT Map header: false new: After: 21 New: 21",
430
- "storage -> edge | CONTENT Map header: true new: After: 42 New: 21",
431
- "edge -> core | CONTENT Map header: false new: After: 42 New: 21 expectContentUntil: header/100",
432
- "edge -> client | CONTENT Map header: false new: After: 42 New: 21 expectContentUntil: header/100",
442
+ "edge -> core | CONTENT Map header: false new: After: 42 New: 21",
443
+ "edge -> core | CONTENT Map header: false new: After: 63 New: 21",
444
+ "edge -> core | CONTENT Map header: false new: After: 84 New: 16",
433
445
  "core -> edge | KNOWN Group sessions: header/5",
434
446
  "core -> storage | CONTENT Group header: true new: After: 0 New: 5",
435
447
  "core -> edge | KNOWN Map sessions: header/21",
@@ -438,22 +450,10 @@ describe("multiple clients syncing with the a cloud-like server mesh", () => {
438
450
  "core -> storage | CONTENT Map header: false new: After: 21 New: 21",
439
451
  "core -> edge | KNOWN Map sessions: header/63",
440
452
  "core -> storage | CONTENT Map header: false new: After: 42 New: 21",
441
- "client -> edge | KNOWN Map sessions: header/63",
442
- "client -> storage | CONTENT Map header: false new: After: 42 New: 21",
443
- "storage -> edge | CONTENT Map header: true new: After: 63 New: 21",
444
- "edge -> core | CONTENT Map header: false new: After: 63 New: 21 expectContentUntil: header/100",
445
- "edge -> client | CONTENT Map header: false new: After: 63 New: 21 expectContentUntil: header/100",
446
453
  "core -> edge | KNOWN Map sessions: header/84",
447
454
  "core -> storage | CONTENT Map header: false new: After: 63 New: 21",
448
- "client -> edge | KNOWN Map sessions: header/84",
449
- "client -> storage | CONTENT Map header: false new: After: 63 New: 21",
450
- "storage -> edge | CONTENT Map header: true new: After: 84 New: 16",
451
- "edge -> core | CONTENT Map header: false new: After: 84 New: 16",
452
- "edge -> client | CONTENT Map header: false new: After: 84 New: 16",
453
455
  "core -> edge | KNOWN Map sessions: header/100",
454
456
  "core -> storage | CONTENT Map header: false new: After: 84 New: 16",
455
- "client -> edge | KNOWN Map sessions: header/100",
456
- "client -> storage | CONTENT Map header: false new: After: 84 New: 16",
457
457
  ]
458
458
  `);
459
459
  expect(mapOnClient.core.knownState()).toEqual(largeMap.core.knownState());