libp2p 0.36.2 → 0.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (430) hide show
  1. package/LICENSE +3 -21
  2. package/README.md +13 -10
  3. package/dist/src/address-manager/index.d.ts +34 -52
  4. package/dist/src/address-manager/index.d.ts.map +1 -1
  5. package/dist/src/address-manager/index.js +81 -0
  6. package/dist/src/address-manager/index.js.map +1 -0
  7. package/dist/src/circuit/auto-relay.d.ts +24 -85
  8. package/dist/src/circuit/auto-relay.d.ts.map +1 -1
  9. package/dist/src/circuit/auto-relay.js +216 -0
  10. package/dist/src/circuit/auto-relay.js.map +1 -0
  11. package/dist/src/circuit/circuit/hop.d.ts +26 -53
  12. package/dist/src/circuit/circuit/hop.d.ts.map +1 -1
  13. package/dist/src/circuit/circuit/hop.js +138 -0
  14. package/dist/src/circuit/circuit/hop.js.map +1 -0
  15. package/dist/src/circuit/circuit/stop.d.ts +18 -10
  16. package/dist/src/circuit/circuit/stop.d.ts.map +1 -1
  17. package/dist/src/circuit/circuit/stop.js +49 -0
  18. package/dist/src/circuit/circuit/stop.js.map +1 -0
  19. package/dist/src/circuit/circuit/stream-handler.d.ts +19 -38
  20. package/dist/src/circuit/circuit/stream-handler.d.ts.map +1 -1
  21. package/dist/src/circuit/circuit/stream-handler.js +59 -0
  22. package/dist/src/circuit/circuit/stream-handler.js.map +1 -0
  23. package/dist/src/circuit/circuit/utils.d.ts +3 -6
  24. package/dist/src/circuit/circuit/utils.d.ts.map +1 -1
  25. package/dist/src/circuit/circuit/utils.js +43 -0
  26. package/dist/src/circuit/circuit/utils.js.map +1 -0
  27. package/dist/src/circuit/constants.d.ts +24 -6
  28. package/dist/src/circuit/constants.d.ts.map +1 -1
  29. package/dist/src/circuit/constants.js +26 -0
  30. package/dist/src/circuit/constants.js.map +1 -0
  31. package/dist/src/circuit/index.d.ts +41 -74
  32. package/dist/src/circuit/index.d.ts.map +1 -1
  33. package/dist/src/circuit/index.js +69 -0
  34. package/dist/src/circuit/index.js.map +1 -0
  35. package/dist/src/circuit/listener.d.ts +8 -3
  36. package/dist/src/circuit/listener.d.ts.map +1 -1
  37. package/dist/src/circuit/listener.js +62 -0
  38. package/dist/src/circuit/listener.js.map +1 -0
  39. package/dist/src/circuit/multicodec.d.ts +1 -1
  40. package/dist/src/circuit/multicodec.d.ts.map +1 -1
  41. package/dist/src/circuit/multicodec.js +2 -0
  42. package/dist/src/circuit/multicodec.js.map +1 -0
  43. package/dist/src/circuit/pb/index.d.ts +52 -0
  44. package/dist/src/circuit/pb/index.d.ts.map +1 -0
  45. package/dist/src/circuit/pb/index.js +98 -0
  46. package/dist/src/circuit/pb/index.js.map +1 -0
  47. package/dist/src/circuit/transport.d.ts +18 -78
  48. package/dist/src/circuit/transport.d.ts.map +1 -1
  49. package/dist/src/circuit/transport.js +192 -0
  50. package/dist/src/circuit/transport.js.map +1 -0
  51. package/dist/src/circuit/utils.d.ts +5 -2
  52. package/dist/src/circuit/utils.d.ts.map +1 -1
  53. package/dist/src/circuit/utils.js +11 -0
  54. package/dist/src/circuit/utils.js.map +1 -0
  55. package/dist/src/config.d.ts +3 -85
  56. package/dist/src/config.d.ts.map +1 -1
  57. package/dist/src/config.js +91 -0
  58. package/dist/src/config.js.map +1 -0
  59. package/dist/src/connection-manager/auto-dialler.d.ts +24 -41
  60. package/dist/src/connection-manager/auto-dialler.d.ts.map +1 -1
  61. package/dist/src/connection-manager/auto-dialler.js +105 -0
  62. package/dist/src/connection-manager/auto-dialler.js.map +1 -0
  63. package/dist/src/connection-manager/dialer/auto-dialer.d.ts +16 -0
  64. package/dist/src/connection-manager/dialer/auto-dialer.d.ts.map +1 -0
  65. package/dist/src/connection-manager/dialer/auto-dialer.js +37 -0
  66. package/dist/src/connection-manager/dialer/auto-dialer.js.map +1 -0
  67. package/dist/src/connection-manager/dialer/dial-request.d.ts +27 -0
  68. package/dist/src/connection-manager/dialer/dial-request.d.ts.map +1 -0
  69. package/dist/src/connection-manager/dialer/dial-request.js +83 -0
  70. package/dist/src/connection-manager/dialer/dial-request.js.map +1 -0
  71. package/dist/src/connection-manager/dialer/index.d.ts +104 -0
  72. package/dist/src/connection-manager/dialer/index.d.ts.map +1 -0
  73. package/dist/src/connection-manager/dialer/index.js +267 -0
  74. package/dist/src/connection-manager/dialer/index.js.map +1 -0
  75. package/dist/src/connection-manager/index.d.ts +102 -136
  76. package/dist/src/connection-manager/index.d.ts.map +1 -1
  77. package/dist/src/connection-manager/index.js +333 -0
  78. package/dist/src/connection-manager/index.js.map +1 -0
  79. package/dist/src/connection-manager/latency-monitor.d.ts +72 -97
  80. package/dist/src/connection-manager/latency-monitor.d.ts.map +1 -1
  81. package/dist/src/connection-manager/latency-monitor.js +220 -0
  82. package/dist/src/connection-manager/latency-monitor.js.map +1 -0
  83. package/dist/src/connection-manager/visibility-change-emitter.d.ts +15 -16
  84. package/dist/src/connection-manager/visibility-change-emitter.d.ts.map +1 -1
  85. package/dist/src/connection-manager/visibility-change-emitter.js +118 -0
  86. package/dist/src/connection-manager/visibility-change-emitter.js.map +1 -0
  87. package/dist/src/constants.d.ts +22 -10
  88. package/dist/src/constants.d.ts.map +1 -1
  89. package/dist/src/constants.js +27 -0
  90. package/dist/src/constants.js.map +1 -0
  91. package/dist/src/content-routing/index.d.ts +27 -81
  92. package/dist/src/content-routing/index.d.ts.map +1 -1
  93. package/dist/src/content-routing/index.js +99 -0
  94. package/dist/src/content-routing/index.js.map +1 -0
  95. package/dist/src/content-routing/utils.d.ts +6 -49
  96. package/dist/src/content-routing/utils.d.ts.map +1 -1
  97. package/dist/src/content-routing/utils.js +42 -0
  98. package/dist/src/content-routing/utils.js.map +1 -0
  99. package/dist/src/dht/dht-content-routing.d.ts +10 -24
  100. package/dist/src/dht/dht-content-routing.d.ts.map +1 -1
  101. package/dist/src/dht/dht-content-routing.js +32 -0
  102. package/dist/src/dht/dht-content-routing.js.map +1 -0
  103. package/dist/src/dht/dht-peer-routing.d.ts +9 -24
  104. package/dist/src/dht/dht-peer-routing.d.ts.map +1 -1
  105. package/dist/src/dht/dht-peer-routing.js +26 -0
  106. package/dist/src/dht/dht-peer-routing.js.map +1 -0
  107. package/dist/src/dht/dummy-dht.d.ts +20 -0
  108. package/dist/src/dht/dummy-dht.d.ts.map +1 -0
  109. package/dist/src/dht/dummy-dht.js +46 -0
  110. package/dist/src/dht/dummy-dht.js.map +1 -0
  111. package/dist/src/errors.d.ts +70 -63
  112. package/dist/src/errors.d.ts.map +1 -1
  113. package/dist/src/errors.js +75 -0
  114. package/dist/src/errors.js.map +1 -0
  115. package/dist/src/fetch/constants.d.ts +1 -1
  116. package/dist/src/fetch/constants.d.ts.map +1 -1
  117. package/dist/src/fetch/constants.js +3 -0
  118. package/dist/src/fetch/constants.js.map +1 -0
  119. package/dist/src/fetch/index.d.ts +30 -49
  120. package/dist/src/fetch/index.d.ts.map +1 -1
  121. package/dist/src/fetch/index.js +129 -0
  122. package/dist/src/fetch/index.js.map +1 -0
  123. package/dist/src/fetch/pb/proto.d.ts +27 -0
  124. package/dist/src/fetch/pb/proto.d.ts.map +1 -0
  125. package/dist/src/fetch/pb/proto.js +50 -0
  126. package/dist/src/fetch/pb/proto.js.map +1 -0
  127. package/dist/src/get-peer.d.ts +4 -11
  128. package/dist/src/get-peer.d.ts.map +1 -1
  129. package/dist/src/get-peer.js +43 -0
  130. package/dist/src/get-peer.js.map +1 -0
  131. package/dist/src/identify/consts.d.ts +9 -9
  132. package/dist/src/identify/consts.d.ts.map +1 -1
  133. package/dist/src/identify/consts.js +11 -0
  134. package/dist/src/identify/consts.js.map +1 -0
  135. package/dist/src/identify/index.d.ts +42 -96
  136. package/dist/src/identify/index.d.ts.map +1 -1
  137. package/dist/src/identify/index.js +322 -0
  138. package/dist/src/identify/index.js.map +1 -0
  139. package/dist/src/identify/pb/message.d.ts +16 -0
  140. package/dist/src/identify/pb/message.d.ts.map +1 -0
  141. package/dist/src/identify/pb/message.js +24 -0
  142. package/dist/src/identify/pb/message.js.map +1 -0
  143. package/dist/src/index.d.ts +150 -496
  144. package/dist/src/index.d.ts.map +1 -1
  145. package/dist/src/index.js +9 -0
  146. package/dist/src/index.js.map +1 -0
  147. package/dist/src/insecure/index.d.ts +9 -0
  148. package/dist/src/insecure/index.d.ts.map +1 -0
  149. package/dist/src/insecure/index.js +81 -0
  150. package/dist/src/insecure/index.js.map +1 -0
  151. package/dist/src/insecure/pb/proto.d.ts +29 -0
  152. package/dist/src/insecure/pb/proto.d.ts.map +1 -0
  153. package/dist/src/insecure/pb/proto.js +53 -0
  154. package/dist/src/insecure/pb/proto.js.map +1 -0
  155. package/dist/src/keychain/cms.d.ts +6 -14
  156. package/dist/src/keychain/cms.d.ts.map +1 -1
  157. package/dist/src/keychain/cms.js +129 -0
  158. package/dist/src/keychain/cms.js.map +1 -0
  159. package/dist/src/keychain/index.d.ts +60 -81
  160. package/dist/src/keychain/index.d.ts.map +1 -1
  161. package/dist/src/keychain/index.js +492 -0
  162. package/dist/src/keychain/index.js.map +1 -0
  163. package/dist/src/keychain/util.d.ts +3 -6
  164. package/dist/src/keychain/util.d.ts.map +1 -1
  165. package/dist/src/keychain/util.js +79 -0
  166. package/dist/src/keychain/util.js.map +1 -0
  167. package/dist/src/libp2p.d.ts +80 -0
  168. package/dist/src/libp2p.d.ts.map +1 -0
  169. package/dist/src/libp2p.js +397 -0
  170. package/dist/src/libp2p.js.map +1 -0
  171. package/dist/src/metrics/index.d.ts +47 -104
  172. package/dist/src/metrics/index.d.ts.map +1 -1
  173. package/dist/src/metrics/index.js +231 -0
  174. package/dist/src/metrics/index.js.map +1 -0
  175. package/dist/src/metrics/moving-average.d.ts +14 -0
  176. package/dist/src/metrics/moving-average.d.ts.map +1 -0
  177. package/dist/src/metrics/moving-average.js +40 -0
  178. package/dist/src/metrics/moving-average.js.map +1 -0
  179. package/dist/src/metrics/stats.d.ts +41 -93
  180. package/dist/src/metrics/stats.d.ts.map +1 -1
  181. package/dist/src/metrics/stats.js +183 -0
  182. package/dist/src/metrics/stats.js.map +1 -0
  183. package/dist/src/nat-manager.d.ts +42 -99
  184. package/dist/src/nat-manager.d.ts.map +1 -1
  185. package/dist/src/nat-manager.js +114 -0
  186. package/dist/src/nat-manager.js.map +1 -0
  187. package/dist/src/peer-record-updater.d.ts +15 -0
  188. package/dist/src/peer-record-updater.d.ts.map +1 -0
  189. package/dist/src/peer-record-updater.js +44 -0
  190. package/dist/src/peer-record-updater.js.map +1 -0
  191. package/dist/src/peer-routing.d.ts +40 -84
  192. package/dist/src/peer-routing.d.ts.map +1 -1
  193. package/dist/src/peer-routing.js +108 -0
  194. package/dist/src/peer-routing.js.map +1 -0
  195. package/dist/src/ping/constants.d.ts +4 -4
  196. package/dist/src/ping/constants.d.ts.map +1 -1
  197. package/dist/src/ping/constants.js +5 -0
  198. package/dist/src/ping/constants.js.map +1 -0
  199. package/dist/src/ping/index.d.ts +17 -31
  200. package/dist/src/ping/index.d.ts.map +1 -1
  201. package/dist/src/ping/index.js +57 -0
  202. package/dist/src/ping/index.js.map +1 -0
  203. package/dist/src/pnet/crypto.d.ts +15 -5
  204. package/dist/src/pnet/crypto.d.ts.map +1 -1
  205. package/dist/src/pnet/crypto.js +60 -0
  206. package/dist/src/pnet/crypto.js.map +1 -0
  207. package/dist/src/pnet/errors.d.ts +5 -5
  208. package/dist/src/pnet/errors.d.ts.map +1 -1
  209. package/dist/src/pnet/errors.js +6 -0
  210. package/dist/src/pnet/errors.js.map +1 -0
  211. package/dist/src/pnet/index.d.ts +12 -20
  212. package/dist/src/pnet/index.d.ts.map +1 -1
  213. package/dist/src/pnet/index.js +67 -0
  214. package/dist/src/pnet/index.js.map +1 -0
  215. package/dist/src/pnet/key-generator.d.ts +3 -7
  216. package/dist/src/pnet/key-generator.d.ts.map +1 -1
  217. package/dist/src/pnet/key-generator.js +25 -0
  218. package/dist/src/pnet/key-generator.js.map +1 -0
  219. package/dist/src/pubsub/dummy-pubsub.d.ts +17 -0
  220. package/dist/src/pubsub/dummy-pubsub.d.ts.map +1 -0
  221. package/dist/src/pubsub/dummy-pubsub.js +37 -0
  222. package/dist/src/pubsub/dummy-pubsub.js.map +1 -0
  223. package/dist/src/registrar.d.ts +26 -65
  224. package/dist/src/registrar.d.ts.map +1 -1
  225. package/dist/src/registrar.js +144 -0
  226. package/dist/src/registrar.js.map +1 -0
  227. package/dist/src/transport-manager.d.ts +36 -82
  228. package/dist/src/transport-manager.d.ts.map +1 -1
  229. package/dist/src/transport-manager.js +223 -0
  230. package/dist/src/transport-manager.js.map +1 -0
  231. package/dist/src/upgrader.d.ts +49 -129
  232. package/dist/src/upgrader.d.ts.map +1 -1
  233. package/dist/src/upgrader.js +402 -0
  234. package/dist/src/upgrader.js.map +1 -0
  235. package/dist/src/version.d.ts +3 -0
  236. package/dist/src/version.d.ts.map +1 -0
  237. package/dist/src/version.js +3 -0
  238. package/dist/src/version.js.map +1 -0
  239. package/package.json +144 -201
  240. package/src/address-manager/index.ts +130 -0
  241. package/src/circuit/README.md +16 -11
  242. package/src/circuit/auto-relay.ts +286 -0
  243. package/src/circuit/circuit/hop.ts +211 -0
  244. package/src/circuit/circuit/stop.ts +78 -0
  245. package/src/circuit/circuit/stream-handler.ts +86 -0
  246. package/src/circuit/circuit/{utils.js → utils.ts} +9 -25
  247. package/src/circuit/constants.ts +31 -0
  248. package/src/circuit/index.ts +120 -0
  249. package/src/circuit/listener.ts +82 -0
  250. package/src/circuit/multicodec.ts +2 -0
  251. package/src/circuit/{protocol → pb}/index.proto +1 -1
  252. package/src/circuit/pb/index.ts +117 -0
  253. package/src/circuit/transport.ts +219 -0
  254. package/src/circuit/utils.ts +12 -0
  255. package/src/config.ts +99 -0
  256. package/src/connection-manager/auto-dialler.ts +154 -0
  257. package/src/connection-manager/dialer/auto-dialer.ts +59 -0
  258. package/src/{dialer/dial-request.js → connection-manager/dialer/dial-request.ts} +60 -51
  259. package/src/connection-manager/dialer/index.ts +382 -0
  260. package/src/connection-manager/index.ts +508 -0
  261. package/src/connection-manager/latency-monitor.ts +319 -0
  262. package/src/connection-manager/{visibility-change-emitter.js → visibility-change-emitter.ts} +48 -38
  263. package/src/constants.ts +31 -0
  264. package/src/content-routing/index.ts +144 -0
  265. package/src/content-routing/utils.ts +54 -0
  266. package/src/dht/dht-content-routing.ts +43 -0
  267. package/src/dht/dht-peer-routing.ts +35 -0
  268. package/src/dht/dummy-dht.ts +60 -0
  269. package/src/errors.ts +73 -0
  270. package/src/fetch/README.md +1 -1
  271. package/src/fetch/constants.ts +3 -0
  272. package/src/fetch/index.ts +167 -0
  273. package/src/fetch/{proto.proto → pb/proto.proto} +0 -0
  274. package/src/fetch/pb/proto.ts +65 -0
  275. package/src/get-peer.ts +57 -0
  276. package/src/identify/consts.ts +13 -0
  277. package/src/identify/index.ts +445 -0
  278. package/src/identify/{message.proto → pb/message.proto} +0 -0
  279. package/src/identify/pb/message.ts +37 -0
  280. package/src/index.ts +220 -0
  281. package/src/insecure/index.ts +101 -0
  282. package/src/insecure/{proto.proto → pb/proto.proto} +0 -0
  283. package/src/insecure/pb/proto.ts +68 -0
  284. package/src/keychain/{cms.js → cms.ts} +62 -58
  285. package/src/keychain/index.ts +587 -0
  286. package/src/keychain/{util.js → util.ts} +7 -17
  287. package/src/libp2p.ts +538 -0
  288. package/src/metrics/index.ts +310 -0
  289. package/src/metrics/moving-average.ts +53 -0
  290. package/src/metrics/stats.ts +238 -0
  291. package/src/nat-manager.ts +194 -0
  292. package/src/peer-record-updater.ts +55 -0
  293. package/src/peer-routing.ts +186 -0
  294. package/src/ping/README.md +1 -1
  295. package/src/ping/constants.ts +5 -0
  296. package/src/ping/index.ts +84 -0
  297. package/src/pnet/README.md +2 -2
  298. package/src/pnet/crypto.ts +67 -0
  299. package/src/pnet/errors.ts +5 -0
  300. package/src/pnet/index.ts +97 -0
  301. package/src/pnet/key-generator.ts +28 -0
  302. package/src/pubsub/dummy-pubsub.ts +51 -0
  303. package/src/registrar.ts +189 -0
  304. package/src/transport-manager.ts +281 -0
  305. package/src/upgrader.ts +499 -0
  306. package/src/version.ts +3 -0
  307. package/dist/index.min.js +0 -55
  308. package/dist/src/circuit/protocol/index.d.ts +0 -173
  309. package/dist/src/dialer/dial-request.d.ts +0 -55
  310. package/dist/src/dialer/dial-request.d.ts.map +0 -1
  311. package/dist/src/dialer/index.d.ts +0 -182
  312. package/dist/src/dialer/index.d.ts.map +0 -1
  313. package/dist/src/fetch/proto.d.ts +0 -134
  314. package/dist/src/identify/message.d.ts +0 -95
  315. package/dist/src/insecure/plaintext.d.ts +0 -12
  316. package/dist/src/insecure/plaintext.d.ts.map +0 -1
  317. package/dist/src/insecure/proto.d.ts +0 -128
  318. package/dist/src/metrics/old-peers.d.ts +0 -3
  319. package/dist/src/metrics/old-peers.d.ts.map +0 -1
  320. package/dist/src/metrics/tracked-map.d.ts +0 -8
  321. package/dist/src/metrics/tracked-map.d.ts.map +0 -1
  322. package/dist/src/peer-store/address-book.d.ts +0 -67
  323. package/dist/src/peer-store/address-book.d.ts.map +0 -1
  324. package/dist/src/peer-store/index.d.ts +0 -58
  325. package/dist/src/peer-store/index.d.ts.map +0 -1
  326. package/dist/src/peer-store/key-book.d.ts +0 -40
  327. package/dist/src/peer-store/key-book.d.ts.map +0 -1
  328. package/dist/src/peer-store/metadata-book.d.ts +0 -58
  329. package/dist/src/peer-store/metadata-book.d.ts.map +0 -1
  330. package/dist/src/peer-store/pb/peer.d.ts +0 -222
  331. package/dist/src/peer-store/proto-book.d.ts +0 -43
  332. package/dist/src/peer-store/proto-book.d.ts.map +0 -1
  333. package/dist/src/peer-store/store.d.ts +0 -73
  334. package/dist/src/peer-store/store.d.ts.map +0 -1
  335. package/dist/src/peer-store/types.d.ts +0 -202
  336. package/dist/src/peer-store/types.d.ts.map +0 -1
  337. package/dist/src/ping/util.d.ts +0 -5
  338. package/dist/src/ping/util.d.ts.map +0 -1
  339. package/dist/src/pubsub-adapter.d.ts +0 -22
  340. package/dist/src/pubsub-adapter.d.ts.map +0 -1
  341. package/dist/src/record/envelope/envelope.d.ts +0 -77
  342. package/dist/src/record/envelope/index.d.ts +0 -80
  343. package/dist/src/record/envelope/index.d.ts.map +0 -1
  344. package/dist/src/record/peer-record/consts.d.ts +0 -4
  345. package/dist/src/record/peer-record/consts.d.ts.map +0 -1
  346. package/dist/src/record/peer-record/index.d.ts +0 -60
  347. package/dist/src/record/peer-record/index.d.ts.map +0 -1
  348. package/dist/src/record/peer-record/peer-record.d.ts +0 -133
  349. package/dist/src/record/utils.d.ts +0 -12
  350. package/dist/src/record/utils.d.ts.map +0 -1
  351. package/dist/src/types.d.ts +0 -90
  352. package/dist/src/types.d.ts.map +0 -1
  353. package/src/address-manager/index.js +0 -96
  354. package/src/circuit/auto-relay.js +0 -302
  355. package/src/circuit/circuit/hop.js +0 -205
  356. package/src/circuit/circuit/stop.js +0 -81
  357. package/src/circuit/circuit/stream-handler.js +0 -94
  358. package/src/circuit/constants.js +0 -12
  359. package/src/circuit/index.js +0 -102
  360. package/src/circuit/listener.js +0 -75
  361. package/src/circuit/multicodec.js +0 -5
  362. package/src/circuit/protocol/index.d.ts +0 -173
  363. package/src/circuit/protocol/index.js +0 -530
  364. package/src/circuit/transport.js +0 -229
  365. package/src/circuit/utils.js +0 -17
  366. package/src/config.js +0 -114
  367. package/src/connection-manager/auto-dialler.js +0 -132
  368. package/src/connection-manager/index.js +0 -374
  369. package/src/connection-manager/latency-monitor.js +0 -264
  370. package/src/constants.js +0 -18
  371. package/src/content-routing/index.js +0 -163
  372. package/src/content-routing/utils.js +0 -89
  373. package/src/dht/dht-content-routing.js +0 -44
  374. package/src/dht/dht-peer-routing.js +0 -51
  375. package/src/dialer/index.js +0 -376
  376. package/src/errors.js +0 -66
  377. package/src/fetch/constants.js +0 -6
  378. package/src/fetch/index.js +0 -159
  379. package/src/fetch/proto.d.ts +0 -134
  380. package/src/fetch/proto.js +0 -333
  381. package/src/get-peer.js +0 -49
  382. package/src/identify/consts.js +0 -15
  383. package/src/identify/index.js +0 -384
  384. package/src/identify/message.d.ts +0 -95
  385. package/src/identify/message.js +0 -328
  386. package/src/index.js +0 -813
  387. package/src/insecure/plaintext.js +0 -95
  388. package/src/insecure/proto.d.ts +0 -128
  389. package/src/insecure/proto.js +0 -371
  390. package/src/keychain/index.js +0 -561
  391. package/src/metrics/index.js +0 -290
  392. package/src/metrics/old-peers.js +0 -16
  393. package/src/metrics/stats.js +0 -270
  394. package/src/metrics/tracked-map.js +0 -94
  395. package/src/nat-manager.js +0 -197
  396. package/src/peer-routing.js +0 -176
  397. package/src/peer-store/README.md +0 -145
  398. package/src/peer-store/address-book.js +0 -382
  399. package/src/peer-store/index.js +0 -121
  400. package/src/peer-store/key-book.js +0 -141
  401. package/src/peer-store/metadata-book.js +0 -250
  402. package/src/peer-store/pb/peer.d.ts +0 -222
  403. package/src/peer-store/pb/peer.js +0 -643
  404. package/src/peer-store/pb/peer.proto +0 -31
  405. package/src/peer-store/proto-book.js +0 -237
  406. package/src/peer-store/store.js +0 -263
  407. package/src/peer-store/types.ts +0 -245
  408. package/src/ping/constants.js +0 -8
  409. package/src/ping/index.js +0 -84
  410. package/src/ping/util.js +0 -18
  411. package/src/pnet/crypto.js +0 -84
  412. package/src/pnet/errors.js +0 -7
  413. package/src/pnet/index.js +0 -86
  414. package/src/pnet/key-generator.js +0 -33
  415. package/src/pubsub-adapter.js +0 -61
  416. package/src/record/README.md +0 -130
  417. package/src/record/envelope/envelope.d.ts +0 -77
  418. package/src/record/envelope/envelope.js +0 -243
  419. package/src/record/envelope/envelope.proto +0 -19
  420. package/src/record/envelope/index.js +0 -183
  421. package/src/record/peer-record/consts.js +0 -14
  422. package/src/record/peer-record/index.js +0 -113
  423. package/src/record/peer-record/peer-record.d.ts +0 -133
  424. package/src/record/peer-record/peer-record.js +0 -367
  425. package/src/record/peer-record/peer-record.proto +0 -18
  426. package/src/record/utils.js +0 -25
  427. package/src/registrar.js +0 -127
  428. package/src/transport-manager.js +0 -269
  429. package/src/types.ts +0 -98
  430. package/src/upgrader.js +0 -492
