@atproto/pds 0.4.20 → 0.4.22

Sign up to get free protection for your applications and to get access to all the features.
Files changed (417) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/api/app/bsky/actor/index.d.ts.map +1 -1
  3. package/dist/api/app/bsky/actor/index.js +0 -6
  4. package/dist/api/app/bsky/actor/index.js.map +1 -1
  5. package/dist/api/app/bsky/feed/getFeed.d.ts.map +1 -1
  6. package/dist/api/app/bsky/feed/getFeed.js +1 -3
  7. package/dist/api/app/bsky/feed/getFeed.js.map +1 -1
  8. package/dist/api/app/bsky/feed/index.d.ts.map +1 -1
  9. package/dist/api/app/bsky/feed/index.js +0 -20
  10. package/dist/api/app/bsky/feed/index.js.map +1 -1
  11. package/dist/api/app/bsky/index.d.ts.map +1 -1
  12. package/dist/api/app/bsky/index.js +0 -6
  13. package/dist/api/app/bsky/index.js.map +1 -1
  14. package/dist/api/app/bsky/notification/index.d.ts.map +1 -1
  15. package/dist/api/app/bsky/notification/index.js +0 -6
  16. package/dist/api/app/bsky/notification/index.js.map +1 -1
  17. package/dist/api/com/atproto/index.d.ts.map +1 -1
  18. package/dist/api/com/atproto/index.js +0 -2
  19. package/dist/api/com/atproto/index.js.map +1 -1
  20. package/dist/api/com/atproto/repo/getRecord.js +1 -1
  21. package/dist/api/com/atproto/repo/getRecord.js.map +1 -1
  22. package/dist/api/index.d.ts.map +1 -1
  23. package/dist/api/index.js +0 -2
  24. package/dist/api/index.js.map +1 -1
  25. package/dist/context.d.ts +3 -0
  26. package/dist/context.d.ts.map +1 -1
  27. package/dist/context.js +30 -0
  28. package/dist/context.js.map +1 -1
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +26 -45
  31. package/dist/index.js.map +1 -1
  32. package/dist/lexicon/index.d.ts +59 -0
  33. package/dist/lexicon/index.d.ts.map +1 -1
  34. package/dist/lexicon/index.js +164 -1
  35. package/dist/lexicon/index.js.map +1 -1
  36. package/dist/lexicon/lexicons.d.ts +907 -0
  37. package/dist/lexicon/lexicons.d.ts.map +1 -1
  38. package/dist/lexicon/lexicons.js +932 -0
  39. package/dist/lexicon/lexicons.js.map +1 -1
  40. package/dist/lexicon/types/app/bsky/actor/defs.d.ts +7 -0
  41. package/dist/lexicon/types/app/bsky/actor/defs.d.ts.map +1 -1
  42. package/dist/lexicon/types/app/bsky/actor/defs.js +11 -1
  43. package/dist/lexicon/types/app/bsky/actor/defs.js.map +1 -1
  44. package/dist/lexicon/types/chat/bsky/actor/declaration.d.ts +11 -0
  45. package/dist/lexicon/types/chat/bsky/actor/declaration.d.ts.map +1 -0
  46. package/dist/lexicon/types/chat/bsky/actor/declaration.js +17 -0
  47. package/dist/lexicon/types/chat/bsky/actor/declaration.js.map +1 -0
  48. package/dist/lexicon/types/chat/bsky/actor/defs.d.ts +21 -0
  49. package/dist/lexicon/types/chat/bsky/actor/defs.d.ts.map +1 -0
  50. package/dist/lexicon/types/chat/bsky/actor/defs.js +16 -0
  51. package/dist/lexicon/types/chat/bsky/actor/defs.js.map +1 -0
  52. package/dist/lexicon/types/chat/bsky/actor/deleteAccount.d.ts +33 -0
  53. package/dist/lexicon/types/chat/bsky/actor/deleteAccount.d.ts.map +1 -0
  54. package/dist/lexicon/types/chat/bsky/actor/deleteAccount.js +3 -0
  55. package/dist/lexicon/types/chat/bsky/actor/deleteAccount.js.map +1 -0
  56. package/dist/lexicon/types/chat/bsky/actor/exportAccountData.d.ts +32 -0
  57. package/dist/lexicon/types/chat/bsky/actor/exportAccountData.d.ts.map +1 -0
  58. package/dist/lexicon/types/chat/bsky/actor/exportAccountData.js +3 -0
  59. package/dist/lexicon/types/chat/bsky/actor/exportAccountData.js.map +1 -0
  60. package/dist/lexicon/types/chat/bsky/convo/defs.d.ts +109 -0
  61. package/dist/lexicon/types/chat/bsky/convo/defs.d.ts.map +1 -0
  62. package/dist/lexicon/types/chat/bsky/convo/defs.js +106 -0
  63. package/dist/lexicon/types/chat/bsky/convo/defs.js.map +1 -0
  64. package/dist/lexicon/types/chat/bsky/convo/deleteMessageForSelf.d.ts +39 -0
  65. package/dist/lexicon/types/chat/bsky/convo/deleteMessageForSelf.d.ts.map +1 -0
  66. package/dist/lexicon/types/chat/bsky/convo/deleteMessageForSelf.js +3 -0
  67. package/dist/lexicon/types/chat/bsky/convo/deleteMessageForSelf.js.map +1 -0
  68. package/dist/lexicon/types/chat/bsky/convo/getConvo.d.ts +36 -0
  69. package/dist/lexicon/types/chat/bsky/convo/getConvo.d.ts.map +1 -0
  70. package/dist/lexicon/types/chat/bsky/convo/getConvo.js +3 -0
  71. package/dist/lexicon/types/chat/bsky/convo/getConvo.js.map +1 -0
  72. package/dist/lexicon/types/chat/bsky/convo/getConvoForMembers.d.ts +36 -0
  73. package/dist/lexicon/types/chat/bsky/convo/getConvoForMembers.d.ts.map +1 -0
  74. package/dist/lexicon/types/chat/bsky/convo/getConvoForMembers.js +3 -0
  75. package/dist/lexicon/types/chat/bsky/convo/getConvoForMembers.js.map +1 -0
  76. package/dist/lexicon/types/chat/bsky/convo/getLog.d.ts +40 -0
  77. package/dist/lexicon/types/chat/bsky/convo/getLog.d.ts.map +1 -0
  78. package/dist/lexicon/types/chat/bsky/convo/getLog.js +3 -0
  79. package/dist/lexicon/types/chat/bsky/convo/getLog.js.map +1 -0
  80. package/dist/lexicon/types/chat/bsky/convo/getMessages.d.ts +42 -0
  81. package/dist/lexicon/types/chat/bsky/convo/getMessages.d.ts.map +1 -0
  82. package/dist/lexicon/types/chat/bsky/convo/getMessages.js +3 -0
  83. package/dist/lexicon/types/chat/bsky/convo/getMessages.js.map +1 -0
  84. package/dist/lexicon/types/chat/bsky/convo/leaveConvo.d.ts +41 -0
  85. package/dist/lexicon/types/chat/bsky/convo/leaveConvo.d.ts.map +1 -0
  86. package/dist/lexicon/types/chat/bsky/convo/leaveConvo.js +3 -0
  87. package/dist/lexicon/types/chat/bsky/convo/leaveConvo.js.map +1 -0
  88. package/dist/lexicon/types/chat/bsky/convo/listConvos.d.ts +38 -0
  89. package/dist/lexicon/types/chat/bsky/convo/listConvos.d.ts.map +1 -0
  90. package/dist/lexicon/types/chat/bsky/convo/listConvos.js +3 -0
  91. package/dist/lexicon/types/chat/bsky/convo/listConvos.js.map +1 -0
  92. package/dist/lexicon/types/chat/bsky/convo/muteConvo.d.ts +41 -0
  93. package/dist/lexicon/types/chat/bsky/convo/muteConvo.d.ts.map +1 -0
  94. package/dist/lexicon/types/chat/bsky/convo/muteConvo.js +3 -0
  95. package/dist/lexicon/types/chat/bsky/convo/muteConvo.js.map +1 -0
  96. package/dist/lexicon/types/chat/bsky/convo/sendMessage.d.ts +39 -0
  97. package/dist/lexicon/types/chat/bsky/convo/sendMessage.d.ts.map +1 -0
  98. package/dist/lexicon/types/chat/bsky/convo/sendMessage.js +3 -0
  99. package/dist/lexicon/types/chat/bsky/convo/sendMessage.js.map +1 -0
  100. package/dist/lexicon/types/chat/bsky/convo/sendMessageBatch.d.ts +49 -0
  101. package/dist/lexicon/types/chat/bsky/convo/sendMessageBatch.d.ts.map +1 -0
  102. package/dist/lexicon/types/chat/bsky/convo/sendMessageBatch.js +16 -0
  103. package/dist/lexicon/types/chat/bsky/convo/sendMessageBatch.js.map +1 -0
  104. package/dist/lexicon/types/chat/bsky/convo/unmuteConvo.d.ts +41 -0
  105. package/dist/lexicon/types/chat/bsky/convo/unmuteConvo.d.ts.map +1 -0
  106. package/dist/lexicon/types/chat/bsky/convo/unmuteConvo.js +3 -0
  107. package/dist/lexicon/types/chat/bsky/convo/unmuteConvo.js.map +1 -0
  108. package/dist/lexicon/types/chat/bsky/convo/updateRead.d.ts +42 -0
  109. package/dist/lexicon/types/chat/bsky/convo/updateRead.d.ts.map +1 -0
  110. package/dist/lexicon/types/chat/bsky/convo/updateRead.js +3 -0
  111. package/dist/lexicon/types/chat/bsky/convo/updateRead.js.map +1 -0
  112. package/dist/lexicon/types/chat/bsky/moderation/getActorMetadata.d.ts +47 -0
  113. package/dist/lexicon/types/chat/bsky/moderation/getActorMetadata.d.ts.map +1 -0
  114. package/dist/lexicon/types/chat/bsky/moderation/getActorMetadata.js +16 -0
  115. package/dist/lexicon/types/chat/bsky/moderation/getActorMetadata.js.map +1 -0
  116. package/dist/lexicon/types/chat/bsky/moderation/getMessageContext.d.ts +41 -0
  117. package/dist/lexicon/types/chat/bsky/moderation/getMessageContext.d.ts.map +1 -0
  118. package/dist/lexicon/types/chat/bsky/moderation/getMessageContext.js +3 -0
  119. package/dist/lexicon/types/chat/bsky/moderation/getMessageContext.js.map +1 -0
  120. package/dist/lexicon/types/chat/bsky/moderation/updateActorAccess.d.ts +31 -0
  121. package/dist/lexicon/types/chat/bsky/moderation/updateActorAccess.d.ts.map +1 -0
  122. package/dist/lexicon/types/chat/bsky/moderation/updateActorAccess.js +3 -0
  123. package/dist/lexicon/types/chat/bsky/moderation/updateActorAccess.js.map +1 -0
  124. package/dist/pipethrough.d.ts +12 -22
  125. package/dist/pipethrough.d.ts.map +1 -1
  126. package/dist/pipethrough.js +159 -81
  127. package/dist/pipethrough.js.map +1 -1
  128. package/package.json +5 -5
  129. package/src/api/app/bsky/actor/index.ts +0 -6
  130. package/src/api/app/bsky/feed/getFeed.ts +1 -3
  131. package/src/api/app/bsky/feed/index.ts +0 -20
  132. package/src/api/app/bsky/index.ts +0 -6
  133. package/src/api/app/bsky/notification/index.ts +0 -7
  134. package/src/api/com/atproto/index.ts +0 -2
  135. package/src/api/com/atproto/repo/getRecord.ts +1 -1
  136. package/src/api/index.ts +0 -2
  137. package/src/context.ts +34 -1
  138. package/src/index.ts +27 -51
  139. package/src/lexicon/index.ts +254 -0
  140. package/src/lexicon/lexicons.ts +933 -0
  141. package/src/lexicon/types/app/bsky/actor/defs.ts +20 -0
  142. package/src/lexicon/types/chat/bsky/actor/declaration.ts +25 -0
  143. package/src/lexicon/types/chat/bsky/actor/defs.ts +34 -0
  144. package/src/lexicon/types/chat/bsky/actor/deleteAccount.ts +42 -0
  145. package/src/lexicon/types/chat/bsky/actor/exportAccountData.ts +38 -0
  146. package/src/lexicon/types/chat/bsky/convo/defs.ts +215 -0
  147. package/src/lexicon/types/chat/bsky/convo/deleteMessageForSelf.ts +48 -0
  148. package/src/lexicon/types/chat/bsky/convo/getConvo.ts +46 -0
  149. package/src/lexicon/types/chat/bsky/convo/getConvoForMembers.ts +46 -0
  150. package/src/lexicon/types/chat/bsky/convo/getLog.ts +53 -0
  151. package/src/lexicon/types/chat/bsky/convo/getMessages.ts +53 -0
  152. package/src/lexicon/types/chat/bsky/convo/leaveConvo.ts +50 -0
  153. package/src/lexicon/types/chat/bsky/convo/listConvos.ts +48 -0
  154. package/src/lexicon/types/chat/bsky/convo/muteConvo.ts +50 -0
  155. package/src/lexicon/types/chat/bsky/convo/sendMessage.ts +48 -0
  156. package/src/lexicon/types/chat/bsky/convo/sendMessageBatch.ts +68 -0
  157. package/src/lexicon/types/chat/bsky/convo/unmuteConvo.ts +50 -0
  158. package/src/lexicon/types/chat/bsky/convo/updateRead.ts +51 -0
  159. package/src/lexicon/types/chat/bsky/moderation/getActorMetadata.ts +67 -0
  160. package/src/lexicon/types/chat/bsky/moderation/getMessageContext.ts +52 -0
  161. package/src/lexicon/types/chat/bsky/moderation/updateActorAccess.ts +40 -0
  162. package/src/pipethrough.ts +184 -114
  163. package/dist/api/app/bsky/actor/getSuggestions.d.ts +0 -4
  164. package/dist/api/app/bsky/actor/getSuggestions.d.ts.map +0 -1
  165. package/dist/api/app/bsky/actor/getSuggestions.js +0 -19
  166. package/dist/api/app/bsky/actor/getSuggestions.js.map +0 -1
  167. package/dist/api/app/bsky/actor/searchActors.d.ts +0 -4
  168. package/dist/api/app/bsky/actor/searchActors.d.ts.map +0 -1
  169. package/dist/api/app/bsky/actor/searchActors.js +0 -17
  170. package/dist/api/app/bsky/actor/searchActors.js.map +0 -1
  171. package/dist/api/app/bsky/actor/searchActorsTypeahead.d.ts +0 -4
  172. package/dist/api/app/bsky/actor/searchActorsTypeahead.d.ts.map +0 -1
  173. package/dist/api/app/bsky/actor/searchActorsTypeahead.js +0 -17
  174. package/dist/api/app/bsky/actor/searchActorsTypeahead.js.map +0 -1
  175. package/dist/api/app/bsky/feed/getActorFeeds.d.ts +0 -4
  176. package/dist/api/app/bsky/feed/getActorFeeds.d.ts.map +0 -1
  177. package/dist/api/app/bsky/feed/getActorFeeds.js +0 -17
  178. package/dist/api/app/bsky/feed/getActorFeeds.js.map +0 -1
  179. package/dist/api/app/bsky/feed/getFeedGenerator.d.ts +0 -4
  180. package/dist/api/app/bsky/feed/getFeedGenerator.d.ts.map +0 -1
  181. package/dist/api/app/bsky/feed/getFeedGenerator.js +0 -17
  182. package/dist/api/app/bsky/feed/getFeedGenerator.js.map +0 -1
  183. package/dist/api/app/bsky/feed/getFeedGenerators.d.ts +0 -4
  184. package/dist/api/app/bsky/feed/getFeedGenerators.d.ts.map +0 -1
  185. package/dist/api/app/bsky/feed/getFeedGenerators.js +0 -17
  186. package/dist/api/app/bsky/feed/getFeedGenerators.js.map +0 -1
  187. package/dist/api/app/bsky/feed/getLikes.d.ts +0 -4
  188. package/dist/api/app/bsky/feed/getLikes.d.ts.map +0 -1
  189. package/dist/api/app/bsky/feed/getLikes.js +0 -17
  190. package/dist/api/app/bsky/feed/getLikes.js.map +0 -1
  191. package/dist/api/app/bsky/feed/getListFeed.d.ts +0 -4
  192. package/dist/api/app/bsky/feed/getListFeed.d.ts.map +0 -1
  193. package/dist/api/app/bsky/feed/getListFeed.js +0 -17
  194. package/dist/api/app/bsky/feed/getListFeed.js.map +0 -1
  195. package/dist/api/app/bsky/feed/getPosts.d.ts +0 -4
  196. package/dist/api/app/bsky/feed/getPosts.d.ts.map +0 -1
  197. package/dist/api/app/bsky/feed/getPosts.js +0 -17
  198. package/dist/api/app/bsky/feed/getPosts.js.map +0 -1
  199. package/dist/api/app/bsky/feed/getRepostedBy.d.ts +0 -4
  200. package/dist/api/app/bsky/feed/getRepostedBy.d.ts.map +0 -1
  201. package/dist/api/app/bsky/feed/getRepostedBy.js +0 -17
  202. package/dist/api/app/bsky/feed/getRepostedBy.js.map +0 -1
  203. package/dist/api/app/bsky/feed/getSuggestedFeeds.d.ts +0 -4
  204. package/dist/api/app/bsky/feed/getSuggestedFeeds.d.ts.map +0 -1
  205. package/dist/api/app/bsky/feed/getSuggestedFeeds.js +0 -17
  206. package/dist/api/app/bsky/feed/getSuggestedFeeds.js.map +0 -1
  207. package/dist/api/app/bsky/feed/searchPosts.d.ts +0 -4
  208. package/dist/api/app/bsky/feed/searchPosts.d.ts.map +0 -1
  209. package/dist/api/app/bsky/feed/searchPosts.js +0 -17
  210. package/dist/api/app/bsky/feed/searchPosts.js.map +0 -1
  211. package/dist/api/app/bsky/feed/sendInteractions.d.ts +0 -4
  212. package/dist/api/app/bsky/feed/sendInteractions.d.ts.map +0 -1
  213. package/dist/api/app/bsky/feed/sendInteractions.js +0 -14
  214. package/dist/api/app/bsky/feed/sendInteractions.js.map +0 -1
  215. package/dist/api/app/bsky/graph/getBlocks.d.ts +0 -4
  216. package/dist/api/app/bsky/graph/getBlocks.d.ts.map +0 -1
  217. package/dist/api/app/bsky/graph/getBlocks.js +0 -17
  218. package/dist/api/app/bsky/graph/getBlocks.js.map +0 -1
  219. package/dist/api/app/bsky/graph/getFollowers.d.ts +0 -4
  220. package/dist/api/app/bsky/graph/getFollowers.d.ts.map +0 -1
  221. package/dist/api/app/bsky/graph/getFollowers.js +0 -17
  222. package/dist/api/app/bsky/graph/getFollowers.js.map +0 -1
  223. package/dist/api/app/bsky/graph/getFollows.d.ts +0 -4
  224. package/dist/api/app/bsky/graph/getFollows.d.ts.map +0 -1
  225. package/dist/api/app/bsky/graph/getFollows.js +0 -17
  226. package/dist/api/app/bsky/graph/getFollows.js.map +0 -1
  227. package/dist/api/app/bsky/graph/getList.d.ts +0 -4
  228. package/dist/api/app/bsky/graph/getList.d.ts.map +0 -1
  229. package/dist/api/app/bsky/graph/getList.js +0 -17
  230. package/dist/api/app/bsky/graph/getList.js.map +0 -1
  231. package/dist/api/app/bsky/graph/getListBlocks.d.ts +0 -4
  232. package/dist/api/app/bsky/graph/getListBlocks.d.ts.map +0 -1
  233. package/dist/api/app/bsky/graph/getListBlocks.js +0 -17
  234. package/dist/api/app/bsky/graph/getListBlocks.js.map +0 -1
  235. package/dist/api/app/bsky/graph/getListMutes.d.ts +0 -4
  236. package/dist/api/app/bsky/graph/getListMutes.d.ts.map +0 -1
  237. package/dist/api/app/bsky/graph/getListMutes.js +0 -17
  238. package/dist/api/app/bsky/graph/getListMutes.js.map +0 -1
  239. package/dist/api/app/bsky/graph/getLists.d.ts +0 -4
  240. package/dist/api/app/bsky/graph/getLists.d.ts.map +0 -1
  241. package/dist/api/app/bsky/graph/getLists.js +0 -17
  242. package/dist/api/app/bsky/graph/getLists.js.map +0 -1
  243. package/dist/api/app/bsky/graph/getMutes.d.ts +0 -4
  244. package/dist/api/app/bsky/graph/getMutes.d.ts.map +0 -1
  245. package/dist/api/app/bsky/graph/getMutes.js +0 -17
  246. package/dist/api/app/bsky/graph/getMutes.js.map +0 -1
  247. package/dist/api/app/bsky/graph/getSuggestedFollowsByActor.d.ts +0 -4
  248. package/dist/api/app/bsky/graph/getSuggestedFollowsByActor.d.ts.map +0 -1
  249. package/dist/api/app/bsky/graph/getSuggestedFollowsByActor.js +0 -17
  250. package/dist/api/app/bsky/graph/getSuggestedFollowsByActor.js.map +0 -1
  251. package/dist/api/app/bsky/graph/index.d.ts +0 -4
  252. package/dist/api/app/bsky/graph/index.d.ts.map +0 -1
  253. package/dist/api/app/bsky/graph/index.js +0 -35
  254. package/dist/api/app/bsky/graph/index.js.map +0 -1
  255. package/dist/api/app/bsky/graph/muteActor.d.ts +0 -4
  256. package/dist/api/app/bsky/graph/muteActor.d.ts.map +0 -1
  257. package/dist/api/app/bsky/graph/muteActor.js +0 -14
  258. package/dist/api/app/bsky/graph/muteActor.js.map +0 -1
  259. package/dist/api/app/bsky/graph/muteActorList.d.ts +0 -4
  260. package/dist/api/app/bsky/graph/muteActorList.d.ts.map +0 -1
  261. package/dist/api/app/bsky/graph/muteActorList.js +0 -14
  262. package/dist/api/app/bsky/graph/muteActorList.js.map +0 -1
  263. package/dist/api/app/bsky/graph/unmuteActor.d.ts +0 -4
  264. package/dist/api/app/bsky/graph/unmuteActor.d.ts.map +0 -1
  265. package/dist/api/app/bsky/graph/unmuteActor.js +0 -14
  266. package/dist/api/app/bsky/graph/unmuteActor.js.map +0 -1
  267. package/dist/api/app/bsky/graph/unmuteActorList.d.ts +0 -4
  268. package/dist/api/app/bsky/graph/unmuteActorList.d.ts.map +0 -1
  269. package/dist/api/app/bsky/graph/unmuteActorList.js +0 -14
  270. package/dist/api/app/bsky/graph/unmuteActorList.js.map +0 -1
  271. package/dist/api/app/bsky/labeler/getServices.d.ts +0 -4
  272. package/dist/api/app/bsky/labeler/getServices.d.ts.map +0 -1
  273. package/dist/api/app/bsky/labeler/getServices.js +0 -14
  274. package/dist/api/app/bsky/labeler/getServices.js.map +0 -1
  275. package/dist/api/app/bsky/labeler/index.d.ts +0 -4
  276. package/dist/api/app/bsky/labeler/index.d.ts.map +0 -1
  277. package/dist/api/app/bsky/labeler/index.js +0 -11
  278. package/dist/api/app/bsky/labeler/index.js.map +0 -1
  279. package/dist/api/app/bsky/notification/getUnreadCount.d.ts +0 -4
  280. package/dist/api/app/bsky/notification/getUnreadCount.d.ts.map +0 -1
  281. package/dist/api/app/bsky/notification/getUnreadCount.js +0 -17
  282. package/dist/api/app/bsky/notification/getUnreadCount.js.map +0 -1
  283. package/dist/api/app/bsky/notification/listNotifications.d.ts +0 -4
  284. package/dist/api/app/bsky/notification/listNotifications.d.ts.map +0 -1
  285. package/dist/api/app/bsky/notification/listNotifications.js +0 -17
  286. package/dist/api/app/bsky/notification/listNotifications.js.map +0 -1
  287. package/dist/api/app/bsky/notification/updateSeen.d.ts +0 -4
  288. package/dist/api/app/bsky/notification/updateSeen.d.ts.map +0 -1
  289. package/dist/api/app/bsky/notification/updateSeen.js +0 -14
  290. package/dist/api/app/bsky/notification/updateSeen.js.map +0 -1
  291. package/dist/api/app/bsky/unspecced/getPopularFeedGenerators.d.ts +0 -4
  292. package/dist/api/app/bsky/unspecced/getPopularFeedGenerators.d.ts.map +0 -1
  293. package/dist/api/app/bsky/unspecced/getPopularFeedGenerators.js +0 -18
  294. package/dist/api/app/bsky/unspecced/getPopularFeedGenerators.js.map +0 -1
  295. package/dist/api/app/bsky/unspecced/getTaggedSuggestions.d.ts +0 -4
  296. package/dist/api/app/bsky/unspecced/getTaggedSuggestions.d.ts.map +0 -1
  297. package/dist/api/app/bsky/unspecced/getTaggedSuggestions.js +0 -18
  298. package/dist/api/app/bsky/unspecced/getTaggedSuggestions.js.map +0 -1
  299. package/dist/api/app/bsky/unspecced/index.d.ts +0 -4
  300. package/dist/api/app/bsky/unspecced/index.d.ts.map +0 -1
  301. package/dist/api/app/bsky/unspecced/index.js +0 -14
  302. package/dist/api/app/bsky/unspecced/index.js.map +0 -1
  303. package/dist/api/com/atproto/moderation/createReport.d.ts +0 -4
  304. package/dist/api/com/atproto/moderation/createReport.d.ts.map +0 -1
  305. package/dist/api/com/atproto/moderation/createReport.js +0 -14
  306. package/dist/api/com/atproto/moderation/createReport.js.map +0 -1
  307. package/dist/api/com/atproto/moderation/index.d.ts +0 -4
  308. package/dist/api/com/atproto/moderation/index.d.ts.map +0 -1
  309. package/dist/api/com/atproto/moderation/index.js +0 -11
  310. package/dist/api/com/atproto/moderation/index.js.map +0 -1
  311. package/dist/api/tools/ozone/communication/createTemplate.d.ts +0 -4
  312. package/dist/api/tools/ozone/communication/createTemplate.d.ts.map +0 -1
  313. package/dist/api/tools/ozone/communication/createTemplate.js +0 -14
  314. package/dist/api/tools/ozone/communication/createTemplate.js.map +0 -1
  315. package/dist/api/tools/ozone/communication/deleteTemplate.d.ts +0 -4
  316. package/dist/api/tools/ozone/communication/deleteTemplate.d.ts.map +0 -1
  317. package/dist/api/tools/ozone/communication/deleteTemplate.js +0 -14
  318. package/dist/api/tools/ozone/communication/deleteTemplate.js.map +0 -1
  319. package/dist/api/tools/ozone/communication/index.d.ts +0 -4
  320. package/dist/api/tools/ozone/communication/index.d.ts.map +0 -1
  321. package/dist/api/tools/ozone/communication/index.js +0 -17
  322. package/dist/api/tools/ozone/communication/index.js.map +0 -1
  323. package/dist/api/tools/ozone/communication/listTemplates.d.ts +0 -4
  324. package/dist/api/tools/ozone/communication/listTemplates.d.ts.map +0 -1
  325. package/dist/api/tools/ozone/communication/listTemplates.js +0 -14
  326. package/dist/api/tools/ozone/communication/listTemplates.js.map +0 -1
  327. package/dist/api/tools/ozone/communication/updateTemplate.d.ts +0 -4
  328. package/dist/api/tools/ozone/communication/updateTemplate.d.ts.map +0 -1
  329. package/dist/api/tools/ozone/communication/updateTemplate.js +0 -14
  330. package/dist/api/tools/ozone/communication/updateTemplate.js.map +0 -1
  331. package/dist/api/tools/ozone/index.d.ts +0 -4
  332. package/dist/api/tools/ozone/index.d.ts.map +0 -1
  333. package/dist/api/tools/ozone/index.js +0 -13
  334. package/dist/api/tools/ozone/index.js.map +0 -1
  335. package/dist/api/tools/ozone/moderation/emitEvent.d.ts +0 -4
  336. package/dist/api/tools/ozone/moderation/emitEvent.d.ts.map +0 -1
  337. package/dist/api/tools/ozone/moderation/emitEvent.js +0 -14
  338. package/dist/api/tools/ozone/moderation/emitEvent.js.map +0 -1
  339. package/dist/api/tools/ozone/moderation/getEvent.d.ts +0 -4
  340. package/dist/api/tools/ozone/moderation/getEvent.d.ts.map +0 -1
  341. package/dist/api/tools/ozone/moderation/getEvent.js +0 -14
  342. package/dist/api/tools/ozone/moderation/getEvent.js.map +0 -1
  343. package/dist/api/tools/ozone/moderation/getRecord.d.ts +0 -4
  344. package/dist/api/tools/ozone/moderation/getRecord.d.ts.map +0 -1
  345. package/dist/api/tools/ozone/moderation/getRecord.js +0 -14
  346. package/dist/api/tools/ozone/moderation/getRecord.js.map +0 -1
  347. package/dist/api/tools/ozone/moderation/getRepo.d.ts +0 -4
  348. package/dist/api/tools/ozone/moderation/getRepo.d.ts.map +0 -1
  349. package/dist/api/tools/ozone/moderation/getRepo.js +0 -14
  350. package/dist/api/tools/ozone/moderation/getRepo.js.map +0 -1
  351. package/dist/api/tools/ozone/moderation/index.d.ts +0 -4
  352. package/dist/api/tools/ozone/moderation/index.d.ts.map +0 -1
  353. package/dist/api/tools/ozone/moderation/index.js +0 -23
  354. package/dist/api/tools/ozone/moderation/index.js.map +0 -1
  355. package/dist/api/tools/ozone/moderation/queryEvents.d.ts +0 -4
  356. package/dist/api/tools/ozone/moderation/queryEvents.d.ts.map +0 -1
  357. package/dist/api/tools/ozone/moderation/queryEvents.js +0 -14
  358. package/dist/api/tools/ozone/moderation/queryEvents.js.map +0 -1
  359. package/dist/api/tools/ozone/moderation/queryStatuses.d.ts +0 -4
  360. package/dist/api/tools/ozone/moderation/queryStatuses.d.ts.map +0 -1
  361. package/dist/api/tools/ozone/moderation/queryStatuses.js +0 -14
  362. package/dist/api/tools/ozone/moderation/queryStatuses.js.map +0 -1
  363. package/dist/api/tools/ozone/moderation/searchRepos.d.ts +0 -4
  364. package/dist/api/tools/ozone/moderation/searchRepos.d.ts.map +0 -1
  365. package/dist/api/tools/ozone/moderation/searchRepos.js +0 -14
  366. package/dist/api/tools/ozone/moderation/searchRepos.js.map +0 -1
  367. package/src/api/app/bsky/actor/getSuggestions.ts +0 -17
  368. package/src/api/app/bsky/actor/searchActors.ts +0 -15
  369. package/src/api/app/bsky/actor/searchActorsTypeahead.ts +0 -15
  370. package/src/api/app/bsky/feed/getActorFeeds.ts +0 -15
  371. package/src/api/app/bsky/feed/getFeedGenerator.ts +0 -15
  372. package/src/api/app/bsky/feed/getFeedGenerators.ts +0 -15
  373. package/src/api/app/bsky/feed/getLikes.ts +0 -15
  374. package/src/api/app/bsky/feed/getListFeed.ts +0 -15
  375. package/src/api/app/bsky/feed/getPosts.ts +0 -15
  376. package/src/api/app/bsky/feed/getRepostedBy.ts +0 -15
  377. package/src/api/app/bsky/feed/getSuggestedFeeds.ts +0 -15
  378. package/src/api/app/bsky/feed/searchPosts.ts +0 -15
  379. package/src/api/app/bsky/feed/sendInteractions.ts +0 -13
  380. package/src/api/app/bsky/graph/getBlocks.ts +0 -15
  381. package/src/api/app/bsky/graph/getFollowers.ts +0 -15
  382. package/src/api/app/bsky/graph/getFollows.ts +0 -15
  383. package/src/api/app/bsky/graph/getList.ts +0 -15
  384. package/src/api/app/bsky/graph/getListBlocks.ts +0 -15
  385. package/src/api/app/bsky/graph/getListMutes.ts +0 -15
  386. package/src/api/app/bsky/graph/getLists.ts +0 -15
  387. package/src/api/app/bsky/graph/getMutes.ts +0 -15
  388. package/src/api/app/bsky/graph/getSuggestedFollowsByActor.ts +0 -15
  389. package/src/api/app/bsky/graph/index.ts +0 -31
  390. package/src/api/app/bsky/graph/muteActor.ts +0 -13
  391. package/src/api/app/bsky/graph/muteActorList.ts +0 -13
  392. package/src/api/app/bsky/graph/unmuteActor.ts +0 -13
  393. package/src/api/app/bsky/graph/unmuteActorList.ts +0 -13
  394. package/src/api/app/bsky/labeler/getServices.ts +0 -13
  395. package/src/api/app/bsky/labeler/index.ts +0 -7
  396. package/src/api/app/bsky/notification/getUnreadCount.ts +0 -15
  397. package/src/api/app/bsky/notification/listNotifications.ts +0 -15
  398. package/src/api/app/bsky/notification/updateSeen.ts +0 -13
  399. package/src/api/app/bsky/unspecced/getPopularFeedGenerators.ts +0 -16
  400. package/src/api/app/bsky/unspecced/getTaggedSuggestions.ts +0 -16
  401. package/src/api/app/bsky/unspecced/index.ts +0 -10
  402. package/src/api/com/atproto/moderation/createReport.ts +0 -13
  403. package/src/api/com/atproto/moderation/index.ts +0 -7
  404. package/src/api/tools/ozone/communication/createTemplate.ts +0 -13
  405. package/src/api/tools/ozone/communication/deleteTemplate.ts +0 -13
  406. package/src/api/tools/ozone/communication/index.ts +0 -13
  407. package/src/api/tools/ozone/communication/listTemplates.ts +0 -13
  408. package/src/api/tools/ozone/communication/updateTemplate.ts +0 -13
  409. package/src/api/tools/ozone/index.ts +0 -9
  410. package/src/api/tools/ozone/moderation/emitEvent.ts +0 -13
  411. package/src/api/tools/ozone/moderation/getEvent.ts +0 -13
  412. package/src/api/tools/ozone/moderation/getRecord.ts +0 -13
  413. package/src/api/tools/ozone/moderation/getRepo.ts +0 -13
  414. package/src/api/tools/ozone/moderation/index.ts +0 -19
  415. package/src/api/tools/ozone/moderation/queryEvents.ts +0 -13
  416. package/src/api/tools/ozone/moderation/queryStatuses.ts +0 -13
  417. package/src/api/tools/ozone/moderation/searchRepos.ts +0 -13
