libp2p 0.36.0 → 0.36.2-199395d

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 (398) hide show
  1. package/LICENSE +3 -21
  2. package/README.md +13 -10
  3. package/dist/src/address-manager/index.d.ts +33 -52
  4. package/dist/src/address-manager/index.d.ts.map +1 -1
  5. package/dist/src/address-manager/index.js +81 -0
  6. package/dist/src/address-manager/index.js.map +1 -0
  7. package/dist/src/circuit/auto-relay.d.ts +24 -85
  8. package/dist/src/circuit/auto-relay.d.ts.map +1 -1
  9. package/dist/src/circuit/auto-relay.js +215 -0
  10. package/dist/src/circuit/auto-relay.js.map +1 -0
  11. package/dist/src/circuit/circuit/hop.d.ts +25 -52
  12. package/dist/src/circuit/circuit/hop.d.ts.map +1 -1
  13. package/dist/src/circuit/circuit/hop.js +138 -0
  14. package/dist/src/circuit/circuit/hop.js.map +1 -0
  15. package/dist/src/circuit/circuit/stop.d.ts +16 -8
  16. package/dist/src/circuit/circuit/stop.d.ts.map +1 -1
  17. package/dist/src/circuit/circuit/stop.js +49 -0
  18. package/dist/src/circuit/circuit/stop.js.map +1 -0
  19. package/dist/src/circuit/circuit/stream-handler.d.ts +16 -35
  20. package/dist/src/circuit/circuit/stream-handler.d.ts.map +1 -1
  21. package/dist/src/circuit/circuit/stream-handler.js +60 -0
  22. package/dist/src/circuit/circuit/stream-handler.js.map +1 -0
  23. package/dist/src/circuit/circuit/utils.d.ts +3 -6
  24. package/dist/src/circuit/circuit/utils.d.ts.map +1 -1
  25. package/dist/src/circuit/circuit/utils.js +43 -0
  26. package/dist/src/circuit/circuit/utils.js.map +1 -0
  27. package/dist/src/circuit/constants.d.ts +24 -6
  28. package/dist/src/circuit/constants.d.ts.map +1 -1
  29. package/dist/src/circuit/constants.js +26 -0
  30. package/dist/src/circuit/constants.js.map +1 -0
  31. package/dist/src/circuit/index.d.ts +41 -74
  32. package/dist/src/circuit/index.d.ts.map +1 -1
  33. package/dist/src/circuit/index.js +69 -0
  34. package/dist/src/circuit/index.js.map +1 -0
  35. package/dist/src/circuit/listener.d.ts +8 -3
  36. package/dist/src/circuit/listener.d.ts.map +1 -1
  37. package/dist/src/circuit/listener.js +54 -0
  38. package/dist/src/circuit/listener.js.map +1 -0
  39. package/dist/src/circuit/multicodec.d.ts +1 -1
  40. package/dist/src/circuit/multicodec.d.ts.map +1 -1
  41. package/dist/src/circuit/multicodec.js +2 -0
  42. package/dist/src/circuit/multicodec.js.map +1 -0
  43. package/dist/src/circuit/{protocol → pb}/index.d.ts +0 -0
  44. package/{src/circuit/protocol → dist/src/circuit/pb}/index.js +7 -9
  45. package/dist/src/circuit/transport.d.ts +18 -78
  46. package/dist/src/circuit/transport.d.ts.map +1 -1
  47. package/dist/src/circuit/transport.js +190 -0
  48. package/dist/src/circuit/transport.js.map +1 -0
  49. package/dist/src/circuit/utils.d.ts +5 -2
  50. package/dist/src/circuit/utils.d.ts.map +1 -1
  51. package/dist/src/circuit/utils.js +11 -0
  52. package/dist/src/circuit/utils.js.map +1 -0
  53. package/dist/src/config.d.ts +3 -85
  54. package/dist/src/config.d.ts.map +1 -1
  55. package/dist/src/config.js +93 -0
  56. package/dist/src/config.js.map +1 -0
  57. package/dist/src/connection-manager/auto-dialler.d.ts +24 -41
  58. package/dist/src/connection-manager/auto-dialler.d.ts.map +1 -1
  59. package/dist/src/connection-manager/auto-dialler.js +105 -0
  60. package/dist/src/connection-manager/auto-dialler.js.map +1 -0
  61. package/dist/src/connection-manager/index.d.ts +79 -144
  62. package/dist/src/connection-manager/index.d.ts.map +1 -1
  63. package/dist/src/connection-manager/index.js +295 -0
  64. package/dist/src/connection-manager/index.js.map +1 -0
  65. package/dist/src/connection-manager/latency-monitor.d.ts +72 -97
  66. package/dist/src/connection-manager/latency-monitor.d.ts.map +1 -1
  67. package/dist/src/connection-manager/latency-monitor.js +220 -0
  68. package/dist/src/connection-manager/latency-monitor.js.map +1 -0
  69. package/dist/src/connection-manager/visibility-change-emitter.d.ts +15 -16
  70. package/dist/src/connection-manager/visibility-change-emitter.d.ts.map +1 -1
  71. package/dist/src/connection-manager/visibility-change-emitter.js +118 -0
  72. package/dist/src/connection-manager/visibility-change-emitter.js.map +1 -0
  73. package/dist/src/constants.d.ts +22 -10
  74. package/dist/src/constants.d.ts.map +1 -1
  75. package/dist/src/constants.js +27 -0
  76. package/dist/src/constants.js.map +1 -0
  77. package/dist/src/content-routing/index.d.ts +26 -81
  78. package/dist/src/content-routing/index.d.ts.map +1 -1
  79. package/dist/src/content-routing/index.js +99 -0
  80. package/dist/src/content-routing/index.js.map +1 -0
  81. package/dist/src/content-routing/utils.d.ts +6 -49
  82. package/dist/src/content-routing/utils.d.ts.map +1 -1
  83. package/dist/src/content-routing/utils.js +42 -0
  84. package/dist/src/content-routing/utils.js.map +1 -0
  85. package/dist/src/dht/dht-content-routing.d.ts +10 -24
  86. package/dist/src/dht/dht-content-routing.d.ts.map +1 -1
  87. package/dist/src/dht/dht-content-routing.js +32 -0
  88. package/dist/src/dht/dht-content-routing.js.map +1 -0
  89. package/dist/src/dht/dht-peer-routing.d.ts +9 -24
  90. package/dist/src/dht/dht-peer-routing.d.ts.map +1 -1
  91. package/dist/src/dht/dht-peer-routing.js +26 -0
  92. package/dist/src/dht/dht-peer-routing.js.map +1 -0
  93. package/dist/src/dialer/auto-dialer.d.ts +14 -0
  94. package/dist/src/dialer/auto-dialer.d.ts.map +1 -0
  95. package/dist/src/dialer/auto-dialer.js +24 -0
  96. package/dist/src/dialer/auto-dialer.js.map +1 -0
  97. package/dist/src/dialer/dial-request.d.ts +18 -46
  98. package/dist/src/dialer/dial-request.d.ts.map +1 -1
  99. package/dist/src/dialer/dial-request.js +83 -0
  100. package/dist/src/dialer/dial-request.js.map +1 -0
  101. package/dist/src/dialer/index.d.ts +41 -148
  102. package/dist/src/dialer/index.d.ts.map +1 -1
  103. package/dist/src/dialer/index.js +281 -0
  104. package/dist/src/dialer/index.js.map +1 -0
  105. package/dist/src/errors.d.ts +68 -63
  106. package/dist/src/errors.d.ts.map +1 -1
  107. package/dist/src/errors.js +73 -0
  108. package/dist/src/errors.js.map +1 -0
  109. package/dist/src/fetch/constants.d.ts +1 -1
  110. package/dist/src/fetch/constants.d.ts.map +1 -1
  111. package/dist/src/fetch/constants.js +3 -0
  112. package/dist/src/fetch/constants.js.map +1 -0
  113. package/dist/src/fetch/index.d.ts +30 -49
  114. package/dist/src/fetch/index.d.ts.map +1 -1
  115. package/dist/src/fetch/index.js +130 -0
  116. package/dist/src/fetch/index.js.map +1 -0
  117. package/dist/src/fetch/{proto.d.ts → pb/proto.d.ts} +0 -0
  118. package/{src/fetch → dist/src/fetch/pb}/proto.js +7 -9
  119. package/dist/src/get-peer.d.ts +4 -11
  120. package/dist/src/get-peer.d.ts.map +1 -1
  121. package/dist/src/get-peer.js +43 -0
  122. package/dist/src/get-peer.js.map +1 -0
  123. package/dist/src/identify/consts.d.ts +9 -9
  124. package/dist/src/identify/consts.d.ts.map +1 -1
  125. package/dist/src/identify/consts.js +11 -0
  126. package/dist/src/identify/consts.js.map +1 -0
  127. package/dist/src/identify/index.d.ts +40 -96
  128. package/dist/src/identify/index.d.ts.map +1 -1
  129. package/dist/src/identify/index.js +322 -0
  130. package/dist/src/identify/index.js.map +1 -0
  131. package/{src/identify → dist/src/identify/pb}/message.d.ts +20 -5
  132. package/{src/identify → dist/src/identify/pb}/message.js +83 -42
  133. package/dist/src/index.d.ts +157 -583
  134. package/dist/src/index.d.ts.map +1 -1
  135. package/dist/src/index.js +9 -0
  136. package/dist/src/index.js.map +1 -0
  137. package/dist/src/insecure/index.d.ts +9 -0
  138. package/dist/src/insecure/index.d.ts.map +1 -0
  139. package/dist/src/insecure/index.js +78 -0
  140. package/dist/src/insecure/index.js.map +1 -0
  141. package/dist/src/insecure/{proto.d.ts → pb/proto.d.ts} +7 -1
  142. package/{src/insecure → dist/src/insecure/pb}/proto.js +39 -22
  143. package/dist/src/keychain/cms.d.ts +6 -14
  144. package/dist/src/keychain/cms.d.ts.map +1 -1
  145. package/dist/src/keychain/cms.js +129 -0
  146. package/dist/src/keychain/cms.js.map +1 -0
  147. package/dist/src/keychain/index.d.ts +62 -82
  148. package/dist/src/keychain/index.d.ts.map +1 -1
  149. package/dist/src/keychain/index.js +493 -0
  150. package/dist/src/keychain/index.js.map +1 -0
  151. package/dist/src/keychain/util.d.ts +3 -6
  152. package/dist/src/keychain/util.d.ts.map +1 -1
  153. package/dist/src/keychain/util.js +79 -0
  154. package/dist/src/keychain/util.js.map +1 -0
  155. package/dist/src/libp2p.d.ts +75 -0
  156. package/dist/src/libp2p.d.ts.map +1 -0
  157. package/dist/src/libp2p.js +368 -0
  158. package/dist/src/libp2p.js.map +1 -0
  159. package/dist/src/metrics/index.d.ts +47 -104
  160. package/dist/src/metrics/index.d.ts.map +1 -1
  161. package/dist/src/metrics/index.js +231 -0
  162. package/dist/src/metrics/index.js.map +1 -0
  163. package/dist/src/metrics/moving-average.d.ts +14 -0
  164. package/dist/src/metrics/moving-average.d.ts.map +1 -0
  165. package/dist/src/metrics/moving-average.js +40 -0
  166. package/dist/src/metrics/moving-average.js.map +1 -0
  167. package/dist/src/metrics/stats.d.ts +45 -93
  168. package/dist/src/metrics/stats.d.ts.map +1 -1
  169. package/dist/src/metrics/stats.js +183 -0
  170. package/dist/src/metrics/stats.js.map +1 -0
  171. package/dist/src/nat-manager.d.ts +42 -99
  172. package/dist/src/nat-manager.d.ts.map +1 -1
  173. package/dist/src/nat-manager.js +114 -0
  174. package/dist/src/nat-manager.js.map +1 -0
  175. package/dist/src/peer-record-updater.d.ts +15 -0
  176. package/dist/src/peer-record-updater.d.ts.map +1 -0
  177. package/dist/src/peer-record-updater.js +44 -0
  178. package/dist/src/peer-record-updater.js.map +1 -0
  179. package/dist/src/peer-routing.d.ts +39 -84
  180. package/dist/src/peer-routing.d.ts.map +1 -1
  181. package/dist/src/peer-routing.js +108 -0
  182. package/dist/src/peer-routing.js.map +1 -0
  183. package/dist/src/ping/constants.d.ts +4 -4
  184. package/dist/src/ping/constants.d.ts.map +1 -1
  185. package/dist/src/ping/constants.js +5 -0
  186. package/dist/src/ping/constants.js.map +1 -0
  187. package/dist/src/ping/index.d.ts +26 -33
  188. package/dist/src/ping/index.d.ts.map +1 -1
  189. package/dist/src/ping/index.js +56 -0
  190. package/dist/src/ping/index.js.map +1 -0
  191. package/dist/src/pnet/crypto.d.ts +15 -5
  192. package/dist/src/pnet/crypto.d.ts.map +1 -1
  193. package/dist/src/pnet/crypto.js +60 -0
  194. package/dist/src/pnet/crypto.js.map +1 -0
  195. package/dist/src/pnet/errors.d.ts +5 -5
  196. package/dist/src/pnet/errors.d.ts.map +1 -1
  197. package/dist/src/pnet/errors.js +6 -0
  198. package/dist/src/pnet/errors.js.map +1 -0
  199. package/dist/src/pnet/index.d.ts +11 -20
  200. package/dist/src/pnet/index.d.ts.map +1 -1
  201. package/dist/src/pnet/index.js +66 -0
  202. package/dist/src/pnet/index.js.map +1 -0
  203. package/dist/src/pnet/key-generator.d.ts +3 -7
  204. package/dist/src/pnet/key-generator.d.ts.map +1 -1
  205. package/dist/src/pnet/key-generator.js +25 -0
  206. package/dist/src/pnet/key-generator.js.map +1 -0
  207. package/dist/src/registrar.d.ts +27 -65
  208. package/dist/src/registrar.d.ts.map +1 -1
  209. package/dist/src/registrar.js +159 -0
  210. package/dist/src/registrar.js.map +1 -0
  211. package/dist/src/transport-manager.d.ts +34 -82
  212. package/dist/src/transport-manager.d.ts.map +1 -1
  213. package/dist/src/transport-manager.js +223 -0
  214. package/dist/src/transport-manager.js.map +1 -0
  215. package/dist/src/upgrader.d.ts +49 -129
  216. package/dist/src/upgrader.d.ts.map +1 -1
  217. package/dist/src/upgrader.js +402 -0
  218. package/dist/src/upgrader.js.map +1 -0
  219. package/dist/src/version.d.ts +3 -0
  220. package/dist/src/version.d.ts.map +1 -0
  221. package/dist/src/version.js +3 -0
  222. package/dist/src/version.js.map +1 -0
  223. package/package.json +145 -197
  224. package/src/address-manager/index.ts +129 -0
  225. package/src/circuit/README.md +16 -11
  226. package/src/circuit/auto-relay.ts +284 -0
  227. package/src/circuit/circuit/hop.ts +211 -0
  228. package/src/circuit/circuit/stop.ts +78 -0
  229. package/src/circuit/circuit/stream-handler.ts +87 -0
  230. package/src/circuit/circuit/{utils.js → utils.ts} +9 -25
  231. package/src/circuit/constants.ts +31 -0
  232. package/src/circuit/index.ts +120 -0
  233. package/src/circuit/{listener.js → listener.ts} +21 -27
  234. package/src/circuit/multicodec.ts +2 -0
  235. package/src/circuit/{protocol → pb}/index.d.ts +0 -0
  236. package/src/circuit/pb/index.js +528 -0
  237. package/src/circuit/{protocol → pb}/index.proto +0 -0
  238. package/src/circuit/transport.ts +216 -0
  239. package/src/circuit/utils.ts +12 -0
  240. package/src/config.ts +101 -0
  241. package/src/connection-manager/auto-dialler.ts +154 -0
  242. package/src/connection-manager/index.ts +422 -0
  243. package/src/connection-manager/latency-monitor.ts +319 -0
  244. package/src/connection-manager/{visibility-change-emitter.js → visibility-change-emitter.ts} +48 -38
  245. package/src/constants.ts +31 -0
  246. package/src/content-routing/index.ts +143 -0
  247. package/src/content-routing/utils.ts +54 -0
  248. package/src/dht/dht-content-routing.ts +43 -0
  249. package/src/dht/dht-peer-routing.ts +35 -0
  250. package/src/dialer/auto-dialer.ts +40 -0
  251. package/src/dialer/{dial-request.js → dial-request.ts} +60 -51
  252. package/src/dialer/index.ts +374 -0
  253. package/src/errors.ts +71 -0
  254. package/src/fetch/README.md +1 -1
  255. package/src/fetch/constants.ts +3 -0
  256. package/src/fetch/{index.js → index.ts} +79 -70
  257. package/src/fetch/{proto.d.ts → pb/proto.d.ts} +0 -0
  258. package/src/fetch/pb/proto.js +331 -0
  259. package/src/fetch/{proto.proto → pb/proto.proto} +0 -0
  260. package/src/get-peer.ts +57 -0
  261. package/src/identify/consts.ts +13 -0
  262. package/src/identify/index.ts +445 -0
  263. package/{dist/src/identify → src/identify/pb}/message.d.ts +20 -5
  264. package/src/identify/pb/message.js +369 -0
  265. package/src/identify/{message.proto → pb/message.proto} +0 -0
  266. package/src/index.ts +234 -0
  267. package/src/insecure/index.ts +97 -0
  268. package/src/insecure/{proto.d.ts → pb/proto.d.ts} +7 -1
  269. package/src/insecure/pb/proto.js +388 -0
  270. package/src/insecure/{proto.proto → pb/proto.proto} +0 -0
  271. package/src/keychain/{cms.js → cms.ts} +62 -58
  272. package/src/keychain/index.ts +588 -0
  273. package/src/keychain/{util.js → util.ts} +7 -17
  274. package/src/libp2p.ts +501 -0
  275. package/src/metrics/index.ts +310 -0
  276. package/src/metrics/moving-average.ts +53 -0
  277. package/src/metrics/stats.ts +243 -0
  278. package/src/nat-manager.ts +194 -0
  279. package/src/peer-record-updater.ts +55 -0
  280. package/src/peer-routing.ts +185 -0
  281. package/src/ping/README.md +1 -1
  282. package/src/ping/constants.ts +5 -0
  283. package/src/ping/index.ts +83 -0
  284. package/src/pnet/README.md +2 -2
  285. package/src/pnet/crypto.ts +67 -0
  286. package/src/pnet/errors.ts +5 -0
  287. package/src/pnet/index.ts +95 -0
  288. package/src/pnet/key-generator.ts +28 -0
  289. package/src/registrar.ts +205 -0
  290. package/src/transport-manager.ts +279 -0
  291. package/src/upgrader.ts +499 -0
  292. package/src/version.ts +3 -0
  293. package/dist/index.min.js +0 -55
  294. package/dist/src/insecure/plaintext.d.ts +0 -12
  295. package/dist/src/insecure/plaintext.d.ts.map +0 -1
  296. package/dist/src/metrics/old-peers.d.ts +0 -3
  297. package/dist/src/metrics/old-peers.d.ts.map +0 -1
  298. package/dist/src/metrics/tracked-map.d.ts +0 -8
  299. package/dist/src/metrics/tracked-map.d.ts.map +0 -1
  300. package/dist/src/peer-store/address-book.d.ts +0 -67
  301. package/dist/src/peer-store/address-book.d.ts.map +0 -1
  302. package/dist/src/peer-store/index.d.ts +0 -58
  303. package/dist/src/peer-store/index.d.ts.map +0 -1
  304. package/dist/src/peer-store/key-book.d.ts +0 -40
  305. package/dist/src/peer-store/key-book.d.ts.map +0 -1
  306. package/dist/src/peer-store/metadata-book.d.ts +0 -58
  307. package/dist/src/peer-store/metadata-book.d.ts.map +0 -1
  308. package/dist/src/peer-store/pb/peer.d.ts +0 -222
  309. package/dist/src/peer-store/proto-book.d.ts +0 -43
  310. package/dist/src/peer-store/proto-book.d.ts.map +0 -1
  311. package/dist/src/peer-store/store.d.ts +0 -73
  312. package/dist/src/peer-store/store.d.ts.map +0 -1
  313. package/dist/src/peer-store/types.d.ts +0 -202
  314. package/dist/src/peer-store/types.d.ts.map +0 -1
  315. package/dist/src/ping/util.d.ts +0 -5
  316. package/dist/src/ping/util.d.ts.map +0 -1
  317. package/dist/src/pubsub-adapter.d.ts +0 -22
  318. package/dist/src/pubsub-adapter.d.ts.map +0 -1
  319. package/dist/src/record/envelope/envelope.d.ts +0 -77
  320. package/dist/src/record/envelope/index.d.ts +0 -80
  321. package/dist/src/record/envelope/index.d.ts.map +0 -1
  322. package/dist/src/record/peer-record/consts.d.ts +0 -4
  323. package/dist/src/record/peer-record/consts.d.ts.map +0 -1
  324. package/dist/src/record/peer-record/index.d.ts +0 -60
  325. package/dist/src/record/peer-record/index.d.ts.map +0 -1
  326. package/dist/src/record/peer-record/peer-record.d.ts +0 -133
  327. package/dist/src/record/utils.d.ts +0 -12
  328. package/dist/src/record/utils.d.ts.map +0 -1
  329. package/dist/src/types.d.ts +0 -90
  330. package/dist/src/types.d.ts.map +0 -1
  331. package/src/address-manager/index.js +0 -96
  332. package/src/circuit/auto-relay.js +0 -302
  333. package/src/circuit/circuit/hop.js +0 -205
  334. package/src/circuit/circuit/stop.js +0 -81
  335. package/src/circuit/circuit/stream-handler.js +0 -94
  336. package/src/circuit/constants.js +0 -12
  337. package/src/circuit/index.js +0 -102
  338. package/src/circuit/multicodec.js +0 -5
  339. package/src/circuit/transport.js +0 -229
  340. package/src/circuit/utils.js +0 -17
  341. package/src/config.js +0 -114
  342. package/src/connection-manager/auto-dialler.js +0 -132
  343. package/src/connection-manager/index.js +0 -363
  344. package/src/connection-manager/latency-monitor.js +0 -264
  345. package/src/constants.js +0 -18
  346. package/src/content-routing/index.js +0 -163
  347. package/src/content-routing/utils.js +0 -89
  348. package/src/dht/dht-content-routing.js +0 -44
  349. package/src/dht/dht-peer-routing.js +0 -51
  350. package/src/dialer/index.js +0 -376
  351. package/src/errors.js +0 -66
  352. package/src/fetch/constants.js +0 -6
  353. package/src/get-peer.js +0 -49
  354. package/src/identify/consts.js +0 -15
  355. package/src/identify/index.js +0 -384
  356. package/src/index.js +0 -811
  357. package/src/insecure/plaintext.js +0 -95
  358. package/src/keychain/index.js +0 -561
  359. package/src/metrics/index.js +0 -290
  360. package/src/metrics/old-peers.js +0 -16
  361. package/src/metrics/stats.js +0 -270
  362. package/src/metrics/tracked-map.js +0 -94
  363. package/src/nat-manager.js +0 -197
  364. package/src/peer-routing.js +0 -176
  365. package/src/peer-store/README.md +0 -145
  366. package/src/peer-store/address-book.js +0 -382
  367. package/src/peer-store/index.js +0 -121
  368. package/src/peer-store/key-book.js +0 -141
  369. package/src/peer-store/metadata-book.js +0 -250
  370. package/src/peer-store/pb/peer.d.ts +0 -222
  371. package/src/peer-store/pb/peer.js +0 -643
  372. package/src/peer-store/pb/peer.proto +0 -31
  373. package/src/peer-store/proto-book.js +0 -237
  374. package/src/peer-store/store.js +0 -263
  375. package/src/peer-store/types.ts +0 -245
  376. package/src/ping/constants.js +0 -8
  377. package/src/ping/index.js +0 -85
  378. package/src/ping/util.js +0 -18
  379. package/src/pnet/crypto.js +0 -84
  380. package/src/pnet/errors.js +0 -7
  381. package/src/pnet/index.js +0 -86
  382. package/src/pnet/key-generator.js +0 -33
  383. package/src/pubsub-adapter.js +0 -61
  384. package/src/record/README.md +0 -130
  385. package/src/record/envelope/envelope.d.ts +0 -77
  386. package/src/record/envelope/envelope.js +0 -243
  387. package/src/record/envelope/envelope.proto +0 -19
  388. package/src/record/envelope/index.js +0 -183
  389. package/src/record/peer-record/consts.js +0 -14
  390. package/src/record/peer-record/index.js +0 -113
  391. package/src/record/peer-record/peer-record.d.ts +0 -133
  392. package/src/record/peer-record/peer-record.js +0 -367
  393. package/src/record/peer-record/peer-record.proto +0 -18
  394. package/src/record/utils.js +0 -25
  395. package/src/registrar.js +0 -127
  396. package/src/transport-manager.js +0 -269
  397. package/src/types.ts +0 -98
  398. package/src/upgrader.js +0 -492
