libp2p 0.36.0 → 0.36.2-1473044

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 (415) 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 +26 -53
  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 +18 -10
  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 +19 -38
  20. package/dist/src/circuit/circuit/stream-handler.d.ts.map +1 -1
  21. package/dist/src/circuit/circuit/stream-handler.js +59 -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/pb/index.d.ts +51 -0
  44. package/dist/src/circuit/pb/index.d.ts.map +1 -0
  45. package/dist/src/circuit/pb/index.js +72 -0
  46. package/dist/src/circuit/pb/index.js.map +1 -0
  47. package/dist/src/circuit/transport.d.ts +18 -78
  48. package/dist/src/circuit/transport.d.ts.map +1 -1
  49. package/dist/src/circuit/transport.js +190 -0
  50. package/dist/src/circuit/transport.js.map +1 -0
  51. package/dist/src/circuit/utils.d.ts +5 -2
  52. package/dist/src/circuit/utils.d.ts.map +1 -1
  53. package/dist/src/circuit/utils.js +11 -0
  54. package/dist/src/circuit/utils.js.map +1 -0
  55. package/dist/src/config.d.ts +3 -85
  56. package/dist/src/config.d.ts.map +1 -1
  57. package/dist/src/config.js +93 -0
  58. package/dist/src/config.js.map +1 -0
  59. package/dist/src/connection-manager/auto-dialler.d.ts +24 -41
  60. package/dist/src/connection-manager/auto-dialler.d.ts.map +1 -1
  61. package/dist/src/connection-manager/auto-dialler.js +105 -0
  62. package/dist/src/connection-manager/auto-dialler.js.map +1 -0
  63. package/dist/src/connection-manager/index.d.ts +79 -144
  64. package/dist/src/connection-manager/index.d.ts.map +1 -1
  65. package/dist/src/connection-manager/index.js +295 -0
  66. package/dist/src/connection-manager/index.js.map +1 -0
  67. package/dist/src/connection-manager/latency-monitor.d.ts +72 -97
  68. package/dist/src/connection-manager/latency-monitor.d.ts.map +1 -1
  69. package/dist/src/connection-manager/latency-monitor.js +220 -0
  70. package/dist/src/connection-manager/latency-monitor.js.map +1 -0
  71. package/dist/src/connection-manager/visibility-change-emitter.d.ts +15 -16
  72. package/dist/src/connection-manager/visibility-change-emitter.d.ts.map +1 -1
  73. package/dist/src/connection-manager/visibility-change-emitter.js +118 -0
  74. package/dist/src/connection-manager/visibility-change-emitter.js.map +1 -0
  75. package/dist/src/constants.d.ts +22 -10
  76. package/dist/src/constants.d.ts.map +1 -1
  77. package/dist/src/constants.js +27 -0
  78. package/dist/src/constants.js.map +1 -0
  79. package/dist/src/content-routing/index.d.ts +26 -81
  80. package/dist/src/content-routing/index.d.ts.map +1 -1
  81. package/dist/src/content-routing/index.js +99 -0
  82. package/dist/src/content-routing/index.js.map +1 -0
  83. package/dist/src/content-routing/utils.d.ts +6 -49
  84. package/dist/src/content-routing/utils.d.ts.map +1 -1
  85. package/dist/src/content-routing/utils.js +42 -0
  86. package/dist/src/content-routing/utils.js.map +1 -0
  87. package/dist/src/dht/dht-content-routing.d.ts +10 -24
  88. package/dist/src/dht/dht-content-routing.d.ts.map +1 -1
  89. package/dist/src/dht/dht-content-routing.js +32 -0
  90. package/dist/src/dht/dht-content-routing.js.map +1 -0
  91. package/dist/src/dht/dht-peer-routing.d.ts +9 -24
  92. package/dist/src/dht/dht-peer-routing.d.ts.map +1 -1
  93. package/dist/src/dht/dht-peer-routing.js +26 -0
  94. package/dist/src/dht/dht-peer-routing.js.map +1 -0
  95. package/dist/src/dialer/auto-dialer.d.ts +14 -0
  96. package/dist/src/dialer/auto-dialer.d.ts.map +1 -0
  97. package/dist/src/dialer/auto-dialer.js +24 -0
  98. package/dist/src/dialer/auto-dialer.js.map +1 -0
  99. package/dist/src/dialer/dial-request.d.ts +18 -46
  100. package/dist/src/dialer/dial-request.d.ts.map +1 -1
  101. package/dist/src/dialer/dial-request.js +83 -0
  102. package/dist/src/dialer/dial-request.js.map +1 -0
  103. package/dist/src/dialer/index.d.ts +41 -148
  104. package/dist/src/dialer/index.d.ts.map +1 -1
  105. package/dist/src/dialer/index.js +280 -0
  106. package/dist/src/dialer/index.js.map +1 -0
  107. package/dist/src/errors.d.ts +68 -63
  108. package/dist/src/errors.d.ts.map +1 -1
  109. package/dist/src/errors.js +73 -0
  110. package/dist/src/errors.js.map +1 -0
  111. package/dist/src/fetch/constants.d.ts +1 -1
  112. package/dist/src/fetch/constants.d.ts.map +1 -1
  113. package/dist/src/fetch/constants.js +3 -0
  114. package/dist/src/fetch/constants.js.map +1 -0
  115. package/dist/src/fetch/index.d.ts +30 -49
  116. package/dist/src/fetch/index.d.ts.map +1 -1
  117. package/dist/src/fetch/index.js +129 -0
  118. package/dist/src/fetch/index.js.map +1 -0
  119. package/dist/src/fetch/pb/proto.d.ts +26 -0
  120. package/dist/src/fetch/pb/proto.d.ts.map +1 -0
  121. package/dist/src/fetch/pb/proto.js +44 -0
  122. package/dist/src/fetch/pb/proto.js.map +1 -0
  123. package/dist/src/get-peer.d.ts +4 -11
  124. package/dist/src/get-peer.d.ts.map +1 -1
  125. package/dist/src/get-peer.js +43 -0
  126. package/dist/src/get-peer.js.map +1 -0
  127. package/dist/src/identify/consts.d.ts +9 -9
  128. package/dist/src/identify/consts.d.ts.map +1 -1
  129. package/dist/src/identify/consts.js +11 -0
  130. package/dist/src/identify/consts.js.map +1 -0
  131. package/dist/src/identify/index.d.ts +42 -96
  132. package/dist/src/identify/index.d.ts.map +1 -1
  133. package/dist/src/identify/index.js +322 -0
  134. package/dist/src/identify/index.js.map +1 -0
  135. package/dist/src/identify/pb/message.d.ts +15 -0
  136. package/dist/src/identify/pb/message.d.ts.map +1 -0
  137. package/dist/src/identify/pb/message.js +24 -0
  138. package/dist/src/identify/pb/message.js.map +1 -0
  139. package/dist/src/index.d.ts +162 -581
  140. package/dist/src/index.d.ts.map +1 -1
  141. package/dist/src/index.js +9 -0
  142. package/dist/src/index.js.map +1 -0
  143. package/dist/src/insecure/index.d.ts +9 -0
  144. package/dist/src/insecure/index.d.ts.map +1 -0
  145. package/dist/src/insecure/index.js +81 -0
  146. package/dist/src/insecure/index.js.map +1 -0
  147. package/dist/src/insecure/pb/proto.d.ts +28 -0
  148. package/dist/src/insecure/pb/proto.d.ts.map +1 -0
  149. package/dist/src/insecure/pb/proto.js +46 -0
  150. package/dist/src/insecure/pb/proto.js.map +1 -0
  151. package/dist/src/keychain/cms.d.ts +6 -14
  152. package/dist/src/keychain/cms.d.ts.map +1 -1
  153. package/dist/src/keychain/cms.js +129 -0
  154. package/dist/src/keychain/cms.js.map +1 -0
  155. package/dist/src/keychain/index.d.ts +61 -81
  156. package/dist/src/keychain/index.d.ts.map +1 -1
  157. package/dist/src/keychain/index.js +493 -0
  158. package/dist/src/keychain/index.js.map +1 -0
  159. package/dist/src/keychain/util.d.ts +3 -6
  160. package/dist/src/keychain/util.d.ts.map +1 -1
  161. package/dist/src/keychain/util.js +79 -0
  162. package/dist/src/keychain/util.js.map +1 -0
  163. package/dist/src/libp2p.d.ts +78 -0
  164. package/dist/src/libp2p.d.ts.map +1 -0
  165. package/dist/src/libp2p.js +375 -0
  166. package/dist/src/libp2p.js.map +1 -0
  167. package/dist/src/metrics/index.d.ts +47 -104
  168. package/dist/src/metrics/index.d.ts.map +1 -1
  169. package/dist/src/metrics/index.js +231 -0
  170. package/dist/src/metrics/index.js.map +1 -0
  171. package/dist/src/metrics/moving-average.d.ts +14 -0
  172. package/dist/src/metrics/moving-average.d.ts.map +1 -0
  173. package/dist/src/metrics/moving-average.js +40 -0
  174. package/dist/src/metrics/moving-average.js.map +1 -0
  175. package/dist/src/metrics/stats.d.ts +41 -93
  176. package/dist/src/metrics/stats.d.ts.map +1 -1
  177. package/dist/src/metrics/stats.js +183 -0
  178. package/dist/src/metrics/stats.js.map +1 -0
  179. package/dist/src/nat-manager.d.ts +42 -99
  180. package/dist/src/nat-manager.d.ts.map +1 -1
  181. package/dist/src/nat-manager.js +114 -0
  182. package/dist/src/nat-manager.js.map +1 -0
  183. package/dist/src/peer-record-updater.d.ts +15 -0
  184. package/dist/src/peer-record-updater.d.ts.map +1 -0
  185. package/dist/src/peer-record-updater.js +44 -0
  186. package/dist/src/peer-record-updater.js.map +1 -0
  187. package/dist/src/peer-routing.d.ts +39 -84
  188. package/dist/src/peer-routing.d.ts.map +1 -1
  189. package/dist/src/peer-routing.js +108 -0
  190. package/dist/src/peer-routing.js.map +1 -0
  191. package/dist/src/ping/constants.d.ts +4 -4
  192. package/dist/src/ping/constants.d.ts.map +1 -1
  193. package/dist/src/ping/constants.js +5 -0
  194. package/dist/src/ping/constants.js.map +1 -0
  195. package/dist/src/ping/index.d.ts +26 -33
  196. package/dist/src/ping/index.d.ts.map +1 -1
  197. package/dist/src/ping/index.js +56 -0
  198. package/dist/src/ping/index.js.map +1 -0
  199. package/dist/src/pnet/crypto.d.ts +15 -5
  200. package/dist/src/pnet/crypto.d.ts.map +1 -1
  201. package/dist/src/pnet/crypto.js +60 -0
  202. package/dist/src/pnet/crypto.js.map +1 -0
  203. package/dist/src/pnet/errors.d.ts +5 -5
  204. package/dist/src/pnet/errors.d.ts.map +1 -1
  205. package/dist/src/pnet/errors.js +6 -0
  206. package/dist/src/pnet/errors.js.map +1 -0
  207. package/dist/src/pnet/index.d.ts +11 -20
  208. package/dist/src/pnet/index.d.ts.map +1 -1
  209. package/dist/src/pnet/index.js +66 -0
  210. package/dist/src/pnet/index.js.map +1 -0
  211. package/dist/src/pnet/key-generator.d.ts +3 -7
  212. package/dist/src/pnet/key-generator.d.ts.map +1 -1
  213. package/dist/src/pnet/key-generator.js +25 -0
  214. package/dist/src/pnet/key-generator.js.map +1 -0
  215. package/dist/src/registrar.d.ts +27 -65
  216. package/dist/src/registrar.d.ts.map +1 -1
  217. package/dist/src/registrar.js +159 -0
  218. package/dist/src/registrar.js.map +1 -0
  219. package/dist/src/transport-manager.d.ts +34 -82
  220. package/dist/src/transport-manager.d.ts.map +1 -1
  221. package/dist/src/transport-manager.js +223 -0
  222. package/dist/src/transport-manager.js.map +1 -0
  223. package/dist/src/upgrader.d.ts +49 -129
  224. package/dist/src/upgrader.d.ts.map +1 -1
  225. package/dist/src/upgrader.js +402 -0
  226. package/dist/src/upgrader.js.map +1 -0
  227. package/dist/src/version.d.ts +3 -0
  228. package/dist/src/version.d.ts.map +1 -0
  229. package/dist/src/version.js +3 -0
  230. package/dist/src/version.js.map +1 -0
  231. package/package.json +150 -197
  232. package/src/address-manager/index.ts +129 -0
  233. package/src/circuit/README.md +16 -11
  234. package/src/circuit/auto-relay.ts +284 -0
  235. package/src/circuit/circuit/hop.ts +211 -0
  236. package/src/circuit/circuit/stop.ts +78 -0
  237. package/src/circuit/circuit/stream-handler.ts +86 -0
  238. package/src/circuit/circuit/{utils.js → utils.ts} +9 -25
  239. package/src/circuit/constants.ts +31 -0
  240. package/src/circuit/index.ts +120 -0
  241. package/src/circuit/{listener.js → listener.ts} +21 -27
  242. package/src/circuit/multicodec.ts +2 -0
  243. package/src/circuit/{protocol → pb}/index.proto +1 -1
  244. package/src/circuit/pb/index.ts +88 -0
  245. package/src/circuit/transport.ts +216 -0
  246. package/src/circuit/utils.ts +12 -0
  247. package/src/config.ts +101 -0
  248. package/src/connection-manager/auto-dialler.ts +154 -0
  249. package/src/connection-manager/index.ts +422 -0
  250. package/src/connection-manager/latency-monitor.ts +319 -0
  251. package/src/connection-manager/{visibility-change-emitter.js → visibility-change-emitter.ts} +48 -38
  252. package/src/constants.ts +31 -0
  253. package/src/content-routing/index.ts +143 -0
  254. package/src/content-routing/utils.ts +54 -0
  255. package/src/dht/dht-content-routing.ts +43 -0
  256. package/src/dht/dht-peer-routing.ts +35 -0
  257. package/src/dialer/auto-dialer.ts +40 -0
  258. package/src/dialer/{dial-request.js → dial-request.ts} +60 -51
  259. package/src/dialer/index.ts +371 -0
  260. package/src/errors.ts +71 -0
  261. package/src/fetch/README.md +1 -1
  262. package/src/fetch/constants.ts +3 -0
  263. package/src/fetch/index.ts +167 -0
  264. package/src/fetch/{proto.proto → pb/proto.proto} +0 -0
  265. package/src/fetch/pb/proto.ts +58 -0
  266. package/src/get-peer.ts +57 -0
  267. package/src/identify/consts.ts +13 -0
  268. package/src/identify/index.ts +445 -0
  269. package/src/identify/{message.proto → pb/message.proto} +0 -0
  270. package/src/identify/pb/message.ts +36 -0
  271. package/src/index.ts +242 -0
  272. package/src/insecure/index.ts +101 -0
  273. package/src/insecure/{proto.proto → pb/proto.proto} +0 -0
  274. package/src/insecure/pb/proto.ts +61 -0
  275. package/src/keychain/{cms.js → cms.ts} +62 -58
  276. package/src/keychain/index.ts +588 -0
  277. package/src/keychain/{util.js → util.ts} +7 -17
  278. package/src/libp2p.ts +513 -0
  279. package/src/metrics/index.ts +310 -0
  280. package/src/metrics/moving-average.ts +53 -0
  281. package/src/metrics/stats.ts +238 -0
  282. package/src/nat-manager.ts +194 -0
  283. package/src/peer-record-updater.ts +55 -0
  284. package/src/peer-routing.ts +185 -0
  285. package/src/ping/README.md +1 -1
  286. package/src/ping/constants.ts +5 -0
  287. package/src/ping/index.ts +83 -0
  288. package/src/pnet/README.md +2 -2
  289. package/src/pnet/crypto.ts +67 -0
  290. package/src/pnet/errors.ts +5 -0
  291. package/src/pnet/index.ts +95 -0
  292. package/src/pnet/key-generator.ts +28 -0
  293. package/src/registrar.ts +205 -0
  294. package/src/transport-manager.ts +279 -0
  295. package/src/upgrader.ts +499 -0
  296. package/src/version.ts +3 -0
  297. package/dist/index.min.js +0 -55
  298. package/dist/src/circuit/protocol/index.d.ts +0 -173
  299. package/dist/src/fetch/proto.d.ts +0 -134
  300. package/dist/src/identify/message.d.ts +0 -95
  301. package/dist/src/insecure/plaintext.d.ts +0 -12
  302. package/dist/src/insecure/plaintext.d.ts.map +0 -1
  303. package/dist/src/insecure/proto.d.ts +0 -128
  304. package/dist/src/metrics/old-peers.d.ts +0 -3
  305. package/dist/src/metrics/old-peers.d.ts.map +0 -1
  306. package/dist/src/metrics/tracked-map.d.ts +0 -8
  307. package/dist/src/metrics/tracked-map.d.ts.map +0 -1
  308. package/dist/src/peer-store/address-book.d.ts +0 -67
  309. package/dist/src/peer-store/address-book.d.ts.map +0 -1
  310. package/dist/src/peer-store/index.d.ts +0 -58
  311. package/dist/src/peer-store/index.d.ts.map +0 -1
  312. package/dist/src/peer-store/key-book.d.ts +0 -40
  313. package/dist/src/peer-store/key-book.d.ts.map +0 -1
  314. package/dist/src/peer-store/metadata-book.d.ts +0 -58
  315. package/dist/src/peer-store/metadata-book.d.ts.map +0 -1
  316. package/dist/src/peer-store/pb/peer.d.ts +0 -222
  317. package/dist/src/peer-store/proto-book.d.ts +0 -43
  318. package/dist/src/peer-store/proto-book.d.ts.map +0 -1
  319. package/dist/src/peer-store/store.d.ts +0 -73
  320. package/dist/src/peer-store/store.d.ts.map +0 -1
  321. package/dist/src/peer-store/types.d.ts +0 -202
  322. package/dist/src/peer-store/types.d.ts.map +0 -1
  323. package/dist/src/ping/util.d.ts +0 -5
  324. package/dist/src/ping/util.d.ts.map +0 -1
  325. package/dist/src/pubsub-adapter.d.ts +0 -22
  326. package/dist/src/pubsub-adapter.d.ts.map +0 -1
  327. package/dist/src/record/envelope/envelope.d.ts +0 -77
  328. package/dist/src/record/envelope/index.d.ts +0 -80
  329. package/dist/src/record/envelope/index.d.ts.map +0 -1
  330. package/dist/src/record/peer-record/consts.d.ts +0 -4
  331. package/dist/src/record/peer-record/consts.d.ts.map +0 -1
  332. package/dist/src/record/peer-record/index.d.ts +0 -60
  333. package/dist/src/record/peer-record/index.d.ts.map +0 -1
  334. package/dist/src/record/peer-record/peer-record.d.ts +0 -133
  335. package/dist/src/record/utils.d.ts +0 -12
  336. package/dist/src/record/utils.d.ts.map +0 -1
  337. package/dist/src/types.d.ts +0 -90
  338. package/dist/src/types.d.ts.map +0 -1
  339. package/src/address-manager/index.js +0 -96
  340. package/src/circuit/auto-relay.js +0 -302
  341. package/src/circuit/circuit/hop.js +0 -205
  342. package/src/circuit/circuit/stop.js +0 -81
  343. package/src/circuit/circuit/stream-handler.js +0 -94
  344. package/src/circuit/constants.js +0 -12
  345. package/src/circuit/index.js +0 -102
  346. package/src/circuit/multicodec.js +0 -5
  347. package/src/circuit/protocol/index.d.ts +0 -173
  348. package/src/circuit/protocol/index.js +0 -530
  349. package/src/circuit/transport.js +0 -229
  350. package/src/circuit/utils.js +0 -17
  351. package/src/config.js +0 -114
  352. package/src/connection-manager/auto-dialler.js +0 -132
  353. package/src/connection-manager/index.js +0 -363
  354. package/src/connection-manager/latency-monitor.js +0 -264
  355. package/src/constants.js +0 -18
  356. package/src/content-routing/index.js +0 -163
  357. package/src/content-routing/utils.js +0 -89
  358. package/src/dht/dht-content-routing.js +0 -44
  359. package/src/dht/dht-peer-routing.js +0 -51
  360. package/src/dialer/index.js +0 -376
  361. package/src/errors.js +0 -66
  362. package/src/fetch/constants.js +0 -6
  363. package/src/fetch/index.js +0 -159
  364. package/src/fetch/proto.d.ts +0 -134
  365. package/src/fetch/proto.js +0 -333
  366. package/src/get-peer.js +0 -49
  367. package/src/identify/consts.js +0 -15
  368. package/src/identify/index.js +0 -384
  369. package/src/identify/message.d.ts +0 -95
  370. package/src/identify/message.js +0 -328
  371. package/src/index.js +0 -811
  372. package/src/insecure/plaintext.js +0 -95
  373. package/src/insecure/proto.d.ts +0 -128
  374. package/src/insecure/proto.js +0 -371
  375. package/src/keychain/index.js +0 -561
  376. package/src/metrics/index.js +0 -290
  377. package/src/metrics/old-peers.js +0 -16
  378. package/src/metrics/stats.js +0 -270
  379. package/src/metrics/tracked-map.js +0 -94
  380. package/src/nat-manager.js +0 -197
  381. package/src/peer-routing.js +0 -176
  382. package/src/peer-store/README.md +0 -145
  383. package/src/peer-store/address-book.js +0 -382
  384. package/src/peer-store/index.js +0 -121
  385. package/src/peer-store/key-book.js +0 -141
  386. package/src/peer-store/metadata-book.js +0 -250
  387. package/src/peer-store/pb/peer.d.ts +0 -222
  388. package/src/peer-store/pb/peer.js +0 -643
  389. package/src/peer-store/pb/peer.proto +0 -31
  390. package/src/peer-store/proto-book.js +0 -237
  391. package/src/peer-store/store.js +0 -263
  392. package/src/peer-store/types.ts +0 -245
  393. package/src/ping/constants.js +0 -8
  394. package/src/ping/index.js +0 -85
  395. package/src/ping/util.js +0 -18
  396. package/src/pnet/crypto.js +0 -84
  397. package/src/pnet/errors.js +0 -7
  398. package/src/pnet/index.js +0 -86
  399. package/src/pnet/key-generator.js +0 -33
  400. package/src/pubsub-adapter.js +0 -61
  401. package/src/record/README.md +0 -130
  402. package/src/record/envelope/envelope.d.ts +0 -77
  403. package/src/record/envelope/envelope.js +0 -243
  404. package/src/record/envelope/envelope.proto +0 -19
  405. package/src/record/envelope/index.js +0 -183
  406. package/src/record/peer-record/consts.js +0 -14
  407. package/src/record/peer-record/index.js +0 -113
  408. package/src/record/peer-record/peer-record.d.ts +0 -133
  409. package/src/record/peer-record/peer-record.js +0 -367
  410. package/src/record/peer-record/peer-record.proto +0 -18
  411. package/src/record/utils.js +0 -25
  412. package/src/registrar.js +0 -127
  413. package/src/transport-manager.js +0 -269
  414. package/src/types.ts +0 -98
  415. package/src/upgrader.js +0 -492
