libp2p 0.32.3 → 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 (74) hide show
  1. package/README.md +1 -1
  2. package/dist/src/circuit/index.d.ts +2 -2
  3. package/dist/src/circuit/index.d.ts.map +1 -1
  4. package/dist/src/circuit/transport.d.ts +1 -1
  5. package/dist/src/circuit/transport.d.ts.map +1 -1
  6. package/dist/src/config.d.ts +0 -1
  7. package/dist/src/content-routing/index.d.ts +4 -2
  8. package/dist/src/content-routing/index.d.ts.map +1 -1
  9. package/dist/src/dht/dht-content-routing.d.ts +30 -0
  10. package/dist/src/dht/dht-content-routing.d.ts.map +1 -0
  11. package/dist/src/dht/dht-peer-routing.d.ts +29 -0
  12. package/dist/src/dht/dht-peer-routing.d.ts.map +1 -0
  13. package/dist/src/dialer/dial-request.d.ts +4 -4
  14. package/dist/src/dialer/dial-request.d.ts.map +1 -1
  15. package/dist/src/dialer/index.d.ts +1 -2
  16. package/dist/src/dialer/index.d.ts.map +1 -1
  17. package/dist/src/errors.d.ts +2 -0
  18. package/dist/src/identify/index.d.ts +1 -1
  19. package/dist/src/identify/index.d.ts.map +1 -1
  20. package/dist/src/index.d.ts +4 -5
  21. package/dist/src/index.d.ts.map +1 -1
  22. package/dist/src/keychain/index.d.ts +1 -1
  23. package/dist/src/keychain/index.d.ts.map +1 -1
  24. package/dist/src/metrics/stats.d.ts +0 -1
  25. package/dist/src/metrics/stats.d.ts.map +1 -1
  26. package/dist/src/nat-manager.d.ts.map +1 -1
  27. package/dist/src/peer-routing.d.ts.map +1 -1
  28. package/dist/src/peer-store/address-book.d.ts +1 -1
  29. package/dist/src/peer-store/address-book.d.ts.map +1 -1
  30. package/dist/src/peer-store/index.d.ts +37 -24
  31. package/dist/src/peer-store/index.d.ts.map +1 -1
  32. package/dist/src/peer-store/metadata-book.d.ts +3 -2
  33. package/dist/src/peer-store/metadata-book.d.ts.map +1 -1
  34. package/dist/src/peer-store/persistent/index.d.ts +1 -2
  35. package/dist/src/peer-store/persistent/index.d.ts.map +1 -1
  36. package/dist/src/record/envelope/index.d.ts +23 -0
  37. package/dist/src/record/envelope/index.d.ts.map +1 -1
  38. package/dist/src/record/peer-record/index.d.ts +6 -0
  39. package/dist/src/record/peer-record/index.d.ts.map +1 -1
  40. package/dist/src/registrar.d.ts +1 -1
  41. package/dist/src/registrar.d.ts.map +1 -1
  42. package/dist/src/upgrader.d.ts +1 -1
  43. package/dist/src/upgrader.d.ts.map +1 -1
  44. package/package.json +61 -54
  45. package/src/circuit/auto-relay.js +6 -6
  46. package/src/circuit/circuit/hop.js +2 -2
  47. package/src/circuit/circuit/stop.js +1 -1
  48. package/src/circuit/circuit/utils.js +2 -2
  49. package/src/circuit/index.js +1 -1
  50. package/src/circuit/transport.js +1 -1
  51. package/src/connection-manager/index.js +1 -1
  52. package/src/content-routing/index.js +35 -9
  53. package/src/dht/dht-content-routing.js +44 -0
  54. package/src/dht/dht-peer-routing.js +51 -0
  55. package/src/dialer/index.js +2 -2
  56. package/src/errors.js +3 -1
  57. package/src/get-peer.js +1 -1
  58. package/src/identify/index.js +9 -9
  59. package/src/index.js +7 -12
  60. package/src/insecure/plaintext.js +1 -1
  61. package/src/keychain/cms.js +4 -4
  62. package/src/keychain/index.js +12 -12
  63. package/src/nat-manager.js +2 -2
  64. package/src/peer-routing.js +3 -2
  65. package/src/peer-store/address-book.js +1 -1
  66. package/src/peer-store/metadata-book.js +3 -2
  67. package/src/peer-store/persistent/index.js +6 -6
  68. package/src/ping/index.js +1 -1
  69. package/src/pnet/crypto.js +3 -3
  70. package/src/pnet/key-generator.js +3 -3
  71. package/src/record/README.md +1 -1
  72. package/src/record/envelope/index.js +3 -3
  73. package/src/transport-manager.js +1 -1
  74. package/src/upgrader.js +9 -9
