@libp2p/kad-dht 1.0.4 → 1.0.7

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.
@@ -6,7 +6,7 @@ export interface Record {
6
6
  timeReceived?: string;
7
7
  }
8
8
  export declare namespace Record {
9
- const codec: () => import("protons-runtime/dist/src/codecs/codec").Codec<Record>;
9
+ const codec: () => import("protons-runtime").Codec<Record>;
10
10
  const encode: (obj: Record) => Uint8Array;
11
11
  const decode: (buf: Uint8Array) => Record;
12
12
  }
@@ -28,7 +28,7 @@ export declare namespace Message {
28
28
  PING = "PING"
29
29
  }
30
30
  namespace MessageType {
31
- const codec: () => import("protons-runtime/dist/src/codecs/codec").Codec<typeof MessageType>;
31
+ const codec: () => import("protons-runtime").Codec<typeof MessageType>;
32
32
  }
33
33
  enum ConnectionType {
34
34
  NOT_CONNECTED = "NOT_CONNECTED",
@@ -37,7 +37,7 @@ export declare namespace Message {
37
37
  CANNOT_CONNECT = "CANNOT_CONNECT"
38
38
  }
39
39
  namespace ConnectionType {
40
- const codec: () => import("protons-runtime/dist/src/codecs/codec").Codec<typeof ConnectionType>;
40
+ const codec: () => import("protons-runtime").Codec<typeof ConnectionType>;
41
41
  }
42
42
  interface Peer {
43
43
  id?: Uint8Array;
@@ -45,11 +45,11 @@ export declare namespace Message {
45
45
  connection?: Message.ConnectionType;
46
46
  }
47
47
  namespace Peer {
48
- const codec: () => import("protons-runtime/dist/src/codecs/codec").Codec<Peer>;
48
+ const codec: () => import("protons-runtime").Codec<Peer>;
49
49
  const encode: (obj: Peer) => Uint8Array;
50
50
  const decode: (buf: Uint8Array) => Peer;
51
51
  }
52
- const codec: () => import("protons-runtime/dist/src/codecs/codec").Codec<Message>;
52
+ const codec: () => import("protons-runtime").Codec<Message>;
53
53
  const encode: (obj: Message) => Uint8Array;
54
54
  const decode: (buf: Uint8Array) => Message;
55
55
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dht.d.ts","sourceRoot":"","sources":["../../../src/message/dht.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,MAAM;IACrB,GAAG,CAAC,EAAE,UAAU,CAAA;IAChB,KAAK,CAAC,EAAE,UAAU,CAAA;IAClB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,SAAS,CAAC,EAAE,UAAU,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,yBAAiB,MAAM,CAAC;IACf,MAAM,KAAK,qEAQjB,CAAA;IAEM,MAAM,MAAM,QAAS,MAAM,KAAG,UAEpC,CAAA;IAEM,MAAM,MAAM,QAAS,UAAU,KAAG,MAExC,CAAA;CACF;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC,WAAW,CAAA;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,GAAG,CAAC,EAAE,UAAU,CAAA;IAChB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,WAAW,EAAE,OAAO,CAAC,IAAI,EAAE,CAAA;IAC3B,aAAa,EAAE,OAAO,CAAC,IAAI,EAAE,CAAA;CAC9B;AAED,yBAAiB,OAAO,CAAC;IACvB,KAAY,WAAW;QACrB,SAAS,cAAc;QACvB,SAAS,cAAc;QACvB,YAAY,iBAAiB;QAC7B,aAAa,kBAAkB;QAC/B,SAAS,cAAc;QACvB,IAAI,SAAS;KACd;IAED,UAAiB,WAAW,CAAC;QACpB,MAAM,KAAK,iFAEjB,CAAA;KACF;IACD,KAAY,cAAc;QACxB,aAAa,kBAAkB;QAC/B,SAAS,cAAc;QACvB,WAAW,gBAAgB;QAC3B,cAAc,mBAAmB;KAClC;IAED,UAAiB,cAAc,CAAC;QACvB,MAAM,KAAK,oFAEjB,CAAA;KACF;IACD,UAAiB,IAAI;QACnB,EAAE,CAAC,EAAE,UAAU,CAAA;QACf,KAAK,EAAE,UAAU,EAAE,CAAA;QACnB,UAAU,CAAC,EAAE,OAAO,CAAC,cAAc,CAAA;KACpC;IAED,UAAiB,IAAI,CAAC;QACb,MAAM,KAAK,mEAMjB,CAAA;QAEM,MAAM,MAAM,QAAS,IAAI,KAAG,UAElC,CAAA;QAEM,MAAM,MAAM,QAAS,UAAU,KAAG,IAExC,CAAA;KACF;IAEM,MAAM,KAAK,sEASjB,CAAA;IAEM,MAAM,MAAM,QAAS,OAAO,KAAG,UAErC,CAAA;IAEM,MAAM,MAAM,QAAS,UAAU,KAAG,OAExC,CAAA;CACF"}
1
+ {"version":3,"file":"dht.d.ts","sourceRoot":"","sources":["../../../src/message/dht.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,MAAM;IACrB,GAAG,CAAC,EAAE,UAAU,CAAA;IAChB,KAAK,CAAC,EAAE,UAAU,CAAA;IAClB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,SAAS,CAAC,EAAE,UAAU,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,yBAAiB,MAAM,CAAC;IACf,MAAM,KAAK,+CAQjB,CAAA;IAEM,MAAM,MAAM,QAAS,MAAM,KAAG,UAEpC,CAAA;IAEM,MAAM,MAAM,QAAS,UAAU,KAAG,MAExC,CAAA;CACF;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC,WAAW,CAAA;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,GAAG,CAAC,EAAE,UAAU,CAAA;IAChB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,WAAW,EAAE,OAAO,CAAC,IAAI,EAAE,CAAA;IAC3B,aAAa,EAAE,OAAO,CAAC,IAAI,EAAE,CAAA;CAC9B;AAED,yBAAiB,OAAO,CAAC;IACvB,KAAY,WAAW;QACrB,SAAS,cAAc;QACvB,SAAS,cAAc;QACvB,YAAY,iBAAiB;QAC7B,aAAa,kBAAkB;QAC/B,SAAS,cAAc;QACvB,IAAI,SAAS;KACd;IAED,UAAiB,WAAW,CAAC;QACpB,MAAM,KAAK,2DAEjB,CAAA;KACF;IACD,KAAY,cAAc;QACxB,aAAa,kBAAkB;QAC/B,SAAS,cAAc;QACvB,WAAW,gBAAgB;QAC3B,cAAc,mBAAmB;KAClC;IAED,UAAiB,cAAc,CAAC;QACvB,MAAM,KAAK,8DAEjB,CAAA;KACF;IACD,UAAiB,IAAI;QACnB,EAAE,CAAC,EAAE,UAAU,CAAA;QACf,KAAK,EAAE,UAAU,EAAE,CAAA;QACnB,UAAU,CAAC,EAAE,OAAO,CAAC,cAAc,CAAA;KACpC;IAED,UAAiB,IAAI,CAAC;QACb,MAAM,KAAK,6CAMjB,CAAA;QAEM,MAAM,MAAM,QAAS,IAAI,KAAG,UAElC,CAAA;QAEM,MAAM,MAAM,QAAS,UAAU,KAAG,IAExC,CAAA;KACF;IAEM,MAAM,KAAK,gDASjB,CAAA;IAEM,MAAM,MAAM,QAAS,OAAO,KAAG,UAErC,CAAA;IAEM,MAAM,MAAM,QAAS,UAAU,KAAG,OAExC,CAAA;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/query/manager.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAIzE,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,WAAW,CAAA;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;GAEG;AACH,qBAAa,YAAa,YAAW,SAAS,EAAE,aAAa;IAC3D,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IACtB,aAAa,EAAE,MAAM,CAAA;IAC5B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsB;IAClD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAQ;gBAEV,IAAI,EAAE,gBAAgB;IAUnC,IAAI,CAAE,UAAU,EAAE,UAAU,GAAG,IAAI;IAInC,SAAS;IAIT;;OAEG;IACG,KAAK;IAIX;;OAEG;IACG,IAAI;IAUF,GAAG,CAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,GAAE,YAAiB;CAwGhG"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/query/manager.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAIzE,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,WAAW,CAAA;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;GAEG;AACH,qBAAa,YAAa,YAAW,SAAS,EAAE,aAAa;IAC3D,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IACtB,aAAa,EAAE,MAAM,CAAA;IAC5B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsB;IAClD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAQ;gBAEV,IAAI,EAAE,gBAAgB;IAUnC,IAAI,CAAE,UAAU,EAAE,UAAU,GAAG,IAAI;IAInC,SAAS;IAIT;;OAEG;IACG,KAAK;IAIX;;OAEG;IACG,IAAI;IAUF,GAAG,CAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,GAAE,YAAiB;CAgHhG"}
@@ -55,6 +55,14 @@ export class QueryManager {
55
55
  // don't let queries run forever
56
56
  timeoutController = new TimeoutController(DEFAULT_QUERY_TIMEOUT);
57
57
  options.signal = timeoutController.signal;
58
+ // this signal will get listened to for network requests, etc
59
+ // so make sure we don't make a lot of noise in the logs
60
+ try {
61
+ if (setMaxListeners != null) {
62
+ setMaxListeners(Infinity, timeoutController.signal);
63
+ }
64
+ }
65
+ catch { } // fails on node < 15.4
58
66
  }
59
67
  // allow us to stop queries on shut down
60
68
  const abortController = new AbortController();
@@ -68,7 +76,7 @@ export class QueryManager {
68
76
  // so make sure we don't make a lot of noise in the logs
69
77
  try {
70
78
  if (setMaxListeners != null) {
71
- setMaxListeners(0, signal);
79
+ setMaxListeners(Infinity, signal);
72
80
  }
73
81
  }
74
82
  catch { } // fails on node < 15.4
@@ -1 +1 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/query/manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EACL,KAAK,EAAE,CAAC,EAAE,qBAAqB,EAChC,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,MAAM,UAAU,CAAA;AAC5B,6DAA6D;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAKvC,OAAO,EAAE,UAAU,EAAiB,MAAM,+BAA+B,CAAA;AAEzE,MAAM,sBAAsB,GAAG,iBAAiB,CAAA;AAYhD;;GAEG;AACH,MAAM,OAAO,YAAY;IASvB,YAAa,IAAsB;QAR3B,eAAU,GAAe,IAAI,UAAU,EAAE,CAAA;QAS/C,MAAM,EAAE,GAAG,GAAG,KAAK,EAAE,aAAa,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,GAAG,IAAI,CAAA;QAC9D,IAAI,CAAC,aAAa,GAAG,aAAa,IAAI,CAAC,CAAA;QACvC,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,EAAE,CAAA;QAC5B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QACpB,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,KAAK,CAAA;QAC3B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,OAAO,GAAG,CAAC,CAAA;IAClB,CAAC;IAED,IAAI,CAAE,UAAsB;QAC1B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAC9B,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;IACrB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QAEpB,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE;YACzC,UAAU,CAAC,KAAK,EAAE,CAAA;SACnB;QAED,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAA;IAC1B,CAAC;IAED,KAAK,CAAC,CAAE,GAAG,CAAE,GAAe,EAAE,KAAe,EAAE,SAAoB,EAAE,UAAwB,EAAE;QAC7F,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;SAC5C;QAED,IAAI,iBAAiB,CAAA;QAErB,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI,EAAE;YAC1B,gCAAgC;YAChC,iBAAiB,GAAG,IAAI,iBAAiB,CAAC,qBAAqB,CAAC,CAAA;YAChE,OAAO,CAAC,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAA;SAC1C;QAED,wCAAwC;QACxC,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAA;QAC7C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;QACrC,MAAM,OAAO,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;QAExC,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI,EAAE;YAC1B,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;SAC7B;QAED,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,CAAA;QAEjC,qEAAqE;QACrE,wDAAwD;QACxD,IAAI;YACF,IAAI,eAAe,IAAI,IAAI,EAAE;gBAC3B,eAAe,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;aAC3B;SACF;QAAC,MAAM,GAAE,CAAC,uBAAuB;QAElC,MAAM,GAAG,GAAG,MAAM,CAAC,kBAAkB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,kBAAkB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAA;QAE9G,4DAA4D;QAC5D,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;QAC/E,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAC5B,MAAM,OAAO,GAAG,IAAI,YAAY,EAAiB,CAAA;QAEjD,IAAI;YACF,GAAG,CAAC,aAAa,CAAC,CAAA;YAClB,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE,qBAAqB,CAAC;gBAClD,MAAM,EAAE,QAAQ;gBAChB,SAAS,EAAE,WAAW,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE;gBAChD,MAAM,EAAE,sBAAsB;gBAC9B,KAAK,EAAE,IAAI,CAAC,OAAO;aACpB,CAAC,CAAA;YAEF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;gBACtB,GAAG,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAA;gBACxC,OAAM;aACP;YAED,6CAA6C;YAC7C,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBAC7C,OAAO,SAAS,CAAC;oBACf,GAAG;oBACH,YAAY,EAAE,IAAI;oBAClB,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;oBACtC,MAAM;oBACN,KAAK,EAAE,SAAS;oBAChB,SAAS,EAAE,KAAK;oBAChB,QAAQ,EAAE,YAAY,CAAC,MAAM;oBAC7B,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,OAAO;oBACP,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;oBAC1C,GAAG;iBACJ,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;YAEF,8FAA8F;YAC9F,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,EAAE;gBACzC,MAAM,KAAK,CAAA;gBAEX,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE;oBAChC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;iBAC1B;aACF;SACF;QAAC,OAAO,GAAQ,EAAE;YACjB,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,GAAG,CAAC,IAAI,KAAK,mBAAmB,EAAE;gBACrD,6EAA6E;aAC9E;iBAAM;gBACL,MAAM,GAAG,CAAA;aACV;SACF;gBAAS;YACR,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,eAAe,CAAC,CAAA;YAExC,IAAI,iBAAiB,IAAI,IAAI,EAAE;gBAC7B,iBAAiB,CAAC,KAAK,EAAE,CAAA;aAC1B;YAED,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE,qBAAqB,CAAC;gBAClD,MAAM,EAAE,QAAQ;gBAChB,SAAS,EAAE,WAAW,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE;gBAChD,MAAM,EAAE,sBAAsB;gBAC9B,KAAK,EAAE,IAAI,CAAC,OAAO;aACpB,CAAC,CAAA;YAEF,OAAO,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,SAAS,CAAC,CAAC,CAAA;YACjD,GAAG,CAAC,oBAAoB,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAA;SAClD;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/query/manager.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
1
  import { Message } from '../../message/index.js';
2
+ import { Components } from '@libp2p/interfaces/components';
3
+ import type { Initializable } from '@libp2p/interfaces/components';
2
4
  import type { DHTMessageHandler } from '../index.js';
3
5
  import type { PeerRouting } from '../../peer-routing/index.js';
4
6
  import type { PeerId } from '@libp2p/interfaces/peer-id';
5
- import type { Initializable } from '@libp2p/interfaces/components';
6
7
  export interface FindNodeHandlerInit {
7
8
  peerRouting: PeerRouting;
8
9
  lan: boolean;
@@ -10,8 +11,9 @@ export interface FindNodeHandlerInit {
10
11
  export declare class FindNodeHandler implements DHTMessageHandler, Initializable {
11
12
  private readonly peerRouting;
12
13
  private readonly lan;
14
+ private components;
13
15
  constructor(init: FindNodeHandlerInit);
14
- init(): void;
16
+ init(components: Components): void;
15
17
  /**
16
18
  * Process `FindNode` DHT messages
17
19
  */
@@ -1 +1 @@
1
- {"version":3,"file":"find-node.d.ts","sourceRoot":"","sources":["../../../../src/rpc/handlers/find-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAOhD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAIxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAIlE,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,WAAW,CAAA;IACxB,GAAG,EAAE,OAAO,CAAA;CACb;AAED,qBAAa,eAAgB,YAAW,iBAAiB,EAAE,aAAa;IACtE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;gBAEhB,IAAI,EAAE,mBAAmB;IAMtC,IAAI,IAAK,IAAI;IAIb;;OAEG;IACG,MAAM,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO;CAsB3C"}
1
+ {"version":3,"file":"find-node.d.ts","sourceRoot":"","sources":["../../../../src/rpc/handlers/find-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAOhD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAE1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAElE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAIxD,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,WAAW,CAAA;IACxB,GAAG,EAAE,OAAO,CAAA;CACb;AAED,qBAAa,eAAgB,YAAW,iBAAiB,EAAE,aAAa;IACtE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,UAAU,CAAmB;gBAExB,IAAI,EAAE,mBAAmB;IAMtC,IAAI,CAAE,UAAU,EAAE,UAAU,GAAG,IAAI;IAInC;;OAEG;IACG,MAAM,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO;CA6B3C"}
@@ -1,26 +1,39 @@
1
1
  import { Message } from '../../message/index.js';
2
2
  import { logger } from '@libp2p/logger';
3
3
  import { removePrivateAddresses, removePublicAddresses } from '../../utils.js';
4
- import { pipe } from 'it-pipe';
5
- import map from 'it-map';
6
- import filter from 'it-filter';
7
- import all from 'it-all';
4
+ import { equals as uint8ArrayEquals } from 'uint8arrays';
5
+ import { Components } from '@libp2p/interfaces/components';
6
+ import { protocols } from '@multiformats/multiaddr';
8
7
  const log = logger('libp2p:kad-dht:rpc:handlers:find-node');
9
8
  export class FindNodeHandler {
10
9
  constructor(init) {
10
+ this.components = new Components();
11
11
  const { peerRouting, lan } = init;
12
12
  this.peerRouting = peerRouting;
13
13
  this.lan = Boolean(lan);
14
14
  }
15
- init() {
15
+ init(components) {
16
+ this.components = components;
16
17
  }
17
18
  /**
18
19
  * Process `FindNode` DHT messages
19
20
  */
20
21
  async handle(peerId, msg) {
21
22
  log('incoming request from %p for peers closer to %b', peerId, msg.key);
22
- const mapper = this.lan ? removePublicAddresses : removePrivateAddresses;
23
- const closer = await pipe(await this.peerRouting.getCloserPeersOffline(msg.key, peerId), (source) => map(source, mapper), (source) => filter(source, ({ multiaddrs }) => multiaddrs.length > 0), async (source) => await all(source));
23
+ let closer = [];
24
+ if (uint8ArrayEquals(this.components.getPeerId().toBytes(), msg.key)) {
25
+ closer = [{
26
+ id: this.components.getPeerId(),
27
+ multiaddrs: this.components.getAddressManager().getAddresses().map(ma => ma.decapsulateCode(protocols('p2p').code)),
28
+ protocols: []
29
+ }];
30
+ }
31
+ else {
32
+ closer = await this.peerRouting.getCloserPeersOffline(msg.key, peerId);
33
+ }
34
+ closer = closer
35
+ .map(this.lan ? removePublicAddresses : removePrivateAddresses)
36
+ .filter(({ multiaddrs }) => multiaddrs.length);
24
37
  const response = new Message(msg.type, new Uint8Array(0), msg.clusterLevel);
25
38
  if (closer.length > 0) {
26
39
  response.closerPeers = closer;
@@ -1 +1 @@
1
- {"version":3,"file":"find-node.js","sourceRoot":"","sources":["../../../../src/rpc/handlers/find-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAI9B,OAAO,GAAG,MAAM,QAAQ,CAAA;AACxB,OAAO,MAAM,MAAM,WAAW,CAAA;AAC9B,OAAO,GAAG,MAAM,QAAQ,CAAA;AAGxB,MAAM,GAAG,GAAG,MAAM,CAAC,uCAAuC,CAAC,CAAA;AAO3D,MAAM,OAAO,eAAe;IAI1B,YAAa,IAAyB;QACpC,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;QACjC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;IACzB,CAAC;IAED,IAAI;IAEJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAE,MAAc,EAAE,GAAY;QACxC,GAAG,CAAC,iDAAiD,EAAE,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAA;QAEvE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,sBAAsB,CAAA;QAExE,MAAM,MAAM,GAAG,MAAM,IAAI,CACvB,MAAM,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,EAC7D,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,EACrE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,CACpC,CAAA;QAED,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,YAAY,CAAC,CAAA;QAE3E,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,QAAQ,CAAC,WAAW,GAAG,MAAM,CAAA;SAC9B;aAAM;YACL,GAAG,CAAC,+CAA+C,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;SACtE;QAED,OAAO,QAAQ,CAAA;IACjB,CAAC;CACF"}
1
+ {"version":3,"file":"find-node.js","sourceRoot":"","sources":["../../../../src/rpc/handlers/find-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,MAAM,IAAI,gBAAgB,EAAE,MAAM,aAAa,CAAA;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAOnD,MAAM,GAAG,GAAG,MAAM,CAAC,uCAAuC,CAAC,CAAA;AAO3D,MAAM,OAAO,eAAe;IAK1B,YAAa,IAAyB;QAF9B,eAAU,GAAG,IAAI,UAAU,EAAE,CAAA;QAGnC,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;QACjC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;IACzB,CAAC;IAED,IAAI,CAAE,UAAsB;QAC1B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAC9B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAE,MAAc,EAAE,GAAY;QACxC,GAAG,CAAC,iDAAiD,EAAE,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAA;QAEvE,IAAI,MAAM,GAAe,EAAE,CAAA;QAE3B,IAAI,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE;YACpE,MAAM,GAAG,CAAC;oBACR,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;oBAC/B,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;oBACnH,SAAS,EAAE,EAAE;iBACd,CAAC,CAAA;SACH;aAAM;YACL,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;SACvE;QAED,MAAM,GAAG,MAAM;aACZ,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,sBAAsB,CAAC;aAC9D,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QAEhD,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,YAAY,CAAC,CAAA;QAE3E,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,QAAQ,CAAC,WAAW,GAAG,MAAM,CAAA;SAC9B;aAAM;YACL,GAAG,CAAC,+CAA+C,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;SACtE;QAED,OAAO,QAAQ,CAAA;IACjB,CAAC;CACF"}
@@ -6,7 +6,7 @@ import type { Providers } from '../providers';
6
6
  import type { PeerRouting } from '../peer-routing';
7
7
  import type { Validators } from '@libp2p/interfaces/dht';
8
8
  import type { Components, Initializable } from '@libp2p/interfaces/components';
9
- export interface DHTMessageHandler {
9
+ export interface DHTMessageHandler extends Initializable {
10
10
  handle: (peerId: PeerId, msg: Message) => Promise<Message | undefined>;
11
11
  }
12
12
  export interface RPCInit {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/rpc/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAE,OAAO,EAAgB,MAAM,qBAAqB,CAAA;AAO3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AACtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAE9E,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAA;CACvE;AAED,MAAM,WAAW,OAAO;IACtB,YAAY,EAAE,YAAY,CAAA;IAC1B,SAAS,EAAE,SAAS,CAAA;IACpB,WAAW,EAAE,WAAW,CAAA;IACxB,UAAU,EAAE,UAAU,CAAA;IACtB,GAAG,EAAE,OAAO,CAAA;CACb;AAED,qBAAa,GAAI,YAAW,aAAa;IACvC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmD;IAC5E,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;gBAEf,IAAI,EAAE,OAAO;IAgB1B,IAAI,CAAE,UAAU,EAAE,UAAU,GAAG,IAAI;IAMnC;;OAEG;IACG,aAAa,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO;IAkBjD;;OAEG;IACH,gBAAgB,CAAE,IAAI,EAAE,kBAAkB;CAqC3C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/rpc/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAE,OAAO,EAAgB,MAAM,qBAAqB,CAAA;AAO3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AACtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAE9E,MAAM,WAAW,iBAAkB,SAAQ,aAAa;IACtD,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAA;CACvE;AAED,MAAM,WAAW,OAAO;IACtB,YAAY,EAAE,YAAY,CAAA;IAC1B,SAAS,EAAE,SAAS,CAAA;IACpB,WAAW,EAAE,WAAW,CAAA;IACxB,UAAU,EAAE,UAAU,CAAA;IACtB,GAAG,EAAE,OAAO,CAAA;CACb;AAED,qBAAa,GAAI,YAAW,aAAa;IACvC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmC;IAC5D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;gBAEf,IAAI,EAAE,OAAO;IAgB1B,IAAI,CAAE,UAAU,EAAE,UAAU,GAAG,IAAI;IAMnC;;OAEG;IACG,aAAa,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO;IAkBjD;;OAEG;IACH,gBAAgB,CAAE,IAAI,EAAE,kBAAkB;CAqC3C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@libp2p/kad-dht",
3
- "version": "1.0.4",
3
+ "version": "1.0.7",
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-kad-dht#readme",
@@ -132,11 +132,11 @@
132
132
  "release": "aegir release"
133
133
  },
134
134
  "dependencies": {
135
- "@libp2p/crypto": "^0.22.9",
136
- "@libp2p/interfaces": "^1.3.20",
135
+ "@libp2p/crypto": "^0.22.10",
136
+ "@libp2p/interfaces": "^1.3.21",
137
137
  "@libp2p/logger": "^1.1.3",
138
138
  "@libp2p/peer-id": "^1.1.9",
139
- "@libp2p/record": "^1.0.2",
139
+ "@libp2p/record": "^1.0.3",
140
140
  "@libp2p/topology": "^1.1.7",
141
141
  "@multiformats/multiaddr": "^10.1.5",
142
142
  "any-signal": "^3.0.0",
@@ -89,6 +89,14 @@ export class QueryManager implements Startable, Initializable {
89
89
  // don't let queries run forever
90
90
  timeoutController = new TimeoutController(DEFAULT_QUERY_TIMEOUT)
91
91
  options.signal = timeoutController.signal
92
+
93
+ // this signal will get listened to for network requests, etc
94
+ // so make sure we don't make a lot of noise in the logs
95
+ try {
96
+ if (setMaxListeners != null) {
97
+ setMaxListeners(Infinity, timeoutController.signal)
98
+ }
99
+ } catch {} // fails on node < 15.4
92
100
  }
93
101
 
94
102
  // allow us to stop queries on shut down
@@ -106,7 +114,7 @@ export class QueryManager implements Startable, Initializable {
106
114
  // so make sure we don't make a lot of noise in the logs
107
115
  try {
108
116
  if (setMaxListeners != null) {
109
- setMaxListeners(0, signal)
117
+ setMaxListeners(Infinity, signal)
110
118
  }
111
119
  } catch {} // fails on node < 15.4
112
120
 
@@ -4,14 +4,14 @@ import {
4
4
  removePrivateAddresses,
5
5
  removePublicAddresses
6
6
  } from '../../utils.js'
7
- import { pipe } from 'it-pipe'
7
+ import { equals as uint8ArrayEquals } from 'uint8arrays'
8
+ import { Components } from '@libp2p/interfaces/components'
9
+ import { protocols } from '@multiformats/multiaddr'
10
+ import type { Initializable } from '@libp2p/interfaces/components'
11
+ import type { PeerInfo } from '@libp2p/interfaces/peer-info'
8
12
  import type { DHTMessageHandler } from '../index.js'
9
13
  import type { PeerRouting } from '../../peer-routing/index.js'
10
14
  import type { PeerId } from '@libp2p/interfaces/peer-id'
11
- import map from 'it-map'
12
- import filter from 'it-filter'
13
- import all from 'it-all'
14
- import type { Initializable } from '@libp2p/interfaces/components'
15
15
 
16
16
  const log = logger('libp2p:kad-dht:rpc:handlers:find-node')
17
17
 
@@ -23,6 +23,7 @@ export interface FindNodeHandlerInit {
23
23
  export class FindNodeHandler implements DHTMessageHandler, Initializable {
24
24
  private readonly peerRouting: PeerRouting
25
25
  private readonly lan: boolean
26
+ private components = new Components()
26
27
 
27
28
  constructor (init: FindNodeHandlerInit) {
28
29
  const { peerRouting, lan } = init
@@ -30,8 +31,8 @@ export class FindNodeHandler implements DHTMessageHandler, Initializable {
30
31
  this.lan = Boolean(lan)
31
32
  }
32
33
 
33
- init (): void {
34
-
34
+ init (components: Components): void {
35
+ this.components = components
35
36
  }
36
37
 
37
38
  /**
@@ -40,14 +41,21 @@ export class FindNodeHandler implements DHTMessageHandler, Initializable {
40
41
  async handle (peerId: PeerId, msg: Message) {
41
42
  log('incoming request from %p for peers closer to %b', peerId, msg.key)
42
43
 
43
- const mapper = this.lan ? removePublicAddresses : removePrivateAddresses
44
+ let closer: PeerInfo[] = []
45
+
46
+ if (uint8ArrayEquals(this.components.getPeerId().toBytes(), msg.key)) {
47
+ closer = [{
48
+ id: this.components.getPeerId(),
49
+ multiaddrs: this.components.getAddressManager().getAddresses().map(ma => ma.decapsulateCode(protocols('p2p').code)),
50
+ protocols: []
51
+ }]
52
+ } else {
53
+ closer = await this.peerRouting.getCloserPeersOffline(msg.key, peerId)
54
+ }
44
55
 
45
- const closer = await pipe(
46
- await this.peerRouting.getCloserPeersOffline(msg.key, peerId),
47
- (source) => map(source, mapper),
48
- (source) => filter(source, ({ multiaddrs }) => multiaddrs.length > 0),
49
- async (source) => await all(source)
50
- )
56
+ closer = closer
57
+ .map(this.lan ? removePublicAddresses : removePrivateAddresses)
58
+ .filter(({ multiaddrs }) => multiaddrs.length)
51
59
 
52
60
  const response = new Message(msg.type, new Uint8Array(0), msg.clusterLevel)
53
61
 
package/src/rpc/index.ts CHANGED
@@ -16,7 +16,7 @@ import type { PeerRouting } from '../peer-routing'
16
16
  import type { Validators } from '@libp2p/interfaces/dht'
17
17
  import type { Components, Initializable } from '@libp2p/interfaces/components'
18
18
 
19
- export interface DHTMessageHandler {
19
+ export interface DHTMessageHandler extends Initializable {
20
20
  handle: (peerId: PeerId, msg: Message) => Promise<Message | undefined>
21
21
  }
22
22
 
@@ -29,7 +29,7 @@ export interface RPCInit {
29
29
  }
30
30
 
31
31
  export class RPC implements Initializable {
32
- private readonly handlers: Record<string, DHTMessageHandler & Initializable>
32
+ private readonly handlers: Record<string, DHTMessageHandler>
33
33
  private readonly routingTable: RoutingTable
34
34
  private readonly log: Logger
35
35