@atproto/api 0.11.0-next.0 → 0.11.0

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 (814) hide show
  1. package/CHANGELOG.md +66 -0
  2. package/README.md +41 -58
  3. package/babel.config.js +3 -0
  4. package/build.js +15 -0
  5. package/definitions/labels.json +140 -195
  6. package/dist/agent.d.ts +14 -72
  7. package/dist/bsky-agent.d.ts +9 -4
  8. package/dist/client/index.d.ts +94 -42
  9. package/dist/client/lexicons.d.ts +5049 -4759
  10. package/dist/client/types/app/bsky/actor/defs.d.ts +24 -22
  11. package/dist/client/types/app/bsky/actor/getPreferences.d.ts +0 -4
  12. package/dist/client/types/app/bsky/actor/getProfile.d.ts +0 -5
  13. package/dist/client/types/app/bsky/actor/getProfiles.d.ts +0 -4
  14. package/dist/client/types/app/bsky/actor/getSuggestions.d.ts +0 -4
  15. package/dist/client/types/app/bsky/actor/profile.d.ts +0 -7
  16. package/dist/client/types/app/bsky/actor/putPreferences.d.ts +0 -4
  17. package/dist/client/types/app/bsky/actor/searchActors.d.ts +0 -6
  18. package/dist/client/types/app/bsky/actor/searchActorsTypeahead.d.ts +0 -6
  19. package/dist/client/types/app/bsky/embed/external.d.ts +0 -5
  20. package/dist/client/types/app/bsky/embed/images.d.ts +0 -9
  21. package/dist/client/types/app/bsky/embed/record.d.ts +2 -6
  22. package/dist/client/types/app/bsky/embed/recordWithMedia.d.ts +0 -4
  23. package/dist/client/types/app/bsky/feed/defs.d.ts +1 -5
  24. package/dist/client/types/app/bsky/feed/describeFeedGenerator.d.ts +0 -4
  25. package/dist/client/types/app/bsky/feed/generator.d.ts +0 -4
  26. package/dist/client/types/app/bsky/feed/getActorFeeds.d.ts +0 -4
  27. package/dist/client/types/app/bsky/feed/getActorLikes.d.ts +0 -4
  28. package/dist/client/types/app/bsky/feed/getAuthorFeed.d.ts +0 -5
  29. package/dist/client/types/app/bsky/feed/getFeed.d.ts +0 -4
  30. package/dist/client/types/app/bsky/feed/getFeedGenerator.d.ts +0 -7
  31. package/dist/client/types/app/bsky/feed/getFeedGenerators.d.ts +0 -4
  32. package/dist/client/types/app/bsky/feed/getFeedSkeleton.d.ts +0 -5
  33. package/dist/client/types/app/bsky/feed/getLikes.d.ts +0 -6
  34. package/dist/client/types/app/bsky/feed/getListFeed.d.ts +0 -5
  35. package/dist/client/types/app/bsky/feed/getPostThread.d.ts +0 -7
  36. package/dist/client/types/app/bsky/feed/getPosts.d.ts +0 -5
  37. package/dist/client/types/app/bsky/feed/getRepostedBy.d.ts +0 -6
  38. package/dist/client/types/app/bsky/feed/getSuggestedFeeds.d.ts +0 -4
  39. package/dist/client/types/app/bsky/feed/getTimeline.d.ts +0 -5
  40. package/dist/client/types/app/bsky/feed/like.d.ts +0 -4
  41. package/dist/client/types/app/bsky/feed/post.d.ts +0 -13
  42. package/dist/client/types/app/bsky/feed/repost.d.ts +0 -4
  43. package/dist/client/types/app/bsky/feed/searchPosts.d.ts +0 -7
  44. package/dist/client/types/app/bsky/feed/threadgate.d.ts +0 -8
  45. package/dist/client/types/app/bsky/graph/block.d.ts +0 -5
  46. package/dist/client/types/app/bsky/graph/defs.d.ts +3 -10
  47. package/dist/client/types/app/bsky/graph/follow.d.ts +0 -4
  48. package/dist/client/types/app/bsky/graph/getBlocks.d.ts +0 -4
  49. package/dist/client/types/app/bsky/graph/getFollowers.d.ts +0 -4
  50. package/dist/client/types/app/bsky/graph/getFollows.d.ts +0 -4
  51. package/dist/client/types/app/bsky/graph/getList.d.ts +0 -5
  52. package/dist/client/types/app/bsky/graph/getListBlocks.d.ts +0 -4
  53. package/dist/client/types/app/bsky/graph/getListMutes.d.ts +0 -4
  54. package/dist/client/types/app/bsky/graph/getLists.d.ts +0 -5
  55. package/dist/client/types/app/bsky/graph/getMutes.d.ts +0 -4
  56. package/dist/client/types/app/bsky/graph/getRelationships.d.ts +0 -6
  57. package/dist/client/types/app/bsky/graph/getSuggestedFollowsByActor.d.ts +0 -4
  58. package/dist/client/types/app/bsky/graph/list.d.ts +0 -5
  59. package/dist/client/types/app/bsky/graph/listblock.d.ts +0 -5
  60. package/dist/client/types/app/bsky/graph/listitem.d.ts +0 -6
  61. package/dist/client/types/app/bsky/graph/muteActor.d.ts +0 -4
  62. package/dist/client/types/app/bsky/graph/muteActorList.d.ts +0 -4
  63. package/dist/client/types/app/bsky/graph/unmuteActor.d.ts +0 -4
  64. package/dist/client/types/app/bsky/graph/unmuteActorList.d.ts +0 -4
  65. package/dist/client/types/app/bsky/labeler/defs.d.ts +41 -0
  66. package/dist/client/types/app/bsky/labeler/getServices.d.ts +23 -0
  67. package/dist/client/types/app/bsky/labeler/service.d.ts +14 -0
  68. package/dist/client/types/app/bsky/notification/getUnreadCount.d.ts +0 -4
  69. package/dist/client/types/app/bsky/notification/listNotifications.d.ts +0 -5
  70. package/dist/client/types/app/bsky/notification/registerPush.d.ts +0 -4
  71. package/dist/client/types/app/bsky/notification/updateSeen.d.ts +0 -4
  72. package/dist/client/types/app/bsky/richtext/facet.d.ts +0 -9
  73. package/dist/client/types/app/bsky/unspecced/defs.d.ts +0 -4
  74. package/dist/client/types/app/bsky/unspecced/getPopularFeedGenerators.d.ts +0 -4
  75. package/dist/client/types/app/bsky/unspecced/getTaggedSuggestions.d.ts +0 -4
  76. package/dist/client/types/app/bsky/unspecced/searchActorsSkeleton.d.ts +0 -8
  77. package/dist/client/types/app/bsky/unspecced/searchPostsSkeleton.d.ts +0 -7
  78. package/dist/client/types/com/atproto/admin/defs.d.ts +0 -340
  79. package/dist/client/types/com/atproto/admin/deleteAccount.d.ts +0 -4
  80. package/dist/client/types/com/atproto/admin/disableAccountInvites.d.ts +0 -5
  81. package/dist/client/types/com/atproto/admin/disableInviteCodes.d.ts +0 -4
  82. package/dist/client/types/com/atproto/admin/enableAccountInvites.d.ts +0 -5
  83. package/dist/client/types/com/atproto/admin/getAccountInfo.d.ts +0 -4
  84. package/dist/client/types/com/atproto/admin/getAccountInfos.d.ts +0 -4
  85. package/dist/client/types/com/atproto/admin/getInviteCodes.d.ts +0 -4
  86. package/dist/client/types/com/atproto/admin/getSubjectStatus.d.ts +0 -4
  87. package/dist/client/types/com/atproto/admin/sendEmail.d.ts +0 -5
  88. package/dist/client/types/com/atproto/admin/updateAccountEmail.d.ts +0 -5
  89. package/dist/client/types/com/atproto/admin/updateAccountHandle.d.ts +0 -4
  90. package/dist/client/types/com/atproto/admin/updateAccountPassword.d.ts +0 -4
  91. package/dist/client/types/com/atproto/admin/updateSubjectStatus.d.ts +0 -4
  92. package/dist/client/types/com/atproto/identity/getRecommendedDidCredentials.d.ts +0 -5
  93. package/dist/client/types/com/atproto/identity/requestPlcOperationSignature.d.ts +0 -4
  94. package/dist/client/types/com/atproto/identity/resolveHandle.d.ts +0 -5
  95. package/dist/client/types/com/atproto/identity/signPlcOperation.d.ts +0 -6
  96. package/dist/client/types/com/atproto/identity/submitPlcOperation.d.ts +0 -4
  97. package/dist/client/types/com/atproto/identity/updateHandle.d.ts +0 -5
  98. package/dist/client/types/com/atproto/label/defs.d.ts +23 -14
  99. package/dist/client/types/com/atproto/label/queryLabels.d.ts +0 -6
  100. package/dist/client/types/com/atproto/label/subscribeLabels.d.ts +0 -1
  101. package/dist/client/types/com/atproto/moderation/createReport.d.ts +0 -5
  102. package/dist/client/types/com/atproto/moderation/defs.d.ts +0 -8
  103. package/dist/client/types/com/atproto/repo/applyWrites.d.ts +0 -10
  104. package/dist/client/types/com/atproto/repo/createRecord.d.ts +0 -10
  105. package/dist/client/types/com/atproto/repo/deleteRecord.d.ts +0 -9
  106. package/dist/client/types/com/atproto/repo/describeRepo.d.ts +0 -8
  107. package/dist/client/types/com/atproto/repo/getRecord.d.ts +0 -8
  108. package/dist/client/types/com/atproto/repo/importRepo.d.ts +0 -4
  109. package/dist/client/types/com/atproto/repo/listMissingBlobs.d.ts +0 -4
  110. package/dist/client/types/com/atproto/repo/listRecords.d.ts +0 -10
  111. package/dist/client/types/com/atproto/repo/putRecord.d.ts +0 -11
  112. package/dist/client/types/com/atproto/repo/strongRef.d.ts +0 -4
  113. package/dist/client/types/com/atproto/repo/uploadBlob.d.ts +0 -4
  114. package/dist/client/types/com/atproto/server/activateAccount.d.ts +0 -4
  115. package/dist/client/types/com/atproto/server/checkAccountStatus.d.ts +0 -4
  116. package/dist/client/types/com/atproto/server/confirmEmail.d.ts +0 -4
  117. package/dist/client/types/com/atproto/server/createAccount.d.ts +0 -12
  118. package/dist/client/types/com/atproto/server/createAppPassword.d.ts +0 -5
  119. package/dist/client/types/com/atproto/server/createInviteCode.d.ts +0 -4
  120. package/dist/client/types/com/atproto/server/createInviteCodes.d.ts +0 -4
  121. package/dist/client/types/com/atproto/server/createSession.d.ts +0 -5
  122. package/dist/client/types/com/atproto/server/deactivateAccount.d.ts +0 -5
  123. package/dist/client/types/com/atproto/server/defs.d.ts +0 -4
  124. package/dist/client/types/com/atproto/server/deleteAccount.d.ts +0 -4
  125. package/dist/client/types/com/atproto/server/deleteSession.d.ts +0 -4
  126. package/dist/client/types/com/atproto/server/describeServer.d.ts +0 -7
  127. package/dist/client/types/com/atproto/server/getAccountInviteCodes.d.ts +0 -5
  128. package/dist/client/types/com/atproto/server/getServiceAuth.d.ts +0 -5
  129. package/dist/client/types/com/atproto/server/getSession.d.ts +0 -4
  130. package/dist/client/types/com/atproto/server/listAppPasswords.d.ts +0 -4
  131. package/dist/client/types/com/atproto/server/refreshSession.d.ts +0 -4
  132. package/dist/client/types/com/atproto/server/requestAccountDelete.d.ts +0 -4
  133. package/dist/client/types/com/atproto/server/requestEmailConfirmation.d.ts +0 -4
  134. package/dist/client/types/com/atproto/server/requestEmailUpdate.d.ts +0 -4
  135. package/dist/client/types/com/atproto/server/requestPasswordReset.d.ts +0 -4
  136. package/dist/client/types/com/atproto/server/reserveSigningKey.d.ts +0 -6
  137. package/dist/client/types/com/atproto/server/resetPassword.d.ts +0 -4
  138. package/dist/client/types/com/atproto/server/revokeAppPassword.d.ts +0 -4
  139. package/dist/client/types/com/atproto/server/updateEmail.d.ts +0 -5
  140. package/dist/client/types/com/atproto/sync/getBlob.d.ts +0 -6
  141. package/dist/client/types/com/atproto/sync/getBlocks.d.ts +0 -5
  142. package/dist/client/types/com/atproto/sync/getCheckout.d.ts +0 -5
  143. package/dist/client/types/com/atproto/sync/getHead.d.ts +0 -5
  144. package/dist/client/types/com/atproto/sync/getLatestCommit.d.ts +0 -5
  145. package/dist/client/types/com/atproto/sync/getRecord.d.ts +0 -7
  146. package/dist/client/types/com/atproto/sync/getRepo.d.ts +0 -6
  147. package/dist/client/types/com/atproto/sync/listBlobs.d.ts +0 -6
  148. package/dist/client/types/com/atproto/sync/listRepos.d.ts +0 -5
  149. package/dist/client/types/com/atproto/sync/notifyOfUpdate.d.ts +0 -5
  150. package/dist/client/types/com/atproto/sync/requestCrawl.d.ts +0 -5
  151. package/dist/client/types/com/atproto/sync/subscribeRepos.d.ts +0 -18
  152. package/dist/client/types/com/atproto/temp/checkSignupQueue.d.ts +0 -4
  153. package/dist/client/types/com/atproto/temp/fetchLabels.d.ts +0 -4
  154. package/dist/client/types/com/atproto/temp/requestPhoneVerification.d.ts +0 -4
  155. package/dist/client/types/{com/atproto/admin/createCommunicationTemplate.d.ts → tools/ozone/communication/createTemplate.d.ts} +2 -10
  156. package/dist/client/types/tools/ozone/communication/defs.d.ts +14 -0
  157. package/dist/client/types/{com/atproto/admin/deleteCommunicationTemplate.d.ts → tools/ozone/communication/deleteTemplate.d.ts} +0 -4
  158. package/dist/client/types/{com/atproto/admin/listCommunicationTemplates.d.ts → tools/ozone/communication/listTemplates.d.ts} +2 -6
  159. package/dist/client/types/{com/atproto/admin/updateCommunicationTemplate.d.ts → tools/ozone/communication/updateTemplate.d.ts} +2 -11
  160. package/dist/client/types/tools/ozone/moderation/defs.d.ts +269 -0
  161. package/dist/client/types/tools/ozone/moderation/emitEvent.d.ts +34 -0
  162. package/dist/client/types/{com/atproto/admin/getModerationEvent.d.ts → tools/ozone/moderation/getEvent.d.ts} +2 -6
  163. package/dist/client/types/{com/atproto/admin → tools/ozone/moderation}/getRecord.d.ts +2 -6
  164. package/dist/client/types/{com/atproto/admin → tools/ozone/moderation}/getRepo.d.ts +2 -6
  165. package/dist/client/types/tools/ozone/moderation/queryEvents.d.ts +35 -0
  166. package/dist/client/types/{com/atproto/admin/queryModerationStatuses.d.ts → tools/ozone/moderation/queryStatuses.d.ts} +2 -16
  167. package/dist/client/types/{com/atproto/admin → tools/ozone/moderation}/searchRepos.d.ts +2 -7
  168. package/dist/client/util.d.ts +0 -4
  169. package/dist/const.d.ts +1 -0
  170. package/dist/index.d.ts +5 -3
  171. package/dist/index.js +32694 -43
  172. package/dist/index.js.map +7 -1
  173. package/dist/mocker.d.ts +58 -0
  174. package/dist/moderation/const/labels.d.ts +4 -4
  175. package/dist/moderation/decision.d.ts +28 -0
  176. package/dist/moderation/index.d.ts +11 -45
  177. package/dist/moderation/mutewords.d.ts +8 -0
  178. package/dist/moderation/subjects/account.d.ts +2 -2
  179. package/dist/moderation/subjects/feed-generator.d.ts +3 -3
  180. package/dist/moderation/subjects/notification.d.ts +3 -0
  181. package/dist/moderation/subjects/post.d.ts +2 -2
  182. package/dist/moderation/subjects/profile.d.ts +2 -2
  183. package/dist/moderation/subjects/user-list.d.ts +3 -3
  184. package/dist/moderation/types.d.ts +63 -62
  185. package/dist/moderation/ui.d.ts +12 -0
  186. package/dist/moderation/util.d.ts +4 -9
  187. package/dist/rich-text/detection.d.ts +0 -1
  188. package/dist/rich-text/rich-text.d.ts +0 -13
  189. package/dist/rich-text/sanitization.d.ts +0 -1
  190. package/dist/rich-text/unicode.d.ts +0 -9
  191. package/dist/rich-text/util.d.ts +4 -0
  192. package/dist/types.d.ts +5 -45
  193. package/dist/util.d.ts +1 -0
  194. package/docs/moderation.md +204 -97
  195. package/jest.bench.config.js +8 -0
  196. package/jest.config.js +3 -6
  197. package/package.json +17 -13
  198. package/scripts/code/labels.mjs +17 -35
  199. package/scripts/generate-code.mjs +0 -1
  200. package/src/agent.ts +78 -13
  201. package/src/bsky-agent.ts +394 -92
  202. package/src/client/index.ts +292 -173
  203. package/src/client/lexicons.ts +6266 -5963
  204. package/src/client/types/app/bsky/actor/defs.ts +58 -2
  205. package/src/client/types/app/bsky/embed/record.ts +2 -0
  206. package/src/client/types/app/bsky/feed/defs.ts +1 -0
  207. package/src/client/types/app/bsky/graph/defs.ts +3 -0
  208. package/src/client/types/app/bsky/labeler/defs.ts +93 -0
  209. package/src/client/types/app/bsky/labeler/getServices.ts +41 -0
  210. package/src/client/types/app/bsky/labeler/service.ts +31 -0
  211. package/src/client/types/com/atproto/admin/defs.ts +0 -692
  212. package/src/client/types/com/atproto/label/defs.ts +78 -0
  213. package/src/client/types/{com/atproto/admin/createCommunicationTemplate.ts → tools/ozone/communication/createTemplate.ts} +2 -2
  214. package/src/client/types/tools/ozone/communication/defs.ts +35 -0
  215. package/src/client/types/{com/atproto/admin/listCommunicationTemplates.ts → tools/ozone/communication/listTemplates.ts} +2 -2
  216. package/src/client/types/{com/atproto/admin/updateCommunicationTemplate.ts → tools/ozone/communication/updateTemplate.ts} +2 -2
  217. package/src/client/types/tools/ozone/moderation/defs.ts +641 -0
  218. package/src/client/types/{com/atproto/admin/emitModerationEvent.ts → tools/ozone/moderation/emitEvent.ts} +15 -14
  219. package/src/client/types/{com/atproto/admin/getModerationEvent.ts → tools/ozone/moderation/getEvent.ts} +2 -2
  220. package/src/client/types/{com/atproto/admin → tools/ozone/moderation}/getRecord.ts +2 -2
  221. package/src/client/types/{com/atproto/admin → tools/ozone/moderation}/getRepo.ts +2 -2
  222. package/src/client/types/{com/atproto/admin/queryModerationEvents.ts → tools/ozone/moderation/queryEvents.ts} +3 -3
  223. package/src/client/types/{com/atproto/admin/queryModerationStatuses.ts → tools/ozone/moderation/queryStatuses.ts} +2 -2
  224. package/src/client/types/{com/atproto/admin → tools/ozone/moderation}/searchRepos.ts +2 -2
  225. package/src/const.ts +1 -0
  226. package/src/index.ts +5 -2
  227. package/src/mocker.ts +218 -0
  228. package/src/moderation/const/labels.ts +193 -856
  229. package/src/moderation/decision.ts +383 -0
  230. package/src/moderation/index.ts +26 -311
  231. package/src/moderation/mutewords.ts +125 -0
  232. package/src/moderation/subjects/account.ts +6 -10
  233. package/src/moderation/subjects/feed-generator.ts +20 -9
  234. package/src/moderation/subjects/notification.ts +25 -0
  235. package/src/moderation/subjects/post.ts +263 -8
  236. package/src/moderation/subjects/profile.ts +6 -11
  237. package/src/moderation/subjects/user-list.ts +40 -9
  238. package/src/moderation/types.ts +124 -81
  239. package/src/moderation/ui.ts +21 -0
  240. package/src/moderation/util.ts +99 -72
  241. package/src/rich-text/detection.ts +18 -12
  242. package/src/rich-text/util.ts +11 -0
  243. package/src/types.ts +9 -12
  244. package/src/util.ts +6 -0
  245. package/tests/agent.test.ts +86 -0
  246. package/tests/bsky-agent.test.ts +556 -196
  247. package/tests/moderation-behaviors.test.ts +914 -0
  248. package/tests/moderation-custom-labels.test.ts +333 -0
  249. package/tests/moderation-mutewords.test.ts +691 -0
  250. package/tests/moderation-prefs.test.ts +341 -0
  251. package/tests/moderation-quoteposts.test.ts +277 -0
  252. package/tests/moderation.test.ts +550 -183
  253. package/tests/rich-text-detection.test.ts +54 -7
  254. package/tests/util/echo-server.ts +21 -0
  255. package/tests/util/index.ts +1 -154
  256. package/tests/util/moderation-behavior.ts +178 -24
  257. package/tsconfig.build.json +2 -7
  258. package/tsconfig.json +9 -3
  259. package/definitions/locale/en/label-groups.json +0 -38
  260. package/definitions/locale/en/labels.json +0 -394
  261. package/definitions/locale/en/proposed-label-groups.json +0 -38
  262. package/definitions/locale/en/proposed-labels.json +0 -632
  263. package/definitions/moderation-behaviors.d.ts +0 -50
  264. package/definitions/post-moderation-behaviors.json +0 -1222
  265. package/definitions/profile-moderation-behaviors.json +0 -597
  266. package/definitions/proposed-labels.json +0 -326
  267. package/dist/agent.d.ts.map +0 -1
  268. package/dist/agent.js +0 -363
  269. package/dist/agent.js.map +0 -1
  270. package/dist/bsky-agent.d.ts.map +0 -1
  271. package/dist/bsky-agent.js +0 -648
  272. package/dist/bsky-agent.js.map +0 -1
  273. package/dist/client/index.d.ts.map +0 -1
  274. package/dist/client/index.js +0 -2063
  275. package/dist/client/index.js.map +0 -1
  276. package/dist/client/lexicons.d.ts.map +0 -1
  277. package/dist/client/lexicons.js +0 -8776
  278. package/dist/client/lexicons.js.map +0 -1
  279. package/dist/client/types/app/bsky/actor/defs.d.ts.map +0 -1
  280. package/dist/client/types/app/bsky/actor/defs.js +0 -146
  281. package/dist/client/types/app/bsky/actor/defs.js.map +0 -1
  282. package/dist/client/types/app/bsky/actor/getPreferences.d.ts.map +0 -1
  283. package/dist/client/types/app/bsky/actor/getPreferences.js +0 -14
  284. package/dist/client/types/app/bsky/actor/getPreferences.js.map +0 -1
  285. package/dist/client/types/app/bsky/actor/getProfile.d.ts.map +0 -1
  286. package/dist/client/types/app/bsky/actor/getProfile.js +0 -14
  287. package/dist/client/types/app/bsky/actor/getProfile.js.map +0 -1
  288. package/dist/client/types/app/bsky/actor/getProfiles.d.ts.map +0 -1
  289. package/dist/client/types/app/bsky/actor/getProfiles.js +0 -14
  290. package/dist/client/types/app/bsky/actor/getProfiles.js.map +0 -1
  291. package/dist/client/types/app/bsky/actor/getSuggestions.d.ts.map +0 -1
  292. package/dist/client/types/app/bsky/actor/getSuggestions.js +0 -14
  293. package/dist/client/types/app/bsky/actor/getSuggestions.js.map +0 -1
  294. package/dist/client/types/app/bsky/actor/profile.d.ts.map +0 -1
  295. package/dist/client/types/app/bsky/actor/profile.js +0 -17
  296. package/dist/client/types/app/bsky/actor/profile.js.map +0 -1
  297. package/dist/client/types/app/bsky/actor/putPreferences.d.ts.map +0 -1
  298. package/dist/client/types/app/bsky/actor/putPreferences.js +0 -14
  299. package/dist/client/types/app/bsky/actor/putPreferences.js.map +0 -1
  300. package/dist/client/types/app/bsky/actor/searchActors.d.ts.map +0 -1
  301. package/dist/client/types/app/bsky/actor/searchActors.js +0 -14
  302. package/dist/client/types/app/bsky/actor/searchActors.js.map +0 -1
  303. package/dist/client/types/app/bsky/actor/searchActorsTypeahead.d.ts.map +0 -1
  304. package/dist/client/types/app/bsky/actor/searchActorsTypeahead.js +0 -14
  305. package/dist/client/types/app/bsky/actor/searchActorsTypeahead.js.map +0 -1
  306. package/dist/client/types/app/bsky/embed/external.d.ts.map +0 -1
  307. package/dist/client/types/app/bsky/embed/external.js +0 -47
  308. package/dist/client/types/app/bsky/embed/external.js.map +0 -1
  309. package/dist/client/types/app/bsky/embed/images.d.ts.map +0 -1
  310. package/dist/client/types/app/bsky/embed/images.js +0 -53
  311. package/dist/client/types/app/bsky/embed/images.js.map +0 -1
  312. package/dist/client/types/app/bsky/embed/record.d.ts.map +0 -1
  313. package/dist/client/types/app/bsky/embed/record.js +0 -55
  314. package/dist/client/types/app/bsky/embed/record.js.map +0 -1
  315. package/dist/client/types/app/bsky/embed/recordWithMedia.d.ts.map +0 -1
  316. package/dist/client/types/app/bsky/embed/recordWithMedia.js +0 -27
  317. package/dist/client/types/app/bsky/embed/recordWithMedia.js.map +0 -1
  318. package/dist/client/types/app/bsky/feed/defs.d.ts.map +0 -1
  319. package/dist/client/types/app/bsky/feed/defs.js +0 -142
  320. package/dist/client/types/app/bsky/feed/defs.js.map +0 -1
  321. package/dist/client/types/app/bsky/feed/describeFeedGenerator.d.ts.map +0 -1
  322. package/dist/client/types/app/bsky/feed/describeFeedGenerator.js +0 -36
  323. package/dist/client/types/app/bsky/feed/describeFeedGenerator.js.map +0 -1
  324. package/dist/client/types/app/bsky/feed/generator.d.ts.map +0 -1
  325. package/dist/client/types/app/bsky/feed/generator.js +0 -17
  326. package/dist/client/types/app/bsky/feed/generator.js.map +0 -1
  327. package/dist/client/types/app/bsky/feed/getActorFeeds.d.ts.map +0 -1
  328. package/dist/client/types/app/bsky/feed/getActorFeeds.js +0 -14
  329. package/dist/client/types/app/bsky/feed/getActorFeeds.js.map +0 -1
  330. package/dist/client/types/app/bsky/feed/getActorLikes.d.ts.map +0 -1
  331. package/dist/client/types/app/bsky/feed/getActorLikes.js +0 -30
  332. package/dist/client/types/app/bsky/feed/getActorLikes.js.map +0 -1
  333. package/dist/client/types/app/bsky/feed/getAuthorFeed.d.ts.map +0 -1
  334. package/dist/client/types/app/bsky/feed/getAuthorFeed.js +0 -30
  335. package/dist/client/types/app/bsky/feed/getAuthorFeed.js.map +0 -1
  336. package/dist/client/types/app/bsky/feed/getFeed.d.ts.map +0 -1
  337. package/dist/client/types/app/bsky/feed/getFeed.js +0 -22
  338. package/dist/client/types/app/bsky/feed/getFeed.js.map +0 -1
  339. package/dist/client/types/app/bsky/feed/getFeedGenerator.d.ts.map +0 -1
  340. package/dist/client/types/app/bsky/feed/getFeedGenerator.js +0 -14
  341. package/dist/client/types/app/bsky/feed/getFeedGenerator.js.map +0 -1
  342. package/dist/client/types/app/bsky/feed/getFeedGenerators.d.ts.map +0 -1
  343. package/dist/client/types/app/bsky/feed/getFeedGenerators.js +0 -14
  344. package/dist/client/types/app/bsky/feed/getFeedGenerators.js.map +0 -1
  345. package/dist/client/types/app/bsky/feed/getFeedSkeleton.d.ts.map +0 -1
  346. package/dist/client/types/app/bsky/feed/getFeedSkeleton.js +0 -22
  347. package/dist/client/types/app/bsky/feed/getFeedSkeleton.js.map +0 -1
  348. package/dist/client/types/app/bsky/feed/getLikes.d.ts.map +0 -1
  349. package/dist/client/types/app/bsky/feed/getLikes.js +0 -24
  350. package/dist/client/types/app/bsky/feed/getLikes.js.map +0 -1
  351. package/dist/client/types/app/bsky/feed/getListFeed.d.ts.map +0 -1
  352. package/dist/client/types/app/bsky/feed/getListFeed.js +0 -22
  353. package/dist/client/types/app/bsky/feed/getListFeed.js.map +0 -1
  354. package/dist/client/types/app/bsky/feed/getPostThread.d.ts.map +0 -1
  355. package/dist/client/types/app/bsky/feed/getPostThread.js +0 -22
  356. package/dist/client/types/app/bsky/feed/getPostThread.js.map +0 -1
  357. package/dist/client/types/app/bsky/feed/getPosts.d.ts.map +0 -1
  358. package/dist/client/types/app/bsky/feed/getPosts.js +0 -14
  359. package/dist/client/types/app/bsky/feed/getPosts.js.map +0 -1
  360. package/dist/client/types/app/bsky/feed/getRepostedBy.d.ts.map +0 -1
  361. package/dist/client/types/app/bsky/feed/getRepostedBy.js +0 -14
  362. package/dist/client/types/app/bsky/feed/getRepostedBy.js.map +0 -1
  363. package/dist/client/types/app/bsky/feed/getSuggestedFeeds.d.ts.map +0 -1
  364. package/dist/client/types/app/bsky/feed/getSuggestedFeeds.js +0 -14
  365. package/dist/client/types/app/bsky/feed/getSuggestedFeeds.js.map +0 -1
  366. package/dist/client/types/app/bsky/feed/getTimeline.d.ts.map +0 -1
  367. package/dist/client/types/app/bsky/feed/getTimeline.js +0 -14
  368. package/dist/client/types/app/bsky/feed/getTimeline.js.map +0 -1
  369. package/dist/client/types/app/bsky/feed/like.d.ts.map +0 -1
  370. package/dist/client/types/app/bsky/feed/like.js +0 -16
  371. package/dist/client/types/app/bsky/feed/like.js.map +0 -1
  372. package/dist/client/types/app/bsky/feed/post.d.ts.map +0 -1
  373. package/dist/client/types/app/bsky/feed/post.js +0 -42
  374. package/dist/client/types/app/bsky/feed/post.js.map +0 -1
  375. package/dist/client/types/app/bsky/feed/repost.d.ts.map +0 -1
  376. package/dist/client/types/app/bsky/feed/repost.js +0 -17
  377. package/dist/client/types/app/bsky/feed/repost.js.map +0 -1
  378. package/dist/client/types/app/bsky/feed/searchPosts.d.ts.map +0 -1
  379. package/dist/client/types/app/bsky/feed/searchPosts.js +0 -22
  380. package/dist/client/types/app/bsky/feed/searchPosts.js.map +0 -1
  381. package/dist/client/types/app/bsky/feed/threadgate.d.ts.map +0 -1
  382. package/dist/client/types/app/bsky/feed/threadgate.js +0 -47
  383. package/dist/client/types/app/bsky/feed/threadgate.js.map +0 -1
  384. package/dist/client/types/app/bsky/graph/block.d.ts.map +0 -1
  385. package/dist/client/types/app/bsky/graph/block.js +0 -17
  386. package/dist/client/types/app/bsky/graph/block.js.map +0 -1
  387. package/dist/client/types/app/bsky/graph/defs.d.ts.map +0 -1
  388. package/dist/client/types/app/bsky/graph/defs.js +0 -70
  389. package/dist/client/types/app/bsky/graph/defs.js.map +0 -1
  390. package/dist/client/types/app/bsky/graph/follow.d.ts.map +0 -1
  391. package/dist/client/types/app/bsky/graph/follow.js +0 -17
  392. package/dist/client/types/app/bsky/graph/follow.js.map +0 -1
  393. package/dist/client/types/app/bsky/graph/getBlocks.d.ts.map +0 -1
  394. package/dist/client/types/app/bsky/graph/getBlocks.js +0 -14
  395. package/dist/client/types/app/bsky/graph/getBlocks.js.map +0 -1
  396. package/dist/client/types/app/bsky/graph/getFollowers.d.ts.map +0 -1
  397. package/dist/client/types/app/bsky/graph/getFollowers.js +0 -14
  398. package/dist/client/types/app/bsky/graph/getFollowers.js.map +0 -1
  399. package/dist/client/types/app/bsky/graph/getFollows.d.ts.map +0 -1
  400. package/dist/client/types/app/bsky/graph/getFollows.js +0 -14
  401. package/dist/client/types/app/bsky/graph/getFollows.js.map +0 -1
  402. package/dist/client/types/app/bsky/graph/getList.d.ts.map +0 -1
  403. package/dist/client/types/app/bsky/graph/getList.js +0 -14
  404. package/dist/client/types/app/bsky/graph/getList.js.map +0 -1
  405. package/dist/client/types/app/bsky/graph/getListBlocks.d.ts.map +0 -1
  406. package/dist/client/types/app/bsky/graph/getListBlocks.js +0 -14
  407. package/dist/client/types/app/bsky/graph/getListBlocks.js.map +0 -1
  408. package/dist/client/types/app/bsky/graph/getListMutes.d.ts.map +0 -1
  409. package/dist/client/types/app/bsky/graph/getListMutes.js +0 -14
  410. package/dist/client/types/app/bsky/graph/getListMutes.js.map +0 -1
  411. package/dist/client/types/app/bsky/graph/getLists.d.ts.map +0 -1
  412. package/dist/client/types/app/bsky/graph/getLists.js +0 -14
  413. package/dist/client/types/app/bsky/graph/getLists.js.map +0 -1
  414. package/dist/client/types/app/bsky/graph/getMutes.d.ts.map +0 -1
  415. package/dist/client/types/app/bsky/graph/getMutes.js +0 -14
  416. package/dist/client/types/app/bsky/graph/getMutes.js.map +0 -1
  417. package/dist/client/types/app/bsky/graph/getRelationships.d.ts.map +0 -1
  418. package/dist/client/types/app/bsky/graph/getRelationships.js +0 -22
  419. package/dist/client/types/app/bsky/graph/getRelationships.js.map +0 -1
  420. package/dist/client/types/app/bsky/graph/getSuggestedFollowsByActor.d.ts.map +0 -1
  421. package/dist/client/types/app/bsky/graph/getSuggestedFollowsByActor.js +0 -14
  422. package/dist/client/types/app/bsky/graph/getSuggestedFollowsByActor.js.map +0 -1
  423. package/dist/client/types/app/bsky/graph/list.d.ts.map +0 -1
  424. package/dist/client/types/app/bsky/graph/list.js +0 -17
  425. package/dist/client/types/app/bsky/graph/list.js.map +0 -1
  426. package/dist/client/types/app/bsky/graph/listblock.d.ts.map +0 -1
  427. package/dist/client/types/app/bsky/graph/listblock.js +0 -17
  428. package/dist/client/types/app/bsky/graph/listblock.js.map +0 -1
  429. package/dist/client/types/app/bsky/graph/listitem.d.ts.map +0 -1
  430. package/dist/client/types/app/bsky/graph/listitem.js +0 -17
  431. package/dist/client/types/app/bsky/graph/listitem.js.map +0 -1
  432. package/dist/client/types/app/bsky/graph/muteActor.d.ts.map +0 -1
  433. package/dist/client/types/app/bsky/graph/muteActor.js +0 -14
  434. package/dist/client/types/app/bsky/graph/muteActor.js.map +0 -1
  435. package/dist/client/types/app/bsky/graph/muteActorList.d.ts.map +0 -1
  436. package/dist/client/types/app/bsky/graph/muteActorList.js +0 -14
  437. package/dist/client/types/app/bsky/graph/muteActorList.js.map +0 -1
  438. package/dist/client/types/app/bsky/graph/unmuteActor.d.ts.map +0 -1
  439. package/dist/client/types/app/bsky/graph/unmuteActor.js +0 -14
  440. package/dist/client/types/app/bsky/graph/unmuteActor.js.map +0 -1
  441. package/dist/client/types/app/bsky/graph/unmuteActorList.d.ts.map +0 -1
  442. package/dist/client/types/app/bsky/graph/unmuteActorList.js +0 -14
  443. package/dist/client/types/app/bsky/graph/unmuteActorList.js.map +0 -1
  444. package/dist/client/types/app/bsky/notification/getUnreadCount.d.ts.map +0 -1
  445. package/dist/client/types/app/bsky/notification/getUnreadCount.js +0 -14
  446. package/dist/client/types/app/bsky/notification/getUnreadCount.js.map +0 -1
  447. package/dist/client/types/app/bsky/notification/listNotifications.d.ts.map +0 -1
  448. package/dist/client/types/app/bsky/notification/listNotifications.js +0 -26
  449. package/dist/client/types/app/bsky/notification/listNotifications.js.map +0 -1
  450. package/dist/client/types/app/bsky/notification/registerPush.d.ts.map +0 -1
  451. package/dist/client/types/app/bsky/notification/registerPush.js +0 -14
  452. package/dist/client/types/app/bsky/notification/registerPush.js.map +0 -1
  453. package/dist/client/types/app/bsky/notification/updateSeen.d.ts.map +0 -1
  454. package/dist/client/types/app/bsky/notification/updateSeen.js +0 -14
  455. package/dist/client/types/app/bsky/notification/updateSeen.js.map +0 -1
  456. package/dist/client/types/app/bsky/richtext/facet.d.ts.map +0 -1
  457. package/dist/client/types/app/bsky/richtext/facet.js +0 -55
  458. package/dist/client/types/app/bsky/richtext/facet.js.map +0 -1
  459. package/dist/client/types/app/bsky/unspecced/defs.d.ts.map +0 -1
  460. package/dist/client/types/app/bsky/unspecced/defs.js +0 -26
  461. package/dist/client/types/app/bsky/unspecced/defs.js.map +0 -1
  462. package/dist/client/types/app/bsky/unspecced/getPopularFeedGenerators.d.ts.map +0 -1
  463. package/dist/client/types/app/bsky/unspecced/getPopularFeedGenerators.js +0 -14
  464. package/dist/client/types/app/bsky/unspecced/getPopularFeedGenerators.js.map +0 -1
  465. package/dist/client/types/app/bsky/unspecced/getTaggedSuggestions.d.ts.map +0 -1
  466. package/dist/client/types/app/bsky/unspecced/getTaggedSuggestions.js +0 -26
  467. package/dist/client/types/app/bsky/unspecced/getTaggedSuggestions.js.map +0 -1
  468. package/dist/client/types/app/bsky/unspecced/searchActorsSkeleton.d.ts.map +0 -1
  469. package/dist/client/types/app/bsky/unspecced/searchActorsSkeleton.js +0 -22
  470. package/dist/client/types/app/bsky/unspecced/searchActorsSkeleton.js.map +0 -1
  471. package/dist/client/types/app/bsky/unspecced/searchPostsSkeleton.d.ts.map +0 -1
  472. package/dist/client/types/app/bsky/unspecced/searchPostsSkeleton.js +0 -22
  473. package/dist/client/types/app/bsky/unspecced/searchPostsSkeleton.js.map +0 -1
  474. package/dist/client/types/com/atproto/admin/createCommunicationTemplate.d.ts.map +0 -1
  475. package/dist/client/types/com/atproto/admin/createCommunicationTemplate.js +0 -14
  476. package/dist/client/types/com/atproto/admin/createCommunicationTemplate.js.map +0 -1
  477. package/dist/client/types/com/atproto/admin/defs.d.ts.map +0 -1
  478. package/dist/client/types/com/atproto/admin/defs.js +0 -343
  479. package/dist/client/types/com/atproto/admin/defs.js.map +0 -1
  480. package/dist/client/types/com/atproto/admin/deleteAccount.d.ts.map +0 -1
  481. package/dist/client/types/com/atproto/admin/deleteAccount.js +0 -14
  482. package/dist/client/types/com/atproto/admin/deleteAccount.js.map +0 -1
  483. package/dist/client/types/com/atproto/admin/deleteCommunicationTemplate.d.ts.map +0 -1
  484. package/dist/client/types/com/atproto/admin/deleteCommunicationTemplate.js +0 -14
  485. package/dist/client/types/com/atproto/admin/deleteCommunicationTemplate.js.map +0 -1
  486. package/dist/client/types/com/atproto/admin/disableAccountInvites.d.ts.map +0 -1
  487. package/dist/client/types/com/atproto/admin/disableAccountInvites.js +0 -14
  488. package/dist/client/types/com/atproto/admin/disableAccountInvites.js.map +0 -1
  489. package/dist/client/types/com/atproto/admin/disableInviteCodes.d.ts.map +0 -1
  490. package/dist/client/types/com/atproto/admin/disableInviteCodes.js +0 -14
  491. package/dist/client/types/com/atproto/admin/disableInviteCodes.js.map +0 -1
  492. package/dist/client/types/com/atproto/admin/emitModerationEvent.d.ts +0 -37
  493. package/dist/client/types/com/atproto/admin/emitModerationEvent.d.ts.map +0 -1
  494. package/dist/client/types/com/atproto/admin/emitModerationEvent.js +0 -22
  495. package/dist/client/types/com/atproto/admin/emitModerationEvent.js.map +0 -1
  496. package/dist/client/types/com/atproto/admin/enableAccountInvites.d.ts.map +0 -1
  497. package/dist/client/types/com/atproto/admin/enableAccountInvites.js +0 -14
  498. package/dist/client/types/com/atproto/admin/enableAccountInvites.js.map +0 -1
  499. package/dist/client/types/com/atproto/admin/getAccountInfo.d.ts.map +0 -1
  500. package/dist/client/types/com/atproto/admin/getAccountInfo.js +0 -14
  501. package/dist/client/types/com/atproto/admin/getAccountInfo.js.map +0 -1
  502. package/dist/client/types/com/atproto/admin/getAccountInfos.d.ts.map +0 -1
  503. package/dist/client/types/com/atproto/admin/getAccountInfos.js +0 -14
  504. package/dist/client/types/com/atproto/admin/getAccountInfos.js.map +0 -1
  505. package/dist/client/types/com/atproto/admin/getInviteCodes.d.ts.map +0 -1
  506. package/dist/client/types/com/atproto/admin/getInviteCodes.js +0 -14
  507. package/dist/client/types/com/atproto/admin/getInviteCodes.js.map +0 -1
  508. package/dist/client/types/com/atproto/admin/getModerationEvent.d.ts.map +0 -1
  509. package/dist/client/types/com/atproto/admin/getModerationEvent.js +0 -14
  510. package/dist/client/types/com/atproto/admin/getModerationEvent.js.map +0 -1
  511. package/dist/client/types/com/atproto/admin/getRecord.d.ts.map +0 -1
  512. package/dist/client/types/com/atproto/admin/getRecord.js +0 -22
  513. package/dist/client/types/com/atproto/admin/getRecord.js.map +0 -1
  514. package/dist/client/types/com/atproto/admin/getRepo.d.ts.map +0 -1
  515. package/dist/client/types/com/atproto/admin/getRepo.js +0 -22
  516. package/dist/client/types/com/atproto/admin/getRepo.js.map +0 -1
  517. package/dist/client/types/com/atproto/admin/getSubjectStatus.d.ts.map +0 -1
  518. package/dist/client/types/com/atproto/admin/getSubjectStatus.js +0 -14
  519. package/dist/client/types/com/atproto/admin/getSubjectStatus.js.map +0 -1
  520. package/dist/client/types/com/atproto/admin/listCommunicationTemplates.d.ts.map +0 -1
  521. package/dist/client/types/com/atproto/admin/listCommunicationTemplates.js +0 -14
  522. package/dist/client/types/com/atproto/admin/listCommunicationTemplates.js.map +0 -1
  523. package/dist/client/types/com/atproto/admin/queryModerationEvents.d.ts +0 -50
  524. package/dist/client/types/com/atproto/admin/queryModerationEvents.d.ts.map +0 -1
  525. package/dist/client/types/com/atproto/admin/queryModerationEvents.js +0 -14
  526. package/dist/client/types/com/atproto/admin/queryModerationEvents.js.map +0 -1
  527. package/dist/client/types/com/atproto/admin/queryModerationStatuses.d.ts.map +0 -1
  528. package/dist/client/types/com/atproto/admin/queryModerationStatuses.js +0 -14
  529. package/dist/client/types/com/atproto/admin/queryModerationStatuses.js.map +0 -1
  530. package/dist/client/types/com/atproto/admin/searchRepos.d.ts.map +0 -1
  531. package/dist/client/types/com/atproto/admin/searchRepos.js +0 -14
  532. package/dist/client/types/com/atproto/admin/searchRepos.js.map +0 -1
  533. package/dist/client/types/com/atproto/admin/sendEmail.d.ts.map +0 -1
  534. package/dist/client/types/com/atproto/admin/sendEmail.js +0 -14
  535. package/dist/client/types/com/atproto/admin/sendEmail.js.map +0 -1
  536. package/dist/client/types/com/atproto/admin/updateAccountEmail.d.ts.map +0 -1
  537. package/dist/client/types/com/atproto/admin/updateAccountEmail.js +0 -14
  538. package/dist/client/types/com/atproto/admin/updateAccountEmail.js.map +0 -1
  539. package/dist/client/types/com/atproto/admin/updateAccountHandle.d.ts.map +0 -1
  540. package/dist/client/types/com/atproto/admin/updateAccountHandle.js +0 -14
  541. package/dist/client/types/com/atproto/admin/updateAccountHandle.js.map +0 -1
  542. package/dist/client/types/com/atproto/admin/updateAccountPassword.d.ts.map +0 -1
  543. package/dist/client/types/com/atproto/admin/updateAccountPassword.js +0 -14
  544. package/dist/client/types/com/atproto/admin/updateAccountPassword.js.map +0 -1
  545. package/dist/client/types/com/atproto/admin/updateCommunicationTemplate.d.ts.map +0 -1
  546. package/dist/client/types/com/atproto/admin/updateCommunicationTemplate.js +0 -14
  547. package/dist/client/types/com/atproto/admin/updateCommunicationTemplate.js.map +0 -1
  548. package/dist/client/types/com/atproto/admin/updateSubjectStatus.d.ts.map +0 -1
  549. package/dist/client/types/com/atproto/admin/updateSubjectStatus.js +0 -14
  550. package/dist/client/types/com/atproto/admin/updateSubjectStatus.js.map +0 -1
  551. package/dist/client/types/com/atproto/identity/getRecommendedDidCredentials.d.ts.map +0 -1
  552. package/dist/client/types/com/atproto/identity/getRecommendedDidCredentials.js +0 -14
  553. package/dist/client/types/com/atproto/identity/getRecommendedDidCredentials.js.map +0 -1
  554. package/dist/client/types/com/atproto/identity/requestPlcOperationSignature.d.ts.map +0 -1
  555. package/dist/client/types/com/atproto/identity/requestPlcOperationSignature.js +0 -14
  556. package/dist/client/types/com/atproto/identity/requestPlcOperationSignature.js.map +0 -1
  557. package/dist/client/types/com/atproto/identity/resolveHandle.d.ts.map +0 -1
  558. package/dist/client/types/com/atproto/identity/resolveHandle.js +0 -14
  559. package/dist/client/types/com/atproto/identity/resolveHandle.js.map +0 -1
  560. package/dist/client/types/com/atproto/identity/signPlcOperation.d.ts.map +0 -1
  561. package/dist/client/types/com/atproto/identity/signPlcOperation.js +0 -14
  562. package/dist/client/types/com/atproto/identity/signPlcOperation.js.map +0 -1
  563. package/dist/client/types/com/atproto/identity/submitPlcOperation.d.ts.map +0 -1
  564. package/dist/client/types/com/atproto/identity/submitPlcOperation.js +0 -14
  565. package/dist/client/types/com/atproto/identity/submitPlcOperation.js.map +0 -1
  566. package/dist/client/types/com/atproto/identity/updateHandle.d.ts.map +0 -1
  567. package/dist/client/types/com/atproto/identity/updateHandle.js +0 -14
  568. package/dist/client/types/com/atproto/identity/updateHandle.js.map +0 -1
  569. package/dist/client/types/com/atproto/label/defs.d.ts.map +0 -1
  570. package/dist/client/types/com/atproto/label/defs.js +0 -36
  571. package/dist/client/types/com/atproto/label/defs.js.map +0 -1
  572. package/dist/client/types/com/atproto/label/queryLabels.d.ts.map +0 -1
  573. package/dist/client/types/com/atproto/label/queryLabels.js +0 -14
  574. package/dist/client/types/com/atproto/label/queryLabels.js.map +0 -1
  575. package/dist/client/types/com/atproto/label/subscribeLabels.d.ts.map +0 -1
  576. package/dist/client/types/com/atproto/label/subscribeLabels.js +0 -26
  577. package/dist/client/types/com/atproto/label/subscribeLabels.js.map +0 -1
  578. package/dist/client/types/com/atproto/moderation/createReport.d.ts.map +0 -1
  579. package/dist/client/types/com/atproto/moderation/createReport.js +0 -14
  580. package/dist/client/types/com/atproto/moderation/createReport.js.map +0 -1
  581. package/dist/client/types/com/atproto/moderation/defs.d.ts.map +0 -1
  582. package/dist/client/types/com/atproto/moderation/defs.js +0 -18
  583. package/dist/client/types/com/atproto/moderation/defs.js.map +0 -1
  584. package/dist/client/types/com/atproto/repo/applyWrites.d.ts.map +0 -1
  585. package/dist/client/types/com/atproto/repo/applyWrites.js +0 -54
  586. package/dist/client/types/com/atproto/repo/applyWrites.js.map +0 -1
  587. package/dist/client/types/com/atproto/repo/createRecord.d.ts.map +0 -1
  588. package/dist/client/types/com/atproto/repo/createRecord.js +0 -22
  589. package/dist/client/types/com/atproto/repo/createRecord.js.map +0 -1
  590. package/dist/client/types/com/atproto/repo/deleteRecord.d.ts.map +0 -1
  591. package/dist/client/types/com/atproto/repo/deleteRecord.js +0 -22
  592. package/dist/client/types/com/atproto/repo/deleteRecord.js.map +0 -1
  593. package/dist/client/types/com/atproto/repo/describeRepo.d.ts.map +0 -1
  594. package/dist/client/types/com/atproto/repo/describeRepo.js +0 -14
  595. package/dist/client/types/com/atproto/repo/describeRepo.js.map +0 -1
  596. package/dist/client/types/com/atproto/repo/getRecord.d.ts.map +0 -1
  597. package/dist/client/types/com/atproto/repo/getRecord.js +0 -14
  598. package/dist/client/types/com/atproto/repo/getRecord.js.map +0 -1
  599. package/dist/client/types/com/atproto/repo/importRepo.d.ts.map +0 -1
  600. package/dist/client/types/com/atproto/repo/importRepo.js +0 -14
  601. package/dist/client/types/com/atproto/repo/importRepo.js.map +0 -1
  602. package/dist/client/types/com/atproto/repo/listMissingBlobs.d.ts.map +0 -1
  603. package/dist/client/types/com/atproto/repo/listMissingBlobs.js +0 -26
  604. package/dist/client/types/com/atproto/repo/listMissingBlobs.js.map +0 -1
  605. package/dist/client/types/com/atproto/repo/listRecords.d.ts.map +0 -1
  606. package/dist/client/types/com/atproto/repo/listRecords.js +0 -26
  607. package/dist/client/types/com/atproto/repo/listRecords.js.map +0 -1
  608. package/dist/client/types/com/atproto/repo/putRecord.d.ts.map +0 -1
  609. package/dist/client/types/com/atproto/repo/putRecord.js +0 -22
  610. package/dist/client/types/com/atproto/repo/putRecord.js.map +0 -1
  611. package/dist/client/types/com/atproto/repo/strongRef.d.ts.map +0 -1
  612. package/dist/client/types/com/atproto/repo/strongRef.js +0 -17
  613. package/dist/client/types/com/atproto/repo/strongRef.js.map +0 -1
  614. package/dist/client/types/com/atproto/repo/uploadBlob.d.ts.map +0 -1
  615. package/dist/client/types/com/atproto/repo/uploadBlob.js +0 -14
  616. package/dist/client/types/com/atproto/repo/uploadBlob.js.map +0 -1
  617. package/dist/client/types/com/atproto/server/activateAccount.d.ts.map +0 -1
  618. package/dist/client/types/com/atproto/server/activateAccount.js +0 -14
  619. package/dist/client/types/com/atproto/server/activateAccount.js.map +0 -1
  620. package/dist/client/types/com/atproto/server/checkAccountStatus.d.ts.map +0 -1
  621. package/dist/client/types/com/atproto/server/checkAccountStatus.js +0 -14
  622. package/dist/client/types/com/atproto/server/checkAccountStatus.js.map +0 -1
  623. package/dist/client/types/com/atproto/server/confirmEmail.d.ts.map +0 -1
  624. package/dist/client/types/com/atproto/server/confirmEmail.js +0 -46
  625. package/dist/client/types/com/atproto/server/confirmEmail.js.map +0 -1
  626. package/dist/client/types/com/atproto/server/createAccount.d.ts.map +0 -1
  627. package/dist/client/types/com/atproto/server/createAccount.js +0 -70
  628. package/dist/client/types/com/atproto/server/createAccount.js.map +0 -1
  629. package/dist/client/types/com/atproto/server/createAppPassword.d.ts.map +0 -1
  630. package/dist/client/types/com/atproto/server/createAppPassword.js +0 -34
  631. package/dist/client/types/com/atproto/server/createAppPassword.js.map +0 -1
  632. package/dist/client/types/com/atproto/server/createInviteCode.d.ts.map +0 -1
  633. package/dist/client/types/com/atproto/server/createInviteCode.js +0 -14
  634. package/dist/client/types/com/atproto/server/createInviteCode.js.map +0 -1
  635. package/dist/client/types/com/atproto/server/createInviteCodes.d.ts.map +0 -1
  636. package/dist/client/types/com/atproto/server/createInviteCodes.js +0 -26
  637. package/dist/client/types/com/atproto/server/createInviteCodes.js.map +0 -1
  638. package/dist/client/types/com/atproto/server/createSession.d.ts.map +0 -1
  639. package/dist/client/types/com/atproto/server/createSession.js +0 -22
  640. package/dist/client/types/com/atproto/server/createSession.js.map +0 -1
  641. package/dist/client/types/com/atproto/server/deactivateAccount.d.ts.map +0 -1
  642. package/dist/client/types/com/atproto/server/deactivateAccount.js +0 -14
  643. package/dist/client/types/com/atproto/server/deactivateAccount.js.map +0 -1
  644. package/dist/client/types/com/atproto/server/defs.d.ts.map +0 -1
  645. package/dist/client/types/com/atproto/server/defs.js +0 -26
  646. package/dist/client/types/com/atproto/server/defs.js.map +0 -1
  647. package/dist/client/types/com/atproto/server/deleteAccount.d.ts.map +0 -1
  648. package/dist/client/types/com/atproto/server/deleteAccount.js +0 -30
  649. package/dist/client/types/com/atproto/server/deleteAccount.js.map +0 -1
  650. package/dist/client/types/com/atproto/server/deleteSession.d.ts.map +0 -1
  651. package/dist/client/types/com/atproto/server/deleteSession.js +0 -14
  652. package/dist/client/types/com/atproto/server/deleteSession.js.map +0 -1
  653. package/dist/client/types/com/atproto/server/describeServer.d.ts.map +0 -1
  654. package/dist/client/types/com/atproto/server/describeServer.js +0 -26
  655. package/dist/client/types/com/atproto/server/describeServer.js.map +0 -1
  656. package/dist/client/types/com/atproto/server/getAccountInviteCodes.d.ts.map +0 -1
  657. package/dist/client/types/com/atproto/server/getAccountInviteCodes.js +0 -22
  658. package/dist/client/types/com/atproto/server/getAccountInviteCodes.js.map +0 -1
  659. package/dist/client/types/com/atproto/server/getServiceAuth.d.ts.map +0 -1
  660. package/dist/client/types/com/atproto/server/getServiceAuth.js +0 -14
  661. package/dist/client/types/com/atproto/server/getServiceAuth.js.map +0 -1
  662. package/dist/client/types/com/atproto/server/getSession.d.ts.map +0 -1
  663. package/dist/client/types/com/atproto/server/getSession.js +0 -14
  664. package/dist/client/types/com/atproto/server/getSession.js.map +0 -1
  665. package/dist/client/types/com/atproto/server/listAppPasswords.d.ts.map +0 -1
  666. package/dist/client/types/com/atproto/server/listAppPasswords.js +0 -34
  667. package/dist/client/types/com/atproto/server/listAppPasswords.js.map +0 -1
  668. package/dist/client/types/com/atproto/server/refreshSession.d.ts.map +0 -1
  669. package/dist/client/types/com/atproto/server/refreshSession.js +0 -22
  670. package/dist/client/types/com/atproto/server/refreshSession.js.map +0 -1
  671. package/dist/client/types/com/atproto/server/requestAccountDelete.d.ts.map +0 -1
  672. package/dist/client/types/com/atproto/server/requestAccountDelete.js +0 -14
  673. package/dist/client/types/com/atproto/server/requestAccountDelete.js.map +0 -1
  674. package/dist/client/types/com/atproto/server/requestEmailConfirmation.d.ts.map +0 -1
  675. package/dist/client/types/com/atproto/server/requestEmailConfirmation.js +0 -14
  676. package/dist/client/types/com/atproto/server/requestEmailConfirmation.js.map +0 -1
  677. package/dist/client/types/com/atproto/server/requestEmailUpdate.d.ts.map +0 -1
  678. package/dist/client/types/com/atproto/server/requestEmailUpdate.js +0 -14
  679. package/dist/client/types/com/atproto/server/requestEmailUpdate.js.map +0 -1
  680. package/dist/client/types/com/atproto/server/requestPasswordReset.d.ts.map +0 -1
  681. package/dist/client/types/com/atproto/server/requestPasswordReset.js +0 -14
  682. package/dist/client/types/com/atproto/server/requestPasswordReset.js.map +0 -1
  683. package/dist/client/types/com/atproto/server/reserveSigningKey.d.ts.map +0 -1
  684. package/dist/client/types/com/atproto/server/reserveSigningKey.js +0 -14
  685. package/dist/client/types/com/atproto/server/reserveSigningKey.js.map +0 -1
  686. package/dist/client/types/com/atproto/server/resetPassword.d.ts.map +0 -1
  687. package/dist/client/types/com/atproto/server/resetPassword.js +0 -30
  688. package/dist/client/types/com/atproto/server/resetPassword.js.map +0 -1
  689. package/dist/client/types/com/atproto/server/revokeAppPassword.d.ts.map +0 -1
  690. package/dist/client/types/com/atproto/server/revokeAppPassword.js +0 -14
  691. package/dist/client/types/com/atproto/server/revokeAppPassword.js.map +0 -1
  692. package/dist/client/types/com/atproto/server/updateEmail.d.ts.map +0 -1
  693. package/dist/client/types/com/atproto/server/updateEmail.js +0 -38
  694. package/dist/client/types/com/atproto/server/updateEmail.js.map +0 -1
  695. package/dist/client/types/com/atproto/sync/getBlob.d.ts.map +0 -1
  696. package/dist/client/types/com/atproto/sync/getBlob.js +0 -14
  697. package/dist/client/types/com/atproto/sync/getBlob.js.map +0 -1
  698. package/dist/client/types/com/atproto/sync/getBlocks.d.ts.map +0 -1
  699. package/dist/client/types/com/atproto/sync/getBlocks.js +0 -14
  700. package/dist/client/types/com/atproto/sync/getBlocks.js.map +0 -1
  701. package/dist/client/types/com/atproto/sync/getCheckout.d.ts.map +0 -1
  702. package/dist/client/types/com/atproto/sync/getCheckout.js +0 -14
  703. package/dist/client/types/com/atproto/sync/getCheckout.js.map +0 -1
  704. package/dist/client/types/com/atproto/sync/getHead.d.ts.map +0 -1
  705. package/dist/client/types/com/atproto/sync/getHead.js +0 -22
  706. package/dist/client/types/com/atproto/sync/getHead.js.map +0 -1
  707. package/dist/client/types/com/atproto/sync/getLatestCommit.d.ts.map +0 -1
  708. package/dist/client/types/com/atproto/sync/getLatestCommit.js +0 -22
  709. package/dist/client/types/com/atproto/sync/getLatestCommit.js.map +0 -1
  710. package/dist/client/types/com/atproto/sync/getRecord.d.ts.map +0 -1
  711. package/dist/client/types/com/atproto/sync/getRecord.js +0 -14
  712. package/dist/client/types/com/atproto/sync/getRecord.js.map +0 -1
  713. package/dist/client/types/com/atproto/sync/getRepo.d.ts.map +0 -1
  714. package/dist/client/types/com/atproto/sync/getRepo.js +0 -14
  715. package/dist/client/types/com/atproto/sync/getRepo.js.map +0 -1
  716. package/dist/client/types/com/atproto/sync/listBlobs.d.ts.map +0 -1
  717. package/dist/client/types/com/atproto/sync/listBlobs.js +0 -14
  718. package/dist/client/types/com/atproto/sync/listBlobs.js.map +0 -1
  719. package/dist/client/types/com/atproto/sync/listRepos.d.ts.map +0 -1
  720. package/dist/client/types/com/atproto/sync/listRepos.js +0 -26
  721. package/dist/client/types/com/atproto/sync/listRepos.js.map +0 -1
  722. package/dist/client/types/com/atproto/sync/notifyOfUpdate.d.ts.map +0 -1
  723. package/dist/client/types/com/atproto/sync/notifyOfUpdate.js +0 -14
  724. package/dist/client/types/com/atproto/sync/notifyOfUpdate.js.map +0 -1
  725. package/dist/client/types/com/atproto/sync/requestCrawl.d.ts.map +0 -1
  726. package/dist/client/types/com/atproto/sync/requestCrawl.js +0 -14
  727. package/dist/client/types/com/atproto/sync/requestCrawl.js.map +0 -1
  728. package/dist/client/types/com/atproto/sync/subscribeRepos.d.ts.map +0 -1
  729. package/dist/client/types/com/atproto/sync/subscribeRepos.js +0 -76
  730. package/dist/client/types/com/atproto/sync/subscribeRepos.js.map +0 -1
  731. package/dist/client/types/com/atproto/temp/checkSignupQueue.d.ts.map +0 -1
  732. package/dist/client/types/com/atproto/temp/checkSignupQueue.js +0 -14
  733. package/dist/client/types/com/atproto/temp/checkSignupQueue.js.map +0 -1
  734. package/dist/client/types/com/atproto/temp/fetchLabels.d.ts.map +0 -1
  735. package/dist/client/types/com/atproto/temp/fetchLabels.js +0 -14
  736. package/dist/client/types/com/atproto/temp/fetchLabels.js.map +0 -1
  737. package/dist/client/types/com/atproto/temp/requestPhoneVerification.d.ts.map +0 -1
  738. package/dist/client/types/com/atproto/temp/requestPhoneVerification.js +0 -14
  739. package/dist/client/types/com/atproto/temp/requestPhoneVerification.js.map +0 -1
  740. package/dist/client/util.d.ts.map +0 -1
  741. package/dist/client/util.js +0 -15
  742. package/dist/client/util.js.map +0 -1
  743. package/dist/index.d.ts.map +0 -1
  744. package/dist/moderation/accumulator.d.ts +0 -17
  745. package/dist/moderation/accumulator.d.ts.map +0 -1
  746. package/dist/moderation/accumulator.js +0 -204
  747. package/dist/moderation/accumulator.js.map +0 -1
  748. package/dist/moderation/const/label-groups.d.ts +0 -4
  749. package/dist/moderation/const/label-groups.d.ts.map +0 -1
  750. package/dist/moderation/const/label-groups.js +0 -148
  751. package/dist/moderation/const/label-groups.js.map +0 -1
  752. package/dist/moderation/const/labels.d.ts.map +0 -1
  753. package/dist/moderation/const/labels.js +0 -790
  754. package/dist/moderation/const/labels.js.map +0 -1
  755. package/dist/moderation/index.d.ts.map +0 -1
  756. package/dist/moderation/index.js +0 -226
  757. package/dist/moderation/index.js.map +0 -1
  758. package/dist/moderation/subjects/account.d.ts.map +0 -1
  759. package/dist/moderation/subjects/account.js +0 -39
  760. package/dist/moderation/subjects/account.js.map +0 -1
  761. package/dist/moderation/subjects/feed-generator.d.ts.map +0 -1
  762. package/dist/moderation/subjects/feed-generator.js +0 -10
  763. package/dist/moderation/subjects/feed-generator.js.map +0 -1
  764. package/dist/moderation/subjects/post.d.ts.map +0 -1
  765. package/dist/moderation/subjects/post.js +0 -16
  766. package/dist/moderation/subjects/post.js.map +0 -1
  767. package/dist/moderation/subjects/profile.d.ts.map +0 -1
  768. package/dist/moderation/subjects/profile.js +0 -21
  769. package/dist/moderation/subjects/profile.js.map +0 -1
  770. package/dist/moderation/subjects/quoted-post.d.ts +0 -7
  771. package/dist/moderation/subjects/quoted-post.d.ts.map +0 -1
  772. package/dist/moderation/subjects/quoted-post.js +0 -72
  773. package/dist/moderation/subjects/quoted-post.js.map +0 -1
  774. package/dist/moderation/subjects/user-list.d.ts.map +0 -1
  775. package/dist/moderation/subjects/user-list.js +0 -10
  776. package/dist/moderation/subjects/user-list.js.map +0 -1
  777. package/dist/moderation/types.d.ts.map +0 -1
  778. package/dist/moderation/types.js +0 -60
  779. package/dist/moderation/types.js.map +0 -1
  780. package/dist/moderation/util.d.ts.map +0 -1
  781. package/dist/moderation/util.js +0 -79
  782. package/dist/moderation/util.js.map +0 -1
  783. package/dist/rich-text/detection.d.ts.map +0 -1
  784. package/dist/rich-text/detection.js +0 -107
  785. package/dist/rich-text/detection.js.map +0 -1
  786. package/dist/rich-text/rich-text.d.ts.map +0 -1
  787. package/dist/rich-text/rich-text.js +0 -374
  788. package/dist/rich-text/rich-text.js.map +0 -1
  789. package/dist/rich-text/sanitization.d.ts.map +0 -1
  790. package/dist/rich-text/sanitization.js +0 -32
  791. package/dist/rich-text/sanitization.js.map +0 -1
  792. package/dist/rich-text/unicode.d.ts.map +0 -1
  793. package/dist/rich-text/unicode.js +0 -58
  794. package/dist/rich-text/unicode.js.map +0 -1
  795. package/dist/types.d.ts.map +0 -1
  796. package/dist/types.js +0 -3
  797. package/dist/types.js.map +0 -1
  798. package/docs/labels.md +0 -554
  799. package/docs/moderation-behaviors/posts.md +0 -1813
  800. package/docs/moderation-behaviors/profiles.md +0 -833
  801. package/jest.d.ts +0 -20
  802. package/jest.setup.ts +0 -79
  803. package/scripts/code/label-groups.mjs +0 -68
  804. package/scripts/docs/labels.mjs +0 -164
  805. package/scripts/docs/post-moderation-behaviors.mjs +0 -117
  806. package/scripts/docs/profile-moderation-behaviors.mjs +0 -122
  807. package/scripts/generate-docs.mjs +0 -5
  808. package/src/moderation/accumulator.ts +0 -217
  809. package/src/moderation/const/label-groups.ts +0 -149
  810. package/src/moderation/subjects/quoted-post.ts +0 -80
  811. package/tests/post-moderation.test.ts +0 -46
  812. package/tests/profile-moderation.test.ts +0 -48
  813. package/tsconfig.tests.json +0 -10
  814. /package/src/client/types/{com/atproto/admin/deleteCommunicationTemplate.ts → tools/ozone/communication/deleteTemplate.ts} +0 -0
