@atproto/ozone 0.1.146 → 0.1.148

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 (577) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/api/chat/getActorMetadata.js.map +1 -1
  3. package/dist/api/chat/getMessageContext.js.map +1 -1
  4. package/dist/api/chat/index.js.map +1 -1
  5. package/dist/api/communication/createTemplate.js.map +1 -1
  6. package/dist/api/communication/deleteTemplate.js.map +1 -1
  7. package/dist/api/communication/listTemplates.js.map +1 -1
  8. package/dist/api/communication/updateTemplate.js.map +1 -1
  9. package/dist/api/health.js.map +1 -1
  10. package/dist/api/index.d.ts.map +1 -1
  11. package/dist/api/index.js +6 -0
  12. package/dist/api/index.js.map +1 -1
  13. package/dist/api/label/fetchLabels.js.map +1 -1
  14. package/dist/api/label/queryLabels.js.map +1 -1
  15. package/dist/api/label/subscribeLabels.js.map +1 -1
  16. package/dist/api/moderation/cancelScheduledActions.d.ts +4 -0
  17. package/dist/api/moderation/cancelScheduledActions.d.ts.map +1 -0
  18. package/dist/api/moderation/cancelScheduledActions.js +62 -0
  19. package/dist/api/moderation/cancelScheduledActions.js.map +1 -0
  20. package/dist/api/moderation/emitEvent.d.ts.map +1 -1
  21. package/dist/api/moderation/emitEvent.js +11 -47
  22. package/dist/api/moderation/emitEvent.js.map +1 -1
  23. package/dist/api/moderation/getAccountTimeline.js.map +1 -1
  24. package/dist/api/moderation/getEvent.js.map +1 -1
  25. package/dist/api/moderation/getRecord.js.map +1 -1
  26. package/dist/api/moderation/getRecords.js.map +1 -1
  27. package/dist/api/moderation/getRepo.js.map +1 -1
  28. package/dist/api/moderation/getReporterStats.js.map +1 -1
  29. package/dist/api/moderation/getRepos.js.map +1 -1
  30. package/dist/api/moderation/getSubjects.js.map +1 -1
  31. package/dist/api/moderation/listScheduledActions.d.ts +4 -0
  32. package/dist/api/moderation/listScheduledActions.d.ts.map +1 -0
  33. package/dist/api/moderation/listScheduledActions.js +31 -0
  34. package/dist/api/moderation/listScheduledActions.js.map +1 -0
  35. package/dist/api/moderation/queryEvents.js.map +1 -1
  36. package/dist/api/moderation/queryStatuses.js.map +1 -1
  37. package/dist/api/moderation/scheduleAction.d.ts +4 -0
  38. package/dist/api/moderation/scheduleAction.d.ts.map +1 -0
  39. package/dist/api/moderation/scheduleAction.js +115 -0
  40. package/dist/api/moderation/scheduleAction.js.map +1 -0
  41. package/dist/api/moderation/searchRepos.js.map +1 -1
  42. package/dist/api/moderation/util.d.ts +13 -0
  43. package/dist/api/moderation/util.d.ts.map +1 -0
  44. package/dist/api/moderation/util.js +52 -0
  45. package/dist/api/moderation/util.js.map +1 -0
  46. package/dist/api/proxied.js.map +1 -1
  47. package/dist/api/report/createReport.js.map +1 -1
  48. package/dist/api/safelink/addRule.js.map +1 -1
  49. package/dist/api/safelink/queryEvents.js.map +1 -1
  50. package/dist/api/safelink/queryRules.js.map +1 -1
  51. package/dist/api/safelink/removeRule.js.map +1 -1
  52. package/dist/api/safelink/updateRule.js.map +1 -1
  53. package/dist/api/server/getConfig.js.map +1 -1
  54. package/dist/api/set/addValues.js.map +1 -1
  55. package/dist/api/set/deleteSet.js.map +1 -1
  56. package/dist/api/set/deleteValues.js.map +1 -1
  57. package/dist/api/set/getValues.js.map +1 -1
  58. package/dist/api/set/querySets.js.map +1 -1
  59. package/dist/api/set/upsertSet.js.map +1 -1
  60. package/dist/api/setting/listOptions.js.map +1 -1
  61. package/dist/api/setting/removeOptions.js.map +1 -1
  62. package/dist/api/setting/upsertOption.js.map +1 -1
  63. package/dist/api/team/addMember.js.map +1 -1
  64. package/dist/api/team/deleteMember.js.map +1 -1
  65. package/dist/api/team/listMembers.js.map +1 -1
  66. package/dist/api/team/updateMember.js.map +1 -1
  67. package/dist/api/util.d.ts +4 -0
  68. package/dist/api/util.d.ts.map +1 -1
  69. package/dist/api/util.js +24 -1
  70. package/dist/api/util.js.map +1 -1
  71. package/dist/api/verification/grantVerifications.js.map +1 -1
  72. package/dist/api/verification/listVerifications.js.map +1 -1
  73. package/dist/api/verification/revokeVerifications.js.map +1 -1
  74. package/dist/api/well-known.js.map +1 -1
  75. package/dist/auth-verifier.js.map +1 -1
  76. package/dist/background.js.map +1 -1
  77. package/dist/communication-service/template.js.map +1 -1
  78. package/dist/communication-service/util.js.map +1 -1
  79. package/dist/config/config.js.map +1 -1
  80. package/dist/config/env.js.map +1 -1
  81. package/dist/config/index.js.map +1 -1
  82. package/dist/config/secrets.js.map +1 -1
  83. package/dist/context.d.ts +3 -0
  84. package/dist/context.d.ts.map +1 -1
  85. package/dist/context.js +12 -6
  86. package/dist/context.js.map +1 -1
  87. package/dist/daemon/blob-diverter.js.map +1 -1
  88. package/dist/daemon/context.d.ts +3 -0
  89. package/dist/daemon/context.d.ts.map +1 -1
  90. package/dist/daemon/context.js +12 -0
  91. package/dist/daemon/context.js.map +1 -1
  92. package/dist/daemon/event-pusher.js.map +1 -1
  93. package/dist/daemon/event-reverser.js.map +1 -1
  94. package/dist/daemon/index.d.ts +1 -0
  95. package/dist/daemon/index.d.ts.map +1 -1
  96. package/dist/daemon/index.js +3 -1
  97. package/dist/daemon/index.js.map +1 -1
  98. package/dist/daemon/materialized-view-refresher.js.map +1 -1
  99. package/dist/daemon/scheduled-action-processor.d.ts +35 -0
  100. package/dist/daemon/scheduled-action-processor.d.ts.map +1 -0
  101. package/dist/daemon/scheduled-action-processor.js +211 -0
  102. package/dist/daemon/scheduled-action-processor.js.map +1 -0
  103. package/dist/daemon/team-profile-synchronizer.js.map +1 -1
  104. package/dist/daemon/verification-listener.js.map +1 -1
  105. package/dist/db/index.js.map +1 -1
  106. package/dist/db/migrations/20231219T205730722Z-init.js.map +1 -1
  107. package/dist/db/migrations/20240116T085607200Z-communication-template.js.map +1 -1
  108. package/dist/db/migrations/20240201T051104136Z-mod-event-blobs.js.map +1 -1
  109. package/dist/db/migrations/20240208T213404429Z-add-tags-column-to-moderation-subject.js.map +1 -1
  110. package/dist/db/migrations/20240228T003647759Z-add-label-sigs.js.map +1 -1
  111. package/dist/db/migrations/20240408T192432676Z-mute-reporting.js.map +1 -1
  112. package/dist/db/migrations/20240506T225055595Z-message-subject.js.map +1 -1
  113. package/dist/db/migrations/20240521T211332580Z-member.js.map +1 -1
  114. package/dist/db/migrations/20240814T003647759Z-event-created-at-index.js.map +1 -1
  115. package/dist/db/migrations/20240903T205730722Z-add-template-lang.js.map +1 -1
  116. package/dist/db/migrations/20240904T205730722Z-add-subject-did-index.js.map +1 -1
  117. package/dist/db/migrations/20241001T205730722Z-subject-status-review-state-index.js.map +1 -1
  118. package/dist/db/migrations/20241008T205730722Z-sets.js.map +1 -1
  119. package/dist/db/migrations/20241018T205730722Z-setting.js.map +1 -1
  120. package/dist/db/migrations/20241026T205730722Z-add-hosting-status-to-subject-status.js.map +1 -1
  121. package/dist/db/migrations/20241220T144630860Z-stats-materialized-views.js.map +1 -1
  122. package/dist/db/migrations/20250204T003647759Z-add-subject-priority-score.js.map +1 -1
  123. package/dist/db/migrations/20250211T003647759Z-add-reporter-stats-index.js.map +1 -1
  124. package/dist/db/migrations/20250211T132135150Z-moderation-event-message-partial-idx.js.map +1 -1
  125. package/dist/db/migrations/20250221T132135150Z-member-details.js.map +1 -1
  126. package/dist/db/migrations/20250404T201720309Z-subject-status-sort-idxs.js.map +1 -1
  127. package/dist/db/migrations/20250415T201720309Z-verification.js.map +1 -1
  128. package/dist/db/migrations/20250417T201720309Z-firehose-cursor.js.map +1 -1
  129. package/dist/db/migrations/20250609T110704000Z-safelink.js.map +1 -1
  130. package/dist/db/migrations/20250618T180246000Z-add-mod-tool-to-moderation-event.js.map +1 -1
  131. package/dist/db/migrations/20250701T000000000Z-add-age-assurance-state.js.map +1 -1
  132. package/dist/db/migrations/20250715T000000000Z-add-mod-event-external-id.js.map +1 -1
  133. package/dist/db/migrations/20250718T150931000Z-update-appeal-reason-stats.js.map +1 -1
  134. package/dist/db/migrations/20250813T000000000Z-mod-tool-batch-id-index.js.map +1 -1
  135. package/dist/db/migrations/20250923T000000000Z-scheduled-actions.d.ts +4 -0
  136. package/dist/db/migrations/20250923T000000000Z-scheduled-actions.d.ts.map +1 -0
  137. package/dist/db/migrations/20250923T000000000Z-scheduled-actions.js +53 -0
  138. package/dist/db/migrations/20250923T000000000Z-scheduled-actions.js.map +1 -0
  139. package/dist/db/migrations/index.d.ts +2 -0
  140. package/dist/db/migrations/index.d.ts.map +1 -1
  141. package/dist/db/migrations/index.js +3 -1
  142. package/dist/db/migrations/index.js.map +1 -1
  143. package/dist/db/migrations/provider.js.map +1 -1
  144. package/dist/db/pagination.js.map +1 -1
  145. package/dist/db/schema/account_events_stats.js.map +1 -1
  146. package/dist/db/schema/account_record_events_stats.js.map +1 -1
  147. package/dist/db/schema/account_record_status_stats.js.map +1 -1
  148. package/dist/db/schema/blob_push_event.js.map +1 -1
  149. package/dist/db/schema/communication_template.js.map +1 -1
  150. package/dist/db/schema/firehose_cursor.js.map +1 -1
  151. package/dist/db/schema/index.d.ts +2 -1
  152. package/dist/db/schema/index.d.ts.map +1 -1
  153. package/dist/db/schema/index.js.map +1 -1
  154. package/dist/db/schema/label.js.map +1 -1
  155. package/dist/db/schema/member.js.map +1 -1
  156. package/dist/db/schema/moderation_event.js.map +1 -1
  157. package/dist/db/schema/moderation_subject_status.js.map +1 -1
  158. package/dist/db/schema/ozone_set.js.map +1 -1
  159. package/dist/db/schema/record_events_stats.js.map +1 -1
  160. package/dist/db/schema/record_push_event.js.map +1 -1
  161. package/dist/db/schema/repo_push_event.js.map +1 -1
  162. package/dist/db/schema/safelink.js.map +1 -1
  163. package/dist/db/schema/scheduled-action.d.ts +23 -0
  164. package/dist/db/schema/scheduled-action.d.ts.map +1 -0
  165. package/dist/db/schema/scheduled-action.js +5 -0
  166. package/dist/db/schema/scheduled-action.js.map +1 -0
  167. package/dist/db/schema/setting.js.map +1 -1
  168. package/dist/db/schema/signing_key.js.map +1 -1
  169. package/dist/db/schema/verification.js.map +1 -1
  170. package/dist/db/types.js.map +1 -1
  171. package/dist/error.js.map +1 -1
  172. package/dist/image-invalidator.js.map +1 -1
  173. package/dist/index.js.map +1 -1
  174. package/dist/jetstream/service.js.map +1 -1
  175. package/dist/lexicon/index.d.ts +15 -14
  176. package/dist/lexicon/index.d.ts.map +1 -1
  177. package/dist/lexicon/index.js +21 -14
  178. package/dist/lexicon/index.js.map +1 -1
  179. package/dist/lexicon/lexicons.d.ts +877 -125
  180. package/dist/lexicon/lexicons.d.ts.map +1 -1
  181. package/dist/lexicon/lexicons.js +444 -67
  182. package/dist/lexicon/lexicons.js.map +1 -1
  183. package/dist/lexicon/types/app/bsky/actor/defs.js.map +1 -1
  184. package/dist/lexicon/types/app/bsky/actor/getPreferences.js.map +1 -1
  185. package/dist/lexicon/types/app/bsky/actor/getProfile.js.map +1 -1
  186. package/dist/lexicon/types/app/bsky/actor/getProfiles.js.map +1 -1
  187. package/dist/lexicon/types/app/bsky/actor/getSuggestions.js.map +1 -1
  188. package/dist/lexicon/types/app/bsky/actor/profile.js.map +1 -1
  189. package/dist/lexicon/types/app/bsky/actor/putPreferences.js.map +1 -1
  190. package/dist/lexicon/types/app/bsky/actor/searchActors.js.map +1 -1
  191. package/dist/lexicon/types/app/bsky/actor/searchActorsTypeahead.js.map +1 -1
  192. package/dist/lexicon/types/app/bsky/actor/status.js.map +1 -1
  193. package/dist/lexicon/types/app/bsky/bookmark/createBookmark.js.map +1 -1
  194. package/dist/lexicon/types/app/bsky/bookmark/defs.js.map +1 -1
  195. package/dist/lexicon/types/app/bsky/bookmark/deleteBookmark.js.map +1 -1
  196. package/dist/lexicon/types/app/bsky/bookmark/getBookmarks.js.map +1 -1
  197. package/dist/lexicon/types/app/bsky/embed/defs.js.map +1 -1
  198. package/dist/lexicon/types/app/bsky/embed/external.js.map +1 -1
  199. package/dist/lexicon/types/app/bsky/embed/images.js.map +1 -1
  200. package/dist/lexicon/types/app/bsky/embed/record.js.map +1 -1
  201. package/dist/lexicon/types/app/bsky/embed/recordWithMedia.js.map +1 -1
  202. package/dist/lexicon/types/app/bsky/embed/video.js.map +1 -1
  203. package/dist/lexicon/types/app/bsky/feed/defs.js.map +1 -1
  204. package/dist/lexicon/types/app/bsky/feed/describeFeedGenerator.js.map +1 -1
  205. package/dist/lexicon/types/app/bsky/feed/generator.js.map +1 -1
  206. package/dist/lexicon/types/app/bsky/feed/getActorFeeds.js.map +1 -1
  207. package/dist/lexicon/types/app/bsky/feed/getActorLikes.js.map +1 -1
  208. package/dist/lexicon/types/app/bsky/feed/getAuthorFeed.js.map +1 -1
  209. package/dist/lexicon/types/app/bsky/feed/getFeed.js.map +1 -1
  210. package/dist/lexicon/types/app/bsky/feed/getFeedGenerator.js.map +1 -1
  211. package/dist/lexicon/types/app/bsky/feed/getFeedGenerators.js.map +1 -1
  212. package/dist/lexicon/types/app/bsky/feed/getFeedSkeleton.js.map +1 -1
  213. package/dist/lexicon/types/app/bsky/feed/getLikes.js.map +1 -1
  214. package/dist/lexicon/types/app/bsky/feed/getListFeed.js.map +1 -1
  215. package/dist/lexicon/types/app/bsky/feed/getPostThread.js.map +1 -1
  216. package/dist/lexicon/types/app/bsky/feed/getPosts.js.map +1 -1
  217. package/dist/lexicon/types/app/bsky/feed/getQuotes.js.map +1 -1
  218. package/dist/lexicon/types/app/bsky/feed/getRepostedBy.js.map +1 -1
  219. package/dist/lexicon/types/app/bsky/feed/getSuggestedFeeds.js.map +1 -1
  220. package/dist/lexicon/types/app/bsky/feed/getTimeline.js.map +1 -1
  221. package/dist/lexicon/types/app/bsky/feed/like.js.map +1 -1
  222. package/dist/lexicon/types/app/bsky/feed/post.js.map +1 -1
  223. package/dist/lexicon/types/app/bsky/feed/postgate.js.map +1 -1
  224. package/dist/lexicon/types/app/bsky/feed/repost.js.map +1 -1
  225. package/dist/lexicon/types/app/bsky/feed/searchPosts.js.map +1 -1
  226. package/dist/lexicon/types/app/bsky/feed/sendInteractions.js.map +1 -1
  227. package/dist/lexicon/types/app/bsky/feed/threadgate.js.map +1 -1
  228. package/dist/lexicon/types/app/bsky/graph/block.js.map +1 -1
  229. package/dist/lexicon/types/app/bsky/graph/defs.js.map +1 -1
  230. package/dist/lexicon/types/app/bsky/graph/follow.js.map +1 -1
  231. package/dist/lexicon/types/app/bsky/graph/getActorStarterPacks.js.map +1 -1
  232. package/dist/lexicon/types/app/bsky/graph/getBlocks.js.map +1 -1
  233. package/dist/lexicon/types/app/bsky/graph/getFollowers.js.map +1 -1
  234. package/dist/lexicon/types/app/bsky/graph/getFollows.js.map +1 -1
  235. package/dist/lexicon/types/app/bsky/graph/getKnownFollowers.js.map +1 -1
  236. package/dist/lexicon/types/app/bsky/graph/getList.js.map +1 -1
  237. package/dist/lexicon/types/app/bsky/graph/getListBlocks.js.map +1 -1
  238. package/dist/lexicon/types/app/bsky/graph/getListMutes.js.map +1 -1
  239. package/dist/lexicon/types/app/bsky/graph/getLists.js.map +1 -1
  240. package/dist/lexicon/types/app/bsky/graph/getListsWithMembership.js.map +1 -1
  241. package/dist/lexicon/types/app/bsky/graph/getMutes.js.map +1 -1
  242. package/dist/lexicon/types/app/bsky/graph/getRelationships.js.map +1 -1
  243. package/dist/lexicon/types/app/bsky/graph/getStarterPack.js.map +1 -1
  244. package/dist/lexicon/types/app/bsky/graph/getStarterPacks.js.map +1 -1
  245. package/dist/lexicon/types/app/bsky/graph/getStarterPacksWithMembership.js.map +1 -1
  246. package/dist/lexicon/types/app/bsky/graph/getSuggestedFollowsByActor.js.map +1 -1
  247. package/dist/lexicon/types/app/bsky/graph/list.js.map +1 -1
  248. package/dist/lexicon/types/app/bsky/graph/listblock.js.map +1 -1
  249. package/dist/lexicon/types/app/bsky/graph/listitem.js.map +1 -1
  250. package/dist/lexicon/types/app/bsky/graph/muteActor.js.map +1 -1
  251. package/dist/lexicon/types/app/bsky/graph/muteActorList.js.map +1 -1
  252. package/dist/lexicon/types/app/bsky/graph/muteThread.js.map +1 -1
  253. package/dist/lexicon/types/app/bsky/graph/searchStarterPacks.js.map +1 -1
  254. package/dist/lexicon/types/app/bsky/graph/starterpack.js.map +1 -1
  255. package/dist/lexicon/types/app/bsky/graph/unmuteActor.js.map +1 -1
  256. package/dist/lexicon/types/app/bsky/graph/unmuteActorList.js.map +1 -1
  257. package/dist/lexicon/types/app/bsky/graph/unmuteThread.js.map +1 -1
  258. package/dist/lexicon/types/app/bsky/graph/verification.js.map +1 -1
  259. package/dist/lexicon/types/app/bsky/labeler/defs.js.map +1 -1
  260. package/dist/lexicon/types/app/bsky/labeler/getServices.js.map +1 -1
  261. package/dist/lexicon/types/app/bsky/labeler/service.js.map +1 -1
  262. package/dist/lexicon/types/app/bsky/notification/declaration.js.map +1 -1
  263. package/dist/lexicon/types/app/bsky/notification/defs.js.map +1 -1
  264. package/dist/lexicon/types/app/bsky/notification/getPreferences.js.map +1 -1
  265. package/dist/lexicon/types/app/bsky/notification/getUnreadCount.js.map +1 -1
  266. package/dist/lexicon/types/app/bsky/notification/listActivitySubscriptions.js.map +1 -1
  267. package/dist/lexicon/types/app/bsky/notification/listNotifications.js.map +1 -1
  268. package/dist/lexicon/types/app/bsky/notification/putActivitySubscription.js.map +1 -1
  269. package/dist/lexicon/types/app/bsky/notification/putPreferences.js.map +1 -1
  270. package/dist/lexicon/types/app/bsky/notification/putPreferencesV2.js.map +1 -1
  271. package/dist/lexicon/types/app/bsky/notification/registerPush.js.map +1 -1
  272. package/dist/lexicon/types/app/bsky/notification/unregisterPush.js.map +1 -1
  273. package/dist/lexicon/types/app/bsky/notification/updateSeen.js.map +1 -1
  274. package/dist/lexicon/types/app/bsky/richtext/facet.js.map +1 -1
  275. package/dist/lexicon/types/app/bsky/unspecced/defs.js.map +1 -1
  276. package/dist/lexicon/types/app/bsky/unspecced/getAgeAssuranceState.js.map +1 -1
  277. package/dist/lexicon/types/app/bsky/unspecced/getConfig.js.map +1 -1
  278. package/dist/lexicon/types/app/bsky/unspecced/getOnboardingSuggestedStarterPacks.js.map +1 -1
  279. package/dist/lexicon/types/app/bsky/unspecced/getOnboardingSuggestedStarterPacksSkeleton.js.map +1 -1
  280. package/dist/lexicon/types/app/bsky/unspecced/getPopularFeedGenerators.js.map +1 -1
  281. package/dist/lexicon/types/app/bsky/unspecced/getPostThreadOtherV2.js.map +1 -1
  282. package/dist/lexicon/types/app/bsky/unspecced/getPostThreadV2.js.map +1 -1
  283. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedFeeds.js.map +1 -1
  284. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedFeedsSkeleton.js.map +1 -1
  285. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedStarterPacks.js.map +1 -1
  286. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedStarterPacksSkeleton.js.map +1 -1
  287. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedUsers.js.map +1 -1
  288. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedUsersSkeleton.js.map +1 -1
  289. package/dist/lexicon/types/app/bsky/unspecced/getSuggestionsSkeleton.js.map +1 -1
  290. package/dist/lexicon/types/app/bsky/unspecced/getTaggedSuggestions.js.map +1 -1
  291. package/dist/lexicon/types/app/bsky/unspecced/getTrendingTopics.js.map +1 -1
  292. package/dist/lexicon/types/app/bsky/unspecced/getTrends.js.map +1 -1
  293. package/dist/lexicon/types/app/bsky/unspecced/getTrendsSkeleton.js.map +1 -1
  294. package/dist/lexicon/types/app/bsky/unspecced/initAgeAssurance.js.map +1 -1
  295. package/dist/lexicon/types/app/bsky/unspecced/searchActorsSkeleton.js.map +1 -1
  296. package/dist/lexicon/types/app/bsky/unspecced/searchPostsSkeleton.js.map +1 -1
  297. package/dist/lexicon/types/app/bsky/unspecced/searchStarterPacksSkeleton.js.map +1 -1
  298. package/dist/lexicon/types/app/bsky/video/defs.js.map +1 -1
  299. package/dist/lexicon/types/app/bsky/video/getJobStatus.js.map +1 -1
  300. package/dist/lexicon/types/app/bsky/video/getUploadLimits.js.map +1 -1
  301. package/dist/lexicon/types/app/bsky/video/uploadVideo.js.map +1 -1
  302. package/dist/lexicon/types/chat/bsky/actor/declaration.js.map +1 -1
  303. package/dist/lexicon/types/chat/bsky/actor/defs.js.map +1 -1
  304. package/dist/lexicon/types/chat/bsky/actor/deleteAccount.js.map +1 -1
  305. package/dist/lexicon/types/chat/bsky/actor/exportAccountData.js.map +1 -1
  306. package/dist/lexicon/types/chat/bsky/convo/acceptConvo.js.map +1 -1
  307. package/dist/lexicon/types/chat/bsky/convo/addReaction.js.map +1 -1
  308. package/dist/lexicon/types/chat/bsky/convo/defs.js.map +1 -1
  309. package/dist/lexicon/types/chat/bsky/convo/deleteMessageForSelf.js.map +1 -1
  310. package/dist/lexicon/types/chat/bsky/convo/getConvo.js.map +1 -1
  311. package/dist/lexicon/types/chat/bsky/convo/getConvoAvailability.js.map +1 -1
  312. package/dist/lexicon/types/chat/bsky/convo/getConvoForMembers.js.map +1 -1
  313. package/dist/lexicon/types/chat/bsky/convo/getLog.js.map +1 -1
  314. package/dist/lexicon/types/chat/bsky/convo/getMessages.js.map +1 -1
  315. package/dist/lexicon/types/chat/bsky/convo/leaveConvo.js.map +1 -1
  316. package/dist/lexicon/types/chat/bsky/convo/listConvos.js.map +1 -1
  317. package/dist/lexicon/types/chat/bsky/convo/muteConvo.js.map +1 -1
  318. package/dist/lexicon/types/chat/bsky/convo/removeReaction.js.map +1 -1
  319. package/dist/lexicon/types/chat/bsky/convo/sendMessage.js.map +1 -1
  320. package/dist/lexicon/types/chat/bsky/convo/sendMessageBatch.js.map +1 -1
  321. package/dist/lexicon/types/chat/bsky/convo/unmuteConvo.js.map +1 -1
  322. package/dist/lexicon/types/chat/bsky/convo/updateAllRead.js.map +1 -1
  323. package/dist/lexicon/types/chat/bsky/convo/updateRead.js.map +1 -1
  324. package/dist/lexicon/types/chat/bsky/moderation/getActorMetadata.js.map +1 -1
  325. package/dist/lexicon/types/chat/bsky/moderation/getMessageContext.js.map +1 -1
  326. package/dist/lexicon/types/chat/bsky/moderation/updateActorAccess.js.map +1 -1
  327. package/dist/lexicon/types/com/atproto/admin/defs.js.map +1 -1
  328. package/dist/lexicon/types/com/atproto/admin/deleteAccount.js.map +1 -1
  329. package/dist/lexicon/types/com/atproto/admin/disableAccountInvites.js.map +1 -1
  330. package/dist/lexicon/types/com/atproto/admin/disableInviteCodes.js.map +1 -1
  331. package/dist/lexicon/types/com/atproto/admin/enableAccountInvites.js.map +1 -1
  332. package/dist/lexicon/types/com/atproto/admin/getAccountInfo.js.map +1 -1
  333. package/dist/lexicon/types/com/atproto/admin/getAccountInfos.js.map +1 -1
  334. package/dist/lexicon/types/com/atproto/admin/getInviteCodes.js.map +1 -1
  335. package/dist/lexicon/types/com/atproto/admin/getSubjectStatus.js.map +1 -1
  336. package/dist/lexicon/types/com/atproto/admin/searchAccounts.js.map +1 -1
  337. package/dist/lexicon/types/com/atproto/admin/sendEmail.js.map +1 -1
  338. package/dist/lexicon/types/com/atproto/admin/updateAccountEmail.js.map +1 -1
  339. package/dist/lexicon/types/com/atproto/admin/updateAccountHandle.js.map +1 -1
  340. package/dist/lexicon/types/com/atproto/admin/updateAccountPassword.js.map +1 -1
  341. package/dist/lexicon/types/com/atproto/admin/updateAccountSigningKey.js.map +1 -1
  342. package/dist/lexicon/types/com/atproto/admin/updateSubjectStatus.js.map +1 -1
  343. package/dist/lexicon/types/com/atproto/identity/defs.js.map +1 -1
  344. package/dist/lexicon/types/com/atproto/identity/getRecommendedDidCredentials.js.map +1 -1
  345. package/dist/lexicon/types/com/atproto/identity/refreshIdentity.js.map +1 -1
  346. package/dist/lexicon/types/com/atproto/identity/requestPlcOperationSignature.js.map +1 -1
  347. package/dist/lexicon/types/com/atproto/identity/resolveDid.js.map +1 -1
  348. package/dist/lexicon/types/com/atproto/identity/resolveHandle.js.map +1 -1
  349. package/dist/lexicon/types/com/atproto/identity/resolveIdentity.js.map +1 -1
  350. package/dist/lexicon/types/com/atproto/identity/signPlcOperation.js.map +1 -1
  351. package/dist/lexicon/types/com/atproto/identity/submitPlcOperation.js.map +1 -1
  352. package/dist/lexicon/types/com/atproto/identity/updateHandle.js.map +1 -1
  353. package/dist/lexicon/types/com/atproto/label/defs.js.map +1 -1
  354. package/dist/lexicon/types/com/atproto/label/queryLabels.js.map +1 -1
  355. package/dist/lexicon/types/com/atproto/label/subscribeLabels.js.map +1 -1
  356. package/dist/lexicon/types/com/atproto/lexicon/schema.js.map +1 -1
  357. package/dist/lexicon/types/com/atproto/moderation/createReport.js.map +1 -1
  358. package/dist/lexicon/types/com/atproto/moderation/defs.d.ts +2 -2
  359. package/dist/lexicon/types/com/atproto/moderation/defs.d.ts.map +1 -1
  360. package/dist/lexicon/types/com/atproto/moderation/defs.js +1 -1
  361. package/dist/lexicon/types/com/atproto/moderation/defs.js.map +1 -1
  362. package/dist/lexicon/types/com/atproto/repo/applyWrites.js.map +1 -1
  363. package/dist/lexicon/types/com/atproto/repo/createRecord.js.map +1 -1
  364. package/dist/lexicon/types/com/atproto/repo/defs.js.map +1 -1
  365. package/dist/lexicon/types/com/atproto/repo/deleteRecord.js.map +1 -1
  366. package/dist/lexicon/types/com/atproto/repo/describeRepo.js.map +1 -1
  367. package/dist/lexicon/types/com/atproto/repo/getRecord.js.map +1 -1
  368. package/dist/lexicon/types/com/atproto/repo/importRepo.js.map +1 -1
  369. package/dist/lexicon/types/com/atproto/repo/listMissingBlobs.js.map +1 -1
  370. package/dist/lexicon/types/com/atproto/repo/listRecords.js.map +1 -1
  371. package/dist/lexicon/types/com/atproto/repo/putRecord.js.map +1 -1
  372. package/dist/lexicon/types/com/atproto/repo/strongRef.js.map +1 -1
  373. package/dist/lexicon/types/com/atproto/repo/uploadBlob.js.map +1 -1
  374. package/dist/lexicon/types/com/atproto/server/activateAccount.js.map +1 -1
  375. package/dist/lexicon/types/com/atproto/server/checkAccountStatus.js.map +1 -1
  376. package/dist/lexicon/types/com/atproto/server/confirmEmail.js.map +1 -1
  377. package/dist/lexicon/types/com/atproto/server/createAccount.js.map +1 -1
  378. package/dist/lexicon/types/com/atproto/server/createAppPassword.js.map +1 -1
  379. package/dist/lexicon/types/com/atproto/server/createInviteCode.js.map +1 -1
  380. package/dist/lexicon/types/com/atproto/server/createInviteCodes.js.map +1 -1
  381. package/dist/lexicon/types/com/atproto/server/createSession.js.map +1 -1
  382. package/dist/lexicon/types/com/atproto/server/deactivateAccount.js.map +1 -1
  383. package/dist/lexicon/types/com/atproto/server/defs.js.map +1 -1
  384. package/dist/lexicon/types/com/atproto/server/deleteAccount.js.map +1 -1
  385. package/dist/lexicon/types/com/atproto/server/deleteSession.js.map +1 -1
  386. package/dist/lexicon/types/com/atproto/server/describeServer.js.map +1 -1
  387. package/dist/lexicon/types/com/atproto/server/getAccountInviteCodes.js.map +1 -1
  388. package/dist/lexicon/types/com/atproto/server/getServiceAuth.js.map +1 -1
  389. package/dist/lexicon/types/com/atproto/server/getSession.js.map +1 -1
  390. package/dist/lexicon/types/com/atproto/server/listAppPasswords.js.map +1 -1
  391. package/dist/lexicon/types/com/atproto/server/refreshSession.js.map +1 -1
  392. package/dist/lexicon/types/com/atproto/server/requestAccountDelete.js.map +1 -1
  393. package/dist/lexicon/types/com/atproto/server/requestEmailConfirmation.js.map +1 -1
  394. package/dist/lexicon/types/com/atproto/server/requestEmailUpdate.js.map +1 -1
  395. package/dist/lexicon/types/com/atproto/server/requestPasswordReset.js.map +1 -1
  396. package/dist/lexicon/types/com/atproto/server/reserveSigningKey.js.map +1 -1
  397. package/dist/lexicon/types/com/atproto/server/resetPassword.js.map +1 -1
  398. package/dist/lexicon/types/com/atproto/server/revokeAppPassword.js.map +1 -1
  399. package/dist/lexicon/types/com/atproto/server/updateEmail.js.map +1 -1
  400. package/dist/lexicon/types/com/atproto/sync/defs.js.map +1 -1
  401. package/dist/lexicon/types/com/atproto/sync/getBlob.js.map +1 -1
  402. package/dist/lexicon/types/com/atproto/sync/getBlocks.js.map +1 -1
  403. package/dist/lexicon/types/com/atproto/sync/getCheckout.js.map +1 -1
  404. package/dist/lexicon/types/com/atproto/sync/getHead.js.map +1 -1
  405. package/dist/lexicon/types/com/atproto/sync/getHostStatus.js.map +1 -1
  406. package/dist/lexicon/types/com/atproto/sync/getLatestCommit.js.map +1 -1
  407. package/dist/lexicon/types/com/atproto/sync/getRecord.js.map +1 -1
  408. package/dist/lexicon/types/com/atproto/sync/getRepo.js.map +1 -1
  409. package/dist/lexicon/types/com/atproto/sync/getRepoStatus.js.map +1 -1
  410. package/dist/lexicon/types/com/atproto/sync/listBlobs.js.map +1 -1
  411. package/dist/lexicon/types/com/atproto/sync/listHosts.js.map +1 -1
  412. package/dist/lexicon/types/com/atproto/sync/listRepos.js.map +1 -1
  413. package/dist/lexicon/types/com/atproto/sync/listReposByCollection.js.map +1 -1
  414. package/dist/lexicon/types/com/atproto/sync/notifyOfUpdate.js.map +1 -1
  415. package/dist/lexicon/types/com/atproto/sync/requestCrawl.js.map +1 -1
  416. package/dist/lexicon/types/com/atproto/sync/subscribeRepos.js.map +1 -1
  417. package/dist/lexicon/types/com/atproto/temp/addReservedHandle.js.map +1 -1
  418. package/dist/lexicon/types/com/atproto/temp/checkHandleAvailability.js.map +1 -1
  419. package/dist/lexicon/types/com/atproto/temp/checkSignupQueue.js.map +1 -1
  420. package/dist/lexicon/types/com/atproto/temp/dereferenceScope.js.map +1 -1
  421. package/dist/lexicon/types/com/atproto/temp/fetchLabels.js.map +1 -1
  422. package/dist/lexicon/types/com/atproto/temp/requestPhoneVerification.js.map +1 -1
  423. package/dist/lexicon/types/com/atproto/temp/revokeAccountCredentials.js.map +1 -1
  424. package/dist/lexicon/types/tools/ozone/communication/createTemplate.js.map +1 -1
  425. package/dist/lexicon/types/tools/ozone/communication/defs.js.map +1 -1
  426. package/dist/lexicon/types/tools/ozone/communication/deleteTemplate.js.map +1 -1
  427. package/dist/lexicon/types/tools/ozone/communication/listTemplates.js.map +1 -1
  428. package/dist/lexicon/types/tools/ozone/communication/updateTemplate.js.map +1 -1
  429. package/dist/lexicon/types/tools/ozone/hosting/getAccountHistory.js.map +1 -1
  430. package/dist/lexicon/types/tools/ozone/moderation/cancelScheduledActions.d.ts +46 -0
  431. package/dist/lexicon/types/tools/ozone/moderation/cancelScheduledActions.d.ts.map +1 -0
  432. package/dist/lexicon/types/tools/ozone/moderation/cancelScheduledActions.js +25 -0
  433. package/dist/lexicon/types/tools/ozone/moderation/cancelScheduledActions.js.map +1 -0
  434. package/dist/lexicon/types/tools/ozone/moderation/defs.d.ts +57 -2
  435. package/dist/lexicon/types/tools/ozone/moderation/defs.d.ts.map +1 -1
  436. package/dist/lexicon/types/tools/ozone/moderation/defs.js +27 -0
  437. package/dist/lexicon/types/tools/ozone/moderation/defs.js.map +1 -1
  438. package/dist/lexicon/types/tools/ozone/moderation/emitEvent.d.ts +1 -1
  439. package/dist/lexicon/types/tools/ozone/moderation/emitEvent.d.ts.map +1 -1
  440. package/dist/lexicon/types/tools/ozone/moderation/emitEvent.js.map +1 -1
  441. package/dist/lexicon/types/tools/ozone/moderation/getAccountTimeline.d.ts +1 -1
  442. package/dist/lexicon/types/tools/ozone/moderation/getAccountTimeline.d.ts.map +1 -1
  443. package/dist/lexicon/types/tools/ozone/moderation/getAccountTimeline.js.map +1 -1
  444. package/dist/lexicon/types/tools/ozone/moderation/getEvent.js.map +1 -1
  445. package/dist/lexicon/types/tools/ozone/moderation/getRecord.js.map +1 -1
  446. package/dist/lexicon/types/tools/ozone/moderation/getRecords.js.map +1 -1
  447. package/dist/lexicon/types/tools/ozone/moderation/getRepo.js.map +1 -1
  448. package/dist/lexicon/types/tools/ozone/moderation/getReporterStats.js.map +1 -1
  449. package/dist/lexicon/types/tools/ozone/moderation/getRepos.js.map +1 -1
  450. package/dist/lexicon/types/tools/ozone/moderation/getSubjects.js.map +1 -1
  451. package/dist/lexicon/types/tools/ozone/moderation/listScheduledActions.d.ts +38 -0
  452. package/dist/lexicon/types/tools/ozone/moderation/listScheduledActions.d.ts.map +1 -0
  453. package/dist/lexicon/types/tools/ozone/moderation/listScheduledActions.js +7 -0
  454. package/dist/lexicon/types/tools/ozone/moderation/listScheduledActions.js.map +1 -0
  455. package/dist/lexicon/types/tools/ozone/moderation/queryEvents.js.map +1 -1
  456. package/dist/lexicon/types/tools/ozone/moderation/queryStatuses.js.map +1 -1
  457. package/dist/lexicon/types/tools/ozone/moderation/scheduleAction.d.ts +75 -0
  458. package/dist/lexicon/types/tools/ozone/moderation/scheduleAction.d.ts.map +1 -0
  459. package/dist/lexicon/types/tools/ozone/moderation/scheduleAction.js +43 -0
  460. package/dist/lexicon/types/tools/ozone/moderation/scheduleAction.js.map +1 -0
  461. package/dist/lexicon/types/tools/ozone/moderation/searchRepos.js.map +1 -1
  462. package/dist/lexicon/types/tools/ozone/report/defs.d.ts +17 -27
  463. package/dist/lexicon/types/tools/ozone/report/defs.d.ts.map +1 -1
  464. package/dist/lexicon/types/tools/ozone/report/defs.js +17 -27
  465. package/dist/lexicon/types/tools/ozone/report/defs.js.map +1 -1
  466. package/dist/lexicon/types/tools/ozone/safelink/addRule.js.map +1 -1
  467. package/dist/lexicon/types/tools/ozone/safelink/defs.js.map +1 -1
  468. package/dist/lexicon/types/tools/ozone/safelink/queryEvents.js.map +1 -1
  469. package/dist/lexicon/types/tools/ozone/safelink/queryRules.js.map +1 -1
  470. package/dist/lexicon/types/tools/ozone/safelink/removeRule.js.map +1 -1
  471. package/dist/lexicon/types/tools/ozone/safelink/updateRule.js.map +1 -1
  472. package/dist/lexicon/types/tools/ozone/server/getConfig.js.map +1 -1
  473. package/dist/lexicon/types/tools/ozone/set/addValues.js.map +1 -1
  474. package/dist/lexicon/types/tools/ozone/set/defs.js.map +1 -1
  475. package/dist/lexicon/types/tools/ozone/set/deleteSet.js.map +1 -1
  476. package/dist/lexicon/types/tools/ozone/set/deleteValues.js.map +1 -1
  477. package/dist/lexicon/types/tools/ozone/set/getValues.js.map +1 -1
  478. package/dist/lexicon/types/tools/ozone/set/querySets.js.map +1 -1
  479. package/dist/lexicon/types/tools/ozone/set/upsertSet.js.map +1 -1
  480. package/dist/lexicon/types/tools/ozone/setting/defs.js.map +1 -1
  481. package/dist/lexicon/types/tools/ozone/setting/listOptions.js.map +1 -1
  482. package/dist/lexicon/types/tools/ozone/setting/removeOptions.js.map +1 -1
  483. package/dist/lexicon/types/tools/ozone/setting/upsertOption.js.map +1 -1
  484. package/dist/lexicon/types/tools/ozone/signature/defs.js.map +1 -1
  485. package/dist/lexicon/types/tools/ozone/signature/findCorrelation.js.map +1 -1
  486. package/dist/lexicon/types/tools/ozone/signature/findRelatedAccounts.js.map +1 -1
  487. package/dist/lexicon/types/tools/ozone/signature/searchAccounts.js.map +1 -1
  488. package/dist/lexicon/types/tools/ozone/team/addMember.js.map +1 -1
  489. package/dist/lexicon/types/tools/ozone/team/defs.js.map +1 -1
  490. package/dist/lexicon/types/tools/ozone/team/deleteMember.js.map +1 -1
  491. package/dist/lexicon/types/tools/ozone/team/listMembers.js.map +1 -1
  492. package/dist/lexicon/types/tools/ozone/team/updateMember.js.map +1 -1
  493. package/dist/lexicon/types/tools/ozone/verification/defs.js.map +1 -1
  494. package/dist/lexicon/types/tools/ozone/verification/grantVerifications.js.map +1 -1
  495. package/dist/lexicon/types/tools/ozone/verification/listVerifications.js.map +1 -1
  496. package/dist/lexicon/types/tools/ozone/verification/revokeVerifications.js.map +1 -1
  497. package/dist/lexicon/util.js.map +1 -1
  498. package/dist/logger.js.map +1 -1
  499. package/dist/mod-service/index.d.ts.map +1 -1
  500. package/dist/mod-service/index.js +11 -0
  501. package/dist/mod-service/index.js.map +1 -1
  502. package/dist/mod-service/profile.d.ts.map +1 -1
  503. package/dist/mod-service/profile.js +14 -26
  504. package/dist/mod-service/profile.js.map +1 -1
  505. package/dist/mod-service/status.d.ts +3 -0
  506. package/dist/mod-service/status.d.ts.map +1 -1
  507. package/dist/mod-service/status.js.map +1 -1
  508. package/dist/mod-service/subject.js.map +1 -1
  509. package/dist/mod-service/types.js.map +1 -1
  510. package/dist/mod-service/util.js.map +1 -1
  511. package/dist/mod-service/views.d.ts.map +1 -1
  512. package/dist/mod-service/views.js +5 -0
  513. package/dist/mod-service/views.js.map +1 -1
  514. package/dist/safelink/service.js.map +1 -1
  515. package/dist/scheduled-action/service.d.ts +39 -0
  516. package/dist/scheduled-action/service.d.ts.map +1 -0
  517. package/dist/scheduled-action/service.js +208 -0
  518. package/dist/scheduled-action/service.js.map +1 -0
  519. package/dist/scheduled-action/types.d.ts +14 -0
  520. package/dist/scheduled-action/types.d.ts.map +1 -0
  521. package/dist/scheduled-action/types.js +3 -0
  522. package/dist/scheduled-action/types.js.map +1 -0
  523. package/dist/sequencer/index.js.map +1 -1
  524. package/dist/sequencer/outbox.js.map +1 -1
  525. package/dist/sequencer/sequencer.js.map +1 -1
  526. package/dist/set/service.js.map +1 -1
  527. package/dist/setting/constants.js.map +1 -1
  528. package/dist/setting/service.js.map +1 -1
  529. package/dist/setting/types.js.map +1 -1
  530. package/dist/setting/validators.js.map +1 -1
  531. package/dist/tag-service/content-tagger.js.map +1 -1
  532. package/dist/tag-service/embed-tagger.js.map +1 -1
  533. package/dist/tag-service/index.js.map +1 -1
  534. package/dist/tag-service/language-data.js.map +1 -1
  535. package/dist/tag-service/language-tagger.js.map +1 -1
  536. package/dist/tag-service/util.js.map +1 -1
  537. package/dist/team/index.js.map +1 -1
  538. package/dist/util.js.map +1 -1
  539. package/dist/verification/issuer.js.map +1 -1
  540. package/dist/verification/service.js.map +1 -1
  541. package/dist/verification/util.js.map +1 -1
  542. package/package.json +3 -3
  543. package/src/api/index.ts +6 -0
  544. package/src/api/moderation/cancelScheduledActions.ts +72 -0
  545. package/src/api/moderation/emitEvent.ts +9 -84
  546. package/src/api/moderation/listScheduledActions.ts +45 -0
  547. package/src/api/moderation/scheduleAction.ts +129 -0
  548. package/src/api/moderation/util.ts +96 -0
  549. package/src/api/util.ts +33 -0
  550. package/src/context.ts +11 -0
  551. package/src/daemon/context.ts +21 -0
  552. package/src/daemon/index.ts +1 -0
  553. package/src/daemon/scheduled-action-processor.ts +243 -0
  554. package/src/db/migrations/20250923T000000000Z-scheduled-actions.ts +56 -0
  555. package/src/db/migrations/index.ts +2 -0
  556. package/src/db/schema/index.ts +3 -1
  557. package/src/db/schema/scheduled-action.ts +25 -0
  558. package/src/lexicon/index.ts +51 -25
  559. package/src/lexicon/lexicons.ts +467 -69
  560. package/src/lexicon/types/com/atproto/moderation/defs.ts +10 -15
  561. package/src/lexicon/types/tools/ozone/moderation/cancelScheduledActions.ts +79 -0
  562. package/src/lexicon/types/tools/ozone/moderation/defs.ts +88 -0
  563. package/src/lexicon/types/tools/ozone/moderation/emitEvent.ts +2 -0
  564. package/src/lexicon/types/tools/ozone/moderation/getAccountTimeline.ts +2 -0
  565. package/src/lexicon/types/tools/ozone/moderation/listScheduledActions.ts +57 -0
  566. package/src/lexicon/types/tools/ozone/moderation/scheduleAction.ts +123 -0
  567. package/src/lexicon/types/tools/ozone/report/defs.ts +25 -40
  568. package/src/mod-service/index.ts +13 -0
  569. package/src/mod-service/profile.ts +22 -26
  570. package/src/mod-service/views.ts +7 -0
  571. package/src/scheduled-action/service.ts +279 -0
  572. package/src/scheduled-action/types.ts +17 -0
  573. package/tests/__snapshots__/scheduled-action.test.ts.snap +61 -0
  574. package/tests/scheduled-action-processor.test.ts +464 -0
  575. package/tests/scheduled-action.test.ts +334 -0
  576. package/tsconfig.build.tsbuildinfo +1 -1
  577. package/tsconfig.tests.tsbuildinfo +1 -1
