@atproto/bsky 0.0.169 → 0.0.171

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 (868) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/api/app/bsky/notification/registerPush.d.ts.map +1 -1
  3. package/dist/api/app/bsky/notification/registerPush.js +2 -1
  4. package/dist/api/app/bsky/notification/registerPush.js.map +1 -1
  5. package/dist/api/app/bsky/unspecced/getAgeAssuranceState.d.ts +4 -0
  6. package/dist/api/app/bsky/unspecced/getAgeAssuranceState.d.ts.map +1 -0
  7. package/dist/api/app/bsky/unspecced/getAgeAssuranceState.js +36 -0
  8. package/dist/api/app/bsky/unspecced/getAgeAssuranceState.js.map +1 -0
  9. package/dist/api/app/bsky/unspecced/initAgeAssurance.d.ts +4 -0
  10. package/dist/api/app/bsky/unspecced/initAgeAssurance.d.ts.map +1 -0
  11. package/dist/api/app/bsky/unspecced/initAgeAssurance.js +59 -0
  12. package/dist/api/app/bsky/unspecced/initAgeAssurance.js.map +1 -0
  13. package/dist/api/external.d.ts +4 -0
  14. package/dist/api/external.d.ts.map +1 -0
  15. package/dist/api/external.js +47 -0
  16. package/dist/api/external.js.map +1 -0
  17. package/dist/api/index.d.ts +1 -0
  18. package/dist/api/index.d.ts.map +1 -1
  19. package/dist/api/index.js +6 -1
  20. package/dist/api/index.js.map +1 -1
  21. package/dist/api/kws/api.d.ts +4 -0
  22. package/dist/api/kws/api.d.ts.map +1 -0
  23. package/dist/api/kws/api.js +60 -0
  24. package/dist/api/kws/api.js.map +1 -0
  25. package/dist/api/kws/index.d.ts +4 -0
  26. package/dist/api/kws/index.d.ts.map +1 -0
  27. package/dist/api/kws/index.js +21 -0
  28. package/dist/api/kws/index.js.map +1 -0
  29. package/dist/api/kws/types.d.ts +100 -0
  30. package/dist/api/kws/types.d.ts.map +1 -0
  31. package/dist/api/kws/types.js +29 -0
  32. package/dist/api/kws/types.js.map +1 -0
  33. package/dist/api/kws/util.d.ts +21 -0
  34. package/dist/api/kws/util.d.ts.map +1 -0
  35. package/dist/api/kws/util.js +78 -0
  36. package/dist/api/kws/util.js.map +1 -0
  37. package/dist/api/kws/webhook.d.ts +5 -0
  38. package/dist/api/kws/webhook.d.ts.map +1 -0
  39. package/dist/api/kws/webhook.js +80 -0
  40. package/dist/api/kws/webhook.js.map +1 -0
  41. package/dist/config.d.ts +12 -0
  42. package/dist/config.d.ts.map +1 -1
  43. package/dist/config.js +40 -0
  44. package/dist/config.js.map +1 -1
  45. package/dist/context.d.ts +3 -0
  46. package/dist/context.d.ts.map +1 -1
  47. package/dist/context.js +3 -0
  48. package/dist/context.js.map +1 -1
  49. package/dist/data-plane/bsync/index.d.ts.map +1 -1
  50. package/dist/data-plane/bsync/index.js +52 -33
  51. package/dist/data-plane/bsync/index.js.map +1 -1
  52. package/dist/data-plane/server/db/migrations/20250627T025331240Z-add-actor-age-assurance-columns.d.ts +4 -0
  53. package/dist/data-plane/server/db/migrations/20250627T025331240Z-add-actor-age-assurance-columns.d.ts.map +1 -0
  54. package/dist/data-plane/server/db/migrations/20250627T025331240Z-add-actor-age-assurance-columns.js +22 -0
  55. package/dist/data-plane/server/db/migrations/20250627T025331240Z-add-actor-age-assurance-columns.js.map +1 -0
  56. package/dist/data-plane/server/db/migrations/index.d.ts +1 -0
  57. package/dist/data-plane/server/db/migrations/index.d.ts.map +1 -1
  58. package/dist/data-plane/server/db/migrations/index.js +2 -0
  59. package/dist/data-plane/server/db/migrations/index.js.map +1 -1
  60. package/dist/data-plane/server/db/tables/actor.d.ts +2 -0
  61. package/dist/data-plane/server/db/tables/actor.d.ts.map +1 -1
  62. package/dist/data-plane/server/db/tables/actor.js.map +1 -1
  63. package/dist/data-plane/server/routes/profile.d.ts.map +1 -1
  64. package/dist/data-plane/server/routes/profile.js +14 -1
  65. package/dist/data-plane/server/routes/profile.js.map +1 -1
  66. package/dist/feature-gates.d.ts +2 -1
  67. package/dist/feature-gates.d.ts.map +1 -1
  68. package/dist/feature-gates.js +1 -0
  69. package/dist/feature-gates.js.map +1 -1
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/index.js +5 -0
  72. package/dist/index.js.map +1 -1
  73. package/dist/kws.d.ts +16 -0
  74. package/dist/kws.d.ts.map +1 -0
  75. package/dist/kws.js +86 -0
  76. package/dist/kws.js.map +1 -0
  77. package/dist/lexicon/index.d.ts +186 -207
  78. package/dist/lexicon/index.d.ts.map +1 -1
  79. package/dist/lexicon/index.js +8 -0
  80. package/dist/lexicon/index.js.map +1 -1
  81. package/dist/lexicon/lexicons.d.ts +234 -0
  82. package/dist/lexicon/lexicons.d.ts.map +1 -1
  83. package/dist/lexicon/lexicons.js +119 -0
  84. package/dist/lexicon/lexicons.js.map +1 -1
  85. package/dist/lexicon/types/app/bsky/actor/getPreferences.d.ts +3 -18
  86. package/dist/lexicon/types/app/bsky/actor/getPreferences.d.ts.map +1 -1
  87. package/dist/lexicon/types/app/bsky/actor/getPreferences.js.map +1 -1
  88. package/dist/lexicon/types/app/bsky/actor/getProfile.d.ts +4 -18
  89. package/dist/lexicon/types/app/bsky/actor/getProfile.d.ts.map +1 -1
  90. package/dist/lexicon/types/app/bsky/actor/getProfile.js.map +1 -1
  91. package/dist/lexicon/types/app/bsky/actor/getProfiles.d.ts +4 -18
  92. package/dist/lexicon/types/app/bsky/actor/getProfiles.d.ts.map +1 -1
  93. package/dist/lexicon/types/app/bsky/actor/getProfiles.js.map +1 -1
  94. package/dist/lexicon/types/app/bsky/actor/getSuggestions.d.ts +4 -18
  95. package/dist/lexicon/types/app/bsky/actor/getSuggestions.d.ts.map +1 -1
  96. package/dist/lexicon/types/app/bsky/actor/getSuggestions.js.map +1 -1
  97. package/dist/lexicon/types/app/bsky/actor/putPreferences.d.ts +1 -16
  98. package/dist/lexicon/types/app/bsky/actor/putPreferences.d.ts.map +1 -1
  99. package/dist/lexicon/types/app/bsky/actor/putPreferences.js.map +1 -1
  100. package/dist/lexicon/types/app/bsky/actor/searchActors.d.ts +4 -18
  101. package/dist/lexicon/types/app/bsky/actor/searchActors.d.ts.map +1 -1
  102. package/dist/lexicon/types/app/bsky/actor/searchActors.js.map +1 -1
  103. package/dist/lexicon/types/app/bsky/actor/searchActorsTypeahead.d.ts +4 -18
  104. package/dist/lexicon/types/app/bsky/actor/searchActorsTypeahead.d.ts.map +1 -1
  105. package/dist/lexicon/types/app/bsky/actor/searchActorsTypeahead.js.map +1 -1
  106. package/dist/lexicon/types/app/bsky/feed/describeFeedGenerator.d.ts +3 -15
  107. package/dist/lexicon/types/app/bsky/feed/describeFeedGenerator.d.ts.map +1 -1
  108. package/dist/lexicon/types/app/bsky/feed/describeFeedGenerator.js.map +1 -1
  109. package/dist/lexicon/types/app/bsky/feed/getActorFeeds.d.ts +4 -18
  110. package/dist/lexicon/types/app/bsky/feed/getActorFeeds.d.ts.map +1 -1
  111. package/dist/lexicon/types/app/bsky/feed/getActorFeeds.js.map +1 -1
  112. package/dist/lexicon/types/app/bsky/feed/getActorLikes.d.ts +4 -18
  113. package/dist/lexicon/types/app/bsky/feed/getActorLikes.d.ts.map +1 -1
  114. package/dist/lexicon/types/app/bsky/feed/getActorLikes.js.map +1 -1
  115. package/dist/lexicon/types/app/bsky/feed/getAuthorFeed.d.ts +4 -18
  116. package/dist/lexicon/types/app/bsky/feed/getAuthorFeed.d.ts.map +1 -1
  117. package/dist/lexicon/types/app/bsky/feed/getAuthorFeed.js.map +1 -1
  118. package/dist/lexicon/types/app/bsky/feed/getFeed.d.ts +4 -18
  119. package/dist/lexicon/types/app/bsky/feed/getFeed.d.ts.map +1 -1
  120. package/dist/lexicon/types/app/bsky/feed/getFeed.js.map +1 -1
  121. package/dist/lexicon/types/app/bsky/feed/getFeedGenerator.d.ts +4 -18
  122. package/dist/lexicon/types/app/bsky/feed/getFeedGenerator.d.ts.map +1 -1
  123. package/dist/lexicon/types/app/bsky/feed/getFeedGenerator.js.map +1 -1
  124. package/dist/lexicon/types/app/bsky/feed/getFeedGenerators.d.ts +4 -18
  125. package/dist/lexicon/types/app/bsky/feed/getFeedGenerators.d.ts.map +1 -1
  126. package/dist/lexicon/types/app/bsky/feed/getFeedGenerators.js.map +1 -1
  127. package/dist/lexicon/types/app/bsky/feed/getFeedSkeleton.d.ts +4 -18
  128. package/dist/lexicon/types/app/bsky/feed/getFeedSkeleton.d.ts.map +1 -1
  129. package/dist/lexicon/types/app/bsky/feed/getFeedSkeleton.js.map +1 -1
  130. package/dist/lexicon/types/app/bsky/feed/getLikes.d.ts +4 -15
  131. package/dist/lexicon/types/app/bsky/feed/getLikes.d.ts.map +1 -1
  132. package/dist/lexicon/types/app/bsky/feed/getLikes.js.map +1 -1
  133. package/dist/lexicon/types/app/bsky/feed/getListFeed.d.ts +4 -18
  134. package/dist/lexicon/types/app/bsky/feed/getListFeed.d.ts.map +1 -1
  135. package/dist/lexicon/types/app/bsky/feed/getListFeed.js.map +1 -1
  136. package/dist/lexicon/types/app/bsky/feed/getPostThread.d.ts +4 -18
  137. package/dist/lexicon/types/app/bsky/feed/getPostThread.d.ts.map +1 -1
  138. package/dist/lexicon/types/app/bsky/feed/getPostThread.js.map +1 -1
  139. package/dist/lexicon/types/app/bsky/feed/getPosts.d.ts +4 -18
  140. package/dist/lexicon/types/app/bsky/feed/getPosts.d.ts.map +1 -1
  141. package/dist/lexicon/types/app/bsky/feed/getPosts.js.map +1 -1
  142. package/dist/lexicon/types/app/bsky/feed/getQuotes.d.ts +4 -18
  143. package/dist/lexicon/types/app/bsky/feed/getQuotes.d.ts.map +1 -1
  144. package/dist/lexicon/types/app/bsky/feed/getQuotes.js.map +1 -1
  145. package/dist/lexicon/types/app/bsky/feed/getRepostedBy.d.ts +4 -18
  146. package/dist/lexicon/types/app/bsky/feed/getRepostedBy.d.ts.map +1 -1
  147. package/dist/lexicon/types/app/bsky/feed/getRepostedBy.js.map +1 -1
  148. package/dist/lexicon/types/app/bsky/feed/getSuggestedFeeds.d.ts +4 -18
  149. package/dist/lexicon/types/app/bsky/feed/getSuggestedFeeds.d.ts.map +1 -1
  150. package/dist/lexicon/types/app/bsky/feed/getSuggestedFeeds.js.map +1 -1
  151. package/dist/lexicon/types/app/bsky/feed/getTimeline.d.ts +4 -18
  152. package/dist/lexicon/types/app/bsky/feed/getTimeline.d.ts.map +1 -1
  153. package/dist/lexicon/types/app/bsky/feed/getTimeline.js.map +1 -1
  154. package/dist/lexicon/types/app/bsky/feed/searchPosts.d.ts +4 -18
  155. package/dist/lexicon/types/app/bsky/feed/searchPosts.d.ts.map +1 -1
  156. package/dist/lexicon/types/app/bsky/feed/searchPosts.js.map +1 -1
  157. package/dist/lexicon/types/app/bsky/feed/sendInteractions.d.ts +2 -17
  158. package/dist/lexicon/types/app/bsky/feed/sendInteractions.d.ts.map +1 -1
  159. package/dist/lexicon/types/app/bsky/feed/sendInteractions.js.map +1 -1
  160. package/dist/lexicon/types/app/bsky/graph/getActorStarterPacks.d.ts +4 -18
  161. package/dist/lexicon/types/app/bsky/graph/getActorStarterPacks.d.ts.map +1 -1
  162. package/dist/lexicon/types/app/bsky/graph/getActorStarterPacks.js.map +1 -1
  163. package/dist/lexicon/types/app/bsky/graph/getBlocks.d.ts +4 -18
  164. package/dist/lexicon/types/app/bsky/graph/getBlocks.d.ts.map +1 -1
  165. package/dist/lexicon/types/app/bsky/graph/getBlocks.js.map +1 -1
  166. package/dist/lexicon/types/app/bsky/graph/getFollowers.d.ts +4 -18
  167. package/dist/lexicon/types/app/bsky/graph/getFollowers.d.ts.map +1 -1
  168. package/dist/lexicon/types/app/bsky/graph/getFollowers.js.map +1 -1
  169. package/dist/lexicon/types/app/bsky/graph/getFollows.d.ts +4 -18
  170. package/dist/lexicon/types/app/bsky/graph/getFollows.d.ts.map +1 -1
  171. package/dist/lexicon/types/app/bsky/graph/getFollows.js.map +1 -1
  172. package/dist/lexicon/types/app/bsky/graph/getKnownFollowers.d.ts +4 -18
  173. package/dist/lexicon/types/app/bsky/graph/getKnownFollowers.d.ts.map +1 -1
  174. package/dist/lexicon/types/app/bsky/graph/getKnownFollowers.js.map +1 -1
  175. package/dist/lexicon/types/app/bsky/graph/getList.d.ts +4 -18
  176. package/dist/lexicon/types/app/bsky/graph/getList.d.ts.map +1 -1
  177. package/dist/lexicon/types/app/bsky/graph/getList.js.map +1 -1
  178. package/dist/lexicon/types/app/bsky/graph/getListBlocks.d.ts +4 -18
  179. package/dist/lexicon/types/app/bsky/graph/getListBlocks.d.ts.map +1 -1
  180. package/dist/lexicon/types/app/bsky/graph/getListBlocks.js.map +1 -1
  181. package/dist/lexicon/types/app/bsky/graph/getListMutes.d.ts +4 -18
  182. package/dist/lexicon/types/app/bsky/graph/getListMutes.d.ts.map +1 -1
  183. package/dist/lexicon/types/app/bsky/graph/getListMutes.js.map +1 -1
  184. package/dist/lexicon/types/app/bsky/graph/getLists.d.ts +4 -18
  185. package/dist/lexicon/types/app/bsky/graph/getLists.d.ts.map +1 -1
  186. package/dist/lexicon/types/app/bsky/graph/getLists.js.map +1 -1
  187. package/dist/lexicon/types/app/bsky/graph/getMutes.d.ts +4 -18
  188. package/dist/lexicon/types/app/bsky/graph/getMutes.d.ts.map +1 -1
  189. package/dist/lexicon/types/app/bsky/graph/getMutes.js.map +1 -1
  190. package/dist/lexicon/types/app/bsky/graph/getRelationships.d.ts +4 -18
  191. package/dist/lexicon/types/app/bsky/graph/getRelationships.d.ts.map +1 -1
  192. package/dist/lexicon/types/app/bsky/graph/getRelationships.js.map +1 -1
  193. package/dist/lexicon/types/app/bsky/graph/getStarterPack.d.ts +4 -18
  194. package/dist/lexicon/types/app/bsky/graph/getStarterPack.d.ts.map +1 -1
  195. package/dist/lexicon/types/app/bsky/graph/getStarterPack.js.map +1 -1
  196. package/dist/lexicon/types/app/bsky/graph/getStarterPacks.d.ts +4 -18
  197. package/dist/lexicon/types/app/bsky/graph/getStarterPacks.d.ts.map +1 -1
  198. package/dist/lexicon/types/app/bsky/graph/getStarterPacks.js.map +1 -1
  199. package/dist/lexicon/types/app/bsky/graph/getSuggestedFollowsByActor.d.ts +4 -18
  200. package/dist/lexicon/types/app/bsky/graph/getSuggestedFollowsByActor.d.ts.map +1 -1
  201. package/dist/lexicon/types/app/bsky/graph/getSuggestedFollowsByActor.js.map +1 -1
  202. package/dist/lexicon/types/app/bsky/graph/muteActor.d.ts +1 -16
  203. package/dist/lexicon/types/app/bsky/graph/muteActor.d.ts.map +1 -1
  204. package/dist/lexicon/types/app/bsky/graph/muteActor.js.map +1 -1
  205. package/dist/lexicon/types/app/bsky/graph/muteActorList.d.ts +1 -16
  206. package/dist/lexicon/types/app/bsky/graph/muteActorList.d.ts.map +1 -1
  207. package/dist/lexicon/types/app/bsky/graph/muteActorList.js.map +1 -1
  208. package/dist/lexicon/types/app/bsky/graph/muteThread.d.ts +1 -16
  209. package/dist/lexicon/types/app/bsky/graph/muteThread.d.ts.map +1 -1
  210. package/dist/lexicon/types/app/bsky/graph/muteThread.js.map +1 -1
  211. package/dist/lexicon/types/app/bsky/graph/searchStarterPacks.d.ts +4 -18
  212. package/dist/lexicon/types/app/bsky/graph/searchStarterPacks.d.ts.map +1 -1
  213. package/dist/lexicon/types/app/bsky/graph/searchStarterPacks.js.map +1 -1
  214. package/dist/lexicon/types/app/bsky/graph/unmuteActor.d.ts +1 -16
  215. package/dist/lexicon/types/app/bsky/graph/unmuteActor.d.ts.map +1 -1
  216. package/dist/lexicon/types/app/bsky/graph/unmuteActor.js.map +1 -1
  217. package/dist/lexicon/types/app/bsky/graph/unmuteActorList.d.ts +1 -16
  218. package/dist/lexicon/types/app/bsky/graph/unmuteActorList.d.ts.map +1 -1
  219. package/dist/lexicon/types/app/bsky/graph/unmuteActorList.js.map +1 -1
  220. package/dist/lexicon/types/app/bsky/graph/unmuteThread.d.ts +1 -16
  221. package/dist/lexicon/types/app/bsky/graph/unmuteThread.d.ts.map +1 -1
  222. package/dist/lexicon/types/app/bsky/graph/unmuteThread.js.map +1 -1
  223. package/dist/lexicon/types/app/bsky/labeler/getServices.d.ts +4 -18
  224. package/dist/lexicon/types/app/bsky/labeler/getServices.d.ts.map +1 -1
  225. package/dist/lexicon/types/app/bsky/labeler/getServices.js.map +1 -1
  226. package/dist/lexicon/types/app/bsky/notification/getPreferences.d.ts +3 -18
  227. package/dist/lexicon/types/app/bsky/notification/getPreferences.d.ts.map +1 -1
  228. package/dist/lexicon/types/app/bsky/notification/getPreferences.js.map +1 -1
  229. package/dist/lexicon/types/app/bsky/notification/getUnreadCount.d.ts +4 -18
  230. package/dist/lexicon/types/app/bsky/notification/getUnreadCount.d.ts.map +1 -1
  231. package/dist/lexicon/types/app/bsky/notification/getUnreadCount.js.map +1 -1
  232. package/dist/lexicon/types/app/bsky/notification/listActivitySubscriptions.d.ts +4 -18
  233. package/dist/lexicon/types/app/bsky/notification/listActivitySubscriptions.d.ts.map +1 -1
  234. package/dist/lexicon/types/app/bsky/notification/listActivitySubscriptions.js.map +1 -1
  235. package/dist/lexicon/types/app/bsky/notification/listNotifications.d.ts +4 -15
  236. package/dist/lexicon/types/app/bsky/notification/listNotifications.d.ts.map +1 -1
  237. package/dist/lexicon/types/app/bsky/notification/listNotifications.js.map +1 -1
  238. package/dist/lexicon/types/app/bsky/notification/putActivitySubscription.d.ts +2 -17
  239. package/dist/lexicon/types/app/bsky/notification/putActivitySubscription.d.ts.map +1 -1
  240. package/dist/lexicon/types/app/bsky/notification/putActivitySubscription.js.map +1 -1
  241. package/dist/lexicon/types/app/bsky/notification/putPreferences.d.ts +1 -16
  242. package/dist/lexicon/types/app/bsky/notification/putPreferences.d.ts.map +1 -1
  243. package/dist/lexicon/types/app/bsky/notification/putPreferences.js.map +1 -1
  244. package/dist/lexicon/types/app/bsky/notification/putPreferencesV2.d.ts +2 -17
  245. package/dist/lexicon/types/app/bsky/notification/putPreferencesV2.d.ts.map +1 -1
  246. package/dist/lexicon/types/app/bsky/notification/putPreferencesV2.js.map +1 -1
  247. package/dist/lexicon/types/app/bsky/notification/registerPush.d.ts +3 -16
  248. package/dist/lexicon/types/app/bsky/notification/registerPush.d.ts.map +1 -1
  249. package/dist/lexicon/types/app/bsky/notification/registerPush.js.map +1 -1
  250. package/dist/lexicon/types/app/bsky/notification/updateSeen.d.ts +1 -16
  251. package/dist/lexicon/types/app/bsky/notification/updateSeen.d.ts.map +1 -1
  252. package/dist/lexicon/types/app/bsky/notification/updateSeen.js.map +1 -1
  253. package/dist/lexicon/types/app/bsky/unspecced/defs.d.ts +32 -0
  254. package/dist/lexicon/types/app/bsky/unspecced/defs.d.ts.map +1 -1
  255. package/dist/lexicon/types/app/bsky/unspecced/defs.js +18 -0
  256. package/dist/lexicon/types/app/bsky/unspecced/defs.js.map +1 -1
  257. package/dist/lexicon/types/app/bsky/unspecced/getAgeAssuranceState.d.ts +18 -0
  258. package/dist/lexicon/types/app/bsky/unspecced/getAgeAssuranceState.d.ts.map +1 -0
  259. package/dist/lexicon/types/app/bsky/unspecced/getAgeAssuranceState.js +7 -0
  260. package/dist/lexicon/types/app/bsky/unspecced/getAgeAssuranceState.js.map +1 -0
  261. package/dist/lexicon/types/app/bsky/unspecced/getConfig.d.ts +3 -15
  262. package/dist/lexicon/types/app/bsky/unspecced/getConfig.d.ts.map +1 -1
  263. package/dist/lexicon/types/app/bsky/unspecced/getConfig.js.map +1 -1
  264. package/dist/lexicon/types/app/bsky/unspecced/getPopularFeedGenerators.d.ts +4 -18
  265. package/dist/lexicon/types/app/bsky/unspecced/getPopularFeedGenerators.d.ts.map +1 -1
  266. package/dist/lexicon/types/app/bsky/unspecced/getPopularFeedGenerators.js.map +1 -1
  267. package/dist/lexicon/types/app/bsky/unspecced/getPostThreadOtherV2.d.ts +4 -15
  268. package/dist/lexicon/types/app/bsky/unspecced/getPostThreadOtherV2.d.ts.map +1 -1
  269. package/dist/lexicon/types/app/bsky/unspecced/getPostThreadOtherV2.js.map +1 -1
  270. package/dist/lexicon/types/app/bsky/unspecced/getPostThreadV2.d.ts +4 -15
  271. package/dist/lexicon/types/app/bsky/unspecced/getPostThreadV2.d.ts.map +1 -1
  272. package/dist/lexicon/types/app/bsky/unspecced/getPostThreadV2.js.map +1 -1
  273. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedFeeds.d.ts +4 -18
  274. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedFeeds.d.ts.map +1 -1
  275. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedFeeds.js.map +1 -1
  276. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedFeedsSkeleton.d.ts +4 -18
  277. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedFeedsSkeleton.d.ts.map +1 -1
  278. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedFeedsSkeleton.js.map +1 -1
  279. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedStarterPacks.d.ts +4 -18
  280. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedStarterPacks.d.ts.map +1 -1
  281. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedStarterPacks.js.map +1 -1
  282. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedStarterPacksSkeleton.d.ts +4 -18
  283. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedStarterPacksSkeleton.d.ts.map +1 -1
  284. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedStarterPacksSkeleton.js.map +1 -1
  285. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedUsers.d.ts +4 -18
  286. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedUsers.d.ts.map +1 -1
  287. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedUsers.js.map +1 -1
  288. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedUsersSkeleton.d.ts +4 -18
  289. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedUsersSkeleton.d.ts.map +1 -1
  290. package/dist/lexicon/types/app/bsky/unspecced/getSuggestedUsersSkeleton.js.map +1 -1
  291. package/dist/lexicon/types/app/bsky/unspecced/getSuggestionsSkeleton.d.ts +4 -18
  292. package/dist/lexicon/types/app/bsky/unspecced/getSuggestionsSkeleton.d.ts.map +1 -1
  293. package/dist/lexicon/types/app/bsky/unspecced/getSuggestionsSkeleton.js.map +1 -1
  294. package/dist/lexicon/types/app/bsky/unspecced/getTaggedSuggestions.d.ts +3 -15
  295. package/dist/lexicon/types/app/bsky/unspecced/getTaggedSuggestions.d.ts.map +1 -1
  296. package/dist/lexicon/types/app/bsky/unspecced/getTaggedSuggestions.js.map +1 -1
  297. package/dist/lexicon/types/app/bsky/unspecced/getTrendingTopics.d.ts +4 -18
  298. package/dist/lexicon/types/app/bsky/unspecced/getTrendingTopics.d.ts.map +1 -1
  299. package/dist/lexicon/types/app/bsky/unspecced/getTrendingTopics.js.map +1 -1
  300. package/dist/lexicon/types/app/bsky/unspecced/getTrends.d.ts +4 -18
  301. package/dist/lexicon/types/app/bsky/unspecced/getTrends.d.ts.map +1 -1
  302. package/dist/lexicon/types/app/bsky/unspecced/getTrends.js.map +1 -1
  303. package/dist/lexicon/types/app/bsky/unspecced/getTrendsSkeleton.d.ts +4 -18
  304. package/dist/lexicon/types/app/bsky/unspecced/getTrendsSkeleton.d.ts.map +1 -1
  305. package/dist/lexicon/types/app/bsky/unspecced/getTrendsSkeleton.js.map +1 -1
  306. package/dist/lexicon/types/app/bsky/unspecced/initAgeAssurance.d.ts +28 -0
  307. package/dist/lexicon/types/app/bsky/unspecced/initAgeAssurance.d.ts.map +1 -0
  308. package/dist/lexicon/types/app/bsky/unspecced/initAgeAssurance.js +7 -0
  309. package/dist/lexicon/types/app/bsky/unspecced/initAgeAssurance.js.map +1 -0
  310. package/dist/lexicon/types/app/bsky/unspecced/searchActorsSkeleton.d.ts +4 -18
  311. package/dist/lexicon/types/app/bsky/unspecced/searchActorsSkeleton.d.ts.map +1 -1
  312. package/dist/lexicon/types/app/bsky/unspecced/searchActorsSkeleton.js.map +1 -1
  313. package/dist/lexicon/types/app/bsky/unspecced/searchPostsSkeleton.d.ts +4 -18
  314. package/dist/lexicon/types/app/bsky/unspecced/searchPostsSkeleton.d.ts.map +1 -1
  315. package/dist/lexicon/types/app/bsky/unspecced/searchPostsSkeleton.js.map +1 -1
  316. package/dist/lexicon/types/app/bsky/unspecced/searchStarterPacksSkeleton.d.ts +4 -18
  317. package/dist/lexicon/types/app/bsky/unspecced/searchStarterPacksSkeleton.d.ts.map +1 -1
  318. package/dist/lexicon/types/app/bsky/unspecced/searchStarterPacksSkeleton.js.map +1 -1
  319. package/dist/lexicon/types/app/bsky/video/getJobStatus.d.ts +4 -18
  320. package/dist/lexicon/types/app/bsky/video/getJobStatus.d.ts.map +1 -1
  321. package/dist/lexicon/types/app/bsky/video/getJobStatus.js.map +1 -1
  322. package/dist/lexicon/types/app/bsky/video/getUploadLimits.d.ts +3 -18
  323. package/dist/lexicon/types/app/bsky/video/getUploadLimits.d.ts.map +1 -1
  324. package/dist/lexicon/types/app/bsky/video/getUploadLimits.js.map +1 -1
  325. package/dist/lexicon/types/app/bsky/video/uploadVideo.d.ts +2 -14
  326. package/dist/lexicon/types/app/bsky/video/uploadVideo.d.ts.map +1 -1
  327. package/dist/lexicon/types/app/bsky/video/uploadVideo.js.map +1 -1
  328. package/dist/lexicon/types/chat/bsky/actor/deleteAccount.d.ts +3 -18
  329. package/dist/lexicon/types/chat/bsky/actor/deleteAccount.d.ts.map +1 -1
  330. package/dist/lexicon/types/chat/bsky/actor/deleteAccount.js.map +1 -1
  331. package/dist/lexicon/types/chat/bsky/actor/exportAccountData.d.ts +3 -15
  332. package/dist/lexicon/types/chat/bsky/actor/exportAccountData.d.ts.map +1 -1
  333. package/dist/lexicon/types/chat/bsky/actor/exportAccountData.js.map +1 -1
  334. package/dist/lexicon/types/chat/bsky/convo/acceptConvo.d.ts +2 -17
  335. package/dist/lexicon/types/chat/bsky/convo/acceptConvo.d.ts.map +1 -1
  336. package/dist/lexicon/types/chat/bsky/convo/acceptConvo.js.map +1 -1
  337. package/dist/lexicon/types/chat/bsky/convo/addReaction.d.ts +2 -17
  338. package/dist/lexicon/types/chat/bsky/convo/addReaction.d.ts.map +1 -1
  339. package/dist/lexicon/types/chat/bsky/convo/addReaction.js.map +1 -1
  340. package/dist/lexicon/types/chat/bsky/convo/deleteMessageForSelf.d.ts +2 -17
  341. package/dist/lexicon/types/chat/bsky/convo/deleteMessageForSelf.d.ts.map +1 -1
  342. package/dist/lexicon/types/chat/bsky/convo/deleteMessageForSelf.js.map +1 -1
  343. package/dist/lexicon/types/chat/bsky/convo/getConvo.d.ts +4 -18
  344. package/dist/lexicon/types/chat/bsky/convo/getConvo.d.ts.map +1 -1
  345. package/dist/lexicon/types/chat/bsky/convo/getConvo.js.map +1 -1
  346. package/dist/lexicon/types/chat/bsky/convo/getConvoAvailability.d.ts +4 -18
  347. package/dist/lexicon/types/chat/bsky/convo/getConvoAvailability.d.ts.map +1 -1
  348. package/dist/lexicon/types/chat/bsky/convo/getConvoAvailability.js.map +1 -1
  349. package/dist/lexicon/types/chat/bsky/convo/getConvoForMembers.d.ts +4 -18
  350. package/dist/lexicon/types/chat/bsky/convo/getConvoForMembers.d.ts.map +1 -1
  351. package/dist/lexicon/types/chat/bsky/convo/getConvoForMembers.js.map +1 -1
  352. package/dist/lexicon/types/chat/bsky/convo/getLog.d.ts +4 -18
  353. package/dist/lexicon/types/chat/bsky/convo/getLog.d.ts.map +1 -1
  354. package/dist/lexicon/types/chat/bsky/convo/getLog.js.map +1 -1
  355. package/dist/lexicon/types/chat/bsky/convo/getMessages.d.ts +4 -18
  356. package/dist/lexicon/types/chat/bsky/convo/getMessages.d.ts.map +1 -1
  357. package/dist/lexicon/types/chat/bsky/convo/getMessages.js.map +1 -1
  358. package/dist/lexicon/types/chat/bsky/convo/leaveConvo.d.ts +2 -17
  359. package/dist/lexicon/types/chat/bsky/convo/leaveConvo.d.ts.map +1 -1
  360. package/dist/lexicon/types/chat/bsky/convo/leaveConvo.js.map +1 -1
  361. package/dist/lexicon/types/chat/bsky/convo/listConvos.d.ts +4 -18
  362. package/dist/lexicon/types/chat/bsky/convo/listConvos.d.ts.map +1 -1
  363. package/dist/lexicon/types/chat/bsky/convo/listConvos.js.map +1 -1
  364. package/dist/lexicon/types/chat/bsky/convo/muteConvo.d.ts +2 -17
  365. package/dist/lexicon/types/chat/bsky/convo/muteConvo.d.ts.map +1 -1
  366. package/dist/lexicon/types/chat/bsky/convo/muteConvo.js.map +1 -1
  367. package/dist/lexicon/types/chat/bsky/convo/removeReaction.d.ts +2 -17
  368. package/dist/lexicon/types/chat/bsky/convo/removeReaction.d.ts.map +1 -1
  369. package/dist/lexicon/types/chat/bsky/convo/removeReaction.js.map +1 -1
  370. package/dist/lexicon/types/chat/bsky/convo/sendMessage.d.ts +2 -17
  371. package/dist/lexicon/types/chat/bsky/convo/sendMessage.d.ts.map +1 -1
  372. package/dist/lexicon/types/chat/bsky/convo/sendMessage.js.map +1 -1
  373. package/dist/lexicon/types/chat/bsky/convo/sendMessageBatch.d.ts +2 -14
  374. package/dist/lexicon/types/chat/bsky/convo/sendMessageBatch.d.ts.map +1 -1
  375. package/dist/lexicon/types/chat/bsky/convo/sendMessageBatch.js.map +1 -1
  376. package/dist/lexicon/types/chat/bsky/convo/unmuteConvo.d.ts +2 -17
  377. package/dist/lexicon/types/chat/bsky/convo/unmuteConvo.d.ts.map +1 -1
  378. package/dist/lexicon/types/chat/bsky/convo/unmuteConvo.js.map +1 -1
  379. package/dist/lexicon/types/chat/bsky/convo/updateAllRead.d.ts +2 -17
  380. package/dist/lexicon/types/chat/bsky/convo/updateAllRead.d.ts.map +1 -1
  381. package/dist/lexicon/types/chat/bsky/convo/updateAllRead.js.map +1 -1
  382. package/dist/lexicon/types/chat/bsky/convo/updateRead.d.ts +2 -17
  383. package/dist/lexicon/types/chat/bsky/convo/updateRead.d.ts.map +1 -1
  384. package/dist/lexicon/types/chat/bsky/convo/updateRead.js.map +1 -1
  385. package/dist/lexicon/types/chat/bsky/moderation/getActorMetadata.d.ts +4 -15
  386. package/dist/lexicon/types/chat/bsky/moderation/getActorMetadata.d.ts.map +1 -1
  387. package/dist/lexicon/types/chat/bsky/moderation/getActorMetadata.js.map +1 -1
  388. package/dist/lexicon/types/chat/bsky/moderation/getMessageContext.d.ts +4 -18
  389. package/dist/lexicon/types/chat/bsky/moderation/getMessageContext.d.ts.map +1 -1
  390. package/dist/lexicon/types/chat/bsky/moderation/getMessageContext.js.map +1 -1
  391. package/dist/lexicon/types/chat/bsky/moderation/updateActorAccess.d.ts +1 -16
  392. package/dist/lexicon/types/chat/bsky/moderation/updateActorAccess.d.ts.map +1 -1
  393. package/dist/lexicon/types/chat/bsky/moderation/updateActorAccess.js.map +1 -1
  394. package/dist/lexicon/types/com/atproto/admin/deleteAccount.d.ts +1 -16
  395. package/dist/lexicon/types/com/atproto/admin/deleteAccount.d.ts.map +1 -1
  396. package/dist/lexicon/types/com/atproto/admin/deleteAccount.js.map +1 -1
  397. package/dist/lexicon/types/com/atproto/admin/disableAccountInvites.d.ts +1 -16
  398. package/dist/lexicon/types/com/atproto/admin/disableAccountInvites.d.ts.map +1 -1
  399. package/dist/lexicon/types/com/atproto/admin/disableAccountInvites.js.map +1 -1
  400. package/dist/lexicon/types/com/atproto/admin/disableInviteCodes.d.ts +1 -16
  401. package/dist/lexicon/types/com/atproto/admin/disableInviteCodes.d.ts.map +1 -1
  402. package/dist/lexicon/types/com/atproto/admin/disableInviteCodes.js.map +1 -1
  403. package/dist/lexicon/types/com/atproto/admin/enableAccountInvites.d.ts +1 -16
  404. package/dist/lexicon/types/com/atproto/admin/enableAccountInvites.d.ts.map +1 -1
  405. package/dist/lexicon/types/com/atproto/admin/enableAccountInvites.js.map +1 -1
  406. package/dist/lexicon/types/com/atproto/admin/getAccountInfo.d.ts +4 -18
  407. package/dist/lexicon/types/com/atproto/admin/getAccountInfo.d.ts.map +1 -1
  408. package/dist/lexicon/types/com/atproto/admin/getAccountInfo.js.map +1 -1
  409. package/dist/lexicon/types/com/atproto/admin/getAccountInfos.d.ts +4 -18
  410. package/dist/lexicon/types/com/atproto/admin/getAccountInfos.d.ts.map +1 -1
  411. package/dist/lexicon/types/com/atproto/admin/getAccountInfos.js.map +1 -1
  412. package/dist/lexicon/types/com/atproto/admin/getInviteCodes.d.ts +4 -18
  413. package/dist/lexicon/types/com/atproto/admin/getInviteCodes.d.ts.map +1 -1
  414. package/dist/lexicon/types/com/atproto/admin/getInviteCodes.js.map +1 -1
  415. package/dist/lexicon/types/com/atproto/admin/getSubjectStatus.d.ts +4 -18
  416. package/dist/lexicon/types/com/atproto/admin/getSubjectStatus.d.ts.map +1 -1
  417. package/dist/lexicon/types/com/atproto/admin/getSubjectStatus.js.map +1 -1
  418. package/dist/lexicon/types/com/atproto/admin/searchAccounts.d.ts +4 -18
  419. package/dist/lexicon/types/com/atproto/admin/searchAccounts.d.ts.map +1 -1
  420. package/dist/lexicon/types/com/atproto/admin/searchAccounts.js.map +1 -1
  421. package/dist/lexicon/types/com/atproto/admin/sendEmail.d.ts +2 -17
  422. package/dist/lexicon/types/com/atproto/admin/sendEmail.d.ts.map +1 -1
  423. package/dist/lexicon/types/com/atproto/admin/sendEmail.js.map +1 -1
  424. package/dist/lexicon/types/com/atproto/admin/updateAccountEmail.d.ts +1 -16
  425. package/dist/lexicon/types/com/atproto/admin/updateAccountEmail.d.ts.map +1 -1
  426. package/dist/lexicon/types/com/atproto/admin/updateAccountEmail.js.map +1 -1
  427. package/dist/lexicon/types/com/atproto/admin/updateAccountHandle.d.ts +1 -16
  428. package/dist/lexicon/types/com/atproto/admin/updateAccountHandle.d.ts.map +1 -1
  429. package/dist/lexicon/types/com/atproto/admin/updateAccountHandle.js.map +1 -1
  430. package/dist/lexicon/types/com/atproto/admin/updateAccountPassword.d.ts +1 -16
  431. package/dist/lexicon/types/com/atproto/admin/updateAccountPassword.d.ts.map +1 -1
  432. package/dist/lexicon/types/com/atproto/admin/updateAccountPassword.js.map +1 -1
  433. package/dist/lexicon/types/com/atproto/admin/updateAccountSigningKey.d.ts +1 -16
  434. package/dist/lexicon/types/com/atproto/admin/updateAccountSigningKey.d.ts.map +1 -1
  435. package/dist/lexicon/types/com/atproto/admin/updateAccountSigningKey.js.map +1 -1
  436. package/dist/lexicon/types/com/atproto/admin/updateSubjectStatus.d.ts +2 -17
  437. package/dist/lexicon/types/com/atproto/admin/updateSubjectStatus.d.ts.map +1 -1
  438. package/dist/lexicon/types/com/atproto/admin/updateSubjectStatus.js.map +1 -1
  439. package/dist/lexicon/types/com/atproto/identity/getRecommendedDidCredentials.d.ts +3 -18
  440. package/dist/lexicon/types/com/atproto/identity/getRecommendedDidCredentials.d.ts.map +1 -1
  441. package/dist/lexicon/types/com/atproto/identity/getRecommendedDidCredentials.js.map +1 -1
  442. package/dist/lexicon/types/com/atproto/identity/refreshIdentity.d.ts +2 -17
  443. package/dist/lexicon/types/com/atproto/identity/refreshIdentity.d.ts.map +1 -1
  444. package/dist/lexicon/types/com/atproto/identity/refreshIdentity.js.map +1 -1
  445. package/dist/lexicon/types/com/atproto/identity/requestPlcOperationSignature.d.ts +2 -17
  446. package/dist/lexicon/types/com/atproto/identity/requestPlcOperationSignature.d.ts.map +1 -1
  447. package/dist/lexicon/types/com/atproto/identity/requestPlcOperationSignature.js.map +1 -1
  448. package/dist/lexicon/types/com/atproto/identity/resolveDid.d.ts +4 -18
  449. package/dist/lexicon/types/com/atproto/identity/resolveDid.d.ts.map +1 -1
  450. package/dist/lexicon/types/com/atproto/identity/resolveDid.js.map +1 -1
  451. package/dist/lexicon/types/com/atproto/identity/resolveHandle.d.ts +4 -18
  452. package/dist/lexicon/types/com/atproto/identity/resolveHandle.d.ts.map +1 -1
  453. package/dist/lexicon/types/com/atproto/identity/resolveHandle.js.map +1 -1
  454. package/dist/lexicon/types/com/atproto/identity/resolveIdentity.d.ts +4 -18
  455. package/dist/lexicon/types/com/atproto/identity/resolveIdentity.d.ts.map +1 -1
  456. package/dist/lexicon/types/com/atproto/identity/resolveIdentity.js.map +1 -1
  457. package/dist/lexicon/types/com/atproto/identity/signPlcOperation.d.ts +2 -17
  458. package/dist/lexicon/types/com/atproto/identity/signPlcOperation.d.ts.map +1 -1
  459. package/dist/lexicon/types/com/atproto/identity/signPlcOperation.js.map +1 -1
  460. package/dist/lexicon/types/com/atproto/identity/submitPlcOperation.d.ts +1 -16
  461. package/dist/lexicon/types/com/atproto/identity/submitPlcOperation.d.ts.map +1 -1
  462. package/dist/lexicon/types/com/atproto/identity/submitPlcOperation.js.map +1 -1
  463. package/dist/lexicon/types/com/atproto/identity/updateHandle.d.ts +1 -16
  464. package/dist/lexicon/types/com/atproto/identity/updateHandle.d.ts.map +1 -1
  465. package/dist/lexicon/types/com/atproto/identity/updateHandle.js.map +1 -1
  466. package/dist/lexicon/types/com/atproto/label/queryLabels.d.ts +4 -18
  467. package/dist/lexicon/types/com/atproto/label/queryLabels.d.ts.map +1 -1
  468. package/dist/lexicon/types/com/atproto/label/queryLabels.js.map +1 -1
  469. package/dist/lexicon/types/com/atproto/label/subscribeLabels.d.ts +3 -11
  470. package/dist/lexicon/types/com/atproto/label/subscribeLabels.d.ts.map +1 -1
  471. package/dist/lexicon/types/com/atproto/label/subscribeLabels.js.map +1 -1
  472. package/dist/lexicon/types/com/atproto/moderation/createReport.d.ts +2 -14
  473. package/dist/lexicon/types/com/atproto/moderation/createReport.d.ts.map +1 -1
  474. package/dist/lexicon/types/com/atproto/moderation/createReport.js.map +1 -1
  475. package/dist/lexicon/types/com/atproto/repo/applyWrites.d.ts +2 -14
  476. package/dist/lexicon/types/com/atproto/repo/applyWrites.d.ts.map +1 -1
  477. package/dist/lexicon/types/com/atproto/repo/applyWrites.js.map +1 -1
  478. package/dist/lexicon/types/com/atproto/repo/createRecord.d.ts +2 -17
  479. package/dist/lexicon/types/com/atproto/repo/createRecord.d.ts.map +1 -1
  480. package/dist/lexicon/types/com/atproto/repo/createRecord.js.map +1 -1
  481. package/dist/lexicon/types/com/atproto/repo/deleteRecord.d.ts +2 -17
  482. package/dist/lexicon/types/com/atproto/repo/deleteRecord.d.ts.map +1 -1
  483. package/dist/lexicon/types/com/atproto/repo/deleteRecord.js.map +1 -1
  484. package/dist/lexicon/types/com/atproto/repo/describeRepo.d.ts +4 -18
  485. package/dist/lexicon/types/com/atproto/repo/describeRepo.d.ts.map +1 -1
  486. package/dist/lexicon/types/com/atproto/repo/describeRepo.js.map +1 -1
  487. package/dist/lexicon/types/com/atproto/repo/getRecord.d.ts +4 -18
  488. package/dist/lexicon/types/com/atproto/repo/getRecord.d.ts.map +1 -1
  489. package/dist/lexicon/types/com/atproto/repo/getRecord.js.map +1 -1
  490. package/dist/lexicon/types/com/atproto/repo/importRepo.d.ts +1 -13
  491. package/dist/lexicon/types/com/atproto/repo/importRepo.d.ts.map +1 -1
  492. package/dist/lexicon/types/com/atproto/repo/importRepo.js.map +1 -1
  493. package/dist/lexicon/types/com/atproto/repo/listMissingBlobs.d.ts +4 -15
  494. package/dist/lexicon/types/com/atproto/repo/listMissingBlobs.d.ts.map +1 -1
  495. package/dist/lexicon/types/com/atproto/repo/listMissingBlobs.js.map +1 -1
  496. package/dist/lexicon/types/com/atproto/repo/listRecords.d.ts +4 -15
  497. package/dist/lexicon/types/com/atproto/repo/listRecords.d.ts.map +1 -1
  498. package/dist/lexicon/types/com/atproto/repo/listRecords.js.map +1 -1
  499. package/dist/lexicon/types/com/atproto/repo/putRecord.d.ts +2 -17
  500. package/dist/lexicon/types/com/atproto/repo/putRecord.d.ts.map +1 -1
  501. package/dist/lexicon/types/com/atproto/repo/putRecord.js.map +1 -1
  502. package/dist/lexicon/types/com/atproto/repo/uploadBlob.d.ts +2 -14
  503. package/dist/lexicon/types/com/atproto/repo/uploadBlob.d.ts.map +1 -1
  504. package/dist/lexicon/types/com/atproto/repo/uploadBlob.js.map +1 -1
  505. package/dist/lexicon/types/com/atproto/server/activateAccount.d.ts +2 -17
  506. package/dist/lexicon/types/com/atproto/server/activateAccount.d.ts.map +1 -1
  507. package/dist/lexicon/types/com/atproto/server/activateAccount.js.map +1 -1
  508. package/dist/lexicon/types/com/atproto/server/checkAccountStatus.d.ts +3 -18
  509. package/dist/lexicon/types/com/atproto/server/checkAccountStatus.d.ts.map +1 -1
  510. package/dist/lexicon/types/com/atproto/server/checkAccountStatus.js.map +1 -1
  511. package/dist/lexicon/types/com/atproto/server/confirmEmail.d.ts +1 -16
  512. package/dist/lexicon/types/com/atproto/server/confirmEmail.d.ts.map +1 -1
  513. package/dist/lexicon/types/com/atproto/server/confirmEmail.js.map +1 -1
  514. package/dist/lexicon/types/com/atproto/server/createAccount.d.ts +2 -17
  515. package/dist/lexicon/types/com/atproto/server/createAccount.d.ts.map +1 -1
  516. package/dist/lexicon/types/com/atproto/server/createAccount.js.map +1 -1
  517. package/dist/lexicon/types/com/atproto/server/createAppPassword.d.ts +2 -14
  518. package/dist/lexicon/types/com/atproto/server/createAppPassword.d.ts.map +1 -1
  519. package/dist/lexicon/types/com/atproto/server/createAppPassword.js.map +1 -1
  520. package/dist/lexicon/types/com/atproto/server/createInviteCode.d.ts +2 -17
  521. package/dist/lexicon/types/com/atproto/server/createInviteCode.d.ts.map +1 -1
  522. package/dist/lexicon/types/com/atproto/server/createInviteCode.js.map +1 -1
  523. package/dist/lexicon/types/com/atproto/server/createInviteCodes.d.ts +2 -14
  524. package/dist/lexicon/types/com/atproto/server/createInviteCodes.d.ts.map +1 -1
  525. package/dist/lexicon/types/com/atproto/server/createInviteCodes.js.map +1 -1
  526. package/dist/lexicon/types/com/atproto/server/createSession.d.ts +2 -17
  527. package/dist/lexicon/types/com/atproto/server/createSession.d.ts.map +1 -1
  528. package/dist/lexicon/types/com/atproto/server/createSession.js.map +1 -1
  529. package/dist/lexicon/types/com/atproto/server/deactivateAccount.d.ts +1 -16
  530. package/dist/lexicon/types/com/atproto/server/deactivateAccount.d.ts.map +1 -1
  531. package/dist/lexicon/types/com/atproto/server/deactivateAccount.js.map +1 -1
  532. package/dist/lexicon/types/com/atproto/server/deleteAccount.d.ts +1 -16
  533. package/dist/lexicon/types/com/atproto/server/deleteAccount.d.ts.map +1 -1
  534. package/dist/lexicon/types/com/atproto/server/deleteAccount.js.map +1 -1
  535. package/dist/lexicon/types/com/atproto/server/deleteSession.d.ts +2 -17
  536. package/dist/lexicon/types/com/atproto/server/deleteSession.d.ts.map +1 -1
  537. package/dist/lexicon/types/com/atproto/server/deleteSession.js.map +1 -1
  538. package/dist/lexicon/types/com/atproto/server/describeServer.d.ts +3 -15
  539. package/dist/lexicon/types/com/atproto/server/describeServer.d.ts.map +1 -1
  540. package/dist/lexicon/types/com/atproto/server/describeServer.js.map +1 -1
  541. package/dist/lexicon/types/com/atproto/server/getAccountInviteCodes.d.ts +4 -18
  542. package/dist/lexicon/types/com/atproto/server/getAccountInviteCodes.d.ts.map +1 -1
  543. package/dist/lexicon/types/com/atproto/server/getAccountInviteCodes.js.map +1 -1
  544. package/dist/lexicon/types/com/atproto/server/getServiceAuth.d.ts +4 -18
  545. package/dist/lexicon/types/com/atproto/server/getServiceAuth.d.ts.map +1 -1
  546. package/dist/lexicon/types/com/atproto/server/getServiceAuth.js.map +1 -1
  547. package/dist/lexicon/types/com/atproto/server/getSession.d.ts +3 -18
  548. package/dist/lexicon/types/com/atproto/server/getSession.d.ts.map +1 -1
  549. package/dist/lexicon/types/com/atproto/server/getSession.js.map +1 -1
  550. package/dist/lexicon/types/com/atproto/server/listAppPasswords.d.ts +3 -15
  551. package/dist/lexicon/types/com/atproto/server/listAppPasswords.d.ts.map +1 -1
  552. package/dist/lexicon/types/com/atproto/server/listAppPasswords.js.map +1 -1
  553. package/dist/lexicon/types/com/atproto/server/refreshSession.d.ts +3 -18
  554. package/dist/lexicon/types/com/atproto/server/refreshSession.d.ts.map +1 -1
  555. package/dist/lexicon/types/com/atproto/server/refreshSession.js.map +1 -1
  556. package/dist/lexicon/types/com/atproto/server/requestAccountDelete.d.ts +2 -17
  557. package/dist/lexicon/types/com/atproto/server/requestAccountDelete.d.ts.map +1 -1
  558. package/dist/lexicon/types/com/atproto/server/requestAccountDelete.js.map +1 -1
  559. package/dist/lexicon/types/com/atproto/server/requestEmailConfirmation.d.ts +2 -17
  560. package/dist/lexicon/types/com/atproto/server/requestEmailConfirmation.d.ts.map +1 -1
  561. package/dist/lexicon/types/com/atproto/server/requestEmailConfirmation.js.map +1 -1
  562. package/dist/lexicon/types/com/atproto/server/requestEmailUpdate.d.ts +3 -18
  563. package/dist/lexicon/types/com/atproto/server/requestEmailUpdate.d.ts.map +1 -1
  564. package/dist/lexicon/types/com/atproto/server/requestEmailUpdate.js.map +1 -1
  565. package/dist/lexicon/types/com/atproto/server/requestPasswordReset.d.ts +1 -16
  566. package/dist/lexicon/types/com/atproto/server/requestPasswordReset.d.ts.map +1 -1
  567. package/dist/lexicon/types/com/atproto/server/requestPasswordReset.js.map +1 -1
  568. package/dist/lexicon/types/com/atproto/server/reserveSigningKey.d.ts +2 -17
  569. package/dist/lexicon/types/com/atproto/server/reserveSigningKey.d.ts.map +1 -1
  570. package/dist/lexicon/types/com/atproto/server/reserveSigningKey.js.map +1 -1
  571. package/dist/lexicon/types/com/atproto/server/resetPassword.d.ts +1 -16
  572. package/dist/lexicon/types/com/atproto/server/resetPassword.d.ts.map +1 -1
  573. package/dist/lexicon/types/com/atproto/server/resetPassword.js.map +1 -1
  574. package/dist/lexicon/types/com/atproto/server/revokeAppPassword.d.ts +1 -16
  575. package/dist/lexicon/types/com/atproto/server/revokeAppPassword.d.ts.map +1 -1
  576. package/dist/lexicon/types/com/atproto/server/revokeAppPassword.js.map +1 -1
  577. package/dist/lexicon/types/com/atproto/server/updateEmail.d.ts +1 -16
  578. package/dist/lexicon/types/com/atproto/server/updateEmail.d.ts.map +1 -1
  579. package/dist/lexicon/types/com/atproto/server/updateEmail.js.map +1 -1
  580. package/dist/lexicon/types/com/atproto/sync/getBlob.d.ts +4 -15
  581. package/dist/lexicon/types/com/atproto/sync/getBlob.d.ts.map +1 -1
  582. package/dist/lexicon/types/com/atproto/sync/getBlob.js.map +1 -1
  583. package/dist/lexicon/types/com/atproto/sync/getBlocks.d.ts +4 -15
  584. package/dist/lexicon/types/com/atproto/sync/getBlocks.d.ts.map +1 -1
  585. package/dist/lexicon/types/com/atproto/sync/getBlocks.js.map +1 -1
  586. package/dist/lexicon/types/com/atproto/sync/getCheckout.d.ts +4 -15
  587. package/dist/lexicon/types/com/atproto/sync/getCheckout.d.ts.map +1 -1
  588. package/dist/lexicon/types/com/atproto/sync/getCheckout.js.map +1 -1
  589. package/dist/lexicon/types/com/atproto/sync/getHead.d.ts +4 -18
  590. package/dist/lexicon/types/com/atproto/sync/getHead.d.ts.map +1 -1
  591. package/dist/lexicon/types/com/atproto/sync/getHead.js.map +1 -1
  592. package/dist/lexicon/types/com/atproto/sync/getHostStatus.d.ts +4 -18
  593. package/dist/lexicon/types/com/atproto/sync/getHostStatus.d.ts.map +1 -1
  594. package/dist/lexicon/types/com/atproto/sync/getHostStatus.js.map +1 -1
  595. package/dist/lexicon/types/com/atproto/sync/getLatestCommit.d.ts +4 -18
  596. package/dist/lexicon/types/com/atproto/sync/getLatestCommit.d.ts.map +1 -1
  597. package/dist/lexicon/types/com/atproto/sync/getLatestCommit.js.map +1 -1
  598. package/dist/lexicon/types/com/atproto/sync/getRecord.d.ts +4 -15
  599. package/dist/lexicon/types/com/atproto/sync/getRecord.d.ts.map +1 -1
  600. package/dist/lexicon/types/com/atproto/sync/getRecord.js.map +1 -1
  601. package/dist/lexicon/types/com/atproto/sync/getRepo.d.ts +4 -15
  602. package/dist/lexicon/types/com/atproto/sync/getRepo.d.ts.map +1 -1
  603. package/dist/lexicon/types/com/atproto/sync/getRepo.js.map +1 -1
  604. package/dist/lexicon/types/com/atproto/sync/getRepoStatus.d.ts +4 -18
  605. package/dist/lexicon/types/com/atproto/sync/getRepoStatus.d.ts.map +1 -1
  606. package/dist/lexicon/types/com/atproto/sync/getRepoStatus.js.map +1 -1
  607. package/dist/lexicon/types/com/atproto/sync/listBlobs.d.ts +4 -18
  608. package/dist/lexicon/types/com/atproto/sync/listBlobs.d.ts.map +1 -1
  609. package/dist/lexicon/types/com/atproto/sync/listBlobs.js.map +1 -1
  610. package/dist/lexicon/types/com/atproto/sync/listHosts.d.ts +4 -15
  611. package/dist/lexicon/types/com/atproto/sync/listHosts.d.ts.map +1 -1
  612. package/dist/lexicon/types/com/atproto/sync/listHosts.js.map +1 -1
  613. package/dist/lexicon/types/com/atproto/sync/listRepos.d.ts +4 -15
  614. package/dist/lexicon/types/com/atproto/sync/listRepos.d.ts.map +1 -1
  615. package/dist/lexicon/types/com/atproto/sync/listRepos.js.map +1 -1
  616. package/dist/lexicon/types/com/atproto/sync/listReposByCollection.d.ts +4 -15
  617. package/dist/lexicon/types/com/atproto/sync/listReposByCollection.d.ts.map +1 -1
  618. package/dist/lexicon/types/com/atproto/sync/listReposByCollection.js.map +1 -1
  619. package/dist/lexicon/types/com/atproto/sync/notifyOfUpdate.d.ts +1 -16
  620. package/dist/lexicon/types/com/atproto/sync/notifyOfUpdate.d.ts.map +1 -1
  621. package/dist/lexicon/types/com/atproto/sync/notifyOfUpdate.js.map +1 -1
  622. package/dist/lexicon/types/com/atproto/sync/requestCrawl.d.ts +1 -16
  623. package/dist/lexicon/types/com/atproto/sync/requestCrawl.d.ts.map +1 -1
  624. package/dist/lexicon/types/com/atproto/sync/requestCrawl.js.map +1 -1
  625. package/dist/lexicon/types/com/atproto/sync/subscribeRepos.d.ts +3 -11
  626. package/dist/lexicon/types/com/atproto/sync/subscribeRepos.d.ts.map +1 -1
  627. package/dist/lexicon/types/com/atproto/sync/subscribeRepos.js.map +1 -1
  628. package/dist/lexicon/types/com/atproto/temp/addReservedHandle.d.ts +2 -17
  629. package/dist/lexicon/types/com/atproto/temp/addReservedHandle.d.ts.map +1 -1
  630. package/dist/lexicon/types/com/atproto/temp/addReservedHandle.js.map +1 -1
  631. package/dist/lexicon/types/com/atproto/temp/checkSignupQueue.d.ts +3 -18
  632. package/dist/lexicon/types/com/atproto/temp/checkSignupQueue.d.ts.map +1 -1
  633. package/dist/lexicon/types/com/atproto/temp/checkSignupQueue.js.map +1 -1
  634. package/dist/lexicon/types/com/atproto/temp/fetchLabels.d.ts +4 -18
  635. package/dist/lexicon/types/com/atproto/temp/fetchLabels.d.ts.map +1 -1
  636. package/dist/lexicon/types/com/atproto/temp/fetchLabels.js.map +1 -1
  637. package/dist/lexicon/types/com/atproto/temp/requestPhoneVerification.d.ts +1 -16
  638. package/dist/lexicon/types/com/atproto/temp/requestPhoneVerification.d.ts.map +1 -1
  639. package/dist/lexicon/types/com/atproto/temp/requestPhoneVerification.js.map +1 -1
  640. package/dist/proto/bsky_pb.d.ts +29 -0
  641. package/dist/proto/bsky_pb.d.ts.map +1 -1
  642. package/dist/proto/bsky_pb.js +97 -4
  643. package/dist/proto/bsky_pb.js.map +1 -1
  644. package/dist/proto/courier_pb.d.ts +4 -0
  645. package/dist/proto/courier_pb.d.ts.map +1 -1
  646. package/dist/proto/courier_pb.js +15 -0
  647. package/dist/proto/courier_pb.js.map +1 -1
  648. package/dist/stash.d.ts +1 -0
  649. package/dist/stash.d.ts.map +1 -1
  650. package/dist/stash.js +1 -0
  651. package/dist/stash.js.map +1 -1
  652. package/package.json +14 -11
  653. package/proto/bsky.proto +7 -0
  654. package/proto/courier.proto +1 -0
  655. package/src/api/app/bsky/notification/registerPush.ts +2 -1
  656. package/src/api/app/bsky/unspecced/getAgeAssuranceState.ts +46 -0
  657. package/src/api/app/bsky/unspecced/initAgeAssurance.ts +71 -0
  658. package/src/api/external.ts +13 -0
  659. package/src/api/index.ts +6 -0
  660. package/src/api/kws/api.ts +92 -0
  661. package/src/api/kws/index.ts +23 -0
  662. package/src/api/kws/types.ts +67 -0
  663. package/src/api/kws/util.ts +111 -0
  664. package/src/api/kws/webhook.ts +107 -0
  665. package/src/config.ts +59 -0
  666. package/src/context.ts +6 -0
  667. package/src/data-plane/bsync/index.ts +69 -33
  668. package/src/data-plane/server/db/migrations/20250627T025331240Z-add-actor-age-assurance-columns.ts +22 -0
  669. package/src/data-plane/server/db/migrations/index.ts +1 -0
  670. package/src/data-plane/server/db/tables/actor.ts +2 -0
  671. package/src/data-plane/server/routes/profile.ts +16 -1
  672. package/src/feature-gates.ts +1 -0
  673. package/src/index.ts +7 -1
  674. package/src/kws.ts +108 -0
  675. package/src/lexicon/index.ts +1115 -943
  676. package/src/lexicon/lexicons.ts +127 -0
  677. package/src/lexicon/types/app/bsky/actor/getPreferences.ts +3 -17
  678. package/src/lexicon/types/app/bsky/actor/getProfile.ts +3 -17
  679. package/src/lexicon/types/app/bsky/actor/getProfiles.ts +3 -17
  680. package/src/lexicon/types/app/bsky/actor/getSuggestions.ts +3 -17
  681. package/src/lexicon/types/app/bsky/actor/putPreferences.ts +1 -14
  682. package/src/lexicon/types/app/bsky/actor/searchActors.ts +3 -17
  683. package/src/lexicon/types/app/bsky/actor/searchActorsTypeahead.ts +3 -17
  684. package/src/lexicon/types/app/bsky/feed/describeFeedGenerator.ts +3 -17
  685. package/src/lexicon/types/app/bsky/feed/getActorFeeds.ts +3 -17
  686. package/src/lexicon/types/app/bsky/feed/getActorLikes.ts +3 -17
  687. package/src/lexicon/types/app/bsky/feed/getAuthorFeed.ts +3 -17
  688. package/src/lexicon/types/app/bsky/feed/getFeed.ts +3 -17
  689. package/src/lexicon/types/app/bsky/feed/getFeedGenerator.ts +3 -17
  690. package/src/lexicon/types/app/bsky/feed/getFeedGenerators.ts +3 -17
  691. package/src/lexicon/types/app/bsky/feed/getFeedSkeleton.ts +3 -17
  692. package/src/lexicon/types/app/bsky/feed/getLikes.ts +3 -17
  693. package/src/lexicon/types/app/bsky/feed/getListFeed.ts +3 -17
  694. package/src/lexicon/types/app/bsky/feed/getPostThread.ts +3 -17
  695. package/src/lexicon/types/app/bsky/feed/getPosts.ts +3 -17
  696. package/src/lexicon/types/app/bsky/feed/getQuotes.ts +3 -17
  697. package/src/lexicon/types/app/bsky/feed/getRepostedBy.ts +3 -17
  698. package/src/lexicon/types/app/bsky/feed/getSuggestedFeeds.ts +3 -17
  699. package/src/lexicon/types/app/bsky/feed/getTimeline.ts +3 -17
  700. package/src/lexicon/types/app/bsky/feed/searchPosts.ts +3 -17
  701. package/src/lexicon/types/app/bsky/feed/sendInteractions.ts +2 -15
  702. package/src/lexicon/types/app/bsky/graph/getActorStarterPacks.ts +3 -17
  703. package/src/lexicon/types/app/bsky/graph/getBlocks.ts +3 -17
  704. package/src/lexicon/types/app/bsky/graph/getFollowers.ts +3 -17
  705. package/src/lexicon/types/app/bsky/graph/getFollows.ts +3 -17
  706. package/src/lexicon/types/app/bsky/graph/getKnownFollowers.ts +3 -17
  707. package/src/lexicon/types/app/bsky/graph/getList.ts +3 -17
  708. package/src/lexicon/types/app/bsky/graph/getListBlocks.ts +3 -17
  709. package/src/lexicon/types/app/bsky/graph/getListMutes.ts +3 -17
  710. package/src/lexicon/types/app/bsky/graph/getLists.ts +3 -17
  711. package/src/lexicon/types/app/bsky/graph/getMutes.ts +3 -17
  712. package/src/lexicon/types/app/bsky/graph/getRelationships.ts +3 -17
  713. package/src/lexicon/types/app/bsky/graph/getStarterPack.ts +3 -17
  714. package/src/lexicon/types/app/bsky/graph/getStarterPacks.ts +3 -17
  715. package/src/lexicon/types/app/bsky/graph/getSuggestedFollowsByActor.ts +3 -17
  716. package/src/lexicon/types/app/bsky/graph/muteActor.ts +1 -14
  717. package/src/lexicon/types/app/bsky/graph/muteActorList.ts +1 -14
  718. package/src/lexicon/types/app/bsky/graph/muteThread.ts +1 -14
  719. package/src/lexicon/types/app/bsky/graph/searchStarterPacks.ts +3 -17
  720. package/src/lexicon/types/app/bsky/graph/unmuteActor.ts +1 -14
  721. package/src/lexicon/types/app/bsky/graph/unmuteActorList.ts +1 -14
  722. package/src/lexicon/types/app/bsky/graph/unmuteThread.ts +1 -14
  723. package/src/lexicon/types/app/bsky/labeler/getServices.ts +3 -17
  724. package/src/lexicon/types/app/bsky/notification/getPreferences.ts +3 -17
  725. package/src/lexicon/types/app/bsky/notification/getUnreadCount.ts +3 -17
  726. package/src/lexicon/types/app/bsky/notification/listActivitySubscriptions.ts +3 -17
  727. package/src/lexicon/types/app/bsky/notification/listNotifications.ts +3 -17
  728. package/src/lexicon/types/app/bsky/notification/putActivitySubscription.ts +2 -15
  729. package/src/lexicon/types/app/bsky/notification/putPreferences.ts +1 -14
  730. package/src/lexicon/types/app/bsky/notification/putPreferencesV2.ts +2 -15
  731. package/src/lexicon/types/app/bsky/notification/registerPush.ts +3 -14
  732. package/src/lexicon/types/app/bsky/notification/updateSeen.ts +1 -14
  733. package/src/lexicon/types/app/bsky/unspecced/defs.ts +50 -0
  734. package/src/lexicon/types/app/bsky/unspecced/getAgeAssuranceState.ts +34 -0
  735. package/src/lexicon/types/app/bsky/unspecced/getConfig.ts +3 -17
  736. package/src/lexicon/types/app/bsky/unspecced/getPopularFeedGenerators.ts +3 -17
  737. package/src/lexicon/types/app/bsky/unspecced/getPostThreadOtherV2.ts +3 -17
  738. package/src/lexicon/types/app/bsky/unspecced/getPostThreadV2.ts +3 -17
  739. package/src/lexicon/types/app/bsky/unspecced/getSuggestedFeeds.ts +3 -17
  740. package/src/lexicon/types/app/bsky/unspecced/getSuggestedFeedsSkeleton.ts +3 -17
  741. package/src/lexicon/types/app/bsky/unspecced/getSuggestedStarterPacks.ts +3 -17
  742. package/src/lexicon/types/app/bsky/unspecced/getSuggestedStarterPacksSkeleton.ts +3 -17
  743. package/src/lexicon/types/app/bsky/unspecced/getSuggestedUsers.ts +3 -17
  744. package/src/lexicon/types/app/bsky/unspecced/getSuggestedUsersSkeleton.ts +3 -17
  745. package/src/lexicon/types/app/bsky/unspecced/getSuggestionsSkeleton.ts +3 -17
  746. package/src/lexicon/types/app/bsky/unspecced/getTaggedSuggestions.ts +3 -17
  747. package/src/lexicon/types/app/bsky/unspecced/getTrendingTopics.ts +3 -17
  748. package/src/lexicon/types/app/bsky/unspecced/getTrends.ts +3 -17
  749. package/src/lexicon/types/app/bsky/unspecced/getTrendsSkeleton.ts +3 -17
  750. package/src/lexicon/types/app/bsky/unspecced/initAgeAssurance.ts +47 -0
  751. package/src/lexicon/types/app/bsky/unspecced/searchActorsSkeleton.ts +3 -17
  752. package/src/lexicon/types/app/bsky/unspecced/searchPostsSkeleton.ts +3 -17
  753. package/src/lexicon/types/app/bsky/unspecced/searchStarterPacksSkeleton.ts +3 -17
  754. package/src/lexicon/types/app/bsky/video/getJobStatus.ts +3 -17
  755. package/src/lexicon/types/app/bsky/video/getUploadLimits.ts +3 -17
  756. package/src/lexicon/types/app/bsky/video/uploadVideo.ts +2 -16
  757. package/src/lexicon/types/chat/bsky/actor/deleteAccount.ts +3 -17
  758. package/src/lexicon/types/chat/bsky/actor/exportAccountData.ts +3 -17
  759. package/src/lexicon/types/chat/bsky/convo/acceptConvo.ts +2 -15
  760. package/src/lexicon/types/chat/bsky/convo/addReaction.ts +2 -15
  761. package/src/lexicon/types/chat/bsky/convo/deleteMessageForSelf.ts +2 -15
  762. package/src/lexicon/types/chat/bsky/convo/getConvo.ts +3 -17
  763. package/src/lexicon/types/chat/bsky/convo/getConvoAvailability.ts +3 -17
  764. package/src/lexicon/types/chat/bsky/convo/getConvoForMembers.ts +3 -17
  765. package/src/lexicon/types/chat/bsky/convo/getLog.ts +3 -17
  766. package/src/lexicon/types/chat/bsky/convo/getMessages.ts +3 -17
  767. package/src/lexicon/types/chat/bsky/convo/leaveConvo.ts +2 -15
  768. package/src/lexicon/types/chat/bsky/convo/listConvos.ts +3 -17
  769. package/src/lexicon/types/chat/bsky/convo/muteConvo.ts +2 -15
  770. package/src/lexicon/types/chat/bsky/convo/removeReaction.ts +2 -15
  771. package/src/lexicon/types/chat/bsky/convo/sendMessage.ts +2 -15
  772. package/src/lexicon/types/chat/bsky/convo/sendMessageBatch.ts +2 -15
  773. package/src/lexicon/types/chat/bsky/convo/unmuteConvo.ts +2 -15
  774. package/src/lexicon/types/chat/bsky/convo/updateAllRead.ts +2 -15
  775. package/src/lexicon/types/chat/bsky/convo/updateRead.ts +2 -15
  776. package/src/lexicon/types/chat/bsky/moderation/getActorMetadata.ts +3 -17
  777. package/src/lexicon/types/chat/bsky/moderation/getMessageContext.ts +3 -17
  778. package/src/lexicon/types/chat/bsky/moderation/updateActorAccess.ts +1 -14
  779. package/src/lexicon/types/com/atproto/admin/deleteAccount.ts +1 -14
  780. package/src/lexicon/types/com/atproto/admin/disableAccountInvites.ts +1 -14
  781. package/src/lexicon/types/com/atproto/admin/disableInviteCodes.ts +1 -14
  782. package/src/lexicon/types/com/atproto/admin/enableAccountInvites.ts +1 -14
  783. package/src/lexicon/types/com/atproto/admin/getAccountInfo.ts +3 -17
  784. package/src/lexicon/types/com/atproto/admin/getAccountInfos.ts +3 -17
  785. package/src/lexicon/types/com/atproto/admin/getInviteCodes.ts +3 -17
  786. package/src/lexicon/types/com/atproto/admin/getSubjectStatus.ts +3 -17
  787. package/src/lexicon/types/com/atproto/admin/searchAccounts.ts +3 -17
  788. package/src/lexicon/types/com/atproto/admin/sendEmail.ts +2 -15
  789. package/src/lexicon/types/com/atproto/admin/updateAccountEmail.ts +1 -14
  790. package/src/lexicon/types/com/atproto/admin/updateAccountHandle.ts +1 -14
  791. package/src/lexicon/types/com/atproto/admin/updateAccountPassword.ts +1 -14
  792. package/src/lexicon/types/com/atproto/admin/updateAccountSigningKey.ts +1 -14
  793. package/src/lexicon/types/com/atproto/admin/updateSubjectStatus.ts +2 -15
  794. package/src/lexicon/types/com/atproto/identity/getRecommendedDidCredentials.ts +3 -17
  795. package/src/lexicon/types/com/atproto/identity/refreshIdentity.ts +2 -15
  796. package/src/lexicon/types/com/atproto/identity/requestPlcOperationSignature.ts +2 -16
  797. package/src/lexicon/types/com/atproto/identity/resolveDid.ts +3 -17
  798. package/src/lexicon/types/com/atproto/identity/resolveHandle.ts +3 -17
  799. package/src/lexicon/types/com/atproto/identity/resolveIdentity.ts +3 -17
  800. package/src/lexicon/types/com/atproto/identity/signPlcOperation.ts +2 -15
  801. package/src/lexicon/types/com/atproto/identity/submitPlcOperation.ts +1 -14
  802. package/src/lexicon/types/com/atproto/identity/updateHandle.ts +1 -14
  803. package/src/lexicon/types/com/atproto/label/queryLabels.ts +3 -17
  804. package/src/lexicon/types/com/atproto/label/subscribeLabels.ts +2 -12
  805. package/src/lexicon/types/com/atproto/moderation/createReport.ts +2 -15
  806. package/src/lexicon/types/com/atproto/repo/applyWrites.ts +2 -15
  807. package/src/lexicon/types/com/atproto/repo/createRecord.ts +2 -15
  808. package/src/lexicon/types/com/atproto/repo/deleteRecord.ts +2 -15
  809. package/src/lexicon/types/com/atproto/repo/describeRepo.ts +3 -17
  810. package/src/lexicon/types/com/atproto/repo/getRecord.ts +3 -17
  811. package/src/lexicon/types/com/atproto/repo/importRepo.ts +1 -15
  812. package/src/lexicon/types/com/atproto/repo/listMissingBlobs.ts +3 -17
  813. package/src/lexicon/types/com/atproto/repo/listRecords.ts +3 -17
  814. package/src/lexicon/types/com/atproto/repo/putRecord.ts +2 -15
  815. package/src/lexicon/types/com/atproto/repo/uploadBlob.ts +2 -16
  816. package/src/lexicon/types/com/atproto/server/activateAccount.ts +2 -16
  817. package/src/lexicon/types/com/atproto/server/checkAccountStatus.ts +3 -17
  818. package/src/lexicon/types/com/atproto/server/confirmEmail.ts +1 -14
  819. package/src/lexicon/types/com/atproto/server/createAccount.ts +2 -15
  820. package/src/lexicon/types/com/atproto/server/createAppPassword.ts +2 -15
  821. package/src/lexicon/types/com/atproto/server/createInviteCode.ts +2 -15
  822. package/src/lexicon/types/com/atproto/server/createInviteCodes.ts +2 -15
  823. package/src/lexicon/types/com/atproto/server/createSession.ts +2 -15
  824. package/src/lexicon/types/com/atproto/server/deactivateAccount.ts +1 -14
  825. package/src/lexicon/types/com/atproto/server/deleteAccount.ts +1 -14
  826. package/src/lexicon/types/com/atproto/server/deleteSession.ts +2 -16
  827. package/src/lexicon/types/com/atproto/server/describeServer.ts +3 -17
  828. package/src/lexicon/types/com/atproto/server/getAccountInviteCodes.ts +3 -17
  829. package/src/lexicon/types/com/atproto/server/getServiceAuth.ts +3 -17
  830. package/src/lexicon/types/com/atproto/server/getSession.ts +3 -17
  831. package/src/lexicon/types/com/atproto/server/listAppPasswords.ts +3 -17
  832. package/src/lexicon/types/com/atproto/server/refreshSession.ts +3 -17
  833. package/src/lexicon/types/com/atproto/server/requestAccountDelete.ts +2 -16
  834. package/src/lexicon/types/com/atproto/server/requestEmailConfirmation.ts +2 -16
  835. package/src/lexicon/types/com/atproto/server/requestEmailUpdate.ts +3 -17
  836. package/src/lexicon/types/com/atproto/server/requestPasswordReset.ts +1 -14
  837. package/src/lexicon/types/com/atproto/server/reserveSigningKey.ts +2 -15
  838. package/src/lexicon/types/com/atproto/server/resetPassword.ts +1 -14
  839. package/src/lexicon/types/com/atproto/server/revokeAppPassword.ts +1 -14
  840. package/src/lexicon/types/com/atproto/server/updateEmail.ts +1 -14
  841. package/src/lexicon/types/com/atproto/sync/getBlob.ts +3 -17
  842. package/src/lexicon/types/com/atproto/sync/getBlocks.ts +3 -17
  843. package/src/lexicon/types/com/atproto/sync/getCheckout.ts +3 -17
  844. package/src/lexicon/types/com/atproto/sync/getHead.ts +3 -17
  845. package/src/lexicon/types/com/atproto/sync/getHostStatus.ts +3 -17
  846. package/src/lexicon/types/com/atproto/sync/getLatestCommit.ts +3 -17
  847. package/src/lexicon/types/com/atproto/sync/getRecord.ts +3 -17
  848. package/src/lexicon/types/com/atproto/sync/getRepo.ts +3 -17
  849. package/src/lexicon/types/com/atproto/sync/getRepoStatus.ts +3 -17
  850. package/src/lexicon/types/com/atproto/sync/listBlobs.ts +3 -17
  851. package/src/lexicon/types/com/atproto/sync/listHosts.ts +3 -17
  852. package/src/lexicon/types/com/atproto/sync/listRepos.ts +3 -17
  853. package/src/lexicon/types/com/atproto/sync/listReposByCollection.ts +3 -17
  854. package/src/lexicon/types/com/atproto/sync/notifyOfUpdate.ts +1 -14
  855. package/src/lexicon/types/com/atproto/sync/requestCrawl.ts +1 -14
  856. package/src/lexicon/types/com/atproto/sync/subscribeRepos.ts +2 -12
  857. package/src/lexicon/types/com/atproto/temp/addReservedHandle.ts +2 -15
  858. package/src/lexicon/types/com/atproto/temp/checkSignupQueue.ts +3 -17
  859. package/src/lexicon/types/com/atproto/temp/fetchLabels.ts +3 -17
  860. package/src/lexicon/types/com/atproto/temp/requestPhoneVerification.ts +1 -14
  861. package/src/proto/bsky_pb.ts +79 -0
  862. package/src/proto/courier_pb.ts +11 -0
  863. package/src/stash.ts +3 -0
  864. package/tests/feed-generation.test.ts +8 -3
  865. package/tests/server.test.ts +3 -1
  866. package/tests/views/age-assurance.test.ts +425 -0
  867. package/tsconfig.build.tsbuildinfo +1 -1
  868. package/tsconfig.tests.tsbuildinfo +1 -1
