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
@@ -1,94 +1,35 @@
1
+ import { NostrWSMessage, ConnectionState } from '../types';
2
+ import { NostrWSClientOptions } from '../types/websocket';
1
3
  /**
2
- * @file WebSocket client implementation
3
- * @module core/client
4
+ * NostrWSClient handles WebSocket connections to Nostr relays
4
5
  */
5
- /// <reference types="node" />
6
- import { EventEmitter } from 'events';
7
- import { NostrWSMessage, NostrWSOptions, ConnectionState } from '../types';
8
- /**
9
- * WebSocket client implementation for Nostr protocol communication
10
- * Extends EventEmitter to provide event-based message handling
11
- */
12
- export declare class NostrWSClient extends EventEmitter {
13
- private readonly url;
6
+ export declare class NostrWSClient {
7
+ private readonly relayUrls;
8
+ private readonly options;
14
9
  private ws;
15
- private state;
16
- private messageQueue;
17
- private reconnectTimeout;
18
- private heartbeatInterval;
19
- private heartbeatTimeout;
20
- private missedHeartbeats;
10
+ private readonly queue;
11
+ private readonly logger;
12
+ private connectionState;
21
13
  private reconnectAttempts;
22
- private subscriptions;
23
- private readonly clientId;
24
- private readonly options;
25
- constructor(url: string, options?: Partial<NostrWSOptions>);
26
- /**
27
- * Gets the current connection state
28
- */
29
- get connectionState(): ConnectionState;
30
- /**
31
- * Updates the connection state and notifies handlers
32
- */
33
- private setState;
14
+ private reconnectTimeout;
15
+ constructor(relayUrls: string[], options?: NostrWSClientOptions);
34
16
  /**
35
- * Establishes a connection to the WebSocket server
17
+ * Connect to the relay
36
18
  */
37
19
  connect(): Promise<void>;
38
20
  /**
39
- * Sets up event handlers for the WebSocket connection
40
- */
41
- private setupEventHandlers;
42
- /**
43
- * Starts the heartbeat mechanism
44
- */
45
- private startHeartbeat;
46
- /**
47
- * Handles heartbeat responses
48
- */
49
- private handleHeartbeatResponse;
50
- /**
51
- * Stops the heartbeat mechanism
52
- */
53
- private stopHeartbeat;
54
- /**
55
- * Handles connection errors
56
- */
57
- private handleConnectionError;
58
- /**
59
- * Handles disconnection and cleanup
60
- */
61
- private handleDisconnection;
62
- /**
63
- * Initiates reconnection with exponential backoff
64
- */
65
- private reconnect;
66
- /**
67
- * Subscribes to a channel with optional filter
68
- */
69
- subscribe(channel: string, filter?: unknown): void;
70
- /**
71
- * Resubscribes to all active subscriptions
72
- */
73
- private resubscribeAll;
74
- /**
75
- * Unsubscribes from a channel
76
- */
77
- unsubscribe(channel: string): void;
78
- /**
79
- * Flushes the message queue by sending pending messages
80
- */
81
- private flushMessageQueue;
82
- /**
83
- * Sends a message immediately without queueing
21
+ * Disconnect from the relay
84
22
  */
85
- private sendImmediate;
23
+ disconnect(): Promise<void>;
86
24
  /**
87
- * Sends a message to the WebSocket server
25
+ * Send a message to the relay
88
26
  */
89
- send(message: NostrWSMessage): Promise<void>;
27
+ sendMessage(message: NostrWSMessage): Promise<void>;
28
+ private handleMessage;
29
+ private handleDisconnect;
90
30
  /**
91
- * Closes the WebSocket connection
31
+ * Get the current connection state
92
32
  */
93
- close(): void;
33
+ getConnectionState(): ConnectionState;
94
34
  }
35
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"AACA,OAAO,EACL,cAAc,EACd,eAAe,EAChB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAK1D;;GAEG;AACH,qBAAa,aAAa;IAStB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAT1B,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAe;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,eAAe,CAAiD;IACxE,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,gBAAgB,CAA+B;gBAGpC,SAAS,EAAE,MAAM,EAAE,EACnB,OAAO,GAAE,oBAAyB;IAwBrD;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAsD9B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAqBjC;;OAEG;IACG,WAAW,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAQzD,OAAO,CAAC,aAAa;IAgBrB,OAAO,CAAC,gBAAgB;IA4BxB;;OAEG;IACH,kBAAkB,IAAI,eAAe;CAGtC"}
@@ -1,360 +1,154 @@
1
- /**
2
- * @file WebSocket client implementation
3
- * @module core/client
4
- */
5
1
  import WebSocket from 'ws';
