cojson 0.20.7 → 0.20.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 (209) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +26 -0
  3. package/dist/SyncStateManager.d.ts.map +1 -1
  4. package/dist/SyncStateManager.js +0 -2
  5. package/dist/SyncStateManager.js.map +1 -1
  6. package/dist/base64url.d.ts +15 -0
  7. package/dist/base64url.d.ts.map +1 -1
  8. package/dist/base64url.js +101 -5
  9. package/dist/base64url.js.map +1 -1
  10. package/dist/base64url.test.js +76 -1
  11. package/dist/base64url.test.js.map +1 -1
  12. package/dist/coValue.d.ts +2 -1
  13. package/dist/coValue.d.ts.map +1 -1
  14. package/dist/coValue.js.map +1 -1
  15. package/dist/coValueCore/coValueCore.d.ts +9 -11
  16. package/dist/coValueCore/coValueCore.d.ts.map +1 -1
  17. package/dist/coValueCore/coValueCore.js +92 -65
  18. package/dist/coValueCore/coValueCore.js.map +1 -1
  19. package/dist/coValueCore/verifiedState.d.ts +38 -7
  20. package/dist/coValueCore/verifiedState.d.ts.map +1 -1
  21. package/dist/coValueCore/verifiedState.js +226 -30
  22. package/dist/coValueCore/verifiedState.js.map +1 -1
  23. package/dist/coValues/binaryCoStream.d.ts +63 -0
  24. package/dist/coValues/binaryCoStream.d.ts.map +1 -0
  25. package/dist/coValues/binaryCoStream.js +125 -0
  26. package/dist/coValues/binaryCoStream.js.map +1 -0
  27. package/dist/coValues/coList.d.ts +3 -1
  28. package/dist/coValues/coList.d.ts.map +1 -1
  29. package/dist/coValues/coList.js +15 -6
  30. package/dist/coValues/coList.js.map +1 -1
  31. package/dist/coValues/coMap.d.ts +1 -1
  32. package/dist/coValues/coMap.d.ts.map +1 -1
  33. package/dist/coValues/coMap.js +2 -2
  34. package/dist/coValues/coMap.js.map +1 -1
  35. package/dist/coValues/coStream.d.ts +0 -38
  36. package/dist/coValues/coStream.d.ts.map +1 -1
  37. package/dist/coValues/coStream.js +0 -86
  38. package/dist/coValues/coStream.js.map +1 -1
  39. package/dist/coValues/group.d.ts +44 -6
  40. package/dist/coValues/group.d.ts.map +1 -1
  41. package/dist/coValues/group.js +198 -17
  42. package/dist/coValues/group.js.map +1 -1
  43. package/dist/coreToCoValue.d.ts +2 -1
  44. package/dist/coreToCoValue.d.ts.map +1 -1
  45. package/dist/coreToCoValue.js +2 -1
  46. package/dist/coreToCoValue.js.map +1 -1
  47. package/dist/crypto/NapiCrypto.d.ts +18 -24
  48. package/dist/crypto/NapiCrypto.d.ts.map +1 -1
  49. package/dist/crypto/NapiCrypto.js +98 -60
  50. package/dist/crypto/NapiCrypto.js.map +1 -1
  51. package/dist/crypto/RNCrypto.d.ts +16 -3
  52. package/dist/crypto/RNCrypto.d.ts.map +1 -1
  53. package/dist/crypto/RNCrypto.js +117 -54
  54. package/dist/crypto/RNCrypto.js.map +1 -1
  55. package/dist/crypto/WasmCrypto.d.ts +18 -24
  56. package/dist/crypto/WasmCrypto.d.ts.map +1 -1
  57. package/dist/crypto/WasmCrypto.js +100 -61
  58. package/dist/crypto/WasmCrypto.js.map +1 -1
  59. package/dist/crypto/crypto.d.ts +55 -19
  60. package/dist/crypto/crypto.d.ts.map +1 -1
  61. package/dist/crypto/crypto.js +14 -3
  62. package/dist/crypto/crypto.js.map +1 -1
  63. package/dist/exports.d.ts +7 -3
  64. package/dist/exports.d.ts.map +1 -1
  65. package/dist/exports.js +4 -2
  66. package/dist/exports.js.map +1 -1
  67. package/dist/localNode.d.ts +3 -1
  68. package/dist/localNode.d.ts.map +1 -1
  69. package/dist/localNode.js +10 -3
  70. package/dist/localNode.js.map +1 -1
  71. package/dist/media.d.ts +1 -1
  72. package/dist/media.d.ts.map +1 -1
  73. package/dist/permissions.d.ts +2 -1
  74. package/dist/permissions.d.ts.map +1 -1
  75. package/dist/permissions.js +19 -3
  76. package/dist/permissions.js.map +1 -1
  77. package/dist/storage/sqliteAsync/client.d.ts +24 -12
  78. package/dist/storage/sqliteAsync/client.d.ts.map +1 -1
  79. package/dist/storage/sqliteAsync/client.js +70 -58
  80. package/dist/storage/sqliteAsync/client.js.map +1 -1
  81. package/dist/storage/sqliteAsync/types.d.ts +1 -1
  82. package/dist/storage/sqliteAsync/types.d.ts.map +1 -1
  83. package/dist/storage/types.d.ts +1 -0
  84. package/dist/storage/types.d.ts.map +1 -1
  85. package/dist/sync.d.ts.map +1 -1
  86. package/dist/sync.js +7 -1
  87. package/dist/sync.js.map +1 -1
  88. package/dist/tests/CojsonMessageChannel.test.js +2 -2
  89. package/dist/tests/SQLiteClientAsync.test.d.ts +2 -0
  90. package/dist/tests/SQLiteClientAsync.test.d.ts.map +1 -0
  91. package/dist/tests/SQLiteClientAsync.test.js +64 -0
  92. package/dist/tests/SQLiteClientAsync.test.js.map +1 -0
  93. package/dist/tests/StorageApiAsync.test.js +2 -8
  94. package/dist/tests/StorageApiAsync.test.js.map +1 -1
  95. package/dist/tests/SyncStateManager.test.js +2 -2
  96. package/dist/tests/WasmCrypto.test.js +1 -15
  97. package/dist/tests/WasmCrypto.test.js.map +1 -1
  98. package/dist/tests/coList.test.js +24 -5
  99. package/dist/tests/coList.test.js.map +1 -1
  100. package/dist/tests/coStream.test.js +4 -3
  101. package/dist/tests/coStream.test.js.map +1 -1
  102. package/dist/tests/coValueCore.initTransaction.test.d.ts +2 -0
  103. package/dist/tests/coValueCore.initTransaction.test.d.ts.map +1 -0
  104. package/dist/tests/coValueCore.initTransaction.test.js +438 -0
  105. package/dist/tests/coValueCore.initTransaction.test.js.map +1 -0
  106. package/dist/tests/coValueCore.test.js +11 -19
  107. package/dist/tests/coValueCore.test.js.map +1 -1
  108. package/dist/tests/crypto.test.js +83 -0
  109. package/dist/tests/crypto.test.js.map +1 -1
  110. package/dist/tests/deleteCoValue.test.js +5 -5
  111. package/dist/tests/deleteCoValue.test.js.map +1 -1
  112. package/dist/tests/group.inheritance.test.js +11 -0
  113. package/dist/tests/group.inheritance.test.js.map +1 -1
  114. package/dist/tests/group.test.js +24 -1
  115. package/dist/tests/group.test.js.map +1 -1
  116. package/dist/tests/groupSealer.test.d.ts +2 -0
  117. package/dist/tests/groupSealer.test.d.ts.map +1 -0
  118. package/dist/tests/groupSealer.test.js +913 -0
  119. package/dist/tests/groupSealer.test.js.map +1 -0
  120. package/dist/tests/setup.js +5 -0
  121. package/dist/tests/setup.js.map +1 -1
  122. package/dist/tests/sync.auth.test.js +10 -10
  123. package/dist/tests/sync.concurrentLoad.test.js +12 -12
  124. package/dist/tests/sync.deleted.test.js +8 -8
  125. package/dist/tests/sync.garbageCollection.test.js +10 -10
  126. package/dist/tests/sync.invite.test.js +12 -12
  127. package/dist/tests/sync.known.test.js +2 -2
  128. package/dist/tests/sync.load.test.js +107 -107
  129. package/dist/tests/sync.mesh.test.js +164 -46
  130. package/dist/tests/sync.mesh.test.js.map +1 -1
  131. package/dist/tests/sync.multipleServers.test.js +43 -43
  132. package/dist/tests/sync.peerReconciliation.test.js +29 -29
  133. package/dist/tests/sync.sharding.test.js +3 -3
  134. package/dist/tests/sync.storage.test.js +104 -104
  135. package/dist/tests/sync.storage.test.js.map +1 -1
  136. package/dist/tests/sync.storageAsync.test.js +56 -56
  137. package/dist/tests/sync.upload.test.js +22 -22
  138. package/dist/tests/testStorage.d.ts +2 -0
  139. package/dist/tests/testStorage.d.ts.map +1 -1
  140. package/dist/tests/testStorage.js +30 -6
  141. package/dist/tests/testStorage.js.map +1 -1
  142. package/dist/typeUtils/isCoValue.js +1 -1
  143. package/dist/typeUtils/isCoValue.js.map +1 -1
  144. package/package.json +4 -4
  145. package/src/SyncStateManager.ts +0 -2
  146. package/src/base64url.test.ts +89 -1
  147. package/src/base64url.ts +134 -6
  148. package/src/coValue.ts +2 -1
  149. package/src/coValueCore/coValueCore.ts +126 -84
  150. package/src/coValueCore/verifiedState.ts +335 -53
  151. package/src/coValues/binaryCoStream.ts +217 -0
  152. package/src/coValues/coList.ts +21 -8
  153. package/src/coValues/coMap.ts +3 -0
  154. package/src/coValues/coStream.ts +0 -170
  155. package/src/coValues/group.ts +270 -21
  156. package/src/coreToCoValue.ts +2 -1
  157. package/src/crypto/NapiCrypto.ts +198 -95
  158. package/src/crypto/RNCrypto.ts +229 -102
  159. package/src/crypto/WasmCrypto.ts +201 -95
  160. package/src/crypto/crypto.ts +118 -45
  161. package/src/exports.ts +11 -5
  162. package/src/localNode.ts +17 -1
  163. package/src/media.ts +1 -1
  164. package/src/permissions.ts +30 -7
  165. package/src/storage/sqliteAsync/client.ts +136 -115
  166. package/src/storage/sqliteAsync/types.ts +3 -1
  167. package/src/storage/types.ts +4 -0
  168. package/src/sync.ts +10 -1
  169. package/src/tests/CojsonMessageChannel.test.ts +2 -2
  170. package/src/tests/SQLiteClientAsync.test.ts +75 -0
  171. package/src/tests/StorageApiAsync.test.ts +4 -9
  172. package/src/tests/SyncStateManager.test.ts +2 -2
  173. package/src/tests/WasmCrypto.test.ts +1 -25
  174. package/src/tests/coList.test.ts +39 -5
  175. package/src/tests/coStream.test.ts +4 -5
  176. package/src/tests/coValueCore.initTransaction.test.ts +836 -0
  177. package/src/tests/coValueCore.test.ts +11 -22
  178. package/src/tests/crypto.test.ts +107 -0
  179. package/src/tests/deleteCoValue.test.ts +5 -5
  180. package/src/tests/group.inheritance.test.ts +16 -0
  181. package/src/tests/group.test.ts +29 -1
  182. package/src/tests/groupSealer.test.ts +1473 -0
  183. package/src/tests/setup.ts +6 -0
  184. package/src/tests/sync.auth.test.ts +10 -10
  185. package/src/tests/sync.concurrentLoad.test.ts +12 -12
  186. package/src/tests/sync.deleted.test.ts +8 -8
  187. package/src/tests/sync.garbageCollection.test.ts +10 -10
  188. package/src/tests/sync.invite.test.ts +12 -12
  189. package/src/tests/sync.known.test.ts +2 -2
  190. package/src/tests/sync.load.test.ts +107 -107
  191. package/src/tests/sync.mesh.test.ts +189 -46
  192. package/src/tests/sync.multipleServers.test.ts +43 -43
  193. package/src/tests/sync.peerReconciliation.test.ts +29 -29
  194. package/src/tests/sync.sharding.test.ts +3 -3
  195. package/src/tests/sync.storage.test.ts +104 -104
  196. package/src/tests/sync.storageAsync.test.ts +56 -56
  197. package/src/tests/sync.upload.test.ts +22 -22
  198. package/src/tests/testStorage.ts +39 -9
  199. package/src/typeUtils/isCoValue.ts +1 -1
  200. package/dist/coValueCore/SessionMap.d.ts +0 -55
  201. package/dist/coValueCore/SessionMap.d.ts.map +0 -1
  202. package/dist/coValueCore/SessionMap.js +0 -206
  203. package/dist/coValueCore/SessionMap.js.map +0 -1
  204. package/dist/tests/coreWasm.test.d.ts +0 -2
  205. package/dist/tests/coreWasm.test.d.ts.map +0 -1
  206. package/dist/tests/coreWasm.test.js +0 -203
  207. package/dist/tests/coreWasm.test.js.map +0 -1
  208. package/src/coValueCore/SessionMap.ts +0 -394
  209. package/src/tests/coreWasm.test.ts +0 -452
