nostr-websocket-utils 0.3.1 → 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (410) hide show
  1. package/dist/__mocks__/extendedWsMock.d.ts +6 -8
  2. package/dist/__mocks__/extendedWsMock.d.ts.map +1 -0
  3. package/dist/__mocks__/extendedWsMock.js +1 -0
  4. package/dist/__mocks__/extendedWsMock.js.map +1 -0
  5. package/dist/__mocks__/mockLogger.d.ts +8 -7
  6. package/dist/__mocks__/mockLogger.d.ts.map +1 -0
  7. package/dist/__mocks__/mockLogger.js +1 -0
  8. package/dist/__mocks__/mockLogger.js.map +1 -0
  9. package/dist/__mocks__/mockserver.d.ts +7 -11
  10. package/dist/__mocks__/mockserver.d.ts.map +1 -0
  11. package/dist/__mocks__/mockserver.js +1 -0
  12. package/dist/__mocks__/mockserver.js.map +1 -0
  13. package/dist/__mocks__/wsMock.d.ts +1 -2
  14. package/dist/__mocks__/wsMock.d.ts.map +1 -0
  15. package/dist/__mocks__/wsMock.js +1 -0
  16. package/dist/__mocks__/wsMock.js.map +1 -0
  17. package/dist/cjs/__mocks__/extendedWsMock.d.ts +52 -0
  18. package/dist/cjs/__mocks__/extendedWsMock.d.ts.map +1 -0
  19. package/dist/cjs/__mocks__/extendedWsMock.js +161 -0
  20. package/dist/cjs/__mocks__/extendedWsMock.js.map +1 -0
  21. package/dist/cjs/__mocks__/mockLogger.d.ts +42 -0
  22. package/dist/cjs/__mocks__/mockLogger.d.ts.map +1 -0
  23. package/dist/cjs/__mocks__/mockLogger.js +53 -0
  24. package/dist/cjs/__mocks__/mockLogger.js.map +1 -0
  25. package/dist/cjs/__mocks__/mockserver.d.ts +27 -0
  26. package/dist/cjs/__mocks__/mockserver.d.ts.map +1 -0
  27. package/dist/cjs/__mocks__/mockserver.js +44 -0
  28. package/dist/cjs/__mocks__/mockserver.js.map +1 -0
  29. package/dist/cjs/__mocks__/wsMock.d.ts +25 -0
  30. package/dist/cjs/__mocks__/wsMock.d.ts.map +1 -0
  31. package/dist/cjs/__mocks__/wsMock.js +123 -0
  32. package/dist/cjs/__mocks__/wsMock.js.map +1 -0
  33. package/dist/cjs/core/client.d.ts +35 -0
  34. package/dist/cjs/core/client.d.ts.map +1 -0
  35. package/dist/cjs/core/client.js +161 -0
  36. package/dist/cjs/core/client.js.map +1 -0
  37. package/dist/{nostr-server.d.ts → cjs/core/nostr-server.d.ts} +3 -6
  38. package/dist/cjs/core/nostr-server.d.ts.map +1 -0
  39. package/dist/cjs/core/nostr-server.js +101 -0
  40. package/dist/cjs/core/nostr-server.js.map +1 -0
  41. package/dist/cjs/core/queue.d.ts +38 -0
  42. package/dist/cjs/core/queue.d.ts.map +1 -0
  43. package/dist/cjs/core/queue.js +105 -0
  44. package/dist/cjs/core/queue.js.map +1 -0
  45. package/dist/cjs/core/server.d.ts +29 -0
  46. package/dist/cjs/core/server.d.ts.map +1 -0
  47. package/dist/cjs/core/server.js +134 -0
  48. package/dist/cjs/core/server.js.map +1 -0
  49. package/dist/cjs/crypto/bech32.d.ts +27 -0
  50. package/dist/cjs/crypto/bech32.d.ts.map +1 -0
  51. package/dist/cjs/crypto/bech32.js +170 -0
  52. package/dist/cjs/crypto/bech32.js.map +1 -0
  53. package/dist/cjs/crypto/handlers.d.ts +19 -0
  54. package/dist/cjs/crypto/handlers.d.ts.map +1 -0
  55. package/dist/cjs/crypto/handlers.js +65 -0
  56. package/dist/cjs/crypto/handlers.js.map +1 -0
  57. package/dist/cjs/crypto/index.d.ts +7 -0
  58. package/dist/cjs/crypto/index.d.ts.map +1 -0
  59. package/dist/cjs/crypto/index.js +23 -0
  60. package/dist/cjs/crypto/index.js.map +1 -0
  61. package/dist/cjs/endpoints/metrics.d.ts +30 -0
  62. package/dist/cjs/endpoints/metrics.d.ts.map +1 -0
  63. package/dist/cjs/endpoints/metrics.js +106 -0
  64. package/dist/cjs/endpoints/metrics.js.map +1 -0
  65. package/dist/cjs/index.d.ts +13 -0
  66. package/dist/cjs/index.d.ts.map +1 -0
  67. package/dist/cjs/index.js +40 -0
  68. package/dist/cjs/index.js.map +1 -0
  69. package/dist/cjs/nips/index.d.ts +20 -0
  70. package/dist/cjs/nips/index.d.ts.map +1 -0
  71. package/dist/cjs/nips/index.js +51 -0
  72. package/dist/cjs/nips/index.js.map +1 -0
  73. package/dist/cjs/nips/nip-01.d.ts +35 -0
  74. package/dist/cjs/nips/nip-01.d.ts.map +1 -0
  75. package/dist/cjs/nips/nip-01.js +142 -0
  76. package/dist/cjs/nips/nip-01.js.map +1 -0
  77. package/dist/cjs/nips/nip-02.d.ts +83 -0
  78. package/dist/cjs/nips/nip-02.d.ts.map +1 -0
  79. package/dist/cjs/nips/nip-02.js +119 -0
  80. package/dist/cjs/nips/nip-02.js.map +1 -0
  81. package/dist/cjs/nips/nip-04.d.ts +37 -0
  82. package/dist/cjs/nips/nip-04.d.ts.map +1 -0
  83. package/dist/cjs/nips/nip-04.js +104 -0
  84. package/dist/cjs/nips/nip-04.js.map +1 -0
  85. package/dist/cjs/nips/nip-05.d.ts +88 -0
  86. package/dist/cjs/nips/nip-05.d.ts.map +1 -0
  87. package/dist/cjs/nips/nip-05.js +158 -0
  88. package/dist/cjs/nips/nip-05.js.map +1 -0
  89. package/dist/cjs/nips/nip-09.d.ts +93 -0
  90. package/dist/cjs/nips/nip-09.d.ts.map +1 -0
  91. package/dist/cjs/nips/nip-09.js +180 -0
  92. package/dist/cjs/nips/nip-09.js.map +1 -0
  93. package/dist/cjs/nips/nip-11.d.ts +65 -0
  94. package/dist/cjs/nips/nip-11.d.ts.map +1 -0
  95. package/dist/cjs/nips/nip-11.js +161 -0
  96. package/dist/cjs/nips/nip-11.js.map +1 -0
  97. package/dist/cjs/nips/nip-13.d.ts +74 -0
  98. package/dist/cjs/nips/nip-13.d.ts.map +1 -0
  99. package/dist/cjs/nips/nip-13.js +136 -0
  100. package/dist/cjs/nips/nip-13.js.map +1 -0
  101. package/dist/cjs/nips/nip-15.d.ts +84 -0
  102. package/dist/cjs/nips/nip-15.d.ts.map +1 -0
  103. package/dist/cjs/nips/nip-15.js +102 -0
  104. package/dist/cjs/nips/nip-15.js.map +1 -0
  105. package/dist/cjs/nips/nip-16.d.ts +89 -0
  106. package/dist/cjs/nips/nip-16.d.ts.map +1 -0
  107. package/dist/cjs/nips/nip-16.js +157 -0
  108. package/dist/cjs/nips/nip-16.js.map +1 -0
  109. package/dist/cjs/nips/nip-19.d.ts +29 -0
  110. package/dist/cjs/nips/nip-19.d.ts.map +1 -0
  111. package/dist/cjs/nips/nip-19.js +112 -0
  112. package/dist/cjs/nips/nip-19.js.map +1 -0
  113. package/dist/cjs/nips/nip-20.d.ts +60 -0
  114. package/dist/cjs/nips/nip-20.d.ts.map +1 -0
  115. package/dist/cjs/nips/nip-20.js +102 -0
  116. package/dist/cjs/nips/nip-20.js.map +1 -0
  117. package/dist/cjs/nips/nip-22.d.ts +90 -0
  118. package/dist/cjs/nips/nip-22.d.ts.map +1 -0
  119. package/dist/cjs/nips/nip-22.js +149 -0
  120. package/dist/cjs/nips/nip-22.js.map +1 -0
  121. package/dist/cjs/nips/nip-26.d.ts +53 -0
  122. package/dist/cjs/nips/nip-26.d.ts.map +1 -0
  123. package/dist/cjs/nips/nip-26.js +147 -0
  124. package/dist/cjs/nips/nip-26.js.map +1 -0
  125. package/dist/cjs/nips/nip-28.d.ts +104 -0
  126. package/dist/cjs/nips/nip-28.d.ts.map +1 -0
  127. package/dist/cjs/nips/nip-28.js +164 -0
  128. package/dist/cjs/nips/nip-28.js.map +1 -0
  129. package/dist/cjs/nips/nip-33.d.ts +95 -0
  130. package/dist/cjs/nips/nip-33.d.ts.map +1 -0
  131. package/dist/cjs/nips/nip-33.js +135 -0
  132. package/dist/cjs/nips/nip-33.js.map +1 -0
  133. package/dist/cjs/transport/base.d.ts +54 -0
  134. package/dist/cjs/transport/base.d.ts.map +1 -0
  135. package/dist/cjs/transport/base.js +109 -0
  136. package/dist/cjs/transport/base.js.map +1 -0
  137. package/dist/cjs/transport/websocket.d.ts +24 -0
  138. package/dist/cjs/transport/websocket.d.ts.map +1 -0
  139. package/dist/cjs/transport/websocket.js +136 -0
  140. package/dist/cjs/transport/websocket.js.map +1 -0
  141. package/dist/cjs/types/events.d.ts +74 -0
  142. package/dist/cjs/types/events.d.ts.map +1 -0
  143. package/dist/cjs/types/events.js +7 -0
  144. package/dist/cjs/types/events.js.map +1 -0
  145. package/dist/cjs/types/filters.d.ts +20 -0
  146. package/dist/cjs/types/filters.d.ts.map +1 -0
  147. package/dist/cjs/types/filters.js +7 -0
  148. package/dist/cjs/types/filters.js.map +1 -0
  149. package/dist/cjs/types/handlers.d.ts +81 -0
  150. package/dist/cjs/types/handlers.d.ts.map +1 -0
  151. package/dist/cjs/types/handlers.js +7 -0
  152. package/dist/cjs/types/handlers.js.map +1 -0
  153. package/dist/cjs/types/index.d.ts +144 -0
  154. package/dist/cjs/types/index.d.ts.map +1 -0
  155. package/dist/cjs/types/index.js +37 -0
  156. package/dist/cjs/types/index.js.map +1 -0
  157. package/dist/cjs/types/logger.d.ts +41 -0
  158. package/dist/cjs/types/logger.d.ts.map +1 -0
  159. package/dist/cjs/types/logger.js +7 -0
  160. package/dist/cjs/types/logger.js.map +1 -0
  161. package/dist/cjs/types/messages.d.ts +133 -0
  162. package/dist/cjs/types/messages.d.ts.map +1 -0
  163. package/dist/cjs/types/messages.js +46 -0
  164. package/dist/cjs/types/messages.js.map +1 -0
  165. package/dist/cjs/types/nostr.d.ts +134 -0
  166. package/dist/cjs/types/nostr.d.ts.map +1 -0
  167. package/dist/cjs/types/nostr.js +7 -0
  168. package/dist/cjs/types/nostr.js.map +1 -0
  169. package/dist/cjs/types/options.d.ts +155 -0
  170. package/dist/cjs/types/options.d.ts.map +1 -0
  171. package/dist/cjs/types/options.js +7 -0
  172. package/dist/cjs/types/options.js.map +1 -0
  173. package/dist/cjs/types/priority.d.ts +13 -0
  174. package/dist/cjs/types/priority.d.ts.map +1 -0
  175. package/dist/cjs/types/priority.js +17 -0
  176. package/dist/cjs/types/priority.js.map +1 -0
  177. package/dist/cjs/types/relays.d.ts +27 -0
  178. package/dist/cjs/types/relays.d.ts.map +1 -0
  179. package/dist/cjs/types/relays.js +7 -0
  180. package/dist/cjs/types/relays.js.map +1 -0
  181. package/dist/cjs/types/scoring.d.ts +59 -0
  182. package/dist/cjs/types/scoring.d.ts.map +1 -0
  183. package/dist/cjs/types/scoring.js +34 -0
  184. package/dist/cjs/types/scoring.js.map +1 -0
  185. package/dist/cjs/types/socket.d.ts +98 -0
  186. package/dist/cjs/types/socket.d.ts.map +1 -0
  187. package/dist/cjs/types/socket.js +7 -0
  188. package/dist/cjs/types/socket.js.map +1 -0
  189. package/dist/cjs/types/transport.d.ts +98 -0
  190. package/dist/cjs/types/transport.d.ts.map +1 -0
  191. package/dist/cjs/types/transport.js +7 -0
  192. package/dist/cjs/types/transport.js.map +1 -0
  193. package/dist/cjs/types/validation.d.ts +51 -0
  194. package/dist/cjs/types/validation.d.ts.map +1 -0
  195. package/dist/cjs/types/validation.js +7 -0
  196. package/dist/cjs/types/validation.js.map +1 -0
  197. package/dist/cjs/types/websocket.d.ts +250 -0
  198. package/dist/cjs/types/websocket.d.ts.map +1 -0
  199. package/dist/cjs/types/websocket.js +7 -0
  200. package/dist/cjs/types/websocket.js.map +1 -0
  201. package/dist/cjs/utils/http.d.ts +11 -0
  202. package/dist/cjs/utils/http.d.ts.map +1 -0
  203. package/dist/cjs/utils/http.js +28 -0
  204. package/dist/cjs/utils/http.js.map +1 -0
  205. package/dist/cjs/utils/logger.d.ts +26 -0
  206. package/dist/cjs/utils/logger.d.ts.map +1 -0
  207. package/dist/cjs/utils/logger.js +43 -0
  208. package/dist/cjs/utils/logger.js.map +1 -0
  209. package/dist/cjs/utils/metrics.d.ts +81 -0
  210. package/dist/cjs/utils/metrics.d.ts.map +1 -0
  211. package/dist/cjs/utils/metrics.js +211 -0
  212. package/dist/cjs/utils/metrics.js.map +1 -0
  213. package/dist/cjs/utils/rate-limiter.d.ts +86 -0
  214. package/dist/cjs/utils/rate-limiter.d.ts.map +1 -0
  215. package/dist/cjs/utils/rate-limiter.js +183 -0
  216. package/dist/cjs/utils/rate-limiter.js.map +1 -0
  217. package/dist/core/client.d.ts +1 -0
  218. package/dist/core/client.d.ts.map +1 -0
  219. package/dist/core/client.js +1 -0
  220. package/dist/core/client.js.map +1 -0
  221. package/dist/core/nostr-server.d.ts +1 -0
  222. package/dist/core/nostr-server.d.ts.map +1 -0
  223. package/dist/core/nostr-server.js +1 -0
  224. package/dist/core/nostr-server.js.map +1 -0
  225. package/dist/core/queue.d.ts +1 -0
  226. package/dist/core/queue.d.ts.map +1 -0
  227. package/dist/core/queue.js +1 -0
  228. package/dist/core/queue.js.map +1 -0
  229. package/dist/core/server.d.ts +1 -0
  230. package/dist/core/server.d.ts.map +1 -0
  231. package/dist/core/server.js +1 -0
  232. package/dist/core/server.js.map +1 -0
  233. package/dist/crypto/bech32.d.ts +1 -0
  234. package/dist/crypto/bech32.d.ts.map +1 -0
  235. package/dist/crypto/bech32.js +1 -0
  236. package/dist/crypto/bech32.js.map +1 -0
  237. package/dist/crypto/handlers.d.ts +1 -0
  238. package/dist/crypto/handlers.d.ts.map +1 -0
  239. package/dist/crypto/handlers.js +1 -0
  240. package/dist/crypto/handlers.js.map +1 -0
  241. package/dist/crypto/index.d.ts +3 -1
  242. package/dist/crypto/index.d.ts.map +1 -0
  243. package/dist/crypto/index.js +3 -1
  244. package/dist/crypto/index.js.map +1 -0
  245. package/dist/endpoints/metrics.d.ts +1 -0
  246. package/dist/endpoints/metrics.d.ts.map +1 -0
  247. package/dist/endpoints/metrics.js +1 -0
  248. package/dist/endpoints/metrics.js.map +1 -0
  249. package/dist/index.d.ts +1 -0
  250. package/dist/index.d.ts.map +1 -0
  251. package/dist/index.js +1 -0
  252. package/dist/index.js.map +1 -0
  253. package/dist/nips/index.d.ts +1 -0
  254. package/dist/nips/index.d.ts.map +1 -0
  255. package/dist/nips/index.js +1 -0
  256. package/dist/nips/index.js.map +1 -0
  257. package/dist/nips/nip-01.d.ts +1 -0
  258. package/dist/nips/nip-01.d.ts.map +1 -0
  259. package/dist/nips/nip-01.js +1 -0
  260. package/dist/nips/nip-01.js.map +1 -0
  261. package/dist/nips/nip-02.d.ts +1 -0
  262. package/dist/nips/nip-02.d.ts.map +1 -0
  263. package/dist/nips/nip-02.js +1 -0
  264. package/dist/nips/nip-02.js.map +1 -0
  265. package/dist/nips/nip-04.d.ts +1 -0
  266. package/dist/nips/nip-04.d.ts.map +1 -0
  267. package/dist/nips/nip-04.js +1 -0
  268. package/dist/nips/nip-04.js.map +1 -0
  269. package/dist/nips/nip-05.d.ts +1 -0
  270. package/dist/nips/nip-05.d.ts.map +1 -0
  271. package/dist/nips/nip-05.js +1 -0
  272. package/dist/nips/nip-05.js.map +1 -0
  273. package/dist/nips/nip-09.d.ts +1 -0
  274. package/dist/nips/nip-09.d.ts.map +1 -0
  275. package/dist/nips/nip-09.js +1 -0
  276. package/dist/nips/nip-09.js.map +1 -0
  277. package/dist/nips/nip-11.d.ts +1 -0
  278. package/dist/nips/nip-11.d.ts.map +1 -0
  279. package/dist/nips/nip-11.js +1 -0
  280. package/dist/nips/nip-11.js.map +1 -0
  281. package/dist/nips/nip-13.d.ts +1 -0
  282. package/dist/nips/nip-13.d.ts.map +1 -0
  283. package/dist/nips/nip-13.js +1 -0
  284. package/dist/nips/nip-13.js.map +1 -0
  285. package/dist/nips/nip-15.d.ts +1 -0
  286. package/dist/nips/nip-15.d.ts.map +1 -0
  287. package/dist/nips/nip-15.js +1 -0
  288. package/dist/nips/nip-15.js.map +1 -0
  289. package/dist/nips/nip-16.d.ts +1 -0
  290. package/dist/nips/nip-16.d.ts.map +1 -0
  291. package/dist/nips/nip-16.js +1 -0
  292. package/dist/nips/nip-16.js.map +1 -0
  293. package/dist/nips/nip-19.d.ts +1 -0
  294. package/dist/nips/nip-19.d.ts.map +1 -0
  295. package/dist/nips/nip-19.js +1 -0
  296. package/dist/nips/nip-19.js.map +1 -0
  297. package/dist/nips/nip-20.d.ts +1 -0
  298. package/dist/nips/nip-20.d.ts.map +1 -0
  299. package/dist/nips/nip-20.js +1 -0
  300. package/dist/nips/nip-20.js.map +1 -0
  301. package/dist/nips/nip-22.d.ts +1 -0
  302. package/dist/nips/nip-22.d.ts.map +1 -0
  303. package/dist/nips/nip-22.js +1 -0
  304. package/dist/nips/nip-22.js.map +1 -0
  305. package/dist/nips/nip-26.d.ts +1 -0
  306. package/dist/nips/nip-26.d.ts.map +1 -0
  307. package/dist/nips/nip-26.js +1 -0
  308. package/dist/nips/nip-26.js.map +1 -0
  309. package/dist/nips/nip-28.d.ts +1 -0
  310. package/dist/nips/nip-28.d.ts.map +1 -0
  311. package/dist/nips/nip-28.js +1 -0
  312. package/dist/nips/nip-28.js.map +1 -0
  313. package/dist/nips/nip-33.d.ts +1 -0
  314. package/dist/nips/nip-33.d.ts.map +1 -0
  315. package/dist/nips/nip-33.js +1 -0
  316. package/dist/nips/nip-33.js.map +1 -0
  317. package/dist/transport/base.d.ts +1 -1
  318. package/dist/transport/base.d.ts.map +1 -0
  319. package/dist/transport/base.js +1 -0
  320. package/dist/transport/base.js.map +1 -0
  321. package/dist/transport/websocket.d.ts +1 -0
  322. package/dist/transport/websocket.d.ts.map +1 -0
  323. package/dist/transport/websocket.js +1 -0
  324. package/dist/transport/websocket.js.map +1 -0
  325. package/dist/types/events.d.ts +1 -0
  326. package/dist/types/events.d.ts.map +1 -0
  327. package/dist/types/events.js +1 -0
  328. package/dist/types/events.js.map +1 -0
  329. package/dist/types/filters.d.ts +1 -0
  330. package/dist/types/filters.d.ts.map +1 -0
  331. package/dist/types/filters.js +1 -0
  332. package/dist/types/filters.js.map +1 -0
  333. package/dist/types/handlers.d.ts +1 -0
  334. package/dist/types/handlers.d.ts.map +1 -0
  335. package/dist/types/handlers.js +1 -0
  336. package/dist/types/handlers.js.map +1 -0
  337. package/dist/types/index.d.ts +1 -0
  338. package/dist/types/index.d.ts.map +1 -0
  339. package/dist/types/index.js +1 -0
  340. package/dist/types/index.js.map +1 -0
  341. package/dist/types/logger.d.ts +1 -0
  342. package/dist/types/logger.d.ts.map +1 -0
  343. package/dist/types/logger.js +1 -0
  344. package/dist/types/logger.js.map +1 -0
  345. package/dist/types/messages.d.ts +1 -0
  346. package/dist/types/messages.d.ts.map +1 -0
  347. package/dist/types/messages.js +1 -0
  348. package/dist/types/messages.js.map +1 -0
  349. package/dist/types/nostr.d.ts +1 -0
  350. package/dist/types/nostr.d.ts.map +1 -0
  351. package/dist/types/nostr.js +1 -0
  352. package/dist/types/nostr.js.map +1 -0
  353. package/dist/types/options.d.ts +1 -0
  354. package/dist/types/options.d.ts.map +1 -0
  355. package/dist/types/options.js +1 -0
  356. package/dist/types/options.js.map +1 -0
  357. package/dist/types/priority.d.ts +1 -0
  358. package/dist/types/priority.d.ts.map +1 -0
  359. package/dist/types/priority.js +1 -0
  360. package/dist/types/priority.js.map +1 -0
  361. package/dist/types/relays.d.ts +1 -0
  362. package/dist/types/relays.d.ts.map +1 -0
  363. package/dist/types/relays.js +1 -0
  364. package/dist/types/relays.js.map +1 -0
  365. package/dist/types/scoring.d.ts +1 -2
  366. package/dist/types/scoring.d.ts.map +1 -0
  367. package/dist/types/scoring.js +1 -0
  368. package/dist/types/scoring.js.map +1 -0
  369. package/dist/types/socket.d.ts +1 -2
  370. package/dist/types/socket.d.ts.map +1 -0
  371. package/dist/types/socket.js +1 -0
  372. package/dist/types/socket.js.map +1 -0
  373. package/dist/types/transport.d.ts +1 -0
  374. package/dist/types/transport.d.ts.map +1 -0
  375. package/dist/types/transport.js +1 -0
  376. package/dist/types/transport.js.map +1 -0
  377. package/dist/types/validation.d.ts +1 -0
  378. package/dist/types/validation.d.ts.map +1 -0
  379. package/dist/types/validation.js +1 -0
  380. package/dist/types/validation.js.map +1 -0
  381. package/dist/types/websocket.d.ts +1 -0
  382. package/dist/types/websocket.d.ts.map +1 -0
  383. package/dist/types/websocket.js +1 -0
  384. package/dist/types/websocket.js.map +1 -0
  385. package/dist/utils/http.d.ts +1 -0
  386. package/dist/utils/http.d.ts.map +1 -0
  387. package/dist/utils/http.js +1 -0
  388. package/dist/utils/http.js.map +1 -0
  389. package/dist/utils/logger.d.ts +1 -0
  390. package/dist/utils/logger.d.ts.map +1 -0
  391. package/dist/utils/logger.js +1 -0
  392. package/dist/utils/logger.js.map +1 -0
  393. package/dist/utils/metrics.d.ts +1 -1
  394. package/dist/utils/metrics.d.ts.map +1 -0
  395. package/dist/utils/metrics.js +1 -0
  396. package/dist/utils/metrics.js.map +1 -0
  397. package/dist/utils/rate-limiter.d.ts +1 -0
  398. package/dist/utils/rate-limiter.d.ts.map +1 -0
  399. package/dist/utils/rate-limiter.js +1 -0
  400. package/dist/utils/rate-limiter.js.map +1 -0
  401. package/package.json +14 -2
  402. package/dist/__mocks__/logger.d.ts +0 -9
  403. package/dist/__mocks__/logger.js +0 -6
  404. package/dist/client.d.ts +0 -129
  405. package/dist/client.js +0 -259
  406. package/dist/crypto/schnorr.d.ts +0 -16
  407. package/dist/crypto/schnorr.js +0 -51
  408. package/dist/nostr-server.js +0 -107
  409. package/dist/server.d.ts +0 -27
  410. package/dist/server.js +0 -132