@@ -0,0 +1,111 @@
1
+ import crypto from 'node:crypto'
2
+ import express from 'express'
3
+ import { TID } from '@atproto/common'
4
+ import { AppContext } from '../../context'
5
+ import {
6
+ AgeAssuranceEvent,
7
+ AgeAssuranceState,
8
+ } from '../../lexicon/types/app/bsky/unspecced/defs'
9
+ import { Namespaces } from '../../stash'
10
+ import {
11
+ KwsExternalPayload,
12
+ KwsStatus,
13
+ externalPayloadSchema,
14
+ statusSchema,
15
+ } from './types'
16
+
17
+ export const createStashEvent = async (
18
+ ctx: AppContext,
19
+ {
20
+ actorDid,
21
+ attemptId,
22
+ email,
23
+ initIp,
24
+ initUa,
25
+ completeIp,
26
+ completeUa,
27
+ status,
28
+ }: {
29
+ actorDid: string
30
+ attemptId: string
31
+ email?: string
32
+ initIp?: string
33
+ initUa?: string
34
+ completeIp?: string
35
+ completeUa?: string
36
+ status: AgeAssuranceState['status']
37
+ },
38
+ ) => {
39
+ const stashPayload: AgeAssuranceEvent = {
40
+ createdAt: new Date().toISOString(),
41
+ email,
42
+ status,
43
+ attemptId,
44
+ initIp,
45
+ initUa,
46
+ completeIp,
47
+ completeUa,
48
+ }
49
+
50
+ await ctx.stashClient.create({
51
+ actorDid,
52
+ namespace: Namespaces.AppBskyUnspeccedDefsAgeAssuranceEvent,
53
+ key: TID.nextStr(),
54
+ payload: stashPayload,
55
+ })
56
+ return stashPayload
57
+ }
58
+
59
+ export const validateSignature = (
60
+ key: string,
61
+ data: string,
62
+ signature: string,
63
+ ) => {
64
+ const expectedSignature = crypto
65
+ .createHmac('sha256', key)
66
+ .update(data)
67
+ .digest('hex')
68
+
69
+ const expectedSignatureBuf = Buffer.from(expectedSignature, 'hex')
70
+ const actualSignatureBuf = Buffer.from(signature, 'hex')
71
+
72
+ if (expectedSignatureBuf.length !== actualSignatureBuf.length) {
73
+ throw new Error(`Signature mismatch`)
74
+ }
75
+
76
+ if (!crypto.timingSafeEqual(expectedSignatureBuf, actualSignatureBuf)) {
77
+ throw new Error(`Signature mismatch`)
78
+ }
79
+ }
80
+
81
+ export const serializeExternalPayload = (value: KwsExternalPayload): string => {
82
+ return JSON.stringify(value)
83
+ }
84
+
85
+ export const parseExternalPayload = (
86
+ serialized: string,
87
+ ): KwsExternalPayload => {
88
+ try {
89
+ const value: unknown = JSON.parse(serialized)
90
+ return externalPayloadSchema.parse(value)
91
+ } catch (err) {
92
+ throw new Error(`Invalid external payload: ${serialized}`, { cause: err })
93
+ }
94
+ }
95
+
96
+ export const parseStatus = (serialized: string): KwsStatus => {
97
+ try {
98
+ const value: unknown = JSON.parse(serialized)
99
+ return statusSchema.parse(value)
100
+ } catch (err) {
101
+ throw new Error(`Invalid status: ${serialized}`, { cause: err })
102
+ }
103
+ }
104
+
105
+ export const kwsWwwAuthenticate = (): Record<string, string> => ({
106
+ 'www-authenticate': `Signature realm="kws"`,
107
+ })
108
+
109
+ export const getClientUa = (req: express.Request): string | undefined => {
110
+ return req.headers['user-agent']
111
+ }
@@ -0,0 +1,107 @@
1
+ import express, { RequestHandler } from 'express'
2
+ import { httpLogger as log } from '../../logger'
3
+ import {
4
+ AppContextWithKwsClient,
5
+ KwsWebhookBody,
6
+ webhookBodyIntermediateSchema,
7
+ } from './types'
8
+ import {
9
+ createStashEvent,
10
+ kwsWwwAuthenticate,
11
+ parseExternalPayload,
12
+ validateSignature,
13
+ } from './util'
14
+
15
+ export const webhookAuth =
16
+ (ctx: AppContextWithKwsClient): RequestHandler =>
17
+ (req: express.Request, res: express.Response, next: express.NextFunction) => {
18
+ const body: Buffer = req.body
19
+ const sigHeader = req.headers['x-kws-signature']
20
+ if (!sigHeader || typeof sigHeader !== 'string') {
21
+ return res.status(401).header(kwsWwwAuthenticate()).json({
22
+ success: false,
23
+ error:
24
+ 'Invalid authentication for KWS webhook: missing signature header',
25
+ })
26
+ }
27
+
28
+ try {
29
+ const parts = sigHeader.split(',')
30
+ const timestamp = parts.find((p) => p.startsWith('t='))?.split('=')[1]
31
+ const signature = parts.find((p) => p.startsWith('v1='))?.split('=')[1]
32
+ if (typeof timestamp !== 'string' || typeof signature !== 'string') {
33
+ throw new Error('Invalid webhook signature format')
34
+ }
35
+
36
+ const data = `${timestamp}.${body}`
37
+ validateSignature(ctx.cfg.kws.webhookSecret, data, signature)
38
+ next()
39
+ } catch (err) {
40
+ log.error({ err }, 'Invalid KWS webhook signature')
41
+ return res.status(401).header(kwsWwwAuthenticate()).json({
42
+ success: false,
43
+ error: 'Invalid authentication for KWS webhook: signature mismatch',
44
+ })
45
+ }
46
+ }
47
+
48
+ type AgeAssuranceWebhookIntermediateBody = {
49
+ payload: Omit<KwsWebhookBody['payload'], 'externalPayload'> & {
50
+ externalPayload: string
51
+ }
52
+ }
53
+
54
+ const parseBody = (serialized: string): KwsWebhookBody => {
55
+ try {
56
+ const value: unknown = JSON.parse(serialized)
57
+ const intermediate: AgeAssuranceWebhookIntermediateBody =
58
+ webhookBodyIntermediateSchema.parse(value)
59
+
60
+ return {
61
+ ...intermediate,
62
+ payload: {
63
+ ...intermediate.payload,
64
+ externalPayload: parseExternalPayload(
65
+ intermediate.payload.externalPayload,
66
+ ),
67
+ },
68
+ }
69
+ } catch (err) {
70
+ throw new Error(`Invalid webhook body: ${serialized}`, { cause: err })
71
+ }
72
+ }
73
+
74
+ export const webhookHandler =
75
+ (ctx: AppContextWithKwsClient): RequestHandler =>
76
+ async (req: express.Request, res: express.Response) => {
77
+ let body: KwsWebhookBody
78
+ try {
79
+ body = parseBody(req.body)
80
+ } catch (err) {
81
+ log.error({ err }, 'Invalid KWS webhook body')
82
+ return res.status(400).json(err)
83
+ }
84
+
85
+ const {
86
+ payload: {
87
+ status: { verified },
88
+ externalPayload,
89
+ },
90
+ } = body
91
+ const { actorDid, attemptId } = externalPayload
92
+ if (!verified) {
93
+ throw new Error('Unexpected KWS webhook call with unverified status')
94
+ }
95
+
96
+ try {
97
+ await createStashEvent(ctx, {
98
+ actorDid,
99
+ attemptId,
100
+ status: 'assured',
101
+ })
102
+ return res.status(200).end()
103
+ } catch (err) {
104
+ log.error({ err }, 'Failed to handle KWS webhook')
105
+ return res.status(500).json(err)
106
+ }
107
+ }
package/src/config.ts CHANGED
@@ -6,6 +6,17 @@ type LiveNowConfig = {
6
6
  domains: string[]
7
7
  }[]
