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
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
- }
package/dist/client.js DELETED
@@ -1,259 +0,0 @@
1
- import { v4 as uuidv4 } from 'uuid';
2
- import WebSocket from 'ws';
3
- import { EventEmitter } from 'events';
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 class NostrWSClient extends EventEmitter {
26
- /**
27
- * Creates a new NostrWSClient instance
28
- *
29
- * @param {string} url - The WebSocket server URL to connect to
30
- * @param {Partial<NostrWSOptions>} options - Configuration options
31
- * @param {number} [options.heartbeatInterval=30000] - Interval for sending heartbeat messages in milliseconds
32
- * @param {object} options.logger - Logger instance (required)
33
- * @param {Function} [options.WebSocketImpl=WebSocket] - WebSocket implementation to use
34
- * @param {object} [options.handlers] - Event handlers
35
- * @param {Function} [options.handlers.message] - Message handler function
36
- * @param {Function} [options.handlers.error] - Error handler function
37
- * @param {Function} [options.handlers.close] - Connection close handler function
38
- * @throws {Error} If logger is not provided
39
- */
40
- constructor(url, options = {}) {
41
- super();
42
- this.url = url;
43
- this.ws = null;
44
- this.reconnectTimeout = null;
45
- this.heartbeatInterval = null;
46
- this.reconnectAttempts = 0;
47
- this.messageQueue = [];
48
- if (!options.logger) {
49
- throw new Error('Logger is required');
50
- }
51
- this.clientId = uuidv4();
52
- this.options = {
53
- heartbeatInterval: options.heartbeatInterval || 30000,
54
- logger: options.logger,
55
- WebSocketImpl: options.WebSocketImpl || WebSocket,
56
- handlers: {
57
- message: options.handlers?.message || (async () => { }),
58
- error: options.handlers?.error || (() => { }),
59
- close: options.handlers?.close || (() => { })
60
- }
61
- };
62
- }
63
- /**
64
- * Establishes a connection to the WebSocket server
65
- *
66
- * @example
67
- * ```typescript
68
- * client.connect();
69
- * ```
70
- */
71
- connect() {
72
- if (this.ws) {
73
- this.options.logger.info('WebSocket connection already exists');
74
- return;
75
- }
76
- try {
77
- this.options.logger.debug('Creating new WebSocket connection');
78
- this.ws = new this.options.WebSocketImpl(this.url);
79
- this.options.logger.debug('WebSocket created successfully');
80
- this.setupEventHandlers();
81
- }
82
- catch (error) {
83
- this.options.logger.error('Failed to create WebSocket connection:', error);
84
- this.handleReconnect();
85
- }
86
- }
87
- /**
88
- * Sets up event handlers for the WebSocket connection
89
- *
90
- * @private
91
- */
92
- setupEventHandlers() {
93
- if (!this.ws)
94
- return;
95
- this.ws.on('open', () => {
96
- this.options.logger.info('WebSocket connection established');
97
- this.reconnectAttempts = 0;
98
- this.startHeartbeat();
99
- this.emit('connect');
100
- this.flushMessageQueue();
101
- });
102
- this.ws.on('message', async (data) => {
103
- try {
104
- const message = JSON.parse(data.toString());
105
- this.emit('message', message);
106
- await this.options.handlers.message(this.ws, message);
107
- }
108
- catch (error) {
109
- this.emit('error', error);
110
- if (this.options.handlers.error) {
111
- this.options.handlers.error(this.ws, error);
112
- }
113
- }
114
- });
115
- this.ws.on('close', () => {
116
- this.options.logger.info('WebSocket connection closed');
117
- this.stopHeartbeat();
118
- this.handleReconnect();
119
- this.emit('disconnect');
120
- if (this.options.handlers.close) {
121
- this.options.handlers.close(this.ws);
122
- }
123
- });
124
- this.ws.on('error', (error) => {
125
- this.options.logger.error('WebSocket error:', error);
126
- this.emit('error', error);
127
- if (this.options.handlers.error) {
128
- this.options.handlers.error(this.ws, error);
129
- }
130
- });
131
- }
132
- /**
133
- * Starts sending heartbeat messages at the specified interval
134
- *
135
- * @private
136
- */
137
- startHeartbeat() {
138
- if (this.heartbeatInterval)
139
- return;
140
- this.heartbeatInterval = setInterval(() => {
141
- if (this.ws?.readyState === WebSocket.OPEN) {
142
- this.ws.ping();
143
- }
144
- }, this.options.heartbeatInterval || 30000);
145
- }
146
- /**
147
- * Stops sending heartbeat messages
148
- *
149
- * @private
150
- */
151
- stopHeartbeat() {
152
- if (this.heartbeatInterval) {
153
- clearInterval(this.heartbeatInterval);
154
- this.heartbeatInterval = null;
155
- }
156
- }
157
- /**
158
- * Handles reconnecting to the WebSocket server after a disconnection
159
- *
160
- * @private
161
- */
162
- handleReconnect() {
163
- if (this.reconnectTimeout)
164
- return;
165
- this.reconnectAttempts++;
166
- this.reconnectTimeout = setTimeout(() => {
167
- this.reconnectTimeout = null;
168
- this.connect();
169
- this.emit('reconnect');
170
- }, 5000);
171
- }
172
- /**
173
- * Subscribes to a channel with optional filter
174
- *
175
- * @param {string} channel - Channel name
176
- * @param {unknown} [filter] - Filter data
177
- * @example
178
- * ```typescript
179
- * client.subscribe('channel-name', { ...filterData });
180
- * ```
181
- */
182
- subscribe(channel, filter) {
183
- this.send({
184
- type: 'subscribe',
185
- data: { channel, filter }
186
- });
187
- }
188
- /**
189
- * Unsubscribes from a channel
190
- *
191
- * @param {string} channel - Channel name
192
- * @example
193
- * ```typescript
194
- * client.unsubscribe('channel-name');
195
- * ```
196
- */
197
- unsubscribe(channel) {
198
- this.send({
199
- type: 'unsubscribe',
200
- data: { channel }
201
- });
202
- }
203
- /**
204
- * Flushes the message queue by sending pending messages
205
- *
206
- * @private
207
- */
208
- flushMessageQueue() {
209
- while (this.messageQueue.length > 0 && this.ws?.readyState === WebSocket.OPEN) {
210
- const message = this.messageQueue.shift();
211
- if (message) {
212
- this.send(message);
213
- }
214
- }
215
- }
216
- /**
217
- * Sends a message to the WebSocket server
218
- *
219
- * @param {NostrWSMessage} message - Message to send
220
- * @returns {Promise<void>}
221
- * @example
222
- * ```typescript
223
- * client.send({ type: 'EVENT', data: { ... } });
224
- * ```
225
- */
226
- async send(message) {
227
- message.id = message.id || uuidv4();
228
- if (!this.ws || this.ws.readyState !== WebSocket.OPEN) {
229
- this.messageQueue.push(message);
230
- return;
231
- }
232
- try {
233
- this.ws.send(JSON.stringify(message));
234
- }
235
- catch (error) {
236
- this.options.logger.error('Failed to send message:', error);
237
- this.handleReconnect();
238
- }
239
- }
240
- /**
241
- * Closes the WebSocket connection
242
- *
243
- * @example
244
- * ```typescript
245
- * client.close();
246
- * ```
247
- */
248
- close() {
249
- this.stopHeartbeat();
250
- if (this.reconnectTimeout) {
251
- clearTimeout(this.reconnectTimeout);
252
- this.reconnectTimeout = null;
253
- }
254
- if (this.ws) {
255
- this.ws.close();
256
- this.ws = null;
257
- }
258
- }
259
- }
@@ -1,16 +0,0 @@
1
- /**
2
- * @file Schnorr signature implementation for Nostr
3
- * @module crypto/schnorr
4
- */
5
- /**
6
- * Sign a message using Schnorr signature
7
- */
8
- export declare function schnorrSign(message: string, privateKey: Uint8Array): Promise<string>;
9
- /**
10
- * Verify a Schnorr signature
11
- */
12
- export declare function schnorrVerify(signature: string, message: string, publicKey: string): Promise<boolean>;
13
- /**
14
- * Get public key from private key
15
- */
16
- export declare function getPublicKey(privateKey: string): string;
@@ -1,51 +0,0 @@
1
- /**
2
- * @file Schnorr signature implementation for Nostr
3
- * @module crypto/schnorr
4
- */
5
- import { utils } from '@noble/secp256k1';
6
- import * as secp from '@noble/secp256k1';
7
- /**
8
- * Sign a message using Schnorr signature
9
- */
10
- export async function schnorrSign(message, privateKey) {
11
- try {
12
- // Hash the message
13
- const messageHash = utils.sha256(Buffer.from(message));
14
- // Sign using Schnorr
15
- const signature = await secp.sign(messageHash, privateKey, { canonical: true });
16
- // Convert to hex
17
- return utils.bytesToHex(signature);
18
- }
19
- catch (error) {
20
- throw new Error(`Failed to create Schnorr signature: ${error}`);
21
- }
22
- }
23
- /**
24
- * Verify a Schnorr signature
25
- */
26
- export async function schnorrVerify(signature, message, publicKey) {
27
- try {
28
- // Convert inputs to bytes
29
- const signatureBytes = utils.hexToBytes(signature);
30
- const messageHash = utils.sha256(Buffer.from(message));
31
- const publicKeyBytes = utils.hexToBytes(publicKey);
32
- // Verify using Schnorr
33
- return await secp.verify(signatureBytes, messageHash, publicKeyBytes, { canonical: true });
34
- }
35
- catch (error) {
36
- throw new Error(`Failed to verify Schnorr signature: ${error}`);
37
- }
38
- }
39
- /**
40
- * Get public key from private key
41
- */
42
- export function getPublicKey(privateKey) {
43
- try {
44
- const publicKey = secp.getPublicKey(privateKey, true);
45
- return Buffer.from(publicKey).toString('hex');
46
- }
47
- catch (error) {
48
- const errorMessage = error instanceof Error ? error.message : 'Unknown error';
49
- throw new Error(`Failed to get public key: ${errorMessage}`);
50
- }
51
- }
@@ -1,107 +0,0 @@
1
- import { Server as WebSocketServer } from 'ws';
2
- import { getLogger } from './utils/logger';
3
- /**
4
- * Represents a Nostr WebSocket server
5
- */
6
- export class NostrWSServer {
7
- /**
8
- * Creates a new Nostr WebSocket server instance
9
- *
10
- * @param {NostrWSServerOptions} options - Server configuration options
11
- */
12
- constructor(options) {
13
- /**
14
- * Logger instance for this server
15
- */
16
- this.logger = getLogger('NostrWSServer');
17
- this.server = new WebSocketServer({ port: options.port });
18
- /**
19
- * Handles incoming WebSocket connections
20
- *
21
- * @param {NostrWSSocket} socket - The connected WebSocket client
22
- */
23
- this.server.on('connection', (socket) => {
24
- socket.subscriptions = new Set();
25
- socket.isAlive = true;
26
- if (options.onConnection) {
27
- options.onConnection(socket);
28
- }
29
- /**
30
- * Handles incoming messages from the client
31
- *
32
- * @param {Buffer | ArrayBuffer | Buffer[]} data - The incoming message data
33
- */
34
- const handleMessage = async (data) => {
35
- try {
36
- const message = JSON.parse(data.toString());
37
- if (options.handlers?.message) {
38
- await options.handlers.message(socket, message);
39
- }
40
- }
41
- catch (error) {
42
- if (options.handlers?.error) {
43
- options.handlers.error(socket, error);
44
- }
45
- }
46
- };
47
- socket.on('message', handleMessage);
48
- /**
49
- * Handles client disconnections
50
- */
51
- socket.on('close', () => {
52
- if (options.handlers?.close) {
53
- options.handlers.close(socket);
54
- }
55
- });
56
- /**
57
- * Handles WebSocket errors
58
- *
59
- * @param {Error} error - The error that occurred
60
- */
61
- socket.on('error', (error) => {
62
- if (options.handlers?.error) {
63
- options.handlers.error(socket, error);
64
- }
65
- });
66
- // Setup heartbeat
67
- if (options.heartbeatInterval) {
68
- const interval = setInterval(() => {
69
- if (!socket.isAlive) {
70
- socket.terminate();
71
- clearInterval(interval);
72
- return;
73
- }
74
- socket.isAlive = false;
75
- socket.ping();
76
- }, options.heartbeatInterval);
77
- /**
78
- * Handles WebSocket pong responses
79
- */
80
- socket.on('pong', () => {
81
- socket.isAlive = true;
82
- });
83
- /**
84
- * Handles client disconnections (again, to clear the interval)
85
- */
86
- socket.on('close', () => {
87
- clearInterval(interval);
88
- });
89
- }
90
- });
91
- }
92
- /**
93
- * Closes the WebSocket server
94
- */
95
- close() {
96
- this.server.close();
97
- }
98
- }
99
- /**
100
- * Creates a new Nostr WebSocket server instance
101
- *
102
- * @param {NostrWSServerOptions} options - Server configuration options
103
- * @returns {NostrWSServer} The created server instance
104
- */
105
- export function createWSServer(options) {
106
- return new NostrWSServer(options);
107
- }
package/dist/server.d.ts DELETED
@@ -1,27 +0,0 @@
1
- /// <reference types="node" />
2
- import { WebSocketServer } from 'ws';
3
- import { EventEmitter } from 'events';
4
- import type { NostrWSOptions, NostrWSMessage } from './types/index.js';
5
- /**
6
- * WebSocket server implementation for Nostr protocol
7
- * Extends EventEmitter to provide event-based message handling
8
- */
9
- export declare class NostrWSServer extends EventEmitter {
10
- private wss;
11
- private options;
12
- private clients;
13
- private heartbeatInterval;
14
- constructor(wss: WebSocketServer, options?: Partial<NostrWSOptions>);
15
- private setupServer;
16
- private handleConnection;
17
- private startHeartbeat;
18
- broadcast(message: NostrWSMessage): void;
19
- broadcastToChannel(channel: string, message: NostrWSMessage): void;
20
- close(): void;
21
- /**
22
- * Check if a client with the given ID exists
23
- * @param clientId - The ID of the client to check
24
- * @returns boolean indicating if the client exists
25
- */
26
- hasClient(clientId: string): boolean;
27
- }