libp2p 0.33.0 → 0.34.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 (67) hide show
  1. package/dist/src/circuit/index.d.ts +2 -2
  2. package/dist/src/circuit/index.d.ts.map +1 -1
  3. package/dist/src/circuit/transport.d.ts +1 -1
  4. package/dist/src/circuit/transport.d.ts.map +1 -1
  5. package/dist/src/config.d.ts +0 -1
  6. package/dist/src/content-routing/index.d.ts +4 -2
  7. package/dist/src/content-routing/index.d.ts.map +1 -1
  8. package/dist/src/dht/dht-content-routing.d.ts +30 -0
  9. package/dist/src/dht/dht-content-routing.d.ts.map +1 -0
  10. package/dist/src/dht/dht-peer-routing.d.ts +29 -0
  11. package/dist/src/dht/dht-peer-routing.d.ts.map +1 -0
  12. package/dist/src/dialer/dial-request.d.ts +4 -4
  13. package/dist/src/dialer/dial-request.d.ts.map +1 -1
  14. package/dist/src/dialer/index.d.ts +1 -2
  15. package/dist/src/dialer/index.d.ts.map +1 -1
  16. package/dist/src/errors.d.ts +2 -0
  17. package/dist/src/identify/index.d.ts +1 -1
  18. package/dist/src/identify/index.d.ts.map +1 -1
  19. package/dist/src/index.d.ts +1 -2
  20. package/dist/src/index.d.ts.map +1 -1
  21. package/dist/src/metrics/stats.d.ts +0 -1
  22. package/dist/src/metrics/stats.d.ts.map +1 -1
  23. package/dist/src/nat-manager.d.ts.map +1 -1
  24. package/dist/src/peer-routing.d.ts.map +1 -1
  25. package/dist/src/peer-store/address-book.d.ts +1 -1
  26. package/dist/src/peer-store/address-book.d.ts.map +1 -1
  27. package/dist/src/peer-store/index.d.ts +37 -24
  28. package/dist/src/peer-store/index.d.ts.map +1 -1
  29. package/dist/src/peer-store/metadata-book.d.ts +3 -2
  30. package/dist/src/peer-store/metadata-book.d.ts.map +1 -1
  31. package/dist/src/peer-store/persistent/index.d.ts +0 -1
  32. package/dist/src/record/envelope/index.d.ts +23 -0
  33. package/dist/src/record/envelope/index.d.ts.map +1 -1
  34. package/dist/src/record/peer-record/index.d.ts +6 -0
  35. package/dist/src/record/peer-record/index.d.ts.map +1 -1
  36. package/dist/src/registrar.d.ts +1 -1
  37. package/dist/src/registrar.d.ts.map +1 -1
  38. package/dist/src/upgrader.d.ts +1 -1
  39. package/dist/src/upgrader.d.ts.map +1 -1
  40. package/package.json +15 -10
  41. package/src/circuit/auto-relay.js +4 -4
  42. package/src/circuit/circuit/hop.js +2 -2
  43. package/src/circuit/circuit/stop.js +1 -1
  44. package/src/circuit/circuit/utils.js +2 -2
  45. package/src/circuit/index.js +1 -1
  46. package/src/circuit/transport.js +1 -1
  47. package/src/connection-manager/index.js +1 -1
  48. package/src/content-routing/index.js +35 -9
  49. package/src/dht/dht-content-routing.js +44 -0
  50. package/src/dht/dht-peer-routing.js +51 -0
  51. package/src/dialer/index.js +2 -2
  52. package/src/errors.js +3 -1
  53. package/src/get-peer.js +1 -1
  54. package/src/identify/index.js +8 -8
  55. package/src/index.js +7 -12
  56. package/src/insecure/plaintext.js +1 -1
  57. package/src/keychain/cms.js +2 -2
  58. package/src/keychain/index.js +9 -9
  59. package/src/nat-manager.js +2 -2
  60. package/src/peer-routing.js +3 -2
  61. package/src/peer-store/address-book.js +1 -1
  62. package/src/peer-store/metadata-book.js +2 -1
  63. package/src/peer-store/persistent/index.js +5 -5
  64. package/src/pnet/crypto.js +1 -1
  65. package/src/pnet/key-generator.js +1 -1
  66. package/src/transport-manager.js +1 -1
  67. package/src/upgrader.js +9 -9
@@ -10,7 +10,6 @@ const log = Object.assign(debug('libp2p:nat'), {
10
10
  })
11
11
  const { isBrowser } = require('wherearewe')
12
12
  const retry = require('p-retry')
13
- // @ts-ignore private-api does not export types
14
13
  const isPrivateIp = require('private-ip')
