@welshman/app 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 (514) hide show
  1. package/dist/app/src/command.d.ts +26 -0
  2. package/dist/app/src/command.d.ts.map +1 -0
  3. package/dist/app/src/command.js +38 -0
  4. package/dist/app/src/command.js.map +1 -0
  5. package/dist/app/src/index.d.ts +12 -7
  6. package/dist/app/src/index.d.ts.map +1 -1
  7. package/dist/app/src/index.js +12 -7
  8. package/dist/app/src/index.js.map +1 -1
  9. package/dist/app/src/plugins/base.d.ts +47 -0
  10. package/dist/app/src/plugins/base.d.ts.map +1 -1
  11. package/dist/app/src/plugins/base.js +65 -3
  12. package/dist/app/src/plugins/base.js.map +1 -1
  13. package/dist/app/src/plugins/blockedRelayLists.d.ts +6 -6
  14. package/dist/app/src/plugins/blockedRelayLists.d.ts.map +1 -1
  15. package/dist/app/src/plugins/blockedRelayLists.js +9 -10
  16. package/dist/app/src/plugins/blockedRelayLists.js.map +1 -1
  17. package/dist/app/src/plugins/blossomServerLists.d.ts +18 -0
  18. package/dist/app/src/plugins/blossomServerLists.d.ts.map +1 -0
  19. package/dist/app/src/plugins/blossomServerLists.js +33 -0
  20. package/dist/app/src/plugins/blossomServerLists.js.map +1 -0
  21. package/dist/app/src/plugins/deletes.d.ts +14 -0
  22. package/dist/app/src/plugins/deletes.d.ts.map +1 -0
  23. package/dist/app/src/plugins/deletes.js +25 -0
  24. package/dist/app/src/plugins/deletes.js.map +1 -0
  25. package/dist/app/src/plugins/domain.d.ts +16 -0
  26. package/dist/app/src/plugins/domain.d.ts.map +1 -0
  27. package/dist/app/src/plugins/domain.js +37 -0
  28. package/dist/app/src/plugins/domain.js.map +1 -0
  29. package/dist/app/src/plugins/feedLists.d.ts +18 -0
  30. package/dist/app/src/plugins/feedLists.d.ts.map +1 -0
  31. package/dist/app/src/plugins/feedLists.js +33 -0
  32. package/dist/app/src/plugins/feedLists.js.map +1 -0
  33. package/dist/app/src/plugins/feeds.d.ts +19 -8
  34. package/dist/app/src/plugins/feeds.d.ts.map +1 -1
  35. package/dist/app/src/plugins/feeds.js +41 -11
  36. package/dist/app/src/plugins/feeds.js.map +1 -1
  37. package/dist/app/src/plugins/{follows.d.ts → followLists.d.ts} +6 -6
  38. package/dist/app/src/plugins/followLists.d.ts.map +1 -0
  39. package/dist/app/src/plugins/{follows.js → followLists.js} +9 -10
  40. package/dist/app/src/plugins/followLists.js.map +1 -0
  41. package/dist/app/src/plugins/handles.d.ts +0 -2
  42. package/dist/app/src/plugins/handles.d.ts.map +1 -1
  43. package/dist/app/src/plugins/handles.js +0 -3
  44. package/dist/app/src/plugins/handles.js.map +1 -1
  45. package/dist/app/src/plugins/messagingRelayLists.d.ts +6 -6
  46. package/dist/app/src/plugins/messagingRelayLists.d.ts.map +1 -1
  47. package/dist/app/src/plugins/messagingRelayLists.js +11 -10
  48. package/dist/app/src/plugins/messagingRelayLists.js.map +1 -1
  49. package/dist/app/src/plugins/muteLists.d.ts +19 -0
  50. package/dist/app/src/plugins/muteLists.d.ts.map +1 -0
  51. package/dist/app/src/plugins/muteLists.js +38 -0
  52. package/dist/app/src/plugins/muteLists.js.map +1 -0
  53. package/dist/app/src/plugins/network.d.ts +3 -9
  54. package/dist/app/src/plugins/network.d.ts.map +1 -1
  55. package/dist/app/src/plugins/network.js +16 -22
  56. package/dist/app/src/plugins/network.js.map +1 -1
  57. package/dist/app/src/plugins/pinboards.d.ts +39 -0
  58. package/dist/app/src/plugins/pinboards.d.ts.map +1 -0
  59. package/dist/app/src/plugins/pinboards.js +94 -0
  60. package/dist/app/src/plugins/pinboards.js.map +1 -0
  61. package/dist/app/src/plugins/pins.d.ts +5 -5
  62. package/dist/app/src/plugins/pins.d.ts.map +1 -1
  63. package/dist/app/src/plugins/pins.js +8 -9
  64. package/dist/app/src/plugins/pins.js.map +1 -1
  65. package/dist/app/src/plugins/profiles.d.ts +7 -4
  66. package/dist/app/src/plugins/profiles.d.ts.map +1 -1
  67. package/dist/app/src/plugins/profiles.js +52 -13
  68. package/dist/app/src/plugins/profiles.js.map +1 -1
  69. package/dist/app/src/plugins/reactions.d.ts +15 -0
  70. package/dist/app/src/plugins/reactions.d.ts.map +1 -0
  71. package/dist/app/src/plugins/reactions.js +26 -0
  72. package/dist/app/src/plugins/reactions.js.map +1 -0
  73. package/dist/app/src/plugins/relayLists.d.ts +10 -10
  74. package/dist/app/src/plugins/relayLists.d.ts.map +1 -1
  75. package/dist/app/src/plugins/relayLists.js +21 -40
  76. package/dist/app/src/plugins/relayLists.js.map +1 -1
  77. package/dist/app/src/plugins/relayManagement.d.ts +4 -4
  78. package/dist/app/src/plugins/relayManagement.d.ts.map +1 -1
  79. package/dist/app/src/plugins/relayManagement.js +5 -9
  80. package/dist/app/src/plugins/relayManagement.js.map +1 -1
  81. package/dist/app/src/plugins/relayMembers.d.ts +12 -0
  82. package/dist/app/src/plugins/relayMembers.d.ts.map +1 -0
  83. package/dist/app/src/plugins/relayMembers.js +22 -0
  84. package/dist/app/src/plugins/relayMembers.js.map +1 -0
  85. package/dist/app/src/plugins/relayRoles.d.ts +14 -0
  86. package/dist/app/src/plugins/relayRoles.d.ts.map +1 -0
  87. package/dist/app/src/plugins/relayRoles.js +33 -0
  88. package/dist/app/src/plugins/relayRoles.js.map +1 -0
  89. package/dist/app/src/plugins/relays.d.ts +24 -5
  90. package/dist/app/src/plugins/relays.d.ts.map +1 -1
  91. package/dist/app/src/plugins/relays.js +51 -26
  92. package/dist/app/src/plugins/relays.js.map +1 -1
  93. package/dist/app/src/plugins/roomLists.d.ts +22 -0
  94. package/dist/app/src/plugins/roomLists.d.ts.map +1 -0
  95. package/dist/app/src/plugins/roomLists.js +37 -0
  96. package/dist/app/src/plugins/roomLists.js.map +1 -0
  97. package/dist/app/src/plugins/rooms.d.ts +29 -14
  98. package/dist/app/src/plugins/rooms.d.ts.map +1 -1
  99. package/dist/app/src/plugins/rooms.js +69 -23
  100. package/dist/app/src/plugins/rooms.js.map +1 -1
  101. package/dist/app/src/plugins/router.d.ts +19 -7
  102. package/dist/app/src/plugins/router.d.ts.map +1 -1
  103. package/dist/app/src/plugins/router.js +86 -17
  104. package/dist/app/src/plugins/router.js.map +1 -1
  105. package/dist/app/src/plugins/searchRelayLists.d.ts +6 -6
  106. package/dist/app/src/plugins/searchRelayLists.d.ts.map +1 -1
  107. package/dist/app/src/plugins/searchRelayLists.js +9 -10
  108. package/dist/app/src/plugins/searchRelayLists.js.map +1 -1
  109. package/dist/app/src/plugins/sync.d.ts.map +1 -1
  110. package/dist/app/src/plugins/sync.js +3 -2
  111. package/dist/app/src/plugins/sync.js.map +1 -1
  112. package/dist/app/src/plugins/thunk.d.ts +0 -1
  113. package/dist/app/src/plugins/thunk.d.ts.map +1 -1
  114. package/dist/app/src/plugins/thunk.js +5 -12
  115. package/dist/app/src/plugins/thunk.js.map +1 -1
  116. package/dist/app/src/plugins/topics.d.ts +4 -2
  117. package/dist/app/src/plugins/topics.d.ts.map +1 -1
  118. package/dist/app/src/plugins/topics.js +11 -5
  119. package/dist/app/src/plugins/topics.js.map +1 -1
  120. package/dist/app/src/plugins/wot.js +2 -2
  121. package/dist/app/src/plugins/wot.js.map +1 -1
  122. package/dist/app/src/plugins/wraps.js +2 -2
  123. package/dist/app/src/plugins/wraps.js.map +1 -1
  124. package/dist/app/src/plugins/zappers.d.ts +3 -1
  125. package/dist/app/src/plugins/zappers.d.ts.map +1 -1
  126. package/dist/app/src/plugins/zappers.js +24 -11
  127. package/dist/app/src/plugins/zappers.js.map +1 -1
  128. package/dist/domain/src/behaviors/Emoji.d.ts +18 -0
  129. package/dist/domain/src/behaviors/Emoji.d.ts.map +1 -0
  130. package/dist/domain/src/behaviors/Emoji.js +9 -0
  131. package/dist/domain/src/behaviors/Emoji.js.map +1 -0
  132. package/dist/domain/src/behaviors/ZapSplits.d.ts +36 -0
  133. package/dist/domain/src/behaviors/ZapSplits.d.ts.map +1 -0
  134. package/dist/domain/src/behaviors/ZapSplits.js +54 -0
  135. package/dist/domain/src/behaviors/ZapSplits.js.map +1 -0
  136. package/dist/domain/src/core/EventReader.d.ts +24 -0
  137. package/dist/domain/src/core/EventReader.d.ts.map +1 -0
  138. package/dist/domain/src/core/EventReader.js +55 -0
  139. package/dist/domain/src/core/EventReader.js.map +1 -0
  140. package/dist/domain/src/core/EventWriter.d.ts +99 -0
  141. package/dist/domain/src/core/EventWriter.d.ts.map +1 -0
  142. package/dist/domain/src/core/EventWriter.js +233 -0
  143. package/dist/domain/src/core/EventWriter.js.map +1 -0
  144. package/dist/domain/src/core/Kind.d.ts +39 -0
  145. package/dist/domain/src/core/Kind.d.ts.map +1 -0
  146. package/dist/domain/src/core/Kind.js +43 -0
  147. package/dist/domain/src/core/Kind.js.map +1 -0
  148. package/dist/domain/src/core/ListReader.d.ts +9 -0
  149. package/dist/domain/src/core/ListReader.d.ts.map +1 -0
  150. package/dist/domain/src/{ListReader.js → core/ListReader.js} +2 -1
  151. package/dist/domain/src/core/ListReader.js.map +1 -0
  152. package/dist/domain/src/{ListBuilder.d.ts → core/ListWriter.d.ts} +8 -9
  153. package/dist/domain/src/core/ListWriter.d.ts.map +1 -0
  154. package/dist/domain/src/{ListBuilder.js → core/ListWriter.js} +12 -13
  155. package/dist/domain/src/core/ListWriter.js.map +1 -0
  156. package/dist/domain/src/index.d.ts +14 -5
  157. package/dist/domain/src/index.d.ts.map +1 -1
  158. package/dist/domain/src/index.js +14 -5
  159. package/dist/domain/src/index.js.map +1 -1
  160. package/dist/domain/src/kinds/AppData.d.ts +22 -0
  161. package/dist/domain/src/kinds/AppData.d.ts.map +1 -0
  162. package/dist/domain/src/kinds/AppData.js +84 -0
  163. package/dist/domain/src/kinds/AppData.js.map +1 -0
  164. package/dist/domain/src/kinds/BlockedRelayList.d.ts +6 -7
  165. package/dist/domain/src/kinds/BlockedRelayList.d.ts.map +1 -1
  166. package/dist/domain/src/kinds/BlockedRelayList.js +12 -11
  167. package/dist/domain/src/kinds/BlockedRelayList.js.map +1 -1
  168. package/dist/domain/src/kinds/BlossomServerList.d.ts +6 -7
  169. package/dist/domain/src/kinds/BlossomServerList.d.ts.map +1 -1
  170. package/dist/domain/src/kinds/BlossomServerList.js +12 -11
  171. package/dist/domain/src/kinds/BlossomServerList.js.map +1 -1
  172. package/dist/domain/src/kinds/BookmarkList.d.ts +6 -7
  173. package/dist/domain/src/kinds/BookmarkList.d.ts.map +1 -1
  174. package/dist/domain/src/kinds/BookmarkList.js +15 -14
  175. package/dist/domain/src/kinds/BookmarkList.js.map +1 -1
  176. package/dist/domain/src/kinds/Classified.d.ts +6 -7
  177. package/dist/domain/src/kinds/Classified.d.ts.map +1 -1
  178. package/dist/domain/src/kinds/Classified.js +17 -16
  179. package/dist/domain/src/kinds/Classified.js.map +1 -1
  180. package/dist/domain/src/kinds/Comment.d.ts +14 -10
  181. package/dist/domain/src/kinds/Comment.d.ts.map +1 -1
  182. package/dist/domain/src/kinds/Comment.js +57 -34
  183. package/dist/domain/src/kinds/Comment.js.map +1 -1
  184. package/dist/domain/src/kinds/Delete.d.ts +18 -0
  185. package/dist/domain/src/kinds/Delete.d.ts.map +1 -0
  186. package/dist/domain/src/kinds/Delete.js +70 -0
  187. package/dist/domain/src/kinds/Delete.js.map +1 -0
  188. package/dist/domain/src/kinds/EmojiList.d.ts +6 -10
  189. package/dist/domain/src/kinds/EmojiList.d.ts.map +1 -1
  190. package/dist/domain/src/kinds/EmojiList.js +12 -20
  191. package/dist/domain/src/kinds/EmojiList.js.map +1 -1
  192. package/dist/domain/src/kinds/Feed.d.ts +6 -7
  193. package/dist/domain/src/kinds/Feed.d.ts.map +1 -1
  194. package/dist/domain/src/kinds/Feed.js +14 -13
  195. package/dist/domain/src/kinds/Feed.js.map +1 -1
  196. package/dist/domain/src/kinds/FeedList.d.ts +6 -7
  197. package/dist/domain/src/kinds/FeedList.d.ts.map +1 -1
  198. package/dist/domain/src/kinds/FeedList.js +12 -11
  199. package/dist/domain/src/kinds/FeedList.js.map +1 -1
  200. package/dist/domain/src/kinds/FollowList.d.ts +7 -7
  201. package/dist/domain/src/kinds/FollowList.d.ts.map +1 -1
  202. package/dist/domain/src/kinds/FollowList.js +15 -11
  203. package/dist/domain/src/kinds/FollowList.js.map +1 -1
  204. package/dist/domain/src/kinds/GroupList.d.ts +6 -7
  205. package/dist/domain/src/kinds/GroupList.d.ts.map +1 -1
  206. package/dist/domain/src/kinds/GroupList.js +12 -11
  207. package/dist/domain/src/kinds/GroupList.js.map +1 -1
  208. package/dist/domain/src/kinds/Handler.d.ts +11 -13
  209. package/dist/domain/src/kinds/Handler.d.ts.map +1 -1
  210. package/dist/domain/src/kinds/Handler.js +20 -19
  211. package/dist/domain/src/kinds/Handler.js.map +1 -1
  212. package/dist/domain/src/kinds/HandlerRecommendation.d.ts +6 -7
  213. package/dist/domain/src/kinds/HandlerRecommendation.d.ts.map +1 -1
  214. package/dist/domain/src/kinds/HandlerRecommendation.js +13 -12
  215. package/dist/domain/src/kinds/HandlerRecommendation.js.map +1 -1
  216. package/dist/domain/src/kinds/MessagingRelayList.d.ts +6 -7
  217. package/dist/domain/src/kinds/MessagingRelayList.d.ts.map +1 -1
  218. package/dist/domain/src/kinds/MessagingRelayList.js +12 -11
  219. package/dist/domain/src/kinds/MessagingRelayList.js.map +1 -1
  220. package/dist/domain/src/kinds/MuteList.d.ts +7 -7
  221. package/dist/domain/src/kinds/MuteList.d.ts.map +1 -1
  222. package/dist/domain/src/kinds/MuteList.js +15 -11
  223. package/dist/domain/src/kinds/MuteList.js.map +1 -1
  224. package/dist/domain/src/kinds/Note.d.ts +18 -0
  225. package/dist/domain/src/kinds/Note.d.ts.map +1 -0
  226. package/dist/domain/src/kinds/Note.js +106 -0
  227. package/dist/domain/src/kinds/Note.js.map +1 -0
  228. package/dist/domain/src/kinds/Pin.d.ts +7 -8
  229. package/dist/domain/src/kinds/Pin.d.ts.map +1 -1
  230. package/dist/domain/src/kinds/Pin.js +23 -21
  231. package/dist/domain/src/kinds/Pin.js.map +1 -1
  232. package/dist/domain/src/kinds/PinList.d.ts +6 -7
  233. package/dist/domain/src/kinds/PinList.d.ts.map +1 -1
  234. package/dist/domain/src/kinds/PinList.js +13 -12
  235. package/dist/domain/src/kinds/PinList.js.map +1 -1
  236. package/dist/domain/src/kinds/Pinboard.d.ts +7 -8
  237. package/dist/domain/src/kinds/Pinboard.d.ts.map +1 -1
  238. package/dist/domain/src/kinds/Pinboard.js +16 -15
  239. package/dist/domain/src/kinds/Pinboard.js.map +1 -1
  240. package/dist/domain/src/kinds/Poll.d.ts +7 -8
  241. package/dist/domain/src/kinds/Poll.d.ts.map +1 -1
  242. package/dist/domain/src/kinds/Poll.js +16 -15
  243. package/dist/domain/src/kinds/Poll.js.map +1 -1
  244. package/dist/domain/src/kinds/PollResponse.d.ts +7 -8
  245. package/dist/domain/src/kinds/PollResponse.d.ts.map +1 -1
  246. package/dist/domain/src/kinds/PollResponse.js +13 -12
  247. package/dist/domain/src/kinds/PollResponse.js.map +1 -1
  248. package/dist/domain/src/kinds/Profile.d.ts +10 -13
  249. package/dist/domain/src/kinds/Profile.d.ts.map +1 -1
  250. package/dist/domain/src/kinds/Profile.js +15 -19
  251. package/dist/domain/src/kinds/Profile.js.map +1 -1
  252. package/dist/domain/src/kinds/Reaction.d.ts +16 -0
  253. package/dist/domain/src/kinds/Reaction.d.ts.map +1 -0
  254. package/dist/domain/src/kinds/Reaction.js +55 -0
  255. package/dist/domain/src/kinds/Reaction.js.map +1 -0
  256. package/dist/domain/src/kinds/RelayAddMember.d.ts +7 -7
  257. package/dist/domain/src/kinds/RelayAddMember.d.ts.map +1 -1
  258. package/dist/domain/src/kinds/RelayAddMember.js +13 -11
  259. package/dist/domain/src/kinds/RelayAddMember.js.map +1 -1
  260. package/dist/domain/src/kinds/RelayInvite.d.ts +7 -7
  261. package/dist/domain/src/kinds/RelayInvite.d.ts.map +1 -1
  262. package/dist/domain/src/kinds/RelayInvite.js +13 -11
  263. package/dist/domain/src/kinds/RelayInvite.js.map +1 -1
  264. package/dist/domain/src/kinds/RelayJoin.d.ts +7 -7
  265. package/dist/domain/src/kinds/RelayJoin.d.ts.map +1 -1
  266. package/dist/domain/src/kinds/RelayJoin.js +13 -11
  267. package/dist/domain/src/kinds/RelayJoin.js.map +1 -1
  268. package/dist/domain/src/kinds/RelayLeave.d.ts +7 -7
  269. package/dist/domain/src/kinds/RelayLeave.d.ts.map +1 -1
  270. package/dist/domain/src/kinds/RelayLeave.js +11 -9
  271. package/dist/domain/src/kinds/RelayLeave.js.map +1 -1
  272. package/dist/domain/src/kinds/RelayList.d.ts +7 -7
  273. package/dist/domain/src/kinds/RelayList.d.ts.map +1 -1
  274. package/dist/domain/src/kinds/RelayList.js +20 -11
  275. package/dist/domain/src/kinds/RelayList.js.map +1 -1
  276. package/dist/domain/src/kinds/RelayMembers.d.ts +9 -9
  277. package/dist/domain/src/kinds/RelayMembers.d.ts.map +1 -1
  278. package/dist/domain/src/kinds/RelayMembers.js +15 -15
  279. package/dist/domain/src/kinds/RelayMembers.js.map +1 -1
  280. package/dist/domain/src/kinds/RelayRemoveMember.d.ts +7 -7
  281. package/dist/domain/src/kinds/RelayRemoveMember.d.ts.map +1 -1
  282. package/dist/domain/src/kinds/RelayRemoveMember.js +13 -11
  283. package/dist/domain/src/kinds/RelayRemoveMember.js.map +1 -1
  284. package/dist/domain/src/kinds/RelayRole.d.ts +18 -0
  285. package/dist/domain/src/kinds/RelayRole.d.ts.map +1 -0
  286. package/dist/domain/src/kinds/RelayRole.js +46 -0
  287. package/dist/domain/src/kinds/RelayRole.js.map +1 -0
  288. package/dist/domain/src/kinds/RelaySet.d.ts +6 -7
  289. package/dist/domain/src/kinds/RelaySet.d.ts.map +1 -1
  290. package/dist/domain/src/kinds/RelaySet.js +15 -14
  291. package/dist/domain/src/kinds/RelaySet.js.map +1 -1
  292. package/dist/domain/src/kinds/Report.d.ts +9 -8
  293. package/dist/domain/src/kinds/Report.d.ts.map +1 -1
  294. package/dist/domain/src/kinds/Report.js +20 -16
  295. package/dist/domain/src/kinds/Report.js.map +1 -1
  296. package/dist/domain/src/kinds/RoomAddMember.d.ts +7 -7
  297. package/dist/domain/src/kinds/RoomAddMember.d.ts.map +1 -1
  298. package/dist/domain/src/kinds/RoomAddMember.js +13 -11
  299. package/dist/domain/src/kinds/RoomAddMember.js.map +1 -1
  300. package/dist/domain/src/kinds/RoomAdmins.d.ts +7 -7
  301. package/dist/domain/src/kinds/RoomAdmins.d.ts.map +1 -1
  302. package/dist/domain/src/kinds/RoomAdmins.js +13 -11
  303. package/dist/domain/src/kinds/RoomAdmins.js.map +1 -1
  304. package/dist/domain/src/kinds/RoomCreate.d.ts +8 -8
  305. package/dist/domain/src/kinds/RoomCreate.d.ts.map +1 -1
  306. package/dist/domain/src/kinds/RoomCreate.js +11 -9
  307. package/dist/domain/src/kinds/RoomCreate.js.map +1 -1
  308. package/dist/domain/src/kinds/RoomCreatePermission.d.ts +7 -7
  309. package/dist/domain/src/kinds/RoomCreatePermission.d.ts.map +1 -1
  310. package/dist/domain/src/kinds/RoomCreatePermission.js +13 -11
  311. package/dist/domain/src/kinds/RoomCreatePermission.js.map +1 -1
  312. package/dist/domain/src/kinds/RoomDelete.d.ts +8 -8
  313. package/dist/domain/src/kinds/RoomDelete.d.ts.map +1 -1
  314. package/dist/domain/src/kinds/RoomDelete.js +11 -9
  315. package/dist/domain/src/kinds/RoomDelete.js.map +1 -1
  316. package/dist/domain/src/kinds/RoomEdit.d.ts +8 -8
  317. package/dist/domain/src/kinds/RoomEdit.d.ts.map +1 -1
  318. package/dist/domain/src/kinds/RoomEdit.js +21 -20
  319. package/dist/domain/src/kinds/RoomEdit.js.map +1 -1
  320. package/dist/domain/src/kinds/RoomJoin.d.ts +8 -10
  321. package/dist/domain/src/kinds/RoomJoin.d.ts.map +1 -1
  322. package/dist/domain/src/kinds/RoomJoin.js +13 -17
  323. package/dist/domain/src/kinds/RoomJoin.js.map +1 -1
  324. package/dist/domain/src/kinds/RoomLeave.d.ts +8 -8
  325. package/dist/domain/src/kinds/RoomLeave.d.ts.map +1 -1
  326. package/dist/domain/src/kinds/RoomLeave.js +11 -9
  327. package/dist/domain/src/kinds/RoomLeave.js.map +1 -1
  328. package/dist/domain/src/kinds/RoomList.d.ts +13 -8
  329. package/dist/domain/src/kinds/RoomList.d.ts.map +1 -1
  330. package/dist/domain/src/kinds/RoomList.js +60 -15
  331. package/dist/domain/src/kinds/RoomList.js.map +1 -1
  332. package/dist/domain/src/kinds/RoomMembers.d.ts +7 -7
  333. package/dist/domain/src/kinds/RoomMembers.d.ts.map +1 -1
  334. package/dist/domain/src/kinds/RoomMembers.js +13 -11
  335. package/dist/domain/src/kinds/RoomMembers.js.map +1 -1
  336. package/dist/domain/src/kinds/RoomMeta.d.ts +7 -7
  337. package/dist/domain/src/kinds/RoomMeta.d.ts.map +1 -1
  338. package/dist/domain/src/kinds/RoomMeta.js +16 -14
  339. package/dist/domain/src/kinds/RoomMeta.js.map +1 -1
  340. package/dist/domain/src/kinds/RoomRemoveMember.d.ts +7 -7
  341. package/dist/domain/src/kinds/RoomRemoveMember.d.ts.map +1 -1
  342. package/dist/domain/src/kinds/RoomRemoveMember.js +13 -11
  343. package/dist/domain/src/kinds/RoomRemoveMember.js.map +1 -1
  344. package/dist/domain/src/kinds/SearchRelayList.d.ts +6 -7
  345. package/dist/domain/src/kinds/SearchRelayList.d.ts.map +1 -1
  346. package/dist/domain/src/kinds/SearchRelayList.js +12 -11
  347. package/dist/domain/src/kinds/SearchRelayList.js.map +1 -1
  348. package/dist/domain/src/kinds/Thread.d.ts +6 -7
  349. package/dist/domain/src/kinds/Thread.d.ts.map +1 -1
  350. package/dist/domain/src/kinds/Thread.js +12 -11
  351. package/dist/domain/src/kinds/Thread.js.map +1 -1
  352. package/dist/domain/src/kinds/TimeEvent.d.ts +9 -10
  353. package/dist/domain/src/kinds/TimeEvent.d.ts.map +1 -1
  354. package/dist/domain/src/kinds/TimeEvent.js +23 -22
  355. package/dist/domain/src/kinds/TimeEvent.js.map +1 -1
  356. package/dist/domain/src/kinds/TopicList.d.ts +6 -7
  357. package/dist/domain/src/kinds/TopicList.d.ts.map +1 -1
  358. package/dist/domain/src/kinds/TopicList.js +13 -12
  359. package/dist/domain/src/kinds/TopicList.js.map +1 -1
  360. package/dist/domain/src/kinds/ZapGoal.d.ts +10 -9
  361. package/dist/domain/src/kinds/ZapGoal.d.ts.map +1 -1
  362. package/dist/domain/src/kinds/ZapGoal.js +20 -16
  363. package/dist/domain/src/kinds/ZapGoal.js.map +1 -1
  364. package/dist/domain/src/kinds/ZapReceipt.d.ts +8 -11
  365. package/dist/domain/src/kinds/ZapReceipt.d.ts.map +1 -1
  366. package/dist/domain/src/kinds/ZapReceipt.js +17 -42
  367. package/dist/domain/src/kinds/ZapReceipt.js.map +1 -1
  368. package/dist/domain/src/kinds/ZapRequest.d.ts +15 -7
  369. package/dist/domain/src/kinds/ZapRequest.d.ts.map +1 -1
  370. package/dist/domain/src/kinds/ZapRequest.js +40 -15
  371. package/dist/domain/src/kinds/ZapRequest.js.map +1 -1
  372. package/dist/domain/src/other/Relay.d.ts +49 -0
  373. package/dist/domain/src/other/Relay.d.ts.map +1 -0
  374. package/dist/domain/src/other/Relay.js +50 -0
  375. package/dist/domain/src/other/Relay.js.map +1 -0
  376. package/dist/domain/src/other/Zapper.d.ts +40 -0
  377. package/dist/domain/src/other/Zapper.d.ts.map +1 -0
  378. package/dist/domain/src/other/Zapper.js +67 -0
  379. package/dist/domain/src/other/Zapper.js.map +1 -0
  380. package/dist/feeds/src/compiler.d.ts +2 -2
  381. package/dist/feeds/src/compiler.d.ts.map +1 -1
  382. package/dist/feeds/src/index.d.ts +1 -0
  383. package/dist/feeds/src/index.d.ts.map +1 -1
  384. package/dist/feeds/src/index.js +1 -0
  385. package/dist/feeds/src/index.js.map +1 -1
  386. package/dist/feeds/src/request.d.ts +4 -4
  387. package/dist/feeds/src/request.d.ts.map +1 -1
  388. package/dist/feeds/src/request.js +15 -15
  389. package/dist/feeds/src/request.js.map +1 -1
  390. package/dist/feeds/src/router.d.ts +10 -0
  391. package/dist/feeds/src/router.d.ts.map +1 -0
  392. package/dist/feeds/src/router.js +45 -0
  393. package/dist/feeds/src/router.js.map +1 -0
  394. package/dist/feeds/src/utils.js +2 -2
  395. package/dist/feeds/src/utils.js.map +1 -1
  396. package/dist/lib/src/Tools.d.ts +9 -0
  397. package/dist/lib/src/Tools.d.ts.map +1 -1
  398. package/dist/lib/src/Tools.js +26 -1
  399. package/dist/lib/src/Tools.js.map +1 -1
  400. package/dist/net/src/context.d.ts +1 -1
  401. package/dist/net/src/context.d.ts.map +1 -1
  402. package/dist/net/src/message.d.ts +1 -1
  403. package/dist/net/src/message.d.ts.map +1 -1
  404. package/dist/net/src/message.js +1 -1
  405. package/dist/net/src/message.js.map +1 -1
  406. package/dist/net/src/repository.d.ts +3 -0
  407. package/dist/net/src/repository.d.ts.map +1 -1
  408. package/dist/net/src/repository.js +49 -12
  409. package/dist/net/src/repository.js.map +1 -1
  410. package/dist/net/src/request.d.ts +2 -1
  411. package/dist/net/src/request.d.ts.map +1 -1
  412. package/dist/net/src/request.js.map +1 -1
  413. package/dist/signer/src/signers/nip46.d.ts +2 -2
  414. package/dist/signer/src/signers/nip46.d.ts.map +1 -1
  415. package/dist/signer/src/signers/nip46.js +10 -5
  416. package/dist/signer/src/signers/nip46.js.map +1 -1
  417. package/dist/store/src/repository.d.ts +17 -0
  418. package/dist/store/src/repository.d.ts.map +1 -1
  419. package/dist/store/src/repository.js +144 -0
  420. package/dist/store/src/repository.js.map +1 -1
  421. package/dist/tsconfig.build.tsbuildinfo +1 -1
  422. package/dist/util/src/Events.d.ts +0 -12
  423. package/dist/util/src/Events.d.ts.map +1 -1
  424. package/dist/util/src/Events.js +3 -25
  425. package/dist/util/src/Events.js.map +1 -1
  426. package/dist/util/src/Kinds.d.ts +3 -1
  427. package/dist/util/src/Kinds.d.ts.map +1 -1
  428. package/dist/util/src/Kinds.js +5 -2
  429. package/dist/util/src/Kinds.js.map +1 -1
  430. package/dist/util/src/Lightning.d.ts +6 -0
  431. package/dist/util/src/Lightning.d.ts.map +1 -0
  432. package/dist/util/src/Lightning.js +59 -0
  433. package/dist/util/src/Lightning.js.map +1 -0
  434. package/dist/util/src/Nip86.d.ts +74 -30
  435. package/dist/util/src/Nip86.d.ts.map +1 -1
  436. package/dist/util/src/Nip86.js +169 -30
  437. package/dist/util/src/Nip86.js.map +1 -1
  438. package/dist/util/src/Pow.js +2 -2
  439. package/dist/util/src/Pow.js.map +1 -1
  440. package/dist/util/src/Pubkey.d.ts.map +1 -1
  441. package/dist/util/src/Pubkey.js +2 -1
  442. package/dist/util/src/Pubkey.js.map +1 -1
  443. package/dist/util/src/Relay.d.ts +0 -29
  444. package/dist/util/src/Relay.d.ts.map +1 -1
  445. package/dist/util/src/Relay.js +0 -10
  446. package/dist/util/src/Relay.js.map +1 -1
  447. package/dist/util/src/RelaySelection.d.ts +101 -0
  448. package/dist/util/src/RelaySelection.d.ts.map +1 -0
  449. package/dist/util/src/RelaySelection.js +98 -0
  450. package/dist/util/src/RelaySelection.js.map +1 -0
  451. package/dist/util/src/Tags.d.ts +16 -35
  452. package/dist/util/src/Tags.d.ts.map +1 -1
  453. package/dist/util/src/Tags.js +23 -74
  454. package/dist/util/src/Tags.js.map +1 -1
  455. package/dist/util/src/Topics.d.ts +2 -0
  456. package/dist/util/src/Topics.d.ts.map +1 -0
  457. package/dist/util/src/Topics.js +2 -0
  458. package/dist/util/src/Topics.js.map +1 -0
  459. package/dist/util/src/index.d.ts +2 -1
  460. package/dist/util/src/index.d.ts.map +1 -1
  461. package/dist/util/src/index.js +2 -1
  462. package/dist/util/src/index.js.map +1 -1
  463. package/package.json +15 -17
  464. package/dist/app/src/plugins/blossom.d.ts +0 -12
  465. package/dist/app/src/plugins/blossom.d.ts.map +0 -1
  466. package/dist/app/src/plugins/blossom.js +0 -21
  467. package/dist/app/src/plugins/blossom.js.map +0 -1
  468. package/dist/app/src/plugins/follows.d.ts.map +0 -1
  469. package/dist/app/src/plugins/follows.js.map +0 -1
  470. package/dist/app/src/plugins/mutes.d.ts +0 -19
  471. package/dist/app/src/plugins/mutes.d.ts.map +0 -1
  472. package/dist/app/src/plugins/mutes.js +0 -39
  473. package/dist/app/src/plugins/mutes.js.map +0 -1
  474. package/dist/app/src/plugins/search.d.ts +0 -35
  475. package/dist/app/src/plugins/search.d.ts.map +0 -1
  476. package/dist/app/src/plugins/search.js +0 -88
  477. package/dist/app/src/plugins/search.js.map +0 -1
  478. package/dist/app/src/plugins/slashCommands.d.ts +0 -22
  479. package/dist/app/src/plugins/slashCommands.d.ts.map +0 -1
  480. package/dist/app/src/plugins/slashCommands.js +0 -70
  481. package/dist/app/src/plugins/slashCommands.js.map +0 -1
  482. package/dist/app/src/plugins/stores.d.ts +0 -22
  483. package/dist/app/src/plugins/stores.d.ts.map +0 -1
  484. package/dist/app/src/plugins/stores.js +0 -22
  485. package/dist/app/src/plugins/stores.js.map +0 -1
  486. package/dist/app/src/plugins/tags.d.ts +0 -20
  487. package/dist/app/src/plugins/tags.d.ts.map +0 -1
  488. package/dist/app/src/plugins/tags.js +0 -106
  489. package/dist/app/src/plugins/tags.js.map +0 -1
  490. package/dist/domain/src/EventBuilder.d.ts +0 -35
  491. package/dist/domain/src/EventBuilder.d.ts.map +0 -1
  492. package/dist/domain/src/EventBuilder.js +0 -111
  493. package/dist/domain/src/EventBuilder.js.map +0 -1
  494. package/dist/domain/src/EventReader.d.ts +0 -24
  495. package/dist/domain/src/EventReader.d.ts.map +0 -1
  496. package/dist/domain/src/EventReader.js +0 -57
  497. package/dist/domain/src/EventReader.js.map +0 -1
  498. package/dist/domain/src/ListBuilder.d.ts.map +0 -1
  499. package/dist/domain/src/ListBuilder.js.map +0 -1
  500. package/dist/domain/src/ListReader.d.ts +0 -12
  501. package/dist/domain/src/ListReader.d.ts.map +0 -1
  502. package/dist/domain/src/ListReader.js.map +0 -1
  503. package/dist/domain/src/kinds/SlashCommand.d.ts +0 -38
  504. package/dist/domain/src/kinds/SlashCommand.d.ts.map +0 -1
  505. package/dist/domain/src/kinds/SlashCommand.js +0 -91
  506. package/dist/domain/src/kinds/SlashCommand.js.map +0 -1
  507. package/dist/router/src/index.d.ts +0 -163
  508. package/dist/router/src/index.d.ts.map +0 -1
  509. package/dist/router/src/index.js +0 -214
  510. package/dist/router/src/index.js.map +0 -1
  511. package/dist/util/src/Zaps.d.ts +0 -86
  512. package/dist/util/src/Zaps.d.ts.map +0 -1
  513. package/dist/util/src/Zaps.js +0 -184
  514. package/dist/util/src/Zaps.js.map +0 -1
