cojson 0.18.37 → 0.18.38

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 (65) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +9 -0
  3. package/dist/coValueCore/SessionMap.d.ts +5 -3
  4. package/dist/coValueCore/SessionMap.d.ts.map +1 -1
  5. package/dist/coValueCore/SessionMap.js +19 -9
  6. package/dist/coValueCore/SessionMap.js.map +1 -1
  7. package/dist/coValueCore/coValueCore.d.ts +5 -2
  8. package/dist/coValueCore/coValueCore.d.ts.map +1 -1
  9. package/dist/coValueCore/coValueCore.js +24 -4
  10. package/dist/coValueCore/coValueCore.js.map +1 -1
  11. package/dist/coValueCore/verifiedState.d.ts +1 -3
  12. package/dist/coValueCore/verifiedState.d.ts.map +1 -1
  13. package/dist/coValueCore/verifiedState.js +10 -14
  14. package/dist/coValueCore/verifiedState.js.map +1 -1
  15. package/dist/exports.d.ts +3 -3
  16. package/dist/exports.d.ts.map +1 -1
  17. package/dist/exports.js +3 -3
  18. package/dist/exports.js.map +1 -1
  19. package/dist/permissions.d.ts +0 -1
  20. package/dist/permissions.d.ts.map +1 -1
  21. package/dist/permissions.js +34 -58
  22. package/dist/permissions.js.map +1 -1
  23. package/dist/queue/LocalTransactionsSyncQueue.d.ts.map +1 -1
  24. package/dist/queue/LocalTransactionsSyncQueue.js +1 -18
  25. package/dist/queue/LocalTransactionsSyncQueue.js.map +1 -1
  26. package/dist/sync.d.ts.map +1 -1
  27. package/dist/sync.js +8 -0
  28. package/dist/sync.js.map +1 -1
  29. package/dist/tests/StorageApiAsync.test.js +8 -8
  30. package/dist/tests/coValueCore.isStreaming.test.js +30 -40
  31. package/dist/tests/coValueCore.isStreaming.test.js.map +1 -1
  32. package/dist/tests/coValueCore.newContentSince.test.js +242 -132
  33. package/dist/tests/coValueCore.newContentSince.test.js.map +1 -1
  34. package/dist/tests/sync.auth.test.js +6 -6
  35. package/dist/tests/sync.load.test.js +11 -75
  36. package/dist/tests/sync.load.test.js.map +1 -1
  37. package/dist/tests/sync.mesh.test.js +2 -2
  38. package/dist/tests/sync.storage.test.js +22 -48
  39. package/dist/tests/sync.storage.test.js.map +1 -1
  40. package/dist/tests/sync.storageAsync.test.js +121 -71
  41. package/dist/tests/sync.storageAsync.test.js.map +1 -1
  42. package/dist/tests/sync.upload.test.js +11 -75
  43. package/dist/tests/sync.upload.test.js.map +1 -1
  44. package/dist/tests/testUtils.d.ts +4 -1
  45. package/dist/tests/testUtils.d.ts.map +1 -1
  46. package/dist/tests/testUtils.js +11 -0
  47. package/dist/tests/testUtils.js.map +1 -1
  48. package/package.json +3 -3
  49. package/src/coValueCore/SessionMap.ts +25 -15
  50. package/src/coValueCore/coValueCore.ts +32 -2
  51. package/src/coValueCore/verifiedState.ts +11 -20
  52. package/src/exports.ts +3 -2
  53. package/src/permissions.ts +34 -66
  54. package/src/queue/LocalTransactionsSyncQueue.ts +1 -20
  55. package/src/sync.ts +9 -0
  56. package/src/tests/StorageApiAsync.test.ts +8 -8
  57. package/src/tests/coValueCore.isStreaming.test.ts +84 -91
  58. package/src/tests/coValueCore.newContentSince.test.ts +246 -141
  59. package/src/tests/sync.auth.test.ts +6 -6
  60. package/src/tests/sync.load.test.ts +11 -79
  61. package/src/tests/sync.mesh.test.ts +2 -2
  62. package/src/tests/sync.storage.test.ts +22 -51
  63. package/src/tests/sync.storageAsync.test.ts +159 -76
  64. package/src/tests/sync.upload.test.ts +11 -78
  65. package/src/tests/testUtils.ts +16 -0
