libp2p 0.36.2 → 0.37.0

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