@libp2p/kad-dht 10.0.15-97ab31c0c → 10.0.15-adea7bbbf

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.
@@ -29,5 +29,7 @@ export declare class Message {
29
29
  * Decode from protobuf
30
30
  */
31
31
  static deserialize(raw: Uint8ArrayList | Uint8Array): Message;
32
+ static encode(message: Message): Uint8Array;
33
+ static decode(buf: Uint8Array | Uint8ArrayList): Message;
32
34
  }
33
35
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/message/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,UAAU,CAAA;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,eAAO,MAAM,YAAY,8BAAwB,CAAA;AACjD,eAAO,MAAM,eAAe,iCAA2B,CAAA;AACvD,eAAO,MAAM,mBAAmB,UAA4B,CAAA;AAQ5D;;GAEG;AACH,qBAAa,OAAO;IACX,IAAI,EAAE,SAAS,CAAC,WAAW,CAAA;IAC3B,GAAG,EAAE,UAAU,CAAA;IACtB,OAAO,CAAC,eAAe,CAAQ;IACxB,WAAW,EAAE,QAAQ,EAAE,CAAA;IACvB,aAAa,EAAE,QAAQ,EAAE,CAAA;IACzB,MAAM,CAAC,EAAE,YAAY,CAAA;gBAEf,IAAI,EAAE,SAAS,CAAC,WAAW,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM;IAaxE;;OAEG;IACH,IAAI,YAAY,IAAK,MAAM,CAO1B;IAED,IAAI,YAAY,CAAE,KAAK,EATF,MASE,EAEtB;IAED;;OAEG;IACH,SAAS,IAAK,UAAU;IAWxB;;OAEG;IACH,MAAM,CAAC,WAAW,CAAE,GAAG,EAAE,cAAc,GAAG,UAAU,GAAG,OAAO;CAa/D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/message/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,UAAU,CAAA;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,eAAO,MAAM,YAAY,8BAAwB,CAAA;AACjD,eAAO,MAAM,eAAe,iCAA2B,CAAA;AACvD,eAAO,MAAM,mBAAmB,UAA4B,CAAA;AAQ5D;;GAEG;AACH,qBAAa,OAAO;IACX,IAAI,EAAE,SAAS,CAAC,WAAW,CAAA;IAC3B,GAAG,EAAE,UAAU,CAAA;IACtB,OAAO,CAAC,eAAe,CAAQ;IACxB,WAAW,EAAE,QAAQ,EAAE,CAAA;IACvB,aAAa,EAAE,QAAQ,EAAE,CAAA;IACzB,MAAM,CAAC,EAAE,YAAY,CAAA;gBAEf,IAAI,EAAE,SAAS,CAAC,WAAW,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM;IAaxE;;OAEG;IACH,IAAI,YAAY,IAAK,MAAM,CAO1B;IAED,IAAI,YAAY,CAAE,KAAK,EATF,MASE,EAEtB;IAED;;OAEG;IACH,SAAS,IAAK,UAAU;IAWxB;;OAEG;IACH,MAAM,CAAC,WAAW,CAAE,GAAG,EAAE,cAAc,GAAG,UAAU,GAAG,OAAO;IAc9D,MAAM,CAAC,MAAM,CAAE,OAAO,EAAE,OAAO,GAAG,UAAU;IAI5C,MAAM,CAAC,MAAM,CAAE,GAAG,EAAE,UAAU,GAAG,cAAc,GAAG,OAAO;CAG1D"}
@@ -65,6 +65,12 @@ export class Message {
65
65
  }
66
66
  return msg;
67
67
  }
68
+ static encode(message) {
69
+ return message.serialize();
70
+ }
71
+ static decode(buf) {
72
+ return Message.deserialize(buf);
73
+ }
68
74
  }
