cojson 0.13.13 → 0.13.15

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 (75) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +12 -0
  3. package/dist/PeerState.d.ts +4 -6
  4. package/dist/PeerState.d.ts.map +1 -1
  5. package/dist/PeerState.js +30 -26
  6. package/dist/PeerState.js.map +1 -1
  7. package/dist/PriorityBasedMessageQueue.d.ts +2 -8
  8. package/dist/PriorityBasedMessageQueue.d.ts.map +1 -1
  9. package/dist/PriorityBasedMessageQueue.js +1 -17
  10. package/dist/PriorityBasedMessageQueue.js.map +1 -1
  11. package/dist/coValueCore.js +1 -1
  12. package/dist/coValueCore.js.map +1 -1
  13. package/dist/coValueState.d.ts.map +1 -1
  14. package/dist/coValueState.js +1 -8
  15. package/dist/coValueState.js.map +1 -1
  16. package/dist/coValues/coList.d.ts +2 -4
  17. package/dist/coValues/coList.d.ts.map +1 -1
  18. package/dist/coValues/coList.js +14 -18
  19. package/dist/coValues/coList.js.map +1 -1
  20. package/dist/coValues/coPlainText.js +1 -1
  21. package/dist/coValues/coPlainText.js.map +1 -1
  22. package/dist/localNode.d.ts.map +1 -1
  23. package/dist/localNode.js +2 -2
  24. package/dist/localNode.js.map +1 -1
  25. package/dist/streamUtils.d.ts.map +1 -1
  26. package/dist/streamUtils.js +1 -1
  27. package/dist/streamUtils.js.map +1 -1
  28. package/dist/sync.d.ts +11 -17
  29. package/dist/sync.d.ts.map +1 -1
  30. package/dist/sync.js +49 -91
  31. package/dist/sync.js.map +1 -1
  32. package/dist/tests/PeerState.test.js +27 -14
  33. package/dist/tests/PeerState.test.js.map +1 -1
  34. package/dist/tests/PriorityBasedMessageQueue.test.js +5 -33
  35. package/dist/tests/PriorityBasedMessageQueue.test.js.map +1 -1
  36. package/dist/tests/SyncStateManager.test.js +5 -9
  37. package/dist/tests/SyncStateManager.test.js.map +1 -1
  38. package/dist/tests/coList.test.js +0 -9
  39. package/dist/tests/coList.test.js.map +1 -1
  40. package/dist/tests/sync.load.test.js +21 -17
  41. package/dist/tests/sync.load.test.js.map +1 -1
  42. package/dist/tests/sync.mesh.test.js +46 -18
  43. package/dist/tests/sync.mesh.test.js.map +1 -1
  44. package/dist/tests/sync.peerReconciliation.test.js +13 -15
  45. package/dist/tests/sync.peerReconciliation.test.js.map +1 -1
  46. package/dist/tests/sync.storage.test.js +13 -9
  47. package/dist/tests/sync.storage.test.js.map +1 -1
  48. package/dist/tests/sync.test.js +16 -28
  49. package/dist/tests/sync.test.js.map +1 -1
  50. package/dist/tests/sync.upload.test.js +13 -13
  51. package/dist/tests/testUtils.d.ts +1 -0
  52. package/dist/tests/testUtils.d.ts.map +1 -1
  53. package/dist/tests/testUtils.js +1 -0
  54. package/dist/tests/testUtils.js.map +1 -1
  55. package/package.json +1 -1
  56. package/src/PeerState.ts +33 -37
  57. package/src/PriorityBasedMessageQueue.ts +2 -30
  58. package/src/coValueCore.ts +1 -1
  59. package/src/coValueState.ts +4 -10
  60. package/src/coValues/coList.ts +20 -29
  61. package/src/coValues/coPlainText.ts +1 -1
  62. package/src/localNode.ts +4 -2
  63. package/src/streamUtils.ts +2 -2
  64. package/src/sync.ts +58 -103
  65. package/src/tests/PeerState.test.ts +28 -14
  66. package/src/tests/PriorityBasedMessageQueue.test.ts +5 -39
  67. package/src/tests/SyncStateManager.test.ts +4 -12
  68. package/src/tests/coList.test.ts +0 -13
  69. package/src/tests/sync.load.test.ts +21 -17
  70. package/src/tests/sync.mesh.test.ts +46 -18
  71. package/src/tests/sync.peerReconciliation.test.ts +13 -25
  72. package/src/tests/sync.storage.test.ts +13 -9
  73. package/src/tests/sync.test.ts +16 -30
  74. package/src/tests/sync.upload.test.ts +13 -13
  75. package/src/tests/testUtils.ts +1 -0