@@ -5,6 +5,7 @@ import { WasmCrypto } from "../crypto/WasmCrypto";
5
5
  import {
6
6
  SyncMessagesLog,
7
7
  TEST_NODE_CONFIG,
8
+ fillCoMapWithLargeData,
8
9
  loadCoValueOrFail,
9
10
  setupTestNode,
10
11
  waitFor,
@@ -163,7 +164,7 @@ describe("client to server upload", () => {
163
164
  }),
164
165
  ).toMatchInlineSnapshot(`
165
166
  [
166
- "client -> server | CONTENT Group header: true new: After: 0 New: 3 expectContentUntil: header/5",
167
+ "client -> server | CONTENT Group header: true new: After: 0 New: 3",
167
168
  "client -> server | CONTENT ParentGroup header: true new: After: 0 New: 5",
168
169
  "client -> server | CONTENT Group header: false new: After: 3 New: 2",
169
170
  "client -> server | CONTENT Map header: true new: After: 0 New: 1",
@@ -363,7 +364,7 @@ describe("client to server upload", () => {
363
364
  ).toMatchInlineSnapshot(`
364
365
  [
365
366
  "client -> server | CONTENT Group header: true new: After: 0 New: 3",
366
- "client -> server | CONTENT InitialMap header: true new: expectContentUntil: header/1",
367
+ "client -> server | CONTENT InitialMap header: true new: ",
367
368
  "client -> server | CONTENT ChildMap header: true new: After: 0 New: 1",
368
369
  "client -> server | CONTENT InitialMap header: false new: After: 0 New: 1",
369
370
  "server -> client | KNOWN Group sessions: header/3",
@@ -384,17 +385,7 @@ describe("client to server upload", () => {
384
385
 
385
386
  const largeMap = group.createMap();
386
387
 
387
- // Generate a large amount of data (about 100MB)
388
- const dataSize = 1 * 1024 * 1024;
389
- const chunkSize = 1024; // 1KB chunks
390
- const chunks = dataSize / chunkSize;
391
-
392
- const value = Buffer.alloc(chunkSize, `value$`).toString("base64");
393
-
394
- for (let i = 0; i < chunks; i++) {
395
- const key = `key${i}`;
396
- largeMap.set(key, value, "trusting");
397
- }
388
+ fillCoMapWithLargeData(largeMap);
398
389
 
399
390
  await largeMap.core.waitForSync();
400
391
 
@@ -406,37 +397,13 @@ describe("client to server upload", () => {
406
397
  ).toMatchInlineSnapshot(`
407
398
  [
408
399
  "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",
400
+ "client -> server | CONTENT Map header: true new: After: 0 New: 73 expectContentUntil: header/200",
410
401
  "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",
402
+ "client -> server | CONTENT Map header: false new: After: 146 New: 54",
424
403
  "server -> client | KNOWN Group sessions: header/5",
425
404
  "server -> client | KNOWN Map sessions: header/73",
426
405
  "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",
406
+ "server -> client | KNOWN Map sessions: header/200",
440
407
  ]
441
408
  `);
442
409
  });
@@ -453,17 +420,7 @@ describe("client to server upload", () => {
453
420
 
454
421
  await largeMap.core.waitForSync();
455
422
 
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
- }
423
+ fillCoMapWithLargeData(largeMap);
467
424
 
468
425
  await largeMap.core.waitForSync();
469
426
 
@@ -476,38 +433,14 @@ describe("client to server upload", () => {
476
433
  [
477
434
  "client -> server | CONTENT Group header: true new: After: 0 New: 5",
478
435
  "client -> server | CONTENT Map header: true new: ",
479
- "client -> server | CONTENT Map header: false new: After: 0 New: 73 expectContentUntil: header/1024",
436
+ "client -> server | CONTENT Map header: false new: After: 0 New: 73 expectContentUntil: header/200",
480
437
  "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",
438
+ "client -> server | CONTENT Map header: false new: After: 146 New: 54",
494
439
  "server -> client | KNOWN Group sessions: header/5",
495
440
  "server -> client | KNOWN Map sessions: header/0",
496
441
  "server -> client | KNOWN Map sessions: header/73",
497
442
  "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",
443
+ "server -> client | KNOWN Map sessions: header/200",
511
444
  ]
512
445
  `);
513
446
  });
@@ -15,6 +15,7 @@ import {
15
15
  type CoValueCore,
16
16
  type RawAccount,
17
17
  RawAccountID,
18
+ RawCoMap,
18
19
  type RawCoValue,
19
20
  StorageAPI,
20
21
  } from "../exports.js";
@@ -777,3 +778,18 @@ export function createUnloadedCoValue(
777
778
 
778
779
  return { coValue: state, id, header };
779
780
  }
781
+
782
+ export function fillCoMapWithLargeData(map: RawCoMap) {
783
+ const dataSize = 1 * 1024 * 200;
784
+ const chunkSize = 1024; // 1KB chunks
785
+ const chunks = dataSize / chunkSize;
786
+
787
+ const value = Buffer.alloc(chunkSize, `value$`).toString("base64");
788
+
789
+ for (let i = 0; i < chunks; i++) {
790
+ const key = `key${i}`;
791
+ map.set(key, value, "trusting");
792
+ }
793
+
794
+ return map;
795
+ }