package/src/index.js CHANGED
@@ -301,14 +301,9 @@ class Libp2p extends EventEmitter {
301
301
  // dht provided components (peerRouting, contentRouting, dht)
302
302
  if (this._modules.dht) {
303
303
  const DHT = this._modules.dht
304
- // @ts-ignore Object is not constructable
305
- this._dht = new DHT({
304
+ // @ts-ignore TODO: types need fixing - DHT is an `object` which has no `create` method
305
+ this._dht = DHT.create({
306
306
  libp2p: this,
307
- dialer: this.dialer,
308
- peerId: this.peerId,
309
- peerStore: this.peerStore,
310
- registrar: this.registrar,
311
- datastore: this.datastore,
312
307
  ...this._config.dht
313
308
  })
314
309
  }
@@ -363,7 +358,7 @@ class Libp2p extends EventEmitter {
363
358
  await this._onStarting()
364
359
  await this._onDidStart()
365
360
  log('libp2p has started')
366
- } catch (err) {
361
+ } catch (/** @type {any} */ err) {
367
362
  this.emit('error', err)
368
363
  log.error('An error occurred starting libp2p', err)
369
364
  await this.stop()
@@ -408,7 +403,7 @@ class Libp2p extends EventEmitter {
408
403
 
409
404
  ping.unmount(this)
410
405
  this.dialer.destroy()
411
- } catch (err) {
406
+ } catch (/** @type {any} */ err) {
412
407
  if (err) {
413
408
  log.error(err)
414
409
  this.emit('error', err)
@@ -431,7 +426,7 @@ class Libp2p extends EventEmitter {
431
426
 
432
427
  try {
433
428
  await this.keychain.findKeyByName('self')
434
- } catch (err) {
429
+ } catch (/** @type {any} */ err) {
435
430
  await this.keychain.importPeer('self', this.peerId)
436
431
  }
437
432
  }
@@ -624,7 +619,7 @@ class Libp2p extends EventEmitter {
624
619
 
625
620
  // DHT subsystem
626
621
  if (this._config.dht.enabled) {
627
- this._dht && this._dht.start()
622
+ this._dht && await this._dht.start()
628
623
 
629
624
  // TODO: this should be modified once random-walk is used as
630
625
  // the other discovery modules
@@ -698,7 +693,7 @@ class Libp2p extends EventEmitter {
698
693
  log('connecting to discovered peer %s', peerId.toB58String())
699
694
  try {
700
695
  await this.dialer.connectToPeer(peerId)
701
- } catch (err) {
696
+ } catch (/** @type {any} */ err) {
702
697
  log.error(`could not connect to discovered peer ${peerId.toB58String()} with ${err}`)
703
698
  }
704
699
  }
@@ -55,7 +55,7 @@ async function encrypt (localId, conn, remoteId) {
55
55
  let peerId
56
56
  try {
57
57
  peerId = await PeerId.createFromPubKey(id.pubkey.Data)
58
- } catch (err) {
58
+ } catch (/** @type {any} */ err) {
59
59
  log.error(err)
60
60
  throw new InvalidCryptoExchangeError('Remote did not provide its public key')
61
61
  }
@@ -8,8 +8,8 @@ require('node-forge/lib/pbe')
8
8
  const forge = require('node-forge/lib/forge')
9
9
  const { certificateForKey, findAsync } = require('./util')
10
10
  const errcode = require('err-code')
11
- const uint8ArrayFromString = require('uint8arrays/from-string')
12
- const uint8ArrayToString = require('uint8arrays/to-string')
11
+ const { fromString: uint8ArrayFromString } = require('uint8arrays/from-string')
12
+ const { toString: uint8ArrayToString } = require('uint8arrays/to-string')
13
13
 
14
14
  const privates = new WeakMap()
15
15
 
@@ -90,7 +90,7 @@ class CMS {
90
90
  const obj = forge.asn1.fromDer(buf)
91
91
  // @ts-ignore not defined
92
92
  cms = forge.pkcs7.messageFromAsn1(obj)
93
- } catch (err) {
93
+ } catch (/** @type {any} */ err) {
94
94
  throw errcode(new Error('Invalid CMS: ' + err.message), 'ERR_INVALID_CMS')
95
95
  }
96
96
 
@@ -114,7 +114,7 @@ class CMS {
114
114
  try {
115
115
  const key = await this.keychain.findKeyById(recipient.keyId)
116
116
  if (key) return true
117
- } catch (err) {
117
+ } catch (/** @type {any} */ err) {
118
118
  return false
119
119
  }
120
120
  return false
@@ -7,11 +7,11 @@ const log = Object.assign(debug('libp2p:keychain'), {
7
7
  const sanitize = require('sanitize-filename')
8
8
  const mergeOptions = require('merge-options')
9
9
  const crypto = require('libp2p-crypto')
10
- const { Key } = require('interface-datastore')
10
+ const { Key } = require('interface-datastore/key')
11
11
  const CMS = require('./cms')
12
12
  const errcode = require('err-code')
13
- const uint8ArrayToString = require('uint8arrays/to-string')
14
- const uint8ArrayFromString = require('uint8arrays/from-string')
13
+ const { toString: uint8ArrayToString } = require('uint8arrays/to-string')
14
+ const { fromString: uint8ArrayFromString } = require('uint8arrays/from-string')
15
15
 
16
16
  // @ts-ignore node-forge sha512 types not exported
17
17
  require('node-forge/lib/sha512')
@@ -248,7 +248,7 @@ class Keychain {
248
248
  batch.put(DsInfoName(name), uint8ArrayFromString(JSON.stringify(keyInfo)))
249
249
 
250
250
  await batch.commit()
251
- } catch (err) {
251
+ } catch (/** @type {any} */ err) {
252
252
  return throwDelayed(err)
253
253
  }
254
254
 
@@ -284,7 +284,7 @@ class Keychain {
284
284
  try {
285
285
  const keys = await this.listKeys()
286
286
  return keys.find((k) => k.id === id)
287
- } catch (err) {
287
+ } catch (/** @type {any} */ err) {
288
288
  return throwDelayed(err)
289
289
  }
290
290
  }
@@ -304,7 +304,7 @@ class Keychain {
304
304
  try {
305
305
  const res = await this.store.get(dsname)
306
306
  return JSON.parse(uint8ArrayToString(res))
307
- } catch (err) {
307
+ } catch (/** @type {any} */ err) {
308
308
  return throwDelayed(errcode(new Error(`Key '${name}' does not exist. ${err.message}`), 'ERR_KEY_NOT_FOUND'))
309
309
  }
310
310
  }
@@ -365,7 +365,7 @@ class Keychain {
365
365
  batch.delete(oldInfoName)
366
366
  await batch.commit()
367
367
  return keyInfo
368
- } catch (err) {
368
+ } catch (/** @type {any} */ err) {
369
369
  return throwDelayed(err)
370
370
  }
371
371
  }
@@ -393,7 +393,7 @@ class Keychain {
393
393
  const dek = privates.get(this).dek
394
394
  const privateKey = await crypto.keys.import(pem, dek)
395
395
  return privateKey.export(password)
396
- } catch (err) {
396
+ } catch (/** @type {any} */ err) {
397
397
  return throwDelayed(err)
398
398
  }
399
399
  }
@@ -421,7 +421,7 @@ class Keychain {
421
421
  let privateKey
422
422
  try {
423
423
  privateKey = await crypto.keys.import(pem, password)
424
- } catch (err) {
424
+ } catch (/** @type {any} */ err) {
425
425
  return throwDelayed(errcode(new Error('Cannot read the key, most likely the password is wrong'), 'ERR_CANNOT_READ_KEY'))
426
426
  }
427
427
 
@@ -431,7 +431,7 @@ class Keychain {
431
431
  /** @type {string} */
432
432
  const dek = privates.get(this).dek
433
433
  pem = await privateKey.export(dek)
434
- } catch (err) {
434
+ } catch (/** @type {any} */ err) {
435
435
  return throwDelayed(err)
436
436
  }
437
437
 
@@ -482,7 +482,7 @@ class Keychain {
482
482
  batch.put(DsInfoName(name), uint8ArrayFromString(JSON.stringify(keyInfo)))
483
483
  await batch.commit()
484
484
  return keyInfo
485
- } catch (err) {
485
+ } catch (/** @type {any} */ err) {
486
486
  return throwDelayed(err)
487
487
  }
488
488
  }
@@ -502,7 +502,7 @@ class Keychain {
502
502
  const dsname = DsName(name)
503
503
  const res = await this.store.get(dsname)
504
504
  return uint8ArrayToString(res)
505
- } catch (err) {
505
+ } catch (/** @type {any} */ err) {
506
506
  return throwDelayed(errcode(new Error(`Key '${name}' does not exist. ${err.message}`), 'ERR_KEY_NOT_FOUND'))
507
507
  }
508
508
  }
@@ -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
  }
@@ -5,7 +5,7 @@ const log = Object.assign(debug('libp2p:peer-store:proto-book'), {
5
5
  error: debug('libp2p:peer-store:proto-book:err')
6
6
  })
7
7
  const errcode = require('err-code')
8
- const uint8ArrayEquals = require('uint8arrays/equals')
8
+ const { equals: uint8ArrayEquals } = require('uint8arrays/equals')
9
9
 
10
10
  const PeerId = require('peer-id')
11
11
 
@@ -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()
@@ -4,7 +4,7 @@ const debug = require('debug')
4
4
  const log = Object.assign(debug('libp2p:persistent-peer-store'), {
5
5
  error: debug('libp2p:persistent-peer-store:err')
6
6
  })
7
- const { Key } = require('interface-datastore')
7
+ const { Key } = require('interface-datastore/key')
8
8
  const { Multiaddr } = require('multiaddr')
9
9
  const PeerId = require('peer-id')
10
10
  const { base32 } = require('multiformats/bases/base32')
@@ -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
  }
package/src/ping/index.js CHANGED
@@ -11,7 +11,7 @@ const { pipe } = require('it-pipe')
11
11
  // @ts-ignore it-buffer has no types exported
12
12
  const { toBuffer } = require('it-buffer')
13
13
  const { collect, take } = require('streaming-iterables')
14
- const equals = require('uint8arrays/equals')
14
+ const { equals } = require('uint8arrays/equals')
15
15
 
16
16
  const { PROTOCOL_NAME, PING_LENGTH, PROTOCOL_VERSION } = require('./constants')
17
17
 
@@ -10,8 +10,8 @@ const Errors = require('./errors')
10
10
  // @ts-ignore xsalsa20 has no types exported
11
11
  const xsalsa20 = require('xsalsa20')
12
12
  const KEY_LENGTH = require('./key-generator').KEY_LENGTH
13
- const uint8ArrayFromString = require('uint8arrays/from-string')
14
- const uint8ArrayToString = require('uint8arrays/to-string')
13
+ const { fromString: uint8ArrayFromString } = require('uint8arrays/from-string')
14
+ const { toString: uint8ArrayToString } = require('uint8arrays/to-string')
15
15
 
16
16
  /**
17
17
  * Creates a stream iterable to encrypt messages in a private network
@@ -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
  }
@@ -2,8 +2,8 @@
2
2
 
3
3
  const crypto = require('libp2p-crypto')
4
4
  const KEY_LENGTH = 32
5
- const uint8ArrayToString = require('uint8arrays/to-string')
6
- const uint8ArrayFromString = require('uint8arrays/from-string')
5
+ const { toString: uint8ArrayToString } = require('uint8arrays/to-string')
6
+ const { fromString: uint8ArrayFromString } = require('uint8arrays/from-string')
7
7
 
8
8
  /**
9
9
  * Generates a PSK that can be used in a libp2p-pnet private network
@@ -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
  }
@@ -17,7 +17,7 @@ You can read further about the envelope in [libp2p/specs#217](https://github.com
17
17
  ```js
18
18
  // interface-record implementation example with the "libp2p-example" namespace
19
19
  const Record = require('libp2p-interfaces/src/record')
20
- const fromString = require('uint8arrays/from-string')
20
+ const { fromString } = require('uint8arrays/from-string')
21
21
 
22
22
  class ExampleRecord extends Record {
23
23
  constructor () {
@@ -1,13 +1,13 @@
1
1
  'use strict'
2
2
 
3
3
  const errCode = require('err-code')
4
- const uint8arraysConcat = require('uint8arrays/concat')
5
- const uint8arraysFromString = require('uint8arrays/from-string')
4
+ const { concat: uint8arraysConcat } = require('uint8arrays/concat')
5
+ const { fromString: uint8arraysFromString } = require('uint8arrays/from-string')
6
6
  // @ts-ignore libp2p-crypto does not support types
7
7
  const cryptoKeys = require('libp2p-crypto/src/keys')
8
8
  const PeerId = require('peer-id')
9
9
  const varint = require('varint')
10
- const uint8arraysEquals = require('uint8arrays/equals')
10
+ const { equals: uint8arraysEquals } = require('uint8arrays/equals')
11
11
 
12
12
  const { codes } = require('../../errors')
13
13
  const { Envelope: Protobuf } = require('./envelope')
@@ -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
  }