@atproto/bsky 0.0.29 → 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 (236) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/api/app/bsky/feed/getAuthorFeed.d.ts +1 -0
  3. package/dist/db/index.js +285 -15
  4. package/dist/db/index.js.map +3 -3
  5. package/dist/index.js +892 -413
  6. package/dist/index.js.map +3 -3
  7. package/dist/lexicon/lexicons.d.ts +96 -5
  8. package/dist/lexicon/types/app/bsky/actor/defs.d.ts +1 -0
  9. package/dist/lexicon/types/app/bsky/actor/getPreferences.d.ts +2 -2
  10. package/dist/lexicon/types/app/bsky/actor/getProfile.d.ts +2 -2
  11. package/dist/lexicon/types/app/bsky/actor/getProfiles.d.ts +2 -2
  12. package/dist/lexicon/types/app/bsky/actor/getSuggestions.d.ts +2 -2
  13. package/dist/lexicon/types/app/bsky/actor/searchActors.d.ts +2 -2
  14. package/dist/lexicon/types/app/bsky/actor/searchActorsTypeahead.d.ts +2 -2
  15. package/dist/lexicon/types/app/bsky/feed/describeFeedGenerator.d.ts +2 -2
  16. package/dist/lexicon/types/app/bsky/feed/getActorFeeds.d.ts +2 -2
  17. package/dist/lexicon/types/app/bsky/feed/getActorLikes.d.ts +2 -2
  18. package/dist/lexicon/types/app/bsky/feed/getAuthorFeed.d.ts +2 -2
  19. package/dist/lexicon/types/app/bsky/feed/getFeed.d.ts +2 -2
  20. package/dist/lexicon/types/app/bsky/feed/getFeedGenerator.d.ts +2 -2
  21. package/dist/lexicon/types/app/bsky/feed/getFeedGenerators.d.ts +2 -2
  22. package/dist/lexicon/types/app/bsky/feed/getFeedSkeleton.d.ts +2 -2
  23. package/dist/lexicon/types/app/bsky/feed/getLikes.d.ts +2 -2
  24. package/dist/lexicon/types/app/bsky/feed/getListFeed.d.ts +2 -2
  25. package/dist/lexicon/types/app/bsky/feed/getPostThread.d.ts +2 -2
  26. package/dist/lexicon/types/app/bsky/feed/getPosts.d.ts +2 -2
  27. package/dist/lexicon/types/app/bsky/feed/getRepostedBy.d.ts +2 -2
  28. package/dist/lexicon/types/app/bsky/feed/getSuggestedFeeds.d.ts +2 -2
  29. package/dist/lexicon/types/app/bsky/feed/getTimeline.d.ts +2 -2
  30. package/dist/lexicon/types/app/bsky/feed/searchPosts.d.ts +2 -2
  31. package/dist/lexicon/types/app/bsky/graph/getBlocks.d.ts +2 -2
  32. package/dist/lexicon/types/app/bsky/graph/getFollowers.d.ts +2 -2
  33. package/dist/lexicon/types/app/bsky/graph/getFollows.d.ts +2 -2
  34. package/dist/lexicon/types/app/bsky/graph/getList.d.ts +2 -2
  35. package/dist/lexicon/types/app/bsky/graph/getListBlocks.d.ts +2 -2
  36. package/dist/lexicon/types/app/bsky/graph/getListMutes.d.ts +2 -2
  37. package/dist/lexicon/types/app/bsky/graph/getLists.d.ts +2 -2
  38. package/dist/lexicon/types/app/bsky/graph/getMutes.d.ts +2 -2
  39. package/dist/lexicon/types/app/bsky/graph/getRelationships.d.ts +2 -2
  40. package/dist/lexicon/types/app/bsky/graph/getSuggestedFollowsByActor.d.ts +2 -2
  41. package/dist/lexicon/types/app/bsky/notification/getUnreadCount.d.ts +2 -2
  42. package/dist/lexicon/types/app/bsky/notification/listNotifications.d.ts +2 -2
  43. package/dist/lexicon/types/app/bsky/unspecced/getPopularFeedGenerators.d.ts +2 -2
  44. package/dist/lexicon/types/app/bsky/unspecced/getTaggedSuggestions.d.ts +2 -2
  45. package/dist/lexicon/types/app/bsky/unspecced/searchActorsSkeleton.d.ts +2 -2
  46. package/dist/lexicon/types/app/bsky/unspecced/searchPostsSkeleton.d.ts +2 -2
  47. package/dist/lexicon/types/com/atproto/admin/createCommunicationTemplate.d.ts +2 -2
  48. package/dist/lexicon/types/com/atproto/admin/emitModerationEvent.d.ts +2 -2
  49. package/dist/lexicon/types/com/atproto/admin/getAccountInfo.d.ts +2 -2
  50. package/dist/lexicon/types/com/atproto/admin/getAccountInfos.d.ts +2 -2
  51. package/dist/lexicon/types/com/atproto/admin/getInviteCodes.d.ts +2 -2
  52. package/dist/lexicon/types/com/atproto/admin/getModerationEvent.d.ts +2 -2
  53. package/dist/lexicon/types/com/atproto/admin/getRecord.d.ts +2 -2
  54. package/dist/lexicon/types/com/atproto/admin/getRepo.d.ts +2 -2
  55. package/dist/lexicon/types/com/atproto/admin/getSubjectStatus.d.ts +2 -2
  56. package/dist/lexicon/types/com/atproto/admin/listCommunicationTemplates.d.ts +2 -2
  57. package/dist/lexicon/types/com/atproto/admin/queryModerationEvents.d.ts +2 -2
  58. package/dist/lexicon/types/com/atproto/admin/queryModerationStatuses.d.ts +2 -2
  59. package/dist/lexicon/types/com/atproto/admin/searchRepos.d.ts +2 -2
  60. package/dist/lexicon/types/com/atproto/admin/sendEmail.d.ts +2 -2
  61. package/dist/lexicon/types/com/atproto/admin/updateCommunicationTemplate.d.ts +2 -2
  62. package/dist/lexicon/types/com/atproto/admin/updateSubjectStatus.d.ts +2 -2
  63. package/dist/lexicon/types/com/atproto/identity/resolveHandle.d.ts +2 -2
  64. package/dist/lexicon/types/com/atproto/label/queryLabels.d.ts +2 -2
  65. package/dist/lexicon/types/com/atproto/moderation/createReport.d.ts +2 -2
  66. package/dist/lexicon/types/com/atproto/repo/createRecord.d.ts +2 -2
  67. package/dist/lexicon/types/com/atproto/repo/describeRepo.d.ts +2 -2
  68. package/dist/lexicon/types/com/atproto/repo/getRecord.d.ts +2 -2
  69. package/dist/lexicon/types/com/atproto/repo/listRecords.d.ts +2 -2
  70. package/dist/lexicon/types/com/atproto/repo/putRecord.d.ts +2 -2
  71. package/dist/lexicon/types/com/atproto/repo/uploadBlob.d.ts +2 -2
  72. package/dist/lexicon/types/com/atproto/server/createAccount.d.ts +2 -2
  73. package/dist/lexicon/types/com/atproto/server/createAppPassword.d.ts +2 -2
  74. package/dist/lexicon/types/com/atproto/server/createInviteCode.d.ts +2 -2
  75. package/dist/lexicon/types/com/atproto/server/createInviteCodes.d.ts +2 -2
  76. package/dist/lexicon/types/com/atproto/server/createSession.d.ts +2 -2
  77. package/dist/lexicon/types/com/atproto/server/describeServer.d.ts +2 -2
  78. package/dist/lexicon/types/com/atproto/server/getAccountInviteCodes.d.ts +2 -2
  79. package/dist/lexicon/types/com/atproto/server/getSession.d.ts +2 -2
  80. package/dist/lexicon/types/com/atproto/server/listAppPasswords.d.ts +2 -2
  81. package/dist/lexicon/types/com/atproto/server/refreshSession.d.ts +2 -2
  82. package/dist/lexicon/types/com/atproto/server/requestEmailUpdate.d.ts +2 -2
  83. package/dist/lexicon/types/com/atproto/server/reserveSigningKey.d.ts +2 -2
  84. package/dist/lexicon/types/com/atproto/sync/getBlob.d.ts +2 -2
  85. package/dist/lexicon/types/com/atproto/sync/getBlocks.d.ts +2 -2
  86. package/dist/lexicon/types/com/atproto/sync/getCheckout.d.ts +2 -2
  87. package/dist/lexicon/types/com/atproto/sync/getHead.d.ts +2 -2
  88. package/dist/lexicon/types/com/atproto/sync/getLatestCommit.d.ts +2 -2
  89. package/dist/lexicon/types/com/atproto/sync/getRecord.d.ts +2 -2
  90. package/dist/lexicon/types/com/atproto/sync/getRepo.d.ts +2 -2
  91. package/dist/lexicon/types/com/atproto/sync/listBlobs.d.ts +2 -2
  92. package/dist/lexicon/types/com/atproto/sync/listRepos.d.ts +2 -2
  93. package/dist/lexicon/types/com/atproto/temp/checkSignupQueue.d.ts +2 -2
  94. package/dist/lexicon/types/com/atproto/temp/fetchLabels.d.ts +2 -2
  95. package/dist/lexicon/types/com/atproto/temp/importRepo.d.ts +2 -2
  96. package/dist/lexicon/types/com/atproto/temp/transferAccount.d.ts +2 -2
  97. package/dist/services/feed/index.d.ts +2 -1
  98. package/package.json +6 -6
  99. package/src/api/app/bsky/feed/getAuthorFeed.ts +12 -4
  100. package/src/lexicon/lexicons.ts +339 -123
  101. package/src/lexicon/types/app/bsky/actor/defs.ts +2 -0
  102. package/src/lexicon/types/app/bsky/actor/getPreferences.ts +2 -2
  103. package/src/lexicon/types/app/bsky/actor/getProfile.ts +3 -2
  104. package/src/lexicon/types/app/bsky/actor/getProfiles.ts +2 -2
  105. package/src/lexicon/types/app/bsky/actor/getSuggestions.ts +2 -2
  106. package/src/lexicon/types/app/bsky/actor/profile.ts +3 -0
  107. package/src/lexicon/types/app/bsky/actor/putPreferences.ts +1 -1
  108. package/src/lexicon/types/app/bsky/actor/searchActors.ts +2 -2
  109. package/src/lexicon/types/app/bsky/actor/searchActorsTypeahead.ts +2 -2
  110. package/src/lexicon/types/app/bsky/embed/external.ts +1 -0
  111. package/src/lexicon/types/app/bsky/embed/images.ts +4 -0
  112. package/src/lexicon/types/app/bsky/embed/record.ts +1 -0
  113. package/src/lexicon/types/app/bsky/feed/defs.ts +1 -0
  114. package/src/lexicon/types/app/bsky/feed/describeFeedGenerator.ts +2 -2
  115. package/src/lexicon/types/app/bsky/feed/getActorFeeds.ts +2 -2
  116. package/src/lexicon/types/app/bsky/feed/getActorLikes.ts +2 -2
  117. package/src/lexicon/types/app/bsky/feed/getAuthorFeed.ts +3 -2
  118. package/src/lexicon/types/app/bsky/feed/getFeed.ts +2 -2
  119. package/src/lexicon/types/app/bsky/feed/getFeedGenerator.ts +5 -2
  120. package/src/lexicon/types/app/bsky/feed/getFeedGenerators.ts +2 -2
  121. package/src/lexicon/types/app/bsky/feed/getFeedSkeleton.ts +3 -2
  122. package/src/lexicon/types/app/bsky/feed/getLikes.ts +4 -2
  123. package/src/lexicon/types/app/bsky/feed/getListFeed.ts +3 -2
  124. package/src/lexicon/types/app/bsky/feed/getPostThread.ts +5 -2
  125. package/src/lexicon/types/app/bsky/feed/getPosts.ts +3 -2
  126. package/src/lexicon/types/app/bsky/feed/getRepostedBy.ts +4 -2
  127. package/src/lexicon/types/app/bsky/feed/getSuggestedFeeds.ts +2 -2
  128. package/src/lexicon/types/app/bsky/feed/getTimeline.ts +3 -2
  129. package/src/lexicon/types/app/bsky/feed/post.ts +5 -1
  130. package/src/lexicon/types/app/bsky/feed/searchPosts.ts +2 -2
  131. package/src/lexicon/types/app/bsky/feed/threadgate.ts +1 -0
  132. package/src/lexicon/types/app/bsky/graph/block.ts +1 -0
  133. package/src/lexicon/types/app/bsky/graph/getBlocks.ts +2 -2
  134. package/src/lexicon/types/app/bsky/graph/getFollowers.ts +2 -2
  135. package/src/lexicon/types/app/bsky/graph/getFollows.ts +2 -2
  136. package/src/lexicon/types/app/bsky/graph/getList.ts +3 -2
  137. package/src/lexicon/types/app/bsky/graph/getListBlocks.ts +2 -2
  138. package/src/lexicon/types/app/bsky/graph/getListMutes.ts +2 -2
  139. package/src/lexicon/types/app/bsky/graph/getLists.ts +3 -2
  140. package/src/lexicon/types/app/bsky/graph/getMutes.ts +2 -2
  141. package/src/lexicon/types/app/bsky/graph/getRelationships.ts +4 -2
  142. package/src/lexicon/types/app/bsky/graph/getSuggestedFollowsByActor.ts +2 -2
  143. package/src/lexicon/types/app/bsky/graph/list.ts +1 -0
  144. package/src/lexicon/types/app/bsky/graph/listblock.ts +1 -0
  145. package/src/lexicon/types/app/bsky/graph/listitem.ts +2 -0
  146. package/src/lexicon/types/app/bsky/graph/muteActor.ts +1 -1
  147. package/src/lexicon/types/app/bsky/graph/muteActorList.ts +1 -1
  148. package/src/lexicon/types/app/bsky/graph/unmuteActor.ts +1 -1
  149. package/src/lexicon/types/app/bsky/graph/unmuteActorList.ts +1 -1
  150. package/src/lexicon/types/app/bsky/notification/getUnreadCount.ts +2 -2
  151. package/src/lexicon/types/app/bsky/notification/listNotifications.ts +2 -2
  152. package/src/lexicon/types/app/bsky/notification/registerPush.ts +1 -1
  153. package/src/lexicon/types/app/bsky/notification/updateSeen.ts +1 -1
  154. package/src/lexicon/types/app/bsky/richtext/facet.ts +5 -4
  155. package/src/lexicon/types/app/bsky/unspecced/getPopularFeedGenerators.ts +2 -2
  156. package/src/lexicon/types/app/bsky/unspecced/getTaggedSuggestions.ts +2 -2
  157. package/src/lexicon/types/app/bsky/unspecced/searchActorsSkeleton.ts +2 -2
  158. package/src/lexicon/types/app/bsky/unspecced/searchPostsSkeleton.ts +2 -2
  159. package/src/lexicon/types/com/atproto/admin/createCommunicationTemplate.ts +2 -2
  160. package/src/lexicon/types/com/atproto/admin/deleteAccount.ts +1 -1
  161. package/src/lexicon/types/com/atproto/admin/deleteCommunicationTemplate.ts +1 -1
  162. package/src/lexicon/types/com/atproto/admin/disableAccountInvites.ts +1 -1
  163. package/src/lexicon/types/com/atproto/admin/disableInviteCodes.ts +1 -1
  164. package/src/lexicon/types/com/atproto/admin/emitModerationEvent.ts +2 -2
  165. package/src/lexicon/types/com/atproto/admin/enableAccountInvites.ts +1 -1
  166. package/src/lexicon/types/com/atproto/admin/getAccountInfo.ts +2 -2
  167. package/src/lexicon/types/com/atproto/admin/getAccountInfos.ts +2 -2
  168. package/src/lexicon/types/com/atproto/admin/getInviteCodes.ts +2 -2
  169. package/src/lexicon/types/com/atproto/admin/getModerationEvent.ts +2 -2
  170. package/src/lexicon/types/com/atproto/admin/getRecord.ts +2 -2
  171. package/src/lexicon/types/com/atproto/admin/getRepo.ts +2 -2
  172. package/src/lexicon/types/com/atproto/admin/getSubjectStatus.ts +2 -2
  173. package/src/lexicon/types/com/atproto/admin/listCommunicationTemplates.ts +2 -2
  174. package/src/lexicon/types/com/atproto/admin/queryModerationEvents.ts +2 -2
  175. package/src/lexicon/types/com/atproto/admin/queryModerationStatuses.ts +2 -2
  176. package/src/lexicon/types/com/atproto/admin/searchRepos.ts +2 -2
  177. package/src/lexicon/types/com/atproto/admin/sendEmail.ts +2 -2
  178. package/src/lexicon/types/com/atproto/admin/updateAccountEmail.ts +1 -1
  179. package/src/lexicon/types/com/atproto/admin/updateAccountHandle.ts +1 -1
  180. package/src/lexicon/types/com/atproto/admin/updateCommunicationTemplate.ts +2 -2
  181. package/src/lexicon/types/com/atproto/admin/updateSubjectStatus.ts +2 -2
  182. package/src/lexicon/types/com/atproto/identity/resolveHandle.ts +2 -2
  183. package/src/lexicon/types/com/atproto/identity/updateHandle.ts +2 -1
  184. package/src/lexicon/types/com/atproto/label/queryLabels.ts +2 -2
  185. package/src/lexicon/types/com/atproto/label/subscribeLabels.ts +1 -1
  186. package/src/lexicon/types/com/atproto/moderation/createReport.ts +3 -2
  187. package/src/lexicon/types/com/atproto/repo/applyWrites.ts +7 -6
  188. package/src/lexicon/types/com/atproto/repo/createRecord.ts +6 -6
  189. package/src/lexicon/types/com/atproto/repo/deleteRecord.ts +3 -3
  190. package/src/lexicon/types/com/atproto/repo/describeRepo.ts +5 -2
  191. package/src/lexicon/types/com/atproto/repo/getRecord.ts +3 -3
  192. package/src/lexicon/types/com/atproto/repo/listRecords.ts +2 -2
  193. package/src/lexicon/types/com/atproto/repo/putRecord.ts +6 -6
  194. package/src/lexicon/types/com/atproto/repo/uploadBlob.ts +2 -2
  195. package/src/lexicon/types/com/atproto/server/confirmEmail.ts +1 -1
  196. package/src/lexicon/types/com/atproto/server/createAccount.ts +10 -2
  197. package/src/lexicon/types/com/atproto/server/createAppPassword.ts +3 -2
  198. package/src/lexicon/types/com/atproto/server/createInviteCode.ts +2 -2
  199. package/src/lexicon/types/com/atproto/server/createInviteCodes.ts +2 -2
  200. package/src/lexicon/types/com/atproto/server/createSession.ts +2 -2
  201. package/src/lexicon/types/com/atproto/server/deleteAccount.ts +1 -1
  202. package/src/lexicon/types/com/atproto/server/deleteSession.ts +1 -1
  203. package/src/lexicon/types/com/atproto/server/describeServer.ts +5 -2
  204. package/src/lexicon/types/com/atproto/server/getAccountInviteCodes.ts +3 -2
  205. package/src/lexicon/types/com/atproto/server/getSession.ts +2 -2
  206. package/src/lexicon/types/com/atproto/server/listAppPasswords.ts +2 -2
  207. package/src/lexicon/types/com/atproto/server/refreshSession.ts +2 -2
  208. package/src/lexicon/types/com/atproto/server/requestAccountDelete.ts +1 -1
  209. package/src/lexicon/types/com/atproto/server/requestEmailConfirmation.ts +1 -1
  210. package/src/lexicon/types/com/atproto/server/requestEmailUpdate.ts +2 -2
  211. package/src/lexicon/types/com/atproto/server/requestPasswordReset.ts +1 -1
  212. package/src/lexicon/types/com/atproto/server/reserveSigningKey.ts +4 -4
  213. package/src/lexicon/types/com/atproto/server/resetPassword.ts +1 -1
  214. package/src/lexicon/types/com/atproto/server/revokeAppPassword.ts +1 -1
  215. package/src/lexicon/types/com/atproto/server/updateEmail.ts +1 -1
  216. package/src/lexicon/types/com/atproto/sync/getBlob.ts +3 -3
  217. package/src/lexicon/types/com/atproto/sync/getBlocks.ts +2 -2
  218. package/src/lexicon/types/com/atproto/sync/getCheckout.ts +2 -2
  219. package/src/lexicon/types/com/atproto/sync/getHead.ts +2 -2
  220. package/src/lexicon/types/com/atproto/sync/getLatestCommit.ts +2 -2
  221. package/src/lexicon/types/com/atproto/sync/getRecord.ts +3 -2
  222. package/src/lexicon/types/com/atproto/sync/getRepo.ts +3 -3
  223. package/src/lexicon/types/com/atproto/sync/listBlobs.ts +2 -2
  224. package/src/lexicon/types/com/atproto/sync/listRepos.ts +3 -2
  225. package/src/lexicon/types/com/atproto/sync/notifyOfUpdate.ts +2 -2
  226. package/src/lexicon/types/com/atproto/sync/requestCrawl.ts +2 -2
  227. package/src/lexicon/types/com/atproto/sync/subscribeRepos.ts +17 -5
  228. package/src/lexicon/types/com/atproto/temp/checkSignupQueue.ts +2 -2
  229. package/src/lexicon/types/com/atproto/temp/fetchLabels.ts +2 -2
  230. package/src/lexicon/types/com/atproto/temp/importRepo.ts +2 -2
  231. package/src/lexicon/types/com/atproto/temp/pushBlob.ts +1 -1
  232. package/src/lexicon/types/com/atproto/temp/requestPhoneVerification.ts +1 -1
  233. package/src/lexicon/types/com/atproto/temp/transferAccount.ts +2 -2
  234. package/src/services/feed/index.ts +10 -4
  235. package/src/services/feed/views.ts +3 -1
  236. package/tests/views/author-feed.test.ts +29 -9