@@ -1,82 +1,105 @@
1
- import { first } from "@welshman/lib";
2
- import { COMMENT, Address, getTagValue } from "@welshman/util";
3
- import { EventReader } from "../EventReader.js";
4
- import { EventBuilder } from "../EventBuilder.js";
1
+ import { first, mapVals, nth } from "@welshman/lib";
2
+ import { COMMENT, Address, tagSpec, tagValue, outbox } from "@welshman/util";
3
+ import { EventReader } from "../core/EventReader.js";
4
+ import { EventWriter, TagParser } from "../core/EventWriter.js";
5
+ import { KindFactory } from "../core/Kind.js";
6
+ // NIP-22 comment reference tags: uppercase (A/E/P/K) point at the thread root,
7
+ // lowercase (a/e/p/k) at the immediate parent.
8
+ export const getCommentTags = (tags) => {
9
+ const roots = tags.filter(t => ["A", "E", "P", "K"].includes(t[0]));
10
+ const replies = tags.filter(t => ["a", "e", "p", "k"].includes(t[0]));
11
+ return { roots, replies };
12
+ };
13
+ export const getCommentTagValues = (tags) => mapVals(tags => tags.filter(t => ["a", "e"].includes(t[0].toLowerCase())).map(nth(1)), getCommentTags(tags));
5
14
  // NIP-22 kind-1111 comment (uppercase E/A/K/P tags = thread root, lowercase = immediate parent).