@@ -74,8 +74,8 @@ describe("loading coValues from server", () => {
74
74
  "server -> client | CONTENT ParentGroup header: true new: After: 0 New: 6",
75
75
  "client -> server | KNOWN ParentGroup sessions: header/6",
76
76
  "server -> client | CONTENT Group header: true new: After: 0 New: 5",
77
- "server -> client | CONTENT Map header: true new: After: 0 New: 1",
78
77
  "client -> server | KNOWN Group sessions: header/5",
78
+ "server -> client | CONTENT Map header: true new: After: 0 New: 1",
79
79
  "client -> server | KNOWN Map sessions: header/1",
80
80
  ]
81
81
  `);
@@ -118,6 +118,8 @@ describe("loading coValues from server", () => {
118
118
  "client -> server | LOAD Map sessions: header/1",
119
119
  "server -> client | CONTENT Map header: false new: After: 1 New: 1",
120
120
  "client -> server | KNOWN Map sessions: header/2",
121
+ "server -> client | CONTENT Map header: false new: After: 1 New: 1",
122
+ "client -> server | KNOWN Map sessions: header/2",
121
123
  ]
122
124
  `);
123
125
  });
@@ -161,9 +163,11 @@ describe("loading coValues from server", () => {
161
163
  "server -> client | KNOWN Group sessions: header/5",
162
164
  "client -> server | LOAD Map sessions: header/2",
163
165
  "server -> client | CONTENT Map header: false new: After: 1 New: 1",
164
- "client -> server | KNOWN Map sessions: header/3",
165
166
  "client -> server | CONTENT Map header: false new: After: 0 New: 1",
167
+ "server -> client | CONTENT Map header: false new: After: 1 New: 1",
168
+ "client -> server | KNOWN Map sessions: header/3",
166
169
  "server -> client | KNOWN Map sessions: header/3",
170
+ "client -> server | KNOWN Map sessions: header/3",
167
171
  ]
168
172
  `);
169
173
  });
@@ -288,36 +292,36 @@ describe("loading coValues from server", () => {
288
292
  "server -> client | CONTENT Group header: true new: After: 0 New: 5",
289
293
  "client -> server | KNOWN Group sessions: header/5",
290
294
  "server -> client | CONTENT Map header: true new: ",
291
- "server -> client | CONTENT Map header: false new: After: 0 New: 73",
292
295
  "client -> server | KNOWN Map sessions: header/0",
293
- "server -> client | CONTENT Map header: false new: After: 73 New: 73",
294
- "server -> client | CONTENT Map header: false new: After: 146 New: 73",
296
+ "server -> client | CONTENT Map header: false new: After: 0 New: 73",
295
297
  "client -> server | KNOWN Map sessions: header/73",
296
- "server -> client | CONTENT Map header: false new: After: 219 New: 73",
297
- "server -> client | CONTENT Map header: false new: After: 292 New: 73",
298
+ "server -> client | CONTENT Map header: false new: After: 73 New: 73",
298
299
  "client -> server | KNOWN Map sessions: header/146",
299
- "server -> client | CONTENT Map header: false new: After: 365 New: 73",
300
- "server -> client | CONTENT Map header: false new: After: 438 New: 73",
300
+ "server -> client | CONTENT Map header: false new: After: 146 New: 73",
301
301
  "client -> server | KNOWN Map sessions: header/219",
302
- "server -> client | CONTENT Map header: false new: After: 511 New: 73",
303
- "server -> client | CONTENT Map header: false new: After: 584 New: 73",
302
+ "server -> client | CONTENT Map header: false new: After: 219 New: 73",
304
303
  "client -> server | KNOWN Map sessions: header/292",
305
- "server -> client | CONTENT Map header: false new: After: 657 New: 73",
306
- "server -> client | CONTENT Map header: false new: After: 730 New: 73",
304
+ "server -> client | CONTENT Map header: false new: After: 292 New: 73",
307
305
  "client -> server | KNOWN Map sessions: header/365",
308
- "server -> client | CONTENT Map header: false new: After: 803 New: 73",
309
- "server -> client | CONTENT Map header: false new: After: 876 New: 73",
306
+ "server -> client | CONTENT Map header: false new: After: 365 New: 73",
310
307
  "client -> server | KNOWN Map sessions: header/438",
311
- "server -> client | CONTENT Map header: false new: After: 949 New: 73",
312
- "server -> client | CONTENT Map header: false new: After: 1022 New: 2",
308
+ "server -> client | CONTENT Map header: false new: After: 438 New: 73",
313
309
  "client -> server | KNOWN Map sessions: header/511",
310
+ "server -> client | CONTENT Map header: false new: After: 511 New: 73",
314
311
  "client -> server | KNOWN Map sessions: header/584",
312
+ "server -> client | CONTENT Map header: false new: After: 584 New: 73",
315
313
  "client -> server | KNOWN Map sessions: header/657",
314
+ "server -> client | CONTENT Map header: false new: After: 657 New: 73",
316
315
  "client -> server | KNOWN Map sessions: header/730",
316
+ "server -> client | CONTENT Map header: false new: After: 730 New: 73",
317
317
  "client -> server | KNOWN Map sessions: header/803",
318
+ "server -> client | CONTENT Map header: false new: After: 803 New: 73",
318
319
  "client -> server | KNOWN Map sessions: header/876",
320
+ "server -> client | CONTENT Map header: false new: After: 876 New: 73",
319
321
  "client -> server | KNOWN Map sessions: header/949",
322
+ "server -> client | CONTENT Map header: false new: After: 949 New: 73",
320
323
  "client -> server | KNOWN Map sessions: header/1022",
324
+ "server -> client | CONTENT Map header: false new: After: 1022 New: 2",
321
325
  "client -> server | KNOWN Map sessions: header/1024",
322
326
  ]
323
327
  `);
