cojson-storage-sqlite 0.8.11 → 0.8.16

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.
package/CHANGELOG.md CHANGED
@@ -1,373 +1,388 @@
1
1
  # cojson-storage-sqlite
2
2
 
3
+ ## 0.8.16
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [b934fab]
8
+ - cojson@0.8.16
9
+
10
+ ## 0.8.12
11
+
12
+ ### Patch Changes
13
+
14
+ - 6ed75eb: Introduce "storage" peer role
15
+ - Updated dependencies [6ed75eb]
16
+ - cojson@0.8.12
17
+
3
18
  ## 0.8.11
4
19
 
5
20
  ### Patch Changes
6
21
 
7
- - Updated dependencies [1ed4ab5]
8
- - cojson@0.8.11
22
+ - Updated dependencies [1ed4ab5]
23
+ - cojson@0.8.11
9
24
 
10
25
  ## 0.8.5
11
26
 
12
27
  ### Patch Changes
13
28
 
14
- - Updated dependencies [c3f4e6b]
15
- - Updated dependencies [d9152ed]
16
- - cojson@0.8.5
29
+ - Updated dependencies [c3f4e6b]
30
+ - Updated dependencies [d9152ed]
31
+ - cojson@0.8.5
17
32
 
18
33
  ## 0.8.3
19
34
 
20
35
  ### Patch Changes
21
36
 
22
- - Updated dependencies
23
- - cojson@0.8.3
37
+ - Updated dependencies
38
+ - cojson@0.8.3
24
39
 
25
40
  ## 0.8.0
26
41
 
27
42
  ### Patch Changes
28
43
 
29
- - Updated dependencies [6a147c2]
30
- - Updated dependencies [ad40b88]
31
- - cojson@0.8.0
44
+ - Updated dependencies [6a147c2]
45
+ - Updated dependencies [ad40b88]
46
+ - cojson@0.8.0
32
47
 
33
48
  ## 0.7.35
34
49
 
35
50
  ### Patch Changes
36
51
 
37
- - f350e90: Added a priority system for the sync messages
38
- - Updated dependencies [35bbcd9]
39
- - Updated dependencies [f350e90]
40
- - cojson@0.7.35
52
+ - f350e90: Added a priority system for the sync messages
53
+ - Updated dependencies [35bbcd9]
54
+ - Updated dependencies [f350e90]
55
+ - cojson@0.7.35
41
56
 
42
57
  ## 0.7.34
43
58
 
44
59
  ### Patch Changes
45
60
 
46
- - Updated dependencies [5d91f9f]
47
- - Updated dependencies [5094e6d]
48
- - Updated dependencies [b09589b]
49
- - Updated dependencies [2c3a40c]
50
- - Updated dependencies [4e16575]
51
- - Updated dependencies [ea882ab]
52
- - cojson@0.7.34
61
+ - Updated dependencies [5d91f9f]
62
+ - Updated dependencies [5094e6d]
63
+ - Updated dependencies [b09589b]
64
+ - Updated dependencies [2c3a40c]
65
+ - Updated dependencies [4e16575]
66
+ - Updated dependencies [ea882ab]
67
+ - cojson@0.7.34
53
68
 
54
69
  ## 0.7.34-neverthrow.8
55
70
 
56
71
  ### Patch Changes
57
72
 
58
- - Updated dependencies
59
- - cojson@0.7.34-neverthrow.8
73
+ - Updated dependencies
74
+ - cojson@0.7.34-neverthrow.8
60
75
 
61
76
  ## 0.7.34-neverthrow.7
62
77
 
63
78
  ### Patch Changes
64
79
 
65
- - Updated dependencies
66
- - cojson@0.7.34-neverthrow.7
80
+ - Updated dependencies
81
+ - cojson@0.7.34-neverthrow.7
67
82
 
68
83
  ## 0.7.34-neverthrow.4
69
84
 
70
85
  ### Patch Changes
71
86
 
72
- - Updated dependencies
73
- - cojson@0.7.34-neverthrow.4
87
+ - Updated dependencies
88
+ - cojson@0.7.34-neverthrow.4
74
89
 
