@libp2p/mdns 5.1.1 → 7.0.0

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.
Files changed (43) hide show
  1. package/README.md +18 -11
  2. package/dist/index.min.js +4 -4
  3. package/dist/src/index.d.ts +1 -3
  4. package/dist/src/index.d.ts.map +1 -1
  5. package/dist/src/index.js +24 -55
  6. package/dist/src/index.js.map +1 -1
  7. package/dist/src/query.d.ts +4 -5
  8. package/dist/src/query.d.ts.map +1 -1
  9. package/dist/src/query.js +38 -82
  10. package/dist/src/query.js.map +1 -1
  11. package/dist/src/utils.d.ts +2 -0
  12. package/dist/src/utils.d.ts.map +1 -0
  13. package/dist/src/utils.js +9 -0
  14. package/dist/src/utils.js.map +1 -0
  15. package/package.json +14 -16
  16. package/src/index.ts +38 -67
  17. package/src/query.ts +42 -101
  18. package/src/utils.ts +9 -0
  19. package/dist/src/compat/constants.d.ts +0 -5
  20. package/dist/src/compat/constants.d.ts.map +0 -1
  21. package/dist/src/compat/constants.js +0 -5
  22. package/dist/src/compat/constants.js.map +0 -1
  23. package/dist/src/compat/index.d.ts +0 -20
  24. package/dist/src/compat/index.d.ts.map +0 -1
  25. package/dist/src/compat/index.js +0 -50
  26. package/dist/src/compat/index.js.map +0 -1
  27. package/dist/src/compat/querier.d.ts +0 -31
  28. package/dist/src/compat/querier.d.ts.map +0 -1
  29. package/dist/src/compat/querier.js +0 -123
  30. package/dist/src/compat/querier.js.map +0 -1
  31. package/dist/src/compat/responder.d.ts +0 -13
  32. package/dist/src/compat/responder.d.ts.map +0 -1
  33. package/dist/src/compat/responder.js +0 -94
  34. package/dist/src/compat/responder.js.map +0 -1
  35. package/dist/src/compat/utils.d.ts +0 -5
  36. package/dist/src/compat/utils.d.ts.map +0 -1
  37. package/dist/src/compat/utils.js +0 -70
  38. package/dist/src/compat/utils.js.map +0 -1
  39. package/src/compat/constants.ts +0 -4
  40. package/src/compat/index.ts +0 -73
  41. package/src/compat/querier.ts +0 -171
  42. package/src/compat/responder.ts +0 -116
  43. package/src/compat/utils.ts +0 -82
package/dist/src/index.js CHANGED
@@ -2,29 +2,27 @@ import multicastDNS from 'multicast-dns';
2
2
  import { CustomEvent, EventEmitter } from '@libp2p/interfaces/events';
3
3
  import { logger } from '@libp2p/logger';
4
4
  import * as query from './query.js';
5
- import { GoMulticastDNS } from './compat/index.js';
6
5
  import { symbol } from '@libp2p/interface-peer-discovery';
6
+ import { stringGen } from './utils.js';
7
7
  const log = logger('libp2p:mdns');
