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,237 +0,0 @@
1
- 'use strict'
2
-
3
- const debug = require('debug')
4
- const errcode = require('err-code')
5
- const { codes } = require('../errors')
6
- const PeerId = require('peer-id')
7
-
8
- /**
9
- * @typedef {import('./types').PeerStore} PeerStore
10
- * @typedef {import('./types').ProtoBook} ProtoBook
11
- */
12
-
13
- const log = Object.assign(debug('libp2p:peer-store:proto-book'), {
14
- error: debug('libp2p:peer-store:proto-book:err')
15
- })
16
-
17
- const EVENT_NAME = 'change:protocols'
18
-
19
- /**
20
- * @implements {ProtoBook}
21
- */
22
- class PersistentProtoBook {
23
- /**
24
- * @param {PeerStore["emit"]} emit
25
- * @param {import('./types').Store} store
26
- */
27
- constructor (emit, store) {
28
- this._emit = emit
29
- this._store = store
30
- }
31
-
32
- /**
33
- * @param {PeerId} peerId
34
- */
35
- async get (peerId) {
36
- log('get wait for read lock')
37
- const release = await this._store.lock.readLock()
38
- log('get got read lock')
39
-
40
- try {
41
- const peer = await this._store.load(peerId)
42
-
43
- return peer.protocols
44
- } catch (/** @type {any} */ err) {
45
- if (err.code !== codes.ERR_NOT_FOUND) {
46
- throw err
47
- }
48
- } finally {
49
- log('get release read lock')
50
- release()
51
- }
52
-
53
- return []
54
- }
55
-
56
- /**
57
- * @param {PeerId} peerId
58
- * @param {string[]} protocols
59
- */
60
- async set (peerId, protocols) {
61
- if (!PeerId.isPeerId(peerId)) {
62
- log.error('peerId must be an instance of peer-id to store data')
63
- throw errcode(new Error('peerId must be an instance of peer-id'), codes.ERR_INVALID_PARAMETERS)
64
- }
65
-
66
- if (!Array.isArray(protocols)) {
67
- log.error('protocols must be provided to store data')
68
- throw errcode(new Error('protocols must be provided'), codes.ERR_INVALID_PARAMETERS)
69
- }
70
-
71
- log('set await write lock')
72
- const release = await this._store.lock.writeLock()
73
- log('set got write lock')
74
-
75
- let updatedPeer
76
-
77
- try {
78
- try {
79
- const peer = await this._store.load(peerId)
80
-
81
- if (new Set([
82
- ...protocols
83
- ]).size === peer.protocols.length) {
84
- return
85
- }
86
- } catch (/** @type {any} */ err) {
87
- if (err.code !== codes.ERR_NOT_FOUND) {
88
- throw err
89
- }
90
- }
91
-
92
- updatedPeer = await this._store.patchOrCreate(peerId, {
93
- protocols
94
- })
95
-
96
- log(`stored provided protocols for ${peerId.toB58String()}`)
97
- } finally {
98
- log('set release write lock')
99
- release()
100
- }
101
-
102
- this._emit(EVENT_NAME, { peerId, protocols: updatedPeer.protocols })
103
- }
104
-
105
- /**
106
- * @param {PeerId} peerId
107
- * @param {string[]} protocols
108
- */
109
- async add (peerId, protocols) {
110
- if (!PeerId.isPeerId(peerId)) {
111
- log.error('peerId must be an instance of peer-id to store data')
112
- throw errcode(new Error('peerId must be an instance of peer-id'), codes.ERR_INVALID_PARAMETERS)
113
- }
114
-
115
- if (!Array.isArray(protocols)) {
116
- log.error('protocols must be provided to store data')
117
- throw errcode(new Error('protocols must be provided'), codes.ERR_INVALID_PARAMETERS)
118
- }
119
-
120
- log('add await write lock')
121
- const release = await this._store.lock.writeLock()
122
- log('add got write lock')
123
-
124
- let updatedPeer
125
-
126
- try {
127
- try {
128
- const peer = await this._store.load(peerId)
129
-
130
- if (new Set([
131
- ...peer.protocols,
132
- ...protocols
133
- ]).size === peer.protocols.length) {
134
- return
135
- }
136
- } catch (/** @type {any} */ err) {
137
- if (err.code !== codes.ERR_NOT_FOUND) {
138
- throw err
139
- }
140
- }
141
-
142
- updatedPeer = await this._store.mergeOrCreate(peerId, {
143
- protocols
144
- })
145
-
146
- log(`added provided protocols for ${peerId.toB58String()}`)
147
- } finally {
148
- log('add release write lock')
149
- release()
150
- }
151
-
152
- this._emit(EVENT_NAME, { peerId, protocols: updatedPeer.protocols })
153
- }
154
-
155
- /**
156
- * @param {PeerId} peerId
157
- * @param {string[]} protocols
158
- */
159
- async remove (peerId, protocols) {
160
- if (!PeerId.isPeerId(peerId)) {
161
- log.error('peerId must be an instance of peer-id to store data')
162
- throw errcode(new Error('peerId must be an instance of peer-id'), codes.ERR_INVALID_PARAMETERS)
163
- }
164
-
165
- if (!Array.isArray(protocols)) {
166
- log.error('protocols must be provided to store data')
167
- throw errcode(new Error('protocols must be provided'), codes.ERR_INVALID_PARAMETERS)
168
- }
169
-
170
- log('remove await write lock')
171
- const release = await this._store.lock.writeLock()
172
- log('remove got write lock')
173
-
174
- let updatedPeer
175
-
176
- try {
177
- try {
178
- const peer = await this._store.load(peerId)
179
- const protocolSet = new Set(peer.protocols)
180
-
181
- for (const protocol of protocols) {
182
- protocolSet.delete(protocol)
183
- }
184
-
185
- if (peer.protocols.length === protocolSet.size) {
186
- return
187
- }
188
-
189
- protocols = Array.from(protocolSet)
190
- } catch (/** @type {any} */ err) {
191
- if (err.code !== codes.ERR_NOT_FOUND) {
192
- throw err
193
- }
194
- }
195
-
196
- updatedPeer = await this._store.patchOrCreate(peerId, {
197
- protocols
198
- })
199
- } finally {
200
- log('remove release write lock')
201
- release()
202
- }
203
-
204
- this._emit(EVENT_NAME, { peerId, protocols: updatedPeer.protocols })
205
- }
206
-
207
- /**
208
- * @param {PeerId} peerId
209
- */
210
- async delete (peerId) {
211
- log('delete await write lock')
212
- const release = await this._store.lock.writeLock()
213
- log('delete got write lock')
214
- let has
215
-
216
- try {
217
- has = await this._store.has(peerId)
218
-
219
- await this._store.patchOrCreate(peerId, {
220
- protocols: []
221
- })
222
- } catch (/** @type {any} */ err) {
223
- if (err.code !== codes.ERR_NOT_FOUND) {
224
- throw err
225
- }
226
- } finally {
227
- log('delete release write lock')
228
- release()
229
- }
230
-
231
- if (has) {
232
- this._emit(EVENT_NAME, { peerId, protocols: [] })
233
- }
234
- }
235
- }
236
-
237
- module.exports = PersistentProtoBook
@@ -1,263 +0,0 @@
1
- 'use strict'
2
-
3
- const debug = require('debug')
4
- const PeerId = require('peer-id')
5
- const errcode = require('err-code')
6
- const { codes } = require('../errors')
7
- const { Key } = require('interface-datastore/key')
8
- const { base32 } = require('multiformats/bases/base32')
9
- const { keys: { unmarshalPublicKey, marshalPublicKey } } = require('libp2p-crypto')
10
- const { Multiaddr } = require('multiaddr')
11
- const { Peer: PeerPB } = require('./pb/peer')
12
- // @ts-expect-error no types
13
- const mortice = require('mortice')
14
- const { equals: uint8arrayEquals } = require('uint8arrays/equals')
15
-
16
- const log = Object.assign(debug('libp2p:peer-store:store'), {
17
- error: debug('libp2p:peer-store:store:err')
18
- })
19
-
20
- /**
21
- * @typedef {import('./types').PeerStore} PeerStore
22
- * @typedef {import('./types').EventName} EventName
23
- * @typedef {import('./types').Peer} Peer
24
- */
25
-
26
- const NAMESPACE_COMMON = '/peers/'
27
-
28
- class PersistentStore {
29
- /**
30
- * @param {import('interface-datastore').Datastore} datastore
31
- */
32
- constructor (datastore) {
33
- this._datastore = datastore
34
- this.lock = mortice('peer-store', {
35
- singleProcess: true
36
- })
37
- }
38
-
39
- /**
40
- * @param {PeerId} peerId
41
- * @returns {Key}
42
- */
43
- _peerIdToDatastoreKey (peerId) {
44
- if (!PeerId.isPeerId(peerId)) {
45
- log.error('peerId must be an instance of peer-id to store data')
46
- throw errcode(new Error('peerId must be an instance of peer-id'), codes.ERR_INVALID_PARAMETERS)
47
- }
48
-
49
- const b32key = peerId.toString()
50
- return new Key(`${NAMESPACE_COMMON}${b32key}`)
51
- }
52
-
53
- /**
54
- * @param {PeerId} peerId
55
- */
56
- async has (peerId) {
57
- return this._datastore.has(this._peerIdToDatastoreKey(peerId))
58
- }
59
-
60
- /**
61
- * @param {PeerId} peerId
62
- */
63
- async delete (peerId) {
64
- await this._datastore.delete(this._peerIdToDatastoreKey(peerId))
65
- }
66
-
67
- /**
68
- * @param {PeerId} peerId
69
- * @returns {Promise<import('./types').Peer>} peer
70
- */
71
- async load (peerId) {
72
- const buf = await this._datastore.get(this._peerIdToDatastoreKey(peerId))
73
- const peer = PeerPB.decode(buf)
74
- const pubKey = peer.pubKey ? unmarshalPublicKey(peer.pubKey) : peerId.pubKey
75
- const metadata = new Map()
76
-
77
- for (const meta of peer.metadata) {
78
- metadata.set(meta.key, meta.value)
79
- }
80
-
81
- return {
82
- ...peer,
83
- id: peerId,
84
- pubKey,
85
- addresses: peer.addresses.map(({ multiaddr, isCertified }) => ({
86
- multiaddr: new Multiaddr(multiaddr),
87
- isCertified: isCertified || false
88
- })),
89
- metadata,
90
- peerRecordEnvelope: peer.peerRecordEnvelope || undefined
91
- }
92
- }
93
-
94
- /**
95
- * @param {Peer} peer
96
- */
97
- async save (peer) {
98
- if (peer.pubKey != null && peer.id.pubKey != null && !uint8arrayEquals(peer.pubKey.bytes, peer.id.pubKey.bytes)) {
99
- log.error('peer publicKey bytes do not match peer id publicKey bytes')
100
- throw errcode(new Error('publicKey bytes do not match peer id publicKey bytes'), codes.ERR_INVALID_PARAMETERS)
101
- }
102
-
103
- // dedupe addresses
104
- const addressSet = new Set()
105
-
106
- const buf = PeerPB.encode({
107
- addresses: peer.addresses
108
- .filter(address => {
109
- if (addressSet.has(address.multiaddr.toString())) {
110
- return false
111
- }
112
-
113
- addressSet.add(address.multiaddr.toString())
114
- return true
115
- })
116
- .sort((a, b) => {
117
- return a.multiaddr.toString().localeCompare(b.multiaddr.toString())
118
- })
119
- .map(({ multiaddr, isCertified }) => ({
120
- multiaddr: multiaddr.bytes,
121
- isCertified
122
- })),
123
- protocols: peer.protocols.sort(),
124
- pubKey: peer.pubKey ? marshalPublicKey(peer.pubKey) : undefined,
125
- metadata: [...peer.metadata.keys()].sort().map(key => ({ key, value: peer.metadata.get(key) })),
126
- peerRecordEnvelope: peer.peerRecordEnvelope
127
- }).finish()
128
-
129
- await this._datastore.put(this._peerIdToDatastoreKey(peer.id), buf)
130
-
131
- return this.load(peer.id)
132
- }
133
-
134
- /**
135
- * @param {PeerId} peerId
136
- * @param {Partial<Peer>} data
137
- */
138
- async patch (peerId, data) {
139
- const peer = await this.load(peerId)
140
-
141
- return await this._patch(peerId, data, peer)
142
- }
143
-
144
- /**
145
- * @param {PeerId} peerId
146
- * @param {Partial<Peer>} data
147
- */
148
- async patchOrCreate (peerId, data) {
149
- /** @type {Peer} */
150
- let peer
151
-
152
- try {
153
- peer = await this.load(peerId)
154
- } catch (/** @type {any} */ err) {
155
- if (err.code !== codes.ERR_NOT_FOUND) {
156
- throw err
157
- }
158
-
159
- peer = { id: peerId, addresses: [], protocols: [], metadata: new Map() }
160
- }
161
-
162
- return await this._patch(peerId, data, peer)
163
- }
164
-
165
- /**
166
- * @param {PeerId} peerId
167
- * @param {Partial<Peer>} data
168
- * @param {Peer} peer
169
- */
170
- async _patch (peerId, data, peer) {
171
- return await this.save({
172
- ...peer,
173
- ...data,
174
- id: peerId
175
- })
176
- }
177
-
178
- /**
179
- * @param {PeerId} peerId
180
- * @param {Partial<Peer>} data
181
- */
182
- async merge (peerId, data) {
183
- const peer = await this.load(peerId)
184
-
185
- return this._merge(peerId, data, peer)
186
- }
187
-
188
- /**
189
- * @param {PeerId} peerId
190
- * @param {Partial<Peer>} data
191
- */
192
- async mergeOrCreate (peerId, data) {
193
- /** @type {Peer} */
194
- let peer
195
-
196
- try {
197
- peer = await this.load(peerId)
198
- } catch (/** @type {any} */ err) {
199
- if (err.code !== codes.ERR_NOT_FOUND) {
200
- throw err
201
- }
202
-
203
- peer = { id: peerId, addresses: [], protocols: [], metadata: new Map() }
204
- }
205
-
206
- return await this._merge(peerId, data, peer)
207
- }
208
-
209
- /**
210
- * @param {PeerId} peerId
211
- * @param {Partial<Peer>} data
212
- * @param {Peer} peer
213
- */
214
- async _merge (peerId, data, peer) {
215
- // if the peer has certified addresses, use those in
216
- // favour of the supplied versions
217
- /** @type {Map<string, boolean>} */
218
- const addresses = new Map()
219
-
220
- ;(data.addresses || []).forEach(addr => {
221
- addresses.set(addr.multiaddr.toString(), addr.isCertified)
222
- })
223
-
224
- peer.addresses.forEach(({ multiaddr, isCertified }) => {
225
- const addrStr = multiaddr.toString()
226
- addresses.set(addrStr, Boolean(addresses.get(addrStr) || isCertified))
227
- })
228
-
229
- return await this.save({
230
- id: peerId,
231
- addresses: Array.from(addresses.entries()).map(([addrStr, isCertified]) => {
232
- return {
233
- multiaddr: new Multiaddr(addrStr),
234
- isCertified
235
- }
236
- }),
237
- protocols: Array.from(new Set([
238
- ...(peer.protocols || []),
239
- ...(data.protocols || [])
240
- ])),
241
- metadata: new Map([
242
- ...(peer.metadata ? peer.metadata.entries() : []),
243
- ...(data.metadata ? data.metadata.entries() : [])
244
- ]),
245
- pubKey: data.pubKey || (peer != null ? peer.pubKey : undefined),
246
- peerRecordEnvelope: data.peerRecordEnvelope || (peer != null ? peer.peerRecordEnvelope : undefined)
247
- })
248
- }
249
-
250
- async * all () {
251
- for await (const key of this._datastore.queryKeys({
252
- prefix: NAMESPACE_COMMON
253
- })) {
254
- // /peers/${peer-id-as-libp2p-key-cid-string-in-base-32}
255
- const base32Str = key.toString().split('/')[2]
256
- const buf = base32.decode(base32Str)
257
-
258
- yield this.load(PeerId.createFromBytes(buf))
259
- }
260
- }
261
- }
262
-
263
- module.exports = PersistentStore