6
- export class Comment extends EventReader {
7
- kind = COMMENT;
15
+ export class CommentReader extends EventReader {
8
16
  root() {
9
17
  return {
10
- id: getTagValue("E", this.event.tags),
11
- address: getTagValue("A", this.event.tags),
12
- kind: getTagValue("K", this.event.tags),
13
- pubkey: getTagValue("P", this.event.tags),
18
+ id: tagValue(tagSpec("E"), this.event.tags),
19
+ address: tagValue(tagSpec("A"), this.event.tags),
20
+ kind: tagValue(tagSpec("K"), this.event.tags),
21
+ pubkey: tagValue(tagSpec("P"), this.event.tags),
14
22
  };
15
23
  }
16
24
  parent() {
17
25
  return {
18
- id: getTagValue("e", this.event.tags),
19
- address: getTagValue("a", this.event.tags),
20
- kind: getTagValue("k", this.event.tags),
21
- pubkey: getTagValue("p", this.event.tags),
26
+ id: tagValue(tagSpec("e"), this.event.tags),
27
+ address: tagValue(tagSpec("a"), this.event.tags),
28
+ kind: tagValue(tagSpec("k"), this.event.tags),
29
+ pubkey: tagValue(tagSpec("p"), this.event.tags),
22
30
  };
23
31
  }
24
- builder() {
25
- return new CommentBuilder(this);
26
- }
27
32
  }
28
- export class CommentBuilder extends EventBuilder {
29
- reader;
30
- kind = COMMENT;
33
+ export class CommentWriter extends EventWriter {
31
34
  rootTags = [];
32
35
  parentTags = [];
33
- constructor(reader) {
34
- super(reader);
35
- this.reader = reader;
36
- this.rootTags = this.consumeRefTags("E", "A", "K", "P");
37
- this.parentTags = this.consumeRefTags("e", "a", "k", "p");
36
+ constructor(kind, context, reader) {
37
+ super(kind, context, reader);
38
+ if (reader) {
39
+ const parser = new TagParser(this.extraTags);
40
+ this.rootTags = this.consumeRefTags(parser, "E", "A", "K", "P");
41
+ this.parentTags = this.consumeRefTags(parser, "e", "a", "k", "p");
42
+ this.extraTags = parser.tags;
43
+ }
38
44
  }
39
- consumeRefTags(...keys) {
45
+ consumeRefTags(parser, ...keys) {
40
46
  const tags = [];
41
47
  for (const key of keys) {
42
- const tag = first(this.consumeTags(key));
48
+ const tag = first(parser.consume(key));
43
49
  if (tag)
44
50
  tags.push(tag);
45
51
  }
46
52
  return tags;
47
53
  }
48
54
  setRoot(kind, id, pubkey, identifier) {
49
- this.rootTags = [
55
+ const tags = [
50
56
  ["K", String(kind)],
51
57
  ["E", id],
52
58
  ["P", pubkey],
53
59
  ];
54
60
  if (identifier) {
55
- this.rootTags.push(["A", new Address(kind, pubkey, identifier).toString()]);
61
+ tags.push(["A", new Address(kind, pubkey, identifier).toString()]);
56
62
  }
63
+ this.hint(outbox(pubkey)).then(url => {
64
+ for (const tag of tags.slice(1)) {
65
+ tag.push(url);
66
+ }
67
+ });
68
+ this.rootTags = tags;
57
69
  return this;
58
70
  }
59
71
  setParent(kind, id, pubkey, identifier) {
60
- this.parentTags = [
72
+ const tags = [
61
73
  ["k", String(kind)],
62
74
  ["e", id],
63
75
  ["p", pubkey],
64
76
  ];
65
77
  if (identifier) {
66
- this.parentTags.push(["a", new Address(kind, pubkey, identifier).toString()]);
78
+ tags.push(["a", new Address(kind, pubkey, identifier).toString()]);
67
79
  }
80
+ this.hint(outbox(pubkey)).then(url => {
81
+ for (const tag of tags.slice(1)) {
82
+ tag.push(url);
83
+ }
84
+ });
85
+ this.parentTags = tags;
68
86
  return this;
69
87
  }
70
88
  setRootFromEvent(event) {
71
- this.setRoot(event.kind, event.id, event.pubkey, getTagValue("d", event.tags));
89
+ this.setRoot(event.kind, event.id, event.pubkey, tagValue(tagSpec("d"), event.tags));
72
90
  return this;
73
91
  }
74
92
  setParentFromEvent(event) {
75
- this.setParent(event.kind, event.id, event.pubkey, getTagValue("d", event.tags));
93
+ this.setParent(event.kind, event.id, event.pubkey, tagValue(tagSpec("d"), event.tags));
76
94
  return this;
77
95
  }
78
- buildTags() {
96
+ renderDomainTags() {
79
97
  return [...this.rootTags, ...this.parentTags];
80
98
  }
81
99
  }
100
+ export const Comment = new KindFactory({
101
+ kind: COMMENT,
102
+ reader: CommentReader,
103
+ writer: CommentWriter,
104
+ });
82
105
  //# sourceMappingURL=Comment.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Comment.js","sourceRoot":"","sources":["../../../../../domain/src/kinds/Comment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,eAAe,CAAA;AACnC,OAAO,EAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAC,MAAM,gBAAgB,CAAA;AAE5D,OAAO,EAAC,WAAW,EAAC,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAA;AAS/C,iGAAiG;AACjG,MAAM,OAAO,OAAQ,SAAQ,WAAW;IAC7B,IAAI,GAAG,OAAO,CAAA;IAEvB,IAAI;QACF,OAAO;YACL,EAAE,EAAE,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YACrC,OAAO,EAAE,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAC1C,IAAI,EAAE,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YACvC,MAAM,EAAE,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;SAC1C,CAAA;IACH,CAAC;IAED,MAAM;QACJ,OAAO;YACL,EAAE,EAAE,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YACrC,OAAO,EAAE,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAC1C,IAAI,EAAE,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YACvC,MAAM,EAAE,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;SAC1C,CAAA;IACH,CAAC;IAED,OAAO;QACL,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,CAAA;IACjC,CAAC;CACF;AAED,MAAM,OAAO,cAAe,SAAQ,YAAqB;IAMlC;IALZ,IAAI,GAAG,OAAO,CAAA;IAEvB,QAAQ,GAAe,EAAE,CAAA;IACzB,UAAU,GAAe,EAAE,CAAA;IAE3B,YAAqB,MAAgB;QACnC,KAAK,CAAC,MAAM,CAAC,CAAA;QADM,WAAM,GAAN,MAAM,CAAU;QAGnC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;QACvD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;IAC3D,CAAC;IAEO,cAAc,CAAC,GAAG,IAAc;QACtC,MAAM,IAAI,GAAe,EAAE,CAAA;QAE3B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAA;YAExC,IAAI,GAAG;gBAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACzB,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,CAAC,IAAY,EAAE,EAAU,EAAE,MAAc,EAAE,UAAmB;QACnE,IAAI,CAAC,QAAQ,GAAG;YACd,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YACnB,CAAC,GAAG,EAAE,EAAE,CAAC;YACT,CAAC,GAAG,EAAE,MAAM,CAAC;SACd,CAAA;QAED,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;QAC7E,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAED,SAAS,CAAC,IAAY,EAAE,EAAU,EAAE,MAAc,EAAE,UAAmB;QACrE,IAAI,CAAC,UAAU,GAAG;YAChB,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YACnB,CAAC,GAAG,EAAE,EAAE,CAAC;YACT,CAAC,GAAG,EAAE,MAAM,CAAC;SACd,CAAA;QAED,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;QAC/E,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAED,gBAAgB,CAAC,KAAmB;QAClC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;QAE9E,OAAO,IAAI,CAAA;IACb,CAAC;IAED,kBAAkB,CAAC,KAAmB;QACpC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;QAEhF,OAAO,IAAI,CAAA;IACb,CAAC;IAES,SAAS;QACjB,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,CAAA;IAC/C,CAAC;CACF"}
1
+ {"version":3,"file":"Comment.js","sourceRoot":"","sources":["../../../../../domain/src/kinds/Comment.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { TrustedEvent } from "@welshman/util";
2
+ import { EventReader } from "../core/EventReader.js";
3
+ import { EventWriter } from "../core/EventWriter.js";
4
+ import { KindFactory } from "../core/Kind.js";
5
+ export declare class DeleteReader extends EventReader {
6
+ ids(): string[];
7
+ addresses(): string[];
8
+ kinds(): number[];
9
+ reason(): string;
10
+ }
11
+ export declare class DeleteWriter extends EventWriter<DeleteReader> {
12
+ protected renderRoutes(): Promise<import("@welshman/util").RelaySelection[]>;
13
+ addEvent(event: TrustedEvent, groupUrl?: string): this;
14
+ setReason(reason: string): this;
15
+ validate(): void;
16
+ }
17
+ export declare const Delete: KindFactory<DeleteReader, DeleteWriter>;
18
+ //# sourceMappingURL=Delete.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Delete.d.ts","sourceRoot":"","sources":["../../../../../domain/src/kinds/Delete.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAC,WAAW,EAAC,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAC,WAAW,EAAC,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAA;AAG3C,qBAAa,YAAa,SAAQ,WAAW;IAC3C,GAAG;IAIH,SAAS;IAIT,KAAK;IAIL,MAAM;CAGP;AAED,qBAAa,YAAa,SAAQ,WAAW,CAAC,YAAY,CAAC;cAGzC,YAAY;IAS5B,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE,MAAM;IAkC/C,SAAS,CAAC,MAAM,EAAE,MAAM;IAIxB,QAAQ;CAOT;AAED,eAAO,MAAM,MAAM,yCAIjB,CAAA"}
@@ -0,0 +1,70 @@
1
+ import { uniq } from "@welshman/lib";
2
+ import { DELETE, addressTags, hexTags, kindTags, tagSpec, tagValue, tagValues, getAddress, isReplaceable, seen, outbox, } from "@welshman/util";
3
+ import { EventReader } from "../core/EventReader.js";
4
+ import { EventWriter } from "../core/EventWriter.js";
5
+ import { KindFactory } from "../core/Kind.js";
6
+ // NIP-09 kind-5 delete request.
7
+ export class DeleteReader extends EventReader {
8
+ ids() {
9
+ return uniq(tagValues(hexTags("e"), this.tags()));
10
+ }
11
+ addresses() {
12
+ return uniq(tagValues(addressTags("a"), this.tags()));
13
+ }
14
+ kinds() {
15
+ return uniq(tagValues(kindTags("k"), this.tags()));
16
+ }
17
+ reason() {
18
+ return this.content();
19
+ }
20
+ }
21
+ export class DeleteWriter extends EventWriter {
22
+ // The default (author outbox + mentions) plus every relay each deleted event was
23
+ // found on, so the delete reaches wherever those events live.
24
+ async renderRoutes() {
25
+ const tags = await this.renderTags();
26
+ return [
27
+ ...(await super.renderRoutes()),
28
+ ...uniq(tagValues(hexTags("e"), tags)).map(id => seen({ id })),
29
+ ];
30
+ }
31
+ addEvent(event, groupUrl) {
32
+ const eTag = ["e", event.id, ""];
33
+ this.addTags(eTag, ["k", String(event.kind)]);
34
+ this.hint(outbox(event.pubkey)).then(url => {
35
+ eTag[2] = url;
36
+ });
37
+ if (isReplaceable(event)) {
38
+ const aTag = ["a", getAddress(event), ""];
39
+ this.addTags(aTag);
40
+ this.hint(outbox(event.pubkey)).then(url => {
41
+ aTag[2] = url;
42
+ });
43
+ }
44
+ // If the deleted event was a NIP-29 group event, the delete must carry the
45
+ // same "h" tag and publish to the relay the event lives on (the hint).
46
+ const group = tagValue(tagSpec("h"), event.tags);
47
+ if (group) {
48
+ if (!groupUrl) {
49
+ throw new Error("Deletions of group events must be published to a group url");
50
+ }
51
+ this.setGroup(groupUrl, group);
52
+ }
53
+ return this;
54
+ }
55
+ setReason(reason) {
56
+ return this.setContent(reason);
57
+ }
58
+ validate() {
59
+ super.validate();
60
+ if (!this.extraTags.some(t => ["e", "a"].includes(t[0]))) {
61
+ throw new Error("A delete must reference at least one event via an e or a tag");
62
+ }
63
+ }
64
+ }
65
+ export const Delete = new KindFactory({
66
+ kind: DELETE,
67
+ reader: DeleteReader,
68
+ writer: DeleteWriter,
69
+ });
70
+ //# sourceMappingURL=Delete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Delete.js","sourceRoot":"","sources":["../../../../../domain/src/kinds/Delete.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,12 @@
1
- import { EventReader } from "../EventReader.js";
2
- import { EventBuilder } from "../EventBuilder.js";
3
- export declare class EmojiList extends EventReader {
4
- readonly kind = 10030;
5
- emojis(): string[][];
1
+ import { EventReader } from "../core/EventReader.js";
2
+ import { EventWriter } from "../core/EventWriter.js";
3
+ import { KindFactory } from "../core/Kind.js";
4
+ export declare class EmojiListReader extends EventReader {
6
5
  emojiSets(): string[];
7
- builder(): EmojiListBuilder;
8
6
  }
9
- export declare class EmojiListBuilder extends EventBuilder<EmojiList> {
10
- readonly kind = 10030;
11
- addEmoji(shortcode: string, url: string): this;
12
- removeEmoji(value: string): this;
7
+ export declare class EmojiListWriter extends EventWriter<EmojiListReader> {
13
8
  addEmojiSet(address: string): this;
14
9
  removeEmojiSet(value: string): this;
15
10
  }
11
+ export declare const EmojiList: KindFactory<EmojiListReader, EmojiListWriter>;
16
12
  //# sourceMappingURL=EmojiList.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EmojiList.d.ts","sourceRoot":"","sources":["../../../../../domain/src/kinds/EmojiList.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,WAAW,EAAC,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAA;AAG/C,qBAAa,SAAU,SAAQ,WAAW;IACxC,QAAQ,CAAC,IAAI,SAAS;IAEtB,MAAM;IAIN,SAAS;IAIT,OAAO;CAGR;AAED,qBAAa,gBAAiB,SAAQ,YAAY,CAAC,SAAS,CAAC;IAC3D,QAAQ,CAAC,IAAI,SAAS;IAEtB,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;IAIvC,WAAW,CAAC,KAAK,EAAE,MAAM;IAIzB,WAAW,CAAC,OAAO,EAAE,MAAM;IAI3B,cAAc,CAAC,KAAK,EAAE,MAAM;CAG7B"}
1
+ {"version":3,"file":"EmojiList.d.ts","sourceRoot":"","sources":["../../../../../domain/src/kinds/EmojiList.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,WAAW,EAAC,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAC,WAAW,EAAC,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAA;AAG3C,qBAAa,eAAgB,SAAQ,WAAW;IAC9C,SAAS;CAGV;AAED,qBAAa,eAAgB,SAAQ,WAAW,CAAC,eAAe,CAAC;IAC/D,WAAW,CAAC,OAAO,EAAE,MAAM;IAI3B,cAAc,CAAC,KAAK,EAAE,MAAM;CAG7B;AAED,eAAO,MAAM,SAAS,+CAIpB,CAAA"}
@@ -1,28 +1,15 @@
1
1
  import { uniq, spec } from "@welshman/lib";
2
- import { EMOJIS, getAddressTagValues } from "@welshman/util";
3
- import { EventReader } from "../EventReader.js";
4
- import { EventBuilder } from "../EventBuilder.js";
2
+ import { EMOJIS, addressTags, tagValues } from "@welshman/util";
3
+ import { EventReader } from "../core/EventReader.js";
4
+ import { EventWriter } from "../core/EventWriter.js";
5
+ import { KindFactory } from "../core/Kind.js";
5
6
  // NIP-51 kind-10030 user emoji list.
6
- export class EmojiList extends EventReader {
7
- kind = EMOJIS;
8
- emojis() {
9
- return this.tags().filter(spec(["emoji"]));
10
- }
7
+ export class EmojiListReader extends EventReader {
11
8
  emojiSets() {
12
- return uniq(getAddressTagValues(this.tags()));
13
- }
14
- builder() {
15
- return new EmojiListBuilder(this);
9
+ return uniq(tagValues(addressTags("a"), this.tags()));
16
10
  }
17
11
  }
18
- export class EmojiListBuilder extends EventBuilder {
19
- kind = EMOJIS;
20
- addEmoji(shortcode, url) {
21
- return this.addTags(["emoji", shortcode, url]);
22
- }
23
- removeEmoji(value) {
24
- return this.dropTags(spec(["emoji", value]));
25
- }
12
+ export class EmojiListWriter extends EventWriter {
26
13
  addEmojiSet(address) {
27
14
  return this.addTags(["a", address]);
28
15
  }
@@ -30,4 +17,9 @@ export class EmojiListBuilder extends EventBuilder {
30
17
  return this.dropTags(spec(["a", value]));
31
18
  }
32
19
  }
20
+ export const EmojiList = new KindFactory({
21
+ kind: EMOJIS,
22
+ reader: EmojiListReader,
23
+ writer: EmojiListWriter,
24
+ });
33
25
  //# sourceMappingURL=EmojiList.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EmojiList.js","sourceRoot":"","sources":["../../../../../domain/src/kinds/EmojiList.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAE,IAAI,EAAC,MAAM,eAAe,CAAA;AACxC,OAAO,EAAC,MAAM,EAAE,mBAAmB,EAAC,MAAM,gBAAgB,CAAA;AAC1D,OAAO,EAAC,WAAW,EAAC,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAA;AAE/C,qCAAqC;AACrC,MAAM,OAAO,SAAU,SAAQ,WAAW;IAC/B,IAAI,GAAG,MAAM,CAAA;IAEtB,MAAM;QACJ,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IAC5C,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IAC/C,CAAC;IAED,OAAO;QACL,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAA;IACnC,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,YAAuB;IAClD,IAAI,GAAG,MAAM,CAAA;IAEtB,QAAQ,CAAC,SAAiB,EAAE,GAAW;QACrC,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,CAAA;IAChD,CAAC;IAED,WAAW,CAAC,KAAa;QACvB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAA;IAC9C,CAAC;IAED,WAAW,CAAC,OAAe;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAA;IACrC,CAAC;IAED,cAAc,CAAC,KAAa;QAC1B,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAA;IAC1C,CAAC;CACF"}
1
+ {"version":3,"file":"EmojiList.js","sourceRoot":"","sources":["../../../../../domain/src/kinds/EmojiList.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAE,IAAI,EAAC,MAAM,eAAe,CAAA;AACxC,OAAO,EAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAC,MAAM,gBAAgB,CAAA;AAC7D,OAAO,EAAC,WAAW,EAAC,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAC,WAAW,EAAC,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAA;AAE3C,qCAAqC;AACrC,MAAM,OAAO,eAAgB,SAAQ,WAAW;IAC9C,SAAS;QACP,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IACvD,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,WAA4B;IAC/D,WAAW,CAAC,OAAe;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAA;IACrC,CAAC;IAED,cAAc,CAAC,KAAa;QAC1B,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAA;IAC1C,CAAC;CACF;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,WAAW,CAAC;IACvC,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,eAAe;IACvB,MAAM,EAAE,eAAe;CACxB,CAAC,CAAA"}
@@ -1,17 +1,16 @@
1
1
  import type { Feed as FeedDefinition } from "@welshman/feeds";
2
- import { EventReader } from "../EventReader.js";
3
- import { EventBuilder } from "../EventBuilder.js";
4
- export declare class Feed extends EventReader {
5
- readonly kind = 31890;
2
+ import { EventReader } from "../core/EventReader.js";
3
+ import { EventWriter } from "../core/EventWriter.js";
4
+ import { KindFactory } from "../core/Kind.js";
5
+ export declare class FeedReader extends EventReader {
6
6
  title(): string;
7
7
  description(): string;
8
8
  definition(): FeedDefinition | undefined;
9
- builder(): FeedBuilder;
10
9
  }
11
- export declare class FeedBuilder extends EventBuilder<Feed> {
12
- readonly kind = 31890;
10
+ export declare class FeedWriter extends EventWriter<FeedReader> {
13
11
  setTitle(title: string): this;
14
12
  setDescription(description: string): this;
15
13
  setDefinition(feed: FeedDefinition): this;
16
14
  }
15
+ export declare const Feed: KindFactory<FeedReader, FeedWriter>;
17
16
  //# sourceMappingURL=Feed.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Feed.d.ts","sourceRoot":"","sources":["../../../../../domain/src/kinds/Feed.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,IAAI,IAAI,cAAc,EAAC,MAAM,iBAAiB,CAAA;AAE3D,OAAO,EAAC,WAAW,EAAC,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAA;AAG/C,qBAAa,IAAK,SAAQ,WAAW;IACnC,QAAQ,CAAC,IAAI,SAAO;IAEpB,KAAK;IAIL,WAAW;IAIX,UAAU,IAAI,cAAc,GAAG,SAAS;IAIxC,OAAO;CAGR;AAED,qBAAa,WAAY,SAAQ,YAAY,CAAC,IAAI,CAAC;IACjD,QAAQ,CAAC,IAAI,SAAO;IAEpB,QAAQ,CAAC,KAAK,EAAE,MAAM;IAItB,cAAc,CAAC,WAAW,EAAE,MAAM;IAIlC,aAAa,CAAC,IAAI,EAAE,cAAc;CAGnC"}
1
+ {"version":3,"file":"Feed.d.ts","sourceRoot":"","sources":["../../../../../domain/src/kinds/Feed.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,IAAI,IAAI,cAAc,EAAC,MAAM,iBAAiB,CAAA;AAE3D,OAAO,EAAC,WAAW,EAAC,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAC,WAAW,EAAC,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAA;AAG3C,qBAAa,UAAW,SAAQ,WAAW;IACzC,KAAK;IAIL,WAAW;IAIX,UAAU,IAAI,cAAc,GAAG,SAAS;CAGzC;AAED,qBAAa,UAAW,SAAQ,WAAW,CAAC,UAAU,CAAC;IACrD,QAAQ,CAAC,KAAK,EAAE,MAAM;IAItB,cAAc,CAAC,WAAW,EAAE,MAAM;IAIlC,aAAa,CAAC,IAAI,EAAE,cAAc;CAGnC;AAED,eAAO,MAAM,IAAI,qCAIf,CAAA"}
@@ -1,25 +1,21 @@
1
1
  import { parseJson, spec } from "@welshman/lib";
2
- import { FEED, getTagValue } from "@welshman/util";
3
- import { EventReader } from "../EventReader.js";
4
- import { EventBuilder } from "../EventBuilder.js";
2
+ import { FEED, tagSpec, tagValue } from "@welshman/util";
3
+ import { EventReader } from "../core/EventReader.js";
4
+ import { EventWriter } from "../core/EventWriter.js";
5
+ import { KindFactory } from "../core/Kind.js";
5
6
  // NIP-51 kind-31890 saved-feed definition.
6
- export class Feed extends EventReader {
7
- kind = FEED;
7
+ export class FeedReader extends EventReader {
8
8
  title() {
9
- return getTagValue("title", this.event.tags) || "";
9
+ return tagValue(tagSpec("title"), this.event.tags) || "";
10
10
  }
11
11
  description() {
12
- return getTagValue("description", this.event.tags) || "";
12
+ return tagValue(tagSpec("description"), this.event.tags) || "";
13
13
  }
14
14
  definition() {
15
- return parseJson(getTagValue("feed", this.event.tags));
16
- }
17
- builder() {
18
- return new FeedBuilder(this);
15
+ return parseJson(tagValue(tagSpec("feed"), this.event.tags));
19
16
  }
20
17
  }
21
- export class FeedBuilder extends EventBuilder {
22
- kind = FEED;
18
+ export class FeedWriter extends EventWriter {
23
19
  setTitle(title) {
24
20
  return this.dropTags(spec(["title"])).addTags(["title", title]);
25
21
  }
@@ -30,4 +26,9 @@ export class FeedBuilder extends EventBuilder {
30
26
  return this.dropTags(spec(["feed"])).addTags(["feed", JSON.stringify(feed)]);
31
27
  }
32
28
  }
29
+ export const Feed = new KindFactory({
30
+ kind: FEED,
31
+ reader: FeedReader,
32
+ writer: FeedWriter,
33
+ });
33
34
  //# sourceMappingURL=Feed.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Feed.js","sourceRoot":"","sources":["../../../../../domain/src/kinds/Feed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,IAAI,EAAC,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAC,IAAI,EAAE,WAAW,EAAC,MAAM,gBAAgB,CAAA;AAGhD,OAAO,EAAC,WAAW,EAAC,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAA;AAE/C,2CAA2C;AAC3C,MAAM,OAAO,IAAK,SAAQ,WAAW;IAC1B,IAAI,GAAG,IAAI,CAAA;IAEpB,KAAK;QACH,OAAO,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA;IACpD,CAAC;IAED,WAAW;QACT,OAAO,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA;IAC1D,CAAC;IAED,UAAU;QACR,OAAO,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;IACxD,CAAC;IAED,OAAO;QACL,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,CAAA;IAC9B,CAAC;CACF;AAED,MAAM,OAAO,WAAY,SAAQ,YAAkB;IACxC,IAAI,GAAG,IAAI,CAAA;IAEpB,QAAQ,CAAC,KAAa;QACpB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAA;IACjE,CAAC;IAED,cAAc,CAAC,WAAmB;QAChC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,CAAA;IACnF,CAAC;IAED,aAAa,CAAC,IAAoB;QAChC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC9E,CAAC;CACF"}
1
+ {"version":3,"file":"Feed.js","sourceRoot":"","sources":["../../../../../domain/src/kinds/Feed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,IAAI,EAAC,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAC,MAAM,gBAAgB,CAAA;AAGtD,OAAO,EAAC,WAAW,EAAC,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAC,WAAW,EAAC,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAA;AAE3C,2CAA2C;AAC3C,MAAM,OAAO,UAAW,SAAQ,WAAW;IACzC,KAAK;QACH,OAAO,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA;IAC1D,CAAC;IAED,WAAW;QACT,OAAO,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA;IAChE,CAAC;IAED,UAAU;QACR,OAAO,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;IAC9D,CAAC;CACF;AAED,MAAM,OAAO,UAAW,SAAQ,WAAuB;IACrD,QAAQ,CAAC,KAAa;QACpB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAA;IACjE,CAAC;IAED,cAAc,CAAC,WAAmB;QAChC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,CAAA;IACnF,CAAC;IAED,aAAa,CAAC,IAAoB;QAChC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC9E,CAAC;CACF;AAED,MAAM,CAAC,MAAM,IAAI,GAAG,IAAI,WAAW,CAAC;IAClC,IAAI,EAAE,IAAI;IACV,MAAM,EAAE,UAAU;IAClB,MAAM,EAAE,UAAU;CACnB,CAAC,CAAA"}
@@ -1,15 +1,14 @@
1
- import { ListReader } from "../ListReader.js";
2
- import { ListBuilder } from "../ListBuilder.js";
3
- export declare class FeedList extends ListReader {
4
- readonly kind = 10014;
1
+ import { ListReader } from "../core/ListReader.js";
2
+ import { ListWriter } from "../core/ListWriter.js";
3
+ import { KindFactory } from "../core/Kind.js";
4
+ export declare class FeedListReader extends ListReader {
5
5
  addresses(): string[];
6
6
  includes(address: string): boolean;
7
- builder(): FeedListBuilder;
8
7
  }
9
- export declare class FeedListBuilder extends ListBuilder<FeedList> {
10
- readonly kind = 10014;
8
+ export declare class FeedListWriter extends ListWriter<FeedListReader> {
11
9
  addFeed(address: string, relayHint?: string): this;
12
10
  addFeedPrivately(address: string, relayHint?: string): this;
13
11
  removeFeed(address: string): this;
14
12
  }
13
+ export declare const FeedList: KindFactory<FeedListReader, FeedListWriter>;
15
14
  //# sourceMappingURL=FeedList.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FeedList.d.ts","sourceRoot":"","sources":["../../../../../domain/src/kinds/FeedList.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAC,WAAW,EAAC,MAAM,mBAAmB,CAAA;AAG7C,qBAAa,QAAS,SAAQ,UAAU;IACtC,QAAQ,CAAC,IAAI,SAAQ;IAErB,SAAS;IAIT,QAAQ,CAAC,OAAO,EAAE,MAAM;IAIxB,OAAO;CAGR;AAED,qBAAa,eAAgB,SAAQ,WAAW,CAAC,QAAQ,CAAC;IACxD,QAAQ,CAAC,IAAI,SAAQ;IAErB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;IAI3C,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;IAIpD,UAAU,CAAC,OAAO,EAAE,MAAM;CAG3B"}
1
+ {"version":3,"file":"FeedList.d.ts","sourceRoot":"","sources":["../../../../../domain/src/kinds/FeedList.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAA;AAG3C,qBAAa,cAAe,SAAQ,UAAU;IAC5C,SAAS;IAIT,QAAQ,CAAC,OAAO,EAAE,MAAM;CAGzB;AAED,qBAAa,cAAe,SAAQ,UAAU,CAAC,cAAc,CAAC;IAC5D,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;IAI3C,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;IAIpD,UAAU,CAAC,OAAO,EAAE,MAAM;CAG3B;AAED,eAAO,MAAM,QAAQ,6CAInB,CAAA"}
@@ -1,22 +1,18 @@
1
1
  import { uniq, spec } from "@welshman/lib";
2
- import { FEEDS, getAddressTagValues } from "@welshman/util";
3
- import { ListReader } from "../ListReader.js";
4
- import { ListBuilder } from "../ListBuilder.js";
2
+ import { FEEDS, addressTags, tagValues } from "@welshman/util";
3
+ import { ListReader } from "../core/ListReader.js";
4
+ import { ListWriter } from "../core/ListWriter.js";
5
+ import { KindFactory } from "../core/Kind.js";
5
6
  // NIP-51 kind-10014 saved feeds list.
6
- export class FeedList extends ListReader {
7
- kind = FEEDS;
7
+ export class FeedListReader extends ListReader {
8
8
  addresses() {
9
- return uniq(getAddressTagValues(this.tags()));
9
+ return uniq(tagValues(addressTags("a"), this.tags()));
10
10
  }
11
11
  includes(address) {
12
12
  return this.addresses().includes(address);
13
13
  }
14
- builder() {
15
- return new FeedListBuilder(this);
16
- }
17
14
  }
18
- export class FeedListBuilder extends ListBuilder {
19
- kind = FEEDS;
15
+ export class FeedListWriter extends ListWriter {
20
16
  addFeed(address, relayHint) {
21
17
  return this.addPublic(["a", address, relayHint || ""]);
22
18
  }
@@ -27,4 +23,9 @@ export class FeedListBuilder extends ListBuilder {
27
23
  return this.dropTags(spec(["a", address]));
28
24
  }
29
25
  }
26
+ export const FeedList = new KindFactory({
27
+ kind: FEEDS,
28
+ reader: FeedListReader,
29
+ writer: FeedListWriter,
30
+ });
30
31
  //# sourceMappingURL=FeedList.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FeedList.js","sourceRoot":"","sources":["../../../../../domain/src/kinds/FeedList.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAE,IAAI,EAAC,MAAM,eAAe,CAAA;AACxC,OAAO,EAAC,KAAK,EAAE,mBAAmB,EAAC,MAAM,gBAAgB,CAAA;AACzD,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAC,WAAW,EAAC,MAAM,mBAAmB,CAAA;AAE7C,sCAAsC;AACtC,MAAM,OAAO,QAAS,SAAQ,UAAU;IAC7B,IAAI,GAAG,KAAK,CAAA;IAErB,SAAS;QACP,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IAC/C,CAAC;IAED,QAAQ,CAAC,OAAe;QACtB,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;IAC3C,CAAC;IAED,OAAO;QACL,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,CAAA;IAClC,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,WAAqB;IAC/C,IAAI,GAAG,KAAK,CAAA;IAErB,OAAO,CAAC,OAAe,EAAE,SAAkB;QACzC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,CAAA;IACxD,CAAC;IAED,gBAAgB,CAAC,OAAe,EAAE,SAAkB;QAClD,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,CAAA;IACzD,CAAC;IAED,UAAU,CAAC,OAAe;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;IAC5C,CAAC;CACF"}
1
+ {"version":3,"file":"FeedList.js","sourceRoot":"","sources":["../../../../../domain/src/kinds/FeedList.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAE,IAAI,EAAC,MAAM,eAAe,CAAA;AACxC,OAAO,EAAC,KAAK,EAAE,WAAW,EAAE,SAAS,EAAC,MAAM,gBAAgB,CAAA;AAC5D,OAAO,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAA;AAE3C,sCAAsC;AACtC,MAAM,OAAO,cAAe,SAAQ,UAAU;IAC5C,SAAS;QACP,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IACvD,CAAC;IAED,QAAQ,CAAC,OAAe;QACtB,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;IAC3C,CAAC;CACF;AAED,MAAM,OAAO,cAAe,SAAQ,UAA0B;IAC5D,OAAO,CAAC,OAAe,EAAE,SAAkB;QACzC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,CAAA;IACxD,CAAC;IAED,gBAAgB,CAAC,OAAe,EAAE,SAAkB;QAClD,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,CAAA;IACzD,CAAC;IAED,UAAU,CAAC,OAAe;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;IAC5C,CAAC;CACF;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC;IACtC,IAAI,EAAE,KAAK;IACX,MAAM,EAAE,cAAc;IACtB,MAAM,EAAE,cAAc;CACvB,CAAC,CAAA"}
@@ -1,14 +1,14 @@
1
- import { EventReader } from "../EventReader.js";
2
- import { EventBuilder } from "../EventBuilder.js";
3
- export declare class FollowList extends EventReader {
4
- readonly kind = 3;
1
+ import { EventReader } from "../core/EventReader.js";
2
+ import { EventWriter } from "../core/EventWriter.js";
3
+ import { KindFactory } from "../core/Kind.js";
4
+ export declare class FollowListReader extends EventReader {
5
5
  pubkeys(): string[];
6
6
  includes(pubkey: string): boolean;
7
- builder(): FollowListBuilder;
8
7
  }
9
- export declare class FollowListBuilder extends EventBuilder<FollowList> {
10
- readonly kind = 3;
8
+ export declare class FollowListWriter extends EventWriter<FollowListReader> {
9
+ protected renderRoutes(): Promise<import("@welshman/util").RelaySelection[]>;
11
10
  follow(pubkey: string, relayHint?: string, petname?: string): this;
12
11
  unfollow(pubkey: string): this;
13
12
  }
13
+ export declare const FollowList: KindFactory<FollowListReader, FollowListWriter>;
14
14
  //# sourceMappingURL=FollowList.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FollowList.d.ts","sourceRoot":"","sources":["../../../../../domain/src/kinds/FollowList.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,WAAW,EAAC,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAA;AAG/C,qBAAa,UAAW,SAAQ,WAAW;IACzC,QAAQ,CAAC,IAAI,KAAU;IAEvB,OAAO;IAIP,QAAQ,CAAC,MAAM,EAAE,MAAM;IAIvB,OAAO;CAGR;AAED,qBAAa,iBAAkB,SAAQ,YAAY,CAAC,UAAU,CAAC;IAC7D,QAAQ,CAAC,IAAI,KAAU;IAEvB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;IAI3D,QAAQ,CAAC,MAAM,EAAE,MAAM;CAGxB"}
1
+ {"version":3,"file":"FollowList.d.ts","sourceRoot":"","sources":["../../../../../domain/src/kinds/FollowList.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,WAAW,EAAC,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAC,WAAW,EAAC,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAA;AAG3C,qBAAa,gBAAiB,SAAQ,WAAW;IAC/C,OAAO;IAIP,QAAQ,CAAC,MAAM,EAAE,MAAM;CAGxB;AAED,qBAAa,gBAAiB,SAAQ,WAAW,CAAC,gBAAgB,CAAC;cACjD,YAAY;IAI5B,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;IAI3D,QAAQ,CAAC,MAAM,EAAE,MAAM;CAGxB;AAED,eAAO,MAAM,UAAU,iDAIrB,CAAA"}
@@ -1,22 +1,21 @@
1
1
  import { uniq, spec, removeUndefined } from "@welshman/lib";
2
- import { FOLLOWS, getPubkeyTagValues } from "@welshman/util";
3
- import { EventReader } from "../EventReader.js";
4
- import { EventBuilder } from "../EventBuilder.js";
2
+ import { FOLLOWS, hexTags, tagValues, userOutbox } from "@welshman/util";
3
+ import { EventReader } from "../core/EventReader.js";
4
+ import { EventWriter } from "../core/EventWriter.js";
5
+ import { KindFactory } from "../core/Kind.js";
5
6
  // NIP-02 kind-3 follow list.
6
- export class FollowList extends EventReader {
7
- kind = FOLLOWS;
7
+ export class FollowListReader extends EventReader {
8
8
  pubkeys() {
9
- return uniq(getPubkeyTagValues(this.tags()));
9
+ return uniq(tagValues(hexTags("p"), this.tags()));
10
10
  }
11
11
  includes(pubkey) {
12
12
  return this.pubkeys().includes(pubkey);
13
13
  }
14
- builder() {
15
- return new FollowListBuilder(this);
16
- }
17
14
  }
18
- export class FollowListBuilder extends EventBuilder {
19
- kind = FOLLOWS;
15
+ export class FollowListWriter extends EventWriter {
16
+ async renderRoutes() {
17
+ return [userOutbox()];
18
+ }
20
19
  follow(pubkey, relayHint, petname) {
21
20
  return this.addTags(removeUndefined(["p", pubkey, relayHint, petname]));
22
21
  }
@@ -24,4 +23,9 @@ export class FollowListBuilder extends EventBuilder {
24
23
  return this.dropTags(spec(["p", pubkey]));
25
24
  }
26
25
  }
26
+ export const FollowList = new KindFactory({
27
+ kind: FOLLOWS,
28
+ reader: FollowListReader,
29
+ writer: FollowListWriter,
30
+ });
27
31
  //# sourceMappingURL=FollowList.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FollowList.js","sourceRoot":"","sources":["../../../../../domain/src/kinds/FollowList.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAE,IAAI,EAAE,eAAe,EAAC,MAAM,eAAe,CAAA;AACzD,OAAO,EAAC,OAAO,EAAE,kBAAkB,EAAC,MAAM,gBAAgB,CAAA;AAC1D,OAAO,EAAC,WAAW,EAAC,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAA;AAE/C,6BAA6B;AAC7B,MAAM,OAAO,UAAW,SAAQ,WAAW;IAChC,IAAI,GAAG,OAAO,CAAA;IAEvB,OAAO;QACL,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IAC9C,CAAC;IAED,QAAQ,CAAC,MAAc;QACrB,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IACxC,CAAC;IAED,OAAO;QACL,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAA;IACpC,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,YAAwB;IACpD,IAAI,GAAG,OAAO,CAAA;IAEvB,MAAM,CAAC,MAAc,EAAE,SAAkB,EAAE,OAAgB;QACzD,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;IACzE,CAAC;IAED,QAAQ,CAAC,MAAc;QACrB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;IAC3C,CAAC;CACF"}
1
+ {"version":3,"file":"FollowList.js","sourceRoot":"","sources":["../../../../../domain/src/kinds/FollowList.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAE,IAAI,EAAE,eAAe,EAAC,MAAM,eAAe,CAAA;AACzD,OAAO,EAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAC,MAAM,gBAAgB,CAAA;AACtE,OAAO,EAAC,WAAW,EAAC,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAC,WAAW,EAAC,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAA;AAE3C,6BAA6B;AAC7B,MAAM,OAAO,gBAAiB,SAAQ,WAAW;IAC/C,OAAO;QACL,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IACnD,CAAC;IAED,QAAQ,CAAC,MAAc;QACrB,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IACxC,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,WAA6B;IACvD,KAAK,CAAC,YAAY;QAC1B,OAAO,CAAC,UAAU,EAAE,CAAC,CAAA;IACvB,CAAC;IAED,MAAM,CAAC,MAAc,EAAE,SAAkB,EAAE,OAAgB;QACzD,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;IACzE,CAAC;IAED,QAAQ,CAAC,MAAc;QACrB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;IAC3C,CAAC;CACF;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,WAAW,CAAC;IACxC,IAAI,EAAE,OAAO;IACb,MAAM,EAAE,gBAAgB;IACxB,MAAM,EAAE,gBAAgB;CACzB,CAAC,CAAA"}
@@ -1,13 +1,12 @@
1
- import { EventReader } from "../EventReader.js";
2
- import { EventBuilder } from "../EventBuilder.js";
3
- export declare class GroupList extends EventReader {
4
- readonly kind = 10004;
1
+ import { EventReader } from "../core/EventReader.js";
2
+ import { EventWriter } from "../core/EventWriter.js";
3
+ import { KindFactory } from "../core/Kind.js";
4
+ export declare class GroupListReader extends EventReader {
5
5
  addresses(): string[];
6
- builder(): GroupListBuilder;
7
6
  }
8
- export declare class GroupListBuilder extends EventBuilder<GroupList> {
9
- readonly kind = 10004;
7
+ export declare class GroupListWriter extends EventWriter<GroupListReader> {
10
8
  addGroup(address: string, relayHint?: string): this;
11
9
  removeGroup(address: string): this;
12
10
  }
11
+ export declare const GroupList: KindFactory<GroupListReader, GroupListWriter>;
13
12
  //# sourceMappingURL=GroupList.d.ts.map