15
14
  const pkg = require('../package.json')
16
15
  const errcode = require('err-code')
@@ -115,6 +114,7 @@ class NatManager {
115
114
  const client = this._getClient()
116
115
  const publicIp = this._externalIp || await client.externalIp()
117
116
 
117
+ // @ts-expect-error types are wrong
118
118
  if (isPrivateIp(publicIp)) {
119
119
  throw new Error(`${publicIp} is private - please set config.nat.externalIp to an externally routable IP or ensure you are not behind a double NAT`)
120
120
  }
@@ -188,7 +188,7 @@ class NatManager {
188
188
  try {
189
189
  await this._client.destroy()
190
190
  this._client = null
191
- } catch (err) {
191
+ } catch (/** @type {any} */ err) {
192
192
  log.error(err)
193
193
  }
194
194
  }
@@ -21,6 +21,7 @@ const {
21
21
  clearDelayedInterval
22
22
  // @ts-ignore module with no types
23
23
  } = require('set-delayed-interval')
24
+ const { DHTPeerRouting } = require('./dht/dht-peer-routing')
24
25
 
25
26
  /**
26
27
  * @typedef {import('peer-id')} PeerId
@@ -51,7 +52,7 @@ class PeerRouting {
51
52
 
52
53
  // If we have the dht, add it to the available peer routers
53
54
  if (libp2p._dht && libp2p._config.dht.enabled) {
54
- this._routers.push(libp2p._dht)
55
+ this._routers.push(new DHTPeerRouting(libp2p._dht))
55
56
  }
56
57
 
57
58
  this._refreshManagerOptions = libp2p._options.peerRouting.refreshManager
@@ -79,7 +80,7 @@ class PeerRouting {
79
80
  try {
80
81
  // nb getClosestPeers adds the addresses to the address book
81
82
  await drain(this.getClosestPeers(this._peerId.id))
82
- } catch (err) {
83
+ } catch (/** @type {any} */ err) {
83
84
  log.error(err)
84
85
  }
85
86
  }
@@ -83,7 +83,7 @@ class AddressBook extends Book {
83
83
  let peerRecord
84
84
  try {
85
85
  peerRecord = PeerRecord.createFromProtobuf(envelope.payload)
86
- } catch (err) {
86
+ } catch (/** @type {any} */ err) {
87
87
  log.error('invalid peer record received')
88
88
  return false
89
89
  }
@@ -80,10 +80,11 @@ class MetadataBook extends Book {
80
80
  /**
81
81
  * Set data into the datastructure
82
82
  *
83
- * @override
84
83
  * @param {PeerId} peerId
85
84
  * @param {string} key
86
85
  * @param {Uint8Array} value
86
+ * @param {object} [opts]
87
+ * @param {boolean} [opts.emit]
87
88
  */
88
89
  _setValue (peerId, key, value, { emit = true } = {}) {
89
90
  const id = peerId.toB58String()
@@ -249,7 +249,7 @@ class PersistentPeerStore extends PeerStore {
249
249
  }).finish()
250
250
 
251
251
  batch.put(key, encodedData)
252
- } catch (err) {
252
+ } catch (/** @type {any} */ err) {
253
253
  log.error(err)
254
254
  }
255
255
  }
@@ -275,7 +275,7 @@ class PersistentPeerStore extends PeerStore {
275
275
  const encodedData = peerId.marshalPubKey()
276
276
 
277
277
  batch.put(key, encodedData)
278
- } catch (err) {
278
+ } catch (/** @type {any} */ err) {
279
279
  log.error(err)
280
280
  }
281
281
  }
@@ -302,7 +302,7 @@ class PersistentPeerStore extends PeerStore {
302
302
  batch.delete(key)
303
303
  }
304
304
  })
305
- } catch (err) {
305
+ } catch (/** @type {any} */ err) {
306
306
  log.error(err)
307
307
  }
308
308
  }
@@ -330,7 +330,7 @@ class PersistentPeerStore extends PeerStore {
330
330
  const encodedData = Protocols.encode({ protocols }).finish()
331
331
 
332
332
  batch.put(key, encodedData)
333
- } catch (err) {
333
+ } catch (/** @type {any} */ err) {
334
334
  log.error(err)
335
335
  }
336
336
  }
@@ -399,7 +399,7 @@ class PersistentPeerStore extends PeerStore {
399
399
  default:
400
400
  log('invalid data persisted for: ', key.toString())
401
401
  }
402
- } catch (err) {
402
+ } catch (/** @type {any} */ err) {
403
403
  log.error(err)
404
404
  }
405
405
  }