69
75
  function toPbPeer(peer) {
70
76
  const output = {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/message/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/message/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,UAAU,CAAA;AAI/C,MAAM,CAAC,MAAM,YAAY,GAAG,SAAS,CAAC,WAAW,CAAA;AACjD,MAAM,CAAC,MAAM,eAAe,GAAG,SAAS,CAAC,cAAc,CAAA;AACvD,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;AAQ5D;;GAEG;AACH,MAAM,OAAO,OAAO;IACX,IAAI,CAAuB;IAC3B,GAAG,CAAY;IACd,eAAe,CAAQ;IACxB,WAAW,CAAY;IACvB,aAAa,CAAY;IACzB,MAAM,CAAe;IAE5B,YAAa,IAA2B,EAAE,GAAe,EAAE,KAAa;QACtE,IAAI,CAAC,CAAC,GAAG,YAAY,UAAU,CAAC,EAAE;YAChC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;SAC5C;QAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,eAAe,GAAG,KAAK,CAAA;QAC5B,IAAI,CAAC,WAAW,GAAG,EAAE,CAAA;QACrB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;QACvB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAA;IACzB,CAAC;IAED;;OAEG;IACH,IAAI,YAAY;QACd,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,GAAG,CAAC,CAAA;QACtC,IAAI,KAAK,GAAG,CAAC,EAAE;YACb,OAAO,CAAC,CAAA;SACT;QAED,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,YAAY,CAAE,KAAK;QACrB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAA;IAC9B,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,SAAS,CAAC,MAAM,CAAC;YACtB,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC;YAC3C,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC;YAC/C,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE;SAC7E,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,WAAW,CAAE,GAAgC;QAClD,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAEjC,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,SAAS,CAAC,WAAW,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,eAAe,IAAI,CAAC,CAAC,CAAA;QAC9H,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QACjD,GAAG,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QAErD,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,IAAI,IAAI,EAAE;YAC9B,GAAG,CAAC,MAAM,GAAG,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;SAClD;QAED,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,MAAM,CAAC,MAAM,CAAE,OAAgB;QAC7B,OAAO,OAAO,CAAC,SAAS,EAAE,CAAA;IAC5B,CAAC;IAED,MAAM,CAAC,MAAM,CAAE,GAAgC;QAC7C,OAAO,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;IACjC,CAAC;CACF;AAED,SAAS,QAAQ,CAAE,IAAc;IAC/B,MAAM,MAAM,GAAW;QACrB,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE;QACrB,KAAK,EAAE,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;QAClD,UAAU,EAAE,eAAe,CAAC,SAAS;KACtC,CAAA;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,UAAU,CAAE,IAAoB;IACvC,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE;QACnB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;KAC3C;IAED,OAAO;QACL,EAAE,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,UAAU,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;KACxD,CAAA;AACH,CAAC"}
@@ -2,11 +2,10 @@ import { TypedEventEmitter } from '@libp2p/interface/events';
2
2
  import { Message } from './message/index.js';
3
3
  import type { KadDHTComponents, QueryEvent, QueryOptions } from './index.js';
4
4
  import type { AbortOptions } from '@libp2p/interface';
5
+ import type { Stream } from '@libp2p/interface/connection';
5
6
  import type { PeerId } from '@libp2p/interface/peer-id';
6
7
  import type { PeerInfo } from '@libp2p/interface/peer-info';
7
8
  import type { Startable } from '@libp2p/interface/startable';
8
- import type { Duplex, Source } from 'it-stream-types';
9
- import type { Uint8ArrayList } from 'uint8arraylist';
10
9
  export interface NetworkInit {
11
10
  protocol: string;
12
11
  lan: boolean;
@@ -49,13 +48,13 @@ export declare class Network extends TypedEventEmitter<NetworkEvents> implements
49
48
  /**
50
49
  * Write a message to the given stream
51
50
  */
52
- _writeMessage(stream: Duplex<AsyncGenerator<Uint8ArrayList>, Source<Uint8ArrayList | Uint8Array>>, msg: Uint8Array | Uint8ArrayList, options: AbortOptions): Promise<void>;
51
+ _writeMessage(stream: Stream, msg: Message, options: AbortOptions): Promise<void>;
53
52
  /**
54
53
  * Write a message and read its response.
55
54
  * If no response is received after the specified timeout
56
55
  * this will error out.
57
56
  */
58
- _writeReadMessage(stream: Duplex<AsyncGenerator<Uint8ArrayList>, Source<Uint8ArrayList | Uint8Array>>, msg: Uint8Array | Uint8ArrayList, options: AbortOptions): Promise<Message>;
57
+ _writeReadMessage(stream: Stream, msg: Message, options: AbortOptions): Promise<Message>;
59
58
  }
60
59
  export {};
61
60
  //# sourceMappingURL=network.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../src/network.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAe,MAAM,0BAA0B,CAAA;AAMzE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAO5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC5E,OAAO,KAAK,EAAE,YAAY,EAAU,MAAM,mBAAmB,CAAA;AAE7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,OAAO,CAAA;CACb;AAED,UAAU,aAAa;IACrB,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAA;CAC9B;AAED;;GAEG;AACH,qBAAa,OAAQ,SAAQ,iBAAiB,CAAC,aAAa,CAAE,YAAW,SAAS;IAChF,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAE7C;;OAEG;gBACU,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW;IAU5D;;OAEG;IACG,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAQ7B;;OAEG;IACG,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;IAI5B;;OAEG;IACH,SAAS,IAAK,OAAO;IAIrB;;OAEG;IACK,WAAW,CAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,GAAE,YAAiB,GAAG,cAAc,CAAC,UAAU,CAAC;IAiCtG;;OAEG;IACK,WAAW,CAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,GAAE,YAAiB,GAAG,cAAc,CAAC,UAAU,CAAC;IA2BtG;;OAEG;IACG,aAAa,CAAE,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,cAAc,GAAG,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,GAAG,cAAc,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAajL;;;;OAIG;IACG,iBAAiB,CAAE,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,cAAc,GAAG,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,GAAG,cAAc,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;CAqCzL"}
1
+ {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../src/network.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAe,MAAM,0BAA0B,CAAA;AAEzE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAO5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC5E,OAAO,KAAK,EAAE,YAAY,EAAU,MAAM,mBAAmB,CAAA;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAE5D,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,OAAO,CAAA;CACb;AAED,UAAU,aAAa;IACrB,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAA;CAC9B;AAED;;GAEG;AACH,qBAAa,OAAQ,SAAQ,iBAAiB,CAAC,aAAa,CAAE,YAAW,SAAS;IAChF,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAE7C;;OAEG;gBACU,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW;IAU5D;;OAEG;IACG,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAQ7B;;OAEG;IACG,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;IAI5B;;OAEG;IACH,SAAS,IAAK,OAAO;IAIrB;;OAEG;IACK,WAAW,CAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,GAAE,YAAiB,GAAG,cAAc,CAAC,UAAU,CAAC;IAiCtG;;OAEG;IACK,WAAW,CAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,GAAE,YAAiB,GAAG,cAAc,CAAC,UAAU,CAAC;IA2BtG;;OAEG;IACG,aAAa,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAMxF;;;;OAIG;IACG,iBAAiB,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;CAuBhG"}
@@ -1,10 +1,5 @@
1
- import { CodeError } from '@libp2p/interface/errors';
2
1
  import { TypedEventEmitter, CustomEvent } from '@libp2p/interface/events';
3
- import { abortableDuplex } from 'abortable-iterator';
4
- import drain from 'it-drain';
5
- import first from 'it-first';
6
- import * as lp from 'it-length-prefixed';
7
- import { pipe } from 'it-pipe';
2
+ import { pbStream } from 'it-protobuf-stream';
8
3
  import { Message } from './message/index.js';
9
4
  import { dialPeerEvent, sendQueryEvent, peerResponseEvent, queryErrorEvent } from './query/events.js';
10
5
  /**
@@ -61,7 +56,7 @@ export class Network extends TypedEventEmitter {
61
56
  try {
62
57
  const connection = await this.components.connectionManager.openConnection(to, options);
63
58
  const stream = await connection.newStream(this.protocol, options);
64
- const response = await this._writeReadMessage(stream, msg.serialize(), options);
59
+ const response = await this._writeReadMessage(stream, msg, options);
65
60
  yield peerResponseEvent({
66
61
  from: to,
67
62
  messageType: response.type,
@@ -93,7 +88,7 @@ export class Network extends TypedEventEmitter {
93
88
  try {
94
89
  const connection = await this.components.connectionManager.openConnection(to, options);
95
90
  const stream = await connection.newStream(this.protocol, options);
96
- await this._writeMessage(stream, msg.serialize(), options);
91
+ await this._writeMessage(stream, msg, options);
97
92
  yield peerResponseEvent({ from: to, messageType: msg.type }, options);
98
93
  }
99
94
  catch (err) {
@@ -109,10 +104,9 @@ export class Network extends TypedEventEmitter {
109
104
  * Write a message to the given stream
110
105
  */
111
106
  async _writeMessage(stream, msg, options) {
112
- if (options.signal != null) {
113
- stream = abortableDuplex(stream, options.signal);
114
- }
115
- await pipe([msg], (source) => lp.encode(source), stream, drain);
107
+ const pb = pbStream(stream);
108
+ await pb.write(msg, Message, options);
109
+ await pb.unwrap().close(options);
116
110
  }
117
111
  /**
118
112
  * Write a message and read its response.
@@ -120,17 +114,10 @@ export class Network extends TypedEventEmitter {
120
114
  * this will error out.
121
115
  */
122
116
  async _writeReadMessage(stream, msg, options) {
123
- if (options.signal != null) {
124
- stream = abortableDuplex(stream, options.signal);
125
- }
126
- const res = await pipe([msg], (source) => lp.encode(source), stream, (source) => lp.decode(source), async (source) => {
127
- const buf = await first(source);
128
- if (buf != null) {
129
- return buf;
130
- }
131
- throw new CodeError('No message received', 'ERR_NO_MESSAGE_RECEIVED');
132
- });
133
- const message = Message.deserialize(res);
117
+ const pb = pbStream(stream);
118
+ await pb.write(msg, Message, options);
119
+ const message = await pb.read(Message, options);
120
+ await pb.unwrap().close(options);
134
121
  // tell any listeners about new peers we've seen
135
122
  message.closerPeers.forEach(peerData => {
136
123
  this.dispatchEvent(new CustomEvent('peer', {
@@ -1 +1 @@
1
- {"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/network.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/network.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@libp2p/kad-dht",
3
- "version": "10.0.15-97ab31c0c",
3
+ "version": "10.0.15-adea7bbbf",
4
4
  "description": "JavaScript implementation of the Kad-DHT for libp2p",
5
5
  "license": "Apache-2.0 OR MIT",
6
6
  "homepage": "https://github.com/libp2p/js-libp2p/tree/master/packages/kad-dht#readme",
@@ -52,27 +52,26 @@
52
52
  "dep-check": "aegir dep-check"
53
53
  },
54
54
  "dependencies": {
55
- "@libp2p/crypto": "2.0.8-97ab31c0c",
56
- "@libp2p/interface": "0.1.6-97ab31c0c",
57
- "@libp2p/interface-internal": "0.1.9-97ab31c0c",
58
- "@libp2p/peer-collections": "4.0.8-97ab31c0c",
59
- "@libp2p/peer-id": "3.0.6-97ab31c0c",
55
+ "@libp2p/crypto": "2.0.8-adea7bbbf",
56
+ "@libp2p/interface": "0.1.6-adea7bbbf",
57
+ "@libp2p/interface-internal": "0.1.9-adea7bbbf",
58
+ "@libp2p/peer-collections": "4.0.8-adea7bbbf",
59
+ "@libp2p/peer-id": "3.0.6-adea7bbbf",
60
60
  "@multiformats/multiaddr": "^12.1.10",
61
61
  "@types/sinon": "^17.0.0",
62
- "abortable-iterator": "^5.0.1",
63
62
  "any-signal": "^4.1.1",
64
63
  "datastore-core": "^9.0.1",
65
64
  "hashlru": "^2.3.0",
66
65
  "interface-datastore": "^8.2.0",
67
66
  "it-all": "^3.0.2",
68
67
  "it-drain": "^3.0.2",
69
- "it-first": "^3.0.3",
70
68
  "it-length": "^3.0.1",
71
69
  "it-length-prefixed": "^9.0.3",
72
70
  "it-map": "^3.0.4",
73
71
  "it-merge": "^3.0.0",
74
72
  "it-parallel": "^3.0.0",
75
73
  "it-pipe": "^3.0.1",
74
+ "it-protobuf-stream": "^1.0.2",
76
75
  "it-pushable": "^3.2.1",
77
76
  "it-stream-types": "^2.0.1",
78
77
  "it-take": "^3.0.1",
@@ -88,10 +87,10 @@
88
87
  "uint8arrays": "^4.0.6"
89
88
  },
90
89
  "devDependencies": {
91
- "@libp2p/interface-compliance-tests": "4.1.5-97ab31c0c",
92
- "@libp2p/logger": "3.1.0-97ab31c0c",
93
- "@libp2p/peer-id-factory": "3.0.8-97ab31c0c",
94
- "@libp2p/peer-store": "9.0.9-97ab31c0c",
90
+ "@libp2p/interface-compliance-tests": "4.1.5-adea7bbbf",
91
+ "@libp2p/logger": "3.1.0-adea7bbbf",
92
+ "@libp2p/peer-id-factory": "3.0.8-adea7bbbf",
93
+ "@libp2p/peer-store": "9.0.9-adea7bbbf",
95
94
  "@types/lodash.random": "^3.2.6",
96
95
  "@types/lodash.range": "^3.2.6",
97
96
  "@types/which": "^3.0.0",
@@ -85,6 +85,14 @@ export class Message {
85
85
 
86
86
  return msg
87
87
  }
88
+
89
+ static encode (message: Message): Uint8Array {
90
+ return message.serialize()
91
+ }
92
+
93
+ static decode (buf: Uint8Array | Uint8ArrayList): Message {
94
+ return Message.deserialize(buf)
95
+ }
88
96
  }
89
97
 
90
98
  function toPbPeer (peer: PeerInfo): PBPeer {
package/src/network.ts CHANGED
@@ -1,10 +1,5 @@
1
- import { CodeError } from '@libp2p/interface/errors'
2
1
  import { TypedEventEmitter, CustomEvent } from '@libp2p/interface/events'
3
- import { abortableDuplex } from 'abortable-iterator'
4
- import drain from 'it-drain'
5
- import first from 'it-first'
6
- import * as lp from 'it-length-prefixed'
7
- import { pipe } from 'it-pipe'
2
+ import { pbStream } from 'it-protobuf-stream'
8
3
  import { Message } from './message/index.js'
9
4
  import {
10
5
  dialPeerEvent,
@@ -18,8 +13,6 @@ import type { Stream } from '@libp2p/interface/connection'
18
13
  import type { PeerId } from '@libp2p/interface/peer-id'
19
14
  import type { PeerInfo } from '@libp2p/interface/peer-info'
20
15
  import type { Startable } from '@libp2p/interface/startable'
21
- import type { Duplex, Source } from 'it-stream-types'
22
- import type { Uint8ArrayList } from 'uint8arraylist'
23
16
 
24
17
  export interface NetworkInit {
25
18
  protocol: string
@@ -95,7 +88,7 @@ export class Network extends TypedEventEmitter<NetworkEvents> implements Startab
95
88
  const connection = await this.components.connectionManager.openConnection(to, options)
96
89
  const stream = await connection.newStream(this.protocol, options)
97
90
 
98
- const response = await this._writeReadMessage(stream, msg.serialize(), options)
91
+ const response = await this._writeReadMessage(stream, msg, options)
99
92
 
100
93
  yield peerResponseEvent({
101
94
  from: to,
@@ -131,7 +124,7 @@ export class Network extends TypedEventEmitter<NetworkEvents> implements Startab
131
124
  const connection = await this.components.connectionManager.openConnection(to, options)
132
125
  const stream = await connection.newStream(this.protocol, options)
133
126
 
134
- await this._writeMessage(stream, msg.serialize(), options)
127
+ await this._writeMessage(stream, msg, options)
135
128
 
136
129
  yield peerResponseEvent({ from: to, messageType: msg.type }, options)
137
130
  } catch (err: any) {
@@ -146,17 +139,10 @@ export class Network extends TypedEventEmitter<NetworkEvents> implements Startab
146
139
  /**
147
140
  * Write a message to the given stream
148
141
  */
149
- async _writeMessage (stream: Duplex<AsyncGenerator<Uint8ArrayList>, Source<Uint8ArrayList | Uint8Array>>, msg: Uint8Array | Uint8ArrayList, options: AbortOptions): Promise<void> {
150
- if (options.signal != null) {
151
- stream = abortableDuplex(stream, options.signal)
152
- }
153
-
154
- await pipe(
155
- [msg],
156
- (source) => lp.encode(source),
157
- stream,
158
- drain
159
- )
142
+ async _writeMessage (stream: Stream, msg: Message, options: AbortOptions): Promise<void> {
143
+ const pb = pbStream(stream)
144
+ await pb.write(msg, Message, options)
145
+ await pb.unwrap().close(options)
160
146
  }
161
147
 
162
148
  /**
@@ -164,28 +150,14 @@ export class Network extends TypedEventEmitter<NetworkEvents> implements Startab
164
150
  * If no response is received after the specified timeout
165
151
  * this will error out.
166
152
  */
167
- async _writeReadMessage (stream: Duplex<AsyncGenerator<Uint8ArrayList>, Source<Uint8ArrayList | Uint8Array>>, msg: Uint8Array | Uint8ArrayList, options: AbortOptions): Promise<Message> {
168
- if (options.signal != null) {
169
- stream = abortableDuplex(stream, options.signal)
170
- }
153
+ async _writeReadMessage (stream: Stream, msg: Message, options: AbortOptions): Promise<Message> {
154
+ const pb = pbStream(stream)
171
155
 
172
- const res = await pipe(
173
- [msg],
174
- (source) => lp.encode(source),
175
- stream,
176
- (source) => lp.decode(source),
177
- async source => {
178
- const buf = await first(source)
156
+ await pb.write(msg, Message, options)
179
157
 
180
- if (buf != null) {
181
- return buf
182
- }
183
-
184
- throw new CodeError('No message received', 'ERR_NO_MESSAGE_RECEIVED')
185
- }
186
- )
158
+ const message = await pb.read(Message, options)
187
159
 
188
- const message = Message.deserialize(res)
160
+ await pb.unwrap().close(options)
189
161
 
190
162
  // tell any listeners about new peers we've seen
191
163
  message.closerPeers.forEach(peerData => {