75
90
  ## 0.7.34-neverthrow.3
76
91
 
77
92
  ### Patch Changes
78
93
 
79
- - Updated dependencies
80
- - cojson@0.7.34-neverthrow.3
94
+ - Updated dependencies
95
+ - cojson@0.7.34-neverthrow.3
81
96
 
82
97
  ## 0.7.34-neverthrow.1
83
98
 
84
99
  ### Patch Changes
85
100
 
86
- - Updated dependencies
87
- - cojson@0.7.34-neverthrow.1
101
+ - Updated dependencies
102
+ - cojson@0.7.34-neverthrow.1
88
103
 
89
104
  ## 0.7.34-neverthrow.0
90
105
 
91
106
  ### Patch Changes
92
107
 
93
- - Updated dependencies
94
- - cojson@0.7.34-neverthrow.0
108
+ - Updated dependencies
109
+ - cojson@0.7.34-neverthrow.0
95
110
 
96
111
  ## 0.7.33
97
112
 
98
113
  ### Patch Changes
99
114
 
100
- - 3bf5127: Allow crashing whole node on peer errors
101
- - Updated dependencies [b297c93]
102
- - Updated dependencies [3bf5127]
103
- - Updated dependencies [a8b74ff]
104
- - Updated dependencies [db53161]
105
- - cojson@0.7.33
115
+ - 3bf5127: Allow crashing whole node on peer errors
116
+ - Updated dependencies [b297c93]
117
+ - Updated dependencies [3bf5127]
118
+ - Updated dependencies [a8b74ff]
119
+ - Updated dependencies [db53161]
120
+ - cojson@0.7.33
106
121
 
107
122
  ## 0.7.33-hotfixes.6
108
123
 
109
124
  ### Patch Changes
110
125
 
111
- - Get rid of simulated errors
126
+ - Get rid of simulated errors
112
127
 
113
128
  ## 0.7.33-hotfixes.5
114
129
 
115
130
  ### Patch Changes
116
131
 
117
- - Make simulated errors even more likely
118
- - Updated dependencies
119
- - cojson@0.7.33-hotfixes.5
132
+ - Make simulated errors even more likely
133
+ - Updated dependencies
134
+ - cojson@0.7.33-hotfixes.5
120
135
 
121
136
  ## 0.7.33-hotfixes.4
122
137
 
123
138
  ### Patch Changes
124
139
 
125
- - Updated dependencies
126
- - cojson@0.7.33-hotfixes.4
140
+ - Updated dependencies
141
+ - cojson@0.7.33-hotfixes.4
127
142
 
128
143
  ## 0.7.33-hotfixes.3
129
144
 
130
145
  ### Patch Changes
131
146
 
132
- - Allow crashing whole node on peer errors
133
- - Updated dependencies
134
- - cojson@0.7.33-hotfixes.3
147
+ - Allow crashing whole node on peer errors
148
+ - Updated dependencies
149
+ - cojson@0.7.33-hotfixes.3
135
150
 
136
151
  ## 0.7.33-hotfixes.0
137
152
 
138
153
  ### Patch Changes
139
154
 
140
- - Updated dependencies
141
- - cojson@0.7.33-hotfixes.0
155
+ - Updated dependencies
156
+ - cojson@0.7.33-hotfixes.0
142
157
 
143
158
  ## 0.7.31
144
159
 
145
160
  ### Patch Changes
146
161
 
147
- - Updated dependencies
148
- - cojson@0.7.31
162
+ - Updated dependencies
163
+ - cojson@0.7.31
149
164
 
150
165
  ## 0.7.29
151
166
 
152
167
  ### Patch Changes
153
168
 
154
- - Updated dependencies
155
- - cojson@0.7.29
169
+ - Updated dependencies
170
+ - cojson@0.7.29
156
171
 
157
172
  ## 0.7.28
158
173
 
159
174
  ### Patch Changes
160
175
 
161
- - Updated dependencies
162
- - cojson@0.7.28
176
+ - Updated dependencies
177
+ - cojson@0.7.28
163
178
 
164
179
  ## 0.7.26
165
180
 
166
181
  ### Patch Changes
167
182
 