@@ -139,6 +139,7 @@ export class FeedService {
139
139
  async getPostInfos(
140
140
  postUris: string[],
141
141
  viewer: string | null,
142
+ includeSoftDeleted?: boolean,
142
143
  ): Promise<PostInfoMap> {
143
144
  if (postUris.length < 1) return {}
144
145
  const db = this.db.db
@@ -149,8 +150,12 @@ export class FeedService {
149
150
  .innerJoin('actor', 'actor.did', 'post.creator')
150
151
  .innerJoin('record', 'record.uri', 'post.uri')
151
152
  .leftJoin('post_agg', 'post_agg.uri', 'post.uri')
152
- .where(notSoftDeletedClause(ref('actor'))) // Ensures post reply parent/roots get omitted from views when taken down
153
- .where(notSoftDeletedClause(ref('record')))
153
+ .if(!includeSoftDeleted, (qb) =>
154
+ qb.where(notSoftDeletedClause(ref('actor'))),
155
+ ) // Ensures post reply parent/roots get omitted from views when taken down
156
+ .if(!includeSoftDeleted, (qb) =>
157
+ qb.where(notSoftDeletedClause(ref('record'))),
158
+ )
154
159
  .select([
155
160
  'post.uri as uri',
156
161
  'post.cid as cid',
@@ -249,12 +254,13 @@ export class FeedService {
249
254
  dids: Set<string>
250
255
  uris: Set<string>
251
256
  viewer: string | null
257
+ includeSoftDeleted?: boolean
252
258
  },
253
259
  depth = 0,
254
260
  ): Promise<FeedHydrationState> {
255
261
  const { viewer, dids, uris } = refs
256
262
  const [posts, threadgates, labels, bam] = await Promise.all([
257
- this.getPostInfos(Array.from(uris), viewer),
263
+ this.getPostInfos(Array.from(uris), viewer, refs.includeSoftDeleted),
258
264
  this.threadgatesByPostUri(Array.from(uris)),
259
265
  this.services.label.getLabelsForSubjects([...uris, ...dids]),
260
266
  this.services.graph.getBlockAndMuteState(
@@ -266,7 +272,7 @@ export class FeedService {
266
272
  const [profileState, blocks, lists] = await Promise.all([
267
273
  this.services.actor.views.profileHydration(
268
274
  Array.from(dids),
269
- { viewer },
275
+ { viewer, includeSoftDeleted: refs.includeSoftDeleted },
270
276
  { bam, labels },
271
277
  ),
272
278
  this.blocksForPosts(posts, bam),
@@ -208,7 +208,9 @@ export class FeedViews {
208
208
  const post = posts[uri]
209
209
  const gate = threadgates[uri]
210
210
  const author = actors[post?.creator]
211
- if (!post || !author) return undefined
211
+ if (!post || !author) {
212
+ return undefined
213
+ }
212
214
  const postLabels = labels[uri] ?? []
213
215
  const postSelfLabels = getSelfLabels({
214
216
  uri: post.uri,
@@ -138,7 +138,7 @@ describe('pds author feed views', () => {
138
138
  )
139
139
  })
140
140
 
141
- it('blocked by actor takedown.', async () => {
141
+ it('non-admins blocked by actor takedown.', async () => {
142
142
  const { data: preBlock } = await agent.api.app.bsky.feed.getAuthorFeed(
143
143
  { actor: alice },
144
144
  { headers: await network.serviceHeaders(carol) },
@@ -163,11 +163,18 @@ describe('pds author feed views', () => {
163
163
  },
164
164
  )
165
165
 
166
- const attempt = agent.api.app.bsky.feed.getAuthorFeed(
166
+ const attemptAsUser = agent.api.app.bsky.feed.getAuthorFeed(
167
167
  { actor: alice },
168
168
  { headers: await network.serviceHeaders(carol) },
169
169
  )
170
- await expect(attempt).rejects.toThrow('Profile not found')
170
+ await expect(attemptAsUser).rejects.toThrow('Profile not found')
171
+
172
+ const attemptAsAdmin = await agent.api.app.bsky.feed.getAuthorFeed(
173
+ { actor: alice },
174
+ { headers: network.bsky.adminAuthHeaders() },
175
+ )
176
+ expect(attemptAsAdmin.data.feed.length).toBeGreaterThan(0)
177
+ expect(attemptAsAdmin.data.feed.length).toEqual(preBlock.feed.length)
171
178
 
172
179
  // Cleanup
173
180
  await agent.api.com.atproto.admin.updateSubjectStatus(
@@ -215,13 +222,26 @@ describe('pds author feed views', () => {
215
222
  },
216
223
  )
217
224
 
218
- const { data: postBlock } = await agent.api.app.bsky.feed.getAuthorFeed(
219
- { actor: alice },
220
- { headers: await network.serviceHeaders(carol) },
225
+ const [{ data: postBlockAsUser }, { data: postBlockAsAdmin }] =
226
+ await Promise.all([
227
+ agent.api.app.bsky.feed.getAuthorFeed(
228
+ { actor: alice },
229
+ { headers: await network.serviceHeaders(carol) },
230
+ ),
231
+ agent.api.app.bsky.feed.getAuthorFeed(
232
+ { actor: alice },
233
+ { headers: network.bsky.adminAuthHeaders() },
234
+ ),
235
+ ])
236
+
237
+ expect(postBlockAsUser.feed.length).toEqual(preBlock.feed.length - 1)
238
+ expect(postBlockAsUser.feed.map((item) => item.post.uri)).not.toContain(
239
+ post.uri,
240
+ )
241
+ expect(postBlockAsAdmin.feed.length).toEqual(preBlock.feed.length)
242
+ expect(postBlockAsAdmin.feed.map((item) => item.post.uri)).toContain(
243
+ post.uri,
221
244
  )
222
-
223
- expect(postBlock.feed.length).toEqual(preBlock.feed.length - 1)
224
- expect(postBlock.feed.map((item) => item.post.uri)).not.toContain(post.uri)
225
245
 
226
246
  // Cleanup
227
247
  await agent.api.com.atproto.admin.updateSubjectStatus(