cojson 0.8.12 → 0.8.17

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 (164) hide show
  1. package/CHANGELOG.md +95 -83
  2. package/dist/native/PeerKnownStates.js +6 -1
  3. package/dist/native/PeerKnownStates.js.map +1 -1
  4. package/dist/native/PeerState.js +4 -3
  5. package/dist/native/PeerState.js.map +1 -1
  6. package/dist/native/PriorityBasedMessageQueue.js +1 -10
  7. package/dist/native/PriorityBasedMessageQueue.js.map +1 -1
  8. package/dist/native/SyncStateSubscriptionManager.js +70 -0
  9. package/dist/native/SyncStateSubscriptionManager.js.map +1 -0
  10. package/dist/native/base64url.js.map +1 -1
  11. package/dist/native/base64url.test.js +1 -1
  12. package/dist/native/base64url.test.js.map +1 -1
  13. package/dist/native/coValue.js.map +1 -1
  14. package/dist/native/coValueCore.js +141 -149
  15. package/dist/native/coValueCore.js.map +1 -1
  16. package/dist/native/coValueState.js.map +1 -1
  17. package/dist/native/coValues/account.js +6 -6
  18. package/dist/native/coValues/account.js.map +1 -1
  19. package/dist/native/coValues/coList.js +2 -3
  20. package/dist/native/coValues/coList.js.map +1 -1
  21. package/dist/native/coValues/coMap.js +1 -1
  22. package/dist/native/coValues/coMap.js.map +1 -1
  23. package/dist/native/coValues/coStream.js +3 -5
  24. package/dist/native/coValues/coStream.js.map +1 -1
  25. package/dist/native/coValues/group.js +11 -11
  26. package/dist/native/coValues/group.js.map +1 -1
  27. package/dist/native/coreToCoValue.js +2 -2
  28. package/dist/native/coreToCoValue.js.map +1 -1
  29. package/dist/native/crypto/PureJSCrypto.js +4 -4
  30. package/dist/native/crypto/PureJSCrypto.js.map +1 -1
  31. package/dist/native/crypto/crypto.js.map +1 -1
  32. package/dist/native/exports.js +12 -12
  33. package/dist/native/exports.js.map +1 -1
  34. package/dist/native/ids.js.map +1 -1
  35. package/dist/native/jsonStringify.js.map +1 -1
  36. package/dist/native/localNode.js +5 -7
  37. package/dist/native/localNode.js.map +1 -1
  38. package/dist/native/permissions.js +4 -7
  39. package/dist/native/permissions.js.map +1 -1
  40. package/dist/native/priority.js.map +1 -1
  41. package/dist/native/storage/FileSystem.js.map +1 -1
  42. package/dist/native/storage/chunksAndKnownStates.js +2 -4
  43. package/dist/native/storage/chunksAndKnownStates.js.map +1 -1
  44. package/dist/native/storage/index.js +6 -15
  45. package/dist/native/storage/index.js.map +1 -1
  46. package/dist/native/streamUtils.js.map +1 -1
  47. package/dist/native/sync.js +57 -7
  48. package/dist/native/sync.js.map +1 -1
  49. package/dist/native/typeUtils/accountOrAgentIDfromSessionID.js.map +1 -1
  50. package/dist/native/typeUtils/expectGroup.js.map +1 -1
  51. package/dist/native/typeUtils/isAccountID.js.map +1 -1
  52. package/dist/native/typeUtils/isCoValue.js +1 -1
  53. package/dist/native/typeUtils/isCoValue.js.map +1 -1
  54. package/dist/web/PeerKnownStates.js +6 -1
  55. package/dist/web/PeerKnownStates.js.map +1 -1
  56. package/dist/web/PeerState.js +4 -3
  57. package/dist/web/PeerState.js.map +1 -1
  58. package/dist/web/PriorityBasedMessageQueue.js +1 -10
  59. package/dist/web/PriorityBasedMessageQueue.js.map +1 -1
  60. package/dist/web/SyncStateSubscriptionManager.js +70 -0
  61. package/dist/web/SyncStateSubscriptionManager.js.map +1 -0
  62. package/dist/web/base64url.js.map +1 -1
  63. package/dist/web/base64url.test.js +1 -1
  64. package/dist/web/base64url.test.js.map +1 -1
  65. package/dist/web/coValue.js.map +1 -1
  66. package/dist/web/coValueCore.js +141 -149
  67. package/dist/web/coValueCore.js.map +1 -1
  68. package/dist/web/coValueState.js.map +1 -1
  69. package/dist/web/coValues/account.js +6 -6
  70. package/dist/web/coValues/account.js.map +1 -1
  71. package/dist/web/coValues/coList.js +2 -3
  72. package/dist/web/coValues/coList.js.map +1 -1
  73. package/dist/web/coValues/coMap.js +1 -1
  74. package/dist/web/coValues/coMap.js.map +1 -1
  75. package/dist/web/coValues/coStream.js +3 -5
  76. package/dist/web/coValues/coStream.js.map +1 -1
  77. package/dist/web/coValues/group.js +11 -11
  78. package/dist/web/coValues/group.js.map +1 -1
  79. package/dist/web/coreToCoValue.js +2 -2
  80. package/dist/web/coreToCoValue.js.map +1 -1
  81. package/dist/web/crypto/PureJSCrypto.js +4 -4
  82. package/dist/web/crypto/PureJSCrypto.js.map +1 -1
  83. package/dist/web/crypto/WasmCrypto.js +5 -5
  84. package/dist/web/crypto/WasmCrypto.js.map +1 -1
  85. package/dist/web/crypto/crypto.js.map +1 -1
  86. package/dist/web/exports.js +12 -12
  87. package/dist/web/exports.js.map +1 -1
  88. package/dist/web/ids.js.map +1 -1
  89. package/dist/web/jsonStringify.js.map +1 -1
  90. package/dist/web/localNode.js +5 -7
  91. package/dist/web/localNode.js.map +1 -1
  92. package/dist/web/permissions.js +4 -7
  93. package/dist/web/permissions.js.map +1 -1
  94. package/dist/web/priority.js.map +1 -1
  95. package/dist/web/storage/FileSystem.js.map +1 -1
  96. package/dist/web/storage/chunksAndKnownStates.js +2 -4
  97. package/dist/web/storage/chunksAndKnownStates.js.map +1 -1
  98. package/dist/web/storage/index.js +6 -15
  99. package/dist/web/storage/index.js.map +1 -1
  100. package/dist/web/streamUtils.js.map +1 -1
  101. package/dist/web/sync.js +57 -7
  102. package/dist/web/sync.js.map +1 -1
  103. package/dist/web/typeUtils/accountOrAgentIDfromSessionID.js.map +1 -1
  104. package/dist/web/typeUtils/expectGroup.js.map +1 -1
  105. package/dist/web/typeUtils/isAccountID.js.map +1 -1
  106. package/dist/web/typeUtils/isCoValue.js +1 -1
  107. package/dist/web/typeUtils/isCoValue.js.map +1 -1
  108. package/package.json +4 -14
  109. package/src/PeerKnownStates.ts +98 -90
  110. package/src/PeerState.ts +92 -73
  111. package/src/PriorityBasedMessageQueue.ts +42 -49
  112. package/src/SyncStateSubscriptionManager.ts +124 -0
  113. package/src/base64url.test.ts +24 -24
  114. package/src/base64url.ts +44 -45
  115. package/src/coValue.ts +45 -45
  116. package/src/coValueCore.ts +746 -785
  117. package/src/coValueState.ts +82 -72
  118. package/src/coValues/account.ts +143 -150
  119. package/src/coValues/coList.ts +520 -522
  120. package/src/coValues/coMap.ts +283 -285
  121. package/src/coValues/coStream.ts +320 -324
  122. package/src/coValues/group.ts +306 -305
  123. package/src/coreToCoValue.ts +28 -31
  124. package/src/crypto/PureJSCrypto.ts +188 -194
  125. package/src/crypto/WasmCrypto.ts +236 -254
  126. package/src/crypto/crypto.ts +302 -309
  127. package/src/exports.ts +116 -116
  128. package/src/ids.ts +9 -9
  129. package/src/jsonStringify.ts +46 -46
  130. package/src/jsonValue.ts +24 -10
  131. package/src/localNode.ts +635 -660
  132. package/src/media.ts +3 -3
  133. package/src/permissions.ts +272 -278
  134. package/src/priority.ts +21 -19
  135. package/src/storage/FileSystem.ts +91 -99
  136. package/src/storage/chunksAndKnownStates.ts +110 -115
  137. package/src/storage/index.ts +466 -497
  138. package/src/streamUtils.ts +60 -60
  139. package/src/sync.ts +656 -608
  140. package/src/tests/PeerKnownStates.test.ts +38 -34
  141. package/src/tests/PeerState.test.ts +101 -64
  142. package/src/tests/PriorityBasedMessageQueue.test.ts +91 -91
  143. package/src/tests/SyncStateSubscriptionManager.test.ts +232 -0
  144. package/src/tests/account.test.ts +59 -59
  145. package/src/tests/coList.test.ts +65 -65
  146. package/src/tests/coMap.test.ts +137 -137
  147. package/src/tests/coStream.test.ts +254 -257
  148. package/src/tests/coValueCore.test.ts +153 -156
  149. package/src/tests/crypto.test.ts +136 -144
  150. package/src/tests/cryptoImpl.test.ts +205 -197
  151. package/src/tests/group.test.ts +24 -24
  152. package/src/tests/permissions.test.ts +1306 -1371
  153. package/src/tests/priority.test.ts +65 -82
  154. package/src/tests/sync.test.ts +1573 -1263
  155. package/src/tests/testUtils.ts +85 -53
  156. package/src/typeUtils/accountOrAgentIDfromSessionID.ts +4 -4
  157. package/src/typeUtils/expectGroup.ts +9 -9
  158. package/src/typeUtils/isAccountID.ts +1 -1
  159. package/src/typeUtils/isCoValue.ts +9 -9
  160. package/tsconfig.json +4 -6
  161. package/tsconfig.native.json +9 -11
  162. package/tsconfig.web.json +4 -10
  163. package/.eslintrc.cjs +0 -25
  164. package/.prettierrc.js +0 -9