@@ -7,58 +7,46 @@ const defs_1 = require("../lexicon/types/com/atproto/moderation/defs");
7
7
  const logger_1 = require("../logger");
8
8
  // Reverse mapping from new ozone namespaced reason types to old com.atproto namespaced reason types
9
9
  exports.NEW_TO_OLD_REASON_MAPPING = {
10
- 'tools.ozone.report.defs#reasonMisleadingSpam': defs_1.REASONSPAM,
11
- 'tools.ozone.report.defs#reasonRuleOther': defs_1.REASONVIOLATION,
12
- 'tools.ozone.report.defs#reasonMisleadingOther': defs_1.REASONMISLEADING,
13
- 'tools.ozone.report.defs#reasonSexualUnlabeled': defs_1.REASONSEXUAL,
14
- 'tools.ozone.report.defs#reasonHarassmentOther': defs_1.REASONRUDE,
15
10
  'tools.ozone.report.defs#reasonAppeal': defs_1.REASONAPPEAL,
16
- // Map all violence-related reasons to REASONVIOLATION
17
- 'tools.ozone.report.defs#reasonViolenceAnimalWelfare': defs_1.REASONVIOLATION,
11
+ 'tools.ozone.report.defs#reasonOther': defs_1.REASONOTHER,
12
+ 'tools.ozone.report.defs#reasonViolenceAnimal': defs_1.REASONVIOLATION,
18
13
  'tools.ozone.report.defs#reasonViolenceThreats': defs_1.REASONVIOLATION,
19
14
  'tools.ozone.report.defs#reasonViolenceGraphicContent': defs_1.REASONVIOLATION,
20
- 'tools.ozone.report.defs#reasonViolenceSelfHarm': defs_1.REASONVIOLATION,
21
15
  'tools.ozone.report.defs#reasonViolenceGlorification': defs_1.REASONVIOLATION,
22
16
  'tools.ozone.report.defs#reasonViolenceExtremistContent': defs_1.REASONVIOLATION,
23
17
  'tools.ozone.report.defs#reasonViolenceTrafficking': defs_1.REASONVIOLATION,
24
18
  'tools.ozone.report.defs#reasonViolenceOther': defs_1.REASONVIOLATION,
25
- // Map all sexual-related reasons to REASONSEXUAL
26
19
  'tools.ozone.report.defs#reasonSexualAbuseContent': defs_1.REASONSEXUAL,
27
20
  'tools.ozone.report.defs#reasonSexualNCII': defs_1.REASONSEXUAL,
28
- 'tools.ozone.report.defs#reasonSexualSextortion': defs_1.REASONSEXUAL,
29
21
  'tools.ozone.report.defs#reasonSexualDeepfake': defs_1.REASONSEXUAL,
30
22
  'tools.ozone.report.defs#reasonSexualAnimal': defs_1.REASONSEXUAL,
23
+ 'tools.ozone.report.defs#reasonSexualUnlabeled': defs_1.REASONSEXUAL,
31
24
  'tools.ozone.report.defs#reasonSexualOther': defs_1.REASONSEXUAL,
32
- // Map all child safety reasons to REASONVIOLATION
33
25
  'tools.ozone.report.defs#reasonChildSafetyCSAM': defs_1.REASONVIOLATION,
34
26
  'tools.ozone.report.defs#reasonChildSafetyGroom': defs_1.REASONVIOLATION,
35
- 'tools.ozone.report.defs#reasonChildSafetyMinorPrivacy': defs_1.REASONVIOLATION,
36
- 'tools.ozone.report.defs#reasonChildSafetyEndangerment': defs_1.REASONVIOLATION,
27
+ 'tools.ozone.report.defs#reasonChildSafetyPrivacy': defs_1.REASONVIOLATION,
37
28
  'tools.ozone.report.defs#reasonChildSafetyHarassment': defs_1.REASONVIOLATION,
38
- 'tools.ozone.report.defs#reasonChildSafetyPromotion': defs_1.REASONVIOLATION,
39
29
  'tools.ozone.report.defs#reasonChildSafetyOther': defs_1.REASONVIOLATION,
40
- // Map all harassment reasons to REASONRUDE
41
30
  'tools.ozone.report.defs#reasonHarassmentTroll': defs_1.REASONRUDE,
42
31
  'tools.ozone.report.defs#reasonHarassmentTargeted': defs_1.REASONRUDE,
43
32
  'tools.ozone.report.defs#reasonHarassmentHateSpeech': defs_1.REASONRUDE,
44
33
  'tools.ozone.report.defs#reasonHarassmentDoxxing': defs_1.REASONRUDE,
45
- // Map all misleading reasons to REASONMISLEADING
34
+ 'tools.ozone.report.defs#reasonHarassmentOther': defs_1.REASONRUDE,
46
35
  'tools.ozone.report.defs#reasonMisleadingBot': defs_1.REASONMISLEADING,
47
36
  'tools.ozone.report.defs#reasonMisleadingImpersonation': defs_1.REASONMISLEADING,
37
+ 'tools.ozone.report.defs#reasonMisleadingSpam': defs_1.REASONSPAM,
48
38
  'tools.ozone.report.defs#reasonMisleadingScam': defs_1.REASONMISLEADING,
49
- 'tools.ozone.report.defs#reasonMisleadingSyntheticContent': defs_1.REASONMISLEADING,
50
- 'tools.ozone.report.defs#reasonMisleadingMisinformation': defs_1.REASONMISLEADING,
51
- // Map all rule-related reasons to REASONVIOLATION
39
+ 'tools.ozone.report.defs#reasonMisleadingElections': defs_1.REASONMISLEADING,
40
+ 'tools.ozone.report.defs#reasonMisleadingOther': defs_1.REASONMISLEADING,
52
41
  'tools.ozone.report.defs#reasonRuleSiteSecurity': defs_1.REASONVIOLATION,
53
- 'tools.ozone.report.defs#reasonRuleStolenContent': defs_1.REASONVIOLATION,
54
42
  'tools.ozone.report.defs#reasonRuleProhibitedSales': defs_1.REASONVIOLATION,
55
43
  'tools.ozone.report.defs#reasonRuleBanEvasion': defs_1.REASONVIOLATION,
56
- // Map all civic reasons to REASONMISLEADING
57
- 'tools.ozone.report.defs#reasonCivicElectoralProcess': defs_1.REASONMISLEADING,
58
- 'tools.ozone.report.defs#reasonCivicDisclosure': defs_1.REASONMISLEADING,
59
- 'tools.ozone.report.defs#reasonCivicInterference': defs_1.REASONMISLEADING,
60
- 'tools.ozone.report.defs#reasonCivicMisinformation': defs_1.REASONMISLEADING,
61
- 'tools.ozone.report.defs#reasonCivicImpersonation': defs_1.REASONMISLEADING,
44
+ 'tools.ozone.report.defs#reasonRuleOther': defs_1.REASONVIOLATION,
45
+ 'tools.ozone.report.defs#reasonSelfHarmContent': defs_1.REASONVIOLATION,
46
+ 'tools.ozone.report.defs#reasonSelfHarmED': defs_1.REASONVIOLATION,
47
+ 'tools.ozone.report.defs#reasonSelfHarmStunts': defs_1.REASONVIOLATION,
48
+ 'tools.ozone.report.defs#reasonSelfHarmSubstances': defs_1.REASONVIOLATION,
49
+ 'tools.ozone.report.defs#reasonSelfHarmOther': defs_1.REASONVIOLATION,
62
50
  };
