nostr-websocket-utils 0.3.1 → 0.3.3

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 (410) hide show
  1. package/dist/__mocks__/extendedWsMock.d.ts +6 -8
  2. package/dist/__mocks__/extendedWsMock.d.ts.map +1 -0
  3. package/dist/__mocks__/extendedWsMock.js +1 -0
  4. package/dist/__mocks__/extendedWsMock.js.map +1 -0
  5. package/dist/__mocks__/mockLogger.d.ts +8 -7
  6. package/dist/__mocks__/mockLogger.d.ts.map +1 -0
  7. package/dist/__mocks__/mockLogger.js +1 -0
  8. package/dist/__mocks__/mockLogger.js.map +1 -0
  9. package/dist/__mocks__/mockserver.d.ts +7 -11
  10. package/dist/__mocks__/mockserver.d.ts.map +1 -0
  11. package/dist/__mocks__/mockserver.js +1 -0
  12. package/dist/__mocks__/mockserver.js.map +1 -0
  13. package/dist/__mocks__/wsMock.d.ts +1 -2
  14. package/dist/__mocks__/wsMock.d.ts.map +1 -0
  15. package/dist/__mocks__/wsMock.js +1 -0
  16. package/dist/__mocks__/wsMock.js.map +1 -0
  17. package/dist/cjs/__mocks__/extendedWsMock.d.ts +52 -0
  18. package/dist/cjs/__mocks__/extendedWsMock.d.ts.map +1 -0
  19. package/dist/cjs/__mocks__/extendedWsMock.js +161 -0
  20. package/dist/cjs/__mocks__/extendedWsMock.js.map +1 -0
  21. package/dist/cjs/__mocks__/mockLogger.d.ts +42 -0
  22. package/dist/cjs/__mocks__/mockLogger.d.ts.map +1 -0
  23. package/dist/cjs/__mocks__/mockLogger.js +53 -0
  24. package/dist/cjs/__mocks__/mockLogger.js.map +1 -0
  25. package/dist/cjs/__mocks__/mockserver.d.ts +27 -0
  26. package/dist/cjs/__mocks__/mockserver.d.ts.map +1 -0
  27. package/dist/cjs/__mocks__/mockserver.js +44 -0
  28. package/dist/cjs/__mocks__/mockserver.js.map +1 -0
  29. package/dist/cjs/__mocks__/wsMock.d.ts +25 -0
  30. package/dist/cjs/__mocks__/wsMock.d.ts.map +1 -0
  31. package/dist/cjs/__mocks__/wsMock.js +123 -0
  32. package/dist/cjs/__mocks__/wsMock.js.map +1 -0
  33. package/dist/cjs/core/client.d.ts +35 -0
  34. package/dist/cjs/core/client.d.ts.map +1 -0
  35. package/dist/cjs/core/client.js +161 -0
  36. package/dist/cjs/core/client.js.map +1 -0
  37. package/dist/{nostr-server.d.ts → cjs/core/nostr-server.d.ts} +3 -6
  38. package/dist/cjs/core/nostr-server.d.ts.map +1 -0
  39. package/dist/cjs/core/nostr-server.js +101 -0
  40. package/dist/cjs/core/nostr-server.js.map +1 -0
  41. package/dist/cjs/core/queue.d.ts +38 -0
  42. package/dist/cjs/core/queue.d.ts.map +1 -0
  43. package/dist/cjs/core/queue.js +105 -0
  44. package/dist/cjs/core/queue.js.map +1 -0
  45. package/dist/cjs/core/server.d.ts +29 -0
  46. package/dist/cjs/core/server.d.ts.map +1 -0
  47. package/dist/cjs/core/server.js +134 -0
  48. package/dist/cjs/core/server.js.map +1 -0
  49. package/dist/cjs/crypto/bech32.d.ts +27 -0
  50. package/dist/cjs/crypto/bech32.d.ts.map +1 -0
  51. package/dist/cjs/crypto/bech32.js +170 -0
  52. package/dist/cjs/crypto/bech32.js.map +1 -0
  53. package/dist/cjs/crypto/handlers.d.ts +19 -0
  54. package/dist/cjs/crypto/handlers.d.ts.map +1 -0
  55. package/dist/cjs/crypto/handlers.js +65 -0
  56. package/dist/cjs/crypto/handlers.js.map +1 -0
  57. package/dist/cjs/crypto/index.d.ts +7 -0
  58. package/dist/cjs/crypto/index.d.ts.map +1 -0
  59. package/dist/cjs/crypto/index.js +23 -0
  60. package/dist/cjs/crypto/index.js.map +1 -0
  61. package/dist/cjs/endpoints/metrics.d.ts +30 -0
  62. package/dist/cjs/endpoints/metrics.d.ts.map +1 -0
  63. package/dist/cjs/endpoints/metrics.js +106 -0
  64. package/dist/cjs/endpoints/metrics.js.map +1 -0
  65. package/dist/cjs/index.d.ts +13 -0
  66. package/dist/cjs/index.d.ts.map +1 -0
  67. package/dist/cjs/index.js +40 -0
  68. package/dist/cjs/index.js.map +1 -0
  69. package/dist/cjs/nips/index.d.ts +20 -0
  70. package/dist/cjs/nips/index.d.ts.map +1 -0
  71. package/dist/cjs/nips/index.js +51 -0
  72. package/dist/cjs/nips/index.js.map +1 -0
  73. package/dist/cjs/nips/nip-01.d.ts +35 -0
  74. package/dist/cjs/nips/nip-01.d.ts.map +1 -0
  75. package/dist/cjs/nips/nip-01.js +142 -0
  76. package/dist/cjs/nips/nip-01.js.map +1 -0
  77. package/dist/cjs/nips/nip-02.d.ts +83 -0
  78. package/dist/cjs/nips/nip-02.d.ts.map +1 -0
  79. package/dist/cjs/nips/nip-02.js +119 -0
  80. package/dist/cjs/nips/nip-02.js.map +1 -0
  81. package/dist/cjs/nips/nip-04.d.ts +37 -0
  82. package/dist/cjs/nips/nip-04.d.ts.map +1 -0
  83. package/dist/cjs/nips/nip-04.js +104 -0
  84. package/dist/cjs/nips/nip-04.js.map +1 -0
  85. package/dist/cjs/nips/nip-05.d.ts +88 -0
  86. package/dist/cjs/nips/nip-05.d.ts.map +1 -0
  87. package/dist/cjs/nips/nip-05.js +158 -0
  88. package/dist/cjs/nips/nip-05.js.map +1 -0
  89. package/dist/cjs/nips/nip-09.d.ts +93 -0
  90. package/dist/cjs/nips/nip-09.d.ts.map +1 -0
  91. package/dist/cjs/nips/nip-09.js +180 -0
  92. package/dist/cjs/nips/nip-09.js.map +1 -0
  93. package/dist/cjs/nips/nip-11.d.ts +65 -0
  94. package/dist/cjs/nips/nip-11.d.ts.map +1 -0
  95. package/dist/cjs/nips/nip-11.js +161 -0
  96. package/dist/cjs/nips/nip-11.js.map +1 -0
  97. package/dist/cjs/nips/nip-13.d.ts +74 -0
  98. package/dist/cjs/nips/nip-13.d.ts.map +1 -0
  99. package/dist/cjs/nips/nip-13.js +136 -0
  100. package/dist/cjs/nips/nip-13.js.map +1 -0
  101. package/dist/cjs/nips/nip-15.d.ts +84 -0
  102. package/dist/cjs/nips/nip-15.d.ts.map +1 -0
  103. package/dist/cjs/nips/nip-15.js +102 -0
  104. package/dist/cjs/nips/nip-15.js.map +1 -0
  105. package/dist/cjs/nips/nip-16.d.ts +89 -0
  106. package/dist/cjs/nips/nip-16.d.ts.map +1 -0
  107. package/dist/cjs/nips/nip-16.js +157 -0
  108. package/dist/cjs/nips/nip-16.js.map +1 -0
  109. package/dist/cjs/nips/nip-19.d.ts +29 -0
  110. package/dist/cjs/nips/nip-19.d.ts.map +1 -0
  111. package/dist/cjs/nips/nip-19.js +112 -0
  112. package/dist/cjs/nips/nip-19.js.map +1 -0
  113. package/dist/cjs/nips/nip-20.d.ts +60 -0
  114. package/dist/cjs/nips/nip-20.d.ts.map +1 -0
  115. package/dist/cjs/nips/nip-20.js +102 -0
  116. package/dist/cjs/nips/nip-20.js.map +1 -0
  117. package/dist/cjs/nips/nip-22.d.ts +90 -0
  118. package/dist/cjs/nips/nip-22.d.ts.map +1 -0
  119. package/dist/cjs/nips/nip-22.js +149 -0
  120. package/dist/cjs/nips/nip-22.js.map +1 -0
  121. package/dist/cjs/nips/nip-26.d.ts +53 -0
  122. package/dist/cjs/nips/nip-26.d.ts.map +1 -0
  123. package/dist/cjs/nips/nip-26.js +147 -0
  124. package/dist/cjs/nips/nip-26.js.map +1 -0
  125. package/dist/cjs/nips/nip-28.d.ts +104 -0
  126. package/dist/cjs/nips/nip-28.d.ts.map +1 -0
  127. package/dist/cjs/nips/nip-28.js +164 -0
  128. package/dist/cjs/nips/nip-28.js.map +1 -0
  129. package/dist/cjs/nips/nip-33.d.ts +95 -0
  130. package/dist/cjs/nips/nip-33.d.ts.map +1 -0
  131. package/dist/cjs/nips/nip-33.js +135 -0
  132. package/dist/cjs/nips/nip-33.js.map +1 -0
  133. package/dist/cjs/transport/base.d.ts +54 -0
  134. package/dist/cjs/transport/base.d.ts.map +1 -0
  135. package/dist/cjs/transport/base.js +109 -0
  136. package/dist/cjs/transport/base.js.map +1 -0
  137. package/dist/cjs/transport/websocket.d.ts +24 -0
  138. package/dist/cjs/transport/websocket.d.ts.map +1 -0
  139. package/dist/cjs/transport/websocket.js +136 -0
  140. package/dist/cjs/transport/websocket.js.map +1 -0
  141. package/dist/cjs/types/events.d.ts +74 -0
  142. package/dist/cjs/types/events.d.ts.map +1 -0
  143. package/dist/cjs/types/events.js +7 -0
  144. package/dist/cjs/types/events.js.map +1 -0
  145. package/dist/cjs/types/filters.d.ts +20 -0
  146. package/dist/cjs/types/filters.d.ts.map +1 -0
  147. package/dist/cjs/types/filters.js +7 -0
  148. package/dist/cjs/types/filters.js.map +1 -0
  149. package/dist/cjs/types/handlers.d.ts +81 -0
  150. package/dist/cjs/types/handlers.d.ts.map +1 -0
  151. package/dist/cjs/types/handlers.js +7 -0
  152. package/dist/cjs/types/handlers.js.map +1 -0
  153. package/dist/cjs/types/index.d.ts +144 -0
  154. package/dist/cjs/types/index.d.ts.map +1 -0
  155. package/dist/cjs/types/index.js +37 -0
  156. package/dist/cjs/types/index.js.map +1 -0
  157. package/dist/cjs/types/logger.d.ts +41 -0
  158. package/dist/cjs/types/logger.d.ts.map +1 -0
  159. package/dist/cjs/types/logger.js +7 -0
  160. package/dist/cjs/types/logger.js.map +1 -0
  161. package/dist/cjs/types/messages.d.ts +133 -0
  162. package/dist/cjs/types/messages.d.ts.map +1 -0
  163. package/dist/cjs/types/messages.js +46 -0
  164. package/dist/cjs/types/messages.js.map +1 -0
  165. package/dist/cjs/types/nostr.d.ts +134 -0
  166. package/dist/cjs/types/nostr.d.ts.map +1 -0
  167. package/dist/cjs/types/nostr.js +7 -0
  168. package/dist/cjs/types/nostr.js.map +1 -0
  169. package/dist/cjs/types/options.d.ts +155 -0
  170. package/dist/cjs/types/options.d.ts.map +1 -0
  171. package/dist/cjs/types/options.js +7 -0
  172. package/dist/cjs/types/options.js.map +1 -0
  173. package/dist/cjs/types/priority.d.ts +13 -0
  174. package/dist/cjs/types/priority.d.ts.map +1 -0
  175. package/dist/cjs/types/priority.js +17 -0
  176. package/dist/cjs/types/priority.js.map +1 -0
  177. package/dist/cjs/types/relays.d.ts +27 -0
  178. package/dist/cjs/types/relays.d.ts.map +1 -0
  179. package/dist/cjs/types/relays.js +7 -0
  180. package/dist/cjs/types/relays.js.map +1 -0
  181. package/dist/cjs/types/scoring.d.ts +59 -0
  182. package/dist/cjs/types/scoring.d.ts.map +1 -0
  183. package/dist/cjs/types/scoring.js +34 -0
  184. package/dist/cjs/types/scoring.js.map +1 -0
  185. package/dist/cjs/types/socket.d.ts +98 -0
  186. package/dist/cjs/types/socket.d.ts.map +1 -0
  187. package/dist/cjs/types/socket.js +7 -0
  188. package/dist/cjs/types/socket.js.map +1 -0
  189. package/dist/cjs/types/transport.d.ts +98 -0
  190. package/dist/cjs/types/transport.d.ts.map +1 -0
  191. package/dist/cjs/types/transport.js +7 -0
  192. package/dist/cjs/types/transport.js.map +1 -0
  193. package/dist/cjs/types/validation.d.ts +51 -0
  194. package/dist/cjs/types/validation.d.ts.map +1 -0
  195. package/dist/cjs/types/validation.js +7 -0
  196. package/dist/cjs/types/validation.js.map +1 -0
  197. package/dist/cjs/types/websocket.d.ts +250 -0
  198. package/dist/cjs/types/websocket.d.ts.map +1 -0
  199. package/dist/cjs/types/websocket.js +7 -0
  200. package/dist/cjs/types/websocket.js.map +1 -0
  201. package/dist/cjs/utils/http.d.ts +11 -0
  202. package/dist/cjs/utils/http.d.ts.map +1 -0
  203. package/dist/cjs/utils/http.js +28 -0
  204. package/dist/cjs/utils/http.js.map +1 -0
  205. package/dist/cjs/utils/logger.d.ts +26 -0
  206. package/dist/cjs/utils/logger.d.ts.map +1 -0
  207. package/dist/cjs/utils/logger.js +43 -0
  208. package/dist/cjs/utils/logger.js.map +1 -0
  209. package/dist/cjs/utils/metrics.d.ts +81 -0
  210. package/dist/cjs/utils/metrics.d.ts.map +1 -0
  211. package/dist/cjs/utils/metrics.js +211 -0
  212. package/dist/cjs/utils/metrics.js.map +1 -0
  213. package/dist/cjs/utils/rate-limiter.d.ts +86 -0
  214. package/dist/cjs/utils/rate-limiter.d.ts.map +1 -0
  215. package/dist/cjs/utils/rate-limiter.js +183 -0
  216. package/dist/cjs/utils/rate-limiter.js.map +1 -0
  217. package/dist/core/client.d.ts +1 -0
  218. package/dist/core/client.d.ts.map +1 -0
  219. package/dist/core/client.js +1 -0
  220. package/dist/core/client.js.map +1 -0
  221. package/dist/core/nostr-server.d.ts +1 -0
  222. package/dist/core/nostr-server.d.ts.map +1 -0
  223. package/dist/core/nostr-server.js +1 -0
  224. package/dist/core/nostr-server.js.map +1 -0
  225. package/dist/core/queue.d.ts +1 -0
  226. package/dist/core/queue.d.ts.map +1 -0
  227. package/dist/core/queue.js +1 -0
  228. package/dist/core/queue.js.map +1 -0
  229. package/dist/core/server.d.ts +1 -0
  230. package/dist/core/server.d.ts.map +1 -0
  231. package/dist/core/server.js +1 -0
  232. package/dist/core/server.js.map +1 -0
  233. package/dist/crypto/bech32.d.ts +1 -0
  234. package/dist/crypto/bech32.d.ts.map +1 -0
  235. package/dist/crypto/bech32.js +1 -0
  236. package/dist/crypto/bech32.js.map +1 -0
  237. package/dist/crypto/handlers.d.ts +1 -0
  238. package/dist/crypto/handlers.d.ts.map +1 -0
  239. package/dist/crypto/handlers.js +1 -0
  240. package/dist/crypto/handlers.js.map +1 -0
  241. package/dist/crypto/index.d.ts +3 -1
  242. package/dist/crypto/index.d.ts.map +1 -0
  243. package/dist/crypto/index.js +3 -1
  244. package/dist/crypto/index.js.map +1 -0
  245. package/dist/endpoints/metrics.d.ts +1 -0
  246. package/dist/endpoints/metrics.d.ts.map +1 -0
  247. package/dist/endpoints/metrics.js +1 -0
  248. package/dist/endpoints/metrics.js.map +1 -0
  249. package/dist/index.d.ts +1 -0
  250. package/dist/index.d.ts.map +1 -0
  251. package/dist/index.js +1 -0
  252. package/dist/index.js.map +1 -0
  253. package/dist/nips/index.d.ts +1 -0
  254. package/dist/nips/index.d.ts.map +1 -0
  255. package/dist/nips/index.js +1 -0
  256. package/dist/nips/index.js.map +1 -0
  257. package/dist/nips/nip-01.d.ts +1 -0
  258. package/dist/nips/nip-01.d.ts.map +1 -0
  259. package/dist/nips/nip-01.js +1 -0
  260. package/dist/nips/nip-01.js.map +1 -0
  261. package/dist/nips/nip-02.d.ts +1 -0
  262. package/dist/nips/nip-02.d.ts.map +1 -0
  263. package/dist/nips/nip-02.js +1 -0
  264. package/dist/nips/nip-02.js.map +1 -0
  265. package/dist/nips/nip-04.d.ts +1 -0
  266. package/dist/nips/nip-04.d.ts.map +1 -0
  267. package/dist/nips/nip-04.js +1 -0
  268. package/dist/nips/nip-04.js.map +1 -0
  269. package/dist/nips/nip-05.d.ts +1 -0
  270. package/dist/nips/nip-05.d.ts.map +1 -0
  271. package/dist/nips/nip-05.js +1 -0
  272. package/dist/nips/nip-05.js.map +1 -0
  273. package/dist/nips/nip-09.d.ts +1 -0
  274. package/dist/nips/nip-09.d.ts.map +1 -0
  275. package/dist/nips/nip-09.js +1 -0
  276. package/dist/nips/nip-09.js.map +1 -0
  277. package/dist/nips/nip-11.d.ts +1 -0
  278. package/dist/nips/nip-11.d.ts.map +1 -0
  279. package/dist/nips/nip-11.js +1 -0
  280. package/dist/nips/nip-11.js.map +1 -0
  281. package/dist/nips/nip-13.d.ts +1 -0
  282. package/dist/nips/nip-13.d.ts.map +1 -0
  283. package/dist/nips/nip-13.js +1 -0
  284. package/dist/nips/nip-13.js.map +1 -0
  285. package/dist/nips/nip-15.d.ts +1 -0
  286. package/dist/nips/nip-15.d.ts.map +1 -0
  287. package/dist/nips/nip-15.js +1 -0
  288. package/dist/nips/nip-15.js.map +1 -0
  289. package/dist/nips/nip-16.d.ts +1 -0
  290. package/dist/nips/nip-16.d.ts.map +1 -0
  291. package/dist/nips/nip-16.js +1 -0
  292. package/dist/nips/nip-16.js.map +1 -0
  293. package/dist/nips/nip-19.d.ts +1 -0
  294. package/dist/nips/nip-19.d.ts.map +1 -0
  295. package/dist/nips/nip-19.js +1 -0
  296. package/dist/nips/nip-19.js.map +1 -0
  297. package/dist/nips/nip-20.d.ts +1 -0
  298. package/dist/nips/nip-20.d.ts.map +1 -0
  299. package/dist/nips/nip-20.js +1 -0
  300. package/dist/nips/nip-20.js.map +1 -0
  301. package/dist/nips/nip-22.d.ts +1 -0
  302. package/dist/nips/nip-22.d.ts.map +1 -0
  303. package/dist/nips/nip-22.js +1 -0
  304. package/dist/nips/nip-22.js.map +1 -0
  305. package/dist/nips/nip-26.d.ts +1 -0
  306. package/dist/nips/nip-26.d.ts.map +1 -0
  307. package/dist/nips/nip-26.js +1 -0
  308. package/dist/nips/nip-26.js.map +1 -0
  309. package/dist/nips/nip-28.d.ts +1 -0
  310. package/dist/nips/nip-28.d.ts.map +1 -0
  311. package/dist/nips/nip-28.js +1 -0
  312. package/dist/nips/nip-28.js.map +1 -0
  313. package/dist/nips/nip-33.d.ts +1 -0
  314. package/dist/nips/nip-33.d.ts.map +1 -0
  315. package/dist/nips/nip-33.js +1 -0
  316. package/dist/nips/nip-33.js.map +1 -0
  317. package/dist/transport/base.d.ts +1 -1
  318. package/dist/transport/base.d.ts.map +1 -0
  319. package/dist/transport/base.js +1 -0
  320. package/dist/transport/base.js.map +1 -0
  321. package/dist/transport/websocket.d.ts +1 -0
  322. package/dist/transport/websocket.d.ts.map +1 -0
  323. package/dist/transport/websocket.js +1 -0
  324. package/dist/transport/websocket.js.map +1 -0
  325. package/dist/types/events.d.ts +1 -0
  326. package/dist/types/events.d.ts.map +1 -0
  327. package/dist/types/events.js +1 -0
  328. package/dist/types/events.js.map +1 -0
  329. package/dist/types/filters.d.ts +1 -0
  330. package/dist/types/filters.d.ts.map +1 -0
  331. package/dist/types/filters.js +1 -0
  332. package/dist/types/filters.js.map +1 -0
  333. package/dist/types/handlers.d.ts +1 -0
  334. package/dist/types/handlers.d.ts.map +1 -0
  335. package/dist/types/handlers.js +1 -0
  336. package/dist/types/handlers.js.map +1 -0
  337. package/dist/types/index.d.ts +1 -0
  338. package/dist/types/index.d.ts.map +1 -0
  339. package/dist/types/index.js +1 -0
  340. package/dist/types/index.js.map +1 -0
  341. package/dist/types/logger.d.ts +1 -0
  342. package/dist/types/logger.d.ts.map +1 -0
  343. package/dist/types/logger.js +1 -0
  344. package/dist/types/logger.js.map +1 -0
  345. package/dist/types/messages.d.ts +1 -0
  346. package/dist/types/messages.d.ts.map +1 -0
  347. package/dist/types/messages.js +1 -0
  348. package/dist/types/messages.js.map +1 -0
  349. package/dist/types/nostr.d.ts +1 -0
  350. package/dist/types/nostr.d.ts.map +1 -0
  351. package/dist/types/nostr.js +1 -0
  352. package/dist/types/nostr.js.map +1 -0
  353. package/dist/types/options.d.ts +1 -0
  354. package/dist/types/options.d.ts.map +1 -0
  355. package/dist/types/options.js +1 -0
  356. package/dist/types/options.js.map +1 -0
  357. package/dist/types/priority.d.ts +1 -0
  358. package/dist/types/priority.d.ts.map +1 -0
  359. package/dist/types/priority.js +1 -0
  360. package/dist/types/priority.js.map +1 -0
  361. package/dist/types/relays.d.ts +1 -0
  362. package/dist/types/relays.d.ts.map +1 -0
  363. package/dist/types/relays.js +1 -0
  364. package/dist/types/relays.js.map +1 -0
  365. package/dist/types/scoring.d.ts +1 -2
  366. package/dist/types/scoring.d.ts.map +1 -0
  367. package/dist/types/scoring.js +1 -0
  368. package/dist/types/scoring.js.map +1 -0
  369. package/dist/types/socket.d.ts +1 -2
  370. package/dist/types/socket.d.ts.map +1 -0
  371. package/dist/types/socket.js +1 -0
  372. package/dist/types/socket.js.map +1 -0
  373. package/dist/types/transport.d.ts +1 -0
  374. package/dist/types/transport.d.ts.map +1 -0
  375. package/dist/types/transport.js +1 -0
  376. package/dist/types/transport.js.map +1 -0
  377. package/dist/types/validation.d.ts +1 -0
  378. package/dist/types/validation.d.ts.map +1 -0
  379. package/dist/types/validation.js +1 -0
  380. package/dist/types/validation.js.map +1 -0
  381. package/dist/types/websocket.d.ts +1 -0
  382. package/dist/types/websocket.d.ts.map +1 -0
  383. package/dist/types/websocket.js +1 -0
  384. package/dist/types/websocket.js.map +1 -0
  385. package/dist/utils/http.d.ts +1 -0
  386. package/dist/utils/http.d.ts.map +1 -0
  387. package/dist/utils/http.js +1 -0
  388. package/dist/utils/http.js.map +1 -0
  389. package/dist/utils/logger.d.ts +1 -0
  390. package/dist/utils/logger.d.ts.map +1 -0
  391. package/dist/utils/logger.js +1 -0
  392. package/dist/utils/logger.js.map +1 -0
  393. package/dist/utils/metrics.d.ts +1 -1
  394. package/dist/utils/metrics.d.ts.map +1 -0
  395. package/dist/utils/metrics.js +1 -0
  396. package/dist/utils/metrics.js.map +1 -0
  397. package/dist/utils/rate-limiter.d.ts +1 -0
  398. package/dist/utils/rate-limiter.d.ts.map +1 -0
  399. package/dist/utils/rate-limiter.js +1 -0
  400. package/dist/utils/rate-limiter.js.map +1 -0
  401. package/package.json +14 -2
  402. package/dist/__mocks__/logger.d.ts +0 -9
  403. package/dist/__mocks__/logger.js +0 -6
  404. package/dist/client.d.ts +0 -129
  405. package/dist/client.js +0 -259
  406. package/dist/crypto/schnorr.d.ts +0 -16
  407. package/dist/crypto/schnorr.js +0 -51
  408. package/dist/nostr-server.js +0 -107
  409. package/dist/server.d.ts +0 -27
  410. package/dist/server.js +0 -132