@@ -0,0 +1,194 @@
1
+ import { upnpNat, NatAPI } from '@achingbrain/nat-port-mapper'
2
+ import { logger } from '@libp2p/logger'
3
+ import { Multiaddr } from '@multiformats/multiaddr'
4
+ import { isBrowser } from 'wherearewe'
5
+ import isPrivateIp from 'private-ip'
6
+ import * as pkg from './version.js'
7
+ import errCode from 'err-code'
8
+ import { codes } from './errors.js'
9
+ import { isLoopback } from '@libp2p/utils/multiaddr/is-loopback'
10
+ import type { Startable } from '@libp2p/interfaces/startable'
11
+ import type { Components } from '@libp2p/interfaces/components'
12
+
13
+ const log = logger('libp2p:nat')
14
+ const DEFAULT_TTL = 7200
15
+
16
+ function highPort (min = 1024, max = 65535) {
17
+ return Math.floor(Math.random() * (max - min + 1) + min)
18
+ }
19
+
20
+ export interface PMPOptions {
21
+ /**
22
+ * Whether to enable PMP as well as UPnP
23
+ */
24
+ enabled?: boolean
25
+ }
26
+
27
+ export interface NatManagerInit {
28
+ /**
29
+ * Whether to enable the NAT manager
30
+ */
31
+ enabled: boolean
32
+
33
+ /**
34
+ * Pass a value to use instead of auto-detection
35
+ */
36
+ externalAddress?: string
37
+
38
+ /**
39
+ * Pass a value to use instead of auto-detection
40
+ */
41
+ localAddress?: string
42
+
43
+ /**
44
+ * A string value to use for the port mapping description on the gateway
45
+ */
46
+ description?: string
47
+
48
+ /**
49
+ * How long UPnP port mappings should last for in seconds (minimum 1200)
50
+ */
51
+ ttl?: number
52
+
53
+ /**
54
+ * Whether to automatically refresh UPnP port mappings when their TTL is reached
55
+ */
56
+ keepAlive: boolean
57
+
58
+ /**
59
+ * Pass a value to use instead of auto-detection
60
+ */
61
+ gateway?: string
62
+ }
63
+
64
+ export class NatManager implements Startable {
65
+ private readonly components: Components
66
+ private readonly enabled: boolean
67
+ private readonly externalAddress?: string
68
+ private readonly localAddress?: string
69
+ private readonly description: string
70
+ private readonly ttl: number
71
+ private readonly keepAlive: boolean
72
+ private readonly gateway?: string
73
+ private started: boolean
74
+ private client?: NatAPI
75
+
76
+ constructor (components: Components, init: NatManagerInit) {
77
+ this.components = components
78
+
79
+ this.started = false
80
+ this.enabled = init.enabled
81
+ this.externalAddress = init.externalAddress
82
+ this.localAddress = init.localAddress
83
+ this.description = init.description ?? `${pkg.name}@${pkg.version} ${this.components.getPeerId().toString()}`
84
+ this.ttl = init.ttl ?? DEFAULT_TTL
85
+ this.keepAlive = init.keepAlive ?? true
86
+ this.gateway = init.gateway
87
+
88
+ if (this.ttl < DEFAULT_TTL) {
89
+ throw errCode(new Error(`NatManager ttl should be at least ${DEFAULT_TTL} seconds`), codes.ERR_INVALID_PARAMETERS)
90
+ }
91
+ }
92
+
93
+ isStarted () {
94
+ return this.started
95
+ }
96
+
97
+ /**
98
+ * Starts the NAT manager
99
+ */
100
+ start () {
101
+ if (isBrowser || !this.enabled || this.started) {
102
+ return
103
+ }
104
+
105
+ this.started = true
106
+
107
+ // done async to not slow down startup
108
+ this._start().catch((err) => {
109
+ // hole punching errors are non-fatal
110
+ log.error(err)
111
+ })
112
+ }
113
+
114
+ async _start () {
115
+ const addrs = this.components.getTransportManager().getAddrs()
116
+
117
+ for (const addr of addrs) {
118
+ // try to open uPnP ports for each thin waist address
119
+ const { family, host, port, transport } = addr.toOptions()
120
+
121
+ if (!addr.isThinWaistAddress() || transport !== 'tcp') {
122
+ // only bare tcp addresses
123
+ // eslint-disable-next-line no-continue
124
+ continue
125
+ }
126
+
127
+ if (isLoopback(addr)) {
128
+ // eslint-disable-next-line no-continue
129
+ continue
130
+ }
131
+
132
+ if (family !== 4) {
133
+ // ignore ipv6
134
+ // eslint-disable-next-line no-continue
135
+ continue
136
+ }
137
+
138
+ const client = await this._getClient()
139
+ const publicIp = this.externalAddress ?? await client.externalIp()
140
+
141
+ if (isPrivateIp(publicIp)) {
142
+ throw new Error(`${publicIp} is private - please set config.nat.externalIp to an externally routable IP or ensure you are not behind a double NAT`)
143
+ }
144
+
145
+ const publicPort = highPort()
146
+
147
+ log(`opening uPnP connection from ${publicIp}:${publicPort} to ${host}:${port}`)
148
+
149
+ await client.map({
150
+ publicPort,
151
+ localPort: port,
152
+ localAddress: this.localAddress,
153
+ protocol: transport.toUpperCase() === 'TCP' ? 'TCP' : 'UDP'
154
+ })
155
+
156
+ this.components.getAddressManager().addObservedAddr(Multiaddr.fromNodeAddress({
157
+ family: 4,
158
+ address: publicIp,
159
+ port: publicPort
160
+ }, transport))
161
+ }
162
+ }
163
+
164
+ async _getClient () {
165
+ if (this.client != null) {
166
+ return this.client
167
+ }
168
+
169
+ this.client = await upnpNat({
170
+ description: this.description,
171
+ ttl: this.ttl,
172
+ keepAlive: this.keepAlive,
173
+ gateway: this.gateway
174
+ })
175
+
176
+ return this.client
177
+ }
178
+
179
+ /**
180
+ * Stops the NAT manager
181
+ */
182
+ async stop () {
183
+ if (isBrowser || this.client == null) {
184
+ return
185
+ }
186
+
187
+ try {
188
+ await this.client.close()
189
+ this.client = undefined
190
+ } catch (err: any) {
191
+ log.error(err)
192
+ }
193
+ }
194
+ }
@@ -0,0 +1,55 @@
1
+ import { RecordEnvelope, PeerRecord } from '@libp2p/peer-record'
2
+ import type { Components } from '@libp2p/interfaces/components'
3
+ import type { Startable } from '@libp2p/interfaces/startable'
4
+ import { logger } from '@libp2p/logger'
5
+ import { protocols } from '@multiformats/multiaddr'
6
+
7
+ const log = logger('libp2p:peer-record-updater')
8
+
9
+ export class PeerRecordUpdater implements Startable {
10
+ private readonly components: Components
11
+ private started: boolean
12
+
13
+ constructor (components: Components) {
14
+ this.components = components
15
+ this.started = false
16
+ this.update = this.update.bind(this)
17
+ }
18
+
19
+ isStarted () {
20
+ return this.started
21
+ }
22
+
23
+ async start () {
24
+ this.started = true
25
+ this.components.getTransportManager().addEventListener('listener:listening', this.update)
26
+ this.components.getTransportManager().addEventListener('listener:close', this.update)
27
+ this.components.getAddressManager().addEventListener('change:addresses', this.update)
28
+ }
29
+
30
+ async stop () {
31
+ this.started = false
32
+ this.components.getTransportManager().removeEventListener('listener:listening', this.update)
33
+ this.components.getTransportManager().removeEventListener('listener:close', this.update)
34
+ this.components.getAddressManager().removeEventListener('change:addresses', this.update)
35
+ }
36
+
37
+ /**
38
+ * Create (or update if existing) self peer record and store it in the AddressBook.
39
+ */
40
+ update () {
41
+ Promise.resolve()
42
+ .then(async () => {
43
+ const peerRecord = new PeerRecord({
44
+ peerId: this.components.getPeerId(),
45
+ multiaddrs: this.components.getAddressManager().getAddresses().map(ma => ma.decapsulateCode(protocols('p2p').code))
46
+ })
47
+
48
+ const envelope = await RecordEnvelope.seal(peerRecord, this.components.getPeerId())
49
+ await this.components.getPeerStore().addressBook.consumePeerRecord(envelope)
50
+ })
51
+ .catch(err => {
52
+ log.error('Could not update self peer record: %o', err)
53
+ })
54
+ }
55
+ }
@@ -0,0 +1,186 @@
1
+ import { logger } from '@libp2p/logger'
2
+ import errCode from 'err-code'
3
+ import { codes, messages } from './errors.js'
4
+ import {
5
+ storeAddresses,
6
+ uniquePeers,
7
+ requirePeers
8
+ } from './content-routing/utils.js'
9
+ import { TimeoutController } from 'timeout-abort-controller'
10
+ import merge from 'it-merge'
11
+ import { pipe } from 'it-pipe'
12
+ import first from 'it-first'
13
+ import drain from 'it-drain'
14
+ import filter from 'it-filter'
15
+ import {
16
+ setDelayedInterval,
17
+ clearDelayedInterval
18
+ // @ts-expect-error module with no types
19
+ } from 'set-delayed-interval'
20
+ // @ts-expect-error setMaxListeners is missing from the node 16 types
21
+ import { setMaxListeners } from 'events'
22
+ import type { PeerId } from '@libp2p/interfaces/peer-id'
23
+ import type { PeerRouting } from '@libp2p/interfaces/peer-routing'
24
+ import type { AbortOptions } from '@libp2p/interfaces'
25
+ import type { Startable } from '@libp2p/interfaces/startable'
26
+ import type { PeerInfo } from '@libp2p/interfaces/peer-info'
27
+ import type { Components } from '@libp2p/interfaces/components'
28
+
29
+ const log = logger('libp2p:peer-routing')
30
+
31
+ export interface RefreshManagerInit {
32
+ /**
33
+ * Whether to enable the Refresh manager
34
+ */
35
+ enabled?: boolean
36
+
37
+ /**
38
+ * Boot delay to start the Refresh Manager (in ms)
39
+ */
40
+ bootDelay?: number
41
+
42
+ /**
43
+ * Interval between each Refresh Manager run (in ms)
44
+ */
45
+ interval?: number
46
+
47
+ /**
48
+ * How long to let each refresh run (in ms)
49
+ */
50
+ timeout?: number
51
+ }
52
+
53
+ export interface PeerRoutingInit {
54
+ routers: PeerRouting[]
55
+ refreshManager?: RefreshManagerInit
56
+ }
57
+
58
+ export class DefaultPeerRouting implements PeerRouting, Startable {
59
+ private readonly components: Components
60
+ private readonly routers: PeerRouting[]
61
+ private readonly refreshManagerInit: RefreshManagerInit
62
+ private timeoutId?: ReturnType<typeof setTimeout>
63
+ private started: boolean
64
+ private abortController?: TimeoutController
65
+
66
+ constructor (components: Components, init: PeerRoutingInit) {
67
+ this.components = components
68
+ this.routers = init.routers
69
+ this.refreshManagerInit = init.refreshManager ?? {}
70
+ this.started = false
71
+
72
+ this._findClosestPeersTask = this._findClosestPeersTask.bind(this)
73
+ }
74
+
75
+ isStarted () {
76
+ return this.started
77
+ }
78
+
79
+ /**
80
+ * Start peer routing service.
81
+ */
82
+ async start () {
83
+ if (this.started || this.routers.length === 0 || this.timeoutId != null || this.refreshManagerInit.enabled === false) {
84
+ return
85
+ }
86
+
87
+ this.timeoutId = setDelayedInterval(
88
+ this._findClosestPeersTask, this.refreshManagerInit.interval, this.refreshManagerInit.bootDelay
89
+ )
90
+
91
+ this.started = true
92
+ }
93
+
94
+ /**
95
+ * Recurrent task to find closest peers and add their addresses to the Address Book.
96
+ */
97
+ async _findClosestPeersTask () {
98
+ if (this.abortController != null) {
99
+ // we are already running the query
100
+ return
101
+ }
102
+
103
+ try {
104
+ this.abortController = new TimeoutController(this.refreshManagerInit.timeout ?? 10e3)
105
+
106
+ // this controller may be used while dialing lots of peers so prevent MaxListenersExceededWarning
107
+ // appearing in the console
108
+ try {
109
+ // fails on node < 15.4
110
+ setMaxListeners?.(Infinity, this.abortController.signal)
111
+ } catch {}
112
+
113
+ // nb getClosestPeers adds the addresses to the address book
114
+ await drain(this.getClosestPeers(this.components.getPeerId().toBytes(), { signal: this.abortController.signal }))
115
+ } catch (err: any) {
116
+ log.error(err)
117
+ } finally {
118
+ this.abortController?.clear()
119
+ this.abortController = undefined
120
+ }
121
+ }
122
+
123
+ /**
124
+ * Stop peer routing service.
125
+ */
126
+ async stop () {
127
+ clearDelayedInterval(this.timeoutId)
128
+
129
+ // abort query if it is in-flight
130
+ this.abortController?.abort()
131
+
132
+ this.started = false
133
+ }
134
+
135
+ /**
136
+ * Iterates over all peer routers in parallel to find the given peer
137
+ */
138
+ async findPeer (id: PeerId, options?: AbortOptions): Promise<PeerInfo> {
139
+ if (this.routers.length === 0) {
140
+ throw errCode(new Error('No peer routers available'), codes.ERR_NO_ROUTERS_AVAILABLE)
141
+ }
142
+
143
+ if (id.toString() === this.components.getPeerId().toString()) {
144
+ throw errCode(new Error('Should not try to find self'), codes.ERR_FIND_SELF)
145
+ }
146
+
147
+ const output = await pipe(
148
+ merge(
149
+ ...this.routers.map(router => (async function * () {
150
+ try {
151
+ yield await router.findPeer(id, options)
152
+ } catch (err) {
153
+ log.error(err)
154
+ }
155
+ })())
156
+ ),
157
+ (source) => filter(source, Boolean),
158
+ (source) => storeAddresses(source, this.components.getPeerStore()),
159
+ async (source) => await first(source)
160
+ )
161
+
162
+ if (output != null) {
163
+ return output
164
+ }
165
+
166
+ throw errCode(new Error(messages.NOT_FOUND), codes.ERR_NOT_FOUND)
167
+ }
168
+
169
+ /**
170
+ * Attempt to find the closest peers on the network to the given key
171
+ */
172
+ async * getClosestPeers (key: Uint8Array, options?: AbortOptions): AsyncIterable<PeerInfo> {
173
+ if (this.routers.length === 0) {
174
+ throw errCode(new Error('No peer routers available'), codes.ERR_NO_ROUTERS_AVAILABLE)
175
+ }
176
+
177
+ yield * pipe(
178
+ merge(
179
+ ...this.routers.map(router => router.getClosestPeers(key, options))
180
+ ),
181
+ (source) => storeAddresses(source, this.components.getPeerStore()),
182
+ (source) => uniquePeers(source),
183
+ (source) => requirePeers(source)
184
+ )
185
+ }
186
+ }
@@ -8,7 +8,7 @@ libp2p-ping JavaScript Implementation
8
8
  ## Usage