168
- - Remove Effect from jazz/cojson internals
169
- - Updated dependencies
170
- - cojson@0.7.26
183
+ - Remove Effect from jazz/cojson internals
184
+ - Updated dependencies
185
+ - cojson@0.7.26
171
186
 
172
187
  ## 0.7.23
173
188
 
174
189
  ### Patch Changes
175
190
 
176
- - Updated dependencies
177
- - cojson@0.7.23
191
+ - Updated dependencies
192
+ - cojson@0.7.23
178
193
 
179
194
  ## 0.7.18
180
195
 
181
196
  ### Patch Changes
182
197
 
183
- - Updated dependencies
184
- - cojson@0.7.18
198
+ - Updated dependencies
199
+ - cojson@0.7.18
185
200
 
186
201
  ## 0.7.17
187
202
 
188
203
  ### Patch Changes
189
204
 
190
- - Updated dependencies
191
- - cojson@0.7.17
205
+ - Updated dependencies
206
+ - cojson@0.7.17
192
207
 
193
208
  ## 0.7.14
194
209
 
195
210
  ### Patch Changes
196
211
 
197
- - Updated dependencies
198
- - cojson@0.7.14
212
+ - Updated dependencies
213
+ - cojson@0.7.14
199
214
 
200
215
  ## 0.7.11
201
216
 
202
217
  ### Patch Changes
203
218
 
204
- - Updated dependencies
205
- - cojson@0.7.11
219
+ - Updated dependencies
220
+ - cojson@0.7.11
206
221
 
207
222
  ## 0.7.10
208
223
 
209
224
  ### Patch Changes
210
225
 
211
- - Updated dependencies
212
- - cojson@0.7.10
226
+ - Updated dependencies
227
+ - cojson@0.7.10
213
228
 
214
229
  ## 0.7.9
215
230
 
216
231
  ### Patch Changes
217
232
 
218
- - Updated dependencies
219
- - cojson@0.7.9
233
+ - Updated dependencies
234
+ - cojson@0.7.9
220
235
 
221
236
  ## 0.7.0
222
237
 
223
238
  ### Patch Changes
224
239
 
225
- - c4151fc: Support stricter TS lint rules
226
- - 21771c4: Reintroduce changes from main
227
- - 69ac514: Use effect schema much less
228
- - f0f6f1b: Clean up API more & re-add jazz-nodejs
229
- - Updated dependencies [1a35307]
230
- - Updated dependencies [96c494f]
231
- - Updated dependencies [19f52b7]
232
- - Updated dependencies [d8fe2b1]
233
- - Updated dependencies [1200aae]
234
- - Updated dependencies [52675c9]
235
- - Updated dependencies [1a35307]
236
- - Updated dependencies [e299c3e]
237
- - Updated dependencies [bf0f8ec]
238
- - Updated dependencies [c4151fc]
239
- - Updated dependencies [8636319]
240
- - Updated dependencies [952982e]
241
- - Updated dependencies [21771c4]
242
- - Updated dependencies [69ac514]
243
- - Updated dependencies [f0f6f1b]
244
- - Updated dependencies [1a44f87]
245
- - Updated dependencies [63374cc]
246
- - cojson@0.7.0
240
+ - c4151fc: Support stricter TS lint rules
241
+ - 21771c4: Reintroduce changes from main
242
+ - 69ac514: Use effect schema much less
243
+ - f0f6f1b: Clean up API more & re-add jazz-nodejs
244
+ - Updated dependencies [1a35307]
245
+ - Updated dependencies [96c494f]
246
+ - Updated dependencies [19f52b7]
247
+ - Updated dependencies [d8fe2b1]
248
+ - Updated dependencies [1200aae]
249
+ - Updated dependencies [52675c9]
250
+ - Updated dependencies [1a35307]
251
+ - Updated dependencies [e299c3e]
252
+ - Updated dependencies [bf0f8ec]
253
+ - Updated dependencies [c4151fc]
254
+ - Updated dependencies [8636319]
255
+ - Updated dependencies [952982e]
256
+ - Updated dependencies [21771c4]
257
+ - Updated dependencies [69ac514]
258
+ - Updated dependencies [f0f6f1b]
259
+ - Updated dependencies [1a44f87]
260
+ - Updated dependencies [63374cc]
261
+ - cojson@0.7.0
247
262
 
