@atproto/ozone 0.1.172 → 0.1.174

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 (450) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/api/index.d.ts.map +1 -1
  3. package/dist/api/index.js +40 -0
  4. package/dist/api/index.js.map +1 -1
  5. package/dist/api/moderation/emitEvent.d.ts.map +1 -1
  6. package/dist/api/moderation/emitEvent.js +31 -0
  7. package/dist/api/moderation/emitEvent.js.map +1 -1
  8. package/dist/api/queue/assignModerator.d.ts +4 -0
  9. package/dist/api/queue/assignModerator.d.ts.map +1 -0
  10. package/dist/api/queue/assignModerator.js +28 -0
  11. package/dist/api/queue/assignModerator.js.map +1 -0
  12. package/dist/api/queue/createQueue.d.ts +4 -0
  13. package/dist/api/queue/createQueue.d.ts.map +1 -0
  14. package/dist/api/queue/createQueue.js +44 -0
  15. package/dist/api/queue/createQueue.js.map +1 -0
  16. package/dist/api/queue/deleteQueue.d.ts +4 -0
  17. package/dist/api/queue/deleteQueue.d.ts.map +1 -0
  18. package/dist/api/queue/deleteQueue.js +40 -0
  19. package/dist/api/queue/deleteQueue.js.map +1 -0
  20. package/dist/api/queue/getAssignments.d.ts +4 -0
  21. package/dist/api/queue/getAssignments.d.ts.map +1 -0
  22. package/dist/api/queue/getAssignments.js +19 -0
  23. package/dist/api/queue/getAssignments.js.map +1 -0
  24. package/dist/api/queue/listQueues.d.ts +4 -0
  25. package/dist/api/queue/listQueues.d.ts.map +1 -0
  26. package/dist/api/queue/listQueues.js +29 -0
  27. package/dist/api/queue/listQueues.js.map +1 -0
  28. package/dist/api/queue/routeReports.d.ts +4 -0
  29. package/dist/api/queue/routeReports.d.ts.map +1 -0
  30. package/dist/api/queue/routeReports.js +33 -0
  31. package/dist/api/queue/routeReports.js.map +1 -0
  32. package/dist/api/queue/unassignModerator.d.ts +4 -0
  33. package/dist/api/queue/unassignModerator.d.ts.map +1 -0
  34. package/dist/api/queue/unassignModerator.js +24 -0
  35. package/dist/api/queue/unassignModerator.js.map +1 -0
  36. package/dist/api/queue/updateQueue.d.ts +4 -0
  37. package/dist/api/queue/updateQueue.d.ts.map +1 -0
  38. package/dist/api/queue/updateQueue.js +39 -0
  39. package/dist/api/queue/updateQueue.js.map +1 -0
  40. package/dist/api/report/assignModerator.d.ts +4 -0
  41. package/dist/api/report/assignModerator.d.ts.map +1 -0
  42. package/dist/api/report/assignModerator.js +33 -0
  43. package/dist/api/report/assignModerator.js.map +1 -0
  44. package/dist/api/report/createActivity.d.ts +4 -0
  45. package/dist/api/report/createActivity.d.ts.map +1 -0
  46. package/dist/api/report/createActivity.js +44 -0
  47. package/dist/api/report/createActivity.js.map +1 -0
  48. package/dist/api/report/getAssignments.d.ts +4 -0
  49. package/dist/api/report/getAssignments.d.ts.map +1 -0
  50. package/dist/api/report/getAssignments.js +19 -0
  51. package/dist/api/report/getAssignments.js.map +1 -0
  52. package/dist/api/report/getHistoricalStats.d.ts +4 -0
  53. package/dist/api/report/getHistoricalStats.d.ts.map +1 -0
  54. package/dist/api/report/getHistoricalStats.js +32 -0
  55. package/dist/api/report/getHistoricalStats.js.map +1 -0
  56. package/dist/api/report/getLatestReport.d.ts +4 -0
  57. package/dist/api/report/getLatestReport.d.ts.map +1 -0
  58. package/dist/api/report/getLatestReport.js +31 -0
  59. package/dist/api/report/getLatestReport.js.map +1 -0
  60. package/dist/api/report/getLiveStats.d.ts +4 -0
  61. package/dist/api/report/getLiveStats.d.ts.map +1 -0
  62. package/dist/api/report/getLiveStats.js +25 -0
  63. package/dist/api/report/getLiveStats.js.map +1 -0
  64. package/dist/api/report/getReport.d.ts +4 -0
  65. package/dist/api/report/getReport.d.ts.map +1 -0
  66. package/dist/api/report/getReport.js +35 -0
  67. package/dist/api/report/getReport.js.map +1 -0
  68. package/dist/api/report/listActivities.d.ts +4 -0
  69. package/dist/api/report/listActivities.d.ts.map +1 -0
  70. package/dist/api/report/listActivities.js +25 -0
  71. package/dist/api/report/listActivities.js.map +1 -0
  72. package/dist/api/report/queryReports.d.ts +4 -0
  73. package/dist/api/report/queryReports.d.ts.map +1 -0
  74. package/dist/api/report/queryReports.js +29 -0
  75. package/dist/api/report/queryReports.js.map +1 -0
  76. package/dist/api/report/reassignQueue.d.ts +4 -0
  77. package/dist/api/report/reassignQueue.d.ts.map +1 -0
  78. package/dist/api/report/reassignQueue.js +45 -0
  79. package/dist/api/report/reassignQueue.js.map +1 -0
  80. package/dist/api/report/refreshStats.d.ts +4 -0
  81. package/dist/api/report/refreshStats.d.ts.map +1 -0
  82. package/dist/api/report/refreshStats.js +26 -0
  83. package/dist/api/report/refreshStats.js.map +1 -0
  84. package/dist/api/report/unassignModerator.d.ts +4 -0
  85. package/dist/api/report/unassignModerator.d.ts.map +1 -0
  86. package/dist/api/report/unassignModerator.js +21 -0
  87. package/dist/api/report/unassignModerator.js.map +1 -0
  88. package/dist/api/util.d.ts +2 -0
  89. package/dist/api/util.d.ts.map +1 -1
  90. package/dist/api/util.js +9 -1
  91. package/dist/api/util.js.map +1 -1
  92. package/dist/assignment/index.d.ts +89 -0
  93. package/dist/assignment/index.d.ts.map +1 -0
  94. package/dist/assignment/index.js +537 -0
  95. package/dist/assignment/index.js.map +1 -0
  96. package/dist/config/config.d.ts +14 -0
  97. package/dist/config/config.d.ts.map +1 -1
  98. package/dist/config/config.js +9 -0
  99. package/dist/config/config.js.map +1 -1
  100. package/dist/config/env.d.ts +3 -0
  101. package/dist/config/env.d.ts.map +1 -1
  102. package/dist/config/env.js +3 -0
  103. package/dist/config/env.js.map +1 -1
  104. package/dist/context.d.ts +9 -0
  105. package/dist/context.d.ts.map +1 -1
  106. package/dist/context.js +31 -10
  107. package/dist/context.js.map +1 -1
  108. package/dist/daemon/context.d.ts +6 -0
  109. package/dist/daemon/context.d.ts.map +1 -1
  110. package/dist/daemon/context.js +28 -4
  111. package/dist/daemon/context.js.map +1 -1
  112. package/dist/daemon/event-reverser.d.ts +1 -0
  113. package/dist/daemon/event-reverser.d.ts.map +1 -1
  114. package/dist/daemon/event-reverser.js +42 -1
  115. package/dist/daemon/event-reverser.js.map +1 -1
  116. package/dist/daemon/job-cursor.d.ts +5 -0
  117. package/dist/daemon/job-cursor.d.ts.map +1 -0
  118. package/dist/daemon/job-cursor.js +28 -0
  119. package/dist/daemon/job-cursor.js.map +1 -0
  120. package/dist/daemon/queue-router.d.ts +17 -0
  121. package/dist/daemon/queue-router.d.ts.map +1 -0
  122. package/dist/daemon/queue-router.js +114 -0
  123. package/dist/daemon/queue-router.js.map +1 -0
  124. package/dist/daemon/stats-computer.d.ts +51 -0
  125. package/dist/daemon/stats-computer.d.ts.map +1 -0
  126. package/dist/daemon/stats-computer.js +117 -0
  127. package/dist/daemon/stats-computer.js.map +1 -0
  128. package/dist/daemon/strike-expiry-processor.d.ts.map +1 -1
  129. package/dist/daemon/strike-expiry-processor.js +4 -19
  130. package/dist/daemon/strike-expiry-processor.js.map +1 -1
  131. package/dist/db/migrations/20260219T164523000Z-create-report-table.d.ts +4 -0
  132. package/dist/db/migrations/20260219T164523000Z-create-report-table.d.ts.map +1 -0
  133. package/dist/db/migrations/20260219T164523000Z-create-report-table.js +126 -0
  134. package/dist/db/migrations/20260219T164523000Z-create-report-table.js.map +1 -0
  135. package/dist/db/migrations/20260219T165302248Z-moderator-assignment.d.ts +4 -0
  136. package/dist/db/migrations/20260219T165302248Z-moderator-assignment.d.ts.map +1 -0
  137. package/dist/db/migrations/20260219T165302248Z-moderator-assignment.js +35 -0
  138. package/dist/db/migrations/20260219T165302248Z-moderator-assignment.js.map +1 -0
  139. package/dist/db/migrations/20260225T000000000Z-add-report-queue-table.d.ts +4 -0
  140. package/dist/db/migrations/20260225T000000000Z-add-report-queue-table.d.ts.map +1 -0
  141. package/dist/db/migrations/20260225T000000000Z-add-report-queue-table.js +36 -0
  142. package/dist/db/migrations/20260225T000000000Z-add-report-queue-table.js.map +1 -0
  143. package/dist/db/migrations/20260313T000000000Z-add-report-activity-table.d.ts +4 -0
  144. package/dist/db/migrations/20260313T000000000Z-add-report-activity-table.d.ts.map +1 -0
  145. package/dist/db/migrations/20260313T000000000Z-add-report-activity-table.js +39 -0
  146. package/dist/db/migrations/20260313T000000000Z-add-report-activity-table.js.map +1 -0
  147. package/dist/db/migrations/20260318T152058935Z-add-report-stat.d.ts +4 -0
  148. package/dist/db/migrations/20260318T152058935Z-add-report-stat.d.ts.map +1 -0
  149. package/dist/db/migrations/20260318T152058935Z-add-report-stat.js +34 -0
  150. package/dist/db/migrations/20260318T152058935Z-add-report-stat.js.map +1 -0
  151. package/dist/db/migrations/20260428T000000000Z-add-expiring-tag-table.d.ts +4 -0
  152. package/dist/db/migrations/20260428T000000000Z-add-expiring-tag-table.d.ts.map +1 -0
  153. package/dist/db/migrations/20260428T000000000Z-add-expiring-tag-table.js +32 -0
  154. package/dist/db/migrations/20260428T000000000Z-add-expiring-tag-table.js.map +1 -0
  155. package/dist/db/migrations/index.d.ts +6 -0
  156. package/dist/db/migrations/index.d.ts.map +1 -1
  157. package/dist/db/migrations/index.js +7 -1
  158. package/dist/db/migrations/index.js.map +1 -1
  159. package/dist/db/pagination.d.ts +31 -0
  160. package/dist/db/pagination.d.ts.map +1 -1
  161. package/dist/db/pagination.js +74 -1
  162. package/dist/db/pagination.js.map +1 -1
  163. package/dist/db/schema/expiring_tag.d.ts +15 -0
  164. package/dist/db/schema/expiring_tag.d.ts.map +1 -0
  165. package/dist/db/schema/expiring_tag.js +5 -0
  166. package/dist/db/schema/expiring_tag.js.map +1 -0
  167. package/dist/db/schema/index.d.ts +7 -1
  168. package/dist/db/schema/index.d.ts.map +1 -1
  169. package/dist/db/schema/index.js.map +1 -1
  170. package/dist/db/schema/moderator_assignment.d.ts +14 -0
  171. package/dist/db/schema/moderator_assignment.d.ts.map +1 -0
  172. package/dist/db/schema/moderator_assignment.js +5 -0
  173. package/dist/db/schema/moderator_assignment.js.map +1 -0
  174. package/dist/db/schema/report.d.ts +25 -0
  175. package/dist/db/schema/report.d.ts.map +1 -0
  176. package/dist/db/schema/report.js +5 -0
  177. package/dist/db/schema/report.js.map +1 -0
  178. package/dist/db/schema/report_activity.d.ts +18 -0
  179. package/dist/db/schema/report_activity.d.ts.map +1 -0
  180. package/dist/db/schema/report_activity.js +5 -0
  181. package/dist/db/schema/report_activity.js.map +1 -0
  182. package/dist/db/schema/report_queue.d.ts +19 -0
  183. package/dist/db/schema/report_queue.d.ts.map +1 -0
  184. package/dist/db/schema/report_queue.js +5 -0
  185. package/dist/db/schema/report_queue.js.map +1 -0
  186. package/dist/db/schema/report_stat.d.ts +20 -0
  187. package/dist/db/schema/report_stat.d.ts.map +1 -0
  188. package/dist/db/schema/report_stat.js +5 -0
  189. package/dist/db/schema/report_stat.js.map +1 -0
  190. package/dist/lexicon/index.d.ts +50 -0
  191. package/dist/lexicon/index.d.ts.map +1 -1
  192. package/dist/lexicon/index.js +120 -2
  193. package/dist/lexicon/index.js.map +1 -1
  194. package/dist/lexicon/lexicons.d.ts +11255 -7885
  195. package/dist/lexicon/lexicons.d.ts.map +1 -1
  196. package/dist/lexicon/lexicons.js +1900 -120
  197. package/dist/lexicon/lexicons.js.map +1 -1
  198. package/dist/lexicon/types/app/bsky/embed/external.d.ts +2 -0
  199. package/dist/lexicon/types/app/bsky/embed/external.d.ts.map +1 -1
  200. package/dist/lexicon/types/app/bsky/embed/external.js.map +1 -1
  201. package/dist/lexicon/types/chat/bsky/actor/defs.d.ts +8 -2
  202. package/dist/lexicon/types/chat/bsky/actor/defs.d.ts.map +1 -1
  203. package/dist/lexicon/types/chat/bsky/actor/defs.js +9 -0
  204. package/dist/lexicon/types/chat/bsky/actor/defs.js.map +1 -1
  205. package/dist/lexicon/types/chat/bsky/convo/defs.d.ts +37 -10
  206. package/dist/lexicon/types/chat/bsky/convo/defs.d.ts.map +1 -1
  207. package/dist/lexicon/types/chat/bsky/convo/defs.js +9 -0
  208. package/dist/lexicon/types/chat/bsky/convo/defs.js.map +1 -1
  209. package/dist/lexicon/types/chat/bsky/convo/getMessages.d.ts +3 -0
  210. package/dist/lexicon/types/chat/bsky/convo/getMessages.d.ts.map +1 -1
  211. package/dist/lexicon/types/chat/bsky/convo/getMessages.js.map +1 -1
  212. package/dist/lexicon/types/tools/ozone/moderation/defs.d.ts +2 -0
  213. package/dist/lexicon/types/tools/ozone/moderation/defs.d.ts.map +1 -1
  214. package/dist/lexicon/types/tools/ozone/moderation/defs.js.map +1 -1
  215. package/dist/lexicon/types/tools/ozone/moderation/emitEvent.d.ts +19 -0
  216. package/dist/lexicon/types/tools/ozone/moderation/emitEvent.d.ts.map +1 -1
  217. package/dist/lexicon/types/tools/ozone/moderation/emitEvent.js +9 -0
  218. package/dist/lexicon/types/tools/ozone/moderation/emitEvent.js.map +1 -1
  219. package/dist/lexicon/types/tools/ozone/queue/assignModerator.d.ts +27 -0
  220. package/dist/lexicon/types/tools/ozone/queue/assignModerator.d.ts.map +1 -0
  221. package/dist/lexicon/types/tools/ozone/queue/assignModerator.js +7 -0
  222. package/dist/lexicon/types/tools/ozone/queue/assignModerator.js.map +1 -0
  223. package/dist/lexicon/types/tools/ozone/queue/createQueue.d.ts +35 -0
  224. package/dist/lexicon/types/tools/ozone/queue/createQueue.d.ts.map +1 -0
  225. package/dist/lexicon/types/tools/ozone/queue/createQueue.js +7 -0
  226. package/dist/lexicon/types/tools/ozone/queue/createQueue.js.map +1 -0
  227. package/dist/lexicon/types/tools/ozone/queue/defs.d.ts +62 -0
  228. package/dist/lexicon/types/tools/ozone/queue/defs.d.ts.map +1 -0
  229. package/dist/lexicon/types/tools/ozone/queue/defs.js +34 -0
  230. package/dist/lexicon/types/tools/ozone/queue/defs.js.map +1 -0
  231. package/dist/lexicon/types/tools/ozone/queue/deleteQueue.d.ts +29 -0
  232. package/dist/lexicon/types/tools/ozone/queue/deleteQueue.d.ts.map +1 -0
  233. package/dist/lexicon/types/tools/ozone/queue/deleteQueue.js +7 -0
  234. package/dist/lexicon/types/tools/ozone/queue/deleteQueue.js.map +1 -0
  235. package/dist/lexicon/types/tools/ozone/queue/getAssignments.d.ts +30 -0
  236. package/dist/lexicon/types/tools/ozone/queue/getAssignments.d.ts.map +1 -0
  237. package/dist/lexicon/types/tools/ozone/queue/getAssignments.js +7 -0
  238. package/dist/lexicon/types/tools/ozone/queue/getAssignments.js.map +1 -0
  239. package/dist/lexicon/types/tools/ozone/queue/listQueues.d.ts +32 -0
  240. package/dist/lexicon/types/tools/ozone/queue/listQueues.d.ts.map +1 -0
  241. package/dist/lexicon/types/tools/ozone/queue/listQueues.js +7 -0
  242. package/dist/lexicon/types/tools/ozone/queue/listQueues.js.map +1 -0
  243. package/dist/lexicon/types/tools/ozone/queue/routeReports.d.ts +31 -0
  244. package/dist/lexicon/types/tools/ozone/queue/routeReports.d.ts.map +1 -0
  245. package/dist/lexicon/types/tools/ozone/queue/routeReports.js +7 -0
  246. package/dist/lexicon/types/tools/ozone/queue/routeReports.js.map +1 -0
  247. package/dist/lexicon/types/tools/ozone/queue/unassignModerator.d.ts +18 -0
  248. package/dist/lexicon/types/tools/ozone/queue/unassignModerator.d.ts.map +1 -0
  249. package/dist/lexicon/types/tools/ozone/queue/unassignModerator.js +7 -0
  250. package/dist/lexicon/types/tools/ozone/queue/unassignModerator.js.map +1 -0
  251. package/dist/lexicon/types/tools/ozone/queue/updateQueue.d.ts +32 -0
  252. package/dist/lexicon/types/tools/ozone/queue/updateQueue.d.ts.map +1 -0
  253. package/dist/lexicon/types/tools/ozone/queue/updateQueue.js +7 -0
  254. package/dist/lexicon/types/tools/ozone/queue/updateQueue.js.map +1 -0
  255. package/dist/lexicon/types/tools/ozone/report/assignModerator.d.ts +31 -0
  256. package/dist/lexicon/types/tools/ozone/report/assignModerator.d.ts.map +1 -0
  257. package/dist/lexicon/types/tools/ozone/report/assignModerator.js +7 -0
  258. package/dist/lexicon/types/tools/ozone/report/assignModerator.js.map +1 -0
  259. package/dist/lexicon/types/tools/ozone/report/createActivity.d.ts +37 -0
  260. package/dist/lexicon/types/tools/ozone/report/createActivity.d.ts.map +1 -0
  261. package/dist/lexicon/types/tools/ozone/report/createActivity.js +7 -0
  262. package/dist/lexicon/types/tools/ozone/report/createActivity.js.map +1 -0
  263. package/dist/lexicon/types/tools/ozone/report/defs.d.ts +185 -0
  264. package/dist/lexicon/types/tools/ozone/report/defs.d.ts.map +1 -1
  265. package/dist/lexicon/types/tools/ozone/report/defs.js +108 -0
  266. package/dist/lexicon/types/tools/ozone/report/defs.js.map +1 -1
  267. package/dist/lexicon/types/tools/ozone/report/getAssignments.d.ts +30 -0
  268. package/dist/lexicon/types/tools/ozone/report/getAssignments.d.ts.map +1 -0
  269. package/dist/lexicon/types/tools/ozone/report/getAssignments.js +7 -0
  270. package/dist/lexicon/types/tools/ozone/report/getAssignments.js.map +1 -0
  271. package/dist/lexicon/types/tools/ozone/report/getHistoricalStats.d.ts +36 -0
  272. package/dist/lexicon/types/tools/ozone/report/getHistoricalStats.d.ts.map +1 -0
  273. package/dist/lexicon/types/tools/ozone/report/getHistoricalStats.js +7 -0
  274. package/dist/lexicon/types/tools/ozone/report/getHistoricalStats.js.map +1 -0
  275. package/dist/lexicon/types/tools/ozone/report/getLatestReport.d.ts +21 -0
  276. package/dist/lexicon/types/tools/ozone/report/getLatestReport.d.ts.map +1 -0
  277. package/dist/lexicon/types/tools/ozone/report/getLatestReport.js +7 -0
  278. package/dist/lexicon/types/tools/ozone/report/getLatestReport.js.map +1 -0
  279. package/dist/lexicon/types/tools/ozone/report/getLiveStats.d.ts +27 -0
  280. package/dist/lexicon/types/tools/ozone/report/getLiveStats.d.ts.map +1 -0
  281. package/dist/lexicon/types/tools/ozone/report/getLiveStats.js +7 -0
  282. package/dist/lexicon/types/tools/ozone/report/getLiveStats.js.map +1 -0
  283. package/dist/lexicon/types/tools/ozone/report/getReport.d.ts +22 -0
  284. package/dist/lexicon/types/tools/ozone/report/getReport.d.ts.map +1 -0
  285. package/dist/lexicon/types/tools/ozone/report/getReport.js +7 -0
  286. package/dist/lexicon/types/tools/ozone/report/getReport.js.map +1 -0
  287. package/dist/lexicon/types/tools/ozone/report/listActivities.d.ts +26 -0
  288. package/dist/lexicon/types/tools/ozone/report/listActivities.d.ts.map +1 -0
  289. package/dist/lexicon/types/tools/ozone/report/listActivities.js +7 -0
  290. package/dist/lexicon/types/tools/ozone/report/listActivities.js.map +1 -0
  291. package/dist/lexicon/types/tools/ozone/report/queryReports.d.ts +48 -0
  292. package/dist/lexicon/types/tools/ozone/report/queryReports.d.ts.map +1 -0
  293. package/dist/lexicon/types/tools/ozone/report/queryReports.js +7 -0
  294. package/dist/lexicon/types/tools/ozone/report/queryReports.js.map +1 -0
  295. package/dist/lexicon/types/tools/ozone/report/reassignQueue.d.ts +31 -0
  296. package/dist/lexicon/types/tools/ozone/report/reassignQueue.d.ts.map +1 -0
  297. package/dist/lexicon/types/tools/ozone/report/reassignQueue.js +7 -0
  298. package/dist/lexicon/types/tools/ozone/report/reassignQueue.js.map +1 -0
  299. package/dist/lexicon/types/tools/ozone/report/refreshStats.d.ts +28 -0
  300. package/dist/lexicon/types/tools/ozone/report/refreshStats.d.ts.map +1 -0
  301. package/dist/lexicon/types/tools/ozone/report/refreshStats.js +7 -0
  302. package/dist/lexicon/types/tools/ozone/report/refreshStats.js.map +1 -0
  303. package/dist/lexicon/types/tools/ozone/report/unassignModerator.d.ts +25 -0
  304. package/dist/lexicon/types/tools/ozone/report/unassignModerator.d.ts.map +1 -0
  305. package/dist/lexicon/types/tools/ozone/report/unassignModerator.js +7 -0
  306. package/dist/lexicon/types/tools/ozone/report/unassignModerator.js.map +1 -0
  307. package/dist/mod-service/expiring-tags.d.ts +27 -0
  308. package/dist/mod-service/expiring-tags.d.ts.map +1 -0
  309. package/dist/mod-service/expiring-tags.js +62 -0
  310. package/dist/mod-service/expiring-tags.js.map +1 -0
  311. package/dist/mod-service/index.d.ts +3 -1
  312. package/dist/mod-service/index.d.ts.map +1 -1
  313. package/dist/mod-service/index.js +61 -2
  314. package/dist/mod-service/index.js.map +1 -1
  315. package/dist/mod-service/report.d.ts +64 -0
  316. package/dist/mod-service/report.d.ts.map +1 -0
  317. package/dist/mod-service/report.js +282 -0
  318. package/dist/mod-service/report.js.map +1 -0
  319. package/dist/mod-service/status.d.ts +24 -0
  320. package/dist/mod-service/status.d.ts.map +1 -1
  321. package/dist/queue/service.d.ts +86 -0
  322. package/dist/queue/service.d.ts.map +1 -0
  323. package/dist/queue/service.js +430 -0
  324. package/dist/queue/service.js.map +1 -0
  325. package/dist/report/activity.d.ts +77 -0
  326. package/dist/report/activity.d.ts.map +1 -0
  327. package/dist/report/activity.js +141 -0
  328. package/dist/report/activity.js.map +1 -0
  329. package/dist/report/handle-report-update.d.ts +47 -0
  330. package/dist/report/handle-report-update.d.ts.map +1 -0
  331. package/dist/report/handle-report-update.js +178 -0
  332. package/dist/report/handle-report-update.js.map +1 -0
  333. package/dist/report/reassign.d.ts +10 -0
  334. package/dist/report/reassign.d.ts.map +1 -0
  335. package/dist/report/reassign.js +75 -0
  336. package/dist/report/reassign.js.map +1 -0
  337. package/dist/report/stats.d.ts +105 -0
  338. package/dist/report/stats.d.ts.map +1 -0
  339. package/dist/report/stats.js +619 -0
  340. package/dist/report/stats.js.map +1 -0
  341. package/dist/report/views.d.ts +111 -0
  342. package/dist/report/views.d.ts.map +1 -0
  343. package/dist/report/views.js +156 -0
  344. package/dist/report/views.js.map +1 -0
  345. package/dist/team/index.d.ts +1 -0
  346. package/dist/team/index.d.ts.map +1 -1
  347. package/dist/team/index.js +11 -0
  348. package/dist/team/index.js.map +1 -1
  349. package/package.json +3 -3
  350. package/src/api/index.ts +40 -0
  351. package/src/api/moderation/emitEvent.ts +38 -0
  352. package/src/api/queue/assignModerator.ts +31 -0
  353. package/src/api/queue/createQueue.ts +62 -0
  354. package/src/api/queue/deleteQueue.ts +56 -0
  355. package/src/api/queue/getAssignments.ts +19 -0
  356. package/src/api/queue/listQueues.ts +39 -0
  357. package/src/api/queue/routeReports.ts +44 -0
  358. package/src/api/queue/unassignModerator.ts +26 -0
  359. package/src/api/queue/updateQueue.ts +54 -0
  360. package/src/api/report/assignModerator.ts +36 -0
  361. package/src/api/report/createActivity.ts +57 -0
  362. package/src/api/report/getAssignments.ts +20 -0
  363. package/src/api/report/getHistoricalStats.ts +41 -0
  364. package/src/api/report/getLatestReport.ts +44 -0
  365. package/src/api/report/getLiveStats.ts +26 -0
  366. package/src/api/report/getReport.ts +55 -0
  367. package/src/api/report/listActivities.ts +34 -0
  368. package/src/api/report/queryReports.ts +44 -0
  369. package/src/api/report/reassignQueue.ts +68 -0
  370. package/src/api/report/refreshStats.ts +27 -0
  371. package/src/api/report/unassignModerator.ts +21 -0
  372. package/src/api/util.ts +12 -0
  373. package/src/assignment/index.ts +731 -0
  374. package/src/config/config.ts +27 -0
  375. package/src/config/env.ts +8 -0
  376. package/src/context.ts +31 -0
  377. package/src/daemon/context.ts +34 -0
  378. package/src/daemon/event-reverser.ts +50 -1
  379. package/src/daemon/job-cursor.ts +33 -0
  380. package/src/daemon/queue-router.ts +101 -0
  381. package/src/daemon/stats-computer.ts +101 -0
  382. package/src/daemon/strike-expiry-processor.ts +4 -20
  383. package/src/db/migrations/20260219T164523000Z-create-report-table.ts +155 -0
  384. package/src/db/migrations/20260219T165302248Z-moderator-assignment.ts +42 -0
  385. package/src/db/migrations/20260225T000000000Z-add-report-queue-table.ts +41 -0
  386. package/src/db/migrations/20260313T000000000Z-add-report-activity-table.ts +48 -0
  387. package/src/db/migrations/20260318T152058935Z-add-report-stat.ts +35 -0
  388. package/src/db/migrations/20260428T000000000Z-add-expiring-tag-table.ts +32 -0
  389. package/src/db/migrations/index.ts +6 -0
  390. package/src/db/pagination.ts +85 -0
  391. package/src/db/schema/expiring_tag.ts +17 -0
  392. package/src/db/schema/index.ts +13 -1
  393. package/src/db/schema/moderator_assignment.ts +16 -0
  394. package/src/db/schema/report.ts +27 -0
  395. package/src/db/schema/report_activity.ts +22 -0
  396. package/src/db/schema/report_queue.ts +21 -0
  397. package/src/db/schema/report_stat.ts +27 -0
  398. package/src/lexicon/index.ts +280 -0
  399. package/src/lexicon/lexicons.ts +2083 -214
  400. package/src/lexicon/types/app/bsky/embed/external.ts +2 -0
  401. package/src/lexicon/types/chat/bsky/actor/defs.ts +17 -1
  402. package/src/lexicon/types/chat/bsky/convo/defs.ts +50 -10
  403. package/src/lexicon/types/chat/bsky/convo/getMessages.ts +3 -0
  404. package/src/lexicon/types/tools/ozone/moderation/defs.ts +2 -0
  405. package/src/lexicon/types/tools/ozone/moderation/emitEvent.ts +24 -0
  406. package/src/lexicon/types/tools/ozone/queue/assignModerator.ts +46 -0
  407. package/src/lexicon/types/tools/ozone/queue/createQueue.ts +54 -0
  408. package/src/lexicon/types/tools/ozone/queue/defs.ts +99 -0
  409. package/src/lexicon/types/tools/ozone/queue/deleteQueue.ts +48 -0
  410. package/src/lexicon/types/tools/ozone/queue/getAssignments.ts +48 -0
  411. package/src/lexicon/types/tools/ozone/queue/listQueues.ts +50 -0
  412. package/src/lexicon/types/tools/ozone/queue/routeReports.ts +50 -0
  413. package/src/lexicon/types/tools/ozone/queue/unassignModerator.ts +37 -0
  414. package/src/lexicon/types/tools/ozone/queue/updateQueue.ts +51 -0
  415. package/src/lexicon/types/tools/ozone/report/assignModerator.ts +50 -0
  416. package/src/lexicon/types/tools/ozone/report/createActivity.ts +60 -0
  417. package/src/lexicon/types/tools/ozone/report/defs.ts +327 -0
  418. package/src/lexicon/types/tools/ozone/report/getAssignments.ts +48 -0
  419. package/src/lexicon/types/tools/ozone/report/getHistoricalStats.ts +54 -0
  420. package/src/lexicon/types/tools/ozone/report/getLatestReport.ts +39 -0
  421. package/src/lexicon/types/tools/ozone/report/getLiveStats.ts +45 -0
  422. package/src/lexicon/types/tools/ozone/report/getReport.ts +38 -0
  423. package/src/lexicon/types/tools/ozone/report/listActivities.ts +44 -0
  424. package/src/lexicon/types/tools/ozone/report/queryReports.ts +72 -0
  425. package/src/lexicon/types/tools/ozone/report/reassignQueue.ts +55 -0
  426. package/src/lexicon/types/tools/ozone/report/refreshStats.ts +46 -0
  427. package/src/lexicon/types/tools/ozone/report/unassignModerator.ts +44 -0
  428. package/src/mod-service/expiring-tags.ts +98 -0
  429. package/src/mod-service/index.ts +71 -3
  430. package/src/mod-service/report.ts +408 -0
  431. package/src/queue/service.ts +599 -0
  432. package/src/report/activity.ts +234 -0
  433. package/src/report/handle-report-update.ts +209 -0
  434. package/src/report/reassign.ts +109 -0
  435. package/src/report/stats.ts +850 -0
  436. package/src/report/views.ts +241 -0
  437. package/src/team/index.ts +11 -0
  438. package/tests/expiring-tags.test.ts +231 -0
  439. package/tests/get-report.test.ts +136 -0
  440. package/tests/query-reports.test.ts +608 -0
  441. package/tests/queue-assignment.test.ts +428 -0
  442. package/tests/queue-router.test.ts +306 -0
  443. package/tests/queues.test.ts +690 -0
  444. package/tests/report-action.test.ts +308 -0
  445. package/tests/report-activity.test.ts +567 -0
  446. package/tests/report-assignment.test.ts +517 -0
  447. package/tests/report-reassign-queue.test.ts +340 -0
  448. package/tests/report-routing.test.ts +245 -0
  449. package/tests/report-stats.test.ts +545 -0
  450. package/tsconfig.build.tsbuildinfo +1 -1