@@ -60,12 +60,12 @@ describe("multiple clients syncing with the a cloud-like server mesh", () => {
60
60
  Map: map.core,
61
61
  })).toMatchInlineSnapshot(`
62
62
  [
63
- "edge-france -> storage | CONTENT Group header: true new: After: 0 New: 3",
64
- "edge-france -> core | CONTENT Group header: true new: After: 0 New: 3",
63
+ "edge-france -> storage | CONTENT Group header: true new: After: 0 New: 4",
64
+ "edge-france -> core | CONTENT Group header: true new: After: 0 New: 4",
65
65
  "edge-france -> storage | CONTENT Map header: true new: After: 0 New: 1",
66
66
  "edge-france -> core | CONTENT Map header: true new: After: 0 New: 1",
67
- "core -> edge-france | KNOWN Group sessions: header/3",
68
- "core -> storage | CONTENT Group header: true new: After: 0 New: 3",
67
+ "core -> edge-france | KNOWN Group sessions: header/4",
68
+ "core -> storage | CONTENT Group header: true new: After: 0 New: 4",
69
69
  "core -> edge-france | KNOWN Map sessions: header/1",
70
70
  "core -> storage | CONTENT Map header: true new: After: 0 New: 1",
71
71
  "client -> storage | LOAD Map sessions: empty",
@@ -74,16 +74,16 @@ describe("multiple clients syncing with the a cloud-like server mesh", () => {
74
74
  "edge-italy -> storage | LOAD Map sessions: empty",
75
75
  "storage -> edge-italy | KNOWN Map sessions: empty",
76
76
  "edge-italy -> core | LOAD Map sessions: empty",
77
- "core -> edge-italy | CONTENT Group header: true new: After: 0 New: 3",
77
+ "core -> edge-italy | CONTENT Group header: true new: After: 0 New: 4",
78
78
  "core -> edge-italy | CONTENT Map header: true new: After: 0 New: 1",
79
- "edge-italy -> core | KNOWN Group sessions: header/3",
80
- "edge-italy -> storage | CONTENT Group header: true new: After: 0 New: 3",
79
+ "edge-italy -> core | KNOWN Group sessions: header/4",
80
+ "edge-italy -> storage | CONTENT Group header: true new: After: 0 New: 4",
81
81
  "edge-italy -> core | KNOWN Map sessions: header/1",
82
82
  "edge-italy -> storage | CONTENT Map header: true new: After: 0 New: 1",
83
- "edge-italy -> client | CONTENT Group header: true new: After: 0 New: 3",
83
+ "edge-italy -> client | CONTENT Group header: true new: After: 0 New: 4",
84
84
  "edge-italy -> client | CONTENT Map header: true new: After: 0 New: 1",
85
- "client -> edge-italy | KNOWN Group sessions: header/3",
86
- "client -> storage | CONTENT Group header: true new: After: 0 New: 3",
85
+ "client -> edge-italy | KNOWN Group sessions: header/4",
86
+ "client -> storage | CONTENT Group header: true new: After: 0 New: 4",
87
87
  "client -> edge-italy | KNOWN Map sessions: header/1",
88
88
  "client -> storage | CONTENT Map header: true new: After: 0 New: 1",
89
89
  ]
@@ -113,18 +113,18 @@ describe("multiple clients syncing with the a cloud-like server mesh", () => {
113
113
  Map: map.core,
114
114
  })).toMatchInlineSnapshot(`
115
115
  [
116
- "edge-france -> storage | CONTENT Group header: true new: After: 0 New: 3",
117
- "edge-france -> core | CONTENT Group header: true new: After: 0 New: 3",
118
- "edge-france -> storage | CONTENT ParentGroup header: true new: After: 0 New: 5",
119
- "edge-france -> core | CONTENT ParentGroup header: true new: After: 0 New: 5",
120
- "edge-france -> storage | CONTENT Group header: false new: After: 3 New: 2",
121
- "edge-france -> core | CONTENT Group header: false new: After: 3 New: 2",
122
- "core -> edge-france | KNOWN Group sessions: header/3",
123
- "core -> storage | CONTENT Group header: true new: After: 0 New: 3",
124
- "core -> edge-france | KNOWN ParentGroup sessions: header/5",
125
- "core -> storage | CONTENT ParentGroup header: true new: After: 0 New: 5",
126
- "core -> edge-france | KNOWN Group sessions: header/5",
127
- "core -> storage | CONTENT Group header: false new: After: 3 New: 2",
116
+ "edge-france -> storage | CONTENT Group header: true new: After: 0 New: 4",
117
+ "edge-france -> core | CONTENT Group header: true new: After: 0 New: 4",
118
+ "edge-france -> storage | CONTENT ParentGroup header: true new: After: 0 New: 6",
119
+ "edge-france -> core | CONTENT ParentGroup header: true new: After: 0 New: 6",
120
+ "edge-france -> storage | CONTENT Group header: false new: After: 4 New: 2",
121
+ "edge-france -> core | CONTENT Group header: false new: After: 4 New: 2",
122
+ "core -> edge-france | KNOWN Group sessions: header/4",
123
+ "core -> storage | CONTENT Group header: true new: After: 0 New: 4",
124
+ "core -> edge-france | KNOWN ParentGroup sessions: header/6",
125
+ "core -> storage | CONTENT ParentGroup header: true new: After: 0 New: 6",
126
+ "core -> edge-france | KNOWN Group sessions: header/6",
127
+ "core -> storage | CONTENT Group header: false new: After: 4 New: 2",
128
128
  "edge-france -> storage | CONTENT Map header: true new: After: 0 New: 1",
129
129
  "edge-france -> core | CONTENT Map header: true new: After: 0 New: 1",
130
130
  "core -> edge-france | KNOWN Map sessions: header/1",
@@ -133,20 +133,20 @@ describe("multiple clients syncing with the a cloud-like server mesh", () => {
133
133
  "edge-italy -> storage | LOAD Map sessions: empty",
134
134
  "storage -> edge-italy | KNOWN Map sessions: empty",
135
135
  "edge-italy -> core | LOAD Map sessions: empty",
136
- "core -> edge-italy | CONTENT ParentGroup header: true new: After: 0 New: 5",
137
- "core -> edge-italy | CONTENT Group header: true new: After: 0 New: 5",
136
+ "core -> edge-italy | CONTENT ParentGroup header: true new: After: 0 New: 6",
137
+ "core -> edge-italy | CONTENT Group header: true new: After: 0 New: 6",
138
138
  "core -> edge-italy | CONTENT Map header: true new: After: 0 New: 1",
139
- "edge-italy -> core | KNOWN ParentGroup sessions: header/5",
140
- "edge-italy -> storage | CONTENT ParentGroup header: true new: After: 0 New: 5",
141
- "edge-italy -> core | KNOWN Group sessions: header/5",
142
- "edge-italy -> storage | CONTENT Group header: true new: After: 0 New: 5",
139
+ "edge-italy -> core | KNOWN ParentGroup sessions: header/6",
140
+ "edge-italy -> storage | CONTENT ParentGroup header: true new: After: 0 New: 6",
141
+ "edge-italy -> core | KNOWN Group sessions: header/6",
142
+ "edge-italy -> storage | CONTENT Group header: true new: After: 0 New: 6",
143
143
  "edge-italy -> core | KNOWN Map sessions: header/1",
144
144
  "edge-italy -> storage | CONTENT Map header: true new: After: 0 New: 1",
145
- "edge-italy -> client | CONTENT ParentGroup header: true new: After: 0 New: 5",
146
- "edge-italy -> client | CONTENT Group header: true new: After: 0 New: 5",
145
+ "edge-italy -> client | CONTENT ParentGroup header: true new: After: 0 New: 6",
146
+ "edge-italy -> client | CONTENT Group header: true new: After: 0 New: 6",
147
147
  "edge-italy -> client | CONTENT Map header: true new: After: 0 New: 1",
148
- "client -> edge-italy | KNOWN ParentGroup sessions: header/5",
149
- "client -> edge-italy | KNOWN Group sessions: header/5",
148
+ "client -> edge-italy | KNOWN ParentGroup sessions: header/6",
149
+ "client -> edge-italy | KNOWN Group sessions: header/6",
150
150
  "client -> edge-italy | KNOWN Map sessions: header/1",
151
151
  ]
152
152
  `);
@@ -293,10 +293,10 @@ describe("multiple clients syncing with the a cloud-like server mesh", () => {
293
293
  "client -> core | LOAD Map sessions: empty",
294
294
  "client -> another-server | LOAD Map sessions: empty",
295
295
  "core -> storage-of-client | CONTENT Map header: false new: After: 1 New: 1",
296
- "another-server -> client | CONTENT Group header: true new: After: 0 New: 3",
296
+ "another-server -> client | CONTENT Group header: true new: After: 0 New: 4",
297
297
  "another-server -> client | CONTENT Map header: true new: After: 0 New: 1",
298
- "client -> another-server | KNOWN Group sessions: header/3",
299
- "client -> core | LOAD Group sessions: header/3",
298
+ "client -> another-server | KNOWN Group sessions: header/4",
299
+ "client -> core | LOAD Group sessions: header/4",
300
300
  "client -> another-server | KNOWN Map sessions: header/1",
301
301
  ]
302
302
  `);
@@ -337,9 +337,9 @@ describe("multiple clients syncing with the a cloud-like server mesh", () => {
337
337
  })).toMatchInlineSnapshot(`
338
338
  [
339
339
  "client -> another-server | LOAD Map sessions: empty",
340
- "another-server -> client | CONTENT Group header: true new: After: 0 New: 3",
340
+ "another-server -> client | CONTENT Group header: true new: After: 0 New: 4",
341
341
  "another-server -> client | CONTENT Map header: true new: After: 0 New: 1",
342
- "client -> another-server | KNOWN Group sessions: header/3",
342
+ "client -> another-server | KNOWN Group sessions: header/4",
343
343
  "client -> another-server | KNOWN Map sessions: header/1",
344
344
  ]
345
345
  `);
@@ -366,7 +366,7 @@ describe("multiple clients syncing with the a cloud-like server mesh", () => {
366
366
  Map: largeMap.core,
367
367
  })).toMatchInlineSnapshot(`
368
368
  [
369
- "edge -> storage | CONTENT Group header: true new: After: 0 New: 5",
369
+ "edge -> storage | CONTENT Group header: true new: After: 0 New: 6",
370
370
  "edge -> storage | CONTENT Map header: true new: After: 0 New: 21 expectContentUntil: header/100",
371
371
  "edge -> storage | CONTENT Map header: false new: After: 21 New: 21",
372
372
  "edge -> storage | CONTENT Map header: false new: After: 42 New: 21",
@@ -405,11 +405,11 @@ describe("multiple clients syncing with the a cloud-like server mesh", () => {
405
405
  "storage -> client | KNOWN Map sessions: empty",
406
406
  "client -> edge | LOAD Map sessions: empty",
407
407
  "edge -> storage | LOAD Map sessions: empty",
408
- "storage -> edge | CONTENT Group header: true new: After: 0 New: 5",
409
- "edge -> core | LOAD Group sessions: header/5",
408
+ "storage -> edge | CONTENT Group header: true new: After: 0 New: 6",
409
+ "edge -> core | LOAD Group sessions: header/6",
410
410
  "storage -> edge | CONTENT Map header: true new: After: 0 New: 21 expectContentUntil: header/100",
411
411
  "edge -> core | LOAD Map sessions: header/100",
412
- "edge -> client | CONTENT Group header: true new: After: 0 New: 5",
412
+ "edge -> client | CONTENT Group header: true new: After: 0 New: 6",
413
413
  "edge -> client | CONTENT Map header: true new: After: 0 New: 21 expectContentUntil: header/100",
414
414
  "storage -> edge | CONTENT Map header: true new: After: 21 New: 21",
415
415
  "edge -> client | CONTENT Map header: false new: After: 21 New: 21 expectContentUntil: header/100",
@@ -425,8 +425,8 @@ describe("multiple clients syncing with the a cloud-like server mesh", () => {
425
425
  "core -> storage | GET_KNOWN_STATE Map",
426
426
  "storage -> core | GET_KNOWN_STATE_RESULT Map sessions: empty",
427
427
  "core -> edge | KNOWN Map sessions: empty",
428
- "client -> edge | KNOWN Group sessions: header/5",
429
- "client -> storage | CONTENT Group header: true new: After: 0 New: 5",
428
+ "client -> edge | KNOWN Group sessions: header/6",
429
+ "client -> storage | CONTENT Group header: true new: After: 0 New: 6",
430
430
  "client -> edge | KNOWN Map sessions: header/21",
431
431
  "client -> storage | CONTENT Map header: true new: After: 0 New: 21",
432
432
  "client -> edge | KNOWN Map sessions: header/42",
@@ -437,14 +437,14 @@ describe("multiple clients syncing with the a cloud-like server mesh", () => {
437
437
  "client -> storage | CONTENT Map header: false new: After: 63 New: 21",
438
438
  "client -> edge | KNOWN Map sessions: header/100",
439
439
  "client -> storage | CONTENT Map header: false new: After: 84 New: 16",
440
- "edge -> core | CONTENT Group header: true new: After: 0 New: 5",
440
+ "edge -> core | CONTENT Group header: true new: After: 0 New: 6",
441
441
  "edge -> core | CONTENT Map header: true new: After: 0 New: 21 expectContentUntil: header/100",
442
442
  "edge -> core | CONTENT Map header: false new: After: 21 New: 21",
443
443
  "edge -> core | CONTENT Map header: false new: After: 42 New: 21",
444
444
  "edge -> core | CONTENT Map header: false new: After: 63 New: 21",
445
445
  "edge -> core | CONTENT Map header: false new: After: 84 New: 16",
446
- "core -> edge | KNOWN Group sessions: header/5",
447
- "core -> storage | CONTENT Group header: true new: After: 0 New: 5",
446
+ "core -> edge | KNOWN Group sessions: header/6",
447
+ "core -> storage | CONTENT Group header: true new: After: 0 New: 6",
448
448
  "core -> edge | KNOWN Map sessions: header/21",
449
449
  "core -> storage | CONTENT Map header: true new: After: 0 New: 21",
450
450
  "core -> edge | KNOWN Map sessions: header/42",
@@ -459,5 +459,123 @@ describe("multiple clients syncing with the a cloud-like server mesh", () => {
459
459
  `);