9
9
 
10
10
  ```javascript
11
- var Ping = require('libp2p/src/ping')
11
+ import Ping from 'libp2p/src/ping'
12
12
 
13
13
  Ping.mount(libp2p) // Enable this peer to echo Ping requests
14
14
 
@@ -0,0 +1,5 @@
1
+
2
+ export const PROTOCOL = '/ipfs/ping/1.0.0'
3
+ export const PING_LENGTH = 32
4
+ export const PROTOCOL_VERSION = '1.0.0'
5
+ export const PROTOCOL_NAME = 'ping'
@@ -0,0 +1,84 @@
1
+ import { logger } from '@libp2p/logger'
2
+ import errCode from 'err-code'
3
+ import { codes } from '../errors.js'
4
+ import { randomBytes } from '@libp2p/crypto'
5
+ import { pipe } from 'it-pipe'
6
+ import first from 'it-first'
7
+ import { equals as uint8ArrayEquals } from 'uint8arrays/equals'
8
+ import { PROTOCOL_NAME, PING_LENGTH, PROTOCOL_VERSION } from './constants.js'
9
+ import type { IncomingStreamData } from '@libp2p/interfaces/registrar'
10
+ import type { PeerId } from '@libp2p/interfaces/peer-id'
11
+ import type { Startable } from '@libp2p/interfaces/startable'
12
+ import type { Components } from '@libp2p/interfaces/components'
13
+
14
+ const log = logger('libp2p:ping')
15
+
16
+ export interface PingServiceInit {
17
+ protocolPrefix: string
18
+ }
19
+
20
+ export class PingService implements Startable {
21
+ private readonly components: Components
22
+ private readonly protocol: string
23
+ private started: boolean
24
+
25
+ constructor (components: Components, init: PingServiceInit) {
26
+ this.components = components
27
+ this.started = false
28
+ this.protocol = `/${init.protocolPrefix}/${PROTOCOL_NAME}/${PROTOCOL_VERSION}`
29
+ }
30
+
31
+ async start () {
32
+ await this.components.getRegistrar().handle(this.protocol, this.handleMessage)
33
+ this.started = true
34
+ }
35
+
36
+ async stop () {
37
+ await this.components.getRegistrar().unhandle(this.protocol)
38
+ this.started = false
39
+ }
40
+
41
+ isStarted () {
42
+ return this.started
43
+ }
44
+
45
+ /**
46
+ * A handler to register with Libp2p to process ping messages
47
+ */
48
+ handleMessage (data: IncomingStreamData) {
49
+ const { stream } = data
50
+
51
+ void pipe(stream, stream)
52
+ .catch(err => {
53
+ log.error(err)
54
+ })
55
+ }
56
+
57
+ /**
58
+ * Ping a given peer and wait for its response, getting the operation latency.
59
+ *
60
+ * @param {PeerId|Multiaddr} peer
61
+ * @returns {Promise<number>}
62
+ */
63
+ async ping (peer: PeerId): Promise<number> {
64
+ log('dialing %s to %p', this.protocol, peer)
65
+
66
+ const connection = await this.components.getConnectionManager().openConnection(peer)
67
+ const { stream } = await connection.newStream([this.protocol])
68
+ const start = Date.now()
69
+ const data = randomBytes(PING_LENGTH)
70
+
71
+ const result = await pipe(
72
+ [data],
73
+ stream,
74
+ async (source) => await first(source)
75
+ )
76
+ const end = Date.now()
77
+
78
+ if (result == null || !uint8ArrayEquals(data, result)) {
79
+ throw errCode(new Error('Received wrong ping ack'), codes.ERR_WRONG_PING_ACK)
80
+ }
81
+
82
+ return end - start
83
+ }
84
+ }
@@ -20,7 +20,7 @@ js-libp2p-pnet
20
20
  ## Usage
21
21
 
22
22
  ```js