248
263
  ## 0.7.0-alpha.42
249
264
 
250
265
  ### Patch Changes
251
266
 
252
- - Updated dependencies
253
- - cojson@0.7.0-alpha.42
267
+ - Updated dependencies
268
+ - cojson@0.7.0-alpha.42
254
269
 
255
270
  ## 0.7.0-alpha.39
256
271
 
257
272
  ### Patch Changes
258
273
 
259
- - Updated dependencies
260
- - cojson@0.7.0-alpha.39
274
+ - Updated dependencies
275
+ - cojson@0.7.0-alpha.39
261
276
 
262
277
  ## 0.7.0-alpha.38
263
278
 
264
279
  ### Patch Changes
265
280
 
266
- - Updated dependencies
267
- - cojson@0.7.0-alpha.38
281
+ - Updated dependencies
282
+ - cojson@0.7.0-alpha.38
268
283
 
269
284
  ## 0.7.0-alpha.37
270
285
 
271
286
  ### Patch Changes
272
287
 
273
- - Updated dependencies
274
- - cojson@0.7.0-alpha.37
288
+ - Updated dependencies
289
+ - cojson@0.7.0-alpha.37
275
290
 
276
291
  ## 0.7.0-alpha.36
277
292
 
278
293
  ### Patch Changes
279
294
 
280
- - Updated dependencies [1a35307]
281
- - Updated dependencies [1a35307]
282
- - cojson@0.7.0-alpha.36
295
+ - Updated dependencies [1a35307]
296
+ - Updated dependencies [1a35307]
297
+ - cojson@0.7.0-alpha.36
283
298
 
284
299
  ## 0.7.0-alpha.35
285
300
 
286
301
  ### Patch Changes
287
302
 
288
- - Updated dependencies
289
- - cojson@0.7.0-alpha.35
303
+ - Updated dependencies
304
+ - cojson@0.7.0-alpha.35
290
305
 
291
306
  ## 0.7.0-alpha.29
292
307
 
293
308
  ### Patch Changes
294
309
 
295
- - Reintroduce changes from main
296
- - Updated dependencies
297
- - cojson@0.7.0-alpha.29
310
+ - Reintroduce changes from main
311
+ - Updated dependencies
312
+ - cojson@0.7.0-alpha.29
298
313
 
299
314
  ## 0.7.0-alpha.28
300
315
 
301
316
  ### Patch Changes
302
317
 
303
- - Updated dependencies
304
- - cojson@0.7.0-alpha.28
318
+ - Updated dependencies
319
+ - cojson@0.7.0-alpha.28
305
320
 
306
321
  ## 0.7.0-alpha.27
307
322
 
308
323
  ### Patch Changes
309
324
 
310
- - Updated dependencies
311
- - cojson@0.7.0-alpha.27
325
+ - Updated dependencies
326
+ - cojson@0.7.0-alpha.27
312
327
 
313
328
  ## 0.7.0-alpha.24
314
329
 
315
330
  ### Patch Changes
316
331
 
317
- - Updated dependencies
318
- - cojson@0.7.0-alpha.24
332
+ - Updated dependencies
333
+ - cojson@0.7.0-alpha.24
319
334
 
320
335
  ## 0.7.0-alpha.11
321
336
 
322
337
  ### Patch Changes
323
338
 
324
- - Support stricter TS lint rules
325
- - Updated dependencies
326
- - cojson@0.7.0-alpha.11
339
+ - Support stricter TS lint rules
340
+ - Updated dependencies
341
+ - cojson@0.7.0-alpha.11
327
342
 
328
343
  ## 0.7.0-alpha.10
329
344
 
330
345
  ### Patch Changes
331
346
 
332
- - Clean up API more & re-add jazz-nodejs
333
- - Updated dependencies
334
- - cojson@0.7.0-alpha.10
347
+ - Clean up API more & re-add jazz-nodejs
348
+ - Updated dependencies
349
+ - cojson@0.7.0-alpha.10
335
350
 
