@atproto/ozone 0.0.7 → 0.0.9

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 (265) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/LICENSE.txt +1 -1
  3. package/dist/db/index.js +295 -16
  4. package/dist/db/index.js.map +3 -3
  5. package/dist/db/migrations/20240201T051104136Z-mod-event-blobs.d.ts +3 -0
  6. package/dist/db/migrations/index.d.ts +1 -0
  7. package/dist/db/schema/moderation_event.d.ts +1 -0
  8. package/dist/db/types.d.ts +1 -0
  9. package/dist/index.js +1151 -604
  10. package/dist/index.js.map +3 -3
  11. package/dist/lexicon/index.d.ts +0 -2
  12. package/dist/lexicon/lexicons.d.ts +134 -52
  13. package/dist/lexicon/types/app/bsky/actor/defs.d.ts +1 -0
  14. package/dist/lexicon/types/app/bsky/actor/getPreferences.d.ts +2 -2
  15. package/dist/lexicon/types/app/bsky/actor/getProfile.d.ts +2 -2
  16. package/dist/lexicon/types/app/bsky/actor/getProfiles.d.ts +2 -2
  17. package/dist/lexicon/types/app/bsky/actor/getSuggestions.d.ts +2 -2
  18. package/dist/lexicon/types/app/bsky/actor/searchActors.d.ts +2 -2
  19. package/dist/lexicon/types/app/bsky/actor/searchActorsTypeahead.d.ts +2 -2
  20. package/dist/lexicon/types/app/bsky/feed/describeFeedGenerator.d.ts +2 -2
  21. package/dist/lexicon/types/app/bsky/feed/getActorFeeds.d.ts +2 -2
  22. package/dist/lexicon/types/app/bsky/feed/getActorLikes.d.ts +2 -2
  23. package/dist/lexicon/types/app/bsky/feed/getAuthorFeed.d.ts +2 -2
  24. package/dist/lexicon/types/app/bsky/feed/getFeed.d.ts +2 -2
  25. package/dist/lexicon/types/app/bsky/feed/getFeedGenerator.d.ts +2 -2
  26. package/dist/lexicon/types/app/bsky/feed/getFeedGenerators.d.ts +2 -2
  27. package/dist/lexicon/types/app/bsky/feed/getFeedSkeleton.d.ts +2 -2
  28. package/dist/lexicon/types/app/bsky/feed/getLikes.d.ts +2 -2
  29. package/dist/lexicon/types/app/bsky/feed/getListFeed.d.ts +2 -2
  30. package/dist/lexicon/types/app/bsky/feed/getPostThread.d.ts +2 -2
  31. package/dist/lexicon/types/app/bsky/feed/getPosts.d.ts +2 -2
  32. package/dist/lexicon/types/app/bsky/feed/getRepostedBy.d.ts +2 -2
  33. package/dist/lexicon/types/app/bsky/feed/getSuggestedFeeds.d.ts +2 -2
  34. package/dist/lexicon/types/app/bsky/feed/getTimeline.d.ts +2 -2
  35. package/dist/lexicon/types/app/bsky/feed/searchPosts.d.ts +2 -2
  36. package/dist/lexicon/types/app/bsky/graph/getBlocks.d.ts +2 -2
  37. package/dist/lexicon/types/app/bsky/graph/getFollowers.d.ts +2 -2
  38. package/dist/lexicon/types/app/bsky/graph/getFollows.d.ts +2 -2
  39. package/dist/lexicon/types/app/bsky/graph/getList.d.ts +2 -2
  40. package/dist/lexicon/types/app/bsky/graph/getListBlocks.d.ts +2 -2
  41. package/dist/lexicon/types/app/bsky/graph/getListMutes.d.ts +2 -2
  42. package/dist/lexicon/types/app/bsky/graph/getLists.d.ts +2 -2
  43. package/dist/lexicon/types/app/bsky/graph/getMutes.d.ts +2 -2
  44. package/dist/lexicon/types/app/bsky/graph/getRelationships.d.ts +2 -2
  45. package/dist/lexicon/types/app/bsky/graph/getSuggestedFollowsByActor.d.ts +2 -2
  46. package/dist/lexicon/types/app/bsky/notification/getUnreadCount.d.ts +2 -2
  47. package/dist/lexicon/types/app/bsky/notification/listNotifications.d.ts +2 -2
  48. package/dist/lexicon/types/app/bsky/unspecced/getPopularFeedGenerators.d.ts +2 -2
  49. package/dist/lexicon/types/app/bsky/unspecced/getTaggedSuggestions.d.ts +2 -2
  50. package/dist/lexicon/types/app/bsky/unspecced/searchActorsSkeleton.d.ts +2 -2
  51. package/dist/lexicon/types/app/bsky/unspecced/searchPostsSkeleton.d.ts +2 -2
  52. package/dist/lexicon/types/com/atproto/admin/createCommunicationTemplate.d.ts +2 -2
  53. package/dist/lexicon/types/com/atproto/admin/defs.d.ts +2 -2
  54. package/dist/lexicon/types/com/atproto/admin/emitModerationEvent.d.ts +2 -2
  55. package/dist/lexicon/types/com/atproto/admin/getAccountInfo.d.ts +2 -2
  56. package/dist/lexicon/types/com/atproto/admin/getAccountInfos.d.ts +2 -2
  57. package/dist/lexicon/types/com/atproto/admin/getInviteCodes.d.ts +2 -2
  58. package/dist/lexicon/types/com/atproto/admin/getModerationEvent.d.ts +2 -2
  59. package/dist/lexicon/types/com/atproto/admin/getRecord.d.ts +2 -2
  60. package/dist/lexicon/types/com/atproto/admin/getRepo.d.ts +2 -2
  61. package/dist/lexicon/types/com/atproto/admin/getSubjectStatus.d.ts +2 -2
  62. package/dist/lexicon/types/com/atproto/admin/listCommunicationTemplates.d.ts +2 -2
  63. package/dist/lexicon/types/com/atproto/admin/queryModerationEvents.d.ts +9 -2
  64. package/dist/lexicon/types/com/atproto/admin/queryModerationStatuses.d.ts +2 -2
  65. package/dist/lexicon/types/com/atproto/admin/searchRepos.d.ts +2 -2
  66. package/dist/lexicon/types/com/atproto/admin/sendEmail.d.ts +2 -2
  67. package/dist/lexicon/types/com/atproto/admin/updateCommunicationTemplate.d.ts +2 -2
  68. package/dist/lexicon/types/com/atproto/admin/updateSubjectStatus.d.ts +2 -2
  69. package/dist/lexicon/types/com/atproto/identity/resolveHandle.d.ts +2 -2
  70. package/dist/lexicon/types/com/atproto/label/queryLabels.d.ts +2 -2
  71. package/dist/lexicon/types/com/atproto/moderation/createReport.d.ts +2 -2
  72. package/dist/lexicon/types/com/atproto/repo/createRecord.d.ts +2 -2
  73. package/dist/lexicon/types/com/atproto/repo/describeRepo.d.ts +2 -2
  74. package/dist/lexicon/types/com/atproto/repo/getRecord.d.ts +2 -2
  75. package/dist/lexicon/types/com/atproto/repo/listRecords.d.ts +2 -2
  76. package/dist/lexicon/types/com/atproto/repo/putRecord.d.ts +2 -2
  77. package/dist/lexicon/types/com/atproto/repo/uploadBlob.d.ts +2 -2
  78. package/dist/lexicon/types/com/atproto/server/createAccount.d.ts +2 -2
  79. package/dist/lexicon/types/com/atproto/server/createAppPassword.d.ts +2 -2
  80. package/dist/lexicon/types/com/atproto/server/createInviteCode.d.ts +2 -2
  81. package/dist/lexicon/types/com/atproto/server/createInviteCodes.d.ts +2 -2
  82. package/dist/lexicon/types/com/atproto/server/createSession.d.ts +2 -2
  83. package/dist/lexicon/types/com/atproto/server/describeServer.d.ts +2 -2
  84. package/dist/lexicon/types/com/atproto/server/getAccountInviteCodes.d.ts +2 -2
  85. package/dist/lexicon/types/com/atproto/server/getSession.d.ts +2 -2
  86. package/dist/lexicon/types/com/atproto/server/listAppPasswords.d.ts +2 -2
  87. package/dist/lexicon/types/com/atproto/server/refreshSession.d.ts +2 -2
  88. package/dist/lexicon/types/com/atproto/server/requestEmailUpdate.d.ts +2 -2
  89. package/dist/lexicon/types/com/atproto/server/reserveSigningKey.d.ts +2 -2
  90. package/dist/lexicon/types/com/atproto/sync/getBlob.d.ts +2 -2
  91. package/dist/lexicon/types/com/atproto/sync/getBlocks.d.ts +2 -2
  92. package/dist/lexicon/types/com/atproto/sync/getCheckout.d.ts +2 -2
  93. package/dist/lexicon/types/com/atproto/sync/getHead.d.ts +2 -2
  94. package/dist/lexicon/types/com/atproto/sync/getLatestCommit.d.ts +2 -2
  95. package/dist/lexicon/types/com/atproto/sync/getRecord.d.ts +2 -2
  96. package/dist/lexicon/types/com/atproto/sync/getRepo.d.ts +2 -2
  97. package/dist/lexicon/types/com/atproto/sync/listBlobs.d.ts +2 -2
  98. package/dist/lexicon/types/com/atproto/sync/listRepos.d.ts +2 -2
  99. package/dist/lexicon/types/com/atproto/temp/checkSignupQueue.d.ts +2 -2
  100. package/dist/lexicon/types/com/atproto/temp/fetchLabels.d.ts +2 -2
  101. package/dist/lexicon/types/com/atproto/temp/importRepo.d.ts +2 -2
  102. package/dist/lexicon/types/com/atproto/temp/transferAccount.d.ts +2 -2
  103. package/dist/mod-service/index.d.ts +13 -4
  104. package/dist/mod-service/subject.d.ts +3 -0
  105. package/dist/mod-service/types.d.ts +2 -0
  106. package/package.json +5 -5
  107. package/src/api/admin/emitModerationEvent.ts +9 -6
  108. package/src/api/admin/queryModerationEvents.ts +14 -0
  109. package/src/api/moderation/util.ts +1 -0
  110. package/src/api/temp/fetchLabels.ts +36 -21
  111. package/src/context.ts +1 -0
  112. package/src/daemon/context.ts +1 -0
  113. package/src/db/migrations/20240201T051104136Z-mod-event-blobs.ts +15 -0
  114. package/src/db/migrations/index.ts +1 -0
  115. package/src/db/schema/moderation_event.ts +1 -0
  116. package/src/db/types.ts +6 -1
  117. package/src/lexicon/index.ts +0 -12
  118. package/src/lexicon/lexicons.ts +382 -173
  119. package/src/lexicon/types/app/bsky/actor/defs.ts +2 -0
  120. package/src/lexicon/types/app/bsky/actor/getPreferences.ts +2 -2
  121. package/src/lexicon/types/app/bsky/actor/getProfile.ts +3 -2
  122. package/src/lexicon/types/app/bsky/actor/getProfiles.ts +2 -2
  123. package/src/lexicon/types/app/bsky/actor/getSuggestions.ts +2 -2
  124. package/src/lexicon/types/app/bsky/actor/profile.ts +3 -0
  125. package/src/lexicon/types/app/bsky/actor/putPreferences.ts +1 -1
  126. package/src/lexicon/types/app/bsky/actor/searchActors.ts +2 -2
  127. package/src/lexicon/types/app/bsky/actor/searchActorsTypeahead.ts +2 -2
  128. package/src/lexicon/types/app/bsky/embed/external.ts +1 -0
  129. package/src/lexicon/types/app/bsky/embed/images.ts +4 -0
  130. package/src/lexicon/types/app/bsky/embed/record.ts +1 -0
  131. package/src/lexicon/types/app/bsky/feed/defs.ts +1 -0
  132. package/src/lexicon/types/app/bsky/feed/describeFeedGenerator.ts +2 -2
  133. package/src/lexicon/types/app/bsky/feed/getActorFeeds.ts +2 -2
  134. package/src/lexicon/types/app/bsky/feed/getActorLikes.ts +2 -2
  135. package/src/lexicon/types/app/bsky/feed/getAuthorFeed.ts +3 -2
  136. package/src/lexicon/types/app/bsky/feed/getFeed.ts +2 -2
  137. package/src/lexicon/types/app/bsky/feed/getFeedGenerator.ts +5 -2
  138. package/src/lexicon/types/app/bsky/feed/getFeedGenerators.ts +2 -2
  139. package/src/lexicon/types/app/bsky/feed/getFeedSkeleton.ts +3 -2
  140. package/src/lexicon/types/app/bsky/feed/getLikes.ts +4 -2
  141. package/src/lexicon/types/app/bsky/feed/getListFeed.ts +3 -2
  142. package/src/lexicon/types/app/bsky/feed/getPostThread.ts +5 -2
  143. package/src/lexicon/types/app/bsky/feed/getPosts.ts +3 -2
  144. package/src/lexicon/types/app/bsky/feed/getRepostedBy.ts +4 -2
  145. package/src/lexicon/types/app/bsky/feed/getSuggestedFeeds.ts +2 -2
  146. package/src/lexicon/types/app/bsky/feed/getTimeline.ts +3 -2
  147. package/src/lexicon/types/app/bsky/feed/post.ts +5 -1
  148. package/src/lexicon/types/app/bsky/feed/searchPosts.ts +2 -2
  149. package/src/lexicon/types/app/bsky/feed/threadgate.ts +1 -0
  150. package/src/lexicon/types/app/bsky/graph/block.ts +1 -0
  151. package/src/lexicon/types/app/bsky/graph/getBlocks.ts +2 -2
  152. package/src/lexicon/types/app/bsky/graph/getFollowers.ts +2 -2
  153. package/src/lexicon/types/app/bsky/graph/getFollows.ts +2 -2
  154. package/src/lexicon/types/app/bsky/graph/getList.ts +3 -2
  155. package/src/lexicon/types/app/bsky/graph/getListBlocks.ts +2 -2
  156. package/src/lexicon/types/app/bsky/graph/getListMutes.ts +2 -2
  157. package/src/lexicon/types/app/bsky/graph/getLists.ts +3 -2
  158. package/src/lexicon/types/app/bsky/graph/getMutes.ts +2 -2
  159. package/src/lexicon/types/app/bsky/graph/getRelationships.ts +4 -2
  160. package/src/lexicon/types/app/bsky/graph/getSuggestedFollowsByActor.ts +2 -2
  161. package/src/lexicon/types/app/bsky/graph/list.ts +1 -0
  162. package/src/lexicon/types/app/bsky/graph/listblock.ts +1 -0
  163. package/src/lexicon/types/app/bsky/graph/listitem.ts +2 -0
  164. package/src/lexicon/types/app/bsky/graph/muteActor.ts +1 -1
  165. package/src/lexicon/types/app/bsky/graph/muteActorList.ts +1 -1
  166. package/src/lexicon/types/app/bsky/graph/unmuteActor.ts +1 -1
  167. package/src/lexicon/types/app/bsky/graph/unmuteActorList.ts +1 -1
  168. package/src/lexicon/types/app/bsky/notification/getUnreadCount.ts +2 -2
  169. package/src/lexicon/types/app/bsky/notification/listNotifications.ts +2 -2
  170. package/src/lexicon/types/app/bsky/notification/registerPush.ts +1 -1
  171. package/src/lexicon/types/app/bsky/notification/updateSeen.ts +1 -1
  172. package/src/lexicon/types/app/bsky/richtext/facet.ts +5 -4
  173. package/src/lexicon/types/app/bsky/unspecced/getPopularFeedGenerators.ts +2 -2
  174. package/src/lexicon/types/app/bsky/unspecced/getTaggedSuggestions.ts +2 -2
  175. package/src/lexicon/types/app/bsky/unspecced/searchActorsSkeleton.ts +2 -2
  176. package/src/lexicon/types/app/bsky/unspecced/searchPostsSkeleton.ts +2 -2
  177. package/src/lexicon/types/com/atproto/admin/createCommunicationTemplate.ts +2 -2
  178. package/src/lexicon/types/com/atproto/admin/defs.ts +2 -0
  179. package/src/lexicon/types/com/atproto/admin/deleteAccount.ts +1 -1
  180. package/src/lexicon/types/com/atproto/admin/deleteCommunicationTemplate.ts +1 -1
  181. package/src/lexicon/types/com/atproto/admin/disableAccountInvites.ts +1 -1
  182. package/src/lexicon/types/com/atproto/admin/disableInviteCodes.ts +1 -1
  183. package/src/lexicon/types/com/atproto/admin/emitModerationEvent.ts +2 -2
  184. package/src/lexicon/types/com/atproto/admin/enableAccountInvites.ts +1 -1
  185. package/src/lexicon/types/com/atproto/admin/getAccountInfo.ts +2 -2
  186. package/src/lexicon/types/com/atproto/admin/getAccountInfos.ts +2 -2
  187. package/src/lexicon/types/com/atproto/admin/getInviteCodes.ts +2 -2
  188. package/src/lexicon/types/com/atproto/admin/getModerationEvent.ts +2 -2
  189. package/src/lexicon/types/com/atproto/admin/getRecord.ts +2 -2
  190. package/src/lexicon/types/com/atproto/admin/getRepo.ts +2 -2
  191. package/src/lexicon/types/com/atproto/admin/getSubjectStatus.ts +2 -2
  192. package/src/lexicon/types/com/atproto/admin/listCommunicationTemplates.ts +2 -2
  193. package/src/lexicon/types/com/atproto/admin/queryModerationEvents.ts +15 -2
  194. package/src/lexicon/types/com/atproto/admin/queryModerationStatuses.ts +2 -2
  195. package/src/lexicon/types/com/atproto/admin/searchRepos.ts +2 -2
  196. package/src/lexicon/types/com/atproto/admin/sendEmail.ts +2 -2
  197. package/src/lexicon/types/com/atproto/admin/updateAccountEmail.ts +1 -1
  198. package/src/lexicon/types/com/atproto/admin/updateAccountHandle.ts +1 -1
  199. package/src/lexicon/types/com/atproto/admin/updateCommunicationTemplate.ts +2 -2
  200. package/src/lexicon/types/com/atproto/admin/updateSubjectStatus.ts +2 -2
  201. package/src/lexicon/types/com/atproto/identity/resolveHandle.ts +2 -2
  202. package/src/lexicon/types/com/atproto/identity/updateHandle.ts +2 -1
  203. package/src/lexicon/types/com/atproto/label/queryLabels.ts +2 -2
  204. package/src/lexicon/types/com/atproto/label/subscribeLabels.ts +1 -1
  205. package/src/lexicon/types/com/atproto/moderation/createReport.ts +3 -2
  206. package/src/lexicon/types/com/atproto/repo/applyWrites.ts +7 -6
  207. package/src/lexicon/types/com/atproto/repo/createRecord.ts +6 -6
  208. package/src/lexicon/types/com/atproto/repo/deleteRecord.ts +3 -3
  209. package/src/lexicon/types/com/atproto/repo/describeRepo.ts +5 -2
  210. package/src/lexicon/types/com/atproto/repo/getRecord.ts +3 -3
  211. package/src/lexicon/types/com/atproto/repo/listRecords.ts +2 -2
  212. package/src/lexicon/types/com/atproto/repo/putRecord.ts +6 -6
  213. package/src/lexicon/types/com/atproto/repo/uploadBlob.ts +2 -2
  214. package/src/lexicon/types/com/atproto/server/confirmEmail.ts +1 -1
  215. package/src/lexicon/types/com/atproto/server/createAccount.ts +10 -2
  216. package/src/lexicon/types/com/atproto/server/createAppPassword.ts +3 -2
  217. package/src/lexicon/types/com/atproto/server/createInviteCode.ts +2 -2
  218. package/src/lexicon/types/com/atproto/server/createInviteCodes.ts +2 -2
  219. package/src/lexicon/types/com/atproto/server/createSession.ts +2 -2
  220. package/src/lexicon/types/com/atproto/server/deleteAccount.ts +1 -1
  221. package/src/lexicon/types/com/atproto/server/deleteSession.ts +1 -1
  222. package/src/lexicon/types/com/atproto/server/describeServer.ts +5 -2
  223. package/src/lexicon/types/com/atproto/server/getAccountInviteCodes.ts +3 -2
  224. package/src/lexicon/types/com/atproto/server/getSession.ts +2 -2
  225. package/src/lexicon/types/com/atproto/server/listAppPasswords.ts +2 -2
  226. package/src/lexicon/types/com/atproto/server/refreshSession.ts +2 -2
  227. package/src/lexicon/types/com/atproto/server/requestAccountDelete.ts +1 -1
  228. package/src/lexicon/types/com/atproto/server/requestEmailConfirmation.ts +1 -1
  229. package/src/lexicon/types/com/atproto/server/requestEmailUpdate.ts +2 -2
  230. package/src/lexicon/types/com/atproto/server/requestPasswordReset.ts +1 -1
  231. package/src/lexicon/types/com/atproto/server/reserveSigningKey.ts +4 -4
  232. package/src/lexicon/types/com/atproto/server/resetPassword.ts +1 -1
  233. package/src/lexicon/types/com/atproto/server/revokeAppPassword.ts +1 -1
  234. package/src/lexicon/types/com/atproto/server/updateEmail.ts +1 -1
  235. package/src/lexicon/types/com/atproto/sync/getBlob.ts +3 -3
  236. package/src/lexicon/types/com/atproto/sync/getBlocks.ts +2 -2
  237. package/src/lexicon/types/com/atproto/sync/getCheckout.ts +2 -2
  238. package/src/lexicon/types/com/atproto/sync/getHead.ts +2 -2
  239. package/src/lexicon/types/com/atproto/sync/getLatestCommit.ts +2 -2
  240. package/src/lexicon/types/com/atproto/sync/getRecord.ts +3 -2
  241. package/src/lexicon/types/com/atproto/sync/getRepo.ts +3 -3
  242. package/src/lexicon/types/com/atproto/sync/listBlobs.ts +2 -2
  243. package/src/lexicon/types/com/atproto/sync/listRepos.ts +3 -2
  244. package/src/lexicon/types/com/atproto/sync/notifyOfUpdate.ts +2 -2
  245. package/src/lexicon/types/com/atproto/sync/requestCrawl.ts +2 -2
  246. package/src/lexicon/types/com/atproto/sync/subscribeRepos.ts +17 -5
  247. package/src/lexicon/types/com/atproto/temp/checkSignupQueue.ts +2 -2
  248. package/src/lexicon/types/com/atproto/temp/fetchLabels.ts +2 -2
  249. package/src/lexicon/types/com/atproto/temp/importRepo.ts +2 -2
  250. package/src/lexicon/types/com/atproto/temp/pushBlob.ts +1 -1
  251. package/src/lexicon/types/com/atproto/temp/requestPhoneVerification.ts +1 -1
  252. package/src/lexicon/types/com/atproto/temp/transferAccount.ts +2 -2
  253. package/src/mod-service/index.ts +142 -64
  254. package/src/mod-service/status.ts +3 -2
  255. package/src/mod-service/subject.ts +9 -2
  256. package/src/mod-service/types.ts +4 -0
  257. package/src/mod-service/views.ts +1 -1
  258. package/tests/__snapshots__/get-record.test.ts.snap +16 -0
  259. package/tests/__snapshots__/get-repo.test.ts.snap +9 -1
  260. package/tests/moderation-appeals.test.ts +1 -1
  261. package/tests/moderation-events.test.ts +161 -8
  262. package/tests/moderation-statuses.test.ts +55 -0
  263. package/tests/moderation.test.ts +133 -34
  264. package/dist/lexicon/types/app/bsky/unspecced/getTimelineSkeleton.d.ts +0 -35
  265. package/src/lexicon/types/app/bsky/unspecced/getTimelineSkeleton.ts +0 -49
