@welshman/app 0.9.9 → 0.10.0

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 (295) hide show
  1. package/dist/app/src/plugins/domain.d.ts +5 -4
  2. package/dist/app/src/plugins/domain.d.ts.map +1 -1
  3. package/dist/app/src/plugins/domain.js +3 -0
  4. package/dist/app/src/plugins/domain.js.map +1 -1
  5. package/dist/app/src/plugins/logger.d.ts +6 -5
  6. package/dist/app/src/plugins/logger.d.ts.map +1 -1
  7. package/dist/app/src/plugins/logger.js.map +1 -1
  8. package/dist/app/src/plugins/router.d.ts.map +1 -1
  9. package/dist/app/src/plugins/router.js +5 -4
  10. package/dist/app/src/plugins/router.js.map +1 -1
  11. package/dist/domain/src/behaviors/Client.d.ts +19 -0
  12. package/dist/domain/src/behaviors/Client.d.ts.map +1 -0
  13. package/dist/domain/src/behaviors/Client.js +18 -0
  14. package/dist/domain/src/behaviors/Client.js.map +1 -0
  15. package/dist/domain/src/behaviors/ContentWarning.d.ts +15 -0
  16. package/dist/domain/src/behaviors/ContentWarning.d.ts.map +1 -0
  17. package/dist/domain/src/behaviors/ContentWarning.js +13 -0
  18. package/dist/domain/src/behaviors/ContentWarning.js.map +1 -0
  19. package/dist/domain/src/behaviors/Expiration.d.ts +9 -0
  20. package/dist/domain/src/behaviors/Expiration.d.ts.map +1 -0
  21. package/dist/domain/src/behaviors/Expiration.js +10 -0
  22. package/dist/domain/src/behaviors/Expiration.js.map +1 -0
  23. package/dist/domain/src/behaviors/Protected.d.ts +8 -0
  24. package/dist/domain/src/behaviors/Protected.d.ts.map +1 -0
  25. package/dist/domain/src/behaviors/Protected.js +8 -0
  26. package/dist/domain/src/behaviors/Protected.js.map +1 -0
  27. package/dist/domain/src/core/EventQuery.d.ts +102 -0
  28. package/dist/domain/src/core/EventQuery.d.ts.map +1 -0
  29. package/dist/domain/src/core/EventQuery.js +227 -0
  30. package/dist/domain/src/core/EventQuery.js.map +1 -0
  31. package/dist/domain/src/core/EventReader.d.ts +4 -0
  32. package/dist/domain/src/core/EventReader.d.ts.map +1 -1
  33. package/dist/domain/src/core/EventReader.js +15 -3
  34. package/dist/domain/src/core/EventReader.js.map +1 -1
  35. package/dist/domain/src/core/EventWriter.d.ts +21 -5
  36. package/dist/domain/src/core/EventWriter.d.ts.map +1 -1
  37. package/dist/domain/src/core/EventWriter.js +59 -15
  38. package/dist/domain/src/core/EventWriter.js.map +1 -1
  39. package/dist/domain/src/core/Kind.d.ts +16 -13
  40. package/dist/domain/src/core/Kind.d.ts.map +1 -1
  41. package/dist/domain/src/core/Kind.js +8 -5
  42. package/dist/domain/src/core/Kind.js.map +1 -1
  43. package/dist/domain/src/index.d.ts +6 -0
  44. package/dist/domain/src/index.d.ts.map +1 -1
  45. package/dist/domain/src/index.js +6 -0
  46. package/dist/domain/src/index.js.map +1 -1
  47. package/dist/domain/src/kinds/AppData.d.ts +5 -1
  48. package/dist/domain/src/kinds/AppData.d.ts.map +1 -1
  49. package/dist/domain/src/kinds/AppData.js +7 -0
  50. package/dist/domain/src/kinds/AppData.js.map +1 -1
  51. package/dist/domain/src/kinds/Article.d.ts +5 -1
  52. package/dist/domain/src/kinds/Article.d.ts.map +1 -1
  53. package/dist/domain/src/kinds/Article.js +7 -0
  54. package/dist/domain/src/kinds/Article.js.map +1 -1
  55. package/dist/domain/src/kinds/BlockedRelayList.d.ts +5 -1
  56. package/dist/domain/src/kinds/BlockedRelayList.d.ts.map +1 -1
  57. package/dist/domain/src/kinds/BlockedRelayList.js +7 -0
  58. package/dist/domain/src/kinds/BlockedRelayList.js.map +1 -1
  59. package/dist/domain/src/kinds/BlossomServerList.d.ts +5 -1
  60. package/dist/domain/src/kinds/BlossomServerList.d.ts.map +1 -1
  61. package/dist/domain/src/kinds/BlossomServerList.js +7 -0
  62. package/dist/domain/src/kinds/BlossomServerList.js.map +1 -1
  63. package/dist/domain/src/kinds/BookmarkList.d.ts +5 -1
  64. package/dist/domain/src/kinds/BookmarkList.d.ts.map +1 -1
  65. package/dist/domain/src/kinds/BookmarkList.js +7 -0
  66. package/dist/domain/src/kinds/BookmarkList.js.map +1 -1
  67. package/dist/domain/src/kinds/Classified.d.ts +5 -1
  68. package/dist/domain/src/kinds/Classified.d.ts.map +1 -1
  69. package/dist/domain/src/kinds/Classified.js +7 -0
  70. package/dist/domain/src/kinds/Classified.js.map +1 -1
  71. package/dist/domain/src/kinds/Command.d.ts +28 -0
  72. package/dist/domain/src/kinds/Command.d.ts.map +1 -0
  73. package/dist/domain/src/kinds/Command.js +99 -0
  74. package/dist/domain/src/kinds/Command.js.map +1 -0
  75. package/dist/domain/src/kinds/Comment.d.ts +11 -2
  76. package/dist/domain/src/kinds/Comment.d.ts.map +1 -1
  77. package/dist/domain/src/kinds/Comment.js +47 -12
  78. package/dist/domain/src/kinds/Comment.js.map +1 -1
  79. package/dist/domain/src/kinds/CommunityList.d.ts +5 -1
  80. package/dist/domain/src/kinds/CommunityList.d.ts.map +1 -1
  81. package/dist/domain/src/kinds/CommunityList.js +7 -0
  82. package/dist/domain/src/kinds/CommunityList.js.map +1 -1
  83. package/dist/domain/src/kinds/Delete.d.ts +5 -1
  84. package/dist/domain/src/kinds/Delete.d.ts.map +1 -1
  85. package/dist/domain/src/kinds/Delete.js +7 -0
  86. package/dist/domain/src/kinds/Delete.js.map +1 -1
  87. package/dist/domain/src/kinds/DirectMessage.d.ts +5 -1
  88. package/dist/domain/src/kinds/DirectMessage.d.ts.map +1 -1
  89. package/dist/domain/src/kinds/DirectMessage.js +8 -1
  90. package/dist/domain/src/kinds/DirectMessage.js.map +1 -1
  91. package/dist/domain/src/kinds/EmojiList.d.ts +5 -1
  92. package/dist/domain/src/kinds/EmojiList.d.ts.map +1 -1
  93. package/dist/domain/src/kinds/EmojiList.js +7 -0
  94. package/dist/domain/src/kinds/EmojiList.js.map +1 -1
  95. package/dist/domain/src/kinds/Feed.d.ts +5 -1
  96. package/dist/domain/src/kinds/Feed.d.ts.map +1 -1
  97. package/dist/domain/src/kinds/Feed.js +7 -0
  98. package/dist/domain/src/kinds/Feed.js.map +1 -1
  99. package/dist/domain/src/kinds/FeedList.d.ts +5 -1
  100. package/dist/domain/src/kinds/FeedList.d.ts.map +1 -1
  101. package/dist/domain/src/kinds/FeedList.js +7 -0
  102. package/dist/domain/src/kinds/FeedList.js.map +1 -1
  103. package/dist/domain/src/kinds/FollowList.d.ts +5 -1
  104. package/dist/domain/src/kinds/FollowList.d.ts.map +1 -1
  105. package/dist/domain/src/kinds/FollowList.js +8 -1
  106. package/dist/domain/src/kinds/FollowList.js.map +1 -1
  107. package/dist/domain/src/kinds/Handler.d.ts +5 -1
  108. package/dist/domain/src/kinds/Handler.d.ts.map +1 -1
  109. package/dist/domain/src/kinds/Handler.js +7 -0
  110. package/dist/domain/src/kinds/Handler.js.map +1 -1
  111. package/dist/domain/src/kinds/HandlerRecommendation.d.ts +5 -1
  112. package/dist/domain/src/kinds/HandlerRecommendation.d.ts.map +1 -1
  113. package/dist/domain/src/kinds/HandlerRecommendation.js +7 -0
  114. package/dist/domain/src/kinds/HandlerRecommendation.js.map +1 -1
  115. package/dist/domain/src/kinds/Highlight.d.ts +5 -1
  116. package/dist/domain/src/kinds/Highlight.d.ts.map +1 -1
  117. package/dist/domain/src/kinds/Highlight.js +7 -0
  118. package/dist/domain/src/kinds/Highlight.js.map +1 -1
  119. package/dist/domain/src/kinds/MessagingRelayList.d.ts +5 -1
  120. package/dist/domain/src/kinds/MessagingRelayList.d.ts.map +1 -1
  121. package/dist/domain/src/kinds/MessagingRelayList.js +8 -1
  122. package/dist/domain/src/kinds/MessagingRelayList.js.map +1 -1
  123. package/dist/domain/src/kinds/MuteList.d.ts +5 -1
  124. package/dist/domain/src/kinds/MuteList.d.ts.map +1 -1
  125. package/dist/domain/src/kinds/MuteList.js +7 -0
  126. package/dist/domain/src/kinds/MuteList.js.map +1 -1
  127. package/dist/domain/src/kinds/Note.d.ts +6 -2
  128. package/dist/domain/src/kinds/Note.d.ts.map +1 -1
  129. package/dist/domain/src/kinds/Note.js +7 -0
  130. package/dist/domain/src/kinds/Note.js.map +1 -1
  131. package/dist/domain/src/kinds/Pin.d.ts +5 -1
  132. package/dist/domain/src/kinds/Pin.d.ts.map +1 -1
  133. package/dist/domain/src/kinds/Pin.js +7 -0
  134. package/dist/domain/src/kinds/Pin.js.map +1 -1
  135. package/dist/domain/src/kinds/PinList.d.ts +5 -1
  136. package/dist/domain/src/kinds/PinList.d.ts.map +1 -1
  137. package/dist/domain/src/kinds/PinList.js +7 -0
  138. package/dist/domain/src/kinds/PinList.js.map +1 -1
  139. package/dist/domain/src/kinds/Pinboard.d.ts +5 -1
  140. package/dist/domain/src/kinds/Pinboard.d.ts.map +1 -1
  141. package/dist/domain/src/kinds/Pinboard.js +7 -0
  142. package/dist/domain/src/kinds/Pinboard.js.map +1 -1
  143. package/dist/domain/src/kinds/Poll.d.ts +5 -1
  144. package/dist/domain/src/kinds/Poll.d.ts.map +1 -1
  145. package/dist/domain/src/kinds/Poll.js +7 -0
  146. package/dist/domain/src/kinds/Poll.js.map +1 -1
  147. package/dist/domain/src/kinds/PollResponse.d.ts +5 -1
  148. package/dist/domain/src/kinds/PollResponse.d.ts.map +1 -1
  149. package/dist/domain/src/kinds/PollResponse.js +7 -0
  150. package/dist/domain/src/kinds/PollResponse.js.map +1 -1
  151. package/dist/domain/src/kinds/Profile.d.ts +5 -1
  152. package/dist/domain/src/kinds/Profile.d.ts.map +1 -1
  153. package/dist/domain/src/kinds/Profile.js +8 -1
  154. package/dist/domain/src/kinds/Profile.js.map +1 -1
  155. package/dist/domain/src/kinds/Reaction.d.ts +5 -1
  156. package/dist/domain/src/kinds/Reaction.d.ts.map +1 -1
  157. package/dist/domain/src/kinds/Reaction.js +7 -0
  158. package/dist/domain/src/kinds/Reaction.js.map +1 -1
  159. package/dist/domain/src/kinds/RelayAddMember.d.ts +5 -1
  160. package/dist/domain/src/kinds/RelayAddMember.d.ts.map +1 -1
  161. package/dist/domain/src/kinds/RelayAddMember.js +7 -0
  162. package/dist/domain/src/kinds/RelayAddMember.js.map +1 -1
  163. package/dist/domain/src/kinds/RelayInvite.d.ts +5 -1
  164. package/dist/domain/src/kinds/RelayInvite.d.ts.map +1 -1
  165. package/dist/domain/src/kinds/RelayInvite.js +7 -0
  166. package/dist/domain/src/kinds/RelayInvite.js.map +1 -1
  167. package/dist/domain/src/kinds/RelayJoin.d.ts +5 -1
  168. package/dist/domain/src/kinds/RelayJoin.d.ts.map +1 -1
  169. package/dist/domain/src/kinds/RelayJoin.js +7 -0
  170. package/dist/domain/src/kinds/RelayJoin.js.map +1 -1
  171. package/dist/domain/src/kinds/RelayLeave.d.ts +5 -1
  172. package/dist/domain/src/kinds/RelayLeave.d.ts.map +1 -1
  173. package/dist/domain/src/kinds/RelayLeave.js +7 -0
  174. package/dist/domain/src/kinds/RelayLeave.js.map +1 -1
  175. package/dist/domain/src/kinds/RelayList.d.ts +5 -1
  176. package/dist/domain/src/kinds/RelayList.d.ts.map +1 -1
  177. package/dist/domain/src/kinds/RelayList.js +7 -0
  178. package/dist/domain/src/kinds/RelayList.js.map +1 -1
  179. package/dist/domain/src/kinds/RelayMembers.d.ts +5 -1
  180. package/dist/domain/src/kinds/RelayMembers.d.ts.map +1 -1
  181. package/dist/domain/src/kinds/RelayMembers.js +7 -0
  182. package/dist/domain/src/kinds/RelayMembers.js.map +1 -1
  183. package/dist/domain/src/kinds/RelayRemoveMember.d.ts +5 -1
  184. package/dist/domain/src/kinds/RelayRemoveMember.d.ts.map +1 -1
  185. package/dist/domain/src/kinds/RelayRemoveMember.js +7 -0
  186. package/dist/domain/src/kinds/RelayRemoveMember.js.map +1 -1
  187. package/dist/domain/src/kinds/RelayRole.d.ts +5 -1
  188. package/dist/domain/src/kinds/RelayRole.d.ts.map +1 -1
  189. package/dist/domain/src/kinds/RelayRole.js +7 -0
  190. package/dist/domain/src/kinds/RelayRole.js.map +1 -1
  191. package/dist/domain/src/kinds/RelaySet.d.ts +5 -1
  192. package/dist/domain/src/kinds/RelaySet.d.ts.map +1 -1
  193. package/dist/domain/src/kinds/RelaySet.js +7 -0
  194. package/dist/domain/src/kinds/RelaySet.js.map +1 -1
  195. package/dist/domain/src/kinds/Report.d.ts +5 -1
  196. package/dist/domain/src/kinds/Report.d.ts.map +1 -1
  197. package/dist/domain/src/kinds/Report.js +7 -0
  198. package/dist/domain/src/kinds/Report.js.map +1 -1
  199. package/dist/domain/src/kinds/RoomAddMember.d.ts +5 -1
  200. package/dist/domain/src/kinds/RoomAddMember.d.ts.map +1 -1
  201. package/dist/domain/src/kinds/RoomAddMember.js +7 -0
  202. package/dist/domain/src/kinds/RoomAddMember.js.map +1 -1
  203. package/dist/domain/src/kinds/RoomAdmins.d.ts +5 -1
  204. package/dist/domain/src/kinds/RoomAdmins.d.ts.map +1 -1
  205. package/dist/domain/src/kinds/RoomAdmins.js +7 -0
  206. package/dist/domain/src/kinds/RoomAdmins.js.map +1 -1
  207. package/dist/domain/src/kinds/RoomCreate.d.ts +5 -1
  208. package/dist/domain/src/kinds/RoomCreate.d.ts.map +1 -1
  209. package/dist/domain/src/kinds/RoomCreate.js +7 -0
  210. package/dist/domain/src/kinds/RoomCreate.js.map +1 -1
  211. package/dist/domain/src/kinds/RoomCreatePermission.d.ts +5 -1
  212. package/dist/domain/src/kinds/RoomCreatePermission.d.ts.map +1 -1
  213. package/dist/domain/src/kinds/RoomCreatePermission.js +7 -0
  214. package/dist/domain/src/kinds/RoomCreatePermission.js.map +1 -1
  215. package/dist/domain/src/kinds/RoomDelete.d.ts +5 -1
  216. package/dist/domain/src/kinds/RoomDelete.d.ts.map +1 -1
  217. package/dist/domain/src/kinds/RoomDelete.js +7 -0
  218. package/dist/domain/src/kinds/RoomDelete.js.map +1 -1
  219. package/dist/domain/src/kinds/RoomEdit.d.ts +5 -1
  220. package/dist/domain/src/kinds/RoomEdit.d.ts.map +1 -1
  221. package/dist/domain/src/kinds/RoomEdit.js +7 -0
  222. package/dist/domain/src/kinds/RoomEdit.js.map +1 -1
  223. package/dist/domain/src/kinds/RoomJoin.d.ts +5 -1
  224. package/dist/domain/src/kinds/RoomJoin.d.ts.map +1 -1
  225. package/dist/domain/src/kinds/RoomJoin.js +7 -0
  226. package/dist/domain/src/kinds/RoomJoin.js.map +1 -1
  227. package/dist/domain/src/kinds/RoomLeave.d.ts +5 -1
  228. package/dist/domain/src/kinds/RoomLeave.d.ts.map +1 -1
  229. package/dist/domain/src/kinds/RoomLeave.js +7 -0
  230. package/dist/domain/src/kinds/RoomLeave.js.map +1 -1
  231. package/dist/domain/src/kinds/RoomList.d.ts +5 -1
  232. package/dist/domain/src/kinds/RoomList.d.ts.map +1 -1
  233. package/dist/domain/src/kinds/RoomList.js +7 -0
  234. package/dist/domain/src/kinds/RoomList.js.map +1 -1
  235. package/dist/domain/src/kinds/RoomMembers.d.ts +5 -1
  236. package/dist/domain/src/kinds/RoomMembers.d.ts.map +1 -1
  237. package/dist/domain/src/kinds/RoomMembers.js +7 -0
  238. package/dist/domain/src/kinds/RoomMembers.js.map +1 -1
  239. package/dist/domain/src/kinds/RoomMeta.d.ts +5 -1
  240. package/dist/domain/src/kinds/RoomMeta.d.ts.map +1 -1
  241. package/dist/domain/src/kinds/RoomMeta.js +7 -0
  242. package/dist/domain/src/kinds/RoomMeta.js.map +1 -1
  243. package/dist/domain/src/kinds/RoomPins.d.ts +5 -1
  244. package/dist/domain/src/kinds/RoomPins.d.ts.map +1 -1
  245. package/dist/domain/src/kinds/RoomPins.js +7 -0
  246. package/dist/domain/src/kinds/RoomPins.js.map +1 -1
  247. package/dist/domain/src/kinds/RoomRemoveMember.d.ts +5 -1
  248. package/dist/domain/src/kinds/RoomRemoveMember.d.ts.map +1 -1
  249. package/dist/domain/src/kinds/RoomRemoveMember.js +7 -0
  250. package/dist/domain/src/kinds/RoomRemoveMember.js.map +1 -1
  251. package/dist/domain/src/kinds/RoomUpdatePins.d.ts +5 -1
  252. package/dist/domain/src/kinds/RoomUpdatePins.d.ts.map +1 -1
  253. package/dist/domain/src/kinds/RoomUpdatePins.js +7 -0
  254. package/dist/domain/src/kinds/RoomUpdatePins.js.map +1 -1
  255. package/dist/domain/src/kinds/SearchRelayList.d.ts +5 -1
  256. package/dist/domain/src/kinds/SearchRelayList.d.ts.map +1 -1
  257. package/dist/domain/src/kinds/SearchRelayList.js +7 -0
  258. package/dist/domain/src/kinds/SearchRelayList.js.map +1 -1
  259. package/dist/domain/src/kinds/Thread.d.ts +5 -1
  260. package/dist/domain/src/kinds/Thread.d.ts.map +1 -1
  261. package/dist/domain/src/kinds/Thread.js +7 -0
  262. package/dist/domain/src/kinds/Thread.js.map +1 -1
  263. package/dist/domain/src/kinds/TimeEvent.d.ts +5 -1
  264. package/dist/domain/src/kinds/TimeEvent.d.ts.map +1 -1
  265. package/dist/domain/src/kinds/TimeEvent.js +7 -0
  266. package/dist/domain/src/kinds/TimeEvent.js.map +1 -1
  267. package/dist/domain/src/kinds/TopicList.d.ts +5 -1
  268. package/dist/domain/src/kinds/TopicList.d.ts.map +1 -1
  269. package/dist/domain/src/kinds/TopicList.js +7 -0
  270. package/dist/domain/src/kinds/TopicList.js.map +1 -1
  271. package/dist/domain/src/kinds/ZapGoal.d.ts +5 -1
  272. package/dist/domain/src/kinds/ZapGoal.d.ts.map +1 -1
  273. package/dist/domain/src/kinds/ZapGoal.js +7 -0
  274. package/dist/domain/src/kinds/ZapGoal.js.map +1 -1
  275. package/dist/domain/src/kinds/ZapReceipt.d.ts +5 -1
  276. package/dist/domain/src/kinds/ZapReceipt.d.ts.map +1 -1
  277. package/dist/domain/src/kinds/ZapReceipt.js +7 -0
  278. package/dist/domain/src/kinds/ZapReceipt.js.map +1 -1
  279. package/dist/domain/src/kinds/ZapRequest.d.ts +5 -1
  280. package/dist/domain/src/kinds/ZapRequest.d.ts.map +1 -1
  281. package/dist/domain/src/kinds/ZapRequest.js +7 -0
  282. package/dist/domain/src/kinds/ZapRequest.js.map +1 -1
  283. package/dist/util/src/Command.d.ts +53 -0
  284. package/dist/util/src/Command.d.ts.map +1 -0
  285. package/dist/util/src/Command.js +226 -0
  286. package/dist/util/src/Command.js.map +1 -0
  287. package/dist/util/src/Kinds.d.ts +1 -0
  288. package/dist/util/src/Kinds.d.ts.map +1 -1
  289. package/dist/util/src/Kinds.js +1 -0
  290. package/dist/util/src/Kinds.js.map +1 -1
  291. package/dist/util/src/index.d.ts +1 -0
  292. package/dist/util/src/index.d.ts.map +1 -1
  293. package/dist/util/src/index.js +1 -0
  294. package/dist/util/src/index.js.map +1 -1
  295. package/package.json +15 -15
