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.
- package/README.md +1 -1
- package/dist/src/circuit/index.d.ts +2 -2
- package/dist/src/circuit/index.d.ts.map +1 -1
- package/dist/src/circuit/transport.d.ts +1 -1
- package/dist/src/circuit/transport.d.ts.map +1 -1
- package/dist/src/config.d.ts +0 -1
- package/dist/src/content-routing/index.d.ts +4 -2
- package/dist/src/content-routing/index.d.ts.map +1 -1
- package/dist/src/dht/dht-content-routing.d.ts +30 -0
- package/dist/src/dht/dht-content-routing.d.ts.map +1 -0
- package/dist/src/dht/dht-peer-routing.d.ts +29 -0
- package/dist/src/dht/dht-peer-routing.d.ts.map +1 -0
- package/dist/src/dialer/dial-request.d.ts +4 -4
- package/dist/src/dialer/dial-request.d.ts.map +1 -1
- package/dist/src/dialer/index.d.ts +1 -2
- package/dist/src/dialer/index.d.ts.map +1 -1
- package/dist/src/errors.d.ts +2 -0
- package/dist/src/identify/index.d.ts +1 -1
- package/dist/src/identify/index.d.ts.map +1 -1
- package/dist/src/index.d.ts +4 -5
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/keychain/index.d.ts +1 -1
- package/dist/src/keychain/index.d.ts.map +1 -1
- package/dist/src/metrics/stats.d.ts +0 -1
- package/dist/src/metrics/stats.d.ts.map +1 -1
- package/dist/src/nat-manager.d.ts.map +1 -1
- package/dist/src/peer-routing.d.ts.map +1 -1
- package/dist/src/peer-store/address-book.d.ts +1 -1
- package/dist/src/peer-store/address-book.d.ts.map +1 -1
- package/dist/src/peer-store/index.d.ts +37 -24
- package/dist/src/peer-store/index.d.ts.map +1 -1
- package/dist/src/peer-store/metadata-book.d.ts +3 -2
- package/dist/src/peer-store/metadata-book.d.ts.map +1 -1
- package/dist/src/peer-store/persistent/index.d.ts +1 -2
- package/dist/src/peer-store/persistent/index.d.ts.map +1 -1
- package/dist/src/record/envelope/index.d.ts +23 -0
- package/dist/src/record/envelope/index.d.ts.map +1 -1
- package/dist/src/record/peer-record/index.d.ts +6 -0
- package/dist/src/record/peer-record/index.d.ts.map +1 -1
- package/dist/src/registrar.d.ts +1 -1
- package/dist/src/registrar.d.ts.map +1 -1
- package/dist/src/upgrader.d.ts +1 -1
- package/dist/src/upgrader.d.ts.map +1 -1
- package/package.json +61 -54
- package/src/circuit/auto-relay.js +6 -6
- package/src/circuit/circuit/hop.js +2 -2
- package/src/circuit/circuit/stop.js +1 -1
- package/src/circuit/circuit/utils.js +2 -2
- package/src/circuit/index.js +1 -1
- package/src/circuit/transport.js +1 -1
- package/src/connection-manager/index.js +1 -1
- package/src/content-routing/index.js +35 -9
- package/src/dht/dht-content-routing.js +44 -0
- package/src/dht/dht-peer-routing.js +51 -0
- package/src/dialer/index.js +2 -2
- package/src/errors.js +3 -1
- package/src/get-peer.js +1 -1
- package/src/identify/index.js +9 -9
- package/src/index.js +7 -12
- package/src/insecure/plaintext.js +1 -1
- package/src/keychain/cms.js +4 -4
- package/src/keychain/index.js +12 -12
- package/src/nat-manager.js +2 -2
- package/src/peer-routing.js +3 -2
- package/src/peer-store/address-book.js +1 -1
- package/src/peer-store/metadata-book.js +3 -2
- package/src/peer-store/persistent/index.js +6 -6
- package/src/ping/index.js +1 -1
- package/src/pnet/crypto.js +3 -3
- package/src/pnet/key-generator.js +3 -3
- package/src/record/README.md +1 -1
- package/src/record/envelope/index.js +3 -3
- package/src/transport-manager.js +1 -1
- 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
|
|
305
|
-
this._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
|
}
|
package/src/keychain/cms.js
CHANGED
|
@@ -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
|
package/src/keychain/index.js
CHANGED
|
@@ -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
|
}
|
package/src/nat-manager.js
CHANGED
|
@@ -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
|
}
|
package/src/peer-routing.js
CHANGED
|
@@ -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
|
}
|
|
@@ -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
|
|
package/src/pnet/crypto.js
CHANGED
|
@@ -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
|
}
|
package/src/record/README.md
CHANGED
|
@@ -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')
|
package/src/transport-manager.js
CHANGED
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
|
}
|