@atproto/pds 0.4.183 → 0.4.185

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 (572) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/account-manager/account-manager.js.map +1 -1
  3. package/dist/account-manager/db/index.js.map +1 -1
  4. package/dist/account-manager/db/migrations/001-init.js.map +1 -1
  5. package/dist/account-manager/db/migrations/002-account-deactivation.js.map +1 -1
  6. package/dist/account-manager/db/migrations/003-privileged-app-passwords.js.map +1 -1
  7. package/dist/account-manager/db/migrations/004-oauth.js.map +1 -1
  8. package/dist/account-manager/db/migrations/005-oauth-account-management.js.map +1 -1
  9. package/dist/account-manager/db/migrations/006-oauth-permission-sets.js.map +1 -1
  10. package/dist/account-manager/db/migrations/007-lexicon-failures-index.js.map +1 -1
  11. package/dist/account-manager/db/migrations/index.js.map +1 -1
  12. package/dist/account-manager/db/schema/account-device.js.map +1 -1
  13. package/dist/account-manager/db/schema/account.js.map +1 -1
  14. package/dist/account-manager/db/schema/actor.js.map +1 -1
  15. package/dist/account-manager/db/schema/app-password.js.map +1 -1
  16. package/dist/account-manager/db/schema/authorization-request.js.map +1 -1
  17. package/dist/account-manager/db/schema/authorized-client.js.map +1 -1
  18. package/dist/account-manager/db/schema/device.js.map +1 -1
  19. package/dist/account-manager/db/schema/email-token.js.map +1 -1
  20. package/dist/account-manager/db/schema/index.js.map +1 -1
  21. package/dist/account-manager/db/schema/invite-code.js.map +1 -1
  22. package/dist/account-manager/db/schema/lexicon.js.map +1 -1
  23. package/dist/account-manager/db/schema/refresh-token.js.map +1 -1
  24. package/dist/account-manager/db/schema/repo-root.js.map +1 -1
  25. package/dist/account-manager/db/schema/token.js.map +1 -1
  26. package/dist/account-manager/db/schema/used-refresh-token.js.map +1 -1
  27. package/dist/account-manager/helpers/account-device.js.map +1 -1
  28. package/dist/account-manager/helpers/account.js.map +1 -1
  29. package/dist/account-manager/helpers/auth.js.map +1 -1
  30. package/dist/account-manager/helpers/authorization-request.js.map +1 -1
  31. package/dist/account-manager/helpers/authorized-client.js.map +1 -1
  32. package/dist/account-manager/helpers/device.js.map +1 -1
  33. package/dist/account-manager/helpers/email-token.js.map +1 -1
  34. package/dist/account-manager/helpers/invite.js.map +1 -1
  35. package/dist/account-manager/helpers/lexicon.js.map +1 -1
  36. package/dist/account-manager/helpers/password.js.map +1 -1
  37. package/dist/account-manager/helpers/repo.js.map +1 -1
  38. package/dist/account-manager/helpers/scrypt.js.map +1 -1
  39. package/dist/account-manager/helpers/token.js.map +1 -1
  40. package/dist/account-manager/helpers/used-refresh-token.js.map +1 -1
  41. package/dist/account-manager/oauth-store.js.map +1 -1
  42. package/dist/account-manager/scope-reference-getter.js.map +1 -1
  43. package/dist/actor-store/actor-store-reader.js.map +1 -1
  44. package/dist/actor-store/actor-store-resources.js.map +1 -1
  45. package/dist/actor-store/actor-store-transactor.js.map +1 -1
  46. package/dist/actor-store/actor-store-writer.js.map +1 -1
  47. package/dist/actor-store/actor-store.js.map +1 -1
  48. package/dist/actor-store/blob/reader.js.map +1 -1
  49. package/dist/actor-store/blob/transactor.js.map +1 -1
  50. package/dist/actor-store/db/index.js.map +1 -1
  51. package/dist/actor-store/db/migrations/001-init.js.map +1 -1
  52. package/dist/actor-store/db/migrations/index.js.map +1 -1
  53. package/dist/actor-store/db/schema/account-pref.js.map +1 -1
  54. package/dist/actor-store/db/schema/backlink.js.map +1 -1
  55. package/dist/actor-store/db/schema/blob.js.map +1 -1
  56. package/dist/actor-store/db/schema/index.js.map +1 -1
  57. package/dist/actor-store/db/schema/record-blob.js.map +1 -1
  58. package/dist/actor-store/db/schema/record.js.map +1 -1
  59. package/dist/actor-store/db/schema/repo-block.js.map +1 -1
  60. package/dist/actor-store/db/schema/repo-root.js.map +1 -1
  61. package/dist/actor-store/migrate.js.map +1 -1
  62. package/dist/actor-store/preference/reader.js.map +1 -1
  63. package/dist/actor-store/preference/transactor.js.map +1 -1
  64. package/dist/actor-store/preference/util.js.map +1 -1
  65. package/dist/actor-store/record/reader.js.map +1 -1
  66. package/dist/actor-store/record/transactor.js.map +1 -1
  67. package/dist/actor-store/repo/reader.js.map +1 -1
  68. package/dist/actor-store/repo/sql-repo-reader.js.map +1 -1
  69. package/dist/actor-store/repo/sql-repo-transactor.js.map +1 -1
  70. package/dist/actor-store/repo/transactor.js.map +1 -1
  71. package/dist/api/app/bsky/actor/getPreferences.js.map +1 -1
  72. package/dist/api/app/bsky/actor/getProfile.js.map +1 -1
  73. package/dist/api/app/bsky/actor/getProfiles.js.map +1 -1
  74. package/dist/api/app/bsky/actor/index.js.map +1 -1
  75. package/dist/api/app/bsky/actor/putPreferences.js.map +1 -1
  76. package/dist/api/app/bsky/feed/getActorLikes.js.map +1 -1
  77. package/dist/api/app/bsky/feed/getAuthorFeed.js.map +1 -1
  78. package/dist/api/app/bsky/feed/getFeed.js.map +1 -1
  79. package/dist/api/app/bsky/feed/getPostThread.js.map +1 -1
  80. package/dist/api/app/bsky/feed/getTimeline.js.map +1 -1
  81. package/dist/api/app/bsky/feed/index.js.map +1 -1
  82. package/dist/api/app/bsky/index.js.map +1 -1
  83. package/dist/api/app/bsky/notification/index.js.map +1 -1
  84. package/dist/api/app/bsky/notification/registerPush.js.map +1 -1
  85. package/dist/api/app/bsky/util/resolver.js.map +1 -1
  86. package/dist/api/com/atproto/admin/deleteAccount.js.map +1 -1
  87. package/dist/api/com/atproto/admin/disableAccountInvites.js.map +1 -1
  88. package/dist/api/com/atproto/admin/disableInviteCodes.js.map +1 -1
  89. package/dist/api/com/atproto/admin/enableAccountInvites.js.map +1 -1
  90. package/dist/api/com/atproto/admin/getAccountInfo.js.map +1 -1
  91. package/dist/api/com/atproto/admin/getAccountInfos.js.map +1 -1
  92. package/dist/api/com/atproto/admin/getInviteCodes.js.map +1 -1
  93. package/dist/api/com/atproto/admin/getSubjectStatus.js.map +1 -1
  94. package/dist/api/com/atproto/admin/index.js.map +1 -1
  95. package/dist/api/com/atproto/admin/sendEmail.js.map +1 -1
  96. package/dist/api/com/atproto/admin/updateAccountEmail.js.map +1 -1
  97. package/dist/api/com/atproto/admin/updateAccountHandle.js.map +1 -1
  98. package/dist/api/com/atproto/admin/updateAccountPassword.js.map +1 -1
  99. package/dist/api/com/atproto/admin/updateSubjectStatus.js.map +1 -1
  100. package/dist/api/com/atproto/admin/util.js.map +1 -1
  101. package/dist/api/com/atproto/identity/getRecommendedDidCredentials.js.map +1 -1
  102. package/dist/api/com/atproto/identity/index.js.map +1 -1
  103. package/dist/api/com/atproto/identity/requestPlcOperationSignature.js.map +1 -1
  104. package/dist/api/com/atproto/identity/resolveHandle.js.map +1 -1
  105. package/dist/api/com/atproto/identity/signPlcOperation.js.map +1 -1
  106. package/dist/api/com/atproto/identity/submitPlcOperation.js.map +1 -1
  107. package/dist/api/com/atproto/identity/updateHandle.js.map +1 -1
  108. package/dist/api/com/atproto/index.js.map +1 -1
  109. package/dist/api/com/atproto/moderation/createReport.js.map +1 -1
  110. package/dist/api/com/atproto/moderation/index.js.map +1 -1
  111. package/dist/api/com/atproto/repo/applyWrites.js.map +1 -1
  112. package/dist/api/com/atproto/repo/createRecord.js.map +1 -1
  113. package/dist/api/com/atproto/repo/deleteRecord.js.map +1 -1
  114. package/dist/api/com/atproto/repo/describeRepo.js.map +1 -1
  115. package/dist/api/com/atproto/repo/getRecord.js.map +1 -1
  116. package/dist/api/com/atproto/repo/importRepo.js.map +1 -1
  117. package/dist/api/com/atproto/repo/index.js.map +1 -1
  118. package/dist/api/com/atproto/repo/listMissingBlobs.js.map +1 -1
  119. package/dist/api/com/atproto/repo/listRecords.js.map +1 -1
  120. package/dist/api/com/atproto/repo/putRecord.js.map +1 -1
  121. package/dist/api/com/atproto/repo/uploadBlob.js.map +1 -1
  122. package/dist/api/com/atproto/server/activateAccount.js.map +1 -1
  123. package/dist/api/com/atproto/server/checkAccountStatus.js.map +1 -1
  124. package/dist/api/com/atproto/server/confirmEmail.js.map +1 -1
  125. package/dist/api/com/atproto/server/createAccount.js.map +1 -1
  126. package/dist/api/com/atproto/server/createAppPassword.js.map +1 -1
  127. package/dist/api/com/atproto/server/createInviteCode.js.map +1 -1
  128. package/dist/api/com/atproto/server/createInviteCodes.js.map +1 -1
  129. package/dist/api/com/atproto/server/createSession.js.map +1 -1
  130. package/dist/api/com/atproto/server/deactivateAccount.js.map +1 -1
  131. package/dist/api/com/atproto/server/deleteAccount.js.map +1 -1
  132. package/dist/api/com/atproto/server/deleteSession.js.map +1 -1
  133. package/dist/api/com/atproto/server/describeServer.js.map +1 -1
  134. package/dist/api/com/atproto/server/getAccountInviteCodes.js.map +1 -1
  135. package/dist/api/com/atproto/server/getServiceAuth.js.map +1 -1
  136. package/dist/api/com/atproto/server/getSession.js.map +1 -1
  137. package/dist/api/com/atproto/server/index.js.map +1 -1
  138. package/dist/api/com/atproto/server/listAppPasswords.js.map +1 -1
  139. package/dist/api/com/atproto/server/refreshSession.js.map +1 -1
  140. package/dist/api/com/atproto/server/requestAccountDelete.js.map +1 -1
  141. package/dist/api/com/atproto/server/requestEmailConfirmation.js.map +1 -1
  142. package/dist/api/com/atproto/server/requestEmailUpdate.js.map +1 -1
  143. package/dist/api/com/atproto/server/requestPasswordReset.js.map +1 -1
  144. package/dist/api/com/atproto/server/reserveSigningKey.js.map +1 -1
  145. package/dist/api/com/atproto/server/resetPassword.js.map +1 -1
  146. package/dist/api/com/atproto/server/revokeAppPassword.js.map +1 -1
  147. package/dist/api/com/atproto/server/updateEmail.js.map +1 -1
  148. package/dist/api/com/atproto/server/util.js.map +1 -1
  149. package/dist/api/com/atproto/sync/deprecated/getCheckout.js.map +1 -1
  150. package/dist/api/com/atproto/sync/deprecated/getHead.js.map +1 -1
  151. package/dist/api/com/atproto/sync/getBlob.js.map +1 -1
  152. package/dist/api/com/atproto/sync/getBlocks.js.map +1 -1
  153. package/dist/api/com/atproto/sync/getLatestCommit.js.map +1 -1
  154. package/dist/api/com/atproto/sync/getRecord.js.map +1 -1
  155. package/dist/api/com/atproto/sync/getRepo.js.map +1 -1
  156. package/dist/api/com/atproto/sync/getRepoStatus.js.map +1 -1
  157. package/dist/api/com/atproto/sync/index.js.map +1 -1
  158. package/dist/api/com/atproto/sync/listBlobs.js.map +1 -1
  159. package/dist/api/com/atproto/sync/listRepos.js.map +1 -1
  160. package/dist/api/com/atproto/sync/subscribeRepos.js.map +1 -1
  161. package/dist/api/com/atproto/sync/util.js.map +1 -1
  162. package/dist/api/com/atproto/temp/checkSignupQueue.js.map +1 -1
  163. package/dist/api/com/atproto/temp/index.js.map +1 -1
  164. package/dist/api/index.js.map +1 -1
  165. package/dist/api/proxy.js.map +1 -1
  166. package/dist/app-view.js.map +1 -1
  167. package/dist/auth-output.js.map +1 -1
  168. package/dist/auth-routes.js.map +1 -1
  169. package/dist/auth-scope.js.map +1 -1
  170. package/dist/auth-verifier.js.map +1 -1
  171. package/dist/background.js.map +1 -1
  172. package/dist/basic-routes.js.map +1 -1
  173. package/dist/bsky-app-view.js.map +1 -1
  174. package/dist/config/config.js.map +1 -1
  175. package/dist/config/env.js.map +1 -1
  176. package/dist/config/index.js.map +1 -1
  177. package/dist/config/secrets.js.map +1 -1
  178. package/dist/context.js.map +1 -1
  179. package/dist/crawlers.js.map +1 -1
  180. package/dist/db/cast.js.map +1 -1
  181. package/dist/db/db.js.map +1 -1
  182. package/dist/db/index.js.map +1 -1
  183. package/dist/db/migrator.js.map +1 -1
  184. package/dist/db/pagination.js.map +1 -1
  185. package/dist/db/tables/moderation.js.map +1 -1
  186. package/dist/db/util.js.map +1 -1
  187. package/dist/did-cache/db/index.js.map +1 -1
  188. package/dist/did-cache/db/migrations.js.map +1 -1
  189. package/dist/did-cache/db/schema.js.map +1 -1
  190. package/dist/did-cache/index.js.map +1 -1
  191. package/dist/disk-blobstore.js.map +1 -1
  192. package/dist/error.js.map +1 -1
  193. package/dist/handle/explicit-slurs.js.map +1 -1
  194. package/dist/handle/index.js.map +1 -1
  195. package/dist/handle/reserved.js.map +1 -1
  196. package/dist/image/image-url-builder.js.map +1 -1
  197. package/dist/image/index.js.map +1 -1
  198. package/dist/index.js.map +1 -1
  199. package/dist/lexicon/index.d.ts +15 -14
  200. package/dist/lexicon/index.d.ts.map +1 -1
  201. package/dist/lexicon/index.js +21 -14
  202. package/dist/lexicon/index.js.map +1 -1
  203. package/dist/lexicon/lexicons.d.ts +877 -125
  204. package/dist/lexicon/lexicons.d.ts.map +1 -1
  205. package/dist/lexicon/lexicons.js +444 -67
  206. package/dist/lexicon/lexicons.js.map +1 -1
  207. package/dist/lexicon/types/app/bsky/actor/defs.js.map +1 -1
  208. package/dist/lexicon/types/app/bsky/actor/getPreferences.js.map +1 -1
  209. package/dist/lexicon/types/app/bsky/actor/getProfile.js.map +1 -1
  210. package/dist/lexicon/types/app/bsky/actor/getProfiles.js.map +1 -1
  211. package/dist/lexicon/types/app/bsky/actor/getSuggestions.js.map +1 -1
  212. package/dist/lexicon/types/app/bsky/actor/profile.js.map +1 -1
  213. package/dist/lexicon/types/app/bsky/actor/putPreferences.js.map +1 -1
  214. package/dist/lexicon/types/app/bsky/actor/searchActors.js.map +1 -1
  215. package/dist/lexicon/types/app/bsky/actor/searchActorsTypeahead.js.map +1 -1
  216. package/dist/lexicon/types/app/bsky/actor/status.js.map +1 -1
  217. package/dist/lexicon/types/app/bsky/bookmark/createBookmark.js.map +1 -1
  218. package/dist/lexicon/types/app/bsky/bookmark/defs.js.map +1 -1
  219. package/dist/lexicon/types/app/bsky/bookmark/deleteBookmark.js.map +1 -1
  220. package/dist/lexicon/types/app/bsky/bookmark/getBookmarks.js.map +1 -1
  221. package/dist/lexicon/types/app/bsky/embed/defs.js.map +1 -1
  222. package/dist/lexicon/types/app/bsky/embed/external.js.map +1 -1
  223. package/dist/lexicon/types/app/bsky/embed/images.js.map +1 -1
  224. package/dist/lexicon/types/app/bsky/embed/record.js.map +1 -1
  225. package/dist/lexicon/types/app/bsky/embed/recordWithMedia.js.map +1 -1
  226. package/dist/lexicon/types/app/bsky/embed/video.js.map +1 -1
  227. package/dist/lexicon/types/app/bsky/feed/defs.js.map +1 -1
  228. package/dist/lexicon/types/app/bsky/feed/describeFeedGenerator.js.map +1 -1
  229. package/dist/lexicon/types/app/bsky/feed/generator.js.map +1 -1
  230. package/dist/lexicon/types/app/bsky/feed/getActorFeeds.js.map +1 -1
  231. package/dist/lexicon/types/app/bsky/feed/getActorLikes.js.map +1 -1
  232. package/dist/lexicon/types/app/bsky/feed/getAuthorFeed.js.map +1 -1
  233. package/dist/lexicon/types/app/bsky/feed/getFeed.js.map +1 -1
  234. package/dist/lexicon/types/app/bsky/feed/getFeedGenerator.js.map +1 -1
  235. package/dist/lexicon/types/app/bsky/feed/getFeedGenerators.js.map +1 -1
  236. package/dist/lexicon/types/app/bsky/feed/getFeedSkeleton.js.map +1 -1
  237. package/dist/lexicon/types/app/bsky/feed/getLikes.js.map +1 -1
  238. package/dist/lexicon/types/app/bsky/feed/getListFeed.js.map +1 -1
  239. package/dist/lexicon/types/app/bsky/feed/getPostThread.js.map +1 -1
  240. package/dist/lexicon/types/app/bsky/feed/getPosts.js.map +1 -1
  241. package/dist/lexicon/types/app/bsky/feed/getQuotes.js.map +1 -1
  242. package/dist/lexicon/types/app/bsky/feed/getRepostedBy.js.map +1 -1
  243. package/dist/lexicon/types/app/bsky/feed/getSuggestedFeeds.js.map +1 -1
  244. package/dist/lexicon/types/app/bsky/feed/getTimeline.js.map +1 -1
  245. package/dist/lexicon/types/app/bsky/feed/like.js.map +1 -1
  246. package/dist/lexicon/types/app/bsky/feed/post.js.map +1 -1
  247. package/dist/lexicon/types/app/bsky/feed/postgate.js.map +1 -1
  248. package/dist/lexicon/types/app/bsky/feed/repost.js.map +1 -1
  249. package/dist/lexicon/types/app/bsky/feed/searchPosts.js.map +1 -1
  250. package/dist/lexicon/types/app/bsky/feed/sendInteractions.js.map +1 -1
  251. package/dist/lexicon/types/app/bsky/feed/threadgate.js.map +1 -1
  252. package/dist/lexicon/types/app/bsky/graph/block.js.map +1 -1
  253. package/dist/lexicon/types/app/bsky/graph/defs.js.map +1 -1
  254. package/dist/lexicon/types/app/bsky/graph/follow.js.map +1 -1
  255. package/dist/lexicon/types/app/bsky/graph/getActorStarterPacks.js.map +1 -1
  256. package/dist/lexicon/types/app/bsky/graph/getBlocks.js.map +1 -1
  257. package/dist/lexicon/types/app/bsky/graph/getFollowers.js.map +1 -1
  258. package/dist/lexicon/types/app/bsky/graph/getFollows.js.map +1 -1
  259. package/dist/lexicon/types/app/bsky/graph/getKnownFollowers.js.map +1 -1
  260. package/dist/lexicon/types/app/bsky/graph/getList.js.map +1 -1
  261. package/dist/lexicon/types/app/bsky/graph/getListBlocks.js.map +1 -1
  262. package/dist/lexicon/types/app/bsky/graph/getListMutes.js.map +1 -1
  263. package/dist/lexicon/types/app/bsky/graph/getLists.js.map +1 -1
  264. package/dist/lexicon/types/app/bsky/graph/getListsWithMembership.js.map +1 -1
  265. package/dist/lexicon/types/app/bsky/graph/getMutes.js.map +1 -1
  266. package/dist/lexicon/types/app/bsky/graph/getRelationships.js.map +1 -1
  267. package/dist/lexicon/types/app/bsky/graph/getStarterPack.js.map +1 -1
  268. package/dist/lexicon/types/app/bsky/graph/getStarterPacks.js.map +1 -1
  269. package/dist/lexicon/types/app/bsky/graph/getStarterPacksWithMembership.js.map +1 -1
  270. package/dist/lexicon/types/app/bsky/graph/getSuggestedFollowsByActor.js.map +1 -1
  271. package/dist/lexicon/types/app/bsky/graph/list.js.map +1 -1
  272. package/dist/lexicon/types/app/bsky/graph/listblock.js.map +1 -1
  273. package/dist/lexicon/types/app/bsky/graph/listitem.js.map +1 -1
  274. package/dist/lexicon/types/app/bsky/graph/muteActor.js.map +1 -1
  275. package/dist/lexicon/types/app/bsky/graph/muteActorList.js.map +1 -1
  276. package/dist/lexicon/types/app/bsky/graph/muteThread.js.map +1 -1
  277. package/dist/lexicon/types/app/bsky/graph/searchStarterPacks.js.map +1 -1
  278. package/dist/lexicon/types/app/bsky/graph/starterpack.js.map +1 -1
  279. package/dist/lexicon/types/app/bsky/graph/unmuteActor.js.map +1 -1
  280. package/dist/lexicon/types/app/bsky/graph/unmuteActorList.js.map +1 -1
  281. package/dist/lexicon/types/app/bsky/graph/unmuteThread.js.map +1 -1
  282. package/dist/lexicon/types/app/bsky/graph/verification.js.map +1 -1
  283. package/dist/lexicon/types/app/bsky/labeler/defs.js.map +1 -1
  284. package/dist/lexicon/types/app/bsky/labeler/getServices.js.map +1 -1
  285. package/dist/lexicon/types/app/bsky/labeler/service.js.map +1 -1
  286. package/dist/lexicon/types/app/bsky/notification/declaration.js.map +1 -1
  287. package/dist/lexicon/types/app/bsky/notification/defs.js.map +1 -1
  288. package/dist/lexicon/types/app/bsky/notification/getPreferences.js.map +1 -1
  289. package/dist/lexicon/types/app/bsky/notification/getUnreadCount.js.map +1 -1
  290. package/dist/lexicon/types/app/bsky/notification/listActivitySubscriptions.js.map +1 -1
  291. package/dist/lexicon/types/app/bsky/notification/listNotifications.js.map +1 -1
  292. package/dist/lexicon/types/app/bsky/notification/putActivitySubscription.js.map +1 -1
  293. package/dist/lexicon/types/app/bsky/notification/putPreferences.js.map +1 -1
  294. package/dist/lexicon/types/app/bsky/notification/putPreferencesV2.js.map +1 -1
  295. package/dist/lexicon/types/app/bsky/notification/registerPush.js.map +1 -1
  296. package/dist/lexicon/types/app/bsky/notification/unregisterPush.js.map +1 -1
  297. package/dist/lexicon/types/app/bsky/notification/updateSeen.js.map +1 -1
  298. package/dist/lexicon/types/app/bsky/richtext/facet.js.map +1 -1
  299. package/dist/lexicon/types/app/bsky/unspecced/defs.js.map +1 -1
  300. package/dist/lexicon/types/app/bsky/unspecced/getAgeAssuranceState.js.map +1 -1
  301. package/dist/lexicon/types/app/bsky/unspecced/getConfig.js.map +1 -1
  302. package/dist/lexicon/types/app/bsky/unspecced/getOnboardingSuggestedStarterPacks.js.map +1 -1
  303. package/dist/lexicon/types/app/bsky/unspecced/getOnboardingSuggestedStarterPacksSkeleton.js.map +1 -1
  304. package/dist/lexicon/types/app/bsky/unspecced/getPopularFeedGenerators.js.map +1 -1
  305. package/dist/lexicon/types/app/bsky/unspecced/getPostThreadOtherV2.js.map +1 -1
  306. package/dist/lexicon/types/app/bsky/unspecced/getPostThreadV2.js.map +1 -1
  307. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedFeeds.js.map +1 -1
  308. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedFeedsSkeleton.js.map +1 -1
  309. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedStarterPacks.js.map +1 -1
  310. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedStarterPacksSkeleton.js.map +1 -1
  311. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedUsers.js.map +1 -1
  312. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedUsersSkeleton.js.map +1 -1
  313. package/dist/lexicon/types/app/bsky/unspecced/getSuggestionsSkeleton.js.map +1 -1
  314. package/dist/lexicon/types/app/bsky/unspecced/getTaggedSuggestions.js.map +1 -1
  315. package/dist/lexicon/types/app/bsky/unspecced/getTrendingTopics.js.map +1 -1
  316. package/dist/lexicon/types/app/bsky/unspecced/getTrends.js.map +1 -1
  317. package/dist/lexicon/types/app/bsky/unspecced/getTrendsSkeleton.js.map +1 -1
  318. package/dist/lexicon/types/app/bsky/unspecced/initAgeAssurance.js.map +1 -1
  319. package/dist/lexicon/types/app/bsky/unspecced/searchActorsSkeleton.js.map +1 -1
  320. package/dist/lexicon/types/app/bsky/unspecced/searchPostsSkeleton.js.map +1 -1
  321. package/dist/lexicon/types/app/bsky/unspecced/searchStarterPacksSkeleton.js.map +1 -1
  322. package/dist/lexicon/types/app/bsky/video/defs.js.map +1 -1
  323. package/dist/lexicon/types/app/bsky/video/getJobStatus.js.map +1 -1
  324. package/dist/lexicon/types/app/bsky/video/getUploadLimits.js.map +1 -1
  325. package/dist/lexicon/types/app/bsky/video/uploadVideo.js.map +1 -1
  326. package/dist/lexicon/types/chat/bsky/actor/declaration.js.map +1 -1
  327. package/dist/lexicon/types/chat/bsky/actor/defs.js.map +1 -1
  328. package/dist/lexicon/types/chat/bsky/actor/deleteAccount.js.map +1 -1
  329. package/dist/lexicon/types/chat/bsky/actor/exportAccountData.js.map +1 -1
  330. package/dist/lexicon/types/chat/bsky/convo/acceptConvo.js.map +1 -1
  331. package/dist/lexicon/types/chat/bsky/convo/addReaction.js.map +1 -1
  332. package/dist/lexicon/types/chat/bsky/convo/defs.js.map +1 -1
  333. package/dist/lexicon/types/chat/bsky/convo/deleteMessageForSelf.js.map +1 -1
  334. package/dist/lexicon/types/chat/bsky/convo/getConvo.js.map +1 -1
  335. package/dist/lexicon/types/chat/bsky/convo/getConvoAvailability.js.map +1 -1
  336. package/dist/lexicon/types/chat/bsky/convo/getConvoForMembers.js.map +1 -1
  337. package/dist/lexicon/types/chat/bsky/convo/getLog.js.map +1 -1
  338. package/dist/lexicon/types/chat/bsky/convo/getMessages.js.map +1 -1
  339. package/dist/lexicon/types/chat/bsky/convo/leaveConvo.js.map +1 -1
  340. package/dist/lexicon/types/chat/bsky/convo/listConvos.js.map +1 -1
  341. package/dist/lexicon/types/chat/bsky/convo/muteConvo.js.map +1 -1
  342. package/dist/lexicon/types/chat/bsky/convo/removeReaction.js.map +1 -1
  343. package/dist/lexicon/types/chat/bsky/convo/sendMessage.js.map +1 -1
  344. package/dist/lexicon/types/chat/bsky/convo/sendMessageBatch.js.map +1 -1
  345. package/dist/lexicon/types/chat/bsky/convo/unmuteConvo.js.map +1 -1
  346. package/dist/lexicon/types/chat/bsky/convo/updateAllRead.js.map +1 -1
  347. package/dist/lexicon/types/chat/bsky/convo/updateRead.js.map +1 -1
  348. package/dist/lexicon/types/chat/bsky/moderation/getActorMetadata.js.map +1 -1
  349. package/dist/lexicon/types/chat/bsky/moderation/getMessageContext.js.map +1 -1
  350. package/dist/lexicon/types/chat/bsky/moderation/updateActorAccess.js.map +1 -1
  351. package/dist/lexicon/types/com/atproto/admin/defs.js.map +1 -1
  352. package/dist/lexicon/types/com/atproto/admin/deleteAccount.js.map +1 -1
  353. package/dist/lexicon/types/com/atproto/admin/disableAccountInvites.js.map +1 -1
  354. package/dist/lexicon/types/com/atproto/admin/disableInviteCodes.js.map +1 -1
  355. package/dist/lexicon/types/com/atproto/admin/enableAccountInvites.js.map +1 -1
  356. package/dist/lexicon/types/com/atproto/admin/getAccountInfo.js.map +1 -1
  357. package/dist/lexicon/types/com/atproto/admin/getAccountInfos.js.map +1 -1
  358. package/dist/lexicon/types/com/atproto/admin/getInviteCodes.js.map +1 -1
  359. package/dist/lexicon/types/com/atproto/admin/getSubjectStatus.js.map +1 -1
  360. package/dist/lexicon/types/com/atproto/admin/searchAccounts.js.map +1 -1
  361. package/dist/lexicon/types/com/atproto/admin/sendEmail.js.map +1 -1
  362. package/dist/lexicon/types/com/atproto/admin/updateAccountEmail.js.map +1 -1
  363. package/dist/lexicon/types/com/atproto/admin/updateAccountHandle.js.map +1 -1
  364. package/dist/lexicon/types/com/atproto/admin/updateAccountPassword.js.map +1 -1
  365. package/dist/lexicon/types/com/atproto/admin/updateAccountSigningKey.js.map +1 -1
  366. package/dist/lexicon/types/com/atproto/admin/updateSubjectStatus.js.map +1 -1
  367. package/dist/lexicon/types/com/atproto/identity/defs.js.map +1 -1
  368. package/dist/lexicon/types/com/atproto/identity/getRecommendedDidCredentials.js.map +1 -1
  369. package/dist/lexicon/types/com/atproto/identity/refreshIdentity.js.map +1 -1
  370. package/dist/lexicon/types/com/atproto/identity/requestPlcOperationSignature.js.map +1 -1
  371. package/dist/lexicon/types/com/atproto/identity/resolveDid.js.map +1 -1
  372. package/dist/lexicon/types/com/atproto/identity/resolveHandle.js.map +1 -1
  373. package/dist/lexicon/types/com/atproto/identity/resolveIdentity.js.map +1 -1
  374. package/dist/lexicon/types/com/atproto/identity/signPlcOperation.js.map +1 -1
  375. package/dist/lexicon/types/com/atproto/identity/submitPlcOperation.js.map +1 -1
  376. package/dist/lexicon/types/com/atproto/identity/updateHandle.js.map +1 -1
  377. package/dist/lexicon/types/com/atproto/label/defs.js.map +1 -1
  378. package/dist/lexicon/types/com/atproto/label/queryLabels.js.map +1 -1
  379. package/dist/lexicon/types/com/atproto/label/subscribeLabels.js.map +1 -1
  380. package/dist/lexicon/types/com/atproto/lexicon/schema.js.map +1 -1
  381. package/dist/lexicon/types/com/atproto/moderation/createReport.js.map +1 -1
  382. package/dist/lexicon/types/com/atproto/moderation/defs.d.ts +2 -2
  383. package/dist/lexicon/types/com/atproto/moderation/defs.d.ts.map +1 -1
  384. package/dist/lexicon/types/com/atproto/moderation/defs.js +1 -1
  385. package/dist/lexicon/types/com/atproto/moderation/defs.js.map +1 -1
  386. package/dist/lexicon/types/com/atproto/repo/applyWrites.js.map +1 -1
  387. package/dist/lexicon/types/com/atproto/repo/createRecord.js.map +1 -1
  388. package/dist/lexicon/types/com/atproto/repo/defs.js.map +1 -1
  389. package/dist/lexicon/types/com/atproto/repo/deleteRecord.js.map +1 -1
  390. package/dist/lexicon/types/com/atproto/repo/describeRepo.js.map +1 -1
  391. package/dist/lexicon/types/com/atproto/repo/getRecord.js.map +1 -1
  392. package/dist/lexicon/types/com/atproto/repo/importRepo.js.map +1 -1
  393. package/dist/lexicon/types/com/atproto/repo/listMissingBlobs.js.map +1 -1
  394. package/dist/lexicon/types/com/atproto/repo/listRecords.js.map +1 -1
  395. package/dist/lexicon/types/com/atproto/repo/putRecord.js.map +1 -1
  396. package/dist/lexicon/types/com/atproto/repo/strongRef.js.map +1 -1
  397. package/dist/lexicon/types/com/atproto/repo/uploadBlob.js.map +1 -1
  398. package/dist/lexicon/types/com/atproto/server/activateAccount.js.map +1 -1
  399. package/dist/lexicon/types/com/atproto/server/checkAccountStatus.js.map +1 -1
  400. package/dist/lexicon/types/com/atproto/server/confirmEmail.js.map +1 -1
  401. package/dist/lexicon/types/com/atproto/server/createAccount.js.map +1 -1
  402. package/dist/lexicon/types/com/atproto/server/createAppPassword.js.map +1 -1
  403. package/dist/lexicon/types/com/atproto/server/createInviteCode.js.map +1 -1
  404. package/dist/lexicon/types/com/atproto/server/createInviteCodes.js.map +1 -1
  405. package/dist/lexicon/types/com/atproto/server/createSession.js.map +1 -1
  406. package/dist/lexicon/types/com/atproto/server/deactivateAccount.js.map +1 -1
  407. package/dist/lexicon/types/com/atproto/server/defs.js.map +1 -1
  408. package/dist/lexicon/types/com/atproto/server/deleteAccount.js.map +1 -1
  409. package/dist/lexicon/types/com/atproto/server/deleteSession.js.map +1 -1
  410. package/dist/lexicon/types/com/atproto/server/describeServer.js.map +1 -1
  411. package/dist/lexicon/types/com/atproto/server/getAccountInviteCodes.js.map +1 -1
  412. package/dist/lexicon/types/com/atproto/server/getServiceAuth.js.map +1 -1
  413. package/dist/lexicon/types/com/atproto/server/getSession.js.map +1 -1
  414. package/dist/lexicon/types/com/atproto/server/listAppPasswords.js.map +1 -1
  415. package/dist/lexicon/types/com/atproto/server/refreshSession.js.map +1 -1
  416. package/dist/lexicon/types/com/atproto/server/requestAccountDelete.js.map +1 -1
  417. package/dist/lexicon/types/com/atproto/server/requestEmailConfirmation.js.map +1 -1
  418. package/dist/lexicon/types/com/atproto/server/requestEmailUpdate.js.map +1 -1
  419. package/dist/lexicon/types/com/atproto/server/requestPasswordReset.js.map +1 -1
  420. package/dist/lexicon/types/com/atproto/server/reserveSigningKey.js.map +1 -1
  421. package/dist/lexicon/types/com/atproto/server/resetPassword.js.map +1 -1
  422. package/dist/lexicon/types/com/atproto/server/revokeAppPassword.js.map +1 -1
  423. package/dist/lexicon/types/com/atproto/server/updateEmail.js.map +1 -1
  424. package/dist/lexicon/types/com/atproto/sync/defs.js.map +1 -1
  425. package/dist/lexicon/types/com/atproto/sync/getBlob.js.map +1 -1
  426. package/dist/lexicon/types/com/atproto/sync/getBlocks.js.map +1 -1
  427. package/dist/lexicon/types/com/atproto/sync/getCheckout.js.map +1 -1
  428. package/dist/lexicon/types/com/atproto/sync/getHead.js.map +1 -1
  429. package/dist/lexicon/types/com/atproto/sync/getHostStatus.js.map +1 -1
  430. package/dist/lexicon/types/com/atproto/sync/getLatestCommit.js.map +1 -1
  431. package/dist/lexicon/types/com/atproto/sync/getRecord.js.map +1 -1
  432. package/dist/lexicon/types/com/atproto/sync/getRepo.js.map +1 -1
  433. package/dist/lexicon/types/com/atproto/sync/getRepoStatus.js.map +1 -1
  434. package/dist/lexicon/types/com/atproto/sync/listBlobs.js.map +1 -1
  435. package/dist/lexicon/types/com/atproto/sync/listHosts.js.map +1 -1
  436. package/dist/lexicon/types/com/atproto/sync/listRepos.js.map +1 -1
  437. package/dist/lexicon/types/com/atproto/sync/listReposByCollection.js.map +1 -1
  438. package/dist/lexicon/types/com/atproto/sync/notifyOfUpdate.js.map +1 -1
  439. package/dist/lexicon/types/com/atproto/sync/requestCrawl.js.map +1 -1
  440. package/dist/lexicon/types/com/atproto/sync/subscribeRepos.js.map +1 -1
  441. package/dist/lexicon/types/com/atproto/temp/addReservedHandle.js.map +1 -1
  442. package/dist/lexicon/types/com/atproto/temp/checkHandleAvailability.js.map +1 -1
  443. package/dist/lexicon/types/com/atproto/temp/checkSignupQueue.js.map +1 -1
  444. package/dist/lexicon/types/com/atproto/temp/dereferenceScope.js.map +1 -1
  445. package/dist/lexicon/types/com/atproto/temp/fetchLabels.js.map +1 -1
  446. package/dist/lexicon/types/com/atproto/temp/requestPhoneVerification.js.map +1 -1
  447. package/dist/lexicon/types/com/atproto/temp/revokeAccountCredentials.js.map +1 -1
  448. package/dist/lexicon/types/tools/ozone/communication/createTemplate.js.map +1 -1
  449. package/dist/lexicon/types/tools/ozone/communication/defs.js.map +1 -1
  450. package/dist/lexicon/types/tools/ozone/communication/deleteTemplate.js.map +1 -1
  451. package/dist/lexicon/types/tools/ozone/communication/listTemplates.js.map +1 -1
  452. package/dist/lexicon/types/tools/ozone/communication/updateTemplate.js.map +1 -1
  453. package/dist/lexicon/types/tools/ozone/hosting/getAccountHistory.js.map +1 -1
  454. package/dist/lexicon/types/tools/ozone/moderation/cancelScheduledActions.d.ts +46 -0
  455. package/dist/lexicon/types/tools/ozone/moderation/cancelScheduledActions.d.ts.map +1 -0
  456. package/dist/lexicon/types/tools/ozone/moderation/cancelScheduledActions.js +25 -0
  457. package/dist/lexicon/types/tools/ozone/moderation/cancelScheduledActions.js.map +1 -0
  458. package/dist/lexicon/types/tools/ozone/moderation/defs.d.ts +57 -2
  459. package/dist/lexicon/types/tools/ozone/moderation/defs.d.ts.map +1 -1
  460. package/dist/lexicon/types/tools/ozone/moderation/defs.js +27 -0
  461. package/dist/lexicon/types/tools/ozone/moderation/defs.js.map +1 -1
  462. package/dist/lexicon/types/tools/ozone/moderation/emitEvent.d.ts +1 -1
  463. package/dist/lexicon/types/tools/ozone/moderation/emitEvent.d.ts.map +1 -1
  464. package/dist/lexicon/types/tools/ozone/moderation/emitEvent.js.map +1 -1
  465. package/dist/lexicon/types/tools/ozone/moderation/getAccountTimeline.d.ts +1 -1
  466. package/dist/lexicon/types/tools/ozone/moderation/getAccountTimeline.d.ts.map +1 -1
  467. package/dist/lexicon/types/tools/ozone/moderation/getAccountTimeline.js.map +1 -1
  468. package/dist/lexicon/types/tools/ozone/moderation/getEvent.js.map +1 -1
  469. package/dist/lexicon/types/tools/ozone/moderation/getRecord.js.map +1 -1
  470. package/dist/lexicon/types/tools/ozone/moderation/getRecords.js.map +1 -1
  471. package/dist/lexicon/types/tools/ozone/moderation/getRepo.js.map +1 -1
  472. package/dist/lexicon/types/tools/ozone/moderation/getReporterStats.js.map +1 -1
  473. package/dist/lexicon/types/tools/ozone/moderation/getRepos.js.map +1 -1
  474. package/dist/lexicon/types/tools/ozone/moderation/getSubjects.js.map +1 -1
  475. package/dist/lexicon/types/tools/ozone/moderation/listScheduledActions.d.ts +38 -0
  476. package/dist/lexicon/types/tools/ozone/moderation/listScheduledActions.d.ts.map +1 -0
  477. package/dist/lexicon/types/tools/ozone/moderation/listScheduledActions.js +7 -0
  478. package/dist/lexicon/types/tools/ozone/moderation/listScheduledActions.js.map +1 -0
  479. package/dist/lexicon/types/tools/ozone/moderation/queryEvents.js.map +1 -1
  480. package/dist/lexicon/types/tools/ozone/moderation/queryStatuses.js.map +1 -1
  481. package/dist/lexicon/types/tools/ozone/moderation/scheduleAction.d.ts +75 -0
  482. package/dist/lexicon/types/tools/ozone/moderation/scheduleAction.d.ts.map +1 -0
  483. package/dist/lexicon/types/tools/ozone/moderation/scheduleAction.js +43 -0
  484. package/dist/lexicon/types/tools/ozone/moderation/scheduleAction.js.map +1 -0
  485. package/dist/lexicon/types/tools/ozone/moderation/searchRepos.js.map +1 -1
  486. package/dist/lexicon/types/tools/ozone/report/defs.d.ts +17 -27
  487. package/dist/lexicon/types/tools/ozone/report/defs.d.ts.map +1 -1
  488. package/dist/lexicon/types/tools/ozone/report/defs.js +17 -27
  489. package/dist/lexicon/types/tools/ozone/report/defs.js.map +1 -1
  490. package/dist/lexicon/types/tools/ozone/safelink/addRule.js.map +1 -1
  491. package/dist/lexicon/types/tools/ozone/safelink/defs.js.map +1 -1
  492. package/dist/lexicon/types/tools/ozone/safelink/queryEvents.js.map +1 -1
  493. package/dist/lexicon/types/tools/ozone/safelink/queryRules.js.map +1 -1
  494. package/dist/lexicon/types/tools/ozone/safelink/removeRule.js.map +1 -1
  495. package/dist/lexicon/types/tools/ozone/safelink/updateRule.js.map +1 -1
  496. package/dist/lexicon/types/tools/ozone/server/getConfig.js.map +1 -1
  497. package/dist/lexicon/types/tools/ozone/set/addValues.js.map +1 -1
  498. package/dist/lexicon/types/tools/ozone/set/defs.js.map +1 -1
  499. package/dist/lexicon/types/tools/ozone/set/deleteSet.js.map +1 -1
  500. package/dist/lexicon/types/tools/ozone/set/deleteValues.js.map +1 -1
  501. package/dist/lexicon/types/tools/ozone/set/getValues.js.map +1 -1
  502. package/dist/lexicon/types/tools/ozone/set/querySets.js.map +1 -1
  503. package/dist/lexicon/types/tools/ozone/set/upsertSet.js.map +1 -1
  504. package/dist/lexicon/types/tools/ozone/setting/defs.js.map +1 -1
  505. package/dist/lexicon/types/tools/ozone/setting/listOptions.js.map +1 -1
  506. package/dist/lexicon/types/tools/ozone/setting/removeOptions.js.map +1 -1
  507. package/dist/lexicon/types/tools/ozone/setting/upsertOption.js.map +1 -1
  508. package/dist/lexicon/types/tools/ozone/signature/defs.js.map +1 -1
  509. package/dist/lexicon/types/tools/ozone/signature/findCorrelation.js.map +1 -1
  510. package/dist/lexicon/types/tools/ozone/signature/findRelatedAccounts.js.map +1 -1
  511. package/dist/lexicon/types/tools/ozone/signature/searchAccounts.js.map +1 -1
  512. package/dist/lexicon/types/tools/ozone/team/addMember.js.map +1 -1
  513. package/dist/lexicon/types/tools/ozone/team/defs.js.map +1 -1
  514. package/dist/lexicon/types/tools/ozone/team/deleteMember.js.map +1 -1
  515. package/dist/lexicon/types/tools/ozone/team/listMembers.js.map +1 -1
  516. package/dist/lexicon/types/tools/ozone/team/updateMember.js.map +1 -1
  517. package/dist/lexicon/types/tools/ozone/verification/defs.js.map +1 -1
  518. package/dist/lexicon/types/tools/ozone/verification/grantVerifications.js.map +1 -1
  519. package/dist/lexicon/types/tools/ozone/verification/listVerifications.js.map +1 -1
  520. package/dist/lexicon/types/tools/ozone/verification/revokeVerifications.js.map +1 -1
  521. package/dist/lexicon/util.js.map +1 -1
  522. package/dist/logger.js.map +1 -1
  523. package/dist/mailer/index.js.map +1 -1
  524. package/dist/mailer/moderation.js.map +1 -1
  525. package/dist/mailer/templates.js.map +1 -1
  526. package/dist/pipethrough.js +3 -0
  527. package/dist/pipethrough.js.map +1 -1
  528. package/dist/read-after-write/index.js.map +1 -1
  529. package/dist/read-after-write/types.js.map +1 -1
  530. package/dist/read-after-write/util.js.map +1 -1
  531. package/dist/read-after-write/viewer.js.map +1 -1
  532. package/dist/redis.js.map +1 -1
  533. package/dist/repo/index.js.map +1 -1
  534. package/dist/repo/prepare.js.map +1 -1
  535. package/dist/repo/types.js.map +1 -1
  536. package/dist/scripts/index.js.map +1 -1
  537. package/dist/scripts/publish-identity.js.map +1 -1
  538. package/dist/scripts/rebuild-repo.js.map +1 -1
  539. package/dist/scripts/rotate-keys.js.map +1 -1
  540. package/dist/scripts/sequencer-recovery/index.js.map +1 -1
  541. package/dist/scripts/sequencer-recovery/recoverer.js.map +1 -1
  542. package/dist/scripts/sequencer-recovery/recovery-db.js.map +1 -1
  543. package/dist/scripts/sequencer-recovery/repair-repos.js.map +1 -1
  544. package/dist/scripts/sequencer-recovery/user-queues.js.map +1 -1
  545. package/dist/scripts/util.js.map +1 -1
  546. package/dist/sequencer/db/index.js.map +1 -1
  547. package/dist/sequencer/db/migrations/001-init.js.map +1 -1
  548. package/dist/sequencer/db/migrations/index.js.map +1 -1
  549. package/dist/sequencer/db/schema.js.map +1 -1
  550. package/dist/sequencer/events.js.map +1 -1
  551. package/dist/sequencer/index.js.map +1 -1
  552. package/dist/sequencer/outbox.js.map +1 -1
  553. package/dist/sequencer/sequencer.js.map +1 -1
  554. package/dist/util/compression.js.map +1 -1
  555. package/dist/util/debug.js.map +1 -1
  556. package/dist/util/http.js.map +1 -1
  557. package/dist/util/params.js.map +1 -1
  558. package/dist/util/types.js.map +1 -1
  559. package/dist/well-known.js.map +1 -1
  560. package/package.json +8 -8
  561. package/src/lexicon/index.ts +51 -25
  562. package/src/lexicon/lexicons.ts +467 -69
  563. package/src/lexicon/types/com/atproto/moderation/defs.ts +10 -15
  564. package/src/lexicon/types/tools/ozone/moderation/cancelScheduledActions.ts +79 -0
  565. package/src/lexicon/types/tools/ozone/moderation/defs.ts +88 -0
  566. package/src/lexicon/types/tools/ozone/moderation/emitEvent.ts +2 -0
  567. package/src/lexicon/types/tools/ozone/moderation/getAccountTimeline.ts +2 -0
  568. package/src/lexicon/types/tools/ozone/moderation/listScheduledActions.ts +57 -0
  569. package/src/lexicon/types/tools/ozone/moderation/scheduleAction.ts +123 -0
  570. package/src/lexicon/types/tools/ozone/report/defs.ts +25 -40
  571. package/src/pipethrough.ts +3 -0
  572. package/tsconfig.build.tsbuildinfo +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"upsertOption.js","sourceRoot":"","sources":["../../../../../../src/lexicon/types/tools/ozone/setting/upsertOption.ts"],"names":[],"mappings":";;AAKA,mDAA4D;AAC5D,2CAIyB;AAGzB,MAAM,QAAQ,GAAG,eAAS,EACxB,QAAQ,GAAG,mBAAS,CAAA;AACtB,MAAM,EAAE,GAAG,kCAAkC,CAAA"}