460
460
  expect(mapOnClient.core.knownState()).toEqual(largeMap.core.knownState());
461
461
  });
462
+ test("edge must subscribe to core when handling client LOAD with lazy loading", async () => {
463
+ // Topology: client1 -> edge -> core <- client2
464
+ //
465
+ // When edge uses lazy loading (getKnownStateFromStorage) to respond
466
+ // to a client's LOAD request with KNOWN, it MUST still subscribe to
467
+ // core by sending a LOAD request. Otherwise, edge won't receive
468
+ // future updates from core for that covalue.
469
+ //
470
+ // This test verifies that updates from client2 (connected to core)
471
+ // properly propagate to client1 (connected to edge).
472
+ // Setup: core server with storage
473
+ const core = setupTestNode();
474
+ core.addStorage({ ourName: "core" });
475
+ // Setup: edge server with storage, connected to core
476
+ // NOTE: Using persistent: false so that when edge reconnects after restart,
477
+ // core doesn't preserve the old subscription state (known states).
478
+ // This simulates a fresh connection where edge must explicitly subscribe.
479
+ const edge = setupTestNode();
480
+ edge.addStorage({ ourName: "edge" });
481
+ edge.connectToSyncServer({
482
+ ourName: "edge",
483
+ syncServerName: "core",
484
+ syncServer: core.node,
485
+ persistent: false,
486
+ });
487
+ // Setup: client1 connected to edge
488
+ const client1 = setupTestNode();
489
+ client1.connectToSyncServer({
490
+ ourName: "client1",
491
+ syncServerName: "edge",
492
+ syncServer: edge.node,
493
+ });
494
+ // Create covalue on core and sync to edge and client1
495
+ const group = core.node.createGroup();
496
+ group.addMember("everyone", "writer"); // Allow anyone to write
497
+ const map = group.createMap();
498
+ map.set("hello", "world", "trusting");
499
+ await map.core.waitForSync();
500
+ // Client1 loads the covalue (syncs to edge storage)
501
+ const mapOnClient1 = await loadCoValueOrFail(client1.node, map.id);
502
+ expect(mapOnClient1.get("hello")).toEqual("world");
503
+ // Verify the states match
504
+ const client1KnownState = mapOnClient1.core.knownState();
505
+ const edgeStorageKnownState = edge.node.storage.getKnownState(map.id);
506
+ expect(client1KnownState).toEqual(edgeStorageKnownState);
507
+ // Disconnect client1 (keeps data in memory)
508
+ client1.disconnect();
509
+ // Restart edge with a NEW session to ensure it's a completely fresh peer
510
+ // This is necessary because core tracks subscriptions by peer ID (agent+session),
511
+ // and we need edge to appear as a new peer that has never subscribed to the coValues.
512
+ const edgeStorage = edge.node.storage;
513
+ // Disconnect old edge from core first
514
+ edge.disconnect();
515
+ const newEdge = edge.spawnNewSession();
516
+ newEdge.node.setStorage(edgeStorage);
517
+ newEdge.connectToSyncServer({
518
+ ourName: "edge2",
519
+ syncServerName: "core",
520
+ syncServer: core.node,
521
+ persistent: false,
522
+ });
523
+ // Replace edge reference for the rest of the test
524
+ const edge2 = newEdge;
525
+ SyncMessagesLog.clear();
526
+ // Client1 reconnects with existing data (same known state as edge's storage)
527
+ // This triggers the lazy loading path in handleLoad
528
+ client1.connectToSyncServer({
529
+ ourName: "client1",
530
+ syncServerName: "edge2",
531
+ syncServer: edge2.node,
532
+ });
533
+ await client1.node.syncManager.waitForAllCoValuesSync();
534
+ // Verify edge2 used lazy loading AND subscribed to core
535
+ // Key messages:
536
+ // - edge -> storage | GET_KNOWN_STATE (lazy loading)
537
+ // - edge2 -> client1 | KNOWN (responds with KNOWN, not CONTENT)
538
+ // - edge2 -> core | LOAD (subscribes to core for future updates)
539
+ expect(SyncMessagesLog.getMessages({
540
+ Group: group.core,
541
+ Map: map.core,
542
+ })).toMatchInlineSnapshot(`
543
+ [
544
+ "client1 -> edge2 | LOAD Group sessions: header/6",
545
+ "client1 -> edge2 | LOAD Map sessions: header/1",
546
+ "edge -> storage | GET_KNOWN_STATE Group",
547
+ "storage -> edge | GET_KNOWN_STATE_RESULT Group sessions: header/6",
548
+ "edge2 -> client1 | KNOWN Group sessions: header/6",
549
+ "edge2 -> core | LOAD Group sessions: header/6",
550
+ "edge -> storage | GET_KNOWN_STATE Map",
551
+ "storage -> edge | GET_KNOWN_STATE_RESULT Map sessions: header/1",
552
+ "edge2 -> client1 | KNOWN Map sessions: header/1",
553
+ "edge2 -> core | LOAD Map sessions: header/1",
554
+ "core -> edge2 | KNOWN Group sessions: header/6",
555
+ ]
556
+ `);
557
+ // IMPORTANT: Verify the coValue is NOT loaded into memory on edge yet.
558
+ // The lazy loading optimization means edge should only have the coValue
559
+ // in storage, not in memory, until actual content arrives.
560
+ const mapOnEdge = edge2.node.getCoValue(map.id);
561
+ expect(mapOnEdge.isAvailable()).toBe(false);
562
+ SyncMessagesLog.clear();
563
+ // Now client2 connects directly to core and makes an update
564
+ const client2 = setupTestNode();
565
+ client2.connectToSyncServer({
566
+ ourName: "client2",
567
+ syncServerName: "core",
568
+ syncServer: core.node,
569
+ });
570
+ const mapOnClient2 = await loadCoValueOrFail(client2.node, map.id);
571
+ mapOnClient2.set("hello", "updated by client2", "trusting");
572
+ await mapOnClient2.core.waitForSync();
573
+ // Wait for propagation: core -> edge2 -> client1
574
+ // Without the fix, this will timeout because edge2 never subscribed to core
575
+ await waitFor(() => mapOnClient1.get("hello") === "updated by client2");
576
+ // Verify edge2 now has the coValue in memory (received from core)
577
+ expect(mapOnEdge.isAvailable()).toBe(true);
578
+ expect(mapOnClient1.get("hello")).toEqual("updated by client2");
579
+ });
462
580
  });
