@atproto/bsky 0.0.28 → 0.0.30

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 (303) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/LICENSE.txt +1 -1
  3. package/dist/api/app/bsky/feed/getAuthorFeed.d.ts +1 -0
  4. package/dist/auto-moderator/index.d.ts +1 -14
  5. package/dist/context.d.ts +0 -3
  6. package/dist/db/index.js +43762 -12377
  7. package/dist/db/index.js.map +3 -3
  8. package/dist/db/pagination.d.ts +1 -0
  9. package/dist/index.d.ts +0 -4
  10. package/dist/index.js +2422 -2135
  11. package/dist/index.js.map +3 -3
  12. package/dist/indexer/config.d.ts +0 -8
  13. package/dist/lexicon/index.d.ts +0 -2
  14. package/dist/lexicon/lexicons.d.ts +134 -52
  15. package/dist/lexicon/types/app/bsky/actor/defs.d.ts +1 -0
  16. package/dist/lexicon/types/app/bsky/actor/getPreferences.d.ts +2 -2
  17. package/dist/lexicon/types/app/bsky/actor/getProfile.d.ts +2 -2
  18. package/dist/lexicon/types/app/bsky/actor/getProfiles.d.ts +2 -2
  19. package/dist/lexicon/types/app/bsky/actor/getSuggestions.d.ts +2 -2
  20. package/dist/lexicon/types/app/bsky/actor/searchActors.d.ts +2 -2
  21. package/dist/lexicon/types/app/bsky/actor/searchActorsTypeahead.d.ts +2 -2
  22. package/dist/lexicon/types/app/bsky/feed/describeFeedGenerator.d.ts +2 -2
  23. package/dist/lexicon/types/app/bsky/feed/getActorFeeds.d.ts +2 -2
  24. package/dist/lexicon/types/app/bsky/feed/getActorLikes.d.ts +2 -2
  25. package/dist/lexicon/types/app/bsky/feed/getAuthorFeed.d.ts +2 -2
  26. package/dist/lexicon/types/app/bsky/feed/getFeed.d.ts +2 -2
  27. package/dist/lexicon/types/app/bsky/feed/getFeedGenerator.d.ts +2 -2
  28. package/dist/lexicon/types/app/bsky/feed/getFeedGenerators.d.ts +2 -2
  29. package/dist/lexicon/types/app/bsky/feed/getFeedSkeleton.d.ts +2 -2
  30. package/dist/lexicon/types/app/bsky/feed/getLikes.d.ts +2 -2
  31. package/dist/lexicon/types/app/bsky/feed/getListFeed.d.ts +2 -2
  32. package/dist/lexicon/types/app/bsky/feed/getPostThread.d.ts +2 -2
  33. package/dist/lexicon/types/app/bsky/feed/getPosts.d.ts +2 -2
  34. package/dist/lexicon/types/app/bsky/feed/getRepostedBy.d.ts +2 -2
  35. package/dist/lexicon/types/app/bsky/feed/getSuggestedFeeds.d.ts +2 -2
  36. package/dist/lexicon/types/app/bsky/feed/getTimeline.d.ts +2 -2
  37. package/dist/lexicon/types/app/bsky/feed/searchPosts.d.ts +2 -2
  38. package/dist/lexicon/types/app/bsky/graph/getBlocks.d.ts +2 -2
  39. package/dist/lexicon/types/app/bsky/graph/getFollowers.d.ts +2 -2
  40. package/dist/lexicon/types/app/bsky/graph/getFollows.d.ts +2 -2
  41. package/dist/lexicon/types/app/bsky/graph/getList.d.ts +2 -2
  42. package/dist/lexicon/types/app/bsky/graph/getListBlocks.d.ts +2 -2
  43. package/dist/lexicon/types/app/bsky/graph/getListMutes.d.ts +2 -2
  44. package/dist/lexicon/types/app/bsky/graph/getLists.d.ts +2 -2
  45. package/dist/lexicon/types/app/bsky/graph/getMutes.d.ts +2 -2
  46. package/dist/lexicon/types/app/bsky/graph/getRelationships.d.ts +2 -2
  47. package/dist/lexicon/types/app/bsky/graph/getSuggestedFollowsByActor.d.ts +2 -2
  48. package/dist/lexicon/types/app/bsky/notification/getUnreadCount.d.ts +2 -2
  49. package/dist/lexicon/types/app/bsky/notification/listNotifications.d.ts +2 -2
  50. package/dist/lexicon/types/app/bsky/unspecced/getPopularFeedGenerators.d.ts +2 -2
  51. package/dist/lexicon/types/app/bsky/unspecced/getTaggedSuggestions.d.ts +2 -2
  52. package/dist/lexicon/types/app/bsky/unspecced/searchActorsSkeleton.d.ts +2 -2
  53. package/dist/lexicon/types/app/bsky/unspecced/searchPostsSkeleton.d.ts +2 -2
  54. package/dist/lexicon/types/com/atproto/admin/createCommunicationTemplate.d.ts +2 -2
  55. package/dist/lexicon/types/com/atproto/admin/defs.d.ts +2 -2
  56. package/dist/lexicon/types/com/atproto/admin/emitModerationEvent.d.ts +2 -2
  57. package/dist/lexicon/types/com/atproto/admin/getAccountInfo.d.ts +2 -2
  58. package/dist/lexicon/types/com/atproto/admin/getAccountInfos.d.ts +2 -2
  59. package/dist/lexicon/types/com/atproto/admin/getInviteCodes.d.ts +2 -2
  60. package/dist/lexicon/types/com/atproto/admin/getModerationEvent.d.ts +2 -2
  61. package/dist/lexicon/types/com/atproto/admin/getRecord.d.ts +2 -2
  62. package/dist/lexicon/types/com/atproto/admin/getRepo.d.ts +2 -2
  63. package/dist/lexicon/types/com/atproto/admin/getSubjectStatus.d.ts +2 -2
  64. package/dist/lexicon/types/com/atproto/admin/listCommunicationTemplates.d.ts +2 -2
  65. package/dist/lexicon/types/com/atproto/admin/queryModerationEvents.d.ts +9 -2
  66. package/dist/lexicon/types/com/atproto/admin/queryModerationStatuses.d.ts +2 -2
  67. package/dist/lexicon/types/com/atproto/admin/searchRepos.d.ts +2 -2
  68. package/dist/lexicon/types/com/atproto/admin/sendEmail.d.ts +2 -2
  69. package/dist/lexicon/types/com/atproto/admin/updateCommunicationTemplate.d.ts +2 -2
  70. package/dist/lexicon/types/com/atproto/admin/updateSubjectStatus.d.ts +2 -2
  71. package/dist/lexicon/types/com/atproto/identity/resolveHandle.d.ts +2 -2
  72. package/dist/lexicon/types/com/atproto/label/queryLabels.d.ts +2 -2
  73. package/dist/lexicon/types/com/atproto/moderation/createReport.d.ts +2 -2
  74. package/dist/lexicon/types/com/atproto/repo/createRecord.d.ts +2 -2
  75. package/dist/lexicon/types/com/atproto/repo/describeRepo.d.ts +2 -2
  76. package/dist/lexicon/types/com/atproto/repo/getRecord.d.ts +2 -2
  77. package/dist/lexicon/types/com/atproto/repo/listRecords.d.ts +2 -2
  78. package/dist/lexicon/types/com/atproto/repo/putRecord.d.ts +2 -2
  79. package/dist/lexicon/types/com/atproto/repo/uploadBlob.d.ts +2 -2
  80. package/dist/lexicon/types/com/atproto/server/createAccount.d.ts +2 -2
  81. package/dist/lexicon/types/com/atproto/server/createAppPassword.d.ts +2 -2
  82. package/dist/lexicon/types/com/atproto/server/createInviteCode.d.ts +2 -2
  83. package/dist/lexicon/types/com/atproto/server/createInviteCodes.d.ts +2 -2
  84. package/dist/lexicon/types/com/atproto/server/createSession.d.ts +2 -2
  85. package/dist/lexicon/types/com/atproto/server/describeServer.d.ts +2 -2
  86. package/dist/lexicon/types/com/atproto/server/getAccountInviteCodes.d.ts +2 -2
  87. package/dist/lexicon/types/com/atproto/server/getSession.d.ts +2 -2
  88. package/dist/lexicon/types/com/atproto/server/listAppPasswords.d.ts +2 -2
  89. package/dist/lexicon/types/com/atproto/server/refreshSession.d.ts +2 -2
  90. package/dist/lexicon/types/com/atproto/server/requestEmailUpdate.d.ts +2 -2
  91. package/dist/lexicon/types/com/atproto/server/reserveSigningKey.d.ts +2 -2
  92. package/dist/lexicon/types/com/atproto/sync/getBlob.d.ts +2 -2
  93. package/dist/lexicon/types/com/atproto/sync/getBlocks.d.ts +2 -2
  94. package/dist/lexicon/types/com/atproto/sync/getCheckout.d.ts +2 -2
  95. package/dist/lexicon/types/com/atproto/sync/getHead.d.ts +2 -2
  96. package/dist/lexicon/types/com/atproto/sync/getLatestCommit.d.ts +2 -2
  97. package/dist/lexicon/types/com/atproto/sync/getRecord.d.ts +2 -2
  98. package/dist/lexicon/types/com/atproto/sync/getRepo.d.ts +2 -2
  99. package/dist/lexicon/types/com/atproto/sync/listBlobs.d.ts +2 -2
  100. package/dist/lexicon/types/com/atproto/sync/listRepos.d.ts +2 -2
  101. package/dist/lexicon/types/com/atproto/temp/checkSignupQueue.d.ts +2 -2
  102. package/dist/lexicon/types/com/atproto/temp/fetchLabels.d.ts +2 -2
  103. package/dist/lexicon/types/com/atproto/temp/importRepo.d.ts +2 -2
  104. package/dist/lexicon/types/com/atproto/temp/transferAccount.d.ts +2 -2
  105. package/dist/services/feed/index.d.ts +2 -1
  106. package/package.json +8 -7
  107. package/src/api/app/bsky/actor/getSuggestions.ts +1 -1
  108. package/src/api/app/bsky/actor/searchActors.ts +1 -0
  109. package/src/api/app/bsky/feed/getActorFeeds.ts +6 -0
  110. package/src/api/app/bsky/feed/getActorLikes.ts +4 -0
  111. package/src/api/app/bsky/feed/getAuthorFeed.ts +16 -4
  112. package/src/api/app/bsky/feed/getFeed.ts +8 -5
  113. package/src/api/app/bsky/feed/getLikes.ts +4 -0
  114. package/src/api/app/bsky/feed/getListFeed.ts +4 -0
  115. package/src/api/app/bsky/feed/getRepostedBy.ts +4 -0
  116. package/src/api/app/bsky/feed/getSuggestedFeeds.ts +1 -1
  117. package/src/api/app/bsky/feed/getTimeline.ts +4 -0
  118. package/src/api/app/bsky/feed/searchPosts.ts +1 -0
  119. package/src/api/app/bsky/graph/getBlocks.ts +7 -0
  120. package/src/api/app/bsky/graph/getFollowers.ts +4 -0
  121. package/src/api/app/bsky/graph/getFollows.ts +4 -0
  122. package/src/api/app/bsky/graph/getList.ts +4 -0
  123. package/src/api/app/bsky/graph/getListBlocks.ts +4 -0
  124. package/src/api/app/bsky/graph/getListMutes.ts +7 -0
  125. package/src/api/app/bsky/graph/getLists.ts +7 -0
  126. package/src/api/app/bsky/graph/getMutes.ts +7 -0
  127. package/src/api/app/bsky/notification/listNotifications.ts +3 -0
  128. package/src/api/app/bsky/unspecced/getPopularFeedGenerators.ts +7 -1
  129. package/src/api/index.ts +0 -6
  130. package/src/auto-moderator/index.ts +9 -176
  131. package/src/context.ts +0 -6
  132. package/src/db/pagination.ts +3 -0
  133. package/src/index.ts +1 -6
  134. package/src/indexer/config.ts +0 -29
  135. package/src/lexicon/index.ts +0 -12
  136. package/src/lexicon/lexicons.ts +382 -173
  137. package/src/lexicon/types/app/bsky/actor/defs.ts +2 -0
  138. package/src/lexicon/types/app/bsky/actor/getPreferences.ts +2 -2
  139. package/src/lexicon/types/app/bsky/actor/getProfile.ts +3 -2
  140. package/src/lexicon/types/app/bsky/actor/getProfiles.ts +2 -2
  141. package/src/lexicon/types/app/bsky/actor/getSuggestions.ts +2 -2
  142. package/src/lexicon/types/app/bsky/actor/profile.ts +3 -0
  143. package/src/lexicon/types/app/bsky/actor/putPreferences.ts +1 -1
  144. package/src/lexicon/types/app/bsky/actor/searchActors.ts +2 -2
  145. package/src/lexicon/types/app/bsky/actor/searchActorsTypeahead.ts +2 -2
  146. package/src/lexicon/types/app/bsky/embed/external.ts +1 -0
  147. package/src/lexicon/types/app/bsky/embed/images.ts +4 -0
  148. package/src/lexicon/types/app/bsky/embed/record.ts +1 -0
  149. package/src/lexicon/types/app/bsky/feed/defs.ts +1 -0
  150. package/src/lexicon/types/app/bsky/feed/describeFeedGenerator.ts +2 -2
  151. package/src/lexicon/types/app/bsky/feed/getActorFeeds.ts +2 -2
  152. package/src/lexicon/types/app/bsky/feed/getActorLikes.ts +2 -2
  153. package/src/lexicon/types/app/bsky/feed/getAuthorFeed.ts +3 -2
  154. package/src/lexicon/types/app/bsky/feed/getFeed.ts +2 -2
  155. package/src/lexicon/types/app/bsky/feed/getFeedGenerator.ts +5 -2
  156. package/src/lexicon/types/app/bsky/feed/getFeedGenerators.ts +2 -2
  157. package/src/lexicon/types/app/bsky/feed/getFeedSkeleton.ts +3 -2
  158. package/src/lexicon/types/app/bsky/feed/getLikes.ts +4 -2
  159. package/src/lexicon/types/app/bsky/feed/getListFeed.ts +3 -2
  160. package/src/lexicon/types/app/bsky/feed/getPostThread.ts +5 -2
  161. package/src/lexicon/types/app/bsky/feed/getPosts.ts +3 -2
  162. package/src/lexicon/types/app/bsky/feed/getRepostedBy.ts +4 -2
  163. package/src/lexicon/types/app/bsky/feed/getSuggestedFeeds.ts +2 -2
  164. package/src/lexicon/types/app/bsky/feed/getTimeline.ts +3 -2
  165. package/src/lexicon/types/app/bsky/feed/post.ts +5 -1
  166. package/src/lexicon/types/app/bsky/feed/searchPosts.ts +2 -2
  167. package/src/lexicon/types/app/bsky/feed/threadgate.ts +1 -0
  168. package/src/lexicon/types/app/bsky/graph/block.ts +1 -0
  169. package/src/lexicon/types/app/bsky/graph/getBlocks.ts +2 -2
  170. package/src/lexicon/types/app/bsky/graph/getFollowers.ts +2 -2
  171. package/src/lexicon/types/app/bsky/graph/getFollows.ts +2 -2
  172. package/src/lexicon/types/app/bsky/graph/getList.ts +3 -2
  173. package/src/lexicon/types/app/bsky/graph/getListBlocks.ts +2 -2
  174. package/src/lexicon/types/app/bsky/graph/getListMutes.ts +2 -2
  175. package/src/lexicon/types/app/bsky/graph/getLists.ts +3 -2
  176. package/src/lexicon/types/app/bsky/graph/getMutes.ts +2 -2
  177. package/src/lexicon/types/app/bsky/graph/getRelationships.ts +4 -2
  178. package/src/lexicon/types/app/bsky/graph/getSuggestedFollowsByActor.ts +2 -2
  179. package/src/lexicon/types/app/bsky/graph/list.ts +1 -0
  180. package/src/lexicon/types/app/bsky/graph/listblock.ts +1 -0
  181. package/src/lexicon/types/app/bsky/graph/listitem.ts +2 -0
  182. package/src/lexicon/types/app/bsky/graph/muteActor.ts +1 -1
  183. package/src/lexicon/types/app/bsky/graph/muteActorList.ts +1 -1
  184. package/src/lexicon/types/app/bsky/graph/unmuteActor.ts +1 -1
  185. package/src/lexicon/types/app/bsky/graph/unmuteActorList.ts +1 -1
  186. package/src/lexicon/types/app/bsky/notification/getUnreadCount.ts +2 -2
  187. package/src/lexicon/types/app/bsky/notification/listNotifications.ts +2 -2
  188. package/src/lexicon/types/app/bsky/notification/registerPush.ts +1 -1
  189. package/src/lexicon/types/app/bsky/notification/updateSeen.ts +1 -1
  190. package/src/lexicon/types/app/bsky/richtext/facet.ts +5 -4
  191. package/src/lexicon/types/app/bsky/unspecced/getPopularFeedGenerators.ts +2 -2
  192. package/src/lexicon/types/app/bsky/unspecced/getTaggedSuggestions.ts +2 -2
  193. package/src/lexicon/types/app/bsky/unspecced/searchActorsSkeleton.ts +2 -2
  194. package/src/lexicon/types/app/bsky/unspecced/searchPostsSkeleton.ts +2 -2
  195. package/src/lexicon/types/com/atproto/admin/createCommunicationTemplate.ts +2 -2
  196. package/src/lexicon/types/com/atproto/admin/defs.ts +2 -0
  197. package/src/lexicon/types/com/atproto/admin/deleteAccount.ts +1 -1
  198. package/src/lexicon/types/com/atproto/admin/deleteCommunicationTemplate.ts +1 -1
  199. package/src/lexicon/types/com/atproto/admin/disableAccountInvites.ts +1 -1
  200. package/src/lexicon/types/com/atproto/admin/disableInviteCodes.ts +1 -1
  201. package/src/lexicon/types/com/atproto/admin/emitModerationEvent.ts +2 -2
  202. package/src/lexicon/types/com/atproto/admin/enableAccountInvites.ts +1 -1
  203. package/src/lexicon/types/com/atproto/admin/getAccountInfo.ts +2 -2
  204. package/src/lexicon/types/com/atproto/admin/getAccountInfos.ts +2 -2
  205. package/src/lexicon/types/com/atproto/admin/getInviteCodes.ts +2 -2
  206. package/src/lexicon/types/com/atproto/admin/getModerationEvent.ts +2 -2
  207. package/src/lexicon/types/com/atproto/admin/getRecord.ts +2 -2
  208. package/src/lexicon/types/com/atproto/admin/getRepo.ts +2 -2
  209. package/src/lexicon/types/com/atproto/admin/getSubjectStatus.ts +2 -2
  210. package/src/lexicon/types/com/atproto/admin/listCommunicationTemplates.ts +2 -2
  211. package/src/lexicon/types/com/atproto/admin/queryModerationEvents.ts +15 -2
  212. package/src/lexicon/types/com/atproto/admin/queryModerationStatuses.ts +2 -2
  213. package/src/lexicon/types/com/atproto/admin/searchRepos.ts +2 -2
  214. package/src/lexicon/types/com/atproto/admin/sendEmail.ts +2 -2
  215. package/src/lexicon/types/com/atproto/admin/updateAccountEmail.ts +1 -1
  216. package/src/lexicon/types/com/atproto/admin/updateAccountHandle.ts +1 -1
  217. package/src/lexicon/types/com/atproto/admin/updateCommunicationTemplate.ts +2 -2
  218. package/src/lexicon/types/com/atproto/admin/updateSubjectStatus.ts +2 -2
  219. package/src/lexicon/types/com/atproto/identity/resolveHandle.ts +2 -2
  220. package/src/lexicon/types/com/atproto/identity/updateHandle.ts +2 -1
  221. package/src/lexicon/types/com/atproto/label/queryLabels.ts +2 -2
  222. package/src/lexicon/types/com/atproto/label/subscribeLabels.ts +1 -1
  223. package/src/lexicon/types/com/atproto/moderation/createReport.ts +3 -2
  224. package/src/lexicon/types/com/atproto/repo/applyWrites.ts +7 -6
  225. package/src/lexicon/types/com/atproto/repo/createRecord.ts +6 -6
  226. package/src/lexicon/types/com/atproto/repo/deleteRecord.ts +3 -3
  227. package/src/lexicon/types/com/atproto/repo/describeRepo.ts +5 -2
  228. package/src/lexicon/types/com/atproto/repo/getRecord.ts +3 -3
  229. package/src/lexicon/types/com/atproto/repo/listRecords.ts +2 -2
  230. package/src/lexicon/types/com/atproto/repo/putRecord.ts +6 -6
  231. package/src/lexicon/types/com/atproto/repo/uploadBlob.ts +2 -2
  232. package/src/lexicon/types/com/atproto/server/confirmEmail.ts +1 -1
  233. package/src/lexicon/types/com/atproto/server/createAccount.ts +10 -2
  234. package/src/lexicon/types/com/atproto/server/createAppPassword.ts +3 -2
  235. package/src/lexicon/types/com/atproto/server/createInviteCode.ts +2 -2
  236. package/src/lexicon/types/com/atproto/server/createInviteCodes.ts +2 -2
  237. package/src/lexicon/types/com/atproto/server/createSession.ts +2 -2
  238. package/src/lexicon/types/com/atproto/server/deleteAccount.ts +1 -1
  239. package/src/lexicon/types/com/atproto/server/deleteSession.ts +1 -1
  240. package/src/lexicon/types/com/atproto/server/describeServer.ts +5 -2
  241. package/src/lexicon/types/com/atproto/server/getAccountInviteCodes.ts +3 -2
  242. package/src/lexicon/types/com/atproto/server/getSession.ts +2 -2
  243. package/src/lexicon/types/com/atproto/server/listAppPasswords.ts +2 -2
  244. package/src/lexicon/types/com/atproto/server/refreshSession.ts +2 -2
  245. package/src/lexicon/types/com/atproto/server/requestAccountDelete.ts +1 -1
  246. package/src/lexicon/types/com/atproto/server/requestEmailConfirmation.ts +1 -1
  247. package/src/lexicon/types/com/atproto/server/requestEmailUpdate.ts +2 -2
  248. package/src/lexicon/types/com/atproto/server/requestPasswordReset.ts +1 -1
  249. package/src/lexicon/types/com/atproto/server/reserveSigningKey.ts +4 -4
  250. package/src/lexicon/types/com/atproto/server/resetPassword.ts +1 -1
  251. package/src/lexicon/types/com/atproto/server/revokeAppPassword.ts +1 -1
  252. package/src/lexicon/types/com/atproto/server/updateEmail.ts +1 -1
  253. package/src/lexicon/types/com/atproto/sync/getBlob.ts +3 -3
  254. package/src/lexicon/types/com/atproto/sync/getBlocks.ts +2 -2
  255. package/src/lexicon/types/com/atproto/sync/getCheckout.ts +2 -2
  256. package/src/lexicon/types/com/atproto/sync/getHead.ts +2 -2
  257. package/src/lexicon/types/com/atproto/sync/getLatestCommit.ts +2 -2
  258. package/src/lexicon/types/com/atproto/sync/getRecord.ts +3 -2
  259. package/src/lexicon/types/com/atproto/sync/getRepo.ts +3 -3
  260. package/src/lexicon/types/com/atproto/sync/listBlobs.ts +2 -2
  261. package/src/lexicon/types/com/atproto/sync/listRepos.ts +3 -2
  262. package/src/lexicon/types/com/atproto/sync/notifyOfUpdate.ts +2 -2
  263. package/src/lexicon/types/com/atproto/sync/requestCrawl.ts +2 -2
  264. package/src/lexicon/types/com/atproto/sync/subscribeRepos.ts +17 -5
  265. package/src/lexicon/types/com/atproto/temp/checkSignupQueue.ts +2 -2
  266. package/src/lexicon/types/com/atproto/temp/fetchLabels.ts +2 -2
  267. package/src/lexicon/types/com/atproto/temp/importRepo.ts +2 -2
  268. package/src/lexicon/types/com/atproto/temp/pushBlob.ts +1 -1
  269. package/src/lexicon/types/com/atproto/temp/requestPhoneVerification.ts +1 -1
  270. package/src/lexicon/types/com/atproto/temp/transferAccount.ts +2 -2
  271. package/src/logger.ts +32 -0
  272. package/src/services/feed/index.ts +10 -4
  273. package/src/services/feed/views.ts +3 -1
  274. package/tests/auto-moderator/labeler.test.ts +2 -0
  275. package/tests/feed-generation.test.ts +0 -6
  276. package/tests/views/author-feed.test.ts +29 -9
  277. package/tests/views/notifications.test.ts +9 -0
  278. package/tests/views/timeline.test.ts +8 -0
  279. package/dist/api/app/bsky/feed/describeFeedGenerator.d.ts +0 -3
  280. package/dist/api/app/bsky/feed/getFeedSkeleton.d.ts +0 -3
  281. package/dist/api/app/bsky/unspecced/getTimelineSkeleton.d.ts +0 -3
  282. package/dist/auto-moderator/abyss.d.ts +0 -48
  283. package/dist/auto-moderator/fuzzy-matcher.d.ts +0 -14
  284. package/dist/feed-gen/bsky-team.d.ts +0 -3
  285. package/dist/feed-gen/hot-classic.d.ts +0 -3
  286. package/dist/feed-gen/index.d.ts +0 -2
  287. package/dist/feed-gen/mutuals.d.ts +0 -3
  288. package/dist/feed-gen/types.d.ts +0 -15
  289. package/dist/lexicon/types/app/bsky/unspecced/getTimelineSkeleton.d.ts +0 -35
  290. package/src/api/app/bsky/feed/describeFeedGenerator.ts +0 -21
  291. package/src/api/app/bsky/feed/getFeedSkeleton.ts +0 -30
  292. package/src/api/app/bsky/unspecced/getTimelineSkeleton.ts +0 -26
  293. package/src/auto-moderator/abyss.ts +0 -114
  294. package/src/auto-moderator/fuzzy-matcher.ts +0 -126
  295. package/src/feed-gen/bsky-team.ts +0 -42
  296. package/src/feed-gen/hot-classic.ts +0 -55
  297. package/src/feed-gen/index.ts +0 -17
  298. package/src/feed-gen/mutuals.ts +0 -57
  299. package/src/feed-gen/types.ts +0 -32
  300. package/src/lexicon/types/app/bsky/unspecced/getTimelineSkeleton.ts +0 -49
  301. package/tests/algos/hot-classic.test.ts +0 -87
  302. package/tests/auto-moderator/fuzzy-matcher.test.ts +0 -163
  303. package/tests/auto-moderator/takedowns.test.ts +0 -202
