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,61 +1,38 @@
1
1
  /**
2
- * @file Message queue implementation for WebSocket communication
2
+ * @file Message queue implementation
3
3
  * @module core/queue
4
4
  */
5
- import { NostrWSMessage } from '../types/messages';
5
+ import { NostrWSMessage } from '../types';
6
6
  /**
7
- * Options for message queue configuration
8
- */
9
- interface QueueOptions {
10
- maxSize?: number;
11
- maxRetries?: number;
12
- retryDelay?: number;
13
- }
14
- /**
15
- * Message queue implementation with priority handling and retry logic
7
+ * Message queue implementation for handling WebSocket messages
16
8
  */
17
9
  export declare class MessageQueue {
18
- private queue;
19
- private maxSize;
20
- private maxRetries;
21
- private retryDelay;
22
- constructor(options?: QueueOptions);
23
- /**
24
- * Adds a message to the queue with priority handling
25
- * @param message Message to enqueue
26
- * @returns true if message was added, false if queue is full
27
- */
28
- enqueue(message: NostrWSMessage): boolean;
10
+ private readonly sender;
11
+ private readonly options;
12
+ private readonly queue;
13
+ private readonly logger;
14
+ private processing;
15
+ constructor(sender: (message: NostrWSMessage) => Promise<void>, options?: {
16
+ maxSize?: number;
17
+ maxRetries?: number;
18
+ retryDelay?: number;
19
+ staleTimeout?: number;
20
+ });
29
21
  /**
30
- * Gets the next message from the queue
31
- * @returns Next message or undefined if queue is empty
22
+ * Add a message to the queue
32
23
  */
33
- dequeue(): NostrWSMessage | undefined;
24
+ enqueue(message: NostrWSMessage): Promise<void>;
34
25
  /**
35
- * Handles message retry logic
36
- * @param message Message that failed to send
37
- * @returns true if message was requeued, false if max retries exceeded
26
+ * Process messages in the queue
38
27
  */
39
- retry(message: NostrWSMessage): Promise<boolean>;
28
+ private processQueue;
40
29
  /**
41
- * Gets the current size of the queue
30
+ * Get the current size of the queue
42
31
  */
43
- get size(): number;
32
+ getSize(): number;
44
33
  /**
45
- * Clears all messages from the queue
34
+ * Clear all messages from the queue
46
35
  */
47
36
  clear(): void;
48
- /**
49
- * Gets messages that have been in the queue longer than the specified duration
50
- * @param duration Duration in milliseconds
51
- * @returns Array of stale messages
52
- */
53
- getStaleMessages(duration: number): NostrWSMessage[];
54
- /**
55
- * Removes messages that have been in the queue longer than the specified duration
56
- * @param duration Duration in milliseconds
57
- * @returns Number of messages removed
58
- */
59
- removeStaleMessages(duration: number): number;
60
37
  }
61
- export {};
38
+ //# sourceMappingURL=queue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../src/core/queue.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAA8B,MAAM,UAAU,CAAC;AAItE;;GAEG;AACH,qBAAa,YAAY;IAMrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAN1B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmB;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,UAAU,CAAS;gBAGR,MAAM,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,EAClD,OAAO,GAAE;QACxB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;KAClB;IAKR;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BrD;;OAEG;YACW,YAAY;IAwD1B;;OAEG;IACH,OAAO,IAAI,MAAM;IAIjB;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd"}
@@ -1,108 +1,101 @@
1
1
  /**
2
- * @file Message queue implementation for WebSocket communication
2
+ * @file Message queue implementation
3
3
  * @module core/queue
4
4
  */
5
- import { MessagePriority } from '../types/messages';
6
- import { getLogger } from '../utils/logger';
7
- const logger = getLogger('queue');
5
+ import { MessagePriority } from '../types';
6
+ import { createLogger } from '../utils/logger';
8
7
  /**
9
- * Message queue implementation with priority handling and retry logic
8
+ * Message queue implementation for handling WebSocket messages
10
9
  */
