@atproto/bsky 0.0.251 → 0.0.253

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 (459) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/dist/api/age-assurance/const.js +19 -19
  3. package/dist/api/age-assurance/const.js.map +1 -1
  4. package/dist/kws.d.ts +8 -0
  5. package/dist/kws.d.ts.map +1 -1
  6. package/dist/kws.js +53 -4
  7. package/dist/kws.js.map +1 -1
  8. package/package.json +28 -23
  9. package/bin/migration-create.ts +0 -46
  10. package/buf.gen.yaml +0 -12
  11. package/proto/bsky.proto +0 -1907
  12. package/proto/courier.proto +0 -84
  13. package/proto/rolodex.proto +0 -116
  14. package/src/api/age-assurance/const.ts +0 -203
  15. package/src/api/age-assurance/index.ts +0 -34
  16. package/src/api/age-assurance/kws/age-verified.test.ts +0 -98
  17. package/src/api/age-assurance/kws/age-verified.ts +0 -81
  18. package/src/api/age-assurance/kws/const.ts +0 -33
  19. package/src/api/age-assurance/kws/external-payload.test.ts +0 -72
  20. package/src/api/age-assurance/kws/external-payload.ts +0 -149
  21. package/src/api/age-assurance/redirects/kws-age-verified.ts +0 -107
  22. package/src/api/age-assurance/stash.ts +0 -23
  23. package/src/api/age-assurance/types.ts +0 -10
  24. package/src/api/age-assurance/util.ts +0 -68
  25. package/src/api/age-assurance/webhooks/kws-age-verified.ts +0 -75
  26. package/src/api/app/bsky/actor/getProfile.ts +0 -106
  27. package/src/api/app/bsky/actor/getProfiles.ts +0 -99
  28. package/src/api/app/bsky/actor/getSuggestions.ts +0 -163
  29. package/src/api/app/bsky/actor/searchActors.ts +0 -171
  30. package/src/api/app/bsky/actor/searchActorsTypeahead.ts +0 -164
  31. package/src/api/app/bsky/ageassurance/begin.ts +0 -175
  32. package/src/api/app/bsky/ageassurance/getConfig.ts +0 -16
  33. package/src/api/app/bsky/ageassurance/getState.ts +0 -58
  34. package/src/api/app/bsky/bookmark/createBookmark.ts +0 -39
  35. package/src/api/app/bsky/bookmark/deleteBookmark.ts +0 -32
  36. package/src/api/app/bsky/bookmark/getBookmarks.ts +0 -97
  37. package/src/api/app/bsky/bookmark/util.ts +0 -13
  38. package/src/api/app/bsky/contact/dismissMatch.ts +0 -26
  39. package/src/api/app/bsky/contact/getMatches.ts +0 -111
  40. package/src/api/app/bsky/contact/getSyncStatus.ts +0 -38
  41. package/src/api/app/bsky/contact/importContacts.ts +0 -119
  42. package/src/api/app/bsky/contact/removeData.ts +0 -25
  43. package/src/api/app/bsky/contact/sendNotification.ts +0 -33
  44. package/src/api/app/bsky/contact/startPhoneVerification.ts +0 -26
  45. package/src/api/app/bsky/contact/util.ts +0 -92
  46. package/src/api/app/bsky/contact/verifyPhone.ts +0 -29
  47. package/src/api/app/bsky/draft/createDraft.ts +0 -45
  48. package/src/api/app/bsky/draft/deleteDraft.ts +0 -20
  49. package/src/api/app/bsky/draft/getDrafts.ts +0 -44
  50. package/src/api/app/bsky/draft/updateDraft.ts +0 -26
  51. package/src/api/app/bsky/embed/getEmbedExternalView.ts +0 -154
  52. package/src/api/app/bsky/feed/getActorFeeds.ts +0 -101
  53. package/src/api/app/bsky/feed/getActorLikes.ts +0 -128
  54. package/src/api/app/bsky/feed/getAuthorFeed.ts +0 -279
  55. package/src/api/app/bsky/feed/getFeed.ts +0 -282
  56. package/src/api/app/bsky/feed/getFeedGenerator.ts +0 -68
  57. package/src/api/app/bsky/feed/getFeedGenerators.ts +0 -86
  58. package/src/api/app/bsky/feed/getLikes.ts +0 -151
  59. package/src/api/app/bsky/feed/getListFeed.ts +0 -147
  60. package/src/api/app/bsky/feed/getPostThread.ts +0 -156
  61. package/src/api/app/bsky/feed/getPosts.ts +0 -100
  62. package/src/api/app/bsky/feed/getQuotes.ts +0 -122
  63. package/src/api/app/bsky/feed/getRepostedBy.ts +0 -121
  64. package/src/api/app/bsky/feed/getSuggestedFeeds.ts +0 -39
  65. package/src/api/app/bsky/feed/getTimeline.ts +0 -127
  66. package/src/api/app/bsky/feed/searchPosts.ts +0 -274
  67. package/src/api/app/bsky/feed/searchPostsV2.ts +0 -243
  68. package/src/api/app/bsky/graph/getActorStarterPacks.ts +0 -103
  69. package/src/api/app/bsky/graph/getBlocks.ts +0 -94
  70. package/src/api/app/bsky/graph/getFollowers.ts +0 -153
  71. package/src/api/app/bsky/graph/getFollows.ts +0 -151
  72. package/src/api/app/bsky/graph/getKnownFollowers.ts +0 -123
  73. package/src/api/app/bsky/graph/getList.ts +0 -152
  74. package/src/api/app/bsky/graph/getListBlocks.ts +0 -87
  75. package/src/api/app/bsky/graph/getListMutes.ts +0 -87
  76. package/src/api/app/bsky/graph/getLists.ts +0 -125
  77. package/src/api/app/bsky/graph/getListsWithMembership.ts +0 -146
  78. package/src/api/app/bsky/graph/getMutes.ts +0 -87
  79. package/src/api/app/bsky/graph/getRelationships.ts +0 -58
  80. package/src/api/app/bsky/graph/getStarterPack.ts +0 -82
  81. package/src/api/app/bsky/graph/getStarterPacks.ts +0 -86
  82. package/src/api/app/bsky/graph/getStarterPacksWithMembership.ts +0 -136
  83. package/src/api/app/bsky/graph/getSuggestedFollowsByActor.ts +0 -171
  84. package/src/api/app/bsky/graph/muteActor.ts +0 -24
  85. package/src/api/app/bsky/graph/muteActorList.ts +0 -19
  86. package/src/api/app/bsky/graph/muteThread.ts +0 -19
  87. package/src/api/app/bsky/graph/searchStarterPacks.ts +0 -169
  88. package/src/api/app/bsky/graph/unmuteActor.ts +0 -21
  89. package/src/api/app/bsky/graph/unmuteActorList.ts +0 -19
  90. package/src/api/app/bsky/graph/unmuteThread.ts +0 -19
  91. package/src/api/app/bsky/labeler/getServices.ts +0 -41
  92. package/src/api/app/bsky/notification/getPreferences.ts +0 -49
  93. package/src/api/app/bsky/notification/getUnreadCount.ts +0 -83
  94. package/src/api/app/bsky/notification/listActivitySubscriptions.ts +0 -116
  95. package/src/api/app/bsky/notification/listNotifications.ts +0 -272
  96. package/src/api/app/bsky/notification/putActivitySubscription.ts +0 -69
  97. package/src/api/app/bsky/notification/putPreferences.ts +0 -17
  98. package/src/api/app/bsky/notification/putPreferencesV2.ts +0 -64
  99. package/src/api/app/bsky/notification/registerPush.ts +0 -40
  100. package/src/api/app/bsky/notification/unregisterPush.ts +0 -39
  101. package/src/api/app/bsky/notification/updateSeen.ts +0 -52
  102. package/src/api/app/bsky/notification/util.ts +0 -134
  103. package/src/api/app/bsky/unspecced/getAgeAssuranceState.ts +0 -48
  104. package/src/api/app/bsky/unspecced/getConfig.ts +0 -20
  105. package/src/api/app/bsky/unspecced/getOnboardingSuggestedStarterPacks.ts +0 -162
  106. package/src/api/app/bsky/unspecced/getPopularFeedGenerators.ts +0 -91
  107. package/src/api/app/bsky/unspecced/getPostThreadOtherV2.ts +0 -126
  108. package/src/api/app/bsky/unspecced/getPostThreadV2.ts +0 -148
  109. package/src/api/app/bsky/unspecced/getSuggestedFeeds.ts +0 -100
  110. package/src/api/app/bsky/unspecced/getSuggestedOnboardingUsers.ts +0 -143
  111. package/src/api/app/bsky/unspecced/getSuggestedStarterPacks.ts +0 -165
  112. package/src/api/app/bsky/unspecced/getSuggestedUsers.ts +0 -183
  113. package/src/api/app/bsky/unspecced/getSuggestedUsersForDiscover.ts +0 -175
  114. package/src/api/app/bsky/unspecced/getSuggestedUsersForExplore.ts +0 -178
  115. package/src/api/app/bsky/unspecced/getSuggestedUsersForSeeMore.ts +0 -178
  116. package/src/api/app/bsky/unspecced/getTaggedSuggestions.ts +0 -27
  117. package/src/api/app/bsky/unspecced/getTrendingTopics.ts +0 -96
  118. package/src/api/app/bsky/unspecced/getTrends.ts +0 -162
  119. package/src/api/app/bsky/unspecced/initAgeAssurance.ts +0 -150
  120. package/src/api/blob-dispatcher.ts +0 -41
  121. package/src/api/blob-resolver.ts +0 -401
  122. package/src/api/com/atproto/admin/getAccountInfos.ts +0 -49
  123. package/src/api/com/atproto/admin/getSubjectStatus.ts +0 -79
  124. package/src/api/com/atproto/admin/updateSubjectStatus.ts +0 -80
  125. package/src/api/com/atproto/identity/resolveHandle.ts +0 -19
  126. package/src/api/com/atproto/label/queryLabels.ts +0 -42
  127. package/src/api/com/atproto/repo/getRecord.ts +0 -44
  128. package/src/api/com/atproto/temp/fetchLabels.ts +0 -9
  129. package/src/api/external.ts +0 -15
  130. package/src/api/health.ts +0 -47
  131. package/src/api/index.ts +0 -216
  132. package/src/api/internal/bsky/actor/getProfiles.ts +0 -87
  133. package/src/api/kws/api.ts +0 -113
  134. package/src/api/kws/index.ts +0 -29
  135. package/src/api/kws/types.ts +0 -78
  136. package/src/api/kws/util.test.ts +0 -50
  137. package/src/api/kws/util.ts +0 -109
  138. package/src/api/kws/webhook.ts +0 -134
  139. package/src/api/sitemap.ts +0 -76
  140. package/src/api/util.ts +0 -45
  141. package/src/api/well-known.ts +0 -44
  142. package/src/auth-verifier.ts +0 -522
  143. package/src/bsync.ts +0 -41
  144. package/src/cache/read-through.ts +0 -157
  145. package/src/config.ts +0 -719
  146. package/src/context.ts +0 -143
  147. package/src/courier.ts +0 -41
  148. package/src/data-plane/client/hosts.ts +0 -103
  149. package/src/data-plane/client/index.ts +0 -125
  150. package/src/data-plane/client/util.test.ts +0 -29
  151. package/src/data-plane/client/util.ts +0 -74
  152. package/src/data-plane/index.ts +0 -2
  153. package/src/data-plane/server/background.ts +0 -66
  154. package/src/data-plane/server/bsync-subscription.ts +0 -590
  155. package/src/data-plane/server/db/database-schema.ts +0 -90
  156. package/src/data-plane/server/db/db.ts +0 -204
  157. package/src/data-plane/server/db/index.ts +0 -2
  158. package/src/data-plane/server/db/migrations/20230309T045948368Z-init.ts +0 -305
  159. package/src/data-plane/server/db/migrations/20230408T152211201Z-notification-init.ts +0 -25
  160. package/src/data-plane/server/db/migrations/20230417T210628672Z-moderation-init.ts +0 -127
  161. package/src/data-plane/server/db/migrations/20230420T211446071Z-did-cache.ts +0 -14
  162. package/src/data-plane/server/db/migrations/20230427T194702079Z-notif-record-index.ts +0 -14
  163. package/src/data-plane/server/db/migrations/20230605T144730094Z-post-profile-aggs.ts +0 -23
  164. package/src/data-plane/server/db/migrations/20230607T211442112Z-feed-generator-init.ts +0 -34
  165. package/src/data-plane/server/db/migrations/20230608T155101190Z-algo-whats-hot-view.ts +0 -85
  166. package/src/data-plane/server/db/migrations/20230608T201813132Z-mute-lists.ts +0 -78
  167. package/src/data-plane/server/db/migrations/20230608T205147239Z-mutes.ts +0 -15
  168. package/src/data-plane/server/db/migrations/20230609T153623961Z-blocks.ts +0 -33
  169. package/src/data-plane/server/db/migrations/20230609T232122649Z-actor-deletion-indexes.ts +0 -27
  170. package/src/data-plane/server/db/migrations/20230610T203555962Z-suggested-follows.ts +0 -13
  171. package/src/data-plane/server/db/migrations/20230611T215300060Z-actor-state.ts +0 -13
  172. package/src/data-plane/server/db/migrations/20230620T161134972Z-post-langs.ts +0 -9
  173. package/src/data-plane/server/db/migrations/20230627T212437895Z-optional-handle.ts +0 -15
  174. package/src/data-plane/server/db/migrations/20230629T220835893Z-remove-post-hierarchy.ts +0 -32
  175. package/src/data-plane/server/db/migrations/20230703T045536691Z-feed-and-label-indices.ts +0 -31
  176. package/src/data-plane/server/db/migrations/20230720T164800037Z-posts-cursor-idx.ts +0 -19
  177. package/src/data-plane/server/db/migrations/20230807T035309811Z-feed-item-delete-invite-for-user-idx.ts +0 -14
  178. package/src/data-plane/server/db/migrations/20230808T172902639Z-repo-rev.ts +0 -12
  179. package/src/data-plane/server/db/migrations/20230810T203349843Z-action-duration.ts +0 -23
  180. package/src/data-plane/server/db/migrations/20230817T195936007Z-native-notifications.ts +0 -16
  181. package/src/data-plane/server/db/migrations/20230830T205507322Z-suggested-feeds.ts +0 -13
  182. package/src/data-plane/server/db/migrations/20230904T211011773Z-block-lists.ts +0 -24
  183. package/src/data-plane/server/db/migrations/20230906T222220386Z-thread-gating.ts +0 -27
  184. package/src/data-plane/server/db/migrations/20230920T213858047Z-add-tags-to-post.ts +0 -9
  185. package/src/data-plane/server/db/migrations/20230929T192920807Z-record-cursor-indexes.ts +0 -40
  186. package/src/data-plane/server/db/migrations/20231003T202833377Z-create-moderation-subject-status.ts +0 -123
  187. package/src/data-plane/server/db/migrations/20231220T225126090Z-blob-takedowns.ts +0 -66
  188. package/src/data-plane/server/db/migrations/20240124T023719200Z-tagged-suggestions.ts +0 -15
  189. package/src/data-plane/server/db/migrations/20240226T225725627Z-labelers.ts +0 -27
  190. package/src/data-plane/server/db/migrations/20240530T170337073Z-account-deactivation.ts +0 -12
  191. package/src/data-plane/server/db/migrations/20240606T171229898Z-thread-mutes.ts +0 -15
  192. package/src/data-plane/server/db/migrations/20240606T222548219Z-starter-packs.ts +0 -45
  193. package/src/data-plane/server/db/migrations/20240719T203853939Z-priority-notifs.ts +0 -25
  194. package/src/data-plane/server/db/migrations/20240723T220700077Z-quotes-post-aggs.ts +0 -12
  195. package/src/data-plane/server/db/migrations/20240723T220703655Z-quotes.ts +0 -28
  196. package/src/data-plane/server/db/migrations/20240801T193939827Z-post-gate.ts +0 -17
  197. package/src/data-plane/server/db/migrations/20240808T224251220Z-post-gate-flags.ts +0 -25
  198. package/src/data-plane/server/db/migrations/20240829T211238293Z-simplify-actor-sync.ts +0 -23
  199. package/src/data-plane/server/db/migrations/20240831T134810923Z-pinned-posts.ts +0 -17
  200. package/src/data-plane/server/db/migrations/20241114T153108102Z-add-starter-packs-name.ts +0 -19
  201. package/src/data-plane/server/db/migrations/20250116T222618297Z-post-embed-video.ts +0 -17
  202. package/src/data-plane/server/db/migrations/20250207T174822012Z-add-label-exp.ts +0 -9
  203. package/src/data-plane/server/db/migrations/20250404T163421487Z-verifications.ts +0 -39
  204. package/src/data-plane/server/db/migrations/20250526T023712742Z-like-repost-via.ts +0 -17
  205. package/src/data-plane/server/db/migrations/20250528T221913281Z-add-record-tags.ts +0 -9
  206. package/src/data-plane/server/db/migrations/20250602T190357447Z-add-private-data.ts +0 -22
  207. package/src/data-plane/server/db/migrations/20250611T140649895Z-add-activity-subscription.ts +0 -22
  208. package/src/data-plane/server/db/migrations/20250627T025331240Z-add-actor-age-assurance-columns.ts +0 -22
  209. package/src/data-plane/server/db/migrations/20250812T183735692Z-add-bookmarks.ts +0 -23
  210. package/src/data-plane/server/db/migrations/20250813T174955711Z-add-post-agg-bookmarks.ts +0 -12
  211. package/src/data-plane/server/db/migrations/20251120T004738098Z-update-actor-age-assurance-v2.ts +0 -28
  212. package/src/data-plane/server/db/migrations/20260112T133951271Z-add-drafts.ts +0 -24
  213. package/src/data-plane/server/db/migrations/20260604T224952774Z-post-embed-gallery-image.ts +0 -19
  214. package/src/data-plane/server/db/migrations/index.ts +0 -60
  215. package/src/data-plane/server/db/migrations/provider.ts +0 -26
  216. package/src/data-plane/server/db/pagination.ts +0 -341
  217. package/src/data-plane/server/db/tables/activity-subscription.ts +0 -12
  218. package/src/data-plane/server/db/tables/actor-block.ts +0 -14
  219. package/src/data-plane/server/db/tables/actor-state.ts +0 -10
  220. package/src/data-plane/server/db/tables/actor-sync.ts +0 -9
  221. package/src/data-plane/server/db/tables/actor.ts +0 -19
  222. package/src/data-plane/server/db/tables/algo.ts +0 -11
  223. package/src/data-plane/server/db/tables/blob-takedown.ts +0 -9
  224. package/src/data-plane/server/db/tables/bookmark.ts +0 -11
  225. package/src/data-plane/server/db/tables/did-cache.ts +0 -13
  226. package/src/data-plane/server/db/tables/draft.ts +0 -11
  227. package/src/data-plane/server/db/tables/duplicate-record.ts +0 -12
  228. package/src/data-plane/server/db/tables/feed-generator.ts +0 -21
  229. package/src/data-plane/server/db/tables/feed-item.ts +0 -12
  230. package/src/data-plane/server/db/tables/follow.ts +0 -15
  231. package/src/data-plane/server/db/tables/label.ts +0 -13
  232. package/src/data-plane/server/db/tables/labeler.ts +0 -16
  233. package/src/data-plane/server/db/tables/like.ts +0 -18
  234. package/src/data-plane/server/db/tables/list-block.ts +0 -15
  235. package/src/data-plane/server/db/tables/list-item.ts +0 -16
  236. package/src/data-plane/server/db/tables/list-mute.ts +0 -9
  237. package/src/data-plane/server/db/tables/list.ts +0 -19
  238. package/src/data-plane/server/db/tables/mute.ts +0 -9
  239. package/src/data-plane/server/db/tables/notification-push-token.ts +0 -10
  240. package/src/data-plane/server/db/tables/notification.ts +0 -16
  241. package/src/data-plane/server/db/tables/post-agg.ts +0 -16
  242. package/src/data-plane/server/db/tables/post-embed.ts +0 -47
  243. package/src/data-plane/server/db/tables/post-gate.ts +0 -12
  244. package/src/data-plane/server/db/tables/post.ts +0 -28
  245. package/src/data-plane/server/db/tables/private-data.ts +0 -13
  246. package/src/data-plane/server/db/tables/profile-agg.ts +0 -14
  247. package/src/data-plane/server/db/tables/profile.ts +0 -17
  248. package/src/data-plane/server/db/tables/quote.ts +0 -15
  249. package/src/data-plane/server/db/tables/record.ts +0 -15
  250. package/src/data-plane/server/db/tables/repost.ts +0 -18
  251. package/src/data-plane/server/db/tables/starter-pack.ts +0 -17
  252. package/src/data-plane/server/db/tables/subscription.ts +0 -9
  253. package/src/data-plane/server/db/tables/suggested-feed.ts +0 -10
  254. package/src/data-plane/server/db/tables/suggested-follow.ts +0 -10
  255. package/src/data-plane/server/db/tables/tagged-suggestion.ts +0 -11
  256. package/src/data-plane/server/db/tables/thread-gate.ts +0 -12
  257. package/src/data-plane/server/db/tables/thread-mute.ts +0 -9
  258. package/src/data-plane/server/db/tables/verification.ts +0 -20
  259. package/src/data-plane/server/db/tables/view-param.ts +0 -12
  260. package/src/data-plane/server/db/types.ts +0 -12
  261. package/src/data-plane/server/db/util.ts +0 -67
  262. package/src/data-plane/server/index.ts +0 -44
  263. package/src/data-plane/server/indexing/index.ts +0 -458
  264. package/src/data-plane/server/indexing/plugins/block.ts +0 -84
  265. package/src/data-plane/server/indexing/plugins/chat-declaration.ts +0 -60
  266. package/src/data-plane/server/indexing/plugins/feed-generator.ts +0 -80
  267. package/src/data-plane/server/indexing/plugins/follow.ts +0 -132
  268. package/src/data-plane/server/indexing/plugins/germ-declaration.ts +0 -57
  269. package/src/data-plane/server/indexing/plugins/labeler.ts +0 -74
  270. package/src/data-plane/server/indexing/plugins/like.ts +0 -151
  271. package/src/data-plane/server/indexing/plugins/list-block.ts +0 -84
  272. package/src/data-plane/server/indexing/plugins/list-item.ts +0 -92
  273. package/src/data-plane/server/indexing/plugins/list.ts +0 -80
  274. package/src/data-plane/server/indexing/plugins/notif-declaration.ts +0 -57
  275. package/src/data-plane/server/indexing/plugins/post-gate.ts +0 -101
  276. package/src/data-plane/server/indexing/plugins/post.ts +0 -675
  277. package/src/data-plane/server/indexing/plugins/profile.ts +0 -90
  278. package/src/data-plane/server/indexing/plugins/repost.ts +0 -176
  279. package/src/data-plane/server/indexing/plugins/starter-pack.ts +0 -74
  280. package/src/data-plane/server/indexing/plugins/status.ts +0 -57
  281. package/src/data-plane/server/indexing/plugins/thread-gate.ts +0 -101
  282. package/src/data-plane/server/indexing/plugins/verification.ts +0 -113
  283. package/src/data-plane/server/indexing/processor.ts +0 -292
  284. package/src/data-plane/server/routes/activity-subscription.ts +0 -84
  285. package/src/data-plane/server/routes/blocks.ts +0 -127
  286. package/src/data-plane/server/routes/bookmarks.ts +0 -83
  287. package/src/data-plane/server/routes/drafts.ts +0 -37
  288. package/src/data-plane/server/routes/feed-gens.ts +0 -89
  289. package/src/data-plane/server/routes/feeds.ts +0 -176
  290. package/src/data-plane/server/routes/follows.ts +0 -141
  291. package/src/data-plane/server/routes/identity.ts +0 -59
  292. package/src/data-plane/server/routes/index.ts +0 -67
  293. package/src/data-plane/server/routes/interactions.ts +0 -120
  294. package/src/data-plane/server/routes/labels.ts +0 -55
  295. package/src/data-plane/server/routes/likes.ts +0 -92
  296. package/src/data-plane/server/routes/lists.ts +0 -88
  297. package/src/data-plane/server/routes/moderation.ts +0 -102
  298. package/src/data-plane/server/routes/mutes.ts +0 -195
  299. package/src/data-plane/server/routes/notifs.ts +0 -239
  300. package/src/data-plane/server/routes/profile.ts +0 -220
  301. package/src/data-plane/server/routes/quotes.ts +0 -32
  302. package/src/data-plane/server/routes/records.ts +0 -119
  303. package/src/data-plane/server/routes/relationships.ts +0 -174
  304. package/src/data-plane/server/routes/reposts.ts +0 -76
  305. package/src/data-plane/server/routes/search.ts +0 -181
  306. package/src/data-plane/server/routes/site-standard.ts +0 -12
  307. package/src/data-plane/server/routes/sitemap.ts +0 -43
  308. package/src/data-plane/server/routes/starter-packs.ts +0 -32
  309. package/src/data-plane/server/routes/suggestions.ts +0 -175
  310. package/src/data-plane/server/routes/sync.ts +0 -16
  311. package/src/data-plane/server/routes/threads.ts +0 -33
  312. package/src/data-plane/server/subscription.ts +0 -152
  313. package/src/data-plane/server/util.ts +0 -202
  314. package/src/error.ts +0 -12
  315. package/src/etcd.ts +0 -90
  316. package/src/feature-gates/README.md +0 -83
  317. package/src/feature-gates/gates.ts +0 -25
  318. package/src/feature-gates/index.ts +0 -235
  319. package/src/feature-gates/metrics.test.ts +0 -196
  320. package/src/feature-gates/metrics.ts +0 -107
  321. package/src/feature-gates/types.ts +0 -62
  322. package/src/feature-gates/utils.test.ts +0 -66
  323. package/src/feature-gates/utils.ts +0 -135
  324. package/src/hydration/actor.ts +0 -578
  325. package/src/hydration/external.test.ts +0 -281
  326. package/src/hydration/external.ts +0 -268
  327. package/src/hydration/feed.ts +0 -455
  328. package/src/hydration/graph.ts +0 -354
  329. package/src/hydration/hydrator.ts +0 -1835
  330. package/src/hydration/label.ts +0 -207
  331. package/src/hydration/util.ts +0 -199
  332. package/src/image/index.ts +0 -2
  333. package/src/image/invalidator.ts +0 -33
  334. package/src/image/logger.ts +0 -6
  335. package/src/image/server.ts +0 -228
  336. package/src/image/sharp.ts +0 -89
  337. package/src/image/uri.ts +0 -114
  338. package/src/image/util.ts +0 -41
  339. package/src/index.ts +0 -312
  340. package/src/kws.ts +0 -197
  341. package/src/logger.ts +0 -40
  342. package/src/pipeline.ts +0 -60
  343. package/src/redis.ts +0 -205
  344. package/src/rolodex.ts +0 -42
  345. package/src/stash.ts +0 -76
  346. package/src/util/debug.ts +0 -10
  347. package/src/util/http.ts +0 -42
  348. package/src/util/retry.ts +0 -10
  349. package/src/util/standard-site.test.ts +0 -423
  350. package/src/util/standard-site.ts +0 -196
  351. package/src/util/uris.ts +0 -38
  352. package/src/util.ts +0 -48
  353. package/src/views/index.ts +0 -2783
  354. package/src/views/threads-v2.ts +0 -510
  355. package/src/views/types.ts +0 -193
  356. package/src/views/util.ts +0 -114
  357. package/test.env +0 -2
  358. package/tests/__snapshots__/feed-generation.test.ts.snap +0 -2510
  359. package/tests/_util.ts +0 -292
  360. package/tests/admin/admin-auth.test.ts +0 -190
  361. package/tests/admin/moderation.test.ts +0 -222
  362. package/tests/auth.test.ts +0 -90
  363. package/tests/blob-resolver.test.ts +0 -125
  364. package/tests/data-plane/__snapshots__/indexing.test.ts.snap +0 -887
  365. package/tests/data-plane/db.test.ts +0 -189
  366. package/tests/data-plane/duplicate-records.test.ts +0 -156
  367. package/tests/data-plane/handle-invalidation.test.ts +0 -153
  368. package/tests/data-plane/indexing.test.ts +0 -827
  369. package/tests/data-plane/subscription.test.ts +0 -128
  370. package/tests/data-plane/thread-mutes.test.ts +0 -175
  371. package/tests/entryway-auth.test.ts +0 -177
  372. package/tests/etcd.test.ts +0 -302
  373. package/tests/feed-generation.test.ts +0 -965
  374. package/tests/hydration/util.test.ts +0 -119
  375. package/tests/image/server.test.ts +0 -97
  376. package/tests/image/sharp.test.ts +0 -199
  377. package/tests/image/uri.test.ts +0 -106
  378. package/tests/label-hydration.test.ts +0 -245
  379. package/tests/postgates.test.ts +0 -182
  380. package/tests/query-labels.test.ts +0 -85
  381. package/tests/redis-cache.test.ts +0 -230
  382. package/tests/seed/feed-hidden-replies.ts +0 -63
  383. package/tests/seed/get-suggested-starter-packs.ts +0 -64
  384. package/tests/seed/get-trends.ts +0 -71
  385. package/tests/seed/known-followers.ts +0 -111
  386. package/tests/seed/postgates.ts +0 -57
  387. package/tests/server.test.ts +0 -115
  388. package/tests/sitemap.test.ts +0 -75
  389. package/tests/stash.test.ts +0 -180
  390. package/tests/utils.test.ts +0 -36
  391. package/tests/views/__snapshots__/actor-search.test.ts.snap +0 -155
  392. package/tests/views/__snapshots__/author-feed.test.ts.snap +0 -6301
  393. package/tests/views/__snapshots__/block-lists.test.ts.snap +0 -690
  394. package/tests/views/__snapshots__/blocks.test.ts.snap +0 -462
  395. package/tests/views/__snapshots__/bookmarks.test.ts.snap +0 -379
  396. package/tests/views/__snapshots__/follows.test.ts.snap +0 -798
  397. package/tests/views/__snapshots__/labeler-service.test.ts.snap +0 -233
  398. package/tests/views/__snapshots__/likes.test.ts.snap +0 -124
  399. package/tests/views/__snapshots__/list-feed.test.ts.snap +0 -883
  400. package/tests/views/__snapshots__/lists.test.ts.snap +0 -650
  401. package/tests/views/__snapshots__/mute-lists.test.ts.snap +0 -705
  402. package/tests/views/__snapshots__/mutes.test.ts.snap +0 -353
  403. package/tests/views/__snapshots__/notifications.test.ts.snap +0 -3074
  404. package/tests/views/__snapshots__/posts.test.ts.snap +0 -1019
  405. package/tests/views/__snapshots__/profile.test.ts.snap +0 -811
  406. package/tests/views/__snapshots__/quotes.test.ts.snap +0 -445
  407. package/tests/views/__snapshots__/reposts.test.ts.snap +0 -112
  408. package/tests/views/__snapshots__/starter-packs.test.ts.snap +0 -836
  409. package/tests/views/__snapshots__/thread-v2.test.ts.snap +0 -1298
  410. package/tests/views/__snapshots__/thread.test.ts.snap +0 -2051
  411. package/tests/views/__snapshots__/threadgating.test.ts.snap +0 -189
  412. package/tests/views/__snapshots__/timeline.test.ts.snap +0 -7252
  413. package/tests/views/account-deactivation.test.ts +0 -81
  414. package/tests/views/actor-likes.test.ts +0 -138
  415. package/tests/views/actor-search.test.ts +0 -261
  416. package/tests/views/age-assurance-v2.test.ts +0 -823
  417. package/tests/views/age-assurance.test.ts +0 -479
  418. package/tests/views/author-feed.test.ts +0 -694
  419. package/tests/views/block-lists.test.ts +0 -661
  420. package/tests/views/blocks.test.ts +0 -889
  421. package/tests/views/bookmarks.test.ts +0 -345
  422. package/tests/views/drafts.test.ts +0 -430
  423. package/tests/views/feed-hidden-replies.test.ts +0 -243
  424. package/tests/views/feed-view-post.test.ts +0 -501
  425. package/tests/views/follows.test.ts +0 -372
  426. package/tests/views/get-config.test.ts +0 -64
  427. package/tests/views/get-suggested-onboarding-users.test.ts +0 -193
  428. package/tests/views/get-suggested-starter-packs.test.ts +0 -137
  429. package/tests/views/get-trends.test.ts +0 -141
  430. package/tests/views/internal-actor.test.ts +0 -127
  431. package/tests/views/known-followers.test.ts +0 -193
  432. package/tests/views/labeler-service.test.ts +0 -242
  433. package/tests/views/labels-needs-review.test.ts +0 -316
  434. package/tests/views/labels-takedown.test.ts +0 -247
  435. package/tests/views/likes.test.ts +0 -192
  436. package/tests/views/list-feed.test.ts +0 -195
  437. package/tests/views/lists.test.ts +0 -412
  438. package/tests/views/mute-lists.test.ts +0 -509
  439. package/tests/views/mutes.test.ts +0 -308
  440. package/tests/views/notifications.test.ts +0 -1581
  441. package/tests/views/post-search.test.ts +0 -281
  442. package/tests/views/posts-debug.test.ts +0 -79
  443. package/tests/views/posts.test.ts +0 -427
  444. package/tests/views/profile-debug.test.ts +0 -75
  445. package/tests/views/profile.test.ts +0 -795
  446. package/tests/views/quotes.test.ts +0 -133
  447. package/tests/views/reposts.test.ts +0 -112
  448. package/tests/views/starter-packs.test.ts +0 -395
  449. package/tests/views/suggestions.test.ts +0 -145
  450. package/tests/views/thread-v2.test.ts +0 -2005
  451. package/tests/views/thread.test.ts +0 -637
  452. package/tests/views/threadgating.test.ts +0 -843
  453. package/tests/views/timeline.test.ts +0 -328
  454. package/tests/views/verification.test.ts +0 -296
  455. package/tsconfig.build.json +0 -10
  456. package/tsconfig.build.tsbuildinfo +0 -1
  457. package/tsconfig.json +0 -7
  458. package/tsconfig.tests.json +0 -8
  459. package/vitest.config.ts +0 -10
