libp2p 0.36.2 → 0.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (430) hide show
  1. package/LICENSE +3 -21
  2. package/README.md +13 -10
  3. package/dist/src/address-manager/index.d.ts +34 -52
  4. package/dist/src/address-manager/index.d.ts.map +1 -1
  5. package/dist/src/address-manager/index.js +81 -0
  6. package/dist/src/address-manager/index.js.map +1 -0
  7. package/dist/src/circuit/auto-relay.d.ts +24 -85
  8. package/dist/src/circuit/auto-relay.d.ts.map +1 -1
  9. package/dist/src/circuit/auto-relay.js +216 -0
  10. package/dist/src/circuit/auto-relay.js.map +1 -0
  11. package/dist/src/circuit/circuit/hop.d.ts +26 -53
  12. package/dist/src/circuit/circuit/hop.d.ts.map +1 -1
  13. package/dist/src/circuit/circuit/hop.js +138 -0
  14. package/dist/src/circuit/circuit/hop.js.map +1 -0
  15. package/dist/src/circuit/circuit/stop.d.ts +18 -10
  16. package/dist/src/circuit/circuit/stop.d.ts.map +1 -1
  17. package/dist/src/circuit/circuit/stop.js +49 -0
  18. package/dist/src/circuit/circuit/stop.js.map +1 -0
  19. package/dist/src/circuit/circuit/stream-handler.d.ts +19 -38
  20. package/dist/src/circuit/circuit/stream-handler.d.ts.map +1 -1
  21. package/dist/src/circuit/circuit/stream-handler.js +59 -0
  22. package/dist/src/circuit/circuit/stream-handler.js.map +1 -0
  23. package/dist/src/circuit/circuit/utils.d.ts +3 -6
  24. package/dist/src/circuit/circuit/utils.d.ts.map +1 -1
  25. package/dist/src/circuit/circuit/utils.js +43 -0
  26. package/dist/src/circuit/circuit/utils.js.map +1 -0
  27. package/dist/src/circuit/constants.d.ts +24 -6
  28. package/dist/src/circuit/constants.d.ts.map +1 -1
  29. package/dist/src/circuit/constants.js +26 -0
  30. package/dist/src/circuit/constants.js.map +1 -0
  31. package/dist/src/circuit/index.d.ts +41 -74
  32. package/dist/src/circuit/index.d.ts.map +1 -1
  33. package/dist/src/circuit/index.js +69 -0
  34. package/dist/src/circuit/index.js.map +1 -0
  35. package/dist/src/circuit/listener.d.ts +8 -3
  36. package/dist/src/circuit/listener.d.ts.map +1 -1
  37. package/dist/src/circuit/listener.js +62 -0
  38. package/dist/src/circuit/listener.js.map +1 -0
  39. package/dist/src/circuit/multicodec.d.ts +1 -1
  40. package/dist/src/circuit/multicodec.d.ts.map +1 -1
  41. package/dist/src/circuit/multicodec.js +2 -0
  42. package/dist/src/circuit/multicodec.js.map +1 -0
  43. package/dist/src/circuit/pb/index.d.ts +52 -0
  44. package/dist/src/circuit/pb/index.d.ts.map +1 -0
  45. package/dist/src/circuit/pb/index.js +98 -0
  46. package/dist/src/circuit/pb/index.js.map +1 -0
  47. package/dist/src/circuit/transport.d.ts +18 -78
  48. package/dist/src/circuit/transport.d.ts.map +1 -1
  49. package/dist/src/circuit/transport.js +192 -0
  50. package/dist/src/circuit/transport.js.map +1 -0
  51. package/dist/src/circuit/utils.d.ts +5 -2
  52. package/dist/src/circuit/utils.d.ts.map +1 -1
  53. package/dist/src/circuit/utils.js +11 -0
  54. package/dist/src/circuit/utils.js.map +1 -0
  55. package/dist/src/config.d.ts +3 -85
  56. package/dist/src/config.d.ts.map +1 -1
  57. package/dist/src/config.js +91 -0
  58. package/dist/src/config.js.map +1 -0
  59. package/dist/src/connection-manager/auto-dialler.d.ts +24 -41
  60. package/dist/src/connection-manager/auto-dialler.d.ts.map +1 -1
  61. package/dist/src/connection-manager/auto-dialler.js +105 -0
  62. package/dist/src/connection-manager/auto-dialler.js.map +1 -0
  63. package/dist/src/connection-manager/dialer/auto-dialer.d.ts +16 -0
  64. package/dist/src/connection-manager/dialer/auto-dialer.d.ts.map +1 -0
  65. package/dist/src/connection-manager/dialer/auto-dialer.js +37 -0
  66. package/dist/src/connection-manager/dialer/auto-dialer.js.map +1 -0
  67. package/dist/src/connection-manager/dialer/dial-request.d.ts +27 -0
  68. package/dist/src/connection-manager/dialer/dial-request.d.ts.map +1 -0
  69. package/dist/src/connection-manager/dialer/dial-request.js +83 -0
  70. package/dist/src/connection-manager/dialer/dial-request.js.map +1 -0
  71. package/dist/src/connection-manager/dialer/index.d.ts +104 -0
  72. package/dist/src/connection-manager/dialer/index.d.ts.map +1 -0
  73. package/dist/src/connection-manager/dialer/index.js +267 -0
  74. package/dist/src/connection-manager/dialer/index.js.map +1 -0
  75. package/dist/src/connection-manager/index.d.ts +102 -136
  76. package/dist/src/connection-manager/index.d.ts.map +1 -1
  77. package/dist/src/connection-manager/index.js +333 -0
  78. package/dist/src/connection-manager/index.js.map +1 -0
  79. package/dist/src/connection-manager/latency-monitor.d.ts +72 -97
  80. package/dist/src/connection-manager/latency-monitor.d.ts.map +1 -1
  81. package/dist/src/connection-manager/latency-monitor.js +220 -0
  82. package/dist/src/connection-manager/latency-monitor.js.map +1 -0
  83. package/dist/src/connection-manager/visibility-change-emitter.d.ts +15 -16
  84. package/dist/src/connection-manager/visibility-change-emitter.d.ts.map +1 -1
  85. package/dist/src/connection-manager/visibility-change-emitter.js +118 -0
  86. package/dist/src/connection-manager/visibility-change-emitter.js.map +1 -0
  87. package/dist/src/constants.d.ts +22 -10
  88. package/dist/src/constants.d.ts.map +1 -1
  89. package/dist/src/constants.js +27 -0
  90. package/dist/src/constants.js.map +1 -0
  91. package/dist/src/content-routing/index.d.ts +27 -81
  92. package/dist/src/content-routing/index.d.ts.map +1 -1
  93. package/dist/src/content-routing/index.js +99 -0
  94. package/dist/src/content-routing/index.js.map +1 -0
  95. package/dist/src/content-routing/utils.d.ts +6 -49
  96. package/dist/src/content-routing/utils.d.ts.map +1 -1
  97. package/dist/src/content-routing/utils.js +42 -0
  98. package/dist/src/content-routing/utils.js.map +1 -0
  99. package/dist/src/dht/dht-content-routing.d.ts +10 -24
  100. package/dist/src/dht/dht-content-routing.d.ts.map +1 -1
  101. package/dist/src/dht/dht-content-routing.js +32 -0
  102. package/dist/src/dht/dht-content-routing.js.map +1 -0
  103. package/dist/src/dht/dht-peer-routing.d.ts +9 -24
  104. package/dist/src/dht/dht-peer-routing.d.ts.map +1 -1
  105. package/dist/src/dht/dht-peer-routing.js +26 -0
  106. package/dist/src/dht/dht-peer-routing.js.map +1 -0
  107. package/dist/src/dht/dummy-dht.d.ts +20 -0
  108. package/dist/src/dht/dummy-dht.d.ts.map +1 -0
  109. package/dist/src/dht/dummy-dht.js +46 -0
  110. package/dist/src/dht/dummy-dht.js.map +1 -0
  111. package/dist/src/errors.d.ts +70 -63
  112. package/dist/src/errors.d.ts.map +1 -1
  113. package/dist/src/errors.js +75 -0
  114. package/dist/src/errors.js.map +1 -0
  115. package/dist/src/fetch/constants.d.ts +1 -1
  116. package/dist/src/fetch/constants.d.ts.map +1 -1
  117. package/dist/src/fetch/constants.js +3 -0
  118. package/dist/src/fetch/constants.js.map +1 -0
  119. package/dist/src/fetch/index.d.ts +30 -49
  120. package/dist/src/fetch/index.d.ts.map +1 -1
  121. package/dist/src/fetch/index.js +129 -0
  122. package/dist/src/fetch/index.js.map +1 -0
  123. package/dist/src/fetch/pb/proto.d.ts +27 -0
  124. package/dist/src/fetch/pb/proto.d.ts.map +1 -0
  125. package/dist/src/fetch/pb/proto.js +50 -0
  126. package/dist/src/fetch/pb/proto.js.map +1 -0
  127. package/dist/src/get-peer.d.ts +4 -11
  128. package/dist/src/get-peer.d.ts.map +1 -1
  129. package/dist/src/get-peer.js +43 -0
  130. package/dist/src/get-peer.js.map +1 -0
  131. package/dist/src/identify/consts.d.ts +9 -9
  132. package/dist/src/identify/consts.d.ts.map +1 -1
  133. package/dist/src/identify/consts.js +11 -0
  134. package/dist/src/identify/consts.js.map +1 -0
  135. package/dist/src/identify/index.d.ts +42 -96
  136. package/dist/src/identify/index.d.ts.map +1 -1
  137. package/dist/src/identify/index.js +322 -0
  138. package/dist/src/identify/index.js.map +1 -0
  139. package/dist/src/identify/pb/message.d.ts +16 -0
  140. package/dist/src/identify/pb/message.d.ts.map +1 -0
  141. package/dist/src/identify/pb/message.js +24 -0
  142. package/dist/src/identify/pb/message.js.map +1 -0
  143. package/dist/src/index.d.ts +150 -496
  144. package/dist/src/index.d.ts.map +1 -1
  145. package/dist/src/index.js +9 -0
  146. package/dist/src/index.js.map +1 -0
  147. package/dist/src/insecure/index.d.ts +9 -0
  148. package/dist/src/insecure/index.d.ts.map +1 -0
  149. package/dist/src/insecure/index.js +81 -0
  150. package/dist/src/insecure/index.js.map +1 -0
  151. package/dist/src/insecure/pb/proto.d.ts +29 -0
  152. package/dist/src/insecure/pb/proto.d.ts.map +1 -0
  153. package/dist/src/insecure/pb/proto.js +53 -0
  154. package/dist/src/insecure/pb/proto.js.map +1 -0
  155. package/dist/src/keychain/cms.d.ts +6 -14
  156. package/dist/src/keychain/cms.d.ts.map +1 -1
  157. package/dist/src/keychain/cms.js +129 -0
  158. package/dist/src/keychain/cms.js.map +1 -0
  159. package/dist/src/keychain/index.d.ts +60 -81
  160. package/dist/src/keychain/index.d.ts.map +1 -1
  161. package/dist/src/keychain/index.js +492 -0
  162. package/dist/src/keychain/index.js.map +1 -0
  163. package/dist/src/keychain/util.d.ts +3 -6
  164. package/dist/src/keychain/util.d.ts.map +1 -1
  165. package/dist/src/keychain/util.js +79 -0
  166. package/dist/src/keychain/util.js.map +1 -0
  167. package/dist/src/libp2p.d.ts +80 -0
  168. package/dist/src/libp2p.d.ts.map +1 -0
  169. package/dist/src/libp2p.js +397 -0
  170. package/dist/src/libp2p.js.map +1 -0
  171. package/dist/src/metrics/index.d.ts +47 -104
  172. package/dist/src/metrics/index.d.ts.map +1 -1
  173. package/dist/src/metrics/index.js +231 -0
  174. package/dist/src/metrics/index.js.map +1 -0
  175. package/dist/src/metrics/moving-average.d.ts +14 -0
  176. package/dist/src/metrics/moving-average.d.ts.map +1 -0
  177. package/dist/src/metrics/moving-average.js +40 -0
  178. package/dist/src/metrics/moving-average.js.map +1 -0
  179. package/dist/src/metrics/stats.d.ts +41 -93
  180. package/dist/src/metrics/stats.d.ts.map +1 -1
  181. package/dist/src/metrics/stats.js +183 -0
  182. package/dist/src/metrics/stats.js.map +1 -0
  183. package/dist/src/nat-manager.d.ts +42 -99
  184. package/dist/src/nat-manager.d.ts.map +1 -1
  185. package/dist/src/nat-manager.js +114 -0
  186. package/dist/src/nat-manager.js.map +1 -0
  187. package/dist/src/peer-record-updater.d.ts +15 -0
  188. package/dist/src/peer-record-updater.d.ts.map +1 -0
  189. package/dist/src/peer-record-updater.js +44 -0
  190. package/dist/src/peer-record-updater.js.map +1 -0
  191. package/dist/src/peer-routing.d.ts +40 -84
  192. package/dist/src/peer-routing.d.ts.map +1 -1
  193. package/dist/src/peer-routing.js +108 -0
  194. package/dist/src/peer-routing.js.map +1 -0
  195. package/dist/src/ping/constants.d.ts +4 -4
  196. package/dist/src/ping/constants.d.ts.map +1 -1
  197. package/dist/src/ping/constants.js +5 -0
  198. package/dist/src/ping/constants.js.map +1 -0
  199. package/dist/src/ping/index.d.ts +17 -31
  200. package/dist/src/ping/index.d.ts.map +1 -1
  201. package/dist/src/ping/index.js +57 -0
  202. package/dist/src/ping/index.js.map +1 -0
  203. package/dist/src/pnet/crypto.d.ts +15 -5
  204. package/dist/src/pnet/crypto.d.ts.map +1 -1
  205. package/dist/src/pnet/crypto.js +60 -0
  206. package/dist/src/pnet/crypto.js.map +1 -0
  207. package/dist/src/pnet/errors.d.ts +5 -5
  208. package/dist/src/pnet/errors.d.ts.map +1 -1
  209. package/dist/src/pnet/errors.js +6 -0
  210. package/dist/src/pnet/errors.js.map +1 -0
  211. package/dist/src/pnet/index.d.ts +12 -20
  212. package/dist/src/pnet/index.d.ts.map +1 -1
  213. package/dist/src/pnet/index.js +67 -0
  214. package/dist/src/pnet/index.js.map +1 -0
  215. package/dist/src/pnet/key-generator.d.ts +3 -7
  216. package/dist/src/pnet/key-generator.d.ts.map +1 -1
  217. package/dist/src/pnet/key-generator.js +25 -0
  218. package/dist/src/pnet/key-generator.js.map +1 -0
  219. package/dist/src/pubsub/dummy-pubsub.d.ts +17 -0
  220. package/dist/src/pubsub/dummy-pubsub.d.ts.map +1 -0
  221. package/dist/src/pubsub/dummy-pubsub.js +37 -0
  222. package/dist/src/pubsub/dummy-pubsub.js.map +1 -0
  223. package/dist/src/registrar.d.ts +26 -65
  224. package/dist/src/registrar.d.ts.map +1 -1
  225. package/dist/src/registrar.js +144 -0
  226. package/dist/src/registrar.js.map +1 -0
  227. package/dist/src/transport-manager.d.ts +36 -82
  228. package/dist/src/transport-manager.d.ts.map +1 -1
  229. package/dist/src/transport-manager.js +223 -0
  230. package/dist/src/transport-manager.js.map +1 -0
  231. package/dist/src/upgrader.d.ts +49 -129
  232. package/dist/src/upgrader.d.ts.map +1 -1
  233. package/dist/src/upgrader.js +402 -0
  234. package/dist/src/upgrader.js.map +1 -0
  235. package/dist/src/version.d.ts +3 -0
  236. package/dist/src/version.d.ts.map +1 -0
  237. package/dist/src/version.js +3 -0
  238. package/dist/src/version.js.map +1 -0
  239. package/package.json +144 -201
  240. package/src/address-manager/index.ts +130 -0
  241. package/src/circuit/README.md +16 -11
  242. package/src/circuit/auto-relay.ts +286 -0
  243. package/src/circuit/circuit/hop.ts +211 -0
  244. package/src/circuit/circuit/stop.ts +78 -0
  245. package/src/circuit/circuit/stream-handler.ts +86 -0
  246. package/src/circuit/circuit/{utils.js → utils.ts} +9 -25
  247. package/src/circuit/constants.ts +31 -0
  248. package/src/circuit/index.ts +120 -0
  249. package/src/circuit/listener.ts +82 -0
  250. package/src/circuit/multicodec.ts +2 -0
  251. package/src/circuit/{protocol → pb}/index.proto +1 -1
  252. package/src/circuit/pb/index.ts +117 -0
  253. package/src/circuit/transport.ts +219 -0
  254. package/src/circuit/utils.ts +12 -0
  255. package/src/config.ts +99 -0
  256. package/src/connection-manager/auto-dialler.ts +154 -0
  257. package/src/connection-manager/dialer/auto-dialer.ts +59 -0
  258. package/src/{dialer/dial-request.js → connection-manager/dialer/dial-request.ts} +60 -51
  259. package/src/connection-manager/dialer/index.ts +382 -0
  260. package/src/connection-manager/index.ts +508 -0
  261. package/src/connection-manager/latency-monitor.ts +319 -0
  262. package/src/connection-manager/{visibility-change-emitter.js → visibility-change-emitter.ts} +48 -38
  263. package/src/constants.ts +31 -0
  264. package/src/content-routing/index.ts +144 -0
  265. package/src/content-routing/utils.ts +54 -0
  266. package/src/dht/dht-content-routing.ts +43 -0
  267. package/src/dht/dht-peer-routing.ts +35 -0
  268. package/src/dht/dummy-dht.ts +60 -0
  269. package/src/errors.ts +73 -0
  270. package/src/fetch/README.md +1 -1
  271. package/src/fetch/constants.ts +3 -0
  272. package/src/fetch/index.ts +167 -0
  273. package/src/fetch/{proto.proto → pb/proto.proto} +0 -0
  274. package/src/fetch/pb/proto.ts +65 -0
  275. package/src/get-peer.ts +57 -0
  276. package/src/identify/consts.ts +13 -0
  277. package/src/identify/index.ts +445 -0
  278. package/src/identify/{message.proto → pb/message.proto} +0 -0
  279. package/src/identify/pb/message.ts +37 -0
  280. package/src/index.ts +220 -0
  281. package/src/insecure/index.ts +101 -0
  282. package/src/insecure/{proto.proto → pb/proto.proto} +0 -0
  283. package/src/insecure/pb/proto.ts +68 -0
  284. package/src/keychain/{cms.js → cms.ts} +62 -58
  285. package/src/keychain/index.ts +587 -0
  286. package/src/keychain/{util.js → util.ts} +7 -17
  287. package/src/libp2p.ts +538 -0
  288. package/src/metrics/index.ts +310 -0
  289. package/src/metrics/moving-average.ts +53 -0
  290. package/src/metrics/stats.ts +238 -0
  291. package/src/nat-manager.ts +194 -0
  292. package/src/peer-record-updater.ts +55 -0
  293. package/src/peer-routing.ts +186 -0
  294. package/src/ping/README.md +1 -1
  295. package/src/ping/constants.ts +5 -0
  296. package/src/ping/index.ts +84 -0
  297. package/src/pnet/README.md +2 -2
  298. package/src/pnet/crypto.ts +67 -0
  299. package/src/pnet/errors.ts +5 -0
  300. package/src/pnet/index.ts +97 -0
  301. package/src/pnet/key-generator.ts +28 -0
  302. package/src/pubsub/dummy-pubsub.ts +51 -0
  303. package/src/registrar.ts +189 -0
  304. package/src/transport-manager.ts +281 -0
  305. package/src/upgrader.ts +499 -0
  306. package/src/version.ts +3 -0
  307. package/dist/index.min.js +0 -55
  308. package/dist/src/circuit/protocol/index.d.ts +0 -173
  309. package/dist/src/dialer/dial-request.d.ts +0 -55
  310. package/dist/src/dialer/dial-request.d.ts.map +0 -1
  311. package/dist/src/dialer/index.d.ts +0 -182
  312. package/dist/src/dialer/index.d.ts.map +0 -1
  313. package/dist/src/fetch/proto.d.ts +0 -134
  314. package/dist/src/identify/message.d.ts +0 -95
  315. package/dist/src/insecure/plaintext.d.ts +0 -12
  316. package/dist/src/insecure/plaintext.d.ts.map +0 -1
  317. package/dist/src/insecure/proto.d.ts +0 -128
  318. package/dist/src/metrics/old-peers.d.ts +0 -3
  319. package/dist/src/metrics/old-peers.d.ts.map +0 -1
  320. package/dist/src/metrics/tracked-map.d.ts +0 -8
  321. package/dist/src/metrics/tracked-map.d.ts.map +0 -1
  322. package/dist/src/peer-store/address-book.d.ts +0 -67
  323. package/dist/src/peer-store/address-book.d.ts.map +0 -1
  324. package/dist/src/peer-store/index.d.ts +0 -58
  325. package/dist/src/peer-store/index.d.ts.map +0 -1
  326. package/dist/src/peer-store/key-book.d.ts +0 -40
  327. package/dist/src/peer-store/key-book.d.ts.map +0 -1
  328. package/dist/src/peer-store/metadata-book.d.ts +0 -58
  329. package/dist/src/peer-store/metadata-book.d.ts.map +0 -1
  330. package/dist/src/peer-store/pb/peer.d.ts +0 -222
  331. package/dist/src/peer-store/proto-book.d.ts +0 -43
  332. package/dist/src/peer-store/proto-book.d.ts.map +0 -1
  333. package/dist/src/peer-store/store.d.ts +0 -73
  334. package/dist/src/peer-store/store.d.ts.map +0 -1
  335. package/dist/src/peer-store/types.d.ts +0 -202
  336. package/dist/src/peer-store/types.d.ts.map +0 -1
  337. package/dist/src/ping/util.d.ts +0 -5
  338. package/dist/src/ping/util.d.ts.map +0 -1
  339. package/dist/src/pubsub-adapter.d.ts +0 -22
  340. package/dist/src/pubsub-adapter.d.ts.map +0 -1
  341. package/dist/src/record/envelope/envelope.d.ts +0 -77
  342. package/dist/src/record/envelope/index.d.ts +0 -80
  343. package/dist/src/record/envelope/index.d.ts.map +0 -1
  344. package/dist/src/record/peer-record/consts.d.ts +0 -4
  345. package/dist/src/record/peer-record/consts.d.ts.map +0 -1
  346. package/dist/src/record/peer-record/index.d.ts +0 -60
  347. package/dist/src/record/peer-record/index.d.ts.map +0 -1
  348. package/dist/src/record/peer-record/peer-record.d.ts +0 -133
  349. package/dist/src/record/utils.d.ts +0 -12
  350. package/dist/src/record/utils.d.ts.map +0 -1
  351. package/dist/src/types.d.ts +0 -90
  352. package/dist/src/types.d.ts.map +0 -1
  353. package/src/address-manager/index.js +0 -96
  354. package/src/circuit/auto-relay.js +0 -302
  355. package/src/circuit/circuit/hop.js +0 -205
  356. package/src/circuit/circuit/stop.js +0 -81
  357. package/src/circuit/circuit/stream-handler.js +0 -94
  358. package/src/circuit/constants.js +0 -12
  359. package/src/circuit/index.js +0 -102
  360. package/src/circuit/listener.js +0 -75
  361. package/src/circuit/multicodec.js +0 -5
  362. package/src/circuit/protocol/index.d.ts +0 -173
  363. package/src/circuit/protocol/index.js +0 -530
  364. package/src/circuit/transport.js +0 -229
  365. package/src/circuit/utils.js +0 -17
  366. package/src/config.js +0 -114
  367. package/src/connection-manager/auto-dialler.js +0 -132
  368. package/src/connection-manager/index.js +0 -374
  369. package/src/connection-manager/latency-monitor.js +0 -264
  370. package/src/constants.js +0 -18
  371. package/src/content-routing/index.js +0 -163
  372. package/src/content-routing/utils.js +0 -89
  373. package/src/dht/dht-content-routing.js +0 -44
  374. package/src/dht/dht-peer-routing.js +0 -51
  375. package/src/dialer/index.js +0 -376
  376. package/src/errors.js +0 -66
  377. package/src/fetch/constants.js +0 -6
  378. package/src/fetch/index.js +0 -159
  379. package/src/fetch/proto.d.ts +0 -134
  380. package/src/fetch/proto.js +0 -333
  381. package/src/get-peer.js +0 -49
  382. package/src/identify/consts.js +0 -15
  383. package/src/identify/index.js +0 -384
  384. package/src/identify/message.d.ts +0 -95
  385. package/src/identify/message.js +0 -328
  386. package/src/index.js +0 -813
  387. package/src/insecure/plaintext.js +0 -95
  388. package/src/insecure/proto.d.ts +0 -128
  389. package/src/insecure/proto.js +0 -371
  390. package/src/keychain/index.js +0 -561
  391. package/src/metrics/index.js +0 -290
  392. package/src/metrics/old-peers.js +0 -16
  393. package/src/metrics/stats.js +0 -270
  394. package/src/metrics/tracked-map.js +0 -94
  395. package/src/nat-manager.js +0 -197
  396. package/src/peer-routing.js +0 -176
  397. package/src/peer-store/README.md +0 -145
  398. package/src/peer-store/address-book.js +0 -382
  399. package/src/peer-store/index.js +0 -121
  400. package/src/peer-store/key-book.js +0 -141
  401. package/src/peer-store/metadata-book.js +0 -250
  402. package/src/peer-store/pb/peer.d.ts +0 -222
  403. package/src/peer-store/pb/peer.js +0 -643
  404. package/src/peer-store/pb/peer.proto +0 -31
  405. package/src/peer-store/proto-book.js +0 -237
  406. package/src/peer-store/store.js +0 -263
  407. package/src/peer-store/types.ts +0 -245
  408. package/src/ping/constants.js +0 -8
  409. package/src/ping/index.js +0 -84
  410. package/src/ping/util.js +0 -18
  411. package/src/pnet/crypto.js +0 -84
  412. package/src/pnet/errors.js +0 -7
  413. package/src/pnet/index.js +0 -86
  414. package/src/pnet/key-generator.js +0 -33
  415. package/src/pubsub-adapter.js +0 -61
  416. package/src/record/README.md +0 -130
  417. package/src/record/envelope/envelope.d.ts +0 -77
  418. package/src/record/envelope/envelope.js +0 -243
  419. package/src/record/envelope/envelope.proto +0 -19
  420. package/src/record/envelope/index.js +0 -183
  421. package/src/record/peer-record/consts.js +0 -14
  422. package/src/record/peer-record/index.js +0 -113
  423. package/src/record/peer-record/peer-record.d.ts +0 -133
  424. package/src/record/peer-record/peer-record.js +0 -367
  425. package/src/record/peer-record/peer-record.proto +0 -18
  426. package/src/record/utils.js +0 -25
  427. package/src/registrar.js +0 -127
  428. package/src/transport-manager.js +0 -269
  429. package/src/types.ts +0 -98
  430. package/src/upgrader.js +0 -492
