cojson 0.15.8 → 0.15.9

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 (218) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +10 -0
  3. package/dist/IncomingMessagesQueue.d.ts +27 -0
  4. package/dist/IncomingMessagesQueue.d.ts.map +1 -0
  5. package/dist/IncomingMessagesQueue.js +114 -0
  6. package/dist/IncomingMessagesQueue.js.map +1 -0
  7. package/dist/PeerState.d.ts +2 -10
  8. package/dist/PeerState.d.ts.map +1 -1
  9. package/dist/PeerState.js +9 -90
  10. package/dist/PeerState.js.map +1 -1
  11. package/dist/PriorityBasedMessageQueue.d.ts +2 -1
  12. package/dist/PriorityBasedMessageQueue.d.ts.map +1 -1
  13. package/dist/PriorityBasedMessageQueue.js +9 -6
  14. package/dist/PriorityBasedMessageQueue.js.map +1 -1
  15. package/dist/SyncStateManager.d.ts +1 -0
  16. package/dist/SyncStateManager.d.ts.map +1 -1
  17. package/dist/SyncStateManager.js +1 -1
  18. package/dist/SyncStateManager.js.map +1 -1
  19. package/dist/coValue.d.ts +1 -1
  20. package/dist/coValueCore/coValueCore.d.ts +9 -17
  21. package/dist/coValueCore/coValueCore.d.ts.map +1 -1
  22. package/dist/coValueCore/coValueCore.js +75 -50
  23. package/dist/coValueCore/coValueCore.js.map +1 -1
  24. package/dist/coValueCore/verifiedState.d.ts +10 -3
  25. package/dist/coValueCore/verifiedState.d.ts.map +1 -1
  26. package/dist/coValueCore/verifiedState.js +73 -14
  27. package/dist/coValueCore/verifiedState.js.map +1 -1
  28. package/dist/coValues/coMap.d.ts +3 -3
  29. package/dist/coValues/coStream.d.ts +2 -2
  30. package/dist/coValues/group.d.ts +1 -1
  31. package/dist/coValues/group.d.ts.map +1 -1
  32. package/dist/coValues/group.js +2 -4
  33. package/dist/coValues/group.js.map +1 -1
  34. package/dist/config.d.ts +19 -0
  35. package/dist/config.d.ts.map +1 -0
  36. package/dist/config.js +23 -0
  37. package/dist/config.js.map +1 -0
  38. package/dist/crypto/WasmCrypto.d.ts.map +1 -1
  39. package/dist/crypto/WasmCrypto.js +2 -1
  40. package/dist/crypto/WasmCrypto.js.map +1 -1
  41. package/dist/exports.d.ts +18 -7
  42. package/dist/exports.d.ts.map +1 -1
  43. package/dist/exports.js +11 -8
  44. package/dist/exports.js.map +1 -1
  45. package/dist/localNode.d.ts +8 -2
  46. package/dist/localNode.d.ts.map +1 -1
  47. package/dist/localNode.js +19 -12
  48. package/dist/localNode.js.map +1 -1
  49. package/dist/storage/StoreQueue.d.ts +15 -0
  50. package/dist/storage/StoreQueue.d.ts.map +1 -0
  51. package/dist/storage/StoreQueue.js +35 -0
  52. package/dist/storage/StoreQueue.js.map +1 -0
  53. package/dist/storage/index.d.ts +6 -0
  54. package/dist/storage/index.d.ts.map +1 -0
  55. package/dist/storage/index.js +6 -0
  56. package/dist/storage/index.js.map +1 -0
  57. package/dist/storage/knownState.d.ts +18 -0
  58. package/dist/storage/knownState.d.ts.map +1 -0
  59. package/dist/storage/knownState.js +63 -0
  60. package/dist/storage/knownState.js.map +1 -0
  61. package/dist/storage/sqlite/client.d.ts +37 -0
  62. package/dist/storage/sqlite/client.d.ts.map +1 -0
  63. package/dist/storage/sqlite/client.js +89 -0
  64. package/dist/storage/sqlite/client.js.map +1 -0
  65. package/dist/storage/sqlite/index.d.ts +5 -0
  66. package/dist/storage/sqlite/index.d.ts.map +1 -0
  67. package/dist/storage/sqlite/index.js +13 -0
  68. package/dist/storage/sqlite/index.js.map +1 -0
  69. package/dist/storage/sqlite/sqliteMigrations.d.ts +3 -0
  70. package/dist/storage/sqlite/sqliteMigrations.d.ts.map +1 -0
  71. package/dist/storage/sqlite/sqliteMigrations.js +44 -0
  72. package/dist/storage/sqlite/sqliteMigrations.js.map +1 -0
  73. package/dist/storage/sqlite/types.d.ts +8 -0
  74. package/dist/storage/sqlite/types.d.ts.map +1 -0
  75. package/dist/storage/sqlite/types.js +2 -0
  76. package/dist/storage/sqlite/types.js.map +1 -0
  77. package/dist/storage/sqliteAsync/client.d.ts +37 -0
  78. package/dist/storage/sqliteAsync/client.d.ts.map +1 -0
  79. package/dist/storage/sqliteAsync/client.js +88 -0
  80. package/dist/storage/sqliteAsync/client.js.map +1 -0
  81. package/dist/storage/sqliteAsync/index.d.ts +6 -0
  82. package/dist/storage/sqliteAsync/index.d.ts.map +1 -0
  83. package/dist/storage/sqliteAsync/index.js +15 -0
  84. package/dist/storage/sqliteAsync/index.js.map +1 -0
  85. package/dist/storage/sqliteAsync/types.d.ts +9 -0
  86. package/dist/storage/sqliteAsync/types.d.ts.map +1 -0
  87. package/dist/storage/sqliteAsync/types.js +2 -0
  88. package/dist/storage/sqliteAsync/types.js.map +1 -0
  89. package/dist/storage/storageAsync.d.ts +22 -0
  90. package/dist/storage/storageAsync.d.ts.map +1 -0
  91. package/dist/storage/storageAsync.js +214 -0
  92. package/dist/storage/storageAsync.js.map +1 -0
  93. package/dist/storage/storageSync.d.ts +21 -0
  94. package/dist/storage/storageSync.d.ts.map +1 -0
  95. package/dist/storage/storageSync.js +206 -0
  96. package/dist/storage/storageSync.js.map +1 -0
  97. package/dist/storage/syncUtils.d.ts +13 -0
  98. package/dist/storage/syncUtils.d.ts.map +1 -0
  99. package/dist/storage/syncUtils.js +25 -0
  100. package/dist/storage/syncUtils.js.map +1 -0
  101. package/dist/storage/types.d.ts +82 -0
  102. package/dist/storage/types.d.ts.map +1 -0
  103. package/dist/storage/types.js +2 -0
  104. package/dist/storage/types.js.map +1 -0
  105. package/dist/streamUtils.d.ts +13 -9
  106. package/dist/streamUtils.d.ts.map +1 -1
  107. package/dist/streamUtils.js +46 -13
  108. package/dist/streamUtils.js.map +1 -1
  109. package/dist/sync.d.ts +22 -14
  110. package/dist/sync.d.ts.map +1 -1
  111. package/dist/sync.js +143 -125
  112. package/dist/sync.js.map +1 -1
  113. package/dist/tests/IncomingMessagesQueue.test.d.ts +2 -0
  114. package/dist/tests/IncomingMessagesQueue.test.d.ts.map +1 -0
  115. package/dist/tests/IncomingMessagesQueue.test.js +437 -0
  116. package/dist/tests/IncomingMessagesQueue.test.js.map +1 -0
  117. package/dist/tests/PeerState.test.js +6 -94
  118. package/dist/tests/PeerState.test.js.map +1 -1
  119. package/dist/tests/PriorityBasedMessageQueue.test.js +14 -14
  120. package/dist/tests/PriorityBasedMessageQueue.test.js.map +1 -1
  121. package/dist/tests/StoreQueue.test.d.ts +2 -0
  122. package/dist/tests/StoreQueue.test.d.ts.map +1 -0
  123. package/dist/tests/StoreQueue.test.js +208 -0
  124. package/dist/tests/StoreQueue.test.js.map +1 -0
  125. package/dist/tests/SyncStateManager.test.js +3 -1
  126. package/dist/tests/SyncStateManager.test.js.map +1 -1
  127. package/dist/tests/account.test.js +9 -9
  128. package/dist/tests/account.test.js.map +1 -1
  129. package/dist/tests/coStream.test.js +1 -1
  130. package/dist/tests/coStream.test.js.map +1 -1
  131. package/dist/tests/coValueCore.test.js +208 -1
  132. package/dist/tests/coValueCore.test.js.map +1 -1
  133. package/dist/tests/coValueCoreLoadingState.test.js +2 -2
  134. package/dist/tests/coValueCoreLoadingState.test.js.map +1 -1
  135. package/dist/tests/group.addMember.test.js.map +1 -1
  136. package/dist/tests/group.removeMember.test.js +1 -1
  137. package/dist/tests/group.removeMember.test.js.map +1 -1
  138. package/dist/tests/messagesTestUtils.js +1 -1
  139. package/dist/tests/messagesTestUtils.js.map +1 -1
  140. package/dist/tests/sync.auth.test.js +23 -15
  141. package/dist/tests/sync.auth.test.js.map +1 -1
  142. package/dist/tests/sync.invite.test.js +10 -16
  143. package/dist/tests/sync.invite.test.js.map +1 -1
  144. package/dist/tests/sync.load.test.js +52 -50
  145. package/dist/tests/sync.load.test.js.map +1 -1
  146. package/dist/tests/sync.mesh.test.js +173 -56
  147. package/dist/tests/sync.mesh.test.js.map +1 -1
  148. package/dist/tests/sync.peerReconciliation.test.js +42 -32
  149. package/dist/tests/sync.peerReconciliation.test.js.map +1 -1
  150. package/dist/tests/sync.storage.test.js +162 -62
  151. package/dist/tests/sync.storage.test.js.map +1 -1
  152. package/dist/tests/sync.storageAsync.test.d.ts +2 -0
  153. package/dist/tests/sync.storageAsync.test.d.ts.map +1 -0
  154. package/dist/tests/sync.storageAsync.test.js +361 -0
  155. package/dist/tests/sync.storageAsync.test.js.map +1 -0
  156. package/dist/tests/sync.test.js +16 -21
  157. package/dist/tests/sync.test.js.map +1 -1
  158. package/dist/tests/sync.upload.test.js +28 -25
  159. package/dist/tests/sync.upload.test.js.map +1 -1
  160. package/dist/tests/testStorage.d.ts +12 -0
  161. package/dist/tests/testStorage.d.ts.map +1 -0
  162. package/dist/tests/testStorage.js +151 -0
  163. package/dist/tests/testStorage.js.map +1 -0
  164. package/dist/tests/testUtils.d.ts +20 -15
  165. package/dist/tests/testUtils.d.ts.map +1 -1
  166. package/dist/tests/testUtils.js +79 -45
  167. package/dist/tests/testUtils.js.map +1 -1
  168. package/package.json +2 -2
  169. package/src/IncomingMessagesQueue.ts +142 -0
  170. package/src/PeerState.ts +11 -110
  171. package/src/PriorityBasedMessageQueue.ts +13 -5
  172. package/src/SyncStateManager.ts +1 -1
  173. package/src/coValueCore/coValueCore.ts +100 -66
  174. package/src/coValueCore/verifiedState.ts +91 -21
  175. package/src/coValues/group.ts +2 -4
  176. package/src/config.ts +26 -0
  177. package/src/crypto/WasmCrypto.ts +3 -1
  178. package/src/exports.ts +20 -27
  179. package/src/localNode.ts +27 -12
  180. package/src/storage/StoreQueue.ts +56 -0
  181. package/src/storage/index.ts +5 -0
  182. package/src/storage/knownState.ts +88 -0
  183. package/src/storage/sqlite/client.ts +180 -0
  184. package/src/storage/sqlite/index.ts +19 -0
  185. package/src/storage/sqlite/sqliteMigrations.ts +44 -0
  186. package/src/storage/sqlite/types.ts +7 -0
  187. package/src/storage/sqliteAsync/client.ts +179 -0
  188. package/src/storage/sqliteAsync/index.ts +25 -0
  189. package/src/storage/sqliteAsync/types.ts +8 -0
  190. package/src/storage/storageAsync.ts +367 -0
  191. package/src/storage/storageSync.ts +343 -0
  192. package/src/storage/syncUtils.ts +50 -0
  193. package/src/storage/types.ts +162 -0
  194. package/src/streamUtils.ts +61 -19
  195. package/src/sync.ts +191 -160
  196. package/src/tests/IncomingMessagesQueue.test.ts +626 -0
  197. package/src/tests/PeerState.test.ts +6 -118
  198. package/src/tests/PriorityBasedMessageQueue.test.ts +18 -14
  199. package/src/tests/StoreQueue.test.ts +283 -0
  200. package/src/tests/SyncStateManager.test.ts +4 -1
  201. package/src/tests/account.test.ts +11 -12
  202. package/src/tests/coStream.test.ts +1 -3
  203. package/src/tests/coValueCore.test.ts +270 -1
  204. package/src/tests/coValueCoreLoadingState.test.ts +2 -2
  205. package/src/tests/group.addMember.test.ts +1 -0
  206. package/src/tests/group.removeMember.test.ts +2 -8
  207. package/src/tests/messagesTestUtils.ts +2 -2
  208. package/src/tests/sync.auth.test.ts +24 -14
  209. package/src/tests/sync.invite.test.ts +11 -17
  210. package/src/tests/sync.load.test.ts +53 -49
  211. package/src/tests/sync.mesh.test.ts +198 -56
  212. package/src/tests/sync.peerReconciliation.test.ts +44 -34
  213. package/src/tests/sync.storage.test.ts +231 -64
  214. package/src/tests/sync.storageAsync.test.ts +486 -0
  215. package/src/tests/sync.test.ts +17 -23
  216. package/src/tests/sync.upload.test.ts +29 -24
  217. package/src/tests/testStorage.ts +216 -0
  218. package/src/tests/testUtils.ts +89 -54