@@ -1,6 +1,7 @@
1
1
  import type { MaybeAsync } from "@welshman/lib";
2
2
  import type { TrustedEvent } from "@welshman/util";
3
3
  import type { KindContext } from "./Kind.js";
4
+ import type { Client } from "../behaviors/Client.js";
4
5
  import type { Emoji } from "../behaviors/Emoji.js";
5
6
  import type { ZapSplit } from "../behaviors/ZapSplits.js";
6
7
  /**
@@ -24,6 +25,9 @@ export declare abstract class BaseEventReader {
24
25
  room(): string | undefined;
25
26
  protect(): boolean;
26
27
  expiration(): number | undefined;
28
+ contentWarning(): boolean;
29
+ contentWarningReason(): string | undefined;
30
+ client(): Client | undefined;
27
31
  emojis(): Emoji[];
28
32
  zapSplits(): ZapSplit[];
29
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"EventReader.d.ts","sourceRoot":"","sources":["../../../../../domain/src/core/EventReader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,eAAe,CAAA;AAE7C,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAA;AAChD,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,WAAW,CAAA;AAE1C,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,uBAAuB,CAAA;AAEhD,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,2BAA2B,CAAA;AAEvD;;;;GAIG;AACH,8BAAsB,eAAe;IAEjC,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,OAAO,EAAE,WAAW;IAC7B,QAAQ,CAAC,KAAK,EAAE,YAAY;gBAFnB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,YAAY;IAS9B,QAAQ,CAAC,KAAK,IAAI,UAAU,CAAC,IAAI,CAAC;IAElC,EAAE;IAIF,MAAM;IAIN,OAAO;IAIP,IAAI;IAIJ,SAAS;IAIT,UAAU;IAIV,OAAO;IAIP,IAAI;IAIJ,OAAO;IAIP,UAAU;IAIV,MAAM,IAAI,KAAK,EAAE;IAIjB,SAAS,IAAI,QAAQ,EAAE;CAGxB;AAED;;;;GAIG;AACH,8BAAsB,WAAY,SAAQ,eAAe;IACvD,KAAK,IAAI,IAAI;CAGd;AAED;;;;GAIG;AACH,8BAAsB,gBAAiB,SAAQ,eAAe;IAC5D,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAChC;AAED;;;GAGG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,eAAe,IAAI,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"EventReader.d.ts","sourceRoot":"","sources":["../../../../../domain/src/core/EventReader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,eAAe,CAAA;AAE7C,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAA;AAChD,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,WAAW,CAAA;AAE1C,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,wBAAwB,CAAA;AAGlD,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,uBAAuB,CAAA;AAIhD,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,2BAA2B,CAAA;AAEvD;;;;GAIG;AACH,8BAAsB,eAAe;IAEjC,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,OAAO,EAAE,WAAW;IAC7B,QAAQ,CAAC,KAAK,EAAE,YAAY;gBAFnB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,YAAY;IAS9B,QAAQ,CAAC,KAAK,IAAI,UAAU,CAAC,IAAI,CAAC;IAElC,EAAE;IAIF,MAAM;IAIN,OAAO;IAIP,IAAI;IAIJ,SAAS;IAIT,UAAU;IAIV,OAAO;IAIP,IAAI;IAIJ,OAAO;IAIP,UAAU;IAIV,cAAc;IAId,oBAAoB;IAIpB,MAAM,IAAI,MAAM,GAAG,SAAS;IAI5B,MAAM,IAAI,KAAK,EAAE;IAIjB,SAAS,IAAI,QAAQ,EAAE;CAGxB;AAED;;;;GAIG;AACH,8BAAsB,WAAY,SAAQ,eAAe;IACvD,KAAK,IAAI,IAAI;CAGd;AAED;;;;GAIG;AACH,8BAAsB,gBAAiB,SAAQ,eAAe;IAC5D,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAChC;AAED;;;GAGG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,eAAe,IAAI,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA"}
@@ -1,6 +1,9 @@
1
- import { spec, toInt } from "@welshman/lib";
2
1
  import { tagSpec, tagValue, getAddress } from "@welshman/util";
2
+ import { getClient } from "../behaviors/Client.js";
3
+ import { getContentWarning } from "../behaviors/ContentWarning.js";
3
4
  import { getEmojis } from "../behaviors/Emoji.js";
5
+ import { getExpiration } from "../behaviors/Expiration.js";
6
+ import { isProtected } from "../behaviors/Protected.js";
4
7
  import { getZapSplits } from "../behaviors/ZapSplits.js";
5
8
  /**
6
9
  * The accessors every reader shares. Readers don't extend this directly — they
@@ -44,10 +47,19 @@ export class BaseEventReader {
44
47
  return tagValue(tagSpec("h"), this.event.tags);
45
48
  }
46
49
  protect() {
47
- return this.event.tags.some(spec(["-"]));
50
+ return isProtected(this.event);
48
51
  }
49
52
  expiration() {
50
- return toInt(tagValue(tagSpec("expiration"), this.event.tags) ?? "");
53
+ return getExpiration(this.event);
54
+ }
55
+ contentWarning() {
56
+ return Boolean(getContentWarning(this.event));
57
+ }
58
+ contentWarningReason() {
59
+ return getContentWarning(this.event)?.reason;
60
+ }
61
+ client() {
62
+ return getClient(this.event);
51
63
  }
52
64
  emojis() {
53
65
  return getEmojis(this.event);
@@ -1 +1 @@
1
- {"version":3,"file":"EventReader.js","sourceRoot":"","sources":["../../../../../domain/src/core/EventReader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAE,KAAK,EAAC,MAAM,eAAe,CAAA;AAEzC,OAAO,EAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAC,MAAM,gBAAgB,CAAA;AAG5D,OAAO,EAAC,SAAS,EAAC,MAAM,uBAAuB,CAAA;AAE/C,OAAO,EAAC,YAAY,EAAC,MAAM,2BAA2B,CAAA;AAGtD;;;;GAIG;AACH,MAAM,OAAgB,eAAe;IAExB;IACA;IACA;IAHX,YACW,IAAY,EACZ,OAAoB,EACpB,KAAmB;QAFnB,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAAa;QACpB,UAAK,GAAL,KAAK,CAAc;QAE5B,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,oBAAoB,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;QAC1E,CAAC;IACH,CAAC;IAMD,EAAE;QACA,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAA;IACtB,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAA;IAC1B,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAA;IAC3B,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAA;IACxB,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAA;IAC9B,CAAC;IAED,UAAU;QACR,OAAO,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAChD,CAAC;IAED,OAAO;QACL,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC/B,CAAC;IAED,IAAI;QACF,OAAO,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAChD,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IAC1C,CAAC;IAED,UAAU;QACR,OAAO,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;IACtE,CAAC;IAED,MAAM;QACJ,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC;IAED,SAAS;QACP,OAAO,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACjC,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAgB,WAAY,SAAQ,eAAe;IACvD,KAAK;QACH,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAgB,gBAAiB,SAAQ,eAAe;CAE7D"}
1
+ {"version":3,"file":"EventReader.js","sourceRoot":"","sources":["../../../../../domain/src/core/EventReader.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAC,MAAM,gBAAgB,CAAA;AAG5D,OAAO,EAAC,SAAS,EAAC,MAAM,wBAAwB,CAAA;AAEhD,OAAO,EAAC,iBAAiB,EAAC,MAAM,gCAAgC,CAAA;AAChE,OAAO,EAAC,SAAS,EAAC,MAAM,uBAAuB,CAAA;AAE/C,OAAO,EAAC,aAAa,EAAC,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAC,WAAW,EAAC,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAC,YAAY,EAAC,MAAM,2BAA2B,CAAA;AAGtD;;;;GAIG;AACH,MAAM,OAAgB,eAAe;IAExB;IACA;IACA;IAHX,YACW,IAAY,EACZ,OAAoB,EACpB,KAAmB;QAFnB,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAAa;QACpB,UAAK,GAAL,KAAK,CAAc;QAE5B,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,oBAAoB,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;QAC1E,CAAC;IACH,CAAC;IAMD,EAAE;QACA,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAA;IACtB,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAA;IAC1B,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAA;IAC3B,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAA;IACxB,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAA;IAC9B,CAAC;IAED,UAAU;QACR,OAAO,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAChD,CAAC;IAED,OAAO;QACL,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC/B,CAAC;IAED,IAAI;QACF,OAAO,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAChD,CAAC;IAED,OAAO;QACL,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAChC,CAAC;IAED,UAAU;QACR,OAAO,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAClC,CAAC;IAED,cAAc;QACZ,OAAO,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IAC/C,CAAC;IAED,oBAAoB;QAClB,OAAO,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IAC9C,CAAC;IAED,MAAM;QACJ,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC;IAED,MAAM;QACJ,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC;IAED,SAAS;QACP,OAAO,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACjC,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAgB,WAAY,SAAQ,eAAe;IACvD,KAAK;QACH,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAgB,gBAAiB,SAAQ,eAAe;CAE7D"}
@@ -15,20 +15,36 @@ export declare abstract class EventWriter<Reader extends BaseEventReader> {
15
15
  roomTag?: string[];
16
16
  protectTag?: string[];
17
17
  expirationTag?: string[];
18
+ contentWarningTag?: string[];
19
+ clientTag?: string[];
18
20
  identifierTag?: string[];
19
21
  extraTags: string[][];
20
- forcedRelays?: string[];
22
+ forcedRoutes?: RelaySelection[];
21
23
  pendingResolves: Promise<unknown>[];
22
24
  readonly requiresRelays: boolean;
23
25
  constructor(kind: number, context: KindContext, reader?: Reader | undefined);
24
26
  setContent(content: string): this;
25
27
  setRoom(url: string, room: string): this;
26
28
  clearRoom(): this;
27
- forceRelays(...urls: string[]): this;
28
- clearForcedRelays(): this;
29
+ /**
30
+ * Replaces the rendered routes. These are routes rather than urls, so
31
+ * `forceRoutes(userInbox())` pins an event to the user's read relays without
32
+ * resolving them first.
33
+ */
34
+ forceRoutes(...routes: RelaySelection[]): this;
35
+ clearForcedRoutes(): this;
29
36
  setProtected(protect: boolean): this;
