@welshman/domain 0.9.0-pre1 → 0.9.0-pre2

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 (353) hide show
  1. package/dist/domain/src/behaviors/Emoji.d.ts +18 -0
  2. package/dist/domain/src/behaviors/Emoji.d.ts.map +1 -0
  3. package/dist/domain/src/behaviors/Emoji.js +9 -0
  4. package/dist/domain/src/behaviors/Emoji.js.map +1 -0
  5. package/dist/domain/src/behaviors/ZapSplits.d.ts +36 -0
  6. package/dist/domain/src/behaviors/ZapSplits.d.ts.map +1 -0
  7. package/dist/domain/src/behaviors/ZapSplits.js +54 -0
  8. package/dist/domain/src/behaviors/ZapSplits.js.map +1 -0
  9. package/dist/domain/src/core/EventReader.d.ts +24 -0
  10. package/dist/domain/src/core/EventReader.d.ts.map +1 -0
  11. package/dist/domain/src/core/EventReader.js +55 -0
  12. package/dist/domain/src/core/EventReader.js.map +1 -0
  13. package/dist/domain/src/core/EventWriter.d.ts +99 -0
  14. package/dist/domain/src/core/EventWriter.d.ts.map +1 -0
  15. package/dist/domain/src/core/EventWriter.js +233 -0
  16. package/dist/domain/src/core/EventWriter.js.map +1 -0
  17. package/dist/domain/src/core/Kind.d.ts +39 -0
  18. package/dist/domain/src/core/Kind.d.ts.map +1 -0
  19. package/dist/domain/src/core/Kind.js +43 -0
  20. package/dist/domain/src/core/Kind.js.map +1 -0
  21. package/dist/domain/src/core/ListReader.d.ts +9 -0
  22. package/dist/domain/src/core/ListReader.d.ts.map +1 -0
  23. package/dist/domain/src/{ListReader.js → core/ListReader.js} +2 -1
  24. package/dist/domain/src/core/ListReader.js.map +1 -0
  25. package/dist/domain/src/{ListBuilder.d.ts → core/ListWriter.d.ts} +8 -9
  26. package/dist/domain/src/core/ListWriter.d.ts.map +1 -0
  27. package/dist/domain/src/{ListBuilder.js → core/ListWriter.js} +12 -13
  28. package/dist/domain/src/core/ListWriter.js.map +1 -0
  29. package/dist/domain/src/index.d.ts +14 -5
  30. package/dist/domain/src/index.d.ts.map +1 -1
  31. package/dist/domain/src/index.js +14 -5
  32. package/dist/domain/src/index.js.map +1 -1
  33. package/dist/domain/src/kinds/AppData.d.ts +22 -0
  34. package/dist/domain/src/kinds/AppData.d.ts.map +1 -0
  35. package/dist/domain/src/kinds/AppData.js +84 -0
  36. package/dist/domain/src/kinds/AppData.js.map +1 -0
  37. package/dist/domain/src/kinds/BlockedRelayList.d.ts +6 -7
  38. package/dist/domain/src/kinds/BlockedRelayList.d.ts.map +1 -1
  39. package/dist/domain/src/kinds/BlockedRelayList.js +12 -11
  40. package/dist/domain/src/kinds/BlockedRelayList.js.map +1 -1
  41. package/dist/domain/src/kinds/BlossomServerList.d.ts +6 -7
  42. package/dist/domain/src/kinds/BlossomServerList.d.ts.map +1 -1
  43. package/dist/domain/src/kinds/BlossomServerList.js +12 -11
  44. package/dist/domain/src/kinds/BlossomServerList.js.map +1 -1
  45. package/dist/domain/src/kinds/BookmarkList.d.ts +6 -7
  46. package/dist/domain/src/kinds/BookmarkList.d.ts.map +1 -1
  47. package/dist/domain/src/kinds/BookmarkList.js +15 -14
  48. package/dist/domain/src/kinds/BookmarkList.js.map +1 -1
  49. package/dist/domain/src/kinds/Classified.d.ts +6 -7
  50. package/dist/domain/src/kinds/Classified.d.ts.map +1 -1
  51. package/dist/domain/src/kinds/Classified.js +17 -16
  52. package/dist/domain/src/kinds/Classified.js.map +1 -1
  53. package/dist/domain/src/kinds/Comment.d.ts +14 -10
  54. package/dist/domain/src/kinds/Comment.d.ts.map +1 -1
  55. package/dist/domain/src/kinds/Comment.js +57 -34
  56. package/dist/domain/src/kinds/Comment.js.map +1 -1
  57. package/dist/domain/src/kinds/Delete.d.ts +18 -0
  58. package/dist/domain/src/kinds/Delete.d.ts.map +1 -0
  59. package/dist/domain/src/kinds/Delete.js +70 -0
  60. package/dist/domain/src/kinds/Delete.js.map +1 -0
  61. package/dist/domain/src/kinds/EmojiList.d.ts +6 -10
  62. package/dist/domain/src/kinds/EmojiList.d.ts.map +1 -1
  63. package/dist/domain/src/kinds/EmojiList.js +12 -20
  64. package/dist/domain/src/kinds/EmojiList.js.map +1 -1
  65. package/dist/domain/src/kinds/Feed.d.ts +6 -7
  66. package/dist/domain/src/kinds/Feed.d.ts.map +1 -1
  67. package/dist/domain/src/kinds/Feed.js +14 -13
  68. package/dist/domain/src/kinds/Feed.js.map +1 -1
  69. package/dist/domain/src/kinds/FeedList.d.ts +6 -7
  70. package/dist/domain/src/kinds/FeedList.d.ts.map +1 -1
  71. package/dist/domain/src/kinds/FeedList.js +12 -11
  72. package/dist/domain/src/kinds/FeedList.js.map +1 -1
  73. package/dist/domain/src/kinds/FollowList.d.ts +7 -7
  74. package/dist/domain/src/kinds/FollowList.d.ts.map +1 -1
  75. package/dist/domain/src/kinds/FollowList.js +15 -11
  76. package/dist/domain/src/kinds/FollowList.js.map +1 -1
  77. package/dist/domain/src/kinds/GroupList.d.ts +6 -7
  78. package/dist/domain/src/kinds/GroupList.d.ts.map +1 -1
  79. package/dist/domain/src/kinds/GroupList.js +12 -11
  80. package/dist/domain/src/kinds/GroupList.js.map +1 -1
  81. package/dist/domain/src/kinds/Handler.d.ts +11 -13
  82. package/dist/domain/src/kinds/Handler.d.ts.map +1 -1
  83. package/dist/domain/src/kinds/Handler.js +20 -19
  84. package/dist/domain/src/kinds/Handler.js.map +1 -1
  85. package/dist/domain/src/kinds/HandlerRecommendation.d.ts +6 -7
  86. package/dist/domain/src/kinds/HandlerRecommendation.d.ts.map +1 -1
  87. package/dist/domain/src/kinds/HandlerRecommendation.js +13 -12
  88. package/dist/domain/src/kinds/HandlerRecommendation.js.map +1 -1
  89. package/dist/domain/src/kinds/MessagingRelayList.d.ts +6 -7
  90. package/dist/domain/src/kinds/MessagingRelayList.d.ts.map +1 -1
  91. package/dist/domain/src/kinds/MessagingRelayList.js +12 -11
  92. package/dist/domain/src/kinds/MessagingRelayList.js.map +1 -1
  93. package/dist/domain/src/kinds/MuteList.d.ts +7 -7
  94. package/dist/domain/src/kinds/MuteList.d.ts.map +1 -1
  95. package/dist/domain/src/kinds/MuteList.js +15 -11
  96. package/dist/domain/src/kinds/MuteList.js.map +1 -1
  97. package/dist/domain/src/kinds/Note.d.ts +18 -0
  98. package/dist/domain/src/kinds/Note.d.ts.map +1 -0
  99. package/dist/domain/src/kinds/Note.js +106 -0
  100. package/dist/domain/src/kinds/Note.js.map +1 -0
  101. package/dist/domain/src/kinds/Pin.d.ts +7 -8
  102. package/dist/domain/src/kinds/Pin.d.ts.map +1 -1
  103. package/dist/domain/src/kinds/Pin.js +23 -21
  104. package/dist/domain/src/kinds/Pin.js.map +1 -1
  105. package/dist/domain/src/kinds/PinList.d.ts +6 -7
  106. package/dist/domain/src/kinds/PinList.d.ts.map +1 -1
  107. package/dist/domain/src/kinds/PinList.js +13 -12
  108. package/dist/domain/src/kinds/PinList.js.map +1 -1
  109. package/dist/domain/src/kinds/Pinboard.d.ts +7 -8
  110. package/dist/domain/src/kinds/Pinboard.d.ts.map +1 -1
  111. package/dist/domain/src/kinds/Pinboard.js +16 -15
  112. package/dist/domain/src/kinds/Pinboard.js.map +1 -1
  113. package/dist/domain/src/kinds/Poll.d.ts +7 -8
  114. package/dist/domain/src/kinds/Poll.d.ts.map +1 -1
  115. package/dist/domain/src/kinds/Poll.js +16 -15
  116. package/dist/domain/src/kinds/Poll.js.map +1 -1
  117. package/dist/domain/src/kinds/PollResponse.d.ts +7 -8
  118. package/dist/domain/src/kinds/PollResponse.d.ts.map +1 -1
  119. package/dist/domain/src/kinds/PollResponse.js +13 -12
  120. package/dist/domain/src/kinds/PollResponse.js.map +1 -1
  121. package/dist/domain/src/kinds/Profile.d.ts +10 -13
  122. package/dist/domain/src/kinds/Profile.d.ts.map +1 -1
  123. package/dist/domain/src/kinds/Profile.js +15 -19
  124. package/dist/domain/src/kinds/Profile.js.map +1 -1
  125. package/dist/domain/src/kinds/Reaction.d.ts +16 -0
  126. package/dist/domain/src/kinds/Reaction.d.ts.map +1 -0
  127. package/dist/domain/src/kinds/Reaction.js +55 -0
  128. package/dist/domain/src/kinds/Reaction.js.map +1 -0
  129. package/dist/domain/src/kinds/RelayAddMember.d.ts +7 -7
  130. package/dist/domain/src/kinds/RelayAddMember.d.ts.map +1 -1
  131. package/dist/domain/src/kinds/RelayAddMember.js +13 -11
  132. package/dist/domain/src/kinds/RelayAddMember.js.map +1 -1
  133. package/dist/domain/src/kinds/RelayInvite.d.ts +7 -7
  134. package/dist/domain/src/kinds/RelayInvite.d.ts.map +1 -1
  135. package/dist/domain/src/kinds/RelayInvite.js +13 -11
  136. package/dist/domain/src/kinds/RelayInvite.js.map +1 -1
  137. package/dist/domain/src/kinds/RelayJoin.d.ts +7 -7
  138. package/dist/domain/src/kinds/RelayJoin.d.ts.map +1 -1
  139. package/dist/domain/src/kinds/RelayJoin.js +13 -11
  140. package/dist/domain/src/kinds/RelayJoin.js.map +1 -1
  141. package/dist/domain/src/kinds/RelayLeave.d.ts +7 -7
  142. package/dist/domain/src/kinds/RelayLeave.d.ts.map +1 -1
  143. package/dist/domain/src/kinds/RelayLeave.js +11 -9
  144. package/dist/domain/src/kinds/RelayLeave.js.map +1 -1
  145. package/dist/domain/src/kinds/RelayList.d.ts +7 -7
  146. package/dist/domain/src/kinds/RelayList.d.ts.map +1 -1
  147. package/dist/domain/src/kinds/RelayList.js +20 -11
  148. package/dist/domain/src/kinds/RelayList.js.map +1 -1
  149. package/dist/domain/src/kinds/RelayMembers.d.ts +9 -9
  150. package/dist/domain/src/kinds/RelayMembers.d.ts.map +1 -1
  151. package/dist/domain/src/kinds/RelayMembers.js +15 -15
  152. package/dist/domain/src/kinds/RelayMembers.js.map +1 -1
  153. package/dist/domain/src/kinds/RelayRemoveMember.d.ts +7 -7
  154. package/dist/domain/src/kinds/RelayRemoveMember.d.ts.map +1 -1
  155. package/dist/domain/src/kinds/RelayRemoveMember.js +13 -11
  156. package/dist/domain/src/kinds/RelayRemoveMember.js.map +1 -1
  157. package/dist/domain/src/kinds/RelayRole.d.ts +18 -0
  158. package/dist/domain/src/kinds/RelayRole.d.ts.map +1 -0
  159. package/dist/domain/src/kinds/RelayRole.js +46 -0
  160. package/dist/domain/src/kinds/RelayRole.js.map +1 -0
  161. package/dist/domain/src/kinds/RelaySet.d.ts +6 -7
  162. package/dist/domain/src/kinds/RelaySet.d.ts.map +1 -1
  163. package/dist/domain/src/kinds/RelaySet.js +15 -14
  164. package/dist/domain/src/kinds/RelaySet.js.map +1 -1
  165. package/dist/domain/src/kinds/Report.d.ts +9 -8
  166. package/dist/domain/src/kinds/Report.d.ts.map +1 -1
  167. package/dist/domain/src/kinds/Report.js +20 -16
  168. package/dist/domain/src/kinds/Report.js.map +1 -1
  169. package/dist/domain/src/kinds/RoomAddMember.d.ts +7 -7
  170. package/dist/domain/src/kinds/RoomAddMember.d.ts.map +1 -1
  171. package/dist/domain/src/kinds/RoomAddMember.js +13 -11
  172. package/dist/domain/src/kinds/RoomAddMember.js.map +1 -1
  173. package/dist/domain/src/kinds/RoomAdmins.d.ts +7 -7
  174. package/dist/domain/src/kinds/RoomAdmins.d.ts.map +1 -1
  175. package/dist/domain/src/kinds/RoomAdmins.js +13 -11
  176. package/dist/domain/src/kinds/RoomAdmins.js.map +1 -1
  177. package/dist/domain/src/kinds/RoomCreate.d.ts +8 -8
  178. package/dist/domain/src/kinds/RoomCreate.d.ts.map +1 -1
  179. package/dist/domain/src/kinds/RoomCreate.js +11 -9
  180. package/dist/domain/src/kinds/RoomCreate.js.map +1 -1
  181. package/dist/domain/src/kinds/RoomCreatePermission.d.ts +7 -7
  182. package/dist/domain/src/kinds/RoomCreatePermission.d.ts.map +1 -1
  183. package/dist/domain/src/kinds/RoomCreatePermission.js +13 -11
  184. package/dist/domain/src/kinds/RoomCreatePermission.js.map +1 -1
  185. package/dist/domain/src/kinds/RoomDelete.d.ts +8 -8
  186. package/dist/domain/src/kinds/RoomDelete.d.ts.map +1 -1
  187. package/dist/domain/src/kinds/RoomDelete.js +11 -9
  188. package/dist/domain/src/kinds/RoomDelete.js.map +1 -1
  189. package/dist/domain/src/kinds/RoomEdit.d.ts +8 -8
  190. package/dist/domain/src/kinds/RoomEdit.d.ts.map +1 -1
  191. package/dist/domain/src/kinds/RoomEdit.js +21 -20
  192. package/dist/domain/src/kinds/RoomEdit.js.map +1 -1
  193. package/dist/domain/src/kinds/RoomJoin.d.ts +8 -10
  194. package/dist/domain/src/kinds/RoomJoin.d.ts.map +1 -1
  195. package/dist/domain/src/kinds/RoomJoin.js +13 -17
  196. package/dist/domain/src/kinds/RoomJoin.js.map +1 -1
  197. package/dist/domain/src/kinds/RoomLeave.d.ts +8 -8
  198. package/dist/domain/src/kinds/RoomLeave.d.ts.map +1 -1
  199. package/dist/domain/src/kinds/RoomLeave.js +11 -9
  200. package/dist/domain/src/kinds/RoomLeave.js.map +1 -1
  201. package/dist/domain/src/kinds/RoomList.d.ts +13 -8
  202. package/dist/domain/src/kinds/RoomList.d.ts.map +1 -1
  203. package/dist/domain/src/kinds/RoomList.js +60 -15
  204. package/dist/domain/src/kinds/RoomList.js.map +1 -1
  205. package/dist/domain/src/kinds/RoomMembers.d.ts +7 -7
  206. package/dist/domain/src/kinds/RoomMembers.d.ts.map +1 -1
  207. package/dist/domain/src/kinds/RoomMembers.js +13 -11
  208. package/dist/domain/src/kinds/RoomMembers.js.map +1 -1
  209. package/dist/domain/src/kinds/RoomMeta.d.ts +7 -7
  210. package/dist/domain/src/kinds/RoomMeta.d.ts.map +1 -1
  211. package/dist/domain/src/kinds/RoomMeta.js +16 -14
  212. package/dist/domain/src/kinds/RoomMeta.js.map +1 -1
  213. package/dist/domain/src/kinds/RoomRemoveMember.d.ts +7 -7
  214. package/dist/domain/src/kinds/RoomRemoveMember.d.ts.map +1 -1
  215. package/dist/domain/src/kinds/RoomRemoveMember.js +13 -11
  216. package/dist/domain/src/kinds/RoomRemoveMember.js.map +1 -1
  217. package/dist/domain/src/kinds/SearchRelayList.d.ts +6 -7
  218. package/dist/domain/src/kinds/SearchRelayList.d.ts.map +1 -1
  219. package/dist/domain/src/kinds/SearchRelayList.js +12 -11
  220. package/dist/domain/src/kinds/SearchRelayList.js.map +1 -1
  221. package/dist/domain/src/kinds/Thread.d.ts +6 -7
  222. package/dist/domain/src/kinds/Thread.d.ts.map +1 -1
  223. package/dist/domain/src/kinds/Thread.js +12 -11
  224. package/dist/domain/src/kinds/Thread.js.map +1 -1
  225. package/dist/domain/src/kinds/TimeEvent.d.ts +9 -10
  226. package/dist/domain/src/kinds/TimeEvent.d.ts.map +1 -1
  227. package/dist/domain/src/kinds/TimeEvent.js +23 -22
  228. package/dist/domain/src/kinds/TimeEvent.js.map +1 -1
  229. package/dist/domain/src/kinds/TopicList.d.ts +6 -7
  230. package/dist/domain/src/kinds/TopicList.d.ts.map +1 -1
  231. package/dist/domain/src/kinds/TopicList.js +13 -12
  232. package/dist/domain/src/kinds/TopicList.js.map +1 -1
  233. package/dist/domain/src/kinds/ZapGoal.d.ts +10 -9
  234. package/dist/domain/src/kinds/ZapGoal.d.ts.map +1 -1
  235. package/dist/domain/src/kinds/ZapGoal.js +20 -16
  236. package/dist/domain/src/kinds/ZapGoal.js.map +1 -1
  237. package/dist/domain/src/kinds/ZapReceipt.d.ts +8 -11
  238. package/dist/domain/src/kinds/ZapReceipt.d.ts.map +1 -1
  239. package/dist/domain/src/kinds/ZapReceipt.js +17 -42
  240. package/dist/domain/src/kinds/ZapReceipt.js.map +1 -1
  241. package/dist/domain/src/kinds/ZapRequest.d.ts +15 -7
  242. package/dist/domain/src/kinds/ZapRequest.d.ts.map +1 -1
  243. package/dist/domain/src/kinds/ZapRequest.js +40 -15
  244. package/dist/domain/src/kinds/ZapRequest.js.map +1 -1
  245. package/dist/domain/src/other/Relay.d.ts +49 -0
  246. package/dist/domain/src/other/Relay.d.ts.map +1 -0
  247. package/dist/domain/src/other/Relay.js +50 -0
  248. package/dist/domain/src/other/Relay.js.map +1 -0
  249. package/dist/domain/src/other/Zapper.d.ts +40 -0
  250. package/dist/domain/src/other/Zapper.d.ts.map +1 -0
  251. package/dist/domain/src/other/Zapper.js +67 -0
  252. package/dist/domain/src/other/Zapper.js.map +1 -0
  253. package/dist/feeds/src/compiler.d.ts +2 -2
  254. package/dist/feeds/src/compiler.d.ts.map +1 -1
  255. package/dist/feeds/src/index.d.ts +1 -0
  256. package/dist/feeds/src/index.d.ts.map +1 -1
  257. package/dist/feeds/src/index.js +1 -0
  258. package/dist/feeds/src/index.js.map +1 -1
  259. package/dist/feeds/src/request.d.ts +4 -4
  260. package/dist/feeds/src/request.d.ts.map +1 -1
  261. package/dist/feeds/src/request.js +15 -15
  262. package/dist/feeds/src/request.js.map +1 -1
  263. package/dist/feeds/src/router.d.ts +10 -0
  264. package/dist/feeds/src/router.d.ts.map +1 -0
  265. package/dist/feeds/src/router.js +45 -0
  266. package/dist/feeds/src/router.js.map +1 -0
  267. package/dist/feeds/src/utils.js +2 -2
  268. package/dist/feeds/src/utils.js.map +1 -1
  269. package/dist/lib/src/Tools.d.ts +9 -0
  270. package/dist/lib/src/Tools.d.ts.map +1 -1
  271. package/dist/lib/src/Tools.js +26 -1
  272. package/dist/lib/src/Tools.js.map +1 -1
  273. package/dist/net/src/context.d.ts +1 -1
  274. package/dist/net/src/context.d.ts.map +1 -1
  275. package/dist/net/src/message.d.ts +1 -1
  276. package/dist/net/src/message.d.ts.map +1 -1
  277. package/dist/net/src/message.js +1 -1
  278. package/dist/net/src/message.js.map +1 -1
  279. package/dist/net/src/repository.d.ts +3 -0
  280. package/dist/net/src/repository.d.ts.map +1 -1
  281. package/dist/net/src/repository.js +49 -12
  282. package/dist/net/src/repository.js.map +1 -1
  283. package/dist/net/src/request.d.ts +2 -1
  284. package/dist/net/src/request.d.ts.map +1 -1
  285. package/dist/net/src/request.js.map +1 -1
  286. package/dist/signer/src/signers/nip46.d.ts +2 -2
  287. package/dist/signer/src/signers/nip46.d.ts.map +1 -1
  288. package/dist/signer/src/signers/nip46.js +10 -5
  289. package/dist/signer/src/signers/nip46.js.map +1 -1
  290. package/dist/tsconfig.build.tsbuildinfo +1 -1
  291. package/dist/util/src/Events.d.ts +0 -12
  292. package/dist/util/src/Events.d.ts.map +1 -1
  293. package/dist/util/src/Events.js +3 -25
  294. package/dist/util/src/Events.js.map +1 -1
  295. package/dist/util/src/Kinds.d.ts +3 -1
  296. package/dist/util/src/Kinds.d.ts.map +1 -1
  297. package/dist/util/src/Kinds.js +5 -2
  298. package/dist/util/src/Kinds.js.map +1 -1
  299. package/dist/util/src/Lightning.d.ts +6 -0
  300. package/dist/util/src/Lightning.d.ts.map +1 -0
  301. package/dist/util/src/Lightning.js +59 -0
  302. package/dist/util/src/Lightning.js.map +1 -0
  303. package/dist/util/src/Nip86.d.ts +74 -30
  304. package/dist/util/src/Nip86.d.ts.map +1 -1
  305. package/dist/util/src/Nip86.js +169 -30
  306. package/dist/util/src/Nip86.js.map +1 -1
  307. package/dist/util/src/Pow.js +2 -2
  308. package/dist/util/src/Pow.js.map +1 -1
  309. package/dist/util/src/Pubkey.d.ts.map +1 -1
  310. package/dist/util/src/Pubkey.js +2 -1
  311. package/dist/util/src/Pubkey.js.map +1 -1
  312. package/dist/util/src/Relay.d.ts +0 -29
  313. package/dist/util/src/Relay.d.ts.map +1 -1
  314. package/dist/util/src/Relay.js +0 -10
  315. package/dist/util/src/Relay.js.map +1 -1
  316. package/dist/util/src/RelaySelection.d.ts +101 -0
  317. package/dist/util/src/RelaySelection.d.ts.map +1 -0
  318. package/dist/util/src/RelaySelection.js +98 -0
  319. package/dist/util/src/RelaySelection.js.map +1 -0
  320. package/dist/util/src/Tags.d.ts +16 -35
  321. package/dist/util/src/Tags.d.ts.map +1 -1
  322. package/dist/util/src/Tags.js +23 -74
  323. package/dist/util/src/Tags.js.map +1 -1
  324. package/dist/util/src/Topics.d.ts +2 -0
  325. package/dist/util/src/Topics.d.ts.map +1 -0
  326. package/dist/util/src/Topics.js +2 -0
  327. package/dist/util/src/Topics.js.map +1 -0
  328. package/dist/util/src/index.d.ts +2 -1
  329. package/dist/util/src/index.d.ts.map +1 -1
  330. package/dist/util/src/index.js +2 -1
  331. package/dist/util/src/index.js.map +1 -1
  332. package/package.json +11 -9
  333. package/dist/domain/src/EventBuilder.d.ts +0 -35
  334. package/dist/domain/src/EventBuilder.d.ts.map +0 -1
  335. package/dist/domain/src/EventBuilder.js +0 -111
  336. package/dist/domain/src/EventBuilder.js.map +0 -1
  337. package/dist/domain/src/EventReader.d.ts +0 -24
  338. package/dist/domain/src/EventReader.d.ts.map +0 -1
  339. package/dist/domain/src/EventReader.js +0 -57
  340. package/dist/domain/src/EventReader.js.map +0 -1
  341. package/dist/domain/src/ListBuilder.d.ts.map +0 -1
  342. package/dist/domain/src/ListBuilder.js.map +0 -1
  343. package/dist/domain/src/ListReader.d.ts +0 -12
  344. package/dist/domain/src/ListReader.d.ts.map +0 -1
  345. package/dist/domain/src/ListReader.js.map +0 -1
  346. package/dist/domain/src/kinds/SlashCommand.d.ts +0 -38
  347. package/dist/domain/src/kinds/SlashCommand.d.ts.map +0 -1
  348. package/dist/domain/src/kinds/SlashCommand.js +0 -91
  349. package/dist/domain/src/kinds/SlashCommand.js.map +0 -1
  350. package/dist/util/src/Zaps.d.ts +0 -86
  351. package/dist/util/src/Zaps.d.ts.map +0 -1
  352. package/dist/util/src/Zaps.js +0 -184
  353. package/dist/util/src/Zaps.js.map +0 -1