@@ -0,0 +1,28 @@
1
+ export type QueryParams = {};
2
+ export interface InputSchema {
3
+ /** Start date for recomputation, inclusive (YYYY-MM-DD). */
4
+ startDate: string;
5
+ /** End date for recomputation, inclusive (YYYY-MM-DD). */
6
+ endDate: string;
7
+ /** Optional list of queue IDs to recompute. Omit to recompute all groups. */
8
+ queueIds?: number[];
9
+ }
10
+ export interface OutputSchema {
11
+ }
12
+ export interface HandlerInput {
13
+ encoding: 'application/json';
14
+ body: InputSchema;
15
+ }
16
+ export interface HandlerSuccess {
17
+ encoding: 'application/json';
18
+ body: OutputSchema;
19
+ headers?: {
20
+ [key: string]: string;
21
+ };
22
+ }
23
+ export interface HandlerError {
24
+ status: number;
25
+ message?: string;
26
+ }
27
+ export type HandlerOutput = HandlerError | HandlerSuccess;
28
+ //# sourceMappingURL=refreshStats.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refreshStats.d.ts","sourceRoot":"","sources":["../../../../../../src/lexicon/types/tools/ozone/report/refreshStats.ts"],"names":[],"mappings":"AAgBA,MAAM,MAAM,WAAW,GAAG,EAAE,CAAA;AAE5B,MAAM,WAAW,WAAW;IAC1B,4DAA4D;IAC5D,SAAS,EAAE,MAAM,CAAA;IACjB,0DAA0D;IAC1D,OAAO,EAAE,MAAM,CAAA;IACf,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CACpB;AAED,MAAM,WAAW,YAAY;CAAG;AAEhC,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,IAAI,EAAE,WAAW,CAAA;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,IAAI,EAAE,YAAY,CAAA;IAClB,OAAO,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAA;CACpC;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,cAAc,CAAA"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const lexicons_1 = require("../../../../lexicons");
4
+ const util_1 = require("../../../../util");
5
+ const is$typed = util_1.is$typed, validate = lexicons_1.validate;
6
+ const id = 'tools.ozone.report.refreshStats';
7
+ //# sourceMappingURL=refreshStats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refreshStats.js","sourceRoot":"","sources":["../../../../../../src/lexicon/types/tools/ozone/report/refreshStats.ts"],"names":[],"mappings":";;AAKA,mDAA4D;AAC5D,2CAIyB;AAEzB,MAAM,QAAQ,GAAG,eAAS,EACxB,QAAQ,GAAG,mBAAS,CAAA;AACtB,MAAM,EAAE,GAAG,iCAAiC,CAAA","sourcesContent":["/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { type ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { CID } from 'multiformats/cid'\nimport { validate as _validate } from '../../../../lexicons'\nimport {\n type $Typed,\n is$typed as _is$typed,\n type OmitKey,\n} from '../../../../util'\n\nconst is$typed = _is$typed,\n validate = _validate\nconst id = 'tools.ozone.report.refreshStats'\n\nexport type QueryParams = {}\n\nexport interface InputSchema {\n /** Start date for recomputation, inclusive (YYYY-MM-DD). */\n startDate: string\n /** End date for recomputation, inclusive (YYYY-MM-DD). */\n endDate: string\n /** Optional list of queue IDs to recompute. Omit to recompute all groups. */\n queueIds?: number[]\n}\n\nexport interface OutputSchema {}\n\nexport interface HandlerInput {\n encoding: 'application/json'\n body: InputSchema\n}\n\nexport interface HandlerSuccess {\n encoding: 'application/json'\n body: OutputSchema\n headers?: { [key: string]: string }\n}\n\nexport interface HandlerError {\n status: number\n message?: string\n}\n\nexport type HandlerOutput = HandlerError | HandlerSuccess\n"]}
@@ -0,0 +1,25 @@
1
+ import type * as ToolsOzoneReportDefs from './defs.js';
2
+ export type QueryParams = {};
3
+ export interface InputSchema {
4
+ /** The ID of the report to unassign. */
5
+ reportId: number;
6
+ }
7
+ export type OutputSchema = ToolsOzoneReportDefs.AssignmentView;
8
+ export interface HandlerInput {
9
+ encoding: 'application/json';
10
+ body: InputSchema;
11
+ }
12
+ export interface HandlerSuccess {
13
+ encoding: 'application/json';
14
+ body: OutputSchema;
15
+ headers?: {
16
+ [key: string]: string;
17
+ };
18
+ }
19
+ export interface HandlerError {
20
+ status: number;
21
+ message?: string;
22
+ error?: 'InvalidAssignment';
23
+ }
24
+ export type HandlerOutput = HandlerError | HandlerSuccess;
25
+ //# sourceMappingURL=unassignModerator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unassignModerator.d.ts","sourceRoot":"","sources":["../../../../../../src/lexicon/types/tools/ozone/report/unassignModerator.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,KAAK,oBAAoB,MAAM,WAAW,CAAA;AAMtD,MAAM,MAAM,WAAW,GAAG,EAAE,CAAA;AAE5B,MAAM,WAAW,WAAW;IAC1B,wCAAwC;IACxC,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,MAAM,YAAY,GAAG,oBAAoB,CAAC,cAAc,CAAA;AAE9D,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,IAAI,EAAE,WAAW,CAAA;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,IAAI,EAAE,YAAY,CAAA;IAClB,OAAO,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAA;CACpC;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,mBAAmB,CAAA;CAC5B;AAED,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,cAAc,CAAA"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const lexicons_1 = require("../../../../lexicons");
4
+ const util_1 = require("../../../../util");
5
+ const is$typed = util_1.is$typed, validate = lexicons_1.validate;
6
+ const id = 'tools.ozone.report.unassignModerator';
7
+ //# sourceMappingURL=unassignModerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unassignModerator.js","sourceRoot":"","sources":["../../../../../../src/lexicon/types/tools/ozone/report/unassignModerator.ts"],"names":[],"mappings":";;AAKA,mDAA4D;AAC5D,2CAIyB;AAGzB,MAAM,QAAQ,GAAG,eAAS,EACxB,QAAQ,GAAG,mBAAS,CAAA;AACtB,MAAM,EAAE,GAAG,sCAAsC,CAAA","sourcesContent":["/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { type ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { CID } from 'multiformats/cid'\nimport { validate as _validate } from '../../../../lexicons'\nimport {\n type $Typed,\n is$typed as _is$typed,\n type OmitKey,\n} from '../../../../util'\nimport type * as ToolsOzoneReportDefs from './defs.js'\n\nconst is$typed = _is$typed,\n validate = _validate\nconst id = 'tools.ozone.report.unassignModerator'\n\nexport type QueryParams = {}\n\nexport interface InputSchema {\n /** The ID of the report to unassign. */\n reportId: number\n}\n\nexport type OutputSchema = ToolsOzoneReportDefs.AssignmentView\n\nexport interface HandlerInput {\n encoding: 'application/json'\n body: InputSchema\n}\n\nexport interface HandlerSuccess {\n encoding: 'application/json'\n body: OutputSchema\n headers?: { [key: string]: string }\n}\n\nexport interface HandlerError {\n status: number\n message?: string\n error?: 'InvalidAssignment'\n}\n\nexport type HandlerOutput = HandlerError | HandlerSuccess\n"]}
@@ -0,0 +1,27 @@
1
+ import { Selectable } from 'kysely';
2
+ import { Database } from '../db';
3
+ import { ExpiringTag } from '../db/schema/expiring_tag';
4
+ export type ExpiringTagRow = Selectable<ExpiringTag>;
5
+ export type ExpiringTagGroup = {
6
+ did: string;
7
+ recordPath: string;
8
+ createdBy: string;
9
+ tags: string[];
10
+ ids: number[];
11
+ };
12
+ export declare function insertExpiringTags(db: Database, params: {
13
+ eventId: number;
14
+ did: string;
15
+ recordPath: string;
16
+ tags: string[];
17
+ expiresAt: string;
18
+ createdBy: string;
19
+ }): Promise<void>;
20
+ export declare function removeExpiringTags(db: Database, params: {
21
+ did: string;
22
+ recordPath: string;
23
+ tags: string[];
24
+ }): Promise<void>;
25
+ export declare function deleteExpiringTagsByIds(db: Database, ids: number[]): Promise<void>;
26
+ export declare function getExpiredTags(db: Database): Promise<ExpiringTagGroup[]>;
27
+ //# sourceMappingURL=expiring-tags.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expiring-tags.d.ts","sourceRoot":"","sources":["../../src/mod-service/expiring-tags.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAEvD,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,WAAW,CAAC,CAAA;AAEpD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,GAAG,EAAE,MAAM,EAAE,CAAA;CACd,CAAA;AAED,wBAAsB,kBAAkB,CACtC,EAAE,EAAE,QAAQ,EACZ,MAAM,EAAE;IACN,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB,GACA,OAAO,CAAC,IAAI,CAAC,CAcf;AAED,wBAAsB,kBAAkB,CACtC,EAAE,EAAE,QAAQ,EACZ,MAAM,EAAE;IACN,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,EAAE,CAAA;CACf,GACA,OAAO,CAAC,IAAI,CAAC,CAOf;AAED,wBAAsB,uBAAuB,CAC3C,EAAE,EAAE,QAAQ,EACZ,GAAG,EAAE,MAAM,EAAE,GACZ,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAsB,cAAc,CAClC,EAAE,EAAE,QAAQ,GACX,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAgC7B"}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.insertExpiringTags = insertExpiringTags;
4
+ exports.removeExpiringTags = removeExpiringTags;
5
+ exports.deleteExpiringTagsByIds = deleteExpiringTagsByIds;
6
+ exports.getExpiredTags = getExpiredTags;
7
+ async function insertExpiringTags(db, params) {
8
+ await db.db
9
+ .insertInto('expiring_tag')
10
+ .values(params.tags.map((tag) => ({
11
+ eventId: params.eventId,
12
+ did: params.did,
13
+ recordPath: params.recordPath,
14
+ tag,
15
+ expiresAt: params.expiresAt,
16
+ createdBy: params.createdBy,
17
+ })))
18
+ .execute();
19
+ }
20
+ async function removeExpiringTags(db, params) {
21
+ await db.db
22
+ .deleteFrom('expiring_tag')
23
+ .where('did', '=', params.did)
24
+ .where('recordPath', '=', params.recordPath)
25
+ .where('tag', 'in', params.tags)
26
+ .execute();
27
+ }
28
+ async function deleteExpiringTagsByIds(db, ids) {
29
+ await db.db.deleteFrom('expiring_tag').where('id', 'in', ids).execute();
30
+ }
31
+ async function getExpiredTags(db) {
32
+ const now = new Date().toISOString();
33
+ const rows = await db.db
34
+ .selectFrom('expiring_tag')
35
+ .where('expiresAt', '<', now)
36
+ .selectAll()
37
+ .execute();
38
+ if (!rows.length)
39
+ return [];
40
+ // Group by (did, recordPath, createdBy) so each reversal event has the correct author
41
+ const grouped = new Map();
42
+ for (const row of rows) {
43
+ const key = `${row.did}|${row.recordPath}|${row.createdBy}`;
44
+ let group = grouped.get(key);
45
+ if (!group) {
46
+ group = {
47
+ did: row.did,
48
+ recordPath: row.recordPath,
49
+ createdBy: row.createdBy,
50
+ tags: [],
51
+ ids: [],
52
+ };
53
+ grouped.set(key, group);
54
+ }
55
+ if (!group.tags.includes(row.tag)) {
56
+ group.tags.push(row.tag);
57
+ }
58
+ group.ids.push(row.id);
59
+ }
60
+ return [...grouped.values()];
61
+ }
62
+ //# sourceMappingURL=expiring-tags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expiring-tags.js","sourceRoot":"","sources":["../../src/mod-service/expiring-tags.ts"],"names":[],"mappings":";;AAcA,gDAwBC;AAED,gDAcC;AAED,0DAKC;AAED,wCAkCC;AAnFM,KAAK,UAAU,kBAAkB,CACtC,EAAY,EACZ,MAOC;IAED,MAAM,EAAE,CAAC,EAAE;SACR,UAAU,CAAC,cAAc,CAAC;SAC1B,MAAM,CACL,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACxB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,GAAG;QACH,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;KAC5B,CAAC,CAAC,CACJ;SACA,OAAO,EAAE,CAAA;AACd,CAAC;AAEM,KAAK,UAAU,kBAAkB,CACtC,EAAY,EACZ,MAIC;IAED,MAAM,EAAE,CAAC,EAAE;SACR,UAAU,CAAC,cAAc,CAAC;SAC1B,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC;SAC7B,KAAK,CAAC,YAAY,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;SAC3C,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC;SAC/B,OAAO,EAAE,CAAA;AACd,CAAC;AAEM,KAAK,UAAU,uBAAuB,CAC3C,EAAY,EACZ,GAAa;IAEb,MAAM,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,CAAA;AACzE,CAAC;AAEM,KAAK,UAAU,cAAc,CAClC,EAAY;IAEZ,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IACpC,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,EAAE;SACrB,UAAU,CAAC,cAAc,CAAC;SAC1B,KAAK,CAAC,WAAW,EAAE,GAAG,EAAE,GAAG,CAAC;SAC5B,SAAS,EAAE;SACX,OAAO,EAAE,CAAA;IAEZ,IAAI,CAAC,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAA;IAE3B,sFAAsF;IACtF,MAAM,OAAO,GAAG,IAAI,GAAG,EAA4B,CAAA;IACnD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,SAAS,EAAE,CAAA;QAC3D,IAAI,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC5B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG;gBACN,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,UAAU,EAAE,GAAG,CAAC,UAAU;gBAC1B,SAAS,EAAE,GAAG,CAAC,SAAS;gBACxB,IAAI,EAAE,EAAE;gBACR,GAAG,EAAE,EAAE;aACR,CAAA;YACD,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QACzB,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC1B,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACxB,CAAC;IAED,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;AAC9B,CAAC","sourcesContent":["import { Selectable } from 'kysely'\nimport { Database } from '../db'\nimport { ExpiringTag } from '../db/schema/expiring_tag'\n\nexport type ExpiringTagRow = Selectable<ExpiringTag>\n\nexport type ExpiringTagGroup = {\n did: string\n recordPath: string\n createdBy: string\n tags: string[]\n ids: number[]\n}\n\nexport async function insertExpiringTags(\n db: Database,\n params: {\n eventId: number\n did: string\n recordPath: string\n tags: string[]\n expiresAt: string\n createdBy: string\n },\n): Promise<void> {\n await db.db\n .insertInto('expiring_tag')\n .values(\n params.tags.map((tag) => ({\n eventId: params.eventId,\n did: params.did,\n recordPath: params.recordPath,\n tag,\n expiresAt: params.expiresAt,\n createdBy: params.createdBy,\n })),\n )\n .execute()\n}\n\nexport async function removeExpiringTags(\n db: Database,\n params: {\n did: string\n recordPath: string\n tags: string[]\n },\n): Promise<void> {\n await db.db\n .deleteFrom('expiring_tag')\n .where('did', '=', params.did)\n .where('recordPath', '=', params.recordPath)\n .where('tag', 'in', params.tags)\n .execute()\n}\n\nexport async function deleteExpiringTagsByIds(\n db: Database,\n ids: number[],\n): Promise<void> {\n await db.db.deleteFrom('expiring_tag').where('id', 'in', ids).execute()\n}\n\nexport async function getExpiredTags(\n db: Database,\n): Promise<ExpiringTagGroup[]> {\n const now = new Date().toISOString()\n const rows = await db.db\n .selectFrom('expiring_tag')\n .where('expiresAt', '<', now)\n .selectAll()\n .execute()\n\n if (!rows.length) return []\n\n // Group by (did, recordPath, createdBy) so each reversal event has the correct author\n const grouped = new Map<string, ExpiringTagGroup>()\n for (const row of rows) {\n const key = `${row.did}|${row.recordPath}|${row.createdBy}`\n let group = grouped.get(key)\n if (!group) {\n group = {\n did: row.did,\n recordPath: row.recordPath,\n createdBy: row.createdBy,\n tags: [],\n ids: [],\n }\n grouped.set(key, group)\n }\n if (!group.tags.includes(row.tag)) {\n group.tags.push(row.tag)\n }\n group.ids.push(row.id)\n }\n\n return [...grouped.values()]\n}\n"]}
@@ -16,7 +16,7 @@ import { Main as StrongRef } from '../lexicon/types/com/atproto/repo/strongRef';
16
16
  import { QueryParams as QueryStatusParams } from '../lexicon/types/tools/ozone/moderation/queryStatuses';