63
51
  class ModerationServiceProfile {
64
52
  constructor(cfg, appviewAgent, cacheTTL) {
@@ -1 +1 @@
1
- {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/mod-service/profile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/mod-service/profile.ts"],"names":[],"mappings":"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","sourcesContent":["import AtpAgent, { AppBskyLabelerDefs } from '@atproto/api'\nimport { InvalidRequestError } from '@atproto/xrpc-server'\nimport { OzoneConfig } from '../config'\nimport {\n REASONAPPEAL,\n REASONMISLEADING,\n REASONOTHER,\n REASONRUDE,\n REASONSEXUAL,\n REASONSPAM,\n REASONVIOLATION,\n} from '../lexicon/types/com/atproto/moderation/defs'\nimport { httpLogger } from '../logger'\n\n// Reverse mapping from new ozone namespaced reason types to old com.atproto namespaced reason types\nexport const NEW_TO_OLD_REASON_MAPPING: Record<string, string> = {\n 'tools.ozone.report.defs#reasonAppeal': REASONAPPEAL,\n 'tools.ozone.report.defs#reasonOther': REASONOTHER,\n\n 'tools.ozone.report.defs#reasonViolenceAnimal': REASONVIOLATION,\n 'tools.ozone.report.defs#reasonViolenceThreats': REASONVIOLATION,\n 'tools.ozone.report.defs#reasonViolenceGraphicContent': REASONVIOLATION,\n 'tools.ozone.report.defs#reasonViolenceGlorification': REASONVIOLATION,\n 'tools.ozone.report.defs#reasonViolenceExtremistContent': REASONVIOLATION,\n 'tools.ozone.report.defs#reasonViolenceTrafficking': REASONVIOLATION,\n 'tools.ozone.report.defs#reasonViolenceOther': REASONVIOLATION,\n\n 'tools.ozone.report.defs#reasonSexualAbuseContent': REASONSEXUAL,\n 'tools.ozone.report.defs#reasonSexualNCII': REASONSEXUAL,\n 'tools.ozone.report.defs#reasonSexualDeepfake': REASONSEXUAL,\n 'tools.ozone.report.defs#reasonSexualAnimal': REASONSEXUAL,\n 'tools.ozone.report.defs#reasonSexualUnlabeled': REASONSEXUAL,\n 'tools.ozone.report.defs#reasonSexualOther': REASONSEXUAL,\n\n 'tools.ozone.report.defs#reasonChildSafetyCSAM': REASONVIOLATION,\n 'tools.ozone.report.defs#reasonChildSafetyGroom': REASONVIOLATION,\n 'tools.ozone.report.defs#reasonChildSafetyPrivacy': REASONVIOLATION,\n 'tools.ozone.report.defs#reasonChildSafetyHarassment': REASONVIOLATION,\n 'tools.ozone.report.defs#reasonChildSafetyOther': REASONVIOLATION,\n\n 'tools.ozone.report.defs#reasonHarassmentTroll': REASONRUDE,\n 'tools.ozone.report.defs#reasonHarassmentTargeted': REASONRUDE,\n 'tools.ozone.report.defs#reasonHarassmentHateSpeech': REASONRUDE,\n 'tools.ozone.report.defs#reasonHarassmentDoxxing': REASONRUDE,\n 'tools.ozone.report.defs#reasonHarassmentOther': REASONRUDE,\n\n 'tools.ozone.report.defs#reasonMisleadingBot': REASONMISLEADING,\n 'tools.ozone.report.defs#reasonMisleadingImpersonation': REASONMISLEADING,\n 'tools.ozone.report.defs#reasonMisleadingSpam': REASONSPAM,\n 'tools.ozone.report.defs#reasonMisleadingScam': REASONMISLEADING,\n 'tools.ozone.report.defs#reasonMisleadingElections': REASONMISLEADING,\n 'tools.ozone.report.defs#reasonMisleadingOther': REASONMISLEADING,\n\n 'tools.ozone.report.defs#reasonRuleSiteSecurity': REASONVIOLATION,\n 'tools.ozone.report.defs#reasonRuleProhibitedSales': REASONVIOLATION,\n 'tools.ozone.report.defs#reasonRuleBanEvasion': REASONVIOLATION,\n 'tools.ozone.report.defs#reasonRuleOther': REASONVIOLATION,\n\n 'tools.ozone.report.defs#reasonSelfHarmContent': REASONVIOLATION,\n 'tools.ozone.report.defs#reasonSelfHarmED': REASONVIOLATION,\n 'tools.ozone.report.defs#reasonSelfHarmStunts': REASONVIOLATION,\n 'tools.ozone.report.defs#reasonSelfHarmSubstances': REASONVIOLATION,\n 'tools.ozone.report.defs#reasonSelfHarmOther': REASONVIOLATION,\n}\n\ninterface CacheEntry {\n profile: AppBskyLabelerDefs.LabelerViewDetailed | null\n timestamp: number\n}\n\nexport type ModerationServiceProfileCreator = () => ModerationServiceProfile\n\nexport class ModerationServiceProfile {\n private cache: CacheEntry | null = null\n private CACHE_TTL: number\n\n constructor(\n private cfg: OzoneConfig,\n private appviewAgent: AtpAgent,\n cacheTTL?: number,\n ) {\n this.CACHE_TTL = cacheTTL || cfg.service.serviceRecordCacheTTL\n }\n\n static creator(\n cfg: OzoneConfig,\n appviewAgent: AtpAgent,\n ): ModerationServiceProfileCreator {\n return () => new ModerationServiceProfile(cfg, appviewAgent)\n }\n\n async getProfile() {\n const now = Date.now()\n\n if (!this.cache || now - this.cache.timestamp > this.CACHE_TTL) {\n try {\n const { data } = await this.appviewAgent.app.bsky.labeler.getServices({\n dids: [this.cfg.service.did],\n detailed: true,\n })\n\n if (AppBskyLabelerDefs.isLabelerViewDetailed(data.views?.[0])) {\n this.cache = {\n profile: data.views[0],\n timestamp: now,\n }\n }\n } catch (e) {\n // On error, fail open\n httpLogger.error(`Failed to fetch labeler profile: ${e?.['message']}`)\n }\n }\n\n return this.cache?.profile || null\n }\n\n async validateReasonType(reasonType: string): Promise<string> {\n const profile = await this.getProfile()\n\n if (!Array.isArray(profile?.reasonTypes)) {\n return reasonType\n }\n\n const supportedReasonTypes = profile.reasonTypes\n\n // Check if the reason type is directly supported\n if (supportedReasonTypes.includes(reasonType)) {\n return reasonType\n }\n\n // Allow new reason types only if they map to a supported old reason type\n const mappedOldReason = NEW_TO_OLD_REASON_MAPPING[reasonType]\n if (mappedOldReason && supportedReasonTypes.includes(mappedOldReason)) {\n return reasonType\n }\n\n throw new InvalidRequestError(`Invalid reason type: ${reasonType}`)\n }\n}\n"]}
@@ -35,6 +35,7 @@ export declare const moderationSubjectStatusQueryBuilder: (db: DatabaseSchema) =
35
35
  verification: import("../db/schema/verification").Verification;
36
36
  safelink_rule: import("../db/schema/safelink").SafelinkRule;
37
37
  safelink_event: import("../db/schema/safelink").SafelinkEvent;
38
+ scheduled_action: import("../db/schema/scheduled-action").ScheduledAction;
38
39
  }, "moderation_subject_status" | "account_events_stats" | "account_record_events_stats" | "account_record_status_stats", {
39
40
  id: number;
40
41
  comment: string | null;
@@ -97,6 +98,7 @@ export declare const moderationSubjectStatusQueryBuilder: (db: DatabaseSchema) =
97
98
  verification: import("../db/schema/verification").Verification;
98
99
  safelink_rule: import("../db/schema/safelink").SafelinkRule;
99
100
  safelink_event: import("../db/schema/safelink").SafelinkEvent;
101
+ scheduled_action: import("../db/schema/scheduled-action").ScheduledAction;
100
102
  }, "moderation_subject_status" | "account_events_stats", "account_events_stats.reportCount" | "account_events_stats.appealCount" | "account_events_stats.suspendCount" | "account_events_stats.escalateCount" | "account_events_stats.takedownCount"> & import("kysely").Selection<{
101
103
  moderation_event: import("../db/schema/moderation_event").ModerationEvent;
102
104
  moderation_subject_status: import("../db/schema/moderation_subject_status").ModerationSubjectStatus;
@@ -130,6 +132,7 @@ export declare const moderationSubjectStatusQueryBuilder: (db: DatabaseSchema) =
130
132
  verification: import("../db/schema/verification").Verification;
131
133
  safelink_rule: import("../db/schema/safelink").SafelinkRule;
132
134
  safelink_event: import("../db/schema/safelink").SafelinkEvent;
135
+ scheduled_action: import("../db/schema/scheduled-action").ScheduledAction;
133
136
  }, "moderation_subject_status" | "account_events_stats" | "account_record_events_stats", "account_record_events_stats.totalReports" | "account_record_events_stats.reportedCount" | "account_record_events_stats.escalatedCount" | "account_record_events_stats.appealedCount">, "account_record_status_stats.subjectCount" | "account_record_status_stats.pendingCount" | "account_record_status_stats.processedCount" | "account_record_status_stats.takendownCount">;
134
137
  export declare const adjustModerationSubjectStatus: (db: Database, moderationEvent: ModerationEventRow, blobCids?: string[]) => Promise<ModerationSubjectStatusRow | null>;
135
138
  export declare const getStatusIdentifierFromSubject: (subject: string | AtUri) => {
@@ -1 +1 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/mod-service/status.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAEvC,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAQ7C,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAA;AAsMxE,eAAO,MAAM,mCAAmC,GAAI,IAAI,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ucAgDrE,CAAA;AAKD,eAAO,MAAM,6BAA6B,GACxC,IAAI,QAAQ,EACZ,iBAAiB,kBAAkB,EACnC,WAAW,MAAM,EAAE,KAClB,OAAO,CAAC,0BAA0B,GAAG,IAAI,CA0N3C,CAAA;AAED,eAAO,MAAM,8BAA8B,GACzC,SAAS,MAAM,GAAG,KAAK,KACtB;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAkBnC,CAAA"}
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/mod-service/status.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAEvC,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAQ7C,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAA;AAsMxE,eAAO,MAAM,mCAAmC,GAAI,IAAI,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ucAgDrE,CAAA;AAKD,eAAO,MAAM,6BAA6B,GACxC,IAAI,QAAQ,EACZ,iBAAiB,kBAAkB,EACnC,WAAW,MAAM,EAAE,KAClB,OAAO,CAAC,0BAA0B,GAAG,IAAI,CA0N3C,CAAA;AAED,eAAO,MAAM,8BAA8B,GACzC,SAAS,MAAM,GAAG,KAAK,KACtB;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAkBnC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/mod-service/status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/mod-service/status.ts"],"names":[],"mappings":"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","sourcesContent":["// This may require better organization but for now, just dumping functions here containing DB queries for moderation status\n\nimport { HOUR } from '@atproto/common'\nimport { AtUri } from '@atproto/syntax'\nimport { isAppealReport } from '../api/util'\nimport { Database } from '../db'\nimport { DatabaseSchema } from '../db/schema'\nimport { jsonb } from '../db/types'\nimport {\n REVIEWCLOSED,\n REVIEWESCALATED,\n REVIEWNONE,\n REVIEWOPEN,\n} from '../lexicon/types/tools/ozone/moderation/defs'\nimport { ModerationEventRow, ModerationSubjectStatusRow } from './types'\n\nconst getSubjectStatusForModerationEvent = ({\n currentStatus,\n action,\n createdBy,\n createdAt,\n durationInHours,\n}: {\n currentStatus?: ModerationSubjectStatusRow\n action: string\n createdBy: string\n createdAt: string\n durationInHours: number | null\n}): Partial<ModerationSubjectStatusRow> => {\n const defaultReviewState = currentStatus\n ? currentStatus.reviewState\n : REVIEWNONE\n\n switch (action) {\n case 'tools.ozone.moderation.defs#modEventAcknowledge':\n return {\n lastReviewedBy: createdBy,\n reviewState: REVIEWCLOSED,\n lastReviewedAt: createdAt,\n }\n case 'tools.ozone.moderation.defs#modEventReport':\n return {\n reviewState: REVIEWOPEN,\n lastReportedAt: createdAt,\n }\n case 'tools.ozone.moderation.defs#modEventEscalate':\n return {\n lastReviewedBy: createdBy,\n reviewState: REVIEWESCALATED,\n lastReviewedAt: createdAt,\n }\n case 'tools.ozone.moderation.defs#modEventReverseTakedown':\n return {\n lastReviewedBy: createdBy,\n reviewState: REVIEWCLOSED,\n takendown: false,\n suspendUntil: null,\n lastReviewedAt: createdAt,\n }\n case 'tools.ozone.moderation.defs#modEventUnmuteReporter':\n return {\n lastReviewedBy: createdBy,\n muteReportingUntil: null,\n // It's not likely to receive an unmute event that does not already have a status row\n // but if it does happen, default to unnecessary\n reviewState: defaultReviewState,\n lastReviewedAt: createdAt,\n }\n case 'tools.ozone.moderation.defs#modEventUnmute':\n return {\n lastReviewedBy: createdBy,\n muteUntil: null,\n // It's not likely to receive an unmute event that does not already have a status row\n // but if it does happen, default to unnecessary\n reviewState: defaultReviewState,\n lastReviewedAt: createdAt,\n }\n case 'tools.ozone.moderation.defs#modEventTakedown':\n return {\n // If we are doing a takedown, safe to move the item out of appealed state\n ...(currentStatus?.appealed ? { appealed: false } : {}),\n takendown: true,\n lastReviewedBy: createdBy,\n reviewState: REVIEWCLOSED,\n lastReviewedAt: createdAt,\n suspendUntil: durationInHours\n ? new Date(Date.now() + durationInHours * HOUR).toISOString()\n : null,\n }\n case 'tools.ozone.moderation.defs#modEventMuteReporter':\n return {\n lastReviewedBy: createdBy,\n lastReviewedAt: createdAt,\n // By default, mute for 24hrs\n muteReportingUntil: new Date(\n Date.now() + (durationInHours || 24) * HOUR,\n ).toISOString(),\n // It's not likely to receive a mute event on a subject that does not already have a status row\n // but if it does happen, default to unnecessary\n reviewState: defaultReviewState,\n }\n case 'tools.ozone.moderation.defs#modEventMute':\n return {\n lastReviewedBy: createdBy,\n lastReviewedAt: createdAt,\n // By default, mute for 24hrs\n muteUntil: new Date(\n Date.now() + (durationInHours || 24) * HOUR,\n ).toISOString(),\n // It's not likely to receive a mute event on a subject that does not already have a status row\n // but if it does happen, default to unnecessary\n reviewState: defaultReviewState,\n }\n case 'tools.ozone.moderation.defs#modEventComment':\n return {\n lastReviewedBy: createdBy,\n lastReviewedAt: createdAt,\n reviewState: defaultReviewState,\n }\n case 'tools.ozone.moderation.defs#modEventTag':\n return { tags: [], reviewState: defaultReviewState }\n case 'tools.ozone.moderation.defs#modEventResolveAppeal':\n return {\n appealed: false,\n }\n case 'tools.ozone.moderation.defs#ageAssuranceEvent':\n case 'tools.ozone.moderation.defs#ageAssuranceOverrideEvent':\n return {\n reviewState: defaultReviewState,\n }\n default:\n return {}\n }\n}\n\nconst hostingEvents = [\n 'tools.ozone.moderation.defs#accountEvent',\n 'tools.ozone.moderation.defs#identityEvent',\n 'tools.ozone.moderation.defs#recordEvent',\n]\n\nconst getSubjectStatusForRecordEvent = ({\n event,\n currentStatus,\n}: {\n event: ModerationEventRow\n currentStatus?: ModerationSubjectStatusRow\n}): Partial<ModerationSubjectStatusRow> => {\n const timestamp =\n typeof event.meta?.timestamp === 'string'\n ? event.meta?.timestamp\n : event.createdAt\n\n if (event.action === 'tools.ozone.moderation.defs#recordEvent') {\n if (event.meta?.op === 'delete') {\n return {\n hostingStatus: 'deleted',\n hostingDeletedAt: timestamp,\n }\n } else if (event.meta?.op === 'update') {\n return {\n hostingStatus: 'active',\n hostingUpdatedAt: timestamp,\n }\n }\n return {}\n }\n\n if (event.action === 'tools.ozone.moderation.defs#accountEvent') {\n const status: Partial<ModerationSubjectStatusRow> = {\n hostingUpdatedAt: timestamp,\n }\n\n if (event.meta?.status) {\n status.hostingStatus = `${event.meta?.status}`\n }\n\n if (event.meta?.status === 'deleted') {\n status.hostingDeletedAt = timestamp\n } else if (event.meta?.status === 'deactivated') {\n status.hostingDeactivatedAt = timestamp\n } else {\n // When deactivated accounts are re-activated, we receive the event with just the active flag set to true\n // so we want to make sure that the hostingStatus is not set to an outdated value\n if (\n currentStatus?.hostingStatus === 'deactivated' &&\n event.meta?.active\n ) {\n status.hostingStatus = 'active'\n status.hostingReactivatedAt = timestamp\n }\n }\n\n return status\n }\n\n if (event.action === 'tools.ozone.moderation.defs#identityEvent') {\n const status: Partial<ModerationSubjectStatusRow> = {\n hostingUpdatedAt: timestamp,\n }\n\n if (event.meta?.tombstone) {\n status.hostingStatus = 'tombstoned'\n status.hostingDeletedAt = timestamp\n }\n\n return status\n }\n\n return {}\n}\n\nexport const moderationSubjectStatusQueryBuilder = (db: DatabaseSchema) => {\n // @NOTE: Using select() instead of selectAll() below because the materialized\n // views might be incomplete, and we don't want the null `did` columns to\n // interfere with the (never null) `did` column from the\n // `moderation_subject_status` table in the results\n return db\n .selectFrom('moderation_subject_status')\n .selectAll('moderation_subject_status')\n .leftJoin('account_events_stats', (join) =>\n join.onRef(\n 'moderation_subject_status.did',\n '=',\n 'account_events_stats.subjectDid',\n ),\n )\n .select([\n 'account_events_stats.takedownCount',\n 'account_events_stats.suspendCount',\n 'account_events_stats.escalateCount',\n 'account_events_stats.reportCount',\n 'account_events_stats.appealCount',\n ])\n .leftJoin('account_record_events_stats', (join) =>\n join.onRef(\n 'moderation_subject_status.did',\n '=',\n 'account_record_events_stats.subjectDid',\n ),\n )\n .select([\n 'account_record_events_stats.totalReports',\n 'account_record_events_stats.reportedCount',\n 'account_record_events_stats.escalatedCount',\n 'account_record_events_stats.appealedCount',\n ])\n .leftJoin('account_record_status_stats', (join) =>\n join.onRef(\n 'moderation_subject_status.did',\n '=',\n 'account_record_status_stats.did',\n ),\n )\n .select([\n 'account_record_status_stats.subjectCount',\n 'account_record_status_stats.pendingCount',\n 'account_record_status_stats.processedCount',\n 'account_record_status_stats.takendownCount',\n ])\n}\n\n// Based on a given moderation action event, this function will update the moderation status of the subject\n// If there's no existing status, it will create one\n// If the action event does not affect the status, it will do nothing\nexport const adjustModerationSubjectStatus = async (\n db: Database,\n moderationEvent: ModerationEventRow,\n blobCids?: string[],\n): Promise<ModerationSubjectStatusRow | null> => {\n const {\n action,\n subjectDid,\n subjectUri,\n subjectCid,\n createdBy,\n meta,\n addedTags,\n removedTags,\n comment,\n createdAt,\n } = moderationEvent\n\n // If subjectUri exists, it's not a repoRef so pass along the uri to get identifier back\n const identifier = getStatusIdentifierFromSubject(subjectUri || subjectDid)\n\n db.assertTransaction()\n\n const now = new Date().toISOString()\n const currentStatus = await db.db\n .selectFrom('moderation_subject_status')\n .where('did', '=', identifier.did)\n .where('recordPath', '=', identifier.recordPath)\n // Make sure we respect other updates that may be happening at the same time\n .forUpdate()\n .selectAll()\n .executeTakeFirst()\n\n if (hostingEvents.includes(action)) {\n const newStatus = getSubjectStatusForRecordEvent({\n event: moderationEvent,\n currentStatus,\n })\n if (!Object.keys(newStatus).length) {\n return currentStatus || null\n }\n\n const status = await db.db\n .insertInto('moderation_subject_status')\n .values({\n ...identifier,\n ...newStatus,\n // newStatus doesn't contain a reviewState or takendown so in case this is a new entry\n // we need to set a default values so that the insert doesn't fail\n reviewState: currentStatus ? currentStatus.reviewState : REVIEWNONE,\n // @TODO: should we try to update this based on status property of account event?\n // For now we're the only one emitting takedowns so i don't think it makes too much of a difference\n takendown: currentStatus ? currentStatus.takendown : false,\n ageAssuranceState: currentStatus\n ? currentStatus.ageAssuranceState\n : 'unknown',\n createdAt: now,\n updatedAt: now,\n })\n .onConflict((oc) =>\n oc.constraint('moderation_status_unique_idx').doUpdateSet({\n ...newStatus,\n updatedAt: now,\n }),\n )\n .returningAll()\n .executeTakeFirst()\n\n return status || null\n }\n\n // If reporting is muted for this reporter, we don't want to update the subject status\n if (meta?.isReporterMuted) {\n return currentStatus || null\n }\n\n const isAppealEvent =\n action === 'tools.ozone.moderation.defs#modEventReport' &&\n meta?.reportType &&\n isAppealReport(`${meta.reportType}`)\n\n const subjectStatus = getSubjectStatusForModerationEvent({\n currentStatus,\n action,\n createdBy,\n createdAt,\n durationInHours: moderationEvent.durationInHours,\n })\n\n if (\n currentStatus?.reviewState === REVIEWESCALATED &&\n subjectStatus.reviewState !== REVIEWCLOSED\n ) {\n // If the current status is escalated only allow incoming events to move the state to\n // reviewClosed because escalated subjects should never move to any other state\n subjectStatus.reviewState = REVIEWESCALATED\n }\n\n if (currentStatus && subjectStatus.reviewState === REVIEWNONE) {\n // reviewNone is ONLY allowed when there is no current status\n // If there is a current status, it should not be allowed to move back to reviewNone\n subjectStatus.reviewState = currentStatus.reviewState\n }\n\n // Set these because we don't want to override them if they're already set\n const defaultData = {\n comment: null,\n // Defaulting reviewState to open for any event may not be the desired behavior.\n // For instance, if a subject never had any event and we just want to leave a comment to keep an eye on it\n // that shouldn't mean we want to review the subject\n reviewState: REVIEWNONE,\n recordCid: subjectCid || null,\n ageAssuranceState: currentStatus?.ageAssuranceState || 'unknown',\n }\n const newStatus = {\n ...defaultData,\n ...subjectStatus,\n }\n\n if (\n action === 'tools.ozone.moderation.defs#modEventPriorityScore' &&\n typeof meta?.priorityScore === 'number'\n ) {\n newStatus.priorityScore = meta?.priorityScore\n subjectStatus.priorityScore = meta?.priorityScore\n }\n\n if (\n action === 'tools.ozone.moderation.defs#modEventReverseTakedown' &&\n !subjectStatus.takendown\n ) {\n newStatus.takendown = false\n subjectStatus.takendown = false\n }\n\n if (isAppealEvent) {\n newStatus.appealed = true\n subjectStatus.appealed = true\n newStatus.lastAppealedAt = createdAt\n subjectStatus.lastAppealedAt = createdAt\n // Set reviewState to escalated when appeal events are emitted\n subjectStatus.reviewState = REVIEWESCALATED\n newStatus.reviewState = REVIEWESCALATED\n }\n\n if (\n action === 'tools.ozone.moderation.defs#modEventResolveAppeal' &&\n subjectStatus.appealed\n ) {\n newStatus.appealed = false\n subjectStatus.appealed = false\n }\n\n if (\n action === 'tools.ozone.moderation.defs#modEventComment' &&\n meta?.sticky\n ) {\n newStatus.comment = comment\n subjectStatus.comment = comment\n }\n\n if (action === 'tools.ozone.moderation.defs#modEventTag') {\n let tags = currentStatus?.tags || []\n if (addedTags?.length) {\n tags = tags.concat(addedTags)\n }\n if (removedTags?.length) {\n tags = tags.filter((tag) => !removedTags.includes(tag))\n }\n newStatus.tags = jsonb([...new Set(tags)]) as unknown as string[]\n subjectStatus.tags = newStatus.tags\n }\n\n if (action === 'tools.ozone.moderation.defs#ageAssuranceEvent') {\n // Only when the last update was made by an admin AND state was set to reset user event can override final state\n if (\n currentStatus?.ageAssuranceUpdatedBy !== 'admin' ||\n currentStatus?.ageAssuranceState === 'reset'\n ) {\n if (typeof meta?.status === 'string') {\n newStatus.ageAssuranceState = meta.status\n subjectStatus.ageAssuranceState = meta.status\n newStatus.ageAssuranceUpdatedBy = 'user'\n subjectStatus.ageAssuranceUpdatedBy = 'user'\n }\n }\n }\n\n if (action === 'tools.ozone.moderation.defs#ageAssuranceOverrideEvent') {\n if (typeof meta?.status === 'string') {\n newStatus.ageAssuranceState = meta.status\n subjectStatus.ageAssuranceState = meta.status\n newStatus.ageAssuranceUpdatedBy = 'admin'\n subjectStatus.ageAssuranceUpdatedBy = 'admin'\n }\n }\n\n if (blobCids?.length) {\n const newBlobCids = jsonb(\n blobCids,\n ) as unknown as ModerationSubjectStatusRow['blobCids']\n newStatus.blobCids = newBlobCids\n subjectStatus.blobCids = newBlobCids\n }\n\n const insertQuery = db.db\n .insertInto('moderation_subject_status')\n .values({\n ...identifier,\n ...newStatus,\n createdAt: now,\n updatedAt: now,\n } as ModerationSubjectStatusRow)\n .onConflict((oc) =>\n oc.constraint('moderation_status_unique_idx').doUpdateSet({\n ...subjectStatus,\n updatedAt: now,\n }),\n )\n\n const status = await insertQuery.returningAll().executeTakeFirst()\n return status || null\n}\n\nexport const getStatusIdentifierFromSubject = (\n subject: string | AtUri,\n): { did: string; recordPath: string } => {\n const isSubjectString = typeof subject === 'string'\n if (isSubjectString && subject.startsWith('did:')) {\n return {\n did: subject,\n recordPath: '',\n }\n }\n\n if (isSubjectString && !subject.startsWith('at://')) {\n throw new Error('Subject is neither a did nor an at-uri')\n }\n\n const uri = isSubjectString ? new AtUri(subject) : subject\n return {\n did: uri.host,\n recordPath: `${uri.collection}/${uri.rkey}`,\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"subject.js","sourceRoot":"","sources":["../../src/mod-service/subject.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subject.js","sourceRoot":"","sources":["../../src/mod-service/subject.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAAuC;AACvC,sDAA0D;AAC1D,yFAA0E;AAC1E,kEAA4E;AAE5E,qGAAsF;AAEtF,0CAAqD;AAMrD,MAAM,WAAW,GAAG,IAAA,kBAAW,EAAC,uBAAuB,CAAC,YAAY,CAAC,CAAA;AAGrE,MAAM,iBAAiB,GAAG,IAAA,kBAAW,EAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAA;AAE3E,MAAM,0BAA0B,GAAG,CACjC,OAAgB,EACuD,EAAE,CACzE,OAAO,IAAI,IAAI;IACf,OAAO,OAAO,KAAK,QAAQ;IAC3B,iBAAiB,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,OAAO,EAAE,CAAC,CAAA;AAEzC,MAAM,gBAAgB,GAAG,CAC9B,OAAqB,EACrB,KAAgB,EACJ,EAAE;IACd,IAAI,IAAA,gBAAS,EAAC,OAAO,CAAC,EAAE,CAAC;QACvB,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,iCAAmB,CAAC,qCAAqC,CAAC,CAAA;QACtE,CAAC;QACD,OAAO,IAAI,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACrC,CAAC;IACD,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAC3D,CAAC;IACD,mFAAmF;IACnF,yFAAyF;IACzF,IAAI,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,OAAO,IAAI,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;IAC5E,CAAC;IACD,6FAA6F;IAC7F,oFAAoF;IACpF,sEAAsE;IACtE,IAAI,0BAA0B,CAAC,OAAO,CAAC,EAAE,CAAC;QACxC,OAAO,IAAI,cAAc,CACvB,OAAO,CAAC,GAAG,EACX,OAAO,CAAC,OAAO,IAAI,EAAE,EACrB,OAAO,CAAC,SAAS,CAClB,CAAA;IACH,CAAC;IAED,MAAM,IAAI,iCAAmB,CAAC,iBAAiB,CAAC,CAAA;AAClD,CAAC,CAAA;AA9BY,QAAA,gBAAgB,oBA8B5B;AAEM,MAAM,mBAAmB,GAAG,CAAC,GAAuB,EAAc,EAAE;IACzE,IACE,GAAG,CAAC,WAAW,KAAK,4BAA4B;QAChD,GAAG,CAAC,UAAU;QACd,GAAG,CAAC,UAAU,EACd,CAAC;QACD,OAAO,IAAI,aAAa,CACtB,GAAG,CAAC,UAAU,EACd,GAAG,CAAC,UAAU,EACd,GAAG,CAAC,eAAe,IAAI,EAAE,CAC1B,CAAA;IACH,CAAC;SAAM,IACL,GAAG,CAAC,WAAW,KAAK,iCAAiC;QACrD,GAAG,CAAC,gBAAgB,EACpB,CAAC;QACD,MAAM,OAAO,GACX,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QACtE,OAAO,IAAI,cAAc,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAA;IAC1E,CAAC;SAAM,CAAC;QACN,OAAO,IAAI,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;IACxC,CAAC;AACH,CAAC,CAAA;AArBY,QAAA,mBAAmB,uBAqB/B;AAEM,MAAM,oBAAoB,GAAG,CAClC,GAA+B,EACnB,EAAE;IACd,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;QACpC,wEAAwE;QACxE,2DAA2D;QAC3D,MAAM,GAAG,GAAG,cAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;QACxE,OAAO,IAAI,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAA;IAC7E,CAAC;SAAM,CAAC;QACN,OAAO,IAAI,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACjC,CAAC;AACH,CAAC,CAAA;AAXY,QAAA,oBAAoB,wBAWhC;AA0BD,MAAa,WAAW;IAGtB,YAAmB,GAAW;QAAlB;;;;mBAAO,GAAG;WAAQ;QAF9B;;;;mBAAW,SAAS;WAAA;QACpB;;;;mBAAa,SAAS;WAAA;IACW,CAAC;IAClC,MAAM;QACJ,OAAO,IAAI,CAAA;IACb,CAAC;IACD,QAAQ;QACN,OAAO,KAAK,CAAA;IACd,CAAC;IACD,SAAS;QACP,OAAO,KAAK,CAAA;IACd,CAAC;IACD,IAAI;QACF,OAAO;YACL,WAAW,EAAE,gCAAyC;YACtD,UAAU,EAAE,IAAI,CAAC,GAAG;YACpB,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,IAAI;YAChB,eAAe,EAAE,IAAI;YACrB,gBAAgB,EAAE,IAAI;YACtB,IAAI,EAAE,IAAI;SACX,CAAA;IACH,CAAC;IACD,GAAG;QACD,OAAO;YACL,KAAK,EAAE,gCAAgC;YACvC,GAAG,EAAE,IAAI,CAAC,GAAG;SACd,CAAA;IACH,CAAC;CACF;AA9BD,kCA8BC;AAED,MAAa,aAAa;IAIxB,YACS,GAAW,EACX,GAAW,EACX,QAAmB;QAF1B;;;;mBAAO,GAAG;WAAQ;QAClB;;;;mBAAO,GAAG;WAAQ;QAClB;;;;mBAAO,QAAQ;WAAW;QAN5B;;;;;WAAgB;QAChB;;;;;WAAW;QACX;;;;;WAAkB;QAMhB,IAAI,CAAC,SAAS,GAAG,IAAI,cAAK,CAAC,GAAG,CAAC,CAAA;QAC/B,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAA;QAClC,IAAI,CAAC,UAAU,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAA;IACzE,CAAC;IACD,MAAM;QACJ,OAAO,KAAK,CAAA;IACd,CAAC;IACD,QAAQ;QACN,OAAO,IAAI,CAAA;IACb,CAAC;IACD,SAAS;QACP,OAAO,KAAK,CAAA;IACd,CAAC;IACD,IAAI;QACF,OAAO;YACL,WAAW,EAAE,4BAAqC;YAClD,UAAU,EAAE,IAAI,CAAC,GAAG;YACpB,UAAU,EAAE,IAAI,CAAC,GAAG;YACpB,UAAU,EAAE,IAAI,CAAC,GAAG;YACpB,eAAe,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE;YACpC,gBAAgB,EAAE,IAAI;YACtB,IAAI,EAAE,IAAI;SACX,CAAA;IACH,CAAC;IACD,GAAG;QACD,OAAO;YACL,KAAK,EAAE,4BAA4B;YACnC,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,GAAG,EAAE,IAAI,CAAC,GAAG;SACd,CAAA;IACH,CAAC;CACF;AAxCD,sCAwCC;AAED,MAAa,cAAc;IAGzB,YACS,GAAW,EACX,OAAe,EACf,SAAiB;QAFxB;;;;mBAAO,GAAG;WAAQ;QAClB;;;;mBAAO,OAAO;WAAQ;QACtB;;;;mBAAO,SAAS;WAAQ;QAL1B;;;;mBAAW,SAAS;WAAA;QACpB;;;;mBAAa,SAAS;WAAA;IAKnB,CAAC;IACJ,MAAM;QACJ,OAAO,KAAK,CAAA;IACd,CAAC;IACD,QAAQ;QACN,OAAO,KAAK,CAAA;IACd,CAAC;IACD,SAAS;QACP,OAAO,IAAI,CAAA;IACb,CAAC;IACD,IAAI;QACF,OAAO;YACL,WAAW,EAAE,iCAA0C;YACvD,UAAU,EAAE,IAAI,CAAC,GAAG;YACpB,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,IAAI;YAChB,eAAe,EAAE,IAAI;YACrB,gBAAgB,EAAE,IAAI,CAAC,SAAS;YAChC,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,SAAS,EAAE;SAC7C,CAAA;IACH,CAAC;IACD,GAAG;QACD,OAAO;YACL,KAAK,EAAE,iCAAiC;YACxC,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAA;IACH,CAAC;CACF;AApCD,wCAoCC","sourcesContent":["import { AtUri } from '@atproto/syntax'\nimport { InvalidRequestError } from '@atproto/xrpc-server'\nimport * as ChatBskyConvoDefs from '../lexicon/types/chat/bsky/convo/defs'\nimport { RepoRef, isRepoRef } from '../lexicon/types/com/atproto/admin/defs'\nimport { InputSchema as ReportInput } from '../lexicon/types/com/atproto/moderation/createReport'\nimport * as ComAtprotoRepoStrongRef from '../lexicon/types/com/atproto/repo/strongRef'\nimport { InputSchema as ActionInput } from '../lexicon/types/tools/ozone/moderation/emitEvent'\nimport { $Typed, asPredicate } from '../lexicon/util'\nimport { ModerationEventRow, ModerationSubjectStatusRow } from './types'\n\ntype SubjectInput = ReportInput['subject'] | ActionInput['subject']\n\ntype StrongRef = ComAtprotoRepoStrongRef.Main\nconst isStrongRef = asPredicate(ComAtprotoRepoStrongRef.validateMain)\n\ntype MessageRef = ChatBskyConvoDefs.MessageRef\nconst isValidMessageRef = asPredicate(ChatBskyConvoDefs.validateMessageRef)\n\nconst isMessageRefWithoutConvoId = (\n subject: unknown,\n): subject is $Typed<Omit<MessageRef, 'convoId'> & { convoId?: string }> =>\n subject != null &&\n typeof subject === 'object' &&\n isValidMessageRef({ convoId: '', ...subject })\n\nexport const subjectFromInput = (\n subject: SubjectInput,\n blobs?: string[],\n): ModSubject => {\n if (isRepoRef(subject)) {\n if (blobs && blobs.length > 0) {\n throw new InvalidRequestError('Blobs do not apply to repo subjects')\n }\n return new RepoSubject(subject.did)\n }\n if (isStrongRef(subject)) {\n return new RecordSubject(subject.uri, subject.cid, blobs)\n }\n // @NOTE #messageRef is not a report input for com.atproto.moderation.createReport.\n // we are taking advantage of the open union in order for bsky.chat to interoperate here.\n if (isValidMessageRef(subject)) {\n return new MessageSubject(subject.did, subject.convoId, subject.messageId)\n }\n // @TODO we should start to require subject.convoId is a string in order to properly validate\n // the #messageRef. temporarily allowing it to be optional as a stopgap for rollout.\n // The next \"if\" can be removed once convoId is consistently provided.\n if (isMessageRefWithoutConvoId(subject)) {\n return new MessageSubject(\n subject.did,\n subject.convoId ?? '',\n subject.messageId,\n )\n }\n\n throw new InvalidRequestError('Invalid subject')\n}\n\nexport const subjectFromEventRow = (row: ModerationEventRow): ModSubject => {\n if (\n row.subjectType === 'com.atproto.repo.strongRef' &&\n row.subjectUri &&\n row.subjectCid\n ) {\n return new RecordSubject(\n row.subjectUri,\n row.subjectCid,\n row.subjectBlobCids ?? [],\n )\n } else if (\n row.subjectType === 'chat.bsky.convo.defs#messageRef' &&\n row.subjectMessageId\n ) {\n const convoId =\n typeof row.meta?.['convoId'] === 'string' ? row.meta['convoId'] : ''\n return new MessageSubject(row.subjectDid, convoId, row.subjectMessageId)\n } else {\n return new RepoSubject(row.subjectDid)\n }\n}\n\nexport const subjectFromStatusRow = (\n row: ModerationSubjectStatusRow,\n): ModSubject => {\n if (row.recordPath && row.recordCid) {\n // Not too intuitive but the recordpath is basically <collection>/<rkey>\n // which is what the last 2 params of .make() arguments are\n const uri = AtUri.make(row.did, ...row.recordPath.split('/')).toString()\n return new RecordSubject(uri.toString(), row.recordCid, row.blobCids ?? [])\n } else {\n return new RepoSubject(row.did)\n }\n}\n\ntype SubjectInfo = {\n subjectType:\n | 'com.atproto.admin.defs#repoRef'\n | 'com.atproto.repo.strongRef'\n | 'chat.bsky.convo.defs#messageRef'\n subjectDid: string\n subjectUri: string | null\n subjectCid: string | null\n subjectBlobCids: string[] | null\n subjectMessageId: string | null\n meta: Record<string, string | undefined> | null\n}\n\nexport interface ModSubject {\n did: string\n recordPath: string | undefined\n blobCids?: string[]\n isRepo(): this is RepoSubject\n isRecord(): this is RecordSubject\n isMessage(): this is MessageSubject\n info(): SubjectInfo\n lex(): $Typed<RepoRef> | $Typed<StrongRef> | $Typed<MessageRef>\n}\n\nexport class RepoSubject implements ModSubject {\n blobCids = undefined\n recordPath = undefined\n constructor(public did: string) {}\n isRepo(): this is RepoSubject {\n return true\n }\n isRecord(): this is RecordSubject {\n return false\n }\n isMessage(): this is MessageSubject {\n return false\n }\n info() {\n return {\n subjectType: 'com.atproto.admin.defs#repoRef' as const,\n subjectDid: this.did,\n subjectUri: null,\n subjectCid: null,\n subjectBlobCids: null,\n subjectMessageId: null,\n meta: null,\n }\n }\n lex(): $Typed<RepoRef> {\n return {\n $type: 'com.atproto.admin.defs#repoRef',\n did: this.did,\n }\n }\n}\n\nexport class RecordSubject implements ModSubject {\n parsedUri: AtUri\n did: string\n recordPath: string\n constructor(\n public uri: string,\n public cid: string,\n public blobCids?: string[],\n ) {\n this.parsedUri = new AtUri(uri)\n this.did = this.parsedUri.hostname\n this.recordPath = `${this.parsedUri.collection}/${this.parsedUri.rkey}`\n }\n isRepo(): this is RepoSubject {\n return false\n }\n isRecord(): this is RecordSubject {\n return true\n }\n isMessage(): this is MessageSubject {\n return false\n }\n info() {\n return {\n subjectType: 'com.atproto.repo.strongRef' as const,\n subjectDid: this.did,\n subjectUri: this.uri,\n subjectCid: this.cid,\n subjectBlobCids: this.blobCids ?? [],\n subjectMessageId: null,\n meta: null,\n }\n }\n lex(): $Typed<StrongRef> {\n return {\n $type: 'com.atproto.repo.strongRef',\n uri: this.uri,\n cid: this.cid,\n }\n }\n}\n\nexport class MessageSubject implements ModSubject {\n blobCids = undefined\n recordPath = undefined\n constructor(\n public did: string,\n public convoId: string,\n public messageId: string,\n ) {}\n isRepo(): this is RepoSubject {\n return false\n }\n isRecord(): this is RecordSubject {\n return false\n }\n isMessage(): this is MessageSubject {\n return true\n }\n info() {\n return {\n subjectType: 'chat.bsky.convo.defs#messageRef' as const,\n subjectDid: this.did,\n subjectUri: null,\n subjectCid: null,\n subjectBlobCids: null,\n subjectMessageId: this.messageId,\n meta: { convoId: this.convoId || undefined },\n }\n }\n lex(): $Typed<MessageRef> {\n return {\n $type: 'chat.bsky.convo.defs#messageRef',\n did: this.did,\n convoId: this.convoId,\n messageId: this.messageId,\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/mod-service/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/mod-service/types.ts"],"names":[],"mappings":"","sourcesContent":["import { type Selectable } from 'kysely'\nimport { ModerationEvent } from '../db/schema/moderation_event'\nimport { ModerationSubjectStatus } from '../db/schema/moderation_subject_status'\nimport { ModEventView } from '../lexicon/types/tools/ozone/moderation/defs'\nimport { ModSubject } from './subject'\n\nexport type ModerationEventRow = Selectable<ModerationEvent>\nexport type ReversibleModerationEvent = Pick<\n ModerationEventRow,\n 'createdBy' | 'comment' | 'action'\n> & {\n createdAt?: Date\n subject: ModSubject\n}\n\nexport type ModerationEventRowWithHandle = ModerationEventRow & {\n subjectHandle?: string | null\n creatorHandle?: string | null\n}\nexport type ModerationSubjectStatusRow = Selectable<ModerationSubjectStatus>\nexport type ModerationSubjectStatusRowWithStats = ModerationSubjectStatusRow & {\n // account_events_stats\n takedownCount: number | null\n suspendCount: number | null\n escalateCount: number | null\n reportCount: number | null\n appealCount: number | null\n\n // account_record_events_stats\n totalReports: number | null\n reportedCount: number | null\n escalatedCount: number | null\n appealedCount: number | null\n\n // account_record_status_stats\n subjectCount: number | null\n pendingCount: number | null\n processedCount: number | null\n takendownCount: number | null\n}\n\nexport type ModerationSubjectStatusRowWithHandle =\n ModerationSubjectStatusRowWithStats & { handle: string | null }\n\nexport type ModEventType = ModEventView['event']\n\ntype AccountHostingView = {\n $type: 'tools.ozone.moderation.defs#accountHosting'\n status: 'active' | 'takendown' | 'suspended' | 'deleted' | 'deactivated'\n createdAt?: Date\n updatedAt?: Date\n deletedAt?: Date\n deactivatedAt?: Date\n reactivatedAt?: Date\n}\n\ntype RecordHostingView = {\n $type: 'tools.ozone.moderation.defs#recordHosting'\n status: 'active' | 'deleted'\n createdAt?: Date\n updatedAt?: Date\n deletedAt?: Date\n}\n\nexport type ModerationSubjectHostingView =\n | AccountHostingView\n | RecordHostingView\n\nexport type ReporterStats = {\n did: string\n accountReportCount: number\n recordReportCount: number\n reportedAccountCount: number\n reportedRecordCount: number\n takendownAccountCount: number\n takendownRecordCount: number\n labeledAccountCount: number\n labeledRecordCount: number\n}\n\nexport type ReporterStatsResult = {\n accountReportCount?: number\n recordReportCount?: number\n reportedAccountCount?: number\n reportedRecordCount?: number\n takendownAccountCount?: number\n takendownRecordCount?: number\n labeledAccountCount?: number\n labeledRecordCount?: number\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/mod-service/util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/mod-service/util.ts"],"names":[],"mappings":"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","sourcesContent":["import net from 'node:net'\nimport { sql } from 'kysely'\nimport AtpAgent from '@atproto/api'\nimport { cborEncode, noUndefinedVals } from '@atproto/common'\nimport { Keypair } from '@atproto/crypto'\nimport { IdResolver } from '@atproto/identity'\nimport { LabelRow } from '../db/schema/label'\nimport { DbRef } from '../db/types'\nimport { Label } from '../lexicon/types/com/atproto/label/defs'\n\nexport type SignedLabel = Label & { sig: Uint8Array }\n\nexport const formatLabel = (row: LabelRow): Label => {\n return noUndefinedVals({\n ver: 1,\n src: row.src,\n uri: row.uri,\n cid: row.cid === '' ? undefined : row.cid,\n val: row.val,\n neg: row.neg === true ? true : undefined,\n cts: row.cts,\n exp: row.exp ?? undefined,\n sig: row.sig ? new Uint8Array(row.sig) : undefined,\n } satisfies Label) as unknown as Label\n}\n\nexport const formatLabelRow = (\n label: Label,\n signingKeyId?: number,\n): Omit<LabelRow, 'id'> => {\n return {\n src: label.src,\n uri: label.uri,\n cid: label.cid ?? '',\n val: label.val,\n neg: !!label.neg,\n cts: label.cts,\n exp: label.exp ?? null,\n sig: label.sig ? Buffer.from(label.sig) : null,\n signingKeyId: signingKeyId ?? null,\n }\n}\n\nexport const signLabel = async (\n label: Label,\n signingKey: Keypair,\n): Promise<SignedLabel> => {\n const { ver, src, uri, cid, val, neg, cts, exp } = label\n const reformatted = noUndefinedVals({\n ver: ver ?? 1,\n src,\n uri,\n cid,\n val,\n neg: neg === true ? true : undefined,\n cts,\n exp,\n } satisfies Label) as unknown as Label\n\n const bytes = cborEncode(reformatted)\n const sig = await signingKey.sign(bytes)\n return {\n ...reformatted,\n sig,\n }\n}\n\nexport const isSafeUrl = (url: URL) => {\n if (url.protocol !== 'https:') return false\n if (!url.hostname || url.hostname === 'localhost') return false\n if (net.isIP(url.hostname) !== 0) return false\n return true\n}\n\nexport const getPdsAgentForRepo = async (\n idResolver: IdResolver,\n did: string,\n devMode?: boolean,\n) => {\n const { pds } = await idResolver.did.resolveAtprotoData(did)\n const url = new URL(pds)\n if (!devMode && !isSafeUrl(url)) {\n return { url, agent: null }\n }\n\n return { url, agent: new AtpAgent({ service: url }) }\n}\n\nexport const dateFromDatetime = (datetime: Date) => {\n const [date] = datetime.toISOString().split('T')\n return date\n}\n\nexport const dateFromDbDatetime = (dateRef: DbRef) => {\n return sql<string>`SPLIT_PART(${dateRef}, 'T', 1)`\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"views.d.ts","sourceRoot":"","sources":["../../src/mod-service/views.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"views.d.ts","sourceRoot":"","sources":["../../src/mod-service/views.ts"],"names":[],"mappings":"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"}
@@ -213,6 +213,11 @@ class ModerationViews {
213
213
  if ((0, defs_3.isAgeAssuranceOverrideEvent)(event)) {
214
214
  event.status = ifString(meta.status);
215
215
  }
216
+ if ((0, defs_3.isScheduleTakedownEvent)(event)) {
217
+ event.executeAt = ifString(meta.executeAt);
218
+ event.executeAfter = ifString(meta.executeAfter);
219
+ event.executeUntil = ifString(meta.executeUntil);
220
+ }
216
221
  return eventView;
217
222
  }
218
223
  async eventDetail(result) {
@@ -1 +1 @@
1
- {"version":3,"file":"views.js","sourceRoot":"","sources":["../../src/mod-service/views.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"views.js","sourceRoot":"","sources":["../../src/mod-service/views.ts"],"names":[],"mappings":"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","sourcesContent":["import { sql } from 'kysely'\nimport {\n AppBskyActorDefs,\n AtpAgent,\n ComAtprotoRepoGetRecord,\n} from '@atproto/api'\nimport { chunkArray, dedupeStrs } from '@atproto/common'\nimport { Keypair } from '@atproto/crypto'\nimport { IdResolver } from '@atproto/identity'\nimport { BlobRef } from '@atproto/lexicon'\nimport { AtUri, INVALID_HANDLE, normalizeDatetimeAlways } from '@atproto/syntax'\nimport { Database } from '../db'\nimport { LabelRow } from '../db/schema/label'\nimport { ids } from '../lexicon/lexicons'\nimport { FeedViewPost } from '../lexicon/types/app/bsky/feed/defs'\nimport { AccountView } from '../lexicon/types/com/atproto/admin/defs'\nimport {\n Label,\n validateSelfLabels,\n} from '../lexicon/types/com/atproto/label/defs'\nimport { OutputSchema as ReportOutput } from '../lexicon/types/com/atproto/moderation/createReport'\nimport { REASONOTHER } from '../lexicon/types/com/atproto/moderation/defs'\nimport {\n BlobView,\n ModEventView,\n ModEventViewDetail,\n RecordView,\n RecordViewDetail,\n RepoView,\n SubjectStatusView,\n isAccountEvent,\n isAgeAssuranceEvent,\n isAgeAssuranceOverrideEvent,\n isIdentityEvent,\n isModEventAcknowledge,\n isModEventComment,\n isModEventEmail,\n isModEventEscalate,\n isModEventLabel,\n isModEventMute,\n isModEventMuteReporter,\n isModEventPriorityScore,\n isModEventReport,\n isModEventTag,\n isModEventTakedown,\n isRecordEvent,\n isScheduleTakedownEvent,\n} from '../lexicon/types/tools/ozone/moderation/defs'\nimport { Un$Typed, asPredicate } from '../lexicon/util'\nimport { dbLogger, httpLogger } from '../logger'\nimport { ParsedLabelers } from '../util'\nimport { moderationSubjectStatusQueryBuilder } from './status'\nimport { subjectFromEventRow, subjectFromStatusRow } from './subject'\nimport {\n ModerationEventRowWithHandle,\n ModerationSubjectStatusRowWithHandle,\n} from './types'\nimport { formatLabel, getPdsAgentForRepo, signLabel } from './util'\n\nconst isValidSelfLabels = asPredicate(validateSelfLabels)\n\nconst ifString = (val: unknown): string | undefined =>\n typeof val === 'string' ? val : undefined\nconst ifBoolean = (val: unknown): boolean | undefined =>\n typeof val === 'boolean' ? val : undefined\nconst ifNumber = (val: unknown): number | undefined =>\n typeof val === 'number' ? val : undefined\n\nexport type AuthHeaders = {\n headers: {\n authorization: string\n 'atproto-accept-labelers'?: string\n }\n}\n\nexport class ModerationViews {\n constructor(\n private db: Database,\n private signingKey: Keypair,\n private signingKeyId: number,\n private appviewAgent: AtpAgent,\n private appviewAuth: (method: string) => Promise<AuthHeaders>,\n public idResolver: IdResolver,\n public devMode?: boolean,\n ) {}\n\n async getAccoutInfosByDid(dids: string[]): Promise<Map<string, AccountView>> {\n if (dids.length === 0) return new Map()\n const auth = await this.appviewAuth(ids.ComAtprotoAdminGetAccountInfos)\n if (!auth) return new Map()\n try {\n const res = await this.appviewAgent.com.atproto.admin.getAccountInfos(\n {\n dids: dedupeStrs(dids),\n },\n auth,\n )\n return res.data.infos.reduce((acc, cur) => {\n return acc.set(cur.did, cur)\n }, new Map<string, AccountView>())\n } catch (err) {\n httpLogger.error(\n { err, dids },\n 'failed to resolve account infos from appview',\n )\n return new Map()\n }\n }\n\n async repos(dids: string[]): Promise<Map<string, RepoView>> {\n if (dids.length === 0) return new Map()\n const [infos, subjectStatuses] = await Promise.all([\n this.getAccoutInfosByDid(dids),\n this.getSubjectStatus(dids),\n ])\n\n return dids.reduce((acc, did) => {\n const info = infos.get(did)\n if (!info) return acc\n const status = subjectStatuses.get(did)\n return acc.set(did, {\n // No email or invite info on appview\n did,\n handle: info.handle,\n relatedRecords: info.relatedRecords ?? [],\n indexedAt: info.indexedAt,\n moderation: {\n subjectStatus: status ? this.formatSubjectStatus(status) : undefined,\n },\n })\n }, new Map<string, RepoView>())\n }\n\n formatEvent(row: ModerationEventRowWithHandle): Un$Typed<ModEventView> {\n const eventView: Un$Typed<ModEventView> = {\n id: row.id,\n event: {\n $type: row.action,\n comment: row.comment ?? undefined,\n },\n subject: subjectFromEventRow(row).lex(),\n subjectBlobCids: row.subjectBlobCids ?? [],\n createdBy: row.createdBy,\n createdAt: row.createdAt,\n subjectHandle: row.subjectHandle ?? undefined,\n creatorHandle: row.creatorHandle ?? undefined,\n modTool: row.modTool\n ? {\n name: row.modTool.name,\n meta: row.modTool.meta,\n }\n : undefined,\n }\n\n const { event } = eventView\n const meta = row.meta || {}\n\n if (\n isModEventMuteReporter(event) ||\n isModEventTakedown(event) ||\n isModEventLabel(event) ||\n isModEventMute(event)\n ) {\n event.durationInHours = row.durationInHours ?? undefined\n }\n\n if (\n (isModEventTakedown(event) || isModEventAcknowledge(event)) &&\n meta.acknowledgeAccountSubjects\n ) {\n event.acknowledgeAccountSubjects = ifBoolean(\n meta.acknowledgeAccountSubjects,\n )!\n }\n\n if (isModEventPriorityScore(event)) {\n event.score = ifNumber(meta?.priorityScore) ?? 0\n }\n\n if (\n isModEventTakedown(event) &&\n typeof meta.policies === 'string' &&\n meta.policies.length > 0\n ) {\n event.policies = meta.policies.split(',')\n }\n\n if (isModEventLabel(event)) {\n event.createLabelVals = row.createLabelVals?.length\n ? row.createLabelVals.split(' ')\n : []\n event.negateLabelVals = row.negateLabelVals?.length\n ? row.negateLabelVals.split(' ')\n : []\n } else if (\n isModEventAcknowledge(event) ||\n isModEventTakedown(event) ||\n isModEventEscalate(event)\n ) {\n // This is for legacy data only, for new events, these types of events\n // won't have labels attached:\n\n if (row.createLabelVals?.length) {\n // @ts-expect-error legacy\n event.createLabelVals = row.createLabelVals.split(' ')\n }\n\n if (row.negateLabelVals?.length) {\n // @ts-expect-error legacy\n event.negateLabelVals = row.negateLabelVals.split(' ')\n }\n }\n\n if (isModEventReport(event)) {\n event.isReporterMuted = !!meta.isReporterMuted\n event.reportType = ifString(meta.reportType)!\n }\n\n if (isModEventEmail(event)) {\n event.content = ifString(meta.content)!\n event.subjectLine = ifString(meta.subjectLine)!\n }\n\n if (isModEventComment(event) && meta.sticky) {\n event.sticky = true\n }\n\n if (isModEventTag(event)) {\n event.add = row.addedTags || []\n event.remove = row.removedTags || []\n }\n\n if (isAccountEvent(event)) {\n event.active = !!meta.active\n event.timestamp = ifString(meta.timestamp)!\n event.status = ifString(meta.status)!\n }\n\n if (isIdentityEvent(event)) {\n event.timestamp = ifString(meta.timestamp)!\n event.handle = ifString(meta.handle)!\n event.pdsHost = ifString(meta.pdsHost)!\n event.tombstone = !!meta.tombstone\n }\n\n if (isRecordEvent(event)) {\n event.op = ifString(meta.op)!\n event.cid = ifString(meta.cid)!\n event.timestamp = ifString(meta.timestamp)!\n }\n\n if (isAgeAssuranceEvent(event)) {\n event.status = ifString(meta.status)!\n event.createdAt = ifString(meta.createdAt)!\n event.attemptId = ifString(meta.attemptId)!\n event.initIp = ifString(meta.initIp)\n event.initUa = ifString(meta.initUa)\n event.completeIp = ifString(meta.completeIp)\n event.completeUa = ifString(meta.completeUa)\n }\n\n if (isAgeAssuranceOverrideEvent(event)) {\n event.status = ifString(meta.status)!\n }\n\n if (isScheduleTakedownEvent(event)) {\n event.executeAt = ifString(meta.executeAt)\n event.executeAfter = ifString(meta.executeAfter)\n event.executeUntil = ifString(meta.executeUntil)\n }\n\n return eventView\n }\n\n async eventDetail(\n result: ModerationEventRowWithHandle,\n ): Promise<ModEventViewDetail> {\n const subjectId =\n result.subjectType === 'com.atproto.admin.defs#repoRef'\n ? result.subjectDid\n : result.subjectUri\n if (!subjectId) {\n throw new Error(`Bad subject: ${result.id}`)\n }\n const subject = await this.subject(subjectId)\n const eventView = this.formatEvent(result)\n const allBlobs = 'value' in subject ? findBlobRefs(subject.value) : []\n const subjectBlobs = await this.blob(\n allBlobs.filter((blob) =>\n eventView.subjectBlobCids.includes(blob.ref.toString()),\n ),\n )\n return {\n ...eventView,\n subject,\n subjectBlobs,\n }\n }\n\n async repoDetails(\n dids: string[],\n labelers?: ParsedLabelers,\n ): Promise<Map<string, RepoView>> {\n const results = new Map<string, RepoView>()\n if (!dids.length) {\n return results\n }\n\n const [repos, localLabels, externalLabels] = await Promise.all([\n this.repos(dids),\n this.labels(dids),\n this.getExternalLabels(dids, labelers),\n ])\n\n repos.forEach((repo, did) => {\n const labels = [\n ...(localLabels.get(did) || []),\n ...(externalLabels.get(did) || []),\n ]\n const repoView = {\n ...repo,\n labels,\n moderation: {\n ...repo.moderation,\n },\n }\n results.set(did, repoView)\n })\n\n return results\n }\n\n async fetchRecord(\n params: ComAtprotoRepoGetRecord.QueryParams,\n appviewAuth: AuthHeaders,\n ) {\n try {\n const record = await this.appviewAgent.com.atproto.repo.getRecord(\n params,\n appviewAuth,\n )\n return record\n } catch (err) {\n if (err instanceof ComAtprotoRepoGetRecord.RecordNotFoundError) {\n // If pds fetch fails, just return null regardless of the error\n try {\n const { agent: pdsAgent } = await getPdsAgentForRepo(\n this.idResolver,\n params.repo,\n this.devMode,\n )\n if (!pdsAgent) {\n return null\n }\n\n const record = await pdsAgent.com.atproto.repo.getRecord(params)\n return record\n } catch (error) {\n return null\n }\n }\n\n return null\n }\n }\n\n async fetchRecords(\n subjects: RecordSubject[],\n ): Promise<Map<string, RecordInfo>> {\n const appviewAuth = await this.appviewAuth(ids.ComAtprotoRepoGetRecord)\n if (!appviewAuth) return new Map()\n\n const fetched = await Promise.all(\n subjects.map(async (subject) => {\n const uri = new AtUri(subject.uri)\n const params = {\n repo: uri.hostname,\n collection: uri.collection,\n rkey: uri.rkey,\n cid: subject.cid,\n }\n return this.fetchRecord(params, appviewAuth)\n }),\n )\n return fetched.reduce((acc, cur) => {\n if (!cur) return acc\n const data = cur.data\n const indexedAt = new Date().toISOString()\n return acc.set(data.uri, { ...data, cid: data.cid ?? '', indexedAt })\n }, new Map<string, RecordInfo>())\n }\n\n async records(subjects: RecordSubject[]) {\n const uris = subjects.map((record) => new AtUri(record.uri))\n const dids = uris.map((u) => u.hostname)\n\n const [repos, subjectStatuses, records] = await Promise.all([\n this.repos(dids),\n this.getSubjectStatus(subjects.map((s) => s.uri)),\n this.fetchRecords(subjects),\n ])\n\n const map = new Map<\n string,\n // Because the result of this function is used to build RecordViewDetail,\n // we explicitly type the result without the $type field, so can be used\n // as both RecordView and RecordViewDetail, without having to cast or\n // override the $type field.\n RecordView & {\n $type?: undefined\n moderation: { $type?: undefined; subjectStatus?: SubjectStatusView }\n }\n >()\n\n for (const uri of uris) {\n const repo = repos.get(uri.hostname)\n if (!repo) continue\n const record = records.get(uri.toString())\n if (!record) continue\n const subjectStatus = subjectStatuses.get(uri.toString())\n\n map.set(uri.toString(), {\n uri: uri.toString(),\n cid: record.cid,\n value: record.value,\n blobCids: findBlobRefs(record.value).map((blob) => blob.ref.toString()),\n indexedAt: record.indexedAt,\n repo,\n moderation: {\n subjectStatus: subjectStatus\n ? this.formatSubjectStatus(subjectStatus)\n : undefined,\n },\n })\n }\n\n return map\n }\n\n async recordDetails(\n subjects: RecordSubject[],\n labelers?: ParsedLabelers,\n ): Promise<Map<string, RecordViewDetail>> {\n const results = new Map<string, RecordViewDetail>()\n if (!subjects.length) {\n return results\n }\n\n const subjectUris = subjects.map((s) => s.uri)\n const [records, subjectStatusesResult, localLabels, externalLabels] =\n await Promise.all([\n this.records(subjects),\n this.getSubjectStatus(subjectUris),\n this.labels(subjectUris),\n this.getExternalLabels(subjectUris, labelers),\n ])\n\n await Promise.all(\n Array.from(records.entries()).map(async ([uri, record]) => {\n const selfLabels = getSelfLabels({\n uri: record.uri,\n cid: record.cid,\n record: record.value,\n })\n\n const status = subjectStatusesResult.get(uri)\n const blobs = await this.blob(findBlobRefs(record.value))\n\n results.set(uri, {\n ...record,\n blobs,\n moderation: {\n ...record.moderation,\n subjectStatus: status\n ? this.formatSubjectStatus(status)\n : undefined,\n },\n labels: [\n ...(localLabels.get(uri) || []),\n ...selfLabels,\n ...(externalLabels.get(uri) || []),\n ],\n })\n }),\n )\n\n return results\n }\n\n async getExternalLabels(\n subjects: string[],\n labelers?: ParsedLabelers,\n ): Promise<Map<string, Label[]>> {\n const results = new Map<string, Label[]>()\n if (!labelers?.dids.length && !labelers?.redact.size) return results\n try {\n const {\n data: { labels },\n } = await this.appviewAgent.com.atproto.label.queryLabels({\n uriPatterns: subjects,\n sources: labelers.dids,\n })\n labels.forEach((label) => {\n if (!results.has(label.uri)) {\n results.set(label.uri, [label])\n return\n }\n results.get(label.uri)?.push(label)\n })\n return results\n } catch (err) {\n httpLogger.error(\n { err, subjects, labelers },\n 'failed to resolve labels from appview',\n )\n return results\n }\n }\n\n formatReport(report: ModerationEventRowWithHandle): ReportOutput {\n return {\n id: report.id,\n createdAt: report.createdAt,\n // Ideally, we would never have a report entry that does not have a reasonType but at the schema level\n // we are not guarantying that so in whatever case, if we end up with such entries, default to 'other'\n reasonType: report.meta?.reportType\n ? (report.meta?.reportType as string)\n : REASONOTHER,\n reason: report.comment ?? undefined,\n reportedBy: report.createdBy,\n subject: subjectFromEventRow(report).lex() as ReportOutput['subject'],\n }\n }\n // Partial view for subjects\n\n async subject(subject: string): Promise<SubjectView> {\n if (subject.startsWith('did:')) {\n const repos = await this.repos([subject])\n const repo = repos.get(subject)\n if (repo) {\n return {\n ...repo,\n $type: 'tools.ozone.moderation.defs#repoView',\n }\n } else {\n return {\n $type: 'tools.ozone.moderation.defs#repoViewNotFound',\n did: subject,\n }\n }\n } else {\n const records = await this.records([{ uri: subject }])\n const record = records.get(subject)\n if (record) {\n return {\n ...record,\n $type: 'tools.ozone.moderation.defs#recordView',\n }\n } else {\n return {\n $type: 'tools.ozone.moderation.defs#recordViewNotFound',\n uri: subject,\n }\n }\n }\n }\n\n // Partial view for blobs\n\n async blob(blobs: BlobRef[]): Promise<BlobView[]> {\n if (!blobs.length) return []\n const { ref } = this.db.db.dynamic\n const modStatusResults = await moderationSubjectStatusQueryBuilder(\n this.db.db,\n )\n .where(\n sql<string>`${ref(\n 'moderation_subject_status.blobCids',\n )} @> ${JSON.stringify(blobs.map((blob) => blob.ref.toString()))}`,\n )\n .selectAll()\n .executeTakeFirst()\n const statusByCid = (modStatusResults?.blobCids || [])?.reduce(\n (acc, cur) => Object.assign(acc, { [cur]: modStatusResults }),\n {},\n )\n // Intentionally missing details field, since we don't have any on appview.\n // We also don't know when the blob was created, so we use a canned creation time.\n const unknownTime = new Date(0).toISOString()\n return blobs.map((blob) => {\n const cid = blob.ref.toString()\n const subjectStatus = statusByCid[cid]\n ? this.formatSubjectStatus(statusByCid[cid])\n : undefined\n return {\n cid,\n mimeType: blob.mimeType,\n size: blob.size,\n createdAt: unknownTime,\n moderation: {\n subjectStatus,\n },\n }\n })\n }\n\n async labels(\n subjects: string[],\n includeNeg?: boolean,\n ): Promise<Map<string, Label[]>> {\n const now = new Date().toISOString()\n const labels = new Map<string, Label[]>()\n const res = await this.db.db\n .selectFrom('label')\n .where('label.uri', 'in', subjects)\n .where((qb) =>\n qb.where('label.exp', 'is', null).orWhere('label.exp', '>', now),\n )\n .if(!includeNeg, (qb) => qb.where('neg', '=', false))\n .selectAll()\n .execute()\n\n await Promise.all(\n res.map(async (labelRow) => {\n const signedLabel = await this.formatLabelAndEnsureSig(labelRow)\n\n const current = labels.get(labelRow.uri)\n if (current) current.push(signedLabel)\n else labels.set(labelRow.uri, [signedLabel])\n }),\n )\n return labels\n }\n\n async formatLabelAndEnsureSig(row: LabelRow) {\n const formatted = formatLabel(row)\n if (!!row.sig && row.signingKeyId === this.signingKeyId) {\n return formatted\n }\n const signed = await signLabel(formatted, this.signingKey)\n try {\n await this.db.db\n .updateTable('label')\n .set({ sig: Buffer.from(signed.sig), signingKeyId: this.signingKeyId })\n .where('id', '=', row.id)\n .execute()\n } catch (err) {\n dbLogger.error({ err, label: row }, 'failed to update resigned label')\n }\n return signed\n }\n\n async getSubjectStatus(\n subjects: string[],\n ): Promise<Map<string, ModerationSubjectStatusRowWithHandle>> {\n if (!subjects.length) return new Map()\n\n const parsedSubjects = subjects.map(parseSubjectId)\n\n const builder = moderationSubjectStatusQueryBuilder(this.db.db)\n //\n .where((qb) => {\n for (const sub of parsedSubjects) {\n qb = qb.orWhere((qb) =>\n qb\n .where('moderation_subject_status.did', '=', sub.did)\n .where(\n 'moderation_subject_status.recordPath',\n '=',\n sub.recordPath ?? '',\n ),\n )\n }\n return qb\n })\n\n const [statusRes, accountsByDid] = await Promise.all([\n builder.execute(),\n this.getAccoutInfosByDid(parsedSubjects.map((s) => s.did)),\n ])\n\n return new Map(\n statusRes.map((row): [string, ModerationSubjectStatusRowWithHandle] => {\n const subjectId = formatSubjectId(row.did, row.recordPath)\n const handle = accountsByDid.get(row.did)?.handle ?? INVALID_HANDLE\n return [subjectId, { ...row, handle }]\n }),\n )\n }\n\n formatSubjectStatus(\n status: ModerationSubjectStatusRowWithHandle,\n ): SubjectStatusView {\n const statusView: SubjectStatusView = {\n id: status.id,\n reviewState: status.reviewState,\n createdAt: status.createdAt,\n updatedAt: status.updatedAt,\n comment: status.comment ?? undefined,\n lastReviewedBy: status.lastReviewedBy ?? undefined,\n lastReviewedAt: status.lastReviewedAt ?? undefined,\n lastReportedAt: status.lastReportedAt ?? undefined,\n lastAppealedAt: status.lastAppealedAt ?? undefined,\n muteUntil: status.muteUntil ?? undefined,\n muteReportingUntil: status.muteReportingUntil ?? undefined,\n suspendUntil: status.suspendUntil ?? undefined,\n takendown: status.takendown ?? undefined,\n appealed: status.appealed ?? undefined,\n subjectRepoHandle: status.handle ?? undefined,\n subjectBlobCids: status.blobCids || [],\n tags: status.tags || [],\n priorityScore: status.priorityScore,\n ageAssuranceState: status.ageAssuranceState ?? undefined,\n ageAssuranceUpdatedBy: status.ageAssuranceUpdatedBy ?? undefined,\n subject: subjectFromStatusRow(\n status,\n ).lex() as SubjectStatusView['subject'],\n\n accountStats: {\n // Explicitly typing to allow for easy manipulation (e.g. to strip from tests snapshots)\n $type: 'tools.ozone.moderation.defs#accountStats',\n\n // account_events_stats\n reportCount: status.reportCount ?? undefined,\n appealCount: status.appealCount ?? undefined,\n suspendCount: status.suspendCount ?? undefined,\n takedownCount: status.takedownCount ?? undefined,\n escalateCount: status.escalateCount ?? undefined,\n },\n\n recordsStats: {\n // Explicitly typing to allow for easy manipulation (e.g. to strip from tests snapshots)\n $type: 'tools.ozone.moderation.defs#recordsStats',\n\n // account_record_events_stats\n totalReports: status.totalReports ?? undefined,\n reportedCount: status.reportedCount ?? undefined,\n escalatedCount: status.escalatedCount ?? undefined,\n appealedCount: status.appealedCount ?? undefined,\n\n // account_record_status_stats\n subjectCount: status.subjectCount ?? undefined,\n pendingCount: status.pendingCount ?? undefined,\n processedCount: status.processedCount ?? undefined,\n takendownCount: status.takendownCount ?? undefined,\n },\n }\n\n if (status.recordPath !== '') {\n statusView.hosting = {\n $type: 'tools.ozone.moderation.defs#recordHosting',\n updatedAt: status.hostingUpdatedAt ?? undefined,\n deletedAt: status.hostingDeletedAt ?? undefined,\n status: status.hostingStatus ?? 'unknown',\n }\n } else {\n statusView.hosting = {\n $type: 'tools.ozone.moderation.defs#accountHosting',\n updatedAt: status.hostingUpdatedAt ?? undefined,\n deletedAt: status.hostingDeletedAt ?? undefined,\n status: status.hostingStatus ?? 'unknown',\n deactivatedAt: status.hostingDeactivatedAt ?? undefined,\n reactivatedAt: status.hostingReactivatedAt ?? undefined,\n }\n }\n\n return statusView\n }\n\n async fetchAuthorFeed(actor: string): Promise<FeedViewPost[]> {\n const auth = await this.appviewAuth(ids.AppBskyFeedGetAuthorFeed)\n if (!auth) return []\n const {\n data: { feed },\n } = await this.appviewAgent.app.bsky.feed.getAuthorFeed({ actor }, auth)\n\n return feed\n }\n\n async getProfiles(dids: string[]) {\n const profiles = new Map<string, AppBskyActorDefs.ProfileViewDetailed>()\n\n const auth = await this.appviewAuth(ids.AppBskyActorGetProfiles)\n if (!auth) return profiles\n\n for (const actors of chunkArray(dids, 25)) {\n const { data } = await this.appviewAgent.getProfiles({ actors }, auth)\n\n data.profiles.forEach((profile) => {\n profiles.set(profile.did, profile)\n })\n }\n\n return profiles\n }\n}\n\ntype RecordSubject = { uri: string; cid?: string }\n\ntype SubjectView = ModEventViewDetail['subject']\n// @TODO tidy\n// type SubjectView = ModEventViewDetail['subject'] & ReportViewDetail['subject']\n\ntype RecordInfo = {\n uri: string\n cid: string\n value: Record<string, unknown>\n indexedAt: string\n}\n\nfunction parseSubjectId(subject: string): { did: string; recordPath?: string } {\n if (subject.startsWith('did:')) {\n return { did: subject }\n }\n const uri = new AtUri(subject)\n return { did: uri.hostname, recordPath: `${uri.collection}/${uri.rkey}` }\n}\n\nfunction formatSubjectId(did: string, recordPath?: string) {\n return recordPath ? `at://${did}/${recordPath}` : did\n}\n\nfunction findBlobRefs(value: unknown, refs: BlobRef[] = []) {\n if (value instanceof BlobRef) {\n refs.push(value)\n } else if (Array.isArray(value)) {\n value.forEach((val) => findBlobRefs(val, refs))\n } else if (value && typeof value === 'object') {\n Object.values(value).forEach((val) => findBlobRefs(val, refs))\n }\n return refs\n}\n\nexport function getSelfLabels(details: {\n uri: string | null\n cid: string | null\n record: Record<string, unknown> | null\n}): Label[] {\n const { uri, cid, record } = details\n if (!uri || !cid || !record) return []\n if (!isValidSelfLabels(record.labels)) return []\n const src = new AtUri(uri).host // record creator\n const cts =\n typeof record.createdAt === 'string'\n ? normalizeDatetimeAlways(record.createdAt)\n : new Date(0).toISOString()\n return record.labels.values.map(({ val }) => {\n return { src, uri, cid, val, cts }\n })\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/safelink/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/safelink/service.ts"],"names":[],"mappings":"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","sourcesContent":["import { Selectable } from 'kysely'\nimport { ToolsOzoneSafelinkDefs } from '@atproto/api'\nimport { InvalidRequestError } from '@atproto/xrpc-server'\nimport {\n SafelinkActionType,\n SafelinkPatternType,\n SafelinkReasonType,\n} from '../api/util'\nimport { Database } from '../db'\nimport { SafelinkEvent, SafelinkRule } from '../db/schema/safelink'\n\nexport type SafelinkRuleServiceCreator = (db: Database) => SafelinkRuleService\n\nexport class SafelinkRuleService {\n constructor(public db: Database) {}\n\n static creator() {\n return (db: Database) => new SafelinkRuleService(db)\n }\n\n formatEvent(event: Selectable<SafelinkEvent>): ToolsOzoneSafelinkDefs.Event {\n return {\n id: event.id,\n eventType: event.eventType,\n url: event.url,\n pattern: event.pattern,\n action: event.action,\n reason: event.reason,\n createdBy: event.createdBy,\n createdAt: new Date(event.createdAt).toISOString(),\n comment: event.comment || undefined,\n }\n }\n\n async addRule({\n url,\n pattern,\n action,\n reason,\n createdBy,\n comment,\n }: {\n url: string\n pattern: SafelinkPatternType\n action: SafelinkActionType\n reason: SafelinkReasonType\n createdBy: string\n comment?: string\n }): Promise<Selectable<SafelinkEvent>> {\n const existingRule = await this.getActiveRule(url, pattern)\n if (existingRule) {\n throw new InvalidRequestError(\n 'A rule for this URL/domain already exists',\n 'RuleAlreadyExists',\n )\n }\n\n const now = new Date().toISOString()\n const rule = {\n url,\n pattern,\n action,\n reason,\n createdBy,\n comment: comment || null,\n createdAt: now,\n }\n\n return await this.db.transaction(async (txn) => {\n const event = await txn.db\n .insertInto('safelink_event')\n .values({\n eventType: 'addRule',\n ...rule,\n })\n .returningAll()\n .executeTakeFirstOrThrow()\n\n await txn.db\n .insertInto('safelink_rule')\n .values({ ...rule, updatedAt: now })\n .execute()\n\n return event\n })\n }\n\n async updateRule({\n url,\n pattern,\n action,\n reason,\n createdBy,\n comment,\n }: {\n url: string\n pattern: SafelinkPatternType\n action: SafelinkActionType\n reason: SafelinkReasonType\n createdBy: string\n comment?: string\n }): Promise<Selectable<SafelinkEvent>> {\n const existingRule = await this.getActiveRule(url, pattern)\n if (!existingRule) {\n throw new InvalidRequestError(\n 'No active rule found for this URL/domain',\n 'RuleNotFound',\n )\n }\n\n const now = new Date().toISOString()\n const rule = {\n action,\n reason,\n createdBy,\n comment: comment || null,\n }\n\n return await this.db.transaction(async (txn) => {\n const event = await txn.db\n .insertInto('safelink_event')\n .values({\n createdAt: now,\n url: existingRule.url,\n pattern: existingRule.pattern,\n eventType: 'updateRule',\n ...rule,\n })\n .returningAll()\n .executeTakeFirstOrThrow()\n\n await txn.db\n .updateTable('safelink_rule')\n .set(rule)\n .where('url', '=', existingRule.url)\n .where('pattern', '=', existingRule.pattern)\n .execute()\n\n return event\n })\n }\n\n async removeRule({\n url,\n pattern,\n createdBy,\n comment,\n }: {\n url: string\n pattern: SafelinkPatternType\n createdBy: string\n comment?: string\n }): Promise<Selectable<SafelinkEvent>> {\n const existingRule = await this.getActiveRule(url, pattern)\n if (!existingRule) {\n throw new InvalidRequestError(\n 'No active rule found for this URL/domain',\n 'RuleNotFound',\n )\n }\n\n return await this.db.transaction(async (txn) => {\n const event = await txn.db\n .insertInto('safelink_event')\n .values({\n eventType: 'removeRule',\n url,\n pattern,\n action: existingRule.action,\n reason: existingRule.reason,\n createdBy,\n comment: comment || null,\n createdAt: new Date().toISOString(),\n })\n .returningAll()\n .executeTakeFirstOrThrow()\n\n await txn.db\n .deleteFrom('safelink_rule')\n .where('url', '=', url)\n .where('pattern', '=', pattern)\n .execute()\n\n return event\n })\n }\n\n async getActiveRule(url: string, pattern: SafelinkPatternType) {\n const rule = await this.db.db\n .selectFrom('safelink_rule')\n .selectAll()\n .where('url', '=', url)\n .where('pattern', '=', pattern)\n .executeTakeFirst()\n\n if (!rule) {\n return null\n }\n\n return rule\n }\n\n async getActiveRules({\n cursor,\n limit = 50,\n urls,\n patternType,\n actions,\n reason,\n createdBy,\n direction = 'desc',\n }: {\n cursor?: string\n limit?: number\n urls?: string[]\n patternType?: SafelinkPatternType\n actions?: SafelinkActionType[]\n reason?: SafelinkReasonType\n createdBy?: string\n direction?: 'asc' | 'desc'\n } = {}): Promise<{\n rules: Selectable<SafelinkRule>[]\n cursor?: string\n }> {\n let query = this.db.db.selectFrom('safelink_rule').selectAll()\n\n if (urls && urls.length > 0) {\n query = query.where('url', 'in', urls)\n }\n\n if (patternType) {\n query = query.where('pattern', '=', patternType)\n }\n\n if (actions && actions.length > 0) {\n query = query.where('action', 'in', actions)\n }\n\n if (reason) {\n query = query.where('reason', '=', reason)\n }\n\n if (createdBy) {\n query = query.where('createdBy', '=', createdBy)\n }\n\n if (cursor) {\n query = query.where(\n 'id',\n direction === 'asc' ? '>' : '<',\n parseInt(cursor, 10),\n )\n }\n\n const rules = await query.orderBy('id', direction).limit(limit).execute()\n\n return {\n rules,\n cursor: rules.at(-1)?.id?.toString(),\n }\n }\n\n async queryEvents({\n cursor,\n limit = 50,\n urls,\n patternType,\n direction = 'desc',\n }: {\n cursor?: string\n limit?: number\n urls?: string[]\n patternType?: SafelinkPatternType\n direction?: 'asc' | 'desc'\n } = {}): Promise<{\n events: Selectable<SafelinkEvent>[]\n cursor?: string\n }> {\n let query = this.db.db.selectFrom('safelink_event').selectAll()\n\n if (urls && urls.length > 0) {\n query = query.where('url', 'in', urls)\n }\n\n if (patternType) {\n query = query.where('pattern', '=', patternType)\n }\n\n if (cursor) {\n query = query.where(\n 'id',\n direction === 'asc' ? '>' : '<',\n parseInt(cursor, 10),\n )\n }\n\n const events = await query.orderBy('id', direction).limit(limit).execute()\n\n return {\n events,\n cursor: events.at(-1)?.id?.toString(),\n }\n }\n}\n"]}