23
- const Protector = require('libp2p-pnet')
23
+ const Protector from 'libp2p-pnet')
24
24
  const protector = new Protector(swarmKeyBuffer)
25
25
  const privateConnection = protector.protect(myPublicConnection, (err) => { })
26
26
  ```
@@ -63,7 +63,7 @@ node -e "require('libp2p/src/pnet').generate(process.stdout)" > swarm.key
63
63
  #### Programmatically
64
64
 
65
65
  ```js
66
- const writeKey = require('libp2p/src/pnet').generate
66
+ const writeKey from 'libp2p/src/pnet').generate
67
67
  const swarmKey = new Uint8Array(95)
68
68
  writeKey(swarmKey)
69
69
  fs.writeFileSync('swarm.key', swarmKey)
@@ -0,0 +1,67 @@
1
+ import { logger } from '@libp2p/logger'
2
+ import * as Errors from './errors.js'
3
+ import xsalsa20 from 'xsalsa20'
4
+ import { KEY_LENGTH } from './key-generator.js'
5
+ import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string'
6
+ import { toString as uint8ArrayToString } from 'uint8arrays/to-string'
7
+ import type { Source } from 'it-stream-types'
8
+
9
+ const log = logger('libp2p:pnet')
10
+
11
+ /**
12
+ * Creates a stream iterable to encrypt messages in a private network
13
+ */
14
+ export function createBoxStream (nonce: Uint8Array, psk: Uint8Array) {
15
+ const xor = xsalsa20(nonce, psk)
16
+
17
+ return (source: Source<Uint8Array>) => (async function * () {
18
+ for await (const chunk of source) {
19
+ yield Uint8Array.from(xor.update(chunk.slice()))
20
+ }
21
+ })()
22
+ }
23
+
24
+ /**
25
+ * Creates a stream iterable to decrypt messages in a private network
26
+ */
27
+ export function createUnboxStream (nonce: Uint8Array, psk: Uint8Array) {
28
+ return (source: Source<Uint8Array>) => (async function * () {
29
+ const xor = xsalsa20(nonce, psk)
30
+ log.trace('Decryption enabled')
31
+
32
+ for await (const chunk of source) {
33
+ yield Uint8Array.from(xor.update(chunk.slice()))
34
+ }
35
+ })()
36
+ }
37
+
38
+ /**
39
+ * Decode the version 1 psk from the given Uint8Array
40
+ */
41
+ export function decodeV1PSK (pskBuffer: Uint8Array) {
42
+ try {
43
+ // This should pull from multibase/multicodec to allow for
44
+ // more encoding flexibility. Ideally we'd consume the codecs
45
+ // from the buffer line by line to evaluate the next line
46
+ // programmatically instead of making assumptions about the
47
+ // encodings of each line.
48
+ const metadata = uint8ArrayToString(pskBuffer).split(/(?:\r\n|\r|\n)/g)
49
+ const pskTag = metadata.shift()
50
+ const codec = metadata.shift()
51
+ const pskString = metadata.shift()
52
+ const psk = uint8ArrayFromString(pskString ?? '', 'base16')
53
+
54
+ if (psk.byteLength !== KEY_LENGTH) {
55
+ throw new Error(Errors.INVALID_PSK)
56
+ }
57
+
58
+ return {
59
+ tag: pskTag,
60
+ codecName: codec,
61
+ psk: psk
62
+ }
63
+ } catch (err: any) {
64
+ log.error(err)
65
+ throw new Error(Errors.INVALID_PSK)
66
+ }
67
+ }
@@ -0,0 +1,5 @@
1
+ export const INVALID_PEER = 'Not a valid peer connection'
2
+ export const INVALID_PSK = 'Your private shared key is invalid'
3
+ export const NO_LOCAL_ID = 'No local private key provided'
4
+ export const NO_HANDSHAKE_CONNECTION = 'No connection for the handshake provided'
5
+ export const STREAM_ENDED = 'Stream ended prematurely'