8
8
  class MulticastDNS extends EventEmitter {
9
9
  constructor(components, init = {}) {
10
10
  super();
11
- this.components = components;
12
11
  this.broadcast = init.broadcast !== false;
13
12
  this.interval = init.interval ?? (1e3 * 10);
14
- this.serviceTag = init.serviceTag ?? 'ipfs.local';
13
+ this.serviceTag = init.serviceTag ?? '_p2p._udp.local';
15
14
  this.ip = init.ip ?? '224.0.0.251';
15
+ this.peerName = init.peerName ?? stringGen(63);
16
+ // 63 is dns label limit
17
+ if (this.peerName.length >= 64) {
18
+ throw new Error('Peer name should be less than 64 chars long');
19
+ }
16
20
  this.port = init.port ?? 5353;
21
+ this.components = components;
17
22
  this._queryInterval = null;
18
23
  this._onPeer = this._onPeer.bind(this);
19
24
  this._onMdnsQuery = this._onMdnsQuery.bind(this);
20
25
  this._onMdnsResponse = this._onMdnsResponse.bind(this);
21
- if (init.compat !== false) {
22
- this._goMdns = new GoMulticastDNS(components, {
23
- queryPeriod: init.compatQueryPeriod,
24
- queryInterval: init.compatQueryInterval
25
- });
26
- this._goMdns.addEventListener('peer', this._onPeer);
27
- }
28
26
  }
29
27
  get [symbol]() {
30
28
  return true;
@@ -48,21 +46,19 @@ class MulticastDNS extends EventEmitter {
48
46
  this.mdns.on('query', this._onMdnsQuery);
49
47
  this.mdns.on('response', this._onMdnsResponse);
50
48
  this._queryInterval = query.queryLAN(this.mdns, this.serviceTag, this.interval);
51
- if (this._goMdns != null) {
52
- await this._goMdns.start();
53
- }
54
49
  }
55
50
  _onMdnsQuery(event) {
56
51
  if (this.mdns == null) {
57
52
  return;
58
53
  }
59
54
  log.trace('received incoming mDNS query');
60
- query.gotQuery(event, this.mdns, this.components.peerId, this.components.addressManager.getAddresses(), this.serviceTag, this.broadcast);
55
+ const localPeerId = this.components.peerId;
56
+ query.gotQuery(event, this.mdns, this.peerName, this.components.addressManager.getAddresses().map((ma) => ma.encapsulate('/p2p/' + localPeerId.toString())), this.serviceTag, this.broadcast);
61
57
  }
62
58
  _onMdnsResponse(event) {
63
59
  log.trace('received mDNS query response');
64
60
  try {
65
- const foundPeer = query.gotResponse(event, this.components.peerId, this.serviceTag);
61
+ const foundPeer = query.gotResponse(event, this.peerName, this.serviceTag);
66
62
  if (foundPeer != null) {
67
63
  log('discovered peer in mDNS qeury response %p', foundPeer.id);
68
64
  this.dispatchEvent(new CustomEvent('peer', {
@@ -93,22 +89,18 @@ class MulticastDNS extends EventEmitter {
93
89
  }
94
90
  this.mdns.removeListener('query', this._onMdnsQuery);
95
91
  this.mdns.removeListener('response', this._onMdnsResponse);
96
- this._goMdns?.removeEventListener('peer', this._onPeer);
97
92
  if (this._queryInterval != null) {
98
93
  clearInterval(this._queryInterval);
99
94
  this._queryInterval = null;
100
95
  }
101
- await Promise.all([
102
- this._goMdns?.stop(),
103
- new Promise((resolve) => {
104
- if (this.mdns != null) {
105
- this.mdns.destroy(resolve);
106
- }
107
- else {
108
- resolve();
109
- }
110
- })
111
- ]);
96
+ await new Promise((resolve) => {
97
+ if (this.mdns != null) {
98
+ this.mdns.destroy(resolve);
99
+ }
100
+ else {
101
+ resolve();
102
+ }
103
+ });
112
104
  this.mdns = undefined;
113
105
  }
114
106
  }
@@ -117,41 +109,18 @@ export function mdns(init = {}) {
117
109
  }
118
110
  /* for reference
119
111
 
120
- [ { name: 'discovery.ipfs.io.local',
112
+ [ { name: '_p2p._udp.local',
121
113
  type: 'PTR',
122
114
  class: 1,
123
115
  ttl: 120,
124
- data: 'QmbBHw1Xx9pUpAbrVZUKTPL5Rsph5Q9GQhRvcWVBPFgGtC.discovery.ipfs.io.local' },
125
-
126
- { name: 'QmbBHw1Xx9pUpAbrVZUKTPL5Rsph5Q9GQhRvcWVBPFgGtC.discovery.ipfs.io.local',
127
- type: 'SRV',
128
- class: 1,
129
- ttl: 120,
130
- data: { priority: 10, weight: 1, port: 4001, target: 'lorien.local' } },
131
-
132
- { name: 'lorien.local',
133
- type: 'A',
134
- class: 1,
135
- ttl: 120,
136
- data: '127.0.0.1' },
137
-
138
- { name: 'lorien.local',
139
- type: 'A',
140
- class: 1,
141
- ttl: 120,
142
- data: '127.94.0.1' },
143
-
144
- { name: 'lorien.local',
145
- type: 'A',
146
- class: 1,
147
- ttl: 120,
148
- data: '172.16.38.224' },
116
+ data: 'XQxZeAH6MX2n4255fzYmyUCUdhQ0DAWv.p2p._udp.local' },
149
117
 
150
- { name: 'QmbBHw1Xx9pUpAbrVZUKTPL5Rsph5Q9GQhRvcWVBPFgGtC.discovery.ipfs.io.local',
118
+ { name: 'XQxZeAH6MX2n4255fzYmyUCUdhQ0DAWv.p2p._udp.local',
151
119
  type: 'TXT',
152
120
  class: 1,
153
121
  ttl: 120,
154
- data: 'QmbBHw1Xx9pUpAbrVZUKTPL5Rsph5Q9GQhRvcWVBPFgGtC' } ],
122
+ data: 'dnsaddr=/ip4/127.0.0.1/tcp/80/p2p/QmbBHw1Xx9pUpAbrVZUKTPL5Rsph5Q9GQhRvcWVBPFgGtC' },
123
+ ]
155
124
 
156
125
  */
157
126
  //# sourceMappingURL=index.js.map
@@ -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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"}
@@ -1,9 +1,8 @@
1
1
  /// <reference types="node" />
2
- import type { Multiaddr } from '@multiformats/multiaddr';
3
- import type { PeerId } from '@libp2p/interface-peer-id';
4
2
  import type { PeerInfo } from '@libp2p/interface-peer-info';
5
- import type { MulticastDNS, ResponsePacket, QueryPacket } from 'multicast-dns';
3
+ import { Multiaddr } from '@multiformats/multiaddr';
4
+ import type { MulticastDNS, QueryPacket, ResponsePacket } from 'multicast-dns';
6
5
  export declare function queryLAN(mdns: MulticastDNS, serviceTag: string, interval: number): NodeJS.Timer;
7
- export declare function gotResponse(rsp: ResponsePacket, localPeerId: PeerId, serviceTag: string): PeerInfo | undefined;
8
- export declare function gotQuery(qry: QueryPacket, mdns: MulticastDNS, peerId: PeerId, multiaddrs: Multiaddr[], serviceTag: string, broadcast: boolean): void;
6
+ export declare function gotResponse(rsp: ResponsePacket, localPeerName: string, serviceTag: string): PeerInfo | undefined;
7
+ export declare function gotQuery(qry: QueryPacket, mdns: MulticastDNS, peerName: string, multiaddrs: Multiaddr[], serviceTag: string, broadcast: boolean): void;
9
8
  //# sourceMappingURL=query.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/query.ts"],"names":[],"mappings":";AAGA,OAAO,KAAK,EAAE,SAAS,EAAmB,MAAM,yBAAyB,CAAA;AAEzE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAK9E,wBAAgB,QAAQ,CAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,gBAejF;AAUD,wBAAgB,WAAW,CAAE,GAAG,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CA6D/G;AAED,wBAAgB,QAAQ,CAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,QAqE9I"}
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/query.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAG3D,OAAO,EAAa,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAE9D,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAI9E,wBAAgB,QAAQ,CAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,KAAK,CAehG;AAED,wBAAgB,WAAW,CAAE,GAAG,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CA6CjH;AAED,wBAAgB,QAAQ,CAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI,CAqCvJ"}
package/dist/src/query.js CHANGED
@@ -1,7 +1,6 @@
1
- import os from 'os';
2
1
  import { logger } from '@libp2p/logger';
3
- import { protocols, multiaddr } from '@multiformats/multiaddr';
4
2
  import { peerIdFromString } from '@libp2p/peer-id';
3
+ import { multiaddr } from '@multiformats/multiaddr';
5
4
  const log = logger('libp2p:mdns:query');
6
5
  export function queryLAN(mdns, serviceTag, interval) {
7
6
  const query = () => {
@@ -17,80 +16,57 @@ export function queryLAN(mdns, serviceTag, interval) {
17
16
  query();
18
17
  return setInterval(query, interval);
19
18
  }
20
- export function gotResponse(rsp, localPeerId, serviceTag) {
19
+ export function gotResponse(rsp, localPeerName, serviceTag) {
21
20
  if (rsp.answers == null) {
22
21
  return;
23
22
  }
24
- const answers = {
25
- a: [],
26
- aaaa: []
27
- };
23
+ let answerPTR;
24
+ const txtAnswers = [];
28
25
  rsp.answers.forEach((answer) => {
29
26
  switch (answer.type) {
30
27
  case 'PTR':
31
- answers.ptr = answer;
32
- break;
33
- case 'SRV':
34
- answers.srv = answer;
28
+ answerPTR = answer;
35
29
  break;
36
30
  case 'TXT':
37
- answers.txt = answer;
38
- break;
39
- case 'A':
40
- answers.a.push(answer);
41
- break;
42
- case 'AAAA':
43
- answers.aaaa.push(answer);
31
+ txtAnswers.push(answer);
44
32
  break;
45
33
  default: break;
46
34
  }
47
35
  });
48
- if (answers.ptr == null ||
49
- answers.ptr.name !== serviceTag ||
50
- answers.txt == null ||
51
- answers.srv == null) {
36
+ if (answerPTR == null ||
37
+ answerPTR?.name !== serviceTag ||
38
+ txtAnswers.length === 0 ||
39
+ answerPTR.data.startsWith(localPeerName)) {
52
40
  return;
53
41
  }
54
- const b58Id = answers.txt.data[0].toString();
55
- const port = answers.srv.data.port;
56
- const multiaddrs = [];
57
- answers.a.forEach((a) => {
58
- const ma = multiaddr(`/ip4/${a.data}/tcp/${port}`);
59
- if (!multiaddrs.some((m) => m.equals(ma))) {
60
- multiaddrs.push(ma);
61
- }
62
- });
63
- answers.aaaa.forEach((a) => {
64
- const ma = multiaddr(`/ip6/${a.data}/tcp/${port}`);
65
- if (!multiaddrs.some((m) => m.equals(ma))) {
66
- multiaddrs.push(ma);
42
+ try {
43
+ const multiaddrs = txtAnswers
44
+ .flatMap((a) => a.data)
45
+ .filter(answerData => answerData.toString().startsWith('dnsaddr='))
46
+ .map((answerData) => {
47
+ return multiaddr(answerData.toString().substring('dnsaddr='.length));
48
+ });
49
+ const peerId = multiaddrs[0].getPeerId();
50
+ if (peerId == null) {
51
+ throw new Error("Multiaddr doesn't contain PeerId");
67
52
  }
68
- });
69
- if (localPeerId.toString() === b58Id) {
70
- return; // replied to myself, ignore
53
+ log('peer found %p', peerId);
54
+ return {
55
+ id: peerIdFromString(peerId),
56
+ multiaddrs,
57
+ protocols: []
58
+ };
59
+ }
60
+ catch (e) {
61
+ log.error('failed to parse mdns response', e);
71
62
  }
72
- const id = peerIdFromString(b58Id);
73
- log('peer found %p', id);
74
- return {
75
- id,
76
- multiaddrs,
77
- protocols: []
78
- };
79
63
  }
80
- export function gotQuery(qry, mdns, peerId, multiaddrs, serviceTag, broadcast) {
64
+ export function gotQuery(qry, mdns, peerName, multiaddrs, serviceTag, broadcast) {
81
65
  if (!broadcast) {
82
66
  log('not responding to mDNS query as broadcast mode is false');
83
67
  return;
84
68
  }
85
- const addresses = multiaddrs.reduce((acc, addr) => {
86
- if (addr.decapsulateCode(protocols('p2p').code).isThinWaistAddress()) {
87
- acc.push(addr.toOptions());
88
- }
89
- return acc;
90
- }, []);
91
- // Only announce TCP for now
92
- if (addresses.length === 0) {
93
- log('no thin waist addresses present, cannot respond to query');
69
+ if (multiaddrs.length === 0) {
94
70
  return;
95
71
  }
96
72
  if (qry.questions[0] != null && qry.questions[0].name === serviceTag) {
@@ -100,37 +76,17 @@ export function gotQuery(qry, mdns, peerId, multiaddrs, serviceTag, broadcast) {
100
76
  type: 'PTR',
101
77
  class: 'IN',
102
78
  ttl: 120,
103
- data: peerId.toString() + '.' + serviceTag
104
- });
105
- // Only announce TCP multiaddrs for now
106
- const port = addresses[0].port;
107
- answers.push({
108
- name: peerId.toString() + '.' + serviceTag,
109
- type: 'SRV',
110
- class: 'IN',
111
- ttl: 120,
112
- data: {
113
- priority: 10,
114
- weight: 1,
115
- port: port,
116
- target: os.hostname()
117
- }
118
- });
119
- answers.push({
120
- name: peerId.toString() + '.' + serviceTag,
121
- type: 'TXT',
122
- class: 'IN',
123
- ttl: 120,
124
- data: peerId.toString()
79
+ data: peerName + '.' + serviceTag
125
80
  });
126
- addresses.forEach((addr) => {
127
- if ([4, 6].includes(addr.family)) {
81
+ multiaddrs.forEach((addr) => {
82
+ // spec mandates multiaddr contains peer id
83
+ if (addr.getPeerId() != null) {
128
84
  answers.push({
129
- name: os.hostname(),
130
- type: addr.family === 4 ? 'A' : 'AAAA',
85
+ name: peerName + '.' + serviceTag,
86
+ type: 'TXT',
131
87
  class: 'IN',
132
88
  ttl: 120,
133
- data: addr.host
89
+ data: 'dnsaddr=' + addr.toString()
134
90
  });
135
91
  }
136
92
  });
@@ -1 +1 @@
1
- {"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/query.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function stringGen(len: number): string;
2
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,CAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAQ9C"}
@@ -0,0 +1,9 @@
1
+ export function stringGen(len) {
2
+ let text = '';
3
+ const charset = 'abcdefghijklmnopqrstuvwxyz0123456789';
4
+ for (let i = 0; i < len; i++) {
5
+ text += charset.charAt(Math.floor(Math.random() * charset.length));
6
+ }
7
+ return text;
8
+ }
9
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS,CAAE,GAAW;IACpC,IAAI,IAAI,GAAG,EAAE,CAAA;IAEb,MAAM,OAAO,GAAG,sCAAsC,CAAA;IAEtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;QAAE,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;KAAE;IAEpG,OAAO,IAAI,CAAA;AACb,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@libp2p/mdns",
3
- "version": "5.1.1",
3
+ "version": "7.0.0",
4
4
  "description": "Node.js libp2p mDNS discovery implementation for peer discovery",
5
5
  "license": "Apache-2.0 OR MIT",
6
6
  "homepage": "https://github.com/libp2p/js-libp2p-mdns#readme",
@@ -135,24 +135,22 @@
135
135
  "docs": "aegir docs"
136
136
  },
137
137
  "dependencies": {
138
- "@libp2p/interface-peer-discovery": "^1.0.1",
139
- "@libp2p/interface-peer-id": "^1.0.4",
140
- "@libp2p/interface-peer-info": "^1.0.3",
141
- "@libp2p/interfaces": "^3.0.3",
142
- "@libp2p/logger": "^2.0.1",
143
- "@libp2p/peer-id": "^1.1.15",
144
- "@multiformats/multiaddr": "^11.0.0",
138
+ "@libp2p/interface-peer-discovery": "^1.0.5",
139
+ "@libp2p/interface-peer-id": "^2.0.1",
140
+ "@libp2p/interface-peer-info": "^1.0.8",
141
+ "@libp2p/interfaces": "^3.3.1",
142
+ "@libp2p/logger": "^2.0.5",
143
+ "@libp2p/peer-id": "^2.0.1",
144
+ "@multiformats/multiaddr": "^11.0.7",
145
145
  "@types/multicast-dns": "^7.2.1",
146
- "multicast-dns": "^7.2.0",
147
- "multiformats": "^10.0.0"
146
+ "multicast-dns": "^7.2.5",
147
+ "dns-packet": "^5.4.0"
148
148
  },
149
149
  "devDependencies": {
150
- "@libp2p/interface-address-manager": "^2.0.0",
151
- "@libp2p/interface-peer-discovery-compliance-tests": "^2.0.0",
152
- "@libp2p/peer-id-factory": "^1.0.18",
153
- "aegir": "^37.5.3",
154
- "delay": "^5.0.0",
155
- "p-defer": "^4.0.0",
150
+ "@libp2p/interface-address-manager": "^2.0.1",
151
+ "@libp2p/interface-peer-discovery-compliance-tests": "^2.0.1",
152
+ "@libp2p/peer-id-factory": "^2.0.0",
153
+ "aegir": "^38.1.2",
156
154
  "p-wait-for": "^5.0.0",
157
155
  "ts-sinon": "^2.0.2"
158
156
  }