package/CHANGELOG.md CHANGED
@@ -1,367 +1,379 @@
1
1
  # cojson
2
2
 
3
+ ## 0.8.17
4
+
5
+ ### Patch Changes
6
+
7
+ - d433cf4: Add a new API to wait for a CoValue to be uploaded in a peer
8
+
9
+ ## 0.8.16
10
+
11
+ ### Patch Changes
12
+
13
+ - b934fab: Temp fix for more graceful handling of accidental multiple agents in account
14
+
3
15
  ## 0.8.12
4
16
 
5
17
  ### Patch Changes
6
18
 
7
- - 6ed75eb: Introduce "storage" peer role
19
+ - 6ed75eb: Introduce "storage" peer role
8
20
 
9
21
  ## 0.8.11
10
22
 
11
23
  ### Patch Changes
12
24
 
13
- - 1ed4ab5: Make the peer known states subscribable
25
+ - 1ed4ab5: Make the peer known states subscribable
14
26
 
15
27
  ## 0.8.5
16
28
 
17
29
  ### Patch Changes
18
30
 
19
- - c3f4e6b: Fix order of exports fields in package.json
20
- - d9152ed: Allow interface types as generic argument in co.json
31
+ - c3f4e6b: Fix order of exports fields in package.json
32
+ - d9152ed: Allow interface types as generic argument in co.json
21
33
 
