@atproto/pds 0.4.219 → 0.4.220

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 (259) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/account-manager/account-manager.d.ts +17 -0
  3. package/dist/account-manager/account-manager.d.ts.map +1 -1
  4. package/dist/account-manager/account-manager.js +27 -3
  5. package/dist/account-manager/account-manager.js.map +1 -1
  6. package/dist/account-manager/oauth-store.d.ts.map +1 -1
  7. package/dist/account-manager/oauth-store.js +9 -1
  8. package/dist/account-manager/oauth-store.js.map +1 -1
  9. package/dist/lexicons/chat/bsky/actor/declaration.defs.d.ts +14 -0
  10. package/dist/lexicons/chat/bsky/actor/declaration.defs.d.ts.map +1 -1
  11. package/dist/lexicons/chat/bsky/actor/declaration.defs.js +1 -0
  12. package/dist/lexicons/chat/bsky/actor/declaration.defs.js.map +1 -1
  13. package/dist/lexicons/chat/bsky/actor/defs.defs.d.ts +35 -0
  14. package/dist/lexicons/chat/bsky/actor/defs.defs.d.ts.map +1 -1
  15. package/dist/lexicons/chat/bsky/actor/defs.defs.js +17 -1
  16. package/dist/lexicons/chat/bsky/actor/defs.defs.js.map +1 -1
  17. package/dist/lexicons/chat/bsky/authFullChatClient.defs.js +1 -1
  18. package/dist/lexicons/chat/bsky/authFullChatClient.defs.js.map +1 -1
  19. package/dist/lexicons/chat/bsky/convo/acceptConvo.defs.d.ts +2 -1
  20. package/dist/lexicons/chat/bsky/convo/acceptConvo.defs.d.ts.map +1 -1
  21. package/dist/lexicons/chat/bsky/convo/acceptConvo.defs.js +2 -1
  22. package/dist/lexicons/chat/bsky/convo/acceptConvo.defs.js.map +1 -1
  23. package/dist/lexicons/chat/bsky/convo/addReaction.defs.d.ts +1 -1
  24. package/dist/lexicons/chat/bsky/convo/addReaction.defs.d.ts.map +1 -1
  25. package/dist/lexicons/chat/bsky/convo/addReaction.defs.js +7 -1
  26. package/dist/lexicons/chat/bsky/convo/addReaction.defs.js.map +1 -1
  27. package/dist/lexicons/chat/bsky/convo/defs.defs.d.ts +430 -3
  28. package/dist/lexicons/chat/bsky/convo/defs.defs.d.ts.map +1 -1
  29. package/dist/lexicons/chat/bsky/convo/defs.defs.js +234 -2
  30. package/dist/lexicons/chat/bsky/convo/defs.defs.js.map +1 -1
  31. package/dist/lexicons/chat/bsky/convo/deleteMessageForSelf.defs.d.ts +2 -1
  32. package/dist/lexicons/chat/bsky/convo/deleteMessageForSelf.defs.d.ts.map +1 -1
  33. package/dist/lexicons/chat/bsky/convo/deleteMessageForSelf.defs.js +2 -1
  34. package/dist/lexicons/chat/bsky/convo/deleteMessageForSelf.defs.js.map +1 -1
  35. package/dist/lexicons/chat/bsky/convo/getConvo.defs.d.ts +2 -1
  36. package/dist/lexicons/chat/bsky/convo/getConvo.defs.d.ts.map +1 -1
  37. package/dist/lexicons/chat/bsky/convo/getConvo.defs.js +2 -1
  38. package/dist/lexicons/chat/bsky/convo/getConvo.defs.js.map +1 -1
  39. package/dist/lexicons/chat/bsky/convo/getConvoAvailability.defs.d.ts +1 -1
  40. package/dist/lexicons/chat/bsky/convo/getConvoAvailability.defs.d.ts.map +1 -1
  41. package/dist/lexicons/chat/bsky/convo/getConvoAvailability.defs.js +1 -1
  42. package/dist/lexicons/chat/bsky/convo/getConvoAvailability.defs.js.map +1 -1
  43. package/dist/lexicons/chat/bsky/convo/getConvoForMembers.defs.d.ts +2 -1
  44. package/dist/lexicons/chat/bsky/convo/getConvoForMembers.defs.d.ts.map +1 -1
  45. package/dist/lexicons/chat/bsky/convo/getConvoForMembers.defs.js +8 -1
  46. package/dist/lexicons/chat/bsky/convo/getConvoForMembers.defs.js.map +1 -1
  47. package/dist/lexicons/chat/bsky/convo/getLog.defs.d.ts +2 -2
  48. package/dist/lexicons/chat/bsky/convo/getLog.defs.d.ts.map +1 -1
  49. package/dist/lexicons/chat/bsky/convo/getLog.defs.js +17 -0
  50. package/dist/lexicons/chat/bsky/convo/getLog.defs.js.map +1 -1
  51. package/dist/lexicons/chat/bsky/convo/getMessages.defs.d.ts +4 -3
  52. package/dist/lexicons/chat/bsky/convo/getMessages.defs.d.ts.map +1 -1
  53. package/dist/lexicons/chat/bsky/convo/getMessages.defs.js +3 -1
  54. package/dist/lexicons/chat/bsky/convo/getMessages.defs.js.map +1 -1
  55. package/dist/lexicons/chat/bsky/convo/leaveConvo.defs.d.ts +2 -1
  56. package/dist/lexicons/chat/bsky/convo/leaveConvo.defs.d.ts.map +1 -1
  57. package/dist/lexicons/chat/bsky/convo/leaveConvo.defs.js +2 -1
  58. package/dist/lexicons/chat/bsky/convo/leaveConvo.defs.js.map +1 -1
  59. package/dist/lexicons/chat/bsky/convo/listConvoRequests.d.ts +3 -0
  60. package/dist/lexicons/chat/bsky/convo/listConvoRequests.d.ts.map +1 -0
  61. package/dist/lexicons/chat/bsky/convo/listConvoRequests.defs.d.ts +25 -0
  62. package/dist/lexicons/chat/bsky/convo/listConvoRequests.defs.d.ts.map +1 -0
  63. package/dist/lexicons/chat/bsky/convo/listConvoRequests.defs.js +58 -0
  64. package/dist/lexicons/chat/bsky/convo/listConvoRequests.defs.js.map +1 -0
  65. package/dist/lexicons/chat/bsky/convo/listConvoRequests.js +45 -0
  66. package/dist/lexicons/chat/bsky/convo/listConvoRequests.js.map +1 -0
  67. package/dist/lexicons/chat/bsky/convo/listConvos.defs.d.ts +7 -0
  68. package/dist/lexicons/chat/bsky/convo/listConvos.defs.d.ts.map +1 -1
  69. package/dist/lexicons/chat/bsky/convo/listConvos.defs.js +2 -0
  70. package/dist/lexicons/chat/bsky/convo/listConvos.defs.js.map +1 -1
  71. package/dist/lexicons/chat/bsky/convo/lockConvo.d.ts +3 -0
  72. package/dist/lexicons/chat/bsky/convo/lockConvo.d.ts.map +1 -0
  73. package/dist/lexicons/chat/bsky/convo/lockConvo.defs.d.ts +22 -0
  74. package/dist/lexicons/chat/bsky/convo/lockConvo.defs.d.ts.map +1 -0
  75. package/dist/lexicons/chat/bsky/convo/lockConvo.defs.js +50 -0
  76. package/dist/lexicons/chat/bsky/convo/lockConvo.defs.js.map +1 -0
  77. package/dist/lexicons/chat/bsky/convo/lockConvo.js +45 -0
  78. package/dist/lexicons/chat/bsky/convo/lockConvo.js.map +1 -0
  79. package/dist/lexicons/chat/bsky/convo/muteConvo.defs.d.ts +2 -1
  80. package/dist/lexicons/chat/bsky/convo/muteConvo.defs.d.ts.map +1 -1
  81. package/dist/lexicons/chat/bsky/convo/muteConvo.defs.js +2 -1
  82. package/dist/lexicons/chat/bsky/convo/muteConvo.defs.js.map +1 -1
  83. package/dist/lexicons/chat/bsky/convo/removeReaction.defs.d.ts +1 -1
  84. package/dist/lexicons/chat/bsky/convo/removeReaction.defs.d.ts.map +1 -1
  85. package/dist/lexicons/chat/bsky/convo/removeReaction.defs.js +6 -1
  86. package/dist/lexicons/chat/bsky/convo/removeReaction.defs.js.map +1 -1
  87. package/dist/lexicons/chat/bsky/convo/sendMessage.defs.d.ts +2 -1
  88. package/dist/lexicons/chat/bsky/convo/sendMessage.defs.d.ts.map +1 -1
  89. package/dist/lexicons/chat/bsky/convo/sendMessage.defs.js +2 -1
  90. package/dist/lexicons/chat/bsky/convo/sendMessage.defs.js.map +1 -1
  91. package/dist/lexicons/chat/bsky/convo/sendMessageBatch.defs.d.ts +2 -1
  92. package/dist/lexicons/chat/bsky/convo/sendMessageBatch.defs.d.ts.map +1 -1
  93. package/dist/lexicons/chat/bsky/convo/sendMessageBatch.defs.js +2 -1
  94. package/dist/lexicons/chat/bsky/convo/sendMessageBatch.defs.js.map +1 -1
  95. package/dist/lexicons/chat/bsky/convo/unlockConvo.d.ts +3 -0
  96. package/dist/lexicons/chat/bsky/convo/unlockConvo.d.ts.map +1 -0
  97. package/dist/lexicons/chat/bsky/convo/unlockConvo.defs.d.ts +22 -0
  98. package/dist/lexicons/chat/bsky/convo/unlockConvo.defs.d.ts.map +1 -0
  99. package/dist/lexicons/chat/bsky/convo/unlockConvo.defs.js +50 -0
  100. package/dist/lexicons/chat/bsky/convo/unlockConvo.defs.js.map +1 -0
  101. package/dist/lexicons/chat/bsky/convo/unlockConvo.js +45 -0
  102. package/dist/lexicons/chat/bsky/convo/unlockConvo.js.map +1 -0
  103. package/dist/lexicons/chat/bsky/convo/unmuteConvo.defs.d.ts +2 -1
  104. package/dist/lexicons/chat/bsky/convo/unmuteConvo.defs.d.ts.map +1 -1
  105. package/dist/lexicons/chat/bsky/convo/unmuteConvo.defs.js +2 -1
  106. package/dist/lexicons/chat/bsky/convo/unmuteConvo.defs.js.map +1 -1
  107. package/dist/lexicons/chat/bsky/convo/updateAllRead.defs.d.ts +1 -0
  108. package/dist/lexicons/chat/bsky/convo/updateAllRead.defs.d.ts.map +1 -1
  109. package/dist/lexicons/chat/bsky/convo/updateAllRead.defs.js +1 -0
  110. package/dist/lexicons/chat/bsky/convo/updateAllRead.defs.js.map +1 -1
  111. package/dist/lexicons/chat/bsky/convo/updateRead.defs.d.ts +2 -1
  112. package/dist/lexicons/chat/bsky/convo/updateRead.defs.d.ts.map +1 -1
  113. package/dist/lexicons/chat/bsky/convo/updateRead.defs.js +2 -1
  114. package/dist/lexicons/chat/bsky/convo/updateRead.defs.js.map +1 -1
  115. package/dist/lexicons/chat/bsky/convo.d.ts +3 -0
  116. package/dist/lexicons/chat/bsky/convo.d.ts.map +1 -1
  117. package/dist/lexicons/chat/bsky/convo.js +4 -1
  118. package/dist/lexicons/chat/bsky/convo.js.map +1 -1
  119. package/dist/lexicons/chat/bsky/group/addMembers.d.ts +3 -0
  120. package/dist/lexicons/chat/bsky/group/addMembers.d.ts.map +1 -0
  121. package/dist/lexicons/chat/bsky/group/addMembers.defs.d.ts +28 -0
  122. package/dist/lexicons/chat/bsky/group/addMembers.defs.d.ts.map +1 -0
  123. package/dist/lexicons/chat/bsky/group/addMembers.defs.js +63 -0
  124. package/dist/lexicons/chat/bsky/group/addMembers.defs.js.map +1 -0
  125. package/dist/lexicons/chat/bsky/group/addMembers.js +45 -0
  126. package/dist/lexicons/chat/bsky/group/addMembers.js.map +1 -0
  127. package/dist/lexicons/chat/bsky/group/approveJoinRequest.d.ts +3 -0
  128. package/dist/lexicons/chat/bsky/group/approveJoinRequest.d.ts.map +1 -0
  129. package/dist/lexicons/chat/bsky/group/approveJoinRequest.defs.d.ts +28 -0
  130. package/dist/lexicons/chat/bsky/group/approveJoinRequest.defs.d.ts.map +1 -0
  131. package/dist/lexicons/chat/bsky/group/approveJoinRequest.defs.js +50 -0
  132. package/dist/lexicons/chat/bsky/group/approveJoinRequest.defs.js.map +1 -0
  133. package/dist/lexicons/chat/bsky/group/approveJoinRequest.js +45 -0
  134. package/dist/lexicons/chat/bsky/group/approveJoinRequest.js.map +1 -0
  135. package/dist/lexicons/chat/bsky/group/createGroup.d.ts +3 -0
  136. package/dist/lexicons/chat/bsky/group/createGroup.d.ts.map +1 -0
  137. package/dist/lexicons/chat/bsky/group/createGroup.defs.d.ts +36 -0
  138. package/dist/lexicons/chat/bsky/group/createGroup.defs.d.ts.map +1 -0
  139. package/dist/lexicons/chat/bsky/group/createGroup.defs.js +59 -0
  140. package/dist/lexicons/chat/bsky/group/createGroup.defs.js.map +1 -0
  141. package/dist/lexicons/chat/bsky/group/createGroup.js +45 -0
  142. package/dist/lexicons/chat/bsky/group/createGroup.js.map +1 -0
  143. package/dist/lexicons/chat/bsky/group/createJoinLink.d.ts +3 -0
  144. package/dist/lexicons/chat/bsky/group/createJoinLink.d.ts.map +1 -0
  145. package/dist/lexicons/chat/bsky/group/createJoinLink.defs.d.ts +26 -0
  146. package/dist/lexicons/chat/bsky/group/createJoinLink.defs.d.ts.map +1 -0
  147. package/dist/lexicons/chat/bsky/group/createJoinLink.defs.js +54 -0
  148. package/dist/lexicons/chat/bsky/group/createJoinLink.defs.js.map +1 -0
  149. package/dist/lexicons/chat/bsky/group/createJoinLink.js +45 -0
  150. package/dist/lexicons/chat/bsky/group/createJoinLink.js.map +1 -0
  151. package/dist/lexicons/chat/bsky/group/defs.d.ts +3 -0
  152. package/dist/lexicons/chat/bsky/group/defs.d.ts.map +1 -0
  153. package/dist/lexicons/chat/bsky/group/defs.defs.d.ts +47 -0
  154. package/dist/lexicons/chat/bsky/group/defs.defs.d.ts.map +1 -0
  155. package/dist/lexicons/chat/bsky/group/defs.defs.js +69 -0
  156. package/dist/lexicons/chat/bsky/group/defs.defs.js.map +1 -0
  157. package/dist/lexicons/chat/bsky/group/defs.js +45 -0
  158. package/dist/lexicons/chat/bsky/group/defs.js.map +1 -0
  159. package/dist/lexicons/chat/bsky/group/disableJoinLink.d.ts +3 -0
  160. package/dist/lexicons/chat/bsky/group/disableJoinLink.d.ts.map +1 -0
  161. package/dist/lexicons/chat/bsky/group/disableJoinLink.defs.d.ts +22 -0
  162. package/dist/lexicons/chat/bsky/group/disableJoinLink.defs.d.ts.map +1 -0
  163. package/dist/lexicons/chat/bsky/group/disableJoinLink.defs.js +50 -0
  164. package/dist/lexicons/chat/bsky/group/disableJoinLink.defs.js.map +1 -0
  165. package/dist/lexicons/chat/bsky/group/disableJoinLink.js +45 -0
  166. package/dist/lexicons/chat/bsky/group/disableJoinLink.js.map +1 -0
  167. package/dist/lexicons/chat/bsky/group/editGroup.d.ts +3 -0
  168. package/dist/lexicons/chat/bsky/group/editGroup.d.ts.map +1 -0
  169. package/dist/lexicons/chat/bsky/group/editGroup.defs.d.ts +32 -0
  170. package/dist/lexicons/chat/bsky/group/editGroup.defs.d.ts.map +1 -0
  171. package/dist/lexicons/chat/bsky/group/editGroup.defs.js +53 -0
  172. package/dist/lexicons/chat/bsky/group/editGroup.defs.js.map +1 -0
  173. package/dist/lexicons/chat/bsky/group/editGroup.js +45 -0
  174. package/dist/lexicons/chat/bsky/group/editGroup.js.map +1 -0
  175. package/dist/lexicons/chat/bsky/group/editJoinLink.d.ts +3 -0
  176. package/dist/lexicons/chat/bsky/group/editJoinLink.d.ts.map +1 -0
  177. package/dist/lexicons/chat/bsky/group/editJoinLink.defs.d.ts +26 -0
  178. package/dist/lexicons/chat/bsky/group/editJoinLink.defs.d.ts.map +1 -0
  179. package/dist/lexicons/chat/bsky/group/editJoinLink.defs.js +54 -0
  180. package/dist/lexicons/chat/bsky/group/editJoinLink.defs.js.map +1 -0
  181. package/dist/lexicons/chat/bsky/group/editJoinLink.js +45 -0
  182. package/dist/lexicons/chat/bsky/group/editJoinLink.js.map +1 -0
  183. package/dist/lexicons/chat/bsky/group/enableJoinLink.d.ts +3 -0
  184. package/dist/lexicons/chat/bsky/group/enableJoinLink.d.ts.map +1 -0
  185. package/dist/lexicons/chat/bsky/group/enableJoinLink.defs.d.ts +22 -0
  186. package/dist/lexicons/chat/bsky/group/enableJoinLink.defs.d.ts.map +1 -0
  187. package/dist/lexicons/chat/bsky/group/enableJoinLink.defs.js +50 -0
  188. package/dist/lexicons/chat/bsky/group/enableJoinLink.defs.js.map +1 -0
  189. package/dist/lexicons/chat/bsky/group/enableJoinLink.js +45 -0
  190. package/dist/lexicons/chat/bsky/group/enableJoinLink.js.map +1 -0
  191. package/dist/lexicons/chat/bsky/group/getGroupPublicInfo.d.ts +3 -0
  192. package/dist/lexicons/chat/bsky/group/getGroupPublicInfo.d.ts.map +1 -0
  193. package/dist/lexicons/chat/bsky/group/getGroupPublicInfo.defs.d.ts +20 -0
  194. package/dist/lexicons/chat/bsky/group/getGroupPublicInfo.defs.d.ts.map +1 -0
  195. package/dist/lexicons/chat/bsky/group/getGroupPublicInfo.defs.js +50 -0
  196. package/dist/lexicons/chat/bsky/group/getGroupPublicInfo.defs.js.map +1 -0
  197. package/dist/lexicons/chat/bsky/group/getGroupPublicInfo.js +45 -0
  198. package/dist/lexicons/chat/bsky/group/getGroupPublicInfo.js.map +1 -0
  199. package/dist/lexicons/chat/bsky/group/listJoinRequests.d.ts +3 -0
  200. package/dist/lexicons/chat/bsky/group/listJoinRequests.d.ts.map +1 -0
  201. package/dist/lexicons/chat/bsky/group/listJoinRequests.defs.d.ts +26 -0
  202. package/dist/lexicons/chat/bsky/group/listJoinRequests.defs.d.ts.map +1 -0
  203. package/dist/lexicons/chat/bsky/group/listJoinRequests.defs.js +55 -0
  204. package/dist/lexicons/chat/bsky/group/listJoinRequests.defs.js.map +1 -0
  205. package/dist/lexicons/chat/bsky/group/listJoinRequests.js +45 -0
  206. package/dist/lexicons/chat/bsky/group/listJoinRequests.js.map +1 -0
  207. package/dist/lexicons/chat/bsky/group/rejectJoinRequest.d.ts +3 -0
  208. package/dist/lexicons/chat/bsky/group/rejectJoinRequest.d.ts.map +1 -0
  209. package/dist/lexicons/chat/bsky/group/rejectJoinRequest.defs.d.ts +23 -0
  210. package/dist/lexicons/chat/bsky/group/rejectJoinRequest.defs.d.ts.map +1 -0
  211. package/dist/lexicons/chat/bsky/group/rejectJoinRequest.defs.js +14 -0
  212. package/dist/lexicons/chat/bsky/group/rejectJoinRequest.defs.js.map +1 -0
  213. package/dist/lexicons/chat/bsky/group/rejectJoinRequest.js +45 -0
  214. package/dist/lexicons/chat/bsky/group/rejectJoinRequest.js.map +1 -0
  215. package/dist/lexicons/chat/bsky/group/removeMembers.d.ts +3 -0
  216. package/dist/lexicons/chat/bsky/group/removeMembers.d.ts.map +1 -0
  217. package/dist/lexicons/chat/bsky/group/removeMembers.defs.d.ts +28 -0
  218. package/dist/lexicons/chat/bsky/group/removeMembers.defs.d.ts.map +1 -0
  219. package/dist/lexicons/chat/bsky/group/removeMembers.defs.js +53 -0
  220. package/dist/lexicons/chat/bsky/group/removeMembers.defs.js.map +1 -0
  221. package/dist/lexicons/chat/bsky/group/removeMembers.js +45 -0
  222. package/dist/lexicons/chat/bsky/group/removeMembers.js.map +1 -0
  223. package/dist/lexicons/chat/bsky/group/requestJoin.d.ts +3 -0
  224. package/dist/lexicons/chat/bsky/group/requestJoin.d.ts.map +1 -0
  225. package/dist/lexicons/chat/bsky/group/requestJoin.defs.d.ts +28 -0
  226. package/dist/lexicons/chat/bsky/group/requestJoin.defs.d.ts.map +1 -0
  227. package/dist/lexicons/chat/bsky/group/requestJoin.defs.js +58 -0
  228. package/dist/lexicons/chat/bsky/group/requestJoin.defs.js.map +1 -0
  229. package/dist/lexicons/chat/bsky/group/requestJoin.js +45 -0
  230. package/dist/lexicons/chat/bsky/group/requestJoin.js.map +1 -0
  231. package/dist/lexicons/chat/bsky/group.d.ts +15 -0
  232. package/dist/lexicons/chat/bsky/group.d.ts.map +1 -0
  233. package/dist/lexicons/chat/bsky/group.js +54 -0
  234. package/dist/lexicons/chat/bsky/group.js.map +1 -0
  235. package/dist/lexicons/chat/bsky/moderation/getMessageContext.defs.d.ts +2 -2
  236. package/dist/lexicons/chat/bsky/moderation/getMessageContext.defs.d.ts.map +1 -1
  237. package/dist/lexicons/chat/bsky/moderation/getMessageContext.defs.js +1 -0
  238. package/dist/lexicons/chat/bsky/moderation/getMessageContext.defs.js.map +1 -1
  239. package/dist/lexicons/chat/bsky/moderation/subscribeModEvents.d.ts +3 -0
  240. package/dist/lexicons/chat/bsky/moderation/subscribeModEvents.d.ts.map +1 -0
  241. package/dist/lexicons/chat/bsky/moderation/subscribeModEvents.defs.d.ts +32 -0
  242. package/dist/lexicons/chat/bsky/moderation/subscribeModEvents.defs.d.ts.map +1 -0
  243. package/dist/lexicons/chat/bsky/moderation/subscribeModEvents.defs.js +23 -0
  244. package/dist/lexicons/chat/bsky/moderation/subscribeModEvents.defs.js.map +1 -0
  245. package/dist/lexicons/chat/bsky/moderation/subscribeModEvents.js +45 -0
  246. package/dist/lexicons/chat/bsky/moderation/subscribeModEvents.js.map +1 -0
  247. package/dist/lexicons/chat/bsky/moderation.d.ts +1 -0
  248. package/dist/lexicons/chat/bsky/moderation.d.ts.map +1 -1
  249. package/dist/lexicons/chat/bsky/moderation.js +2 -1
  250. package/dist/lexicons/chat/bsky/moderation.js.map +1 -1
  251. package/dist/lexicons/chat/bsky.d.ts +1 -0
  252. package/dist/lexicons/chat/bsky.d.ts.map +1 -1
  253. package/dist/lexicons/chat/bsky.js +2 -1
  254. package/dist/lexicons/chat/bsky.js.map +1 -1
  255. package/package.json +10 -10
  256. package/src/account-manager/account-manager.ts +23 -2
  257. package/src/account-manager/oauth-store.ts +10 -2
  258. package/tests/auth.test.ts +89 -0
  259. package/tsconfig.build.tsbuildinfo +1 -1
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ /*
3
+ * THIS FILE WAS GENERATED BY "@atproto/lex". DO NOT EDIT.
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
22
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
23
+ };
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ exports.$defs = void 0;
43
+ __exportStar(require("./subscribeModEvents.defs.js"), exports);
44
+ exports.$defs = __importStar(require("./subscribeModEvents.defs.js"));
45
+ //# sourceMappingURL=subscribeModEvents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscribeModEvents.js","sourceRoot":"","sources":["../../../../../src/lexicons/chat/bsky/moderation/subscribeModEvents.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,+DAA4C;AAC5C,sEAAqD","sourcesContent":["/*\n * THIS FILE WAS GENERATED BY \"@atproto/lex\". DO NOT EDIT.\n */\n\nexport * from './subscribeModEvents.defs.js'\nexport * as $defs from './subscribeModEvents.defs.js'\n"]}
@@ -1,4 +1,5 @@
1
1
  export * as getActorMetadata from './moderation/getActorMetadata.js';