30
37
  setExpiration(expiration: number): this;
31
38
  clearExpiration(): this;
39
+ setContentWarning(reason?: string): this;
40
+ clearContentWarning(): this;
41
+ /**
42
+ * Attributes the event to the NIP-89 client that produced it. `address` is an
43
+ * optional `31990:pubkey:d-tag` pointer to the client's handler information
44
+ * event; when given, its author's outbox fills in the tag's relay hint slot.
45
+ */
46
+ setClient(name: string, address?: string): this;
47
+ clearClient(): this;
32
48
  setIdentifier(identifier?: string): this;
33
49
  clearIdentifier(): this;
34
50
  addTags(...tags: string[][]): this;
@@ -80,8 +96,8 @@ export declare abstract class EventWriter<Reader extends BaseEventReader> {
80
96
  */
81
97
  protected renderRoutes(): Promise<RelaySelection[]>;
82
98
  /**
83
- * Returns a router scenario for this event. Publishes to forced relays (e.g. a
84
- * NIP-29 room) when set, otherwise to the rendered routes.
99
+ * Returns a router scenario for this event. Publishes to the forced routes (e.g. a
100
+ * NIP-29 room's relay) when set, otherwise to the rendered routes.
85
101
  */
86
102
  scenario(): Promise<RelayScenario>;
87
103
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"EventWriter.d.ts","sourceRoot":"","sources":["../../../../../domain/src/core/EventWriter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EventWriter.d.ts","sourceRoot":"","sources":["../../../../../domain/src/core/EventWriter.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { remove, complement, first, partition, randomId, removeUndefined, spec } from "@welshman/lib";
2
- import { isParameterizedReplaceableKind, normalizeRelayUrl, hexTags, tagValues, outbox, userOutbox, inboxes, relays, } from "@welshman/util";
2
+ import { Address, isParameterizedReplaceableKind, normalizeRelayUrl, hexTags, tagValues, outbox, userOutbox, inboxes, relay, } from "@welshman/util";
3
3
  // A cursor over a tag list that splits out tags by key as they're consumed,
4
4
  // leaving the rest in `tags`. Writers use it to peel behavior/kind-specific tags
5
5
  // off an event being edited.
@@ -22,9 +22,11 @@ export class EventWriter {
22
22
  roomTag;
23
23
  protectTag;
24
24
  expirationTag;
25
+ contentWarningTag;
26
+ clientTag;
25
27
  identifierTag;
26
28
  extraTags = [];
27
- forcedRelays;
29
+ forcedRoutes;
28
30
  pendingResolves = [];
29
31
  // Kinds that must publish to explicit relays (e.g. NIP-29 room events) set this.
30
32
  // Annotated `boolean` (not the inferred literal `false`) so subclasses can override.
@@ -39,6 +41,8 @@ export class EventWriter {
39
41
  this.roomTag = first(parser.consume("h"));
40
42
  this.protectTag = first(parser.consume("-"));
41
43
  this.expirationTag = first(parser.consume("expiration"));
44
+ this.contentWarningTag = first(parser.consume("content-warning"));
45
+ this.clientTag = first(parser.consume("client"));
42
46
  this.identifierTag = first(parser.consume("d"));
43
47
  this.extraTags = parser.tags;
44
48
  }
@@ -48,21 +52,26 @@ export class EventWriter {
48
52
  return this;
49
53
  }
50
54
  setRoom(url, room) {
51
- this.forcedRelays = [normalizeRelayUrl(url)];
55
+ this.forcedRoutes = [relay(normalizeRelayUrl(url))];
52
56
  this.roomTag = ["h", room];
53
57
  return this;
54
58
  }
55
59
  clearRoom() {
56
- this.forcedRelays = undefined;
60
+ this.forcedRoutes = undefined;
57
61
  this.roomTag = undefined;
58
62
  return this;
59
63
  }
60
- forceRelays(...urls) {
61
- this.forcedRelays = urls.map(normalizeRelayUrl);
64
+ /**
65
+ * Replaces the rendered routes. These are routes rather than urls, so
66
+ * `forceRoutes(userInbox())` pins an event to the user's read relays without
67
+ * resolving them first.
68
+ */
69
+ forceRoutes(...routes) {
70
+ this.forcedRoutes = routes;
62
71
  return this;
63
72
  }
64
- clearForcedRelays() {
65
- this.forcedRelays = undefined;
73
+ clearForcedRoutes() {
74
+ this.forcedRoutes = undefined;
66
75
  return this;
67
76
  }
68
77
  setProtected(protect) {
@@ -77,6 +86,34 @@ export class EventWriter {
77
86
  this.expirationTag = undefined;
78
87
  return this;
79
88
  }
89
+ // The reason is optional per NIP-36 — a bare tag flags the content without saying why.
90
+ setContentWarning(reason) {
91
+ this.contentWarningTag = removeUndefined(["content-warning", reason]);
92
+ return this;
93
+ }
94
+ clearContentWarning() {
95
+ this.contentWarningTag = undefined;
96
+ return this;
97
+ }
98
+ /**
99
+ * Attributes the event to the NIP-89 client that produced it. `address` is an
100
+ * optional `31990:pubkey:d-tag` pointer to the client's handler information
101
+ * event; when given, its author's outbox fills in the tag's relay hint slot.
102
+ */
103
+ setClient(name, address) {
104
+ const tag = removeUndefined(["client", name, address]);
105
+ this.clientTag = tag;
106
+ if (address && Address.isAddress(address)) {
107
+ this.hint(outbox(Address.from(address).pubkey)).then(url => {
108
+ tag[3] = url;
109
+ });
110
+ }
111
+ return this;
112
+ }
113
+ clearClient() {
114
+ this.clientTag = undefined;
115
+ return this;
116
+ }
80
117
  setIdentifier(identifier = randomId()) {
81
118
  this.identifierTag = ["d", identifier];
82
119
  return this;
@@ -137,11 +174,11 @@ export class EventWriter {
137
174
  if (isParameterizedReplaceableKind(this.kind) && !this.identifierTag) {
138
175
  throw new Error(`A d tag is required for kind ${this.kind}`);
139
176
  }
140
- if (this.roomTag && !this.forcedRelays?.length) {
177
+ if (this.roomTag && !this.forcedRoutes?.length) {
141
178
  throw new Error("A room event requires a relay url (set the room via setRoom)");
142
179
  }
143
- if (this.requiresRelays && !this.forcedRelays?.length) {
144
- throw new Error(`A kind ${this.kind} event must publish to explicit relays (via setRoom or forceRelays)`);
180
+ if (this.requiresRelays && !this.forcedRoutes?.length) {
181
+ throw new Error(`A kind ${this.kind} event must publish to explicit relays (via setRoom or forceRoutes)`);
145
182
  }
146
183
  }
147
184
  /**
@@ -166,7 +203,14 @@ export class EventWriter {
166
203
  * Returns a list of tags that may be attached to any kind.
167
204
  */
168
205
  renderBehaviorTags() {
169
- return removeUndefined([this.roomTag, this.protectTag, this.expirationTag, this.identifierTag]);
206
+ return removeUndefined([
207
+ this.roomTag,
208
+ this.protectTag,
209
+ this.expirationTag,
210
+ this.contentWarningTag,
211
+ this.clientTag,
212
+ this.identifierTag,
213
+ ]);
170
214
  }
171
215
  /**
172
216
  * Returns a list of tags related to the kind.
@@ -209,11 +253,11 @@ export class EventWriter {
209
253
  return [userOutbox(), ...inboxes(tagValues(hexTags("p"), await this.renderTags()), 0.5)];
210
254
  }
211
255
  /**
212
- * Returns a router scenario for this event. Publishes to forced relays (e.g. a
213
- * NIP-29 room) when set, otherwise to the rendered routes.
256
+ * Returns a router scenario for this event. Publishes to the forced routes (e.g. a
257
+ * NIP-29 room's relay) when set, otherwise to the rendered routes.
214
258
  */
215
259
  async scenario() {
216
- const routes = this.forcedRelays?.length ? relays(this.forcedRelays) : await this.renderRoutes();
260
+ const routes = this.forcedRoutes?.length ? this.forcedRoutes : await this.renderRoutes();
217
261
  return this.context.resolver.scenario(routes);
218
262
  }
219
263
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"EventWriter.js","sourceRoot":"","sources":["../../../../../domain/src/core/EventWriter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,IAAI,EAAC,MAAM,eAAe,CAAA;AAEnG,OAAO,EACL,8BAA8B,EAC9B,iBAAiB,EACjB,OAAO,EACP,SAAS,EACT,MAAM,EACN,UAAU,EACV,OAAO,EACP,MAAM,GACP,MAAM,gBAAgB,CAAA;AAKvB,4EAA4E;AAC5E,iFAAiF;AACjF,6BAA6B;AAC7B,MAAM,OAAO,SAAS;IACpB,IAAI,CAAY;IAEhB,YAAY,IAAgB;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;IAED,OAAO,CAAC,GAAW;QACjB,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;QAE/D,IAAI,CAAC,IAAI,GAAG,SAAS,CAAA;QAErB,OAAO,QAAQ,CAAA;IACjB,CAAC;CACF;AAED,MAAM,OAAgB,WAAW;IAepB;IACA;IACA;IAhBX,OAAO,GAAG,EAAE,CAAA;IACZ,OAAO,CAAW;IAClB,UAAU,CAAW;IACrB,aAAa,CAAW;IACxB,aAAa,CAAW;IACxB,SAAS,GAAe,EAAE,CAAA;IAC1B,YAAY,CAAW;IACvB,eAAe,GAAuB,EAAE,CAAA;IAExC,iFAAiF;IACjF,qFAAqF;IAC5E,cAAc,GAAY,KAAK,CAAA;IAExC,YACW,IAAY,EACZ,OAAoB,EACpB,MAAe;QAFf,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAAa;QACpB,WAAM,GAAN,MAAM,CAAS;QAExB,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAE/C,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAA;YACnC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;YACzC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;YAC5C,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAA;YACxD,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;YAC/C,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAA;QAC9B,CAAC;IACH,CAAC;IAED,UAAU,CAAC,OAAe;QACxB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QAEtB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,CAAC,GAAW,EAAE,IAAY;QAC/B,IAAI,CAAC,YAAY,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAA;QAC5C,IAAI,CAAC,OAAO,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QAE1B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,SAAS;QACP,IAAI,CAAC,YAAY,GAAG,SAAS,CAAA;QAC7B,IAAI,CAAC,OAAO,GAAG,SAAS,CAAA;QAExB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,WAAW,CAAC,GAAG,IAAc;QAC3B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;QAE/C,OAAO,IAAI,CAAA;IACb,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,YAAY,GAAG,SAAS,CAAA;QAE7B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,YAAY,CAAC,OAAgB;QAC3B,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAE7C,OAAO,IAAI,CAAA;IACb,CAAC;IAED,aAAa,CAAC,UAAkB;QAC9B,IAAI,CAAC,aAAa,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAA;QAEvD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,eAAe;QACb,IAAI,CAAC,aAAa,GAAG,SAAS,CAAA;QAE9B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,aAAa,CAAC,UAAU,GAAG,QAAQ,EAAE;QACnC,IAAI,CAAC,aAAa,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;QAEtC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,eAAe;QACb,IAAI,CAAC,aAAa,GAAG,SAAS,CAAA;QAE9B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,CAAC,GAAG,IAAgB;QACzB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAA;QAE5B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,QAAQ,CAAC,IAAgC;QACvC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAE5C,OAAO,IAAI,CAAA;IACb,CAAC;IAED,QAAQ,CAAC,IAAgC;QACvC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAA;QAExD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,UAAU,CAAC,MAAc;QACvB,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,CAAA;QAE7B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAEjB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YACnC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAA;QACd,CAAC,CAAC,CAAA;QAEF,OAAO,IAAI,CAAA;IACb,CAAC;IAED,QAAQ,CAAC,KAAmB;QAC1B,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;QAE7C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAEjB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YACzC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAA;QACd,CAAC,CAAC,CAAA;QAEF,OAAO,IAAI,CAAA;IACb,CAAC;IAED,WAAW,CAAC,MAAc,EAAE,KAAK,GAAG,CAAC;QACnC,MAAM,GAAG,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QAE9C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAEjB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YACnC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAA;QACd,CAAC,CAAC,CAAA;QAEF,OAAO,IAAI,CAAA;IACb,CAAC;IAED,cAAc,CAAC,MAAc;QAC3B,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;IAC7C,CAAC;IAED,QAAQ,CAAC,SAAiB,EAAE,GAAW,EAAE,OAAgB;QACvD,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CACtD,eAAe,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CACpD,CAAA;IACH,CAAC;IAED,WAAW,CAAC,SAAiB;QAC3B,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;IAClD,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,IAAI,8BAA8B,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACrE,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QAC9D,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAA;QACjF,CAAC;QAED,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;YACtD,MAAM,IAAI,KAAK,CACb,UAAU,IAAI,CAAC,IAAI,qEAAqE,CACzF,CAAA;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,YAAY,CAAI,OAAmB;QACzC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAElC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;YAChB,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,CAAA;QAC9D,CAAC,CAAC,CAAA;QAEF,OAAO,OAAO,CAAA;IAChB,CAAC;IAED;;;;OAIG;IACO,IAAI,CAAC,GAAG,MAAwB;QACxC,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAA;IACtF,CAAC;IAED;;OAEG;IACO,kBAAkB;QAC1B,OAAO,eAAe,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAA;IACjG,CAAC;IAED;;OAEG;IACO,gBAAgB;QACxB,OAAO,EAAE,CAAA;IACX,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAA;QACpD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAA;QAEhD,+DAA+D;QAC/D,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;QAEvC,OAAO,CAAC,GAAG,YAAY,EAAE,GAAG,UAAU,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAA;IAC5D,CAAC;IAED;;OAEG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc;QAClB,IAAI,CAAC,QAAQ,EAAE,CAAA;QAEf,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,MAAM,IAAI,CAAC,UAAU,EAAE;YAC7B,OAAO,EAAE,MAAM,IAAI,CAAC,aAAa,EAAE;SACpC,CAAA;IACH,CAAC;IAED;;;OAGG;IACO,KAAK,CAAC,YAAY;QAC1B,OAAO,CAAC,UAAU,EAAE,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;IAC1F,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,QAAQ;QACZ,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;QAEhG,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IAC/C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM;QACV,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAA;IAC1C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM;QACV,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;QAEjF,OAAO,EAAC,KAAK,EAAE,MAAM,EAAC,CAAA;IACxB,CAAC;CACF"}
1
+ {"version":3,"file":"EventWriter.js","sourceRoot":"","sources":["../../../../../domain/src/core/EventWriter.ts"],"names":[],"mappings":"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"}
@@ -2,38 +2,41 @@ import type { TrustedEvent, Resolver } from "@welshman/util";
2
2
  import type { ISigner } from "@welshman/signer";
3
3
  import type { BaseEventReader } from "./EventReader.js";
4
4
  import type { EventWriter } from "./EventWriter.js";
5
+ import type { EventQuery } from "./EventQuery.js";
5
6
  export type KindContext = {
6
7
  resolver: Resolver;
7
8
  signer?: ISigner;
8
9
  };
9
- export type KindConfig<Reader extends BaseEventReader, Writer extends EventWriter<Reader>> = {
10
+ export type KindConfig<Reader extends BaseEventReader, Writer extends EventWriter<Reader>, Query extends EventQuery> = {
10
11
  kind: number;
11
12
  reader: new (kind: number, context: KindContext, event: TrustedEvent) => Reader;
12
13
  writer: new (kind: number, context: KindContext, reader?: Reader) => Writer;
14
+ query: new (kind: number, context: KindContext) => Query;
13
15
  };
14
16
  /**
15
- * Bundles a kind's number, reader, and writer classes.
17
+ * Bundles a kind's number, reader, writer, and query classes.
16
18
  *
17
19
  * Usage: `export const Profile = new KindFactory({kind: PROFILE, reader:
18
- * ProfileReader, writer: ProfileWriter})`, then `Profile.kind` reads the number and
19
- * `Profile.configure(context)` binds the app's dependencies once.
20
+ * ProfileReader, writer: ProfileWriter, query: ProfileQuery})`, then `Profile.kind`
21
+ * reads the number and `Profile.configure(context)` binds the app's dependencies once.
20
22
  */
21
- export declare class KindFactory<Reader extends BaseEventReader, Writer extends EventWriter<Reader>> {
22
- readonly config: KindConfig<Reader, Writer>;
23
- constructor(config: KindConfig<Reader, Writer>);
23
+ export declare class KindFactory<Reader extends BaseEventReader, Writer extends EventWriter<Reader>, Query extends EventQuery> {
24
+ readonly config: KindConfig<Reader, Writer, Query>;
25
+ constructor(config: KindConfig<Reader, Writer, Query>);
24
26
  get kind(): number;
25
- configure(context: KindContext): ConfiguredKind<Reader, Writer>;
27
+ configure(context: KindContext): ConfiguredKind<Reader, Writer, Query>;
26
28
  }
27
29
  /**
28
- * A kind bound to a `KindContext`. Produces readers and writers which share the
29
- * configured dependencies.
30
+ * A kind bound to a `KindContext`. Produces readers, writers, and queries which
31
+ * share the configured dependencies.
30
32
  */
31
- export declare class ConfiguredKind<Reader extends BaseEventReader, Writer extends EventWriter<Reader>> {
32
- readonly config: KindConfig<Reader, Writer>;
33
+ export declare class ConfiguredKind<Reader extends BaseEventReader, Writer extends EventWriter<Reader>, Query extends EventQuery> {
34
+ readonly config: KindConfig<Reader, Writer, Query>;
33
35
  readonly context: KindContext;
34
- constructor(config: KindConfig<Reader, Writer>, context: KindContext);
36
+ constructor(config: KindConfig<Reader, Writer, Query>, context: KindContext);
35
37
  get kind(): number;
36
38
  reader: (event: TrustedEvent) => Reader;
37
39
  writer: (reader?: Reader) => Writer;
40
+ query: () => Query;
38
41
  }
39
42
  //# sourceMappingURL=Kind.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Kind.d.ts","sourceRoot":"","sources":["../../../../../domain/src/core/Kind.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,YAAY,EAAE,QAAQ,EAAC,MAAM,gBAAgB,CAAA;AAC1D,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,kBAAkB,CAAA;AAC7C,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAA;AACrD,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAA;AAEjD,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,EAAE,QAAQ,CAAA;IAClB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,UAAU,CAAC,MAAM,SAAS,eAAe,EAAE,MAAM,SAAS,WAAW,CAAC,MAAM,CAAC,IAAI;IAC3F,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,KAAK,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,KAAK,MAAM,CAAA;IAC/E,MAAM,EAAE,KAAK,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;CAC5E,CAAA;AAED;;;;;;GAMG;AACH,qBAAa,WAAW,CAAC,MAAM,SAAS,eAAe,EAAE,MAAM,SAAS,WAAW,CAAC,MAAM,CAAC;IAC7E,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC;gBAAlC,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC;IAEvD,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,SAAS,CAAC,OAAO,EAAE,WAAW,GAAG,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC;CAGhE;AAED;;;GAGG;AACH,qBAAa,cAAc,CAAC,MAAM,SAAS,eAAe,EAAE,MAAM,SAAS,WAAW,CAAC,MAAM,CAAC;IAE1F,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC;IAC3C,QAAQ,CAAC,OAAO,EAAE,WAAW;gBADpB,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,EAClC,OAAO,EAAE,WAAW;IAG/B,IAAI,IAAI,IAAI,MAAM,CAEjB;IAKD,MAAM,GAAI,OAAO,YAAY,KAAG,MAAM,CACyB;IAG/D,MAAM,GAAI,SAAS,MAAM,KAAG,MAAM,CAC8B;CACjE"}
1
+ {"version":3,"file":"Kind.d.ts","sourceRoot":"","sources":["../../../../../domain/src/core/Kind.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,YAAY,EAAE,QAAQ,EAAC,MAAM,gBAAgB,CAAA;AAC1D,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,kBAAkB,CAAA;AAC7C,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAA;AACrD,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAA;AACjD,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAA;AAE/C,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,EAAE,QAAQ,CAAA;IAClB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,UAAU,CACpB,MAAM,SAAS,eAAe,EAC9B,MAAM,SAAS,WAAW,CAAC,MAAM,CAAC,EAClC,KAAK,SAAS,UAAU,IACtB;IACF,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,KAAK,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,KAAK,MAAM,CAAA;IAC/E,MAAM,EAAE,KAAK,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;IAC3E,KAAK,EAAE,KAAK,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,KAAK,KAAK,CAAA;CACzD,CAAA;AAED;;;;;;GAMG;AACH,qBAAa,WAAW,CACtB,MAAM,SAAS,eAAe,EAC9B,MAAM,SAAS,WAAW,CAAC,MAAM,CAAC,EAClC,KAAK,SAAS,UAAU;IAEZ,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC;gBAAzC,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC;IAE9D,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,SAAS,CAAC,OAAO,EAAE,WAAW,GAAG,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC;CAGvE;AAED;;;GAGG;AACH,qBAAa,cAAc,CACzB,MAAM,SAAS,eAAe,EAC9B,MAAM,SAAS,WAAW,CAAC,MAAM,CAAC,EAClC,KAAK,SAAS,UAAU;IAGtB,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC;IAClD,QAAQ,CAAC,OAAO,EAAE,WAAW;gBADpB,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EACzC,OAAO,EAAE,WAAW;IAG/B,IAAI,IAAI,IAAI,MAAM,CAEjB;IAKD,MAAM,GAAI,OAAO,YAAY,KAAG,MAAM,CACyB;IAG/D,MAAM,GAAI,SAAS,MAAM,KAAG,MAAM,CAC8B;IAIhE,KAAK,QAAO,KAAK,CAAyD;CAC3E"}
@@ -1,9 +1,9 @@
1
1
  /**
2
- * Bundles a kind's number, reader, and writer classes.
2
+ * Bundles a kind's number, reader, writer, and query classes.
3
3
  *
4
4
  * Usage: `export const Profile = new KindFactory({kind: PROFILE, reader:
5
- * ProfileReader, writer: ProfileWriter})`, then `Profile.kind` reads the number and
6
- * `Profile.configure(context)` binds the app's dependencies once.
5
+ * ProfileReader, writer: ProfileWriter, query: ProfileQuery})`, then `Profile.kind`
6
+ * reads the number and `Profile.configure(context)` binds the app's dependencies once.
7
7
  */
8
8
  export class KindFactory {
9
9
  config;
@@ -18,8 +18,8 @@ export class KindFactory {
18
18
  }
19
19
  }
20
20
  /**
21
- * A kind bound to a `KindContext`. Produces readers and writers which share the
22
- * configured dependencies.
21
+ * A kind bound to a `KindContext`. Produces readers, writers, and queries which
22
+ * share the configured dependencies.
23
23
  */
24
24
  export class ConfiguredKind {
25
25
  config;
@@ -37,5 +37,8 @@ export class ConfiguredKind {
37
37
  reader = (event) => new this.config.reader(this.config.kind, this.context, event);
38
38
  // Build a writer. Pass a reader to edit its event, or omit to draft a new one.
39
39
  writer = (reader) => new this.config.writer(this.config.kind, this.context, reader);
40
+ // Build a query. Its setters build up a filter; `render()` returns it along with
41
+ // the relays to request it from.
42
+ query = () => new this.config.query(this.config.kind, this.context);
40
43
  }
41
44
  //# sourceMappingURL=Kind.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Kind.js","sourceRoot":"","sources":["../../../../../domain/src/core/Kind.ts"],"names":[],"mappings":"AAgBA;;;;;;GAMG;AACH,MAAM,OAAO,WAAW;IACD;IAArB,YAAqB,MAAkC;QAAlC,WAAM,GAAN,MAAM,CAA4B;IAAG,CAAC;IAE3D,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAA;IACzB,CAAC;IAED,SAAS,CAAC,OAAoB;QAC5B,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACjD,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,cAAc;IAEd;IACA;IAFX,YACW,MAAkC,EAClC,OAAoB;QADpB,WAAM,GAAN,MAAM,CAA4B;QAClC,YAAO,GAAP,OAAO,CAAa;IAC5B,CAAC;IAEJ,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAA;IACzB,CAAC;IAED,+EAA+E;IAC/E,6EAA6E;IAC7E,qEAAqE;IACrE,MAAM,GAAG,CAAC,KAAmB,EAAU,EAAE,CACvC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IAE/D,+EAA+E;IAC/E,MAAM,GAAG,CAAC,MAAe,EAAU,EAAE,CACnC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;CACjE"}
1
+ {"version":3,"file":"Kind.js","sourceRoot":"","sources":["../../../../../domain/src/core/Kind.ts"],"names":[],"mappings":"AAsBA;;;;;;GAMG;AACH,MAAM,OAAO,WAAW;IAKD;IAArB,YAAqB,MAAyC;QAAzC,WAAM,GAAN,MAAM,CAAmC;IAAG,CAAC;IAElE,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAA;IACzB,CAAC;IAED,SAAS,CAAC,OAAoB;QAC5B,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACjD,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,cAAc;IAMd;IACA;IAFX,YACW,MAAyC,EACzC,OAAoB;QADpB,WAAM,GAAN,MAAM,CAAmC;QACzC,YAAO,GAAP,OAAO,CAAa;IAC5B,CAAC;IAEJ,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAA;IACzB,CAAC;IAED,+EAA+E;IAC/E,6EAA6E;IAC7E,qEAAqE;IACrE,MAAM,GAAG,CAAC,KAAmB,EAAU,EAAE,CACvC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IAE/D,+EAA+E;IAC/E,MAAM,GAAG,CAAC,MAAe,EAAU,EAAE,CACnC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAEhE,iFAAiF;IACjF,iCAAiC;IACjC,KAAK,GAAG,GAAU,EAAE,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;CAC3E"}
@@ -1,7 +1,12 @@
1
1
  export * from "./core/EventReader.js";
2
2
  export * from "./core/EventWriter.js";
3
+ export * from "./core/EventQuery.js";
3
4
  export * from "./core/Kind.js";
5
+ export * from "./behaviors/Client.js";
6
+ export * from "./behaviors/ContentWarning.js";
4
7
  export * from "./behaviors/Emoji.js";
8
+ export * from "./behaviors/Expiration.js";
9
+ export * from "./behaviors/Protected.js";
5
10
  export * from "./behaviors/ZapSplits.js";
6
11
  export * from "./other/Relay.js";
7
12
  export * from "./other/Zapper.js";
@@ -11,6 +16,7 @@ export * from "./kinds/BlockedRelayList.js";
11
16
  export * from "./kinds/BlossomServerList.js";
12
17
  export * from "./kinds/BookmarkList.js";
13
18
  export * from "./kinds/Classified.js";
19
+ export * from "./kinds/Command.js";
14
20
  export * from "./kinds/Comment.js";
15
21
  export * from "./kinds/CommunityList.js";
16
22
  export * from "./kinds/Delete.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../domain/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,sBAAsB,CAAA;AACpC,cAAc,0BAA0B,CAAA;AACxC,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,yBAAyB,CAAA;AACvC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,0BAA0B,CAAA;AACxC,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,cAAc,sBAAsB,CAAA;AACpC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,kCAAkC,CAAA;AAChD,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,yBAAyB,CAAA;AACvC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,2BAA2B,CAAA;AACzC,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,yBAAyB,CAAA;AACvC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,2BAA2B,CAAA;AACzC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,mBAAmB,CAAA;AACjC,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../domain/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA;AACrC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,sBAAsB,CAAA;AACpC,cAAc,2BAA2B,CAAA;AACzC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,yBAAyB,CAAA;AACvC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,0BAA0B,CAAA;AACxC,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,cAAc,sBAAsB,CAAA;AACpC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,kCAAkC,CAAA;AAChD,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,yBAAyB,CAAA;AACvC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,2BAA2B,CAAA;AACzC,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,yBAAyB,CAAA;AACvC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,2BAA2B,CAAA;AACzC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,mBAAmB,CAAA;AACjC,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA"}
@@ -1,7 +1,12 @@
1
1
  export * from "./core/EventReader.js";
2
2
  export * from "./core/EventWriter.js";
3
+ export * from "./core/EventQuery.js";
3
4
  export * from "./core/Kind.js";
5
+ export * from "./behaviors/Client.js";
6
+ export * from "./behaviors/ContentWarning.js";
4
7
  export * from "./behaviors/Emoji.js";
8
+ export * from "./behaviors/Expiration.js";
9
+ export * from "./behaviors/Protected.js";
5
10
  export * from "./behaviors/ZapSplits.js";
6
11
  export * from "./other/Relay.js";
7
12
  export * from "./other/Zapper.js";
@@ -11,6 +16,7 @@ export * from "./kinds/BlockedRelayList.js";
11
16
  export * from "./kinds/BlossomServerList.js";
12
17
  export * from "./kinds/BookmarkList.js";
13
18
  export * from "./kinds/Classified.js";
19
+ export * from "./kinds/Command.js";
14
20
  export * from "./kinds/Comment.js";
15
21
  export * from "./kinds/CommunityList.js";
16
22
  export * from "./kinds/Delete.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../domain/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,sBAAsB,CAAA;AACpC,cAAc,0BAA0B,CAAA;AACxC,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,yBAAyB,CAAA;AACvC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,0BAA0B,CAAA;AACxC,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,cAAc,sBAAsB,CAAA;AACpC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,kCAAkC,CAAA;AAChD,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,yBAAyB,CAAA;AACvC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,2BAA2B,CAAA;AACzC,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,yBAAyB,CAAA;AACvC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,2BAA2B,CAAA;AACzC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,mBAAmB,CAAA;AACjC,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../domain/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA;AACrC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,sBAAsB,CAAA;AACpC,cAAc,2BAA2B,CAAA;AACzC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,yBAAyB,CAAA;AACvC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,0BAA0B,CAAA;AACxC,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,cAAc,sBAAsB,CAAA;AACpC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,kCAAkC,CAAA;AAChD,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,yBAAyB,CAAA;AACvC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,2BAA2B,CAAA;AACzC,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,yBAAyB,CAAA;AACvC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,2BAA2B,CAAA;AACzC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,mBAAmB,CAAA;AACjC,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA"}
@@ -1,5 +1,6 @@
1
1
  import { AsyncEventReader } from "../core/EventReader.js";
2
2
  import { EventWriter } from "../core/EventWriter.js";
3
+ import { EventQuery } from "../core/EventQuery.js";
3
4
  import { KindFactory } from "../core/Kind.js";
4
5
  import type { KindContext } from "../core/Kind.js";
5
6
  export declare class AppDataReader extends AsyncEventReader {
@@ -18,5 +19,8 @@ export declare class AppDataWriter extends EventWriter<AppDataReader> {
18
19
  validate(): void;
19
20
  renderContent(): Promise<string>;
20
21
  }
21
- export declare const AppData: KindFactory<AppDataReader, AppDataWriter>;
22
+ export declare class AppDataQuery extends EventQuery {
23
+ protected renderRoutes(): import("@welshman/util").RelaySelection[];
24
+ }
25
+ export declare const AppData: KindFactory<AppDataReader, AppDataWriter, AppDataQuery>;
22
26
  //# sourceMappingURL=AppData.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AppData.d.ts","sourceRoot":"","sources":["../../../../../domain/src/kinds/AppData.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,gBAAgB,EAAC,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAC,WAAW,EAAC,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAA;AAIhD,qBAAa,aAAc,SAAQ,gBAAgB;IACjD,SAAS,UAAQ;IACjB,SAAS,UAAQ;IAEjB,SAAS,CAAC,IAAI,EAAE,OAAO,CAAY;IAE7B,KAAK;IAgCX,MAAM,CAAC,CAAC,KACc,CAAC,GAAG,SAAS;CAEpC;AAED,qBAAa,aAAc,SAAQ,WAAW,CAAC,aAAa,CAAC;IAC3D,MAAM,EAAE,OAAO,CAAY;IAC3B,SAAS,UAAQ;gBAEL,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,aAAa;IAOtE,SAAS,CAAC,MAAM,EAAE,OAAO;IAMzB,YAAY,CAAC,SAAS,EAAE,OAAO;IAM/B,QAAQ;IAQF,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;CAoBvC;AAED,eAAO,MAAM,OAAO,2CAIlB,CAAA"}
1
+ {"version":3,"file":"AppData.d.ts","sourceRoot":"","sources":["../../../../../domain/src/kinds/AppData.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,gBAAgB,EAAC,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAC,WAAW,EAAC,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAA;AAIhD,qBAAa,aAAc,SAAQ,gBAAgB;IACjD,SAAS,UAAQ;IACjB,SAAS,UAAQ;IAEjB,SAAS,CAAC,IAAI,EAAE,OAAO,CAAY;IAE7B,KAAK;IAgCX,MAAM,CAAC,CAAC,KACc,CAAC,GAAG,SAAS;CAEpC;AAED,qBAAa,aAAc,SAAQ,WAAW,CAAC,aAAa,CAAC;IAC3D,MAAM,EAAE,OAAO,CAAY;IAC3B,SAAS,UAAQ;gBAEL,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,aAAa;IAOtE,SAAS,CAAC,MAAM,EAAE,OAAO;IAMzB,YAAY,CAAC,SAAS,EAAE,OAAO;IAM/B,QAAQ;IAQF,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;CAoBvC;AAED,qBAAa,YAAa,SAAQ,UAAU;IAC1C,SAAS,CAAC,YAAY;CAGvB;AAED,eAAO,MAAM,OAAO,yDAKlB,CAAA"}
@@ -3,6 +3,7 @@ import { decrypt } from "@welshman/signer";
3
3
  import { APP_DATA } from "@welshman/util";
4
4
  import { AsyncEventReader } from "../core/EventReader.js";
5
5
  import { EventWriter } from "../core/EventWriter.js";
6
+ import { EventQuery } from "../core/EventQuery.js";
6
7
  import { KindFactory } from "../core/Kind.js";
7
8
  // NIP-78 kind-30078 arbitrary app data, keyed by `d` tag. Content is JSON,
8
9
  // optionally NIP-44 encrypted to the author.
@@ -77,9 +78,15 @@ export class AppDataWriter extends EventWriter {
77
78
  return signer.nip44.encrypt(pubkey, json);
78
79
  }
79
80
  }
81
+ export class AppDataQuery extends EventQuery {
82
+ renderRoutes() {
83
+ return this.authorRoutes();
84
+ }
85
+ }
80
86
  export const AppData = new KindFactory({
81
87
  kind: APP_DATA,
82
88
  reader: AppDataReader,
83
89
  writer: AppDataWriter,
90
+ query: AppDataQuery,
84
91
  });
85
92
  //# sourceMappingURL=AppData.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AppData.js","sourceRoot":"","sources":["../../../../../domain/src/kinds/AppData.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AppData.js","sourceRoot":"","sources":["../../../../../domain/src/kinds/AppData.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { EventReader } from "../core/EventReader.js";
2
2
  import { EventWriter } from "../core/EventWriter.js";
3
+ import { EventQuery } from "../core/EventQuery.js";
3
4
  import { KindFactory } from "../core/Kind.js";
4
5
  export declare class ArticleReader extends EventReader {
5
6
  title(): string | undefined;
@@ -15,5 +16,8 @@ export declare class ArticleWriter extends EventWriter<ArticleReader> {
15
16
  setPublishedAt(publishedAt: number): this;
16
17
  setTopics(topics: string[]): this;
17
18
  }
18
- export declare const Article: KindFactory<ArticleReader, ArticleWriter>;
19
+ export declare class ArticleQuery extends EventQuery {
20
+ protected renderRoutes(): import("@welshman/util").RelaySelection[];
21
+ }
22
+ export declare const Article: KindFactory<ArticleReader, ArticleWriter, ArticleQuery>;
19
23
  //# sourceMappingURL=Article.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Article.d.ts","sourceRoot":"","sources":["../../../../../domain/src/kinds/Article.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,aAAc,SAAQ,WAAW;IAC5C,KAAK;IAIL,OAAO;IAIP,KAAK;IAML,WAAW;IAMX,MAAM;CAGP;AAED,qBAAa,aAAc,SAAQ,WAAW,CAAC,aAAa,CAAC;IAC3D,QAAQ,CAAC,KAAK,EAAE,MAAM;IAItB,UAAU,CAAC,OAAO,EAAE,MAAM;IAI1B,QAAQ,CAAC,KAAK,EAAE,MAAM;IAItB,cAAc,CAAC,WAAW,EAAE,MAAM;IAIlC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE;CAG3B;AAED,eAAO,MAAM,OAAO,2CAIlB,CAAA"}
1
+ {"version":3,"file":"Article.d.ts","sourceRoot":"","sources":["../../../../../domain/src/kinds/Article.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,WAAW,EAAC,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAC,WAAW,EAAC,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAA;AAG3C,qBAAa,aAAc,SAAQ,WAAW;IAC5C,KAAK;IAIL,OAAO;IAIP,KAAK;IAML,WAAW;IAMX,MAAM;CAGP;AAED,qBAAa,aAAc,SAAQ,WAAW,CAAC,aAAa,CAAC;IAC3D,QAAQ,CAAC,KAAK,EAAE,MAAM;IAItB,UAAU,CAAC,OAAO,EAAE,MAAM;IAI1B,QAAQ,CAAC,KAAK,EAAE,MAAM;IAItB,cAAc,CAAC,WAAW,EAAE,MAAM;IAIlC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE;CAG3B;AAED,qBAAa,YAAa,SAAQ,UAAU;IAC1C,SAAS,CAAC,YAAY;CAGvB;AAED,eAAO,MAAM,OAAO,yDAKlB,CAAA"}
@@ -2,6 +2,7 @@ import { spec } from "@welshman/lib";
2
2
  import { LONG_FORM, tagSpec, tagValue, tagValues, topicTags } from "@welshman/util";
3
3
  import { EventReader } from "../core/EventReader.js";
4
4
  import { EventWriter } from "../core/EventWriter.js";
5
+ import { EventQuery } from "../core/EventQuery.js";
5
6
  import { KindFactory } from "../core/Kind.js";
6
7
  // NIP-23 kind-30023 long-form article.
7
8
  export class ArticleReader extends EventReader {
@@ -41,9 +42,15 @@ export class ArticleWriter extends EventWriter {
41
42
  return this.dropTags(spec(["t"])).addTags(...topics.map(topic => ["t", topic]));
42
43
  }
43
44
  }
45
+ export class ArticleQuery extends EventQuery {
46
+ renderRoutes() {
47
+ return [...this.authorRoutes(), ...this.mentionRoutes()];
48
+ }
49
+ }
44
50
  export const Article = new KindFactory({
45
51
  kind: LONG_FORM,
46
52
  reader: ArticleReader,
47
53
  writer: ArticleWriter,
54
+ query: ArticleQuery,
48
55
  });
49
56
  //# sourceMappingURL=Article.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Article.js","sourceRoot":"","sources":["../../../../../domain/src/kinds/Article.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,eAAe,CAAA;AAClC,OAAO,EAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAC,MAAM,gBAAgB,CAAA;AACjF,OAAO,EAAC,WAAW,EAAC,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAC,WAAW,EAAC,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAA;AAE3C,uCAAuC;AACvC,MAAM,OAAO,aAAc,SAAQ,WAAW;IAC5C,KAAK;QACH,OAAO,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACpD,CAAC;IAED,OAAO;QACL,OAAO,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACtD,CAAC;IAED,KAAK;QACH,OAAO,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACpD,CAAC;IAED,wFAAwF;IACxF,8DAA8D;IAC9D,WAAW;QACT,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QAEhF,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAA;IACrD,CAAC;IAED,MAAM;QACJ,OAAO,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACnD,CAAC;CACF;AAED,MAAM,OAAO,aAAc,SAAQ,WAA0B;IAC3D,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,UAAU,CAAC,OAAe;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAA;IACvE,CAAC;IAED,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,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;IAC7F,CAAC;IAED,SAAS,CAAC,MAAgB;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAA;IACjF,CAAC;CACF;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC;IACrC,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,aAAa;IACrB,MAAM,EAAE,aAAa;CACtB,CAAC,CAAA"}
1
+ {"version":3,"file":"Article.js","sourceRoot":"","sources":["../../../../../domain/src/kinds/Article.ts"],"names":[],"mappings":"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"}