463
581
  //# 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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"}
@@ -36,12 +36,12 @@ describe("multiple servers peers", () => {
36
36
  Map: map.core,
37
37
  })).toMatchInlineSnapshot(`
38
38
  [
39
- "client -> server1 | CONTENT Group header: true new: After: 0 New: 3",
40
- "client -> server2 | CONTENT Group header: true new: After: 0 New: 3",
39
+ "client -> server1 | CONTENT Group header: true new: After: 0 New: 4",
40
+ "client -> server2 | CONTENT Group header: true new: After: 0 New: 4",
41
41
  "client -> server1 | CONTENT Map header: true new: After: 0 New: 1",
42
42
  "client -> server2 | CONTENT Map header: true new: After: 0 New: 1",
43
- "server1 -> client | KNOWN Group sessions: header/3",
44
- "server2 -> client | KNOWN Group sessions: header/3",
43
+ "server1 -> client | KNOWN Group sessions: header/4",
44
+ "server2 -> client | KNOWN Group sessions: header/4",
45
45
  "server1 -> client | KNOWN Map sessions: header/1",
46
46
  "server2 -> client | KNOWN Map sessions: header/1",
47
47
  ]
@@ -89,20 +89,20 @@ describe("multiple servers peers", () => {
89
89
  Map: map.core,
90
90
  })).toMatchInlineSnapshot(`
91
91
  [
92
- "client -> server1 | CONTENT Group header: true new: After: 0 New: 3",
93
- "client -> server2 | CONTENT Group header: true new: After: 0 New: 3",
94
- "client -> server1 | CONTENT ParentGroup header: true new: After: 0 New: 5",
95
- "client -> server2 | CONTENT ParentGroup header: true new: After: 0 New: 5",
96
- "client -> server1 | CONTENT Group header: false new: After: 3 New: 2",
97
- "client -> server2 | CONTENT Group header: false new: After: 3 New: 2",
92
+ "client -> server1 | CONTENT Group header: true new: After: 0 New: 4",
93
+ "client -> server2 | CONTENT Group header: true new: After: 0 New: 4",
94
+ "client -> server1 | CONTENT ParentGroup header: true new: After: 0 New: 6",
95
+ "client -> server2 | CONTENT ParentGroup header: true new: After: 0 New: 6",
96
+ "client -> server1 | CONTENT Group header: false new: After: 4 New: 2",
97
+ "client -> server2 | CONTENT Group header: false new: After: 4 New: 2",
98
98
  "client -> server1 | CONTENT Map header: true new: After: 0 New: 1",
99
99
  "client -> server2 | CONTENT Map header: true new: After: 0 New: 1",
100
- "server1 -> client | KNOWN Group sessions: header/3",
101
- "server2 -> client | KNOWN Group sessions: header/3",
102
- "server1 -> client | KNOWN ParentGroup sessions: header/5",
103
- "server2 -> client | KNOWN ParentGroup sessions: header/5",
104
- "server1 -> client | KNOWN Group sessions: header/5",
105
- "server2 -> client | KNOWN Group sessions: header/5",
100
+ "server1 -> client | KNOWN Group sessions: header/4",
101
+ "server2 -> client | KNOWN Group sessions: header/4",
102
+ "server1 -> client | KNOWN ParentGroup sessions: header/6",
103
+ "server2 -> client | KNOWN ParentGroup sessions: header/6",
104
+ "server1 -> client | KNOWN Group sessions: header/6",
105
+ "server2 -> client | KNOWN Group sessions: header/6",
106
106
  "server1 -> client | KNOWN Map sessions: header/1",
107
107
  "server2 -> client | KNOWN Map sessions: header/1",
108
108
  ]
@@ -137,12 +137,12 @@ describe("multiple servers peers", () => {
137
137
  Map: map.core,
138
138
  })).toMatchInlineSnapshot(`
139
139
  [
140
- "client -> server1 | CONTENT Group header: true new: After: 0 New: 5",
141
- "client -> server2 | CONTENT Group header: true new: After: 0 New: 5",
140
+ "client -> server1 | CONTENT Group header: true new: After: 0 New: 6",
141
+ "client -> server2 | CONTENT Group header: true new: After: 0 New: 6",
142
142
  "client -> server1 | CONTENT Map header: true new: After: 0 New: 1",
143
143
  "client -> server2 | CONTENT Map header: true new: After: 0 New: 1",
144
- "server1 -> client | KNOWN Group sessions: header/5",
145
- "server2 -> client | KNOWN Group sessions: header/5",
144
+ "server1 -> client | KNOWN Group sessions: header/6",
145
+ "server2 -> client | KNOWN Group sessions: header/6",
146
146
  "server1 -> client | KNOWN Map sessions: header/1",
147
147
  "server2 -> client | KNOWN Map sessions: header/1",
148
148
  "client -> server1 | CONTENT Map header: false new: After: 1 New: 1",
@@ -169,16 +169,16 @@ describe("multiple servers peers", () => {
169
169
  ChildMap: child.core,
170
170
  })).toMatchInlineSnapshot(`
171
171
  [
172
- "client -> server1 | CONTENT Group header: true new: After: 0 New: 3",
173
- "client -> server2 | CONTENT Group header: true new: After: 0 New: 3",
172
+ "client -> server1 | CONTENT Group header: true new: After: 0 New: 4",
173
+ "client -> server2 | CONTENT Group header: true new: After: 0 New: 4",
174
174
  "client -> server1 | CONTENT InitialMap header: true new: ",
175
175
  "client -> server2 | CONTENT InitialMap header: true new: ",
176
176
  "client -> server1 | CONTENT ChildMap header: true new: After: 0 New: 1",
177
177
  "client -> server2 | CONTENT ChildMap header: true new: After: 0 New: 1",
178
178
  "client -> server1 | CONTENT InitialMap header: false new: After: 0 New: 1",
179
179
  "client -> server2 | CONTENT InitialMap header: false new: After: 0 New: 1",
180
- "server1 -> client | KNOWN Group sessions: header/3",
181
- "server2 -> client | KNOWN Group sessions: header/3",
180
+ "server1 -> client | KNOWN Group sessions: header/4",
181
+ "server2 -> client | KNOWN Group sessions: header/4",
182
182
  "server1 -> client | KNOWN InitialMap sessions: header/0",
183
183
  "server2 -> client | KNOWN InitialMap sessions: header/0",
184
184
  "server1 -> client | KNOWN ChildMap sessions: header/1",
@@ -201,16 +201,16 @@ describe("multiple servers peers", () => {
201
201
  Map: largeMap.core,
202
202
  })).toMatchInlineSnapshot(`
203
203
  [
204
- "client -> server1 | CONTENT Group header: true new: After: 0 New: 5",
205
- "client -> server2 | CONTENT Group header: true new: After: 0 New: 5",
204
+ "client -> server1 | CONTENT Group header: true new: After: 0 New: 6",
205
+ "client -> server2 | CONTENT Group header: true new: After: 0 New: 6",
206
206
  "client -> server1 | CONTENT Map header: true new: After: 0 New: 73 expectContentUntil: header/200",
207
207
  "client -> server2 | CONTENT Map header: true new: After: 0 New: 73 expectContentUntil: header/200",
208
208
  "client -> server1 | CONTENT Map header: false new: After: 73 New: 73",
209
209
  "client -> server2 | CONTENT Map header: false new: After: 73 New: 73",
210
210
  "client -> server1 | CONTENT Map header: false new: After: 146 New: 54",
211
211
  "client -> server2 | CONTENT Map header: false new: After: 146 New: 54",
212
- "server1 -> client | KNOWN Group sessions: header/5",
213
- "server2 -> client | KNOWN Group sessions: header/5",
212
+ "server1 -> client | KNOWN Group sessions: header/6",
213
+ "server2 -> client | KNOWN Group sessions: header/6",
214
214
  "server1 -> client | KNOWN Map sessions: header/73",
215
215
  "server2 -> client | KNOWN Map sessions: header/73",
216
216
  "server1 -> client | KNOWN Map sessions: header/146",
@@ -234,8 +234,8 @@ describe("multiple servers peers", () => {
234
234
  Map: largeMap.core,
235
235
  })).toMatchInlineSnapshot(`
236
236
  [
237
- "client -> server1 | CONTENT Group header: true new: After: 0 New: 5",
238
- "client -> server2 | CONTENT Group header: true new: After: 0 New: 5",
237
+ "client -> server1 | CONTENT Group header: true new: After: 0 New: 6",
238
+ "client -> server2 | CONTENT Group header: true new: After: 0 New: 6",
239
239
  "client -> server1 | CONTENT Map header: true new: ",
240
240
  "client -> server2 | CONTENT Map header: true new: ",
241
241
  "client -> server1 | CONTENT Map header: false new: After: 0 New: 73 expectContentUntil: header/200",
@@ -244,8 +244,8 @@ describe("multiple servers peers", () => {
244
244
  "client -> server2 | CONTENT Map header: false new: After: 73 New: 73",
245
245
  "client -> server1 | CONTENT Map header: false new: After: 146 New: 54",
246
246
  "client -> server2 | CONTENT Map header: false new: After: 146 New: 54",
247
- "server1 -> client | KNOWN Group sessions: header/5",
248
- "server2 -> client | KNOWN Group sessions: header/5",
247
+ "server1 -> client | KNOWN Group sessions: header/6",
248
+ "server2 -> client | KNOWN Group sessions: header/6",
249
249
  "server1 -> client | KNOWN Map sessions: header/0",
250
250
  "server2 -> client | KNOWN Map sessions: header/0",
251
251
  "server1 -> client | KNOWN Map sessions: header/73",
@@ -277,22 +277,22 @@ describe("multiple servers peers", () => {
277
277
  [
278
278
  "client -> server1 | LOAD Map sessions: empty",
279
279
  "client -> server2 | LOAD Map sessions: empty",
280
- "client -> server1 | CONTENT Group header: true new: After: 0 New: 5",
281
- "client -> server2 | CONTENT Group header: true new: After: 0 New: 5",
280
+ "client -> server1 | CONTENT Group header: true new: After: 0 New: 6",
281
+ "client -> server2 | CONTENT Group header: true new: After: 0 New: 6",
282
282
  "client -> server1 | CONTENT Map header: true new: ",
283
283
  "client -> server2 | CONTENT Map header: true new: ",
284
284
  "server1 -> client | KNOWN Map sessions: empty",
285
285
  "server2 -> client | KNOWN Map sessions: empty",
286
- "server1 -> client | KNOWN Group sessions: header/5",
287
- "server2 -> client | KNOWN Group sessions: header/5",
286
+ "server1 -> client | KNOWN Group sessions: header/6",
287
+ "server2 -> client | KNOWN Group sessions: header/6",
288
288
  "server1 -> client | KNOWN Map sessions: header/0",
289
- "server1 -> client | CONTENT Group header: true new: After: 0 New: 5",
289
+ "server1 -> client | CONTENT Group header: true new: After: 0 New: 6",
290
290
  "server1 -> client | CONTENT Map header: true new: ",
291
291
  "server2 -> client | KNOWN Map sessions: header/0",
292
- "server2 -> client | CONTENT Group header: true new: After: 0 New: 5",
292
+ "server2 -> client | CONTENT Group header: true new: After: 0 New: 6",
293
293
  "server2 -> client | CONTENT Map header: true new: ",
294
- "client -> server1 | KNOWN Group sessions: header/5",
295
- "client -> server2 | LOAD Group sessions: header/5",
294
+ "client -> server1 | KNOWN Group sessions: header/6",
295
+ "client -> server2 | LOAD Group sessions: header/6",
296
296
  "client -> server1 | KNOWN Map sessions: header/0",
297
297
  "client -> server2 | CONTENT Map header: true new: ",
298
298
  "client -> server1 | CONTENT Map header: false new: After: 0 New: 73 expectContentUntil: header/200",
@@ -301,8 +301,8 @@ describe("multiple servers peers", () => {
301
301
  "client -> server2 | CONTENT Map header: false new: After: 73 New: 73",
302
302
  "client -> server1 | CONTENT Map header: false new: After: 146 New: 54",
303
303
  "client -> server2 | CONTENT Map header: false new: After: 146 New: 54",
304
- "client -> server2 | KNOWN Group sessions: header/5",
305
- "client -> server2 | CONTENT Group header: false new: After: 0 New: 5",
304
+ "client -> server2 | KNOWN Group sessions: header/6",
305
+ "client -> server2 | CONTENT Group header: false new: After: 0 New: 6",
306
306
  "client -> server2 | KNOWN Map sessions: header/0",
307
307
  "server2 -> client | KNOWN Map sessions: header/0",
308
308
  "server1 -> client | KNOWN Map sessions: header/73",
@@ -317,7 +317,7 @@ describe("multiple servers peers", () => {
317
317
  "server1 -> client | CONTENT Map header: false new: After: 146 New: 54",
318
318
  "server2 -> client | KNOWN Map sessions: header/200",
319
319
  "server2 -> client | CONTENT Map header: false new: After: 146 New: 54",
320
- "server2 -> client | KNOWN Group sessions: header/5",
320
+ "server2 -> client | KNOWN Group sessions: header/6",
321
321
  "client -> server1 | KNOWN Map sessions: header/73",
322
322
  "client -> server2 | CONTENT Map header: false new: After: 0 New: 73",
323
323
  "client -> server2 | KNOWN Map sessions: header/73",