@atproto/ozone 0.1.174 → 0.1.175

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 (2229) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/bin/migration-create.ts +1 -1
  3. package/dist/api/chat/getActorMetadata.d.ts +2 -2
  4. package/dist/api/chat/getActorMetadata.d.ts.map +1 -1
  5. package/dist/api/chat/getActorMetadata.js +5 -8
  6. package/dist/api/chat/getActorMetadata.js.map +1 -1
  7. package/dist/api/chat/getMessageContext.d.ts +2 -2
  8. package/dist/api/chat/getMessageContext.d.ts.map +1 -1
  9. package/dist/api/chat/getMessageContext.js +6 -9
  10. package/dist/api/chat/getMessageContext.js.map +1 -1
  11. package/dist/api/chat/index.d.ts +2 -2
  12. package/dist/api/chat/index.d.ts.map +1 -1
  13. package/dist/api/chat/index.js +5 -11
  14. package/dist/api/chat/index.js.map +1 -1
  15. package/dist/api/communication/createTemplate.d.ts +2 -2
  16. package/dist/api/communication/createTemplate.d.ts.map +1 -1
  17. package/dist/api/communication/createTemplate.js +7 -10
  18. package/dist/api/communication/createTemplate.js.map +1 -1
  19. package/dist/api/communication/deleteTemplate.d.ts +2 -2
  20. package/dist/api/communication/deleteTemplate.d.ts.map +1 -1
  21. package/dist/api/communication/deleteTemplate.js +3 -6
  22. package/dist/api/communication/deleteTemplate.js.map +1 -1
  23. package/dist/api/communication/listTemplates.d.ts +2 -2
  24. package/dist/api/communication/listTemplates.d.ts.map +1 -1
  25. package/dist/api/communication/listTemplates.js +3 -6
  26. package/dist/api/communication/listTemplates.js.map +1 -1
  27. package/dist/api/communication/updateTemplate.d.ts +2 -2
  28. package/dist/api/communication/updateTemplate.d.ts.map +1 -1
  29. package/dist/api/communication/updateTemplate.js +8 -11
  30. package/dist/api/communication/updateTemplate.js.map +1 -1
  31. package/dist/api/health.d.ts +1 -1
  32. package/dist/api/health.d.ts.map +1 -1
  33. package/dist/api/health.js +5 -9
  34. package/dist/api/health.js.map +1 -1
  35. package/dist/api/index.d.ts +4 -4
  36. package/dist/api/index.d.ts.map +1 -1
  37. package/dist/api/index.js +137 -177
  38. package/dist/api/index.js.map +1 -1
  39. package/dist/api/label/fetchLabels.d.ts +2 -2
  40. package/dist/api/label/fetchLabels.d.ts.map +1 -1
  41. package/dist/api/label/fetchLabels.js +1 -4
  42. package/dist/api/label/fetchLabels.js.map +1 -1
  43. package/dist/api/label/queryLabels.d.ts +2 -2
  44. package/dist/api/label/queryLabels.d.ts.map +1 -1
  45. package/dist/api/label/queryLabels.js +6 -9
  46. package/dist/api/label/queryLabels.js.map +1 -1
  47. package/dist/api/label/subscribeLabels.d.ts +2 -2
  48. package/dist/api/label/subscribeLabels.d.ts.map +1 -1
  49. package/dist/api/label/subscribeLabels.js +5 -8
  50. package/dist/api/label/subscribeLabels.js.map +1 -1
  51. package/dist/api/moderation/cancelScheduledActions.d.ts +2 -2
  52. package/dist/api/moderation/cancelScheduledActions.d.ts.map +1 -1
  53. package/dist/api/moderation/cancelScheduledActions.js +8 -11
  54. package/dist/api/moderation/cancelScheduledActions.js.map +1 -1
  55. package/dist/api/moderation/emitEvent.d.ts +2 -2
  56. package/dist/api/moderation/emitEvent.d.ts.map +1 -1
  57. package/dist/api/moderation/emitEvent.js +62 -66
  58. package/dist/api/moderation/emitEvent.js.map +1 -1
  59. package/dist/api/moderation/getAccountTimeline.d.ts +2 -2
  60. package/dist/api/moderation/getAccountTimeline.d.ts.map +1 -1
  61. package/dist/api/moderation/getAccountTimeline.js +10 -15
  62. package/dist/api/moderation/getAccountTimeline.js.map +1 -1
  63. package/dist/api/moderation/getEvent.d.ts +2 -2
  64. package/dist/api/moderation/getEvent.d.ts.map +1 -1
  65. package/dist/api/moderation/getEvent.js +1 -4
  66. package/dist/api/moderation/getEvent.js.map +1 -1
  67. package/dist/api/moderation/getRecord.d.ts +2 -2
  68. package/dist/api/moderation/getRecord.d.ts.map +1 -1
  69. package/dist/api/moderation/getRecord.js +7 -10
  70. package/dist/api/moderation/getRecord.js.map +1 -1
  71. package/dist/api/moderation/getRecords.d.ts +2 -2
  72. package/dist/api/moderation/getRecords.d.ts.map +1 -1
  73. package/dist/api/moderation/getRecords.js +5 -8
  74. package/dist/api/moderation/getRecords.js.map +1 -1
  75. package/dist/api/moderation/getRepo.d.ts +2 -2
  76. package/dist/api/moderation/getRepo.d.ts.map +1 -1
  77. package/dist/api/moderation/getRepo.js +6 -9
  78. package/dist/api/moderation/getRepo.js.map +1 -1
  79. package/dist/api/moderation/getReporterStats.d.ts +2 -2
  80. package/dist/api/moderation/getReporterStats.d.ts.map +1 -1
  81. package/dist/api/moderation/getReporterStats.js +1 -4
  82. package/dist/api/moderation/getReporterStats.js.map +1 -1
  83. package/dist/api/moderation/getRepos.d.ts +2 -2
  84. package/dist/api/moderation/getRepos.d.ts.map +1 -1
  85. package/dist/api/moderation/getRepos.js +4 -7
  86. package/dist/api/moderation/getRepos.js.map +1 -1
  87. package/dist/api/moderation/getSubjects.d.ts +2 -2
  88. package/dist/api/moderation/getSubjects.d.ts.map +1 -1
  89. package/dist/api/moderation/getSubjects.js +7 -10
  90. package/dist/api/moderation/getSubjects.js.map +1 -1
  91. package/dist/api/moderation/listScheduledActions.d.ts +2 -2
  92. package/dist/api/moderation/listScheduledActions.d.ts.map +1 -1
  93. package/dist/api/moderation/listScheduledActions.js +3 -6
  94. package/dist/api/moderation/listScheduledActions.js.map +1 -1
  95. package/dist/api/moderation/queryEvents.d.ts +2 -2
  96. package/dist/api/moderation/queryEvents.d.ts.map +1 -1
  97. package/dist/api/moderation/queryEvents.js +3 -6
  98. package/dist/api/moderation/queryEvents.js.map +1 -1
  99. package/dist/api/moderation/queryStatuses.d.ts +2 -2
  100. package/dist/api/moderation/queryStatuses.d.ts.map +1 -1
  101. package/dist/api/moderation/queryStatuses.js +1 -4
  102. package/dist/api/moderation/queryStatuses.js.map +1 -1
  103. package/dist/api/moderation/scheduleAction.d.ts +2 -2
  104. package/dist/api/moderation/scheduleAction.d.ts.map +1 -1
  105. package/dist/api/moderation/scheduleAction.js +15 -18
  106. package/dist/api/moderation/scheduleAction.js.map +1 -1
  107. package/dist/api/moderation/searchRepos.d.ts +2 -2
  108. package/dist/api/moderation/searchRepos.d.ts.map +1 -1
  109. package/dist/api/moderation/searchRepos.js +5 -8
  110. package/dist/api/moderation/searchRepos.js.map +1 -1
  111. package/dist/api/moderation/util.d.ts +2 -2
  112. package/dist/api/moderation/util.d.ts.map +1 -1
  113. package/dist/api/moderation/util.js +10 -15
  114. package/dist/api/moderation/util.js.map +1 -1
  115. package/dist/api/proxied.d.ts +2 -2
  116. package/dist/api/proxied.d.ts.map +1 -1
  117. package/dist/api/proxied.js +24 -27
  118. package/dist/api/proxied.js.map +1 -1
  119. package/dist/api/queue/assignModerator.d.ts +2 -2
  120. package/dist/api/queue/assignModerator.d.ts.map +1 -1
  121. package/dist/api/queue/assignModerator.js +6 -9
  122. package/dist/api/queue/assignModerator.js.map +1 -1
  123. package/dist/api/queue/createQueue.d.ts +2 -2
  124. package/dist/api/queue/createQueue.d.ts.map +1 -1
  125. package/dist/api/queue/createQueue.js +5 -8
  126. package/dist/api/queue/createQueue.js.map +1 -1
  127. package/dist/api/queue/deleteQueue.d.ts +2 -2
  128. package/dist/api/queue/deleteQueue.d.ts.map +1 -1
  129. package/dist/api/queue/deleteQueue.js +5 -8
  130. package/dist/api/queue/deleteQueue.js.map +1 -1
  131. package/dist/api/queue/getAssignments.d.ts +2 -2
  132. package/dist/api/queue/getAssignments.d.ts.map +1 -1
  133. package/dist/api/queue/getAssignments.js +1 -4
  134. package/dist/api/queue/getAssignments.js.map +1 -1
  135. package/dist/api/queue/listQueues.d.ts +2 -2
  136. package/dist/api/queue/listQueues.d.ts.map +1 -1
  137. package/dist/api/queue/listQueues.js +1 -4
  138. package/dist/api/queue/listQueues.js.map +1 -1
  139. package/dist/api/queue/routeReports.d.ts +2 -2
  140. package/dist/api/queue/routeReports.d.ts.map +1 -1
  141. package/dist/api/queue/routeReports.js +5 -8
  142. package/dist/api/queue/routeReports.js.map +1 -1
  143. package/dist/api/queue/unassignModerator.d.ts +2 -2
  144. package/dist/api/queue/unassignModerator.d.ts.map +1 -1
  145. package/dist/api/queue/unassignModerator.js +6 -9
  146. package/dist/api/queue/unassignModerator.js.map +1 -1
  147. package/dist/api/queue/updateQueue.d.ts +2 -2
  148. package/dist/api/queue/updateQueue.d.ts.map +1 -1
  149. package/dist/api/queue/updateQueue.js +5 -8
  150. package/dist/api/queue/updateQueue.js.map +1 -1
  151. package/dist/api/report/assignModerator.d.ts +2 -2
  152. package/dist/api/report/assignModerator.d.ts.map +1 -1
  153. package/dist/api/report/assignModerator.js +6 -9
  154. package/dist/api/report/assignModerator.js.map +1 -1
  155. package/dist/api/report/createActivity.d.ts +2 -2
  156. package/dist/api/report/createActivity.d.ts.map +1 -1
  157. package/dist/api/report/createActivity.js +8 -11
  158. package/dist/api/report/createActivity.js.map +1 -1
  159. package/dist/api/report/createReport.d.ts +2 -2
  160. package/dist/api/report/createReport.d.ts.map +1 -1
  161. package/dist/api/report/createReport.js +14 -17
  162. package/dist/api/report/createReport.js.map +1 -1
  163. package/dist/api/report/getAssignments.d.ts +2 -2
  164. package/dist/api/report/getAssignments.d.ts.map +1 -1
  165. package/dist/api/report/getAssignments.js +1 -4
  166. package/dist/api/report/getAssignments.js.map +1 -1
  167. package/dist/api/report/getHistoricalStats.d.ts +2 -2
  168. package/dist/api/report/getHistoricalStats.d.ts.map +1 -1
  169. package/dist/api/report/getHistoricalStats.js +3 -6
  170. package/dist/api/report/getHistoricalStats.js.map +1 -1
  171. package/dist/api/report/getLatestReport.d.ts +2 -2
  172. package/dist/api/report/getLatestReport.d.ts.map +1 -1
  173. package/dist/api/report/getLatestReport.js +9 -12
  174. package/dist/api/report/getLatestReport.js.map +1 -1
  175. package/dist/api/report/getLiveStats.d.ts +2 -2
  176. package/dist/api/report/getLiveStats.d.ts.map +1 -1
  177. package/dist/api/report/getLiveStats.js +3 -6
  178. package/dist/api/report/getLiveStats.js.map +1 -1
  179. package/dist/api/report/getReport.d.ts +2 -2
  180. package/dist/api/report/getReport.d.ts.map +1 -1
  181. package/dist/api/report/getReport.js +9 -12
  182. package/dist/api/report/getReport.js.map +1 -1
  183. package/dist/api/report/listActivities.d.ts +2 -2
  184. package/dist/api/report/listActivities.d.ts.map +1 -1
  185. package/dist/api/report/listActivities.js +4 -7
  186. package/dist/api/report/listActivities.js.map +1 -1
  187. package/dist/api/report/queryReports.d.ts +2 -2
  188. package/dist/api/report/queryReports.d.ts.map +1 -1
  189. package/dist/api/report/queryReports.js +7 -10
  190. package/dist/api/report/queryReports.js.map +1 -1
  191. package/dist/api/report/reassignQueue.d.ts +2 -2
  192. package/dist/api/report/reassignQueue.d.ts.map +1 -1
  193. package/dist/api/report/reassignQueue.js +12 -15
  194. package/dist/api/report/reassignQueue.js.map +1 -1
  195. package/dist/api/report/refreshStats.d.ts +2 -2
  196. package/dist/api/report/refreshStats.d.ts.map +1 -1
  197. package/dist/api/report/refreshStats.js +1 -4
  198. package/dist/api/report/refreshStats.js.map +1 -1
  199. package/dist/api/report/unassignModerator.d.ts +2 -2
  200. package/dist/api/report/unassignModerator.d.ts.map +1 -1
  201. package/dist/api/report/unassignModerator.js +3 -6
  202. package/dist/api/report/unassignModerator.js.map +1 -1
  203. package/dist/api/safelink/addRule.d.ts +2 -2
  204. package/dist/api/safelink/addRule.d.ts.map +1 -1
  205. package/dist/api/safelink/addRule.js +8 -11
  206. package/dist/api/safelink/addRule.js.map +1 -1
  207. package/dist/api/safelink/queryEvents.d.ts +2 -2
  208. package/dist/api/safelink/queryEvents.d.ts.map +1 -1
  209. package/dist/api/safelink/queryEvents.js +3 -6
  210. package/dist/api/safelink/queryEvents.js.map +1 -1
  211. package/dist/api/safelink/queryRules.d.ts +2 -2
  212. package/dist/api/safelink/queryRules.d.ts.map +1 -1
  213. package/dist/api/safelink/queryRules.js +5 -8
  214. package/dist/api/safelink/queryRules.js.map +1 -1
  215. package/dist/api/safelink/removeRule.d.ts +2 -2
  216. package/dist/api/safelink/removeRule.d.ts.map +1 -1
  217. package/dist/api/safelink/removeRule.js +6 -9
  218. package/dist/api/safelink/removeRule.js.map +1 -1
  219. package/dist/api/safelink/updateRule.d.ts +2 -2
  220. package/dist/api/safelink/updateRule.d.ts.map +1 -1
  221. package/dist/api/safelink/updateRule.js +8 -11
  222. package/dist/api/safelink/updateRule.js.map +1 -1
  223. package/dist/api/server/getConfig.d.ts +2 -2
  224. package/dist/api/server/getConfig.d.ts.map +1 -1
  225. package/dist/api/server/getConfig.js +5 -8
  226. package/dist/api/server/getConfig.js.map +1 -1
  227. package/dist/api/set/addValues.d.ts +2 -2
  228. package/dist/api/set/addValues.d.ts.map +1 -1
  229. package/dist/api/set/addValues.js +4 -7
  230. package/dist/api/set/addValues.js.map +1 -1
  231. package/dist/api/set/deleteSet.d.ts +2 -2
  232. package/dist/api/set/deleteSet.d.ts.map +1 -1
  233. package/dist/api/set/deleteSet.js +4 -7
  234. package/dist/api/set/deleteSet.js.map +1 -1
  235. package/dist/api/set/deleteValues.d.ts +2 -2
  236. package/dist/api/set/deleteValues.d.ts.map +1 -1
  237. package/dist/api/set/deleteValues.js +4 -7
  238. package/dist/api/set/deleteValues.js.map +1 -1
  239. package/dist/api/set/getValues.d.ts +2 -2
  240. package/dist/api/set/getValues.d.ts.map +1 -1
  241. package/dist/api/set/getValues.js +4 -7
  242. package/dist/api/set/getValues.js.map +1 -1
  243. package/dist/api/set/querySets.d.ts +2 -2
  244. package/dist/api/set/querySets.d.ts.map +1 -1
  245. package/dist/api/set/querySets.js +3 -6
  246. package/dist/api/set/querySets.js.map +1 -1
  247. package/dist/api/set/upsertSet.d.ts +2 -2
  248. package/dist/api/set/upsertSet.d.ts.map +1 -1
  249. package/dist/api/set/upsertSet.js +4 -7
  250. package/dist/api/set/upsertSet.js.map +1 -1
  251. package/dist/api/setting/listOptions.d.ts +2 -2
  252. package/dist/api/setting/listOptions.d.ts.map +1 -1
  253. package/dist/api/setting/listOptions.js +3 -6
  254. package/dist/api/setting/listOptions.js.map +1 -1
  255. package/dist/api/setting/removeOptions.d.ts +2 -2
  256. package/dist/api/setting/removeOptions.d.ts.map +1 -1
  257. package/dist/api/setting/removeOptions.js +3 -6
  258. package/dist/api/setting/removeOptions.js.map +1 -1
  259. package/dist/api/setting/upsertOption.d.ts +2 -2
  260. package/dist/api/setting/upsertOption.d.ts.map +1 -1
  261. package/dist/api/setting/upsertOption.js +25 -31
  262. package/dist/api/setting/upsertOption.js.map +1 -1
  263. package/dist/api/team/addMember.d.ts +2 -2
  264. package/dist/api/team/addMember.d.ts.map +1 -1
  265. package/dist/api/team/addMember.js +6 -9
  266. package/dist/api/team/addMember.js.map +1 -1
  267. package/dist/api/team/deleteMember.d.ts +2 -2
  268. package/dist/api/team/deleteMember.d.ts.map +1 -1
  269. package/dist/api/team/deleteMember.js +4 -7
  270. package/dist/api/team/deleteMember.js.map +1 -1
  271. package/dist/api/team/listMembers.d.ts +2 -2
  272. package/dist/api/team/listMembers.d.ts.map +1 -1
  273. package/dist/api/team/listMembers.js +1 -4
  274. package/dist/api/team/listMembers.js.map +1 -1
  275. package/dist/api/team/updateMember.d.ts +2 -2
  276. package/dist/api/team/updateMember.d.ts.map +1 -1
  277. package/dist/api/team/updateMember.js +7 -10
  278. package/dist/api/team/updateMember.js.map +1 -1
  279. package/dist/api/util.d.ts +4 -4
  280. package/dist/api/util.d.ts.map +1 -1
  281. package/dist/api/util.js +39 -56
  282. package/dist/api/util.js.map +1 -1
  283. package/dist/api/verification/grantVerifications.d.ts +2 -2
  284. package/dist/api/verification/grantVerifications.d.ts.map +1 -1
  285. package/dist/api/verification/grantVerifications.js +6 -9
  286. package/dist/api/verification/grantVerifications.js.map +1 -1
  287. package/dist/api/verification/listVerifications.d.ts +2 -2
  288. package/dist/api/verification/listVerifications.d.ts.map +1 -1
  289. package/dist/api/verification/listVerifications.js +3 -6
  290. package/dist/api/verification/listVerifications.js.map +1 -1
  291. package/dist/api/verification/revokeVerifications.d.ts +2 -2
  292. package/dist/api/verification/revokeVerifications.d.ts.map +1 -1
  293. package/dist/api/verification/revokeVerifications.js +4 -7
  294. package/dist/api/verification/revokeVerifications.js.map +1 -1
  295. package/dist/api/well-known.d.ts +1 -1
  296. package/dist/api/well-known.d.ts.map +1 -1
  297. package/dist/api/well-known.js +3 -7
  298. package/dist/api/well-known.js.map +1 -1
  299. package/dist/assignment/index.d.ts +7 -7
  300. package/dist/assignment/index.d.ts.map +1 -1
  301. package/dist/assignment/index.js +23 -47
  302. package/dist/assignment/index.js.map +1 -1
  303. package/dist/auth-verifier.d.ts +1 -1
  304. package/dist/auth-verifier.d.ts.map +1 -1
  305. package/dist/auth-verifier.js +82 -174
  306. package/dist/auth-verifier.js.map +1 -1
  307. package/dist/background.d.ts +1 -1
  308. package/dist/background.d.ts.map +1 -1
  309. package/dist/background.js +17 -74
  310. package/dist/background.js.map +1 -1
  311. package/dist/communication-service/template.d.ts +3 -3
  312. package/dist/communication-service/template.d.ts.map +1 -1
  313. package/dist/communication-service/template.js +2 -11
  314. package/dist/communication-service/template.js.map +1 -1
  315. package/dist/communication-service/util.js +1 -5
  316. package/dist/communication-service/util.js.map +1 -1
  317. package/dist/config/config.d.ts +1 -1
  318. package/dist/config/config.d.ts.map +1 -1
  319. package/dist/config/config.js +18 -25
  320. package/dist/config/config.js.map +1 -1
  321. package/dist/config/env.js +42 -46
  322. package/dist/config/env.js.map +1 -1
  323. package/dist/config/index.d.ts +3 -3
  324. package/dist/config/index.d.ts.map +1 -1
  325. package/dist/config/index.js +3 -19
  326. package/dist/config/index.js.map +1 -1
  327. package/dist/config/secrets.d.ts +1 -1
  328. package/dist/config/secrets.d.ts.map +1 -1
  329. package/dist/config/secrets.js +4 -11
  330. package/dist/config/secrets.js.map +1 -1
  331. package/dist/context.d.ts +22 -22
  332. package/dist/context.d.ts.map +1 -1
  333. package/dist/context.js +63 -113
  334. package/dist/context.js.map +1 -1
  335. package/dist/daemon/blob-diverter.d.ts +2 -2
  336. package/dist/daemon/blob-diverter.d.ts.map +1 -1
  337. package/dist/daemon/blob-diverter.js +18 -72
  338. package/dist/daemon/blob-diverter.js.map +1 -1
  339. package/dist/daemon/context.d.ts +12 -12
  340. package/dist/daemon/context.d.ts.map +1 -1
  341. package/dist/daemon/context.js +50 -59
  342. package/dist/daemon/context.js.map +1 -1
  343. package/dist/daemon/event-pusher.d.ts +4 -4
  344. package/dist/daemon/event-pusher.d.ts.map +1 -1
  345. package/dist/daemon/event-pusher.js +29 -78
  346. package/dist/daemon/event-pusher.js.map +1 -1
  347. package/dist/daemon/event-reverser.d.ts +2 -2
  348. package/dist/daemon/event-reverser.d.ts.map +1 -1
  349. package/dist/daemon/event-reverser.js +14 -44
  350. package/dist/daemon/event-reverser.js.map +1 -1
  351. package/dist/daemon/index.d.ts +8 -8
  352. package/dist/daemon/index.d.ts.map +1 -1
  353. package/dist/daemon/index.js +9 -23
  354. package/dist/daemon/index.js.map +1 -1
  355. package/dist/daemon/job-cursor.d.ts +1 -1
  356. package/dist/daemon/job-cursor.d.ts.map +1 -1
  357. package/dist/daemon/job-cursor.js +3 -8
  358. package/dist/daemon/job-cursor.js.map +1 -1
  359. package/dist/daemon/materialized-view-refresher.d.ts +1 -1
  360. package/dist/daemon/materialized-view-refresher.d.ts.map +1 -1
  361. package/dist/daemon/materialized-view-refresher.js +9 -13
  362. package/dist/daemon/materialized-view-refresher.js.map +1 -1
  363. package/dist/daemon/queue-router.d.ts +2 -2
  364. package/dist/daemon/queue-router.d.ts.map +1 -1
  365. package/dist/daemon/queue-router.js +13 -43
  366. package/dist/daemon/queue-router.js.map +1 -1
  367. package/dist/daemon/scheduled-action-processor.d.ts +9 -9
  368. package/dist/daemon/scheduled-action-processor.d.ts.map +1 -1
  369. package/dist/daemon/scheduled-action-processor.js +23 -68
  370. package/dist/daemon/scheduled-action-processor.js.map +1 -1
  371. package/dist/daemon/stats-computer.d.ts +2 -2
  372. package/dist/daemon/stats-computer.d.ts.map +1 -1
  373. package/dist/daemon/stats-computer.js +15 -50
  374. package/dist/daemon/stats-computer.js.map +1 -1
  375. package/dist/daemon/strike-expiry-processor.d.ts +2 -2
  376. package/dist/daemon/strike-expiry-processor.d.ts.map +1 -1
  377. package/dist/daemon/strike-expiry-processor.js +16 -46
  378. package/dist/daemon/strike-expiry-processor.js.map +1 -1
  379. package/dist/daemon/team-profile-synchronizer.d.ts +2 -2
  380. package/dist/daemon/team-profile-synchronizer.d.ts.map +1 -1
  381. package/dist/daemon/team-profile-synchronizer.js +4 -8
  382. package/dist/daemon/team-profile-synchronizer.js.map +1 -1
  383. package/dist/daemon/verification-listener.d.ts +2 -2
  384. package/dist/daemon/verification-listener.d.ts.map +1 -1
  385. package/dist/daemon/verification-listener.js +20 -70
  386. package/dist/daemon/verification-listener.js.map +1 -1
  387. package/dist/db/index.d.ts +7 -5
  388. package/dist/db/index.d.ts.map +1 -1
  389. package/dist/db/index.js +27 -107
  390. package/dist/db/index.js.map +1 -1
  391. package/dist/db/migrations/20231219T205730722Z-init.js +2 -6
  392. package/dist/db/migrations/20231219T205730722Z-init.js.map +1 -1
  393. package/dist/db/migrations/20240116T085607200Z-communication-template.js +2 -6
  394. package/dist/db/migrations/20240116T085607200Z-communication-template.js.map +1 -1
  395. package/dist/db/migrations/20240201T051104136Z-mod-event-blobs.js +2 -6
  396. package/dist/db/migrations/20240201T051104136Z-mod-event-blobs.js.map +1 -1
  397. package/dist/db/migrations/20240208T213404429Z-add-tags-column-to-moderation-subject.js +2 -6
  398. package/dist/db/migrations/20240208T213404429Z-add-tags-column-to-moderation-subject.js.map +1 -1
  399. package/dist/db/migrations/20240228T003647759Z-add-label-sigs.js +4 -8
  400. package/dist/db/migrations/20240228T003647759Z-add-label-sigs.js.map +1 -1
  401. package/dist/db/migrations/20240408T192432676Z-mute-reporting.js +2 -6
  402. package/dist/db/migrations/20240408T192432676Z-mute-reporting.js.map +1 -1
  403. package/dist/db/migrations/20240506T225055595Z-message-subject.js +2 -6
  404. package/dist/db/migrations/20240506T225055595Z-message-subject.js.map +1 -1
  405. package/dist/db/migrations/20240521T211332580Z-member.js +2 -6
  406. package/dist/db/migrations/20240521T211332580Z-member.js.map +1 -1
  407. package/dist/db/migrations/20240814T003647759Z-event-created-at-index.js +2 -6
  408. package/dist/db/migrations/20240814T003647759Z-event-created-at-index.js.map +1 -1
  409. package/dist/db/migrations/20240903T205730722Z-add-template-lang.js +2 -6
  410. package/dist/db/migrations/20240903T205730722Z-add-template-lang.js.map +1 -1
  411. package/dist/db/migrations/20240904T205730722Z-add-subject-did-index.js +2 -6
  412. package/dist/db/migrations/20240904T205730722Z-add-subject-did-index.js.map +1 -1
  413. package/dist/db/migrations/20241001T205730722Z-subject-status-review-state-index.js +2 -6
  414. package/dist/db/migrations/20241001T205730722Z-subject-status-review-state-index.js.map +1 -1
  415. package/dist/db/migrations/20241008T205730722Z-sets.js +6 -10
  416. package/dist/db/migrations/20241008T205730722Z-sets.js.map +1 -1
  417. package/dist/db/migrations/20241018T205730722Z-setting.js +5 -9
  418. package/dist/db/migrations/20241018T205730722Z-setting.js.map +1 -1
  419. package/dist/db/migrations/20241026T205730722Z-add-hosting-status-to-subject-status.js +2 -6
  420. package/dist/db/migrations/20241026T205730722Z-add-hosting-status-to-subject-status.js.map +1 -1
  421. package/dist/db/migrations/20241220T144630860Z-stats-materialized-views.d.ts +1 -1
  422. package/dist/db/migrations/20241220T144630860Z-stats-materialized-views.d.ts.map +1 -1
  423. package/dist/db/migrations/20241220T144630860Z-stats-materialized-views.js +27 -31
  424. package/dist/db/migrations/20241220T144630860Z-stats-materialized-views.js.map +1 -1
  425. package/dist/db/migrations/20250204T003647759Z-add-subject-priority-score.js +2 -6
  426. package/dist/db/migrations/20250204T003647759Z-add-subject-priority-score.js.map +1 -1
  427. package/dist/db/migrations/20250211T003647759Z-add-reporter-stats-index.js +7 -11
  428. package/dist/db/migrations/20250211T003647759Z-add-reporter-stats-index.js.map +1 -1
  429. package/dist/db/migrations/20250211T132135150Z-moderation-event-message-partial-idx.js +4 -8
  430. package/dist/db/migrations/20250211T132135150Z-moderation-event-message-partial-idx.js.map +1 -1
  431. package/dist/db/migrations/20250221T132135150Z-member-details.js +2 -6
  432. package/dist/db/migrations/20250221T132135150Z-member-details.js.map +1 -1
  433. package/dist/db/migrations/20250404T201720309Z-subject-status-sort-idxs.js +5 -9
  434. package/dist/db/migrations/20250404T201720309Z-subject-status-sort-idxs.js.map +1 -1
  435. package/dist/db/migrations/20250415T201720309Z-verification.js +4 -8
  436. package/dist/db/migrations/20250415T201720309Z-verification.js.map +1 -1
  437. package/dist/db/migrations/20250417T201720309Z-firehose-cursor.js +4 -8
  438. package/dist/db/migrations/20250417T201720309Z-firehose-cursor.js.map +1 -1
  439. package/dist/db/migrations/20250609T110704000Z-safelink.js +2 -6
  440. package/dist/db/migrations/20250609T110704000Z-safelink.js.map +1 -1
  441. package/dist/db/migrations/20250618T180246000Z-add-mod-tool-to-moderation-event.js +4 -8
  442. package/dist/db/migrations/20250618T180246000Z-add-mod-tool-to-moderation-event.js.map +1 -1
  443. package/dist/db/migrations/20250701T000000000Z-add-age-assurance-state.js +2 -6
  444. package/dist/db/migrations/20250701T000000000Z-add-age-assurance-state.js.map +1 -1
  445. package/dist/db/migrations/20250715T000000000Z-add-mod-event-external-id.js +2 -6
  446. package/dist/db/migrations/20250715T000000000Z-add-mod-event-external-id.js.map +1 -1
  447. package/dist/db/migrations/20250718T150931000Z-update-appeal-reason-stats.d.ts +1 -1
  448. package/dist/db/migrations/20250718T150931000Z-update-appeal-reason-stats.d.ts.map +1 -1
  449. package/dist/db/migrations/20250718T150931000Z-update-appeal-reason-stats.js +37 -41
  450. package/dist/db/migrations/20250718T150931000Z-update-appeal-reason-stats.js.map +1 -1
  451. package/dist/db/migrations/20250813T000000000Z-mod-tool-batch-id-index.js +4 -8
  452. package/dist/db/migrations/20250813T000000000Z-mod-tool-batch-id-index.js.map +1 -1
  453. package/dist/db/migrations/20250923T000000000Z-scheduled-actions.js +4 -8
  454. package/dist/db/migrations/20250923T000000000Z-scheduled-actions.js.map +1 -1
  455. package/dist/db/migrations/20251008T120000000Z-add-strike-system.js +5 -9
  456. package/dist/db/migrations/20251008T120000000Z-add-strike-system.js.map +1 -1
  457. package/dist/db/migrations/20260210T154806448Z-mod-event-created-by-indexes.js +2 -6
  458. package/dist/db/migrations/20260210T154806448Z-mod-event-created-by-indexes.js.map +1 -1
  459. package/dist/db/migrations/20260219T164523000Z-create-report-table.js +19 -23
  460. package/dist/db/migrations/20260219T164523000Z-create-report-table.js.map +1 -1
  461. package/dist/db/migrations/20260219T165302248Z-moderator-assignment.js +6 -10
  462. package/dist/db/migrations/20260219T165302248Z-moderator-assignment.js.map +1 -1
  463. package/dist/db/migrations/20260225T000000000Z-add-report-queue-table.js +5 -9
  464. package/dist/db/migrations/20260225T000000000Z-add-report-queue-table.js.map +1 -1
  465. package/dist/db/migrations/20260313T000000000Z-add-report-activity-table.js +4 -8
  466. package/dist/db/migrations/20260313T000000000Z-add-report-activity-table.js.map +1 -1
  467. package/dist/db/migrations/20260318T152058935Z-add-report-stat.js +4 -8
  468. package/dist/db/migrations/20260318T152058935Z-add-report-stat.js.map +1 -1
  469. package/dist/db/migrations/20260428T000000000Z-add-expiring-tag-table.js +2 -6
  470. package/dist/db/migrations/20260428T000000000Z-add-expiring-tag-table.js.map +1 -1
  471. package/dist/db/migrations/index.d.ts +38 -38
  472. package/dist/db/migrations/index.d.ts.map +1 -1
  473. package/dist/db/migrations/index.js +38 -74
  474. package/dist/db/migrations/index.js.map +1 -1
  475. package/dist/db/migrations/provider.js +3 -17
  476. package/dist/db/migrations/provider.js.map +1 -1
  477. package/dist/db/pagination.d.ts +1 -1
  478. package/dist/db/pagination.d.ts.map +1 -1
  479. package/dist/db/pagination.js +34 -54
  480. package/dist/db/pagination.js.map +1 -1
  481. package/dist/db/schema/account_events_stats.js +1 -4
  482. package/dist/db/schema/account_events_stats.js.map +1 -1
  483. package/dist/db/schema/account_record_events_stats.js +1 -4
  484. package/dist/db/schema/account_record_events_stats.js.map +1 -1
  485. package/dist/db/schema/account_record_status_stats.js +1 -4
  486. package/dist/db/schema/account_record_status_stats.js.map +1 -1
  487. package/dist/db/schema/account_strike.js +1 -4
  488. package/dist/db/schema/account_strike.js.map +1 -1
  489. package/dist/db/schema/blob_push_event.js +1 -4
  490. package/dist/db/schema/blob_push_event.js.map +1 -1
  491. package/dist/db/schema/communication_template.js +1 -4
  492. package/dist/db/schema/communication_template.js.map +1 -1
  493. package/dist/db/schema/expiring_tag.js +1 -4
  494. package/dist/db/schema/expiring_tag.js.map +1 -1
  495. package/dist/db/schema/firehose_cursor.js +1 -4
  496. package/dist/db/schema/firehose_cursor.js.map +1 -1
  497. package/dist/db/schema/index.d.ts +27 -27
  498. package/dist/db/schema/index.d.ts.map +1 -1
  499. package/dist/db/schema/index.js +1 -2
  500. package/dist/db/schema/index.js.map +1 -1
  501. package/dist/db/schema/job_cursor.js +1 -4
  502. package/dist/db/schema/job_cursor.js.map +1 -1
  503. package/dist/db/schema/label.js +2 -5
  504. package/dist/db/schema/label.js.map +1 -1
  505. package/dist/db/schema/member.js +1 -4
  506. package/dist/db/schema/member.js.map +1 -1
  507. package/dist/db/schema/moderation_event.js +1 -4
  508. package/dist/db/schema/moderation_event.js.map +1 -1
  509. package/dist/db/schema/moderation_subject_status.d.ts +1 -1
  510. package/dist/db/schema/moderation_subject_status.d.ts.map +1 -1
  511. package/dist/db/schema/moderation_subject_status.js +1 -4
  512. package/dist/db/schema/moderation_subject_status.js.map +1 -1
  513. package/dist/db/schema/moderator_assignment.js +1 -4
  514. package/dist/db/schema/moderator_assignment.js.map +1 -1
  515. package/dist/db/schema/ozone_set.js +2 -5
  516. package/dist/db/schema/ozone_set.js.map +1 -1
  517. package/dist/db/schema/record_events_stats.js +1 -4
  518. package/dist/db/schema/record_events_stats.js.map +1 -1
  519. package/dist/db/schema/record_push_event.js +1 -4
  520. package/dist/db/schema/record_push_event.js.map +1 -1
  521. package/dist/db/schema/repo_push_event.js +1 -4
  522. package/dist/db/schema/repo_push_event.js.map +1 -1
  523. package/dist/db/schema/report.js +1 -4
  524. package/dist/db/schema/report.js.map +1 -1
  525. package/dist/db/schema/report_activity.js +1 -4
  526. package/dist/db/schema/report_activity.js.map +1 -1
  527. package/dist/db/schema/report_queue.js +1 -4
  528. package/dist/db/schema/report_queue.js.map +1 -1
  529. package/dist/db/schema/report_stat.js +1 -4
  530. package/dist/db/schema/report_stat.js.map +1 -1
  531. package/dist/db/schema/safelink.d.ts +1 -1
  532. package/dist/db/schema/safelink.d.ts.map +1 -1
  533. package/dist/db/schema/safelink.js +2 -5
  534. package/dist/db/schema/safelink.js.map +1 -1
  535. package/dist/db/schema/scheduled-action.js +1 -4
  536. package/dist/db/schema/scheduled-action.js.map +1 -1
  537. package/dist/db/schema/setting.d.ts +1 -1
  538. package/dist/db/schema/setting.d.ts.map +1 -1
  539. package/dist/db/schema/setting.js +1 -4
  540. package/dist/db/schema/setting.js.map +1 -1
  541. package/dist/db/schema/signing_key.js +1 -4
  542. package/dist/db/schema/signing_key.js.map +1 -1
  543. package/dist/db/schema/verification.js +1 -4
  544. package/dist/db/schema/verification.js.map +1 -1
  545. package/dist/db/types.d.ts +3 -1
  546. package/dist/db/types.d.ts.map +1 -1
  547. package/dist/db/types.js +4 -8
  548. package/dist/db/types.js.map +1 -1
  549. package/dist/error.js +5 -9
  550. package/dist/error.js.map +1 -1
  551. package/dist/image-invalidator.js +1 -2
  552. package/dist/index.d.ts +8 -8
  553. package/dist/index.d.ts.map +1 -1
  554. package/dist/index.js +34 -110
  555. package/dist/index.js.map +1 -1
  556. package/dist/jetstream/service.d.ts.map +1 -1
  557. package/dist/jetstream/service.js +4 -26
  558. package/dist/jetstream/service.js.map +1 -1
  559. package/dist/lexicon/index.d.ts +2 -2
  560. package/dist/lexicon/index.js +60 -670
  561. package/dist/lexicon/index.js.map +1 -1
  562. package/dist/lexicon/lexicons.d.ts +992 -28
  563. package/dist/lexicon/lexicons.d.ts.map +1 -1
  564. package/dist/lexicon/lexicons.js +621 -28
  565. package/dist/lexicon/lexicons.js.map +1 -1
  566. package/dist/lexicon/types/app/bsky/actor/defs.d.ts +34 -34
  567. package/dist/lexicon/types/app/bsky/actor/defs.d.ts.map +1 -1
  568. package/dist/lexicon/types/app/bsky/actor/defs.js +69 -137
  569. package/dist/lexicon/types/app/bsky/actor/defs.js.map +1 -1
  570. package/dist/lexicon/types/app/bsky/actor/getPreferences.js +3 -5
  571. package/dist/lexicon/types/app/bsky/actor/getPreferences.js.map +1 -1
  572. package/dist/lexicon/types/app/bsky/actor/getProfile.js +3 -5
  573. package/dist/lexicon/types/app/bsky/actor/getProfile.js.map +1 -1
  574. package/dist/lexicon/types/app/bsky/actor/getProfiles.js +3 -5
  575. package/dist/lexicon/types/app/bsky/actor/getProfiles.js.map +1 -1
  576. package/dist/lexicon/types/app/bsky/actor/getSuggestions.js +3 -5
  577. package/dist/lexicon/types/app/bsky/actor/getSuggestions.js.map +1 -1
  578. package/dist/lexicon/types/app/bsky/actor/profile.d.ts +2 -2
  579. package/dist/lexicon/types/app/bsky/actor/profile.d.ts.map +1 -1
  580. package/dist/lexicon/types/app/bsky/actor/profile.js +6 -11
  581. package/dist/lexicon/types/app/bsky/actor/profile.js.map +1 -1
  582. package/dist/lexicon/types/app/bsky/actor/putPreferences.js +3 -5
  583. package/dist/lexicon/types/app/bsky/actor/putPreferences.js.map +1 -1
  584. package/dist/lexicon/types/app/bsky/actor/searchActors.js +3 -5
  585. package/dist/lexicon/types/app/bsky/actor/searchActors.js.map +1 -1
  586. package/dist/lexicon/types/app/bsky/actor/searchActorsTypeahead.js +3 -5
  587. package/dist/lexicon/types/app/bsky/actor/searchActorsTypeahead.js.map +1 -1
  588. package/dist/lexicon/types/app/bsky/actor/status.d.ts +2 -2
  589. package/dist/lexicon/types/app/bsky/actor/status.d.ts.map +1 -1
  590. package/dist/lexicon/types/app/bsky/actor/status.js +7 -13
  591. package/dist/lexicon/types/app/bsky/actor/status.js.map +1 -1
  592. package/dist/lexicon/types/app/bsky/ageassurance/begin.js +3 -5
  593. package/dist/lexicon/types/app/bsky/ageassurance/begin.js.map +1 -1
  594. package/dist/lexicon/types/app/bsky/ageassurance/defs.d.ts +13 -13
  595. package/dist/lexicon/types/app/bsky/ageassurance/defs.d.ts.map +1 -1
  596. package/dist/lexicon/types/app/bsky/ageassurance/defs.js +27 -53
  597. package/dist/lexicon/types/app/bsky/ageassurance/defs.js.map +1 -1
  598. package/dist/lexicon/types/app/bsky/ageassurance/getConfig.js +3 -5
  599. package/dist/lexicon/types/app/bsky/ageassurance/getConfig.js.map +1 -1
  600. package/dist/lexicon/types/app/bsky/ageassurance/getState.js +3 -5
  601. package/dist/lexicon/types/app/bsky/ageassurance/getState.js.map +1 -1
  602. package/dist/lexicon/types/app/bsky/bookmark/createBookmark.js +3 -5
  603. package/dist/lexicon/types/app/bsky/bookmark/createBookmark.js.map +1 -1
  604. package/dist/lexicon/types/app/bsky/bookmark/defs.d.ts +3 -3
  605. package/dist/lexicon/types/app/bsky/bookmark/defs.d.ts.map +1 -1
  606. package/dist/lexicon/types/app/bsky/bookmark/defs.js +7 -13
  607. package/dist/lexicon/types/app/bsky/bookmark/defs.js.map +1 -1
  608. package/dist/lexicon/types/app/bsky/bookmark/deleteBookmark.js +3 -5
  609. package/dist/lexicon/types/app/bsky/bookmark/deleteBookmark.js.map +1 -1
  610. package/dist/lexicon/types/app/bsky/bookmark/getBookmarks.js +3 -5
  611. package/dist/lexicon/types/app/bsky/bookmark/getBookmarks.js.map +1 -1
  612. package/dist/lexicon/types/app/bsky/contact/defs.d.ts +3 -3
  613. package/dist/lexicon/types/app/bsky/contact/defs.d.ts.map +1 -1
  614. package/dist/lexicon/types/app/bsky/contact/defs.js +9 -17
  615. package/dist/lexicon/types/app/bsky/contact/defs.js.map +1 -1
  616. package/dist/lexicon/types/app/bsky/contact/dismissMatch.js +3 -5
  617. package/dist/lexicon/types/app/bsky/contact/dismissMatch.js.map +1 -1
  618. package/dist/lexicon/types/app/bsky/contact/getMatches.js +3 -5
  619. package/dist/lexicon/types/app/bsky/contact/getMatches.js.map +1 -1
  620. package/dist/lexicon/types/app/bsky/contact/getSyncStatus.js +3 -5
  621. package/dist/lexicon/types/app/bsky/contact/getSyncStatus.js.map +1 -1
  622. package/dist/lexicon/types/app/bsky/contact/importContacts.js +3 -5
  623. package/dist/lexicon/types/app/bsky/contact/importContacts.js.map +1 -1
  624. package/dist/lexicon/types/app/bsky/contact/removeData.js +3 -5
  625. package/dist/lexicon/types/app/bsky/contact/removeData.js.map +1 -1
  626. package/dist/lexicon/types/app/bsky/contact/sendNotification.js +3 -5
  627. package/dist/lexicon/types/app/bsky/contact/sendNotification.js.map +1 -1
  628. package/dist/lexicon/types/app/bsky/contact/startPhoneVerification.js +3 -5
  629. package/dist/lexicon/types/app/bsky/contact/startPhoneVerification.js.map +1 -1
  630. package/dist/lexicon/types/app/bsky/contact/verifyPhone.js +3 -5
  631. package/dist/lexicon/types/app/bsky/contact/verifyPhone.js.map +1 -1
  632. package/dist/lexicon/types/app/bsky/draft/createDraft.js +3 -5
  633. package/dist/lexicon/types/app/bsky/draft/createDraft.js.map +1 -1
  634. package/dist/lexicon/types/app/bsky/draft/defs.d.ts +11 -11
  635. package/dist/lexicon/types/app/bsky/draft/defs.d.ts.map +1 -1
  636. package/dist/lexicon/types/app/bsky/draft/defs.js +23 -45
  637. package/dist/lexicon/types/app/bsky/draft/defs.js.map +1 -1
  638. package/dist/lexicon/types/app/bsky/draft/deleteDraft.js +3 -5
  639. package/dist/lexicon/types/app/bsky/draft/deleteDraft.js.map +1 -1
  640. package/dist/lexicon/types/app/bsky/draft/getDrafts.js +3 -5
  641. package/dist/lexicon/types/app/bsky/draft/getDrafts.js.map +1 -1
  642. package/dist/lexicon/types/app/bsky/draft/updateDraft.js +3 -5
  643. package/dist/lexicon/types/app/bsky/draft/updateDraft.js.map +1 -1
  644. package/dist/lexicon/types/app/bsky/embed/defs.d.ts +1 -1
  645. package/dist/lexicon/types/app/bsky/embed/defs.d.ts.map +1 -1
  646. package/dist/lexicon/types/app/bsky/embed/defs.js +5 -9
  647. package/dist/lexicon/types/app/bsky/embed/defs.js.map +1 -1
  648. package/dist/lexicon/types/app/bsky/embed/external.d.ts +6 -5
  649. package/dist/lexicon/types/app/bsky/embed/external.d.ts.map +1 -1
  650. package/dist/lexicon/types/app/bsky/embed/external.js +11 -21
  651. package/dist/lexicon/types/app/bsky/embed/external.js.map +1 -1
  652. package/dist/lexicon/types/app/bsky/embed/images.d.ts +4 -4
  653. package/dist/lexicon/types/app/bsky/embed/images.d.ts.map +1 -1
  654. package/dist/lexicon/types/app/bsky/embed/images.js +11 -21
  655. package/dist/lexicon/types/app/bsky/embed/images.js.map +1 -1
  656. package/dist/lexicon/types/app/bsky/embed/record.d.ts +7 -7
  657. package/dist/lexicon/types/app/bsky/embed/record.d.ts.map +1 -1
  658. package/dist/lexicon/types/app/bsky/embed/record.js +15 -29
  659. package/dist/lexicon/types/app/bsky/embed/record.js.map +1 -1
  660. package/dist/lexicon/types/app/bsky/embed/recordWithMedia.d.ts +3 -3
  661. package/dist/lexicon/types/app/bsky/embed/recordWithMedia.d.ts.map +1 -1
  662. package/dist/lexicon/types/app/bsky/embed/recordWithMedia.js +7 -13
  663. package/dist/lexicon/types/app/bsky/embed/recordWithMedia.js.map +1 -1
  664. package/dist/lexicon/types/app/bsky/embed/video.d.ts +3 -3
  665. package/dist/lexicon/types/app/bsky/embed/video.d.ts.map +1 -1
  666. package/dist/lexicon/types/app/bsky/embed/video.js +9 -17
  667. package/dist/lexicon/types/app/bsky/embed/video.js.map +1 -1
  668. package/dist/lexicon/types/app/bsky/feed/defs.d.ts +19 -19
  669. package/dist/lexicon/types/app/bsky/feed/defs.d.ts.map +1 -1
  670. package/dist/lexicon/types/app/bsky/feed/defs.js +53 -92
  671. package/dist/lexicon/types/app/bsky/feed/defs.js.map +1 -1
  672. package/dist/lexicon/types/app/bsky/feed/describeFeedGenerator.d.ts +2 -2
  673. package/dist/lexicon/types/app/bsky/feed/describeFeedGenerator.d.ts.map +1 -1
  674. package/dist/lexicon/types/app/bsky/feed/describeFeedGenerator.js +7 -13
  675. package/dist/lexicon/types/app/bsky/feed/describeFeedGenerator.js.map +1 -1
  676. package/dist/lexicon/types/app/bsky/feed/generator.d.ts +2 -2
  677. package/dist/lexicon/types/app/bsky/feed/generator.d.ts.map +1 -1
  678. package/dist/lexicon/types/app/bsky/feed/generator.js +6 -11
  679. package/dist/lexicon/types/app/bsky/feed/generator.js.map +1 -1
  680. package/dist/lexicon/types/app/bsky/feed/getActorFeeds.js +3 -5
  681. package/dist/lexicon/types/app/bsky/feed/getActorFeeds.js.map +1 -1
  682. package/dist/lexicon/types/app/bsky/feed/getActorLikes.js +3 -5
  683. package/dist/lexicon/types/app/bsky/feed/getActorLikes.js.map +1 -1
  684. package/dist/lexicon/types/app/bsky/feed/getAuthorFeed.js +3 -5
  685. package/dist/lexicon/types/app/bsky/feed/getAuthorFeed.js.map +1 -1
  686. package/dist/lexicon/types/app/bsky/feed/getFeed.js +3 -5
  687. package/dist/lexicon/types/app/bsky/feed/getFeed.js.map +1 -1
  688. package/dist/lexicon/types/app/bsky/feed/getFeedGenerator.js +3 -5
  689. package/dist/lexicon/types/app/bsky/feed/getFeedGenerator.js.map +1 -1
  690. package/dist/lexicon/types/app/bsky/feed/getFeedGenerators.js +3 -5
  691. package/dist/lexicon/types/app/bsky/feed/getFeedGenerators.js.map +1 -1
  692. package/dist/lexicon/types/app/bsky/feed/getFeedSkeleton.js +3 -5
  693. package/dist/lexicon/types/app/bsky/feed/getFeedSkeleton.js.map +1 -1
  694. package/dist/lexicon/types/app/bsky/feed/getLikes.d.ts +1 -1
  695. package/dist/lexicon/types/app/bsky/feed/getLikes.d.ts.map +1 -1
  696. package/dist/lexicon/types/app/bsky/feed/getLikes.js +5 -9
  697. package/dist/lexicon/types/app/bsky/feed/getLikes.js.map +1 -1
  698. package/dist/lexicon/types/app/bsky/feed/getListFeed.js +3 -5
  699. package/dist/lexicon/types/app/bsky/feed/getListFeed.js.map +1 -1
  700. package/dist/lexicon/types/app/bsky/feed/getPostThread.d.ts +1 -1
  701. package/dist/lexicon/types/app/bsky/feed/getPostThread.d.ts.map +1 -1
  702. package/dist/lexicon/types/app/bsky/feed/getPostThread.js +3 -5
  703. package/dist/lexicon/types/app/bsky/feed/getPostThread.js.map +1 -1
  704. package/dist/lexicon/types/app/bsky/feed/getPosts.js +3 -5
  705. package/dist/lexicon/types/app/bsky/feed/getPosts.js.map +1 -1
  706. package/dist/lexicon/types/app/bsky/feed/getQuotes.js +3 -5
  707. package/dist/lexicon/types/app/bsky/feed/getQuotes.js.map +1 -1
  708. package/dist/lexicon/types/app/bsky/feed/getRepostedBy.js +3 -5
  709. package/dist/lexicon/types/app/bsky/feed/getRepostedBy.js.map +1 -1
  710. package/dist/lexicon/types/app/bsky/feed/getSuggestedFeeds.js +3 -5
  711. package/dist/lexicon/types/app/bsky/feed/getSuggestedFeeds.js.map +1 -1
  712. package/dist/lexicon/types/app/bsky/feed/getTimeline.js +3 -5
  713. package/dist/lexicon/types/app/bsky/feed/getTimeline.js.map +1 -1
  714. package/dist/lexicon/types/app/bsky/feed/like.d.ts +1 -1
  715. package/dist/lexicon/types/app/bsky/feed/like.d.ts.map +1 -1
  716. package/dist/lexicon/types/app/bsky/feed/like.js +6 -11
  717. package/dist/lexicon/types/app/bsky/feed/like.js.map +1 -1
  718. package/dist/lexicon/types/app/bsky/feed/post.d.ts +5 -5
  719. package/dist/lexicon/types/app/bsky/feed/post.d.ts.map +1 -1
  720. package/dist/lexicon/types/app/bsky/feed/post.js +12 -23
  721. package/dist/lexicon/types/app/bsky/feed/post.js.map +1 -1
  722. package/dist/lexicon/types/app/bsky/feed/postgate.d.ts +3 -3
  723. package/dist/lexicon/types/app/bsky/feed/postgate.d.ts.map +1 -1
  724. package/dist/lexicon/types/app/bsky/feed/postgate.js +8 -15
  725. package/dist/lexicon/types/app/bsky/feed/postgate.js.map +1 -1
  726. package/dist/lexicon/types/app/bsky/feed/repost.d.ts +1 -1
  727. package/dist/lexicon/types/app/bsky/feed/repost.d.ts.map +1 -1
  728. package/dist/lexicon/types/app/bsky/feed/repost.js +6 -11
  729. package/dist/lexicon/types/app/bsky/feed/repost.js.map +1 -1
  730. package/dist/lexicon/types/app/bsky/feed/searchPosts.js +3 -5
  731. package/dist/lexicon/types/app/bsky/feed/searchPosts.js.map +1 -1
  732. package/dist/lexicon/types/app/bsky/feed/sendInteractions.js +3 -5
  733. package/dist/lexicon/types/app/bsky/feed/sendInteractions.js.map +1 -1
  734. package/dist/lexicon/types/app/bsky/feed/threadgate.d.ts +6 -6
  735. package/dist/lexicon/types/app/bsky/feed/threadgate.d.ts.map +1 -1
  736. package/dist/lexicon/types/app/bsky/feed/threadgate.js +14 -27
  737. package/dist/lexicon/types/app/bsky/feed/threadgate.js.map +1 -1
  738. package/dist/lexicon/types/app/bsky/graph/block.d.ts +1 -1
  739. package/dist/lexicon/types/app/bsky/graph/block.d.ts.map +1 -1
  740. package/dist/lexicon/types/app/bsky/graph/block.js +6 -11
  741. package/dist/lexicon/types/app/bsky/graph/block.js.map +1 -1
  742. package/dist/lexicon/types/app/bsky/graph/defs.d.ts +8 -8
  743. package/dist/lexicon/types/app/bsky/graph/defs.d.ts.map +1 -1
  744. package/dist/lexicon/types/app/bsky/graph/defs.js +22 -41
  745. package/dist/lexicon/types/app/bsky/graph/defs.js.map +1 -1
  746. package/dist/lexicon/types/app/bsky/graph/follow.d.ts +1 -1
  747. package/dist/lexicon/types/app/bsky/graph/follow.d.ts.map +1 -1
  748. package/dist/lexicon/types/app/bsky/graph/follow.js +6 -11
  749. package/dist/lexicon/types/app/bsky/graph/follow.js.map +1 -1
  750. package/dist/lexicon/types/app/bsky/graph/getActorStarterPacks.js +3 -5
  751. package/dist/lexicon/types/app/bsky/graph/getActorStarterPacks.js.map +1 -1
  752. package/dist/lexicon/types/app/bsky/graph/getBlocks.js +3 -5
  753. package/dist/lexicon/types/app/bsky/graph/getBlocks.js.map +1 -1
  754. package/dist/lexicon/types/app/bsky/graph/getFollowers.js +3 -5
  755. package/dist/lexicon/types/app/bsky/graph/getFollowers.js.map +1 -1
  756. package/dist/lexicon/types/app/bsky/graph/getFollows.js +3 -5
  757. package/dist/lexicon/types/app/bsky/graph/getFollows.js.map +1 -1
  758. package/dist/lexicon/types/app/bsky/graph/getKnownFollowers.js +3 -5
  759. package/dist/lexicon/types/app/bsky/graph/getKnownFollowers.js.map +1 -1
  760. package/dist/lexicon/types/app/bsky/graph/getList.js +3 -5
  761. package/dist/lexicon/types/app/bsky/graph/getList.js.map +1 -1
  762. package/dist/lexicon/types/app/bsky/graph/getListBlocks.js +3 -5
  763. package/dist/lexicon/types/app/bsky/graph/getListBlocks.js.map +1 -1
  764. package/dist/lexicon/types/app/bsky/graph/getListMutes.js +3 -5
  765. package/dist/lexicon/types/app/bsky/graph/getListMutes.js.map +1 -1
  766. package/dist/lexicon/types/app/bsky/graph/getLists.js +3 -5
  767. package/dist/lexicon/types/app/bsky/graph/getLists.js.map +1 -1
  768. package/dist/lexicon/types/app/bsky/graph/getListsWithMembership.d.ts +1 -1
  769. package/dist/lexicon/types/app/bsky/graph/getListsWithMembership.d.ts.map +1 -1
  770. package/dist/lexicon/types/app/bsky/graph/getListsWithMembership.js +5 -9
  771. package/dist/lexicon/types/app/bsky/graph/getListsWithMembership.js.map +1 -1
  772. package/dist/lexicon/types/app/bsky/graph/getMutes.js +3 -5
  773. package/dist/lexicon/types/app/bsky/graph/getMutes.js.map +1 -1
  774. package/dist/lexicon/types/app/bsky/graph/getRelationships.d.ts +1 -1
  775. package/dist/lexicon/types/app/bsky/graph/getRelationships.d.ts.map +1 -1
  776. package/dist/lexicon/types/app/bsky/graph/getRelationships.js +3 -5
  777. package/dist/lexicon/types/app/bsky/graph/getRelationships.js.map +1 -1
  778. package/dist/lexicon/types/app/bsky/graph/getStarterPack.js +3 -5
  779. package/dist/lexicon/types/app/bsky/graph/getStarterPack.js.map +1 -1
  780. package/dist/lexicon/types/app/bsky/graph/getStarterPacks.js +3 -5
  781. package/dist/lexicon/types/app/bsky/graph/getStarterPacks.js.map +1 -1
  782. package/dist/lexicon/types/app/bsky/graph/getStarterPacksWithMembership.d.ts +1 -1
  783. package/dist/lexicon/types/app/bsky/graph/getStarterPacksWithMembership.d.ts.map +1 -1
  784. package/dist/lexicon/types/app/bsky/graph/getStarterPacksWithMembership.js +5 -9
  785. package/dist/lexicon/types/app/bsky/graph/getStarterPacksWithMembership.js.map +1 -1
  786. package/dist/lexicon/types/app/bsky/graph/getSuggestedFollowsByActor.js +3 -5
  787. package/dist/lexicon/types/app/bsky/graph/getSuggestedFollowsByActor.js.map +1 -1
  788. package/dist/lexicon/types/app/bsky/graph/list.d.ts +2 -2
  789. package/dist/lexicon/types/app/bsky/graph/list.d.ts.map +1 -1
  790. package/dist/lexicon/types/app/bsky/graph/list.js +6 -11
  791. package/dist/lexicon/types/app/bsky/graph/list.js.map +1 -1
  792. package/dist/lexicon/types/app/bsky/graph/listblock.d.ts +1 -1
  793. package/dist/lexicon/types/app/bsky/graph/listblock.d.ts.map +1 -1
  794. package/dist/lexicon/types/app/bsky/graph/listblock.js +6 -11
  795. package/dist/lexicon/types/app/bsky/graph/listblock.js.map +1 -1
  796. package/dist/lexicon/types/app/bsky/graph/listitem.d.ts +1 -1
  797. package/dist/lexicon/types/app/bsky/graph/listitem.d.ts.map +1 -1
  798. package/dist/lexicon/types/app/bsky/graph/listitem.js +6 -11
  799. package/dist/lexicon/types/app/bsky/graph/listitem.js.map +1 -1
  800. package/dist/lexicon/types/app/bsky/graph/muteActor.js +3 -5
  801. package/dist/lexicon/types/app/bsky/graph/muteActor.js.map +1 -1
  802. package/dist/lexicon/types/app/bsky/graph/muteActorList.js +3 -5
  803. package/dist/lexicon/types/app/bsky/graph/muteActorList.js.map +1 -1
  804. package/dist/lexicon/types/app/bsky/graph/muteThread.js +3 -5
  805. package/dist/lexicon/types/app/bsky/graph/muteThread.js.map +1 -1
  806. package/dist/lexicon/types/app/bsky/graph/searchStarterPacks.js +3 -5
  807. package/dist/lexicon/types/app/bsky/graph/searchStarterPacks.js.map +1 -1
  808. package/dist/lexicon/types/app/bsky/graph/starterpack.d.ts +2 -2
  809. package/dist/lexicon/types/app/bsky/graph/starterpack.d.ts.map +1 -1
  810. package/dist/lexicon/types/app/bsky/graph/starterpack.js +8 -15
  811. package/dist/lexicon/types/app/bsky/graph/starterpack.js.map +1 -1
  812. package/dist/lexicon/types/app/bsky/graph/unmuteActor.js +3 -5
  813. package/dist/lexicon/types/app/bsky/graph/unmuteActor.js.map +1 -1
  814. package/dist/lexicon/types/app/bsky/graph/unmuteActorList.js +3 -5
  815. package/dist/lexicon/types/app/bsky/graph/unmuteActorList.js.map +1 -1
  816. package/dist/lexicon/types/app/bsky/graph/unmuteThread.js +3 -5
  817. package/dist/lexicon/types/app/bsky/graph/unmuteThread.js.map +1 -1
  818. package/dist/lexicon/types/app/bsky/graph/verification.d.ts +1 -1
  819. package/dist/lexicon/types/app/bsky/graph/verification.d.ts.map +1 -1
  820. package/dist/lexicon/types/app/bsky/graph/verification.js +6 -11
  821. package/dist/lexicon/types/app/bsky/graph/verification.js.map +1 -1
  822. package/dist/lexicon/types/app/bsky/labeler/defs.d.ts +4 -4
  823. package/dist/lexicon/types/app/bsky/labeler/defs.d.ts.map +1 -1
  824. package/dist/lexicon/types/app/bsky/labeler/defs.js +11 -21
  825. package/dist/lexicon/types/app/bsky/labeler/defs.js.map +1 -1
  826. package/dist/lexicon/types/app/bsky/labeler/getServices.d.ts +1 -1
  827. package/dist/lexicon/types/app/bsky/labeler/getServices.d.ts.map +1 -1
  828. package/dist/lexicon/types/app/bsky/labeler/getServices.js +3 -5
  829. package/dist/lexicon/types/app/bsky/labeler/getServices.js.map +1 -1
  830. package/dist/lexicon/types/app/bsky/labeler/service.d.ts +2 -2
  831. package/dist/lexicon/types/app/bsky/labeler/service.d.ts.map +1 -1
  832. package/dist/lexicon/types/app/bsky/labeler/service.js +6 -11
  833. package/dist/lexicon/types/app/bsky/labeler/service.js.map +1 -1
  834. package/dist/lexicon/types/app/bsky/notification/declaration.d.ts +1 -1
  835. package/dist/lexicon/types/app/bsky/notification/declaration.d.ts.map +1 -1
  836. package/dist/lexicon/types/app/bsky/notification/declaration.js +6 -11
  837. package/dist/lexicon/types/app/bsky/notification/declaration.js.map +1 -1
  838. package/dist/lexicon/types/app/bsky/notification/defs.d.ts +7 -7
  839. package/dist/lexicon/types/app/bsky/notification/defs.d.ts.map +1 -1
  840. package/dist/lexicon/types/app/bsky/notification/defs.js +17 -33
  841. package/dist/lexicon/types/app/bsky/notification/defs.js.map +1 -1
  842. package/dist/lexicon/types/app/bsky/notification/getPreferences.js +3 -5
  843. package/dist/lexicon/types/app/bsky/notification/getPreferences.js.map +1 -1
  844. package/dist/lexicon/types/app/bsky/notification/getUnreadCount.js +3 -5
  845. package/dist/lexicon/types/app/bsky/notification/getUnreadCount.js.map +1 -1
  846. package/dist/lexicon/types/app/bsky/notification/listActivitySubscriptions.js +3 -5
  847. package/dist/lexicon/types/app/bsky/notification/listActivitySubscriptions.js.map +1 -1
  848. package/dist/lexicon/types/app/bsky/notification/listNotifications.d.ts +1 -1
  849. package/dist/lexicon/types/app/bsky/notification/listNotifications.d.ts.map +1 -1
  850. package/dist/lexicon/types/app/bsky/notification/listNotifications.js +5 -9
  851. package/dist/lexicon/types/app/bsky/notification/listNotifications.js.map +1 -1
  852. package/dist/lexicon/types/app/bsky/notification/putActivitySubscription.js +3 -5
  853. package/dist/lexicon/types/app/bsky/notification/putActivitySubscription.js.map +1 -1
  854. package/dist/lexicon/types/app/bsky/notification/putPreferences.js +3 -5
  855. package/dist/lexicon/types/app/bsky/notification/putPreferences.js.map +1 -1
  856. package/dist/lexicon/types/app/bsky/notification/putPreferencesV2.js +3 -5
  857. package/dist/lexicon/types/app/bsky/notification/putPreferencesV2.js.map +1 -1
  858. package/dist/lexicon/types/app/bsky/notification/registerPush.js +3 -5
  859. package/dist/lexicon/types/app/bsky/notification/registerPush.js.map +1 -1
  860. package/dist/lexicon/types/app/bsky/notification/unregisterPush.js +3 -5
  861. package/dist/lexicon/types/app/bsky/notification/unregisterPush.js.map +1 -1
  862. package/dist/lexicon/types/app/bsky/notification/updateSeen.js +3 -5
  863. package/dist/lexicon/types/app/bsky/notification/updateSeen.js.map +1 -1
  864. package/dist/lexicon/types/app/bsky/richtext/facet.d.ts +6 -6
  865. package/dist/lexicon/types/app/bsky/richtext/facet.d.ts.map +1 -1
  866. package/dist/lexicon/types/app/bsky/richtext/facet.js +13 -25
  867. package/dist/lexicon/types/app/bsky/richtext/facet.js.map +1 -1
  868. package/dist/lexicon/types/app/bsky/unspecced/defs.d.ts +12 -12
  869. package/dist/lexicon/types/app/bsky/unspecced/defs.d.ts.map +1 -1
  870. package/dist/lexicon/types/app/bsky/unspecced/defs.js +27 -53
  871. package/dist/lexicon/types/app/bsky/unspecced/defs.js.map +1 -1
  872. package/dist/lexicon/types/app/bsky/unspecced/getAgeAssuranceState.js +3 -5
  873. package/dist/lexicon/types/app/bsky/unspecced/getAgeAssuranceState.js.map +1 -1
  874. package/dist/lexicon/types/app/bsky/unspecced/getConfig.d.ts +1 -1
  875. package/dist/lexicon/types/app/bsky/unspecced/getConfig.d.ts.map +1 -1
  876. package/dist/lexicon/types/app/bsky/unspecced/getConfig.js +5 -9
  877. package/dist/lexicon/types/app/bsky/unspecced/getConfig.js.map +1 -1
  878. package/dist/lexicon/types/app/bsky/unspecced/getOnboardingSuggestedStarterPacks.js +3 -5
  879. package/dist/lexicon/types/app/bsky/unspecced/getOnboardingSuggestedStarterPacks.js.map +1 -1
  880. package/dist/lexicon/types/app/bsky/unspecced/getOnboardingSuggestedStarterPacksSkeleton.js +3 -5
  881. package/dist/lexicon/types/app/bsky/unspecced/getOnboardingSuggestedStarterPacksSkeleton.js.map +1 -1
  882. package/dist/lexicon/types/app/bsky/unspecced/getOnboardingSuggestedUsersSkeleton.js +3 -5
  883. package/dist/lexicon/types/app/bsky/unspecced/getOnboardingSuggestedUsersSkeleton.js.map +1 -1
  884. package/dist/lexicon/types/app/bsky/unspecced/getPopularFeedGenerators.js +3 -5
  885. package/dist/lexicon/types/app/bsky/unspecced/getPopularFeedGenerators.js.map +1 -1
  886. package/dist/lexicon/types/app/bsky/unspecced/getPostThreadOtherV2.d.ts +2 -2
  887. package/dist/lexicon/types/app/bsky/unspecced/getPostThreadOtherV2.d.ts.map +1 -1
  888. package/dist/lexicon/types/app/bsky/unspecced/getPostThreadOtherV2.js +5 -9
  889. package/dist/lexicon/types/app/bsky/unspecced/getPostThreadOtherV2.js.map +1 -1
  890. package/dist/lexicon/types/app/bsky/unspecced/getPostThreadV2.d.ts +2 -2
  891. package/dist/lexicon/types/app/bsky/unspecced/getPostThreadV2.d.ts.map +1 -1
  892. package/dist/lexicon/types/app/bsky/unspecced/getPostThreadV2.js +5 -9
  893. package/dist/lexicon/types/app/bsky/unspecced/getPostThreadV2.js.map +1 -1
  894. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedFeeds.js +3 -5
  895. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedFeeds.js.map +1 -1
  896. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedFeedsSkeleton.js +3 -5
  897. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedFeedsSkeleton.js.map +1 -1
  898. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedOnboardingUsers.js +3 -5
  899. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedOnboardingUsers.js.map +1 -1
  900. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedStarterPacks.js +3 -5
  901. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedStarterPacks.js.map +1 -1
  902. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedStarterPacksSkeleton.js +3 -5
  903. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedStarterPacksSkeleton.js.map +1 -1
  904. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedUsers.js +3 -5
  905. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedUsers.js.map +1 -1
  906. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedUsersForDiscover.js +3 -5
  907. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedUsersForDiscover.js.map +1 -1
  908. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedUsersForDiscoverSkeleton.js +3 -5
  909. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedUsersForDiscoverSkeleton.js.map +1 -1
  910. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedUsersForExplore.js +3 -5
  911. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedUsersForExplore.js.map +1 -1
  912. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedUsersForExploreSkeleton.js +3 -5
  913. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedUsersForExploreSkeleton.js.map +1 -1
  914. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedUsersForSeeMore.js +3 -5
  915. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedUsersForSeeMore.js.map +1 -1
  916. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedUsersForSeeMoreSkeleton.js +3 -5
  917. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedUsersForSeeMoreSkeleton.js.map +1 -1
  918. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedUsersSkeleton.js +3 -5
  919. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedUsersSkeleton.js.map +1 -1
  920. package/dist/lexicon/types/app/bsky/unspecced/getSuggestionsSkeleton.js +3 -5
  921. package/dist/lexicon/types/app/bsky/unspecced/getSuggestionsSkeleton.js.map +1 -1
  922. package/dist/lexicon/types/app/bsky/unspecced/getTaggedSuggestions.d.ts +1 -1
  923. package/dist/lexicon/types/app/bsky/unspecced/getTaggedSuggestions.d.ts.map +1 -1
  924. package/dist/lexicon/types/app/bsky/unspecced/getTaggedSuggestions.js +5 -9
  925. package/dist/lexicon/types/app/bsky/unspecced/getTaggedSuggestions.js.map +1 -1
  926. package/dist/lexicon/types/app/bsky/unspecced/getTrendingTopics.js +3 -5
  927. package/dist/lexicon/types/app/bsky/unspecced/getTrendingTopics.js.map +1 -1
  928. package/dist/lexicon/types/app/bsky/unspecced/getTrends.js +3 -5
  929. package/dist/lexicon/types/app/bsky/unspecced/getTrends.js.map +1 -1
  930. package/dist/lexicon/types/app/bsky/unspecced/getTrendsSkeleton.js +3 -5
  931. package/dist/lexicon/types/app/bsky/unspecced/getTrendsSkeleton.js.map +1 -1
  932. package/dist/lexicon/types/app/bsky/unspecced/initAgeAssurance.js +3 -5
  933. package/dist/lexicon/types/app/bsky/unspecced/initAgeAssurance.js.map +1 -1
  934. package/dist/lexicon/types/app/bsky/unspecced/searchActorsSkeleton.js +3 -5
  935. package/dist/lexicon/types/app/bsky/unspecced/searchActorsSkeleton.js.map +1 -1
  936. package/dist/lexicon/types/app/bsky/unspecced/searchPostsSkeleton.js +3 -5
  937. package/dist/lexicon/types/app/bsky/unspecced/searchPostsSkeleton.js.map +1 -1
  938. package/dist/lexicon/types/app/bsky/unspecced/searchStarterPacksSkeleton.js +3 -5
  939. package/dist/lexicon/types/app/bsky/unspecced/searchStarterPacksSkeleton.js.map +1 -1
  940. package/dist/lexicon/types/app/bsky/video/defs.d.ts +1 -1
  941. package/dist/lexicon/types/app/bsky/video/defs.d.ts.map +1 -1
  942. package/dist/lexicon/types/app/bsky/video/defs.js +5 -9
  943. package/dist/lexicon/types/app/bsky/video/defs.js.map +1 -1
  944. package/dist/lexicon/types/app/bsky/video/getJobStatus.js +3 -5
  945. package/dist/lexicon/types/app/bsky/video/getJobStatus.js.map +1 -1
  946. package/dist/lexicon/types/app/bsky/video/getUploadLimits.js +3 -5
  947. package/dist/lexicon/types/app/bsky/video/getUploadLimits.js.map +1 -1
  948. package/dist/lexicon/types/app/bsky/video/uploadVideo.js +3 -5
  949. package/dist/lexicon/types/app/bsky/video/uploadVideo.js.map +1 -1
  950. package/dist/lexicon/types/chat/bsky/actor/declaration.d.ts +1 -1
  951. package/dist/lexicon/types/chat/bsky/actor/declaration.d.ts.map +1 -1
  952. package/dist/lexicon/types/chat/bsky/actor/declaration.js +6 -11
  953. package/dist/lexicon/types/chat/bsky/actor/declaration.js.map +1 -1
  954. package/dist/lexicon/types/chat/bsky/actor/defs.d.ts +5 -5
  955. package/dist/lexicon/types/chat/bsky/actor/defs.d.ts.map +1 -1
  956. package/dist/lexicon/types/chat/bsky/actor/defs.js +11 -21
  957. package/dist/lexicon/types/chat/bsky/actor/defs.js.map +1 -1
  958. package/dist/lexicon/types/chat/bsky/actor/deleteAccount.js +3 -5
  959. package/dist/lexicon/types/chat/bsky/actor/deleteAccount.js.map +1 -1
  960. package/dist/lexicon/types/chat/bsky/actor/exportAccountData.js +3 -5
  961. package/dist/lexicon/types/chat/bsky/actor/exportAccountData.js.map +1 -1
  962. package/dist/lexicon/types/chat/bsky/convo/acceptConvo.js +3 -5
  963. package/dist/lexicon/types/chat/bsky/convo/acceptConvo.js.map +1 -1
  964. package/dist/lexicon/types/chat/bsky/convo/addReaction.js +3 -5
  965. package/dist/lexicon/types/chat/bsky/convo/addReaction.js.map +1 -1
  966. package/dist/lexicon/types/chat/bsky/convo/defs.d.ts +61 -54
  967. package/dist/lexicon/types/chat/bsky/convo/defs.d.ts.map +1 -1
  968. package/dist/lexicon/types/chat/bsky/convo/defs.js +114 -213
  969. package/dist/lexicon/types/chat/bsky/convo/defs.js.map +1 -1
  970. package/dist/lexicon/types/chat/bsky/convo/deleteMessageForSelf.js +3 -5
  971. package/dist/lexicon/types/chat/bsky/convo/deleteMessageForSelf.js.map +1 -1
  972. package/dist/lexicon/types/chat/bsky/convo/getConvo.js +3 -5
  973. package/dist/lexicon/types/chat/bsky/convo/getConvo.js.map +1 -1
  974. package/dist/lexicon/types/chat/bsky/convo/getConvoAvailability.js +3 -5
  975. package/dist/lexicon/types/chat/bsky/convo/getConvoAvailability.js.map +1 -1
  976. package/dist/lexicon/types/chat/bsky/convo/getConvoForMembers.js +3 -5
  977. package/dist/lexicon/types/chat/bsky/convo/getConvoForMembers.js.map +1 -1
  978. package/dist/lexicon/types/chat/bsky/convo/getConvoMembers.js +3 -5
  979. package/dist/lexicon/types/chat/bsky/convo/getConvoMembers.js.map +1 -1
  980. package/dist/lexicon/types/chat/bsky/convo/getLog.d.ts +1 -1
  981. package/dist/lexicon/types/chat/bsky/convo/getLog.d.ts.map +1 -1
  982. package/dist/lexicon/types/chat/bsky/convo/getLog.js +3 -5
  983. package/dist/lexicon/types/chat/bsky/convo/getLog.js.map +1 -1
  984. package/dist/lexicon/types/chat/bsky/convo/getMessages.d.ts +1 -1
  985. package/dist/lexicon/types/chat/bsky/convo/getMessages.d.ts.map +1 -1
  986. package/dist/lexicon/types/chat/bsky/convo/getMessages.js +3 -5
  987. package/dist/lexicon/types/chat/bsky/convo/getMessages.js.map +1 -1
  988. package/dist/lexicon/types/chat/bsky/convo/leaveConvo.js +3 -5
  989. package/dist/lexicon/types/chat/bsky/convo/leaveConvo.js.map +1 -1
  990. package/dist/lexicon/types/chat/bsky/convo/listConvoRequests.d.ts +1 -1
  991. package/dist/lexicon/types/chat/bsky/convo/listConvoRequests.d.ts.map +1 -1
  992. package/dist/lexicon/types/chat/bsky/convo/listConvoRequests.js +3 -5
  993. package/dist/lexicon/types/chat/bsky/convo/listConvoRequests.js.map +1 -1
  994. package/dist/lexicon/types/chat/bsky/convo/listConvos.d.ts +2 -0
  995. package/dist/lexicon/types/chat/bsky/convo/listConvos.d.ts.map +1 -1
  996. package/dist/lexicon/types/chat/bsky/convo/listConvos.js +3 -5
  997. package/dist/lexicon/types/chat/bsky/convo/listConvos.js.map +1 -1
  998. package/dist/lexicon/types/chat/bsky/convo/lockConvo.js +3 -5
  999. package/dist/lexicon/types/chat/bsky/convo/lockConvo.js.map +1 -1
  1000. package/dist/lexicon/types/chat/bsky/convo/muteConvo.js +3 -5
  1001. package/dist/lexicon/types/chat/bsky/convo/muteConvo.js.map +1 -1
  1002. package/dist/lexicon/types/chat/bsky/convo/removeReaction.js +3 -5
  1003. package/dist/lexicon/types/chat/bsky/convo/removeReaction.js.map +1 -1
  1004. package/dist/lexicon/types/chat/bsky/convo/sendMessage.js +3 -5
  1005. package/dist/lexicon/types/chat/bsky/convo/sendMessage.js.map +1 -1
  1006. package/dist/lexicon/types/chat/bsky/convo/sendMessageBatch.d.ts +1 -1
  1007. package/dist/lexicon/types/chat/bsky/convo/sendMessageBatch.d.ts.map +1 -1
  1008. package/dist/lexicon/types/chat/bsky/convo/sendMessageBatch.js +5 -9
  1009. package/dist/lexicon/types/chat/bsky/convo/sendMessageBatch.js.map +1 -1
  1010. package/dist/lexicon/types/chat/bsky/convo/unlockConvo.js +3 -5
  1011. package/dist/lexicon/types/chat/bsky/convo/unlockConvo.js.map +1 -1
  1012. package/dist/lexicon/types/chat/bsky/convo/unmuteConvo.js +3 -5
  1013. package/dist/lexicon/types/chat/bsky/convo/unmuteConvo.js.map +1 -1
  1014. package/dist/lexicon/types/chat/bsky/convo/updateAllRead.js +3 -5
  1015. package/dist/lexicon/types/chat/bsky/convo/updateAllRead.js.map +1 -1
  1016. package/dist/lexicon/types/chat/bsky/convo/updateRead.js +3 -5
  1017. package/dist/lexicon/types/chat/bsky/convo/updateRead.js.map +1 -1
  1018. package/dist/lexicon/types/chat/bsky/group/addMembers.d.ts +1 -1
  1019. package/dist/lexicon/types/chat/bsky/group/addMembers.d.ts.map +1 -1
  1020. package/dist/lexicon/types/chat/bsky/group/addMembers.js +3 -5
  1021. package/dist/lexicon/types/chat/bsky/group/addMembers.js.map +1 -1
  1022. package/dist/lexicon/types/chat/bsky/group/approveJoinRequest.js +3 -5
  1023. package/dist/lexicon/types/chat/bsky/group/approveJoinRequest.js.map +1 -1
  1024. package/dist/lexicon/types/chat/bsky/group/createGroup.d.ts +1 -1
  1025. package/dist/lexicon/types/chat/bsky/group/createGroup.d.ts.map +1 -1
  1026. package/dist/lexicon/types/chat/bsky/group/createGroup.js +3 -5
  1027. package/dist/lexicon/types/chat/bsky/group/createGroup.js.map +1 -1
  1028. package/dist/lexicon/types/chat/bsky/group/createJoinLink.js +3 -5
  1029. package/dist/lexicon/types/chat/bsky/group/createJoinLink.js.map +1 -1
  1030. package/dist/lexicon/types/chat/bsky/group/defs.d.ts +8 -6
  1031. package/dist/lexicon/types/chat/bsky/group/defs.d.ts.map +1 -1
  1032. package/dist/lexicon/types/chat/bsky/group/defs.js +12 -20
  1033. package/dist/lexicon/types/chat/bsky/group/defs.js.map +1 -1
  1034. package/dist/lexicon/types/chat/bsky/group/disableJoinLink.js +3 -5
  1035. package/dist/lexicon/types/chat/bsky/group/disableJoinLink.js.map +1 -1
  1036. package/dist/lexicon/types/chat/bsky/group/editGroup.js +3 -5
  1037. package/dist/lexicon/types/chat/bsky/group/editGroup.js.map +1 -1
  1038. package/dist/lexicon/types/chat/bsky/group/editJoinLink.js +3 -5
  1039. package/dist/lexicon/types/chat/bsky/group/editJoinLink.js.map +1 -1
  1040. package/dist/lexicon/types/chat/bsky/group/enableJoinLink.js +3 -5
  1041. package/dist/lexicon/types/chat/bsky/group/enableJoinLink.js.map +1 -1
  1042. package/dist/lexicon/types/chat/bsky/group/{getGroupPublicInfo.d.ts → getJoinLinkPreview.d.ts} +2 -2
  1043. package/dist/lexicon/types/chat/bsky/group/getJoinLinkPreview.d.ts.map +1 -0
  1044. package/dist/lexicon/types/chat/bsky/group/getJoinLinkPreview.js +5 -0
  1045. package/dist/lexicon/types/chat/bsky/group/getJoinLinkPreview.js.map +1 -0
  1046. package/dist/lexicon/types/chat/bsky/group/listJoinRequests.js +3 -5
  1047. package/dist/lexicon/types/chat/bsky/group/listJoinRequests.js.map +1 -1
  1048. package/dist/lexicon/types/chat/bsky/group/rejectJoinRequest.js +3 -5
  1049. package/dist/lexicon/types/chat/bsky/group/rejectJoinRequest.js.map +1 -1
  1050. package/dist/lexicon/types/chat/bsky/group/removeMembers.js +3 -5
  1051. package/dist/lexicon/types/chat/bsky/group/removeMembers.js.map +1 -1
  1052. package/dist/lexicon/types/chat/bsky/group/requestJoin.js +3 -5
  1053. package/dist/lexicon/types/chat/bsky/group/requestJoin.js.map +1 -1
  1054. package/dist/lexicon/types/chat/bsky/moderation/getActorMetadata.d.ts +1 -1
  1055. package/dist/lexicon/types/chat/bsky/moderation/getActorMetadata.d.ts.map +1 -1
  1056. package/dist/lexicon/types/chat/bsky/moderation/getActorMetadata.js +5 -9
  1057. package/dist/lexicon/types/chat/bsky/moderation/getActorMetadata.js.map +1 -1
  1058. package/dist/lexicon/types/chat/bsky/moderation/getMessageContext.d.ts +6 -2
  1059. package/dist/lexicon/types/chat/bsky/moderation/getMessageContext.d.ts.map +1 -1
  1060. package/dist/lexicon/types/chat/bsky/moderation/getMessageContext.js +3 -5
  1061. package/dist/lexicon/types/chat/bsky/moderation/getMessageContext.js.map +1 -1
  1062. package/dist/lexicon/types/chat/bsky/moderation/subscribeModEvents.d.ts +209 -3
  1063. package/dist/lexicon/types/chat/bsky/moderation/subscribeModEvents.d.ts.map +1 -1
  1064. package/dist/lexicon/types/chat/bsky/moderation/subscribeModEvents.js +68 -9
  1065. package/dist/lexicon/types/chat/bsky/moderation/subscribeModEvents.js.map +1 -1
  1066. package/dist/lexicon/types/chat/bsky/moderation/updateActorAccess.js +3 -5
  1067. package/dist/lexicon/types/chat/bsky/moderation/updateActorAccess.js.map +1 -1
  1068. package/dist/lexicon/types/com/atproto/admin/defs.d.ts +5 -5
  1069. package/dist/lexicon/types/com/atproto/admin/defs.d.ts.map +1 -1
  1070. package/dist/lexicon/types/com/atproto/admin/defs.js +13 -25
  1071. package/dist/lexicon/types/com/atproto/admin/defs.js.map +1 -1
  1072. package/dist/lexicon/types/com/atproto/admin/deleteAccount.js +3 -5
  1073. package/dist/lexicon/types/com/atproto/admin/deleteAccount.js.map +1 -1
  1074. package/dist/lexicon/types/com/atproto/admin/disableAccountInvites.js +3 -5
  1075. package/dist/lexicon/types/com/atproto/admin/disableAccountInvites.js.map +1 -1
  1076. package/dist/lexicon/types/com/atproto/admin/disableInviteCodes.js +3 -5
  1077. package/dist/lexicon/types/com/atproto/admin/disableInviteCodes.js.map +1 -1
  1078. package/dist/lexicon/types/com/atproto/admin/enableAccountInvites.js +3 -5
  1079. package/dist/lexicon/types/com/atproto/admin/enableAccountInvites.js.map +1 -1
  1080. package/dist/lexicon/types/com/atproto/admin/getAccountInfo.js +3 -5
  1081. package/dist/lexicon/types/com/atproto/admin/getAccountInfo.js.map +1 -1
  1082. package/dist/lexicon/types/com/atproto/admin/getAccountInfos.js +3 -5
  1083. package/dist/lexicon/types/com/atproto/admin/getAccountInfos.js.map +1 -1
  1084. package/dist/lexicon/types/com/atproto/admin/getInviteCodes.js +3 -5
  1085. package/dist/lexicon/types/com/atproto/admin/getInviteCodes.js.map +1 -1
  1086. package/dist/lexicon/types/com/atproto/admin/getSubjectStatus.d.ts +1 -1
  1087. package/dist/lexicon/types/com/atproto/admin/getSubjectStatus.d.ts.map +1 -1
  1088. package/dist/lexicon/types/com/atproto/admin/getSubjectStatus.js +3 -5
  1089. package/dist/lexicon/types/com/atproto/admin/getSubjectStatus.js.map +1 -1
  1090. package/dist/lexicon/types/com/atproto/admin/searchAccounts.js +3 -5
  1091. package/dist/lexicon/types/com/atproto/admin/searchAccounts.js.map +1 -1
  1092. package/dist/lexicon/types/com/atproto/admin/sendEmail.js +3 -5
  1093. package/dist/lexicon/types/com/atproto/admin/sendEmail.js.map +1 -1
  1094. package/dist/lexicon/types/com/atproto/admin/updateAccountEmail.js +3 -5
  1095. package/dist/lexicon/types/com/atproto/admin/updateAccountEmail.js.map +1 -1
  1096. package/dist/lexicon/types/com/atproto/admin/updateAccountHandle.js +3 -5
  1097. package/dist/lexicon/types/com/atproto/admin/updateAccountHandle.js.map +1 -1
  1098. package/dist/lexicon/types/com/atproto/admin/updateAccountPassword.js +3 -5
  1099. package/dist/lexicon/types/com/atproto/admin/updateAccountPassword.js.map +1 -1
  1100. package/dist/lexicon/types/com/atproto/admin/updateAccountSigningKey.js +3 -5
  1101. package/dist/lexicon/types/com/atproto/admin/updateAccountSigningKey.js.map +1 -1
  1102. package/dist/lexicon/types/com/atproto/admin/updateSubjectStatus.d.ts +1 -1
  1103. package/dist/lexicon/types/com/atproto/admin/updateSubjectStatus.d.ts.map +1 -1
  1104. package/dist/lexicon/types/com/atproto/admin/updateSubjectStatus.js +3 -5
  1105. package/dist/lexicon/types/com/atproto/admin/updateSubjectStatus.js.map +1 -1
  1106. package/dist/lexicon/types/com/atproto/identity/defs.d.ts +1 -1
  1107. package/dist/lexicon/types/com/atproto/identity/defs.d.ts.map +1 -1
  1108. package/dist/lexicon/types/com/atproto/identity/defs.js +5 -9
  1109. package/dist/lexicon/types/com/atproto/identity/defs.js.map +1 -1
  1110. package/dist/lexicon/types/com/atproto/identity/getRecommendedDidCredentials.js +3 -5
  1111. package/dist/lexicon/types/com/atproto/identity/getRecommendedDidCredentials.js.map +1 -1
  1112. package/dist/lexicon/types/com/atproto/identity/refreshIdentity.js +3 -5
  1113. package/dist/lexicon/types/com/atproto/identity/refreshIdentity.js.map +1 -1
  1114. package/dist/lexicon/types/com/atproto/identity/requestPlcOperationSignature.js +3 -5
  1115. package/dist/lexicon/types/com/atproto/identity/requestPlcOperationSignature.js.map +1 -1
  1116. package/dist/lexicon/types/com/atproto/identity/resolveDid.js +3 -5
  1117. package/dist/lexicon/types/com/atproto/identity/resolveDid.js.map +1 -1
  1118. package/dist/lexicon/types/com/atproto/identity/resolveHandle.js +3 -5
  1119. package/dist/lexicon/types/com/atproto/identity/resolveHandle.js.map +1 -1
  1120. package/dist/lexicon/types/com/atproto/identity/resolveIdentity.js +3 -5
  1121. package/dist/lexicon/types/com/atproto/identity/resolveIdentity.js.map +1 -1
  1122. package/dist/lexicon/types/com/atproto/identity/signPlcOperation.js +3 -5
  1123. package/dist/lexicon/types/com/atproto/identity/signPlcOperation.js.map +1 -1
  1124. package/dist/lexicon/types/com/atproto/identity/submitPlcOperation.js +3 -5
  1125. package/dist/lexicon/types/com/atproto/identity/submitPlcOperation.js.map +1 -1
  1126. package/dist/lexicon/types/com/atproto/identity/updateHandle.js +3 -5
  1127. package/dist/lexicon/types/com/atproto/identity/updateHandle.js.map +1 -1
  1128. package/dist/lexicon/types/com/atproto/label/defs.d.ts +5 -5
  1129. package/dist/lexicon/types/com/atproto/label/defs.d.ts.map +1 -1
  1130. package/dist/lexicon/types/com/atproto/label/defs.js +13 -25
  1131. package/dist/lexicon/types/com/atproto/label/defs.js.map +1 -1
  1132. package/dist/lexicon/types/com/atproto/label/queryLabels.js +3 -5
  1133. package/dist/lexicon/types/com/atproto/label/queryLabels.js.map +1 -1
  1134. package/dist/lexicon/types/com/atproto/label/subscribeLabels.d.ts +3 -3
  1135. package/dist/lexicon/types/com/atproto/label/subscribeLabels.d.ts.map +1 -1
  1136. package/dist/lexicon/types/com/atproto/label/subscribeLabels.js +7 -13
  1137. package/dist/lexicon/types/com/atproto/label/subscribeLabels.js.map +1 -1
  1138. package/dist/lexicon/types/com/atproto/lexicon/resolveLexicon.js +3 -5
  1139. package/dist/lexicon/types/com/atproto/lexicon/resolveLexicon.js.map +1 -1
  1140. package/dist/lexicon/types/com/atproto/lexicon/schema.d.ts +1 -1
  1141. package/dist/lexicon/types/com/atproto/lexicon/schema.d.ts.map +1 -1
  1142. package/dist/lexicon/types/com/atproto/lexicon/schema.js +6 -11
  1143. package/dist/lexicon/types/com/atproto/lexicon/schema.js.map +1 -1
  1144. package/dist/lexicon/types/com/atproto/moderation/createReport.d.ts +2 -2
  1145. package/dist/lexicon/types/com/atproto/moderation/createReport.d.ts.map +1 -1
  1146. package/dist/lexicon/types/com/atproto/moderation/createReport.js +5 -9
  1147. package/dist/lexicon/types/com/atproto/moderation/createReport.js.map +1 -1
  1148. package/dist/lexicon/types/com/atproto/moderation/defs.js +10 -13
  1149. package/dist/lexicon/types/com/atproto/moderation/defs.js.map +1 -1
  1150. package/dist/lexicon/types/com/atproto/repo/applyWrites.d.ts +7 -7
  1151. package/dist/lexicon/types/com/atproto/repo/applyWrites.d.ts.map +1 -1
  1152. package/dist/lexicon/types/com/atproto/repo/applyWrites.js +15 -29
  1153. package/dist/lexicon/types/com/atproto/repo/applyWrites.js.map +1 -1
  1154. package/dist/lexicon/types/com/atproto/repo/createRecord.js +3 -5
  1155. package/dist/lexicon/types/com/atproto/repo/createRecord.js.map +1 -1
  1156. package/dist/lexicon/types/com/atproto/repo/defs.d.ts +1 -1
  1157. package/dist/lexicon/types/com/atproto/repo/defs.d.ts.map +1 -1
  1158. package/dist/lexicon/types/com/atproto/repo/defs.js +5 -9
  1159. package/dist/lexicon/types/com/atproto/repo/defs.js.map +1 -1
  1160. package/dist/lexicon/types/com/atproto/repo/deleteRecord.js +3 -5
  1161. package/dist/lexicon/types/com/atproto/repo/deleteRecord.js.map +1 -1
  1162. package/dist/lexicon/types/com/atproto/repo/describeRepo.js +3 -5
  1163. package/dist/lexicon/types/com/atproto/repo/describeRepo.js.map +1 -1
  1164. package/dist/lexicon/types/com/atproto/repo/getRecord.js +3 -5
  1165. package/dist/lexicon/types/com/atproto/repo/getRecord.js.map +1 -1
  1166. package/dist/lexicon/types/com/atproto/repo/importRepo.js +3 -5
  1167. package/dist/lexicon/types/com/atproto/repo/importRepo.js.map +1 -1
  1168. package/dist/lexicon/types/com/atproto/repo/listMissingBlobs.d.ts +1 -1
  1169. package/dist/lexicon/types/com/atproto/repo/listMissingBlobs.d.ts.map +1 -1
  1170. package/dist/lexicon/types/com/atproto/repo/listMissingBlobs.js +5 -9
  1171. package/dist/lexicon/types/com/atproto/repo/listMissingBlobs.js.map +1 -1
  1172. package/dist/lexicon/types/com/atproto/repo/listRecords.d.ts +1 -1
  1173. package/dist/lexicon/types/com/atproto/repo/listRecords.d.ts.map +1 -1
  1174. package/dist/lexicon/types/com/atproto/repo/listRecords.js +5 -9
  1175. package/dist/lexicon/types/com/atproto/repo/listRecords.js.map +1 -1
  1176. package/dist/lexicon/types/com/atproto/repo/putRecord.js +3 -5
  1177. package/dist/lexicon/types/com/atproto/repo/putRecord.js.map +1 -1
  1178. package/dist/lexicon/types/com/atproto/repo/strongRef.d.ts +1 -1
  1179. package/dist/lexicon/types/com/atproto/repo/strongRef.d.ts.map +1 -1
  1180. package/dist/lexicon/types/com/atproto/repo/strongRef.js +5 -9
  1181. package/dist/lexicon/types/com/atproto/repo/strongRef.js.map +1 -1
  1182. package/dist/lexicon/types/com/atproto/repo/uploadBlob.js +3 -5
  1183. package/dist/lexicon/types/com/atproto/repo/uploadBlob.js.map +1 -1
  1184. package/dist/lexicon/types/com/atproto/server/activateAccount.js +3 -5
  1185. package/dist/lexicon/types/com/atproto/server/activateAccount.js.map +1 -1
  1186. package/dist/lexicon/types/com/atproto/server/checkAccountStatus.js +3 -5
  1187. package/dist/lexicon/types/com/atproto/server/checkAccountStatus.js.map +1 -1
  1188. package/dist/lexicon/types/com/atproto/server/confirmEmail.js +3 -5
  1189. package/dist/lexicon/types/com/atproto/server/confirmEmail.js.map +1 -1
  1190. package/dist/lexicon/types/com/atproto/server/createAccount.js +3 -5
  1191. package/dist/lexicon/types/com/atproto/server/createAccount.js.map +1 -1
  1192. package/dist/lexicon/types/com/atproto/server/createAppPassword.d.ts +1 -1
  1193. package/dist/lexicon/types/com/atproto/server/createAppPassword.d.ts.map +1 -1
  1194. package/dist/lexicon/types/com/atproto/server/createAppPassword.js +5 -9
  1195. package/dist/lexicon/types/com/atproto/server/createAppPassword.js.map +1 -1
  1196. package/dist/lexicon/types/com/atproto/server/createInviteCode.js +3 -5
  1197. package/dist/lexicon/types/com/atproto/server/createInviteCode.js.map +1 -1
  1198. package/dist/lexicon/types/com/atproto/server/createInviteCodes.d.ts +1 -1
  1199. package/dist/lexicon/types/com/atproto/server/createInviteCodes.d.ts.map +1 -1
  1200. package/dist/lexicon/types/com/atproto/server/createInviteCodes.js +5 -9
  1201. package/dist/lexicon/types/com/atproto/server/createInviteCodes.js.map +1 -1
  1202. package/dist/lexicon/types/com/atproto/server/createSession.js +3 -5
  1203. package/dist/lexicon/types/com/atproto/server/createSession.js.map +1 -1
  1204. package/dist/lexicon/types/com/atproto/server/deactivateAccount.js +3 -5
  1205. package/dist/lexicon/types/com/atproto/server/deactivateAccount.js.map +1 -1
  1206. package/dist/lexicon/types/com/atproto/server/defs.d.ts +2 -2
  1207. package/dist/lexicon/types/com/atproto/server/defs.d.ts.map +1 -1
  1208. package/dist/lexicon/types/com/atproto/server/defs.js +7 -13
  1209. package/dist/lexicon/types/com/atproto/server/defs.js.map +1 -1
  1210. package/dist/lexicon/types/com/atproto/server/deleteAccount.js +3 -5
  1211. package/dist/lexicon/types/com/atproto/server/deleteAccount.js.map +1 -1
  1212. package/dist/lexicon/types/com/atproto/server/deleteSession.js +3 -5
  1213. package/dist/lexicon/types/com/atproto/server/deleteSession.js.map +1 -1
  1214. package/dist/lexicon/types/com/atproto/server/describeServer.d.ts +2 -2
  1215. package/dist/lexicon/types/com/atproto/server/describeServer.d.ts.map +1 -1
  1216. package/dist/lexicon/types/com/atproto/server/describeServer.js +7 -13
  1217. package/dist/lexicon/types/com/atproto/server/describeServer.js.map +1 -1
  1218. package/dist/lexicon/types/com/atproto/server/getAccountInviteCodes.js +3 -5
  1219. package/dist/lexicon/types/com/atproto/server/getAccountInviteCodes.js.map +1 -1
  1220. package/dist/lexicon/types/com/atproto/server/getServiceAuth.js +3 -5
  1221. package/dist/lexicon/types/com/atproto/server/getServiceAuth.js.map +1 -1
  1222. package/dist/lexicon/types/com/atproto/server/getSession.js +3 -5
  1223. package/dist/lexicon/types/com/atproto/server/getSession.js.map +1 -1
  1224. package/dist/lexicon/types/com/atproto/server/listAppPasswords.d.ts +1 -1
  1225. package/dist/lexicon/types/com/atproto/server/listAppPasswords.d.ts.map +1 -1
  1226. package/dist/lexicon/types/com/atproto/server/listAppPasswords.js +5 -9
  1227. package/dist/lexicon/types/com/atproto/server/listAppPasswords.js.map +1 -1
  1228. package/dist/lexicon/types/com/atproto/server/refreshSession.js +3 -5
  1229. package/dist/lexicon/types/com/atproto/server/refreshSession.js.map +1 -1
  1230. package/dist/lexicon/types/com/atproto/server/requestAccountDelete.js +3 -5
  1231. package/dist/lexicon/types/com/atproto/server/requestAccountDelete.js.map +1 -1
  1232. package/dist/lexicon/types/com/atproto/server/requestEmailConfirmation.js +3 -5
  1233. package/dist/lexicon/types/com/atproto/server/requestEmailConfirmation.js.map +1 -1
  1234. package/dist/lexicon/types/com/atproto/server/requestEmailUpdate.js +3 -5
  1235. package/dist/lexicon/types/com/atproto/server/requestEmailUpdate.js.map +1 -1
  1236. package/dist/lexicon/types/com/atproto/server/requestPasswordReset.js +3 -5
  1237. package/dist/lexicon/types/com/atproto/server/requestPasswordReset.js.map +1 -1
  1238. package/dist/lexicon/types/com/atproto/server/reserveSigningKey.js +3 -5
  1239. package/dist/lexicon/types/com/atproto/server/reserveSigningKey.js.map +1 -1
  1240. package/dist/lexicon/types/com/atproto/server/resetPassword.js +3 -5
  1241. package/dist/lexicon/types/com/atproto/server/resetPassword.js.map +1 -1
  1242. package/dist/lexicon/types/com/atproto/server/revokeAppPassword.js +3 -5
  1243. package/dist/lexicon/types/com/atproto/server/revokeAppPassword.js.map +1 -1
  1244. package/dist/lexicon/types/com/atproto/server/updateEmail.js +3 -5
  1245. package/dist/lexicon/types/com/atproto/server/updateEmail.js.map +1 -1
  1246. package/dist/lexicon/types/com/atproto/sync/defs.js +3 -5
  1247. package/dist/lexicon/types/com/atproto/sync/defs.js.map +1 -1
  1248. package/dist/lexicon/types/com/atproto/sync/getBlob.js +3 -5
  1249. package/dist/lexicon/types/com/atproto/sync/getBlob.js.map +1 -1
  1250. package/dist/lexicon/types/com/atproto/sync/getBlocks.js +3 -5
  1251. package/dist/lexicon/types/com/atproto/sync/getBlocks.js.map +1 -1
  1252. package/dist/lexicon/types/com/atproto/sync/getCheckout.js +3 -5
  1253. package/dist/lexicon/types/com/atproto/sync/getCheckout.js.map +1 -1
  1254. package/dist/lexicon/types/com/atproto/sync/getHead.js +3 -5
  1255. package/dist/lexicon/types/com/atproto/sync/getHead.js.map +1 -1
  1256. package/dist/lexicon/types/com/atproto/sync/getHostStatus.js +3 -5
  1257. package/dist/lexicon/types/com/atproto/sync/getHostStatus.js.map +1 -1
  1258. package/dist/lexicon/types/com/atproto/sync/getLatestCommit.js +3 -5
  1259. package/dist/lexicon/types/com/atproto/sync/getLatestCommit.js.map +1 -1
  1260. package/dist/lexicon/types/com/atproto/sync/getRecord.js +3 -5
  1261. package/dist/lexicon/types/com/atproto/sync/getRecord.js.map +1 -1
  1262. package/dist/lexicon/types/com/atproto/sync/getRepo.js +3 -5
  1263. package/dist/lexicon/types/com/atproto/sync/getRepo.js.map +1 -1
  1264. package/dist/lexicon/types/com/atproto/sync/getRepoStatus.js +3 -5
  1265. package/dist/lexicon/types/com/atproto/sync/getRepoStatus.js.map +1 -1
  1266. package/dist/lexicon/types/com/atproto/sync/listBlobs.js +3 -5
  1267. package/dist/lexicon/types/com/atproto/sync/listBlobs.js.map +1 -1
  1268. package/dist/lexicon/types/com/atproto/sync/listHosts.d.ts +1 -1
  1269. package/dist/lexicon/types/com/atproto/sync/listHosts.d.ts.map +1 -1
  1270. package/dist/lexicon/types/com/atproto/sync/listHosts.js +5 -9
  1271. package/dist/lexicon/types/com/atproto/sync/listHosts.js.map +1 -1
  1272. package/dist/lexicon/types/com/atproto/sync/listRepos.d.ts +1 -1
  1273. package/dist/lexicon/types/com/atproto/sync/listRepos.d.ts.map +1 -1
  1274. package/dist/lexicon/types/com/atproto/sync/listRepos.js +5 -9
  1275. package/dist/lexicon/types/com/atproto/sync/listRepos.js.map +1 -1
  1276. package/dist/lexicon/types/com/atproto/sync/listReposByCollection.d.ts +1 -1
  1277. package/dist/lexicon/types/com/atproto/sync/listReposByCollection.d.ts.map +1 -1
  1278. package/dist/lexicon/types/com/atproto/sync/listReposByCollection.js +5 -9
  1279. package/dist/lexicon/types/com/atproto/sync/listReposByCollection.js.map +1 -1
  1280. package/dist/lexicon/types/com/atproto/sync/notifyOfUpdate.js +3 -5
  1281. package/dist/lexicon/types/com/atproto/sync/notifyOfUpdate.js.map +1 -1
  1282. package/dist/lexicon/types/com/atproto/sync/requestCrawl.js +3 -5
  1283. package/dist/lexicon/types/com/atproto/sync/requestCrawl.js.map +1 -1
  1284. package/dist/lexicon/types/com/atproto/sync/subscribeRepos.d.ts +7 -7
  1285. package/dist/lexicon/types/com/atproto/sync/subscribeRepos.d.ts.map +1 -1
  1286. package/dist/lexicon/types/com/atproto/sync/subscribeRepos.js +15 -29
  1287. package/dist/lexicon/types/com/atproto/sync/subscribeRepos.js.map +1 -1
  1288. package/dist/lexicon/types/com/atproto/temp/addReservedHandle.js +3 -5
  1289. package/dist/lexicon/types/com/atproto/temp/addReservedHandle.js.map +1 -1
  1290. package/dist/lexicon/types/com/atproto/temp/checkHandleAvailability.d.ts +4 -4
  1291. package/dist/lexicon/types/com/atproto/temp/checkHandleAvailability.d.ts.map +1 -1
  1292. package/dist/lexicon/types/com/atproto/temp/checkHandleAvailability.js +9 -17
  1293. package/dist/lexicon/types/com/atproto/temp/checkHandleAvailability.js.map +1 -1
  1294. package/dist/lexicon/types/com/atproto/temp/checkSignupQueue.js +3 -5
  1295. package/dist/lexicon/types/com/atproto/temp/checkSignupQueue.js.map +1 -1
  1296. package/dist/lexicon/types/com/atproto/temp/dereferenceScope.js +3 -5
  1297. package/dist/lexicon/types/com/atproto/temp/dereferenceScope.js.map +1 -1
  1298. package/dist/lexicon/types/com/atproto/temp/fetchLabels.js +3 -5
  1299. package/dist/lexicon/types/com/atproto/temp/fetchLabels.js.map +1 -1
  1300. package/dist/lexicon/types/com/atproto/temp/requestPhoneVerification.js +3 -5
  1301. package/dist/lexicon/types/com/atproto/temp/requestPhoneVerification.js.map +1 -1
  1302. package/dist/lexicon/types/com/atproto/temp/revokeAccountCredentials.js +3 -5
  1303. package/dist/lexicon/types/com/atproto/temp/revokeAccountCredentials.js.map +1 -1
  1304. package/dist/lexicon/types/tools/ozone/communication/createTemplate.js +3 -5
  1305. package/dist/lexicon/types/tools/ozone/communication/createTemplate.js.map +1 -1
  1306. package/dist/lexicon/types/tools/ozone/communication/defs.d.ts +1 -1
  1307. package/dist/lexicon/types/tools/ozone/communication/defs.d.ts.map +1 -1
  1308. package/dist/lexicon/types/tools/ozone/communication/defs.js +5 -9
  1309. package/dist/lexicon/types/tools/ozone/communication/defs.js.map +1 -1
  1310. package/dist/lexicon/types/tools/ozone/communication/deleteTemplate.js +3 -5
  1311. package/dist/lexicon/types/tools/ozone/communication/deleteTemplate.js.map +1 -1
  1312. package/dist/lexicon/types/tools/ozone/communication/listTemplates.js +3 -5
  1313. package/dist/lexicon/types/tools/ozone/communication/listTemplates.js.map +1 -1
  1314. package/dist/lexicon/types/tools/ozone/communication/updateTemplate.js +3 -5
  1315. package/dist/lexicon/types/tools/ozone/communication/updateTemplate.js.map +1 -1
  1316. package/dist/lexicon/types/tools/ozone/hosting/getAccountHistory.d.ts +7 -7
  1317. package/dist/lexicon/types/tools/ozone/hosting/getAccountHistory.d.ts.map +1 -1
  1318. package/dist/lexicon/types/tools/ozone/hosting/getAccountHistory.js +15 -29
  1319. package/dist/lexicon/types/tools/ozone/hosting/getAccountHistory.js.map +1 -1
  1320. package/dist/lexicon/types/tools/ozone/moderation/cancelScheduledActions.d.ts +2 -2
  1321. package/dist/lexicon/types/tools/ozone/moderation/cancelScheduledActions.d.ts.map +1 -1
  1322. package/dist/lexicon/types/tools/ozone/moderation/cancelScheduledActions.js +7 -13
  1323. package/dist/lexicon/types/tools/ozone/moderation/cancelScheduledActions.js.map +1 -1
  1324. package/dist/lexicon/types/tools/ozone/moderation/defs.d.ts +49 -49
  1325. package/dist/lexicon/types/tools/ozone/moderation/defs.d.ts.map +1 -1
  1326. package/dist/lexicon/types/tools/ozone/moderation/defs.js +106 -205
  1327. package/dist/lexicon/types/tools/ozone/moderation/defs.js.map +1 -1
  1328. package/dist/lexicon/types/tools/ozone/moderation/emitEvent.d.ts +2 -2
  1329. package/dist/lexicon/types/tools/ozone/moderation/emitEvent.d.ts.map +1 -1
  1330. package/dist/lexicon/types/tools/ozone/moderation/emitEvent.js +5 -9
  1331. package/dist/lexicon/types/tools/ozone/moderation/emitEvent.js.map +1 -1
  1332. package/dist/lexicon/types/tools/ozone/moderation/getAccountTimeline.d.ts +2 -2
  1333. package/dist/lexicon/types/tools/ozone/moderation/getAccountTimeline.d.ts.map +1 -1
  1334. package/dist/lexicon/types/tools/ozone/moderation/getAccountTimeline.js +7 -13
  1335. package/dist/lexicon/types/tools/ozone/moderation/getAccountTimeline.js.map +1 -1
  1336. package/dist/lexicon/types/tools/ozone/moderation/getEvent.js +3 -5
  1337. package/dist/lexicon/types/tools/ozone/moderation/getEvent.js.map +1 -1
  1338. package/dist/lexicon/types/tools/ozone/moderation/getRecord.js +3 -5
  1339. package/dist/lexicon/types/tools/ozone/moderation/getRecord.js.map +1 -1
  1340. package/dist/lexicon/types/tools/ozone/moderation/getRecords.d.ts +1 -1
  1341. package/dist/lexicon/types/tools/ozone/moderation/getRecords.d.ts.map +1 -1
  1342. package/dist/lexicon/types/tools/ozone/moderation/getRecords.js +3 -5
  1343. package/dist/lexicon/types/tools/ozone/moderation/getRecords.js.map +1 -1
  1344. package/dist/lexicon/types/tools/ozone/moderation/getRepo.js +3 -5
  1345. package/dist/lexicon/types/tools/ozone/moderation/getRepo.js.map +1 -1
  1346. package/dist/lexicon/types/tools/ozone/moderation/getReporterStats.js +3 -5
  1347. package/dist/lexicon/types/tools/ozone/moderation/getReporterStats.js.map +1 -1
  1348. package/dist/lexicon/types/tools/ozone/moderation/getRepos.d.ts +1 -1
  1349. package/dist/lexicon/types/tools/ozone/moderation/getRepos.d.ts.map +1 -1
  1350. package/dist/lexicon/types/tools/ozone/moderation/getRepos.js +3 -5
  1351. package/dist/lexicon/types/tools/ozone/moderation/getRepos.js.map +1 -1
  1352. package/dist/lexicon/types/tools/ozone/moderation/getSubjects.js +3 -5
  1353. package/dist/lexicon/types/tools/ozone/moderation/getSubjects.js.map +1 -1
  1354. package/dist/lexicon/types/tools/ozone/moderation/listScheduledActions.js +3 -5
  1355. package/dist/lexicon/types/tools/ozone/moderation/listScheduledActions.js.map +1 -1
  1356. package/dist/lexicon/types/tools/ozone/moderation/queryEvents.js +3 -5
  1357. package/dist/lexicon/types/tools/ozone/moderation/queryEvents.js.map +1 -1
  1358. package/dist/lexicon/types/tools/ozone/moderation/queryStatuses.js +3 -5
  1359. package/dist/lexicon/types/tools/ozone/moderation/queryStatuses.js.map +1 -1
  1360. package/dist/lexicon/types/tools/ozone/moderation/scheduleAction.d.ts +5 -5
  1361. package/dist/lexicon/types/tools/ozone/moderation/scheduleAction.d.ts.map +1 -1
  1362. package/dist/lexicon/types/tools/ozone/moderation/scheduleAction.js +11 -21
  1363. package/dist/lexicon/types/tools/ozone/moderation/scheduleAction.js.map +1 -1
  1364. package/dist/lexicon/types/tools/ozone/moderation/searchRepos.js +3 -5
  1365. package/dist/lexicon/types/tools/ozone/moderation/searchRepos.js.map +1 -1
  1366. package/dist/lexicon/types/tools/ozone/queue/assignModerator.js +3 -5
  1367. package/dist/lexicon/types/tools/ozone/queue/assignModerator.js.map +1 -1
  1368. package/dist/lexicon/types/tools/ozone/queue/createQueue.js +3 -5
  1369. package/dist/lexicon/types/tools/ozone/queue/createQueue.js.map +1 -1
  1370. package/dist/lexicon/types/tools/ozone/queue/defs.d.ts +3 -3
  1371. package/dist/lexicon/types/tools/ozone/queue/defs.d.ts.map +1 -1
  1372. package/dist/lexicon/types/tools/ozone/queue/defs.js +9 -17
  1373. package/dist/lexicon/types/tools/ozone/queue/defs.js.map +1 -1
  1374. package/dist/lexicon/types/tools/ozone/queue/deleteQueue.js +3 -5
  1375. package/dist/lexicon/types/tools/ozone/queue/deleteQueue.js.map +1 -1
  1376. package/dist/lexicon/types/tools/ozone/queue/getAssignments.js +3 -5
  1377. package/dist/lexicon/types/tools/ozone/queue/getAssignments.js.map +1 -1
  1378. package/dist/lexicon/types/tools/ozone/queue/listQueues.js +3 -5
  1379. package/dist/lexicon/types/tools/ozone/queue/listQueues.js.map +1 -1
  1380. package/dist/lexicon/types/tools/ozone/queue/routeReports.js +3 -5
  1381. package/dist/lexicon/types/tools/ozone/queue/routeReports.js.map +1 -1
  1382. package/dist/lexicon/types/tools/ozone/queue/unassignModerator.js +3 -5
  1383. package/dist/lexicon/types/tools/ozone/queue/unassignModerator.js.map +1 -1
  1384. package/dist/lexicon/types/tools/ozone/queue/updateQueue.js +3 -5
  1385. package/dist/lexicon/types/tools/ozone/queue/updateQueue.js.map +1 -1
  1386. package/dist/lexicon/types/tools/ozone/report/assignModerator.js +3 -5
  1387. package/dist/lexicon/types/tools/ozone/report/assignModerator.js.map +1 -1
  1388. package/dist/lexicon/types/tools/ozone/report/createActivity.d.ts +1 -1
  1389. package/dist/lexicon/types/tools/ozone/report/createActivity.d.ts.map +1 -1
  1390. package/dist/lexicon/types/tools/ozone/report/createActivity.js +3 -5
  1391. package/dist/lexicon/types/tools/ozone/report/createActivity.js.map +1 -1
  1392. package/dist/lexicon/types/tools/ozone/report/defs.d.ts +13 -13
  1393. package/dist/lexicon/types/tools/ozone/report/defs.d.ts.map +1 -1
  1394. package/dist/lexicon/types/tools/ozone/report/defs.js +67 -94
  1395. package/dist/lexicon/types/tools/ozone/report/defs.js.map +1 -1
  1396. package/dist/lexicon/types/tools/ozone/report/getAssignments.js +3 -5
  1397. package/dist/lexicon/types/tools/ozone/report/getAssignments.js.map +1 -1
  1398. package/dist/lexicon/types/tools/ozone/report/getHistoricalStats.js +3 -5
  1399. package/dist/lexicon/types/tools/ozone/report/getHistoricalStats.js.map +1 -1
  1400. package/dist/lexicon/types/tools/ozone/report/getLatestReport.js +3 -5
  1401. package/dist/lexicon/types/tools/ozone/report/getLatestReport.js.map +1 -1
  1402. package/dist/lexicon/types/tools/ozone/report/getLiveStats.js +3 -5
  1403. package/dist/lexicon/types/tools/ozone/report/getLiveStats.js.map +1 -1
  1404. package/dist/lexicon/types/tools/ozone/report/getReport.js +3 -5
  1405. package/dist/lexicon/types/tools/ozone/report/getReport.js.map +1 -1
  1406. package/dist/lexicon/types/tools/ozone/report/listActivities.js +3 -5
  1407. package/dist/lexicon/types/tools/ozone/report/listActivities.js.map +1 -1
  1408. package/dist/lexicon/types/tools/ozone/report/queryReports.js +3 -5
  1409. package/dist/lexicon/types/tools/ozone/report/queryReports.js.map +1 -1
  1410. package/dist/lexicon/types/tools/ozone/report/reassignQueue.js +3 -5
  1411. package/dist/lexicon/types/tools/ozone/report/reassignQueue.js.map +1 -1
  1412. package/dist/lexicon/types/tools/ozone/report/refreshStats.js +3 -5
  1413. package/dist/lexicon/types/tools/ozone/report/refreshStats.js.map +1 -1
  1414. package/dist/lexicon/types/tools/ozone/report/unassignModerator.js +3 -5
  1415. package/dist/lexicon/types/tools/ozone/report/unassignModerator.js.map +1 -1
  1416. package/dist/lexicon/types/tools/ozone/safelink/addRule.js +3 -5
  1417. package/dist/lexicon/types/tools/ozone/safelink/addRule.js.map +1 -1
  1418. package/dist/lexicon/types/tools/ozone/safelink/defs.d.ts +2 -2
  1419. package/dist/lexicon/types/tools/ozone/safelink/defs.d.ts.map +1 -1
  1420. package/dist/lexicon/types/tools/ozone/safelink/defs.js +7 -13
  1421. package/dist/lexicon/types/tools/ozone/safelink/defs.js.map +1 -1
  1422. package/dist/lexicon/types/tools/ozone/safelink/queryEvents.js +3 -5
  1423. package/dist/lexicon/types/tools/ozone/safelink/queryEvents.js.map +1 -1
  1424. package/dist/lexicon/types/tools/ozone/safelink/queryRules.js +3 -5
  1425. package/dist/lexicon/types/tools/ozone/safelink/queryRules.js.map +1 -1
  1426. package/dist/lexicon/types/tools/ozone/safelink/removeRule.js +3 -5
  1427. package/dist/lexicon/types/tools/ozone/safelink/removeRule.js.map +1 -1
  1428. package/dist/lexicon/types/tools/ozone/safelink/updateRule.js +3 -5
  1429. package/dist/lexicon/types/tools/ozone/safelink/updateRule.js.map +1 -1
  1430. package/dist/lexicon/types/tools/ozone/server/getConfig.d.ts +2 -2
  1431. package/dist/lexicon/types/tools/ozone/server/getConfig.d.ts.map +1 -1
  1432. package/dist/lexicon/types/tools/ozone/server/getConfig.js +7 -13
  1433. package/dist/lexicon/types/tools/ozone/server/getConfig.js.map +1 -1
  1434. package/dist/lexicon/types/tools/ozone/set/addValues.js +3 -5
  1435. package/dist/lexicon/types/tools/ozone/set/addValues.js.map +1 -1
  1436. package/dist/lexicon/types/tools/ozone/set/defs.d.ts +2 -2
  1437. package/dist/lexicon/types/tools/ozone/set/defs.d.ts.map +1 -1
  1438. package/dist/lexicon/types/tools/ozone/set/defs.js +7 -13
  1439. package/dist/lexicon/types/tools/ozone/set/defs.js.map +1 -1
  1440. package/dist/lexicon/types/tools/ozone/set/deleteSet.js +3 -5
  1441. package/dist/lexicon/types/tools/ozone/set/deleteSet.js.map +1 -1
  1442. package/dist/lexicon/types/tools/ozone/set/deleteValues.js +3 -5
  1443. package/dist/lexicon/types/tools/ozone/set/deleteValues.js.map +1 -1
  1444. package/dist/lexicon/types/tools/ozone/set/getValues.js +3 -5
  1445. package/dist/lexicon/types/tools/ozone/set/getValues.js.map +1 -1
  1446. package/dist/lexicon/types/tools/ozone/set/querySets.js +3 -5
  1447. package/dist/lexicon/types/tools/ozone/set/querySets.js.map +1 -1
  1448. package/dist/lexicon/types/tools/ozone/set/upsertSet.js +3 -5
  1449. package/dist/lexicon/types/tools/ozone/set/upsertSet.js.map +1 -1
  1450. package/dist/lexicon/types/tools/ozone/setting/defs.d.ts +1 -1
  1451. package/dist/lexicon/types/tools/ozone/setting/defs.d.ts.map +1 -1
  1452. package/dist/lexicon/types/tools/ozone/setting/defs.js +5 -9
  1453. package/dist/lexicon/types/tools/ozone/setting/defs.js.map +1 -1
  1454. package/dist/lexicon/types/tools/ozone/setting/listOptions.js +3 -5
  1455. package/dist/lexicon/types/tools/ozone/setting/listOptions.js.map +1 -1
  1456. package/dist/lexicon/types/tools/ozone/setting/removeOptions.js +3 -5
  1457. package/dist/lexicon/types/tools/ozone/setting/removeOptions.js.map +1 -1
  1458. package/dist/lexicon/types/tools/ozone/setting/upsertOption.js +3 -5
  1459. package/dist/lexicon/types/tools/ozone/setting/upsertOption.js.map +1 -1
  1460. package/dist/lexicon/types/tools/ozone/signature/defs.d.ts +1 -1
  1461. package/dist/lexicon/types/tools/ozone/signature/defs.d.ts.map +1 -1
  1462. package/dist/lexicon/types/tools/ozone/signature/defs.js +5 -9
  1463. package/dist/lexicon/types/tools/ozone/signature/defs.js.map +1 -1
  1464. package/dist/lexicon/types/tools/ozone/signature/findCorrelation.js +3 -5
  1465. package/dist/lexicon/types/tools/ozone/signature/findCorrelation.js.map +1 -1
  1466. package/dist/lexicon/types/tools/ozone/signature/findRelatedAccounts.d.ts +1 -1
  1467. package/dist/lexicon/types/tools/ozone/signature/findRelatedAccounts.d.ts.map +1 -1
  1468. package/dist/lexicon/types/tools/ozone/signature/findRelatedAccounts.js +5 -9
  1469. package/dist/lexicon/types/tools/ozone/signature/findRelatedAccounts.js.map +1 -1
  1470. package/dist/lexicon/types/tools/ozone/signature/searchAccounts.js +3 -5
  1471. package/dist/lexicon/types/tools/ozone/signature/searchAccounts.js.map +1 -1
  1472. package/dist/lexicon/types/tools/ozone/team/addMember.js +3 -5
  1473. package/dist/lexicon/types/tools/ozone/team/addMember.js.map +1 -1
  1474. package/dist/lexicon/types/tools/ozone/team/defs.d.ts +1 -1
  1475. package/dist/lexicon/types/tools/ozone/team/defs.d.ts.map +1 -1
  1476. package/dist/lexicon/types/tools/ozone/team/defs.js +9 -14
  1477. package/dist/lexicon/types/tools/ozone/team/defs.js.map +1 -1
  1478. package/dist/lexicon/types/tools/ozone/team/deleteMember.js +3 -5
  1479. package/dist/lexicon/types/tools/ozone/team/deleteMember.js.map +1 -1
  1480. package/dist/lexicon/types/tools/ozone/team/listMembers.js +3 -5
  1481. package/dist/lexicon/types/tools/ozone/team/listMembers.js.map +1 -1
  1482. package/dist/lexicon/types/tools/ozone/team/updateMember.js +3 -5
  1483. package/dist/lexicon/types/tools/ozone/team/updateMember.js.map +1 -1
  1484. package/dist/lexicon/types/tools/ozone/verification/defs.d.ts +2 -2
  1485. package/dist/lexicon/types/tools/ozone/verification/defs.d.ts.map +1 -1
  1486. package/dist/lexicon/types/tools/ozone/verification/defs.js +5 -9
  1487. package/dist/lexicon/types/tools/ozone/verification/defs.js.map +1 -1
  1488. package/dist/lexicon/types/tools/ozone/verification/grantVerifications.d.ts +2 -2
  1489. package/dist/lexicon/types/tools/ozone/verification/grantVerifications.d.ts.map +1 -1
  1490. package/dist/lexicon/types/tools/ozone/verification/grantVerifications.js +7 -13
  1491. package/dist/lexicon/types/tools/ozone/verification/grantVerifications.js.map +1 -1
  1492. package/dist/lexicon/types/tools/ozone/verification/listVerifications.js +3 -5
  1493. package/dist/lexicon/types/tools/ozone/verification/listVerifications.js.map +1 -1
  1494. package/dist/lexicon/types/tools/ozone/verification/revokeVerifications.d.ts +1 -1
  1495. package/dist/lexicon/types/tools/ozone/verification/revokeVerifications.d.ts.map +1 -1
  1496. package/dist/lexicon/types/tools/ozone/verification/revokeVerifications.js +5 -9
  1497. package/dist/lexicon/types/tools/ozone/verification/revokeVerifications.js.map +1 -1
  1498. package/dist/lexicon/util.js +3 -8
  1499. package/dist/lexicon/util.js.map +1 -1
  1500. package/dist/logger.js +11 -14
  1501. package/dist/logger.js.map +1 -1
  1502. package/dist/mod-service/expiring-tags.d.ts +2 -2
  1503. package/dist/mod-service/expiring-tags.d.ts.map +1 -1
  1504. package/dist/mod-service/expiring-tags.js +4 -10
  1505. package/dist/mod-service/expiring-tags.js.map +1 -1
  1506. package/dist/mod-service/index.d.ts +15 -15
  1507. package/dist/mod-service/index.d.ts.map +1 -1
  1508. package/dist/mod-service/index.js +126 -190
  1509. package/dist/mod-service/index.js.map +1 -1
  1510. package/dist/mod-service/profile.d.ts +1 -1
  1511. package/dist/mod-service/profile.d.ts.map +1 -1
  1512. package/dist/mod-service/profile.js +53 -78
  1513. package/dist/mod-service/profile.js.map +1 -1
  1514. package/dist/mod-service/report.d.ts +3 -3
  1515. package/dist/mod-service/report.d.ts.map +1 -1
  1516. package/dist/mod-service/report.js +22 -29
  1517. package/dist/mod-service/report.js.map +1 -1
  1518. package/dist/mod-service/status.d.ts +117 -117
  1519. package/dist/mod-service/status.d.ts.map +1 -1
  1520. package/dist/mod-service/status.js +30 -36
  1521. package/dist/mod-service/status.js.map +1 -1
  1522. package/dist/mod-service/strike.d.ts +1 -1
  1523. package/dist/mod-service/strike.d.ts.map +1 -1
  1524. package/dist/mod-service/strike.js +2 -11
  1525. package/dist/mod-service/strike.js.map +1 -1
  1526. package/dist/mod-service/subject.d.ts +7 -7
  1527. package/dist/mod-service/subject.d.ts.map +1 -1
  1528. package/dist/mod-service/subject.js +30 -145
  1529. package/dist/mod-service/subject.js.map +1 -1
  1530. package/dist/mod-service/types.d.ts +4 -4
  1531. package/dist/mod-service/types.d.ts.map +1 -1
  1532. package/dist/mod-service/types.js +1 -2
  1533. package/dist/mod-service/types.js.map +1 -1
  1534. package/dist/mod-service/util.d.ts +3 -3
  1535. package/dist/mod-service/util.d.ts.map +1 -1
  1536. package/dist/mod-service/util.js +18 -31
  1537. package/dist/mod-service/util.js.map +1 -1
  1538. package/dist/mod-service/views.d.ts +10 -10
  1539. package/dist/mod-service/views.d.ts.map +1 -1
  1540. package/dist/mod-service/views.js +76 -116
  1541. package/dist/mod-service/views.js.map +1 -1
  1542. package/dist/queue/service.d.ts +2 -2
  1543. package/dist/queue/service.d.ts.map +1 -1
  1544. package/dist/queue/service.js +23 -33
  1545. package/dist/queue/service.js.map +1 -1
  1546. package/dist/report/activity.d.ts +3 -3
  1547. package/dist/report/activity.d.ts.map +1 -1
  1548. package/dist/report/activity.js +12 -18
  1549. package/dist/report/activity.js.map +1 -1
  1550. package/dist/report/handle-report-update.js +9 -35
  1551. package/dist/report/handle-report-update.js.map +1 -1
  1552. package/dist/report/reassign.d.ts +2 -2
  1553. package/dist/report/reassign.d.ts.map +1 -1
  1554. package/dist/report/reassign.js +7 -10
  1555. package/dist/report/reassign.js.map +1 -1
  1556. package/dist/report/stats.d.ts +2 -2
  1557. package/dist/report/stats.d.ts.map +1 -1
  1558. package/dist/report/stats.js +41 -50
  1559. package/dist/report/stats.js.map +1 -1
  1560. package/dist/report/views.d.ts +20 -17
  1561. package/dist/report/views.d.ts.map +1 -1
  1562. package/dist/report/views.js +8 -15
  1563. package/dist/report/views.js.map +1 -1
  1564. package/dist/safelink/service.d.ts +3 -3
  1565. package/dist/safelink/service.d.ts.map +1 -1
  1566. package/dist/safelink/service.js +6 -15
  1567. package/dist/safelink/service.js.map +1 -1
  1568. package/dist/scheduled-action/service.d.ts +5 -5
  1569. package/dist/scheduled-action/service.d.ts.map +1 -1
  1570. package/dist/scheduled-action/service.js +7 -16
  1571. package/dist/scheduled-action/service.js.map +1 -1
  1572. package/dist/scheduled-action/types.d.ts +1 -1
  1573. package/dist/scheduled-action/types.d.ts.map +1 -1
  1574. package/dist/scheduled-action/types.js +1 -2
  1575. package/dist/scheduled-action/types.js.map +1 -1
  1576. package/dist/sequencer/index.d.ts +2 -2
  1577. package/dist/sequencer/index.d.ts.map +1 -1
  1578. package/dist/sequencer/index.js +2 -18
  1579. package/dist/sequencer/index.js.map +1 -1
  1580. package/dist/sequencer/outbox.d.ts +1 -1
  1581. package/dist/sequencer/outbox.d.ts.map +1 -1
  1582. package/dist/sequencer/outbox.js +9 -40
  1583. package/dist/sequencer/outbox.js.map +1 -1
  1584. package/dist/sequencer/sequencer.d.ts +9 -8
  1585. package/dist/sequencer/sequencer.d.ts.map +1 -1
  1586. package/dist/sequencer/sequencer.js +11 -56
  1587. package/dist/sequencer/sequencer.js.map +1 -1
  1588. package/dist/set/service.d.ts +4 -4
  1589. package/dist/set/service.d.ts.map +1 -1
  1590. package/dist/set/service.js +5 -14
  1591. package/dist/set/service.js.map +1 -1
  1592. package/dist/setting/constants.js +3 -6
  1593. package/dist/setting/constants.js.map +1 -1
  1594. package/dist/setting/service.d.ts +4 -4
  1595. package/dist/setting/service.d.ts.map +1 -1
  1596. package/dist/setting/service.js +6 -18
  1597. package/dist/setting/service.js.map +1 -1
  1598. package/dist/setting/types.js +1 -2
  1599. package/dist/setting/validators.d.ts +1 -1
  1600. package/dist/setting/validators.d.ts.map +1 -1
  1601. package/dist/setting/validators.js +33 -36
  1602. package/dist/setting/validators.js.map +1 -1
  1603. package/dist/tag-service/content-tagger.d.ts +3 -3
  1604. package/dist/tag-service/content-tagger.d.ts.map +1 -1
  1605. package/dist/tag-service/content-tagger.js +4 -23
  1606. package/dist/tag-service/content-tagger.js.map +1 -1
  1607. package/dist/tag-service/embed-tagger.d.ts +1 -1
  1608. package/dist/tag-service/embed-tagger.d.ts.map +1 -1
  1609. package/dist/tag-service/embed-tagger.js +13 -22
  1610. package/dist/tag-service/embed-tagger.js.map +1 -1
  1611. package/dist/tag-service/index.d.ts +3 -3
  1612. package/dist/tag-service/index.d.ts.map +1 -1
  1613. package/dist/tag-service/index.js +12 -42
  1614. package/dist/tag-service/index.js.map +1 -1
  1615. package/dist/tag-service/language-data.js +4 -8
  1616. package/dist/tag-service/language-data.js.map +1 -1
  1617. package/dist/tag-service/language-tagger.d.ts +1 -1
  1618. package/dist/tag-service/language-tagger.d.ts.map +1 -1
  1619. package/dist/tag-service/language-tagger.js +13 -56
  1620. package/dist/tag-service/language-tagger.js.map +1 -1
  1621. package/dist/tag-service/util.d.ts +1 -1
  1622. package/dist/tag-service/util.d.ts.map +1 -1
  1623. package/dist/tag-service/util.js +1 -5
  1624. package/dist/tag-service/util.js.map +1 -1
  1625. package/dist/team/index.d.ts +5 -5
  1626. package/dist/team/index.d.ts.map +1 -1
  1627. package/dist/team/index.js +13 -37
  1628. package/dist/team/index.js.map +1 -1
  1629. package/dist/util.d.ts +1 -1
  1630. package/dist/util.d.ts.map +1 -1
  1631. package/dist/util.js +19 -32
  1632. package/dist/util.js.map +1 -1
  1633. package/dist/verification/issuer.d.ts +2 -2
  1634. package/dist/verification/issuer.d.ts.map +1 -1
  1635. package/dist/verification/issuer.js +6 -25
  1636. package/dist/verification/issuer.js.map +1 -1
  1637. package/dist/verification/service.d.ts +2 -2
  1638. package/dist/verification/service.d.ts.map +1 -1
  1639. package/dist/verification/service.js +7 -16
  1640. package/dist/verification/service.js.map +1 -1
  1641. package/dist/verification/util.d.ts +3 -3
  1642. package/dist/verification/util.d.ts.map +1 -1
  1643. package/dist/verification/util.js +4 -8
  1644. package/dist/verification/util.js.map +1 -1
  1645. package/jest.config.cjs +22 -0
  1646. package/package.json +28 -22
  1647. package/src/api/chat/getActorMetadata.ts +3 -3
  1648. package/src/api/chat/getMessageContext.ts +3 -3
  1649. package/src/api/chat/index.ts +4 -4
  1650. package/src/api/communication/createTemplate.ts +3 -3
  1651. package/src/api/communication/deleteTemplate.ts +2 -2
  1652. package/src/api/communication/listTemplates.ts +2 -2
  1653. package/src/api/communication/updateTemplate.ts +3 -3
  1654. package/src/api/health.ts +1 -1
  1655. package/src/api/index.ts +71 -71
  1656. package/src/api/label/fetchLabels.ts +2 -2
  1657. package/src/api/label/queryLabels.ts +2 -2
  1658. package/src/api/label/subscribeLabels.ts +3 -3
  1659. package/src/api/moderation/cancelScheduledActions.ts +4 -4
  1660. package/src/api/moderation/emitEvent.ts +16 -16
  1661. package/src/api/moderation/getAccountTimeline.ts +4 -4
  1662. package/src/api/moderation/getEvent.ts +2 -2
  1663. package/src/api/moderation/getRecord.ts +3 -3
  1664. package/src/api/moderation/getRecords.ts +3 -3
  1665. package/src/api/moderation/getRepo.ts +3 -3
  1666. package/src/api/moderation/getReporterStats.ts +2 -2
  1667. package/src/api/moderation/getRepos.ts +3 -3
  1668. package/src/api/moderation/getSubjects.ts +4 -4
  1669. package/src/api/moderation/listScheduledActions.ts +3 -3
  1670. package/src/api/moderation/queryEvents.ts +3 -3
  1671. package/src/api/moderation/queryStatuses.ts +2 -2
  1672. package/src/api/moderation/scheduleAction.ts +6 -6
  1673. package/src/api/moderation/searchRepos.ts +3 -3
  1674. package/src/api/moderation/util.ts +3 -3
  1675. package/src/api/proxied.ts +3 -3
  1676. package/src/api/queue/assignModerator.ts +3 -3
  1677. package/src/api/queue/createQueue.ts +2 -2
  1678. package/src/api/queue/deleteQueue.ts +2 -2
  1679. package/src/api/queue/getAssignments.ts +2 -2
  1680. package/src/api/queue/listQueues.ts +2 -2
  1681. package/src/api/queue/routeReports.ts +2 -2
  1682. package/src/api/queue/unassignModerator.ts +3 -3
  1683. package/src/api/queue/updateQueue.ts +2 -2
  1684. package/src/api/report/assignModerator.ts +3 -3
  1685. package/src/api/report/createActivity.ts +4 -4
  1686. package/src/api/report/createReport.ts +8 -8
  1687. package/src/api/report/getAssignments.ts +2 -2
  1688. package/src/api/report/getHistoricalStats.ts +3 -3
  1689. package/src/api/report/getLatestReport.ts +5 -5
  1690. package/src/api/report/getLiveStats.ts +3 -3
  1691. package/src/api/report/getReport.ts +5 -5
  1692. package/src/api/report/listActivities.ts +6 -3
  1693. package/src/api/report/queryReports.ts +5 -5
  1694. package/src/api/report/reassignQueue.ts +6 -6
  1695. package/src/api/report/refreshStats.ts +2 -2
  1696. package/src/api/report/unassignModerator.ts +3 -3
  1697. package/src/api/safelink/addRule.ts +3 -3
  1698. package/src/api/safelink/queryEvents.ts +3 -3
  1699. package/src/api/safelink/queryRules.ts +3 -3
  1700. package/src/api/safelink/removeRule.ts +3 -3
  1701. package/src/api/safelink/updateRule.ts +3 -3
  1702. package/src/api/server/getConfig.ts +2 -2
  1703. package/src/api/set/addValues.ts +2 -2
  1704. package/src/api/set/deleteSet.ts +2 -2
  1705. package/src/api/set/deleteValues.ts +2 -2
  1706. package/src/api/set/getValues.ts +2 -2
  1707. package/src/api/set/querySets.ts +2 -2
  1708. package/src/api/set/upsertSet.ts +2 -2
  1709. package/src/api/setting/listOptions.ts +2 -2
  1710. package/src/api/setting/removeOptions.ts +3 -3
  1711. package/src/api/setting/upsertOption.ts +6 -6
  1712. package/src/api/team/addMember.ts +3 -3
  1713. package/src/api/team/deleteMember.ts +2 -2
  1714. package/src/api/team/listMembers.ts +2 -2
  1715. package/src/api/team/updateMember.ts +3 -3
  1716. package/src/api/util.ts +10 -10
  1717. package/src/api/verification/grantVerifications.ts +4 -4
  1718. package/src/api/verification/listVerifications.ts +3 -3
  1719. package/src/api/verification/revokeVerifications.ts +2 -2
  1720. package/src/api/well-known.ts +1 -1
  1721. package/src/assignment/index.ts +9 -9
  1722. package/src/auth-verifier.ts +1 -1
  1723. package/src/background.ts +9 -5
  1724. package/src/communication-service/template.ts +3 -3
  1725. package/src/config/config.ts +1 -1
  1726. package/src/config/index.ts +3 -3
  1727. package/src/config/secrets.ts +1 -1
  1728. package/src/context.ts +29 -23
  1729. package/src/daemon/blob-diverter.ts +3 -3
  1730. package/src/daemon/context.ts +20 -20
  1731. package/src/daemon/event-pusher.ts +7 -7
  1732. package/src/daemon/event-reverser.ts +8 -5
  1733. package/src/daemon/index.ts +8 -8
  1734. package/src/daemon/job-cursor.ts +1 -1
  1735. package/src/daemon/materialized-view-refresher.ts +2 -2
  1736. package/src/daemon/queue-router.ts +4 -4
  1737. package/src/daemon/scheduled-action-processor.ts +14 -11
  1738. package/src/daemon/stats-computer.ts +3 -3
  1739. package/src/daemon/strike-expiry-processor.ts +4 -4
  1740. package/src/daemon/team-profile-synchronizer.ts +2 -2
  1741. package/src/daemon/verification-listener.ts +5 -5
  1742. package/src/db/index.ts +13 -9
  1743. package/src/db/migrations/20241220T144630860Z-stats-materialized-views.ts +6 -6
  1744. package/src/db/migrations/20250718T150931000Z-update-appeal-reason-stats.ts +5 -5
  1745. package/src/db/migrations/index.ts +38 -38
  1746. package/src/db/pagination.ts +1 -1
  1747. package/src/db/schema/index.ts +27 -27
  1748. package/src/db/schema/moderation_subject_status.ts +1 -1
  1749. package/src/db/schema/safelink.ts +1 -1
  1750. package/src/db/schema/setting.ts +1 -1
  1751. package/src/db/types.ts +3 -1
  1752. package/src/error.ts +1 -1
  1753. package/src/index.ts +19 -15
  1754. package/src/jetstream/service.ts +1 -0
  1755. package/src/lexicon/index.ts +6 -6
  1756. package/src/lexicon/lexicons.ts +638 -14
  1757. package/src/lexicon/types/app/bsky/actor/defs.ts +2 -2
  1758. package/src/lexicon/types/app/bsky/actor/getPreferences.ts +2 -2
  1759. package/src/lexicon/types/app/bsky/actor/getProfile.ts +2 -2
  1760. package/src/lexicon/types/app/bsky/actor/getProfiles.ts +2 -2
  1761. package/src/lexicon/types/app/bsky/actor/getSuggestions.ts +2 -2
  1762. package/src/lexicon/types/app/bsky/actor/profile.ts +2 -2
  1763. package/src/lexicon/types/app/bsky/actor/putPreferences.ts +2 -2
  1764. package/src/lexicon/types/app/bsky/actor/searchActors.ts +2 -2
  1765. package/src/lexicon/types/app/bsky/actor/searchActorsTypeahead.ts +2 -2
  1766. package/src/lexicon/types/app/bsky/actor/status.ts +2 -2
  1767. package/src/lexicon/types/app/bsky/ageassurance/begin.ts +2 -2
  1768. package/src/lexicon/types/app/bsky/ageassurance/defs.ts +2 -2
  1769. package/src/lexicon/types/app/bsky/ageassurance/getConfig.ts +2 -2
  1770. package/src/lexicon/types/app/bsky/ageassurance/getState.ts +2 -2
  1771. package/src/lexicon/types/app/bsky/bookmark/createBookmark.ts +2 -2
  1772. package/src/lexicon/types/app/bsky/bookmark/defs.ts +2 -2
  1773. package/src/lexicon/types/app/bsky/bookmark/deleteBookmark.ts +2 -2
  1774. package/src/lexicon/types/app/bsky/bookmark/getBookmarks.ts +2 -2
  1775. package/src/lexicon/types/app/bsky/contact/defs.ts +2 -2
  1776. package/src/lexicon/types/app/bsky/contact/dismissMatch.ts +2 -2
  1777. package/src/lexicon/types/app/bsky/contact/getMatches.ts +2 -2
  1778. package/src/lexicon/types/app/bsky/contact/getSyncStatus.ts +2 -2
  1779. package/src/lexicon/types/app/bsky/contact/importContacts.ts +2 -2
  1780. package/src/lexicon/types/app/bsky/contact/removeData.ts +2 -2
  1781. package/src/lexicon/types/app/bsky/contact/sendNotification.ts +2 -2
  1782. package/src/lexicon/types/app/bsky/contact/startPhoneVerification.ts +2 -2
  1783. package/src/lexicon/types/app/bsky/contact/verifyPhone.ts +2 -2
  1784. package/src/lexicon/types/app/bsky/draft/createDraft.ts +2 -2
  1785. package/src/lexicon/types/app/bsky/draft/defs.ts +2 -2
  1786. package/src/lexicon/types/app/bsky/draft/deleteDraft.ts +2 -2
  1787. package/src/lexicon/types/app/bsky/draft/getDrafts.ts +2 -2
  1788. package/src/lexicon/types/app/bsky/draft/updateDraft.ts +2 -2
  1789. package/src/lexicon/types/app/bsky/embed/defs.ts +2 -2
  1790. package/src/lexicon/types/app/bsky/embed/external.ts +4 -3
  1791. package/src/lexicon/types/app/bsky/embed/images.ts +2 -2
  1792. package/src/lexicon/types/app/bsky/embed/record.ts +2 -2
  1793. package/src/lexicon/types/app/bsky/embed/recordWithMedia.ts +2 -2
  1794. package/src/lexicon/types/app/bsky/embed/video.ts +2 -2
  1795. package/src/lexicon/types/app/bsky/feed/defs.ts +2 -2
  1796. package/src/lexicon/types/app/bsky/feed/describeFeedGenerator.ts +2 -2
  1797. package/src/lexicon/types/app/bsky/feed/generator.ts +2 -2
  1798. package/src/lexicon/types/app/bsky/feed/getActorFeeds.ts +2 -2
  1799. package/src/lexicon/types/app/bsky/feed/getActorLikes.ts +2 -2
  1800. package/src/lexicon/types/app/bsky/feed/getAuthorFeed.ts +2 -2
  1801. package/src/lexicon/types/app/bsky/feed/getFeed.ts +2 -2
  1802. package/src/lexicon/types/app/bsky/feed/getFeedGenerator.ts +2 -2
  1803. package/src/lexicon/types/app/bsky/feed/getFeedGenerators.ts +2 -2
  1804. package/src/lexicon/types/app/bsky/feed/getFeedSkeleton.ts +2 -2
  1805. package/src/lexicon/types/app/bsky/feed/getLikes.ts +2 -2
  1806. package/src/lexicon/types/app/bsky/feed/getListFeed.ts +2 -2
  1807. package/src/lexicon/types/app/bsky/feed/getPostThread.ts +2 -2
  1808. package/src/lexicon/types/app/bsky/feed/getPosts.ts +2 -2
  1809. package/src/lexicon/types/app/bsky/feed/getQuotes.ts +2 -2
  1810. package/src/lexicon/types/app/bsky/feed/getRepostedBy.ts +2 -2
  1811. package/src/lexicon/types/app/bsky/feed/getSuggestedFeeds.ts +2 -2
  1812. package/src/lexicon/types/app/bsky/feed/getTimeline.ts +2 -2
  1813. package/src/lexicon/types/app/bsky/feed/like.ts +2 -2
  1814. package/src/lexicon/types/app/bsky/feed/post.ts +2 -2
  1815. package/src/lexicon/types/app/bsky/feed/postgate.ts +2 -2
  1816. package/src/lexicon/types/app/bsky/feed/repost.ts +2 -2
  1817. package/src/lexicon/types/app/bsky/feed/searchPosts.ts +2 -2
  1818. package/src/lexicon/types/app/bsky/feed/sendInteractions.ts +2 -2
  1819. package/src/lexicon/types/app/bsky/feed/threadgate.ts +2 -2
  1820. package/src/lexicon/types/app/bsky/graph/block.ts +2 -2
  1821. package/src/lexicon/types/app/bsky/graph/defs.ts +2 -2
  1822. package/src/lexicon/types/app/bsky/graph/follow.ts +2 -2
  1823. package/src/lexicon/types/app/bsky/graph/getActorStarterPacks.ts +2 -2
  1824. package/src/lexicon/types/app/bsky/graph/getBlocks.ts +2 -2
  1825. package/src/lexicon/types/app/bsky/graph/getFollowers.ts +2 -2
  1826. package/src/lexicon/types/app/bsky/graph/getFollows.ts +2 -2
  1827. package/src/lexicon/types/app/bsky/graph/getKnownFollowers.ts +2 -2
  1828. package/src/lexicon/types/app/bsky/graph/getList.ts +2 -2
  1829. package/src/lexicon/types/app/bsky/graph/getListBlocks.ts +2 -2
  1830. package/src/lexicon/types/app/bsky/graph/getListMutes.ts +2 -2
  1831. package/src/lexicon/types/app/bsky/graph/getLists.ts +2 -2
  1832. package/src/lexicon/types/app/bsky/graph/getListsWithMembership.ts +2 -2
  1833. package/src/lexicon/types/app/bsky/graph/getMutes.ts +2 -2
  1834. package/src/lexicon/types/app/bsky/graph/getRelationships.ts +2 -2
  1835. package/src/lexicon/types/app/bsky/graph/getStarterPack.ts +2 -2
  1836. package/src/lexicon/types/app/bsky/graph/getStarterPacks.ts +2 -2
  1837. package/src/lexicon/types/app/bsky/graph/getStarterPacksWithMembership.ts +2 -2
  1838. package/src/lexicon/types/app/bsky/graph/getSuggestedFollowsByActor.ts +2 -2
  1839. package/src/lexicon/types/app/bsky/graph/list.ts +2 -2
  1840. package/src/lexicon/types/app/bsky/graph/listblock.ts +2 -2
  1841. package/src/lexicon/types/app/bsky/graph/listitem.ts +2 -2
  1842. package/src/lexicon/types/app/bsky/graph/muteActor.ts +2 -2
  1843. package/src/lexicon/types/app/bsky/graph/muteActorList.ts +2 -2
  1844. package/src/lexicon/types/app/bsky/graph/muteThread.ts +2 -2
  1845. package/src/lexicon/types/app/bsky/graph/searchStarterPacks.ts +2 -2
  1846. package/src/lexicon/types/app/bsky/graph/starterpack.ts +2 -2
  1847. package/src/lexicon/types/app/bsky/graph/unmuteActor.ts +2 -2
  1848. package/src/lexicon/types/app/bsky/graph/unmuteActorList.ts +2 -2
  1849. package/src/lexicon/types/app/bsky/graph/unmuteThread.ts +2 -2
  1850. package/src/lexicon/types/app/bsky/graph/verification.ts +2 -2
  1851. package/src/lexicon/types/app/bsky/labeler/defs.ts +2 -2
  1852. package/src/lexicon/types/app/bsky/labeler/getServices.ts +2 -2
  1853. package/src/lexicon/types/app/bsky/labeler/service.ts +2 -2
  1854. package/src/lexicon/types/app/bsky/notification/declaration.ts +2 -2
  1855. package/src/lexicon/types/app/bsky/notification/defs.ts +2 -2
  1856. package/src/lexicon/types/app/bsky/notification/getPreferences.ts +2 -2
  1857. package/src/lexicon/types/app/bsky/notification/getUnreadCount.ts +2 -2
  1858. package/src/lexicon/types/app/bsky/notification/listActivitySubscriptions.ts +2 -2
  1859. package/src/lexicon/types/app/bsky/notification/listNotifications.ts +2 -2
  1860. package/src/lexicon/types/app/bsky/notification/putActivitySubscription.ts +2 -2
  1861. package/src/lexicon/types/app/bsky/notification/putPreferences.ts +2 -2
  1862. package/src/lexicon/types/app/bsky/notification/putPreferencesV2.ts +2 -2
  1863. package/src/lexicon/types/app/bsky/notification/registerPush.ts +2 -2
  1864. package/src/lexicon/types/app/bsky/notification/unregisterPush.ts +2 -2
  1865. package/src/lexicon/types/app/bsky/notification/updateSeen.ts +2 -2
  1866. package/src/lexicon/types/app/bsky/richtext/facet.ts +2 -2
  1867. package/src/lexicon/types/app/bsky/unspecced/defs.ts +2 -2
  1868. package/src/lexicon/types/app/bsky/unspecced/getAgeAssuranceState.ts +2 -2
  1869. package/src/lexicon/types/app/bsky/unspecced/getConfig.ts +2 -2
  1870. package/src/lexicon/types/app/bsky/unspecced/getOnboardingSuggestedStarterPacks.ts +2 -2
  1871. package/src/lexicon/types/app/bsky/unspecced/getOnboardingSuggestedStarterPacksSkeleton.ts +2 -2
  1872. package/src/lexicon/types/app/bsky/unspecced/getOnboardingSuggestedUsersSkeleton.ts +2 -2
  1873. package/src/lexicon/types/app/bsky/unspecced/getPopularFeedGenerators.ts +2 -2
  1874. package/src/lexicon/types/app/bsky/unspecced/getPostThreadOtherV2.ts +2 -2
  1875. package/src/lexicon/types/app/bsky/unspecced/getPostThreadV2.ts +2 -2
  1876. package/src/lexicon/types/app/bsky/unspecced/getSuggestedFeeds.ts +2 -2
  1877. package/src/lexicon/types/app/bsky/unspecced/getSuggestedFeedsSkeleton.ts +2 -2
  1878. package/src/lexicon/types/app/bsky/unspecced/getSuggestedOnboardingUsers.ts +2 -2
  1879. package/src/lexicon/types/app/bsky/unspecced/getSuggestedStarterPacks.ts +2 -2
  1880. package/src/lexicon/types/app/bsky/unspecced/getSuggestedStarterPacksSkeleton.ts +2 -2
  1881. package/src/lexicon/types/app/bsky/unspecced/getSuggestedUsers.ts +2 -2
  1882. package/src/lexicon/types/app/bsky/unspecced/getSuggestedUsersForDiscover.ts +2 -2
  1883. package/src/lexicon/types/app/bsky/unspecced/getSuggestedUsersForDiscoverSkeleton.ts +2 -2
  1884. package/src/lexicon/types/app/bsky/unspecced/getSuggestedUsersForExplore.ts +2 -2
  1885. package/src/lexicon/types/app/bsky/unspecced/getSuggestedUsersForExploreSkeleton.ts +2 -2
  1886. package/src/lexicon/types/app/bsky/unspecced/getSuggestedUsersForSeeMore.ts +2 -2
  1887. package/src/lexicon/types/app/bsky/unspecced/getSuggestedUsersForSeeMoreSkeleton.ts +2 -2
  1888. package/src/lexicon/types/app/bsky/unspecced/getSuggestedUsersSkeleton.ts +2 -2
  1889. package/src/lexicon/types/app/bsky/unspecced/getSuggestionsSkeleton.ts +2 -2
  1890. package/src/lexicon/types/app/bsky/unspecced/getTaggedSuggestions.ts +2 -2
  1891. package/src/lexicon/types/app/bsky/unspecced/getTrendingTopics.ts +2 -2
  1892. package/src/lexicon/types/app/bsky/unspecced/getTrends.ts +2 -2
  1893. package/src/lexicon/types/app/bsky/unspecced/getTrendsSkeleton.ts +2 -2
  1894. package/src/lexicon/types/app/bsky/unspecced/initAgeAssurance.ts +2 -2
  1895. package/src/lexicon/types/app/bsky/unspecced/searchActorsSkeleton.ts +2 -2
  1896. package/src/lexicon/types/app/bsky/unspecced/searchPostsSkeleton.ts +2 -2
  1897. package/src/lexicon/types/app/bsky/unspecced/searchStarterPacksSkeleton.ts +2 -2
  1898. package/src/lexicon/types/app/bsky/video/defs.ts +2 -2
  1899. package/src/lexicon/types/app/bsky/video/getJobStatus.ts +2 -2
  1900. package/src/lexicon/types/app/bsky/video/getUploadLimits.ts +2 -2
  1901. package/src/lexicon/types/app/bsky/video/uploadVideo.ts +2 -2
  1902. package/src/lexicon/types/chat/bsky/actor/declaration.ts +2 -2
  1903. package/src/lexicon/types/chat/bsky/actor/defs.ts +2 -2
  1904. package/src/lexicon/types/chat/bsky/actor/deleteAccount.ts +2 -2
  1905. package/src/lexicon/types/chat/bsky/actor/exportAccountData.ts +2 -2
  1906. package/src/lexicon/types/chat/bsky/convo/acceptConvo.ts +2 -2
  1907. package/src/lexicon/types/chat/bsky/convo/addReaction.ts +2 -2
  1908. package/src/lexicon/types/chat/bsky/convo/defs.ts +19 -3
  1909. package/src/lexicon/types/chat/bsky/convo/deleteMessageForSelf.ts +2 -2
  1910. package/src/lexicon/types/chat/bsky/convo/getConvo.ts +2 -2
  1911. package/src/lexicon/types/chat/bsky/convo/getConvoAvailability.ts +2 -2
  1912. package/src/lexicon/types/chat/bsky/convo/getConvoForMembers.ts +2 -2
  1913. package/src/lexicon/types/chat/bsky/convo/getConvoMembers.ts +2 -2
  1914. package/src/lexicon/types/chat/bsky/convo/getLog.ts +2 -2
  1915. package/src/lexicon/types/chat/bsky/convo/getMessages.ts +2 -2
  1916. package/src/lexicon/types/chat/bsky/convo/leaveConvo.ts +2 -2
  1917. package/src/lexicon/types/chat/bsky/convo/listConvoRequests.ts +2 -2
  1918. package/src/lexicon/types/chat/bsky/convo/listConvos.ts +4 -2
  1919. package/src/lexicon/types/chat/bsky/convo/lockConvo.ts +2 -2
  1920. package/src/lexicon/types/chat/bsky/convo/muteConvo.ts +2 -2
  1921. package/src/lexicon/types/chat/bsky/convo/removeReaction.ts +2 -2
  1922. package/src/lexicon/types/chat/bsky/convo/sendMessage.ts +2 -2
  1923. package/src/lexicon/types/chat/bsky/convo/sendMessageBatch.ts +2 -2
  1924. package/src/lexicon/types/chat/bsky/convo/unlockConvo.ts +2 -2
  1925. package/src/lexicon/types/chat/bsky/convo/unmuteConvo.ts +2 -2
  1926. package/src/lexicon/types/chat/bsky/convo/updateAllRead.ts +2 -2
  1927. package/src/lexicon/types/chat/bsky/convo/updateRead.ts +2 -2
  1928. package/src/lexicon/types/chat/bsky/group/addMembers.ts +3 -3
  1929. package/src/lexicon/types/chat/bsky/group/approveJoinRequest.ts +2 -2
  1930. package/src/lexicon/types/chat/bsky/group/createGroup.ts +3 -3
  1931. package/src/lexicon/types/chat/bsky/group/createJoinLink.ts +2 -2
  1932. package/src/lexicon/types/chat/bsky/group/defs.ts +11 -9
  1933. package/src/lexicon/types/chat/bsky/group/disableJoinLink.ts +2 -2
  1934. package/src/lexicon/types/chat/bsky/group/editGroup.ts +2 -2
  1935. package/src/lexicon/types/chat/bsky/group/editJoinLink.ts +2 -2
  1936. package/src/lexicon/types/chat/bsky/group/enableJoinLink.ts +2 -2
  1937. package/src/lexicon/types/chat/bsky/group/{getGroupPublicInfo.ts → getJoinLinkPreview.ts} +4 -4
  1938. package/src/lexicon/types/chat/bsky/group/listJoinRequests.ts +2 -2
  1939. package/src/lexicon/types/chat/bsky/group/rejectJoinRequest.ts +2 -2
  1940. package/src/lexicon/types/chat/bsky/group/removeMembers.ts +2 -2
  1941. package/src/lexicon/types/chat/bsky/group/requestJoin.ts +2 -2
  1942. package/src/lexicon/types/chat/bsky/moderation/getActorMetadata.ts +2 -2
  1943. package/src/lexicon/types/chat/bsky/moderation/getMessageContext.ts +6 -3
  1944. package/src/lexicon/types/chat/bsky/moderation/subscribeModEvents.ts +342 -3
  1945. package/src/lexicon/types/chat/bsky/moderation/updateActorAccess.ts +2 -2
  1946. package/src/lexicon/types/com/atproto/admin/defs.ts +2 -2
  1947. package/src/lexicon/types/com/atproto/admin/deleteAccount.ts +2 -2
  1948. package/src/lexicon/types/com/atproto/admin/disableAccountInvites.ts +2 -2
  1949. package/src/lexicon/types/com/atproto/admin/disableInviteCodes.ts +2 -2
  1950. package/src/lexicon/types/com/atproto/admin/enableAccountInvites.ts +2 -2
  1951. package/src/lexicon/types/com/atproto/admin/getAccountInfo.ts +2 -2
  1952. package/src/lexicon/types/com/atproto/admin/getAccountInfos.ts +2 -2
  1953. package/src/lexicon/types/com/atproto/admin/getInviteCodes.ts +2 -2
  1954. package/src/lexicon/types/com/atproto/admin/getSubjectStatus.ts +2 -2
  1955. package/src/lexicon/types/com/atproto/admin/searchAccounts.ts +2 -2
  1956. package/src/lexicon/types/com/atproto/admin/sendEmail.ts +2 -2
  1957. package/src/lexicon/types/com/atproto/admin/updateAccountEmail.ts +2 -2
  1958. package/src/lexicon/types/com/atproto/admin/updateAccountHandle.ts +2 -2
  1959. package/src/lexicon/types/com/atproto/admin/updateAccountPassword.ts +2 -2
  1960. package/src/lexicon/types/com/atproto/admin/updateAccountSigningKey.ts +2 -2
  1961. package/src/lexicon/types/com/atproto/admin/updateSubjectStatus.ts +2 -2
  1962. package/src/lexicon/types/com/atproto/identity/defs.ts +2 -2
  1963. package/src/lexicon/types/com/atproto/identity/getRecommendedDidCredentials.ts +2 -2
  1964. package/src/lexicon/types/com/atproto/identity/refreshIdentity.ts +2 -2
  1965. package/src/lexicon/types/com/atproto/identity/requestPlcOperationSignature.ts +2 -2
  1966. package/src/lexicon/types/com/atproto/identity/resolveDid.ts +2 -2
  1967. package/src/lexicon/types/com/atproto/identity/resolveHandle.ts +2 -2
  1968. package/src/lexicon/types/com/atproto/identity/resolveIdentity.ts +2 -2
  1969. package/src/lexicon/types/com/atproto/identity/signPlcOperation.ts +2 -2
  1970. package/src/lexicon/types/com/atproto/identity/submitPlcOperation.ts +2 -2
  1971. package/src/lexicon/types/com/atproto/identity/updateHandle.ts +2 -2
  1972. package/src/lexicon/types/com/atproto/label/defs.ts +2 -2
  1973. package/src/lexicon/types/com/atproto/label/queryLabels.ts +2 -2
  1974. package/src/lexicon/types/com/atproto/label/subscribeLabels.ts +2 -2
  1975. package/src/lexicon/types/com/atproto/lexicon/resolveLexicon.ts +2 -2
  1976. package/src/lexicon/types/com/atproto/lexicon/schema.ts +2 -2
  1977. package/src/lexicon/types/com/atproto/moderation/createReport.ts +2 -2
  1978. package/src/lexicon/types/com/atproto/moderation/defs.ts +2 -2
  1979. package/src/lexicon/types/com/atproto/repo/applyWrites.ts +2 -2
  1980. package/src/lexicon/types/com/atproto/repo/createRecord.ts +2 -2
  1981. package/src/lexicon/types/com/atproto/repo/defs.ts +2 -2
  1982. package/src/lexicon/types/com/atproto/repo/deleteRecord.ts +2 -2
  1983. package/src/lexicon/types/com/atproto/repo/describeRepo.ts +2 -2
  1984. package/src/lexicon/types/com/atproto/repo/getRecord.ts +2 -2
  1985. package/src/lexicon/types/com/atproto/repo/importRepo.ts +2 -2
  1986. package/src/lexicon/types/com/atproto/repo/listMissingBlobs.ts +2 -2
  1987. package/src/lexicon/types/com/atproto/repo/listRecords.ts +2 -2
  1988. package/src/lexicon/types/com/atproto/repo/putRecord.ts +2 -2
  1989. package/src/lexicon/types/com/atproto/repo/strongRef.ts +2 -2
  1990. package/src/lexicon/types/com/atproto/repo/uploadBlob.ts +2 -2
  1991. package/src/lexicon/types/com/atproto/server/activateAccount.ts +2 -2
  1992. package/src/lexicon/types/com/atproto/server/checkAccountStatus.ts +2 -2
  1993. package/src/lexicon/types/com/atproto/server/confirmEmail.ts +2 -2
  1994. package/src/lexicon/types/com/atproto/server/createAccount.ts +2 -2
  1995. package/src/lexicon/types/com/atproto/server/createAppPassword.ts +2 -2
  1996. package/src/lexicon/types/com/atproto/server/createInviteCode.ts +2 -2
  1997. package/src/lexicon/types/com/atproto/server/createInviteCodes.ts +2 -2
  1998. package/src/lexicon/types/com/atproto/server/createSession.ts +2 -2
  1999. package/src/lexicon/types/com/atproto/server/deactivateAccount.ts +2 -2
  2000. package/src/lexicon/types/com/atproto/server/defs.ts +2 -2
  2001. package/src/lexicon/types/com/atproto/server/deleteAccount.ts +2 -2
  2002. package/src/lexicon/types/com/atproto/server/deleteSession.ts +2 -2
  2003. package/src/lexicon/types/com/atproto/server/describeServer.ts +2 -2
  2004. package/src/lexicon/types/com/atproto/server/getAccountInviteCodes.ts +2 -2
  2005. package/src/lexicon/types/com/atproto/server/getServiceAuth.ts +2 -2
  2006. package/src/lexicon/types/com/atproto/server/getSession.ts +2 -2
  2007. package/src/lexicon/types/com/atproto/server/listAppPasswords.ts +2 -2
  2008. package/src/lexicon/types/com/atproto/server/refreshSession.ts +2 -2
  2009. package/src/lexicon/types/com/atproto/server/requestAccountDelete.ts +2 -2
  2010. package/src/lexicon/types/com/atproto/server/requestEmailConfirmation.ts +2 -2
  2011. package/src/lexicon/types/com/atproto/server/requestEmailUpdate.ts +2 -2
  2012. package/src/lexicon/types/com/atproto/server/requestPasswordReset.ts +2 -2
  2013. package/src/lexicon/types/com/atproto/server/reserveSigningKey.ts +2 -2
  2014. package/src/lexicon/types/com/atproto/server/resetPassword.ts +2 -2
  2015. package/src/lexicon/types/com/atproto/server/revokeAppPassword.ts +2 -2
  2016. package/src/lexicon/types/com/atproto/server/updateEmail.ts +2 -2
  2017. package/src/lexicon/types/com/atproto/sync/defs.ts +2 -2
  2018. package/src/lexicon/types/com/atproto/sync/getBlob.ts +2 -2
  2019. package/src/lexicon/types/com/atproto/sync/getBlocks.ts +2 -2
  2020. package/src/lexicon/types/com/atproto/sync/getCheckout.ts +2 -2
  2021. package/src/lexicon/types/com/atproto/sync/getHead.ts +2 -2
  2022. package/src/lexicon/types/com/atproto/sync/getHostStatus.ts +2 -2
  2023. package/src/lexicon/types/com/atproto/sync/getLatestCommit.ts +2 -2
  2024. package/src/lexicon/types/com/atproto/sync/getRecord.ts +2 -2
  2025. package/src/lexicon/types/com/atproto/sync/getRepo.ts +2 -2
  2026. package/src/lexicon/types/com/atproto/sync/getRepoStatus.ts +2 -2
  2027. package/src/lexicon/types/com/atproto/sync/listBlobs.ts +2 -2
  2028. package/src/lexicon/types/com/atproto/sync/listHosts.ts +2 -2
  2029. package/src/lexicon/types/com/atproto/sync/listRepos.ts +2 -2
  2030. package/src/lexicon/types/com/atproto/sync/listReposByCollection.ts +2 -2
  2031. package/src/lexicon/types/com/atproto/sync/notifyOfUpdate.ts +2 -2
  2032. package/src/lexicon/types/com/atproto/sync/requestCrawl.ts +2 -2
  2033. package/src/lexicon/types/com/atproto/sync/subscribeRepos.ts +2 -2
  2034. package/src/lexicon/types/com/atproto/temp/addReservedHandle.ts +2 -2
  2035. package/src/lexicon/types/com/atproto/temp/checkHandleAvailability.ts +2 -2
  2036. package/src/lexicon/types/com/atproto/temp/checkSignupQueue.ts +2 -2
  2037. package/src/lexicon/types/com/atproto/temp/dereferenceScope.ts +2 -2
  2038. package/src/lexicon/types/com/atproto/temp/fetchLabels.ts +2 -2
  2039. package/src/lexicon/types/com/atproto/temp/requestPhoneVerification.ts +2 -2
  2040. package/src/lexicon/types/com/atproto/temp/revokeAccountCredentials.ts +2 -2
  2041. package/src/lexicon/types/tools/ozone/communication/createTemplate.ts +2 -2
  2042. package/src/lexicon/types/tools/ozone/communication/defs.ts +2 -2
  2043. package/src/lexicon/types/tools/ozone/communication/deleteTemplate.ts +2 -2
  2044. package/src/lexicon/types/tools/ozone/communication/listTemplates.ts +2 -2
  2045. package/src/lexicon/types/tools/ozone/communication/updateTemplate.ts +2 -2
  2046. package/src/lexicon/types/tools/ozone/hosting/getAccountHistory.ts +2 -2
  2047. package/src/lexicon/types/tools/ozone/moderation/cancelScheduledActions.ts +2 -2
  2048. package/src/lexicon/types/tools/ozone/moderation/defs.ts +2 -2
  2049. package/src/lexicon/types/tools/ozone/moderation/emitEvent.ts +2 -2
  2050. package/src/lexicon/types/tools/ozone/moderation/getAccountTimeline.ts +2 -2
  2051. package/src/lexicon/types/tools/ozone/moderation/getEvent.ts +2 -2
  2052. package/src/lexicon/types/tools/ozone/moderation/getRecord.ts +2 -2
  2053. package/src/lexicon/types/tools/ozone/moderation/getRecords.ts +2 -2
  2054. package/src/lexicon/types/tools/ozone/moderation/getRepo.ts +2 -2
  2055. package/src/lexicon/types/tools/ozone/moderation/getReporterStats.ts +2 -2
  2056. package/src/lexicon/types/tools/ozone/moderation/getRepos.ts +2 -2
  2057. package/src/lexicon/types/tools/ozone/moderation/getSubjects.ts +2 -2
  2058. package/src/lexicon/types/tools/ozone/moderation/listScheduledActions.ts +2 -2
  2059. package/src/lexicon/types/tools/ozone/moderation/queryEvents.ts +2 -2
  2060. package/src/lexicon/types/tools/ozone/moderation/queryStatuses.ts +2 -2
  2061. package/src/lexicon/types/tools/ozone/moderation/scheduleAction.ts +2 -2
  2062. package/src/lexicon/types/tools/ozone/moderation/searchRepos.ts +2 -2
  2063. package/src/lexicon/types/tools/ozone/queue/assignModerator.ts +2 -2
  2064. package/src/lexicon/types/tools/ozone/queue/createQueue.ts +2 -2
  2065. package/src/lexicon/types/tools/ozone/queue/defs.ts +2 -2
  2066. package/src/lexicon/types/tools/ozone/queue/deleteQueue.ts +2 -2
  2067. package/src/lexicon/types/tools/ozone/queue/getAssignments.ts +2 -2
  2068. package/src/lexicon/types/tools/ozone/queue/listQueues.ts +2 -2
  2069. package/src/lexicon/types/tools/ozone/queue/routeReports.ts +2 -2
  2070. package/src/lexicon/types/tools/ozone/queue/unassignModerator.ts +2 -2
  2071. package/src/lexicon/types/tools/ozone/queue/updateQueue.ts +2 -2
  2072. package/src/lexicon/types/tools/ozone/report/assignModerator.ts +2 -2
  2073. package/src/lexicon/types/tools/ozone/report/createActivity.ts +2 -2
  2074. package/src/lexicon/types/tools/ozone/report/defs.ts +2 -2
  2075. package/src/lexicon/types/tools/ozone/report/getAssignments.ts +2 -2
  2076. package/src/lexicon/types/tools/ozone/report/getHistoricalStats.ts +2 -2
  2077. package/src/lexicon/types/tools/ozone/report/getLatestReport.ts +2 -2
  2078. package/src/lexicon/types/tools/ozone/report/getLiveStats.ts +2 -2
  2079. package/src/lexicon/types/tools/ozone/report/getReport.ts +2 -2
  2080. package/src/lexicon/types/tools/ozone/report/listActivities.ts +2 -2
  2081. package/src/lexicon/types/tools/ozone/report/queryReports.ts +2 -2
  2082. package/src/lexicon/types/tools/ozone/report/reassignQueue.ts +2 -2
  2083. package/src/lexicon/types/tools/ozone/report/refreshStats.ts +2 -2
  2084. package/src/lexicon/types/tools/ozone/report/unassignModerator.ts +2 -2
  2085. package/src/lexicon/types/tools/ozone/safelink/addRule.ts +2 -2
  2086. package/src/lexicon/types/tools/ozone/safelink/defs.ts +2 -2
  2087. package/src/lexicon/types/tools/ozone/safelink/queryEvents.ts +2 -2
  2088. package/src/lexicon/types/tools/ozone/safelink/queryRules.ts +2 -2
  2089. package/src/lexicon/types/tools/ozone/safelink/removeRule.ts +2 -2
  2090. package/src/lexicon/types/tools/ozone/safelink/updateRule.ts +2 -2
  2091. package/src/lexicon/types/tools/ozone/server/getConfig.ts +2 -2
  2092. package/src/lexicon/types/tools/ozone/set/addValues.ts +2 -2
  2093. package/src/lexicon/types/tools/ozone/set/defs.ts +2 -2
  2094. package/src/lexicon/types/tools/ozone/set/deleteSet.ts +2 -2
  2095. package/src/lexicon/types/tools/ozone/set/deleteValues.ts +2 -2
  2096. package/src/lexicon/types/tools/ozone/set/getValues.ts +2 -2
  2097. package/src/lexicon/types/tools/ozone/set/querySets.ts +2 -2
  2098. package/src/lexicon/types/tools/ozone/set/upsertSet.ts +2 -2
  2099. package/src/lexicon/types/tools/ozone/setting/defs.ts +2 -2
  2100. package/src/lexicon/types/tools/ozone/setting/listOptions.ts +2 -2
  2101. package/src/lexicon/types/tools/ozone/setting/removeOptions.ts +2 -2
  2102. package/src/lexicon/types/tools/ozone/setting/upsertOption.ts +2 -2
  2103. package/src/lexicon/types/tools/ozone/signature/defs.ts +2 -2
  2104. package/src/lexicon/types/tools/ozone/signature/findCorrelation.ts +2 -2
  2105. package/src/lexicon/types/tools/ozone/signature/findRelatedAccounts.ts +2 -2
  2106. package/src/lexicon/types/tools/ozone/signature/searchAccounts.ts +2 -2
  2107. package/src/lexicon/types/tools/ozone/team/addMember.ts +2 -2
  2108. package/src/lexicon/types/tools/ozone/team/defs.ts +2 -2
  2109. package/src/lexicon/types/tools/ozone/team/deleteMember.ts +2 -2
  2110. package/src/lexicon/types/tools/ozone/team/listMembers.ts +2 -2
  2111. package/src/lexicon/types/tools/ozone/team/updateMember.ts +2 -2
  2112. package/src/lexicon/types/tools/ozone/verification/defs.ts +2 -2
  2113. package/src/lexicon/types/tools/ozone/verification/grantVerifications.ts +2 -2
  2114. package/src/lexicon/types/tools/ozone/verification/listVerifications.ts +2 -2
  2115. package/src/lexicon/types/tools/ozone/verification/revokeVerifications.ts +2 -2
  2116. package/src/mod-service/expiring-tags.ts +2 -2
  2117. package/src/mod-service/index.ts +30 -27
  2118. package/src/mod-service/profile.ts +3 -3
  2119. package/src/mod-service/report.ts +4 -4
  2120. package/src/mod-service/status.ts +6 -6
  2121. package/src/mod-service/strike.ts +1 -1
  2122. package/src/mod-service/subject.ts +7 -7
  2123. package/src/mod-service/types.ts +4 -4
  2124. package/src/mod-service/util.ts +3 -3
  2125. package/src/mod-service/views.ts +16 -16
  2126. package/src/queue/service.ts +7 -7
  2127. package/src/report/activity.ts +3 -3
  2128. package/src/report/reassign.ts +2 -2
  2129. package/src/report/stats.ts +5 -5
  2130. package/src/report/views.ts +11 -13
  2131. package/src/safelink/service.ts +3 -3
  2132. package/src/scheduled-action/service.ts +6 -6
  2133. package/src/scheduled-action/types.ts +1 -1
  2134. package/src/sequencer/index.ts +2 -2
  2135. package/src/sequencer/outbox.ts +1 -1
  2136. package/src/sequencer/sequencer.ts +11 -9
  2137. package/src/set/service.ts +4 -4
  2138. package/src/setting/service.ts +4 -4
  2139. package/src/setting/validators.ts +2 -2
  2140. package/src/tag-service/content-tagger.ts +3 -3
  2141. package/src/tag-service/embed-tagger.ts +3 -3
  2142. package/src/tag-service/index.ts +7 -7
  2143. package/src/tag-service/language-tagger.ts +4 -5
  2144. package/src/tag-service/util.ts +1 -1
  2145. package/src/team/index.ts +7 -7
  2146. package/src/util.ts +1 -1
  2147. package/src/verification/issuer.ts +2 -2
  2148. package/src/verification/service.ts +3 -3
  2149. package/src/verification/util.ts +7 -4
  2150. package/tests/3p-labeler.test.ts +2 -2
  2151. package/tests/__snapshots__/account-strikes.test.ts.snap +36 -36
  2152. package/tests/__snapshots__/age-assurance.test.ts.snap +13 -13
  2153. package/tests/__snapshots__/blob-divert.test.ts.snap +52 -52
  2154. package/tests/__snapshots__/get-account-timeline.test.ts.snap +8 -8
  2155. package/tests/__snapshots__/get-record.test.ts.snap +68 -68
  2156. package/tests/__snapshots__/get-records.test.ts.snap +46 -46
  2157. package/tests/__snapshots__/get-repo.test.ts.snap +22 -22
  2158. package/tests/__snapshots__/get-repos.test.ts.snap +33 -33
  2159. package/tests/__snapshots__/get-starter-pack.test.ts.snap +141 -141
  2160. package/tests/__snapshots__/get-subjects.test.ts.snap +108 -108
  2161. package/tests/__snapshots__/moderation-events.test.ts.snap +79 -79
  2162. package/tests/__snapshots__/moderation-statuses.test.ts.snap +45 -45
  2163. package/tests/__snapshots__/moderation.test.ts.snap +16 -16
  2164. package/tests/__snapshots__/report-reason.test.ts.snap +3 -3
  2165. package/tests/__snapshots__/safelink.test.ts.snap +19 -19
  2166. package/tests/__snapshots__/scheduled-action.test.ts.snap +11 -11
  2167. package/tests/__snapshots__/sets.test.ts.snap +7 -7
  2168. package/tests/__snapshots__/settings.test.ts.snap +10 -10
  2169. package/tests/__snapshots__/team.test.ts.snap +64 -64
  2170. package/tests/__snapshots__/verification-listener.test.ts.snap +35 -35
  2171. package/tests/__snapshots__/verification.test.ts.snap +71 -71
  2172. package/tests/_util.ts +3 -3
  2173. package/tests/account-strikes.test.ts +3 -3
  2174. package/tests/ack-all-subjects-of-account.test.ts +3 -3
  2175. package/tests/age-assurance.test.ts +1 -1
  2176. package/tests/blob-divert.test.ts +2 -1
  2177. package/tests/communication-templates.test.ts +1 -1
  2178. package/tests/content-tagger.test.ts +2 -2
  2179. package/tests/db.test.ts +1 -1
  2180. package/tests/expiring-label.test.ts +1 -1
  2181. package/tests/expiring-tags.test.ts +2 -2
  2182. package/tests/get-account-timeline.test.ts +3 -3
  2183. package/tests/get-config.test.ts +2 -2
  2184. package/tests/get-lists.test.ts +2 -2
  2185. package/tests/get-record.test.ts +3 -3
  2186. package/tests/get-records.test.ts +3 -3
  2187. package/tests/get-repo.test.ts +3 -3
  2188. package/tests/get-report.test.ts +2 -2
  2189. package/tests/get-repos.test.ts +3 -3
  2190. package/tests/get-starter-pack.test.ts +3 -3
  2191. package/tests/get-subjects.test.ts +3 -3
  2192. package/tests/moderation-appeals.test.ts +2 -2
  2193. package/tests/moderation-events.test.ts +4 -4
  2194. package/tests/moderation-status-tags.test.ts +1 -1
  2195. package/tests/moderation-statuses.test.ts +5 -5
  2196. package/tests/moderation.test.ts +7 -7
  2197. package/tests/protected-tags.test.ts +2 -2
  2198. package/tests/query-labels.test.ts +5 -5
  2199. package/tests/query-reports.test.ts +2 -2
  2200. package/tests/queue-assignment.test.ts +1 -1
  2201. package/tests/queue-router.test.ts +1 -1
  2202. package/tests/queues.test.ts +1 -1
  2203. package/tests/record-and-account-events.test.ts +5 -5
  2204. package/tests/repo-search.test.ts +3 -3
  2205. package/tests/report-action.test.ts +1 -1
  2206. package/tests/report-activity.test.ts +2 -2
  2207. package/tests/report-assignment.test.ts +1 -1
  2208. package/tests/report-muting.test.ts +1 -1
  2209. package/tests/report-reason.test.ts +3 -3
  2210. package/tests/report-reassign-queue.test.ts +2 -2
  2211. package/tests/report-routing.test.ts +1 -1
  2212. package/tests/report-stats.test.ts +2 -2
  2213. package/tests/safelink.test.ts +2 -2
  2214. package/tests/scheduled-action-processor.test.ts +3 -3
  2215. package/tests/scheduled-action.test.ts +2 -2
  2216. package/tests/sequencer.test.ts +3 -3
  2217. package/tests/server.test.ts +2 -2
  2218. package/tests/sets.test.ts +2 -2
  2219. package/tests/settings.test.ts +3 -3
  2220. package/tests/strike-expiry-processor.test.ts +2 -2
  2221. package/tests/subject-priority-score.test.ts +1 -1
  2222. package/tests/team.test.ts +1 -1
  2223. package/tests/verification-listener.test.ts +1 -1
  2224. package/tests/verification.test.ts +1 -1
  2225. package/tsconfig.build.tsbuildinfo +1 -1
  2226. package/dist/lexicon/types/chat/bsky/group/getGroupPublicInfo.d.ts.map +0 -1
  2227. package/dist/lexicon/types/chat/bsky/group/getGroupPublicInfo.js +0 -7
  2228. package/dist/lexicon/types/chat/bsky/group/getGroupPublicInfo.js.map +0 -1
  2229. package/jest.config.js +0 -11
