@peerbit/stream 1.0.9 → 1.0.11

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/README.md CHANGED
@@ -1,2 +1,2 @@
1
1
  # Direct stream
2
- Data streaming protocol that aggregates "hellos" and goodbye" from peers to build a route map, which is used with path-finding algorithms to find shorted path to send data from A to B.
2
+ Data streaming protocol that aggregates "hellos" and goodbye" from peers to build a route map, which is used with path-finding algorithms to find the shortest path to send data from A to B.
package/lib/esm/index.js CHANGED
@@ -8,11 +8,11 @@ import * as lp from "it-length-prefixed";
8
8
  import { Routes } from "./routes.js";
9
9
  import { multiaddr } from "@multiformats/multiaddr";
10
10
  import { delay, TimeoutError, waitFor } from "@peerbit/time";
11
- import { getKeypairFromPeerId, getPublicKeyFromPeerId, PublicSignKey, } from "@peerbit/crypto";
11
+ import { getKeypairFromPeerId, getPublicKeyFromPeerId, PublicSignKey } from "@peerbit/crypto";
12
12
  import { logger } from "./logger.js";
13
13
  import { Cache } from "@peerbit/cache";
14
14
  export { logger };
15
- import { Message as Message, Goodbye, Hello, DataMessage, Ping, PingPong, Pong, getMsgId, } from "@peerbit/stream-interface";
15
+ import { Message as Message, Goodbye, Hello, DataMessage, Ping, PingPong, Pong, getMsgId } from "@peerbit/stream-interface";
16
16
  const isWebsocketConnection = (c) => c.remoteAddr.protoNames().find((x) => x === "ws" || x === "wss");
