libp2p 0.36.2 → 0.37.0-b09eb8f

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 (431) 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 +107 -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 +266 -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 +339 -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 +71 -63
  112. package/dist/src/errors.d.ts.map +1 -1
  113. package/dist/src/errors.js +76 -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 +45 -99
  184. package/dist/src/nat-manager.d.ts.map +1 -1
  185. package/dist/src/nat-manager.js +117 -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 +107 -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 +404 -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 +143 -203
  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/connection-manager/dialer/dial-request.ts +137 -0
  259. package/src/connection-manager/dialer/index.ts +381 -0
  260. package/src/connection-manager/index.ts +513 -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 +74 -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 +198 -0
  292. package/src/peer-record-updater.ts +55 -0
  293. package/src/peer-routing.ts +185 -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 +501 -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/dial-request.js +0 -103
  376. package/src/dialer/index.js +0 -376
  377. package/src/errors.js +0 -66
  378. package/src/fetch/constants.js +0 -6
  379. package/src/fetch/index.js +0 -159
  380. package/src/fetch/proto.d.ts +0 -134
  381. package/src/fetch/proto.js +0 -333
  382. package/src/get-peer.js +0 -49
  383. package/src/identify/consts.js +0 -15
  384. package/src/identify/index.js +0 -384
  385. package/src/identify/message.d.ts +0 -95
  386. package/src/identify/message.js +0 -328
  387. package/src/index.js +0 -813
  388. package/src/insecure/plaintext.js +0 -95
  389. package/src/insecure/proto.d.ts +0 -128
  390. package/src/insecure/proto.js +0 -371
  391. package/src/keychain/index.js +0 -561
  392. package/src/metrics/index.js +0 -290
  393. package/src/metrics/old-peers.js +0 -16
  394. package/src/metrics/stats.js +0 -270
  395. package/src/metrics/tracked-map.js +0 -94
  396. package/src/nat-manager.js +0 -197
  397. package/src/peer-routing.js +0 -176
  398. package/src/peer-store/README.md +0 -145
  399. package/src/peer-store/address-book.js +0 -382
  400. package/src/peer-store/index.js +0 -121
  401. package/src/peer-store/key-book.js +0 -141
  402. package/src/peer-store/metadata-book.js +0 -250
  403. package/src/peer-store/pb/peer.d.ts +0 -222
  404. package/src/peer-store/pb/peer.js +0 -643
  405. package/src/peer-store/pb/peer.proto +0 -31
  406. package/src/peer-store/proto-book.js +0 -237
  407. package/src/peer-store/store.js +0 -263
  408. package/src/peer-store/types.ts +0 -245
  409. package/src/ping/constants.js +0 -8
  410. package/src/ping/index.js +0 -84
  411. package/src/ping/util.js +0 -18
  412. package/src/pnet/crypto.js +0 -84
  413. package/src/pnet/errors.js +0 -7
  414. package/src/pnet/index.js +0 -86
  415. package/src/pnet/key-generator.js +0 -33
  416. package/src/pubsub-adapter.js +0 -61
  417. package/src/record/README.md +0 -130
  418. package/src/record/envelope/envelope.d.ts +0 -77
  419. package/src/record/envelope/envelope.js +0 -243
  420. package/src/record/envelope/envelope.proto +0 -19
  421. package/src/record/envelope/index.js +0 -183
  422. package/src/record/peer-record/consts.js +0 -14
  423. package/src/record/peer-record/index.js +0 -113
  424. package/src/record/peer-record/peer-record.d.ts +0 -133
  425. package/src/record/peer-record/peer-record.js +0 -367
  426. package/src/record/peer-record/peer-record.proto +0 -18
  427. package/src/record/utils.js +0 -25
  428. package/src/registrar.js +0 -127
  429. package/src/transport-manager.js +0 -269
  430. package/src/types.ts +0 -98
  431. package/src/upgrader.js +0 -492