@@ -1 +1 @@
1
- {"version":3,"file":"stats.js","sourceRoot":"","sources":["../../src/report/stats.ts"],"names":[],"mappings":"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","sourcesContent":["import { Selectable, sql } from 'kysely'\nimport { MINUTE } from '@atproto/common'\nimport { Database } from '../db'\nimport { ComputedAtIdKeyset, paginate } from '../db/pagination'\nimport { ReportStat } from '../db/schema/report_stat'\nimport { jsonb } from '../db/types'\nimport { dbLogger } from '../logger'\n\n/**\n * Grouped report types. Stats are computed per group rather than per individual report type.\n */\nexport const REPORT_TYPE_GROUPS: Record<string, string[]> = {\n Legacy: [\n 'com.atproto.moderation.defs#reasonSpam',\n 'com.atproto.moderation.defs#reasonViolation',\n 'com.atproto.moderation.defs#reasonMisleading',\n 'com.atproto.moderation.defs#reasonSexual',\n 'com.atproto.moderation.defs#reasonRude',\n 'com.atproto.moderation.defs#reasonOther',\n 'com.atproto.moderation.defs#reasonAppeal',\n ],\n Appeal: ['tools.ozone.report.defs#reasonAppeal'],\n Violence: [\n 'tools.ozone.report.defs#reasonViolenceAnimalWelfare',\n 'tools.ozone.report.defs#reasonViolenceThreats',\n 'tools.ozone.report.defs#reasonViolenceGraphicContent',\n 'tools.ozone.report.defs#reasonViolenceSelfHarm',\n 'tools.ozone.report.defs#reasonViolenceGlorification',\n 'tools.ozone.report.defs#reasonViolenceExtremistContent',\n 'tools.ozone.report.defs#reasonViolenceTrafficking',\n 'tools.ozone.report.defs#reasonViolenceOther',\n ],\n Sexual: [\n 'tools.ozone.report.defs#reasonSexualAbuseContent',\n 'tools.ozone.report.defs#reasonSexualNCII',\n 'tools.ozone.report.defs#reasonSexualSextortion',\n 'tools.ozone.report.defs#reasonSexualDeepfake',\n 'tools.ozone.report.defs#reasonSexualAnimal',\n 'tools.ozone.report.defs#reasonSexualUnlabeled',\n 'tools.ozone.report.defs#reasonSexualOther',\n ],\n 'Child Safety': [\n 'tools.ozone.report.defs#reasonChildSafetyCSAM',\n 'tools.ozone.report.defs#reasonChildSafetyGroom',\n 'tools.ozone.report.defs#reasonChildSafetyMinorPrivacy',\n 'tools.ozone.report.defs#reasonChildSafetyEndangerment',\n 'tools.ozone.report.defs#reasonChildSafetyHarassment',\n 'tools.ozone.report.defs#reasonChildSafetyPromotion',\n 'tools.ozone.report.defs#reasonChildSafetyOther',\n ],\n Harassment: [\n 'tools.ozone.report.defs#reasonHarassmentTroll',\n 'tools.ozone.report.defs#reasonHarassmentTargeted',\n 'tools.ozone.report.defs#reasonHarassmentHateSpeech',\n 'tools.ozone.report.defs#reasonHarassmentDoxxing',\n 'tools.ozone.report.defs#reasonHarassmentOther',\n ],\n Misleading: [\n 'tools.ozone.report.defs#reasonMisleadingBot',\n 'tools.ozone.report.defs#reasonMisleadingImpersonation',\n 'tools.ozone.report.defs#reasonMisleadingSpam',\n 'tools.ozone.report.defs#reasonMisleadingScam',\n 'tools.ozone.report.defs#reasonMisleadingSyntheticContent',\n 'tools.ozone.report.defs#reasonMisleadingMisinformation',\n 'tools.ozone.report.defs#reasonMisleadingOther',\n ],\n 'Rule Violations': [\n 'tools.ozone.report.defs#reasonRuleSiteSecurity',\n 'tools.ozone.report.defs#reasonRuleStolenContent',\n 'tools.ozone.report.defs#reasonRuleProhibitedSales',\n 'tools.ozone.report.defs#reasonRuleBanEvasion',\n 'tools.ozone.report.defs#reasonRuleOther',\n ],\n Civic: [\n 'tools.ozone.report.defs#reasonCivicElectoralProcess',\n 'tools.ozone.report.defs#reasonCivicDisclosure',\n 'tools.ozone.report.defs#reasonCivicInterference',\n 'tools.ozone.report.defs#reasonCivicMisinformation',\n 'tools.ozone.report.defs#reasonCivicImpersonation',\n ],\n}\n\nconst REPORT_STAT_LIVE_TTL = 15 * MINUTE\n\nexport type ReportStatsServiceCreator = (db: Database) => ReportStatsService\n\nexport type ReportStatGroup = {\n queueId: number | null\n moderatorDid: string | null\n reportTypes: string[] | null\n}\nexport type AggregateStatistics = {\n inboundCount: number\n pendingCount: number\n actionedCount: number\n escalatedCount: number\n actionRate: number\n avgHandlingTimeSec?: number\n}\nexport type QueueStatistics = {\n inboundCount: number\n pendingCount: number\n actionedCount: number\n escalatedCount: number\n actionRate: number\n avgHandlingTimeSec?: number\n}\nexport type ModeratorStatistics = {\n inboundCount: number\n actionedCount: number\n avgHandlingTimeSec?: number\n}\nexport type ReportTypeStatistics = {\n inboundCount: number\n pendingCount: number\n actionedCount: number\n escalatedCount: number\n actionRate: number\n avgHandlingTimeSec?: number\n}\nexport type ReportStatistics =\n | QueueStatistics\n | ModeratorStatistics\n | AggregateStatistics\n | ReportTypeStatistics\n\n// Batched query result types\ntype QueueCountRow = {\n queueId: number | null\n count: string\n}\ntype QueueWindowRow = {\n queueId: number | null\n inboundCount: string\n actionedCount: string\n escalatedCount: string\n handlingTimeSum: string | null\n handlingTimeCount: string\n}\ntype TypeCountRow = {\n reportType: string\n count: string\n}\ntype TypeWindowRow = {\n reportType: string\n inboundCount: string\n actionedCount: string\n escalatedCount: string\n handlingTimeSum: string | null\n handlingTimeCount: string\n}\ntype ModeratorWindowRow = {\n did: string\n inboundCount: string\n actionedCount: string\n handlingTimeSum: string | null\n handlingTimeCount: string\n}\ntype BatchedStats = {\n queuePending: QueueCountRow[]\n queueWindow: QueueWindowRow[]\n typePending: TypeCountRow[]\n typeWindow: TypeWindowRow[]\n moderator: ModeratorWindowRow[]\n}\n\ntype UpsertRow = {\n date: string\n queueId: number | null\n moderatorDid: string | null\n reportTypes: string[] | null\n inboundCount: number | null\n pendingCount: number | null\n actionedCount: number | null\n escalatedCount: number | null\n actionRate: number | null\n avgHandlingTimeSec: number | null\n computedAt: string\n}\n\nexport class ReportStatsService {\n constructor(public db: Database) {}\n\n static creator(): ReportStatsServiceCreator {\n return (db: Database) => new ReportStatsService(db)\n }\n\n /**\n * Compute stats for today and finalize yesterday if needed.\n * Called periodically by the StatsComputer daemon.\n */\n async materializeAll(opts?: { force?: boolean }): Promise<void> {\n try {\n const start = Date.now()\n const today = toDateString(new Date())\n const yesterday = toDateString(new Date(Date.now() - 24 * 60 * 60 * 1000))\n\n // Always compute today's stats\n await this.materializeDate(today, opts)\n\n // Finalize yesterday if its snapshot is missing or stale\n if (!opts?.force) {\n const yesterdayRow = await this.db.db\n .selectFrom('report_stat')\n .select('computedAt')\n .where('date', '=', yesterday)\n .orderBy('computedAt', 'desc')\n .executeTakeFirst()\n const endOfYesterday = new Date(`${yesterday}T23:59:59.999Z`).getTime()\n if (\n !yesterdayRow ||\n new Date(yesterdayRow.computedAt).getTime() < endOfYesterday\n ) {\n await this.materializeDate(yesterday, { force: true })\n }\n } else {\n await this.materializeDate(yesterday, { force: true })\n }\n\n const duration = Date.now() - start\n dbLogger.info({ duration }, 'report stats materialization completed')\n } catch (err) {\n dbLogger.error({ err }, 'report stats materialization errored')\n }\n }\n\n /**\n * Compute stats for a specific date range. Used by the refreshStats endpoint.\n */\n async refreshDateRange(opts: {\n startDate: string\n endDate: string\n queueIds?: number[]\n }): Promise<void> {\n const start = new Date(opts.startDate)\n const end = new Date(opts.endDate)\n\n for (let d = new Date(start); d <= end; d.setUTCDate(d.getUTCDate() + 1)) {\n const dateStr = toDateString(d)\n if (opts.queueIds?.length) {\n // Recompute only specific queue groups for this date\n const batched = await this.computeBatchedStats(dateStr)\n const rows: UpsertRow[] = []\n for (const queueId of opts.queueIds) {\n const group: ReportStatGroup = {\n queueId,\n moderatorDid: null,\n reportTypes: null,\n }\n const stats = this.resolveGroupStats(group, batched)\n rows.push(this.buildUpsertRow(dateStr, group, stats))\n }\n await this.bulkUpsert(rows)\n } else {\n await this.materializeDate(dateStr, { force: true })\n }\n }\n }\n\n /** Compute and write all groups for a single date. */\n private async materializeDate(\n date: string,\n opts?: { force?: boolean },\n ): Promise<void> {\n const groups = await this.enumerateGroups()\n const batched = await this.computeBatchedStats(date)\n const today = toDateString(new Date())\n const isToday = date === today\n\n // Batch the cache check so we don't issue one SELECT per group.\n const existingByKey = !opts?.force\n ? await this.fetchExistingStatsByKey(date)\n : null\n\n const rows: UpsertRow[] = []\n for (const group of groups) {\n try {\n if (existingByKey) {\n const cached = existingByKey.get(groupKey(group))\n if (cached) {\n // Historical dates: never recompute. Today: recompute if stale.\n if (!isToday) continue\n const age = Date.now() - new Date(cached.computedAt).getTime()\n if (age < REPORT_STAT_LIVE_TTL) continue\n }\n }\n const stats = this.resolveGroupStats(group, batched)\n rows.push(this.buildUpsertRow(date, group, stats))\n } catch (err) {\n dbLogger.error(\n { err, group, date },\n 'error preparing report stats group',\n )\n }\n }\n\n await this.bulkUpsert(rows)\n }\n\n /** Fetch all stat rows for a date, keyed by groupKey for O(1) lookup. */\n private async fetchExistingStatsByKey(\n date: string,\n ): Promise<Map<string, Selectable<ReportStat>>> {\n const existing = await this.db.db\n .selectFrom('report_stat')\n .selectAll()\n .where('date', '=', date)\n .execute()\n const map = new Map<string, Selectable<ReportStat>>()\n for (const row of existing) {\n map.set(\n groupKey({\n queueId: row.queueId,\n moderatorDid: row.moderatorDid,\n reportTypes: row.reportTypes,\n }),\n row,\n )\n }\n return map\n }\n\n /** List out the groups to compute stats for. */\n private async enumerateGroups(): Promise<ReportStatGroup[]> {\n const groups: ReportStatGroup[] = []\n\n const queues = await this.db.db\n .selectFrom('report_queue')\n .selectAll()\n .where('enabled', '=', true)\n .where('deletedAt', 'is', null)\n .execute()\n const members = await this.db.db\n .selectFrom('member')\n .select('did')\n .where('disabled', '=', false)\n .where('role', 'in', [\n 'tools.ozone.team.defs#roleAdmin',\n 'tools.ozone.team.defs#roleModerator',\n 'tools.ozone.team.defs#roleTriage',\n ])\n .execute()\n\n // aggregate\n groups.push({ queueId: null, moderatorDid: null, reportTypes: null })\n // per queue\n for (const queue of queues) {\n groups.push({ queueId: queue.id, moderatorDid: null, reportTypes: null })\n }\n // unqueued\n groups.push({ queueId: -1, moderatorDid: null, reportTypes: null })\n // per moderator\n for (const member of members) {\n groups.push({\n queueId: null,\n moderatorDid: member.did,\n reportTypes: null,\n })\n }\n // per report type group\n for (const groupTypes of Object.values(REPORT_TYPE_GROUPS)) {\n groups.push({\n queueId: null,\n moderatorDid: null,\n reportTypes: groupTypes,\n })\n }\n\n return groups\n }\n\n /**\n * Run batched GROUP BY queries for a calendar date.\n * Returns 5 result sets covering all group types.\n */\n private async computeBatchedStats(date: string): Promise<BatchedStats> {\n const dayStart = `${date}T00:00:00.000Z`\n const dayEnd = `${nextDate(date)}T00:00:00.000Z`\n\n const [queuePending, aggregatePending] = await Promise.all([\n // Pending count is a snapshot of all non-closed reports at time of computation\n this.db.db\n .selectFrom('report')\n .select(['queueId', sql<string>`count(*)`.as('count')])\n .where('status', '!=', 'closed')\n .where('queueId', 'is not', null)\n .groupBy('queueId')\n .execute(),\n // Aggregate pending (includes all reports, even un-routed)\n this.db.db\n .selectFrom('report')\n .select(sql<string>`count(*)`.as('count'))\n .where('status', '!=', 'closed')\n .executeTakeFirst(),\n ])\n\n const queueWindow = await this.db.db\n .selectFrom('report')\n .select([\n 'queueId',\n sql<string>`count(*)`.as('inboundCount'),\n sql<string>`count(*) filter (where \"status\" = 'closed' and \"closedAt\" >= ${dayStart} and \"closedAt\" < ${dayEnd})`.as(\n 'actionedCount',\n ),\n sql<string>`count(*) filter (where \"status\" = 'escalated')`.as(\n 'escalatedCount',\n ),\n sql<string>`sum(extract(epoch from (\"closedAt\"::timestamp - \"createdAt\"::timestamp))) filter (where \"status\" = 'closed' and \"closedAt\" is not null and \"closedAt\" >= ${dayStart} and \"closedAt\" < ${dayEnd})`.as(\n 'handlingTimeSum',\n ),\n sql<string>`count(*) filter (where \"status\" = 'closed' and \"closedAt\" is not null and \"closedAt\" >= ${dayStart} and \"closedAt\" < ${dayEnd})`.as(\n 'handlingTimeCount',\n ),\n ])\n .where('createdAt', '>=', dayStart)\n .where('createdAt', '<', dayEnd)\n .where('queueId', 'is not', null)\n .groupBy('queueId')\n .execute()\n\n // Aggregate windowed (includes all reports)\n const aggregateWindow = await this.db.db\n .selectFrom('report')\n .select([\n sql<string>`count(*)`.as('inboundCount'),\n sql<string>`count(*) filter (where \"status\" = 'closed' and \"closedAt\" >= ${dayStart} and \"closedAt\" < ${dayEnd})`.as(\n 'actionedCount',\n ),\n sql<string>`count(*) filter (where \"status\" = 'escalated')`.as(\n 'escalatedCount',\n ),\n sql<string>`sum(extract(epoch from (\"closedAt\"::timestamp - \"createdAt\"::timestamp))) filter (where \"status\" = 'closed' and \"closedAt\" is not null and \"closedAt\" >= ${dayStart} and \"closedAt\" < ${dayEnd})`.as(\n 'handlingTimeSum',\n ),\n sql<string>`count(*) filter (where \"status\" = 'closed' and \"closedAt\" is not null and \"closedAt\" >= ${dayStart} and \"closedAt\" < ${dayEnd})`.as(\n 'handlingTimeCount',\n ),\n ])\n .where('createdAt', '>=', dayStart)\n .where('createdAt', '<', dayEnd)\n .executeTakeFirst()\n\n const typePending = await this.db.db\n .selectFrom('report')\n .select(['reportType', sql<string>`count(*)`.as('count')])\n .where('status', '!=', 'closed')\n .groupBy('reportType')\n .execute()\n\n const typeWindow = await this.db.db\n .selectFrom('report')\n .select([\n 'reportType',\n sql<string>`count(*)`.as('inboundCount'),\n sql<string>`count(*) filter (where \"status\" = 'closed' and \"closedAt\" >= ${dayStart} and \"closedAt\" < ${dayEnd})`.as(\n 'actionedCount',\n ),\n sql<string>`count(*) filter (where \"status\" = 'escalated')`.as(\n 'escalatedCount',\n ),\n sql<string>`sum(extract(epoch from (\"closedAt\"::timestamp - \"createdAt\"::timestamp))) filter (where \"status\" = 'closed' and \"closedAt\" is not null and \"closedAt\" >= ${dayStart} and \"closedAt\" < ${dayEnd})`.as(\n 'handlingTimeSum',\n ),\n sql<string>`count(*) filter (where \"status\" = 'closed' and \"closedAt\" is not null and \"closedAt\" >= ${dayStart} and \"closedAt\" < ${dayEnd})`.as(\n 'handlingTimeCount',\n ),\n ])\n .where('createdAt', '>=', dayStart)\n .where('createdAt', '<', dayEnd)\n .groupBy('reportType')\n .execute()\n\n const moderator = await this.db.db\n .selectFrom('report as r')\n .innerJoin('moderator_assignment as ma', (join) =>\n join.onRef('ma.reportId', '=', 'r.id').on('ma.endAt', 'is', null),\n )\n .select([\n 'ma.did',\n sql<string>`count(*)`.as('inboundCount'),\n sql<string>`count(*) filter (where r.\"status\" = 'closed')`.as(\n 'actionedCount',\n ),\n sql<string>`sum(extract(epoch from (r.\"closedAt\"::timestamp - ma.\"startAt\"::timestamp))) filter (where r.\"status\" = 'closed' and r.\"closedAt\" is not null)`.as(\n 'handlingTimeSum',\n ),\n sql<string>`count(*) filter (where r.\"status\" = 'closed' and r.\"closedAt\" is not null)`.as(\n 'handlingTimeCount',\n ),\n ])\n .where('r.createdAt', '>=', dayStart)\n .where('r.createdAt', '<', dayEnd)\n .groupBy('ma.did')\n .execute()\n\n // Inject aggregate as a synthetic row with queueId=null so resolveQueueStats can find it\n const allQueuePending: QueueCountRow[] = [\n ...queuePending,\n { queueId: null, count: aggregatePending?.count ?? '0' },\n ]\n const allQueueWindow: QueueWindowRow[] = aggregateWindow\n ? [\n ...queueWindow,\n {\n queueId: null,\n inboundCount: aggregateWindow.inboundCount,\n actionedCount: aggregateWindow.actionedCount,\n escalatedCount: aggregateWindow.escalatedCount,\n handlingTimeSum: aggregateWindow.handlingTimeSum,\n handlingTimeCount: aggregateWindow.handlingTimeCount,\n },\n ]\n : queueWindow\n\n return {\n queuePending: allQueuePending,\n queueWindow: allQueueWindow,\n typePending,\n typeWindow,\n moderator,\n }\n }\n\n /** Resolve a single group's stats from batched query results (pure in-memory). */\n private resolveGroupStats(\n group: ReportStatGroup,\n batched: BatchedStats,\n ): ReportStatistics {\n if (group.moderatorDid) {\n return this.resolveModeratorStats(group.moderatorDid, batched.moderator)\n }\n if (group.reportTypes !== null) {\n return this.resolveReportTypeStats(group.reportTypes, batched)\n }\n return this.resolveQueueStats(group.queueId, batched)\n }\n\n private resolveQueueStats(\n queueId: number | null,\n batched: BatchedStats,\n ): AggregateStatistics | QueueStatistics {\n // queueId=null is the synthetic aggregate row\n const pending = batched.queuePending.find((r) => r.queueId === queueId)\n const window = batched.queueWindow.find((r) => r.queueId === queueId)\n\n const pendingCount = num(pending?.count)\n const inboundCount = num(window?.inboundCount)\n const actionedCount = num(window?.actionedCount)\n const escalatedCount = num(window?.escalatedCount)\n const handlingTimeSum = Number(window?.handlingTimeSum ?? 0)\n const handlingTimeCount = num(window?.handlingTimeCount)\n const actionRate =\n inboundCount > 0 ? Math.round((actionedCount / inboundCount) * 100) : 0\n const avgHandlingTimeSec =\n handlingTimeCount > 0\n ? Math.round(handlingTimeSum / handlingTimeCount)\n : undefined\n\n return {\n inboundCount,\n pendingCount,\n actionedCount,\n escalatedCount,\n actionRate,\n avgHandlingTimeSec,\n }\n }\n\n private resolveReportTypeStats(\n reportTypes: string[],\n batched: BatchedStats,\n ): ReportTypeStatistics {\n const types = new Set(reportTypes)\n\n const matchingPending = batched.typePending.filter((r) =>\n types.has(r.reportType),\n )\n const matchingWindow = batched.typeWindow.filter((r) =>\n types.has(r.reportType),\n )\n\n const pendingCount = sumNum(matchingPending, 'count')\n const inboundCount = sumNum(matchingWindow, 'inboundCount')\n const actionedCount = sumNum(matchingWindow, 'actionedCount')\n const escalatedCount = sumNum(matchingWindow, 'escalatedCount')\n const handlingTimeSum = matchingWindow.reduce(\n (sum, r) => sum + Number(r.handlingTimeSum ?? 0),\n 0,\n )\n const handlingTimeCount = sumNum(matchingWindow, 'handlingTimeCount')\n\n const actionRate =\n inboundCount > 0 ? Math.round((actionedCount / inboundCount) * 100) : 0\n const avgHandlingTimeSec =\n handlingTimeCount > 0\n ? Math.round(handlingTimeSum / handlingTimeCount)\n : undefined\n\n return {\n inboundCount,\n pendingCount,\n actionedCount,\n escalatedCount,\n actionRate,\n avgHandlingTimeSec,\n }\n }\n\n private resolveModeratorStats(\n moderatorDid: string,\n rows: ModeratorWindowRow[],\n ): ModeratorStatistics {\n const row = rows.find((r) => r.did === moderatorDid)\n\n const inboundCount = num(row?.inboundCount)\n const actionedCount = num(row?.actionedCount)\n const handlingTimeCount = num(row?.handlingTimeCount)\n const avgHandlingTimeSec =\n handlingTimeCount > 0 && row?.handlingTimeSum\n ? Math.round(Number(row.handlingTimeSum) / handlingTimeCount)\n : undefined\n\n return { inboundCount, actionedCount, avgHandlingTimeSec }\n }\n\n /** Build an upsert row from (date, group, stats). */\n private buildUpsertRow(\n date: string,\n group: ReportStatGroup,\n stats: ReportStatistics,\n ): UpsertRow {\n const pendingCount =\n 'pendingCount' in stats ? stats.pendingCount ?? null : null\n const escalatedCount =\n 'escalatedCount' in stats ? stats.escalatedCount ?? null : null\n const actionRate = 'actionRate' in stats ? stats.actionRate ?? null : null\n\n return {\n date,\n queueId: group.queueId,\n moderatorDid: group.moderatorDid,\n reportTypes: group.reportTypes,\n inboundCount: stats.inboundCount ?? null,\n pendingCount,\n actionedCount: stats.actionedCount ?? null,\n escalatedCount,\n actionRate,\n avgHandlingTimeSec: stats.avgHandlingTimeSec ?? null,\n computedAt: new Date().toISOString(),\n }\n }\n\n /**\n * Wraps a DELETE+INSERT for each row in a single transaction so we pay one\n * commit per cycle instead of one per group. NULL-aware WHERE clauses match\n * the existing PG <15 NULL semantics without needing a unique index.\n */\n private async bulkUpsert(rows: UpsertRow[]): Promise<void> {\n if (!rows.length) return\n\n await this.db.transaction(async (dbTxn) => {\n for (const r of rows) {\n let del = dbTxn.db.deleteFrom('report_stat').where('date', '=', r.date)\n del =\n r.queueId !== null\n ? del.where('queueId', '=', r.queueId)\n : del.where('queueId', 'is', null)\n del =\n r.moderatorDid !== null\n ? del.where('moderatorDid', '=', r.moderatorDid)\n : del.where('moderatorDid', 'is', null)\n del =\n r.reportTypes !== null\n ? del.where(\n sql`\"reportTypes\"::jsonb = ${jsonb(r.reportTypes)}::jsonb`,\n )\n : del.where('reportTypes', 'is', null)\n await del.execute()\n\n await dbTxn.db\n .insertInto('report_stat')\n .values({\n date: r.date,\n queueId: r.queueId,\n moderatorDid: r.moderatorDid,\n reportTypes: r.reportTypes !== null ? jsonb(r.reportTypes) : null,\n inboundCount: r.inboundCount,\n pendingCount: r.pendingCount,\n actionedCount: r.actionedCount,\n escalatedCount: r.escalatedCount,\n actionRate: r.actionRate,\n avgHandlingTimeSec: r.avgHandlingTimeSec,\n computedAt: r.computedAt,\n })\n .execute()\n }\n })\n }\n\n // ─── Read methods ───\n\n /** Get a single stat row for a date + group. */\n private async getStatForDate(\n date: string,\n group: ReportStatGroup,\n ): Promise<Selectable<ReportStat> | undefined> {\n let qb = this.db.db\n .selectFrom('report_stat')\n .selectAll()\n .where('date', '=', date)\n if (group.queueId !== null) {\n qb = qb.where('queueId', '=', group.queueId)\n } else {\n qb = qb.where('queueId', 'is', null)\n }\n if (group.moderatorDid) {\n qb = qb.where('moderatorDid', '=', group.moderatorDid)\n } else {\n qb = qb.where('moderatorDid', 'is', null)\n }\n if (group.reportTypes !== null) {\n qb = qb.where(\n sql`\"reportTypes\"::jsonb = ${jsonb(group.reportTypes)}::jsonb`,\n )\n } else {\n qb = qb.where('reportTypes', 'is', null)\n }\n return qb.executeTakeFirst()\n }\n\n /** Get today's live stats for a group. */\n async getLiveStats(\n group: ReportStatGroup,\n ): Promise<Selectable<ReportStat> | undefined> {\n const today = toDateString(new Date())\n return this.getStatForDate(today, group)\n }\n\n /** Get live stats for multiple queues in a single query. */\n async getLiveStatsForQueues(\n queueIds: number[],\n ): Promise<Map<number, Selectable<ReportStat>>> {\n if (!queueIds.length) return new Map()\n\n const today = toDateString(new Date())\n const rows = await this.db.db\n .selectFrom('report_stat')\n .selectAll()\n .where('date', '=', today)\n .where('queueId', 'in', queueIds)\n .where('moderatorDid', 'is', null)\n .where('reportTypes', 'is', null)\n .execute()\n\n const result = new Map<number, Selectable<ReportStat>>()\n for (const row of rows) {\n if (row.queueId !== null) {\n result.set(row.queueId, row)\n }\n }\n return result\n }\n\n /** Get historical stats for a date range, paginated. */\n async getHistoricalStats(opts: {\n group: ReportStatGroup\n startDate?: string\n endDate?: string\n limit: number\n cursor?: string\n }): Promise<{ stats: Selectable<ReportStat>[]; cursor?: string }> {\n const { group, startDate, endDate, limit } = opts\n const { queueId, moderatorDid, reportTypes } = group\n const { ref } = this.db.db.dynamic\n\n let qb = this.db.db.selectFrom('report_stat').selectAll()\n\n if (queueId !== null) {\n qb = qb.where('queueId', '=', queueId)\n } else {\n qb = qb.where('queueId', 'is', null)\n }\n if (moderatorDid) {\n qb = qb.where('moderatorDid', '=', moderatorDid)\n } else {\n qb = qb.where('moderatorDid', 'is', null)\n }\n if (reportTypes !== null) {\n qb = qb.where(sql`\"reportTypes\"::jsonb = ${jsonb(reportTypes)}::jsonb`)\n } else {\n qb = qb.where('reportTypes', 'is', null)\n }\n if (startDate) {\n qb = qb.where('date', '>=', toDateString(new Date(startDate)))\n }\n if (endDate) {\n qb = qb.where('date', '<=', toDateString(new Date(endDate)))\n }\n\n const keyset = new ComputedAtIdKeyset(ref('computedAt'), ref('id'))\n const paginatedBuilder = paginate(qb, {\n limit,\n cursor: opts.cursor,\n keyset,\n direction: 'desc',\n tryIndex: true,\n })\n\n const stats = await paginatedBuilder.execute()\n\n return { stats, cursor: keyset.packFromResult(stats) }\n }\n}\n\n// ─── Helpers ───\n\n/** Parse a pg bigint string to number, defaulting to 0. */\nfunction num(val: string | undefined | null): number {\n return val ? Number(val) : 0\n}\n\n/** Sum a numeric string field across rows. */\nfunction sumNum<T>(rows: T[], field: keyof T): number {\n return rows.reduce((sum, r) => sum + Number(r[field] ?? 0), 0)\n}\n\n/**\n * Stable cache-key for a stat group. Used to look up an existing row in the\n * batched cache map without issuing per-group SELECTs. Report types are\n * stringified in stored order, which matches REPORT_TYPE_GROUPS.\n */\nfunction groupKey(g: ReportStatGroup): string {\n return [\n g.queueId ?? 'null',\n g.moderatorDid ?? 'null',\n g.reportTypes ? JSON.stringify(g.reportTypes) : 'null',\n ].join('|')\n}\n\n/** Convert a Date to an ISO date string (YYYY-MM-DD). */\nfunction toDateString(d: Date): string {\n return d.toISOString().slice(0, 10)\n}\n\n/** Get the next calendar date string. */\nfunction nextDate(dateStr: string): string {\n const d = new Date(`${dateStr}T00:00:00.000Z`)\n d.setUTCDate(d.getUTCDate() + 1)\n return toDateString(d)\n}\n"]}
1
+ {"version":3,"file":"stats.js","sourceRoot":"","sources":["../../src/report/stats.ts"],"names":[],"mappings":"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","sourcesContent":["import { Selectable, sql } from 'kysely'\nimport { MINUTE } from '@atproto/common'\nimport { Database } from '../db/index.js'\nimport { ComputedAtIdKeyset, paginate } from '../db/pagination.js'\nimport { ReportStat } from '../db/schema/report_stat.js'\nimport { jsonb } from '../db/types.js'\nimport { dbLogger } from '../logger.js'\n\n/**\n * Grouped report types. Stats are computed per group rather than per individual report type.\n */\nexport const REPORT_TYPE_GROUPS: Record<string, string[]> = {\n Legacy: [\n 'com.atproto.moderation.defs#reasonSpam',\n 'com.atproto.moderation.defs#reasonViolation',\n 'com.atproto.moderation.defs#reasonMisleading',\n 'com.atproto.moderation.defs#reasonSexual',\n 'com.atproto.moderation.defs#reasonRude',\n 'com.atproto.moderation.defs#reasonOther',\n 'com.atproto.moderation.defs#reasonAppeal',\n ],\n Appeal: ['tools.ozone.report.defs#reasonAppeal'],\n Violence: [\n 'tools.ozone.report.defs#reasonViolenceAnimalWelfare',\n 'tools.ozone.report.defs#reasonViolenceThreats',\n 'tools.ozone.report.defs#reasonViolenceGraphicContent',\n 'tools.ozone.report.defs#reasonViolenceSelfHarm',\n 'tools.ozone.report.defs#reasonViolenceGlorification',\n 'tools.ozone.report.defs#reasonViolenceExtremistContent',\n 'tools.ozone.report.defs#reasonViolenceTrafficking',\n 'tools.ozone.report.defs#reasonViolenceOther',\n ],\n Sexual: [\n 'tools.ozone.report.defs#reasonSexualAbuseContent',\n 'tools.ozone.report.defs#reasonSexualNCII',\n 'tools.ozone.report.defs#reasonSexualSextortion',\n 'tools.ozone.report.defs#reasonSexualDeepfake',\n 'tools.ozone.report.defs#reasonSexualAnimal',\n 'tools.ozone.report.defs#reasonSexualUnlabeled',\n 'tools.ozone.report.defs#reasonSexualOther',\n ],\n 'Child Safety': [\n 'tools.ozone.report.defs#reasonChildSafetyCSAM',\n 'tools.ozone.report.defs#reasonChildSafetyGroom',\n 'tools.ozone.report.defs#reasonChildSafetyMinorPrivacy',\n 'tools.ozone.report.defs#reasonChildSafetyEndangerment',\n 'tools.ozone.report.defs#reasonChildSafetyHarassment',\n 'tools.ozone.report.defs#reasonChildSafetyPromotion',\n 'tools.ozone.report.defs#reasonChildSafetyOther',\n ],\n Harassment: [\n 'tools.ozone.report.defs#reasonHarassmentTroll',\n 'tools.ozone.report.defs#reasonHarassmentTargeted',\n 'tools.ozone.report.defs#reasonHarassmentHateSpeech',\n 'tools.ozone.report.defs#reasonHarassmentDoxxing',\n 'tools.ozone.report.defs#reasonHarassmentOther',\n ],\n Misleading: [\n 'tools.ozone.report.defs#reasonMisleadingBot',\n 'tools.ozone.report.defs#reasonMisleadingImpersonation',\n 'tools.ozone.report.defs#reasonMisleadingSpam',\n 'tools.ozone.report.defs#reasonMisleadingScam',\n 'tools.ozone.report.defs#reasonMisleadingSyntheticContent',\n 'tools.ozone.report.defs#reasonMisleadingMisinformation',\n 'tools.ozone.report.defs#reasonMisleadingOther',\n ],\n 'Rule Violations': [\n 'tools.ozone.report.defs#reasonRuleSiteSecurity',\n 'tools.ozone.report.defs#reasonRuleStolenContent',\n 'tools.ozone.report.defs#reasonRuleProhibitedSales',\n 'tools.ozone.report.defs#reasonRuleBanEvasion',\n 'tools.ozone.report.defs#reasonRuleOther',\n ],\n Civic: [\n 'tools.ozone.report.defs#reasonCivicElectoralProcess',\n 'tools.ozone.report.defs#reasonCivicDisclosure',\n 'tools.ozone.report.defs#reasonCivicInterference',\n 'tools.ozone.report.defs#reasonCivicMisinformation',\n 'tools.ozone.report.defs#reasonCivicImpersonation',\n ],\n}\n\nconst REPORT_STAT_LIVE_TTL = 15 * MINUTE\n\nexport type ReportStatsServiceCreator = (db: Database) => ReportStatsService\n\nexport type ReportStatGroup = {\n queueId: number | null\n moderatorDid: string | null\n reportTypes: string[] | null\n}\nexport type AggregateStatistics = {\n inboundCount: number\n pendingCount: number\n actionedCount: number\n escalatedCount: number\n actionRate: number\n avgHandlingTimeSec?: number\n}\nexport type QueueStatistics = {\n inboundCount: number\n pendingCount: number\n actionedCount: number\n escalatedCount: number\n actionRate: number\n avgHandlingTimeSec?: number\n}\nexport type ModeratorStatistics = {\n inboundCount: number\n actionedCount: number\n avgHandlingTimeSec?: number\n}\nexport type ReportTypeStatistics = {\n inboundCount: number\n pendingCount: number\n actionedCount: number\n escalatedCount: number\n actionRate: number\n avgHandlingTimeSec?: number\n}\nexport type ReportStatistics =\n | QueueStatistics\n | ModeratorStatistics\n | AggregateStatistics\n | ReportTypeStatistics\n\n// Batched query result types\ntype QueueCountRow = {\n queueId: number | null\n count: string\n}\ntype QueueWindowRow = {\n queueId: number | null\n inboundCount: string\n actionedCount: string\n escalatedCount: string\n handlingTimeSum: string | null\n handlingTimeCount: string\n}\ntype TypeCountRow = {\n reportType: string\n count: string\n}\ntype TypeWindowRow = {\n reportType: string\n inboundCount: string\n actionedCount: string\n escalatedCount: string\n handlingTimeSum: string | null\n handlingTimeCount: string\n}\ntype ModeratorWindowRow = {\n did: string\n inboundCount: string\n actionedCount: string\n handlingTimeSum: string | null\n handlingTimeCount: string\n}\ntype BatchedStats = {\n queuePending: QueueCountRow[]\n queueWindow: QueueWindowRow[]\n typePending: TypeCountRow[]\n typeWindow: TypeWindowRow[]\n moderator: ModeratorWindowRow[]\n}\n\ntype UpsertRow = {\n date: string\n queueId: number | null\n moderatorDid: string | null\n reportTypes: string[] | null\n inboundCount: number | null\n pendingCount: number | null\n actionedCount: number | null\n escalatedCount: number | null\n actionRate: number | null\n avgHandlingTimeSec: number | null\n computedAt: string\n}\n\nexport class ReportStatsService {\n constructor(public db: Database) {}\n\n static creator(): ReportStatsServiceCreator {\n return (db: Database) => new ReportStatsService(db)\n }\n\n /**\n * Compute stats for today and finalize yesterday if needed.\n * Called periodically by the StatsComputer daemon.\n */\n async materializeAll(opts?: { force?: boolean }): Promise<void> {\n try {\n const start = Date.now()\n const today = toDateString(new Date())\n const yesterday = toDateString(new Date(Date.now() - 24 * 60 * 60 * 1000))\n\n // Always compute today's stats\n await this.materializeDate(today, opts)\n\n // Finalize yesterday if its snapshot is missing or stale\n if (!opts?.force) {\n const yesterdayRow = await this.db.db\n .selectFrom('report_stat')\n .select('computedAt')\n .where('date', '=', yesterday)\n .orderBy('computedAt', 'desc')\n .executeTakeFirst()\n const endOfYesterday = new Date(`${yesterday}T23:59:59.999Z`).getTime()\n if (\n !yesterdayRow ||\n new Date(yesterdayRow.computedAt).getTime() < endOfYesterday\n ) {\n await this.materializeDate(yesterday, { force: true })\n }\n } else {\n await this.materializeDate(yesterday, { force: true })\n }\n\n const duration = Date.now() - start\n dbLogger.info({ duration }, 'report stats materialization completed')\n } catch (err) {\n dbLogger.error({ err }, 'report stats materialization errored')\n }\n }\n\n /**\n * Compute stats for a specific date range. Used by the refreshStats endpoint.\n */\n async refreshDateRange(opts: {\n startDate: string\n endDate: string\n queueIds?: number[]\n }): Promise<void> {\n const start = new Date(opts.startDate)\n const end = new Date(opts.endDate)\n\n for (let d = new Date(start); d <= end; d.setUTCDate(d.getUTCDate() + 1)) {\n const dateStr = toDateString(d)\n if (opts.queueIds?.length) {\n // Recompute only specific queue groups for this date\n const batched = await this.computeBatchedStats(dateStr)\n const rows: UpsertRow[] = []\n for (const queueId of opts.queueIds) {\n const group: ReportStatGroup = {\n queueId,\n moderatorDid: null,\n reportTypes: null,\n }\n const stats = this.resolveGroupStats(group, batched)\n rows.push(this.buildUpsertRow(dateStr, group, stats))\n }\n await this.bulkUpsert(rows)\n } else {\n await this.materializeDate(dateStr, { force: true })\n }\n }\n }\n\n /** Compute and write all groups for a single date. */\n private async materializeDate(\n date: string,\n opts?: { force?: boolean },\n ): Promise<void> {\n const groups = await this.enumerateGroups()\n const batched = await this.computeBatchedStats(date)\n const today = toDateString(new Date())\n const isToday = date === today\n\n // Batch the cache check so we don't issue one SELECT per group.\n const existingByKey = !opts?.force\n ? await this.fetchExistingStatsByKey(date)\n : null\n\n const rows: UpsertRow[] = []\n for (const group of groups) {\n try {\n if (existingByKey) {\n const cached = existingByKey.get(groupKey(group))\n if (cached) {\n // Historical dates: never recompute. Today: recompute if stale.\n if (!isToday) continue\n const age = Date.now() - new Date(cached.computedAt).getTime()\n if (age < REPORT_STAT_LIVE_TTL) continue\n }\n }\n const stats = this.resolveGroupStats(group, batched)\n rows.push(this.buildUpsertRow(date, group, stats))\n } catch (err) {\n dbLogger.error(\n { err, group, date },\n 'error preparing report stats group',\n )\n }\n }\n\n await this.bulkUpsert(rows)\n }\n\n /** Fetch all stat rows for a date, keyed by groupKey for O(1) lookup. */\n private async fetchExistingStatsByKey(\n date: string,\n ): Promise<Map<string, Selectable<ReportStat>>> {\n const existing = await this.db.db\n .selectFrom('report_stat')\n .selectAll()\n .where('date', '=', date)\n .execute()\n const map = new Map<string, Selectable<ReportStat>>()\n for (const row of existing) {\n map.set(\n groupKey({\n queueId: row.queueId,\n moderatorDid: row.moderatorDid,\n reportTypes: row.reportTypes,\n }),\n row,\n )\n }\n return map\n }\n\n /** List out the groups to compute stats for. */\n private async enumerateGroups(): Promise<ReportStatGroup[]> {\n const groups: ReportStatGroup[] = []\n\n const queues = await this.db.db\n .selectFrom('report_queue')\n .selectAll()\n .where('enabled', '=', true)\n .where('deletedAt', 'is', null)\n .execute()\n const members = await this.db.db\n .selectFrom('member')\n .select('did')\n .where('disabled', '=', false)\n .where('role', 'in', [\n 'tools.ozone.team.defs#roleAdmin',\n 'tools.ozone.team.defs#roleModerator',\n 'tools.ozone.team.defs#roleTriage',\n ])\n .execute()\n\n // aggregate\n groups.push({ queueId: null, moderatorDid: null, reportTypes: null })\n // per queue\n for (const queue of queues) {\n groups.push({ queueId: queue.id, moderatorDid: null, reportTypes: null })\n }\n // unqueued\n groups.push({ queueId: -1, moderatorDid: null, reportTypes: null })\n // per moderator\n for (const member of members) {\n groups.push({\n queueId: null,\n moderatorDid: member.did,\n reportTypes: null,\n })\n }\n // per report type group\n for (const groupTypes of Object.values(REPORT_TYPE_GROUPS)) {\n groups.push({\n queueId: null,\n moderatorDid: null,\n reportTypes: groupTypes,\n })\n }\n\n return groups\n }\n\n /**\n * Run batched GROUP BY queries for a calendar date.\n * Returns 5 result sets covering all group types.\n */\n private async computeBatchedStats(date: string): Promise<BatchedStats> {\n const dayStart = `${date}T00:00:00.000Z`\n const dayEnd = `${nextDate(date)}T00:00:00.000Z`\n\n const [queuePending, aggregatePending] = await Promise.all([\n // Pending count is a snapshot of all non-closed reports at time of computation\n this.db.db\n .selectFrom('report')\n .select(['queueId', sql<string>`count(*)`.as('count')])\n .where('status', '!=', 'closed')\n .where('queueId', 'is not', null)\n .groupBy('queueId')\n .execute(),\n // Aggregate pending (includes all reports, even un-routed)\n this.db.db\n .selectFrom('report')\n .select(sql<string>`count(*)`.as('count'))\n .where('status', '!=', 'closed')\n .executeTakeFirst(),\n ])\n\n const queueWindow = await this.db.db\n .selectFrom('report')\n .select([\n 'queueId',\n sql<string>`count(*)`.as('inboundCount'),\n sql<string>`count(*) filter (where \"status\" = 'closed' and \"closedAt\" >= ${dayStart} and \"closedAt\" < ${dayEnd})`.as(\n 'actionedCount',\n ),\n sql<string>`count(*) filter (where \"status\" = 'escalated')`.as(\n 'escalatedCount',\n ),\n sql<string>`sum(extract(epoch from (\"closedAt\"::timestamp - \"createdAt\"::timestamp))) filter (where \"status\" = 'closed' and \"closedAt\" is not null and \"closedAt\" >= ${dayStart} and \"closedAt\" < ${dayEnd})`.as(\n 'handlingTimeSum',\n ),\n sql<string>`count(*) filter (where \"status\" = 'closed' and \"closedAt\" is not null and \"closedAt\" >= ${dayStart} and \"closedAt\" < ${dayEnd})`.as(\n 'handlingTimeCount',\n ),\n ])\n .where('createdAt', '>=', dayStart)\n .where('createdAt', '<', dayEnd)\n .where('queueId', 'is not', null)\n .groupBy('queueId')\n .execute()\n\n // Aggregate windowed (includes all reports)\n const aggregateWindow = await this.db.db\n .selectFrom('report')\n .select([\n sql<string>`count(*)`.as('inboundCount'),\n sql<string>`count(*) filter (where \"status\" = 'closed' and \"closedAt\" >= ${dayStart} and \"closedAt\" < ${dayEnd})`.as(\n 'actionedCount',\n ),\n sql<string>`count(*) filter (where \"status\" = 'escalated')`.as(\n 'escalatedCount',\n ),\n sql<string>`sum(extract(epoch from (\"closedAt\"::timestamp - \"createdAt\"::timestamp))) filter (where \"status\" = 'closed' and \"closedAt\" is not null and \"closedAt\" >= ${dayStart} and \"closedAt\" < ${dayEnd})`.as(\n 'handlingTimeSum',\n ),\n sql<string>`count(*) filter (where \"status\" = 'closed' and \"closedAt\" is not null and \"closedAt\" >= ${dayStart} and \"closedAt\" < ${dayEnd})`.as(\n 'handlingTimeCount',\n ),\n ])\n .where('createdAt', '>=', dayStart)\n .where('createdAt', '<', dayEnd)\n .executeTakeFirst()\n\n const typePending = await this.db.db\n .selectFrom('report')\n .select(['reportType', sql<string>`count(*)`.as('count')])\n .where('status', '!=', 'closed')\n .groupBy('reportType')\n .execute()\n\n const typeWindow = await this.db.db\n .selectFrom('report')\n .select([\n 'reportType',\n sql<string>`count(*)`.as('inboundCount'),\n sql<string>`count(*) filter (where \"status\" = 'closed' and \"closedAt\" >= ${dayStart} and \"closedAt\" < ${dayEnd})`.as(\n 'actionedCount',\n ),\n sql<string>`count(*) filter (where \"status\" = 'escalated')`.as(\n 'escalatedCount',\n ),\n sql<string>`sum(extract(epoch from (\"closedAt\"::timestamp - \"createdAt\"::timestamp))) filter (where \"status\" = 'closed' and \"closedAt\" is not null and \"closedAt\" >= ${dayStart} and \"closedAt\" < ${dayEnd})`.as(\n 'handlingTimeSum',\n ),\n sql<string>`count(*) filter (where \"status\" = 'closed' and \"closedAt\" is not null and \"closedAt\" >= ${dayStart} and \"closedAt\" < ${dayEnd})`.as(\n 'handlingTimeCount',\n ),\n ])\n .where('createdAt', '>=', dayStart)\n .where('createdAt', '<', dayEnd)\n .groupBy('reportType')\n .execute()\n\n const moderator = await this.db.db\n .selectFrom('report as r')\n .innerJoin('moderator_assignment as ma', (join) =>\n join.onRef('ma.reportId', '=', 'r.id').on('ma.endAt', 'is', null),\n )\n .select([\n 'ma.did',\n sql<string>`count(*)`.as('inboundCount'),\n sql<string>`count(*) filter (where r.\"status\" = 'closed')`.as(\n 'actionedCount',\n ),\n sql<string>`sum(extract(epoch from (r.\"closedAt\"::timestamp - ma.\"startAt\"::timestamp))) filter (where r.\"status\" = 'closed' and r.\"closedAt\" is not null)`.as(\n 'handlingTimeSum',\n ),\n sql<string>`count(*) filter (where r.\"status\" = 'closed' and r.\"closedAt\" is not null)`.as(\n 'handlingTimeCount',\n ),\n ])\n .where('r.createdAt', '>=', dayStart)\n .where('r.createdAt', '<', dayEnd)\n .groupBy('ma.did')\n .execute()\n\n // Inject aggregate as a synthetic row with queueId=null so resolveQueueStats can find it\n const allQueuePending: QueueCountRow[] = [\n ...queuePending,\n { queueId: null, count: aggregatePending?.count ?? '0' },\n ]\n const allQueueWindow: QueueWindowRow[] = aggregateWindow\n ? [\n ...queueWindow,\n {\n queueId: null,\n inboundCount: aggregateWindow.inboundCount,\n actionedCount: aggregateWindow.actionedCount,\n escalatedCount: aggregateWindow.escalatedCount,\n handlingTimeSum: aggregateWindow.handlingTimeSum,\n handlingTimeCount: aggregateWindow.handlingTimeCount,\n },\n ]\n : queueWindow\n\n return {\n queuePending: allQueuePending,\n queueWindow: allQueueWindow,\n typePending,\n typeWindow,\n moderator,\n }\n }\n\n /** Resolve a single group's stats from batched query results (pure in-memory). */\n private resolveGroupStats(\n group: ReportStatGroup,\n batched: BatchedStats,\n ): ReportStatistics {\n if (group.moderatorDid) {\n return this.resolveModeratorStats(group.moderatorDid, batched.moderator)\n }\n if (group.reportTypes !== null) {\n return this.resolveReportTypeStats(group.reportTypes, batched)\n }\n return this.resolveQueueStats(group.queueId, batched)\n }\n\n private resolveQueueStats(\n queueId: number | null,\n batched: BatchedStats,\n ): AggregateStatistics | QueueStatistics {\n // queueId=null is the synthetic aggregate row\n const pending = batched.queuePending.find((r) => r.queueId === queueId)\n const window = batched.queueWindow.find((r) => r.queueId === queueId)\n\n const pendingCount = num(pending?.count)\n const inboundCount = num(window?.inboundCount)\n const actionedCount = num(window?.actionedCount)\n const escalatedCount = num(window?.escalatedCount)\n const handlingTimeSum = Number(window?.handlingTimeSum ?? 0)\n const handlingTimeCount = num(window?.handlingTimeCount)\n const actionRate =\n inboundCount > 0 ? Math.round((actionedCount / inboundCount) * 100) : 0\n const avgHandlingTimeSec =\n handlingTimeCount > 0\n ? Math.round(handlingTimeSum / handlingTimeCount)\n : undefined\n\n return {\n inboundCount,\n pendingCount,\n actionedCount,\n escalatedCount,\n actionRate,\n avgHandlingTimeSec,\n }\n }\n\n private resolveReportTypeStats(\n reportTypes: string[],\n batched: BatchedStats,\n ): ReportTypeStatistics {\n const types = new Set(reportTypes)\n\n const matchingPending = batched.typePending.filter((r) =>\n types.has(r.reportType),\n )\n const matchingWindow = batched.typeWindow.filter((r) =>\n types.has(r.reportType),\n )\n\n const pendingCount = sumNum(matchingPending, 'count')\n const inboundCount = sumNum(matchingWindow, 'inboundCount')\n const actionedCount = sumNum(matchingWindow, 'actionedCount')\n const escalatedCount = sumNum(matchingWindow, 'escalatedCount')\n const handlingTimeSum = matchingWindow.reduce(\n (sum, r) => sum + Number(r.handlingTimeSum ?? 0),\n 0,\n )\n const handlingTimeCount = sumNum(matchingWindow, 'handlingTimeCount')\n\n const actionRate =\n inboundCount > 0 ? Math.round((actionedCount / inboundCount) * 100) : 0\n const avgHandlingTimeSec =\n handlingTimeCount > 0\n ? Math.round(handlingTimeSum / handlingTimeCount)\n : undefined\n\n return {\n inboundCount,\n pendingCount,\n actionedCount,\n escalatedCount,\n actionRate,\n avgHandlingTimeSec,\n }\n }\n\n private resolveModeratorStats(\n moderatorDid: string,\n rows: ModeratorWindowRow[],\n ): ModeratorStatistics {\n const row = rows.find((r) => r.did === moderatorDid)\n\n const inboundCount = num(row?.inboundCount)\n const actionedCount = num(row?.actionedCount)\n const handlingTimeCount = num(row?.handlingTimeCount)\n const avgHandlingTimeSec =\n handlingTimeCount > 0 && row?.handlingTimeSum\n ? Math.round(Number(row.handlingTimeSum) / handlingTimeCount)\n : undefined\n\n return { inboundCount, actionedCount, avgHandlingTimeSec }\n }\n\n /** Build an upsert row from (date, group, stats). */\n private buildUpsertRow(\n date: string,\n group: ReportStatGroup,\n stats: ReportStatistics,\n ): UpsertRow {\n const pendingCount =\n 'pendingCount' in stats ? stats.pendingCount ?? null : null\n const escalatedCount =\n 'escalatedCount' in stats ? stats.escalatedCount ?? null : null\n const actionRate = 'actionRate' in stats ? stats.actionRate ?? null : null\n\n return {\n date,\n queueId: group.queueId,\n moderatorDid: group.moderatorDid,\n reportTypes: group.reportTypes,\n inboundCount: stats.inboundCount ?? null,\n pendingCount,\n actionedCount: stats.actionedCount ?? null,\n escalatedCount,\n actionRate,\n avgHandlingTimeSec: stats.avgHandlingTimeSec ?? null,\n computedAt: new Date().toISOString(),\n }\n }\n\n /**\n * Wraps a DELETE+INSERT for each row in a single transaction so we pay one\n * commit per cycle instead of one per group. NULL-aware WHERE clauses match\n * the existing PG <15 NULL semantics without needing a unique index.\n */\n private async bulkUpsert(rows: UpsertRow[]): Promise<void> {\n if (!rows.length) return\n\n await this.db.transaction(async (dbTxn) => {\n for (const r of rows) {\n let del = dbTxn.db.deleteFrom('report_stat').where('date', '=', r.date)\n del =\n r.queueId !== null\n ? del.where('queueId', '=', r.queueId)\n : del.where('queueId', 'is', null)\n del =\n r.moderatorDid !== null\n ? del.where('moderatorDid', '=', r.moderatorDid)\n : del.where('moderatorDid', 'is', null)\n del =\n r.reportTypes !== null\n ? del.where(\n sql`\"reportTypes\"::jsonb = ${jsonb(r.reportTypes)}::jsonb`,\n )\n : del.where('reportTypes', 'is', null)\n await del.execute()\n\n await dbTxn.db\n .insertInto('report_stat')\n .values({\n date: r.date,\n queueId: r.queueId,\n moderatorDid: r.moderatorDid,\n reportTypes: r.reportTypes !== null ? jsonb(r.reportTypes) : null,\n inboundCount: r.inboundCount,\n pendingCount: r.pendingCount,\n actionedCount: r.actionedCount,\n escalatedCount: r.escalatedCount,\n actionRate: r.actionRate,\n avgHandlingTimeSec: r.avgHandlingTimeSec,\n computedAt: r.computedAt,\n })\n .execute()\n }\n })\n }\n\n // ─── Read methods ───\n\n /** Get a single stat row for a date + group. */\n private async getStatForDate(\n date: string,\n group: ReportStatGroup,\n ): Promise<Selectable<ReportStat> | undefined> {\n let qb = this.db.db\n .selectFrom('report_stat')\n .selectAll()\n .where('date', '=', date)\n if (group.queueId !== null) {\n qb = qb.where('queueId', '=', group.queueId)\n } else {\n qb = qb.where('queueId', 'is', null)\n }\n if (group.moderatorDid) {\n qb = qb.where('moderatorDid', '=', group.moderatorDid)\n } else {\n qb = qb.where('moderatorDid', 'is', null)\n }\n if (group.reportTypes !== null) {\n qb = qb.where(\n sql`\"reportTypes\"::jsonb = ${jsonb(group.reportTypes)}::jsonb`,\n )\n } else {\n qb = qb.where('reportTypes', 'is', null)\n }\n return qb.executeTakeFirst()\n }\n\n /** Get today's live stats for a group. */\n async getLiveStats(\n group: ReportStatGroup,\n ): Promise<Selectable<ReportStat> | undefined> {\n const today = toDateString(new Date())\n return this.getStatForDate(today, group)\n }\n\n /** Get live stats for multiple queues in a single query. */\n async getLiveStatsForQueues(\n queueIds: number[],\n ): Promise<Map<number, Selectable<ReportStat>>> {\n if (!queueIds.length) return new Map()\n\n const today = toDateString(new Date())\n const rows = await this.db.db\n .selectFrom('report_stat')\n .selectAll()\n .where('date', '=', today)\n .where('queueId', 'in', queueIds)\n .where('moderatorDid', 'is', null)\n .where('reportTypes', 'is', null)\n .execute()\n\n const result = new Map<number, Selectable<ReportStat>>()\n for (const row of rows) {\n if (row.queueId !== null) {\n result.set(row.queueId, row)\n }\n }\n return result\n }\n\n /** Get historical stats for a date range, paginated. */\n async getHistoricalStats(opts: {\n group: ReportStatGroup\n startDate?: string\n endDate?: string\n limit: number\n cursor?: string\n }): Promise<{ stats: Selectable<ReportStat>[]; cursor?: string }> {\n const { group, startDate, endDate, limit } = opts\n const { queueId, moderatorDid, reportTypes } = group\n const { ref } = this.db.db.dynamic\n\n let qb = this.db.db.selectFrom('report_stat').selectAll()\n\n if (queueId !== null) {\n qb = qb.where('queueId', '=', queueId)\n } else {\n qb = qb.where('queueId', 'is', null)\n }\n if (moderatorDid) {\n qb = qb.where('moderatorDid', '=', moderatorDid)\n } else {\n qb = qb.where('moderatorDid', 'is', null)\n }\n if (reportTypes !== null) {\n qb = qb.where(sql`\"reportTypes\"::jsonb = ${jsonb(reportTypes)}::jsonb`)\n } else {\n qb = qb.where('reportTypes', 'is', null)\n }\n if (startDate) {\n qb = qb.where('date', '>=', toDateString(new Date(startDate)))\n }\n if (endDate) {\n qb = qb.where('date', '<=', toDateString(new Date(endDate)))\n }\n\n const keyset = new ComputedAtIdKeyset(ref('computedAt'), ref('id'))\n const paginatedBuilder = paginate(qb, {\n limit,\n cursor: opts.cursor,\n keyset,\n direction: 'desc',\n tryIndex: true,\n })\n\n const stats = await paginatedBuilder.execute()\n\n return { stats, cursor: keyset.packFromResult(stats) }\n }\n}\n\n// ─── Helpers ───\n\n/** Parse a pg bigint string to number, defaulting to 0. */\nfunction num(val: string | undefined | null): number {\n return val ? Number(val) : 0\n}\n\n/** Sum a numeric string field across rows. */\nfunction sumNum<T>(rows: T[], field: keyof T): number {\n return rows.reduce((sum, r) => sum + Number(r[field] ?? 0), 0)\n}\n\n/**\n * Stable cache-key for a stat group. Used to look up an existing row in the\n * batched cache map without issuing per-group SELECTs. Report types are\n * stringified in stored order, which matches REPORT_TYPE_GROUPS.\n */\nfunction groupKey(g: ReportStatGroup): string {\n return [\n g.queueId ?? 'null',\n g.moderatorDid ?? 'null',\n g.reportTypes ? JSON.stringify(g.reportTypes) : 'null',\n ].join('|')\n}\n\n/** Convert a Date to an ISO date string (YYYY-MM-DD). */\nfunction toDateString(d: Date): string {\n return d.toISOString().slice(0, 10)\n}\n\n/** Get the next calendar date string. */\nfunction nextDate(dateStr: string): string {\n const d = new Date(`${dateStr}T00:00:00.000Z`)\n d.setUTCDate(d.getUTCDate() + 1)\n return toDateString(d)\n}\n"]}
@@ -1,11 +1,14 @@
1
1
  import { Selectable } from 'kysely';
