@atproto/bsky 0.0.253 → 0.0.255

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 (899) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/dist/api/age-assurance/index.d.ts +1 -1
  3. package/dist/api/age-assurance/index.d.ts.map +1 -1
  4. package/dist/api/age-assurance/index.js.map +1 -1
  5. package/dist/api/age-assurance/redirects/kws-age-verified.d.ts +2 -2
  6. package/dist/api/age-assurance/redirects/kws-age-verified.d.ts.map +1 -1
  7. package/dist/api/age-assurance/redirects/kws-age-verified.js.map +1 -1
  8. package/dist/api/age-assurance/stash.d.ts +2 -2
  9. package/dist/api/age-assurance/stash.d.ts.map +1 -1
  10. package/dist/api/age-assurance/stash.js.map +1 -1
  11. package/dist/api/age-assurance/types.d.ts +3 -3
  12. package/dist/api/age-assurance/types.d.ts.map +1 -1
  13. package/dist/api/age-assurance/types.js.map +1 -1
  14. package/dist/api/age-assurance/util.d.ts +2 -2
  15. package/dist/api/age-assurance/util.d.ts.map +1 -1
  16. package/dist/api/age-assurance/util.js.map +1 -1
  17. package/dist/api/age-assurance/webhooks/kws-age-verified.d.ts +2 -2
  18. package/dist/api/age-assurance/webhooks/kws-age-verified.d.ts.map +1 -1
  19. package/dist/api/age-assurance/webhooks/kws-age-verified.js.map +1 -1
  20. package/dist/api/app/bsky/actor/getProfile.d.ts +2 -2
  21. package/dist/api/app/bsky/actor/getProfile.d.ts.map +1 -1
  22. package/dist/api/app/bsky/actor/getProfile.js.map +1 -1
  23. package/dist/api/app/bsky/actor/getProfiles.d.ts +2 -2
  24. package/dist/api/app/bsky/actor/getProfiles.d.ts.map +1 -1
  25. package/dist/api/app/bsky/actor/getProfiles.js.map +1 -1
  26. package/dist/api/app/bsky/actor/getSuggestions.d.ts +2 -2
  27. package/dist/api/app/bsky/actor/getSuggestions.d.ts.map +1 -1
  28. package/dist/api/app/bsky/actor/getSuggestions.js.map +1 -1
  29. package/dist/api/app/bsky/actor/searchActors.d.ts +2 -2
  30. package/dist/api/app/bsky/actor/searchActors.d.ts.map +1 -1
  31. package/dist/api/app/bsky/actor/searchActors.js.map +1 -1
  32. package/dist/api/app/bsky/actor/searchActorsTypeahead.d.ts +2 -2
  33. package/dist/api/app/bsky/actor/searchActorsTypeahead.d.ts.map +1 -1
  34. package/dist/api/app/bsky/actor/searchActorsTypeahead.js.map +1 -1
  35. package/dist/api/app/bsky/ageassurance/begin.d.ts +2 -2
  36. package/dist/api/app/bsky/ageassurance/begin.d.ts.map +1 -1
  37. package/dist/api/app/bsky/ageassurance/begin.js.map +1 -1
  38. package/dist/api/app/bsky/ageassurance/getConfig.d.ts +2 -2
  39. package/dist/api/app/bsky/ageassurance/getConfig.d.ts.map +1 -1
  40. package/dist/api/app/bsky/ageassurance/getConfig.js.map +1 -1
  41. package/dist/api/app/bsky/ageassurance/getState.d.ts +2 -2
  42. package/dist/api/app/bsky/ageassurance/getState.d.ts.map +1 -1
  43. package/dist/api/app/bsky/ageassurance/getState.js.map +1 -1
  44. package/dist/api/app/bsky/bookmark/createBookmark.d.ts +2 -2
  45. package/dist/api/app/bsky/bookmark/createBookmark.d.ts.map +1 -1
  46. package/dist/api/app/bsky/bookmark/createBookmark.js.map +1 -1
  47. package/dist/api/app/bsky/bookmark/deleteBookmark.d.ts +2 -2
  48. package/dist/api/app/bsky/bookmark/deleteBookmark.d.ts.map +1 -1
  49. package/dist/api/app/bsky/bookmark/deleteBookmark.js.map +1 -1
  50. package/dist/api/app/bsky/bookmark/getBookmarks.d.ts +2 -2
  51. package/dist/api/app/bsky/bookmark/getBookmarks.d.ts.map +1 -1
  52. package/dist/api/app/bsky/bookmark/getBookmarks.js.map +1 -1
  53. package/dist/api/app/bsky/contact/dismissMatch.d.ts +2 -2
  54. package/dist/api/app/bsky/contact/dismissMatch.d.ts.map +1 -1
  55. package/dist/api/app/bsky/contact/dismissMatch.js.map +1 -1
  56. package/dist/api/app/bsky/contact/getMatches.d.ts +2 -2
  57. package/dist/api/app/bsky/contact/getMatches.d.ts.map +1 -1
  58. package/dist/api/app/bsky/contact/getMatches.js.map +1 -1
  59. package/dist/api/app/bsky/contact/getSyncStatus.d.ts +2 -2
  60. package/dist/api/app/bsky/contact/getSyncStatus.d.ts.map +1 -1
  61. package/dist/api/app/bsky/contact/getSyncStatus.js.map +1 -1
  62. package/dist/api/app/bsky/contact/importContacts.d.ts +2 -2
  63. package/dist/api/app/bsky/contact/importContacts.d.ts.map +1 -1
  64. package/dist/api/app/bsky/contact/importContacts.js.map +1 -1
  65. package/dist/api/app/bsky/contact/removeData.d.ts +2 -2
  66. package/dist/api/app/bsky/contact/removeData.d.ts.map +1 -1
  67. package/dist/api/app/bsky/contact/removeData.js.map +1 -1
  68. package/dist/api/app/bsky/contact/sendNotification.d.ts +2 -2
  69. package/dist/api/app/bsky/contact/sendNotification.d.ts.map +1 -1
  70. package/dist/api/app/bsky/contact/sendNotification.js.map +1 -1
  71. package/dist/api/app/bsky/contact/startPhoneVerification.d.ts +2 -2
  72. package/dist/api/app/bsky/contact/startPhoneVerification.d.ts.map +1 -1
  73. package/dist/api/app/bsky/contact/startPhoneVerification.js.map +1 -1
  74. package/dist/api/app/bsky/contact/util.d.ts +2 -2
  75. package/dist/api/app/bsky/contact/util.d.ts.map +1 -1
  76. package/dist/api/app/bsky/contact/util.js.map +1 -1
  77. package/dist/api/app/bsky/contact/verifyPhone.d.ts +2 -2
  78. package/dist/api/app/bsky/contact/verifyPhone.d.ts.map +1 -1
  79. package/dist/api/app/bsky/contact/verifyPhone.js.map +1 -1
  80. package/dist/api/app/bsky/draft/createDraft.d.ts +2 -2
  81. package/dist/api/app/bsky/draft/createDraft.d.ts.map +1 -1
  82. package/dist/api/app/bsky/draft/createDraft.js.map +1 -1
  83. package/dist/api/app/bsky/draft/deleteDraft.d.ts +2 -2
  84. package/dist/api/app/bsky/draft/deleteDraft.d.ts.map +1 -1
  85. package/dist/api/app/bsky/draft/deleteDraft.js.map +1 -1
  86. package/dist/api/app/bsky/draft/getDrafts.d.ts +2 -2
  87. package/dist/api/app/bsky/draft/getDrafts.d.ts.map +1 -1
  88. package/dist/api/app/bsky/draft/getDrafts.js.map +1 -1
  89. package/dist/api/app/bsky/draft/updateDraft.d.ts +2 -2
  90. package/dist/api/app/bsky/draft/updateDraft.d.ts.map +1 -1
  91. package/dist/api/app/bsky/draft/updateDraft.js.map +1 -1
  92. package/dist/api/app/bsky/embed/getEmbedExternalView.d.ts +2 -2
  93. package/dist/api/app/bsky/embed/getEmbedExternalView.d.ts.map +1 -1
  94. package/dist/api/app/bsky/embed/getEmbedExternalView.js.map +1 -1
  95. package/dist/api/app/bsky/feed/getActorFeeds.d.ts +2 -2
  96. package/dist/api/app/bsky/feed/getActorFeeds.d.ts.map +1 -1
  97. package/dist/api/app/bsky/feed/getActorFeeds.js.map +1 -1
  98. package/dist/api/app/bsky/feed/getActorLikes.d.ts +2 -2
  99. package/dist/api/app/bsky/feed/getActorLikes.d.ts.map +1 -1
  100. package/dist/api/app/bsky/feed/getActorLikes.js.map +1 -1
  101. package/dist/api/app/bsky/feed/getAuthorFeed.d.ts +7 -7
  102. package/dist/api/app/bsky/feed/getAuthorFeed.d.ts.map +1 -1
  103. package/dist/api/app/bsky/feed/getAuthorFeed.js.map +1 -1
  104. package/dist/api/app/bsky/feed/getFeed.d.ts +3 -3
  105. package/dist/api/app/bsky/feed/getFeed.d.ts.map +1 -1
  106. package/dist/api/app/bsky/feed/getFeed.js.map +1 -1
  107. package/dist/api/app/bsky/feed/getFeedGenerator.d.ts +2 -2
  108. package/dist/api/app/bsky/feed/getFeedGenerator.d.ts.map +1 -1
  109. package/dist/api/app/bsky/feed/getFeedGenerator.js.map +1 -1
  110. package/dist/api/app/bsky/feed/getFeedGenerators.d.ts +2 -2
  111. package/dist/api/app/bsky/feed/getFeedGenerators.d.ts.map +1 -1
  112. package/dist/api/app/bsky/feed/getFeedGenerators.js.map +1 -1
  113. package/dist/api/app/bsky/feed/getLikes.d.ts +2 -2
  114. package/dist/api/app/bsky/feed/getLikes.d.ts.map +1 -1
  115. package/dist/api/app/bsky/feed/getLikes.js.map +1 -1
  116. package/dist/api/app/bsky/feed/getListFeed.d.ts +6 -6
  117. package/dist/api/app/bsky/feed/getListFeed.d.ts.map +1 -1
  118. package/dist/api/app/bsky/feed/getListFeed.js.map +1 -1
  119. package/dist/api/app/bsky/feed/getPostThread.d.ts +2 -2
  120. package/dist/api/app/bsky/feed/getPostThread.d.ts.map +1 -1
  121. package/dist/api/app/bsky/feed/getPostThread.js.map +1 -1
  122. package/dist/api/app/bsky/feed/getPosts.d.ts +2 -2
  123. package/dist/api/app/bsky/feed/getPosts.d.ts.map +1 -1
  124. package/dist/api/app/bsky/feed/getPosts.js.map +1 -1
  125. package/dist/api/app/bsky/feed/getQuotes.d.ts +2 -2
  126. package/dist/api/app/bsky/feed/getQuotes.d.ts.map +1 -1
  127. package/dist/api/app/bsky/feed/getQuotes.js.map +1 -1
  128. package/dist/api/app/bsky/feed/getRepostedBy.d.ts +2 -2
  129. package/dist/api/app/bsky/feed/getRepostedBy.d.ts.map +1 -1
  130. package/dist/api/app/bsky/feed/getRepostedBy.js.map +1 -1
  131. package/dist/api/app/bsky/feed/getSuggestedFeeds.d.ts +2 -2
  132. package/dist/api/app/bsky/feed/getSuggestedFeeds.d.ts.map +1 -1
  133. package/dist/api/app/bsky/feed/getSuggestedFeeds.js.map +1 -1
  134. package/dist/api/app/bsky/feed/getTimeline.d.ts +6 -6
  135. package/dist/api/app/bsky/feed/getTimeline.d.ts.map +1 -1
  136. package/dist/api/app/bsky/feed/getTimeline.js.map +1 -1
  137. package/dist/api/app/bsky/feed/searchPosts.d.ts +2 -2
  138. package/dist/api/app/bsky/feed/searchPosts.d.ts.map +1 -1
  139. package/dist/api/app/bsky/feed/searchPosts.js +11 -3
  140. package/dist/api/app/bsky/feed/searchPosts.js.map +1 -1
  141. package/dist/api/app/bsky/feed/searchPostsV2.d.ts +2 -2
  142. package/dist/api/app/bsky/feed/searchPostsV2.d.ts.map +1 -1
  143. package/dist/api/app/bsky/feed/searchPostsV2.js +10 -2
  144. package/dist/api/app/bsky/feed/searchPostsV2.js.map +1 -1
  145. package/dist/api/app/bsky/graph/getActorStarterPacks.d.ts +2 -2
  146. package/dist/api/app/bsky/graph/getActorStarterPacks.d.ts.map +1 -1
  147. package/dist/api/app/bsky/graph/getActorStarterPacks.js.map +1 -1
  148. package/dist/api/app/bsky/graph/getBlocks.d.ts +2 -2
  149. package/dist/api/app/bsky/graph/getBlocks.d.ts.map +1 -1
  150. package/dist/api/app/bsky/graph/getBlocks.js.map +1 -1
  151. package/dist/api/app/bsky/graph/getFollowers.d.ts +2 -2
  152. package/dist/api/app/bsky/graph/getFollowers.d.ts.map +1 -1
  153. package/dist/api/app/bsky/graph/getFollowers.js.map +1 -1
  154. package/dist/api/app/bsky/graph/getFollows.d.ts +2 -2
  155. package/dist/api/app/bsky/graph/getFollows.d.ts.map +1 -1
  156. package/dist/api/app/bsky/graph/getFollows.js.map +1 -1
  157. package/dist/api/app/bsky/graph/getKnownFollowers.d.ts +2 -2
  158. package/dist/api/app/bsky/graph/getKnownFollowers.d.ts.map +1 -1
  159. package/dist/api/app/bsky/graph/getKnownFollowers.js.map +1 -1
  160. package/dist/api/app/bsky/graph/getList.d.ts +2 -2
  161. package/dist/api/app/bsky/graph/getList.d.ts.map +1 -1
  162. package/dist/api/app/bsky/graph/getList.js.map +1 -1
  163. package/dist/api/app/bsky/graph/getListBlocks.d.ts +2 -2
  164. package/dist/api/app/bsky/graph/getListBlocks.d.ts.map +1 -1
  165. package/dist/api/app/bsky/graph/getListBlocks.js.map +1 -1
  166. package/dist/api/app/bsky/graph/getListMutes.d.ts +2 -2
  167. package/dist/api/app/bsky/graph/getListMutes.d.ts.map +1 -1
  168. package/dist/api/app/bsky/graph/getListMutes.js.map +1 -1
  169. package/dist/api/app/bsky/graph/getLists.d.ts +2 -2
  170. package/dist/api/app/bsky/graph/getLists.d.ts.map +1 -1
  171. package/dist/api/app/bsky/graph/getLists.js.map +1 -1
  172. package/dist/api/app/bsky/graph/getListsWithMembership.d.ts +2 -2
  173. package/dist/api/app/bsky/graph/getListsWithMembership.d.ts.map +1 -1
  174. package/dist/api/app/bsky/graph/getListsWithMembership.js.map +1 -1
  175. package/dist/api/app/bsky/graph/getMutes.d.ts +2 -2
  176. package/dist/api/app/bsky/graph/getMutes.d.ts.map +1 -1
  177. package/dist/api/app/bsky/graph/getMutes.js.map +1 -1
  178. package/dist/api/app/bsky/graph/getRelationships.d.ts +2 -2
  179. package/dist/api/app/bsky/graph/getRelationships.d.ts.map +1 -1
  180. package/dist/api/app/bsky/graph/getRelationships.js.map +1 -1
  181. package/dist/api/app/bsky/graph/getStarterPack.d.ts +2 -2
  182. package/dist/api/app/bsky/graph/getStarterPack.d.ts.map +1 -1
  183. package/dist/api/app/bsky/graph/getStarterPack.js.map +1 -1
  184. package/dist/api/app/bsky/graph/getStarterPacks.d.ts +2 -2
  185. package/dist/api/app/bsky/graph/getStarterPacks.d.ts.map +1 -1
  186. package/dist/api/app/bsky/graph/getStarterPacks.js.map +1 -1
  187. package/dist/api/app/bsky/graph/getStarterPacksWithMembership.d.ts +2 -2
  188. package/dist/api/app/bsky/graph/getStarterPacksWithMembership.d.ts.map +1 -1
  189. package/dist/api/app/bsky/graph/getStarterPacksWithMembership.js.map +1 -1
  190. package/dist/api/app/bsky/graph/getSuggestedFollowsByActor.d.ts +2 -2
  191. package/dist/api/app/bsky/graph/getSuggestedFollowsByActor.d.ts.map +1 -1
  192. package/dist/api/app/bsky/graph/getSuggestedFollowsByActor.js.map +1 -1
  193. package/dist/api/app/bsky/graph/muteActor.d.ts +2 -2
  194. package/dist/api/app/bsky/graph/muteActor.d.ts.map +1 -1
  195. package/dist/api/app/bsky/graph/muteActor.js.map +1 -1
  196. package/dist/api/app/bsky/graph/muteActorList.d.ts +2 -2
  197. package/dist/api/app/bsky/graph/muteActorList.d.ts.map +1 -1
  198. package/dist/api/app/bsky/graph/muteActorList.js.map +1 -1
  199. package/dist/api/app/bsky/graph/muteThread.d.ts +2 -2
  200. package/dist/api/app/bsky/graph/muteThread.d.ts.map +1 -1
  201. package/dist/api/app/bsky/graph/muteThread.js.map +1 -1
  202. package/dist/api/app/bsky/graph/searchStarterPacks.d.ts +2 -2
  203. package/dist/api/app/bsky/graph/searchStarterPacks.d.ts.map +1 -1
  204. package/dist/api/app/bsky/graph/searchStarterPacks.js.map +1 -1
  205. package/dist/api/app/bsky/graph/unmuteActor.d.ts +2 -2
  206. package/dist/api/app/bsky/graph/unmuteActor.d.ts.map +1 -1
  207. package/dist/api/app/bsky/graph/unmuteActor.js.map +1 -1
  208. package/dist/api/app/bsky/graph/unmuteActorList.d.ts +2 -2
  209. package/dist/api/app/bsky/graph/unmuteActorList.d.ts.map +1 -1
  210. package/dist/api/app/bsky/graph/unmuteActorList.js.map +1 -1
  211. package/dist/api/app/bsky/graph/unmuteThread.d.ts +2 -2
  212. package/dist/api/app/bsky/graph/unmuteThread.d.ts.map +1 -1
  213. package/dist/api/app/bsky/graph/unmuteThread.js.map +1 -1
  214. package/dist/api/app/bsky/labeler/getServices.d.ts +2 -2
  215. package/dist/api/app/bsky/labeler/getServices.d.ts.map +1 -1
  216. package/dist/api/app/bsky/labeler/getServices.js.map +1 -1
  217. package/dist/api/app/bsky/notification/getPreferences.d.ts +2 -2
  218. package/dist/api/app/bsky/notification/getPreferences.d.ts.map +1 -1
  219. package/dist/api/app/bsky/notification/getPreferences.js.map +1 -1
  220. package/dist/api/app/bsky/notification/getUnreadCount.d.ts +2 -2
  221. package/dist/api/app/bsky/notification/getUnreadCount.d.ts.map +1 -1
  222. package/dist/api/app/bsky/notification/getUnreadCount.js.map +1 -1
  223. package/dist/api/app/bsky/notification/listActivitySubscriptions.d.ts +2 -2
  224. package/dist/api/app/bsky/notification/listActivitySubscriptions.d.ts.map +1 -1
  225. package/dist/api/app/bsky/notification/listActivitySubscriptions.js.map +1 -1
  226. package/dist/api/app/bsky/notification/listNotifications.d.ts +2 -2
  227. package/dist/api/app/bsky/notification/listNotifications.d.ts.map +1 -1
  228. package/dist/api/app/bsky/notification/listNotifications.js.map +1 -1
  229. package/dist/api/app/bsky/notification/putActivitySubscription.d.ts +2 -2
  230. package/dist/api/app/bsky/notification/putActivitySubscription.d.ts.map +1 -1
  231. package/dist/api/app/bsky/notification/putActivitySubscription.js.map +1 -1
  232. package/dist/api/app/bsky/notification/putPreferences.d.ts +2 -2
  233. package/dist/api/app/bsky/notification/putPreferences.d.ts.map +1 -1
  234. package/dist/api/app/bsky/notification/putPreferences.js.map +1 -1
  235. package/dist/api/app/bsky/notification/putPreferencesV2.d.ts +2 -2
  236. package/dist/api/app/bsky/notification/putPreferencesV2.d.ts.map +1 -1
  237. package/dist/api/app/bsky/notification/putPreferencesV2.js.map +1 -1
  238. package/dist/api/app/bsky/notification/registerPush.d.ts +2 -2
  239. package/dist/api/app/bsky/notification/registerPush.d.ts.map +1 -1
  240. package/dist/api/app/bsky/notification/registerPush.js.map +1 -1
  241. package/dist/api/app/bsky/notification/unregisterPush.d.ts +2 -2
  242. package/dist/api/app/bsky/notification/unregisterPush.d.ts.map +1 -1
  243. package/dist/api/app/bsky/notification/unregisterPush.js.map +1 -1
  244. package/dist/api/app/bsky/notification/updateSeen.d.ts +2 -2
  245. package/dist/api/app/bsky/notification/updateSeen.d.ts.map +1 -1
  246. package/dist/api/app/bsky/notification/updateSeen.js.map +1 -1
  247. package/dist/api/app/bsky/notification/util.d.ts +2 -2
  248. package/dist/api/app/bsky/notification/util.d.ts.map +1 -1
  249. package/dist/api/app/bsky/notification/util.js.map +1 -1
  250. package/dist/api/app/bsky/unspecced/getAgeAssuranceState.d.ts +2 -2
  251. package/dist/api/app/bsky/unspecced/getAgeAssuranceState.d.ts.map +1 -1
  252. package/dist/api/app/bsky/unspecced/getAgeAssuranceState.js.map +1 -1
  253. package/dist/api/app/bsky/unspecced/getConfig.d.ts +2 -2
  254. package/dist/api/app/bsky/unspecced/getConfig.d.ts.map +1 -1
  255. package/dist/api/app/bsky/unspecced/getConfig.js.map +1 -1
  256. package/dist/api/app/bsky/unspecced/getOnboardingSuggestedStarterPacks.d.ts +2 -2
  257. package/dist/api/app/bsky/unspecced/getOnboardingSuggestedStarterPacks.d.ts.map +1 -1
  258. package/dist/api/app/bsky/unspecced/getOnboardingSuggestedStarterPacks.js.map +1 -1
  259. package/dist/api/app/bsky/unspecced/getPopularFeedGenerators.d.ts +2 -2
  260. package/dist/api/app/bsky/unspecced/getPopularFeedGenerators.d.ts.map +1 -1
  261. package/dist/api/app/bsky/unspecced/getPopularFeedGenerators.js.map +1 -1
  262. package/dist/api/app/bsky/unspecced/getPostThreadOtherV2.d.ts +2 -2
  263. package/dist/api/app/bsky/unspecced/getPostThreadOtherV2.d.ts.map +1 -1
  264. package/dist/api/app/bsky/unspecced/getPostThreadOtherV2.js.map +1 -1
  265. package/dist/api/app/bsky/unspecced/getPostThreadV2.d.ts +2 -2
  266. package/dist/api/app/bsky/unspecced/getPostThreadV2.d.ts.map +1 -1
  267. package/dist/api/app/bsky/unspecced/getPostThreadV2.js.map +1 -1
  268. package/dist/api/app/bsky/unspecced/getSuggestedFeeds.d.ts +2 -2
  269. package/dist/api/app/bsky/unspecced/getSuggestedFeeds.d.ts.map +1 -1
  270. package/dist/api/app/bsky/unspecced/getSuggestedFeeds.js.map +1 -1
  271. package/dist/api/app/bsky/unspecced/getSuggestedOnboardingUsers.d.ts +2 -2
  272. package/dist/api/app/bsky/unspecced/getSuggestedOnboardingUsers.d.ts.map +1 -1
  273. package/dist/api/app/bsky/unspecced/getSuggestedOnboardingUsers.js.map +1 -1
  274. package/dist/api/app/bsky/unspecced/getSuggestedStarterPacks.d.ts +2 -2
  275. package/dist/api/app/bsky/unspecced/getSuggestedStarterPacks.d.ts.map +1 -1
  276. package/dist/api/app/bsky/unspecced/getSuggestedStarterPacks.js.map +1 -1
  277. package/dist/api/app/bsky/unspecced/getSuggestedUsers.d.ts +2 -2
  278. package/dist/api/app/bsky/unspecced/getSuggestedUsers.d.ts.map +1 -1
  279. package/dist/api/app/bsky/unspecced/getSuggestedUsers.js.map +1 -1
  280. package/dist/api/app/bsky/unspecced/getSuggestedUsersForDiscover.d.ts +2 -2
  281. package/dist/api/app/bsky/unspecced/getSuggestedUsersForDiscover.d.ts.map +1 -1
  282. package/dist/api/app/bsky/unspecced/getSuggestedUsersForDiscover.js.map +1 -1
  283. package/dist/api/app/bsky/unspecced/getSuggestedUsersForExplore.d.ts +2 -2
  284. package/dist/api/app/bsky/unspecced/getSuggestedUsersForExplore.d.ts.map +1 -1
  285. package/dist/api/app/bsky/unspecced/getSuggestedUsersForExplore.js.map +1 -1
  286. package/dist/api/app/bsky/unspecced/getSuggestedUsersForSeeMore.d.ts +2 -2
  287. package/dist/api/app/bsky/unspecced/getSuggestedUsersForSeeMore.d.ts.map +1 -1
  288. package/dist/api/app/bsky/unspecced/getSuggestedUsersForSeeMore.js.map +1 -1
  289. package/dist/api/app/bsky/unspecced/getTaggedSuggestions.d.ts +2 -2
  290. package/dist/api/app/bsky/unspecced/getTaggedSuggestions.d.ts.map +1 -1
  291. package/dist/api/app/bsky/unspecced/getTaggedSuggestions.js.map +1 -1
  292. package/dist/api/app/bsky/unspecced/getTrendingTopics.d.ts +2 -2
  293. package/dist/api/app/bsky/unspecced/getTrendingTopics.d.ts.map +1 -1
  294. package/dist/api/app/bsky/unspecced/getTrendingTopics.js.map +1 -1
  295. package/dist/api/app/bsky/unspecced/getTrends.d.ts +2 -2
  296. package/dist/api/app/bsky/unspecced/getTrends.d.ts.map +1 -1
  297. package/dist/api/app/bsky/unspecced/getTrends.js.map +1 -1
  298. package/dist/api/app/bsky/unspecced/initAgeAssurance.d.ts +2 -2
  299. package/dist/api/app/bsky/unspecced/initAgeAssurance.d.ts.map +1 -1
  300. package/dist/api/app/bsky/unspecced/initAgeAssurance.js.map +1 -1
  301. package/dist/api/blob-dispatcher.d.ts +2 -2
  302. package/dist/api/blob-dispatcher.d.ts.map +1 -1
  303. package/dist/api/blob-dispatcher.js.map +1 -1
  304. package/dist/api/blob-resolver.d.ts +6 -6
  305. package/dist/api/blob-resolver.d.ts.map +1 -1
  306. package/dist/api/blob-resolver.js.map +1 -1
  307. package/dist/api/com/atproto/admin/getAccountInfos.d.ts +2 -2
  308. package/dist/api/com/atproto/admin/getAccountInfos.d.ts.map +1 -1
  309. package/dist/api/com/atproto/admin/getAccountInfos.js.map +1 -1
  310. package/dist/api/com/atproto/admin/getSubjectStatus.d.ts +2 -2
  311. package/dist/api/com/atproto/admin/getSubjectStatus.d.ts.map +1 -1
  312. package/dist/api/com/atproto/admin/getSubjectStatus.js.map +1 -1
  313. package/dist/api/com/atproto/admin/updateSubjectStatus.d.ts +2 -2
  314. package/dist/api/com/atproto/admin/updateSubjectStatus.d.ts.map +1 -1
  315. package/dist/api/com/atproto/admin/updateSubjectStatus.js.map +1 -1
  316. package/dist/api/com/atproto/identity/resolveHandle.d.ts +2 -2
  317. package/dist/api/com/atproto/identity/resolveHandle.d.ts.map +1 -1
  318. package/dist/api/com/atproto/identity/resolveHandle.js.map +1 -1
  319. package/dist/api/com/atproto/label/queryLabels.d.ts +2 -2
  320. package/dist/api/com/atproto/label/queryLabels.d.ts.map +1 -1
  321. package/dist/api/com/atproto/label/queryLabels.js.map +1 -1
  322. package/dist/api/com/atproto/repo/getRecord.d.ts +2 -2
  323. package/dist/api/com/atproto/repo/getRecord.d.ts.map +1 -1
  324. package/dist/api/com/atproto/repo/getRecord.js.map +1 -1
  325. package/dist/api/com/atproto/temp/fetchLabels.d.ts +2 -2
  326. package/dist/api/com/atproto/temp/fetchLabels.d.ts.map +1 -1
  327. package/dist/api/com/atproto/temp/fetchLabels.js.map +1 -1
  328. package/dist/api/external.d.ts +1 -1
  329. package/dist/api/external.d.ts.map +1 -1
  330. package/dist/api/external.js.map +1 -1
  331. package/dist/api/health.d.ts +1 -1
  332. package/dist/api/health.d.ts.map +1 -1
  333. package/dist/api/health.js.map +1 -1
  334. package/dist/api/index.d.ts +2 -2
  335. package/dist/api/index.d.ts.map +1 -1
  336. package/dist/api/index.js.map +1 -1
  337. package/dist/api/internal/bsky/actor/getProfiles.d.ts +2 -2
  338. package/dist/api/internal/bsky/actor/getProfiles.d.ts.map +1 -1
  339. package/dist/api/internal/bsky/actor/getProfiles.js.map +1 -1
  340. package/dist/api/kws/api.d.ts +2 -2
  341. package/dist/api/kws/api.d.ts.map +1 -1
  342. package/dist/api/kws/api.js.map +1 -1
  343. package/dist/api/kws/index.d.ts +1 -1
  344. package/dist/api/kws/index.d.ts.map +1 -1
  345. package/dist/api/kws/index.js.map +1 -1
  346. package/dist/api/kws/types.d.ts +3 -3
  347. package/dist/api/kws/types.d.ts.map +1 -1
  348. package/dist/api/kws/types.js.map +1 -1
  349. package/dist/api/kws/util.d.ts +4 -4
  350. package/dist/api/kws/util.d.ts.map +1 -1
  351. package/dist/api/kws/util.js.map +1 -1
  352. package/dist/api/kws/webhook.d.ts +2 -2
  353. package/dist/api/kws/webhook.d.ts.map +1 -1
  354. package/dist/api/kws/webhook.js.map +1 -1
  355. package/dist/api/sitemap.d.ts +1 -1
  356. package/dist/api/sitemap.d.ts.map +1 -1
  357. package/dist/api/sitemap.js.map +1 -1
  358. package/dist/api/util.d.ts +3 -3
  359. package/dist/api/util.d.ts.map +1 -1
  360. package/dist/api/util.js.map +1 -1
  361. package/dist/api/well-known.d.ts +1 -1
  362. package/dist/api/well-known.d.ts.map +1 -1
  363. package/dist/api/well-known.js.map +1 -1
  364. package/dist/auth-verifier.d.ts +5 -5
  365. package/dist/auth-verifier.d.ts.map +1 -1
  366. package/dist/auth-verifier.js +1 -1
  367. package/dist/auth-verifier.js.map +1 -1
  368. package/dist/bsync.d.ts +2 -2
  369. package/dist/bsync.d.ts.map +1 -1
  370. package/dist/bsync.js.map +1 -1
  371. package/dist/cache/read-through.d.ts +1 -1
  372. package/dist/cache/read-through.d.ts.map +1 -1
  373. package/dist/cache/read-through.js.map +1 -1
  374. package/dist/config.d.ts +1 -1
  375. package/dist/config.d.ts.map +1 -1
  376. package/dist/config.js.map +1 -1
  377. package/dist/context.d.ts +18 -18
  378. package/dist/context.d.ts.map +1 -1
  379. package/dist/context.js.map +1 -1
  380. package/dist/courier.d.ts +2 -2
  381. package/dist/courier.d.ts.map +1 -1
  382. package/dist/courier.js.map +1 -1
  383. package/dist/data-plane/client/hosts.d.ts +1 -1
  384. package/dist/data-plane/client/hosts.d.ts.map +1 -1
  385. package/dist/data-plane/client/hosts.js.map +1 -1
  386. package/dist/data-plane/client/index.d.ts +2 -2
  387. package/dist/data-plane/client/index.d.ts.map +1 -1
  388. package/dist/data-plane/client/index.js.map +1 -1
  389. package/dist/data-plane/client/util.d.ts +1 -1
  390. package/dist/data-plane/client/util.d.ts.map +1 -1
  391. package/dist/data-plane/client/util.js.map +1 -1
  392. package/dist/data-plane/server/bsync-subscription.d.ts +2 -2
  393. package/dist/data-plane/server/bsync-subscription.d.ts.map +1 -1
  394. package/dist/data-plane/server/bsync-subscription.js +1 -1
  395. package/dist/data-plane/server/bsync-subscription.js.map +1 -1
  396. package/dist/data-plane/server/db/database-schema.d.ts +44 -44
  397. package/dist/data-plane/server/db/database-schema.d.ts.map +1 -1
  398. package/dist/data-plane/server/db/database-schema.js.map +1 -1
  399. package/dist/data-plane/server/db/db.d.ts +2 -2
  400. package/dist/data-plane/server/db/db.d.ts.map +1 -1
  401. package/dist/data-plane/server/db/db.js.map +1 -1
  402. package/dist/data-plane/server/db/migrations/20230309T045948368Z-init.d.ts +1 -1
  403. package/dist/data-plane/server/db/migrations/20230309T045948368Z-init.d.ts.map +1 -1
  404. package/dist/data-plane/server/db/migrations/20230309T045948368Z-init.js.map +1 -1
  405. package/dist/data-plane/server/db/migrations/20230408T152211201Z-notification-init.d.ts +1 -1
  406. package/dist/data-plane/server/db/migrations/20230408T152211201Z-notification-init.d.ts.map +1 -1
  407. package/dist/data-plane/server/db/migrations/20230408T152211201Z-notification-init.js.map +1 -1
  408. package/dist/data-plane/server/db/migrations/20230417T210628672Z-moderation-init.d.ts +1 -1
  409. package/dist/data-plane/server/db/migrations/20230417T210628672Z-moderation-init.d.ts.map +1 -1
  410. package/dist/data-plane/server/db/migrations/20230417T210628672Z-moderation-init.js.map +1 -1
  411. package/dist/data-plane/server/db/migrations/20230420T211446071Z-did-cache.d.ts +1 -1
  412. package/dist/data-plane/server/db/migrations/20230420T211446071Z-did-cache.d.ts.map +1 -1
  413. package/dist/data-plane/server/db/migrations/20230420T211446071Z-did-cache.js.map +1 -1
  414. package/dist/data-plane/server/db/migrations/20230427T194702079Z-notif-record-index.d.ts +1 -1
  415. package/dist/data-plane/server/db/migrations/20230427T194702079Z-notif-record-index.d.ts.map +1 -1
  416. package/dist/data-plane/server/db/migrations/20230427T194702079Z-notif-record-index.js.map +1 -1
  417. package/dist/data-plane/server/db/migrations/20230605T144730094Z-post-profile-aggs.d.ts +1 -1
  418. package/dist/data-plane/server/db/migrations/20230605T144730094Z-post-profile-aggs.d.ts.map +1 -1
  419. package/dist/data-plane/server/db/migrations/20230605T144730094Z-post-profile-aggs.js.map +1 -1
  420. package/dist/data-plane/server/db/migrations/20230607T211442112Z-feed-generator-init.d.ts +1 -1
  421. package/dist/data-plane/server/db/migrations/20230607T211442112Z-feed-generator-init.d.ts.map +1 -1
  422. package/dist/data-plane/server/db/migrations/20230607T211442112Z-feed-generator-init.js.map +1 -1
  423. package/dist/data-plane/server/db/migrations/20230608T155101190Z-algo-whats-hot-view.d.ts +1 -1
  424. package/dist/data-plane/server/db/migrations/20230608T155101190Z-algo-whats-hot-view.d.ts.map +1 -1
  425. package/dist/data-plane/server/db/migrations/20230608T155101190Z-algo-whats-hot-view.js.map +1 -1
  426. package/dist/data-plane/server/db/migrations/20230608T201813132Z-mute-lists.d.ts +1 -1
  427. package/dist/data-plane/server/db/migrations/20230608T201813132Z-mute-lists.d.ts.map +1 -1
  428. package/dist/data-plane/server/db/migrations/20230608T201813132Z-mute-lists.js.map +1 -1
  429. package/dist/data-plane/server/db/migrations/20230608T205147239Z-mutes.d.ts +1 -1
  430. package/dist/data-plane/server/db/migrations/20230608T205147239Z-mutes.d.ts.map +1 -1
  431. package/dist/data-plane/server/db/migrations/20230608T205147239Z-mutes.js.map +1 -1
  432. package/dist/data-plane/server/db/migrations/20230609T153623961Z-blocks.d.ts +1 -1
  433. package/dist/data-plane/server/db/migrations/20230609T153623961Z-blocks.d.ts.map +1 -1
  434. package/dist/data-plane/server/db/migrations/20230609T153623961Z-blocks.js.map +1 -1
  435. package/dist/data-plane/server/db/migrations/20230609T232122649Z-actor-deletion-indexes.d.ts +1 -1
  436. package/dist/data-plane/server/db/migrations/20230609T232122649Z-actor-deletion-indexes.d.ts.map +1 -1
  437. package/dist/data-plane/server/db/migrations/20230609T232122649Z-actor-deletion-indexes.js.map +1 -1
  438. package/dist/data-plane/server/db/migrations/20230610T203555962Z-suggested-follows.d.ts +1 -1
  439. package/dist/data-plane/server/db/migrations/20230610T203555962Z-suggested-follows.d.ts.map +1 -1
  440. package/dist/data-plane/server/db/migrations/20230610T203555962Z-suggested-follows.js.map +1 -1
  441. package/dist/data-plane/server/db/migrations/20230611T215300060Z-actor-state.d.ts +1 -1
  442. package/dist/data-plane/server/db/migrations/20230611T215300060Z-actor-state.d.ts.map +1 -1
  443. package/dist/data-plane/server/db/migrations/20230611T215300060Z-actor-state.js.map +1 -1
  444. package/dist/data-plane/server/db/migrations/20230620T161134972Z-post-langs.d.ts +1 -1
  445. package/dist/data-plane/server/db/migrations/20230620T161134972Z-post-langs.d.ts.map +1 -1
  446. package/dist/data-plane/server/db/migrations/20230620T161134972Z-post-langs.js.map +1 -1
  447. package/dist/data-plane/server/db/migrations/20230627T212437895Z-optional-handle.d.ts +1 -1
  448. package/dist/data-plane/server/db/migrations/20230627T212437895Z-optional-handle.d.ts.map +1 -1
  449. package/dist/data-plane/server/db/migrations/20230627T212437895Z-optional-handle.js.map +1 -1
  450. package/dist/data-plane/server/db/migrations/20230629T220835893Z-remove-post-hierarchy.d.ts +1 -1
  451. package/dist/data-plane/server/db/migrations/20230629T220835893Z-remove-post-hierarchy.d.ts.map +1 -1
  452. package/dist/data-plane/server/db/migrations/20230629T220835893Z-remove-post-hierarchy.js.map +1 -1
  453. package/dist/data-plane/server/db/migrations/20230703T045536691Z-feed-and-label-indices.d.ts +1 -1
  454. package/dist/data-plane/server/db/migrations/20230703T045536691Z-feed-and-label-indices.d.ts.map +1 -1
  455. package/dist/data-plane/server/db/migrations/20230703T045536691Z-feed-and-label-indices.js.map +1 -1
  456. package/dist/data-plane/server/db/migrations/20230720T164800037Z-posts-cursor-idx.d.ts +1 -1
  457. package/dist/data-plane/server/db/migrations/20230720T164800037Z-posts-cursor-idx.d.ts.map +1 -1
  458. package/dist/data-plane/server/db/migrations/20230720T164800037Z-posts-cursor-idx.js.map +1 -1
  459. package/dist/data-plane/server/db/migrations/20230807T035309811Z-feed-item-delete-invite-for-user-idx.d.ts +1 -1
  460. package/dist/data-plane/server/db/migrations/20230807T035309811Z-feed-item-delete-invite-for-user-idx.d.ts.map +1 -1
  461. package/dist/data-plane/server/db/migrations/20230807T035309811Z-feed-item-delete-invite-for-user-idx.js.map +1 -1
  462. package/dist/data-plane/server/db/migrations/20230808T172902639Z-repo-rev.d.ts +1 -1
  463. package/dist/data-plane/server/db/migrations/20230808T172902639Z-repo-rev.d.ts.map +1 -1
  464. package/dist/data-plane/server/db/migrations/20230808T172902639Z-repo-rev.js.map +1 -1
  465. package/dist/data-plane/server/db/migrations/20230810T203349843Z-action-duration.d.ts +1 -1
  466. package/dist/data-plane/server/db/migrations/20230810T203349843Z-action-duration.d.ts.map +1 -1
  467. package/dist/data-plane/server/db/migrations/20230810T203349843Z-action-duration.js.map +1 -1
  468. package/dist/data-plane/server/db/migrations/20230817T195936007Z-native-notifications.d.ts +1 -1
  469. package/dist/data-plane/server/db/migrations/20230817T195936007Z-native-notifications.d.ts.map +1 -1
  470. package/dist/data-plane/server/db/migrations/20230817T195936007Z-native-notifications.js.map +1 -1
  471. package/dist/data-plane/server/db/migrations/20230830T205507322Z-suggested-feeds.d.ts +1 -1
  472. package/dist/data-plane/server/db/migrations/20230830T205507322Z-suggested-feeds.d.ts.map +1 -1
  473. package/dist/data-plane/server/db/migrations/20230830T205507322Z-suggested-feeds.js.map +1 -1
  474. package/dist/data-plane/server/db/migrations/20230904T211011773Z-block-lists.d.ts +1 -1
  475. package/dist/data-plane/server/db/migrations/20230904T211011773Z-block-lists.d.ts.map +1 -1
  476. package/dist/data-plane/server/db/migrations/20230904T211011773Z-block-lists.js.map +1 -1
  477. package/dist/data-plane/server/db/migrations/20230906T222220386Z-thread-gating.d.ts +1 -1
  478. package/dist/data-plane/server/db/migrations/20230906T222220386Z-thread-gating.d.ts.map +1 -1
  479. package/dist/data-plane/server/db/migrations/20230906T222220386Z-thread-gating.js.map +1 -1
  480. package/dist/data-plane/server/db/migrations/20230920T213858047Z-add-tags-to-post.d.ts +1 -1
  481. package/dist/data-plane/server/db/migrations/20230920T213858047Z-add-tags-to-post.d.ts.map +1 -1
  482. package/dist/data-plane/server/db/migrations/20230920T213858047Z-add-tags-to-post.js.map +1 -1
  483. package/dist/data-plane/server/db/migrations/20230929T192920807Z-record-cursor-indexes.d.ts +1 -1
  484. package/dist/data-plane/server/db/migrations/20230929T192920807Z-record-cursor-indexes.d.ts.map +1 -1
  485. package/dist/data-plane/server/db/migrations/20230929T192920807Z-record-cursor-indexes.js.map +1 -1
  486. package/dist/data-plane/server/db/migrations/20231003T202833377Z-create-moderation-subject-status.d.ts +1 -1
  487. package/dist/data-plane/server/db/migrations/20231003T202833377Z-create-moderation-subject-status.d.ts.map +1 -1
  488. package/dist/data-plane/server/db/migrations/20231003T202833377Z-create-moderation-subject-status.js.map +1 -1
  489. package/dist/data-plane/server/db/migrations/20231220T225126090Z-blob-takedowns.d.ts +1 -1
  490. package/dist/data-plane/server/db/migrations/20231220T225126090Z-blob-takedowns.d.ts.map +1 -1
  491. package/dist/data-plane/server/db/migrations/20231220T225126090Z-blob-takedowns.js.map +1 -1
  492. package/dist/data-plane/server/db/migrations/20240124T023719200Z-tagged-suggestions.d.ts +1 -1
  493. package/dist/data-plane/server/db/migrations/20240124T023719200Z-tagged-suggestions.d.ts.map +1 -1
  494. package/dist/data-plane/server/db/migrations/20240124T023719200Z-tagged-suggestions.js.map +1 -1
  495. package/dist/data-plane/server/db/migrations/20240226T225725627Z-labelers.d.ts +1 -1
  496. package/dist/data-plane/server/db/migrations/20240226T225725627Z-labelers.d.ts.map +1 -1
  497. package/dist/data-plane/server/db/migrations/20240226T225725627Z-labelers.js.map +1 -1
  498. package/dist/data-plane/server/db/migrations/20240530T170337073Z-account-deactivation.d.ts +1 -1
  499. package/dist/data-plane/server/db/migrations/20240530T170337073Z-account-deactivation.d.ts.map +1 -1
  500. package/dist/data-plane/server/db/migrations/20240530T170337073Z-account-deactivation.js.map +1 -1
  501. package/dist/data-plane/server/db/migrations/20240606T171229898Z-thread-mutes.d.ts +1 -1
  502. package/dist/data-plane/server/db/migrations/20240606T171229898Z-thread-mutes.d.ts.map +1 -1
  503. package/dist/data-plane/server/db/migrations/20240606T171229898Z-thread-mutes.js.map +1 -1
  504. package/dist/data-plane/server/db/migrations/20240606T222548219Z-starter-packs.d.ts +1 -1
  505. package/dist/data-plane/server/db/migrations/20240606T222548219Z-starter-packs.d.ts.map +1 -1
  506. package/dist/data-plane/server/db/migrations/20240606T222548219Z-starter-packs.js.map +1 -1
  507. package/dist/data-plane/server/db/migrations/20240719T203853939Z-priority-notifs.d.ts +1 -1
  508. package/dist/data-plane/server/db/migrations/20240719T203853939Z-priority-notifs.d.ts.map +1 -1
  509. package/dist/data-plane/server/db/migrations/20240719T203853939Z-priority-notifs.js.map +1 -1
  510. package/dist/data-plane/server/db/migrations/20240723T220700077Z-quotes-post-aggs.d.ts +1 -1
  511. package/dist/data-plane/server/db/migrations/20240723T220700077Z-quotes-post-aggs.d.ts.map +1 -1
  512. package/dist/data-plane/server/db/migrations/20240723T220700077Z-quotes-post-aggs.js.map +1 -1
  513. package/dist/data-plane/server/db/migrations/20240723T220703655Z-quotes.d.ts +1 -1
  514. package/dist/data-plane/server/db/migrations/20240723T220703655Z-quotes.d.ts.map +1 -1
  515. package/dist/data-plane/server/db/migrations/20240723T220703655Z-quotes.js.map +1 -1
  516. package/dist/data-plane/server/db/migrations/20240801T193939827Z-post-gate.d.ts +1 -1
  517. package/dist/data-plane/server/db/migrations/20240801T193939827Z-post-gate.d.ts.map +1 -1
  518. package/dist/data-plane/server/db/migrations/20240801T193939827Z-post-gate.js.map +1 -1
  519. package/dist/data-plane/server/db/migrations/20240808T224251220Z-post-gate-flags.d.ts +1 -1
  520. package/dist/data-plane/server/db/migrations/20240808T224251220Z-post-gate-flags.d.ts.map +1 -1
  521. package/dist/data-plane/server/db/migrations/20240808T224251220Z-post-gate-flags.js.map +1 -1
  522. package/dist/data-plane/server/db/migrations/20240829T211238293Z-simplify-actor-sync.d.ts +1 -1
  523. package/dist/data-plane/server/db/migrations/20240829T211238293Z-simplify-actor-sync.d.ts.map +1 -1
  524. package/dist/data-plane/server/db/migrations/20240829T211238293Z-simplify-actor-sync.js.map +1 -1
  525. package/dist/data-plane/server/db/migrations/20240831T134810923Z-pinned-posts.d.ts +1 -1
  526. package/dist/data-plane/server/db/migrations/20240831T134810923Z-pinned-posts.d.ts.map +1 -1
  527. package/dist/data-plane/server/db/migrations/20240831T134810923Z-pinned-posts.js.map +1 -1
  528. package/dist/data-plane/server/db/migrations/20241114T153108102Z-add-starter-packs-name.d.ts +1 -1
  529. package/dist/data-plane/server/db/migrations/20241114T153108102Z-add-starter-packs-name.d.ts.map +1 -1
  530. package/dist/data-plane/server/db/migrations/20241114T153108102Z-add-starter-packs-name.js.map +1 -1
  531. package/dist/data-plane/server/db/migrations/20250116T222618297Z-post-embed-video.d.ts +1 -1
  532. package/dist/data-plane/server/db/migrations/20250116T222618297Z-post-embed-video.d.ts.map +1 -1
  533. package/dist/data-plane/server/db/migrations/20250116T222618297Z-post-embed-video.js.map +1 -1
  534. package/dist/data-plane/server/db/migrations/20250207T174822012Z-add-label-exp.d.ts +1 -1
  535. package/dist/data-plane/server/db/migrations/20250207T174822012Z-add-label-exp.d.ts.map +1 -1
  536. package/dist/data-plane/server/db/migrations/20250207T174822012Z-add-label-exp.js.map +1 -1
  537. package/dist/data-plane/server/db/migrations/20250404T163421487Z-verifications.d.ts +1 -1
  538. package/dist/data-plane/server/db/migrations/20250404T163421487Z-verifications.d.ts.map +1 -1
  539. package/dist/data-plane/server/db/migrations/20250404T163421487Z-verifications.js.map +1 -1
  540. package/dist/data-plane/server/db/migrations/20250526T023712742Z-like-repost-via.d.ts +1 -1
  541. package/dist/data-plane/server/db/migrations/20250526T023712742Z-like-repost-via.d.ts.map +1 -1
  542. package/dist/data-plane/server/db/migrations/20250526T023712742Z-like-repost-via.js.map +1 -1
  543. package/dist/data-plane/server/db/migrations/20250528T221913281Z-add-record-tags.d.ts +1 -1
  544. package/dist/data-plane/server/db/migrations/20250528T221913281Z-add-record-tags.d.ts.map +1 -1
  545. package/dist/data-plane/server/db/migrations/20250528T221913281Z-add-record-tags.js.map +1 -1
  546. package/dist/data-plane/server/db/migrations/20250602T190357447Z-add-private-data.d.ts +1 -1
  547. package/dist/data-plane/server/db/migrations/20250602T190357447Z-add-private-data.d.ts.map +1 -1
  548. package/dist/data-plane/server/db/migrations/20250602T190357447Z-add-private-data.js.map +1 -1
  549. package/dist/data-plane/server/db/migrations/20250611T140649895Z-add-activity-subscription.d.ts +1 -1
  550. package/dist/data-plane/server/db/migrations/20250611T140649895Z-add-activity-subscription.d.ts.map +1 -1
  551. package/dist/data-plane/server/db/migrations/20250611T140649895Z-add-activity-subscription.js.map +1 -1
  552. package/dist/data-plane/server/db/migrations/20250627T025331240Z-add-actor-age-assurance-columns.d.ts +1 -1
  553. package/dist/data-plane/server/db/migrations/20250627T025331240Z-add-actor-age-assurance-columns.d.ts.map +1 -1
  554. package/dist/data-plane/server/db/migrations/20250627T025331240Z-add-actor-age-assurance-columns.js.map +1 -1
  555. package/dist/data-plane/server/db/migrations/20250812T183735692Z-add-bookmarks.d.ts +1 -1
  556. package/dist/data-plane/server/db/migrations/20250812T183735692Z-add-bookmarks.d.ts.map +1 -1
  557. package/dist/data-plane/server/db/migrations/20250812T183735692Z-add-bookmarks.js.map +1 -1
  558. package/dist/data-plane/server/db/migrations/20250813T174955711Z-add-post-agg-bookmarks.d.ts +1 -1
  559. package/dist/data-plane/server/db/migrations/20250813T174955711Z-add-post-agg-bookmarks.d.ts.map +1 -1
  560. package/dist/data-plane/server/db/migrations/20250813T174955711Z-add-post-agg-bookmarks.js.map +1 -1
  561. package/dist/data-plane/server/db/migrations/20251120T004738098Z-update-actor-age-assurance-v2.d.ts +1 -1
  562. package/dist/data-plane/server/db/migrations/20251120T004738098Z-update-actor-age-assurance-v2.d.ts.map +1 -1
  563. package/dist/data-plane/server/db/migrations/20251120T004738098Z-update-actor-age-assurance-v2.js.map +1 -1
  564. package/dist/data-plane/server/db/migrations/20260112T133951271Z-add-drafts.d.ts +1 -1
  565. package/dist/data-plane/server/db/migrations/20260112T133951271Z-add-drafts.d.ts.map +1 -1
  566. package/dist/data-plane/server/db/migrations/20260112T133951271Z-add-drafts.js.map +1 -1
  567. package/dist/data-plane/server/db/migrations/20260604T224952774Z-post-embed-gallery-image.d.ts +1 -1
  568. package/dist/data-plane/server/db/migrations/20260604T224952774Z-post-embed-gallery-image.d.ts.map +1 -1
  569. package/dist/data-plane/server/db/migrations/20260604T224952774Z-post-embed-gallery-image.js.map +1 -1
  570. package/dist/data-plane/server/db/migrations/provider.d.ts +2 -2
  571. package/dist/data-plane/server/db/migrations/provider.d.ts.map +1 -1
  572. package/dist/data-plane/server/db/migrations/provider.js.map +1 -1
  573. package/dist/data-plane/server/db/pagination.d.ts +2 -2
  574. package/dist/data-plane/server/db/pagination.d.ts.map +1 -1
  575. package/dist/data-plane/server/db/pagination.js.map +1 -1
  576. package/dist/data-plane/server/db/tables/actor-block.d.ts +1 -1
  577. package/dist/data-plane/server/db/tables/actor-block.d.ts.map +1 -1
  578. package/dist/data-plane/server/db/tables/actor-block.js.map +1 -1
  579. package/dist/data-plane/server/db/tables/actor.d.ts +1 -1
  580. package/dist/data-plane/server/db/tables/actor.d.ts.map +1 -1
  581. package/dist/data-plane/server/db/tables/actor.js.map +1 -1
  582. package/dist/data-plane/server/db/tables/did-cache.d.ts +1 -1
  583. package/dist/data-plane/server/db/tables/did-cache.d.ts.map +1 -1
  584. package/dist/data-plane/server/db/tables/did-cache.js.map +1 -1
  585. package/dist/data-plane/server/db/tables/feed-generator.d.ts +1 -1
  586. package/dist/data-plane/server/db/tables/feed-generator.d.ts.map +1 -1
  587. package/dist/data-plane/server/db/tables/feed-generator.js.map +1 -1
  588. package/dist/data-plane/server/db/tables/follow.d.ts +1 -1
  589. package/dist/data-plane/server/db/tables/follow.d.ts.map +1 -1
  590. package/dist/data-plane/server/db/tables/follow.js.map +1 -1
  591. package/dist/data-plane/server/db/tables/labeler.d.ts +1 -1
  592. package/dist/data-plane/server/db/tables/labeler.d.ts.map +1 -1
  593. package/dist/data-plane/server/db/tables/labeler.js.map +1 -1
  594. package/dist/data-plane/server/db/tables/like.d.ts +1 -1
  595. package/dist/data-plane/server/db/tables/like.d.ts.map +1 -1
  596. package/dist/data-plane/server/db/tables/like.js.map +1 -1
  597. package/dist/data-plane/server/db/tables/list-block.d.ts +1 -1
  598. package/dist/data-plane/server/db/tables/list-block.d.ts.map +1 -1
  599. package/dist/data-plane/server/db/tables/list-block.js.map +1 -1
  600. package/dist/data-plane/server/db/tables/list-item.d.ts +1 -1
  601. package/dist/data-plane/server/db/tables/list-item.d.ts.map +1 -1
  602. package/dist/data-plane/server/db/tables/list-item.js.map +1 -1
  603. package/dist/data-plane/server/db/tables/list.d.ts +1 -1
  604. package/dist/data-plane/server/db/tables/list.d.ts.map +1 -1
  605. package/dist/data-plane/server/db/tables/list.js.map +1 -1
  606. package/dist/data-plane/server/db/tables/notification.d.ts +1 -1
  607. package/dist/data-plane/server/db/tables/notification.d.ts.map +1 -1
  608. package/dist/data-plane/server/db/tables/notification.js.map +1 -1
  609. package/dist/data-plane/server/db/tables/post-agg.d.ts +1 -1
  610. package/dist/data-plane/server/db/tables/post-agg.d.ts.map +1 -1
  611. package/dist/data-plane/server/db/tables/post-agg.js.map +1 -1
  612. package/dist/data-plane/server/db/tables/post.d.ts +1 -1
  613. package/dist/data-plane/server/db/tables/post.d.ts.map +1 -1
  614. package/dist/data-plane/server/db/tables/post.js.map +1 -1
  615. package/dist/data-plane/server/db/tables/profile-agg.d.ts +1 -1
  616. package/dist/data-plane/server/db/tables/profile-agg.d.ts.map +1 -1
  617. package/dist/data-plane/server/db/tables/profile-agg.js.map +1 -1
  618. package/dist/data-plane/server/db/tables/quote.d.ts +1 -1
  619. package/dist/data-plane/server/db/tables/quote.d.ts.map +1 -1
  620. package/dist/data-plane/server/db/tables/quote.js.map +1 -1
  621. package/dist/data-plane/server/db/tables/record.d.ts +1 -1
  622. package/dist/data-plane/server/db/tables/record.d.ts.map +1 -1
  623. package/dist/data-plane/server/db/tables/record.js.map +1 -1
  624. package/dist/data-plane/server/db/tables/repost.d.ts +1 -1
  625. package/dist/data-plane/server/db/tables/repost.d.ts.map +1 -1
  626. package/dist/data-plane/server/db/tables/repost.js.map +1 -1
  627. package/dist/data-plane/server/db/tables/starter-pack.d.ts +1 -1
  628. package/dist/data-plane/server/db/tables/starter-pack.d.ts.map +1 -1
  629. package/dist/data-plane/server/db/tables/starter-pack.js.map +1 -1
  630. package/dist/data-plane/server/db/tables/verification.d.ts +1 -1
  631. package/dist/data-plane/server/db/tables/verification.d.ts.map +1 -1
  632. package/dist/data-plane/server/db/tables/verification.js.map +1 -1
  633. package/dist/data-plane/server/db/types.d.ts +1 -1
  634. package/dist/data-plane/server/db/types.d.ts.map +1 -1
  635. package/dist/data-plane/server/db/types.js.map +1 -1
  636. package/dist/data-plane/server/db/util.d.ts +2 -2
  637. package/dist/data-plane/server/db/util.d.ts.map +1 -1
  638. package/dist/data-plane/server/db/util.js.map +1 -1
  639. package/dist/data-plane/server/index.d.ts +2 -2
  640. package/dist/data-plane/server/index.d.ts.map +1 -1
  641. package/dist/data-plane/server/index.js.map +1 -1
  642. package/dist/data-plane/server/indexing/index.d.ts +5 -5
  643. package/dist/data-plane/server/indexing/index.d.ts.map +1 -1
  644. package/dist/data-plane/server/indexing/index.js.map +1 -1
  645. package/dist/data-plane/server/indexing/plugins/block.d.ts +2 -2
  646. package/dist/data-plane/server/indexing/plugins/block.d.ts.map +1 -1
  647. package/dist/data-plane/server/indexing/plugins/block.js.map +1 -1
  648. package/dist/data-plane/server/indexing/plugins/chat-declaration.d.ts +2 -2
  649. package/dist/data-plane/server/indexing/plugins/chat-declaration.d.ts.map +1 -1
  650. package/dist/data-plane/server/indexing/plugins/chat-declaration.js.map +1 -1
  651. package/dist/data-plane/server/indexing/plugins/feed-generator.d.ts +2 -2
  652. package/dist/data-plane/server/indexing/plugins/feed-generator.d.ts.map +1 -1
  653. package/dist/data-plane/server/indexing/plugins/feed-generator.js.map +1 -1
  654. package/dist/data-plane/server/indexing/plugins/follow.d.ts +2 -2
  655. package/dist/data-plane/server/indexing/plugins/follow.d.ts.map +1 -1
  656. package/dist/data-plane/server/indexing/plugins/follow.js.map +1 -1
  657. package/dist/data-plane/server/indexing/plugins/germ-declaration.d.ts +2 -2
  658. package/dist/data-plane/server/indexing/plugins/germ-declaration.d.ts.map +1 -1
  659. package/dist/data-plane/server/indexing/plugins/germ-declaration.js.map +1 -1
  660. package/dist/data-plane/server/indexing/plugins/labeler.d.ts +2 -2
  661. package/dist/data-plane/server/indexing/plugins/labeler.d.ts.map +1 -1
  662. package/dist/data-plane/server/indexing/plugins/labeler.js.map +1 -1
  663. package/dist/data-plane/server/indexing/plugins/like.d.ts +2 -2
  664. package/dist/data-plane/server/indexing/plugins/like.d.ts.map +1 -1
  665. package/dist/data-plane/server/indexing/plugins/like.js.map +1 -1
  666. package/dist/data-plane/server/indexing/plugins/list-block.d.ts +2 -2
  667. package/dist/data-plane/server/indexing/plugins/list-block.d.ts.map +1 -1
  668. package/dist/data-plane/server/indexing/plugins/list-block.js.map +1 -1
  669. package/dist/data-plane/server/indexing/plugins/list-item.d.ts +2 -2
  670. package/dist/data-plane/server/indexing/plugins/list-item.d.ts.map +1 -1
  671. package/dist/data-plane/server/indexing/plugins/list-item.js.map +1 -1
  672. package/dist/data-plane/server/indexing/plugins/list.d.ts +2 -2
  673. package/dist/data-plane/server/indexing/plugins/list.d.ts.map +1 -1
  674. package/dist/data-plane/server/indexing/plugins/list.js.map +1 -1
  675. package/dist/data-plane/server/indexing/plugins/notif-declaration.d.ts +2 -2
  676. package/dist/data-plane/server/indexing/plugins/notif-declaration.d.ts.map +1 -1
  677. package/dist/data-plane/server/indexing/plugins/notif-declaration.js.map +1 -1
  678. package/dist/data-plane/server/indexing/plugins/post-gate.d.ts +2 -2
  679. package/dist/data-plane/server/indexing/plugins/post-gate.d.ts.map +1 -1
  680. package/dist/data-plane/server/indexing/plugins/post-gate.js.map +1 -1
  681. package/dist/data-plane/server/indexing/plugins/post.d.ts +4 -4
  682. package/dist/data-plane/server/indexing/plugins/post.d.ts.map +1 -1
  683. package/dist/data-plane/server/indexing/plugins/post.js.map +1 -1
  684. package/dist/data-plane/server/indexing/plugins/profile.d.ts +2 -2
  685. package/dist/data-plane/server/indexing/plugins/profile.d.ts.map +1 -1
  686. package/dist/data-plane/server/indexing/plugins/profile.js.map +1 -1
  687. package/dist/data-plane/server/indexing/plugins/repost.d.ts +2 -2
  688. package/dist/data-plane/server/indexing/plugins/repost.d.ts.map +1 -1
  689. package/dist/data-plane/server/indexing/plugins/repost.js.map +1 -1
  690. package/dist/data-plane/server/indexing/plugins/starter-pack.d.ts +2 -2
  691. package/dist/data-plane/server/indexing/plugins/starter-pack.d.ts.map +1 -1
  692. package/dist/data-plane/server/indexing/plugins/starter-pack.js.map +1 -1
  693. package/dist/data-plane/server/indexing/plugins/status.d.ts +2 -2
  694. package/dist/data-plane/server/indexing/plugins/status.d.ts.map +1 -1
  695. package/dist/data-plane/server/indexing/plugins/status.js.map +1 -1
  696. package/dist/data-plane/server/indexing/plugins/thread-gate.d.ts +2 -2
  697. package/dist/data-plane/server/indexing/plugins/thread-gate.d.ts.map +1 -1
  698. package/dist/data-plane/server/indexing/plugins/thread-gate.js.map +1 -1
  699. package/dist/data-plane/server/indexing/plugins/verification.d.ts +2 -2
  700. package/dist/data-plane/server/indexing/plugins/verification.d.ts.map +1 -1
  701. package/dist/data-plane/server/indexing/plugins/verification.js.map +1 -1
  702. package/dist/data-plane/server/indexing/processor.d.ts +6 -6
  703. package/dist/data-plane/server/indexing/processor.d.ts.map +1 -1
  704. package/dist/data-plane/server/indexing/processor.js +1 -1
  705. package/dist/data-plane/server/indexing/processor.js.map +1 -1
  706. package/dist/data-plane/server/routes/activity-subscription.d.ts +3 -3
  707. package/dist/data-plane/server/routes/activity-subscription.d.ts.map +1 -1
  708. package/dist/data-plane/server/routes/activity-subscription.js.map +1 -1
  709. package/dist/data-plane/server/routes/blocks.d.ts +3 -3
  710. package/dist/data-plane/server/routes/blocks.d.ts.map +1 -1
  711. package/dist/data-plane/server/routes/blocks.js.map +1 -1
  712. package/dist/data-plane/server/routes/bookmarks.d.ts +3 -3
  713. package/dist/data-plane/server/routes/bookmarks.d.ts.map +1 -1
  714. package/dist/data-plane/server/routes/bookmarks.js.map +1 -1
  715. package/dist/data-plane/server/routes/drafts.d.ts +3 -3
  716. package/dist/data-plane/server/routes/drafts.d.ts.map +1 -1
  717. package/dist/data-plane/server/routes/drafts.js.map +1 -1
  718. package/dist/data-plane/server/routes/feed-gens.d.ts +3 -3
  719. package/dist/data-plane/server/routes/feed-gens.d.ts.map +1 -1
  720. package/dist/data-plane/server/routes/feed-gens.js.map +1 -1
  721. package/dist/data-plane/server/routes/feeds.d.ts +3 -3
  722. package/dist/data-plane/server/routes/feeds.d.ts.map +1 -1
  723. package/dist/data-plane/server/routes/feeds.js.map +1 -1
  724. package/dist/data-plane/server/routes/follows.d.ts +3 -3
  725. package/dist/data-plane/server/routes/follows.d.ts.map +1 -1
  726. package/dist/data-plane/server/routes/follows.js.map +1 -1
  727. package/dist/data-plane/server/routes/identity.d.ts +4 -4
  728. package/dist/data-plane/server/routes/identity.d.ts.map +1 -1
  729. package/dist/data-plane/server/routes/identity.js +1 -1
  730. package/dist/data-plane/server/routes/identity.js.map +1 -1
  731. package/dist/data-plane/server/routes/index.d.ts +3 -3
  732. package/dist/data-plane/server/routes/index.d.ts.map +1 -1
  733. package/dist/data-plane/server/routes/index.js.map +1 -1
  734. package/dist/data-plane/server/routes/interactions.d.ts +3 -3
  735. package/dist/data-plane/server/routes/interactions.d.ts.map +1 -1
  736. package/dist/data-plane/server/routes/interactions.js.map +1 -1
  737. package/dist/data-plane/server/routes/labels.d.ts +3 -3
  738. package/dist/data-plane/server/routes/labels.d.ts.map +1 -1
  739. package/dist/data-plane/server/routes/labels.js.map +1 -1
  740. package/dist/data-plane/server/routes/likes.d.ts +3 -3
  741. package/dist/data-plane/server/routes/likes.d.ts.map +1 -1
  742. package/dist/data-plane/server/routes/likes.js.map +1 -1
  743. package/dist/data-plane/server/routes/lists.d.ts +3 -3
  744. package/dist/data-plane/server/routes/lists.d.ts.map +1 -1
  745. package/dist/data-plane/server/routes/lists.js.map +1 -1
  746. package/dist/data-plane/server/routes/moderation.d.ts +3 -3
  747. package/dist/data-plane/server/routes/moderation.d.ts.map +1 -1
  748. package/dist/data-plane/server/routes/moderation.js.map +1 -1
  749. package/dist/data-plane/server/routes/mutes.d.ts +3 -3
  750. package/dist/data-plane/server/routes/mutes.d.ts.map +1 -1
  751. package/dist/data-plane/server/routes/mutes.js.map +1 -1
  752. package/dist/data-plane/server/routes/notifs.d.ts +4 -4
  753. package/dist/data-plane/server/routes/notifs.d.ts.map +1 -1
  754. package/dist/data-plane/server/routes/notifs.js.map +1 -1
  755. package/dist/data-plane/server/routes/profile.d.ts +3 -3
  756. package/dist/data-plane/server/routes/profile.d.ts.map +1 -1
  757. package/dist/data-plane/server/routes/profile.js +1 -1
  758. package/dist/data-plane/server/routes/profile.js.map +1 -1
  759. package/dist/data-plane/server/routes/quotes.d.ts +3 -3
  760. package/dist/data-plane/server/routes/quotes.d.ts.map +1 -1
  761. package/dist/data-plane/server/routes/quotes.js.map +1 -1
  762. package/dist/data-plane/server/routes/records.d.ts +3 -3
  763. package/dist/data-plane/server/routes/records.d.ts.map +1 -1
  764. package/dist/data-plane/server/routes/records.js.map +1 -1
  765. package/dist/data-plane/server/routes/relationships.d.ts +3 -3
  766. package/dist/data-plane/server/routes/relationships.d.ts.map +1 -1
  767. package/dist/data-plane/server/routes/relationships.js.map +1 -1
  768. package/dist/data-plane/server/routes/reposts.d.ts +3 -3
  769. package/dist/data-plane/server/routes/reposts.d.ts.map +1 -1
  770. package/dist/data-plane/server/routes/reposts.js.map +1 -1
  771. package/dist/data-plane/server/routes/search.d.ts +3 -3
  772. package/dist/data-plane/server/routes/search.d.ts.map +1 -1
  773. package/dist/data-plane/server/routes/search.js.map +1 -1
  774. package/dist/data-plane/server/routes/site-standard.d.ts +3 -3
  775. package/dist/data-plane/server/routes/site-standard.d.ts.map +1 -1
  776. package/dist/data-plane/server/routes/site-standard.js.map +1 -1
  777. package/dist/data-plane/server/routes/sitemap.d.ts +2 -2
  778. package/dist/data-plane/server/routes/sitemap.d.ts.map +1 -1
  779. package/dist/data-plane/server/routes/sitemap.js.map +1 -1
  780. package/dist/data-plane/server/routes/starter-packs.d.ts +3 -3
  781. package/dist/data-plane/server/routes/starter-packs.d.ts.map +1 -1
  782. package/dist/data-plane/server/routes/starter-packs.js.map +1 -1
  783. package/dist/data-plane/server/routes/suggestions.d.ts +3 -3
  784. package/dist/data-plane/server/routes/suggestions.d.ts.map +1 -1
  785. package/dist/data-plane/server/routes/suggestions.js.map +1 -1
  786. package/dist/data-plane/server/routes/sync.d.ts +3 -3
  787. package/dist/data-plane/server/routes/sync.d.ts.map +1 -1
  788. package/dist/data-plane/server/routes/sync.js.map +1 -1
  789. package/dist/data-plane/server/routes/threads.d.ts +3 -3
  790. package/dist/data-plane/server/routes/threads.d.ts.map +1 -1
  791. package/dist/data-plane/server/routes/threads.js.map +1 -1
  792. package/dist/data-plane/server/subscription.d.ts +2 -2
  793. package/dist/data-plane/server/subscription.d.ts.map +1 -1
  794. package/dist/data-plane/server/subscription.js +1 -1
  795. package/dist/data-plane/server/subscription.js.map +1 -1
  796. package/dist/data-plane/server/util.d.ts +2 -2
  797. package/dist/data-plane/server/util.d.ts.map +1 -1
  798. package/dist/data-plane/server/util.js.map +1 -1
  799. package/dist/error.d.ts +1 -1
  800. package/dist/error.d.ts.map +1 -1
  801. package/dist/error.js.map +1 -1
  802. package/dist/etcd.d.ts +1 -1
  803. package/dist/etcd.d.ts.map +1 -1
  804. package/dist/etcd.js.map +1 -1
  805. package/dist/feature-gates/index.d.ts +1 -1
  806. package/dist/feature-gates/index.d.ts.map +1 -1
  807. package/dist/feature-gates/index.js +1 -0
  808. package/dist/feature-gates/index.js.map +1 -1
  809. package/dist/feature-gates/types.d.ts +1 -1
  810. package/dist/feature-gates/types.d.ts.map +1 -1
  811. package/dist/feature-gates/types.js.map +1 -1
  812. package/dist/feature-gates/utils.d.ts +2 -2
  813. package/dist/feature-gates/utils.d.ts.map +1 -1
  814. package/dist/feature-gates/utils.js.map +1 -1
  815. package/dist/hydration/actor.d.ts +7 -5
  816. package/dist/hydration/actor.d.ts.map +1 -1
  817. package/dist/hydration/actor.js +2 -0
  818. package/dist/hydration/actor.js.map +1 -1
  819. package/dist/hydration/external.d.ts +4 -4
  820. package/dist/hydration/external.d.ts.map +1 -1
  821. package/dist/hydration/external.js +1 -1
  822. package/dist/hydration/external.js.map +1 -1
  823. package/dist/hydration/feed.d.ts +4 -4
  824. package/dist/hydration/feed.d.ts.map +1 -1
  825. package/dist/hydration/feed.js.map +1 -1
  826. package/dist/hydration/graph.d.ts +5 -5
  827. package/dist/hydration/graph.d.ts.map +1 -1
  828. package/dist/hydration/graph.js +1 -1
  829. package/dist/hydration/graph.js.map +1 -1
  830. package/dist/hydration/hydrator.d.ts +11 -11
  831. package/dist/hydration/hydrator.d.ts.map +1 -1
  832. package/dist/hydration/hydrator.js +1 -1
  833. package/dist/hydration/hydrator.js.map +1 -1
  834. package/dist/hydration/label.d.ts +5 -5
  835. package/dist/hydration/label.d.ts.map +1 -1
  836. package/dist/hydration/label.js +1 -1
  837. package/dist/hydration/label.js.map +1 -1
  838. package/dist/hydration/util.d.ts +3 -3
  839. package/dist/hydration/util.d.ts.map +1 -1
  840. package/dist/hydration/util.js.map +1 -1
  841. package/dist/image/invalidator.d.ts +1 -1
  842. package/dist/image/invalidator.d.ts.map +1 -1
  843. package/dist/image/invalidator.js.map +1 -1
  844. package/dist/image/server.d.ts +3 -3
  845. package/dist/image/server.d.ts.map +1 -1
  846. package/dist/image/server.js.map +1 -1
  847. package/dist/image/sharp.d.ts +2 -2
  848. package/dist/image/sharp.d.ts.map +1 -1
  849. package/dist/image/sharp.js.map +1 -1
  850. package/dist/image/uri.d.ts +2 -2
  851. package/dist/image/uri.d.ts.map +1 -1
  852. package/dist/image/uri.js.map +1 -1
  853. package/dist/index.d.ts +3 -3
  854. package/dist/index.d.ts.map +1 -1
  855. package/dist/index.js.map +1 -1
  856. package/dist/kws.d.ts +2 -2
  857. package/dist/kws.d.ts.map +1 -1
  858. package/dist/kws.js.map +1 -1
  859. package/dist/lexicons/app/bsky/actor/defs.defs.d.ts +6 -0
  860. package/dist/lexicons/app/bsky/actor/defs.defs.d.ts.map +1 -1
  861. package/dist/lexicons/app/bsky/actor/defs.defs.js +1 -0
  862. package/dist/lexicons/app/bsky/actor/defs.defs.js.map +1 -1
  863. package/dist/logger.d.ts +1 -1
  864. package/dist/logger.d.ts.map +1 -1
  865. package/dist/logger.js.map +1 -1
  866. package/dist/pipeline.d.ts +1 -1
  867. package/dist/pipeline.d.ts.map +1 -1
  868. package/dist/pipeline.js.map +1 -1
  869. package/dist/rolodex.d.ts +2 -2
  870. package/dist/rolodex.d.ts.map +1 -1
  871. package/dist/rolodex.js.map +1 -1
  872. package/dist/stash.d.ts +2 -2
  873. package/dist/stash.d.ts.map +1 -1
  874. package/dist/stash.js.map +1 -1
  875. package/dist/util/http.d.ts +1 -1
  876. package/dist/util/http.d.ts.map +1 -1
  877. package/dist/util/http.js.map +1 -1
  878. package/dist/util/standard-site.d.ts +1 -1
  879. package/dist/util/standard-site.d.ts.map +1 -1
  880. package/dist/util/standard-site.js.map +1 -1
  881. package/dist/util/uris.d.ts +2 -2
  882. package/dist/util/uris.d.ts.map +1 -1
  883. package/dist/util/uris.js.map +1 -1
  884. package/dist/util.d.ts +1 -1
  885. package/dist/util.d.ts.map +1 -1
  886. package/dist/util.js.map +1 -1
  887. package/dist/views/index.d.ts +11 -11
  888. package/dist/views/index.d.ts.map +1 -1
  889. package/dist/views/index.js.map +1 -1
  890. package/dist/views/threads-v2.d.ts +3 -3
  891. package/dist/views/threads-v2.d.ts.map +1 -1
  892. package/dist/views/threads-v2.js.map +1 -1
  893. package/dist/views/types.d.ts +1 -1
  894. package/dist/views/types.d.ts.map +1 -1
  895. package/dist/views/types.js.map +1 -1
  896. package/dist/views/util.d.ts +2 -2
  897. package/dist/views/util.d.ts.map +1 -1
  898. package/dist/views/util.js.map +1 -1
  899. package/package.json +14 -14
