libp2p 0.42.2-593deefe → 0.42.2-5e63ee2d

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 (228) hide show
  1. package/dist/index.min.js +30 -30
  2. package/dist/src/address-manager/index.d.ts +1 -10
  3. package/dist/src/address-manager/index.d.ts.map +1 -1
  4. package/dist/src/address-manager/index.js +46 -29
  5. package/dist/src/address-manager/index.js.map +1 -1
  6. package/dist/src/autonat/constants.d.ts +4 -0
  7. package/dist/src/autonat/constants.d.ts.map +1 -0
  8. package/dist/src/autonat/constants.js +4 -0
  9. package/dist/src/autonat/constants.js.map +1 -0
  10. package/dist/src/autonat/index.d.ts +64 -0
  11. package/dist/src/autonat/index.d.ts.map +1 -0
  12. package/dist/src/autonat/index.js +417 -0
  13. package/dist/src/autonat/index.js.map +1 -0
  14. package/dist/src/autonat/pb/index.d.ts +57 -0
  15. package/dist/src/autonat/pb/index.d.ts.map +1 -0
  16. package/dist/src/autonat/pb/index.js +250 -0
  17. package/dist/src/autonat/pb/index.js.map +1 -0
  18. package/dist/src/circuit/constants.d.ts +29 -3
  19. package/dist/src/circuit/constants.d.ts.map +1 -1
  20. package/dist/src/circuit/constants.js +32 -5
  21. package/dist/src/circuit/constants.js.map +1 -1
  22. package/dist/src/circuit/index.d.ts +16 -61
  23. package/dist/src/circuit/index.d.ts.map +1 -1
  24. package/dist/src/circuit/index.js +2 -1
  25. package/dist/src/circuit/index.js.map +1 -1
  26. package/dist/src/circuit/server/advert-service.d.ts +43 -0
  27. package/dist/src/circuit/server/advert-service.d.ts.map +1 -0
  28. package/dist/src/circuit/server/advert-service.js +69 -0
  29. package/dist/src/circuit/server/advert-service.js.map +1 -0
  30. package/dist/src/circuit/server/index.d.ts +60 -0
  31. package/dist/src/circuit/server/index.d.ts.map +1 -0
  32. package/dist/src/circuit/server/index.js +287 -0
  33. package/dist/src/circuit/server/index.js.map +1 -0
  34. package/dist/src/circuit/{reservation-store.d.ts → server/reservation-store.d.ts} +17 -10
  35. package/dist/src/circuit/server/reservation-store.d.ts.map +1 -0
  36. package/dist/src/circuit/server/reservation-store.js +57 -0
  37. package/dist/src/circuit/server/reservation-store.js.map +1 -0
  38. package/dist/src/circuit/server/reservation-voucher.d.ts.map +1 -0
  39. package/dist/src/circuit/{reservation-voucher.js → server/reservation-voucher.js} +1 -1
  40. package/dist/src/circuit/server/reservation-voucher.js.map +1 -0
  41. package/dist/src/circuit/transport/discovery.d.ts +45 -0
  42. package/dist/src/circuit/transport/discovery.d.ts.map +1 -0
  43. package/dist/src/circuit/transport/discovery.js +82 -0
  44. package/dist/src/circuit/transport/discovery.js.map +1 -0
  45. package/dist/src/circuit/transport/index.d.ts +33 -0
  46. package/dist/src/circuit/transport/index.d.ts.map +1 -0
  47. package/dist/src/circuit/transport/index.js +225 -0
  48. package/dist/src/circuit/transport/index.js.map +1 -0
  49. package/dist/src/circuit/transport/listener.d.ts +9 -0
  50. package/dist/src/circuit/transport/listener.d.ts.map +1 -0
  51. package/dist/src/circuit/transport/listener.js +76 -0
  52. package/dist/src/circuit/transport/listener.js.map +1 -0
  53. package/dist/src/circuit/transport/reservation-store.d.ts +60 -0
  54. package/dist/src/circuit/transport/reservation-store.d.ts.map +1 -0
  55. package/dist/src/circuit/transport/reservation-store.js +165 -0
  56. package/dist/src/circuit/transport/reservation-store.js.map +1 -0
  57. package/dist/src/circuit/utils.d.ts +4 -2
  58. package/dist/src/circuit/utils.d.ts.map +1 -1
  59. package/dist/src/circuit/utils.js +75 -102
  60. package/dist/src/circuit/utils.js.map +1 -1
  61. package/dist/src/components.d.ts +2 -1
  62. package/dist/src/components.d.ts.map +1 -1
  63. package/dist/src/components.js.map +1 -1
  64. package/dist/src/config.d.ts.map +1 -1
  65. package/dist/src/config.js +17 -20
  66. package/dist/src/config.js.map +1 -1
  67. package/dist/src/connection/index.d.ts +2 -2
  68. package/dist/src/connection/index.d.ts.map +1 -1
  69. package/dist/src/connection/index.js +1 -1
  70. package/dist/src/connection/index.js.map +1 -1
  71. package/dist/src/connection-manager/auto-dialler.d.ts +0 -4
  72. package/dist/src/connection-manager/auto-dialler.d.ts.map +1 -1
  73. package/dist/src/connection-manager/auto-dialler.js +0 -9
  74. package/dist/src/connection-manager/auto-dialler.js.map +1 -1
  75. package/dist/src/connection-manager/dialer/dial-request.js +1 -1
  76. package/dist/src/connection-manager/dialer/dial-request.js.map +1 -1
  77. package/dist/src/connection-manager/dialer/index.d.ts +2 -1
  78. package/dist/src/connection-manager/dialer/index.d.ts.map +1 -1
  79. package/dist/src/connection-manager/dialer/index.js +3 -3
  80. package/dist/src/connection-manager/dialer/index.js.map +1 -1
  81. package/dist/src/connection-manager/index.d.ts +0 -4
  82. package/dist/src/connection-manager/index.d.ts.map +1 -1
  83. package/dist/src/connection-manager/index.js +1 -1
  84. package/dist/src/connection-manager/index.js.map +1 -1
  85. package/dist/src/connection-manager/latency-monitor.d.ts.map +1 -1
  86. package/dist/src/connection-manager/latency-monitor.js +1 -1
  87. package/dist/src/connection-manager/latency-monitor.js.map +1 -1
  88. package/dist/src/connection-manager/visibility-change-emitter.d.ts.map +1 -1
  89. package/dist/src/content-routing/index.d.ts +6 -4
  90. package/dist/src/content-routing/index.d.ts.map +1 -1
  91. package/dist/src/content-routing/index.js +1 -1
  92. package/dist/src/content-routing/index.js.map +1 -1
  93. package/dist/src/content-routing/utils.d.ts +3 -3
  94. package/dist/src/content-routing/utils.d.ts.map +1 -1
  95. package/dist/src/dht/dht-content-routing.d.ts +2 -1
  96. package/dist/src/dht/dht-content-routing.d.ts.map +1 -1
  97. package/dist/src/dht/dht-content-routing.js.map +1 -1
  98. package/dist/src/dht/dht-peer-routing.d.ts +3 -2
  99. package/dist/src/dht/dht-peer-routing.d.ts.map +1 -1
  100. package/dist/src/dht/dht-peer-routing.js.map +1 -1
  101. package/dist/src/dht/dummy-dht.d.ts +1 -1
  102. package/dist/src/dht/dummy-dht.d.ts.map +1 -1
  103. package/dist/src/fetch/index.d.ts.map +1 -1
  104. package/dist/src/identify/index.d.ts +3 -1
  105. package/dist/src/identify/index.d.ts.map +1 -1
  106. package/dist/src/identify/index.js +12 -7
  107. package/dist/src/identify/index.js.map +1 -1
  108. package/dist/src/index.d.ts +13 -7
  109. package/dist/src/index.d.ts.map +1 -1
  110. package/dist/src/index.js.map +1 -1
  111. package/dist/src/insecure/index.d.ts.map +1 -1
  112. package/dist/src/insecure/index.js.map +1 -1
  113. package/dist/src/libp2p.d.ts +6 -4
  114. package/dist/src/libp2p.d.ts.map +1 -1
  115. package/dist/src/libp2p.js +19 -28
  116. package/dist/src/libp2p.js.map +1 -1
  117. package/dist/src/nat-manager.d.ts.map +1 -1
  118. package/dist/src/nat-manager.js +3 -1
  119. package/dist/src/nat-manager.js.map +1 -1
  120. package/dist/src/peer-record-updater.d.ts.map +1 -1
  121. package/dist/src/peer-routing.d.ts.map +1 -1
  122. package/dist/src/ping/index.d.ts.map +1 -1
  123. package/dist/src/pnet/crypto.d.ts +1 -1
  124. package/dist/src/pnet/crypto.d.ts.map +1 -1
  125. package/dist/src/pnet/crypto.js +1 -1
  126. package/dist/src/pnet/crypto.js.map +1 -1
  127. package/dist/src/pnet/key-generator.d.ts.map +1 -1
  128. package/dist/src/registrar.d.ts.map +1 -1
  129. package/dist/src/transport-manager.d.ts.map +1 -1
  130. package/dist/src/transport-manager.js +1 -1
  131. package/dist/src/transport-manager.js.map +1 -1
  132. package/dist/src/upgrader.d.ts +2 -1
  133. package/dist/src/upgrader.d.ts.map +1 -1
  134. package/dist/src/upgrader.js +19 -14
  135. package/dist/src/upgrader.js.map +1 -1
  136. package/package.json +23 -18
  137. package/src/address-manager/index.ts +62 -35
  138. package/src/autonat/constants.ts +4 -0
  139. package/src/autonat/index.ts +567 -0
  140. package/src/autonat/pb/index.proto +35 -0
  141. package/src/autonat/pb/index.ts +320 -0
  142. package/src/circuit/constants.ts +40 -5
  143. package/src/circuit/index.ts +17 -67
  144. package/src/circuit/server/advert-service.ts +108 -0
  145. package/src/circuit/server/index.ts +421 -0
  146. package/src/circuit/server/reservation-store.ts +111 -0
  147. package/src/circuit/{reservation-voucher.ts → server/reservation-voucher.ts} +3 -3
  148. package/src/circuit/transport/discovery.ts +127 -0
  149. package/src/circuit/transport/index.ts +325 -0
  150. package/src/circuit/transport/listener.ts +99 -0
  151. package/src/circuit/transport/reservation-store.ts +249 -0
  152. package/src/circuit/utils.ts +78 -115
  153. package/src/components.ts +9 -8
  154. package/src/config.ts +17 -20
  155. package/src/connection/index.ts +7 -7
  156. package/src/connection-manager/auto-dialler.ts +4 -20
  157. package/src/connection-manager/dialer/dial-request.ts +1 -1
  158. package/src/connection-manager/dialer/index.ts +10 -9
  159. package/src/connection-manager/index.ts +14 -19
  160. package/src/connection-manager/latency-monitor.ts +9 -9
  161. package/src/connection-manager/visibility-change-emitter.ts +4 -4
  162. package/src/content-routing/index.ts +10 -8
  163. package/src/content-routing/utils.ts +3 -3
  164. package/src/dht/dht-content-routing.ts +3 -2
  165. package/src/dht/dht-peer-routing.ts +3 -2
  166. package/src/dht/dummy-dht.ts +1 -1
  167. package/src/fetch/index.ts +7 -7
  168. package/src/identify/index.ts +22 -17
  169. package/src/index.ts +14 -7
  170. package/src/insecure/index.ts +2 -1
  171. package/src/libp2p.ts +33 -41
  172. package/src/nat-manager.ts +9 -7
  173. package/src/peer-record-updater.ts +4 -4
  174. package/src/peer-routing.ts +4 -4
  175. package/src/ping/index.ts +4 -4
  176. package/src/pnet/crypto.ts +3 -3
  177. package/src/pnet/key-generator.ts +1 -1
  178. package/src/registrar.ts +8 -8
  179. package/src/transport-manager.ts +10 -10
  180. package/src/upgrader.ts +20 -19
  181. package/src/version.ts +1 -1
  182. package/dist/src/circuit/client.d.ts +0 -81
  183. package/dist/src/circuit/client.d.ts.map +0 -1
  184. package/dist/src/circuit/client.js +0 -285
  185. package/dist/src/circuit/client.js.map +0 -1
  186. package/dist/src/circuit/hop.d.ts +0 -23
  187. package/dist/src/circuit/hop.d.ts.map +0 -1
  188. package/dist/src/circuit/hop.js +0 -167
  189. package/dist/src/circuit/hop.js.map +0 -1
  190. package/dist/src/circuit/interfaces.d.ts +0 -27
  191. package/dist/src/circuit/interfaces.d.ts.map +0 -1
  192. package/dist/src/circuit/interfaces.js +0 -2
  193. package/dist/src/circuit/interfaces.js.map +0 -1
  194. package/dist/src/circuit/listener.d.ts +0 -9
  195. package/dist/src/circuit/listener.d.ts.map +0 -1
  196. package/dist/src/circuit/listener.js +0 -62
  197. package/dist/src/circuit/listener.js.map +0 -1
  198. package/dist/src/circuit/multicodec.d.ts +0 -3
  199. package/dist/src/circuit/multicodec.d.ts.map +0 -1
  200. package/dist/src/circuit/multicodec.js +0 -3
  201. package/dist/src/circuit/multicodec.js.map +0 -1
  202. package/dist/src/circuit/relay.d.ts +0 -34
  203. package/dist/src/circuit/relay.d.ts.map +0 -1
  204. package/dist/src/circuit/relay.js +0 -61
  205. package/dist/src/circuit/relay.js.map +0 -1
  206. package/dist/src/circuit/reservation-store.d.ts.map +0 -1
  207. package/dist/src/circuit/reservation-store.js +0 -59
  208. package/dist/src/circuit/reservation-store.js.map +0 -1
  209. package/dist/src/circuit/reservation-voucher.d.ts.map +0 -1
  210. package/dist/src/circuit/reservation-voucher.js.map +0 -1
  211. package/dist/src/circuit/stop.d.ts +0 -19
  212. package/dist/src/circuit/stop.d.ts.map +0 -1
  213. package/dist/src/circuit/stop.js +0 -67
  214. package/dist/src/circuit/stop.js.map +0 -1
  215. package/dist/src/circuit/transport.d.ts +0 -66
  216. package/dist/src/circuit/transport.d.ts.map +0 -1
  217. package/dist/src/circuit/transport.js +0 -238
  218. package/dist/src/circuit/transport.js.map +0 -1
  219. package/src/circuit/client.ts +0 -381
  220. package/src/circuit/hop.ts +0 -210
  221. package/src/circuit/interfaces.ts +0 -28
  222. package/src/circuit/listener.ts +0 -83
  223. package/src/circuit/multicodec.ts +0 -3
  224. package/src/circuit/relay.ts +0 -87
  225. package/src/circuit/reservation-store.ts +0 -106
  226. package/src/circuit/stop.ts +0 -92
  227. package/src/circuit/transport.ts +0 -313
  228. /package/dist/src/circuit/{reservation-voucher.d.ts → server/reservation-voucher.d.ts} +0 -0