2
- import { AppBskyActorDefs, ToolsOzoneModerationDefs, ToolsOzoneQueueDefs, ToolsOzoneReportDefs } from '@atproto/api';
3
- import { ReportStat } from '../db/schema/report_stat';
4
- import { AccountView } from '../lexicon/types/com/atproto/admin/defs';
5
- import { RecordViewDetail, RepoView } from '../lexicon/types/tools/ozone/moderation/defs';
6
- import { Member as TeamMember } from '../lexicon/types/tools/ozone/team/defs';
7
- import { ReportWithEvent } from '../mod-service/report';
8
- import { ParsedLabelers } from '../util';
2
+ import { ReportStat } from '../db/schema/report_stat.js';
3
+ import * as AppBskyActorDefs from '../lexicon/types/app/bsky/actor/defs.js';
4
+ import { AccountView } from '../lexicon/types/com/atproto/admin/defs.js';
5
+ import { RecordViewDetail, RepoView } from '../lexicon/types/tools/ozone/moderation/defs.js';
6
+ import * as ToolsOzoneModerationDefs from '../lexicon/types/tools/ozone/moderation/defs.js';
7
+ import * as ToolsOzoneQueueDefs from '../lexicon/types/tools/ozone/queue/defs.js';
8
+ import * as ToolsOzoneReportDefs from '../lexicon/types/tools/ozone/report/defs.js';
9
+ import { Member as TeamMember } from '../lexicon/types/tools/ozone/team/defs.js';
10
+ import { ReportWithEvent } from '../mod-service/report.js';
11
+ import { ParsedLabelers } from '../util.js';
9
12
  type ReportViews = {
10
13
  repoDetails(dids: string[], labelers?: ParsedLabelers): Promise<Map<string, RepoView>>;
11
14
  recordDetails(subjects: {
@@ -29,7 +32,7 @@ export declare function buildReportView(report: ReportWithEvent, hydrated: Hydra
29
32
  subject: {
30
33
  type: string;
31
34
  subject: string;
32
- repo: import("../lexicon/types/tools/ozone/moderation/defs").RepoViewDetail | undefined;
35
+ repo: ToolsOzoneModerationDefs.RepoViewDetail | undefined;
33
36
  record: RecordViewDetail | undefined;
34
37
  profile: {
35
38
  $type: "app.bsky.actor.defs#profileViewDetailed";
@@ -45,24 +48,24 @@ export declare function buildReportView(report: ReportWithEvent, hydrated: Hydra
45
48
  followsCount?: number;
46
49
  postsCount?: number;
47
50
  associated?: AppBskyActorDefs.ProfileAssociated;
48
- joinedViaStarterPack?: import("@atproto/api/dist/client/types/app/bsky/graph/defs").StarterPackViewBasic;
51
+ joinedViaStarterPack?: import("../lexicon/types/app/bsky/graph/defs.js").StarterPackViewBasic;
49
52
  indexedAt?: string;
50
53
  createdAt?: string;
51
54
  viewer?: AppBskyActorDefs.ViewerState;
52
- labels?: import("@atproto/api/dist/client/types/com/atproto/label/defs").Label[];
53
- pinnedPost?: import("@atproto/api/dist/client/types/com/atproto/repo/strongRef").Main;
55
+ labels?: import("../lexicon/types/com/atproto/label/defs.js").Label[];
56
+ pinnedPost?: import("../lexicon/types/com/atproto/repo/strongRef.js").Main;
54
57
  verification?: AppBskyActorDefs.VerificationState;
55
58
  status?: AppBskyActorDefs.StatusView;
56
59
  debug?: { [_ in string]: unknown; };
57
60
  } | undefined;
58
- status: import("../lexicon/types/tools/ozone/moderation/defs").SubjectStatusView | undefined;
61
+ status: ToolsOzoneModerationDefs.SubjectStatusView | undefined;
59
62
  };
60
63
  reportType: string;
61
64
  reportedBy: string;
62
65
  reporter: {
63
66
  type: string;
64
67
  subject: string;
65
- repo: import("../lexicon/types/tools/ozone/moderation/defs").RepoViewDetail | undefined;
68
+ repo: ToolsOzoneModerationDefs.RepoViewDetail | undefined;
66
69
  profile: {
67
70
  $type: "app.bsky.actor.defs#profileViewDetailed";
68
71
  did: string;
@@ -77,17 +80,17 @@ export declare function buildReportView(report: ReportWithEvent, hydrated: Hydra
77
80
  followsCount?: number;
78
81
  postsCount?: number;
79
82
  associated?: AppBskyActorDefs.ProfileAssociated;
80
- joinedViaStarterPack?: import("@atproto/api/dist/client/types/app/bsky/graph/defs").StarterPackViewBasic;
83
+ joinedViaStarterPack?: import("../lexicon/types/app/bsky/graph/defs.js").StarterPackViewBasic;
81
84
  indexedAt?: string;
82
85
  createdAt?: string;
83
86
  viewer?: AppBskyActorDefs.ViewerState;
84
- labels?: import("@atproto/api/dist/client/types/com/atproto/label/defs").Label[];
85
- pinnedPost?: import("@atproto/api/dist/client/types/com/atproto/repo/strongRef").Main;
87
+ labels?: import("../lexicon/types/com/atproto/label/defs.js").Label[];
88
+ pinnedPost?: import("../lexicon/types/com/atproto/repo/strongRef.js").Main;
86
89
  verification?: AppBskyActorDefs.VerificationState;
87
90
  status?: AppBskyActorDefs.StatusView;
88
91
  debug?: { [_ in string]: unknown; };
89
92
  } | undefined;
90
- status: import("../lexicon/types/tools/ozone/moderation/defs").SubjectStatusView | undefined;
93
+ status: ToolsOzoneModerationDefs.SubjectStatusView | undefined;
91
94
  };
92
95
  comment: string | undefined;
93
96
  createdAt: string;
@@ -1 +1 @@
1
- {"version":3,"file":"views.d.ts","sourceRoot":"","sources":["../../src/report/views.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EACL,gBAAgB,EAChB,wBAAwB,EACxB,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,cAAc,CAAA;AAErB,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAA;AACrE,OAAO,EACL,gBAAgB,EAChB,QAAQ,EACT,MAAM,8CAA8C,CAAA;AACrD,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,wCAAwC,CAAA;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAExC,KAAK,WAAW,GAAG;IACjB,WAAW,CACT,IAAI,EAAE,MAAM,EAAE,EACd,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAA;IACjC,aAAa,CACX,QAAQ,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,EAC3B,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAA;IACzC,WAAW,CACT,IAAI,EAAE,MAAM,EAAE,GACb,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,mBAAmB,CAAC,CAAC,CAAA;CAC9D,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACnC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC,CAAA;IAC5C,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;IACzC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,mBAAmB,CAAC,CAAA;IAC3D,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAA;IAClD,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;CACrC,CAAA;AAED,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,eAAe,EAAE,EAC1B,KAAK,EAAE,WAAW,EAClB,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC,CAAC,EAC7E,SAAS,EAAE,CACT,QAAQ,EAAE,MAAM,EAAE,KACf,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC,EACxD,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,EACpE,QAAQ,EAAE,cAAc,GACvB,OAAO,CAAC,cAAc,CAAC,CAuCzB;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,cAAc,EACxB,WAAW,EAAE,OAAO,EACpB,OAAO,CAAC,EAAE,wBAAwB,CAAC,YAAY,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsGlD;AAED,wBAAgB,cAAc,CAC5B,GAAG,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,GAC3B,mBAAmB,CAAC,UAAU,CAUhC;AAED,wBAAgB,aAAa,CAC3B,GAAG,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,GAC3B,oBAAoB,CAAC,SAAS,CAUhC;AAED,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,UAAU,CAAC,UAAU,CAAC,GAC1B,oBAAoB,CAAC,eAAe,CAWtC"}
1
+ {"version":3,"file":"views.d.ts","sourceRoot":"","sources":["../../src/report/views.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.hydrateReportInfo = hydrateReportInfo;
4
- exports.buildReportView = buildReportView;
5
- exports.viewQueueStats = viewQueueStats;
6
- exports.viewLiveStats = viewLiveStats;
7
- exports.viewHistoricalStats = viewHistoricalStats;
8
- const util_1 = require("../api/util");
9
- async function hydrateReportInfo(reports, views, getAccountInfos, getQueues, getTeamMembers, labelers) {
1
+ import { addAccountInfoToRepoViewDetail } from '../api/util.js';
2
+ export async function hydrateReportInfo(reports, views, getAccountInfos, getQueues, getTeamMembers, labelers) {
10
3
  const dids = new Set();
11
4
  const uris = new Set();
12
5
  const queueIds = new Set();
@@ -41,13 +34,13 @@ async function hydrateReportInfo(reports, views, getAccountInfos, getQueues, get
41
34
  memberViews,
42
35
  };
43
36
  }
44
- function buildReportView(report, hydrated, isModerator, actions) {
37
+ export function buildReportView(report, hydrated, isModerator, actions) {
45
38
  const { partialRepos, accountInfo, recordInfo, profiles, queues, memberViews, } = hydrated;
46
39
  const isRecord = !!report.subjectUri;
47
40
  const did = report.subjectDid;
48
41
  const partialRepo = partialRepos.get(did);
49
42
  const repo = partialRepo
50
- ? (0, util_1.addAccountInfoToRepoViewDetail)(partialRepo, accountInfo.get(did) || null, isModerator)
43
+ ? addAccountInfoToRepoViewDetail(partialRepo, accountInfo.get(did) || null, isModerator)
51
44
  : undefined;
52
45
  const profile = profiles.get(did);
53
46
  const record = isRecord ? recordInfo.get(report.subjectUri) : undefined;
@@ -72,7 +65,7 @@ function buildReportView(report, hydrated, isModerator, actions) {
72
65
  const reporterDid = report.reportedBy;
73
66
  const reporterPartialRepo = partialRepos.get(reporterDid);
74
67
  const reporterRepo = reporterPartialRepo
75
- ? (0, util_1.addAccountInfoToRepoViewDetail)(reporterPartialRepo, accountInfo.get(reporterDid) || null, isModerator)
68
+ ? addAccountInfoToRepoViewDetail(reporterPartialRepo, accountInfo.get(reporterDid) || null, isModerator)
76
69
  : undefined;
77
70
  const reporterProfile = profiles.get(reporterDid);
78
71
  const reporterStatus = reporterRepo?.moderation.subjectStatus;
@@ -119,7 +112,7 @@ function buildReportView(report, hydrated, isModerator, actions) {
119
112
  isMuted: report.isMuted,
120
113
  };
121
114
  }
122
- function viewQueueStats(row) {
115
+ export function viewQueueStats(row) {
123
116
  return {
124
117
  pendingCount: row?.pendingCount ?? undefined,
125
118
  actionedCount: row?.actionedCount ?? undefined,
@@ -130,7 +123,7 @@ function viewQueueStats(row) {
130
123
  lastUpdated: row?.computedAt,
131
124
  };
132
125
  }
133
- function viewLiveStats(row) {
126
+ export function viewLiveStats(row) {
134
127
  return {
135
128
  pendingCount: row?.pendingCount ?? undefined,
136
129
  actionedCount: row?.actionedCount ?? undefined,
@@ -141,7 +134,7 @@ function viewLiveStats(row) {
141
134
  lastUpdated: row?.computedAt,
142
135
  };
143
136
  }
144
- function viewHistoricalStats(row) {
137
+ export function viewHistoricalStats(row) {
145
138
  return {
146
139
  date: row.date,
147
140
  computedAt: row.computedAt,
@@ -1 +1 @@
1
- {"version":3,"file":"views.js","sourceRoot":"","sources":["../../src/report/views.ts"],"names":[],"mappings":"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","sourcesContent":["import { Selectable } from 'kysely'\nimport {\n AppBskyActorDefs,\n ToolsOzoneModerationDefs,\n ToolsOzoneQueueDefs,\n ToolsOzoneReportDefs,\n} from '@atproto/api'\nimport { addAccountInfoToRepoViewDetail } from '../api/util'\nimport { ReportStat } from '../db/schema/report_stat'\nimport { AccountView } from '../lexicon/types/com/atproto/admin/defs'\nimport {\n RecordViewDetail,\n RepoView,\n} from '../lexicon/types/tools/ozone/moderation/defs'\nimport { Member as TeamMember } from '../lexicon/types/tools/ozone/team/defs'\nimport { ReportWithEvent } from '../mod-service/report'\nimport { ParsedLabelers } from '../util'\n\ntype ReportViews = {\n repoDetails(\n dids: string[],\n labelers?: ParsedLabelers,\n ): Promise<Map<string, RepoView>>\n recordDetails(\n subjects: { uri: string }[],\n labelers?: ParsedLabelers,\n ): Promise<Map<string, RecordViewDetail>>\n getProfiles(\n dids: string[],\n ): Promise<Map<string, AppBskyActorDefs.ProfileViewDetailed>>\n}\n\nexport type HydratedReport = {\n partialRepos: Map<string, RepoView>\n accountInfo: Map<string, AccountView | null>\n recordInfo: Map<string, RecordViewDetail>\n profiles: Map<string, AppBskyActorDefs.ProfileViewDetailed>\n queues: Map<number, ToolsOzoneQueueDefs.QueueView>\n memberViews: Map<string, TeamMember>\n}\n\nexport async function hydrateReportInfo(\n reports: ReportWithEvent[],\n views: ReportViews,\n getAccountInfos: (dids: string[]) => Promise<Map<string, AccountView | null>>,\n getQueues: (\n queueIds: number[],\n ) => Promise<Map<number, ToolsOzoneQueueDefs.QueueView>>,\n getTeamMembers: (dids: string[]) => Promise<Map<string, TeamMember>>,\n labelers: ParsedLabelers,\n): Promise<HydratedReport> {\n const dids = new Set<string>()\n const uris = new Set<string>()\n const queueIds = new Set<number>()\n const assignmentDids: string[] = []\n\n for (const report of reports) {\n dids.add(report.subjectDid)\n dids.add(report.reportedBy)\n if (report.subjectUri) uris.add(report.subjectUri)\n if (report.queueId && report.queueId > 0) queueIds.add(report.queueId)\n if (report.assignedTo) {\n dids.add(report.assignedTo)\n assignmentDids.push(report.assignedTo)\n }\n }\n\n const didsArray = Array.from(dids)\n const [partialRepos, accountInfo, recordInfo, profiles, queues, memberViews] =\n await Promise.all([\n views.repoDetails(didsArray, labelers),\n getAccountInfos(didsArray),\n views.recordDetails(\n Array.from(uris).map((uri) => ({ uri })),\n labelers,\n ),\n views.getProfiles(didsArray),\n getQueues(Array.from(queueIds)),\n getTeamMembers(assignmentDids),\n ])\n\n return {\n partialRepos,\n accountInfo,\n recordInfo,\n profiles,\n queues,\n memberViews,\n }\n}\n\nexport function buildReportView(\n report: ReportWithEvent,\n hydrated: HydratedReport,\n isModerator: boolean,\n actions?: ToolsOzoneModerationDefs.ModEventView[],\n) {\n const {\n partialRepos,\n accountInfo,\n recordInfo,\n profiles,\n queues,\n memberViews,\n } = hydrated\n const isRecord = !!report.subjectUri\n const did = report.subjectDid\n const partialRepo = partialRepos.get(did)\n const repo = partialRepo\n ? addAccountInfoToRepoViewDetail(\n partialRepo,\n accountInfo.get(did) || null,\n isModerator,\n )\n : undefined\n const profile = profiles.get(did)\n const record = isRecord ? recordInfo.get(report.subjectUri!) : undefined\n const status = isRecord\n ? record?.moderation.subjectStatus\n : repo?.moderation.subjectStatus\n\n const reportType = report.meta?.reportType as string\n\n const subject = isRecord ? report.subjectUri! : report.subjectDid\n const subjectView = {\n type: isRecord ? 'record' : 'account',\n subject,\n repo,\n record,\n profile: profile\n ? {\n $type: 'app.bsky.actor.defs#profileViewDetailed' as const,\n ...profile,\n }\n : undefined,\n status,\n }\n\n const reporterDid = report.reportedBy\n const reporterPartialRepo = partialRepos.get(reporterDid)\n const reporterRepo = reporterPartialRepo\n ? addAccountInfoToRepoViewDetail(\n reporterPartialRepo,\n accountInfo.get(reporterDid) || null,\n isModerator,\n )\n : undefined\n const reporterProfile = profiles.get(reporterDid)\n const reporterStatus = reporterRepo?.moderation.subjectStatus\n\n const reporterView = {\n type: 'account',\n subject: reporterDid,\n repo: reporterRepo,\n profile: reporterProfile\n ? {\n $type: 'app.bsky.actor.defs#profileViewDetailed' as const,\n ...reporterProfile,\n }\n : undefined,\n status: reporterStatus,\n }\n\n const assignmentView =\n report.assignedTo && report.assignedAt\n ? {\n did: report.assignedTo,\n moderator: memberViews.get(report.assignedTo),\n assignedAt: report.assignedAt,\n }\n : undefined\n\n return {\n id: report.id,\n eventId: report.eventId,\n status: report.status,\n subject: subjectView,\n reportType,\n reportedBy: report.reportedBy,\n reporter: reporterView,\n comment: report.comment ?? undefined,\n createdAt: report.createdAt,\n updatedAt: report.updatedAt,\n queuedAt: report.queuedAt ?? undefined,\n actionEventIds:\n report.actionEventIds && Array.isArray(report.actionEventIds)\n ? (report.actionEventIds as number[])\n : undefined,\n actions: actions && actions.length ? actions : undefined,\n actionNote: report.actionNote ?? undefined,\n assignment: assignmentView,\n queue:\n report.queueId && report.queueId > 0\n ? queues.get(report.queueId)\n : undefined,\n isMuted: report.isMuted,\n }\n}\n\nexport function viewQueueStats(\n row?: Selectable<ReportStat>,\n): ToolsOzoneQueueDefs.QueueStats {\n return {\n pendingCount: row?.pendingCount ?? undefined,\n actionedCount: row?.actionedCount ?? undefined,\n escalatedCount: row?.escalatedCount ?? undefined,\n inboundCount: row?.inboundCount ?? undefined,\n actionRate: row?.actionRate ?? undefined,\n avgHandlingTimeSec: row?.avgHandlingTimeSec ?? undefined,\n lastUpdated: row?.computedAt,\n }\n}\n\nexport function viewLiveStats(\n row?: Selectable<ReportStat>,\n): ToolsOzoneReportDefs.LiveStats {\n return {\n pendingCount: row?.pendingCount ?? undefined,\n actionedCount: row?.actionedCount ?? undefined,\n escalatedCount: row?.escalatedCount ?? undefined,\n inboundCount: row?.inboundCount ?? undefined,\n actionRate: row?.actionRate ?? undefined,\n avgHandlingTimeSec: row?.avgHandlingTimeSec ?? undefined,\n lastUpdated: row?.computedAt,\n }\n}\n\nexport function viewHistoricalStats(\n row: Selectable<ReportStat>,\n): ToolsOzoneReportDefs.HistoricalStats {\n return {\n date: row.date,\n computedAt: row.computedAt,\n pendingCount: row.pendingCount ?? undefined,\n actionedCount: row.actionedCount ?? undefined,\n escalatedCount: row.escalatedCount ?? undefined,\n inboundCount: row.inboundCount ?? undefined,\n actionRate: row.actionRate ?? undefined,\n avgHandlingTimeSec: row.avgHandlingTimeSec ?? undefined,\n }\n}\n"]}
1
+ {"version":3,"file":"views.js","sourceRoot":"","sources":["../../src/report/views.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAA;AAsC/D,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,OAA0B,EAC1B,KAAkB,EAClB,eAA6E,EAC7E,SAEwD,EACxD,cAAoE,EACpE,QAAwB;IAExB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAC9B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAC9B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAA;IAClC,MAAM,cAAc,GAAa,EAAE,CAAA;IAEnC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QAC3B,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QAC3B,IAAI,MAAM,CAAC,UAAU;YAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QAClD,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC;YAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACtE,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACtB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;YAC3B,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QACxC,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAClC,MAAM,CAAC,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,GAC1E,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC;QACtC,eAAe,CAAC,SAAS,CAAC;QAC1B,KAAK,CAAC,aAAa,CACjB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EACxC,QAAQ,CACT;QACD,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC;QAC5B,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/B,cAAc,CAAC,cAAc,CAAC;KAC/B,CAAC,CAAA;IAEJ,OAAO;QACL,YAAY;QACZ,WAAW;QACX,UAAU;QACV,QAAQ;QACR,MAAM;QACN,WAAW;KACZ,CAAA;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,MAAuB,EACvB,QAAwB,EACxB,WAAoB,EACpB,OAAiD;IAEjD,MAAM,EACJ,YAAY,EACZ,WAAW,EACX,UAAU,EACV,QAAQ,EACR,MAAM,EACN,WAAW,GACZ,GAAG,QAAQ,CAAA;IACZ,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,UAAU,CAAA;IACpC,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAA;IAC7B,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACzC,MAAM,IAAI,GAAG,WAAW;QACtB,CAAC,CAAC,8BAA8B,CAC5B,WAAW,EACX,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,EAC5B,WAAW,CACZ;QACH,CAAC,CAAC,SAAS,CAAA;IACb,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACjC,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,UAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACxE,MAAM,MAAM,GAAG,QAAQ;QACrB,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,aAAa;QAClC,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,aAAa,CAAA;IAElC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,EAAE,UAAoB,CAAA;IAEpD,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,UAAW,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAA;IACjE,MAAM,WAAW,GAAG;QAClB,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;QACrC,OAAO;QACP,IAAI;QACJ,MAAM;QACN,OAAO,EAAE,OAAO;YACd,CAAC,CAAC;gBACE,KAAK,EAAE,yCAAkD;gBACzD,GAAG,OAAO;aACX;YACH,CAAC,CAAC,SAAS;QACb,MAAM;KACP,CAAA;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAA;IACrC,MAAM,mBAAmB,GAAG,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;IACzD,MAAM,YAAY,GAAG,mBAAmB;QACtC,CAAC,CAAC,8BAA8B,CAC5B,mBAAmB,EACnB,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI,EACpC,WAAW,CACZ;QACH,CAAC,CAAC,SAAS,CAAA;IACb,MAAM,eAAe,GAAG,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;IACjD,MAAM,cAAc,GAAG,YAAY,EAAE,UAAU,CAAC,aAAa,CAAA;IAE7D,MAAM,YAAY,GAAG;QACnB,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,WAAW;QACpB,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,eAAe;YACtB,CAAC,CAAC;gBACE,KAAK,EAAE,yCAAkD;gBACzD,GAAG,eAAe;aACnB;YACH,CAAC,CAAC,SAAS;QACb,MAAM,EAAE,cAAc;KACvB,CAAA;IAED,MAAM,cAAc,GAClB,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU;QACpC,CAAC,CAAC;YACE,GAAG,EAAE,MAAM,CAAC,UAAU;YACtB,SAAS,EAAE,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC;YAC7C,UAAU,EAAE,MAAM,CAAC,UAAU;SAC9B;QACH,CAAC,CAAC,SAAS,CAAA;IAEf,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,WAAW;QACpB,UAAU;QACV,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,QAAQ,EAAE,YAAY;QACtB,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,SAAS;QACpC,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,SAAS;QACtC,cAAc,EACZ,MAAM,CAAC,cAAc,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC;YAC3D,CAAC,CAAE,MAAM,CAAC,cAA2B;YACrC,CAAC,CAAC,SAAS;QACf,OAAO,EAAE,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QACxD,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,SAAS;QAC1C,UAAU,EAAE,cAAc;QAC1B,KAAK,EACH,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC;YAClC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC;YAC5B,CAAC,CAAC,SAAS;QACf,OAAO,EAAE,MAAM,CAAC,OAAO;KACxB,CAAA;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,GAA4B;IAE5B,OAAO;QACL,YAAY,EAAE,GAAG,EAAE,YAAY,IAAI,SAAS;QAC5C,aAAa,EAAE,GAAG,EAAE,aAAa,IAAI,SAAS;QAC9C,cAAc,EAAE,GAAG,EAAE,cAAc,IAAI,SAAS;QAChD,YAAY,EAAE,GAAG,EAAE,YAAY,IAAI,SAAS;QAC5C,UAAU,EAAE,GAAG,EAAE,UAAU,IAAI,SAAS;QACxC,kBAAkB,EAAE,GAAG,EAAE,kBAAkB,IAAI,SAAS;QACxD,WAAW,EAAE,GAAG,EAAE,UAAU;KAC7B,CAAA;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,GAA4B;IAE5B,OAAO;QACL,YAAY,EAAE,GAAG,EAAE,YAAY,IAAI,SAAS;QAC5C,aAAa,EAAE,GAAG,EAAE,aAAa,IAAI,SAAS;QAC9C,cAAc,EAAE,GAAG,EAAE,cAAc,IAAI,SAAS;QAChD,YAAY,EAAE,GAAG,EAAE,YAAY,IAAI,SAAS;QAC5C,UAAU,EAAE,GAAG,EAAE,UAAU,IAAI,SAAS;QACxC,kBAAkB,EAAE,GAAG,EAAE,kBAAkB,IAAI,SAAS;QACxD,WAAW,EAAE,GAAG,EAAE,UAAU;KAC7B,CAAA;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,GAA2B;IAE3B,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,YAAY,EAAE,GAAG,CAAC,YAAY,IAAI,SAAS;QAC3C,aAAa,EAAE,GAAG,CAAC,aAAa,IAAI,SAAS;QAC7C,cAAc,EAAE,GAAG,CAAC,cAAc,IAAI,SAAS;QAC/C,YAAY,EAAE,GAAG,CAAC,YAAY,IAAI,SAAS;QAC3C,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,SAAS;QACvC,kBAAkB,EAAE,GAAG,CAAC,kBAAkB,IAAI,SAAS;KACxD,CAAA;AACH,CAAC","sourcesContent":["import { Selectable } from 'kysely'\nimport { addAccountInfoToRepoViewDetail } from '../api/util.js'\nimport { ReportStat } from '../db/schema/report_stat.js'\nimport * as AppBskyActorDefs from '../lexicon/types/app/bsky/actor/defs.js'\nimport { AccountView } from '../lexicon/types/com/atproto/admin/defs.js'\nimport {\n RecordViewDetail,\n RepoView,\n} from '../lexicon/types/tools/ozone/moderation/defs.js'\nimport * as ToolsOzoneModerationDefs from '../lexicon/types/tools/ozone/moderation/defs.js'\nimport * as ToolsOzoneQueueDefs from '../lexicon/types/tools/ozone/queue/defs.js'\nimport * as ToolsOzoneReportDefs from '../lexicon/types/tools/ozone/report/defs.js'\nimport { Member as TeamMember } from '../lexicon/types/tools/ozone/team/defs.js'\nimport { ReportWithEvent } from '../mod-service/report.js'\nimport { ParsedLabelers } from '../util.js'\n\ntype ReportViews = {\n repoDetails(\n dids: string[],\n labelers?: ParsedLabelers,\n ): Promise<Map<string, RepoView>>\n recordDetails(\n subjects: { uri: string }[],\n labelers?: ParsedLabelers,\n ): Promise<Map<string, RecordViewDetail>>\n getProfiles(\n dids: string[],\n ): Promise<Map<string, AppBskyActorDefs.ProfileViewDetailed>>\n}\n\nexport type HydratedReport = {\n partialRepos: Map<string, RepoView>\n accountInfo: Map<string, AccountView | null>\n recordInfo: Map<string, RecordViewDetail>\n profiles: Map<string, AppBskyActorDefs.ProfileViewDetailed>\n queues: Map<number, ToolsOzoneQueueDefs.QueueView>\n memberViews: Map<string, TeamMember>\n}\n\nexport async function hydrateReportInfo(\n reports: ReportWithEvent[],\n views: ReportViews,\n getAccountInfos: (dids: string[]) => Promise<Map<string, AccountView | null>>,\n getQueues: (\n queueIds: number[],\n ) => Promise<Map<number, ToolsOzoneQueueDefs.QueueView>>,\n getTeamMembers: (dids: string[]) => Promise<Map<string, TeamMember>>,\n labelers: ParsedLabelers,\n): Promise<HydratedReport> {\n const dids = new Set<string>()\n const uris = new Set<string>()\n const queueIds = new Set<number>()\n const assignmentDids: string[] = []\n\n for (const report of reports) {\n dids.add(report.subjectDid)\n dids.add(report.reportedBy)\n if (report.subjectUri) uris.add(report.subjectUri)\n if (report.queueId && report.queueId > 0) queueIds.add(report.queueId)\n if (report.assignedTo) {\n dids.add(report.assignedTo)\n assignmentDids.push(report.assignedTo)\n }\n }\n\n const didsArray = Array.from(dids)\n const [partialRepos, accountInfo, recordInfo, profiles, queues, memberViews] =\n await Promise.all([\n views.repoDetails(didsArray, labelers),\n getAccountInfos(didsArray),\n views.recordDetails(\n Array.from(uris).map((uri) => ({ uri })),\n labelers,\n ),\n views.getProfiles(didsArray),\n getQueues(Array.from(queueIds)),\n getTeamMembers(assignmentDids),\n ])\n\n return {\n partialRepos,\n accountInfo,\n recordInfo,\n profiles,\n queues,\n memberViews,\n }\n}\n\nexport function buildReportView(\n report: ReportWithEvent,\n hydrated: HydratedReport,\n isModerator: boolean,\n actions?: ToolsOzoneModerationDefs.ModEventView[],\n) {\n const {\n partialRepos,\n accountInfo,\n recordInfo,\n profiles,\n queues,\n memberViews,\n } = hydrated\n const isRecord = !!report.subjectUri\n const did = report.subjectDid\n const partialRepo = partialRepos.get(did)\n const repo = partialRepo\n ? addAccountInfoToRepoViewDetail(\n partialRepo,\n accountInfo.get(did) || null,\n isModerator,\n )\n : undefined\n const profile = profiles.get(did)\n const record = isRecord ? recordInfo.get(report.subjectUri!) : undefined\n const status = isRecord\n ? record?.moderation.subjectStatus\n : repo?.moderation.subjectStatus\n\n const reportType = report.meta?.reportType as string\n\n const subject = isRecord ? report.subjectUri! : report.subjectDid\n const subjectView = {\n type: isRecord ? 'record' : 'account',\n subject,\n repo,\n record,\n profile: profile\n ? {\n $type: 'app.bsky.actor.defs#profileViewDetailed' as const,\n ...profile,\n }\n : undefined,\n status,\n }\n\n const reporterDid = report.reportedBy\n const reporterPartialRepo = partialRepos.get(reporterDid)\n const reporterRepo = reporterPartialRepo\n ? addAccountInfoToRepoViewDetail(\n reporterPartialRepo,\n accountInfo.get(reporterDid) || null,\n isModerator,\n )\n : undefined\n const reporterProfile = profiles.get(reporterDid)\n const reporterStatus = reporterRepo?.moderation.subjectStatus\n\n const reporterView = {\n type: 'account',\n subject: reporterDid,\n repo: reporterRepo,\n profile: reporterProfile\n ? {\n $type: 'app.bsky.actor.defs#profileViewDetailed' as const,\n ...reporterProfile,\n }\n : undefined,\n status: reporterStatus,\n }\n\n const assignmentView =\n report.assignedTo && report.assignedAt\n ? {\n did: report.assignedTo,\n moderator: memberViews.get(report.assignedTo),\n assignedAt: report.assignedAt,\n }\n : undefined\n\n return {\n id: report.id,\n eventId: report.eventId,\n status: report.status,\n subject: subjectView,\n reportType,\n reportedBy: report.reportedBy,\n reporter: reporterView,\n comment: report.comment ?? undefined,\n createdAt: report.createdAt,\n updatedAt: report.updatedAt,\n queuedAt: report.queuedAt ?? undefined,\n actionEventIds:\n report.actionEventIds && Array.isArray(report.actionEventIds)\n ? (report.actionEventIds as number[])\n : undefined,\n actions: actions && actions.length ? actions : undefined,\n actionNote: report.actionNote ?? undefined,\n assignment: assignmentView,\n queue:\n report.queueId && report.queueId > 0\n ? queues.get(report.queueId)\n : undefined,\n isMuted: report.isMuted,\n }\n}\n\nexport function viewQueueStats(\n row?: Selectable<ReportStat>,\n): ToolsOzoneQueueDefs.QueueStats {\n return {\n pendingCount: row?.pendingCount ?? undefined,\n actionedCount: row?.actionedCount ?? undefined,\n escalatedCount: row?.escalatedCount ?? undefined,\n inboundCount: row?.inboundCount ?? undefined,\n actionRate: row?.actionRate ?? undefined,\n avgHandlingTimeSec: row?.avgHandlingTimeSec ?? undefined,\n lastUpdated: row?.computedAt,\n }\n}\n\nexport function viewLiveStats(\n row?: Selectable<ReportStat>,\n): ToolsOzoneReportDefs.LiveStats {\n return {\n pendingCount: row?.pendingCount ?? undefined,\n actionedCount: row?.actionedCount ?? undefined,\n escalatedCount: row?.escalatedCount ?? undefined,\n inboundCount: row?.inboundCount ?? undefined,\n actionRate: row?.actionRate ?? undefined,\n avgHandlingTimeSec: row?.avgHandlingTimeSec ?? undefined,\n lastUpdated: row?.computedAt,\n }\n}\n\nexport function viewHistoricalStats(\n row: Selectable<ReportStat>,\n): ToolsOzoneReportDefs.HistoricalStats {\n return {\n date: row.date,\n computedAt: row.computedAt,\n pendingCount: row.pendingCount ?? undefined,\n actionedCount: row.actionedCount ?? undefined,\n escalatedCount: row.escalatedCount ?? undefined,\n inboundCount: row.inboundCount ?? undefined,\n actionRate: row.actionRate ?? undefined,\n avgHandlingTimeSec: row.avgHandlingTimeSec ?? undefined,\n }\n}\n"]}
@@ -1,8 +1,8 @@
1
1
  import { Selectable } from 'kysely';
2
2
  import { ToolsOzoneSafelinkDefs } from '@atproto/api';
3
- import { SafelinkActionType, SafelinkPatternType, SafelinkReasonType } from '../api/util';
4
- import { Database } from '../db';
5
- import { SafelinkEvent, SafelinkRule } from '../db/schema/safelink';
3
+ import { SafelinkActionType, SafelinkPatternType, SafelinkReasonType } from '../api/util.js';
4
+ import { Database } from '../db/index.js';
5
+ import { SafelinkEvent, SafelinkRule } from '../db/schema/safelink.js';
6
6
  export type SafelinkRuleServiceCreator = (db: Database) => SafelinkRuleService;
7
7
  export declare class SafelinkRuleService {
8
8
  db: Database;
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/safelink/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/safelink/service.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,7 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SafelinkRuleService = void 0;
4
- const xrpc_server_1 = require("@atproto/xrpc-server");
5
- class SafelinkRuleService {
1
+ import { InvalidRequestError } from '@atproto/xrpc-server';
2
+ export class SafelinkRuleService {
6
3
  constructor(db) {
7
- Object.defineProperty(this, "db", {
8
- enumerable: true,
9
- configurable: true,
10
- writable: true,
11
- value: db
12
- });
4
+ this.db = db;
13
5
  }
14
6
  static creator() {
15
7
  return (db) => new SafelinkRuleService(db);
@@ -30,7 +22,7 @@ class SafelinkRuleService {
30
22
  async addRule({ url, pattern, action, reason, createdBy, comment, }) {
31
23
  const existingRule = await this.getActiveRule(url, pattern);
32
24
  if (existingRule) {
33
- throw new xrpc_server_1.InvalidRequestError('A rule for this URL/domain already exists', 'RuleAlreadyExists');
25
+ throw new InvalidRequestError('A rule for this URL/domain already exists', 'RuleAlreadyExists');
34
26
  }
35
27
  const now = new Date().toISOString();
36
28
  const rule = {
@@ -61,7 +53,7 @@ class SafelinkRuleService {
61
53
  async updateRule({ url, pattern, action, reason, createdBy, comment, }) {
62
54
  const existingRule = await this.getActiveRule(url, pattern);
63
55
  if (!existingRule) {
64
- throw new xrpc_server_1.InvalidRequestError('No active rule found for this URL/domain', 'RuleNotFound');
56
+ throw new InvalidRequestError('No active rule found for this URL/domain', 'RuleNotFound');
65
57
  }
66
58
  const now = new Date().toISOString();
67
59
  const rule = {
@@ -94,7 +86,7 @@ class SafelinkRuleService {
94
86
  async removeRule({ url, pattern, createdBy, comment, }) {
95
87
  const existingRule = await this.getActiveRule(url, pattern);
96
88
  if (!existingRule) {
97
- throw new xrpc_server_1.InvalidRequestError('No active rule found for this URL/domain', 'RuleNotFound');
89
+ throw new InvalidRequestError('No active rule found for this URL/domain', 'RuleNotFound');
98
90
  }
99
91
  return await this.db.transaction(async (txn) => {
100
92
  const event = await txn.db
@@ -175,5 +167,4 @@ class SafelinkRuleService {
175
167
  };
176
168
  }
177
169
  }
178
- exports.SafelinkRuleService = SafelinkRuleService;
179
170
  //# sourceMappingURL=service.js.map