@@ -1,624 +1,205 @@
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 { FaultTolerance } 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, Registrar, StreamHandler } from '@libp2p/interfaces/registrar';
19
+ import type { Metrics, 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?: FaultTolerance;
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
+ registrar: Registrar;
135
+ metrics?: Metrics;
136
+ pubsub?: PubSub;
137
+ dht?: DualDHT;
372
138
  /**
373
- * Starts the libp2p node and all its subsystems
374
- *
375
- * @returns {Promise<void>}
139
+ * Load keychain keys from the datastore.
140
+ * Imports the private key as 'self', if needed.
376
141
  */
377
- start(): Promise<void>;
142
+ loadKeychain: () => Promise<void>;
378
143
  /**
379
- * Stop the libp2p node by closing its listeners and open connections
144
+ * Get a deduplicated list of peer advertising multiaddrs by concatenating
145
+ * the listen addresses used by transports with any configured
146
+ * announce addresses as well as observed addresses reported by peers.
380
147
  *
381
- * @async
382
- * @returns {Promise<void>}
148
+ * If Announce addrs are specified, configured listen addresses will be
149
+ * ignored though observed addresses will still be included.
383
150
  */
384
- stop(): Promise<void>;
385
- _isStarted: boolean | undefined;
151
+ getMultiaddrs: () => Multiaddr[];
386
152
  /**
387
- * Load keychain keys from the datastore.
388
- * Imports the private key as 'self', if needed.
389
- *
390
- * @async
391
- * @returns {Promise<void>}
153
+ * Return a list of all connections this node has open, optionally filtering
154
+ * by a PeerId
392
155
  */
393
- loadKeychain(): Promise<void>;
394
- isStarted(): boolean | undefined;
156
+ getConnections: (peerId?: PeerId) => Connection[];
395
157
  /**
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[]>}
158
+ * Return a list of all peers we currently have a connection open to
400
159
  */
401
- get connections(): Map<string, import("libp2p-interfaces/src/connection/connection")[]>;
160
+ getPeers: () => PeerId[];
402
161
  /**
403
162
  * Dials to the provided peer. If successful, the known metadata of the
404
163
  * 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
164
  */
411
- dial(peer: PeerId | Multiaddr | string, options?: {
412
- signal?: AbortSignal | undefined;
413
- } | undefined): Promise<Connection>;
165
+ dial: (peer: PeerId | Multiaddr, options?: AbortOptions) => Promise<Connection>;
414
166
  /**
415
167
  * Dials to the provided peer and tries to handshake with the given protocols in order.
416
168
  * If successful, the known metadata of the peer will be added to the nodes `peerStore`,
417
169
  * 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
170
  */
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
- */
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[];
171
+ dialProtocol: (peer: PeerId | Multiaddr, protocols: string | string[], options?: AbortOptions) => Promise<ProtocolStream>;
449
172
  /**
450
173
  * 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
174
  */
455
- hangUp(peer: PeerId | Multiaddr | string): Promise<void>;
175
+ hangUp: (peer: PeerId | Multiaddr | string) => Promise<void>;
456
176
  /**
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>}
177
+ * Registers the `handler` for each protocol
469
178
  */
470
- ping(peer: PeerId | Multiaddr | string): Promise<number>;
179
+ handle: (protocol: string | string[], handler: StreamHandler) => Promise<void>;
471
180
  /**
472
181
  * Removes the handler for each protocol. The protocol
473
182
  * will no longer be supported on streams.
474
- *
475
- * @param {string[]|string} protocols
476
183
  */
477
- unhandle(protocols: string[] | string): Promise<void>;
478
- _onStarting(): Promise<void>;
184
+ unhandle: (protocols: string[] | string) => Promise<void>;
479
185
  /**
480
- * Called when libp2p has started and before it returns
481
- *
482
- * @private
186
+ * Pings the given peer in order to obtain the operation latency
483
187
  */
484
- private _onDidStart;
188
+ ping: (peer: Multiaddr | PeerId) => Promise<number>;
485
189
  /**
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
190
+ * Sends a request to fetch the value associated with the given key from the given peer.
492
191
  */
493
- private _maybeConnect;
192
+ fetch: (peer: PeerId | Multiaddr | string, key: string) => Promise<Uint8Array | null>;
494
193
  /**
495
- * Initializes and starts peer discovery services
496
- *
497
- * @async
498
- * @private
194
+ * Returns the public key for the passed PeerId. If the PeerId is of the 'RSA' type
195
+ * this may mean searching the DHT if the key is not present in the KeyStore.
499
196
  */
500
- private _setupPeerDiscovery;
197
+ getPublicKey: (peer: PeerId, options?: AbortOptions) => Promise<Uint8Array>;
501
198
  }
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
- };
199
+ export declare type Libp2pOptions = RecursivePartial<Libp2pInit>;
200
+ /**
201
+ * Returns a new instance of the Libp2p interface, generating a new PeerId
202
+ * if one is not passed as part of the options.
203
+ */
204
+ export declare function createLibp2p(options: Libp2pOptions): Promise<Libp2p>;
624
205
  //# sourceMappingURL=index.d.ts.map