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
@@ -0,0 +1,402 @@
1
+ import { logger } from '@libp2p/logger';
2
+ import errCode from 'err-code';
3
+ import { Dialer, Listener } from '@libp2p/multistream-select';
4
+ import { pipe } from 'it-pipe';
5
+ // @ts-expect-error mutable-proxy does not export types
6
+ import mutableProxy from 'mutable-proxy';
7
+ import { codes } from './errors.js';
8
+ import { createConnection } from '@libp2p/connection';
9
+ import { CustomEvent, EventEmitter } from '@libp2p/interfaces/events';
10
+ import { peerIdFromString } from '@libp2p/peer-id';
11
+ const log = logger('libp2p:upgrader');
12
+ export class DefaultUpgrader extends EventEmitter {
13
+ constructor(components, init) {
14
+ super();
15
+ this.components = components;
16
+ this.connectionEncryption = new Map();
17
+ init.connectionEncryption.forEach(encrypter => {
18
+ this.connectionEncryption.set(encrypter.protocol, encrypter);
19
+ });
20
+ this.muxers = new Map();
21
+ init.muxers.forEach(muxer => {
22
+ this.muxers.set(muxer.protocol, muxer);
23
+ });
24
+ }
25
+ /**
26
+ * Upgrades an inbound connection
27
+ */
28
+ async upgradeInbound(maConn) {
29
+ let encryptedConn;
30
+ let remotePeer;
31
+ let upgradedConn;
32
+ let muxerFactory;
33
+ let cryptoProtocol;
34
+ let setPeer;
35
+ let proxyPeer;
36
+ const metrics = this.components.getMetrics();
37
+ if (await this.components.getConnectionGater().denyInboundConnection(maConn)) {
38
+ throw errCode(new Error('The multiaddr connection is blocked by gater.acceptConnection'), codes.ERR_CONNECTION_INTERCEPTED);
39
+ }
40
+ if (metrics != null) {
41
+ ({ setTarget: setPeer, proxy: proxyPeer } = mutableProxy());
42
+ const idString = `${(Math.random() * 1e9).toString(36)}${Date.now()}`;
43
+ setPeer({ toString: () => idString });
44
+ maConn = metrics.trackStream({ stream: maConn, remotePeer: proxyPeer });
45
+ }
46
+ log('starting the inbound connection upgrade');
47
+ // Protect
48
+ let protectedConn = maConn;
49
+ const protector = this.components.getConnectionProtector();
50
+ if (protector != null) {
51
+ log('protecting the inbound connection');
52
+ protectedConn = await protector.protect(maConn);
53
+ }
54
+ try {
55
+ // Encrypt the connection
56
+ ({
57
+ conn: encryptedConn,
58
+ remotePeer,
59
+ protocol: cryptoProtocol
60
+ } = await this._encryptInbound(protectedConn));
61
+ if (await this.components.getConnectionGater().denyInboundEncryptedConnection(remotePeer, {
62
+ ...protectedConn,
63
+ ...encryptedConn
64
+ })) {
65
+ throw errCode(new Error('The multiaddr connection is blocked by gater.acceptEncryptedConnection'), codes.ERR_CONNECTION_INTERCEPTED);
66
+ }
67
+ // Multiplex the connection
68
+ if (this.muxers.size > 0) {
69
+ const multiplexed = await this._multiplexInbound({
70
+ ...protectedConn,
71
+ ...encryptedConn
72
+ }, this.muxers);
73
+ muxerFactory = multiplexed.muxerFactory;
74
+ upgradedConn = multiplexed.stream;
75
+ }
76
+ else {
77
+ upgradedConn = encryptedConn;
78
+ }
79
+ }
80
+ catch (err) {
81
+ log.error('Failed to upgrade inbound connection', err);
82
+ await maConn.close(err);
83
+ throw err;
84
+ }
85
+ if (await this.components.getConnectionGater().denyInboundUpgradedConnection(remotePeer, {
86
+ ...protectedConn,
87
+ ...encryptedConn
88
+ })) {
89
+ throw errCode(new Error('The multiaddr connection is blocked by gater.acceptEncryptedConnection'), codes.ERR_CONNECTION_INTERCEPTED);
90
+ }
91
+ if (metrics != null) {
92
+ metrics.updatePlaceholder(proxyPeer, remotePeer);
93
+ setPeer(remotePeer);
94
+ }
95
+ log('Successfully upgraded inbound connection');
96
+ return this._createConnection({
97
+ cryptoProtocol,
98
+ direction: 'inbound',
99
+ maConn,
100
+ upgradedConn,
101
+ muxerFactory,
102
+ remotePeer
103
+ });
104
+ }
105
+ /**
106
+ * Upgrades an outbound connection
107
+ */
108
+ async upgradeOutbound(maConn) {
109
+ const idStr = maConn.remoteAddr.getPeerId();
110
+ if (idStr == null) {
111
+ throw errCode(new Error('outbound connection must have a peer id'), codes.ERR_INVALID_MULTIADDR);
112
+ }
113
+ const remotePeerId = peerIdFromString(idStr);
114
+ if (await this.components.getConnectionGater().denyOutboundConnection(remotePeerId, maConn)) {
115
+ throw errCode(new Error('The multiaddr connection is blocked by connectionGater.denyOutboundConnection'), codes.ERR_CONNECTION_INTERCEPTED);
116
+ }
117
+ let encryptedConn;
118
+ let remotePeer;
119
+ let upgradedConn;
120
+ let cryptoProtocol;
121
+ let muxerFactory;
122
+ let setPeer;
123
+ let proxyPeer;
124
+ const metrics = this.components.getMetrics();
125
+ if (metrics != null) {
126
+ ({ setTarget: setPeer, proxy: proxyPeer } = mutableProxy());
127
+ const idString = `${(Math.random() * 1e9).toString(36)}${Date.now()}`;
128
+ setPeer({ toB58String: () => idString });
129
+ maConn = metrics.trackStream({ stream: maConn, remotePeer: proxyPeer });
130
+ }
131
+ log('Starting the outbound connection upgrade');
132
+ // Protect
133
+ let protectedConn = maConn;
134
+ const protector = this.components.getConnectionProtector();
135
+ if (protector != null) {
136
+ protectedConn = await protector.protect(maConn);
137
+ }
138
+ try {
139
+ // Encrypt the connection
140
+ ({
141
+ conn: encryptedConn,
142
+ remotePeer,
143
+ protocol: cryptoProtocol
144
+ } = await this._encryptOutbound(protectedConn, remotePeerId));
145
+ if (await this.components.getConnectionGater().denyOutboundEncryptedConnection(remotePeer, {
146
+ ...protectedConn,
147
+ ...encryptedConn
148
+ })) {
149
+ throw errCode(new Error('The multiaddr connection is blocked by gater.acceptEncryptedConnection'), codes.ERR_CONNECTION_INTERCEPTED);
150
+ }
151
+ // Multiplex the connection
152
+ if (this.muxers.size > 0) {
153
+ const multiplexed = await this._multiplexOutbound({
154
+ ...protectedConn,
155
+ ...encryptedConn
156
+ }, this.muxers);
157
+ muxerFactory = multiplexed.muxerFactory;
158
+ upgradedConn = multiplexed.stream;
159
+ }
160
+ else {
161
+ upgradedConn = encryptedConn;
162
+ }
163
+ }
164
+ catch (err) {
165
+ log.error('Failed to upgrade outbound connection', err);
166
+ await maConn.close(err);
167
+ throw err;
168
+ }
169
+ if (await this.components.getConnectionGater().denyOutboundUpgradedConnection(remotePeer, {
170
+ ...protectedConn,
171
+ ...encryptedConn
172
+ })) {
173
+ throw errCode(new Error('The multiaddr connection is blocked by gater.acceptEncryptedConnection'), codes.ERR_CONNECTION_INTERCEPTED);
174
+ }
175
+ if (metrics != null) {
176
+ metrics.updatePlaceholder(proxyPeer, remotePeer);
177
+ setPeer(remotePeer);
178
+ }
179
+ log('Successfully upgraded outbound connection');
180
+ return this._createConnection({
181
+ cryptoProtocol,
182
+ direction: 'outbound',
183
+ maConn,
184
+ upgradedConn,
185
+ muxerFactory,
186
+ remotePeer
187
+ });
188
+ }
189
+ /**
190
+ * A convenience method for generating a new `Connection`
191
+ */
192
+ _createConnection(opts) {
193
+ const { cryptoProtocol, direction, maConn, upgradedConn, remotePeer, muxerFactory } = opts;
194
+ let muxer;
195
+ let newStream;
196
+ let connection; // eslint-disable-line prefer-const
197
+ if (muxerFactory != null) {
198
+ // Create the muxer
199
+ muxer = muxerFactory.createStreamMuxer(this.components, {
200
+ // Run anytime a remote stream is created
201
+ onIncomingStream: muxedStream => {
202
+ if (connection == null) {
203
+ return;
204
+ }
205
+ void Promise.resolve()
206
+ .then(async () => {
207
+ const mss = new Listener(muxedStream);
208
+ const protocols = this.components.getRegistrar().getProtocols();
209
+ const { stream, protocol } = await mss.handle(protocols);
210
+ log('%s: incoming stream opened on %s', direction, protocol);
211
+ const metrics = this.components.getMetrics();
212
+ if (metrics != null) {
213
+ metrics.trackStream({ stream, remotePeer, protocol });
214
+ }
215
+ if (connection == null) {
216
+ return;
217
+ }
218
+ connection.addStream(muxedStream, { protocol });
219
+ this._onStream({ connection, stream: { ...muxedStream, ...stream }, protocol });
220
+ })
221
+ .catch(err => {
222
+ log.error(err);
223
+ });
224
+ },
225
+ // Run anytime a stream closes
226
+ onStreamEnd: muxedStream => {
227
+ connection?.removeStream(muxedStream.id);
228
+ }
229
+ });
230
+ newStream = async (protocols) => {
231
+ if (muxer == null) {
232
+ throw errCode(new Error('Stream is not multiplexed'), codes.ERR_MUXER_UNAVAILABLE);
233
+ }
234
+ log('%s: starting new stream on %s', direction, protocols);
235
+ const muxedStream = muxer.newStream();
236
+ const mss = new Dialer(muxedStream);
237
+ const metrics = this.components.getMetrics();
238
+ try {
239
+ let { stream, protocol } = await mss.select(protocols);
240
+ if (metrics != null) {
241
+ stream = metrics.trackStream({ stream, remotePeer, protocol });
242
+ }
243
+ return { stream: { ...muxedStream, ...stream }, protocol };
244
+ }
245
+ catch (err) {
246
+ log.error('could not create new stream', err);
247
+ throw errCode(err, codes.ERR_UNSUPPORTED_PROTOCOL);
248
+ }
249
+ };
250
+ // Pipe all data through the muxer
251
+ pipe(upgradedConn, muxer, upgradedConn).catch(log.error);
252
+ }
253
+ const _timeline = maConn.timeline;
254
+ maConn.timeline = new Proxy(_timeline, {
255
+ set: (...args) => {
256
+ if (connection != null && args[1] === 'close' && args[2] != null && _timeline.close == null) {
257
+ // Wait for close to finish before notifying of the closure
258
+ (async () => {
259
+ try {
260
+ if (connection.stat.status === 'OPEN') {
261
+ await connection.close();
262
+ }
263
+ }
264
+ catch (err) {
265
+ log.error(err);
266
+ }
267
+ finally {
268
+ this.dispatchEvent(new CustomEvent('connectionEnd', {
269
+ detail: connection
270
+ }));
271
+ }
272
+ })().catch(err => {
273
+ log.error(err);
274
+ });
275
+ }
276
+ return Reflect.set(...args);
277
+ }
278
+ });
279
+ maConn.timeline.upgraded = Date.now();
280
+ const errConnectionNotMultiplexed = () => {
281
+ throw errCode(new Error('connection is not multiplexed'), codes.ERR_CONNECTION_NOT_MULTIPLEXED);
282
+ };
283
+ // Create the connection
284
+ connection = createConnection({
285
+ remoteAddr: maConn.remoteAddr,
286
+ remotePeer: remotePeer,
287
+ stat: {
288
+ status: 'OPEN',
289
+ direction,
290
+ timeline: maConn.timeline,
291
+ multiplexer: muxer?.protocol,
292
+ encryption: cryptoProtocol
293
+ },
294
+ newStream: newStream ?? errConnectionNotMultiplexed,
295
+ getStreams: () => muxer != null ? muxer.streams : errConnectionNotMultiplexed(),
296
+ close: async () => {
297
+ await maConn.close();
298
+ // Ensure remaining streams are aborted
299
+ if (muxer != null) {
300
+ muxer.streams.map(stream => stream.abort());
301
+ }
302
+ }
303
+ });
304
+ this.dispatchEvent(new CustomEvent('connection', {
305
+ detail: connection
306
+ }));
307
+ return connection;
308
+ }
309
+ /**
310
+ * Routes incoming streams to the correct handler
311
+ */
312
+ _onStream(opts) {
313
+ const { connection, stream, protocol } = opts;
314
+ const handler = this.components.getRegistrar().getHandler(protocol);
315
+ handler({ connection, stream, protocol });
316
+ }
317
+ /**
318
+ * Attempts to encrypt the incoming `connection` with the provided `cryptos`
319
+ */
320
+ async _encryptInbound(connection) {
321
+ const mss = new Listener(connection);
322
+ const protocols = Array.from(this.connectionEncryption.keys());
323
+ log('handling inbound crypto protocol selection', protocols);
324
+ try {
325
+ const { stream, protocol } = await mss.handle(protocols);
326
+ const encrypter = this.connectionEncryption.get(protocol);
327
+ if (encrypter == null) {
328
+ throw new Error(`no crypto module found for ${protocol}`);
329
+ }
330
+ log('encrypting inbound connection...');
331
+ return {
332
+ ...await encrypter.secureInbound(this.components.getPeerId(), stream),
333
+ protocol
334
+ };
335
+ }
336
+ catch (err) {
337
+ throw errCode(err, codes.ERR_ENCRYPTION_FAILED);
338
+ }
339
+ }
340
+ /**
341
+ * Attempts to encrypt the given `connection` with the provided connection encrypters.
342
+ * The first `ConnectionEncrypter` module to succeed will be used
343
+ */
344
+ async _encryptOutbound(connection, remotePeerId) {
345
+ const mss = new Dialer(connection);
346
+ const protocols = Array.from(this.connectionEncryption.keys());
347
+ log('selecting outbound crypto protocol', protocols);
348
+ try {
349
+ const { stream, protocol } = await mss.select(protocols);
350
+ const encrypter = this.connectionEncryption.get(protocol);
351
+ if (encrypter == null) {
352
+ throw new Error(`no crypto module found for ${protocol}`);
353
+ }
354
+ log('encrypting outbound connection to %p', remotePeerId);
355
+ return {
356
+ ...await encrypter.secureOutbound(this.components.getPeerId(), stream, remotePeerId),
357
+ protocol
358
+ };
359
+ }
360
+ catch (err) {
361
+ throw errCode(err, codes.ERR_ENCRYPTION_FAILED);
362
+ }
363
+ }
364
+ /**
365
+ * Selects one of the given muxers via multistream-select. That
366
+ * muxer will be used for all future streams on the connection.
367
+ */
368
+ async _multiplexOutbound(connection, muxers) {
369
+ const dialer = new Dialer(connection);
370
+ const protocols = Array.from(muxers.keys());
371
+ log('outbound selecting muxer %s', protocols);
372
+ try {
373
+ const { stream, protocol } = await dialer.select(protocols);
374
+ log('%s selected as muxer protocol', protocol);
375
+ const muxerFactory = muxers.get(protocol);
376
+ return { stream, muxerFactory };
377
+ }
378
+ catch (err) {
379
+ log.error('error multiplexing outbound stream', err);
380
+ throw errCode(err, codes.ERR_MUXER_UNAVAILABLE);
381
+ }
382
+ }
383
+ /**
384
+ * Registers support for one of the given muxers via multistream-select. The
385
+ * selected muxer will be used for all future streams on the connection.
386
+ */
387
+ async _multiplexInbound(connection, muxers) {
388
+ const listener = new Listener(connection);
389
+ const protocols = Array.from(muxers.keys());
390
+ log('inbound handling muxers %s', protocols);
391
+ try {
392
+ const { stream, protocol } = await listener.handle(protocols);
393
+ const muxerFactory = muxers.get(protocol);
394
+ return { stream, muxerFactory };
395
+ }
396
+ catch (err) {
397
+ log.error('error multiplexing inbound stream', err);
398
+ throw errCode(err, codes.ERR_MUXER_UNAVAILABLE);
399
+ }
400
+ }
401
+ }
402
+ //# sourceMappingURL=upgrader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upgrader.js","sourceRoot":"","sources":["../../src/upgrader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare const version = "0.0.0";
2
+ export declare const name = "libp2p";
3
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,OAAO,UAAU,CAAA;AAC9B,eAAO,MAAM,IAAI,WAAW,CAAA"}
@@ -0,0 +1,3 @@
1
+ export const version = '0.0.0';
2
+ export const name = 'libp2p';
3
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAA;AAC9B,MAAM,CAAC,MAAM,IAAI,GAAG,QAAQ,CAAA"}