nostr-websocket-utils 0.3.0 → 0.3.2

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 (411) hide show
  1. package/README.md +8 -7
  2. package/dist/__mocks__/extendedWsMock.d.ts +31 -14
  3. package/dist/__mocks__/extendedWsMock.d.ts.map +1 -0
  4. package/dist/__mocks__/extendedWsMock.js +7 -6
  5. package/dist/__mocks__/extendedWsMock.js.map +1 -0
  6. package/dist/__mocks__/mockLogger.d.ts +8 -7
  7. package/dist/__mocks__/mockLogger.d.ts.map +1 -0
  8. package/dist/__mocks__/mockLogger.js +1 -0
  9. package/dist/__mocks__/mockLogger.js.map +1 -0
  10. package/dist/__mocks__/mockserver.d.ts +7 -11
  11. package/dist/__mocks__/mockserver.d.ts.map +1 -0
  12. package/dist/__mocks__/mockserver.js +1 -0
  13. package/dist/__mocks__/mockserver.js.map +1 -0
  14. package/dist/__mocks__/wsMock.d.ts +1 -2
  15. package/dist/__mocks__/wsMock.d.ts.map +1 -0
  16. package/dist/__mocks__/wsMock.js +1 -0
  17. package/dist/__mocks__/wsMock.js.map +1 -0
  18. package/dist/cjs/__mocks__/extendedWsMock.d.ts +52 -0
  19. package/dist/cjs/__mocks__/extendedWsMock.d.ts.map +1 -0
  20. package/dist/cjs/__mocks__/extendedWsMock.js +161 -0
  21. package/dist/cjs/__mocks__/extendedWsMock.js.map +1 -0
  22. package/dist/cjs/__mocks__/mockLogger.d.ts +42 -0
  23. package/dist/cjs/__mocks__/mockLogger.d.ts.map +1 -0
  24. package/dist/cjs/__mocks__/mockLogger.js +53 -0
  25. package/dist/cjs/__mocks__/mockLogger.js.map +1 -0
  26. package/dist/cjs/__mocks__/mockserver.d.ts +27 -0
  27. package/dist/cjs/__mocks__/mockserver.d.ts.map +1 -0
  28. package/dist/cjs/__mocks__/mockserver.js +44 -0
  29. package/dist/cjs/__mocks__/mockserver.js.map +1 -0
  30. package/dist/cjs/__mocks__/wsMock.d.ts +25 -0
  31. package/dist/cjs/__mocks__/wsMock.d.ts.map +1 -0
  32. package/dist/cjs/__mocks__/wsMock.js +123 -0
  33. package/dist/cjs/__mocks__/wsMock.js.map +1 -0
  34. package/dist/cjs/core/client.d.ts +35 -0
  35. package/dist/cjs/core/client.d.ts.map +1 -0
  36. package/dist/cjs/core/client.js +161 -0
  37. package/dist/cjs/core/client.js.map +1 -0
  38. package/dist/{nostr-server.d.ts → cjs/core/nostr-server.d.ts} +3 -6
  39. package/dist/cjs/core/nostr-server.d.ts.map +1 -0
  40. package/dist/cjs/core/nostr-server.js +101 -0
  41. package/dist/cjs/core/nostr-server.js.map +1 -0
  42. package/dist/cjs/core/queue.d.ts +38 -0
  43. package/dist/cjs/core/queue.d.ts.map +1 -0
  44. package/dist/cjs/core/queue.js +105 -0
  45. package/dist/cjs/core/queue.js.map +1 -0
  46. package/dist/cjs/core/server.d.ts +29 -0
  47. package/dist/cjs/core/server.d.ts.map +1 -0
  48. package/dist/cjs/core/server.js +134 -0
  49. package/dist/cjs/core/server.js.map +1 -0
  50. package/dist/cjs/crypto/bech32.d.ts +27 -0
  51. package/dist/cjs/crypto/bech32.d.ts.map +1 -0
  52. package/dist/cjs/crypto/bech32.js +170 -0
  53. package/dist/cjs/crypto/bech32.js.map +1 -0
  54. package/dist/cjs/crypto/handlers.d.ts +19 -0
  55. package/dist/cjs/crypto/handlers.d.ts.map +1 -0
  56. package/dist/cjs/crypto/handlers.js +65 -0
  57. package/dist/cjs/crypto/handlers.js.map +1 -0
  58. package/dist/cjs/crypto/index.d.ts +6 -0
  59. package/dist/cjs/crypto/index.d.ts.map +1 -0
  60. package/dist/cjs/crypto/index.js +22 -0
  61. package/dist/cjs/crypto/index.js.map +1 -0
  62. package/dist/cjs/endpoints/metrics.d.ts +30 -0
  63. package/dist/cjs/endpoints/metrics.d.ts.map +1 -0
  64. package/dist/cjs/endpoints/metrics.js +106 -0
  65. package/dist/cjs/endpoints/metrics.js.map +1 -0
  66. package/dist/cjs/index.d.ts +13 -0
  67. package/dist/cjs/index.d.ts.map +1 -0
  68. package/dist/cjs/index.js +40 -0
  69. package/dist/cjs/index.js.map +1 -0
  70. package/dist/cjs/nips/index.d.ts +20 -0
  71. package/dist/cjs/nips/index.d.ts.map +1 -0
  72. package/dist/cjs/nips/index.js +51 -0
  73. package/dist/cjs/nips/index.js.map +1 -0
  74. package/dist/cjs/nips/nip-01.d.ts +35 -0
  75. package/dist/cjs/nips/nip-01.d.ts.map +1 -0
  76. package/dist/cjs/nips/nip-01.js +142 -0
  77. package/dist/cjs/nips/nip-01.js.map +1 -0
  78. package/dist/cjs/nips/nip-02.d.ts +83 -0
  79. package/dist/cjs/nips/nip-02.d.ts.map +1 -0
  80. package/dist/cjs/nips/nip-02.js +119 -0
  81. package/dist/cjs/nips/nip-02.js.map +1 -0
  82. package/dist/cjs/nips/nip-04.d.ts +37 -0
  83. package/dist/cjs/nips/nip-04.d.ts.map +1 -0
  84. package/dist/cjs/nips/nip-04.js +104 -0
  85. package/dist/cjs/nips/nip-04.js.map +1 -0
  86. package/dist/cjs/nips/nip-05.d.ts +88 -0
  87. package/dist/cjs/nips/nip-05.d.ts.map +1 -0
  88. package/dist/cjs/nips/nip-05.js +158 -0
  89. package/dist/cjs/nips/nip-05.js.map +1 -0
  90. package/dist/cjs/nips/nip-09.d.ts +93 -0
  91. package/dist/cjs/nips/nip-09.d.ts.map +1 -0
  92. package/dist/cjs/nips/nip-09.js +180 -0
  93. package/dist/cjs/nips/nip-09.js.map +1 -0
  94. package/dist/cjs/nips/nip-11.d.ts +65 -0
  95. package/dist/cjs/nips/nip-11.d.ts.map +1 -0
  96. package/dist/cjs/nips/nip-11.js +161 -0
  97. package/dist/cjs/nips/nip-11.js.map +1 -0
  98. package/dist/cjs/nips/nip-13.d.ts +74 -0
  99. package/dist/cjs/nips/nip-13.d.ts.map +1 -0
  100. package/dist/cjs/nips/nip-13.js +136 -0
  101. package/dist/cjs/nips/nip-13.js.map +1 -0
  102. package/dist/cjs/nips/nip-15.d.ts +84 -0
  103. package/dist/cjs/nips/nip-15.d.ts.map +1 -0
  104. package/dist/cjs/nips/nip-15.js +102 -0
  105. package/dist/cjs/nips/nip-15.js.map +1 -0
  106. package/dist/cjs/nips/nip-16.d.ts +89 -0
  107. package/dist/cjs/nips/nip-16.d.ts.map +1 -0
  108. package/dist/cjs/nips/nip-16.js +157 -0
  109. package/dist/cjs/nips/nip-16.js.map +1 -0
  110. package/dist/cjs/nips/nip-19.d.ts +29 -0
  111. package/dist/cjs/nips/nip-19.d.ts.map +1 -0
  112. package/dist/cjs/nips/nip-19.js +112 -0
  113. package/dist/cjs/nips/nip-19.js.map +1 -0
  114. package/dist/cjs/nips/nip-20.d.ts +60 -0
  115. package/dist/cjs/nips/nip-20.d.ts.map +1 -0
  116. package/dist/cjs/nips/nip-20.js +102 -0
  117. package/dist/cjs/nips/nip-20.js.map +1 -0
  118. package/dist/cjs/nips/nip-22.d.ts +90 -0
  119. package/dist/cjs/nips/nip-22.d.ts.map +1 -0
  120. package/dist/cjs/nips/nip-22.js +149 -0
  121. package/dist/cjs/nips/nip-22.js.map +1 -0
  122. package/dist/cjs/nips/nip-26.d.ts +53 -0
  123. package/dist/cjs/nips/nip-26.d.ts.map +1 -0
  124. package/dist/cjs/nips/nip-26.js +147 -0
  125. package/dist/cjs/nips/nip-26.js.map +1 -0
  126. package/dist/cjs/nips/nip-28.d.ts +104 -0
  127. package/dist/cjs/nips/nip-28.d.ts.map +1 -0
  128. package/dist/cjs/nips/nip-28.js +164 -0
  129. package/dist/cjs/nips/nip-28.js.map +1 -0
  130. package/dist/cjs/nips/nip-33.d.ts +95 -0
  131. package/dist/cjs/nips/nip-33.d.ts.map +1 -0
  132. package/dist/cjs/nips/nip-33.js +135 -0
  133. package/dist/cjs/nips/nip-33.js.map +1 -0
  134. package/dist/cjs/transport/base.d.ts +54 -0
  135. package/dist/cjs/transport/base.d.ts.map +1 -0
  136. package/dist/cjs/transport/base.js +109 -0
  137. package/dist/cjs/transport/base.js.map +1 -0
  138. package/dist/cjs/transport/websocket.d.ts +24 -0
  139. package/dist/cjs/transport/websocket.d.ts.map +1 -0
  140. package/dist/cjs/transport/websocket.js +136 -0
  141. package/dist/cjs/transport/websocket.js.map +1 -0
  142. package/dist/cjs/types/events.d.ts +74 -0
  143. package/dist/cjs/types/events.d.ts.map +1 -0
  144. package/dist/cjs/types/events.js +7 -0
  145. package/dist/cjs/types/events.js.map +1 -0
  146. package/dist/cjs/types/filters.d.ts +20 -0
  147. package/dist/cjs/types/filters.d.ts.map +1 -0
  148. package/dist/cjs/types/filters.js +7 -0
  149. package/dist/cjs/types/filters.js.map +1 -0
  150. package/dist/cjs/types/handlers.d.ts +81 -0
  151. package/dist/cjs/types/handlers.d.ts.map +1 -0
  152. package/dist/cjs/types/handlers.js +7 -0
  153. package/dist/cjs/types/handlers.js.map +1 -0
  154. package/dist/cjs/types/index.d.ts +144 -0
  155. package/dist/cjs/types/index.d.ts.map +1 -0
  156. package/dist/cjs/types/index.js +37 -0
  157. package/dist/cjs/types/index.js.map +1 -0
  158. package/dist/cjs/types/logger.d.ts +41 -0
  159. package/dist/cjs/types/logger.d.ts.map +1 -0
  160. package/dist/cjs/types/logger.js +7 -0
  161. package/dist/cjs/types/logger.js.map +1 -0
  162. package/dist/cjs/types/messages.d.ts +133 -0
  163. package/dist/cjs/types/messages.d.ts.map +1 -0
  164. package/dist/cjs/types/messages.js +46 -0
  165. package/dist/cjs/types/messages.js.map +1 -0
  166. package/dist/cjs/types/nostr.d.ts +134 -0
  167. package/dist/cjs/types/nostr.d.ts.map +1 -0
  168. package/dist/cjs/types/nostr.js +7 -0
  169. package/dist/cjs/types/nostr.js.map +1 -0
  170. package/dist/cjs/types/options.d.ts +155 -0
  171. package/dist/cjs/types/options.d.ts.map +1 -0
  172. package/dist/cjs/types/options.js +7 -0
  173. package/dist/cjs/types/options.js.map +1 -0
  174. package/dist/cjs/types/priority.d.ts +13 -0
  175. package/dist/cjs/types/priority.d.ts.map +1 -0
  176. package/dist/cjs/types/priority.js +17 -0
  177. package/dist/cjs/types/priority.js.map +1 -0
  178. package/dist/cjs/types/relays.d.ts +27 -0
  179. package/dist/cjs/types/relays.d.ts.map +1 -0
  180. package/dist/cjs/types/relays.js +7 -0
  181. package/dist/cjs/types/relays.js.map +1 -0
  182. package/dist/cjs/types/scoring.d.ts +59 -0
  183. package/dist/cjs/types/scoring.d.ts.map +1 -0
  184. package/dist/cjs/types/scoring.js +34 -0
  185. package/dist/cjs/types/scoring.js.map +1 -0
  186. package/dist/cjs/types/socket.d.ts +98 -0
  187. package/dist/cjs/types/socket.d.ts.map +1 -0
  188. package/dist/cjs/types/socket.js +7 -0
  189. package/dist/cjs/types/socket.js.map +1 -0
  190. package/dist/cjs/types/transport.d.ts +98 -0
  191. package/dist/cjs/types/transport.d.ts.map +1 -0
  192. package/dist/cjs/types/transport.js +7 -0
  193. package/dist/cjs/types/transport.js.map +1 -0
  194. package/dist/cjs/types/validation.d.ts +51 -0
  195. package/dist/cjs/types/validation.d.ts.map +1 -0
  196. package/dist/cjs/types/validation.js +7 -0
  197. package/dist/cjs/types/validation.js.map +1 -0
  198. package/dist/cjs/types/websocket.d.ts +250 -0
  199. package/dist/cjs/types/websocket.d.ts.map +1 -0
  200. package/dist/cjs/types/websocket.js +7 -0
  201. package/dist/cjs/types/websocket.js.map +1 -0
  202. package/dist/cjs/utils/http.d.ts +11 -0
  203. package/dist/cjs/utils/http.d.ts.map +1 -0
  204. package/dist/cjs/utils/http.js +28 -0
  205. package/dist/cjs/utils/http.js.map +1 -0
  206. package/dist/cjs/utils/logger.d.ts +26 -0
  207. package/dist/cjs/utils/logger.d.ts.map +1 -0
  208. package/dist/cjs/utils/logger.js +43 -0
  209. package/dist/cjs/utils/logger.js.map +1 -0
  210. package/dist/cjs/utils/metrics.d.ts +81 -0
  211. package/dist/cjs/utils/metrics.d.ts.map +1 -0
  212. package/dist/cjs/utils/metrics.js +211 -0
  213. package/dist/cjs/utils/metrics.js.map +1 -0
  214. package/dist/cjs/utils/rate-limiter.d.ts +86 -0
  215. package/dist/cjs/utils/rate-limiter.d.ts.map +1 -0
  216. package/dist/cjs/utils/rate-limiter.js +183 -0
  217. package/dist/cjs/utils/rate-limiter.js.map +1 -0
  218. package/dist/core/client.d.ts +21 -80
  219. package/dist/core/client.d.ts.map +1 -0
  220. package/dist/core/client.js +110 -316
  221. package/dist/core/client.js.map +1 -0
  222. package/dist/core/nostr-server.d.ts +1 -0
  223. package/dist/core/nostr-server.d.ts.map +1 -0
  224. package/dist/core/nostr-server.js +1 -0
  225. package/dist/core/nostr-server.js.map +1 -0
  226. package/dist/core/queue.d.ts +22 -45
  227. package/dist/core/queue.d.ts.map +1 -0
  228. package/dist/core/queue.js +72 -79
  229. package/dist/core/queue.js.map +1 -0
  230. package/dist/core/server.d.ts +2 -0
  231. package/dist/core/server.d.ts.map +1 -0
  232. package/dist/core/server.js +29 -13
  233. package/dist/core/server.js.map +1 -0
  234. package/dist/crypto/bech32.d.ts +1 -0
  235. package/dist/crypto/bech32.d.ts.map +1 -0
  236. package/dist/crypto/bech32.js +1 -0
  237. package/dist/crypto/bech32.js.map +1 -0
  238. package/dist/crypto/handlers.d.ts +8 -0
  239. package/dist/crypto/handlers.d.ts.map +1 -0
  240. package/dist/crypto/handlers.js +27 -2
  241. package/dist/crypto/handlers.js.map +1 -0
  242. package/dist/crypto/index.d.ts +1 -0
  243. package/dist/crypto/index.d.ts.map +1 -0
  244. package/dist/crypto/index.js +1 -0
  245. package/dist/crypto/index.js.map +1 -0
  246. package/dist/endpoints/metrics.d.ts +1 -0
  247. package/dist/endpoints/metrics.d.ts.map +1 -0
  248. package/dist/endpoints/metrics.js +1 -0
  249. package/dist/endpoints/metrics.js.map +1 -0
  250. package/dist/index.d.ts +1 -0
  251. package/dist/index.d.ts.map +1 -0
  252. package/dist/index.js +1 -0
  253. package/dist/index.js.map +1 -0
  254. package/dist/nips/index.d.ts +1 -0
  255. package/dist/nips/index.d.ts.map +1 -0
  256. package/dist/nips/index.js +1 -0
  257. package/dist/nips/index.js.map +1 -0
  258. package/dist/nips/nip-01.d.ts +4 -3
  259. package/dist/nips/nip-01.d.ts.map +1 -0
  260. package/dist/nips/nip-01.js +18 -29
  261. package/dist/nips/nip-01.js.map +1 -0
  262. package/dist/nips/nip-02.d.ts +2 -2
  263. package/dist/nips/nip-02.d.ts.map +1 -0
  264. package/dist/nips/nip-02.js +14 -25
  265. package/dist/nips/nip-02.js.map +1 -0
  266. package/dist/nips/nip-04.d.ts +1 -0
  267. package/dist/nips/nip-04.d.ts.map +1 -0
  268. package/dist/nips/nip-04.js +16 -23
  269. package/dist/nips/nip-04.js.map +1 -0
  270. package/dist/nips/nip-05.d.ts +4 -2
  271. package/dist/nips/nip-05.d.ts.map +1 -0
  272. package/dist/nips/nip-05.js +1 -0
  273. package/dist/nips/nip-05.js.map +1 -0
  274. package/dist/nips/nip-09.d.ts +2 -1
  275. package/dist/nips/nip-09.d.ts.map +1 -0
  276. package/dist/nips/nip-09.js +7 -25
  277. package/dist/nips/nip-09.js.map +1 -0
  278. package/dist/nips/nip-11.d.ts +1 -0
  279. package/dist/nips/nip-11.d.ts.map +1 -0
  280. package/dist/nips/nip-11.js +1 -0
  281. package/dist/nips/nip-11.js.map +1 -0
  282. package/dist/nips/nip-13.d.ts +1 -0
  283. package/dist/nips/nip-13.d.ts.map +1 -0
  284. package/dist/nips/nip-13.js +3 -2
  285. package/dist/nips/nip-13.js.map +1 -0
  286. package/dist/nips/nip-15.d.ts +1 -0
  287. package/dist/nips/nip-15.d.ts.map +1 -0
  288. package/dist/nips/nip-15.js +2 -6
  289. package/dist/nips/nip-15.js.map +1 -0
  290. package/dist/nips/nip-16.d.ts +1 -0
  291. package/dist/nips/nip-16.d.ts.map +1 -0
  292. package/dist/nips/nip-16.js +3 -2
  293. package/dist/nips/nip-16.js.map +1 -0
  294. package/dist/nips/nip-19.d.ts +1 -0
  295. package/dist/nips/nip-19.d.ts.map +1 -0
  296. package/dist/nips/nip-19.js +1 -0
  297. package/dist/nips/nip-19.js.map +1 -0
  298. package/dist/nips/nip-20.d.ts +2 -1
  299. package/dist/nips/nip-20.d.ts.map +1 -0
  300. package/dist/nips/nip-20.js +20 -20
  301. package/dist/nips/nip-20.js.map +1 -0
  302. package/dist/nips/nip-22.d.ts +1 -0
  303. package/dist/nips/nip-22.d.ts.map +1 -0
  304. package/dist/nips/nip-22.js +4 -3
  305. package/dist/nips/nip-22.js.map +1 -0
  306. package/dist/nips/nip-26.d.ts +1 -0
  307. package/dist/nips/nip-26.d.ts.map +1 -0
  308. package/dist/nips/nip-26.js +1 -0
  309. package/dist/nips/nip-26.js.map +1 -0
  310. package/dist/nips/nip-28.d.ts +1 -0
  311. package/dist/nips/nip-28.d.ts.map +1 -0
  312. package/dist/nips/nip-28.js +17 -31
  313. package/dist/nips/nip-28.js.map +1 -0
  314. package/dist/nips/nip-33.d.ts +1 -0
  315. package/dist/nips/nip-33.d.ts.map +1 -0
  316. package/dist/nips/nip-33.js +7 -12
  317. package/dist/nips/nip-33.js.map +1 -0
  318. package/dist/transport/base.d.ts +4 -4
  319. package/dist/transport/base.d.ts.map +1 -0
  320. package/dist/transport/base.js +1 -0
  321. package/dist/transport/base.js.map +1 -0
  322. package/dist/transport/websocket.d.ts +2 -0
  323. package/dist/transport/websocket.d.ts.map +1 -0
  324. package/dist/transport/websocket.js +7 -0
  325. package/dist/transport/websocket.js.map +1 -0
  326. package/dist/types/events.d.ts +12 -1
  327. package/dist/types/events.d.ts.map +1 -0
  328. package/dist/types/events.js +2 -1
  329. package/dist/types/events.js.map +1 -0
  330. package/dist/types/filters.d.ts +1 -0
  331. package/dist/types/filters.d.ts.map +1 -0
  332. package/dist/types/filters.js +1 -0
  333. package/dist/types/filters.js.map +1 -0
  334. package/dist/types/handlers.d.ts +1 -0
  335. package/dist/types/handlers.d.ts.map +1 -0
  336. package/dist/types/handlers.js +1 -0
  337. package/dist/types/handlers.js.map +1 -0
  338. package/dist/types/index.d.ts +13 -6
  339. package/dist/types/index.d.ts.map +1 -0
  340. package/dist/types/index.js +2 -3
  341. package/dist/types/index.js.map +1 -0
  342. package/dist/types/logger.d.ts +1 -0
  343. package/dist/types/logger.d.ts.map +1 -0
  344. package/dist/types/logger.js +1 -0
  345. package/dist/types/logger.js.map +1 -0
  346. package/dist/types/messages.d.ts +68 -70
  347. package/dist/types/messages.d.ts.map +1 -0
  348. package/dist/types/messages.js +28 -26
  349. package/dist/types/messages.js.map +1 -0
  350. package/dist/types/nostr.d.ts +3 -2
  351. package/dist/types/nostr.d.ts.map +1 -0
  352. package/dist/types/nostr.js +1 -0
  353. package/dist/types/nostr.js.map +1 -0
  354. package/dist/types/options.d.ts +1 -0
  355. package/dist/types/options.d.ts.map +1 -0
  356. package/dist/types/options.js +1 -0
  357. package/dist/types/options.js.map +1 -0
  358. package/dist/types/priority.d.ts +13 -0
  359. package/dist/types/priority.d.ts.map +1 -0
  360. package/dist/types/priority.js +14 -0
  361. package/dist/types/priority.js.map +1 -0
  362. package/dist/types/relays.d.ts +1 -0
  363. package/dist/types/relays.d.ts.map +1 -0
  364. package/dist/types/relays.js +1 -0
  365. package/dist/types/relays.js.map +1 -0
  366. package/dist/types/scoring.d.ts +19 -7
  367. package/dist/types/scoring.d.ts.map +1 -0
  368. package/dist/types/scoring.js +2 -1
  369. package/dist/types/scoring.js.map +1 -0
  370. package/dist/types/socket.d.ts +1 -2
  371. package/dist/types/socket.d.ts.map +1 -0
  372. package/dist/types/socket.js +1 -0
  373. package/dist/types/socket.js.map +1 -0
  374. package/dist/types/transport.d.ts +1 -0
  375. package/dist/types/transport.d.ts.map +1 -0
  376. package/dist/types/transport.js +1 -0
  377. package/dist/types/transport.js.map +1 -0
  378. package/dist/types/validation.d.ts +1 -0
  379. package/dist/types/validation.d.ts.map +1 -0
  380. package/dist/types/validation.js +1 -0
  381. package/dist/types/validation.js.map +1 -0
  382. package/dist/types/websocket.d.ts +116 -38
  383. package/dist/types/websocket.d.ts.map +1 -0
  384. package/dist/types/websocket.js +2 -1
  385. package/dist/types/websocket.js.map +1 -0
  386. package/dist/utils/http.d.ts +1 -0
  387. package/dist/utils/http.d.ts.map +1 -0
  388. package/dist/utils/http.js +1 -0
  389. package/dist/utils/http.js.map +1 -0
  390. package/dist/utils/logger.d.ts +17 -2
  391. package/dist/utils/logger.d.ts.map +1 -0
  392. package/dist/utils/logger.js +24 -10
  393. package/dist/utils/logger.js.map +1 -0
  394. package/dist/utils/metrics.d.ts +1 -1
  395. package/dist/utils/metrics.d.ts.map +1 -0
  396. package/dist/utils/metrics.js +1 -0
  397. package/dist/utils/metrics.js.map +1 -0
  398. package/dist/utils/rate-limiter.d.ts +1 -0
  399. package/dist/utils/rate-limiter.d.ts.map +1 -0
  400. package/dist/utils/rate-limiter.js +6 -4
  401. package/dist/utils/rate-limiter.js.map +1 -0
  402. package/package.json +14 -2
  403. package/dist/__mocks__/logger.d.ts +0 -9
  404. package/dist/__mocks__/logger.js +0 -6
  405. package/dist/client.d.ts +0 -129
  406. package/dist/client.js +0 -259
  407. package/dist/crypto/schnorr.d.ts +0 -16
  408. package/dist/crypto/schnorr.js +0 -51
  409. package/dist/nostr-server.js +0 -107
  410. package/dist/server.d.ts +0 -27
  411. package/dist/server.js +0 -132