@@ -1,9 +1,11 @@
1
1
  import { beforeEach, describe, expect, test, vi } from "vitest";
2
2
  import { expectMap } from "../coValue";
3
- import { SyncMessagesLog, blockMessageTypeOnOutgoingPeer, connectedPeersWithMessagesTracking, loadCoValueOrFail, setupTestNode, waitFor, } from "./testUtils";
3
+ import { SyncMessagesLog, TEST_NODE_CONFIG, blockMessageTypeOnOutgoingPeer, connectedPeersWithMessagesTracking, loadCoValueOrFail, setupTestNode, waitFor, } from "./testUtils";
4
+ // We want to simulate a real world communication that happens asynchronously
5
+ TEST_NODE_CONFIG.withAsyncPeers = true;
4
6
  function setupMesh() {
5
7
  const coreServer = setupTestNode();
6
- coreServer.addStoragePeer({
8
+ coreServer.addStorage({
7
9
  ourName: "core",
8
10
  });
9
11
  const edgeItaly = setupTestNode();
@@ -12,16 +14,22 @@ function setupMesh() {
12
14
  syncServerName: "core",
13
15
  syncServer: coreServer.node,
14
16
  });
17
+ edgeItaly.addStorage({
18
+ ourName: "edge-italy",
19
+ });
15
20
  const edgeFrance = setupTestNode();
16
21
  edgeFrance.connectToSyncServer({
17
22
  ourName: "edge-france",
18
23
  syncServerName: "core",
19
24
  syncServer: coreServer.node,
20
25
  });
26
+ edgeFrance.addStorage({
27
+ ourName: "edge-france",
28
+ });
21
29
  return { coreServer, edgeItaly, edgeFrance };
22
30
  }
23
31
  describe("multiple clients syncing with the a cloud-like server mesh", () => {
24
- let mesh = setupMesh();
32
+ let mesh;
25
33
  beforeEach(async () => {
26
34
  SyncMessagesLog.clear();
27
35
  mesh = setupMesh();
@@ -32,6 +40,9 @@ describe("multiple clients syncing with the a cloud-like server mesh", () => {
32
40
  syncServerName: "edge-italy",
33
41
  syncServer: mesh.edgeItaly.node,
34
42
  });
43
+ await client.addAsyncStorage({
44
+ ourName: "client",
45
+ });
35
46
  const group = mesh.edgeFrance.node.createGroup();
36
47
  const map = group.createMap();
37
48
  map.set("hello", "world", "trusting");
@@ -43,28 +54,32 @@ describe("multiple clients syncing with the a cloud-like server mesh", () => {
43
54
  Map: map.core,
44
55
  })).toMatchInlineSnapshot(`
45
56
  [
57
+ "edge-france -> storage | CONTENT Group header: true new: After: 0 New: 3",
46
58
  "edge-france -> core | CONTENT Group header: true new: After: 0 New: 3",
47
- "core -> edge-france | KNOWN Group sessions: header/3",
48
- "core -> storage | LOAD Group sessions: header/3",
59
+ "edge-france -> storage | CONTENT Map header: true new: After: 0 New: 1",
49
60
  "edge-france -> core | CONTENT Map header: true new: After: 0 New: 1",
50
- "storage -> core | KNOWN Group sessions: empty",
51
- "core -> edge-france | KNOWN Map sessions: header/1",
52
- "core -> storage | LOAD Map sessions: header/1",
53
- "storage -> core | KNOWN Map sessions: empty",
61
+ "core -> edge-france | KNOWN Group sessions: header/3",
54
62
  "core -> storage | CONTENT Group header: true new: After: 0 New: 3",
55
- "storage -> core | KNOWN Group sessions: header/3",
63
+ "core -> edge-france | KNOWN Map sessions: header/1",
56
64
  "core -> storage | CONTENT Map header: true new: After: 0 New: 1",
65
+ "client -> storage | LOAD Map sessions: empty",
66
+ "storage -> client | KNOWN Map sessions: empty",
57
67
  "client -> edge-italy | LOAD Map sessions: empty",
58
- "storage -> core | KNOWN Map sessions: header/1",
68
+ "edge-italy -> storage | LOAD Map sessions: empty",
69
+ "storage -> edge-italy | KNOWN Map sessions: empty",
59
70
  "edge-italy -> core | LOAD Map sessions: empty",
60
71
  "core -> edge-italy | CONTENT Group header: true new: After: 0 New: 3",
61
- "edge-italy -> core | KNOWN Group sessions: header/3",
62
72
  "core -> edge-italy | CONTENT Map header: true new: After: 0 New: 1",
73
+ "edge-italy -> core | KNOWN Group sessions: header/3",
74
+ "edge-italy -> storage | CONTENT Group header: true new: After: 0 New: 3",
63
75
  "edge-italy -> core | KNOWN Map sessions: header/1",
76
+ "edge-italy -> storage | CONTENT Map header: true new: After: 0 New: 1",
64
77
  "edge-italy -> client | CONTENT Group header: true new: After: 0 New: 3",
65
- "client -> edge-italy | KNOWN Group sessions: header/3",
66
78
  "edge-italy -> client | CONTENT Map header: true new: After: 0 New: 1",
79
+ "client -> edge-italy | KNOWN Group sessions: header/3",
80
+ "client -> storage | CONTENT Group header: true new: After: 0 New: 3",
67
81
  "client -> edge-italy | KNOWN Map sessions: header/1",
82
+ "client -> storage | CONTENT Map header: true new: After: 0 New: 1",
68
83
  ]
69
84
  `);
70
85
  });
@@ -89,37 +104,36 @@ describe("multiple clients syncing with the a cloud-like server mesh", () => {
89
104
  Map: map.core,
90
105
  })).toMatchInlineSnapshot(`
91
106
  [
107
+ "edge-france -> storage | CONTENT Group header: true new: After: 0 New: 5",
92
108
  "edge-france -> core | CONTENT ParentGroup header: true new: After: 0 New: 6",
93
- "core -> edge-france | KNOWN ParentGroup sessions: header/6",
94
- "core -> storage | LOAD ParentGroup sessions: header/6",
95
109
  "edge-france -> core | CONTENT Group header: true new: After: 0 New: 5",
96
- "storage -> core | KNOWN ParentGroup sessions: empty",
97
- "core -> edge-france | KNOWN Group sessions: header/5",
98
- "core -> storage | LOAD Group sessions: header/5",
110
+ "edge-france -> storage | CONTENT ParentGroup header: true new: After: 0 New: 6",
111
+ "edge-france -> storage | CONTENT Map header: true new: After: 0 New: 1",
99
112
  "edge-france -> core | CONTENT Map header: true new: After: 0 New: 1",
100
- "storage -> core | KNOWN Group sessions: empty",
113
+ "core -> edge-france | KNOWN ParentGroup sessions: header/6",
101
114
  "core -> storage | CONTENT ParentGroup header: true new: After: 0 New: 6",
102
- "core -> edge-france | KNOWN Map sessions: header/1",
103
- "storage -> core | KNOWN ParentGroup sessions: header/6",
104
- "core -> storage | LOAD Map sessions: header/1",
105
- "storage -> core | KNOWN Map sessions: empty",
115
+ "core -> edge-france | KNOWN Group sessions: header/5",
106
116
  "core -> storage | CONTENT Group header: true new: After: 0 New: 5",
107
- "storage -> core | KNOWN Group sessions: header/5",
117
+ "core -> edge-france | KNOWN Map sessions: header/1",
108
118
  "core -> storage | CONTENT Map header: true new: After: 0 New: 1",
109
119
  "client -> edge-italy | LOAD Map sessions: empty",
110
- "storage -> core | KNOWN Map sessions: header/1",
120
+ "edge-italy -> storage | LOAD Map sessions: empty",
121
+ "storage -> edge-italy | KNOWN Map sessions: empty",
111
122
  "edge-italy -> core | LOAD Map sessions: empty",
112
123
  "core -> edge-italy | CONTENT ParentGroup header: true new: After: 0 New: 6",
113
- "edge-italy -> core | KNOWN ParentGroup sessions: header/6",
114
124
  "core -> edge-italy | CONTENT Group header: true new: After: 0 New: 5",
115
- "edge-italy -> core | KNOWN Group sessions: header/5",
116
125
  "core -> edge-italy | CONTENT Map header: true new: After: 0 New: 1",
126
+ "edge-italy -> core | KNOWN ParentGroup sessions: header/6",
127
+ "edge-italy -> storage | CONTENT ParentGroup header: true new: After: 0 New: 6",
128
+ "edge-italy -> core | KNOWN Group sessions: header/5",
129
+ "edge-italy -> storage | CONTENT Group header: true new: After: 0 New: 5",
117
130
  "edge-italy -> core | KNOWN Map sessions: header/1",
131
+ "edge-italy -> storage | CONTENT Map header: true new: After: 0 New: 1",
118
132
  "edge-italy -> client | CONTENT ParentGroup header: true new: After: 0 New: 6",
119
- "client -> edge-italy | KNOWN ParentGroup sessions: header/6",
120
133
  "edge-italy -> client | CONTENT Group header: true new: After: 0 New: 5",
121
- "client -> edge-italy | KNOWN Group sessions: header/5",
122
134
  "edge-italy -> client | CONTENT Map header: true new: After: 0 New: 1",
135
+ "client -> edge-italy | KNOWN ParentGroup sessions: header/6",
136
+ "client -> edge-italy | KNOWN Group sessions: header/5",
123
137
  "client -> edge-italy | KNOWN Map sessions: header/1",
124
138
  ]
125
139
  `);
@@ -149,12 +163,13 @@ describe("multiple clients syncing with the a cloud-like server mesh", () => {
149
163
  [
150
164
  "client -> edge-italy | CONTENT Map header: false new: After: 0 New: 1",
151
165
  "edge-italy -> client | KNOWN Map sessions: header/2",
166
+ "edge-italy -> storage | CONTENT Map header: false new: After: 0 New: 1",
152
167
  "edge-italy -> core | CONTENT Map header: false new: After: 0 New: 1",
153
168
  "core -> edge-italy | KNOWN Map sessions: header/2",
154
169
  "core -> storage | CONTENT Map header: false new: After: 0 New: 1",
155
170
  "core -> edge-france | CONTENT Map header: false new: After: 0 New: 1",
156
- "storage -> core | KNOWN Map sessions: header/2",
157
171
  "edge-france -> core | KNOWN Map sessions: header/2",
172
+ "edge-france -> storage | CONTENT Map header: false new: After: 0 New: 1",
158
173
  ]
159
174
  `);
160
175
  });
@@ -188,38 +203,34 @@ describe("multiple clients syncing with the a cloud-like server mesh", () => {
188
203
  })).toMatchInlineSnapshot(`
189
204
  [
190
205
  "client -> edge-italy | LOAD Map sessions: empty",
206
+ "edge-italy -> storage | CONTENT Group header: true new: After: 0 New: 5",
191
207
  "edge-italy -> core | CONTENT Group header: true new: After: 0 New: 5",
192
- "edge-italy -> client | CONTENT Group header: true new: After: 0 New: 5",
193
- "core -> edge-italy | KNOWN Group sessions: header/5",
194
- "core -> storage | LOAD Group sessions: header/5",
208
+ "edge-italy -> storage | CONTENT Map header: true new: After: 0 New: 1",
195
209
  "edge-italy -> core | CONTENT Map header: true new: After: 0 New: 1",
196
- "client -> edge-italy | KNOWN Group sessions: header/5",
210
+ "edge-italy -> client | CONTENT Group header: true new: After: 0 New: 5",
197
211
  "edge-italy -> client | CONTENT Map header: true new: After: 0 New: 1",
198
- "storage -> core | KNOWN Group sessions: empty",
199
- "core -> edge-italy | KNOWN Map sessions: header/3",
200
- "core -> storage | LOAD Map sessions: header/3",
201
- "client -> edge-italy | KNOWN Map sessions: header/1",
202
- "storage -> core | KNOWN Map sessions: empty",
212
+ "core -> edge-italy | KNOWN Group sessions: header/5",
203
213
  "core -> storage | CONTENT Group header: true new: After: 0 New: 5",
204
- "storage -> core | KNOWN Group sessions: header/5",
214
+ "core -> edge-italy | KNOWN Map sessions: header/1",
205
215
  "core -> storage | CONTENT Map header: true new: After: 0 New: 1",
206
- "storage -> core | KNOWN Map sessions: header/1",
216
+ "client -> edge-italy | KNOWN Group sessions: header/5",
217
+ "client -> edge-italy | KNOWN Map sessions: header/1",
207
218
  "client -> edge-italy | CONTENT Map header: false new: After: 0 New: 1",
208
219
  "core -> storage | CONTENT Map header: false new: After: 0 New: 1",
209
220
  "core -> edge-italy | CONTENT Map header: false new: After: 0 New: 1",
210
221
  "edge-italy -> client | KNOWN CORRECTION Map sessions: empty",
211
- "storage -> core | KNOWN Map sessions: header/2",
212
222
  "edge-italy -> core | KNOWN CORRECTION Map sessions: empty",
213
223
  "client -> edge-italy | CONTENT Map header: true new: After: 0 New: 1 | After: 0 New: 1",
214
224
  "core -> edge-italy | CONTENT Map header: true new: After: 0 New: 1 | After: 0 New: 1",
215
225
  "edge-italy -> client | KNOWN Map sessions: header/2",
226
+ "edge-italy -> storage | CONTENT Map header: true new: After: 0 New: 1 | After: 0 New: 1",
216
227
  "edge-italy -> core | CONTENT Map header: false new: After: 0 New: 1",
228
+ "edge-italy -> core | KNOWN Map sessions: header/3",
229
+ "edge-italy -> storage | CONTENT Map header: true new: After: 0 New: 1 | After: 0 New: 1",
217
230
  "edge-italy -> client | CONTENT Map header: false new: After: 0 New: 1",
218
231
  "core -> edge-italy | KNOWN Map sessions: header/3",
219
232
  "core -> storage | CONTENT Map header: false new: After: 0 New: 1",
220
- "edge-italy -> core | KNOWN Map sessions: header/3",
221
233
  "client -> edge-italy | KNOWN Map sessions: header/3",
222
- "storage -> core | KNOWN Map sessions: header/3",
223
234
  ]
224
235
  `);
225
236
  });
@@ -254,6 +265,7 @@ describe("multiple clients syncing with the a cloud-like server mesh", () => {
254
265
  [
255
266
  "client -> edge-italy | CONTENT Map header: false new: After: 0 New: 1",
256
267
  "edge-italy -> client | KNOWN Map sessions: header/1",
268
+ "edge-italy -> storage | CONTENT Map header: false new: After: 0 New: 1",
257
269
  ]
258
270
  `);
259
271
  });
