@atproto/bsky 0.3.13 → 0.5.0

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 (288) hide show
  1. package/CHANGELOG.md +61 -0
  2. package/dist/api/app/bsky/actor/getProfile.d.ts.map +1 -1
  3. package/dist/api/app/bsky/actor/getProfile.js +1 -0
  4. package/dist/api/app/bsky/actor/getProfile.js.map +1 -1
  5. package/dist/api/app/bsky/actor/getProfiles.d.ts.map +1 -1
  6. package/dist/api/app/bsky/actor/getProfiles.js +1 -0
  7. package/dist/api/app/bsky/actor/getProfiles.js.map +1 -1
  8. package/dist/api/app/bsky/actor/getSuggestions.d.ts.map +1 -1
  9. package/dist/api/app/bsky/actor/getSuggestions.js +1 -0
  10. package/dist/api/app/bsky/actor/getSuggestions.js.map +1 -1
  11. package/dist/api/app/bsky/actor/searchActors.d.ts.map +1 -1
  12. package/dist/api/app/bsky/actor/searchActors.js +1 -0
  13. package/dist/api/app/bsky/actor/searchActors.js.map +1 -1
  14. package/dist/api/app/bsky/actor/searchActorsTypeahead.d.ts.map +1 -1
  15. package/dist/api/app/bsky/actor/searchActorsTypeahead.js +1 -0
  16. package/dist/api/app/bsky/actor/searchActorsTypeahead.js.map +1 -1
  17. package/dist/api/app/bsky/bookmark/getBookmarks.d.ts.map +1 -1
  18. package/dist/api/app/bsky/bookmark/getBookmarks.js +1 -0
  19. package/dist/api/app/bsky/bookmark/getBookmarks.js.map +1 -1
  20. package/dist/api/app/bsky/contact/getMatches.d.ts.map +1 -1
  21. package/dist/api/app/bsky/contact/getMatches.js +1 -0
  22. package/dist/api/app/bsky/contact/getMatches.js.map +1 -1
  23. package/dist/api/app/bsky/contact/importContacts.d.ts.map +1 -1
  24. package/dist/api/app/bsky/contact/importContacts.js +1 -0
  25. package/dist/api/app/bsky/contact/importContacts.js.map +1 -1
  26. package/dist/api/app/bsky/feed/getActorFeeds.d.ts.map +1 -1
  27. package/dist/api/app/bsky/feed/getActorFeeds.js +5 -1
  28. package/dist/api/app/bsky/feed/getActorFeeds.js.map +1 -1
  29. package/dist/api/app/bsky/feed/getActorLikes.d.ts.map +1 -1
  30. package/dist/api/app/bsky/feed/getActorLikes.js +1 -0
  31. package/dist/api/app/bsky/feed/getActorLikes.js.map +1 -1
  32. package/dist/api/app/bsky/feed/getAuthorFeed.d.ts.map +1 -1
  33. package/dist/api/app/bsky/feed/getAuthorFeed.js +1 -0
  34. package/dist/api/app/bsky/feed/getAuthorFeed.js.map +1 -1
  35. package/dist/api/app/bsky/feed/getFeed.d.ts.map +1 -1
  36. package/dist/api/app/bsky/feed/getFeed.js +1 -0
  37. package/dist/api/app/bsky/feed/getFeed.js.map +1 -1
  38. package/dist/api/app/bsky/feed/getFeedGenerator.d.ts.map +1 -1
  39. package/dist/api/app/bsky/feed/getFeedGenerator.js +5 -1
  40. package/dist/api/app/bsky/feed/getFeedGenerator.js.map +1 -1
  41. package/dist/api/app/bsky/feed/getFeedGenerators.d.ts.map +1 -1
  42. package/dist/api/app/bsky/feed/getFeedGenerators.js +5 -1
  43. package/dist/api/app/bsky/feed/getFeedGenerators.js.map +1 -1
  44. package/dist/api/app/bsky/feed/getLikes.d.ts.map +1 -1
  45. package/dist/api/app/bsky/feed/getLikes.js +1 -0
  46. package/dist/api/app/bsky/feed/getLikes.js.map +1 -1
  47. package/dist/api/app/bsky/feed/getListFeed.d.ts.map +1 -1
  48. package/dist/api/app/bsky/feed/getListFeed.js +1 -0
  49. package/dist/api/app/bsky/feed/getListFeed.js.map +1 -1
  50. package/dist/api/app/bsky/feed/getPostThread.d.ts.map +1 -1
  51. package/dist/api/app/bsky/feed/getPostThread.js +1 -0
  52. package/dist/api/app/bsky/feed/getPostThread.js.map +1 -1
  53. package/dist/api/app/bsky/feed/getPosts.d.ts.map +1 -1
  54. package/dist/api/app/bsky/feed/getPosts.js +5 -1
  55. package/dist/api/app/bsky/feed/getPosts.js.map +1 -1
  56. package/dist/api/app/bsky/feed/getQuotes.d.ts.map +1 -1
  57. package/dist/api/app/bsky/feed/getQuotes.js +1 -0
  58. package/dist/api/app/bsky/feed/getQuotes.js.map +1 -1
  59. package/dist/api/app/bsky/feed/getRepostedBy.d.ts.map +1 -1
  60. package/dist/api/app/bsky/feed/getRepostedBy.js +1 -0
  61. package/dist/api/app/bsky/feed/getRepostedBy.js.map +1 -1
  62. package/dist/api/app/bsky/feed/getSuggestedFeeds.d.ts.map +1 -1
  63. package/dist/api/app/bsky/feed/getSuggestedFeeds.js +5 -1
  64. package/dist/api/app/bsky/feed/getSuggestedFeeds.js.map +1 -1
  65. package/dist/api/app/bsky/feed/getTimeline.d.ts.map +1 -1
  66. package/dist/api/app/bsky/feed/getTimeline.js +1 -0
  67. package/dist/api/app/bsky/feed/getTimeline.js.map +1 -1
  68. package/dist/api/app/bsky/feed/searchPosts.d.ts.map +1 -1
  69. package/dist/api/app/bsky/feed/searchPosts.js +1 -0
  70. package/dist/api/app/bsky/feed/searchPosts.js.map +1 -1
  71. package/dist/api/app/bsky/feed/searchPostsV2.d.ts.map +1 -1
  72. package/dist/api/app/bsky/feed/searchPostsV2.js +1 -0
  73. package/dist/api/app/bsky/feed/searchPostsV2.js.map +1 -1
  74. package/dist/api/app/bsky/graph/getActorStarterPacks.d.ts.map +1 -1
  75. package/dist/api/app/bsky/graph/getActorStarterPacks.js +1 -0
  76. package/dist/api/app/bsky/graph/getActorStarterPacks.js.map +1 -1
  77. package/dist/api/app/bsky/graph/getBlocks.d.ts.map +1 -1
  78. package/dist/api/app/bsky/graph/getBlocks.js +5 -1
  79. package/dist/api/app/bsky/graph/getBlocks.js.map +1 -1
  80. package/dist/api/app/bsky/graph/getFollowers.d.ts.map +1 -1
  81. package/dist/api/app/bsky/graph/getFollowers.js +1 -0
  82. package/dist/api/app/bsky/graph/getFollowers.js.map +1 -1
  83. package/dist/api/app/bsky/graph/getFollows.d.ts.map +1 -1
  84. package/dist/api/app/bsky/graph/getFollows.js +1 -0
  85. package/dist/api/app/bsky/graph/getFollows.js.map +1 -1
  86. package/dist/api/app/bsky/graph/getKnownFollowers.d.ts.map +1 -1
  87. package/dist/api/app/bsky/graph/getKnownFollowers.js +1 -0
  88. package/dist/api/app/bsky/graph/getKnownFollowers.js.map +1 -1
  89. package/dist/api/app/bsky/graph/getList.d.ts.map +1 -1
  90. package/dist/api/app/bsky/graph/getList.js +1 -0
  91. package/dist/api/app/bsky/graph/getList.js.map +1 -1
  92. package/dist/api/app/bsky/graph/getListBlocks.d.ts.map +1 -1
  93. package/dist/api/app/bsky/graph/getListBlocks.js +5 -1
  94. package/dist/api/app/bsky/graph/getListBlocks.js.map +1 -1
  95. package/dist/api/app/bsky/graph/getListMutes.d.ts.map +1 -1
  96. package/dist/api/app/bsky/graph/getListMutes.js +5 -1
  97. package/dist/api/app/bsky/graph/getListMutes.js.map +1 -1
  98. package/dist/api/app/bsky/graph/getLists.d.ts.map +1 -1
  99. package/dist/api/app/bsky/graph/getLists.js +1 -0
  100. package/dist/api/app/bsky/graph/getLists.js.map +1 -1
  101. package/dist/api/app/bsky/graph/getListsWithMembership.d.ts.map +1 -1
  102. package/dist/api/app/bsky/graph/getListsWithMembership.js +1 -0
  103. package/dist/api/app/bsky/graph/getListsWithMembership.js.map +1 -1
  104. package/dist/api/app/bsky/graph/getMutes.d.ts.map +1 -1
  105. package/dist/api/app/bsky/graph/getMutes.js +5 -1
  106. package/dist/api/app/bsky/graph/getMutes.js.map +1 -1
  107. package/dist/api/app/bsky/graph/getStarterPack.d.ts.map +1 -1
  108. package/dist/api/app/bsky/graph/getStarterPack.js +1 -0
  109. package/dist/api/app/bsky/graph/getStarterPack.js.map +1 -1
  110. package/dist/api/app/bsky/graph/getStarterPacks.d.ts.map +1 -1
  111. package/dist/api/app/bsky/graph/getStarterPacks.js +1 -0
  112. package/dist/api/app/bsky/graph/getStarterPacks.js.map +1 -1
  113. package/dist/api/app/bsky/graph/getStarterPacksWithMembership.d.ts.map +1 -1
  114. package/dist/api/app/bsky/graph/getStarterPacksWithMembership.js +1 -0
  115. package/dist/api/app/bsky/graph/getStarterPacksWithMembership.js.map +1 -1
  116. package/dist/api/app/bsky/graph/getSuggestedFollowsByActor.d.ts.map +1 -1
  117. package/dist/api/app/bsky/graph/getSuggestedFollowsByActor.js +1 -0
  118. package/dist/api/app/bsky/graph/getSuggestedFollowsByActor.js.map +1 -1
  119. package/dist/api/app/bsky/graph/searchStarterPacks.d.ts.map +1 -1
  120. package/dist/api/app/bsky/graph/searchStarterPacks.js +1 -0
  121. package/dist/api/app/bsky/graph/searchStarterPacks.js.map +1 -1
  122. package/dist/api/app/bsky/graph/searchStarterPacksV2.d.ts.map +1 -1
  123. package/dist/api/app/bsky/graph/searchStarterPacksV2.js +1 -0
  124. package/dist/api/app/bsky/graph/searchStarterPacksV2.js.map +1 -1
  125. package/dist/api/app/bsky/labeler/getServices.d.ts.map +1 -1
  126. package/dist/api/app/bsky/labeler/getServices.js +1 -0
  127. package/dist/api/app/bsky/labeler/getServices.js.map +1 -1
  128. package/dist/api/app/bsky/notification/getGroupedNotifications.d.ts.map +1 -1
  129. package/dist/api/app/bsky/notification/getGroupedNotifications.js +41 -20
  130. package/dist/api/app/bsky/notification/getGroupedNotifications.js.map +1 -1
  131. package/dist/api/app/bsky/notification/grouping/algoGravity.d.ts +4 -3
  132. package/dist/api/app/bsky/notification/grouping/algoGravity.d.ts.map +1 -1
  133. package/dist/api/app/bsky/notification/grouping/algoGravity.js +53 -42
  134. package/dist/api/app/bsky/notification/grouping/algoGravity.js.map +1 -1
  135. package/dist/api/app/bsky/notification/grouping/algoLookback.d.ts +4 -3
  136. package/dist/api/app/bsky/notification/grouping/algoLookback.d.ts.map +1 -1
  137. package/dist/api/app/bsky/notification/grouping/algoLookback.js +56 -42
  138. package/dist/api/app/bsky/notification/grouping/algoLookback.js.map +1 -1
  139. package/dist/api/app/bsky/notification/grouping/grouping.d.ts +12 -2
  140. package/dist/api/app/bsky/notification/grouping/grouping.d.ts.map +1 -1
  141. package/dist/api/app/bsky/notification/grouping/grouping.js +20 -6
  142. package/dist/api/app/bsky/notification/grouping/grouping.js.map +1 -1
  143. package/dist/api/app/bsky/notification/grouping/spotlight.d.ts +2 -2
  144. package/dist/api/app/bsky/notification/grouping/spotlight.d.ts.map +1 -1
  145. package/dist/api/app/bsky/notification/grouping/spotlight.js +35 -22
  146. package/dist/api/app/bsky/notification/grouping/spotlight.js.map +1 -1
  147. package/dist/api/app/bsky/notification/listActivitySubscriptions.d.ts.map +1 -1
  148. package/dist/api/app/bsky/notification/listActivitySubscriptions.js +1 -0
  149. package/dist/api/app/bsky/notification/listActivitySubscriptions.js.map +1 -1
  150. package/dist/api/app/bsky/notification/listNotifications.d.ts.map +1 -1
  151. package/dist/api/app/bsky/notification/listNotifications.js +5 -1
  152. package/dist/api/app/bsky/notification/listNotifications.js.map +1 -1
  153. package/dist/api/app/bsky/unspecced/atmosphere-grouping.d.ts +16 -0
  154. package/dist/api/app/bsky/unspecced/atmosphere-grouping.d.ts.map +1 -0
  155. package/dist/api/app/bsky/unspecced/atmosphere-grouping.js +124 -0
  156. package/dist/api/app/bsky/unspecced/atmosphere-grouping.js.map +1 -0
  157. package/dist/api/app/bsky/unspecced/atmosphere-hydration.d.ts +32 -0
  158. package/dist/api/app/bsky/unspecced/atmosphere-hydration.d.ts.map +1 -0
  159. package/dist/api/app/bsky/unspecced/atmosphere-hydration.js +201 -0
  160. package/dist/api/app/bsky/unspecced/atmosphere-hydration.js.map +1 -0
  161. package/dist/api/app/bsky/unspecced/atmosphere-pagination.d.ts +6 -0
  162. package/dist/api/app/bsky/unspecced/atmosphere-pagination.d.ts.map +1 -0
  163. package/dist/api/app/bsky/unspecced/atmosphere-pagination.js +164 -0
  164. package/dist/api/app/bsky/unspecced/atmosphere-pagination.js.map +1 -0
  165. package/dist/api/app/bsky/unspecced/getAtmosphereExploreTab.d.ts.map +1 -1
  166. package/dist/api/app/bsky/unspecced/getAtmosphereExploreTab.js +120 -55
  167. package/dist/api/app/bsky/unspecced/getAtmosphereExploreTab.js.map +1 -1
  168. package/dist/api/app/bsky/unspecced/getAtmosphereTimeline.d.ts +4 -0
  169. package/dist/api/app/bsky/unspecced/getAtmosphereTimeline.d.ts.map +1 -0
  170. package/dist/api/app/bsky/unspecced/getAtmosphereTimeline.js +30 -0
  171. package/dist/api/app/bsky/unspecced/getAtmosphereTimeline.js.map +1 -0
  172. package/dist/api/app/bsky/unspecced/getOnboardingSuggestedStarterPacks.d.ts.map +1 -1
  173. package/dist/api/app/bsky/unspecced/getOnboardingSuggestedStarterPacks.js +4 -7
  174. package/dist/api/app/bsky/unspecced/getOnboardingSuggestedStarterPacks.js.map +1 -1
  175. package/dist/api/app/bsky/unspecced/getPopularFeedGenerators.d.ts.map +1 -1
  176. package/dist/api/app/bsky/unspecced/getPopularFeedGenerators.js +1 -0
  177. package/dist/api/app/bsky/unspecced/getPopularFeedGenerators.js.map +1 -1
  178. package/dist/api/app/bsky/unspecced/getPostThreadOtherV2.d.ts.map +1 -1
  179. package/dist/api/app/bsky/unspecced/getPostThreadOtherV2.js +1 -0
  180. package/dist/api/app/bsky/unspecced/getPostThreadOtherV2.js.map +1 -1
  181. package/dist/api/app/bsky/unspecced/getPostThreadV2.d.ts.map +1 -1
  182. package/dist/api/app/bsky/unspecced/getPostThreadV2.js +1 -0
  183. package/dist/api/app/bsky/unspecced/getPostThreadV2.js.map +1 -1
  184. package/dist/api/app/bsky/unspecced/getSuggestedFeeds.d.ts.map +1 -1
  185. package/dist/api/app/bsky/unspecced/getSuggestedFeeds.js +4 -7
  186. package/dist/api/app/bsky/unspecced/getSuggestedFeeds.js.map +1 -1
  187. package/dist/api/app/bsky/unspecced/getSuggestedOnboardingUsers.d.ts.map +1 -1
  188. package/dist/api/app/bsky/unspecced/getSuggestedOnboardingUsers.js +1 -0
  189. package/dist/api/app/bsky/unspecced/getSuggestedOnboardingUsers.js.map +1 -1
  190. package/dist/api/app/bsky/unspecced/getSuggestedStarterPacks.d.ts.map +1 -1
  191. package/dist/api/app/bsky/unspecced/getSuggestedStarterPacks.js +4 -7
  192. package/dist/api/app/bsky/unspecced/getSuggestedStarterPacks.js.map +1 -1
  193. package/dist/api/app/bsky/unspecced/getSuggestedUsers.d.ts.map +1 -1
  194. package/dist/api/app/bsky/unspecced/getSuggestedUsers.js +2 -19
  195. package/dist/api/app/bsky/unspecced/getSuggestedUsers.js.map +1 -1
  196. package/dist/api/app/bsky/unspecced/getSuggestedUsersForDiscover.d.ts.map +1 -1
  197. package/dist/api/app/bsky/unspecced/getSuggestedUsersForDiscover.js +1 -0
  198. package/dist/api/app/bsky/unspecced/getSuggestedUsersForDiscover.js.map +1 -1
  199. package/dist/api/app/bsky/unspecced/getSuggestedUsersForExplore.d.ts.map +1 -1
  200. package/dist/api/app/bsky/unspecced/getSuggestedUsersForExplore.js +1 -0
  201. package/dist/api/app/bsky/unspecced/getSuggestedUsersForExplore.js.map +1 -1
  202. package/dist/api/app/bsky/unspecced/getSuggestedUsersForSeeMore.d.ts.map +1 -1
  203. package/dist/api/app/bsky/unspecced/getSuggestedUsersForSeeMore.js +1 -0
  204. package/dist/api/app/bsky/unspecced/getSuggestedUsersForSeeMore.js.map +1 -1
  205. package/dist/api/app/bsky/unspecced/getTrendingTopics.d.ts.map +1 -1
  206. package/dist/api/app/bsky/unspecced/getTrendingTopics.js +6 -2
  207. package/dist/api/app/bsky/unspecced/getTrendingTopics.js.map +1 -1
  208. package/dist/api/app/bsky/unspecced/getTrends.d.ts.map +1 -1
  209. package/dist/api/app/bsky/unspecced/getTrends.js +6 -2
  210. package/dist/api/app/bsky/unspecced/getTrends.js.map +1 -1
  211. package/dist/api/blob-resolver.d.ts.map +1 -1
  212. package/dist/api/blob-resolver.js +9 -8
  213. package/dist/api/blob-resolver.js.map +1 -1
  214. package/dist/api/index.d.ts.map +1 -1
  215. package/dist/api/index.js +2 -0
  216. package/dist/api/index.js.map +1 -1
  217. package/dist/api/internal/bsky/actor/getProfiles.d.ts.map +1 -1
  218. package/dist/api/internal/bsky/actor/getProfiles.js +1 -0
  219. package/dist/api/internal/bsky/actor/getProfiles.js.map +1 -1
  220. package/dist/config.d.ts +2 -6
  221. package/dist/config.d.ts.map +1 -1
  222. package/dist/config.js +7 -16
  223. package/dist/config.js.map +1 -1
  224. package/dist/context.d.ts +0 -2
  225. package/dist/context.d.ts.map +1 -1
  226. package/dist/context.js +0 -3
  227. package/dist/context.js.map +1 -1
  228. package/dist/feature-gates/gates.d.ts +0 -4
  229. package/dist/feature-gates/gates.d.ts.map +1 -1
  230. package/dist/feature-gates/gates.js +0 -4
  231. package/dist/feature-gates/gates.js.map +1 -1
  232. package/dist/hydration/external.d.ts +58 -45
  233. package/dist/hydration/external.d.ts.map +1 -1
  234. package/dist/hydration/external.js +134 -114
  235. package/dist/hydration/external.js.map +1 -1
  236. package/dist/hydration/hydrator.d.ts +15 -9
  237. package/dist/hydration/hydrator.d.ts.map +1 -1
  238. package/dist/hydration/hydrator.js +170 -210
  239. package/dist/hydration/hydrator.js.map +1 -1
  240. package/dist/image/server.d.ts.map +1 -1
  241. package/dist/image/server.js +12 -1
  242. package/dist/image/server.js.map +1 -1
  243. package/dist/index.d.ts.map +1 -1
  244. package/dist/index.js +4 -19
  245. package/dist/index.js.map +1 -1
  246. package/dist/lexicons/app/bsky/unspecced/getAtmosphereExploreTab.defs.d.ts +29 -0
  247. package/dist/lexicons/app/bsky/unspecced/getAtmosphereExploreTab.defs.d.ts.map +1 -1
  248. package/dist/lexicons/app/bsky/unspecced/getAtmosphereExploreTab.defs.js +2 -1
  249. package/dist/lexicons/app/bsky/unspecced/getAtmosphereExploreTab.defs.js.map +1 -1
  250. package/dist/lexicons/app/bsky/unspecced/getAtmosphereTimeline.d.ts +3 -0
  251. package/dist/lexicons/app/bsky/unspecced/getAtmosphereTimeline.d.ts.map +1 -0
  252. package/dist/lexicons/app/bsky/unspecced/getAtmosphereTimeline.defs.d.ts +85 -0
  253. package/dist/lexicons/app/bsky/unspecced/getAtmosphereTimeline.defs.d.ts.map +1 -0
  254. package/dist/lexicons/app/bsky/unspecced/getAtmosphereTimeline.defs.js +29 -0
  255. package/dist/lexicons/app/bsky/unspecced/getAtmosphereTimeline.defs.js.map +1 -0
  256. package/dist/lexicons/app/bsky/unspecced/getAtmosphereTimeline.js +6 -0
  257. package/dist/lexicons/app/bsky/unspecced/getAtmosphereTimeline.js.map +1 -0
  258. package/dist/lexicons/app/bsky/unspecced.d.ts +1 -0
  259. package/dist/lexicons/app/bsky/unspecced.d.ts.map +1 -1
  260. package/dist/lexicons/app/bsky/unspecced.js +1 -0
  261. package/dist/lexicons/app/bsky/unspecced.js.map +1 -1
  262. package/dist/lexicons/tools/ozone/moderation/emitEvent.defs.d.ts +2 -2
  263. package/dist/lexicons/tools/ozone/moderation/emitEvent.defs.js.map +1 -1
  264. package/dist/lexicons/tools/ozone/report/closeReports.defs.d.ts +1 -1
  265. package/dist/lexicons/tools/ozone/report/closeReports.defs.d.ts.map +1 -1
  266. package/dist/lexicons/tools/ozone/report/closeReports.defs.js +1 -1
  267. package/dist/lexicons/tools/ozone/report/closeReports.defs.js.map +1 -1
  268. package/dist/telemetry/events.d.ts +14 -6
  269. package/dist/telemetry/events.d.ts.map +1 -1
  270. package/dist/telemetry/events.js +40 -5
  271. package/dist/telemetry/events.js.map +1 -1
  272. package/dist/util/external/standard-site.d.ts +2 -3
  273. package/dist/util/external/standard-site.d.ts.map +1 -1
  274. package/dist/util/external/standard-site.js +2 -3
  275. package/dist/util/external/standard-site.js.map +1 -1
  276. package/dist/util/uris.d.ts +5 -2
  277. package/dist/util/uris.d.ts.map +1 -1
  278. package/dist/util/uris.js +14 -1
  279. package/dist/util/uris.js.map +1 -1
  280. package/dist/views/external.d.ts +5 -0
  281. package/dist/views/external.d.ts.map +1 -1
  282. package/dist/views/external.js +38 -11
  283. package/dist/views/external.js.map +1 -1
  284. package/dist/views/index.d.ts +2 -2
  285. package/dist/views/index.d.ts.map +1 -1
  286. package/dist/views/index.js +17 -11
  287. package/dist/views/index.js.map +1 -1
  288. package/package.json +13 -14
