cojson 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.
@@ -1 +1 @@
1
- {"version":3,"file":"sync.test.js","sourceRoot":"","sources":["../../src/tests/sync.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync.test.js","sourceRoot":"","sources":["../../src/tests/sync.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "types": "src/index.ts",
6
6
  "type": "module",
7
7
  "license": "MIT",
8
- "version": "0.7.10",
8
+ "version": "0.7.14",
9
9
  "devDependencies": {
10
10
  "@types/jest": "^29.5.3",
11
11
  "@typescript-eslint/eslint-plugin": "^6.2.1",
@@ -23,8 +23,7 @@
23
23
  "@noble/hashes": "^1.4.0",
24
24
  "@scure/base": "^1.1.1",
25
25
  "effect": "^3.1.5",
26
- "hash-wasm": "^4.9.0",
27
- "isomorphic-streams": "https://github.com/sgwilym/isomorphic-streams.git#aa9394781bfc92f8d7c981be7daf8af4b4cd4fae"
26
+ "hash-wasm": "^4.9.0"
28
27
  },
29
28
  "lint-staged": {
30
29
  "*.{ts,tsx}": "eslint --fix",
@@ -44,11 +44,13 @@ export class WasmCrypto extends CryptoProvider<Uint8Array> {
44
44
  if ("crypto" in globalThis) {
45
45
  resolve();
46
46
  } else {
47
- return import("node:crypto").then(({ webcrypto }) => {
48
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
49
- (globalThis as any).crypto = webcrypto;
50
- resolve();
51
- });
47
+ return import(/*webpackIgnore: true*/ "node:crypto").then(
48
+ ({ webcrypto }) => {
49
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
50
+ (globalThis as any).crypto = webcrypto;
51
+ resolve();
52
+ },
53
+ );
52
54
  }
53
55
  }),
54
56
  ]).then(([blake3instance]) => new WasmCrypto(blake3instance));
package/src/index.ts CHANGED
@@ -41,7 +41,13 @@ import type {
41
41
  BinaryCoStreamMeta,
42
42
  } from "./coValues/coStream.js";
43
43
  import type { JsonValue } from "./jsonValue.js";
44
- import type { SyncMessage, Peer } from "./sync.js";
44
+ import type {
45
+ SyncMessage,
46
+ Peer,
47
+ IncomingSyncStream,
48
+ OutgoingSyncQueue,
49
+ } from "./sync.js";
50
+ import { DisconnectedError, PingTimeoutError } from "./sync.js";
45
51
  import type { AgentSecret } from "./crypto/crypto.js";
46
52
  import type {
47
53
  AccountID,
@@ -117,9 +123,19 @@ export {
117
123
  SyncMessage,
118
124
  isRawCoID,
119
125
  LSMStorage,
126
+ DisconnectedError,
127
+ PingTimeoutError,
120
128
  };
121
129
 
122
- export type { Value, FileSystem, FSErr, BlockFilename, WalFilename };
130
+ export type {
131
+ Value,
132
+ FileSystem,
133
+ FSErr,
134
+ BlockFilename,
135
+ WalFilename,
136
+ IncomingSyncStream,
137
+ OutgoingSyncQueue,
138
+ };
123
139
 
124
140
  // eslint-disable-next-line @typescript-eslint/no-namespace
125
141
  export namespace CojsonInternalTypes {
@@ -1,18 +1,13 @@
1
- import {
2
- ReadableStream,
3
- WritableStream,
4
- ReadableStreamDefaultReader,
5
- WritableStreamDefaultWriter,
6
- } from "isomorphic-streams";
7
- import { Effect, Either, SynchronizedRef } from "effect";
1
+ import { Effect, Either, Queue, Stream, SynchronizedRef } from "effect";
8
2
  import { RawCoID } from "../ids.js";
9
3
  import { CoValueHeader, Transaction } from "../coValueCore.js";
10
4
  import { Signature } from "../crypto/crypto.js";
11
5
  import {
12
6
  CoValueKnownState,
7
+ IncomingSyncStream,
13
8
  NewContentMessage,
9
+ OutgoingSyncQueue,
14
10
  Peer,
15
- SyncMessage,
16
11
  } from "../sync.js";
17
12
  import { CoID, RawCoValue } from "../index.js";
18
13
  import { connectedPeers } from "../streamUtils.js";
@@ -47,9 +42,6 @@ export type CoValueChunk = {
47
42
  };
48
43
 
49
44
  export class LSMStorage<WH, RH, FS extends FileSystem<WH, RH>> {
50
- fromLocalNode!: ReadableStreamDefaultReader<SyncMessage>;
51
- toLocalNode: WritableStreamDefaultWriter<SyncMessage>;
52
- fs: FS;
53
45
  currentWal: SynchronizedRef.SynchronizedRef<WH | undefined>;
54
46
  coValues: SynchronizedRef.SynchronizedRef<{
55
47
  [id: RawCoID]: CoValueChunk | undefined;
@@ -61,44 +53,28 @@ export class LSMStorage<WH, RH, FS extends FileSystem<WH, RH>> {
61
53
  >();
62
54
 
63
55
  constructor(
64
- fs: FS,
65
- fromLocalNode: ReadableStream<SyncMessage>,
66
- toLocalNode: WritableStream<SyncMessage>,
56
+ public fs: FS,
57
+ public fromLocalNode: IncomingSyncStream,
58
+ public toLocalNode: OutgoingSyncQueue,
67
59
  ) {
68
- this.fs = fs;
69
- this.fromLocalNode = fromLocalNode.getReader();
70
- this.toLocalNode = toLocalNode.getWriter();
71
60
  this.coValues = SynchronizedRef.unsafeMake({});
72
61
  this.currentWal = SynchronizedRef.unsafeMake<WH | undefined>(undefined);
73
62
 
74
- void Effect.runPromise(
75
- Effect.gen(this, function* () {
76
- let done = false;
77
- while (!done) {
78
- const result = yield* Effect.promise(() =>
79
- this.fromLocalNode.read(),
80
- );
81
- done = result.done;
82
-
83
- if (result.value) {
84
- if (result.value.action === "done") {
85
- continue;
86
- }
87
-
88
- if (result.value.action === "content") {
89
- yield* this.handleNewContent(result.value);
90
- } else {
91
- yield* this.sendNewContent(
92
- result.value.id,
93
- result.value,
94
- undefined,
95
- );
96
- }
63
+ void this.fromLocalNode.pipe(
64
+ Stream.runForEach((msg) =>
65
+ Effect.gen(this, function* () {
66
+ if (msg.action === "done") {
67
+ return;
97
68
  }
98
- }
99
69
 
100
- return;
101
- }),
70
+ if (msg.action === "content") {
71
+ yield* this.handleNewContent(msg);
72
+ } else {
73
+ yield* this.sendNewContent(msg.id, msg, undefined);
74
+ }
75
+ }),
76
+ ),
77
+ Effect.runPromise,
102
78
  );
103
79
 
104
80
  setTimeout(() => this.compact(), 20000);
@@ -132,15 +108,13 @@ export class LSMStorage<WH, RH, FS extends FileSystem<WH, RH>> {
132
108
  }
133
109
 
134
110
  if (!coValue) {
135
- yield* Effect.promise(() =>
136
- this.toLocalNode.write({
137
- id: id,
138
- action: "known",
139
- header: false,
140
- sessions: {},
141
- asDependencyOf,
142
- }),
143
- );
111
+ yield* Queue.offer(this.toLocalNode, {
112
+ id: id,
113
+ action: "known",
114
+ header: false,
115
+ sessions: {},
116
+ asDependencyOf,
117
+ });
144
118
 
145
119
  return coValues;
146
120
  }
@@ -195,17 +169,15 @@ export class LSMStorage<WH, RH, FS extends FileSystem<WH, RH>> {
195
169
 
196
170
  const ourKnown: CoValueKnownState = chunkToKnownState(id, coValue);
197
171
 
198
- yield* Effect.promise(() =>
199
- this.toLocalNode.write({
200
- action: "known",
201
- ...ourKnown,
202
- asDependencyOf,
203
- }),
204
- );
172
+ yield* Queue.offer(this.toLocalNode, {
173
+ action: "known",
174
+ ...ourKnown,
175
+ asDependencyOf,
176
+ });
205
177
 
206
178
  for (const message of newContentMessages) {
207
179
  if (Object.keys(message.new).length === 0) continue;
208
- yield* Effect.promise(() => this.toLocalNode.write(message));
180
+ yield* Queue.offer(this.toLocalNode, message);
209
181
  }
210
182
 
211
183
  return { ...coValues, [id]: coValue };
@@ -452,7 +424,7 @@ export class LSMStorage<WH, RH, FS extends FileSystem<WH, RH>> {
452
424
  setTimeout(() => this.compact(), 5000);
453
425
  }
454
426
 
455
- static asPeer<WH, RH, FS extends FileSystem<WH, RH>>({
427
+ static async asPeer<WH, RH, FS extends FileSystem<WH, RH>>({
456
428
  fs,
457
429
  trace,
458
430
  localNodeName = "local",
@@ -460,15 +432,13 @@ export class LSMStorage<WH, RH, FS extends FileSystem<WH, RH>> {
460
432
  fs: FS;
461
433
  trace?: boolean;
462
434
  localNodeName?: string;
463
- }): Peer {
464
- const [localNodeAsPeer, storageAsPeer] = connectedPeers(
465
- localNodeName,
466
- "storage",
467
- {
435
+ }): Promise<Peer> {
436
+ const [localNodeAsPeer, storageAsPeer] = await Effect.runPromise(
437
+ connectedPeers(localNodeName, "storage", {
468
438
  peer1role: "client",
469
439
  peer2role: "server",
470
440
  trace,
471
- },
441
+ }),
472
442
  );
473
443
 
474
444
  new LSMStorage(fs, localNodeAsPeer.incoming, localNodeAsPeer.outgoing);
@@ -1,8 +1,4 @@
1
- import {
2
- ReadableStream,
3
- TransformStream,
4
- WritableStream,
5
- } from "isomorphic-streams";
1
+ import { Console, Effect, Queue, Stream } from "effect";
6
2
  import { Peer, PeerID, SyncMessage } from "./sync.js";
7
3
 
8
4
  export function connectedPeers(
@@ -17,160 +13,54 @@ export function connectedPeers(
17
13
  peer1role?: Peer["role"];
18
14
  peer2role?: Peer["role"];
19
15
  } = {},
20
- ): [Peer, Peer] {
21
- const [inRx1, inTx1] = newStreamPair<SyncMessage>(peer1id + "_in");
22
- const [outRx1, outTx1] = newStreamPair<SyncMessage>(peer1id + "_out");
23
-
24
- const [inRx2, inTx2] = newStreamPair<SyncMessage>(peer2id + "_in");
25
- const [outRx2, outTx2] = newStreamPair<SyncMessage>(peer2id + "_out");
26
-
27
- void outRx2
28
- .pipeThrough(
29
- new TransformStream({
30
- transform(
31
- chunk: SyncMessage,
32
- controller: { enqueue: (msg: SyncMessage) => void },
33
- ) {
34
- trace &&
35
- console.debug(
36
- `${peer2id} -> ${peer1id}`,
37
- JSON.stringify(
38
- chunk,
39
- (k, v) =>
40
- k === "changes" || k === "encryptedChanges"
41
- ? v.slice(0, 20) + "..."
42
- : v,
43
- 2,
44
- ),
45
- );
46
- controller.enqueue(chunk);
47
- },
48
- }),
49
- )
50
- .pipeTo(inTx1);
51
-
52
- void outRx1
53
- .pipeThrough(
54
- new TransformStream({
55
- transform(
56
- chunk: SyncMessage,
57
- controller: { enqueue: (msg: SyncMessage) => void },
58
- ) {
59
- trace &&
60
- console.debug(
61
- `${peer1id} -> ${peer2id}`,
62
- JSON.stringify(
63
- chunk,
64
- (k, v) =>
65
- k === "changes" || k === "encryptedChanges"
66
- ? v.slice(0, 20) + "..."
67
- : v,
68
- 2,
69
- ),
70
- );
71
- controller.enqueue(chunk);
72
- },
73
- }),
74
- )
75
- .pipeTo(inTx2);
76
-
77
- const peer2AsPeer: Peer = {
78
- id: peer2id,
79
- incoming: inRx1,
80
- outgoing: outTx1,
81
- role: peer2role,
82
- };
83
-
84
- const peer1AsPeer: Peer = {
85
- id: peer1id,
86
- incoming: inRx2,
87
- outgoing: outTx2,
88
- role: peer1role,
89
- };
90
-
91
- return [peer1AsPeer, peer2AsPeer];
92
- }
93
-
94
- export function newStreamPair<T>(
95
- pairName?: string,
96
- ): [ReadableStream<T>, WritableStream<T>] {
97
- let queueLength = 0;
98
- let readerClosed = false;
99
-
100
- let resolveEnqueue: (enqueue: (item: T) => void) => void;
101
- const enqueuePromise = new Promise<(item: T) => void>((resolve) => {
102
- resolveEnqueue = resolve;
16
+ ): Effect.Effect<[Peer, Peer]> {
17
+ return Effect.gen(function* () {
18
+ const [from1to2Rx, from1to2Tx] = yield* newQueuePair(
19
+ trace ? { traceAs: `${peer1id} -> ${peer2id}` } : undefined,
20
+ );
21
+ const [from2to1Rx, from2to1Tx] = yield* newQueuePair(
22
+ trace ? { traceAs: `${peer2id} -> ${peer1id}` } : undefined,
23
+ );
24
+
25
+ const peer2AsPeer: Peer = {
26
+ id: peer2id,
27
+ incoming: from2to1Rx,
28
+ outgoing: from1to2Tx,
29
+ role: peer2role,
30
+ };
31
+
32
+ const peer1AsPeer: Peer = {
33
+ id: peer1id,
34
+ incoming: from1to2Rx,
35
+ outgoing: from2to1Tx,
36
+ role: peer1role,
37
+ };
38
+
39
+ return [peer1AsPeer, peer2AsPeer];
103
40
  });
41
+ }
104
42
 
105
- let resolveClose: (close: () => void) => void;
106
- const closePromise = new Promise<() => void>((resolve) => {
107
- resolveClose = resolve;
108
- });
109
-
110
- let queueWasOverflowing = false;
111
-
112
- function maybeReportQueueLength() {
113
- if (queueLength >= 100) {
114
- queueWasOverflowing = true;
115
- if (queueLength % 100 === 0) {
116
- console.warn(pairName, "overflowing queue length", queueLength);
117
- }
43
+ export function newQueuePair(
44
+ options: { traceAs?: string } = {},
45
+ ): Effect.Effect<[Stream.Stream<SyncMessage>, Queue.Enqueue<SyncMessage>]> {
46
+ return Effect.gen(function* () {
47
+ const queue = yield* Queue.unbounded<SyncMessage>();
48
+
49
+ if (options.traceAs) {
50
+ return [Stream.fromQueue(queue).pipe(Stream.tap((msg) => Console.debug(
51
+ options.traceAs,
52
+ JSON.stringify(
53
+ msg,
54
+ (k, v) =>
55
+ k === "changes" ||
56
+ k === "encryptedChanges"
57
+ ? v.slice(0, 20) + "..."
58
+ : v,
59
+ 2,
60
+ ),
61
+ ))), queue];
118
62
  } else {
119
- if (queueWasOverflowing) {
120
- console.debug(pairName, "ok queue length", queueLength);
121
- queueWasOverflowing = false;
122
- }
63
+ return [Stream.fromQueue(queue), queue];
123
64
  }
124
- }
125
-
126
- const readable = new ReadableStream<T>({
127
- async start(controller) {
128
- resolveEnqueue(controller.enqueue.bind(controller));
129
- resolveClose(controller.close.bind(controller));
130
- },
131
-
132
- cancel(_reason) {
133
- console.log("Manually closing reader");
134
- readerClosed = true;
135
- },
136
- }).pipeThrough(
137
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
138
- new TransformStream<any, any>({
139
- transform(
140
- chunk: SyncMessage,
141
- controller: { enqueue: (msg: SyncMessage) => void },
142
- ) {
143
- queueLength -= 1;
144
- maybeReportQueueLength();
145
- controller.enqueue(chunk);
146
- },
147
- }),
148
- ) as ReadableStream<T>;
149
-
150
- let lastWritePromise = Promise.resolve();
151
-
152
- const writable = new WritableStream<T>({
153
- async write(chunk) {
154
- queueLength += 1;
155
- maybeReportQueueLength();
156
- const enqueue = await enqueuePromise;
157
- if (readerClosed) {
158
- throw new Error("Reader closed");
159
- } else {
160
- // make sure write resolves before corresponding read, but make sure writes are still in order
161
- await lastWritePromise;
162
- lastWritePromise = new Promise((resolve) => {
163
- enqueue(chunk);
164
- resolve();
165
- });
166
- }
167
- },
168
- async abort(reason) {
169
- console.debug("Manually closing writer", reason);
170
- const close = await closePromise;
171
- close();
172
- },
173
65
  });
174
-
175
- return [readable, writable];
176
66
  }