@@ -1,242 +0,0 @@
1
- import assert from 'node:assert'
2
- import { afterAll, beforeAll, beforeEach, describe, expect, it } from 'vitest'
3
- import {
4
- AppBskyEmbedRecord,
5
- AppBskyLabelerDefs,
6
- AtpAgent,
7
- ComAtprotoModerationDefs,
8
- ids,
9
- } from '@atproto/api'
10
- import { RecordRef, SeedClient, TestNetwork, basicSeed } from '@atproto/dev-env'
11
- import type { DidString } from '@atproto/syntax'
12
- import { forSnapshot, stripViewerFromLabeler } from '../_util.js'
13
-
14
- describe('labeler service views', () => {
15
- let network: TestNetwork
16
- let agent: AtpAgent
17
- let pdsAgent: AtpAgent
18
- let sc: SeedClient
19
-
20
- // account dids, for convenience
21
- let alice: DidString
22
- let bob: DidString
23
- let carol: DidString
24
-
25
- let aliceService: RecordRef
26
-
27
- beforeAll(async () => {
28
- network = await TestNetwork.create({
29
- dbPostgresSchema: 'bsky_views_labeler_service',
30
- })
31
- agent = network.bsky.getAgent()
32
- pdsAgent = network.pds.getAgent()
33
- sc = network.getSeedClient()
34
- await basicSeed(sc)
35
- alice = sc.dids.alice
36
- bob = sc.dids.bob
37
- carol = sc.dids.carol
38
-
39
- const aliceRes = await pdsAgent.api.com.atproto.repo.createRecord(
40
- {
41
- repo: alice,
42
- collection: ids.AppBskyLabelerService,
43
- rkey: 'self',
44
- record: {
45
- policies: {
46
- labelValues: ['spam', '!hide', 'scam', 'impersonation'],
47
- },
48
- createdAt: new Date().toISOString(),
49
- },
50
- },
51
- { headers: sc.getHeaders(alice), encoding: 'application/json' },
52
- )
53
- await pdsAgent.api.com.atproto.repo.createRecord(
54
- {
55
- repo: bob,
56
- collection: ids.AppBskyLabelerService,
57
- rkey: 'self',
58
- record: {
59
- policies: {
60
- labelValues: ['nudity', 'sexual', 'porn'],
61
- },
62
- createdAt: new Date().toISOString(),
63
- },
64
- },
65
- { headers: sc.getHeaders(bob), encoding: 'application/json' },
66
- )
67
-
68
- aliceService = new RecordRef(aliceRes.data.uri, aliceRes.data.cid)
69
-
70
- await sc.like(bob, aliceService)
71
- })
72
-
73
- beforeEach(async () => network.processAll())
74
- afterAll(async () => network?.close())
75
-
76
- it('fetches labelers', async () => {
77
- const view = await agent.api.app.bsky.labeler.getServices(
78
- { dids: [alice, bob, 'did:example:missing'] },
79
- {
80
- headers: await network.serviceHeaders(
81
- bob,
82
- ids.AppBskyLabelerGetServices,
83
- ),
84
- },
85
- )
86
-
87
- expect(forSnapshot(view.data)).toMatchSnapshot()
88
- })
89
-
90
- it('fetches labelers detailed', async () => {
91
- const view = await agent.api.app.bsky.labeler.getServices(
92
- { dids: [alice, bob, 'did:example:missing'], detailed: true },
93
- {
94
- headers: await network.serviceHeaders(
95
- bob,
96
- ids.AppBskyLabelerGetServices,
97
- ),
98
- },
99
- )
100
-
101
- expect(forSnapshot(view.data)).toMatchSnapshot()
102
- })
103
-
104
- it('fetches labelers unauthed', async () => {
105
- const { data: authed } = await agent.api.app.bsky.labeler.getServices(
106
- { dids: [alice] },
107
- {
108
- headers: await network.serviceHeaders(
109
- bob,
110
- ids.AppBskyLabelerGetServices,
111
- ),
112
- },
113
- )
114
- const { data: unauthed } = await agent.api.app.bsky.labeler.getServices({
115
- dids: [alice],
116
- })
117
- expect(unauthed.views).toEqual(authed.views.map(stripViewerFromLabeler))
118
- })
119
-
120
- it('fetches multiple labelers unauthed', async () => {
121
- const { data: authed } = await agent.api.app.bsky.labeler.getServices(
122
- {
123
- dids: [alice, bob, 'did:example:missing'],
124
- },
125
- {
126
- headers: await network.serviceHeaders(
127
- bob,
128
- ids.AppBskyLabelerGetServices,
129
- ),
130
- },
131
- )
132
- const { data: unauthed } = await agent.api.app.bsky.labeler.getServices({
133
- dids: [alice, bob, 'did:example:missing'],
134
- })
135
- expect(unauthed.views.length).toBeGreaterThan(0)
136
- expect(unauthed.views).toEqual(authed.views.map(stripViewerFromLabeler))
137
- })
138
-
139
- it('renders a post embed of a labeler', async () => {
140
- const postRes = await pdsAgent.api.app.bsky.feed.post.create(
141
- { repo: sc.dids.bob },
142
- {
143
- text: 'check out this labeler',
144
- embed: {
145
- $type: 'app.bsky.embed.record',
146
- record: aliceService.raw,
147
- },
148
- createdAt: new Date().toISOString(),
149
- },
150
- sc.getHeaders(sc.dids.bob),
151
- )
152
-
153
- await network.processAll()
154
-
155
- const postViews = await agent.api.app.bsky.feed.getPosts({
156
- uris: [postRes.uri],
157
- })
158
- const serviceViews = await agent.api.app.bsky.labeler.getServices({
159
- dids: [alice],
160
- })
161
- assert(AppBskyEmbedRecord.isView(postViews.data.posts[0].embed))
162
- expect(postViews.data.posts[0].embed.record).toMatchObject(
163
- serviceViews.data.views[0],
164
- )
165
- })
166
-
167
- it('renders profile as labeler in non-detailed profile views', async () => {
168
- const { data: res } = await agent.api.app.bsky.actor.searchActors(
169
- { q: sc.accounts[alice].handle },
170
- {
171
- headers: await network.serviceHeaders(
172
- bob,
173
- ids.AppBskyActorSearchActors,
174
- ),
175
- },
176
- )
177
- expect(res.actors.length).toBe(1)
178
- expect(res.actors[0].associated?.labeler).toBe(true)
179
- })
180
-
181
- it('blocked by labeler takedown', async () => {
182
- await network.bsky.ctx.dataplane.takedownActor({ did: alice })
183
- const res = await agent.api.app.bsky.labeler.getServices(
184
- { dids: [alice, bob] },
185
- {
186
- headers: await network.serviceHeaders(
187
- bob,
188
- ids.AppBskyLabelerGetServices,
189
- ),
190
- },
191
- )
192
- expect(res.data.views.length).toBe(1)
193
- // @ts-ignore
194
- expect(res.data.views[0].creator.did).toEqual(bob)
195
-
196
- // Cleanup
197
- await network.bsky.ctx.dataplane.untakedownActor({ did: alice })
198
- })
199
-
200
- it(`returns additional labeler data`, async () => {
201
- await pdsAgent.api.com.atproto.repo.createRecord(
202
- {
203
- repo: carol,
204
- collection: ids.AppBskyLabelerService,
205
- rkey: 'self',
206
- record: {
207
- policies: {
208
- labelValues: ['spam', '!hide', 'scam', 'impersonation'],
209
- },
210
- createdAt: new Date().toISOString(),
211
- reasonTypes: [ComAtprotoModerationDefs.REASONOTHER],
212
- subjectTypes: ['record'],
213
- subjectCollections: ['app.bsky.feed.post'],
214
- },
215
- },
216
- { headers: sc.getHeaders(carol), encoding: 'application/json' },
217
- )
218
- await network.processAll()
219
-
220
- const view = await agent.api.app.bsky.labeler.getServices(
221
- { dids: [carol], detailed: true },
222
- {
223
- headers: await network.serviceHeaders(
224
- bob,
225
- ids.AppBskyLabelerGetServices,
226
- ),
227
- },
228
- )
229
-
230
- const labelerView = view.data.views[0]
231
- expect(AppBskyLabelerDefs.isLabelerViewDetailed(labelerView)).toBe(true)
232
- // for TS only
233
- if (!AppBskyLabelerDefs.isLabelerViewDetailed(labelerView)) return
234
- expect(labelerView).toBeTruthy()
235
- expect(labelerView.reasonTypes).toEqual([
236
- ComAtprotoModerationDefs.REASONOTHER,
237
- ])
238
- expect(labelerView.subjectTypes).toEqual(['record'])
239
- expect(labelerView.subjectCollections).toEqual(['app.bsky.feed.post'])
240
- expect(forSnapshot(view.data)).toMatchSnapshot()
241
- })
242
- })
@@ -1,316 +0,0 @@
1
- import assert from 'node:assert'
2
- import { afterAll, beforeAll, beforeEach, describe, expect, it } from 'vitest'
3
- import { AppBskyFeedDefs, AtpAgent, ids } from '@atproto/api'
4
- import { SeedClient, TestNetwork, basicSeed } from '@atproto/dev-env'
5
-
6
- describe('bsky needs-review labels', () => {
7
- let network: TestNetwork
8
- let agent: AtpAgent
9
- let sc: SeedClient
10
-
11
- beforeAll(async () => {
12
- network = await TestNetwork.create({
13
- dbPostgresSchema: 'bsky_views_needs_review_labels',
14
- })
15
- agent = network.bsky.getAgent()
16
- sc = network.getSeedClient()
17
- await basicSeed(sc)
18
-
19
- await sc.createAccount('geoff', {
20
- email: 'geoff@test.com',
21
- handle: 'geoff.test',
22
- password: 'geoff',
23
- })
24
-
25
- await sc.reply(
26
- sc.dids.geoff,
27
- sc.posts[sc.dids.alice][0].ref,
28
- sc.posts[sc.dids.alice][0].ref,
29
- 'my name geoff',
30
- )
31
-
32
- await sc.post(
33
- sc.dids.geoff,
34
- 'her name alice',
35
- undefined,
36
- undefined,
37
- sc.posts[sc.dids.alice][0].ref,
38
- )
39
-
40
- await sc.follow(sc.dids.bob, sc.dids.geoff)
41
-
42
- AtpAgent.configure({ appLabelers: [network.ozone.ctx.cfg.service.did] })
43
- })
44
-
45
- beforeEach(async () => network.processAll())
46
- afterAll(async () => network?.close())
47
-
48
- describe('account-level', () => {
49
- beforeAll(async () => {
50
- await network.bsky.db.db
51
- .insertInto('label')
52
- .values({
53
- src: network.ozone.ctx.cfg.service.did,
54
- uri: sc.dids.geoff,
55
- cid: '',
56
- val: 'needs-review',
57
- exp: null,
58
- neg: false,
59
- cts: new Date().toISOString(),
60
- })
61
- .execute()
62
- })
63
-
64
- afterAll(async () => {
65
- await network.bsky.db.db
66
- .deleteFrom('label')
67
- .where('src', '=', network.ozone.ctx.cfg.service.did)
68
- .execute()
69
- })
70
-
71
- it('applies to thread replies.', async () => {
72
- const {
73
- data: { thread },
74
- } = await agent.app.bsky.feed.getPostThread({
75
- uri: sc.posts[sc.dids.alice][0].ref.uriStr,
76
- })
77
- assert(AppBskyFeedDefs.isThreadViewPost(thread))
78
- expect(
79
- thread.replies?.some((reply) => {
80
- return (
81
- AppBskyFeedDefs.isThreadViewPost(reply) &&
82
- reply.post.author.did === sc.dids.geoff
83
- )
84
- }),
85
- ).toBe(false)
86
- })
87
-
88
- it('applies to quote lists.', async () => {
89
- const {
90
- data: { posts },
91
- } = await agent.app.bsky.feed.getQuotes({
92
- uri: sc.posts[sc.dids.alice][0].ref.uriStr,
93
- })
94
- expect(
95
- posts.some((post) => {
96
- return post.author.did === sc.dids.geoff
97
- }),
98
- ).toBe(false)
99
- })
100
-
101
- it('applies to reply, quote, and mention notifications.', async () => {
102
- const {
103
- data: { notifications },
104
- } = await agent.app.bsky.notification.listNotifications(
105
- {},
106
- {
107
- headers: await network.serviceHeaders(
108
- sc.dids.alice,
109
- ids.AppBskyNotificationListNotifications,
110
- ),
111
- },
112
- )
113
- expect(
114
- notifications.some((notif) => {
115
- return notif.reason === 'reply' && notif.author.did === sc.dids.geoff
116
- }),
117
- ).toBe(false)
118
- expect(
119
- notifications.some((notif) => {
120
- return notif.reason === 'quote' && notif.author.did === sc.dids.geoff
121
- }),
122
- ).toBe(false)
123
- expect(
124
- notifications.some((notif) => {
125
- return (
126
- notif.reason === 'mention' && notif.author.did === sc.dids.geoff
127
- )
128
- }),
129
- ).toBe(false)
130
- })
131
-
132
- it('does not apply to self.', async () => {
133
- const {
134
- data: { thread },
135
- } = await agent.app.bsky.feed.getPostThread(
136
- {
137
- uri: sc.posts[sc.dids.alice][0].ref.uriStr,
138
- },
139
- {
140
- headers: await network.serviceHeaders(
141
- sc.dids.geoff,
142
- ids.AppBskyFeedGetPostThread,
143
- ),
144
- },
145
- )
146
- assert(AppBskyFeedDefs.isThreadViewPost(thread))
147
- expect(
148
- thread.replies?.some((reply) => {
149
- return (
150
- AppBskyFeedDefs.isThreadViewPost(reply) &&
151
- reply.post.author.did === sc.dids.geoff
152
- )
153
- }),
154
- ).toBe(true)
155
- })
156
-
157
- it('does not apply to followers.', async () => {
158
- const {
159
- data: { thread },
160
- } = await agent.app.bsky.feed.getPostThread(
161
- {
162
- uri: sc.posts[sc.dids.alice][0].ref.uriStr,
163
- },
164
- {
165
- headers: await network.serviceHeaders(
166
- sc.dids.bob, // follows geoff
167
- ids.AppBskyFeedGetPostThread,
168
- ),
169
- },
170
- )
171
- assert(AppBskyFeedDefs.isThreadViewPost(thread))
172
- expect(
173
- thread.replies?.some((reply) => {
174
- return (
175
- AppBskyFeedDefs.isThreadViewPost(reply) &&
176
- reply.post.author.did === sc.dids.geoff
177
- )
178
- }),
179
- ).toBe(true)
180
- })
181
- })
182
-
183
- describe('record-level', () => {
184
- beforeAll(async () => {
185
- const geoffPostUris = [
186
- ...sc.posts[sc.dids.geoff],
187
- ...sc.replies[sc.dids.geoff],
188
- ].map((post) => post.ref.uriStr)
189
- await network.bsky.db.db
190
- .insertInto('label')
191
- .values(
192
- geoffPostUris.map((uri) => ({
193
- src: network.ozone.ctx.cfg.service.did,
194
- uri,
195
- cid: '',
196
- val: 'needs-review',
197
- exp: null,
198
- neg: false,
199
- cts: new Date().toISOString(),
200
- })),
201
- )
202
- .execute()
203
- })
204
-
205
- it('applies to thread replies.', async () => {
206
- const {
207
- data: { thread },
208
- } = await agent.app.bsky.feed.getPostThread({
209
- uri: sc.posts[sc.dids.alice][0].ref.uriStr,
210
- })
211
- assert(AppBskyFeedDefs.isThreadViewPost(thread))
212
- expect(
213
- thread.replies?.some((reply) => {
214
- return (
215
- AppBskyFeedDefs.isThreadViewPost(reply) &&
216
- reply.post.author.did === sc.dids.geoff
217
- )
218
- }),
219
- ).toBe(false)
220
- })
221
-
222
- it('applies to quote lists.', async () => {
223
- const {
224
- data: { posts },
225
- } = await agent.app.bsky.feed.getQuotes({
226
- uri: sc.posts[sc.dids.alice][0].ref.uriStr,
227
- })
228
- expect(
229
- posts.some((post) => {
230
- return post.author.did === sc.dids.geoff
231
- }),
232
- ).toBe(false)
233
- })
234
-
235
- it('applies to reply, quote, and mention notifications.', async () => {
236
- const {
237
- data: { notifications },
238
- } = await agent.app.bsky.notification.listNotifications(
239
- {},
240
- {
241
- headers: await network.serviceHeaders(
242
- sc.dids.alice,
243
- ids.AppBskyNotificationListNotifications,
244
- ),
245
- },
246
- )
247
- expect(
248
- notifications.some((notif) => {
249
- return notif.reason === 'reply' && notif.author.did === sc.dids.geoff
250
- }),
251
- ).toBe(false)
252
- expect(
253
- notifications.some((notif) => {
254
- return notif.reason === 'quote' && notif.author.did === sc.dids.geoff
255
- }),
256
- ).toBe(false)
257
- expect(
258
- notifications.some((notif) => {
259
- return (
260
- notif.reason === 'mention' && notif.author.did === sc.dids.geoff
261
- )
262
- }),
263
- ).toBe(false)
264
- })
265
-
266
- it('does not apply to self.', async () => {
267
- const {
268
- data: { thread },
269
- } = await agent.app.bsky.feed.getPostThread(
270
- {
271
- uri: sc.posts[sc.dids.alice][0].ref.uriStr,
272
- },
273
- {
274
- headers: await network.serviceHeaders(
275
- sc.dids.geoff,
276
- ids.AppBskyFeedGetPostThread,
277
- ),
278
- },
279
- )
280
- assert(AppBskyFeedDefs.isThreadViewPost(thread))
281
- expect(
282
- thread.replies?.some((reply) => {
283
- return (
284
- AppBskyFeedDefs.isThreadViewPost(reply) &&
285
- reply.post.author.did === sc.dids.geoff
286
- )
287
- }),
288
- ).toBe(true)
289
- })
290
-
291
- it('does not apply to followers.', async () => {
292
- const {
293
- data: { thread },
294
- } = await agent.app.bsky.feed.getPostThread(
295
- {
296
- uri: sc.posts[sc.dids.alice][0].ref.uriStr,
297
- },
298
- {
299
- headers: await network.serviceHeaders(
300
- sc.dids.bob, // follows geoff
301
- ids.AppBskyFeedGetPostThread,
302
- ),
303
- },
304
- )
305
- assert(AppBskyFeedDefs.isThreadViewPost(thread))
306
- expect(
307
- thread.replies?.some((reply) => {
308
- return (
309
- AppBskyFeedDefs.isThreadViewPost(reply) &&
310
- reply.post.author.did === sc.dids.geoff
311
- )
312
- }),
313
- ).toBe(true)
314
- })
315
- })
316
- })