@@ -1,125 +1,67 @@
1
1
  import express from 'express'
2
2
  import * as ui8 from 'uint8arrays'
3
3
  import net from 'node:net'
4
- import { LexValue, jsonToLex, stringifyLex } from '@atproto/lexicon'
5
- import { HandlerPipeThrough, InvalidRequestError } from '@atproto/xrpc-server'
4
+ import stream from 'node:stream'
5
+ import webStream from 'node:stream/web'
6
+ import { jsonToLex } from '@atproto/lexicon'
7
+ import {
8
+ CatchallHandler,
9
+ HandlerPipeThrough,
10
+ InvalidRequestError,
11
+ } from '@atproto/xrpc-server'
6
12
  import { ResponseType, XRPCError } from '@atproto/xrpc'
7
13
  import { ids, lexicons } from './lexicon/lexicons'
8
14
  import { httpLogger } from './logger'
9
15
  import { getServiceEndpoint, noUndefinedVals } from '@atproto/common'
10
16
  import AppContext from './context'
11
17
 
12
- type PipethroughOptions = {
13
- /**
14
- * Request headers to pass-through, in addition to those defined in
15
- * {@link REQ_HEADERS_TO_FORWARD}
16
- */
17
- reqHeadersToForward?: string[]
18
- }
19
-
20
- const defaultService = (
21
- ctx: AppContext,
22
- path: string,
23
- ): { url: string; did: string } | null => {
24
- const nsid = path.replace('/xrpc/', '')
25
- switch (nsid) {
26
- case ids.ToolsOzoneCommunicationCreateTemplate:
27
- case ids.ToolsOzoneCommunicationDeleteTemplate:
28
- case ids.ToolsOzoneCommunicationUpdateTemplate:
29
- case ids.ToolsOzoneCommunicationListTemplates:
30
- case ids.ToolsOzoneModerationEmitEvent:
31
- case ids.ToolsOzoneModerationGetEvent:
32
- case ids.ToolsOzoneModerationGetRecord:
33
- case ids.ToolsOzoneModerationGetRepo:
34
- case ids.ToolsOzoneModerationQueryEvents:
35
- case ids.ToolsOzoneModerationQueryStatuses:
36
- case ids.ToolsOzoneModerationSearchRepos:
37
- return ctx.cfg.modService
38
- case ids.ComAtprotoModerationCreateReport:
39
- return ctx.cfg.reportService
40
- default:
41
- return ctx.cfg.bskyAppView
18
+ export const proxyHandler =
19
+ (ctx: AppContext): CatchallHandler =>
20
+ async (req, res, next) => {
21
+ try {
22
+ const { url, aud } = await formatUrlAndAud(ctx, req)
23
+ const auth = await ctx.authVerifier.access({ req })
24
+ const headers = await formatHeaders(ctx, req, aud, auth.credentials.did)
25
+ const body = stream.Readable.toWeb(req)
26
+ const reqInit = formatReqInit(req, headers, body)
27
+ const proxyRes = await makeRequest(url, reqInit)
28
+ await pipeProxyRes(proxyRes, res)
29
+ } catch (err) {
30
+ return next(err)
31
+ }
32
+ return next()
42
33
  }
43
- }
44
34
 
45
35
  export const pipethrough = async (
46
36
  ctx: AppContext,
47
37
  req: express.Request,
48
- requester?: string,
38
+ requester: string | null,
49
39
  audOverride?: string,
50
- options?: PipethroughOptions,
51
40
  ): Promise<HandlerPipeThrough> => {
52
- const { url, headers } = await createUrlAndHeaders(
53
- ctx,
54
- req,
55
- requester,
56
- audOverride,
57
- options,
58
- )
59
- const reqInit: RequestInit = {
60
- headers,
61
- }
62
- return doProxy(url, reqInit)
63
- }
64
-
65
- export const pipethroughProcedure = async (
66
- ctx: AppContext,
67
- req: express.Request,
68
- body: LexValue,
69
- requester?: string,
70
- audOverride?: string,
71
- ) => {
72
- const { url, headers } = await createUrlAndHeaders(
73
- ctx,
74
- req,
75
- requester,
76
- audOverride,
77
- )
78
- const reqInit: RequestInit & { duplex: string } = {
79
- method: 'post',
80
- headers,
81
- body: new TextEncoder().encode(stringifyLex(body)),
82
- duplex: 'half',
83
- }
84
- return doProxy(url, reqInit)
41
+ const { url, aud } = await formatUrlAndAud(ctx, req, audOverride)
42
+ const headers = await formatHeaders(ctx, req, aud, requester)
43
+ const reqInit = formatReqInit(req, headers)
44
+ const res = await makeRequest(url, reqInit)
45
+ return parseProxyRes(res)
85
46
  }
86
47
 
87
- export const parseProxyHeader = async (
88
- ctx: AppContext,
89
- req: express.Request,
90
- ): Promise<{ did: string; serviceUrl: string } | undefined> => {
91
- const proxyTo = req.header('atproto-proxy')
92
- if (!proxyTo) return
93
- const [did, serviceId] = proxyTo.split('#')
94
- if (!serviceId) {
95
- throw new InvalidRequestError('no service id specified')
96
- }
97
- const didDoc = await ctx.idResolver.did.resolve(did)
98
- if (!didDoc) {
99
- throw new InvalidRequestError('could not resolve proxy did')
100
- }
101
- const serviceUrl = getServiceEndpoint(didDoc, { id: `#${serviceId}` })
102
- if (!serviceUrl) {
103
- throw new InvalidRequestError('could not resolve proxy did service url')
104
- }
105
- return { did, serviceUrl }
106
- }
48
+ // Request setup/formatting
49
+ // -------------------
107
50
 
108
51
  const REQ_HEADERS_TO_FORWARD = [
109
52
  'accept-language',
110
53
  'content-type',
111
54
  'atproto-accept-labelers',
55
+ 'x-bsky-topics',
112
56
  ]
113
57
 
114
- export const createUrlAndHeaders = async (
58
+ export const formatUrlAndAud = async (
115
59
  ctx: AppContext,
116
60
  req: express.Request,
117
- requester?: string,
118
61
  audOverride?: string,
119
- options?: PipethroughOptions,
120
- ): Promise<{ url: URL; headers: { authorization?: string } }> => {
62
+ ): Promise<{ url: URL; aud: string }> => {
121
63
  const proxyTo = await parseProxyHeader(ctx, req)
122
- const defaultProxy = defaultService(ctx, req.path)
64
+ const defaultProxy = defaultService(ctx, req)
123
65
  const serviceUrl = proxyTo?.serviceUrl ?? defaultProxy?.url
124
66
  const aud = audOverride ?? proxyTo?.did ?? defaultProxy?.did
125
67
  if (!serviceUrl || !aud) {
@@ -129,34 +71,93 @@ export const createUrlAndHeaders = async (
129
71
  if (!ctx.cfg.service.devMode && !isSafeUrl(url)) {
130
72
  throw new InvalidRequestError(`Invalid service url: ${url.toString()}`)
131
73
  }
74
+ return { url, aud }
75
+ }
76
+
77
+ export const formatHeaders = async (
78
+ ctx: AppContext,
79
+ req: express.Request,
80
+ aud: string,
81
+ requester: string | null,
82
+ ): Promise<{ authorization?: string }> => {
132
83
  const headers = requester
133
84
  ? (await ctx.serviceAuthHeaders(requester, aud)).headers
134
85
  : {}
135
- const allowedHeaders = REQ_HEADERS_TO_FORWARD.concat(
136
- options?.reqHeadersToForward ?? [],
137
- )
138
86
  // forward select headers to upstream services
139
- for (const header of allowedHeaders) {
87
+ for (const header of REQ_HEADERS_TO_FORWARD) {
140
88
  const val = req.headers[header]
141
89
  if (val) {
142
90
  headers[header] = val
143
91
  }
144
92
  }
145
- return { url, headers }
93
+ return headers
94
+ }
95
+
96
+ const formatReqInit = (
97
+ req: express.Request,
98
+ headers: Record<string, string>,
99
+ body?: Uint8Array | ReadableStream,
100
+ ): RequestInit => {
101
+ if (req.method === 'GET') {
102
+ return {
103
+ method: 'get',
104
+ headers,
105
+ }
106
+ } else if (req.method === 'HEAD') {
107
+ return {
108
+ method: 'head',
109
+ headers,
110
+ }
111
+ } else if (req.method === 'POST') {
112
+ return {
113
+ method: 'post',
114
+ headers,
115
+ body,
116
+ duplex: 'half',
117
+ } as RequestInit
118
+ } else {
119
+ throw new InvalidRequestError('Method not found')
120
+ }
146
121
  }
147
122
 
148
- export const doProxy = async (url: URL, reqInit: RequestInit) => {
123
+ export const parseProxyHeader = async (
124
+ ctx: AppContext,
125
+ req: express.Request,
126
+ ): Promise<{ did: string; serviceUrl: string } | undefined> => {
127
+ const proxyTo = req.header('atproto-proxy')
128
+ if (!proxyTo) return
129
+ const [did, serviceId] = proxyTo.split('#')
130
+ if (!serviceId) {
131
+ throw new InvalidRequestError('no service id specified')
132
+ }
133
+ const didDoc = await ctx.idResolver.did.resolve(did)
134
+ if (!didDoc) {
135
+ throw new InvalidRequestError('could not resolve proxy did')
136
+ }
137
+ const serviceUrl = getServiceEndpoint(didDoc, { id: `#${serviceId}` })
138
+ if (!serviceUrl) {
139
+ throw new InvalidRequestError('could not resolve proxy did service url')
140
+ }
141
+ return { did, serviceUrl }
142
+ }
143
+
144
+ // Sending request
145
+ // -------------------
146
+
147
+ export const makeRequest = async (
148
+ url: URL,
149
+ reqInit: RequestInit,
150
+ ): Promise<Response> => {
149
151
  let res: Response
150
- let buffer: ArrayBuffer
151
152
  try {
152
153
  res = await fetch(url, reqInit)
153
- buffer = await res.arrayBuffer()
154
154
  } catch (err) {
155
155
  httpLogger.warn({ err }, 'pipethrough network error')
156
156
  throw new XRPCError(ResponseType.UpstreamFailure)
157
157
  }
158
158
  if (res.status !== ResponseType.Success) {
159
- const ui8Buffer = new Uint8Array(buffer)
159
+ const arrBuffer = await readArrayBufferRes(res)
160
+ const ui8Buffer = new Uint8Array(arrBuffer)
160
161
  const errInfo = safeParseJson(ui8.toString(ui8Buffer, 'utf8'))
161
162
  throw new XRPCError(
162
163
  res.status,
@@ -165,33 +166,86 @@ export const doProxy = async (url: URL, reqInit: RequestInit) => {
165
166
  simpleHeaders(res.headers),
166
167
  )
167
168
  }
168
- const encoding = res.headers.get('content-type') ?? 'application/json'
169
- const resHeaders = makeResHeaders(res)
170
- return { encoding, buffer, headers: resHeaders }
169
+ return res
171
170
  }
172
171
 
172
+ // Response parsing/forwarding
173
+ // -------------------
174
+
173
175
  const RES_HEADERS_TO_FORWARD = [
174
- 'atproto-repo-rev',
176
+ 'content-type',
175
177
  'content-language',
178
+ 'atproto-repo-rev',
176
179
  'atproto-content-labelers',
177
180
  ]
178
181
 
179
- const makeResHeaders = (res: Response): Record<string, string> => {
180
- const headers = RES_HEADERS_TO_FORWARD.reduce(
182
+ export const pipeProxyRes = async (
183
+ upstreamRes: Response,
184
+ ownRes: express.Response,
185
+ ) => {
186
+ for (const headerName of RES_HEADERS_TO_FORWARD) {
187
+ const headerVal = upstreamRes.headers.get(headerName)
188
+ if (headerVal) {
189
+ ownRes.setHeader(headerName, headerVal)
190
+ }
191
+ }
192
+ if (upstreamRes.body) {
193
+ const contentLength = upstreamRes.headers.get('content-length')
194
+ const contentEncoding = upstreamRes.headers.get('content-encoding')
195
+ if (contentLength && (!contentEncoding || contentEncoding === 'identity')) {
196
+ ownRes.setHeader('content-length', contentLength)
197
+ } else {
198
+ ownRes.setHeader('transfer-encoding', 'chunked')
199
+ }
200
+ ownRes.status(200)
201
+ const resStream = stream.Readable.fromWeb(
202
+ upstreamRes.body as webStream.ReadableStream<Uint8Array>,
203
+ )
204
+ await stream.promises.pipeline(resStream, ownRes)
205
+ } else {
206
+ ownRes.status(200).end()
207
+ }
208
+ }
209
+
210
+ export const parseProxyRes = async (res: Response) => {
211
+ const buffer = await readArrayBufferRes(res)
212
+ const encoding = res.headers.get('content-type') ?? 'application/json'
213
+ const resHeaders = RES_HEADERS_TO_FORWARD.reduce(
181
214
  (acc, cur) => {
182
215
  acc[cur] = res.headers.get(cur) ?? undefined
183
216
  return acc
184
217
  },
185
218
  {} as Record<string, string | undefined>,
186
219
  )
187
- return noUndefinedVals(headers)
220
+ return { encoding, buffer, headers: noUndefinedVals(resHeaders) }
188
221
  }
189
222
 
190
- const isSafeUrl = (url: URL) => {
191
- if (url.protocol !== 'https:') return false
192
- if (!url.hostname || url.hostname === 'localhost') return false
193
- if (net.isIP(url.hostname) !== 0) return false
194
- return true
223
+ // Utils
224
+ // -------------------
225
+
226
+ const defaultService = (
227
+ ctx: AppContext,
228
+ req: express.Request,
229
+ ): { url: string; did: string } | null => {
230
+ const nsid = req.originalUrl.split('?')[0].replace('/xrpc/', '')
231
+ switch (nsid) {
232
+ case ids.ToolsOzoneCommunicationCreateTemplate:
233
+ case ids.ToolsOzoneCommunicationDeleteTemplate:
234
+ case ids.ToolsOzoneCommunicationUpdateTemplate:
235
+ case ids.ToolsOzoneCommunicationListTemplates:
236
+ case ids.ToolsOzoneModerationEmitEvent:
237
+ case ids.ToolsOzoneModerationGetEvent:
238
+ case ids.ToolsOzoneModerationGetRecord:
239
+ case ids.ToolsOzoneModerationGetRepo:
240
+ case ids.ToolsOzoneModerationQueryEvents:
241
+ case ids.ToolsOzoneModerationQueryStatuses:
242
+ case ids.ToolsOzoneModerationSearchRepos:
243
+ return ctx.cfg.modService
244
+ case ids.ComAtprotoModerationCreateReport:
245
+ return ctx.cfg.reportService
246
+ default:
247
+ return ctx.cfg.bskyAppView
248
+ }
195
249
  }
196
250
 
197
251
  export const parseRes = <T>(nsid: string, res: HandlerPipeThrough): T => {
@@ -201,6 +255,22 @@ export const parseRes = <T>(nsid: string, res: HandlerPipeThrough): T => {
201
255
  return lexicons.assertValidXrpcOutput(nsid, lex) as T
202
256
  }
203
257
 
258
+ const readArrayBufferRes = async (res: Response): Promise<ArrayBuffer> => {
259
+ try {
260
+ return await res.arrayBuffer()
261
+ } catch (err) {
262
+ httpLogger.warn({ err }, 'pipethrough network error')
263
+ throw new XRPCError(ResponseType.UpstreamFailure)
264
+ }
265
+ }
266
+
267
+ const isSafeUrl = (url: URL) => {
268
+ if (url.protocol !== 'https:') return false
269
+ if (!url.hostname || url.hostname === 'localhost') return false
270
+ if (net.isIP(url.hostname) !== 0) return false
271
+ return true
272
+ }
273
+
204
274
  const safeString = (str: string): string | undefined => {
205
275
  return typeof str === 'string' ? str : undefined
206
276
  }
@@ -1,4 +0,0 @@
1
- import { Server } from '../../../../lexicon';
2
- import AppContext from '../../../../context';
3
- export default function (server: Server, ctx: AppContext): void;
4
- //# sourceMappingURL=getSuggestions.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getSuggestions.d.ts","sourceRoot":"","sources":["../../../../../src/api/app/bsky/actor/getSuggestions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,UAAU,MAAM,qBAAqB,CAAA;AAG5C,MAAM,CAAC,OAAO,WAAW,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,QAYvD"}
@@ -1,19 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const pipethrough_1 = require("../../../../pipethrough");
4
- function default_1(server, ctx) {
5
- const { bskyAppView } = ctx.cfg;
6
- if (!bskyAppView)
7
- return;
8
- server.app.bsky.actor.getSuggestions({
9
- auth: ctx.authVerifier.access,
10
- handler: async ({ req, auth }) => {
11
- const requester = auth.credentials.did;
12
- return (0, pipethrough_1.pipethrough)(ctx, req, requester, undefined, {
13
- reqHeadersToForward: ['x-bsky-topics'],
14
- });
15
- },
16
- });
17
- }
18
- exports.default = default_1;
19
- //# sourceMappingURL=getSuggestions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getSuggestions.js","sourceRoot":"","sources":["../../../../../src/api/app/bsky/actor/getSuggestions.ts"],"names":[],"mappings":";;AAEA,yDAAqD;AAErD,mBAAyB,MAAc,EAAE,GAAe;IACtD,MAAM,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC,GAAG,CAAA;IAC/B,IAAI,CAAC,WAAW;QAAE,OAAM;IACxB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;QACnC,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC,MAAM;QAC7B,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE;YAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAA;YACtC,OAAO,IAAA,yBAAW,EAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE;gBACjD,mBAAmB,EAAE,CAAC,eAAe,CAAC;aACvC,CAAC,CAAA;QACJ,CAAC;KACF,CAAC,CAAA;AACJ,CAAC;AAZD,4BAYC"}
@@ -1,4 +0,0 @@
1
- import { Server } from '../../../../lexicon';
2
- import AppContext from '../../../../context';
3
- export default function (server: Server, ctx: AppContext): void;
4
- //# sourceMappingURL=searchActors.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"searchActors.d.ts","sourceRoot":"","sources":["../../../../../src/api/app/bsky/actor/searchActors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,UAAU,MAAM,qBAAqB,CAAA;AAG5C,MAAM,CAAC,OAAO,WAAW,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,QAUvD"}
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const pipethrough_1 = require("../../../../pipethrough");
4
- function default_1(server, ctx) {
5
- const { bskyAppView } = ctx.cfg;
6
- if (!bskyAppView)
7
- return;
8
- server.app.bsky.actor.searchActors({
9
- auth: ctx.authVerifier.access,
10
- handler: async ({ req, auth }) => {
11
- const requester = auth.credentials.did;
12
- return (0, pipethrough_1.pipethrough)(ctx, req, requester);
13
- },
14
- });
15
- }
16
- exports.default = default_1;
17
- //# sourceMappingURL=searchActors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"searchActors.js","sourceRoot":"","sources":["../../../../../src/api/app/bsky/actor/searchActors.ts"],"names":[],"mappings":";;AAEA,yDAAqD;AAErD,mBAAyB,MAAc,EAAE,GAAe;IACtD,MAAM,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC,GAAG,CAAA;IAC/B,IAAI,CAAC,WAAW;QAAE,OAAM;IACxB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;QACjC,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC,MAAM;QAC7B,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE;YAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAA;YACtC,OAAO,IAAA,yBAAW,EAAC,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,CAAA;QACzC,CAAC;KACF,CAAC,CAAA;AACJ,CAAC;AAVD,4BAUC"}
@@ -1,4 +0,0 @@
1
- import { Server } from '../../../../lexicon';
2
- import AppContext from '../../../../context';
3
- export default function (server: Server, ctx: AppContext): void;
4
- //# sourceMappingURL=searchActorsTypeahead.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"searchActorsTypeahead.d.ts","sourceRoot":"","sources":["../../../../../src/api/app/bsky/actor/searchActorsTypeahead.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,UAAU,MAAM,qBAAqB,CAAA;AAG5C,MAAM,CAAC,OAAO,WAAW,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,QAUvD"}
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const pipethrough_1 = require("../../../../pipethrough");
4
- function default_1(server, ctx) {
5
- const { bskyAppView } = ctx.cfg;
6
- if (!bskyAppView)
7
- return;
8
- server.app.bsky.actor.searchActorsTypeahead({
9
- auth: ctx.authVerifier.access,
10
- handler: async ({ req, auth }) => {
11
- const requester = auth.credentials.did;
12
- return (0, pipethrough_1.pipethrough)(ctx, req, requester);
13
- },
14
- });
15
- }
16
- exports.default = default_1;
17
- //# sourceMappingURL=searchActorsTypeahead.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"searchActorsTypeahead.js","sourceRoot":"","sources":["../../../../../src/api/app/bsky/actor/searchActorsTypeahead.ts"],"names":[],"mappings":";;AAEA,yDAAqD;AAErD,mBAAyB,MAAc,EAAE,GAAe;IACtD,MAAM,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC,GAAG,CAAA;IAC/B,IAAI,CAAC,WAAW;QAAE,OAAM;IACxB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC;QAC1C,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC,MAAM;QAC7B,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE;YAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAA;YACtC,OAAO,IAAA,yBAAW,EAAC,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,CAAA;QACzC,CAAC;KACF,CAAC,CAAA;AACJ,CAAC;AAVD,4BAUC"}
@@ -1,4 +0,0 @@
1
- import { Server } from '../../../../lexicon';
2
- import AppContext from '../../../../context';
3
- export default function (server: Server, ctx: AppContext): void;
4
- //# sourceMappingURL=getActorFeeds.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getActorFeeds.d.ts","sourceRoot":"","sources":["../../../../../src/api/app/bsky/feed/getActorFeeds.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,UAAU,MAAM,qBAAqB,CAAA;AAG5C,MAAM,CAAC,OAAO,WAAW,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,QAUvD"}
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const pipethrough_1 = require("../../../../pipethrough");
4
- function default_1(server, ctx) {
5
- const { bskyAppView } = ctx.cfg;
6
- if (!bskyAppView)
7
- return;
8
- server.app.bsky.feed.getActorFeeds({
9
- auth: ctx.authVerifier.access,
10
- handler: async ({ req, auth }) => {
11
- const requester = auth.credentials.did;
12
- return (0, pipethrough_1.pipethrough)(ctx, req, requester);
13
- },
14
- });
15
- }
16
- exports.default = default_1;
17
- //# sourceMappingURL=getActorFeeds.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getActorFeeds.js","sourceRoot":"","sources":["../../../../../src/api/app/bsky/feed/getActorFeeds.ts"],"names":[],"mappings":";;AAEA,yDAAqD;AAErD,mBAAyB,MAAc,EAAE,GAAe;IACtD,MAAM,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC,GAAG,CAAA;IAC/B,IAAI,CAAC,WAAW;QAAE,OAAM;IACxB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;QACjC,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC,MAAM;QAC7B,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE;YAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAA;YACtC,OAAO,IAAA,yBAAW,EAAC,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,CAAA;QACzC,CAAC;KACF,CAAC,CAAA;AACJ,CAAC;AAVD,4BAUC"}
@@ -1,4 +0,0 @@
1
- import { Server } from '../../../../lexicon';
2
- import AppContext from '../../../../context';
3
- export default function (server: Server, ctx: AppContext): void;
4
- //# sourceMappingURL=getFeedGenerator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getFeedGenerator.d.ts","sourceRoot":"","sources":["../../../../../src/api/app/bsky/feed/getFeedGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,UAAU,MAAM,qBAAqB,CAAA;AAG5C,MAAM,CAAC,OAAO,WAAW,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,QAUvD"}
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const pipethrough_1 = require("../../../../pipethrough");
4
- function default_1(server, ctx) {
5
- const { bskyAppView } = ctx.cfg;
6
- if (!bskyAppView)
7
- return;
8
- server.app.bsky.feed.getFeedGenerator({
9
- auth: ctx.authVerifier.access,
10
- handler: async ({ req, auth }) => {
11
- const requester = auth.credentials.did;
12
- return (0, pipethrough_1.pipethrough)(ctx, req, requester);
13
- },
14
- });
15
- }
16
- exports.default = default_1;
17
- //# sourceMappingURL=getFeedGenerator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getFeedGenerator.js","sourceRoot":"","sources":["../../../../../src/api/app/bsky/feed/getFeedGenerator.ts"],"names":[],"mappings":";;AAEA,yDAAqD;AAErD,mBAAyB,MAAc,EAAE,GAAe;IACtD,MAAM,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC,GAAG,CAAA;IAC/B,IAAI,CAAC,WAAW;QAAE,OAAM;IACxB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC;QACpC,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC,MAAM;QAC7B,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE;YAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAA;YACtC,OAAO,IAAA,yBAAW,EAAC,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,CAAA;QACzC,CAAC;KACF,CAAC,CAAA;AACJ,CAAC;AAVD,4BAUC"}
@@ -1,4 +0,0 @@
1
- import { Server } from '../../../../lexicon';
2
- import AppContext from '../../../../context';
3
- export default function (server: Server, ctx: AppContext): void;
4
- //# sourceMappingURL=getFeedGenerators.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getFeedGenerators.d.ts","sourceRoot":"","sources":["../../../../../src/api/app/bsky/feed/getFeedGenerators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,UAAU,MAAM,qBAAqB,CAAA;AAG5C,MAAM,CAAC,OAAO,WAAW,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,QAUvD"}
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const pipethrough_1 = require("../../../../pipethrough");
4
- function default_1(server, ctx) {
5
- const { bskyAppView } = ctx.cfg;
6
- if (!bskyAppView)
7
- return;
8
- server.app.bsky.feed.getFeedGenerators({
9
- auth: ctx.authVerifier.access,
10
- handler: async ({ req, auth }) => {
11
- const requester = auth.credentials.did;
12
- return (0, pipethrough_1.pipethrough)(ctx, req, requester);
13
- },
14
- });
15
- }
16
- exports.default = default_1;
17
- //# sourceMappingURL=getFeedGenerators.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getFeedGenerators.js","sourceRoot":"","sources":["../../../../../src/api/app/bsky/feed/getFeedGenerators.ts"],"names":[],"mappings":";;AAEA,yDAAqD;AAErD,mBAAyB,MAAc,EAAE,GAAe;IACtD,MAAM,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC,GAAG,CAAA;IAC/B,IAAI,CAAC,WAAW;QAAE,OAAM;IACxB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC;QACrC,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC,MAAM;QAC7B,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE;YAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAA;YACtC,OAAO,IAAA,yBAAW,EAAC,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,CAAA;QACzC,CAAC;KACF,CAAC,CAAA;AACJ,CAAC;AAVD,4BAUC"}
@@ -1,4 +0,0 @@
1
- import { Server } from '../../../../lexicon';
2
- import AppContext from '../../../../context';
3
- export default function (server: Server, ctx: AppContext): void;
4
- //# sourceMappingURL=getLikes.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getLikes.d.ts","sourceRoot":"","sources":["../../../../../src/api/app/bsky/feed/getLikes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,UAAU,MAAM,qBAAqB,CAAA;AAG5C,MAAM,CAAC,OAAO,WAAW,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,QAUvD"}
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const pipethrough_1 = require("../../../../pipethrough");
4
- function default_1(server, ctx) {
5
- const { bskyAppView } = ctx.cfg;
6
- if (!bskyAppView)
7
- return;
8
- server.app.bsky.feed.getLikes({
9
- auth: ctx.authVerifier.access,
10
- handler: async ({ req, auth }) => {
11
- const requester = auth.credentials.did;
12
- return (0, pipethrough_1.pipethrough)(ctx, req, requester);
13
- },
14
- });
15
- }
16
- exports.default = default_1;
17
- //# sourceMappingURL=getLikes.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getLikes.js","sourceRoot":"","sources":["../../../../../src/api/app/bsky/feed/getLikes.ts"],"names":[],"mappings":";;AAEA,yDAAqD;AAErD,mBAAyB,MAAc,EAAE,GAAe;IACtD,MAAM,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC,GAAG,CAAA;IAC/B,IAAI,CAAC,WAAW;QAAE,OAAM;IACxB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC5B,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC,MAAM;QAC7B,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE;YAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAA;YACtC,OAAO,IAAA,yBAAW,EAAC,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,CAAA;QACzC,CAAC;KACF,CAAC,CAAA;AACJ,CAAC;AAVD,4BAUC"}
@@ -1,4 +0,0 @@
1
- import { Server } from '../../../../lexicon';
2
- import AppContext from '../../../../context';
3
- export default function (server: Server, ctx: AppContext): void;
4
- //# sourceMappingURL=getListFeed.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getListFeed.d.ts","sourceRoot":"","sources":["../../../../../src/api/app/bsky/feed/getListFeed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,UAAU,MAAM,qBAAqB,CAAA;AAG5C,MAAM,CAAC,OAAO,WAAW,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,QAUvD"}
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const pipethrough_1 = require("../../../../pipethrough");
4
- function default_1(server, ctx) {
5
- const { bskyAppView } = ctx.cfg;
6
- if (!bskyAppView)
7
- return;
8
- server.app.bsky.feed.getListFeed({
9
- auth: ctx.authVerifier.access,
10
- handler: async ({ req, auth }) => {
11
- const requester = auth.credentials.did;
12
- return (0, pipethrough_1.pipethrough)(ctx, req, requester);
13
- },
14
- });
15
- }
16
- exports.default = default_1;
17
- //# sourceMappingURL=getListFeed.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getListFeed.js","sourceRoot":"","sources":["../../../../../src/api/app/bsky/feed/getListFeed.ts"],"names":[],"mappings":";;AAEA,yDAAqD;AAErD,mBAAyB,MAAc,EAAE,GAAe;IACtD,MAAM,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC,GAAG,CAAA;IAC/B,IAAI,CAAC,WAAW;QAAE,OAAM;IACxB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;QAC/B,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC,MAAM;QAC7B,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE;YAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAA;YACtC,OAAO,IAAA,yBAAW,EAAC,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,CAAA;QACzC,CAAC;KACF,CAAC,CAAA;AACJ,CAAC;AAVD,4BAUC"}
@@ -1,4 +0,0 @@
1
- import { Server } from '../../../../lexicon';
2
- import AppContext from '../../../../context';
3
- export default function (server: Server, ctx: AppContext): void;
4
- //# sourceMappingURL=getPosts.d.ts.map