17
17
  import { StrikeService, StrikeServiceCreator } from './strike';
18
18
  import { ModSubject, RecordSubject, RepoSubject } from './subject';
19
- import { ModEventType, ModerationEventRow, ModerationSubjectStatusRow, ModerationSubjectStatusRowWithHandle, ReporterStats, ReporterStatsResult, ReversibleModerationEvent } from './types';
19
+ import { ModEventType, ModerationEventRow, ModerationEventRowWithHandle, ModerationSubjectStatusRow, ModerationSubjectStatusRowWithHandle, ReporterStats, ReporterStatsResult, ReversibleModerationEvent } from './types';
20
20
  import { AuthHeaders, ModerationViews } from './views';
21
21
  export type ModerationServiceCreator = (db: Database) => ModerationService;
22
22
  export declare class ModerationService {
@@ -65,6 +65,7 @@ export declare class ModerationService {
65
65
  cursor?: string;
66
66
  events: ModerationEventRow[];
67
67
  }>;
68
+ getEventsByIds(ids: number[]): Promise<ModerationEventRowWithHandle[]>;
68
69
  getReport(id: number): Promise<ModerationEventRow | undefined>;
69
70
  getCurrentStatus(subject: {
70
71
  did: string;
@@ -173,6 +174,7 @@ export declare class ModerationService {
173
174
  }>;
174
175
  getStatus(subject: ModSubject): Promise<ModerationSubjectStatusRow | null>;
175
176
  isReportingMutedForSubject(did: string): Promise<boolean>;
177
+ isSubjectMuted(did: string): Promise<boolean>;
176
178
  formatAndCreateLabels(uri: string, cid: string | null, labels: {
177
179
  create?: string[];
178
180
  negate?: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mod-service/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mod-service/index.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,7 @@ const lexicons_1 = require("../lexicon/lexicons");
13
13
  const defs_1 = require("../lexicon/types/tools/ozone/moderation/defs");
14
14
  const logger_1 = require("../logger");
15
15
  const util_2 = require("../util");
16
+ const expiring_tags_1 = require("./expiring-tags");
16
17
  const status_1 = require("./status");
17
18
  const subject_1 = require("./subject");
18
19
  const util_3 = require("./util");
@@ -264,6 +265,26 @@ class ModerationService {
264
265
  }));
265
266
  return { cursor: keyset.packFromResult(result), events: resultWithHandles };
266
267
  }
268
+ async getEventsByIds(ids) {
269
+ if (!ids.length)
270
+ return [];
271
+ const result = await this.db.db
272
+ .selectFrom('moderation_event')
273
+ .selectAll()
274
+ .where('id', 'in', ids)
275
+ .execute();
276
+ if (!result.length)
277
+ return [];
278
+ const infos = await this.views.getAccoutInfosByDid([
279
+ ...result.map((row) => row.subjectDid),
280
+ ...result.map((row) => row.createdBy),
281
+ ]);
282
+ return result.map((r) => ({
283
+ ...r,
284
+ creatorHandle: infos.get(r.createdBy)?.handle,
285
+ subjectHandle: infos.get(r.subjectDid)?.handle,
286
+ }));
287
+ }
267
288
  async getReport(id) {
268
289
  return await this.db.db
269
290
  .selectFrom('moderation_event')
@@ -432,6 +453,13 @@ class ModerationService {
432
453
  if (isReportingMuted) {
433
454
  meta.isReporterMuted = true;
434
455
  }
456
+ // Also capture whether the subject was muted at event-creation time, so
457
+ // the queue-router daemon can populate report.isMuted later without
458
+ // racing against subsequent mute/unmute changes.
459
+ const isSubjectMuted = await this.isSubjectMuted(subject.did);
460
+ if (isSubjectMuted) {
461
+ meta.isSubjectMuted = true;
462
+ }
435
463
  }
436
464
  const subjectInfo = subject.info();
437
465
  // Store severityLevel, strikeCount, and strikeExpiresAt if provided
@@ -493,6 +521,27 @@ class ModerationService {
493
521
  .returningAll()
494
522
  .executeTakeFirstOrThrow();
495
523
  const subjectStatus = await (0, status_1.adjustModerationSubjectStatus)(this.db, modEvent, subject.blobCids);
524
+ // Manage expiring tag rows for temporary tags
525
+ if ((0, defs_1.isModEventTag)(event)) {
526
+ if (event.durationInHours && event.add.length > 0) {
527
+ const expiresAt = (0, common_1.addHoursToDate)(event.durationInHours, createdAt).toISOString();
528
+ await (0, expiring_tags_1.insertExpiringTags)(this.db, {
529
+ eventId: modEvent.id,
530
+ did: subjectInfo.subjectDid,
531
+ recordPath: subjectInfo.subjectUri ?? '',
532
+ tags: event.add,
533
+ expiresAt,
534
+ createdBy,
535
+ });
536
+ }
537
+ if (event.remove.length > 0) {
538
+ await (0, expiring_tags_1.removeExpiringTags)(this.db, {
539
+ did: subjectInfo.subjectDid,
540
+ recordPath: subjectInfo.subjectUri ?? '',
541
+ tags: event.remove,
542
+ });
543
+ }
544
+ }
496
545
  if ((0, defs_1.isAgeAssurancePurgeEvent)(event)) {
497
546
  await this.purgeAgeAssuranceEvents(subjectInfo.subjectDid);
498
547
  }
@@ -728,7 +777,7 @@ class ModerationService {
728
777
  }
729
778
  async report(info) {
730
779
  const { reasonType, reason, reportedBy, createdAt = new Date(), subject, modTool, } = info;
731
- const result = await this.logEvent({
780
+ return await this.logEvent({
732
781
  event: {
733
782
  $type: 'tools.ozone.moderation.defs#modEventReport',
734
783
  reportType: reasonType,
@@ -739,7 +788,6 @@ class ModerationService {
739
788
  createdAt,
740
789
  modTool,
741
790
  });
742
- return result;
743
791
  }
744
792
  async getSubjectStatuses({ queueCount, queueIndex, queueSeed = '', includeAllUserRecords, cursor, limit = 50, takendown, appealed, reviewState, reviewedAfter, reviewedBefore, reportedAfter, reportedBefore, includeMuted = false, hostingDeletedBefore, hostingDeletedAfter, hostingUpdatedBefore, hostingUpdatedAfter, hostingStatuses, onlyMuted = false, ignoreSubjects, sortDirection = 'desc', lastReviewedBy, sortField = 'lastReportedAt', subject, tags, excludeTags, collections, subjectType, minAccountSuspendCount, minReportedRecordsCount, minTakendownRecordsCount, minPriorityScore, minStrikeCount, ageAssuranceState, }) {
745
793
  let builder = (0, status_1.moderationSubjectStatusQueryBuilder)(this.db.db);
@@ -926,6 +974,17 @@ class ModerationService {
926
974
  .executeTakeFirst();
927
975
  return !!result;
928
976
  }
977
+ // Check if a subject (the account being reported) has an active mute
978
+ async isSubjectMuted(did) {
979
+ const result = await this.db.db
980
+ .selectFrom('moderation_subject_status')
981
+ .where('did', '=', did)
982
+ .where('recordPath', '=', '')
983
+ .where('muteUntil', '>', new Date().toISOString())
984
+ .select((0, kysely_1.sql) `true`.as('status'))
985
+ .executeTakeFirst();
986
+ return !!result;
987
+ }
929
988
  async formatAndCreateLabels(uri, cid, labels, durationInHours) {
930
989
  const exp = durationInHours !== undefined
931
990
  ? (0, common_1.addHoursToDate)(durationInHours).toISOString()