2
2
  export * as getMessageContext from './moderation/getMessageContext.js';
3
+ export * as subscribeModEvents from './moderation/subscribeModEvents.js';
3
4
  export * as updateActorAccess from './moderation/updateActorAccess.js';
4
5
  //# sourceMappingURL=moderation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"moderation.d.ts","sourceRoot":"","sources":["../../../../src/lexicons/chat/bsky/moderation.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,gBAAgB,MAAM,kCAAkC,CAAA;AACpE,OAAO,KAAK,iBAAiB,MAAM,mCAAmC,CAAA;AACtE,OAAO,KAAK,iBAAiB,MAAM,mCAAmC,CAAA"}
1
+ {"version":3,"file":"moderation.d.ts","sourceRoot":"","sources":["../../../../src/lexicons/chat/bsky/moderation.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,gBAAgB,MAAM,kCAAkC,CAAA;AACpE,OAAO,KAAK,iBAAiB,MAAM,mCAAmC,CAAA;AACtE,OAAO,KAAK,kBAAkB,MAAM,oCAAoC,CAAA;AACxE,OAAO,KAAK,iBAAiB,MAAM,mCAAmC,CAAA"}
@@ -36,8 +36,9 @@ var __importStar = (this && this.__importStar) || (function () {
36
36
  };
37
37
  })();
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.updateActorAccess = exports.getMessageContext = exports.getActorMetadata = void 0;
39
+ exports.updateActorAccess = exports.subscribeModEvents = exports.getMessageContext = exports.getActorMetadata = void 0;
40
40
  exports.getActorMetadata = __importStar(require("./moderation/getActorMetadata.js"));