336
351
  ## 0.5.3-alpha.1
337
352
 
338
353
  ### Patch Changes
339
354
 
340
- - Use effect schema much less
341
- - Updated dependencies
342
- - cojson@0.7.0-alpha.1
355
+ - Use effect schema much less
356
+ - Updated dependencies
357
+ - cojson@0.7.0-alpha.1
343
358
 
344
359
  ## 0.5.3-alpha.0
345
360
 
346
361
  ### Patch Changes
347
362
 
348
- - Updated dependencies
349
- - cojson@0.7.0-alpha.0
363
+ - Updated dependencies
364
+ - cojson@0.7.0-alpha.0
350
365
 
351
366
  ## 0.5.2
352
367
 
353
368
  ### Patch Changes
354
369
 
355
- - Updated dependencies
356
- - cojson@0.6.0
370
+ - Updated dependencies
371
+ - cojson@0.6.0
357
372
 
358
373
  ## 0.5.1
359
374
 
360
375
  ### Patch Changes
361
376
 
362
- - Make typedefs for better-sqlite3 a normal dependency
377
+ - Make typedefs for better-sqlite3 a normal dependency
363
378
 
364
379
  ## 0.5.0
365
380
 
366
381
  ### Minor Changes
367
382
 
368
- - 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.
383
+ - 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.
369
384
 
370
385
  ### Patch Changes
371
386
 
372
- - Updated dependencies
373
- - cojson@0.5.0
387
+ - Updated dependencies
388
+ - cojson@0.5.0
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { cojsonInternals, MAX_RECOMMENDED_TX_SIZE, } from "cojson";
1
+ import { MAX_RECOMMENDED_TX_SIZE, cojsonInternals, } from "cojson";
2
2
  import Database from "better-sqlite3";