@@ -0,0 +1,98 @@
1
+ /**
2
+ * @file Transport type definitions
3
+ * @module types/transport
4
+ */
5
+ import { NostrEvent } from './events';
6
+ import { NostrWSMessage } from './messages';
7
+ /**
8
+ * Base transport interface
9
+ */
10
+ export interface Transport {
11
+ /**
12
+ * Connect to the transport
13
+ */
14
+ connect(): Promise<void>;
15
+ /**
16
+ * Disconnect from the transport
17
+ */
18
+ disconnect(): Promise<void>;
19
+ /**
20
+ * Send a message through the transport
21
+ */
22
+ send(message: NostrWSMessage): Promise<void>;
23
+ /**
24
+ * Subscribe to events
25
+ */
26
+ subscribe(filter: NostrEvent): Promise<void>;
27
+ /**
28
+ * Unsubscribe from events
29
+ */
30
+ unsubscribe(subscriptionId: string): Promise<void>;
31
+ /**
32
+ * Check if transport is connected
33
+ */
34
+ isConnected(): boolean;
35
+ /**
36
+ * Get transport metrics
37
+ */
38
+ getMetrics(): TransportMetrics;
39
+ }
40
+ /**
41
+ * Transport metrics
42
+ */
43
+ export interface TransportMetrics {
44
+ /**
45
+ * Total number of messages sent
46
+ */
47
+ messagesSent: number;
48
+ /**
49
+ * Total number of messages received
50
+ */
51
+ messagesReceived: number;
52
+ /**
53
+ * Total number of bytes sent
54
+ */
55
+ bytesSent: number;
56
+ /**
57
+ * Total number of bytes received
58
+ */
59
+ bytesReceived: number;
60
+ /**
61
+ * Average message latency in milliseconds
62
+ */
63
+ averageLatency: number;
64
+ /**
65
+ * Number of active subscriptions
66
+ */
67
+ activeSubscriptions: number;
68
+ /**
69
+ * Connection uptime in milliseconds
70
+ */
71
+ uptime: number;
72
+ /**
73
+ * Number of connection attempts
74
+ */
75
+ connectionAttempts: number;
76
+ /**
77
+ * Number of successful connections
78
+ */
79
+ successfulConnections: number;
80
+ /**
81
+ * Number of failed connections
82
+ */
83
+ failedConnections: number;
84
+ /**
85
+ * Transport-specific metrics
86
+ */
87
+ [key: string]: number | string | boolean | undefined;
88
+ }
89
+ /**
90
+ * Transport factory interface
91
+ */
92
+ export interface TransportFactory {
93
+ /**
94
+ * Create a new transport instance
95
+ */
96
+ create(options: unknown): Transport;
97
+ }
98
+ //# sourceMappingURL=transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/types/transport.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzB;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B;;OAEG;IACH,IAAI,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7C;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7C;;OAEG;IACH,WAAW,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnD;;OAEG;IACH,WAAW,IAAI,OAAO,CAAC;IAEvB;;OAEG;IACH,UAAU,IAAI,gBAAgB,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,mBAAmB,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,kBAAkB,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAE9B;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;CACtD;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;CACrC"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /**
3
+ * @file Transport type definitions
4
+ * @module types/transport
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ //# sourceMappingURL=transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/types/transport.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * @file Validation type definitions
3
+ * @module types/validation
4
+ */
5
+ import { NostrEvent } from './events';
6
+ import { NostrWSMessage } from './messages';
7
+ /**
8
+ * Validation result interface
9
+ */
10
+ export interface NostrWSValidationResult {
11
+ /**
12
+ * Whether the validation passed
13
+ */
14
+ isValid: boolean;
15
+ /**
16
+ * Error message if validation failed
17
+ */
18
+ error?: string;
19
+ }
20
+ /**
21
+ * Event validator interface
22
+ */
23
+ export interface NostrEventValidator {
24
+ /**
25
+ * Validate a Nostr event
26
+ */
27
+ validateEvent(event: NostrEvent): NostrWSValidationResult;
28
+ }
29
+ /**
30
+ * Message validator interface
31
+ */
32
+ export interface NostrMessageValidator {
33
+ /**
34
+ * Validate a WebSocket message
35
+ */
36
+ validateMessage(message: NostrWSMessage): NostrWSValidationResult;
37
+ }
38
+ /**
39
+ * Validator factory interface
40
+ */
41
+ export interface ValidatorFactory {
42
+ /**
43
+ * Create an event validator
44
+ */
45
+ createEventValidator(): NostrEventValidator;
46
+ /**
47
+ * Create a message validator
48
+ */
49
+ createMessageValidator(): NostrMessageValidator;
50
+ }
51
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/types/validation.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,uBAAuB,CAAC;CAC3D;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,cAAc,GAAG,uBAAuB,CAAC;CACnE;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,oBAAoB,IAAI,mBAAmB,CAAC;IAE5C;;OAEG;IACH,sBAAsB,IAAI,qBAAqB,CAAC;CACjD"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /**
3
+ * @file Validation type definitions
4
+ * @module types/validation
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/types/validation.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
@@ -0,0 +1,250 @@
1
+ /**
2
+ * @file WebSocket type definitions
3
+ * @module types/websocket
4
+ */
5
+ import { WebSocket } from 'ws';
6
+ import { MessageType, NostrWSMessage } from './messages';
7
+ import { MessagePriority } from './priority';
8
+ import { RateLimitConfig } from '../utils/rate-limiter';
9
+ import { Logger } from 'pino';
10
+ /**
11
+ * Extended WebSocket interface with additional properties
12
+ * @interface ExtendedWebSocket
13
+ */
14
+ export interface ExtendedWebSocket extends WebSocket {
15
+ /**
16
+ * Whether the WebSocket connection is alive
17
+ */
18
+ isAlive?: boolean;
19
+ /**
20
+ * Set of subscription channels
21
+ */
22
+ subscriptions?: Set<string>;
23
+ /**
24
+ * Unique client identifier
25
+ */
26
+ clientId?: string;
27
+ /**
28
+ * Queue of messages to be sent
29
+ */
30
+ messageQueue?: NostrWSMessage[];
31
+ /**
32
+ * Timestamp of the last ping message
33
+ */
34
+ lastPing?: number;
35
+ /**
36
+ * Timestamp of the last pong message
37
+ */
38
+ lastPong?: number;
39
+ }
40
+ /**
41
+ * WebSocket client configuration options
42
+ */
43
+ export interface NostrWSClientOptions {
44
+ /**
45
+ * Logger instance
46
+ */
47
+ logger?: Logger;
48
+ /**
49
+ * Connection timeout in milliseconds
50
+ */
51
+ connectionTimeout?: number;
52
+ /**
53
+ * Number of retry attempts for reconnection
54
+ */
55
+ retryAttempts?: number;
56
+ /**
57
+ * Delay between retry attempts in milliseconds
58
+ */
59
+ retryDelay?: number;
60
+ /**
61
+ * Maximum queue size
62
+ */
63
+ queueSize?: number;
64
+ /**
65
+ * Maximum number of retries for sending messages
66
+ */
67
+ maxRetries?: number;
68
+ /**
69
+ * Message handler callback
70
+ */
71
+ onMessage?: (message: string) => void;
72
+ /**
73
+ * Error handler callback
74
+ */
75
+ onError?: (error: Error) => void;
76
+ }
77
+ /**
78
+ * WebSocket client event handlers
79
+ */
80
+ export interface NostrWSEventHandlers {
81
+ /**
82
+ * Message handler callback
83
+ */
84
+ onMessage?: (message: string) => void;
85
+ /**
86
+ * Error handler callback
87
+ */
88
+ onError?: (error: Error) => void;
89
+ }
90
+ /**
91
+ * Queue configuration options
92
+ */
93
+ export interface QueueOptions {
94
+ /**
95
+ * Maximum size of the queue
96
+ */
97
+ maxSize?: number;
98
+ /**
99
+ * Maximum number of retries for failed messages
100
+ */
101
+ maxRetries?: number;
102
+ /**
103
+ * Delay between retries in milliseconds
104
+ */
105
+ retryDelay?: number;
106
+ /**
107
+ * Timeout for stale messages in milliseconds
108
+ */
109
+ staleTimeout?: number;
110
+ }
111
+ /**
112
+ * Message queue item
113
+ */
114
+ export interface QueueItem {
115
+ /**
116
+ * Message to be sent
117
+ */
118
+ message: NostrWSMessage;
119
+ /**
120
+ * Message priority
121
+ */
122
+ priority: MessagePriority;
123
+ /**
124
+ * Timestamp when the message was queued
125
+ */
126
+ queuedAt: number;
127
+ /**
128
+ * Number of retries for the message
129
+ */
130
+ retryCount?: number;
131
+ }
132
+ /**
133
+ * State of the NostrWSClient connection
134
+ * @interface NostrWSConnectionState
135
+ */
136
+ export interface NostrWSConnectionState {
137
+ /**
138
+ * Whether the client is currently connected
139
+ */
140
+ isConnected: boolean;
141
+ /**
142
+ * Number of reconnection attempts made
143
+ */
144
+ reconnectAttempts: number;
145
+ /**
146
+ * Last error encountered
147
+ */
148
+ lastError?: string;
149
+ }
150
+ /**
151
+ * Server configuration options
152
+ * @interface NostrWSServerOptions
153
+ */
154
+ export interface NostrWSServerOptions {
155
+ /**
156
+ * Port to listen on
157
+ */
158
+ port: number;
159
+ /**
160
+ * Host to bind to
161
+ */
162
+ host?: string;
163
+ /**
164
+ * Path for the WebSocket endpoint
165
+ */
166
+ path?: string;
167
+ /**
168
+ * Maximum payload size in bytes
169
+ */
170
+ maxPayload?: number;
171
+ /**
172
+ * Maximum number of concurrent connections
173
+ */
174
+ maxConnections?: number;
175
+ /**
176
+ * Ping interval in milliseconds
177
+ */
178
+ pingInterval?: number;
179
+ /**
180
+ * Rate limiting configuration
181
+ */
182
+ rateLimits?: RateLimitConfig;
183
+ /**
184
+ * Logger instance
185
+ */
186
+ logger?: Logger;
187
+ /**
188
+ * Message handler callback
189
+ */
190
+ onMessage?: (message: NostrWSMessage, socket: NostrWSServerSocket) => void;
191
+ /**
192
+ * Error handler callback
193
+ */
194
+ onError?: (error: Error, socket: NostrWSServerSocket) => void;
195
+ /**
196
+ * Close handler
197
+ */
198
+ onClose?: (socket: NostrWSServerSocket) => void;
199
+ /**
200
+ * Connection handler
201
+ */
202
+ onConnection?: (socket: NostrWSServerSocket) => Promise<void>;
203
+ }
204
+ /**
205
+ * Server message structure
206
+ * @interface NostrWSServerMessage
207
+ */
208
+ export type NostrWSServerMessage = NostrWSMessage & {
209
+ /**
210
+ * Unique client identifier
211
+ */
212
+ clientId?: string;
213
+ };
214
+ /**
215
+ * Extended WebSocket interface for Nostr server
216
+ * @interface NostrWSServerSocket
217
+ */
218
+ export interface NostrWSServerSocket extends WebSocket {
219
+ /**
220
+ * Unique client identifier
221
+ */
222
+ clientId: string;
223
+ /**
224
+ * Set of subscription channels
225
+ */
226
+ subscriptions: Set<string>;
227
+ /**
228
+ * Timestamp of the last ping message
229
+ */
230
+ lastPing?: number;
231
+ /**
232
+ * Whether the WebSocket connection is alive
233
+ */
234
+ isAlive: boolean;
235
+ }
236
+ /**
237
+ * Nostr WebSocket server message with client info
238
+ * @interface NostrWSServerClientMessage
239
+ */
240
+ export type NostrWSServerClientMessage = [MessageType, ...unknown[]] & {
241
+ /**
242
+ * Unique client identifier
243
+ */
244
+ clientId?: string;
245
+ /**
246
+ * Timestamp of the message
247
+ */
248
+ timestamp?: number;
249
+ };
250
+ //# sourceMappingURL=websocket.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../../../src/types/websocket.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9B;;;GAGG;AACH,MAAM,WAAW,iBAAkB,SAAQ,SAAS;IAClD;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAE5B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,YAAY,CAAC,EAAE,cAAc,EAAE,CAAC;IAEhC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAEtC;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAEtC;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;OAEG;IACH,OAAO,EAAE,cAAc,CAAC;IAExB;;OAEG;IACH,QAAQ,EAAE,eAAe,CAAC;IAE1B;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,WAAW,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,UAAU,CAAC,EAAE,eAAe,CAAC;IAE7B;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAE3E;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAE9D;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAEhD;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/D;AAED;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG,cAAc,GAAG;IAClD;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAA;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAoB,SAAQ,SAAS;IACpD;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAE3B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,MAAM,0BAA0B,GAAG,CAAC,WAAW,EAAE,GAAG,OAAO,EAAE,CAAC,GAAG;IACrE;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAA"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /**
3
+ * @file WebSocket type definitions
4
+ * @module types/websocket
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ //# sourceMappingURL=websocket.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../../src/types/websocket.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @file HTTP utility functions
3
+ * @module utils/http
4
+ */
5
+ /**
6
+ * Fetches JSON data from a URL
7
+ * @param url URL to fetch from
8
+ * @returns Parsed JSON data
9
+ */
10
+ export declare function fetchJson<T>(url: string): Promise<T>;
11
+ //# sourceMappingURL=http.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/utils/http.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAW1D"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ /**
3
+ * @file HTTP utility functions
4
+ * @module utils/http
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.fetchJson = fetchJson;
8
+ const logger_1 = require("./logger");
9
+ const logger = (0, logger_1.getLogger)('http');
10
+ /**
11
+ * Fetches JSON data from a URL
12
+ * @param url URL to fetch from
13
+ * @returns Parsed JSON data
14
+ */
15
+ async function fetchJson(url) {
16
+ try {
17
+ const response = await fetch(url);
18
+ if (!response.ok) {
19
+ throw new Error(`HTTP error! status: ${response.status}`);
20
+ }
21
+ return await response.json();
22
+ }
23
+ catch (error) {
24
+ logger.error({ error, url }, 'Failed to fetch JSON');
25
+ throw error;
26
+ }
27
+ }
28
+ //# sourceMappingURL=http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/utils/http.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAWH,8BAWC;AApBD,qCAAqC;AAErC,MAAM,MAAM,GAAG,IAAA,kBAAS,EAAC,MAAM,CAAC,CAAC;AAEjC;;;;GAIG;AACI,KAAK,UAAU,SAAS,CAAI,GAAW;IAC5C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5D,CAAC;QACD,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAO,CAAC;IACpC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,sBAAsB,CAAC,CAAC;QACrD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * @file Logger utility
3
+ * @module utils/logger
4
+ */
5
+ import { Logger } from 'pino';
6
+ /**
7
+ * Create a new logger instance
8
+ * @param name Name of the logger
9
+ * @returns Logger instance
10
+ */
11
+ export declare function createLogger(name: string): Logger;
12
+ /**
13
+ * Get a logger instance for a specific component
14
+ * @param component Component name for the logger
15
+ * @returns Logger instance
16
+ */
17
+ export declare function getLogger(component: string): Logger;
18
+ /**
19
+ * Get a child logger instance
20
+ * @param parent Parent logger instance
21
+ * @param bindings Additional bindings for the child logger
22
+ * @returns Child logger instance
23
+ */
24
+ export declare function getChildLogger(parent: Logger, bindings: object): Logger;
25
+ export { Logger };
26
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAa,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAEpC;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMjD;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEvE;AAED,OAAO,EAAE,MAAM,EAAE,CAAC"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ /**
3
+ * @file Logger utility
4
+ * @module utils/logger
5
+ */
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.createLogger = createLogger;
11
+ exports.getLogger = getLogger;
12
+ exports.getChildLogger = getChildLogger;
13
+ const pino_1 = __importDefault(require("pino"));
14
+ /**
15
+ * Create a new logger instance
16
+ * @param name Name of the logger
17
+ * @returns Logger instance
18
+ */
19
+ function createLogger(name) {
20
+ return (0, pino_1.default)({
21
+ name,
22
+ level: process.env.LOG_LEVEL || 'info',
23
+ timestamp: pino_1.default.stdTimeFunctions.isoTime
24
+ });
25
+ }
26
+ /**
27
+ * Get a logger instance for a specific component
28
+ * @param component Component name for the logger
29
+ * @returns Logger instance
30
+ */
31
+ function getLogger(component) {
32
+ return createLogger(component);
33
+ }
34
+ /**
35
+ * Get a child logger instance
36
+ * @param parent Parent logger instance
37
+ * @param bindings Additional bindings for the child logger
38
+ * @returns Child logger instance
39
+ */
40
+ function getChildLogger(parent, bindings) {
41
+ return parent.child(bindings);
42
+ }
43
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/utils/logger.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;AASH,oCAMC;AAOD,8BAEC;AAQD,wCAEC;AAhCD,gDAAoC;AAEpC;;;;GAIG;AACH,SAAgB,YAAY,CAAC,IAAY;IACvC,OAAO,IAAA,cAAI,EAAC;QACV,IAAI;QACJ,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,MAAM;QACtC,SAAS,EAAE,cAAI,CAAC,gBAAgB,CAAC,OAAO;KACzC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,SAAgB,SAAS,CAAC,SAAiB;IACzC,OAAO,YAAY,CAAC,SAAS,CAAC,CAAC;AACjC,CAAC;AAED;;;;;GAKG;AACH,SAAgB,cAAc,CAAC,MAAc,EAAE,QAAgB;IAC7D,OAAO,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAChC,CAAC"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * @file Metrics tracking for Nostr WebSocket connections
3
+ * @module metrics
4
+ */
5
+ import { EventEmitter } from 'events';
6
+ export interface RelayMetrics {
7
+ totalConnections: number;
8
+ activeConnections: number;
9
+ connectionErrors: number;
10
+ messagesReceived: number;
11
+ messagesSent: number;
12
+ bytesReceived: number;
13
+ bytesSent: number;
14
+ averageLatency: number;
15
+ maxLatency: number;
16
+ minLatency: number;
17
+ totalErrors: number;
18
+ lastError?: string;
19
+ eventsReceived: number;
20
+ eventsSent: number;
21
+ subscriptions: number;
22
+ uptime: number;
23
+ reliability: number;
24
+ lastSeen: number;
25
+ score: number;
26
+ }
27
+ export declare class RelayMetricsTracker extends EventEmitter {
28
+ private metrics;
29
+ private startTime;
30
+ constructor();
31
+ /**
32
+ * Get metrics for a specific relay
33
+ */
34
+ getRelayMetrics(relayUrl: string): RelayMetrics;
35
+ /**
36
+ * Get metrics for all relays
37
+ */
38
+ getAllMetrics(): Map<string, RelayMetrics>;
39
+ /**
40
+ * Initialize metrics for a new relay
41
+ */
42
+ private initializeMetrics;
43
+ /**
44
+ * Update connection metrics
45
+ */
46
+ trackConnection(relayUrl: string, connected: boolean): void;
47
+ /**
48
+ * Track message metrics
49
+ */
50
+ trackMessage(relayUrl: string, sent: boolean, bytes: number): void;
51
+ /**
52
+ * Track latency
53
+ */
54
+ trackLatency(relayUrl: string, latencyMs: number): void;
55
+ /**
56
+ * Track errors
57
+ */
58
+ trackError(relayUrl: string, error: Error): void;
59
+ /**
60
+ * Track protocol-specific events
61
+ */
62
+ trackProtocolEvent(relayUrl: string, type: 'event' | 'subscription', sent: boolean): void;
63
+ /**
64
+ * Calculate relay score based on metrics
65
+ */
66
+ private calculateScore;
67
+ /**
68
+ * Update scores for all relays
69
+ */
70
+ private updateScores;
71
+ /**
72
+ * Get high-value relays (score > threshold)
73
+ */
74
+ getHighValueRelays(threshold?: number): string[];
75
+ /**
76
+ * Export metrics in Prometheus format
77
+ */
78
+ getPrometheusMetrics(): string;
79
+ }
80
+ export declare const metricsTracker: RelayMetricsTracker;
81
+ //# sourceMappingURL=metrics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../../src/utils/metrics.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAKtC,MAAM,WAAW,YAAY;IAE3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IAGzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAGlB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IAGnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IAGtB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,mBAAoB,SAAQ,YAAY;IACnD,OAAO,CAAC,OAAO,CAAwC;IACvD,OAAO,CAAC,SAAS,CAAsB;;IAQvC;;OAEG;IACI,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY;IAOtD;;OAEG;IACI,aAAa,IAAI,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC;IAIjD;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAuBzB;;OAEG;IACI,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO;IAY3D;;OAEG;IACI,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM;IAalE;;OAEG;IACI,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IASvD;;OAEG;IACI,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;IAQhD;;OAEG;IACI,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,cAAc,EAAE,IAAI,EAAE,OAAO;IAWzF;;OAEG;IACH,OAAO,CAAC,cAAc;IAoBtB;;OAEG;IACH,OAAO,CAAC,YAAY;IAmBpB;;OAEG;IACI,kBAAkB,CAAC,SAAS,GAAE,MAAW,GAAG,MAAM,EAAE;IAM3D;;OAEG;IACI,oBAAoB,IAAI,MAAM;CA2CtC;AAGD,eAAO,MAAM,cAAc,qBAA4B,CAAC"}