@@ -1 +1 @@
1
- {"version":3,"file":"hosts.js","sourceRoot":"","sources":["../../../src/data-plane/client/hosts.ts"],"names":[],"mappings":"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","sourcesContent":["import { Etcd3 } from 'etcd3'\nimport { EtcdMap } from '../../etcd.js'\nimport { dataplaneLogger as logger } from '../../logger.js'\n\n/**\n * Interface for a reactive list of hosts, i.e. for use with the dataplane client.\n */\nexport interface HostList {\n get: () => Iterable<string>\n onUpdate(handler: HostListHandler): void\n}\n\ntype HostListHandler = (hosts: Iterable<string>) => void\n\n/**\n * Maintains a reactive HostList based on a simple setter.\n */\nexport class BasicHostList implements HostList {\n private hosts: Iterable<string>\n private handlers: HostListHandler[] = []\n\n constructor(hosts: Iterable<string>) {\n this.hosts = hosts\n }\n\n get() {\n return this.hosts\n }\n\n set(hosts: Iterable<string>) {\n this.hosts = hosts\n this.update()\n }\n\n private update() {\n for (const handler of this.handlers) {\n handler(this.hosts)\n }\n }\n\n onUpdate(handler: HostListHandler) {\n this.handlers.push(handler)\n }\n}\n\n/**\n * Maintains a reactive HostList based on etcd key values under a given key prefix.\n * When fallback is provided, ensures that this fallback is used whenever no hosts are available.\n */\nexport class EtcdHostList implements HostList {\n private kv: EtcdMap\n private inner = new BasicHostList(new Set())\n private fallback: Set<string>\n\n constructor(etcd: Etcd3, prefix: string, fallback?: string[]) {\n this.fallback = new Set(fallback)\n this.kv = new EtcdMap(etcd, prefix)\n this.update() // init fallback if necessary\n this.kv.watcher.on('connected', (res) => {\n logger.warn(\n { watcherId: this.kv.watcher.id, header: res.header },\n 'EtcdHostList connected',\n )\n })\n this.kv.watcher.on('disconnected', (err) => {\n logger.warn(\n { watcherId: this.kv.watcher.id, err },\n 'EtcdHostList disconnected',\n )\n })\n this.kv.watcher.on('error', (err) => {\n logger.error({ watcherId: this.kv.watcher.id, err }, 'EtcdHostList error')\n })\n }\n\n async connect() {\n await this.kv.connect()\n this.update()\n this.kv.onUpdate(() => this.update())\n }\n\n get() {\n return this.inner.get()\n }\n\n private update() {\n const hosts = new Set<string>()\n for (const host of this.kv.values()) {\n if (URL.canParse(host)) {\n hosts.add(host)\n }\n }\n if (hosts.size) {\n this.inner.set(hosts)\n } else if (this.fallback.size) {\n this.inner.set(this.fallback)\n }\n }\n\n onUpdate(handler: HostListHandler) {\n this.inner.onUpdate(handler)\n }\n}\n"]}
1
+ {"version":3,"file":"hosts.js","sourceRoot":"","sources":["../../../src/data-plane/client/hosts.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Etcd3 } from 'etcd3'\nimport { EtcdMap } from '../../etcd.js'\nimport { dataplaneLogger as logger } from '../../logger.js'\n\n/**\n * Interface for a reactive list of hosts, i.e. for use with the dataplane client.\n */\nexport interface HostList {\n get: () => Iterable<string>\n onUpdate(handler: HostListHandler): void\n}\n\ntype HostListHandler = (hosts: Iterable<string>) => void\n\n/**\n * Maintains a reactive HostList based on a simple setter.\n */\nexport class BasicHostList implements HostList {\n private hosts: Iterable<string>\n private handlers: HostListHandler[] = []\n\n constructor(hosts: Iterable<string>) {\n this.hosts = hosts\n }\n\n get() {\n return this.hosts\n }\n\n set(hosts: Iterable<string>) {\n this.hosts = hosts\n this.update()\n }\n\n private update() {\n for (const handler of this.handlers) {\n handler(this.hosts)\n }\n }\n\n onUpdate(handler: HostListHandler) {\n this.handlers.push(handler)\n }\n}\n\n/**\n * Maintains a reactive HostList based on etcd key values under a given key prefix.\n * When fallback is provided, ensures that this fallback is used whenever no hosts are available.\n */\nexport class EtcdHostList implements HostList {\n private kv: EtcdMap\n private inner = new BasicHostList(new Set())\n private fallback: Set<string>\n\n constructor(etcd: Etcd3, prefix: string, fallback?: string[]) {\n this.fallback = new Set(fallback)\n this.kv = new EtcdMap(etcd, prefix)\n this.update() // init fallback if necessary\n this.kv.watcher.on('connected', (res) => {\n logger.warn(\n { watcherId: this.kv.watcher.id, header: res.header },\n 'EtcdHostList connected',\n )\n })\n this.kv.watcher.on('disconnected', (err) => {\n logger.warn(\n { watcherId: this.kv.watcher.id, err },\n 'EtcdHostList disconnected',\n )\n })\n this.kv.watcher.on('error', (err) => {\n logger.error({ watcherId: this.kv.watcher.id, err }, 'EtcdHostList error')\n })\n }\n\n async connect() {\n await this.kv.connect()\n this.update()\n this.kv.onUpdate(() => this.update())\n }\n\n get() {\n return this.inner.get()\n }\n\n private update() {\n const hosts = new Set<string>()\n for (const host of this.kv.values()) {\n if (URL.canParse(host)) {\n hosts.add(host)\n }\n }\n if (hosts.size) {\n this.inner.set(hosts)\n } else if (this.fallback.size) {\n this.inner.set(this.fallback)\n }\n }\n\n onUpdate(handler: HostListHandler) {\n this.inner.onUpdate(handler)\n }\n}\n"]}
@@ -1,6 +1,6 @@
1
- import { Code, PromiseClient } from '@connectrpc/connect';
1
+ import { Code, type PromiseClient } from '@connectrpc/connect';
2
2
  import { Service } from '../../proto/bsky_connect.js';