@@ -2,17 +2,11 @@
2
2
 
3
3
  Applying the moderation system is a challenging task, but we've done our best to simplify it for you. The Moderation API helps handle a wide range of tasks, including:
4
4
 
5
+ - Moderator labeling
5
6
  - User muting (including mutelists)
6
7
  - User blocking
7
- - Moderator labeling
8
-
9
- For more information, see the [Moderation Documentation](./docs/moderation.md) or the associated [Labels Reference](./docs/labels.md).
10
-
11
- Additional docs:
12
-
13
- - [Labels Reference](./labels.md)
14
- - [Post Moderation Behaviors](./moderation-behaviors/posts.md)
15
- - [Profile Moderation Behaviors](./moderation-behaviors/profiles.md)
8
+ - Mutewords
9
+ - Hidden posts
16
10
 
17
11
  ## Configuration
18
12
 
@@ -23,131 +17,244 @@ Every moderation function takes a set of options which look like this:
23
17
  // the logged-in user's DID
24
18
  userDid: 'did:plc:1234...',
25
19
 
26
- // is adult content allowed?
27
- adultContentEnabled: true,
20
+ moderationPrefs: {
21
+ // is adult content allowed?
22
+ adultContentEnabled: true,
28
23
 
29
- // the global label settings (used on self-labels)
30
- labels: {
31
- porn: 'hide',
32
- sexual: 'warn',
33
- nudity: 'ignore',
34
- // ...
35
- },
24
+ // the global label settings (used on self-labels)
25
+ labels: {
26
+ porn: 'hide',
27
+ sexual: 'warn',
28
+ nudity: 'ignore',
29
+ // ...
30
+ },
36
31
 
37
- // the per-labeler settings
38
- labelers: [
39
- {
40
- labeler: {
41
- did: '...',
42
- displayName: 'My mod service'
43
- },
44
- labels: {
45
- porn: 'hide',
46
- sexual: 'warn',
47
- nudity: 'ignore',
48
- // ...
32
+ // the subscribed labelers and their label settings
33
+ labelers: [
34
+ {
35
+ did: 'did:plc:1234...',
36
+ labels: {
37
+ porn: 'hide',
38
+ sexual: 'warn',
39
+ nudity: 'ignore',
40
+ // ...
41
+ }
49
42
  }
50
- }
51
- ]
43
+ ],
44
+
45
+ mutedWords: [/* ... */],
46
+ hiddenPosts: [/* ... */]
47
+ },
48
+
49
+ // custom label definitions
50
+ labelDefs: {
51
+ // labelerDid => defs[]
52
+ 'did:plc:1234...': [
53
+ /* ... */
54
+ ]
55
+ }
52
56
  }