3
3
  export class SQLiteStorage {
4
4
  constructor(db, fromLocalNode, toLocalNode) {
@@ -22,7 +22,7 @@ export class SQLiteStorage {
22
22
  processMessages().catch((e) => console.error("Error in processMessages in sqlite", e));
23
23
  }
24
24
  static async asPeer({ filename, trace, localNodeName = "local", }) {
25
- const [localNodeAsPeer, storageAsPeer] = cojsonInternals.connectedPeers(localNodeName, "storage", { peer1role: "client", peer2role: "server", trace, crashOnClose: true });
25
+ const [localNodeAsPeer, storageAsPeer] = cojsonInternals.connectedPeers(localNodeName, "storage", { peer1role: "client", peer2role: "storage", trace, crashOnClose: true });
26
26
  await SQLiteStorage.open(filename, localNodeAsPeer.incoming, localNodeAsPeer.outgoing);
27
27
  return { ...storageAsPeer, priority: 100 };
28
28
  }
@@ -117,8 +117,7 @@ export class SQLiteStorage {
117
117
  };
118
118
  let parsedHeader;
119
119
  try {
120
- parsedHeader = (coValueRow?.header &&
121
- JSON.parse(coValueRow.header));
120
+ parsedHeader = (coValueRow?.header && JSON.parse(coValueRow.header));
122
121
  }
123
122
  catch (e) {
124
123
  console.warn(theirKnown.id, "Invalid JSON in header", e, coValueRow?.header);
@@ -136,8 +135,7 @@ export class SQLiteStorage {
136
135
  ];
137
136
  for (const sessionRow of allOurSessions) {
138
137
  ourKnown.sessions[sessionRow.sessionID] = sessionRow.lastIdx;
139
- if (sessionRow.lastIdx >
140
- (theirKnown.sessions[sessionRow.sessionID] || 0)) {
138
+ if (sessionRow.lastIdx > (theirKnown.sessions[sessionRow.sessionID] || 0)) {
141
139
  const firstNewTxIdx = theirKnown.sessions[sessionRow.sessionID] || 0;
142
140
  const signaturesAndIdxs = this.db
143
141
  .prepare(`SELECT * FROM signatureAfter WHERE ses = ? AND idx >= ?`)
@@ -175,10 +173,8 @@ export class SQLiteStorage {
175
173
  break;
176
174
  }
177
175
  sessionEntry.newTransactions.push(parsedTx);
178
- if (signaturesAndIdxs[0] &&
179
- idx === signaturesAndIdxs[0].idx) {
180
- sessionEntry.lastSignature =
181
- signaturesAndIdxs[0].signature;
176
+ if (signaturesAndIdxs[0] && idx === signaturesAndIdxs[0].idx) {
177
+ sessionEntry.lastSignature = signaturesAndIdxs[0].signature;
182
178
  signaturesAndIdxs.shift();
183
179
  newContentPieces.push({
184
180
  action: "content",
@@ -187,8 +183,7 @@ export class SQLiteStorage {
187
183
  priority,
188
184
  });
189
185
  }
190
- else if (idx ===
191
- firstNewTxIdx + newTxInSession.length - 1) {
186
+ else if (idx === firstNewTxIdx + newTxInSession.length - 1) {
192
187
  sessionEntry.lastSignature = sessionRow.lastSignature;
193
188
  }
194
189
  idx += 1;
@@ -217,15 +212,15 @@ export class SQLiteStorage {
217
212
  change.op === "set" &&
218
213
  "key" in change &&
219
214
  change.key)
220
- .filter((key) => typeof key === "string" &&
221
- key.startsWith("co_"));
215
+ .filter((key) => typeof key === "string" && key.startsWith("co_"));
222
216
  }))
223
217
  : parsedHeader?.ruleset.type === "ownedByGroup"
224
218
  ? [
225
219
  parsedHeader?.ruleset.group,
226
220
  ...new Set(newContentPieces.flatMap((piece) => Object.keys(piece)
227
221
  .map((sessionID) => cojsonInternals.accountOrAgentIDfromSessionID(sessionID))
228
- .filter((accountID) => cojsonInternals.isAccountID(accountID) && accountID !== theirKnown.id))),
222
+ .filter((accountID) => cojsonInternals.isAccountID(accountID) &&
223
+ accountID !== theirKnown.id))),
229
224
  ]
230
225
  : [];
231
226
  for (const dependedOnCoValue of dependedOnCoValues) {
@@ -289,25 +284,21 @@ export class SQLiteStorage {
289
284
  for (const sessionID of Object.keys(msg.new)) {
290
285
  const sessionRow = allOurSessions[sessionID];
291
286
  if (sessionRow) {
292
- ourKnown.sessions[sessionRow.sessionID] =
293
- sessionRow.lastIdx;
287
+ ourKnown.sessions[sessionRow.sessionID] = sessionRow.lastIdx;
294
288
  }
295
- if ((sessionRow?.lastIdx || 0) <
296
- (msg.new[sessionID]?.after || 0)) {
289
+ if ((sessionRow?.lastIdx || 0) < (msg.new[sessionID]?.after || 0)) {
297
290
  invalidAssumptions = true;
298
291
  }
299
292
  else {
300
293
  const newTransactions = msg.new[sessionID]?.newTransactions || [];
301
- const actuallyNewOffset = (sessionRow?.lastIdx || 0) -
302
- (msg.new[sessionID]?.after || 0);
294
+ const actuallyNewOffset = (sessionRow?.lastIdx || 0) - (msg.new[sessionID]?.after || 0);
303
295
  const actuallyNewTransactions = newTransactions.slice(actuallyNewOffset);
304
296
  let newBytesSinceLastSignature = (sessionRow?.bytesSinceLastSignature || 0) +
305
297
  actuallyNewTransactions.reduce((sum, tx) => sum +
306
298
  (tx.privacy === "private"
307
299
  ? tx.encryptedChanges.length
308
300
  : tx.changes.length), 0);
309
- const newLastIdx = (sessionRow?.lastIdx || 0) +
310
- actuallyNewTransactions.length;
301
+ const newLastIdx = (sessionRow?.lastIdx || 0) + actuallyNewTransactions.length;
311
302
  let shouldWriteSignature = false;
312
303
  if (newBytesSinceLastSignature > MAX_RECOMMENDED_TX_SIZE) {
313
304
  shouldWriteSignature = true;