@@ -1,95 +0,0 @@
1
- 'use strict'
2
-
3
- const debug = require('debug')
4
- const log = Object.assign(debug('libp2p:plaintext'), {
5
- error: debug('libp2p:plaintext:err')
6
- })
7
- // @ts-ignore it-handshake do not export types
8
- const handshake = require('it-handshake')
9
- const lp = require('it-length-prefixed')
10
- const PeerId = require('peer-id')
11
- const { UnexpectedPeerError, InvalidCryptoExchangeError } = require('libp2p-interfaces/src/crypto/errors')
12
-
13
- const { Exchange, KeyType } = require('./proto')
14
- const protocol = '/plaintext/2.0.0'
15
-
16
- /**
17
- * @typedef {import('libp2p-interfaces/src/connection').Connection} Connection
18
- */
19
-
20
- /**
21
- * @param {import('./proto').IExchange} exchange
22
- */
23
- function lpEncodeExchange (exchange) {
24
- const pb = Exchange.encode(exchange).finish()
25
- // @ts-ignore TODO: Uint8Array not assignable to Buffer
26
- return lp.encode.single(pb)
27
- }
28
-
29
- /**
30
- * Encrypt connection.
31
- *
32
- * @param {PeerId} localId
33
- * @param {Connection} conn
34
- * @param {PeerId} [remoteId]
35
- */
36
- async function encrypt (localId, conn, remoteId) {
37
- const shake = handshake(conn)
38
-
39
- // Encode the public key and write it to the remote peer
40
- shake.write(lpEncodeExchange({
41
- id: localId.toBytes(),
42
- pubkey: {
43
- Type: KeyType.RSA, // TODO: dont hard code
44
- Data: localId.marshalPubKey()
45
- }
46
- }))
47
-
48
- log('write pubkey exchange to peer %j', remoteId)
49
-
50
- // Get the Exchange message
51
- const response = (await lp.decode.fromReader(shake.reader).next()).value
52
- const id = Exchange.decode(response.slice())
53
- log('read pubkey exchange from peer %j', remoteId)
54
-
55
- let peerId
56
- try {
57
- peerId = await PeerId.createFromPubKey(id.pubkey.Data)
58
- } catch (/** @type {any} */ err) {
59
- log.error(err)
60
- throw new InvalidCryptoExchangeError('Remote did not provide its public key')
61
- }
62
-
63
- if (remoteId && !peerId.equals(remoteId)) {
64
- throw new UnexpectedPeerError()
65
- }
66
-
67
- log('plaintext key exchange completed successfully with peer %j', peerId)
68
-
69
- shake.rest()
70
- return {
71
- conn: shake.stream,
72
- remotePeer: peerId
73
- }
74
- }
75
-
76
- module.exports =
77
- {
78
- protocol,
79
- /**
80
- * @param {PeerId} localId
81
- * @param {Connection} conn
82
- * @param {PeerId | undefined} remoteId
83
- */
84
- secureInbound: (localId, conn, remoteId) => {
85
- return encrypt(localId, conn, remoteId)
86
- },
87
- /**
88
- * @param {PeerId} localId
89
- * @param {Connection} conn
90
- * @param {PeerId | undefined} remoteId
91
- */
92
- secureOutbound: (localId, conn, remoteId) => {
93
- return encrypt(localId, conn, remoteId)
94
- }
95
- }
@@ -1,128 +0,0 @@
1
- import * as $protobuf from "protobufjs";
2
- /** Properties of an Exchange. */
3
- export interface IExchange {
4
-
5
- /** Exchange id */
6
- id?: (Uint8Array|null);
7
-
8
- /** Exchange pubkey */
9
- pubkey?: (IPublicKey|null);
10
- }
11
-
12
- /** Represents an Exchange. */
13
- export class Exchange implements IExchange {
14
-
15
- /**
16
- * Constructs a new Exchange.
17
- * @param [p] Properties to set
18
- */
19
- constructor(p?: IExchange);
20
-
21
- /** Exchange id. */
22
- public id: Uint8Array;
23
-
24
- /** Exchange pubkey. */
25
- public pubkey?: (IPublicKey|null);
26
-
27
- /**
28
- * Encodes the specified Exchange message. Does not implicitly {@link Exchange.verify|verify} messages.
29
- * @param m Exchange message or plain object to encode
30
- * @param [w] Writer to encode to
31
- * @returns Writer
32
- */
33
- public static encode(m: IExchange, w?: $protobuf.Writer): $protobuf.Writer;
34
-
35
- /**
36
- * Decodes an Exchange message from the specified reader or buffer.
37
- * @param r Reader or buffer to decode from
38
- * @param [l] Message length if known beforehand
39
- * @returns Exchange
40
- * @throws {Error} If the payload is not a reader or valid buffer
41
- * @throws {$protobuf.util.ProtocolError} If required fields are missing
42
- */
43
- public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): Exchange;
44
-
45
- /**
46
- * Creates an Exchange message from a plain object. Also converts values to their respective internal types.
47
- * @param d Plain object
48
- * @returns Exchange
49
- */
50
- public static fromObject(d: { [k: string]: any }): Exchange;
51
-
52
- /**
53
- * Creates a plain object from an Exchange message. Also converts values to other types if specified.
54
- * @param m Exchange
55
- * @param [o] Conversion options
56
- * @returns Plain object
57
- */
58
- public static toObject(m: Exchange, o?: $protobuf.IConversionOptions): { [k: string]: any };
59
-
60
- /**
61
- * Converts this Exchange to JSON.
62
- * @returns JSON object
63
- */
64
- public toJSON(): { [k: string]: any };
65
- }
66
-
67
- /** KeyType enum. */
68
- export enum KeyType {
69
- RSA = 0,
70
- Ed25519 = 1,
71
- Secp256k1 = 2,
72
- ECDSA = 3
73
- }
74
-
75
- /** Represents a PublicKey. */
76
- export class PublicKey implements IPublicKey {
77
-
78
- /**
79
- * Constructs a new PublicKey.
80
- * @param [p] Properties to set
81
- */
82
- constructor(p?: IPublicKey);
83
-
84
- /** PublicKey Type. */
85
- public Type: KeyType;
86
-
87
- /** PublicKey Data. */
88
- public Data: Uint8Array;
89
-
90
- /**
91
- * Encodes the specified PublicKey message. Does not implicitly {@link PublicKey.verify|verify} messages.
92
- * @param m PublicKey message or plain object to encode
93
- * @param [w] Writer to encode to
94
- * @returns Writer
95
- */
96
- public static encode(m: IPublicKey, w?: $protobuf.Writer): $protobuf.Writer;
97
-
98
- /**
99
- * Decodes a PublicKey message from the specified reader or buffer.
100
- * @param r Reader or buffer to decode from
101
- * @param [l] Message length if known beforehand
102
- * @returns PublicKey
103
- * @throws {Error} If the payload is not a reader or valid buffer
104
- * @throws {$protobuf.util.ProtocolError} If required fields are missing
105
- */
106
- public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): PublicKey;
107
-
108
- /**
109
- * Creates a PublicKey message from a plain object. Also converts values to their respective internal types.
110
- * @param d Plain object
111
- * @returns PublicKey
112
- */
113
- public static fromObject(d: { [k: string]: any }): PublicKey;
114
-
115
- /**
116
- * Creates a plain object from a PublicKey message. Also converts values to other types if specified.
117
- * @param m PublicKey
118
- * @param [o] Conversion options
119
- * @returns Plain object
120
- */
121
- public static toObject(m: PublicKey, o?: $protobuf.IConversionOptions): { [k: string]: any };
122
-
123
- /**
124
- * Converts this PublicKey to JSON.
125
- * @returns JSON object
126
- */
127
- public toJSON(): { [k: string]: any };
128
- }
@@ -1,371 +0,0 @@
1
- /*eslint-disable*/
2
- "use strict";
3
-
4
- var $protobuf = require("protobufjs/minimal");
5
-
6
- // Common aliases
7
- var $Reader = $protobuf.Reader, $Writer = $protobuf.Writer, $util = $protobuf.util;
8
-
9
- // Exported root namespace
10
- var $root = $protobuf.roots["libp2p-plaintext"] || ($protobuf.roots["libp2p-plaintext"] = {});
11
-
12
- $root.Exchange = (function() {
13
-
14
- /**
15
- * Properties of an Exchange.
16
- * @exports IExchange
17
- * @interface IExchange
18
- * @property {Uint8Array|null} [id] Exchange id
19
- * @property {IPublicKey|null} [pubkey] Exchange pubkey
20
- */
21
-
22
- /**
23
- * Constructs a new Exchange.
24
- * @exports Exchange
25
- * @classdesc Represents an Exchange.
26
- * @implements IExchange
27
- * @constructor
28
- * @param {IExchange=} [p] Properties to set
29
- */
30
- function Exchange(p) {
31
- if (p)
32
- for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)
33
- if (p[ks[i]] != null)
34
- this[ks[i]] = p[ks[i]];
35
- }
36
-
37
- /**
38
- * Exchange id.
39
- * @member {Uint8Array} id
40
- * @memberof Exchange
41
- * @instance
42
- */
43
- Exchange.prototype.id = $util.newBuffer([]);
44
-
45
- /**
46
- * Exchange pubkey.
47
- * @member {IPublicKey|null|undefined} pubkey
48
- * @memberof Exchange
49
- * @instance
50
- */
51
- Exchange.prototype.pubkey = null;
52
-
53
- /**
54
- * Encodes the specified Exchange message. Does not implicitly {@link Exchange.verify|verify} messages.
55
- * @function encode
56
- * @memberof Exchange
57
- * @static
58
- * @param {IExchange} m Exchange message or plain object to encode
59
- * @param {$protobuf.Writer} [w] Writer to encode to
60
- * @returns {$protobuf.Writer} Writer
61
- */
62
- Exchange.encode = function encode(m, w) {
63
- if (!w)
64
- w = $Writer.create();
65
- if (m.id != null && Object.hasOwnProperty.call(m, "id"))
66
- w.uint32(10).bytes(m.id);
67
- if (m.pubkey != null && Object.hasOwnProperty.call(m, "pubkey"))
68
- $root.PublicKey.encode(m.pubkey, w.uint32(18).fork()).ldelim();
69
- return w;
70
- };
71
-
72
- /**
73
- * Decodes an Exchange message from the specified reader or buffer.
74
- * @function decode
75
- * @memberof Exchange
76
- * @static
77
- * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from
78
- * @param {number} [l] Message length if known beforehand
79
- * @returns {Exchange} Exchange
80
- * @throws {Error} If the payload is not a reader or valid buffer
81
- * @throws {$protobuf.util.ProtocolError} If required fields are missing
82
- */
83
- Exchange.decode = function decode(r, l) {
84
- if (!(r instanceof $Reader))
85
- r = $Reader.create(r);
86
- var c = l === undefined ? r.len : r.pos + l, m = new $root.Exchange();
87
- while (r.pos < c) {
88
- var t = r.uint32();
89
- switch (t >>> 3) {
90
- case 1:
91
- m.id = r.bytes();
92
- break;
93
- case 2:
94
- m.pubkey = $root.PublicKey.decode(r, r.uint32());
95
- break;
96
- default:
97
- r.skipType(t & 7);
98
- break;
99
- }
100
- }
101
- return m;
102
- };
103
-
104
- /**
105
- * Creates an Exchange message from a plain object. Also converts values to their respective internal types.
106
- * @function fromObject
107
- * @memberof Exchange
108
- * @static
109
- * @param {Object.<string,*>} d Plain object
110
- * @returns {Exchange} Exchange
111
- */
112
- Exchange.fromObject = function fromObject(d) {
113
- if (d instanceof $root.Exchange)
114
- return d;
115
- var m = new $root.Exchange();
116
- if (d.id != null) {
117
- if (typeof d.id === "string")
118
- $util.base64.decode(d.id, m.id = $util.newBuffer($util.base64.length(d.id)), 0);
119
- else if (d.id.length)
120
- m.id = d.id;
121
- }
122
- if (d.pubkey != null) {
123
- if (typeof d.pubkey !== "object")
124
- throw TypeError(".Exchange.pubkey: object expected");
125
- m.pubkey = $root.PublicKey.fromObject(d.pubkey);
126
- }
127
- return m;
128
- };
129
-
130
- /**
131
- * Creates a plain object from an Exchange message. Also converts values to other types if specified.
132
- * @function toObject
133
- * @memberof Exchange
134
- * @static
135
- * @param {Exchange} m Exchange
136
- * @param {$protobuf.IConversionOptions} [o] Conversion options
137
- * @returns {Object.<string,*>} Plain object
138
- */
139
- Exchange.toObject = function toObject(m, o) {
140
- if (!o)
141
- o = {};
142
- var d = {};
143
- if (o.defaults) {
144
- if (o.bytes === String)
145
- d.id = "";
146
- else {
147
- d.id = [];
148
- if (o.bytes !== Array)
149
- d.id = $util.newBuffer(d.id);
150
- }
151
- d.pubkey = null;
152
- }
153
- if (m.id != null && m.hasOwnProperty("id")) {
154
- d.id = o.bytes === String ? $util.base64.encode(m.id, 0, m.id.length) : o.bytes === Array ? Array.prototype.slice.call(m.id) : m.id;
155
- }
156
- if (m.pubkey != null && m.hasOwnProperty("pubkey")) {
157
- d.pubkey = $root.PublicKey.toObject(m.pubkey, o);
158
- }
159
- return d;
160
- };
161
-
162
- /**
163
- * Converts this Exchange to JSON.
164
- * @function toJSON
165
- * @memberof Exchange
166
- * @instance
167
- * @returns {Object.<string,*>} JSON object
168
- */
169
- Exchange.prototype.toJSON = function toJSON() {
170
- return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
171
- };
172
-
173
- return Exchange;
174
- })();
175
-
176
- /**
177
- * KeyType enum.
178
- * @exports KeyType
179
- * @enum {number}
180
- * @property {number} RSA=0 RSA value
181
- * @property {number} Ed25519=1 Ed25519 value
182
- * @property {number} Secp256k1=2 Secp256k1 value
183
- * @property {number} ECDSA=3 ECDSA value
184
- */
185
- $root.KeyType = (function() {
186
- var valuesById = {}, values = Object.create(valuesById);
187
- values[valuesById[0] = "RSA"] = 0;
188
- values[valuesById[1] = "Ed25519"] = 1;
189
- values[valuesById[2] = "Secp256k1"] = 2;
190
- values[valuesById[3] = "ECDSA"] = 3;
191
- return values;
192
- })();
193
-
194
- $root.PublicKey = (function() {
195
-
196
- /**
197
- * Properties of a PublicKey.
198
- * @exports IPublicKey
199
- * @interface IPublicKey
200
- * @property {KeyType|null} [Type] PublicKey Type
201
- * @property {Uint8Array|null} [Data] PublicKey Data
202
- */
203
-
204
- /**
205
- * Constructs a new PublicKey.
206
- * @exports PublicKey
207
- * @classdesc Represents a PublicKey.
208
- * @implements IPublicKey
209
- * @constructor
210
- * @param {IPublicKey=} [p] Properties to set
211
- */
212
- function PublicKey(p) {
213
- if (p)
214
- for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)
215
- if (p[ks[i]] != null)
216
- this[ks[i]] = p[ks[i]];
217
- }
218
-
219
- /**
220
- * PublicKey Type.
221
- * @member {KeyType} Type
222
- * @memberof PublicKey
223
- * @instance
224
- */
225
- PublicKey.prototype.Type = 0;
226
-
227
- /**
228
- * PublicKey Data.
229
- * @member {Uint8Array} Data
230
- * @memberof PublicKey
231
- * @instance
232
- */
233
- PublicKey.prototype.Data = $util.newBuffer([]);
234
-
235
- /**
236
- * Encodes the specified PublicKey message. Does not implicitly {@link PublicKey.verify|verify} messages.
237
- * @function encode
238
- * @memberof PublicKey
239
- * @static
240
- * @param {IPublicKey} m PublicKey message or plain object to encode
241
- * @param {$protobuf.Writer} [w] Writer to encode to
242
- * @returns {$protobuf.Writer} Writer
243
- */
244
- PublicKey.encode = function encode(m, w) {
245
- if (!w)
246
- w = $Writer.create();
247
- if (m.Type != null && Object.hasOwnProperty.call(m, "Type"))
248
- w.uint32(8).int32(m.Type);
249
- if (m.Data != null && Object.hasOwnProperty.call(m, "Data"))
250
- w.uint32(18).bytes(m.Data);
251
- return w;
252
- };
253
-
254
- /**
255
- * Decodes a PublicKey message from the specified reader or buffer.
256
- * @function decode
257
- * @memberof PublicKey
258
- * @static
259
- * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from
260
- * @param {number} [l] Message length if known beforehand
261
- * @returns {PublicKey} PublicKey
262
- * @throws {Error} If the payload is not a reader or valid buffer
263
- * @throws {$protobuf.util.ProtocolError} If required fields are missing
264
- */
265
- PublicKey.decode = function decode(r, l) {
266
- if (!(r instanceof $Reader))
267
- r = $Reader.create(r);
268
- var c = l === undefined ? r.len : r.pos + l, m = new $root.PublicKey();
269
- while (r.pos < c) {
270
- var t = r.uint32();
271
- switch (t >>> 3) {
272
- case 1:
273
- m.Type = r.int32();
274
- break;
275
- case 2:
276
- m.Data = r.bytes();
277
- break;
278
- default:
279
- r.skipType(t & 7);
280
- break;
281
- }
282
- }
283
- return m;
284
- };
285
-
286
- /**
287
- * Creates a PublicKey message from a plain object. Also converts values to their respective internal types.
288
- * @function fromObject
289
- * @memberof PublicKey
290
- * @static
291
- * @param {Object.<string,*>} d Plain object
292
- * @returns {PublicKey} PublicKey
293
- */
294
- PublicKey.fromObject = function fromObject(d) {
295
- if (d instanceof $root.PublicKey)
296
- return d;
297
- var m = new $root.PublicKey();
298
- switch (d.Type) {
299
- case "RSA":
300
- case 0:
301
- m.Type = 0;
302
- break;
303
- case "Ed25519":
304
- case 1:
305
- m.Type = 1;
306
- break;
307
- case "Secp256k1":
308
- case 2:
309
- m.Type = 2;
310
- break;
311
- case "ECDSA":
312
- case 3:
313
- m.Type = 3;
314
- break;
315
- }
316
- if (d.Data != null) {
317
- if (typeof d.Data === "string")
318
- $util.base64.decode(d.Data, m.Data = $util.newBuffer($util.base64.length(d.Data)), 0);
319
- else if (d.Data.length)
320
- m.Data = d.Data;
321
- }
322
- return m;
323
- };
324
-
325
- /**
326
- * Creates a plain object from a PublicKey message. Also converts values to other types if specified.
327
- * @function toObject
328
- * @memberof PublicKey
329
- * @static
330
- * @param {PublicKey} m PublicKey
331
- * @param {$protobuf.IConversionOptions} [o] Conversion options
332
- * @returns {Object.<string,*>} Plain object
333
- */
334
- PublicKey.toObject = function toObject(m, o) {
335
- if (!o)
336
- o = {};
337
- var d = {};
338
- if (o.defaults) {
339
- d.Type = o.enums === String ? "RSA" : 0;
340
- if (o.bytes === String)
341
- d.Data = "";
342
- else {
343
- d.Data = [];
344
- if (o.bytes !== Array)
345
- d.Data = $util.newBuffer(d.Data);
346
- }
347
- }
348
- if (m.Type != null && m.hasOwnProperty("Type")) {
349
- d.Type = o.enums === String ? $root.KeyType[m.Type] : m.Type;
350
- }
351
- if (m.Data != null && m.hasOwnProperty("Data")) {
352
- d.Data = o.bytes === String ? $util.base64.encode(m.Data, 0, m.Data.length) : o.bytes === Array ? Array.prototype.slice.call(m.Data) : m.Data;
353
- }
354
- return d;
355
- };
356
-
357
- /**
358
- * Converts this PublicKey to JSON.
359
- * @function toJSON
360
- * @memberof PublicKey
361
- * @instance
362
- * @returns {Object.<string,*>} JSON object
363
- */
364
- PublicKey.prototype.toJSON = function toJSON() {
365
- return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
366
- };
367
-
368
- return PublicKey;
369
- })();
370
-
371
- module.exports = $root;