@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
package/dist/index.js CHANGED
@@ -15144,7 +15144,7 @@ var require_object_inspect = __commonJS({
15144
15144
  if (isBoolean2(obj)) {
15145
15145
  return markBoxed(booleanValueOf.call(obj));
15146
15146
  }
15147
- if (isString2(obj)) {
15147
+ if (isString3(obj)) {
15148
15148
  return markBoxed(inspect(String(obj)));
15149
15149
  }
15150
15150
  if (!isDate2(obj) && !isRegExp(obj)) {
@@ -15183,7 +15183,7 @@ var require_object_inspect = __commonJS({
15183
15183
  function isError(obj) {
15184
15184
  return toStr(obj) === "[object Error]" && (!toStringTag || !(typeof obj === "object" && toStringTag in obj));
15185
15185
  }
15186
- function isString2(obj) {
15186
+ function isString3(obj) {
15187
15187
  return toStr(obj) === "[object String]" && (!toStringTag || !(typeof obj === "object" && toStringTag in obj));
15188
15188
  }
15189
15189
  function isNumber2(obj) {
@@ -22264,13 +22264,13 @@ var require_implementation2 = __commonJS({
22264
22264
  var isObject3 = object2 !== null && typeof object2 === "object";
22265
22265
  var isFunction2 = toStr.call(object2) === "[object Function]";
22266
22266
  var isArguments = isArgs(object2);
22267
- var isString2 = isObject3 && toStr.call(object2) === "[object String]";
22267
+ var isString3 = isObject3 && toStr.call(object2) === "[object String]";
22268
22268
  var theKeys = [];
22269
22269
  if (!isObject3 && !isFunction2 && !isArguments) {
22270
22270
  throw new TypeError("Object.keys called on a non-object");
22271
22271
  }
22272
22272
  var skipProto = hasProtoEnumBug && isFunction2;
22273
- if (isString2 && object2.length > 0 && !has.call(object2, 0)) {
22273
+ if (isString3 && object2.length > 0 && !has.call(object2, 0)) {
22274
22274
  for (var i = 0; i < object2.length; ++i) {
22275
22275
  theKeys.push(String(i));
22276
22276
  }
@@ -27864,16 +27864,16 @@ var require_validate = __commonJS({
27864
27864
  const matches = RELATIVE_JSON_POINTER.exec($data);
27865
27865
  if (!matches)
27866
27866
  throw new Error(`Invalid JSON-pointer: ${$data}`);
27867
- const up3 = +matches[1];
27867
+ const up4 = +matches[1];
27868
27868
  jsonPointer = matches[2];
27869
27869
  if (jsonPointer === "#") {
27870
- if (up3 >= dataLevel)
27871
- throw new Error(errorMsg("property/index", up3));
27872
- return dataPathArr[dataLevel - up3];
27870
+ if (up4 >= dataLevel)
27871
+ throw new Error(errorMsg("property/index", up4));
27872
+ return dataPathArr[dataLevel - up4];
27873
27873
  }
27874
- if (up3 > dataLevel)
27875
- throw new Error(errorMsg("data", up3));
27876
- data = dataNames[dataLevel - up3];
27874
+ if (up4 > dataLevel)
27875
+ throw new Error(errorMsg("data", up4));
27876
+ data = dataNames[dataLevel - up4];
27877
27877
  if (!jsonPointer)
27878
27878
  return data;
27879
27879
  }
@@ -27886,8 +27886,8 @@ var require_validate = __commonJS({
27886
27886
  }
27887
27887
  }
27888
27888
  return expr;
27889
- function errorMsg(pointerType, up3) {
27890
- return `Cannot access ${pointerType} ${up3} levels up, current level is ${dataLevel}`;
27889
+ function errorMsg(pointerType, up4) {
27890
+ return `Cannot access ${pointerType} ${up4} levels up, current level is ${dataLevel}`;
27891
27891
  }
27892
27892
  }
27893
27893
  exports.getData = getData;
@@ -33941,7 +33941,7 @@ var require_lib4 = __commonJS({
33941
33941
  preflightContinue: false,
33942
33942
  optionsSuccessStatus: 204
33943
33943
  };
33944
- function isString2(s) {
33944
+ function isString3(s) {
33945
33945
  return typeof s === "string" || s instanceof String;
33946
33946
  }
33947
33947
  function isOriginAllowed(origin, allowedOrigin) {
@@ -33952,7 +33952,7 @@ var require_lib4 = __commonJS({
33952
33952
  }
33953
33953
  }
33954
33954
  return false;
33955
- } else if (isString2(allowedOrigin)) {
33955
+ } else if (isString3(allowedOrigin)) {
33956
33956
  return origin === allowedOrigin;
33957
33957
  } else if (allowedOrigin instanceof RegExp) {
33958
33958
  return allowedOrigin.test(origin);
@@ -33967,7 +33967,7 @@ var require_lib4 = __commonJS({
33967
33967
  key: "Access-Control-Allow-Origin",
33968
33968
  value: "*"
33969
33969
  }]);
33970
- } else if (isString2(options.origin)) {
33970
+ } else if (isString3(options.origin)) {
33971
33971
  headers.push([{
33972
33972
  key: "Access-Control-Allow-Origin",
33973
33973
  value: options.origin
@@ -43357,30 +43357,292 @@ var require_dist2 = __commonJS({
43357
43357
  }
43358
43358
  });
43359
43359
 
43360
- // ../../node_modules/.pnpm/node-gyp-build-optional-packages@5.0.3/node_modules/node-gyp-build-optional-packages/index.js
43360
+ // ../../node_modules/.pnpm/detect-libc@2.0.2/node_modules/detect-libc/lib/process.js
43361
+ var require_process = __commonJS({
43362
+ "../../node_modules/.pnpm/detect-libc@2.0.2/node_modules/detect-libc/lib/process.js"(exports, module2) {
43363
+ "use strict";
43364
+ var isLinux = () => process.platform === "linux";
43365
+ var report = null;
43366
+ var getReport = () => {
43367
+ if (!report) {
43368
+ report = isLinux() && process.report ? process.report.getReport() : {};
43369
+ }
43370
+ return report;
43371
+ };
43372
+ module2.exports = { isLinux, getReport };
43373
+ }
43374
+ });
43375
+
43376
+ // ../../node_modules/.pnpm/detect-libc@2.0.2/node_modules/detect-libc/lib/filesystem.js
43377
+ var require_filesystem = __commonJS({
43378
+ "../../node_modules/.pnpm/detect-libc@2.0.2/node_modules/detect-libc/lib/filesystem.js"(exports, module2) {
43379
+ "use strict";
43380
+ var fs = require("fs");
43381
+ var LDD_PATH = "/usr/bin/ldd";
43382
+ var readFileSync = (path) => fs.readFileSync(path, "utf-8");
43383
+ var readFile = (path) => new Promise((resolve, reject) => {
43384
+ fs.readFile(path, "utf-8", (err, data) => {
43385
+ if (err) {
43386
+ reject(err);
43387
+ } else {
43388
+ resolve(data);
43389
+ }
43390
+ });
43391
+ });
43392
+ module2.exports = {
43393
+ LDD_PATH,
43394
+ readFileSync,
43395
+ readFile
43396
+ };
43397
+ }
43398
+ });
43399
+
43400
+ // ../../node_modules/.pnpm/detect-libc@2.0.2/node_modules/detect-libc/lib/detect-libc.js
43401
+ var require_detect_libc = __commonJS({
43402
+ "../../node_modules/.pnpm/detect-libc@2.0.2/node_modules/detect-libc/lib/detect-libc.js"(exports, module2) {
43403
+ "use strict";
43404
+ var childProcess = require("child_process");
43405
+ var { isLinux, getReport } = require_process();
43406
+ var { LDD_PATH, readFile, readFileSync } = require_filesystem();
43407
+ var cachedFamilyFilesystem;
43408
+ var cachedVersionFilesystem;
43409
+ var command = "getconf GNU_LIBC_VERSION 2>&1 || true; ldd --version 2>&1 || true";
43410
+ var commandOut = "";
43411
+ var safeCommand = () => {
43412
+ if (!commandOut) {
43413
+ return new Promise((resolve) => {
43414
+ childProcess.exec(command, (err, out) => {
43415
+ commandOut = err ? " " : out;
43416
+ resolve(commandOut);
43417
+ });
43418
+ });
43419
+ }
43420
+ return commandOut;
43421
+ };
43422
+ var safeCommandSync = () => {
43423
+ if (!commandOut) {
43424
+ try {
43425
+ commandOut = childProcess.execSync(command, { encoding: "utf8" });
43426
+ } catch (_err) {
43427
+ commandOut = " ";
43428
+ }
43429
+ }
43430
+ return commandOut;
43431
+ };
43432
+ var GLIBC = "glibc";
43433
+ var RE_GLIBC_VERSION = /GLIBC\s(\d+\.\d+)/;
43434
+ var MUSL = "musl";
43435
+ var GLIBC_ON_LDD = GLIBC.toUpperCase();
43436
+ var MUSL_ON_LDD = MUSL.toLowerCase();
43437
+ var isFileMusl = (f) => f.includes("libc.musl-") || f.includes("ld-musl-");
43438
+ var familyFromReport = () => {
43439
+ const report = getReport();
43440
+ if (report.header && report.header.glibcVersionRuntime) {
43441
+ return GLIBC;
43442
+ }
43443
+ if (Array.isArray(report.sharedObjects)) {
43444
+ if (report.sharedObjects.some(isFileMusl)) {
43445
+ return MUSL;
43446
+ }
43447
+ }
43448
+ return null;
43449
+ };
43450
+ var familyFromCommand = (out) => {
43451
+ const [getconf, ldd1] = out.split(/[\r\n]+/);
43452
+ if (getconf && getconf.includes(GLIBC)) {
43453
+ return GLIBC;
43454
+ }
43455
+ if (ldd1 && ldd1.includes(MUSL)) {
43456
+ return MUSL;
43457
+ }
43458
+ return null;
43459
+ };
43460
+ var getFamilyFromLddContent = (content) => {
43461
+ if (content.includes(MUSL_ON_LDD)) {
43462
+ return MUSL;
43463
+ }
43464
+ if (content.includes(GLIBC_ON_LDD)) {
43465
+ return GLIBC;
43466
+ }
43467
+ return null;
43468
+ };
43469
+ var familyFromFilesystem = async () => {
43470
+ if (cachedFamilyFilesystem !== void 0) {
43471
+ return cachedFamilyFilesystem;
43472
+ }
43473
+ cachedFamilyFilesystem = null;
43474
+ try {
43475
+ const lddContent = await readFile(LDD_PATH);
43476
+ cachedFamilyFilesystem = getFamilyFromLddContent(lddContent);
43477
+ } catch (e) {
43478
+ }
43479
+ return cachedFamilyFilesystem;
43480
+ };
43481
+ var familyFromFilesystemSync = () => {
43482
+ if (cachedFamilyFilesystem !== void 0) {
43483
+ return cachedFamilyFilesystem;
43484
+ }
43485
+ cachedFamilyFilesystem = null;
43486
+ try {
43487
+ const lddContent = readFileSync(LDD_PATH);
43488
+ cachedFamilyFilesystem = getFamilyFromLddContent(lddContent);
43489
+ } catch (e) {
43490
+ }
43491
+ return cachedFamilyFilesystem;
43492
+ };
43493
+ var family = async () => {
43494
+ let family2 = null;
43495
+ if (isLinux()) {
43496
+ family2 = await familyFromFilesystem();
43497
+ if (!family2) {
43498
+ family2 = familyFromReport();
43499
+ }
43500
+ if (!family2) {
43501
+ const out = await safeCommand();
43502
+ family2 = familyFromCommand(out);
43503
+ }
43504
+ }
43505
+ return family2;
43506
+ };
43507
+ var familySync = () => {
43508
+ let family2 = null;
43509
+ if (isLinux()) {
43510
+ family2 = familyFromFilesystemSync();
43511
+ if (!family2) {
43512
+ family2 = familyFromReport();
43513
+ }
43514
+ if (!family2) {
43515
+ const out = safeCommandSync();
43516
+ family2 = familyFromCommand(out);
43517
+ }
43518
+ }
43519
+ return family2;
43520
+ };
43521
+ var isNonGlibcLinux = async () => isLinux() && await family() !== GLIBC;
43522
+ var isNonGlibcLinuxSync = () => isLinux() && familySync() !== GLIBC;
43523
+ var versionFromFilesystem = async () => {
43524
+ if (cachedVersionFilesystem !== void 0) {
43525
+ return cachedVersionFilesystem;
43526
+ }
43527
+ cachedVersionFilesystem = null;
43528
+ try {
43529
+ const lddContent = await readFile(LDD_PATH);
43530
+ const versionMatch = lddContent.match(RE_GLIBC_VERSION);
43531
+ if (versionMatch) {
43532
+ cachedVersionFilesystem = versionMatch[1];
43533
+ }
43534
+ } catch (e) {
43535
+ }
43536
+ return cachedVersionFilesystem;
43537
+ };
43538
+ var versionFromFilesystemSync = () => {
43539
+ if (cachedVersionFilesystem !== void 0) {
43540
+ return cachedVersionFilesystem;
43541
+ }
43542
+ cachedVersionFilesystem = null;
43543
+ try {
43544
+ const lddContent = readFileSync(LDD_PATH);
43545
+ const versionMatch = lddContent.match(RE_GLIBC_VERSION);
43546
+ if (versionMatch) {
43547
+ cachedVersionFilesystem = versionMatch[1];
43548
+ }
43549
+ } catch (e) {
43550
+ }
43551
+ return cachedVersionFilesystem;
43552
+ };
43553
+ var versionFromReport = () => {
43554
+ const report = getReport();
43555
+ if (report.header && report.header.glibcVersionRuntime) {
43556
+ return report.header.glibcVersionRuntime;
43557
+ }
43558
+ return null;
43559
+ };
43560
+ var versionSuffix = (s) => s.trim().split(/\s+/)[1];
43561
+ var versionFromCommand = (out) => {
43562
+ const [getconf, ldd1, ldd2] = out.split(/[\r\n]+/);
43563
+ if (getconf && getconf.includes(GLIBC)) {
43564
+ return versionSuffix(getconf);
43565
+ }
43566
+ if (ldd1 && ldd2 && ldd1.includes(MUSL)) {
43567
+ return versionSuffix(ldd2);
43568
+ }
43569
+ return null;
43570
+ };
43571
+ var version2 = async () => {
43572
+ let version3 = null;
43573
+ if (isLinux()) {
43574
+ version3 = await versionFromFilesystem();
43575
+ if (!version3) {
43576
+ version3 = versionFromReport();
43577
+ }
43578
+ if (!version3) {
43579
+ const out = await safeCommand();
43580
+ version3 = versionFromCommand(out);
43581
+ }
43582
+ }
43583
+ return version3;
43584
+ };
43585
+ var versionSync = () => {
43586
+ let version3 = null;
43587
+ if (isLinux()) {
43588
+ version3 = versionFromFilesystemSync();
43589
+ if (!version3) {
43590
+ version3 = versionFromReport();
43591
+ }
43592
+ if (!version3) {
43593
+ const out = safeCommandSync();
43594
+ version3 = versionFromCommand(out);
43595
+ }
43596
+ }
43597
+ return version3;
43598
+ };
43599
+ module2.exports = {
43600
+ GLIBC,
43601
+ MUSL,
43602
+ family,
43603
+ familySync,
43604
+ isNonGlibcLinux,
43605
+ isNonGlibcLinuxSync,
43606
+ version: version2,
43607
+ versionSync
43608
+ };
43609
+ }
43610
+ });
43611
+
43612
+ // ../../node_modules/.pnpm/node-gyp-build-optional-packages@5.1.1/node_modules/node-gyp-build-optional-packages/index.js
43361
43613
  var require_node_gyp_build_optional_packages = __commonJS({
43362
- "../../node_modules/.pnpm/node-gyp-build-optional-packages@5.0.3/node_modules/node-gyp-build-optional-packages/index.js"(exports, module2) {
43614
+ "../../node_modules/.pnpm/node-gyp-build-optional-packages@5.1.1/node_modules/node-gyp-build-optional-packages/index.js"(exports, module2) {
43363
43615
  var fs = require("fs");
43364
43616
  var path = require("path");
43365
- var runtimeRequire = typeof __webpack_require__ === "function" ? __non_webpack_require__ : require;
43617
+ var url = require("url");
43366
43618
  var vars = process.config && process.config.variables || {};
43367
43619
  var prebuildsOnly = !!process.env.PREBUILDS_ONLY;
43368
- var abi = process.versions.modules;
43620
+ var versions = process.versions;
43621
+ var abi = versions.modules;
43622
+ if (versions.deno || process.isBun) {
43623
+ abi = "unsupported";
43624
+ }
43369
43625
  var runtime = isElectron() ? "electron" : "node";
43370
43626
  var arch = process.arch;
43371
43627
  var platform = process.platform;
43372
- var libc = process.env.LIBC || (isAlpine(platform) ? "musl" : "glibc");
43628
+ var libc = process.env.LIBC || (isMusl(platform) ? "musl" : "glibc");
43373
43629
  var armv = process.env.ARM_VERSION || (arch === "arm64" ? "8" : vars.arm_version) || "";
43374
- var uv = (process.versions.uv || "").split(".")[0];
43630
+ var uv = (versions.uv || "").split(".")[0];
43375
43631
  module2.exports = load;
43376
43632
  function load(dir) {
43377
- return runtimeRequire(load.path(dir));
43633
+ if (typeof __webpack_require__ === "function")
43634
+ return __non_webpack_require__(load.path(dir));
43635
+ else
43636
+ return require(load.path(dir));
43378
43637
  }
43379
43638
  load.path = function(dir) {
43380
43639
  dir = path.resolve(dir || ".");
43381
- var packageName;
43640
+ var packageName = "";
43382
43641
  try {
43383
- packageName = runtimeRequire(path.join(dir, "package.json")).name;
43642
+ if (typeof __webpack_require__ === "function")
43643
+ packageName = __non_webpack_require__(path.join(dir, "package.json")).name;
43644
+ else
43645
+ packageName = require(path.join(dir, "package.json")).name;
43384
43646
  var varName = packageName.toUpperCase().replace(/-/g, "_") + "_PREBUILD";
43385
43647
  if (process.env[varName])
43386
43648
  dir = process.env[varName];
@@ -43402,7 +43664,7 @@ var require_node_gyp_build_optional_packages = __commonJS({
43402
43664
  return nearby;
43403
43665
  var platformPackage = (packageName[0] == "@" ? "" : "@" + packageName + "/") + packageName + "-" + platform + "-" + arch;
43404
43666
  try {
43405
- var prebuildPackage = path.dirname(require("module").createRequire(path.join(dir, "package.json")).resolve(platformPackage));
43667
+ var prebuildPackage = path.dirname(require("module").createRequire(url.pathToFileURL(path.join(dir, "package.json"))).resolve(platformPackage));
43406
43668
  return resolveFile(prebuildPackage);
43407
43669
  } catch (error) {
43408
43670
  }
@@ -43418,7 +43680,7 @@ var require_node_gyp_build_optional_packages = __commonJS({
43418
43680
  process.versions.electron ? "electron=" + process.versions.electron : "",
43419
43681
  typeof __webpack_require__ === "function" ? "webpack=true" : ""
43420
43682
  ].filter(Boolean).join(" ");
43421
- throw new Error("No native build was found for " + target2 + "\n loaded from: " + dir + " and package: " + platformPackage + "\n");
43683
+ throw new Error("No native build was found for " + target2 + "\n attempted loading from: " + dir + " and package: " + platformPackage + "\n");
43422
43684
  function resolve(dir2) {
43423
43685
  var tuples = readdirSync(path.join(dir2, "prebuilds")).map(parseTuple);
43424
43686
  var tuple = tuples.filter(matchTuple(platform, arch)).sort(compareTuples)[0];
@@ -43541,8 +43803,11 @@ var require_node_gyp_build_optional_packages = __commonJS({
43541
43803
  return true;
43542
43804
  return typeof window !== "undefined" && window.process && window.process.type === "renderer";
43543
43805
  }
43544
- function isAlpine(platform2) {
43545
- return platform2 === "linux" && fs.existsSync("/etc/alpine-release");
43806
+ function isMusl(platform2) {
43807
+ if (platform2 !== "linux")
43808
+ return false;
43809
+ const { familySync, MUSL } = require_detect_libc();
43810
+ return familySync() === MUSL;
43546
43811
  }
43547
43812
  load.parseTags = parseTags;
43548
43813
  load.matchTags = matchTags;
@@ -43553,9 +43818,9 @@ var require_node_gyp_build_optional_packages = __commonJS({
43553
43818
  }
43554
43819
  });
43555
43820
 
43556
- // ../../node_modules/.pnpm/cbor-extract@2.1.1/node_modules/cbor-extract/index.js
43821
+ // ../../node_modules/.pnpm/cbor-extract@2.2.0/node_modules/cbor-extract/index.js
43557
43822
  var require_cbor_extract = __commonJS({
43558
- "../../node_modules/.pnpm/cbor-extract@2.1.1/node_modules/cbor-extract/index.js"(exports, module2) {
43823
+ "../../node_modules/.pnpm/cbor-extract@2.2.0/node_modules/cbor-extract/index.js"(exports, module2) {
43559
43824
  module2.exports = require_node_gyp_build_optional_packages()(__dirname);
43560
43825
  }
43561
43826
  });
@@ -75987,7 +76252,7 @@ if (cid) {
75987
76252
  }
75988
76253
  return result;
75989
76254
  }
75990
- var isString2 = typeOfTest("string");
76255
+ var isString3 = typeOfTest("string");
75991
76256
  var isFunction2 = typeOfTest("function");
75992
76257
  var isNumber2 = typeOfTest("number");
75993
76258
  var isObject22 = (thing) => thing !== null && typeof thing === "object";
@@ -76263,7 +76528,7 @@ if (cid) {
76263
76528
  isBuffer: isBuffer32,
76264
76529
  isFormData,
76265
76530
  isArrayBufferView,
76266
- isString: isString2,
76531
+ isString: isString3,
76267
76532
  isNumber: isNumber2,
76268
76533
  isBoolean: isBoolean2,
76269
76534
  isObject: isObject22,
@@ -79444,7 +79709,7 @@ var require_utils4 = __commonJS({
79444
79709
  }
79445
79710
  return result;
79446
79711
  }
79447
- function isString2(val) {
79712
+ function isString3(val) {
79448
79713
  return typeof val === "string";
79449
79714
  }
79450
79715
  function isNumber2(val) {
@@ -79594,7 +79859,7 @@ var require_utils4 = __commonJS({
79594
79859
  isBuffer: isBuffer3,
79595
79860
  isFormData,
79596
79861
  isArrayBufferView,
79597
- isString: isString2,
79862
+ isString: isString3,
79598
79863
  isNumber: isNumber2,
79599
79864
  isObject: isObject3,
79600
79865
  isPlainObject,
@@ -81022,7 +81287,7 @@ var require_follow_redirects = __commonJS({
81022
81287
  if (this._ending) {
81023
81288
  throw new WriteAfterEndError();
81024
81289
  }
81025
- if (!isString2(data) && !isBuffer3(data)) {
81290
+ if (!isString3(data) && !isBuffer3(data)) {
81026
81291
  throw new TypeError("data should be a string, Buffer or Uint8Array");
81027
81292
  }
81028
81293
  if (isFunction2(encoding)) {
@@ -81282,14 +81547,14 @@ var require_follow_redirects = __commonJS({
81282
81547
  var nativeProtocol = nativeProtocols[protocol] = protocols[scheme];
81283
81548
  var wrappedProtocol = exports2[scheme] = Object.create(nativeProtocol);
81284
81549
  function request(input, options, callback) {
81285
- if (isString2(input)) {
81550
+ if (isString3(input)) {
81286
81551
  var parsed;
81287
81552
  try {
81288
81553
  parsed = urlToOptions(new URL2(input));
81289
81554
  } catch (err) {
81290
81555
  parsed = url.parse(input);
81291
81556
  }
81292
- if (!isString2(parsed.protocol)) {
81557
+ if (!isString3(parsed.protocol)) {
81293
81558
  throw new InvalidUrlError({ input });
81294
81559
  }
81295
81560
  input = parsed;
@@ -81309,7 +81574,7 @@ var require_follow_redirects = __commonJS({
81309
81574
  maxBodyLength: exports2.maxBodyLength
81310
81575
  }, input, options);
81311
81576
  options.nativeProtocols = nativeProtocols;
81312
- if (!isString2(options.host) && !isString2(options.hostname)) {
81577
+ if (!isString3(options.host) && !isString3(options.hostname)) {
81313
81578
  options.hostname = "::1";
81314
81579
  }
81315
81580
  assert7.equal(options.protocol, protocol, "protocol mismatch");
@@ -81375,11 +81640,11 @@ var require_follow_redirects = __commonJS({
81375
81640
  request.abort();
81376
81641
  }
81377
81642
  function isSubdomain(subdomain, domain) {
81378
- assert7(isString2(subdomain) && isString2(domain));
81643
+ assert7(isString3(subdomain) && isString3(domain));
81379
81644
  var dot = subdomain.length - domain.length - 1;
81380
81645
  return dot > 0 && subdomain[dot] === "." && subdomain.endsWith(domain);
81381
81646
  }
81382
- function isString2(value) {
81647
+ function isString3(value) {
81383
81648
  return typeof value === "string" || value instanceof String;
81384
81649
  }
81385
81650
  function isFunction2(value) {
@@ -94769,6 +95034,11 @@ var handlerSuccess = z.object({
94769
95034
  body: z.any(),
94770
95035
  headers: z.record(z.string()).optional()
94771
95036
  });
95037
+ var handlerPipeThrough = z.object({
95038
+ encoding: z.string(),
95039
+ buffer: z.instanceof(ArrayBuffer),
95040
+ headers: z.record(z.string()).optional()
95041
+ });
94772
95042
  var handlerError = z.object({
94773
95043
  status: z.number(),
94774
95044
  error: z.string().optional(),
@@ -101405,6 +101675,15 @@ var Server = class {
101405
101675
  if (isHandlerError(outputUnvalidated)) {
101406
101676
  throw XRPCError2.fromError(outputUnvalidated);
101407
101677
  }
101678
+ if (outputUnvalidated && isHandlerPipeThrough(outputUnvalidated)) {
101679
+ if (outputUnvalidated?.headers) {
101680
+ Object.entries(outputUnvalidated.headers).forEach(([name2, val]) => {
101681
+ res.header(name2, val);
101682
+ });
101683
+ }
101684
+ res.header("Content-Type", outputUnvalidated.encoding).status(200).send(Buffer.from(outputUnvalidated.buffer));
101685
+ return;
101686
+ }
101408
101687
  if (!outputUnvalidated || isHandlerSuccess(outputUnvalidated)) {
101409
101688
  const output2 = validateResOutput(outputUnvalidated);
101410
101689
  if (output2?.headers) {
@@ -101546,6 +101825,24 @@ var Server = class {
101546
101825
  function isHandlerSuccess(v) {
101547
101826
  return handlerSuccess.safeParse(v).success;
101548
101827
  }
101828
+ function isHandlerPipeThrough(v) {
101829
+ if (v === null || typeof v !== "object") {
101830
+ return false;
101831
+ }
101832
+ if (!isString(v["encoding"]) || !(v["buffer"] instanceof ArrayBuffer)) {
101833
+ return false;
101834
+ }
101835
+ if (v["headers"] !== void 0) {
101836
+ if (v["headers"] === null || typeof v["headers"] !== "object") {
101837
+ return false;
101838
+ }
101839
+ if (!Object.values(v["headers"]).every(isString)) {
101840
+ return false;
101841
+ }
101842
+ }
101843
+ return true;
101844
+ }
101845
+ var isString = (val) => typeof val === "string";
101549
101846
  var kRequestLocals = Symbol("requestLocals");
101550
101847
  function createLocalsMiddleware(nsid2) {
101551
101848
  return function(req, _res, next) {
@@ -101683,7 +101980,8 @@ var schemaDict = {
101683
101980
  "lex:com.atproto.admin.defs#modEventAcknowledge",
101684
101981
  "lex:com.atproto.admin.defs#modEventEscalate",
101685
101982
  "lex:com.atproto.admin.defs#modEventMute",
101686
- "lex:com.atproto.admin.defs#modEventEmail"
101983
+ "lex:com.atproto.admin.defs#modEventEmail",
101984
+ "lex:com.atproto.admin.defs#modEventResolveAppeal"
101687
101985
  ]
101688
101986
  },
101689
101987
  subject: {
@@ -101740,6 +102038,7 @@ var schemaDict = {
101740
102038
  "lex:com.atproto.admin.defs#modEventAcknowledge",
101741
102039
  "lex:com.atproto.admin.defs#modEventEscalate",
101742
102040
  "lex:com.atproto.admin.defs#modEventMute",
102041
+ "lex:com.atproto.admin.defs#modEventEmail",
101743
102042
  "lex:com.atproto.admin.defs#modEventResolveAppeal"
101744
102043
  ]
101745
102044
  },
@@ -103029,6 +103328,16 @@ var schemaDict = {
103029
103328
  enum: ["asc", "desc"],
103030
103329
  description: "Sort direction for the events. Defaults to descending order of created at timestamp."
103031
103330
  },
103331
+ createdAfter: {
103332
+ type: "string",
103333
+ format: "datetime",
103334
+ description: "Retrieve events created after a given timestamp"
103335
+ },
103336
+ createdBefore: {
103337
+ type: "string",
103338
+ format: "datetime",
103339
+ description: "Retrieve events created before a given timestamp"
103340
+ },
103032
103341
  subject: {
103033
103342
  type: "string",
103034
103343
  format: "uri"
@@ -103044,6 +103353,34 @@ var schemaDict = {
103044
103353
  maximum: 100,
103045
103354
  default: 50
103046
103355
  },
103356
+ hasComment: {
103357
+ type: "boolean",
103358
+ description: "If true, only events with comments are returned"
103359
+ },
103360
+ comment: {
103361
+ type: "string",
103362
+ description: "If specified, only events with comments containing the keyword are returned"
103363
+ },
103364
+ addedLabels: {
103365
+ type: "array",
103366
+ items: {
103367
+ type: "string"
103368
+ },
103369
+ description: "If specified, only events where all of these labels were added are returned"
103370
+ },
103371
+ removedLabels: {
103372
+ type: "array",
103373
+ items: {
103374
+ type: "string"
103375
+ },
103376
+ description: "If specified, only events where all of these labels were removed are returned"
103377
+ },
103378
+ reportTypes: {
103379
+ type: "array",
103380
+ items: {
103381
+ type: "string"
103382
+ }
103383
+ },
103047
103384
  cursor: {
103048
103385
  type: "string"
103049
103386
  }
@@ -103441,7 +103778,7 @@ var schemaDict = {
103441
103778
  defs: {
103442
103779
  main: {
103443
103780
  type: "query",
103444
- description: "Provides the DID of a repo.",
103781
+ description: "Resolves a handle (domain name) to a DID.",
103445
103782
  parameters: {
103446
103783
  type: "params",
103447
103784
  required: ["handle"],
@@ -103475,7 +103812,7 @@ var schemaDict = {
103475
103812
  defs: {
103476
103813
  main: {
103477
103814
  type: "procedure",
103478
- description: "Updates the handle of the account.",
103815
+ description: "Updates the current account's handle. Verifies handle validity, and updates did:plc document if necessary. Implemented by PDS, and requires auth.",
103479
103816
  input: {
103480
103817
  encoding: "application/json",
103481
103818
  schema: {
@@ -103484,7 +103821,8 @@ var schemaDict = {
103484
103821
  properties: {
103485
103822
  handle: {
103486
103823
  type: "string",
103487
- format: "handle"
103824
+ format: "handle",
103825
+ description: "The new handle."
103488
103826
  }
103489
103827
  }
103490
103828
  }
@@ -103567,7 +103905,7 @@ var schemaDict = {
103567
103905
  defs: {
103568
103906
  main: {
103569
103907
  type: "query",
103570
- description: "Find labels relevant to the provided URI patterns.",
103908
+ description: "Find labels relevant to the provided AT-URI patterns. Public endpoint for moderation services, though may return different or additional results with auth.",
103571
103909
  parameters: {
103572
103910
  type: "params",
103573
103911
  required: ["uriPatterns"],
@@ -103626,13 +103964,13 @@ var schemaDict = {
103626
103964
  defs: {
103627
103965
  main: {
103628
103966
  type: "subscription",
103629
- description: "Subscribe to label updates.",
103967
+ description: "Subscribe to stream of labels (and negations). Public endpoint implemented by mod services. Uses same sequencing scheme as repo event stream.",
103630
103968
  parameters: {
103631
103969
  type: "params",
103632
103970
  properties: {
103633
103971
  cursor: {
103634
103972
  type: "integer",
103635
- description: "The last known event to backfill from."
103973
+ description: "The last known event seq number to backfill from."
103636
103974
  }
103637
103975
  }
103638
103976
  },
@@ -103688,7 +104026,7 @@ var schemaDict = {
103688
104026
  defs: {
103689
104027
  main: {
103690
104028
  type: "procedure",
103691
- description: "Report a repo or a record.",
104029
+ description: "Submit a moderation report regarding an atproto account or record. Implemented by moderation services (with PDS proxying), and requires auth.",
103692
104030
  input: {
103693
104031
  encoding: "application/json",
103694
104032
  schema: {
@@ -103697,10 +104035,12 @@ var schemaDict = {
103697
104035
  properties: {
103698
104036
  reasonType: {
103699
104037
  type: "ref",
104038
+ description: "Indicates the broad category of violation the report is for.",
103700
104039
  ref: "lex:com.atproto.moderation.defs#reasonType"
103701
104040
  },
103702
104041
  reason: {
103703
- type: "string"
104042
+ type: "string",
104043
+ description: "Additional context about the content and violation."
103704
104044
  },
103705
104045
  subject: {
103706
104046
  type: "union",
@@ -103809,7 +104149,7 @@ var schemaDict = {
103809
104149
  defs: {
103810
104150
  main: {
103811
104151
  type: "procedure",
103812
- description: "Apply a batch transaction of creates, updates, and deletes.",
104152
+ description: "Apply a batch transaction of repository creates, updates, and deletes. Requires auth, implemented by PDS.",
103813
104153
  input: {
103814
104154
  encoding: "application/json",
103815
104155
  schema: {
@@ -103819,12 +104159,12 @@ var schemaDict = {
103819
104159
  repo: {
103820
104160
  type: "string",
103821
104161
  format: "at-identifier",
103822
- description: "The handle or DID of the repo."
104162
+ description: "The handle or DID of the repo (aka, current account)."
103823
104163
  },
103824
104164
  validate: {
103825
104165
  type: "boolean",
103826
104166
  default: true,
103827
- description: "Flag for validating the records."
104167
+ description: "Can be set to 'false' to skip Lexicon schema validation of record data, for all operations."
103828
104168
  },
103829
104169
  writes: {
103830
104170
  type: "array",
@@ -103840,6 +104180,7 @@ var schemaDict = {
103840
104180
  },
103841
104181
  swapCommit: {
103842
104182
  type: "string",
104183
+ description: "If provided, the entire operation will fail if the current repo commit CID does not match this value. Used to prevent conflicting repo mutations.",
103843
104184
  format: "cid"
103844
104185
  }
103845
104186
  }
@@ -103847,13 +104188,14 @@ var schemaDict = {
103847
104188
  },
103848
104189
  errors: [
103849
104190
  {
103850
- name: "InvalidSwap"
104191
+ name: "InvalidSwap",
104192
+ description: "Indicates that the 'swapCommit' parameter did not match current commit."
103851
104193
  }
103852
104194
  ]
103853
104195
  },
103854
104196
  create: {
103855
104197
  type: "object",
103856
- description: "Create a new record.",
104198
+ description: "Operation which creates a new record.",
103857
104199
  required: ["collection", "value"],
103858
104200
  properties: {
103859
104201
  collection: {
@@ -103871,7 +104213,7 @@ var schemaDict = {
103871
104213
  },
103872
104214
  update: {
103873
104215
  type: "object",
103874
- description: "Update an existing record.",
104216
+ description: "Operation which updates an existing record.",
103875
104217
  required: ["collection", "rkey", "value"],
103876
104218
  properties: {
103877
104219
  collection: {
@@ -103888,7 +104230,7 @@ var schemaDict = {
103888
104230
  },
103889
104231
  delete: {
103890
104232
  type: "object",
103891
- description: "Delete an existing record.",
104233
+ description: "Operation which deletes an existing record.",
103892
104234
  required: ["collection", "rkey"],
103893
104235
  properties: {
103894
104236
  collection: {
@@ -103908,7 +104250,7 @@ var schemaDict = {
103908
104250
  defs: {
103909
104251
  main: {
103910
104252
  type: "procedure",
103911
- description: "Create a new record.",
104253
+ description: "Create a single new repository record. Requires auth, implemented by PDS.",
103912
104254
  input: {
103913
104255
  encoding: "application/json",
103914
104256
  schema: {
@@ -103918,7 +104260,7 @@ var schemaDict = {
103918
104260
  repo: {
103919
104261
  type: "string",
103920
104262
  format: "at-identifier",
103921
- description: "The handle or DID of the repo."
104263
+ description: "The handle or DID of the repo (aka, current account)."
103922
104264
  },
103923
104265
  collection: {
103924
104266
  type: "string",
@@ -103927,17 +104269,17 @@ var schemaDict = {
103927
104269
  },
103928
104270
  rkey: {
103929
104271
  type: "string",
103930
- description: "The key of the record.",
104272
+ description: "The Record Key.",
103931
104273
  maxLength: 15
103932
104274
  },
103933
104275
  validate: {
103934
104276
  type: "boolean",
103935
104277
  default: true,
103936
- description: "Flag for validating the record."
104278
+ description: "Can be set to 'false' to skip Lexicon schema validation of record data."
103937
104279
  },
103938
104280
  record: {
103939
104281
  type: "unknown",
103940
- description: "The record to create."
104282
+ description: "The record itself. Must contain a $type field."
103941
104283
  },
103942
104284
  swapCommit: {
103943
104285
  type: "string",
@@ -103966,7 +104308,8 @@ var schemaDict = {
103966
104308
  },
103967
104309
  errors: [
103968
104310
  {
103969
- name: "InvalidSwap"
104311
+ name: "InvalidSwap",
104312
+ description: "Indicates that 'swapCommit' didn't match current repo commit."
103970
104313
  }
103971
104314
  ]
103972
104315
  }
@@ -103978,7 +104321,7 @@ var schemaDict = {
103978
104321
  defs: {
103979
104322
  main: {
103980
104323
  type: "procedure",
103981
- description: "Delete a record, or ensure it doesn't exist.",
104324
+ description: "Delete a repository record, or ensure it doesn't exist. Requires auth, implemented by PDS.",
103982
104325
  input: {
103983
104326
  encoding: "application/json",
103984
104327
  schema: {
@@ -103988,7 +104331,7 @@ var schemaDict = {
103988
104331
  repo: {
103989
104332
  type: "string",
103990
104333
  format: "at-identifier",
103991
- description: "The handle or DID of the repo."
104334
+ description: "The handle or DID of the repo (aka, current account)."
103992
104335
  },
103993
104336
  collection: {
103994
104337
  type: "string",
@@ -103997,7 +104340,7 @@ var schemaDict = {
103997
104340
  },
103998
104341
  rkey: {
103999
104342
  type: "string",
104000
- description: "The key of the record."
104343
+ description: "The Record Key."
104001
104344
  },
104002
104345
  swapRecord: {
104003
104346
  type: "string",
@@ -104026,7 +104369,7 @@ var schemaDict = {
104026
104369
  defs: {
104027
104370
  main: {
104028
104371
  type: "query",
104029
- description: "Get information about the repo, including the list of collections.",
104372
+ description: "Get information about an account and repository, including the list of collections. Does not require auth.",
104030
104373
  parameters: {
104031
104374
  type: "params",
104032
104375
  required: ["repo"],
@@ -104059,17 +104402,20 @@ var schemaDict = {
104059
104402
  format: "did"
104060
104403
  },
104061
104404
  didDoc: {
104062
- type: "unknown"
104405
+ type: "unknown",
104406
+ description: "The complete DID document for this account."
104063
104407
  },
104064
104408
  collections: {
104065
104409
  type: "array",
104410
+ description: "List of all the collections (NSIDs) for which this repo contains at least one record.",
104066
104411
  items: {
104067
104412
  type: "string",
104068
104413
  format: "nsid"
104069
104414
  }
104070
104415
  },
104071
104416
  handleIsCorrect: {
104072
- type: "boolean"
104417
+ type: "boolean",
104418
+ description: "Indicates if handle is currently valid (resolves bi-directionally)"
104073
104419
  }
104074
104420
  }
104075
104421
  }
@@ -104083,7 +104429,7 @@ var schemaDict = {
104083
104429
  defs: {
104084
104430
  main: {
104085
104431
  type: "query",
104086
- description: "Get a record.",
104432
+ description: "Get a single record from a repository. Does not require auth.",
104087
104433
  parameters: {
104088
104434
  type: "params",
104089
104435
  required: ["repo", "collection", "rkey"],
@@ -104100,7 +104446,7 @@ var schemaDict = {
104100
104446
  },
104101
104447
  rkey: {
104102
104448
  type: "string",
104103
- description: "The key of the record."
104449
+ description: "The Record Key."
104104
104450
  },
104105
104451
  cid: {
104106
104452
  type: "string",
@@ -104138,7 +104484,7 @@ var schemaDict = {
104138
104484
  defs: {
104139
104485
  main: {
104140
104486
  type: "query",
104141
- description: "List a range of records in a collection.",
104487
+ description: "List a range of records in a repository, matching a specific collection. Does not require auth.",
104142
104488
  parameters: {
104143
104489
  type: "params",
104144
104490
  required: ["repo", "collection"],
@@ -104222,7 +104568,7 @@ var schemaDict = {
104222
104568
  defs: {
104223
104569
  main: {
104224
104570
  type: "procedure",
104225
- description: "Write a record, creating or updating it as needed.",
104571
+ description: "Write a repository record, creating or updating it as needed. Requires auth, implemented by PDS.",
104226
104572
  input: {
104227
104573
  encoding: "application/json",
104228
104574
  schema: {
@@ -104233,7 +104579,7 @@ var schemaDict = {
104233
104579
  repo: {
104234
104580
  type: "string",
104235
104581
  format: "at-identifier",
104236
- description: "The handle or DID of the repo."
104582
+ description: "The handle or DID of the repo (aka, current account)."
104237
104583
  },
104238
104584
  collection: {
104239
104585
  type: "string",
@@ -104242,13 +104588,13 @@ var schemaDict = {
104242
104588
  },
104243
104589
  rkey: {
104244
104590
  type: "string",
104245
- description: "The key of the record.",
104591
+ description: "The Record Key.",
104246
104592
  maxLength: 15
104247
104593
  },
104248
104594
  validate: {
104249
104595
  type: "boolean",
104250
104596
  default: true,
104251
- description: "Flag for validating the record."
104597
+ description: "Can be set to 'false' to skip Lexicon schema validation of record data."
104252
104598
  },
104253
104599
  record: {
104254
104600
  type: "unknown",
@@ -104257,7 +104603,7 @@ var schemaDict = {
104257
104603
  swapRecord: {
104258
104604
  type: "string",
104259
104605
  format: "cid",
104260
- description: "Compare and swap with the previous record by CID."
104606
+ description: "Compare and swap with the previous record by CID. WARNING: nullable and optional field; may cause problems with golang implementation"
104261
104607
  },
104262
104608
  swapCommit: {
104263
104609
  type: "string",
@@ -104319,7 +104665,7 @@ var schemaDict = {
104319
104665
  defs: {
104320
104666
  main: {
104321
104667
  type: "procedure",
104322
- description: "Upload a new blob to be added to repo in a later request.",
104668
+ description: "Upload a new blob, to be referenced from a repository record. The blob will be deleted if it is not referenced within a time window (eg, minutes). Blob restrictions (mimetype, size, etc) are enforced when the reference is created. Requires auth, implemented by PDS.",
104323
104669
  input: {
104324
104670
  encoding: "*/*"
104325
104671
  },
@@ -104383,7 +104729,7 @@ var schemaDict = {
104383
104729
  defs: {
104384
104730
  main: {
104385
104731
  type: "procedure",
104386
- description: "Create an account.",
104732
+ description: "Create an account. Implemented by PDS.",
104387
104733
  input: {
104388
104734
  encoding: "application/json",
104389
104735
  schema: {
@@ -104395,11 +104741,13 @@ var schemaDict = {
104395
104741
  },
104396
104742
  handle: {
104397
104743
  type: "string",
104398
- format: "handle"
104744
+ format: "handle",
104745
+ description: "Requested handle for the account."
104399
104746
  },
104400
104747
  did: {
104401
104748
  type: "string",
104402
- format: "did"
104749
+ format: "did",
104750
+ description: "Pre-existing atproto DID, being imported to a new account."
104403
104751
  },
104404
104752
  inviteCode: {
104405
104753
  type: "string"
@@ -104411,13 +104759,16 @@ var schemaDict = {
104411
104759
  type: "string"
104412
104760
  },
104413
104761
  password: {
104414
- type: "string"
104762
+ type: "string",
104763
+ description: "Initial account password. May need to meet instance-specific password strength requirements."
104415
104764
  },
104416
104765
  recoveryKey: {
104417
- type: "string"
104766
+ type: "string",
104767
+ description: "DID PLC rotation key (aka, recovery key) to be included in PLC creation operation."
104418
104768
  },
104419
104769
  plcOp: {
104420
- type: "unknown"
104770
+ type: "unknown",
104771
+ description: "A signed DID PLC operation to be submitted as part of importing an existing account to this instance. NOTE: this optional field may be updated when full account migration is implemented."
104421
104772
  }
104422
104773
  }
104423
104774
  }
@@ -104426,6 +104777,7 @@ var schemaDict = {
104426
104777
  encoding: "application/json",
104427
104778
  schema: {
104428
104779
  type: "object",
104780
+ description: "Account login session returned on successful account creation.",
104429
104781
  required: ["accessJwt", "refreshJwt", "handle", "did"],
104430
104782
  properties: {
104431
104783
  accessJwt: {
@@ -104440,10 +104792,12 @@ var schemaDict = {
104440
104792
  },
104441
104793
  did: {
104442
104794
  type: "string",
104443
- format: "did"
104795
+ format: "did",
104796
+ description: "The DID of the new account."
104444
104797
  },
104445
104798
  didDoc: {
104446
- type: "unknown"
104799
+ type: "unknown",
104800
+ description: "Complete DID document."
104447
104801
  }
104448
104802
  }
104449
104803
  }
@@ -104488,7 +104842,8 @@ var schemaDict = {
104488
104842
  required: ["name"],
104489
104843
  properties: {
104490
104844
  name: {
104491
- type: "string"
104845
+ type: "string",
104846
+ description: "A short name for the App Password, to help distinguish them."
104492
104847
  }
104493
104848
  }
104494
104849
  }
@@ -104755,7 +105110,7 @@ var schemaDict = {
104755
105110
  defs: {
104756
105111
  main: {
104757
105112
  type: "procedure",
104758
- description: "Delete an actor's account with a token and password.",
105113
+ description: "Delete an actor's account with a token and password. Can only be called after requesting a deletion token. Requires auth.",
104759
105114
  input: {
104760
105115
  encoding: "application/json",
104761
105116
  schema: {
@@ -104792,7 +105147,7 @@ var schemaDict = {
104792
105147
  defs: {
104793
105148
  main: {
104794
105149
  type: "procedure",
104795
- description: "Delete the current session."
105150
+ description: "Delete the current session. Requires auth."
104796
105151
  }
104797
105152
  }
104798
105153
  },
@@ -104802,7 +105157,7 @@ var schemaDict = {
104802
105157
  defs: {
104803
105158
  main: {
104804
105159
  type: "query",
104805
- description: "Get a document describing the service's accounts configuration.",
105160
+ description: "Describes the server's account creation requirements and capabilities. Implemented by PDS.",
104806
105161
  output: {
104807
105162
  encoding: "application/json",
104808
105163
  schema: {
@@ -104810,19 +105165,23 @@ var schemaDict = {
104810
105165
  required: ["availableUserDomains"],
104811
105166
  properties: {
104812
105167
  inviteCodeRequired: {
104813
- type: "boolean"
105168
+ type: "boolean",
105169
+ description: "If true, an invite code must be supplied to create an account on this instance."
104814
105170
  },
104815
105171
  phoneVerificationRequired: {
104816
- type: "boolean"
105172
+ type: "boolean",
105173
+ description: "If true, a phone verification token must be supplied to create an account on this instance."
104817
105174
  },
104818
105175
  availableUserDomains: {
104819
105176
  type: "array",
105177
+ description: "List of domain suffixes that can be used in account handles.",
104820
105178
  items: {
104821
105179
  type: "string"
104822
105180
  }
104823
105181
  },
104824
105182
  links: {
104825
105183
  type: "ref",
105184
+ description: "URLs of service policy documents.",
104826
105185
  ref: "lex:com.atproto.server.describeServer#links"
104827
105186
  }
104828
105187
  }
@@ -104848,7 +105207,7 @@ var schemaDict = {
104848
105207
  defs: {
104849
105208
  main: {
104850
105209
  type: "query",
104851
- description: "Get all invite codes for a given account.",
105210
+ description: "Get all invite codes for the current account. Requires auth.",
104852
105211
  parameters: {
104853
105212
  type: "params",
104854
105213
  properties: {
@@ -104858,7 +105217,8 @@ var schemaDict = {
104858
105217
  },
104859
105218
  createAvailable: {
104860
105219
  type: "boolean",
104861
- default: true
105220
+ default: true,
105221
+ description: "Controls whether any new 'earned' but not 'created' invites should be created."
104862
105222
  }
104863
105223
  }
104864
105224
  },
@@ -104892,7 +105252,7 @@ var schemaDict = {
104892
105252
  defs: {
104893
105253
  main: {
104894
105254
  type: "query",
104895
- description: "Get information about the current session.",
105255
+ description: "Get information about the current auth session. Requires auth.",
104896
105256
  output: {
104897
105257
  encoding: "application/json",
104898
105258
  schema: {
@@ -104972,7 +105332,7 @@ var schemaDict = {
104972
105332
  defs: {
104973
105333
  main: {
104974
105334
  type: "procedure",
104975
- description: "Refresh an authentication session.",
105335
+ description: "Refresh an authentication session. Requires auth using the 'refreshJwt' (not the 'accessJwt').",
104976
105336
  output: {
104977
105337
  encoding: "application/json",
104978
105338
  schema: {
@@ -105077,7 +105437,7 @@ var schemaDict = {
105077
105437
  defs: {
105078
105438
  main: {
105079
105439
  type: "procedure",
105080
- description: "Reserve a repo signing key for account creation.",
105440
+ description: "Reserve a repo signing key, for use with account creation. Necessary so that a DID PLC update operation can be constructed during an account migraiton. Public and does not require auth; implemented by PDS. NOTE: this endpoint may change when full account migration is implemented.",
105081
105441
  input: {
105082
105442
  encoding: "application/json",
105083
105443
  schema: {
@@ -105085,7 +105445,8 @@ var schemaDict = {
105085
105445
  properties: {
105086
105446
  did: {
105087
105447
  type: "string",
105088
- description: "The did to reserve a new did:key for"
105448
+ format: "did",
105449
+ description: "The DID to reserve a key for."
105089
105450
  }
105090
105451
  }
105091
105452
  }
@@ -105098,7 +105459,7 @@ var schemaDict = {
105098
105459
  properties: {
105099
105460
  signingKey: {
105100
105461
  type: "string",
105101
- description: "Public signing key in the form of a did:key."
105462
+ description: "The public key for the reserved signing key, in did:key serialization."
105102
105463
  }
105103
105464
  }
105104
105465
  }
@@ -105204,7 +105565,7 @@ var schemaDict = {
105204
105565
  defs: {
105205
105566
  main: {
105206
105567
  type: "query",
105207
- description: "Get a blob associated with a given repo.",
105568
+ description: "Get a blob associated with a given account. Returns the full blob as originally uploaded. Does not require auth; implemented by PDS.",
105208
105569
  parameters: {
105209
105570
  type: "params",
105210
105571
  required: ["did", "cid"],
@@ -105212,7 +105573,7 @@ var schemaDict = {
105212
105573
  did: {
105213
105574
  type: "string",
105214
105575
  format: "did",
105215
- description: "The DID of the repo."
105576
+ description: "The DID of the account."
105216
105577
  },
105217
105578
  cid: {
105218
105579
  type: "string",
@@ -105233,7 +105594,7 @@ var schemaDict = {
105233
105594
  defs: {
105234
105595
  main: {
105235
105596
  type: "query",
105236
- description: "Get blocks from a given repo.",
105597
+ description: "Get data blocks from a given repo, by CID. For example, intermediate MST nodes, or records. Does not require auth; implemented by PDS.",
105237
105598
  parameters: {
105238
105599
  type: "params",
105239
105600
  required: ["did", "cids"],
@@ -105327,7 +105688,7 @@ var schemaDict = {
105327
105688
  defs: {
105328
105689
  main: {
105329
105690
  type: "query",
105330
- description: "Get the current commit CID & revision of the repo.",
105691
+ description: "Get the current commit CID & revision of the specified repo. Does not require auth.",
105331
105692
  parameters: {
105332
105693
  type: "params",
105333
105694
  required: ["did"],
@@ -105369,7 +105730,7 @@ var schemaDict = {
105369
105730
  defs: {
105370
105731
  main: {
105371
105732
  type: "query",
105372
- description: "Get blocks needed for existence or non-existence of record.",
105733
+ description: "Get data blocks needed to prove the existence or non-existence of record in the current version of repo. Does not require auth.",
105373
105734
  parameters: {
105374
105735
  type: "params",
105375
105736
  required: ["did", "collection", "rkey"],
@@ -105384,7 +105745,8 @@ var schemaDict = {
105384
105745
  format: "nsid"
105385
105746
  },
105386
105747
  rkey: {
105387
- type: "string"
105748
+ type: "string",
105749
+ description: "Record Key"
105388
105750
  },
105389
105751
  commit: {
105390
105752
  type: "string",
@@ -105405,7 +105767,7 @@ var schemaDict = {
105405
105767
  defs: {
105406
105768
  main: {
105407
105769
  type: "query",
105408
- description: "Gets the DID's repo, optionally catching up from a specific revision.",
105770
+ description: "Download a repository export as CAR file. Optionally only a 'diff' since a previous revision. Does not require auth; implemented by PDS.",
105409
105771
  parameters: {
105410
105772
  type: "params",
105411
105773
  required: ["did"],
@@ -105417,7 +105779,7 @@ var schemaDict = {
105417
105779
  },
105418
105780
  since: {
105419
105781
  type: "string",
105420
- description: "The revision of the repo to catch up from."
105782
+ description: "The revision ('rev') of the repo to create a diff from."
105421
105783
  }
105422
105784
  }
105423
105785
  },
@@ -105433,7 +105795,7 @@ var schemaDict = {
105433
105795
  defs: {
105434
105796
  main: {
105435
105797
  type: "query",
105436
- description: "List blob CIDs since some revision.",
105798
+ description: "List blob CIDso for an account, since some repo revision. Does not require auth; implemented by PDS.",
105437
105799
  parameters: {
105438
105800
  type: "params",
105439
105801
  required: ["did"],
@@ -105486,7 +105848,7 @@ var schemaDict = {
105486
105848
  defs: {
105487
105849
  main: {
105488
105850
  type: "query",
105489
- description: "List DIDs and root CIDs of hosted repos.",
105851
+ description: "Enumerates all the DID, rev, and commit CID for all repos hosted by this service. Does not require auth; implemented by PDS and Relay.",
105490
105852
  parameters: {
105491
105853
  type: "params",
105492
105854
  properties: {
@@ -105531,7 +105893,8 @@ var schemaDict = {
105531
105893
  },
105532
105894
  head: {
105533
105895
  type: "string",
105534
- format: "cid"
105896
+ format: "cid",
105897
+ description: "Current repo commit CID"
105535
105898
  },
105536
105899
  rev: {
105537
105900
  type: "string"
@@ -105546,7 +105909,7 @@ var schemaDict = {
105546
105909
  defs: {
105547
105910
  main: {
105548
105911
  type: "procedure",
105549
- description: "Notify a crawling service of a recent update; often when a long break between updates causes the connection with the crawling service to break.",
105912
+ description: "Notify a crawling service of a recent update, and that crawling should resume. Intended use is after a gap between repo stream events caused the crawling service to disconnect. Does not require auth; implemented by Relay.",
105550
105913
  input: {
105551
105914
  encoding: "application/json",
105552
105915
  schema: {
@@ -105555,7 +105918,7 @@ var schemaDict = {
105555
105918
  properties: {
105556
105919
  hostname: {
105557
105920
  type: "string",
105558
- description: "Hostname of the service that is notifying of update."
105921
+ description: "Hostname of the current service (usually a PDS) that is notifying of update."
105559
105922
  }
105560
105923
  }
105561
105924
  }
@@ -105569,7 +105932,7 @@ var schemaDict = {
105569
105932
  defs: {
105570
105933
  main: {
105571
105934
  type: "procedure",
105572
- description: "Request a service to persistently crawl hosted repos.",
105935
+ description: "Request a service to persistently crawl hosted repos. Expected use is new PDS instances declaring their existence to Relays. Does not require auth.",
105573
105936
  input: {
105574
105937
  encoding: "application/json",
105575
105938
  schema: {
@@ -105578,7 +105941,7 @@ var schemaDict = {
105578
105941
  properties: {
105579
105942
  hostname: {
105580
105943
  type: "string",
105581
- description: "Hostname of the service that is requesting to be crawled."
105944
+ description: "Hostname of the current service (eg, PDS) that is requesting to be crawled."
105582
105945
  }
105583
105946
  }
105584
105947
  }
@@ -105592,13 +105955,13 @@ var schemaDict = {
105592
105955
  defs: {
105593
105956
  main: {
105594
105957
  type: "subscription",
105595
- description: "Subscribe to repo updates.",
105958
+ description: "Repository event stream, aka Firehose endpoint. Outputs repo commits with diff data, and identity update events, for all repositories on the current server. See the atproto specifications for details around stream sequencing, repo versioning, CAR diff format, and more. Public and does not require auth; implemented by PDS and Relay.",
105596
105959
  parameters: {
105597
105960
  type: "params",
105598
105961
  properties: {
105599
105962
  cursor: {
105600
105963
  type: "integer",
105601
- description: "The last known event to backfill from."
105964
+ description: "The last known event seq number to backfill from."
105602
105965
  }
105603
105966
  }
105604
105967
  },
@@ -105619,12 +105982,14 @@ var schemaDict = {
105619
105982
  name: "FutureCursor"
105620
105983
  },
105621
105984
  {
105622
- name: "ConsumerTooSlow"
105985
+ name: "ConsumerTooSlow",
105986
+ description: "If the consumer of the stream can not keep up with events, and a backlog gets too large, the server will drop the connection."
105623
105987
  }
105624
105988
  ]
105625
105989
  },
105626
105990
  commit: {
105627
105991
  type: "object",
105992
+ description: "Represents an update of repository state. Note that empty commits are allowed, which include no repo data changes, but an update to rev and signature.",
105628
105993
  required: [
105629
105994
  "seq",
105630
105995
  "rebase",
@@ -105641,59 +106006,69 @@ var schemaDict = {
105641
106006
  nullable: ["prev", "since"],
105642
106007
  properties: {
105643
106008
  seq: {
105644
- type: "integer"
106009
+ type: "integer",
106010
+ description: "The stream sequence number of this message."
105645
106011
  },
105646
106012
  rebase: {
105647
- type: "boolean"
106013
+ type: "boolean",
106014
+ description: "DEPRECATED -- unused"
105648
106015
  },
105649
106016
  tooBig: {
105650
- type: "boolean"
106017
+ type: "boolean",
106018
+ description: "Indicates that this commit contained too many ops, or data size was too large. Consumers will need to make a separate request to get missing data."
105651
106019
  },
105652
106020
  repo: {
105653
106021
  type: "string",
105654
- format: "did"
106022
+ format: "did",
106023
+ description: "The repo this event comes from."
105655
106024
  },
105656
106025
  commit: {
105657
- type: "cid-link"
106026
+ type: "cid-link",
106027
+ description: "Repo commit object CID."
105658
106028
  },
105659
106029
  prev: {
105660
- type: "cid-link"
106030
+ type: "cid-link",
106031
+ description: "DEPRECATED -- unused. WARNING -- nullable and optional; stick with optional to ensure golang interoperability."
105661
106032
  },
105662
106033
  rev: {
105663
106034
  type: "string",
105664
- description: "The rev of the emitted commit."
106035
+ description: "The rev of the emitted commit. Note that this information is also in the commit object included in blocks, unless this is a tooBig event."
105665
106036
  },
105666
106037
  since: {
105667
106038
  type: "string",
105668
- description: "The rev of the last emitted commit from this repo."
106039
+ description: "The rev of the last emitted commit from this repo (if any)."
105669
106040
  },
105670
106041
  blocks: {
105671
106042
  type: "bytes",
105672
- description: "CAR file containing relevant blocks.",
106043
+ description: "CAR file containing relevant blocks, as a diff since the previous repo state.",
105673
106044
  maxLength: 1e6
105674
106045
  },
105675
106046
  ops: {
105676
106047
  type: "array",
105677
106048
  items: {
105678
106049
  type: "ref",
105679
- ref: "lex:com.atproto.sync.subscribeRepos#repoOp"
106050
+ ref: "lex:com.atproto.sync.subscribeRepos#repoOp",
106051
+ description: "List of repo mutation operations in this commit (eg, records created, updated, or deleted)."
105680
106052
  },
105681
106053
  maxLength: 200
105682
106054
  },
105683
106055
  blobs: {
105684
106056
  type: "array",
105685
106057
  items: {
105686
- type: "cid-link"
106058
+ type: "cid-link",
106059
+ description: "List of new blobs (by CID) referenced by records in this commit."
105687
106060
  }
105688
106061
  },
105689
106062
  time: {
105690
106063
  type: "string",
105691
- format: "datetime"
106064
+ format: "datetime",
106065
+ description: "Timestamp of when this message was originally broadcast."
105692
106066
  }
105693
106067
  }
105694
106068
  },
105695
106069
  handle: {
105696
106070
  type: "object",
106071
+ description: "Represents an update of the account's handle, or transition to/from invalid state.",
105697
106072
  required: ["seq", "did", "handle", "time"],
105698
106073
  properties: {
105699
106074
  seq: {
@@ -105715,6 +106090,7 @@ var schemaDict = {
105715
106090
  },
105716
106091
  migrate: {
105717
106092
  type: "object",
106093
+ description: "Represents an account moving from one PDS instance to another. NOTE: not implemented; full account migration may introduce a new message instead.",
105718
106094
  required: ["seq", "did", "migrateTo", "time"],
105719
106095
  nullable: ["migrateTo"],
105720
106096
  properties: {
@@ -105736,6 +106112,7 @@ var schemaDict = {
105736
106112
  },
105737
106113
  tombstone: {
105738
106114
  type: "object",
106115
+ description: "Indicates that an account has been deleted.",
105739
106116
  required: ["seq", "did", "time"],
105740
106117
  properties: {
105741
106118
  seq: {
@@ -105766,7 +106143,7 @@ var schemaDict = {
105766
106143
  },
105767
106144
  repoOp: {
105768
106145
  type: "object",
105769
- description: "A repo operation, ie a write of a single record. For creates and updates, CID is the record's CID as of this operation. For deletes, it's null.",
106146
+ description: "A repo operation, ie a mutation of a single record.",
105770
106147
  required: ["action", "path", "cid"],
105771
106148
  nullable: ["cid"],
105772
106149
  properties: {
@@ -105778,7 +106155,8 @@ var schemaDict = {
105778
106155
  type: "string"
105779
106156
  },
105780
106157
  cid: {
105781
- type: "cid-link"
106158
+ type: "cid-link",
106159
+ description: "For creates and updates, the new record CID. For deletions, null."
105782
106160
  }
105783
106161
  }
105784
106162
  }
@@ -105818,7 +106196,7 @@ var schemaDict = {
105818
106196
  defs: {
105819
106197
  main: {
105820
106198
  type: "query",
105821
- description: "Fetch all labels from a labeler created after a certain date.",
106199
+ description: "Fetch all labels from a labeler created after a certain date. DEPRECATED: use queryLabels or subscribeLabels instead",
105822
106200
  parameters: {
105823
106201
  type: "params",
105824
106202
  properties: {
@@ -105931,7 +106309,7 @@ var schemaDict = {
105931
106309
  defs: {
105932
106310
  main: {
105933
106311
  type: "procedure",
105934
- description: "Transfer an account.",
106312
+ description: "Transfer an account. NOTE: temporary method, necessarily how account migration will be implemented.",
105935
106313
  input: {
105936
106314
  encoding: "application/json",
105937
106315
  schema: {
@@ -106004,7 +106382,6 @@ var schemaDict = {
106004
106382
  AppBskyActorDefs: {
106005
106383
  lexicon: 1,
106006
106384
  id: "app.bsky.actor.defs",
106007
- description: "A reference to an actor in the network.",
106008
106385
  defs: {
106009
106386
  profileViewBasic: {
106010
106387
  type: "object",
@@ -106137,6 +106514,7 @@ var schemaDict = {
106137
106514
  },
106138
106515
  viewerState: {
106139
106516
  type: "object",
106517
+ description: "Metadata about the requesting account's relationship with the subject account. Only has meaningful content for authed requests.",
106140
106518
  properties: {
106141
106519
  muted: {
106142
106520
  type: "boolean"
@@ -106221,6 +106599,9 @@ var schemaDict = {
106221
106599
  type: "string",
106222
106600
  format: "at-uri"
106223
106601
  }
106602
+ },
106603
+ timelineIndex: {
106604
+ type: "integer"
106224
106605
  }
106225
106606
  }
106226
106607
  },
@@ -106302,7 +106683,7 @@ var schemaDict = {
106302
106683
  defs: {
106303
106684
  main: {
106304
106685
  type: "query",
106305
- description: "Get private preferences attached to the account.",
106686
+ description: "Get private preferences attached to the current account. Expected use is synchronization between multiple devices, and import/export during account migration. Requires auth.",
106306
106687
  parameters: {
106307
106688
  type: "params",
106308
106689
  properties: {}
@@ -106329,14 +106710,15 @@ var schemaDict = {
106329
106710
  defs: {
106330
106711
  main: {
106331
106712
  type: "query",
106332
- description: "Get detailed profile view of an actor.",
106713
+ description: "Get detailed profile view of an actor. Does not require auth, but contains relevant metadata with auth.",
106333
106714
  parameters: {
106334
106715
  type: "params",
106335
106716
  required: ["actor"],
106336
106717
  properties: {
106337
106718
  actor: {
106338
106719
  type: "string",
106339
- format: "at-identifier"
106720
+ format: "at-identifier",
106721
+ description: "Handle or DID of account to fetch profile of."
106340
106722
  }
106341
106723
  }
106342
106724
  },
@@ -106396,7 +106778,7 @@ var schemaDict = {
106396
106778
  defs: {
106397
106779
  main: {
106398
106780
  type: "query",
106399
- description: "Get a list of suggested actors, used for discovery.",
106781
+ description: "Get a list of suggested actors. Expected use is discovery of accounts to follow during new account onboarding.",
106400
106782
  parameters: {
106401
106783
  type: "params",
106402
106784
  properties: {
@@ -106439,7 +106821,7 @@ var schemaDict = {
106439
106821
  defs: {
106440
106822
  main: {
106441
106823
  type: "record",
106442
- description: "A declaration of a profile.",
106824
+ description: "A declaration of a Bluesky account profile.",
106443
106825
  key: "literal:self",
106444
106826
  record: {
106445
106827
  type: "object",
@@ -106451,21 +106833,25 @@ var schemaDict = {
106451
106833
  },
106452
106834
  description: {
106453
106835
  type: "string",
106836
+ description: "Free-form profile description text.",
106454
106837
  maxGraphemes: 256,
106455
106838
  maxLength: 2560
106456
106839
  },
106457
106840
  avatar: {
106458
106841
  type: "blob",
106842
+ description: "Small image to be displayed next to posts from account. AKA, 'profile picture'",
106459
106843
  accept: ["image/png", "image/jpeg"],
106460
106844
  maxSize: 1e6
106461
106845
  },
106462
106846
  banner: {
106463
106847
  type: "blob",
106848
+ description: "Larger horizontal image to display behind profile view.",
106464
106849
  accept: ["image/png", "image/jpeg"],
106465
106850
  maxSize: 1e6
106466
106851
  },
106467
106852
  labels: {
106468
106853
  type: "union",
106854
+ description: "Self-label values, specific to the Bluesky application, on the overall account.",
106469
106855
  refs: ["lex:com.atproto.label.defs#selfLabels"]
106470
106856
  }
106471
106857
  }
@@ -106502,7 +106888,7 @@ var schemaDict = {
106502
106888
  defs: {
106503
106889
  main: {
106504
106890
  type: "query",
106505
- description: "Find actors (profiles) matching search criteria.",
106891
+ description: "Find actors (profiles) matching search criteria. Does not require auth.",
106506
106892
  parameters: {
106507
106893
  type: "params",
106508
106894
  properties: {
@@ -106553,7 +106939,7 @@ var schemaDict = {
106553
106939
  defs: {
106554
106940
  main: {
106555
106941
  type: "query",
106556
- description: "Find actor suggestions for a prefix search term.",
106942
+ description: "Find actor suggestions for a prefix search term. Expected use is for auto-completion during text field entry. Does not require auth.",
106557
106943
  parameters: {
106558
106944
  type: "params",
106559
106945
  properties: {
@@ -106595,10 +106981,10 @@ var schemaDict = {
106595
106981
  AppBskyEmbedExternal: {
106596
106982
  lexicon: 1,
106597
106983
  id: "app.bsky.embed.external",
106598
- description: "A representation of some externally linked content, embedded in another form of content.",
106599
106984
  defs: {
106600
106985
  main: {
106601
106986
  type: "object",
106987
+ description: "A representation of some externally linked content (eg, a URL and 'card'), embedded in a Bluesky record (eg, a post).",
106602
106988
  required: ["external"],
106603
106989
  properties: {
106604
106990
  external: {
@@ -106662,7 +107048,7 @@ var schemaDict = {
106662
107048
  AppBskyEmbedImages: {
106663
107049
  lexicon: 1,
106664
107050
  id: "app.bsky.embed.images",
106665
- description: "A set of images embedded in some other form of content.",
107051
+ description: "A set of images embedded in a Bluesky record (eg, a post).",
106666
107052
  defs: {
106667
107053
  main: {
106668
107054
  type: "object",
@@ -106688,7 +107074,8 @@ var schemaDict = {
106688
107074
  maxSize: 1e6
106689
107075
  },
106690
107076
  alt: {
106691
- type: "string"
107077
+ type: "string",
107078
+ description: "Alt text description of the image, for accessibility."
106692
107079
  },
106693
107080
  aspectRatio: {
106694
107081
  type: "ref",
@@ -106730,13 +107117,16 @@ var schemaDict = {
106730
107117
  required: ["thumb", "fullsize", "alt"],
106731
107118
  properties: {
106732
107119
  thumb: {
106733
- type: "string"
107120
+ type: "string",
107121
+ description: "Fully-qualified URL where a thumbnail of the image can be fetched. For example, CDN location provided by the App View."
106734
107122
  },
106735
107123
  fullsize: {
106736
- type: "string"
107124
+ type: "string",
107125
+ description: "Fully-qualified URL where a large version of the image can be fetched. May or may not be the exact original blob. For example, CDN location provided by the App View."
106737
107126
  },
106738
107127
  alt: {
106739
- type: "string"
107128
+ type: "string",
107129
+ description: "Alt text description of the image, for accessibility."
106740
107130
  },
106741
107131
  aspectRatio: {
106742
107132
  type: "ref",
@@ -106749,7 +107139,7 @@ var schemaDict = {
106749
107139
  AppBskyEmbedRecord: {
106750
107140
  lexicon: 1,
106751
107141
  id: "app.bsky.embed.record",
106752
- description: "A representation of a record embedded in another form of content.",
107142
+ description: "A representation of a record embedded in a Bluesky record (eg, a post). For example, a quote-post, or sharing a feed generator record.",
106753
107143
  defs: {
106754
107144
  main: {
106755
107145
  type: "object",
@@ -106794,7 +107184,8 @@ var schemaDict = {
106794
107184
  ref: "lex:app.bsky.actor.defs#profileViewBasic"
106795
107185
  },
106796
107186
  value: {
106797
- type: "unknown"
107187
+ type: "unknown",
107188
+ description: "The record data itself."
106798
107189
  },
106799
107190
  labels: {
106800
107191
  type: "array",
@@ -106858,7 +107249,7 @@ var schemaDict = {
106858
107249
  AppBskyEmbedRecordWithMedia: {
106859
107250
  lexicon: 1,
106860
107251
  id: "app.bsky.embed.recordWithMedia",
106861
- description: "A representation of a record embedded in another form of content, alongside other compatible embeds.",
107252
+ description: "A representation of a record embedded in a Bluesky record (eg, a post), alongside other compatible embeds. For example, a quote post and image, or a quote post and external URL card.",
106862
107253
  defs: {
106863
107254
  main: {
106864
107255
  type: "object",
@@ -106957,6 +107348,7 @@ var schemaDict = {
106957
107348
  },
106958
107349
  viewerState: {
106959
107350
  type: "object",
107351
+ description: "Metadata about the requesting account's relationship with the subject content. Only has meaningful content for authed requests.",
106960
107352
  properties: {
106961
107353
  repost: {
106962
107354
  type: "string",
@@ -107216,7 +107608,7 @@ var schemaDict = {
107216
107608
  defs: {
107217
107609
  main: {
107218
107610
  type: "query",
107219
- description: "Get information about a feed generator, including policies and offered feed URIs.",
107611
+ description: "Get information about a feed generator, including policies and offered feed URIs. Does not require auth; implemented by Feed Generator services (not App View).",
107220
107612
  output: {
107221
107613
  encoding: "application/json",
107222
107614
  schema: {
@@ -107271,7 +107663,7 @@ var schemaDict = {
107271
107663
  defs: {
107272
107664
  main: {
107273
107665
  type: "record",
107274
- description: "A declaration of the existence of a feed generator.",
107666
+ description: "Record declaring of the existence of a feed generator, and containing metadata about it. The record can exist in any repository.",
107275
107667
  key: "any",
107276
107668
  record: {
107277
107669
  type: "object",
@@ -107305,6 +107697,7 @@ var schemaDict = {
107305
107697
  },
107306
107698
  labels: {
107307
107699
  type: "union",
107700
+ description: "Self-label values",
107308
107701
  refs: ["lex:com.atproto.label.defs#selfLabels"]
107309
107702
  },
107310
107703
  createdAt: {
@@ -107322,7 +107715,7 @@ var schemaDict = {
107322
107715
  defs: {
107323
107716
  main: {
107324
107717
  type: "query",
107325
- description: "Get a list of feeds created by the actor.",
107718
+ description: "Get a list of feeds (feed generator records) created by the actor (in the actor's repo).",
107326
107719
  parameters: {
107327
107720
  type: "params",
107328
107721
  required: ["actor"],
@@ -107370,7 +107763,7 @@ var schemaDict = {
107370
107763
  defs: {
107371
107764
  main: {
107372
107765
  type: "query",
107373
- description: "Get a list of posts liked by an actor.",
107766
+ description: "Get a list of posts liked by an actor. Does not require auth.",
107374
107767
  parameters: {
107375
107768
  type: "params",
107376
107769
  required: ["actor"],
@@ -107426,7 +107819,7 @@ var schemaDict = {
107426
107819
  defs: {
107427
107820
  main: {
107428
107821
  type: "query",
107429
- description: "Get a view of an actor's feed.",
107822
+ description: "Get a view of an actor's 'author feed' (post and reposts by the author). Does not require auth.",
107430
107823
  parameters: {
107431
107824
  type: "params",
107432
107825
  required: ["actor"],
@@ -107446,6 +107839,7 @@ var schemaDict = {
107446
107839
  },
107447
107840
  filter: {
107448
107841
  type: "string",
107842
+ description: "Combinations of post/repost types to include in response.",
107449
107843
  knownValues: [
107450
107844
  "posts_with_replies",
107451
107845
  "posts_no_replies",
@@ -107492,7 +107886,7 @@ var schemaDict = {
107492
107886
  defs: {
107493
107887
  main: {
107494
107888
  type: "query",
107495
- description: "Get a hydrated feed from an actor's selected feed generator.",
107889
+ description: "Get a hydrated feed from an actor's selected feed generator. Implemented by App View.",
107496
107890
  parameters: {
107497
107891
  type: "params",
107498
107892
  required: ["feed"],
@@ -107545,14 +107939,15 @@ var schemaDict = {
107545
107939
  defs: {
107546
107940
  main: {
107547
107941
  type: "query",
107548
- description: "Get information about a feed generator.",
107942
+ description: "Get information about a feed generator. Implemented by AppView.",
107549
107943
  parameters: {
107550
107944
  type: "params",
107551
107945
  required: ["feed"],
107552
107946
  properties: {
107553
107947
  feed: {
107554
107948
  type: "string",
107555
- format: "at-uri"
107949
+ format: "at-uri",
107950
+ description: "AT-URI of the feed generator record."
107556
107951
  }
107557
107952
  }
107558
107953
  },
@@ -107567,10 +107962,12 @@ var schemaDict = {
107567
107962
  ref: "lex:app.bsky.feed.defs#generatorView"
107568
107963
  },
107569
107964
  isOnline: {
107570
- type: "boolean"
107965
+ type: "boolean",
107966
+ description: "Indicates whether the feed generator service has been online recently, or else seems to be inactive."
107571
107967
  },
107572
107968
  isValid: {
107573
- type: "boolean"
107969
+ type: "boolean",
107970
+ description: "Indicates whether the feed generator service is compatible with the record declaration."
107574
107971
  }
107575
107972
  }
107576
107973
  }
@@ -107623,14 +108020,15 @@ var schemaDict = {
107623
108020
  defs: {
107624
108021
  main: {
107625
108022
  type: "query",
107626
- description: "Get a skeleton of a feed provided by a feed generator.",
108023
+ description: "Get a skeleton of a feed provided by a feed generator. Auth is optional, depending on provider requirements, and provides the DID of the requester. Implemented by Feed Generator Service.",
107627
108024
  parameters: {
107628
108025
  type: "params",
107629
108026
  required: ["feed"],
107630
108027
  properties: {
107631
108028
  feed: {
107632
108029
  type: "string",
107633
- format: "at-uri"
108030
+ format: "at-uri",
108031
+ description: "Reference to feed generator record describing the specific feed being requested."
107634
108032
  },
107635
108033
  limit: {
107636
108034
  type: "integer",
@@ -107676,18 +108074,20 @@ var schemaDict = {
107676
108074
  defs: {
107677
108075
  main: {
107678
108076
  type: "query",
107679
- description: "Get the list of likes.",
108077
+ description: "Get like records which reference a subject (by AT-URI and CID).",
107680
108078
  parameters: {
107681
108079
  type: "params",
107682
108080
  required: ["uri"],
107683
108081
  properties: {
107684
108082
  uri: {
107685
108083
  type: "string",
107686
- format: "at-uri"
108084
+ format: "at-uri",
108085
+ description: "AT-URI of the subject (eg, a post record)."
107687
108086
  },
107688
108087
  cid: {
107689
108088
  type: "string",
107690
- format: "cid"
108089
+ format: "cid",
108090
+ description: "CID of the subject record (aka, specific version of record), to filter likes."
107691
108091
  },
107692
108092
  limit: {
107693
108093
  type: "integer",
@@ -107754,14 +108154,15 @@ var schemaDict = {
107754
108154
  defs: {
107755
108155
  main: {
107756
108156
  type: "query",
107757
- description: "Get a view of a recent posts from actors in a list.",
108157
+ description: "Get a feed of recent posts from a list (posts and reposts from any actors on the list). Does not require auth.",
107758
108158
  parameters: {
107759
108159
  type: "params",
107760
108160
  required: ["list"],
107761
108161
  properties: {
107762
108162
  list: {
107763
108163
  type: "string",
107764
- format: "at-uri"
108164
+ format: "at-uri",
108165
+ description: "Reference (AT-URI) to the list record."
107765
108166
  },
107766
108167
  limit: {
107767
108168
  type: "integer",
@@ -107807,23 +108208,26 @@ var schemaDict = {
107807
108208
  defs: {
107808
108209
  main: {
107809
108210
  type: "query",
107810
- description: "Get posts in a thread.",
108211
+ description: "Get posts in a thread. Does not require auth, but additional metadata and filtering will be applied for authed requests.",
107811
108212
  parameters: {
107812
108213
  type: "params",
107813
108214
  required: ["uri"],
107814
108215
  properties: {
107815
108216
  uri: {
107816
108217
  type: "string",
107817
- format: "at-uri"
108218
+ format: "at-uri",
108219
+ description: "Reference (AT-URI) to post record."
107818
108220
  },
107819
108221
  depth: {
107820
108222
  type: "integer",
108223
+ description: "How many levels of reply depth should be included in response.",
107821
108224
  default: 6,
107822
108225
  minimum: 0,
107823
108226
  maximum: 1e3
107824
108227
  },
107825
108228
  parentHeight: {
107826
108229
  type: "integer",
108230
+ description: "How many levels of parent (and grandparent, etc) post to include.",
107827
108231
  default: 80,
107828
108232
  minimum: 0,
107829
108233
  maximum: 1e3
@@ -107861,13 +108265,14 @@ var schemaDict = {
107861
108265
  defs: {
107862
108266
  main: {
107863
108267
  type: "query",
107864
- description: "Get a view of an actor's feed.",
108268
+ description: "Gets post views for a specified list of posts (by AT-URI). This is sometimes referred to as 'hydrating' a 'feed skeleton'.",
107865
108269
  parameters: {
107866
108270
  type: "params",
107867
108271
  required: ["uris"],
107868
108272
  properties: {
107869
108273
  uris: {
107870
108274
  type: "array",
108275
+ description: "List of post AT-URIs to return hydrated views for.",
107871
108276
  items: {
107872
108277
  type: "string",
107873
108278
  format: "at-uri"
@@ -107901,18 +108306,20 @@ var schemaDict = {
107901
108306
  defs: {
107902
108307
  main: {
107903
108308
  type: "query",
107904
- description: "Get a list of reposts.",
108309
+ description: "Get a list of reposts for a given post.",
107905
108310
  parameters: {
107906
108311
  type: "params",
107907
108312
  required: ["uri"],
107908
108313
  properties: {
107909
108314
  uri: {
107910
108315
  type: "string",
107911
- format: "at-uri"
108316
+ format: "at-uri",
108317
+ description: "Reference (AT-URI) of post record"
107912
108318
  },
107913
108319
  cid: {
107914
108320
  type: "string",
107915
- format: "cid"
108321
+ format: "cid",
108322
+ description: "If supplied, filters to reposts of specific version (by CID) of the post record."
107916
108323
  },
107917
108324
  limit: {
107918
108325
  type: "integer",
@@ -107961,7 +108368,7 @@ var schemaDict = {
107961
108368
  defs: {
107962
108369
  main: {
107963
108370
  type: "query",
107964
- description: "Get a list of suggested feeds for the viewer.",
108371
+ description: "Get a list of suggested feeds (feed generators) for the requesting account.",
107965
108372
  parameters: {
107966
108373
  type: "params",
107967
108374
  properties: {
@@ -108004,12 +108411,13 @@ var schemaDict = {
108004
108411
  defs: {
108005
108412
  main: {
108006
108413
  type: "query",
108007
- description: "Get a view of the actor's home timeline.",
108414
+ description: "Get a view of the requesting account's home timeline. This is expected to be some form of reverse-chronological feed.",
108008
108415
  parameters: {
108009
108416
  type: "params",
108010
108417
  properties: {
108011
108418
  algorithm: {
108012
- type: "string"
108419
+ type: "string",
108420
+ description: "Variant 'algorithm' for timeline. Implementation-specific. NOTE: most feed flexibility has been moved to feed generator mechanism."
108013
108421
  },
108014
108422
  limit: {
108015
108423
  type: "integer",
@@ -108050,7 +108458,7 @@ var schemaDict = {
108050
108458
  defs: {
108051
108459
  main: {
108052
108460
  type: "record",
108053
- description: "A declaration of a like.",
108461
+ description: "Record declaring a 'like' of a piece of subject content.",
108054
108462
  key: "tid",
108055
108463
  record: {
108056
108464
  type: "object",
@@ -108075,7 +108483,7 @@ var schemaDict = {
108075
108483
  defs: {
108076
108484
  main: {
108077
108485
  type: "record",
108078
- description: "A declaration of a post.",
108486
+ description: "Record containing a Bluesky post.",
108079
108487
  key: "tid",
108080
108488
  record: {
108081
108489
  type: "object",
@@ -108084,11 +108492,12 @@ var schemaDict = {
108084
108492
  text: {
108085
108493
  type: "string",
108086
108494
  maxLength: 3e3,
108087
- maxGraphemes: 300
108495
+ maxGraphemes: 300,
108496
+ description: "The primary post content. May be an empty string, if there are embeds."
108088
108497
  },
108089
108498
  entities: {
108090
108499
  type: "array",
108091
- description: "Deprecated: replaced by app.bsky.richtext.facet.",
108500
+ description: "DEPRECATED: replaced by app.bsky.richtext.facet.",
108092
108501
  items: {
108093
108502
  type: "ref",
108094
108503
  ref: "lex:app.bsky.feed.post#entity"
@@ -108096,6 +108505,7 @@ var schemaDict = {
108096
108505
  },
108097
108506
  facets: {
108098
108507
  type: "array",
108508
+ description: "Annotations of text (mentions, URLs, hashtags, etc)",
108099
108509
  items: {
108100
108510
  type: "ref",
108101
108511
  ref: "lex:app.bsky.richtext.facet"
@@ -108116,6 +108526,7 @@ var schemaDict = {
108116
108526
  },
108117
108527
  langs: {
108118
108528
  type: "array",
108529
+ description: "Indicates human language of post primary text content.",
108119
108530
  maxLength: 3,
108120
108531
  items: {
108121
108532
  type: "string",
@@ -108124,21 +108535,23 @@ var schemaDict = {
108124
108535
  },
108125
108536
  labels: {
108126
108537
  type: "union",
108538
+ description: "Self-label values for this post. Effectively content warnings.",
108127
108539
  refs: ["lex:com.atproto.label.defs#selfLabels"]
108128
108540
  },
108129
108541
  tags: {
108130
108542
  type: "array",
108543
+ description: "Additional non-inline tags describing this post.",
108131
108544
  maxLength: 8,
108132
108545
  items: {
108133
108546
  type: "string",
108134
108547
  maxLength: 640,
108135
108548
  maxGraphemes: 64
108136
- },
108137
- description: "Additional non-inline tags describing this post."
108549
+ }
108138
108550
  },
108139
108551
  createdAt: {
108140
108552
  type: "string",
108141
- format: "datetime"
108553
+ format: "datetime",
108554
+ description: "Client-declared timestamp when this post was originally created."
108142
108555
  }
108143
108556
  }
108144
108557
  }
@@ -108197,7 +108610,7 @@ var schemaDict = {
108197
108610
  id: "app.bsky.feed.repost",
108198
108611
  defs: {
108199
108612
  main: {
108200
- description: "A declaration of a repost.",
108613
+ description: "Record representing a 'repost' of an existing Bluesky post.",
108201
108614
  type: "record",
108202
108615
  key: "tid",
108203
108616
  record: {
@@ -108223,7 +108636,7 @@ var schemaDict = {
108223
108636
  defs: {
108224
108637
  main: {
108225
108638
  type: "query",
108226
- description: "Find posts matching search criteria.",
108639
+ description: "Find posts matching search criteria, returning views of those posts.",
108227
108640
  parameters: {
108228
108641
  type: "params",
108229
108642
  required: ["q"],
@@ -108282,14 +108695,15 @@ var schemaDict = {
108282
108695
  main: {
108283
108696
  type: "record",
108284
108697
  key: "tid",
108285
- description: "Defines interaction gating rules for a thread. The rkey of the threadgate record should match the rkey of the thread's root post.",
108698
+ description: "Record defining interaction gating rules for a thread (aka, reply controls). The record key (rkey) of the threadgate record must match the record key of the thread's root post, and that record must be in the same repository..",
108286
108699
  record: {
108287
108700
  type: "object",
108288
108701
  required: ["post", "createdAt"],
108289
108702
  properties: {
108290
108703
  post: {
108291
108704
  type: "string",
108292
- format: "at-uri"
108705
+ format: "at-uri",
108706
+ description: "Reference (AT-URI) to the post record."
108293
108707
  },
108294
108708
  allow: {
108295
108709
  type: "array",
@@ -108339,7 +108753,7 @@ var schemaDict = {
108339
108753
  defs: {
108340
108754
  main: {
108341
108755
  type: "record",
108342
- description: "A declaration of a block.",
108756
+ description: "Record declaring a 'block' relationship against another account. NOTE: blocks are public in Bluesky; see blog posts for details.",
108343
108757
  key: "tid",
108344
108758
  record: {
108345
108759
  type: "object",
@@ -108347,7 +108761,8 @@ var schemaDict = {
108347
108761
  properties: {
108348
108762
  subject: {
108349
108763
  type: "string",
108350
- format: "did"
108764
+ format: "did",
108765
+ description: "DID of the account to be blocked."
108351
108766
  },
108352
108767
  createdAt: {
108353
108768
  type: "string",
@@ -108531,7 +108946,7 @@ var schemaDict = {
108531
108946
  defs: {
108532
108947
  main: {
108533
108948
  type: "record",
108534
- description: "A declaration of a social follow.",
108949
+ description: "Record declaring a social 'follow' relationship of another account. Duplicate follows will be ignored by the AppView.",
108535
108950
  key: "tid",
108536
108951
  record: {
108537
108952
  type: "object",
@@ -108556,7 +108971,7 @@ var schemaDict = {
108556
108971
  defs: {
108557
108972
  main: {
108558
108973
  type: "query",
108559
- description: "Get a list of who the actor is blocking.",
108974
+ description: "Enumerates which accounts the requesting account is currently blocking. Requires auth.",
108560
108975
  parameters: {
108561
108976
  type: "params",
108562
108977
  properties: {
@@ -108599,7 +109014,7 @@ var schemaDict = {
108599
109014
  defs: {
108600
109015
  main: {
108601
109016
  type: "query",
108602
- description: "Get a list of an actor's followers.",
109017
+ description: "Enumerates accounts which follow a specified account (actor).",
108603
109018
  parameters: {
108604
109019
  type: "params",
108605
109020
  required: ["actor"],
@@ -108651,7 +109066,7 @@ var schemaDict = {
108651
109066
  defs: {
108652
109067
  main: {
108653
109068
  type: "query",
108654
- description: "Get a list of who the actor follows.",
109069
+ description: "Enumerates accounts which a specified account (actor) follows.",
108655
109070
  parameters: {
108656
109071
  type: "params",
108657
109072
  required: ["actor"],
@@ -108703,14 +109118,15 @@ var schemaDict = {
108703
109118
  defs: {
108704
109119
  main: {
108705
109120
  type: "query",
108706
- description: "Get a list of actors.",
109121
+ description: "Gets a 'view' (with additional context) of a specified list.",
108707
109122
  parameters: {
108708
109123
  type: "params",
108709
109124
  required: ["list"],
108710
109125
  properties: {
108711
109126
  list: {
108712
109127
  type: "string",
108713
- format: "at-uri"
109128
+ format: "at-uri",
109129
+ description: "Reference (AT-URI) of the list record to hydrate."
108714
109130
  },
108715
109131
  limit: {
108716
109132
  type: "integer",
@@ -108755,7 +109171,7 @@ var schemaDict = {
108755
109171
  defs: {
108756
109172
  main: {
108757
109173
  type: "query",
108758
- description: "Get lists that the actor is blocking.",
109174
+ description: "Get mod lists that the requesting account (actor) is blocking. Requires auth.",
108759
109175
  parameters: {
108760
109176
  type: "params",
108761
109177
  properties: {
@@ -108798,7 +109214,7 @@ var schemaDict = {
108798
109214
  defs: {
108799
109215
  main: {
108800
109216
  type: "query",
108801
- description: "Get lists that the actor is muting.",
109217
+ description: "Enumerates mod lists that the requesting account (actor) currently has muted. Requires auth.",
108802
109218
  parameters: {
108803
109219
  type: "params",
108804
109220
  properties: {
@@ -108841,14 +109257,15 @@ var schemaDict = {
108841
109257
  defs: {
108842
109258
  main: {
108843
109259
  type: "query",
108844
- description: "Get a list of lists that belong to an actor.",
109260
+ description: "Enumerates the lists created by a specified account (actor).",
108845
109261
  parameters: {
108846
109262
  type: "params",
108847
109263
  required: ["actor"],
108848
109264
  properties: {
108849
109265
  actor: {
108850
109266
  type: "string",
108851
- format: "at-identifier"
109267
+ format: "at-identifier",
109268
+ description: "The account (actor) to enumerate lists from."
108852
109269
  },
108853
109270
  limit: {
108854
109271
  type: "integer",
@@ -108889,7 +109306,7 @@ var schemaDict = {
108889
109306
  defs: {
108890
109307
  main: {
108891
109308
  type: "query",
108892
- description: "Get a list of who the actor mutes.",
109309
+ description: "Enumerates accounts that the requesting account (actor) currently has muted. Requires auth.",
108893
109310
  parameters: {
108894
109311
  type: "params",
108895
109312
  properties: {
@@ -108932,17 +109349,19 @@ var schemaDict = {
108932
109349
  defs: {
108933
109350
  main: {
108934
109351
  type: "query",
108935
- description: "Enumerates public relationships between one account, and a list of other accounts",
109352
+ description: "Enumerates public relationships between one account, and a list of other accounts. Does not require auth.",
108936
109353
  parameters: {
108937
109354
  type: "params",
108938
109355
  required: ["actor"],
108939
109356
  properties: {
108940
109357
  actor: {
108941
109358
  type: "string",
108942
- format: "at-identifier"
109359
+ format: "at-identifier",
109360
+ description: "Primary account requesting relationships for."
108943
109361
  },
108944
109362
  others: {
108945
109363
  type: "array",
109364
+ description: "List of 'other' accounts to be related back to the primary.",
108946
109365
  maxLength: 30,
108947
109366
  items: {
108948
109367
  type: "string",
@@ -108989,7 +109408,7 @@ var schemaDict = {
108989
109408
  defs: {
108990
109409
  main: {
108991
109410
  type: "query",
108992
- description: "Get suggested follows related to a given actor.",
109411
+ description: "Enumerates follows similar to a given account (actor). Expected use is to recommend additional accounts immediately after following one account.",
108993
109412
  parameters: {
108994
109413
  type: "params",
108995
109414
  required: ["actor"],
@@ -109025,7 +109444,7 @@ var schemaDict = {
109025
109444
  defs: {
109026
109445
  main: {
109027
109446
  type: "record",
109028
- description: "A declaration of a list of actors.",
109447
+ description: "Record representing a list of accounts (actors). Scope includes both moderation-oriented lists and curration-oriented lists.",
109029
109448
  key: "tid",
109030
109449
  record: {
109031
109450
  type: "object",
@@ -109033,12 +109452,14 @@ var schemaDict = {
109033
109452
  properties: {
109034
109453
  purpose: {
109035
109454
  type: "ref",
109455
+ description: "Defines the purpose of the list (aka, moderation-oriented or curration-oriented)",
109036
109456
  ref: "lex:app.bsky.graph.defs#listPurpose"
109037
109457
  },
109038
109458
  name: {
109039
109459
  type: "string",
109040
109460
  maxLength: 64,
109041
- minLength: 1
109461
+ minLength: 1,
109462
+ description: "Display name for list; can not be empty."
109042
109463
  },
109043
109464
  description: {
109044
109465
  type: "string",
@@ -109076,7 +109497,7 @@ var schemaDict = {
109076
109497
  defs: {
109077
109498
  main: {
109078
109499
  type: "record",
109079
- description: "A block of an entire list of actors.",
109500
+ description: "Record representing a block relationship against an entire an entire list of accounts (actors).",
109080
109501
  key: "tid",
109081
109502
  record: {
109082
109503
  type: "object",
@@ -109084,7 +109505,8 @@ var schemaDict = {
109084
109505
  properties: {
109085
109506
  subject: {
109086
109507
  type: "string",
109087
- format: "at-uri"
109508
+ format: "at-uri",
109509
+ description: "Reference (AT-URI) to the mod list record."
109088
109510
  },
109089
109511
  createdAt: {
109090
109512
  type: "string",
@@ -109101,7 +109523,7 @@ var schemaDict = {
109101
109523
  defs: {
109102
109524
  main: {
109103
109525
  type: "record",
109104
- description: "An item under a declared list of actors.",
109526
+ description: "Record representing an account's inclusion on a specific list. The AppView will ignore duplicate listitem records.",
109105
109527
  key: "tid",
109106
109528
  record: {
109107
109529
  type: "object",
@@ -109109,11 +109531,13 @@ var schemaDict = {
109109
109531
  properties: {
109110
109532
  subject: {
109111
109533
  type: "string",
109112
- format: "did"
109534
+ format: "did",
109535
+ description: "The account which is included on the list."
109113
109536
  },
109114
109537
  list: {
109115
109538
  type: "string",
109116
- format: "at-uri"
109539
+ format: "at-uri",
109540
+ description: "Reference (AT-URI) to the list record (app.bsky.graph.list)."
109117
109541
  },
109118
109542
  createdAt: {
109119
109543
  type: "string",
@@ -109130,7 +109554,7 @@ var schemaDict = {
109130
109554
  defs: {
109131
109555
  main: {
109132
109556
  type: "procedure",
109133
- description: "Mute an actor by DID or handle.",
109557
+ description: "Creates a mute relationship for the specified account. Mutes are private in Bluesky. Requires auth.",
109134
109558
  input: {
109135
109559
  encoding: "application/json",
109136
109560
  schema: {
@@ -109153,7 +109577,7 @@ var schemaDict = {
109153
109577
  defs: {
109154
109578
  main: {
109155
109579
  type: "procedure",
109156
- description: "Mute a list of actors.",
109580
+ description: "Creates a mute relationship for the specified list of accounts. Mutes are private in Bluesky. Requires auth.",
109157
109581
  input: {
109158
109582
  encoding: "application/json",
109159
109583
  schema: {
@@ -109176,7 +109600,7 @@ var schemaDict = {
109176
109600
  defs: {
109177
109601
  main: {
109178
109602
  type: "procedure",
109179
- description: "Unmute an actor by DID or handle.",
109603
+ description: "Unmutes the specified account. Requires auth.",
109180
109604
  input: {
109181
109605
  encoding: "application/json",
109182
109606
  schema: {
@@ -109199,7 +109623,7 @@ var schemaDict = {
109199
109623
  defs: {
109200
109624
  main: {
109201
109625
  type: "procedure",
109202
- description: "Unmute a list of actors.",
109626
+ description: "Unmutes the specified list of accounts. Requires auth.",
109203
109627
  input: {
109204
109628
  encoding: "application/json",
109205
109629
  schema: {
@@ -109222,7 +109646,7 @@ var schemaDict = {
109222
109646
  defs: {
109223
109647
  main: {
109224
109648
  type: "query",
109225
- description: "Get the count of unread notifications.",
109649
+ description: "Count the number of unread notifications for the requesting account. Requires auth.",
109226
109650
  parameters: {
109227
109651
  type: "params",
109228
109652
  properties: {
@@ -109253,7 +109677,7 @@ var schemaDict = {
109253
109677
  defs: {
109254
109678
  main: {
109255
109679
  type: "query",
109256
- description: "Get a list of notifications.",
109680
+ description: "Enumerate notifications for the requesting account. Requires auth.",
109257
109681
  parameters: {
109258
109682
  type: "params",
109259
109683
  properties: {
@@ -109363,7 +109787,7 @@ var schemaDict = {
109363
109787
  defs: {
109364
109788
  main: {
109365
109789
  type: "procedure",
109366
- description: "Register for push notifications with a service.",
109790
+ description: "Register to receive push notifications, via a specified service, for the requesting account. Requires auth.",
109367
109791
  input: {
109368
109792
  encoding: "application/json",
109369
109793
  schema: {
@@ -109396,7 +109820,7 @@ var schemaDict = {
109396
109820
  defs: {
109397
109821
  main: {
109398
109822
  type: "procedure",
109399
- description: "Notify server that the user has seen notifications.",
109823
+ description: "Notify server that the requesting account has seen notifications. Requires auth.",
109400
109824
  input: {
109401
109825
  encoding: "application/json",
109402
109826
  schema: {
@@ -109419,6 +109843,7 @@ var schemaDict = {
109419
109843
  defs: {
109420
109844
  main: {
109421
109845
  type: "object",
109846
+ description: "Annotation of a sub-string within rich text.",
109422
109847
  required: ["index", "features"],
109423
109848
  properties: {
109424
109849
  index: {
@@ -109440,7 +109865,7 @@ var schemaDict = {
109440
109865
  },
109441
109866
  mention: {
109442
109867
  type: "object",
109443
- description: "A facet feature for actor mentions.",
109868
+ description: "Facet feature for mention of another account. The text is usually a handle, including a '@' prefix, but the facet reference is a DID.",
109444
109869
  required: ["did"],
109445
109870
  properties: {
109446
109871
  did: {
@@ -109451,7 +109876,7 @@ var schemaDict = {
109451
109876
  },
109452
109877
  link: {
109453
109878
  type: "object",
109454
- description: "A facet feature for links.",
109879
+ description: "Facet feature for a URL. The text URL may have been simplified or truncated, but the facet reference should be a complete URL.",
109455
109880
  required: ["uri"],
109456
109881
  properties: {
109457
109882
  uri: {
@@ -109462,7 +109887,7 @@ var schemaDict = {
109462
109887
  },
109463
109888
  tag: {
109464
109889
  type: "object",
109465
- description: "A hashtag.",
109890
+ description: "Facet feature for a hashtag. The text usually includes a '#' prefix, but the facet reference should not (except in the case of 'double hash tags').",
109466
109891
  required: ["tag"],
109467
109892
  properties: {
109468
109893
  tag: {
@@ -109474,7 +109899,7 @@ var schemaDict = {
109474
109899
  },
109475
109900
  byteSlice: {
109476
109901
  type: "object",
109477
- description: "A text segment. Start is inclusive, end is exclusive. Indices are for utf8-encoded strings.",
109902
+ description: "Specifies the sub-string range a facet feature applies to. Start index is inclusive, end index is exclusive. Indices are zero-indexed, counting bytes of the UTF-8 encoded text. NOTE: some languages, like Javascript, use UTF-16 or Unicode codepoints for string slice indexing; in these languages, convert to byte arrays before working with facets.",
109478
109903
  required: ["byteStart", "byteEnd"],
109479
109904
  properties: {
109480
109905
  byteStart: {
@@ -109608,54 +110033,6 @@ var schemaDict = {
109608
110033
  }
109609
110034
  }
109610
110035
  },
109611
- AppBskyUnspeccedGetTimelineSkeleton: {
109612
- lexicon: 1,
109613
- id: "app.bsky.unspecced.getTimelineSkeleton",
109614
- defs: {
109615
- main: {
109616
- type: "query",
109617
- description: "DEPRECATED: a skeleton of a timeline. Unspecced and will be unavailable soon.",
109618
- parameters: {
109619
- type: "params",
109620
- properties: {
109621
- limit: {
109622
- type: "integer",
109623
- minimum: 1,
109624
- maximum: 100,
109625
- default: 50
109626
- },
109627
- cursor: {
109628
- type: "string"
109629
- }
109630
- }
109631
- },
109632
- output: {
109633
- encoding: "application/json",
109634
- schema: {
109635
- type: "object",
109636
- required: ["feed"],
109637
- properties: {
109638
- cursor: {
109639
- type: "string"
109640
- },
109641
- feed: {
109642
- type: "array",
109643
- items: {
109644
- type: "ref",
109645
- ref: "lex:app.bsky.feed.defs#skeletonFeedPost"
109646
- }
109647
- }
109648
- }
109649
- }
109650
- },
109651
- errors: [
109652
- {
109653
- name: "UnknownFeed"
109654
- }
109655
- ]
109656
- }
109657
- }
109658
- },
109659
110036
  AppBskyUnspeccedSearchActorsSkeleton: {
109660
110037
  lexicon: 1,
109661
110038
  id: "app.bsky.unspecced.searchActorsSkeleton",
@@ -109855,7 +110232,8 @@ var eventTypes = /* @__PURE__ */ new Set([
109855
110232
  "com.atproto.admin.defs#modEventMute",
109856
110233
  "com.atproto.admin.defs#modEventUnmute",
109857
110234
  "com.atproto.admin.defs#modEventReverseTakedown",
109858
- "com.atproto.admin.defs#modEventEmail"
110235
+ "com.atproto.admin.defs#modEventEmail",
110236
+ "com.atproto.admin.defs#modEventResolveAppeal"
109859
110237
  ]);
109860
110238
 
109861
110239
  // src/mod-service/subject.ts
@@ -109873,7 +110251,7 @@ var subjectFromInput = (subject, blobs) => {
109873
110251
  };
109874
110252
  var subjectFromEventRow = (row) => {
109875
110253
  if (row.subjectType === "com.atproto.repo.strongRef" && row.subjectUri && row.subjectCid) {
109876
- return new RecordSubject(row.subjectUri, row.subjectCid);
110254
+ return new RecordSubject(row.subjectUri, row.subjectCid, row.subjectBlobCids ?? []);
109877
110255
  } else {
109878
110256
  return new RepoSubject(row.subjectDid);
109879
110257
  }
@@ -109881,7 +110259,7 @@ var subjectFromEventRow = (row) => {
109881
110259
  var subjectFromStatusRow = (row) => {
109882
110260
  if (row.recordPath && row.recordCid) {
109883
110261
  const uri2 = AtUri.make(row.did, ...row.recordPath.split("/")).toString();
109884
- return new RecordSubject(uri2.toString(), row.recordCid);
110262
+ return new RecordSubject(uri2.toString(), row.recordCid, row.blobCids ?? []);
109885
110263
  } else {
109886
110264
  return new RepoSubject(row.did);
109887
110265
  }
@@ -109903,7 +110281,8 @@ var RepoSubject = class {
109903
110281
  subjectType: "com.atproto.admin.defs#repoRef",
109904
110282
  subjectDid: this.did,
109905
110283
  subjectUri: null,
109906
- subjectCid: null
110284
+ subjectCid: null,
110285
+ subjectBlobCids: null
109907
110286
  };
109908
110287
  }
109909
110288
  lex() {
@@ -109933,7 +110312,8 @@ var RecordSubject = class {
109933
110312
  subjectType: "com.atproto.repo.strongRef",
109934
110313
  subjectDid: this.did,
109935
110314
  subjectUri: this.uri,
109936
- subjectCid: this.cid
110315
+ subjectCid: this.cid,
110316
+ subjectBlobCids: this.blobCids ?? []
109937
110317
  };
109938
110318
  }
109939
110319
  lex() {
@@ -110004,13 +110384,16 @@ function emitModerationEvent_default(server, ctx) {
110004
110384
  ]);
110005
110385
  }
110006
110386
  if (isTakedownEvent || isReverseTakedownEvent) {
110007
- const isSubjectTakendown = await moderationService.isSubjectTakendown(subject);
110008
- if (isSubjectTakendown && isTakedownEvent) {
110387
+ const status = await moderationService.getStatus(subject);
110388
+ if (status?.takendown && isTakedownEvent) {
110009
110389
  throw new InvalidRequestError(`Subject is already taken down`);
110010
110390
  }
110011
- if (!isSubjectTakendown && isReverseTakedownEvent) {
110391
+ if (!status?.takendown && isReverseTakedownEvent) {
110012
110392
  throw new InvalidRequestError(`Subject is not taken down`);
110013
110393
  }
110394
+ if (status?.takendown && isReverseTakedownEvent && subject.isRecord()) {
110395
+ subject.blobCids = status.blobCids ?? [];
110396
+ }
110014
110397
  }
110015
110398
  const moderationEvent = await db.transaction(async (dbTxn) => {
110016
110399
  const moderationTxn = ctx.modService(dbTxn);
@@ -110035,7 +110418,7 @@ function emitModerationEvent_default(server, ctx) {
110035
110418
  }
110036
110419
  }
110037
110420
  if (isLabelEvent) {
110038
- await moderationTxn.formatAndCreateLabels(ctx.cfg.service.did, result.subjectUri ?? result.subjectDid, result.subjectCid, {
110421
+ await moderationTxn.formatAndCreateLabels(result.subjectUri ?? result.subjectDid, result.subjectCid, {
110039
110422
  create: result.createLabelVals?.length ? result.createLabelVals.split(" ") : void 0,
110040
110423
  negate: result.negateLabelVals?.length ? result.negateLabelVals.split(" ") : void 0
110041
110424
  });
@@ -110241,7 +110624,14 @@ function queryModerationEvents_default(server, ctx) {
110241
110624
  sortDirection = "desc",
110242
110625
  types,
110243
110626
  includeAllUserRecords = false,
110244
- createdBy
110627
+ hasComment,
110628
+ comment,
110629
+ createdBy,
110630
+ createdAfter,
110631
+ createdBefore,
110632
+ addedLabels = [],
110633
+ removedLabels = [],
110634
+ reportTypes
110245
110635
  } = params2;
110246
110636
  const db = ctx.db;
110247
110637
  const modService = ctx.modService(db);
@@ -110252,7 +110642,14 @@ function queryModerationEvents_default(server, ctx) {
110252
110642
  limit,
110253
110643
  cursor,
110254
110644
  sortDirection,
110255
- includeAllUserRecords
110645
+ includeAllUserRecords,
110646
+ hasComment,
110647
+ comment,
110648
+ createdAfter,
110649
+ createdBefore,
110650
+ addedLabels,
110651
+ removedLabels,
110652
+ reportTypes
110256
110653
  });
110257
110654
  return {
110258
110655
  encoding: "application/json",
@@ -110283,22 +110680,33 @@ function getModerationEvent_default(server, ctx) {
110283
110680
  });
110284
110681
  }
110285
110682
 
110683
+ // src/mod-service/types.ts
110684
+ var UNSPECCED_TAKEDOWN_LABEL = "!unspecced-takedown";
110685
+ var UNSPECCED_TAKEDOWN_BLOBS_LABEL = "!unspecced-takedown-blobs";
110686
+
110286
110687
  // src/api/temp/fetchLabels.ts
110287
110688
  function fetchLabels_default(server, ctx) {
110288
- server.com.atproto.temp.fetchLabels(async ({ params: params2 }) => {
110289
- const { limit } = params2;
110290
- const since = params2.since !== void 0 ? new Date(params2.since).toISOString() : "";
110291
- const labelRes = await ctx.db.db.selectFrom("label").selectAll().orderBy("label.cts", "asc").where("cts", ">", since).limit(limit).execute();
110292
- const labels = labelRes.map((l) => ({
110293
- ...l,
110294
- cid: l.cid === "" ? void 0 : l.cid
110295
- }));
110296
- return {
110297
- encoding: "application/json",
110298
- body: {
110299
- labels
110300
- }
110301
- };
110689
+ server.com.atproto.temp.fetchLabels({
110690
+ auth: ctx.authOptionalAccessOrRoleVerifier,
110691
+ handler: async ({ auth, params: params2 }) => {
110692
+ const { limit } = params2;
110693
+ const since = params2.since !== void 0 ? new Date(params2.since).toISOString() : "";
110694
+ const includeUnspeccedTakedowns = auth.credentials.type === "role" && auth.credentials.admin;
110695
+ const labelRes = await ctx.db.db.selectFrom("label").selectAll().orderBy("label.cts", "asc").where("cts", ">", since).if(!includeUnspeccedTakedowns, (q) => q.where("label.val", "not in", [
110696
+ UNSPECCED_TAKEDOWN_LABEL,
110697
+ UNSPECCED_TAKEDOWN_BLOBS_LABEL
110698
+ ])).limit(limit).execute();
110699
+ const labels = labelRes.map((l) => ({
110700
+ ...l,
110701
+ cid: l.cid === "" ? void 0 : l.cid
110702
+ }));
110703
+ return {
110704
+ encoding: "application/json",
110705
+ body: {
110706
+ labels
110707
+ }
110708
+ };
110709
+ }
110302
110710
  });
110303
110711
  }
110304
110712
 
@@ -110410,7 +110818,7 @@ var import_express2 = __toESM(require_express2());
110410
110818
  function isUndefined(obj) {
110411
110819
  return obj === void 0;
110412
110820
  }
110413
- function isString(obj) {
110821
+ function isString2(obj) {
110414
110822
  return typeof obj === "string";
110415
110823
  }
110416
110824
  function isNumber(obj) {
@@ -111152,7 +111560,7 @@ var DynamicReferenceBuilder = class {
111152
111560
  }
111153
111561
  };
111154
111562
  function isDynamicReferenceBuilder(obj) {
111155
- return isObject2(obj) && isOperationNodeSource(obj) && isString(obj.dynamicReference);
111563
+ return isObject2(obj) && isOperationNodeSource(obj) && isString2(obj.dynamicReference);
111156
111564
  }
111157
111565
 
111158
111566
  // ../../node_modules/.pnpm/kysely@0.22.0/node_modules/kysely/dist/esm/parser/reference-parser.js
@@ -111164,7 +111572,7 @@ function parseReferenceExpressionOrList(arg) {
111164
111572
  }
111165
111573
  }
111166
111574
  function parseReferenceExpression(exp) {
111167
- if (isString(exp)) {
111575
+ if (isString2(exp)) {
111168
111576
  return parseStringReference(exp);
111169
111577
  } else if (isDynamicReferenceBuilder(exp)) {
111170
111578
  return exp.toOperationNode();
@@ -111314,7 +111722,7 @@ function parseIsFilter(left, op, right) {
111314
111722
  return FilterNode.create(parseReferenceExpression(left), parseFilterOperator(op), ValueNode.createImmediate(right));
111315
111723
  }
111316
111724
  function parseFilterOperator(op) {
111317
- if (isString(op) && OPERATORS.includes(op)) {
111725
+ if (isString2(op) && OPERATORS.includes(op)) {
111318
111726
  return OperatorNode.create(op);
111319
111727
  } else if (isOperationNodeSource(op)) {
111320
111728
  return op.toOperationNode();
@@ -111417,7 +111825,7 @@ function parseSelectExpressionOrList(selection) {
111417
111825
  }
111418
111826
  }
111419
111827
  function parseSelectExpression(selection) {
111420
- if (isString(selection)) {
111828
+ if (isString2(selection)) {
111421
111829
  return SelectionNode.create(parseAliasedStringReference(selection));
111422
111830
  } else if (isDynamicReferenceBuilder(selection)) {
111423
111831
  return SelectionNode.create(selection.toOperationNode());
@@ -111435,7 +111843,7 @@ function parseSelectAll(table) {
111435
111843
  }
111436
111844
  }
111437
111845
  function parseSelectAllArg(table) {
111438
- if (isString(table)) {
111846
+ if (isString2(table)) {
111439
111847
  return SelectionNode.createSelectAllFromTable(parseTable(table));
111440
111848
  }
111441
111849
  throw new Error(`invalid value selectAll expression: ${JSON.stringify(table)}`);
@@ -114365,7 +114773,7 @@ function parseTableExpressionOrList(table) {
114365
114773
  }
114366
114774
  }
114367
114775
  function parseTableExpression(table) {
114368
- if (isString(table)) {
114776
+ if (isString2(table)) {
114369
114777
  return parseAliasedTable(table);
114370
114778
  } else {
114371
114779
  return parseAliasedComplexExpression(table);
@@ -116680,7 +117088,7 @@ var DefaultQueryCompiler = class extends OperationNodeVisitor {
116680
117088
  this.append(this.getRightIdentifierWrapper());
116681
117089
  }
116682
117090
  compileUnwrappedIdentifier(node) {
116683
- if (!isString(node.name)) {
117091
+ if (!isString2(node.name)) {
116684
117092
  throw new Error("a non-string identifier was passed to compileUnwrappedIdentifier.");
116685
117093
  }
116686
117094
  this.append(this.sanitizeIdentifier(node.name));
@@ -117379,7 +117787,7 @@ var DefaultQueryCompiler = class extends OperationNodeVisitor {
117379
117787
  this.#parameters.push(parameter);
117380
117788
  }
117381
117789
  appendImmediateValue(value) {
117382
- if (isString(value)) {
117790
+ if (isString2(value)) {
117383
117791
  this.append(`'${value}'`);
117384
117792
  } else if (isNumber(value) || isBoolean(value)) {
117385
117793
  this.append(value.toString());
@@ -117816,7 +118224,7 @@ ${stackExtension}`;
117816
118224
  return err;
117817
118225
  }
117818
118226
  function isStackHolder(obj) {
117819
- return isObject2(obj) && isString(obj.stack);
118227
+ return isObject2(obj) && isString2(obj.stack);
117820
118228
  }
117821
118229
 
117822
118230
  // ../../node_modules/.pnpm/kysely@0.22.0/node_modules/kysely/dist/esm/dialect/postgres/postgres-driver.js
@@ -118631,10 +119039,6 @@ var AppBskyUnspeccedNS = class {
118631
119039
  const nsid2 = "app.bsky.unspecced.getTaggedSuggestions";
118632
119040
  return this._server.xrpc.method(nsid2, cfg);
118633
119041
  }
118634
- getTimelineSkeleton(cfg) {
118635
- const nsid2 = "app.bsky.unspecced.getTimelineSkeleton";
118636
- return this._server.xrpc.method(nsid2, cfg);
118637
- }
118638
119042
  searchActorsSkeleton(cfg) {
118639
119043
  const nsid2 = "app.bsky.unspecced.searchActorsSkeleton";
118640
119044
  return this._server.xrpc.method(nsid2, cfg);
@@ -119070,7 +119474,8 @@ var schemaDict2 = {
119070
119474
  "lex:com.atproto.admin.defs#modEventAcknowledge",
119071
119475
  "lex:com.atproto.admin.defs#modEventEscalate",
119072
119476
  "lex:com.atproto.admin.defs#modEventMute",
119073
- "lex:com.atproto.admin.defs#modEventEmail"
119477
+ "lex:com.atproto.admin.defs#modEventEmail",
119478
+ "lex:com.atproto.admin.defs#modEventResolveAppeal"
119074
119479
  ]
119075
119480
  },
119076
119481
  subject: {
@@ -119127,6 +119532,7 @@ var schemaDict2 = {
119127
119532
  "lex:com.atproto.admin.defs#modEventAcknowledge",
119128
119533
  "lex:com.atproto.admin.defs#modEventEscalate",
119129
119534
  "lex:com.atproto.admin.defs#modEventMute",
119535
+ "lex:com.atproto.admin.defs#modEventEmail",
119130
119536
  "lex:com.atproto.admin.defs#modEventResolveAppeal"
119131
119537
  ]
119132
119538
  },
@@ -120416,6 +120822,16 @@ var schemaDict2 = {
120416
120822
  enum: ["asc", "desc"],
120417
120823
  description: "Sort direction for the events. Defaults to descending order of created at timestamp."
120418
120824
  },
120825
+ createdAfter: {
120826
+ type: "string",
120827
+ format: "datetime",
120828
+ description: "Retrieve events created after a given timestamp"
120829
+ },
120830
+ createdBefore: {
120831
+ type: "string",
120832
+ format: "datetime",
120833
+ description: "Retrieve events created before a given timestamp"
120834
+ },
120419
120835
  subject: {
120420
120836
  type: "string",
120421
120837
  format: "uri"
@@ -120431,6 +120847,34 @@ var schemaDict2 = {
120431
120847
  maximum: 100,
120432
120848
  default: 50
120433
120849
  },
120850
+ hasComment: {
120851
+ type: "boolean",
120852
+ description: "If true, only events with comments are returned"
120853
+ },
120854
+ comment: {
120855
+ type: "string",
120856
+ description: "If specified, only events with comments containing the keyword are returned"
120857
+ },
120858
+ addedLabels: {
120859
+ type: "array",
120860
+ items: {
120861
+ type: "string"
120862
+ },
120863
+ description: "If specified, only events where all of these labels were added are returned"
120864
+ },
120865
+ removedLabels: {
120866
+ type: "array",
120867
+ items: {
120868
+ type: "string"
120869
+ },
120870
+ description: "If specified, only events where all of these labels were removed are returned"
120871
+ },
120872
+ reportTypes: {
120873
+ type: "array",
120874
+ items: {
120875
+ type: "string"
120876
+ }
120877
+ },
120434
120878
  cursor: {
120435
120879
  type: "string"
120436
120880
  }
@@ -120828,7 +121272,7 @@ var schemaDict2 = {
120828
121272
  defs: {
120829
121273
  main: {
120830
121274
  type: "query",
120831
- description: "Provides the DID of a repo.",
121275
+ description: "Resolves a handle (domain name) to a DID.",
120832
121276
  parameters: {
120833
121277
  type: "params",
120834
121278
  required: ["handle"],
@@ -120862,7 +121306,7 @@ var schemaDict2 = {
120862
121306
  defs: {
120863
121307
  main: {
120864
121308
  type: "procedure",
120865
- description: "Updates the handle of the account.",
121309
+ description: "Updates the current account's handle. Verifies handle validity, and updates did:plc document if necessary. Implemented by PDS, and requires auth.",
120866
121310
  input: {
120867
121311
  encoding: "application/json",
120868
121312
  schema: {
@@ -120871,7 +121315,8 @@ var schemaDict2 = {
120871
121315
  properties: {
120872
121316
  handle: {
120873
121317
  type: "string",
120874
- format: "handle"
121318
+ format: "handle",
121319
+ description: "The new handle."
120875
121320
  }
120876
121321
  }
120877
121322
  }
@@ -120954,7 +121399,7 @@ var schemaDict2 = {
120954
121399
  defs: {
120955
121400
  main: {
120956
121401
  type: "query",
120957
- description: "Find labels relevant to the provided URI patterns.",
121402
+ description: "Find labels relevant to the provided AT-URI patterns. Public endpoint for moderation services, though may return different or additional results with auth.",
120958
121403
  parameters: {
120959
121404
  type: "params",
120960
121405
  required: ["uriPatterns"],
@@ -121013,13 +121458,13 @@ var schemaDict2 = {
121013
121458
  defs: {
121014
121459
  main: {
121015
121460
  type: "subscription",
121016
- description: "Subscribe to label updates.",
121461
+ description: "Subscribe to stream of labels (and negations). Public endpoint implemented by mod services. Uses same sequencing scheme as repo event stream.",
121017
121462
  parameters: {
121018
121463
  type: "params",
121019
121464
  properties: {
121020
121465
  cursor: {
121021
121466
  type: "integer",
121022
- description: "The last known event to backfill from."
121467
+ description: "The last known event seq number to backfill from."
121023
121468
  }
121024
121469
  }
121025
121470
  },
@@ -121075,7 +121520,7 @@ var schemaDict2 = {
121075
121520
  defs: {
121076
121521
  main: {
121077
121522
  type: "procedure",
121078
- description: "Report a repo or a record.",
121523
+ description: "Submit a moderation report regarding an atproto account or record. Implemented by moderation services (with PDS proxying), and requires auth.",
121079
121524
  input: {
121080
121525
  encoding: "application/json",
121081
121526
  schema: {
@@ -121084,10 +121529,12 @@ var schemaDict2 = {
121084
121529
  properties: {
121085
121530
  reasonType: {
121086
121531
  type: "ref",
121532
+ description: "Indicates the broad category of violation the report is for.",
121087
121533
  ref: "lex:com.atproto.moderation.defs#reasonType"
121088
121534
  },
121089
121535
  reason: {
121090
- type: "string"
121536
+ type: "string",
121537
+ description: "Additional context about the content and violation."
121091
121538
  },
121092
121539
  subject: {
121093
121540
  type: "union",
@@ -121196,7 +121643,7 @@ var schemaDict2 = {
121196
121643
  defs: {
121197
121644
  main: {
121198
121645
  type: "procedure",
121199
- description: "Apply a batch transaction of creates, updates, and deletes.",
121646
+ description: "Apply a batch transaction of repository creates, updates, and deletes. Requires auth, implemented by PDS.",
121200
121647
  input: {
121201
121648
  encoding: "application/json",
121202
121649
  schema: {
@@ -121206,12 +121653,12 @@ var schemaDict2 = {
121206
121653
  repo: {
121207
121654
  type: "string",
121208
121655
  format: "at-identifier",
121209
- description: "The handle or DID of the repo."
121656
+ description: "The handle or DID of the repo (aka, current account)."
121210
121657
  },
121211
121658
  validate: {
121212
121659
  type: "boolean",
121213
121660
  default: true,
121214
- description: "Flag for validating the records."
121661
+ description: "Can be set to 'false' to skip Lexicon schema validation of record data, for all operations."
121215
121662
  },
121216
121663
  writes: {
121217
121664
  type: "array",
@@ -121227,6 +121674,7 @@ var schemaDict2 = {
121227
121674
  },
121228
121675
  swapCommit: {
121229
121676
  type: "string",
121677
+ description: "If provided, the entire operation will fail if the current repo commit CID does not match this value. Used to prevent conflicting repo mutations.",
121230
121678
  format: "cid"
121231
121679
  }
121232
121680
  }
@@ -121234,13 +121682,14 @@ var schemaDict2 = {
121234
121682
  },
121235
121683
  errors: [
121236
121684
  {
121237
- name: "InvalidSwap"
121685
+ name: "InvalidSwap",
121686
+ description: "Indicates that the 'swapCommit' parameter did not match current commit."
121238
121687
  }
121239
121688
  ]
121240
121689
  },
121241
121690
  create: {
121242
121691
  type: "object",
121243
- description: "Create a new record.",
121692
+ description: "Operation which creates a new record.",
121244
121693
  required: ["collection", "value"],
121245
121694
  properties: {
121246
121695
  collection: {
@@ -121258,7 +121707,7 @@ var schemaDict2 = {
121258
121707
  },
121259
121708
  update: {
121260
121709
  type: "object",
121261
- description: "Update an existing record.",
121710
+ description: "Operation which updates an existing record.",
121262
121711
  required: ["collection", "rkey", "value"],
121263
121712
  properties: {
121264
121713
  collection: {
@@ -121275,7 +121724,7 @@ var schemaDict2 = {
121275
121724
  },
121276
121725
  delete: {
121277
121726
  type: "object",
121278
- description: "Delete an existing record.",
121727
+ description: "Operation which deletes an existing record.",
121279
121728
  required: ["collection", "rkey"],
121280
121729
  properties: {
121281
121730
  collection: {
@@ -121295,7 +121744,7 @@ var schemaDict2 = {
121295
121744
  defs: {
121296
121745
  main: {
121297
121746
  type: "procedure",
121298
- description: "Create a new record.",
121747
+ description: "Create a single new repository record. Requires auth, implemented by PDS.",
121299
121748
  input: {
121300
121749
  encoding: "application/json",
121301
121750
  schema: {
@@ -121305,7 +121754,7 @@ var schemaDict2 = {
121305
121754
  repo: {
121306
121755
  type: "string",
121307
121756
  format: "at-identifier",
121308
- description: "The handle or DID of the repo."
121757
+ description: "The handle or DID of the repo (aka, current account)."
121309
121758
  },
121310
121759
  collection: {
121311
121760
  type: "string",
@@ -121314,17 +121763,17 @@ var schemaDict2 = {
121314
121763
  },
121315
121764
  rkey: {
121316
121765
  type: "string",
121317
- description: "The key of the record.",
121766
+ description: "The Record Key.",
121318
121767
  maxLength: 15
121319
121768
  },
121320
121769
  validate: {
121321
121770
  type: "boolean",
121322
121771
  default: true,
121323
- description: "Flag for validating the record."
121772
+ description: "Can be set to 'false' to skip Lexicon schema validation of record data."
121324
121773
  },
121325
121774
  record: {
121326
121775
  type: "unknown",
121327
- description: "The record to create."
121776
+ description: "The record itself. Must contain a $type field."
121328
121777
  },
121329
121778
  swapCommit: {
121330
121779
  type: "string",
@@ -121353,7 +121802,8 @@ var schemaDict2 = {
121353
121802
  },
121354
121803
  errors: [
121355
121804
  {
121356
- name: "InvalidSwap"
121805
+ name: "InvalidSwap",
121806
+ description: "Indicates that 'swapCommit' didn't match current repo commit."
121357
121807
  }
121358
121808
  ]
121359
121809
  }
@@ -121365,7 +121815,7 @@ var schemaDict2 = {
121365
121815
  defs: {
121366
121816
  main: {
121367
121817
  type: "procedure",
121368
- description: "Delete a record, or ensure it doesn't exist.",
121818
+ description: "Delete a repository record, or ensure it doesn't exist. Requires auth, implemented by PDS.",
121369
121819
  input: {
121370
121820
  encoding: "application/json",
121371
121821
  schema: {
@@ -121375,7 +121825,7 @@ var schemaDict2 = {
121375
121825
  repo: {
121376
121826
  type: "string",
121377
121827
  format: "at-identifier",
121378
- description: "The handle or DID of the repo."
121828
+ description: "The handle or DID of the repo (aka, current account)."
121379
121829
  },
121380
121830
  collection: {
121381
121831
  type: "string",
@@ -121384,7 +121834,7 @@ var schemaDict2 = {
121384
121834
  },
121385
121835
  rkey: {
121386
121836
  type: "string",
121387
- description: "The key of the record."
121837
+ description: "The Record Key."
121388
121838
  },
121389
121839
  swapRecord: {
121390
121840
  type: "string",
@@ -121413,7 +121863,7 @@ var schemaDict2 = {
121413
121863
  defs: {
121414
121864
  main: {
121415
121865
  type: "query",
121416
- description: "Get information about the repo, including the list of collections.",
121866
+ description: "Get information about an account and repository, including the list of collections. Does not require auth.",
121417
121867
  parameters: {
121418
121868
  type: "params",
121419
121869
  required: ["repo"],
@@ -121446,17 +121896,20 @@ var schemaDict2 = {
121446
121896
  format: "did"
121447
121897
  },
121448
121898
  didDoc: {
121449
- type: "unknown"
121899
+ type: "unknown",
121900
+ description: "The complete DID document for this account."
121450
121901
  },
121451
121902
  collections: {
121452
121903
  type: "array",
121904
+ description: "List of all the collections (NSIDs) for which this repo contains at least one record.",
121453
121905
  items: {
121454
121906
  type: "string",
121455
121907
  format: "nsid"
121456
121908
  }
121457
121909
  },
121458
121910
  handleIsCorrect: {
121459
- type: "boolean"
121911
+ type: "boolean",
121912
+ description: "Indicates if handle is currently valid (resolves bi-directionally)"
121460
121913
  }
121461
121914
  }
121462
121915
  }
@@ -121470,7 +121923,7 @@ var schemaDict2 = {
121470
121923
  defs: {
121471
121924
  main: {
121472
121925
  type: "query",
121473
- description: "Get a record.",
121926
+ description: "Get a single record from a repository. Does not require auth.",
121474
121927
  parameters: {
121475
121928
  type: "params",
121476
121929
  required: ["repo", "collection", "rkey"],
@@ -121487,7 +121940,7 @@ var schemaDict2 = {
121487
121940
  },
121488
121941
  rkey: {
121489
121942
  type: "string",
121490
- description: "The key of the record."
121943
+ description: "The Record Key."
121491
121944
  },
121492
121945
  cid: {
121493
121946
  type: "string",
@@ -121525,7 +121978,7 @@ var schemaDict2 = {
121525
121978
  defs: {
121526
121979
  main: {
121527
121980
  type: "query",
121528
- description: "List a range of records in a collection.",
121981
+ description: "List a range of records in a repository, matching a specific collection. Does not require auth.",
121529
121982
  parameters: {
121530
121983
  type: "params",
121531
121984
  required: ["repo", "collection"],
@@ -121609,7 +122062,7 @@ var schemaDict2 = {
121609
122062
  defs: {
121610
122063
  main: {
121611
122064
  type: "procedure",
121612
- description: "Write a record, creating or updating it as needed.",
122065
+ description: "Write a repository record, creating or updating it as needed. Requires auth, implemented by PDS.",
121613
122066
  input: {
121614
122067
  encoding: "application/json",
121615
122068
  schema: {
@@ -121620,7 +122073,7 @@ var schemaDict2 = {
121620
122073
  repo: {
121621
122074
  type: "string",
121622
122075
  format: "at-identifier",
121623
- description: "The handle or DID of the repo."
122076
+ description: "The handle or DID of the repo (aka, current account)."
121624
122077
  },
121625
122078
  collection: {
121626
122079
  type: "string",
@@ -121629,13 +122082,13 @@ var schemaDict2 = {
121629
122082
  },
121630
122083
  rkey: {
121631
122084
  type: "string",
121632
- description: "The key of the record.",
122085
+ description: "The Record Key.",
121633
122086
  maxLength: 15
121634
122087
  },
121635
122088
  validate: {
121636
122089
  type: "boolean",
121637
122090
  default: true,
121638
- description: "Flag for validating the record."
122091
+ description: "Can be set to 'false' to skip Lexicon schema validation of record data."
121639
122092
  },
121640
122093
  record: {
121641
122094
  type: "unknown",
@@ -121644,7 +122097,7 @@ var schemaDict2 = {
121644
122097
  swapRecord: {
121645
122098
  type: "string",
121646
122099
  format: "cid",
121647
- description: "Compare and swap with the previous record by CID."
122100
+ description: "Compare and swap with the previous record by CID. WARNING: nullable and optional field; may cause problems with golang implementation"
121648
122101
  },
121649
122102
  swapCommit: {
121650
122103
  type: "string",
@@ -121706,7 +122159,7 @@ var schemaDict2 = {
121706
122159
  defs: {
121707
122160
  main: {
121708
122161
  type: "procedure",
121709
- description: "Upload a new blob to be added to repo in a later request.",
122162
+ description: "Upload a new blob, to be referenced from a repository record. The blob will be deleted if it is not referenced within a time window (eg, minutes). Blob restrictions (mimetype, size, etc) are enforced when the reference is created. Requires auth, implemented by PDS.",
121710
122163
  input: {
121711
122164
  encoding: "*/*"
121712
122165
  },
@@ -121770,7 +122223,7 @@ var schemaDict2 = {
121770
122223
  defs: {
121771
122224
  main: {
121772
122225
  type: "procedure",
121773
- description: "Create an account.",
122226
+ description: "Create an account. Implemented by PDS.",
121774
122227
  input: {
121775
122228
  encoding: "application/json",
121776
122229
  schema: {
@@ -121782,11 +122235,13 @@ var schemaDict2 = {
121782
122235
  },
121783
122236
  handle: {
121784
122237
  type: "string",
121785
- format: "handle"
122238
+ format: "handle",
122239
+ description: "Requested handle for the account."
121786
122240
  },
121787
122241
  did: {
121788
122242
  type: "string",
121789
- format: "did"
122243
+ format: "did",
122244
+ description: "Pre-existing atproto DID, being imported to a new account."
121790
122245
  },
121791
122246
  inviteCode: {
121792
122247
  type: "string"
@@ -121798,13 +122253,16 @@ var schemaDict2 = {
121798
122253
  type: "string"
121799
122254
  },
121800
122255
  password: {
121801
- type: "string"
122256
+ type: "string",
122257
+ description: "Initial account password. May need to meet instance-specific password strength requirements."
121802
122258
  },
121803
122259
  recoveryKey: {
121804
- type: "string"
122260
+ type: "string",
122261
+ description: "DID PLC rotation key (aka, recovery key) to be included in PLC creation operation."
121805
122262
  },
121806
122263
  plcOp: {
121807
- type: "unknown"
122264
+ type: "unknown",
122265
+ description: "A signed DID PLC operation to be submitted as part of importing an existing account to this instance. NOTE: this optional field may be updated when full account migration is implemented."
121808
122266
  }
121809
122267
  }
121810
122268
  }
@@ -121813,6 +122271,7 @@ var schemaDict2 = {
121813
122271
  encoding: "application/json",
121814
122272
  schema: {
121815
122273
  type: "object",
122274
+ description: "Account login session returned on successful account creation.",
121816
122275
  required: ["accessJwt", "refreshJwt", "handle", "did"],
121817
122276
  properties: {
121818
122277
  accessJwt: {
@@ -121827,10 +122286,12 @@ var schemaDict2 = {
121827
122286
  },
121828
122287
  did: {
121829
122288
  type: "string",
121830
- format: "did"
122289
+ format: "did",
122290
+ description: "The DID of the new account."
121831
122291
  },
121832
122292
  didDoc: {
121833
- type: "unknown"
122293
+ type: "unknown",
122294
+ description: "Complete DID document."
121834
122295
  }
121835
122296
  }
121836
122297
  }
@@ -121875,7 +122336,8 @@ var schemaDict2 = {
121875
122336
  required: ["name"],
121876
122337
  properties: {
121877
122338
  name: {
121878
- type: "string"
122339
+ type: "string",
122340
+ description: "A short name for the App Password, to help distinguish them."
121879
122341
  }
121880
122342
  }
121881
122343
  }
@@ -122142,7 +122604,7 @@ var schemaDict2 = {
122142
122604
  defs: {
122143
122605
  main: {
122144
122606
  type: "procedure",
122145
- description: "Delete an actor's account with a token and password.",
122607
+ description: "Delete an actor's account with a token and password. Can only be called after requesting a deletion token. Requires auth.",
122146
122608
  input: {
122147
122609
  encoding: "application/json",
122148
122610
  schema: {
@@ -122179,7 +122641,7 @@ var schemaDict2 = {
122179
122641
  defs: {
122180
122642
  main: {
122181
122643
  type: "procedure",
122182
- description: "Delete the current session."
122644
+ description: "Delete the current session. Requires auth."
122183
122645
  }
122184
122646
  }
122185
122647
  },
@@ -122189,7 +122651,7 @@ var schemaDict2 = {
122189
122651
  defs: {
122190
122652
  main: {
122191
122653
  type: "query",
122192
- description: "Get a document describing the service's accounts configuration.",
122654
+ description: "Describes the server's account creation requirements and capabilities. Implemented by PDS.",
122193
122655
  output: {
122194
122656
  encoding: "application/json",
122195
122657
  schema: {
@@ -122197,19 +122659,23 @@ var schemaDict2 = {
122197
122659
  required: ["availableUserDomains"],
122198
122660
  properties: {
122199
122661
  inviteCodeRequired: {
122200
- type: "boolean"
122662
+ type: "boolean",
122663
+ description: "If true, an invite code must be supplied to create an account on this instance."
122201
122664
  },
122202
122665
  phoneVerificationRequired: {
122203
- type: "boolean"
122666
+ type: "boolean",
122667
+ description: "If true, a phone verification token must be supplied to create an account on this instance."
122204
122668
  },
122205
122669
  availableUserDomains: {
122206
122670
  type: "array",
122671
+ description: "List of domain suffixes that can be used in account handles.",
122207
122672
  items: {
122208
122673
  type: "string"
122209
122674
  }
122210
122675
  },
122211
122676
  links: {
122212
122677
  type: "ref",
122678
+ description: "URLs of service policy documents.",
122213
122679
  ref: "lex:com.atproto.server.describeServer#links"
122214
122680
  }
122215
122681
  }
@@ -122235,7 +122701,7 @@ var schemaDict2 = {
122235
122701
  defs: {
122236
122702
  main: {
122237
122703
  type: "query",
122238
- description: "Get all invite codes for a given account.",
122704
+ description: "Get all invite codes for the current account. Requires auth.",
122239
122705
  parameters: {
122240
122706
  type: "params",
122241
122707
  properties: {
@@ -122245,7 +122711,8 @@ var schemaDict2 = {
122245
122711
  },
122246
122712
  createAvailable: {
122247
122713
  type: "boolean",
122248
- default: true
122714
+ default: true,
122715
+ description: "Controls whether any new 'earned' but not 'created' invites should be created."
122249
122716
  }
122250
122717
  }
122251
122718
  },
@@ -122279,7 +122746,7 @@ var schemaDict2 = {
122279
122746
  defs: {
122280
122747
  main: {
122281
122748
  type: "query",
122282
- description: "Get information about the current session.",
122749
+ description: "Get information about the current auth session. Requires auth.",
122283
122750
  output: {
122284
122751
  encoding: "application/json",
122285
122752
  schema: {
@@ -122359,7 +122826,7 @@ var schemaDict2 = {
122359
122826
  defs: {
122360
122827
  main: {
122361
122828
  type: "procedure",
122362
- description: "Refresh an authentication session.",
122829
+ description: "Refresh an authentication session. Requires auth using the 'refreshJwt' (not the 'accessJwt').",
122363
122830
  output: {
122364
122831
  encoding: "application/json",
122365
122832
  schema: {
@@ -122464,7 +122931,7 @@ var schemaDict2 = {
122464
122931
  defs: {
122465
122932
  main: {
122466
122933
  type: "procedure",
122467
- description: "Reserve a repo signing key for account creation.",
122934
+ description: "Reserve a repo signing key, for use with account creation. Necessary so that a DID PLC update operation can be constructed during an account migraiton. Public and does not require auth; implemented by PDS. NOTE: this endpoint may change when full account migration is implemented.",
122468
122935
  input: {
122469
122936
  encoding: "application/json",
122470
122937
  schema: {
@@ -122472,7 +122939,8 @@ var schemaDict2 = {
122472
122939
  properties: {
122473
122940
  did: {
122474
122941
  type: "string",
122475
- description: "The did to reserve a new did:key for"
122942
+ format: "did",
122943
+ description: "The DID to reserve a key for."
122476
122944
  }
122477
122945
  }
122478
122946
  }
@@ -122485,7 +122953,7 @@ var schemaDict2 = {
122485
122953
  properties: {
122486
122954
  signingKey: {
122487
122955
  type: "string",
122488
- description: "Public signing key in the form of a did:key."
122956
+ description: "The public key for the reserved signing key, in did:key serialization."
122489
122957
  }
122490
122958
  }
122491
122959
  }
@@ -122591,7 +123059,7 @@ var schemaDict2 = {
122591
123059
  defs: {
122592
123060
  main: {
122593
123061
  type: "query",
122594
- description: "Get a blob associated with a given repo.",
123062
+ description: "Get a blob associated with a given account. Returns the full blob as originally uploaded. Does not require auth; implemented by PDS.",
122595
123063
  parameters: {
122596
123064
  type: "params",
122597
123065
  required: ["did", "cid"],
@@ -122599,7 +123067,7 @@ var schemaDict2 = {
122599
123067
  did: {
122600
123068
  type: "string",
122601
123069
  format: "did",
122602
- description: "The DID of the repo."
123070
+ description: "The DID of the account."
122603
123071
  },
122604
123072
  cid: {
122605
123073
  type: "string",
@@ -122620,7 +123088,7 @@ var schemaDict2 = {
122620
123088
  defs: {
122621
123089
  main: {
122622
123090
  type: "query",
122623
- description: "Get blocks from a given repo.",
123091
+ description: "Get data blocks from a given repo, by CID. For example, intermediate MST nodes, or records. Does not require auth; implemented by PDS.",
122624
123092
  parameters: {
122625
123093
  type: "params",
122626
123094
  required: ["did", "cids"],
@@ -122714,7 +123182,7 @@ var schemaDict2 = {
122714
123182
  defs: {
122715
123183
  main: {
122716
123184
  type: "query",
122717
- description: "Get the current commit CID & revision of the repo.",
123185
+ description: "Get the current commit CID & revision of the specified repo. Does not require auth.",
122718
123186
  parameters: {
122719
123187
  type: "params",
122720
123188
  required: ["did"],
@@ -122756,7 +123224,7 @@ var schemaDict2 = {
122756
123224
  defs: {
122757
123225
  main: {
122758
123226
  type: "query",
122759
- description: "Get blocks needed for existence or non-existence of record.",
123227
+ description: "Get data blocks needed to prove the existence or non-existence of record in the current version of repo. Does not require auth.",
122760
123228
  parameters: {
122761
123229
  type: "params",
122762
123230
  required: ["did", "collection", "rkey"],
@@ -122771,7 +123239,8 @@ var schemaDict2 = {
122771
123239
  format: "nsid"
122772
123240
  },
122773
123241
  rkey: {
122774
- type: "string"
123242
+ type: "string",
123243
+ description: "Record Key"
122775
123244
  },
122776
123245
  commit: {
122777
123246
  type: "string",
@@ -122792,7 +123261,7 @@ var schemaDict2 = {
122792
123261
  defs: {
122793
123262
  main: {
122794
123263
  type: "query",
122795
- description: "Gets the DID's repo, optionally catching up from a specific revision.",
123264
+ description: "Download a repository export as CAR file. Optionally only a 'diff' since a previous revision. Does not require auth; implemented by PDS.",
122796
123265
  parameters: {
122797
123266
  type: "params",
122798
123267
  required: ["did"],
@@ -122804,7 +123273,7 @@ var schemaDict2 = {
122804
123273
  },
122805
123274
  since: {
122806
123275
  type: "string",
122807
- description: "The revision of the repo to catch up from."
123276
+ description: "The revision ('rev') of the repo to create a diff from."
122808
123277
  }
122809
123278
  }
122810
123279
  },
@@ -122820,7 +123289,7 @@ var schemaDict2 = {
122820
123289
  defs: {
122821
123290
  main: {
122822
123291
  type: "query",
122823
- description: "List blob CIDs since some revision.",
123292
+ description: "List blob CIDso for an account, since some repo revision. Does not require auth; implemented by PDS.",
122824
123293
  parameters: {
122825
123294
  type: "params",
122826
123295
  required: ["did"],
@@ -122873,7 +123342,7 @@ var schemaDict2 = {
122873
123342
  defs: {
122874
123343
  main: {
122875
123344
  type: "query",
122876
- description: "List DIDs and root CIDs of hosted repos.",
123345
+ description: "Enumerates all the DID, rev, and commit CID for all repos hosted by this service. Does not require auth; implemented by PDS and Relay.",
122877
123346
  parameters: {
122878
123347
  type: "params",
122879
123348
  properties: {
@@ -122918,7 +123387,8 @@ var schemaDict2 = {
122918
123387
  },
122919
123388
  head: {
122920
123389
  type: "string",
122921
- format: "cid"
123390
+ format: "cid",
123391
+ description: "Current repo commit CID"
122922
123392
  },
122923
123393
  rev: {
122924
123394
  type: "string"
@@ -122933,7 +123403,7 @@ var schemaDict2 = {
122933
123403
  defs: {
122934
123404
  main: {
122935
123405
  type: "procedure",
122936
- description: "Notify a crawling service of a recent update; often when a long break between updates causes the connection with the crawling service to break.",
123406
+ description: "Notify a crawling service of a recent update, and that crawling should resume. Intended use is after a gap between repo stream events caused the crawling service to disconnect. Does not require auth; implemented by Relay.",
122937
123407
  input: {
122938
123408
  encoding: "application/json",
122939
123409
  schema: {
@@ -122942,7 +123412,7 @@ var schemaDict2 = {
122942
123412
  properties: {
122943
123413
  hostname: {
122944
123414
  type: "string",
122945
- description: "Hostname of the service that is notifying of update."
123415
+ description: "Hostname of the current service (usually a PDS) that is notifying of update."
122946
123416
  }
122947
123417
  }
122948
123418
  }
@@ -122956,7 +123426,7 @@ var schemaDict2 = {
122956
123426
  defs: {
122957
123427
  main: {
122958
123428
  type: "procedure",
122959
- description: "Request a service to persistently crawl hosted repos.",
123429
+ description: "Request a service to persistently crawl hosted repos. Expected use is new PDS instances declaring their existence to Relays. Does not require auth.",
122960
123430
  input: {
122961
123431
  encoding: "application/json",
122962
123432
  schema: {
@@ -122965,7 +123435,7 @@ var schemaDict2 = {
122965
123435
  properties: {
122966
123436
  hostname: {
122967
123437
  type: "string",
122968
- description: "Hostname of the service that is requesting to be crawled."
123438
+ description: "Hostname of the current service (eg, PDS) that is requesting to be crawled."
122969
123439
  }
122970
123440
  }
122971
123441
  }
@@ -122979,13 +123449,13 @@ var schemaDict2 = {
122979
123449
  defs: {
122980
123450
  main: {
122981
123451
  type: "subscription",
122982
- description: "Subscribe to repo updates.",
123452
+ description: "Repository event stream, aka Firehose endpoint. Outputs repo commits with diff data, and identity update events, for all repositories on the current server. See the atproto specifications for details around stream sequencing, repo versioning, CAR diff format, and more. Public and does not require auth; implemented by PDS and Relay.",
122983
123453
  parameters: {
122984
123454
  type: "params",
122985
123455
  properties: {
122986
123456
  cursor: {
122987
123457
  type: "integer",
122988
- description: "The last known event to backfill from."
123458
+ description: "The last known event seq number to backfill from."
122989
123459
  }
122990
123460
  }
122991
123461
  },
@@ -123006,12 +123476,14 @@ var schemaDict2 = {
123006
123476
  name: "FutureCursor"
123007
123477
  },
123008
123478
  {
123009
- name: "ConsumerTooSlow"
123479
+ name: "ConsumerTooSlow",
123480
+ description: "If the consumer of the stream can not keep up with events, and a backlog gets too large, the server will drop the connection."
123010
123481
  }
123011
123482
  ]
123012
123483
  },
123013
123484
  commit: {
123014
123485
  type: "object",
123486
+ description: "Represents an update of repository state. Note that empty commits are allowed, which include no repo data changes, but an update to rev and signature.",
123015
123487
  required: [
123016
123488
  "seq",
123017
123489
  "rebase",
@@ -123028,59 +123500,69 @@ var schemaDict2 = {
123028
123500
  nullable: ["prev", "since"],
123029
123501
  properties: {
123030
123502
  seq: {
123031
- type: "integer"
123503
+ type: "integer",
123504
+ description: "The stream sequence number of this message."
123032
123505
  },
123033
123506
  rebase: {
123034
- type: "boolean"
123507
+ type: "boolean",
123508
+ description: "DEPRECATED -- unused"
123035
123509
  },
123036
123510
  tooBig: {
123037
- type: "boolean"
123511
+ type: "boolean",
123512
+ description: "Indicates that this commit contained too many ops, or data size was too large. Consumers will need to make a separate request to get missing data."
123038
123513
  },
123039
123514
  repo: {
123040
123515
  type: "string",
123041
- format: "did"
123516
+ format: "did",
123517
+ description: "The repo this event comes from."
123042
123518
  },
123043
123519
  commit: {
123044
- type: "cid-link"
123520
+ type: "cid-link",
123521
+ description: "Repo commit object CID."
123045
123522
  },
123046
123523
  prev: {
123047
- type: "cid-link"
123524
+ type: "cid-link",
123525
+ description: "DEPRECATED -- unused. WARNING -- nullable and optional; stick with optional to ensure golang interoperability."
123048
123526
  },
123049
123527
  rev: {
123050
123528
  type: "string",
123051
- description: "The rev of the emitted commit."
123529
+ description: "The rev of the emitted commit. Note that this information is also in the commit object included in blocks, unless this is a tooBig event."
123052
123530
  },
123053
123531
  since: {
123054
123532
  type: "string",
123055
- description: "The rev of the last emitted commit from this repo."
123533
+ description: "The rev of the last emitted commit from this repo (if any)."
123056
123534
  },
123057
123535
  blocks: {
123058
123536
  type: "bytes",
123059
- description: "CAR file containing relevant blocks.",
123537
+ description: "CAR file containing relevant blocks, as a diff since the previous repo state.",
123060
123538
  maxLength: 1e6
123061
123539
  },
123062
123540
  ops: {
123063
123541
  type: "array",
123064
123542
  items: {
123065
123543
  type: "ref",
123066
- ref: "lex:com.atproto.sync.subscribeRepos#repoOp"
123544
+ ref: "lex:com.atproto.sync.subscribeRepos#repoOp",
123545
+ description: "List of repo mutation operations in this commit (eg, records created, updated, or deleted)."
123067
123546
  },
123068
123547
  maxLength: 200
123069
123548
  },
123070
123549
  blobs: {
123071
123550
  type: "array",
123072
123551
  items: {
123073
- type: "cid-link"
123552
+ type: "cid-link",
123553
+ description: "List of new blobs (by CID) referenced by records in this commit."
123074
123554
  }
123075
123555
  },
123076
123556
  time: {
123077
123557
  type: "string",
123078
- format: "datetime"
123558
+ format: "datetime",
123559
+ description: "Timestamp of when this message was originally broadcast."
123079
123560
  }
123080
123561
  }
123081
123562
  },
123082
123563
  handle: {
123083
123564
  type: "object",
123565
+ description: "Represents an update of the account's handle, or transition to/from invalid state.",
123084
123566
  required: ["seq", "did", "handle", "time"],
123085
123567
  properties: {
123086
123568
  seq: {
@@ -123102,6 +123584,7 @@ var schemaDict2 = {
123102
123584
  },
123103
123585
  migrate: {
123104
123586
  type: "object",
123587
+ description: "Represents an account moving from one PDS instance to another. NOTE: not implemented; full account migration may introduce a new message instead.",
123105
123588
  required: ["seq", "did", "migrateTo", "time"],
123106
123589
  nullable: ["migrateTo"],
123107
123590
  properties: {
@@ -123123,6 +123606,7 @@ var schemaDict2 = {
123123
123606
  },
123124
123607
  tombstone: {
123125
123608
  type: "object",
123609
+ description: "Indicates that an account has been deleted.",
123126
123610
  required: ["seq", "did", "time"],
123127
123611
  properties: {
123128
123612
  seq: {
@@ -123153,7 +123637,7 @@ var schemaDict2 = {
123153
123637
  },
123154
123638
  repoOp: {
123155
123639
  type: "object",
123156
- description: "A repo operation, ie a write of a single record. For creates and updates, CID is the record's CID as of this operation. For deletes, it's null.",
123640
+ description: "A repo operation, ie a mutation of a single record.",
123157
123641
  required: ["action", "path", "cid"],
123158
123642
  nullable: ["cid"],
123159
123643
  properties: {
@@ -123165,7 +123649,8 @@ var schemaDict2 = {
123165
123649
  type: "string"
123166
123650
  },
123167
123651
  cid: {
123168
- type: "cid-link"
123652
+ type: "cid-link",
123653
+ description: "For creates and updates, the new record CID. For deletions, null."
123169
123654
  }
123170
123655
  }
123171
123656
  }
@@ -123205,7 +123690,7 @@ var schemaDict2 = {
123205
123690
  defs: {
123206
123691
  main: {
123207
123692
  type: "query",
123208
- description: "Fetch all labels from a labeler created after a certain date.",
123693
+ description: "Fetch all labels from a labeler created after a certain date. DEPRECATED: use queryLabels or subscribeLabels instead",
123209
123694
  parameters: {
123210
123695
  type: "params",
123211
123696
  properties: {
@@ -123318,7 +123803,7 @@ var schemaDict2 = {
123318
123803
  defs: {
123319
123804
  main: {
123320
123805
  type: "procedure",
123321
- description: "Transfer an account.",
123806
+ description: "Transfer an account. NOTE: temporary method, necessarily how account migration will be implemented.",
123322
123807
  input: {
123323
123808
  encoding: "application/json",
123324
123809
  schema: {
@@ -123391,7 +123876,6 @@ var schemaDict2 = {
123391
123876
  AppBskyActorDefs: {
123392
123877
  lexicon: 1,
123393
123878
  id: "app.bsky.actor.defs",
123394
- description: "A reference to an actor in the network.",
123395
123879
  defs: {
123396
123880
  profileViewBasic: {
123397
123881
  type: "object",
@@ -123524,6 +124008,7 @@ var schemaDict2 = {
123524
124008
  },
123525
124009
  viewerState: {
123526
124010
  type: "object",
124011
+ description: "Metadata about the requesting account's relationship with the subject account. Only has meaningful content for authed requests.",
123527
124012
  properties: {
123528
124013
  muted: {
123529
124014
  type: "boolean"
@@ -123608,6 +124093,9 @@ var schemaDict2 = {
123608
124093
  type: "string",
123609
124094
  format: "at-uri"
123610
124095
  }
124096
+ },
124097
+ timelineIndex: {
124098
+ type: "integer"
123611
124099
  }
123612
124100
  }
123613
124101
  },
@@ -123689,7 +124177,7 @@ var schemaDict2 = {
123689
124177
  defs: {
123690
124178
  main: {
123691
124179
  type: "query",
123692
- description: "Get private preferences attached to the account.",
124180
+ description: "Get private preferences attached to the current account. Expected use is synchronization between multiple devices, and import/export during account migration. Requires auth.",
123693
124181
  parameters: {
123694
124182
  type: "params",
123695
124183
  properties: {}
@@ -123716,14 +124204,15 @@ var schemaDict2 = {
123716
124204
  defs: {
123717
124205
  main: {
123718
124206
  type: "query",
123719
- description: "Get detailed profile view of an actor.",
124207
+ description: "Get detailed profile view of an actor. Does not require auth, but contains relevant metadata with auth.",
123720
124208
  parameters: {
123721
124209
  type: "params",
123722
124210
  required: ["actor"],
123723
124211
  properties: {
123724
124212
  actor: {
123725
124213
  type: "string",
123726
- format: "at-identifier"
124214
+ format: "at-identifier",
124215
+ description: "Handle or DID of account to fetch profile of."
123727
124216
  }
123728
124217
  }
123729
124218
  },
@@ -123783,7 +124272,7 @@ var schemaDict2 = {
123783
124272
  defs: {
123784
124273
  main: {
123785
124274
  type: "query",
123786
- description: "Get a list of suggested actors, used for discovery.",
124275
+ description: "Get a list of suggested actors. Expected use is discovery of accounts to follow during new account onboarding.",
123787
124276
  parameters: {
123788
124277
  type: "params",
123789
124278
  properties: {
@@ -123826,7 +124315,7 @@ var schemaDict2 = {
123826
124315
  defs: {
123827
124316
  main: {
123828
124317
  type: "record",
123829
- description: "A declaration of a profile.",
124318
+ description: "A declaration of a Bluesky account profile.",
123830
124319
  key: "literal:self",
123831
124320
  record: {
123832
124321
  type: "object",
@@ -123838,21 +124327,25 @@ var schemaDict2 = {
123838
124327
  },
123839
124328
  description: {
123840
124329
  type: "string",
124330
+ description: "Free-form profile description text.",
123841
124331
  maxGraphemes: 256,
123842
124332
  maxLength: 2560
123843
124333
  },
123844
124334
  avatar: {
123845
124335
  type: "blob",
124336
+ description: "Small image to be displayed next to posts from account. AKA, 'profile picture'",
123846
124337
  accept: ["image/png", "image/jpeg"],
123847
124338
  maxSize: 1e6
123848
124339
  },
123849
124340
  banner: {
123850
124341
  type: "blob",
124342
+ description: "Larger horizontal image to display behind profile view.",
123851
124343
  accept: ["image/png", "image/jpeg"],
123852
124344
  maxSize: 1e6
123853
124345
  },
123854
124346
  labels: {
123855
124347
  type: "union",
124348
+ description: "Self-label values, specific to the Bluesky application, on the overall account.",
123856
124349
  refs: ["lex:com.atproto.label.defs#selfLabels"]
123857
124350
  }
123858
124351
  }
@@ -123889,7 +124382,7 @@ var schemaDict2 = {
123889
124382
  defs: {
123890
124383
  main: {
123891
124384
  type: "query",
123892
- description: "Find actors (profiles) matching search criteria.",
124385
+ description: "Find actors (profiles) matching search criteria. Does not require auth.",
123893
124386
  parameters: {
123894
124387
  type: "params",
123895
124388
  properties: {
@@ -123940,7 +124433,7 @@ var schemaDict2 = {
123940
124433
  defs: {
123941
124434
  main: {
123942
124435
  type: "query",
123943
- description: "Find actor suggestions for a prefix search term.",
124436
+ description: "Find actor suggestions for a prefix search term. Expected use is for auto-completion during text field entry. Does not require auth.",
123944
124437
  parameters: {
123945
124438
  type: "params",
123946
124439
  properties: {
@@ -123982,10 +124475,10 @@ var schemaDict2 = {
123982
124475
  AppBskyEmbedExternal: {
123983
124476
  lexicon: 1,
123984
124477
  id: "app.bsky.embed.external",
123985
- description: "A representation of some externally linked content, embedded in another form of content.",
123986
124478
  defs: {
123987
124479
  main: {
123988
124480
  type: "object",
124481
+ description: "A representation of some externally linked content (eg, a URL and 'card'), embedded in a Bluesky record (eg, a post).",
123989
124482
  required: ["external"],
123990
124483
  properties: {
123991
124484
  external: {
@@ -124049,7 +124542,7 @@ var schemaDict2 = {
124049
124542
  AppBskyEmbedImages: {
124050
124543
  lexicon: 1,
124051
124544
  id: "app.bsky.embed.images",
124052
- description: "A set of images embedded in some other form of content.",
124545
+ description: "A set of images embedded in a Bluesky record (eg, a post).",
124053
124546
  defs: {
124054
124547
  main: {
124055
124548
  type: "object",
@@ -124075,7 +124568,8 @@ var schemaDict2 = {
124075
124568
  maxSize: 1e6
124076
124569
  },
124077
124570
  alt: {
124078
- type: "string"
124571
+ type: "string",
124572
+ description: "Alt text description of the image, for accessibility."
124079
124573
  },
124080
124574
  aspectRatio: {
124081
124575
  type: "ref",
@@ -124117,13 +124611,16 @@ var schemaDict2 = {
124117
124611
  required: ["thumb", "fullsize", "alt"],
124118
124612
  properties: {
124119
124613
  thumb: {
124120
- type: "string"
124614
+ type: "string",
124615
+ description: "Fully-qualified URL where a thumbnail of the image can be fetched. For example, CDN location provided by the App View."
124121
124616
  },
124122
124617
  fullsize: {
124123
- type: "string"
124618
+ type: "string",
124619
+ description: "Fully-qualified URL where a large version of the image can be fetched. May or may not be the exact original blob. For example, CDN location provided by the App View."
124124
124620
  },
124125
124621
  alt: {
124126
- type: "string"
124622
+ type: "string",
124623
+ description: "Alt text description of the image, for accessibility."
124127
124624
  },
124128
124625
  aspectRatio: {
124129
124626
  type: "ref",
@@ -124136,7 +124633,7 @@ var schemaDict2 = {
124136
124633
  AppBskyEmbedRecord: {
124137
124634
  lexicon: 1,
124138
124635
  id: "app.bsky.embed.record",
124139
- description: "A representation of a record embedded in another form of content.",
124636
+ description: "A representation of a record embedded in a Bluesky record (eg, a post). For example, a quote-post, or sharing a feed generator record.",
124140
124637
  defs: {
124141
124638
  main: {
124142
124639
  type: "object",
@@ -124181,7 +124678,8 @@ var schemaDict2 = {
124181
124678
  ref: "lex:app.bsky.actor.defs#profileViewBasic"
124182
124679
  },
124183
124680
  value: {
124184
- type: "unknown"
124681
+ type: "unknown",
124682
+ description: "The record data itself."
124185
124683
  },
124186
124684
  labels: {
124187
124685
  type: "array",
@@ -124245,7 +124743,7 @@ var schemaDict2 = {
124245
124743
  AppBskyEmbedRecordWithMedia: {
124246
124744
  lexicon: 1,
124247
124745
  id: "app.bsky.embed.recordWithMedia",
124248
- description: "A representation of a record embedded in another form of content, alongside other compatible embeds.",
124746
+ description: "A representation of a record embedded in a Bluesky record (eg, a post), alongside other compatible embeds. For example, a quote post and image, or a quote post and external URL card.",
124249
124747
  defs: {
124250
124748
  main: {
124251
124749
  type: "object",
@@ -124344,6 +124842,7 @@ var schemaDict2 = {
124344
124842
  },
124345
124843
  viewerState: {
124346
124844
  type: "object",
124845
+ description: "Metadata about the requesting account's relationship with the subject content. Only has meaningful content for authed requests.",
124347
124846
  properties: {
124348
124847
  repost: {
124349
124848
  type: "string",
@@ -124603,7 +125102,7 @@ var schemaDict2 = {
124603
125102
  defs: {
124604
125103
  main: {
124605
125104
  type: "query",
124606
- description: "Get information about a feed generator, including policies and offered feed URIs.",
125105
+ description: "Get information about a feed generator, including policies and offered feed URIs. Does not require auth; implemented by Feed Generator services (not App View).",
124607
125106
  output: {
124608
125107
  encoding: "application/json",
124609
125108
  schema: {
@@ -124658,7 +125157,7 @@ var schemaDict2 = {
124658
125157
  defs: {
124659
125158
  main: {
124660
125159
  type: "record",
124661
- description: "A declaration of the existence of a feed generator.",
125160
+ description: "Record declaring of the existence of a feed generator, and containing metadata about it. The record can exist in any repository.",
124662
125161
  key: "any",
124663
125162
  record: {
124664
125163
  type: "object",
@@ -124692,6 +125191,7 @@ var schemaDict2 = {
124692
125191
  },
124693
125192
  labels: {
124694
125193
  type: "union",
125194
+ description: "Self-label values",
124695
125195
  refs: ["lex:com.atproto.label.defs#selfLabels"]
124696
125196
  },
124697
125197
  createdAt: {
@@ -124709,7 +125209,7 @@ var schemaDict2 = {
124709
125209
  defs: {
124710
125210
  main: {
124711
125211
  type: "query",
124712
- description: "Get a list of feeds created by the actor.",
125212
+ description: "Get a list of feeds (feed generator records) created by the actor (in the actor's repo).",
124713
125213
  parameters: {
124714
125214
  type: "params",
124715
125215
  required: ["actor"],
@@ -124757,7 +125257,7 @@ var schemaDict2 = {
124757
125257
  defs: {
124758
125258
  main: {
124759
125259
  type: "query",
124760
- description: "Get a list of posts liked by an actor.",
125260
+ description: "Get a list of posts liked by an actor. Does not require auth.",
124761
125261
  parameters: {
124762
125262
  type: "params",
124763
125263
  required: ["actor"],
@@ -124813,7 +125313,7 @@ var schemaDict2 = {
124813
125313
  defs: {
124814
125314
  main: {
124815
125315
  type: "query",
124816
- description: "Get a view of an actor's feed.",
125316
+ description: "Get a view of an actor's 'author feed' (post and reposts by the author). Does not require auth.",
124817
125317
  parameters: {
124818
125318
  type: "params",
124819
125319
  required: ["actor"],
@@ -124833,6 +125333,7 @@ var schemaDict2 = {
124833
125333
  },
124834
125334
  filter: {
124835
125335
  type: "string",
125336
+ description: "Combinations of post/repost types to include in response.",
124836
125337
  knownValues: [
124837
125338
  "posts_with_replies",
124838
125339
  "posts_no_replies",
@@ -124879,7 +125380,7 @@ var schemaDict2 = {
124879
125380
  defs: {
124880
125381
  main: {
124881
125382
  type: "query",
124882
- description: "Get a hydrated feed from an actor's selected feed generator.",
125383
+ description: "Get a hydrated feed from an actor's selected feed generator. Implemented by App View.",
124883
125384
  parameters: {
124884
125385
  type: "params",
124885
125386
  required: ["feed"],
@@ -124932,14 +125433,15 @@ var schemaDict2 = {
124932
125433
  defs: {
124933
125434
  main: {
124934
125435
  type: "query",
124935
- description: "Get information about a feed generator.",
125436
+ description: "Get information about a feed generator. Implemented by AppView.",
124936
125437
  parameters: {
124937
125438
  type: "params",
124938
125439
  required: ["feed"],
124939
125440
  properties: {
124940
125441
  feed: {
124941
125442
  type: "string",
124942
- format: "at-uri"
125443
+ format: "at-uri",
125444
+ description: "AT-URI of the feed generator record."
124943
125445
  }
124944
125446
  }
124945
125447
  },
@@ -124954,10 +125456,12 @@ var schemaDict2 = {
124954
125456
  ref: "lex:app.bsky.feed.defs#generatorView"
124955
125457
  },
124956
125458
  isOnline: {
124957
- type: "boolean"
125459
+ type: "boolean",
125460
+ description: "Indicates whether the feed generator service has been online recently, or else seems to be inactive."
124958
125461
  },
124959
125462
  isValid: {
124960
- type: "boolean"
125463
+ type: "boolean",
125464
+ description: "Indicates whether the feed generator service is compatible with the record declaration."
124961
125465
  }
124962
125466
  }
124963
125467
  }
@@ -125010,14 +125514,15 @@ var schemaDict2 = {
125010
125514
  defs: {
125011
125515
  main: {
125012
125516
  type: "query",
125013
- description: "Get a skeleton of a feed provided by a feed generator.",
125517
+ description: "Get a skeleton of a feed provided by a feed generator. Auth is optional, depending on provider requirements, and provides the DID of the requester. Implemented by Feed Generator Service.",
125014
125518
  parameters: {
125015
125519
  type: "params",
125016
125520
  required: ["feed"],
125017
125521
  properties: {
125018
125522
  feed: {
125019
125523
  type: "string",
125020
- format: "at-uri"
125524
+ format: "at-uri",
125525
+ description: "Reference to feed generator record describing the specific feed being requested."
125021
125526
  },
125022
125527
  limit: {
125023
125528
  type: "integer",
@@ -125063,18 +125568,20 @@ var schemaDict2 = {
125063
125568
  defs: {
125064
125569
  main: {
125065
125570
  type: "query",
125066
- description: "Get the list of likes.",
125571
+ description: "Get like records which reference a subject (by AT-URI and CID).",
125067
125572
  parameters: {
125068
125573
  type: "params",
125069
125574
  required: ["uri"],
125070
125575
  properties: {
125071
125576
  uri: {
125072
125577
  type: "string",
125073
- format: "at-uri"
125578
+ format: "at-uri",
125579
+ description: "AT-URI of the subject (eg, a post record)."
125074
125580
  },
125075
125581
  cid: {
125076
125582
  type: "string",
125077
- format: "cid"
125583
+ format: "cid",
125584
+ description: "CID of the subject record (aka, specific version of record), to filter likes."
125078
125585
  },
125079
125586
  limit: {
125080
125587
  type: "integer",
@@ -125141,14 +125648,15 @@ var schemaDict2 = {
125141
125648
  defs: {
125142
125649
  main: {
125143
125650
  type: "query",
125144
- description: "Get a view of a recent posts from actors in a list.",
125651
+ description: "Get a feed of recent posts from a list (posts and reposts from any actors on the list). Does not require auth.",
125145
125652
  parameters: {
125146
125653
  type: "params",
125147
125654
  required: ["list"],
125148
125655
  properties: {
125149
125656
  list: {
125150
125657
  type: "string",
125151
- format: "at-uri"
125658
+ format: "at-uri",
125659
+ description: "Reference (AT-URI) to the list record."
125152
125660
  },
125153
125661
  limit: {
125154
125662
  type: "integer",
@@ -125194,23 +125702,26 @@ var schemaDict2 = {
125194
125702
  defs: {
125195
125703
  main: {
125196
125704
  type: "query",
125197
- description: "Get posts in a thread.",
125705
+ description: "Get posts in a thread. Does not require auth, but additional metadata and filtering will be applied for authed requests.",
125198
125706
  parameters: {
125199
125707
  type: "params",
125200
125708
  required: ["uri"],
125201
125709
  properties: {
125202
125710
  uri: {
125203
125711
  type: "string",
125204
- format: "at-uri"
125712
+ format: "at-uri",
125713
+ description: "Reference (AT-URI) to post record."
125205
125714
  },
125206
125715
  depth: {
125207
125716
  type: "integer",
125717
+ description: "How many levels of reply depth should be included in response.",
125208
125718
  default: 6,
125209
125719
  minimum: 0,
125210
125720
  maximum: 1e3
125211
125721
  },
125212
125722
  parentHeight: {
125213
125723
  type: "integer",
125724
+ description: "How many levels of parent (and grandparent, etc) post to include.",
125214
125725
  default: 80,
125215
125726
  minimum: 0,
125216
125727
  maximum: 1e3
@@ -125248,13 +125759,14 @@ var schemaDict2 = {
125248
125759
  defs: {
125249
125760
  main: {
125250
125761
  type: "query",
125251
- description: "Get a view of an actor's feed.",
125762
+ description: "Gets post views for a specified list of posts (by AT-URI). This is sometimes referred to as 'hydrating' a 'feed skeleton'.",
125252
125763
  parameters: {
125253
125764
  type: "params",
125254
125765
  required: ["uris"],
125255
125766
  properties: {
125256
125767
  uris: {
125257
125768
  type: "array",
125769
+ description: "List of post AT-URIs to return hydrated views for.",
125258
125770
  items: {
125259
125771
  type: "string",
125260
125772
  format: "at-uri"
@@ -125288,18 +125800,20 @@ var schemaDict2 = {
125288
125800
  defs: {
125289
125801
  main: {
125290
125802
  type: "query",
125291
- description: "Get a list of reposts.",
125803
+ description: "Get a list of reposts for a given post.",
125292
125804
  parameters: {
125293
125805
  type: "params",
125294
125806
  required: ["uri"],
125295
125807
  properties: {
125296
125808
  uri: {
125297
125809
  type: "string",
125298
- format: "at-uri"
125810
+ format: "at-uri",
125811
+ description: "Reference (AT-URI) of post record"
125299
125812
  },
125300
125813
  cid: {
125301
125814
  type: "string",
125302
- format: "cid"
125815
+ format: "cid",
125816
+ description: "If supplied, filters to reposts of specific version (by CID) of the post record."
125303
125817
  },
125304
125818
  limit: {
125305
125819
  type: "integer",
@@ -125348,7 +125862,7 @@ var schemaDict2 = {
125348
125862
  defs: {
125349
125863
  main: {
125350
125864
  type: "query",
125351
- description: "Get a list of suggested feeds for the viewer.",
125865
+ description: "Get a list of suggested feeds (feed generators) for the requesting account.",
125352
125866
  parameters: {
125353
125867
  type: "params",
125354
125868
  properties: {
@@ -125391,12 +125905,13 @@ var schemaDict2 = {
125391
125905
  defs: {
125392
125906
  main: {
125393
125907
  type: "query",
125394
- description: "Get a view of the actor's home timeline.",
125908
+ description: "Get a view of the requesting account's home timeline. This is expected to be some form of reverse-chronological feed.",
125395
125909
  parameters: {
125396
125910
  type: "params",
125397
125911
  properties: {
125398
125912
  algorithm: {
125399
- type: "string"
125913
+ type: "string",
125914
+ description: "Variant 'algorithm' for timeline. Implementation-specific. NOTE: most feed flexibility has been moved to feed generator mechanism."
125400
125915
  },
125401
125916
  limit: {
125402
125917
  type: "integer",
@@ -125437,7 +125952,7 @@ var schemaDict2 = {
125437
125952
  defs: {
125438
125953
  main: {
125439
125954
  type: "record",
125440
- description: "A declaration of a like.",
125955
+ description: "Record declaring a 'like' of a piece of subject content.",
125441
125956
  key: "tid",
125442
125957
  record: {
125443
125958
  type: "object",
@@ -125462,7 +125977,7 @@ var schemaDict2 = {
125462
125977
  defs: {
125463
125978
  main: {
125464
125979
  type: "record",
125465
- description: "A declaration of a post.",
125980
+ description: "Record containing a Bluesky post.",
125466
125981
  key: "tid",
125467
125982
  record: {
125468
125983
  type: "object",
@@ -125471,11 +125986,12 @@ var schemaDict2 = {
125471
125986
  text: {
125472
125987
  type: "string",
125473
125988
  maxLength: 3e3,
125474
- maxGraphemes: 300
125989
+ maxGraphemes: 300,
125990
+ description: "The primary post content. May be an empty string, if there are embeds."
125475
125991
  },
125476
125992
  entities: {
125477
125993
  type: "array",
125478
- description: "Deprecated: replaced by app.bsky.richtext.facet.",
125994
+ description: "DEPRECATED: replaced by app.bsky.richtext.facet.",
125479
125995
  items: {
125480
125996
  type: "ref",
125481
125997
  ref: "lex:app.bsky.feed.post#entity"
@@ -125483,6 +125999,7 @@ var schemaDict2 = {
125483
125999
  },
125484
126000
  facets: {
125485
126001
  type: "array",
126002
+ description: "Annotations of text (mentions, URLs, hashtags, etc)",
125486
126003
  items: {
125487
126004
  type: "ref",
125488
126005
  ref: "lex:app.bsky.richtext.facet"
@@ -125503,6 +126020,7 @@ var schemaDict2 = {
125503
126020
  },
125504
126021
  langs: {
125505
126022
  type: "array",
126023
+ description: "Indicates human language of post primary text content.",
125506
126024
  maxLength: 3,
125507
126025
  items: {
125508
126026
  type: "string",
@@ -125511,21 +126029,23 @@ var schemaDict2 = {
125511
126029
  },
125512
126030
  labels: {
125513
126031
  type: "union",
126032
+ description: "Self-label values for this post. Effectively content warnings.",
125514
126033
  refs: ["lex:com.atproto.label.defs#selfLabels"]
125515
126034
  },
125516
126035
  tags: {
125517
126036
  type: "array",
126037
+ description: "Additional non-inline tags describing this post.",
125518
126038
  maxLength: 8,
125519
126039
  items: {
125520
126040
  type: "string",
125521
126041
  maxLength: 640,
125522
126042
  maxGraphemes: 64
125523
- },
125524
- description: "Additional non-inline tags describing this post."
126043
+ }
125525
126044
  },
125526
126045
  createdAt: {
125527
126046
  type: "string",
125528
- format: "datetime"
126047
+ format: "datetime",
126048
+ description: "Client-declared timestamp when this post was originally created."
125529
126049
  }
125530
126050
  }
125531
126051
  }
@@ -125584,7 +126104,7 @@ var schemaDict2 = {
125584
126104
  id: "app.bsky.feed.repost",
125585
126105
  defs: {
125586
126106
  main: {
125587
- description: "A declaration of a repost.",
126107
+ description: "Record representing a 'repost' of an existing Bluesky post.",
125588
126108
  type: "record",
125589
126109
  key: "tid",
125590
126110
  record: {
@@ -125610,7 +126130,7 @@ var schemaDict2 = {
125610
126130
  defs: {
125611
126131
  main: {
125612
126132
  type: "query",
125613
- description: "Find posts matching search criteria.",
126133
+ description: "Find posts matching search criteria, returning views of those posts.",
125614
126134
  parameters: {
125615
126135
  type: "params",
125616
126136
  required: ["q"],
@@ -125669,14 +126189,15 @@ var schemaDict2 = {
125669
126189
  main: {
125670
126190
  type: "record",
125671
126191
  key: "tid",
125672
- description: "Defines interaction gating rules for a thread. The rkey of the threadgate record should match the rkey of the thread's root post.",
126192
+ description: "Record defining interaction gating rules for a thread (aka, reply controls). The record key (rkey) of the threadgate record must match the record key of the thread's root post, and that record must be in the same repository..",
125673
126193
  record: {
125674
126194
  type: "object",
125675
126195
  required: ["post", "createdAt"],
125676
126196
  properties: {
125677
126197
  post: {
125678
126198
  type: "string",
125679
- format: "at-uri"
126199
+ format: "at-uri",
126200
+ description: "Reference (AT-URI) to the post record."
125680
126201
  },
125681
126202
  allow: {
125682
126203
  type: "array",
@@ -125726,7 +126247,7 @@ var schemaDict2 = {
125726
126247
  defs: {
125727
126248
  main: {
125728
126249
  type: "record",
125729
- description: "A declaration of a block.",
126250
+ description: "Record declaring a 'block' relationship against another account. NOTE: blocks are public in Bluesky; see blog posts for details.",
125730
126251
  key: "tid",
125731
126252
  record: {
125732
126253
  type: "object",
@@ -125734,7 +126255,8 @@ var schemaDict2 = {
125734
126255
  properties: {
125735
126256
  subject: {
125736
126257
  type: "string",
125737
- format: "did"
126258
+ format: "did",
126259
+ description: "DID of the account to be blocked."
125738
126260
  },
125739
126261
  createdAt: {
125740
126262
  type: "string",
@@ -125918,7 +126440,7 @@ var schemaDict2 = {
125918
126440
  defs: {
125919
126441
  main: {
125920
126442
  type: "record",
125921
- description: "A declaration of a social follow.",
126443
+ description: "Record declaring a social 'follow' relationship of another account. Duplicate follows will be ignored by the AppView.",
125922
126444
  key: "tid",
125923
126445
  record: {
125924
126446
  type: "object",
@@ -125943,7 +126465,7 @@ var schemaDict2 = {
125943
126465
  defs: {
125944
126466
  main: {
125945
126467
  type: "query",
125946
- description: "Get a list of who the actor is blocking.",
126468
+ description: "Enumerates which accounts the requesting account is currently blocking. Requires auth.",
125947
126469
  parameters: {
125948
126470
  type: "params",
125949
126471
  properties: {
@@ -125986,7 +126508,7 @@ var schemaDict2 = {
125986
126508
  defs: {
125987
126509
  main: {
125988
126510
  type: "query",
125989
- description: "Get a list of an actor's followers.",
126511
+ description: "Enumerates accounts which follow a specified account (actor).",
125990
126512
  parameters: {
125991
126513
  type: "params",
125992
126514
  required: ["actor"],
@@ -126038,7 +126560,7 @@ var schemaDict2 = {
126038
126560
  defs: {
126039
126561
  main: {
126040
126562
  type: "query",
126041
- description: "Get a list of who the actor follows.",
126563
+ description: "Enumerates accounts which a specified account (actor) follows.",
126042
126564
  parameters: {
126043
126565
  type: "params",
126044
126566
  required: ["actor"],
@@ -126090,14 +126612,15 @@ var schemaDict2 = {
126090
126612
  defs: {
126091
126613
  main: {
126092
126614
  type: "query",
126093
- description: "Get a list of actors.",
126615
+ description: "Gets a 'view' (with additional context) of a specified list.",
126094
126616
  parameters: {
126095
126617
  type: "params",
126096
126618
  required: ["list"],
126097
126619
  properties: {
126098
126620
  list: {
126099
126621
  type: "string",
126100
- format: "at-uri"
126622
+ format: "at-uri",
126623
+ description: "Reference (AT-URI) of the list record to hydrate."
126101
126624
  },
126102
126625
  limit: {
126103
126626
  type: "integer",
@@ -126142,7 +126665,7 @@ var schemaDict2 = {
126142
126665
  defs: {
126143
126666
  main: {
126144
126667
  type: "query",
126145
- description: "Get lists that the actor is blocking.",
126668
+ description: "Get mod lists that the requesting account (actor) is blocking. Requires auth.",
126146
126669
  parameters: {
126147
126670
  type: "params",
126148
126671
  properties: {
@@ -126185,7 +126708,7 @@ var schemaDict2 = {
126185
126708
  defs: {
126186
126709
  main: {
126187
126710
  type: "query",
126188
- description: "Get lists that the actor is muting.",
126711
+ description: "Enumerates mod lists that the requesting account (actor) currently has muted. Requires auth.",
126189
126712
  parameters: {
126190
126713
  type: "params",
126191
126714
  properties: {
@@ -126228,14 +126751,15 @@ var schemaDict2 = {
126228
126751
  defs: {
126229
126752
  main: {
126230
126753
  type: "query",
126231
- description: "Get a list of lists that belong to an actor.",
126754
+ description: "Enumerates the lists created by a specified account (actor).",
126232
126755
  parameters: {
126233
126756
  type: "params",
126234
126757
  required: ["actor"],
126235
126758
  properties: {
126236
126759
  actor: {
126237
126760
  type: "string",
126238
- format: "at-identifier"
126761
+ format: "at-identifier",
126762
+ description: "The account (actor) to enumerate lists from."
126239
126763
  },
126240
126764
  limit: {
126241
126765
  type: "integer",
@@ -126276,7 +126800,7 @@ var schemaDict2 = {
126276
126800
  defs: {
126277
126801
  main: {
126278
126802
  type: "query",
126279
- description: "Get a list of who the actor mutes.",
126803
+ description: "Enumerates accounts that the requesting account (actor) currently has muted. Requires auth.",
126280
126804
  parameters: {
126281
126805
  type: "params",
126282
126806
  properties: {
@@ -126319,17 +126843,19 @@ var schemaDict2 = {
126319
126843
  defs: {
126320
126844
  main: {
126321
126845
  type: "query",
126322
- description: "Enumerates public relationships between one account, and a list of other accounts",
126846
+ description: "Enumerates public relationships between one account, and a list of other accounts. Does not require auth.",
126323
126847
  parameters: {
126324
126848
  type: "params",
126325
126849
  required: ["actor"],
126326
126850
  properties: {
126327
126851
  actor: {
126328
126852
  type: "string",
126329
- format: "at-identifier"
126853
+ format: "at-identifier",
126854
+ description: "Primary account requesting relationships for."
126330
126855
  },
126331
126856
  others: {
126332
126857
  type: "array",
126858
+ description: "List of 'other' accounts to be related back to the primary.",
126333
126859
  maxLength: 30,
126334
126860
  items: {
126335
126861
  type: "string",
@@ -126376,7 +126902,7 @@ var schemaDict2 = {
126376
126902
  defs: {
126377
126903
  main: {
126378
126904
  type: "query",
126379
- description: "Get suggested follows related to a given actor.",
126905
+ description: "Enumerates follows similar to a given account (actor). Expected use is to recommend additional accounts immediately after following one account.",
126380
126906
  parameters: {
126381
126907
  type: "params",
126382
126908
  required: ["actor"],
@@ -126412,7 +126938,7 @@ var schemaDict2 = {
126412
126938
  defs: {
126413
126939
  main: {
126414
126940
  type: "record",
126415
- description: "A declaration of a list of actors.",
126941
+ description: "Record representing a list of accounts (actors). Scope includes both moderation-oriented lists and curration-oriented lists.",
126416
126942
  key: "tid",
126417
126943
  record: {
126418
126944
  type: "object",
@@ -126420,12 +126946,14 @@ var schemaDict2 = {
126420
126946
  properties: {
126421
126947
  purpose: {
126422
126948
  type: "ref",
126949
+ description: "Defines the purpose of the list (aka, moderation-oriented or curration-oriented)",
126423
126950
  ref: "lex:app.bsky.graph.defs#listPurpose"
126424
126951
  },
126425
126952
  name: {
126426
126953
  type: "string",
126427
126954
  maxLength: 64,
126428
- minLength: 1
126955
+ minLength: 1,
126956
+ description: "Display name for list; can not be empty."
126429
126957
  },
126430
126958
  description: {
126431
126959
  type: "string",
@@ -126463,7 +126991,7 @@ var schemaDict2 = {
126463
126991
  defs: {
126464
126992
  main: {
126465
126993
  type: "record",
126466
- description: "A block of an entire list of actors.",
126994
+ description: "Record representing a block relationship against an entire an entire list of accounts (actors).",
126467
126995
  key: "tid",
126468
126996
  record: {
126469
126997
  type: "object",
@@ -126471,7 +126999,8 @@ var schemaDict2 = {
126471
126999
  properties: {
126472
127000
  subject: {
126473
127001
  type: "string",
126474
- format: "at-uri"
127002
+ format: "at-uri",
127003
+ description: "Reference (AT-URI) to the mod list record."
126475
127004
  },
126476
127005
  createdAt: {
126477
127006
  type: "string",
@@ -126488,7 +127017,7 @@ var schemaDict2 = {
126488
127017
  defs: {
126489
127018
  main: {
126490
127019
  type: "record",
126491
- description: "An item under a declared list of actors.",
127020
+ description: "Record representing an account's inclusion on a specific list. The AppView will ignore duplicate listitem records.",
126492
127021
  key: "tid",
126493
127022
  record: {
126494
127023
  type: "object",
@@ -126496,11 +127025,13 @@ var schemaDict2 = {
126496
127025
  properties: {
126497
127026
  subject: {
126498
127027
  type: "string",
126499
- format: "did"
127028
+ format: "did",
127029
+ description: "The account which is included on the list."
126500
127030
  },
126501
127031
  list: {
126502
127032
  type: "string",
126503
- format: "at-uri"
127033
+ format: "at-uri",
127034
+ description: "Reference (AT-URI) to the list record (app.bsky.graph.list)."
126504
127035
  },
126505
127036
  createdAt: {
126506
127037
  type: "string",
@@ -126517,7 +127048,7 @@ var schemaDict2 = {
126517
127048
  defs: {
126518
127049
  main: {
126519
127050
  type: "procedure",
126520
- description: "Mute an actor by DID or handle.",
127051
+ description: "Creates a mute relationship for the specified account. Mutes are private in Bluesky. Requires auth.",
126521
127052
  input: {
126522
127053
  encoding: "application/json",
126523
127054
  schema: {
@@ -126540,7 +127071,7 @@ var schemaDict2 = {
126540
127071
  defs: {
126541
127072
  main: {
126542
127073
  type: "procedure",
126543
- description: "Mute a list of actors.",
127074
+ description: "Creates a mute relationship for the specified list of accounts. Mutes are private in Bluesky. Requires auth.",
126544
127075
  input: {
126545
127076
  encoding: "application/json",
126546
127077
  schema: {
@@ -126563,7 +127094,7 @@ var schemaDict2 = {
126563
127094
  defs: {
126564
127095
  main: {
126565
127096
  type: "procedure",
126566
- description: "Unmute an actor by DID or handle.",
127097
+ description: "Unmutes the specified account. Requires auth.",
126567
127098
  input: {
126568
127099
  encoding: "application/json",
126569
127100
  schema: {
@@ -126586,7 +127117,7 @@ var schemaDict2 = {
126586
127117
  defs: {
126587
127118
  main: {
126588
127119
  type: "procedure",
126589
- description: "Unmute a list of actors.",
127120
+ description: "Unmutes the specified list of accounts. Requires auth.",
126590
127121
  input: {
126591
127122
  encoding: "application/json",
126592
127123
  schema: {
@@ -126609,7 +127140,7 @@ var schemaDict2 = {
126609
127140
  defs: {
126610
127141
  main: {
126611
127142
  type: "query",
126612
- description: "Get the count of unread notifications.",
127143
+ description: "Count the number of unread notifications for the requesting account. Requires auth.",
126613
127144
  parameters: {
126614
127145
  type: "params",
126615
127146
  properties: {
@@ -126640,7 +127171,7 @@ var schemaDict2 = {
126640
127171
  defs: {
126641
127172
  main: {
126642
127173
  type: "query",
126643
- description: "Get a list of notifications.",
127174
+ description: "Enumerate notifications for the requesting account. Requires auth.",
126644
127175
  parameters: {
126645
127176
  type: "params",
126646
127177
  properties: {
@@ -126750,7 +127281,7 @@ var schemaDict2 = {
126750
127281
  defs: {
126751
127282
  main: {
126752
127283
  type: "procedure",
126753
- description: "Register for push notifications with a service.",
127284
+ description: "Register to receive push notifications, via a specified service, for the requesting account. Requires auth.",
126754
127285
  input: {
126755
127286
  encoding: "application/json",
126756
127287
  schema: {
@@ -126783,7 +127314,7 @@ var schemaDict2 = {
126783
127314
  defs: {
126784
127315
  main: {
126785
127316
  type: "procedure",
126786
- description: "Notify server that the user has seen notifications.",
127317
+ description: "Notify server that the requesting account has seen notifications. Requires auth.",
126787
127318
  input: {
126788
127319
  encoding: "application/json",
126789
127320
  schema: {
@@ -126806,6 +127337,7 @@ var schemaDict2 = {
126806
127337
  defs: {
126807
127338
  main: {
126808
127339
  type: "object",
127340
+ description: "Annotation of a sub-string within rich text.",
126809
127341
  required: ["index", "features"],
126810
127342
  properties: {
126811
127343
  index: {
@@ -126827,7 +127359,7 @@ var schemaDict2 = {
126827
127359
  },
126828
127360
  mention: {
126829
127361
  type: "object",
126830
- description: "A facet feature for actor mentions.",
127362
+ description: "Facet feature for mention of another account. The text is usually a handle, including a '@' prefix, but the facet reference is a DID.",
126831
127363
  required: ["did"],
126832
127364
  properties: {
126833
127365
  did: {
@@ -126838,7 +127370,7 @@ var schemaDict2 = {
126838
127370
  },
126839
127371
  link: {
126840
127372
  type: "object",
126841
- description: "A facet feature for links.",
127373
+ description: "Facet feature for a URL. The text URL may have been simplified or truncated, but the facet reference should be a complete URL.",
126842
127374
  required: ["uri"],
126843
127375
  properties: {
126844
127376
  uri: {
@@ -126849,7 +127381,7 @@ var schemaDict2 = {
126849
127381
  },
126850
127382
  tag: {
126851
127383
  type: "object",
126852
- description: "A hashtag.",
127384
+ description: "Facet feature for a hashtag. The text usually includes a '#' prefix, but the facet reference should not (except in the case of 'double hash tags').",
126853
127385
  required: ["tag"],
126854
127386
  properties: {
126855
127387
  tag: {
@@ -126861,7 +127393,7 @@ var schemaDict2 = {
126861
127393
  },
126862
127394
  byteSlice: {
126863
127395
  type: "object",
126864
- description: "A text segment. Start is inclusive, end is exclusive. Indices are for utf8-encoded strings.",
127396
+ description: "Specifies the sub-string range a facet feature applies to. Start index is inclusive, end index is exclusive. Indices are zero-indexed, counting bytes of the UTF-8 encoded text. NOTE: some languages, like Javascript, use UTF-16 or Unicode codepoints for string slice indexing; in these languages, convert to byte arrays before working with facets.",
126865
127397
  required: ["byteStart", "byteEnd"],
126866
127398
  properties: {
126867
127399
  byteStart: {
@@ -126995,54 +127527,6 @@ var schemaDict2 = {
126995
127527
  }
126996
127528
  }
126997
127529
  },
126998
- AppBskyUnspeccedGetTimelineSkeleton: {
126999
- lexicon: 1,
127000
- id: "app.bsky.unspecced.getTimelineSkeleton",
127001
- defs: {
127002
- main: {
127003
- type: "query",
127004
- description: "DEPRECATED: a skeleton of a timeline. Unspecced and will be unavailable soon.",
127005
- parameters: {
127006
- type: "params",
127007
- properties: {
127008
- limit: {
127009
- type: "integer",
127010
- minimum: 1,
127011
- maximum: 100,
127012
- default: 50
127013
- },
127014
- cursor: {
127015
- type: "string"
127016
- }
127017
- }
127018
- },
127019
- output: {
127020
- encoding: "application/json",
127021
- schema: {
127022
- type: "object",
127023
- required: ["feed"],
127024
- properties: {
127025
- cursor: {
127026
- type: "string"
127027
- },
127028
- feed: {
127029
- type: "array",
127030
- items: {
127031
- type: "ref",
127032
- ref: "lex:app.bsky.feed.defs#skeletonFeedPost"
127033
- }
127034
- }
127035
- }
127036
- }
127037
- },
127038
- errors: [
127039
- {
127040
- name: "UnknownFeed"
127041
- }
127042
- ]
127043
- }
127044
- }
127045
- },
127046
127530
  AppBskyUnspeccedSearchActorsSkeleton: {
127047
127531
  lexicon: 1,
127048
127532
  id: "app.bsky.unspecced.searchActorsSkeleton",
@@ -128322,27 +128806,13 @@ function toKnownErr116(e) {
128322
128806
  return e;
128323
128807
  }
128324
128808
 
128325
- // ../api/src/client/types/app/bsky/unspecced/getTimelineSkeleton.ts
128326
- var UnknownFeedError3 = class extends XRPCError {
128327
- constructor(src3) {
128328
- super(src3.status, src3.error, src3.message, src3.headers);
128329
- }
128330
- };
128331
- function toKnownErr117(e) {
128332
- if (e instanceof XRPCError) {
128333
- if (e.error === "UnknownFeed")
128334
- return new UnknownFeedError3(e);
128335
- }
128336
- return e;
128337
- }
128338
-
128339
128809
  // ../api/src/client/types/app/bsky/unspecced/searchActorsSkeleton.ts
128340
128810
  var BadQueryStringError2 = class extends XRPCError {
128341
128811
  constructor(src3) {
128342
128812
  super(src3.status, src3.error, src3.message, src3.headers);
128343
128813
  }
128344
128814
  };
128345
- function toKnownErr118(e) {
128815
+ function toKnownErr117(e) {
128346
128816
  if (e instanceof XRPCError) {
128347
128817
  if (e.error === "BadQueryString")
128348
128818
  return new BadQueryStringError2(e);
@@ -128356,7 +128826,7 @@ var BadQueryStringError3 = class extends XRPCError {
128356
128826
  super(src3.status, src3.error, src3.message, src3.headers);
128357
128827
  }
128358
128828
  };
128359
- function toKnownErr119(e) {
128829
+ function toKnownErr118(e) {
128360
128830
  if (e instanceof XRPCError) {
128361
128831
  if (e.error === "BadQueryString")
128362
128832
  return new BadQueryStringError3(e);
@@ -129384,19 +129854,14 @@ var AppBskyUnspeccedNS2 = class {
129384
129854
  throw toKnownErr116(e);
129385
129855
  });
129386
129856
  }
129387
- getTimelineSkeleton(params2, opts) {
129388
- return this._service.xrpc.call("app.bsky.unspecced.getTimelineSkeleton", params2, void 0, opts).catch((e) => {
129389
- throw toKnownErr117(e);
129390
- });
129391
- }
129392
129857
  searchActorsSkeleton(params2, opts) {
129393
129858
  return this._service.xrpc.call("app.bsky.unspecced.searchActorsSkeleton", params2, void 0, opts).catch((e) => {
129394
- throw toKnownErr118(e);
129859
+ throw toKnownErr117(e);
129395
129860
  });
129396
129861
  }
129397
129862
  searchPostsSkeleton(params2, opts) {
129398
129863
  return this._service.xrpc.call("app.bsky.unspecced.searchPostsSkeleton", params2, void 0, opts).catch((e) => {
129399
- throw toKnownErr119(e);
129864
+ throw toKnownErr118(e);
129400
129865
  });
129401
129866
  }
129402
129867
  };
@@ -130541,7 +131006,8 @@ var import_stream8 = require("stream");
130541
131006
  var migrations_exports = {};
130542
131007
  __export(migrations_exports, {
130543
131008
  _20231219T205730722Z: () => T205730722Z_init_exports,
130544
- _20240116T085607200Z: () => T085607200Z_communication_template_exports
131009
+ _20240116T085607200Z: () => T085607200Z_communication_template_exports,
131010
+ _20240201T051104136Z: () => T051104136Z_mod_event_blobs_exports
130545
131011
  });
130546
131012
 
130547
131013
  // src/db/migrations/20231219T205730722Z-init.ts
@@ -130599,6 +131065,19 @@ async function down2(db) {
130599
131065
  await db.schema.dropTable("communication_template");
130600
131066
  }
130601
131067
 
131068
+ // src/db/migrations/20240201T051104136Z-mod-event-blobs.ts
131069
+ var T051104136Z_mod_event_blobs_exports = {};
131070
+ __export(T051104136Z_mod_event_blobs_exports, {
131071
+ down: () => down3,
131072
+ up: () => up3
131073
+ });
131074
+ async function up3(db) {
131075
+ await db.schema.alterTable("moderation_event").addColumn("subjectBlobCids", "jsonb").execute();
131076
+ }
131077
+ async function down3(db) {
131078
+ await db.schema.alterTable("moderation_event").dropColumn("subjectBlobCids").execute();
131079
+ }
131080
+
130602
131081
  // src/db/migrations/provider.ts
130603
131082
  var CtxMigrationProvider = class {
130604
131083
  constructor(migrations, ctx) {
@@ -130799,7 +131278,7 @@ var ModerationViews = class {
130799
131278
  comment: event.comment ?? void 0
130800
131279
  },
130801
131280
  subject: subjectFromEventRow(event).lex(),
130802
- subjectBlobCids: [],
131281
+ subjectBlobCids: event.subjectBlobCids ?? [],
130803
131282
  createdBy: event.createdBy,
130804
131283
  createdAt: event.createdAt,
130805
131284
  subjectHandle: event.subjectHandle ?? void 0,
@@ -131126,6 +131605,13 @@ function getSelfLabels(details) {
131126
131605
  });
131127
131606
  }
131128
131607
 
131608
+ // src/db/types.ts
131609
+ var jsonb = (val) => {
131610
+ if (val === null)
131611
+ return sql`null`;
131612
+ return sql`${JSON.stringify(val)}::jsonb`;
131613
+ };
131614
+
131129
131615
  // src/mod-service/status.ts
131130
131616
  var getSubjectStatusForModerationEvent = ({
131131
131617
  action,
@@ -131250,7 +131736,7 @@ var adjustModerationSubjectStatus = async (db, moderationEvent, blobCids) => {
131250
131736
  subjectStatus.comment = comment;
131251
131737
  }
131252
131738
  if (blobCids?.length) {
131253
- const newBlobCids = sql`${JSON.stringify(blobCids)}`;
131739
+ const newBlobCids = jsonb(blobCids);
131254
131740
  newStatus.blobCids = newBlobCids;
131255
131741
  subjectStatus.blobCids = newBlobCids;
131256
131742
  }
@@ -131423,16 +131909,17 @@ var paginate = (qb, opts) => {
131423
131909
 
131424
131910
  // src/mod-service/index.ts
131425
131911
  var ModerationService = class {
131426
- constructor(db, backgroundQueue, eventPusher, appviewAgent, appviewAuth) {
131912
+ constructor(db, backgroundQueue, eventPusher, appviewAgent, appviewAuth, serverDid) {
131427
131913
  this.db = db;
131428
131914
  this.backgroundQueue = backgroundQueue;
131429
131915
  this.eventPusher = eventPusher;
131430
131916
  this.appviewAgent = appviewAgent;
131431
131917
  this.appviewAuth = appviewAuth;
131918
+ this.serverDid = serverDid;
131432
131919
  this.views = new ModerationViews(this.db, this.appviewAgent, this.appviewAuth);
131433
131920
  }
131434
- static creator(backgroundQueue, eventPusher, appviewAgent, appviewAuth) {
131435
- return (db) => new ModerationService(db, backgroundQueue, eventPusher, appviewAgent, appviewAuth);
131921
+ static creator(backgroundQueue, eventPusher, appviewAgent, appviewAuth, serverDid) {
131922
+ return (db) => new ModerationService(db, backgroundQueue, eventPusher, appviewAgent, appviewAuth, serverDid);
131436
131923
  }
131437
131924
  async getEvent(id) {
131438
131925
  return await this.db.db.selectFrom("moderation_event").selectAll().where("id", "=", id).executeTakeFirst();
@@ -131451,7 +131938,14 @@ var ModerationService = class {
131451
131938
  cursor,
131452
131939
  includeAllUserRecords,
131453
131940
  sortDirection = "desc",
131454
- types
131941
+ types,
131942
+ hasComment,
131943
+ comment,
131944
+ createdAfter,
131945
+ createdBefore,
131946
+ addedLabels,
131947
+ removedLabels,
131948
+ reportTypes
131455
131949
  } = opts;
131456
131950
  let builder = this.db.db.selectFrom("moderation_event").selectAll();
131457
131951
  if (subject) {
@@ -131477,6 +131971,31 @@ var ModerationService = class {
131477
131971
  if (createdBy) {
131478
131972
  builder = builder.where("createdBy", "=", createdBy);
131479
131973
  }
131974
+ if (createdAfter) {
131975
+ builder = builder.where("createdAt", ">=", createdAfter);
131976
+ }
131977
+ if (createdBefore) {
131978
+ builder = builder.where("createdAt", "<=", createdBefore);
131979
+ }
131980
+ if (comment) {
131981
+ builder = builder.where("comment", "ilike", `%${comment}%`);
131982
+ }
131983
+ if (hasComment) {
131984
+ builder = builder.where("comment", "is not", null);
131985
+ }
131986
+ if (addedLabels.length) {
131987
+ addedLabels.forEach((label) => {
131988
+ builder = builder.where("createLabelVals", "ilike", `%${label}%`);
131989
+ });
131990
+ }
131991
+ if (removedLabels.length) {
131992
+ removedLabels.forEach((label) => {
131993
+ builder = builder.where("negateLabelVals", "ilike", `%${label}%`);
131994
+ });
131995
+ }
131996
+ if (reportTypes?.length) {
131997
+ builder = builder.where(sql`meta->>'reportType'`, "in", reportTypes);
131998
+ }
131480
131999
  const { ref } = this.db.db.dynamic;
131481
132000
  const keyset = new TimeIdKeyset(ref(`moderation_event.createdAt`), ref("moderation_event.id"));
131482
132001
  const paginatedBuilder = paginate(builder, {
@@ -131525,6 +132044,7 @@ var ModerationService = class {
131525
132044
  if (isModEventEmail(event)) {
131526
132045
  meta.subjectLine = event.subjectLine;
131527
132046
  }
132047
+ const subjectInfo = subject.info();
131528
132048
  const modEvent = await this.db.db.insertInto("moderation_event").values({
131529
132049
  comment: event.comment ? `${event.comment}` : null,
131530
132050
  action: event.$type,
@@ -131535,7 +132055,11 @@ var ModerationService = class {
131535
132055
  durationInHours: event.durationInHours ? Number(event.durationInHours) : null,
131536
132056
  meta,
131537
132057
  expiresAt: (isModEventTakedown(event) || isModEventMute(event)) && event.durationInHours ? addHoursToDate(event.durationInHours, createdAt).toISOString() : void 0,
131538
- ...subject.info()
132058
+ subjectType: subjectInfo.subjectType,
132059
+ subjectDid: subjectInfo.subjectDid,
132060
+ subjectUri: subjectInfo.subjectUri,
132061
+ subjectCid: subjectInfo.subjectCid,
132062
+ subjectBlobCids: jsonb(subjectInfo.subjectBlobCids)
131539
132063
  }).returningAll().executeTakeFirstOrThrow();
131540
132064
  await adjustModerationSubjectStatus(this.db, modEvent, subject.blobCids);
131541
132065
  return modEvent;
@@ -131603,12 +132127,17 @@ var ModerationService = class {
131603
132127
  subjectDid: subject.did,
131604
132128
  takedownRef
131605
132129
  }));
131606
- const repoEvts = await this.db.db.insertInto("repo_push_event").values(values).onConflict((oc) => oc.columns(["subjectDid", "eventType"]).doUpdateSet({
131607
- takedownRef,
131608
- confirmedAt: null,
131609
- attempts: 0,
131610
- lastAttempted: null
131611
- })).returning("id").execute();
132130
+ const [repoEvts] = await Promise.all([
132131
+ this.db.db.insertInto("repo_push_event").values(values).onConflict((oc) => oc.columns(["subjectDid", "eventType"]).doUpdateSet({
132132
+ takedownRef,
132133
+ confirmedAt: null,
132134
+ attempts: 0,
132135
+ lastAttempted: null
132136
+ })).returning("id").execute(),
132137
+ this.formatAndCreateLabels(subject.did, null, {
132138
+ create: [UNSPECCED_TAKEDOWN_LABEL]
132139
+ })
132140
+ ]);
131612
132141
  this.db.onCommit(() => {
131613
132142
  this.backgroundQueue.add(async () => {
131614
132143
  await Promise.all(repoEvts.map((evt) => this.eventPusher.attemptRepoEvent(evt.id)));
@@ -131616,12 +132145,17 @@ var ModerationService = class {
131616
132145
  });
131617
132146
  }
131618
132147
  async reverseTakedownRepo(subject) {
131619
- const repoEvts = await this.db.db.updateTable("repo_push_event").where("eventType", "in", TAKEDOWNS).where("subjectDid", "=", subject.did).set({
131620
- takedownRef: null,
131621
- confirmedAt: null,
131622
- attempts: 0,
131623
- lastAttempted: null
131624
- }).returning("id").execute();
132148
+ const [repoEvts] = await Promise.all([
132149
+ this.db.db.updateTable("repo_push_event").where("eventType", "in", TAKEDOWNS).where("subjectDid", "=", subject.did).set({
132150
+ takedownRef: null,
132151
+ confirmedAt: null,
132152
+ attempts: 0,
132153
+ lastAttempted: null
132154
+ }).returning("id").execute(),
132155
+ this.formatAndCreateLabels(subject.did, null, {
132156
+ negate: [UNSPECCED_TAKEDOWN_LABEL]
132157
+ })
132158
+ ]);
131625
132159
  this.db.onCommit(() => {
131626
132160
  this.backgroundQueue.add(async () => {
131627
132161
  await Promise.all(repoEvts.map((evt) => this.eventPusher.attemptRepoEvent(evt.id)));
@@ -131638,18 +132172,25 @@ var ModerationService = class {
131638
132172
  subjectCid: subject.cid,
131639
132173
  takedownRef
131640
132174
  }));
131641
- const recordEvts = await this.db.db.insertInto("record_push_event").values(values).onConflict((oc) => oc.columns(["subjectUri", "eventType"]).doUpdateSet({
131642
- takedownRef,
131643
- confirmedAt: null,
131644
- attempts: 0,
131645
- lastAttempted: null
131646
- })).returning("id").execute();
132175
+ const blobCids = subject.blobCids;
132176
+ const labels = [UNSPECCED_TAKEDOWN_LABEL];
132177
+ if (blobCids && blobCids.length > 0) {
132178
+ labels.push(UNSPECCED_TAKEDOWN_BLOBS_LABEL);
132179
+ }
132180
+ const [recordEvts] = await Promise.all([
132181
+ this.db.db.insertInto("record_push_event").values(values).onConflict((oc) => oc.columns(["subjectUri", "eventType"]).doUpdateSet({
132182
+ takedownRef,
132183
+ confirmedAt: null,
132184
+ attempts: 0,
132185
+ lastAttempted: null
132186
+ })).returning("id").execute(),
132187
+ this.formatAndCreateLabels(subject.uri, subject.cid, { create: labels })
132188
+ ]);
131647
132189
  this.db.onCommit(() => {
131648
132190
  this.backgroundQueue.add(async () => {
131649
132191
  await Promise.all(recordEvts.map((evt) => this.eventPusher.attemptRecordEvent(evt.id)));
131650
132192
  });
131651
132193
  });
131652
- const blobCids = subject.blobCids;
131653
132194
  if (blobCids && blobCids.length > 0) {
131654
132195
  const blobValues = [];
131655
132196
  for (const eventType of TAKEDOWNS) {
@@ -131677,18 +132218,25 @@ var ModerationService = class {
131677
132218
  }
131678
132219
  async reverseTakedownRecord(subject) {
131679
132220
  this.db.assertTransaction();
131680
- const recordEvts = await this.db.db.updateTable("record_push_event").where("eventType", "in", TAKEDOWNS).where("subjectDid", "=", subject.did).where("subjectUri", "=", subject.uri).set({
131681
- takedownRef: null,
131682
- confirmedAt: null,
131683
- attempts: 0,
131684
- lastAttempted: null
131685
- }).returning("id").execute();
132221
+ const labels = [UNSPECCED_TAKEDOWN_LABEL];
132222
+ const blobCids = subject.blobCids;
132223
+ if (blobCids && blobCids.length > 0) {
132224
+ labels.push(UNSPECCED_TAKEDOWN_BLOBS_LABEL);
132225
+ }
132226
+ const [recordEvts] = await Promise.all([
132227
+ this.db.db.updateTable("record_push_event").where("eventType", "in", TAKEDOWNS).where("subjectDid", "=", subject.did).where("subjectUri", "=", subject.uri).set({
132228
+ takedownRef: null,
132229
+ confirmedAt: null,
132230
+ attempts: 0,
132231
+ lastAttempted: null
132232
+ }).returning("id").execute(),
132233
+ this.formatAndCreateLabels(subject.uri, subject.cid, { negate: labels })
132234
+ ]);
131686
132235
  this.db.onCommit(() => {
131687
132236
  this.backgroundQueue.add(async () => {
131688
132237
  await Promise.all(recordEvts.map((evt) => this.eventPusher.attemptRecordEvent(evt.id)));
131689
132238
  });
131690
132239
  });
131691
- const blobCids = subject.blobCids;
131692
132240
  if (blobCids && blobCids.length > 0) {
131693
132241
  const blobEvts = await this.db.db.updateTable("blob_push_event").where("eventType", "in", TAKEDOWNS).where("subjectDid", "=", subject.did).where("subjectBlobCid", "in", blobCids.map((c) => c.toString())).set({
131694
132242
  takedownRef: null,
@@ -131796,15 +132344,14 @@ var ModerationService = class {
131796
132344
  cursor: keyset.packFromResult(results)
131797
132345
  };
131798
132346
  }
131799
- async isSubjectTakendown(subject) {
131800
- const builder = this.db.db.selectFrom("moderation_subject_status").where("did", "=", subject.did).where("recordPath", "=", subject.recordPath || "");
131801
- const result = await builder.select("takendown").executeTakeFirst();
131802
- return !!result?.takendown;
132347
+ async getStatus(subject) {
132348
+ const result = await this.db.db.selectFrom("moderation_subject_status").where("did", "=", subject.did).where("recordPath", "=", subject.recordPath ?? "").selectAll().executeTakeFirst();
132349
+ return result ?? null;
131803
132350
  }
131804
- async formatAndCreateLabels(src3, uri2, cid2, labels) {
132351
+ async formatAndCreateLabels(uri2, cid2, labels) {
131805
132352
  const { create: create2 = [], negate = [] } = labels;
131806
132353
  const toCreate = create2.map((val) => ({
131807
- src: src3,
132354
+ src: this.serverDid,
131808
132355
  uri: uri2,
131809
132356
  cid: cid2 ?? void 0,
131810
132357
  val,
@@ -131812,7 +132359,7 @@ var ModerationService = class {
131812
132359
  cts: new Date().toISOString()
131813
132360
  }));
131814
132361
  const toNegate = negate.map((val) => ({
131815
- src: src3,
132362
+ src: this.serverDid,
131816
132363
  uri: uri2,
131817
132364
  cid: cid2 ?? void 0,
131818
132365
  val,
@@ -132232,7 +132779,7 @@ var DaemonContext = class {
132232
132779
  pds: cfg.pds ?? void 0
132233
132780
  });
132234
132781
  const backgroundQueue = new BackgroundQueue(db);
132235
- const modService = ModerationService.creator(backgroundQueue, eventPusher, appviewAgent, appviewAuth);
132782
+ const modService = ModerationService.creator(backgroundQueue, eventPusher, appviewAgent, appviewAuth, cfg.service.did);
132236
132783
  const eventReverser = new EventReverser(db, modService);
132237
132784
  return new DaemonContext({
132238
132785
  db,
@@ -132377,7 +132924,7 @@ var AppContext = class {
132377
132924
  appview: cfg.appview,
132378
132925
  pds: cfg.pds ?? void 0
132379
132926
  });
132380
- const modService = ModerationService.creator(backgroundQueue, eventPusher, appviewAgent, appviewAuth);
132927
+ const modService = ModerationService.creator(backgroundQueue, eventPusher, appviewAgent, appviewAuth, cfg.service.did);
132381
132928
  const communicationTemplateService = CommunicationTemplateService.creator();
132382
132929
  const idResolver = new IdResolver({
132383
132930
  plcUrl: cfg.identity.plcUrl