22
34
  ## 0.8.3
23
35
 
24
36
  ### Patch Changes
25
37
 
26
- - Experimental support for React Native
38
+ - Experimental support for React Native
27
39
 
28
40
  ## 0.8.0
29
41
 
30
42
  ### Patch Changes
31
43
 
32
- - 6a147c2: Move session generation to crypto provider
33
- - ad40b88: First sketch of API for creating and finding unique CoValues
44
+ - 6a147c2: Move session generation to crypto provider
45
+ - ad40b88: First sketch of API for creating and finding unique CoValues
34
46
 
35
47
  ## 0.7.35
36
48
 
37
49
  ### Patch Changes
38
50
 
39
- - 35bbcd9: Clean up binary stream ending logic
40
- - f350e90: Added a priority system for the sync messages
51
+ - 35bbcd9: Clean up binary stream ending logic
52
+ - f350e90: Added a priority system for the sync messages
41
53
 
42
54
  ## 0.7.34
43
55
 
44
56
  ### Patch Changes
45
57
 
46
- - 5d91f9f: Stop using tryAddTransactionsAsync
47
- - 5094e6d: Start introducing neverthrow, make tryAddNewTransactionsAsync and handleNewContent less throwy
48
- - b09589b: Only one async transaction per CoValue at a time again
49
- - 2c3a40c: Use fork of queueable
50
- - 4e16575: Use queueable fork
51
- - ea882ab: Better log message for failed transactions
58
+ - 5d91f9f: Stop using tryAddTransactionsAsync
59
+ - 5094e6d: Start introducing neverthrow, make tryAddNewTransactionsAsync and handleNewContent less throwy
60
+ - b09589b: Only one async transaction per CoValue at a time again
61
+ - 2c3a40c: Use fork of queueable
62
+ - 4e16575: Use queueable fork
63
+ - ea882ab: Better log message for failed transactions
52
64
 
53
65
  ## 0.7.34-neverthrow.8
54
66
 
55
67
  ### Patch Changes
56
68
 
57
- - Use queueable fork
69
+ - Use queueable fork
58
70
 
59
71
  ## 0.7.34-neverthrow.7
60
72
 
61
73
  ### Patch Changes
62
74
 
63
- - Use fork of queueable
75
+ - Use fork of queueable
64
76
 
65
77
  ## 0.7.34-neverthrow.4
66
78
 
67
79
  ### Patch Changes
68
80
 
69
- - Stop using tryAddTransactionsAsync
81
+ - Stop using tryAddTransactionsAsync
70
82
 
71
83
  ## 0.7.34-neverthrow.3
72
84
 
73
85
  ### Patch Changes
74
86
 
75
- - Better log message for failed transactions
87
+ - Better log message for failed transactions
76
88
 
77
89
  ## 0.7.34-neverthrow.1
78
90
 
79
91
  ### Patch Changes
80
92
 
81
- - Only one async transaction per CoValue at a time again
93
+ - Only one async transaction per CoValue at a time again
82
94
 
83
95
  ## 0.7.34-neverthrow.0
84
96
 
85
97
  ### Patch Changes
86
98
 
87
- - Start introducing neverthrow, make tryAddNewTransactionsAsync and handleNewContent less throwy
99
+ - Start introducing neverthrow, make tryAddNewTransactionsAsync and handleNewContent less throwy
88
100
 
89
101
  ## 0.7.33
90
102
 
91
103
  ### Patch Changes
92
104
 
93
- - b297c93: Improve logging
94
- - 3bf5127: Allow crashing whole node on peer errors
95
- - a8b74ff: Throw properly on peer that should crash on close
105
+ - b297c93: Improve logging
106
+ - 3bf5127: Allow crashing whole node on peer errors
107
+ - a8b74ff: Throw properly on peer that should crash on close
96
108
 
97
109
  ## 0.7.33-hotfixes.5
98
110
 
99
111
  ### Patch Changes
100
112
 
101
- - Make simulated errors even more likely
113
+ - Make simulated errors even more likely
102
114
 
103
115
  ## 0.7.33-hotfixes.4
104
116
 
105
117
  ### Patch Changes
106
118
 