6
- import { EventEmitter } from 'events';
7
- import { v4 as uuidv4 } from 'uuid';
8
- import { ConnectionState, MessagePriority } from '../types';
2
+ import { ConnectionState } from '../types';
9
3
  import { MessageQueue } from './queue';
10
- import { getLogger } from '../utils/logger';
11
- const logger = getLogger('client');
12
- const DEFAULT_RETRY_CONFIG = {
13
- maxAttempts: 10,
14
- initialDelay: 1000,
15
- maxDelay: 30000,
16
- backoffFactor: 1.5
17
- };
18
- const DEFAULT_QUEUE_CONFIG = {
19
- maxSize: 1000,
20
- maxRetries: 3,
21
- retryDelay: 1000,
22
- staleTimeout: 300000 // 5 minutes
23
- };
24
- const DEFAULT_HEARTBEAT_CONFIG = {
25
- interval: 30000,
26
- timeout: 5000,
27
- maxMissed: 3
28
- };
4
+ import { createLogger } from '../utils/logger';
29
5
  /**
30
- * WebSocket client implementation for Nostr protocol communication
31
- * Extends EventEmitter to provide event-based message handling
6
+ * NostrWSClient handles WebSocket connections to Nostr relays
32
7
  */
33
- export class NostrWSClient extends EventEmitter {
34
- constructor(url, options = {}) {
35
- super();
36
- this.url = url;
8
+ export class NostrWSClient {
9
+ constructor(relayUrls, options = {}) {
10
+ this.relayUrls = relayUrls;
11
+ this.options = options;
37
12
  this.ws = null;
38
- this.state = ConnectionState.DISCONNECTED;
39
- this.reconnectTimeout = null;
40
- this.heartbeatInterval = null;
41
- this.heartbeatTimeout = null;
42
- this.missedHeartbeats = 0;
13
+ this.connectionState = ConnectionState.DISCONNECTED;
43
14
  this.reconnectAttempts = 0;
44
- this.subscriptions = new Map();
45
- this.clientId = uuidv4();
46
- // Initialize options with defaults
47
- this.options = {
48
- WebSocketImpl: options.WebSocketImpl || WebSocket,
49
- handlers: {
50
- message: options.handlers?.message || (async () => { }),
51
- error: options.handlers?.error || (() => { }),
52
- close: options.handlers?.close || (() => { }),
53
- stateChange: options.handlers?.stateChange,
54
- heartbeat: options.handlers?.heartbeat,
55
- connect: options.handlers?.connect || (() => { }),
56
- disconnect: options.handlers?.disconnect || (() => { }),
57
- reconnect: options.handlers?.reconnect || (() => { })
58
- },
59
- retry: { ...DEFAULT_RETRY_CONFIG, ...options.retry },
60
- queue: { ...DEFAULT_QUEUE_CONFIG, ...options.queue },
61
- heartbeat: { ...DEFAULT_HEARTBEAT_CONFIG, ...options.heartbeat },
62
- autoReconnect: options.autoReconnect !== false,
63
- bufferMessages: options.bufferMessages !== false,
64
- cleanStaleMessages: options.cleanStaleMessages !== false,
65
- logger: options.logger || logger
66
- };
67
- // Initialize message queue
68
- this.messageQueue = new MessageQueue(this.options.queue);
69
- }
70
- /**
71
- * Gets the current connection state
72
- */
73
- get connectionState() {
74
- return this.state;
75
- }
76
- /**
77
- * Updates the connection state and notifies handlers
78
- */
79
- setState(newState) {
80
- this.state = newState;
81
- logger.debug({ state: newState }, 'Connection state changed');
82
- this.options.handlers.stateChange?.(newState);
15
+ this.reconnectTimeout = null;
16
+ this.logger = options.logger || createLogger('NostrWSClient');
17
+ this.queue = new MessageQueue(async (message) => {
18
+ if (!this.ws || this.connectionState !== ConnectionState.CONNECTED) {
19
+ throw new Error('Not connected to relay');
20
+ }
21
+ try {
22
+ this.ws.send(JSON.stringify(message));
23
+ this.logger.debug({ message }, 'Message sent');
24
+ }
25
+ catch (error) {
26
+ this.logger.error({ error, message }, 'Failed to send message');
27
+ throw error;
28
+ }
29
+ }, {
30
+ maxSize: options.queueSize,
31
+ maxRetries: options.maxRetries,
32
+ retryDelay: options.retryDelay
33
+ });
83
34
  }
84
35
  /**
85
- * Establishes a connection to the WebSocket server
36
+ * Connect to the relay
86
37
  */
87
38
  async connect() {
88
- if (this.ws) {
89
- logger.warn('Connection already exists');
39
+ if (this.connectionState === ConnectionState.CONNECTED) {
40
+ this.logger.debug('Already connected');
41
+ return;
42
+ }
43
+ if (this.connectionState === ConnectionState.CONNECTING) {
44
+ this.logger.debug('Connection already in progress');
90
45
  return;
91
46
  }
47
+ this.connectionState = ConnectionState.CONNECTING;
92
48
  try {
93
- this.setState(ConnectionState.CONNECTING);
94
- this.ws = new this.options.WebSocketImpl(this.url);
95
- this.setupEventHandlers();
96
- // Wait for connection to establish
49
+ const url = this.relayUrls[0]; // For now just use first relay
50
+ this.ws = new WebSocket(url);
97
51
  await new Promise((resolve, reject) => {
98
- const onOpen = () => {
99
- this.ws?.removeEventListener('open', onOpen);
100
- this.ws?.removeEventListener('error', onError);
52
+ const timeout = setTimeout(() => {
53
+ reject(new Error('Connection timeout'));
54
+ }, this.options.connectionTimeout || 5000);
55
+ this.ws.on('open', () => {
56
+ clearTimeout(timeout);
57
+ this.connectionState = ConnectionState.CONNECTED;
58
+ this.reconnectAttempts = 0;
59
+ this.logger.info('Connected to relay');
101
60
  resolve();
102
- };
103
- const onError = (error) => {
104
- this.ws?.removeEventListener('open', onOpen);
105
- this.ws?.removeEventListener('error', onError);
106
- reject(new Error(error?.message || 'Failed to connect'));
107
- };
108
- this.ws?.addEventListener('open', onOpen);
109
- this.ws?.addEventListener('error', onError);
61
+ });
62
+ this.ws.on('error', (error) => {
63
+ clearTimeout(timeout);
64
+ this.logger.error({ error }, 'WebSocket error');
65
+ if (this.options.onError) {
66
+ this.options.onError(error);
67
+ }
68
+ reject(error);
69
+ });
70
+ this.ws.on('close', () => {
71
+ this.handleDisconnect();
72
+ });
73
+ this.ws.on('message', (data) => {
74
+ this.handleMessage(data);
75
+ });
110
76
  });
111
- this.setState(ConnectionState.CONNECTED);
112
- this.reconnectAttempts = 0;
113
- this.startHeartbeat();
114
- this.flushMessageQueue();
115
- this.resubscribeAll();
116
- this.options.handlers.connect?.();
117
77
  }
118
78
  catch (error) {
119
- logger.error({ error }, 'Failed to establish connection');
120
- this.handleConnectionError(error);
79
+ this.logger.error({ error }, 'Failed to connect');
80
+ this.handleDisconnect();
81
+ throw error;
121
82
  }
122
83
  }
123
84
  /**
124
- * Sets up event handlers for the WebSocket connection
85
+ * Disconnect from the relay
125
86
  */
126
- setupEventHandlers() {
127
- if (!this.ws)
87
+ async disconnect() {
88
+ if (this.connectionState === ConnectionState.DISCONNECTED) {
89
+ this.logger.debug('Already disconnected');
128
90
  return;
129
- this.ws.addEventListener('message', async (event) => {
130
- try {
131
- const message = JSON.parse(event.data.toString());
132
- // Handle heartbeat responses
133
- if (message.type === 'PONG') {
134
- this.handleHeartbeatResponse();
135
- return;
136
- }
137
- await this.options.handlers.message(message);
138
- }
139
- catch (error) {
140
- logger.error({ error }, 'Error handling message');
141
- this.options.handlers.error(error);
142
- }
143
- });
144
- this.ws.addEventListener('error', (error) => {
145
- const wsError = error?.error || new Error('WebSocket error');
146
- logger.error({ error: wsError }, 'WebSocket error');
147
- this.options.handlers.error(wsError);
148
- });
149
- this.ws.addEventListener('close', () => {
150
- this.handleDisconnection();
151
- });
152
- }
153
- /**
154
- * Starts the heartbeat mechanism
155
- */
156
- startHeartbeat() {
157
- this.stopHeartbeat();
158
- this.heartbeatInterval = setInterval(() => {
159
- if (this.state !== ConnectionState.CONNECTED)
160
- return;
161
- this.send({
162
- type: 'PING',
163
- priority: MessagePriority.LOW
164
- });
165
- this.heartbeatTimeout = setTimeout(() => {
166
- this.missedHeartbeats++;
167
- logger.warn({ missed: this.missedHeartbeats }, 'Missed heartbeat');
168
- if (this.missedHeartbeats >= (this.options.heartbeat?.maxMissed || DEFAULT_HEARTBEAT_CONFIG.maxMissed)) {
169
- logger.error('Too many missed heartbeats, reconnecting');
170
- this.reconnect();
171
- }
172
- }, this.options.heartbeat?.timeout || DEFAULT_HEARTBEAT_CONFIG.timeout);
173
- }, this.options.heartbeat?.interval || DEFAULT_HEARTBEAT_CONFIG.interval);
174
- }
175
- /**
176
- * Handles heartbeat responses
177
- */
178
- handleHeartbeatResponse() {
179
- if (this.heartbeatTimeout) {
180
- clearTimeout(this.heartbeatTimeout);
181
- this.heartbeatTimeout = null;
182
91
  }
183
- this.missedHeartbeats = 0;
184
- this.options.handlers.heartbeat?.();
185
- }
186
- /**
187
- * Stops the heartbeat mechanism
188
- */
189
- stopHeartbeat() {
190
- if (this.heartbeatInterval) {
191
- clearInterval(this.heartbeatInterval);
192
- this.heartbeatInterval = null;
92
+ this.connectionState = ConnectionState.DISCONNECTED;
93
+ if (this.reconnectTimeout) {
94
+ clearTimeout(this.reconnectTimeout);
95
+ this.reconnectTimeout = null;
193
96
  }
194
- if (this.heartbeatTimeout) {
195
- clearTimeout(this.heartbeatTimeout);
196
- this.heartbeatTimeout = null;
97
+ if (this.ws) {
98
+ this.ws.close();
99
+ this.ws = null;
197
100
  }
101
+ this.logger.info('Disconnected from relay');
198
102
  }
199
103
  /**
200
- * Handles connection errors
201
- */
202
- handleConnectionError(error) {
203
- logger.error({ error }, 'Connection error');
204
- this.options.handlers.error(error);
205
- this.handleDisconnection();
206
- }
207
- /**
208
- * Handles disconnection and cleanup
104
+ * Send a message to the relay
209
105
  */
210
- handleDisconnection() {
211
- this.stopHeartbeat();
212
- this.setState(ConnectionState.DISCONNECTED);
213
- this.ws = null;
214
- this.options.handlers.disconnect?.();
215
- this.options.handlers.close();
216
- if (this.options.autoReconnect) {
217
- this.reconnect();
106
+ async sendMessage(message) {
107
+ if (this.connectionState !== ConnectionState.CONNECTED) {
108
+ throw new Error('Not connected to relay');
218
109
  }
110
+ await this.queue.enqueue(message);
219
111
  }
220
- /**
221
- * Initiates reconnection with exponential backoff
222
- */
223
- reconnect() {
224
- if (this.reconnectTimeout || this.state === ConnectionState.CONNECTING) {
225
- return;
226
- }
227
- this.reconnectAttempts++;
228
- const maxAttempts = this.options.retry?.maxAttempts || DEFAULT_RETRY_CONFIG.maxAttempts;
229
- if (this.reconnectAttempts > maxAttempts) {
230
- this.setState(ConnectionState.FAILED);
231
- logger.error('Max reconnection attempts exceeded');
232
- return;
233
- }
234
- const initialDelay = this.options.retry?.initialDelay || DEFAULT_RETRY_CONFIG.initialDelay;
235
- const backoffFactor = this.options.retry?.backoffFactor || DEFAULT_RETRY_CONFIG.backoffFactor;
236
- const maxDelay = this.options.retry?.maxDelay || DEFAULT_RETRY_CONFIG.maxDelay;
237
- const delay = Math.min(initialDelay * Math.pow(backoffFactor, this.reconnectAttempts - 1), maxDelay);
238
- this.setState(ConnectionState.RECONNECTING);
239
- logger.info({ attempt: this.reconnectAttempts, delay }, 'Scheduling reconnection');
240
- this.reconnectTimeout = setTimeout(async () => {
241
- this.reconnectTimeout = null;
242
- try {
243
- await this.connect();
244
- }
245
- catch (error) {
246
- logger.error({ error }, 'Reconnection failed');
112
+ handleMessage(data) {
113
+ try {
114
+ const message = JSON.parse(data.toString());
115
+ this.logger.debug({ message }, 'Received message');
116
+ if (this.options.onMessage) {
117
+ this.options.onMessage(data.toString());
247
118
  }
248
- }, delay);
249
- this.options.handlers.reconnect?.();
250
- }
251
- /**
252
- * Subscribes to a channel with optional filter
253
- */
254
- subscribe(channel, filter) {
255
- const subscription = {
256
- type: 'REQ',
257
- data: { channel, filter },
258
- priority: MessagePriority.HIGH
259
- };
260
- this.subscriptions.set(channel, subscription);
261
- this.send(subscription);
262
- }
263
- /**
264
- * Resubscribes to all active subscriptions
265
- */
266
- resubscribeAll() {
267
- for (const subscription of this.subscriptions.values()) {
268
- this.send(subscription);
269
119
  }
270
- }
271
- /**
272
- * Unsubscribes from a channel
273
- */
274
- unsubscribe(channel) {
275
- const subscription = this.subscriptions.get(channel);
276
- if (subscription) {
277
- this.send({
278
- type: 'CLOSE',
279
- data: { channel },
280
- priority: MessagePriority.HIGH
281
- });
282
- this.subscriptions.delete(channel);
283
- }
284
- }
285
- /**
286
- * Flushes the message queue by sending pending messages
287
- */
288
- async flushMessageQueue() {
289
- if (this.state !== ConnectionState.CONNECTED)
290
- return;
291
- while (this.messageQueue.size > 0) {
292
- const message = this.messageQueue.dequeue();
293
- if (!message)
294
- break;
295
- try {
296
- await this.sendImmediate(message);
297
- }
298
- catch (error) {
299
- await this.messageQueue.retry(message);
120
+ catch (error) {
121
+ this.logger.error({ error, data }, 'Failed to parse message');
122
+ if (this.options.onError) {
123
+ this.options.onError(error);
300
124
  }
301
125
  }
302
126
  }
303
- /**
304
- * Sends a message immediately without queueing
305
- */
306
- async sendImmediate(message) {
307
- if (!this.ws || this.state !== ConnectionState.CONNECTED) {
308
- throw new Error('Not connected');
309
- }
310
- return new Promise((resolve, reject) => {
311
- this.ws.send(JSON.stringify(message), (error) => {
312
- if (error) {
313
- logger.error({ error, message }, 'Failed to send message');
314
- reject(error);
315
- }
316
- else {
317
- resolve();
318
- }
319
- });
320
- });
321
- }
322
- /**
323
- * Sends a message to the WebSocket server
324
- */
325
- async send(message) {
326
- if (this.state === ConnectionState.CONNECTED) {
327
- try {
328
- await this.sendImmediate(message);
329
- return;
330
- }
331
- catch (error) {
332
- if (!this.options.bufferMessages) {
333
- throw error;
334
- }
335
- }
336
- }
337
- if (this.options.bufferMessages) {
338
- this.messageQueue.enqueue(message);
127
+ handleDisconnect() {
128
+ this.connectionState = ConnectionState.DISCONNECTED;
129
+ this.ws = null;
130
+ if (this.options.retryAttempts &&
131
+ this.reconnectAttempts < this.options.retryAttempts) {
132
+ this.connectionState = ConnectionState.RECONNECTING;
133
+ this.reconnectAttempts++;
134
+ const delay = this.options.retryDelay || 1000;
135
+ this.logger.info({ attempt: this.reconnectAttempts, maxAttempts: this.options.retryAttempts }, `Reconnecting in ${delay}ms`);
136
+ this.reconnectTimeout = setTimeout(() => {
137
+ this.connect().catch(error => {
138
+ this.logger.error({ error }, 'Reconnection failed');
139
+ });
140
+ }, delay);
339
141
  }
340
142
  else {
341
- throw new Error('Not connected and message buffering is disabled');
143
+ this.logger.warn('Max reconnection attempts reached');
144
+ this.connectionState = ConnectionState.FAILED;
342
145
  }
343
146
  }
344
147
  /**
345
- * Closes the WebSocket connection
148
+ * Get the current connection state
346
149
  */
347
- close() {
348
- this.options.autoReconnect = false;
349
- if (this.reconnectTimeout) {
350
- clearTimeout(this.reconnectTimeout);
351
- this.reconnectTimeout = null;
352
- }
353
- if (this.ws) {
354
- this.ws.close();
355
- }
356
- this.handleDisconnection();
357
- this.messageQueue.clear();
358
- this.subscriptions.clear();
150
+ getConnectionState() {
151
+ return this.connectionState;
359
152
  }
360
153
  }
154
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"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"}
@@ -25,3 +25,4 @@ export declare class NostrWSServer {
25
25
  * @returns {NostrWSServer} The created server instance
26
26
  */
27
27
  export declare function createWSServer(options: NostrWSServerOptions): NostrWSServer;
28
+ //# sourceMappingURL=nostr-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nostr-server.d.ts","sourceRoot":"","sources":["../../src/core/nostr-server.ts"],"names":[],"mappings":"AAGA,OAAO,EAAuB,oBAAoB,EAAwB,MAAM,oBAAoB,CAAC;AAIrG;;GAEG;AACH,qBAAa,aAAa;IACxB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAkB;IAEhC;;;;OAIG;gBACS,OAAO,EAAE,oBAAoB;IAwEzC;;OAEG;IACI,IAAI,IAAI,IAAI;CAGpB;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,oBAAoB,GAAG,aAAa,CAE3E"}
@@ -93,3 +93,4 @@ export class NostrWSServer {
93
93
  export function createWSServer(options) {
94
94
  return new NostrWSServer(options);
95
95
  }
96
+ //# sourceMappingURL=nostr-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nostr-server.js","sourceRoot":"","sources":["../../src/core/nostr-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAa,MAAM,IAAI,CAAC;AAChD,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,MAAM,MAAM,GAAG,SAAS,CAAC,eAAe,CAAC,CAAC;AAE1C;;GAEG;AACH,MAAM,OAAO,aAAa;IAMxB;;;;OAIG;IACH,YAAY,OAA6B;QACvC,IAAI,CAAC,MAAM,GAAG,IAAI,eAAe,CAAC;YAChC,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB,CAAC,CAAC;QAEH;;;;WAIG;QACH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,KAAK,EAAE,EAAa,EAAE,EAAE;YACnD,MAAM,MAAM,GAAG,EAAyB,CAAC;YACzC,MAAM,CAAC,QAAQ,GAAG,MAAM,EAAE,CAAC;YAC3B,MAAM,CAAC,aAAa,GAAG,IAAI,GAAG,EAAE,CAAC;YACjC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;YAEtB,MAAM,CAAC,IAAI,CAAC,qBAAqB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;YAEpD;;eAEG;YACH,MAAM,OAAO,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,CAAC;YAErC;;;;eAIG;YACH,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,IAAY,EAAE,EAAE;gBAC1C,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAyB,CAAC;oBACpE,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;oBAC1C;;uBAEG;oBACH,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAC7C,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;oBACjD;;uBAEG;oBACH,OAAO,CAAC,OAAO,EAAE,CAAC,KAAc,EAAE,MAAM,CAAC,CAAC;gBAC5C,CAAC;YACH,CAAC,CAAC,CAAC;YAEH;;;;eAIG;YACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE;gBAClC,MAAM,CAAC,KAAK,CAAC,iBAAiB,MAAM,CAAC,QAAQ,IAAI,EAAE,KAAK,CAAC,CAAC;gBAC1D;;mBAEG;gBACH,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;YAEH;;eAEG;YACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBACtB,MAAM,CAAC,IAAI,CAAC,wBAAwB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACvD;;mBAEG;gBACH,OAAO,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;YAC5B,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACI,IAAI;QACT,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,OAA6B;IAC1D,OAAO,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC;AACpC,CAAC"}