nostr-websocket-utils 0.3.0 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (411) hide show
  1. package/README.md +8 -7
  2. package/dist/__mocks__/extendedWsMock.d.ts +31 -14
  3. package/dist/__mocks__/extendedWsMock.d.ts.map +1 -0
  4. package/dist/__mocks__/extendedWsMock.js +7 -6
  5. package/dist/__mocks__/extendedWsMock.js.map +1 -0
  6. package/dist/__mocks__/mockLogger.d.ts +8 -7
  7. package/dist/__mocks__/mockLogger.d.ts.map +1 -0
  8. package/dist/__mocks__/mockLogger.js +1 -0
  9. package/dist/__mocks__/mockLogger.js.map +1 -0
  10. package/dist/__mocks__/mockserver.d.ts +7 -11
  11. package/dist/__mocks__/mockserver.d.ts.map +1 -0
  12. package/dist/__mocks__/mockserver.js +1 -0
  13. package/dist/__mocks__/mockserver.js.map +1 -0
  14. package/dist/__mocks__/wsMock.d.ts +1 -2
  15. package/dist/__mocks__/wsMock.d.ts.map +1 -0
  16. package/dist/__mocks__/wsMock.js +1 -0
  17. package/dist/__mocks__/wsMock.js.map +1 -0
  18. package/dist/cjs/__mocks__/extendedWsMock.d.ts +52 -0
  19. package/dist/cjs/__mocks__/extendedWsMock.d.ts.map +1 -0
  20. package/dist/cjs/__mocks__/extendedWsMock.js +161 -0
  21. package/dist/cjs/__mocks__/extendedWsMock.js.map +1 -0
  22. package/dist/cjs/__mocks__/mockLogger.d.ts +42 -0
  23. package/dist/cjs/__mocks__/mockLogger.d.ts.map +1 -0
  24. package/dist/cjs/__mocks__/mockLogger.js +53 -0
  25. package/dist/cjs/__mocks__/mockLogger.js.map +1 -0
  26. package/dist/cjs/__mocks__/mockserver.d.ts +27 -0
  27. package/dist/cjs/__mocks__/mockserver.d.ts.map +1 -0
  28. package/dist/cjs/__mocks__/mockserver.js +44 -0
  29. package/dist/cjs/__mocks__/mockserver.js.map +1 -0
  30. package/dist/cjs/__mocks__/wsMock.d.ts +25 -0
  31. package/dist/cjs/__mocks__/wsMock.d.ts.map +1 -0
  32. package/dist/cjs/__mocks__/wsMock.js +123 -0
  33. package/dist/cjs/__mocks__/wsMock.js.map +1 -0
  34. package/dist/cjs/core/client.d.ts +35 -0
  35. package/dist/cjs/core/client.d.ts.map +1 -0
  36. package/dist/cjs/core/client.js +161 -0
  37. package/dist/cjs/core/client.js.map +1 -0
  38. package/dist/{nostr-server.d.ts → cjs/core/nostr-server.d.ts} +3 -6
  39. package/dist/cjs/core/nostr-server.d.ts.map +1 -0
  40. package/dist/cjs/core/nostr-server.js +101 -0
  41. package/dist/cjs/core/nostr-server.js.map +1 -0
  42. package/dist/cjs/core/queue.d.ts +38 -0
  43. package/dist/cjs/core/queue.d.ts.map +1 -0
  44. package/dist/cjs/core/queue.js +105 -0
  45. package/dist/cjs/core/queue.js.map +1 -0
  46. package/dist/cjs/core/server.d.ts +29 -0
  47. package/dist/cjs/core/server.d.ts.map +1 -0
  48. package/dist/cjs/core/server.js +134 -0
  49. package/dist/cjs/core/server.js.map +1 -0
  50. package/dist/cjs/crypto/bech32.d.ts +27 -0
  51. package/dist/cjs/crypto/bech32.d.ts.map +1 -0
  52. package/dist/cjs/crypto/bech32.js +170 -0
  53. package/dist/cjs/crypto/bech32.js.map +1 -0
  54. package/dist/cjs/crypto/handlers.d.ts +19 -0
  55. package/dist/cjs/crypto/handlers.d.ts.map +1 -0
  56. package/dist/cjs/crypto/handlers.js +65 -0
  57. package/dist/cjs/crypto/handlers.js.map +1 -0
  58. package/dist/cjs/crypto/index.d.ts +6 -0
  59. package/dist/cjs/crypto/index.d.ts.map +1 -0
  60. package/dist/cjs/crypto/index.js +22 -0
  61. package/dist/cjs/crypto/index.js.map +1 -0
  62. package/dist/cjs/endpoints/metrics.d.ts +30 -0
  63. package/dist/cjs/endpoints/metrics.d.ts.map +1 -0
  64. package/dist/cjs/endpoints/metrics.js +106 -0
  65. package/dist/cjs/endpoints/metrics.js.map +1 -0
  66. package/dist/cjs/index.d.ts +13 -0
  67. package/dist/cjs/index.d.ts.map +1 -0
  68. package/dist/cjs/index.js +40 -0
  69. package/dist/cjs/index.js.map +1 -0
  70. package/dist/cjs/nips/index.d.ts +20 -0
  71. package/dist/cjs/nips/index.d.ts.map +1 -0
  72. package/dist/cjs/nips/index.js +51 -0
  73. package/dist/cjs/nips/index.js.map +1 -0
  74. package/dist/cjs/nips/nip-01.d.ts +35 -0
  75. package/dist/cjs/nips/nip-01.d.ts.map +1 -0
  76. package/dist/cjs/nips/nip-01.js +142 -0
  77. package/dist/cjs/nips/nip-01.js.map +1 -0
  78. package/dist/cjs/nips/nip-02.d.ts +83 -0
  79. package/dist/cjs/nips/nip-02.d.ts.map +1 -0
  80. package/dist/cjs/nips/nip-02.js +119 -0
  81. package/dist/cjs/nips/nip-02.js.map +1 -0
  82. package/dist/cjs/nips/nip-04.d.ts +37 -0
  83. package/dist/cjs/nips/nip-04.d.ts.map +1 -0
  84. package/dist/cjs/nips/nip-04.js +104 -0
  85. package/dist/cjs/nips/nip-04.js.map +1 -0
  86. package/dist/cjs/nips/nip-05.d.ts +88 -0
  87. package/dist/cjs/nips/nip-05.d.ts.map +1 -0
  88. package/dist/cjs/nips/nip-05.js +158 -0
  89. package/dist/cjs/nips/nip-05.js.map +1 -0
  90. package/dist/cjs/nips/nip-09.d.ts +93 -0
  91. package/dist/cjs/nips/nip-09.d.ts.map +1 -0
  92. package/dist/cjs/nips/nip-09.js +180 -0
  93. package/dist/cjs/nips/nip-09.js.map +1 -0
  94. package/dist/cjs/nips/nip-11.d.ts +65 -0
  95. package/dist/cjs/nips/nip-11.d.ts.map +1 -0
  96. package/dist/cjs/nips/nip-11.js +161 -0
  97. package/dist/cjs/nips/nip-11.js.map +1 -0
  98. package/dist/cjs/nips/nip-13.d.ts +74 -0
  99. package/dist/cjs/nips/nip-13.d.ts.map +1 -0
  100. package/dist/cjs/nips/nip-13.js +136 -0
  101. package/dist/cjs/nips/nip-13.js.map +1 -0
  102. package/dist/cjs/nips/nip-15.d.ts +84 -0
  103. package/dist/cjs/nips/nip-15.d.ts.map +1 -0
  104. package/dist/cjs/nips/nip-15.js +102 -0
  105. package/dist/cjs/nips/nip-15.js.map +1 -0
  106. package/dist/cjs/nips/nip-16.d.ts +89 -0
  107. package/dist/cjs/nips/nip-16.d.ts.map +1 -0
  108. package/dist/cjs/nips/nip-16.js +157 -0
  109. package/dist/cjs/nips/nip-16.js.map +1 -0
  110. package/dist/cjs/nips/nip-19.d.ts +29 -0
  111. package/dist/cjs/nips/nip-19.d.ts.map +1 -0
  112. package/dist/cjs/nips/nip-19.js +112 -0
  113. package/dist/cjs/nips/nip-19.js.map +1 -0
  114. package/dist/cjs/nips/nip-20.d.ts +60 -0
  115. package/dist/cjs/nips/nip-20.d.ts.map +1 -0
  116. package/dist/cjs/nips/nip-20.js +102 -0
  117. package/dist/cjs/nips/nip-20.js.map +1 -0
  118. package/dist/cjs/nips/nip-22.d.ts +90 -0
  119. package/dist/cjs/nips/nip-22.d.ts.map +1 -0
  120. package/dist/cjs/nips/nip-22.js +149 -0
  121. package/dist/cjs/nips/nip-22.js.map +1 -0
  122. package/dist/cjs/nips/nip-26.d.ts +53 -0
  123. package/dist/cjs/nips/nip-26.d.ts.map +1 -0
  124. package/dist/cjs/nips/nip-26.js +147 -0
  125. package/dist/cjs/nips/nip-26.js.map +1 -0
  126. package/dist/cjs/nips/nip-28.d.ts +104 -0
  127. package/dist/cjs/nips/nip-28.d.ts.map +1 -0
  128. package/dist/cjs/nips/nip-28.js +164 -0
  129. package/dist/cjs/nips/nip-28.js.map +1 -0
  130. package/dist/cjs/nips/nip-33.d.ts +95 -0
  131. package/dist/cjs/nips/nip-33.d.ts.map +1 -0
  132. package/dist/cjs/nips/nip-33.js +135 -0
  133. package/dist/cjs/nips/nip-33.js.map +1 -0
  134. package/dist/cjs/transport/base.d.ts +54 -0
  135. package/dist/cjs/transport/base.d.ts.map +1 -0
  136. package/dist/cjs/transport/base.js +109 -0
  137. package/dist/cjs/transport/base.js.map +1 -0
  138. package/dist/cjs/transport/websocket.d.ts +24 -0
  139. package/dist/cjs/transport/websocket.d.ts.map +1 -0
  140. package/dist/cjs/transport/websocket.js +136 -0
  141. package/dist/cjs/transport/websocket.js.map +1 -0
  142. package/dist/cjs/types/events.d.ts +74 -0
  143. package/dist/cjs/types/events.d.ts.map +1 -0
  144. package/dist/cjs/types/events.js +7 -0
  145. package/dist/cjs/types/events.js.map +1 -0
  146. package/dist/cjs/types/filters.d.ts +20 -0
  147. package/dist/cjs/types/filters.d.ts.map +1 -0
  148. package/dist/cjs/types/filters.js +7 -0
  149. package/dist/cjs/types/filters.js.map +1 -0
  150. package/dist/cjs/types/handlers.d.ts +81 -0
  151. package/dist/cjs/types/handlers.d.ts.map +1 -0
  152. package/dist/cjs/types/handlers.js +7 -0
  153. package/dist/cjs/types/handlers.js.map +1 -0
  154. package/dist/cjs/types/index.d.ts +144 -0
  155. package/dist/cjs/types/index.d.ts.map +1 -0
  156. package/dist/cjs/types/index.js +37 -0
  157. package/dist/cjs/types/index.js.map +1 -0
  158. package/dist/cjs/types/logger.d.ts +41 -0
  159. package/dist/cjs/types/logger.d.ts.map +1 -0
  160. package/dist/cjs/types/logger.js +7 -0
  161. package/dist/cjs/types/logger.js.map +1 -0
  162. package/dist/cjs/types/messages.d.ts +133 -0
  163. package/dist/cjs/types/messages.d.ts.map +1 -0
  164. package/dist/cjs/types/messages.js +46 -0
  165. package/dist/cjs/types/messages.js.map +1 -0
  166. package/dist/cjs/types/nostr.d.ts +134 -0
  167. package/dist/cjs/types/nostr.d.ts.map +1 -0
  168. package/dist/cjs/types/nostr.js +7 -0
  169. package/dist/cjs/types/nostr.js.map +1 -0
  170. package/dist/cjs/types/options.d.ts +155 -0
  171. package/dist/cjs/types/options.d.ts.map +1 -0
  172. package/dist/cjs/types/options.js +7 -0
  173. package/dist/cjs/types/options.js.map +1 -0
  174. package/dist/cjs/types/priority.d.ts +13 -0
  175. package/dist/cjs/types/priority.d.ts.map +1 -0
  176. package/dist/cjs/types/priority.js +17 -0
  177. package/dist/cjs/types/priority.js.map +1 -0
  178. package/dist/cjs/types/relays.d.ts +27 -0
  179. package/dist/cjs/types/relays.d.ts.map +1 -0
  180. package/dist/cjs/types/relays.js +7 -0
  181. package/dist/cjs/types/relays.js.map +1 -0
  182. package/dist/cjs/types/scoring.d.ts +59 -0
  183. package/dist/cjs/types/scoring.d.ts.map +1 -0
  184. package/dist/cjs/types/scoring.js +34 -0
  185. package/dist/cjs/types/scoring.js.map +1 -0
  186. package/dist/cjs/types/socket.d.ts +98 -0
  187. package/dist/cjs/types/socket.d.ts.map +1 -0
  188. package/dist/cjs/types/socket.js +7 -0
  189. package/dist/cjs/types/socket.js.map +1 -0
  190. package/dist/cjs/types/transport.d.ts +98 -0
  191. package/dist/cjs/types/transport.d.ts.map +1 -0
  192. package/dist/cjs/types/transport.js +7 -0
  193. package/dist/cjs/types/transport.js.map +1 -0
  194. package/dist/cjs/types/validation.d.ts +51 -0
  195. package/dist/cjs/types/validation.d.ts.map +1 -0
  196. package/dist/cjs/types/validation.js +7 -0
  197. package/dist/cjs/types/validation.js.map +1 -0
  198. package/dist/cjs/types/websocket.d.ts +250 -0
  199. package/dist/cjs/types/websocket.d.ts.map +1 -0
  200. package/dist/cjs/types/websocket.js +7 -0
  201. package/dist/cjs/types/websocket.js.map +1 -0
  202. package/dist/cjs/utils/http.d.ts +11 -0
  203. package/dist/cjs/utils/http.d.ts.map +1 -0
  204. package/dist/cjs/utils/http.js +28 -0
  205. package/dist/cjs/utils/http.js.map +1 -0
  206. package/dist/cjs/utils/logger.d.ts +26 -0
  207. package/dist/cjs/utils/logger.d.ts.map +1 -0
  208. package/dist/cjs/utils/logger.js +43 -0
  209. package/dist/cjs/utils/logger.js.map +1 -0
  210. package/dist/cjs/utils/metrics.d.ts +81 -0
  211. package/dist/cjs/utils/metrics.d.ts.map +1 -0
  212. package/dist/cjs/utils/metrics.js +211 -0
  213. package/dist/cjs/utils/metrics.js.map +1 -0
  214. package/dist/cjs/utils/rate-limiter.d.ts +86 -0
  215. package/dist/cjs/utils/rate-limiter.d.ts.map +1 -0
  216. package/dist/cjs/utils/rate-limiter.js +183 -0
  217. package/dist/cjs/utils/rate-limiter.js.map +1 -0
  218. package/dist/core/client.d.ts +21 -80
  219. package/dist/core/client.d.ts.map +1 -0
  220. package/dist/core/client.js +110 -316
  221. package/dist/core/client.js.map +1 -0
  222. package/dist/core/nostr-server.d.ts +1 -0
  223. package/dist/core/nostr-server.d.ts.map +1 -0
  224. package/dist/core/nostr-server.js +1 -0
  225. package/dist/core/nostr-server.js.map +1 -0
  226. package/dist/core/queue.d.ts +22 -45
  227. package/dist/core/queue.d.ts.map +1 -0
  228. package/dist/core/queue.js +72 -79
  229. package/dist/core/queue.js.map +1 -0
  230. package/dist/core/server.d.ts +2 -0
  231. package/dist/core/server.d.ts.map +1 -0
  232. package/dist/core/server.js +29 -13
  233. package/dist/core/server.js.map +1 -0
  234. package/dist/crypto/bech32.d.ts +1 -0
  235. package/dist/crypto/bech32.d.ts.map +1 -0
  236. package/dist/crypto/bech32.js +1 -0
  237. package/dist/crypto/bech32.js.map +1 -0
  238. package/dist/crypto/handlers.d.ts +8 -0
  239. package/dist/crypto/handlers.d.ts.map +1 -0
  240. package/dist/crypto/handlers.js +27 -2
  241. package/dist/crypto/handlers.js.map +1 -0
  242. package/dist/crypto/index.d.ts +1 -0
  243. package/dist/crypto/index.d.ts.map +1 -0
  244. package/dist/crypto/index.js +1 -0
  245. package/dist/crypto/index.js.map +1 -0
  246. package/dist/endpoints/metrics.d.ts +1 -0
  247. package/dist/endpoints/metrics.d.ts.map +1 -0
  248. package/dist/endpoints/metrics.js +1 -0
  249. package/dist/endpoints/metrics.js.map +1 -0
  250. package/dist/index.d.ts +1 -0
  251. package/dist/index.d.ts.map +1 -0
  252. package/dist/index.js +1 -0
  253. package/dist/index.js.map +1 -0
  254. package/dist/nips/index.d.ts +1 -0
  255. package/dist/nips/index.d.ts.map +1 -0
  256. package/dist/nips/index.js +1 -0
  257. package/dist/nips/index.js.map +1 -0
  258. package/dist/nips/nip-01.d.ts +4 -3
  259. package/dist/nips/nip-01.d.ts.map +1 -0
  260. package/dist/nips/nip-01.js +18 -29
  261. package/dist/nips/nip-01.js.map +1 -0
  262. package/dist/nips/nip-02.d.ts +2 -2
  263. package/dist/nips/nip-02.d.ts.map +1 -0
  264. package/dist/nips/nip-02.js +14 -25
  265. package/dist/nips/nip-02.js.map +1 -0
  266. package/dist/nips/nip-04.d.ts +1 -0
  267. package/dist/nips/nip-04.d.ts.map +1 -0
  268. package/dist/nips/nip-04.js +16 -23
  269. package/dist/nips/nip-04.js.map +1 -0
  270. package/dist/nips/nip-05.d.ts +4 -2
  271. package/dist/nips/nip-05.d.ts.map +1 -0
  272. package/dist/nips/nip-05.js +1 -0
  273. package/dist/nips/nip-05.js.map +1 -0
  274. package/dist/nips/nip-09.d.ts +2 -1
  275. package/dist/nips/nip-09.d.ts.map +1 -0
  276. package/dist/nips/nip-09.js +7 -25
  277. package/dist/nips/nip-09.js.map +1 -0
  278. package/dist/nips/nip-11.d.ts +1 -0
  279. package/dist/nips/nip-11.d.ts.map +1 -0
  280. package/dist/nips/nip-11.js +1 -0
  281. package/dist/nips/nip-11.js.map +1 -0
  282. package/dist/nips/nip-13.d.ts +1 -0
  283. package/dist/nips/nip-13.d.ts.map +1 -0
  284. package/dist/nips/nip-13.js +3 -2
  285. package/dist/nips/nip-13.js.map +1 -0
  286. package/dist/nips/nip-15.d.ts +1 -0
  287. package/dist/nips/nip-15.d.ts.map +1 -0
  288. package/dist/nips/nip-15.js +2 -6
  289. package/dist/nips/nip-15.js.map +1 -0
  290. package/dist/nips/nip-16.d.ts +1 -0
  291. package/dist/nips/nip-16.d.ts.map +1 -0
  292. package/dist/nips/nip-16.js +3 -2
  293. package/dist/nips/nip-16.js.map +1 -0
  294. package/dist/nips/nip-19.d.ts +1 -0
  295. package/dist/nips/nip-19.d.ts.map +1 -0
  296. package/dist/nips/nip-19.js +1 -0
  297. package/dist/nips/nip-19.js.map +1 -0
  298. package/dist/nips/nip-20.d.ts +2 -1
  299. package/dist/nips/nip-20.d.ts.map +1 -0
  300. package/dist/nips/nip-20.js +20 -20
  301. package/dist/nips/nip-20.js.map +1 -0
  302. package/dist/nips/nip-22.d.ts +1 -0
  303. package/dist/nips/nip-22.d.ts.map +1 -0
  304. package/dist/nips/nip-22.js +4 -3
  305. package/dist/nips/nip-22.js.map +1 -0
  306. package/dist/nips/nip-26.d.ts +1 -0
  307. package/dist/nips/nip-26.d.ts.map +1 -0
  308. package/dist/nips/nip-26.js +1 -0
  309. package/dist/nips/nip-26.js.map +1 -0
  310. package/dist/nips/nip-28.d.ts +1 -0
  311. package/dist/nips/nip-28.d.ts.map +1 -0
  312. package/dist/nips/nip-28.js +17 -31
  313. package/dist/nips/nip-28.js.map +1 -0
  314. package/dist/nips/nip-33.d.ts +1 -0
  315. package/dist/nips/nip-33.d.ts.map +1 -0
  316. package/dist/nips/nip-33.js +7 -12
  317. package/dist/nips/nip-33.js.map +1 -0
  318. package/dist/transport/base.d.ts +4 -4
  319. package/dist/transport/base.d.ts.map +1 -0
  320. package/dist/transport/base.js +1 -0
  321. package/dist/transport/base.js.map +1 -0
  322. package/dist/transport/websocket.d.ts +2 -0
  323. package/dist/transport/websocket.d.ts.map +1 -0
  324. package/dist/transport/websocket.js +7 -0
  325. package/dist/transport/websocket.js.map +1 -0
  326. package/dist/types/events.d.ts +12 -1
  327. package/dist/types/events.d.ts.map +1 -0
  328. package/dist/types/events.js +2 -1
  329. package/dist/types/events.js.map +1 -0
  330. package/dist/types/filters.d.ts +1 -0
  331. package/dist/types/filters.d.ts.map +1 -0
  332. package/dist/types/filters.js +1 -0
  333. package/dist/types/filters.js.map +1 -0
  334. package/dist/types/handlers.d.ts +1 -0
  335. package/dist/types/handlers.d.ts.map +1 -0
  336. package/dist/types/handlers.js +1 -0
  337. package/dist/types/handlers.js.map +1 -0
  338. package/dist/types/index.d.ts +13 -6
  339. package/dist/types/index.d.ts.map +1 -0
  340. package/dist/types/index.js +2 -3
  341. package/dist/types/index.js.map +1 -0
  342. package/dist/types/logger.d.ts +1 -0
  343. package/dist/types/logger.d.ts.map +1 -0
  344. package/dist/types/logger.js +1 -0
  345. package/dist/types/logger.js.map +1 -0
  346. package/dist/types/messages.d.ts +68 -70
  347. package/dist/types/messages.d.ts.map +1 -0
  348. package/dist/types/messages.js +28 -26
  349. package/dist/types/messages.js.map +1 -0
  350. package/dist/types/nostr.d.ts +3 -2
  351. package/dist/types/nostr.d.ts.map +1 -0
  352. package/dist/types/nostr.js +1 -0
  353. package/dist/types/nostr.js.map +1 -0
  354. package/dist/types/options.d.ts +1 -0
  355. package/dist/types/options.d.ts.map +1 -0
  356. package/dist/types/options.js +1 -0
  357. package/dist/types/options.js.map +1 -0
  358. package/dist/types/priority.d.ts +13 -0
  359. package/dist/types/priority.d.ts.map +1 -0
  360. package/dist/types/priority.js +14 -0
  361. package/dist/types/priority.js.map +1 -0
  362. package/dist/types/relays.d.ts +1 -0
  363. package/dist/types/relays.d.ts.map +1 -0
  364. package/dist/types/relays.js +1 -0
  365. package/dist/types/relays.js.map +1 -0
  366. package/dist/types/scoring.d.ts +19 -7
  367. package/dist/types/scoring.d.ts.map +1 -0
  368. package/dist/types/scoring.js +2 -1
  369. package/dist/types/scoring.js.map +1 -0
  370. package/dist/types/socket.d.ts +1 -2
  371. package/dist/types/socket.d.ts.map +1 -0
  372. package/dist/types/socket.js +1 -0
  373. package/dist/types/socket.js.map +1 -0
  374. package/dist/types/transport.d.ts +1 -0
  375. package/dist/types/transport.d.ts.map +1 -0
  376. package/dist/types/transport.js +1 -0
  377. package/dist/types/transport.js.map +1 -0
  378. package/dist/types/validation.d.ts +1 -0
  379. package/dist/types/validation.d.ts.map +1 -0
  380. package/dist/types/validation.js +1 -0
  381. package/dist/types/validation.js.map +1 -0
  382. package/dist/types/websocket.d.ts +116 -38
  383. package/dist/types/websocket.d.ts.map +1 -0
  384. package/dist/types/websocket.js +2 -1
  385. package/dist/types/websocket.js.map +1 -0
  386. package/dist/utils/http.d.ts +1 -0
  387. package/dist/utils/http.d.ts.map +1 -0
  388. package/dist/utils/http.js +1 -0
  389. package/dist/utils/http.js.map +1 -0
  390. package/dist/utils/logger.d.ts +17 -2
  391. package/dist/utils/logger.d.ts.map +1 -0
  392. package/dist/utils/logger.js +24 -10
  393. package/dist/utils/logger.js.map +1 -0
  394. package/dist/utils/metrics.d.ts +1 -1
  395. package/dist/utils/metrics.d.ts.map +1 -0
  396. package/dist/utils/metrics.js +1 -0
  397. package/dist/utils/metrics.js.map +1 -0
  398. package/dist/utils/rate-limiter.d.ts +1 -0
  399. package/dist/utils/rate-limiter.d.ts.map +1 -0
  400. package/dist/utils/rate-limiter.js +6 -4
  401. package/dist/utils/rate-limiter.js.map +1 -0
  402. package/package.json +14 -2
  403. package/dist/__mocks__/logger.d.ts +0 -9
  404. package/dist/__mocks__/logger.js +0 -6
  405. package/dist/client.d.ts +0 -129
  406. package/dist/client.js +0 -259
  407. package/dist/crypto/schnorr.d.ts +0 -16
  408. package/dist/crypto/schnorr.js +0 -51
  409. package/dist/nostr-server.js +0 -107
  410. package/dist/server.d.ts +0 -27
  411. package/dist/server.js +0 -132
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nip-28.d.ts","sourceRoot":"","sources":["../../../src/nips/nip-28.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;CAOjB,CAAC;AAEX;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,eAAe,GACxB,cAAc,CAMhB;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,GACf,cAAc,CAWhB;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACb,cAAc,CAShB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtD;;;;OAIG;IACH,gBAAgB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1D;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,CA8D3E;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC;;;;OAIG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,CAAC;IAE7C;;;;OAIG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,CAAC;IAE/C;;;;OAIG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAAC;CACtE;AAED;;;;GAIG;AACH,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,MAAM,GACb,0BAA0B,CAoC5B"}
@@ -0,0 +1,164 @@
1
+ "use strict";
2
+ /**
3
+ * @file NIP-28: Public Chat
4
+ * @module nips/nip-28
5
+ * @see https://github.com/nostr-protocol/nips/blob/master/28.md
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.ChatEventKinds = void 0;
9
+ exports.createChannelCreationEvent = createChannelCreationEvent;
10
+ exports.createChannelMessage = createChannelMessage;
11
+ exports.createHideMessageEvent = createHideMessageEvent;
12
+ exports.createChatMessageHandler = createChatMessageHandler;
13
+ exports.createChannelSubscriptionManager = createChannelSubscriptionManager;
14
+ /**
15
+ * Chat event kinds
16
+ */
17
+ exports.ChatEventKinds = {
18
+ CHANNEL_CREATION: 40,
19
+ CHANNEL_METADATA: 41,
20
+ CHANNEL_MESSAGE: 42,
21
+ CHANNEL_HIDE_MESSAGE: 43,
22
+ CHANNEL_MUTE_USER: 44,
23
+ USER_MUTE: 45
24
+ };
25
+ /**
26
+ * Creates a channel creation message
27
+ * @param metadata - Channel metadata
28
+ * @returns {NostrWSMessage} Channel creation event
29
+ */
30
+ function createChannelCreationEvent(metadata) {
31
+ return ['EVENT', {
32
+ kind: exports.ChatEventKinds.CHANNEL_CREATION,
33
+ content: JSON.stringify(metadata),
34
+ tags: []
35
+ }];
36
+ }
37
+ /**
38
+ * Creates a channel message
39
+ * @param channelId - Channel ID
40
+ * @param content - Message content
41
+ * @param replyTo - Optional ID of message being replied to
42
+ * @returns {NostrWSMessage} Channel message event
43
+ */
44
+ function createChannelMessage(channelId, content, replyTo) {
45
+ const tags = [['e', channelId, '', 'root']];
46
+ if (replyTo) {
47
+ tags.push(['e', replyTo, '', 'reply']);
48
+ }
49
+ return ['EVENT', {
50
+ kind: exports.ChatEventKinds.CHANNEL_MESSAGE,
51
+ content,
52
+ tags
53
+ }];
54
+ }
55
+ /**
56
+ * Creates a message moderation event
57
+ * @param channelId - Channel ID
58
+ * @param messageId - Message ID to moderate
59
+ * @param reason - Moderation reason
60
+ * @returns {NostrWSMessage} Hide message event
61
+ */
62
+ function createHideMessageEvent(channelId, messageId, reason) {
63
+ return ['EVENT', {
64
+ kind: exports.ChatEventKinds.CHANNEL_HIDE_MESSAGE,
65
+ content: reason,
66
+ tags: [
67
+ ['e', channelId, '', 'root'],
68
+ ['e', messageId, '', 'reply']
69
+ ]
70
+ }];
71
+ }
72
+ /**
73
+ * Creates a chat message handler
74
+ * @param logger - Logger instance
75
+ * @returns {ChatMessageHandler} Message handler
76
+ */
77
+ function createChatMessageHandler(logger) {
78
+ return {
79
+ async handleMessage(message) {
80
+ try {
81
+ if (!Array.isArray(message) || message[0] !== 'EVENT')
82
+ return;
83
+ const event = message[1];
84
+ if (event.kind !== exports.ChatEventKinds.CHANNEL_MESSAGE)
85
+ return;
86
+ // Extract channel ID and reply ID from tags
87
+ const { tags } = event;
88
+ const channelId = tags.find(tag => tag[0] === 'e' && tag[3] === 'root')?.[1];
89
+ const replyId = tags.find(tag => tag[0] === 'e' && tag[3] === 'reply')?.[1];
90
+ // Process message
91
+ logger.debug('Processing chat message', {
92
+ channelId,
93
+ replyId,
94
+ content: event.content
95
+ });
96
+ // Additional message processing logic here
97
+ }
98
+ catch (error) {
99
+ logger.error('Error handling chat message:', error);
100
+ }
101
+ },
102
+ async handleModeration(message) {
103
+ try {
104
+ if (!Array.isArray(message) || message[0] !== 'EVENT')
105
+ return;
106
+ const event = message[1];
107
+ if (event.kind !== exports.ChatEventKinds.CHANNEL_HIDE_MESSAGE)
108
+ return;
109
+ // Extract channel and message IDs
110
+ const { tags } = event;
111
+ const channelId = tags.find(tag => tag[0] === 'e' && tag[3] === 'root')?.[1];
112
+ const messageId = tags.find(tag => tag[0] === 'e' && tag[3] === 'reply')?.[1];
113
+ // Process moderation
114
+ logger.debug('Processing message moderation', {
115
+ channelId,
116
+ messageId,
117
+ reason: event.content
118
+ });
119
+ // Additional moderation logic here
120
+ }
121
+ catch (error) {
122
+ logger.error('Error handling message moderation:', error);
123
+ }
124
+ }
125
+ };
126
+ }
127
+ /**
128
+ * Creates a channel subscription manager
129
+ * @param logger - Logger instance
130
+ * @returns {ChannelSubscriptionManager} Subscription manager
131
+ */
132
+ function createChannelSubscriptionManager(logger) {
133
+ const subscriptions = new Map(); // channelId -> subscriptionId
134
+ const metadata = new Map();
135
+ return {
136
+ subscribe(channelId) {
137
+ const subscriptionId = `chat:${channelId}:${Date.now()}`;
138
+ subscriptions.set(channelId, subscriptionId);
139
+ return ['REQ', {
140
+ subscription_id: subscriptionId,
141
+ filter: {
142
+ kinds: [
143
+ exports.ChatEventKinds.CHANNEL_MESSAGE,
144
+ exports.ChatEventKinds.CHANNEL_HIDE_MESSAGE
145
+ ],
146
+ '#e': [channelId]
147
+ }
148
+ }];
149
+ },
150
+ unsubscribe(channelId) {
151
+ const subscriptionId = subscriptions.get(channelId);
152
+ if (!subscriptionId) {
153
+ logger.debug(`No subscription found for channel ${channelId}`);
154
+ return ['CLOSE', { subscription_id: '' }];
155
+ }
156
+ subscriptions.delete(channelId);
157
+ return ['CLOSE', { subscription_id: subscriptionId }];
158
+ },
159
+ async getMetadata(channelId) {
160
+ return metadata.get(channelId);
161
+ }
162
+ };
163
+ }
164
+ //# sourceMappingURL=nip-28.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nip-28.js","sourceRoot":"","sources":["../../../src/nips/nip-28.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * @file NIP-33: Parameterized Replaceable Events
3
+ * @module nips/nip-33
4
+ * @see https://github.com/nostr-protocol/nips/blob/master/33.md
5
+ */
6
+ import type { NostrWSMessage } from '../types/messages';
7
+ import type { Logger } from '../types/logger';
8
+ /**
9
+ * Parameterized replaceable event kinds (30000-39999)
10
+ */
11
+ export declare const PARAMETERIZED_REPLACEABLE_KINDS: {
12
+ CATEGORIZED_BOOKMARK: number;
13
+ CATEGORIZED_HIGHLIGHT: number;
14
+ CATEGORIZED_PEOPLE_LIST: number;
15
+ PROFILE_BADGES: number;
16
+ BADGE_DEFINITION: number;
17
+ CUSTOM_START: number;
18
+ CUSTOM_END: number;
19
+ };
20
+ /**
21
+ * Creates a parameterized replaceable event
22
+ * @param kind - Event kind
23
+ * @param content - Event content
24
+ * @param identifier - Unique identifier for the parameter
25
+ * @param additionalTags - Additional tags
26
+ * @returns {NostrWSMessage} Parameterized replaceable event
27
+ */
28
+ export declare function createParameterizedEvent(kind: number, content: string, identifier: string, additionalTags?: string[][]): NostrWSMessage;
29
+ /**
30
+ * Validates a parameterized replaceable event
31
+ * @param message - Message to validate
32
+ * @param _logger - Logger instance
33
+ * @returns {boolean} True if valid
34
+ */
35
+ export declare function validateParameterizedEvent(message: NostrWSMessage, _logger: Logger): boolean;
36
+ /**
37
+ * Parameterized event manager interface
38
+ */
39
+ export interface ParameterizedEventManager {
40
+ /**
41
+ * Creates a new parameterized event
42
+ * @param kind - Event kind
43
+ * @param content - Event content
44
+ * @param identifier - Parameter identifier
45
+ * @param tags - Additional tags
46
+ * @returns {NostrWSMessage} Created event
47
+ */
48
+ createEvent(kind: number, content: string, identifier: string, tags?: string[][]): NostrWSMessage;
49
+ /**
50
+ * Updates an existing parameterized event
51
+ * @param kind - Event kind
52
+ * @param identifier - Parameter identifier
53
+ * @param content - New content
54
+ * @returns {NostrWSMessage} Update event
55
+ */
56
+ updateEvent(kind: number, identifier: string, content: string): NostrWSMessage;
57
+ /**
58
+ * Subscribes to parameterized events
59
+ * @param kinds - Event kinds to subscribe to
60
+ * @param identifiers - Parameter identifiers
61
+ * @returns {NostrWSMessage} Subscription message
62
+ */
63
+ subscribe(kinds: number[], identifiers: string[]): NostrWSMessage;
64
+ }
65
+ /**
66
+ * Creates a parameterized event manager
67
+ * @param _logger - Logger instance
68
+ * @returns {ParameterizedEventManager} Event manager
69
+ */
70
+ export declare function createParameterizedEventManager(_logger: Logger): ParameterizedEventManager;
71
+ /**
72
+ * Event replacement handler interface
73
+ */
74
+ export interface EventReplacementHandler {
75
+ /**
76
+ * Checks if an event should replace another
77
+ * @param newEvent - New event
78
+ * @param existingEvent - Existing event
79
+ * @returns {boolean} True if should replace
80
+ */
81
+ shouldReplace(newEvent: Record<string, unknown>, existingEvent: Record<string, unknown>): boolean;
82
+ /**
83
+ * Gets replacement key for an event
84
+ * @param event - Event to get key for
85
+ * @returns {string} Replacement key
86
+ */
87
+ getReplacementKey(event: Record<string, unknown>): string;
88
+ }
89
+ /**
90
+ * Creates an event replacement handler
91
+ * @param _logger - Logger instance
92
+ * @returns {EventReplacementHandler} Replacement handler
93
+ */
94
+ export declare function createEventReplacementHandler(_logger: Logger): EventReplacementHandler;
95
+ //# sourceMappingURL=nip-33.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nip-33.d.ts","sourceRoot":"","sources":["../../../src/nips/nip-33.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C;;GAEG;AACH,eAAO,MAAM,+BAA+B;;;;;;;;CAQ3C,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,cAAc,GAAE,MAAM,EAAE,EAAO,GAC9B,cAAc,CAShB;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,MAAM,GACd,OAAO,CAmCT;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC;;;;;;;OAOG;IACH,WAAW,CACT,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,GAChB,cAAc,CAAC;IAElB;;;;;;OAMG;IACH,WAAW,CACT,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GACd,cAAc,CAAC;IAElB;;;;;OAKG;IACH,SAAS,CACP,KAAK,EAAE,MAAM,EAAE,EACf,WAAW,EAAE,MAAM,EAAE,GACpB,cAAc,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,MAAM,GACd,yBAAyB,CA4B3B;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC;;;;;OAKG;IACH,aAAa,CACX,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACrC,OAAO,CAAC;IAEX;;;;OAIG;IACH,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC;CAC3D;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,MAAM,GACd,uBAAuB,CAiCzB"}
@@ -0,0 +1,135 @@
1
+ "use strict";
2
+ /**
3
+ * @file NIP-33: Parameterized Replaceable Events
4
+ * @module nips/nip-33
5
+ * @see https://github.com/nostr-protocol/nips/blob/master/33.md
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.PARAMETERIZED_REPLACEABLE_KINDS = void 0;
9
+ exports.createParameterizedEvent = createParameterizedEvent;
10
+ exports.validateParameterizedEvent = validateParameterizedEvent;
11
+ exports.createParameterizedEventManager = createParameterizedEventManager;
12
+ exports.createEventReplacementHandler = createEventReplacementHandler;
13
+ /**
14
+ * Parameterized replaceable event kinds (30000-39999)
15
+ */
16
+ exports.PARAMETERIZED_REPLACEABLE_KINDS = {
17
+ CATEGORIZED_BOOKMARK: 30000,
18
+ CATEGORIZED_HIGHLIGHT: 30001,
19
+ CATEGORIZED_PEOPLE_LIST: 30002,
20
+ PROFILE_BADGES: 30008,
21
+ BADGE_DEFINITION: 30009,
22
+ CUSTOM_START: 31000,
23
+ CUSTOM_END: 39999
24
+ };
25
+ /**
26
+ * Creates a parameterized replaceable event
27
+ * @param kind - Event kind
28
+ * @param content - Event content
29
+ * @param identifier - Unique identifier for the parameter
30
+ * @param additionalTags - Additional tags
31
+ * @returns {NostrWSMessage} Parameterized replaceable event
32
+ */
33
+ function createParameterizedEvent(kind, content, identifier, additionalTags = []) {
34
+ return ['EVENT', {
35
+ kind,
36
+ content,
37
+ tags: [
38
+ ['d', identifier],
39
+ ...additionalTags
40
+ ]
41
+ }];
42
+ }
43
+ /**
44
+ * Validates a parameterized replaceable event
45
+ * @param message - Message to validate
46
+ * @param _logger - Logger instance
47
+ * @returns {boolean} True if valid
48
+ */
49
+ function validateParameterizedEvent(message, _logger) {
50
+ try {
51
+ if (!Array.isArray(message) || message[0] !== 'EVENT') {
52
+ return false;
53
+ }
54
+ const event = message[1];
55
+ const kind = event.kind;
56
+ // Check if kind is in valid range
57
+ if (kind < 30000 || kind > 39999) {
58
+ _logger.debug('Invalid kind for parameterized replaceable event');
59
+ return false;
60
+ }
61
+ // Must have exactly one 'd' tag
62
+ if (!Array.isArray(event.tags)) {
63
+ _logger.debug('Missing tags array');
64
+ return false;
65
+ }
66
+ const dTags = event.tags.filter(tag => Array.isArray(tag) && tag[0] === 'd' && tag[1]);
67
+ if (dTags.length !== 1) {
68
+ _logger.debug('Must have exactly one d tag');
69
+ return false;
70
+ }
71
+ return true;
72
+ }
73
+ catch (error) {
74
+ _logger.error('Error validating parameterized event:', error);
75
+ return false;
76
+ }
77
+ }
78
+ /**
79
+ * Creates a parameterized event manager
80
+ * @param _logger - Logger instance
81
+ * @returns {ParameterizedEventManager} Event manager
82
+ */
83
+ function createParameterizedEventManager(_logger) {
84
+ return {
85
+ createEvent(kind, content, identifier, tags = []) {
86
+ return createParameterizedEvent(kind, content, identifier, tags);
87
+ },
88
+ updateEvent(kind, identifier, content) {
89
+ return createParameterizedEvent(kind, content, identifier);
90
+ },
91
+ subscribe(kinds, identifiers) {
92
+ return ['REQ', {
93
+ filter: {
94
+ kinds,
95
+ '#d': identifiers
96
+ }
97
+ }];
98
+ }
99
+ };
100
+ }
101
+ /**
102
+ * Creates an event replacement handler
103
+ * @param _logger - Logger instance
104
+ * @returns {EventReplacementHandler} Replacement handler
105
+ */
106
+ function createEventReplacementHandler(_logger) {
107
+ return {
108
+ shouldReplace(newEvent, existingEvent) {
109
+ try {
110
+ // Must be same kind
111
+ if (newEvent.kind !== existingEvent.kind)
112
+ return false;
113
+ // Must have same 'd' tag value
114
+ const newTags = newEvent.tags;
115
+ const existingTags = existingEvent.tags;
116
+ const newDTag = newTags?.find(tag => tag[0] === 'd')?.[1];
117
+ const existingDTag = existingTags?.find(tag => tag[0] === 'd')?.[1];
118
+ if (newDTag !== existingDTag)
119
+ return false;
120
+ // Replace if newer
121
+ return newEvent.created_at > existingEvent.created_at;
122
+ }
123
+ catch (error) {
124
+ _logger.error('Error checking event replacement:', error);
125
+ return false;
126
+ }
127
+ },
128
+ getReplacementKey(event) {
129
+ const kind = event.kind;
130
+ const dTag = event.tags?.find(tag => tag[0] === 'd')?.[1];
131
+ return `${kind}:${dTag}`;
132
+ }
133
+ };
134
+ }
135
+ //# sourceMappingURL=nip-33.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nip-33.js","sourceRoot":"","sources":["../../../src/nips/nip-33.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * @file Base transport layer for Nostr connections
3
+ * @module transport/base
4
+ */
5
+ import { EventEmitter } from 'events';
6
+ import type { MetricsProvider, ScoringStrategy, MetricValue, TransportData } from '../types/scoring';
7
+ export interface TransportOptions {
8
+ metricsProvider?: MetricsProvider;
9
+ scoringStrategy?: ScoringStrategy;
10
+ metricsEnabled?: boolean;
11
+ }
12
+ export declare abstract class BaseTransport extends EventEmitter {
13
+ protected scoringStrategy: ScoringStrategy;
14
+ protected metricsProvider?: MetricsProvider;
15
+ protected metricsEnabled: boolean;
16
+ constructor(options?: TransportOptions);
17
+ /**
18
+ * Create a default metrics provider if none is supplied
19
+ */
20
+ protected createDefaultMetricsProvider(): MetricsProvider;
21
+ /**
22
+ * Track a metric update
23
+ */
24
+ protected trackMetric(endpoint: string, metricType: string, value: MetricValue): void;
25
+ /**
26
+ * Gets the score for an endpoint
27
+ * @param endpoint - Endpoint to get score for
28
+ * @returns {number} Score between 0 and 100
29
+ */
30
+ getScore(endpoint: string): number;
31
+ /**
32
+ * Gets scores for all endpoints
33
+ * @returns {Map<string, number>} Map of endpoint scores
34
+ */
35
+ getAllScores(): Map<string, number>;
36
+ /**
37
+ * Enable/disable metrics
38
+ */
39
+ setMetricsEnabled(enabled: boolean): void;
40
+ /**
41
+ * Updates the scoring strategy
42
+ * @param strategy - New scoring strategy
43
+ */
44
+ updateScoringStrategy(strategy: ScoringStrategy): void;
45
+ /**
46
+ * Updates the metrics provider
47
+ * @param provider - New metrics provider
48
+ */
49
+ updateMetricsProvider(provider?: MetricsProvider): void;
50
+ abstract connect(endpoint: string): Promise<void>;
51
+ abstract disconnect(endpoint: string): Promise<void>;
52
+ abstract send(endpoint: string, data: TransportData): Promise<void>;
53
+ }
54
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/transport/base.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtC,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EAEf,WAAW,EACX,aAAa,EACd,MAAM,kBAAkB,CAAC;AAI1B,MAAM,WAAW,gBAAgB;IAC/B,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,8BAAsB,aAAc,SAAQ,YAAY;IACtD,SAAS,CAAC,eAAe,EAAE,eAAe,CAAC;IAC3C,SAAS,CAAC,eAAe,CAAC,EAAE,eAAe,CAAC;IAC5C,SAAS,CAAC,cAAc,EAAE,OAAO,CAAC;gBAEtB,OAAO,GAAE,gBAAqB;IAO1C;;OAEG;IACH,SAAS,CAAC,4BAA4B,IAAI,eAAe;IAkBzD;;OAEG;IACH,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW;IAoB9E;;;;OAIG;IACI,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IASzC;;;OAGG;IACI,YAAY,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAW1C;;OAEG;IACI,iBAAiB,CAAC,OAAO,EAAE,OAAO;IAIzC;;;OAGG;IACI,qBAAqB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAI7D;;;OAGG;IACI,qBAAqB,CAAC,QAAQ,CAAC,EAAE,eAAe,GAAG,IAAI;IAM9D,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IACjD,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IACpD,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;CACpE"}
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+ /**
3
+ * @file Base transport layer for Nostr connections
4
+ * @module transport/base
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.BaseTransport = void 0;
8
+ const events_1 = require("events");
9
+ const logger_1 = require("../utils/logger");
10
+ const scoring_1 = require("../types/scoring");
11
+ const logger = (0, logger_1.getLogger)('BaseTransport');
12
+ class BaseTransport extends events_1.EventEmitter {
13
+ constructor(options = {}) {
14
+ super();
15
+ this.scoringStrategy = options.scoringStrategy ?? new scoring_1.DefaultScoringStrategy();
16
+ this.metricsProvider = options.metricsProvider;
17
+ this.metricsEnabled = !!this.metricsProvider;
18
+ }
19
+ /**
20
+ * Create a default metrics provider if none is supplied
21
+ */
22
+ createDefaultMetricsProvider() {
23
+ return {
24
+ getMetrics: () => ({
25
+ totalConnections: 0,
26
+ activeConnections: 0,
27
+ connectionErrors: 0,
28
+ messagesReceived: 0,
29
+ messagesSent: 0,
30
+ bytesReceived: 0,
31
+ bytesSent: 0,
32
+ averageLatency: 0,
33
+ lastSeen: Date.now()
34
+ }),
35
+ getAllMetrics: () => new Map(),
36
+ trackMetric: () => { }
37
+ };
38
+ }
39
+ /**
40
+ * Track a metric update
41
+ */
42
+ trackMetric(endpoint, metricType, value) {
43
+ if (!this.metricsEnabled)
44
+ return;
45
+ try {
46
+ this.metricsProvider?.trackMetric(endpoint, metricType, value);
47
+ const event = {
48
+ endpoint,
49
+ metricType,
50
+ value,
51
+ timestamp: Date.now()
52
+ };
53
+ this.emit('metric', event);
54
+ }
55
+ catch (error) {
56
+ logger.error({ error, endpoint, metricType }, 'Error tracking metric');
57
+ }
58
+ }
59
+ /**
60
+ * Gets the score for an endpoint
61
+ * @param endpoint - Endpoint to get score for
62
+ * @returns {number} Score between 0 and 100
63
+ */
64
+ getScore(endpoint) {
65
+ if (!this.metricsEnabled)
66
+ return 100;
67
+ const metrics = this.metricsProvider?.getMetrics(endpoint);
68
+ if (!metrics)
69
+ return 100;
70
+ return this.scoringStrategy.calculateScore(metrics);
71
+ }
72
+ /**
73
+ * Gets scores for all endpoints
74
+ * @returns {Map<string, number>} Map of endpoint scores
75
+ */
76
+ getAllScores() {
77
+ if (!this.metricsEnabled || !this.metricsProvider)
78
+ return new Map();
79
+ const scores = new Map();
80
+ const allMetrics = this.metricsProvider.getAllMetrics();
81
+ for (const [endpoint, metrics] of allMetrics) {
82
+ scores.set(endpoint, this.scoringStrategy.calculateScore(metrics));
83
+ }
84
+ return scores;
85
+ }
86
+ /**
87
+ * Enable/disable metrics
88
+ */
89
+ setMetricsEnabled(enabled) {
90
+ this.metricsEnabled = enabled;
91
+ }
92
+ /**
93
+ * Updates the scoring strategy
94
+ * @param strategy - New scoring strategy
95
+ */
96
+ updateScoringStrategy(strategy) {
97
+ this.scoringStrategy = strategy;
98
+ }
99
+ /**
100
+ * Updates the metrics provider
101
+ * @param provider - New metrics provider
102
+ */
103
+ updateMetricsProvider(provider) {
104
+ this.metricsProvider = provider;
105
+ this.metricsEnabled = !!provider;
106
+ }
107
+ }
108
+ exports.BaseTransport = BaseTransport;
109
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/transport/base.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,mCAAsC;AACtC,4CAA4C;AAC5C,8CAA0D;AAS1D,MAAM,MAAM,GAAG,IAAA,kBAAS,EAAC,eAAe,CAAC,CAAC;AAQ1C,MAAsB,aAAc,SAAQ,qBAAY;IAKtD,YAAY,UAA4B,EAAE;QACxC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,IAAI,gCAAsB,EAAE,CAAC;QAC/E,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;QAC/C,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC;IAC/C,CAAC;IAED;;OAEG;IACO,4BAA4B;QACpC,OAAO;YACL,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;gBACjB,gBAAgB,EAAE,CAAC;gBACnB,iBAAiB,EAAE,CAAC;gBACpB,gBAAgB,EAAE,CAAC;gBACnB,gBAAgB,EAAE,CAAC;gBACnB,YAAY,EAAE,CAAC;gBACf,aAAa,EAAE,CAAC;gBAChB,SAAS,EAAE,CAAC;gBACZ,cAAc,EAAE,CAAC;gBACjB,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE;aACrB,CAAC;YACF,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE;YAC9B,WAAW,EAAE,GAAG,EAAE,GAAE,CAAC;SACtB,CAAC;IACJ,CAAC;IAED;;OAEG;IACO,WAAW,CAAC,QAAgB,EAAE,UAAkB,EAAE,KAAkB;QAC5E,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE,OAAO;QAEjC,IAAI,CAAC;YACH,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;YAE/D,MAAM,KAAK,GAAsB;gBAC/B,QAAQ;gBACR,UAAU;gBACV,KAAK;gBACL,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB,CAAC;YAEF,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAE7B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,uBAAuB,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAED;;;;OAIG;IACI,QAAQ,CAAC,QAAgB;QAC9B,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE,OAAO,GAAG,CAAC;QAErC,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC3D,IAAI,CAAC,OAAO;YAAE,OAAO,GAAG,CAAC;QAEzB,OAAO,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IACtD,CAAC;IAED;;;OAGG;IACI,YAAY;QACjB,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,eAAe;YAAE,OAAO,IAAI,GAAG,EAAE,CAAC;QAEpE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;QACzC,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,CAAC;QACxD,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,UAAU,EAAE,CAAC;YAC7C,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;QACrE,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACI,iBAAiB,CAAC,OAAgB;QACvC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;IAChC,CAAC;IAED;;;OAGG;IACI,qBAAqB,CAAC,QAAyB;QACpD,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;IAClC,CAAC;IAED;;;OAGG;IACI,qBAAqB,CAAC,QAA0B;QACrD,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;QAChC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,QAAQ,CAAC;IACnC,CAAC;CAMF;AAjHD,sCAiHC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * @file WebSocket transport implementation
3
+ * @module transport/websocket
4
+ */
5
+ import { BaseTransport } from './base';
6
+ import type { TransportOptions } from './base';
7
+ export declare class WebSocketTransport extends BaseTransport {
8
+ private connections;
9
+ constructor(options?: TransportOptions);
10
+ connect(endpoint: string): Promise<void>;
11
+ disconnect(endpoint: string): Promise<void>;
12
+ send(endpoint: string, data: any): Promise<void>;
13
+ protected trackMetric(endpoint: string, metric: string, value: unknown): void;
14
+ private checkEndpointHealth;
15
+ /**
16
+ * Get all active WebSocket connections
17
+ */
18
+ getActiveConnections(): string[];
19
+ /**
20
+ * Check if connected to endpoint
21
+ */
22
+ isConnected(endpoint: string): boolean;
23
+ }
24
+ //# sourceMappingURL=websocket.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../../../src/transport/websocket.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAEvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAI/C,qBAAa,kBAAmB,SAAQ,aAAa;IACnD,OAAO,CAAC,WAAW,CAAqC;gBAE5C,OAAO,GAAE,gBAAqB;IAIpC,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuDxC,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAc3C,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBtD,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;YAOxD,mBAAmB;IAsBjC;;OAEG;IACI,oBAAoB,IAAI,MAAM,EAAE;IAIvC;;OAEG;IACI,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;CAI9C"}