107
- - Throw properly on peer that should crash on close
119
+ - Throw properly on peer that should crash on close
108
120
 
109
121
  ## 0.7.33-hotfixes.3
110
122
 
111
123
  ### Patch Changes
112
124
 
113
- - Allow crashing whole node on peer errors
125
+ - Allow crashing whole node on peer errors
114
126
 
115
127
  ## 0.7.33-hotfixes.0
116
128
 
117
129
  ### Patch Changes
118
130
 
119
- - Improve logging
131
+ - Improve logging
120
132
 
121
133
  ## 0.7.31
122
134
 
123
135
  ### Patch Changes
124
136
 
125
- - Close both ends of the peer on gracefulShutdown
137
+ - Close both ends of the peer on gracefulShutdown
126
138
 
127
139
  ## 0.7.29
128
140
 
129
141
  ### Patch Changes
130
142
 
131
- - Remove noisy log
143
+ - Remove noisy log
132
144
 
133
145
  ## 0.7.28
134
146
 
135
147
  ### Patch Changes
136
148
 
137
- - Fix ignoring server peers
149
+ - Fix ignoring server peers
138
150
 
139
151
  ## 0.7.26
140
152
 
141
153
  ### Patch Changes
142
154
 
143
- - Remove Effect from jazz/cojson internals
155
+ - Remove Effect from jazz/cojson internals
144
156
 
145
157
  ## 0.7.23
146
158
 
147
159
  ### Patch Changes
148
160
 
149
- - Mostly complete OPFS implementation (single-tab only)
161
+ - Mostly complete OPFS implementation (single-tab only)
150
162
 
151
163
  ## 0.7.18
152
164
 
153
165
  ### Patch Changes
154
166
 
155
- - Update to Effect 3.5.2
167
+ - Update to Effect 3.5.2
156
168
 
157
169
  ## 0.7.17
158
170
 
159
171
  ### Patch Changes
160
172
 
161
- - Fix bugs in new storage interface
173
+ - Fix bugs in new storage interface
162
174
 
163
175
  ## 0.7.14
164
176
 
165
177
  ### Patch Changes
166
178
 
167
- - Use Effect Queues and Streams instead of custom queue implementation
179
+ - Use Effect Queues and Streams instead of custom queue implementation
168
180
 
169
181
  ## 0.7.11
170
182
 
171
183
  ### Patch Changes
172
184
 
173
- - Fix webpack import of node:crypto module
185
+ - Fix webpack import of node:crypto module
174
186
 
175
187
  ## 0.7.10
176
188
 
177
189
  ### Patch Changes
178
190
 
179
- - Also cache agent ID in RawControlledAccount
191
+ - Also cache agent ID in RawControlledAccount
180
192
 
181
193
  ## 0.7.9
182
194
 
183
195
  ### Patch Changes
184
196
 
185
- - Cache currentAgentID in RawAccount
197
+ - Cache currentAgentID in RawAccount
186
198
 
187
199
  ## 0.7.0
188
200
 
189
201
  ### Minor Changes
190
202
 
191
- - e299c3e: New simplified API
203
+ - e299c3e: New simplified API
192
204
 
193
205
  ### Patch Changes
194
206
 
195
- - 1a35307: WIP working-ish version of LSM storage
196
- - 96c494f: Implement profile visibility based on groups & new migration signature
197
- - 19f52b7: Fixed bug with newRandomSessionID being called before crypto was ready
198
- - d8fe2b1: Expose experimental OPFS storage
199
- - 1200aae: CoJSON performance improvement
200
- - 52675c9: Fix CoList.splice / RawCoList.append
201
- - 1a35307: Optimizations for incoming sync messages
202
- - bf0f8ec: Fix noble curves dependency
203
- - c4151fc: Support stricter TS lint rules
204
- - 8636319: Factor out implementation of crypto provider and provide pure JS implementation
205
- - 952982e: Consistent proxy based API
206
- - 21771c4: Reintroduce changes from main
207
- - 69ac514: Use effect schema much less
208
- - f0f6f1b: Clean up API more & re-add jazz-nodejs
209
- - 1a44f87: Refactoring
210
- - 63374cc: Make sure delete on CoMaps deletes keys
207
+ - 1a35307: WIP working-ish version of LSM storage
208
+ - 96c494f: Implement profile visibility based on groups & new migration signature
209
+ - 19f52b7: Fixed bug with newRandomSessionID being called before crypto was ready
210
+ - d8fe2b1: Expose experimental OPFS storage
211
+ - 1200aae: CoJSON performance improvement
212
+ - 52675c9: Fix CoList.splice / RawCoList.append
213
+ - 1a35307: Optimizations for incoming sync messages
214
+ - bf0f8ec: Fix noble curves dependency
215
+ - c4151fc: Support stricter TS lint rules
216
+ - 8636319: Factor out implementation of crypto provider and provide pure JS implementation
217
+ - 952982e: Consistent proxy based API
218
+ - 21771c4: Reintroduce changes from main
219
+ - 69ac514: Use effect schema much less
220
+ - f0f6f1b: Clean up API more & re-add jazz-nodejs
221
+ - 1a44f87: Refactoring
222
+ - 63374cc: Make sure delete on CoMaps deletes keys
211
223
 
212
224
  ## 0.7.0-alpha.42
213
225
 
214
226
  ### Patch Changes
