libp2p 0.36.0 → 0.36.2-1473044

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (415) hide show
  1. package/LICENSE +3 -21
  2. package/README.md +13 -10
  3. package/dist/src/address-manager/index.d.ts +33 -52
  4. package/dist/src/address-manager/index.d.ts.map +1 -1
  5. package/dist/src/address-manager/index.js +81 -0
  6. package/dist/src/address-manager/index.js.map +1 -0
  7. package/dist/src/circuit/auto-relay.d.ts +24 -85
  8. package/dist/src/circuit/auto-relay.d.ts.map +1 -1
  9. package/dist/src/circuit/auto-relay.js +215 -0
  10. package/dist/src/circuit/auto-relay.js.map +1 -0
  11. package/dist/src/circuit/circuit/hop.d.ts +26 -53
  12. package/dist/src/circuit/circuit/hop.d.ts.map +1 -1
  13. package/dist/src/circuit/circuit/hop.js +138 -0
  14. package/dist/src/circuit/circuit/hop.js.map +1 -0
  15. package/dist/src/circuit/circuit/stop.d.ts +18 -10
  16. package/dist/src/circuit/circuit/stop.d.ts.map +1 -1
  17. package/dist/src/circuit/circuit/stop.js +49 -0
  18. package/dist/src/circuit/circuit/stop.js.map +1 -0
  19. package/dist/src/circuit/circuit/stream-handler.d.ts +19 -38
  20. package/dist/src/circuit/circuit/stream-handler.d.ts.map +1 -1
  21. package/dist/src/circuit/circuit/stream-handler.js +59 -0
  22. package/dist/src/circuit/circuit/stream-handler.js.map +1 -0
  23. package/dist/src/circuit/circuit/utils.d.ts +3 -6
  24. package/dist/src/circuit/circuit/utils.d.ts.map +1 -1
  25. package/dist/src/circuit/circuit/utils.js +43 -0
  26. package/dist/src/circuit/circuit/utils.js.map +1 -0
  27. package/dist/src/circuit/constants.d.ts +24 -6
  28. package/dist/src/circuit/constants.d.ts.map +1 -1
  29. package/dist/src/circuit/constants.js +26 -0
  30. package/dist/src/circuit/constants.js.map +1 -0
  31. package/dist/src/circuit/index.d.ts +41 -74
  32. package/dist/src/circuit/index.d.ts.map +1 -1
  33. package/dist/src/circuit/index.js +69 -0
  34. package/dist/src/circuit/index.js.map +1 -0
  35. package/dist/src/circuit/listener.d.ts +8 -3
  36. package/dist/src/circuit/listener.d.ts.map +1 -1
  37. package/dist/src/circuit/listener.js +54 -0
  38. package/dist/src/circuit/listener.js.map +1 -0
  39. package/dist/src/circuit/multicodec.d.ts +1 -1
  40. package/dist/src/circuit/multicodec.d.ts.map +1 -1
  41. package/dist/src/circuit/multicodec.js +2 -0
  42. package/dist/src/circuit/multicodec.js.map +1 -0
  43. package/dist/src/circuit/pb/index.d.ts +51 -0
  44. package/dist/src/circuit/pb/index.d.ts.map +1 -0
  45. package/dist/src/circuit/pb/index.js +72 -0
  46. package/dist/src/circuit/pb/index.js.map +1 -0
  47. package/dist/src/circuit/transport.d.ts +18 -78
  48. package/dist/src/circuit/transport.d.ts.map +1 -1
  49. package/dist/src/circuit/transport.js +190 -0
  50. package/dist/src/circuit/transport.js.map +1 -0
  51. package/dist/src/circuit/utils.d.ts +5 -2
  52. package/dist/src/circuit/utils.d.ts.map +1 -1
  53. package/dist/src/circuit/utils.js +11 -0
  54. package/dist/src/circuit/utils.js.map +1 -0
  55. package/dist/src/config.d.ts +3 -85
  56. package/dist/src/config.d.ts.map +1 -1
  57. package/dist/src/config.js +93 -0
  58. package/dist/src/config.js.map +1 -0
  59. package/dist/src/connection-manager/auto-dialler.d.ts +24 -41
  60. package/dist/src/connection-manager/auto-dialler.d.ts.map +1 -1
  61. package/dist/src/connection-manager/auto-dialler.js +105 -0
  62. package/dist/src/connection-manager/auto-dialler.js.map +1 -0
  63. package/dist/src/connection-manager/index.d.ts +79 -144
  64. package/dist/src/connection-manager/index.d.ts.map +1 -1
  65. package/dist/src/connection-manager/index.js +295 -0
  66. package/dist/src/connection-manager/index.js.map +1 -0
  67. package/dist/src/connection-manager/latency-monitor.d.ts +72 -97
  68. package/dist/src/connection-manager/latency-monitor.d.ts.map +1 -1
  69. package/dist/src/connection-manager/latency-monitor.js +220 -0
  70. package/dist/src/connection-manager/latency-monitor.js.map +1 -0
  71. package/dist/src/connection-manager/visibility-change-emitter.d.ts +15 -16
  72. package/dist/src/connection-manager/visibility-change-emitter.d.ts.map +1 -1
  73. package/dist/src/connection-manager/visibility-change-emitter.js +118 -0
  74. package/dist/src/connection-manager/visibility-change-emitter.js.map +1 -0
  75. package/dist/src/constants.d.ts +22 -10
  76. package/dist/src/constants.d.ts.map +1 -1
  77. package/dist/src/constants.js +27 -0
  78. package/dist/src/constants.js.map +1 -0
  79. package/dist/src/content-routing/index.d.ts +26 -81
  80. package/dist/src/content-routing/index.d.ts.map +1 -1
  81. package/dist/src/content-routing/index.js +99 -0
  82. package/dist/src/content-routing/index.js.map +1 -0
  83. package/dist/src/content-routing/utils.d.ts +6 -49
  84. package/dist/src/content-routing/utils.d.ts.map +1 -1
  85. package/dist/src/content-routing/utils.js +42 -0
  86. package/dist/src/content-routing/utils.js.map +1 -0
  87. package/dist/src/dht/dht-content-routing.d.ts +10 -24
  88. package/dist/src/dht/dht-content-routing.d.ts.map +1 -1
  89. package/dist/src/dht/dht-content-routing.js +32 -0
  90. package/dist/src/dht/dht-content-routing.js.map +1 -0
  91. package/dist/src/dht/dht-peer-routing.d.ts +9 -24
  92. package/dist/src/dht/dht-peer-routing.d.ts.map +1 -1
  93. package/dist/src/dht/dht-peer-routing.js +26 -0
  94. package/dist/src/dht/dht-peer-routing.js.map +1 -0
  95. package/dist/src/dialer/auto-dialer.d.ts +14 -0
  96. package/dist/src/dialer/auto-dialer.d.ts.map +1 -0
  97. package/dist/src/dialer/auto-dialer.js +24 -0
  98. package/dist/src/dialer/auto-dialer.js.map +1 -0
  99. package/dist/src/dialer/dial-request.d.ts +18 -46
  100. package/dist/src/dialer/dial-request.d.ts.map +1 -1
  101. package/dist/src/dialer/dial-request.js +83 -0
  102. package/dist/src/dialer/dial-request.js.map +1 -0
  103. package/dist/src/dialer/index.d.ts +41 -148
  104. package/dist/src/dialer/index.d.ts.map +1 -1
  105. package/dist/src/dialer/index.js +280 -0
  106. package/dist/src/dialer/index.js.map +1 -0
  107. package/dist/src/errors.d.ts +68 -63
  108. package/dist/src/errors.d.ts.map +1 -1
  109. package/dist/src/errors.js +73 -0
  110. package/dist/src/errors.js.map +1 -0
  111. package/dist/src/fetch/constants.d.ts +1 -1
  112. package/dist/src/fetch/constants.d.ts.map +1 -1
  113. package/dist/src/fetch/constants.js +3 -0
  114. package/dist/src/fetch/constants.js.map +1 -0
  115. package/dist/src/fetch/index.d.ts +30 -49
  116. package/dist/src/fetch/index.d.ts.map +1 -1
  117. package/dist/src/fetch/index.js +129 -0
  118. package/dist/src/fetch/index.js.map +1 -0
  119. package/dist/src/fetch/pb/proto.d.ts +26 -0
  120. package/dist/src/fetch/pb/proto.d.ts.map +1 -0
  121. package/dist/src/fetch/pb/proto.js +44 -0
  122. package/dist/src/fetch/pb/proto.js.map +1 -0
  123. package/dist/src/get-peer.d.ts +4 -11
  124. package/dist/src/get-peer.d.ts.map +1 -1
  125. package/dist/src/get-peer.js +43 -0
  126. package/dist/src/get-peer.js.map +1 -0
  127. package/dist/src/identify/consts.d.ts +9 -9
  128. package/dist/src/identify/consts.d.ts.map +1 -1
  129. package/dist/src/identify/consts.js +11 -0
  130. package/dist/src/identify/consts.js.map +1 -0
  131. package/dist/src/identify/index.d.ts +42 -96
  132. package/dist/src/identify/index.d.ts.map +1 -1
  133. package/dist/src/identify/index.js +322 -0
  134. package/dist/src/identify/index.js.map +1 -0
  135. package/dist/src/identify/pb/message.d.ts +15 -0
  136. package/dist/src/identify/pb/message.d.ts.map +1 -0
  137. package/dist/src/identify/pb/message.js +24 -0
  138. package/dist/src/identify/pb/message.js.map +1 -0
  139. package/dist/src/index.d.ts +162 -581
  140. package/dist/src/index.d.ts.map +1 -1
  141. package/dist/src/index.js +9 -0
  142. package/dist/src/index.js.map +1 -0
  143. package/dist/src/insecure/index.d.ts +9 -0
  144. package/dist/src/insecure/index.d.ts.map +1 -0
  145. package/dist/src/insecure/index.js +81 -0
  146. package/dist/src/insecure/index.js.map +1 -0
  147. package/dist/src/insecure/pb/proto.d.ts +28 -0
  148. package/dist/src/insecure/pb/proto.d.ts.map +1 -0
  149. package/dist/src/insecure/pb/proto.js +46 -0
  150. package/dist/src/insecure/pb/proto.js.map +1 -0
  151. package/dist/src/keychain/cms.d.ts +6 -14
  152. package/dist/src/keychain/cms.d.ts.map +1 -1
  153. package/dist/src/keychain/cms.js +129 -0
  154. package/dist/src/keychain/cms.js.map +1 -0
  155. package/dist/src/keychain/index.d.ts +61 -81
  156. package/dist/src/keychain/index.d.ts.map +1 -1
  157. package/dist/src/keychain/index.js +493 -0
  158. package/dist/src/keychain/index.js.map +1 -0
  159. package/dist/src/keychain/util.d.ts +3 -6
  160. package/dist/src/keychain/util.d.ts.map +1 -1
  161. package/dist/src/keychain/util.js +79 -0
  162. package/dist/src/keychain/util.js.map +1 -0
  163. package/dist/src/libp2p.d.ts +78 -0
  164. package/dist/src/libp2p.d.ts.map +1 -0
  165. package/dist/src/libp2p.js +375 -0
  166. package/dist/src/libp2p.js.map +1 -0
  167. package/dist/src/metrics/index.d.ts +47 -104
  168. package/dist/src/metrics/index.d.ts.map +1 -1
  169. package/dist/src/metrics/index.js +231 -0
  170. package/dist/src/metrics/index.js.map +1 -0
  171. package/dist/src/metrics/moving-average.d.ts +14 -0
  172. package/dist/src/metrics/moving-average.d.ts.map +1 -0
  173. package/dist/src/metrics/moving-average.js +40 -0
  174. package/dist/src/metrics/moving-average.js.map +1 -0
  175. package/dist/src/metrics/stats.d.ts +41 -93
  176. package/dist/src/metrics/stats.d.ts.map +1 -1
  177. package/dist/src/metrics/stats.js +183 -0
  178. package/dist/src/metrics/stats.js.map +1 -0
  179. package/dist/src/nat-manager.d.ts +42 -99
  180. package/dist/src/nat-manager.d.ts.map +1 -1
  181. package/dist/src/nat-manager.js +114 -0
  182. package/dist/src/nat-manager.js.map +1 -0
  183. package/dist/src/peer-record-updater.d.ts +15 -0
  184. package/dist/src/peer-record-updater.d.ts.map +1 -0
  185. package/dist/src/peer-record-updater.js +44 -0
  186. package/dist/src/peer-record-updater.js.map +1 -0
  187. package/dist/src/peer-routing.d.ts +39 -84
  188. package/dist/src/peer-routing.d.ts.map +1 -1
  189. package/dist/src/peer-routing.js +108 -0
  190. package/dist/src/peer-routing.js.map +1 -0
  191. package/dist/src/ping/constants.d.ts +4 -4
  192. package/dist/src/ping/constants.d.ts.map +1 -1
  193. package/dist/src/ping/constants.js +5 -0
  194. package/dist/src/ping/constants.js.map +1 -0
  195. package/dist/src/ping/index.d.ts +26 -33
  196. package/dist/src/ping/index.d.ts.map +1 -1
  197. package/dist/src/ping/index.js +56 -0
  198. package/dist/src/ping/index.js.map +1 -0
  199. package/dist/src/pnet/crypto.d.ts +15 -5
  200. package/dist/src/pnet/crypto.d.ts.map +1 -1
  201. package/dist/src/pnet/crypto.js +60 -0
  202. package/dist/src/pnet/crypto.js.map +1 -0
  203. package/dist/src/pnet/errors.d.ts +5 -5
  204. package/dist/src/pnet/errors.d.ts.map +1 -1
  205. package/dist/src/pnet/errors.js +6 -0
  206. package/dist/src/pnet/errors.js.map +1 -0
  207. package/dist/src/pnet/index.d.ts +11 -20
  208. package/dist/src/pnet/index.d.ts.map +1 -1
  209. package/dist/src/pnet/index.js +66 -0
  210. package/dist/src/pnet/index.js.map +1 -0
  211. package/dist/src/pnet/key-generator.d.ts +3 -7
  212. package/dist/src/pnet/key-generator.d.ts.map +1 -1
  213. package/dist/src/pnet/key-generator.js +25 -0
  214. package/dist/src/pnet/key-generator.js.map +1 -0
  215. package/dist/src/registrar.d.ts +27 -65
  216. package/dist/src/registrar.d.ts.map +1 -1
  217. package/dist/src/registrar.js +159 -0
  218. package/dist/src/registrar.js.map +1 -0
  219. package/dist/src/transport-manager.d.ts +34 -82
  220. package/dist/src/transport-manager.d.ts.map +1 -1
  221. package/dist/src/transport-manager.js +223 -0
  222. package/dist/src/transport-manager.js.map +1 -0
  223. package/dist/src/upgrader.d.ts +49 -129
  224. package/dist/src/upgrader.d.ts.map +1 -1
  225. package/dist/src/upgrader.js +402 -0
  226. package/dist/src/upgrader.js.map +1 -0
  227. package/dist/src/version.d.ts +3 -0
  228. package/dist/src/version.d.ts.map +1 -0
  229. package/dist/src/version.js +3 -0
  230. package/dist/src/version.js.map +1 -0
  231. package/package.json +150 -197
  232. package/src/address-manager/index.ts +129 -0
  233. package/src/circuit/README.md +16 -11
  234. package/src/circuit/auto-relay.ts +284 -0
  235. package/src/circuit/circuit/hop.ts +211 -0
  236. package/src/circuit/circuit/stop.ts +78 -0
  237. package/src/circuit/circuit/stream-handler.ts +86 -0
  238. package/src/circuit/circuit/{utils.js → utils.ts} +9 -25
  239. package/src/circuit/constants.ts +31 -0
  240. package/src/circuit/index.ts +120 -0
  241. package/src/circuit/{listener.js → listener.ts} +21 -27
  242. package/src/circuit/multicodec.ts +2 -0
  243. package/src/circuit/{protocol → pb}/index.proto +1 -1
  244. package/src/circuit/pb/index.ts +88 -0
  245. package/src/circuit/transport.ts +216 -0
  246. package/src/circuit/utils.ts +12 -0
  247. package/src/config.ts +101 -0
  248. package/src/connection-manager/auto-dialler.ts +154 -0
  249. package/src/connection-manager/index.ts +422 -0
  250. package/src/connection-manager/latency-monitor.ts +319 -0
  251. package/src/connection-manager/{visibility-change-emitter.js → visibility-change-emitter.ts} +48 -38
  252. package/src/constants.ts +31 -0
  253. package/src/content-routing/index.ts +143 -0
  254. package/src/content-routing/utils.ts +54 -0
  255. package/src/dht/dht-content-routing.ts +43 -0
  256. package/src/dht/dht-peer-routing.ts +35 -0
  257. package/src/dialer/auto-dialer.ts +40 -0
  258. package/src/dialer/{dial-request.js → dial-request.ts} +60 -51
  259. package/src/dialer/index.ts +371 -0
  260. package/src/errors.ts +71 -0
  261. package/src/fetch/README.md +1 -1
  262. package/src/fetch/constants.ts +3 -0
  263. package/src/fetch/index.ts +167 -0
  264. package/src/fetch/{proto.proto → pb/proto.proto} +0 -0
  265. package/src/fetch/pb/proto.ts +58 -0
  266. package/src/get-peer.ts +57 -0
  267. package/src/identify/consts.ts +13 -0
  268. package/src/identify/index.ts +445 -0
  269. package/src/identify/{message.proto → pb/message.proto} +0 -0
  270. package/src/identify/pb/message.ts +36 -0
  271. package/src/index.ts +242 -0
  272. package/src/insecure/index.ts +101 -0
  273. package/src/insecure/{proto.proto → pb/proto.proto} +0 -0
  274. package/src/insecure/pb/proto.ts +61 -0
  275. package/src/keychain/{cms.js → cms.ts} +62 -58
  276. package/src/keychain/index.ts +588 -0
  277. package/src/keychain/{util.js → util.ts} +7 -17
  278. package/src/libp2p.ts +513 -0
  279. package/src/metrics/index.ts +310 -0
  280. package/src/metrics/moving-average.ts +53 -0
  281. package/src/metrics/stats.ts +238 -0
  282. package/src/nat-manager.ts +194 -0
  283. package/src/peer-record-updater.ts +55 -0
  284. package/src/peer-routing.ts +185 -0
  285. package/src/ping/README.md +1 -1
  286. package/src/ping/constants.ts +5 -0
  287. package/src/ping/index.ts +83 -0
  288. package/src/pnet/README.md +2 -2
  289. package/src/pnet/crypto.ts +67 -0
  290. package/src/pnet/errors.ts +5 -0
  291. package/src/pnet/index.ts +95 -0
  292. package/src/pnet/key-generator.ts +28 -0
  293. package/src/registrar.ts +205 -0
  294. package/src/transport-manager.ts +279 -0
  295. package/src/upgrader.ts +499 -0
  296. package/src/version.ts +3 -0
  297. package/dist/index.min.js +0 -55
  298. package/dist/src/circuit/protocol/index.d.ts +0 -173
  299. package/dist/src/fetch/proto.d.ts +0 -134
  300. package/dist/src/identify/message.d.ts +0 -95
  301. package/dist/src/insecure/plaintext.d.ts +0 -12
  302. package/dist/src/insecure/plaintext.d.ts.map +0 -1
  303. package/dist/src/insecure/proto.d.ts +0 -128
  304. package/dist/src/metrics/old-peers.d.ts +0 -3
  305. package/dist/src/metrics/old-peers.d.ts.map +0 -1
  306. package/dist/src/metrics/tracked-map.d.ts +0 -8
  307. package/dist/src/metrics/tracked-map.d.ts.map +0 -1
  308. package/dist/src/peer-store/address-book.d.ts +0 -67
  309. package/dist/src/peer-store/address-book.d.ts.map +0 -1
  310. package/dist/src/peer-store/index.d.ts +0 -58
  311. package/dist/src/peer-store/index.d.ts.map +0 -1
  312. package/dist/src/peer-store/key-book.d.ts +0 -40
  313. package/dist/src/peer-store/key-book.d.ts.map +0 -1
  314. package/dist/src/peer-store/metadata-book.d.ts +0 -58
  315. package/dist/src/peer-store/metadata-book.d.ts.map +0 -1
  316. package/dist/src/peer-store/pb/peer.d.ts +0 -222
  317. package/dist/src/peer-store/proto-book.d.ts +0 -43
  318. package/dist/src/peer-store/proto-book.d.ts.map +0 -1
  319. package/dist/src/peer-store/store.d.ts +0 -73
  320. package/dist/src/peer-store/store.d.ts.map +0 -1
  321. package/dist/src/peer-store/types.d.ts +0 -202
  322. package/dist/src/peer-store/types.d.ts.map +0 -1
  323. package/dist/src/ping/util.d.ts +0 -5
  324. package/dist/src/ping/util.d.ts.map +0 -1
  325. package/dist/src/pubsub-adapter.d.ts +0 -22
  326. package/dist/src/pubsub-adapter.d.ts.map +0 -1
  327. package/dist/src/record/envelope/envelope.d.ts +0 -77
  328. package/dist/src/record/envelope/index.d.ts +0 -80
  329. package/dist/src/record/envelope/index.d.ts.map +0 -1
  330. package/dist/src/record/peer-record/consts.d.ts +0 -4
  331. package/dist/src/record/peer-record/consts.d.ts.map +0 -1
  332. package/dist/src/record/peer-record/index.d.ts +0 -60
  333. package/dist/src/record/peer-record/index.d.ts.map +0 -1
  334. package/dist/src/record/peer-record/peer-record.d.ts +0 -133
  335. package/dist/src/record/utils.d.ts +0 -12
  336. package/dist/src/record/utils.d.ts.map +0 -1
  337. package/dist/src/types.d.ts +0 -90
  338. package/dist/src/types.d.ts.map +0 -1
  339. package/src/address-manager/index.js +0 -96
  340. package/src/circuit/auto-relay.js +0 -302
  341. package/src/circuit/circuit/hop.js +0 -205
  342. package/src/circuit/circuit/stop.js +0 -81
  343. package/src/circuit/circuit/stream-handler.js +0 -94
  344. package/src/circuit/constants.js +0 -12
  345. package/src/circuit/index.js +0 -102
  346. package/src/circuit/multicodec.js +0 -5
  347. package/src/circuit/protocol/index.d.ts +0 -173
  348. package/src/circuit/protocol/index.js +0 -530
  349. package/src/circuit/transport.js +0 -229
  350. package/src/circuit/utils.js +0 -17
  351. package/src/config.js +0 -114
  352. package/src/connection-manager/auto-dialler.js +0 -132
  353. package/src/connection-manager/index.js +0 -363
  354. package/src/connection-manager/latency-monitor.js +0 -264
  355. package/src/constants.js +0 -18
  356. package/src/content-routing/index.js +0 -163
  357. package/src/content-routing/utils.js +0 -89
  358. package/src/dht/dht-content-routing.js +0 -44
  359. package/src/dht/dht-peer-routing.js +0 -51
  360. package/src/dialer/index.js +0 -376
  361. package/src/errors.js +0 -66
  362. package/src/fetch/constants.js +0 -6
  363. package/src/fetch/index.js +0 -159
  364. package/src/fetch/proto.d.ts +0 -134
  365. package/src/fetch/proto.js +0 -333
  366. package/src/get-peer.js +0 -49
  367. package/src/identify/consts.js +0 -15
  368. package/src/identify/index.js +0 -384
  369. package/src/identify/message.d.ts +0 -95
  370. package/src/identify/message.js +0 -328
  371. package/src/index.js +0 -811
  372. package/src/insecure/plaintext.js +0 -95
  373. package/src/insecure/proto.d.ts +0 -128
  374. package/src/insecure/proto.js +0 -371
  375. package/src/keychain/index.js +0 -561
  376. package/src/metrics/index.js +0 -290
  377. package/src/metrics/old-peers.js +0 -16
  378. package/src/metrics/stats.js +0 -270
  379. package/src/metrics/tracked-map.js +0 -94
  380. package/src/nat-manager.js +0 -197
  381. package/src/peer-routing.js +0 -176
  382. package/src/peer-store/README.md +0 -145
  383. package/src/peer-store/address-book.js +0 -382
  384. package/src/peer-store/index.js +0 -121
  385. package/src/peer-store/key-book.js +0 -141
  386. package/src/peer-store/metadata-book.js +0 -250
  387. package/src/peer-store/pb/peer.d.ts +0 -222
  388. package/src/peer-store/pb/peer.js +0 -643
  389. package/src/peer-store/pb/peer.proto +0 -31
  390. package/src/peer-store/proto-book.js +0 -237
  391. package/src/peer-store/store.js +0 -263
  392. package/src/peer-store/types.ts +0 -245
  393. package/src/ping/constants.js +0 -8
  394. package/src/ping/index.js +0 -85
  395. package/src/ping/util.js +0 -18
  396. package/src/pnet/crypto.js +0 -84
  397. package/src/pnet/errors.js +0 -7
  398. package/src/pnet/index.js +0 -86
  399. package/src/pnet/key-generator.js +0 -33
  400. package/src/pubsub-adapter.js +0 -61
  401. package/src/record/README.md +0 -130
  402. package/src/record/envelope/envelope.d.ts +0 -77
  403. package/src/record/envelope/envelope.js +0 -243
  404. package/src/record/envelope/envelope.proto +0 -19
  405. package/src/record/envelope/index.js +0 -183
  406. package/src/record/peer-record/consts.js +0 -14
  407. package/src/record/peer-record/index.js +0 -113
  408. package/src/record/peer-record/peer-record.d.ts +0 -133
  409. package/src/record/peer-record/peer-record.js +0 -367
  410. package/src/record/peer-record/peer-record.proto +0 -18
  411. package/src/record/utils.js +0 -25
  412. package/src/registrar.js +0 -127
  413. package/src/transport-manager.js +0 -269
  414. package/src/types.ts +0 -98
  415. package/src/upgrader.js +0 -492
@@ -1,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