@@ -66,10 +66,10 @@ describe("multiple clients syncing with the a cloud-like server mesh", () => {
66
66
  [
67
67
  "edge-france -> core | CONTENT Group header: true new: After: 0 New: 3",
68
68
  "core -> edge-france | KNOWN Group sessions: header/3",
69
- "core -> storage | CONTENT Group header: true new: After: 0 New: 3",
70
69
  "edge-france -> core | CONTENT Map header: true new: After: 0 New: 1",
71
- "storage -> core | KNOWN Group sessions: header/3",
70
+ "core -> storage | CONTENT Group header: true new: After: 0 New: 3",
72
71
  "core -> edge-france | KNOWN Map sessions: header/1",
72
+ "storage -> core | KNOWN Group sessions: header/3",
73
73
  "core -> storage | CONTENT Map header: true new: After: 0 New: 1",
74
74
  "storage -> core | KNOWN Map sessions: header/1",
75
75
  "client -> edge-italy | LOAD Map sessions: empty",
@@ -77,17 +77,16 @@ describe("multiple clients syncing with the a cloud-like server mesh", () => {
77
77
  "core -> edge-italy | CONTENT Group header: true new: After: 0 New: 3",
78
78
  "edge-italy -> core | KNOWN Group sessions: header/3",
79
79
  "core -> edge-italy | CONTENT Map header: true new: After: 0 New: 1",
80
+ "edge-italy -> core | KNOWN Map sessions: header/1",
80
81
  "edge-italy -> client | CONTENT Group header: true new: After: 0 New: 3",
81
82
  "client -> edge-italy | KNOWN Group sessions: header/3",
82
- "edge-italy -> core | KNOWN Map sessions: header/1",
83
83
  "edge-italy -> client | CONTENT Map header: true new: After: 0 New: 1",
84
84
  "client -> edge-italy | KNOWN Map sessions: header/1",
85
85
  ]
86
86
  `);
87
87
  });
88
88
 
89
- // FIXME: Expected parent group to be loaded: CoValue co_zEKiodKQprnfsi2qfDtsHGCGDSo not yet loaded
90
- test.skip("coValue created on a different edge with parent groups loading", async () => {
89
+ test("coValue created on a different edge with parent groups loading", async () => {
91
90
  const client = setupTestNode();
92
91
 
93
92
  client.connectToSyncServer({
@@ -96,7 +95,7 @@ describe("multiple clients syncing with the a cloud-like server mesh", () => {
96
95
  });
97
96
 
98
97
  const group = mesh.edgeFrance.node.createGroup();
99
- const parentGroup = mesh.edgeItaly.node.createGroup();
98
+ const parentGroup = mesh.edgeFrance.node.createGroup();
100
99
  parentGroup.addMember("everyone", "reader");
101
100
 
102
101
  group.extend(parentGroup);
@@ -115,7 +114,36 @@ describe("multiple clients syncing with the a cloud-like server mesh", () => {
115
114
  Group: group.core,
116
115
  Map: map.core,
117
116
  }),
118
- ).toMatchInlineSnapshot();
117
+ ).toMatchInlineSnapshot(`
118
+ [
119
+ "edge-france -> core | CONTENT ParentGroup header: true new: After: 0 New: 6",
120
+ "core -> edge-france | KNOWN ParentGroup sessions: header/6",
121
+ "edge-france -> core | CONTENT Group header: true new: After: 0 New: 5",
122
+ "core -> storage | CONTENT ParentGroup header: true new: After: 0 New: 6",
123
+ "core -> edge-france | KNOWN Group sessions: header/5",
124
+ "edge-france -> core | CONTENT Map header: true new: After: 0 New: 1",
125
+ "storage -> core | KNOWN ParentGroup sessions: header/6",
126
+ "core -> storage | CONTENT Group header: true new: After: 0 New: 5",
127
+ "core -> edge-france | KNOWN Map sessions: header/1",
128
+ "storage -> core | KNOWN Group sessions: header/5",
129
+ "core -> storage | CONTENT Map header: true new: After: 0 New: 1",
130
+ "storage -> core | KNOWN Map sessions: header/1",
131
+ "client -> edge-italy | LOAD Map sessions: empty",
132
+ "edge-italy -> core | LOAD Map sessions: empty",
133
+ "core -> edge-italy | CONTENT ParentGroup header: true new: After: 0 New: 6",
134
+ "edge-italy -> core | KNOWN ParentGroup sessions: header/6",
135
+ "core -> edge-italy | CONTENT Group header: true new: After: 0 New: 5",
136
+ "edge-italy -> core | KNOWN Group sessions: header/5",
137
+ "core -> edge-italy | CONTENT Map header: true new: After: 0 New: 1",
138
+ "edge-italy -> core | KNOWN Map sessions: header/1",
139
+ "edge-italy -> client | CONTENT ParentGroup header: true new: After: 0 New: 6",
140
+ "client -> edge-italy | KNOWN ParentGroup sessions: header/6",
141
+ "edge-italy -> client | CONTENT Group header: true new: After: 0 New: 5",
142
+ "client -> edge-italy | KNOWN Group sessions: header/5",
143
+ "edge-italy -> client | CONTENT Map header: true new: After: 0 New: 1",
144
+ "client -> edge-italy | KNOWN Map sessions: header/1",
145
+ ]
146
+ `);
119
147
  });
120
148
 
121
149
  test("updating a coValue coming from a different edge", async () => {
@@ -155,8 +183,8 @@ describe("multiple clients syncing with the a cloud-like server mesh", () => {
155
183
  "edge-italy -> core | CONTENT Map header: false new: After: 0 New: 1",
156
184
  "core -> edge-italy | KNOWN Map sessions: header/2",
157
185
  "core -> storage | CONTENT Map header: false new: After: 0 New: 1",
158
- "storage -> core | KNOWN Map sessions: header/2",
159
186
  "core -> edge-france | CONTENT Map header: false new: After: 0 New: 1",
187
+ "storage -> core | KNOWN Map sessions: header/2",
160
188
  "edge-france -> core | KNOWN Map sessions: header/2",
161
189
  ]
162
190
  `);
@@ -210,29 +238,29 @@ describe("multiple clients syncing with the a cloud-like server mesh", () => {
210
238
  "edge-italy -> core | CONTENT Group header: true new: After: 0 New: 5",
211
239
  "edge-italy -> client | CONTENT Group header: true new: After: 0 New: 5",
212
240
  "core -> edge-italy | KNOWN Group sessions: header/5",
213
- "client -> edge-italy | KNOWN Group sessions: header/5",
214
- "core -> storage | CONTENT Group header: true new: After: 0 New: 5",
215
241
  "edge-italy -> core | CONTENT Map header: true new: After: 0 New: 1",
242
+ "client -> edge-italy | KNOWN Group sessions: header/5",
216
243
  "edge-italy -> client | CONTENT Map header: true new: After: 0 New: 1",
217
- "storage -> core | KNOWN Group sessions: header/5",
244
+ "core -> storage | CONTENT Group header: true new: After: 0 New: 5",
218
245
  "core -> edge-italy | KNOWN Map sessions: header/1",
219
- "core -> storage | CONTENT Map header: true new: After: 0 New: 1",
220
246
  "client -> edge-italy | KNOWN Map sessions: header/1",
247
+ "storage -> core | KNOWN Group sessions: header/5",
248
+ "core -> storage | CONTENT Map header: true new: After: 0 New: 1",
221
249
  "storage -> core | KNOWN Map sessions: header/1",
222
250
  "client -> edge-italy | CONTENT Map header: false new: After: 0 New: 1",
223
251
  "core -> storage | CONTENT Map header: false new: After: 0 New: 1",
252
+ "core -> edge-italy | CONTENT Map header: false new: After: 0 New: 1",
224
253
  "edge-italy -> client | KNOWN CORRECTION Map sessions: empty",
225
254
  "storage -> core | KNOWN Map sessions: header/2",
226
- "core -> edge-italy | CONTENT Map header: false new: After: 0 New: 1",
227
- "client -> edge-italy | CONTENT Map header: true new: After: 0 New: 1 | After: 0 New: 1",
228
255
  "edge-italy -> core | KNOWN CORRECTION Map sessions: empty",
229
- "edge-italy -> client | KNOWN Map sessions: header/2",
256
+ "client -> edge-italy | CONTENT Map header: true new: After: 0 New: 1 | After: 0 New: 1",
230
257
  "core -> edge-italy | CONTENT Map header: true new: After: 0 New: 1 | After: 0 New: 1",
231
- "edge-italy -> core | CONTENT Map header: false new: After: 0 New: 1",
232
- "edge-italy -> client | CONTENT Map header: false new: After: 0 New: 1",
233
- "core -> edge-italy | KNOWN Map sessions: header/3",
258
+ "edge-italy -> client | KNOWN Map sessions: header/2",
234
259
  "edge-italy -> core | KNOWN Map sessions: header/3",
260
+ "edge-italy -> client | CONTENT Map header: false new: After: 0 New: 1",
261
+ "edge-italy -> core | CONTENT Map header: false new: After: 0 New: 1",
235
262
  "client -> edge-italy | KNOWN Map sessions: header/3",
263
+ "core -> edge-italy | KNOWN Map sessions: header/3",
236
264
  "core -> storage | CONTENT Map header: false new: After: 0 New: 1",
237
265
  "storage -> core | KNOWN Map sessions: header/3",
238
266
  ]
@@ -1,18 +1,7 @@
1
1
  import { assert, beforeEach, describe, expect, test } from "vitest";
2
2
  import { expectMap } from "../coValue";
3
3
  import { WasmCrypto } from "../crypto/WasmCrypto";
4
- import { CoValueCore, RawCoMap } from "../exports";
5
- import { LocalNode } from "../localNode";
6
- import { toSimplifiedMessages } from "./messagesTestUtils";
7
- import {
8
- SyncMessagesLog,
9
- createTestNode,
10
- randomAnonymousAccountAndSessionID,
11
- setupTestNode,
12
- waitFor,
13
- } from "./testUtils";
14
-
15
- const Crypto = await WasmCrypto.create();
4
+ import { SyncMessagesLog, setupTestNode, waitFor } from "./testUtils";
16
5
 
17
6
  let jazzCloud = setupTestNode({ isSyncServer: true });
18
7
 
@@ -32,8 +21,6 @@ describe("peer reconciliation", () => {
32
21
 
33
22
  client.connectToSyncServer();
34
23
 
35
- await new Promise((resolve) => setTimeout(resolve, 100));
36
-
37
24
  await map.core.waitForSync();
38
25
 
39
26
  expect(
@@ -44,12 +31,12 @@ describe("peer reconciliation", () => {
44
31
  ).toMatchInlineSnapshot(`
45
32
  [
46
33
  "client -> server | LOAD Group sessions: header/3",
47
- "server -> client | KNOWN Group sessions: empty",
48
34
  "client -> server | LOAD Map sessions: header/1",
49
- "server -> client | KNOWN Map sessions: empty",
35
+ "server -> client | KNOWN Group sessions: empty",
50
36
  "client -> server | CONTENT Group header: true new: After: 0 New: 3",
51
- "server -> client | KNOWN Group sessions: header/3",
37
+ "server -> client | KNOWN Map sessions: empty",
52
38
  "client -> server | CONTENT Map header: true new: After: 0 New: 1",
39
+ "server -> client | KNOWN Group sessions: header/3",
53
40
  "server -> client | KNOWN Map sessions: header/1",
54
41
  ]
55
42
  `);
@@ -93,10 +80,10 @@ describe("peer reconciliation", () => {
93
80
  ).toMatchInlineSnapshot(`
94
81
  [
95
82
  "client -> server | LOAD Group sessions: header/3",
96
- "server -> client | KNOWN Group sessions: header/3",
97
83
  "client -> server | LOAD Map sessions: header/2",
98
- "server -> client | KNOWN Map sessions: header/1",
84
+ "server -> client | KNOWN Group sessions: header/3",
99
85
  "client -> server | CONTENT Map header: false new: After: 1 New: 1",
86
+ "server -> client | KNOWN Map sessions: header/1",
100
87
  "server -> client | KNOWN Map sessions: header/2",
101
88
  ]
102
89
  `);
@@ -148,10 +135,11 @@ describe("peer reconciliation", () => {
148
135
  ).toMatchInlineSnapshot(`
149
136
  [
150
137
  "client -> server | LOAD Group sessions: header/3",
151
- "server -> client | KNOWN Group sessions: header/3",
138
+ "client -> server | LOAD Group sessions: header/3",
152
139
  "client -> server | LOAD Map sessions: header/2",
153
- "server -> client | KNOWN Map sessions: header/1",
140
+ "server -> client | KNOWN Group sessions: header/3",
154
141
  "client -> server | CONTENT Map header: false new: After: 1 New: 1",
142
+ "server -> client | KNOWN Map sessions: header/1",
155
143
  "server -> client | KNOWN Map sessions: header/2",
156
144
  ]
157
145
  `);
@@ -191,16 +179,16 @@ describe("peer reconciliation", () => {
191
179
  ).toMatchInlineSnapshot(`
192
180
  [
193
181
  "client -> server | LOAD Group sessions: header/3",
194
- "server -> client | KNOWN Group sessions: empty",
195
182
  "client -> server | LOAD Map sessions: header/2",
196
- "server -> client | KNOWN Map sessions: empty",
183
+ "server -> client | KNOWN Group sessions: empty",
197
184
  "client -> server | CONTENT Group header: true new: After: 0 New: 3",
198
- "server -> client | KNOWN Group sessions: header/3",
185
+ "server -> client | KNOWN Map sessions: empty",
199
186
  "client -> server | CONTENT Map header: true new: After: 0 New: 2",
187
+ "server -> client | KNOWN Group sessions: header/3",
200
188
  "server -> client | KNOWN Map sessions: header/2",
201
189
  "client -> server | LOAD Group sessions: header/3",
202
- "server -> client | KNOWN Group sessions: header/3",
203
190
  "client -> server | LOAD Map sessions: header/2",
191
+ "server -> client | KNOWN Group sessions: header/3",
204
192
  "server -> client | KNOWN Map sessions: header/2",
205
193
  ]
206
194
  `);
@@ -39,11 +39,11 @@ describe("client with storage syncs with server", () => {
39
39
  "client -> server | LOAD Map sessions: empty",
40
40
  "server -> client | CONTENT Group header: true new: After: 0 New: 3",
41
41
  "client -> server | KNOWN Group sessions: header/3",
42
- "client -> storage | CONTENT Group header: true new: After: 0 New: 3",
43
42
  "server -> client | CONTENT Map header: true new: After: 0 New: 1",
43
+ "client -> storage | CONTENT Group header: true new: After: 0 New: 3",
44
+ "client -> server | KNOWN Map sessions: header/1",
44
45
  "storage -> client | KNOWN Group sessions: header/3",
45
46
  "client -> storage | CONTENT Map header: true new: After: 0 New: 1",
46
- "client -> server | KNOWN Map sessions: header/1",
47
47
  "storage -> client | KNOWN Map sessions: header/1",
48
48
  ]
49
49
  `);
@@ -76,10 +76,12 @@ describe("client with storage syncs with server", () => {
76
76
  "client -> storage | KNOWN Group sessions: header/3",
77
77
  "storage -> client | CONTENT Map header: true new: After: 0 New: 1",
78
78
  "client -> server | CONTENT Group header: true new: After: 0 New: 3",
79
+ "client -> storage | KNOWN Map sessions: header/1",
79
80
  "server -> client | KNOWN Group sessions: header/3",
80
81
  "client -> server | LOAD Map sessions: header/1",
81
- "client -> storage | KNOWN Map sessions: header/1",
82
82
  "server -> client | CONTENT Group header: true new: After: 0 New: 3",
83
+ "client -> server | CONTENT Map header: true new: After: 0 New: 1",
84
+ "server -> client | KNOWN Map sessions: header/1",
83
85
  "client -> server | KNOWN Group sessions: header/3",
84
86
  "server -> client | KNOWN Map sessions: header/1",
85
87
  ]
@@ -117,16 +119,16 @@ describe("client with storage syncs with server", () => {
117
119
  "client -> server | LOAD Map sessions: empty",
118
120
  "server -> client | CONTENT ParentGroup header: true new: After: 0 New: 6",
119
121
  "client -> server | KNOWN ParentGroup sessions: header/6",
120
- "client -> storage | CONTENT ParentGroup header: true new: After: 0 New: 6",
121
122
  "server -> client | CONTENT Group header: true new: After: 0 New: 5",
122
- "storage -> client | KNOWN ParentGroup sessions: header/6",
123
+ "client -> storage | CONTENT ParentGroup header: true new: After: 0 New: 6",
124
+ "client -> server | KNOWN Group sessions: header/5",
123
125
  "server -> client | CONTENT Map header: true new: After: 0 New: 1",
126
+ "storage -> client | KNOWN ParentGroup sessions: header/6",
124
127
  "client -> storage | CONTENT Group header: true new: After: 0 New: 5",
128
+ "client -> server | KNOWN Map sessions: header/1",
125
129
  "storage -> client | KNOWN Group sessions: header/5",
126
- "client -> server | KNOWN Group sessions: header/5",
127
130
  "client -> storage | CONTENT Map header: true new: After: 0 New: 1",
128
131
  "storage -> client | KNOWN Map sessions: header/1",
129
- "client -> server | KNOWN Map sessions: header/1",
130
132
  ]
131
133
  `);
132
134
  });
@@ -167,7 +169,9 @@ describe("client with storage syncs with server", () => {
167
169
  "client -> server | LOAD Map sessions: header/1",
168
170
  "server -> client | CONTENT Map header: false new: After: 1 New: 1",
169
171
  "client -> server | KNOWN Map sessions: header/2",
172
+ "server -> client | CONTENT Map header: false new: After: 1 New: 1",
170
173
  "client -> storage | CONTENT Map header: false new: After: 1 New: 1",
174
+ "client -> server | KNOWN Map sessions: header/2",
171
175
  "storage -> client | KNOWN Map sessions: header/2",
172
176
  ]
173
177
  `);
@@ -212,10 +216,10 @@ describe("client syncs with a server with storage", () => {
212
216
  [
213
217
  "client -> server | CONTENT Group header: true new: After: 0 New: 3",
214
218
  "server -> client | KNOWN Group sessions: header/3",
215
- "server -> storage | CONTENT Group header: true new: After: 0 New: 3",
216
219
  "client -> server | CONTENT Map header: true new: After: 0 New: 1",
217
- "storage -> server | KNOWN Group sessions: header/3",
220
+ "server -> storage | CONTENT Group header: true new: After: 0 New: 3",
218
221
  "server -> client | KNOWN Map sessions: header/1",
222
+ "storage -> server | KNOWN Group sessions: header/3",
219
223
  "server -> storage | CONTENT Map header: true new: After: 0 New: 1",
220
224
  "storage -> server | KNOWN Map sessions: header/1",
221
225
  ]
@@ -31,7 +31,7 @@ beforeEach(async () => {
31
31
  });
32
32
  });
33
33
 
34
- test("If we add a peer, but it never subscribes to a coValue, it won't get any messages", async () => {
34
+ test("If we add a client peer, but it never subscribes to a coValue, it won't get any messages", async () => {
35
35
  const [admin, session] = randomAnonymousAccountAndSessionID();
36
36
  const node = new LocalNode(admin, session, Crypto);
37
37
 
@@ -47,7 +47,7 @@ test("If we add a peer, but it never subscribes to a coValue, it won't get any m
47
47
  id: "test",
48
48
  incoming: inRx,
49
49
  outgoing: outTx,
50
- role: "peer",
50
+ role: "client",
51
51
  crashOnClose: true,
52
52
  });
53
53
 
@@ -561,7 +561,7 @@ describe("SyncManager - knownStates vs optimisticKnownStates", () => {
561
561
  const mapOnClient = group.createMap();
562
562
  mapOnClient.set("key1", "value1", "trusting");
563
563
 
564
- await client.syncManager.actuallySyncCoValue(mapOnClient.core);
564
+ await client.syncManager.syncCoValue(mapOnClient.core);
565
565
 
566
566
  // Wait for the full sync to complete
567
567
  await mapOnClient.core.waitForSync();
@@ -592,7 +592,7 @@ describe("SyncManager - knownStates vs optimisticKnownStates", () => {
592
592
  const map = group.createMap();
593
593
  map.set("key1", "value1", "trusting");
594
594
 
595
- await client.node.syncManager.actuallySyncCoValue(map.core);
595
+ await client.node.syncManager.syncCoValue(map.core);
596
596
  await map.core.waitForSync();
597
597
 
598
598
  // Block the content messages
@@ -604,7 +604,7 @@ describe("SyncManager - knownStates vs optimisticKnownStates", () => {
604
604
 
605
605
  map.set("key2", "value2", "trusting");
606
606
 
607
- await client.node.syncManager.actuallySyncCoValue(map.core);
607
+ await client.node.syncManager.syncCoValue(map.core);
608
608
 
609
609
  expect(peerState.optimisticKnownStates.get(map.core.id)).not.toEqual(
610
610
  peerState.knownStates.get(map.core.id),
@@ -636,7 +636,7 @@ describe("SyncManager.addPeer", () => {
636
636
  const map = group.createMap();
637
637
  map.set("key1", "value1", "trusting");
638
638
 
639
- await client.node.syncManager.actuallySyncCoValue(map.core);
639
+ await client.node.syncManager.syncCoValue(map.core);
640
640
 
641
641
  // Wait for initial sync
642
642
  await map.core.waitForSync();
@@ -669,7 +669,7 @@ describe("SyncManager.addPeer", () => {
669
669
  const map = group.createMap();
670
670
  map.set("key1", "value1", "trusting");
671
671
 
672
- await client.node.syncManager.actuallySyncCoValue(map.core);
672
+ await client.node.syncManager.syncCoValue(map.core);
673
673
 
674
674
  // Wait for initial sync
675
675
  await map.core.waitForSync();
@@ -841,7 +841,7 @@ describe("waitForSyncWithPeer", () => {
841
841
  const map = group.createMap();
842
842
  map.set("key1", "value1", "trusting");
843
843
 
844
- await client.node.syncManager.actuallySyncCoValue(map.core);
844
+ await client.node.syncManager.syncCoValue(map.core);
845
845
 
846
846
  await expect(
847
847
  client.node.syncManager.waitForSyncWithPeer(
@@ -866,7 +866,7 @@ describe("waitForSyncWithPeer", () => {
866
866
  return Promise.resolve();
867
867
  });
868
868
 
869
- await client.node.syncManager.actuallySyncCoValue(map.core);
869
+ await client.node.syncManager.syncCoValue(map.core);
870
870
 
871
871
  await expect(
872
872
  client.node.syncManager.waitForSyncWithPeer(
@@ -914,7 +914,7 @@ describe("metrics", () => {
914
914
  const node = new LocalNode(admin, session, Crypto);
915
915
 
916
916
  let connectedPeers = await metricReader.getMetricValue("jazz.peers", {
917
- role: "peer",
917
+ role: "client",
918
918
  });
919
919
  expect(connectedPeers).toBeUndefined();
920
920
  let connectedServerPeers = await metricReader.getMetricValue("jazz.peers", {
@@ -928,12 +928,12 @@ describe("metrics", () => {
928
928
  id: "peer-1",
929
929
  incoming: inPeer1,
930
930
  outgoing: outPeer1,
931
- role: "peer",
931
+ role: "client",
932
932
  crashOnClose: false,
933
933
  });
934
934
 
935
935
  connectedPeers = await metricReader.getMetricValue("jazz.peers", {
936
- role: "peer",
936
+ role: "client",
937
937
  });
938
938
  expect(connectedPeers).toBe(1);
939
939
 
@@ -943,12 +943,12 @@ describe("metrics", () => {
943
943
  id: "peer-2",
944
944
  incoming: inPeer2,
945
945
  outgoing: outPeer2,
946
- role: "peer",
946
+ role: "client",
947
947
  crashOnClose: false,
948
948
  });
949
949
 
950
950
  connectedPeers = await metricReader.getMetricValue("jazz.peers", {
951
- role: "peer",
951
+ role: "client",
952
952
  });
953
953
  expect(connectedPeers).toBe(2);
954
954
 
@@ -966,7 +966,7 @@ describe("metrics", () => {
966
966
  });
967
967
  expect(connectedServerPeers).toBe(1);
968
968
  connectedPeers = await metricReader.getMetricValue("jazz.peers", {
969
- role: "peer",
969
+ role: "client",
970
970
  });
971
971
  expect(connectedPeers).toBe(2);
972
972
 
@@ -975,7 +975,7 @@ describe("metrics", () => {
975
975
  await waitFor(() => node.syncManager.peers["peer-1"]?.closed);
976
976
 
977
977
  connectedPeers = await metricReader.getMetricValue("jazz.peers", {
978
- role: "peer",
978
+ role: "client",
979
979
  });
980
980
  expect(connectedPeers).toBe(1);
981
981
 
@@ -991,20 +991,6 @@ describe("metrics", () => {
991
991
  });
992
992
  });
993
993
 
994
- function groupContentEx(group: RawGroup) {
995
- return {
996
- action: "content",
997
- id: group.core.id,
998
- };
999
- }
1000
-
1001
- function groupStateEx(group: RawGroup) {
1002
- return {
1003
- action: "known",
1004
- id: group.core.id,
1005
- };
1006
- }
1007
-
1008
994
  describe("LocalNode.load", () => {
1009
995
  test("should throw error when trying to load with undefined ID", async () => {
1010
996
  const client = await setupTestAccount();
@@ -169,32 +169,32 @@ describe("client to server upload", () => {
169
169
  "client -> server | CONTENT Map header: false new: After: 0 New: 73",
170
170
  "server -> client | KNOWN Map sessions: header/73",
171
171
  "client -> server | CONTENT Map header: false new: After: 73 New: 73",
172
- "client -> server | CONTENT Map header: false new: After: 146 New: 73",
173
172
  "server -> client | KNOWN Map sessions: header/146",
174
- "client -> server | CONTENT Map header: false new: After: 219 New: 73",
175
- "client -> server | CONTENT Map header: false new: After: 292 New: 73",
173
+ "client -> server | CONTENT Map header: false new: After: 146 New: 73",
176
174
  "server -> client | KNOWN Map sessions: header/219",
177
- "client -> server | CONTENT Map header: false new: After: 365 New: 73",
178
- "client -> server | CONTENT Map header: false new: After: 438 New: 73",
175
+ "client -> server | CONTENT Map header: false new: After: 219 New: 73",
179
176
  "server -> client | KNOWN Map sessions: header/292",
180
- "client -> server | CONTENT Map header: false new: After: 511 New: 73",
181
- "client -> server | CONTENT Map header: false new: After: 584 New: 73",
177
+ "client -> server | CONTENT Map header: false new: After: 292 New: 73",
182
178
  "server -> client | KNOWN Map sessions: header/365",
183
- "client -> server | CONTENT Map header: false new: After: 657 New: 73",
184
- "client -> server | CONTENT Map header: false new: After: 730 New: 73",
179
+ "client -> server | CONTENT Map header: false new: After: 365 New: 73",
185
180
  "server -> client | KNOWN Map sessions: header/438",
186
- "client -> server | CONTENT Map header: false new: After: 803 New: 73",
187
- "client -> server | CONTENT Map header: false new: After: 876 New: 73",
181
+ "client -> server | CONTENT Map header: false new: After: 438 New: 73",
188
182
  "server -> client | KNOWN Map sessions: header/511",
189
- "client -> server | CONTENT Map header: false new: After: 949 New: 73",
190
- "client -> server | CONTENT Map header: false new: After: 1022 New: 2",
183
+ "client -> server | CONTENT Map header: false new: After: 511 New: 73",
191
184
  "server -> client | KNOWN Map sessions: header/584",
185
+ "client -> server | CONTENT Map header: false new: After: 584 New: 73",
192
186
  "server -> client | KNOWN Map sessions: header/657",
187
+ "client -> server | CONTENT Map header: false new: After: 657 New: 73",
193
188
  "server -> client | KNOWN Map sessions: header/730",
189
+ "client -> server | CONTENT Map header: false new: After: 730 New: 73",
194
190
  "server -> client | KNOWN Map sessions: header/803",
191
+ "client -> server | CONTENT Map header: false new: After: 803 New: 73",
195
192
  "server -> client | KNOWN Map sessions: header/876",
193
+ "client -> server | CONTENT Map header: false new: After: 876 New: 73",
196
194
  "server -> client | KNOWN Map sessions: header/949",
195
+ "client -> server | CONTENT Map header: false new: After: 949 New: 73",
197
196
  "server -> client | KNOWN Map sessions: header/1022",
197
+ "client -> server | CONTENT Map header: false new: After: 1022 New: 2",
198
198
  "server -> client | KNOWN Map sessions: header/1024",
199
199
  ]
200
200
  `);
@@ -295,6 +295,7 @@ export function blockMessageTypeOnOutgoingPeer(
295
295
  });
296
296
 
297
297
  return {
298
+ blockedMessages,
298
299
  sendBlockedMessages: async () => {
299
300
  for (const msg of blockedMessages) {
300
301
  await push.call(peer.outgoing, msg);