@@ -0,0 +1,134 @@
1
+ /**
2
+ * @file Nostr protocol type definitions
3
+ * @module types/nostr
4
+ */
5
+ import type { WebSocket as WSClient } from 'ws';
6
+ import { Logger } from './logger';
7
+ import type { NostrWSMessage } from './messages';
8
+ import type { NostrEvent } from './events';
9
+ /**
10
+ * Signed Nostr event with id and signature
11
+ */
12
+ export interface SignedNostrEvent extends NostrEvent {
13
+ /**
14
+ * Event ID (32-bytes lowercase hex of the serialized event data)
15
+ */
16
+ id: string;
17
+ /**
18
+ * Signature of the event ID (64-bytes hex of the schnorr signature)
19
+ */
20
+ sig: string;
21
+ }
22
+ /**
23
+ * Extended WebSocket interface for Nostr
24
+ */
25
+ export interface NostrWSSocket extends WSClient {
26
+ /**
27
+ * Whether the socket is alive (for ping/pong)
28
+ */
29
+ isAlive?: boolean;
30
+ /**
31
+ * Set of active subscription IDs
32
+ */
33
+ subscriptions?: Set<string>;
34
+ /**
35
+ * Unique client identifier
36
+ */
37
+ clientId?: string;
38
+ }
39
+ /**
40
+ * Server configuration options
41
+ */
42
+ export interface NostrWSServerOptions {
43
+ /**
44
+ * Port to listen on
45
+ */
46
+ port: number;
47
+ /**
48
+ * Host to bind to
49
+ */
50
+ host?: string;
51
+ /**
52
+ * Path for the WebSocket endpoint
53
+ */
54
+ path?: string;
55
+ /**
56
+ * Maximum payload size in bytes
57
+ */
58
+ maxPayload?: number;
59
+ /**
60
+ * Ping interval in milliseconds
61
+ */
62
+ pingInterval?: number;
63
+ /**
64
+ * Client timeout in milliseconds
65
+ */
66
+ clientTimeout?: number;
67
+ /**
68
+ * Heartbeat interval in milliseconds
69
+ */
70
+ heartbeatInterval?: number;
71
+ /**
72
+ * Handlers for various events
73
+ */
74
+ handlers?: {
75
+ message?: (socket: NostrWSSocket, message: NostrWSServerMessage) => Promise<void>;
76
+ error?: (socket: NostrWSSocket, error: Error) => void;
77
+ close?: (socket: NostrWSSocket) => void;
78
+ };
79
+ /**
80
+ * Callback for when a new connection is established
81
+ */
82
+ onConnection?: (socket: NostrWSSocket) => void;
83
+ }
84
+ /**
85
+ * Server message structure
86
+ */
87
+ export interface NostrWSServerMessage {
88
+ /**
89
+ * Message type
90
+ */
91
+ type: string;
92
+ /**
93
+ * Message data
94
+ */
95
+ data?: unknown;
96
+ /**
97
+ * Error message if applicable
98
+ */
99
+ error?: string;
100
+ }
101
+ /**
102
+ * Extended WebSocket interface for Nostr server
103
+ */
104
+ export interface NostrWSServerSocket extends WSClient {
105
+ clientId: string;
106
+ subscriptions: Set<string>;
107
+ lastPing?: number;
108
+ isAlive: boolean;
109
+ }
110
+ /**
111
+ * Nostr WebSocket server options
112
+ */
113
+ export interface NostrWSServerServerOptions {
114
+ port: number;
115
+ host?: string;
116
+ path?: string;
117
+ logger: Logger;
118
+ maxClients?: number;
119
+ pingInterval?: number;
120
+ pingTimeout?: number;
121
+ handlers?: {
122
+ message?: (message: NostrWSServerMessage, ws: NostrWSServerSocket) => Promise<void>;
123
+ error?: (error: Error, ws: NostrWSServerSocket) => void;
124
+ close?: (ws: NostrWSServerSocket) => void;
125
+ };
126
+ }
127
+ /**
128
+ * Nostr WebSocket server message
129
+ */
130
+ export type NostrWSServerServerMessage = NostrWSMessage & {
131
+ clientId?: string;
132
+ timestamp?: number;
133
+ };
134
+ //# sourceMappingURL=nostr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nostr.d.ts","sourceRoot":"","sources":["../../../src/types/nostr.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /**
3
+ * @file Nostr protocol type definitions
4
+ * @module types/nostr
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ //# sourceMappingURL=nostr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nostr.js","sourceRoot":"","sources":["../../../src/types/nostr.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
@@ -0,0 +1,155 @@
1
+ /**
2
+ * @file WebSocket client configuration options
3
+ * @module types/options
4
+ */
5
+ import WebSocket from 'ws';
6
+ import { NostrWSMessage } from './messages';
7
+ /**
8
+ * Handler functions for WebSocket events
9
+ */
10
+ export interface NostrWSHandlers {
11
+ /**
12
+ * Handler for incoming messages
13
+ */
14
+ message: (message: NostrWSMessage) => Promise<void>;
15
+ /**
16
+ * Handler for WebSocket errors
17
+ */
18
+ error: (error: Error) => void;
19
+ /**
20
+ * Handler for connection close events
21
+ */
22
+ close: () => void;
23
+ /**
24
+ * Handler for connection state changes
25
+ */
26
+ stateChange?: (state: string) => void;
27
+ /**
28
+ * Handler for heartbeat events
29
+ */
30
+ heartbeat?: () => void;
31
+ /**
32
+ * Handler for connection events
33
+ */
34
+ connect?: () => void;
35
+ /**
36
+ * Handler for disconnection events
37
+ */
38
+ disconnect?: () => void;
39
+ /**
40
+ * Handler for reconnection events
41
+ */
42
+ reconnect?: () => void;
43
+ }
44
+ /**
45
+ * Connection retry configuration
46
+ */
47
+ export interface RetryConfig {
48
+ /**
49
+ * Maximum number of retry attempts
50
+ * @default 10
51
+ */
52
+ maxAttempts: number;
53
+ /**
54
+ * Initial delay between retries in milliseconds
55
+ * @default 1000
56
+ */
57
+ initialDelay: number;
58
+ /**
59
+ * Maximum delay between retries in milliseconds
60
+ * @default 30000
61
+ */
62
+ maxDelay: number;
63
+ /**
64
+ * Factor to multiply delay by after each attempt
65
+ * @default 1.5
66
+ */
67
+ backoffFactor: number;
68
+ }
69
+ /**
70
+ * Queue configuration
71
+ */
72
+ export interface QueueConfig {
73
+ /**
74
+ * Maximum size of the message queue
75
+ * @default 1000
76
+ */
77
+ maxSize: number;
78
+ /**
79
+ * Maximum number of retry attempts per message
80
+ * @default 3
81
+ */
82
+ maxRetries: number;
83
+ /**
84
+ * Base delay between retries in milliseconds
85
+ * @default 1000
86
+ */
87
+ retryDelay: number;
88
+ /**
89
+ * Time in milliseconds after which messages are considered stale
90
+ * @default 300000 (5 minutes)
91
+ */
92
+ staleTimeout: number;
93
+ }
94
+ /**
95
+ * Heartbeat configuration
96
+ */
97
+ export interface HeartbeatConfig {
98
+ /**
99
+ * Interval between heartbeat pings in milliseconds
100
+ * @default 30000
101
+ */
102
+ interval: number;
103
+ /**
104
+ * Timeout for heartbeat response in milliseconds
105
+ * @default 5000
106
+ */
107
+ timeout: number;
108
+ /**
109
+ * Maximum missed heartbeats before connection is considered dead
110
+ * @default 3
111
+ */
112
+ maxMissed: number;
113
+ }
114
+ /**
115
+ * WebSocket client configuration options
116
+ */
117
+ export interface NostrWSOptions {
118
+ /**
119
+ * WebSocket implementation to use
120
+ * @default ws
121
+ */
122
+ WebSocketImpl: typeof WebSocket;
123
+ /**
124
+ * Event handlers
125
+ */
126
+ handlers: NostrWSHandlers;
127
+ /**
128
+ * Retry configuration
129
+ */
130
+ retry?: Partial<RetryConfig>;
131
+ /**
132
+ * Queue configuration
133
+ */
134
+ queue?: Partial<QueueConfig>;
135
+ /**
136
+ * Heartbeat configuration
137
+ */
138
+ heartbeat?: Partial<HeartbeatConfig>;
139
+ /**
140
+ * Whether to automatically reconnect on disconnection
141
+ * @default true
142
+ */
143
+ autoReconnect?: boolean;
144
+ /**
145
+ * Whether to buffer messages when disconnected
146
+ * @default true
147
+ */
148
+ bufferMessages?: boolean;
149
+ /**
150
+ * Whether to automatically remove stale messages from the queue
151
+ * @default true
152
+ */
153
+ cleanStaleMessages?: boolean;
154
+ }
155
+ //# sourceMappingURL=options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../src/types/options.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,SAAS,MAAM,IAAI,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,OAAO,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpD;;OAEG;IACH,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAE9B;;OAEG;IACH,KAAK,EAAE,MAAM,IAAI,CAAC;IAElB;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAEtC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IAEvB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAErB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IAExB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,aAAa,EAAE,OAAO,SAAS,CAAC;IAEhC;;OAEG;IACH,QAAQ,EAAE,eAAe,CAAC;IAE1B;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAE7B;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAE7B;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IAErC;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /**
3
+ * @file WebSocket client configuration options
4
+ * @module types/options
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ //# sourceMappingURL=options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../../src/types/options.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @file Message priority definitions
3
+ * @module types/priority
4
+ */
5
+ /**
6
+ * Message priority levels for queue management
7
+ */
8
+ export declare enum MessagePriority {
9
+ HIGH = "HIGH",
10
+ NORMAL = "NORMAL",
11
+ LOW = "LOW"
12
+ }
13
+ //# sourceMappingURL=priority.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"priority.d.ts","sourceRoot":"","sources":["../../../src/types/priority.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,oBAAY,eAAe;IACzB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,GAAG,QAAQ;CACZ"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ /**
3
+ * @file Message priority definitions
4
+ * @module types/priority
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.MessagePriority = void 0;
8
+ /**
9
+ * Message priority levels for queue management
10
+ */
11
+ var MessagePriority;
12
+ (function (MessagePriority) {
13
+ MessagePriority["HIGH"] = "HIGH";
14
+ MessagePriority["NORMAL"] = "NORMAL";
15
+ MessagePriority["LOW"] = "LOW";
16
+ })(MessagePriority || (exports.MessagePriority = MessagePriority = {}));
17
+ //# sourceMappingURL=priority.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"priority.js","sourceRoot":"","sources":["../../../src/types/priority.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH;;GAEG;AACH,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,gCAAa,CAAA;IACb,oCAAiB,CAAA;IACjB,8BAAW,CAAA;AACb,CAAC,EAJW,eAAe,+BAAf,eAAe,QAI1B"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * @file Relay type definitions
3
+ * @module types/relays
4
+ */
5
+ /**
6
+ * Relay information interface
7
+ */
8
+ export interface NostrRelayInfo {
9
+ name?: string;
10
+ description?: string;
11
+ pubkey?: string;
12
+ contact?: string;
13
+ supported_nips?: number[];
14
+ software?: string;
15
+ version?: string;
16
+ }
17
+ /**
18
+ * Relay metadata interface
19
+ */
20
+ export interface NostrRelayMetadata extends NostrRelayInfo {
21
+ url: string;
22
+ status: 'connected' | 'disconnected' | 'error';
23
+ error?: string;
24
+ lastConnected?: number;
25
+ lastDisconnected?: number;
26
+ }
27
+ //# sourceMappingURL=relays.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relays.d.ts","sourceRoot":"","sources":["../../../src/types/relays.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACxD,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,WAAW,GAAG,cAAc,GAAG,OAAO,CAAC;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /**
3
+ * @file Relay type definitions
4
+ * @module types/relays
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ //# sourceMappingURL=relays.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relays.js","sourceRoot":"","sources":["../../../src/types/relays.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * @file Scoring and metrics type definitions
3
+ * @module types/scoring
4
+ */
5
+ /**
6
+ * Metric value types
7
+ */
8
+ export type MetricValue = number | string | boolean | Date;
9
+ /**
10
+ * Transport data types
11
+ */
12
+ export type TransportData = string | Buffer | ArrayBuffer | SharedArrayBuffer;
13
+ /**
14
+ * Metrics update event
15
+ */
16
+ export interface MetricUpdateEvent {
17
+ endpoint: string;
18
+ metricType: string;
19
+ value: MetricValue;
20
+ timestamp: number;
21
+ }
22
+ export interface BaseMetrics {
23
+ totalConnections: number;
24
+ activeConnections: number;
25
+ connectionErrors: number;
26
+ messagesReceived: number;
27
+ messagesSent: number;
28
+ bytesReceived: number;
29
+ bytesSent: number;
30
+ averageLatency: number;
31
+ lastSeen: number;
32
+ }
33
+ export interface ScoringStrategy {
34
+ calculateScore(metrics: BaseMetrics): number;
35
+ }
36
+ export interface MetricsProvider<T extends BaseMetrics = BaseMetrics> {
37
+ getMetrics(endpoint: string): T;
38
+ getAllMetrics(): Map<string, T>;
39
+ trackMetric(endpoint: string, metricType: string, value: any): void;
40
+ }
41
+ export declare const DEFAULT_WEIGHTS: {
42
+ readonly latency: 0.2;
43
+ readonly reliability: 0.3;
44
+ readonly uptime: 0.2;
45
+ readonly errors: 0.2;
46
+ readonly activity: 0.1;
47
+ };
48
+ export declare class DefaultScoringStrategy implements ScoringStrategy {
49
+ private weights;
50
+ constructor(weights?: {
51
+ readonly latency: 0.2;
52
+ readonly reliability: 0.3;
53
+ readonly uptime: 0.2;
54
+ readonly errors: 0.2;
55
+ readonly activity: 0.1;
56
+ });
57
+ calculateScore(metrics: BaseMetrics): number;
58
+ }
59
+ //# sourceMappingURL=scoring.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scoring.d.ts","sourceRoot":"","sources":["../../../src/types/scoring.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAE3D;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,WAAW,GAAG,iBAAiB,CAAC;AAE9E;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,WAAW,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAE1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,cAAc,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAAC;CAC9C;AAED,MAAM,WAAW,eAAe,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW;IAClE,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,CAAC;IAChC,aAAa,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAChC,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC;CACrE;AAGD,eAAO,MAAM,eAAe;;;;;;CAMlB,CAAC;AAGX,qBAAa,sBAAuB,YAAW,eAAe;IAChD,OAAO,CAAC,OAAO;gBAAP,OAAO;;;;;;KAAkB;IAE7C,cAAc,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM;CAe7C"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ /**
3
+ * @file Scoring and metrics type definitions
4
+ * @module types/scoring
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.DefaultScoringStrategy = exports.DEFAULT_WEIGHTS = void 0;
8
+ // Default scoring weights
9
+ exports.DEFAULT_WEIGHTS = {
10
+ latency: 0.2,
11
+ reliability: 0.3,
12
+ uptime: 0.2,
13
+ errors: 0.2,
14
+ activity: 0.1,
15
+ };
16
+ // Default scoring strategy
17
+ class DefaultScoringStrategy {
18
+ constructor(weights = exports.DEFAULT_WEIGHTS) {
19
+ this.weights = weights;
20
+ }
21
+ calculateScore(metrics) {
22
+ const now = Date.now();
23
+ // Basic scoring components that would work for any transport
24
+ const latencyScore = Math.max(0, 100 - (metrics.averageLatency / 10));
25
+ const activityScore = metrics.lastSeen ?
26
+ Math.max(0, 100 - ((now - metrics.lastSeen) / (60 * 1000))) : 0;
27
+ const errorScore = Math.max(0, 100 - (metrics.connectionErrors * 5));
28
+ return Math.round((latencyScore * this.weights.latency) +
29
+ (errorScore * this.weights.errors) +
30
+ (activityScore * this.weights.activity));
31
+ }
32
+ }
33
+ exports.DefaultScoringStrategy = DefaultScoringStrategy;
34
+ //# sourceMappingURL=scoring.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scoring.js","sourceRoot":"","sources":["../../../src/types/scoring.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AA6CH,0BAA0B;AACb,QAAA,eAAe,GAAG;IAC7B,OAAO,EAAE,GAAG;IACZ,WAAW,EAAE,GAAG;IAChB,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,QAAQ,EAAE,GAAG;CACL,CAAC;AAEX,2BAA2B;AAC3B,MAAa,sBAAsB;IACjC,YAAoB,UAAU,uBAAe;QAAzB,YAAO,GAAP,OAAO,CAAkB;IAAG,CAAC;IAEjD,cAAc,CAAC,OAAoB;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,6DAA6D;QAC7D,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,GAAG,EAAE,CAAC,CAAC,CAAC;QACtE,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;YACtC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC;QAErE,OAAO,IAAI,CAAC,KAAK,CACf,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;YACrC,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;YAClC,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CACxC,CAAC;IACJ,CAAC;CACF;AAlBD,wDAkBC"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * @file Socket type definitions
3
+ * @module types/socket
4
+ */
5
+ import type { WebSocket } from 'ws';
6
+ import type { NostrWSMessage } from './messages';
7
+ /**
8
+ * Extended WebSocket interface with Nostr-specific properties
9
+ */
10
+ export interface NostrWSSocket extends WebSocket {
11
+ /**
12
+ * Unique client ID
13
+ */
14
+ clientId?: string;
15
+ /**
16
+ * Set of subscribed channels
17
+ */
18
+ subscriptions?: Set<string>;
19
+ /**
20
+ * Whether the socket is alive (for heartbeat)
21
+ */
22
+ isAlive?: boolean;
23
+ /**
24
+ * Send a message through the WebSocket
25
+ */
26
+ send(message: string | Buffer): void;
27
+ }
28
+ /**
29
+ * WebSocket client options
30
+ */
31
+ export interface NostrWSClientOptions {
32
+ /**
33
+ * WebSocket implementation to use
34
+ */
35
+ WebSocketImpl?: typeof WebSocket;
36
+ /**
37
+ * Heartbeat interval in milliseconds
38
+ */
39
+ heartbeatInterval?: number;
40
+ /**
41
+ * Reconnect interval in milliseconds
42
+ */
43
+ reconnectInterval?: number;
44
+ /**
45
+ * Maximum number of reconnect attempts
46
+ */
47
+ maxReconnectAttempts?: number;
48
+ /**
49
+ * Message handlers
50
+ */
51
+ handlers?: {
52
+ message?: (message: NostrWSMessage) => Promise<void>;
53
+ connect?: () => Promise<void>;
54
+ disconnect?: () => Promise<void>;
55
+ error?: (error: Error) => Promise<void>;
56
+ };
57
+ }
58
+ /**
59
+ * WebSocket server options
60
+ */
61
+ export interface NostrWSServerOptions {
62
+ /**
63
+ * WebSocket server implementation to use
64
+ */
65
+ WebSocketImpl?: typeof WebSocket;
66
+ /**
67
+ * Heartbeat interval in milliseconds
68
+ */
69
+ heartbeatInterval?: number;
70
+ /**
71
+ * Message handlers
72
+ */
73
+ handlers?: {
74
+ message?: (ws: NostrWSSocket, message: NostrWSMessage) => Promise<void>;
75
+ connect?: (ws: NostrWSSocket) => Promise<void>;
76
+ disconnect?: (ws: NostrWSSocket) => Promise<void>;
77
+ error?: (ws: NostrWSSocket, error: Error) => Promise<void>;
78
+ };
79
+ }
80
+ /**
81
+ * Client event types
82
+ */
83
+ export type NostrWSClientEvents = {
84
+ message: (message: NostrWSMessage) => void;
85
+ connect: () => void;
86
+ disconnect: () => void;
87
+ error: (error: Error) => void;
88
+ };
89
+ /**
90
+ * Server event types
91
+ */
92
+ export type NostrWSServerEvents = {
93
+ message: (ws: NostrWSSocket, message: NostrWSMessage) => void;
94
+ connect: (ws: NostrWSSocket) => void;
95
+ disconnect: (ws: NostrWSSocket) => void;
96
+ error: (ws: NostrWSSocket, error: Error) => void;
97
+ };
98
+ //# sourceMappingURL=socket.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../../../src/types/socket.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,SAAS;IAC9C;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAE5B;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,SAAS,CAAC;IAEjC;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B;;OAEG;IACH,QAAQ,CAAC,EAAE;QACT,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QACrD,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;QAC9B,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;QACjC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;KACzC,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,SAAS,CAAC;IAEjC;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,QAAQ,CAAC,EAAE;QACT,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QACxE,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/C,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QAClD,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;KAC5D,CAAC;CACH;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;IAC3C,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAC/B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,CAAC,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;IAC9D,OAAO,EAAE,CAAC,EAAE,EAAE,aAAa,KAAK,IAAI,CAAC;IACrC,UAAU,EAAE,CAAC,EAAE,EAAE,aAAa,KAAK,IAAI,CAAC;IACxC,KAAK,EAAE,CAAC,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClD,CAAC"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /**
3
+ * @file Socket type definitions
4
+ * @module types/socket
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ //# sourceMappingURL=socket.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"socket.js","sourceRoot":"","sources":["../../../src/types/socket.ts"],"names":[],"mappings":";AAAA;;;GAGG"}