215
227
 
216
- - Fixed bug with newRandomSessionID being called before crypto was ready
228
+ - Fixed bug with newRandomSessionID being called before crypto was ready
217
229
 
218
230
  ## 0.7.0-alpha.39
219
231
 
220
232
  ### Patch Changes
221
233
 
222
- - Fix noble curves dependency
234
+ - Fix noble curves dependency
223
235
 
224
236
  ## 0.7.0-alpha.38
225
237
 
226
238
  ### Patch Changes
227
239
 
228
- - Factor out implementation of crypto provider and provide pure JS implementation
240
+ - Factor out implementation of crypto provider and provide pure JS implementation
229
241
 
230
242
  ## 0.7.0-alpha.37
231
243
 
232
244
  ### Patch Changes
233
245
 
234
- - Expose experimental OPFS storage
246
+ - Expose experimental OPFS storage
235
247
 
236
248
  ## 0.7.0-alpha.36
237
249
 
238
250
  ### Patch Changes
239
251
 
240
- - 1a35307: WIP working-ish version of LSM storage
241
- - 1a35307: Optimizations for incoming sync messages
252
+ - 1a35307: WIP working-ish version of LSM storage
253
+ - 1a35307: Optimizations for incoming sync messages
242
254
 
243
255
  ## 0.7.0-alpha.35
244
256
 
245
257
  ### Patch Changes
246
258
 
247
- - CoJSON performance improvement
259
+ - CoJSON performance improvement
248
260
 
249
261
  ## 0.7.0-alpha.29
250
262
 
251
263
  ### Patch Changes
252
264
 
253
- - Reintroduce changes from main
265
+ - Reintroduce changes from main
254
266
 
255
267
  ## 0.7.0-alpha.28
256
268
 
257
269
  ### Patch Changes
258
270
 
259
- - Implement profile visibility based on groups & new migration signature
271
+ - Implement profile visibility based on groups & new migration signature
260
272
 
261
273
  ## 0.7.0-alpha.27
262
274
 
263
275
  ### Patch Changes
264
276
 
265
- - Fix CoList.splice / RawCoList.append
277
+ - Fix CoList.splice / RawCoList.append
266
278
 
267
279
  ## 0.7.0-alpha.24
268
280
 
269
281
  ### Patch Changes
270
282
 
271
- - Make sure delete on CoMaps deletes keys
283
+ - Make sure delete on CoMaps deletes keys
272
284
 
273
285
  ## 0.7.0-alpha.11
274
286
 
275
287
  ### Patch Changes
276
288
 
277
- - Support stricter TS lint rules
289
+ - Support stricter TS lint rules
278
290
 
279
291
  ## 0.7.0-alpha.10
280
292
 
281
293
  ### Patch Changes
282
294
 
283
- - Clean up API more & re-add jazz-nodejs
295
+ - Clean up API more & re-add jazz-nodejs
284
296
 
285
297
  ## 0.7.0-alpha.7
286
298
 
287
299
  ### Patch Changes
288
300
 
289
- - Consistent proxy based API
301
+ - Consistent proxy based API
290
302
 
291
303
  ## 0.7.0-alpha.5
292
304
 
293
305
  ### Patch Changes
294
306
 
295
- - Refactoring
307
+ - Refactoring
296
308
 
297
309
  ## 0.7.0-alpha.1
298
310
 
299
311
  ### Patch Changes
300
312
 
301
- - Use effect schema much less
313
+ - Use effect schema much less
302
314
 
303
315
  ## 0.7.0-alpha.0
304
316
 
305
317
  ### Minor Changes
306
318
 
307
- - New simplified API
319
+ - New simplified API
308
320
 
309
321
  ## 0.6.6
310
322
 
311
323
  ### Patch Changes
312
324
 
313
- - Fix migration changes being lost on loaded account
325
+ - Fix migration changes being lost on loaded account
314
326
 
315
327
  ## 0.6.5
316
328
 
317
329
  ### Patch Changes
318
330
 
319
- - Fix loading of accounts
331
+ - Fix loading of accounts
320
332
 
321
333
  ## 0.6.4
322
334
 
323
335
  ### Patch Changes
324
336
 
325
- - IndexedDB & timer perf improvements
337
+ - IndexedDB & timer perf improvements
326
338
 
327
339
  ## 0.6.3
328
340
 
329
341
  ### Patch Changes
330
342
 
331
- - Implement passphrase based auth
343
+ - Implement passphrase based auth
332
344
 
333
345
  ## 0.6.2
334
346
 
335
347
  ### Patch Changes
336
348
 
337
- - Add peersToLoadFrom for node creation as well
349
+ - Add peersToLoadFrom for node creation as well
338
350
 
339
351
  ## 0.6.1
340
352
 
341
353
  ### Patch Changes
342
354
 
343
- - Provide localNode to AccountMigrations
355
+ - Provide localNode to AccountMigrations
344
356
 
345
357
  ## 0.6.0
346
358
 
347
359
  ### Minor Changes
348
360
 
349
- - Make addMember and removeMember take loaded Accounts instead of just IDs
361
+ - Make addMember and removeMember take loaded Accounts instead of just IDs
350
362
 
351
363
  ## 0.5.2
352
364
 
353
365
  ### Patch Changes
354
366
 
