@atproto/pds 0.4.182 → 0.4.184

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 (567) 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 +6 -0
  200. package/dist/lexicon/index.d.ts.map +1 -1
  201. package/dist/lexicon/index.js +12 -0
  202. package/dist/lexicon/index.js.map +1 -1
  203. package/dist/lexicon/lexicons.d.ts +812 -8
  204. package/dist/lexicon/lexicons.d.ts.map +1 -1
  205. package/dist/lexicon/lexicons.js +413 -0
  206. package/dist/lexicon/lexicons.js.map +1 -1
  207. package/dist/lexicon/types/app/bsky/actor/defs.d.ts +2 -0
  208. package/dist/lexicon/types/app/bsky/actor/defs.d.ts.map +1 -1
  209. package/dist/lexicon/types/app/bsky/actor/defs.js.map +1 -1
  210. package/dist/lexicon/types/app/bsky/actor/getPreferences.js.map +1 -1
  211. package/dist/lexicon/types/app/bsky/actor/getProfile.js.map +1 -1
  212. package/dist/lexicon/types/app/bsky/actor/getProfiles.js.map +1 -1
  213. package/dist/lexicon/types/app/bsky/actor/getSuggestions.js.map +1 -1
  214. package/dist/lexicon/types/app/bsky/actor/profile.js.map +1 -1
  215. package/dist/lexicon/types/app/bsky/actor/putPreferences.js.map +1 -1
  216. package/dist/lexicon/types/app/bsky/actor/searchActors.js.map +1 -1
  217. package/dist/lexicon/types/app/bsky/actor/searchActorsTypeahead.js.map +1 -1
  218. package/dist/lexicon/types/app/bsky/actor/status.js.map +1 -1
  219. package/dist/lexicon/types/app/bsky/bookmark/createBookmark.js.map +1 -1
  220. package/dist/lexicon/types/app/bsky/bookmark/defs.js.map +1 -1
  221. package/dist/lexicon/types/app/bsky/bookmark/deleteBookmark.js.map +1 -1
  222. package/dist/lexicon/types/app/bsky/bookmark/getBookmarks.js.map +1 -1
  223. package/dist/lexicon/types/app/bsky/embed/defs.js.map +1 -1
  224. package/dist/lexicon/types/app/bsky/embed/external.js.map +1 -1
  225. package/dist/lexicon/types/app/bsky/embed/images.js.map +1 -1
  226. package/dist/lexicon/types/app/bsky/embed/record.js.map +1 -1
  227. package/dist/lexicon/types/app/bsky/embed/recordWithMedia.js.map +1 -1
  228. package/dist/lexicon/types/app/bsky/embed/video.js.map +1 -1
  229. package/dist/lexicon/types/app/bsky/feed/defs.js.map +1 -1
  230. package/dist/lexicon/types/app/bsky/feed/describeFeedGenerator.js.map +1 -1
  231. package/dist/lexicon/types/app/bsky/feed/generator.js.map +1 -1
  232. package/dist/lexicon/types/app/bsky/feed/getActorFeeds.js.map +1 -1
  233. package/dist/lexicon/types/app/bsky/feed/getActorLikes.js.map +1 -1
  234. package/dist/lexicon/types/app/bsky/feed/getAuthorFeed.js.map +1 -1
  235. package/dist/lexicon/types/app/bsky/feed/getFeed.js.map +1 -1
  236. package/dist/lexicon/types/app/bsky/feed/getFeedGenerator.js.map +1 -1
  237. package/dist/lexicon/types/app/bsky/feed/getFeedGenerators.js.map +1 -1
  238. package/dist/lexicon/types/app/bsky/feed/getFeedSkeleton.js.map +1 -1
  239. package/dist/lexicon/types/app/bsky/feed/getLikes.js.map +1 -1
  240. package/dist/lexicon/types/app/bsky/feed/getListFeed.js.map +1 -1
  241. package/dist/lexicon/types/app/bsky/feed/getPostThread.js.map +1 -1
  242. package/dist/lexicon/types/app/bsky/feed/getPosts.js.map +1 -1
  243. package/dist/lexicon/types/app/bsky/feed/getQuotes.js.map +1 -1
  244. package/dist/lexicon/types/app/bsky/feed/getRepostedBy.js.map +1 -1
  245. package/dist/lexicon/types/app/bsky/feed/getSuggestedFeeds.js.map +1 -1
  246. package/dist/lexicon/types/app/bsky/feed/getTimeline.js.map +1 -1
  247. package/dist/lexicon/types/app/bsky/feed/like.js.map +1 -1
  248. package/dist/lexicon/types/app/bsky/feed/post.js.map +1 -1
  249. package/dist/lexicon/types/app/bsky/feed/postgate.js.map +1 -1
  250. package/dist/lexicon/types/app/bsky/feed/repost.js.map +1 -1
  251. package/dist/lexicon/types/app/bsky/feed/searchPosts.js.map +1 -1
  252. package/dist/lexicon/types/app/bsky/feed/sendInteractions.js.map +1 -1
  253. package/dist/lexicon/types/app/bsky/feed/threadgate.js.map +1 -1
  254. package/dist/lexicon/types/app/bsky/graph/block.js.map +1 -1
  255. package/dist/lexicon/types/app/bsky/graph/defs.js.map +1 -1
  256. package/dist/lexicon/types/app/bsky/graph/follow.js.map +1 -1
  257. package/dist/lexicon/types/app/bsky/graph/getActorStarterPacks.js.map +1 -1
  258. package/dist/lexicon/types/app/bsky/graph/getBlocks.js.map +1 -1
  259. package/dist/lexicon/types/app/bsky/graph/getFollowers.js.map +1 -1
  260. package/dist/lexicon/types/app/bsky/graph/getFollows.js.map +1 -1
  261. package/dist/lexicon/types/app/bsky/graph/getKnownFollowers.js.map +1 -1
  262. package/dist/lexicon/types/app/bsky/graph/getList.js.map +1 -1
  263. package/dist/lexicon/types/app/bsky/graph/getListBlocks.js.map +1 -1
  264. package/dist/lexicon/types/app/bsky/graph/getListMutes.js.map +1 -1
  265. package/dist/lexicon/types/app/bsky/graph/getLists.js.map +1 -1
  266. package/dist/lexicon/types/app/bsky/graph/getListsWithMembership.js.map +1 -1
  267. package/dist/lexicon/types/app/bsky/graph/getMutes.js.map +1 -1
  268. package/dist/lexicon/types/app/bsky/graph/getRelationships.js.map +1 -1
  269. package/dist/lexicon/types/app/bsky/graph/getStarterPack.js.map +1 -1
  270. package/dist/lexicon/types/app/bsky/graph/getStarterPacks.js.map +1 -1
  271. package/dist/lexicon/types/app/bsky/graph/getStarterPacksWithMembership.js.map +1 -1
  272. package/dist/lexicon/types/app/bsky/graph/getSuggestedFollowsByActor.js.map +1 -1
  273. package/dist/lexicon/types/app/bsky/graph/list.js.map +1 -1
  274. package/dist/lexicon/types/app/bsky/graph/listblock.js.map +1 -1
  275. package/dist/lexicon/types/app/bsky/graph/listitem.js.map +1 -1
  276. package/dist/lexicon/types/app/bsky/graph/muteActor.js.map +1 -1
  277. package/dist/lexicon/types/app/bsky/graph/muteActorList.js.map +1 -1
  278. package/dist/lexicon/types/app/bsky/graph/muteThread.js.map +1 -1
  279. package/dist/lexicon/types/app/bsky/graph/searchStarterPacks.js.map +1 -1
  280. package/dist/lexicon/types/app/bsky/graph/starterpack.js.map +1 -1
  281. package/dist/lexicon/types/app/bsky/graph/unmuteActor.js.map +1 -1
  282. package/dist/lexicon/types/app/bsky/graph/unmuteActorList.js.map +1 -1
  283. package/dist/lexicon/types/app/bsky/graph/unmuteThread.js.map +1 -1
  284. package/dist/lexicon/types/app/bsky/graph/verification.js.map +1 -1
  285. package/dist/lexicon/types/app/bsky/labeler/defs.js.map +1 -1
  286. package/dist/lexicon/types/app/bsky/labeler/getServices.js.map +1 -1
  287. package/dist/lexicon/types/app/bsky/labeler/service.js.map +1 -1
  288. package/dist/lexicon/types/app/bsky/notification/declaration.js.map +1 -1
  289. package/dist/lexicon/types/app/bsky/notification/defs.js.map +1 -1
  290. package/dist/lexicon/types/app/bsky/notification/getPreferences.js.map +1 -1
  291. package/dist/lexicon/types/app/bsky/notification/getUnreadCount.js.map +1 -1
  292. package/dist/lexicon/types/app/bsky/notification/listActivitySubscriptions.js.map +1 -1
  293. package/dist/lexicon/types/app/bsky/notification/listNotifications.js.map +1 -1
  294. package/dist/lexicon/types/app/bsky/notification/putActivitySubscription.js.map +1 -1
  295. package/dist/lexicon/types/app/bsky/notification/putPreferences.js.map +1 -1
  296. package/dist/lexicon/types/app/bsky/notification/putPreferencesV2.js.map +1 -1
  297. package/dist/lexicon/types/app/bsky/notification/registerPush.js.map +1 -1
  298. package/dist/lexicon/types/app/bsky/notification/unregisterPush.js.map +1 -1
  299. package/dist/lexicon/types/app/bsky/notification/updateSeen.js.map +1 -1
  300. package/dist/lexicon/types/app/bsky/richtext/facet.js.map +1 -1
  301. package/dist/lexicon/types/app/bsky/unspecced/defs.js.map +1 -1
  302. package/dist/lexicon/types/app/bsky/unspecced/getAgeAssuranceState.js.map +1 -1
  303. package/dist/lexicon/types/app/bsky/unspecced/getConfig.js.map +1 -1
  304. package/dist/lexicon/types/app/bsky/unspecced/getOnboardingSuggestedStarterPacks.js.map +1 -1
  305. package/dist/lexicon/types/app/bsky/unspecced/getOnboardingSuggestedStarterPacksSkeleton.js.map +1 -1
  306. package/dist/lexicon/types/app/bsky/unspecced/getPopularFeedGenerators.js.map +1 -1
  307. package/dist/lexicon/types/app/bsky/unspecced/getPostThreadOtherV2.js.map +1 -1
  308. package/dist/lexicon/types/app/bsky/unspecced/getPostThreadV2.js.map +1 -1
  309. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedFeeds.js.map +1 -1
  310. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedFeedsSkeleton.js.map +1 -1
  311. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedStarterPacks.js.map +1 -1
  312. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedStarterPacksSkeleton.js.map +1 -1
  313. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedUsers.js.map +1 -1
  314. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedUsersSkeleton.js.map +1 -1
  315. package/dist/lexicon/types/app/bsky/unspecced/getSuggestionsSkeleton.js.map +1 -1
  316. package/dist/lexicon/types/app/bsky/unspecced/getTaggedSuggestions.js.map +1 -1
  317. package/dist/lexicon/types/app/bsky/unspecced/getTrendingTopics.js.map +1 -1
  318. package/dist/lexicon/types/app/bsky/unspecced/getTrends.js.map +1 -1
  319. package/dist/lexicon/types/app/bsky/unspecced/getTrendsSkeleton.js.map +1 -1
  320. package/dist/lexicon/types/app/bsky/unspecced/initAgeAssurance.js.map +1 -1
  321. package/dist/lexicon/types/app/bsky/unspecced/searchActorsSkeleton.js.map +1 -1
  322. package/dist/lexicon/types/app/bsky/unspecced/searchPostsSkeleton.js.map +1 -1
  323. package/dist/lexicon/types/app/bsky/unspecced/searchStarterPacksSkeleton.js.map +1 -1
  324. package/dist/lexicon/types/app/bsky/video/defs.js.map +1 -1
  325. package/dist/lexicon/types/app/bsky/video/getJobStatus.js.map +1 -1
  326. package/dist/lexicon/types/app/bsky/video/getUploadLimits.js.map +1 -1
  327. package/dist/lexicon/types/app/bsky/video/uploadVideo.js.map +1 -1
  328. package/dist/lexicon/types/chat/bsky/actor/declaration.js.map +1 -1
  329. package/dist/lexicon/types/chat/bsky/actor/defs.js.map +1 -1
  330. package/dist/lexicon/types/chat/bsky/actor/deleteAccount.js.map +1 -1
  331. package/dist/lexicon/types/chat/bsky/actor/exportAccountData.js.map +1 -1
  332. package/dist/lexicon/types/chat/bsky/convo/acceptConvo.js.map +1 -1
  333. package/dist/lexicon/types/chat/bsky/convo/addReaction.js.map +1 -1
  334. package/dist/lexicon/types/chat/bsky/convo/defs.js.map +1 -1
  335. package/dist/lexicon/types/chat/bsky/convo/deleteMessageForSelf.js.map +1 -1
  336. package/dist/lexicon/types/chat/bsky/convo/getConvo.js.map +1 -1
  337. package/dist/lexicon/types/chat/bsky/convo/getConvoAvailability.js.map +1 -1
  338. package/dist/lexicon/types/chat/bsky/convo/getConvoForMembers.js.map +1 -1
  339. package/dist/lexicon/types/chat/bsky/convo/getLog.js.map +1 -1
  340. package/dist/lexicon/types/chat/bsky/convo/getMessages.js.map +1 -1
  341. package/dist/lexicon/types/chat/bsky/convo/leaveConvo.js.map +1 -1
  342. package/dist/lexicon/types/chat/bsky/convo/listConvos.js.map +1 -1
  343. package/dist/lexicon/types/chat/bsky/convo/muteConvo.js.map +1 -1
  344. package/dist/lexicon/types/chat/bsky/convo/removeReaction.js.map +1 -1
  345. package/dist/lexicon/types/chat/bsky/convo/sendMessage.js.map +1 -1
  346. package/dist/lexicon/types/chat/bsky/convo/sendMessageBatch.js.map +1 -1
  347. package/dist/lexicon/types/chat/bsky/convo/unmuteConvo.js.map +1 -1
  348. package/dist/lexicon/types/chat/bsky/convo/updateAllRead.js.map +1 -1
  349. package/dist/lexicon/types/chat/bsky/convo/updateRead.js.map +1 -1
  350. package/dist/lexicon/types/chat/bsky/moderation/getActorMetadata.js.map +1 -1
  351. package/dist/lexicon/types/chat/bsky/moderation/getMessageContext.js.map +1 -1
  352. package/dist/lexicon/types/chat/bsky/moderation/updateActorAccess.js.map +1 -1
  353. package/dist/lexicon/types/com/atproto/admin/defs.js.map +1 -1
  354. package/dist/lexicon/types/com/atproto/admin/deleteAccount.js.map +1 -1
  355. package/dist/lexicon/types/com/atproto/admin/disableAccountInvites.js.map +1 -1
  356. package/dist/lexicon/types/com/atproto/admin/disableInviteCodes.js.map +1 -1
  357. package/dist/lexicon/types/com/atproto/admin/enableAccountInvites.js.map +1 -1
  358. package/dist/lexicon/types/com/atproto/admin/getAccountInfo.js.map +1 -1
  359. package/dist/lexicon/types/com/atproto/admin/getAccountInfos.js.map +1 -1
  360. package/dist/lexicon/types/com/atproto/admin/getInviteCodes.js.map +1 -1
  361. package/dist/lexicon/types/com/atproto/admin/getSubjectStatus.js.map +1 -1
  362. package/dist/lexicon/types/com/atproto/admin/searchAccounts.js.map +1 -1
  363. package/dist/lexicon/types/com/atproto/admin/sendEmail.js.map +1 -1
  364. package/dist/lexicon/types/com/atproto/admin/updateAccountEmail.js.map +1 -1
  365. package/dist/lexicon/types/com/atproto/admin/updateAccountHandle.js.map +1 -1
  366. package/dist/lexicon/types/com/atproto/admin/updateAccountPassword.js.map +1 -1
  367. package/dist/lexicon/types/com/atproto/admin/updateAccountSigningKey.js.map +1 -1
  368. package/dist/lexicon/types/com/atproto/admin/updateSubjectStatus.js.map +1 -1
  369. package/dist/lexicon/types/com/atproto/identity/defs.js.map +1 -1
  370. package/dist/lexicon/types/com/atproto/identity/getRecommendedDidCredentials.js.map +1 -1
  371. package/dist/lexicon/types/com/atproto/identity/refreshIdentity.js.map +1 -1
  372. package/dist/lexicon/types/com/atproto/identity/requestPlcOperationSignature.js.map +1 -1
  373. package/dist/lexicon/types/com/atproto/identity/resolveDid.js.map +1 -1
  374. package/dist/lexicon/types/com/atproto/identity/resolveHandle.js.map +1 -1
  375. package/dist/lexicon/types/com/atproto/identity/resolveIdentity.js.map +1 -1
  376. package/dist/lexicon/types/com/atproto/identity/signPlcOperation.js.map +1 -1
  377. package/dist/lexicon/types/com/atproto/identity/submitPlcOperation.js.map +1 -1
  378. package/dist/lexicon/types/com/atproto/identity/updateHandle.js.map +1 -1
  379. package/dist/lexicon/types/com/atproto/label/defs.js.map +1 -1
  380. package/dist/lexicon/types/com/atproto/label/queryLabels.js.map +1 -1
  381. package/dist/lexicon/types/com/atproto/label/subscribeLabels.js.map +1 -1
  382. package/dist/lexicon/types/com/atproto/lexicon/schema.js.map +1 -1
  383. package/dist/lexicon/types/com/atproto/moderation/createReport.js.map +1 -1
  384. package/dist/lexicon/types/com/atproto/moderation/defs.js.map +1 -1
  385. package/dist/lexicon/types/com/atproto/repo/applyWrites.js.map +1 -1
  386. package/dist/lexicon/types/com/atproto/repo/createRecord.js.map +1 -1
  387. package/dist/lexicon/types/com/atproto/repo/defs.js.map +1 -1
  388. package/dist/lexicon/types/com/atproto/repo/deleteRecord.js.map +1 -1
  389. package/dist/lexicon/types/com/atproto/repo/describeRepo.js.map +1 -1
  390. package/dist/lexicon/types/com/atproto/repo/getRecord.js.map +1 -1
  391. package/dist/lexicon/types/com/atproto/repo/importRepo.js.map +1 -1
  392. package/dist/lexicon/types/com/atproto/repo/listMissingBlobs.js.map +1 -1
  393. package/dist/lexicon/types/com/atproto/repo/listRecords.js.map +1 -1
  394. package/dist/lexicon/types/com/atproto/repo/putRecord.js.map +1 -1
  395. package/dist/lexicon/types/com/atproto/repo/strongRef.js.map +1 -1
  396. package/dist/lexicon/types/com/atproto/repo/uploadBlob.js.map +1 -1
  397. package/dist/lexicon/types/com/atproto/server/activateAccount.js.map +1 -1
  398. package/dist/lexicon/types/com/atproto/server/checkAccountStatus.js.map +1 -1
  399. package/dist/lexicon/types/com/atproto/server/confirmEmail.js.map +1 -1
  400. package/dist/lexicon/types/com/atproto/server/createAccount.js.map +1 -1
  401. package/dist/lexicon/types/com/atproto/server/createAppPassword.js.map +1 -1
  402. package/dist/lexicon/types/com/atproto/server/createInviteCode.js.map +1 -1
  403. package/dist/lexicon/types/com/atproto/server/createInviteCodes.js.map +1 -1
  404. package/dist/lexicon/types/com/atproto/server/createSession.js.map +1 -1
  405. package/dist/lexicon/types/com/atproto/server/deactivateAccount.js.map +1 -1
  406. package/dist/lexicon/types/com/atproto/server/defs.js.map +1 -1
  407. package/dist/lexicon/types/com/atproto/server/deleteAccount.js.map +1 -1
  408. package/dist/lexicon/types/com/atproto/server/deleteSession.js.map +1 -1
  409. package/dist/lexicon/types/com/atproto/server/describeServer.js.map +1 -1
  410. package/dist/lexicon/types/com/atproto/server/getAccountInviteCodes.js.map +1 -1
  411. package/dist/lexicon/types/com/atproto/server/getServiceAuth.js.map +1 -1
  412. package/dist/lexicon/types/com/atproto/server/getSession.js.map +1 -1
  413. package/dist/lexicon/types/com/atproto/server/listAppPasswords.js.map +1 -1
  414. package/dist/lexicon/types/com/atproto/server/refreshSession.js.map +1 -1
  415. package/dist/lexicon/types/com/atproto/server/requestAccountDelete.js.map +1 -1
  416. package/dist/lexicon/types/com/atproto/server/requestEmailConfirmation.js.map +1 -1
  417. package/dist/lexicon/types/com/atproto/server/requestEmailUpdate.js.map +1 -1
  418. package/dist/lexicon/types/com/atproto/server/requestPasswordReset.js.map +1 -1
  419. package/dist/lexicon/types/com/atproto/server/reserveSigningKey.js.map +1 -1
  420. package/dist/lexicon/types/com/atproto/server/resetPassword.js.map +1 -1
  421. package/dist/lexicon/types/com/atproto/server/revokeAppPassword.js.map +1 -1
  422. package/dist/lexicon/types/com/atproto/server/updateEmail.js.map +1 -1
  423. package/dist/lexicon/types/com/atproto/sync/defs.js.map +1 -1
  424. package/dist/lexicon/types/com/atproto/sync/getBlob.js.map +1 -1
  425. package/dist/lexicon/types/com/atproto/sync/getBlocks.js.map +1 -1
  426. package/dist/lexicon/types/com/atproto/sync/getCheckout.js.map +1 -1
  427. package/dist/lexicon/types/com/atproto/sync/getHead.js.map +1 -1
  428. package/dist/lexicon/types/com/atproto/sync/getHostStatus.js.map +1 -1
  429. package/dist/lexicon/types/com/atproto/sync/getLatestCommit.js.map +1 -1
  430. package/dist/lexicon/types/com/atproto/sync/getRecord.js.map +1 -1
  431. package/dist/lexicon/types/com/atproto/sync/getRepo.js.map +1 -1
  432. package/dist/lexicon/types/com/atproto/sync/getRepoStatus.js.map +1 -1
  433. package/dist/lexicon/types/com/atproto/sync/listBlobs.js.map +1 -1
  434. package/dist/lexicon/types/com/atproto/sync/listHosts.js.map +1 -1
  435. package/dist/lexicon/types/com/atproto/sync/listRepos.js.map +1 -1
  436. package/dist/lexicon/types/com/atproto/sync/listReposByCollection.js.map +1 -1
  437. package/dist/lexicon/types/com/atproto/sync/notifyOfUpdate.js.map +1 -1
  438. package/dist/lexicon/types/com/atproto/sync/requestCrawl.js.map +1 -1
  439. package/dist/lexicon/types/com/atproto/sync/subscribeRepos.js.map +1 -1
  440. package/dist/lexicon/types/com/atproto/temp/addReservedHandle.js.map +1 -1
  441. package/dist/lexicon/types/com/atproto/temp/checkHandleAvailability.js.map +1 -1
  442. package/dist/lexicon/types/com/atproto/temp/checkSignupQueue.js.map +1 -1
  443. package/dist/lexicon/types/com/atproto/temp/dereferenceScope.js.map +1 -1
  444. package/dist/lexicon/types/com/atproto/temp/fetchLabels.js.map +1 -1
  445. package/dist/lexicon/types/com/atproto/temp/requestPhoneVerification.js.map +1 -1
  446. package/dist/lexicon/types/com/atproto/temp/revokeAccountCredentials.js.map +1 -1
  447. package/dist/lexicon/types/tools/ozone/communication/createTemplate.js.map +1 -1
  448. package/dist/lexicon/types/tools/ozone/communication/defs.js.map +1 -1
  449. package/dist/lexicon/types/tools/ozone/communication/deleteTemplate.js.map +1 -1
  450. package/dist/lexicon/types/tools/ozone/communication/listTemplates.js.map +1 -1
  451. package/dist/lexicon/types/tools/ozone/communication/updateTemplate.js.map +1 -1
  452. package/dist/lexicon/types/tools/ozone/hosting/getAccountHistory.js.map +1 -1
  453. package/dist/lexicon/types/tools/ozone/moderation/cancelScheduledActions.d.ts +46 -0
  454. package/dist/lexicon/types/tools/ozone/moderation/cancelScheduledActions.d.ts.map +1 -0
  455. package/dist/lexicon/types/tools/ozone/moderation/cancelScheduledActions.js +25 -0
  456. package/dist/lexicon/types/tools/ozone/moderation/cancelScheduledActions.js.map +1 -0
  457. package/dist/lexicon/types/tools/ozone/moderation/defs.d.ts +57 -2
  458. package/dist/lexicon/types/tools/ozone/moderation/defs.d.ts.map +1 -1
  459. package/dist/lexicon/types/tools/ozone/moderation/defs.js +27 -0
  460. package/dist/lexicon/types/tools/ozone/moderation/defs.js.map +1 -1
  461. package/dist/lexicon/types/tools/ozone/moderation/emitEvent.d.ts +1 -1
  462. package/dist/lexicon/types/tools/ozone/moderation/emitEvent.d.ts.map +1 -1
  463. package/dist/lexicon/types/tools/ozone/moderation/emitEvent.js.map +1 -1
  464. package/dist/lexicon/types/tools/ozone/moderation/getAccountTimeline.d.ts +1 -1
  465. package/dist/lexicon/types/tools/ozone/moderation/getAccountTimeline.d.ts.map +1 -1
  466. package/dist/lexicon/types/tools/ozone/moderation/getAccountTimeline.js.map +1 -1
  467. package/dist/lexicon/types/tools/ozone/moderation/getEvent.js.map +1 -1
  468. package/dist/lexicon/types/tools/ozone/moderation/getRecord.js.map +1 -1
  469. package/dist/lexicon/types/tools/ozone/moderation/getRecords.js.map +1 -1
  470. package/dist/lexicon/types/tools/ozone/moderation/getRepo.js.map +1 -1
  471. package/dist/lexicon/types/tools/ozone/moderation/getReporterStats.js.map +1 -1
  472. package/dist/lexicon/types/tools/ozone/moderation/getRepos.js.map +1 -1
  473. package/dist/lexicon/types/tools/ozone/moderation/getSubjects.js.map +1 -1
  474. package/dist/lexicon/types/tools/ozone/moderation/listScheduledActions.d.ts +38 -0
  475. package/dist/lexicon/types/tools/ozone/moderation/listScheduledActions.d.ts.map +1 -0
  476. package/dist/lexicon/types/tools/ozone/moderation/listScheduledActions.js +7 -0
  477. package/dist/lexicon/types/tools/ozone/moderation/listScheduledActions.js.map +1 -0
  478. package/dist/lexicon/types/tools/ozone/moderation/queryEvents.js.map +1 -1
  479. package/dist/lexicon/types/tools/ozone/moderation/queryStatuses.js.map +1 -1
  480. package/dist/lexicon/types/tools/ozone/moderation/scheduleAction.d.ts +75 -0
  481. package/dist/lexicon/types/tools/ozone/moderation/scheduleAction.d.ts.map +1 -0
  482. package/dist/lexicon/types/tools/ozone/moderation/scheduleAction.js +43 -0
  483. package/dist/lexicon/types/tools/ozone/moderation/scheduleAction.js.map +1 -0
  484. package/dist/lexicon/types/tools/ozone/moderation/searchRepos.js.map +1 -1
  485. package/dist/lexicon/types/tools/ozone/report/defs.js.map +1 -1
  486. package/dist/lexicon/types/tools/ozone/safelink/addRule.js.map +1 -1
  487. package/dist/lexicon/types/tools/ozone/safelink/defs.js.map +1 -1
  488. package/dist/lexicon/types/tools/ozone/safelink/queryEvents.js.map +1 -1
  489. package/dist/lexicon/types/tools/ozone/safelink/queryRules.js.map +1 -1
  490. package/dist/lexicon/types/tools/ozone/safelink/removeRule.js.map +1 -1
  491. package/dist/lexicon/types/tools/ozone/safelink/updateRule.js.map +1 -1
  492. package/dist/lexicon/types/tools/ozone/server/getConfig.js.map +1 -1
  493. package/dist/lexicon/types/tools/ozone/set/addValues.js.map +1 -1
  494. package/dist/lexicon/types/tools/ozone/set/defs.js.map +1 -1
  495. package/dist/lexicon/types/tools/ozone/set/deleteSet.js.map +1 -1
  496. package/dist/lexicon/types/tools/ozone/set/deleteValues.js.map +1 -1
  497. package/dist/lexicon/types/tools/ozone/set/getValues.js.map +1 -1
  498. package/dist/lexicon/types/tools/ozone/set/querySets.js.map +1 -1
  499. package/dist/lexicon/types/tools/ozone/set/upsertSet.js.map +1 -1
  500. package/dist/lexicon/types/tools/ozone/setting/defs.js.map +1 -1
  501. package/dist/lexicon/types/tools/ozone/setting/listOptions.js.map +1 -1
  502. package/dist/lexicon/types/tools/ozone/setting/removeOptions.js.map +1 -1
  503. package/dist/lexicon/types/tools/ozone/setting/upsertOption.js.map +1 -1
  504. package/dist/lexicon/types/tools/ozone/signature/defs.js.map +1 -1
  505. package/dist/lexicon/types/tools/ozone/signature/findCorrelation.js.map +1 -1
  506. package/dist/lexicon/types/tools/ozone/signature/findRelatedAccounts.js.map +1 -1
  507. package/dist/lexicon/types/tools/ozone/signature/searchAccounts.js.map +1 -1
  508. package/dist/lexicon/types/tools/ozone/team/addMember.js.map +1 -1
  509. package/dist/lexicon/types/tools/ozone/team/defs.js.map +1 -1
  510. package/dist/lexicon/types/tools/ozone/team/deleteMember.js.map +1 -1
  511. package/dist/lexicon/types/tools/ozone/team/listMembers.js.map +1 -1
  512. package/dist/lexicon/types/tools/ozone/team/updateMember.js.map +1 -1
  513. package/dist/lexicon/types/tools/ozone/verification/defs.js.map +1 -1
  514. package/dist/lexicon/types/tools/ozone/verification/grantVerifications.js.map +1 -1
  515. package/dist/lexicon/types/tools/ozone/verification/listVerifications.js.map +1 -1
  516. package/dist/lexicon/types/tools/ozone/verification/revokeVerifications.js.map +1 -1
  517. package/dist/lexicon/util.js.map +1 -1
  518. package/dist/logger.js.map +1 -1
  519. package/dist/mailer/index.js.map +1 -1
  520. package/dist/mailer/moderation.js.map +1 -1
  521. package/dist/mailer/templates.js.map +1 -1
  522. package/dist/pipethrough.js +3 -0
  523. package/dist/pipethrough.js.map +1 -1
  524. package/dist/read-after-write/index.js.map +1 -1
  525. package/dist/read-after-write/types.js.map +1 -1
  526. package/dist/read-after-write/util.js.map +1 -1
  527. package/dist/read-after-write/viewer.js.map +1 -1
  528. package/dist/redis.js.map +1 -1
  529. package/dist/repo/index.js.map +1 -1
  530. package/dist/repo/prepare.js.map +1 -1
  531. package/dist/repo/types.js.map +1 -1
  532. package/dist/scripts/index.js.map +1 -1
  533. package/dist/scripts/publish-identity.js.map +1 -1
  534. package/dist/scripts/rebuild-repo.js.map +1 -1
  535. package/dist/scripts/rotate-keys.js.map +1 -1
  536. package/dist/scripts/sequencer-recovery/index.js.map +1 -1
  537. package/dist/scripts/sequencer-recovery/recoverer.js.map +1 -1
  538. package/dist/scripts/sequencer-recovery/recovery-db.js.map +1 -1
  539. package/dist/scripts/sequencer-recovery/repair-repos.js.map +1 -1
  540. package/dist/scripts/sequencer-recovery/user-queues.js.map +1 -1
  541. package/dist/scripts/util.js.map +1 -1
  542. package/dist/sequencer/db/index.js.map +1 -1
  543. package/dist/sequencer/db/migrations/001-init.js.map +1 -1
  544. package/dist/sequencer/db/migrations/index.js.map +1 -1
  545. package/dist/sequencer/db/schema.js.map +1 -1
  546. package/dist/sequencer/events.js.map +1 -1
  547. package/dist/sequencer/index.js.map +1 -1
  548. package/dist/sequencer/outbox.js.map +1 -1
  549. package/dist/sequencer/sequencer.js.map +1 -1
  550. package/dist/util/compression.js.map +1 -1
  551. package/dist/util/debug.js.map +1 -1
  552. package/dist/util/http.js.map +1 -1
  553. package/dist/util/params.js.map +1 -1
  554. package/dist/util/types.js.map +1 -1
  555. package/dist/well-known.js.map +1 -1
  556. package/package.json +6 -6
  557. package/src/lexicon/index.ts +39 -0
  558. package/src/lexicon/lexicons.ts +436 -0
  559. package/src/lexicon/types/app/bsky/actor/defs.ts +2 -0
  560. package/src/lexicon/types/tools/ozone/moderation/cancelScheduledActions.ts +79 -0
  561. package/src/lexicon/types/tools/ozone/moderation/defs.ts +88 -0
  562. package/src/lexicon/types/tools/ozone/moderation/emitEvent.ts +2 -0
  563. package/src/lexicon/types/tools/ozone/moderation/getAccountTimeline.ts +2 -0
  564. package/src/lexicon/types/tools/ozone/moderation/listScheduledActions.ts +57 -0
  565. package/src/lexicon/types/tools/ozone/moderation/scheduleAction.ts +123 -0
  566. package/src/pipethrough.ts +3 -0
  567. package/tsconfig.build.tsbuildinfo +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"getBlob.js","sourceRoot":"","sources":["../../../../../src/api/com/atproto/sync/getBlob.ts"],"names":[],"mappings":";;AASA,4BAqCC;AA9CD,0CAAsC;AACtC,wCAAiD;AACjD,sDAA0D;AAC1D,uDAAkD;AAClD,6DAAyD;AAGzD,iCAA+C;AAE/C,mBAAyB,MAAc,EAAE,GAAe;IACtD,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;QAC9B,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC,iCAAiC,CAAC;YACvD,UAAU,EAAE,CAAC,sBAAS,CAAC,SAAS,CAAC;YACjC,SAAS,EAAE,GAAG,EAAE;gBACd,eAAe;YACjB,CAAC;SACF,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE;YACvC,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAA;YACtB,MAAM,IAAA,6BAAsB,EAAC,GAAG,EAAE,GAAG,EAAE,IAAA,6BAAa,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;YAEhE,MAAM,GAAG,GAAG,SAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACjC,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;gBAClE,IAAI,CAAC;oBACH,OAAO,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;gBAC3C,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,IAAI,GAAG,YAAY,wBAAiB,EAAE,CAAC;wBACrC,MAAM,IAAI,iCAAmB,CAAC,gBAAgB,CAAC,CAAA;oBACjD,CAAC;yBAAM,CAAC;wBACN,MAAM,GAAG,CAAA;oBACX,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAA;YACF,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,iCAAmB,CAAC,gBAAgB,CAAC,CAAA;YACjD,CAAC;YACD,GAAG,CAAC,SAAS,CAAC,gBAAgB,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;YAC3C,GAAG,CAAC,SAAS,CAAC,wBAAwB,EAAE,SAAS,CAAC,CAAA;YAClD,GAAG,CAAC,SAAS,CAAC,yBAAyB,EAAE,6BAA6B,CAAC,CAAA;YACvE,OAAO;gBACL,wCAAwC;gBACxC,QAAQ,EAAE,CAAC,KAAK,CAAC,QAAQ,IAAI,0BAA0B,CAAU;gBACjE,IAAI,EAAE,KAAK,CAAC,MAAM;aACnB,CAAA;QACH,CAAC;KACF,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"getBlob.js","sourceRoot":"","sources":["../../../../../src/api/com/atproto/sync/getBlob.ts"],"names":[],"mappings":";;AASA,4BAqCC;AA9CD,0CAAsC;AACtC,wCAAiD;AACjD,sDAA0D;AAC1D,uDAAkD;AAClD,6DAAyD;AAGzD,iCAA+C;AAE/C,mBAAyB,MAAc,EAAE,GAAe;IACtD,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;QAC9B,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC,iCAAiC,CAAC;YACvD,UAAU,EAAE,CAAC,sBAAS,CAAC,SAAS,CAAC;YACjC,SAAS,EAAE,GAAG,EAAE;gBACd,eAAe;YACjB,CAAC;SACF,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE;YACvC,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAA;YACtB,MAAM,IAAA,6BAAsB,EAAC,GAAG,EAAE,GAAG,EAAE,IAAA,6BAAa,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;YAEhE,MAAM,GAAG,GAAG,SAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACjC,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;gBAClE,IAAI,CAAC;oBACH,OAAO,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;gBAC3C,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,IAAI,GAAG,YAAY,wBAAiB,EAAE,CAAC;wBACrC,MAAM,IAAI,iCAAmB,CAAC,gBAAgB,CAAC,CAAA;oBACjD,CAAC;yBAAM,CAAC;wBACN,MAAM,GAAG,CAAA;oBACX,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAA;YACF,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,iCAAmB,CAAC,gBAAgB,CAAC,CAAA;YACjD,CAAC;YACD,GAAG,CAAC,SAAS,CAAC,gBAAgB,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;YAC3C,GAAG,CAAC,SAAS,CAAC,wBAAwB,EAAE,SAAS,CAAC,CAAA;YAClD,GAAG,CAAC,SAAS,CAAC,yBAAyB,EAAE,6BAA6B,CAAC,CAAA;YACvE,OAAO;gBACL,wCAAwC;gBACxC,QAAQ,EAAE,CAAC,KAAK,CAAC,QAAQ,IAAI,0BAA0B,CAAU;gBACjE,IAAI,EAAE,KAAK,CAAC,MAAM;aACnB,CAAA;QACH,CAAC;KACF,CAAC,CAAA;AACJ,CAAC","sourcesContent":["import { CID } from 'multiformats/cid'\nimport { BlobNotFoundError } from '@atproto/repo'\nimport { InvalidRequestError } from '@atproto/xrpc-server'\nimport { AuthScope } from '../../../../auth-scope'\nimport { isUserOrAdmin } from '../../../../auth-verifier'\nimport { AppContext } from '../../../../context'\nimport { Server } from '../../../../lexicon'\nimport { assertRepoAvailability } from './util'\n\nexport default function (server: Server, ctx: AppContext) {\n server.com.atproto.sync.getBlob({\n auth: ctx.authVerifier.authorizationOrAdminTokenOptional({\n additional: [AuthScope.Takendown],\n authorize: () => {\n // always allow\n },\n }),\n handler: async ({ params, res, auth }) => {\n const { did } = params\n await assertRepoAvailability(ctx, did, isUserOrAdmin(auth, did))\n\n const cid = CID.parse(params.cid)\n const found = await ctx.actorStore.read(params.did, async (store) => {\n try {\n return await store.repo.blob.getBlob(cid)\n } catch (err) {\n if (err instanceof BlobNotFoundError) {\n throw new InvalidRequestError('Blob not found')\n } else {\n throw err\n }\n }\n })\n if (!found) {\n throw new InvalidRequestError('Blob not found')\n }\n res.setHeader('content-length', found.size)\n res.setHeader('x-content-type-options', 'nosniff')\n res.setHeader('content-security-policy', `default-src 'none'; sandbox`)\n return {\n // @TODO better codegen for */* mimetype\n encoding: (found.mimeType || 'application/octet-stream') as '*/*',\n body: found.stream,\n }\n },\n })\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"getBlocks.js","sourceRoot":"","sources":["../../../../../src/api/com/atproto/sync/getBlocks.ts"],"names":[],"mappings":";;AASA,4BA2BC;AApCD,0CAAsC;AACtC,4CAAsD;AACtD,wCAAiD;AACjD,sDAA0D;AAC1D,6DAAyD;AAGzD,iCAA+C;AAE/C,mBAAyB,MAAc,EAAE,GAAe;IACtD,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC,iCAAiC,CAAC;YACvD,SAAS,EAAE,GAAG,EAAE;gBACd,eAAe;YACjB,CAAC;SACF,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;YAClC,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAA;YACtB,MAAM,IAAA,6BAAsB,EAAC,GAAG,EAAE,GAAG,EAAE,IAAA,6BAAa,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;YAEhE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;YACjD,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,CACnD,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CACnC,CAAA;YACD,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3B,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;gBACvD,MAAM,IAAI,iCAAmB,CAAC,wBAAwB,UAAU,EAAE,CAAC,CAAA;YACrE,CAAC;YACD,MAAM,GAAG,GAAG,IAAA,wBAAiB,EAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;YAE/C,OAAO;gBACL,QAAQ,EAAE,0BAA0B;gBACpC,IAAI,EAAE,IAAA,6BAAoB,EAAC,GAAG,CAAC;aAChC,CAAA;QACH,CAAC;KACF,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"getBlocks.js","sourceRoot":"","sources":["../../../../../src/api/com/atproto/sync/getBlocks.ts"],"names":[],"mappings":";;AASA,4BA2BC;AApCD,0CAAsC;AACtC,4CAAsD;AACtD,wCAAiD;AACjD,sDAA0D;AAC1D,6DAAyD;AAGzD,iCAA+C;AAE/C,mBAAyB,MAAc,EAAE,GAAe;IACtD,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC,iCAAiC,CAAC;YACvD,SAAS,EAAE,GAAG,EAAE;gBACd,eAAe;YACjB,CAAC;SACF,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;YAClC,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAA;YACtB,MAAM,IAAA,6BAAsB,EAAC,GAAG,EAAE,GAAG,EAAE,IAAA,6BAAa,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;YAEhE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;YACjD,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,CACnD,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CACnC,CAAA;YACD,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3B,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;gBACvD,MAAM,IAAI,iCAAmB,CAAC,wBAAwB,UAAU,EAAE,CAAC,CAAA;YACrE,CAAC;YACD,MAAM,GAAG,GAAG,IAAA,wBAAiB,EAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;YAE/C,OAAO;gBACL,QAAQ,EAAE,0BAA0B;gBACpC,IAAI,EAAE,IAAA,6BAAoB,EAAC,GAAG,CAAC;aAChC,CAAA;QACH,CAAC;KACF,CAAC,CAAA;AACJ,CAAC","sourcesContent":["import { CID } from 'multiformats/cid'\nimport { byteIterableToStream } from '@atproto/common'\nimport { blocksToCarStream } from '@atproto/repo'\nimport { InvalidRequestError } from '@atproto/xrpc-server'\nimport { isUserOrAdmin } from '../../../../auth-verifier'\nimport { AppContext } from '../../../../context'\nimport { Server } from '../../../../lexicon'\nimport { assertRepoAvailability } from './util'\n\nexport default function (server: Server, ctx: AppContext) {\n server.com.atproto.sync.getBlocks({\n auth: ctx.authVerifier.authorizationOrAdminTokenOptional({\n authorize: () => {\n // always allow\n },\n }),\n handler: async ({ params, auth }) => {\n const { did } = params\n await assertRepoAvailability(ctx, did, isUserOrAdmin(auth, did))\n\n const cids = params.cids.map((c) => CID.parse(c))\n const got = await ctx.actorStore.read(did, (store) =>\n store.repo.storage.getBlocks(cids),\n )\n if (got.missing.length > 0) {\n const missingStr = got.missing.map((c) => c.toString())\n throw new InvalidRequestError(`Could not find cids: ${missingStr}`)\n }\n const car = blocksToCarStream(null, got.blocks)\n\n return {\n encoding: 'application/vnd.ipld.car',\n body: byteIterableToStream(car),\n }\n },\n })\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"getLatestCommit.js","sourceRoot":"","sources":["../../../../../src/api/com/atproto/sync/getLatestCommit.ts"],"names":[],"mappings":";;AAMA,4BA0BC;AAhCD,sDAA0D;AAC1D,6DAAyD;AAGzD,iCAA+C;AAE/C,mBAAyB,MAAc,EAAE,GAAe;IACtD,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC;QACtC,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC,iCAAiC,CAAC;YACvD,SAAS,EAAE,GAAG,EAAE;gBACd,eAAe;YACjB,CAAC;SACF,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;YAClC,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAA;YACtB,MAAM,IAAA,6BAAsB,EAAC,GAAG,EAAE,GAAG,EAAE,IAAA,6BAAa,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;YAEhE,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,CACpD,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CACrC,CAAA;YACD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAClB,MAAM,IAAI,iCAAmB,CAC3B,gCAAgC,GAAG,EAAE,EACrC,cAAc,CACf,CAAA;YACH,CAAC;YACD,OAAO;gBACL,QAAQ,EAAE,kBAAkB;gBAC5B,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;aAClD,CAAA;QACH,CAAC;KACF,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"getLatestCommit.js","sourceRoot":"","sources":["../../../../../src/api/com/atproto/sync/getLatestCommit.ts"],"names":[],"mappings":";;AAMA,4BA0BC;AAhCD,sDAA0D;AAC1D,6DAAyD;AAGzD,iCAA+C;AAE/C,mBAAyB,MAAc,EAAE,GAAe;IACtD,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC;QACtC,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC,iCAAiC,CAAC;YACvD,SAAS,EAAE,GAAG,EAAE;gBACd,eAAe;YACjB,CAAC;SACF,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;YAClC,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAA;YACtB,MAAM,IAAA,6BAAsB,EAAC,GAAG,EAAE,GAAG,EAAE,IAAA,6BAAa,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;YAEhE,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,CACpD,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CACrC,CAAA;YACD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAClB,MAAM,IAAI,iCAAmB,CAC3B,gCAAgC,GAAG,EAAE,EACrC,cAAc,CACf,CAAA;YACH,CAAC;YACD,OAAO;gBACL,QAAQ,EAAE,kBAAkB;gBAC5B,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;aAClD,CAAA;QACH,CAAC;KACF,CAAC,CAAA;AACJ,CAAC","sourcesContent":["import { InvalidRequestError } from '@atproto/xrpc-server'\nimport { isUserOrAdmin } from '../../../../auth-verifier'\nimport { AppContext } from '../../../../context'\nimport { Server } from '../../../../lexicon'\nimport { assertRepoAvailability } from './util'\n\nexport default function (server: Server, ctx: AppContext) {\n server.com.atproto.sync.getLatestCommit({\n auth: ctx.authVerifier.authorizationOrAdminTokenOptional({\n authorize: () => {\n // always allow\n },\n }),\n handler: async ({ params, auth }) => {\n const { did } = params\n await assertRepoAvailability(ctx, did, isUserOrAdmin(auth, did))\n\n const root = await ctx.actorStore.read(did, (store) =>\n store.repo.storage.getRootDetailed(),\n )\n if (root === null) {\n throw new InvalidRequestError(\n `Could not find root for DID: ${did}`,\n 'RepoNotFound',\n )\n }\n return {\n encoding: 'application/json',\n body: { cid: root.cid.toString(), rev: root.rev },\n }\n },\n })\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"getRecord.js","sourceRoot":"","sources":["../../../../../src/api/com/atproto/sync/getRecord.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,4BAsCC;AA/CD,4CAAsD;AACtD,oDAAqC;AACrC,sDAA0D;AAC1D,kFAA4E;AAC5E,6DAAyD;AAGzD,iCAA+C;AAE/C,mBAAyB,MAAc,EAAE,GAAe;IACtD,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC,iCAAiC,CAAC;YACvD,SAAS,EAAE,GAAG,EAAE;gBACd,eAAe;YACjB,CAAC;SACF,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;YAClC,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,MAAM,CAAA;YACxC,MAAM,IAAA,6BAAsB,EAAC,GAAG,EAAE,GAAG,EAAE,IAAA,6BAAa,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;YAEhE,+GAA+G;YAC/G,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YAEhD,IAAI,SAA0B,CAAA;YAC9B,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,IAAI,+BAAa,CAAC,OAAO,CAAC,CAAA;gBAC1C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAA;gBAEtC,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,MAAM,IAAI,iCAAmB,CAAC,gCAAgC,GAAG,EAAE,CAAC,CAAA;gBACtE,CAAC;gBACD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;gBACxE,SAAS,GAAG,IAAA,6BAAoB,EAAC,OAAO,CAAC,CAAA;YAC3C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,EAAE,CAAA;gBACf,MAAM,GAAG,CAAA;YACX,CAAC;YACD,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;YACrC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YAC9B,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YAE9B,OAAO;gBACL,QAAQ,EAAE,0BAA0B;gBACpC,IAAI,EAAE,SAAS;aAChB,CAAA;QACH,CAAC;KACF,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"getRecord.js","sourceRoot":"","sources":["../../../../../src/api/com/atproto/sync/getRecord.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,4BAsCC;AA/CD,4CAAsD;AACtD,oDAAqC;AACrC,sDAA0D;AAC1D,kFAA4E;AAC5E,6DAAyD;AAGzD,iCAA+C;AAE/C,mBAAyB,MAAc,EAAE,GAAe;IACtD,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC,iCAAiC,CAAC;YACvD,SAAS,EAAE,GAAG,EAAE;gBACd,eAAe;YACjB,CAAC;SACF,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;YAClC,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,MAAM,CAAA;YACxC,MAAM,IAAA,6BAAsB,EAAC,GAAG,EAAE,GAAG,EAAE,IAAA,6BAAa,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;YAEhE,+GAA+G;YAC/G,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YAEhD,IAAI,SAA0B,CAAA;YAC9B,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,IAAI,+BAAa,CAAC,OAAO,CAAC,CAAA;gBAC1C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAA;gBAEtC,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,MAAM,IAAI,iCAAmB,CAAC,gCAAgC,GAAG,EAAE,CAAC,CAAA;gBACtE,CAAC;gBACD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;gBACxE,SAAS,GAAG,IAAA,6BAAoB,EAAC,OAAO,CAAC,CAAA;YAC3C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,EAAE,CAAA;gBACf,MAAM,GAAG,CAAA;YACX,CAAC;YACD,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;YACrC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YAC9B,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YAE9B,OAAO;gBACL,QAAQ,EAAE,0BAA0B;gBACpC,IAAI,EAAE,SAAS;aAChB,CAAA;QACH,CAAC;KACF,CAAC,CAAA;AACJ,CAAC","sourcesContent":["import stream from 'node:stream'\nimport { byteIterableToStream } from '@atproto/common'\nimport * as repo from '@atproto/repo'\nimport { InvalidRequestError } from '@atproto/xrpc-server'\nimport { SqlRepoReader } from '../../../../actor-store/repo/sql-repo-reader'\nimport { isUserOrAdmin } from '../../../../auth-verifier'\nimport { AppContext } from '../../../../context'\nimport { Server } from '../../../../lexicon'\nimport { assertRepoAvailability } from './util'\n\nexport default function (server: Server, ctx: AppContext) {\n server.com.atproto.sync.getRecord({\n auth: ctx.authVerifier.authorizationOrAdminTokenOptional({\n authorize: () => {\n // always allow\n },\n }),\n handler: async ({ params, auth }) => {\n const { did, collection, rkey } = params\n await assertRepoAvailability(ctx, did, isUserOrAdmin(auth, did))\n\n // must open up the db outside of store interface so that we can close the file handle after finished streaming\n const actorDb = await ctx.actorStore.openDb(did)\n\n let carStream: stream.Readable\n try {\n const storage = new SqlRepoReader(actorDb)\n const commit = await storage.getRoot()\n\n if (!commit) {\n throw new InvalidRequestError(`Could not find repo for DID: ${did}`)\n }\n const carIter = repo.getRecords(storage, commit, [{ collection, rkey }])\n carStream = byteIterableToStream(carIter)\n } catch (err) {\n actorDb.close()\n throw err\n }\n const closeDb = () => actorDb.close()\n carStream.on('error', closeDb)\n carStream.on('close', closeDb)\n\n return {\n encoding: 'application/vnd.ipld.car',\n body: carStream,\n }\n },\n })\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"getRepo.js","sourceRoot":"","sources":["../../../../../src/api/com/atproto/sync/getRepo.ts"],"names":[],"mappings":";;;AAaA,4BAoBC;AAhCD,4CAAsD;AACtD,sDAA0D;AAC1D,kFAGqD;AACrD,uDAAkD;AAClD,6DAAyD;AAGzD,iCAA+C;AAE/C,mBAAyB,MAAc,EAAE,GAAe;IACtD,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;QAC9B,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC,iCAAiC,CAAC;YACvD,UAAU,EAAE,CAAC,sBAAS,CAAC,SAAS,CAAC;YACjC,SAAS,EAAE,GAAG,EAAE;gBACd,eAAe;YACjB,CAAC;SACF,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;YAClC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,MAAM,CAAA;YAC7B,MAAM,IAAA,6BAAsB,EAAC,GAAG,EAAE,GAAG,EAAE,IAAA,6BAAa,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;YAEhE,MAAM,SAAS,GAAG,MAAM,IAAA,oBAAY,EAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;YAErD,OAAO;gBACL,QAAQ,EAAE,0BAA0B;gBACpC,IAAI,EAAE,SAAS;aAChB,CAAA;QACH,CAAC;KACF,CAAC,CAAA;AACJ,CAAC;AAEM,MAAM,YAAY,GAAG,KAAK,EAC/B,GAAe,EACf,GAAW,EACX,KAAc,EACY,EAAE;IAC5B,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAChD,IAAI,SAA0B,CAAA;IAC9B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,+BAAa,CAAC,OAAO,CAAC,CAAA;QAC1C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;QACjD,SAAS,GAAG,IAAA,6BAAoB,EAAC,OAAO,CAAC,CAAA;IAC3C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,CAAC,KAAK,EAAE,CAAA;QACrB,IAAI,GAAG,YAAY,uCAAqB,EAAE,CAAC;YACzC,MAAM,IAAI,iCAAmB,CAAC,gCAAgC,GAAG,EAAE,CAAC,CAAA;QACtE,CAAC;QACD,MAAM,GAAG,CAAA;IACX,CAAC;IACD,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;IACrC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC9B,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC9B,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAtBY,QAAA,YAAY,gBAsBxB"}
1
+ {"version":3,"file":"getRepo.js","sourceRoot":"","sources":["../../../../../src/api/com/atproto/sync/getRepo.ts"],"names":[],"mappings":";;;AAaA,4BAoBC;AAhCD,4CAAsD;AACtD,sDAA0D;AAC1D,kFAGqD;AACrD,uDAAkD;AAClD,6DAAyD;AAGzD,iCAA+C;AAE/C,mBAAyB,MAAc,EAAE,GAAe;IACtD,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;QAC9B,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC,iCAAiC,CAAC;YACvD,UAAU,EAAE,CAAC,sBAAS,CAAC,SAAS,CAAC;YACjC,SAAS,EAAE,GAAG,EAAE;gBACd,eAAe;YACjB,CAAC;SACF,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;YAClC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,MAAM,CAAA;YAC7B,MAAM,IAAA,6BAAsB,EAAC,GAAG,EAAE,GAAG,EAAE,IAAA,6BAAa,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;YAEhE,MAAM,SAAS,GAAG,MAAM,IAAA,oBAAY,EAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;YAErD,OAAO;gBACL,QAAQ,EAAE,0BAA0B;gBACpC,IAAI,EAAE,SAAS;aAChB,CAAA;QACH,CAAC;KACF,CAAC,CAAA;AACJ,CAAC;AAEM,MAAM,YAAY,GAAG,KAAK,EAC/B,GAAe,EACf,GAAW,EACX,KAAc,EACY,EAAE;IAC5B,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAChD,IAAI,SAA0B,CAAA;IAC9B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,+BAAa,CAAC,OAAO,CAAC,CAAA;QAC1C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;QACjD,SAAS,GAAG,IAAA,6BAAoB,EAAC,OAAO,CAAC,CAAA;IAC3C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,CAAC,KAAK,EAAE,CAAA;QACrB,IAAI,GAAG,YAAY,uCAAqB,EAAE,CAAC;YACzC,MAAM,IAAI,iCAAmB,CAAC,gCAAgC,GAAG,EAAE,CAAC,CAAA;QACtE,CAAC;QACD,MAAM,GAAG,CAAA;IACX,CAAC;IACD,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;IACrC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC9B,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC9B,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAtBY,QAAA,YAAY,gBAsBxB","sourcesContent":["import stream from 'node:stream'\nimport { byteIterableToStream } from '@atproto/common'\nimport { InvalidRequestError } from '@atproto/xrpc-server'\nimport {\n RepoRootNotFoundError,\n SqlRepoReader,\n} from '../../../../actor-store/repo/sql-repo-reader'\nimport { AuthScope } from '../../../../auth-scope'\nimport { isUserOrAdmin } from '../../../../auth-verifier'\nimport { AppContext } from '../../../../context'\nimport { Server } from '../../../../lexicon'\nimport { assertRepoAvailability } from './util'\n\nexport default function (server: Server, ctx: AppContext) {\n server.com.atproto.sync.getRepo({\n auth: ctx.authVerifier.authorizationOrAdminTokenOptional({\n additional: [AuthScope.Takendown],\n authorize: () => {\n // always allow\n },\n }),\n handler: async ({ params, auth }) => {\n const { did, since } = params\n await assertRepoAvailability(ctx, did, isUserOrAdmin(auth, did))\n\n const carStream = await getCarStream(ctx, did, since)\n\n return {\n encoding: 'application/vnd.ipld.car',\n body: carStream,\n }\n },\n })\n}\n\nexport const getCarStream = async (\n ctx: AppContext,\n did: string,\n since?: string,\n): Promise<stream.Readable> => {\n const actorDb = await ctx.actorStore.openDb(did)\n let carStream: stream.Readable\n try {\n const storage = new SqlRepoReader(actorDb)\n const carIter = await storage.getCarStream(since)\n carStream = byteIterableToStream(carIter)\n } catch (err) {\n await actorDb.close()\n if (err instanceof RepoRootNotFoundError) {\n throw new InvalidRequestError(`Could not find repo for DID: ${did}`)\n }\n throw err\n }\n const closeDb = () => actorDb.close()\n carStream.on('error', closeDb)\n carStream.on('close', closeDb)\n return carStream\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"getRepoStatus.js","sourceRoot":"","sources":["../../../../../src/api/com/atproto/sync/getRepoStatus.ts"],"names":[],"mappings":";;AAKA,4BA2BC;AAhCD,iFAAiF;AAGjF,iCAA+C;AAE/C,mBAAyB,MAAc,EAAE,GAAe;IACtD,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC;QACpC,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;YAC5B,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAA;YACtB,MAAM,OAAO,GAAG,MAAM,IAAA,6BAAsB,EAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;YAE5D,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,qCAAmB,EAAC,OAAO,CAAC,CAAA;YAEvD,IAAI,GAAG,GAAuB,SAAS,CAAA;YACvC,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,CACpD,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CACrC,CAAA;gBACD,GAAG,GAAG,IAAI,CAAC,GAAG,CAAA;YAChB,CAAC;YAED,OAAO;gBACL,QAAQ,EAAE,kBAAkB;gBAC5B,IAAI,EAAE;oBACJ,GAAG;oBACH,MAAM;oBACN,MAAM;oBACN,GAAG;iBACJ;aACF,CAAA;QACH,CAAC;KACF,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"getRepoStatus.js","sourceRoot":"","sources":["../../../../../src/api/com/atproto/sync/getRepoStatus.ts"],"names":[],"mappings":";;AAKA,4BA2BC;AAhCD,iFAAiF;AAGjF,iCAA+C;AAE/C,mBAAyB,MAAc,EAAE,GAAe;IACtD,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC;QACpC,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;YAC5B,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAA;YACtB,MAAM,OAAO,GAAG,MAAM,IAAA,6BAAsB,EAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;YAE5D,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,qCAAmB,EAAC,OAAO,CAAC,CAAA;YAEvD,IAAI,GAAG,GAAuB,SAAS,CAAA;YACvC,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,CACpD,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CACrC,CAAA;gBACD,GAAG,GAAG,IAAI,CAAC,GAAG,CAAA;YAChB,CAAC;YAED,OAAO;gBACL,QAAQ,EAAE,kBAAkB;gBAC5B,IAAI,EAAE;oBACJ,GAAG;oBACH,MAAM;oBACN,MAAM;oBACN,GAAG;iBACJ;aACF,CAAA;QACH,CAAC;KACF,CAAC,CAAA;AACJ,CAAC","sourcesContent":["import { formatAccountStatus } from '../../../../account-manager/account-manager'\nimport { AppContext } from '../../../../context'\nimport { Server } from '../../../../lexicon'\nimport { assertRepoAvailability } from './util'\n\nexport default function (server: Server, ctx: AppContext) {\n server.com.atproto.sync.getRepoStatus({\n handler: async ({ params }) => {\n const { did } = params\n const account = await assertRepoAvailability(ctx, did, true)\n\n const { active, status } = formatAccountStatus(account)\n\n let rev: string | undefined = undefined\n if (active) {\n const root = await ctx.actorStore.read(did, (store) =>\n store.repo.storage.getRootDetailed(),\n )\n rev = root.rev\n }\n\n return {\n encoding: 'application/json',\n body: {\n did,\n active,\n status,\n rev,\n },\n }\n },\n })\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/api/com/atproto/sync/index.ts"],"names":[],"mappings":";;;;;AAcA,4BAYC;AAxBD,2EAAkD;AAClD,mEAA0C;AAC1C,wDAA+B;AAC/B,4DAAmC;AACnC,wEAA+C;AAC/C,4DAAmC;AACnC,wDAA+B;AAC/B,oEAA2C;AAC3C,4DAAmC;AACnC,4DAAmC;AACnC,sEAA6C;AAE7C,mBAAyB,MAAc,EAAE,GAAe;IACtD,IAAA,iBAAO,EAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACpB,IAAA,mBAAS,EAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACtB,IAAA,yBAAe,EAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC5B,IAAA,uBAAa,EAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC1B,IAAA,mBAAS,EAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACtB,IAAA,iBAAO,EAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACpB,IAAA,wBAAc,EAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3B,IAAA,mBAAS,EAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACtB,IAAA,mBAAS,EAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACtB,IAAA,qBAAW,EAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACxB,IAAA,iBAAO,EAAC,MAAM,EAAE,GAAG,CAAC,CAAA;AACtB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/api/com/atproto/sync/index.ts"],"names":[],"mappings":";;;;;AAcA,4BAYC;AAxBD,2EAAkD;AAClD,mEAA0C;AAC1C,wDAA+B;AAC/B,4DAAmC;AACnC,wEAA+C;AAC/C,4DAAmC;AACnC,wDAA+B;AAC/B,oEAA2C;AAC3C,4DAAmC;AACnC,4DAAmC;AACnC,sEAA6C;AAE7C,mBAAyB,MAAc,EAAE,GAAe;IACtD,IAAA,iBAAO,EAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACpB,IAAA,mBAAS,EAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACtB,IAAA,yBAAe,EAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC5B,IAAA,uBAAa,EAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC1B,IAAA,mBAAS,EAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACtB,IAAA,iBAAO,EAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACpB,IAAA,wBAAc,EAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3B,IAAA,mBAAS,EAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACtB,IAAA,mBAAS,EAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACtB,IAAA,qBAAW,EAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACxB,IAAA,iBAAO,EAAC,MAAM,EAAE,GAAG,CAAC,CAAA;AACtB,CAAC","sourcesContent":["import { AppContext } from '../../../../context'\nimport { Server } from '../../../../lexicon'\nimport getCheckout from './deprecated/getCheckout'\nimport getHead from './deprecated/getHead'\nimport getBlob from './getBlob'\nimport getBlocks from './getBlocks'\nimport getLatestCommit from './getLatestCommit'\nimport getRecord from './getRecord'\nimport getRepo from './getRepo'\nimport getRepoStatus from './getRepoStatus'\nimport listBlobs from './listBlobs'\nimport listRepos from './listRepos'\nimport subscribeRepos from './subscribeRepos'\n\nexport default function (server: Server, ctx: AppContext) {\n getBlob(server, ctx)\n getBlocks(server, ctx)\n getLatestCommit(server, ctx)\n getRepoStatus(server, ctx)\n getRecord(server, ctx)\n getRepo(server, ctx)\n subscribeRepos(server, ctx)\n listBlobs(server, ctx)\n listRepos(server, ctx)\n getCheckout(server, ctx)\n getHead(server, ctx)\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"listBlobs.js","sourceRoot":"","sources":["../../../../../src/api/com/atproto/sync/listBlobs.ts"],"names":[],"mappings":";;AAMA,4BAyBC;AA/BD,uDAAkD;AAClD,6DAAyD;AAGzD,iCAA+C;AAE/C,mBAAyB,MAAc,EAAE,GAAe;IACtD,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC,iCAAiC,CAAC;YACvD,UAAU,EAAE,CAAC,sBAAS,CAAC,SAAS,CAAC;YACjC,SAAS,EAAE,GAAG,EAAE;gBACd,eAAe;YACjB,CAAC;SACF,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;YAClC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;YAC5C,MAAM,IAAA,6BAAsB,EAAC,GAAG,EAAE,GAAG,EAAE,IAAA,6BAAa,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;YAEhE,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,CACxD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CACpD,CAAA;YAED,OAAO;gBACL,QAAQ,EAAE,kBAAkB;gBAC5B,IAAI,EAAE;oBACJ,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;oBACvB,IAAI,EAAE,QAAQ;iBACf;aACF,CAAA;QACH,CAAC;KACF,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"listBlobs.js","sourceRoot":"","sources":["../../../../../src/api/com/atproto/sync/listBlobs.ts"],"names":[],"mappings":";;AAMA,4BAyBC;AA/BD,uDAAkD;AAClD,6DAAyD;AAGzD,iCAA+C;AAE/C,mBAAyB,MAAc,EAAE,GAAe;IACtD,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC,iCAAiC,CAAC;YACvD,UAAU,EAAE,CAAC,sBAAS,CAAC,SAAS,CAAC;YACjC,SAAS,EAAE,GAAG,EAAE;gBACd,eAAe;YACjB,CAAC;SACF,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;YAClC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;YAC5C,MAAM,IAAA,6BAAsB,EAAC,GAAG,EAAE,GAAG,EAAE,IAAA,6BAAa,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;YAEhE,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,CACxD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CACpD,CAAA;YAED,OAAO;gBACL,QAAQ,EAAE,kBAAkB;gBAC5B,IAAI,EAAE;oBACJ,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;oBACvB,IAAI,EAAE,QAAQ;iBACf;aACF,CAAA;QACH,CAAC;KACF,CAAC,CAAA;AACJ,CAAC","sourcesContent":["import { AuthScope } from '../../../../auth-scope'\nimport { isUserOrAdmin } from '../../../../auth-verifier'\nimport { AppContext } from '../../../../context'\nimport { Server } from '../../../../lexicon'\nimport { assertRepoAvailability } from './util'\n\nexport default function (server: Server, ctx: AppContext) {\n server.com.atproto.sync.listBlobs({\n auth: ctx.authVerifier.authorizationOrAdminTokenOptional({\n additional: [AuthScope.Takendown],\n authorize: () => {\n // always allow\n },\n }),\n handler: async ({ params, auth }) => {\n const { did, since, limit, cursor } = params\n await assertRepoAvailability(ctx, did, isUserOrAdmin(auth, did))\n\n const blobCids = await ctx.actorStore.read(did, (store) =>\n store.repo.blob.listBlobs({ since, limit, cursor }),\n )\n\n return {\n encoding: 'application/json',\n body: {\n cursor: blobCids.at(-1),\n cids: blobCids,\n },\n }\n },\n })\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"listRepos.js","sourceRoot":"","sources":["../../../../../src/api/com/atproto/sync/listRepos.ts"],"names":[],"mappings":";;;AAMA,4BA2CC;AAjDD,sDAA0D;AAC1D,iFAAiF;AAEjF,0DAA2E;AAG3E,mBAAyB,MAAc,EAAE,GAAe;IACtD,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QACrD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;QAChC,MAAM,EAAE,GAAG,GAAG,CAAC,cAAc,CAAC,EAAE,CAAA;QAChC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,OAAO,CAAA;QAC7B,IAAI,OAAO,GAAG,EAAE,CAAC,EAAE;aAChB,UAAU,CAAC,OAAO,CAAC;aACnB,SAAS,CAAC,WAAW,EAAE,eAAe,EAAE,WAAW,CAAC;aACpD,MAAM,CAAC;YACN,kBAAkB;YAClB,uBAAuB;YACvB,sBAAsB;YACtB,8BAA8B;YAC9B,sCAAsC;YACtC,kCAAkC;SACnC,CAAC,CAAA;QACJ,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAA;QAC1E,OAAO,GAAG,IAAA,qBAAQ,EAAC,OAAO,EAAE;YAC1B,KAAK;YACL,MAAM;YACN,MAAM;YACN,SAAS,EAAE,KAAK;YAChB,QAAQ,EAAE,IAAI;SACf,CAAC,CAAA;QACF,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAA;QACnC,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YAC5B,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,qCAAmB,EAAC,GAAG,CAAC,CAAA;YACnD,OAAO;gBACL,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE;gBAClB,MAAM;gBACN,MAAM;aACP,CAAA;QACH,CAAC,CAAC,CAAA;QACF,OAAO;YACL,QAAQ,EAAE,kBAAkB;YAC5B,IAAI,EAAE;gBACJ,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC;gBAClC,KAAK;aACN;SACF,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAID,MAAa,aAAc,SAAQ,0BAAoC;IACrE,WAAW,CAAC,MAAqB;QAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,GAAG,EAAE,CAAA;IAC7D,CAAC;IACD,qBAAqB,CAAC,OAAe;QACnC,OAAO;YACL,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YACvD,SAAS,EAAE,OAAO,CAAC,SAAS;SAC7B,CAAA;IACH,CAAC;IACD,qBAAqB,CAAC,MAAc;QAClC,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;QAC1D,IAAI,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,iCAAmB,CAAC,kBAAkB,CAAC,CAAA;QACnD,CAAC;QACD,OAAO;YACL,OAAO,EAAE,WAAW,CAAC,WAAW,EAAE;YAClC,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAA;IACH,CAAC;CACF;AApBD,sCAoBC"}
1
+ {"version":3,"file":"listRepos.js","sourceRoot":"","sources":["../../../../../src/api/com/atproto/sync/listRepos.ts"],"names":[],"mappings":";;;AAMA,4BA2CC;AAjDD,sDAA0D;AAC1D,iFAAiF;AAEjF,0DAA2E;AAG3E,mBAAyB,MAAc,EAAE,GAAe;IACtD,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QACrD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;QAChC,MAAM,EAAE,GAAG,GAAG,CAAC,cAAc,CAAC,EAAE,CAAA;QAChC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,OAAO,CAAA;QAC7B,IAAI,OAAO,GAAG,EAAE,CAAC,EAAE;aAChB,UAAU,CAAC,OAAO,CAAC;aACnB,SAAS,CAAC,WAAW,EAAE,eAAe,EAAE,WAAW,CAAC;aACpD,MAAM,CAAC;YACN,kBAAkB;YAClB,uBAAuB;YACvB,sBAAsB;YACtB,8BAA8B;YAC9B,sCAAsC;YACtC,kCAAkC;SACnC,CAAC,CAAA;QACJ,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAA;QAC1E,OAAO,GAAG,IAAA,qBAAQ,EAAC,OAAO,EAAE;YAC1B,KAAK;YACL,MAAM;YACN,MAAM;YACN,SAAS,EAAE,KAAK;YAChB,QAAQ,EAAE,IAAI;SACf,CAAC,CAAA;QACF,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAA;QACnC,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YAC5B,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,qCAAmB,EAAC,GAAG,CAAC,CAAA;YACnD,OAAO;gBACL,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE;gBAClB,MAAM;gBACN,MAAM;aACP,CAAA;QACH,CAAC,CAAC,CAAA;QACF,OAAO;YACL,QAAQ,EAAE,kBAAkB;YAC5B,IAAI,EAAE;gBACJ,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC;gBAClC,KAAK;aACN;SACF,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAID,MAAa,aAAc,SAAQ,0BAAoC;IACrE,WAAW,CAAC,MAAqB;QAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,GAAG,EAAE,CAAA;IAC7D,CAAC;IACD,qBAAqB,CAAC,OAAe;QACnC,OAAO;YACL,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YACvD,SAAS,EAAE,OAAO,CAAC,SAAS;SAC7B,CAAA;IACH,CAAC;IACD,qBAAqB,CAAC,MAAc;QAClC,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;QAC1D,IAAI,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,iCAAmB,CAAC,kBAAkB,CAAC,CAAA;QACnD,CAAC;QACD,OAAO;YACL,OAAO,EAAE,WAAW,CAAC,WAAW,EAAE;YAClC,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAA;IACH,CAAC;CACF;AApBD,sCAoBC","sourcesContent":["import { InvalidRequestError } from '@atproto/xrpc-server'\nimport { formatAccountStatus } from '../../../../account-manager/account-manager'\nimport { AppContext } from '../../../../context'\nimport { Cursor, GenericKeyset, paginate } from '../../../../db/pagination'\nimport { Server } from '../../../../lexicon'\n\nexport default function (server: Server, ctx: AppContext) {\n server.com.atproto.sync.listRepos(async ({ params }) => {\n const { limit, cursor } = params\n const db = ctx.accountManager.db\n const { ref } = db.db.dynamic\n let builder = db.db\n .selectFrom('actor')\n .innerJoin('repo_root', 'repo_root.did', 'actor.did')\n .select([\n 'actor.did as did',\n 'repo_root.cid as head',\n 'repo_root.rev as rev',\n 'actor.createdAt as createdAt',\n 'actor.deactivatedAt as deactivatedAt',\n 'actor.takedownRef as takedownRef',\n ])\n const keyset = new TimeDidKeyset(ref('actor.createdAt'), ref('actor.did'))\n builder = paginate(builder, {\n limit,\n cursor,\n keyset,\n direction: 'asc',\n tryIndex: true,\n })\n const res = await builder.execute()\n const repos = res.map((row) => {\n const { active, status } = formatAccountStatus(row)\n return {\n did: row.did,\n head: row.head,\n rev: row.rev ?? '',\n active,\n status,\n }\n })\n return {\n encoding: 'application/json',\n body: {\n cursor: keyset.packFromResult(res),\n repos,\n },\n }\n })\n}\n\ntype TimeDidResult = { createdAt: string; did: string }\n\nexport class TimeDidKeyset extends GenericKeyset<TimeDidResult, Cursor> {\n labelResult(result: TimeDidResult): Cursor {\n return { primary: result.createdAt, secondary: result.did }\n }\n labeledResultToCursor(labeled: Cursor) {\n return {\n primary: new Date(labeled.primary).getTime().toString(),\n secondary: labeled.secondary,\n }\n }\n cursorToLabeledResult(cursor: Cursor) {\n const primaryDate = new Date(parseInt(cursor.primary, 10))\n if (isNaN(primaryDate.getTime())) {\n throw new InvalidRequestError('Malformed cursor')\n }\n return {\n primary: primaryDate.toISOString(),\n secondary: cursor.secondary,\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"subscribeRepos.js","sourceRoot":"","sources":["../../../../../src/api/com/atproto/sync/subscribeRepos.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subscribeRepos.js","sourceRoot":"","sources":["../../../../../src/api/com/atproto/sync/subscribeRepos.ts"],"names":[],"mappings":"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","sourcesContent":["import { InvalidRequestError } from '@atproto/xrpc-server'\nimport { AppContext } from '../../../../context'\nimport { Server } from '../../../../lexicon'\nimport { httpLogger } from '../../../../logger'\nimport { Outbox } from '../../../../sequencer/outbox'\n\nexport default function (server: Server, ctx: AppContext) {\n server.com.atproto.sync.subscribeRepos(async function* ({ params, signal }) {\n const { cursor } = params\n const outbox = new Outbox(ctx.sequencer, {\n maxBufferSize: ctx.cfg.subscription.maxBuffer,\n })\n httpLogger.info({ cursor }, 'request to com.atproto.sync.subscribeRepos')\n\n const backfillTime = new Date(\n Date.now() - ctx.cfg.subscription.repoBackfillLimitMs,\n ).toISOString()\n let outboxCursor: number | undefined = undefined\n if (cursor !== undefined) {\n const [next, curr] = await Promise.all([\n ctx.sequencer.next(cursor),\n ctx.sequencer.curr(),\n ])\n if (cursor > (curr ?? 0)) {\n throw new InvalidRequestError('Cursor in the future.', 'FutureCursor')\n } else if (next && next.sequencedAt < backfillTime) {\n // if cursor is before backfill time, find earliest cursor from backfill window\n yield {\n $type: '#info',\n name: 'OutdatedCursor',\n message: 'Requested cursor exceeded limit. Possibly missing events',\n }\n const startEvt = await ctx.sequencer.earliestAfterTime(backfillTime)\n outboxCursor = startEvt?.seq ? startEvt.seq - 1 : undefined\n } else {\n outboxCursor = cursor\n }\n }\n\n for await (const evt of outbox.events(outboxCursor, signal)) {\n if (evt.type === 'commit') {\n yield {\n $type: '#commit',\n seq: evt.seq,\n time: evt.time,\n ...evt.evt,\n }\n } else if (evt.type === 'sync') {\n yield {\n $type: '#sync',\n seq: evt.seq,\n time: evt.time,\n ...evt.evt,\n }\n } else if (evt.type === 'identity') {\n yield {\n $type: '#identity',\n seq: evt.seq,\n time: evt.time,\n ...evt.evt,\n }\n } else if (evt.type === 'account') {\n yield {\n $type: '#account',\n seq: evt.seq,\n time: evt.time,\n ...evt.evt,\n }\n }\n }\n })\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../../../src/api/com/atproto/sync/util.ts"],"names":[],"mappings":";;;AAAA,sDAA0D;AAInD,MAAM,sBAAsB,GAAG,KAAK,EACzC,GAAe,EACf,GAAW,EACX,aAAsB,EACC,EAAE;IACzB,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,EAAE;QACvD,kBAAkB,EAAE,IAAI;QACxB,gBAAgB,EAAE,IAAI;KACvB,CAAC,CAAA;IACF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,iCAAmB,CAC3B,gCAAgC,GAAG,EAAE,EACrC,cAAc,CACf,CAAA;IACH,CAAC;IACD,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,OAAO,CAAA;IAChB,CAAC;IACD,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,MAAM,IAAI,iCAAmB,CAC3B,4BAA4B,GAAG,EAAE,EACjC,eAAe,CAChB,CAAA;IACH,CAAC;IACD,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;QAC1B,MAAM,IAAI,iCAAmB,CAC3B,8BAA8B,GAAG,EAAE,EACnC,iBAAiB,CAClB,CAAA;IACH,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AA/BY,QAAA,sBAAsB,0BA+BlC"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../../../src/api/com/atproto/sync/util.ts"],"names":[],"mappings":";;;AAAA,sDAA0D;AAInD,MAAM,sBAAsB,GAAG,KAAK,EACzC,GAAe,EACf,GAAW,EACX,aAAsB,EACC,EAAE;IACzB,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,EAAE;QACvD,kBAAkB,EAAE,IAAI;QACxB,gBAAgB,EAAE,IAAI;KACvB,CAAC,CAAA;IACF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,iCAAmB,CAC3B,gCAAgC,GAAG,EAAE,EACrC,cAAc,CACf,CAAA;IACH,CAAC;IACD,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,OAAO,CAAA;IAChB,CAAC;IACD,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,MAAM,IAAI,iCAAmB,CAC3B,4BAA4B,GAAG,EAAE,EACjC,eAAe,CAChB,CAAA;IACH,CAAC;IACD,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;QAC1B,MAAM,IAAI,iCAAmB,CAC3B,8BAA8B,GAAG,EAAE,EACnC,iBAAiB,CAClB,CAAA;IACH,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AA/BY,QAAA,sBAAsB,0BA+BlC","sourcesContent":["import { InvalidRequestError } from '@atproto/xrpc-server'\nimport { ActorAccount } from '../../../../account-manager/helpers/account'\nimport { AppContext } from '../../../../context'\n\nexport const assertRepoAvailability = async (\n ctx: AppContext,\n did: string,\n isAdminOrSelf: boolean,\n): Promise<ActorAccount> => {\n const account = await ctx.accountManager.getAccount(did, {\n includeDeactivated: true,\n includeTakenDown: true,\n })\n if (!account) {\n throw new InvalidRequestError(\n `Could not find repo for DID: ${did}`,\n 'RepoNotFound',\n )\n }\n if (isAdminOrSelf) {\n return account\n }\n if (account.takedownRef) {\n throw new InvalidRequestError(\n `Repo has been takendown: ${did}`,\n 'RepoTakendown',\n )\n }\n if (account.deactivatedAt) {\n throw new InvalidRequestError(\n `Repo has been deactivated: ${did}`,\n 'RepoDeactivated',\n )\n }\n return account\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"checkSignupQueue.js","sourceRoot":"","sources":["../../../../../src/api/com/atproto/temp/checkSignupQueue.ts"],"names":[],"mappings":";;AAOA,4BA2BC;AAlCD,sDAAqD;AACrD,uDAAkD;AAGlD,0CAA+C;AAE/C,sCAAsC;AACtC,mBAAyB,MAAc,EAAE,GAAe;IACtD,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC;QACvC,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC,aAAa,CAAC;YACnC,UAAU,EAAE,CAAC,sBAAS,CAAC,YAAY,CAAC;YACpC,SAAS,EAAE,GAAG,EAAE;gBACd,MAAM,IAAI,4BAAc,CACtB,uDAAuD,CACxD,CAAA;YACH,CAAC;SACF,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;YACzB,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;gBACvB,OAAO;oBACL,QAAQ,EAAE,kBAAkB;oBAC5B,IAAI,EAAE;wBACJ,SAAS,EAAE,IAAI;qBAChB;iBACF,CAAA;YACH,CAAC;YACD,OAAO,IAAA,sBAAc,EACnB,MAAM,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CACvD,SAAS,EACT,GAAG,CAAC,uBAAuB,CAAC,GAAG,CAAC,CACjC,CACF,CAAA;QACH,CAAC;KACF,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"checkSignupQueue.js","sourceRoot":"","sources":["../../../../../src/api/com/atproto/temp/checkSignupQueue.ts"],"names":[],"mappings":";;AAOA,4BA2BC;AAlCD,sDAAqD;AACrD,uDAAkD;AAGlD,0CAA+C;AAE/C,sCAAsC;AACtC,mBAAyB,MAAc,EAAE,GAAe;IACtD,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC;QACvC,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC,aAAa,CAAC;YACnC,UAAU,EAAE,CAAC,sBAAS,CAAC,YAAY,CAAC;YACpC,SAAS,EAAE,GAAG,EAAE;gBACd,MAAM,IAAI,4BAAc,CACtB,uDAAuD,CACxD,CAAA;YACH,CAAC;SACF,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;YACzB,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;gBACvB,OAAO;oBACL,QAAQ,EAAE,kBAAkB;oBAC5B,IAAI,EAAE;wBACJ,SAAS,EAAE,IAAI;qBAChB;iBACF,CAAA;YACH,CAAC;YACD,OAAO,IAAA,sBAAc,EACnB,MAAM,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CACvD,SAAS,EACT,GAAG,CAAC,uBAAuB,CAAC,GAAG,CAAC,CACjC,CACF,CAAA;QACH,CAAC;KACF,CAAC,CAAA;AACJ,CAAC","sourcesContent":["import { ForbiddenError } from '@atproto/xrpc-server'\nimport { AuthScope } from '../../../../auth-scope'\nimport { AppContext } from '../../../../context'\nimport { Server } from '../../../../lexicon'\nimport { resultPassthru } from '../../../proxy'\n\n// THIS IS A TEMPORARY UNSPECCED ROUTE\nexport default function (server: Server, ctx: AppContext) {\n server.com.atproto.temp.checkSignupQueue({\n auth: ctx.authVerifier.authorization({\n additional: [AuthScope.SignupQueued],\n authorize: () => {\n throw new ForbiddenError(\n 'OAuth credentials are not supported for this endpoint',\n )\n },\n }),\n handler: async ({ req }) => {\n if (!ctx.entrywayAgent) {\n return {\n encoding: 'application/json',\n body: {\n activated: true,\n },\n }\n }\n return resultPassthru(\n await ctx.entrywayAgent.com.atproto.temp.checkSignupQueue(\n undefined,\n ctx.entrywayPassthruHeaders(req),\n ),\n )\n },\n })\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/api/com/atproto/temp/index.ts"],"names":[],"mappings":";;;;;AAIA,4BAEC;AAJD,0EAAiD;AAEjD,mBAAyB,MAAc,EAAE,GAAe;IACtD,IAAA,0BAAgB,EAAC,MAAM,EAAE,GAAG,CAAC,CAAA;AAC/B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/api/com/atproto/temp/index.ts"],"names":[],"mappings":";;;;;AAIA,4BAEC;AAJD,0EAAiD;AAEjD,mBAAyB,MAAc,EAAE,GAAe;IACtD,IAAA,0BAAgB,EAAC,MAAM,EAAE,GAAG,CAAC,CAAA;AAC/B,CAAC","sourcesContent":["import { AppContext } from '../../../../context'\nimport { Server } from '../../../../lexicon'\nimport checkSignupQueue from './checkSignupQueue'\n\nexport default function (server: Server, ctx: AppContext) {\n checkSignupQueue(server, ctx)\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":";;;;;AAKA,4BAIC;AAPD,sDAAgC;AAChC,4DAAsC;AAEtC,mBAAyB,MAAc,EAAE,GAAe;IACtD,IAAA,iBAAU,EAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACvB,IAAA,cAAO,EAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACpB,OAAO,MAAM,CAAA;AACf,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":";;;;;AAKA,4BAIC;AAPD,sDAAgC;AAChC,4DAAsC;AAEtC,mBAAyB,MAAc,EAAE,GAAe;IACtD,IAAA,iBAAU,EAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACvB,IAAA,cAAO,EAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACpB,OAAO,MAAM,CAAA;AACf,CAAC","sourcesContent":["import { AppContext } from '../context'\nimport { Server } from '../lexicon'\nimport appBsky from './app/bsky'\nimport comAtproto from './com/atproto'\n\nexport default function (server: Server, ctx: AppContext) {\n comAtproto(server, ctx)\n appBsky(server, ctx)\n return server\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../src/api/proxy.ts"],"names":[],"mappings":";;;AAaA,oCAuBC;AAjCD,sDAA0D;AAEnD,MAAM,cAAc,GAAG,CAAI,MAAqC,EAAE,EAAE;IACzE,sEAAsE;IACtE,OAAO;QACL,QAAQ,EAAE,kBAA2B;QACrC,IAAI,EAAE,MAAM,CAAC,IAAI;KAClB,CAAA;AACH,CAAC,CAAA;AANY,QAAA,cAAc,kBAM1B;AAED,SAAgB,YAAY,CAAC,GAAoB;IAC/C,MAAM,EAAE,aAAa,EAAE,GAAG,GAAG,CAAC,OAAO,CAAA;IAErC,IAAI,aAAa,EAAE,CAAC;QAClB,4EAA4E;QAC5E,qEAAqE;QACrE,oEAAoE;QACpE,qEAAqE;QACrE,qBAAqB;QAErB,wEAAwE;QACxE,2EAA2E;QAC3E,0BAA0B;QAC1B,MAAM,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;QAC1C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,iCAAmB,CAAC,8BAA8B,CAAC,CAAA;QAC/D,CAAC;QACD,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACzD,MAAM,IAAI,iCAAmB,CAAC,iCAAiC,CAAC,CAAA;QAClE,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,EAAE,CAAA;IACvC,CAAC;AACH,CAAC;AAED,kDAAkD;AAClD,0GAA0G;AACnG,MAAM,YAAY,GAAG,CAC1B,GAAoB,EACpB,MAAgC,EAChC,EAAE;IACF,MAAM,MAAM,GAAiB,MAAM,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAA;IACtD,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,CAAA;IACjB,IAAI,EAAE,EAAE,CAAC;QACP,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAA;IACxC,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAVY,QAAA,YAAY,gBAUxB"}
1
+ {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../src/api/proxy.ts"],"names":[],"mappings":";;;AAaA,oCAuBC;AAjCD,sDAA0D;AAEnD,MAAM,cAAc,GAAG,CAAI,MAAqC,EAAE,EAAE;IACzE,sEAAsE;IACtE,OAAO;QACL,QAAQ,EAAE,kBAA2B;QACrC,IAAI,EAAE,MAAM,CAAC,IAAI;KAClB,CAAA;AACH,CAAC,CAAA;AANY,QAAA,cAAc,kBAM1B;AAED,SAAgB,YAAY,CAAC,GAAoB;IAC/C,MAAM,EAAE,aAAa,EAAE,GAAG,GAAG,CAAC,OAAO,CAAA;IAErC,IAAI,aAAa,EAAE,CAAC;QAClB,4EAA4E;QAC5E,qEAAqE;QACrE,oEAAoE;QACpE,qEAAqE;QACrE,qBAAqB;QAErB,wEAAwE;QACxE,2EAA2E;QAC3E,0BAA0B;QAC1B,MAAM,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;QAC1C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,iCAAmB,CAAC,8BAA8B,CAAC,CAAA;QAC/D,CAAC;QACD,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACzD,MAAM,IAAI,iCAAmB,CAAC,iCAAiC,CAAC,CAAA;QAClE,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,EAAE,CAAA;IACvC,CAAC;AACH,CAAC;AAED,kDAAkD;AAClD,0GAA0G;AACnG,MAAM,YAAY,GAAG,CAC1B,GAAoB,EACpB,MAAgC,EAChC,EAAE;IACF,MAAM,MAAM,GAAiB,MAAM,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAA;IACtD,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,CAAA;IACjB,IAAI,EAAE,EAAE,CAAC;QACP,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAA;IACxC,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAVY,QAAA,YAAY,gBAUxB","sourcesContent":["import { IncomingMessage } from 'node:http'\nimport express from 'express'\nimport { Headers } from '@atproto/xrpc'\nimport { InvalidRequestError } from '@atproto/xrpc-server'\n\nexport const resultPassthru = <T>(result: { headers: Headers; data: T }) => {\n // @TODO pass through any headers that we always want to forward along\n return {\n encoding: 'application/json' as const,\n body: result.data,\n }\n}\n\nexport function authPassthru(req: IncomingMessage) {\n const { authorization } = req.headers\n\n if (authorization) {\n // DPoP requests are bound to the endpoint being called. Allowing them to be\n // proxied would require that the receiving end allows DPoP proof not\n // created for him. Since proxying is mainly there to support legacy\n // clients, and DPoP is a new feature, we don't support DPoP requests\n // through the proxy.\n\n // This is fine since app views are usually called using the requester's\n // credentials when \"auth.credentials.type === 'access'\", which is the only\n // case were DPoP is used.\n const [type] = authorization.split(' ', 1)\n if (!type) {\n throw new InvalidRequestError('Invalid authorization header')\n }\n if (type.toLowerCase() === 'dpop' || req.headers['dpop']) {\n throw new InvalidRequestError('DPoP requests cannot be proxied')\n }\n\n return { headers: { authorization } }\n }\n}\n\n// @NOTE this function may mutate its params input\n// future improvement here would be to forward along all untrusted ips rather than just the first (req.ip)\nexport const forwardedFor = (\n req: express.Request,\n params: HeadersParam | undefined,\n) => {\n const result: HeadersParam = params ?? { headers: {} }\n const ip = req.ip\n if (ip) {\n result.headers['x-forwarded-for'] = ip\n }\n return result\n}\n\ntype HeadersParam = { headers: Record<string, string> }\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"app-view.js","sourceRoot":"","sources":["../src/app-view.ts"],"names":[],"mappings":";;;AAAA,yCAAkC;AAClC,sCAAuC;AAQvC,MAAa,OAAO;IAKlB,YAAY,OAAuB;QAJ5B;;;;;WAAW;QACX;;;;;WAAe;QACd;;;;;WAAsB;QAG5B,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAA;QACtB,IAAI,CAAC,KAAK,GAAG,IAAI,cAAQ,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;QACnD,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAA;IAC5C,CAAC;IAED,WAAW,CAAC,OAAe,EAAE,GAAW,EAAE,GAAW;QACnD,IAAI,IAAI,CAAC,aAAa;YAAE,OAAO,IAAA,kBAAM,EAAC,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;IAC9E,CAAC;CACF;AAdD,0BAcC"}
1
+ {"version":3,"file":"app-view.js","sourceRoot":"","sources":["../src/app-view.ts"],"names":[],"mappings":";;;AAAA,yCAAkC;AAClC,sCAAuC;AAQvC,MAAa,OAAO;IAKlB,YAAY,OAAuB;QAJ5B;;;;;WAAW;QACX;;;;;WAAe;QACd;;;;;WAAsB;QAG5B,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAA;QACtB,IAAI,CAAC,KAAK,GAAG,IAAI,cAAQ,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;QACnD,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAA;IAC5C,CAAC;IAED,WAAW,CAAC,OAAe,EAAE,GAAW,EAAE,GAAW;QACnD,IAAI,IAAI,CAAC,aAAa;YAAE,OAAO,IAAA,kBAAM,EAAC,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;IAC9E,CAAC;CACF;AAdD,0BAcC","sourcesContent":["import { format } from 'node:util'\nimport { AtpAgent } from '@atproto/api'\n\nexport type AppViewOptions = {\n url: string\n did: string\n cdnUrlPattern?: string\n}\n\nexport class AppView {\n public did: string\n public agent: AtpAgent\n private cdnUrlPattern?: string\n\n constructor(options: AppViewOptions) {\n this.did = options.did\n this.agent = new AtpAgent({ service: options.url })\n this.cdnUrlPattern = options.cdnUrlPattern\n }\n\n getImageUrl(pattern: string, did: string, cid: string): string | undefined {\n if (this.cdnUrlPattern) return format(this.cdnUrlPattern, pattern, did, cid)\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"auth-output.js","sourceRoot":"","sources":["../src/auth-output.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"auth-output.js","sourceRoot":"","sources":["../src/auth-output.ts"],"names":[],"mappings":"","sourcesContent":["import { ScopePermissions } from '@atproto/oauth-scopes'\nimport { AuthScope } from './auth-scope'\n\nexport type UnauthenticatedOutput = {\n credentials: null\n}\n\nexport type AdminTokenOutput = {\n credentials: {\n type: 'admin_token'\n }\n}\n\nexport type ModServiceOutput = {\n credentials: {\n type: 'mod_service'\n did: string\n }\n}\n\nexport type AccessOutput<S extends AuthScope = AuthScope> = {\n credentials: {\n type: 'access'\n did: string\n scope: S\n }\n}\n\nexport type OAuthOutput = {\n credentials: {\n type: 'oauth'\n did: string\n permissions: ScopePermissions\n }\n}\n\nexport type RefreshOutput = {\n credentials: {\n type: 'refresh'\n did: string\n scope: AuthScope.Refresh\n tokenId: string\n }\n}\n\nexport type UserServiceAuthOutput = {\n credentials: {\n type: 'user_service_auth'\n did: string\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"auth-routes.js","sourceRoot":"","sources":["../src/auth-routes.ts"],"names":[],"mappings":";;;AAAA,qCAAgC;AAChC,4DAOgC;AAEhC,2CAAwD;AAEjD,MAAM,YAAY,GAAG,CAAC,EAAE,aAAa,EAAE,GAAG,EAAc,EAAU,EAAE;IACzE,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAA;IAEvB,MAAM,8BAA8B,GAClC,qDAAoC,CAAC,KAAK,CAAC;QACzC,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS;QAC/B,qBAAqB,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC;QACnE,wBAAwB,EAAE,CAAC,QAAQ,CAAC;QACpC,gBAAgB,EAAE,EAAE;QACpB,sBAAsB,EAAE,qBAAqB;KAC9C,CAAC,CAAA;IAEJ,IACE,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO;QACpB,CAAC,8BAA8B,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,EAC/D,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAA;IAC3D,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,uCAAuC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC/D,GAAG,CAAC,SAAS,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAA;QACjD,GAAG,CAAC,SAAS,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAA;QACjD,GAAG,CAAC,SAAS,CAAC,8BAA8B,EAAE,GAAG,CAAC,CAAA;QAClD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAA;IACtD,CAAC,CAAC,CAAA;IAEF,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,CAAC,GAAG,CACR,IAAA,gCAAe,EAAC,aAAa,EAAE;YAC7B,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;gBAC9B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;oBACtB,uBAAW,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAA,yBAAa,EAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;gBAC1D,CAAC;YACH,CAAC;SACF,CAAC,CACH,CAAA;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAvCY,QAAA,YAAY,gBAuCxB;AAED,SAAS,WAAW,CAAC,GAAY;IAC/B,IAAI,GAAG,YAAY,oCAAmB,EAAE,CAAC;QACvC,OAAO,GAAG,CAAC,iBAAiB,KAAK,gCAAgC,CAAA;IACnE,CAAC;IAED,OAAO,CACL,GAAG,YAAY,kCAAiB;QAChC,GAAG,YAAY,uCAAsB;QACrC,GAAG,YAAY,wDAAuC,CACvD,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"auth-routes.js","sourceRoot":"","sources":["../src/auth-routes.ts"],"names":[],"mappings":";;;AAAA,qCAAgC;AAChC,4DAOgC;AAEhC,2CAAwD;AAEjD,MAAM,YAAY,GAAG,CAAC,EAAE,aAAa,EAAE,GAAG,EAAc,EAAU,EAAE;IACzE,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAA;IAEvB,MAAM,8BAA8B,GAClC,qDAAoC,CAAC,KAAK,CAAC;QACzC,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS;QAC/B,qBAAqB,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC;QACnE,wBAAwB,EAAE,CAAC,QAAQ,CAAC;QACpC,gBAAgB,EAAE,EAAE;QACpB,sBAAsB,EAAE,qBAAqB;KAC9C,CAAC,CAAA;IAEJ,IACE,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO;QACpB,CAAC,8BAA8B,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,EAC/D,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAA;IAC3D,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,uCAAuC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC/D,GAAG,CAAC,SAAS,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAA;QACjD,GAAG,CAAC,SAAS,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAA;QACjD,GAAG,CAAC,SAAS,CAAC,8BAA8B,EAAE,GAAG,CAAC,CAAA;QAClD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAA;IACtD,CAAC,CAAC,CAAA;IAEF,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,CAAC,GAAG,CACR,IAAA,gCAAe,EAAC,aAAa,EAAE;YAC7B,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;gBAC9B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;oBACtB,uBAAW,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAA,yBAAa,EAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;gBAC1D,CAAC;YACH,CAAC;SACF,CAAC,CACH,CAAA;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAvCY,QAAA,YAAY,gBAuCxB;AAED,SAAS,WAAW,CAAC,GAAY;IAC/B,IAAI,GAAG,YAAY,oCAAmB,EAAE,CAAC;QACvC,OAAO,GAAG,CAAC,iBAAiB,KAAK,gCAAgC,CAAA;IACnE,CAAC;IAED,OAAO,CACL,GAAG,YAAY,kCAAiB;QAChC,GAAG,YAAY,uCAAsB;QACrC,GAAG,YAAY,wDAAuC,CACvD,CAAA;AACH,CAAC","sourcesContent":["import { Router } from 'express'\nimport {\n HandleUnavailableError,\n InvalidRequestError,\n SecondAuthenticationFactorRequiredError,\n UseDpopNonceError,\n oauthMiddleware,\n oauthProtectedResourceMetadataSchema,\n} from '@atproto/oauth-provider'\nimport { AppContext } from './context.js'\nimport { oauthLogger, reqSerializer } from './logger.js'\n\nexport const createRouter = ({ oauthProvider, cfg }: AppContext): Router => {\n const router = Router()\n\n const oauthProtectedResourceMetadata =\n oauthProtectedResourceMetadataSchema.parse({\n resource: cfg.service.publicUrl,\n authorization_servers: [cfg.entryway?.url ?? cfg.service.publicUrl],\n bearer_methods_supported: ['header'],\n scopes_supported: [],\n resource_documentation: 'https://atproto.com',\n })\n\n if (\n !cfg.service.devMode &&\n !oauthProtectedResourceMetadata.resource.startsWith('https://')\n ) {\n throw new Error('Resource URL must use the https scheme')\n }\n\n router.get('/.well-known/oauth-protected-resource', (req, res) => {\n res.setHeader('Access-Control-Allow-Origin', '*')\n res.setHeader('Access-Control-Allow-Method', '*')\n res.setHeader('Access-Control-Allow-Headers', '*')\n res.status(200).json(oauthProtectedResourceMetadata)\n })\n\n if (oauthProvider) {\n router.use(\n oauthMiddleware(oauthProvider, {\n onError: (req, res, err, msg) => {\n if (!ignoreError(err)) {\n oauthLogger.error({ err, req: reqSerializer(req) }, msg)\n }\n },\n }),\n )\n }\n\n return router\n}\n\nfunction ignoreError(err: unknown): boolean {\n if (err instanceof InvalidRequestError) {\n return err.error_description === 'Invalid identifier or password'\n }\n\n return (\n err instanceof UseDpopNonceError ||\n err instanceof HandleUnavailableError ||\n err instanceof SecondAuthenticationFactorRequiredError\n )\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"auth-scope.js","sourceRoot":"","sources":["../src/auth-scope.ts"],"names":[],"mappings":";;;AAqBA,kCAEC;AAED,oCAIC;AAED,gDAIC;AAED,kCAEC;AAvCD,sEAAsE;AACtE,IAAY,SAOX;AAPD,WAAY,SAAS;IACnB,0CAA6B,CAAA;IAC7B,4CAA+B,CAAA;IAC/B,4CAA+B,CAAA;IAC/B,gEAAmD,CAAA;IACnD,sDAAyC,CAAA;IACzC,gDAAmC,CAAA;AACrC,CAAC,EAPW,SAAS,yBAAT,SAAS,QAOpB;AAEY,QAAA,WAAW,GAAG,CAAC,SAAS,CAAC,MAAM,CAAU,CAAA;AACzC,QAAA,iBAAiB,GAAG;IAC/B,GAAG,mBAAW;IACd,SAAS,CAAC,iBAAiB;CACnB,CAAA;AACG,QAAA,eAAe,GAAG;IAC7B,GAAG,yBAAiB;IACpB,SAAS,CAAC,OAAO;CACT,CAAA;AAEV,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAA;AAC1D,SAAgB,WAAW,CAAC,GAAY;IACtC,OAAQ,gBAAiC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AACpD,CAAC;AAED,SAAgB,YAAY,CAC1B,KAAgB;IAEhB,OAAQ,mBAAiC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AAC3D,CAAC;AAED,SAAgB,kBAAkB,CAChC,KAAgB;IAEhB,OAAQ,yBAAuC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AACjE,CAAC;AAED,SAAgB,WAAW,CAAC,KAAc;IACxC,OAAO,KAAK,KAAK,SAAS,CAAC,SAAS,CAAA;AACtC,CAAC"}
1
+ {"version":3,"file":"auth-scope.js","sourceRoot":"","sources":["../src/auth-scope.ts"],"names":[],"mappings":";;;AAqBA,kCAEC;AAED,oCAIC;AAED,gDAIC;AAED,kCAEC;AAvCD,sEAAsE;AACtE,IAAY,SAOX;AAPD,WAAY,SAAS;IACnB,0CAA6B,CAAA;IAC7B,4CAA+B,CAAA;IAC/B,4CAA+B,CAAA;IAC/B,gEAAmD,CAAA;IACnD,sDAAyC,CAAA;IACzC,gDAAmC,CAAA;AACrC,CAAC,EAPW,SAAS,yBAAT,SAAS,QAOpB;AAEY,QAAA,WAAW,GAAG,CAAC,SAAS,CAAC,MAAM,CAAU,CAAA;AACzC,QAAA,iBAAiB,GAAG;IAC/B,GAAG,mBAAW;IACd,SAAS,CAAC,iBAAiB;CACnB,CAAA;AACG,QAAA,eAAe,GAAG;IAC7B,GAAG,yBAAiB;IACpB,SAAS,CAAC,OAAO;CACT,CAAA;AAEV,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAA;AAC1D,SAAgB,WAAW,CAAC,GAAY;IACtC,OAAQ,gBAAiC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AACpD,CAAC;AAED,SAAgB,YAAY,CAC1B,KAAgB;IAEhB,OAAQ,mBAAiC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AAC3D,CAAC;AAED,SAAgB,kBAAkB,CAChC,KAAgB;IAEhB,OAAQ,yBAAuC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AACjE,CAAC;AAED,SAAgB,WAAW,CAAC,KAAc;IACxC,OAAO,KAAK,KAAK,SAAS,CAAC,SAAS,CAAA;AACtC,CAAC","sourcesContent":["// @TODO sync-up with current method names, consider backwards compat.\nexport enum AuthScope {\n Access = 'com.atproto.access',\n Refresh = 'com.atproto.refresh',\n AppPass = 'com.atproto.appPass',\n AppPassPrivileged = 'com.atproto.appPassPrivileged',\n SignupQueued = 'com.atproto.signupQueued',\n Takendown = 'com.atproto.takendown',\n}\n\nexport const ACCESS_FULL = [AuthScope.Access] as const\nexport const ACCESS_PRIVILEGED = [\n ...ACCESS_FULL,\n AuthScope.AppPassPrivileged,\n] as const\nexport const ACCESS_STANDARD = [\n ...ACCESS_PRIVILEGED,\n AuthScope.AppPass,\n] as const\n\nconst authScopesValues = new Set(Object.values(AuthScope))\nexport function isAuthScope(val: unknown): val is AuthScope {\n return (authScopesValues as Set<unknown>).has(val)\n}\n\nexport function isAccessFull(\n scope: AuthScope,\n): scope is (typeof ACCESS_FULL)[number] {\n return (ACCESS_FULL as readonly string[]).includes(scope)\n}\n\nexport function isAccessPrivileged(\n scope: AuthScope,\n): scope is (typeof ACCESS_PRIVILEGED)[number] {\n return (ACCESS_PRIVILEGED as readonly string[]).includes(scope)\n}\n\nexport function isTakendown(scope: unknown): scope is AuthScope.Takendown {\n return scope === AuthScope.Takendown\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"auth-verifier.js","sourceRoot":"","sources":["../src/auth-verifier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth-verifier.js","sourceRoot":"","sources":["../src/auth-verifier.ts"],"names":[],"mappings":"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","sourcesContent":["import { KeyObject, createPublicKey, createSecretKey } from 'node:crypto'\nimport { IncomingMessage, ServerResponse } from 'node:http'\nimport * as jose from 'jose'\nimport KeyEncoder from 'key-encoder'\nimport { getVerificationMaterial } from '@atproto/common'\nimport { IdResolver, getDidKeyFromMultibase } from '@atproto/identity'\nimport {\n OAuthError,\n OAuthVerifier,\n VerifyTokenPayloadOptions,\n WWWAuthenticateError,\n} from '@atproto/oauth-provider'\nimport {\n ScopePermissions,\n ScopePermissionsTransition,\n} from '@atproto/oauth-scopes'\nimport {\n AuthRequiredError,\n Awaitable,\n ForbiddenError,\n InvalidRequestError,\n MethodAuthContext,\n MethodAuthVerifier,\n Params,\n XRPCError,\n parseReqNsid,\n verifyJwt as verifyServiceJwt,\n} from '@atproto/xrpc-server'\nimport { AccountManager } from './account-manager/account-manager'\nimport { ActorAccount } from './account-manager/helpers/account'\nimport {\n AccessOutput,\n AdminTokenOutput,\n ModServiceOutput,\n OAuthOutput,\n RefreshOutput,\n UnauthenticatedOutput,\n UserServiceAuthOutput,\n} from './auth-output'\nimport { ACCESS_STANDARD, AuthScope, isAuthScope } from './auth-scope'\nimport { softDeleted } from './db'\nimport { appendVary } from './util/http'\nimport { WithRequired } from './util/types'\n\nexport type VerifiedOptions = {\n checkTakedown?: boolean\n checkDeactivated?: boolean\n}\n\nexport type ScopedOptions<S extends AuthScope = AuthScope> = {\n scopes?: readonly S[]\n}\n\nexport type ExtraScopedOptions<S extends AuthScope = AuthScope> = {\n additional?: readonly S[]\n}\n\nexport type AuthorizedOptions<P extends Params = Params> = {\n authorize: (\n permissions: ScopePermissions,\n ctx: MethodAuthContext<P>,\n ) => Awaitable<void>\n}\n\nexport type AuthVerifierOpts = {\n publicUrl: string\n jwtKey: KeyObject\n adminPass: string\n dids: {\n pds: string\n entryway?: string\n modService?: string\n }\n}\n\nexport type VerifyBearerJwtOptions<S extends AuthScope = AuthScope> =\n WithRequired<\n Omit<jose.JWTVerifyOptions, 'scopes'> & {\n scopes: readonly S[]\n },\n 'audience' | 'typ'\n >\n\nexport type VerifyBearerJwtResult<S extends AuthScope = AuthScope> = {\n sub: string\n aud: string\n jti: string | undefined\n scope: S\n}\n\nexport class AuthVerifier {\n private _publicUrl: string\n private _jwtKey: KeyObject\n private _adminPass: string\n public dids: AuthVerifierOpts['dids']\n\n constructor(\n public accountManager: AccountManager,\n public idResolver: IdResolver,\n public oauthVerifier: OAuthVerifier,\n opts: AuthVerifierOpts,\n ) {\n this._publicUrl = opts.publicUrl\n this._jwtKey = opts.jwtKey\n this._adminPass = opts.adminPass\n this.dids = opts.dids\n }\n\n // verifiers (arrow fns to preserve scope)\n\n public unauthenticated: MethodAuthVerifier<UnauthenticatedOutput> = (ctx) => {\n setAuthHeaders(ctx.res)\n\n // @NOTE this auth method is typically used as fallback when no other auth\n // method is applicable. This means that the presence of an \"authorization\"\n // header means that that header is invalid (as it did not match any of the\n // other auth methods).\n if (ctx.req.headers['authorization']) {\n throw new AuthRequiredError('Invalid authorization header')\n }\n\n return {\n credentials: null,\n }\n }\n\n public adminToken: MethodAuthVerifier<AdminTokenOutput> = async (ctx) => {\n setAuthHeaders(ctx.res)\n const parsed = parseBasicAuth(ctx.req)\n if (!parsed) {\n throw new AuthRequiredError()\n }\n const { username, password } = parsed\n if (username !== 'admin' || password !== this._adminPass) {\n throw new AuthRequiredError()\n }\n\n return { credentials: { type: 'admin_token' } }\n }\n\n public modService: MethodAuthVerifier<ModServiceOutput> = async (ctx) => {\n setAuthHeaders(ctx.res)\n if (!this.dids.modService) {\n throw new AuthRequiredError('Untrusted issuer', 'UntrustedIss')\n }\n const payload = await this.verifyServiceJwt(ctx.req, {\n iss: [this.dids.modService, `${this.dids.modService}#atproto_labeler`],\n })\n return {\n credentials: {\n type: 'mod_service',\n did: payload.iss,\n },\n }\n }\n\n public moderator: MethodAuthVerifier<AdminTokenOutput | ModServiceOutput> =\n async (ctx) => {\n const type = extractAuthType(ctx.req)\n if (type === AuthType.BEARER) {\n return this.modService(ctx)\n } else {\n return this.adminToken(ctx)\n }\n }\n\n protected access<S extends AuthScope>(\n options: VerifiedOptions & Required<ScopedOptions<S>>,\n ): MethodAuthVerifier<AccessOutput<S>> {\n const { scopes, ...statusOptions } = options\n\n const verifyJwtOptions: VerifyBearerJwtOptions<S> = {\n audience: this.dids.pds,\n typ: 'at+jwt',\n scopes:\n // @NOTE We can reject taken down credentials based on the scope if\n // \"checkTakedown\" is set.\n statusOptions.checkTakedown && scopes.includes(AuthScope.Takendown as S)\n ? scopes.filter((s) => s !== AuthScope.Takendown)\n : scopes,\n }\n\n return async (ctx) => {\n setAuthHeaders(ctx.res)\n\n const { sub: did, scope } = await this.verifyBearerJwt(\n ctx.req,\n verifyJwtOptions,\n )\n\n await this.verifyStatus(did, statusOptions)\n\n return {\n credentials: { type: 'access', did, scope },\n }\n }\n }\n\n public refresh(options?: {\n allowExpired?: boolean\n }): MethodAuthVerifier<RefreshOutput> {\n const verifyOptions: VerifyBearerJwtOptions<AuthScope.Refresh> = {\n clockTolerance: options?.allowExpired ? Infinity : undefined,\n typ: 'refresh+jwt',\n // when using entryway, proxying refresh credentials\n audience: this.dids.entryway ? this.dids.entryway : this.dids.pds,\n scopes: [AuthScope.Refresh],\n }\n\n return async (ctx) => {\n setAuthHeaders(ctx.res)\n\n const result = await this.verifyBearerJwt(ctx.req, verifyOptions)\n\n const tokenId = result.jti\n if (!tokenId) {\n throw new AuthRequiredError(\n 'Unexpected missing refresh token id',\n 'MissingTokenId',\n )\n }\n\n return {\n credentials: {\n type: 'refresh',\n did: result.sub,\n scope: result.scope,\n tokenId,\n },\n }\n }\n }\n\n public authorization<P extends Params>({\n scopes = ACCESS_STANDARD,\n additional = [],\n ...options\n }: VerifiedOptions &\n ScopedOptions &\n ExtraScopedOptions &\n AuthorizedOptions<P>): MethodAuthVerifier<AccessOutput | OAuthOutput, P> {\n const access = this.access({\n ...options,\n scopes: [...scopes, ...additional],\n })\n const oauth = this.oauth(options)\n\n return async (ctx) => {\n const type = extractAuthType(ctx.req)\n\n if (type === AuthType.BEARER) {\n return access(ctx)\n }\n\n if (type === AuthType.DPOP) {\n return oauth(ctx)\n }\n\n // Auth headers are set through the access and oauth methods so we only\n // need to set them here if we reach this point\n setAuthHeaders(ctx.res)\n\n if (type !== null) {\n throw new InvalidRequestError(\n 'Unexpected authorization type',\n 'InvalidToken',\n )\n }\n\n throw new AuthRequiredError(undefined, 'AuthMissing')\n }\n }\n\n public authorizationOrAdminTokenOptional<P extends Params>(\n opts: VerifiedOptions & ExtraScopedOptions & AuthorizedOptions<P>,\n ): MethodAuthVerifier<\n OAuthOutput | AccessOutput | AdminTokenOutput | UnauthenticatedOutput,\n P\n > {\n const authorization = this.authorization(opts)\n return async (ctx) => {\n const type = extractAuthType(ctx.req)\n if (type === AuthType.BEARER || type === AuthType.DPOP) {\n return authorization(ctx)\n } else if (type === AuthType.BASIC) {\n return this.adminToken(ctx)\n } else {\n return this.unauthenticated(ctx)\n }\n }\n }\n\n public userServiceAuth: MethodAuthVerifier<UserServiceAuthOutput> = async (\n ctx,\n ) => {\n setAuthHeaders(ctx.res)\n const payload = await this.verifyServiceJwt(ctx.req)\n return {\n credentials: {\n type: 'user_service_auth',\n did: payload.iss,\n },\n }\n }\n\n public userServiceAuthOptional: MethodAuthVerifier<\n UserServiceAuthOutput | UnauthenticatedOutput\n > = async (ctx) => {\n const type = extractAuthType(ctx.req)\n if (type === AuthType.BEARER) {\n return await this.userServiceAuth(ctx)\n } else {\n return this.unauthenticated(ctx)\n }\n }\n\n public authorizationOrUserServiceAuth<P extends Params>(\n options: VerifiedOptions &\n ScopedOptions &\n ExtraScopedOptions &\n AuthorizedOptions<P>,\n ): MethodAuthVerifier<UserServiceAuthOutput | OAuthOutput | AccessOutput, P> {\n const authorizationVerifier = this.authorization(options)\n return async (ctx) => {\n if (isDefinitelyServiceAuth(ctx.req)) {\n return this.userServiceAuth(ctx)\n } else {\n return authorizationVerifier(ctx)\n }\n }\n }\n\n protected oauth<P extends Params>({\n authorize,\n ...verifyStatusOptions\n }: VerifiedOptions & AuthorizedOptions<P>): MethodAuthVerifier<\n OAuthOutput,\n P\n > {\n const verifyTokenOptions: VerifyTokenPayloadOptions = {\n audience: [this.dids.pds],\n scope: ['atproto'],\n }\n\n return async (ctx) => {\n setAuthHeaders(ctx.res)\n\n const { req, res } = ctx\n\n // https://datatracker.ietf.org/doc/html/rfc9449#section-8.2\n const dpopNonce = this.oauthVerifier.nextDpopNonce()\n if (dpopNonce) {\n res.setHeader('DPoP-Nonce', dpopNonce)\n res.appendHeader('Access-Control-Expose-Headers', 'DPoP-Nonce')\n }\n\n const originalUrl = req.originalUrl || req.url || '/'\n const url = new URL(originalUrl, this._publicUrl)\n\n const { scope, sub: did } = await this.oauthVerifier\n .authenticateRequest(\n req.method || 'GET',\n url,\n req.headers,\n verifyTokenOptions,\n )\n .catch((err) => {\n // Make sure to include any WWW-Authenticate header in the response\n // (particularly useful for DPoP's \"use_dpop_nonce\" error)\n if (err instanceof WWWAuthenticateError) {\n res.setHeader('WWW-Authenticate', err.wwwAuthenticateHeader)\n res.appendHeader(\n 'Access-Control-Expose-Headers',\n 'WWW-Authenticate',\n )\n }\n\n if (err instanceof OAuthError) {\n throw new XRPCError(err.status, err.error_description, err.error)\n }\n\n throw err\n })\n\n if (typeof did !== 'string' || !did.startsWith('did:')) {\n throw new InvalidRequestError('Malformed token', 'InvalidToken')\n }\n\n await this.verifyStatus(did, verifyStatusOptions)\n\n const permissions = new ScopePermissionsTransition(scope?.split(' '))\n\n // Should never happen\n if (!permissions.scopes.has('atproto')) {\n throw new InvalidRequestError(\n 'OAuth token does not have \"atproto\" scope',\n 'InvalidToken',\n )\n }\n\n await authorize(permissions, ctx)\n\n return {\n credentials: {\n type: 'oauth',\n did,\n permissions,\n },\n }\n }\n }\n\n protected async verifyStatus(\n did: string,\n options: VerifiedOptions,\n ): Promise<void> {\n if (options.checkDeactivated || options.checkTakedown) {\n await this.findAccount(did, options)\n }\n }\n\n /**\n * Finds an account by its handle or DID, returning possibly deactivated or\n * taken down accounts (unless `options.checkDeactivated` or\n * `options.checkTakedown` are set to true, respectively).\n */\n public async findAccount(\n handleOrDid: string,\n options: VerifiedOptions,\n ): Promise<ActorAccount> {\n const account = await this.accountManager.getAccount(handleOrDid, {\n includeDeactivated: true,\n includeTakenDown: true,\n })\n if (!account) {\n // will be turned into ExpiredToken for the client if proxied by entryway\n throw new ForbiddenError('Account not found', 'AccountNotFound')\n }\n if (options.checkTakedown && softDeleted(account)) {\n throw new AuthRequiredError(\n 'Account has been taken down',\n 'AccountTakedown',\n )\n }\n if (options.checkDeactivated && account.deactivatedAt) {\n throw new AuthRequiredError(\n 'Account is deactivated',\n 'AccountDeactivated',\n )\n }\n return account\n }\n\n /**\n * Wraps {@link jose.jwtVerify} into a function that also validates the token\n * payload's type and wraps errors into {@link InvalidRequestError}.\n */\n protected async verifyBearerJwt<S extends AuthScope = AuthScope>(\n req: IncomingMessage,\n { scopes, ...options }: VerifyBearerJwtOptions<S>,\n ): Promise<VerifyBearerJwtResult<S>> {\n const token = bearerTokenFromReq(req)\n if (!token) {\n throw new AuthRequiredError(undefined, 'AuthMissing')\n }\n\n const { payload, protectedHeader } = await jose\n .jwtVerify(token, this._jwtKey, { ...options, typ: undefined })\n .catch((cause) => {\n if (cause instanceof jose.errors.JWTExpired) {\n throw new InvalidRequestError('Token has expired', 'ExpiredToken', {\n cause,\n })\n } else {\n throw new InvalidRequestError(\n 'Token could not be verified',\n 'InvalidToken',\n { cause },\n )\n }\n })\n\n // @NOTE: the \"typ\" is now set in production environments, so we should be\n // able to safely check it through jose.jwtVerify(). However, tests depend\n // on @atproto/pds-entryway which does not set \"typ\" in the access tokens.\n // For that reason, we still allow it to be missing.\n if (protectedHeader.typ && options.typ !== protectedHeader.typ) {\n throw new InvalidRequestError('Invalid token type', 'InvalidToken')\n }\n\n const { sub, aud, scope, lxm, cnf, jti } = payload\n\n if (typeof lxm !== 'undefined') {\n // Service auth tokens should never make it to here. But since service\n // auth tokens do not have a \"typ\" header, the \"typ\" check above will not\n // catch them. This check here is mainly to protect against the\n // hypothetical case in which a PDS would issue service auth tokens using\n // its private key.\n throw new InvalidRequestError('Malformed token', 'InvalidToken')\n }\n if (typeof cnf !== 'undefined') {\n // Proof-of-Possession (PoP) tokens are not allowed here\n // https://www.rfc-editor.org/rfc/rfc7800.html\n throw new InvalidRequestError('Malformed token', 'InvalidToken')\n }\n if (typeof sub !== 'string' || !sub.startsWith('did:')) {\n throw new InvalidRequestError('Malformed token', 'InvalidToken')\n }\n if (typeof aud !== 'string' || !aud.startsWith('did:')) {\n throw new InvalidRequestError('Malformed token', 'InvalidToken')\n }\n if (typeof jti !== 'string' && typeof jti !== 'undefined') {\n throw new InvalidRequestError('Malformed token', 'InvalidToken')\n }\n if (!isAuthScope(scope) || !scopes.includes(scope as any)) {\n throw new InvalidRequestError('Bad token scope', 'InvalidToken')\n }\n\n return { sub, aud, jti, scope: scope as S }\n }\n\n protected async verifyServiceJwt(\n req: IncomingMessage,\n opts?: { iss?: string[] },\n ) {\n const getSigningKey = async (\n iss: string,\n forceRefresh: boolean,\n ): Promise<string> => {\n if (opts?.iss && !opts.iss.includes(iss)) {\n throw new AuthRequiredError('Untrusted issuer', 'UntrustedIss')\n }\n const [did, serviceId] = iss.split('#')\n const keyId =\n serviceId === 'atproto_labeler' ? 'atproto_label' : 'atproto'\n const didDoc = await this.idResolver.did.resolve(did, forceRefresh)\n if (!didDoc) {\n throw new AuthRequiredError('could not resolve iss did')\n }\n const parsedKey = getVerificationMaterial(didDoc, keyId)\n if (!parsedKey) {\n throw new AuthRequiredError('missing or bad key in did doc')\n }\n const didKey = getDidKeyFromMultibase(parsedKey)\n if (!didKey) {\n throw new AuthRequiredError('missing or bad key in did doc')\n }\n return didKey\n }\n\n const jwtStr = bearerTokenFromReq(req)\n if (!jwtStr) {\n throw new AuthRequiredError('missing jwt', 'MissingJwt')\n }\n const nsid = parseReqNsid(req)\n const payload = await verifyServiceJwt(jwtStr, null, nsid, getSigningKey)\n if (\n payload.aud !== this.dids.pds &&\n (!this.dids.entryway || payload.aud !== this.dids.entryway)\n ) {\n throw new AuthRequiredError(\n 'jwt audience does not match service did',\n 'BadJwtAudience',\n )\n }\n return payload\n }\n}\n\n// HELPERS\n// ---------\n\nexport function isUserOrAdmin(\n auth: AccessOutput | OAuthOutput | AdminTokenOutput | UnauthenticatedOutput,\n did: string,\n): boolean {\n if (!auth.credentials) {\n return false\n } else if (auth.credentials.type === 'admin_token') {\n return true\n } else {\n return auth.credentials.did === did\n }\n}\n\nenum AuthType {\n BASIC = 'Basic',\n BEARER = 'Bearer',\n DPOP = 'DPoP',\n}\n\nconst parseAuthorizationHeader = (\n req: IncomingMessage,\n): [type: null] | [type: AuthType, token: string] => {\n const authorization = req.headers['authorization']\n if (!authorization) return [null]\n\n const result = authorization.split(' ')\n if (result.length !== 2) {\n throw new InvalidRequestError(\n 'Malformed authorization header',\n 'InvalidToken',\n )\n }\n\n // authorization type is case-insensitive\n const authType = result[0].toUpperCase()\n\n const type = Object.hasOwn(AuthType, authType) ? AuthType[authType] : null\n if (type) return [type, result[1]]\n\n throw new InvalidRequestError(\n `Unsupported authorization type: ${result[0]}`,\n 'InvalidToken',\n )\n}\n\n/**\n * @note Not all service auth tokens are guaranteed to have \"lxm\" claim, so this\n * function should not be used to verify service auth tokens. It is only used to\n * check if a token is definitely a service auth token.\n */\nconst isDefinitelyServiceAuth = (req: IncomingMessage): boolean => {\n const token = bearerTokenFromReq(req)\n if (!token) return false\n const payload = jose.decodeJwt(token)\n return payload['lxm'] != null\n}\n\nconst extractAuthType = (req: IncomingMessage): AuthType | null => {\n const [type] = parseAuthorizationHeader(req)\n return type\n}\n\nconst bearerTokenFromReq = (req: IncomingMessage) => {\n const [type, token] = parseAuthorizationHeader(req)\n return type === AuthType.BEARER ? token : null\n}\n\nconst parseBasicAuth = (\n req: IncomingMessage,\n): { username: string; password: string } | null => {\n try {\n const [type, b64] = parseAuthorizationHeader(req)\n if (type !== AuthType.BASIC) return null\n const decoded = Buffer.from(b64, 'base64').toString('utf8')\n // We must not use split(':') because the password can contain colons\n const colon = decoded.indexOf(':')\n if (colon === -1) return null\n const username = decoded.slice(0, colon)\n const password = decoded.slice(colon + 1)\n return { username, password }\n } catch (err) {\n return null\n }\n}\n\nexport const createSecretKeyObject = (secret: string): KeyObject => {\n return createSecretKey(Buffer.from(secret))\n}\n\nconst keyEncoder = new KeyEncoder('secp256k1')\nexport const createPublicKeyObject = (publicKeyHex: string): KeyObject => {\n const key = keyEncoder.encodePublic(publicKeyHex, 'raw', 'pem')\n return createPublicKey({ format: 'pem', key })\n}\n\nfunction setAuthHeaders(res: ServerResponse) {\n res.setHeader('Cache-Control', 'private')\n appendVary(res, 'Authorization')\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"background.js","sourceRoot":"","sources":["../src/background.ts"],"names":[],"mappings":";;;;;;AAAA,sDAA4B;AAC5B,qCAAmC;AAEnC,+DAA+D;AAE/D,MAAa,eAAe;IAG1B;QAFA;;;;mBAAQ,IAAI,iBAAM,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;WAAA;QACtC;;;;mBAAY,KAAK;WAAA;IACF,CAAC;IAEhB,GAAG,CAAC,IAAU;QACZ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,OAAM;QACR,CAAC;QACD,IAAI,CAAC,KAAK;aACP,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;aACjB,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACb,iBAAQ,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,8BAA8B,CAAC,CAAA;QACzD,CAAC,CAAC,CAAA;IACN,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAA;IAC3B,CAAC;IAED,sFAAsF;IACtF,oGAAoG;IACpG,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;QACrB,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAA;IAC3B,CAAC;CACF;AA1BD,0CA0BC"}
1
+ {"version":3,"file":"background.js","sourceRoot":"","sources":["../src/background.ts"],"names":[],"mappings":";;;;;;AAAA,sDAA4B;AAC5B,qCAAmC;AAEnC,+DAA+D;AAE/D,MAAa,eAAe;IAG1B;QAFA;;;;mBAAQ,IAAI,iBAAM,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;WAAA;QACtC;;;;mBAAY,KAAK;WAAA;IACF,CAAC;IAEhB,GAAG,CAAC,IAAU;QACZ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,OAAM;QACR,CAAC;QACD,IAAI,CAAC,KAAK;aACP,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;aACjB,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACb,iBAAQ,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,8BAA8B,CAAC,CAAA;QACzD,CAAC,CAAC,CAAA;IACN,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAA;IAC3B,CAAC;IAED,sFAAsF;IACtF,oGAAoG;IACpG,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;QACrB,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAA;IAC3B,CAAC;CACF;AA1BD,0CA0BC","sourcesContent":["import PQueue from 'p-queue'\nimport { dbLogger } from './logger'\n\n// A simple queue for in-process, out-of-band/backgrounded work\n\nexport class BackgroundQueue {\n queue = new PQueue({ concurrency: 5 })\n destroyed = false\n constructor() {}\n\n add(task: Task) {\n if (this.destroyed) {\n return\n }\n this.queue\n .add(() => task())\n .catch((err) => {\n dbLogger.error({ err }, 'background queue task failed')\n })\n }\n\n async processAll() {\n await this.queue.onIdle()\n }\n\n // On destroy we stop accepting new tasks, but complete all pending/in-progress tasks.\n // The application calls this only once http connections have drained (tasks no longer being added).\n async destroy() {\n this.destroyed = true\n await this.queue.onIdle()\n }\n}\n\ntype Task = () => Promise<void>\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"basic-routes.js","sourceRoot":"","sources":["../src/basic-routes.ts"],"names":[],"mappings":";;;AAAA,qCAAgC;AAChC,mCAA4B;AAGrB,MAAM,YAAY,GAAG,CAAC,GAAe,EAAU,EAAE;IACtD,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAA;IAEvB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,GAAG,EAAE,GAAG;QAChC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QACtB,GAAG,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;CAmBZ,CAAC,CAAA;IACA,CAAC,CAAC,CAAA;IAEF,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,UAAU,GAAG,EAAE,GAAG;QAC1C,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QACtB,GAAG,CAAC,IAAI,CACN,2EAA2E,CAC5E,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,WAAW,GAAG,EAAE,GAAG;QAClD,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,CAAA;QACnC,IAAI,CAAC;YACH,MAAM,IAAA,YAAG,EAAA,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;QACvD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,qBAAqB,CAAC,CAAA;YAC7C,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC,CAAA;YAC/D,OAAM;QACR,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;IACvB,CAAC,CAAC,CAAA;IAEF,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AA/CY,QAAA,YAAY,gBA+CxB"}
1
+ {"version":3,"file":"basic-routes.js","sourceRoot":"","sources":["../src/basic-routes.ts"],"names":[],"mappings":";;;AAAA,qCAAgC;AAChC,mCAA4B;AAGrB,MAAM,YAAY,GAAG,CAAC,GAAe,EAAU,EAAE;IACtD,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAA;IAEvB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,GAAG,EAAE,GAAG;QAChC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QACtB,GAAG,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;CAmBZ,CAAC,CAAA;IACA,CAAC,CAAC,CAAA;IAEF,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,UAAU,GAAG,EAAE,GAAG;QAC1C,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QACtB,GAAG,CAAC,IAAI,CACN,2EAA2E,CAC5E,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,WAAW,GAAG,EAAE,GAAG;QAClD,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,CAAA;QACnC,IAAI,CAAC;YACH,MAAM,IAAA,YAAG,EAAA,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;QACvD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,qBAAqB,CAAC,CAAA;YAC7C,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC,CAAA;YAC/D,OAAM;QACR,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;IACvB,CAAC,CAAC,CAAA;IAEF,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AA/CY,QAAA,YAAY,gBA+CxB","sourcesContent":["import { Router } from 'express'\nimport { sql } from 'kysely'\nimport { AppContext } from './context'\n\nexport const createRouter = (ctx: AppContext): Router => {\n const router = Router()\n\n router.get('/', function (req, res) {\n res.type('text/plain')\n res.send(`\n __ __\n /\\\\ \\\\__ /\\\\ \\\\__\n __ \\\\ \\\\ ,_\\\\ _____ _ __ ___\\\\ \\\\ ,_\\\\ ___\n /'__'\\\\ \\\\ \\\\ \\\\/ /\\\\ '__'\\\\/\\\\''__\\\\/ __'\\\\ \\\\ \\\\/ / __'\\\\\n /\\\\ \\\\L\\\\.\\\\_\\\\ \\\\ \\\\_\\\\ \\\\ \\\\L\\\\ \\\\ \\\\ \\\\//\\\\ \\\\L\\\\ \\\\ \\\\ \\\\_/\\\\ \\\\L\\\\ \\\\\n \\\\ \\\\__/.\\\\_\\\\\\\\ \\\\__\\\\\\\\ \\\\ ,__/\\\\ \\\\_\\\\\\\\ \\\\____/\\\\ \\\\__\\\\ \\\\____/\n \\\\/__/\\\\/_/ \\\\/__/ \\\\ \\\\ \\\\/ \\\\/_/ \\\\/___/ \\\\/__/\\\\/___/\n \\\\ \\\\_\\\\\n \\\\/_/\n\n\nThis is an AT Protocol Personal Data Server (aka, an atproto PDS)\n\nMost API routes are under /xrpc/\n\n Code: https://github.com/bluesky-social/atproto\n Self-Host: https://github.com/bluesky-social/pds\n Protocol: https://atproto.com\n`)\n })\n\n router.get('/robots.txt', function (req, res) {\n res.type('text/plain')\n res.send(\n '# Hello!\\n\\n# Crawling the public API is allowed\\nUser-agent: *\\nAllow: /',\n )\n })\n\n router.get('/xrpc/_health', async function (req, res) {\n const { version } = ctx.cfg.service\n try {\n await sql`select 1`.execute(ctx.accountManager.db.db)\n } catch (err) {\n req.log.error({ err }, 'failed health check')\n res.status(503).send({ version, error: 'Service Unavailable' })\n return\n }\n res.send({ version })\n })\n\n return router\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"bsky-app-view.js","sourceRoot":"","sources":["../src/bsky-app-view.ts"],"names":[],"mappings":";;;AAAA,yCAAkC;AAClC,sCAAuC;AAQvC,MAAa,WAAW;IAMtB,YAAY,OAAuB;QAL5B;;;;;WAAW;QACX;;;;;WAAW;QACX;;;;;WAAe;QACd;;;;;WAAsB;QAG5B,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAA;QACtB,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAA;QACtB,IAAI,CAAC,KAAK,GAAG,IAAI,cAAQ,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;QACnD,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAA;IAC5C,CAAC;IAED,WAAW,CAAC,OAAe,EAAE,GAAW,EAAE,GAAW;QACnD,IAAI,IAAI,CAAC,aAAa;YAAE,OAAO,IAAA,kBAAM,EAAC,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;IAC9E,CAAC;CACF;AAhBD,kCAgBC"}
1
+ {"version":3,"file":"bsky-app-view.js","sourceRoot":"","sources":["../src/bsky-app-view.ts"],"names":[],"mappings":";;;AAAA,yCAAkC;AAClC,sCAAuC;AAQvC,MAAa,WAAW;IAMtB,YAAY,OAAuB;QAL5B;;;;;WAAW;QACX;;;;;WAAW;QACX;;;;;WAAe;QACd;;;;;WAAsB;QAG5B,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAA;QACtB,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAA;QACtB,IAAI,CAAC,KAAK,GAAG,IAAI,cAAQ,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;QACnD,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAA;IAC5C,CAAC;IAED,WAAW,CAAC,OAAe,EAAE,GAAW,EAAE,GAAW;QACnD,IAAI,IAAI,CAAC,aAAa;YAAE,OAAO,IAAA,kBAAM,EAAC,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;IAC9E,CAAC;CACF;AAhBD,kCAgBC","sourcesContent":["import { format } from 'node:util'\nimport { AtpAgent } from '@atproto/api'\n\nexport type AppViewOptions = {\n url: string\n did: string\n cdnUrlPattern?: string\n}\n\nexport class BskyAppView {\n public did: string\n public url: string\n public agent: AtpAgent\n private cdnUrlPattern?: string\n\n constructor(options: AppViewOptions) {\n this.did = options.did\n this.url = options.url\n this.agent = new AtpAgent({ service: options.url })\n this.cdnUrlPattern = options.cdnUrlPattern\n }\n\n getImageUrl(pattern: string, did: string, cid: string): string | undefined {\n if (this.cdnUrlPattern) return format(this.cdnUrlPattern, pattern, did, cid)\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":";;;;;;AAAA,8DAAgC;AAChC,0DAA4B;AAC5B,4CAAmD;AAInD,iCAAiC;AACjC,gEAAgE;AAEzD,MAAM,QAAQ,GAAG,CAAC,GAAsB,EAAgB,EAAE;IAC/D,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,IAAI,CAAA;IAC7B,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,IAAI,WAAW,CAAA;IAC5C,MAAM,SAAS,GACb,QAAQ,KAAK,WAAW;QACtB,CAAC,CAAC,oBAAoB,IAAI,EAAE;QAC5B,CAAC,CAAC,WAAW,QAAQ,EAAE,CAAA;IAC3B,MAAM,GAAG,GAAG,GAAG,CAAC,UAAU,IAAI,WAAW,QAAQ,EAAE,CAAA;IACnD,MAAM,UAAU,GAA4B;QAC1C,IAAI;QACJ,QAAQ;QACR,SAAS;QACT,GAAG;QACH,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,WAAW;QACjC,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;QACtC,iBAAiB,EAAE,GAAG,CAAC,iBAAiB;QACxC,mBAAmB,EAAE,GAAG,CAAC,mBAAmB;QAC5C,gBAAgB,EAAE,GAAG,CAAC,gBAAgB,IAAI,IAAI;QAC9C,aAAa,EAAE,GAAG,CAAC,aAAa;QAChC,eAAe,EAAE,GAAG,CAAC,eAAe,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,MAAM;QAC/D,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,KAAK;KAC9B,CAAA;IAED,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,EAAE;QAC7B,OAAO,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,mBAAI,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACtE,CAAC,CAAA;IAED,MAAM,wBAAwB,GAAG,GAAG,CAAC,wBAAwB,IAAI,KAAK,CAAA;IAEtE,MAAM,KAAK,GAAuB;QAChC,YAAY,EAAE,GAAG,CAAC,iBAAiB,IAAI,KAAK,CAAC,gBAAgB,CAAC;QAC9D,cAAc,EAAE,GAAG,CAAC,mBAAmB,IAAI,KAAK,CAAC,kBAAkB,CAAC;QACpE,aAAa,EAAE,GAAG,CAAC,kBAAkB,IAAI,KAAK,CAAC,kBAAkB,CAAC;QAClE,wBAAwB;KACzB,CAAA;IAED,MAAM,aAAa,GAA+B;QAChD,SAAS,EAAE,GAAG,CAAC,mBAAmB,IAAI,KAAK,CAAC,QAAQ,CAAC;QACrD,SAAS,EAAE,GAAG,CAAC,mBAAmB,IAAI,GAAG;QACzC,wBAAwB;KACzB,CAAA;IAED,IAAI,YAAuC,CAAA;IAC3C,IAAI,GAAG,CAAC,iBAAiB,IAAI,GAAG,CAAC,qBAAqB,EAAE,CAAC;QACvD,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAA;IACnE,CAAC;IACD,IAAI,GAAG,CAAC,iBAAiB,EAAE,CAAC;QAC1B,YAAY,GAAG;YACb,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,GAAG,CAAC,iBAAiB;YAC7B,eAAe,EAAE,GAAG,CAAC,0BAA0B,IAAI,KAAK;YACxD,MAAM,EAAE,GAAG,CAAC,iBAAiB;YAC7B,QAAQ,EAAE,GAAG,CAAC,mBAAmB;YACjC,cAAc,EAAE,GAAG,CAAC,yBAAyB;SAC9C,CAAA;QACD,IAAI,GAAG,CAAC,sBAAsB,IAAI,GAAG,CAAC,0BAA0B,EAAE,CAAC;YACjE,IAAI,CAAC,GAAG,CAAC,sBAAsB,IAAI,CAAC,GAAG,CAAC,0BAA0B,EAAE,CAAC;gBACnE,MAAM,IAAI,KAAK,CACb,6EAA6E,CAC9E,CAAA;YACH,CAAC;YACD,YAAY,CAAC,WAAW,GAAG;gBACzB,WAAW,EAAE,GAAG,CAAC,sBAAsB;gBACvC,eAAe,EAAE,GAAG,CAAC,0BAA0B;aAChD,CAAA;QACH,CAAC;IACH,CAAC;SAAM,IAAI,GAAG,CAAC,qBAAqB,EAAE,CAAC;QACrC,YAAY,GAAG;YACb,QAAQ,EAAE,MAAM;YAChB,QAAQ,EAAE,GAAG,CAAC,qBAAqB;YACnC,YAAY,EAAE,GAAG,CAAC,wBAAwB;SAC3C,CAAA;IACH,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA;IAC/D,CAAC;IAED,IAAI,oBAA8B,CAAA;IAClC,IAAI,GAAG,CAAC,oBAAoB,IAAI,GAAG,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpE,oBAAoB,GAAG,GAAG,CAAC,oBAAoB,CAAA;IACjD,CAAC;SAAM,CAAC;QACN,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;YAC7B,oBAAoB,GAAG,CAAC,OAAO,CAAC,CAAA;QAClC,CAAC;aAAM,CAAC;YACN,oBAAoB,GAAG,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAA;QACzC,CAAC;IACH,CAAC;IACD,MAAM,aAAa,GAAG,oBAAoB,CAAC,IAAI,CAC7C,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CACzD,CAAA;IACD,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,0BAA0B,aAAa,EAAE,CAAC,CAAA;IAC5D,CAAC;IAED,MAAM,WAAW,GAA6B;QAC5C,MAAM,EAAE,GAAG,CAAC,SAAS,IAAI,uBAAuB;QAChD,WAAW,EAAE,GAAG,CAAC,cAAc,IAAI,YAAG;QACtC,aAAa,EAAE,GAAG,CAAC,gBAAgB,IAAI,aAAI;QAC3C,eAAe,EAAE,GAAG,CAAC,eAAe,IAAI,CAAC,GAAG,eAAM;QAClD,cAAc,EAAE,GAAG,CAAC,cAAc,IAAI,IAAI;QAC1C,oBAAoB;QACpB,uBAAuB,EAAE,GAAG,CAAC,uBAAuB;QACpD,uBAAuB,EAAE,CAAC,CAAC,GAAG,CAAC,uBAAuB;KACvD,CAAA;IAED,IAAI,WAAW,GAA6B,IAAI,CAAA;IAChD,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;QACpB,IAAA,qBAAM,EACJ,GAAG,CAAC,oCAAoC;YACtC,GAAG,CAAC,sBAAsB;YAC1B,GAAG,CAAC,WAAW,EACjB,iFAAiF,CAClF,CAAA;QACD,WAAW,GAAG;YACZ,GAAG,EAAE,GAAG,CAAC,WAAW;YACpB,GAAG,EAAE,GAAG,CAAC,WAAW;YACpB,eAAe,EAAE,GAAG,CAAC,oCAAoC;YACzD,cAAc,EAAE,GAAG,CAAC,sBAAsB;SAC3C,CAAA;IACH,CAAC;IAED,8CAA8C;IAC9C,MAAM,UAAU,GACd,GAAG,CAAC,cAAc,KAAK,KAAK;QAC1B,CAAC,CAAC;YACE,QAAQ,EAAE,KAAK;SAChB;QACH,CAAC,CAAC;YACE,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,GAAG,CAAC,cAAc,IAAI,IAAI;YACpC,KAAK,EAAE,GAAG,CAAC,WAAW,IAAI,CAAC;SAC5B,CAAA;IAEP,IAAI,QAA+B,CAAA;IACnC,IAAI,CAAC,GAAG,CAAC,gBAAgB,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAC/C,QAAQ,GAAG,IAAI,CAAA;IACjB,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,GAAG,CAAC,gBAAgB,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CACb,uEAAuE,CACxE,CAAA;QACH,CAAC;QACD,QAAQ,GAAG;YACT,OAAO,EAAE,GAAG,CAAC,YAAY;YACzB,WAAW,EAAE,GAAG,CAAC,gBAAgB;SAClC,CAAA;IACH,CAAC;IAED,IAAI,kBAAmD,CAAA;IACvD,IAAI,CAAC,GAAG,CAAC,sBAAsB,IAAI,CAAC,GAAG,CAAC,sBAAsB,EAAE,CAAC;QAC/D,kBAAkB,GAAG,IAAI,CAAA;IAC3B,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,GAAG,CAAC,sBAAsB,IAAI,CAAC,GAAG,CAAC,sBAAsB,EAAE,CAAC;YAC/D,MAAM,IAAI,KAAK,CACb,kFAAkF,CACnF,CAAA;QACH,CAAC;QACD,kBAAkB,GAAG;YACnB,OAAO,EAAE,GAAG,CAAC,sBAAsB;YACnC,WAAW,EAAE,GAAG,CAAC,sBAAsB;SACxC,CAAA;IACH,CAAC;IAED,MAAM,eAAe,GAAiC;QACpD,SAAS,EAAE,GAAG,CAAC,qBAAqB,IAAI,GAAG;QAC3C,mBAAmB,EAAE,GAAG,CAAC,mBAAmB,IAAI,YAAG;KACpD,CAAA;IAED,IAAI,cAAc,GAAgC,IAAI,CAAA;IACtD,IAAI,GAAG,CAAC,cAAc,EAAE,CAAC;QACvB,IAAA,qBAAM,EACJ,GAAG,CAAC,cAAc,EAClB,4EAA4E,CAC7E,CAAA;QACD,cAAc,GAAG;YACf,GAAG,EAAE,GAAG,CAAC,cAAc;YACvB,GAAG,EAAE,GAAG,CAAC,cAAc;YACvB,aAAa,EAAE,GAAG,CAAC,wBAAwB;SAC5C,CAAA;IACH,CAAC;IAED,IAAI,aAAa,GAA+B,IAAI,CAAA;IACpD,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;QACtB,IAAA,qBAAM,EACJ,GAAG,CAAC,aAAa,EACjB,mEAAmE,CACpE,CAAA;QACD,aAAa,GAAG;YACd,GAAG,EAAE,GAAG,CAAC,aAAa;YACtB,GAAG,EAAE,GAAG,CAAC,aAAa;SACvB,CAAA;IACH,CAAC;IAED,IAAI,gBAAgB,GAAkC,IAAI,CAAA;IAC1D,IAAI,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACzB,IAAA,qBAAM,EACJ,GAAG,CAAC,gBAAgB,EACpB,sEAAsE,CACvE,CAAA;QACD,gBAAgB,GAAG;YACjB,GAAG,EAAE,GAAG,CAAC,gBAAgB;YACzB,GAAG,EAAE,GAAG,CAAC,gBAAgB;SAC1B,CAAA;IACH,CAAC;IAED,2DAA2D;IAC3D,IAAI,aAAa,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACvC,gBAAgB,GAAG,aAAa,CAAA;IAClC,CAAC;IAED,MAAM,QAAQ,GAA0B,GAAG,CAAC,mBAAmB;QAC7D,CAAC,CAAC;YACE,OAAO,EAAE,GAAG,CAAC,mBAAmB;YAChC,QAAQ,EAAE,GAAG,CAAC,oBAAoB;SACnC;QACH,CAAC,CAAC,IAAI,CAAA;IAER,MAAM,aAAa,GAA+B,GAAG,CAAC,iBAAiB;QACrE,CAAC,CAAC;YACE,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,GAAG,CAAC,kBAAkB;YACjC,SAAS,EAAE,GAAG,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAClD,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAC/B;SACF;QACH,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;IAEtB,MAAM,WAAW,GAA6B,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAA;IAEhE,MAAM,QAAQ,GAA0B;QACtC,qBAAqB,EAAE,GAAG,CAAC,qBAAqB,IAAI,GAAG,CAAC,OAAO,IAAI,KAAK;QACxE,eAAe,EAAE,GAAG,CAAC,oBAAoB,IAAI,GAAG,GAAG,IAAI,EAAE,QAAQ;KAClE,CAAA;IAED,MAAM,QAAQ,GAA0B;QACtC,qBAAqB,EAAE,GAAG,CAAC,qBAAqB,IAAI,GAAG,CAAC,OAAO,IAAI,KAAK;QACxE,UAAU,EAAE,GAAG,CAAC,eAAe,IAAI,KAAK;QACxC,cAAc,EAAE,GAAG,CAAC,mBAAmB,IAAI,IAAI;QAC/C,WAAW,EAAE,GAAG,CAAC,gBAAgB,IAAI,IAAI;QACzC,eAAe,EAAE,GAAG,CAAC,oBAAoB,IAAI,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,OAAO;QACtE,UAAU,EACR,GAAG,CAAC,eAAe,IAAI,IAAI,IAAI,GAAG,CAAC,eAAe,GAAG,CAAC;YACpD,CAAC,CAAC,GAAG,CAAC,eAAe;YACrB,CAAC,CAAC,CAAC;QACP,gBAAgB,EAAE,GAAG,CAAC,qBAAqB,IAAI,KAAK;KACrD,CAAA;IAED,MAAM,QAAQ,GAA0B,WAAW;QACjD,CAAC,CAAC;YACE,MAAM,EAAE,WAAW,CAAC,GAAG;YACvB,QAAQ,EAAE,SAAS;SACpB;QACH,CAAC,CAAC;YACE,MAAM,EAAE,UAAU,CAAC,SAAS;YAC5B,QAAQ,EAAE;gBACR,QAAQ,EACN,GAAG,CAAC,eAAe;oBACnB,GAAG,CAAC,iBAAiB;oBACrB,GAAG,CAAC,iBAAiB;oBACnB,CAAC,CAAC;wBACE,OAAO,EAAE,GAAG,CAAC,eAAe;wBAC5B,SAAS,EAAE,GAAG,CAAC,iBAAiB;wBAChC,SAAS,EAAE,GAAG,CAAC,iBAAiB;qBACjC;oBACH,CAAC,CAAC,SAAS;gBACf,QAAQ,EAAE;oBACR,IAAI,EAAE,GAAG,CAAC,WAAW,IAAI,GAAG,QAAQ,MAAM;oBAC1C,IAAI,EAAE,GAAG,CAAC,OAAO;oBACjB,MAAM,EAAE;wBACN,KAAK,EAAE,GAAG,CAAC,UAAU;wBACrB,IAAI,EAAE,GAAG,CAAC,SAAS;wBACnB,OAAO,EAAE,GAAG,CAAC,YAAY;wBACzB,eAAe,EAAE,GAAG,CAAC,oBAAoB;wBACzC,UAAU,EAAE,GAAG,CAAC,eAAe;wBAC/B,KAAK,EAAE,GAAG,CAAC,UAAU;wBACrB,aAAa,EAAE,GAAG,CAAC,kBAAkB;wBACrC,QAAQ,EAAE,GAAG,CAAC,aAAa;wBAC3B,OAAO,EAAE,GAAG,CAAC,YAAY;wBACzB,eAAe,EAAE,GAAG,CAAC,oBAAoB;wBACzC,UAAU,EAAE,GAAG,CAAC,eAAe;wBAC/B,OAAO,EAAE,GAAG,CAAC,YAAY;wBACzB,eAAe,EAAE,GAAG,CAAC,oBAAoB;wBACzC,UAAU,EAAE,GAAG,CAAC,eAAe;qBAChC;oBACD,KAAK,EAAE;wBACL;4BACE,KAAK,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE;4BACpC,IAAI,EAAE,GAAG,CAAC,OAAO;4BACjB,GAAG,EAAE,WAAoB,EAAE,yCAAyC;yBACrE;wBACD;4BACE,KAAK,EAAE,EAAE,EAAE,EAAE,kBAAkB,EAAE;4BACjC,IAAI,EAAE,GAAG,CAAC,iBAAiB;4BAC3B,GAAG,EAAE,kBAA2B;yBACjC;wBACD;4BACE,KAAK,EAAE,EAAE,EAAE,EAAE,gBAAgB,EAAE;4BAC/B,IAAI,EAAE,GAAG,CAAC,gBAAgB;4BAC1B,GAAG,EAAE,gBAAyB;yBAC/B;wBACD;4BACE,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE;4BACxB,IAAI,EAAE,GAAG,CAAC,UAAU;4BACpB,GAAG,EAAE,MAAe;yBACrB;qBACF,CAAC,MAAM,CACN,CAA8B,CAAI,EAA6B,EAAE,CAC/D,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,EAAE,CAClC;iBACF;gBACD,cAAc,EAAE,GAAG,CAAC,mBAAmB;aACxC;SACF,CAAA;IAEL,MAAM,UAAU,GAA0B;QACxC,YAAY,EAAE,GAAG,CAAC,mBAAmB;KACtC,CAAA;IAED,OAAO;QACL,OAAO,EAAE,UAAU;QACnB,EAAE,EAAE,KAAK;QACT,UAAU,EAAE,aAAa;QACzB,SAAS,EAAE,YAAY;QACvB,QAAQ,EAAE,WAAW;QACrB,QAAQ,EAAE,WAAW;QACrB,OAAO,EAAE,UAAU;QACnB,KAAK,EAAE,QAAQ;QACf,eAAe,EAAE,kBAAkB;QACnC,YAAY,EAAE,eAAe;QAC7B,WAAW,EAAE,cAAc;QAC3B,UAAU,EAAE,aAAa;QACzB,aAAa,EAAE,gBAAgB;QAC/B,KAAK,EAAE,QAAQ;QACf,UAAU,EAAE,aAAa;QACzB,QAAQ,EAAE,WAAW;QACrB,KAAK,EAAE,QAAQ;QACf,OAAO,EAAE,UAAU;QACnB,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,QAAQ;KAChB,CAAA;AACH,CAAC,CAAA;AAnVY,QAAA,QAAQ,YAmVpB","sourcesContent":["import assert from 'node:assert'\nimport path from 'node:path'\nimport { DAY, HOUR, SECOND } from '@atproto/common'\nimport { BrandingInput, HcaptchaConfig } from '@atproto/oauth-provider'\nimport { ServerEnvironment } from './env'\n\n// off-config but still from env:\n// logging: LOG_LEVEL, LOG_SYSTEMS, LOG_ENABLED, LOG_DESTINATION\n\nexport const envToCfg = (env: ServerEnvironment): ServerConfig => {\n const port = env.port ?? 2583\n const hostname = env.hostname ?? 'localhost'\n const publicUrl =\n hostname === 'localhost'\n ? `http://localhost:${port}`\n : `https://${hostname}`\n const did = env.serviceDid ?? `did:web:${hostname}`\n const serviceCfg: ServerConfig['service'] = {\n port,\n hostname,\n publicUrl,\n did,\n version: env.version, // default?\n privacyPolicyUrl: env.privacyPolicyUrl,\n termsOfServiceUrl: env.termsOfServiceUrl,\n contactEmailAddress: env.contactEmailAddress,\n acceptingImports: env.acceptingImports ?? true,\n maxImportSize: env.maxImportSize,\n blobUploadLimit: env.blobUploadLimit ?? 5 * 1024 * 1024, // 5mb\n devMode: env.devMode ?? false,\n }\n\n const dbLoc = (name: string) => {\n return env.dataDirectory ? path.join(env.dataDirectory, name) : name\n }\n\n const disableWalAutoCheckpoint = env.disableWalAutoCheckpoint ?? false\n\n const dbCfg: ServerConfig['db'] = {\n accountDbLoc: env.accountDbLocation ?? dbLoc('account.sqlite'),\n sequencerDbLoc: env.sequencerDbLocation ?? dbLoc('sequencer.sqlite'),\n didCacheDbLoc: env.didCacheDbLocation ?? dbLoc('did_cache.sqlite'),\n disableWalAutoCheckpoint,\n }\n\n const actorStoreCfg: ServerConfig['actorStore'] = {\n directory: env.actorStoreDirectory ?? dbLoc('actors'),\n cacheSize: env.actorStoreCacheSize ?? 100,\n disableWalAutoCheckpoint,\n }\n\n let blobstoreCfg: ServerConfig['blobstore']\n if (env.blobstoreS3Bucket && env.blobstoreDiskLocation) {\n throw new Error('Cannot set both S3 and disk blobstore env vars')\n }\n if (env.blobstoreS3Bucket) {\n blobstoreCfg = {\n provider: 's3',\n bucket: env.blobstoreS3Bucket,\n uploadTimeoutMs: env.blobstoreS3UploadTimeoutMs || 20000,\n region: env.blobstoreS3Region,\n endpoint: env.blobstoreS3Endpoint,\n forcePathStyle: env.blobstoreS3ForcePathStyle,\n }\n if (env.blobstoreS3AccessKeyId || env.blobstoreS3SecretAccessKey) {\n if (!env.blobstoreS3AccessKeyId || !env.blobstoreS3SecretAccessKey) {\n throw new Error(\n 'Must specify both S3 access key id and secret access key blobstore env vars',\n )\n }\n blobstoreCfg.credentials = {\n accessKeyId: env.blobstoreS3AccessKeyId,\n secretAccessKey: env.blobstoreS3SecretAccessKey,\n }\n }\n } else if (env.blobstoreDiskLocation) {\n blobstoreCfg = {\n provider: 'disk',\n location: env.blobstoreDiskLocation,\n tempLocation: env.blobstoreDiskTmpLocation,\n }\n } else {\n throw new Error('Must configure either S3 or disk blobstore')\n }\n\n let serviceHandleDomains: string[]\n if (env.serviceHandleDomains && env.serviceHandleDomains.length > 0) {\n serviceHandleDomains = env.serviceHandleDomains\n } else {\n if (hostname === 'localhost') {\n serviceHandleDomains = ['.test']\n } else {\n serviceHandleDomains = [`.${hostname}`]\n }\n }\n const invalidDomain = serviceHandleDomains.find(\n (domain) => domain.length < 1 || !domain.startsWith('.'),\n )\n if (invalidDomain) {\n throw new Error(`Invalid handle domain: ${invalidDomain}`)\n }\n\n const identityCfg: ServerConfig['identity'] = {\n plcUrl: env.didPlcUrl ?? 'https://plc.directory',\n cacheMaxTTL: env.didCacheMaxTTL ?? DAY,\n cacheStaleTTL: env.didCacheStaleTTL ?? HOUR,\n resolverTimeout: env.resolverTimeout ?? 3 * SECOND,\n recoveryDidKey: env.recoveryDidKey ?? null,\n serviceHandleDomains,\n handleBackupNameservers: env.handleBackupNameservers,\n enableDidDocWithSession: !!env.enableDidDocWithSession,\n }\n\n let entrywayCfg: ServerConfig['entryway'] = null\n if (env.entrywayUrl) {\n assert(\n env.entrywayJwtVerifyKeyK256PublicKeyHex &&\n env.entrywayPlcRotationKey &&\n env.entrywayDid,\n 'if entryway url is configured, must include all required entryway configuration',\n )\n entrywayCfg = {\n url: env.entrywayUrl,\n did: env.entrywayDid,\n jwtPublicKeyHex: env.entrywayJwtVerifyKeyK256PublicKeyHex,\n plcRotationKey: env.entrywayPlcRotationKey,\n }\n }\n\n // default to being required if left undefined\n const invitesCfg: ServerConfig['invites'] =\n env.inviteRequired === false\n ? {\n required: false,\n }\n : {\n required: true,\n interval: env.inviteInterval ?? null,\n epoch: env.inviteEpoch ?? 0,\n }\n\n let emailCfg: ServerConfig['email']\n if (!env.emailFromAddress && !env.emailSmtpUrl) {\n emailCfg = null\n } else {\n if (!env.emailFromAddress || !env.emailSmtpUrl) {\n throw new Error(\n 'Partial email config, must set both emailFromAddress and emailSmtpUrl',\n )\n }\n emailCfg = {\n smtpUrl: env.emailSmtpUrl,\n fromAddress: env.emailFromAddress,\n }\n }\n\n let moderationEmailCfg: ServerConfig['moderationEmail']\n if (!env.moderationEmailAddress && !env.moderationEmailSmtpUrl) {\n moderationEmailCfg = null\n } else {\n if (!env.moderationEmailAddress || !env.moderationEmailSmtpUrl) {\n throw new Error(\n 'Partial moderation email config, must set both emailFromAddress and emailSmtpUrl',\n )\n }\n moderationEmailCfg = {\n smtpUrl: env.moderationEmailSmtpUrl,\n fromAddress: env.moderationEmailAddress,\n }\n }\n\n const subscriptionCfg: ServerConfig['subscription'] = {\n maxBuffer: env.maxSubscriptionBuffer ?? 500,\n repoBackfillLimitMs: env.repoBackfillLimitMs ?? DAY,\n }\n\n let bskyAppViewCfg: ServerConfig['bskyAppView'] = null\n if (env.bskyAppViewUrl) {\n assert(\n env.bskyAppViewDid,\n 'if bsky appview service url is configured, must configure its did as well.',\n )\n bskyAppViewCfg = {\n url: env.bskyAppViewUrl,\n did: env.bskyAppViewDid,\n cdnUrlPattern: env.bskyAppViewCdnUrlPattern,\n }\n }\n\n let modServiceCfg: ServerConfig['modService'] = null\n if (env.modServiceUrl) {\n assert(\n env.modServiceDid,\n 'if mod service url is configured, must configure its did as well.',\n )\n modServiceCfg = {\n url: env.modServiceUrl,\n did: env.modServiceDid,\n }\n }\n\n let reportServiceCfg: ServerConfig['reportService'] = null\n if (env.reportServiceUrl) {\n assert(\n env.reportServiceDid,\n 'if report service url is configured, must configure its did as well.',\n )\n reportServiceCfg = {\n url: env.reportServiceUrl,\n did: env.reportServiceDid,\n }\n }\n\n // if there's a mod service, default report service into it\n if (modServiceCfg && !reportServiceCfg) {\n reportServiceCfg = modServiceCfg\n }\n\n const redisCfg: ServerConfig['redis'] = env.redisScratchAddress\n ? {\n address: env.redisScratchAddress,\n password: env.redisScratchPassword,\n }\n : null\n\n const rateLimitsCfg: ServerConfig['rateLimits'] = env.rateLimitsEnabled\n ? {\n enabled: true,\n bypassKey: env.rateLimitBypassKey,\n bypassIps: env.rateLimitBypassIps?.map((ipOrCidr) =>\n ipOrCidr.split('/')[0]?.trim(),\n ),\n }\n : { enabled: false }\n\n const crawlersCfg: ServerConfig['crawlers'] = env.crawlers ?? []\n\n const fetchCfg: ServerConfig['fetch'] = {\n disableSsrfProtection: env.disableSsrfProtection ?? env.devMode ?? false,\n maxResponseSize: env.fetchMaxResponseSize ?? 512 * 1024, // 512kb\n }\n\n const proxyCfg: ServerConfig['proxy'] = {\n disableSsrfProtection: env.disableSsrfProtection ?? env.devMode ?? false,\n allowHTTP2: env.proxyAllowHTTP2 ?? false,\n headersTimeout: env.proxyHeadersTimeout ?? 10e3,\n bodyTimeout: env.proxyBodyTimeout ?? 30e3,\n maxResponseSize: env.proxyMaxResponseSize ?? 10 * 1024 * 1024, // 10mb\n maxRetries:\n env.proxyMaxRetries != null && env.proxyMaxRetries > 0\n ? env.proxyMaxRetries\n : 0,\n preferCompressed: env.proxyPreferCompressed ?? false,\n }\n\n const oauthCfg: ServerConfig['oauth'] = entrywayCfg\n ? {\n issuer: entrywayCfg.url,\n provider: undefined,\n }\n : {\n issuer: serviceCfg.publicUrl,\n provider: {\n hcaptcha:\n env.hcaptchaSiteKey &&\n env.hcaptchaSecretKey &&\n env.hcaptchaTokenSalt\n ? {\n siteKey: env.hcaptchaSiteKey,\n secretKey: env.hcaptchaSecretKey,\n tokenSalt: env.hcaptchaTokenSalt,\n }\n : undefined,\n branding: {\n name: env.serviceName ?? `${hostname} PDS`,\n logo: env.logoUrl,\n colors: {\n light: env.lightColor,\n dark: env.darkColor,\n primary: env.primaryColor,\n primaryContrast: env.primaryColorContrast,\n primaryHue: env.primaryColorHue,\n error: env.errorColor,\n errorContrast: env.errorColorContrast,\n errorHue: env.errorColorHue,\n success: env.successColor,\n successContrast: env.successColorContrast,\n successHue: env.successColorHue,\n warning: env.warningColor,\n warningContrast: env.warningColorContrast,\n warningHue: env.warningColorHue,\n },\n links: [\n {\n title: { en: 'Home', fr: 'Accueil' },\n href: env.homeUrl,\n rel: 'canonical' as const, // Prevents login page from being indexed\n },\n {\n title: { en: 'Terms of Service' },\n href: env.termsOfServiceUrl,\n rel: 'terms-of-service' as const,\n },\n {\n title: { en: 'Privacy Policy' },\n href: env.privacyPolicyUrl,\n rel: 'privacy-policy' as const,\n },\n {\n title: { en: 'Support' },\n href: env.supportUrl,\n rel: 'help' as const,\n },\n ].filter(\n <T extends { href?: string }>(f: T): f is T & { href: string } =>\n f.href != null && f.href !== '',\n ),\n },\n trustedClients: env.trustedOAuthClients,\n },\n }\n\n const lexiconCfg: LexiconResolverConfig = {\n didAuthority: env.lexiconDidAuthority,\n }\n\n return {\n service: serviceCfg,\n db: dbCfg,\n actorStore: actorStoreCfg,\n blobstore: blobstoreCfg,\n identity: identityCfg,\n entryway: entrywayCfg,\n invites: invitesCfg,\n email: emailCfg,\n moderationEmail: moderationEmailCfg,\n subscription: subscriptionCfg,\n bskyAppView: bskyAppViewCfg,\n modService: modServiceCfg,\n reportService: reportServiceCfg,\n redis: redisCfg,\n rateLimits: rateLimitsCfg,\n crawlers: crawlersCfg,\n fetch: fetchCfg,\n lexicon: lexiconCfg,\n proxy: proxyCfg,\n oauth: oauthCfg,\n }\n}\n\nexport type ServerConfig = {\n service: ServiceConfig\n db: DatabaseConfig\n actorStore: ActorStoreConfig\n blobstore: S3BlobstoreConfig | DiskBlobstoreConfig\n identity: IdentityConfig\n entryway: EntrywayConfig | null\n invites: InvitesConfig\n email: EmailConfig | null\n moderationEmail: EmailConfig | null\n subscription: SubscriptionConfig\n bskyAppView: BksyAppViewConfig | null\n modService: ModServiceConfig | null\n reportService: ReportServiceConfig | null\n redis: RedisScratchConfig | null\n rateLimits: RateLimitsConfig\n crawlers: string[]\n fetch: FetchConfig\n proxy: ProxyConfig\n oauth: OAuthConfig\n lexicon: LexiconResolverConfig\n}\n\nexport type ServiceConfig = {\n port: number\n hostname: string\n publicUrl: string\n did: string\n version?: string\n privacyPolicyUrl?: string\n termsOfServiceUrl?: string\n acceptingImports: boolean\n maxImportSize?: number\n blobUploadLimit: number\n contactEmailAddress?: string\n devMode: boolean\n}\n\nexport type DatabaseConfig = {\n accountDbLoc: string\n sequencerDbLoc: string\n didCacheDbLoc: string\n disableWalAutoCheckpoint: boolean\n}\n\nexport type ActorStoreConfig = {\n directory: string\n cacheSize: number\n disableWalAutoCheckpoint: boolean\n}\n\nexport type S3BlobstoreConfig = {\n provider: 's3'\n bucket: string\n region?: string\n endpoint?: string\n forcePathStyle?: boolean\n uploadTimeoutMs?: number\n credentials?: {\n accessKeyId: string\n secretAccessKey: string\n }\n}\n\nexport type DiskBlobstoreConfig = {\n provider: 'disk'\n location: string\n tempLocation?: string\n}\n\nexport type IdentityConfig = {\n plcUrl: string\n resolverTimeout: number\n cacheStaleTTL: number\n cacheMaxTTL: number\n recoveryDidKey: string | null\n serviceHandleDomains: string[]\n handleBackupNameservers?: string[]\n enableDidDocWithSession: boolean\n}\n\nexport type EntrywayConfig = {\n url: string\n did: string\n jwtPublicKeyHex: string\n plcRotationKey: string\n}\n\nexport type FetchConfig = {\n disableSsrfProtection: boolean\n maxResponseSize: number\n}\n\nexport type ProxyConfig = {\n disableSsrfProtection: boolean\n allowHTTP2: boolean\n headersTimeout: number\n bodyTimeout: number\n maxResponseSize: number\n maxRetries: number\n\n /**\n * When proxying requests that might get intercepted (for read-after-write) we\n * negotiate the encoding based on the client's preferences. We will however\n * use or own weights in order to be able to better control if the PDS will\n * need to perform content decoding. This settings allows to prefer compressed\n * content over uncompressed one.\n */\n preferCompressed: boolean\n}\n\nexport type OAuthConfig = {\n issuer: string\n provider?: {\n hcaptcha?: HcaptchaConfig\n branding: BrandingInput\n trustedClients?: string[]\n }\n}\n\nexport type LexiconResolverConfig = {\n didAuthority?: string\n}\n\nexport type InvitesConfig =\n | {\n required: true\n interval: number | null\n epoch: number\n }\n | {\n required: false\n }\n\nexport type EmailConfig = {\n smtpUrl: string\n fromAddress: string\n}\n\nexport type SubscriptionConfig = {\n maxBuffer: number\n repoBackfillLimitMs: number\n}\n\nexport type RedisScratchConfig = {\n address: string\n password?: string\n}\n\nexport type RateLimitsConfig =\n | {\n enabled: true\n bypassKey?: string\n bypassIps?: string[]\n }\n | { enabled: false }\n\nexport type BksyAppViewConfig = {\n url: string\n did: string\n cdnUrlPattern?: string\n}\n\nexport type ModServiceConfig = {\n url: string\n did: string\n}\n\nexport type ReportServiceConfig = {\n url: string\n did: string\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/config/env.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/config/env.ts"],"names":[],"mappings":"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","sourcesContent":["import { envBool, envInt, envList, envStr } from '@atproto/common'\n\nexport const readEnv = (): ServerEnvironment => {\n return {\n // service\n port: envInt('PDS_PORT'),\n hostname: envStr('PDS_HOSTNAME'),\n serviceDid: envStr('PDS_SERVICE_DID'),\n serviceName: envStr('PDS_SERVICE_NAME'),\n version: envStr('PDS_VERSION'),\n homeUrl: envStr('PDS_HOME_URL'),\n logoUrl: envStr('PDS_LOGO_URL'),\n privacyPolicyUrl: envStr('PDS_PRIVACY_POLICY_URL'),\n supportUrl: envStr('PDS_SUPPORT_URL'),\n termsOfServiceUrl: envStr('PDS_TERMS_OF_SERVICE_URL'),\n contactEmailAddress: envStr('PDS_CONTACT_EMAIL_ADDRESS'),\n acceptingImports: envBool('PDS_ACCEPTING_REPO_IMPORTS'),\n maxImportSize: envInt('PDS_MAX_REPO_IMPORT_SIZE'),\n blobUploadLimit: envInt('PDS_BLOB_UPLOAD_LIMIT'),\n devMode: envBool('PDS_DEV_MODE'),\n\n // hCaptcha\n hcaptchaSiteKey: envStr('PDS_HCAPTCHA_SITE_KEY'),\n hcaptchaSecretKey: envStr('PDS_HCAPTCHA_SECRET_KEY'),\n hcaptchaTokenSalt: envStr('PDS_HCAPTCHA_TOKEN_SALT'),\n\n // OAuth\n trustedOAuthClients: envList('PDS_OAUTH_TRUSTED_CLIENTS'),\n\n // branding\n lightColor: envStr('PDS_LIGHT_COLOR'),\n darkColor: envStr('PDS_DARK_COLOR'),\n primaryColor: envStr('PDS_PRIMARY_COLOR'),\n primaryColorContrast: envStr('PDS_PRIMARY_COLOR_CONTRAST'),\n primaryColorHue: envInt('PDS_PRIMARY_COLOR_HUE'),\n errorColor: envStr('PDS_ERROR_COLOR'),\n errorColorContrast: envStr('PDS_ERROR_COLOR_CONTRAST'),\n errorColorHue: envInt('PDS_ERROR_COLOR_HUE'),\n warningColor: envStr('PDS_WARNING_COLOR'),\n warningColorContrast: envStr('PDS_WARNING_COLOR_CONTRAST'),\n warningColorHue: envInt('PDS_WARNING_COLOR_HUE'),\n successColor: envStr('PDS_SUCCESS_COLOR'),\n successColorContrast: envStr('PDS_SUCCESS_COLOR_CONTRAST'),\n successColorHue: envInt('PDS_SUCCESS_COLOR_HUE'),\n\n // database\n dataDirectory: envStr('PDS_DATA_DIRECTORY'),\n disableWalAutoCheckpoint: envBool('PDS_SQLITE_DISABLE_WAL_AUTO_CHECKPOINT'),\n accountDbLocation: envStr('PDS_ACCOUNT_DB_LOCATION'),\n sequencerDbLocation: envStr('PDS_SEQUENCER_DB_LOCATION'),\n didCacheDbLocation: envStr('PDS_DID_CACHE_DB_LOCATION'),\n\n // actor store\n actorStoreDirectory: envStr('PDS_ACTOR_STORE_DIRECTORY'),\n actorStoreCacheSize: envInt('PDS_ACTOR_STORE_CACHE_SIZE'),\n\n // blobstore: one required\n // s3\n blobstoreS3Bucket: envStr('PDS_BLOBSTORE_S3_BUCKET'),\n blobstoreS3Region: envStr('PDS_BLOBSTORE_S3_REGION'),\n blobstoreS3Endpoint: envStr('PDS_BLOBSTORE_S3_ENDPOINT'),\n blobstoreS3ForcePathStyle: envBool('PDS_BLOBSTORE_S3_FORCE_PATH_STYLE'),\n blobstoreS3AccessKeyId: envStr('PDS_BLOBSTORE_S3_ACCESS_KEY_ID'),\n blobstoreS3SecretAccessKey: envStr('PDS_BLOBSTORE_S3_SECRET_ACCESS_KEY'),\n blobstoreS3UploadTimeoutMs: envInt('PDS_BLOBSTORE_S3_UPLOAD_TIMEOUT_MS'),\n // disk\n blobstoreDiskLocation: envStr('PDS_BLOBSTORE_DISK_LOCATION'),\n blobstoreDiskTmpLocation: envStr('PDS_BLOBSTORE_DISK_TMP_LOCATION'),\n\n // identity\n didPlcUrl: envStr('PDS_DID_PLC_URL'),\n didCacheStaleTTL: envInt('PDS_DID_CACHE_STALE_TTL'),\n didCacheMaxTTL: envInt('PDS_DID_CACHE_MAX_TTL'),\n resolverTimeout: envInt('PDS_ID_RESOLVER_TIMEOUT'),\n recoveryDidKey: envStr('PDS_RECOVERY_DID_KEY'),\n serviceHandleDomains: envList('PDS_SERVICE_HANDLE_DOMAINS'),\n handleBackupNameservers: envList('PDS_HANDLE_BACKUP_NAMESERVERS'),\n enableDidDocWithSession: envBool('PDS_ENABLE_DID_DOC_WITH_SESSION'),\n\n // entryway\n entrywayUrl: envStr('PDS_ENTRYWAY_URL'),\n entrywayDid: envStr('PDS_ENTRYWAY_DID'),\n entrywayJwtVerifyKeyK256PublicKeyHex: envStr(\n 'PDS_ENTRYWAY_JWT_VERIFY_KEY_K256_PUBLIC_KEY_HEX',\n ),\n entrywayPlcRotationKey: envStr('PDS_ENTRYWAY_PLC_ROTATION_KEY'),\n\n // invites\n inviteRequired: envBool('PDS_INVITE_REQUIRED'),\n inviteInterval: envInt('PDS_INVITE_INTERVAL'),\n inviteEpoch: envInt('PDS_INVITE_EPOCH'),\n\n // email\n emailSmtpUrl: envStr('PDS_EMAIL_SMTP_URL'),\n emailFromAddress: envStr('PDS_EMAIL_FROM_ADDRESS'),\n moderationEmailSmtpUrl: envStr('PDS_MODERATION_EMAIL_SMTP_URL'),\n moderationEmailAddress: envStr('PDS_MODERATION_EMAIL_ADDRESS'),\n\n // subscription\n maxSubscriptionBuffer: envInt('PDS_MAX_SUBSCRIPTION_BUFFER'),\n repoBackfillLimitMs: envInt('PDS_REPO_BACKFILL_LIMIT_MS'),\n\n // appview\n bskyAppViewUrl: envStr('PDS_BSKY_APP_VIEW_URL'),\n bskyAppViewDid: envStr('PDS_BSKY_APP_VIEW_DID'),\n bskyAppViewCdnUrlPattern: envStr('PDS_BSKY_APP_VIEW_CDN_URL_PATTERN'),\n\n // mod service\n modServiceUrl: envStr('PDS_MOD_SERVICE_URL'),\n modServiceDid: envStr('PDS_MOD_SERVICE_DID'),\n\n // report service\n reportServiceUrl: envStr('PDS_REPORT_SERVICE_URL'),\n reportServiceDid: envStr('PDS_REPORT_SERVICE_DID'),\n\n // rate limits\n rateLimitsEnabled: envBool('PDS_RATE_LIMITS_ENABLED'),\n rateLimitBypassKey: envStr('PDS_RATE_LIMIT_BYPASS_KEY'),\n rateLimitBypassIps: envList('PDS_RATE_LIMIT_BYPASS_IPS'),\n\n // redis\n redisScratchAddress: envStr('PDS_REDIS_SCRATCH_ADDRESS'),\n redisScratchPassword: envStr('PDS_REDIS_SCRATCH_PASSWORD'),\n\n // crawlers\n crawlers: envList('PDS_CRAWLERS'),\n\n // secrets\n dpopSecret: envStr('PDS_DPOP_SECRET'),\n jwtSecret: envStr('PDS_JWT_SECRET'),\n adminPassword: envStr('PDS_ADMIN_PASSWORD'),\n entrywayAdminToken: envStr('PDS_ENTRYWAY_ADMIN_TOKEN'),\n\n // kms\n plcRotationKeyKmsKeyId: envStr('PDS_PLC_ROTATION_KEY_KMS_KEY_ID'),\n // memory\n plcRotationKeyK256PrivateKeyHex: envStr(\n 'PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX',\n ),\n\n // user provided url http requests\n disableSsrfProtection: envBool('PDS_DISABLE_SSRF_PROTECTION'),\n\n // fetch\n fetchMaxResponseSize: envInt('PDS_FETCH_MAX_RESPONSE_SIZE'),\n\n // proxy\n proxyAllowHTTP2: envBool('PDS_PROXY_ALLOW_HTTP2'),\n proxyHeadersTimeout: envInt('PDS_PROXY_HEADERS_TIMEOUT'),\n proxyBodyTimeout: envInt('PDS_PROXY_BODY_TIMEOUT'),\n proxyMaxResponseSize: envInt('PDS_PROXY_MAX_RESPONSE_SIZE'),\n proxyMaxRetries: envInt('PDS_PROXY_MAX_RETRIES'),\n proxyPreferCompressed: envBool('PDS_PROXY_PREFER_COMPRESSED'),\n }\n}\n\nexport type ServerEnvironment = {\n // service\n port?: number\n hostname?: string\n serviceDid?: string\n serviceName?: string\n version?: string\n homeUrl?: string\n logoUrl?: string\n privacyPolicyUrl?: string\n supportUrl?: string\n termsOfServiceUrl?: string\n contactEmailAddress?: string\n acceptingImports?: boolean\n maxImportSize?: number\n blobUploadLimit?: number\n devMode?: boolean\n\n // OAuth\n hcaptchaSiteKey?: string\n hcaptchaSecretKey?: string\n hcaptchaTokenSalt?: string\n trustedOAuthClients?: string[]\n\n // branding\n lightColor?: string\n darkColor?: string\n primaryColor?: string\n primaryColorContrast?: string\n primaryColorHue?: number\n errorColor?: string\n errorColorContrast?: string\n errorColorHue?: number\n warningColor?: string\n warningColorContrast?: string\n warningColorHue?: number\n successColor?: string\n successColorContrast?: string\n successColorHue?: number\n\n // database\n dataDirectory?: string\n disableWalAutoCheckpoint?: boolean\n accountDbLocation?: string\n sequencerDbLocation?: string\n didCacheDbLocation?: string\n\n // actor store\n actorStoreDirectory?: string\n actorStoreCacheSize?: number\n\n // blobstore: one required\n blobstoreS3Bucket?: string\n blobstoreDiskLocation?: string\n blobstoreDiskTmpLocation?: string\n\n // -- optional s3 parameters\n blobstoreS3Region?: string\n blobstoreS3Endpoint?: string\n blobstoreS3ForcePathStyle?: boolean\n blobstoreS3AccessKeyId?: string\n blobstoreS3SecretAccessKey?: string\n blobstoreS3UploadTimeoutMs?: number\n\n // identity\n didPlcUrl?: string\n didCacheStaleTTL?: number\n didCacheMaxTTL?: number\n resolverTimeout?: number\n recoveryDidKey?: string\n serviceHandleDomains?: string[] // public hostname by default\n handleBackupNameservers?: string[]\n enableDidDocWithSession?: boolean\n\n // entryway\n entrywayUrl?: string\n entrywayDid?: string\n entrywayJwtVerifyKeyK256PublicKeyHex?: string\n entrywayPlcRotationKey?: string\n\n // invites\n inviteRequired?: boolean\n inviteInterval?: number\n inviteEpoch?: number\n\n // email\n emailSmtpUrl?: string\n emailFromAddress?: string\n moderationEmailSmtpUrl?: string\n moderationEmailAddress?: string\n\n // subscription\n maxSubscriptionBuffer?: number\n repoBackfillLimitMs?: number\n\n // appview\n bskyAppViewUrl?: string\n bskyAppViewDid?: string\n bskyAppViewCdnUrlPattern?: string\n\n // mod service\n modServiceUrl?: string\n modServiceDid?: string\n\n // report service\n reportServiceUrl?: string\n reportServiceDid?: string\n\n // rate limits\n rateLimitsEnabled?: boolean\n rateLimitBypassKey?: string\n rateLimitBypassIps?: string[]\n\n // redis\n redisScratchAddress?: string\n redisScratchPassword?: string\n\n // crawler\n crawlers?: string[]\n\n // secrets\n dpopSecret?: string\n jwtSecret?: string\n adminPassword?: string\n entrywayAdminToken?: string\n\n // keys\n plcRotationKeyKmsKeyId?: string\n plcRotationKeyK256PrivateKeyHex?: string\n\n // user provided url http requests\n disableSsrfProtection?: boolean\n\n // fetch\n fetchForceLogging?: boolean\n fetchMaxResponseSize?: number\n\n // lexicon resolver\n lexiconDidAuthority?: string\n\n // proxy\n proxyAllowHTTP2?: boolean\n proxyHeadersTimeout?: number\n proxyBodyTimeout?: number\n proxyMaxResponseSize?: number\n proxyMaxRetries?: number\n proxyPreferCompressed?: boolean\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAwB;AACxB,wCAAqB;AACrB,4CAAyB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAwB;AACxB,wCAAqB;AACrB,4CAAyB","sourcesContent":["export * from './config'\nexport * from './env'\nexport * from './secrets'\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"secrets.js","sourceRoot":"","sources":["../../src/config/secrets.ts"],"names":[],"mappings":";;;AAEO,MAAM,YAAY,GAAG,CAAC,GAAsB,EAAiB,EAAE;IACpE,IAAI,cAA+C,CAAA;IACnD,IAAI,GAAG,CAAC,sBAAsB,IAAI,GAAG,CAAC,+BAA+B,EAAE,CAAC;QACtE,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAA;IAC3E,CAAC;SAAM,IAAI,GAAG,CAAC,sBAAsB,EAAE,CAAC;QACtC,cAAc,GAAG;YACf,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,GAAG,CAAC,sBAAsB;SAClC,CAAA;IACH,CAAC;SAAM,IAAI,GAAG,CAAC,+BAA+B,EAAE,CAAC;QAC/C,cAAc,GAAG;YACf,QAAQ,EAAE,QAAQ;YAClB,aAAa,EAAE,GAAG,CAAC,+BAA+B;SACnD,CAAA;IACH,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;IACpD,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;IAC9C,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;IACnD,CAAC;IAED,OAAO;QACL,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,aAAa,EAAE,GAAG,CAAC,aAAa;QAChC,cAAc;QACd,kBAAkB,EAAE,GAAG,CAAC,kBAAkB,IAAI,GAAG,CAAC,aAAa;KAChE,CAAA;AACH,CAAC,CAAA;AAjCY,QAAA,YAAY,gBAiCxB"}
1
+ {"version":3,"file":"secrets.js","sourceRoot":"","sources":["../../src/config/secrets.ts"],"names":[],"mappings":";;;AAEO,MAAM,YAAY,GAAG,CAAC,GAAsB,EAAiB,EAAE;IACpE,IAAI,cAA+C,CAAA;IACnD,IAAI,GAAG,CAAC,sBAAsB,IAAI,GAAG,CAAC,+BAA+B,EAAE,CAAC;QACtE,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAA;IAC3E,CAAC;SAAM,IAAI,GAAG,CAAC,sBAAsB,EAAE,CAAC;QACtC,cAAc,GAAG;YACf,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,GAAG,CAAC,sBAAsB;SAClC,CAAA;IACH,CAAC;SAAM,IAAI,GAAG,CAAC,+BAA+B,EAAE,CAAC;QAC/C,cAAc,GAAG;YACf,QAAQ,EAAE,QAAQ;YAClB,aAAa,EAAE,GAAG,CAAC,+BAA+B;SACnD,CAAA;IACH,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;IACpD,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;IAC9C,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;IACnD,CAAC;IAED,OAAO;QACL,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,aAAa,EAAE,GAAG,CAAC,aAAa;QAChC,cAAc;QACd,kBAAkB,EAAE,GAAG,CAAC,kBAAkB,IAAI,GAAG,CAAC,aAAa;KAChE,CAAA;AACH,CAAC,CAAA;AAjCY,QAAA,YAAY,gBAiCxB","sourcesContent":["import { ServerEnvironment } from './env'\n\nexport const envToSecrets = (env: ServerEnvironment): ServerSecrets => {\n let plcRotationKey: ServerSecrets['plcRotationKey']\n if (env.plcRotationKeyKmsKeyId && env.plcRotationKeyK256PrivateKeyHex) {\n throw new Error('Cannot set both kms & memory keys for plc rotation key')\n } else if (env.plcRotationKeyKmsKeyId) {\n plcRotationKey = {\n provider: 'kms',\n keyId: env.plcRotationKeyKmsKeyId,\n }\n } else if (env.plcRotationKeyK256PrivateKeyHex) {\n plcRotationKey = {\n provider: 'memory',\n privateKeyHex: env.plcRotationKeyK256PrivateKeyHex,\n }\n } else {\n throw new Error('Must configure plc rotation key')\n }\n\n if (!env.jwtSecret) {\n throw new Error('Must provide a JWT secret')\n }\n\n if (!env.adminPassword) {\n throw new Error('Must provide an admin password')\n }\n\n return {\n dpopSecret: env.dpopSecret,\n jwtSecret: env.jwtSecret,\n adminPassword: env.adminPassword,\n plcRotationKey,\n entrywayAdminToken: env.entrywayAdminToken ?? env.adminPassword,\n }\n}\n\nexport type ServerSecrets = {\n dpopSecret?: string\n jwtSecret: string\n adminPassword: string\n plcRotationKey: SigningKeyKms | SigningKeyMemory\n entrywayAdminToken?: string\n}\n\nexport type SigningKeyKms = {\n provider: 'kms'\n keyId: string\n}\n\nexport type SigningKeyMemory = {\n provider: 'memory'\n privateKeyHex: string\n}\n"]}