17
17
  /**
18
18
  * Thin wrapper around a peer's inbound / outbound pubsub streams
@@ -137,7 +137,7 @@ export class PeerStreams extends EventEmitter {
137
137
  returnOnAbort: true,
138
138
  onReturnError: (err) => {
139
139
  logger.error("Inbound stream error", err?.message);
140
- },
140
+ }
141
141
  });
142
142
  this.dispatchEvent(new CustomEvent("stream:inbound"));
143
143
  return this.inboundStream;
@@ -160,7 +160,7 @@ export class PeerStreams extends EventEmitter {
160
160
  this.outboundStream = undefined;
161
161
  }
162
162
  });
163
- },
163
+ }
164
164
  });
165
165
  pipe(this.outboundStream, (source) => lp.encode(source), this._rawOutboundStream).catch((err) => {
166
166
  logger.error(err);
@@ -242,7 +242,7 @@ export class DirectStream extends EventEmitter {
242
242
  constructor(components, multicodecs, options) {
243
243
  super();
244
244
  this.components = components;
245
- const { canRelayMessage = false, emitSelf = false, messageProcessingConcurrency = 10, pingInterval = 10 * 1000, maxInboundStreams, maxOutboundStreams, signaturePolicy = "StictSign", connectionManager = { autoDial: true }, } = options || {};
245
+ const { canRelayMessage = false, emitSelf = false, messageProcessingConcurrency = 10, pingInterval = 10 * 1000, maxInboundStreams, maxOutboundStreams, signaturePolicy = "StictSign", connectionManager = { autoDial: true } } = options || {};
246
246
  const signKey = getKeypairFromPeerId(components.peerId);
247
247
  this.sign = signKey.sign.bind(signKey);
248
248
  this.peerId = components.peerId;
@@ -272,7 +272,7 @@ export class DirectStream extends EventEmitter {
272
272
  this.connectionManagerOptions = connectionManager;
273
273
  this.recentDials = new Cache({
274
274
  ttl: connectionManager.retryDelay || 60 * 1000,
275
- max: 1e3,
275
+ max: 1e3
276
276
  });
277
277
  }
278
278
  async start() {
@@ -284,13 +284,13 @@ export class DirectStream extends EventEmitter {
284
284
  // Topology callbacks called on connection manager changes
285
285
  this._registrarTopologyIds = await Promise.all(this.multicodecs.map((multicodec) => this.components.registrar.register(multicodec, {
286
286
  onConnect: this.onPeerConnected.bind(this),
287
- onDisconnect: this.onPeerDisconnected.bind(this),
287
+ onDisconnect: this.onPeerDisconnected.bind(this)
288
288
  })));
289
289
  // Incoming streams
290
290
  // Called after a peer dials us
291
291
  await Promise.all(this.multicodecs.map((multicodec) => this.components.registrar.handle(multicodec, this._onIncomingStream, {
292
292
  maxInboundStreams: this.maxInboundStreams,
293
- maxOutboundStreams: this.maxOutboundStreams,
293
+ maxOutboundStreams: this.maxOutboundStreams
294
294
  })));
295
295
  this.started = true;
296
296
  // All existing connections are like new ones for us. To deduplication on remotes so we only resuse one connection for this protocol (we could be connected with many connections)
@@ -426,7 +426,7 @@ export class DirectStream extends EventEmitter {
426
426
  }
427
427
  try {
428
428
  stream = await conn.newStream(this.multicodecs, {
429
- runOnTransientConnection: true,
429
+ runOnTransientConnection: true
430
430
  });
431
431
  if (stream.protocol == null) {
432
432
  stream.abort(new Error("Stream was not multiplexed"));
@@ -481,7 +481,7 @@ export class DirectStream extends EventEmitter {
481
481
  promises.push(this.publishMessage(this.components.peerId, await new Hello({
482
482
  multiaddrs: this.components.addressManager
483
483
  .getAddresses()
484
- .map((x) => x.toString()),
484
+ .map((x) => x.toString())
485
485
  }).sign(this.sign), [peer]));
486
486
  // Send my goodbye early if I disconnect for some reason, (so my peer can say goodbye for me)
487
487
  // TODO add custom condition fn for doing below
@@ -612,11 +612,11 @@ export class DirectStream extends EventEmitter {
612
612
  peerId,
613
613
  publicKey,
614
614
  protocol,
615
- connId,
615
+ connId
616
616
  });
617
617
  this.peers.set(publicKeyHash, peerStreams);
618
618
  peerStreams.addEventListener("close", () => this._removePeer(publicKey), {
619
- once: true,
619
+ once: true
620
620
  });
621
621
  return peerStreams;
622
622
  }
@@ -718,7 +718,7 @@ export class DirectStream extends EventEmitter {
718
718
  // Ensure the message is valid before processing it
719
719
  const message = Message.from(msg);
720
720
  this.dispatchEvent(new CustomEvent("message", {
721
- detail: message,
721
+ detail: message
722
722
  }));
723
723
  if (message instanceof DataMessage) {
724
724
  await this.onDataMessage(from, peerStream, message);
@@ -749,7 +749,7 @@ export class DirectStream extends EventEmitter {
749
749
  return false;
750
750
  }
751
751
  this.dispatchEvent(new CustomEvent("data", {
752
- detail: message,
752
+ detail: message
753
753
  }));
754
754
  }
755
755
  if (isForMe && message.to.length === 1) {
@@ -880,7 +880,7 @@ export class DirectStream extends EventEmitter {
880
880
  abort: () => {
881
881
  clearTimeout(timeout);
882
882
  resolve(undefined);
883
- },
883
+ }
884
884
  };
885
885
  this.publishMessage(this.components.peerId, ping, [stream]).catch((err) => {
886
886
  clearTimeout(timeout);
@@ -920,7 +920,7 @@ export class DirectStream extends EventEmitter {
920
920
  }
921
921
  const message = new DataMessage({
922
922
  data: data instanceof Uint8ArrayList ? data.subarray() : data,
923
- to: toHashes,
923
+ to: toHashes
924
924
  });
925
925
  if (this.signaturePolicy === "StictSign") {
926
926
  await message.sign(this.sign);
@@ -937,7 +937,7 @@ export class DirectStream extends EventEmitter {
937
937
  const message = await this.createMessage(data, options);
938
938
  if (this.emitSelf) {
939
939
  super.dispatchEvent(new CustomEvent("data", {
940
- detail: message,
940
+ detail: message
941
941
  }));
942
942
  }
943
943
  // send to all the other peers
@@ -953,7 +953,7 @@ export class DirectStream extends EventEmitter {
953
953
  multiaddrs: this.components.addressManager
954
954
  .getAddresses()
955
955
  .map((x) => x.toString()),
956
- data,
956
+ data
957
957
  }).sign(this.sign.bind(this)));
958
958
  }
959
959
  async relayMessage(from, message, to) {
@@ -994,7 +994,7 @@ export class DirectStream extends EventEmitter {
994
994
  const fromMe = from.equals(this.components.peerId);
995
995
  const block = !fromMe ? fromKey : undefined;
996
996
  const path = this.routes.getPath(this.publicKeyHash, to, {
997
- block, // prevent send message backwards
997
+ block // prevent send message backwards
998
998
  });
999
999
  if (path && path.length > 0) {
1000
1000
  const fanout = fanoutMap.get(path[1]);
@@ -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,6 +1,6 @@
1
1
  {
2
2
  "name": "@peerbit/stream",
3
- "version": "1.0.9",
3
+ "version": "1.0.11",
4
4
  "description": "A building block for direct streaming protocols",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -50,21 +50,21 @@
50
50
  "dao.xyz"
51
51
  ],
52
52
  "devDependencies": {
53
- "@peerbit/libp2p-test-utils": "1.0.3",
53
+ "@peerbit/libp2p-test-utils": "1.0.5",
54
54
  "@types/yallist": "^4.0.1",
55
55
  "graphology-types": "^0.24.7"
56
56
  },
57
57
  "dependencies": {
58
58
  "@dao-xyz/borsh": "^5.1.5",
59
- "@peerbit/cache": "1.0.2",
60
- "@peerbit/crypto": "1.0.5",
61
- "@peerbit/stream-interface": "^1.0.6",
59
+ "@peerbit/cache": "1.1.0",
60
+ "@peerbit/crypto": "1.0.6",
61
+ "@peerbit/stream-interface": "^1.0.7",
62
62
  "abstract-level": "^1.0.3",
63
63
  "graphology": "0.25.1",
64
64
  "graphology-shortest-path": "2.0.2",
65
- "libp2p": "^0.46.6",
65
+ "libp2p": "0.46.6",
66
66
  "memory-level": "^1.0.0",
67
67
  "yallist": "^4.0.0"
68
68
  },
69
- "gitHead": "2efb4d5dc542ac84cfd79bb576506ba0ca392a72"
69
+ "gitHead": "79571efbb54768a29b52f2bd7e6d2bf2843a6fa9"
70
70
  }
package/src/index.ts CHANGED
@@ -14,7 +14,7 @@ import { multiaddr } from "@multiformats/multiaddr";
14
14
  import { PeerMap } from "./peer-map.js";
15
15
  import type {
16
16
  IncomingStreamData,
17
- Registrar,
17
+ Registrar
18
18
  } from "@libp2p/interface-internal/registrar";
19
19
  import type { AddressManager } from "@libp2p/interface-internal/address-manager";
20
20
  import type { ConnectionManager } from "@libp2p/interface-internal/connection-manager";
@@ -27,7 +27,7 @@ import {
27
27
  getKeypairFromPeerId,
28
28
  getPublicKeyFromPeerId,
29
29
  PublicSignKey,
30
- SignatureWithKey,
30
+ SignatureWithKey
31
31
  } from "@peerbit/crypto";
32
32
 
33
33
  export type SignaturePolicy = "StictSign" | "StrictNoSign";
@@ -45,7 +45,7 @@ import {
45
45
  PingPong,
46
46
  Pong,
47
47
  getMsgId,
48
- WaitForPeer,
48
+ WaitForPeer
49
49
  } from "@peerbit/stream-interface";
50
50
  export interface PeerStreamsInit {
51
51
  peerId: PeerId;
@@ -204,7 +204,7 @@ export class PeerStreams extends EventEmitter<PeerStreamEvents> {
204
204
  returnOnAbort: true,
205
205
  onReturnError: (err) => {
206
206
  logger.error("Inbound stream error", err?.message);
207
- },
207
+ }
208
208
  }
209
209
  );
210
210
 
@@ -233,7 +233,7 @@ export class PeerStreams extends EventEmitter<PeerStreamEvents> {
233
233
  this.outboundStream = undefined;
234
234
  }
235
235
  });
236
- },
236
+ }
237
237
  });
238
238
 
239
239
  pipe(
@@ -381,7 +381,7 @@ export abstract class DirectStream<
381
381
  maxInboundStreams,
382
382
  maxOutboundStreams,
383
383
  signaturePolicy = "StictSign",
384
- connectionManager = { autoDial: true },
384
+ connectionManager = { autoDial: true }
385
385
  } = options || {};
386
386
 
387
387
  const signKey = getKeypairFromPeerId(components.peerId);
@@ -413,7 +413,7 @@ export abstract class DirectStream<
413
413
  this.connectionManagerOptions = connectionManager;
414
414
  this.recentDials = new Cache({
415
415
  ttl: connectionManager.retryDelay || 60 * 1000,
416
- max: 1e3,
416
+ max: 1e3
417
417
  });
418
418
  }
419
419
 
@@ -430,7 +430,7 @@ export abstract class DirectStream<
430
430
  this.multicodecs.map((multicodec) =>
431
431
  this.components.registrar.register(multicodec, {
432
432
  onConnect: this.onPeerConnected.bind(this),
433
- onDisconnect: this.onPeerDisconnected.bind(this),
433
+ onDisconnect: this.onPeerDisconnected.bind(this)
434
434
  })
435
435
  )
436
436
  );
@@ -441,7 +441,7 @@ export abstract class DirectStream<
441
441
  this.multicodecs.map((multicodec) =>
442
442
  this.components.registrar.handle(multicodec, this._onIncomingStream, {
443
443
  maxInboundStreams: this.maxInboundStreams,
444
- maxOutboundStreams: this.maxOutboundStreams,
444
+ maxOutboundStreams: this.maxOutboundStreams
445
445
  })
446
446
  )
447
447
  );
@@ -616,7 +616,7 @@ export abstract class DirectStream<
616
616
 
617
617
  try {
618
618
  stream = await conn.newStream(this.multicodecs, {
619
- runOnTransientConnection: true,
619
+ runOnTransientConnection: true
620
620
  });
621
621
  if (stream.protocol == null) {
622
622
  stream.abort(new Error("Stream was not multiplexed"));
@@ -687,7 +687,7 @@ export abstract class DirectStream<
687
687
  await new Hello({
688
688
  multiaddrs: this.components.addressManager
689
689
  .getAddresses()
690
- .map((x) => x.toString()),
690
+ .map((x) => x.toString())
691
691
  }).sign(this.sign),
692
692
  [peer]
693
693
  )
@@ -860,12 +860,12 @@ export abstract class DirectStream<
860
860
  peerId,
861
861
  publicKey,
862
862
  protocol,
863
- connId,
863
+ connId
864
864
  });
865
865
 
866
866
  this.peers.set(publicKeyHash, peerStreams);
867
867
  peerStreams.addEventListener("close", () => this._removePeer(publicKey), {
868
- once: true,
868
+ once: true
869
869
  });
870
870
  return peerStreams;
871
871
  }
@@ -999,7 +999,7 @@ export abstract class DirectStream<
999
999
 
1000
1000
  this.dispatchEvent(
1001
1001
  new CustomEvent("message", {
1002
- detail: message,
1002
+ detail: message
1003
1003
  })
1004
1004
  );
1005
1005
 
@@ -1038,7 +1038,7 @@ export abstract class DirectStream<
1038
1038
 
1039
1039
  this.dispatchEvent(
1040
1040
  new CustomEvent("data", {
1041
- detail: message,
1041
+ detail: message
1042
1042
  })
1043
1043
  );
1044
1044
  }
@@ -1204,7 +1204,7 @@ export abstract class DirectStream<
1204
1204
  abort: () => {
1205
1205
  clearTimeout(timeout);
1206
1206
  resolve(undefined);
1207
- },
1207
+ }
1208
1208
  };
1209
1209
  this.publishMessage(this.components.peerId, ping, [stream]).catch(
1210
1210
  (err) => {
@@ -1250,7 +1250,7 @@ export abstract class DirectStream<
1250
1250
  }
1251
1251
  const message = new DataMessage({
1252
1252
  data: data instanceof Uint8ArrayList ? data.subarray() : data,
1253
- to: toHashes,
1253
+ to: toHashes
1254
1254
  });
1255
1255
  if (this.signaturePolicy === "StictSign") {
1256
1256
  await message.sign(this.sign);
@@ -1273,7 +1273,7 @@ export abstract class DirectStream<
1273
1273
  if (this.emitSelf) {
1274
1274
  super.dispatchEvent(
1275
1275
  new CustomEvent("data", {
1276
- detail: message,
1276
+ detail: message
1277
1277
  })
1278
1278
  );
1279
1279
  }
@@ -1295,7 +1295,7 @@ export abstract class DirectStream<
1295
1295
  multiaddrs: this.components.addressManager
1296
1296
  .getAddresses()
1297
1297
  .map((x) => x.toString()),
1298
- data,
1298
+ data
1299
1299
  }).sign(this.sign.bind(this))
1300
1300
  );
1301
1301
  }
@@ -1346,7 +1346,7 @@ export abstract class DirectStream<
1346
1346
  const fromMe = from.equals(this.components.peerId);
1347
1347
  const block = !fromMe ? fromKey : undefined;
1348
1348
  const path = this.routes.getPath(this.publicKeyHash, to, {
1349
- block, // prevent send message backwards
1349
+ block // prevent send message backwards
1350
1350
  });
1351
1351
 
1352
1352
  if (path && path.length > 0) {