package/src/libp2p.ts CHANGED
@@ -1,4 +1,3 @@
1
- import { RelayReservationManager } from './circuit/client.js'
2
1
  import { logger } from '@libp2p/logger'
3
2
  import type { AbortOptions } from '@libp2p/interfaces'
4
3
  import { EventEmitter, CustomEvent } from '@libp2p/interfaces/events'
@@ -11,8 +10,6 @@ import { codes } from './errors.js'
11
10
  import { DefaultAddressManager } from './address-manager/index.js'
12
11
  import { DefaultConnectionManager } from './connection-manager/index.js'
13
12
  import { AutoDialler } from './connection-manager/auto-dialler.js'
14
- import { Circuit } from './circuit/transport.js'
15
- import { Relay } from './circuit/index.js'
16
13
  import { DefaultKeyChain } from '@libp2p/keychain'
17
14
  import { DefaultTransportManager } from './transport-manager.js'
18
15
  import { DefaultUpgrader } from './upgrader.js'
@@ -25,10 +22,11 @@ import { PeerRecordUpdater } from './peer-record-updater.js'
25
22
  import { DHTPeerRouting } from './dht/dht-peer-routing.js'
26
23
  import { PersistentPeerStore } from '@libp2p/peer-store'
27
24
  import { DHTContentRouting } from './dht/dht-content-routing.js'