@@ -0,0 +1,29 @@
1
+ /*
2
+ * THIS FILE WAS GENERATED BY "@atproto/lex". DO NOT EDIT.
3
+ */
4
+ import { l } from "@atproto/lex";
5
+ import * as EmbedExternal from "../embed/external.defs.js";
6
+ import * as FeedDefs from "../feed/defs.defs.js";
7
+ import * as ActorDefs from "../actor/defs.defs.js";
8
+ const $nsid = "app.bsky.unspecced.getAtmosphereTimeline";
9
+ export { $nsid };
10
+ export const $params = /*#__PURE__*/ l.params({ "cursor": /*#__PURE__*/ l.optional(/*#__PURE__*/ l.string()) });
11
+ export const $output = /*#__PURE__*/ l.jsonPayload({ "cursor": /*#__PURE__*/ l.optional(/*#__PURE__*/ l.string()), "feed": /*#__PURE__*/ l.array(/*#__PURE__*/ l.typedUnion([/*#__PURE__*/ l.typedRef((() => activityItem)), /*#__PURE__*/ l.typedRef((() => activityItemOverflow)), /*#__PURE__*/ l.typedRef((() => activityGroup))], false)) });
12
+ /** Get the authenticated viewer's Atmosphere activity timeline. Grouping and related activity are limited to the returned page. */
13
+ const main = /*#__PURE__*/ l.query($nsid, $params, $output);
14
+ export { main };
15
+ const $lxm = $nsid;
16
+ export { $lxm };
17
+ const activityRecord = /*#__PURE__*/ l.typedObject($nsid, "activityRecord", /*#__PURE__*/ l.object({ "uri": /*#__PURE__*/ l.string({ "format": "at-uri" }), "cid": /*#__PURE__*/ l.string({ "format": "cid" }), "indexedAt": /*#__PURE__*/ l.string({ "format": "datetime" }) }));
18
+ export { activityRecord };
19
+ const viewerState = /*#__PURE__*/ l.typedObject($nsid, "viewerState", /*#__PURE__*/ l.object({ "subscribed": /*#__PURE__*/ l.boolean() }));
20
+ export { viewerState };
21
+ const activityItem = /*#__PURE__*/ l.typedObject($nsid, "activityItem", /*#__PURE__*/ l.object({ "record": /*#__PURE__*/ l.ref((() => activityRecord)), "collection": /*#__PURE__*/ l.string({ "format": "nsid" }), "viewerState": /*#__PURE__*/ l.ref((() => viewerState)), "view": /*#__PURE__*/ l.optional(/*#__PURE__*/ l.typedUnion([/*#__PURE__*/ l.typedRef((() => EmbedExternal.viewArticle)), /*#__PURE__*/ l.typedRef((() => EmbedExternal.viewArticlePublication)), /*#__PURE__*/ l.typedRef((() => EmbedExternal.viewGallery)), /*#__PURE__*/ l.typedRef((() => EmbedExternal.viewLivestream)), /*#__PURE__*/ l.typedRef((() => FeedDefs.postView))], false)), "relatedActivity": /*#__PURE__*/ l.optional(/*#__PURE__*/ l.array(/*#__PURE__*/ l.ref((() => activityItem)))) }));
22
+ export { activityItem };
23
+ /** Distinct additional activities omitted from this page for an author and collection, without hydrating the omitted records. */
24
+ const activityItemOverflow = /*#__PURE__*/ l.typedObject($nsid, "activityItemOverflow", /*#__PURE__*/ l.object({ "count": /*#__PURE__*/ l.integer({ "minimum": 1 }), "collection": /*#__PURE__*/ l.string({ "format": "nsid" }), "associatedProfiles": /*#__PURE__*/ l.array(/*#__PURE__*/ l.ref((() => ActorDefs.profileViewBasic))) }));
25
+ export { activityItemOverflow };
26
+ /** Two or more activities of the same collection, within a fixed window anchored at the newest member. The group occupies the newest member's position. */
27
+ const activityGroup = /*#__PURE__*/ l.typedObject($nsid, "activityGroup", /*#__PURE__*/ l.object({ "id": /*#__PURE__*/ l.string(), "groupBy": /*#__PURE__*/ l.string(), "collection": /*#__PURE__*/ l.string({ "format": "nsid" }), "indexedAt": /*#__PURE__*/ l.string({ "format": "datetime" }), "items": /*#__PURE__*/ l.array(/*#__PURE__*/ l.ref((() => activityItem)), { "minLength": 2 }), "subject": /*#__PURE__*/ l.optional(/*#__PURE__*/ l.string({ "format": "at-uri" })), "actor": /*#__PURE__*/ l.optional(/*#__PURE__*/ l.string({ "format": "did" })) }));
28
+ export { activityGroup };
29
+ //# sourceMappingURL=getAtmosphereTimeline.defs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getAtmosphereTimeline.defs.js","sourceRoot":"","sources":["../../../../../src/lexicons/app/bsky/unspecced/getAtmosphereTimeline.defs.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * THIS FILE WAS GENERATED BY \"@atproto/lex\". DO NOT EDIT.\n */\n\nimport { l } from \"@atproto/lex\";\nimport * as EmbedExternal from \"../embed/external.defs.js\";\nimport * as FeedDefs from \"../feed/defs.defs.js\";\nimport * as ActorDefs from \"../actor/defs.defs.js\";\n\nconst $nsid = \"app.bsky.unspecced.getAtmosphereTimeline\";\n\ntype $nsid = typeof $nsid;\n\nexport { $nsid };\n\nexport const $params = /*#__PURE__*/ l.params({\"cursor\":/*#__PURE__*/ l.optional(/*#__PURE__*/ l.string())});\n\nexport type $Params = l.InferOutput<typeof $params>;\n\nexport const $output = /*#__PURE__*/ l.jsonPayload({\"cursor\":/*#__PURE__*/ l.optional(/*#__PURE__*/ l.string()),\"feed\":/*#__PURE__*/ l.array(/*#__PURE__*/ l.typedUnion([/*#__PURE__*/ l.typedRef<ActivityItem>((() => activityItem) as any),/*#__PURE__*/ l.typedRef<ActivityItemOverflow>((() => activityItemOverflow) as any),/*#__PURE__*/ l.typedRef<ActivityGroup>((() => activityGroup) as any)], false), )});\n\nexport type $Output<B = l.BinaryData> = l.InferPayload<typeof $output, B>;\nexport type $OutputBody<B = l.BinaryData> = l.InferPayloadBody<typeof $output, B>;\n\n/** Get the authenticated viewer's Atmosphere activity timeline. Grouping and related activity are limited to the returned page. */\nconst main = /*#__PURE__*/ l.query($nsid, $params, $output);\n\nexport { main };\n\nconst $lxm = $nsid;\n\ntype $lxm = typeof $lxm;\n\nexport { $lxm };\n\ntype ActivityRecord = { $type?: \"app.bsky.unspecced.getAtmosphereTimeline#activityRecord\";\"uri\":l.AtUriString;\"cid\":l.CidString;\"indexedAt\":l.DatetimeString };\n\nexport type { ActivityRecord };\n\nconst activityRecord = /*#__PURE__*/ l.typedObject<ActivityRecord>($nsid, \"activityRecord\", /*#__PURE__*/ l.object({\"uri\":/*#__PURE__*/ l.string({\"format\":\"at-uri\"}),\"cid\":/*#__PURE__*/ l.string({\"format\":\"cid\"}),\"indexedAt\":/*#__PURE__*/ l.string({\"format\":\"datetime\"})}));\n\nexport { activityRecord };\n\ntype ViewerState = { $type?: \"app.bsky.unspecced.getAtmosphereTimeline#viewerState\";\"subscribed\":boolean };\n\nexport type { ViewerState };\n\nconst viewerState = /*#__PURE__*/ l.typedObject<ViewerState>($nsid, \"viewerState\", /*#__PURE__*/ l.object({\"subscribed\":/*#__PURE__*/ l.boolean()}));\n\nexport { viewerState };\n\ntype ActivityItem = { $type?: \"app.bsky.unspecced.getAtmosphereTimeline#activityItem\";\"record\":ActivityRecord;\"collection\":l.NsidString;\"viewerState\":ViewerState;\"view\"?:l.$Typed<EmbedExternal.ViewArticle> | l.$Typed<EmbedExternal.ViewArticlePublication> | l.$Typed<EmbedExternal.ViewGallery> | l.$Typed<EmbedExternal.ViewLivestream> | l.$Typed<FeedDefs.PostView> | l.Unknown$TypedObject;\n\n /**\n * Recommendations and shares attached to this article. Attached activities do not themselves contain related activity.\n */\n \"relatedActivity\"?:(ActivityItem)[] };\n\nexport type { ActivityItem };\n\nconst activityItem = /*#__PURE__*/ l.typedObject<ActivityItem>($nsid, \"activityItem\", /*#__PURE__*/ l.object({\"record\":/*#__PURE__*/ l.ref<ActivityRecord>((() => activityRecord) as any),\"collection\":/*#__PURE__*/ l.string({\"format\":\"nsid\"}),\"viewerState\":/*#__PURE__*/ l.ref<ViewerState>((() => viewerState) as any),\"view\":/*#__PURE__*/ l.optional(/*#__PURE__*/ l.typedUnion([/*#__PURE__*/ l.typedRef<EmbedExternal.ViewArticle>((() => EmbedExternal.viewArticle) as any),/*#__PURE__*/ l.typedRef<EmbedExternal.ViewArticlePublication>((() => EmbedExternal.viewArticlePublication) as any),/*#__PURE__*/ l.typedRef<EmbedExternal.ViewGallery>((() => EmbedExternal.viewGallery) as any),/*#__PURE__*/ l.typedRef<EmbedExternal.ViewLivestream>((() => EmbedExternal.viewLivestream) as any),/*#__PURE__*/ l.typedRef<FeedDefs.PostView>((() => FeedDefs.postView) as any)], false)),\"relatedActivity\":/*#__PURE__*/ l.optional(/*#__PURE__*/ l.array(/*#__PURE__*/ l.ref<ActivityItem>((() => activityItem) as any), ))}));\n\nexport { activityItem };\n\n/** Distinct additional activities omitted from this page for an author and collection, without hydrating the omitted records. */\ntype ActivityItemOverflow = { $type?: \"app.bsky.unspecced.getAtmosphereTimeline#activityItemOverflow\";\"count\":number;\"collection\":l.NsidString;\"associatedProfiles\":(ActorDefs.ProfileViewBasic)[] };\n\nexport type { ActivityItemOverflow };\n\n/** Distinct additional activities omitted from this page for an author and collection, without hydrating the omitted records. */\nconst activityItemOverflow = /*#__PURE__*/ l.typedObject<ActivityItemOverflow>($nsid, \"activityItemOverflow\", /*#__PURE__*/ l.object({\"count\":/*#__PURE__*/ l.integer({\"minimum\":1}),\"collection\":/*#__PURE__*/ l.string({\"format\":\"nsid\"}),\"associatedProfiles\":/*#__PURE__*/ l.array(/*#__PURE__*/ l.ref<ActorDefs.ProfileViewBasic>((() => ActorDefs.profileViewBasic) as any), )}));\n\nexport { activityItemOverflow };\n\n/** Two or more activities of the same collection, within a fixed window anchored at the newest member. The group occupies the newest member's position. */\ntype ActivityGroup = { $type?: \"app.bsky.unspecced.getAtmosphereTimeline#activityGroup\";\"id\":string;\"groupBy\":\"subject\" | \"actor\" | l.UnknownString;\"collection\":l.NsidString;\"indexedAt\":l.DatetimeString;\"items\":(ActivityItem)[];\"subject\"?:l.AtUriString;\"actor\"?:l.DidString };\n\nexport type { ActivityGroup };\n\n/** Two or more activities of the same collection, within a fixed window anchored at the newest member. The group occupies the newest member's position. */\nconst activityGroup = /*#__PURE__*/ l.typedObject<ActivityGroup>($nsid, \"activityGroup\", /*#__PURE__*/ l.object({\"id\":/*#__PURE__*/ l.string(),\"groupBy\":/*#__PURE__*/ l.string<{\"knownValues\":[\"subject\",\"actor\"]}>(),\"collection\":/*#__PURE__*/ l.string({\"format\":\"nsid\"}),\"indexedAt\":/*#__PURE__*/ l.string({\"format\":\"datetime\"}),\"items\":/*#__PURE__*/ l.array(/*#__PURE__*/ l.ref<ActivityItem>((() => activityItem) as any), {\"minLength\":2}),\"subject\":/*#__PURE__*/ l.optional(/*#__PURE__*/ l.string({\"format\":\"at-uri\"})),\"actor\":/*#__PURE__*/ l.optional(/*#__PURE__*/ l.string({\"format\":\"did\"}))}));\n\nexport { activityGroup };\n"]}
@@ -0,0 +1,6 @@
1
+ /*
2
+ * THIS FILE WAS GENERATED BY "@atproto/lex". DO NOT EDIT.
3
+ */
4
+ export * from "./getAtmosphereTimeline.defs.js";
5
+ export { main as default } from "./getAtmosphereTimeline.defs.js";
6
+ //# sourceMappingURL=getAtmosphereTimeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getAtmosphereTimeline.js","sourceRoot":"","sources":["../../../../../src/lexicons/app/bsky/unspecced/getAtmosphereTimeline.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,iCAAiC,CAAC;AAChD,OAAO,EAAE,IAAI,IAAI,OAAO,EAAE,MAAM,iCAAiC,CAAC","sourcesContent":["/*\n * THIS FILE WAS GENERATED BY \"@atproto/lex\". DO NOT EDIT.\n */\n\nexport * from \"./getAtmosphereTimeline.defs.js\";\nexport { main as default } from \"./getAtmosphereTimeline.defs.js\";\n"]}
@@ -2,6 +2,7 @@ export * as defs from "./unspecced/defs.js";
2
2
  export * as getAgeAssuranceState from "./unspecced/getAgeAssuranceState.js";