@@ -1,624 +1,198 @@
1
- export = Libp2p;
2
- /**
3
- * @typedef {import('libp2p-interfaces/src/connection').Connection} Connection
4
- * @typedef {import('libp2p-interfaces/src/stream-muxer/types').MuxedStream} MuxedStream
5
- * @typedef {import('libp2p-interfaces/src/transport/types').TransportFactory<any, any>} TransportFactory
6
- * @typedef {import('libp2p-interfaces/src/stream-muxer/types').MuxerFactory} MuxerFactory
7
- * @typedef {import('libp2p-interfaces/src/content-routing/types').ContentRouting} ContentRoutingModule
8
- * @typedef {import('libp2p-interfaces/src/peer-discovery/types').PeerDiscoveryFactory} PeerDiscoveryFactory
9
- * @typedef {import('libp2p-interfaces/src/peer-routing/types').PeerRouting} PeerRoutingModule
10
- * @typedef {import('libp2p-interfaces/src/crypto/types').Crypto} Crypto
11
- * @typedef {import('libp2p-interfaces/src/pubsub')} Pubsub
12
- * @typedef {import('libp2p-interfaces/src/pubsub').PubsubOptions} PubsubOptions
13
- * @typedef {import('interface-datastore').Datastore} Datastore
14
- * @typedef {import('./pnet')} Protector
15
- * @typedef {import('./types').ConnectionGater} ConnectionGater
16
- * @typedef {Object} PersistentPeerStoreOptions
17
- * @property {number} [threshold]
18
- */
19
- /**
20
- * @typedef {Object} HandlerProps
21
- * @property {Connection} connection
22
- * @property {MuxedStream} stream
23
- * @property {string} protocol
24
- *
25
- * @typedef {Object} DhtOptions
26
- * @property {boolean} [enabled = false]
27
- * @property {number} [kBucketSize = 20]
28
- * @property {boolean} [clientMode]
29
- * @property {import('libp2p-interfaces/src/types').DhtSelectors} [selectors]
30
- * @property {import('libp2p-interfaces/src/types').DhtValidators} [validators]
31
- *
32
- * @typedef {Object} KeychainOptions
33
- * @property {Datastore} [datastore]
34
- *
35
- * @typedef {Object} PeerStoreOptions
36
- * @property {boolean} persistence
37
- *
38
- * @typedef {Object} PubsubLocalOptions
39
- * @property {boolean} enabled
40
- *
41
- * @typedef {Object} MetricsOptions
42
- * @property {boolean} enabled
43
- *
44
- * @typedef {Object} RelayOptions
45
- * @property {boolean} [enabled = true]
46
- * @property {import('./circuit').RelayAdvertiseOptions} [advertise]
47
- * @property {import('./circuit').HopOptions} [hop]
48
- * @property {import('./circuit').AutoRelayOptions} [autoRelay]
49
- *
50
- * @typedef {Object} Libp2pConfig
51
- * @property {DhtOptions} [dht] dht module options
52
- * @property {import('./nat-manager').NatManagerOptions} [nat]
53
- * @property {Record<string, Object|boolean>} [peerDiscovery]
54
- * @property {PubsubLocalOptions & PubsubOptions} [pubsub] pubsub module options
55
- * @property {RelayOptions} [relay]
56
- * @property {Record<string, Object>} [transport] transport options indexed by transport key
57
- *
58
- * @typedef {Object} Libp2pModules
59
- * @property {TransportFactory[]} transport
60
- * @property {MuxerFactory[]} streamMuxer
61
- * @property {Crypto[]} connEncryption
62
- * @property {PeerDiscoveryFactory[]} [peerDiscovery]
63
- * @property {PeerRoutingModule[]} [peerRouting]
64
- * @property {ContentRoutingModule[]} [contentRouting]
65
- * @property {Object} [dht]
66
- * @property {{new(...args: any[]): Pubsub}} [pubsub]
67
- * @property {Protector} [connProtector]
68
- *
69
- * @typedef {Object} Libp2pOptions
70
- * @property {Libp2pModules} modules libp2p modules to use
71
- * @property {import('./address-manager').AddressManagerOptions} [addresses]
72
- * @property {import('./connection-manager').ConnectionManagerOptions} [connectionManager]
73
- * @property {Partial<import('./types').ConnectionGater>} [connectionGater]
74
- * @property {Datastore} [datastore]
75
- * @property {import('./dialer').DialerOptions} [dialer]
76
- * @property {import('./identify/index').HostProperties} [host] libp2p host
77
- * @property {KeychainOptions & import('./keychain/index').KeychainOptions} [keychain]
78
- * @property {MetricsOptions & import('./metrics').MetricsOptions} [metrics]
79
- * @property {import('./peer-routing').PeerRoutingOptions} [peerRouting]
80
- * @property {PeerStoreOptions} [peerStore]
81
- * @property {import('./transport-manager').TransportManagerOptions} [transportManager]
82
- * @property {Libp2pConfig} [config]
83
- *
84
- * @typedef {Object} constructorOptions
85
- * @property {PeerId} peerId
86
- *
87
- * @typedef {Object} CreateOptions
88
- * @property {PeerId} [peerId]
89
- *
90
- * @extends {EventEmitter}
91
- * @fires Libp2p#error Emitted when an error occurs
92
- * @fires Libp2p#peer:discovery Emitted when a peer is discovered
93
- */
94
- declare class Libp2p extends EventEmitter {
1
+ import type { AbortOptions, EventEmitter, RecursivePartial, Startable } from '@libp2p/interfaces';
2
+ import type { Multiaddr } from '@multiformats/multiaddr';
3
+ import type { FAULT_TOLERANCE } from './transport-manager.js';
4
+ import type { HostProperties } from './identify/index.js';
5
+ import type { DualDHT } from '@libp2p/interfaces/dht';
6
+ import type { Datastore } from 'interface-datastore';
7
+ import type { PeerStore, PeerStoreInit } from '@libp2p/interfaces/peer-store';
8
+ import type { PeerId } from '@libp2p/interfaces/peer-id';
9
+ import type { AutoRelayConfig, RelayAdvertiseConfig } from './circuit/index.js';
10
+ import type { PeerDiscovery } from '@libp2p/interfaces/peer-discovery';
11
+ import type { Connection, ConnectionGater, ConnectionProtector, ProtocolStream } from '@libp2p/interfaces/connection';
12
+ import type { Transport } from '@libp2p/interfaces/transport';
13
+ import type { StreamMuxerFactory } from '@libp2p/interfaces/stream-muxer';
14
+ import type { ConnectionEncrypter } from '@libp2p/interfaces/connection-encrypter';
15
+ import type { PeerRouting } from '@libp2p/interfaces/peer-routing';
16
+ import type { ContentRouting } from '@libp2p/interfaces/content-routing';
17
+ import type { PubSub } from '@libp2p/interfaces/pubsub';
18
+ import type { ConnectionManager, StreamHandler } from '@libp2p/interfaces/registrar';
19
+ import type { MetricsInit } from '@libp2p/interfaces/metrics';
20
+ import type { PeerInfo } from '@libp2p/interfaces/peer-info';
21
+ import type { DialerInit } from '@libp2p/interfaces/dialer';
22
+ import type { KeyChain } from './keychain/index.js';
23
+ export interface PersistentPeerStoreOptions {
24
+ threshold?: number;
25
+ }
26
+ export interface DEKConfig {
27
+ keyLength: number;
28
+ iterationCount: number;
29
+ salt: string;
30
+ hash: string;
31
+ }
32
+ export interface KeychainConfig {
33
+ pass?: string;
34
+ dek?: DEKConfig;
35
+ }
36
+ export interface MetricsConfig {
37
+ enabled?: boolean;
38
+ }
39
+ export interface HopConfig {
40
+ enabled?: boolean;
41
+ active?: boolean;
42
+ }
43
+ export interface RelayConfig {
44
+ enabled: boolean;
45
+ advertise: RelayAdvertiseConfig;
46
+ hop: HopConfig;
47
+ autoRelay: AutoRelayConfig;
48
+ }
49
+ export interface NatManagerConfig {
50
+ enabled: boolean;
51
+ externalAddress?: string;
52
+ localAddress?: string;
53
+ description?: string;
54
+ ttl?: number;
55
+ keepAlive: boolean;
56
+ gateway?: string;
57
+ }
58
+ export interface AddressesConfig {
59
+ listen: string[];
60
+ announce: string[];
61
+ noAnnounce: string[];
62
+ announceFilter: (multiaddrs: Multiaddr[]) => Multiaddr[];
63
+ }
64
+ export interface ConnectionManagerConfig {
95
65
  /**
96
- * Like `new Libp2p(options)` except it will create a `PeerId`
97
- * instance if one is not provided in options.
98
- *
99
- * @param {Libp2pOptions & CreateOptions} options - Libp2p configuration options
100
- * @returns {Promise<Libp2p>}
66
+ * If true, try to connect to all discovered peers up to the connection manager limit
101
67
  */
102
- static create(options: Libp2pOptions & CreateOptions): Promise<Libp2p>;
68
+ autoDial?: boolean;
103
69
  /**
104
- * Libp2p node.
105
- *
106
- * @class
107
- * @param {Libp2pOptions & constructorOptions} _options
70
+ * The maximum number of connections to keep open
108
71
  */
109
- constructor(_options: Libp2pOptions & constructorOptions);
110
- _options: {
111
- addresses: {
112
- listen: never[];
113
- announce: never[];
114
- noAnnounce: never[];
115
- announceFilter: (multiaddrs: Multiaddr[]) => Multiaddr[];
116
- };
117
- connectionManager: {
118
- minConnections: number;
119
- };
120
- connectionGater: {};
121
- transportManager: {
122
- faultTolerance: number;
123
- };
124
- dialer: {
125
- maxParallelDials: number;
126
- maxDialsPerPeer: number;
127
- dialTimeout: number;
128
- resolvers: {
129
- dnsaddr: any;
130
- };
131
- addressSorter: typeof import("libp2p-utils/src/address-sort").publicAddressesFirst;
132
- };
133
- host: {
134
- agentVersion: string;
135
- };
136
- metrics: {
137
- enabled: boolean;
138
- };
139
- peerStore: {
140
- /**
141
- * @typedef {import('libp2p-interfaces/src/connection').Connection} Connection
142
- * @typedef {import('libp2p-interfaces/src/stream-muxer/types').MuxedStream} MuxedStream
143
- * @typedef {import('libp2p-interfaces/src/transport/types').TransportFactory<any, any>} TransportFactory
144
- * @typedef {import('libp2p-interfaces/src/stream-muxer/types').MuxerFactory} MuxerFactory
145
- * @typedef {import('libp2p-interfaces/src/content-routing/types').ContentRouting} ContentRoutingModule
146
- * @typedef {import('libp2p-interfaces/src/peer-discovery/types').PeerDiscoveryFactory} PeerDiscoveryFactory
147
- * @typedef {import('libp2p-interfaces/src/peer-routing/types').PeerRouting} PeerRoutingModule
148
- * @typedef {import('libp2p-interfaces/src/crypto/types').Crypto} Crypto
149
- * @typedef {import('libp2p-interfaces/src/pubsub')} Pubsub
150
- * @typedef {import('libp2p-interfaces/src/pubsub').PubsubOptions} PubsubOptions
151
- * @typedef {import('interface-datastore').Datastore} Datastore
152
- * @typedef {import('./pnet')} Protector
153
- * @typedef {import('./types').ConnectionGater} ConnectionGater
154
- * @typedef {Object} PersistentPeerStoreOptions
155
- * @property {number} [threshold]
156
- */
157
- /**
158
- * @typedef {Object} HandlerProps
159
- * @property {Connection} connection
160
- * @property {MuxedStream} stream
161
- * @property {string} protocol
162
- *
163
- * @typedef {Object} DhtOptions
164
- * @property {boolean} [enabled = false]
165
- * @property {number} [kBucketSize = 20]
166
- * @property {boolean} [clientMode]
167
- * @property {import('libp2p-interfaces/src/types').DhtSelectors} [selectors]
168
- * @property {import('libp2p-interfaces/src/types').DhtValidators} [validators]
169
- *
170
- * @typedef {Object} KeychainOptions
171
- * @property {Datastore} [datastore]
172
- *
173
- * @typedef {Object} PeerStoreOptions
174
- * @property {boolean} persistence
175
- *
176
- * @typedef {Object} PubsubLocalOptions
177
- * @property {boolean} enabled
178
- *
179
- * @typedef {Object} MetricsOptions
180
- * @property {boolean} enabled
181
- *
182
- * @typedef {Object} RelayOptions
183
- * @property {boolean} [enabled = true]
184
- * @property {import('./circuit').RelayAdvertiseOptions} [advertise]
185
- * @property {import('./circuit').HopOptions} [hop]
186
- * @property {import('./circuit').AutoRelayOptions} [autoRelay]
187
- *
188
- * @typedef {Object} Libp2pConfig
189
- * @property {DhtOptions} [dht] dht module options
190
- * @property {import('./nat-manager').NatManagerOptions} [nat]
191
- * @property {Record<string, Object|boolean>} [peerDiscovery]
192
- * @property {PubsubLocalOptions & PubsubOptions} [pubsub] pubsub module options
193
- * @property {RelayOptions} [relay]
194
- * @property {Record<string, Object>} [transport] transport options indexed by transport key
195
- *
196
- * @typedef {Object} Libp2pModules
197
- * @property {TransportFactory[]} transport
198
- * @property {MuxerFactory[]} streamMuxer
199
- * @property {Crypto[]} connEncryption
200
- * @property {PeerDiscoveryFactory[]} [peerDiscovery]
201
- * @property {PeerRoutingModule[]} [peerRouting]
202
- * @property {ContentRoutingModule[]} [contentRouting]
203
- * @property {Object} [dht]
204
- * @property {{new(...args: any[]): Pubsub}} [pubsub]
205
- * @property {Protector} [connProtector]
206
- *
207
- * @typedef {Object} Libp2pOptions
208
- * @property {Libp2pModules} modules libp2p modules to use
209
- * @property {import('./address-manager').AddressManagerOptions} [addresses]
210
- * @property {import('./connection-manager').ConnectionManagerOptions} [connectionManager]
211
- * @property {Partial<import('./types').ConnectionGater>} [connectionGater]
212
- * @property {Datastore} [datastore]
213
- * @property {import('./dialer').DialerOptions} [dialer]
214
- * @property {import('./identify/index').HostProperties} [host] libp2p host
215
- * @property {KeychainOptions & import('./keychain/index').KeychainOptions} [keychain]
216
- * @property {MetricsOptions & import('./metrics').MetricsOptions} [metrics]
217
- * @property {import('./peer-routing').PeerRoutingOptions} [peerRouting]
218
- * @property {PeerStoreOptions} [peerStore]
219
- * @property {import('./transport-manager').TransportManagerOptions} [transportManager]
220
- * @property {Libp2pConfig} [config]
221
- *
222
- * @typedef {Object} constructorOptions
223
- * @property {PeerId} peerId
224
- *
225
- * @typedef {Object} CreateOptions
226
- * @property {PeerId} [peerId]
227
- *
228
- * @extends {EventEmitter}
229
- * @fires Libp2p#error Emitted when an error occurs
230
- * @fires Libp2p#peer:discovery Emitted when a peer is discovered
231
- */
232
- persistence: boolean;
233
- threshold: number;
234
- };
235
- peerRouting: {
236
- refreshManager: {
237
- enabled: boolean;
238
- interval: number;
239
- bootDelay: number;
240
- };
241
- };
242
- config: {
243
- protocolPrefix: string;
244
- dht: {
245
- enabled: boolean;
246
- kBucketSize: number;
247
- };
248
- nat: {
249
- enabled: boolean;
250
- ttl: number;
251
- keepAlive: boolean;
252
- gateway: null;
253
- externalIp: null;
254
- pmp: {
255
- enabled: boolean;
256
- };
257
- };
258
- peerDiscovery: {
259
- autoDial: boolean;
260
- };
261
- pubsub: {
262
- enabled: boolean;
263
- };
264
- relay: {
265
- enabled: boolean;
266
- advertise: {
267
- bootDelay: number;
268
- enabled: boolean;
269
- ttl: number;
270
- };
271
- hop: {
272
- enabled: boolean;
273
- active: boolean;
274
- };
275
- autoRelay: {
276
- enabled: boolean;
277
- maxListeners: number;
278
- };
279
- };
280
- transport: {};
281
- };
282
- } & Libp2pOptions & constructorOptions;
283
- /** @type {PeerId} */
284
- peerId: PeerId;
285
- datastore: import("interface-datastore").Datastore | undefined;
286
- metrics: Metrics | undefined;
287
- /** @type {ConnectionGater} */
288
- connectionGater: ConnectionGater;
289
- /** @type {import('./peer-store/types').PeerStore} */
290
- peerStore: import('./peer-store/types').PeerStore;
291
- addresses: {
292
- listen: never[];
293
- announce: never[];
294
- noAnnounce: never[];
295
- announceFilter: (multiaddrs: Multiaddr[]) => Multiaddr[];
296
- } & AddressManager.AddressManagerOptions;
297
- addressManager: AddressManager;
298
- _modules: Libp2pModules;
299
- _config: {
300
- protocolPrefix: string;
301
- dht: {
302
- enabled: boolean;
303
- kBucketSize: number;
304
- };
305
- nat: {
306
- enabled: boolean;
307
- ttl: number;
308
- keepAlive: boolean;
309
- gateway: null;
310
- externalIp: null;
311
- pmp: {
312
- enabled: boolean;
313
- };
314
- };
315
- peerDiscovery: {
316
- autoDial: boolean;
317
- };
318
- pubsub: {
319
- enabled: boolean;
320
- };
321
- relay: {
322
- enabled: boolean;
323
- advertise: {
324
- bootDelay: number;
325
- enabled: boolean;
326
- ttl: number;
327
- };
328
- hop: {
329
- enabled: boolean;
330
- active: boolean;
331
- };
332
- autoRelay: {
333
- enabled: boolean;
334
- maxListeners: number;
335
- };
336
- };
337
- transport: {};
338
- } & Libp2pConfig;
339
- _transport: any[];
340
- _discovery: Map<any, any>;
341
- connectionManager: ConnectionManager;
342
- _autodialler: AutoDialler;
343
- keychain: Keychain | undefined;
344
- upgrader: Upgrader;
345
- transportManager: TransportManager;
346
- natManager: NatManager;
347
- registrar: Registrar;
72
+ maxConnections: number;
348
73
  /**
349
- * Registers the `handler` for each protocol
350
- *
351
- * @param {string[]|string} protocols
352
- * @param {(props: HandlerProps) => void} handler
74
+ * The minimum number of connections to keep open
353
75
  */
354
- handle(protocols: string[] | string, handler: (props: HandlerProps) => void): Promise<void>;
355
- dialer: Dialer;
356
- relay: Relay | undefined;
357
- identifyService: IdentifyService | undefined;
358
- _dht: any;
359
- /** @type {Pubsub} */
360
- pubsub: import("libp2p-interfaces/src/pubsub");
361
- peerRouting: PeerRouting;
362
- contentRouting: ContentRouting;
76
+ minConnections: number;
363
77
  /**
364
- * Called whenever peer discovery services emit `peer` events.
365
- * Known peers may be emitted.
366
- *
367
- * @private
368
- * @param {{ id: PeerId, multiaddrs: Multiaddr[], protocols: string[] }} peer
78
+ * How long to wait between attempting to keep our number of concurrent connections
79
+ * above minConnections
369
80
  */
370
- private _onDiscoveryPeer;
371
- fetchService: FetchService;
81
+ autoDialInterval: number;
82
+ }
83
+ export interface TransportManagerConfig {
84
+ faultTolerance?: FAULT_TOLERANCE;
85
+ }
86
+ export interface PeerStoreConfig {
87
+ persistence?: boolean;
88
+ threshold?: number;
89
+ }
90
+ export interface PeerRoutingConfig {
91
+ refreshManager: RefreshManagerConfig;
92
+ }
93
+ export interface RefreshManagerConfig {
94
+ enabled?: boolean;
95
+ interval: number;
96
+ bootDelay: number;
97
+ }
98
+ export interface Libp2pInit {
99
+ peerId: PeerId;
100
+ host: HostProperties;
101
+ addresses: AddressesConfig;
102
+ connectionManager: ConnectionManagerConfig;
103
+ connectionGater: Partial<ConnectionGater>;
104
+ transportManager: TransportManagerConfig;
105
+ datastore: Datastore;
106
+ dialer: DialerInit;
107
+ metrics: MetricsInit;
108
+ peerStore: PeerStoreInit;
109
+ peerRouting: PeerRoutingConfig;
110
+ keychain: KeychainConfig;
111
+ protocolPrefix: string;
112
+ nat: NatManagerConfig;
113
+ relay: RelayConfig;
114
+ transports: Transport[];
115
+ streamMuxers?: StreamMuxerFactory[];
116
+ connectionEncryption?: ConnectionEncrypter[];
117
+ peerDiscovery?: PeerDiscovery[];
118
+ peerRouters?: PeerRouting[];
119
+ contentRouters?: ContentRouting[];
120
+ dht?: DualDHT;
121
+ pubsub?: PubSub;
122
+ connectionProtector?: ConnectionProtector;
123
+ }
124
+ export interface Libp2pEvents {
125
+ 'peer:discovery': CustomEvent<PeerInfo>;
126
+ }
127
+ export interface Libp2p extends Startable, EventEmitter<Libp2pEvents> {
128
+ peerId: PeerId;
129
+ peerStore: PeerStore;
130
+ peerRouting: PeerRouting;
131
+ contentRouting: ContentRouting;
132
+ keychain: KeyChain;
133
+ connectionManager: ConnectionManager;
134
+ pubsub?: PubSub;
135
+ dht?: DualDHT;
372
136
  /**
373
- * Starts the libp2p node and all its subsystems
374
- *
375
- * @returns {Promise<void>}
137
+ * Load keychain keys from the datastore.
138
+ * Imports the private key as 'self', if needed.
376
139
  */
377
- start(): Promise<void>;
140
+ loadKeychain: () => Promise<void>;
378
141
  /**
379
- * Stop the libp2p node by closing its listeners and open connections
142
+ * Get a deduplicated list of peer advertising multiaddrs by concatenating
143
+ * the listen addresses used by transports with any configured
144
+ * announce addresses as well as observed addresses reported by peers.
380
145
  *
381
- * @async
382
- * @returns {Promise<void>}
146
+ * If Announce addrs are specified, configured listen addresses will be
147
+ * ignored though observed addresses will still be included.
383
148
  */
384
- stop(): Promise<void>;
385
- _isStarted: boolean | undefined;
149
+ getMultiaddrs: () => Multiaddr[];
386
150
  /**
387
- * Load keychain keys from the datastore.
388
- * Imports the private key as 'self', if needed.
389
- *
390
- * @async
391
- * @returns {Promise<void>}
151
+ * Return a list of all connections this node has open, optionally filtering
152
+ * by a PeerId
392
153
  */
393
- loadKeychain(): Promise<void>;
394
- isStarted(): boolean | undefined;
154
+ getConnections: (peerId?: PeerId) => Connection[];
395
155
  /**
396
- * Gets a Map of the current connections. The keys are the stringified
397
- * `PeerId` of the peer. The value is an array of Connections to that peer.
398
- *
399
- * @returns {Map<string, Connection[]>}
156
+ * Return a list of all peers we currently have a connection open to
400
157
  */
401
- get connections(): Map<string, import("libp2p-interfaces/src/connection/connection")[]>;
158
+ getPeers: () => PeerId[];
402
159
  /**
403
160
  * Dials to the provided peer. If successful, the known metadata of the
404
161
  * peer will be added to the nodes `peerStore`
405
- *
406
- * @param {PeerId|Multiaddr|string} peer - The peer to dial
407
- * @param {object} [options]
408
- * @param {AbortSignal} [options.signal]
409
- * @returns {Promise<Connection>}
410
162
  */
411
- dial(peer: PeerId | Multiaddr | string, options?: {
412
- signal?: AbortSignal | undefined;
413
- } | undefined): Promise<Connection>;
163
+ dial: (peer: PeerId | Multiaddr, options?: AbortOptions) => Promise<Connection>;
414
164
  /**
415
165
  * Dials to the provided peer and tries to handshake with the given protocols in order.
416
166
  * If successful, the known metadata of the peer will be added to the nodes `peerStore`,
417
167
  * and the `MuxedStream` will be returned together with the successful negotiated protocol.
418
- *
419
- * @async
420
- * @param {PeerId|Multiaddr|string} peer - The peer to dial
421
- * @param {string[]|string} protocols
422
- * @param {object} [options]
423
- * @param {AbortSignal} [options.signal]
424
- */
425
- dialProtocol(peer: PeerId | Multiaddr | string, protocols: string[] | string, options?: {
426
- signal?: AbortSignal | undefined;
427
- } | undefined): Promise<{
428
- stream: import("libp2p-interfaces/src/stream-muxer/types").MuxedStream;
429
- protocol: string;
430
- }>;
431
- /**
432
- * @async
433
- * @param {PeerId|Multiaddr|string} peer - The peer to dial
434
- * @param {object} [options]
435
- * @returns {Promise<Connection>}
436
168
  */
437
- _dial(peer: PeerId | Multiaddr | string, options?: object | undefined): Promise<Connection>;
438
- /**
439
- * Get a deduplicated list of peer advertising multiaddrs by concatenating
440
- * the listen addresses used by transports with any configured
441
- * announce addresses as well as observed addresses reported by peers.
442
- *
443
- * If Announce addrs are specified, configured listen addresses will be
444
- * ignored though observed addresses will still be included.
445
- *
446
- * @returns {Multiaddr[]}
447
- */
448
- get multiaddrs(): Multiaddr[];
169
+ dialProtocol: (peer: PeerId | Multiaddr, protocols: string | string[], options?: AbortOptions) => Promise<ProtocolStream>;
449
170
  /**
450
171
  * Disconnects all connections to the given `peer`
451
- *
452
- * @param {PeerId|Multiaddr|string} peer - the peer to close connections to
453
- * @returns {Promise<void>}
454
172
  */
455
- hangUp(peer: PeerId | Multiaddr | string): Promise<void>;
173
+ hangUp: (peer: PeerId | Multiaddr | string) => Promise<void>;
456
174
  /**
457
- * Sends a request to fetch the value associated with the given key from the given peer.
458
- *
459
- * @param {PeerId|Multiaddr} peer
460
- * @param {string} key
461
- * @returns {Promise<Uint8Array | null>}
462
- */
463
- fetch(peer: PeerId | Multiaddr, key: string): Promise<Uint8Array | null>;
464
- /**
465
- * Pings the given peer in order to obtain the operation latency.
466
- *
467
- * @param {PeerId|Multiaddr|string} peer - The peer to ping
468
- * @returns {Promise<number>}
175
+ * Registers the `handler` for each protocol
469
176
  */
470
- ping(peer: PeerId | Multiaddr | string): Promise<number>;
177
+ handle: (protocol: string | string[], handler: StreamHandler) => Promise<void>;
471
178
  /**
472
179
  * Removes the handler for each protocol. The protocol
473
180
  * will no longer be supported on streams.
474
- *
475
- * @param {string[]|string} protocols
476
181
  */
477
- unhandle(protocols: string[] | string): Promise<void>;
478
- _onStarting(): Promise<void>;
182
+ unhandle: (protocols: string[] | string) => Promise<void>;
479
183
  /**
480
- * Called when libp2p has started and before it returns
481
- *
482
- * @private
483
- */
484
- private _onDidStart;
485
- /**
486
- * Will dial to the given `peerId` if the current number of
487
- * connected peers is less than the configured `ConnectionManager`
488
- * minConnections.
489
- *
490
- * @private
491
- * @param {PeerId} peerId
184
+ * Pings the given peer in order to obtain the operation latency
492
185
  */
493
- private _maybeConnect;
186
+ ping: (peer: Multiaddr | PeerId) => Promise<number>;
494
187
  /**
495
- * Initializes and starts peer discovery services
496
- *
497
- * @async
498
- * @private
188
+ * Sends a request to fetch the value associated with the given key from the given peer.
499
189
  */
500
- private _setupPeerDiscovery;
190
+ fetch: (peer: PeerId | Multiaddr | string, key: string) => Promise<Uint8Array | null>;
501
191
  }
502
- declare namespace Libp2p {
503
- export { Connection, MuxedStream, TransportFactory, MuxerFactory, ContentRoutingModule, PeerDiscoveryFactory, PeerRoutingModule, Crypto, Pubsub, PubsubOptions, Datastore, Protector, ConnectionGater, PersistentPeerStoreOptions, HandlerProps, DhtOptions, KeychainOptions, PeerStoreOptions, PubsubLocalOptions, MetricsOptions, RelayOptions, Libp2pConfig, Libp2pModules, Libp2pOptions, constructorOptions, CreateOptions };
504
- }
505
- import { EventEmitter } from "events";
506
- type Libp2pOptions = {
507
- /**
508
- * libp2p modules to use
509
- */
510
- modules: Libp2pModules;
511
- addresses?: AddressManager.AddressManagerOptions | undefined;
512
- connectionManager?: ConnectionManager.ConnectionManagerOptions | undefined;
513
- connectionGater?: Partial<import("./types").ConnectionGater> | undefined;
514
- datastore?: import("interface-datastore").Datastore | undefined;
515
- dialer?: Dialer.DialerOptions | undefined;
516
- /**
517
- * libp2p host
518
- */
519
- host?: IdentifyService.HostProperties | undefined;
520
- keychain?: (KeychainOptions & Keychain.KeychainOptions) | undefined;
521
- metrics?: (MetricsOptions & Metrics.MetricsOptions) | undefined;
522
- peerRouting?: PeerRouting.PeerRoutingOptions | undefined;
523
- peerStore?: PeerStoreOptions | undefined;
524
- transportManager?: TransportManager.TransportManagerOptions | undefined;
525
- config?: Libp2pConfig | undefined;
526
- };
527
- type constructorOptions = {
528
- peerId: PeerId;
529
- };
530
- import PeerId = require("peer-id");
531
- import Metrics = require("./metrics");
532
- type ConnectionGater = import('./types').ConnectionGater;
533
- import AddressManager = require("./address-manager");
534
- type Libp2pModules = {
535
- transport: import("libp2p-interfaces/src/transport/types").TransportFactory<any, any>[];
536
- streamMuxer: MuxerFactory[];
537
- connEncryption: Crypto[];
538
- peerDiscovery?: import("libp2p-interfaces/src/peer-discovery/types").PeerDiscoveryFactory[] | undefined;
539
- peerRouting?: import("libp2p-interfaces/src/peer-routing/types").PeerRouting[] | undefined;
540
- contentRouting?: import("libp2p-interfaces/src/content-routing/types").ContentRouting[] | undefined;
541
- dht?: Object | undefined;
542
- pubsub?: (new (...args: any[]) => Pubsub) | undefined;
543
- connProtector?: import("./pnet") | undefined;
544
- };
545
- type Libp2pConfig = {
546
- /**
547
- * dht module options
548
- */
549
- dht?: DhtOptions | undefined;
550
- nat?: NatManager.NatManagerOptions | undefined;
551
- peerDiscovery?: Record<string, boolean | Object> | undefined;
552
- /**
553
- * pubsub module options
554
- */
555
- pubsub?: (PubsubLocalOptions & import("libp2p-interfaces/src/pubsub").PubsubOptions) | undefined;
556
- relay?: RelayOptions | undefined;
557
- /**
558
- * transport options indexed by transport key
559
- */
560
- transport?: Record<string, Object> | undefined;
561
- };
562
- import ConnectionManager = require("./connection-manager");
563
- import AutoDialler = require("./connection-manager/auto-dialler");
564
- import Keychain = require("./keychain");
565
- import Upgrader = require("./upgrader");
566
- import TransportManager = require("./transport-manager");
567
- import NatManager = require("./nat-manager");
568
- import Registrar = require("./registrar");
569
- type HandlerProps = {
570
- connection: Connection;
571
- stream: MuxedStream;
572
- protocol: string;
573
- };
574
- import Dialer = require("./dialer");
575
- import Relay = require("./circuit");
576
- import IdentifyService = require("./identify");
577
- import PeerRouting = require("./peer-routing");
578
- import ContentRouting = require("./content-routing");
579
- import FetchService = require("./fetch");
580
- import { Multiaddr } from "multiaddr";
581
- type Connection = import("libp2p-interfaces/src/connection/connection");
582
- type CreateOptions = {
583
- peerId?: PeerId | undefined;
584
- };
585
- type MuxedStream = import('libp2p-interfaces/src/stream-muxer/types').MuxedStream;
586
- type TransportFactory = import('libp2p-interfaces/src/transport/types').TransportFactory<any, any>;
587
- type MuxerFactory = import('libp2p-interfaces/src/stream-muxer/types').MuxerFactory;
588
- type ContentRoutingModule = import('libp2p-interfaces/src/content-routing/types').ContentRouting;
589
- type PeerDiscoveryFactory = import('libp2p-interfaces/src/peer-discovery/types').PeerDiscoveryFactory;
590
- type PeerRoutingModule = import('libp2p-interfaces/src/peer-routing/types').PeerRouting;
591
- type Crypto = import('libp2p-interfaces/src/crypto/types').Crypto;
592
- type Pubsub = import('libp2p-interfaces/src/pubsub');
593
- type PubsubOptions = import('libp2p-interfaces/src/pubsub').PubsubOptions;
594
- type Datastore = import('interface-datastore').Datastore;
595
- type Protector = import('./pnet');
596
- type PersistentPeerStoreOptions = {
597
- threshold?: number | undefined;
598
- };
599
- type DhtOptions = {
600
- enabled?: boolean | undefined;
601
- kBucketSize?: number | undefined;
602
- clientMode?: boolean | undefined;
603
- selectors?: import("libp2p-interfaces/src/types").DhtSelectors | undefined;
604
- validators?: import("libp2p-interfaces/src/types").DhtValidators | undefined;
605
- };
606
- type KeychainOptions = {
607
- datastore?: import("interface-datastore").Datastore | undefined;
608
- };
609
- type PeerStoreOptions = {
610
- persistence: boolean;
611
- };
612
- type PubsubLocalOptions = {
613
- enabled: boolean;
614
- };
615
- type MetricsOptions = {
616
- enabled: boolean;
617
- };
618
- type RelayOptions = {
619
- enabled?: boolean | undefined;
620
- advertise?: Relay.RelayAdvertiseOptions | undefined;
621
- hop?: Relay.HopOptions | undefined;
622
- autoRelay?: Relay.AutoRelayOptions | undefined;
623
- };
192
+ export declare type Libp2pOptions = RecursivePartial<Libp2pInit>;
193
+ /**
194
+ * Returns a new instance of the Libp2p interface, generating a new PeerId
195
+ * if one is not passed as part of the options.
196
+ */
197
+ export declare function createLibp2p(options: Libp2pOptions): Promise<Libp2p>;
624
198
  //# sourceMappingURL=index.d.ts.map