25
+ import { AutonatService } from './autonat/index.js'
28
26
  import { DefaultComponents } from './components.js'
29
27
  import type { Components } from './components.js'
30
28
  import type { PeerId } from '@libp2p/interface-peer-id'
31
- import type { Connection } from '@libp2p/interface-connection'
29
+ import type { Connection, Stream } from '@libp2p/interface-connection'
32
30
  import type { PeerRouting } from '@libp2p/interface-peer-routing'
33
31
  import type { ContentRouting } from '@libp2p/interface-content-routing'
34
32
  import type { PubSub } from '@libp2p/interface-pubsub'
@@ -53,6 +51,7 @@ import { peerIdFromString } from '@libp2p/peer-id'
53
51
  import type { Datastore } from 'interface-datastore'
54
52
  import type { KeyChain } from '@libp2p/interface-keychain'
55
53
  import mergeOptions from 'merge-options'
54
+ import type { CircuitRelayService } from './circuit/index.js'
56
55
 
57
56
  const log = logger('libp2p')
58
57
 
@@ -61,9 +60,10 @@ export class Libp2pNode extends EventEmitter<Libp2pEvents> implements Libp2p {
61
60
  public dht: DualDHT
62
61
  public pubsub: PubSub
63
62
  public identifyService: IdentifyService
64
- public circuitService?: RelayReservationManager
63
+ public circuitService?: CircuitRelayService
65
64
  public fetchService: FetchService
66
65
  public pingService: PingService
66
+ public autonatService: AutonatService
67
67
  public components: Components
68
68
  public peerStore: PeerStore
69
69
  public contentRouting: ContentRouting
@@ -157,12 +157,6 @@ export class Libp2pNode extends EventEmitter<Libp2pEvents> implements Libp2p {
157
157
  // update our peer record when addresses change
158
158
  this.configureComponent(new PeerRecordUpdater(this.components))
159
159
 
160
- this.configureComponent(new AutoDialler(this.components, {
161
- enabled: init.connectionManager.autoDial,
162
- minConnections: init.connectionManager.minConnections,
163
- autoDialInterval: init.connectionManager.autoDialInterval
164
- }))
165
-
166
160
  // Create keychain
167
161
  const keychainOpts = DefaultKeyChain.generateOptions()
168
162
  this.keychain = this.configureComponent(new DefaultKeyChain(this.components, {
@@ -173,24 +167,12 @@ export class Libp2pNode extends EventEmitter<Libp2pEvents> implements Libp2p {
173
167
  // Create the Nat Manager
174
168
  this.services.push(new NatManager(this.components, init.nat))
175
169
 
176
- init.transports.forEach((fn) => {
177
- this.components.transportManager.add(this.configureComponent(fn(this.components)))
178
- })
179
-
180
170
  // Add the identify service
181
171
  this.identifyService = new IdentifyService(this.components, {
182
172
  ...init.identify
183
173
  })
184
174
  this.configureComponent(this.identifyService)
185
175
 
186
- if (init.relay.reservationManager.enabled === true) {
187
- this.circuitService = new RelayReservationManager(this.components, {
188
- addressSorter: init.connectionManager.addressSorter,
189
- ...init.relay.reservationManager
190
- })
191
- this.services.push(this.circuitService)
192
- }
193
-
194
176
  // dht provided components (peerRouting, contentRouting, dht)
195
177
  if (init.dht != null) {
196
178
  this.dht = this.components.dht = init.dht(this.components)
@@ -236,14 +218,6 @@ export class Libp2pNode extends EventEmitter<Libp2pEvents> implements Libp2p {
236
218
  routers: contentRouters
237
219
  }))
238
220
 
239
- if (init.relay.enabled) {
240
- this.components.transportManager.add(this.configureComponent(new Circuit(this.components, init.relay)))
241
-
242
- this.configureComponent(new Relay(this.components, {
243
- ...init.relay
244
- }))
245
- }
246
-
247
221
  this.fetchService = this.configureComponent(new FetchService(this.components, {
248
222
  ...init.fetch
249
223
  }))
@@ -252,6 +226,19 @@ export class Libp2pNode extends EventEmitter<Libp2pEvents> implements Libp2p {
252
226
  ...init.ping
253
227
  }))
254
228
 
229
+ this.autonatService = this.configureComponent(new AutonatService(this.components, {
230
+ ...init.autonat
231
+ }))
232
+
233
+ this.configureComponent(new AutoDialler(this.components, {
234
+ minConnections: init.connectionManager.minConnections,
235
+ autoDialInterval: init.connectionManager.autoDialInterval
236
+ }))
237
+
238
+ if (init.relay != null) {
239
+ this.circuitService = this.configureComponent(init.relay(this.components))
240
+ }
241
+
255
242
  // Discovery modules
256
243
  for (const fn of init.peerDiscovery ?? []) {
257
244
  const service = this.configureComponent(fn(this.components))
@@ -260,6 +247,11 @@ export class Libp2pNode extends EventEmitter<Libp2pEvents> implements Libp2p {
260
247
  this.onDiscoveryPeer(evt)
261
248
  })
262
249
  }
250
+
251
+ // Transport modules
252
+ init.transports.forEach((fn) => {
253
+ this.components.transportManager.add(this.configureComponent(fn(this.components)))
254
+ })
263
255
  }
264
256
 
265
257
  private configureComponent <T> (component: T): T {
@@ -273,7 +265,7 @@ export class Libp2pNode extends EventEmitter<Libp2pEvents> implements Libp2p {
273
265
  /**
274
266
  * Starts the libp2p node and all its subsystems
275
267
  */
276
- async start () {
268
+ async start (): Promise<void> {
277
269
  if (this.started) {
278
270
  return
279
271
  }
@@ -300,7 +292,7 @@ export class Libp2pNode extends EventEmitter<Libp2pEvents> implements Libp2p {
300
292
 
301
293
  // start any startables
302
294
  await Promise.all(
303
- this.services.map(async service => await service.start())
295
+ this.services.map(async service => { await service.start() })
304
296
  )
305
297
 
306
298
  await Promise.all(
@@ -322,7 +314,7 @@ export class Libp2pNode extends EventEmitter<Libp2pEvents> implements Libp2p {
322
314
  /**
323
315
  * Stop the libp2p node by closing its listeners and open connections
324
316
  */
325
- async stop () {
317
+ async stop (): Promise<void> {
326
318
  if (!this.started) {
327
319
  return
328
320
  }
@@ -340,7 +332,7 @@ export class Libp2pNode extends EventEmitter<Libp2pEvents> implements Libp2p {
340
332
  )
341
333
 
342
334
  await Promise.all(
343
- this.services.map(async service => await service.stop())
335
+ this.services.map(async service => { await service.stop() })
344
336
  )
345
337
 
346
338
  await Promise.all(
@@ -354,7 +346,7 @@ export class Libp2pNode extends EventEmitter<Libp2pEvents> implements Libp2p {
354
346
  log('libp2p has stopped')
355
347
  }
356
348
 
357
- isStarted () {
349
+ isStarted (): boolean {
358
350
  return this.started
359
351
  }
360
352
 
@@ -376,7 +368,7 @@ export class Libp2pNode extends EventEmitter<Libp2pEvents> implements Libp2p {
376
368
  return await this.components.connectionManager.openConnection(peer, options)
377
369
  }
378
370
 
379
- async dialProtocol (peer: PeerId | Multiaddr, protocols: string | string[], options: AbortOptions = {}) {
371
+ async dialProtocol (peer: PeerId | Multiaddr, protocols: string | string[], options: AbortOptions = {}): Promise<Stream> {
380
372
  if (protocols == null) {
381
373
  throw errCode(new Error('no protocols were provided to open a stream'), codes.ERR_INVALID_PROTOCOLS_FOR_STREAM)
382
374
  }
@@ -495,7 +487,7 @@ export class Libp2pNode extends EventEmitter<Libp2pEvents> implements Libp2p {
495
487
  return await this.registrar.register(protocol, topology)
496
488
  }
497
489
 
498
- unregister (id: string) {
490
+ unregister (id: string): void {
499
491
  this.registrar.unregister(id)
500
492
  }
501
493
 
@@ -503,7 +495,7 @@ export class Libp2pNode extends EventEmitter<Libp2pEvents> implements Libp2p {
503
495
  * Called whenever peer discovery services emit `peer` events.
504
496
  * Known peers may be emitted.
505
497
  */
506
- onDiscoveryPeer (evt: CustomEvent<PeerInfo>) {
498
+ onDiscoveryPeer (evt: CustomEvent<PeerInfo>): void {
507
499
  const { detail: peer } = evt
508
500
 
509
501
  if (peer.id.toString() === this.peerId.toString()) {
@@ -512,11 +504,11 @@ export class Libp2pNode extends EventEmitter<Libp2pEvents> implements Libp2p {
512
504
  }
513
505
 
514
506
  if (peer.multiaddrs.length > 0) {
515
- void this.components.peerStore.addressBook.add(peer.id, peer.multiaddrs).catch(err => log.error(err))
507
+ void this.components.peerStore.addressBook.add(peer.id, peer.multiaddrs).catch(err => { log.error(err) })
516
508
  }
517
509
 
518
510
  if (peer.protocols.length > 0) {
519
- void this.components.peerStore.protoBook.set(peer.id, peer.protocols).catch(err => log.error(err))
511
+ void this.components.peerStore.protoBook.set(peer.id, peer.protocols).catch(err => { log.error(err) })
520
512
  }
521
513
 
522
514
  this.dispatchEvent(new CustomEvent<PeerInfo>('peer:discovery', { detail: peer }))
@@ -15,7 +15,7 @@ import type { AddressManager } from '@libp2p/interface-address-manager'
15
15
  const log = logger('libp2p:nat')
16
16
  const DEFAULT_TTL = 7200
17
17
 
18
- function highPort (min = 1024, max = 65535) {
18
+ function highPort (min = 1024, max = 65535): number {
19
19
  return Math.floor(Math.random() * (max - min + 1) + min)
20
20
  }
21
21
 
@@ -98,18 +98,20 @@ export class NatManager implements Startable {
98
98
  }
99
99
  }
100
100
 
101
- isStarted () {
101
+ isStarted (): boolean {
102
102
  return this.started
103
103
  }
104
104
 
105
- start () {}
105
+ start (): void {
106
+ // #TODO: is there a way to remove this? Seems like a hack
107
+ }
106
108
 
107
109
  /**
108
110
  * Attempt to use uPnP to configure port mapping using the current gateway.
109
111
  *
110
112
  * Run after start to ensure the transport manager has all addresses configured.
111
113
  */
112
- afterStart () {
114
+ afterStart (): void {
113
115
  if (isBrowser || !this.enabled || this.started) {
114
116
  return
115
117
  }
@@ -123,7 +125,7 @@ export class NatManager implements Startable {
123
125
  })
124
126
  }
125
127
 
126
- async _start () {
128
+ async _start (): Promise<void> {
127
129
  const addrs = this.components.transportManager.getAddrs()
128
130
 
129
131
  for (const addr of addrs) {
@@ -178,7 +180,7 @@ export class NatManager implements Startable {
178
180
  }
179
181
  }
180
182
 
181
- async _getClient () {
183
+ async _getClient (): Promise<NatAPI> {
182
184
  if (this.client != null) {
183
185
  return this.client
184
186
  }
@@ -196,7 +198,7 @@ export class NatManager implements Startable {
196
198
  /**
197
199
  * Stops the NAT manager
198
200
  */
199
- async stop () {
201
+ async stop (): Promise<void> {
200
202
  if (isBrowser || this.client == null) {
201
203
  return
202
204
  }
@@ -26,18 +26,18 @@ export class PeerRecordUpdater implements Startable {
26
26
  this.update = this.update.bind(this)
27
27
  }
28
28
 
29
- isStarted () {
29
+ isStarted (): boolean {
30
30
  return this.started
31
31
  }
32
32
 
33
- async start () {
33
+ async start (): Promise<void> {
34
34
  this.started = true
35
35
  this.components.transportManager.addEventListener('listener:listening', this.update)
36
36
  this.components.transportManager.addEventListener('listener:close', this.update)
37
37
  this.components.addressManager.addEventListener('change:addresses', this.update)
38
38
  }
39
39
 
40
- async stop () {
40
+ async stop (): Promise<void> {
41
41
  this.started = false
42
42
  this.components.transportManager.removeEventListener('listener:listening', this.update)
43
43
  this.components.transportManager.removeEventListener('listener:close', this.update)
@@ -47,7 +47,7 @@ export class PeerRecordUpdater implements Startable {
47
47
  /**
48
48
  * Create (or update if existing) self peer record and store it in the AddressBook.
49
49
  */
50
- update () {
50
+ update (): void {
51
51
  Promise.resolve()
52
52
  .then(async () => {
53
53
  const peerRecord = new PeerRecord({
@@ -76,14 +76,14 @@ export class DefaultPeerRouting implements PeerRouting, Startable {
76
76
  this._findClosestPeersTask = this._findClosestPeersTask.bind(this)
77
77
  }
78
78
 
79
- isStarted () {
79
+ isStarted (): boolean {
80
80
  return this.started
81
81
  }
82
82
 
83
83
  /**
84
84
  * Start peer routing service.
85
85
  */
86
- async start () {
86
+ async start (): Promise<void> {
87
87
  if (this.started || this.routers.length === 0 || this.timeoutId != null || this.refreshManagerInit.enabled === false) {
88
88
  return
89
89
  }
@@ -98,7 +98,7 @@ export class DefaultPeerRouting implements PeerRouting, Startable {
98
98
  /**
99
99
  * Recurrent task to find closest peers and add their addresses to the Address Book.
100
100
  */
101
- async _findClosestPeersTask () {
101
+ async _findClosestPeersTask (): Promise<void> {
102
102
  if (this.abortController != null) {
103
103
  // we are already running the query
104
104
  return
@@ -127,7 +127,7 @@ export class DefaultPeerRouting implements PeerRouting, Startable {
127
127
  /**
128
128
  * Stop peer routing service.
129
129
  */
130
- async stop () {
130
+ async stop (): Promise<void> {
131
131
  clearDelayedInterval(this.timeoutId)
132
132
 
133
133
  // abort query if it is in-flight
package/src/ping/index.ts CHANGED
@@ -47,7 +47,7 @@ export class PingService implements Startable {
47
47
  this.init = init
48
48
  }
49
49
 
50
- async start () {
50
+ async start (): Promise<void> {
51
51
  await this.components.registrar.handle(this.protocol, this.handleMessage, {
52
52
  maxInboundStreams: this.init.maxInboundStreams,
53
53
  maxOutboundStreams: this.init.maxOutboundStreams
@@ -55,19 +55,19 @@ export class PingService implements Startable {
55
55
  this.started = true
56
56
  }
57
57
 
58
- async stop () {
58
+ async stop (): Promise<void> {
59
59
  await this.components.registrar.unhandle(this.protocol)
60
60
  this.started = false
61
61
  }
62
62
 
63
- isStarted () {
63
+ isStarted (): boolean {
64
64
  return this.started
65
65
  }
66
66
 
67
67
  /**
68
68
  * A handler to register with Libp2p to process ping messages
69
69
  */
70
- handleMessage (data: IncomingStreamData) {
70
+ handleMessage (data: IncomingStreamData): void {
71
71
  const { stream } = data
72
72
 
73
73
  void pipe(stream, stream)
@@ -11,7 +11,7 @@ const log = logger('libp2p:pnet')
11
11
  /**
12
12
  * Creates a stream iterable to encrypt messages in a private network
13
13
  */
14
- export function createBoxStream (nonce: Uint8Array, psk: Uint8Array) {
14
+ export function createBoxStream (nonce: Uint8Array, psk: Uint8Array): (source: Source<Uint8Array>) => AsyncIterable<Uint8Array> {
15
15
  const xor = xsalsa20(nonce, psk)
16
16
 
17
17
  return (source: Source<Uint8Array>) => (async function * () {
@@ -38,7 +38,7 @@ export function createUnboxStream (nonce: Uint8Array, psk: Uint8Array) {
38
38
  /**
39
39
  * Decode the version 1 psk from the given Uint8Array
40
40
  */
41
- export function decodeV1PSK (pskBuffer: Uint8Array) {
41
+ export function decodeV1PSK (pskBuffer: Uint8Array): { tag: string | undefined, codecName: string | undefined, psk: Uint8Array } {
42
42
  try {
43
43
  // This should pull from multibase/multicodec to allow for
44
44
  // more encoding flexibility. Ideally we'd consume the codecs
@@ -58,7 +58,7 @@ export function decodeV1PSK (pskBuffer: Uint8Array) {
58
58
  return {
59
59
  tag: pskTag,
60
60
  codecName: codec,
61
- psk: psk
61
+ psk
62
62
  }
63
63
  } catch (err: any) {
64
64
  log.error(err)
@@ -8,7 +8,7 @@ import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string'
8
8
  * @param {Uint8Array | NodeJS.WriteStream} bytes - An object to write the psk into
9
9
  * @returns {void}
10
10
  */
11
- export function generateKey (bytes: Uint8Array | NodeJS.WriteStream) {
11
+ export function generateKey (bytes: Uint8Array | NodeJS.WriteStream): void {
12
12
  const psk = uint8ArrayToString(randomBytes(KEY_LENGTH), 'base16')
13
13
  const key = uint8ArrayFromString('/key/swarm/psk/1.0.0/\n/base16/\n' + psk)
14
14
 
package/src/registrar.ts CHANGED
@@ -44,14 +44,14 @@ export class DefaultRegistrar implements Registrar {
44
44
  this.components.peerStore.addEventListener('change:protocols', this._onProtocolChange)
45
45
  }
46
46
 
47
- getProtocols () {
47
+ getProtocols (): string[] {
48
48
  return Array.from(new Set<string>([
49
49
  ...this.topologies.keys(),
50
50
  ...this.handlers.keys()
51
51
  ])).sort()
52
52
  }
53
53
 
54
- getHandler (protocol: string) {
54
+ getHandler (protocol: string): StreamHandlerRecord {
55
55
  const handler = this.handlers.get(protocol)
56
56
 
57
57
  if (handler == null) {
@@ -61,7 +61,7 @@ export class DefaultRegistrar implements Registrar {
61
61
  return handler
62
62
  }
63
63
 
64
- getTopologies (protocol: string) {
64
+ getTopologies (protocol: string): Topology[] {
65
65
  const topologies = this.topologies.get(protocol)
66
66
 
67
67
  if (topologies == null) {
@@ -99,7 +99,7 @@ export class DefaultRegistrar implements Registrar {
99
99
  * Removes the handler for each protocol. The protocol
100
100
  * will no longer be supported on streams.
101
101
  */
102
- async unhandle (protocols: string | string[]) {
102
+ async unhandle (protocols: string | string[]): Promise<void> {
103
103
  const protocolList = Array.isArray(protocols) ? protocols : [protocols]
104
104
 
105
105
  protocolList.forEach(protocol => {
@@ -140,7 +140,7 @@ export class DefaultRegistrar implements Registrar {
140
140
  /**
141
141
  * Unregister topology
142
142
  */
143
- unregister (id: string) {
143
+ unregister (id: string): void {
144
144
  for (const [protocol, topologies] of this.topologies.entries()) {
145
145
  if (topologies.has(id)) {
146
146
  topologies.delete(id)
@@ -155,7 +155,7 @@ export class DefaultRegistrar implements Registrar {
155
155
  /**
156
156
  * Remove a disconnected peer from the record
157
157
  */
158
- _onDisconnect (evt: CustomEvent<Connection>) {
158
+ _onDisconnect (evt: CustomEvent<Connection>): void {
159
159
  const connection = evt.detail
160
160
 
161
161
  void this.components.peerStore.protoBook.get(connection.remotePeer)
@@ -182,7 +182,7 @@ export class DefaultRegistrar implements Registrar {
182
182
  * On peer connected if we already have their protocols. Usually used for reconnects
183
183
  * as change:protocols event won't be emitted due to identical protocols.
184
184
  */
185
- _onConnect (evt: CustomEvent<Connection>) {
185
+ _onConnect (evt: CustomEvent<Connection>): void {
186
186
  const connection = evt.detail
187
187
 
188
188
  void this.components.peerStore.protoBook.get(connection.remotePeer)
@@ -208,7 +208,7 @@ export class DefaultRegistrar implements Registrar {
208
208
  /**
209
209
  * Check if a new peer support the multicodecs for this topology
210
210
  */
211
- _onProtocolChange (evt: CustomEvent<PeerProtocolsChangeData>) {
211
+ _onProtocolChange (evt: CustomEvent<PeerProtocolsChangeData>): void {
212
212
  const { peerId, protocols, oldProtocols } = evt.detail
213
213
  const removed = oldProtocols.filter(protocol => !protocols.includes(protocol))
214
214
  const added = protocols.filter(protocol => !oldProtocols.includes(protocol))
@@ -47,7 +47,7 @@ export class DefaultTransportManager extends EventEmitter<TransportManagerEvents
47
47
  /**
48
48
  * Adds a `Transport` to the manager
49
49
  */
50
- add (transport: Transport) {
50
+ add (transport: Transport): void {
51
51
  const tag = transport[Symbol.toStringTag]
52
52
 
53
53
  if (tag == null) {
@@ -55,7 +55,7 @@ export class DefaultTransportManager extends EventEmitter<TransportManagerEvents
55
55
  }
56
56
 
57
57
  if (this.transports.has(tag)) {
58
- throw errCode(new Error('There is already a transport with this tag'), codes.ERR_DUPLICATE_TRANSPORT)
58
+ throw errCode(new Error(`There is already a transport with the tag ${tag}`), codes.ERR_DUPLICATE_TRANSPORT)
59
59
  }
60
60
 
61
61
  log('adding transport %s', tag)
@@ -67,11 +67,11 @@ export class DefaultTransportManager extends EventEmitter<TransportManagerEvents
67
67
  }
68
68
  }
69
69
 
70
- isStarted () {
70
+ isStarted (): boolean {
71
71
  return this.started
72
72
  }
73
73
 
74
- async start () {
74
+ async start (): Promise<void> {
75
75
  // Listen on the provided transports for the provided addresses
76
76
  const addrs = this.components.addressManager.getListenAddrs()
77
77
 
@@ -83,7 +83,7 @@ export class DefaultTransportManager extends EventEmitter<TransportManagerEvents
83
83
  /**
84
84
  * Stops all listeners
85
85
  */
86
- async stop () {
86
+ async stop (): Promise<void> {
87
87
  const tasks = []
88
88
  for (const [key, listeners] of this.listeners) {
89
89
  log('closing listeners for %s', key)
@@ -147,14 +147,14 @@ export class DefaultTransportManager extends EventEmitter<TransportManagerEvents
147
147
  /**
148
148
  * Returns all the transports instances
149
149
  */
150
- getTransports () {
150
+ getTransports (): Transport[] {
151
151
  return Array.of(...this.transports.values())
152
152
  }
153
153
 
154
154
  /**
155
155
  * Finds a transport that matches the given Multiaddr
156
156
  */
157
- transportForMultiaddr (ma: Multiaddr) {
157
+ transportForMultiaddr (ma: Multiaddr): Transport | undefined {
158
158
  for (const transport of this.transports.values()) {
159
159
  const addrs = transport.filter([ma])
160
160
 
@@ -167,7 +167,7 @@ export class DefaultTransportManager extends EventEmitter<TransportManagerEvents
167
167
  /**
168
168
  * Starts listeners for each listen Multiaddr
169
169
  */
170
- async listen (addrs: Multiaddr[]) {
170
+ async listen (addrs: Multiaddr[]): Promise<void> {
171
171
  if (addrs == null || addrs.length === 0) {
172
172
  log('no addresses were provided for listening, this node is dial only')
173
173
  return
@@ -243,7 +243,7 @@ export class DefaultTransportManager extends EventEmitter<TransportManagerEvents
243
243
  * Removes the given transport from the manager.
244
244
  * If a transport has any running listeners, they will be closed.
245
245
  */
246
- async remove (key: string) {
246
+ async remove (key: string): Promise<void> {
247
247
  log('removing %s', key)
248
248
 
249
249
  // Close any running listeners
@@ -261,7 +261,7 @@ export class DefaultTransportManager extends EventEmitter<TransportManagerEvents
261
261
  *
262
262
  * @async
263
263
  */
264
- async removeAll () {
264
+ async removeAll (): Promise<void> {
265
265
  const tasks = []
266
266
  for (const key of this.transports.keys()) {
267
267
  tasks.push(this.remove(key))