@@ -77,7 +77,7 @@ module.exports.decodeV1PSK = (pskBuffer) => {
77
77
  codecName: codec,
78
78
  psk: psk
79
79
  }
80
- } catch (err) {
80
+ } catch (/** @type {any} */ err) {
81
81
  log.error(err)
82
82
  throw new Error(Errors.INVALID_PSK)
83
83
  }
@@ -28,6 +28,6 @@ try {
28
28
  // @ts-ignore
29
29
  generate(process.stdout)
30
30
  }
31
- } catch (error) {
31
+ } catch (/** @type {any} */ error) {
32
32
 
33
33
  }
@@ -109,7 +109,7 @@ class TransportManager {
109
109
 
110
110
  try {
111
111
  return await transport.dial(ma, options)
112
- } catch (err) {
112
+ } catch (/** @type {any} */ err) {
113
113
  if (!err.code) err.code = codes.ERR_TRANSPORT_DIAL_FAILED
114
114
  throw err
115
115
  }
package/src/upgrader.js CHANGED
@@ -106,7 +106,7 @@ class Upgrader {
106
106
  } else {
107
107
  upgradedConn = encryptedConn
108
108
  }
109
- } catch (err) {
109
+ } catch (/** @type {any} */ err) {
110
110
  log.error('Failed to upgrade inbound connection', err)
111
111
  await maConn.close(err)
112
112
  throw err
@@ -181,7 +181,7 @@ class Upgrader {
181
181
  } else {
182
182
  upgradedConn = encryptedConn
183
183
  }
184
- } catch (err) {
184
+ } catch (/** @type {any} */ err) {
185
185
  log.error('Failed to upgrade outbound connection', err)
186
186
  await maConn.close(err)
187
187
  throw err
@@ -245,7 +245,7 @@ class Upgrader {
245
245
  if (this.metrics) this.metrics.trackStream({ stream, remotePeer, protocol })
246
246
  connection.addStream(muxedStream, { protocol })
247
247
  this._onStream({ connection, stream: { ...muxedStream, ...stream }, protocol })
248
- } catch (err) {
248
+ } catch (/** @type {any} */ err) {
249
249
  log.error(err)
250
250
  }
251
251
  },
@@ -263,7 +263,7 @@ class Upgrader {
263
263
  const { stream, protocol } = await mss.select(protocols)
264
264
  if (this.metrics) this.metrics.trackStream({ stream, remotePeer, protocol })
265
265
  return { stream: { ...muxedStream, ...stream }, protocol }
266
- } catch (err) {
266
+ } catch (/** @type {any} */ err) {
267
267
  log.error('could not create new stream', err)
268
268
  throw errCode(err, codes.ERR_UNSUPPORTED_PROTOCOL)
269
269
  }
@@ -283,7 +283,7 @@ class Upgrader {
283
283
  if (connection.stat.status === 'open') {
284
284
  await connection.close()
285
285
  }
286
- } catch (err) {
286
+ } catch (/** @type {any} */ err) {
287
287
  log.error(err)
288
288
  } finally {
289
289
  this.onConnectionEnd(connection)
@@ -371,7 +371,7 @@ class Upgrader {
371
371
  ...await crypto.secureInbound(localPeer, stream),
372
372
  protocol
373
373
  }
374
- } catch (err) {
374
+ } catch (/** @type {any} */ err) {
375
375
  throw errCode(err, codes.ERR_ENCRYPTION_FAILED)
376
376
  }
377
377
  }
@@ -406,7 +406,7 @@ class Upgrader {
406
406
  ...await crypto.secureOutbound(localPeer, stream, remotePeerId),
407
407
  protocol
408
408
  }
409
- } catch (err) {
409
+ } catch (/** @type {any} */ err) {
410
410
  throw errCode(err, codes.ERR_ENCRYPTION_FAILED)
411
411
  }
412
412
  }
@@ -430,7 +430,7 @@ class Upgrader {
430
430
  log('%s selected as muxer protocol', protocol)
431
431
  const Muxer = muxers.get(protocol)
432
432
  return { stream, Muxer }
433
- } catch (err) {
433
+ } catch (/** @type {any} */ err) {
434
434
  throw errCode(err, codes.ERR_MUXER_UNAVAILABLE)
435
435
  }
436
436
  }
@@ -453,7 +453,7 @@ class Upgrader {
453
453
  const { stream, protocol } = await listener.handle(protocols)
454
454
  const Muxer = muxers.get(protocol)
455
455
  return { stream, Muxer }
456
- } catch (err) {
456
+ } catch (/** @type {any} */ err) {
457
457
  throw errCode(err, codes.ERR_MUXER_UNAVAILABLE)
458
458
  }
459
459
  }