@@ -1,5 +1,5 @@
1
1
  import express from 'express';
2
- import { HandlerAuth } from '@atproto/xrpc-server';
2
+ import { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server';
3
3
  export interface QueryParams {
4
4
  }
5
5
  export interface InputSchema {
@@ -25,7 +25,7 @@ export interface HandlerError {
25
25
  status: number;
26
26
  message?: string;
27
27
  }
28
- export type HandlerOutput = HandlerError | HandlerSuccess;
28
+ export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough;
29
29
  export type HandlerReqCtx<HA extends HandlerAuth = never> = {
30
30
  auth: HA;
31
31
  params: QueryParams;
@@ -1,7 +1,7 @@
1
1
  /// <reference types="node" />
2
2
  import express from 'express';
3
3
  import stream from 'stream';
4
- import { HandlerAuth } from '@atproto/xrpc-server';
4
+ import { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server';
5
5
  export interface QueryParams {
6
6
  did: string;
7
7
  cid: string;
@@ -19,7 +19,7 @@ export interface HandlerError {
19
19
  status: number;
20
20
  message?: string;
21
21
  }
22
- export type HandlerOutput = HandlerError | HandlerSuccess;
22
+ export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough;
23
23
  export type HandlerReqCtx<HA extends HandlerAuth = never> = {
24
24
  auth: HA;
25
25
  params: QueryParams;
@@ -1,7 +1,7 @@
1
1
  /// <reference types="node" />
2
2
  import express from 'express';
3
3
  import stream from 'stream';
4
- import { HandlerAuth } from '@atproto/xrpc-server';
4
+ import { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server';
5
5
  export interface QueryParams {
6
6
  did: string;
7
7
  cids: string[];
@@ -19,7 +19,7 @@ export interface HandlerError {
19
19
  status: number;
20
20
  message?: string;
21
21
  }
22
- export type HandlerOutput = HandlerError | HandlerSuccess;
22
+ export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough;
23
23
  export type HandlerReqCtx<HA extends HandlerAuth = never> = {
24
24
  auth: HA;
25
25
  params: QueryParams;
@@ -1,7 +1,7 @@
1
1
  /// <reference types="node" />
2
2
  import express from 'express';
3
3
  import stream from 'stream';
4
- import { HandlerAuth } from '@atproto/xrpc-server';
4
+ import { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server';
5
5
  export interface QueryParams {
6
6
  did: string;
7
7
  }
@@ -18,7 +18,7 @@ export interface HandlerError {
18
18
  status: number;
19
19
  message?: string;
20
20
  }
21
- export type HandlerOutput = HandlerError | HandlerSuccess;
21
+ export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough;
22
22
  export type HandlerReqCtx<HA extends HandlerAuth = never> = {
23
23
  auth: HA;
24
24
  params: QueryParams;
@@ -1,5 +1,5 @@
1
1
  import express from 'express';
2
- import { HandlerAuth } from '@atproto/xrpc-server';
2
+ import { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server';
3
3
  export interface QueryParams {
4
4
  did: string;
5
5
  }
@@ -21,7 +21,7 @@ export interface HandlerError {
21
21
  message?: string;
22
22
  error?: 'HeadNotFound';
23
23
  }
24
- export type HandlerOutput = HandlerError | HandlerSuccess;
24
+ export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough;
25
25
  export type HandlerReqCtx<HA extends HandlerAuth = never> = {
26
26
  auth: HA;
27
27
  params: QueryParams;
@@ -1,5 +1,5 @@
1
1
  import express from 'express';
2
- import { HandlerAuth } from '@atproto/xrpc-server';
2
+ import { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server';
3
3
  export interface QueryParams {
4
4
  did: string;
5
5
  }
@@ -22,7 +22,7 @@ export interface HandlerError {
22
22
  message?: string;
23
23
  error?: 'RepoNotFound';
24
24
  }
25
- export type HandlerOutput = HandlerError | HandlerSuccess;
25
+ export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough;
26
26
  export type HandlerReqCtx<HA extends HandlerAuth = never> = {
27
27
  auth: HA;
28
28
  params: QueryParams;
@@ -1,7 +1,7 @@
1
1
  /// <reference types="node" />
2
2
  import express from 'express';
3
3
  import stream from 'stream';
4
- import { HandlerAuth } from '@atproto/xrpc-server';
4
+ import { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server';
5
5
  export interface QueryParams {
6
6
  did: string;
7
7
  collection: string;
@@ -21,7 +21,7 @@ export interface HandlerError {
21
21
  status: number;
22
22
  message?: string;
23
23
  }
24
- export type HandlerOutput = HandlerError | HandlerSuccess;
24
+ export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough;
25
25
  export type HandlerReqCtx<HA extends HandlerAuth = never> = {
26
26
  auth: HA;
27
27
  params: QueryParams;
@@ -1,7 +1,7 @@
1
1
  /// <reference types="node" />
2
2
  import express from 'express';
3
3
  import stream from 'stream';
4
- import { HandlerAuth } from '@atproto/xrpc-server';
4
+ import { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server';
5
5
  export interface QueryParams {
6
6
  did: string;
7
7
  since?: string;
@@ -19,7 +19,7 @@ export interface HandlerError {
19
19
  status: number;
20
20
  message?: string;
21
21
  }
22
- export type HandlerOutput = HandlerError | HandlerSuccess;
22
+ export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough;
23
23
  export type HandlerReqCtx<HA extends HandlerAuth = never> = {
24
24
  auth: HA;
25
25
  params: QueryParams;
@@ -1,5 +1,5 @@
1
1
  import express from 'express';
2
- import { HandlerAuth } from '@atproto/xrpc-server';
2
+ import { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server';
3
3
  export interface QueryParams {
4
4
  did: string;
5
5
  since?: string;
@@ -24,7 +24,7 @@ export interface HandlerError {
24
24
  status: number;
25
25
  message?: string;
26
26
  }
27
- export type HandlerOutput = HandlerError | HandlerSuccess;
27
+ export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough;
28
28
  export type HandlerReqCtx<HA extends HandlerAuth = never> = {
29
29
  auth: HA;
30
30
  params: QueryParams;
@@ -1,6 +1,6 @@
1
1
  import express from 'express';
2
2
  import { ValidationResult } from '@atproto/lexicon';
3
- import { HandlerAuth } from '@atproto/xrpc-server';
3
+ import { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server';
4
4
  export interface QueryParams {
5
5
  limit: number;
6
6
  cursor?: string;
@@ -23,7 +23,7 @@ export interface HandlerError {
23
23
  status: number;
24
24
  message?: string;
25
25
  }
26
- export type HandlerOutput = HandlerError | HandlerSuccess;
26
+ export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough;
27
27
  export type HandlerReqCtx<HA extends HandlerAuth = never> = {
28
28
  auth: HA;
29
29
  params: QueryParams;
@@ -1,5 +1,5 @@
1
1
  import express from 'express';
2
- import { HandlerAuth } from '@atproto/xrpc-server';
2
+ import { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server';
3
3
  export interface QueryParams {
4
4
  }
5
5
  export type InputSchema = undefined;
@@ -21,7 +21,7 @@ export interface HandlerError {
21
21
  status: number;
22
22
  message?: string;
23
23
  }
24
- export type HandlerOutput = HandlerError | HandlerSuccess;
24
+ export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough;
25
25
  export type HandlerReqCtx<HA extends HandlerAuth = never> = {
26
26
  auth: HA;
27
27
  params: QueryParams;
@@ -1,5 +1,5 @@
1
1
  import express from 'express';
2
- import { HandlerAuth } from '@atproto/xrpc-server';
2
+ import { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server';
3
3
  import * as ComAtprotoLabelDefs from '../label/defs';
4
4
  export interface QueryParams {
5
5
  since?: number;
@@ -22,7 +22,7 @@ export interface HandlerError {
22
22
  status: number;
23
23
  message?: string;
24
24
  }
25
- export type HandlerOutput = HandlerError | HandlerSuccess;
25
+ export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough;
26
26
  export type HandlerReqCtx<HA extends HandlerAuth = never> = {
27
27
  auth: HA;
28
28
  params: QueryParams;
@@ -1,7 +1,7 @@
1
1
  /// <reference types="node" />
2
2
  import express from 'express';
3
3
  import stream from 'stream';
4
- import { HandlerAuth } from '@atproto/xrpc-server';
4
+ import { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server';
5
5
  export interface QueryParams {
6
6
  did: string;
7
7
  }
@@ -21,7 +21,7 @@ export interface HandlerError {
21
21
  status: number;
22
22
  message?: string;
23
23
  }
24
- export type HandlerOutput = HandlerError | HandlerSuccess;
24
+ export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough;
25
25
  export type HandlerReqCtx<HA extends HandlerAuth = never> = {
26
26
  auth: HA;
27
27
  params: QueryParams;
@@ -1,5 +1,5 @@
1
1
  import express from 'express';
2
- import { HandlerAuth } from '@atproto/xrpc-server';
2
+ import { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server';
3
3
  export interface QueryParams {
4
4
  }
5
5
  export interface InputSchema {
@@ -31,7 +31,7 @@ export interface HandlerError {
31
31
  message?: string;
32
32
  error?: 'InvalidHandle' | 'InvalidPassword' | 'InvalidInviteCode' | 'HandleNotAvailable' | 'UnsupportedDomain' | 'UnresolvableDid' | 'IncompatibleDidDoc';
33
33
  }
34
- export type HandlerOutput = HandlerError | HandlerSuccess;
34
+ export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough;
35
35
  export type HandlerReqCtx<HA extends HandlerAuth = never> = {
36
36
  auth: HA;
37
37
  params: QueryParams;
@@ -18,8 +18,9 @@ export declare class ModerationService {
18
18
  eventPusher: EventPusher;
19
19
  appviewAgent: AtpAgent;
20
20
  private appviewAuth;
21
- constructor(db: Database, backgroundQueue: BackgroundQueue, eventPusher: EventPusher, appviewAgent: AtpAgent, appviewAuth: AppviewAuth);
22
- static creator(backgroundQueue: BackgroundQueue, eventPusher: EventPusher, appviewAgent: AtpAgent, appviewAuth: AppviewAuth): (db: Database) => ModerationService;
21
+ serverDid: string;
22
+ constructor(db: Database, backgroundQueue: BackgroundQueue, eventPusher: EventPusher, appviewAgent: AtpAgent, appviewAuth: AppviewAuth, serverDid: string);
23
+ static creator(backgroundQueue: BackgroundQueue, eventPusher: EventPusher, appviewAgent: AtpAgent, appviewAuth: AppviewAuth, serverDid: string): (db: Database) => ModerationService;
23
24
  views: ModerationViews;
24
25
  getEvent(id: number): Promise<ModerationEventRow | undefined>;
25
26
  getEventOrThrow(id: number): Promise<ModerationEventRow>;
@@ -31,6 +32,13 @@ export declare class ModerationService {
31
32
  includeAllUserRecords: boolean;
32
33
  types: ModerationEvent['action'][];
33
34
  sortDirection?: 'asc' | 'desc';
35
+ hasComment?: boolean;
36
+ comment?: string;
37
+ createdAfter?: string;
38
+ createdBefore?: string;
39
+ addedLabels: string[];
40
+ removedLabels: string[];
41
+ reportTypes?: string[];
34
42
  }): Promise<{
35
43
  cursor?: string;
36
44
  events: ModerationEventRow[];
@@ -69,6 +77,7 @@ export declare class ModerationService {
69
77
  }): Promise<ModerationEventRow>;
70
78
  getLastReversibleEventForSubject(subject: ReversalSubject): Promise<{
71
79
  id: number;
80
+ subjectBlobCids: string[] | null;
72
81
  createdBy: string;
73
82
  createdAt: string;
74
83
  comment: string | null;
@@ -137,8 +146,8 @@ export declare class ModerationService {
137
146
  }[];
138
147
  cursor: string | undefined;
139
148
  }>;
140
- isSubjectTakendown(subject: ModSubject): Promise<boolean>;
141
- formatAndCreateLabels(src: string, uri: string, cid: string | null, labels: {
149
+ getStatus(subject: ModSubject): Promise<ModerationSubjectStatusRow | null>;
150
+ formatAndCreateLabels(uri: string, cid: string | null, labels: {
142
151
  create?: string[];
143
152
  negate?: string[];
144
153
  }): Promise<Label[]>;
@@ -13,6 +13,7 @@ type SubjectInfo = {
13
13
  subjectDid: string;
14
14
  subjectUri: string | null;
15
15
  subjectCid: string | null;
16
+ subjectBlobCids: string[] | null;
16
17
  };
17
18
  export interface ModSubject {
18
19
  did: string;
@@ -35,6 +36,7 @@ export declare class RepoSubject implements ModSubject {
35
36
  subjectDid: string;
36
37
  subjectUri: null;
37
38
  subjectCid: null;
39
+ subjectBlobCids: null;
38
40
  };
39
41
  lex(): RepoRef;
40
42
  }
@@ -53,6 +55,7 @@ export declare class RecordSubject implements ModSubject {
53
55
  subjectDid: string;
54
56
  subjectUri: string;
55
57
  subjectCid: string;
58
+ subjectBlobCids: string[];
56
59
  };
57
60
  lex(): StrongRef;
58
61
  }
@@ -17,3 +17,5 @@ export type ModerationSubjectStatusRowWithHandle = ModerationSubjectStatusRow &
17
17
  handle: string | null;
18
18
  };
19
19
  export type ModEventType = ComAtprotoAdminDefs.ModEventTakedown | ComAtprotoAdminDefs.ModEventAcknowledge | ComAtprotoAdminDefs.ModEventEscalate | ComAtprotoAdminDefs.ModEventComment | ComAtprotoAdminDefs.ModEventLabel | ComAtprotoAdminDefs.ModEventReport | ComAtprotoAdminDefs.ModEventMute | ComAtprotoAdminDefs.ModEventReverseTakedown;
20
+ export declare const UNSPECCED_TAKEDOWN_LABEL = "!unspecced-takedown";
21
+ export declare const UNSPECCED_TAKEDOWN_BLOBS_LABEL = "!unspecced-takedown-blobs";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atproto/ozone",
3
- "version": "0.0.7",
3
+ "version": "0.0.9",
4
4
  "license": "MIT",
5
5
  "description": "Backend service for moderating the Bluesky network.",
6
6
  "keywords": [
@@ -30,7 +30,7 @@
30
30
  "pino-http": "^8.2.1",
31
31
  "typed-emitter": "^2.1.0",
32
32
  "uint8arrays": "3.0.0",
33
- "@atproto/api": "^0.9.5",
33
+ "@atproto/api": "^0.9.7",
34
34
  "@atproto/common": "^0.3.3",
35
35
  "@atproto/crypto": "^0.3.0",
36
36
  "@atproto/syntax": "^0.1.5",
@@ -46,10 +46,10 @@
46
46
  "@types/pg": "^8.6.6",
47
47
  "@types/qs": "^6.9.7",
48
48
  "axios": "^0.27.2",
49
- "@atproto/api": "^0.9.5",
50
- "@atproto/dev-env": "^0.2.28",
49
+ "@atproto/api": "^0.9.7",
50
+ "@atproto/dev-env": "^0.2.30",
51
51
  "@atproto/lex-cli": "^0.3.0",
52
- "@atproto/pds": "^0.3.16",
52
+ "@atproto/pds": "^0.3.18",
53
53
  "@atproto/xrpc": "^0.4.1"
54
54
  },
55
55
  "scripts": {
@@ -51,17 +51,21 @@ export default function (server: Server, ctx: AppContext) {
51
51
  }
52
52
 
53
53
  if (isTakedownEvent || isReverseTakedownEvent) {
54
- const isSubjectTakendown = await moderationService.isSubjectTakendown(
55
- subject,
56
- )
54
+ const status = await moderationService.getStatus(subject)
57
55
 
58
- if (isSubjectTakendown && isTakedownEvent) {
56
+ if (status?.takendown && isTakedownEvent) {
59
57
  throw new InvalidRequestError(`Subject is already taken down`)
60
58
  }
61
59
 
62
- if (!isSubjectTakendown && isReverseTakedownEvent) {
60
+ if (!status?.takendown && isReverseTakedownEvent) {
63
61
  throw new InvalidRequestError(`Subject is not taken down`)
64
62
  }
63
+
64
+ if (status?.takendown && isReverseTakedownEvent && subject.isRecord()) {
65
+ // due to the way blob status is modeled, we should reverse takedown on all
66
+ // blobs for the record being restored, which aren't taken down on another record.
67
+ subject.blobCids = status.blobCids ?? []
68
+ }
65
69
  }
66
70
 
67
71
  const moderationEvent = await db.transaction(async (dbTxn) => {
@@ -92,7 +96,6 @@ export default function (server: Server, ctx: AppContext) {
92
96
 
93
97
  if (isLabelEvent) {
94
98
  await moderationTxn.formatAndCreateLabels(
95
- ctx.cfg.service.did,
96
99
  result.subjectUri ?? result.subjectDid,
97
100
  result.subjectCid,
98
101
  {
@@ -13,7 +13,14 @@ export default function (server: Server, ctx: AppContext) {
13
13
  sortDirection = 'desc',
14
14
  types,
15
15
  includeAllUserRecords = false,
16
+ hasComment,
17
+ comment,
16
18
  createdBy,
19
+ createdAfter,
20
+ createdBefore,
21
+ addedLabels = [],
22
+ removedLabels = [],
23
+ reportTypes,
17
24
  } = params
18
25
  const db = ctx.db
19
26
  const modService = ctx.modService(db)
@@ -25,6 +32,13 @@ export default function (server: Server, ctx: AppContext) {
25
32
  cursor,
26
33
  sortDirection,
27
34
  includeAllUserRecords,
35
+ hasComment,
36
+ comment,
37
+ createdAfter,
38
+ createdBefore,
39
+ addedLabels,
40
+ removedLabels,
41
+ reportTypes,
28
42
  })
29
43
  return {
30
44
  encoding: 'application/json',
@@ -62,4 +62,5 @@ const eventTypes = new Set([
62
62
  'com.atproto.admin.defs#modEventUnmute',
63
63
  'com.atproto.admin.defs#modEventReverseTakedown',
64
64
  'com.atproto.admin.defs#modEventEmail',
65
+ 'com.atproto.admin.defs#modEventResolveAppeal',
65
66
  ])
@@ -1,29 +1,44 @@
1
1
  import { Server } from '../../lexicon'
2
2
  import AppContext from '../../context'
3
+ import {
4
+ UNSPECCED_TAKEDOWN_BLOBS_LABEL,
5
+ UNSPECCED_TAKEDOWN_LABEL,
6
+ } from '../../mod-service/types'
3
7
 
4
8
  export default function (server: Server, ctx: AppContext) {
5
- server.com.atproto.temp.fetchLabels(async ({ params }) => {
6
- const { limit } = params
7
- const since =
8
- params.since !== undefined ? new Date(params.since).toISOString() : ''
9
- const labelRes = await ctx.db.db
10
- .selectFrom('label')
11
- .selectAll()
12
- .orderBy('label.cts', 'asc')
13
- .where('cts', '>', since)
14
- .limit(limit)
15
- .execute()
9
+ server.com.atproto.temp.fetchLabels({
10
+ auth: ctx.authOptionalAccessOrRoleVerifier,
11
+ handler: async ({ auth, params }) => {
12
+ const { limit } = params
13
+ const since =
14
+ params.since !== undefined ? new Date(params.since).toISOString() : ''
15
+ const includeUnspeccedTakedowns =
16
+ auth.credentials.type === 'role' && auth.credentials.admin
17
+ const labelRes = await ctx.db.db
18
+ .selectFrom('label')
19
+ .selectAll()
20
+ .orderBy('label.cts', 'asc')
21
+ .where('cts', '>', since)
22
+ .if(!includeUnspeccedTakedowns, (q) =>
23
+ q.where('label.val', 'not in', [
24
+ UNSPECCED_TAKEDOWN_LABEL,
25
+ UNSPECCED_TAKEDOWN_BLOBS_LABEL,
26
+ ]),
27
+ )
28
+ .limit(limit)
29
+ .execute()
16
30
 
17
- const labels = labelRes.map((l) => ({
18
- ...l,
19
- cid: l.cid === '' ? undefined : l.cid,
20
- }))
31
+ const labels = labelRes.map((l) => ({
32
+ ...l,
33
+ cid: l.cid === '' ? undefined : l.cid,
34
+ }))
21
35
 
22
- return {
23
- encoding: 'application/json',
24
- body: {
25
- labels,
26
- },
27
- }
36
+ return {
37
+ encoding: 'application/json',
38
+ body: {
39
+ labels,
40
+ },
41
+ }
42
+ },
28
43
  })
29
44
  }
package/src/context.ts CHANGED
@@ -65,6 +65,7 @@ export class AppContext {
65
65
  eventPusher,
66
66
  appviewAgent,
67
67
  appviewAuth,
68
+ cfg.service.did,
68
69
  )
69
70
 
70
71
  const communicationTemplateService = CommunicationTemplateService.creator()
@@ -52,6 +52,7 @@ export class DaemonContext {
52
52
  eventPusher,
53
53
  appviewAgent,
54
54
  appviewAuth,
55
+ cfg.service.did,
55
56
  )
56
57
  const eventReverser = new EventReverser(db, modService)
57
58
 
@@ -0,0 +1,15 @@
1
+ import { Kysely } from 'kysely'
2
+
3
+ export async function up(db: Kysely<unknown>): Promise<void> {
4
+ await db.schema
5
+ .alterTable('moderation_event')
6
+ .addColumn('subjectBlobCids', 'jsonb')
7
+ .execute()
8
+ }
9
+
10
+ export async function down(db: Kysely<unknown>): Promise<void> {
11
+ await db.schema
12
+ .alterTable('moderation_event')
13
+ .dropColumn('subjectBlobCids')
14
+ .execute()
15
+ }
@@ -4,3 +4,4 @@
4
4
 
5
5
  export * as _20231219T205730722Z from './20231219T205730722Z-init'
6
6
  export * as _20240116T085607200Z from './20240116T085607200Z-communication-template'
7
+ export * as _20240201T051104136Z from './20240201T051104136Z-mod-event-blobs'
@@ -19,6 +19,7 @@ export interface ModerationEvent {
19
19
  subjectDid: string
20
20
  subjectUri: string | null
21
21
  subjectCid: string | null
22
+ subjectBlobCids: string[] | null
22
23
  createLabelVals: string | null
23
24
  negateLabelVals: string | null
24
25
  comment: string | null
package/src/db/types.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Pool as PgPool } from 'pg'
2
- import { DynamicModule, RawBuilder, SelectQueryBuilder } from 'kysely'
2
+ import { DynamicModule, RawBuilder, SelectQueryBuilder, sql } from 'kysely'
3
3
 
4
4
  export type DbRef = RawBuilder | ReturnType<DynamicModule['ref']>
5
5
 
@@ -13,3 +13,8 @@ export type PgOptions = {
13
13
  poolMaxUses?: number
14
14
  poolIdleTimeoutMs?: number
15
15
  }
16
+
17
+ export const jsonb = <T>(val: T) => {
18
+ if (val === null) return sql<T>`null`
19
+ return sql<T>`${JSON.stringify(val)}::jsonb`
20
+ }
@@ -127,7 +127,6 @@ import * as AppBskyNotificationRegisterPush from './types/app/bsky/notification/
127
127
  import * as AppBskyNotificationUpdateSeen from './types/app/bsky/notification/updateSeen'
128
128
  import * as AppBskyUnspeccedGetPopularFeedGenerators from './types/app/bsky/unspecced/getPopularFeedGenerators'
129
129
  import * as AppBskyUnspeccedGetTaggedSuggestions from './types/app/bsky/unspecced/getTaggedSuggestions'
130
- import * as AppBskyUnspeccedGetTimelineSkeleton from './types/app/bsky/unspecced/getTimelineSkeleton'
131
130
  import * as AppBskyUnspeccedSearchActorsSkeleton from './types/app/bsky/unspecced/searchActorsSkeleton'
132
131
  import * as AppBskyUnspeccedSearchPostsSkeleton from './types/app/bsky/unspecced/searchPostsSkeleton'
133
132
 
@@ -1649,17 +1648,6 @@ export class AppBskyUnspeccedNS {
1649
1648
  return this._server.xrpc.method(nsid, cfg)
1650
1649
  }
1651
1650
 
1652
- getTimelineSkeleton<AV extends AuthVerifier>(
1653
- cfg: ConfigOf<
1654
- AV,
1655
- AppBskyUnspeccedGetTimelineSkeleton.Handler<ExtractAuth<AV>>,
1656
- AppBskyUnspeccedGetTimelineSkeleton.HandlerReqCtx<ExtractAuth<AV>>
1657
- >,
1658
- ) {
1659
- const nsid = 'app.bsky.unspecced.getTimelineSkeleton' // @ts-ignore
1660
- return this._server.xrpc.method(nsid, cfg)
1661
- }
1662
-
1663
1651
  searchActorsSkeleton<AV extends AuthVerifier>(
1664
1652
  cfg: ConfigOf<
1665
1653
  AV,