nostr-websocket-utils 0.3.1 → 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 (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 +6 -0
  58. package/dist/cjs/crypto/index.d.ts.map +1 -0
  59. package/dist/cjs/crypto/index.js +22 -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 +1 -0
  242. package/dist/crypto/index.d.ts.map +1 -0
  243. package/dist/crypto/index.js +1 -0
  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,40 @@
1
+ "use strict";
2
+ /**
3
+ * @file Main entry point for the nostr-websocket-utils library
4
+ * @module nostr-websocket-utils
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
18
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
19
+ };
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.getLogger = exports.createServer = exports.NostrServer = exports.NostrWSServer = exports.NostrWSClient = void 0;
22
+ // Core functionality
23
+ var client_js_1 = require("./core/client.js");
24
+ Object.defineProperty(exports, "NostrWSClient", { enumerable: true, get: function () { return client_js_1.NostrWSClient; } });
25
+ var server_js_1 = require("./core/server.js");
26
+ Object.defineProperty(exports, "NostrWSServer", { enumerable: true, get: function () { return server_js_1.NostrWSServer; } });
27
+ var nostr_server_js_1 = require("./core/nostr-server.js");
28
+ Object.defineProperty(exports, "NostrServer", { enumerable: true, get: function () { return nostr_server_js_1.NostrWSServer; } });
29
+ var nostr_server_js_2 = require("./core/nostr-server.js");
30
+ Object.defineProperty(exports, "createServer", { enumerable: true, get: function () { return nostr_server_js_2.createWSServer; } });
31
+ // Utilities
32
+ var logger_js_1 = require("./utils/logger.js");
33
+ Object.defineProperty(exports, "getLogger", { enumerable: true, get: function () { return logger_js_1.getLogger; } });
34
+ // Crypto operations
35
+ __exportStar(require("./crypto"), exports);
36
+ // NIP implementations
37
+ __exportStar(require("./nips"), exports);
38
+ // Type definitions
39
+ __exportStar(require("./types"), exports);
40
+ //# 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,8CAAiD;AAAxC,0GAAA,aAAa,OAAA;AACtB,8CAAiD;AAAxC,0GAAA,aAAa,OAAA;AACtB,0DAAsE;AAA7D,8GAAA,aAAa,OAAe;AACrC,0DAAwE;AAA/D,+GAAA,cAAc,OAAgB;AAEvC,YAAY;AACZ,+CAA8C;AAArC,sGAAA,SAAS,OAAA;AAElB,oBAAoB;AACpB,2CAAyB;AAEzB,sBAAsB;AACtB,yCAAuB;AAEvB,mBAAmB;AACnB,0CAAwB"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @file NIPs implementation index
3
+ * @module nips
4
+ */
5
+ export * from './nip-01';
6
+ export * from './nip-02';
7
+ export * from './nip-04';
8
+ export * from './nip-05';
9
+ export * from './nip-09';
10
+ export * from './nip-19';
11
+ export * from './nip-26';
12
+ export * from './nip-11';
13
+ export * from './nip-20';
14
+ export * from './nip-13';
15
+ export * from './nip-16';
16
+ export * from './nip-15';
17
+ export * from './nip-22';
18
+ export * from './nip-28';
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"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ /**
3
+ * @file NIPs implementation index
4
+ * @module nips
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
18
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
19
+ };
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ // Basic protocol flow
22
+ __exportStar(require("./nip-01"), exports);
23
+ // Contact List and Petnames
24
+ __exportStar(require("./nip-02"), exports);
25
+ // Encrypted Direct Messages
26
+ __exportStar(require("./nip-04"), exports);
27
+ // DNS Identity Verification
28
+ __exportStar(require("./nip-05"), exports);
29
+ // Event Deletion
30
+ __exportStar(require("./nip-09"), exports);
31
+ // bech32-encoded entities
32
+ __exportStar(require("./nip-19"), exports);
33
+ // Delegated Event Signing
34
+ __exportStar(require("./nip-26"), exports);
35
+ // Relay Information Document
36
+ __exportStar(require("./nip-11"), exports);
37
+ // Command Results
38
+ __exportStar(require("./nip-20"), exports);
39
+ // Proof of Work
40
+ __exportStar(require("./nip-13"), exports);
41
+ // Event Treatment
42
+ __exportStar(require("./nip-16"), exports);
43
+ // End of Stored Events Notice
44
+ __exportStar(require("./nip-15"), exports);
45
+ // Event Created At Limits
46
+ __exportStar(require("./nip-22"), exports);
47
+ // Public Chat
48
+ __exportStar(require("./nip-28"), exports);
49
+ // Parameterized Replaceable Events
50
+ __exportStar(require("./nip-33"), exports);
51
+ //# 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,2CAAyB;AAEzB,4BAA4B;AAC5B,2CAAyB;AAEzB,4BAA4B;AAC5B,2CAAyB;AAEzB,4BAA4B;AAC5B,2CAAyB;AAEzB,iBAAiB;AACjB,2CAAyB;AAEzB,0BAA0B;AAC1B,2CAAyB;AAEzB,0BAA0B;AAC1B,2CAAyB;AAEzB,6BAA6B;AAC7B,2CAAyB;AAEzB,kBAAkB;AAClB,2CAAyB;AAEzB,gBAAgB;AAChB,2CAAyB;AAEzB,kBAAkB;AAClB,2CAAyB;AAEzB,8BAA8B;AAC9B,2CAAyB;AAEzB,0BAA0B;AAC1B,2CAAyB;AAEzB,cAAc;AACd,2CAAyB;AAEzB,mCAAmC;AACnC,2CAAyB"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * @file NIP-01: Basic protocol flow implementation
3
+ * @module nips/nip-01
4
+ */
5
+ import type { NostrWSMessage, NostrEvent } from '../types/messages';
6
+ interface NostrEventValidationResult {
7
+ valid: boolean;
8
+ error?: string;
9
+ }
10
+ /**
11
+ * Validates a message according to NIP-01 specifications
12
+ */
13
+ export declare function validateMessage(message: NostrWSMessage): boolean;
14
+ /**
15
+ * Creates an EVENT message
16
+ */
17
+ export declare function createEventMessage(event: NostrEvent): NostrWSMessage;
18
+ /**
19
+ * Creates a REQ message
20
+ */
21
+ export declare function createReqMessage(subscriptionId: string, filters: Array<Record<string, unknown>>): NostrWSMessage;
22
+ /**
23
+ * Creates a CLOSE message
24
+ */
25
+ export declare function createCloseMessage(subscriptionId: string): NostrWSMessage;
26
+ /**
27
+ * Creates a NOTICE message
28
+ */
29
+ export declare function createNoticeMessage(message: string): NostrWSMessage;
30
+ /**
31
+ * Validates a Nostr event according to NIP-01
32
+ */
33
+ export declare function validateEvent(event: NostrEvent): NostrEventValidationResult;
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"}
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+ /**
3
+ * @file NIP-01: Basic protocol flow implementation
4
+ * @module nips/nip-01
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.validateMessage = validateMessage;
8
+ exports.createEventMessage = createEventMessage;
9
+ exports.createReqMessage = createReqMessage;
10
+ exports.createCloseMessage = createCloseMessage;
11
+ exports.createNoticeMessage = createNoticeMessage;
12
+ exports.validateEvent = validateEvent;
13
+ const logger_1 = require("../utils/logger");
14
+ const messages_1 = require("../types/messages");
15
+ const logger = (0, logger_1.getLogger)('NIP-01');
16
+ /**
17
+ * Validates a message according to NIP-01 specifications
18
+ */
19
+ function validateMessage(message) {
20
+ if (!message || !Array.isArray(message)) {
21
+ logger.debug('Invalid message format');
22
+ return false;
23
+ }
24
+ if (!message[0] || !(message[0] in messages_1.MESSAGE_TYPES)) {
25
+ logger.debug(`Invalid message type: ${message[0]}`);
26
+ return false;
27
+ }
28
+ if (!message[1] || typeof message[1] !== 'object') {
29
+ logger.debug('Invalid message data');
30
+ return false;
31
+ }
32
+ // Message type specific validation
33
+ if (message[0] === messages_1.MESSAGE_TYPES.EVENT) {
34
+ if (!validateEvent(message[1]).valid) {
35
+ return false;
36
+ }
37
+ }
38
+ if (message[0] === messages_1.MESSAGE_TYPES.REQ) {
39
+ if (!validateReqMessage(message)) {
40
+ return false;
41
+ }
42
+ }
43
+ if (message[0] === messages_1.MESSAGE_TYPES.CLOSE) {
44
+ if (!validateCloseMessage(message)) {
45
+ return false;
46
+ }
47
+ }
48
+ return true;
49
+ }
50
+ /**
51
+ * Creates an EVENT message
52
+ */
53
+ function createEventMessage(event) {
54
+ return [messages_1.MESSAGE_TYPES.EVENT, event];
55
+ }
56
+ /**
57
+ * Creates a REQ message
58
+ */
59
+ function createReqMessage(subscriptionId, filters) {
60
+ return [messages_1.MESSAGE_TYPES.REQ, {
61
+ subscription_id: subscriptionId,
62
+ filters
63
+ }];
64
+ }
65
+ /**
66
+ * Creates a CLOSE message
67
+ */
68
+ function createCloseMessage(subscriptionId) {
69
+ return [messages_1.MESSAGE_TYPES.CLOSE, {
70
+ subscription_id: subscriptionId
71
+ }];
72
+ }
73
+ /**
74
+ * Creates a NOTICE message
75
+ */
76
+ function createNoticeMessage(message) {
77
+ return [messages_1.MESSAGE_TYPES.NOTICE, {
78
+ message
79
+ }];
80
+ }
81
+ /**
82
+ * Validates a Nostr event according to NIP-01
83
+ */
84
+ function validateEvent(event) {
85
+ if (typeof event !== 'object' || !event) {
86
+ return { valid: false, error: 'Event must be an object' };
87
+ }
88
+ const typedEvent = event;
89
+ if (!typedEvent.id || typeof typedEvent.id !== 'string') {
90
+ return { valid: false, error: 'Event must have a string id' };
91
+ }
92
+ if (!typedEvent.pubkey || typeof typedEvent.pubkey !== 'string') {
93
+ return { valid: false, error: 'Event must have a string pubkey' };
94
+ }
95
+ if (!typedEvent.created_at || typeof typedEvent.created_at !== 'number') {
96
+ return { valid: false, error: 'Event must have a number created_at' };
97
+ }
98
+ if (!typedEvent.kind || typeof typedEvent.kind !== 'number') {
99
+ return { valid: false, error: 'Event must have a number kind' };
100
+ }
101
+ if (!Array.isArray(typedEvent.tags)) {
102
+ return { valid: false, error: 'Event must have an array of tags' };
103
+ }
104
+ if (!typedEvent.content || typeof typedEvent.content !== 'string') {
105
+ return { valid: false, error: 'Event must have a string content' };
106
+ }
107
+ if (!typedEvent.sig || typeof typedEvent.sig !== 'string') {
108
+ return { valid: false, error: 'Event must have a string sig' };
109
+ }
110
+ // Validate tag structure
111
+ for (const tag of typedEvent.tags) {
112
+ if (!Array.isArray(tag) || tag.length === 0) {
113
+ return { valid: false, error: 'Each tag must be a non-empty array' };
114
+ }
115
+ if (typeof tag[0] !== 'string') {
116
+ return { valid: false, error: 'Tag identifier must be a string' };
117
+ }
118
+ }
119
+ return { valid: true };
120
+ }
121
+ // Private helper functions
122
+ function validateReqMessage(message) {
123
+ const { subscription_id, filters } = message[1];
124
+ if (!subscription_id || typeof subscription_id !== 'string') {
125
+ logger.debug('Invalid subscription_id');
126
+ return false;
127
+ }
128
+ if (!Array.isArray(filters)) {
129
+ logger.debug('Invalid filters format');
130
+ return false;
131
+ }
132
+ return true;
133
+ }
134
+ function validateCloseMessage(message) {
135
+ const { subscription_id } = message[1];
136
+ if (!subscription_id || typeof subscription_id !== 'string') {
137
+ logger.debug('Invalid subscription_id');
138
+ return false;
139
+ }
140
+ return true;
141
+ }
142
+ //# sourceMappingURL=nip-01.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nip-01.js","sourceRoot":"","sources":["../../../src/nips/nip-01.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * @file NIP-02: Contact List and Petnames
3
+ * @module nips/nip-02
4
+ * @see https://github.com/nostr-protocol/nips/blob/master/02.md
5
+ */
6
+ import type { NostrWSMessage } from '../types/messages';
7
+ import type { Logger } from '../types/logger';
8
+ /**
9
+ * Contact list event kind
10
+ */
11
+ export declare const CONTACT_LIST_KIND = 3;
12
+ /**
13
+ * Contact entry structure
14
+ */
15
+ export interface Contact {
16
+ pubkey: string;
17
+ relay?: string;
18
+ petname?: string;
19
+ metadata?: Record<string, unknown>;
20
+ }
21
+ /**
22
+ * Creates a contact list event
23
+ * @param contacts - List of contacts
24
+ * @param metadata - Optional metadata for the contact list
25
+ * @returns {NostrWSMessage} Contact list event
26
+ */
27
+ export declare function createContactListEvent(contacts: Contact[], metadata?: Record<string, unknown>): NostrWSMessage;
28
+ /**
29
+ * Extracts contacts from a contact list event
30
+ * @param message - Contact list message
31
+ * @returns {Contact[]} Array of contacts
32
+ */
33
+ export declare function extractContacts(message: NostrWSMessage): Contact[];
34
+ /**
35
+ * Creates a contact list subscription message
36
+ * @param pubkey - Public key to subscribe to
37
+ * @returns {NostrWSMessage} Subscription message
38
+ */
39
+ export declare function createContactListSubscription(pubkey: string): NostrWSMessage;
40
+ /**
41
+ * Contact list manager interface
42
+ */
43
+ export interface ContactListManager {
44
+ /**
45
+ * Adds or updates a contact
46
+ * @param contact - Contact to add/update
47
+ */
48
+ addContact(contact: Contact): void;
49
+ /**
50
+ * Removes a contact
51
+ * @param pubkey - Public key of contact to remove
52
+ */
53
+ removeContact(pubkey: string): void;
54
+ /**
55
+ * Gets a contact by public key
56
+ * @param pubkey - Public key to look up
57
+ * @returns {Contact | undefined} Contact if found
58
+ */
59
+ getContact(pubkey: string): Contact | undefined;
60
+ /**
61
+ * Gets all contacts
62
+ * @returns {Contact[]} Array of all contacts
63
+ */
64
+ getAllContacts(): Contact[];
65
+ /**
66
+ * Updates contact metadata
67
+ * @param pubkey - Public key of contact
68
+ * @param metadata - New metadata
69
+ */
70
+ updateContactMetadata(pubkey: string, metadata: Record<string, unknown>): void;
71
+ /**
72
+ * Creates a contact list event
73
+ * @returns {NostrWSMessage} Contact list event
74
+ */
75
+ createEvent(): NostrWSMessage;
76
+ }
77
+ /**
78
+ * Creates a contact list manager
79
+ * @param _logger - Logger instance
80
+ * @returns {ContactListManager} Contact list manager
81
+ */
82
+ export declare function createContactListManager(_logger: Logger): ContactListManager;
83
+ //# sourceMappingURL=nip-02.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nip-02.d.ts","sourceRoot":"","sources":["../../../src/nips/nip-02.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,iBAAiB,IAAI,CAAC;AAEnC;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,OAAO,EAAE,EACnB,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACrC,cAAc,CAahB;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,cAAc,GACtB,OAAO,EAAE,CA4BX;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAO5E;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAEnC;;;OAGG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAEpC;;;;OAIG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;IAEhD;;;OAGG;IACH,cAAc,IAAI,OAAO,EAAE,CAAC;IAE5B;;;;OAIG;IACH,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAE/E;;;OAGG;IACH,WAAW,IAAI,cAAc,CAAC;CAC/B;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,CAqC5E"}
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ /**
3
+ * @file NIP-02: Contact List and Petnames
4
+ * @module nips/nip-02
5
+ * @see https://github.com/nostr-protocol/nips/blob/master/02.md
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.CONTACT_LIST_KIND = void 0;
9
+ exports.createContactListEvent = createContactListEvent;
10
+ exports.extractContacts = extractContacts;
11
+ exports.createContactListSubscription = createContactListSubscription;
12
+ exports.createContactListManager = createContactListManager;
13
+ /**
14
+ * Contact list event kind
15
+ */
16
+ exports.CONTACT_LIST_KIND = 3;
17
+ /**
18
+ * Creates a contact list event
19
+ * @param contacts - List of contacts
20
+ * @param metadata - Optional metadata for the contact list
21
+ * @returns {NostrWSMessage} Contact list event
22
+ */
23
+ function createContactListEvent(contacts, metadata = {}) {
24
+ const tags = contacts.map(contact => {
25
+ const tag = ['p', contact.pubkey];
26
+ if (contact.relay)
27
+ tag.push(contact.relay);
28
+ if (contact.petname)
29
+ tag.push(contact.petname);
30
+ return tag;
31
+ });
32
+ return ['EVENT', {
33
+ kind: exports.CONTACT_LIST_KIND,
34
+ tags,
35
+ content: JSON.stringify(metadata)
36
+ }];
37
+ }
38
+ /**
39
+ * Extracts contacts from a contact list event
40
+ * @param message - Contact list message
41
+ * @returns {Contact[]} Array of contacts
42
+ */
43
+ function extractContacts(message) {
44
+ try {
45
+ if (!Array.isArray(message) || message[0] !== 'EVENT') {
46
+ return [];
47
+ }
48
+ const event = message[1];
49
+ if (event.kind !== exports.CONTACT_LIST_KIND) {
50
+ return [];
51
+ }
52
+ if (!Array.isArray(event.tags)) {
53
+ return [];
54
+ }
55
+ const metadata = event.content ? JSON.parse(event.content) : {};
56
+ return event.tags
57
+ .filter(tag => Array.isArray(tag) && tag[0] === 'p')
58
+ .map(tag => ({
59
+ pubkey: tag[1],
60
+ relay: tag[2],
61
+ petname: tag[3],
62
+ metadata
63
+ }));
64
+ }
65
+ catch (error) {
66
+ return [];
67
+ }
68
+ }
69
+ /**
70
+ * Creates a contact list subscription message
71
+ * @param pubkey - Public key to subscribe to
72
+ * @returns {NostrWSMessage} Subscription message
73
+ */
74
+ function createContactListSubscription(pubkey) {
75
+ return ['REQ', {
76
+ filter: {
77
+ authors: [pubkey],
78
+ kinds: [exports.CONTACT_LIST_KIND]
79
+ }
80
+ }];
81
+ }
82
+ /**
83
+ * Creates a contact list manager
84
+ * @param _logger - Logger instance
85
+ * @returns {ContactListManager} Contact list manager
86
+ */
87
+ function createContactListManager(_logger) {
88
+ const contacts = new Map();
89
+ return {
90
+ addContact(contact) {
91
+ contacts.set(contact.pubkey, contact);
92
+ },
93
+ removeContact(pubkey) {
94
+ contacts.delete(pubkey);
95
+ },
96
+ getContact(pubkey) {
97
+ return contacts.get(pubkey);
98
+ },
99
+ getAllContacts() {
100
+ return Array.from(contacts.values());
101
+ },
102
+ updateContactMetadata(pubkey, metadata) {
103
+ const contact = contacts.get(pubkey);
104
+ if (contact) {
105
+ contacts.set(pubkey, {
106
+ ...contact,
107
+ metadata: {
108
+ ...contact.metadata,
109
+ ...metadata
110
+ }
111
+ });
112
+ }
113
+ },
114
+ createEvent() {
115
+ return createContactListEvent(Array.from(contacts.values()));
116
+ }
117
+ };
118
+ }
119
+ //# sourceMappingURL=nip-02.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nip-02.js","sourceRoot":"","sources":["../../../src/nips/nip-02.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * @file NIP-04: Encrypted Direct Message Support
3
+ * @module nips/nip-04
4
+ * @see https://github.com/nostr-protocol/nips/blob/master/04.md
5
+ */
6
+ import type { NostrWSMessage } from '../types/messages';
7
+ import type { Logger } from '../types/logger';
8
+ /**
9
+ * Kind value for encrypted direct messages
10
+ */
11
+ export declare const ENCRYPTED_DM_KIND = 4;
12
+ /**
13
+ * Creates an encrypted direct message event
14
+ * @param content - Message content to encrypt
15
+ * @param recipientPubkey - Recipient's public key
16
+ * @param senderPrivkey - Sender's private key
17
+ * @param tags - Additional tags for the event
18
+ * @returns {Promise<NostrWSMessage>} Encrypted message event
19
+ */
20
+ export declare function createEncryptedDM(content: string, recipientPubkey: string, senderPrivkey: string, tags?: string[][]): Promise<NostrWSMessage>;
21
+ /**
22
+ * Decrypts a received direct message event
23
+ * @param message - Received message
24
+ * @param recipientPrivkey - Recipient's private key
25
+ * @param senderPubkey - Sender's public key
26
+ * @param logger - Logger instance
27
+ * @returns {Promise<string>} Decrypted message content
28
+ */
29
+ export declare function decryptDM(message: NostrWSMessage, recipientPrivkey: string, senderPubkey: string, logger: Logger): Promise<string>;
30
+ /**
31
+ * Validates an encrypted DM event format
32
+ * @param message - Message to validate
33
+ * @param logger - Logger instance
34
+ * @returns {boolean} True if message follows NIP-04 format
35
+ */
36
+ export declare function validateEncryptedDM(message: NostrWSMessage, logger: Logger): boolean;
37
+ //# sourceMappingURL=nip-04.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nip-04.d.ts","sourceRoot":"","sources":["../../../src/nips/nip-04.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,mBAAmB,CAAC;AACpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C;;GAEG;AACH,eAAO,MAAM,iBAAiB,IAAI,CAAC;AAEnC;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,MAAM,EACvB,aAAa,EAAE,MAAM,EACrB,IAAI,GAAE,MAAM,EAAE,EAAO,GACpB,OAAO,CAAC,cAAc,CAAC,CAezB;AAED;;;;;;;GAOG;AACH,wBAAsB,SAAS,CAC7B,OAAO,EAAE,cAAc,EACvB,gBAAgB,EAAE,MAAM,EACxB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,CAiBjB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,MAAM,GACb,OAAO,CAqCT"}