1
+ {"version":3,"file":"upsertOption.js","sourceRoot":"","sources":["../../../../../../src/lexicon/types/tools/ozone/setting/upsertOption.ts"],"names":[],"mappings":";;AAKA,mDAA4D;AAC5D,2CAIyB;AAGzB,MAAM,QAAQ,GAAG,eAAS,EACxB,QAAQ,GAAG,mBAAS,CAAA;AACtB,MAAM,EAAE,GAAG,kCAAkC,CAAA","sourcesContent":["/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { type ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { CID } from 'multiformats/cid'\nimport { validate as _validate } from '../../../../lexicons'\nimport {\n type $Typed,\n is$typed as _is$typed,\n type OmitKey,\n} from '../../../../util'\nimport type * as ToolsOzoneSettingDefs from './defs.js'\n\nconst is$typed = _is$typed,\n validate = _validate\nconst id = 'tools.ozone.setting.upsertOption'\n\nexport type QueryParams = {}\n\nexport interface InputSchema {\n key: string\n scope: 'instance' | 'personal' | (string & {})\n value: { [_ in string]: unknown }\n description?: string\n managerRole?:\n | 'tools.ozone.team.defs#roleModerator'\n | 'tools.ozone.team.defs#roleTriage'\n | 'tools.ozone.team.defs#roleVerifier'\n | 'tools.ozone.team.defs#roleAdmin'\n | (string & {})\n}\n\nexport interface OutputSchema {\n option: ToolsOzoneSettingDefs.Option\n}\n\nexport interface HandlerInput {\n encoding: 'application/json'\n body: InputSchema\n}\n\nexport interface HandlerSuccess {\n encoding: 'application/json'\n body: OutputSchema\n headers?: { [key: string]: string }\n}\n\nexport interface HandlerError {\n status: number\n message?: string\n}\n\nexport type HandlerOutput = HandlerError | HandlerSuccess\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"defs.js","sourceRoot":"","sources":["../../../../../../src/lexicon/types/tools/ozone/signature/defs.ts"],"names":[],"mappings":";;AAwBA,kCAEC;AAED,8CAEC;AAzBD,mDAA4D;AAC5D,2CAIyB;AAEzB,MAAM,QAAQ,GAAG,eAAS,EACxB,QAAQ,GAAG,mBAAS,CAAA;AACtB,MAAM,EAAE,GAAG,4BAA4B,CAAA;AAQvC,MAAM,aAAa,GAAG,WAAW,CAAA;AAEjC,SAAgB,WAAW,CAAI,CAAI;IACjC,OAAO,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,aAAa,CAAC,CAAA;AACvC,CAAC;AAED,SAAgB,iBAAiB,CAAI,CAAI;IACvC,OAAO,QAAQ,CAAgB,CAAC,EAAE,EAAE,EAAE,aAAa,CAAC,CAAA;AACtD,CAAC"}
1
+ {"version":3,"file":"defs.js","sourceRoot":"","sources":["../../../../../../src/lexicon/types/tools/ozone/signature/defs.ts"],"names":[],"mappings":";;AAwBA,kCAEC;AAED,8CAEC;AAzBD,mDAA4D;AAC5D,2CAIyB;AAEzB,MAAM,QAAQ,GAAG,eAAS,EACxB,QAAQ,GAAG,mBAAS,CAAA;AACtB,MAAM,EAAE,GAAG,4BAA4B,CAAA;AAQvC,MAAM,aAAa,GAAG,WAAW,CAAA;AAEjC,SAAgB,WAAW,CAAI,CAAI;IACjC,OAAO,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,aAAa,CAAC,CAAA;AACvC,CAAC;AAED,SAAgB,iBAAiB,CAAI,CAAI;IACvC,OAAO,QAAQ,CAAgB,CAAC,EAAE,EAAE,EAAE,aAAa,CAAC,CAAA;AACtD,CAAC","sourcesContent":["/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { type ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { CID } from 'multiformats/cid'\nimport { validate as _validate } from '../../../../lexicons'\nimport {\n type $Typed,\n is$typed as _is$typed,\n type OmitKey,\n} from '../../../../util'\n\nconst is$typed = _is$typed,\n validate = _validate\nconst id = 'tools.ozone.signature.defs'\n\nexport interface SigDetail {\n $type?: 'tools.ozone.signature.defs#sigDetail'\n property: string\n value: string\n}\n\nconst hashSigDetail = 'sigDetail'\n\nexport function isSigDetail<V>(v: V) {\n return is$typed(v, id, hashSigDetail)\n}\n\nexport function validateSigDetail<V>(v: V) {\n return validate<SigDetail & V>(v, id, hashSigDetail)\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"findCorrelation.js","sourceRoot":"","sources":["../../../../../../src/lexicon/types/tools/ozone/signature/findCorrelation.ts"],"names":[],"mappings":";;AAKA,mDAA4D;AAC5D,2CAIyB;AAGzB,MAAM,QAAQ,GAAG,eAAS,EACxB,QAAQ,GAAG,mBAAS,CAAA;AACtB,MAAM,EAAE,GAAG,uCAAuC,CAAA"}
1
+ {"version":3,"file":"findCorrelation.js","sourceRoot":"","sources":["../../../../../../src/lexicon/types/tools/ozone/signature/findCorrelation.ts"],"names":[],"mappings":";;AAKA,mDAA4D;AAC5D,2CAIyB;AAGzB,MAAM,QAAQ,GAAG,eAAS,EACxB,QAAQ,GAAG,mBAAS,CAAA;AACtB,MAAM,EAAE,GAAG,uCAAuC,CAAA","sourcesContent":["/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { type ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { CID } from 'multiformats/cid'\nimport { validate as _validate } from '../../../../lexicons'\nimport {\n type $Typed,\n is$typed as _is$typed,\n type OmitKey,\n} from '../../../../util'\nimport type * as ToolsOzoneSignatureDefs from './defs.js'\n\nconst is$typed = _is$typed,\n validate = _validate\nconst id = 'tools.ozone.signature.findCorrelation'\n\nexport type QueryParams = {\n dids: string[]\n}\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n details: ToolsOzoneSignatureDefs.SigDetail[]\n}\n\nexport type HandlerInput = void\n\nexport interface HandlerSuccess {\n encoding: 'application/json'\n body: OutputSchema\n headers?: { [key: string]: string }\n}\n\nexport interface HandlerError {\n status: number\n message?: string\n}\n\nexport type HandlerOutput = HandlerError | HandlerSuccess\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"findRelatedAccounts.js","sourceRoot":"","sources":["../../../../../../src/lexicon/types/tools/ozone/signature/findRelatedAccounts.ts"],"names":[],"mappings":";;AAqDA,4CAEC;AAED,wDAEC;AAtDD,mDAA4D;AAC5D,2CAIyB;AAIzB,MAAM,QAAQ,GAAG,eAAS,EACxB,QAAQ,GAAG,mBAAS,CAAA;AACtB,MAAM,EAAE,GAAG,2CAA2C,CAAA;AAmCtD,MAAM,kBAAkB,GAAG,gBAAgB,CAAA;AAE3C,SAAgB,gBAAgB,CAAI,CAAI;IACtC,OAAO,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,kBAAkB,CAAC,CAAA;AAC5C,CAAC;AAED,SAAgB,sBAAsB,CAAI,CAAI;IAC5C,OAAO,QAAQ,CAAqB,CAAC,EAAE,EAAE,EAAE,kBAAkB,CAAC,CAAA;AAChE,CAAC"}
1
+ {"version":3,"file":"findRelatedAccounts.js","sourceRoot":"","sources":["../../../../../../src/lexicon/types/tools/ozone/signature/findRelatedAccounts.ts"],"names":[],"mappings":";;AAqDA,4CAEC;AAED,wDAEC;AAtDD,mDAA4D;AAC5D,2CAIyB;AAIzB,MAAM,QAAQ,GAAG,eAAS,EACxB,QAAQ,GAAG,mBAAS,CAAA;AACtB,MAAM,EAAE,GAAG,2CAA2C,CAAA;AAmCtD,MAAM,kBAAkB,GAAG,gBAAgB,CAAA;AAE3C,SAAgB,gBAAgB,CAAI,CAAI;IACtC,OAAO,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,kBAAkB,CAAC,CAAA;AAC5C,CAAC;AAED,SAAgB,sBAAsB,CAAI,CAAI;IAC5C,OAAO,QAAQ,CAAqB,CAAC,EAAE,EAAE,EAAE,kBAAkB,CAAC,CAAA;AAChE,CAAC","sourcesContent":["/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { type ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { CID } from 'multiformats/cid'\nimport { validate as _validate } from '../../../../lexicons'\nimport {\n type $Typed,\n is$typed as _is$typed,\n type OmitKey,\n} from '../../../../util'\nimport type * as ComAtprotoAdminDefs from '../../../com/atproto/admin/defs.js'\nimport type * as ToolsOzoneSignatureDefs from './defs.js'\n\nconst is$typed = _is$typed,\n validate = _validate\nconst id = 'tools.ozone.signature.findRelatedAccounts'\n\nexport type QueryParams = {\n did: string\n cursor?: string\n limit: number\n}\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n accounts: RelatedAccount[]\n}\n\nexport type HandlerInput = void\n\nexport interface HandlerSuccess {\n encoding: 'application/json'\n body: OutputSchema\n headers?: { [key: string]: string }\n}\n\nexport interface HandlerError {\n status: number\n message?: string\n}\n\nexport type HandlerOutput = HandlerError | HandlerSuccess\n\nexport interface RelatedAccount {\n $type?: 'tools.ozone.signature.findRelatedAccounts#relatedAccount'\n account: ComAtprotoAdminDefs.AccountView\n similarities?: ToolsOzoneSignatureDefs.SigDetail[]\n}\n\nconst hashRelatedAccount = 'relatedAccount'\n\nexport function isRelatedAccount<V>(v: V) {\n return is$typed(v, id, hashRelatedAccount)\n}\n\nexport function validateRelatedAccount<V>(v: V) {\n return validate<RelatedAccount & V>(v, id, hashRelatedAccount)\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"searchAccounts.js","sourceRoot":"","sources":["../../../../../../src/lexicon/types/tools/ozone/signature/searchAccounts.ts"],"names":[],"mappings":";;AAKA,mDAA4D;AAC5D,2CAIyB;AAGzB,MAAM,QAAQ,GAAG,eAAS,EACxB,QAAQ,GAAG,mBAAS,CAAA;AACtB,MAAM,EAAE,GAAG,sCAAsC,CAAA"}
1
+ {"version":3,"file":"searchAccounts.js","sourceRoot":"","sources":["../../../../../../src/lexicon/types/tools/ozone/signature/searchAccounts.ts"],"names":[],"mappings":";;AAKA,mDAA4D;AAC5D,2CAIyB;AAGzB,MAAM,QAAQ,GAAG,eAAS,EACxB,QAAQ,GAAG,mBAAS,CAAA;AACtB,MAAM,EAAE,GAAG,sCAAsC,CAAA","sourcesContent":["/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { type ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { CID } from 'multiformats/cid'\nimport { validate as _validate } from '../../../../lexicons'\nimport {\n type $Typed,\n is$typed as _is$typed,\n type OmitKey,\n} from '../../../../util'\nimport type * as ComAtprotoAdminDefs from '../../../com/atproto/admin/defs.js'\n\nconst is$typed = _is$typed,\n validate = _validate\nconst id = 'tools.ozone.signature.searchAccounts'\n\nexport type QueryParams = {\n values: string[]\n cursor?: string\n limit: number\n}\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n accounts: ComAtprotoAdminDefs.AccountView[]\n}\n\nexport type HandlerInput = void\n\nexport interface HandlerSuccess {\n encoding: 'application/json'\n body: OutputSchema\n headers?: { [key: string]: string }\n}\n\nexport interface HandlerError {\n status: number\n message?: string\n}\n\nexport type HandlerOutput = HandlerError | HandlerSuccess\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"addMember.js","sourceRoot":"","sources":["../../../../../../src/lexicon/types/tools/ozone/team/addMember.ts"],"names":[],"mappings":";;AAKA,mDAA4D;AAC5D,2CAIyB;AAGzB,MAAM,QAAQ,GAAG,eAAS,EACxB,QAAQ,GAAG,mBAAS,CAAA;AACtB,MAAM,EAAE,GAAG,4BAA4B,CAAA"}
1
+ {"version":3,"file":"addMember.js","sourceRoot":"","sources":["../../../../../../src/lexicon/types/tools/ozone/team/addMember.ts"],"names":[],"mappings":";;AAKA,mDAA4D;AAC5D,2CAIyB;AAGzB,MAAM,QAAQ,GAAG,eAAS,EACxB,QAAQ,GAAG,mBAAS,CAAA;AACtB,MAAM,EAAE,GAAG,4BAA4B,CAAA","sourcesContent":["/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { type ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { CID } from 'multiformats/cid'\nimport { validate as _validate } from '../../../../lexicons'\nimport {\n type $Typed,\n is$typed as _is$typed,\n type OmitKey,\n} from '../../../../util'\nimport type * as ToolsOzoneTeamDefs from './defs.js'\n\nconst is$typed = _is$typed,\n validate = _validate\nconst id = 'tools.ozone.team.addMember'\n\nexport type QueryParams = {}\n\nexport interface InputSchema {\n did: string\n role:\n | 'tools.ozone.team.defs#roleAdmin'\n | 'tools.ozone.team.defs#roleModerator'\n | 'tools.ozone.team.defs#roleVerifier'\n | 'tools.ozone.team.defs#roleTriage'\n | (string & {})\n}\n\nexport type OutputSchema = ToolsOzoneTeamDefs.Member\n\nexport interface HandlerInput {\n encoding: 'application/json'\n body: InputSchema\n}\n\nexport interface HandlerSuccess {\n encoding: 'application/json'\n body: OutputSchema\n headers?: { [key: string]: string }\n}\n\nexport interface HandlerError {\n status: number\n message?: string\n error?: 'MemberAlreadyExists'\n}\n\nexport type HandlerOutput = HandlerError | HandlerSuccess\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"defs.js","sourceRoot":"","sources":["../../../../../../src/lexicon/types/tools/ozone/team/defs.ts"],"names":[],"mappings":";;;AAmCA,4BAEC;AAED,wCAEC;AApCD,mDAA4D;AAC5D,2CAIyB;AAGzB,MAAM,QAAQ,GAAG,eAAS,EACxB,QAAQ,GAAG,mBAAS,CAAA;AACtB,MAAM,EAAE,GAAG,uBAAuB,CAAA;AAkBlC,MAAM,UAAU,GAAG,QAAQ,CAAA;AAE3B,SAAgB,QAAQ,CAAI,CAAI;IAC9B,OAAO,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC,CAAA;AACpC,CAAC;AAED,SAAgB,cAAc,CAAI,CAAI;IACpC,OAAO,QAAQ,CAAa,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC,CAAA;AAChD,CAAC;AAED,oEAAoE;AACvD,QAAA,SAAS,GAAG,GAAG,EAAE,YAAY,CAAA;AAC1C,gDAAgD;AACnC,QAAA,aAAa,GAAG,GAAG,EAAE,gBAAgB,CAAA;AAClD,yEAAyE;AAC5D,QAAA,UAAU,GAAG,GAAG,EAAE,aAAa,CAAA;AAC5C,0DAA0D;AAC7C,QAAA,YAAY,GAAG,GAAG,EAAE,eAAe,CAAA"}
1
+ {"version":3,"file":"defs.js","sourceRoot":"","sources":["../../../../../../src/lexicon/types/tools/ozone/team/defs.ts"],"names":[],"mappings":";;;AAmCA,4BAEC;AAED,wCAEC;AApCD,mDAA4D;AAC5D,2CAIyB;AAGzB,MAAM,QAAQ,GAAG,eAAS,EACxB,QAAQ,GAAG,mBAAS,CAAA;AACtB,MAAM,EAAE,GAAG,uBAAuB,CAAA;AAkBlC,MAAM,UAAU,GAAG,QAAQ,CAAA;AAE3B,SAAgB,QAAQ,CAAI,CAAI;IAC9B,OAAO,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC,CAAA;AACpC,CAAC;AAED,SAAgB,cAAc,CAAI,CAAI;IACpC,OAAO,QAAQ,CAAa,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC,CAAA;AAChD,CAAC;AAED,oEAAoE;AACvD,QAAA,SAAS,GAAG,GAAG,EAAE,YAAY,CAAA;AAC1C,gDAAgD;AACnC,QAAA,aAAa,GAAG,GAAG,EAAE,gBAAgB,CAAA;AAClD,yEAAyE;AAC5D,QAAA,UAAU,GAAG,GAAG,EAAE,aAAa,CAAA;AAC5C,0DAA0D;AAC7C,QAAA,YAAY,GAAG,GAAG,EAAE,eAAe,CAAA","sourcesContent":["/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { type ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { CID } from 'multiformats/cid'\nimport { validate as _validate } from '../../../../lexicons'\nimport {\n type $Typed,\n is$typed as _is$typed,\n type OmitKey,\n} from '../../../../util'\nimport type * as AppBskyActorDefs from '../../../app/bsky/actor/defs.js'\n\nconst is$typed = _is$typed,\n validate = _validate\nconst id = 'tools.ozone.team.defs'\n\nexport interface Member {\n $type?: 'tools.ozone.team.defs#member'\n did: string\n disabled?: boolean\n profile?: AppBskyActorDefs.ProfileViewDetailed\n createdAt?: string\n updatedAt?: string\n lastUpdatedBy?: string\n role:\n | 'lex:tools.ozone.team.defs#roleAdmin'\n | 'lex:tools.ozone.team.defs#roleModerator'\n | 'lex:tools.ozone.team.defs#roleTriage'\n | 'lex:tools.ozone.team.defs#roleVerifier'\n | (string & {})\n}\n\nconst hashMember = 'member'\n\nexport function isMember<V>(v: V) {\n return is$typed(v, id, hashMember)\n}\n\nexport function validateMember<V>(v: V) {\n return validate<Member & V>(v, id, hashMember)\n}\n\n/** Admin role. Highest level of access, can perform all actions. */\nexport const ROLEADMIN = `${id}#roleAdmin`\n/** Moderator role. Can perform most actions. */\nexport const ROLEMODERATOR = `${id}#roleModerator`\n/** Triage role. Mostly intended for monitoring and escalating issues. */\nexport const ROLETRIAGE = `${id}#roleTriage`\n/** Verifier role. Only allowed to issue verifications. */\nexport const ROLEVERIFIER = `${id}#roleVerifier`\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"deleteMember.js","sourceRoot":"","sources":["../../../../../../src/lexicon/types/tools/ozone/team/deleteMember.ts"],"names":[],"mappings":";;AAKA,mDAA4D;AAC5D,2CAIyB;AAEzB,MAAM,QAAQ,GAAG,eAAS,EACxB,QAAQ,GAAG,mBAAS,CAAA;AACtB,MAAM,EAAE,GAAG,+BAA+B,CAAA"}
1
+ {"version":3,"file":"deleteMember.js","sourceRoot":"","sources":["../../../../../../src/lexicon/types/tools/ozone/team/deleteMember.ts"],"names":[],"mappings":";;AAKA,mDAA4D;AAC5D,2CAIyB;AAEzB,MAAM,QAAQ,GAAG,eAAS,EACxB,QAAQ,GAAG,mBAAS,CAAA;AACtB,MAAM,EAAE,GAAG,+BAA+B,CAAA","sourcesContent":["/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { type ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { CID } from 'multiformats/cid'\nimport { validate as _validate } from '../../../../lexicons'\nimport {\n type $Typed,\n is$typed as _is$typed,\n type OmitKey,\n} from '../../../../util'\n\nconst is$typed = _is$typed,\n validate = _validate\nconst id = 'tools.ozone.team.deleteMember'\n\nexport type QueryParams = {}\n\nexport interface InputSchema {\n did: string\n}\n\nexport interface HandlerInput {\n encoding: 'application/json'\n body: InputSchema\n}\n\nexport interface HandlerError {\n status: number\n message?: string\n error?: 'MemberNotFound' | 'CannotDeleteSelf'\n}\n\nexport type HandlerOutput = HandlerError | void\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"listMembers.js","sourceRoot":"","sources":["../../../../../../src/lexicon/types/tools/ozone/team/listMembers.ts"],"names":[],"mappings":";;AAKA,mDAA4D;AAC5D,2CAIyB;AAGzB,MAAM,QAAQ,GAAG,eAAS,EACxB,QAAQ,GAAG,mBAAS,CAAA;AACtB,MAAM,EAAE,GAAG,8BAA8B,CAAA"}
1
+ {"version":3,"file":"listMembers.js","sourceRoot":"","sources":["../../../../../../src/lexicon/types/tools/ozone/team/listMembers.ts"],"names":[],"mappings":";;AAKA,mDAA4D;AAC5D,2CAIyB;AAGzB,MAAM,QAAQ,GAAG,eAAS,EACxB,QAAQ,GAAG,mBAAS,CAAA;AACtB,MAAM,EAAE,GAAG,8BAA8B,CAAA","sourcesContent":["/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { type ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { CID } from 'multiformats/cid'\nimport { validate as _validate } from '../../../../lexicons'\nimport {\n type $Typed,\n is$typed as _is$typed,\n type OmitKey,\n} from '../../../../util'\nimport type * as ToolsOzoneTeamDefs from './defs.js'\n\nconst is$typed = _is$typed,\n validate = _validate\nconst id = 'tools.ozone.team.listMembers'\n\nexport type QueryParams = {\n q?: string\n disabled?: boolean\n roles?: string[]\n limit: number\n cursor?: string\n}\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n members: ToolsOzoneTeamDefs.Member[]\n}\n\nexport type HandlerInput = void\n\nexport interface HandlerSuccess {\n encoding: 'application/json'\n body: OutputSchema\n headers?: { [key: string]: string }\n}\n\nexport interface HandlerError {\n status: number\n message?: string\n}\n\nexport type HandlerOutput = HandlerError | HandlerSuccess\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"updateMember.js","sourceRoot":"","sources":["../../../../../../src/lexicon/types/tools/ozone/team/updateMember.ts"],"names":[],"mappings":";;AAKA,mDAA4D;AAC5D,2CAIyB;AAGzB,MAAM,QAAQ,GAAG,eAAS,EACxB,QAAQ,GAAG,mBAAS,CAAA;AACtB,MAAM,EAAE,GAAG,+BAA+B,CAAA"}
1
+ {"version":3,"file":"updateMember.js","sourceRoot":"","sources":["../../../../../../src/lexicon/types/tools/ozone/team/updateMember.ts"],"names":[],"mappings":";;AAKA,mDAA4D;AAC5D,2CAIyB;AAGzB,MAAM,QAAQ,GAAG,eAAS,EACxB,QAAQ,GAAG,mBAAS,CAAA;AACtB,MAAM,EAAE,GAAG,+BAA+B,CAAA","sourcesContent":["/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { type ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { CID } from 'multiformats/cid'\nimport { validate as _validate } from '../../../../lexicons'\nimport {\n type $Typed,\n is$typed as _is$typed,\n type OmitKey,\n} from '../../../../util'\nimport type * as ToolsOzoneTeamDefs from './defs.js'\n\nconst is$typed = _is$typed,\n validate = _validate\nconst id = 'tools.ozone.team.updateMember'\n\nexport type QueryParams = {}\n\nexport interface InputSchema {\n did: string\n disabled?: boolean\n role?:\n | 'tools.ozone.team.defs#roleAdmin'\n | 'tools.ozone.team.defs#roleModerator'\n | 'tools.ozone.team.defs#roleVerifier'\n | 'tools.ozone.team.defs#roleTriage'\n | (string & {})\n}\n\nexport type OutputSchema = ToolsOzoneTeamDefs.Member\n\nexport interface HandlerInput {\n encoding: 'application/json'\n body: InputSchema\n}\n\nexport interface HandlerSuccess {\n encoding: 'application/json'\n body: OutputSchema\n headers?: { [key: string]: string }\n}\n\nexport interface HandlerError {\n status: number\n message?: string\n error?: 'MemberNotFound'\n}\n\nexport type HandlerOutput = HandlerError | HandlerSuccess\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"defs.js","sourceRoot":"","sources":["../../../../../../src/lexicon/types/tools/ozone/verification/defs.ts"],"names":[],"mappings":";;AAoDA,gDAEC;AAED,4DAEC;AArDD,mDAA4D;AAC5D,2CAIyB;AAGzB,MAAM,QAAQ,GAAG,eAAS,EACxB,QAAQ,GAAG,mBAAS,CAAA;AACtB,MAAM,EAAE,GAAG,+BAA+B,CAAA;AAmC1C,MAAM,oBAAoB,GAAG,kBAAkB,CAAA;AAE/C,SAAgB,kBAAkB,CAAI,CAAI;IACxC,OAAO,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,oBAAoB,CAAC,CAAA;AAC9C,CAAC;AAED,SAAgB,wBAAwB,CAAI,CAAI;IAC9C,OAAO,QAAQ,CAAuB,CAAC,EAAE,EAAE,EAAE,oBAAoB,CAAC,CAAA;AACpE,CAAC"}
1
+ {"version":3,"file":"defs.js","sourceRoot":"","sources":["../../../../../../src/lexicon/types/tools/ozone/verification/defs.ts"],"names":[],"mappings":";;AAoDA,gDAEC;AAED,4DAEC;AArDD,mDAA4D;AAC5D,2CAIyB;AAGzB,MAAM,QAAQ,GAAG,eAAS,EACxB,QAAQ,GAAG,mBAAS,CAAA;AACtB,MAAM,EAAE,GAAG,+BAA+B,CAAA;AAmC1C,MAAM,oBAAoB,GAAG,kBAAkB,CAAA;AAE/C,SAAgB,kBAAkB,CAAI,CAAI;IACxC,OAAO,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,oBAAoB,CAAC,CAAA;AAC9C,CAAC;AAED,SAAgB,wBAAwB,CAAI,CAAI;IAC9C,OAAO,QAAQ,CAAuB,CAAC,EAAE,EAAE,EAAE,oBAAoB,CAAC,CAAA;AACpE,CAAC","sourcesContent":["/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { type ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { CID } from 'multiformats/cid'\nimport { validate as _validate } from '../../../../lexicons'\nimport {\n type $Typed,\n is$typed as _is$typed,\n type OmitKey,\n} from '../../../../util'\nimport type * as ToolsOzoneModerationDefs from '../moderation/defs.js'\n\nconst is$typed = _is$typed,\n validate = _validate\nconst id = 'tools.ozone.verification.defs'\n\n/** Verification data for the associated subject. */\nexport interface VerificationView {\n $type?: 'tools.ozone.verification.defs#verificationView'\n /** The user who issued this verification. */\n issuer: string\n /** The AT-URI of the verification record. */\n uri: string\n /** The subject of the verification. */\n subject: string\n /** Handle of the subject the verification applies to at the moment of verifying, which might not be the same at the time of viewing. The verification is only valid if the current handle matches the one at the time of verifying. */\n handle: string\n /** Display name of the subject the verification applies to at the moment of verifying, which might not be the same at the time of viewing. The verification is only valid if the current displayName matches the one at the time of verifying. */\n displayName: string\n /** Timestamp when the verification was created. */\n createdAt: string\n /** Describes the reason for revocation, also indicating that the verification is no longer valid. */\n revokeReason?: string\n /** Timestamp when the verification was revoked. */\n revokedAt?: string\n /** The user who revoked this verification. */\n revokedBy?: string\n subjectProfile?: { $type: string }\n issuerProfile?: { $type: string }\n subjectRepo?:\n | $Typed<ToolsOzoneModerationDefs.RepoViewDetail>\n | $Typed<ToolsOzoneModerationDefs.RepoViewNotFound>\n | { $type: string }\n issuerRepo?:\n | $Typed<ToolsOzoneModerationDefs.RepoViewDetail>\n | $Typed<ToolsOzoneModerationDefs.RepoViewNotFound>\n | { $type: string }\n}\n\nconst hashVerificationView = 'verificationView'\n\nexport function isVerificationView<V>(v: V) {\n return is$typed(v, id, hashVerificationView)\n}\n\nexport function validateVerificationView<V>(v: V) {\n return validate<VerificationView & V>(v, id, hashVerificationView)\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"grantVerifications.js","sourceRoot":"","sources":["../../../../../../src/lexicon/types/tools/ozone/verification/grantVerifications.ts"],"names":[],"mappings":";;AA6DA,kDAEC;AAED,8DAEC;AAaD,oCAEC;AAED,gDAEC;AAjFD,mDAA4D;AAC5D,2CAIyB;AAGzB,MAAM,QAAQ,GAAG,eAAS,EACxB,QAAQ,GAAG,mBAAS,CAAA;AACtB,MAAM,EAAE,GAAG,6CAA6C,CAAA;AA4CxD,MAAM,qBAAqB,GAAG,mBAAmB,CAAA;AAEjD,SAAgB,mBAAmB,CAAI,CAAI;IACzC,OAAO,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,qBAAqB,CAAC,CAAA;AAC/C,CAAC;AAED,SAAgB,yBAAyB,CAAI,CAAI;IAC/C,OAAO,QAAQ,CAAwB,CAAC,EAAE,EAAE,EAAE,qBAAqB,CAAC,CAAA;AACtE,CAAC;AAWD,MAAM,cAAc,GAAG,YAAY,CAAA;AAEnC,SAAgB,YAAY,CAAI,CAAI;IAClC,OAAO,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,cAAc,CAAC,CAAA;AACxC,CAAC;AAED,SAAgB,kBAAkB,CAAI,CAAI;IACxC,OAAO,QAAQ,CAAiB,CAAC,EAAE,EAAE,EAAE,cAAc,CAAC,CAAA;AACxD,CAAC"}
1
+ {"version":3,"file":"grantVerifications.js","sourceRoot":"","sources":["../../../../../../src/lexicon/types/tools/ozone/verification/grantVerifications.ts"],"names":[],"mappings":";;AA6DA,kDAEC;AAED,8DAEC;AAaD,oCAEC;AAED,gDAEC;AAjFD,mDAA4D;AAC5D,2CAIyB;AAGzB,MAAM,QAAQ,GAAG,eAAS,EACxB,QAAQ,GAAG,mBAAS,CAAA;AACtB,MAAM,EAAE,GAAG,6CAA6C,CAAA;AA4CxD,MAAM,qBAAqB,GAAG,mBAAmB,CAAA;AAEjD,SAAgB,mBAAmB,CAAI,CAAI;IACzC,OAAO,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,qBAAqB,CAAC,CAAA;AAC/C,CAAC;AAED,SAAgB,yBAAyB,CAAI,CAAI;IAC/C,OAAO,QAAQ,CAAwB,CAAC,EAAE,EAAE,EAAE,qBAAqB,CAAC,CAAA;AACtE,CAAC;AAWD,MAAM,cAAc,GAAG,YAAY,CAAA;AAEnC,SAAgB,YAAY,CAAI,CAAI;IAClC,OAAO,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,cAAc,CAAC,CAAA;AACxC,CAAC;AAED,SAAgB,kBAAkB,CAAI,CAAI;IACxC,OAAO,QAAQ,CAAiB,CAAC,EAAE,EAAE,EAAE,cAAc,CAAC,CAAA;AACxD,CAAC","sourcesContent":["/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { type ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { CID } from 'multiformats/cid'\nimport { validate as _validate } from '../../../../lexicons'\nimport {\n type $Typed,\n is$typed as _is$typed,\n type OmitKey,\n} from '../../../../util'\nimport type * as ToolsOzoneVerificationDefs from './defs.js'\n\nconst is$typed = _is$typed,\n validate = _validate\nconst id = 'tools.ozone.verification.grantVerifications'\n\nexport type QueryParams = {}\n\nexport interface InputSchema {\n /** Array of verification requests to process */\n verifications: VerificationInput[]\n}\n\nexport interface OutputSchema {\n verifications: ToolsOzoneVerificationDefs.VerificationView[]\n failedVerifications: GrantError[]\n}\n\nexport interface HandlerInput {\n encoding: 'application/json'\n body: InputSchema\n}\n\nexport interface HandlerSuccess {\n encoding: 'application/json'\n body: OutputSchema\n headers?: { [key: string]: string }\n}\n\nexport interface HandlerError {\n status: number\n message?: string\n}\n\nexport type HandlerOutput = HandlerError | HandlerSuccess\n\nexport interface VerificationInput {\n $type?: 'tools.ozone.verification.grantVerifications#verificationInput'\n /** The did of the subject being verified */\n subject: string\n /** Handle of the subject the verification applies to at the moment of verifying. */\n handle: string\n /** Display name of the subject the verification applies to at the moment of verifying. */\n displayName: string\n /** Timestamp for verification record. Defaults to current time when not specified. */\n createdAt?: string\n}\n\nconst hashVerificationInput = 'verificationInput'\n\nexport function isVerificationInput<V>(v: V) {\n return is$typed(v, id, hashVerificationInput)\n}\n\nexport function validateVerificationInput<V>(v: V) {\n return validate<VerificationInput & V>(v, id, hashVerificationInput)\n}\n\n/** Error object for failed verifications. */\nexport interface GrantError {\n $type?: 'tools.ozone.verification.grantVerifications#grantError'\n /** Error message describing the reason for failure. */\n error: string\n /** The did of the subject being verified */\n subject: string\n}\n\nconst hashGrantError = 'grantError'\n\nexport function isGrantError<V>(v: V) {\n return is$typed(v, id, hashGrantError)\n}\n\nexport function validateGrantError<V>(v: V) {\n return validate<GrantError & V>(v, id, hashGrantError)\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"listVerifications.js","sourceRoot":"","sources":["../../../../../../src/lexicon/types/tools/ozone/verification/listVerifications.ts"],"names":[],"mappings":";;AAKA,mDAA4D;AAC5D,2CAIyB;AAGzB,MAAM,QAAQ,GAAG,eAAS,EACxB,QAAQ,GAAG,mBAAS,CAAA;AACtB,MAAM,EAAE,GAAG,4CAA4C,CAAA"}
1
+ {"version":3,"file":"listVerifications.js","sourceRoot":"","sources":["../../../../../../src/lexicon/types/tools/ozone/verification/listVerifications.ts"],"names":[],"mappings":";;AAKA,mDAA4D;AAC5D,2CAIyB;AAGzB,MAAM,QAAQ,GAAG,eAAS,EACxB,QAAQ,GAAG,mBAAS,CAAA;AACtB,MAAM,EAAE,GAAG,4CAA4C,CAAA","sourcesContent":["/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { type ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { CID } from 'multiformats/cid'\nimport { validate as _validate } from '../../../../lexicons'\nimport {\n type $Typed,\n is$typed as _is$typed,\n type OmitKey,\n} from '../../../../util'\nimport type * as ToolsOzoneVerificationDefs from './defs.js'\n\nconst is$typed = _is$typed,\n validate = _validate\nconst id = 'tools.ozone.verification.listVerifications'\n\nexport type QueryParams = {\n /** Pagination cursor */\n cursor?: string\n /** Maximum number of results to return */\n limit: number\n /** Filter to verifications created after this timestamp */\n createdAfter?: string\n /** Filter to verifications created before this timestamp */\n createdBefore?: string\n /** Filter to verifications from specific issuers */\n issuers?: string[]\n /** Filter to specific verified DIDs */\n subjects?: string[]\n /** Sort direction for creation date */\n sortDirection: 'asc' | 'desc'\n /** Filter to verifications that are revoked or not. By default, includes both. */\n isRevoked?: boolean\n}\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n verifications: ToolsOzoneVerificationDefs.VerificationView[]\n}\n\nexport type HandlerInput = void\n\nexport interface HandlerSuccess {\n encoding: 'application/json'\n body: OutputSchema\n headers?: { [key: string]: string }\n}\n\nexport interface HandlerError {\n status: number\n message?: string\n}\n\nexport type HandlerOutput = HandlerError | HandlerSuccess\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"revokeVerifications.js","sourceRoot":"","sources":["../../../../../../src/lexicon/types/tools/ozone/verification/revokeVerifications.ts"],"names":[],"mappings":";;AA6DA,sCAEC;AAED,kDAEC;AA9DD,mDAA4D;AAC5D,2CAIyB;AAEzB,MAAM,QAAQ,GAAG,eAAS,EACxB,QAAQ,GAAG,mBAAS,CAAA;AACtB,MAAM,EAAE,GAAG,8CAA8C,CAAA;AA6CzD,MAAM,eAAe,GAAG,aAAa,CAAA;AAErC,SAAgB,aAAa,CAAI,CAAI;IACnC,OAAO,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,eAAe,CAAC,CAAA;AACzC,CAAC;AAED,SAAgB,mBAAmB,CAAI,CAAI;IACzC,OAAO,QAAQ,CAAkB,CAAC,EAAE,EAAE,EAAE,eAAe,CAAC,CAAA;AAC1D,CAAC"}
1
+ {"version":3,"file":"revokeVerifications.js","sourceRoot":"","sources":["../../../../../../src/lexicon/types/tools/ozone/verification/revokeVerifications.ts"],"names":[],"mappings":";;AA6DA,sCAEC;AAED,kDAEC;AA9DD,mDAA4D;AAC5D,2CAIyB;AAEzB,MAAM,QAAQ,GAAG,eAAS,EACxB,QAAQ,GAAG,mBAAS,CAAA;AACtB,MAAM,EAAE,GAAG,8CAA8C,CAAA;AA6CzD,MAAM,eAAe,GAAG,aAAa,CAAA;AAErC,SAAgB,aAAa,CAAI,CAAI;IACnC,OAAO,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,eAAe,CAAC,CAAA;AACzC,CAAC;AAED,SAAgB,mBAAmB,CAAI,CAAI;IACzC,OAAO,QAAQ,CAAkB,CAAC,EAAE,EAAE,EAAE,eAAe,CAAC,CAAA;AAC1D,CAAC","sourcesContent":["/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { type ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { CID } from 'multiformats/cid'\nimport { validate as _validate } from '../../../../lexicons'\nimport {\n type $Typed,\n is$typed as _is$typed,\n type OmitKey,\n} from '../../../../util'\n\nconst is$typed = _is$typed,\n validate = _validate\nconst id = 'tools.ozone.verification.revokeVerifications'\n\nexport type QueryParams = {}\n\nexport interface InputSchema {\n /** Array of verification record uris to revoke */\n uris: string[]\n /** Reason for revoking the verification. This is optional and can be omitted if not needed. */\n revokeReason?: string\n}\n\nexport interface OutputSchema {\n /** List of verification uris successfully revoked */\n revokedVerifications: string[]\n /** List of verification uris that couldn't be revoked, including failure reasons */\n failedRevocations: RevokeError[]\n}\n\nexport interface HandlerInput {\n encoding: 'application/json'\n body: InputSchema\n}\n\nexport interface HandlerSuccess {\n encoding: 'application/json'\n body: OutputSchema\n headers?: { [key: string]: string }\n}\n\nexport interface HandlerError {\n status: number\n message?: string\n}\n\nexport type HandlerOutput = HandlerError | HandlerSuccess\n\n/** Error object for failed revocations */\nexport interface RevokeError {\n $type?: 'tools.ozone.verification.revokeVerifications#revokeError'\n /** The AT-URI of the verification record that failed to revoke. */\n uri: string\n /** Description of the error that occurred during revocation. */\n error: string\n}\n\nconst hashRevokeError = 'revokeError'\n\nexport function isRevokeError<V>(v: V) {\n return is$typed(v, id, hashRevokeError)\n}\n\nexport function validateRevokeError<V>(v: V) {\n return validate<RevokeError & V>(v, id, hashRevokeError)\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/lexicon/util.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAgDH,4BAMC;AAED,kCASC;AAUD,kCAIC;AAhED,SAAS,QAAQ,CAAI,CAAI;IACvB,OAAO,CAAC,IAAI,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAA;AAC3C,CAAC;AAED,SAAS,OAAO,CACd,KAAc,EACd,EAAM,EACN,IAAU;IAEV,OAAO,IAAI,KAAK,MAAM;QACpB,CAAC,CAAC,KAAK,KAAK,EAAE;QACd,CAAC,CAAC,4BAA4B;YAC5B,OAAO,KAAK,KAAK,QAAQ;gBACvB,KAAK,CAAC,MAAM,KAAK,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM;gBAC5C,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,SAAS;gBAC5C,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;gBACpB,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;AAC5B,CAAC;AAgBD,SAAgB,QAAQ,CACtB,CAAI,EACJ,EAAM,EACN,IAAU;IAEV,OAAO,QAAQ,CAAC,CAAC,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,CAAA;AAClE,CAAC;AAED,SAAgB,WAAW,CACzB,CAAI,EACJ,EAAM,EACN,IAAU;IAEV,OAAO,CACL,QAAQ,CAAC,CAAC,CAAC;QACX,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAC5E,CAAA;AACH,CAAC;AAMD;;;GAGG;AACH,SAAgB,WAAW,CAAsB,QAAW;IAC1D,OAAO,UAAa,CAAI;QACtB,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;IAC5B,CAAC,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/lexicon/util.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAgDH,4BAMC;AAED,kCASC;AAUD,kCAIC;AAhED,SAAS,QAAQ,CAAI,CAAI;IACvB,OAAO,CAAC,IAAI,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAA;AAC3C,CAAC;AAED,SAAS,OAAO,CACd,KAAc,EACd,EAAM,EACN,IAAU;IAEV,OAAO,IAAI,KAAK,MAAM;QACpB,CAAC,CAAC,KAAK,KAAK,EAAE;QACd,CAAC,CAAC,4BAA4B;YAC5B,OAAO,KAAK,KAAK,QAAQ;gBACvB,KAAK,CAAC,MAAM,KAAK,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM;gBAC5C,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,SAAS;gBAC5C,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;gBACpB,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;AAC5B,CAAC;AAgBD,SAAgB,QAAQ,CACtB,CAAI,EACJ,EAAM,EACN,IAAU;IAEV,OAAO,QAAQ,CAAC,CAAC,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,CAAA;AAClE,CAAC;AAED,SAAgB,WAAW,CACzB,CAAI,EACJ,EAAM,EACN,IAAU;IAEV,OAAO,CACL,QAAQ,CAAC,CAAC,CAAC;QACX,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAC5E,CAAA;AACH,CAAC;AAMD;;;GAGG;AACH,SAAgB,WAAW,CAAsB,QAAW;IAC1D,OAAO,UAAa,CAAI;QACtB,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;IAC5B,CAAC,CAAA;AACH,CAAC","sourcesContent":["/**\n * GENERATED CODE - DO NOT MODIFY\n */\n\nimport { type ValidationResult } from '@atproto/lexicon'\n\nexport type OmitKey<T, K extends keyof T> = {\n [K2 in keyof T as K2 extends K ? never : K2]: T[K2]\n}\n\nexport type $Typed<V, T extends string = string> = V & { $type: T }\nexport type Un$Typed<V extends { $type?: string }> = OmitKey<V, '$type'>\n\nexport type $Type<Id extends string, Hash extends string> = Hash extends 'main'\n ? Id\n : `${Id}#${Hash}`\n\nfunction isObject<V>(v: V): v is V & object {\n return v != null && typeof v === 'object'\n}\n\nfunction is$type<Id extends string, Hash extends string>(\n $type: unknown,\n id: Id,\n hash: Hash,\n): $type is $Type<Id, Hash> {\n return hash === 'main'\n ? $type === id\n : // $type === `${id}#${hash}`\n typeof $type === 'string' &&\n $type.length === id.length + 1 + hash.length &&\n $type.charCodeAt(id.length) === 35 /* '#' */ &&\n $type.startsWith(id) &&\n $type.endsWith(hash)\n}\n\nexport type $TypedObject<\n V,\n Id extends string,\n Hash extends string,\n> = V extends {\n $type: $Type<Id, Hash>\n}\n ? V\n : V extends { $type?: string }\n ? V extends { $type?: infer T extends $Type<Id, Hash> }\n ? V & { $type: T }\n : never\n : V & { $type: $Type<Id, Hash> }\n\nexport function is$typed<V, Id extends string, Hash extends string>(\n v: V,\n id: Id,\n hash: Hash,\n): v is $TypedObject<V, Id, Hash> {\n return isObject(v) && '$type' in v && is$type(v.$type, id, hash)\n}\n\nexport function maybe$typed<V, Id extends string, Hash extends string>(\n v: V,\n id: Id,\n hash: Hash,\n): v is V & object & { $type?: $Type<Id, Hash> } {\n return (\n isObject(v) &&\n ('$type' in v ? v.$type === undefined || is$type(v.$type, id, hash) : true)\n )\n}\n\nexport type Validator<R = unknown> = (v: unknown) => ValidationResult<R>\nexport type ValidatorParam<V extends Validator> =\n V extends Validator<infer R> ? R : never\n\n/**\n * Utility function that allows to convert a \"validate*\" utility function into a\n * type predicate.\n */\nexport function asPredicate<V extends Validator>(validate: V) {\n return function <T>(v: T): v is T & ValidatorParam<V> {\n return validate(v).success\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":";;;AA8BA,sCAIC;AAjCD,+BAAqC;AACrC,yCAAoC;AACpC,4CAAmE;AAEtD,QAAA,eAAe,GAAG,IAAA,wBAAe,EAAC,gBAAgB,CAAC,CAAA;AACnD,QAAA,QAAQ,GAAG,IAAA,wBAAe,EAAC,QAAQ,CAAC,CAAA;AACpC,QAAA,cAAc,GAAG,IAAA,wBAAe,EAAC,eAAe,CAAC,CAAA;AACjD,QAAA,gBAAgB,GAAG,IAAA,wBAAe,EAAC,iBAAiB,CAAC,CAAA;AACrD,QAAA,WAAW,GAAG,IAAA,wBAAe,EAAC,WAAW,CAAC,CAAA;AAC1C,QAAA,SAAS,GAAG,IAAA,wBAAe,EAAC,eAAe,CAAC,CAAA;AAC5C,QAAA,YAAY,GAAG,IAAA,wBAAe,EAAC,YAAY,CAAC,CAAA;AAC5C,QAAA,aAAa,GAAG,IAAA,wBAAe,EAAC,aAAa,CAAC,CAAA;AAC9C,QAAA,aAAa,GAAG,IAAA,wBAAe,EAAC,aAAa,CAAC,CAAA;AAC9C,QAAA,UAAU,GAAG,IAAA,wBAAe,EAAC,KAAK,CAAC,CAAA;AACnC,QAAA,WAAW,GAAG,IAAA,wBAAe,EAAC,WAAW,CAAC,CAAA;AAC1C,QAAA,WAAW,GAAG,IAAA,wBAAe,EAAC,WAAW,CAAC,CAAA;AAC1C,QAAA,qBAAqB,GAAG,IAAA,wBAAe,EAAC,sBAAsB,CAAC,CAAA;AAE/D,QAAA,gBAAgB,GAAG,IAAA,oBAAQ,EAAC;IACvC,MAAM,EAAE,kBAAU;IAClB,WAAW,EAAE;QACX,GAAG,EAAE,aAAa;QAClB,GAAG,EAAE,CAAC,GAAY,EAAE,EAAE,CAAC,CAAC;YACtB,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC;YACnB,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC;SAC1B,CAAC;KACH;CACF,CAAC,CAAA;AAEF,SAAgB,aAAa,CAAC,GAAoB;IAChD,MAAM,UAAU,GAAG,qBAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC1C,MAAM,OAAO,GAAG,IAAA,yBAAgB,EAAC,UAAU,CAAC,OAAO,CAAC,CAAA;IACpD,OAAO,EAAE,GAAG,UAAU,EAAE,OAAO,EAAE,CAAA;AACnC,CAAC"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":";;;AA8BA,sCAIC;AAjCD,+BAAqC;AACrC,yCAAoC;AACpC,4CAAmE;AAEtD,QAAA,eAAe,GAAG,IAAA,wBAAe,EAAC,gBAAgB,CAAC,CAAA;AACnD,QAAA,QAAQ,GAAG,IAAA,wBAAe,EAAC,QAAQ,CAAC,CAAA;AACpC,QAAA,cAAc,GAAG,IAAA,wBAAe,EAAC,eAAe,CAAC,CAAA;AACjD,QAAA,gBAAgB,GAAG,IAAA,wBAAe,EAAC,iBAAiB,CAAC,CAAA;AACrD,QAAA,WAAW,GAAG,IAAA,wBAAe,EAAC,WAAW,CAAC,CAAA;AAC1C,QAAA,SAAS,GAAG,IAAA,wBAAe,EAAC,eAAe,CAAC,CAAA;AAC5C,QAAA,YAAY,GAAG,IAAA,wBAAe,EAAC,YAAY,CAAC,CAAA;AAC5C,QAAA,aAAa,GAAG,IAAA,wBAAe,EAAC,aAAa,CAAC,CAAA;AAC9C,QAAA,aAAa,GAAG,IAAA,wBAAe,EAAC,aAAa,CAAC,CAAA;AAC9C,QAAA,UAAU,GAAG,IAAA,wBAAe,EAAC,KAAK,CAAC,CAAA;AACnC,QAAA,WAAW,GAAG,IAAA,wBAAe,EAAC,WAAW,CAAC,CAAA;AAC1C,QAAA,WAAW,GAAG,IAAA,wBAAe,EAAC,WAAW,CAAC,CAAA;AAC1C,QAAA,qBAAqB,GAAG,IAAA,wBAAe,EAAC,sBAAsB,CAAC,CAAA;AAE/D,QAAA,gBAAgB,GAAG,IAAA,oBAAQ,EAAC;IACvC,MAAM,EAAE,kBAAU;IAClB,WAAW,EAAE;QACX,GAAG,EAAE,aAAa;QAClB,GAAG,EAAE,CAAC,GAAY,EAAE,EAAE,CAAC,CAAC;YACtB,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC;YACnB,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC;SAC1B,CAAC;KACH;CACF,CAAC,CAAA;AAEF,SAAgB,aAAa,CAAC,GAAoB;IAChD,MAAM,UAAU,GAAG,qBAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC1C,MAAM,OAAO,GAAG,IAAA,yBAAgB,EAAC,UAAU,CAAC,OAAO,CAAC,CAAA;IACpD,OAAO,EAAE,GAAG,UAAU,EAAE,OAAO,EAAE,CAAA;AACnC,CAAC","sourcesContent":["import { type IncomingMessage } from 'node:http'\nimport { stdSerializers } from 'pino'\nimport { pinoHttp } from 'pino-http'\nimport { obfuscateHeaders, subsystemLogger } from '@atproto/common'\n\nexport const blobStoreLogger = subsystemLogger('pds:blob-store')\nexport const dbLogger = subsystemLogger('pds:db')\nexport const didCacheLogger = subsystemLogger('pds:did-cache')\nexport const readStickyLogger = subsystemLogger('pds:read-sticky')\nexport const redisLogger = subsystemLogger('pds:redis')\nexport const seqLogger = subsystemLogger('pds:sequencer')\nexport const mailerLogger = subsystemLogger('pds:mailer')\nexport const labelerLogger = subsystemLogger('pds:labeler')\nexport const crawlerLogger = subsystemLogger('pds:crawler')\nexport const httpLogger = subsystemLogger('pds')\nexport const fetchLogger = subsystemLogger('pds:fetch')\nexport const oauthLogger = subsystemLogger('pds:oauth')\nexport const lexiconResolverLogger = subsystemLogger('pds:lexicon-resolver')\n\nexport const loggerMiddleware = pinoHttp({\n logger: httpLogger,\n serializers: {\n req: reqSerializer,\n err: (err: unknown) => ({\n code: err?.['code'],\n message: err?.['message'],\n }),\n },\n})\n\nexport function reqSerializer(req: IncomingMessage) {\n const serialized = stdSerializers.req(req)\n const headers = obfuscateHeaders(serialized.headers)\n return { ...serialized, headers }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mailer/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,qEAAoD;AAEpD,sCAAwC;AACxC,uDAAwC;AAExC,6BAA6B;AAE7B,MAAa,YAAY;IACvB,YACkB,WAAuD,EACtD,MAAoB;QADrC;;;;mBAAgB,WAAW;WAA4C;QACvE;;;;mBAAiB,MAAM;WAAc;QAErC,WAAW,CAAC,GAAG,CAAC,SAAS,EAAE,IAAA,oCAAU,GAAE,CAAC,CAAA;IAC1C,CAAC;IAED,0DAA0D;IAC1D,MAAM,CAAC,cAAc,CAAC,OAAqB;QACzC,OAAO,EAAE,CAAA;IACX,CAAC;IAED,KAAK,CAAC,iBAAiB,CACrB,MAAyC,EACzC,QAAsB;QAEtB,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,EAAE;YAC/C,OAAO,EAAE,0BAA0B;YACnC,GAAG,QAAQ;SACZ,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,MAAyB,EAAE,QAAsB;QACvE,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,EAAE;YAC/C,OAAO,EAAE,4BAA4B;YACrC,GAAG,QAAQ;SACZ,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,MAAyB,EAAE,QAAsB;QACtE,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,EAAE;YAC9C,OAAO,EAAE,oBAAoB;YAC7B,GAAG,QAAQ;SACZ,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,MAAyB,EAAE,QAAsB;QACrE,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE;YAC7C,OAAO,EAAE,wBAAwB;YACjC,GAAG,QAAQ;SACZ,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,MAAyB,EAAE,QAAsB;QACtE,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,EAAE;YAC9C,OAAO,EAAE,gCAAgC;YACzC,GAAG,QAAQ;SACZ,CAAC,CAAA;IACJ,CAAC;IAEO,KAAK,CAAC,YAAY,CACxB,YAAe,EACf,MAA4C,EAC5C,QAAsB;QAEtB,MAAM,IAAI,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC;YACnC,GAAG,MAAM;YACT,MAAM,EAAE,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;SAC1C,CAAC,CAAA;QACT,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;YAC1C,GAAG,QAAQ;YACX,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW;YACrD,IAAI;SACL,CAAC,CAAA;QACF,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC;YAChC,qBAAY,CAAC,KAAK,CAChB,4DAA4D;gBAC1D,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAC/B,CAAA;QACH,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;CACF;AAzED,oCAyEC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mailer/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,qEAAoD;AAEpD,sCAAwC;AACxC,uDAAwC;AAExC,6BAA6B;AAE7B,MAAa,YAAY;IACvB,YACkB,WAAuD,EACtD,MAAoB;QADrC;;;;mBAAgB,WAAW;WAA4C;QACvE;;;;mBAAiB,MAAM;WAAc;QAErC,WAAW,CAAC,GAAG,CAAC,SAAS,EAAE,IAAA,oCAAU,GAAE,CAAC,CAAA;IAC1C,CAAC;IAED,0DAA0D;IAC1D,MAAM,CAAC,cAAc,CAAC,OAAqB;QACzC,OAAO,EAAE,CAAA;IACX,CAAC;IAED,KAAK,CAAC,iBAAiB,CACrB,MAAyC,EACzC,QAAsB;QAEtB,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,EAAE;YAC/C,OAAO,EAAE,0BAA0B;YACnC,GAAG,QAAQ;SACZ,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,MAAyB,EAAE,QAAsB;QACvE,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,EAAE;YAC/C,OAAO,EAAE,4BAA4B;YACrC,GAAG,QAAQ;SACZ,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,MAAyB,EAAE,QAAsB;QACtE,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,EAAE;YAC9C,OAAO,EAAE,oBAAoB;YAC7B,GAAG,QAAQ;SACZ,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,MAAyB,EAAE,QAAsB;QACrE,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE;YAC7C,OAAO,EAAE,wBAAwB;YACjC,GAAG,QAAQ;SACZ,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,MAAyB,EAAE,QAAsB;QACtE,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,EAAE;YAC9C,OAAO,EAAE,gCAAgC;YACzC,GAAG,QAAQ;SACZ,CAAC,CAAA;IACJ,CAAC;IAEO,KAAK,CAAC,YAAY,CACxB,YAAe,EACf,MAA4C,EAC5C,QAAsB;QAEtB,MAAM,IAAI,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC;YACnC,GAAG,MAAM;YACT,MAAM,EAAE,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;SAC1C,CAAC,CAAA;QACT,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;YAC1C,GAAG,QAAQ;YACX,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW;YACrD,IAAI;SACL,CAAC,CAAA;QACF,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC;YAChC,qBAAY,CAAC,KAAK,CAChB,4DAA4D;gBAC1D,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAC/B,CAAA;QACH,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;CACF;AAzED,oCAyEC","sourcesContent":["import { Transporter } from 'nodemailer'\nimport Mail from 'nodemailer/lib/mailer'\nimport SMTPTransport from 'nodemailer/lib/smtp-transport'\nimport { htmlToText } from 'nodemailer-html-to-text'\nimport { ServerConfig } from '../config'\nimport { mailerLogger } from '../logger'\nimport * as templates from './templates'\n\n// @TODO Add support for i18n\n\nexport class ServerMailer {\n constructor(\n public readonly transporter: Transporter<SMTPTransport.SentMessageInfo>,\n private readonly config: ServerConfig,\n ) {\n transporter.use('compile', htmlToText())\n }\n\n // The returned config can be used inside email templates.\n static getEmailConfig(_config: ServerConfig) {\n return {}\n }\n\n async sendResetPassword(\n params: { handle: string; token: string },\n mailOpts: Mail.Options,\n ) {\n await this.sendTemplate('resetPassword', params, {\n subject: 'Password Reset Requested',\n ...mailOpts,\n })\n }\n\n async sendAccountDelete(params: { token: string }, mailOpts: Mail.Options) {\n await this.sendTemplate('deleteAccount', params, {\n subject: 'Account Deletion Requested',\n ...mailOpts,\n })\n }\n\n async sendConfirmEmail(params: { token: string }, mailOpts: Mail.Options) {\n await this.sendTemplate('confirmEmail', params, {\n subject: 'Email Confirmation',\n ...mailOpts,\n })\n }\n\n async sendUpdateEmail(params: { token: string }, mailOpts: Mail.Options) {\n await this.sendTemplate('updateEmail', params, {\n subject: 'Email Update Requested',\n ...mailOpts,\n })\n }\n\n async sendPlcOperation(params: { token: string }, mailOpts: Mail.Options) {\n await this.sendTemplate('plcOperation', params, {\n subject: 'PLC Update Operation Requested',\n ...mailOpts,\n })\n }\n\n private async sendTemplate<K extends keyof typeof templates>(\n templateName: K,\n params: Parameters<(typeof templates)[K]>[0],\n mailOpts: Mail.Options,\n ) {\n const html = templates[templateName]({\n ...params,\n config: ServerMailer.getEmailConfig(this.config),\n } as any)\n const res = await this.transporter.sendMail({\n ...mailOpts,\n from: mailOpts.from ?? this.config.email?.fromAddress,\n html,\n })\n if (!this.config.email?.smtpUrl) {\n mailerLogger.debug(\n 'No SMTP URL has been configured. Intended to send email:\\n' +\n JSON.stringify(res, null, 2),\n )\n }\n return res\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"moderation.js","sourceRoot":"","sources":["../../src/mailer/moderation.ts"],"names":[],"mappings":";;;AAGA,qEAAoD;AAEpD,sCAAwC;AAExC,MAAa,gBAAgB;IAI3B,YACE,WAAuD,EACvD,MAAoB;QALd;;;;;WAAoB;QAC5B;;;;;WAAuD;QAMrD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,EAAE,IAAA,oCAAU,GAAE,CAAC,CAAA;IAC/C,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAuB,EAAE,QAAsB;QACjE,MAAM,IAAI,GAAG;YACX,GAAG,QAAQ;YACX,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,WAAW;SAC/C,CAAA;QAED,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAEjD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,OAAO,EAAE,CAAC;YAC1C,qBAAY,CAAC,KAAK,CAChB,oEAAoE;gBAClE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAC/B,CAAA;QACH,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;CACF;AA9BD,4CA8BC"}
1
+ {"version":3,"file":"moderation.js","sourceRoot":"","sources":["../../src/mailer/moderation.ts"],"names":[],"mappings":";;;AAGA,qEAAoD;AAEpD,sCAAwC;AAExC,MAAa,gBAAgB;IAI3B,YACE,WAAuD,EACvD,MAAoB;QALd;;;;;WAAoB;QAC5B;;;;;WAAuD;QAMrD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,EAAE,IAAA,oCAAU,GAAE,CAAC,CAAA;IAC/C,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAuB,EAAE,QAAsB;QACjE,MAAM,IAAI,GAAG;YACX,GAAG,QAAQ;YACX,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,WAAW;SAC/C,CAAA;QAED,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAEjD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,OAAO,EAAE,CAAC;YAC1C,qBAAY,CAAC,KAAK,CAChB,oEAAoE;gBAClE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAC/B,CAAA;QACH,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;CACF;AA9BD,4CA8BC","sourcesContent":["import { Transporter } from 'nodemailer'\nimport Mail from 'nodemailer/lib/mailer'\nimport SMTPTransport from 'nodemailer/lib/smtp-transport'\nimport { htmlToText } from 'nodemailer-html-to-text'\nimport { ServerConfig } from '../config'\nimport { mailerLogger } from '../logger'\n\nexport class ModerationMailer {\n private config: ServerConfig\n transporter: Transporter<SMTPTransport.SentMessageInfo>\n\n constructor(\n transporter: Transporter<SMTPTransport.SentMessageInfo>,\n config: ServerConfig,\n ) {\n this.config = config\n this.transporter = transporter\n this.transporter.use('compile', htmlToText())\n }\n\n async send({ content }: { content: string }, mailOpts: Mail.Options) {\n const mail = {\n ...mailOpts,\n html: content,\n from: this.config.moderationEmail?.fromAddress,\n }\n\n const res = await this.transporter.sendMail(mail)\n\n if (!this.config.moderationEmail?.smtpUrl) {\n mailerLogger.debug(\n 'Moderation email auth is not configured. Intended to send email:\\n' +\n JSON.stringify(res, null, 2),\n )\n }\n return res\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/mailer/templates.ts"],"names":[],"mappings":";;;;;;AAAA,6DAAqE;AAA5D,gIAAA,OAAO,OAAiB;AACjC,6DAAqE;AAA5D,gIAAA,OAAO,OAAiB;AACjC,2DAAmE;AAA1D,8HAAA,OAAO,OAAgB;AAChC,yDAAiE;AAAxD,4HAAA,OAAO,OAAe;AAC/B,2DAAmE;AAA1D,8HAAA,OAAO,OAAgB"}
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/mailer/templates.ts"],"names":[],"mappings":";;;;;;AAAA,6DAAqE;AAA5D,gIAAA,OAAO,OAAiB;AACjC,6DAAqE;AAA5D,gIAAA,OAAO,OAAiB;AACjC,2DAAmE;AAA1D,8HAAA,OAAO,OAAgB;AAChC,yDAAiE;AAAxD,4HAAA,OAAO,OAAe;AAC/B,2DAAmE;AAA1D,8HAAA,OAAO,OAAgB","sourcesContent":["export { default as resetPassword } from './templates/reset-password'\nexport { default as deleteAccount } from './templates/delete-account'\nexport { default as confirmEmail } from './templates/confirm-email'\nexport { default as updateEmail } from './templates/update-email'\nexport { default as plcOperation } from './templates/plc-operation'\n"]}
@@ -402,6 +402,9 @@ const defaultService = (ctx, nsid) => {
402
402
  case lexicons_1.ids.ToolsOzoneSafelinkRemoveRule:
403
403
  case lexicons_1.ids.ToolsOzoneSafelinkQueryEvents:
404
404
  case lexicons_1.ids.ToolsOzoneSafelinkQueryRules:
405
+ case lexicons_1.ids.ToolsOzoneModerationListScheduledActions:
406
+ case lexicons_1.ids.ToolsOzoneModerationCancelScheduledActions:
407
+ case lexicons_1.ids.ToolsOzoneModerationScheduleAction:
405
408
  return {
406
409
  serviceId: 'atproto_labeler',
407
410
  serviceInfo: ctx.cfg.modService,
@@ -1 +1 @@
1
- {"version":3,"file":"pipethrough.js","sourceRoot":"","sources":["../src/pipethrough.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pipethrough.js","sourceRoot":"","sources":["../src/pipethrough.ts"],"names":[],"mappings":"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","sourcesContent":["import { IncomingHttpHeaders, ServerResponse } from 'node:http'\nimport { PassThrough, Readable, finished } from 'node:stream'\nimport { Request } from 'express'\nimport { Dispatcher } from 'undici'\nimport {\n decodeStream,\n getServiceEndpoint,\n omit,\n streamToNodeBuffer,\n} from '@atproto/common'\nimport { RpcPermissionMatch } from '@atproto/oauth-scopes'\nimport { ResponseType, XRPCError as XRPCClientError } from '@atproto/xrpc'\nimport {\n CatchallHandler,\n HandlerPipeThroughBuffer,\n HandlerPipeThroughStream,\n InternalServerError,\n InvalidRequestError,\n XRPCError as XRPCServerError,\n excludeErrorResult,\n parseReqNsid,\n} from '@atproto/xrpc-server'\nimport { buildProxiedContentEncoding } from '@atproto-labs/xrpc-utils'\nimport { isAccessPrivileged } from './auth-scope'\nimport { AppContext } from './context'\nimport { ids } from './lexicon/lexicons'\nimport { httpLogger } from './logger'\n\nexport const proxyHandler = (ctx: AppContext): CatchallHandler => {\n const performAuth = ctx.authVerifier.authorization<RpcPermissionMatch>({\n authorize: (permissions, { params }) => permissions.assertRpc(params),\n })\n\n return async (req, res, next) => {\n // /!\\ Hot path\n try {\n if (\n req.method !== 'GET' &&\n req.method !== 'HEAD' &&\n req.method !== 'POST'\n ) {\n throw new XRPCServerError(\n ResponseType.InvalidRequest,\n 'XRPC requests only supports GET and POST',\n )\n }\n\n const body = req.method === 'POST' ? req : undefined\n if (body != null && !body.readable) {\n // Body was already consumed by a previous middleware\n throw new InternalServerError('Request body is not readable')\n }\n\n const lxm = parseReqNsid(req)\n if (PROTECTED_METHODS.has(lxm)) {\n throw new InvalidRequestError('Bad token method', 'InvalidToken')\n }\n\n const { url: origin, did: aud } = await parseProxyInfo(ctx, req, lxm)\n\n const authResult = await performAuth({ req, res, params: { lxm, aud } })\n\n const { credentials } = excludeErrorResult(authResult)\n\n if (\n credentials.type === 'access' &&\n !isAccessPrivileged(credentials.scope) &&\n PRIVILEGED_METHODS.has(lxm)\n ) {\n throw new InvalidRequestError('Bad token method', 'InvalidToken')\n }\n\n const headers: IncomingHttpHeaders = {\n 'accept-encoding': req.headers['accept-encoding'] || 'identity',\n 'accept-language': req.headers['accept-language'],\n 'atproto-accept-labelers': req.headers['atproto-accept-labelers'],\n 'x-bsky-topics': req.headers['x-bsky-topics'],\n\n 'content-type': body && req.headers['content-type'],\n 'content-encoding': body && req.headers['content-encoding'],\n 'content-length': body && req.headers['content-length'],\n\n authorization: `Bearer ${await ctx.serviceAuthJwt(credentials.did, aud, lxm)}`,\n }\n\n const dispatchOptions: Dispatcher.RequestOptions = {\n origin,\n method: req.method,\n path: req.originalUrl,\n body,\n headers,\n }\n\n await pipethroughStream(ctx, dispatchOptions, (upstream) => {\n res.status(upstream.statusCode)\n\n for (const [name, val] of responseHeaders(upstream.headers)) {\n res.setHeader(name, val)\n }\n\n // Note that we should not need to manually handle errors here (e.g. by\n // destroying the response), as the http server will handle them for us.\n res.on('error', logResponseError)\n\n // Tell undici to write the upstream response directly to the response\n return res\n })\n } catch (err) {\n next(err)\n }\n }\n}\n\nexport type PipethroughOptions = {\n /**\n * Specify the issuer (requester) for service auth. If not provided, no\n * authorization headers will be added to the request.\n */\n iss?: string\n\n /**\n * Override the audience for service auth. If not provided, the audience will\n * be determined based on the proxy service.\n */\n aud?: string\n\n /**\n * Override the lexicon method for service auth. If not provided, the lexicon\n * method will be determined based on the request path.\n */\n lxm?: string\n}\n\nexport async function pipethrough(\n ctx: AppContext,\n req: Request,\n options?: PipethroughOptions,\n): Promise<\n HandlerPipeThroughStream & {\n stream: Readable\n headers: Record<string, string>\n encoding: string\n }\n> {\n if (req.method !== 'GET' && req.method !== 'HEAD') {\n // pipethrough() is used from within xrpcServer handlers, which means that\n // the request body either has been parsed or is a readable stream that has\n // been piped for decoding & size limiting. Because of this, forwarding the\n // request body requires re-encoding it. Since we currently do not use\n // pipethrough() with procedures, proxying of request body is not\n // implemented.\n throw new InternalServerError(\n `Proxying of ${req.method} requests is not supported`,\n )\n }\n\n const lxm = parseReqNsid(req)\n\n const { url: origin, did: aud } = await parseProxyInfo(ctx, req, lxm)\n\n const dispatchOptions: Dispatcher.RequestOptions = {\n origin,\n method: req.method,\n path: req.originalUrl,\n headers: {\n 'accept-language': req.headers['accept-language'],\n 'atproto-accept-labelers': req.headers['atproto-accept-labelers'],\n 'x-bsky-topics': req.headers['x-bsky-topics'],\n\n // Because we sometimes need to interpret the response (e.g. during\n // read-after-write, through asPipeThroughBuffer()), we need to ask the\n // upstream server for an encoding that both the requester and the PDS can\n // understand. Since we might have to do the decoding ourselves, we will\n // use our own preferences (and weight) to negotiate the encoding.\n 'accept-encoding': buildProxiedContentEncoding(\n req.headers['accept-encoding'],\n ctx.cfg.proxy.preferCompressed,\n ),\n\n authorization: options?.iss\n ? `Bearer ${await ctx.serviceAuthJwt(options.iss, options.aud ?? aud, options.lxm ?? lxm)}`\n : undefined,\n },\n\n // Use a high water mark to buffer more data while performing async\n // operations before this stream is consumed. This is especially useful\n // while processing read-after-write operations.\n highWaterMark: 2 * 65536, // twice the default (64KiB)\n }\n\n const { headers, body } = await pipethroughRequest(ctx, dispatchOptions)\n\n return {\n encoding: safeString(headers['content-type']) ?? 'application/json',\n headers: Object.fromEntries(responseHeaders(headers)),\n stream: body,\n }\n}\n\n// Request setup/formatting\n// -------------------\n\nexport function computeProxyTo(\n ctx: AppContext,\n req: Request,\n lxm: string,\n): string {\n const proxyToHeader = req.header('atproto-proxy')\n if (proxyToHeader) return proxyToHeader\n\n const service = defaultService(ctx, lxm)\n if (service.serviceInfo) {\n return `${service.serviceInfo.did}#${service.serviceId}`\n }\n\n throw new InvalidRequestError(`No service configured for ${lxm}`)\n}\n\nexport async function parseProxyInfo(\n ctx: AppContext,\n req: Request,\n lxm: string,\n): Promise<{ url: string; did: string }> {\n // /!\\ Hot path\n\n const proxyToHeader = req.header('atproto-proxy')\n if (proxyToHeader) return parseProxyHeader(ctx, proxyToHeader)\n\n const { serviceInfo } = defaultService(ctx, lxm)\n if (serviceInfo) return serviceInfo\n\n throw new InvalidRequestError(`No service configured for ${lxm}`)\n}\n\nexport const parseProxyHeader = async (\n // Using subset of AppContext for testing purposes\n ctx: Pick<AppContext, 'cfg' | 'idResolver'>,\n proxyTo: string,\n): Promise<{ did: string; url: string }> => {\n // /!\\ Hot path\n\n const hashIndex = proxyTo.indexOf('#')\n\n if (hashIndex === 0) {\n throw new InvalidRequestError('no did specified in proxy header')\n }\n\n if (hashIndex === -1 || hashIndex === proxyTo.length - 1) {\n throw new InvalidRequestError('no service id specified in proxy header')\n }\n\n // More than one hash\n if (proxyTo.indexOf('#', hashIndex + 1) !== -1) {\n throw new InvalidRequestError('invalid proxy header format')\n }\n\n // Basic validation\n if (proxyTo.includes(' ')) {\n throw new InvalidRequestError('proxy header cannot contain spaces')\n }\n\n const did = proxyTo.slice(0, hashIndex)\n\n // Special case a configured appview, while still proxying correctly any other appview\n if (\n ctx.cfg.bskyAppView &&\n proxyTo === `${ctx.cfg.bskyAppView.did}#bsky_appview`\n ) {\n return { did, url: ctx.cfg.bskyAppView.url }\n }\n\n const didDoc = await ctx.idResolver.did.resolve(did)\n if (!didDoc) {\n throw new InvalidRequestError('could not resolve proxy did')\n }\n\n const serviceId = proxyTo.slice(hashIndex)\n const url = getServiceEndpoint(didDoc, { id: serviceId })\n if (!url) {\n throw new InvalidRequestError('could not resolve proxy did service url')\n }\n\n return { did, url }\n}\n\n/**\n * Utility function that wraps the undici stream() function and handles request\n * and response errors by wrapping them in XRPCError instances. This function is\n * more efficient than \"pipethroughRequest\" when a writable stream to pipe the\n * upstream response to is available.\n */\nasync function pipethroughStream(\n ctx: AppContext,\n dispatchOptions: Dispatcher.RequestOptions,\n successStreamFactory: Dispatcher.StreamFactory,\n): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n void ctx.proxyAgent\n .stream(dispatchOptions, (upstream) => {\n if (upstream.statusCode >= 400) {\n const passThrough = new PassThrough()\n\n void tryParsingError(upstream.headers, passThrough).then((parsed) => {\n const xrpcError = new XRPCClientError(\n upstream.statusCode === 500\n ? ResponseType.UpstreamFailure\n : upstream.statusCode,\n parsed.error,\n parsed.message,\n Object.fromEntries(responseHeaders(upstream.headers, false)),\n { cause: dispatchOptions },\n )\n\n reject(xrpcError)\n }, reject)\n\n return passThrough\n }\n\n const writable = successStreamFactory(upstream)\n\n // As soon as the control was passed to the writable stream (i.e. by\n // returning the writable hereafter), pipethroughStream() is considered\n // to have succeeded. Any error occurring while writing upstream data to\n // the writable stream should be handled through the stream's error\n // state (i.e. successStreamFactory() must ensure that error events on\n // the returned writable will be handled).\n resolve()\n\n return writable\n })\n // The following catch block will be triggered with either network errors\n // or writable stream errors. In the latter case, the promise will already\n // be resolved, and reject()ing it there after will have no effect. Those\n // error would still be logged by the successStreamFactory() function.\n .catch(handleUpstreamRequestError)\n .catch(reject)\n })\n}\n\n/**\n * Utility function that wraps the undici request() function and handles request\n * and response errors by wrapping them in XRPCError instances.\n */\nasync function pipethroughRequest(\n ctx: AppContext,\n dispatchOptions: Dispatcher.RequestOptions,\n) {\n // HandlerPipeThroughStream requires a readable stream to be returned, so we\n // use the (less efficient) request() function instead.\n\n const upstream = await ctx.proxyAgent\n .request(dispatchOptions)\n .catch(handleUpstreamRequestError)\n\n if (upstream.statusCode >= 400) {\n const parsed = await tryParsingError(upstream.headers, upstream.body)\n\n // Note \"XRPCClientError\" is used instead of \"XRPCServerError\" in order to\n // allow users of this function to capture & handle these errors (namely in\n // \"app.bsky.feed.getPostThread\").\n throw new XRPCClientError(\n upstream.statusCode === 500\n ? ResponseType.UpstreamFailure\n : upstream.statusCode,\n parsed.error,\n parsed.message,\n Object.fromEntries(responseHeaders(upstream.headers, false)),\n { cause: dispatchOptions },\n )\n }\n\n return upstream\n}\n\nfunction handleUpstreamRequestError(\n err: unknown,\n message = 'Upstream service unreachable',\n): never {\n httpLogger.error({ err }, message)\n throw new XRPCServerError(ResponseType.UpstreamFailure, message, undefined, {\n cause: err,\n })\n}\n\n// Request parsing/forwarding\n// -------------------\n\nexport function isJsonContentType(contentType?: string): boolean | undefined {\n if (!contentType) return undefined\n return /application\\/(?:\\w+\\+)?json/i.test(contentType)\n}\n\nasync function tryParsingError(\n headers: IncomingHttpHeaders,\n readable: Readable,\n): Promise<{ error?: string; message?: string }> {\n if (isJsonContentType(headers['content-type']) === false) {\n // We don't known how to parse non JSON content types so we can discard the\n // whole response.\n\n // Since we don't care about the response, we would normally just destroy\n // the stream. However, if the underlying HTTP connection is an HTTP/1.1\n // connection, this also destroys the underlying (keep-alive) TCP socket. In\n // order to avoid destroying the TCP socket, while avoiding the cost of\n // consuming too much IO, we give it a chance to finish first.\n\n // @NOTE we need to listen (and ignore) \"error\" events, otherwise the\n // process could crash (since we drain the stream asynchronously here). This\n // is performed through the \"finished\" call below.\n\n const to = setTimeout(() => {\n readable.destroy()\n }, 100)\n finished(readable, (_err) => {\n clearTimeout(to)\n })\n readable.resume()\n\n return {}\n }\n\n try {\n const buffer = await bufferUpstreamResponse(\n readable,\n headers['content-encoding'],\n )\n\n const errInfo: unknown = JSON.parse(buffer.toString('utf8'))\n return {\n error: safeString(errInfo?.['error']),\n message: safeString(errInfo?.['message']),\n }\n } catch (err) {\n // Failed to read, decode, buffer or parse. No big deal.\n return {}\n }\n}\n\nasync function bufferUpstreamResponse(\n readable: Readable,\n contentEncoding?: string | string[],\n): Promise<Buffer> {\n try {\n return await streamToNodeBuffer(decodeStream(readable, contentEncoding))\n } catch (err) {\n if (!readable.destroyed) readable.destroy()\n\n throw new XRPCServerError(\n ResponseType.UpstreamFailure,\n err instanceof TypeError ? err.message : 'unable to decode request body',\n undefined,\n { cause: err },\n )\n }\n}\n\nexport async function asPipeThroughBuffer(\n input: HandlerPipeThroughStream,\n): Promise<HandlerPipeThroughBuffer> {\n return {\n buffer: await bufferUpstreamResponse(\n input.stream,\n input.headers?.['content-encoding'],\n ),\n headers: omit(input.headers, ['content-encoding', 'content-length']),\n encoding: input.encoding,\n }\n}\n\n// Response parsing/forwarding\n// -------------------\n\nconst RES_HEADERS_TO_FORWARD = [\n 'atproto-repo-rev',\n 'atproto-content-labelers',\n 'retry-after',\n]\n\nfunction* responseHeaders(\n headers: IncomingHttpHeaders,\n includeContentHeaders = true,\n): Generator<[string, string]> {\n if (includeContentHeaders) {\n const length = headers['content-length']\n if (length) yield ['content-length', length]\n\n const encoding = headers['content-encoding']\n if (encoding) yield ['content-encoding', encoding]\n\n const type = headers['content-type']\n if (type) yield ['content-type', type]\n\n const language = headers['content-language']\n if (language) yield ['content-language', language]\n }\n\n for (let i = 0; i < RES_HEADERS_TO_FORWARD.length; i++) {\n const name = RES_HEADERS_TO_FORWARD[i]\n const val = headers[name]\n\n if (val != null) {\n const value: string = Array.isArray(val) ? val.join(',') : val\n yield [name, value]\n }\n }\n}\n\n// Utils\n// -------------------\n\nexport const CHAT_BSKY_METHODS = new Set<string>([\n ids.ChatBskyActorDeleteAccount,\n ids.ChatBskyActorExportAccountData,\n ids.ChatBskyConvoDeleteMessageForSelf,\n ids.ChatBskyConvoGetConvo,\n ids.ChatBskyConvoGetConvoForMembers,\n ids.ChatBskyConvoGetLog,\n ids.ChatBskyConvoGetMessages,\n ids.ChatBskyConvoLeaveConvo,\n ids.ChatBskyConvoListConvos,\n ids.ChatBskyConvoMuteConvo,\n ids.ChatBskyConvoSendMessage,\n ids.ChatBskyConvoSendMessageBatch,\n ids.ChatBskyConvoUnmuteConvo,\n ids.ChatBskyConvoUpdateRead,\n])\n\nexport const PRIVILEGED_METHODS = new Set<string>([\n ...CHAT_BSKY_METHODS,\n ids.ComAtprotoServerCreateAccount,\n])\n\n// These endpoints are related to account management and must be used directly,\n// not proxied or service-authed. Service auth may be utilized between PDS and\n// entryway for these methods.\nexport const PROTECTED_METHODS = new Set<string>([\n ids.ComAtprotoAdminSendEmail,\n ids.ComAtprotoIdentityRequestPlcOperationSignature,\n ids.ComAtprotoIdentitySignPlcOperation,\n ids.ComAtprotoIdentityUpdateHandle,\n ids.ComAtprotoServerActivateAccount,\n ids.ComAtprotoServerConfirmEmail,\n ids.ComAtprotoServerCreateAppPassword,\n ids.ComAtprotoServerDeactivateAccount,\n ids.ComAtprotoServerGetAccountInviteCodes,\n ids.ComAtprotoServerGetSession,\n ids.ComAtprotoServerListAppPasswords,\n ids.ComAtprotoServerRequestAccountDelete,\n ids.ComAtprotoServerRequestEmailConfirmation,\n ids.ComAtprotoServerRequestEmailUpdate,\n ids.ComAtprotoServerRevokeAppPassword,\n ids.ComAtprotoServerUpdateEmail,\n])\n\nconst defaultService = (\n ctx: AppContext,\n nsid: string,\n): {\n serviceId: string\n serviceInfo: { url: string; did: string } | null\n} => {\n switch (nsid) {\n case ids.ToolsOzoneTeamAddMember:\n case ids.ToolsOzoneTeamDeleteMember:\n case ids.ToolsOzoneTeamUpdateMember:\n case ids.ToolsOzoneTeamListMembers:\n case ids.ToolsOzoneCommunicationCreateTemplate:\n case ids.ToolsOzoneCommunicationDeleteTemplate:\n case ids.ToolsOzoneCommunicationUpdateTemplate:\n case ids.ToolsOzoneCommunicationListTemplates:\n case ids.ToolsOzoneModerationEmitEvent:\n case ids.ToolsOzoneModerationGetEvent:\n case ids.ToolsOzoneModerationGetRecord:\n case ids.ToolsOzoneModerationGetRepo:\n case ids.ToolsOzoneModerationQueryEvents:\n case ids.ToolsOzoneModerationQueryStatuses:\n case ids.ToolsOzoneModerationSearchRepos:\n case ids.ToolsOzoneModerationGetAccountTimeline:\n case ids.ToolsOzoneVerificationListVerifications:\n case ids.ToolsOzoneVerificationGrantVerifications:\n case ids.ToolsOzoneVerificationRevokeVerifications:\n case ids.ToolsOzoneSafelinkAddRule:\n case ids.ToolsOzoneSafelinkUpdateRule:\n case ids.ToolsOzoneSafelinkRemoveRule:\n case ids.ToolsOzoneSafelinkQueryEvents:\n case ids.ToolsOzoneSafelinkQueryRules:\n case ids.ToolsOzoneModerationListScheduledActions:\n case ids.ToolsOzoneModerationCancelScheduledActions:\n case ids.ToolsOzoneModerationScheduleAction:\n return {\n serviceId: 'atproto_labeler',\n serviceInfo: ctx.cfg.modService,\n }\n case ids.ComAtprotoModerationCreateReport:\n return {\n serviceId: 'atproto_labeler',\n serviceInfo: ctx.cfg.reportService,\n }\n default:\n return {\n serviceId: 'bsky_appview',\n serviceInfo: ctx.cfg.bskyAppView,\n }\n }\n}\n\nconst safeString = (str: unknown): string | undefined => {\n return typeof str === 'string' ? str : undefined\n}\n\nfunction logResponseError(this: ServerResponse, err: unknown): void {\n httpLogger.warn({ err }, 'error forwarding upstream response')\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/read-after-write/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB;AACvB,yCAAsB;AACtB,2CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/read-after-write/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB;AACvB,yCAAsB;AACtB,2CAAwB","sourcesContent":["export * from './types'\nexport * from './util'\nexport * from './viewer'\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/read-after-write/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/read-after-write/types.ts"],"names":[],"mappings":"","sourcesContent":["import { CID } from 'multiformats/cid'\nimport { AtUri } from '@atproto/syntax'\nimport { Headers } from '@atproto/xrpc'\nimport { Record as ProfileRecord } from '../lexicon/types/app/bsky/actor/profile'\nimport { Record as PostRecord } from '../lexicon/types/app/bsky/feed/post'\nimport { LocalViewer } from './viewer'\n\nexport type LocalRecords = {\n count: number\n profile: RecordDescript<ProfileRecord> | null\n posts: RecordDescript<PostRecord>[]\n}\n\nexport type RecordDescript<T> = {\n uri: AtUri\n cid: CID\n indexedAt: string\n record: T\n}\n\nexport type ApiRes<T> = {\n headers: Headers\n data: T\n}\n\nexport type MungeFn<T> = (\n localViewer: LocalViewer,\n original: T,\n local: LocalRecords,\n requester: string,\n) => Promise<T>\n\nexport type HandlerResponse<T> = {\n encoding: 'application/json'\n body: T\n headers?: Record<string, string>\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/read-after-write/util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/read-after-write/util.ts"],"names":[],"mappings":"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","sourcesContent":["import express from 'express'\nimport { jsonToLex } from '@atproto/lexicon'\nimport { HeadersMap } from '@atproto/xrpc'\nimport {\n HandlerPipeThrough,\n HandlerPipeThroughBuffer,\n parseReqNsid,\n} from '@atproto/xrpc-server'\nimport { AppContext } from '../context'\nimport { lexicons } from '../lexicon/lexicons'\nimport { readStickyLogger as log } from '../logger'\nimport {\n asPipeThroughBuffer,\n isJsonContentType,\n pipethrough,\n} from '../pipethrough'\nimport { HandlerResponse, LocalRecords, MungeFn } from './types'\n\nconst REPO_REV_HEADER = 'atproto-repo-rev'\n\nexport const getRepoRev = (headers: HeadersMap): string | undefined => {\n return headers[REPO_REV_HEADER]\n}\n\nexport const getLocalLag = (local: LocalRecords): number | undefined => {\n let oldest: string | undefined = local.profile?.indexedAt\n for (const post of local.posts) {\n if (!oldest || post.indexedAt < oldest) {\n oldest = post.indexedAt\n }\n }\n if (!oldest) return undefined\n return Date.now() - new Date(oldest).getTime()\n}\n\nexport const pipethroughReadAfterWrite = async <T>(\n ctx: AppContext,\n reqCtx: { req: express.Request; auth: { credentials: { did: string } } },\n munge: MungeFn<T>,\n): Promise<HandlerResponse<T> | HandlerPipeThrough> => {\n const { req, auth } = reqCtx\n const requester = auth.credentials.did\n\n const streamRes = await pipethrough(ctx, req, { iss: requester })\n\n const rev = getRepoRev(streamRes.headers)\n if (!rev) return streamRes\n\n if (isJsonContentType(streamRes.headers['content-type']) === false) {\n // content-type is present but not JSON, we can't munge this\n return streamRes\n }\n\n // if the munging fails, we can't return the original response because the\n // stream will already have been read. If we end-up buffering the response,\n // we'll return the buffered response in case of an error.\n let bufferRes: HandlerPipeThroughBuffer | undefined\n\n try {\n const lxm = parseReqNsid(req)\n\n return await ctx.actorStore.read(requester, async (store) => {\n const local = await store.record.getRecordsSinceRev(rev)\n if (local.count === 0) return streamRes\n\n const { buffer } = (bufferRes = await asPipeThroughBuffer(streamRes))\n\n const lex = jsonToLex(JSON.parse(buffer.toString('utf8')))\n\n const parsedRes = lexicons.assertValidXrpcOutput(lxm, lex) as T\n\n const localViewer = ctx.localViewer(store)\n\n const data = await munge(localViewer, parsedRes, local, requester)\n return formatMungedResponse(data, getLocalLag(local))\n })\n } catch (err) {\n // The error occurred while reading the stream, this is non-recoverable\n if (!bufferRes && !streamRes.stream.readable) throw err\n\n log.warn({ err, requester }, 'error in read after write munge')\n return bufferRes ?? streamRes\n }\n}\n\nexport const formatMungedResponse = <T>(\n body: T,\n lag?: number,\n): HandlerResponse<T> => ({\n encoding: 'application/json',\n body,\n headers:\n lag !== undefined\n ? {\n 'Atproto-Upstream-Lag': lag.toString(10),\n }\n : undefined,\n})\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"viewer.js","sourceRoot":"","sources":["../../src/read-after-write/viewer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"viewer.js","sourceRoot":"","sources":["../../src/read-after-write/viewer.ts"],"names":[],"mappings":"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","sourcesContent":["import { AtUri, INVALID_HANDLE } from '@atproto/syntax'\nimport { createServiceAuthHeaders } from '@atproto/xrpc-server'\nimport { AccountManager } from '../account-manager/account-manager'\nimport { ActorStoreReader } from '../actor-store/actor-store-reader'\nimport { BskyAppView } from '../bsky-app-view'\nimport { ImageUrlBuilder } from '../image/image-url-builder'\nimport { ids } from '../lexicon/lexicons'\nimport {\n ProfileView,\n ProfileViewBasic,\n ProfileViewDetailed,\n} from '../lexicon/types/app/bsky/actor/defs'\nimport { Record as ProfileRecord } from '../lexicon/types/app/bsky/actor/profile'\nimport {\n Main as EmbedExternal,\n View as EmbedExternalView,\n isMain as isEmbedExternal,\n} from '../lexicon/types/app/bsky/embed/external'\nimport {\n Main as EmbedImages,\n View as EmbedImagesView,\n isMain as isEmbedImages,\n} from '../lexicon/types/app/bsky/embed/images'\nimport {\n Main as EmbedRecord,\n View as EmbedRecordView,\n ViewRecord,\n isMain as isEmbedRecord,\n} from '../lexicon/types/app/bsky/embed/record'\nimport {\n Main as EmbedRecordWithMedia,\n isMain as isEmbedRecordWithMedia,\n} from '../lexicon/types/app/bsky/embed/recordWithMedia'\nimport {\n FeedViewPost,\n GeneratorView,\n PostView,\n} from '../lexicon/types/app/bsky/feed/defs'\nimport { Record as PostRecord } from '../lexicon/types/app/bsky/feed/post'\nimport { ListView } from '../lexicon/types/app/bsky/graph/defs'\nimport { $Typed } from '../lexicon/util'\nimport { LocalRecords, RecordDescript } from './types'\n\ntype CommonSignedUris = 'avatar' | 'banner' | 'feed_thumbnail' | 'feed_fullsize'\n\nexport type LocalViewerCreator = (\n actorStoreReader: ActorStoreReader,\n) => LocalViewer\n\nexport class LocalViewer {\n constructor(\n public readonly actorStoreReader: ActorStoreReader,\n public readonly accountManager: AccountManager,\n public readonly imageUrlBuilder: ImageUrlBuilder,\n public readonly bskyAppView?: BskyAppView,\n ) {}\n\n get did() {\n return this.actorStoreReader.did\n }\n\n static creator(\n accountManager: AccountManager,\n imageUrlBuilder: ImageUrlBuilder,\n bskyAppView?: BskyAppView,\n ): LocalViewerCreator {\n return (actorStore) =>\n new LocalViewer(actorStore, accountManager, imageUrlBuilder, bskyAppView)\n }\n\n getImageUrl(pattern: CommonSignedUris, cid: string) {\n return this.imageUrlBuilder.build(pattern, this.did, cid)\n }\n\n async serviceAuthHeaders(did: string, lxm: string) {\n if (!this.bskyAppView) {\n throw new Error('Could not find bsky appview did')\n }\n const keypair = await this.actorStoreReader.keypair()\n\n return createServiceAuthHeaders({\n iss: did,\n aud: this.bskyAppView.did,\n lxm,\n keypair,\n })\n }\n\n async getRecordsSinceRev(rev: string): Promise<LocalRecords> {\n return this.actorStoreReader.record.getRecordsSinceRev(rev)\n }\n\n async getProfileBasic(): Promise<ProfileViewBasic | null> {\n const [profileRes, accountRes] = await Promise.all([\n this.actorStoreReader.record.getProfileRecord(),\n this.accountManager.getAccount(this.did),\n ])\n\n if (!accountRes) return null\n\n return {\n did: this.did,\n handle: accountRes.handle ?? INVALID_HANDLE,\n displayName: profileRes?.displayName,\n avatar: profileRes?.avatar\n ? this.getImageUrl('avatar', profileRes.avatar.ref.toString())\n : undefined,\n }\n }\n\n async formatAndInsertPostsInFeed(\n feed: FeedViewPost[],\n posts: RecordDescript<PostRecord>[],\n ): Promise<FeedViewPost[]> {\n if (posts.length === 0) {\n return feed\n }\n const lastTime = feed.at(-1)?.post.indexedAt ?? new Date(0).toISOString()\n const inFeed = posts.filter((p) => p.indexedAt > lastTime)\n const newestToOldest = inFeed.reverse()\n const maybeFormatted = await Promise.all(\n newestToOldest.map((p) => this.getPost(p)),\n )\n const formatted = maybeFormatted.filter((p) => p !== null) as PostView[]\n for (const post of formatted) {\n const idx = feed.findIndex((fi) => fi.post.indexedAt < post.indexedAt)\n if (idx >= 0) {\n feed.splice(idx, 0, { post })\n } else {\n feed.push({ post })\n }\n }\n return feed\n }\n\n async getPost(\n descript: RecordDescript<PostRecord>,\n ): Promise<PostView | null> {\n const { uri, cid, indexedAt, record } = descript\n const author = await this.getProfileBasic()\n if (!author) return null\n const embed = record.embed\n ? await this.formatPostEmbed(author.did, record)\n : undefined\n return {\n uri: uri.toString(),\n cid: cid.toString(),\n likeCount: 0, // counts presumed to be 0 directly after post creation\n replyCount: 0,\n repostCount: 0,\n quoteCount: 0,\n author,\n record,\n embed: embed ?? undefined,\n indexedAt,\n }\n }\n\n async formatPostEmbed(did: string, post: PostRecord) {\n const embed = post.embed\n if (!embed) return null\n if (isEmbedImages(embed) || isEmbedExternal(embed)) {\n return this.formatSimpleEmbed(embed)\n } else if (isEmbedRecord(embed)) {\n return this.formatRecordEmbed(embed)\n } else if (isEmbedRecordWithMedia(embed)) {\n return this.formatRecordWithMediaEmbed(did, embed)\n } else {\n return null\n }\n }\n\n async formatSimpleEmbed(\n embed: $Typed<EmbedImages> | $Typed<EmbedExternal>,\n ): Promise<$Typed<EmbedImagesView> | $Typed<EmbedExternalView>> {\n if (isEmbedImages(embed)) {\n const images = embed.images.map((img) => ({\n thumb: this.getImageUrl('feed_thumbnail', img.image.ref.toString()),\n fullsize: this.getImageUrl('feed_fullsize', img.image.ref.toString()),\n aspectRatio: img.aspectRatio,\n alt: img.alt,\n }))\n return {\n $type: 'app.bsky.embed.images#view',\n images,\n }\n } else if (isEmbedExternal(embed)) {\n const { uri, title, description, thumb } = embed.external\n return {\n $type: 'app.bsky.embed.external#view',\n external: {\n uri,\n title,\n description,\n thumb: thumb\n ? this.getImageUrl('feed_thumbnail', thumb.ref.toString())\n : undefined,\n },\n }\n } else {\n // @ts-expect-error\n throw new TypeError(`Unexpected embed type: ${embed.$type}`)\n }\n }\n\n async formatRecordEmbed(\n embed: EmbedRecord,\n ): Promise<$Typed<EmbedRecordView>> {\n const view = await this.formatRecordEmbedInternal(embed)\n return {\n $type: 'app.bsky.embed.record#view',\n record:\n view === null\n ? {\n $type: 'app.bsky.embed.record#viewNotFound',\n uri: embed.record.uri,\n }\n : view,\n }\n }\n\n private async formatRecordEmbedInternal(\n embed: EmbedRecord,\n ): Promise<\n null | $Typed<ViewRecord> | $Typed<GeneratorView> | $Typed<ListView>\n > {\n if (!this.bskyAppView) {\n return null\n }\n const collection = new AtUri(embed.record.uri).collection\n if (collection === ids.AppBskyFeedPost) {\n const res = await this.bskyAppView.agent.app.bsky.feed.getPosts(\n { uris: [embed.record.uri] },\n await this.serviceAuthHeaders(this.did, ids.AppBskyFeedGetPosts),\n )\n const post = res.data.posts[0]\n if (!post) return null\n return {\n $type: 'app.bsky.embed.record#viewRecord',\n uri: post.uri,\n cid: post.cid,\n author: post.author,\n value: post.record,\n labels: post.labels,\n embeds: post.embed ? [post.embed] : undefined,\n indexedAt: post.indexedAt,\n }\n } else if (collection === ids.AppBskyFeedGenerator) {\n const res = await this.bskyAppView.agent.app.bsky.feed.getFeedGenerator(\n { feed: embed.record.uri },\n await this.serviceAuthHeaders(\n this.did,\n ids.AppBskyFeedGetFeedGenerator,\n ),\n )\n return {\n $type: 'app.bsky.feed.defs#generatorView',\n ...res.data.view,\n }\n } else if (collection === ids.AppBskyGraphList) {\n const res = await this.bskyAppView.agent.app.bsky.graph.getList(\n { list: embed.record.uri },\n await this.serviceAuthHeaders(this.did, ids.AppBskyGraphGetList),\n )\n return {\n $type: 'app.bsky.graph.defs#listView',\n ...res.data.list,\n }\n }\n return null\n }\n\n async formatRecordWithMediaEmbed(did: string, embed: EmbedRecordWithMedia) {\n if (!isEmbedImages(embed.media) && !isEmbedExternal(embed.media)) {\n return null\n }\n const media = this.formatSimpleEmbed(embed.media)\n const record = await this.formatRecordEmbed(embed.record)\n return {\n $type: 'app.bsky.embed.recordWithMedia#view',\n record,\n media,\n }\n }\n\n updateProfileViewBasic<\n T extends ProfileViewDetailed | ProfileViewBasic | ProfileView,\n >(view: T, record: ProfileRecord): T {\n return {\n ...view,\n displayName: record.displayName,\n avatar: record.avatar\n ? this.getImageUrl('avatar', record.avatar.ref.toString())\n : undefined,\n }\n }\n\n updateProfileView<\n T extends ProfileViewDetailed | ProfileViewBasic | ProfileView,\n >(view: T, record: ProfileRecord): T {\n return {\n ...this.updateProfileViewBasic(view, record),\n description: record.description,\n }\n }\n\n updateProfileDetailed<T extends ProfileViewDetailed>(\n view: T,\n record: ProfileRecord,\n ): T {\n return {\n ...this.updateProfileView(view, record),\n banner: record.banner\n ? this.getImageUrl('banner', record.banner.ref.toString())\n : undefined,\n }\n }\n}\n"]}
package/dist/redis.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"redis.js","sourceRoot":"","sources":["../src/redis.ts"],"names":[],"mappings":";;;;;;AAAA,8DAAgC;AAChC,qCAA+B;AAC/B,qCAAsC;AAE/B,MAAM,cAAc,GAAG,CAAC,IAAY,EAAE,QAAiB,EAAS,EAAE;IACvE,MAAM,SAAS,GAAG,IAAA,yBAAiB,EAAC,IAAI,CAAC,CAAA;IACzC,MAAM,KAAK,GAAG,IAAI,eAAK,CAAC;QACtB,GAAG,SAAS;QACZ,QAAQ;KACT,CAAC,CAAA;IACF,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;QACxB,oBAAW,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,aAAa,CAAC,CAAA;IACjD,CAAC,CAAC,CAAA;IACF,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAVY,QAAA,cAAc,kBAU1B;AAEM,MAAM,iBAAiB,GAAG,CAC/B,IAAY,EACZ,WAAW,GAAG,IAAI,EACc,EAAE;IAClC,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAClD,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAA;IAC1D,IAAA,qBAAM,EAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,oBAAoB,IAAI,EAAE,CAAC,CAAA;IAC1E,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;AACvB,CAAC,CAAA;AARY,QAAA,iBAAiB,qBAQ7B"}
1
+ {"version":3,"file":"redis.js","sourceRoot":"","sources":["../src/redis.ts"],"names":[],"mappings":";;;;;;AAAA,8DAAgC;AAChC,qCAA+B;AAC/B,qCAAsC;AAE/B,MAAM,cAAc,GAAG,CAAC,IAAY,EAAE,QAAiB,EAAS,EAAE;IACvE,MAAM,SAAS,GAAG,IAAA,yBAAiB,EAAC,IAAI,CAAC,CAAA;IACzC,MAAM,KAAK,GAAG,IAAI,eAAK,CAAC;QACtB,GAAG,SAAS;QACZ,QAAQ;KACT,CAAC,CAAA;IACF,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;QACxB,oBAAW,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,aAAa,CAAC,CAAA;IACjD,CAAC,CAAC,CAAA;IACF,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAVY,QAAA,cAAc,kBAU1B;AAEM,MAAM,iBAAiB,GAAG,CAC/B,IAAY,EACZ,WAAW,GAAG,IAAI,EACc,EAAE;IAClC,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAClD,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAA;IAC1D,IAAA,qBAAM,EAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,oBAAoB,IAAI,EAAE,CAAC,CAAA;IAC1E,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;AACvB,CAAC,CAAA;AARY,QAAA,iBAAiB,qBAQ7B","sourcesContent":["import assert from 'node:assert'\nimport { Redis } from 'ioredis'\nimport { redisLogger } from './logger'\n\nexport const getRedisClient = (host: string, password?: string): Redis => {\n const redisAddr = redisAddressParts(host)\n const redis = new Redis({\n ...redisAddr,\n password,\n })\n redis.on('error', (err) => {\n redisLogger.error({ host, err }, 'redis error')\n })\n return redis\n}\n\nexport const redisAddressParts = (\n addr: string,\n defaultPort = 6379,\n): { host: string; port: number } => {\n const [host, portStr, ...others] = addr.split(':')\n const port = portStr ? parseInt(portStr, 10) : defaultPort\n assert(host && !isNaN(port) && !others.length, `invalid address: ${addr}`)\n return { host, port }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/repo/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAAyB;AACzB,0CAAuB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/repo/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAAyB;AACzB,0CAAuB","sourcesContent":["export * from './prepare'\nexport * from './types'\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"prepare.js","sourceRoot":"","sources":["../../src/repo/prepare.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prepare.js","sourceRoot":"","sources":["../../src/repo/prepare.ts"],"names":[],"mappings":"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","sourcesContent":["import { CID } from 'multiformats/cid'\nimport { TID, check, dataToCborBlock } from '@atproto/common'\nimport {\n BlobRef,\n LexValue,\n LexiconDefNotFoundError,\n RepoRecord,\n ValidationError,\n lexToIpld,\n untypedJsonBlobRef,\n} from '@atproto/lexicon'\nimport {\n RecordCreateOp,\n RecordDeleteOp,\n RecordUpdateOp,\n RecordWriteOp,\n WriteOpAction,\n cborToLex,\n} from '@atproto/repo'\nimport {\n AtUri,\n ensureValidDatetime,\n ensureValidRecordKey,\n} from '@atproto/syntax'\nimport { hasExplicitSlur } from '../handle/explicit-slurs'\nimport * as lex from '../lexicon/lexicons'\nimport * as AppBskyActorProfile from '../lexicon/types/app/bsky/actor/profile'\nimport * as AppBskyFeedGenerator from '../lexicon/types/app/bsky/feed/generator'\nimport * as AppBskyFeedPost from '../lexicon/types/app/bsky/feed/post'\nimport * as AppBskyGraphList from '../lexicon/types/app/bsky/graph/list'\nimport * as AppBskyGraphStarterpack from '../lexicon/types/app/bsky/graph/starterpack'\nimport { isTag } from '../lexicon/types/app/bsky/richtext/facet'\nimport { asPredicate } from '../lexicon/util'\nimport {\n InvalidRecordError,\n PreparedBlobRef,\n PreparedCreate,\n PreparedDelete,\n PreparedUpdate,\n PreparedWrite,\n ValidationStatus,\n} from './types'\n\nconst isValidFeedGenerator = asPredicate(AppBskyFeedGenerator.validateRecord)\nconst isValidStarterPack = asPredicate(AppBskyGraphStarterpack.validateRecord)\nconst isValidPost = asPredicate(AppBskyFeedPost.validateRecord)\nconst isValidList = asPredicate(AppBskyGraphList.validateRecord)\nconst isValidProfile = asPredicate(AppBskyActorProfile.validateRecord)\n\nexport const assertValidRecordWithStatus = (\n record: Record<string, unknown>,\n opts: { requireLexicon: boolean },\n): ValidationStatus => {\n if (typeof record.$type !== 'string') {\n throw new InvalidRecordError('No $type provided')\n }\n try {\n lex.lexicons.assertValidRecord(record.$type, record)\n assertValidCreatedAt(record)\n } catch (e) {\n if (e instanceof LexiconDefNotFoundError) {\n if (opts.requireLexicon) {\n throw new InvalidRecordError(e.message)\n } else {\n return 'unknown'\n }\n }\n throw new InvalidRecordError(\n `Invalid ${record.$type} record: ${\n e instanceof Error ? e.message : String(e)\n }`,\n )\n }\n return 'valid'\n}\n\n// additional more rigorous check on datetimes\n// this check will eventually be in the lex sdk, but this will stop the bleed until then\nexport const assertValidCreatedAt = (record: Record<string, unknown>) => {\n const createdAt = record['createdAt']\n if (typeof createdAt !== 'string') {\n return\n }\n try {\n ensureValidDatetime(createdAt)\n } catch {\n throw new ValidationError(\n 'createdAt must be an valid atproto datetime (both RFC-3339 and ISO-8601)',\n )\n }\n}\n\nexport const setCollectionName = (\n collection: string,\n record: RepoRecord,\n validate: boolean,\n) => {\n if (!record.$type) {\n record.$type = collection\n }\n if (validate && record.$type !== collection) {\n throw new InvalidRecordError(\n `Invalid $type: expected ${collection}, got ${record.$type}`,\n )\n }\n return record\n}\n\nexport const prepareCreate = async (opts: {\n did: string\n collection: string\n rkey?: string\n swapCid?: CID | null\n record: RepoRecord\n validate?: boolean\n}): Promise<PreparedCreate> => {\n const { did, collection, swapCid, validate } = opts\n const maybeValidate = validate !== false\n const record = setCollectionName(collection, opts.record, maybeValidate)\n let validationStatus: ValidationStatus\n if (maybeValidate) {\n validationStatus = assertValidRecordWithStatus(record, {\n requireLexicon: validate === true,\n })\n }\n const nextRkey = TID.next()\n const rkey = opts.rkey || nextRkey.toString()\n // @TODO: validate against Lexicon record 'key' type, not just overall recordkey syntax\n ensureValidRecordKey(rkey)\n assertNoExplicitSlurs(rkey, record)\n return {\n action: WriteOpAction.Create,\n uri: AtUri.make(did, collection, rkey),\n cid: await cidForSafeRecord(record),\n swapCid,\n record,\n blobs: blobsForWrite(record, maybeValidate),\n validationStatus,\n }\n}\n\nexport const prepareUpdate = async (opts: {\n did: string\n collection: string\n rkey: string\n swapCid?: CID | null\n record: RepoRecord\n validate?: boolean\n}): Promise<PreparedUpdate> => {\n const { did, collection, rkey, swapCid, validate } = opts\n const maybeValidate = validate !== false\n const record = setCollectionName(collection, opts.record, maybeValidate)\n let validationStatus: ValidationStatus\n if (maybeValidate) {\n validationStatus = assertValidRecordWithStatus(record, {\n requireLexicon: validate === true,\n })\n }\n assertNoExplicitSlurs(rkey, record)\n return {\n action: WriteOpAction.Update,\n uri: AtUri.make(did, collection, rkey),\n cid: await cidForSafeRecord(record),\n swapCid,\n record,\n blobs: blobsForWrite(record, maybeValidate),\n validationStatus,\n }\n}\n\nexport const prepareDelete = (opts: {\n did: string\n collection: string\n rkey: string\n swapCid?: CID | null\n}): PreparedDelete => {\n const { did, collection, rkey, swapCid } = opts\n return {\n action: WriteOpAction.Delete,\n uri: AtUri.make(did, collection, rkey),\n swapCid,\n }\n}\n\nexport const createWriteToOp = (write: PreparedCreate): RecordCreateOp => ({\n action: WriteOpAction.Create,\n collection: write.uri.collection,\n rkey: write.uri.rkey,\n record: write.record,\n})\n\nexport const updateWriteToOp = (write: PreparedUpdate): RecordUpdateOp => ({\n action: WriteOpAction.Update,\n collection: write.uri.collection,\n rkey: write.uri.rkey,\n record: write.record,\n})\n\nexport const deleteWriteToOp = (write: PreparedDelete): RecordDeleteOp => ({\n action: WriteOpAction.Delete,\n collection: write.uri.collection,\n rkey: write.uri.rkey,\n})\n\nexport const writeToOp = (write: PreparedWrite): RecordWriteOp => {\n switch (write.action) {\n case WriteOpAction.Create:\n return createWriteToOp(write)\n case WriteOpAction.Update:\n return updateWriteToOp(write)\n case WriteOpAction.Delete:\n return deleteWriteToOp(write)\n default:\n throw new Error(`Unrecognized action: ${write}`)\n }\n}\n\nasync function cidForSafeRecord(record: RepoRecord) {\n try {\n const block = await dataToCborBlock(lexToIpld(record))\n cborToLex(block.bytes)\n return block.cid\n } catch (err) {\n // Block does not properly transform between lex and cbor\n const badRecordErr = new InvalidRecordError('Bad record')\n badRecordErr.cause = err\n throw badRecordErr\n }\n}\n\nfunction assertNoExplicitSlurs(rkey: string, record: RepoRecord) {\n const toCheck: string[] = []\n\n if (isValidProfile(record)) {\n if (record.displayName) toCheck.push(record.displayName)\n } else if (isValidList(record)) {\n toCheck.push(record.name)\n } else if (isValidStarterPack(record)) {\n toCheck.push(record.name)\n } else if (isValidFeedGenerator(record)) {\n toCheck.push(rkey)\n toCheck.push(record.displayName)\n } else if (isValidPost(record)) {\n if (record.tags) {\n toCheck.push(...record.tags)\n }\n\n for (const facet of record.facets || []) {\n for (const feat of facet.features) {\n if (isTag(feat)) {\n toCheck.push(feat.tag)\n }\n }\n }\n }\n if (hasExplicitSlur(toCheck.join(' '))) {\n throw new InvalidRecordError('Unacceptable slur in record')\n }\n}\n\ntype FoundBlobRef = {\n ref: BlobRef\n path: string[]\n}\n\nexport const blobsForWrite = (\n record: RepoRecord,\n validate: boolean,\n): PreparedBlobRef[] => {\n const refs = findBlobRefs(record)\n const recordType =\n typeof record['$type'] === 'string' ? record['$type'] : undefined\n\n for (const ref of refs) {\n if (check.is(ref.ref.original, untypedJsonBlobRef)) {\n throw new InvalidRecordError(`Legacy blob ref at '${ref.path.join('/')}'`)\n }\n }\n\n return refs.map(({ ref, path }) => ({\n size: ref.size,\n cid: ref.ref,\n mimeType: ref.mimeType,\n constraints:\n validate && recordType\n ? CONSTRAINTS[recordType]?.[path.join('/')] ?? {}\n : {},\n }))\n}\n\nexport const findBlobRefs = (\n val: LexValue,\n path: string[] = [],\n layer = 0,\n): FoundBlobRef[] => {\n if (layer > 32) {\n return []\n }\n // walk arrays\n if (Array.isArray(val)) {\n return val.flatMap((item) => findBlobRefs(item, path, layer + 1))\n }\n // objects\n if (val && typeof val === 'object') {\n // convert blobs, leaving the original encoding so that we don't change CIDs on re-encode\n if (val instanceof BlobRef) {\n return [\n {\n ref: val,\n path,\n },\n ]\n }\n // retain cids & bytes\n if (CID.asCID(val) || val instanceof Uint8Array) {\n return []\n }\n return Object.entries(val).flatMap(([key, item]) =>\n findBlobRefs(item, [...path, key], layer + 1),\n )\n }\n // pass through\n return []\n}\n\nconst CONSTRAINTS = {\n [lex.ids.AppBskyActorProfile]: {\n avatar:\n lex.schemaDict.AppBskyActorProfile.defs.main.record.properties.avatar,\n banner:\n lex.schemaDict.AppBskyActorProfile.defs.main.record.properties.banner,\n },\n [lex.ids.AppBskyFeedGenerator]: {\n avatar:\n lex.schemaDict.AppBskyFeedGenerator.defs.main.record.properties.avatar,\n },\n [lex.ids.AppBskyGraphList]: {\n avatar: lex.schemaDict.AppBskyGraphList.defs.main.record.properties.avatar,\n },\n [lex.ids.AppBskyFeedPost]: {\n 'embed/images/image':\n lex.schemaDict.AppBskyEmbedImages.defs.image.properties.image,\n 'embed/external/thumb':\n lex.schemaDict.AppBskyEmbedExternal.defs.external.properties.thumb,\n 'embed/media/images/image':\n lex.schemaDict.AppBskyEmbedImages.defs.image.properties.image,\n 'embed/media/external/thumb':\n lex.schemaDict.AppBskyEmbedExternal.defs.external.properties.thumb,\n },\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/repo/types.ts"],"names":[],"mappings":";;;AAiEA,MAAa,kBAAmB,SAAQ,KAAK;CAAG;AAAhD,gDAAgD;AAEhD,MAAa,kBAAmB,SAAQ,KAAK;IAC3C,YAAmB,GAAQ;QACzB,KAAK,CAAC,iBAAiB,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;QAD9B;;;;mBAAO,GAAG;WAAK;IAE3B,CAAC;CACF;AAJD,gDAIC;AAED,MAAa,kBAAmB,SAAQ,KAAK;IAC3C,YAAmB,GAAe;QAChC,KAAK,CAAC,iBAAiB,GAAG,EAAE,QAAQ,EAAE,IAAI,MAAM,EAAE,CAAC,CAAA;QADzC;;;;mBAAO,GAAG;WAAY;IAElC,CAAC;CACF;AAJD,gDAIC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/repo/types.ts"],"names":[],"mappings":";;;AAiEA,MAAa,kBAAmB,SAAQ,KAAK;CAAG;AAAhD,gDAAgD;AAEhD,MAAa,kBAAmB,SAAQ,KAAK;IAC3C,YAAmB,GAAQ;QACzB,KAAK,CAAC,iBAAiB,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;QAD9B;;;;mBAAO,GAAG;WAAK;IAE3B,CAAC;CACF;AAJD,gDAIC;AAED,MAAa,kBAAmB,SAAQ,KAAK;IAC3C,YAAmB,GAAe;QAChC,KAAK,CAAC,iBAAiB,GAAG,EAAE,QAAQ,EAAE,IAAI,MAAM,EAAE,CAAC,CAAA;QADzC;;;;mBAAO,GAAG;WAAY;IAElC,CAAC;CACF;AAJD,gDAIC","sourcesContent":["import { CID } from 'multiformats/cid'\nimport { RepoRecord } from '@atproto/lexicon'\nimport { BlockMap, CommitData, WriteOpAction } from '@atproto/repo'\nimport { AtUri } from '@atproto/syntax'\n\nexport type ValidationStatus = 'valid' | 'unknown' | undefined\n\nexport type BlobConstraint = {\n accept?: string[]\n maxSize?: number\n}\n\nexport type PreparedBlobRef = {\n size: number\n cid: CID\n mimeType: string\n constraints: BlobConstraint\n}\n\nexport type PreparedCreate = {\n action: WriteOpAction.Create\n uri: AtUri\n cid: CID\n swapCid?: CID | null\n record: RepoRecord\n blobs: PreparedBlobRef[]\n validationStatus: ValidationStatus\n}\n\nexport type PreparedUpdate = {\n action: WriteOpAction.Update\n uri: AtUri\n cid: CID\n swapCid?: CID | null\n record: RepoRecord\n blobs: PreparedBlobRef[]\n validationStatus: ValidationStatus\n}\n\nexport type PreparedDelete = {\n action: WriteOpAction.Delete\n uri: AtUri\n swapCid?: CID | null\n}\n\nexport type CommitOp = {\n action: 'create' | 'update' | 'delete'\n path: string\n cid: CID | null\n prev?: CID\n}\n\nexport type CommitDataWithOps = CommitData & {\n ops: CommitOp[]\n prevData: CID | null\n}\n\nexport type PreparedWrite = PreparedCreate | PreparedUpdate | PreparedDelete\n\nexport type SyncEvtData = {\n cid: CID\n rev: string\n blocks: BlockMap\n}\n\nexport class InvalidRecordError extends Error {}\n\nexport class BadCommitSwapError extends Error {\n constructor(public cid: CID) {\n super(`Commit was at ${cid.toString()}`)\n }\n}\n\nexport class BadRecordSwapError extends Error {\n constructor(public cid: CID | null) {\n super(`Record was at ${cid?.toString() ?? 'null'}`)\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scripts/index.ts"],"names":[],"mappings":";;;AAAA,yDAA6E;AAC7E,iDAA4C;AAC5C,+CAIsB;AACtB,6DAAwD;AACxD,oEAA+D;AAElD,QAAA,OAAO,GAAG;IACrB,cAAc,EAAE,0BAAW;IAC3B,oBAAoB,EAAE,sCAAiB;IACvC,uBAAuB,EAAE,0BAAW;IACpC,aAAa,EAAE,wBAAU;IACzB,kBAAkB,EAAE,gCAAkB;IACtC,sBAAsB,EAAE,gCAAkB;IAC1C,kBAAkB,EAAE,kCAAe;IACnC,uBAAuB,EAAE,0CAAuB;CACjD,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scripts/index.ts"],"names":[],"mappings":";;;AAAA,yDAA6E;AAC7E,iDAA4C;AAC5C,+CAIsB;AACtB,6DAAwD;AACxD,oEAA+D;AAElD,QAAA,OAAO,GAAG;IACrB,cAAc,EAAE,0BAAW;IAC3B,oBAAoB,EAAE,sCAAiB;IACvC,uBAAuB,EAAE,0BAAW;IACpC,aAAa,EAAE,wBAAU;IACzB,kBAAkB,EAAE,gCAAkB;IACtC,sBAAsB,EAAE,gCAAkB;IAC1C,kBAAkB,EAAE,kCAAe;IACnC,uBAAuB,EAAE,0CAAuB;CACjD,CAAA","sourcesContent":["import { publishIdentity, publishIdentityFromFile } from './publish-identity'\nimport { rebuildRepo } from './rebuild-repo'\nimport {\n rotateKeys,\n rotateKeysFromFile,\n rotateKeysRecovery,\n} from './rotate-keys'\nimport { sequencerRecovery } from './sequencer-recovery'\nimport { repairRepos } from './sequencer-recovery/repair-repos'\n\nexport const scripts = {\n 'rebuild-repo': rebuildRepo,\n 'sequencer-recovery': sequencerRecovery,\n 'recovery-repair-repos': repairRepos,\n 'rotate-keys': rotateKeys,\n 'rotate-keys-file': rotateKeysFromFile,\n 'rotate-keys-recovery': rotateKeysRecovery,\n 'publish-identity': publishIdentity,\n 'publish-identity-file': publishIdentityFromFile,\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"publish-identity.js","sourceRoot":"","sources":["../../src/scripts/publish-identity.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAiC;AACjC,4CAAsC;AAEtC,iCAAoC;AAM7B,MAAM,eAAe,GAAG,KAAK,EAClC,GAA2B,EAC3B,IAAc,EACd,EAAE;IACF,MAAM,IAAI,GAAG,IAAI,CAAA;IACjB,MAAM,IAAA,iCAAyB,EAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IAC1C,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;AACrB,CAAC,CAAA;AAPY,QAAA,eAAe,mBAO3B;AAEM,MAAM,uBAAuB,GAAG,KAAK,EAC1C,GAA2B,EAC3B,IAAc,EACd,EAAE;IACF,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;IACxB,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;IAClD,CAAC;IACD,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,kBAAW,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACtD,MAAM,IAAI,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IACxC,MAAM,IAAI,GAAG,IAAI;SACd,QAAQ,EAAE;SACV,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;IAE3B,MAAM,IAAA,iCAAyB,EAAC,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,CAAA;IACvD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;AACrB,CAAC,CAAA;AAjBY,QAAA,uBAAuB,2BAiBnC;AAEM,MAAM,yBAAyB,GAAG,KAAK,EAC5C,GAA2B,EAC3B,IAAc,EACd,WAAW,GAAG,CAAC,EACf,EAAE;IACF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC;YACH,MAAM,GAAG,CAAC,SAAS,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAA;YAC5C,OAAO,CAAC,GAAG,CAAC,8BAA8B,GAAG,EAAE,CAAC,CAAA;QAClD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,2CAA2C,GAAG,KAAK,GAAG,EAAE,CAAC,CAAA;QACzE,CAAC;QACD,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,IAAA,aAAI,EAAC,WAAW,CAAC,CAAA;QACzB,CAAC;IACH,CAAC;AACH,CAAC,CAAA;AAhBY,QAAA,yBAAyB,6BAgBrC"}
1
+ {"version":3,"file":"publish-identity.js","sourceRoot":"","sources":["../../src/scripts/publish-identity.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAiC;AACjC,4CAAsC;AAEtC,iCAAoC;AAM7B,MAAM,eAAe,GAAG,KAAK,EAClC,GAA2B,EAC3B,IAAc,EACd,EAAE;IACF,MAAM,IAAI,GAAG,IAAI,CAAA;IACjB,MAAM,IAAA,iCAAyB,EAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IAC1C,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;AACrB,CAAC,CAAA;AAPY,QAAA,eAAe,mBAO3B;AAEM,MAAM,uBAAuB,GAAG,KAAK,EAC1C,GAA2B,EAC3B,IAAc,EACd,EAAE;IACF,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;IACxB,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;IAClD,CAAC;IACD,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,kBAAW,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACtD,MAAM,IAAI,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IACxC,MAAM,IAAI,GAAG,IAAI;SACd,QAAQ,EAAE;SACV,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;IAE3B,MAAM,IAAA,iCAAyB,EAAC,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,CAAA;IACvD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;AACrB,CAAC,CAAA;AAjBY,QAAA,uBAAuB,2BAiBnC;AAEM,MAAM,yBAAyB,GAAG,KAAK,EAC5C,GAA2B,EAC3B,IAAc,EACd,WAAW,GAAG,CAAC,EACf,EAAE;IACF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC;YACH,MAAM,GAAG,CAAC,SAAS,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAA;YAC5C,OAAO,CAAC,GAAG,CAAC,8BAA8B,GAAG,EAAE,CAAC,CAAA;QAClD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,2CAA2C,GAAG,KAAK,GAAG,EAAE,CAAC,CAAA;QACzE,CAAC;QACD,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,IAAA,aAAI,EAAC,WAAW,CAAC,CAAA;QACzB,CAAC;IACH,CAAC;AACH,CAAC,CAAA;AAhBY,QAAA,yBAAyB,6BAgBrC","sourcesContent":["import fs from 'node:fs/promises'\nimport { wait } from '@atproto/common'\nimport { Sequencer } from '../sequencer'\nimport { parseIntArg } from './util'\n\nexport type PublishIdentityContext = {\n sequencer: Sequencer\n}\n\nexport const publishIdentity = async (\n ctx: PublishIdentityContext,\n args: string[],\n) => {\n const dids = args\n await publishIdentityEvtForDids(ctx, dids)\n console.log('DONE')\n}\n\nexport const publishIdentityFromFile = async (\n ctx: PublishIdentityContext,\n args: string[],\n) => {\n const filepath = args[0]\n if (!filepath) {\n throw new Error('Expected filepath as argument')\n }\n const timeBetween = args[1] ? parseIntArg(args[1]) : 5\n const file = await fs.readFile(filepath)\n const dids = file\n .toString()\n .split('\\n')\n .map((did) => did.trim())\n\n await publishIdentityEvtForDids(ctx, dids, timeBetween)\n console.log('DONE')\n}\n\nexport const publishIdentityEvtForDids = async (\n ctx: PublishIdentityContext,\n dids: string[],\n timeBetween = 0,\n) => {\n for (const did of dids) {\n try {\n await ctx.sequencer.sequenceIdentityEvt(did)\n console.log(`published identity evt for ${did}`)\n } catch (err) {\n console.error(`failed to sequence new identity evt for ${did}: ${err}`)\n }\n if (timeBetween > 0) {\n await wait(timeBetween)\n }\n }\n}\n"]}