@@ -266,12 +278,10 @@ describe("multiple clients syncing with the a cloud-like server mesh", () => {
266
278
  syncServerName: "core",
267
279
  });
268
280
  const storage = setupTestNode();
269
- const { peer: storagePeer } = client.connectToSyncServer({
270
- syncServerName: "storage",
281
+ client.connectToSyncServer({
282
+ syncServerName: "another-server",
271
283
  syncServer: storage.node,
272
284
  });
273
- storagePeer.role = "storage";
274
- storagePeer.priority = 100;
275
285
  const group = coreServer.node.createGroup();
276
286
  const map = group.createMap();
277
287
  map.set("hello", "world", "trusting");
@@ -292,14 +302,14 @@ describe("multiple clients syncing with the a cloud-like server mesh", () => {
292
302
  Map: map.core,
293
303
  })).toMatchInlineSnapshot(`
294
304
  [
295
- "client -> storage | LOAD Map sessions: empty",
296
- "storage -> client | CONTENT Group header: true new: After: 0 New: 3",
297
- "client -> storage | KNOWN Group sessions: header/3",
305
+ "client -> core | LOAD Map sessions: empty",
306
+ "client -> another-server | LOAD Map sessions: empty",
307
+ "core -> storage-of-client | CONTENT Map header: false new: After: 1 New: 1",
308
+ "another-server -> client | CONTENT Group header: true new: After: 0 New: 3",
309
+ "another-server -> client | CONTENT Map header: true new: After: 0 New: 1",
310
+ "client -> another-server | KNOWN Group sessions: header/3",
298
311
  "client -> core | LOAD Group sessions: header/3",
299
- "storage -> client | CONTENT Map header: true new: After: 0 New: 1",
300
- "core -> client | KNOWN Group sessions: header/3",
301
- "client -> storage | KNOWN Map sessions: header/1",
302
- "client -> core | LOAD Map sessions: header/1",
312
+ "client -> another-server | KNOWN Map sessions: header/1",
303
313
  ]
304
314
  `);
305
315
  expect(mapOnClient.get("hello")).toEqual("world");
@@ -340,12 +350,119 @@ describe("multiple clients syncing with the a cloud-like server mesh", () => {
340
350
  [
341
351
  "client -> another-server | LOAD Map sessions: empty",
342
352
  "another-server -> client | CONTENT Group header: true new: After: 0 New: 3",
343
- "client -> another-server | KNOWN Group sessions: header/3",
344
353
  "another-server -> client | CONTENT Map header: true new: After: 0 New: 1",
354
+ "client -> another-server | KNOWN Group sessions: header/3",
345
355
  "client -> another-server | KNOWN Map sessions: header/1",
346
356
  ]
347
357
  `);
348
358
  expect(mapOnClient.get("hello")).toEqual("world");
349
359
  });
360
+ test("large coValue streaming from an edge to the core server and a client at the same time", async () => {
361
+ const edge = setupTestNode();
362
+ const { storage } = edge.addStorage({
363
+ ourName: "edge",
364
+ });
365
+ const group = edge.node.createGroup();
366
+ group.addMember("everyone", "writer");
367
+ const largeMap = group.createMap();
368
+ // Generate a large amount of data (about 100MB)
369
+ const dataSize = 1 * 200 * 1024;
370
+ const chunkSize = 1024; // 1KB chunks
371
+ const chunks = dataSize / chunkSize;
372
+ const value = Buffer.alloc(chunkSize, `value$`).toString("base64");
373
+ for (let i = 0; i < chunks; i++) {
374
+ const key = `key${i}`;
375
+ largeMap.set(key, value, "trusting");
376
+ }
377
+ await largeMap.core.waitForSync();
378
+ expect(SyncMessagesLog.getMessages({
379
+ Group: group.core,
380
+ Map: largeMap.core,
381
+ })).toMatchInlineSnapshot(`
382
+ [
383
+ "edge -> storage | CONTENT Group header: true new: After: 0 New: 5",
384
+ "edge -> storage | CONTENT Map header: true new: expectContentUntil: header/200",
385
+ "edge -> storage | CONTENT Map header: false new: After: 0 New: 73",
386
+ "edge -> storage | CONTENT Map header: false new: After: 73 New: 73",
387
+ "edge -> storage | CONTENT Map header: false new: After: 146 New: 54",
388
+ ]
389
+ `);
390
+ edge.restart();
391
+ edge.connectToSyncServer({
392
+ syncServerName: "core",
393
+ ourName: "edge",
394
+ syncServer: mesh.coreServer.node,
395
+ });
396
+ edge.addStorage({
397
+ storage,
398
+ });
399
+ SyncMessagesLog.clear();
400
+ const client = setupTestNode();
401
+ client.connectToSyncServer({
402
+ syncServerName: "edge",
403
+ syncServer: edge.node,
404
+ });
405
+ client.addStorage({
406
+ ourName: "client",
407
+ });
408
+ const mapOnClient = await loadCoValueOrFail(client.node, largeMap.id);
409
+ await waitFor(() => {
410
+ expect(mapOnClient.core.knownState()).toEqual(largeMap.core.knownState());
411
+ });
412
+ expect(SyncMessagesLog.getMessages({
413
+ Group: group.core,
414
+ Map: largeMap.core,
415
+ })).toMatchInlineSnapshot(`
416
+ [
417
+ "client -> storage | LOAD Map sessions: empty",
418
+ "storage -> client | KNOWN Map sessions: empty",
419
+ "client -> edge | LOAD Map sessions: empty",
420
+ "edge -> storage | LOAD Map sessions: empty",
421
+ "storage -> edge | CONTENT Group header: true new: After: 0 New: 5",
422
+ "edge -> core | LOAD Group sessions: header/5",
423
+ "storage -> edge | CONTENT Map header: true new: After: 0 New: 73 expectContentUntil: header/200",
424
+ "edge -> core | LOAD Map sessions: header/200",
425
+ "edge -> client | CONTENT Group header: true new: After: 0 New: 5",
426
+ "edge -> client | CONTENT Map header: true new: expectContentUntil: header/200",
427
+ "edge -> client | CONTENT Map header: false new: After: 0 New: 73",
428
+ "core -> storage | LOAD Group sessions: empty",
429
+ "storage -> core | KNOWN Group sessions: empty",
430
+ "core -> edge | KNOWN Group sessions: empty",
431
+ "core -> storage | LOAD Map sessions: empty",
432
+ "storage -> core | KNOWN Map sessions: empty",
433
+ "core -> edge | KNOWN Map sessions: empty",
434
+ "client -> edge | KNOWN Group sessions: header/5",
435
+ "client -> storage | CONTENT Group header: true new: After: 0 New: 5",
436
+ "client -> edge | KNOWN Map sessions: header/0",
437
+ "client -> storage | CONTENT Map header: true new: expectContentUntil: header/200",
438
+ "client -> edge | KNOWN Map sessions: header/73",
439
+ "client -> storage | CONTENT Map header: false new: After: 0 New: 73",
440
+ "storage -> edge | CONTENT Map header: true new: After: 73 New: 73",
441
+ "edge -> client | CONTENT Map header: false new: After: 73 New: 73",
442
+ "edge -> core | CONTENT Group header: true new: After: 0 New: 5",
443
+ "edge -> core | CONTENT Map header: true new: expectContentUntil: header/200",
444
+ "edge -> core | CONTENT Map header: false new: After: 0 New: 73",
445
+ "edge -> core | CONTENT Map header: false new: After: 73 New: 73",
446
+ "client -> edge | KNOWN Map sessions: header/146",
447
+ "client -> storage | CONTENT Map header: false new: After: 73 New: 73",
448
+ "storage -> edge | CONTENT Map header: true new: After: 146 New: 54",
449
+ "edge -> core | CONTENT Map header: false new: After: 146 New: 54",
450
+ "edge -> client | CONTENT Map header: false new: After: 146 New: 54",
451
+ "core -> edge | KNOWN Group sessions: header/5",
452
+ "core -> storage | CONTENT Group header: true new: After: 0 New: 5",
453
+ "core -> edge | KNOWN Map sessions: header/0",
454
+ "core -> storage | CONTENT Map header: true new: expectContentUntil: header/200",
455
+ "core -> edge | KNOWN Map sessions: header/73",
456
+ "core -> storage | CONTENT Map header: false new: After: 0 New: 73",
457
+ "core -> edge | KNOWN Map sessions: header/146",
458
+ "core -> storage | CONTENT Map header: false new: After: 73 New: 73",
459
+ "core -> edge | KNOWN Map sessions: header/200",
460
+ "core -> storage | CONTENT Map header: false new: After: 146 New: 54",
461
+ "client -> edge | KNOWN Map sessions: header/200",
462
+ "client -> storage | CONTENT Map header: false new: After: 146 New: 54",
463
+ ]
464
+ `);
465
+ expect(mapOnClient.core.knownState()).toEqual(largeMap.core.knownState());
466
+ });
350
467
  });
351
468
  //# sourceMappingURL=sync.mesh.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sync.mesh.test.js","sourceRoot":"","sources":["../../src/tests/sync.mesh.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync.mesh.test.js","sourceRoot":"","sources":["../../src/tests/sync.mesh.test.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
1
  import { assert, beforeEach, describe, expect, test } from "vitest";
2
2
  import { expectMap } from "../coValue";
3
- import { SyncMessagesLog, setupTestAccount, setupTestNode, waitFor, } from "./testUtils";
4
- let jazzCloud = setupTestNode({ isSyncServer: true });
3
+ import { SyncMessagesLog, TEST_NODE_CONFIG, setupTestAccount, setupTestNode, waitFor, } from "./testUtils";
4
+ // We want to simulate a real world communication that happens asynchronously
5
+ TEST_NODE_CONFIG.withAsyncPeers = true;
6
+ let jazzCloud;
5
7
  beforeEach(async () => {
6
8
  SyncMessagesLog.clear();
7
9
  jazzCloud = setupTestNode({ isSyncServer: true });
@@ -20,12 +22,12 @@ describe("peer reconciliation", () => {
20
22
  })).toMatchInlineSnapshot(`
21
23
  [
22
24
  "client -> server | LOAD Group sessions: header/3",
23
- "server -> client | KNOWN Group sessions: empty",
24
25
  "client -> server | LOAD Map sessions: header/1",
25
- "server -> client | KNOWN Map sessions: empty",
26
26
  "client -> server | CONTENT Group header: true new: After: 0 New: 3",
27
- "server -> client | KNOWN Group sessions: header/3",
28
27
  "client -> server | CONTENT Map header: true new: After: 0 New: 1",
28
+ "server -> client | KNOWN Group sessions: empty",
29
+ "server -> client | KNOWN Map sessions: empty",
30
+ "server -> client | KNOWN Group sessions: header/3",
29
31
  "server -> client | KNOWN Map sessions: header/1",
30
32
  ]
31
33
  `);
@@ -51,10 +53,10 @@ describe("peer reconciliation", () => {
51
53
  })).toMatchInlineSnapshot(`
52
54
  [
53
55
  "client -> server | LOAD Group sessions: header/3",
54
- "server -> client | KNOWN Group sessions: header/3",
55
56
  "client -> server | LOAD Map sessions: header/2",
56
- "server -> client | KNOWN Map sessions: header/1",
57
57
  "client -> server | CONTENT Map header: false new: After: 1 New: 1",
58
+ "server -> client | KNOWN Group sessions: header/3",
59
+ "server -> client | KNOWN Map sessions: header/1",
58
60
  "server -> client | KNOWN Map sessions: header/2",
59
61
  ]
60
62
  `);
@@ -87,11 +89,12 @@ describe("peer reconciliation", () => {
87
89
  })).toMatchInlineSnapshot(`
88
90
  [
89
91
  "client -> server | LOAD Group sessions: header/3",
92
+ "client -> server | LOAD Map sessions: header/2",
90
93
  "client -> server | LOAD Group sessions: header/3",
91
- "server -> client | KNOWN Group sessions: header/3",
92
94
  "client -> server | LOAD Map sessions: header/2",
93
- "server -> client | KNOWN Map sessions: header/1",
94
95
  "client -> server | CONTENT Map header: false new: After: 1 New: 1",
96
+ "server -> client | KNOWN Group sessions: header/3",
97
+ "server -> client | KNOWN Map sessions: header/1",
95
98
  "server -> client | KNOWN Map sessions: header/2",
96
99
  ]
97
100
  `);
@@ -120,20 +123,21 @@ describe("peer reconciliation", () => {
120
123
  })).toMatchInlineSnapshot(`
121
124
  [
122
125
  "client -> server | LOAD Group sessions: header/3",
126
+ "client -> server | LOAD Map sessions: header/1",
127
+ "client -> server | CONTENT Map header: false new: After: 1 New: 1",
123
128
  "server -> client | KNOWN Group sessions: empty",
129
+ "server -> client | KNOWN Map sessions: empty",
130
+ "client -> server | LOAD Group sessions: header/3",
124
131
  "client -> server | LOAD Map sessions: header/2",
132
+ "server -> client | KNOWN Group sessions: empty",
125
133
  "server -> client | KNOWN Map sessions: empty",
126
134
  "client -> server | CONTENT Map header: false new: After: 1 New: 1",
127
135
  "server -> client | KNOWN CORRECTION Map sessions: empty",
128
136
  "client -> server | CONTENT Map header: true new: After: 0 New: 2",
129
137
  "server -> client | LOAD Group sessions: empty",
130
- "client -> server | CONTENT Group header: true new: After: 0 New: 3",
131
138
  "server -> client | KNOWN Map sessions: empty",
139
+ "client -> server | CONTENT Group header: true new: After: 0 New: 3",
132
140
  "server -> client | KNOWN Group sessions: header/3",
133
- "client -> server | LOAD Group sessions: header/3",
134
- "server -> client | KNOWN Group sessions: header/3",
135
- "client -> server | LOAD Map sessions: header/2",
136
- "server -> client | KNOWN Map sessions: header/2",
137
141
  ]
138
142
  `);
139
143
  });
@@ -167,36 +171,42 @@ describe("peer reconciliation", () => {
167
171
  })).toMatchInlineSnapshot(`
168
172
  [
169
173
  "client -> server | LOAD Account sessions: header/4",
170
- "server -> client | KNOWN Account sessions: empty",
171
174
  "client -> server | LOAD ProfileGroup sessions: header/5",
172
- "server -> client | KNOWN ProfileGroup sessions: empty",
173
175
  "client -> server | LOAD Profile sessions: header/1",
174
- "server -> client | KNOWN Profile sessions: empty",
175
176
  "client -> server | LOAD Group sessions: header/3",
177
+ "client -> server | LOAD Map sessions: header/1",
178
+ "client -> server | CONTENT Map header: false new: After: 1 New: 1",
179
+ "server -> client | KNOWN Account sessions: empty",
180
+ "server -> client | KNOWN ProfileGroup sessions: empty",
181
+ "server -> client | KNOWN Profile sessions: empty",
176
182
  "server -> client | KNOWN Group sessions: empty",
183
+ "server -> client | KNOWN Map sessions: empty",
184
+ "client -> server | LOAD Account sessions: header/4",
185
+ "client -> server | LOAD ProfileGroup sessions: header/5",
186
+ "client -> server | LOAD Profile sessions: header/1",
187
+ "client -> server | LOAD Group sessions: header/3",
177
188
  "client -> server | LOAD Map sessions: header/2",
189
+ "server -> client | KNOWN Account sessions: empty",
190
+ "server -> client | KNOWN ProfileGroup sessions: empty",
191
+ "server -> client | KNOWN Profile sessions: empty",
192
+ "server -> client | KNOWN Group sessions: empty",
178
193
  "server -> client | KNOWN Map sessions: empty",
194
+ "client -> server | CONTENT ProfileGroup header: true new: After: 0 New: 5",
195
+ "client -> server | CONTENT Profile header: true new: After: 0 New: 1",
179
196
  "client -> server | CONTENT Map header: false new: After: 1 New: 1",
180
- "server -> client | KNOWN CORRECTION Map sessions: empty",
181
- "client -> server | CONTENT Map header: true new: After: 0 New: 2",
182
197
  "server -> client | LOAD Account sessions: empty",
198
+ "server -> client | KNOWN ProfileGroup sessions: empty",
199
+ "server -> client | KNOWN Profile sessions: empty",
200
+ "server -> client | KNOWN CORRECTION Map sessions: empty",
183
201
  "client -> server | CONTENT Account header: true new: After: 0 New: 4",
184
- "server -> client | LOAD Group sessions: empty",
185
- "client -> server | CONTENT Group header: true new: After: 0 New: 3",
186
- "server -> client | KNOWN Map sessions: empty",
202
+ "client -> server | CONTENT Map header: true new: After: 0 New: 2",
187
203
  "server -> client | KNOWN Account sessions: header/4",
204
+ "server -> client | KNOWN ProfileGroup sessions: header/5",
205
+ "server -> client | KNOWN Profile sessions: header/1",
206
+ "server -> client | LOAD Group sessions: empty",
188
207
  "server -> client | KNOWN Map sessions: empty",
208
+ "client -> server | CONTENT Group header: true new: After: 0 New: 3",
189
209
  "server -> client | KNOWN Group sessions: header/3",
190
- "client -> server | LOAD Account sessions: header/4",
191
- "server -> client | KNOWN Account sessions: header/4",
192
- "client -> server | LOAD ProfileGroup sessions: header/5",
193
- "server -> client | KNOWN ProfileGroup sessions: empty",
194
- "client -> server | LOAD Profile sessions: header/1",
195
- "server -> client | KNOWN Profile sessions: empty",
196
- "client -> server | LOAD Group sessions: header/3",
197
- "server -> client | KNOWN Group sessions: header/3",
198
- "client -> server | LOAD Map sessions: header/2",
199
- "server -> client | KNOWN Map sessions: header/2",
200
210
  ]
201
211
  `);
202
212
  });
@@ -1 +1 @@
1
- {"version":3,"file":"sync.peerReconciliation.test.js","sourceRoot":"","sources":["../../src/tests/sync.peerReconciliation.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync.peerReconciliation.test.js","sourceRoot":"","sources":["../../src/tests/sync.peerReconciliation.test.ts"],"names":[],"mappings":"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"}