cojson 0.18.32 → 0.18.34
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 +18 -0
- package/dist/SyncStateManager.d.ts.map +1 -1
- package/dist/SyncStateManager.js +2 -2
- package/dist/SyncStateManager.js.map +1 -1
- package/dist/coValueCore/SessionMap.d.ts +1 -0
- package/dist/coValueCore/SessionMap.d.ts.map +1 -1
- package/dist/coValueCore/SessionMap.js +22 -12
- package/dist/coValueCore/SessionMap.js.map +1 -1
- package/dist/coValueCore/coValueCore.d.ts +14 -9
- package/dist/coValueCore/coValueCore.d.ts.map +1 -1
- package/dist/coValueCore/coValueCore.js +65 -51
- package/dist/coValueCore/coValueCore.js.map +1 -1
- package/dist/coValueCore/verifiedState.d.ts +5 -3
- package/dist/coValueCore/verifiedState.d.ts.map +1 -1
- package/dist/coValueCore/verifiedState.js +93 -76
- package/dist/coValueCore/verifiedState.js.map +1 -1
- package/dist/coValues/group.d.ts +1 -0
- package/dist/coValues/group.d.ts.map +1 -1
- package/dist/coValues/group.js +24 -4
- package/dist/coValues/group.js.map +1 -1
- package/dist/knownState.d.ts +9 -1
- package/dist/knownState.d.ts.map +1 -1
- package/dist/knownState.js +29 -3
- package/dist/knownState.js.map +1 -1
- package/dist/localNode.d.ts.map +1 -1
- package/dist/localNode.js +3 -3
- package/dist/localNode.js.map +1 -1
- package/dist/queue/LocalTransactionsSyncQueue.d.ts +10 -9
- package/dist/queue/LocalTransactionsSyncQueue.d.ts.map +1 -1
- package/dist/queue/LocalTransactionsSyncQueue.js +53 -32
- package/dist/queue/LocalTransactionsSyncQueue.js.map +1 -1
- package/dist/storage/knownState.js +2 -2
- package/dist/storage/knownState.js.map +1 -1
- package/dist/sync.d.ts +1 -2
- package/dist/sync.d.ts.map +1 -1
- package/dist/sync.js +8 -3
- package/dist/sync.js.map +1 -1
- package/dist/tests/PureJSCrypto.test.js +1 -1
- package/dist/tests/PureJSCrypto.test.js.map +1 -1
- package/dist/tests/StorageApiAsync.test.js +11 -11
- package/dist/tests/StorageApiAsync.test.js.map +1 -1
- package/dist/tests/StorageApiSync.test.js +3 -3
- package/dist/tests/StorageApiSync.test.js.map +1 -1
- package/dist/tests/WasmCrypto.test.js +1 -1
- package/dist/tests/WasmCrypto.test.js.map +1 -1
- package/dist/tests/coPlainText.test.js +13 -14
- package/dist/tests/coPlainText.test.js.map +1 -1
- package/dist/tests/coStream.test.js +12 -12
- package/dist/tests/coStream.test.js.map +1 -1
- package/dist/tests/coValueCore.isCompletelyDownloaded.test.d.ts +2 -0
- package/dist/tests/coValueCore.isCompletelyDownloaded.test.d.ts.map +1 -0
- package/dist/tests/coValueCore.isCompletelyDownloaded.test.js +422 -0
- package/dist/tests/coValueCore.isCompletelyDownloaded.test.js.map +1 -0
- package/dist/tests/coValueCore.isStreaming.test.d.ts +2 -0
- package/dist/tests/coValueCore.isStreaming.test.d.ts.map +1 -0
- package/dist/tests/coValueCore.isStreaming.test.js +232 -0
- package/dist/tests/coValueCore.isStreaming.test.js.map +1 -0
- package/dist/tests/coValueCore.newContentSince.test.d.ts +2 -0
- package/dist/tests/coValueCore.newContentSince.test.d.ts.map +1 -0
- package/dist/tests/coValueCore.newContentSince.test.js +808 -0
- package/dist/tests/coValueCore.newContentSince.test.js.map +1 -0
- package/dist/tests/coreWasm.test.js +2 -2
- package/dist/tests/coreWasm.test.js.map +1 -1
- package/dist/tests/group.childKeyRotation.test.d.ts +2 -0
- package/dist/tests/group.childKeyRotation.test.d.ts.map +1 -0
- package/dist/tests/group.childKeyRotation.test.js +261 -0
- package/dist/tests/group.childKeyRotation.test.js.map +1 -0
- package/dist/tests/group.removeMember.test.js +1 -114
- package/dist/tests/group.removeMember.test.js.map +1 -1
- package/dist/tests/knownState.test.js +83 -11
- package/dist/tests/knownState.test.js.map +1 -1
- package/dist/tests/sync.auth.test.js +6 -6
- package/dist/tests/sync.load.test.js +67 -4
- package/dist/tests/sync.load.test.js.map +1 -1
- package/dist/tests/sync.mesh.test.js +41 -40
- package/dist/tests/sync.mesh.test.js.map +1 -1
- package/dist/tests/sync.peerReconciliation.test.js +1 -1
- package/dist/tests/sync.storage.test.js +29 -28
- package/dist/tests/sync.storage.test.js.map +1 -1
- package/dist/tests/sync.storageAsync.test.js +26 -25
- package/dist/tests/sync.storageAsync.test.js.map +1 -1
- package/dist/tests/sync.upload.test.js +96 -40
- package/dist/tests/sync.upload.test.js.map +1 -1
- package/dist/tests/testUtils.d.ts +12 -8
- package/dist/tests/testUtils.d.ts.map +1 -1
- package/dist/tests/testUtils.js +39 -8
- package/dist/tests/testUtils.js.map +1 -1
- package/package.json +3 -3
- package/src/SyncStateManager.ts +5 -2
- package/src/coValueCore/SessionMap.ts +39 -12
- package/src/coValueCore/coValueCore.ts +81 -66
- package/src/coValueCore/verifiedState.ts +139 -109
- package/src/coValues/group.ts +27 -4
- package/src/knownState.ts +49 -5
- package/src/localNode.ts +7 -5
- package/src/queue/LocalTransactionsSyncQueue.ts +77 -68
- package/src/storage/knownState.ts +2 -2
- package/src/sync.ts +7 -3
- package/src/tests/PureJSCrypto.test.ts +1 -2
- package/src/tests/StorageApiAsync.test.ts +11 -11
- package/src/tests/StorageApiSync.test.ts +3 -3
- package/src/tests/WasmCrypto.test.ts +1 -2
- package/src/tests/coPlainText.test.ts +13 -14
- package/src/tests/coStream.test.ts +12 -12
- package/src/tests/coValueCore.isCompletelyDownloaded.test.ts +590 -0
- package/src/tests/coValueCore.isStreaming.test.ts +353 -0
- package/src/tests/coValueCore.newContentSince.test.ts +966 -0
- package/src/tests/coreWasm.test.ts +2 -2
- package/src/tests/group.childKeyRotation.test.ts +431 -0
- package/src/tests/group.removeMember.test.ts +1 -184
- package/src/tests/knownState.test.ts +108 -11
- package/src/tests/sync.auth.test.ts +6 -6
- package/src/tests/sync.load.test.ts +79 -4
- package/src/tests/sync.mesh.test.ts +41 -40
- package/src/tests/sync.peerReconciliation.test.ts +1 -1
- package/src/tests/sync.storage.test.ts +29 -28
- package/src/tests/sync.storageAsync.test.ts +26 -25
- package/src/tests/sync.upload.test.ts +106 -40
- package/src/tests/testUtils.ts +43 -9
|
@@ -214,7 +214,7 @@ describe("client with storage syncs with server", () => {
|
|
|
214
214
|
).toMatchInlineSnapshot(`
|
|
215
215
|
[
|
|
216
216
|
"client -> storage | CONTENT Group header: true new: After: 0 New: 3",
|
|
217
|
-
"client -> storage | CONTENT InitialMap header: true new: ",
|
|
217
|
+
"client -> storage | CONTENT InitialMap header: true new: expectContentUntil: header/1",
|
|
218
218
|
"client -> storage | CONTENT ChildMap header: true new: After: 0 New: 1",
|
|
219
219
|
"client -> storage | CONTENT InitialMap header: false new: After: 0 New: 1",
|
|
220
220
|
]
|
|
@@ -304,28 +304,28 @@ describe("client syncs with a server with storage", () => {
|
|
|
304
304
|
[
|
|
305
305
|
"client -> storage | CONTENT Group header: true new: After: 0 New: 5",
|
|
306
306
|
"client -> server | CONTENT Group header: true new: After: 0 New: 5",
|
|
307
|
-
"client -> storage | CONTENT Map header: true new: After: 0 New:
|
|
308
|
-
"client -> server | CONTENT Map header: true new: After: 0 New:
|
|
309
|
-
"client -> storage | CONTENT Map header: false new: After:
|
|
310
|
-
"client -> server | CONTENT Map header: false new: After:
|
|
311
|
-
"client -> storage | CONTENT Map header: false new: After:
|
|
312
|
-
"client -> server | CONTENT Map header: false new: After:
|
|
313
|
-
"client -> storage | CONTENT Map header: false new: After:
|
|
314
|
-
"client -> server | CONTENT Map header: false new: After:
|
|
315
|
-
"client -> storage | CONTENT Map header: false new: After:
|
|
316
|
-
"client -> server | CONTENT Map header: false new: After:
|
|
307
|
+
"client -> storage | CONTENT Map header: true new: After: 0 New: 21 expectContentUntil: header/100",
|
|
308
|
+
"client -> server | CONTENT Map header: true new: After: 0 New: 21 expectContentUntil: header/100",
|
|
309
|
+
"client -> storage | CONTENT Map header: false new: After: 21 New: 21",
|
|
310
|
+
"client -> server | CONTENT Map header: false new: After: 21 New: 21",
|
|
311
|
+
"client -> storage | CONTENT Map header: false new: After: 42 New: 21",
|
|
312
|
+
"client -> server | CONTENT Map header: false new: After: 42 New: 21",
|
|
313
|
+
"client -> storage | CONTENT Map header: false new: After: 63 New: 21",
|
|
314
|
+
"client -> server | CONTENT Map header: false new: After: 63 New: 21",
|
|
315
|
+
"client -> storage | CONTENT Map header: false new: After: 84 New: 16",
|
|
316
|
+
"client -> server | CONTENT Map header: false new: After: 84 New: 16",
|
|
317
317
|
"server -> client | KNOWN Group sessions: header/5",
|
|
318
318
|
"server -> storage | CONTENT Group header: true new: After: 0 New: 5",
|
|
319
|
-
"server -> client | KNOWN Map sessions: header/
|
|
320
|
-
"server -> storage | CONTENT Map header: true new: After: 0 New:
|
|
321
|
-
"server -> client | KNOWN Map sessions: header/
|
|
322
|
-
"server -> storage | CONTENT Map header: false new: After:
|
|
323
|
-
"server -> client | KNOWN Map sessions: header/
|
|
324
|
-
"server -> storage | CONTENT Map header: false new: After:
|
|
325
|
-
"server -> client | KNOWN Map sessions: header/
|
|
326
|
-
"server -> storage | CONTENT Map header: false new: After:
|
|
319
|
+
"server -> client | KNOWN Map sessions: header/21",
|
|
320
|
+
"server -> storage | CONTENT Map header: true new: After: 0 New: 21",
|
|
321
|
+
"server -> client | KNOWN Map sessions: header/42",
|
|
322
|
+
"server -> storage | CONTENT Map header: false new: After: 21 New: 21",
|
|
323
|
+
"server -> client | KNOWN Map sessions: header/63",
|
|
324
|
+
"server -> storage | CONTENT Map header: false new: After: 42 New: 21",
|
|
325
|
+
"server -> client | KNOWN Map sessions: header/84",
|
|
326
|
+
"server -> storage | CONTENT Map header: false new: After: 63 New: 21",
|
|
327
327
|
"server -> client | KNOWN Map sessions: header/100",
|
|
328
|
-
"server -> storage | CONTENT Map header: false new: After:
|
|
328
|
+
"server -> storage | CONTENT Map header: false new: After: 84 New: 16",
|
|
329
329
|
]
|
|
330
330
|
`);
|
|
331
331
|
|
|
@@ -357,11 +357,12 @@ describe("client syncs with a server with storage", () => {
|
|
|
357
357
|
"client -> storage | LOAD Map sessions: empty",
|
|
358
358
|
"storage -> client | CONTENT Group header: true new: After: 0 New: 5",
|
|
359
359
|
"client -> server | LOAD Group sessions: header/5",
|
|
360
|
-
"storage -> client | CONTENT Map header: true new: After: 0 New:
|
|
360
|
+
"storage -> client | CONTENT Map header: true new: After: 0 New: 21 expectContentUntil: header/100",
|
|
361
361
|
"client -> server | LOAD Map sessions: header/100",
|
|
362
|
-
"storage -> client | CONTENT Map header: true new: After:
|
|
363
|
-
"storage -> client | CONTENT Map header: true new: After:
|
|
364
|
-
"storage -> client | CONTENT Map header: true new: After:
|
|
362
|
+
"storage -> client | CONTENT Map header: true new: After: 21 New: 21",
|
|
363
|
+
"storage -> client | CONTENT Map header: true new: After: 42 New: 21",
|
|
364
|
+
"storage -> client | CONTENT Map header: true new: After: 63 New: 21",
|
|
365
|
+
"storage -> client | CONTENT Map header: true new: After: 84 New: 16",
|
|
365
366
|
"server -> client | KNOWN Group sessions: header/5",
|
|
366
367
|
"server -> client | KNOWN Map sessions: header/100",
|
|
367
368
|
]
|
|
@@ -398,7 +399,7 @@ describe("client syncs with a server with storage", () => {
|
|
|
398
399
|
|
|
399
400
|
await largeMap.core.waitForSync();
|
|
400
401
|
|
|
401
|
-
const newContentChunks = largeMap.core.
|
|
402
|
+
const newContentChunks = largeMap.core.newContentSince(
|
|
402
403
|
emptyKnownState(largeMap.id),
|
|
403
404
|
);
|
|
404
405
|
|
|
@@ -163,7 +163,7 @@ describe("client to server upload", () => {
|
|
|
163
163
|
}),
|
|
164
164
|
).toMatchInlineSnapshot(`
|
|
165
165
|
[
|
|
166
|
-
"client -> server | CONTENT Group header: true new: After: 0 New: 3",
|
|
166
|
+
"client -> server | CONTENT Group header: true new: After: 0 New: 3 expectContentUntil: header/5",
|
|
167
167
|
"client -> server | CONTENT ParentGroup header: true new: After: 0 New: 5",
|
|
168
168
|
"client -> server | CONTENT Group header: false new: After: 3 New: 2",
|
|
169
169
|
"client -> server | CONTENT Map header: true new: After: 0 New: 1",
|
|
@@ -363,7 +363,7 @@ describe("client to server upload", () => {
|
|
|
363
363
|
).toMatchInlineSnapshot(`
|
|
364
364
|
[
|
|
365
365
|
"client -> server | CONTENT Group header: true new: After: 0 New: 3",
|
|
366
|
-
"client -> server | CONTENT InitialMap header: true new: ",
|
|
366
|
+
"client -> server | CONTENT InitialMap header: true new: expectContentUntil: header/1",
|
|
367
367
|
"client -> server | CONTENT ChildMap header: true new: After: 0 New: 1",
|
|
368
368
|
"client -> server | CONTENT InitialMap header: false new: After: 0 New: 1",
|
|
369
369
|
"server -> client | KNOWN Group sessions: header/3",
|
|
@@ -379,7 +379,7 @@ describe("client to server upload", () => {
|
|
|
379
379
|
connected: true,
|
|
380
380
|
});
|
|
381
381
|
|
|
382
|
-
const group =
|
|
382
|
+
const group = client.node.createGroup();
|
|
383
383
|
group.addMember("everyone", "writer");
|
|
384
384
|
|
|
385
385
|
const largeMap = group.createMap();
|
|
@@ -396,7 +396,74 @@ describe("client to server upload", () => {
|
|
|
396
396
|
largeMap.set(key, value, "trusting");
|
|
397
397
|
}
|
|
398
398
|
|
|
399
|
-
await
|
|
399
|
+
await largeMap.core.waitForSync();
|
|
400
|
+
|
|
401
|
+
expect(
|
|
402
|
+
SyncMessagesLog.getMessages({
|
|
403
|
+
Group: group.core,
|
|
404
|
+
Map: largeMap.core,
|
|
405
|
+
}),
|
|
406
|
+
).toMatchInlineSnapshot(`
|
|
407
|
+
[
|
|
408
|
+
"client -> server | CONTENT Group header: true new: After: 0 New: 5",
|
|
409
|
+
"client -> server | CONTENT Map header: true new: After: 0 New: 73 expectContentUntil: header/1024",
|
|
410
|
+
"client -> server | CONTENT Map header: false new: After: 73 New: 73",
|
|
411
|
+
"client -> server | CONTENT Map header: false new: After: 146 New: 73",
|
|
412
|
+
"client -> server | CONTENT Map header: false new: After: 219 New: 73",
|
|
413
|
+
"client -> server | CONTENT Map header: false new: After: 292 New: 73",
|
|
414
|
+
"client -> server | CONTENT Map header: false new: After: 365 New: 73",
|
|
415
|
+
"client -> server | CONTENT Map header: false new: After: 438 New: 73",
|
|
416
|
+
"client -> server | CONTENT Map header: false new: After: 511 New: 73",
|
|
417
|
+
"client -> server | CONTENT Map header: false new: After: 584 New: 73",
|
|
418
|
+
"client -> server | CONTENT Map header: false new: After: 657 New: 73",
|
|
419
|
+
"client -> server | CONTENT Map header: false new: After: 730 New: 73",
|
|
420
|
+
"client -> server | CONTENT Map header: false new: After: 803 New: 73",
|
|
421
|
+
"client -> server | CONTENT Map header: false new: After: 876 New: 73",
|
|
422
|
+
"client -> server | CONTENT Map header: false new: After: 949 New: 73",
|
|
423
|
+
"client -> server | CONTENT Map header: false new: After: 1022 New: 2",
|
|
424
|
+
"server -> client | KNOWN Group sessions: header/5",
|
|
425
|
+
"server -> client | KNOWN Map sessions: header/73",
|
|
426
|
+
"server -> client | KNOWN Map sessions: header/146",
|
|
427
|
+
"server -> client | KNOWN Map sessions: header/219",
|
|
428
|
+
"server -> client | KNOWN Map sessions: header/292",
|
|
429
|
+
"server -> client | KNOWN Map sessions: header/365",
|
|
430
|
+
"server -> client | KNOWN Map sessions: header/438",
|
|
431
|
+
"server -> client | KNOWN Map sessions: header/511",
|
|
432
|
+
"server -> client | KNOWN Map sessions: header/584",
|
|
433
|
+
"server -> client | KNOWN Map sessions: header/657",
|
|
434
|
+
"server -> client | KNOWN Map sessions: header/730",
|
|
435
|
+
"server -> client | KNOWN Map sessions: header/803",
|
|
436
|
+
"server -> client | KNOWN Map sessions: header/876",
|
|
437
|
+
"server -> client | KNOWN Map sessions: header/949",
|
|
438
|
+
"server -> client | KNOWN Map sessions: header/1022",
|
|
439
|
+
"server -> client | KNOWN Map sessions: header/1024",
|
|
440
|
+
]
|
|
441
|
+
`);
|
|
442
|
+
});
|
|
443
|
+
|
|
444
|
+
test("uploading a large update", async () => {
|
|
445
|
+
const client = setupTestNode({
|
|
446
|
+
connected: true,
|
|
447
|
+
});
|
|
448
|
+
|
|
449
|
+
const group = client.node.createGroup();
|
|
450
|
+
group.addMember("everyone", "writer");
|
|
451
|
+
|
|
452
|
+
const largeMap = group.createMap();
|
|
453
|
+
|
|
454
|
+
await largeMap.core.waitForSync();
|
|
455
|
+
|
|
456
|
+
// Generate a large amount of data (about 100MB)
|
|
457
|
+
const dataSize = 1 * 1024 * 1024;
|
|
458
|
+
const chunkSize = 1024; // 1KB chunks
|
|
459
|
+
const chunks = dataSize / chunkSize;
|
|
460
|
+
|
|
461
|
+
const value = Buffer.alloc(chunkSize, `value$`).toString("base64");
|
|
462
|
+
|
|
463
|
+
for (let i = 0; i < chunks; i++) {
|
|
464
|
+
const key = `key${i}`;
|
|
465
|
+
largeMap.set(key, value, "trusting");
|
|
466
|
+
}
|
|
400
467
|
|
|
401
468
|
await largeMap.core.waitForSync();
|
|
402
469
|
|
|
@@ -407,41 +474,40 @@ describe("client to server upload", () => {
|
|
|
407
474
|
}),
|
|
408
475
|
).toMatchInlineSnapshot(`
|
|
409
476
|
[
|
|
410
|
-
"client -> server |
|
|
411
|
-
"
|
|
412
|
-
"
|
|
413
|
-
"
|
|
414
|
-
"
|
|
415
|
-
"
|
|
416
|
-
"
|
|
417
|
-
"
|
|
418
|
-
"
|
|
419
|
-
"
|
|
420
|
-
"
|
|
421
|
-
"
|
|
422
|
-
"
|
|
423
|
-
"
|
|
424
|
-
"
|
|
425
|
-
"
|
|
426
|
-
"
|
|
427
|
-
"server -> client |
|
|
428
|
-
"
|
|
429
|
-
"
|
|
430
|
-
"
|
|
431
|
-
"
|
|
432
|
-
"
|
|
433
|
-
"
|
|
434
|
-
"
|
|
435
|
-
"
|
|
436
|
-
"
|
|
437
|
-
"
|
|
438
|
-
"
|
|
439
|
-
"
|
|
440
|
-
"
|
|
441
|
-
"
|
|
442
|
-
"
|
|
443
|
-
"
|
|
444
|
-
"client -> server | KNOWN Map sessions: header/1024",
|
|
477
|
+
"client -> server | CONTENT Group header: true new: After: 0 New: 5",
|
|
478
|
+
"client -> server | CONTENT Map header: true new: ",
|
|
479
|
+
"client -> server | CONTENT Map header: false new: After: 0 New: 73 expectContentUntil: header/1024",
|
|
480
|
+
"client -> server | CONTENT Map header: false new: After: 73 New: 73",
|
|
481
|
+
"client -> server | CONTENT Map header: false new: After: 146 New: 73",
|
|
482
|
+
"client -> server | CONTENT Map header: false new: After: 219 New: 73",
|
|
483
|
+
"client -> server | CONTENT Map header: false new: After: 292 New: 73",
|
|
484
|
+
"client -> server | CONTENT Map header: false new: After: 365 New: 73",
|
|
485
|
+
"client -> server | CONTENT Map header: false new: After: 438 New: 73",
|
|
486
|
+
"client -> server | CONTENT Map header: false new: After: 511 New: 73",
|
|
487
|
+
"client -> server | CONTENT Map header: false new: After: 584 New: 73",
|
|
488
|
+
"client -> server | CONTENT Map header: false new: After: 657 New: 73",
|
|
489
|
+
"client -> server | CONTENT Map header: false new: After: 730 New: 73",
|
|
490
|
+
"client -> server | CONTENT Map header: false new: After: 803 New: 73",
|
|
491
|
+
"client -> server | CONTENT Map header: false new: After: 876 New: 73",
|
|
492
|
+
"client -> server | CONTENT Map header: false new: After: 949 New: 73",
|
|
493
|
+
"client -> server | CONTENT Map header: false new: After: 1022 New: 2",
|
|
494
|
+
"server -> client | KNOWN Group sessions: header/5",
|
|
495
|
+
"server -> client | KNOWN Map sessions: header/0",
|
|
496
|
+
"server -> client | KNOWN Map sessions: header/73",
|
|
497
|
+
"server -> client | KNOWN Map sessions: header/146",
|
|
498
|
+
"server -> client | KNOWN Map sessions: header/219",
|
|
499
|
+
"server -> client | KNOWN Map sessions: header/292",
|
|
500
|
+
"server -> client | KNOWN Map sessions: header/365",
|
|
501
|
+
"server -> client | KNOWN Map sessions: header/438",
|
|
502
|
+
"server -> client | KNOWN Map sessions: header/511",
|
|
503
|
+
"server -> client | KNOWN Map sessions: header/584",
|
|
504
|
+
"server -> client | KNOWN Map sessions: header/657",
|
|
505
|
+
"server -> client | KNOWN Map sessions: header/730",
|
|
506
|
+
"server -> client | KNOWN Map sessions: header/803",
|
|
507
|
+
"server -> client | KNOWN Map sessions: header/876",
|
|
508
|
+
"server -> client | KNOWN Map sessions: header/949",
|
|
509
|
+
"server -> client | KNOWN Map sessions: header/1022",
|
|
510
|
+
"server -> client | KNOWN Map sessions: header/1024",
|
|
445
511
|
]
|
|
446
512
|
`);
|
|
447
513
|
});
|
|
@@ -461,7 +527,7 @@ describe("client to server upload", () => {
|
|
|
461
527
|
const map = coValue.getCurrentContent() as RawCoMap;
|
|
462
528
|
map.set("hello", "world", "trusting");
|
|
463
529
|
|
|
464
|
-
const content = map.core.
|
|
530
|
+
const content = map.core.newContentSince(undefined)?.[0];
|
|
465
531
|
assert(content);
|
|
466
532
|
|
|
467
533
|
// Simulate a mismatch between the header and the coValue id
|
package/src/tests/testUtils.ts
CHANGED
|
@@ -14,6 +14,7 @@ import {
|
|
|
14
14
|
type CoID,
|
|
15
15
|
type CoValueCore,
|
|
16
16
|
type RawAccount,
|
|
17
|
+
RawAccountID,
|
|
17
18
|
type RawCoValue,
|
|
18
19
|
StorageAPI,
|
|
19
20
|
} from "../exports.js";
|
|
@@ -540,6 +541,13 @@ export function setupTestNode(
|
|
|
540
541
|
isSyncServer: opts.isSyncServer,
|
|
541
542
|
});
|
|
542
543
|
},
|
|
544
|
+
disconnect: () => {
|
|
545
|
+
const allPeers = Object.values(node.syncManager.peers);
|
|
546
|
+
allPeers.forEach((peer) => {
|
|
547
|
+
peer.gracefulShutdown();
|
|
548
|
+
});
|
|
549
|
+
node.syncManager.peers = {};
|
|
550
|
+
},
|
|
543
551
|
};
|
|
544
552
|
|
|
545
553
|
return ctx;
|
|
@@ -550,14 +558,34 @@ export async function setupTestAccount(
|
|
|
550
558
|
isSyncServer?: boolean;
|
|
551
559
|
connected?: boolean;
|
|
552
560
|
storage?: StorageAPI;
|
|
561
|
+
accountID?: RawAccountID;
|
|
562
|
+
accountSecret?: AgentSecret;
|
|
553
563
|
} = {},
|
|
554
564
|
) {
|
|
555
|
-
const ctx =
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
565
|
+
const ctx =
|
|
566
|
+
opts.accountSecret && opts.accountID
|
|
567
|
+
? {
|
|
568
|
+
node: await LocalNode.withLoadedAccount({
|
|
569
|
+
peers: [
|
|
570
|
+
getSyncServerConnectedPeer({
|
|
571
|
+
peerId: opts.accountID,
|
|
572
|
+
}).peer,
|
|
573
|
+
],
|
|
574
|
+
crypto: Crypto,
|
|
575
|
+
storage: opts.storage,
|
|
576
|
+
accountID: opts.accountID,
|
|
577
|
+
accountSecret: opts.accountSecret,
|
|
578
|
+
sessionID: Crypto.newRandomSessionID(opts.accountID),
|
|
579
|
+
}),
|
|
580
|
+
accountID: opts.accountID,
|
|
581
|
+
accountSecret: opts.accountSecret,
|
|
582
|
+
}
|
|
583
|
+
: await LocalNode.withNewlyCreatedAccount({
|
|
584
|
+
peers: [],
|
|
585
|
+
crypto: Crypto,
|
|
586
|
+
creationProps: { name: "Client" },
|
|
587
|
+
storage: opts.storage,
|
|
588
|
+
});
|
|
561
589
|
|
|
562
590
|
if (opts.isSyncServer) {
|
|
563
591
|
syncServer.current = ctx.node;
|
|
@@ -570,7 +598,7 @@ export async function setupTestAccount(
|
|
|
570
598
|
}) {
|
|
571
599
|
const { peer, peerStateOnServer, peerOnServer } =
|
|
572
600
|
getSyncServerConnectedPeer({
|
|
573
|
-
peerId: ctx.node.
|
|
601
|
+
peerId: ctx.node.currentSessionID,
|
|
574
602
|
syncServerName: opts?.syncServerName,
|
|
575
603
|
ourName: opts?.ourName,
|
|
576
604
|
syncServer: opts?.syncServer,
|
|
@@ -627,6 +655,13 @@ export async function setupTestAccount(
|
|
|
627
655
|
connectToSyncServer,
|
|
628
656
|
addStorage,
|
|
629
657
|
addAsyncStorage,
|
|
658
|
+
spawnNewSession: () => {
|
|
659
|
+
return setupTestAccount({
|
|
660
|
+
accountID: ctx.accountID,
|
|
661
|
+
accountSecret: ctx.accountSecret,
|
|
662
|
+
connected: true,
|
|
663
|
+
});
|
|
664
|
+
},
|
|
630
665
|
disconnect: () => {
|
|
631
666
|
const allPeers = ctx.node.syncManager.getPeers(ctx.accountID);
|
|
632
667
|
allPeers.forEach((peer) => {
|
|
@@ -715,8 +750,7 @@ export function createAccountInNode(node: LocalNode) {
|
|
|
715
750
|
|
|
716
751
|
const accountCoreEntry = node.getCoValue(accountOnTempNode.id);
|
|
717
752
|
|
|
718
|
-
const content =
|
|
719
|
-
accountOnTempNode.core.verified.newContentSince(undefined)?.[0]!;
|
|
753
|
+
const content = accountOnTempNode.core.newContentSince(undefined)?.[0]!;
|
|
720
754
|
|
|
721
755
|
node.syncManager.handleNewContent(content, "import");
|
|
722
756
|
|