libp2p 0.36.1 → 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 -491
  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 +17 -31
  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 -813
  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 -84
  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,534 +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
- 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} */
192
- 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>;
249
- connectionManager: ConnectionManager;
250
- _autodialler: AutoDialler;
251
- keychain: Keychain | undefined;
252
- upgrader: Upgrader;
253
- transportManager: TransportManager;
254
- natManager: NatManager;
255
- registrar: Registrar;
72
+ maxConnections: number;
256
73
  /**
257
- * Registers the `handler` for each protocol
258
- *
259
- * @param {string[]|string} protocols
260
- * @param {(props: HandlerProps) => void} handler
74
+ * The minimum number of connections to keep open
261
75
  */
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;
76
+ minConnections: number;
271
77
  /**
272
- * Called whenever peer discovery services emit `peer` events.
273
- * Known peers may be emitted.
274
- *
275
- * @private
276
- * @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
277
80
  */
278
- private _onDiscoveryPeer;
279
- fetchService: FetchService;
280
- pingService: PingService;
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;
281
138
  /**
282
- * Starts the libp2p node and all its subsystems
283
- *
284
- * @returns {Promise<void>}
139
+ * Load keychain keys from the datastore.
140
+ * Imports the private key as 'self', if needed.
285
141
  */
286
- start(): Promise<void>;
142
+ loadKeychain: () => Promise<void>;
287
143
  /**
288
- * 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.
289
147
  *
290
- * @async
291
- * @returns {Promise<void>}
148
+ * If Announce addrs are specified, configured listen addresses will be
149
+ * ignored though observed addresses will still be included.
292
150
  */
293
- stop(): Promise<void>;
294
- _isStarted: boolean | undefined;
151
+ getMultiaddrs: () => Multiaddr[];
295
152
  /**
296
- * Load keychain keys from the datastore.
297
- * Imports the private key as 'self', if needed.
298
- *
299
- * @async
300
- * @returns {Promise<void>}
153
+ * Return a list of all connections this node has open, optionally filtering
154
+ * by a PeerId
301
155
  */
302
- loadKeychain(): Promise<void>;
303
- isStarted(): boolean | undefined;
156
+ getConnections: (peerId?: PeerId) => Connection[];
304
157
  /**
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[]>}
158
+ * Return a list of all peers we currently have a connection open to
309
159
  */
310
- get connections(): Map<string, import("libp2p-interfaces/src/connection/connection")[]>;
160
+ getPeers: () => PeerId[];
311
161
  /**
312
162
  * Dials to the provided peer. If successful, the known metadata of the
313
163
  * 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
164
  */
320
- dial(peer: PeerId | Multiaddr | string, options?: {
321
- signal?: AbortSignal | undefined;
322
- } | undefined): Promise<Connection>;
165
+ dial: (peer: PeerId | Multiaddr, options?: AbortOptions) => Promise<Connection>;
323
166
  /**
324
167
  * Dials to the provided peer and tries to handshake with the given protocols in order.
325
168
  * If successful, the known metadata of the peer will be added to the nodes `peerStore`,
326
169
  * 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
170
  */
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[];
171
+ dialProtocol: (peer: PeerId | Multiaddr, protocols: string | string[], options?: AbortOptions) => Promise<ProtocolStream>;
358
172
  /**
359
173
  * 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
174
  */
364
- hangUp(peer: PeerId | Multiaddr | string): Promise<void>;
175
+ hangUp: (peer: PeerId | Multiaddr | string) => Promise<void>;
365
176
  /**
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>}
177
+ * Registers the `handler` for each protocol
378
178
  */
379
- ping(peer: PeerId | Multiaddr | string): Promise<number>;
179
+ handle: (protocol: string | string[], handler: StreamHandler) => Promise<void>;
380
180
  /**
381
181
  * Removes the handler for each protocol. The protocol
382
182
  * will no longer be supported on streams.
383
- *
384
- * @param {string[]|string} protocols
385
183
  */
386
- unhandle(protocols: string[] | string): Promise<void>;
387
- _onStarting(): Promise<void>;
184
+ unhandle: (protocols: string[] | string) => Promise<void>;
388
185
  /**
389
- * Called when libp2p has started and before it returns
390
- *
391
- * @private
186
+ * Pings the given peer in order to obtain the operation latency
392
187
  */
393
- private _onDidStart;
188
+ ping: (peer: Multiaddr | PeerId) => Promise<number>;
394
189
  /**
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
190
+ * Sends a request to fetch the value associated with the given key from the given peer.
401
191
  */
402
- private _maybeConnect;
192
+ fetch: (peer: PeerId | Multiaddr | string, key: string) => Promise<Uint8Array | null>;
403
193
  /**
404
- * Initializes and starts peer discovery services
405
- *
406
- * @async
407
- * @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.
408
196
  */
409
- private _setupPeerDiscovery;
197
+ getPublicKey: (peer: PeerId, options?: AbortOptions) => Promise<Uint8Array>;
410
198
  }
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
- };
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>;
534
205
  //# sourceMappingURL=index.d.ts.map