@@ -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"}
@@ -3,3 +3,4 @@
3
3
  * @module types/validation
4
4
  */
5
5
  export {};
6
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/types/validation.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -1,12 +1,12 @@
1
1
  /**
2
- * @file WebSocket type definitions and extensions
2
+ * @file WebSocket type definitions
3
3
  * @module types/websocket
4
4
  */
5
- import type { WebSocket } from 'ws';
6
- import type { NostrWSMessage } from './messages';
7
- import { MessageType } from './messages';
5
+ import { WebSocket } from 'ws';
6
+ import { MessageType, NostrWSMessage } from './messages';
7
+ import { MessagePriority } from './priority';
8
8
  import { RateLimitConfig } from '../utils/rate-limiter';
9
- import type { Logger } from './logger';
9
+ import { Logger } from 'pino';
10
10
  /**
11
11
  * Extended WebSocket interface with additional properties
12
12
  * @interface ExtendedWebSocket
@@ -38,33 +38,96 @@ export interface ExtendedWebSocket extends WebSocket {
38
38
  lastPong?: number;
39
39
  }
40
40
  /**
41
- * Configuration options for the NostrWSClient
42
- * @interface NostrWSOptions
41
+ * WebSocket client configuration options
43
42
  */
44
- export interface NostrWSOptions {
43
+ export interface NostrWSClientOptions {
45
44
  /**
46
- * Interval in milliseconds between heartbeat messages
47
- * @default 30000
45
+ * Logger instance
48
46
  */
49
- heartbeatInterval?: number;
47
+ logger?: Logger;
50
48
  /**
51
- * Interval in milliseconds between reconnect attempts
52
- * @default 5000
49
+ * Connection timeout in milliseconds
53
50
  */
54
- reconnectInterval?: number;
51
+ connectionTimeout?: number;
55
52
  /**
56
- * Maximum number of reconnect attempts
57
- * @default 10
53
+ * Number of retry attempts for reconnection
58
54
  */
59
- maxReconnectAttempts?: number;
55
+ retryAttempts?: number;
60
56
  /**
61
- * Logger instance for handling log messages
57
+ * Delay between retry attempts in milliseconds
62
58
  */
63
- logger: Logger;
59
+ retryDelay?: number;
64
60
  /**
65
- * WebSocket implementation to use
61
+ * Maximum queue size
66
62
  */
67
- WebSocketImpl: typeof WebSocket;
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;
68
131
  }
69
132
  /**
70
133
  * State of the NostrWSClient connection
@@ -118,11 +181,15 @@ export interface NostrWSServerOptions {
118
181
  */
119
182
  rateLimits?: RateLimitConfig;
120
183
  /**
121
- * Message handler
184
+ * Logger instance
122
185
  */
123
- onMessage?: (message: NostrWSMessage, socket: NostrWSServerSocket) => Promise<void>;
186
+ logger?: Logger;
124
187
  /**
125
- * Error handler
188
+ * Message handler callback
189
+ */
190
+ onMessage?: (message: NostrWSMessage, socket: NostrWSServerSocket) => void;
191
+ /**
192
+ * Error handler callback
126
193
  */
127
194
  onError?: (error: Error, socket: NostrWSServerSocket) => void;
128
195
  /**
@@ -138,35 +205,46 @@ export interface NostrWSServerOptions {
138
205
  * Server message structure
139
206
  * @interface NostrWSServerMessage
140
207
  */
141
- export interface NostrWSServerMessage {
142
- /**
143
- * Message type
144
- */
145
- type: MessageType;
208
+ export type NostrWSServerMessage = NostrWSMessage & {
146
209
  /**
147
- * Message data
148
- */
149
- data?: unknown;
150
- /**
151
- * Error message if applicable
210
+ * Unique client identifier
152
211
  */
153
- error?: string;
154
- }
212
+ clientId?: string;
213
+ };
155
214
  /**
156
215
  * Extended WebSocket interface for Nostr server
157
216
  * @interface NostrWSServerSocket
158
217
  */
159
218
  export interface NostrWSServerSocket extends WebSocket {
219
+ /**
220
+ * Unique client identifier
221
+ */
160
222
  clientId: string;
223
+ /**
224
+ * Set of subscription channels
225
+ */
161
226
  subscriptions: Set<string>;
227
+ /**
228
+ * Timestamp of the last ping message
229
+ */
162
230
  lastPing?: number;
231
+ /**
232
+ * Whether the WebSocket connection is alive
233
+ */
163
234
  isAlive: boolean;
164
235
  }
165
236
  /**
166
237
  * Nostr WebSocket server message with client info
167
238
  * @interface NostrWSServerClientMessage
168
239
  */
169
- export interface NostrWSServerClientMessage extends NostrWSMessage {
240
+ export type NostrWSServerClientMessage = [MessageType, ...unknown[]] & {
241
+ /**
242
+ * Unique client identifier
243
+ */
170
244
  clientId?: string;
245
+ /**
246
+ * Timestamp of the message
247
+ */
171
248
  timestamp?: number;
172
- }
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":"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"}
@@ -1,5 +1,6 @@
1
1
  /**
2
- * @file WebSocket type definitions and extensions
2
+ * @file WebSocket type definitions
3
3
  * @module types/websocket
4
4
  */
5
5
  export {};
6
+ //# sourceMappingURL=websocket.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../src/types/websocket.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -8,3 +8,4 @@
8
8
  * @returns Parsed JSON data
9
9
  */
10
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"}
@@ -22,3 +22,4 @@ export async function fetchJson(url) {
22
22
  throw error;
23
23
  }
24
24
  }
25
+ //# sourceMappingURL=http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/utils/http.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;AAEjC;;;;GAIG;AACH,MAAM,CAAC,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"}
@@ -2,10 +2,25 @@
2
2
  * @file Logger utility
3
3
  * @module utils/logger
4
4
  */
5
- import { Logger } from '../types/logger';
5
+ import { Logger } from 'pino';
6
6
  /**
7
- * Creates a logger instance for a specific component
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
8
14
  * @param component Component name for the logger
9
15
  * @returns Logger instance
10
16
  */
11
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"}
@@ -3,19 +3,33 @@
3
3
  * @module utils/logger
4
4
  */
5
5
  import pino from 'pino';
6
- const rootLogger = pino({
7
- level: process.env.LOG_LEVEL || 'info',
8
- timestamp: true,
9
- formatters: {
10
- level: (label) => ({ level: label }),
11
- bindings: (bindings) => bindings,
12
- },
13
- });
14
6
  /**
15
- * Creates a logger instance for a specific component
7
+ * Create a new logger instance
8
+ * @param name Name of the logger
9
+ * @returns Logger instance
10
+ */
11
+ export function createLogger(name) {
12
+ return pino({
13
+ name,
14
+ level: process.env.LOG_LEVEL || 'info',
15
+ timestamp: pino.stdTimeFunctions.isoTime
16
+ });
17
+ }
18
+ /**
19
+ * Get a logger instance for a specific component
16
20
  * @param component Component name for the logger
17
21
  * @returns Logger instance
18
22
  */
19
23
  export function getLogger(component) {
20
- return rootLogger.child({ component });
24
+ return createLogger(component);
25
+ }
26
+ /**
27
+ * Get a child logger instance
28
+ * @param parent Parent logger instance
29
+ * @param bindings Additional bindings for the child logger
30
+ * @returns Child logger instance
31
+ */
32
+ export function getChildLogger(parent, bindings) {
33
+ return parent.child(bindings);
21
34
  }
35
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,IAAgB,MAAM,MAAM,CAAC;AAEpC;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,IAAI,CAAC;QACV,IAAI;QACJ,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,MAAM;QACtC,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO;KACzC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,SAAiB;IACzC,OAAO,YAAY,CAAC,SAAS,CAAC,CAAC;AACjC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,MAAc,EAAE,QAAgB;IAC7D,OAAO,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAChC,CAAC"}
@@ -2,7 +2,6 @@
2
2
  * @file Metrics tracking for Nostr WebSocket connections
3
3
  * @module metrics
4
4
  */
5
- /// <reference types="node" />
6
5
  import { EventEmitter } from 'events';
7
6
  export interface RelayMetrics {
8
7
  totalConnections: number;
@@ -79,3 +78,4 @@ export declare class RelayMetricsTracker extends EventEmitter {
79
78
  getPrometheusMetrics(): string;
80
79
  }
81
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"}
@@ -204,3 +204,4 @@ export class RelayMetricsTracker extends EventEmitter {
204
204
  }
205
205
  // Export singleton instance
206
206
  export const metricsTracker = new RelayMetricsTracker();
207
+ //# sourceMappingURL=metrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/utils/metrics.ts"],"names":[],"mappings":"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"}
@@ -83,3 +83,4 @@ export declare class RateLimiterImpl implements RateLimiter {
83
83
  isBlocked(clientId: string): boolean;
84
84
  }
85
85
  export {};
86
+ //# sourceMappingURL=rate-limiter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rate-limiter.d.ts","sourceRoot":"","sources":["../../src/utils/rate-limiter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,UAAU,WAAW;IACnB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACzE,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAAC;IAC/D,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;IACpE,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IACrC,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CAAC;CAC/C;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAoB/D,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,YAAsB,EAC7D,OAAO,EAAE,MAAM,GACd,WAAW,CAMb;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpD;;;;OAIG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,GAAG,IAAI,CAAC;CAC/D;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE;IACN,uBAAuB,EAAE,MAAM,CAAC;IAChC,wBAAwB,EAAE,MAAM,CAAC;IACjC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;CACzB,EACD,MAAM,EAAE,MAAM,GACb,qBAAqB,CAsFvB;AAED;;GAEG;AACH,qBAAa,eAAgB,YAAW,WAAW;IACjD,OAAO,CAAC,OAAO,CAAuC;IACtD,OAAO,CAAC,MAAM,CAA4B;gBAE9B,MAAM,EAAE,eAAe;IAQ5B,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW;IASvC,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IA4B9E,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI;IAO9D,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM;IAQnE,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;CAI5C"}
@@ -142,10 +142,10 @@ export class RateLimiterImpl {
142
142
  return true;
143
143
  }
144
144
  // Get requests for message type
145
- const requests = state.requests.get(message.type) || [];
145
+ const requests = state.requests.get(message[0]) || [];
146
146
  const validRequests = requests.filter(time => time > now - this.config.windowMs);
147
147
  // Update requests
148
- state.requests.set(message.type, validRequests);
148
+ state.requests.set(message[0], validRequests);
149
149
  // Check if limit exceeded
150
150
  if (validRequests.length >= this.config.maxRequests) {
151
151
  state.blockedUntil = now + this.config.blockDurationMs;
@@ -153,13 +153,14 @@ export class RateLimiterImpl {
153
153
  }
154
154
  // Add new request
155
155
  validRequests.push(now);
156
+ state.requests.set(message[0], validRequests);
156
157
  return false;
157
158
  }
158
159
  recordRequest(clientId, message) {
159
160
  const state = this.getClientState(clientId);
160
- const requests = state.requests.get(message.type) || [];
161
+ const requests = state.requests.get(message[0]) || [];
161
162
  requests.push(Date.now());
162
- state.requests.set(message.type, requests);
163
+ state.requests.set(message[0], requests);
163
164
  }
164
165
  getRemainingRequests(clientId, messageType) {
165
166
  const state = this.getClientState(clientId);
@@ -173,3 +174,4 @@ export class RateLimiterImpl {
173
174
  return !!state.blockedUntil && state.blockedUntil > Date.now();
174
175
  }
175
176
  }
177
+ //# sourceMappingURL=rate-limiter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rate-limiter.js","sourceRoot":"","sources":["../../src/utils/rate-limiter.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,12 +1,24 @@
1
1
  {
2
2
  "name": "nostr-websocket-utils",
3
- "version": "0.3.0",
3
+ "version": "0.3.2",
4
4
  "description": "Robust WebSocket utilities for Nostr applications with automatic reconnection, channel-based messaging, and type-safe handlers. Features heartbeat monitoring, message queueing, and comprehensive error handling.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "type": "module",
8
+ "exports": {
9
+ ".": {
10
+ "import": "./dist/index.js",
11
+ "require": "./dist/cjs/index.js",
12
+ "types": "./dist/index.d.ts"
13
+ },
14
+ "./crypto": {
15
+ "import": "./dist/crypto/index.js",
16
+ "require": "./dist/cjs/crypto/index.js",
17
+ "types": "./dist/crypto/index.d.ts"
18
+ }
19
+ },
8
20
  "scripts": {
9
- "build": "tsc",
21
+ "build": "tsc && tsc -p tsconfig.cjs.json",
10
22
  "test": "vitest",
11
23
  "test:coverage": "vitest run --coverage",
12
24
  "lint": "eslint src --ext .ts",
@@ -1,9 +0,0 @@
1
- type LoggerFunction = (message: string, ...args: unknown[]) => void;
2
- interface MockLogger {
3
- debug: LoggerFunction;
4
- info: LoggerFunction;
5
- warn: LoggerFunction;
6
- error: LoggerFunction;
7
- }
8
- export declare const getLogger: (_name: string) => MockLogger;
9
- export {};
@@ -1,6 +0,0 @@
1
- export const getLogger = (_name) => ({
2
- debug: () => { },
3
- info: () => { },
4
- warn: () => { },
5
- error: () => { },
6
- });
package/dist/client.d.ts DELETED
@@ -1,129 +0,0 @@
1
- /// <reference types="node" />
2
- import { EventEmitter } from 'events';
3
- import type { NostrWSOptions, NostrWSMessage } from './types/index.js';
4
- /**
5
- * WebSocket client implementation for Nostr protocol communication
6
- * Extends EventEmitter to provide event-based message handling
7
- *
8
- * @extends EventEmitter
9
- * @example
10
- * ```typescript
11
- * const client = new NostrWSClient('wss://relay.example.com', {
12
- * logger: console,
13
- * heartbeatInterval: 30000,
14
- * handlers: {
15
- * message: async (msg) => console.log('Received:', msg),
16
- * error: (err) => console.error('Error:', err),
17
- * close: () => console.log('Connection closed')
18
- * }
19
- * });
20
- *
21
- * await client.connect();
22
- * client.send({ type: 'EVENT', data: { ... } });
23
- * ```
24
- */
25
- export declare class NostrWSClient extends EventEmitter {
26
- private url;
27
- private ws;
28
- private options;
29
- private reconnectTimeout;
30
- private heartbeatInterval;
31
- private reconnectAttempts;
32
- private messageQueue;
33
- private clientId;
34
- /**
35
- * Creates a new NostrWSClient instance
36
- *
37
- * @param {string} url - The WebSocket server URL to connect to
38
- * @param {Partial<NostrWSOptions>} options - Configuration options
39
- * @param {number} [options.heartbeatInterval=30000] - Interval for sending heartbeat messages in milliseconds
40
- * @param {object} options.logger - Logger instance (required)
41
- * @param {Function} [options.WebSocketImpl=WebSocket] - WebSocket implementation to use
42
- * @param {object} [options.handlers] - Event handlers
43
- * @param {Function} [options.handlers.message] - Message handler function
44
- * @param {Function} [options.handlers.error] - Error handler function
45
- * @param {Function} [options.handlers.close] - Connection close handler function
46
- * @throws {Error} If logger is not provided
47
- */
48
- constructor(url: string, options?: Partial<NostrWSOptions>);
49
- /**
50
- * Establishes a connection to the WebSocket server
51
- *
52
- * @example
53
- * ```typescript
54
- * client.connect();
55
- * ```
56
- */
57
- connect(): void;
58
- /**
59
- * Sets up event handlers for the WebSocket connection
60
- *
61
- * @private
62
- */
63
- private setupEventHandlers;
64
- /**
65
- * Starts sending heartbeat messages at the specified interval
66
- *
67
- * @private
68
- */
69
- private startHeartbeat;
70
- /**
71
- * Stops sending heartbeat messages
72
- *
73
- * @private
74
- */
75
- private stopHeartbeat;
76
- /**
77
- * Handles reconnecting to the WebSocket server after a disconnection
78
- *
79
- * @private
80
- */
81
- private handleReconnect;
82
- /**
83
- * Subscribes to a channel with optional filter
84
- *
85
- * @param {string} channel - Channel name
86
- * @param {unknown} [filter] - Filter data
87
- * @example
88
- * ```typescript
89
- * client.subscribe('channel-name', { ...filterData });
90
- * ```
91
- */
92
- subscribe(channel: string, filter?: unknown): void;
93
- /**
94
- * Unsubscribes from a channel
95
- *
96
- * @param {string} channel - Channel name
97
- * @example
98
- * ```typescript
99
- * client.unsubscribe('channel-name');
100
- * ```
101
- */
102
- unsubscribe(channel: string): void;
103
- /**
104
- * Flushes the message queue by sending pending messages
105
- *
106
- * @private
107
- */
108
- private flushMessageQueue;
109
- /**
110
- * Sends a message to the WebSocket server
111
- *
112
- * @param {NostrWSMessage} message - Message to send
113
- * @returns {Promise<void>}
114
- * @example
115
- * ```typescript
116
- * client.send({ type: 'EVENT', data: { ... } });
117
- * ```
118
- */
119
- send(message: NostrWSMessage): Promise<void>;
120
- /**
121
- * Closes the WebSocket connection
122
- *
123
- * @example
124
- * ```typescript
125
- * client.close();
126
- * ```
127
- */
128
- close(): void;
129
- }