@@ -1,202 +0,0 @@
1
- import fs from 'fs/promises'
2
- import { TestNetwork, SeedClient, ImageRef, usersSeed } from '@atproto/dev-env'
3
- import { AtpAgent } from '@atproto/api'
4
- import { AutoModerator } from '../../src/auto-moderator'
5
- import { sha256RawToCid } from '@atproto/common'
6
- import { CID } from 'multiformats/cid'
7
- import { AtUri } from '@atproto/syntax'
8
- import { ImageFlagger } from '../../src/auto-moderator/abyss'
9
- import { ImageInvalidator } from '../../src/image/invalidator'
10
- import { sha256 } from '@atproto/crypto'
11
- import { ids } from '../../src/lexicon/lexicons'
12
- import { TestOzone } from '@atproto/dev-env/src/ozone'
13
- import { PrimaryDatabase } from '../../src'
14
-
15
- // outside of test suite so that TestLabeler can access them
16
- let badCid1: CID | undefined = undefined
17
- let badCid2: CID | undefined = undefined
18
-
19
- describe('takedowner', () => {
20
- let network: TestNetwork
21
- let ozone: TestOzone
22
- let bskyDb: PrimaryDatabase
23
- let autoMod: AutoModerator
24
- let testInvalidator: TestInvalidator
25
- let pdsAgent: AtpAgent
26
- let sc: SeedClient
27
- let alice: string
28
- let badBlob1: ImageRef
29
- let badBlob2: ImageRef
30
- let goodBlob: ImageRef
31
-
32
- beforeAll(async () => {
33
- testInvalidator = new TestInvalidator()
34
- network = await TestNetwork.create({
35
- dbPostgresSchema: 'bsky_automod_takedown',
36
- bsky: {
37
- imgInvalidator: testInvalidator,
38
- },
39
- })
40
- ozone = network.ozone
41
- bskyDb = network.bsky.ctx.db.getPrimary()
42
- autoMod = network.bsky.indexer.ctx.autoMod
43
- autoMod.imageFlagger = new TestFlagger()
44
- pdsAgent = new AtpAgent({ service: network.pds.url })
45
- sc = network.getSeedClient()
46
- await usersSeed(sc)
47
- await network.processAll()
48
- alice = sc.dids.alice
49
- const fileBytes1 = await fs.readFile(
50
- '../dev-env/src/seed/img/key-portrait-small.jpg',
51
- )
52
- const fileBytes2 = await fs.readFile(
53
- '../dev-env/src/seed/img/key-portrait-large.jpg',
54
- )
55
- badCid1 = sha256RawToCid(await sha256(fileBytes1))
56
- badCid2 = sha256RawToCid(await sha256(fileBytes2))
57
- goodBlob = await sc.uploadFile(
58
- alice,
59
- '../dev-env/src/seed/img/key-landscape-small.jpg',
60
- 'image/jpeg',
61
- )
62
- badBlob1 = await sc.uploadFile(
63
- alice,
64
- '../dev-env/src/seed/img/key-portrait-small.jpg',
65
- 'image/jpeg',
66
- )
67
- badBlob2 = await sc.uploadFile(
68
- alice,
69
- '../dev-env/src/seed/img/key-portrait-large.jpg',
70
- 'image/jpeg',
71
- )
72
- })
73
-
74
- afterAll(async () => {
75
- await network.close()
76
- })
77
-
78
- it('takes down flagged content in posts', async () => {
79
- const post = await sc.post(alice, 'blah', undefined, [goodBlob, badBlob1])
80
- await network.processAll()
81
- const [modStatus, takedownEvent] = await Promise.all([
82
- ozone.ctx.db.db
83
- .selectFrom('moderation_subject_status')
84
- .where('did', '=', alice)
85
- .where(
86
- 'recordPath',
87
- '=',
88
- `${post.ref.uri.collection}/${post.ref.uri.rkey}`,
89
- )
90
- .select(['takendown', 'id'])
91
- .executeTakeFirst(),
92
- ozone.ctx.db.db
93
- .selectFrom('moderation_event')
94
- .where('subjectDid', '=', alice)
95
- .where('action', '=', 'com.atproto.admin.defs#modEventTakedown')
96
- .selectAll()
97
- .executeTakeFirst(),
98
- ])
99
- if (!modStatus || !takedownEvent) {
100
- throw new Error('expected mod action')
101
- }
102
- expect(modStatus.takendown).toEqual(true)
103
- const record = await bskyDb.db
104
- .selectFrom('record')
105
- .where('uri', '=', post.ref.uriStr)
106
- .select('takedownRef')
107
- .executeTakeFirst()
108
- expect(record?.takedownRef).toEqual(`BSKY-TAKEDOWN-${takedownEvent.id}`)
109
-
110
- const recordPds = await network.pds.ctx.actorStore.read(
111
- post.ref.uri.hostname,
112
- (store) =>
113
- store.db.db
114
- .selectFrom('record')
115
- .where('uri', '=', post.ref.uriStr)
116
- .select('takedownRef')
117
- .executeTakeFirst(),
118
- )
119
- expect(recordPds?.takedownRef).toEqual(`BSKY-TAKEDOWN-${takedownEvent.id}`)
120
-
121
- expect(testInvalidator.invalidated.length).toBe(1)
122
- expect(testInvalidator.invalidated[0].subject).toBe(
123
- badBlob1.image.ref.toString(),
124
- )
125
- })
126
-
127
- it('takes down flagged content in profiles', async () => {
128
- const res = await pdsAgent.api.com.atproto.repo.putRecord(
129
- {
130
- repo: alice,
131
- collection: ids.AppBskyActorProfile,
132
- rkey: 'self',
133
- record: {
134
- avatar: badBlob2.image,
135
- },
136
- },
137
- { headers: sc.getHeaders(alice), encoding: 'application/json' },
138
- )
139
- await network.processAll()
140
- const [modStatus, takedownEvent] = await Promise.all([
141
- ozone.ctx.db.db
142
- .selectFrom('moderation_subject_status')
143
- .where('did', '=', alice)
144
- .where('recordPath', '=', `${ids.AppBskyActorProfile}/self`)
145
- .select(['takendown', 'id'])
146
- .executeTakeFirst(),
147
- ozone.ctx.db.db
148
- .selectFrom('moderation_event')
149
- .where('subjectDid', '=', alice)
150
- .where(
151
- 'subjectUri',
152
- '=',
153
- AtUri.make(alice, ids.AppBskyActorProfile, 'self').toString(),
154
- )
155
- .where('action', '=', 'com.atproto.admin.defs#modEventTakedown')
156
- .selectAll()
157
- .executeTakeFirst(),
158
- ])
159
- if (!modStatus || !takedownEvent) {
160
- throw new Error('expected mod action')
161
- }
162
- expect(modStatus.takendown).toEqual(true)
163
- const recordBsky = await bskyDb.db
164
- .selectFrom('record')
165
- .where('uri', '=', res.data.uri)
166
- .select('takedownRef')
167
- .executeTakeFirst()
168
- expect(recordBsky?.takedownRef).toEqual(`BSKY-TAKEDOWN-${takedownEvent.id}`)
169
-
170
- const recordPds = await network.pds.ctx.actorStore.read(alice, (store) =>
171
- store.db.db
172
- .selectFrom('record')
173
- .where('uri', '=', res.data.uri)
174
- .select('takedownRef')
175
- .executeTakeFirst(),
176
- )
177
- expect(recordPds?.takedownRef).toEqual(`BSKY-TAKEDOWN-${takedownEvent.id}`)
178
-
179
- expect(testInvalidator.invalidated.length).toBe(2)
180
- expect(testInvalidator.invalidated[1].subject).toBe(
181
- badBlob2.image.ref.toString(),
182
- )
183
- })
184
- })
185
-
186
- class TestInvalidator implements ImageInvalidator {
187
- public invalidated: { subject: string; paths: string[] }[] = []
188
- async invalidate(subject: string, paths: string[]) {
189
- this.invalidated.push({ subject, paths })
190
- }
191
- }
192
-
193
- class TestFlagger implements ImageFlagger {
194
- async scanImage(_did: string, cid: CID, _uri: AtUri): Promise<string[]> {
195
- if (cid.equals(badCid1)) {
196
- return ['kill-it']
197
- } else if (cid.equals(badCid2)) {
198
- return ['with-fire']
199
- }
200
- return []
201
- }
202
- }