@atproto/bsky 0.0.187 → 0.0.189

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 (566) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/api/app/bsky/actor/getProfile.js.map +1 -1
  3. package/dist/api/app/bsky/actor/getProfiles.js.map +1 -1
  4. package/dist/api/app/bsky/actor/getSuggestions.js.map +1 -1
  5. package/dist/api/app/bsky/actor/searchActors.js.map +1 -1
  6. package/dist/api/app/bsky/actor/searchActorsTypeahead.js.map +1 -1
  7. package/dist/api/app/bsky/bookmark/createBookmark.js.map +1 -1
  8. package/dist/api/app/bsky/bookmark/deleteBookmark.js.map +1 -1
  9. package/dist/api/app/bsky/bookmark/getBookmarks.js.map +1 -1
  10. package/dist/api/app/bsky/bookmark/util.js.map +1 -1
  11. package/dist/api/app/bsky/feed/getActorFeeds.js.map +1 -1
  12. package/dist/api/app/bsky/feed/getActorLikes.js.map +1 -1
  13. package/dist/api/app/bsky/feed/getAuthorFeed.js.map +1 -1
  14. package/dist/api/app/bsky/feed/getFeed.js.map +1 -1
  15. package/dist/api/app/bsky/feed/getFeedGenerator.js.map +1 -1
  16. package/dist/api/app/bsky/feed/getFeedGenerators.js.map +1 -1
  17. package/dist/api/app/bsky/feed/getLikes.js.map +1 -1
  18. package/dist/api/app/bsky/feed/getListFeed.js.map +1 -1
  19. package/dist/api/app/bsky/feed/getPostThread.js.map +1 -1
  20. package/dist/api/app/bsky/feed/getPosts.js.map +1 -1
  21. package/dist/api/app/bsky/feed/getQuotes.js.map +1 -1
  22. package/dist/api/app/bsky/feed/getRepostedBy.js.map +1 -1
  23. package/dist/api/app/bsky/feed/getSuggestedFeeds.js.map +1 -1
  24. package/dist/api/app/bsky/feed/getTimeline.js.map +1 -1
  25. package/dist/api/app/bsky/feed/searchPosts.js.map +1 -1
  26. package/dist/api/app/bsky/graph/getActorStarterPacks.js.map +1 -1
  27. package/dist/api/app/bsky/graph/getBlocks.js.map +1 -1
  28. package/dist/api/app/bsky/graph/getFollowers.js.map +1 -1
  29. package/dist/api/app/bsky/graph/getFollows.js.map +1 -1
  30. package/dist/api/app/bsky/graph/getKnownFollowers.js.map +1 -1
  31. package/dist/api/app/bsky/graph/getList.js.map +1 -1
  32. package/dist/api/app/bsky/graph/getListBlocks.js.map +1 -1
  33. package/dist/api/app/bsky/graph/getListMutes.js.map +1 -1
  34. package/dist/api/app/bsky/graph/getLists.js.map +1 -1
  35. package/dist/api/app/bsky/graph/getListsWithMembership.js.map +1 -1
  36. package/dist/api/app/bsky/graph/getMutes.js.map +1 -1
  37. package/dist/api/app/bsky/graph/getRelationships.js.map +1 -1
  38. package/dist/api/app/bsky/graph/getStarterPack.js.map +1 -1
  39. package/dist/api/app/bsky/graph/getStarterPacks.js.map +1 -1
  40. package/dist/api/app/bsky/graph/getStarterPacksWithMembership.js.map +1 -1
  41. package/dist/api/app/bsky/graph/getSuggestedFollowsByActor.js.map +1 -1
  42. package/dist/api/app/bsky/graph/muteActor.js.map +1 -1
  43. package/dist/api/app/bsky/graph/muteActorList.js.map +1 -1
  44. package/dist/api/app/bsky/graph/muteThread.js.map +1 -1
  45. package/dist/api/app/bsky/graph/searchStarterPacks.js.map +1 -1
  46. package/dist/api/app/bsky/graph/unmuteActor.js.map +1 -1
  47. package/dist/api/app/bsky/graph/unmuteActorList.js.map +1 -1
  48. package/dist/api/app/bsky/graph/unmuteThread.js.map +1 -1
  49. package/dist/api/app/bsky/labeler/getServices.js.map +1 -1
  50. package/dist/api/app/bsky/notification/getPreferences.js.map +1 -1
  51. package/dist/api/app/bsky/notification/getUnreadCount.js.map +1 -1
  52. package/dist/api/app/bsky/notification/listActivitySubscriptions.js.map +1 -1
  53. package/dist/api/app/bsky/notification/listNotifications.js.map +1 -1
  54. package/dist/api/app/bsky/notification/putActivitySubscription.js.map +1 -1
  55. package/dist/api/app/bsky/notification/putPreferences.js.map +1 -1
  56. package/dist/api/app/bsky/notification/putPreferencesV2.js.map +1 -1
  57. package/dist/api/app/bsky/notification/registerPush.js.map +1 -1
  58. package/dist/api/app/bsky/notification/unregisterPush.js.map +1 -1
  59. package/dist/api/app/bsky/notification/updateSeen.js.map +1 -1
  60. package/dist/api/app/bsky/notification/util.js.map +1 -1
  61. package/dist/api/app/bsky/unspecced/getAgeAssuranceState.js.map +1 -1
  62. package/dist/api/app/bsky/unspecced/getConfig.js.map +1 -1
  63. package/dist/api/app/bsky/unspecced/getOnboardingSuggestedStarterPacks.js.map +1 -1
  64. package/dist/api/app/bsky/unspecced/getPopularFeedGenerators.js.map +1 -1
  65. package/dist/api/app/bsky/unspecced/getPostThreadOtherV2.js.map +1 -1
  66. package/dist/api/app/bsky/unspecced/getPostThreadV2.js.map +1 -1
  67. package/dist/api/app/bsky/unspecced/getSuggestedFeeds.js.map +1 -1
  68. package/dist/api/app/bsky/unspecced/getSuggestedStarterPacks.js.map +1 -1
  69. package/dist/api/app/bsky/unspecced/getSuggestedUsers.js.map +1 -1
  70. package/dist/api/app/bsky/unspecced/getTaggedSuggestions.js.map +1 -1
  71. package/dist/api/app/bsky/unspecced/getTrendingTopics.js.map +1 -1
  72. package/dist/api/app/bsky/unspecced/getTrends.js.map +1 -1
  73. package/dist/api/app/bsky/unspecced/initAgeAssurance.js.map +1 -1
  74. package/dist/api/blob-dispatcher.js.map +1 -1
  75. package/dist/api/blob-resolver.js.map +1 -1
  76. package/dist/api/com/atproto/admin/getAccountInfos.js.map +1 -1
  77. package/dist/api/com/atproto/admin/getSubjectStatus.js.map +1 -1
  78. package/dist/api/com/atproto/admin/updateSubjectStatus.js.map +1 -1
  79. package/dist/api/com/atproto/identity/resolveHandle.js.map +1 -1
  80. package/dist/api/com/atproto/label/queryLabels.js.map +1 -1
  81. package/dist/api/com/atproto/repo/getRecord.js.map +1 -1
  82. package/dist/api/com/atproto/temp/fetchLabels.js.map +1 -1
  83. package/dist/api/external.js.map +1 -1
  84. package/dist/api/health.js.map +1 -1
  85. package/dist/api/index.js.map +1 -1
  86. package/dist/api/kws/api.js.map +1 -1
  87. package/dist/api/kws/index.js.map +1 -1
  88. package/dist/api/kws/types.js.map +1 -1
  89. package/dist/api/kws/util.js.map +1 -1
  90. package/dist/api/kws/webhook.js.map +1 -1
  91. package/dist/api/util.js.map +1 -1
  92. package/dist/api/well-known.js.map +1 -1
  93. package/dist/auth-verifier.js.map +1 -1
  94. package/dist/bsync.js.map +1 -1
  95. package/dist/cache/read-through.js.map +1 -1
  96. package/dist/config.js.map +1 -1
  97. package/dist/context.js.map +1 -1
  98. package/dist/courier.js.map +1 -1
  99. package/dist/data-plane/bsync/index.js.map +1 -1
  100. package/dist/data-plane/client/hosts.js.map +1 -1
  101. package/dist/data-plane/client/index.js.map +1 -1
  102. package/dist/data-plane/client/util.js.map +1 -1
  103. package/dist/data-plane/index.js.map +1 -1
  104. package/dist/data-plane/server/background.js.map +1 -1
  105. package/dist/data-plane/server/db/database-schema.js.map +1 -1
  106. package/dist/data-plane/server/db/db.js.map +1 -1
  107. package/dist/data-plane/server/db/index.js.map +1 -1
  108. package/dist/data-plane/server/db/migrations/20230309T045948368Z-init.js.map +1 -1
  109. package/dist/data-plane/server/db/migrations/20230408T152211201Z-notification-init.js.map +1 -1
  110. package/dist/data-plane/server/db/migrations/20230417T210628672Z-moderation-init.js.map +1 -1
  111. package/dist/data-plane/server/db/migrations/20230420T211446071Z-did-cache.js.map +1 -1
  112. package/dist/data-plane/server/db/migrations/20230427T194702079Z-notif-record-index.js.map +1 -1
  113. package/dist/data-plane/server/db/migrations/20230605T144730094Z-post-profile-aggs.js.map +1 -1
  114. package/dist/data-plane/server/db/migrations/20230607T211442112Z-feed-generator-init.js.map +1 -1
  115. package/dist/data-plane/server/db/migrations/20230608T155101190Z-algo-whats-hot-view.js.map +1 -1
  116. package/dist/data-plane/server/db/migrations/20230608T201813132Z-mute-lists.js.map +1 -1
  117. package/dist/data-plane/server/db/migrations/20230608T205147239Z-mutes.js.map +1 -1
  118. package/dist/data-plane/server/db/migrations/20230609T153623961Z-blocks.js.map +1 -1
  119. package/dist/data-plane/server/db/migrations/20230609T232122649Z-actor-deletion-indexes.js.map +1 -1
  120. package/dist/data-plane/server/db/migrations/20230610T203555962Z-suggested-follows.js.map +1 -1
  121. package/dist/data-plane/server/db/migrations/20230611T215300060Z-actor-state.js.map +1 -1
  122. package/dist/data-plane/server/db/migrations/20230620T161134972Z-post-langs.js.map +1 -1
  123. package/dist/data-plane/server/db/migrations/20230627T212437895Z-optional-handle.js.map +1 -1
  124. package/dist/data-plane/server/db/migrations/20230629T220835893Z-remove-post-hierarchy.js.map +1 -1
  125. package/dist/data-plane/server/db/migrations/20230703T045536691Z-feed-and-label-indices.js.map +1 -1
  126. package/dist/data-plane/server/db/migrations/20230720T164800037Z-posts-cursor-idx.js.map +1 -1
  127. package/dist/data-plane/server/db/migrations/20230807T035309811Z-feed-item-delete-invite-for-user-idx.js.map +1 -1
  128. package/dist/data-plane/server/db/migrations/20230808T172902639Z-repo-rev.js.map +1 -1
  129. package/dist/data-plane/server/db/migrations/20230810T203349843Z-action-duration.js.map +1 -1
  130. package/dist/data-plane/server/db/migrations/20230817T195936007Z-native-notifications.js.map +1 -1
  131. package/dist/data-plane/server/db/migrations/20230830T205507322Z-suggested-feeds.js.map +1 -1
  132. package/dist/data-plane/server/db/migrations/20230904T211011773Z-block-lists.js.map +1 -1
  133. package/dist/data-plane/server/db/migrations/20230906T222220386Z-thread-gating.js.map +1 -1
  134. package/dist/data-plane/server/db/migrations/20230920T213858047Z-add-tags-to-post.js.map +1 -1
  135. package/dist/data-plane/server/db/migrations/20230929T192920807Z-record-cursor-indexes.js.map +1 -1
  136. package/dist/data-plane/server/db/migrations/20231003T202833377Z-create-moderation-subject-status.js.map +1 -1
  137. package/dist/data-plane/server/db/migrations/20231220T225126090Z-blob-takedowns.js.map +1 -1
  138. package/dist/data-plane/server/db/migrations/20240124T023719200Z-tagged-suggestions.js.map +1 -1
  139. package/dist/data-plane/server/db/migrations/20240226T225725627Z-labelers.js.map +1 -1
  140. package/dist/data-plane/server/db/migrations/20240530T170337073Z-account-deactivation.js.map +1 -1
  141. package/dist/data-plane/server/db/migrations/20240606T171229898Z-thread-mutes.js.map +1 -1
  142. package/dist/data-plane/server/db/migrations/20240606T222548219Z-starter-packs.js.map +1 -1
  143. package/dist/data-plane/server/db/migrations/20240719T203853939Z-priority-notifs.js.map +1 -1
  144. package/dist/data-plane/server/db/migrations/20240723T220700077Z-quotes-post-aggs.js.map +1 -1
  145. package/dist/data-plane/server/db/migrations/20240723T220703655Z-quotes.js.map +1 -1
  146. package/dist/data-plane/server/db/migrations/20240801T193939827Z-post-gate.js.map +1 -1
  147. package/dist/data-plane/server/db/migrations/20240808T224251220Z-post-gate-flags.js.map +1 -1
  148. package/dist/data-plane/server/db/migrations/20240829T211238293Z-simplify-actor-sync.js.map +1 -1
  149. package/dist/data-plane/server/db/migrations/20240831T134810923Z-pinned-posts.js.map +1 -1
  150. package/dist/data-plane/server/db/migrations/20241114T153108102Z-add-starter-packs-name.js.map +1 -1
  151. package/dist/data-plane/server/db/migrations/20250116T222618297Z-post-embed-video.js.map +1 -1
  152. package/dist/data-plane/server/db/migrations/20250207T174822012Z-add-label-exp.js.map +1 -1
  153. package/dist/data-plane/server/db/migrations/20250404T163421487Z-verifications.js.map +1 -1
  154. package/dist/data-plane/server/db/migrations/20250526T023712742Z-like-repost-via.js.map +1 -1
  155. package/dist/data-plane/server/db/migrations/20250528T221913281Z-add-record-tags.js.map +1 -1
  156. package/dist/data-plane/server/db/migrations/20250602T190357447Z-add-private-data.js.map +1 -1
  157. package/dist/data-plane/server/db/migrations/20250611T140649895Z-add-activity-subscription.js.map +1 -1
  158. package/dist/data-plane/server/db/migrations/20250627T025331240Z-add-actor-age-assurance-columns.js.map +1 -1
  159. package/dist/data-plane/server/db/migrations/20250812T183735692Z-add-bookmarks.js.map +1 -1
  160. package/dist/data-plane/server/db/migrations/20250813T174955711Z-add-post-agg-bookmarks.js.map +1 -1
  161. package/dist/data-plane/server/db/migrations/index.js.map +1 -1
  162. package/dist/data-plane/server/db/migrations/provider.js.map +1 -1
  163. package/dist/data-plane/server/db/pagination.js.map +1 -1
  164. package/dist/data-plane/server/db/tables/activity-subscription.js.map +1 -1
  165. package/dist/data-plane/server/db/tables/actor-block.js.map +1 -1
  166. package/dist/data-plane/server/db/tables/actor-state.js.map +1 -1
  167. package/dist/data-plane/server/db/tables/actor-sync.js.map +1 -1
  168. package/dist/data-plane/server/db/tables/actor.js.map +1 -1
  169. package/dist/data-plane/server/db/tables/algo.js.map +1 -1
  170. package/dist/data-plane/server/db/tables/blob-takedown.js.map +1 -1
  171. package/dist/data-plane/server/db/tables/bookmark.js.map +1 -1
  172. package/dist/data-plane/server/db/tables/did-cache.js.map +1 -1
  173. package/dist/data-plane/server/db/tables/duplicate-record.js.map +1 -1
  174. package/dist/data-plane/server/db/tables/feed-generator.js.map +1 -1
  175. package/dist/data-plane/server/db/tables/feed-item.js.map +1 -1
  176. package/dist/data-plane/server/db/tables/follow.js.map +1 -1
  177. package/dist/data-plane/server/db/tables/label.js.map +1 -1
  178. package/dist/data-plane/server/db/tables/labeler.js.map +1 -1
  179. package/dist/data-plane/server/db/tables/like.js.map +1 -1
  180. package/dist/data-plane/server/db/tables/list-block.js.map +1 -1
  181. package/dist/data-plane/server/db/tables/list-item.js.map +1 -1
  182. package/dist/data-plane/server/db/tables/list-mute.js.map +1 -1
  183. package/dist/data-plane/server/db/tables/list.js.map +1 -1
  184. package/dist/data-plane/server/db/tables/mute.js.map +1 -1
  185. package/dist/data-plane/server/db/tables/notification-push-token.js.map +1 -1
  186. package/dist/data-plane/server/db/tables/notification.js.map +1 -1
  187. package/dist/data-plane/server/db/tables/post-agg.js.map +1 -1
  188. package/dist/data-plane/server/db/tables/post-embed.js.map +1 -1
  189. package/dist/data-plane/server/db/tables/post-gate.js.map +1 -1
  190. package/dist/data-plane/server/db/tables/post.js.map +1 -1
  191. package/dist/data-plane/server/db/tables/private-data.js.map +1 -1
  192. package/dist/data-plane/server/db/tables/profile-agg.js.map +1 -1
  193. package/dist/data-plane/server/db/tables/profile.js.map +1 -1
  194. package/dist/data-plane/server/db/tables/quote.js.map +1 -1
  195. package/dist/data-plane/server/db/tables/record.js.map +1 -1
  196. package/dist/data-plane/server/db/tables/repost.js.map +1 -1
  197. package/dist/data-plane/server/db/tables/starter-pack.js.map +1 -1
  198. package/dist/data-plane/server/db/tables/subscription.js.map +1 -1
  199. package/dist/data-plane/server/db/tables/suggested-feed.js.map +1 -1
  200. package/dist/data-plane/server/db/tables/suggested-follow.js.map +1 -1
  201. package/dist/data-plane/server/db/tables/tagged-suggestion.js.map +1 -1
  202. package/dist/data-plane/server/db/tables/thread-gate.js.map +1 -1
  203. package/dist/data-plane/server/db/tables/thread-mute.js.map +1 -1
  204. package/dist/data-plane/server/db/tables/verification.js.map +1 -1
  205. package/dist/data-plane/server/db/tables/view-param.js.map +1 -1
  206. package/dist/data-plane/server/db/types.js.map +1 -1
  207. package/dist/data-plane/server/db/util.js.map +1 -1
  208. package/dist/data-plane/server/index.js.map +1 -1
  209. package/dist/data-plane/server/indexing/index.js.map +1 -1
  210. package/dist/data-plane/server/indexing/plugins/block.js.map +1 -1
  211. package/dist/data-plane/server/indexing/plugins/chat-declaration.js.map +1 -1
  212. package/dist/data-plane/server/indexing/plugins/feed-generator.js.map +1 -1
  213. package/dist/data-plane/server/indexing/plugins/follow.js.map +1 -1
  214. package/dist/data-plane/server/indexing/plugins/labeler.js.map +1 -1
  215. package/dist/data-plane/server/indexing/plugins/like.js.map +1 -1
  216. package/dist/data-plane/server/indexing/plugins/list-block.js.map +1 -1
  217. package/dist/data-plane/server/indexing/plugins/list-item.js.map +1 -1
  218. package/dist/data-plane/server/indexing/plugins/list.js.map +1 -1
  219. package/dist/data-plane/server/indexing/plugins/notif-declaration.js.map +1 -1
  220. package/dist/data-plane/server/indexing/plugins/post-gate.js.map +1 -1
  221. package/dist/data-plane/server/indexing/plugins/post.js.map +1 -1
  222. package/dist/data-plane/server/indexing/plugins/profile.js.map +1 -1
  223. package/dist/data-plane/server/indexing/plugins/repost.js.map +1 -1
  224. package/dist/data-plane/server/indexing/plugins/starter-pack.js.map +1 -1
  225. package/dist/data-plane/server/indexing/plugins/status.js.map +1 -1
  226. package/dist/data-plane/server/indexing/plugins/thread-gate.js.map +1 -1
  227. package/dist/data-plane/server/indexing/plugins/verification.js.map +1 -1
  228. package/dist/data-plane/server/indexing/processor.js.map +1 -1
  229. package/dist/data-plane/server/routes/activity-subscription.js.map +1 -1
  230. package/dist/data-plane/server/routes/blocks.js.map +1 -1
  231. package/dist/data-plane/server/routes/bookmarks.js.map +1 -1
  232. package/dist/data-plane/server/routes/feed-gens.js.map +1 -1
  233. package/dist/data-plane/server/routes/feeds.js.map +1 -1
  234. package/dist/data-plane/server/routes/follows.js.map +1 -1
  235. package/dist/data-plane/server/routes/identity.js.map +1 -1
  236. package/dist/data-plane/server/routes/index.js.map +1 -1
  237. package/dist/data-plane/server/routes/interactions.js.map +1 -1
  238. package/dist/data-plane/server/routes/labels.js.map +1 -1
  239. package/dist/data-plane/server/routes/likes.js.map +1 -1
  240. package/dist/data-plane/server/routes/lists.js.map +1 -1
  241. package/dist/data-plane/server/routes/moderation.js.map +1 -1
  242. package/dist/data-plane/server/routes/mutes.js.map +1 -1
  243. package/dist/data-plane/server/routes/notifs.js.map +1 -1
  244. package/dist/data-plane/server/routes/profile.js.map +1 -1
  245. package/dist/data-plane/server/routes/quotes.js.map +1 -1
  246. package/dist/data-plane/server/routes/records.js.map +1 -1
  247. package/dist/data-plane/server/routes/relationships.js.map +1 -1
  248. package/dist/data-plane/server/routes/reposts.js.map +1 -1
  249. package/dist/data-plane/server/routes/search.js.map +1 -1
  250. package/dist/data-plane/server/routes/starter-packs.js.map +1 -1
  251. package/dist/data-plane/server/routes/suggestions.js.map +1 -1
  252. package/dist/data-plane/server/routes/sync.js.map +1 -1
  253. package/dist/data-plane/server/routes/threads.js.map +1 -1
  254. package/dist/data-plane/server/subscription.js.map +1 -1
  255. package/dist/data-plane/server/util.js.map +1 -1
  256. package/dist/error.js.map +1 -1
  257. package/dist/etcd.js.map +1 -1
  258. package/dist/feature-gates.js.map +1 -1
  259. package/dist/hydration/actor.js.map +1 -1
  260. package/dist/hydration/feed.js.map +1 -1
  261. package/dist/hydration/graph.js.map +1 -1
  262. package/dist/hydration/hydrator.js.map +1 -1
  263. package/dist/hydration/label.js.map +1 -1
  264. package/dist/hydration/util.js.map +1 -1
  265. package/dist/image/index.js.map +1 -1
  266. package/dist/image/invalidator.js.map +1 -1
  267. package/dist/image/logger.js.map +1 -1
  268. package/dist/image/server.js.map +1 -1
  269. package/dist/image/sharp.js.map +1 -1
  270. package/dist/image/uri.js.map +1 -1
  271. package/dist/image/util.js.map +1 -1
  272. package/dist/index.js.map +1 -1
  273. package/dist/kws.js.map +1 -1
  274. package/dist/lexicon/index.js.map +1 -1
  275. package/dist/lexicon/lexicons.d.ts +4 -4
  276. package/dist/lexicon/lexicons.d.ts.map +1 -1
  277. package/dist/lexicon/lexicons.js +10 -15
  278. package/dist/lexicon/lexicons.js.map +1 -1
  279. package/dist/lexicon/types/app/bsky/actor/defs.js.map +1 -1
  280. package/dist/lexicon/types/app/bsky/actor/getPreferences.js.map +1 -1
  281. package/dist/lexicon/types/app/bsky/actor/getProfile.js.map +1 -1
  282. package/dist/lexicon/types/app/bsky/actor/getProfiles.js.map +1 -1
  283. package/dist/lexicon/types/app/bsky/actor/getSuggestions.js.map +1 -1
  284. package/dist/lexicon/types/app/bsky/actor/profile.js.map +1 -1
  285. package/dist/lexicon/types/app/bsky/actor/putPreferences.js.map +1 -1
  286. package/dist/lexicon/types/app/bsky/actor/searchActors.js.map +1 -1
  287. package/dist/lexicon/types/app/bsky/actor/searchActorsTypeahead.js.map +1 -1
  288. package/dist/lexicon/types/app/bsky/actor/status.js.map +1 -1
  289. package/dist/lexicon/types/app/bsky/bookmark/createBookmark.js.map +1 -1
  290. package/dist/lexicon/types/app/bsky/bookmark/defs.js.map +1 -1
  291. package/dist/lexicon/types/app/bsky/bookmark/deleteBookmark.js.map +1 -1
  292. package/dist/lexicon/types/app/bsky/bookmark/getBookmarks.js.map +1 -1
  293. package/dist/lexicon/types/app/bsky/embed/defs.js.map +1 -1
  294. package/dist/lexicon/types/app/bsky/embed/external.js.map +1 -1
  295. package/dist/lexicon/types/app/bsky/embed/images.js.map +1 -1
  296. package/dist/lexicon/types/app/bsky/embed/record.js.map +1 -1
  297. package/dist/lexicon/types/app/bsky/embed/recordWithMedia.js.map +1 -1
  298. package/dist/lexicon/types/app/bsky/embed/video.js.map +1 -1
  299. package/dist/lexicon/types/app/bsky/feed/defs.js.map +1 -1
  300. package/dist/lexicon/types/app/bsky/feed/describeFeedGenerator.js.map +1 -1
  301. package/dist/lexicon/types/app/bsky/feed/generator.js.map +1 -1
  302. package/dist/lexicon/types/app/bsky/feed/getActorFeeds.js.map +1 -1
  303. package/dist/lexicon/types/app/bsky/feed/getActorLikes.js.map +1 -1
  304. package/dist/lexicon/types/app/bsky/feed/getAuthorFeed.js.map +1 -1
  305. package/dist/lexicon/types/app/bsky/feed/getFeed.js.map +1 -1
  306. package/dist/lexicon/types/app/bsky/feed/getFeedGenerator.js.map +1 -1
  307. package/dist/lexicon/types/app/bsky/feed/getFeedGenerators.js.map +1 -1
  308. package/dist/lexicon/types/app/bsky/feed/getFeedSkeleton.js.map +1 -1
  309. package/dist/lexicon/types/app/bsky/feed/getLikes.js.map +1 -1
  310. package/dist/lexicon/types/app/bsky/feed/getListFeed.js.map +1 -1
  311. package/dist/lexicon/types/app/bsky/feed/getPostThread.js.map +1 -1
  312. package/dist/lexicon/types/app/bsky/feed/getPosts.js.map +1 -1
  313. package/dist/lexicon/types/app/bsky/feed/getQuotes.js.map +1 -1
  314. package/dist/lexicon/types/app/bsky/feed/getRepostedBy.js.map +1 -1
  315. package/dist/lexicon/types/app/bsky/feed/getSuggestedFeeds.js.map +1 -1
  316. package/dist/lexicon/types/app/bsky/feed/getTimeline.js.map +1 -1
  317. package/dist/lexicon/types/app/bsky/feed/like.js.map +1 -1
  318. package/dist/lexicon/types/app/bsky/feed/post.js.map +1 -1
  319. package/dist/lexicon/types/app/bsky/feed/postgate.js.map +1 -1
  320. package/dist/lexicon/types/app/bsky/feed/repost.js.map +1 -1
  321. package/dist/lexicon/types/app/bsky/feed/searchPosts.js.map +1 -1
  322. package/dist/lexicon/types/app/bsky/feed/sendInteractions.js.map +1 -1
  323. package/dist/lexicon/types/app/bsky/feed/threadgate.js.map +1 -1
  324. package/dist/lexicon/types/app/bsky/graph/block.js.map +1 -1
  325. package/dist/lexicon/types/app/bsky/graph/defs.js.map +1 -1
  326. package/dist/lexicon/types/app/bsky/graph/follow.js.map +1 -1
  327. package/dist/lexicon/types/app/bsky/graph/getActorStarterPacks.js.map +1 -1
  328. package/dist/lexicon/types/app/bsky/graph/getBlocks.js.map +1 -1
  329. package/dist/lexicon/types/app/bsky/graph/getFollowers.js.map +1 -1
  330. package/dist/lexicon/types/app/bsky/graph/getFollows.js.map +1 -1
  331. package/dist/lexicon/types/app/bsky/graph/getKnownFollowers.js.map +1 -1
  332. package/dist/lexicon/types/app/bsky/graph/getList.js.map +1 -1
  333. package/dist/lexicon/types/app/bsky/graph/getListBlocks.js.map +1 -1
  334. package/dist/lexicon/types/app/bsky/graph/getListMutes.js.map +1 -1
  335. package/dist/lexicon/types/app/bsky/graph/getLists.js.map +1 -1
  336. package/dist/lexicon/types/app/bsky/graph/getListsWithMembership.js.map +1 -1
  337. package/dist/lexicon/types/app/bsky/graph/getMutes.js.map +1 -1
  338. package/dist/lexicon/types/app/bsky/graph/getRelationships.js.map +1 -1
  339. package/dist/lexicon/types/app/bsky/graph/getStarterPack.js.map +1 -1
  340. package/dist/lexicon/types/app/bsky/graph/getStarterPacks.js.map +1 -1
  341. package/dist/lexicon/types/app/bsky/graph/getStarterPacksWithMembership.js.map +1 -1
  342. package/dist/lexicon/types/app/bsky/graph/getSuggestedFollowsByActor.js.map +1 -1
  343. package/dist/lexicon/types/app/bsky/graph/list.js.map +1 -1
  344. package/dist/lexicon/types/app/bsky/graph/listblock.js.map +1 -1
  345. package/dist/lexicon/types/app/bsky/graph/listitem.js.map +1 -1
  346. package/dist/lexicon/types/app/bsky/graph/muteActor.js.map +1 -1
  347. package/dist/lexicon/types/app/bsky/graph/muteActorList.js.map +1 -1
  348. package/dist/lexicon/types/app/bsky/graph/muteThread.js.map +1 -1
  349. package/dist/lexicon/types/app/bsky/graph/searchStarterPacks.js.map +1 -1
  350. package/dist/lexicon/types/app/bsky/graph/starterpack.js.map +1 -1
  351. package/dist/lexicon/types/app/bsky/graph/unmuteActor.js.map +1 -1
  352. package/dist/lexicon/types/app/bsky/graph/unmuteActorList.js.map +1 -1
  353. package/dist/lexicon/types/app/bsky/graph/unmuteThread.js.map +1 -1
  354. package/dist/lexicon/types/app/bsky/graph/verification.js.map +1 -1
  355. package/dist/lexicon/types/app/bsky/labeler/defs.js.map +1 -1
  356. package/dist/lexicon/types/app/bsky/labeler/getServices.js.map +1 -1
  357. package/dist/lexicon/types/app/bsky/labeler/service.js.map +1 -1
  358. package/dist/lexicon/types/app/bsky/notification/declaration.js.map +1 -1
  359. package/dist/lexicon/types/app/bsky/notification/defs.js.map +1 -1
  360. package/dist/lexicon/types/app/bsky/notification/getPreferences.js.map +1 -1
  361. package/dist/lexicon/types/app/bsky/notification/getUnreadCount.js.map +1 -1
  362. package/dist/lexicon/types/app/bsky/notification/listActivitySubscriptions.js.map +1 -1
  363. package/dist/lexicon/types/app/bsky/notification/listNotifications.js.map +1 -1
  364. package/dist/lexicon/types/app/bsky/notification/putActivitySubscription.js.map +1 -1
  365. package/dist/lexicon/types/app/bsky/notification/putPreferences.js.map +1 -1
  366. package/dist/lexicon/types/app/bsky/notification/putPreferencesV2.js.map +1 -1
  367. package/dist/lexicon/types/app/bsky/notification/registerPush.js.map +1 -1
  368. package/dist/lexicon/types/app/bsky/notification/unregisterPush.js.map +1 -1
  369. package/dist/lexicon/types/app/bsky/notification/updateSeen.js.map +1 -1
  370. package/dist/lexicon/types/app/bsky/richtext/facet.js.map +1 -1
  371. package/dist/lexicon/types/app/bsky/unspecced/defs.js.map +1 -1
  372. package/dist/lexicon/types/app/bsky/unspecced/getAgeAssuranceState.js.map +1 -1
  373. package/dist/lexicon/types/app/bsky/unspecced/getConfig.js.map +1 -1
  374. package/dist/lexicon/types/app/bsky/unspecced/getOnboardingSuggestedStarterPacks.js.map +1 -1
  375. package/dist/lexicon/types/app/bsky/unspecced/getOnboardingSuggestedStarterPacksSkeleton.js.map +1 -1
  376. package/dist/lexicon/types/app/bsky/unspecced/getPopularFeedGenerators.js.map +1 -1
  377. package/dist/lexicon/types/app/bsky/unspecced/getPostThreadOtherV2.js.map +1 -1
  378. package/dist/lexicon/types/app/bsky/unspecced/getPostThreadV2.js.map +1 -1
  379. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedFeeds.js.map +1 -1
  380. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedFeedsSkeleton.js.map +1 -1
  381. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedStarterPacks.js.map +1 -1
  382. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedStarterPacksSkeleton.js.map +1 -1
  383. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedUsers.js.map +1 -1
  384. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedUsersSkeleton.js.map +1 -1
  385. package/dist/lexicon/types/app/bsky/unspecced/getSuggestionsSkeleton.js.map +1 -1
  386. package/dist/lexicon/types/app/bsky/unspecced/getTaggedSuggestions.js.map +1 -1
  387. package/dist/lexicon/types/app/bsky/unspecced/getTrendingTopics.js.map +1 -1
  388. package/dist/lexicon/types/app/bsky/unspecced/getTrends.js.map +1 -1
  389. package/dist/lexicon/types/app/bsky/unspecced/getTrendsSkeleton.js.map +1 -1
  390. package/dist/lexicon/types/app/bsky/unspecced/initAgeAssurance.js.map +1 -1
  391. package/dist/lexicon/types/app/bsky/unspecced/searchActorsSkeleton.js.map +1 -1
  392. package/dist/lexicon/types/app/bsky/unspecced/searchPostsSkeleton.js.map +1 -1
  393. package/dist/lexicon/types/app/bsky/unspecced/searchStarterPacksSkeleton.js.map +1 -1
  394. package/dist/lexicon/types/app/bsky/video/defs.js.map +1 -1
  395. package/dist/lexicon/types/app/bsky/video/getJobStatus.js.map +1 -1
  396. package/dist/lexicon/types/app/bsky/video/getUploadLimits.js.map +1 -1
  397. package/dist/lexicon/types/app/bsky/video/uploadVideo.js.map +1 -1
  398. package/dist/lexicon/types/chat/bsky/actor/declaration.js.map +1 -1
  399. package/dist/lexicon/types/chat/bsky/actor/defs.js.map +1 -1
  400. package/dist/lexicon/types/chat/bsky/actor/deleteAccount.js.map +1 -1
  401. package/dist/lexicon/types/chat/bsky/actor/exportAccountData.js.map +1 -1
  402. package/dist/lexicon/types/chat/bsky/convo/acceptConvo.js.map +1 -1
  403. package/dist/lexicon/types/chat/bsky/convo/addReaction.js.map +1 -1
  404. package/dist/lexicon/types/chat/bsky/convo/defs.js.map +1 -1
  405. package/dist/lexicon/types/chat/bsky/convo/deleteMessageForSelf.js.map +1 -1
  406. package/dist/lexicon/types/chat/bsky/convo/getConvo.js.map +1 -1
  407. package/dist/lexicon/types/chat/bsky/convo/getConvoAvailability.js.map +1 -1
  408. package/dist/lexicon/types/chat/bsky/convo/getConvoForMembers.js.map +1 -1
  409. package/dist/lexicon/types/chat/bsky/convo/getLog.js.map +1 -1
  410. package/dist/lexicon/types/chat/bsky/convo/getMessages.js.map +1 -1
  411. package/dist/lexicon/types/chat/bsky/convo/leaveConvo.js.map +1 -1
  412. package/dist/lexicon/types/chat/bsky/convo/listConvos.js.map +1 -1
  413. package/dist/lexicon/types/chat/bsky/convo/muteConvo.js.map +1 -1
  414. package/dist/lexicon/types/chat/bsky/convo/removeReaction.js.map +1 -1
  415. package/dist/lexicon/types/chat/bsky/convo/sendMessage.js.map +1 -1
  416. package/dist/lexicon/types/chat/bsky/convo/sendMessageBatch.js.map +1 -1
  417. package/dist/lexicon/types/chat/bsky/convo/unmuteConvo.js.map +1 -1
  418. package/dist/lexicon/types/chat/bsky/convo/updateAllRead.js.map +1 -1
  419. package/dist/lexicon/types/chat/bsky/convo/updateRead.js.map +1 -1
  420. package/dist/lexicon/types/chat/bsky/moderation/getActorMetadata.js.map +1 -1
  421. package/dist/lexicon/types/chat/bsky/moderation/getMessageContext.js.map +1 -1
  422. package/dist/lexicon/types/chat/bsky/moderation/updateActorAccess.js.map +1 -1
  423. package/dist/lexicon/types/com/atproto/admin/defs.js.map +1 -1
  424. package/dist/lexicon/types/com/atproto/admin/deleteAccount.js.map +1 -1
  425. package/dist/lexicon/types/com/atproto/admin/disableAccountInvites.js.map +1 -1
  426. package/dist/lexicon/types/com/atproto/admin/disableInviteCodes.js.map +1 -1
  427. package/dist/lexicon/types/com/atproto/admin/enableAccountInvites.js.map +1 -1
  428. package/dist/lexicon/types/com/atproto/admin/getAccountInfo.js.map +1 -1
  429. package/dist/lexicon/types/com/atproto/admin/getAccountInfos.js.map +1 -1
  430. package/dist/lexicon/types/com/atproto/admin/getInviteCodes.js.map +1 -1
  431. package/dist/lexicon/types/com/atproto/admin/getSubjectStatus.js.map +1 -1
  432. package/dist/lexicon/types/com/atproto/admin/searchAccounts.js.map +1 -1
  433. package/dist/lexicon/types/com/atproto/admin/sendEmail.js.map +1 -1
  434. package/dist/lexicon/types/com/atproto/admin/updateAccountEmail.js.map +1 -1
  435. package/dist/lexicon/types/com/atproto/admin/updateAccountHandle.js.map +1 -1
  436. package/dist/lexicon/types/com/atproto/admin/updateAccountPassword.js.map +1 -1
  437. package/dist/lexicon/types/com/atproto/admin/updateAccountSigningKey.js.map +1 -1
  438. package/dist/lexicon/types/com/atproto/admin/updateSubjectStatus.js.map +1 -1
  439. package/dist/lexicon/types/com/atproto/identity/defs.js.map +1 -1
  440. package/dist/lexicon/types/com/atproto/identity/getRecommendedDidCredentials.js.map +1 -1
  441. package/dist/lexicon/types/com/atproto/identity/refreshIdentity.js.map +1 -1
  442. package/dist/lexicon/types/com/atproto/identity/requestPlcOperationSignature.js.map +1 -1
  443. package/dist/lexicon/types/com/atproto/identity/resolveDid.js.map +1 -1
  444. package/dist/lexicon/types/com/atproto/identity/resolveHandle.js.map +1 -1
  445. package/dist/lexicon/types/com/atproto/identity/resolveIdentity.js.map +1 -1
  446. package/dist/lexicon/types/com/atproto/identity/signPlcOperation.js.map +1 -1
  447. package/dist/lexicon/types/com/atproto/identity/submitPlcOperation.js.map +1 -1
  448. package/dist/lexicon/types/com/atproto/identity/updateHandle.js.map +1 -1
  449. package/dist/lexicon/types/com/atproto/label/defs.js.map +1 -1
  450. package/dist/lexicon/types/com/atproto/label/queryLabels.js.map +1 -1
  451. package/dist/lexicon/types/com/atproto/label/subscribeLabels.js.map +1 -1
  452. package/dist/lexicon/types/com/atproto/lexicon/schema.js.map +1 -1
  453. package/dist/lexicon/types/com/atproto/moderation/createReport.js.map +1 -1
  454. package/dist/lexicon/types/com/atproto/moderation/defs.d.ts +2 -2
  455. package/dist/lexicon/types/com/atproto/moderation/defs.d.ts.map +1 -1
  456. package/dist/lexicon/types/com/atproto/moderation/defs.js +1 -1
  457. package/dist/lexicon/types/com/atproto/moderation/defs.js.map +1 -1
  458. package/dist/lexicon/types/com/atproto/repo/applyWrites.js.map +1 -1
  459. package/dist/lexicon/types/com/atproto/repo/createRecord.js.map +1 -1
  460. package/dist/lexicon/types/com/atproto/repo/defs.js.map +1 -1
  461. package/dist/lexicon/types/com/atproto/repo/deleteRecord.js.map +1 -1
  462. package/dist/lexicon/types/com/atproto/repo/describeRepo.js.map +1 -1
  463. package/dist/lexicon/types/com/atproto/repo/getRecord.js.map +1 -1
  464. package/dist/lexicon/types/com/atproto/repo/importRepo.js.map +1 -1
  465. package/dist/lexicon/types/com/atproto/repo/listMissingBlobs.js.map +1 -1
  466. package/dist/lexicon/types/com/atproto/repo/listRecords.js.map +1 -1
  467. package/dist/lexicon/types/com/atproto/repo/putRecord.js.map +1 -1
  468. package/dist/lexicon/types/com/atproto/repo/strongRef.js.map +1 -1
  469. package/dist/lexicon/types/com/atproto/repo/uploadBlob.js.map +1 -1
  470. package/dist/lexicon/types/com/atproto/server/activateAccount.js.map +1 -1
  471. package/dist/lexicon/types/com/atproto/server/checkAccountStatus.js.map +1 -1
  472. package/dist/lexicon/types/com/atproto/server/confirmEmail.js.map +1 -1
  473. package/dist/lexicon/types/com/atproto/server/createAccount.js.map +1 -1
  474. package/dist/lexicon/types/com/atproto/server/createAppPassword.js.map +1 -1
  475. package/dist/lexicon/types/com/atproto/server/createInviteCode.js.map +1 -1
  476. package/dist/lexicon/types/com/atproto/server/createInviteCodes.js.map +1 -1
  477. package/dist/lexicon/types/com/atproto/server/createSession.js.map +1 -1
  478. package/dist/lexicon/types/com/atproto/server/deactivateAccount.js.map +1 -1
  479. package/dist/lexicon/types/com/atproto/server/defs.js.map +1 -1
  480. package/dist/lexicon/types/com/atproto/server/deleteAccount.js.map +1 -1
  481. package/dist/lexicon/types/com/atproto/server/deleteSession.js.map +1 -1
  482. package/dist/lexicon/types/com/atproto/server/describeServer.js.map +1 -1
  483. package/dist/lexicon/types/com/atproto/server/getAccountInviteCodes.js.map +1 -1
  484. package/dist/lexicon/types/com/atproto/server/getServiceAuth.js.map +1 -1
  485. package/dist/lexicon/types/com/atproto/server/getSession.js.map +1 -1
  486. package/dist/lexicon/types/com/atproto/server/listAppPasswords.js.map +1 -1
  487. package/dist/lexicon/types/com/atproto/server/refreshSession.js.map +1 -1
  488. package/dist/lexicon/types/com/atproto/server/requestAccountDelete.js.map +1 -1
  489. package/dist/lexicon/types/com/atproto/server/requestEmailConfirmation.js.map +1 -1
  490. package/dist/lexicon/types/com/atproto/server/requestEmailUpdate.js.map +1 -1
  491. package/dist/lexicon/types/com/atproto/server/requestPasswordReset.js.map +1 -1
  492. package/dist/lexicon/types/com/atproto/server/reserveSigningKey.js.map +1 -1
  493. package/dist/lexicon/types/com/atproto/server/resetPassword.js.map +1 -1
  494. package/dist/lexicon/types/com/atproto/server/revokeAppPassword.js.map +1 -1
  495. package/dist/lexicon/types/com/atproto/server/updateEmail.js.map +1 -1
  496. package/dist/lexicon/types/com/atproto/sync/defs.js.map +1 -1
  497. package/dist/lexicon/types/com/atproto/sync/getBlob.js.map +1 -1
  498. package/dist/lexicon/types/com/atproto/sync/getBlocks.js.map +1 -1
  499. package/dist/lexicon/types/com/atproto/sync/getCheckout.js.map +1 -1
  500. package/dist/lexicon/types/com/atproto/sync/getHead.js.map +1 -1
  501. package/dist/lexicon/types/com/atproto/sync/getHostStatus.js.map +1 -1
  502. package/dist/lexicon/types/com/atproto/sync/getLatestCommit.js.map +1 -1
  503. package/dist/lexicon/types/com/atproto/sync/getRecord.js.map +1 -1
  504. package/dist/lexicon/types/com/atproto/sync/getRepo.js.map +1 -1
  505. package/dist/lexicon/types/com/atproto/sync/getRepoStatus.js.map +1 -1
  506. package/dist/lexicon/types/com/atproto/sync/listBlobs.js.map +1 -1
  507. package/dist/lexicon/types/com/atproto/sync/listHosts.js.map +1 -1
  508. package/dist/lexicon/types/com/atproto/sync/listRepos.js.map +1 -1
  509. package/dist/lexicon/types/com/atproto/sync/listReposByCollection.js.map +1 -1
  510. package/dist/lexicon/types/com/atproto/sync/notifyOfUpdate.js.map +1 -1
  511. package/dist/lexicon/types/com/atproto/sync/requestCrawl.js.map +1 -1
  512. package/dist/lexicon/types/com/atproto/sync/subscribeRepos.js.map +1 -1
  513. package/dist/lexicon/types/com/atproto/temp/addReservedHandle.js.map +1 -1
  514. package/dist/lexicon/types/com/atproto/temp/checkHandleAvailability.js.map +1 -1
  515. package/dist/lexicon/types/com/atproto/temp/checkSignupQueue.js.map +1 -1
  516. package/dist/lexicon/types/com/atproto/temp/dereferenceScope.js.map +1 -1
  517. package/dist/lexicon/types/com/atproto/temp/fetchLabels.js.map +1 -1
  518. package/dist/lexicon/types/com/atproto/temp/requestPhoneVerification.js.map +1 -1
  519. package/dist/lexicon/types/com/atproto/temp/revokeAccountCredentials.js.map +1 -1
  520. package/dist/lexicon/util.js.map +1 -1
  521. package/dist/logger.js.map +1 -1
  522. package/dist/pipeline.js.map +1 -1
  523. package/dist/proto/bsky_connect.d.ts +2 -2
  524. package/dist/proto/bsky_connect.d.ts.map +1 -1
  525. package/dist/proto/bsky_connect.js +106 -106
  526. package/dist/proto/bsky_connect.js.map +1 -1
  527. package/dist/proto/bsky_pb.d.ts +2 -2
  528. package/dist/proto/bsky_pb.d.ts.map +1 -1
  529. package/dist/proto/bsky_pb.js +983 -1937
  530. package/dist/proto/bsky_pb.js.map +1 -1
  531. package/dist/proto/bsync_connect.d.ts +2 -2
  532. package/dist/proto/bsync_connect.d.ts.map +1 -1
  533. package/dist/proto/bsync_connect.js +9 -9
  534. package/dist/proto/bsync_connect.js.map +1 -1
  535. package/dist/proto/bsync_pb.d.ts +2 -2
  536. package/dist/proto/bsync_pb.d.ts.map +1 -1
  537. package/dist/proto/bsync_pb.js +86 -126
  538. package/dist/proto/bsync_pb.js.map +1 -1
  539. package/dist/proto/courier_connect.d.ts +2 -2
  540. package/dist/proto/courier_connect.d.ts.map +1 -1
  541. package/dist/proto/courier_connect.js +7 -7
  542. package/dist/proto/courier_connect.js.map +1 -1
  543. package/dist/proto/courier_pb.d.ts +2 -2
  544. package/dist/proto/courier_pb.d.ts.map +1 -1
  545. package/dist/proto/courier_pb.js +49 -95
  546. package/dist/proto/courier_pb.js.map +1 -1
  547. package/dist/redis.js.map +1 -1
  548. package/dist/stash.js.map +1 -1
  549. package/dist/util/debug.js.map +1 -1
  550. package/dist/util/http.js.map +1 -1
  551. package/dist/util/retry.js.map +1 -1
  552. package/dist/util/uris.js.map +1 -1
  553. package/dist/util.js.map +1 -1
  554. package/dist/views/index.js.map +1 -1
  555. package/dist/views/threads-v2.js.map +1 -1
  556. package/dist/views/types.js.map +1 -1
  557. package/dist/views/util.js.map +1 -1
  558. package/package.json +7 -7
  559. package/src/lexicon/lexicons.ts +10 -15
  560. package/src/lexicon/types/com/atproto/moderation/defs.ts +10 -15
  561. package/src/proto/bsky_connect.ts +110 -318
  562. package/src/proto/bsky_pb.ts +4352 -9495
  563. package/src/proto/bsync_connect.ts +13 -27
  564. package/src/proto/bsync_pb.ts +391 -693
  565. package/src/proto/courier_connect.ts +11 -21
  566. package/src/proto/courier_pb.ts +244 -476