3
- import { HostList } from './hosts.js';
3
+ import type { HostList } from './hosts.js';
4
4
  export * from './hosts.js';
5
5
  export * from './util.js';
6
6
  export type DataPlaneClient = PromiseClient<typeof Service>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/data-plane/client/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,IAAI,EAEJ,aAAa,EAGd,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAGrC,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AAEzB,MAAM,MAAM,eAAe,GAAG,aAAa,CAAC,OAAO,OAAO,CAAC,CAAA;AAC3D,KAAK,WAAW,GAAG,KAAK,GAAG,GAAG,CAAA;AAG9B,eAAO,MAAM,qBAAqB,aACtB,QAAQ,QACZ;IAAE,WAAW,CAAC,EAAE,WAAW,CAAC;IAAC,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAAE,KA6B3D,eACP,CAAA;AAED,OAAO,EAAE,IAAI,EAAE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/data-plane/client/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,IAAI,EAEJ,KAAK,aAAa,EAGnB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAA;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAG1C,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AAEzB,MAAM,MAAM,eAAe,GAAG,aAAa,CAAC,OAAO,OAAO,CAAC,CAAA;AAC3D,KAAK,WAAW,GAAG,KAAK,GAAG,GAAG,CAAA;AAG9B,eAAO,MAAM,qBAAqB,aACtB,QAAQ,QACZ;IAAE,WAAW,CAAC,EAAE,WAAW,CAAC;IAAC,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAAE,KA6B3D,eACP,CAAA;AAED,OAAO,EAAE,IAAI,EAAE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/data-plane/client/index.ts"],"names":[],"mappings":"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","sourcesContent":["import assert from 'node:assert'\nimport { randomInt } from 'node:crypto'\nimport {\n Code,\n ConnectError,\n PromiseClient,\n createPromiseClient,\n makeAnyClient,\n} from '@connectrpc/connect'\nimport { createGrpcTransport } from '@connectrpc/connect-node'\nimport { Service } from '../../proto/bsky_connect.js'\nimport { HostList } from './hosts.js'\nimport { callerInterceptor } from './util.js'\n\nexport * from './hosts.js'\nexport * from './util.js'\n\nexport type DataPlaneClient = PromiseClient<typeof Service>\ntype HttpVersion = '1.1' | '2'\nconst MAX_RETRIES = 3\n\nexport const createDataPlaneClient = (\n hostList: HostList,\n opts: { httpVersion?: HttpVersion; rejectUnauthorized?: boolean },\n) => {\n const clients = new DataPlaneClients(hostList, opts)\n return makeAnyClient(Service, (method) => {\n return async (...args) => {\n let tries = 0\n let error: unknown\n let remainingClients = clients.get()\n while (tries < MAX_RETRIES) {\n const client = randomElement(remainingClients)\n assert(client, 'no clients available')\n try {\n return await client[method.localName](...args)\n } catch (err) {\n if (\n err instanceof ConnectError &&\n (err.code === Code.Unavailable || err.code === Code.Aborted)\n ) {\n tries++\n error = err\n remainingClients = getRemainingClients(remainingClients, client)\n } else {\n throw err\n }\n }\n }\n assert(error)\n throw error\n }\n }) as DataPlaneClient\n}\n\nexport { Code }\n\n/**\n * Uses a reactive HostList in order to maintain a pool of DataPlaneClients.\n * Each DataPlaneClient is cached per host so that it maintains connections\n * and other internal state when the underlying HostList is updated.\n */\nclass DataPlaneClients {\n private clients: DataPlaneClient[] = []\n private clientsByHost = new Map<string, DataPlaneClient>()\n\n constructor(\n private hostList: HostList,\n private clientOpts: {\n httpVersion?: HttpVersion\n rejectUnauthorized?: boolean\n },\n ) {\n this.refresh()\n this.hostList.onUpdate(() => this.refresh())\n }\n\n get(): readonly DataPlaneClient[] {\n return this.clients\n }\n\n private refresh() {\n this.clients = []\n for (const host of this.hostList.get()) {\n let client = this.clientsByHost.get(host)\n if (!client) {\n client = this.createClient(host)\n this.clientsByHost.set(host, client)\n }\n this.clients.push(client)\n }\n }\n\n private createClient(host: string) {\n return createBaseClient(host, this.clientOpts)\n }\n}\n\nconst createBaseClient = (\n baseUrl: string,\n opts: { httpVersion?: HttpVersion; rejectUnauthorized?: boolean },\n): DataPlaneClient => {\n const { httpVersion = '2', rejectUnauthorized = true } = opts\n const transport = createGrpcTransport({\n baseUrl,\n httpVersion,\n acceptCompression: [],\n nodeOptions: { rejectUnauthorized },\n interceptors: [callerInterceptor('appview')],\n })\n return createPromiseClient(Service, transport)\n}\n\nconst getRemainingClients = (\n clients: readonly DataPlaneClient[],\n lastClient: DataPlaneClient,\n) => {\n if (clients.length < 2) return clients // no clients to choose from\n return clients.filter((c) => c !== lastClient)\n}\n\nconst randomElement = <T>(arr: readonly T[]): T | undefined => {\n if (arr.length === 0) return\n return arr[randomInt(arr.length)]\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/data-plane/client/index.ts"],"names":[],"mappings":"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","sourcesContent":["import assert from 'node:assert'\nimport { randomInt } from 'node:crypto'\nimport {\n Code,\n ConnectError,\n type PromiseClient,\n createPromiseClient,\n makeAnyClient,\n} from '@connectrpc/connect'\nimport { createGrpcTransport } from '@connectrpc/connect-node'\nimport { Service } from '../../proto/bsky_connect.js'\nimport type { HostList } from './hosts.js'\nimport { callerInterceptor } from './util.js'\n\nexport * from './hosts.js'\nexport * from './util.js'\n\nexport type DataPlaneClient = PromiseClient<typeof Service>\ntype HttpVersion = '1.1' | '2'\nconst MAX_RETRIES = 3\n\nexport const createDataPlaneClient = (\n hostList: HostList,\n opts: { httpVersion?: HttpVersion; rejectUnauthorized?: boolean },\n) => {\n const clients = new DataPlaneClients(hostList, opts)\n return makeAnyClient(Service, (method) => {\n return async (...args) => {\n let tries = 0\n let error: unknown\n let remainingClients = clients.get()\n while (tries < MAX_RETRIES) {\n const client = randomElement(remainingClients)\n assert(client, 'no clients available')\n try {\n return await client[method.localName](...args)\n } catch (err) {\n if (\n err instanceof ConnectError &&\n (err.code === Code.Unavailable || err.code === Code.Aborted)\n ) {\n tries++\n error = err\n remainingClients = getRemainingClients(remainingClients, client)\n } else {\n throw err\n }\n }\n }\n assert(error)\n throw error\n }\n }) as DataPlaneClient\n}\n\nexport { Code }\n\n/**\n * Uses a reactive HostList in order to maintain a pool of DataPlaneClients.\n * Each DataPlaneClient is cached per host so that it maintains connections\n * and other internal state when the underlying HostList is updated.\n */\nclass DataPlaneClients {\n private clients: DataPlaneClient[] = []\n private clientsByHost = new Map<string, DataPlaneClient>()\n\n constructor(\n private hostList: HostList,\n private clientOpts: {\n httpVersion?: HttpVersion\n rejectUnauthorized?: boolean\n },\n ) {\n this.refresh()\n this.hostList.onUpdate(() => this.refresh())\n }\n\n get(): readonly DataPlaneClient[] {\n return this.clients\n }\n\n private refresh() {\n this.clients = []\n for (const host of this.hostList.get()) {\n let client = this.clientsByHost.get(host)\n if (!client) {\n client = this.createClient(host)\n this.clientsByHost.set(host, client)\n }\n this.clients.push(client)\n }\n }\n\n private createClient(host: string) {\n return createBaseClient(host, this.clientOpts)\n }\n}\n\nconst createBaseClient = (\n baseUrl: string,\n opts: { httpVersion?: HttpVersion; rejectUnauthorized?: boolean },\n): DataPlaneClient => {\n const { httpVersion = '2', rejectUnauthorized = true } = opts\n const transport = createGrpcTransport({\n baseUrl,\n httpVersion,\n acceptCompression: [],\n nodeOptions: { rejectUnauthorized },\n interceptors: [callerInterceptor('appview')],\n })\n return createPromiseClient(Service, transport)\n}\n\nconst getRemainingClients = (\n clients: readonly DataPlaneClient[],\n lastClient: DataPlaneClient,\n) => {\n if (clients.length < 2) return clients // no clients to choose from\n return clients.filter((c) => c !== lastClient)\n}\n\nconst randomElement = <T>(arr: readonly T[]): T | undefined => {\n if (arr.length === 0) return\n return arr[randomInt(arr.length)]\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { Code, ConnectError, Interceptor } from '@connectrpc/connect';
1
+ import { type Code, ConnectError, type Interceptor } from '@connectrpc/connect';
2
2
  export declare const callerInterceptor: (caller: string) => Interceptor;
3
3
  export declare const isDataplaneError: (err: unknown, code?: Code) => err is ConnectError;
4
4
  export declare const unpackIdentityServices: (servicesBytes: Uint8Array) => UnpackedServices;
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/data-plane/client/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAIrE,eAAO,MAAM,iBAAiB,WACnB,MAAM,KAAG,WAKjB,CAAA;AAEH,eAAO,MAAM,gBAAgB,QACtB,OAAO,SACL,IAAI,KACV,GAAG,IAAI,YAKT,CAAA;AAED,eAAO,MAAM,sBAAsB,kBAAmB,UAAU,qBAI/D,CAAA;AAED,eAAO,MAAM,kBAAkB,cAAe,UAAU,iBAIvD,CAAA;AAED,eAAO,MAAM,kBAAkB,aACnB,gBAAgB,QACpB;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,uBAOnC,CAAA;AAED,eAAO,MAAM,cAAc,SAAU,YAAY,QAAQ;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,uBAQtE,CAAA;AAED,KAAK,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA;AAErE,KAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,kBAAkB,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/data-plane/client/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,EAAE,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAI/E,eAAO,MAAM,iBAAiB,WACnB,MAAM,KAAG,WAKjB,CAAA;AAEH,eAAO,MAAM,gBAAgB,QACtB,OAAO,SACL,IAAI,KACV,GAAG,IAAI,YAKT,CAAA;AAED,eAAO,MAAM,sBAAsB,kBAAmB,UAAU,qBAI/D,CAAA;AAED,eAAO,MAAM,kBAAkB,cAAe,UAAU,iBAIvD,CAAA;AAED,eAAO,MAAM,kBAAkB,aACnB,gBAAgB,QACpB;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,uBAOnC,CAAA;AAED,eAAO,MAAM,cAAc,SAAU,YAAY,QAAQ;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,uBAQtE,CAAA;AAED,KAAK,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA;AAErE,KAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,kBAAkB,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/data-plane/client/util.ts"],"names":[],"mappings":"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","sourcesContent":["import { Code, ConnectError, Interceptor } from '@connectrpc/connect'\nimport * as ui8 from 'uint8arrays'\nimport { getDidKeyFromMultibase } from '@atproto/identity'\n\nexport const callerInterceptor =\n (caller: string): Interceptor =>\n (next) =>\n (req) => {\n req.header.set('x-atlantis-caller', caller)\n return next(req)\n }\n\nexport const isDataplaneError = (\n err: unknown,\n code?: Code,\n): err is ConnectError => {\n if (err instanceof ConnectError) {\n return !code || err.code === code\n }\n return false\n}\n\nexport const unpackIdentityServices = (servicesBytes: Uint8Array) => {\n const servicesStr = ui8.toString(servicesBytes, 'utf8')\n if (!servicesStr) return {}\n return JSON.parse(servicesStr) as UnpackedServices\n}\n\nexport const unpackIdentityKeys = (keysBytes: Uint8Array) => {\n const keysStr = ui8.toString(keysBytes, 'utf8')\n if (!keysStr) return {}\n return JSON.parse(keysStr) as UnpackedKeys\n}\n\nexport const getServiceEndpoint = (\n services: UnpackedServices,\n opts: { id: string; type: string },\n) => {\n const endpoint =\n services[opts.id] &&\n services[opts.id].Type === opts.type &&\n validateUrl(services[opts.id].URL)\n return endpoint || undefined\n}\n\nexport const getKeyAsDidKey = (keys: UnpackedKeys, opts: { id: string }) => {\n const key =\n keys[opts.id] &&\n getDidKeyFromMultibase({\n type: keys[opts.id].Type,\n publicKeyMultibase: keys[opts.id].PublicKeyMultibase,\n })\n return key || undefined\n}\n\ntype UnpackedServices = Record<string, { Type: string; URL: string }>\n\ntype UnpackedKeys = Record<string, { Type: string; PublicKeyMultibase: string }>\n\nconst validateUrl = (urlStr: string): string | undefined => {\n let url\n try {\n url = new URL(urlStr)\n } catch {\n return undefined\n }\n if (!['http:', 'https:'].includes(url.protocol)) {\n return undefined\n } else if (!url.hostname) {\n return undefined\n } else {\n return urlStr\n }\n}\n"]}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/data-plane/client/util.ts"],"names":[],"mappings":"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","sourcesContent":["import { type Code, ConnectError, type Interceptor } from '@connectrpc/connect'\nimport * as ui8 from 'uint8arrays'\nimport { getDidKeyFromMultibase } from '@atproto/identity'\n\nexport const callerInterceptor =\n (caller: string): Interceptor =>\n (next) =>\n (req) => {\n req.header.set('x-atlantis-caller', caller)\n return next(req)\n }\n\nexport const isDataplaneError = (\n err: unknown,\n code?: Code,\n): err is ConnectError => {\n if (err instanceof ConnectError) {\n return !code || err.code === code\n }\n return false\n}\n\nexport const unpackIdentityServices = (servicesBytes: Uint8Array) => {\n const servicesStr = ui8.toString(servicesBytes, 'utf8')\n if (!servicesStr) return {}\n return JSON.parse(servicesStr) as UnpackedServices\n}\n\nexport const unpackIdentityKeys = (keysBytes: Uint8Array) => {\n const keysStr = ui8.toString(keysBytes, 'utf8')\n if (!keysStr) return {}\n return JSON.parse(keysStr) as UnpackedKeys\n}\n\nexport const getServiceEndpoint = (\n services: UnpackedServices,\n opts: { id: string; type: string },\n) => {\n const endpoint =\n services[opts.id] &&\n services[opts.id].Type === opts.type &&\n validateUrl(services[opts.id].URL)\n return endpoint || undefined\n}\n\nexport const getKeyAsDidKey = (keys: UnpackedKeys, opts: { id: string }) => {\n const key =\n keys[opts.id] &&\n getDidKeyFromMultibase({\n type: keys[opts.id].Type,\n publicKeyMultibase: keys[opts.id].PublicKeyMultibase,\n })\n return key || undefined\n}\n\ntype UnpackedServices = Record<string, { Type: string; URL: string }>\n\ntype UnpackedKeys = Record<string, { Type: string; PublicKeyMultibase: string }>\n\nconst validateUrl = (urlStr: string): string | undefined => {\n let url\n try {\n url = new URL(urlStr)\n } catch {\n return undefined\n }\n if (!['http:', 'https:'].includes(url.protocol)) {\n return undefined\n } else if (!url.hostname) {\n return undefined\n } else {\n return urlStr\n }\n}\n"]}
@@ -1,5 +1,5 @@
1
- import { ServerConfig } from '../../config.js';
2
- import { Database } from './db/index.js';
1
+ import type { ServerConfig } from '../../config.js';
2
+ import type { Database } from './db/index.js';
3
3
  export type BsyncCursors = {
4
4
  op?: string;
5
5
  mute?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"bsync-subscription.d.ts","sourceRoot":"","sources":["../../../src/data-plane/server/bsync-subscription.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAW9C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAGxC,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,qBAAa,iBAAiB;IAQT,IAAI,EAAE;QAAE,EAAE,EAAE,QAAQ,CAAC;QAAC,MAAM,EAAE,YAAY,CAAA;KAAE;IAP/D,OAAO,CAAC,EAAE,CAA6B;IACvC,OAAO,CAAC,YAAY,CAA2B;IAC/C,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,EAAE,CAAU;IAEpB,OAAO,CAAC,OAAO,CAAmB;IAElC,YAAmB,IAAI,EAAE;QAAE,EAAE,EAAE,QAAQ,CAAC;QAAC,MAAM,EAAE,YAAY,CAAA;KAAE,EAY9D;IAED,IAAI,OAAO,YAEV;IAED,KAAK,SAMJ;IAED;;;;;OAKG;IACG,UAAU,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,SAAO,iBAWrD;IAED,OAAO,CAAC,UAAU;IAQZ,OAAO,kBAOZ;IAED;;;;OAIG;IACH,OAAO,CAAC,aAAa;YAmBP,UAAU;IAuBxB,OAAO,CAAC,kBAAkB;YAcZ,qBAAqB;IA0EnC,OAAO,CAAC,mBAAmB;YAcb,sBAAsB;IAmBpC,OAAO,CAAC,cAAc;YAWR,iBAAiB;CAmChC"}
1
+ {"version":3,"file":"bsync-subscription.d.ts","sourceRoot":"","sources":["../../../src/data-plane/server/bsync-subscription.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAWnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAG7C,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,qBAAa,iBAAiB;IAQT,IAAI,EAAE;QAAE,EAAE,EAAE,QAAQ,CAAC;QAAC,MAAM,EAAE,YAAY,CAAA;KAAE;IAP/D,OAAO,CAAC,EAAE,CAA6B;IACvC,OAAO,CAAC,YAAY,CAA2B;IAC/C,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,EAAE,CAAU;IAEpB,OAAO,CAAC,OAAO,CAAmB;IAElC,YAAmB,IAAI,EAAE;QAAE,EAAE,EAAE,QAAQ,CAAC;QAAC,MAAM,EAAE,YAAY,CAAA;KAAE,EAY9D;IAED,IAAI,OAAO,YAEV;IAED,KAAK,SAMJ;IAED;;;;;OAKG;IACG,UAAU,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,SAAO,iBAWrD;IAED,OAAO,CAAC,UAAU;IAQZ,OAAO,kBAOZ;IAED;;;;OAIG;IACH,OAAO,CAAC,aAAa;YAmBP,UAAU;IAuBxB,OAAO,CAAC,kBAAkB;YAcZ,qBAAqB;IA0EnC,OAAO,CAAC,mBAAmB;YAcb,sBAAsB;IAmBpC,OAAO,CAAC,cAAc;YAWR,iBAAiB;CAmChC"}
@@ -1,7 +1,7 @@
1
1
  import assert from 'node:assert';
2
2
  import { lexParse } from '@atproto/lex';
3
3
  import { AtUri } from '@atproto/syntax';
4
- import { authWithApiKey, createBsyncClient } from '../../bsync.js';
4
+ import { authWithApiKey, createBsyncClient, } from '../../bsync.js';
5
5
  import { app } from '../../lexicons/index.js';
6
6
  import { subLogger as log } from '../../logger.js';
7
7
  import { Method, MuteOperation_Type, } from '../../proto/bsync_pb.js';
@@ -1 +1 @@
1
- {"version":3,"file":"bsync-subscription.js","sourceRoot":"","sources":["../../../src/data-plane/server/bsync-subscription.ts"],"names":[],"mappings":"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","sourcesContent":["import assert from 'node:assert'\nimport { lexParse } from '@atproto/lex'\nimport { AtUri } from '@atproto/syntax'\nimport { BsyncClient, authWithApiKey, createBsyncClient } from '../../bsync.js'\nimport { ServerConfig } from '../../config.js'\nimport { app } from '../../lexicons/index.js'\nimport { subLogger as log } from '../../logger.js'\nimport {\n Method,\n MuteOperation,\n MuteOperation_Type,\n NotifOperation,\n Operation,\n} from '../../proto/bsync_pb.js'\nimport { Namespaces } from '../../stash.js'\nimport { Database } from './db/index.js'\nimport { countAll, excluded } from './db/util.js'\n\nexport type BsyncCursors = {\n op?: string\n mute?: string\n notif?: string\n}\n\nexport class BsyncSubscription {\n private ac: AbortController | undefined\n private pendingScans = new Set<Promise<void>>()\n private bsyncClient: BsyncClient\n private db: Database\n // Latest cursor processed for each stream, used to wait until caught up.\n private cursors: BsyncCursors = {}\n\n constructor(public opts: { db: Database; config: ServerConfig }) {\n const { config, db } = opts\n\n this.db = db\n this.bsyncClient = createBsyncClient({\n baseUrl: config.bsyncUrl,\n httpVersion: config.bsyncHttpVersion ?? '2',\n nodeOptions: { rejectUnauthorized: !config.bsyncIgnoreBadTls },\n interceptors: config.bsyncApiKey\n ? [authWithApiKey(config.bsyncApiKey)]\n : [],\n })\n }\n\n get running() {\n return !!this.ac\n }\n\n start() {\n if (this.ac) return\n this.ac = new AbortController()\n this.scanMuteOperations()\n this.scanNotifOperations()\n this.scanOperations()\n }\n\n /**\n * Waits until the subscription has processed every operation that existed in\n * bsync at the time `targets` was read (one cursor per stream). Returns as\n * soon as the cursors catch up - it does not wait for the bsync long-poll\n * timeout. Intended for tests/dev.\n */\n async processAll(targets: BsyncCursors, timeout = 5000) {\n if (!this.ac) return\n const start = Date.now()\n while (!this.isCaughtUp(targets)) {\n if (Date.now() - start > timeout) {\n throw new Error(\n `bsync subscription was not caught up within ${timeout}ms`,\n )\n }\n await wait(5)\n }\n }\n\n private isCaughtUp(targets: BsyncCursors) {\n return (\n gteCursor(this.cursors.op, targets.op) &&\n gteCursor(this.cursors.mute, targets.mute) &&\n gteCursor(this.cursors.notif, targets.notif)\n )\n }\n\n async destroy() {\n // Aborting cancels any in-flight long-poll scan immediately, so we don't\n // have to wait for the bsync long-poll timeout to elapse.\n this.ac?.abort()\n this.ac = undefined\n // Wait for the ongoing scans to unwind cleanly.\n await Promise.all(this.pendingScans)\n }\n\n /**\n * starts a scanner in the background, killing it when this instance is\n * destroyed, and storing its promise in `this.pendingScans` to allow\n * awaiting.\n */\n private startScanning(\n scanner: (\n cursor: undefined | string,\n signal: AbortSignal,\n ) => Promise<string | undefined>,\n ) {\n if (!this.ac) return\n const signal = this.ac.signal\n\n const scanPromise = this.runScanner(scanner, signal)\n\n this.pendingScans.add(scanPromise)\n void scanPromise\n .catch(() => {})\n .finally(() => {\n this.pendingScans.delete(scanPromise)\n })\n }\n\n private async runScanner(\n scanner: (\n cursor: undefined | string,\n signal: AbortSignal,\n ) => Promise<string | undefined>,\n signal: AbortSignal,\n ) {\n let cursor: undefined | string\n\n while (!signal.aborted) {\n try {\n cursor = await scanner(cursor, signal)\n } catch (err) {\n if (signal.aborted) break\n\n log.error({ err }, 'error in bsync scan')\n\n // retry in a bit, but bail out early if we're shutting down\n await wait(100, signal)\n }\n }\n }\n\n private scanMuteOperations() {\n this.startScanning(async (cursor, signal) => {\n const res = await this.bsyncClient.scanMuteOperations(\n { cursor },\n { signal },\n )\n\n await this.processMuteOperations(res.operations)\n this.cursors.mute = res.cursor\n\n return res.cursor\n })\n }\n\n private async processMuteOperations(operations: MuteOperation[]) {\n for (const op of operations) {\n const { type, actorDid, subject } = op\n if (type === MuteOperation_Type.ADD) {\n if (subject.startsWith('did:')) {\n await this.db.db\n .insertInto('mute')\n .values({\n mutedByDid: actorDid,\n subjectDid: subject,\n createdAt: new Date().toISOString(),\n })\n .onConflict((oc) => oc.doNothing())\n .execute()\n } else {\n const uri = new AtUri(subject)\n if (uri.collection === app.bsky.graph.list.$type) {\n await this.db.db\n .insertInto('list_mute')\n .values({\n mutedByDid: actorDid,\n listUri: subject,\n createdAt: new Date().toISOString(),\n })\n .onConflict((oc) => oc.doNothing())\n .execute()\n } else {\n await this.db.db\n .insertInto('thread_mute')\n .values({\n mutedByDid: actorDid,\n rootUri: subject,\n createdAt: new Date().toISOString(),\n })\n .onConflict((oc) => oc.doNothing())\n .execute()\n }\n }\n } else if (type === MuteOperation_Type.REMOVE) {\n if (subject.startsWith('did:')) {\n await this.db.db\n .deleteFrom('mute')\n .where('mutedByDid', '=', actorDid)\n .where('subjectDid', '=', subject)\n .execute()\n } else {\n const uri = new AtUri(subject)\n if (uri.collection === app.bsky.graph.list.$type) {\n await this.db.db\n .deleteFrom('list_mute')\n .where('mutedByDid', '=', actorDid)\n .where('listUri', '=', subject)\n .execute()\n } else {\n await this.db.db\n .deleteFrom('thread_mute')\n .where('mutedByDid', '=', actorDid)\n .where('rootUri', '=', subject)\n .execute()\n }\n }\n } else if (type === MuteOperation_Type.CLEAR) {\n await this.db.db\n .deleteFrom('mute')\n .where('mutedByDid', '=', actorDid)\n .execute()\n await this.db.db\n .deleteFrom('list_mute')\n .where('mutedByDid', '=', actorDid)\n .execute()\n }\n }\n }\n\n private scanNotifOperations() {\n this.startScanning(async (cursor, signal) => {\n const res = await this.bsyncClient.scanNotifOperations(\n { cursor },\n { signal },\n )\n\n await this.processNotifOperations(res.operations)\n this.cursors.notif = res.cursor\n\n return res.cursor\n })\n }\n\n private async processNotifOperations(operations: NotifOperation[]) {\n for (const op of operations) {\n const { actorDid, priority } = op\n if (priority !== undefined) {\n await this.db.db\n .insertInto('actor_state')\n .values({\n did: actorDid,\n priorityNotifs: priority,\n lastSeenNotifs: new Date().toISOString(),\n })\n .onConflict((oc) =>\n oc.column('did').doUpdateSet({ priorityNotifs: priority }),\n )\n .execute()\n }\n }\n }\n\n private scanOperations() {\n this.startScanning(async (cursor, signal) => {\n const res = await this.bsyncClient.scanOperations({ cursor }, { signal })\n\n await this.processOperations(res.operations)\n this.cursors.op = res.cursor\n\n return res.cursor\n })\n }\n\n private async processOperations(operations: Operation[]) {\n for (const op of operations) {\n const { namespace } = op\n\n const now = new Date().toISOString()\n\n // Index all items into private_data.\n await handleGenericOperation(this.db, op, now)\n\n // Maintain bespoke indexes for certain namespaces. A failure here must\n // not stall the stream, so log and move on (matching bsync behavior).\n try {\n if (\n namespace ===\n Namespaces.AppBskyNotificationDefsSubjectActivitySubscription.$type\n ) {\n await handleSubjectActivitySubscriptionOperation(this.db, op, now)\n } else if (\n namespace === Namespaces.AppBskyUnspeccedDefsAgeAssuranceEvent.$type\n ) {\n await handleAgeAssuranceEventOperation(this.db, op, now)\n } else if (\n namespace === Namespaces.AppBskyAgeassuranceDefsEvent.$type\n ) {\n await handleAgeAssuranceV2EventOperation(this.db, op, now)\n } else if (namespace === Namespaces.AppBskyBookmarkDefsBookmark.$type) {\n await handleBookmarkOperation(this.db, op, now)\n } else if (namespace === Namespaces.AppBskyDraftDefsDraftWithId.$type) {\n await handleDraftOperation(this.db, op, now)\n }\n } catch (err) {\n log.warn({ err, namespace }, 'bsync put operation indexing failed')\n }\n }\n }\n}\n\ntype HandleOperation = (\n db: Database,\n op: Operation,\n now: string,\n) => Promise<void>\n\n// upsert into or remove from private_data\nconst handleGenericOperation: HandleOperation = async (\n db: Database,\n op: Operation,\n now: string,\n) => {\n const { actorDid, namespace, key, method, payload } = op\n if (method === Method.CREATE || method === Method.UPDATE) {\n await db.db\n .insertInto('private_data')\n .values({\n actorDid,\n namespace,\n key,\n payload: Buffer.from(payload).toString('utf8'),\n indexedAt: now,\n updatedAt: now,\n })\n .onConflict((oc) =>\n oc.columns(['actorDid', 'namespace', 'key']).doUpdateSet({\n payload: excluded(db.db, 'payload'),\n updatedAt: excluded(db.db, 'updatedAt'),\n }),\n )\n .execute()\n } else if (method === Method.DELETE) {\n await db.db\n .deleteFrom('private_data')\n .where('actorDid', '=', actorDid)\n .where('namespace', '=', namespace)\n .where('key', '=', key)\n .execute()\n } else {\n assert.fail(`unexpected method ${method}`)\n }\n}\n\nconst handleSubjectActivitySubscriptionOperation: HandleOperation = async (\n db: Database,\n op: Operation,\n now: string,\n) => {\n const { actorDid, key, method, payload } = op\n\n if (method === Method.DELETE) {\n await db.db\n .deleteFrom('activity_subscription')\n .where('creator', '=', actorDid)\n .where('key', '=', key)\n .execute()\n return\n }\n\n const parsed =\n lexParse<app.bsky.notification.defs.SubjectActivitySubscription>(\n Buffer.from(payload).toString('utf8'),\n )\n const {\n subject,\n activitySubscription: { post, reply },\n } = parsed\n\n if (method === Method.CREATE) {\n await db.db\n .insertInto('activity_subscription')\n .values({\n creator: actorDid,\n subjectDid: subject,\n key,\n indexedAt: now,\n post,\n reply,\n })\n .execute()\n return\n }\n\n await db.db\n .updateTable('activity_subscription')\n .where('creator', '=', actorDid)\n .where('key', '=', key)\n .set({\n indexedAt: now,\n post,\n reply,\n })\n .execute()\n}\n\nconst handleAgeAssuranceEventOperation: HandleOperation = async (\n db: Database,\n op: Operation,\n) => {\n const { actorDid, method, payload } = op\n if (method !== Method.CREATE) return\n\n const parsed = lexParse<app.bsky.unspecced.defs.AgeAssuranceEvent>(\n Buffer.from(payload).toString('utf8'),\n )\n const { status, createdAt } = parsed\n\n const update = {\n ageAssuranceStatus: status,\n ageAssuranceLastInitiatedAt: status === 'pending' ? createdAt : undefined,\n }\n\n await db.db\n .updateTable('actor')\n .set(update)\n .where('did', '=', actorDid)\n .execute()\n}\n\nconst handleAgeAssuranceV2EventOperation: HandleOperation = async (\n db: Database,\n op: Operation,\n) => {\n const { actorDid, method, payload } = op\n if (method !== Method.CREATE) return\n\n const parsed = lexParse<app.bsky.ageassurance.defs.Event>(\n Buffer.from(payload).toString('utf8'),\n )\n const { status, createdAt, access, countryCode, regionCode } = parsed\n\n const update = {\n ageAssuranceStatus: status,\n ageAssuranceLastInitiatedAt: status === 'pending' ? createdAt : undefined,\n ageAssuranceAccess: access,\n ageAssuranceCountryCode: countryCode,\n ageAssuranceRegionCode: regionCode,\n }\n\n await db.db\n .updateTable('actor')\n .set(update)\n .where('did', '=', actorDid)\n .execute()\n}\n\nconst handleBookmarkOperation: HandleOperation = async (\n db: Database,\n op: Operation,\n now: string,\n) => {\n const { actorDid, key, method, payload } = op\n\n const updateAgg = (uri: string, dbTxn: Database) => {\n return dbTxn.db\n .insertInto('post_agg')\n .values({\n uri,\n bookmarkCount: dbTxn.db\n .selectFrom('bookmark')\n .where('bookmark.subjectUri', '=', uri)\n .select(countAll.as('count')),\n })\n .onConflict((oc) =>\n oc\n .column('uri')\n .doUpdateSet({ bookmarkCount: excluded(dbTxn.db, 'bookmarkCount') }),\n )\n .execute()\n }\n\n if (method === Method.CREATE) {\n const parsed = lexParse<app.bsky.bookmark.defs.Bookmark>(\n Buffer.from(payload).toString('utf8'),\n )\n const {\n subject: { uri, cid },\n } = parsed\n\n await db.transaction(async (dbTxn) => {\n await dbTxn.db\n .insertInto('bookmark')\n .values({\n creator: actorDid,\n key,\n indexedAt: now,\n subjectUri: uri,\n subjectCid: cid,\n })\n .execute()\n\n await updateAgg(uri, dbTxn)\n })\n }\n\n if (method === Method.DELETE) {\n await db.transaction(async (dbTxn) => {\n const bookmark = await dbTxn.db\n .selectFrom('bookmark')\n .selectAll()\n .where('creator', '=', actorDid)\n .where('key', '=', key)\n .executeTakeFirst()\n\n if (bookmark) {\n await dbTxn.db\n .deleteFrom('bookmark')\n .where('creator', '=', actorDid)\n .where('key', '=', key)\n .execute()\n\n await updateAgg(bookmark.subjectUri, dbTxn)\n }\n })\n }\n}\n\nconst handleDraftOperation: HandleOperation = async (\n db: Database,\n op: Operation,\n now: string,\n) => {\n const { actorDid, key, method, payload } = op\n\n if (method === Method.CREATE) {\n const payloadString = Buffer.from(payload).toString('utf8')\n\n await db.db\n .insertInto('draft')\n .values({\n creator: actorDid,\n key,\n createdAt: now,\n updatedAt: now,\n payload: payloadString,\n })\n .execute()\n }\n\n if (method === Method.UPDATE) {\n const payloadString = Buffer.from(payload).toString('utf8')\n\n await db.db\n .updateTable('draft')\n .where('creator', '=', actorDid)\n .where('key', '=', key)\n .set({\n updatedAt: now,\n payload: payloadString,\n })\n .execute()\n }\n\n if (method === Method.DELETE) {\n await db.db\n .deleteFrom('draft')\n .where('creator', '=', actorDid)\n .where('key', '=', key)\n .execute()\n }\n}\n\n// compares numeric (bigint) cursor ids; an undefined target is always satisfied\nconst gteCursor = (current: string | undefined, target: string | undefined) => {\n if (!target) return true\n return BigInt(current || '0') >= BigInt(target)\n}\n\n// resolves after `ms`, or early if `signal` aborts\nconst wait = (ms: number, signal?: AbortSignal) =>\n new Promise<void>((resolve) => {\n if (signal?.aborted) return resolve()\n const done = () => {\n clearTimeout(timer)\n signal?.removeEventListener('abort', done)\n resolve()\n }\n const timer = setTimeout(done, ms)\n signal?.addEventListener('abort', done, { once: true })\n })\n"]}
1
+ {"version":3,"file":"bsync-subscription.js","sourceRoot":"","sources":["../../../src/data-plane/server/bsync-subscription.ts"],"names":[],"mappings":"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","sourcesContent":["import assert from 'node:assert'\nimport { lexParse } from '@atproto/lex'\nimport { AtUri } from '@atproto/syntax'\nimport {\n type BsyncClient,\n authWithApiKey,\n createBsyncClient,\n} from '../../bsync.js'\nimport type { ServerConfig } from '../../config.js'\nimport { app } from '../../lexicons/index.js'\nimport { subLogger as log } from '../../logger.js'\nimport {\n Method,\n type MuteOperation,\n MuteOperation_Type,\n type NotifOperation,\n type Operation,\n} from '../../proto/bsync_pb.js'\nimport { Namespaces } from '../../stash.js'\nimport type { Database } from './db/index.js'\nimport { countAll, excluded } from './db/util.js'\n\nexport type BsyncCursors = {\n op?: string\n mute?: string\n notif?: string\n}\n\nexport class BsyncSubscription {\n private ac: AbortController | undefined\n private pendingScans = new Set<Promise<void>>()\n private bsyncClient: BsyncClient\n private db: Database\n // Latest cursor processed for each stream, used to wait until caught up.\n private cursors: BsyncCursors = {}\n\n constructor(public opts: { db: Database; config: ServerConfig }) {\n const { config, db } = opts\n\n this.db = db\n this.bsyncClient = createBsyncClient({\n baseUrl: config.bsyncUrl,\n httpVersion: config.bsyncHttpVersion ?? '2',\n nodeOptions: { rejectUnauthorized: !config.bsyncIgnoreBadTls },\n interceptors: config.bsyncApiKey\n ? [authWithApiKey(config.bsyncApiKey)]\n : [],\n })\n }\n\n get running() {\n return !!this.ac\n }\n\n start() {\n if (this.ac) return\n this.ac = new AbortController()\n this.scanMuteOperations()\n this.scanNotifOperations()\n this.scanOperations()\n }\n\n /**\n * Waits until the subscription has processed every operation that existed in\n * bsync at the time `targets` was read (one cursor per stream). Returns as\n * soon as the cursors catch up - it does not wait for the bsync long-poll\n * timeout. Intended for tests/dev.\n */\n async processAll(targets: BsyncCursors, timeout = 5000) {\n if (!this.ac) return\n const start = Date.now()\n while (!this.isCaughtUp(targets)) {\n if (Date.now() - start > timeout) {\n throw new Error(\n `bsync subscription was not caught up within ${timeout}ms`,\n )\n }\n await wait(5)\n }\n }\n\n private isCaughtUp(targets: BsyncCursors) {\n return (\n gteCursor(this.cursors.op, targets.op) &&\n gteCursor(this.cursors.mute, targets.mute) &&\n gteCursor(this.cursors.notif, targets.notif)\n )\n }\n\n async destroy() {\n // Aborting cancels any in-flight long-poll scan immediately, so we don't\n // have to wait for the bsync long-poll timeout to elapse.\n this.ac?.abort()\n this.ac = undefined\n // Wait for the ongoing scans to unwind cleanly.\n await Promise.all(this.pendingScans)\n }\n\n /**\n * starts a scanner in the background, killing it when this instance is\n * destroyed, and storing its promise in `this.pendingScans` to allow\n * awaiting.\n */\n private startScanning(\n scanner: (\n cursor: undefined | string,\n signal: AbortSignal,\n ) => Promise<string | undefined>,\n ) {\n if (!this.ac) return\n const signal = this.ac.signal\n\n const scanPromise = this.runScanner(scanner, signal)\n\n this.pendingScans.add(scanPromise)\n void scanPromise\n .catch(() => {})\n .finally(() => {\n this.pendingScans.delete(scanPromise)\n })\n }\n\n private async runScanner(\n scanner: (\n cursor: undefined | string,\n signal: AbortSignal,\n ) => Promise<string | undefined>,\n signal: AbortSignal,\n ) {\n let cursor: undefined | string\n\n while (!signal.aborted) {\n try {\n cursor = await scanner(cursor, signal)\n } catch (err) {\n if (signal.aborted) break\n\n log.error({ err }, 'error in bsync scan')\n\n // retry in a bit, but bail out early if we're shutting down\n await wait(100, signal)\n }\n }\n }\n\n private scanMuteOperations() {\n this.startScanning(async (cursor, signal) => {\n const res = await this.bsyncClient.scanMuteOperations(\n { cursor },\n { signal },\n )\n\n await this.processMuteOperations(res.operations)\n this.cursors.mute = res.cursor\n\n return res.cursor\n })\n }\n\n private async processMuteOperations(operations: MuteOperation[]) {\n for (const op of operations) {\n const { type, actorDid, subject } = op\n if (type === MuteOperation_Type.ADD) {\n if (subject.startsWith('did:')) {\n await this.db.db\n .insertInto('mute')\n .values({\n mutedByDid: actorDid,\n subjectDid: subject,\n createdAt: new Date().toISOString(),\n })\n .onConflict((oc) => oc.doNothing())\n .execute()\n } else {\n const uri = new AtUri(subject)\n if (uri.collection === app.bsky.graph.list.$type) {\n await this.db.db\n .insertInto('list_mute')\n .values({\n mutedByDid: actorDid,\n listUri: subject,\n createdAt: new Date().toISOString(),\n })\n .onConflict((oc) => oc.doNothing())\n .execute()\n } else {\n await this.db.db\n .insertInto('thread_mute')\n .values({\n mutedByDid: actorDid,\n rootUri: subject,\n createdAt: new Date().toISOString(),\n })\n .onConflict((oc) => oc.doNothing())\n .execute()\n }\n }\n } else if (type === MuteOperation_Type.REMOVE) {\n if (subject.startsWith('did:')) {\n await this.db.db\n .deleteFrom('mute')\n .where('mutedByDid', '=', actorDid)\n .where('subjectDid', '=', subject)\n .execute()\n } else {\n const uri = new AtUri(subject)\n if (uri.collection === app.bsky.graph.list.$type) {\n await this.db.db\n .deleteFrom('list_mute')\n .where('mutedByDid', '=', actorDid)\n .where('listUri', '=', subject)\n .execute()\n } else {\n await this.db.db\n .deleteFrom('thread_mute')\n .where('mutedByDid', '=', actorDid)\n .where('rootUri', '=', subject)\n .execute()\n }\n }\n } else if (type === MuteOperation_Type.CLEAR) {\n await this.db.db\n .deleteFrom('mute')\n .where('mutedByDid', '=', actorDid)\n .execute()\n await this.db.db\n .deleteFrom('list_mute')\n .where('mutedByDid', '=', actorDid)\n .execute()\n }\n }\n }\n\n private scanNotifOperations() {\n this.startScanning(async (cursor, signal) => {\n const res = await this.bsyncClient.scanNotifOperations(\n { cursor },\n { signal },\n )\n\n await this.processNotifOperations(res.operations)\n this.cursors.notif = res.cursor\n\n return res.cursor\n })\n }\n\n private async processNotifOperations(operations: NotifOperation[]) {\n for (const op of operations) {\n const { actorDid, priority } = op\n if (priority !== undefined) {\n await this.db.db\n .insertInto('actor_state')\n .values({\n did: actorDid,\n priorityNotifs: priority,\n lastSeenNotifs: new Date().toISOString(),\n })\n .onConflict((oc) =>\n oc.column('did').doUpdateSet({ priorityNotifs: priority }),\n )\n .execute()\n }\n }\n }\n\n private scanOperations() {\n this.startScanning(async (cursor, signal) => {\n const res = await this.bsyncClient.scanOperations({ cursor }, { signal })\n\n await this.processOperations(res.operations)\n this.cursors.op = res.cursor\n\n return res.cursor\n })\n }\n\n private async processOperations(operations: Operation[]) {\n for (const op of operations) {\n const { namespace } = op\n\n const now = new Date().toISOString()\n\n // Index all items into private_data.\n await handleGenericOperation(this.db, op, now)\n\n // Maintain bespoke indexes for certain namespaces. A failure here must\n // not stall the stream, so log and move on (matching bsync behavior).\n try {\n if (\n namespace ===\n Namespaces.AppBskyNotificationDefsSubjectActivitySubscription.$type\n ) {\n await handleSubjectActivitySubscriptionOperation(this.db, op, now)\n } else if (\n namespace === Namespaces.AppBskyUnspeccedDefsAgeAssuranceEvent.$type\n ) {\n await handleAgeAssuranceEventOperation(this.db, op, now)\n } else if (\n namespace === Namespaces.AppBskyAgeassuranceDefsEvent.$type\n ) {\n await handleAgeAssuranceV2EventOperation(this.db, op, now)\n } else if (namespace === Namespaces.AppBskyBookmarkDefsBookmark.$type) {\n await handleBookmarkOperation(this.db, op, now)\n } else if (namespace === Namespaces.AppBskyDraftDefsDraftWithId.$type) {\n await handleDraftOperation(this.db, op, now)\n }\n } catch (err) {\n log.warn({ err, namespace }, 'bsync put operation indexing failed')\n }\n }\n }\n}\n\ntype HandleOperation = (\n db: Database,\n op: Operation,\n now: string,\n) => Promise<void>\n\n// upsert into or remove from private_data\nconst handleGenericOperation: HandleOperation = async (\n db: Database,\n op: Operation,\n now: string,\n) => {\n const { actorDid, namespace, key, method, payload } = op\n if (method === Method.CREATE || method === Method.UPDATE) {\n await db.db\n .insertInto('private_data')\n .values({\n actorDid,\n namespace,\n key,\n payload: Buffer.from(payload).toString('utf8'),\n indexedAt: now,\n updatedAt: now,\n })\n .onConflict((oc) =>\n oc.columns(['actorDid', 'namespace', 'key']).doUpdateSet({\n payload: excluded(db.db, 'payload'),\n updatedAt: excluded(db.db, 'updatedAt'),\n }),\n )\n .execute()\n } else if (method === Method.DELETE) {\n await db.db\n .deleteFrom('private_data')\n .where('actorDid', '=', actorDid)\n .where('namespace', '=', namespace)\n .where('key', '=', key)\n .execute()\n } else {\n assert.fail(`unexpected method ${method}`)\n }\n}\n\nconst handleSubjectActivitySubscriptionOperation: HandleOperation = async (\n db: Database,\n op: Operation,\n now: string,\n) => {\n const { actorDid, key, method, payload } = op\n\n if (method === Method.DELETE) {\n await db.db\n .deleteFrom('activity_subscription')\n .where('creator', '=', actorDid)\n .where('key', '=', key)\n .execute()\n return\n }\n\n const parsed =\n lexParse<app.bsky.notification.defs.SubjectActivitySubscription>(\n Buffer.from(payload).toString('utf8'),\n )\n const {\n subject,\n activitySubscription: { post, reply },\n } = parsed\n\n if (method === Method.CREATE) {\n await db.db\n .insertInto('activity_subscription')\n .values({\n creator: actorDid,\n subjectDid: subject,\n key,\n indexedAt: now,\n post,\n reply,\n })\n .execute()\n return\n }\n\n await db.db\n .updateTable('activity_subscription')\n .where('creator', '=', actorDid)\n .where('key', '=', key)\n .set({\n indexedAt: now,\n post,\n reply,\n })\n .execute()\n}\n\nconst handleAgeAssuranceEventOperation: HandleOperation = async (\n db: Database,\n op: Operation,\n) => {\n const { actorDid, method, payload } = op\n if (method !== Method.CREATE) return\n\n const parsed = lexParse<app.bsky.unspecced.defs.AgeAssuranceEvent>(\n Buffer.from(payload).toString('utf8'),\n )\n const { status, createdAt } = parsed\n\n const update = {\n ageAssuranceStatus: status,\n ageAssuranceLastInitiatedAt: status === 'pending' ? createdAt : undefined,\n }\n\n await db.db\n .updateTable('actor')\n .set(update)\n .where('did', '=', actorDid)\n .execute()\n}\n\nconst handleAgeAssuranceV2EventOperation: HandleOperation = async (\n db: Database,\n op: Operation,\n) => {\n const { actorDid, method, payload } = op\n if (method !== Method.CREATE) return\n\n const parsed = lexParse<app.bsky.ageassurance.defs.Event>(\n Buffer.from(payload).toString('utf8'),\n )\n const { status, createdAt, access, countryCode, regionCode } = parsed\n\n const update = {\n ageAssuranceStatus: status,\n ageAssuranceLastInitiatedAt: status === 'pending' ? createdAt : undefined,\n ageAssuranceAccess: access,\n ageAssuranceCountryCode: countryCode,\n ageAssuranceRegionCode: regionCode,\n }\n\n await db.db\n .updateTable('actor')\n .set(update)\n .where('did', '=', actorDid)\n .execute()\n}\n\nconst handleBookmarkOperation: HandleOperation = async (\n db: Database,\n op: Operation,\n now: string,\n) => {\n const { actorDid, key, method, payload } = op\n\n const updateAgg = (uri: string, dbTxn: Database) => {\n return dbTxn.db\n .insertInto('post_agg')\n .values({\n uri,\n bookmarkCount: dbTxn.db\n .selectFrom('bookmark')\n .where('bookmark.subjectUri', '=', uri)\n .select(countAll.as('count')),\n })\n .onConflict((oc) =>\n oc\n .column('uri')\n .doUpdateSet({ bookmarkCount: excluded(dbTxn.db, 'bookmarkCount') }),\n )\n .execute()\n }\n\n if (method === Method.CREATE) {\n const parsed = lexParse<app.bsky.bookmark.defs.Bookmark>(\n Buffer.from(payload).toString('utf8'),\n )\n const {\n subject: { uri, cid },\n } = parsed\n\n await db.transaction(async (dbTxn) => {\n await dbTxn.db\n .insertInto('bookmark')\n .values({\n creator: actorDid,\n key,\n indexedAt: now,\n subjectUri: uri,\n subjectCid: cid,\n })\n .execute()\n\n await updateAgg(uri, dbTxn)\n })\n }\n\n if (method === Method.DELETE) {\n await db.transaction(async (dbTxn) => {\n const bookmark = await dbTxn.db\n .selectFrom('bookmark')\n .selectAll()\n .where('creator', '=', actorDid)\n .where('key', '=', key)\n .executeTakeFirst()\n\n if (bookmark) {\n await dbTxn.db\n .deleteFrom('bookmark')\n .where('creator', '=', actorDid)\n .where('key', '=', key)\n .execute()\n\n await updateAgg(bookmark.subjectUri, dbTxn)\n }\n })\n }\n}\n\nconst handleDraftOperation: HandleOperation = async (\n db: Database,\n op: Operation,\n now: string,\n) => {\n const { actorDid, key, method, payload } = op\n\n if (method === Method.CREATE) {\n const payloadString = Buffer.from(payload).toString('utf8')\n\n await db.db\n .insertInto('draft')\n .values({\n creator: actorDid,\n key,\n createdAt: now,\n updatedAt: now,\n payload: payloadString,\n })\n .execute()\n }\n\n if (method === Method.UPDATE) {\n const payloadString = Buffer.from(payload).toString('utf8')\n\n await db.db\n .updateTable('draft')\n .where('creator', '=', actorDid)\n .where('key', '=', key)\n .set({\n updatedAt: now,\n payload: payloadString,\n })\n .execute()\n }\n\n if (method === Method.DELETE) {\n await db.db\n .deleteFrom('draft')\n .where('creator', '=', actorDid)\n .where('key', '=', key)\n .execute()\n }\n}\n\n// compares numeric (bigint) cursor ids; an undefined target is always satisfied\nconst gteCursor = (current: string | undefined, target: string | undefined) => {\n if (!target) return true\n return BigInt(current || '0') >= BigInt(target)\n}\n\n// resolves after `ms`, or early if `signal` aborts\nconst wait = (ms: number, signal?: AbortSignal) =>\n new Promise<void>((resolve) => {\n if (signal?.aborted) return resolve()\n const done = () => {\n clearTimeout(timer)\n signal?.removeEventListener('abort', done)\n resolve()\n }\n const timer = setTimeout(done, ms)\n signal?.addEventListener('abort', done, { once: true })\n })\n"]}
@@ -1,47 +1,47 @@
1
- import { Kysely } from 'kysely';
2
- import * as activitySubscription from './tables/activity-subscription.js';
3
- import * as actorBlock from './tables/actor-block.js';
4
- import * as actorState from './tables/actor-state.js';
5
- import * as actorSync from './tables/actor-sync.js';
6
- import * as actor from './tables/actor.js';
7
- import * as algo from './tables/algo.js';
8
- import * as blobTakedown from './tables/blob-takedown.js';
9
- import * as bookmark from './tables/bookmark.js';
10
- import * as didCache from './tables/did-cache.js';
11
- import * as draft from './tables/draft.js';
12
- import * as duplicateRecord from './tables/duplicate-record.js';
13
- import * as feedGenerator from './tables/feed-generator.js';
14
- import * as feedItem from './tables/feed-item.js';
15
- import * as follow from './tables/follow.js';
16
- import * as label from './tables/label.js';
17
- import * as labeler from './tables/labeler.js';
18
- import * as like from './tables/like.js';
19
- import * as listBlock from './tables/list-block.js';
20
- import * as listItem from './tables/list-item.js';
21
- import * as listMute from './tables/list-mute.js';
22
- import * as list from './tables/list.js';
23
- import * as mute from './tables/mute.js';
24
- import * as notificationPushToken from './tables/notification-push-token.js';
25
- import * as notification from './tables/notification.js';
26
- import * as postAgg from './tables/post-agg.js';
27
- import * as postEmbed from './tables/post-embed.js';
28
- import * as postgate from './tables/post-gate.js';
29
- import * as post from './tables/post.js';
30
- import * as privateData from './tables/private-data.js';
31
- import * as profileAgg from './tables/profile-agg.js';
32
- import * as profile from './tables/profile.js';
33
- import * as quote from './tables/quote.js';
34
- import * as record from './tables/record.js';
35
- import * as repost from './tables/repost.js';
36
- import * as starterPack from './tables/starter-pack.js';
37
- import * as subscription from './tables/subscription.js';
38
- import * as suggestedFeed from './tables/suggested-feed.js';
39
- import * as suggestedFollow from './tables/suggested-follow.js';
40
- import * as taggedSuggestion from './tables/tagged-suggestion.js';
41
- import * as threadgate from './tables/thread-gate.js';
42
- import * as threadMute from './tables/thread-mute.js';
43
- import * as verification from './tables/verification.js';
44
- import * as viewParam from './tables/view-param.js';
1
+ import type { Kysely } from 'kysely';
2
+ import type * as activitySubscription from './tables/activity-subscription.js';
3
+ import type * as actorBlock from './tables/actor-block.js';
4
+ import type * as actorState from './tables/actor-state.js';
5
+ import type * as actorSync from './tables/actor-sync.js';
6
+ import type * as actor from './tables/actor.js';
7
+ import type * as algo from './tables/algo.js';
8
+ import type * as blobTakedown from './tables/blob-takedown.js';
9
+ import type * as bookmark from './tables/bookmark.js';
10
+ import type * as didCache from './tables/did-cache.js';
11
+ import type * as draft from './tables/draft.js';
12
+ import type * as duplicateRecord from './tables/duplicate-record.js';
13
+ import type * as feedGenerator from './tables/feed-generator.js';
14
+ import type * as feedItem from './tables/feed-item.js';
15
+ import type * as follow from './tables/follow.js';
16
+ import type * as label from './tables/label.js';
17
+ import type * as labeler from './tables/labeler.js';
18
+ import type * as like from './tables/like.js';
19
+ import type * as listBlock from './tables/list-block.js';
20
+ import type * as listItem from './tables/list-item.js';
21
+ import type * as listMute from './tables/list-mute.js';
22
+ import type * as list from './tables/list.js';
23
+ import type * as mute from './tables/mute.js';
24
+ import type * as notificationPushToken from './tables/notification-push-token.js';
25
+ import type * as notification from './tables/notification.js';
26
+ import type * as postAgg from './tables/post-agg.js';
27
+ import type * as postEmbed from './tables/post-embed.js';
28
+ import type * as postgate from './tables/post-gate.js';
29
+ import type * as post from './tables/post.js';
30
+ import type * as privateData from './tables/private-data.js';
31
+ import type * as profileAgg from './tables/profile-agg.js';
32
+ import type * as profile from './tables/profile.js';
33
+ import type * as quote from './tables/quote.js';
34
+ import type * as record from './tables/record.js';
35
+ import type * as repost from './tables/repost.js';
36
+ import type * as starterPack from './tables/starter-pack.js';
37
+ import type * as subscription from './tables/subscription.js';
38
+ import type * as suggestedFeed from './tables/suggested-feed.js';
39
+ import type * as suggestedFollow from './tables/suggested-follow.js';
40
+ import type * as taggedSuggestion from './tables/tagged-suggestion.js';
41
+ import type * as threadgate from './tables/thread-gate.js';
42
+ import type * as threadMute from './tables/thread-mute.js';
43
+ import type * as verification from './tables/verification.js';
44
+ import type * as viewParam from './tables/view-param.js';
45
45
  export type DatabaseSchemaType = duplicateRecord.PartialDB & profile.PartialDB & profileAgg.PartialDB & post.PartialDB & postEmbed.PartialDB & postAgg.PartialDB & repost.PartialDB & threadgate.PartialDB & postgate.PartialDB & feedItem.PartialDB & follow.PartialDB & like.PartialDB & list.PartialDB & listItem.PartialDB & listMute.PartialDB & listBlock.PartialDB & mute.PartialDB & actorBlock.PartialDB & threadMute.PartialDB & feedGenerator.PartialDB & subscription.PartialDB & actor.PartialDB & actorState.PartialDB & actorSync.PartialDB & record.PartialDB & notification.PartialDB & notificationPushToken.PartialDB & didCache.PartialDB & label.PartialDB & algo.PartialDB & viewParam.PartialDB & suggestedFollow.PartialDB & suggestedFeed.PartialDB & blobTakedown.PartialDB & labeler.PartialDB & starterPack.PartialDB & taggedSuggestion.PartialDB & quote.PartialDB & verification.PartialDB & privateData.PartialDB & activitySubscription.PartialDB & bookmark.PartialDB & draft.PartialDB;
46
46
  export type DatabaseSchema = Kysely<DatabaseSchemaType>;
47
47
  //# sourceMappingURL=database-schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"database-schema.d.ts","sourceRoot":"","sources":["../../../../src/data-plane/server/db/database-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"database-schema.d.ts","sourceRoot":"","sources":["../../../../src/data-plane/server/db/database-schema.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"database-schema.js","sourceRoot":"","sources":["../../../../src/data-plane/server/db/database-schema.ts"],"names":[],"mappings":"","sourcesContent":["import { Kysely } from 'kysely'\nimport * as activitySubscription from './tables/activity-subscription.js'\nimport * as actorBlock from './tables/actor-block.js'\nimport * as actorState from './tables/actor-state.js'\nimport * as actorSync from './tables/actor-sync.js'\nimport * as actor from './tables/actor.js'\nimport * as algo from './tables/algo.js'\nimport * as blobTakedown from './tables/blob-takedown.js'\nimport * as bookmark from './tables/bookmark.js'\nimport * as didCache from './tables/did-cache.js'\nimport * as draft from './tables/draft.js'\nimport * as duplicateRecord from './tables/duplicate-record.js'\nimport * as feedGenerator from './tables/feed-generator.js'\nimport * as feedItem from './tables/feed-item.js'\nimport * as follow from './tables/follow.js'\nimport * as label from './tables/label.js'\nimport * as labeler from './tables/labeler.js'\nimport * as like from './tables/like.js'\nimport * as listBlock from './tables/list-block.js'\nimport * as listItem from './tables/list-item.js'\nimport * as listMute from './tables/list-mute.js'\nimport * as list from './tables/list.js'\nimport * as mute from './tables/mute.js'\nimport * as notificationPushToken from './tables/notification-push-token.js'\nimport * as notification from './tables/notification.js'\nimport * as postAgg from './tables/post-agg.js'\nimport * as postEmbed from './tables/post-embed.js'\nimport * as postgate from './tables/post-gate.js'\nimport * as post from './tables/post.js'\nimport * as privateData from './tables/private-data.js'\nimport * as profileAgg from './tables/profile-agg.js'\nimport * as profile from './tables/profile.js'\nimport * as quote from './tables/quote.js'\nimport * as record from './tables/record.js'\nimport * as repost from './tables/repost.js'\nimport * as starterPack from './tables/starter-pack.js'\nimport * as subscription from './tables/subscription.js'\nimport * as suggestedFeed from './tables/suggested-feed.js'\nimport * as suggestedFollow from './tables/suggested-follow.js'\nimport * as taggedSuggestion from './tables/tagged-suggestion.js'\nimport * as threadgate from './tables/thread-gate.js'\nimport * as threadMute from './tables/thread-mute.js'\nimport * as verification from './tables/verification.js'\nimport * as viewParam from './tables/view-param.js'\n\nexport type DatabaseSchemaType = duplicateRecord.PartialDB &\n profile.PartialDB &\n profileAgg.PartialDB &\n post.PartialDB &\n postEmbed.PartialDB &\n postAgg.PartialDB &\n repost.PartialDB &\n threadgate.PartialDB &\n postgate.PartialDB &\n feedItem.PartialDB &\n follow.PartialDB &\n like.PartialDB &\n list.PartialDB &\n listItem.PartialDB &\n listMute.PartialDB &\n listBlock.PartialDB &\n mute.PartialDB &\n actorBlock.PartialDB &\n threadMute.PartialDB &\n feedGenerator.PartialDB &\n subscription.PartialDB &\n actor.PartialDB &\n actorState.PartialDB &\n actorSync.PartialDB &\n record.PartialDB &\n notification.PartialDB &\n notificationPushToken.PartialDB &\n didCache.PartialDB &\n label.PartialDB &\n algo.PartialDB &\n viewParam.PartialDB &\n suggestedFollow.PartialDB &\n suggestedFeed.PartialDB &\n blobTakedown.PartialDB &\n labeler.PartialDB &\n starterPack.PartialDB &\n taggedSuggestion.PartialDB &\n quote.PartialDB &\n verification.PartialDB &\n privateData.PartialDB &\n activitySubscription.PartialDB &\n bookmark.PartialDB &\n draft.PartialDB\n\nexport type DatabaseSchema = Kysely<DatabaseSchemaType>\n"]}
1
+ {"version":3,"file":"database-schema.js","sourceRoot":"","sources":["../../../../src/data-plane/server/db/database-schema.ts"],"names":[],"mappings":"","sourcesContent":["import type { Kysely } from 'kysely'\nimport type * as activitySubscription from './tables/activity-subscription.js'\nimport type * as actorBlock from './tables/actor-block.js'\nimport type * as actorState from './tables/actor-state.js'\nimport type * as actorSync from './tables/actor-sync.js'\nimport type * as actor from './tables/actor.js'\nimport type * as algo from './tables/algo.js'\nimport type * as blobTakedown from './tables/blob-takedown.js'\nimport type * as bookmark from './tables/bookmark.js'\nimport type * as didCache from './tables/did-cache.js'\nimport type * as draft from './tables/draft.js'\nimport type * as duplicateRecord from './tables/duplicate-record.js'\nimport type * as feedGenerator from './tables/feed-generator.js'\nimport type * as feedItem from './tables/feed-item.js'\nimport type * as follow from './tables/follow.js'\nimport type * as label from './tables/label.js'\nimport type * as labeler from './tables/labeler.js'\nimport type * as like from './tables/like.js'\nimport type * as listBlock from './tables/list-block.js'\nimport type * as listItem from './tables/list-item.js'\nimport type * as listMute from './tables/list-mute.js'\nimport type * as list from './tables/list.js'\nimport type * as mute from './tables/mute.js'\nimport type * as notificationPushToken from './tables/notification-push-token.js'\nimport type * as notification from './tables/notification.js'\nimport type * as postAgg from './tables/post-agg.js'\nimport type * as postEmbed from './tables/post-embed.js'\nimport type * as postgate from './tables/post-gate.js'\nimport type * as post from './tables/post.js'\nimport type * as privateData from './tables/private-data.js'\nimport type * as profileAgg from './tables/profile-agg.js'\nimport type * as profile from './tables/profile.js'\nimport type * as quote from './tables/quote.js'\nimport type * as record from './tables/record.js'\nimport type * as repost from './tables/repost.js'\nimport type * as starterPack from './tables/starter-pack.js'\nimport type * as subscription from './tables/subscription.js'\nimport type * as suggestedFeed from './tables/suggested-feed.js'\nimport type * as suggestedFollow from './tables/suggested-follow.js'\nimport type * as taggedSuggestion from './tables/tagged-suggestion.js'\nimport type * as threadgate from './tables/thread-gate.js'\nimport type * as threadMute from './tables/thread-mute.js'\nimport type * as verification from './tables/verification.js'\nimport type * as viewParam from './tables/view-param.js'\n\nexport type DatabaseSchemaType = duplicateRecord.PartialDB &\n profile.PartialDB &\n profileAgg.PartialDB &\n post.PartialDB &\n postEmbed.PartialDB &\n postAgg.PartialDB &\n repost.PartialDB &\n threadgate.PartialDB &\n postgate.PartialDB &\n feedItem.PartialDB &\n follow.PartialDB &\n like.PartialDB &\n list.PartialDB &\n listItem.PartialDB &\n listMute.PartialDB &\n listBlock.PartialDB &\n mute.PartialDB &\n actorBlock.PartialDB &\n threadMute.PartialDB &\n feedGenerator.PartialDB &\n subscription.PartialDB &\n actor.PartialDB &\n actorState.PartialDB &\n actorSync.PartialDB &\n record.PartialDB &\n notification.PartialDB &\n notificationPushToken.PartialDB &\n didCache.PartialDB &\n label.PartialDB &\n algo.PartialDB &\n viewParam.PartialDB &\n suggestedFollow.PartialDB &\n suggestedFeed.PartialDB &\n blobTakedown.PartialDB &\n labeler.PartialDB &\n starterPack.PartialDB &\n taggedSuggestion.PartialDB &\n quote.PartialDB &\n verification.PartialDB &\n privateData.PartialDB &\n activitySubscription.PartialDB &\n bookmark.PartialDB &\n draft.PartialDB\n\nexport type DatabaseSchema = Kysely<DatabaseSchemaType>\n"]}
@@ -2,8 +2,8 @@ import { Migrator } from 'kysely/migration';
2
2
  declare const PgPool: typeof import("pg").Pool;
3
3
  type PgPool = InstanceType<typeof PgPool>;
4
4
  import type TypedEmitter from 'typed-emitter';
5
- import { DatabaseSchema } from './database-schema.js';
6
- import { PgOptions } from './types.js';
5
+ import type { DatabaseSchema } from './database-schema.js';
6
+ import type { PgOptions } from './types.js';
7
7
  export type { DatabaseSchema };
8
8
  export declare class Database {
9
9
  opts: PgOptions;
@@ -1 +1 @@
1
- {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../../../src/data-plane/server/db/db.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAI3C,QAAA,MAAc,MAAM,0BAAuB,CAAA;AAC3C,KAAK,MAAM,GAAG,YAAY,CAAC,OAAO,MAAM,CAAC,CAAA;AACzC,OAAO,KAAK,YAAY,MAAM,eAAe,CAAA;AAE7C,OAAO,EAAE,cAAc,EAAsB,MAAM,sBAAsB,CAAA;AAGzE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAEtC,YAAY,EAAE,cAAc,EAAE,CAAA;AAE9B,qBAAa,QAAQ;IAQV,IAAI,EAAE,SAAS;IAPxB,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,cAAc,CAAA;IAClB,QAAQ,EAAE,QAAQ,CAAA;IAClB,KAAK,EAAyB,UAAU,CAAA;IACxC,SAAS,UAAQ;IAEjB,YACS,IAAI,EAAE,SAAS,EACtB,SAAS,CAAC,EAAE;QAAE,EAAE,EAAE,cAAc,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,QAAQ,CAAA;KAAE,EAiDrE;IAED,IAAI,MAAM,IAAI,MAAM,GAAG,SAAS,CAE/B;IAEK,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAuBjE;IAED,IAAI,aAAa,YAEhB;IAED,iBAAiB,SAEhB;IAED,oBAAoB,SAEnB;IAED,QAAQ,CAAC,EAAE,EAAE,MAAM,IAAI,QAGtB;IAEK,gBAAgB,CAAC,SAAS,EAAE,MAAM,yDAYvC;IAEK,sBAAsB,0DAY3B;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAI3B;CACF;eAEc,QAAQ;AA6BvB,KAAK,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;AAEjD,KAAK,SAAS,GAAG;IACf,MAAM,EAAE,MAAM,IAAI,CAAA;CACnB,CAAA"}
1
+ {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../../../src/data-plane/server/db/db.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAI3C,QAAA,MAAc,MAAM,0BAAuB,CAAA;AAC3C,KAAK,MAAM,GAAG,YAAY,CAAC,OAAO,MAAM,CAAC,CAAA;AACzC,OAAO,KAAK,YAAY,MAAM,eAAe,CAAA;AAE7C,OAAO,KAAK,EAAE,cAAc,EAAsB,MAAM,sBAAsB,CAAA;AAG9E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAE3C,YAAY,EAAE,cAAc,EAAE,CAAA;AAE9B,qBAAa,QAAQ;IAQV,IAAI,EAAE,SAAS;IAPxB,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,cAAc,CAAA;IAClB,QAAQ,EAAE,QAAQ,CAAA;IAClB,KAAK,EAAyB,UAAU,CAAA;IACxC,SAAS,UAAQ;IAEjB,YACS,IAAI,EAAE,SAAS,EACtB,SAAS,CAAC,EAAE;QAAE,EAAE,EAAE,cAAc,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,QAAQ,CAAA;KAAE,EAiDrE;IAED,IAAI,MAAM,IAAI,MAAM,GAAG,SAAS,CAE/B;IAEK,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAuBjE;IAED,IAAI,aAAa,YAEhB;IAED,iBAAiB,SAEhB;IAED,oBAAoB,SAEnB;IAED,QAAQ,CAAC,EAAE,EAAE,MAAM,IAAI,QAGtB;IAEK,gBAAgB,CAAC,SAAS,EAAE,MAAM,yDAYvC;IAEK,sBAAsB,0DAY3B;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAI3B;CACF;eAEc,QAAQ;AA6BvB,KAAK,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;AAEjD,KAAK,SAAS,GAAG;IACf,MAAM,EAAE,MAAM,IAAI,CAAA;CACnB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"db.js","sourceRoot":"","sources":["../../../../src/data-plane/server/db/db.ts"],"names":[],"mappings":"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","sourcesContent":["import assert from 'node:assert'\nimport EventEmitter from 'node:events'\nimport {\n Kysely,\n KyselyPlugin,\n PluginTransformQueryArgs,\n PluginTransformResultArgs,\n PostgresDialect,\n QueryResult,\n RootOperationNode,\n UnknownRow,\n} from 'kysely'\nimport { Migrator } from 'kysely/migration'\n// eslint-disable-next-line import/default\nimport pg from 'pg'\n// eslint-disable-next-line import/no-named-as-default-member\nconst { Pool: PgPool, types: pgTypes } = pg\ntype PgPool = InstanceType<typeof PgPool>\nimport type TypedEmitter from 'typed-emitter'\nimport { dbLogger } from '../../../logger.js'\nimport { DatabaseSchema, DatabaseSchemaType } from './database-schema.js'\nimport * as migrations from './migrations/index.js'\nimport { CtxMigrationProvider } from './migrations/provider.js'\nimport { PgOptions } from './types.js'\n\nexport type { DatabaseSchema }\n\nexport class Database {\n pool: PgPool\n db: DatabaseSchema\n migrator: Migrator\n txEvt = new EventEmitter() as TxnEmitter\n destroyed = false\n\n constructor(\n public opts: PgOptions,\n instances?: { db: DatabaseSchema; pool: PgPool; migrator: Migrator },\n ) {\n // if instances are provided, use those\n if (instances) {\n this.db = instances.db\n this.pool = instances.pool\n this.migrator = instances.migrator\n return\n }\n\n // else create a pool & connect\n const { schema, url } = opts\n const pool =\n opts.pool ??\n new PgPool({\n connectionString: url,\n max: opts.poolSize,\n maxUses: opts.poolMaxUses,\n idleTimeoutMillis: opts.poolIdleTimeoutMs,\n })\n\n // Select count(*) and other pg bigints as js integer\n pgTypes.setTypeParser(pgTypes.builtins.INT8, (n) => parseInt(n, 10))\n\n // Setup schema usage, primarily for test parallelism (each test suite runs in its own pg schema)\n if (schema && !/^[a-z_]+$/i.test(schema)) {\n throw new Error(`Postgres schema must only contain [A-Za-z_]: ${schema}`)\n }\n\n pool.on('error', onPoolError)\n pool.on('connect', (client) => {\n client.on('error', onClientError)\n // Used for trigram indexes, e.g. on actor search\n client.query('SET pg_trgm.word_similarity_threshold TO .4;')\n if (schema) {\n // Shared objects such as extensions will go in the public schema\n client.query(`SET search_path TO \"${schema}\",public;`)\n }\n })\n\n this.pool = pool\n this.db = new Kysely<DatabaseSchemaType>({\n dialect: new PostgresDialect({ pool }),\n })\n this.migrator = new Migrator({\n db: this.db,\n migrationTableSchema: opts.schema,\n provider: new CtxMigrationProvider(migrations, 'pg'),\n })\n }\n\n get schema(): string | undefined {\n return this.opts.schema\n }\n\n async transaction<T>(fn: (db: Database) => Promise<T>): Promise<T> {\n const leakyTxPlugin = new LeakyTxPlugin()\n const { dbTxn, txRes } = await this.db\n .withPlugin(leakyTxPlugin)\n .transaction()\n .execute(async (txn) => {\n const dbTxn = new Database(this.opts, {\n db: txn,\n pool: this.pool,\n migrator: this.migrator,\n })\n const txRes = await fn(dbTxn)\n .catch(async (err) => {\n leakyTxPlugin.endTx()\n // ensure that all in-flight queries are flushed & the connection is open\n await dbTxn.db.getExecutor().provideConnection(noopAsync)\n throw err\n })\n .finally(() => leakyTxPlugin.endTx())\n return { dbTxn, txRes }\n })\n dbTxn?.txEvt.emit('commit')\n return txRes\n }\n\n get isTransaction() {\n return this.db.isTransaction\n }\n\n assertTransaction() {\n assert(this.isTransaction, 'Transaction required')\n }\n\n assertNotTransaction() {\n assert(!this.isTransaction, 'Cannot be in a transaction')\n }\n\n onCommit(fn: () => void) {\n this.assertTransaction()\n this.txEvt.once('commit', fn)\n }\n\n async migrateToOrThrow(migration: string) {\n if (this.schema) {\n await this.db.schema.createSchema(this.schema).ifNotExists().execute()\n }\n const { error, results } = await this.migrator.migrateTo(migration)\n if (error) {\n throw error\n }\n if (!results) {\n throw new Error('An unknown failure occurred while migrating')\n }\n return results\n }\n\n async migrateToLatestOrThrow() {\n if (this.schema) {\n await this.db.schema.createSchema(this.schema).ifNotExists().execute()\n }\n const { error, results } = await this.migrator.migrateToLatest()\n if (error) {\n throw error\n }\n if (!results) {\n throw new Error('An unknown failure occurred while migrating')\n }\n return results\n }\n\n async close(): Promise<void> {\n if (this.destroyed) return\n await this.db.destroy()\n this.destroyed = true\n }\n}\n\nexport default Database\n\nconst onPoolError = (err: Error) => dbLogger.error({ err }, 'db pool error')\nconst onClientError = (err: Error) => dbLogger.error({ err }, 'db client error')\n\n// utils\n// -------\n\nclass LeakyTxPlugin implements KyselyPlugin {\n private txOver = false\n\n endTx() {\n this.txOver = true\n }\n\n transformQuery(args: PluginTransformQueryArgs): RootOperationNode {\n if (this.txOver) {\n throw new Error('tx already failed')\n }\n return args.node\n }\n\n async transformResult(\n args: PluginTransformResultArgs,\n ): Promise<QueryResult<UnknownRow>> {\n return args.result\n }\n}\n\ntype TxnEmitter = TypedEmitter.default<TxnEvents>\n\ntype TxnEvents = {\n commit: () => void\n}\n\nconst noopAsync = async () => {}\n"]}
1
+ {"version":3,"file":"db.js","sourceRoot":"","sources":["../../../../src/data-plane/server/db/db.ts"],"names":[],"mappings":"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","sourcesContent":["import assert from 'node:assert'\nimport EventEmitter from 'node:events'\nimport {\n Kysely,\n type KyselyPlugin,\n type PluginTransformQueryArgs,\n type PluginTransformResultArgs,\n PostgresDialect,\n type QueryResult,\n type RootOperationNode,\n type UnknownRow,\n} from 'kysely'\nimport { Migrator } from 'kysely/migration'\n// eslint-disable-next-line import/default\nimport pg from 'pg'\n// eslint-disable-next-line import/no-named-as-default-member\nconst { Pool: PgPool, types: pgTypes } = pg\ntype PgPool = InstanceType<typeof PgPool>\nimport type TypedEmitter from 'typed-emitter'\nimport { dbLogger } from '../../../logger.js'\nimport type { DatabaseSchema, DatabaseSchemaType } from './database-schema.js'\nimport * as migrations from './migrations/index.js'\nimport { CtxMigrationProvider } from './migrations/provider.js'\nimport type { PgOptions } from './types.js'\n\nexport type { DatabaseSchema }\n\nexport class Database {\n pool: PgPool\n db: DatabaseSchema\n migrator: Migrator\n txEvt = new EventEmitter() as TxnEmitter\n destroyed = false\n\n constructor(\n public opts: PgOptions,\n instances?: { db: DatabaseSchema; pool: PgPool; migrator: Migrator },\n ) {\n // if instances are provided, use those\n if (instances) {\n this.db = instances.db\n this.pool = instances.pool\n this.migrator = instances.migrator\n return\n }\n\n // else create a pool & connect\n const { schema, url } = opts\n const pool =\n opts.pool ??\n new PgPool({\n connectionString: url,\n max: opts.poolSize,\n maxUses: opts.poolMaxUses,\n idleTimeoutMillis: opts.poolIdleTimeoutMs,\n })\n\n // Select count(*) and other pg bigints as js integer\n pgTypes.setTypeParser(pgTypes.builtins.INT8, (n) => parseInt(n, 10))\n\n // Setup schema usage, primarily for test parallelism (each test suite runs in its own pg schema)\n if (schema && !/^[a-z_]+$/i.test(schema)) {\n throw new Error(`Postgres schema must only contain [A-Za-z_]: ${schema}`)\n }\n\n pool.on('error', onPoolError)\n pool.on('connect', (client) => {\n client.on('error', onClientError)\n // Used for trigram indexes, e.g. on actor search\n client.query('SET pg_trgm.word_similarity_threshold TO .4;')\n if (schema) {\n // Shared objects such as extensions will go in the public schema\n client.query(`SET search_path TO \"${schema}\",public;`)\n }\n })\n\n this.pool = pool\n this.db = new Kysely<DatabaseSchemaType>({\n dialect: new PostgresDialect({ pool }),\n })\n this.migrator = new Migrator({\n db: this.db,\n migrationTableSchema: opts.schema,\n provider: new CtxMigrationProvider(migrations, 'pg'),\n })\n }\n\n get schema(): string | undefined {\n return this.opts.schema\n }\n\n async transaction<T>(fn: (db: Database) => Promise<T>): Promise<T> {\n const leakyTxPlugin = new LeakyTxPlugin()\n const { dbTxn, txRes } = await this.db\n .withPlugin(leakyTxPlugin)\n .transaction()\n .execute(async (txn) => {\n const dbTxn = new Database(this.opts, {\n db: txn,\n pool: this.pool,\n migrator: this.migrator,\n })\n const txRes = await fn(dbTxn)\n .catch(async (err) => {\n leakyTxPlugin.endTx()\n // ensure that all in-flight queries are flushed & the connection is open\n await dbTxn.db.getExecutor().provideConnection(noopAsync)\n throw err\n })\n .finally(() => leakyTxPlugin.endTx())\n return { dbTxn, txRes }\n })\n dbTxn?.txEvt.emit('commit')\n return txRes\n }\n\n get isTransaction() {\n return this.db.isTransaction\n }\n\n assertTransaction() {\n assert(this.isTransaction, 'Transaction required')\n }\n\n assertNotTransaction() {\n assert(!this.isTransaction, 'Cannot be in a transaction')\n }\n\n onCommit(fn: () => void) {\n this.assertTransaction()\n this.txEvt.once('commit', fn)\n }\n\n async migrateToOrThrow(migration: string) {\n if (this.schema) {\n await this.db.schema.createSchema(this.schema).ifNotExists().execute()\n }\n const { error, results } = await this.migrator.migrateTo(migration)\n if (error) {\n throw error\n }\n if (!results) {\n throw new Error('An unknown failure occurred while migrating')\n }\n return results\n }\n\n async migrateToLatestOrThrow() {\n if (this.schema) {\n await this.db.schema.createSchema(this.schema).ifNotExists().execute()\n }\n const { error, results } = await this.migrator.migrateToLatest()\n if (error) {\n throw error\n }\n if (!results) {\n throw new Error('An unknown failure occurred while migrating')\n }\n return results\n }\n\n async close(): Promise<void> {\n if (this.destroyed) return\n await this.db.destroy()\n this.destroyed = true\n }\n}\n\nexport default Database\n\nconst onPoolError = (err: Error) => dbLogger.error({ err }, 'db pool error')\nconst onClientError = (err: Error) => dbLogger.error({ err }, 'db client error')\n\n// utils\n// -------\n\nclass LeakyTxPlugin implements KyselyPlugin {\n private txOver = false\n\n endTx() {\n this.txOver = true\n }\n\n transformQuery(args: PluginTransformQueryArgs): RootOperationNode {\n if (this.txOver) {\n throw new Error('tx already failed')\n }\n return args.node\n }\n\n async transformResult(\n args: PluginTransformResultArgs,\n ): Promise<QueryResult<UnknownRow>> {\n return args.result\n }\n}\n\ntype TxnEmitter = TypedEmitter.default<TxnEvents>\n\ntype TxnEvents = {\n commit: () => void\n}\n\nconst noopAsync = async () => {}\n"]}
@@ -1,4 +1,4 @@
1
- import { Kysely } from 'kysely';
1
+ import { type Kysely } from 'kysely';
2
2
  export declare function up(db: Kysely<unknown>): Promise<void>;
3
3
  export declare function down(db: Kysely<unknown>): Promise<void>;
4
4
  //# sourceMappingURL=20230309T045948368Z-init.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"20230309T045948368Z-init.d.ts","sourceRoot":"","sources":["../../../../../src/data-plane/server/db/migrations/20230309T045948368Z-init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAO,MAAM,QAAQ,CAAA;AAKpC,wBAAsB,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CA4Q3D;AAED,wBAAsB,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CA6B7D"}
1
+ {"version":3,"file":"20230309T045948368Z-init.d.ts","sourceRoot":"","sources":["../../../../../src/data-plane/server/db/migrations/20230309T045948368Z-init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAO,MAAM,QAAQ,CAAA;AAKzC,wBAAsB,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CA4Q3D;AAED,wBAAsB,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CA6B7D"}