3
3
  export * as getAtmosphereExploreArticleRecommendations from "./unspecced/getAtmosphereExploreArticleRecommendations.js";
4
4
  export * as getAtmosphereExploreTab from "./unspecced/getAtmosphereExploreTab.js";
5
+ export * as getAtmosphereTimeline from "./unspecced/getAtmosphereTimeline.js";
5
6
  export * as getConfig from "./unspecced/getConfig.js";
6
7
  export * as getOnboardingSuggestedStarterPacks from "./unspecced/getOnboardingSuggestedStarterPacks.js";
7
8
  export * as getOnboardingSuggestedStarterPacksSkeleton from "./unspecced/getOnboardingSuggestedStarterPacksSkeleton.js";
@@ -1 +1 @@
1
- {"version":3,"file":"unspecced.d.ts","sourceRoot":"","sources":["../../../../src/lexicons/app/bsky/unspecced.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,IAAI,MAAM,qBAAqB,CAAC;AAC5C,OAAO,KAAK,oBAAoB,MAAM,qCAAqC,CAAC;AAC5E,OAAO,KAAK,0CAA0C,MAAM,2DAA2D,CAAC;AACxH,OAAO,KAAK,uBAAuB,MAAM,wCAAwC,CAAC;AAClF,OAAO,KAAK,SAAS,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,kCAAkC,MAAM,mDAAmD,CAAC;AACxG,OAAO,KAAK,0CAA0C,MAAM,2DAA2D,CAAC;AACxH,OAAO,KAAK,mCAAmC,MAAM,oDAAoD,CAAC;AAC1G,OAAO,KAAK,wBAAwB,MAAM,yCAAyC,CAAC;AACpF,OAAO,KAAK,oBAAoB,MAAM,qCAAqC,CAAC;AAC5E,OAAO,KAAK,eAAe,MAAM,gCAAgC,CAAC;AAClE,OAAO,KAAK,iBAAiB,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,yBAAyB,MAAM,0CAA0C,CAAC;AACtF,OAAO,KAAK,2BAA2B,MAAM,4CAA4C,CAAC;AAC1F,OAAO,KAAK,wBAAwB,MAAM,yCAAyC,CAAC;AACpF,OAAO,KAAK,gCAAgC,MAAM,iDAAiD,CAAC;AACpG,OAAO,KAAK,iBAAiB,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,4BAA4B,MAAM,6CAA6C,CAAC;AAC5F,OAAO,KAAK,oCAAoC,MAAM,qDAAqD,CAAC;AAC5G,OAAO,KAAK,2BAA2B,MAAM,4CAA4C,CAAC;AAC1F,OAAO,KAAK,mCAAmC,MAAM,oDAAoD,CAAC;AAC1G,OAAO,KAAK,2BAA2B,MAAM,4CAA4C,CAAC;AAC1F,OAAO,KAAK,mCAAmC,MAAM,oDAAoD,CAAC;AAC1G,OAAO,KAAK,yBAAyB,MAAM,0CAA0C,CAAC;AACtF,OAAO,KAAK,sBAAsB,MAAM,uCAAuC,CAAC;AAChF,OAAO,KAAK,oBAAoB,MAAM,qCAAqC,CAAC;AAC5E,OAAO,KAAK,iBAAiB,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,SAAS,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,iBAAiB,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,gBAAgB,MAAM,iCAAiC,CAAC;AACpE,OAAO,KAAK,oBAAoB,MAAM,qCAAqC,CAAC;AAC5E,OAAO,KAAK,mBAAmB,MAAM,oCAAoC,CAAC;AAC1E,OAAO,KAAK,0BAA0B,MAAM,2CAA2C,CAAC"}
1
+ {"version":3,"file":"unspecced.d.ts","sourceRoot":"","sources":["../../../../src/lexicons/app/bsky/unspecced.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,IAAI,MAAM,qBAAqB,CAAC;AAC5C,OAAO,KAAK,oBAAoB,MAAM,qCAAqC,CAAC;AAC5E,OAAO,KAAK,0CAA0C,MAAM,2DAA2D,CAAC;AACxH,OAAO,KAAK,uBAAuB,MAAM,wCAAwC,CAAC;AAClF,OAAO,KAAK,qBAAqB,MAAM,sCAAsC,CAAC;AAC9E,OAAO,KAAK,SAAS,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,kCAAkC,MAAM,mDAAmD,CAAC;AACxG,OAAO,KAAK,0CAA0C,MAAM,2DAA2D,CAAC;AACxH,OAAO,KAAK,mCAAmC,MAAM,oDAAoD,CAAC;AAC1G,OAAO,KAAK,wBAAwB,MAAM,yCAAyC,CAAC;AACpF,OAAO,KAAK,oBAAoB,MAAM,qCAAqC,CAAC;AAC5E,OAAO,KAAK,eAAe,MAAM,gCAAgC,CAAC;AAClE,OAAO,KAAK,iBAAiB,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,yBAAyB,MAAM,0CAA0C,CAAC;AACtF,OAAO,KAAK,2BAA2B,MAAM,4CAA4C,CAAC;AAC1F,OAAO,KAAK,wBAAwB,MAAM,yCAAyC,CAAC;AACpF,OAAO,KAAK,gCAAgC,MAAM,iDAAiD,CAAC;AACpG,OAAO,KAAK,iBAAiB,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,4BAA4B,MAAM,6CAA6C,CAAC;AAC5F,OAAO,KAAK,oCAAoC,MAAM,qDAAqD,CAAC;AAC5G,OAAO,KAAK,2BAA2B,MAAM,4CAA4C,CAAC;AAC1F,OAAO,KAAK,mCAAmC,MAAM,oDAAoD,CAAC;AAC1G,OAAO,KAAK,2BAA2B,MAAM,4CAA4C,CAAC;AAC1F,OAAO,KAAK,mCAAmC,MAAM,oDAAoD,CAAC;AAC1G,OAAO,KAAK,yBAAyB,MAAM,0CAA0C,CAAC;AACtF,OAAO,KAAK,sBAAsB,MAAM,uCAAuC,CAAC;AAChF,OAAO,KAAK,oBAAoB,MAAM,qCAAqC,CAAC;AAC5E,OAAO,KAAK,iBAAiB,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,SAAS,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,iBAAiB,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,gBAAgB,MAAM,iCAAiC,CAAC;AACpE,OAAO,KAAK,oBAAoB,MAAM,qCAAqC,CAAC;AAC5E,OAAO,KAAK,mBAAmB,MAAM,oCAAoC,CAAC;AAC1E,OAAO,KAAK,0BAA0B,MAAM,2CAA2C,CAAC"}
@@ -5,6 +5,7 @@ export * as defs from "./unspecced/defs.js";
5
5
  export * as getAgeAssuranceState from "./unspecced/getAgeAssuranceState.js";
6
6
  export * as getAtmosphereExploreArticleRecommendations from "./unspecced/getAtmosphereExploreArticleRecommendations.js";
7
7
  export * as getAtmosphereExploreTab from "./unspecced/getAtmosphereExploreTab.js";
8
+ export * as getAtmosphereTimeline from "./unspecced/getAtmosphereTimeline.js";
8
9
  export * as getConfig from "./unspecced/getConfig.js";
9
10
  export * as getOnboardingSuggestedStarterPacks from "./unspecced/getOnboardingSuggestedStarterPacks.js";
10
11
  export * as getOnboardingSuggestedStarterPacksSkeleton from "./unspecced/getOnboardingSuggestedStarterPacksSkeleton.js";
@@ -1 +1 @@
1
- {"version":3,"file":"unspecced.js","sourceRoot":"","sources":["../../../../src/lexicons/app/bsky/unspecced.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,IAAI,MAAM,qBAAqB,CAAC;AAC5C,OAAO,KAAK,oBAAoB,MAAM,qCAAqC,CAAC;AAC5E,OAAO,KAAK,0CAA0C,MAAM,2DAA2D,CAAC;AACxH,OAAO,KAAK,uBAAuB,MAAM,wCAAwC,CAAC;AAClF,OAAO,KAAK,SAAS,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,kCAAkC,MAAM,mDAAmD,CAAC;AACxG,OAAO,KAAK,0CAA0C,MAAM,2DAA2D,CAAC;AACxH,OAAO,KAAK,mCAAmC,MAAM,oDAAoD,CAAC;AAC1G,OAAO,KAAK,wBAAwB,MAAM,yCAAyC,CAAC;AACpF,OAAO,KAAK,oBAAoB,MAAM,qCAAqC,CAAC;AAC5E,OAAO,KAAK,eAAe,MAAM,gCAAgC,CAAC;AAClE,OAAO,KAAK,iBAAiB,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,yBAAyB,MAAM,0CAA0C,CAAC;AACtF,OAAO,KAAK,2BAA2B,MAAM,4CAA4C,CAAC;AAC1F,OAAO,KAAK,wBAAwB,MAAM,yCAAyC,CAAC;AACpF,OAAO,KAAK,gCAAgC,MAAM,iDAAiD,CAAC;AACpG,OAAO,KAAK,iBAAiB,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,4BAA4B,MAAM,6CAA6C,CAAC;AAC5F,OAAO,KAAK,oCAAoC,MAAM,qDAAqD,CAAC;AAC5G,OAAO,KAAK,2BAA2B,MAAM,4CAA4C,CAAC;AAC1F,OAAO,KAAK,mCAAmC,MAAM,oDAAoD,CAAC;AAC1G,OAAO,KAAK,2BAA2B,MAAM,4CAA4C,CAAC;AAC1F,OAAO,KAAK,mCAAmC,MAAM,oDAAoD,CAAC;AAC1G,OAAO,KAAK,yBAAyB,MAAM,0CAA0C,CAAC;AACtF,OAAO,KAAK,sBAAsB,MAAM,uCAAuC,CAAC;AAChF,OAAO,KAAK,oBAAoB,MAAM,qCAAqC,CAAC;AAC5E,OAAO,KAAK,iBAAiB,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,SAAS,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,iBAAiB,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,gBAAgB,MAAM,iCAAiC,CAAC;AACpE,OAAO,KAAK,oBAAoB,MAAM,qCAAqC,CAAC;AAC5E,OAAO,KAAK,mBAAmB,MAAM,oCAAoC,CAAC;AAC1E,OAAO,KAAK,0BAA0B,MAAM,2CAA2C,CAAC","sourcesContent":["/*\n * THIS FILE WAS GENERATED BY \"@atproto/lex\". DO NOT EDIT.\n */\n\nexport * as defs from \"./unspecced/defs.js\";\nexport * as getAgeAssuranceState from \"./unspecced/getAgeAssuranceState.js\";\nexport * as getAtmosphereExploreArticleRecommendations from \"./unspecced/getAtmosphereExploreArticleRecommendations.js\";\nexport * as getAtmosphereExploreTab from \"./unspecced/getAtmosphereExploreTab.js\";\nexport * as getConfig from \"./unspecced/getConfig.js\";\nexport * as getOnboardingSuggestedStarterPacks from \"./unspecced/getOnboardingSuggestedStarterPacks.js\";\nexport * as getOnboardingSuggestedStarterPacksSkeleton from \"./unspecced/getOnboardingSuggestedStarterPacksSkeleton.js\";\nexport * as getOnboardingSuggestedUsersSkeleton from \"./unspecced/getOnboardingSuggestedUsersSkeleton.js\";\nexport * as getPopularFeedGenerators from \"./unspecced/getPopularFeedGenerators.js\";\nexport * as getPostThreadOtherV2 from \"./unspecced/getPostThreadOtherV2.js\";\nexport * as getPostThreadV2 from \"./unspecced/getPostThreadV2.js\";\nexport * as getSuggestedFeeds from \"./unspecced/getSuggestedFeeds.js\";\nexport * as getSuggestedFeedsSkeleton from \"./unspecced/getSuggestedFeedsSkeleton.js\";\nexport * as getSuggestedOnboardingUsers from \"./unspecced/getSuggestedOnboardingUsers.js\";\nexport * as getSuggestedStarterPacks from \"./unspecced/getSuggestedStarterPacks.js\";\nexport * as getSuggestedStarterPacksSkeleton from \"./unspecced/getSuggestedStarterPacksSkeleton.js\";\nexport * as getSuggestedUsers from \"./unspecced/getSuggestedUsers.js\";\nexport * as getSuggestedUsersForDiscover from \"./unspecced/getSuggestedUsersForDiscover.js\";\nexport * as getSuggestedUsersForDiscoverSkeleton from \"./unspecced/getSuggestedUsersForDiscoverSkeleton.js\";\nexport * as getSuggestedUsersForExplore from \"./unspecced/getSuggestedUsersForExplore.js\";\nexport * as getSuggestedUsersForExploreSkeleton from \"./unspecced/getSuggestedUsersForExploreSkeleton.js\";\nexport * as getSuggestedUsersForSeeMore from \"./unspecced/getSuggestedUsersForSeeMore.js\";\nexport * as getSuggestedUsersForSeeMoreSkeleton from \"./unspecced/getSuggestedUsersForSeeMoreSkeleton.js\";\nexport * as getSuggestedUsersSkeleton from \"./unspecced/getSuggestedUsersSkeleton.js\";\nexport * as getSuggestionsSkeleton from \"./unspecced/getSuggestionsSkeleton.js\";\nexport * as getTaggedSuggestions from \"./unspecced/getTaggedSuggestions.js\";\nexport * as getTrendingTopics from \"./unspecced/getTrendingTopics.js\";\nexport * as getTrends from \"./unspecced/getTrends.js\";\nexport * as getTrendsSkeleton from \"./unspecced/getTrendsSkeleton.js\";\nexport * as initAgeAssurance from \"./unspecced/initAgeAssurance.js\";\nexport * as searchActorsSkeleton from \"./unspecced/searchActorsSkeleton.js\";\nexport * as searchPostsSkeleton from \"./unspecced/searchPostsSkeleton.js\";\nexport * as searchStarterPacksSkeleton from \"./unspecced/searchStarterPacksSkeleton.js\";\n"]}
1
+ {"version":3,"file":"unspecced.js","sourceRoot":"","sources":["../../../../src/lexicons/app/bsky/unspecced.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,IAAI,MAAM,qBAAqB,CAAC;AAC5C,OAAO,KAAK,oBAAoB,MAAM,qCAAqC,CAAC;AAC5E,OAAO,KAAK,0CAA0C,MAAM,2DAA2D,CAAC;AACxH,OAAO,KAAK,uBAAuB,MAAM,wCAAwC,CAAC;AAClF,OAAO,KAAK,qBAAqB,MAAM,sCAAsC,CAAC;AAC9E,OAAO,KAAK,SAAS,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,kCAAkC,MAAM,mDAAmD,CAAC;AACxG,OAAO,KAAK,0CAA0C,MAAM,2DAA2D,CAAC;AACxH,OAAO,KAAK,mCAAmC,MAAM,oDAAoD,CAAC;AAC1G,OAAO,KAAK,wBAAwB,MAAM,yCAAyC,CAAC;AACpF,OAAO,KAAK,oBAAoB,MAAM,qCAAqC,CAAC;AAC5E,OAAO,KAAK,eAAe,MAAM,gCAAgC,CAAC;AAClE,OAAO,KAAK,iBAAiB,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,yBAAyB,MAAM,0CAA0C,CAAC;AACtF,OAAO,KAAK,2BAA2B,MAAM,4CAA4C,CAAC;AAC1F,OAAO,KAAK,wBAAwB,MAAM,yCAAyC,CAAC;AACpF,OAAO,KAAK,gCAAgC,MAAM,iDAAiD,CAAC;AACpG,OAAO,KAAK,iBAAiB,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,4BAA4B,MAAM,6CAA6C,CAAC;AAC5F,OAAO,KAAK,oCAAoC,MAAM,qDAAqD,CAAC;AAC5G,OAAO,KAAK,2BAA2B,MAAM,4CAA4C,CAAC;AAC1F,OAAO,KAAK,mCAAmC,MAAM,oDAAoD,CAAC;AAC1G,OAAO,KAAK,2BAA2B,MAAM,4CAA4C,CAAC;AAC1F,OAAO,KAAK,mCAAmC,MAAM,oDAAoD,CAAC;AAC1G,OAAO,KAAK,yBAAyB,MAAM,0CAA0C,CAAC;AACtF,OAAO,KAAK,sBAAsB,MAAM,uCAAuC,CAAC;AAChF,OAAO,KAAK,oBAAoB,MAAM,qCAAqC,CAAC;AAC5E,OAAO,KAAK,iBAAiB,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,SAAS,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,iBAAiB,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,gBAAgB,MAAM,iCAAiC,CAAC;AACpE,OAAO,KAAK,oBAAoB,MAAM,qCAAqC,CAAC;AAC5E,OAAO,KAAK,mBAAmB,MAAM,oCAAoC,CAAC;AAC1E,OAAO,KAAK,0BAA0B,MAAM,2CAA2C,CAAC","sourcesContent":["/*\n * THIS FILE WAS GENERATED BY \"@atproto/lex\". DO NOT EDIT.\n */\n\nexport * as defs from \"./unspecced/defs.js\";\nexport * as getAgeAssuranceState from \"./unspecced/getAgeAssuranceState.js\";\nexport * as getAtmosphereExploreArticleRecommendations from \"./unspecced/getAtmosphereExploreArticleRecommendations.js\";\nexport * as getAtmosphereExploreTab from \"./unspecced/getAtmosphereExploreTab.js\";\nexport * as getAtmosphereTimeline from \"./unspecced/getAtmosphereTimeline.js\";\nexport * as getConfig from \"./unspecced/getConfig.js\";\nexport * as getOnboardingSuggestedStarterPacks from \"./unspecced/getOnboardingSuggestedStarterPacks.js\";\nexport * as getOnboardingSuggestedStarterPacksSkeleton from \"./unspecced/getOnboardingSuggestedStarterPacksSkeleton.js\";\nexport * as getOnboardingSuggestedUsersSkeleton from \"./unspecced/getOnboardingSuggestedUsersSkeleton.js\";\nexport * as getPopularFeedGenerators from \"./unspecced/getPopularFeedGenerators.js\";\nexport * as getPostThreadOtherV2 from \"./unspecced/getPostThreadOtherV2.js\";\nexport * as getPostThreadV2 from \"./unspecced/getPostThreadV2.js\";\nexport * as getSuggestedFeeds from \"./unspecced/getSuggestedFeeds.js\";\nexport * as getSuggestedFeedsSkeleton from \"./unspecced/getSuggestedFeedsSkeleton.js\";\nexport * as getSuggestedOnboardingUsers from \"./unspecced/getSuggestedOnboardingUsers.js\";\nexport * as getSuggestedStarterPacks from \"./unspecced/getSuggestedStarterPacks.js\";\nexport * as getSuggestedStarterPacksSkeleton from \"./unspecced/getSuggestedStarterPacksSkeleton.js\";\nexport * as getSuggestedUsers from \"./unspecced/getSuggestedUsers.js\";\nexport * as getSuggestedUsersForDiscover from \"./unspecced/getSuggestedUsersForDiscover.js\";\nexport * as getSuggestedUsersForDiscoverSkeleton from \"./unspecced/getSuggestedUsersForDiscoverSkeleton.js\";\nexport * as getSuggestedUsersForExplore from \"./unspecced/getSuggestedUsersForExplore.js\";\nexport * as getSuggestedUsersForExploreSkeleton from \"./unspecced/getSuggestedUsersForExploreSkeleton.js\";\nexport * as getSuggestedUsersForSeeMore from \"./unspecced/getSuggestedUsersForSeeMore.js\";\nexport * as getSuggestedUsersForSeeMoreSkeleton from \"./unspecced/getSuggestedUsersForSeeMoreSkeleton.js\";\nexport * as getSuggestedUsersSkeleton from \"./unspecced/getSuggestedUsersSkeleton.js\";\nexport * as getSuggestionsSkeleton from \"./unspecced/getSuggestionsSkeleton.js\";\nexport * as getTaggedSuggestions from \"./unspecced/getTaggedSuggestions.js\";\nexport * as getTrendingTopics from \"./unspecced/getTrendingTopics.js\";\nexport * as getTrends from \"./unspecced/getTrends.js\";\nexport * as getTrendsSkeleton from \"./unspecced/getTrendsSkeleton.js\";\nexport * as initAgeAssurance from \"./unspecced/initAgeAssurance.js\";\nexport * as searchActorsSkeleton from \"./unspecced/searchActorsSkeleton.js\";\nexport * as searchPostsSkeleton from \"./unspecced/searchPostsSkeleton.js\";\nexport * as searchStarterPacksSkeleton from \"./unspecced/searchStarterPacksSkeleton.js\";\n"]}
@@ -51,11 +51,11 @@ type ReportAction = {
51
51
  */
52
52
  "ids"?: (number)[];
53
53
  /**
54
- * Target reports matching these report types on the subject (fully qualified NSIDs)
54
+ * Target reports matching these report types on the subject (fully qualified NSIDs). Excludes assigned and escalated reports.
55
55
  */
56
56
  "types"?: (string)[];
57
57
  /**
58
- * Target ALL reports on the subject
58
+ * Target ALL reports on the subject. Excludes assigned and escalated reports.
59
59
  */
60
60
  "all"?: boolean;
61
61
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"emitEvent.defs.js","sourceRoot":"","sources":["../../../../../src/lexicons/tools/ozone/moderation/emitEvent.defs.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * THIS FILE WAS GENERATED BY \"@atproto/lex\". DO NOT EDIT.\n */\n\nimport { l } from \"@atproto/lex\";\nimport * as ModerationDefs from \"./defs.defs.js\";\nimport * as AdminDefs from \"../../../com/atproto/admin/defs.defs.js\";\nimport * as RepoStrongRef from \"../../../com/atproto/repo/strongRef.defs.js\";\n\nconst $nsid = \"tools.ozone.moderation.emitEvent\";\n\ntype $nsid = typeof $nsid;\n\nexport { $nsid };\n\nexport const $params = /*#__PURE__*/ l.params();\n\nexport type $Params = l.InferOutput<typeof $params>;\n\nexport const $input = /*#__PURE__*/ l.jsonPayload({\"event\":/*#__PURE__*/ l.typedUnion([/*#__PURE__*/ l.typedRef<ModerationDefs.ModEventTakedown>((() => ModerationDefs.modEventTakedown) as any),/*#__PURE__*/ l.typedRef<ModerationDefs.ModEventAcknowledge>((() => ModerationDefs.modEventAcknowledge) as any),/*#__PURE__*/ l.typedRef<ModerationDefs.ModEventEscalate>((() => ModerationDefs.modEventEscalate) as any),/*#__PURE__*/ l.typedRef<ModerationDefs.ModEventComment>((() => ModerationDefs.modEventComment) as any),/*#__PURE__*/ l.typedRef<ModerationDefs.ModEventLabel>((() => ModerationDefs.modEventLabel) as any),/*#__PURE__*/ l.typedRef<ModerationDefs.ModEventReport>((() => ModerationDefs.modEventReport) as any),/*#__PURE__*/ l.typedRef<ModerationDefs.ModEventMute>((() => ModerationDefs.modEventMute) as any),/*#__PURE__*/ l.typedRef<ModerationDefs.ModEventUnmute>((() => ModerationDefs.modEventUnmute) as any),/*#__PURE__*/ l.typedRef<ModerationDefs.ModEventMuteReporter>((() => ModerationDefs.modEventMuteReporter) as any),/*#__PURE__*/ l.typedRef<ModerationDefs.ModEventUnmuteReporter>((() => ModerationDefs.modEventUnmuteReporter) as any),/*#__PURE__*/ l.typedRef<ModerationDefs.ModEventReverseTakedown>((() => ModerationDefs.modEventReverseTakedown) as any),/*#__PURE__*/ l.typedRef<ModerationDefs.ModEventResolveAppeal>((() => ModerationDefs.modEventResolveAppeal) as any),/*#__PURE__*/ l.typedRef<ModerationDefs.ModEventEmail>((() => ModerationDefs.modEventEmail) as any),/*#__PURE__*/ l.typedRef<ModerationDefs.ModEventDivert>((() => ModerationDefs.modEventDivert) as any),/*#__PURE__*/ l.typedRef<ModerationDefs.ModEventTag>((() => ModerationDefs.modEventTag) as any),/*#__PURE__*/ l.typedRef<ModerationDefs.AccountEvent>((() => ModerationDefs.accountEvent) as any),/*#__PURE__*/ l.typedRef<ModerationDefs.IdentityEvent>((() => ModerationDefs.identityEvent) as any),/*#__PURE__*/ l.typedRef<ModerationDefs.RecordEvent>((() => ModerationDefs.recordEvent) as any),/*#__PURE__*/ l.typedRef<ModerationDefs.ModEventPriorityScore>((() => ModerationDefs.modEventPriorityScore) as any),/*#__PURE__*/ l.typedRef<ModerationDefs.AgeAssuranceEvent>((() => ModerationDefs.ageAssuranceEvent) as any),/*#__PURE__*/ l.typedRef<ModerationDefs.AgeAssuranceOverrideEvent>((() => ModerationDefs.ageAssuranceOverrideEvent) as any),/*#__PURE__*/ l.typedRef<ModerationDefs.AgeAssurancePurgeEvent>((() => ModerationDefs.ageAssurancePurgeEvent) as any),/*#__PURE__*/ l.typedRef<ModerationDefs.RevokeAccountCredentialsEvent>((() => ModerationDefs.revokeAccountCredentialsEvent) as any),/*#__PURE__*/ l.typedRef<ModerationDefs.ScheduleTakedownEvent>((() => ModerationDefs.scheduleTakedownEvent) as any),/*#__PURE__*/ l.typedRef<ModerationDefs.CancelScheduledTakedownEvent>((() => ModerationDefs.cancelScheduledTakedownEvent) as any)], false),\"subject\":/*#__PURE__*/ l.typedUnion([/*#__PURE__*/ l.typedRef<AdminDefs.RepoRef>((() => AdminDefs.repoRef) as any),/*#__PURE__*/ l.typedRef<RepoStrongRef.Main>((() => RepoStrongRef.main) as any)], false),\"subjectBlobCids\":/*#__PURE__*/ l.optional(/*#__PURE__*/ l.array(/*#__PURE__*/ l.string({\"format\":\"cid\"}), )),\"createdBy\":/*#__PURE__*/ l.string({\"format\":\"did\"}),\"modTool\":/*#__PURE__*/ l.optional(/*#__PURE__*/ l.ref<ModerationDefs.ModTool>((() => ModerationDefs.modTool) as any)),\"externalId\":/*#__PURE__*/ l.optional(/*#__PURE__*/ l.string()),\"reportAction\":/*#__PURE__*/ l.optional(/*#__PURE__*/ l.ref<ReportAction>((() => reportAction) as any))});\n\nexport type $Input<B = l.BinaryData> = l.InferPayload<typeof $input, B>;\nexport type $InputBody<B = l.BinaryData> = l.InferPayloadBody<typeof $input, B>;\n\nexport const $output = /*#__PURE__*/ l.payload(\"application/json\", /*#__PURE__*/ l.ref<ModerationDefs.ModEventView>((() => ModerationDefs.modEventView) as any));\n\nexport type $Output<B = l.BinaryData> = l.InferPayload<typeof $output, B>;\nexport type $OutputBody<B = l.BinaryData> = l.InferPayloadBody<typeof $output, B>;\n\n/** Take a moderation action on an actor. */\nconst main = /*#__PURE__*/ l.procedure($nsid, $params, $input, $output, [\"SubjectHasAction\",\"DuplicateExternalId\"]);\n\nexport { main };\n\nconst $lxm = $nsid;\n\ntype $lxm = typeof $lxm;\n\nexport { $lxm };\n\n/** Target specific reports when emitting a moderation event */\ntype ReportAction = { $type?: \"tools.ozone.moderation.emitEvent#reportAction\";\n\n /**\n * Target specific report IDs\n */\n \"ids\"?:(number)[];\n\n /**\n * Target reports matching these report types on the subject (fully qualified NSIDs)\n */\n \"types\"?:(string)[];\n\n /**\n * Target ALL reports on the subject\n */\n \"all\"?:boolean;\n\n /**\n * Note to send to reporter(s) when actioning their report\n */\n \"note\"?:string;\n\n /**\n * Set true when the report activities are created by an automated process.\n */\n \"isAutomated\"?:boolean };\n\nexport type { ReportAction };\n\n/** Target specific reports when emitting a moderation event */\nconst reportAction = /*#__PURE__*/ l.typedObject<ReportAction>($nsid, \"reportAction\", /*#__PURE__*/ l.object({\"ids\":/*#__PURE__*/ l.optional(/*#__PURE__*/ l.array(/*#__PURE__*/ l.integer(), )),\"types\":/*#__PURE__*/ l.optional(/*#__PURE__*/ l.array(/*#__PURE__*/ l.string(), )),\"all\":/*#__PURE__*/ l.optional(/*#__PURE__*/ l.boolean()),\"note\":/*#__PURE__*/ l.optional(/*#__PURE__*/ l.string()),\"isAutomated\":/*#__PURE__*/ l.optional(/*#__PURE__*/ l.boolean())}));\n\nexport { reportAction };\n"]}
1
+ {"version":3,"file":"emitEvent.defs.js","sourceRoot":"","sources":["../../../../../src/lexicons/tools/ozone/moderation/emitEvent.defs.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * THIS FILE WAS GENERATED BY \"@atproto/lex\". DO NOT EDIT.\n */\n\nimport { l } from \"@atproto/lex\";\nimport * as ModerationDefs from \"./defs.defs.js\";\nimport * as AdminDefs from \"../../../com/atproto/admin/defs.defs.js\";\nimport * as RepoStrongRef from \"../../../com/atproto/repo/strongRef.defs.js\";\n\nconst $nsid = \"tools.ozone.moderation.emitEvent\";\n\ntype $nsid = typeof $nsid;\n\nexport { $nsid };\n\nexport const $params = /*#__PURE__*/ l.params();\n\nexport type $Params = l.InferOutput<typeof $params>;\n\nexport const $input = /*#__PURE__*/ l.jsonPayload({\"event\":/*#__PURE__*/ l.typedUnion([/*#__PURE__*/ l.typedRef<ModerationDefs.ModEventTakedown>((() => ModerationDefs.modEventTakedown) as any),/*#__PURE__*/ l.typedRef<ModerationDefs.ModEventAcknowledge>((() => ModerationDefs.modEventAcknowledge) as any),/*#__PURE__*/ l.typedRef<ModerationDefs.ModEventEscalate>((() => ModerationDefs.modEventEscalate) as any),/*#__PURE__*/ l.typedRef<ModerationDefs.ModEventComment>((() => ModerationDefs.modEventComment) as any),/*#__PURE__*/ l.typedRef<ModerationDefs.ModEventLabel>((() => ModerationDefs.modEventLabel) as any),/*#__PURE__*/ l.typedRef<ModerationDefs.ModEventReport>((() => ModerationDefs.modEventReport) as any),/*#__PURE__*/ l.typedRef<ModerationDefs.ModEventMute>((() => ModerationDefs.modEventMute) as any),/*#__PURE__*/ l.typedRef<ModerationDefs.ModEventUnmute>((() => ModerationDefs.modEventUnmute) as any),/*#__PURE__*/ l.typedRef<ModerationDefs.ModEventMuteReporter>((() => ModerationDefs.modEventMuteReporter) as any),/*#__PURE__*/ l.typedRef<ModerationDefs.ModEventUnmuteReporter>((() => ModerationDefs.modEventUnmuteReporter) as any),/*#__PURE__*/ l.typedRef<ModerationDefs.ModEventReverseTakedown>((() => ModerationDefs.modEventReverseTakedown) as any),/*#__PURE__*/ l.typedRef<ModerationDefs.ModEventResolveAppeal>((() => ModerationDefs.modEventResolveAppeal) as any),/*#__PURE__*/ l.typedRef<ModerationDefs.ModEventEmail>((() => ModerationDefs.modEventEmail) as any),/*#__PURE__*/ l.typedRef<ModerationDefs.ModEventDivert>((() => ModerationDefs.modEventDivert) as any),/*#__PURE__*/ l.typedRef<ModerationDefs.ModEventTag>((() => ModerationDefs.modEventTag) as any),/*#__PURE__*/ l.typedRef<ModerationDefs.AccountEvent>((() => ModerationDefs.accountEvent) as any),/*#__PURE__*/ l.typedRef<ModerationDefs.IdentityEvent>((() => ModerationDefs.identityEvent) as any),/*#__PURE__*/ l.typedRef<ModerationDefs.RecordEvent>((() => ModerationDefs.recordEvent) as any),/*#__PURE__*/ l.typedRef<ModerationDefs.ModEventPriorityScore>((() => ModerationDefs.modEventPriorityScore) as any),/*#__PURE__*/ l.typedRef<ModerationDefs.AgeAssuranceEvent>((() => ModerationDefs.ageAssuranceEvent) as any),/*#__PURE__*/ l.typedRef<ModerationDefs.AgeAssuranceOverrideEvent>((() => ModerationDefs.ageAssuranceOverrideEvent) as any),/*#__PURE__*/ l.typedRef<ModerationDefs.AgeAssurancePurgeEvent>((() => ModerationDefs.ageAssurancePurgeEvent) as any),/*#__PURE__*/ l.typedRef<ModerationDefs.RevokeAccountCredentialsEvent>((() => ModerationDefs.revokeAccountCredentialsEvent) as any),/*#__PURE__*/ l.typedRef<ModerationDefs.ScheduleTakedownEvent>((() => ModerationDefs.scheduleTakedownEvent) as any),/*#__PURE__*/ l.typedRef<ModerationDefs.CancelScheduledTakedownEvent>((() => ModerationDefs.cancelScheduledTakedownEvent) as any)], false),\"subject\":/*#__PURE__*/ l.typedUnion([/*#__PURE__*/ l.typedRef<AdminDefs.RepoRef>((() => AdminDefs.repoRef) as any),/*#__PURE__*/ l.typedRef<RepoStrongRef.Main>((() => RepoStrongRef.main) as any)], false),\"subjectBlobCids\":/*#__PURE__*/ l.optional(/*#__PURE__*/ l.array(/*#__PURE__*/ l.string({\"format\":\"cid\"}), )),\"createdBy\":/*#__PURE__*/ l.string({\"format\":\"did\"}),\"modTool\":/*#__PURE__*/ l.optional(/*#__PURE__*/ l.ref<ModerationDefs.ModTool>((() => ModerationDefs.modTool) as any)),\"externalId\":/*#__PURE__*/ l.optional(/*#__PURE__*/ l.string()),\"reportAction\":/*#__PURE__*/ l.optional(/*#__PURE__*/ l.ref<ReportAction>((() => reportAction) as any))});\n\nexport type $Input<B = l.BinaryData> = l.InferPayload<typeof $input, B>;\nexport type $InputBody<B = l.BinaryData> = l.InferPayloadBody<typeof $input, B>;\n\nexport const $output = /*#__PURE__*/ l.payload(\"application/json\", /*#__PURE__*/ l.ref<ModerationDefs.ModEventView>((() => ModerationDefs.modEventView) as any));\n\nexport type $Output<B = l.BinaryData> = l.InferPayload<typeof $output, B>;\nexport type $OutputBody<B = l.BinaryData> = l.InferPayloadBody<typeof $output, B>;\n\n/** Take a moderation action on an actor. */\nconst main = /*#__PURE__*/ l.procedure($nsid, $params, $input, $output, [\"SubjectHasAction\",\"DuplicateExternalId\"]);\n\nexport { main };\n\nconst $lxm = $nsid;\n\ntype $lxm = typeof $lxm;\n\nexport { $lxm };\n\n/** Target specific reports when emitting a moderation event */\ntype ReportAction = { $type?: \"tools.ozone.moderation.emitEvent#reportAction\";\n\n /**\n * Target specific report IDs\n */\n \"ids\"?:(number)[];\n\n /**\n * Target reports matching these report types on the subject (fully qualified NSIDs). Excludes assigned and escalated reports.\n */\n \"types\"?:(string)[];\n\n /**\n * Target ALL reports on the subject. Excludes assigned and escalated reports.\n */\n \"all\"?:boolean;\n\n /**\n * Note to send to reporter(s) when actioning their report\n */\n \"note\"?:string;\n\n /**\n * Set true when the report activities are created by an automated process.\n */\n \"isAutomated\"?:boolean };\n\nexport type { ReportAction };\n\n/** Target specific reports when emitting a moderation event */\nconst reportAction = /*#__PURE__*/ l.typedObject<ReportAction>($nsid, \"reportAction\", /*#__PURE__*/ l.object({\"ids\":/*#__PURE__*/ l.optional(/*#__PURE__*/ l.array(/*#__PURE__*/ l.integer(), )),\"types\":/*#__PURE__*/ l.optional(/*#__PURE__*/ l.array(/*#__PURE__*/ l.string(), )),\"all\":/*#__PURE__*/ l.optional(/*#__PURE__*/ l.boolean()),\"note\":/*#__PURE__*/ l.optional(/*#__PURE__*/ l.string()),\"isAutomated\":/*#__PURE__*/ l.optional(/*#__PURE__*/ l.boolean())}));\n\nexport { reportAction };\n"]}
@@ -23,7 +23,7 @@ export declare const $output: l.Payload<"application/json", l.ObjectSchema<{
23
23
  }>>;
24
24
  export type $Output<B = l.BinaryData> = l.InferPayload<typeof $output, B>;
25
25
  export type $OutputBody<B = l.BinaryData> = l.InferPayloadBody<typeof $output, B>;
26
- /** Close all reports on a subject matching the given criteria. Reports whose current status does not permit a transition to closed are skipped silently. Intended for automated flows that resolve reports without taking action on the subject. */
26
+ /** Close eligible reports on a subject matching the given criteria. Assigned and escalated reports are excluded. Reports whose current status does not permit a transition to closed are skipped silently. Intended for automated flows that resolve reports without taking action on the subject. */
27
27
  declare const main: l.Procedure<"tools.ozone.report.closeReports", l.ParamsSchema<{}>, l.Payload<"application/json", l.ObjectSchema<{
28
28
  subject: l.StringSchema<{
29
29
  readonly format: "uri";
@@ -1 +1 @@
1
- {"version":3,"file":"closeReports.defs.d.ts","sourceRoot":"","sources":["../../../../../src/lexicons/tools/ozone/report/closeReports.defs.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AAEjC,QAAA,MAAM,KAAK,oCAAoC,CAAC;AAEhD,KAAK,KAAK,GAAG,OAAO,KAAK,CAAC;AAE1B,OAAO,EAAE,KAAK,EAAE,CAAC;AAEjB,eAAO,MAAM,OAAO,oBAA2B,CAAC;AAEhD,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,OAAO,CAAC,CAAC;AAEpD,eAAO,MAAM,MAAM;;;;;;;;;;GAA4lB,CAAC;AAEhnB,MAAM,MAAM,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,YAAY,CAAC,OAAO,MAAM,EAAE,CAAC,CAAC,CAAC;AACxE,MAAM,MAAM,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,gBAAgB,CAAC,OAAO,MAAM,EAAE,CAAC,CAAC,CAAC;AAEhF,eAAO,MAAM,OAAO;;;GAAwI,CAAC;AAE7J,MAAM,MAAM,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,YAAY,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC,CAAC;AAC1E,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,gBAAgB,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC,CAAC;AAElF,oPAAoP;AACpP,QAAA,MAAM,IAAI;;;;;;;;;;;;;eAA6D,CAAC;AAExE,OAAO,EAAE,IAAI,EAAE,CAAC;AAEhB,QAAA,MAAM,IAAI,oCAAQ,CAAC;AAEnB,KAAK,IAAI,GAAG,OAAO,IAAI,CAAC;AAExB,OAAO,EAAE,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"closeReports.defs.d.ts","sourceRoot":"","sources":["../../../../../src/lexicons/tools/ozone/report/closeReports.defs.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AAEjC,QAAA,MAAM,KAAK,oCAAoC,CAAC;AAEhD,KAAK,KAAK,GAAG,OAAO,KAAK,CAAC;AAE1B,OAAO,EAAE,KAAK,EAAE,CAAC;AAEjB,eAAO,MAAM,OAAO,oBAA2B,CAAC;AAEhD,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,OAAO,CAAC,CAAC;AAEpD,eAAO,MAAM,MAAM;;;;;;;;;;GAA4lB,CAAC;AAEhnB,MAAM,MAAM,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,YAAY,CAAC,OAAO,MAAM,EAAE,CAAC,CAAC,CAAC;AACxE,MAAM,MAAM,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,gBAAgB,CAAC,OAAO,MAAM,EAAE,CAAC,CAAC,CAAC;AAEhF,eAAO,MAAM,OAAO;;;GAAwI,CAAC;AAE7J,MAAM,MAAM,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,YAAY,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC,CAAC;AAC1E,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,gBAAgB,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC,CAAC;AAElF,sSAAsS;AACtS,QAAA,MAAM,IAAI;;;;;;;;;;;;;eAA6D,CAAC;AAExE,OAAO,EAAE,IAAI,EAAE,CAAC;AAEhB,QAAA,MAAM,IAAI,oCAAQ,CAAC;AAEnB,KAAK,IAAI,GAAG,OAAO,IAAI,CAAC;AAExB,OAAO,EAAE,IAAI,EAAE,CAAC"}
@@ -7,7 +7,7 @@ export { $nsid };
7
7
  export const $params = /*#__PURE__*/ l.params();
8
8
  export const $input = /*#__PURE__*/ l.jsonPayload({ "subject": /*#__PURE__*/ l.string({ "format": "uri" }), "includeAllOwned": /*#__PURE__*/ l.optional(/*#__PURE__*/ l.withDefault(/*#__PURE__*/ l.boolean(), false)), "reportTypes": /*#__PURE__*/ l.optional(/*#__PURE__*/ l.array(/*#__PURE__*/ l.string())), "excludedReportTypes": /*#__PURE__*/ l.optional(/*#__PURE__*/ l.array(/*#__PURE__*/ l.string())), "internalNote": /*#__PURE__*/ l.optional(/*#__PURE__*/ l.string()), "isAutomated": /*#__PURE__*/ l.optional(/*#__PURE__*/ l.withDefault(/*#__PURE__*/ l.boolean(), false)), "meta": /*#__PURE__*/ l.optional(/*#__PURE__*/ l.lexMap()) });
9
9
  export const $output = /*#__PURE__*/ l.jsonPayload({ "closedCount": /*#__PURE__*/ l.integer(), "reportIds": /*#__PURE__*/ l.array(/*#__PURE__*/ l.integer()) });
10
- /** Close all reports on a subject matching the given criteria. Reports whose current status does not permit a transition to closed are skipped silently. Intended for automated flows that resolve reports without taking action on the subject. */
10
+ /** Close eligible reports on a subject matching the given criteria. Assigned and escalated reports are excluded. Reports whose current status does not permit a transition to closed are skipped silently. Intended for automated flows that resolve reports without taking action on the subject. */
11
11
  const main = /*#__PURE__*/ l.procedure($nsid, $params, $input, $output);
12
12
  export { main };
13
13
  const $lxm = $nsid;
@@ -1 +1 @@
1
- {"version":3,"file":"closeReports.defs.js","sourceRoot":"","sources":["../../../../../src/lexicons/tools/ozone/report/closeReports.defs.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AAEjC,MAAM,KAAK,GAAG,iCAAiC,CAAC;AAIhD,OAAO,EAAE,KAAK,EAAE,CAAC;AAEjB,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;AAIhD,MAAM,CAAC,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,EAAC,SAAS,EAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,EAAC,QAAQ,EAAC,KAAK,EAAC,CAAC,EAAC,iBAAiB,EAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC,EAAC,aAAa,EAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,EAAE,CAAG,CAAC,EAAC,qBAAqB,EAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,EAAE,CAAG,CAAC,EAAC,cAAc,EAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAC,aAAa,EAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC,EAAC,MAAM,EAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAC,CAAC,CAAC;AAKhnB,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,EAAC,aAAa,EAAC,aAAa,CAAC,CAAC,CAAC,OAAO,EAAE,EAAC,WAAW,EAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,EAAE,CAAG,EAAC,CAAC,CAAC;AAK7J,oPAAoP;AACpP,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAExE,OAAO,EAAE,IAAI,EAAE,CAAC;AAEhB,MAAM,IAAI,GAAG,KAAK,CAAC;AAInB,OAAO,EAAE,IAAI,EAAE,CAAC","sourcesContent":["/*\n * THIS FILE WAS GENERATED BY \"@atproto/lex\". DO NOT EDIT.\n */\n\nimport { l } from \"@atproto/lex\";\n\nconst $nsid = \"tools.ozone.report.closeReports\";\n\ntype $nsid = typeof $nsid;\n\nexport { $nsid };\n\nexport const $params = /*#__PURE__*/ l.params();\n\nexport type $Params = l.InferOutput<typeof $params>;\n\nexport const $input = /*#__PURE__*/ l.jsonPayload({\"subject\":/*#__PURE__*/ l.string({\"format\":\"uri\"}),\"includeAllOwned\":/*#__PURE__*/ l.optional(/*#__PURE__*/ l.withDefault(/*#__PURE__*/ l.boolean(), false)),\"reportTypes\":/*#__PURE__*/ l.optional(/*#__PURE__*/ l.array(/*#__PURE__*/ l.string(), )),\"excludedReportTypes\":/*#__PURE__*/ l.optional(/*#__PURE__*/ l.array(/*#__PURE__*/ l.string(), )),\"internalNote\":/*#__PURE__*/ l.optional(/*#__PURE__*/ l.string()),\"isAutomated\":/*#__PURE__*/ l.optional(/*#__PURE__*/ l.withDefault(/*#__PURE__*/ l.boolean(), false)),\"meta\":/*#__PURE__*/ l.optional(/*#__PURE__*/ l.lexMap())});\n\nexport type $Input<B = l.BinaryData> = l.InferPayload<typeof $input, B>;\nexport type $InputBody<B = l.BinaryData> = l.InferPayloadBody<typeof $input, B>;\n\nexport const $output = /*#__PURE__*/ l.jsonPayload({\"closedCount\":/*#__PURE__*/ l.integer(),\"reportIds\":/*#__PURE__*/ l.array(/*#__PURE__*/ l.integer(), )});\n\nexport type $Output<B = l.BinaryData> = l.InferPayload<typeof $output, B>;\nexport type $OutputBody<B = l.BinaryData> = l.InferPayloadBody<typeof $output, B>;\n\n/** Close all reports on a subject matching the given criteria. Reports whose current status does not permit a transition to closed are skipped silently. Intended for automated flows that resolve reports without taking action on the subject. */\nconst main = /*#__PURE__*/ l.procedure($nsid, $params, $input, $output);\n\nexport { main };\n\nconst $lxm = $nsid;\n\ntype $lxm = typeof $lxm;\n\nexport { $lxm };\n"]}
1
+ {"version":3,"file":"closeReports.defs.js","sourceRoot":"","sources":["../../../../../src/lexicons/tools/ozone/report/closeReports.defs.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AAEjC,MAAM,KAAK,GAAG,iCAAiC,CAAC;AAIhD,OAAO,EAAE,KAAK,EAAE,CAAC;AAEjB,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;AAIhD,MAAM,CAAC,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,EAAC,SAAS,EAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,EAAC,QAAQ,EAAC,KAAK,EAAC,CAAC,EAAC,iBAAiB,EAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC,EAAC,aAAa,EAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,EAAE,CAAG,CAAC,EAAC,qBAAqB,EAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,EAAE,CAAG,CAAC,EAAC,cAAc,EAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAC,aAAa,EAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC,EAAC,MAAM,EAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAC,CAAC,CAAC;AAKhnB,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,EAAC,aAAa,EAAC,aAAa,CAAC,CAAC,CAAC,OAAO,EAAE,EAAC,WAAW,EAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,EAAE,CAAG,EAAC,CAAC,CAAC;AAK7J,sSAAsS;AACtS,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAExE,OAAO,EAAE,IAAI,EAAE,CAAC;AAEhB,MAAM,IAAI,GAAG,KAAK,CAAC;AAInB,OAAO,EAAE,IAAI,EAAE,CAAC","sourcesContent":["/*\n * THIS FILE WAS GENERATED BY \"@atproto/lex\". DO NOT EDIT.\n */\n\nimport { l } from \"@atproto/lex\";\n\nconst $nsid = \"tools.ozone.report.closeReports\";\n\ntype $nsid = typeof $nsid;\n\nexport { $nsid };\n\nexport const $params = /*#__PURE__*/ l.params();\n\nexport type $Params = l.InferOutput<typeof $params>;\n\nexport const $input = /*#__PURE__*/ l.jsonPayload({\"subject\":/*#__PURE__*/ l.string({\"format\":\"uri\"}),\"includeAllOwned\":/*#__PURE__*/ l.optional(/*#__PURE__*/ l.withDefault(/*#__PURE__*/ l.boolean(), false)),\"reportTypes\":/*#__PURE__*/ l.optional(/*#__PURE__*/ l.array(/*#__PURE__*/ l.string(), )),\"excludedReportTypes\":/*#__PURE__*/ l.optional(/*#__PURE__*/ l.array(/*#__PURE__*/ l.string(), )),\"internalNote\":/*#__PURE__*/ l.optional(/*#__PURE__*/ l.string()),\"isAutomated\":/*#__PURE__*/ l.optional(/*#__PURE__*/ l.withDefault(/*#__PURE__*/ l.boolean(), false)),\"meta\":/*#__PURE__*/ l.optional(/*#__PURE__*/ l.lexMap())});\n\nexport type $Input<B = l.BinaryData> = l.InferPayload<typeof $input, B>;\nexport type $InputBody<B = l.BinaryData> = l.InferPayloadBody<typeof $input, B>;\n\nexport const $output = /*#__PURE__*/ l.jsonPayload({\"closedCount\":/*#__PURE__*/ l.integer(),\"reportIds\":/*#__PURE__*/ l.array(/*#__PURE__*/ l.integer(), )});\n\nexport type $Output<B = l.BinaryData> = l.InferPayload<typeof $output, B>;\nexport type $OutputBody<B = l.BinaryData> = l.InferPayloadBody<typeof $output, B>;\n\n/** Close eligible reports on a subject matching the given criteria. Assigned and escalated reports are excluded. Reports whose current status does not permit a transition to closed are skipped silently. Intended for automated flows that resolve reports without taking action on the subject. */\nconst main = /*#__PURE__*/ l.procedure($nsid, $params, $input, $output);\n\nexport { main };\n\nconst $lxm = $nsid;\n\ntype $lxm = typeof $lxm;\n\nexport { $lxm };\n"]}
@@ -1,7 +1,8 @@
1
- import type { app } from '../lexicons/index.js';
1
+ import type { NsidString } from '@atproto/lex';
2
+ import type { NotificationsV2Algorithm } from '../config.js';
2
3
  export type HydrationSource = 'known_likers' | 'known_followers' | 'activity_subscriptions';
3
4
  /** XRPC method that owns a hydration; set on `HydrateCtx` from the method's `$lxm`. */
4
- export type HydrationXrpcEndpoint = app.bsky.embed.getEmbedExternalView.$lxm | app.bsky.unspecced.getAtmosphereExploreTab.$lxm;
5
+ export type HydrationXrpcEndpoint = NsidString;
5
6
  /** Reported XRPC endpoint of an external hydration traversal. */
6
7
  export type ExternalHydrationXrpcEndpoint = HydrationXrpcEndpoint | 'unknown';
7
8
  /** Entry point that owns an external hydration traversal. */
@@ -19,8 +20,8 @@ type ExternalHydrationAttributes = {
19
20
  };
20
21
  /**
21
22
  * Generic record lookup work of one external hydration traversal, across the
22
- * root and all nested dependency batches. Excludes profile/label hydration,
23
- * backlink sample/count RPCs, and legacy Standard Site reads.
23
+ * root and all nested dependency batches. Excludes profile/label hydration
24
+ * and backlink sample/count RPCs.
24
25
  */
25
26
  export type ExternalHydrationWork = {
26
27
  /**
@@ -84,10 +85,17 @@ declare class EventReporter {
84
85
  externalHydrationTraversal({ xrpcEndpoint, root, outcome, durationMs, recordLookups, batches, maxPass, roots, rootsResolved, dependencies, dependenciesResolved, }: ExternalHydrationWork & ExternalHydrationAttributes & {
85
86
  durationMs: number;
86
87
  }): void;
87
- /** Reports fetched and returned raw-item counts once per completed page. */
88
- groupedNotifications({ itemsFetched, itemsReturned, }: {
88
+ /** Reports compute time once per grouping invocation, excluding dataplane reads. */
89
+ notificationGrouping({ algorithm, durationMs, }: {
90
+ algorithm: NotificationsV2Algorithm;
91
+ durationMs: number;
92
+ }): void;
93
+ /** Reports dataplane fetches, raw-item counts, and hydration time once per completed page. */
94
+ groupedNotifications({ itemsFetched, itemsReturned, dataplaneFetches, hydrationDurationMs, }: {
89
95
  itemsFetched: number;
90
96
  itemsReturned: number;
97
+ dataplaneFetches: number;
98
+ hydrationDurationMs: number;
91
99
  }): void;
92
100
  }
93
101
  export declare const events: EventReporter;
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/telemetry/events.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAO/C,MAAM,MAAM,eAAe,GACzB,cAAc,GAAG,iBAAiB,GAAG,wBAAwB,CAAA;AAE/D,uFAAuF;AACvF,MAAM,MAAM,qBAAqB,GAC7B,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,IAAI,GACxC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,IAAI,CAAA;AAEnD,iEAAiE;AACjE,MAAM,MAAM,6BAA6B,GAAG,qBAAqB,GAAG,SAAS,CAAA;AAE7E,6DAA6D;AAC7D,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,MAAM,GAAG,cAAc,CAAA;AACpE;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GAClC,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAA;AAE/C,oEAAoE;AACpE,KAAK,2BAA2B,GAAG;IACjC,YAAY,EAAE,6BAA6B,CAAA;IAC3C,IAAI,EAAE,qBAAqB,CAAA;IAC3B,OAAO,EAAE,wBAAwB,CAAA;CAClC,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC;;;;OAIG;IACH,aAAa,EAAE,MAAM,CAAA;IACrB,4EAA4E;IAC5E,OAAO,EAAE,MAAM,CAAA;IACf,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAA;IACf;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAA;IACb,2DAA2D;IAC3D,aAAa,EAAE,MAAM,CAAA;IACrB;;;;OAIG;IACH,YAAY,EAAE,MAAM,CAAA;IACpB,kEAAkE;IAClE,oBAAoB,EAAE,MAAM,CAAA;CAC7B,CAAA;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,cAAM,aAAa;;IA0HjB,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;QAAE,MAAM,EAAE,eAAe,CAAC;QAAC,GAAG,EAAE,OAAO,CAAA;KAAE,QAQzE;IAED;;;;;OAKG;IACH,0BAA0B,CAAC,EACzB,YAAY,EACZ,IAAI,EACJ,OAAO,EACP,UAAU,EACV,aAAa,EACb,OAAO,EACP,OAAO,EACP,KAAK,EACL,aAAa,EACb,YAAY,EACZ,oBAAoB,GACrB,EAAE,qBAAqB,GACtB,2BAA2B,GAAG;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,QA0CrD;IAED,4EAA4E;IAC5E,oBAAoB,CAAC,EACnB,YAAY,EACZ,aAAa,GACd,EAAE;QACD,YAAY,EAAE,MAAM,CAAA;QACpB,aAAa,EAAE,MAAM,CAAA;KACtB,QAQA;CACF;AAED,eAAO,MAAM,MAAM,EAAE,aAAmC,CAAA"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/telemetry/events.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAA;AAO5D,MAAM,MAAM,eAAe,GACzB,cAAc,GAAG,iBAAiB,GAAG,wBAAwB,CAAA;AAE/D,uFAAuF;AACvF,MAAM,MAAM,qBAAqB,GAAG,UAAU,CAAA;AAE9C,iEAAiE;AACjE,MAAM,MAAM,6BAA6B,GAAG,qBAAqB,GAAG,SAAS,CAAA;AAE7E,6DAA6D;AAC7D,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,MAAM,GAAG,cAAc,CAAA;AACpE;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GAClC,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAA;AAE/C,oEAAoE;AACpE,KAAK,2BAA2B,GAAG;IACjC,YAAY,EAAE,6BAA6B,CAAA;IAC3C,IAAI,EAAE,qBAAqB,CAAA;IAC3B,OAAO,EAAE,wBAAwB,CAAA;CAClC,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC;;;;OAIG;IACH,aAAa,EAAE,MAAM,CAAA;IACrB,4EAA4E;IAC5E,OAAO,EAAE,MAAM,CAAA;IACf,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAA;IACf;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAA;IACb,2DAA2D;IAC3D,aAAa,EAAE,MAAM,CAAA;IACrB;;;;OAIG;IACH,YAAY,EAAE,MAAM,CAAA;IACpB,kEAAkE;IAClE,oBAAoB,EAAE,MAAM,CAAA;CAC7B,CAAA;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,cAAM,aAAa;;IAiKjB,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;QAAE,MAAM,EAAE,eAAe,CAAC;QAAC,GAAG,EAAE,OAAO,CAAA;KAAE,QAQzE;IAED;;;;;OAKG;IACH,0BAA0B,CAAC,EACzB,YAAY,EACZ,IAAI,EACJ,OAAO,EACP,UAAU,EACV,aAAa,EACb,OAAO,EACP,OAAO,EACP,KAAK,EACL,aAAa,EACb,YAAY,EACZ,oBAAoB,GACrB,EAAE,qBAAqB,GACtB,2BAA2B,GAAG;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,QA0CrD;IAED,oFAAoF;IACpF,oBAAoB,CAAC,EACnB,SAAS,EACT,UAAU,GACX,EAAE;QACD,SAAS,EAAE,wBAAwB,CAAA;QACnC,UAAU,EAAE,MAAM,CAAA;KACnB,QAMA;IAED,8FAA8F;IAC9F,oBAAoB,CAAC,EACnB,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,mBAAmB,GACpB,EAAE;QACD,YAAY,EAAE,MAAM,CAAA;QACpB,aAAa,EAAE,MAAM,CAAA;QACrB,gBAAgB,EAAE,MAAM,CAAA;QACxB,mBAAmB,EAAE,MAAM,CAAA;KAC5B,QASA;CACF;AAED,eAAO,MAAM,MAAM,EAAE,aAAmC,CAAA"}
@@ -1,5 +1,4 @@
1
- import { ValueType, diag, metrics } from '@opentelemetry/api';
2
- import { SeverityNumber, logs } from '@opentelemetry/api-logs';
1
+ import { SeverityNumber, ValueType, diag, logs, metrics, } from '@opentelemetry/api';
3
2
  import { eventsLogger } from '../logger.js';
4
3
  import { isAbortError, isTimeoutError } from './util.js';
5
4
  const meter = metrics.getMeter('@atproto/bsky');
@@ -61,6 +60,32 @@ class EventReporter {
61
60
  unit: '{record}',
62
61
  valueType: ValueType.INT,
63
62
  });
63
+ #notificationGroupingDuration = meter.createHistogram('notifications.grouped.duration', {
64
+ description: 'Compute time of each notification grouping algorithm invocation',
65
+ unit: 'ms',
66
+ valueType: ValueType.DOUBLE,
67
+ advice: {
68
+ explicitBucketBoundaries: [0.1, 0.25, 0.5, 1, 2.5, 5, 10, 25, 50, 100],
69
+ },
70
+ });
71
+ #notificationHydrationDuration = meter.createHistogram('notifications.grouped.hydration.duration', {
72
+ description: 'Wall time of the grouped notifications hydration phase',
73
+ unit: 'ms',
74
+ valueType: ValueType.DOUBLE,
75
+ advice: {
76
+ explicitBucketBoundaries: [
77
+ 1, 2.5, 5, 10, 25, 50, 100, 250, 500, 1000, 2500, 5000,
78
+ ],
79
+ },
80
+ });
81
+ #groupedNotificationsDataplaneFetches = meter.createHistogram('notifications.grouped.dataplane_fetches', {
82
+ description: 'Dataplane notification fetches per grouped notifications response',
83
+ unit: '{fetch}',
84
+ valueType: ValueType.INT,
85
+ advice: {
86
+ explicitBucketBoundaries: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
87
+ },
88
+ });
64
89
  #groupedNotificationsItemsFetched = meter.createHistogram('notifications.grouped.items_fetched', {
65
90
  description: 'Raw notifications fetched across all dataplane reads per grouped notifications response',
66
91
  unit: '{notification}',
@@ -162,12 +187,22 @@ class EventReporter {
162
187
  diag.error('Failed to record external_hydration_traversal:', err);
163
188
  }
164
189
  }
165
- /** Reports fetched and returned raw-item counts once per completed page. */
166
- groupedNotifications({ itemsFetched, itemsReturned, }) {
167
- this.#log('grouped_notifications', { itemsFetched, itemsReturned });
190
+ /** Reports compute time once per grouping invocation, excluding dataplane reads. */
191
+ notificationGrouping({ algorithm, durationMs, }) {
192
+ try {
193
+ this.#notificationGroupingDuration.record(durationMs, { algorithm });
194
+ }
195
+ catch (err) {
196
+ diag.error('Failed to record notification_grouping:', err);
197
+ }
198
+ }
199
+ /** Reports dataplane fetches, raw-item counts, and hydration time once per completed page. */
200
+ groupedNotifications({ itemsFetched, itemsReturned, dataplaneFetches, hydrationDurationMs, }) {
168
201
  try {
169
202
  this.#groupedNotificationsItemsFetched.record(itemsFetched);
170
203
  this.#groupedNotificationsItemsReturned.record(itemsReturned);
204
+ this.#groupedNotificationsDataplaneFetches.record(dataplaneFetches);
205
+ this.#notificationHydrationDuration.record(hydrationDurationMs);
171
206
  }
172
207
  catch (err) {
173
208
  diag.error('Failed to record grouped_notifications:', err);
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/telemetry/events.ts"],"names":[],"mappings":"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","sourcesContent":["import { type Meter, ValueType, diag, metrics } from '@opentelemetry/api'\nimport { type Logger, SeverityNumber, logs } from '@opentelemetry/api-logs'\nimport type { app } from '../lexicons/index.js'\nimport { eventsLogger } from '../logger.js'\nimport { isAbortError, isTimeoutError } from './util.js'\n\nconst meter: Meter = metrics.getMeter('@atproto/bsky')\nconst logger: Logger = logs.getLogger('@atproto/bsky')\n\nexport type HydrationSource =\n 'known_likers' | 'known_followers' | 'activity_subscriptions'\n\n/** XRPC method that owns a hydration; set on `HydrateCtx` from the method's `$lxm`. */\nexport type HydrationXrpcEndpoint =\n | app.bsky.embed.getEmbedExternalView.$lxm\n | app.bsky.unspecced.getAtmosphereExploreTab.$lxm\n\n/** Reported XRPC endpoint of an external hydration traversal. */\nexport type ExternalHydrationXrpcEndpoint = HydrationXrpcEndpoint | 'unknown'\n\n/** Entry point that owns an external hydration traversal. */\nexport type ExternalHydrationRoot = 'uris' | 'refs' | 'dependencies'\n/**\n * `partial` is a returned traversal that recovered from a best-effort\n * dependency failure; `capped` takes precedence over it.\n */\nexport type ExternalHydrationOutcome =\n 'completed' | 'capped' | 'partial' | 'failed'\n\n/** Bounded metric attributes of an external hydration traversal. */\ntype ExternalHydrationAttributes = {\n xrpcEndpoint: ExternalHydrationXrpcEndpoint\n root: ExternalHydrationRoot\n outcome: ExternalHydrationOutcome\n}\n\n/**\n * Generic record lookup work of one external hydration traversal, across the\n * root and all nested dependency batches. Excludes profile/label hydration,\n * backlink sample/count RPCs, and legacy Standard Site reads.\n */\nexport type ExternalHydrationWork = {\n /**\n * Accepted latest/exact lookup identities scheduled for fetching, after\n * filtering duplicates and seen keys. Unavailable results and lookups in a\n * failed batch count; lookups skipped at the pass cap do not.\n */\n recordLookups: number\n /** Nonempty batches that scheduled generic fetches; not a raw RPC count. */\n batches: number\n /** Deepest fetched batch, where the root batch is pass 1; 0 if none. */\n maxPass: number\n /**\n * Refs inspected by the traversal's first dependency discovery. A traversal\n * whose root batch failed has none.\n */\n roots: number\n /** Roots available after takedown and owner moderation. */\n rootsResolved: number\n /**\n * Refs inspected by later dependency discoveries: records returned by\n * successful nested batches. Lookups lost to a failed batch or the pass cap\n * are excluded.\n */\n dependencies: number\n /** Dependencies available after takedown and owner moderation. */\n dependenciesResolved: number\n}\n\n/**\n * Central hub for reporting AppView events. Each method reports a\n * single event to every relevant sink in one call:\n *\n * 1. a pino logger → stdout/stderr (docker logs)\n * 2. an OTEL counter → aggregated metric (low-cardinality dimensions only)\n * 3. the OTEL Logs SDK → structured, trace-correlated log record (full detail)\n *\n * This keeps the three concerns in sync: there is exactly one call site per\n * event, and the counter / log / attribute definitions live together here\n * rather than being duplicated and drifting across handlers.\n *\n * @note High-cardinality attributes (e.g. `did`, `uri`) belong in the pino and\n * OTEL log records but must stay OUT of the counters, whose attributes must\n * remain low-cardinality to avoid a metric-series explosion.\n *\n * @note The OTEL counters and log records are no-ops unless the corresponding\n * OTEL exporter is configured, so calling these methods is always safe and\n * essentially free when telemetry is disabled.\n */\nclass EventReporter {\n #hydrationFailedCounter = meter.createCounter<{\n source: HydrationSource\n reason: 'abort' | 'timeout' | 'error'\n }>('hydration.failed', {\n description:\n 'Number of fail-open hydration steps that did not produce a result',\n valueType: ValueType.INT,\n })\n\n #externalHydrationLookups =\n meter.createHistogram<ExternalHydrationAttributes>(\n 'hydration.external.record_lookups',\n {\n description:\n 'Generic external record lookups scheduled per hydration traversal, including nested dependency batches',\n unit: '{lookup}',\n valueType: ValueType.INT,\n advice: {\n explicitBucketBoundaries: [\n 0, 1, 2, 5, 10, 25, 50, 100, 250, 500, 1000,\n ],\n },\n },\n )\n\n #externalHydrationBatches =\n meter.createHistogram<ExternalHydrationAttributes>(\n 'hydration.external.batches',\n {\n description:\n 'Generic external record fetch batches per hydration traversal, one per nested pass',\n unit: '{batch}',\n valueType: ValueType.INT,\n // @NOTE Traversals are capped at `MAX_EXTERNAL_HYDRATION_PASSES` (8).\n advice: { explicitBucketBoundaries: [0, 1, 2, 3, 4, 5, 6, 7, 8] },\n },\n )\n\n #externalHydrationDuration =\n meter.createHistogram<ExternalHydrationAttributes>(\n 'hydration.external.duration',\n {\n description:\n 'Wall time of an external hydration traversal, including nested dependency batches',\n unit: 'ms',\n valueType: ValueType.DOUBLE,\n advice: {\n explicitBucketBoundaries: [\n 5, 10, 25, 50, 100, 250, 500, 1000, 2500, 5000, 10000,\n ],\n },\n },\n )\n\n #externalHydrationRecords = meter.createCounter<{\n xrpcEndpoint: ExternalHydrationXrpcEndpoint\n kind: 'root' | 'dependency'\n status: 'resolved' | 'unresolved'\n }>('hydration.external.records', {\n description:\n 'Root and dependency records inspected by external hydration traversals, by availability after moderation',\n unit: '{record}',\n valueType: ValueType.INT,\n })\n\n #groupedNotificationsItemsFetched = meter.createHistogram(\n 'notifications.grouped.items_fetched',\n {\n description:\n 'Raw notifications fetched across all dataplane reads per grouped notifications response',\n unit: '{notification}',\n valueType: ValueType.INT,\n advice: {\n explicitBucketBoundaries: [\n 50, 100, 150, 200, 300, 400, 500, 1000, 1500, 2000, 3000,\n ],\n },\n },\n )\n\n #groupedNotificationsItemsReturned = meter.createHistogram(\n 'notifications.grouped.items_returned',\n {\n description:\n 'Raw notifications represented by the final groups per grouped notifications response',\n unit: '{notification}',\n valueType: ValueType.INT,\n advice: {\n explicitBucketBoundaries: [\n 50, 100, 150, 200, 300, 400, 500, 1000, 1500, 2000, 3000,\n ],\n },\n },\n )\n\n /**\n * Fans a single event out to both the pino logger (stdout/stderr) and the\n * OTEL Logs SDK (structured record).\n *\n * @note this method should never throw\n */\n #log(\n eventName: string,\n attributes: Record<string, string | number | boolean | undefined>,\n ) {\n try {\n // Emits an OTEL log for the event (goes to collector).\n logger.emit({\n eventName,\n severityNumber: SeverityNumber.INFO,\n attributes,\n })\n\n // Emits a Pino log for the event (goes to stdout).\n // NOTE: We'll probably migrate towards only using OTEL.\n eventsLogger.info({ eventName, ...attributes })\n } catch (err) {\n diag.error(`Failed to log event ${eventName}:`, err)\n }\n }\n\n hydrationFailed({ source, err }: { source: HydrationSource; err: unknown }) {\n const reason = isAbortError(err)\n ? 'abort'\n : isTimeoutError(err)\n ? 'timeout'\n : 'error'\n this.#log('hydration_failed', { source, reason })\n this.#hydrationFailedCounter.add(1, { source, reason })\n }\n\n /**\n * Reports the totals of one top-level external hydration traversal. Numeric\n * totals are observations and log fields, never metric attributes.\n *\n * @note this method should never throw\n */\n externalHydrationTraversal({\n xrpcEndpoint,\n root,\n outcome,\n durationMs,\n recordLookups,\n batches,\n maxPass,\n roots,\n rootsResolved,\n dependencies,\n dependenciesResolved,\n }: ExternalHydrationWork &\n ExternalHydrationAttributes & { durationMs: number }) {\n this.#log('external_hydration_traversal', {\n xrpcEndpoint,\n root,\n outcome,\n durationMs,\n recordLookups,\n batches,\n maxPass,\n roots,\n rootsResolved,\n dependencies,\n dependenciesResolved,\n })\n try {\n const attributes = { xrpcEndpoint, root, outcome }\n this.#externalHydrationLookups.record(recordLookups, attributes)\n this.#externalHydrationBatches.record(batches, attributes)\n this.#externalHydrationDuration.record(durationMs, attributes)\n this.#externalHydrationRecords.add(rootsResolved, {\n xrpcEndpoint,\n kind: 'root',\n status: 'resolved',\n })\n this.#externalHydrationRecords.add(roots - rootsResolved, {\n xrpcEndpoint,\n kind: 'root',\n status: 'unresolved',\n })\n this.#externalHydrationRecords.add(dependenciesResolved, {\n xrpcEndpoint,\n kind: 'dependency',\n status: 'resolved',\n })\n this.#externalHydrationRecords.add(dependencies - dependenciesResolved, {\n xrpcEndpoint,\n kind: 'dependency',\n status: 'unresolved',\n })\n } catch (err) {\n diag.error('Failed to record external_hydration_traversal:', err)\n }\n }\n\n /** Reports fetched and returned raw-item counts once per completed page. */\n groupedNotifications({\n itemsFetched,\n itemsReturned,\n }: {\n itemsFetched: number\n itemsReturned: number\n }) {\n this.#log('grouped_notifications', { itemsFetched, itemsReturned })\n try {\n this.#groupedNotificationsItemsFetched.record(itemsFetched)\n this.#groupedNotificationsItemsReturned.record(itemsReturned)\n } catch (err) {\n diag.error('Failed to record grouped_notifications:', err)\n }\n }\n}\n\nexport const events: EventReporter = new EventReporter()\n"]}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/telemetry/events.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n type Logger,\n type Meter,\n SeverityNumber,\n ValueType,\n diag,\n logs,\n metrics,\n} from '@opentelemetry/api'\nimport type { NsidString } from '@atproto/lex'\nimport type { NotificationsV2Algorithm } from '../config.js'\nimport { eventsLogger } from '../logger.js'\nimport { isAbortError, isTimeoutError } from './util.js'\n\nconst meter: Meter = metrics.getMeter('@atproto/bsky')\nconst logger: Logger = logs.getLogger('@atproto/bsky')\n\nexport type HydrationSource =\n 'known_likers' | 'known_followers' | 'activity_subscriptions'\n\n/** XRPC method that owns a hydration; set on `HydrateCtx` from the method's `$lxm`. */\nexport type HydrationXrpcEndpoint = NsidString\n\n/** Reported XRPC endpoint of an external hydration traversal. */\nexport type ExternalHydrationXrpcEndpoint = HydrationXrpcEndpoint | 'unknown'\n\n/** Entry point that owns an external hydration traversal. */\nexport type ExternalHydrationRoot = 'uris' | 'refs' | 'dependencies'\n/**\n * `partial` is a returned traversal that recovered from a best-effort\n * dependency failure; `capped` takes precedence over it.\n */\nexport type ExternalHydrationOutcome =\n 'completed' | 'capped' | 'partial' | 'failed'\n\n/** Bounded metric attributes of an external hydration traversal. */\ntype ExternalHydrationAttributes = {\n xrpcEndpoint: ExternalHydrationXrpcEndpoint\n root: ExternalHydrationRoot\n outcome: ExternalHydrationOutcome\n}\n\n/**\n * Generic record lookup work of one external hydration traversal, across the\n * root and all nested dependency batches. Excludes profile/label hydration\n * and backlink sample/count RPCs.\n */\nexport type ExternalHydrationWork = {\n /**\n * Accepted latest/exact lookup identities scheduled for fetching, after\n * filtering duplicates and seen keys. Unavailable results and lookups in a\n * failed batch count; lookups skipped at the pass cap do not.\n */\n recordLookups: number\n /** Nonempty batches that scheduled generic fetches; not a raw RPC count. */\n batches: number\n /** Deepest fetched batch, where the root batch is pass 1; 0 if none. */\n maxPass: number\n /**\n * Refs inspected by the traversal's first dependency discovery. A traversal\n * whose root batch failed has none.\n */\n roots: number\n /** Roots available after takedown and owner moderation. */\n rootsResolved: number\n /**\n * Refs inspected by later dependency discoveries: records returned by\n * successful nested batches. Lookups lost to a failed batch or the pass cap\n * are excluded.\n */\n dependencies: number\n /** Dependencies available after takedown and owner moderation. */\n dependenciesResolved: number\n}\n\n/**\n * Central hub for reporting AppView events. Each method reports a\n * single event to every relevant sink in one call:\n *\n * 1. a pino logger → stdout/stderr (docker logs)\n * 2. an OTEL counter → aggregated metric (low-cardinality dimensions only)\n * 3. the OTEL Logs SDK → structured, trace-correlated log record (full detail)\n *\n * This keeps the three concerns in sync: there is exactly one call site per\n * event, and the counter / log / attribute definitions live together here\n * rather than being duplicated and drifting across handlers.\n *\n * @note High-cardinality attributes (e.g. `did`, `uri`) belong in the pino and\n * OTEL log records but must stay OUT of the counters, whose attributes must\n * remain low-cardinality to avoid a metric-series explosion.\n *\n * @note The OTEL counters and log records are no-ops unless the corresponding\n * OTEL exporter is configured, so calling these methods is always safe and\n * essentially free when telemetry is disabled.\n */\nclass EventReporter {\n #hydrationFailedCounter = meter.createCounter<{\n source: HydrationSource\n reason: 'abort' | 'timeout' | 'error'\n }>('hydration.failed', {\n description:\n 'Number of fail-open hydration steps that did not produce a result',\n valueType: ValueType.INT,\n })\n\n #externalHydrationLookups =\n meter.createHistogram<ExternalHydrationAttributes>(\n 'hydration.external.record_lookups',\n {\n description:\n 'Generic external record lookups scheduled per hydration traversal, including nested dependency batches',\n unit: '{lookup}',\n valueType: ValueType.INT,\n advice: {\n explicitBucketBoundaries: [\n 0, 1, 2, 5, 10, 25, 50, 100, 250, 500, 1000,\n ],\n },\n },\n )\n\n #externalHydrationBatches =\n meter.createHistogram<ExternalHydrationAttributes>(\n 'hydration.external.batches',\n {\n description:\n 'Generic external record fetch batches per hydration traversal, one per nested pass',\n unit: '{batch}',\n valueType: ValueType.INT,\n // @NOTE Traversals are capped at `MAX_EXTERNAL_HYDRATION_PASSES` (8).\n advice: { explicitBucketBoundaries: [0, 1, 2, 3, 4, 5, 6, 7, 8] },\n },\n )\n\n #externalHydrationDuration =\n meter.createHistogram<ExternalHydrationAttributes>(\n 'hydration.external.duration',\n {\n description:\n 'Wall time of an external hydration traversal, including nested dependency batches',\n unit: 'ms',\n valueType: ValueType.DOUBLE,\n advice: {\n explicitBucketBoundaries: [\n 5, 10, 25, 50, 100, 250, 500, 1000, 2500, 5000, 10000,\n ],\n },\n },\n )\n\n #externalHydrationRecords = meter.createCounter<{\n xrpcEndpoint: ExternalHydrationXrpcEndpoint\n kind: 'root' | 'dependency'\n status: 'resolved' | 'unresolved'\n }>('hydration.external.records', {\n description:\n 'Root and dependency records inspected by external hydration traversals, by availability after moderation',\n unit: '{record}',\n valueType: ValueType.INT,\n })\n\n #notificationGroupingDuration = meter.createHistogram<{\n algorithm: NotificationsV2Algorithm\n }>('notifications.grouped.duration', {\n description:\n 'Compute time of each notification grouping algorithm invocation',\n unit: 'ms',\n valueType: ValueType.DOUBLE,\n advice: {\n explicitBucketBoundaries: [0.1, 0.25, 0.5, 1, 2.5, 5, 10, 25, 50, 100],\n },\n })\n\n #notificationHydrationDuration = meter.createHistogram(\n 'notifications.grouped.hydration.duration',\n {\n description: 'Wall time of the grouped notifications hydration phase',\n unit: 'ms',\n valueType: ValueType.DOUBLE,\n advice: {\n explicitBucketBoundaries: [\n 1, 2.5, 5, 10, 25, 50, 100, 250, 500, 1000, 2500, 5000,\n ],\n },\n },\n )\n\n #groupedNotificationsDataplaneFetches = meter.createHistogram(\n 'notifications.grouped.dataplane_fetches',\n {\n description:\n 'Dataplane notification fetches per grouped notifications response',\n unit: '{fetch}',\n valueType: ValueType.INT,\n advice: {\n explicitBucketBoundaries: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10],\n },\n },\n )\n\n #groupedNotificationsItemsFetched = meter.createHistogram(\n 'notifications.grouped.items_fetched',\n {\n description:\n 'Raw notifications fetched across all dataplane reads per grouped notifications response',\n unit: '{notification}',\n valueType: ValueType.INT,\n advice: {\n explicitBucketBoundaries: [\n 50, 100, 150, 200, 300, 400, 500, 1000, 1500, 2000, 3000,\n ],\n },\n },\n )\n\n #groupedNotificationsItemsReturned = meter.createHistogram(\n 'notifications.grouped.items_returned',\n {\n description:\n 'Raw notifications represented by the final groups per grouped notifications response',\n unit: '{notification}',\n valueType: ValueType.INT,\n advice: {\n explicitBucketBoundaries: [\n 50, 100, 150, 200, 300, 400, 500, 1000, 1500, 2000, 3000,\n ],\n },\n },\n )\n\n /**\n * Fans a single event out to both the pino logger (stdout/stderr) and the\n * OTEL Logs SDK (structured record).\n *\n * @note this method should never throw\n */\n #log(\n eventName: string,\n attributes: Record<string, string | number | boolean | undefined>,\n ) {\n try {\n // Emits an OTEL log for the event (goes to collector).\n logger.emit({\n eventName,\n severityNumber: SeverityNumber.INFO,\n attributes,\n })\n\n // Emits a Pino log for the event (goes to stdout).\n // NOTE: We'll probably migrate towards only using OTEL.\n eventsLogger.info({ eventName, ...attributes })\n } catch (err) {\n diag.error(`Failed to log event ${eventName}:`, err)\n }\n }\n\n hydrationFailed({ source, err }: { source: HydrationSource; err: unknown }) {\n const reason = isAbortError(err)\n ? 'abort'\n : isTimeoutError(err)\n ? 'timeout'\n : 'error'\n this.#log('hydration_failed', { source, reason })\n this.#hydrationFailedCounter.add(1, { source, reason })\n }\n\n /**\n * Reports the totals of one top-level external hydration traversal. Numeric\n * totals are observations and log fields, never metric attributes.\n *\n * @note this method should never throw\n */\n externalHydrationTraversal({\n xrpcEndpoint,\n root,\n outcome,\n durationMs,\n recordLookups,\n batches,\n maxPass,\n roots,\n rootsResolved,\n dependencies,\n dependenciesResolved,\n }: ExternalHydrationWork &\n ExternalHydrationAttributes & { durationMs: number }) {\n this.#log('external_hydration_traversal', {\n xrpcEndpoint,\n root,\n outcome,\n durationMs,\n recordLookups,\n batches,\n maxPass,\n roots,\n rootsResolved,\n dependencies,\n dependenciesResolved,\n })\n try {\n const attributes = { xrpcEndpoint, root, outcome }\n this.#externalHydrationLookups.record(recordLookups, attributes)\n this.#externalHydrationBatches.record(batches, attributes)\n this.#externalHydrationDuration.record(durationMs, attributes)\n this.#externalHydrationRecords.add(rootsResolved, {\n xrpcEndpoint,\n kind: 'root',\n status: 'resolved',\n })\n this.#externalHydrationRecords.add(roots - rootsResolved, {\n xrpcEndpoint,\n kind: 'root',\n status: 'unresolved',\n })\n this.#externalHydrationRecords.add(dependenciesResolved, {\n xrpcEndpoint,\n kind: 'dependency',\n status: 'resolved',\n })\n this.#externalHydrationRecords.add(dependencies - dependenciesResolved, {\n xrpcEndpoint,\n kind: 'dependency',\n status: 'unresolved',\n })\n } catch (err) {\n diag.error('Failed to record external_hydration_traversal:', err)\n }\n }\n\n /** Reports compute time once per grouping invocation, excluding dataplane reads. */\n notificationGrouping({\n algorithm,\n durationMs,\n }: {\n algorithm: NotificationsV2Algorithm\n durationMs: number\n }) {\n try {\n this.#notificationGroupingDuration.record(durationMs, { algorithm })\n } catch (err) {\n diag.error('Failed to record notification_grouping:', err)\n }\n }\n\n /** Reports dataplane fetches, raw-item counts, and hydration time once per completed page. */\n groupedNotifications({\n itemsFetched,\n itemsReturned,\n dataplaneFetches,\n hydrationDurationMs,\n }: {\n itemsFetched: number\n itemsReturned: number\n dataplaneFetches: number\n hydrationDurationMs: number\n }) {\n try {\n this.#groupedNotificationsItemsFetched.record(itemsFetched)\n this.#groupedNotificationsItemsReturned.record(itemsReturned)\n this.#groupedNotificationsDataplaneFetches.record(dataplaneFetches)\n this.#notificationHydrationDuration.record(hydrationDurationMs)\n } catch (err) {\n diag.error('Failed to record grouped_notifications:', err)\n }\n }\n}\n\nexport const events: EventReporter = new EventReporter()\n"]}
@@ -1,6 +1,5 @@
1
1
  import type { AtUriString } from '@atproto/lex';
2
2
  import type { AssociatedSiteStandardRecord, ExternalRecords, SiteStandardDocument, SiteStandardPublication } from '../../hydration/external.js';
3
- export declare const SITE_STANDARD_NSID_PREFIX = "site.standard.";
4
3
  /**
5
4
  * Confirm that the supplied SS records actually back `assumedUrl`. The
6
5
  * record-side URL is built by concatenating the publication URL (or the
@@ -16,8 +15,8 @@ export declare const SITE_STANDARD_NSID_PREFIX = "site.standard.";
16
15
  * side carries the slash.
17
16
  *
18
17
  * Structural validation of the doc/pub pair (matching `site` ↔ pub URI,
19
- * no orphan docs that claim a missing publication) happens upstream: in the
20
- * pinned `getSiteStandardRecordsFromHydrationMapsByRefs`
18
+ * no orphan docs that claim a missing publication) happens upstream: in
19
+ * `getSiteStandardRecordsFromRefs`'s pinned-root/dependency selection
21
20
  * (`hydration/external.ts`), or by `validateStandardSiteRecordsForUrl` over
22
21
  * `getStandardSiteRecordsForUri`'s selection (which alone leaves an orphan
23
22
  * document selected with an absent publication). By the time this
@@ -1 +1 @@
1
- {"version":3,"file":"standard-site.d.ts","sourceRoot":"","sources":["../../../src/util/external/standard-site.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAA4B,MAAM,cAAc,CAAA;AAEzE,OAAO,KAAK,EACV,4BAA4B,EAE5B,eAAe,EACf,oBAAoB,EACpB,uBAAuB,EACxB,MAAM,6BAA6B,CAAA;AAIpC,eAAO,MAAM,yBAAyB,mBAAmB,CAAA;AAgFzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,eAAO,MAAM,0BAA0B,aAEjC;IACE,GAAG,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;IACpB,IAAI,EAAE;QAAE,MAAM,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAA;CAClD,GACD,SAAS,eAEX;IAAE,GAAG,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,IAAI,EAAE;QAAE,MAAM,EAAE;YAAE,GAAG,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAA;CAAE,GAAG,SAAS,cAC7D,MAAM,KACjB,OA2BF,CAAA;AAED,MAAM,MAAM,2BAA2B,GAAG;IACxC,QAAQ,CAAC,EAAE,4BAA4B,CAAC,oBAAoB,CAAC,CAAA;IAC7D,WAAW,CAAC,EAAE,4BAA4B,CAAC,uBAAuB,CAAC,CAAA;CACpE,CAAA;AAWD;;;;;;;GAOG;AACH,eAAO,MAAM,4BAA4B,iBACzB,WAAW,WAChB,eAAe,GAAG,SAAS,KACnC,2BAiCF,CAAA;AAUD;;;;;;;GAOG;AACH,eAAO,MAAM,iCAAiC,aAClC,4BAA4B,CAAC,oBAAoB,CAAC,GAAG,SAAS,eAEtE,4BAA4B,CAAC,uBAAuB,CAAC,GAAG,SAAS,cACvD,MAAM,KACjB,OAWF,CAAA;AAID;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,SAC/B,MAAM,KACX,MAAM,GAAG,SAIX,CAAA"}
1
+ {"version":3,"file":"standard-site.d.ts","sourceRoot":"","sources":["../../../src/util/external/standard-site.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAA4B,MAAM,cAAc,CAAA;AAEzE,OAAO,KAAK,EACV,4BAA4B,EAE5B,eAAe,EACf,oBAAoB,EACpB,uBAAuB,EACxB,MAAM,6BAA6B,CAAA;AAkFpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,eAAO,MAAM,0BAA0B,aAEjC;IACE,GAAG,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;IACpB,IAAI,EAAE;QAAE,MAAM,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAA;CAClD,GACD,SAAS,eAEX;IAAE,GAAG,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,IAAI,EAAE;QAAE,MAAM,EAAE;YAAE,GAAG,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAA;CAAE,GAAG,SAAS,cAC7D,MAAM,KACjB,OA2BF,CAAA;AAED,MAAM,MAAM,2BAA2B,GAAG;IACxC,QAAQ,CAAC,EAAE,4BAA4B,CAAC,oBAAoB,CAAC,CAAA;IAC7D,WAAW,CAAC,EAAE,4BAA4B,CAAC,uBAAuB,CAAC,CAAA;CACpE,CAAA;AAWD;;;;;;;GAOG;AACH,eAAO,MAAM,4BAA4B,iBACzB,WAAW,WAChB,eAAe,GAAG,SAAS,KACnC,2BAiCF,CAAA;AAUD;;;;;;;GAOG;AACH,eAAO,MAAM,iCAAiC,aAClC,4BAA4B,CAAC,oBAAoB,CAAC,GAAG,SAAS,eAEtE,4BAA4B,CAAC,uBAAuB,CAAC,GAAG,SAAS,cACvD,MAAM,KACjB,OAWF,CAAA;AAID;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,SAC/B,MAAM,KACX,MAAM,GAAG,SAIX,CAAA"}
@@ -1,6 +1,5 @@
1
1
  import { parseAtUriString } from '@atproto/syntax';
2
2
  import { site } from '../../lexicons/index.js';
3
- export const SITE_STANDARD_NSID_PREFIX = 'site.standard.';
4
3
  /**
5
4
  * Parse `url` as HTTP(S) and reduce it to a canonical
6
5
  * `protocol://host/path` string for equality comparison: lowercases host,
@@ -90,8 +89,8 @@ const canonicalUrlMatchesAssumed = (canonicalRecordUrl, canonicalAssumedUrl) =>
90
89
  * side carries the slash.
91
90
  *
92
91
  * Structural validation of the doc/pub pair (matching `site` ↔ pub URI,
93
- * no orphan docs that claim a missing publication) happens upstream: in the
94
- * pinned `getSiteStandardRecordsFromHydrationMapsByRefs`
92
+ * no orphan docs that claim a missing publication) happens upstream: in
93
+ * `getSiteStandardRecordsFromRefs`'s pinned-root/dependency selection
95
94
  * (`hydration/external.ts`), or by `validateStandardSiteRecordsForUrl` over
96
95
  * `getStandardSiteRecordsForUri`'s selection (which alone leaves an orphan
97
96
  * document selected with an absent publication). By the time this