41
41
  exports.getMessageContext = __importStar(require("./moderation/getMessageContext.js"));
42
+ exports.subscribeModEvents = __importStar(require("./moderation/subscribeModEvents.js"));
42
43
  exports.updateActorAccess = __importStar(require("./moderation/updateActorAccess.js"));
43
44
  //# sourceMappingURL=moderation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"moderation.js","sourceRoot":"","sources":["../../../../src/lexicons/chat/bsky/moderation.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,qFAAoE;AACpE,uFAAsE;AACtE,uFAAsE","sourcesContent":["/*\n * THIS FILE WAS GENERATED BY \"@atproto/lex\". DO NOT EDIT.\n */\n\nexport * as getActorMetadata from './moderation/getActorMetadata.js'\nexport * as getMessageContext from './moderation/getMessageContext.js'\nexport * as updateActorAccess from './moderation/updateActorAccess.js'\n"]}
1
+ {"version":3,"file":"moderation.js","sourceRoot":"","sources":["../../../../src/lexicons/chat/bsky/moderation.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,qFAAoE;AACpE,uFAAsE;AACtE,yFAAwE;AACxE,uFAAsE","sourcesContent":["/*\n * THIS FILE WAS GENERATED BY \"@atproto/lex\". DO NOT EDIT.\n */\n\nexport * as getActorMetadata from './moderation/getActorMetadata.js'\nexport * as getMessageContext from './moderation/getMessageContext.js'\nexport * as subscribeModEvents from './moderation/subscribeModEvents.js'\nexport * as updateActorAccess from './moderation/updateActorAccess.js'\n"]}
@@ -1,5 +1,6 @@
1
1
  export * as actor from './bsky/actor.js';
2
2
  export * as authFullChatClient from './bsky/authFullChatClient.js';
3
3
  export * as convo from './bsky/convo.js';
4
+ export * as group from './bsky/group.js';
4
5
  export * as moderation from './bsky/moderation.js';
5
6
  //# sourceMappingURL=bsky.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bsky.d.ts","sourceRoot":"","sources":["../../../src/lexicons/chat/bsky.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,iBAAiB,CAAA;AACxC,OAAO,KAAK,kBAAkB,MAAM,8BAA8B,CAAA;AAClE,OAAO,KAAK,KAAK,MAAM,iBAAiB,CAAA;AACxC,OAAO,KAAK,UAAU,MAAM,sBAAsB,CAAA"}
1
+ {"version":3,"file":"bsky.d.ts","sourceRoot":"","sources":["../../../src/lexicons/chat/bsky.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,iBAAiB,CAAA;AACxC,OAAO,KAAK,kBAAkB,MAAM,8BAA8B,CAAA;AAClE,OAAO,KAAK,KAAK,MAAM,iBAAiB,CAAA;AACxC,OAAO,KAAK,KAAK,MAAM,iBAAiB,CAAA;AACxC,OAAO,KAAK,UAAU,MAAM,sBAAsB,CAAA"}
@@ -36,9 +36,10 @@ var __importStar = (this && this.__importStar) || (function () {
36
36
  };
37
37
  })();
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.moderation = exports.convo = exports.authFullChatClient = exports.actor = void 0;
39
+ exports.moderation = exports.group = exports.convo = exports.authFullChatClient = exports.actor = void 0;
40
40
  exports.actor = __importStar(require("./bsky/actor.js"));
41
41
  exports.authFullChatClient = __importStar(require("./bsky/authFullChatClient.js"));
42
42
  exports.convo = __importStar(require("./bsky/convo.js"));
43
+ exports.group = __importStar(require("./bsky/group.js"));
43
44
  exports.moderation = __importStar(require("./bsky/moderation.js"));
44
45
  //# sourceMappingURL=bsky.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bsky.js","sourceRoot":"","sources":["../../../src/lexicons/chat/bsky.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,yDAAwC;AACxC,mFAAkE;AAClE,yDAAwC;AACxC,mEAAkD","sourcesContent":["/*\n * THIS FILE WAS GENERATED BY \"@atproto/lex\". DO NOT EDIT.\n */\n\nexport * as actor from './bsky/actor.js'\nexport * as authFullChatClient from './bsky/authFullChatClient.js'\nexport * as convo from './bsky/convo.js'\nexport * as moderation from './bsky/moderation.js'\n"]}
1
+ {"version":3,"file":"bsky.js","sourceRoot":"","sources":["../../../src/lexicons/chat/bsky.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,yDAAwC;AACxC,mFAAkE;AAClE,yDAAwC;AACxC,yDAAwC;AACxC,mEAAkD","sourcesContent":["/*\n * THIS FILE WAS GENERATED BY \"@atproto/lex\". DO NOT EDIT.\n */\n\nexport * as actor from './bsky/actor.js'\nexport * as authFullChatClient from './bsky/authFullChatClient.js'\nexport * as convo from './bsky/convo.js'\nexport * as group from './bsky/group.js'\nexport * as moderation from './bsky/moderation.js'\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atproto/pds",
3
- "version": "0.4.219",
3
+ "version": "0.4.220",
4
4
  "license": "MIT",
5
5
  "description": "Reference implementation of atproto Personal Data Server (PDS)",
6
6
  "keywords": [
@@ -45,24 +45,24 @@
45
45
  "undici": "^6.19.8",
46
46
  "zod": "^3.23.8",
47
47
  "@atproto-labs/fetch-node": "^0.2.0",
48
- "@atproto-labs/simple-store": "^0.3.0",
49
- "@atproto-labs/simple-store-memory": "^0.1.4",
50
48
  "@atproto-labs/simple-store-redis": "^0.0.1",
49
+ "@atproto-labs/simple-store-memory": "^0.1.4",
50
+ "@atproto-labs/simple-store": "^0.3.0",
51
51
  "@atproto-labs/xrpc-utils": "^0.0.24",
52
- "@atproto/aws": "^0.2.32",
53
52
  "@atproto/common": "^0.5.16",
54
53
  "@atproto/crypto": "^0.4.5",
55
54
  "@atproto/identity": "^0.4.12",
56
55
  "@atproto/lex": "^0.0.25",
56
+ "@atproto/aws": "^0.2.32",
57
57
  "@atproto/lex-cbor": "^0.0.16",
58
- "@atproto/lex-data": "^0.0.15",
59
58
  "@atproto/lex-json": "^0.0.16",
60
- "@atproto/oauth-provider": "^0.16.0",
59
+ "@atproto/lex-data": "^0.0.15",
61
60
  "@atproto/oauth-scopes": "^0.3.2",
62
- "@atproto/repo": "^0.9.1",
63
- "@atproto/syntax": "^0.5.4",
61
+ "@atproto/oauth-provider": "^0.16.1",
64
62
  "@atproto/xrpc": "^0.7.7",
65
- "@atproto/xrpc-server": "^0.10.20"
63
+ "@atproto/syntax": "^0.5.4",
64
+ "@atproto/xrpc-server": "^0.10.20",
65
+ "@atproto/repo": "^0.9.1"
66
66
  },
67
67
  "devDependencies": {
68
68
  "@atproto/pds-entryway": "npm:@atproto/pds@0.3.0-entryway.3",
@@ -80,7 +80,7 @@
80
80
  "ts-node": "^10.8.2",
81
81
  "typescript": "^5.6.3",
82
82
  "ws": "^8.12.0",
83
- "@atproto/api": "^0.19.8",
83
+ "@atproto/api": "^0.19.9",
84
84
  "@atproto/bsky": "^0.0.226",
85
85
  "@atproto/lex-document": "^0.0.20",
86
86
  "@atproto/oauth-client-browser-example": "^0.0.10"
@@ -32,6 +32,27 @@ import * as token from './helpers/token'
32
32
 
33
33
  export { AccountStatus, formatAccountStatus } from './helpers/account'
34
34
 
35
+ /**
36
+ * Thrown by {@link AccountManager.login} when the identifier resolved to a
37
+ * known account but the supplied credentials (account password / app
38
+ * password) did not match. The matched `did` is attached so downstream
39
+ * callers can distinguish "identifier known, credentials wrong" from
40
+ * "identifier unknown" (which continues to throw a plain
41
+ * {@link AuthRequiredError}).
42
+ *
43
+ * Callers should take care that remote clients *cannot* distinguish the above,
44
+ * to prevent enumeration attacks. (Tested for in
45
+ * packages/pds/tests/auth.test.ts)
46
+ */
47
+ export class InvalidPasswordError extends AuthRequiredError {
48
+ constructor(
49
+ public readonly did: string,
50
+ errorMessage = 'Invalid identifier or password',
51
+ ) {
52
+ super(errorMessage)
53
+ }
54
+ }
55
+
35
56
  export type AccountManagerDbConfig = {
36
57
  accountDbLoc: string
37
58
  disableWalAutoCheckpoint: boolean
@@ -400,11 +421,11 @@ export class AccountManager {
400
421
  if (!validAccountPass) {
401
422
  // takendown/suspended accounts cannot login with app password
402
423
  if (isSoftDeleted) {
403
- throw new AuthRequiredError('Invalid identifier or password')
424
+ throw new InvalidPasswordError(user.did)
404
425
  }
405
426
  appPassword = await this.verifyAppPassword(user.did, password)
406
427
  if (appPassword === null) {
407
- throw new AuthRequiredError('Invalid identifier or password')
428
+ throw new InvalidPasswordError(user.did)
408
429
  }
409
430
  }
410
431
 
@@ -23,6 +23,7 @@ import {
23
23
  DeviceStore,
24
24
  FoundRequestResult,
25
25
  HandleUnavailableError,
26
+ InvalidCredentialsError,
26
27
  InvalidInviteCodeError,
27
28
  InvalidRequestError,
28
29
  LexiconData,
@@ -53,7 +54,7 @@ import { ImageUrlBuilder } from '../image/image-url-builder'
53
54
  import { dbLogger } from '../logger'
54
55
  import { ServerMailer } from '../mailer'
55
56
  import { Sequencer, syncEvtDataFromCommit } from '../sequencer'
56
- import { AccountManager } from './account-manager'
57
+ import { AccountManager, InvalidPasswordError } from './account-manager'
57
58
  import * as schemas from './db/schema'
58
59
  import * as accountHelper from './helpers/account'
59
60
  import { AccountStatus } from './helpers/account'
@@ -236,8 +237,15 @@ export class OAuthStore
236
237
 
237
238
  return this.buildAccount(user)
238
239
  } catch (err) {
240
+ // `InvalidPasswordError` is a subclass of `XrpcAuthRequiredError`,
241
+ // so it must be checked first. Surfacing the matched `did` as the
242
+ // `sub` lets the oauth-provider's `onSignInFailed` hook distinguish
243
+ // "identifier known, credentials wrong" from "identifier unknown".
244
+ if (err instanceof InvalidPasswordError) {
245
+ throw new InvalidCredentialsError(err.message, err.did, err)
246
+ }
239
247
  if (err instanceof XrpcAuthRequiredError) {
240
- throw new InvalidRequestError(err.message, err)
248
+ throw new InvalidCredentialsError(err.message, undefined, err)
241
249
  }
242
250
  throw err
243
251
  }
@@ -1,4 +1,5 @@
1
1
  import * as jose from 'jose'
2
+ import { request as undiciRequest } from 'undici'
2
3
  import { AtpAgent } from '@atproto/api'
3
4
  import { SeedClient, TestNetworkNoAppView } from '@atproto/dev-env'
4
5
  import { createRefreshToken } from '../src/account-manager/helpers/auth'
@@ -121,6 +122,94 @@ describe('auth', () => {
121
122
  )
122
123
  })
123
124
 
125
+ it('returns identical error responses for unknown identifier and known-identifier-with-wrong-password.', async () => {
126
+ const probe = async (info: { identifier: string; password: string }) => {
127
+ const res = await fetch(
128
+ `${network.pds.url}/xrpc/com.atproto.server.createSession`,
129
+ {
130
+ method: 'POST',
131
+ headers: { 'content-type': 'application/json' },
132
+ body: JSON.stringify(info),
133
+ },
134
+ )
135
+ return { status: res.status, body: await res.json() }
136
+ }
137
+
138
+ // bob.test was created above with password 'password'.
139
+ const unknownIdentifier = await probe({
140
+ identifier: 'no-such-user.test',
141
+ password: 'any-password',
142
+ })
143
+ const knownIdentifierWrongPassword = await probe({
144
+ identifier: 'bob.test',
145
+ password: 'wrong-password',
146
+ })
147
+
148
+ expect(knownIdentifierWrongPassword).toEqual(unknownIdentifier)
149
+ expect(unknownIdentifier).toEqual({
150
+ status: 401,
151
+ body: {
152
+ error: 'AuthenticationRequired',
153
+ message: 'Invalid identifier or password',
154
+ },
155
+ })
156
+ })
157
+
158
+ it('returns identical error responses for unknown identifier and known-identifier-with-wrong-password in the OAuth sign-in flow.', async () => {
159
+ const issuer = new URL(network.pds.url)
160
+ const csrfToken = 'a'.repeat(24)
161
+ const probe = async (credentials: {
162
+ username: string
163
+ password: string
164
+ }) => {
165
+ // @NOTE We use undici's low-level `request` rather than fetch(),
166
+ // because the WHATWG fetch API treats `sec-fetch-*` as forbidden
167
+ // request headers and silently overwrites them with its own values
168
+ // (notably `sec-fetch-mode: cors` in Node). The endpoint requires
169
+ // `same-origin` here, so we need raw header control.
170
+ const res = await undiciRequest(
171
+ `${issuer.origin}/@atproto/oauth-provider/~api/sign-in`,
172
+ {
173
+ method: 'POST',
174
+ headers: {
175
+ 'content-type': 'application/json',
176
+ // The endpoint restricts fetches to same-origin navigations
177
+ // from either `/oauth/authorize` or `/account[/*]`. Use the
178
+ // first-party `/account` path so we don't need a live OAuth
179
+ // authorization request to exist in the request store.
180
+ 'sec-fetch-mode': 'same-origin',
181
+ 'sec-fetch-site': 'same-origin',
182
+ origin: issuer.origin,
183
+ referer: `${issuer.origin}/account`,
184
+ 'x-csrf-token': csrfToken,
185
+ cookie: `csrf-token=${csrfToken}`,
186
+ },
187
+ body: JSON.stringify({ locale: 'en', ...credentials }),
188
+ },
189
+ )
190
+ return { status: res.statusCode, body: await res.body.json() }
191
+ }
192
+
193
+ // bob.test was created above with password 'password'.
194
+ const unknownIdentifier = await probe({
195
+ username: 'no-such-user.test',
196
+ password: 'any-password',
197
+ })
198
+ const knownIdentifierWrongPassword = await probe({
199
+ username: 'bob.test',
200
+ password: 'wrong-password',
201
+ })
202
+
203
+ expect(knownIdentifierWrongPassword).toEqual(unknownIdentifier)
204
+ expect(unknownIdentifier).toEqual({
205
+ status: 400,
206
+ body: {
207
+ error: 'invalid_request',
208
+ error_description: 'Invalid identifier or password',
209
+ },
210
+ })
211
+ })
212
+
124
213
  it('provides valid access and refresh token on session refresh.', async () => {
125
214
  const email = 'carol@test.com'
126
215
  const account = await createAccount({