@@ -1,184 +0,0 @@
1
- import { now, tryCatch, fetchJson, hexToBech32, fromPairs, sum, allPass, nthEq, nth, } from "@welshman/lib";
2
- import { ZAP_RECEIPT, ZAP_REQUEST } from "./Kinds.js";
3
- import { getTagValue } from "./Tags.js";
4
- import { makeEvent } from "./Events.js";
5
- const DIVISORS = {
6
- m: BigInt(1e3),
7
- u: BigInt(1e6),
8
- n: BigInt(1e9),
9
- p: BigInt(1e12),
10
- };
11
- const MAX_MILLISATS = BigInt("2100000000000000000");
12
- const MILLISATS_PER_BTC = BigInt(1e11);
13
- export const toMsats = (sats) => sats * 1000;
14
- export const fromMsats = (msats) => Math.floor(msats / 1000);
15
- export const hrpToMillisat = (hrpString) => {
16
- let divisor, value;
17
- if (hrpString.slice(-1).match(/^[munp]$/)) {
18
- divisor = hrpString.slice(-1);
19
- value = hrpString.slice(0, -1);
20
- }
21
- else if (hrpString.slice(-1).match(/^[^munp0-9]$/)) {
22
- throw new Error("Not a valid multiplier for the amount");
23
- }
24
- else {
25
- value = hrpString;
26
- }
27
- if (!value.match(/^\d+$/))
28
- throw new Error("Not a valid human readable amount");
29
- const valueBN = BigInt(value);
30
- const millisatoshisBN = divisor
31
- ? (valueBN * MILLISATS_PER_BTC) / DIVISORS[divisor]
32
- : valueBN * MILLISATS_PER_BTC;
33
- if ((divisor === "p" && !(valueBN % BigInt(10) === BigInt(0))) ||
34
- millisatoshisBN > MAX_MILLISATS) {
35
- throw new Error("Amount is outside of valid range");
36
- }
37
- return millisatoshisBN;
38
- };
39
- export const getInvoiceAmount = (bolt11) => {
40
- const hrp = bolt11.match(/lnbc(\d+\w)/);
41
- const bn = hrpToMillisat(hrp[1]);
42
- return Number(bn);
43
- };
44
- export const getLnUrl = (address) => {
45
- address = address.toLowerCase();
46
- // If it's already a lud06 we're good
47
- if (address.startsWith("lnurl1")) {
48
- return address;
49
- }
50
- // If it's a regular url, encode it
51
- if (address.includes("://")) {
52
- return hexToBech32("lnurl", address);
53
- }
54
- // Try to parse it as a lud16 address
55
- if (address.includes("@")) {
56
- const [name, domain] = address.split("@");
57
- if (domain && name) {
58
- return hexToBech32("lnurl", `https://${domain}/.well-known/lnurlp/${name}`);
59
- }
60
- }
61
- };
62
- export const zapFromEvent = (response, zapper) => {
63
- const responseMeta = fromPairs(response.tags);
64
- let zap;
65
- try {
66
- zap = {
67
- response,
68
- invoiceAmount: getInvoiceAmount(responseMeta.bolt11),
69
- request: JSON.parse(responseMeta.description),
70
- };
71
- }
72
- catch (e) {
73
- return undefined;
74
- }
75
- // Don't count zaps that the user requested for himself
76
- if (zap.request.pubkey === zapper?.pubkey) {
77
- return undefined;
78
- }
79
- const { amount, lnurl } = fromPairs(zap.request.tags);
80
- // Verify that the zapper actually sent the requested amount (if it was supplied)
81
- if (amount && parseInt(amount) !== zap.invoiceAmount) {
82
- return undefined;
83
- }
84
- // If the recipient and the zapper are the same person, it's legit
85
- if (responseMeta.p === response.pubkey) {
86
- return zap;
87
- }
88
- // If the sending client provided an lnurl tag, verify that too
89
- if (lnurl && lnurl !== zapper?.lnurl) {
90
- return undefined;
91
- }
92
- // Verify that the request actually came from the recipient's zapper
93
- if (zap.response.pubkey !== zapper?.nostrPubkey) {
94
- return undefined;
95
- }
96
- return zap;
97
- };
98
- const parseWeight = (weight) => {
99
- const n = weight === undefined ? NaN : parseFloat(weight);
100
- return Number.isFinite(n) && n > 0 ? n : 0;
101
- };
102
- /**
103
- * Resolve an event's zap-split recipients per NIP-57 Appendix G:
104
- *
105
- * - With no `zap` tags the whole zap goes to the event's author.
106
- * - If no recipient carries a weight, the zap is split equally (weight 1 each).
107
- * - If weights are only partially present, unweighted recipients drop to weight
108
- * 0 (i.e. they should not be zapped).
109
- *
110
- * Weight-0 recipients are still returned so callers have the full recipient set;
111
- * they simply receive 0 from `splitZapAmount`.
112
- */
113
- export const getZapSplits = (event) => {
114
- const zapTags = event.tags.filter(allPass(nthEq(0, "zap"), nth(1)));
115
- if (zapTags.length === 0) {
116
- return [{ pubkey: event.pubkey, weight: 1 }];
117
- }
118
- const anyWeighted = zapTags.some(nth(3));
119
- return zapTags.map(([, pubkey, relay, weight]) => ({
120
- pubkey,
121
- relay: relay || undefined,
122
- weight: anyWeighted ? parseWeight(weight) : 1,
123
- }));
124
- };
125
- /**
126
- * Divide `total` (in any integer unit, e.g. millisats) across an event's
127
- * zap-split recipients proportionally to their weights. Any rounding remainder
128
- * is handed to the highest-weighted recipient so the parts sum back to exactly
129
- * `total`. If every weight is 0, nobody is zapped.
130
- */
131
- export const splitZapAmount = (event, total) => {
132
- const splits = getZapSplits(event);
133
- const totalWeight = sum(splits.map(split => split.weight));
134
- if (totalWeight === 0) {
135
- return splits.map(split => ({ ...split, amount: 0 }));
136
- }
137
- const amounts = splits.map(split => Math.floor((total * split.weight) / totalWeight));
138
- let maxIndex = 0;
139
- splits.forEach((split, i) => {
140
- if (split.weight > splits[maxIndex].weight) {
141
- maxIndex = i;
142
- }
143
- });
144
- amounts[maxIndex] += total - sum(amounts);
145
- return splits.map((split, i) => ({ ...split, amount: amounts[i] }));
146
- };
147
- export const makeZapRequest = ({ msats, zapper, pubkey, relays, content = "", eventId, anonymous, }) => {
148
- const tags = [
149
- ["relays", ...relays],
150
- ["amount", String(msats)],
151
- ["lnurl", zapper.lnurl],
152
- ["p", pubkey],
153
- ];
154
- if (eventId) {
155
- tags.push(["e", eventId]);
156
- }
157
- if (anonymous) {
158
- tags.push(["anon"]);
159
- }
160
- return makeEvent(ZAP_REQUEST, { content, tags });
161
- };
162
- export const requestZap = async ({ zapper, event }) => {
163
- const zapString = encodeURI(JSON.stringify(event));
164
- const msats = parseInt(getTagValue("amount", event.tags));
165
- const qs = `?amount=${msats}&nostr=${zapString}&lnurl=${zapper.lnurl}`;
166
- const res = await tryCatch(() => fetchJson(zapper.callback + qs));
167
- return res?.pr ? { invoice: res.pr } : { error: res.reason || "Failed to request invoice" };
168
- };
169
- export const getZapResponseFilter = ({ zapper, pubkey, eventId }) => {
170
- if (!zapper.nostrPubkey) {
171
- throw new Error("Zapper did not have a nostr pubkey");
172
- }
173
- const filter = {
174
- kinds: [ZAP_RECEIPT],
175
- authors: [zapper.nostrPubkey],
176
- since: now() - 30,
177
- "#p": [pubkey],
178
- };
179
- if (eventId) {
180
- filter["#e"] = [eventId];
181
- }
182
- return filter;
183
- };
184
- //# sourceMappingURL=Zaps.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Zaps.js","sourceRoot":"","sources":["../../../../util/src/Zaps.ts"],"names":[],"mappings":"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"}