@@ -1 +1 @@
1
- {"version":3,"file":"blob-resolver.js","sourceRoot":"","sources":["../../src/api/blob-resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"blob-resolver.js","sourceRoot":"","sources":["../../src/api/blob-resolver.ts"],"names":[],"mappings":"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","sourcesContent":["import { Duplex, Transform, Writable } from 'node:stream'\nimport { pipeline } from 'node:stream/promises'\nimport createError, { isHttpError } from 'http-errors'\nimport { CID } from 'multiformats/cid'\nimport { Dispatcher } from 'undici'\nimport {\n VerifyCidError,\n VerifyCidTransform,\n createDecoders,\n} from '@atproto/common'\nimport { AtprotoDid, isAtprotoDid } from '@atproto/did'\nimport {\n ACCEPT_ENCODING_COMPRESSED,\n ACCEPT_ENCODING_UNCOMPRESSED,\n buildProxiedContentEncoding,\n formatAcceptHeader,\n} from '@atproto-labs/xrpc-utils'\nimport { ServerConfig } from '../config'\nimport { AppContext } from '../context'\nimport {\n Code,\n DataPlaneClient,\n getServiceEndpoint,\n isDataplaneError,\n unpackIdentityServices,\n} from '../data-plane'\nimport { parseCid } from '../hydration/util'\nimport { httpLogger as log } from '../logger'\nimport { Middleware, proxyResponseHeaders, responseSignal } from '../util/http'\nimport { BSKY_USER_AGENT } from './util'\n\nexport function createMiddleware(ctx: AppContext): Middleware {\n return async (req, res, next) => {\n if (req.method !== 'GET' && req.method !== 'HEAD') return next()\n if (!req.url?.startsWith('/blob/')) return next()\n const { length, 2: didParam, 3: cidParam } = req.url.split('/')\n if (length !== 4 || !didParam || !cidParam) return next()\n\n // @TODO Check sec-fetch-* headers (e.g. to prevent files from being\n // displayed as a web page) ?\n\n try {\n const streamOptions: StreamBlobOptions = {\n did: didParam,\n cid: cidParam,\n signal: responseSignal(res),\n // Because we will be verifying the CID, we need to ensure that the\n // upstream response can be de-compressed. We do this by negotiating the\n // \"accept-encoding\" header based on the downstream client's capabilities.\n acceptEncoding: buildProxiedContentEncoding(\n req.headers['accept-encoding'],\n ctx.cfg.proxyPreferCompressed,\n ),\n }\n\n await streamBlob(ctx, streamOptions, (upstream, { cid, did, url }) => {\n const encoding = upstream.headers['content-encoding']\n const verifier = createCidVerifier(cid, encoding)\n\n const logError = (err: unknown) => {\n log.warn(\n { err, did, cid: cid.toString(), pds: url.origin },\n 'blob resolution failed during transmission',\n )\n }\n\n const onError = (err: unknown) => {\n // No need to pipe the data (verifier) into the response, as it is\n // \"errored\". The response processing will continue in the \"catch\"\n // block below (because streamBlob() will reject the promise in case\n // of \"error\" event on the writable stream returned by the factory).\n clearTimeout(graceTimer)\n logError(err)\n }\n\n // Catch any error that occurs before the timer bellow is triggered.\n // The promise returned by streamBlob() will be rejected as soon as\n // the verifier errors.\n verifier.on('error', onError)\n\n // The way I/O work, it is likely that, in case of small payloads, the\n // full upstream response is already buffered at this point. In order to\n // return a 404 instead of a broken response stream, we allow the event\n // loop to to process any pending I/O events before we start piping the\n // bytes to the response. For larger payloads, the response will look\n // like a 200 with a broken chunked response stream. The only way around\n // that would be to buffer the entire response before piping it to the\n // response, which will hurt latency (need the full payload) and memory\n // usage (either RAM or DISK). Since this is more of an edge case, we\n // allow the broken response stream to be sent.\n const graceTimer = setTimeout(() => {\n verifier.off('error', onError)\n\n // Make sure that the content served from the bsky api domain cannot\n // be used to perform XSS attacks (by serving HTML pages)\n res.setHeader(\n 'Content-Security-Policy',\n `default-src 'none'; sandbox`,\n )\n res.setHeader('X-Content-Type-Options', 'nosniff')\n res.setHeader('X-Frame-Options', 'DENY')\n res.setHeader('X-XSS-Protection', '0')\n\n // @TODO Add a cache-control header ?\n // @TODO Add content-disposition header (to force download) ?\n\n proxyResponseHeaders(upstream, res)\n\n // Force chunked encoding. This is required because the verifier will\n // trigger an error *after* the last chunk has been passed through.\n // Because the number of bytes sent will match the content-length, the\n // HTTP response will be considered \"complete\" by the HTTP server. At\n // this point, only trailers headers could indicate that an error\n // occurred, but that is not the behavior we expect.\n res.removeHeader('content-length')\n\n // From this point on, triggering the next middleware (including any\n // error handler) can be problematic because content-type,\n // content-encoding, etc. headers have already been set. Because of\n // this, we make sure that res.headersSent is set to true, preventing\n // another error handler middleware from being called (from the catch\n // block bellow). Not flushing the headers here would require to\n // revert the headers set from this middleware (which we don't do for\n // now).\n res.flushHeaders()\n\n // Pipe the verifier output into the HTTP response\n void pipeline([verifier, res]).catch(logError)\n }, 10) // 0 works too. Allow for additional data to come in for 10ms.\n\n // Write the upstream response into the verifier.\n return verifier\n })\n } catch (err) {\n if (res.headersSent || res.destroyed) {\n res.destroy()\n } else if (err instanceof VerifyCidError) {\n // @NOTE This only works because of the graceTimer above. It will also\n // only be triggered for small payloads.\n next(createError(404, err.message))\n } else if (isHttpError(err)) {\n next(err)\n } else {\n next(createError(502, 'Upstream Error', { cause: err }))\n }\n }\n }\n}\n\nexport type StreamBlobOptions = {\n cid: string\n did: string\n acceptEncoding?: string\n signal?: AbortSignal\n}\n\nexport type StreamBlobFactory = (\n data: Dispatcher.StreamFactoryData,\n info: {\n url: URL\n did: AtprotoDid\n cid: CID\n },\n) => Writable\n\nexport async function streamBlob(\n ctx: AppContext,\n options: StreamBlobOptions,\n factory: StreamBlobFactory,\n) {\n const { did, cid } = parseBlobParams(options)\n const url = await getBlobUrl(ctx.dataplane, did, cid)\n\n const headers = getBlobHeaders(ctx.cfg, url)\n\n headers.set(\n 'accept-encoding',\n options.acceptEncoding ||\n formatAcceptHeader(\n ctx.cfg.proxyPreferCompressed\n ? ACCEPT_ENCODING_COMPRESSED\n : ACCEPT_ENCODING_UNCOMPRESSED,\n ),\n )\n\n let headersReceived = false\n\n return ctx.blobDispatcher\n .stream(\n {\n method: 'GET',\n origin: url.origin,\n path: url.pathname + url.search,\n headers,\n signal: options.signal,\n maxRedirections: 10,\n },\n (upstream) => {\n headersReceived = true\n\n if (upstream.statusCode !== 200) {\n log.warn(\n {\n did,\n cid: cid.toString(),\n pds: url.origin,\n status: upstream.statusCode,\n },\n `blob resolution failed upstream`,\n )\n\n throw upstream.statusCode >= 400 && upstream.statusCode < 500\n ? createError(404, 'Blob not found', { cause: upstream }) // 4xx => 404\n : createError(502, 'Upstream Error', { cause: upstream }) // !200 && !4xx => 502\n }\n\n return factory(upstream, { url, did, cid })\n },\n )\n .catch((err) => {\n // Is this a connection error, or a stream error ?\n if (!headersReceived) {\n // connection error, dns error, headers timeout, ...\n log.warn(\n { err, did, cid: cid.toString(), pds: url.origin },\n 'blob resolution failed during connection',\n )\n\n throw createError(502, 'Upstream Error', { cause: err })\n }\n\n throw err\n })\n}\n\nfunction parseBlobParams(params: { cid: string; did: string }) {\n const { cid, did } = params\n if (!isAtprotoDid(did)) throw createError(400, 'Invalid did')\n const cidObj = parseCid(cid)\n if (!cidObj) throw createError(400, 'Invalid cid')\n return { cid: cidObj, did }\n}\n\nasync function getBlobUrl(\n dataplane: DataPlaneClient,\n did: string,\n cid: CID,\n): Promise<URL> {\n const pds = await getBlobPds(dataplane, did, cid)\n\n const url = new URL(`/xrpc/com.atproto.sync.getBlob`, pds)\n url.searchParams.set('did', did)\n url.searchParams.set('cid', cid.toString())\n\n return url\n}\n\nasync function getBlobPds(\n dataplane: DataPlaneClient,\n did: string,\n cid: CID,\n): Promise<string> {\n const [identity, { takenDown }] = await Promise.all([\n dataplane.getIdentityByDid({ did }).catch((err) => {\n if (isDataplaneError(err, Code.NotFound)) {\n return undefined\n }\n throw err\n }),\n dataplane.getBlobTakedown({ did, cid: cid.toString() }),\n ])\n\n if (takenDown) {\n throw createError(404, 'Blob not found')\n }\n\n const services = identity && unpackIdentityServices(identity.services)\n const pds =\n services &&\n getServiceEndpoint(services, {\n id: 'atproto_pds',\n type: 'AtprotoPersonalDataServer',\n })\n\n if (!pds) {\n throw createError(404, 'Origin not found')\n }\n\n return pds\n}\n\nfunction getBlobHeaders(\n {\n blobRateLimitBypassKey: bypassKey,\n blobRateLimitBypassHostname: bypassHostname,\n }: ServerConfig,\n url: URL,\n): Map<string, string> {\n const headers = new Map<string, string>()\n\n headers.set('user-agent', BSKY_USER_AGENT)\n\n if (bypassKey && bypassHostname) {\n const matchesUrl = bypassHostname.startsWith('.')\n ? url.hostname.endsWith(bypassHostname)\n : url.hostname === bypassHostname\n\n if (matchesUrl) {\n headers.set('x-ratelimit-bypass', bypassKey)\n }\n }\n\n return headers\n}\n\n/**\n * This function creates a passthrough stream that will decompress (if needed)\n * and verify the CID of the input stream. The output data will be identical to\n * the input data.\n *\n * If you need the un-compressed data, you should use a decompress + verify\n * pipeline instead.\n */\nfunction createCidVerifier(cid: CID, encoding?: string | string[]): Duplex {\n // If the upstream content is compressed, we do not want to return a\n // de-compressed stream here. Indeed, the \"compression\" middleware will\n // compress the response before it is sent downstream, if it is not already\n // compressed. Because of this, it is preferable to return the content as-is\n // to avoid re-compressing it.\n //\n // We do still want to be able to verify the CID, which requires decompressing\n // the input bytes.\n //\n // To that end, we create a passthrough in order to \"tee\" the stream into two\n // streams: one that will be sent, unaltered, downstream, and a pipeline that\n // will be used to decompress & verify the CID (discarding de-compressed\n // data).\n\n const decoders = createDecoders(encoding)\n const verifier = new VerifyCidTransform(cid)\n\n // Optimization: If the content is not compressed, we don't need to \"tee\" the\n // stream, we can use the verifier as simple passthrough.\n if (!decoders.length) return verifier\n\n const pipelineController = new AbortController()\n const pipelineStreams: Duplex[] = [...decoders, verifier]\n const pipelineInput = pipelineStreams[0]!\n\n // Create a promise that will resolve if, and only if, the decoding and\n // verification succeed.\n const pipelinePromise: Promise<null | Error> = pipeline(pipelineStreams, {\n signal: pipelineController.signal,\n }).then(\n () => null,\n (err) => {\n const error = asError(err)\n\n // the data being processed by the pipeline is invalid (e.g. invalid\n // compressed content, non-matching the CID, ...). If that occurs, we can\n // destroy the passthrough (this allows not to wait for the \"flush\" event\n // to propagate the error).\n passthrough.destroy(error)\n\n return error\n },\n )\n\n // We don't care about the un-compressed data, we only use the verifier to\n // detect any error through the pipelinePromise. We still need to pass the\n // verifier into flowing mode to ensure that the pipelinePromise resolves.\n verifier.resume()\n\n const passthrough = new Transform({\n transform(chunk, encoding, callback) {\n pipelineInput.write(chunk, encoding)\n callback(null, chunk)\n },\n flush(callback) {\n // End the input stream, which will resolve the pipeline promise\n pipelineInput.end()\n // End the pass-through stream according to the result of the pipeline\n pipelinePromise.then(callback)\n },\n destroy(err, callback) {\n pipelineController.abort() // Causes pipeline() to destroy all streams\n callback(err)\n },\n })\n\n return passthrough\n}\n\nfunction asError(err: unknown): Error {\n return err instanceof Error\n ? err\n : new Error('Processing failed', { cause: err })\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"getAccountInfos.js","sourceRoot":"","sources":["../../../../../src/api/com/atproto/admin/getAccountInfos.ts"],"names":[],"mappings":";;AAKA,4BAqCC;AA1CD,4CAA4C;AAC5C,4CAAgD;AAIhD,mBAAyB,MAAc,EAAE,GAAe;IACtD,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC;QACvC,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC,sBAAsB;QAC7C,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;YAClC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAA;YACvB,MAAM,EAAE,gBAAgB,EAAE,GAAG,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;YAE9D,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE;gBACtD,gBAAgB,EAAE,IAAI;gBACtB,gBAAgB,EAAE,IAAI;aACvB,CAAC,CAAA;YAEF,MAAM,KAAK,GAAG,IAAA,mBAAU,EAAC,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;gBACrC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;gBAC5B,IAAI,CAAC,IAAI;oBAAE,OAAM;gBACjB,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,gBAAgB;oBAAE,OAAM;gBACjD,MAAM,aAAa,GACjB,CAAC,IAAI,CAAC,kBAAkB,IAAI,gBAAgB;oBAC1C,CAAC,CAAC,IAAI,CAAC,OAAO;oBACd,CAAC,CAAC,SAAS,CAAA;gBAEf,OAAO;oBACL,GAAG;oBACH,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,uBAAc;oBACrC,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS;oBAC3D,SAAS,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;iBACxD,CAAA;YACH,CAAC,CAAC,CAAA;YAEF,OAAO;gBACL,QAAQ,EAAE,kBAAkB;gBAC5B,IAAI,EAAE;oBACJ,KAAK;iBACN;aACF,CAAA;QACH,CAAC;KACF,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"getAccountInfos.js","sourceRoot":"","sources":["../../../../../src/api/com/atproto/admin/getAccountInfos.ts"],"names":[],"mappings":";;AAKA,4BAqCC;AA1CD,4CAA4C;AAC5C,4CAAgD;AAIhD,mBAAyB,MAAc,EAAE,GAAe;IACtD,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC;QACvC,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC,sBAAsB;QAC7C,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;YAClC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAA;YACvB,MAAM,EAAE,gBAAgB,EAAE,GAAG,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;YAE9D,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE;gBACtD,gBAAgB,EAAE,IAAI;gBACtB,gBAAgB,EAAE,IAAI;aACvB,CAAC,CAAA;YAEF,MAAM,KAAK,GAAG,IAAA,mBAAU,EAAC,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;gBACrC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;gBAC5B,IAAI,CAAC,IAAI;oBAAE,OAAM;gBACjB,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,gBAAgB;oBAAE,OAAM;gBACjD,MAAM,aAAa,GACjB,CAAC,IAAI,CAAC,kBAAkB,IAAI,gBAAgB;oBAC1C,CAAC,CAAC,IAAI,CAAC,OAAO;oBACd,CAAC,CAAC,SAAS,CAAA;gBAEf,OAAO;oBACL,GAAG;oBACH,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,uBAAc;oBACrC,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS;oBAC3D,SAAS,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;iBACxD,CAAA;YACH,CAAC,CAAC,CAAA;YAEF,OAAO;gBACL,QAAQ,EAAE,kBAAkB;gBAC5B,IAAI,EAAE;oBACJ,KAAK;iBACN;aACF,CAAA;QACH,CAAC;KACF,CAAC,CAAA;AACJ,CAAC","sourcesContent":["import { mapDefined } from '@atproto/common'\nimport { INVALID_HANDLE } from '@atproto/syntax'\nimport { AppContext } from '../../../../context'\nimport { Server } from '../../../../lexicon'\n\nexport default function (server: Server, ctx: AppContext) {\n server.com.atproto.admin.getAccountInfos({\n auth: ctx.authVerifier.optionalStandardOrRole,\n handler: async ({ params, auth }) => {\n const { dids } = params\n const { includeTakedowns } = ctx.authVerifier.parseCreds(auth)\n\n const actors = await ctx.hydrator.actor.getActors(dids, {\n includeTakedowns: true,\n skipCacheForDids: dids,\n })\n\n const infos = mapDefined(dids, (did) => {\n const info = actors.get(did)\n if (!info) return\n if (info.takedownRef && !includeTakedowns) return\n const profileRecord =\n !info.profileTakedownRef || includeTakedowns\n ? info.profile\n : undefined\n\n return {\n did,\n handle: info.handle ?? INVALID_HANDLE,\n relatedRecords: profileRecord ? [profileRecord] : undefined,\n indexedAt: (info.sortedAt ?? new Date(0)).toISOString(),\n }\n })\n\n return {\n encoding: 'application/json',\n body: {\n infos,\n },\n }\n },\n })\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"getSubjectStatus.js","sourceRoot":"","sources":["../../../../../src/api/com/atproto/admin/getSubjectStatus.ts"],"names":[],"mappings":";;AAKA,4BA0EC;AA/ED,sDAA0D;AAK1D,mBAAyB,MAAc,EAAE,GAAe;IACtD,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC;QACxC,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC,gBAAgB;QACvC,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;YAC5B,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,MAAM,CAAA;YAEjC,IAAI,IAAI,GAAwB,IAAI,CAAA;YACpC,IAAI,IAAI,EAAE,CAAC;gBACT,IAAI,CAAC,GAAG,EAAE,CAAC;oBACT,MAAM,IAAI,iCAAmB,CAC3B,0CAA0C,CAC3C,CAAA;gBACH,CAAC;gBACD,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,SAAS,CAAC,eAAe,CAAC;oBAC9C,GAAG;oBACH,GAAG,EAAE,IAAI;iBACV,CAAC,CAAA;gBACF,IAAI,GAAG;oBACL,OAAO,EAAE;wBACP,KAAK,EAAE,oCAAoC;wBAC3C,GAAG,EAAE,GAAG;wBACR,GAAG,EAAE,IAAI;qBACV;oBACD,QAAQ,EAAE;wBACR,OAAO,EAAE,GAAG,CAAC,SAAS;wBACtB,GAAG,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;qBAC9C;iBACF,CAAA;YACH,CAAC;iBAAM,IAAI,GAAG,EAAE,CAAC;gBACf,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;gBACnD,IAAI,GAAG,EAAE,CAAC;oBACR,IAAI,GAAG;wBACL,OAAO,EAAE;4BACP,KAAK,EAAE,4BAA4B;4BACnC,GAAG;4BACH,GAAG,EAAE,GAAG,CAAC,GAAG;yBACb;wBACD,QAAQ,EAAE;4BACR,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW;4BAC1B,GAAG,EAAE,GAAG,CAAC,WAAW,IAAI,SAAS;yBAClC;qBACF,CAAA;gBACH,CAAC;YACH,CAAC;iBAAM,IAAI,GAAG,EAAE,CAAC;gBACf,MAAM,GAAG,GAAG,CACV,MAAM,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,EAAE;oBACxC,gBAAgB,EAAE,IAAI;oBACtB,gBAAgB,EAAE,CAAC,GAAG,CAAC;iBACxB,CAAC,CACH,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;gBACV,IAAI,GAAG,EAAE,CAAC;oBACR,IAAI,GAAG;wBACL,OAAO,EAAE;4BACP,KAAK,EAAE,gCAAgC;4BACvC,GAAG,EAAE,GAAG;yBACT;wBACD,QAAQ,EAAE;4BACR,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW;4BAC1B,GAAG,EAAE,GAAG,CAAC,WAAW,IAAI,SAAS;yBAClC;qBACF,CAAA;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,iCAAmB,CAAC,qBAAqB,CAAC,CAAA;YACtD,CAAC;YACD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAClB,MAAM,IAAI,iCAAmB,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAA;YAChE,CAAC;YACD,OAAO;gBACL,QAAQ,EAAE,kBAAkB;gBAC5B,IAAI;aACL,CAAA;QACH,CAAC;KACF,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"getSubjectStatus.js","sourceRoot":"","sources":["../../../../../src/api/com/atproto/admin/getSubjectStatus.ts"],"names":[],"mappings":";;AAKA,4BA0EC;AA/ED,sDAA0D;AAK1D,mBAAyB,MAAc,EAAE,GAAe;IACtD,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC;QACxC,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC,gBAAgB;QACvC,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;YAC5B,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,MAAM,CAAA;YAEjC,IAAI,IAAI,GAAwB,IAAI,CAAA;YACpC,IAAI,IAAI,EAAE,CAAC;gBACT,IAAI,CAAC,GAAG,EAAE,CAAC;oBACT,MAAM,IAAI,iCAAmB,CAC3B,0CAA0C,CAC3C,CAAA;gBACH,CAAC;gBACD,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,SAAS,CAAC,eAAe,CAAC;oBAC9C,GAAG;oBACH,GAAG,EAAE,IAAI;iBACV,CAAC,CAAA;gBACF,IAAI,GAAG;oBACL,OAAO,EAAE;wBACP,KAAK,EAAE,oCAAoC;wBAC3C,GAAG,EAAE,GAAG;wBACR,GAAG,EAAE,IAAI;qBACV;oBACD,QAAQ,EAAE;wBACR,OAAO,EAAE,GAAG,CAAC,SAAS;wBACtB,GAAG,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;qBAC9C;iBACF,CAAA;YACH,CAAC;iBAAM,IAAI,GAAG,EAAE,CAAC;gBACf,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;gBACnD,IAAI,GAAG,EAAE,CAAC;oBACR,IAAI,GAAG;wBACL,OAAO,EAAE;4BACP,KAAK,EAAE,4BAA4B;4BACnC,GAAG;4BACH,GAAG,EAAE,GAAG,CAAC,GAAG;yBACb;wBACD,QAAQ,EAAE;4BACR,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW;4BAC1B,GAAG,EAAE,GAAG,CAAC,WAAW,IAAI,SAAS;yBAClC;qBACF,CAAA;gBACH,CAAC;YACH,CAAC;iBAAM,IAAI,GAAG,EAAE,CAAC;gBACf,MAAM,GAAG,GAAG,CACV,MAAM,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,EAAE;oBACxC,gBAAgB,EAAE,IAAI;oBACtB,gBAAgB,EAAE,CAAC,GAAG,CAAC;iBACxB,CAAC,CACH,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;gBACV,IAAI,GAAG,EAAE,CAAC;oBACR,IAAI,GAAG;wBACL,OAAO,EAAE;4BACP,KAAK,EAAE,gCAAgC;4BACvC,GAAG,EAAE,GAAG;yBACT;wBACD,QAAQ,EAAE;4BACR,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW;4BAC1B,GAAG,EAAE,GAAG,CAAC,WAAW,IAAI,SAAS;yBAClC;qBACF,CAAA;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,iCAAmB,CAAC,qBAAqB,CAAC,CAAA;YACtD,CAAC;YACD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAClB,MAAM,IAAI,iCAAmB,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAA;YAChE,CAAC;YACD,OAAO;gBACL,QAAQ,EAAE,kBAAkB;gBAC5B,IAAI;aACL,CAAA;QACH,CAAC;KACF,CAAC,CAAA;AACJ,CAAC","sourcesContent":["import { InvalidRequestError } from '@atproto/xrpc-server'\nimport { AppContext } from '../../../../context'\nimport { Server } from '../../../../lexicon'\nimport { OutputSchema } from '../../../../lexicon/types/com/atproto/admin/getSubjectStatus'\n\nexport default function (server: Server, ctx: AppContext) {\n server.com.atproto.admin.getSubjectStatus({\n auth: ctx.authVerifier.roleOrModService,\n handler: async ({ params }) => {\n const { did, uri, blob } = params\n\n let body: OutputSchema | null = null\n if (blob) {\n if (!did) {\n throw new InvalidRequestError(\n 'Must provide a did to request blob state',\n )\n }\n const res = await ctx.dataplane.getBlobTakedown({\n did,\n cid: blob,\n })\n body = {\n subject: {\n $type: 'com.atproto.admin.defs#repoBlobRef',\n did: did,\n cid: blob,\n },\n takedown: {\n applied: res.takenDown,\n ref: res.takedownRef ? 'TAKEDOWN' : undefined,\n },\n }\n } else if (uri) {\n const res = await ctx.hydrator.getRecord(uri, true)\n if (res) {\n body = {\n subject: {\n $type: 'com.atproto.repo.strongRef',\n uri,\n cid: res.cid,\n },\n takedown: {\n applied: !!res.takedownRef,\n ref: res.takedownRef || undefined,\n },\n }\n }\n } else if (did) {\n const res = (\n await ctx.hydrator.actor.getActors([did], {\n includeTakedowns: true,\n skipCacheForDids: [did],\n })\n ).get(did)\n if (res) {\n body = {\n subject: {\n $type: 'com.atproto.admin.defs#repoRef',\n did: did,\n },\n takedown: {\n applied: !!res.takedownRef,\n ref: res.takedownRef || undefined,\n },\n }\n }\n } else {\n throw new InvalidRequestError('No provided subject')\n }\n if (body === null) {\n throw new InvalidRequestError('Subject not found', 'NotFound')\n }\n return {\n encoding: 'application/json',\n body,\n }\n },\n })\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"updateSubjectStatus.js","sourceRoot":"","sources":["../../../../../src/api/com/atproto/admin/updateSubjectStatus.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"updateSubjectStatus.js","sourceRoot":"","sources":["../../../../../src/api/com/atproto/admin/updateSubjectStatus.ts"],"names":[],"mappings":"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","sourcesContent":["import { Timestamp } from '@bufbuild/protobuf'\nimport { AuthRequiredError, InvalidRequestError } from '@atproto/xrpc-server'\nimport { AppContext } from '../../../../context'\nimport { Server } from '../../../../lexicon'\nimport {\n isRepoBlobRef,\n isRepoRef,\n} from '../../../../lexicon/types/com/atproto/admin/defs'\nimport { isMain as isStrongRef } from '../../../../lexicon/types/com/atproto/repo/strongRef'\n\nexport default function (server: Server, ctx: AppContext) {\n server.com.atproto.admin.updateSubjectStatus({\n auth: ctx.authVerifier.roleOrModService,\n handler: async ({ input, auth }) => {\n const { canPerformTakedown } = ctx.authVerifier.parseCreds(auth)\n if (!canPerformTakedown) {\n throw new AuthRequiredError(\n 'Must be a full moderator to update subject state',\n )\n }\n const now = new Date()\n const { subject, takedown } = input.body\n if (takedown) {\n if (isRepoRef(subject)) {\n if (takedown.applied) {\n await ctx.dataplane.takedownActor({\n did: subject.did,\n ref: takedown.ref,\n seen: Timestamp.fromDate(now),\n })\n } else {\n await ctx.dataplane.untakedownActor({\n did: subject.did,\n seen: Timestamp.fromDate(now),\n })\n }\n } else if (isStrongRef(subject)) {\n if (takedown.applied) {\n await ctx.dataplane.takedownRecord({\n recordUri: subject.uri,\n ref: takedown.ref,\n seen: Timestamp.fromDate(now),\n })\n } else {\n await ctx.dataplane.untakedownRecord({\n recordUri: subject.uri,\n seen: Timestamp.fromDate(now),\n })\n }\n } else if (isRepoBlobRef(subject)) {\n if (takedown.applied) {\n await ctx.dataplane.takedownBlob({\n did: subject.did,\n cid: subject.cid,\n ref: takedown.ref,\n seen: Timestamp.fromDate(now),\n })\n } else {\n await ctx.dataplane.untakedownBlob({\n did: subject.did,\n cid: subject.cid,\n seen: Timestamp.fromDate(now),\n })\n }\n } else {\n throw new InvalidRequestError('Invalid subject')\n }\n }\n\n return {\n encoding: 'application/json',\n body: {\n subject,\n takedown,\n },\n }\n },\n })\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"resolveHandle.js","sourceRoot":"","sources":["../../../../../src/api/com/atproto/identity/resolveHandle.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,4BAgBC;AArBD,uDAAwC;AACxC,sDAA0D;AAI1D,mBAAyB,MAAc,EAAE,GAAe;IACtD,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;QAClE,MAAM,MAAM,GAAG,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAA;QAEnE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,EAAE;YACvD,oBAAoB,EAAE,IAAI;SAC3B,CAAC,CAAA;QACF,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,iCAAmB,CAAC,0BAA0B,CAAC,CAAA;QAC3D,CAAC;QAED,OAAO;YACL,QAAQ,EAAE,kBAAkB;YAC5B,IAAI,EAAE,EAAE,GAAG,EAAE;SACd,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"resolveHandle.js","sourceRoot":"","sources":["../../../../../src/api/com/atproto/identity/resolveHandle.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,4BAgBC;AArBD,uDAAwC;AACxC,sDAA0D;AAI1D,mBAAyB,MAAc,EAAE,GAAe;IACtD,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;QAClE,MAAM,MAAM,GAAG,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAA;QAEnE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,EAAE;YACvD,oBAAoB,EAAE,IAAI;SAC3B,CAAC,CAAA;QACF,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,iCAAmB,CAAC,0BAA0B,CAAC,CAAA;QAC3D,CAAC;QAED,OAAO;YACL,QAAQ,EAAE,kBAAkB;YAC5B,IAAI,EAAE,EAAE,GAAG,EAAE;SACd,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC","sourcesContent":["import * as ident from '@atproto/syntax'\nimport { InvalidRequestError } from '@atproto/xrpc-server'\nimport { AppContext } from '../../../../context'\nimport { Server } from '../../../../lexicon'\n\nexport default function (server: Server, ctx: AppContext) {\n server.com.atproto.identity.resolveHandle(async ({ req, params }) => {\n const handle = ident.normalizeHandle(params.handle || req.hostname)\n\n const [did] = await ctx.hydrator.actor.getDids([handle], {\n lookupUnidirectional: true,\n })\n if (!did) {\n throw new InvalidRequestError('Unable to resolve handle')\n }\n\n return {\n encoding: 'application/json',\n body: { did },\n }\n })\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"queryLabels.js","sourceRoot":"","sources":["../../../../../src/api/com/atproto/label/queryLabels.ts"],"names":[],"mappings":";;AAIA,4BA8BC;AAlCD,sDAA0D;AAI1D,mBAAyB,MAAc,EAAE,GAAe;IACtD,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QACxD,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,MAAM,CAAA;QAEvC,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,iCAAmB,CAAC,yBAAyB,CAAC,CAAA;QAC1D,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;YACrB,MAAM,IAAI,iCAAmB,CAAC,0BAA0B,CAAC,CAAA;QAC3D,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,oBAAoB,CAC5D,WAAW;QACX,yFAAyF;QACzF;YACE,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,IAAI,GAAG,EAAE;SAClB,CACF,CAAA;QACD,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAA;QAEvE,OAAO;YACL,QAAQ,EAAE,kBAAkB;YAC5B,IAAI,EAAE;gBACJ,MAAM,EAAE,SAAS;gBACjB,MAAM;aACP;SACF,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"queryLabels.js","sourceRoot":"","sources":["../../../../../src/api/com/atproto/label/queryLabels.ts"],"names":[],"mappings":";;AAIA,4BA8BC;AAlCD,sDAA0D;AAI1D,mBAAyB,MAAc,EAAE,GAAe;IACtD,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QACxD,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,MAAM,CAAA;QAEvC,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,iCAAmB,CAAC,yBAAyB,CAAC,CAAA;QAC1D,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;YACrB,MAAM,IAAI,iCAAmB,CAAC,0BAA0B,CAAC,CAAA;QAC3D,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,oBAAoB,CAC5D,WAAW;QACX,yFAAyF;QACzF;YACE,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,IAAI,GAAG,EAAE;SAClB,CACF,CAAA;QACD,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAA;QAEvE,OAAO;YACL,QAAQ,EAAE,kBAAkB;YAC5B,IAAI,EAAE;gBACJ,MAAM,EAAE,SAAS;gBACjB,MAAM;aACP;SACF,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC","sourcesContent":["import { InvalidRequestError } from '@atproto/xrpc-server'\nimport { AppContext } from '../../../../context'\nimport { Server } from '../../../../lexicon'\n\nexport default function (server: Server, ctx: AppContext) {\n server.com.atproto.label.queryLabels(async ({ params }) => {\n const { uriPatterns, sources } = params\n\n if (uriPatterns.find((uri) => uri.includes('*'))) {\n throw new InvalidRequestError('wildcards not supported')\n }\n\n if (!sources?.length) {\n throw new InvalidRequestError('source dids are required')\n }\n\n const labelMap = await ctx.hydrator.label.getLabelsForSubjects(\n uriPatterns,\n // If sources are provided, use them. Otherwise, use the labelers from the request header\n {\n dids: sources,\n redact: new Set(),\n },\n )\n const labels = uriPatterns.flatMap((uri) => labelMap.getBySubject(uri))\n\n return {\n encoding: 'application/json',\n body: {\n cursor: undefined,\n labels,\n },\n }\n })\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"getRecord.js","sourceRoot":"","sources":["../../../../../src/api/com/atproto/repo/getRecord.ts"],"names":[],"mappings":";;AAKA,4BAsCC;AA3CD,4CAAuC;AACvC,sDAA0D;AAI1D,mBAAyB,MAAc,EAAE,GAAe;IACtD,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC,sBAAsB;QAC7C,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE;YAClC,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,CAAA;YAC9C,MAAM,EAAE,gBAAgB,EAAE,GAAG,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;YAC9D,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;YACtD,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,MAAM,IAAI,iCAAmB,CAAC,wBAAwB,IAAI,EAAE,CAAC,CAAA;YAC/D,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,EAAE;gBACvD,gBAAgB;aACjB,CAAC,CAAA;YACF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrB,MAAM,IAAI,iCAAmB,CAAC,wBAAwB,IAAI,EAAE,CAAC,CAAA;YAC/D,CAAC;YAED,MAAM,GAAG,GAAG,cAAK,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAA;YACxD,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAA;YAElE,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC;gBAC3C,MAAM,IAAI,iCAAmB,CAC3B,4BAA4B,GAAG,EAAE,EACjC,gBAAgB,CACjB,CAAA;YACH,CAAC;YAED,OAAO;gBACL,QAAQ,EAAE,kBAA2B;gBACrC,IAAI,EAAE;oBACJ,GAAG,EAAE,GAAG;oBACR,GAAG,EAAE,MAAM,CAAC,GAAG;oBACf,KAAK,EAAE,MAAM,CAAC,MAAM;iBACrB;aACF,CAAA;QACH,CAAC;KACF,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"getRecord.js","sourceRoot":"","sources":["../../../../../src/api/com/atproto/repo/getRecord.ts"],"names":[],"mappings":";;AAKA,4BAsCC;AA3CD,4CAAuC;AACvC,sDAA0D;AAI1D,mBAAyB,MAAc,EAAE,GAAe;IACtD,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC,sBAAsB;QAC7C,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE;YAClC,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,CAAA;YAC9C,MAAM,EAAE,gBAAgB,EAAE,GAAG,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;YAC9D,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;YACtD,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,MAAM,IAAI,iCAAmB,CAAC,wBAAwB,IAAI,EAAE,CAAC,CAAA;YAC/D,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,EAAE;gBACvD,gBAAgB;aACjB,CAAC,CAAA;YACF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrB,MAAM,IAAI,iCAAmB,CAAC,wBAAwB,IAAI,EAAE,CAAC,CAAA;YAC/D,CAAC;YAED,MAAM,GAAG,GAAG,cAAK,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAA;YACxD,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAA;YAElE,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC;gBAC3C,MAAM,IAAI,iCAAmB,CAC3B,4BAA4B,GAAG,EAAE,EACjC,gBAAgB,CACjB,CAAA;YACH,CAAC;YAED,OAAO;gBACL,QAAQ,EAAE,kBAA2B;gBACrC,IAAI,EAAE;oBACJ,GAAG,EAAE,GAAG;oBACR,GAAG,EAAE,MAAM,CAAC,GAAG;oBACf,KAAK,EAAE,MAAM,CAAC,MAAM;iBACrB;aACF,CAAA;QACH,CAAC;KACF,CAAC,CAAA;AACJ,CAAC","sourcesContent":["import { AtUri } from '@atproto/syntax'\nimport { InvalidRequestError } from '@atproto/xrpc-server'\nimport { AppContext } from '../../../../context'\nimport { Server } from '../../../../lexicon'\n\nexport default function (server: Server, ctx: AppContext) {\n server.com.atproto.repo.getRecord({\n auth: ctx.authVerifier.optionalStandardOrRole,\n handler: async ({ auth, params }) => {\n const { repo, collection, rkey, cid } = params\n const { includeTakedowns } = ctx.authVerifier.parseCreds(auth)\n const [did] = await ctx.hydrator.actor.getDids([repo])\n if (!did) {\n throw new InvalidRequestError(`Could not find repo: ${repo}`)\n }\n\n const actors = await ctx.hydrator.actor.getActors([did], {\n includeTakedowns,\n })\n if (!actors.get(did)) {\n throw new InvalidRequestError(`Could not find repo: ${repo}`)\n }\n\n const uri = AtUri.make(did, collection, rkey).toString()\n const result = await ctx.hydrator.getRecord(uri, includeTakedowns)\n\n if (!result || (cid && result.cid !== cid)) {\n throw new InvalidRequestError(\n `Could not locate record: ${uri}`,\n 'RecordNotFound',\n )\n }\n\n return {\n encoding: 'application/json' as const,\n body: {\n uri: uri,\n cid: result.cid,\n value: result.record,\n },\n }\n },\n })\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"fetchLabels.js","sourceRoot":"","sources":["../../../../../src/api/com/atproto/temp/fetchLabels.ts"],"names":[],"mappings":";;AAIA,4BAIC;AARD,sDAA0D;AAI1D,mBAAyB,MAAc,EAAE,IAAgB;IACvD,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACpD,MAAM,IAAI,iCAAmB,CAAC,8BAA8B,CAAC,CAAA;IAC/D,CAAC,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"fetchLabels.js","sourceRoot":"","sources":["../../../../../src/api/com/atproto/temp/fetchLabels.ts"],"names":[],"mappings":";;AAIA,4BAIC;AARD,sDAA0D;AAI1D,mBAAyB,MAAc,EAAE,IAAgB;IACvD,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACpD,MAAM,IAAI,iCAAmB,CAAC,8BAA8B,CAAC,CAAA;IAC/D,CAAC,CAAC,CAAA;AACJ,CAAC","sourcesContent":["import { InvalidRequestError } from '@atproto/xrpc-server'\nimport { AppContext } from '../../../../context'\nimport { Server } from '../../../../lexicon'\n\nexport default function (server: Server, _ctx: AppContext) {\n server.com.atproto.temp.fetchLabels(async (_reqCtx) => {\n throw new InvalidRequestError('not implemented on dataplane')\n })\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"external.js","sourceRoot":"","sources":["../../src/api/external.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAgC;AAEhC,8CAA+B;AAExB,MAAM,YAAY,GAAG,CAAC,GAAe,EAAU,EAAE;IACtD,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAA;IAEvB,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;QAClB,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAA;IAC9C,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AARY,QAAA,YAAY,gBAQxB"}
1
+ {"version":3,"file":"external.js","sourceRoot":"","sources":["../../src/api/external.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAgC;AAEhC,8CAA+B;AAExB,MAAM,YAAY,GAAG,CAAC,GAAe,EAAU,EAAE;IACtD,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAA;IAEvB,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;QAClB,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAA;IAC9C,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AARY,QAAA,YAAY,gBAQxB","sourcesContent":["import { Router } from 'express'\nimport { AppContext } from '../context'\nimport * as kwsApi from './kws'\n\nexport const createRouter = (ctx: AppContext): Router => {\n const router = Router()\n\n if (ctx.kwsClient) {\n router.use('/kws', kwsApi.createRouter(ctx))\n }\n\n return router\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/api/health.ts"],"names":[],"mappings":";;;AAAA,qCAAgC;AAGzB,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;;;;;;;;;;;;;;;;CAgBZ,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,iNAAiN,CAClN,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,CAAA;QAC3B,IAAI,CAAC;YACH,MAAM,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC9B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,qBAAqB,CAAC,CAAA;YAC7C,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC,CAAA;QACxE,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;IACvB,CAAC,CAAC,CAAA;IAEF,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AA3CY,QAAA,YAAY,gBA2CxB"}
1
+ {"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/api/health.ts"],"names":[],"mappings":";;;AAAA,qCAAgC;AAGzB,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;;;;;;;;;;;;;;;;CAgBZ,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,iNAAiN,CAClN,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,CAAA;QAC3B,IAAI,CAAC;YACH,MAAM,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC9B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,qBAAqB,CAAC,CAAA;YAC7C,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC,CAAA;QACxE,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;IACvB,CAAC,CAAC,CAAA;IAEF,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AA3CY,QAAA,YAAY,gBA2CxB","sourcesContent":["import { Router } from 'express'\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 | |_) \\\\__ \\\\ <| |_| |\n |_.__/|___/_|\\\\_\\\\\\\\__, |\n __/ |\n |___/\n\nThis is an AT Protocol Application View (AppView) for the \"bsky.app\" application.\n\nMost API routes are under /xrpc/\n\n Code: https://github.com/bluesky-social/atproto\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 Friends!\\n\\n# Crawling the public parts of the API is allowed. HTTP 429 (\"backoff\") status codes are used for rate-limiting. Up to a handful concurrent requests should be ok.\\nUser-agent: *\\nAllow: /',\n )\n })\n\n router.get('/xrpc/_health', async function (req, res) {\n const { version } = ctx.cfg\n try {\n await ctx.dataplane.ping({})\n } catch (err) {\n req.log.error({ err }, 'failed health check')\n return res.status(503).send({ version, error: 'Service Unavailable' })\n }\n res.send({ version })\n })\n\n return router\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppContext } from '../context'\nimport { Server } from '../lexicon'\nimport getProfile from './app/bsky/actor/getProfile'\nimport getProfiles from './app/bsky/actor/getProfiles'\nimport getSuggestions from './app/bsky/actor/getSuggestions'\nimport searchActors from './app/bsky/actor/searchActors'\nimport searchActorsTypeahead from './app/bsky/actor/searchActorsTypeahead'\nimport createBookmark from './app/bsky/bookmark/createBookmark'\nimport deleteBookmark from './app/bsky/bookmark/deleteBookmark'\nimport getBookmarks from './app/bsky/bookmark/getBookmarks'\nimport getActorFeeds from './app/bsky/feed/getActorFeeds'\nimport getActorLikes from './app/bsky/feed/getActorLikes'\nimport getAuthorFeed from './app/bsky/feed/getAuthorFeed'\nimport getFeed from './app/bsky/feed/getFeed'\nimport getFeedGenerator from './app/bsky/feed/getFeedGenerator'\nimport getFeedGenerators from './app/bsky/feed/getFeedGenerators'\nimport getLikes from './app/bsky/feed/getLikes'\nimport getListFeed from './app/bsky/feed/getListFeed'\nimport getPostThread from './app/bsky/feed/getPostThread'\nimport getPosts from './app/bsky/feed/getPosts'\nimport getQuotes from './app/bsky/feed/getQuotes'\nimport getRepostedBy from './app/bsky/feed/getRepostedBy'\nimport getSuggestedFeeds from './app/bsky/feed/getSuggestedFeeds'\nimport getTimeline from './app/bsky/feed/getTimeline'\nimport searchPosts from './app/bsky/feed/searchPosts'\nimport getActorStarterPacks from './app/bsky/graph/getActorStarterPacks'\nimport getBlocks from './app/bsky/graph/getBlocks'\nimport getFollowers from './app/bsky/graph/getFollowers'\nimport getFollows from './app/bsky/graph/getFollows'\nimport getKnownFollowers from './app/bsky/graph/getKnownFollowers'\nimport getList from './app/bsky/graph/getList'\nimport getListBlocks from './app/bsky/graph/getListBlocks'\nimport getListMutes from './app/bsky/graph/getListMutes'\nimport getLists from './app/bsky/graph/getLists'\nimport getListsWithMembership from './app/bsky/graph/getListsWithMembership'\nimport getMutes from './app/bsky/graph/getMutes'\nimport getRelationships from './app/bsky/graph/getRelationships'\nimport getStarterPack from './app/bsky/graph/getStarterPack'\nimport getStarterPacks from './app/bsky/graph/getStarterPacks'\nimport getStarterPacksWithMembership from './app/bsky/graph/getStarterPacksWithMembership'\nimport getSuggestedFollowsByActor from './app/bsky/graph/getSuggestedFollowsByActor'\nimport muteActor from './app/bsky/graph/muteActor'\nimport muteActorList from './app/bsky/graph/muteActorList'\nimport muteThread from './app/bsky/graph/muteThread'\nimport searchStarterPacks from './app/bsky/graph/searchStarterPacks'\nimport unmuteActor from './app/bsky/graph/unmuteActor'\nimport unmuteActorList from './app/bsky/graph/unmuteActorList'\nimport unmuteThread from './app/bsky/graph/unmuteThread'\nimport getLabelerServices from './app/bsky/labeler/getServices'\nimport getPreferences from './app/bsky/notification/getPreferences'\nimport getUnreadCount from './app/bsky/notification/getUnreadCount'\nimport listActivitySubscriptions from './app/bsky/notification/listActivitySubscriptions'\nimport listNotifications from './app/bsky/notification/listNotifications'\nimport putActivitySubscription from './app/bsky/notification/putActivitySubscription'\nimport putPreferences from './app/bsky/notification/putPreferences'\nimport putPreferencesV2 from './app/bsky/notification/putPreferencesV2'\nimport registerPush from './app/bsky/notification/registerPush'\nimport updateSeen from './app/bsky/notification/updateSeen'\nimport getAgeAssuranceState from './app/bsky/unspecced/getAgeAssuranceState'\nimport getConfig from './app/bsky/unspecced/getConfig'\nimport getOnboardingSuggestedStarterPacks from './app/bsky/unspecced/getOnboardingSuggestedStarterPacks'\nimport getPopularFeedGenerators from './app/bsky/unspecced/getPopularFeedGenerators'\nimport getPostThreadOtherV2 from './app/bsky/unspecced/getPostThreadOtherV2'\nimport getPostThreadV2 from './app/bsky/unspecced/getPostThreadV2'\nimport getUnspeccedSuggestedFeeds from './app/bsky/unspecced/getSuggestedFeeds'\nimport getSuggestedStarterPacks from './app/bsky/unspecced/getSuggestedStarterPacks'\nimport getSuggestedUsers from './app/bsky/unspecced/getSuggestedUsers'\nimport getTaggedSuggestions from './app/bsky/unspecced/getTaggedSuggestions'\nimport getTrendingTopics from './app/bsky/unspecced/getTrendingTopics'\nimport getTrends from './app/bsky/unspecced/getTrends'\nimport initAgeAssurance from './app/bsky/unspecced/initAgeAssurance'\nimport getAccountInfos from './com/atproto/admin/getAccountInfos'\nimport getSubjectStatus from './com/atproto/admin/getSubjectStatus'\nimport updateSubjectStatus from './com/atproto/admin/updateSubjectStatus'\nimport resolveHandle from './com/atproto/identity/resolveHandle'\nimport queryLabels from './com/atproto/label/queryLabels'\nimport getRecord from './com/atproto/repo/getRecord'\nimport fetchLabels from './com/atproto/temp/fetchLabels'\n\nexport * as health from './health'\n\nexport * as wellKnown from './well-known'\n\nexport * as blobResolver from './blob-resolver'\n\nexport * as external from './external'\n\nexport default function (server: Server, ctx: AppContext) {\n // app.bsky\n getTimeline(server, ctx)\n createBookmark(server, ctx)\n deleteBookmark(server, ctx)\n getBookmarks(server, ctx)\n getActorFeeds(server, ctx)\n getSuggestedFeeds(server, ctx)\n getAuthorFeed(server, ctx)\n getFeed(server, ctx)\n getFeedGenerator(server, ctx)\n getFeedGenerators(server, ctx)\n getLikes(server, ctx)\n getListFeed(server, ctx)\n getQuotes(server, ctx)\n getPostThread(server, ctx)\n getPostThreadOtherV2(server, ctx)\n getPostThreadV2(server, ctx)\n getPosts(server, ctx)\n searchPosts(server, ctx)\n getActorLikes(server, ctx)\n getProfile(server, ctx)\n getProfiles(server, ctx)\n getRepostedBy(server, ctx)\n getActorStarterPacks(server, ctx)\n getBlocks(server, ctx)\n getListBlocks(server, ctx)\n getFollowers(server, ctx)\n getKnownFollowers(server, ctx)\n getFollows(server, ctx)\n getList(server, ctx)\n getLists(server, ctx)\n getListsWithMembership(server, ctx)\n getListMutes(server, ctx)\n getMutes(server, ctx)\n getRelationships(server, ctx)\n getStarterPack(server, ctx)\n getStarterPacks(server, ctx)\n getStarterPacksWithMembership(server, ctx)\n searchStarterPacks(server, ctx)\n muteActor(server, ctx)\n unmuteActor(server, ctx)\n muteActorList(server, ctx)\n unmuteActorList(server, ctx)\n muteThread(server, ctx)\n unmuteThread(server, ctx)\n getSuggestedFollowsByActor(server, ctx)\n getTrendingTopics(server, ctx)\n getTrends(server, ctx)\n getOnboardingSuggestedStarterPacks(server, ctx)\n getSuggestedStarterPacks(server, ctx)\n getSuggestedUsers(server, ctx)\n getUnspeccedSuggestedFeeds(server, ctx)\n getLabelerServices(server, ctx)\n searchActors(server, ctx)\n searchActorsTypeahead(server, ctx)\n getSuggestions(server, ctx)\n getPreferences(server, ctx)\n getUnreadCount(server, ctx)\n listActivitySubscriptions(server, ctx)\n listNotifications(server, ctx)\n putActivitySubscription(server, ctx)\n updateSeen(server, ctx)\n putPreferences(server, ctx)\n putPreferencesV2(server, ctx)\n registerPush(server, ctx)\n getConfig(server, ctx)\n getPopularFeedGenerators(server, ctx)\n getTaggedSuggestions(server, ctx)\n getAgeAssuranceState(server, ctx)\n initAgeAssurance(server, ctx)\n // com.atproto\n getSubjectStatus(server, ctx)\n updateSubjectStatus(server, ctx)\n getAccountInfos(server, ctx)\n resolveHandle(server, ctx)\n getRecord(server, ctx)\n fetchLabels(server, ctx)\n queryLabels(server, ctx)\n return server\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/api/kws/api.ts"],"names":[],"mappings":";;;AACA,yCAAgD;AAChD,mCAKgB;AAChB,iCAMe;AAEf,MAAM,eAAe,GAAG,CACtB,GAA4B,EAC5B,GAAoB,EACE,EAAE;IACxB,IAAI,CAAC;QACH,MAAM,YAAY,GAChB,2CAAmC,CAAC,KAAK,CAAC;YACxC,eAAe,EAAE,GAAG,CAAC,KAAK,CAAC,eAAe;YAC1C,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,SAAS;YAC9B,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM;SACzB,CAAC,CAAA;QAEJ,MAAM,IAAI,GAAG,GAAG,YAAY,CAAC,MAAM,IAAI,YAAY,CAAC,eAAe,EAAE,CAAA;QACrE,IAAA,wBAAiB,EACf,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,kBAAkB,EAC9B,IAAI,EACJ,YAAY,CAAC,SAAS,CACvB,CAAA;QAED,OAAO;YACL,GAAG,YAAY;YACf,eAAe,EAAE,IAAA,2BAAoB,EAAC,YAAY,CAAC,eAAe,CAAC;YACnE,MAAM,EAAE,IAAA,kBAAW,EAAC,YAAY,CAAC,MAAM,CAAC;SACzC,CAAA;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,yBAAyB,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;IAC5D,CAAC;AACH,CAAC,CAAA;AAEM,MAAM,mBAAmB,GAC9B,CAAC,GAA4B,EAAkB,EAAE,CACjD,KAAK,EAAE,GAAoB,EAAE,GAAqB,EAAE,EAAE;IACpD,IAAI,QAA4B,CAAA;IAChC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;QACvC,MAAM,EACJ,eAAe,EACf,MAAM,EAAE,EAAE,QAAQ,EAAE,GACrB,GAAG,KAAK,CAAA;QACT,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CACb,kEAAkE,CACnE,CAAA;QACH,CAAC;QAED,MAAM,EAAE,QAAQ,EAAE,uBAAuB,EAAE,SAAS,EAAE,GAAG,eAAe,CAAA;QACxE,QAAQ,GAAG,uBAAuB,CAAA;QAClC,mFAAmF;QACnF,MAAM,UAAU,GAAG,GAAG,CAAC,EAAE,CAAA;QACzB,MAAM,UAAU,GAAG,IAAA,kBAAW,EAAC,GAAG,CAAC,CAAA;QACnC,MAAM,IAAA,uBAAgB,EAAC,GAAG,EAAE;YAC1B,QAAQ;YACR,SAAS;YACT,UAAU;YACV,UAAU;YACV,MAAM,EAAE,SAAS;SAClB,CAAC,CAAA;QACF,OAAO,GAAG;aACP,MAAM,CAAC,GAAG,CAAC;aACX,SAAS,CACR,UAAU,EACV,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,IAAI,IAAI,eAAe,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,CACrF;aACA,GAAG,EAAE,CAAA;IACV,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,mBAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,4CAA4C,CAAC,CAAA;QAEhE,OAAO,GAAG;aACP,MAAM,CAAC,GAAG,CAAC;aACX,SAAS,CACR,UAAU,EACV,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,IAAI,IAAI,eAAe,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,CAC9G;aACA,GAAG,EAAE,CAAA;IACV,CAAC;AACH,CAAC,CAAA;AA9CU,QAAA,mBAAmB,uBA8C7B"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/api/kws/api.ts"],"names":[],"mappings":";;;AACA,yCAAgD;AAChD,mCAKgB;AAChB,iCAMe;AAEf,MAAM,eAAe,GAAG,CACtB,GAA4B,EAC5B,GAAoB,EACE,EAAE;IACxB,IAAI,CAAC;QACH,MAAM,YAAY,GAChB,2CAAmC,CAAC,KAAK,CAAC;YACxC,eAAe,EAAE,GAAG,CAAC,KAAK,CAAC,eAAe;YAC1C,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,SAAS;YAC9B,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM;SACzB,CAAC,CAAA;QAEJ,MAAM,IAAI,GAAG,GAAG,YAAY,CAAC,MAAM,IAAI,YAAY,CAAC,eAAe,EAAE,CAAA;QACrE,IAAA,wBAAiB,EACf,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,kBAAkB,EAC9B,IAAI,EACJ,YAAY,CAAC,SAAS,CACvB,CAAA;QAED,OAAO;YACL,GAAG,YAAY;YACf,eAAe,EAAE,IAAA,2BAAoB,EAAC,YAAY,CAAC,eAAe,CAAC;YACnE,MAAM,EAAE,IAAA,kBAAW,EAAC,YAAY,CAAC,MAAM,CAAC;SACzC,CAAA;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,yBAAyB,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;IAC5D,CAAC;AACH,CAAC,CAAA;AAEM,MAAM,mBAAmB,GAC9B,CAAC,GAA4B,EAAkB,EAAE,CACjD,KAAK,EAAE,GAAoB,EAAE,GAAqB,EAAE,EAAE;IACpD,IAAI,QAA4B,CAAA;IAChC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;QACvC,MAAM,EACJ,eAAe,EACf,MAAM,EAAE,EAAE,QAAQ,EAAE,GACrB,GAAG,KAAK,CAAA;QACT,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CACb,kEAAkE,CACnE,CAAA;QACH,CAAC;QAED,MAAM,EAAE,QAAQ,EAAE,uBAAuB,EAAE,SAAS,EAAE,GAAG,eAAe,CAAA;QACxE,QAAQ,GAAG,uBAAuB,CAAA;QAClC,mFAAmF;QACnF,MAAM,UAAU,GAAG,GAAG,CAAC,EAAE,CAAA;QACzB,MAAM,UAAU,GAAG,IAAA,kBAAW,EAAC,GAAG,CAAC,CAAA;QACnC,MAAM,IAAA,uBAAgB,EAAC,GAAG,EAAE;YAC1B,QAAQ;YACR,SAAS;YACT,UAAU;YACV,UAAU;YACV,MAAM,EAAE,SAAS;SAClB,CAAC,CAAA;QACF,OAAO,GAAG;aACP,MAAM,CAAC,GAAG,CAAC;aACX,SAAS,CACR,UAAU,EACV,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,IAAI,IAAI,eAAe,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,CACrF;aACA,GAAG,EAAE,CAAA;IACV,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,mBAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,4CAA4C,CAAC,CAAA;QAEhE,OAAO,GAAG;aACP,MAAM,CAAC,GAAG,CAAC;aACX,SAAS,CACR,UAAU,EACV,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,IAAI,IAAI,eAAe,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,CAC9G;aACA,GAAG,EAAE,CAAA;IACV,CAAC;AACH,CAAC,CAAA;AA9CU,QAAA,mBAAmB,uBA8C7B","sourcesContent":["import express, { RequestHandler } from 'express'\nimport { httpLogger as log } from '../../logger'\nimport {\n AppContextWithKwsClient,\n KwsVerificationIntermediateQuery,\n KwsVerificationQuery,\n verificationIntermediateQuerySchema,\n} from './types'\nimport {\n createStashEvent,\n getClientUa,\n parseExternalPayload,\n parseStatus,\n validateSignature,\n} from './util'\n\nconst validateRequest = (\n ctx: AppContextWithKwsClient,\n req: express.Request,\n): KwsVerificationQuery => {\n try {\n const intermediate: KwsVerificationIntermediateQuery =\n verificationIntermediateQuerySchema.parse({\n externalPayload: req.query.externalPayload,\n signature: req.query.signature,\n status: req.query.status,\n })\n\n const data = `${intermediate.status}:${intermediate.externalPayload}`\n validateSignature(\n ctx.cfg.kws.verificationSecret,\n data,\n intermediate.signature,\n )\n\n return {\n ...intermediate,\n externalPayload: parseExternalPayload(intermediate.externalPayload),\n status: parseStatus(intermediate.status),\n }\n } catch (err) {\n throw new Error('Invalid KWS API request', { cause: err })\n }\n}\n\nexport const verificationHandler =\n (ctx: AppContextWithKwsClient): RequestHandler =>\n async (req: express.Request, res: express.Response) => {\n let actorDid: string | undefined\n try {\n const query = validateRequest(ctx, req)\n const {\n externalPayload,\n status: { verified },\n } = query\n if (!verified) {\n throw new Error(\n 'Unexpected KWS verification response call with unverified status',\n )\n }\n\n const { actorDid: externalPayloadActorDid, attemptId } = externalPayload\n actorDid = externalPayloadActorDid\n // Assumes `app.set('trust proxy', ...)` configured with `true` or specific values.\n const completeIp = req.ip\n const completeUa = getClientUa(req)\n await createStashEvent(ctx, {\n actorDid,\n attemptId,\n completeIp,\n completeUa,\n status: 'assured',\n })\n return res\n .status(302)\n .setHeader(\n 'Location',\n `${ctx.cfg.kws.redirectUrl}?${new URLSearchParams({ actorDid, result: 'success' })}`,\n )\n .end()\n } catch (err) {\n log.error({ err }, 'Failed to handle KWS verification response')\n\n return res\n .status(302)\n .setHeader(\n 'Location',\n `${ctx.cfg.kws.redirectUrl}?${new URLSearchParams({ ...(actorDid ? { actorDid } : {}), result: 'unknown' })}`,\n )\n .end()\n }\n }\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/kws/index.ts"],"names":[],"mappings":";;;AAAA,qCAAqC;AAErC,+BAA2C;AAE3C,uCAAuD;AAEhD,MAAM,YAAY,GAAG,CAAC,GAAe,EAAU,EAAE;IACtD,sCAAsC,CAAC,GAAG,CAAC,CAAA;IAE3C,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAA;IACvB,MAAM,CAAC,GAAG,CAAC,IAAA,aAAG,EAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAA;IAC7C,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,IAAA,qBAAW,EAAC,GAAG,CAAC,EAAE,IAAA,wBAAc,EAAC,GAAG,CAAC,CAAC,CAAA;IAC5E,MAAM,CAAC,GAAG,CAAC,6BAA6B,EAAE,IAAA,yBAAmB,EAAC,GAAG,CAAC,CAAC,CAAA;IACnE,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AARY,QAAA,YAAY,gBAQxB;AAED,MAAM,sCAAsC,GAEE,CAAC,GAAe,EAAE,EAAE;IAChE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAA;IAC7E,CAAC;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/kws/index.ts"],"names":[],"mappings":";;;AAAA,qCAAqC;AAErC,+BAA2C;AAE3C,uCAAuD;AAEhD,MAAM,YAAY,GAAG,CAAC,GAAe,EAAU,EAAE;IACtD,sCAAsC,CAAC,GAAG,CAAC,CAAA;IAE3C,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAA;IACvB,MAAM,CAAC,GAAG,CAAC,IAAA,aAAG,EAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAA;IAC7C,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,IAAA,qBAAW,EAAC,GAAG,CAAC,EAAE,IAAA,wBAAc,EAAC,GAAG,CAAC,CAAC,CAAA;IAC5E,MAAM,CAAC,GAAG,CAAC,6BAA6B,EAAE,IAAA,yBAAmB,EAAC,GAAG,CAAC,CAAC,CAAA;IACnE,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AARY,QAAA,YAAY,gBAQxB;AAED,MAAM,sCAAsC,GAEE,CAAC,GAAe,EAAE,EAAE;IAChE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAA;IAC7E,CAAC;AACH,CAAC,CAAA","sourcesContent":["import { Router, raw } from 'express'\nimport { AppContext } from '../../context'\nimport { verificationHandler } from './api'\nimport { AppContextWithKwsClient } from './types'\nimport { webhookAuth, webhookHandler } from './webhook'\n\nexport const createRouter = (ctx: AppContext): Router => {\n assertAppContextWithAgeAssuranceClient(ctx)\n\n const router = Router()\n router.use(raw({ type: 'application/json' }))\n router.post('/age-assurance-webhook', webhookAuth(ctx), webhookHandler(ctx))\n router.get('/age-assurance-verification', verificationHandler(ctx))\n return router\n}\n\nconst assertAppContextWithAgeAssuranceClient: (\n ctx: AppContext,\n) => asserts ctx is AppContextWithKwsClient = (ctx: AppContext) => {\n if (!ctx.kwsClient) {\n throw new Error('Tried to set up KWS router without kwsClient configured.')\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/api/kws/types.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAiBvB,wDAAwD;AAC3C,QAAA,qBAAqB,GAAG,OAAC;KACnC,MAAM,CAAC;IACN,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE;IACpB,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE;CACtB,CAAC;KACD,MAAM,EAAE,CAAA;AAYX,wDAAwD;AAC3C,QAAA,mCAAmC,GAAG,OAAC,CAAC,MAAM,CAAC;IAC1D,eAAe,EAAE,OAAC,CAAC,MAAM,EAAE;IAC3B,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE;IACrB,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE;CACnB,CAAC,CAAA;AAeF,wDAAwD;AAC3C,QAAA,YAAY,GAAG,OAAC,CAAC,MAAM,CAAC;IACnC,QAAQ,EAAE,OAAC,CAAC,OAAO,EAAE;CACtB,CAAC,CAAA;AAEF,wDAAwD;AAC3C,QAAA,6BAA6B,GAAG,OAAC,CAAC,MAAM,CAAC;IACpD,OAAO,EAAE,OAAC,CAAC,MAAM,CAAC;QAChB,eAAe,EAAE,OAAC,CAAC,MAAM,EAAE;QAC3B,MAAM,EAAE,oBAAY;KACrB,CAAC;CACH,CAAC,CAAA"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/api/kws/types.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAiBvB,wDAAwD;AAC3C,QAAA,qBAAqB,GAAG,OAAC;KACnC,MAAM,CAAC;IACN,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE;IACpB,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE;CACtB,CAAC;KACD,MAAM,EAAE,CAAA;AAYX,wDAAwD;AAC3C,QAAA,mCAAmC,GAAG,OAAC,CAAC,MAAM,CAAC;IAC1D,eAAe,EAAE,OAAC,CAAC,MAAM,EAAE;IAC3B,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE;IACrB,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE;CACnB,CAAC,CAAA;AAeF,wDAAwD;AAC3C,QAAA,YAAY,GAAG,OAAC,CAAC,MAAM,CAAC;IACnC,QAAQ,EAAE,OAAC,CAAC,OAAO,EAAE;CACtB,CAAC,CAAA;AAEF,wDAAwD;AAC3C,QAAA,6BAA6B,GAAG,OAAC,CAAC,MAAM,CAAC;IACpD,OAAO,EAAE,OAAC,CAAC,MAAM,CAAC;QAChB,eAAe,EAAE,OAAC,CAAC,MAAM,EAAE;QAC3B,MAAM,EAAE,oBAAY;KACrB,CAAC;CACH,CAAC,CAAA","sourcesContent":["import { z } from 'zod'\nimport { KwsConfig, ServerConfig } from '../../config'\nimport { AppContext } from '../../context'\nimport { KwsClient } from '../../kws'\n\nexport type AppContextWithKwsClient = AppContext & {\n kwsClient: KwsClient\n cfg: ServerConfig & {\n kws: KwsConfig\n }\n}\n\nexport type KwsExternalPayload = {\n actorDid: string\n attemptId: string\n}\n\n// `.strict()` because we control the payload structure.\nexport const externalPayloadSchema = z\n .object({\n actorDid: z.string(),\n attemptId: z.string(),\n })\n .strict()\n\nexport type KwsStatus = {\n verified: boolean\n}\n\nexport type KwsVerificationIntermediateQuery = {\n externalPayload: string\n status: string\n signature: string\n}\n\n// Not `.strict()` to avoid breaking if KWS adds fields.\nexport const verificationIntermediateQuerySchema = z.object({\n externalPayload: z.string(),\n signature: z.string(),\n status: z.string(),\n})\n\nexport type KwsVerificationQuery = {\n externalPayload: KwsExternalPayload\n signature: string\n status: KwsStatus\n}\n\nexport type KwsWebhookBody = {\n payload: {\n externalPayload: KwsExternalPayload\n status: KwsStatus\n }\n}\n\n// Not `.strict()` to avoid breaking if KWS adds fields.\nexport const statusSchema = z.object({\n verified: z.boolean(),\n})\n\n// Not `.strict()` to avoid breaking if KWS adds fields.\nexport const webhookBodyIntermediateSchema = z.object({\n payload: z.object({\n externalPayload: z.string(),\n status: statusSchema,\n }),\n})\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/api/kws/util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/api/kws/util.ts"],"names":[],"mappings":"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","sourcesContent":["import crypto from 'node:crypto'\nimport express from 'express'\nimport { TID } from '@atproto/common'\nimport { AppContext } from '../../context'\nimport {\n AgeAssuranceEvent,\n AgeAssuranceState,\n} from '../../lexicon/types/app/bsky/unspecced/defs'\nimport { Namespaces } from '../../stash'\nimport {\n KwsExternalPayload,\n KwsStatus,\n externalPayloadSchema,\n statusSchema,\n} from './types'\n\nexport const createStashEvent = async (\n ctx: AppContext,\n {\n actorDid,\n attemptId,\n email,\n initIp,\n initUa,\n completeIp,\n completeUa,\n status,\n }: {\n actorDid: string\n attemptId: string\n email?: string\n initIp?: string\n initUa?: string\n completeIp?: string\n completeUa?: string\n status: AgeAssuranceState['status']\n },\n) => {\n const stashPayload: AgeAssuranceEvent = {\n createdAt: new Date().toISOString(),\n email,\n status,\n attemptId,\n initIp,\n initUa,\n completeIp,\n completeUa,\n }\n\n await ctx.stashClient.create({\n actorDid,\n namespace: Namespaces.AppBskyUnspeccedDefsAgeAssuranceEvent,\n key: TID.nextStr(),\n payload: stashPayload,\n })\n return stashPayload\n}\n\nexport const validateSignature = (\n key: string,\n data: string,\n signature: string,\n) => {\n const expectedSignature = crypto\n .createHmac('sha256', key)\n .update(data)\n .digest('hex')\n\n const expectedSignatureBuf = Buffer.from(expectedSignature, 'hex')\n const actualSignatureBuf = Buffer.from(signature, 'hex')\n\n if (expectedSignatureBuf.length !== actualSignatureBuf.length) {\n throw new Error(`Signature mismatch`)\n }\n\n if (!crypto.timingSafeEqual(expectedSignatureBuf, actualSignatureBuf)) {\n throw new Error(`Signature mismatch`)\n }\n}\n\nexport const serializeExternalPayload = (value: KwsExternalPayload): string => {\n return JSON.stringify(value)\n}\n\nexport const parseExternalPayload = (\n serialized: string,\n): KwsExternalPayload => {\n try {\n const value: unknown = JSON.parse(serialized)\n return externalPayloadSchema.parse(value)\n } catch (err) {\n throw new Error(`Invalid external payload: ${serialized}`, { cause: err })\n }\n}\n\nexport const parseStatus = (serialized: string): KwsStatus => {\n try {\n const value: unknown = JSON.parse(serialized)\n return statusSchema.parse(value)\n } catch (err) {\n throw new Error(`Invalid status: ${serialized}`, { cause: err })\n }\n}\n\nexport const kwsWwwAuthenticate = (): Record<string, string> => ({\n 'www-authenticate': `Signature realm=\"kws\"`,\n})\n\nexport const getClientUa = (req: express.Request): string | undefined => {\n return req.headers['user-agent']\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"webhook.js","sourceRoot":"","sources":["../../../src/api/kws/webhook.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webhook.js","sourceRoot":"","sources":["../../../src/api/kws/webhook.ts"],"names":[],"mappings":"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","sourcesContent":["import express, { RequestHandler } from 'express'\nimport { httpLogger as log } from '../../logger'\nimport {\n AppContextWithKwsClient,\n KwsWebhookBody,\n webhookBodyIntermediateSchema,\n} from './types'\nimport {\n createStashEvent,\n kwsWwwAuthenticate,\n parseExternalPayload,\n validateSignature,\n} from './util'\n\nexport const webhookAuth =\n (ctx: AppContextWithKwsClient): RequestHandler =>\n (req: express.Request, res: express.Response, next: express.NextFunction) => {\n const body: Buffer = req.body\n const sigHeader = req.headers['x-kws-signature']\n if (!sigHeader || typeof sigHeader !== 'string') {\n return res.status(401).header(kwsWwwAuthenticate()).json({\n success: false,\n error:\n 'Invalid authentication for KWS webhook: missing signature header',\n })\n }\n\n try {\n const parts = sigHeader.split(',')\n const timestamp = parts.find((p) => p.startsWith('t='))?.split('=')[1]\n const signature = parts.find((p) => p.startsWith('v1='))?.split('=')[1]\n if (typeof timestamp !== 'string' || typeof signature !== 'string') {\n throw new Error('Invalid webhook signature format')\n }\n\n const data = `${timestamp}.${body}`\n validateSignature(ctx.cfg.kws.webhookSecret, data, signature)\n next()\n } catch (err) {\n log.error({ err }, 'Invalid KWS webhook signature')\n return res.status(401).header(kwsWwwAuthenticate()).json({\n success: false,\n error: 'Invalid authentication for KWS webhook: signature mismatch',\n })\n }\n }\n\ntype AgeAssuranceWebhookIntermediateBody = {\n payload: Omit<KwsWebhookBody['payload'], 'externalPayload'> & {\n externalPayload: string\n }\n}\n\nconst parseBody = (serialized: string): KwsWebhookBody => {\n try {\n const value: unknown = JSON.parse(serialized)\n const intermediate: AgeAssuranceWebhookIntermediateBody =\n webhookBodyIntermediateSchema.parse(value)\n\n return {\n ...intermediate,\n payload: {\n ...intermediate.payload,\n externalPayload: parseExternalPayload(\n intermediate.payload.externalPayload,\n ),\n },\n }\n } catch (err) {\n throw new Error(`Invalid webhook body: ${serialized}`, { cause: err })\n }\n}\n\nexport const webhookHandler =\n (ctx: AppContextWithKwsClient): RequestHandler =>\n async (req: express.Request, res: express.Response) => {\n let body: KwsWebhookBody\n try {\n body = parseBody(req.body)\n } catch (err) {\n log.error({ err }, 'Invalid KWS webhook body')\n return res.status(400).json(err)\n }\n\n const {\n payload: {\n status: { verified },\n externalPayload,\n },\n } = body\n const { actorDid, attemptId } = externalPayload\n if (!verified) {\n throw new Error('Unexpected KWS webhook call with unverified status')\n }\n\n try {\n await createStashEvent(ctx, {\n actorDid,\n attemptId,\n status: 'assured',\n })\n return res.status(200).end()\n } catch (err) {\n log.error({ err }, 'Failed to handle KWS webhook')\n return res.status(500).json(err)\n }\n }\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/api/util.ts"],"names":[],"mappings":";;;AAAA,kCAA6D;AAEhD,QAAA,eAAe,GAAG,aAAa,CAAA;AAC/B,QAAA,wBAAwB,GAAG,0BAA0B,CAAA;AACrD,QAAA,gBAAgB,GAAG,kBAAkB,CAAA;AAO3C,MAAM,UAAU,GAAG,CACxB,IAA4B,EACJ,EAAE;IAC1B,MAAM,OAAO,GAAG,EAAE,CAAA;IAClB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,gCAAwB,CAAC,GAAG,IAAA,0BAAmB,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACxE,CAAC;IACD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,CAAC,wBAAgB,CAAC,GAAG,IAAI,CAAC,OAAO,CAAA;IAC1C,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAXY,QAAA,UAAU,cAWtB;AAEM,MAAM,gBAAgB,GAAG,CAAC,MAAe,EAAE,EAAE;IAClD,8EAA8E;IAC9E,OAAO,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAA;AACjC,CAAC,CAAA;AAHY,QAAA,gBAAgB,oBAG5B"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/api/util.ts"],"names":[],"mappings":";;;AAAA,kCAA6D;AAEhD,QAAA,eAAe,GAAG,aAAa,CAAA;AAC/B,QAAA,wBAAwB,GAAG,0BAA0B,CAAA;AACrD,QAAA,gBAAgB,GAAG,kBAAkB,CAAA;AAO3C,MAAM,UAAU,GAAG,CACxB,IAA4B,EACJ,EAAE;IAC1B,MAAM,OAAO,GAAG,EAAE,CAAA;IAClB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,gCAAwB,CAAC,GAAG,IAAA,0BAAmB,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACxE,CAAC;IACD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,CAAC,wBAAgB,CAAC,GAAG,IAAI,CAAC,OAAO,CAAA;IAC1C,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAXY,QAAA,UAAU,cAWtB;AAEM,MAAM,gBAAgB,GAAG,CAAC,MAAe,EAAE,EAAE;IAClD,8EAA8E;IAC9E,OAAO,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAA;AACjC,CAAC,CAAA;AAHY,QAAA,gBAAgB,oBAG5B","sourcesContent":["import { ParsedLabelers, formatLabelerHeader } from '../util'\n\nexport const BSKY_USER_AGENT = 'BskyAppView'\nexport const ATPROTO_CONTENT_LABELERS = 'Atproto-Content-Labelers'\nexport const ATPROTO_REPO_REV = 'Atproto-Repo-Rev'\n\ntype ResHeaderOpts = {\n labelers: ParsedLabelers\n repoRev: string | null\n}\n\nexport const resHeaders = (\n opts: Partial<ResHeaderOpts>,\n): Record<string, string> => {\n const headers = {}\n if (opts.labelers) {\n headers[ATPROTO_CONTENT_LABELERS] = formatLabelerHeader(opts.labelers)\n }\n if (opts.repoRev) {\n headers[ATPROTO_REPO_REV] = opts.repoRev\n }\n return headers\n}\n\nexport const clearlyBadCursor = (cursor?: string) => {\n // hallmark of v1 cursor, highly unlikely in v2 cursors based on time or rkeys\n return !!cursor?.includes('::')\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"well-known.js","sourceRoot":"","sources":["../../src/api/well-known.ts"],"names":[],"mappings":";;;AAAA,qCAAgC;AAGzB,MAAM,YAAY,GAAG,CAAC,GAAe,EAAU,EAAE;IACtD,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAA;IAEvB,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,CAAA;IAC7B,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QAC7C,MAAM,eAAe,GAAG,WAAW,QAAQ,EAAE,CAAA;QAE7C,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;YAChD,GAAG,CAAC,IAAI,CAAC;gBACP,UAAU,EAAE;oBACV,8BAA8B;oBAC9B,uCAAuC;iBACxC;gBACD,EAAE,EAAE,GAAG;gBACP,kBAAkB,EAAE;oBAClB;wBACE,EAAE,EAAE,GAAG,GAAG,UAAU;wBACpB,IAAI,EAAE,UAAU;wBAChB,UAAU,EAAE,GAAG;wBACf,kBAAkB,EAAE,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;qBACjE;iBACF;gBACD,OAAO,EAAE;oBACP;wBACE,EAAE,EAAE,aAAa;wBACjB,IAAI,EAAE,yBAAyB;wBAC/B,eAAe;qBAChB;oBACD;wBACE,EAAE,EAAE,eAAe;wBACnB,IAAI,EAAE,aAAa;wBACnB,eAAe;qBAChB;iBACF;aACF,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAxCY,QAAA,YAAY,gBAwCxB"}
1
+ {"version":3,"file":"well-known.js","sourceRoot":"","sources":["../../src/api/well-known.ts"],"names":[],"mappings":";;;AAAA,qCAAgC;AAGzB,MAAM,YAAY,GAAG,CAAC,GAAe,EAAU,EAAE;IACtD,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAA;IAEvB,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,CAAA;IAC7B,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QAC7C,MAAM,eAAe,GAAG,WAAW,QAAQ,EAAE,CAAA;QAE7C,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;YAChD,GAAG,CAAC,IAAI,CAAC;gBACP,UAAU,EAAE;oBACV,8BAA8B;oBAC9B,uCAAuC;iBACxC;gBACD,EAAE,EAAE,GAAG;gBACP,kBAAkB,EAAE;oBAClB;wBACE,EAAE,EAAE,GAAG,GAAG,UAAU;wBACpB,IAAI,EAAE,UAAU;wBAChB,UAAU,EAAE,GAAG;wBACf,kBAAkB,EAAE,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;qBACjE;iBACF;gBACD,OAAO,EAAE;oBACP;wBACE,EAAE,EAAE,aAAa;wBACjB,IAAI,EAAE,yBAAyB;wBAC/B,eAAe;qBAChB;oBACD;wBACE,EAAE,EAAE,eAAe;wBACnB,IAAI,EAAE,aAAa;wBACnB,eAAe;qBAChB;iBACF;aACF,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAxCY,QAAA,YAAY,gBAwCxB","sourcesContent":["import { Router } from 'express'\nimport { AppContext } from '../context'\n\nexport const createRouter = (ctx: AppContext): Router => {\n const router = Router()\n\n const did = ctx.cfg.serverDid\n if (did.startsWith('did:web:')) {\n const hostname = did.slice('did:web:'.length)\n const serviceEndpoint = `https://${hostname}`\n\n router.get('/.well-known/did.json', (_req, res) => {\n res.json({\n '@context': [\n 'https://www.w3.org/ns/did/v1',\n 'https://w3id.org/security/multikey/v1',\n ],\n id: did,\n verificationMethod: [\n {\n id: `${did}#atproto`,\n type: 'Multikey',\n controller: did,\n publicKeyMultibase: ctx.signingKey.did().replace('did:key:', ''),\n },\n ],\n service: [\n {\n id: '#bsky_notif',\n type: 'BskyNotificationService',\n serviceEndpoint,\n },\n {\n id: '#bsky_appview',\n type: 'BskyAppView',\n serviceEndpoint,\n },\n ],\n })\n })\n }\n\n return router\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 crypto, { KeyObject } from 'node:crypto'\nimport express from 'express'\nimport * as jose from 'jose'\nimport KeyEncoder from 'key-encoder'\nimport * as ui8 from 'uint8arrays'\nimport { SECP256K1_JWT_ALG, parseDidKey } from '@atproto/crypto'\nimport {\n AuthRequiredError,\n VerifySignatureWithKeyFn,\n cryptoVerifySignatureWithKey,\n parseReqNsid,\n verifyJwt as verifyServiceJwt,\n} from '@atproto/xrpc-server'\nimport {\n Code,\n DataPlaneClient,\n getKeyAsDidKey,\n isDataplaneError,\n unpackIdentityKeys,\n} from './data-plane'\nimport { GetIdentityByDidResponse } from './proto/bsky_pb'\n\ntype ReqCtx = {\n req: express.Request\n}\n\ntype StandardAuthOpts = {\n skipAudCheck?: boolean\n lxmCheck?: (method?: string) => boolean\n}\n\nexport enum RoleStatus {\n Valid,\n Invalid,\n Missing,\n}\n\ntype NullOutput = {\n credentials: {\n type: 'none'\n iss: null\n }\n}\n\ntype StandardOutput = {\n credentials: {\n type: 'standard'\n aud: string\n iss: string\n }\n}\n\ntype RoleOutput = {\n credentials: {\n type: 'role'\n admin: boolean\n }\n}\n\ntype ModServiceOutput = {\n credentials: {\n type: 'mod_service'\n aud: string\n iss: string\n }\n}\n\nconst ALLOWED_AUTH_SCOPES = new Set([\n 'com.atproto.access',\n 'com.atproto.appPass',\n 'com.atproto.appPassPrivileged',\n])\n\nexport type AuthVerifierOpts = {\n ownDid: string\n alternateAudienceDids: string[]\n modServiceDid: string\n adminPasses: string[]\n entrywayJwtPublicKey?: KeyObject\n}\n\nexport class AuthVerifier {\n public ownDid: string\n public standardAudienceDids: Set<string>\n public modServiceDid: string\n private adminPasses: Set<string>\n private entrywayJwtPublicKey?: KeyObject\n\n constructor(\n public dataplane: DataPlaneClient,\n opts: AuthVerifierOpts,\n ) {\n this.ownDid = opts.ownDid\n this.standardAudienceDids = new Set([\n opts.ownDid,\n ...opts.alternateAudienceDids,\n ])\n this.modServiceDid = opts.modServiceDid\n this.adminPasses = new Set(opts.adminPasses)\n this.entrywayJwtPublicKey = opts.entrywayJwtPublicKey\n }\n\n // verifiers (arrow fns to preserve scope)\n standardOptionalParameterized =\n (opts: StandardAuthOpts) =>\n async (ctx: ReqCtx): Promise<StandardOutput | NullOutput> => {\n // @TODO remove! basic auth + did supported just for testing.\n if (isBasicToken(ctx.req)) {\n const aud = this.ownDid\n const iss = ctx.req.headers['appview-as-did']\n if (typeof iss !== 'string' || !iss.startsWith('did:')) {\n throw new AuthRequiredError('bad issuer')\n }\n if (!this.parseRoleCreds(ctx.req).admin) {\n throw new AuthRequiredError('bad credentials')\n }\n return {\n credentials: { type: 'standard', iss, aud },\n }\n } else if (isBearerToken(ctx.req)) {\n // @NOTE temporarily accept entryway session tokens to shed load from PDS instances\n const token = bearerTokenFromReq(ctx.req)\n const header = token ? jose.decodeProtectedHeader(token) : undefined\n if (header?.typ === 'at+jwt') {\n // we should never use entryway session tokens in the case of flexible auth audiences (namely in the case of getFeed)\n if (opts.skipAudCheck) {\n throw new AuthRequiredError('Malformed token', 'InvalidToken')\n }\n return this.entrywaySession(ctx)\n }\n\n const { iss, aud } = await this.verifyServiceJwt(ctx, {\n lxmCheck: opts.lxmCheck,\n iss: null,\n aud: null,\n })\n if (!opts.skipAudCheck && !this.standardAudienceDids.has(aud)) {\n throw new AuthRequiredError(\n 'jwt audience does not match service did',\n 'BadJwtAudience',\n )\n }\n return {\n credentials: {\n type: 'standard',\n iss,\n aud,\n },\n }\n } else {\n return this.nullCreds()\n }\n }\n\n standardOptional: (ctx: ReqCtx) => Promise<StandardOutput | NullOutput> =\n this.standardOptionalParameterized({})\n\n standard = async (ctx: ReqCtx): Promise<StandardOutput> => {\n const output = await this.standardOptional(ctx)\n if (output.credentials.type === 'none') {\n throw new AuthRequiredError(undefined, 'AuthMissing')\n }\n return output as StandardOutput\n }\n\n role = (ctx: ReqCtx): RoleOutput => {\n const creds = this.parseRoleCreds(ctx.req)\n if (creds.status !== RoleStatus.Valid) {\n throw new AuthRequiredError()\n }\n return {\n credentials: {\n ...creds,\n type: 'role',\n },\n }\n }\n\n standardOrRole = async (\n ctx: ReqCtx,\n ): Promise<StandardOutput | RoleOutput> => {\n if (isBearerToken(ctx.req)) {\n return this.standard(ctx)\n } else {\n return this.role(ctx)\n }\n }\n\n optionalStandardOrRole = async (\n ctx: ReqCtx,\n ): Promise<StandardOutput | RoleOutput | NullOutput> => {\n if (isBearerToken(ctx.req)) {\n return await this.standard(ctx)\n } else {\n const creds = this.parseRoleCreds(ctx.req)\n if (creds.status === RoleStatus.Valid) {\n return {\n credentials: {\n ...creds,\n type: 'role',\n },\n }\n } else if (creds.status === RoleStatus.Missing) {\n return this.nullCreds()\n } else {\n throw new AuthRequiredError()\n }\n }\n }\n\n // @NOTE this auth verifier method is not recommended to be implemented by most appviews\n // this is a short term fix to remove proxy load from Bluesky's PDS and in line with possible\n // future plans to have the client talk directly with the appview\n entrywaySession = async (reqCtx: ReqCtx): Promise<StandardOutput> => {\n const token = bearerTokenFromReq(reqCtx.req)\n if (!token) {\n throw new AuthRequiredError(undefined, 'AuthMissing')\n }\n\n // if entryway jwt key not configured then do not parsed these tokens\n if (!this.entrywayJwtPublicKey) {\n throw new AuthRequiredError('Malformed token', 'InvalidToken')\n }\n\n const res = await jose\n .jwtVerify(token, this.entrywayJwtPublicKey)\n .catch((err) => {\n if (err?.['code'] === 'ERR_JWT_EXPIRED') {\n throw new AuthRequiredError('Token has expired', 'ExpiredToken')\n }\n throw new AuthRequiredError(\n 'Token could not be verified',\n 'InvalidToken',\n )\n })\n\n const { sub, aud, scope } = res.payload\n if (typeof sub !== 'string' || !sub.startsWith('did:')) {\n throw new AuthRequiredError('Malformed token', 'InvalidToken')\n } else if (\n typeof aud !== 'string' ||\n !aud.startsWith('did:web:') ||\n !aud.endsWith('.bsky.network')\n ) {\n throw new AuthRequiredError('Bad token aud', 'InvalidToken')\n } else if (typeof scope !== 'string' || !ALLOWED_AUTH_SCOPES.has(scope)) {\n throw new AuthRequiredError('Bad token scope', 'InvalidToken')\n }\n\n return {\n credentials: {\n type: 'standard',\n aud: this.ownDid,\n iss: sub,\n },\n }\n }\n\n modService = async (reqCtx: ReqCtx): Promise<ModServiceOutput> => {\n const { iss, aud } = await this.verifyServiceJwt(reqCtx, {\n aud: this.ownDid,\n iss: [this.modServiceDid, `${this.modServiceDid}#atproto_labeler`],\n })\n return { credentials: { type: 'mod_service', aud, iss } }\n }\n\n roleOrModService = async (\n reqCtx: ReqCtx,\n ): Promise<RoleOutput | ModServiceOutput> => {\n if (isBearerToken(reqCtx.req)) {\n return this.modService(reqCtx)\n } else {\n return this.role(reqCtx)\n }\n }\n\n parseRoleCreds(req: express.Request) {\n const parsed = parseBasicAuth(req.headers.authorization || '')\n const { Missing, Valid, Invalid } = RoleStatus\n if (!parsed) {\n return { status: Missing, admin: false, moderator: false, triage: false }\n }\n const { username, password } = parsed\n if (username === 'admin' && this.adminPasses.has(password)) {\n return { status: Valid, admin: true }\n }\n return { status: Invalid, admin: false }\n }\n\n async verifyServiceJwt(\n reqCtx: ReqCtx,\n opts: {\n iss: string[] | null\n aud: string | null\n lxmCheck?: (method?: string) => boolean\n },\n ) {\n const getSigningKey = async (\n iss: string,\n _forceRefresh: boolean, // @TODO consider propagating to dataplane\n ): Promise<string> => {\n if (opts.iss !== null && !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 let identity: GetIdentityByDidResponse\n try {\n identity = await this.dataplane.getIdentityByDid({ did })\n } catch (err) {\n if (isDataplaneError(err, Code.NotFound)) {\n throw new AuthRequiredError('identity unknown')\n }\n throw err\n }\n const keys = unpackIdentityKeys(identity.keys)\n const didKey = getKeyAsDidKey(keys, { id: keyId })\n if (!didKey) {\n throw new AuthRequiredError('missing or bad key')\n }\n return didKey\n }\n const assertLxmCheck = () => {\n const lxm = parseReqNsid(reqCtx.req)\n if (\n (opts.lxmCheck && !opts.lxmCheck(payload.lxm)) ||\n (!opts.lxmCheck && payload.lxm !== lxm)\n ) {\n throw new AuthRequiredError(\n payload.lxm !== undefined\n ? `bad jwt lexicon method (\"lxm\"). must match: ${lxm}`\n : `missing jwt lexicon method (\"lxm\"). must match: ${lxm}`,\n 'BadJwtLexiconMethod',\n )\n }\n }\n\n const jwtStr = bearerTokenFromReq(reqCtx.req)\n if (!jwtStr) {\n throw new AuthRequiredError('missing jwt', 'MissingJwt')\n }\n // if validating additional scopes, skip scope check in initial validation & follow up afterwards\n const payload = await verifyServiceJwt(\n jwtStr,\n opts.aud,\n null,\n getSigningKey,\n verifySignatureWithKey,\n )\n if (\n !payload.iss.endsWith('#atproto_labeler') ||\n payload.lxm !== undefined\n ) {\n // @TODO currently permissive of labelers who dont set lxm yet.\n // we'll allow ozone self-hosters to upgrade before removing this condition.\n assertLxmCheck()\n }\n return { iss: payload.iss, aud: payload.aud }\n }\n\n isModService(iss: string): boolean {\n return [\n this.modServiceDid,\n `${this.modServiceDid}#atproto_labeler`,\n ].includes(iss)\n }\n\n nullCreds(): NullOutput {\n return {\n credentials: {\n type: 'none',\n iss: null,\n },\n }\n }\n\n parseCreds(\n creds: StandardOutput | RoleOutput | ModServiceOutput | NullOutput,\n ) {\n const viewer =\n creds.credentials.type === 'standard' ? creds.credentials.iss : null\n const includeTakedownsAnd3pBlocks =\n (creds.credentials.type === 'role' && creds.credentials.admin) ||\n creds.credentials.type === 'mod_service' ||\n (creds.credentials.type === 'standard' &&\n this.isModService(creds.credentials.iss))\n const canPerformTakedown =\n (creds.credentials.type === 'role' && creds.credentials.admin) ||\n creds.credentials.type === 'mod_service'\n\n return {\n viewer,\n includeTakedowns: includeTakedownsAnd3pBlocks,\n include3pBlocks: includeTakedownsAnd3pBlocks,\n canPerformTakedown,\n }\n }\n}\n\n// HELPERS\n// ---------\n\nconst BEARER = 'Bearer '\nconst BASIC = 'Basic '\n\nconst isBearerToken = (req: express.Request): boolean => {\n return req.headers.authorization?.startsWith(BEARER) ?? false\n}\n\nconst isBasicToken = (req: express.Request): boolean => {\n return req.headers.authorization?.startsWith(BASIC) ?? false\n}\n\nconst bearerTokenFromReq = (req: express.Request) => {\n const header = req.headers.authorization || ''\n if (!header.startsWith(BEARER)) return null\n return header.slice(BEARER.length).trim()\n}\n\nexport const parseBasicAuth = (\n token: string,\n): { username: string; password: string } | null => {\n if (!token.startsWith(BASIC)) return null\n const b64 = token.slice(BASIC.length)\n let parsed: string[]\n try {\n parsed = ui8.toString(ui8.fromString(b64, 'base64pad'), 'utf8').split(':')\n } catch (err) {\n return null\n }\n const [username, password] = parsed\n if (!username || !password) return null\n return { username, password }\n}\n\nexport const buildBasicAuth = (username: string, password: string): string => {\n return (\n BASIC +\n ui8.toString(ui8.fromString(`${username}:${password}`, 'utf8'), 'base64pad')\n )\n}\n\nconst keyEncoder = new KeyEncoder('secp256k1')\nexport const createPublicKeyObject = (publicKeyHex: string): KeyObject => {\n const key = keyEncoder.encodePublic(publicKeyHex, 'raw', 'pem')\n return crypto.createPublicKey({ format: 'pem', key })\n}\n\nconst verifySig = (\n publicKey: Uint8Array,\n data: Uint8Array,\n sig: Uint8Array,\n) => {\n const keyEncoder = new KeyEncoder('secp256k1')\n\n const pemKey = keyEncoder.encodePublic(\n ui8.toString(publicKey, 'hex'),\n 'raw',\n 'pem',\n )\n const key = crypto.createPublicKey({ format: 'pem', key: pemKey })\n\n return crypto.verify(\n 'sha256',\n data,\n {\n key,\n dsaEncoding: 'ieee-p1363',\n },\n sig,\n )\n}\n\nexport const verifySignatureWithKey: VerifySignatureWithKeyFn = async (\n didKey: string,\n msgBytes: Uint8Array,\n sigBytes: Uint8Array,\n alg: string,\n) => {\n if (alg === SECP256K1_JWT_ALG) {\n const parsed = parseDidKey(didKey)\n if (alg !== parsed.jwtAlg) {\n throw new Error(`Expected key alg ${alg}, got ${parsed.jwtAlg}`)\n }\n\n return verifySig(parsed.keyBytes, msgBytes, sigBytes)\n }\n\n return cryptoVerifySignatureWithKey(didKey, msgBytes, sigBytes, alg)\n}\n"]}
package/dist/bsync.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bsync.js","sourceRoot":"","sources":["../src/bsync.ts"],"names":[],"mappings":";;;AAAA,iDAM4B;AAgBnB,qFArBP,cAAI,OAqBO;AAfb,2DAGiC;AACjC,yDAA+C;AAIxC,MAAM,iBAAiB,GAAG,CAC/B,IAA6B,EAChB,EAAE;IACf,MAAM,SAAS,GAAG,IAAA,qCAAsB,EAAC,IAAI,CAAC,CAAA;IAC9C,OAAO,IAAA,6BAAmB,EAAC,uBAAO,EAAE,SAAS,CAAC,CAAA;AAChD,CAAC,CAAA;AALY,QAAA,iBAAiB,qBAK7B;AAIM,MAAM,YAAY,GAAG,CAC1B,GAAY,EACZ,IAAW,EACU,EAAE;IACvB,IAAI,GAAG,YAAY,sBAAY,EAAE,CAAC;QAChC,OAAO,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,CAAA;IACnC,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AARY,QAAA,YAAY,gBAQxB;AAEM,MAAM,cAAc,GACzB,CAAC,MAAc,EAAe,EAAE,CAChC,CAAC,IAAI,EAAE,EAAE,CACT,CAAC,GAAG,EAAE,EAAE;IACN,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,MAAM,EAAE,CAAC,CAAA;IACnD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAA;AAClB,CAAC,CAAA;AANU,QAAA,cAAc,kBAMxB"}
1
+ {"version":3,"file":"bsync.js","sourceRoot":"","sources":["../src/bsync.ts"],"names":[],"mappings":";;;AAAA,iDAM4B;AAgBnB,qFArBP,cAAI,OAqBO;AAfb,2DAGiC;AACjC,yDAA+C;AAIxC,MAAM,iBAAiB,GAAG,CAC/B,IAA6B,EAChB,EAAE;IACf,MAAM,SAAS,GAAG,IAAA,qCAAsB,EAAC,IAAI,CAAC,CAAA;IAC9C,OAAO,IAAA,6BAAmB,EAAC,uBAAO,EAAE,SAAS,CAAC,CAAA;AAChD,CAAC,CAAA;AALY,QAAA,iBAAiB,qBAK7B;AAIM,MAAM,YAAY,GAAG,CAC1B,GAAY,EACZ,IAAW,EACU,EAAE;IACvB,IAAI,GAAG,YAAY,sBAAY,EAAE,CAAC;QAChC,OAAO,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,CAAA;IACnC,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AARY,QAAA,YAAY,gBAQxB;AAEM,MAAM,cAAc,GACzB,CAAC,MAAc,EAAe,EAAE,CAChC,CAAC,IAAI,EAAE,EAAE,CACT,CAAC,GAAG,EAAE,EAAE;IACN,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,MAAM,EAAE,CAAC,CAAA;IACnD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAA;AAClB,CAAC,CAAA;AANU,QAAA,cAAc,kBAMxB","sourcesContent":["import {\n Code,\n ConnectError,\n Interceptor,\n PromiseClient,\n createPromiseClient,\n} from '@connectrpc/connect'\nimport {\n ConnectTransportOptions,\n createConnectTransport,\n} from '@connectrpc/connect-node'\nimport { Service } from './proto/bsync_connect'\n\nexport type BsyncClient = PromiseClient<typeof Service>\n\nexport const createBsyncClient = (\n opts: ConnectTransportOptions,\n): BsyncClient => {\n const transport = createConnectTransport(opts)\n return createPromiseClient(Service, transport)\n}\n\nexport { Code }\n\nexport const isBsyncError = (\n err: unknown,\n code?: Code,\n): err is ConnectError => {\n if (err instanceof ConnectError) {\n return !code || err.code === code\n }\n return false\n}\n\nexport const authWithApiKey =\n (apiKey: string): Interceptor =>\n (next) =>\n (req) => {\n req.header.set('authorization', `Bearer ${apiKey}`)\n return next(req)\n }\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"read-through.js","sourceRoot":"","sources":["../../src/cache/read-through.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"read-through.js","sourceRoot":"","sources":["../../src/cache/read-through.ts"],"names":[],"mappings":"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","sourcesContent":["import { cacheLogger as log } from '../logger'\nimport { Redis } from '../redis'\n\nexport type CacheItem<T> = {\n val: T | null // null here is for negative caching\n updatedAt: number\n}\n\nexport type CacheOptions<T> = {\n staleTTL: number\n maxTTL: number\n fetchMethod: (key: string) => Promise<T | null>\n fetchManyMethod?: (keys: string[]) => Promise<Record<string, T | null>>\n}\n\nexport class ReadThroughCache<T> {\n constructor(\n public redis: Redis,\n public opts: CacheOptions<T>,\n ) {}\n\n private async _fetchMany(keys: string[]): Promise<Record<string, T | null>> {\n let result: Record<string, T | null> = {}\n if (this.opts.fetchManyMethod) {\n result = await this.opts.fetchManyMethod(keys)\n } else {\n const got = await Promise.all(keys.map((k) => this.opts.fetchMethod(k)))\n for (let i = 0; i < keys.length; i++) {\n result[keys[i]] = got[i] ?? null\n }\n }\n // ensure caching negatives\n for (const key of keys) {\n result[key] ??= null\n }\n return result\n }\n\n private async fetchAndCache(key: string): Promise<T | null> {\n const fetched = await this.opts.fetchMethod(key)\n this.set(key, fetched).catch((err) =>\n log.error({ err, key }, 'failed to set cache value'),\n )\n return fetched\n }\n\n private async fetchAndCacheMany(keys: string[]): Promise<Record<string, T>> {\n const fetched = await this._fetchMany(keys)\n this.setMany(fetched).catch((err) =>\n log.error({ err, keys }, 'failed to set cache values'),\n )\n return removeNulls(fetched)\n }\n\n async get(key: string, opts?: { revalidate?: boolean }): Promise<T | null> {\n if (opts?.revalidate) {\n return this.fetchAndCache(key)\n }\n let cached: CacheItem<T> | null\n try {\n const got = await this.redis.get(key)\n cached = got ? JSON.parse(got) : null\n } catch (err) {\n cached = null\n log.warn({ key, err }, 'failed to fetch value from cache')\n }\n if (!cached || this.isExpired(cached)) {\n return this.fetchAndCache(key)\n }\n if (this.isStale(cached)) {\n this.fetchAndCache(key).catch((err) =>\n log.warn({ key, err }, 'failed to refresh stale cache value'),\n )\n }\n return cached.val\n }\n\n async getMany(\n keys: string[],\n opts?: { revalidate?: boolean },\n ): Promise<Record<string, T>> {\n if (opts?.revalidate) {\n return this.fetchAndCacheMany(keys)\n }\n let cached: Record<string, string>\n try {\n cached = await this.redis.getMulti(keys)\n } catch (err) {\n cached = {}\n log.warn({ keys, err }, 'failed to fetch values from cache')\n }\n\n const stale: string[] = []\n const toFetch: string[] = []\n const results: Record<string, T> = {}\n for (const key of keys) {\n const val = cached[key] ? (JSON.parse(cached[key]) as CacheItem<T>) : null\n if (!val || this.isExpired(val)) {\n toFetch.push(key)\n continue\n }\n if (this.isStale(val)) {\n stale.push(key)\n }\n if (val.val) {\n results[key] = val.val\n }\n }\n const fetched = await this.fetchAndCacheMany(toFetch)\n this.fetchAndCacheMany(stale).catch((err) =>\n log.warn({ keys, err }, 'failed to refresh stale cache values'),\n )\n return {\n ...results,\n ...fetched,\n }\n }\n\n async set(key: string, val: T | null) {\n await this.setMany({ [key]: val })\n }\n\n async setMany(vals: Record<string, T | null>) {\n const items: Record<string, string> = {}\n for (const key of Object.keys(vals)) {\n items[key] = JSON.stringify({\n val: vals[key],\n updatedAt: Date.now(),\n })\n }\n await this.redis.setMulti(items, this.opts.maxTTL)\n }\n\n async clearEntry(key: string) {\n await this.redis.del(key)\n }\n\n isExpired(result: CacheItem<T>) {\n return Date.now() > result.updatedAt + this.opts.maxTTL\n }\n\n isStale(result: CacheItem<T>) {\n return Date.now() > result.updatedAt + this.opts.staleTTL\n }\n}\n\nconst removeNulls = <T>(obj: Record<string, T | null>): Record<string, T> => {\n return Object.entries(obj).reduce(\n (acc, [key, val]) => {\n if (val !== null) {\n acc[key] = val\n }\n return acc\n },\n {} as Record<string, T>,\n )\n}\n"]}