@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
@@ -1,5 +1,10 @@
1
- import { moderateProfile, moderatePost } from '../src'
2
- import { mock } from './util'
1
+ import {
2
+ moderateProfile,
3
+ moderatePost,
4
+ mock,
5
+ interpretLabelValueDefinition,
6
+ } from '../src'
7
+ import './util/moderation-behavior'
3
8
 
4
9
  describe('Moderation', () => {
5
10
  it('Applies self-labels on profiles according to the global preferences', () => {
@@ -19,25 +24,17 @@ describe('Moderation', () => {
19
24
  }),
20
25
  {
21
26
  userDid: 'did:web:alice.test',
22
- adultContentEnabled: true,
23
- labels: {
24
- porn: 'hide',
27
+ prefs: {
28
+ adultContentEnabled: true,
29
+ labels: {
30
+ porn: 'hide',
31
+ },
32
+ labelers: [],
25
33
  },
26
- labelers: [],
27
34
  },
28
35
  )
29
- expect(res1.account).toBeModerationResult(
30
- {},
31
- 'post content',
32
- JSON.stringify(res1, null, 2),
33
- )
34
- expect(res1.profile).toBeModerationResult(
35
- {},
36
- 'post content',
37
- JSON.stringify(res1, null, 2),
38
- )
39
- expect(res1.avatar).toBeModerationResult(
40
- { blur: true },
36
+ expect(res1.ui('avatar')).toBeModerationResult(
37
+ ['blur'],
41
38
  'post avatar',
42
39
  JSON.stringify(res1, null, 2),
43
40
  true,
@@ -59,33 +56,115 @@ describe('Moderation', () => {
59
56
  }),
60
57
  {
61
58
  userDid: 'did:web:alice.test',
62
- adultContentEnabled: true,
63
- labels: {
64
- porn: 'ignore',
59
+ prefs: {
60
+ adultContentEnabled: true,
61
+ labels: {
62
+ porn: 'ignore',
63
+ },
64
+ labelers: [],
65
65
  },
66
- labelers: [],
67
66
  },
68
67
  )
69
- expect(res2.account).toBeModerationResult(
70
- {},
71
- 'post content',
72
- JSON.stringify(res2, null, 2),
73
- )
74
- expect(res2.profile).toBeModerationResult(
75
- {},
76
- 'post content',
77
- JSON.stringify(res2, null, 2),
78
- )
79
- expect(res2.avatar).toBeModerationResult(
80
- {},
68
+ expect(res2.ui('avatar')).toBeModerationResult(
69
+ [],
81
70
  'post avatar',
82
- JSON.stringify(res2, null, 2),
71
+ JSON.stringify(res1, null, 2),
83
72
  true,
84
73
  )
85
74
  })
86
75
 
87
- it('Applies self-labels on posts according to the global preferences', () => {
88
- // porn (hide)
76
+ it('Ignores labels from unsubscribed moderators or ignored labels for a moderator', () => {
77
+ // porn (moderator disabled)
78
+ const res1 = moderateProfile(
79
+ mock.profileViewBasic({
80
+ handle: 'bob.test',
81
+ displayName: 'Bob',
82
+ labels: [
83
+ {
84
+ src: 'did:web:labeler.test',
85
+ uri: 'at://did:web:bob.test/app.bsky.actor.profile/self',
86
+ val: 'porn',
87
+ cts: new Date().toISOString(),
88
+ },
89
+ ],
90
+ }),
91
+ {
92
+ userDid: 'did:web:alice.test',
93
+ prefs: {
94
+ adultContentEnabled: true,
95
+ labels: {
96
+ porn: 'hide',
97
+ },
98
+ labelers: [],
99
+ },
100
+ },
101
+ )
102
+ for (const k of [
103
+ 'profileList',
104
+ 'profileView',
105
+ 'avatar',
106
+ 'banner',
107
+ 'displayName',
108
+ 'contentList',
109
+ 'contentView',
110
+ 'contentMedia',
111
+ ]) {
112
+ expect(res1.ui(k)).toBeModerationResult(
113
+ [],
114
+ k,
115
+ JSON.stringify(res1, null, 2),
116
+ )
117
+ }
118
+
119
+ // porn (label group disabled)
120
+ const res2 = moderateProfile(
121
+ mock.profileViewBasic({
122
+ handle: 'bob.test',
123
+ displayName: 'Bob',
124
+ labels: [
125
+ {
126
+ src: 'did:web:labeler.test',
127
+ uri: 'at://did:web:bob.test/app.bsky.actor.profile/self',
128
+ val: 'porn',
129
+ cts: new Date().toISOString(),
130
+ },
131
+ ],
132
+ }),
133
+ {
134
+ userDid: 'did:web:alice.test',
135
+ prefs: {
136
+ adultContentEnabled: true,
137
+ labels: {
138
+ porn: 'ignore',
139
+ },
140
+ labelers: [
141
+ {
142
+ did: 'did:web:labeler.test',
143
+ labels: { porn: 'ignore' },
144
+ },
145
+ ],
146
+ },
147
+ },
148
+ )
149
+ for (const k of [
150
+ 'profileList',
151
+ 'profileView',
152
+ 'avatar',
153
+ 'banner',
154
+ 'displayName',
155
+ 'contentList',
156
+ 'contentView',
157
+ 'contentMedia',
158
+ ]) {
159
+ expect(res2.ui(k)).toBeModerationResult(
160
+ [],
161
+ k,
162
+ JSON.stringify(res2, null, 2),
163
+ )
164
+ }
165
+ })
166
+
167
+ it('Can manually apply hiding', () => {
89
168
  const res1 = moderatePost(
90
169
  mock.postView({
91
170
  record: {
@@ -96,43 +175,32 @@ describe('Moderation', () => {
96
175
  handle: 'bob.test',
97
176
  displayName: 'Bob',
98
177
  }),
99
- labels: [
100
- {
101
- src: 'did:web:bob.test',
102
- uri: 'at://did:web:bob.test/app.bsky.actor.profile/self',
103
- val: 'porn',
104
- cts: new Date().toISOString(),
105
- },
106
- ],
178
+ labels: [],
107
179
  }),
108
180
  {
109
181
  userDid: 'did:web:alice.test',
110
- adultContentEnabled: true,
111
- labels: {
112
- porn: 'hide',
182
+ prefs: {
183
+ adultContentEnabled: true,
184
+ labels: {},
185
+ labelers: [
186
+ {
187
+ did: 'did:web:labeler.test',
188
+ labels: {},
189
+ },
190
+ ],
113
191
  },
114
- labelers: [],
115
192
  },
116
193
  )
117
- expect(res1.content).toBeModerationResult(
118
- { cause: 'label:porn', filter: true },
119
- 'post content',
120
- JSON.stringify(res1, null, 2),
121
- )
122
- expect(res1.embed).toBeModerationResult(
123
- { cause: 'label:porn', blur: true },
124
- 'post content',
125
- JSON.stringify(res1, null, 2),
126
- )
127
- expect(res1.avatar).toBeModerationResult(
128
- {},
129
- 'post avatar',
130
- JSON.stringify(res1, null, 2),
131
- true,
194
+ res1.addHidden(true)
195
+ expect(res1.ui('contentList')).toBeModerationResult(
196
+ ['filter', 'blur'],
197
+ 'contentList',
132
198
  )
199
+ expect(res1.ui('contentView')).toBeModerationResult(['blur'], 'contentView')
200
+ })
133
201
 
134
- // porn (ignore)
135
- const res2 = moderatePost(
202
+ it('Prioritizes filters and blurs correctly on merge', () => {
203
+ const res1 = moderatePost(
136
204
  mock.postView({
137
205
  record: {
138
206
  text: 'Hello',
@@ -144,190 +212,489 @@ describe('Moderation', () => {
144
212
  }),
145
213
  labels: [
146
214
  {
147
- src: 'did:web:bob.test',
148
- uri: 'at://did:web:bob.test/app.bsky.actor.profile/self',
215
+ src: 'did:web:labeler.test',
216
+ uri: 'at://did:web:bob.test/app.bsky.post/fake',
149
217
  val: 'porn',
150
218
  cts: new Date().toISOString(),
151
219
  },
220
+ {
221
+ src: 'did:web:labeler.test',
222
+ uri: 'at://did:web:bob.test/app.bsky.post/fake',
223
+ val: '!hide',
224
+ cts: new Date().toISOString(),
225
+ },
152
226
  ],
153
227
  }),
154
228
  {
155
229
  userDid: 'did:web:alice.test',
156
- adultContentEnabled: true,
157
- labels: {
158
- porn: 'ignore',
230
+ prefs: {
231
+ adultContentEnabled: true,
232
+ labels: {
233
+ porn: 'hide',
234
+ },
235
+ labelers: [
236
+ {
237
+ did: 'did:web:labeler.test',
238
+ labels: {},
239
+ },
240
+ ],
159
241
  },
160
- labelers: [],
161
242
  },
162
243
  )
163
- expect(res2.content).toBeModerationResult(
164
- {},
165
- 'post content',
166
- JSON.stringify(res2, null, 2),
167
- )
168
- expect(res2.embed).toBeModerationResult(
169
- {},
170
- 'post content',
171
- JSON.stringify(res2, null, 2),
172
- )
173
- expect(res2.avatar).toBeModerationResult(
174
- {},
175
- 'post avatar',
176
- JSON.stringify(res2, null, 2),
177
- true,
178
- )
244
+ expect(res1.ui('contentList').filters[0].label.val).toBe('!hide')
245
+ expect(res1.ui('contentList').filters[1].label.val).toBe('porn')
246
+ expect(res1.ui('contentList').blurs[0].label.val).toBe('!hide')
247
+ expect(res1.ui('contentMedia').blurs[0].label.val).toBe('porn')
179
248
  })
180
249
 
181
- it('Applies labeler labels according to the per-labeler then global preferences', () => {
182
- // porn (ignore for labeler, hide for global)
183
- const res1 = moderateProfile(
184
- mock.profileViewBasic({
185
- handle: 'bob.test',
186
- displayName: 'Bob',
250
+ it('Prioritizes custom label definitions', () => {
251
+ const modOpts = {
252
+ userDid: 'did:web:alice.test',
253
+ prefs: {
254
+ adultContentEnabled: true,
255
+ labels: { porn: 'warn' },
256
+ labelers: [
257
+ {
258
+ did: 'did:web:labeler.test',
259
+ labels: { porn: 'warn' },
260
+ },
261
+ ],
262
+ },
263
+ labelDefs: {
264
+ 'did:web:labeler.test': [
265
+ interpretLabelValueDefinition(
266
+ {
267
+ identifier: 'porn',
268
+ blurs: 'none',
269
+ severity: 'inform',
270
+ locales: [],
271
+ },
272
+ 'did:web:labeler.test',
273
+ ),
274
+ ],
275
+ },
276
+ }
277
+ const res = moderatePost(
278
+ mock.postView({
279
+ record: {
280
+ text: 'Hello',
281
+ createdAt: new Date().toISOString(),
282
+ },
283
+ author: mock.profileViewBasic({
284
+ handle: 'bob.test',
285
+ displayName: 'Bob',
286
+ }),
187
287
  labels: [
188
288
  {
189
289
  src: 'did:web:labeler.test',
190
- uri: 'at://did:web:bob.test/app.bsky.actor.profile/self',
290
+ uri: 'at://did:web:bob.test/app.bsky.post/fake',
191
291
  val: 'porn',
192
292
  cts: new Date().toISOString(),
193
293
  },
194
294
  ],
195
295
  }),
196
- {
197
- userDid: 'did:web:alice.test',
296
+ modOpts,
297
+ )
298
+ expect(res.ui('profileList')).toBeModerationResult([])
299
+ expect(res.ui('profileView')).toBeModerationResult([])
300
+ expect(res.ui('avatar')).toBeModerationResult([])
301
+ expect(res.ui('banner')).toBeModerationResult([])
302
+ expect(res.ui('displayName')).toBeModerationResult([])
303
+ expect(res.ui('contentList')).toBeModerationResult(['inform'])
304
+ expect(res.ui('contentView')).toBeModerationResult(['inform'])
305
+ expect(res.ui('contentMedia')).toBeModerationResult([])
306
+ })
307
+
308
+ it('Doesnt allow custom behaviors to override imperative labels', () => {
309
+ const modOpts = {
310
+ userDid: 'did:web:alice.test',
311
+ prefs: {
198
312
  adultContentEnabled: true,
199
- labels: {
200
- porn: 'hide',
201
- },
313
+ labels: {},
202
314
  labelers: [
203
315
  {
204
- labeler: {
205
- did: 'did:web:labeler.test',
206
- displayName: 'Labeler',
207
- },
208
- labels: {
209
- porn: 'ignore',
210
- },
316
+ did: 'did:web:labeler.test',
317
+ labels: {},
211
318
  },
212
319
  ],
213
320
  },
214
- )
215
- expect(res1.avatar).toBeModerationResult(
216
- {},
217
- 'post avatar',
218
- JSON.stringify(res1, null, 2),
219
- true,
321
+ labelDefs: {
322
+ 'did:web:labeler.test': [
323
+ interpretLabelValueDefinition(
324
+ {
325
+ identifier: '!hide',
326
+ blurs: 'none',
327
+ severity: 'inform',
328
+ locales: [],
329
+ },
330
+ 'did:web:labeler.test',
331
+ ),
332
+ ],
333
+ },
334
+ }
335
+ const res = moderatePost(
336
+ mock.postView({
337
+ record: {
338
+ text: 'Hello',
339
+ createdAt: new Date().toISOString(),
340
+ },
341
+ author: mock.profileViewBasic({
342
+ handle: 'bob.test',
343
+ displayName: 'Bob',
344
+ }),
345
+ labels: [
346
+ {
347
+ src: 'did:web:labeler.test',
348
+ uri: 'at://did:web:bob.test/app.bsky.post/fake',
349
+ val: '!hide',
350
+ cts: new Date().toISOString(),
351
+ },
352
+ ],
353
+ }),
354
+ modOpts,
220
355
  )
221
356
 
222
- // porn (hide for labeler, ignore for global)
223
- const res2 = moderateProfile(
224
- mock.profileViewBasic({
225
- handle: 'bob.test',
226
- displayName: 'Bob',
357
+ expect(res.ui('profileList')).toBeModerationResult([])
358
+ expect(res.ui('profileView')).toBeModerationResult([])
359
+ expect(res.ui('avatar')).toBeModerationResult([])
360
+ expect(res.ui('banner')).toBeModerationResult([])
361
+ expect(res.ui('displayName')).toBeModerationResult([])
362
+ expect(res.ui('contentList')).toBeModerationResult([
363
+ 'filter',
364
+ 'blur',
365
+ 'noOverride',
366
+ ])
367
+ expect(res.ui('contentView')).toBeModerationResult(['blur', 'noOverride'])
368
+ expect(res.ui('contentMedia')).toBeModerationResult([])
369
+ })
370
+
371
+ it('Ignores invalid label value names', () => {
372
+ const modOpts = {
373
+ userDid: 'did:web:alice.test',
374
+ prefs: {
375
+ adultContentEnabled: true,
376
+ labels: {},
377
+ labelers: [
378
+ {
379
+ did: 'did:web:labeler.test',
380
+ labels: { BadLabel: 'hide', 'bad/label': 'hide' },
381
+ },
382
+ ],
383
+ },
384
+ labelDefs: {
385
+ 'did:web:labeler.test': [
386
+ interpretLabelValueDefinition(
387
+ {
388
+ identifier: 'BadLabel',
389
+ blurs: 'content',
390
+ severity: 'inform',
391
+ locales: [],
392
+ },
393
+ 'did:web:labeler.test',
394
+ ),
395
+ interpretLabelValueDefinition(
396
+ {
397
+ identifier: 'bad/label',
398
+ blurs: 'content',
399
+ severity: 'inform',
400
+ locales: [],
401
+ },
402
+ 'did:web:labeler.test',
403
+ ),
404
+ ],
405
+ },
406
+ }
407
+ const res = moderatePost(
408
+ mock.postView({
409
+ record: {
410
+ text: 'Hello',
411
+ createdAt: new Date().toISOString(),
412
+ },
413
+ author: mock.profileViewBasic({
414
+ handle: 'bob.test',
415
+ displayName: 'Bob',
416
+ }),
227
417
  labels: [
228
418
  {
229
419
  src: 'did:web:labeler.test',
230
- uri: 'at://did:web:bob.test/app.bsky.actor.profile/self',
231
- val: 'porn',
420
+ uri: 'at://did:web:bob.test/app.bsky.post/fake',
421
+ val: 'BadLabel',
422
+ cts: new Date().toISOString(),
423
+ },
424
+ {
425
+ src: 'did:web:labeler.test',
426
+ uri: 'at://did:web:bob.test/app.bsky.post/fake',
427
+ val: 'bad/label',
232
428
  cts: new Date().toISOString(),
233
429
  },
234
430
  ],
235
431
  }),
236
- {
237
- userDid: 'did:web:alice.test',
432
+ modOpts,
433
+ )
434
+
435
+ expect(res.ui('profileList')).toBeModerationResult([])
436
+ expect(res.ui('profileView')).toBeModerationResult([])
437
+ expect(res.ui('avatar')).toBeModerationResult([])
438
+ expect(res.ui('banner')).toBeModerationResult([])
439
+ expect(res.ui('displayName')).toBeModerationResult([])
440
+ expect(res.ui('contentList')).toBeModerationResult([])
441
+ expect(res.ui('contentView')).toBeModerationResult([])
442
+ expect(res.ui('contentMedia')).toBeModerationResult([])
443
+ })
444
+
445
+ it('Custom labels can set the default setting', () => {
446
+ const modOpts = {
447
+ userDid: 'did:web:alice.test',
448
+ prefs: {
238
449
  adultContentEnabled: true,
239
- labels: {
240
- porn: 'ignore',
241
- },
450
+ labels: {},
242
451
  labelers: [
243
452
  {
244
- labeler: {
245
- did: 'did:web:labeler.test',
246
- displayName: 'Labeler',
453
+ did: 'did:web:labeler.test',
454
+ labels: {},
455
+ },
456
+ ],
457
+ },
458
+ labelDefs: {
459
+ 'did:web:labeler.test': [
460
+ interpretLabelValueDefinition(
461
+ {
462
+ identifier: 'default-hide',
463
+ blurs: 'content',
464
+ severity: 'inform',
465
+ defaultSetting: 'hide',
466
+ locales: [],
247
467
  },
248
- labels: {
249
- porn: 'hide',
468
+ 'did:web:labeler.test',
469
+ ),
470
+ interpretLabelValueDefinition(
471
+ {
472
+ identifier: 'default-warn',
473
+ blurs: 'content',
474
+ severity: 'inform',
475
+ defaultSetting: 'warn',
476
+ locales: [],
250
477
  },
251
- },
478
+ 'did:web:labeler.test',
479
+ ),
480
+ interpretLabelValueDefinition(
481
+ {
482
+ identifier: 'default-ignore',
483
+ blurs: 'content',
484
+ severity: 'inform',
485
+ defaultSetting: 'ignore',
486
+ locales: [],
487
+ },
488
+ 'did:web:labeler.test',
489
+ ),
252
490
  ],
253
491
  },
254
- )
255
- expect(res2.avatar).toBeModerationResult(
256
- { blur: true },
257
- 'post avatar',
258
- JSON.stringify(res2, null, 2),
259
- true,
492
+ }
493
+ const res1 = moderatePost(
494
+ mock.postView({
495
+ record: {
496
+ text: 'Hello',
497
+ createdAt: new Date().toISOString(),
498
+ },
499
+ author: mock.profileViewBasic({
500
+ handle: 'bob.test',
501
+ displayName: 'Bob',
502
+ }),
503
+ labels: [
504
+ {
505
+ src: 'did:web:labeler.test',
506
+ uri: 'at://did:web:bob.test/app.bsky.post/fake',
507
+ val: 'default-hide',
508
+ cts: new Date().toISOString(),
509
+ },
510
+ ],
511
+ }),
512
+ modOpts,
260
513
  )
261
514
 
262
- // porn (unspecified for labeler, hide for global)
263
- const res3 = moderateProfile(
264
- mock.profileViewBasic({
265
- handle: 'bob.test',
266
- displayName: 'Bob',
515
+ expect(res1.ui('profileList')).toBeModerationResult([])
516
+ expect(res1.ui('profileView')).toBeModerationResult([])
517
+ expect(res1.ui('avatar')).toBeModerationResult([])
518
+ expect(res1.ui('banner')).toBeModerationResult([])
519
+ expect(res1.ui('displayName')).toBeModerationResult([])
520
+ expect(res1.ui('contentList')).toBeModerationResult(['filter', 'blur'])
521
+ expect(res1.ui('contentView')).toBeModerationResult(['inform'])
522
+ expect(res1.ui('contentMedia')).toBeModerationResult([])
523
+
524
+ const res2 = moderatePost(
525
+ mock.postView({
526
+ record: {
527
+ text: 'Hello',
528
+ createdAt: new Date().toISOString(),
529
+ },
530
+ author: mock.profileViewBasic({
531
+ handle: 'bob.test',
532
+ displayName: 'Bob',
533
+ }),
267
534
  labels: [
268
535
  {
269
536
  src: 'did:web:labeler.test',
270
- uri: 'at://did:web:bob.test/app.bsky.actor.profile/self',
271
- val: 'porn',
537
+ uri: 'at://did:web:bob.test/app.bsky.post/fake',
538
+ val: 'default-warn',
272
539
  cts: new Date().toISOString(),
273
540
  },
274
541
  ],
275
542
  }),
276
- {
277
- userDid: 'did:web:alice.test',
278
- adultContentEnabled: true,
279
- labels: {
280
- porn: 'hide',
543
+ modOpts,
544
+ )
545
+
546
+ expect(res2.ui('profileList')).toBeModerationResult([])
547
+ expect(res2.ui('profileView')).toBeModerationResult([])
548
+ expect(res2.ui('avatar')).toBeModerationResult([])
549
+ expect(res2.ui('banner')).toBeModerationResult([])
550
+ expect(res2.ui('displayName')).toBeModerationResult([])
551
+ expect(res2.ui('contentList')).toBeModerationResult(['blur'])
552
+ expect(res2.ui('contentView')).toBeModerationResult(['inform'])
553
+ expect(res2.ui('contentMedia')).toBeModerationResult([])
554
+
555
+ const res3 = moderatePost(
556
+ mock.postView({
557
+ record: {
558
+ text: 'Hello',
559
+ createdAt: new Date().toISOString(),
281
560
  },
561
+ author: mock.profileViewBasic({
562
+ handle: 'bob.test',
563
+ displayName: 'Bob',
564
+ }),
565
+ labels: [
566
+ {
567
+ src: 'did:web:labeler.test',
568
+ uri: 'at://did:web:bob.test/app.bsky.post/fake',
569
+ val: 'default-ignore',
570
+ cts: new Date().toISOString(),
571
+ },
572
+ ],
573
+ }),
574
+ modOpts,
575
+ )
576
+
577
+ expect(res3.ui('profileList')).toBeModerationResult([])
578
+ expect(res3.ui('profileView')).toBeModerationResult([])
579
+ expect(res3.ui('avatar')).toBeModerationResult([])
580
+ expect(res3.ui('banner')).toBeModerationResult([])
581
+ expect(res3.ui('displayName')).toBeModerationResult([])
582
+ expect(res3.ui('contentList')).toBeModerationResult([])
583
+ expect(res3.ui('contentView')).toBeModerationResult([])
584
+ expect(res3.ui('contentMedia')).toBeModerationResult([])
585
+ })
586
+
587
+ it('Custom labels can require adult content to be enabled', () => {
588
+ const modOpts = {
589
+ userDid: 'did:web:alice.test',
590
+ prefs: {
591
+ adultContentEnabled: false,
592
+ labels: { adult: 'ignore' },
282
593
  labelers: [
283
594
  {
284
- labeler: {
285
- did: 'did:web:labeler.test',
286
- displayName: 'Labeler',
595
+ did: 'did:web:labeler.test',
596
+ labels: {
597
+ adult: 'ignore',
287
598
  },
288
- labels: {},
289
599
  },
290
600
  ],
291
601
  },
602
+ labelDefs: {
603
+ 'did:web:labeler.test': [
604
+ interpretLabelValueDefinition(
605
+ {
606
+ identifier: 'adult',
607
+ blurs: 'content',
608
+ severity: 'inform',
609
+ defaultSetting: 'hide',
610
+ adultOnly: true,
611
+ locales: [],
612
+ },
613
+ 'did:web:labeler.test',
614
+ ),
615
+ ],
616
+ },
617
+ }
618
+ const res = moderatePost(
619
+ mock.postView({
620
+ record: {
621
+ text: 'Hello',
622
+ createdAt: new Date().toISOString(),
623
+ },
624
+ author: mock.profileViewBasic({
625
+ handle: 'bob.test',
626
+ displayName: 'Bob',
627
+ }),
628
+ labels: [
629
+ {
630
+ src: 'did:web:labeler.test',
631
+ uri: 'at://did:web:bob.test/app.bsky.post/fake',
632
+ val: 'adult',
633
+ cts: new Date().toISOString(),
634
+ },
635
+ ],
636
+ }),
637
+ modOpts,
292
638
  )
293
- expect(res3.avatar).toBeModerationResult(
294
- { blur: true },
295
- 'post avatar',
296
- JSON.stringify(res3, null, 2),
297
- true,
298
- )
639
+
640
+ expect(res.ui('profileList')).toBeModerationResult([])
641
+ expect(res.ui('profileView')).toBeModerationResult([])
642
+ expect(res.ui('avatar')).toBeModerationResult([])
643
+ expect(res.ui('banner')).toBeModerationResult([])
644
+ expect(res.ui('displayName')).toBeModerationResult([])
645
+ expect(res.ui('contentList')).toBeModerationResult([
646
+ 'filter',
647
+ 'blur',
648
+ 'noOverride',
649
+ ])
650
+ expect(res.ui('contentView')).toBeModerationResult(['blur', 'noOverride'])
651
+ expect(res.ui('contentMedia')).toBeModerationResult([])
299
652
  })
300
653
 
301
- /*
302
- TODO enable when 3P labeler support is added
303
- it('Ignores labels from unknown labelers', () => {
304
- const res1 = moderateProfile(
305
- mock.profileViewBasic({
306
- handle: 'bob.test',
307
- displayName: 'Bob',
654
+ it('Adult content disabled forces the preference to hide', () => {
655
+ const modOpts = {
656
+ userDid: 'did:web:alice.test',
657
+ prefs: {
658
+ adultContentEnabled: false,
659
+ labels: { porn: 'ignore' },
660
+ labelers: [
661
+ {
662
+ did: 'did:web:labeler.test',
663
+ labels: {},
664
+ },
665
+ ],
666
+ },
667
+ labelDefs: {},
668
+ }
669
+ const res = moderatePost(
670
+ mock.postView({
671
+ record: {
672
+ text: 'Hello',
673
+ createdAt: new Date().toISOString(),
674
+ },
675
+ author: mock.profileViewBasic({
676
+ handle: 'bob.test',
677
+ displayName: 'Bob',
678
+ }),
308
679
  labels: [
309
680
  {
310
- src: 'did:web:rando.test',
311
- uri: 'at://did:web:bob.test/app.bsky.actor.profile/self',
681
+ src: 'did:web:labeler.test',
682
+ uri: 'at://did:web:bob.test/app.bsky.post/fake',
312
683
  val: 'porn',
313
684
  cts: new Date().toISOString(),
314
685
  },
315
686
  ],
316
687
  }),
317
- {
318
- userDid: 'did:web:alice.test',
319
- adultContentEnabled: true,
320
- labels: {
321
- porn: 'hide',
322
- },
323
- labelers: [],
324
- },
688
+ modOpts,
325
689
  )
326
- expect(res1.avatar).toBeModerationResult(
327
- {},
328
- 'post avatar',
329
- JSON.stringify(res1, null, 2),
330
- true,
331
- )
332
- })*/
690
+
691
+ expect(res.ui('profileList')).toBeModerationResult([])
692
+ expect(res.ui('profileView')).toBeModerationResult([])
693
+ expect(res.ui('avatar')).toBeModerationResult([])
694
+ expect(res.ui('banner')).toBeModerationResult([])
695
+ expect(res.ui('displayName')).toBeModerationResult([])
696
+ expect(res.ui('contentList')).toBeModerationResult(['filter'])
697
+ expect(res.ui('contentView')).toBeModerationResult([])
698
+ expect(res.ui('contentMedia')).toBeModerationResult(['blur', 'noOverride'])
699
+ })
333
700
  })