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,81 +0,0 @@
1
- 'use strict'
2
-
3
- const debug = require('debug')
4
- const log = Object.assign(debug('libp2p:circuit:stop'), {
5
- error: debug('libp2p:circuit:stop:err')
6
- })
7
-
8
- const { CircuitRelay: CircuitPB } = require('../protocol')
9
- const multicodec = require('../multicodec')
10
- const StreamHandler = require('./stream-handler')
11
- const { validateAddrs } = require('./utils')
12
-
13
- /**
14
- * @typedef {import('libp2p-interfaces/src/connection').Connection} Connection
15
- * @typedef {import('libp2p-interfaces/src/stream-muxer/types').MuxedStream} MuxedStream
16
- * @typedef {import('../protocol').ICircuitRelay} ICircuitRelay
17
- */
18
-
19
- /**
20
- * Handles incoming STOP requests
21
- *
22
- * @private
23
- * @param {Object} options
24
- * @param {Connection} options.connection
25
- * @param {ICircuitRelay} options.request - The CircuitRelay protobuf request (unencoded)
26
- * @param {StreamHandler} options.streamHandler
27
- * @returns {Promise<MuxedStream>|void} Resolves a duplex iterable
28
- */
29
- module.exports.handleStop = function handleStop ({
30
- connection,
31
- request,
32
- streamHandler
33
- }) {
34
- // Validate the STOP request has the required input
35
- try {
36
- validateAddrs(request, streamHandler)
37
- } catch (/** @type {any} */ err) {
38
- return log.error('invalid stop request via peer %s', connection.remotePeer.toB58String(), err)
39
- }
40
-
41
- // The request is valid
42
- log('stop request is valid')
43
- streamHandler.write({
44
- type: CircuitPB.Type.STATUS,
45
- code: CircuitPB.Status.SUCCESS
46
- })
47
- return streamHandler.rest()
48
- }
49
-
50
- /**
51
- * Creates a STOP request
52
- *
53
- * @private
54
- * @param {Object} options
55
- * @param {Connection} options.connection
56
- * @param {ICircuitRelay} options.request - The CircuitRelay protobuf request (unencoded)
57
- * @returns {Promise<MuxedStream|void>} Resolves a duplex iterable
58
- */
59
- module.exports.stop = async function stop ({
60
- connection,
61
- request
62
- }) {
63
- const { stream } = await connection.newStream([multicodec.relay])
64
- log('starting stop request to %s', connection.remotePeer.toB58String())
65
- const streamHandler = new StreamHandler({ stream })
66
-
67
- streamHandler.write(request)
68
- const response = await streamHandler.read()
69
-
70
- if (!response) {
71
- return streamHandler.close()
72
- }
73
-
74
- if (response.code === CircuitPB.Status.SUCCESS) {
75
- log('stop request to %s was successful', connection.remotePeer.toB58String())
76
- return streamHandler.rest()
77
- }
78
-
79
- log('stop request failed with code %d', response.code)
80
- streamHandler.close()
81
- }
@@ -1,94 +0,0 @@
1
- 'use strict'
2
-
3
- const debug = require('debug')
4
- const log = Object.assign(debug('libp2p:circuit:stream-handler'), {
5
- error: debug('libp2p:circuit:stream-handler:err')
6
- })
7
-
8
- const lp = require('it-length-prefixed')
9
- // @ts-ignore it-handshake does not export types
10
- const handshake = require('it-handshake')
11
- const { CircuitRelay } = require('../protocol')
12
-
13
- /**
14
- * @typedef {import('libp2p-interfaces/src/stream-muxer/types').MuxedStream} MuxedStream
15
- * @typedef {import('../protocol').ICircuitRelay} ICircuitRelay
16
- */
17
-
18
- class StreamHandler {
19
- /**
20
- * Create a stream handler for connection
21
- *
22
- * @class
23
- * @param {object} options
24
- * @param {MuxedStream} options.stream - A duplex iterable
25
- * @param {number} [options.maxLength = 4096] - max bytes length of message
26
- */
27
- constructor ({ stream, maxLength = 4096 }) {
28
- this.stream = stream
29
-
30
- this.shake = handshake(this.stream)
31
- // @ts-ignore options are not optional
32
- this.decoder = lp.decode.fromReader(this.shake.reader, { maxDataLength: maxLength })
33
- }
34
-
35
- /**
36
- * Read and decode message
37
- *
38
- * @async
39
- */
40
- async read () {
41
- const msg = await this.decoder.next()
42
- if (msg.value) {
43
- const value = CircuitRelay.decode(msg.value.slice())
44
- log('read message type', value.type)
45
- return value
46
- }
47
-
48
- log('read received no value, closing stream')
49
- // End the stream, we didn't get data
50
- this.close()
51
- }
52
-
53
- /**
54
- * Encode and write array of buffers
55
- *
56
- * @param {ICircuitRelay} msg - An unencoded CircuitRelay protobuf message
57
- * @returns {void}
58
- */
59
- write (msg) {
60
- log('write message type %s', msg.type)
61
- // @ts-ignore lp.encode expects type type 'Buffer | BufferList', not 'Uint8Array'
62
- this.shake.write(lp.encode.single(CircuitRelay.encode(msg).finish()))
63
- }
64
-
65
- /**
66
- * Return the handshake rest stream and invalidate handler
67
- *
68
- * @returns {*} A duplex iterable
69
- */
70
- rest () {
71
- this.shake.rest()
72
- return this.shake.stream
73
- }
74
-
75
- /**
76
- * @param {ICircuitRelay} msg - An unencoded CircuitRelay protobuf message
77
- */
78
- end (msg) {
79
- this.write(msg)
80
- this.close()
81
- }
82
-
83
- /**
84
- * Close the stream
85
- *
86
- * @returns {void}
87
- */
88
- close () {
89
- log('closing the stream')
90
- this.rest().sink([])
91
- }
92
- }
93
-
94
- module.exports = StreamHandler
@@ -1,12 +0,0 @@
1
- 'use strict'
2
-
3
- const minute = 60 * 1000
4
-
5
- module.exports = {
6
- ADVERTISE_BOOT_DELAY: 15 * minute, // Delay before HOP relay service is advertised on the network
7
- ADVERTISE_TTL: 30 * minute, // Delay Between HOP relay service advertisements on the network
8
- CIRCUIT_PROTO_CODE: 290, // Multicodec code
9
- HOP_METADATA_KEY: 'hop_relay', // PeerStore metadaBook key for HOP relay service
10
- HOP_METADATA_VALUE: 'true', // PeerStore metadaBook value for HOP relay service
11
- RELAY_RENDEZVOUS_NS: '/libp2p/relay' // Relay HOP relay service namespace for discovery
12
- }
@@ -1,102 +0,0 @@
1
- 'use strict'
2
-
3
- const debug = require('debug')
4
- const log = Object.assign(debug('libp2p:relay'), {
5
- error: debug('libp2p:relay:err')
6
- })
7
- const { codes } = require('./../errors')
8
- const {
9
- setDelayedInterval,
10
- clearDelayedInterval
11
- // @ts-ignore set-delayed-interval does not export types
12
- } = require('set-delayed-interval')
13
-
14
- const AutoRelay = require('./auto-relay')
15
- const { namespaceToCid } = require('./utils')
16
- const {
17
- RELAY_RENDEZVOUS_NS
18
- } = require('./constants')
19
-
20
- /**
21
- * @typedef {import('../')} Libp2p
22
- *
23
- * @typedef {Object} RelayAdvertiseOptions
24
- * @property {number} [bootDelay = ADVERTISE_BOOT_DELAY]
25
- * @property {boolean} [enabled = true]
26
- * @property {number} [ttl = ADVERTISE_TTL]
27
- *
28
- * @typedef {Object} HopOptions
29
- * @property {boolean} [enabled = false]
30
- * @property {boolean} [active = false]
31
- *
32
- * @typedef {Object} AutoRelayOptions
33
- * @property {number} [maxListeners = 2] - maximum number of relays to listen.
34
- * @property {boolean} [enabled = false]
35
- */
36
-
37
- class Relay {
38
- /**
39
- * Creates an instance of Relay.
40
- *
41
- * @class
42
- * @param {Libp2p} libp2p
43
- */
44
- constructor (libp2p) {
45
- this._libp2p = libp2p
46
- this._options = {
47
- ...libp2p._config.relay
48
- }
49
-
50
- // Create autoRelay if enabled
51
- this._autoRelay = this._options.autoRelay.enabled && new AutoRelay({ libp2p, ...this._options.autoRelay })
52
-
53
- this._advertiseService = this._advertiseService.bind(this)
54
- }
55
-
56
- /**
57
- * Start Relay service.
58
- *
59
- * @returns {void}
60
- */
61
- start () {
62
- // Advertise service if HOP enabled
63
- const canHop = this._options.hop.enabled
64
-
65
- if (canHop && this._options.advertise.enabled) {
66
- this._timeout = setDelayedInterval(
67
- this._advertiseService, this._options.advertise.ttl, this._options.advertise.bootDelay
68
- )
69
- }
70
- }
71
-
72
- /**
73
- * Stop Relay service.
74
- *
75
- * @returns {void}
76
- */
77
- stop () {
78
- clearDelayedInterval(this._timeout)
79
- }
80
-
81
- /**
82
- * Advertise hop relay service in the network.
83
- *
84
- * @returns {Promise<void>}
85
- */
86
- async _advertiseService () {
87
- try {
88
- const cid = await namespaceToCid(RELAY_RENDEZVOUS_NS)
89
- await this._libp2p.contentRouting.provide(cid)
90
- } catch (/** @type {any} */ err) {
91
- if (err.code === codes.ERR_NO_ROUTERS_AVAILABLE) {
92
- log.error('a content router, such as a DHT, must be provided in order to advertise the relay service', err)
93
- // Stop the advertise
94
- this.stop()
95
- } else {
96
- log.error(err)
97
- }
98
- }
99
- }
100
- }
101
-
102
- module.exports = Relay
@@ -1,5 +0,0 @@
1
- 'use strict'
2
-
3
- module.exports = {
4
- relay: '/libp2p/circuit/relay/0.1.0'
5
- }
@@ -1,173 +0,0 @@
1
- import * as $protobuf from "protobufjs";
2
- /** Properties of a CircuitRelay. */
3
- export interface ICircuitRelay {
4
-
5
- /** CircuitRelay type */
6
- type?: (CircuitRelay.Type|null);
7
-
8
- /** CircuitRelay srcPeer */
9
- srcPeer?: (CircuitRelay.IPeer|null);
10
-
11
- /** CircuitRelay dstPeer */
12
- dstPeer?: (CircuitRelay.IPeer|null);
13
-
14
- /** CircuitRelay code */
15
- code?: (CircuitRelay.Status|null);
16
- }
17
-
18
- /** Represents a CircuitRelay. */
19
- export class CircuitRelay implements ICircuitRelay {
20
-
21
- /**
22
- * Constructs a new CircuitRelay.
23
- * @param [p] Properties to set
24
- */
25
- constructor(p?: ICircuitRelay);
26
-
27
- /** CircuitRelay type. */
28
- public type: CircuitRelay.Type;
29
-
30
- /** CircuitRelay srcPeer. */
31
- public srcPeer?: (CircuitRelay.IPeer|null);
32
-
33
- /** CircuitRelay dstPeer. */
34
- public dstPeer?: (CircuitRelay.IPeer|null);
35
-
36
- /** CircuitRelay code. */
37
- public code: CircuitRelay.Status;
38
-
39
- /**
40
- * Encodes the specified CircuitRelay message. Does not implicitly {@link CircuitRelay.verify|verify} messages.
41
- * @param m CircuitRelay message or plain object to encode
42
- * @param [w] Writer to encode to
43
- * @returns Writer
44
- */
45
- public static encode(m: ICircuitRelay, w?: $protobuf.Writer): $protobuf.Writer;
46
-
47
- /**
48
- * Decodes a CircuitRelay message from the specified reader or buffer.
49
- * @param r Reader or buffer to decode from
50
- * @param [l] Message length if known beforehand
51
- * @returns CircuitRelay
52
- * @throws {Error} If the payload is not a reader or valid buffer
53
- * @throws {$protobuf.util.ProtocolError} If required fields are missing
54
- */
55
- public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): CircuitRelay;
56
-
57
- /**
58
- * Creates a CircuitRelay message from a plain object. Also converts values to their respective internal types.
59
- * @param d Plain object
60
- * @returns CircuitRelay
61
- */
62
- public static fromObject(d: { [k: string]: any }): CircuitRelay;
63
-
64
- /**
65
- * Creates a plain object from a CircuitRelay message. Also converts values to other types if specified.
66
- * @param m CircuitRelay
67
- * @param [o] Conversion options
68
- * @returns Plain object
69
- */
70
- public static toObject(m: CircuitRelay, o?: $protobuf.IConversionOptions): { [k: string]: any };
71
-
72
- /**
73
- * Converts this CircuitRelay to JSON.
74
- * @returns JSON object
75
- */
76
- public toJSON(): { [k: string]: any };
77
- }
78
-
79
- export namespace CircuitRelay {
80
-
81
- /** Status enum. */
82
- enum Status {
83
- SUCCESS = 100,
84
- HOP_SRC_ADDR_TOO_LONG = 220,
85
- HOP_DST_ADDR_TOO_LONG = 221,
86
- HOP_SRC_MULTIADDR_INVALID = 250,
87
- HOP_DST_MULTIADDR_INVALID = 251,
88
- HOP_NO_CONN_TO_DST = 260,
89
- HOP_CANT_DIAL_DST = 261,
90
- HOP_CANT_OPEN_DST_STREAM = 262,
91
- HOP_CANT_SPEAK_RELAY = 270,
92
- HOP_CANT_RELAY_TO_SELF = 280,
93
- STOP_SRC_ADDR_TOO_LONG = 320,
94
- STOP_DST_ADDR_TOO_LONG = 321,
95
- STOP_SRC_MULTIADDR_INVALID = 350,
96
- STOP_DST_MULTIADDR_INVALID = 351,
97
- STOP_RELAY_REFUSED = 390,
98
- MALFORMED_MESSAGE = 400
99
- }
100
-
101
- /** Type enum. */
102
- enum Type {
103
- HOP = 1,
104
- STOP = 2,
105
- STATUS = 3,
106
- CAN_HOP = 4
107
- }
108
-
109
- /** Properties of a Peer. */
110
- interface IPeer {
111
-
112
- /** Peer id */
113
- id: Uint8Array;
114
-
115
- /** Peer addrs */
116
- addrs?: (Uint8Array[]|null);
117
- }
118
-
119
- /** Represents a Peer. */
120
- class Peer implements IPeer {
121
-
122
- /**
123
- * Constructs a new Peer.
124
- * @param [p] Properties to set
125
- */
126
- constructor(p?: CircuitRelay.IPeer);
127
-
128
- /** Peer id. */
129
- public id: Uint8Array;
130
-
131
- /** Peer addrs. */
132
- public addrs: Uint8Array[];
133
-
134
- /**
135
- * Encodes the specified Peer message. Does not implicitly {@link CircuitRelay.Peer.verify|verify} messages.
136
- * @param m Peer message or plain object to encode
137
- * @param [w] Writer to encode to
138
- * @returns Writer
139
- */
140
- public static encode(m: CircuitRelay.IPeer, w?: $protobuf.Writer): $protobuf.Writer;
141
-
142
- /**
143
- * Decodes a Peer message from the specified reader or buffer.
144
- * @param r Reader or buffer to decode from
145
- * @param [l] Message length if known beforehand
146
- * @returns Peer
147
- * @throws {Error} If the payload is not a reader or valid buffer
148
- * @throws {$protobuf.util.ProtocolError} If required fields are missing
149
- */
150
- public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): CircuitRelay.Peer;
151
-
152
- /**
153
- * Creates a Peer message from a plain object. Also converts values to their respective internal types.
154
- * @param d Plain object
155
- * @returns Peer
156
- */
157
- public static fromObject(d: { [k: string]: any }): CircuitRelay.Peer;
158
-
159
- /**
160
- * Creates a plain object from a Peer message. Also converts values to other types if specified.
161
- * @param m Peer
162
- * @param [o] Conversion options
163
- * @returns Plain object
164
- */
165
- public static toObject(m: CircuitRelay.Peer, o?: $protobuf.IConversionOptions): { [k: string]: any };
166
-
167
- /**
168
- * Converts this Peer to JSON.
169
- * @returns JSON object
170
- */
171
- public toJSON(): { [k: string]: any };
172
- }
173
- }