8
8
 
9
+ export interface KwsConfig {
10
+ apiKey: string
11
+ apiOrigin: string
12
+ authOrigin: string
13
+ clientId: string
14
+ redirectUrl: string
15
+ userAgent: string
16
+ verificationSecret: string
17
+ webhookSecret: string
18
+ }
19
+
9
20
  export interface ServerConfigValues {
10
21
  // service
11
22
  version?: string
@@ -72,6 +83,7 @@ export interface ServerConfigValues {
72
83
  proxyMaxResponseSize?: number
73
84
  proxyMaxRetries?: number
74
85
  proxyPreferCompressed?: boolean
86
+ kws?: KwsConfig
75
87
  }
76
88
 
77
89
  export class ServerConfig {
@@ -222,6 +234,48 @@ export class ServerConfig {
222
234
  const proxyPreferCompressed =
223
235
  process.env.BSKY_PROXY_PREFER_COMPRESSED === 'true'
224
236
 
237
+ let kws: KwsConfig | undefined
238
+ const kwsApiKey = process.env.BSKY_KWS_API_KEY
239
+ const kwsApiOrigin = process.env.BSKY_KWS_API_ORIGIN
240
+ const kwsAuthOrigin = process.env.BSKY_KWS_AUTH_ORIGIN
241
+ const kwsClientId = process.env.BSKY_KWS_CLIENT_ID
242
+ const kwsRedirectUrl = process.env.BSKY_KWS_REDIRECT_URL
243
+ const kwsUserAgent = process.env.BSKY_KWS_USER_AGENT
244
+ const kwsVerificationSecret = process.env.BSKY_KWS_VERIFICATION_SECRET
245
+ const kwsWebhookSecret = process.env.BSKY_KWS_WEBHOOK_SIGNING_KEY
246
+ if (
247
+ kwsApiKey ||
248
+ kwsApiOrigin ||
249
+ kwsAuthOrigin ||
250
+ kwsClientId ||
251
+ kwsRedirectUrl ||
252
+ kwsUserAgent ||
253
+ kwsVerificationSecret ||
254
+ kwsWebhookSecret
255
+ ) {
256
+ assert(
257
+ kwsApiOrigin &&
258
+ kwsAuthOrigin &&
259
+ kwsClientId &&
260
+ kwsRedirectUrl &&
261
+ kwsUserAgent &&
262
+ kwsVerificationSecret &&
263
+ kwsWebhookSecret &&
264
+ kwsApiKey,
265
+ 'all KWS environment variables must be set if any are set',
266
+ )
267
+ kws = {
268
+ apiKey: kwsApiKey,
269
+ apiOrigin: kwsApiOrigin,
270
+ authOrigin: kwsAuthOrigin,
271
+ clientId: kwsClientId,
272
+ redirectUrl: kwsRedirectUrl,
273
+ userAgent: kwsUserAgent,
274
+ verificationSecret: kwsVerificationSecret,
275
+ webhookSecret: kwsWebhookSecret,
276
+ }
277
+ }
278
+
225
279
  return new ServerConfig({
226
280
  version,
227
281
  debugMode,
@@ -279,6 +333,7 @@ export class ServerConfig {
279
333
  proxyMaxResponseSize,
280
334
  proxyMaxRetries,
281
335
  proxyPreferCompressed,
336
+ kws,
282
337
  ...stripUndefineds(overrides ?? {}),
283
338
  })
284
339
  }
@@ -513,6 +568,10 @@ export class ServerConfig {
513
568
  get proxyPreferCompressed(): boolean {
514
569
  return this.cfg.proxyPreferCompressed ?? true
515
570
  }
571
+
572
+ get kws() {
573
+ return this.cfg.kws
574
+ }
516
575
  }
517
576
 
518
577
  function stripUndefineds(
package/src/context.ts CHANGED
@@ -12,6 +12,7 @@ import { CourierClient } from './courier'
12
12
  import { DataPlaneClient, HostList } from './data-plane/client'
13
13
  import { FeatureGates } from './feature-gates'
14
14
  import { Hydrator } from './hydration/hydrator'
15
+ import { KwsClient } from './kws'
15
16
  import { httpLogger as log } from './logger'
16
17
  import { StashClient } from './stash'
17
18
  import {
@@ -41,6 +42,7 @@ export class AppContext {
41
42
  authVerifier: AuthVerifier
42
43
  featureGates: FeatureGates
43
44
  blobDispatcher: Dispatcher
45
+ kwsClient: KwsClient | undefined
44
46
  },
45
47
  ) {}
46
48
 
@@ -116,6 +118,10 @@ export class AppContext {
116
118
  return this.opts.blobDispatcher
117
119
  }
118
120
 
121
+ get kwsClient(): KwsClient | undefined {
122
+ return this.opts.kwsClient
123
+ }
124
+
119
125
  reqLabelers(req: express.Request): ParsedLabelers {
120
126
  const val = req.header('atproto-accept-labelers')
121
127
  let parsed: ParsedLabelers | null
@@ -9,6 +9,7 @@ import { jsonStringToLex } from '@atproto/lexicon'
9
9
  import { AtUri } from '@atproto/syntax'
10
10
  import { ids } from '../../lexicon/lexicons'
11
11
  import { SubjectActivitySubscription } from '../../lexicon/types/app/bsky/notification/defs'
12
+ import { AgeAssuranceEvent } from '../../lexicon/types/app/bsky/unspecced/defs'
12
13
  import { httpLogger } from '../../logger'
13
14
  import { Service } from '../../proto/bsync_connect'
14
15
  import {
@@ -159,10 +160,10 @@ const createRoutes = (db: Database) => (router: ConnectRouter) =>
159
160
 
160
161
  const now = new Date().toISOString()
161
162
 
162
- // index all items into private_data
163
+ // Index all items into private_data.
163
164
  await handleGenericOperation(db, req, now)
164
165
 
165
- // maintain bespoke indexes for certain namespaces
166
+ // Maintain bespoke indexes for certain namespaces.
166
167
  if (
167
168
  namespace ===
168
169
  Namespaces.AppBskyNotificationDefsSubjectActivitySubscription
@@ -174,6 +175,16 @@ const createRoutes = (db: Database) => (router: ConnectRouter) =>
174
175
  'mock bsync put operation failed',
175
176
  ),
176
177
  )
178
+ } else if (
179
+ namespace === Namespaces.AppBskyUnspeccedDefsAgeAssuranceEvent
180
+ ) {
181
+ await handleAgeAssuranceEventOperation(db, req, now).catch(
182
+ (err: unknown) =>
183
+ httpLogger.warn(
184
+ { err, namespace },
185
+ 'mock bsync put operation failed',
186
+ ),
187
+ )
177
188
  }
178
189
 
179
190
  return {
@@ -197,6 +208,43 @@ const createRoutes = (db: Database) => (router: ConnectRouter) =>
197
208
  },
198
209
  })
199
210
 
211
+ // upsert into or remove from private_data
212
+ const handleGenericOperation = async (
213
+ db: Database,
214
+ req: PutOperationRequest,
215
+ now: string,
216
+ ) => {
217
+ const { actorDid, namespace, key, method, payload } = req
218
+ if (method === Method.CREATE || method === Method.UPDATE) {
219
+ await db.db
220
+ .insertInto('private_data')
221
+ .values({
222
+ actorDid,
223
+ namespace,
224
+ key,
225
+ payload: Buffer.from(payload).toString('utf8'),
226
+ indexedAt: now,
227
+ updatedAt: now,
228
+ })
229
+ .onConflict((oc) =>
230
+ oc.columns(['actorDid', 'namespace', 'key']).doUpdateSet({
231
+ payload: excluded(db.db, 'payload'),
232
+ updatedAt: excluded(db.db, 'updatedAt'),
233
+ }),
234
+ )
235
+ .execute()
236
+ } else if (method === Method.DELETE) {
237
+ await db.db
238
+ .deleteFrom('private_data')
239
+ .where('actorDid', '=', actorDid)
240
+ .where('namespace', '=', namespace)
241
+ .where('key', '=', key)
242
+ .execute()
243
+ } else {
244
+ assert.fail(`unexpected method ${method}`)
245
+ }
246
+ }
247
+
200
248
  const handleSubjectActivitySubscriptionOperation = async (
201
249
  db: Database,
202
250
  req: PutOperationRequest,
@@ -246,39 +294,27 @@ const handleSubjectActivitySubscriptionOperation = async (
246
294
  .execute()
247
295
  }
248
296
 
249
- // upsert into or remove from private_data
250
- const handleGenericOperation = async (
297
+ const handleAgeAssuranceEventOperation = async (
251
298
  db: Database,
252
299
  req: PutOperationRequest,
253
- now: string,
300
+ _now: string,
254
301
  ) => {
255
- const { actorDid, namespace, key, method, payload } = req
256
- if (method === Method.CREATE || method === Method.UPDATE) {
257
- await db.db
258
- .insertInto('private_data')
259
- .values({
260
- actorDid,
261
- namespace,
262
- key,
263
- payload: Buffer.from(payload).toString('utf8'),
264
- indexedAt: now,
265
- updatedAt: now,
266
- })
267
- .onConflict((oc) =>
268
- oc.columns(['actorDid', 'namespace', 'key']).doUpdateSet({
269
- payload: excluded(db.db, 'payload'),
270
- updatedAt: excluded(db.db, 'updatedAt'),
271
- }),
272
- )
273
- .execute()
274
- } else if (method === Method.DELETE) {
275
- await db.db
276
- .deleteFrom('private_data')
277
- .where('actorDid', '=', actorDid)
278
- .where('namespace', '=', namespace)
279
- .where('key', '=', key)
280
- .execute()
281
- } else {
282
- assert.fail(`unexpected method ${method}`)
302
+ const { actorDid, method, payload } = req
303
+ if (method !== Method.CREATE) return
304
+
305
+ const parsed = jsonStringToLex(
306
+ Buffer.from(payload).toString('utf8'),
307
+ ) as AgeAssuranceEvent
308
+ const { status, createdAt } = parsed
309
+
310
+ const update = {
311
+ ageAssuranceStatus: status,
312
+ ageAssuranceLastInitiatedAt: status === 'pending' ? createdAt : undefined,
283
313
  }
314
+
315
+ return db.db
316
+ .updateTable('actor')
317
+ .set(update)
318
+ .where('did', '=', actorDid)
319
+ .execute()
284
320
  }
@@ -0,0 +1,22 @@
1
+ import { Kysely } from 'kysely'
2
+
3
+ export async function up(db: Kysely<unknown>): Promise<void> {
4
+ await db.schema
5
+ .alterTable('actor')
6
+ .addColumn('ageAssuranceStatus', 'text')
7
+ .execute()
8
+
9
+ await db.schema
10
+ .alterTable('actor')
11
+ .addColumn('ageAssuranceLastInitiatedAt', 'varchar')
12
+ .execute()
13
+ }
14
+
15
+ export async function down(db: Kysely<unknown>): Promise<void> {
16
+ await db.schema.alterTable('actor').dropColumn('ageAssuranceStatus').execute()
17
+
18
+ await db.schema
19
+ .alterTable('actor')
20
+ .dropColumn('ageAssuranceLastInitiatedAt')
21
+ .execute()
22
+ }
@@ -52,3 +52,4 @@ export * as _20250526T023712742Z from './20250526T023712742Z-like-repost-via'
52
52
  export * as _20250528T221913281Z from './20250528T221913281Z-add-record-tags'
53
53
  export * as _20250602T190357447Z from './20250602T190357447Z-add-private-data'
54
54
  export * as _20250611T140649895Z from './20250611T140649895Z-add-activity-subscription'
55
+ export * as _20250627T025331240Z from './20250627T025331240Z-add-actor-age-assurance-columns'
@@ -7,6 +7,8 @@ export interface Actor {
7
7
  takedownRef: string | null
8
8
  upstreamStatus: string | null
9
9
  trustedVerifier: Generated<boolean>
10
+ ageAssuranceStatus: string | null
11
+ ageAssuranceLastInitiatedAt: string | null
10
12
  }
11
13
 
12
14
  export const tableName = 'actor'
@@ -22,7 +22,7 @@ type VerifiedBy = {
22
22
 
23
23
  export default (db: Database): Partial<ServiceImpl<typeof Service>> => ({
24
24
  async getActors(req) {
25
- const { dids } = req
25
+ const { dids, returnAgeAssuranceForDids } = req
26
26
  if (dids.length === 0) {
27
27
  return { actors: [] }
28
28
  }
@@ -105,6 +105,7 @@ export default (db: Database): Partial<ServiceImpl<typeof Service>> => ({
105
105
  }
106
106
  return acc
107
107
  }, {} as VerifiedBy)
108
+ const ageAssuranceForDids = new Set(returnAgeAssuranceForDids)
108
109
 
109
110
  const activitySubscription = () => {
110
111
  const record = parseRecordBytes<AppBskyNotificationDeclaration.Record>(
@@ -128,6 +129,19 @@ export default (db: Database): Partial<ServiceImpl<typeof Service>> => ({
128
129
  }
129
130
  }
130
131
 
132
+ const ageAssuranceStatus = () => {
133
+ if (!ageAssuranceForDids.has(did)) {
134
+ return undefined
135
+ }
136
+
137
+ return {
138
+ status: row?.ageAssuranceStatus ?? 'unknown',
139
+ lastInitiatedAt: row?.ageAssuranceLastInitiatedAt
140
+ ? Timestamp.fromDate(new Date(row?.ageAssuranceLastInitiatedAt))
141
+ : undefined,
142
+ }
143
+ }
144
+
131
145
  return {
132
146
  exists: !!row,
133
147
  handle: row?.handle ?? undefined,
@@ -149,6 +163,7 @@ export default (db: Database): Partial<ServiceImpl<typeof Service>> => ({
149
163
  tags: [],
150
164
  profileTags: [],
151
165
  allowActivitySubscriptionsFrom: activitySubscription(),
166
+ ageAssuranceStatus: ageAssuranceStatus(),
152
167
  }
153
168
  })
154
169
  return { actors }
@@ -13,6 +13,7 @@ export enum GateID {
13
13
  * appease TS
14
14
  */
15
15
  _ = '',
16
+ AgeAssurance = 'age_assurance',
16
17
  }
17
18
 
18
19
  /**
package/src/index.ts CHANGED
@@ -10,7 +10,7 @@ import { AtpAgent } from '@atproto/api'
10
10
  import { DAY, SECOND } from '@atproto/common'
11
11
  import { Keypair } from '@atproto/crypto'
12
12
  import { IdResolver } from '@atproto/identity'
13
- import API, { blobResolver, health, wellKnown } from './api'
13
+ import API, { blobResolver, external, health, wellKnown } from './api'
14
14
  import { createBlobDispatcher } from './api/blob-dispatcher'
15
15
  import { AuthVerifier, createPublicKeyObject } from './auth-verifier'
16
16
  import { authWithApiKey as bsyncAuth, createBsyncClient } from './bsync'
@@ -27,6 +27,7 @@ import { FeatureGates } from './feature-gates'
27
27
  import { Hydrator } from './hydration/hydrator'
28
28
  import * as imageServer from './image/server'
29
29
  import { ImageUriBuilder } from './image/uri'
30
+ import { createKwsClient } from './kws'
30
31
  import { createServer } from './lexicon'
31
32
  import { loggerMiddleware } from './logger'
32
33
  import { createStashClient } from './stash'
@@ -58,6 +59,7 @@ export class BskyAppView {
58
59
  }): BskyAppView {
59
60
  const { config, signingKey } = opts
60
61
  const app = express()
62
+ app.set('trust proxy', true)
61
63
  app.use(cors({ maxAge: DAY / SECOND }))
62
64
  app.use(loggerMiddleware)
63
65
  app.use(compression())
@@ -150,6 +152,8 @@ export class BskyAppView {
150
152
  })
151
153
  : undefined
152
154
 
155
+ const kwsClient = config.kws ? createKwsClient(config.kws) : undefined
156
+
153
157
  const entrywayJwtPublicKey = config.entrywayJwtPublicKeyHex
154
158
  ? createPublicKeyObject(config.entrywayJwtPublicKeyHex)
155
159
  : undefined
@@ -186,6 +190,7 @@ export class BskyAppView {
186
190
  authVerifier,
187
191
  featureGates,
188
192
  blobDispatcher,
193
+ kwsClient,
189
194
  })
190
195
 
191
196
  let server = createServer({
@@ -205,6 +210,7 @@ export class BskyAppView {
205
210
  app.use(imageServer.createMiddleware(ctx, { prefix: '/img/' }))
206
211
  app.use(server.xrpc.router)
207
212
  app.use(error.handler)
213
+ app.use('/external', external.createRouter(ctx))
208
214
 
209
215
  return new BskyAppView({ ctx, app })
210
216
  }