53
57
  ```
54
58
 
55
59
  This should match the following interfaces:
56
60
 
57
61
  ```typescript
58
- interface ModerationOpts {
59
- userDid: string
62
+ export interface ModerationPrefsLabeler {
63
+ did: string
64
+ labels: Record<string, LabelPreference>
65
+ }
66
+
67
+ export interface ModerationPrefs {
60
68
  adultContentEnabled: boolean
61
69
  labels: Record<string, LabelPreference>
62
- labelers: LabelerSettings[]
70
+ labelers: ModerationPrefsLabeler[]
71
+ mutedWords: AppBskyActorDefs.MutedWord[]
72
+ hiddenPosts: string[]
63
73
  }
64
74
 
65
- interface Labeler {
66
- did: string
67
- displayName: string
75
+ export interface ModerationOpts {
76
+ userDid: string | undefined
77
+ prefs: ModerationPrefs
78
+ /**
79
+ * Map of labeler did -> custom definitions
80
+ */
81
+ labelDefs?: Record<string, InterpretedLabelValueDefinition[]>
68
82
  }
83
+ ```
69
84
 
70
- type LabelPreference = 'ignore' | 'warn' | 'hide'
85
+ You can quickly grab the `ModerationPrefs` using the `agent.getPreferences()` method:
71
86
 
72
- interface LabelerSettings {
73
- labeler: Labeler
74
- labels: Record<string, LabelPreference>
75
- }
87
+ ```typescript
88
+ const prefs = await agent.getPreferences()
89
+ moderatePost(post, {
90
+ userDid: /*...*/,
91
+ prefs: prefs.moderationPrefs,
92
+ labelDefs: /*...*/
93
+ })
76
94
  ```
77
95
 
78
- ## Posts
96
+ To gather the label definitions (`labelDefs`) see the _Labelers_ section below.
79
97
 
80
- Applications need to produce the [Post Moderation Behaviors](./moderation-behaviors/posts.md) using the `moderatePost()` API.
98
+ ## Labelers
99
+
100
+ Labelers are services that provide moderation labels. Your application will typically have 1+ top-level labelers set with the ability to do "takedowns" on content. This is controlled via this static function, though the default is to use Bluesky's moderation:
81
101
 
82
102
  ```typescript
83
- import { moderatePost } from '@atproto/api'
103
+ BskyAgent.configure({
104
+ appLabelers: ['did:web:my-labeler.com'],
105
+ })
106
+ ```
84
107
 
85
- const postMod = moderatePost(postView, getOpts())
108
+ Users may also add their own labelers. The active labelers are controlled via an HTTP header which is automatically set by the agent when `getPreferences` is called, or when the labeler preferences are changed.
86
109
 
87
- if (postMod.content.filter) {
88
- // don't render in feeds or similar
89
- // in contexts where this is disruptive (eg threads) you should ignore this and instead check blur
90
- }
91
- if (postMod.content.blur) {
92
- // render the whole object behind a cover (use postMod.content.cause to explain)
93
- if (postMod.content.noOverride) {
94
- // do not allow the cover the be removed
95
- }
96
- }
97
- if (postMod.content.alert) {
98
- // render a warning on the content (use postMod.content.cause to explain)
99
- }
100
- if (postMod.embed.blur) {
101
- // render the embedded media behind a cover (use postMod.embed.cause to explain)
102
- if (postMod.embed.noOverride) {
103
- // do not allow the cover the be removed
104
- }
105
- }
106
- if (postMod.embed.alert) {
107
- // render a warning on the embedded media (use postMod.embed.cause to explain)
108
- }
109
- if (postMod.avatar.blur) {
110
- // render the avatar behind a cover
111
- }
112
- if (postMod.avatar.alert) {
113
- // render an alert on the avatar
110
+ Labelers publish a `app.bsky.labeler.service` record that looks like this:
111
+
112
+ ```js
113
+ {
114
+ $type: 'app.bsky.labeler.service',
115
+ policies: {
116
+ // the list of label values the labeler will publish
117
+ labelValues: [
118
+ 'rude',
119
+ ],
120
+ // any custom definitions the labeler will be using
121
+ labelValueDefinitions: [
122
+ {
123
+ identifier: 'rude',
124
+ blurs: 'content',
125
+ severity: 'alert',
126
+ defaultSetting: 'warn',
127
+ adultOnly: false,
128
+ locales: [
129
+ {
130
+ lang: 'en',
131
+ name: 'Rude',
132
+ description: 'Not keeping things civil.',
133
+ },
134
+ ],
135
+ },
136
+ ],
137
+ },
138
+ createdAt: '2024-03-12T17:17:17.215Z'
114
139
  }
115
140
  ```
116
141
 
117
- ## Profiles
142
+ The label value definition are custom labels which only apply to that labeler. Your client needs to sync those definitions in order to correctly interpret them. To do that, call `app.bsky.labeler.getService()` (or the `getServices` batch variant) periodically to fetch their definitions. We recommend caching the response (at time our writing the official client uses a TTL of 6 hours).
143
+
144
+ Here is how to do this:
145
+
146
+ ```typescript
147
+ import { BskyAgent } from '@atproto/api'
148
+
149
+ const agent = new BskyAgent()
150
+ // assume `agent` is a signed in session
151
+ const prefs = await agent.getPreferences()
152
+ const labelDefs = await agent.getLabelDefinitions(prefs)
153
+
154
+ moderatePost(post, {
155
+ userDid: agent.session.did,
156
+ prefs: prefs.moderationPrefs,
157
+ labelDefs,
158
+ })
159
+ ```
160
+
161
+ ## The `moderate*()` APIs
162
+
163
+ The SDK exports methods to moderate the different kinds of content on the network.
164
+
165
+ ```typescript
166
+ import {
167
+ moderateProfile,
168
+ moderatePost,
169
+ moderateNotification,
170
+ moderateFeedGen,
171
+ moderateUserList,
172
+ moderateLabeler,
173
+ } from '@atproto/api'
174
+ ```
175
+
176
+ Each of these follows the same API signature:
177
+
178
+ ```typescript
179
+ const res = moderatePost(post, moderationOptions)
180
+ ```
118
181
 
119
- Applications need to produce the [Profile Moderation Behaviors](./moderation-behaviors/profiles.md) using the `moderateProfile()` API.
182
+ The response object provides an API for figuring out what your UI should do in different contexts.
120
183
 
121
184
  ```typescript
122
- import { moderateProfile } from '@atproto/api'
185
+ res.ui(context) /* =>
123
186
 
124
- const profileMod = moderateProfile(profileView, getOpts())
187
+ ModerationUI {
188
+ filter: boolean // should the content be removed from the interface?
189
+ blur: boolean // should the content be put behind a cover?
190
+ alert: boolean // should an alert be put on the content? (negative)
191
+ inform: boolean // should an informational notice be put on the content? (neutral)
192
+ noOverride: boolean // if blur=true, should the UI disable opening the cover?
125
193
 
126
- if (profileMod.account.filter) {
127
- // don't render in discovery
194
+ // the reasons for each of the flags:
195
+ filters: ModerationCause[]
196
+ blurs: ModerationCause[]
197
+ alerts: ModerationCause[]
198
+ informs: ModerationCause[]
128
199
  }
129
- if (profileMod.account.blur) {
130
- // render the whole account behind a cover (use profileMod.account.cause to explain)
131
- if (profileMod.account.noOverride) {
132
- // do not allow the cover the be removed
133
- }
200
+ */
201
+ ```
202
+
203
+ There are multiple UI contexts available:
204
+
205
+ - `profileList` A profile being listed, eg in search or a follower list
206
+ - `profileView` A profile being viewed directly
207
+ - `avatar` The user's avatar in any context
208
+ - `banner` The user's banner in any context
209
+ - `displayName` The user's display name in any context
210
+ - `contentList` Content being listed, eg posts in a feed, posts as replies, a user list list, a feed generator list, etc
211
+ - `contentView` Content being viewed direct, eg an opened post, the user list page, the feedgen page, etc
212
+ - `contentMedia ` Media inside the content, eg a picture embedded in a post
213
+
214
+ Here's how a post in a feed would use these tools to make a decision:
215
+
216
+ ```typescript
217
+ const mod = moderatePost(post, moderationOptions)
218
+
219
+ if (mod.ui('contentList').filter) {
220
+ // dont show the post
134
221
  }
135
- if (profileMod.account.alert) {
136
- // render a warning on the account (use profileMod.account.cause to explain)
222
+ if (mod.ui('contentList').blur) {
223
+ // cover the post with the explanation from mod.ui('contentList').blurs[0]
224
+ if (mod.ui('contentList').noOverride) {
225
+ // dont allow the cover to be removed
226
+ }
137
227
  }
138
- if (profileMod.profile.blur) {
139
- // render the profile information (display name, bio) behind a cover
140
- if (profileMod.profile.noOverride) {
141
- // do not allow the cover the be removed
228
+ if (mod.ui('contentMedia').blur) {
229
+ // cover the post's embbedded images with the explanation from mod.ui('contentMedia').blurs[0]
230
+ if (mod.ui('contentMedia').noOverride) {
231
+ // dont allow the cover to be removed
142
232
  }
143
233
  }
144
- if (profileMod.profile.alert) {
145
- // render a warning on the profile (use profileMod.profile.cause to explain)
234
+ if (mod.ui('avatar').blur) {
235
+ // cover the avatar with the explanation from mod.ui('avatar').blurs[0]
236
+ if (mod.ui('avatar').noOverride) {
237
+ // dont allow the cover to be removed
238
+ }
146
239
  }
147
- if (profileMod.avatar.blur) {
148
- // render the avatar behind a cover
240
+ for (const alert of mod.ui('contentList').alerts) {
241
+ // render this alert
149
242
  }
150
- if (profileMod.avatar.alert) {
151
- // render an alert on the avatar
243
+ for (const inform of mod.ui('contentList').informs) {
244
+ // render this inform
152
245
  }
153
246
  ```
247
+
248
+ ## Sending moderation reports
249
+
250
+ Any Labeler is capable of receiving moderation reports. As a result, you need to specify which labeler should receive the report. You do this with the `Atproto-Proxy` header:
251
+
252
+ ```typescript
253
+ agent
254
+ .withProxy('atproto_labeler', 'did:web:my-labeler.com')
255
+ .createModerationReport({
256
+ reasonType: 'com.atproto.moderation.defs#reasonViolation',
257
+ reason: 'They were being such a jerk to me!',
258
+ subject: { did: 'did:web:bob.com' },
259
+ })
260
+ ```
@@ -0,0 +1,8 @@
1
+ const base = require('./jest.config')
2
+
3
+ module.exports = {
4
+ ...base,
5
+ roots: ['<rootDir>/bench'],
6
+ testRegex: '(.*.bench.ts)',
7
+ testTimeout: 3000000,
8
+ }
package/jest.config.js CHANGED
@@ -1,9 +1,6 @@
1
- /** @type {import('jest').Config} */
1
+ const base = require('../../jest.config.base.js')
2
+
2
3
  module.exports = {
4
+ ...base,
3
5
  displayName: 'API',
4
- transform: { '^.+\\.(t|j)s$': '@swc/jest' },
5
- transformIgnorePatterns: [`<rootDir>/node_modules/(?!get-port)`],
6
- testTimeout: 60000,
7
- setupFiles: ['<rootDir>/../../jest.setup.ts'],
8
- setupFilesAfterEnv: ['<rootDir>/jest.setup.ts'],
9
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atproto/api",
3
- "version": "0.11.0-next.0",
3
+ "version": "0.11.0",
4
4
  "license": "MIT",
5
5
  "description": "Client library for atproto and Bluesky",
6
6
  "keywords": [
@@ -15,26 +15,30 @@
15
15
  "directory": "packages/api"
16
16
  },
17
17
  "main": "dist/index.js",
18
- "types": "dist/index.d.ts",
19
18
  "dependencies": {
20
19
  "multiformats": "^9.9.0",
21
20
  "tlds": "^1.234.0",
22
21
  "typed-emitter": "^2.1.0",
23
22
  "zod": "^3.21.4",
24
- "@atproto/common-web": "^0.2.3",
25
- "@atproto/lexicon": "^0.3.1",
26
- "@atproto/syntax": "^0.1.5",
27
- "@atproto/xrpc": "^0.4.1"
23
+ "@atproto/common-web": "^0.2.4",
24
+ "@atproto/lexicon": "^0.3.3",
25
+ "@atproto/syntax": "^0.2.1",
26
+ "@atproto/xrpc": "^0.4.3"
28
27
  },
29
28
  "devDependencies": {
30
29
  "common-tags": "^1.8.2",
31
- "jest": "^28.1.2",
32
- "@atproto/lex-cli": "^0.3.0"
30
+ "get-port": "^6.1.2",
31
+ "@atproto/lex-cli": "^0.3.2",
32
+ "@atproto/dev-env": "^0.2.38"
33
33
  },
34
34
  "scripts": {
35
- "codegen": "pnpm docgen && node ./scripts/generate-code.mjs && lex gen-api ./src/client ../../lexicons/com/atproto/*/* ../../lexicons/app/bsky/*/*",
36
- "docgen": "node ./scripts/generate-docs.mjs",
37
- "build": "tsc --build tsconfig.build.json",
38
- "test": "jest"
39
- }
35
+ "codegen": "node ./scripts/generate-code.mjs && lex gen-api ./src/client ../../lexicons/com/atproto/*/* ../../lexicons/app/bsky/*/* ../../lexicons/tools/ozone/*/*",
36
+ "build": "node ./build.js",
37
+ "postbuild": "tsc --build tsconfig.build.json",
38
+ "update-main-to-dist": "node ../../update-main-to-dist.js packages/api",
39
+ "test": "jest",
40
+ "bench": "jest --config jest.bench.config.js",
41
+ "bench:profile": "node --inspect-brk ../../node_modules/.bin/jest --config jest.bench.config.js"
42
+ },
43
+ "types": "dist/index.d.ts"
40
44
  }
@@ -11,12 +11,6 @@ const labelsDef = JSON.parse(
11
11
  'utf8',
12
12
  ),
13
13
  )
14
- const labelsEn = JSON.parse(
15
- readFileSync(
16
- join(__dirname, '..', '..', 'definitions', 'locale', 'en', 'labels.json'),
17
- 'utf8',
18
- ),
19
- )
20
14
 
21
15
  writeFileSync(
22
16
  join(__dirname, '..', '..', 'src', 'moderation', 'const', 'labels.ts'),
@@ -27,10 +21,24 @@ writeFileSync(
27
21
  async function gen() {
28
22
  return prettier.format(
29
23
  `/** this doc is generated by ./scripts/code/labels.mjs **/
30
- import {LabelDefinitionMap} from '../types'
24
+ import {InterpretedLabelValueDefinition, LabelPreference} from '../types'
25
+
26
+ export type KnownLabelValue = ${labelsDef
27
+ .map((label) => `"${label.identifier}"`)
28
+ .join(' | ')}
29
+
30
+ export const DEFAULT_LABEL_SETTINGS: Record<string, LabelPreference> = ${JSON.stringify(
31
+ Object.fromEntries(
32
+ labelsDef
33
+ .filter((label) => label.configurable)
34
+ .map((label) => [label.identifier, label.defaultSetting]),
35
+ ),
36
+ )}
31
37
 
32
- export const LABELS: LabelDefinitionMap = ${JSON.stringify(
33
- genDefMap(),
38
+ export const LABELS: Record<KnownLabelValue, InterpretedLabelValueDefinition> = ${JSON.stringify(
39
+ Object.fromEntries(
40
+ labelsDef.map((label) => [label.identifier, { ...label, locales: [] }]),
41
+ ),
34
42
  null,
35
43
  2,
36
44
  )}
@@ -39,30 +47,4 @@ async function gen() {
39
47
  )
40
48
  }
41
49
 
42
- function genDefMap() {
43
- const labels = {}
44
- for (const group of labelsDef) {
45
- for (const label of group.labels) {
46
- labels[label.id] = {
47
- ...label,
48
- groupId: group.id,
49
- configurable: group.configurable,
50
- strings: {
51
- settings: getLabelStrings(label.id, 'settings'),
52
- account: getLabelStrings(label.id, 'account'),
53
- content: getLabelStrings(label.id, 'content'),
54
- },
55
- }
56
- }
57
- }
58
- return labels
59
- }
60
-
61
- function getLabelStrings(id, type) {
62
- if (labelsEn[id] && labelsEn[id][type]) {
63
- return { en: labelsEn[id][type] }
64
- }
65
- throw new Error('Label strings not found for ' + id)
66
- }
67
-
68
50
  export {}
@@ -1,4 +1,3 @@
1
1
  import './code/labels.mjs'
2
- import './code/label-groups.mjs'
3
2
 
4
3
  export {}
package/src/agent.ts CHANGED
@@ -17,8 +17,12 @@ import {
17
17
  AtpAgentGlobalOpts,
18
18
  AtpPersistSessionHandler,
19
19
  AtpAgentOpts,
20
+ AtprotoServiceType,
20
21
  } from './types'
22
+ import { BSKY_LABELER_DID } from './const'
21
23
 
24
+ const MAX_MOD_AUTHORITIES = 3
25
+ const MAX_LABELERS = 10
22
26
  const REFRESH_SESSION = 'com.atproto.server.refreshSession'
23
27
 
24
28
  /**
@@ -29,15 +33,13 @@ export class AtpAgent {
29
33
  service: URL
30
34
  api: AtpServiceClient
31
35
  session?: AtpSessionData
36
+ labelersHeader: string[] = []
37
+ proxyHeader: string | undefined
38
+ pdsUrl: URL | undefined // The PDS URL, driven by the did doc. May be undefined.
32
39
 
33
- /**
34
- * The PDS URL, driven by the did doc. May be undefined.
35
- */
36
- pdsUrl: URL | undefined
37
-
38
- private _baseClient: AtpBaseClient
39
- private _persistSession?: AtpPersistSessionHandler
40
- private _refreshSessionPromise: Promise<void> | undefined
40
+ protected _baseClient: AtpBaseClient
41
+ protected _persistSession?: AtpPersistSessionHandler
42
+ protected _refreshSessionPromise: Promise<void> | undefined
41
43
 
42
44
  get com() {
43
45
  return this.api.com
@@ -48,11 +50,21 @@ export class AtpAgent {
48
50
  */
49
51
  static fetch: AtpAgentFetchHandler | undefined = defaultFetchHandler
50
52
 
53
+ /**
54
+ * The labelers to be used across all requests with the takedown capability
55
+ */
56
+ static appLabelers: string[] = [BSKY_LABELER_DID]
57
+
51
58
  /**
52
59
  * Configures the API globally.
53
60
  */
54
61
  static configure(opts: AtpAgentGlobalOpts) {
55
- AtpAgent.fetch = opts.fetch
62
+ if (opts.fetch) {
63
+ AtpAgent.fetch = opts.fetch
64
+ }
65
+ if (opts.appLabelers) {
66
+ AtpAgent.appLabelers = opts.appLabelers
67
+ }
56
68
  }
57
69
 
58
70
  constructor(opts: AtpAgentOpts) {
@@ -66,6 +78,27 @@ export class AtpAgent {
66
78
  this.api = this._baseClient.service(opts.service)
67
79
  }
68
80
 
81
+ clone() {
82
+ const inst = new AtpAgent({
83
+ service: this.service,
84
+ })
85
+ this.copyInto(inst)
86
+ return inst
87
+ }
88
+
89
+ copyInto(inst: AtpAgent) {
90
+ inst.session = this.session
91
+ inst.labelersHeader = this.labelersHeader
92
+ inst.proxyHeader = this.proxyHeader
93
+ inst.pdsUrl = this.pdsUrl
94
+ }
95
+
96
+ withProxy(serviceType: AtprotoServiceType, did: string) {
97
+ const inst = this.clone()
98
+ inst.configureProxyHeader(serviceType, did)
99
+ return inst
100
+ }
101
+
69
102
  /**
70
103
  * Is there any active session?
71
104
  */
@@ -81,6 +114,24 @@ export class AtpAgent {
81
114
  this._persistSession = handler
82
115
  }
83
116
 
117
+ /**
118
+ * Configures the moderation services to be applied on requests.
119
+ * NOTE: this is called automatically by getPreferences() and the relevant moderation config
120
+ * methods in BskyAgent instances.
121
+ */
122
+ configureLabelersHeader(labelerDids: string[]) {
123
+ this.labelersHeader = labelerDids
124
+ }
125
+
126
+ /**
127
+ * Configures the atproto-proxy header to be applied on requests
128
+ */
129
+ configureProxyHeader(serviceType: AtprotoServiceType, did: string) {
130
+ if (did.startsWith('did:')) {
131
+ this.proxyHeader = `${did}#${serviceType}`
132
+ }
133
+ }
134
+
84
135
  /**
85
136
  * Create a new account and hydrate its session in this agent.
86
137
  */
@@ -194,13 +245,27 @@ export class AtpAgent {
194
245
  /**
195
246
  * Internal helper to add authorization headers to requests.
196
247
  */
197
- private _addAuthHeader(reqHeaders: Record<string, string>) {
248
+ private _addHeaders(reqHeaders: Record<string, string>) {
198
249
  if (!reqHeaders.authorization && this.session?.accessJwt) {
199
- return {
250
+ reqHeaders = {
200
251
  ...reqHeaders,
201
252
  authorization: `Bearer ${this.session.accessJwt}`,
202
253
  }
203
254
  }
255
+ if (this.proxyHeader) {
256
+ reqHeaders = {
257
+ ...reqHeaders,
258
+ 'atproto-proxy': this.proxyHeader,
259
+ }
260
+ }
261
+ reqHeaders = {
262
+ ...reqHeaders,
263
+ 'atproto-accept-labelers': AtpAgent.appLabelers
264
+ .map((str) => `${str};redact`)
265
+ .concat(this.labelersHeader.filter((str) => str.startsWith('did:')))
266
+ .slice(0, MAX_LABELERS)
267
+ .join(', '),
268
+ }
204
269
  return reqHeaders
205
270
  }
206
271
 
@@ -224,7 +289,7 @@ export class AtpAgent {
224
289
  let res = await AtpAgent.fetch(
225
290
  reqUri,
226
291
  reqMethod,
227
- this._addAuthHeader(reqHeaders),
292
+ this._addHeaders(reqHeaders),
228
293
  reqBody,
229
294
  )
230
295
 
@@ -237,7 +302,7 @@ export class AtpAgent {
237
302
  res = await AtpAgent.fetch(
238
303
  reqUri,
239
304
  reqMethod,
240
- this._addAuthHeader(reqHeaders),
305
+ this._addHeaders(reqHeaders),
241
306
  reqBody,
242
307
  )
243
308
  }