cojson-storage-indexeddb 0.7.10 → 0.7.14
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/.turbo/turbo-build.log +2 -2
- package/CHANGELOG.md +14 -0
- package/dist/index.js +24 -50
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
- package/src/index.ts +91 -98
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
|
|
2
|
-
> cojson-storage-indexeddb@0.7.
|
|
2
|
+
> cojson-storage-indexeddb@0.7.14 build /Users/anselm/jazz/jazz/packages/cojson-storage-indexeddb
|
|
3
3
|
> npm run lint && rm -rf ./dist && tsc --sourceMap --outDir dist
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
> cojson-storage-indexeddb@0.7.
|
|
6
|
+
> cojson-storage-indexeddb@0.7.14 lint
|
|
7
7
|
> eslint . --ext ts,tsx
|
|
8
8
|
|
package/CHANGELOG.md
CHANGED
package/dist/index.js
CHANGED
|
@@ -1,38 +1,26 @@
|
|
|
1
1
|
import { cojsonInternals, MAX_RECOMMENDED_TX_SIZE, } from "cojson";
|
|
2
2
|
import { SyncPromise } from "./syncPromises.js";
|
|
3
|
+
import { Effect, Queue, Stream } from "effect";
|
|
3
4
|
export class IDBStorage {
|
|
4
5
|
constructor(db, fromLocalNode, toLocalNode) {
|
|
5
6
|
this.currentTxID = 0;
|
|
6
7
|
this.db = db;
|
|
7
|
-
this.
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
if (result.value) {
|
|
15
|
-
// console.log(
|
|
16
|
-
// "IDB: handling msg",
|
|
17
|
-
// result.value.id,
|
|
18
|
-
// result.value.action
|
|
19
|
-
// );
|
|
20
|
-
await this.handleSyncMessage(result.value);
|
|
21
|
-
// console.log(
|
|
22
|
-
// "IDB: handled msg",
|
|
23
|
-
// result.value.id,
|
|
24
|
-
// result.value.action
|
|
25
|
-
// );
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
})();
|
|
8
|
+
this.toLocalNode = toLocalNode;
|
|
9
|
+
void fromLocalNode.pipe(Stream.runForEach((msg) => Effect.tryPromise({
|
|
10
|
+
try: () => this.handleSyncMessage(msg),
|
|
11
|
+
catch: (e) => new Error(`Error reading from localNode, handling msg\n\n${JSON.stringify(msg, (k, v) => k === "changes" || k === "encryptedChanges"
|
|
12
|
+
? v.slice(0, 20) + "..."
|
|
13
|
+
: v)}`, { cause: e }),
|
|
14
|
+
})), Effect.runPromise);
|
|
29
15
|
}
|
|
30
16
|
static async asPeer({ trace, localNodeName = "local", } = {
|
|
31
17
|
localNodeName: "local",
|
|
32
18
|
}) {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
19
|
+
return Effect.runPromise(Effect.gen(function* () {
|
|
20
|
+
const [localNodeAsPeer, storageAsPeer] = yield* cojsonInternals.connectedPeers(localNodeName, "storage", { peer1role: "client", peer2role: "server", trace });
|
|
21
|
+
yield* Effect.promise(() => IDBStorage.open(localNodeAsPeer.incoming, localNodeAsPeer.outgoing));
|
|
22
|
+
return { ...storageAsPeer, priority: 100 };
|
|
23
|
+
}));
|
|
36
24
|
}
|
|
37
25
|
static async open(fromLocalNode, toLocalNode) {
|
|
38
26
|
const dbPromise = new Promise((resolve, reject) => {
|
|
@@ -70,21 +58,6 @@ export class IDBStorage {
|
|
|
70
58
|
keyPath: ["ses", "idx"],
|
|
71
59
|
});
|
|
72
60
|
}
|
|
73
|
-
// if (ev.oldVersion !== 0 && ev.oldVersion <= 3) {
|
|
74
|
-
// // fix embarrassing off-by-one error for transaction indices
|
|
75
|
-
// console.log("Migration: fixing off-by-one error");
|
|
76
|
-
// const transaction = (
|
|
77
|
-
// ev.target as unknown as { transaction: IDBTransaction }
|
|
78
|
-
// ).transaction;
|
|
79
|
-
// const txsStore = transaction.objectStore("transactions");
|
|
80
|
-
// const txs = await promised(txsStore.getAll());
|
|
81
|
-
// for (const tx of txs) {
|
|
82
|
-
// await promised(txsStore.delete([tx.ses, tx.idx]));
|
|
83
|
-
// tx.idx -= 1;
|
|
84
|
-
// await promised(txsStore.add(tx));
|
|
85
|
-
// }
|
|
86
|
-
// console.log("Migration: fixing off-by-one error - done");
|
|
87
|
-
// }
|
|
88
61
|
};
|
|
89
62
|
});
|
|
90
63
|
return new IDBStorage(await dbPromise, fromLocalNode, toLocalNode);
|
|
@@ -221,20 +194,21 @@ export class IDBStorage {
|
|
|
221
194
|
sessions: {},
|
|
222
195
|
}, asDependencyOf || theirKnown.id))).then(() => {
|
|
223
196
|
// we're done with IndexedDB stuff here so can use native Promises again
|
|
224
|
-
setTimeout(
|
|
225
|
-
|
|
197
|
+
setTimeout(() => Effect.runPromise(Effect.gen(this, function* () {
|
|
198
|
+
yield* Queue.offer(this.toLocalNode, {
|
|
226
199
|
action: "known",
|
|
227
200
|
...ourKnown,
|
|
228
201
|
asDependencyOf,
|
|
229
202
|
});
|
|
230
203
|
const nonEmptyNewContentPieces = newContentPieces.filter((piece) => piece.header ||
|
|
231
|
-
Object.keys(piece.new)
|
|
204
|
+
Object.keys(piece.new)
|
|
205
|
+
.length > 0);
|
|
232
206
|
// console.log(theirKnown.id, nonEmptyNewContentPieces);
|
|
233
207
|
for (const piece of nonEmptyNewContentPieces) {
|
|
234
|
-
|
|
235
|
-
|
|
208
|
+
yield* Queue.offer(this.toLocalNode, piece);
|
|
209
|
+
yield* Effect.yieldNow();
|
|
236
210
|
}
|
|
237
|
-
}
|
|
211
|
+
})));
|
|
238
212
|
return Promise.resolve();
|
|
239
213
|
});
|
|
240
214
|
});
|
|
@@ -252,13 +226,13 @@ export class IDBStorage {
|
|
|
252
226
|
const header = msg.header;
|
|
253
227
|
if (!header) {
|
|
254
228
|
console.error("Expected to be sent header first");
|
|
255
|
-
void this.toLocalNode
|
|
229
|
+
void Effect.runPromise(Queue.offer(this.toLocalNode, {
|
|
256
230
|
action: "known",
|
|
257
231
|
id: msg.id,
|
|
258
232
|
header: false,
|
|
259
233
|
sessions: {},
|
|
260
234
|
isCorrection: true,
|
|
261
|
-
});
|
|
235
|
+
}));
|
|
262
236
|
throw new Error("Expected to be sent header first");
|
|
263
237
|
}
|
|
264
238
|
return this.makeRequest(({ coValues }) => coValues.put({
|
|
@@ -299,11 +273,11 @@ export class IDBStorage {
|
|
|
299
273
|
}
|
|
300
274
|
})).then(() => {
|
|
301
275
|
if (invalidAssumptions) {
|
|
302
|
-
void this.toLocalNode
|
|
276
|
+
void Effect.runPromise(Queue.offer(this.toLocalNode, {
|
|
303
277
|
action: "known",
|
|
304
278
|
...ourKnown,
|
|
305
279
|
isCorrection: invalidAssumptions,
|
|
306
|
-
});
|
|
280
|
+
}));
|
|
307
281
|
}
|
|
308
282
|
});
|
|
309
283
|
});
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cojson-storage-indexeddb",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.14",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"types": "src/index.ts",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"dependencies": {
|
|
9
|
+
"effect": "^3.1.5",
|
|
9
10
|
"typescript": "^5.1.6",
|
|
10
|
-
"
|
|
11
|
-
"cojson": "0.7.10"
|
|
11
|
+
"cojson": "0.7.14"
|
|
12
12
|
},
|
|
13
13
|
"devDependencies": {
|
|
14
14
|
"@vitest/browser": "^0.34.1",
|
package/src/index.ts
CHANGED
|
@@ -6,14 +6,11 @@ import {
|
|
|
6
6
|
CojsonInternalTypes,
|
|
7
7
|
MAX_RECOMMENDED_TX_SIZE,
|
|
8
8
|
AccountID,
|
|
9
|
+
IncomingSyncStream,
|
|
10
|
+
OutgoingSyncQueue,
|
|
9
11
|
} from "cojson";
|
|
10
|
-
import {
|
|
11
|
-
ReadableStream,
|
|
12
|
-
WritableStream,
|
|
13
|
-
ReadableStreamDefaultReader,
|
|
14
|
-
WritableStreamDefaultWriter,
|
|
15
|
-
} from "isomorphic-streams";
|
|
16
12
|
import { SyncPromise } from "./syncPromises.js";
|
|
13
|
+
import { Effect, Queue, Stream } from "effect";
|
|
17
14
|
|
|
18
15
|
type CoValueRow = {
|
|
19
16
|
id: CojsonInternalTypes.RawCoID;
|
|
@@ -46,39 +43,35 @@ type SignatureAfterRow = {
|
|
|
46
43
|
|
|
47
44
|
export class IDBStorage {
|
|
48
45
|
db: IDBDatabase;
|
|
49
|
-
|
|
50
|
-
toLocalNode: WritableStreamDefaultWriter<SyncMessage>;
|
|
46
|
+
toLocalNode: OutgoingSyncQueue;
|
|
51
47
|
|
|
52
48
|
constructor(
|
|
53
49
|
db: IDBDatabase,
|
|
54
|
-
fromLocalNode:
|
|
55
|
-
toLocalNode:
|
|
50
|
+
fromLocalNode: IncomingSyncStream,
|
|
51
|
+
toLocalNode: OutgoingSyncQueue,
|
|
56
52
|
) {
|
|
57
53
|
this.db = db;
|
|
58
|
-
this.
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
})();
|
|
54
|
+
this.toLocalNode = toLocalNode;
|
|
55
|
+
|
|
56
|
+
void fromLocalNode.pipe(
|
|
57
|
+
Stream.runForEach((msg) =>
|
|
58
|
+
Effect.tryPromise({
|
|
59
|
+
try: () => this.handleSyncMessage(msg),
|
|
60
|
+
catch: (e) =>
|
|
61
|
+
new Error(
|
|
62
|
+
`Error reading from localNode, handling msg\n\n${JSON.stringify(
|
|
63
|
+
msg,
|
|
64
|
+
(k, v) =>
|
|
65
|
+
k === "changes" || k === "encryptedChanges"
|
|
66
|
+
? v.slice(0, 20) + "..."
|
|
67
|
+
: v,
|
|
68
|
+
)}`,
|
|
69
|
+
{ cause: e },
|
|
70
|
+
),
|
|
71
|
+
}),
|
|
72
|
+
),
|
|
73
|
+
Effect.runPromise,
|
|
74
|
+
);
|
|
82
75
|
}
|
|
83
76
|
|
|
84
77
|
static async asPeer(
|
|
@@ -89,23 +82,30 @@ export class IDBStorage {
|
|
|
89
82
|
localNodeName: "local",
|
|
90
83
|
},
|
|
91
84
|
): Promise<Peer> {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
85
|
+
return Effect.runPromise(
|
|
86
|
+
Effect.gen(function* () {
|
|
87
|
+
const [localNodeAsPeer, storageAsPeer] =
|
|
88
|
+
yield* cojsonInternals.connectedPeers(
|
|
89
|
+
localNodeName,
|
|
90
|
+
"storage",
|
|
91
|
+
{ peer1role: "client", peer2role: "server", trace },
|
|
92
|
+
);
|
|
97
93
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
94
|
+
yield* Effect.promise(() =>
|
|
95
|
+
IDBStorage.open(
|
|
96
|
+
localNodeAsPeer.incoming,
|
|
97
|
+
localNodeAsPeer.outgoing,
|
|
98
|
+
),
|
|
99
|
+
);
|
|
102
100
|
|
|
103
|
-
|
|
101
|
+
return { ...storageAsPeer, priority: 100 };
|
|
102
|
+
}),
|
|
103
|
+
);
|
|
104
104
|
}
|
|
105
105
|
|
|
106
106
|
static async open(
|
|
107
|
-
fromLocalNode:
|
|
108
|
-
toLocalNode:
|
|
107
|
+
fromLocalNode: IncomingSyncStream,
|
|
108
|
+
toLocalNode: OutgoingSyncQueue,
|
|
109
109
|
) {
|
|
110
110
|
const dbPromise = new Promise<IDBDatabase>((resolve, reject) => {
|
|
111
111
|
const request = indexedDB.open("jazz-storage", 4);
|
|
@@ -150,23 +150,6 @@ export class IDBStorage {
|
|
|
150
150
|
keyPath: ["ses", "idx"],
|
|
151
151
|
});
|
|
152
152
|
}
|
|
153
|
-
// if (ev.oldVersion !== 0 && ev.oldVersion <= 3) {
|
|
154
|
-
// // fix embarrassing off-by-one error for transaction indices
|
|
155
|
-
// console.log("Migration: fixing off-by-one error");
|
|
156
|
-
// const transaction = (
|
|
157
|
-
// ev.target as unknown as { transaction: IDBTransaction }
|
|
158
|
-
// ).transaction;
|
|
159
|
-
|
|
160
|
-
// const txsStore = transaction.objectStore("transactions");
|
|
161
|
-
// const txs = await promised(txsStore.getAll());
|
|
162
|
-
|
|
163
|
-
// for (const tx of txs) {
|
|
164
|
-
// await promised(txsStore.delete([tx.ses, tx.idx]));
|
|
165
|
-
// tx.idx -= 1;
|
|
166
|
-
// await promised(txsStore.add(tx));
|
|
167
|
-
// }
|
|
168
|
-
// console.log("Migration: fixing off-by-one error - done");
|
|
169
|
-
// }
|
|
170
153
|
};
|
|
171
154
|
});
|
|
172
155
|
|
|
@@ -409,29 +392,35 @@ export class IDBStorage {
|
|
|
409
392
|
),
|
|
410
393
|
).then(() => {
|
|
411
394
|
// we're done with IndexedDB stuff here so can use native Promises again
|
|
412
|
-
setTimeout(
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
395
|
+
setTimeout(() =>
|
|
396
|
+
Effect.runPromise(
|
|
397
|
+
Effect.gen(this, function* () {
|
|
398
|
+
yield* Queue.offer(this.toLocalNode, {
|
|
399
|
+
action: "known",
|
|
400
|
+
...ourKnown,
|
|
401
|
+
asDependencyOf,
|
|
402
|
+
});
|
|
403
|
+
|
|
404
|
+
const nonEmptyNewContentPieces =
|
|
405
|
+
newContentPieces.filter(
|
|
406
|
+
(piece) =>
|
|
407
|
+
piece.header ||
|
|
408
|
+
Object.keys(piece.new)
|
|
409
|
+
.length > 0,
|
|
410
|
+
);
|
|
411
|
+
|
|
412
|
+
// console.log(theirKnown.id, nonEmptyNewContentPieces);
|
|
413
|
+
|
|
414
|
+
for (const piece of nonEmptyNewContentPieces) {
|
|
415
|
+
yield* Queue.offer(
|
|
416
|
+
this.toLocalNode,
|
|
417
|
+
piece,
|
|
418
|
+
);
|
|
419
|
+
yield* Effect.yieldNow();
|
|
420
|
+
}
|
|
421
|
+
}),
|
|
422
|
+
),
|
|
423
|
+
);
|
|
435
424
|
|
|
436
425
|
return Promise.resolve();
|
|
437
426
|
});
|
|
@@ -456,13 +445,15 @@ export class IDBStorage {
|
|
|
456
445
|
const header = msg.header;
|
|
457
446
|
if (!header) {
|
|
458
447
|
console.error("Expected to be sent header first");
|
|
459
|
-
void
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
448
|
+
void Effect.runPromise(
|
|
449
|
+
Queue.offer(this.toLocalNode, {
|
|
450
|
+
action: "known",
|
|
451
|
+
id: msg.id,
|
|
452
|
+
header: false,
|
|
453
|
+
sessions: {},
|
|
454
|
+
isCorrection: true,
|
|
455
|
+
}),
|
|
456
|
+
);
|
|
466
457
|
throw new Error("Expected to be sent header first");
|
|
467
458
|
}
|
|
468
459
|
|
|
@@ -524,11 +515,13 @@ export class IDBStorage {
|
|
|
524
515
|
),
|
|
525
516
|
).then(() => {
|
|
526
517
|
if (invalidAssumptions) {
|
|
527
|
-
void
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
518
|
+
void Effect.runPromise(
|
|
519
|
+
Queue.offer(this.toLocalNode, {
|
|
520
|
+
action: "known",
|
|
521
|
+
...ourKnown,
|
|
522
|
+
isCorrection: invalidAssumptions,
|
|
523
|
+
}),
|
|
524
|
+
);
|
|
532
525
|
}
|
|
533
526
|
});
|
|
534
527
|
});
|