355
- - Allow account migrations to be async
367
+ - Allow account migrations to be async
356
368
 
357
369
  ## 0.5.1
358
370
 
359
371
  ### Patch Changes
360
372
 
361
- - Fix bug where accounts, profiles and data created in migrations isn't synced on account creation
373
+ - Fix bug where accounts, profiles and data created in migrations isn't synced on account creation
362
374
 
363
375
  ## 0.5.0
364
376
 
365
377
  ### Minor Changes
366
378
 
367
- - Adding a lot of performance improvements to cojson, add a stresstest for the twit example and make that run smoother in a lot of ways.
379
+ - Adding a lot of performance improvements to cojson, add a stresstest for the twit example and make that run smoother in a lot of ways.
@@ -1,4 +1,4 @@
1
- import { emptyKnownState, combinedKnownStates } from "./sync.js";
1
+ import { combinedKnownStates, emptyKnownState, } from "./sync.js";
2
2
  export class PeerKnownStates {
3
3
  constructor() {
4
4
  this.coValues = new Map();
@@ -25,6 +25,11 @@ export class PeerKnownStates {
25
25
  has(id) {
26
26
  return this.coValues.has(id);
27
27
  }
28
+ clone() {
29
+ const clone = new PeerKnownStates();
30
+ clone.coValues = new Map(this.coValues);
31
+ return clone;
32
+ }
28
33
  dispatch(action) {
29
34
  switch (action.type) {
30
35
  case "UPDATE_HEADER":
@@ -1 +1 @@
1
- {"version":3,"file":"PeerKnownStates.js","sourceRoot":"","sources":["../../src/PeerKnownStates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PeerKnownStates.js","sourceRoot":"","sources":["../../src/PeerKnownStates.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,mBAAmB,EACnB,eAAe,GAChB,MAAM,WAAW,CAAC;AA6BnB,MAAM,OAAO,eAAe;IAA5B;QACU,aAAQ,GAAG,IAAI,GAAG,EAA8B,CAAC;QA6DzD,cAAS,GAAG,IAAI,GAAG,EAAwD,CAAC;IAmB9E,CAAC;IA9ES,YAAY,CAAC,EAAW,EAAE,MAAe;QAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;QAChE,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;QAC3B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;IACpC,CAAC;IAEO,WAAW,CAAC,EAAW,EAAE,KAAwB;QACvD,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;QAChE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,mBAAmB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;IAChE,CAAC;IAEO,oBAAoB,CAC1B,EAAW,EACX,SAAoB,EACpB,KAAa;QAEb,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;QAChE,MAAM,YAAY,GAAG,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACzD,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QAE/D,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;IACpC,CAAC;IAED,GAAG,CAAC,EAAW;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED,GAAG,CAAC,EAAW;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK;QACH,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;QACpC,KAAK,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,QAAQ,CAAC,MAA6B;QACpC,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,eAAe;gBAClB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC5C,MAAM;YACR,KAAK,wBAAwB;gBAC3B,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBACrE,MAAM;YACR,KAAK,KAAK;gBACR,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC3C,MAAM;YACR,KAAK,cAAc;gBACjB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC1C,MAAM;YACR,KAAK,cAAc;gBACjB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;gBACzD,MAAM;QACV,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC;IAID,aAAa,CAAC,EAAW;QACvB,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC;IACjE,CAAC;IAEO,OAAO,CAAC,EAAW,EAAE,UAA6B;QACxD,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,SAAS,CAAC,QAA8D;QACtE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE7B,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC,CAAC;IACJ,CAAC;CACF"}
@@ -1,10 +1,9 @@
1
1
  import { PeerKnownStates } from "./PeerKnownStates.js";
2
- import { CO_VALUE_PRIORITY } from "./priority.js";
3
2
  import { PriorityBasedMessageQueue, } from "./PriorityBasedMessageQueue.js";
3
+ import { CO_VALUE_PRIORITY } from "./priority.js";
4
4
  export class PeerState {
5
- constructor(peer) {
5
+ constructor(peer, knownStates) {
6
6
  this.peer = peer;
7
- this.optimisticKnownStates = new PeerKnownStates();
8
7
  this.toldKnownState = new Set();
9
8
  /**
10
9
  * We set as default priority HIGH to handle all the messages without a
@@ -15,6 +14,8 @@ export class PeerState {
15
14
  this.queue = new PriorityBasedMessageQueue(CO_VALUE_PRIORITY.HIGH);
16
15
  this.processing = false;
17
16
  this.closed = false;
17
+ this.optimisticKnownStates = knownStates?.clone() ?? new PeerKnownStates();
18
+ this.knownStates = knownStates?.clone() ?? new PeerKnownStates();
18
19
  }
19
20
  get id() {
20
21
  return this.peer.id;
@@ -1 +1 @@
1
- {"version":3,"file":"PeerState.js","sourceRoot":"","sources":["../../src/PeerState.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EACH,yBAAyB,GAE5B,MAAM,gCAAgC,CAAC;AAGxC,MAAM,OAAO,SAAS;IAClB,YAAoB,IAAU;QAAV,SAAI,GAAJ,IAAI,CAAM;QAErB,0BAAqB,GAAG,IAAI,eAAe,EAAE,CAAC;QAC9C,mBAAc,GAAiB,IAAI,GAAG,EAAE,CAAC;QAsBlD;;;;;WAKG;QACK,UAAK,GAAG,IAAI,yBAAyB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC9D,eAAU,GAAG,KAAK,CAAC;QACpB,WAAM,GAAG,KAAK,CAAC;IAjCW,CAAC;IAKlC,IAAI,EAAE;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACxB,CAAC;IAED,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IAC1B,CAAC;IAED,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC9B,CAAC;IAED,IAAI,YAAY;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;IAClC,CAAC;IAED,qBAAqB;QACjB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;IACvE,CAAC;IAYD,KAAK,CAAC,YAAY;QACd,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,OAAO;QACX,CAAC;QAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QAGvB,IAAI,KAA6B,CAAC;QAClC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YACjC,kDAAkD;YAClD,gEAAgE;YAChE,oDAAoD;YACpD,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ;iBACnB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;iBACf,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;iBACnB,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC7B,CAAC;QAED,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IAC5B,CAAC;IAED,mBAAmB,CAAC,GAAgB;QAChC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAErC,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;QAEzB,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,IAAI,QAAQ;QACR,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,SAAS,CAAC;gBACnB,MAAM,cAAuB,CAAC;YAClC,CAAC,CAAC,EAAE,CAAC;QACT,CAAC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC9B,CAAC;IAED,gBAAgB;QACZ,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACvB,CAAC;CACJ"}
1
+ {"version":3,"file":"PeerState.js","sourceRoot":"","sources":["../../src/PeerState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EACL,yBAAyB,GAE1B,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAGlD,MAAM,OAAO,SAAS;IACpB,YACU,IAAU,EAClB,WAAwC;QADhC,SAAI,GAAJ,IAAI,CAAM;QAsBX,mBAAc,GAAiB,IAAI,GAAG,EAAE,CAAC;QAsBlD;;;;;WAKG;QACK,UAAK,GAAG,IAAI,yBAAyB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC9D,eAAU,GAAG,KAAK,CAAC;QACpB,WAAM,GAAG,KAAK,CAAC;QAjDpB,IAAI,CAAC,qBAAqB,GAAG,WAAW,EAAE,KAAK,EAAE,IAAI,IAAI,eAAe,EAAE,CAAC;QAC3E,IAAI,CAAC,WAAW,GAAG,WAAW,EAAE,KAAK,EAAE,IAAI,IAAI,eAAe,EAAE,CAAC;IACnE,CAAC;IAmBD,IAAI,EAAE;QACJ,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACtB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACxB,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC5B,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;IAChC,CAAC;IAED,qBAAqB;QACnB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;IACrE,CAAC;IAYD,KAAK,CAAC,YAAY;QAChB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QAEvB,IAAI,KAA6B,CAAC;QAClC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YACnC,kDAAkD;YAClD,gEAAgE;YAChE,oDAAoD;YACpD,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ;iBACrB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;iBACf,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;iBACnB,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC;QAED,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IAC1B,CAAC;IAED,mBAAmB,CAAC,GAAgB;QAClC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAErC,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;QAEzB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,QAAQ;QACV,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,SAAS,CAAC;gBACrB,MAAM,cAAuB,CAAC;YAChC,CAAC,CAAC,EAAE,CAAC;QACP,CAAC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC5B,CAAC;IAED,gBAAgB;QACd,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACrB,CAAC;CACF"}
@@ -17,16 +17,7 @@ export class PriorityBasedMessageQueue {
17
17
  }
18
18
  constructor(defaultPriority) {
19
19
  this.defaultPriority = defaultPriority;
20
- this.queues = [
21
- [],
22
- [],
23
- [],
24
- [],
25
- [],
26
- [],
27
- [],
28
- [],
29
- ];
20
+ this.queues = [[], [], [], [], [], [], [], []];
30
21
  }
31
22
  push(msg) {
32
23
  const { promise, resolve, reject } = promiseWithResolvers();
@@ -1 +1 @@
1
- {"version":3,"file":"PriorityBasedMessageQueue.js","sourceRoot":"","sources":["../../src/PriorityBasedMessageQueue.ts"],"names":[],"mappings":"AAGA,SAAS,oBAAoB;IACzB,IAAI,OAAO,GAAG,CAAC,CAAI,EAAE,EAAE,GAAE,CAAC,CAAC;IAC3B,IAAI,MAAM,GAAG,CAAC,CAAU,EAAE,EAAE,GAAE,CAAC,CAAC;IAEhC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;QACjD,OAAO,GAAG,QAAQ,CAAC;QACnB,MAAM,GAAG,OAAO,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,OAAO;QACH,OAAO;QACP,OAAO;QACP,MAAM;KACT,CAAC;AACN,CAAC;AAeD,MAAM,OAAO,yBAAyB;IAY1B,QAAQ,CAAC,QAAyB;QACtC,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;IAED,YACY,eAAgC;QAAhC,oBAAe,GAAf,eAAe,CAAiB;QAhBpC,WAAM,GAAe;YACzB,EAAE;YACF,EAAE;YACF,EAAE;YACF,EAAE;YACF,EAAE;YACF,EAAE;YACF,EAAE;YACF,EAAE;SACL,CAAC;IAQC,CAAC;IAEG,IAAI,CAAC,GAAgB;QACxB,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,oBAAoB,EAAQ,CAAC;QAClE,MAAM,KAAK,GAAe,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAE5D,IAAI,UAAU,IAAI,GAAG,EAAE,CAAC;YACpB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAE1C,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpD,CAAC;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;IAEM,IAAI;QACP,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAElE,IAAI,CAAC,WAAW,EAAE,CAAC;YACf,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,OAAO,WAAW,CAAC,KAAK,EAAE,CAAC;IAC/B,CAAC;CACJ"}
1
+ {"version":3,"file":"PriorityBasedMessageQueue.js","sourceRoot":"","sources":["../../src/PriorityBasedMessageQueue.ts"],"names":[],"mappings":"AAGA,SAAS,oBAAoB;IAC3B,IAAI,OAAO,GAAG,CAAC,CAAI,EAAE,EAAE,GAAE,CAAC,CAAC;IAC3B,IAAI,MAAM,GAAG,CAAC,CAAU,EAAE,EAAE,GAAE,CAAC,CAAC;IAEhC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;QACnD,OAAO,GAAG,QAAQ,CAAC;QACnB,MAAM,GAAG,OAAO,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,OAAO;QACP,OAAO;QACP,MAAM;KACP,CAAC;AACJ,CAAC;AAmBD,MAAM,OAAO,yBAAyB;IAG5B,QAAQ,CAAC,QAAyB;QACxC,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAED,YAAoB,eAAgC;QAAhC,oBAAe,GAAf,eAAe,CAAiB;QAN5C,WAAM,GAAe,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAMP,CAAC;IAEjD,IAAI,CAAC,GAAgB;QAC1B,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,oBAAoB,EAAQ,CAAC;QAClE,MAAM,KAAK,GAAe,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAE5D,IAAI,UAAU,IAAI,GAAG,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAE1C,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClD,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEM,IAAI;QACT,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAElE,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,WAAW,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;CACF"}
@@ -0,0 +1,70 @@
1
+ import { emptyKnownState, } from "./sync.js";
2
+ export class SyncStateSubscriptionManager {
3
+ constructor(syncManager) {
4
+ this.syncManager = syncManager;
5
+ this.listeners = new Set();
6
+ this.listenersByPeers = new Map();
7
+ }
8
+ subscribeToUpdates(listener) {
9
+ this.listeners.add(listener);
10
+ return () => {
11
+ this.listeners.delete(listener);
12
+ };
13
+ }
14
+ subscribeToPeerUpdates(peerId, listener) {
15
+ const listeners = this.listenersByPeers.get(peerId) ?? new Set();
16
+ if (listeners.size === 0) {
17
+ this.listenersByPeers.set(peerId, listeners);
18
+ }
19
+ listeners.add(listener);
20
+ return () => {
21
+ listeners.delete(listener);
22
+ };
23
+ }
24
+ triggerUpdate(peerId, id) {
25
+ const peer = this.syncManager.peers[peerId];
26
+ if (!peer) {
27
+ return;
28
+ }
29
+ const peerListeners = this.listenersByPeers.get(peer.id);
30
+ // If we don't have any active listeners do nothing
31
+ if (!peerListeners?.size && !this.listeners.size) {
32
+ return;
33
+ }
34
+ const knownState = peer.knownStates.get(id) ?? emptyKnownState(id);
35
+ const fullyUploadedIntoPeer = this.getIsCoValueFullyUploadedIntoPeer(peerId, id);
36
+ for (const listener of this.listeners) {
37
+ listener(peerId, knownState, fullyUploadedIntoPeer);
38
+ }
39
+ if (!peerListeners)
40
+ return;
41
+ for (const listener of peerListeners) {
42
+ listener(knownState, fullyUploadedIntoPeer);
43
+ }
44
+ }
45
+ getIsCoValueFullyUploadedIntoPeer(peerId, id) {
46
+ const peer = this.syncManager.peers[peerId];
47
+ const entry = this.syncManager.local.coValues[id];
48
+ if (!peer || !entry) {
49
+ return false;
50
+ }
51
+ if (entry.state.type !== "available") {
52
+ return false;
53
+ }
54
+ const coValue = entry.state.coValue;
55
+ const knownState = peer.knownStates.get(id);
56
+ if (!knownState) {
57
+ return false;
58
+ }
59
+ return getIsUploadCompleted(coValue.knownState().sessions, knownState.sessions);
60
+ }
61
+ }
62
+ function getIsUploadCompleted(from, to) {
63
+ for (const sessionId of Object.keys(from)) {
64
+ if (from[sessionId] !== to[sessionId]) {
65
+ return false;
66
+ }
67
+ }
68
+ return true;
69
+ }
70
+ //# sourceMappingURL=SyncStateSubscriptionManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SyncStateSubscriptionManager.js","sourceRoot":"","sources":["../../src/SyncStateSubscriptionManager.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"base64url.js","sourceRoot":"","sources":["../../src/base64url.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base64url.js","sourceRoot":"","sources":["../../src/base64url.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
+ import { expect, test } from "vitest";
1
2
  import { base64URLtoBytes, bytesToBase64url } from "./base64url.js";
2
- import { test, expect } from "vitest";
3
3
  const txt = new TextEncoder();
4
4
  test("Test our Base64 URL encoding and decoding", () => {
5
5
  // tests from the RFC