@@ -1,163 +0,0 @@
1
- 'use strict'
2
-
3
- const errCode = require('err-code')
4
- const { messages, codes } = require('../errors')
5
- const {
6
- storeAddresses,
7
- uniquePeers,
8
- requirePeers,
9
- maybeLimitSource
10
- } = require('./utils')
11
- const drain = require('it-drain')
12
- const merge = require('it-merge')
13
- const { pipe } = require('it-pipe')
14
- const { DHTContentRouting } = require('../dht/dht-content-routing')
15
-
16
- /**
17
- * @typedef {import('peer-id')} PeerId
18
- * @typedef {import('multiaddr').Multiaddr} Multiaddr
19
- * @typedef {import('multiformats/cid').CID} CID
20
- * @typedef {import('libp2p-interfaces/src/content-routing/types').ContentRouting} ContentRoutingModule
21
- */
22
-
23
- /**
24
- * @typedef {Object} GetData
25
- * @property {PeerId} from
26
- * @property {Uint8Array} val
27
- */
28
-
29
- class ContentRouting {
30
- /**
31
- * @class
32
- * @param {import('..')} libp2p
33
- */
34
- constructor (libp2p) {
35
- this.libp2p = libp2p
36
- /** @type {ContentRoutingModule[]} */
37
- this.routers = libp2p._modules.contentRouting || []
38
- this.dht = libp2p._dht
39
-
40
- // If we have the dht, add it to the available content routers
41
- if (this.dht && libp2p._config.dht.enabled) {
42
- this.routers.push(new DHTContentRouting(this.dht))
43
- }
44
- }
45
-
46
- /**
47
- * Iterates over all content routers in parallel to find providers of the given key.
48
- *
49
- * @param {CID} key - The CID key of the content to find
50
- * @param {object} [options]
51
- * @param {number} [options.timeout] - How long the query should run
52
- * @param {number} [options.maxNumProviders] - maximum number of providers to find
53
- * @returns {AsyncIterable<{ id: PeerId, multiaddrs: Multiaddr[] }>}
54
- */
55
- async * findProviders (key, options = {}) {
56
- if (!this.routers.length) {
57
- throw errCode(new Error('No content this.routers available'), codes.ERR_NO_ROUTERS_AVAILABLE)
58
- }
59
-
60
- yield * pipe(
61
- merge(
62
- ...this.routers.map(router => router.findProviders(key, options))
63
- ),
64
- (source) => storeAddresses(source, this.libp2p.peerStore),
65
- (source) => uniquePeers(source),
66
- (source) => maybeLimitSource(source, options.maxNumProviders),
67
- (source) => requirePeers(source)
68
- )
69
- }
70
-
71
- /**
72
- * Iterates over all content routers in parallel to notify it is
73
- * a provider of the given key.
74
- *
75
- * @param {CID} key - The CID key of the content to find
76
- * @returns {Promise<void>}
77
- */
78
- async provide (key) {
79
- if (!this.routers.length) {
80
- throw errCode(new Error('No content routers available'), codes.ERR_NO_ROUTERS_AVAILABLE)
81
- }
82
-
83
- await Promise.all(this.routers.map((router) => router.provide(key)))
84
- }
85
-
86
- /**
87
- * Store the given key/value pair in the DHT.
88
- *
89
- * @param {Uint8Array} key
90
- * @param {Uint8Array} value
91
- * @param {Object} [options] - put options
92
- * @param {number} [options.minPeers] - minimum number of peers required to successfully put
93
- * @returns {Promise<void>}
94
- */
95
- async put (key, value, options) {
96
- if (!this.libp2p.isStarted() || !this.dht.isStarted) {
97
- throw errCode(new Error(messages.NOT_STARTED_YET), codes.DHT_NOT_STARTED)
98
- }
99
-
100
- await drain(this.dht.put(key, value, options))
101
- }
102
-
103
- /**
104
- * Get the value to the given key.
105
- * Times out after 1 minute by default.
106
- *
107
- * @param {Uint8Array} key
108
- * @param {Object} [options] - get options
109
- * @param {number} [options.timeout] - optional timeout (default: 60000)
110
- * @returns {Promise<GetData>}
111
- */
112
- async get (key, options) {
113
- if (!this.libp2p.isStarted() || !this.dht.isStarted) {
114
- throw errCode(new Error(messages.NOT_STARTED_YET), codes.DHT_NOT_STARTED)
115
- }
116
-
117
- for await (const event of this.dht.get(key, options)) {
118
- if (event.name === 'VALUE') {
119
- return { from: event.peerId, val: event.value }
120
- }
121
- }
122
-
123
- throw errCode(new Error(messages.NOT_FOUND), codes.ERR_NOT_FOUND)
124
- }
125
-
126
- /**
127
- * Get the `n` values to the given key without sorting.
128
- *
129
- * @param {Uint8Array} key
130
- * @param {number} nVals
131
- * @param {Object} [options] - get options
132
- * @param {number} [options.timeout] - optional timeout (default: 60000)
133
- */
134
- async * getMany (key, nVals, options) { // eslint-disable-line require-await
135
- if (!this.libp2p.isStarted() || !this.dht.isStarted) {
136
- throw errCode(new Error(messages.NOT_STARTED_YET), codes.DHT_NOT_STARTED)
137
- }
138
-
139
- if (!nVals) {
140
- return
141
- }
142
-
143
- let gotValues = 0
144
-
145
- for await (const event of this.dht.get(key, options)) {
146
- if (event.name === 'VALUE') {
147
- yield { from: event.peerId, val: event.value }
148
-
149
- gotValues++
150
-
151
- if (gotValues === nVals) {
152
- break
153
- }
154
- }
155
- }
156
-
157
- if (gotValues === 0) {
158
- throw errCode(new Error(messages.NOT_FOUND), codes.ERR_NOT_FOUND)
159
- }
160
- }
161
- }
162
-
163
- module.exports = ContentRouting
@@ -1,89 +0,0 @@
1
- 'use strict'
2
-
3
- const errCode = require('err-code')
4
- const filter = require('it-filter')
5
- const map = require('it-map')
6
- const take = require('it-take')
7
-
8
- /**
9
- * @typedef {import('peer-id')} PeerId
10
- * @typedef {import('multiaddr').Multiaddr} Multiaddr
11
- */
12
-
13
- /**
14
- * Store the multiaddrs from every peer in the passed peer store
15
- *
16
- * @param {AsyncIterable<{ id: PeerId, multiaddrs: Multiaddr[] }>} source
17
- * @param {import('../peer-store/types').PeerStore} peerStore
18
- */
19
- async function * storeAddresses (source, peerStore) {
20
- yield * map(source, async (peer) => {
21
- // ensure we have the addresses for a given peer
22
- await peerStore.addressBook.add(peer.id, peer.multiaddrs)
23
-
24
- return peer
25
- })
26
- }
27
-
28
- /**
29
- * Filter peers by unique peer id
30
- *
31
- * @param {AsyncIterable<{ id: PeerId, multiaddrs: Multiaddr[] }>} source
32
- */
33
- function uniquePeers (source) {
34
- /** @type Set<string> */
35
- const seen = new Set()
36
-
37
- return filter(source, (peer) => {
38
- // dedupe by peer id
39
- if (seen.has(peer.id.toString())) {
40
- return false
41
- }
42
-
43
- seen.add(peer.id.toString())
44
-
45
- return true
46
- })
47
- }
48
-
49
- /**
50
- * Require at least `min` peers to be yielded from `source`
51
- *
52
- * @param {AsyncIterable<{ id: PeerId, multiaddrs: Multiaddr[] }>} source
53
- * @param {number} min
54
- */
55
- async function * requirePeers (source, min = 1) {
56
- let seen = 0
57
-
58
- for await (const peer of source) {
59
- seen++
60
-
61
- yield peer
62
- }
63
-
64
- if (seen < min) {
65
- throw errCode(new Error('not found'), 'NOT_FOUND')
66
- }
67
- }
68
-
69
- /**
70
- * If `max` is passed, only take that number of peers from the source
71
- * otherwise take all the peers
72
- *
73
- * @param {AsyncIterable<{ id: PeerId, multiaddrs: Multiaddr[] }>} source
74
- * @param {number} [max]
75
- */
76
- function maybeLimitSource (source, max) {
77
- if (max) {
78
- return take(source, max)
79
- }
80
-
81
- return source
82
- }
83
-
84
- module.exports = {
85
- storeAddresses,
86
- uniquePeers,
87
- requirePeers,
88
- maybeLimitSource
89
- }
@@ -1,44 +0,0 @@
1
- 'use strict'
2
-
3
- const drain = require('it-drain')
4
-
5
- /**
6
- * @typedef {import('peer-id')} PeerId
7
- * @typedef {import('libp2p-interfaces/src/content-routing/types').ContentRouting} ContentRoutingModule
8
- * @typedef {import('multiformats/cid').CID} CID
9
- */
10
-
11
- /**
12
- * Wrapper class to convert events into returned values
13
- *
14
- * @implements {ContentRoutingModule}
15
- */
16
- class DHTContentRouting {
17
- /**
18
- * @param {import('libp2p-kad-dht').DHT} dht
19
- */
20
- constructor (dht) {
21
- this._dht = dht
22
- }
23
-
24
- /**
25
- * @param {CID} cid
26
- */
27
- async provide (cid) {
28
- await drain(this._dht.provide(cid))
29
- }
30
-
31
- /**
32
- * @param {CID} cid
33
- * @param {*} options
34
- */
35
- async * findProviders (cid, options) {
36
- for await (const event of this._dht.findProviders(cid, options)) {
37
- if (event.name === 'PROVIDER') {
38
- yield * event.providers
39
- }
40
- }
41
- }
42
- }
43
-
44
- module.exports = { DHTContentRouting }
@@ -1,51 +0,0 @@
1
- 'use strict'
2
-
3
- const errCode = require('err-code')
4
- const { messages, codes } = require('../errors')
5
-
6
- /**
7
- * @typedef {import('peer-id')} PeerId
8
- * @typedef {import('libp2p-interfaces/src/peer-routing/types').PeerRouting} PeerRoutingModule
9
- */
10
-
11
- /**
12
- * Wrapper class to convert events into returned values
13
- *
14
- * @implements {PeerRoutingModule}
15
- */
16
- class DHTPeerRouting {
17
- /**
18
- * @param {import('libp2p-kad-dht').DHT} dht
19
- */
20
- constructor (dht) {
21
- this._dht = dht
22
- }
23
-
24
- /**
25
- * @param {PeerId} peerId
26
- * @param {any} options
27
- */
28
- async findPeer (peerId, options = {}) {
29
- for await (const event of this._dht.findPeer(peerId, options)) {
30
- if (event.name === 'FINAL_PEER') {
31
- return event.peer
32
- }
33
- }
34
-
35
- throw errCode(new Error(messages.NOT_FOUND), codes.ERR_NOT_FOUND)
36
- }
37
-
38
- /**
39
- * @param {Uint8Array} key
40
- * @param {any} options
41
- */
42
- async * getClosestPeers (key, options = {}) {
43
- for await (const event of this._dht.getClosestPeers(key, options)) {
44
- if (event.name === 'PEER_RESPONSE') {
45
- yield * event.closer
46
- }
47
- }
48
- }
49
- }
50
-
51
- module.exports = { DHTPeerRouting }
@@ -1,103 +0,0 @@
1
- 'use strict'
2
-
3
- const errCode = require('err-code')
4
- const { anySignal } = require('any-signal')
5
- // @ts-ignore p-fifo does not export types
6
- const FIFO = require('p-fifo')
7
- const pAny = require('p-any')
8
- // @ts-expect-error setMaxListeners is missing from the types
9
- const { setMaxListeners } = require('events')
10
- const { codes } = require('../errors')
11
-
12
- /**
13
- * @typedef {import('libp2p-interfaces/src/connection').Connection} Connection
14
- * @typedef {import('./')} Dialer
15
- * @typedef {import('multiaddr').Multiaddr} Multiaddr
16
- */
17
-
18
- /**
19
- * @typedef {Object} DialOptions
20
- * @property {AbortSignal} signal
21
- *
22
- * @typedef {Object} DialRequestOptions
23
- * @property {Multiaddr[]} addrs
24
- * @property {(m: Multiaddr, options: DialOptions) => Promise<Connection>} dialAction
25
- * @property {Dialer} dialer
26
- */
27
-
28
- class DialRequest {
29
- /**
30
- * Manages running the `dialAction` on multiple provided `addrs` in parallel
31
- * up to a maximum determined by the number of tokens returned
32
- * from `dialer.getTokens`. Once a DialRequest is created, it can be
33
- * started using `DialRequest.run(options)`. Once a single dial has succeeded,
34
- * all other dials in the request will be cancelled.
35
- *
36
- * @class
37
- * @param {DialRequestOptions} options
38
- */
39
- constructor ({
40
- addrs,
41
- dialAction,
42
- dialer
43
- }) {
44
- this.addrs = addrs
45
- this.dialer = dialer
46
- this.dialAction = dialAction
47
- }
48
-
49
- /**
50
- * @async
51
- * @param {object} [options]
52
- * @param {AbortSignal} [options.signal] - An AbortController signal
53
- * @returns {Promise<Connection>}
54
- */
55
- async run (options = {}) {
56
- const tokens = this.dialer.getTokens(this.addrs.length)
57
- // If no tokens are available, throw
58
- if (tokens.length < 1) {
59
- throw errCode(new Error('No dial tokens available'), codes.ERR_NO_DIAL_TOKENS)
60
- }
61
-
62
- const tokenHolder = new FIFO()
63
- tokens.forEach(token => tokenHolder.push(token))
64
- const dialAbortControllers = this.addrs.map(() => {
65
- const controller = new AbortController()
66
- try {
67
- // fails on node < 15.4
68
- setMaxListeners && setMaxListeners(Infinity, controller.signal)
69
- } catch {}
70
-
71
- return controller
72
- })
73
- let completedDials = 0
74
-
75
- try {
76
- return await pAny(this.addrs.map(async (addr, i) => {
77
- const token = await tokenHolder.shift() // get token
78
- let conn
79
- try {
80
- const signal = dialAbortControllers[i].signal
81
- conn = await this.dialAction(addr, { ...options, signal: options.signal ? anySignal([signal, options.signal]) : signal })
82
- // Remove the successful AbortController so it is not aborted
83
- dialAbortControllers.splice(i, 1)
84
- } finally {
85
- completedDials++
86
- // If we have more or equal dials remaining than tokens, recycle the token, otherwise release it
87
- if (this.addrs.length - completedDials >= tokens.length) {
88
- tokenHolder.push(token)
89
- } else {
90
- this.dialer.releaseToken(tokens.splice(tokens.indexOf(token), 1)[0])
91
- }
92
- }
93
-
94
- return conn
95
- }))
96
- } finally {
97
- dialAbortControllers.map(c => c.abort()) // success/failure happened, abort everything else
98
- tokens.forEach(token => this.dialer.releaseToken(token)) // release tokens back to the dialer
99
- }
100
- }
101
- }
102
-
103
- module.exports = DialRequest