11
10
  export class MessageQueue {
12
- constructor(options = {}) {
11
+ constructor(sender, options = {}) {
12
+ this.sender = sender;
13
+ this.options = options;
13
14
  this.queue = [];
14
- this.maxSize = options.maxSize || 1000;
15
- this.maxRetries = options.maxRetries || 3;
16
- this.retryDelay = options.retryDelay || 1000;
15
+ this.processing = false;
16
+ this.logger = createLogger('MessageQueue');
17
17
  }
18
18
  /**
19
- * Adds a message to the queue with priority handling
20
- * @param message Message to enqueue
21
- * @returns true if message was added, false if queue is full
19
+ * Add a message to the queue
22
20
  */
23
- enqueue(message) {
24
- if (this.queue.length >= this.maxSize) {
25
- logger.warn({ message }, 'Queue is full, message dropped');
26
- return false;
21
+ async enqueue(message) {
22
+ if (this.options.maxSize &&
23
+ this.queue.length >= this.options.maxSize) {
24
+ throw new Error('Queue is full');
27
25
  }
28
- const queuedMessage = {
29
- ...message,
30
- priority: message.priority || MessagePriority.MEDIUM,
26
+ const [type, ...data] = message;
27
+ const queueItem = {
28
+ type,
29
+ data: data.length === 1 ? data[0] : data,
30
+ priority: MessagePriority.NORMAL,
31
31
  queuedAt: Date.now(),
32
32
  retryCount: 0
33
33
  };
34
- // Insert message in priority order
35
- const insertIndex = this.queue.findIndex(m => (m.priority || MessagePriority.MEDIUM) > queuedMessage.priority);
36
- if (insertIndex === -1) {
37
- this.queue.push(queuedMessage);
34
+ this.queue.push(queueItem);
35
+ this.queue.sort((a, b) => (a.priority === b.priority) ?
36
+ (a.queuedAt - b.queuedAt) :
37
+ (a.priority === MessagePriority.HIGH ? -1 : 1));
38
+ if (!this.processing) {
39
+ this.processQueue().catch(error => {
40
+ this.logger.error({ error }, 'Error processing queue');
41
+ });
38
42
  }
39
- else {
40
- this.queue.splice(insertIndex, 0, queuedMessage);
41
- }
42
- logger.debug({ message: queuedMessage }, 'Message enqueued');
43
- return true;
44
- }
45
- /**
46
- * Gets the next message from the queue
47
- * @returns Next message or undefined if queue is empty
48
- */
49
- dequeue() {
50
- return this.queue.shift();
51
43
  }
52
44
  /**
53
- * Handles message retry logic
54
- * @param message Message that failed to send
55
- * @returns true if message was requeued, false if max retries exceeded
45
+ * Process messages in the queue
56
46
  */
57
- async retry(message) {
58
- const retryCount = (message.retryCount || 0) + 1;
59
- if (retryCount > this.maxRetries) {
60
- logger.warn({ message }, 'Max retries exceeded, message dropped');
61
- return false;
47
+ async processQueue() {
48
+ if (this.processing || this.queue.length === 0) {
49
+ return;
50
+ }
51
+ this.processing = true;
52
+ try {
53
+ while (this.queue.length > 0) {
54
+ const item = this.queue[0];
55
+ const message = [item.type, item.data];
56
+ try {
57
+ await this.sender(message);
58
+ this.queue.shift();
59
+ }
60
+ catch (error) {
61
+ this.logger.error({ error, message }, 'Failed to send message');
62
+ if (this.options.maxRetries &&
63
+ item.retryCount >= this.options.maxRetries) {
64
+ this.logger.warn({ message }, 'Max retries reached, removing message from queue');
65
+ this.queue.shift();
66
+ continue;
67
+ }
68
+ item.retryCount++;
69
+ await new Promise(resolve => setTimeout(resolve, this.options.retryDelay || 1000));
70
+ }
71
+ }
72
+ }
73
+ finally {
74
+ this.processing = false;
75
+ }
76
+ // Clean up stale messages
77
+ if (this.options.staleTimeout) {
78
+ const now = Date.now();
79
+ const staleTimeout = this.options.staleTimeout;
80
+ this.queue.forEach((message, index) => {
81
+ if (now - message.queuedAt > staleTimeout) {
82
+ this.logger.warn({ message }, 'Message is stale, removing from queue');
83
+ this.queue.splice(index, 1);
84
+ }
85
+ });
62
86
  }
63
- // Wait before retrying
64
- await new Promise(resolve => setTimeout(resolve, this.retryDelay * retryCount));
65
- return this.enqueue({
66
- ...message,
67
- retryCount,
68
- queuedAt: Date.now()
69
- });
70
87
  }
71
88
  /**
72
- * Gets the current size of the queue
89
+ * Get the current size of the queue
73
90
  */
74
- get size() {
91
+ getSize() {
75
92
  return this.queue.length;
76
93
  }
77
94
  /**
78
- * Clears all messages from the queue
95
+ * Clear all messages from the queue
79
96
  */
80
97
  clear() {
81
- this.queue = [];
82
- logger.info('Queue cleared');
83
- }
84
- /**
85
- * Gets messages that have been in the queue longer than the specified duration
86
- * @param duration Duration in milliseconds
87
- * @returns Array of stale messages
88
- */
89
- getStaleMessages(duration) {
90
- const now = Date.now();
91
- return this.queue.filter(message => message.queuedAt && (now - message.queuedAt) > duration);
92
- }
93
- /**
94
- * Removes messages that have been in the queue longer than the specified duration
95
- * @param duration Duration in milliseconds
96
- * @returns Number of messages removed
97
- */
98
- removeStaleMessages(duration) {
99
- const now = Date.now();
100
- const initialSize = this.queue.length;
101
- this.queue = this.queue.filter(message => message.queuedAt && (now - message.queuedAt) <= duration);
102
- const removedCount = initialSize - this.queue.length;
103
- if (removedCount > 0) {
104
- logger.info({ removedCount }, 'Stale messages removed from queue');
105
- }
106
- return removedCount;
98
+ this.queue.length = 0;
107
99
  }
108
100
  }
101
+ //# sourceMappingURL=queue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queue.js","sourceRoot":"","sources":["../../src/core/queue.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,7 @@ export declare class NostrWSServer {
16
16
  * Set up WebSocket server event handlers
17
17
  */
18
18
  private setupServer;
19
+ private handleMessage;
19
20
  /**
20
21
  * Start ping interval to check client connections
21
22
  */
@@ -25,3 +26,4 @@ export declare class NostrWSServer {
25
26
  */
26
27
  stop(): void;
27
28
  }
29
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/core/server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAE,oBAAoB,EAAuB,MAAM,oBAAoB,CAAC;AAO/E;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,GAAG,CAAkB;IAC7B,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,WAAW,CAAC,CAAc;IAClC,OAAO,CAAC,YAAY,CAAC,CAAiB;gBAE1B,OAAO,EAAE,oBAAoB;IAyBzC;;OAEG;IACH,OAAO,CAAC,WAAW;YA2CL,aAAa;IAuB3B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAgBzB;;OAEG;IACI,IAAI,IAAI,IAAI;CAYpB"}
@@ -2,11 +2,11 @@
2
2
  * @file WebSocket server implementation
3
3
  * @module core/server
4
4
  */
5
- import { WebSocketServer, WebSocket } from 'ws';
6
- import { v4 as uuidv4 } from 'uuid';
7
- import { getLogger } from '../utils/logger';
5
+ import { WebSocket, WebSocketServer } from 'ws';
6
+ import { createLogger } from '../utils/logger';
8
7
  import { createRateLimiter } from '../utils/rate-limiter';
9
- const logger = getLogger('NostrWSServer');
8
+ import { v4 as uuidv4 } from 'uuid';
9
+ const logger = createLogger('NostrWSServer');
10
10
  /**
11
11
  * NostrWSServer class for handling WebSocket connections
12
12
  */
@@ -49,15 +49,8 @@ export class NostrWSServer {
49
49
  }
50
50
  socket.on('message', async (data) => {
51
51
  try {
52
- const message = JSON.parse(data.toString());
53
- if (this.rateLimiter && await this.rateLimiter.shouldLimit(socket.clientId, message)) {
54
- socket.send(JSON.stringify({
55
- type: 'NOTICE',
56
- data: { message: 'Rate limit exceeded' }
57
- }));
58
- return;
59
- }
60
- await this.options.onMessage?.(message, socket);
52
+ const rawMessage = data.toString();
53
+ await this.handleMessage(socket, rawMessage);
61
54
  }
62
55
  catch (error) {
63
56
  logger.error('Error processing message:', error);
@@ -78,6 +71,28 @@ export class NostrWSServer {
78
71
  await this.options.onConnection?.(socket);
79
72
  });
80
73
  }
74
+ async handleMessage(socket, rawMessage) {
75
+ try {
76
+ // Parse the message as a NostrWSMessage tuple
77
+ const message = JSON.parse(rawMessage);
78
+ // Rate limiting check
79
+ if (this.rateLimiter && await this.rateLimiter.shouldLimit(socket.clientId, message)) {
80
+ logger.debug(`Rate limit exceeded for client ${socket.clientId}`);
81
+ socket.send(JSON.stringify(['NOTICE', 'Rate limit exceeded']));
82
+ return;
83
+ }
84
+ // Process message
85
+ try {
86
+ await this.options.onMessage?.(message, socket);
87
+ }
88
+ catch (error) {
89
+ this.options.onError?.(error, socket);
90
+ }
91
+ }
92
+ catch (error) {
93
+ this.options.onError?.(error, socket);
94
+ }
95
+ }
81
96
  /**
82
97
  * Start ping interval to check client connections
83
98
  */
@@ -112,3 +127,4 @@ export class NostrWSServer {
112
127
  this.wss.close();
113
128
  }
114
129
  }
130
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/core/server.ts"],"names":[],"mappings":"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"}
@@ -24,3 +24,4 @@ export declare function decodeFromBech32(str: string): {
24
24
  prefix: string;
25
25
  hex: string;
26
26
  };
27
+ //# sourceMappingURL=bech32.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bech32.d.ts","sourceRoot":"","sources":["../../src/crypto/bech32.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAkHH;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAGhE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CA+BzE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAI/D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAK7E"}
@@ -161,3 +161,4 @@ export function decodeFromBech32(str) {
161
161
  const hex = bytes.map(b => b.toString(16).padStart(2, '0')).join('');
162
162
  return { prefix: hrp, hex };
163
163
  }
164
+ //# sourceMappingURL=bech32.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bech32.js","sourceRoot":"","sources":["../../src/crypto/bech32.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,OAAO,GAAG,kCAAkC,CAAC;AACnD,MAAM,SAAS,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AAE/E;;GAEG;AACH,SAAS,OAAO,CAAC,IAAc;IAC7B,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAAC,GAAW;IAC5B,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7C,IAAI,KAAK,KAAK,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACzE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,OAAO,CAAC,MAAgB;IAC/B,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,GAAG,GAAG,GAAG,IAAI,EAAE,CAAC;QACtB,GAAG,GAAG,CAAC,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;gBACnB,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAAC,GAAW;IAC5B,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACtC,CAAC;IACD,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,GAAW,EAAE,IAAc;IACjD,OAAO,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;AACpD,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,GAAW,EAAE,IAAc;IACjD,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACtE,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,IAAc,EAAE,QAAgB,EAAE,MAAc,EAAE,GAAY;IACjF,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;IAE/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QACnC,CAAC;QACD,GAAG,GAAG,CAAC,GAAG,IAAI,QAAQ,CAAC,GAAG,KAAK,CAAC;QAChC,IAAI,IAAI,QAAQ,CAAC;QACjB,OAAO,IAAI,IAAI,MAAM,EAAE,CAAC;YACtB,IAAI,IAAI,MAAM,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED,IAAI,GAAG,EAAE,CAAC;QACR,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;SAAM,IAAI,IAAI,IAAI,QAAQ,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW,EAAE,IAAc;IACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IACxD,OAAO,GAAG,GAAG,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC;YACtD,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvC,CAAC;QACD,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,GAAG;YAAE,KAAK,GAAG,IAAI,CAAC;QACtE,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE;YAAE,KAAK,GAAG,IAAI,CAAC;IACvE,CAAC;IACD,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,GAAG,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IAChD,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAE/C,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,GAAW,EAAE,GAAW;IACrD,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACzF,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IACxD,OAAO,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IAC7C,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAC9B,CAAC"}
@@ -9,3 +9,11 @@ import type { NostrWSMessage } from '../types/messages';
9
9
  * @returns Promise resolving to true if message is valid
10
10
  */
11
11
  export declare function validateSignedMessage(message: NostrWSMessage): Promise<boolean>;
12
+ /**
13
+ * Validates a signature
14
+ * @param message - Message to validate
15
+ * @param logger - Logger instance
16
+ * @returns True if signature is valid
17
+ */
18
+ export declare function validateSignature(message: NostrWSMessage, logger: any): boolean;
19
+ //# sourceMappingURL=handlers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/crypto/handlers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAOxD;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,OAAO,CAAC,CAyBlB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAkB/E"}
@@ -13,11 +13,11 @@ const logger = getLogger('crypto');
13
13
  */
14
14
  export async function validateSignedMessage(message) {
15
15
  try {
16
- if (message.type !== MESSAGE_TYPES.EVENT || !message.data) {
16
+ if (!Array.isArray(message) || message[0] !== MESSAGE_TYPES.EVENT || !message[1]) {
17
17
  logger.debug('Invalid message format');
18
18
  return false;
19
19
  }
20
- const event = message.data;
20
+ const event = message[1];
21
21
  if (!validateEvent(event)) {
22
22
  logger.debug('Invalid event format');
23
23
  return false;
@@ -34,3 +34,28 @@ export async function validateSignedMessage(message) {
34
34
  return false;
35
35
  }
36
36
  }
37
+ /**
38
+ * Validates a signature
39
+ * @param message - Message to validate
40
+ * @param logger - Logger instance
41
+ * @returns True if signature is valid
42
+ */
43
+ export function validateSignature(message, logger) {
44
+ try {
45
+ if (!Array.isArray(message) || message[0] !== MESSAGE_TYPES.EVENT) {
46
+ return true; // Not an event message
47
+ }
48
+ const event = message[1];
49
+ if (!event.sig || typeof event.sig !== 'string') {
50
+ logger.debug('Missing or invalid signature');
51
+ return false;
52
+ }
53
+ // Additional validation logic...
54
+ return true;
55
+ }
56
+ catch (error) {
57
+ logger.error('Error validating signature:', error);
58
+ return false;
59
+ }
60
+ }
61
+ //# sourceMappingURL=handlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/crypto/handlers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEpE,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAEnC;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,OAAuB;IAEvB,IAAI,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACjF,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;YACvC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAe,CAAC;QAEvC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;YACrC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,KAAyB,CAAC,CAAC;QACjE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;YAClC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;QACxD,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAuB,EAAE,MAAW;IACpE,IAAI,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,KAAK,EAAE,CAAC;YAClE,OAAO,IAAI,CAAC,CAAC,uBAAuB;QACtC,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAe,CAAC;QACvC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;YAChD,MAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAC7C,OAAO,KAAK,CAAC;QACf,CAAC;QAED,iCAAiC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;QACnD,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -3,3 +3,4 @@
3
3
  * @module crypto
4
4
  */
5
5
  export * from './handlers';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/crypto/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,YAAY,CAAC"}
@@ -3,3 +3,4 @@
3
3
  * @module crypto
4
4
  */
5
5
  export * from './handlers';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/crypto/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,YAAY,CAAC"}
@@ -27,3 +27,4 @@ export declare class MetricsEndpoint {
27
27
  stop(): Promise<void>;
28
28
  }
29
29
  export declare const metricsEndpoint: MetricsEndpoint;
30
+ //# sourceMappingURL=metrics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../src/endpoints/metrics.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE;QACL,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAC;IACf,OAAO,CAAC,OAAO,CAAmC;gBAEtC,OAAO,GAAE,sBAA2B;IAWhD,OAAO,CAAC,SAAS;YAgBH,aAAa;IA0C3B;;OAEG;IACI,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAa7B;;OAEG;IACI,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAW7B;AAGD,eAAO,MAAM,eAAe,iBAAwB,CAAC"}
@@ -99,3 +99,4 @@ export class MetricsEndpoint {
99
99
  }
100
100
  // Export singleton instance with default configuration
101
101
  export const metricsEndpoint = new MetricsEndpoint();
102
+ //# sourceMappingURL=metrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/endpoints/metrics.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -10,3 +10,4 @@ export { getLogger } from './utils/logger.js';
10
10
  export * from './crypto';
11
11
  export * from './nips';
12
12
  export * from './types';
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,aAAa,IAAI,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,cAAc,IAAI,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAGxE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAG9C,cAAc,UAAU,CAAC;AAGzB,cAAc,QAAQ,CAAC;AAGvB,cAAc,SAAS,CAAC"}
package/dist/index.js CHANGED
@@ -15,3 +15,4 @@ export * from './crypto';
15
15
  export * from './nips';
16
16
  // Type definitions
17
17
  export * from './types';
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,qBAAqB;AACrB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,aAAa,IAAI,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,cAAc,IAAI,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAExE,YAAY;AACZ,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,oBAAoB;AACpB,cAAc,UAAU,CAAC;AAEzB,sBAAsB;AACtB,cAAc,QAAQ,CAAC;AAEvB,mBAAmB;AACnB,cAAc,SAAS,CAAC"}
@@ -17,3 +17,4 @@ export * from './nip-15';
17
17
  export * from './nip-22';
18
18
  export * from './nip-28';
19
19
  export * from './nip-33';
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/nips/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,cAAc,UAAU,CAAC;AAGzB,cAAc,UAAU,CAAC;AAGzB,cAAc,UAAU,CAAC;AAGzB,cAAc,UAAU,CAAC;AAGzB,cAAc,UAAU,CAAC;AAGzB,cAAc,UAAU,CAAC;AAGzB,cAAc,UAAU,CAAC;AAGzB,cAAc,UAAU,CAAC;AAGzB,cAAc,UAAU,CAAC;AAGzB,cAAc,UAAU,CAAC;AAGzB,cAAc,UAAU,CAAC;AAGzB,cAAc,UAAU,CAAC;AAGzB,cAAc,UAAU,CAAC;AAGzB,cAAc,UAAU,CAAC;AAGzB,cAAc,UAAU,CAAC"}
@@ -32,3 +32,4 @@ export * from './nip-22';
32
32
  export * from './nip-28';
33
33
  // Parameterized Replaceable Events
34
34
  export * from './nip-33';
35
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/nips/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,sBAAsB;AACtB,cAAc,UAAU,CAAC;AAEzB,4BAA4B;AAC5B,cAAc,UAAU,CAAC;AAEzB,4BAA4B;AAC5B,cAAc,UAAU,CAAC;AAEzB,4BAA4B;AAC5B,cAAc,UAAU,CAAC;AAEzB,iBAAiB;AACjB,cAAc,UAAU,CAAC;AAEzB,0BAA0B;AAC1B,cAAc,UAAU,CAAC;AAEzB,0BAA0B;AAC1B,cAAc,UAAU,CAAC;AAEzB,6BAA6B;AAC7B,cAAc,UAAU,CAAC;AAEzB,kBAAkB;AAClB,cAAc,UAAU,CAAC;AAEzB,gBAAgB;AAChB,cAAc,UAAU,CAAC;AAEzB,kBAAkB;AAClB,cAAc,UAAU,CAAC;AAEzB,8BAA8B;AAC9B,cAAc,UAAU,CAAC;AAEzB,0BAA0B;AAC1B,cAAc,UAAU,CAAC;AAEzB,cAAc;AACd,cAAc,UAAU,CAAC;AAEzB,mCAAmC;AACnC,cAAc,UAAU,CAAC"}
@@ -2,7 +2,7 @@
2
2
  * @file NIP-01: Basic protocol flow implementation
3
3
  * @module nips/nip-01
4
4
  */
5
- import type { NostrWSMessage } from '../types/messages';
5
+ import type { NostrWSMessage, NostrEvent } from '../types/messages';
6
6
  interface NostrEventValidationResult {
7
7
  valid: boolean;
8
8
  error?: string;
@@ -14,7 +14,7 @@ export declare function validateMessage(message: NostrWSMessage): boolean;
14
14
  /**
15
15
  * Creates an EVENT message
16
16
  */
17
- export declare function createEventMessage(event: Record<string, unknown>): NostrWSMessage;
17
+ export declare function createEventMessage(event: NostrEvent): NostrWSMessage;
18
18
  /**
19
19
  * Creates a REQ message
20
20
  */
@@ -30,5 +30,6 @@ export declare function createNoticeMessage(message: string): NostrWSMessage;
30
30
  /**
31
31
  * Validates a Nostr event according to NIP-01
32
32
  */
33
- export declare function validateEvent(event: unknown): NostrEventValidationResult;
33
+ export declare function validateEvent(event: NostrEvent): NostrEventValidationResult;
34
34
  export {};
35
+ //# sourceMappingURL=nip-01.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nip-01.d.ts","sourceRoot":"","sources":["../../src/nips/nip-01.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAKpE,UAAU,0BAA0B;IAClC,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAoChE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG,cAAc,CAEpE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,cAAc,CAKhH;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,cAAc,CAIzE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,CAInE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,0BAA0B,CA+C3E"}