@atproto/bsky 0.0.254 → 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.
- package/CHANGELOG.md +22 -0
- package/dist/api/age-assurance/index.d.ts +1 -1
- package/dist/api/age-assurance/index.d.ts.map +1 -1
- package/dist/api/age-assurance/index.js.map +1 -1
- package/dist/api/age-assurance/redirects/kws-age-verified.d.ts +2 -2
- package/dist/api/age-assurance/redirects/kws-age-verified.d.ts.map +1 -1
- package/dist/api/age-assurance/redirects/kws-age-verified.js.map +1 -1
- package/dist/api/age-assurance/stash.d.ts +2 -2
- package/dist/api/age-assurance/stash.d.ts.map +1 -1
- package/dist/api/age-assurance/stash.js.map +1 -1
- package/dist/api/age-assurance/types.d.ts +3 -3
- package/dist/api/age-assurance/types.d.ts.map +1 -1
- package/dist/api/age-assurance/types.js.map +1 -1
- package/dist/api/age-assurance/util.d.ts +2 -2
- package/dist/api/age-assurance/util.d.ts.map +1 -1
- package/dist/api/age-assurance/util.js.map +1 -1
- package/dist/api/age-assurance/webhooks/kws-age-verified.d.ts +2 -2
- package/dist/api/age-assurance/webhooks/kws-age-verified.d.ts.map +1 -1
- package/dist/api/age-assurance/webhooks/kws-age-verified.js.map +1 -1
- package/dist/api/app/bsky/actor/getProfile.d.ts +2 -2
- package/dist/api/app/bsky/actor/getProfile.d.ts.map +1 -1
- package/dist/api/app/bsky/actor/getProfile.js.map +1 -1
- package/dist/api/app/bsky/actor/getProfiles.d.ts +2 -2
- package/dist/api/app/bsky/actor/getProfiles.d.ts.map +1 -1
- package/dist/api/app/bsky/actor/getProfiles.js.map +1 -1
- package/dist/api/app/bsky/actor/getSuggestions.d.ts +2 -2
- package/dist/api/app/bsky/actor/getSuggestions.d.ts.map +1 -1
- package/dist/api/app/bsky/actor/getSuggestions.js.map +1 -1
- package/dist/api/app/bsky/actor/searchActors.d.ts +2 -2
- package/dist/api/app/bsky/actor/searchActors.d.ts.map +1 -1
- package/dist/api/app/bsky/actor/searchActors.js.map +1 -1
- package/dist/api/app/bsky/actor/searchActorsTypeahead.d.ts +2 -2
- package/dist/api/app/bsky/actor/searchActorsTypeahead.d.ts.map +1 -1
- package/dist/api/app/bsky/actor/searchActorsTypeahead.js.map +1 -1
- package/dist/api/app/bsky/ageassurance/begin.d.ts +2 -2
- package/dist/api/app/bsky/ageassurance/begin.d.ts.map +1 -1
- package/dist/api/app/bsky/ageassurance/begin.js.map +1 -1
- package/dist/api/app/bsky/ageassurance/getConfig.d.ts +2 -2
- package/dist/api/app/bsky/ageassurance/getConfig.d.ts.map +1 -1
- package/dist/api/app/bsky/ageassurance/getConfig.js.map +1 -1
- package/dist/api/app/bsky/ageassurance/getState.d.ts +2 -2
- package/dist/api/app/bsky/ageassurance/getState.d.ts.map +1 -1
- package/dist/api/app/bsky/ageassurance/getState.js.map +1 -1
- package/dist/api/app/bsky/bookmark/createBookmark.d.ts +2 -2
- package/dist/api/app/bsky/bookmark/createBookmark.d.ts.map +1 -1
- package/dist/api/app/bsky/bookmark/createBookmark.js.map +1 -1
- package/dist/api/app/bsky/bookmark/deleteBookmark.d.ts +2 -2
- package/dist/api/app/bsky/bookmark/deleteBookmark.d.ts.map +1 -1
- package/dist/api/app/bsky/bookmark/deleteBookmark.js.map +1 -1
- package/dist/api/app/bsky/bookmark/getBookmarks.d.ts +2 -2
- package/dist/api/app/bsky/bookmark/getBookmarks.d.ts.map +1 -1
- package/dist/api/app/bsky/bookmark/getBookmarks.js.map +1 -1
- package/dist/api/app/bsky/contact/dismissMatch.d.ts +2 -2
- package/dist/api/app/bsky/contact/dismissMatch.d.ts.map +1 -1
- package/dist/api/app/bsky/contact/dismissMatch.js.map +1 -1
- package/dist/api/app/bsky/contact/getMatches.d.ts +2 -2
- package/dist/api/app/bsky/contact/getMatches.d.ts.map +1 -1
- package/dist/api/app/bsky/contact/getMatches.js.map +1 -1
- package/dist/api/app/bsky/contact/getSyncStatus.d.ts +2 -2
- package/dist/api/app/bsky/contact/getSyncStatus.d.ts.map +1 -1
- package/dist/api/app/bsky/contact/getSyncStatus.js.map +1 -1
- package/dist/api/app/bsky/contact/importContacts.d.ts +2 -2
- package/dist/api/app/bsky/contact/importContacts.d.ts.map +1 -1
- package/dist/api/app/bsky/contact/importContacts.js.map +1 -1
- package/dist/api/app/bsky/contact/removeData.d.ts +2 -2
- package/dist/api/app/bsky/contact/removeData.d.ts.map +1 -1
- package/dist/api/app/bsky/contact/removeData.js.map +1 -1
- package/dist/api/app/bsky/contact/sendNotification.d.ts +2 -2
- package/dist/api/app/bsky/contact/sendNotification.d.ts.map +1 -1
- package/dist/api/app/bsky/contact/sendNotification.js.map +1 -1
- package/dist/api/app/bsky/contact/startPhoneVerification.d.ts +2 -2
- package/dist/api/app/bsky/contact/startPhoneVerification.d.ts.map +1 -1
- package/dist/api/app/bsky/contact/startPhoneVerification.js.map +1 -1
- package/dist/api/app/bsky/contact/util.d.ts +2 -2
- package/dist/api/app/bsky/contact/util.d.ts.map +1 -1
- package/dist/api/app/bsky/contact/util.js.map +1 -1
- package/dist/api/app/bsky/contact/verifyPhone.d.ts +2 -2
- package/dist/api/app/bsky/contact/verifyPhone.d.ts.map +1 -1
- package/dist/api/app/bsky/contact/verifyPhone.js.map +1 -1
- package/dist/api/app/bsky/draft/createDraft.d.ts +2 -2
- package/dist/api/app/bsky/draft/createDraft.d.ts.map +1 -1
- package/dist/api/app/bsky/draft/createDraft.js.map +1 -1
- package/dist/api/app/bsky/draft/deleteDraft.d.ts +2 -2
- package/dist/api/app/bsky/draft/deleteDraft.d.ts.map +1 -1
- package/dist/api/app/bsky/draft/deleteDraft.js.map +1 -1
- package/dist/api/app/bsky/draft/getDrafts.d.ts +2 -2
- package/dist/api/app/bsky/draft/getDrafts.d.ts.map +1 -1
- package/dist/api/app/bsky/draft/getDrafts.js.map +1 -1
- package/dist/api/app/bsky/draft/updateDraft.d.ts +2 -2
- package/dist/api/app/bsky/draft/updateDraft.d.ts.map +1 -1
- package/dist/api/app/bsky/draft/updateDraft.js.map +1 -1
- package/dist/api/app/bsky/embed/getEmbedExternalView.d.ts +2 -2
- package/dist/api/app/bsky/embed/getEmbedExternalView.d.ts.map +1 -1
- package/dist/api/app/bsky/embed/getEmbedExternalView.js.map +1 -1
- package/dist/api/app/bsky/feed/getActorFeeds.d.ts +2 -2
- package/dist/api/app/bsky/feed/getActorFeeds.d.ts.map +1 -1
- package/dist/api/app/bsky/feed/getActorFeeds.js.map +1 -1
- package/dist/api/app/bsky/feed/getActorLikes.d.ts +2 -2
- package/dist/api/app/bsky/feed/getActorLikes.d.ts.map +1 -1
- package/dist/api/app/bsky/feed/getActorLikes.js.map +1 -1
- package/dist/api/app/bsky/feed/getAuthorFeed.d.ts +7 -7
- package/dist/api/app/bsky/feed/getAuthorFeed.d.ts.map +1 -1
- package/dist/api/app/bsky/feed/getAuthorFeed.js.map +1 -1
- package/dist/api/app/bsky/feed/getFeed.d.ts +3 -3
- package/dist/api/app/bsky/feed/getFeed.d.ts.map +1 -1
- package/dist/api/app/bsky/feed/getFeed.js.map +1 -1
- package/dist/api/app/bsky/feed/getFeedGenerator.d.ts +2 -2
- package/dist/api/app/bsky/feed/getFeedGenerator.d.ts.map +1 -1
- package/dist/api/app/bsky/feed/getFeedGenerator.js.map +1 -1
- package/dist/api/app/bsky/feed/getFeedGenerators.d.ts +2 -2
- package/dist/api/app/bsky/feed/getFeedGenerators.d.ts.map +1 -1
- package/dist/api/app/bsky/feed/getFeedGenerators.js.map +1 -1
- package/dist/api/app/bsky/feed/getLikes.d.ts +2 -2
- package/dist/api/app/bsky/feed/getLikes.d.ts.map +1 -1
- package/dist/api/app/bsky/feed/getLikes.js.map +1 -1
- package/dist/api/app/bsky/feed/getListFeed.d.ts +6 -6
- package/dist/api/app/bsky/feed/getListFeed.d.ts.map +1 -1
- package/dist/api/app/bsky/feed/getListFeed.js.map +1 -1
- package/dist/api/app/bsky/feed/getPostThread.d.ts +2 -2
- package/dist/api/app/bsky/feed/getPostThread.d.ts.map +1 -1
- package/dist/api/app/bsky/feed/getPostThread.js.map +1 -1
- package/dist/api/app/bsky/feed/getPosts.d.ts +2 -2
- package/dist/api/app/bsky/feed/getPosts.d.ts.map +1 -1
- package/dist/api/app/bsky/feed/getPosts.js.map +1 -1
- package/dist/api/app/bsky/feed/getQuotes.d.ts +2 -2
- package/dist/api/app/bsky/feed/getQuotes.d.ts.map +1 -1
- package/dist/api/app/bsky/feed/getQuotes.js.map +1 -1
- package/dist/api/app/bsky/feed/getRepostedBy.d.ts +2 -2
- package/dist/api/app/bsky/feed/getRepostedBy.d.ts.map +1 -1
- package/dist/api/app/bsky/feed/getRepostedBy.js.map +1 -1
- package/dist/api/app/bsky/feed/getSuggestedFeeds.d.ts +2 -2
- package/dist/api/app/bsky/feed/getSuggestedFeeds.d.ts.map +1 -1
- package/dist/api/app/bsky/feed/getSuggestedFeeds.js.map +1 -1
- package/dist/api/app/bsky/feed/getTimeline.d.ts +6 -6
- package/dist/api/app/bsky/feed/getTimeline.d.ts.map +1 -1
- package/dist/api/app/bsky/feed/getTimeline.js.map +1 -1
- package/dist/api/app/bsky/feed/searchPosts.d.ts +2 -2
- package/dist/api/app/bsky/feed/searchPosts.d.ts.map +1 -1
- package/dist/api/app/bsky/feed/searchPosts.js +11 -3
- package/dist/api/app/bsky/feed/searchPosts.js.map +1 -1
- package/dist/api/app/bsky/feed/searchPostsV2.d.ts +2 -2
- package/dist/api/app/bsky/feed/searchPostsV2.d.ts.map +1 -1
- package/dist/api/app/bsky/feed/searchPostsV2.js +10 -2
- package/dist/api/app/bsky/feed/searchPostsV2.js.map +1 -1
- package/dist/api/app/bsky/graph/getActorStarterPacks.d.ts +2 -2
- package/dist/api/app/bsky/graph/getActorStarterPacks.d.ts.map +1 -1
- package/dist/api/app/bsky/graph/getActorStarterPacks.js.map +1 -1
- package/dist/api/app/bsky/graph/getBlocks.d.ts +2 -2
- package/dist/api/app/bsky/graph/getBlocks.d.ts.map +1 -1
- package/dist/api/app/bsky/graph/getBlocks.js.map +1 -1
- package/dist/api/app/bsky/graph/getFollowers.d.ts +2 -2
- package/dist/api/app/bsky/graph/getFollowers.d.ts.map +1 -1
- package/dist/api/app/bsky/graph/getFollowers.js.map +1 -1
- package/dist/api/app/bsky/graph/getFollows.d.ts +2 -2
- package/dist/api/app/bsky/graph/getFollows.d.ts.map +1 -1
- package/dist/api/app/bsky/graph/getFollows.js.map +1 -1
- package/dist/api/app/bsky/graph/getKnownFollowers.d.ts +2 -2
- package/dist/api/app/bsky/graph/getKnownFollowers.d.ts.map +1 -1
- package/dist/api/app/bsky/graph/getKnownFollowers.js.map +1 -1
- package/dist/api/app/bsky/graph/getList.d.ts +2 -2
- package/dist/api/app/bsky/graph/getList.d.ts.map +1 -1
- package/dist/api/app/bsky/graph/getList.js.map +1 -1
- package/dist/api/app/bsky/graph/getListBlocks.d.ts +2 -2
- package/dist/api/app/bsky/graph/getListBlocks.d.ts.map +1 -1
- package/dist/api/app/bsky/graph/getListBlocks.js.map +1 -1
- package/dist/api/app/bsky/graph/getListMutes.d.ts +2 -2
- package/dist/api/app/bsky/graph/getListMutes.d.ts.map +1 -1
- package/dist/api/app/bsky/graph/getListMutes.js.map +1 -1
- package/dist/api/app/bsky/graph/getLists.d.ts +2 -2
- package/dist/api/app/bsky/graph/getLists.d.ts.map +1 -1
- package/dist/api/app/bsky/graph/getLists.js.map +1 -1
- package/dist/api/app/bsky/graph/getListsWithMembership.d.ts +2 -2
- package/dist/api/app/bsky/graph/getListsWithMembership.d.ts.map +1 -1
- package/dist/api/app/bsky/graph/getListsWithMembership.js.map +1 -1
- package/dist/api/app/bsky/graph/getMutes.d.ts +2 -2
- package/dist/api/app/bsky/graph/getMutes.d.ts.map +1 -1
- package/dist/api/app/bsky/graph/getMutes.js.map +1 -1
- package/dist/api/app/bsky/graph/getRelationships.d.ts +2 -2
- package/dist/api/app/bsky/graph/getRelationships.d.ts.map +1 -1
- package/dist/api/app/bsky/graph/getRelationships.js.map +1 -1
- package/dist/api/app/bsky/graph/getStarterPack.d.ts +2 -2
- package/dist/api/app/bsky/graph/getStarterPack.d.ts.map +1 -1
- package/dist/api/app/bsky/graph/getStarterPack.js.map +1 -1
- package/dist/api/app/bsky/graph/getStarterPacks.d.ts +2 -2
- package/dist/api/app/bsky/graph/getStarterPacks.d.ts.map +1 -1
- package/dist/api/app/bsky/graph/getStarterPacks.js.map +1 -1
- package/dist/api/app/bsky/graph/getStarterPacksWithMembership.d.ts +2 -2
- package/dist/api/app/bsky/graph/getStarterPacksWithMembership.d.ts.map +1 -1
- package/dist/api/app/bsky/graph/getStarterPacksWithMembership.js.map +1 -1
- package/dist/api/app/bsky/graph/getSuggestedFollowsByActor.d.ts +2 -2
- package/dist/api/app/bsky/graph/getSuggestedFollowsByActor.d.ts.map +1 -1
- package/dist/api/app/bsky/graph/getSuggestedFollowsByActor.js.map +1 -1
- package/dist/api/app/bsky/graph/muteActor.d.ts +2 -2
- package/dist/api/app/bsky/graph/muteActor.d.ts.map +1 -1
- package/dist/api/app/bsky/graph/muteActor.js.map +1 -1
- package/dist/api/app/bsky/graph/muteActorList.d.ts +2 -2
- package/dist/api/app/bsky/graph/muteActorList.d.ts.map +1 -1
- package/dist/api/app/bsky/graph/muteActorList.js.map +1 -1
- package/dist/api/app/bsky/graph/muteThread.d.ts +2 -2
- package/dist/api/app/bsky/graph/muteThread.d.ts.map +1 -1
- package/dist/api/app/bsky/graph/muteThread.js.map +1 -1
- package/dist/api/app/bsky/graph/searchStarterPacks.d.ts +2 -2
- package/dist/api/app/bsky/graph/searchStarterPacks.d.ts.map +1 -1
- package/dist/api/app/bsky/graph/searchStarterPacks.js.map +1 -1
- package/dist/api/app/bsky/graph/unmuteActor.d.ts +2 -2
- package/dist/api/app/bsky/graph/unmuteActor.d.ts.map +1 -1
- package/dist/api/app/bsky/graph/unmuteActor.js.map +1 -1
- package/dist/api/app/bsky/graph/unmuteActorList.d.ts +2 -2
- package/dist/api/app/bsky/graph/unmuteActorList.d.ts.map +1 -1
- package/dist/api/app/bsky/graph/unmuteActorList.js.map +1 -1
- package/dist/api/app/bsky/graph/unmuteThread.d.ts +2 -2
- package/dist/api/app/bsky/graph/unmuteThread.d.ts.map +1 -1
- package/dist/api/app/bsky/graph/unmuteThread.js.map +1 -1
- package/dist/api/app/bsky/labeler/getServices.d.ts +2 -2
- package/dist/api/app/bsky/labeler/getServices.d.ts.map +1 -1
- package/dist/api/app/bsky/labeler/getServices.js.map +1 -1
- package/dist/api/app/bsky/notification/getPreferences.d.ts +2 -2
- package/dist/api/app/bsky/notification/getPreferences.d.ts.map +1 -1
- package/dist/api/app/bsky/notification/getPreferences.js.map +1 -1
- package/dist/api/app/bsky/notification/getUnreadCount.d.ts +2 -2
- package/dist/api/app/bsky/notification/getUnreadCount.d.ts.map +1 -1
- package/dist/api/app/bsky/notification/getUnreadCount.js.map +1 -1
- package/dist/api/app/bsky/notification/listActivitySubscriptions.d.ts +2 -2
- package/dist/api/app/bsky/notification/listActivitySubscriptions.d.ts.map +1 -1
- package/dist/api/app/bsky/notification/listActivitySubscriptions.js.map +1 -1
- package/dist/api/app/bsky/notification/listNotifications.d.ts +2 -2
- package/dist/api/app/bsky/notification/listNotifications.d.ts.map +1 -1
- package/dist/api/app/bsky/notification/listNotifications.js.map +1 -1
- package/dist/api/app/bsky/notification/putActivitySubscription.d.ts +2 -2
- package/dist/api/app/bsky/notification/putActivitySubscription.d.ts.map +1 -1
- package/dist/api/app/bsky/notification/putActivitySubscription.js.map +1 -1
- package/dist/api/app/bsky/notification/putPreferences.d.ts +2 -2
- package/dist/api/app/bsky/notification/putPreferences.d.ts.map +1 -1
- package/dist/api/app/bsky/notification/putPreferences.js.map +1 -1
- package/dist/api/app/bsky/notification/putPreferencesV2.d.ts +2 -2
- package/dist/api/app/bsky/notification/putPreferencesV2.d.ts.map +1 -1
- package/dist/api/app/bsky/notification/putPreferencesV2.js.map +1 -1
- package/dist/api/app/bsky/notification/registerPush.d.ts +2 -2
- package/dist/api/app/bsky/notification/registerPush.d.ts.map +1 -1
- package/dist/api/app/bsky/notification/registerPush.js.map +1 -1
- package/dist/api/app/bsky/notification/unregisterPush.d.ts +2 -2
- package/dist/api/app/bsky/notification/unregisterPush.d.ts.map +1 -1
- package/dist/api/app/bsky/notification/unregisterPush.js.map +1 -1
- package/dist/api/app/bsky/notification/updateSeen.d.ts +2 -2
- package/dist/api/app/bsky/notification/updateSeen.d.ts.map +1 -1
- package/dist/api/app/bsky/notification/updateSeen.js.map +1 -1
- package/dist/api/app/bsky/notification/util.d.ts +2 -2
- package/dist/api/app/bsky/notification/util.d.ts.map +1 -1
- package/dist/api/app/bsky/notification/util.js.map +1 -1
- package/dist/api/app/bsky/unspecced/getAgeAssuranceState.d.ts +2 -2
- package/dist/api/app/bsky/unspecced/getAgeAssuranceState.d.ts.map +1 -1
- package/dist/api/app/bsky/unspecced/getAgeAssuranceState.js.map +1 -1
- package/dist/api/app/bsky/unspecced/getConfig.d.ts +2 -2
- package/dist/api/app/bsky/unspecced/getConfig.d.ts.map +1 -1
- package/dist/api/app/bsky/unspecced/getConfig.js.map +1 -1
- package/dist/api/app/bsky/unspecced/getOnboardingSuggestedStarterPacks.d.ts +2 -2
- package/dist/api/app/bsky/unspecced/getOnboardingSuggestedStarterPacks.d.ts.map +1 -1
- package/dist/api/app/bsky/unspecced/getOnboardingSuggestedStarterPacks.js.map +1 -1
- package/dist/api/app/bsky/unspecced/getPopularFeedGenerators.d.ts +2 -2
- package/dist/api/app/bsky/unspecced/getPopularFeedGenerators.d.ts.map +1 -1
- package/dist/api/app/bsky/unspecced/getPopularFeedGenerators.js.map +1 -1
- package/dist/api/app/bsky/unspecced/getPostThreadOtherV2.d.ts +2 -2
- package/dist/api/app/bsky/unspecced/getPostThreadOtherV2.d.ts.map +1 -1
- package/dist/api/app/bsky/unspecced/getPostThreadOtherV2.js.map +1 -1
- package/dist/api/app/bsky/unspecced/getPostThreadV2.d.ts +2 -2
- package/dist/api/app/bsky/unspecced/getPostThreadV2.d.ts.map +1 -1
- package/dist/api/app/bsky/unspecced/getPostThreadV2.js.map +1 -1
- package/dist/api/app/bsky/unspecced/getSuggestedFeeds.d.ts +2 -2
- package/dist/api/app/bsky/unspecced/getSuggestedFeeds.d.ts.map +1 -1
- package/dist/api/app/bsky/unspecced/getSuggestedFeeds.js.map +1 -1
- package/dist/api/app/bsky/unspecced/getSuggestedOnboardingUsers.d.ts +2 -2
- package/dist/api/app/bsky/unspecced/getSuggestedOnboardingUsers.d.ts.map +1 -1
- package/dist/api/app/bsky/unspecced/getSuggestedOnboardingUsers.js.map +1 -1
- package/dist/api/app/bsky/unspecced/getSuggestedStarterPacks.d.ts +2 -2
- package/dist/api/app/bsky/unspecced/getSuggestedStarterPacks.d.ts.map +1 -1
- package/dist/api/app/bsky/unspecced/getSuggestedStarterPacks.js.map +1 -1
- package/dist/api/app/bsky/unspecced/getSuggestedUsers.d.ts +2 -2
- package/dist/api/app/bsky/unspecced/getSuggestedUsers.d.ts.map +1 -1
- package/dist/api/app/bsky/unspecced/getSuggestedUsers.js.map +1 -1
- package/dist/api/app/bsky/unspecced/getSuggestedUsersForDiscover.d.ts +2 -2
- package/dist/api/app/bsky/unspecced/getSuggestedUsersForDiscover.d.ts.map +1 -1
- package/dist/api/app/bsky/unspecced/getSuggestedUsersForDiscover.js.map +1 -1
- package/dist/api/app/bsky/unspecced/getSuggestedUsersForExplore.d.ts +2 -2
- package/dist/api/app/bsky/unspecced/getSuggestedUsersForExplore.d.ts.map +1 -1
- package/dist/api/app/bsky/unspecced/getSuggestedUsersForExplore.js.map +1 -1
- package/dist/api/app/bsky/unspecced/getSuggestedUsersForSeeMore.d.ts +2 -2
- package/dist/api/app/bsky/unspecced/getSuggestedUsersForSeeMore.d.ts.map +1 -1
- package/dist/api/app/bsky/unspecced/getSuggestedUsersForSeeMore.js.map +1 -1
- package/dist/api/app/bsky/unspecced/getTaggedSuggestions.d.ts +2 -2
- package/dist/api/app/bsky/unspecced/getTaggedSuggestions.d.ts.map +1 -1
- package/dist/api/app/bsky/unspecced/getTaggedSuggestions.js.map +1 -1
- package/dist/api/app/bsky/unspecced/getTrendingTopics.d.ts +2 -2
- package/dist/api/app/bsky/unspecced/getTrendingTopics.d.ts.map +1 -1
- package/dist/api/app/bsky/unspecced/getTrendingTopics.js.map +1 -1
- package/dist/api/app/bsky/unspecced/getTrends.d.ts +2 -2
- package/dist/api/app/bsky/unspecced/getTrends.d.ts.map +1 -1
- package/dist/api/app/bsky/unspecced/getTrends.js.map +1 -1
- package/dist/api/app/bsky/unspecced/initAgeAssurance.d.ts +2 -2
- package/dist/api/app/bsky/unspecced/initAgeAssurance.d.ts.map +1 -1
- package/dist/api/app/bsky/unspecced/initAgeAssurance.js.map +1 -1
- package/dist/api/blob-dispatcher.d.ts +2 -2
- package/dist/api/blob-dispatcher.d.ts.map +1 -1
- package/dist/api/blob-dispatcher.js.map +1 -1
- package/dist/api/blob-resolver.d.ts +6 -6
- package/dist/api/blob-resolver.d.ts.map +1 -1
- package/dist/api/blob-resolver.js.map +1 -1
- package/dist/api/com/atproto/admin/getAccountInfos.d.ts +2 -2
- package/dist/api/com/atproto/admin/getAccountInfos.d.ts.map +1 -1
- package/dist/api/com/atproto/admin/getAccountInfos.js.map +1 -1
- package/dist/api/com/atproto/admin/getSubjectStatus.d.ts +2 -2
- package/dist/api/com/atproto/admin/getSubjectStatus.d.ts.map +1 -1
- package/dist/api/com/atproto/admin/getSubjectStatus.js.map +1 -1
- package/dist/api/com/atproto/admin/updateSubjectStatus.d.ts +2 -2
- package/dist/api/com/atproto/admin/updateSubjectStatus.d.ts.map +1 -1
- package/dist/api/com/atproto/admin/updateSubjectStatus.js.map +1 -1
- package/dist/api/com/atproto/identity/resolveHandle.d.ts +2 -2
- package/dist/api/com/atproto/identity/resolveHandle.d.ts.map +1 -1
- package/dist/api/com/atproto/identity/resolveHandle.js.map +1 -1
- package/dist/api/com/atproto/label/queryLabels.d.ts +2 -2
- package/dist/api/com/atproto/label/queryLabels.d.ts.map +1 -1
- package/dist/api/com/atproto/label/queryLabels.js.map +1 -1
- package/dist/api/com/atproto/repo/getRecord.d.ts +2 -2
- package/dist/api/com/atproto/repo/getRecord.d.ts.map +1 -1
- package/dist/api/com/atproto/repo/getRecord.js.map +1 -1
- package/dist/api/com/atproto/temp/fetchLabels.d.ts +2 -2
- package/dist/api/com/atproto/temp/fetchLabels.d.ts.map +1 -1
- package/dist/api/com/atproto/temp/fetchLabels.js.map +1 -1
- package/dist/api/external.d.ts +1 -1
- package/dist/api/external.d.ts.map +1 -1
- package/dist/api/external.js.map +1 -1
- package/dist/api/health.d.ts +1 -1
- package/dist/api/health.d.ts.map +1 -1
- package/dist/api/health.js.map +1 -1
- package/dist/api/index.d.ts +2 -2
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js.map +1 -1
- package/dist/api/internal/bsky/actor/getProfiles.d.ts +2 -2
- package/dist/api/internal/bsky/actor/getProfiles.d.ts.map +1 -1
- package/dist/api/internal/bsky/actor/getProfiles.js.map +1 -1
- package/dist/api/kws/api.d.ts +2 -2
- package/dist/api/kws/api.d.ts.map +1 -1
- package/dist/api/kws/api.js.map +1 -1
- package/dist/api/kws/index.d.ts +1 -1
- package/dist/api/kws/index.d.ts.map +1 -1
- package/dist/api/kws/index.js.map +1 -1
- package/dist/api/kws/types.d.ts +3 -3
- package/dist/api/kws/types.d.ts.map +1 -1
- package/dist/api/kws/types.js.map +1 -1
- package/dist/api/kws/util.d.ts +4 -4
- package/dist/api/kws/util.d.ts.map +1 -1
- package/dist/api/kws/util.js.map +1 -1
- package/dist/api/kws/webhook.d.ts +2 -2
- package/dist/api/kws/webhook.d.ts.map +1 -1
- package/dist/api/kws/webhook.js.map +1 -1
- package/dist/api/sitemap.d.ts +1 -1
- package/dist/api/sitemap.d.ts.map +1 -1
- package/dist/api/sitemap.js.map +1 -1
- package/dist/api/util.d.ts +3 -3
- package/dist/api/util.d.ts.map +1 -1
- package/dist/api/util.js.map +1 -1
- package/dist/api/well-known.d.ts +1 -1
- package/dist/api/well-known.d.ts.map +1 -1
- package/dist/api/well-known.js.map +1 -1
- package/dist/auth-verifier.d.ts +5 -5
- package/dist/auth-verifier.d.ts.map +1 -1
- package/dist/auth-verifier.js +1 -1
- package/dist/auth-verifier.js.map +1 -1
- package/dist/bsync.d.ts +2 -2
- package/dist/bsync.d.ts.map +1 -1
- package/dist/bsync.js.map +1 -1
- package/dist/cache/read-through.d.ts +1 -1
- package/dist/cache/read-through.d.ts.map +1 -1
- package/dist/cache/read-through.js.map +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js.map +1 -1
- package/dist/context.d.ts +18 -18
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js.map +1 -1
- package/dist/courier.d.ts +2 -2
- package/dist/courier.d.ts.map +1 -1
- package/dist/courier.js.map +1 -1
- package/dist/data-plane/client/hosts.d.ts +1 -1
- package/dist/data-plane/client/hosts.d.ts.map +1 -1
- package/dist/data-plane/client/hosts.js.map +1 -1
- package/dist/data-plane/client/index.d.ts +2 -2
- package/dist/data-plane/client/index.d.ts.map +1 -1
- package/dist/data-plane/client/index.js.map +1 -1
- package/dist/data-plane/client/util.d.ts +1 -1
- package/dist/data-plane/client/util.d.ts.map +1 -1
- package/dist/data-plane/client/util.js.map +1 -1
- package/dist/data-plane/server/bsync-subscription.d.ts +2 -2
- package/dist/data-plane/server/bsync-subscription.d.ts.map +1 -1
- package/dist/data-plane/server/bsync-subscription.js +1 -1
- package/dist/data-plane/server/bsync-subscription.js.map +1 -1
- package/dist/data-plane/server/db/database-schema.d.ts +44 -44
- package/dist/data-plane/server/db/database-schema.d.ts.map +1 -1
- package/dist/data-plane/server/db/database-schema.js.map +1 -1
- package/dist/data-plane/server/db/db.d.ts +2 -2
- package/dist/data-plane/server/db/db.d.ts.map +1 -1
- package/dist/data-plane/server/db/db.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230309T045948368Z-init.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20230309T045948368Z-init.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20230309T045948368Z-init.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230408T152211201Z-notification-init.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20230408T152211201Z-notification-init.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20230408T152211201Z-notification-init.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230417T210628672Z-moderation-init.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20230417T210628672Z-moderation-init.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20230417T210628672Z-moderation-init.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230420T211446071Z-did-cache.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20230420T211446071Z-did-cache.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20230420T211446071Z-did-cache.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230427T194702079Z-notif-record-index.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20230427T194702079Z-notif-record-index.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20230427T194702079Z-notif-record-index.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230605T144730094Z-post-profile-aggs.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20230605T144730094Z-post-profile-aggs.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20230605T144730094Z-post-profile-aggs.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230607T211442112Z-feed-generator-init.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20230607T211442112Z-feed-generator-init.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20230607T211442112Z-feed-generator-init.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230608T155101190Z-algo-whats-hot-view.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20230608T155101190Z-algo-whats-hot-view.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20230608T155101190Z-algo-whats-hot-view.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230608T201813132Z-mute-lists.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20230608T201813132Z-mute-lists.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20230608T201813132Z-mute-lists.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230608T205147239Z-mutes.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20230608T205147239Z-mutes.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20230608T205147239Z-mutes.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230609T153623961Z-blocks.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20230609T153623961Z-blocks.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20230609T153623961Z-blocks.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230609T232122649Z-actor-deletion-indexes.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20230609T232122649Z-actor-deletion-indexes.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20230609T232122649Z-actor-deletion-indexes.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230610T203555962Z-suggested-follows.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20230610T203555962Z-suggested-follows.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20230610T203555962Z-suggested-follows.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230611T215300060Z-actor-state.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20230611T215300060Z-actor-state.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20230611T215300060Z-actor-state.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230620T161134972Z-post-langs.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20230620T161134972Z-post-langs.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20230620T161134972Z-post-langs.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230627T212437895Z-optional-handle.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20230627T212437895Z-optional-handle.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20230627T212437895Z-optional-handle.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230629T220835893Z-remove-post-hierarchy.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20230629T220835893Z-remove-post-hierarchy.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20230629T220835893Z-remove-post-hierarchy.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230703T045536691Z-feed-and-label-indices.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20230703T045536691Z-feed-and-label-indices.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20230703T045536691Z-feed-and-label-indices.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230720T164800037Z-posts-cursor-idx.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20230720T164800037Z-posts-cursor-idx.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20230720T164800037Z-posts-cursor-idx.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230807T035309811Z-feed-item-delete-invite-for-user-idx.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20230807T035309811Z-feed-item-delete-invite-for-user-idx.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20230807T035309811Z-feed-item-delete-invite-for-user-idx.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230808T172902639Z-repo-rev.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20230808T172902639Z-repo-rev.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20230808T172902639Z-repo-rev.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230810T203349843Z-action-duration.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20230810T203349843Z-action-duration.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20230810T203349843Z-action-duration.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230817T195936007Z-native-notifications.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20230817T195936007Z-native-notifications.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20230817T195936007Z-native-notifications.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230830T205507322Z-suggested-feeds.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20230830T205507322Z-suggested-feeds.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20230830T205507322Z-suggested-feeds.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230904T211011773Z-block-lists.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20230904T211011773Z-block-lists.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20230904T211011773Z-block-lists.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230906T222220386Z-thread-gating.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20230906T222220386Z-thread-gating.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20230906T222220386Z-thread-gating.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230920T213858047Z-add-tags-to-post.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20230920T213858047Z-add-tags-to-post.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20230920T213858047Z-add-tags-to-post.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230929T192920807Z-record-cursor-indexes.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20230929T192920807Z-record-cursor-indexes.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20230929T192920807Z-record-cursor-indexes.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20231003T202833377Z-create-moderation-subject-status.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20231003T202833377Z-create-moderation-subject-status.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20231003T202833377Z-create-moderation-subject-status.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20231220T225126090Z-blob-takedowns.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20231220T225126090Z-blob-takedowns.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20231220T225126090Z-blob-takedowns.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20240124T023719200Z-tagged-suggestions.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20240124T023719200Z-tagged-suggestions.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20240124T023719200Z-tagged-suggestions.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20240226T225725627Z-labelers.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20240226T225725627Z-labelers.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20240226T225725627Z-labelers.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20240530T170337073Z-account-deactivation.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20240530T170337073Z-account-deactivation.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20240530T170337073Z-account-deactivation.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20240606T171229898Z-thread-mutes.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20240606T171229898Z-thread-mutes.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20240606T171229898Z-thread-mutes.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20240606T222548219Z-starter-packs.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20240606T222548219Z-starter-packs.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20240606T222548219Z-starter-packs.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20240719T203853939Z-priority-notifs.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20240719T203853939Z-priority-notifs.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20240719T203853939Z-priority-notifs.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20240723T220700077Z-quotes-post-aggs.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20240723T220700077Z-quotes-post-aggs.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20240723T220700077Z-quotes-post-aggs.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20240723T220703655Z-quotes.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20240723T220703655Z-quotes.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20240723T220703655Z-quotes.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20240801T193939827Z-post-gate.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20240801T193939827Z-post-gate.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20240801T193939827Z-post-gate.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20240808T224251220Z-post-gate-flags.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20240808T224251220Z-post-gate-flags.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20240808T224251220Z-post-gate-flags.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20240829T211238293Z-simplify-actor-sync.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20240829T211238293Z-simplify-actor-sync.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20240829T211238293Z-simplify-actor-sync.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20240831T134810923Z-pinned-posts.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20240831T134810923Z-pinned-posts.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20240831T134810923Z-pinned-posts.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20241114T153108102Z-add-starter-packs-name.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20241114T153108102Z-add-starter-packs-name.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20241114T153108102Z-add-starter-packs-name.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20250116T222618297Z-post-embed-video.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20250116T222618297Z-post-embed-video.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20250116T222618297Z-post-embed-video.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20250207T174822012Z-add-label-exp.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20250207T174822012Z-add-label-exp.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20250207T174822012Z-add-label-exp.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20250404T163421487Z-verifications.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20250404T163421487Z-verifications.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20250404T163421487Z-verifications.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20250526T023712742Z-like-repost-via.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20250526T023712742Z-like-repost-via.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20250526T023712742Z-like-repost-via.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20250528T221913281Z-add-record-tags.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20250528T221913281Z-add-record-tags.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20250528T221913281Z-add-record-tags.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20250602T190357447Z-add-private-data.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20250602T190357447Z-add-private-data.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20250602T190357447Z-add-private-data.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20250611T140649895Z-add-activity-subscription.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20250611T140649895Z-add-activity-subscription.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20250611T140649895Z-add-activity-subscription.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20250627T025331240Z-add-actor-age-assurance-columns.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20250627T025331240Z-add-actor-age-assurance-columns.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20250627T025331240Z-add-actor-age-assurance-columns.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20250812T183735692Z-add-bookmarks.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20250812T183735692Z-add-bookmarks.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20250812T183735692Z-add-bookmarks.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20250813T174955711Z-add-post-agg-bookmarks.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20250813T174955711Z-add-post-agg-bookmarks.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20250813T174955711Z-add-post-agg-bookmarks.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20251120T004738098Z-update-actor-age-assurance-v2.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20251120T004738098Z-update-actor-age-assurance-v2.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20251120T004738098Z-update-actor-age-assurance-v2.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20260112T133951271Z-add-drafts.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20260112T133951271Z-add-drafts.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20260112T133951271Z-add-drafts.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20260604T224952774Z-post-embed-gallery-image.d.ts +1 -1
- package/dist/data-plane/server/db/migrations/20260604T224952774Z-post-embed-gallery-image.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20260604T224952774Z-post-embed-gallery-image.js.map +1 -1
- package/dist/data-plane/server/db/migrations/provider.d.ts +2 -2
- package/dist/data-plane/server/db/migrations/provider.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/provider.js.map +1 -1
- package/dist/data-plane/server/db/pagination.d.ts +2 -2
- package/dist/data-plane/server/db/pagination.d.ts.map +1 -1
- package/dist/data-plane/server/db/pagination.js.map +1 -1
- package/dist/data-plane/server/db/tables/actor-block.d.ts +1 -1
- package/dist/data-plane/server/db/tables/actor-block.d.ts.map +1 -1
- package/dist/data-plane/server/db/tables/actor-block.js.map +1 -1
- package/dist/data-plane/server/db/tables/actor.d.ts +1 -1
- package/dist/data-plane/server/db/tables/actor.d.ts.map +1 -1
- package/dist/data-plane/server/db/tables/actor.js.map +1 -1
- package/dist/data-plane/server/db/tables/did-cache.d.ts +1 -1
- package/dist/data-plane/server/db/tables/did-cache.d.ts.map +1 -1
- package/dist/data-plane/server/db/tables/did-cache.js.map +1 -1
- package/dist/data-plane/server/db/tables/feed-generator.d.ts +1 -1
- package/dist/data-plane/server/db/tables/feed-generator.d.ts.map +1 -1
- package/dist/data-plane/server/db/tables/feed-generator.js.map +1 -1
- package/dist/data-plane/server/db/tables/follow.d.ts +1 -1
- package/dist/data-plane/server/db/tables/follow.d.ts.map +1 -1
- package/dist/data-plane/server/db/tables/follow.js.map +1 -1
- package/dist/data-plane/server/db/tables/labeler.d.ts +1 -1
- package/dist/data-plane/server/db/tables/labeler.d.ts.map +1 -1
- package/dist/data-plane/server/db/tables/labeler.js.map +1 -1
- package/dist/data-plane/server/db/tables/like.d.ts +1 -1
- package/dist/data-plane/server/db/tables/like.d.ts.map +1 -1
- package/dist/data-plane/server/db/tables/like.js.map +1 -1
- package/dist/data-plane/server/db/tables/list-block.d.ts +1 -1
- package/dist/data-plane/server/db/tables/list-block.d.ts.map +1 -1
- package/dist/data-plane/server/db/tables/list-block.js.map +1 -1
- package/dist/data-plane/server/db/tables/list-item.d.ts +1 -1
- package/dist/data-plane/server/db/tables/list-item.d.ts.map +1 -1
- package/dist/data-plane/server/db/tables/list-item.js.map +1 -1
- package/dist/data-plane/server/db/tables/list.d.ts +1 -1
- package/dist/data-plane/server/db/tables/list.d.ts.map +1 -1
- package/dist/data-plane/server/db/tables/list.js.map +1 -1
- package/dist/data-plane/server/db/tables/notification.d.ts +1 -1
- package/dist/data-plane/server/db/tables/notification.d.ts.map +1 -1
- package/dist/data-plane/server/db/tables/notification.js.map +1 -1
- package/dist/data-plane/server/db/tables/post-agg.d.ts +1 -1
- package/dist/data-plane/server/db/tables/post-agg.d.ts.map +1 -1
- package/dist/data-plane/server/db/tables/post-agg.js.map +1 -1
- package/dist/data-plane/server/db/tables/post.d.ts +1 -1
- package/dist/data-plane/server/db/tables/post.d.ts.map +1 -1
- package/dist/data-plane/server/db/tables/post.js.map +1 -1
- package/dist/data-plane/server/db/tables/profile-agg.d.ts +1 -1
- package/dist/data-plane/server/db/tables/profile-agg.d.ts.map +1 -1
- package/dist/data-plane/server/db/tables/profile-agg.js.map +1 -1
- package/dist/data-plane/server/db/tables/quote.d.ts +1 -1
- package/dist/data-plane/server/db/tables/quote.d.ts.map +1 -1
- package/dist/data-plane/server/db/tables/quote.js.map +1 -1
- package/dist/data-plane/server/db/tables/record.d.ts +1 -1
- package/dist/data-plane/server/db/tables/record.d.ts.map +1 -1
- package/dist/data-plane/server/db/tables/record.js.map +1 -1
- package/dist/data-plane/server/db/tables/repost.d.ts +1 -1
- package/dist/data-plane/server/db/tables/repost.d.ts.map +1 -1
- package/dist/data-plane/server/db/tables/repost.js.map +1 -1
- package/dist/data-plane/server/db/tables/starter-pack.d.ts +1 -1
- package/dist/data-plane/server/db/tables/starter-pack.d.ts.map +1 -1
- package/dist/data-plane/server/db/tables/starter-pack.js.map +1 -1
- package/dist/data-plane/server/db/tables/verification.d.ts +1 -1
- package/dist/data-plane/server/db/tables/verification.d.ts.map +1 -1
- package/dist/data-plane/server/db/tables/verification.js.map +1 -1
- package/dist/data-plane/server/db/types.d.ts +1 -1
- package/dist/data-plane/server/db/types.d.ts.map +1 -1
- package/dist/data-plane/server/db/types.js.map +1 -1
- package/dist/data-plane/server/db/util.d.ts +2 -2
- package/dist/data-plane/server/db/util.d.ts.map +1 -1
- package/dist/data-plane/server/db/util.js.map +1 -1
- package/dist/data-plane/server/index.d.ts +2 -2
- package/dist/data-plane/server/index.d.ts.map +1 -1
- package/dist/data-plane/server/index.js.map +1 -1
- package/dist/data-plane/server/indexing/index.d.ts +5 -5
- package/dist/data-plane/server/indexing/index.d.ts.map +1 -1
- package/dist/data-plane/server/indexing/index.js.map +1 -1
- package/dist/data-plane/server/indexing/plugins/block.d.ts +2 -2
- package/dist/data-plane/server/indexing/plugins/block.d.ts.map +1 -1
- package/dist/data-plane/server/indexing/plugins/block.js.map +1 -1
- package/dist/data-plane/server/indexing/plugins/chat-declaration.d.ts +2 -2
- package/dist/data-plane/server/indexing/plugins/chat-declaration.d.ts.map +1 -1
- package/dist/data-plane/server/indexing/plugins/chat-declaration.js.map +1 -1
- package/dist/data-plane/server/indexing/plugins/feed-generator.d.ts +2 -2
- package/dist/data-plane/server/indexing/plugins/feed-generator.d.ts.map +1 -1
- package/dist/data-plane/server/indexing/plugins/feed-generator.js.map +1 -1
- package/dist/data-plane/server/indexing/plugins/follow.d.ts +2 -2
- package/dist/data-plane/server/indexing/plugins/follow.d.ts.map +1 -1
- package/dist/data-plane/server/indexing/plugins/follow.js.map +1 -1
- package/dist/data-plane/server/indexing/plugins/germ-declaration.d.ts +2 -2
- package/dist/data-plane/server/indexing/plugins/germ-declaration.d.ts.map +1 -1
- package/dist/data-plane/server/indexing/plugins/germ-declaration.js.map +1 -1
- package/dist/data-plane/server/indexing/plugins/labeler.d.ts +2 -2
- package/dist/data-plane/server/indexing/plugins/labeler.d.ts.map +1 -1
- package/dist/data-plane/server/indexing/plugins/labeler.js.map +1 -1
- package/dist/data-plane/server/indexing/plugins/like.d.ts +2 -2
- package/dist/data-plane/server/indexing/plugins/like.d.ts.map +1 -1
- package/dist/data-plane/server/indexing/plugins/like.js.map +1 -1
- package/dist/data-plane/server/indexing/plugins/list-block.d.ts +2 -2
- package/dist/data-plane/server/indexing/plugins/list-block.d.ts.map +1 -1
- package/dist/data-plane/server/indexing/plugins/list-block.js.map +1 -1
- package/dist/data-plane/server/indexing/plugins/list-item.d.ts +2 -2
- package/dist/data-plane/server/indexing/plugins/list-item.d.ts.map +1 -1
- package/dist/data-plane/server/indexing/plugins/list-item.js.map +1 -1
- package/dist/data-plane/server/indexing/plugins/list.d.ts +2 -2
- package/dist/data-plane/server/indexing/plugins/list.d.ts.map +1 -1
- package/dist/data-plane/server/indexing/plugins/list.js.map +1 -1
- package/dist/data-plane/server/indexing/plugins/notif-declaration.d.ts +2 -2
- package/dist/data-plane/server/indexing/plugins/notif-declaration.d.ts.map +1 -1
- package/dist/data-plane/server/indexing/plugins/notif-declaration.js.map +1 -1
- package/dist/data-plane/server/indexing/plugins/post-gate.d.ts +2 -2
- package/dist/data-plane/server/indexing/plugins/post-gate.d.ts.map +1 -1
- package/dist/data-plane/server/indexing/plugins/post-gate.js.map +1 -1
- package/dist/data-plane/server/indexing/plugins/post.d.ts +4 -4
- package/dist/data-plane/server/indexing/plugins/post.d.ts.map +1 -1
- package/dist/data-plane/server/indexing/plugins/post.js.map +1 -1
- package/dist/data-plane/server/indexing/plugins/profile.d.ts +2 -2
- package/dist/data-plane/server/indexing/plugins/profile.d.ts.map +1 -1
- package/dist/data-plane/server/indexing/plugins/profile.js.map +1 -1
- package/dist/data-plane/server/indexing/plugins/repost.d.ts +2 -2
- package/dist/data-plane/server/indexing/plugins/repost.d.ts.map +1 -1
- package/dist/data-plane/server/indexing/plugins/repost.js.map +1 -1
- package/dist/data-plane/server/indexing/plugins/starter-pack.d.ts +2 -2
- package/dist/data-plane/server/indexing/plugins/starter-pack.d.ts.map +1 -1
- package/dist/data-plane/server/indexing/plugins/starter-pack.js.map +1 -1
- package/dist/data-plane/server/indexing/plugins/status.d.ts +2 -2
- package/dist/data-plane/server/indexing/plugins/status.d.ts.map +1 -1
- package/dist/data-plane/server/indexing/plugins/status.js.map +1 -1
- package/dist/data-plane/server/indexing/plugins/thread-gate.d.ts +2 -2
- package/dist/data-plane/server/indexing/plugins/thread-gate.d.ts.map +1 -1
- package/dist/data-plane/server/indexing/plugins/thread-gate.js.map +1 -1
- package/dist/data-plane/server/indexing/plugins/verification.d.ts +2 -2
- package/dist/data-plane/server/indexing/plugins/verification.d.ts.map +1 -1
- package/dist/data-plane/server/indexing/plugins/verification.js.map +1 -1
- package/dist/data-plane/server/indexing/processor.d.ts +6 -6
- package/dist/data-plane/server/indexing/processor.d.ts.map +1 -1
- package/dist/data-plane/server/indexing/processor.js +1 -1
- package/dist/data-plane/server/indexing/processor.js.map +1 -1
- package/dist/data-plane/server/routes/activity-subscription.d.ts +3 -3
- package/dist/data-plane/server/routes/activity-subscription.d.ts.map +1 -1
- package/dist/data-plane/server/routes/activity-subscription.js.map +1 -1
- package/dist/data-plane/server/routes/blocks.d.ts +3 -3
- package/dist/data-plane/server/routes/blocks.d.ts.map +1 -1
- package/dist/data-plane/server/routes/blocks.js.map +1 -1
- package/dist/data-plane/server/routes/bookmarks.d.ts +3 -3
- package/dist/data-plane/server/routes/bookmarks.d.ts.map +1 -1
- package/dist/data-plane/server/routes/bookmarks.js.map +1 -1
- package/dist/data-plane/server/routes/drafts.d.ts +3 -3
- package/dist/data-plane/server/routes/drafts.d.ts.map +1 -1
- package/dist/data-plane/server/routes/drafts.js.map +1 -1
- package/dist/data-plane/server/routes/feed-gens.d.ts +3 -3
- package/dist/data-plane/server/routes/feed-gens.d.ts.map +1 -1
- package/dist/data-plane/server/routes/feed-gens.js.map +1 -1
- package/dist/data-plane/server/routes/feeds.d.ts +3 -3
- package/dist/data-plane/server/routes/feeds.d.ts.map +1 -1
- package/dist/data-plane/server/routes/feeds.js.map +1 -1
- package/dist/data-plane/server/routes/follows.d.ts +3 -3
- package/dist/data-plane/server/routes/follows.d.ts.map +1 -1
- package/dist/data-plane/server/routes/follows.js.map +1 -1
- package/dist/data-plane/server/routes/identity.d.ts +4 -4
- package/dist/data-plane/server/routes/identity.d.ts.map +1 -1
- package/dist/data-plane/server/routes/identity.js +1 -1
- package/dist/data-plane/server/routes/identity.js.map +1 -1
- package/dist/data-plane/server/routes/index.d.ts +3 -3
- package/dist/data-plane/server/routes/index.d.ts.map +1 -1
- package/dist/data-plane/server/routes/index.js.map +1 -1
- package/dist/data-plane/server/routes/interactions.d.ts +3 -3
- package/dist/data-plane/server/routes/interactions.d.ts.map +1 -1
- package/dist/data-plane/server/routes/interactions.js.map +1 -1
- package/dist/data-plane/server/routes/labels.d.ts +3 -3
- package/dist/data-plane/server/routes/labels.d.ts.map +1 -1
- package/dist/data-plane/server/routes/labels.js.map +1 -1
- package/dist/data-plane/server/routes/likes.d.ts +3 -3
- package/dist/data-plane/server/routes/likes.d.ts.map +1 -1
- package/dist/data-plane/server/routes/likes.js.map +1 -1
- package/dist/data-plane/server/routes/lists.d.ts +3 -3
- package/dist/data-plane/server/routes/lists.d.ts.map +1 -1
- package/dist/data-plane/server/routes/lists.js.map +1 -1
- package/dist/data-plane/server/routes/moderation.d.ts +3 -3
- package/dist/data-plane/server/routes/moderation.d.ts.map +1 -1
- package/dist/data-plane/server/routes/moderation.js.map +1 -1
- package/dist/data-plane/server/routes/mutes.d.ts +3 -3
- package/dist/data-plane/server/routes/mutes.d.ts.map +1 -1
- package/dist/data-plane/server/routes/mutes.js.map +1 -1
- package/dist/data-plane/server/routes/notifs.d.ts +4 -4
- package/dist/data-plane/server/routes/notifs.d.ts.map +1 -1
- package/dist/data-plane/server/routes/notifs.js.map +1 -1
- package/dist/data-plane/server/routes/profile.d.ts +3 -3
- package/dist/data-plane/server/routes/profile.d.ts.map +1 -1
- package/dist/data-plane/server/routes/profile.js +1 -1
- package/dist/data-plane/server/routes/profile.js.map +1 -1
- package/dist/data-plane/server/routes/quotes.d.ts +3 -3
- package/dist/data-plane/server/routes/quotes.d.ts.map +1 -1
- package/dist/data-plane/server/routes/quotes.js.map +1 -1
- package/dist/data-plane/server/routes/records.d.ts +3 -3
- package/dist/data-plane/server/routes/records.d.ts.map +1 -1
- package/dist/data-plane/server/routes/records.js.map +1 -1
- package/dist/data-plane/server/routes/relationships.d.ts +3 -3
- package/dist/data-plane/server/routes/relationships.d.ts.map +1 -1
- package/dist/data-plane/server/routes/relationships.js.map +1 -1
- package/dist/data-plane/server/routes/reposts.d.ts +3 -3
- package/dist/data-plane/server/routes/reposts.d.ts.map +1 -1
- package/dist/data-plane/server/routes/reposts.js.map +1 -1
- package/dist/data-plane/server/routes/search.d.ts +3 -3
- package/dist/data-plane/server/routes/search.d.ts.map +1 -1
- package/dist/data-plane/server/routes/search.js.map +1 -1
- package/dist/data-plane/server/routes/site-standard.d.ts +3 -3
- package/dist/data-plane/server/routes/site-standard.d.ts.map +1 -1
- package/dist/data-plane/server/routes/site-standard.js.map +1 -1
- package/dist/data-plane/server/routes/sitemap.d.ts +2 -2
- package/dist/data-plane/server/routes/sitemap.d.ts.map +1 -1
- package/dist/data-plane/server/routes/sitemap.js.map +1 -1
- package/dist/data-plane/server/routes/starter-packs.d.ts +3 -3
- package/dist/data-plane/server/routes/starter-packs.d.ts.map +1 -1
- package/dist/data-plane/server/routes/starter-packs.js.map +1 -1
- package/dist/data-plane/server/routes/suggestions.d.ts +3 -3
- package/dist/data-plane/server/routes/suggestions.d.ts.map +1 -1
- package/dist/data-plane/server/routes/suggestions.js.map +1 -1
- package/dist/data-plane/server/routes/sync.d.ts +3 -3
- package/dist/data-plane/server/routes/sync.d.ts.map +1 -1
- package/dist/data-plane/server/routes/sync.js.map +1 -1
- package/dist/data-plane/server/routes/threads.d.ts +3 -3
- package/dist/data-plane/server/routes/threads.d.ts.map +1 -1
- package/dist/data-plane/server/routes/threads.js.map +1 -1
- package/dist/data-plane/server/subscription.d.ts +2 -2
- package/dist/data-plane/server/subscription.d.ts.map +1 -1
- package/dist/data-plane/server/subscription.js +1 -1
- package/dist/data-plane/server/subscription.js.map +1 -1
- package/dist/data-plane/server/util.d.ts +2 -2
- package/dist/data-plane/server/util.d.ts.map +1 -1
- package/dist/data-plane/server/util.js.map +1 -1
- package/dist/error.d.ts +1 -1
- package/dist/error.d.ts.map +1 -1
- package/dist/error.js.map +1 -1
- package/dist/etcd.d.ts +1 -1
- package/dist/etcd.d.ts.map +1 -1
- package/dist/etcd.js.map +1 -1
- package/dist/feature-gates/index.d.ts +1 -1
- package/dist/feature-gates/index.d.ts.map +1 -1
- package/dist/feature-gates/index.js +1 -0
- package/dist/feature-gates/index.js.map +1 -1
- package/dist/feature-gates/types.d.ts +1 -1
- package/dist/feature-gates/types.d.ts.map +1 -1
- package/dist/feature-gates/types.js.map +1 -1
- package/dist/feature-gates/utils.d.ts +2 -2
- package/dist/feature-gates/utils.d.ts.map +1 -1
- package/dist/feature-gates/utils.js.map +1 -1
- package/dist/hydration/actor.d.ts +7 -5
- package/dist/hydration/actor.d.ts.map +1 -1
- package/dist/hydration/actor.js +2 -0
- package/dist/hydration/actor.js.map +1 -1
- package/dist/hydration/external.d.ts +4 -4
- package/dist/hydration/external.d.ts.map +1 -1
- package/dist/hydration/external.js +1 -1
- package/dist/hydration/external.js.map +1 -1
- package/dist/hydration/feed.d.ts +4 -4
- package/dist/hydration/feed.d.ts.map +1 -1
- package/dist/hydration/feed.js.map +1 -1
- package/dist/hydration/graph.d.ts +5 -5
- package/dist/hydration/graph.d.ts.map +1 -1
- package/dist/hydration/graph.js +1 -1
- package/dist/hydration/graph.js.map +1 -1
- package/dist/hydration/hydrator.d.ts +11 -11
- package/dist/hydration/hydrator.d.ts.map +1 -1
- package/dist/hydration/hydrator.js +1 -1
- package/dist/hydration/hydrator.js.map +1 -1
- package/dist/hydration/label.d.ts +5 -5
- package/dist/hydration/label.d.ts.map +1 -1
- package/dist/hydration/label.js +1 -1
- package/dist/hydration/label.js.map +1 -1
- package/dist/hydration/util.d.ts +3 -3
- package/dist/hydration/util.d.ts.map +1 -1
- package/dist/hydration/util.js.map +1 -1
- package/dist/image/invalidator.d.ts +1 -1
- package/dist/image/invalidator.d.ts.map +1 -1
- package/dist/image/invalidator.js.map +1 -1
- package/dist/image/server.d.ts +3 -3
- package/dist/image/server.d.ts.map +1 -1
- package/dist/image/server.js.map +1 -1
- package/dist/image/sharp.d.ts +2 -2
- package/dist/image/sharp.d.ts.map +1 -1
- package/dist/image/sharp.js.map +1 -1
- package/dist/image/uri.d.ts +2 -2
- package/dist/image/uri.d.ts.map +1 -1
- package/dist/image/uri.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/kws.d.ts +2 -2
- package/dist/kws.d.ts.map +1 -1
- package/dist/kws.js.map +1 -1
- package/dist/lexicons/app/bsky/actor/defs.defs.d.ts +1 -1
- package/dist/lexicons/app/bsky/actor/defs.defs.js.map +1 -1
- package/dist/logger.d.ts +1 -1
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js.map +1 -1
- package/dist/pipeline.d.ts +1 -1
- package/dist/pipeline.d.ts.map +1 -1
- package/dist/pipeline.js.map +1 -1
- package/dist/rolodex.d.ts +2 -2
- package/dist/rolodex.d.ts.map +1 -1
- package/dist/rolodex.js.map +1 -1
- package/dist/stash.d.ts +2 -2
- package/dist/stash.d.ts.map +1 -1
- package/dist/stash.js.map +1 -1
- package/dist/util/http.d.ts +1 -1
- package/dist/util/http.d.ts.map +1 -1
- package/dist/util/http.js.map +1 -1
- package/dist/util/standard-site.d.ts +1 -1
- package/dist/util/standard-site.d.ts.map +1 -1
- package/dist/util/standard-site.js.map +1 -1
- package/dist/util/uris.d.ts +2 -2
- package/dist/util/uris.d.ts.map +1 -1
- package/dist/util/uris.js.map +1 -1
- package/dist/util.d.ts +1 -1
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js.map +1 -1
- package/dist/views/index.d.ts +11 -11
- package/dist/views/index.d.ts.map +1 -1
- package/dist/views/index.js.map +1 -1
- package/dist/views/threads-v2.d.ts +3 -3
- package/dist/views/threads-v2.d.ts.map +1 -1
- package/dist/views/threads-v2.js.map +1 -1
- package/dist/views/types.d.ts +1 -1
- package/dist/views/types.d.ts.map +1 -1
- package/dist/views/types.js.map +1 -1
- package/dist/views/util.d.ts +2 -2
- package/dist/views/util.d.ts.map +1 -1
- package/dist/views/util.js.map +1 -1
- package/package.json +14 -14
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { app } from '../../../../lexicons/index.js';
|
|
2
|
-
import { BackgroundQueue } from '../../background.js';
|
|
3
|
-
import { Database } from '../../db/index.js';
|
|
2
|
+
import type { BackgroundQueue } from '../../background.js';
|
|
3
|
+
import type { Database } from '../../db/index.js';
|
|
4
4
|
import { RecordProcessor } from '../processor.js';
|
|
5
5
|
export type PluginType = ReturnType<typeof makePlugin>;
|
|
6
6
|
export declare const makePlugin: (db: Database, background: BackgroundQueue<Database>) => RecordProcessor<import("@atproto/lex").RecordSchema<"tid", "app.bsky.graph.starterpack", import("@atproto/lex").Validator<Omit<app.bsky.graph.starterpack.Main, "$type">, Omit<app.bsky.graph.starterpack.Main, "$type">>>, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"starter-pack.d.ts","sourceRoot":"","sources":["../../../../../src/data-plane/server/indexing/plugins/starter-pack.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,GAAG,EAAE,MAAM,+BAA+B,CAAA;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"starter-pack.d.ts","sourceRoot":"","sources":["../../../../../src/data-plane/server/indexing/plugins/starter-pack.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,GAAG,EAAE,MAAM,+BAA+B,CAAA;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAK1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAmDjD,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAA;AACtD,eAAO,MAAM,UAAU,OACjB,QAAQ,cACA,eAAe,CAAC,QAAQ,CAAC;;;;;;;;EAUtC,CAAA;eAEc,UAAU"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"starter-pack.js","sourceRoot":"","sources":["../../../../../src/data-plane/server/indexing/plugins/starter-pack.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"starter-pack.js","sourceRoot":"","sources":["../../../../../src/data-plane/server/indexing/plugins/starter-pack.ts"],"names":[],"mappings":"AAEA,OAAO,EAAc,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AACrE,OAAO,EAAE,GAAG,EAAE,MAAM,+BAA+B,CAAA;AAOnD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAIjD,MAAM,QAAQ,GAAG,KAAK,EACpB,EAAkB,EAClB,GAAU,EACV,GAAQ,EACR,GAAoC,EACpC,SAAiB,EACmB,EAAE;IACtC,MAAM,QAAQ,GAAG,MAAM,EAAE;SACtB,UAAU,CAAC,cAAc,CAAC;SAC1B,MAAM,CAAC;QACN,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;QACnB,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;QACnB,OAAO,EAAE,GAAG,CAAC,IAAI;QACjB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,SAAS,EAAE,uBAAuB,CAAC,GAAG,CAAC,SAAS,CAAC;QACjD,SAAS,EAAE,SAAS;KACrB,CAAC;SACD,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC;SAClC,YAAY,EAAE;SACd,gBAAgB,EAAE,CAAA;IACrB,OAAO,QAAQ,IAAI,IAAI,CAAA;AACzB,CAAC,CAAA;AAED,MAAM,aAAa,GAAG,KAAK,IAA2B,EAAE;IACtD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,GAAG,EAAE;IAC3B,OAAO,EAAE,CAAA;AACX,CAAC,CAAA;AAED,MAAM,QAAQ,GAAG,KAAK,EACpB,EAAkB,EAClB,GAAU,EAC0B,EAAE;IACtC,MAAM,OAAO,GAAG,MAAM,EAAE;SACrB,UAAU,CAAC,cAAc,CAAC;SAC1B,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC;SACjC,YAAY,EAAE;SACd,gBAAgB,EAAE,CAAA;IACrB,OAAO,OAAO,IAAI,IAAI,CAAA;AACxB,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,GAAG,EAAE;IAC3B,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAA;AACrC,CAAC,CAAA;AAGD,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,EAAY,EACZ,UAAqC,EACrC,EAAE;IACF,OAAO,IAAI,eAAe,CAAC,EAAE,EAAE,UAAU,EAAE;QACzC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI;QACvC,QAAQ;QACR,aAAa;QACb,QAAQ;QACR,eAAe;QACf,eAAe;KAChB,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,eAAe,UAAU,CAAA","sourcesContent":["import type { Selectable } from 'kysely'\nimport type { Cid } from '@atproto/lex'\nimport { type AtUri, normalizeDatetimeAlways } from '@atproto/syntax'\nimport { app } from '../../../../lexicons/index.js'\nimport type { BackgroundQueue } from '../../background.js'\nimport type {\n DatabaseSchema,\n DatabaseSchemaType,\n} from '../../db/database-schema.js'\nimport type { Database } from '../../db/index.js'\nimport { RecordProcessor } from '../processor.js'\n\ntype IndexedStarterPack = Selectable<DatabaseSchemaType['starter_pack']>\n\nconst insertFn = async (\n db: DatabaseSchema,\n uri: AtUri,\n cid: Cid,\n obj: app.bsky.graph.starterpack.Main,\n timestamp: string,\n): Promise<IndexedStarterPack | null> => {\n const inserted = await db\n .insertInto('starter_pack')\n .values({\n uri: uri.toString(),\n cid: cid.toString(),\n creator: uri.host,\n name: obj.name,\n createdAt: normalizeDatetimeAlways(obj.createdAt),\n indexedAt: timestamp,\n })\n .onConflict((oc) => oc.doNothing())\n .returningAll()\n .executeTakeFirst()\n return inserted || null\n}\n\nconst findDuplicate = async (): Promise<AtUri | null> => {\n return null\n}\n\nconst notifsForInsert = () => {\n return []\n}\n\nconst deleteFn = async (\n db: DatabaseSchema,\n uri: AtUri,\n): Promise<IndexedStarterPack | null> => {\n const deleted = await db\n .deleteFrom('starter_pack')\n .where('uri', '=', uri.toString())\n .returningAll()\n .executeTakeFirst()\n return deleted || null\n}\n\nconst notifsForDelete = () => {\n return { notifs: [], toDelete: [] }\n}\n\nexport type PluginType = ReturnType<typeof makePlugin>\nexport const makePlugin = (\n db: Database,\n background: BackgroundQueue<Database>,\n) => {\n return new RecordProcessor(db, background, {\n schema: app.bsky.graph.starterpack.main,\n insertFn,\n findDuplicate,\n deleteFn,\n notifsForInsert,\n notifsForDelete,\n })\n}\n\nexport default makePlugin\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { app } from '../../../../lexicons/index.js';
|
|
2
|
-
import { BackgroundQueue } from '../../background.js';
|
|
3
|
-
import { Database } from '../../db/index.js';
|
|
2
|
+
import type { BackgroundQueue } from '../../background.js';
|
|
3
|
+
import type { Database } from '../../db/index.js';
|
|
4
4
|
import { RecordProcessor } from '../processor.js';
|
|
5
5
|
export type PluginType = ReturnType<typeof makePlugin>;
|
|
6
6
|
export declare const makePlugin: (db: Database, background: BackgroundQueue<Database>) => RecordProcessor<import("@atproto/lex").RecordSchema<"literal:self", "app.bsky.actor.status", import("@atproto/lex").Validator<Omit<app.bsky.actor.status.Main, "$type">, Omit<app.bsky.actor.status.Main, "$type">>>, unknown>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../../../src/data-plane/server/indexing/plugins/status.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,+BAA+B,CAAA;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../../../src/data-plane/server/indexing/plugins/status.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,+BAA+B,CAAA;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAE1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAmCjD,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAA;AACtD,eAAO,MAAM,UAAU,OACjB,QAAQ,cACA,eAAe,CAAC,QAAQ,CAAC,mOAUtC,CAAA;eAEc,UAAU"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../../../src/data-plane/server/indexing/plugins/status.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,+BAA+B,CAAA;AAInD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEjD,6FAA6F;AAE7F,MAAM,QAAQ,GAAG,KAAK,EACpB,GAAmB,EACnB,GAAU,EACV,IAAS,EACT,IAAa,EACb,UAAkB,EACO,EAAE;IAC3B,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,IAAI,CAAA;IACpC,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,aAAa,GAAG,KAAK,IAA2B,EAAE;IACtD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,GAAG,EAAE;IAC3B,OAAO,EAAE,CAAA;AACX,CAAC,CAAA;AAED,MAAM,QAAQ,GAAG,KAAK,EACpB,GAAmB,EACnB,GAAU,EACe,EAAE;IAC3B,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,IAAI,CAAA;IACpC,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,GAAG,EAAE;IAC3B,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAA;AACrC,CAAC,CAAA;AAGD,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,EAAY,EACZ,UAAqC,EACrC,EAAE;IACF,OAAO,IAAI,eAAe,CAAC,EAAE,EAAE,UAAU,EAAE;QACzC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI;QAClC,QAAQ;QACR,aAAa;QACb,QAAQ;QACR,eAAe;QACf,eAAe;KAChB,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,eAAe,UAAU,CAAA","sourcesContent":["import { Cid } from '@atproto/lex'\nimport { AtUri } from '@atproto/syntax'\nimport { app } from '../../../../lexicons/index.js'\nimport { BackgroundQueue } from '../../background.js'\nimport { DatabaseSchema } from '../../db/database-schema.js'\nimport { Database } from '../../db/index.js'\nimport { RecordProcessor } from '../processor.js'\n\n// @NOTE this indexer is a placeholder to ensure it gets indexed in the generic records table\n\nconst insertFn = async (\n _db: DatabaseSchema,\n uri: AtUri,\n _cid: Cid,\n _obj: unknown,\n _timestamp: string,\n): Promise<unknown | null> => {\n if (uri.rkey !== 'self') return null\n return true\n}\n\nconst findDuplicate = async (): Promise<AtUri | null> => {\n return null\n}\n\nconst notifsForInsert = () => {\n return []\n}\n\nconst deleteFn = async (\n _db: DatabaseSchema,\n uri: AtUri,\n): Promise<unknown | null> => {\n if (uri.rkey !== 'self') return null\n return true\n}\n\nconst notifsForDelete = () => {\n return { notifs: [], toDelete: [] }\n}\n\nexport type PluginType = ReturnType<typeof makePlugin>\nexport const makePlugin = (\n db: Database,\n background: BackgroundQueue<Database>,\n) => {\n return new RecordProcessor(db, background, {\n schema: app.bsky.actor.status.main,\n insertFn,\n findDuplicate,\n deleteFn,\n notifsForInsert,\n notifsForDelete,\n })\n}\n\nexport default makePlugin\n"]}
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../../../src/data-plane/server/indexing/plugins/status.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,+BAA+B,CAAA;AAInD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEjD,6FAA6F;AAE7F,MAAM,QAAQ,GAAG,KAAK,EACpB,GAAmB,EACnB,GAAU,EACV,IAAS,EACT,IAAa,EACb,UAAkB,EACO,EAAE;IAC3B,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,IAAI,CAAA;IACpC,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,aAAa,GAAG,KAAK,IAA2B,EAAE;IACtD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,GAAG,EAAE;IAC3B,OAAO,EAAE,CAAA;AACX,CAAC,CAAA;AAED,MAAM,QAAQ,GAAG,KAAK,EACpB,GAAmB,EACnB,GAAU,EACe,EAAE;IAC3B,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,IAAI,CAAA;IACpC,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,GAAG,EAAE;IAC3B,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAA;AACrC,CAAC,CAAA;AAGD,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,EAAY,EACZ,UAAqC,EACrC,EAAE;IACF,OAAO,IAAI,eAAe,CAAC,EAAE,EAAE,UAAU,EAAE;QACzC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI;QAClC,QAAQ;QACR,aAAa;QACb,QAAQ;QACR,eAAe;QACf,eAAe;KAChB,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,eAAe,UAAU,CAAA","sourcesContent":["import type { Cid } from '@atproto/lex'\nimport type { AtUri } from '@atproto/syntax'\nimport { app } from '../../../../lexicons/index.js'\nimport type { BackgroundQueue } from '../../background.js'\nimport type { DatabaseSchema } from '../../db/database-schema.js'\nimport type { Database } from '../../db/index.js'\nimport { RecordProcessor } from '../processor.js'\n\n// @NOTE this indexer is a placeholder to ensure it gets indexed in the generic records table\n\nconst insertFn = async (\n _db: DatabaseSchema,\n uri: AtUri,\n _cid: Cid,\n _obj: unknown,\n _timestamp: string,\n): Promise<unknown | null> => {\n if (uri.rkey !== 'self') return null\n return true\n}\n\nconst findDuplicate = async (): Promise<AtUri | null> => {\n return null\n}\n\nconst notifsForInsert = () => {\n return []\n}\n\nconst deleteFn = async (\n _db: DatabaseSchema,\n uri: AtUri,\n): Promise<unknown | null> => {\n if (uri.rkey !== 'self') return null\n return true\n}\n\nconst notifsForDelete = () => {\n return { notifs: [], toDelete: [] }\n}\n\nexport type PluginType = ReturnType<typeof makePlugin>\nexport const makePlugin = (\n db: Database,\n background: BackgroundQueue<Database>,\n) => {\n return new RecordProcessor(db, background, {\n schema: app.bsky.actor.status.main,\n insertFn,\n findDuplicate,\n deleteFn,\n notifsForInsert,\n notifsForDelete,\n })\n}\n\nexport default makePlugin\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { app } from '../../../../lexicons/index.js';
|
|
2
|
-
import { BackgroundQueue } from '../../background.js';
|
|
3
|
-
import { Database } from '../../db/index.js';
|
|
2
|
+
import type { BackgroundQueue } from '../../background.js';
|
|
3
|
+
import type { Database } from '../../db/index.js';
|
|
4
4
|
import { RecordProcessor } from '../processor.js';
|
|
5
5
|
export type PluginType = ReturnType<typeof makePlugin>;
|
|
6
6
|
export declare const makePlugin: (db: Database, background: BackgroundQueue<Database>) => RecordProcessor<import("@atproto/lex").RecordSchema<"tid", "app.bsky.feed.threadgate", import("@atproto/lex").Validator<Omit<app.bsky.feed.threadgate.Main, "$type">, Omit<app.bsky.feed.threadgate.Main, "$type">>>, import("../../db/tables/thread-gate.js").ThreadGate>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thread-gate.d.ts","sourceRoot":"","sources":["../../../../../src/data-plane/server/indexing/plugins/thread-gate.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,GAAG,EAAE,MAAM,+BAA+B,CAAA;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"thread-gate.d.ts","sourceRoot":"","sources":["../../../../../src/data-plane/server/indexing/plugins/thread-gate.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,GAAG,EAAE,MAAM,+BAA+B,CAAA;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAK1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AA8EjD,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAA;AACtD,eAAO,MAAM,UAAU,OACjB,QAAQ,cACA,eAAe,CAAC,QAAQ,CAAC,+QAUtC,CAAA;eAEc,UAAU"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thread-gate.js","sourceRoot":"","sources":["../../../../../src/data-plane/server/indexing/plugins/thread-gate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,EAAE,GAAG,EAAE,MAAM,+BAA+B,CAAA;
|
|
1
|
+
{"version":3,"file":"thread-gate.js","sourceRoot":"","sources":["../../../../../src/data-plane/server/indexing/plugins/thread-gate.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Cid } from '@atproto/lex'\nimport { AtUri, normalizeDatetimeAlways } from '@atproto/syntax'\nimport { InvalidRequestError } from '@atproto/xrpc-server'\nimport { app } from '../../../../lexicons/index.js'\nimport type { BackgroundQueue } from '../../background.js'\nimport type {\n DatabaseSchema,\n DatabaseSchemaType,\n} from '../../db/database-schema.js'\nimport type { Database } from '../../db/index.js'\nimport { RecordProcessor } from '../processor.js'\n\ntype IndexedGate = DatabaseSchemaType['thread_gate']\n\nconst insertFn = async (\n db: DatabaseSchema,\n uri: AtUri,\n cid: Cid,\n obj: app.bsky.feed.threadgate.Main,\n timestamp: string,\n): Promise<IndexedGate | null> => {\n const postUri = new AtUri(obj.post)\n if (postUri.host !== uri.host || postUri.rkey !== uri.rkey) {\n throw new InvalidRequestError(\n 'Creator and rkey of thread gate does not match its post',\n )\n }\n const inserted = await db\n .insertInto('thread_gate')\n .values({\n uri: uri.toString(),\n cid: cid.toString(),\n creator: uri.host,\n postUri: obj.post,\n createdAt: normalizeDatetimeAlways(obj.createdAt),\n indexedAt: timestamp,\n })\n .onConflict((oc) => oc.doNothing())\n .returningAll()\n .executeTakeFirst()\n await db\n .updateTable('post')\n .where('uri', '=', postUri.toString())\n .set({ hasThreadGate: true })\n .executeTakeFirst()\n return inserted || null\n}\n\nconst findDuplicate = async (\n db: DatabaseSchema,\n _uri: AtUri,\n obj: app.bsky.feed.threadgate.Main,\n): Promise<AtUri | null> => {\n const found = await db\n .selectFrom('thread_gate')\n .where('postUri', '=', obj.post)\n .selectAll()\n .executeTakeFirst()\n return found ? new AtUri(found.uri) : null\n}\n\nconst notifsForInsert = () => {\n return []\n}\n\nconst deleteFn = async (\n db: DatabaseSchema,\n uri: AtUri,\n): Promise<IndexedGate | null> => {\n const deleted = await db\n .deleteFrom('thread_gate')\n .where('uri', '=', uri.toString())\n .returningAll()\n .executeTakeFirst()\n if (deleted) {\n await db\n .updateTable('post')\n .where('uri', '=', deleted.postUri)\n .set({ hasThreadGate: false })\n .executeTakeFirst()\n }\n return deleted || null\n}\n\nconst notifsForDelete = () => {\n return { notifs: [], toDelete: [] }\n}\n\nexport type PluginType = ReturnType<typeof makePlugin>\nexport const makePlugin = (\n db: Database,\n background: BackgroundQueue<Database>,\n) => {\n return new RecordProcessor(db, background, {\n schema: app.bsky.feed.threadgate.main,\n insertFn,\n findDuplicate,\n deleteFn,\n notifsForInsert,\n notifsForDelete,\n })\n}\n\nexport default makePlugin\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { app } from '../../../../lexicons/index.js';
|
|
2
|
-
import { BackgroundQueue } from '../../background.js';
|
|
3
|
-
import { Database } from '../../db/index.js';
|
|
2
|
+
import type { BackgroundQueue } from '../../background.js';
|
|
3
|
+
import type { Database } from '../../db/index.js';
|
|
4
4
|
import { RecordProcessor } from '../processor.js';
|
|
5
5
|
export type PluginType = ReturnType<typeof makePlugin>;
|
|
6
6
|
export declare const makePlugin: (db: Database, background: BackgroundQueue<Database>) => RecordProcessor<import("@atproto/lex").RecordSchema<"tid", "app.bsky.graph.verification", import("@atproto/lex").Validator<Omit<app.bsky.graph.verification.Main, "$type">, Omit<app.bsky.graph.verification.Main, "$type">>>, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verification.d.ts","sourceRoot":"","sources":["../../../../../src/data-plane/server/indexing/plugins/verification.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,GAAG,EAAE,MAAM,+BAA+B,CAAA;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"verification.d.ts","sourceRoot":"","sources":["../../../../../src/data-plane/server/indexing/plugins/verification.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,GAAG,EAAE,MAAM,+BAA+B,CAAA;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAK1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AA0FjD,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAA;AACtD,eAAO,MAAM,UAAU,OACjB,QAAQ,cACA,eAAe,CAAC,QAAQ,CAAC;;;;;;;;;;;EAUtC,CAAA;eAEc,UAAU"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verification.js","sourceRoot":"","sources":["../../../../../src/data-plane/server/indexing/plugins/verification.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AAChE,OAAO,EAAE,GAAG,EAAE,MAAM,+BAA+B,CAAA;
|
|
1
|
+
{"version":3,"file":"verification.js","sourceRoot":"","sources":["../../../../../src/data-plane/server/indexing/plugins/verification.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AAChE,OAAO,EAAE,GAAG,EAAE,MAAM,+BAA+B,CAAA;AAOnD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAIjD,MAAM,QAAQ,GAAG,KAAK,EACpB,EAAkB,EAClB,GAAU,EACV,GAAQ,EACR,GAAqC,EACrC,SAAiB,EACoB,EAAE;IACvC,MAAM,QAAQ,GAAG,MAAM,EAAE;SACtB,UAAU,CAAC,cAAc,CAAC;SAC1B,MAAM,CAAC;QACN,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;QACnB,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;QACnB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,OAAO,EAAE,GAAG,CAAC,IAAI;QACjB,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,SAAS,EAAE,uBAAuB,CAAC,GAAG,CAAC,SAAS,CAAC;QACjD,SAAS,EAAE,SAAS;KACrB,CAAC;SACD,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC;SAClC,YAAY,EAAE;SACd,gBAAgB,EAAE,CAAA;IACrB,OAAO,QAAQ,IAAI,IAAI,CAAA;AACzB,CAAC,CAAA;AAED,MAAM,aAAa,GAAG,KAAK,EACzB,EAAkB,EAClB,GAAU,EACV,GAAqC,EACd,EAAE;IACzB,MAAM,KAAK,GAAG,MAAM,EAAE;SACnB,UAAU,CAAC,cAAc,CAAC;SAC1B,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC;SAClC,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;SAC/B,SAAS,EAAE;SACX,gBAAgB,EAAE,CAAA;IACrB,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AAC5C,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,CAAC,GAAwB,EAAE,EAAE;IACnD,OAAO;QACL;YACE,GAAG,EAAE,GAAG,CAAC,OAAO;YAChB,MAAM,EAAE,GAAG,CAAC,OAAO;YACnB,SAAS,EAAE,GAAG,CAAC,GAAG;YAClB,SAAS,EAAE,GAAG,CAAC,GAAG;YAClB,MAAM,EAAE,UAAmB;YAC3B,aAAa,EAAE,IAAI;YACnB,MAAM,EAAE,GAAG,CAAC,QAAQ;SACrB;KACF,CAAA;AACH,CAAC,CAAA;AAED,MAAM,QAAQ,GAAG,KAAK,EACpB,EAAkB,EAClB,GAAU,EAC2B,EAAE;IACvC,MAAM,OAAO,GAAG,MAAM,EAAE;SACrB,UAAU,CAAC,cAAc,CAAC;SAC1B,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC;SACjC,YAAY,EAAE;SACd,gBAAgB,EAAE,CAAA;IACrB,OAAO,OAAO,IAAI,IAAI,CAAA;AACxB,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,CACtB,OAA4B,EAC5B,WAAuC,EACvC,EAAE;IACF,OAAO;QACL,MAAM,EAAE;YACN;gBACE,GAAG,EAAE,OAAO,CAAC,OAAO;gBACpB,MAAM,EAAE,OAAO,CAAC,OAAO;gBACvB,SAAS,EAAE,OAAO,CAAC,GAAG;gBACtB,SAAS,EAAE,OAAO,CAAC,GAAG;gBACtB,MAAM,EAAE,YAAqB;gBAC7B,aAAa,EAAE,IAAI;gBACnB,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACjC;SACF;QACD,QAAQ,EAAE,EAAE;KACb,CAAA;AACH,CAAC,CAAA;AAGD,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,EAAY,EACZ,UAAqC,EACrC,EAAE;IACF,OAAO,IAAI,eAAe,CAAC,EAAE,EAAE,UAAU,EAAE;QACzC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI;QACxC,QAAQ;QACR,aAAa;QACb,QAAQ;QACR,eAAe;QACf,eAAe;KAChB,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,eAAe,UAAU,CAAA","sourcesContent":["import type { Selectable } from 'kysely'\nimport type { Cid } from '@atproto/lex'\nimport { AtUri, normalizeDatetimeAlways } from '@atproto/syntax'\nimport { app } from '../../../../lexicons/index.js'\nimport type { BackgroundQueue } from '../../background.js'\nimport type {\n DatabaseSchema,\n DatabaseSchemaType,\n} from '../../db/database-schema.js'\nimport type { Database } from '../../db/index.js'\nimport { RecordProcessor } from '../processor.js'\n\ntype IndexedVerification = Selectable<DatabaseSchemaType['verification']>\n\nconst insertFn = async (\n db: DatabaseSchema,\n uri: AtUri,\n cid: Cid,\n obj: app.bsky.graph.verification.Main,\n timestamp: string,\n): Promise<IndexedVerification | null> => {\n const inserted = await db\n .insertInto('verification')\n .values({\n uri: uri.toString(),\n cid: cid.toString(),\n rkey: uri.rkey,\n creator: uri.host,\n subject: obj.subject,\n handle: obj.handle,\n displayName: obj.displayName,\n createdAt: normalizeDatetimeAlways(obj.createdAt),\n indexedAt: timestamp,\n })\n .onConflict((oc) => oc.doNothing())\n .returningAll()\n .executeTakeFirst()\n return inserted || null\n}\n\nconst findDuplicate = async (\n db: DatabaseSchema,\n uri: AtUri,\n obj: app.bsky.graph.verification.Main,\n): Promise<AtUri | null> => {\n const found = await db\n .selectFrom('verification')\n .where('subject', '=', obj.subject)\n .where('creator', '=', uri.host)\n .selectAll()\n .executeTakeFirst()\n return found ? new AtUri(found.uri) : null\n}\n\nconst notifsForInsert = (obj: IndexedVerification) => {\n return [\n {\n did: obj.subject,\n author: obj.creator,\n recordUri: obj.uri,\n recordCid: obj.cid,\n reason: 'verified' as const,\n reasonSubject: null,\n sortAt: obj.sortedAt,\n },\n ]\n}\n\nconst deleteFn = async (\n db: DatabaseSchema,\n uri: AtUri,\n): Promise<IndexedVerification | null> => {\n const deleted = await db\n .deleteFrom('verification')\n .where('uri', '=', uri.toString())\n .returningAll()\n .executeTakeFirst()\n return deleted || null\n}\n\nconst notifsForDelete = (\n deleted: IndexedVerification,\n _replacedBy: IndexedVerification | null,\n) => {\n return {\n notifs: [\n {\n did: deleted.subject,\n author: deleted.creator,\n recordUri: deleted.uri,\n recordCid: deleted.cid,\n reason: 'unverified' as const,\n reasonSubject: null,\n sortAt: new Date().toISOString(),\n },\n ],\n toDelete: [],\n }\n}\n\nexport type PluginType = ReturnType<typeof makePlugin>\nexport const makePlugin = (\n db: Database,\n background: BackgroundQueue<Database>,\n) => {\n return new RecordProcessor(db, background, {\n schema: app.bsky.graph.verification.main,\n insertFn,\n findDuplicate,\n deleteFn,\n notifsForInsert,\n notifsForDelete,\n })\n}\n\nexport default makePlugin\n"]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { Insertable } from 'kysely';
|
|
2
|
-
import { Cid, l } from '@atproto/lex';
|
|
1
|
+
import type { Insertable } from 'kysely';
|
|
2
|
+
import { type Cid, type l } from '@atproto/lex';
|
|
3
3
|
import { AtUri } from '@atproto/syntax';
|
|
4
|
-
import { BackgroundQueue } from '../background.js';
|
|
5
|
-
import { DatabaseSchema } from '../db/database-schema.js';
|
|
6
|
-
import { Database } from '../db/index.js';
|
|
7
|
-
import { Notification } from '../db/tables/notification.js';
|
|
4
|
+
import type { BackgroundQueue } from '../background.js';
|
|
5
|
+
import type { DatabaseSchema } from '../db/database-schema.js';
|
|
6
|
+
import type { Database } from '../db/index.js';
|
|
7
|
+
import type { Notification } from '../db/tables/notification.js';
|
|
8
8
|
type RecordProcessorOptions<TSchema extends l.RecordSchema, TRow> = {
|
|
9
9
|
schema: TSchema;
|
|
10
10
|
insertFn: (db: DatabaseSchema, uri: AtUri, cid: Cid, obj: l.InferInput<TSchema>, timestamp: string) => Promise<TRow | null>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processor.d.ts","sourceRoot":"","sources":["../../../../src/data-plane/server/indexing/processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"processor.d.ts","sourceRoot":"","sources":["../../../../src/data-plane/server/indexing/processor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { chunkArray } from '@atproto/common';
|
|
2
|
-
import { lexParse, lexStringify, parseCid } from '@atproto/lex';
|
|
2
|
+
import { lexParse, lexStringify, parseCid, } from '@atproto/lex';
|
|
3
3
|
import { AtUri } from '@atproto/syntax';
|
|
4
4
|
export class RecordProcessor {
|
|
5
5
|
constructor(appDb, background, options) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processor.js","sourceRoot":"","sources":["../../../../src/data-plane/server/indexing/processor.ts"],"names":[],"mappings":"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","sourcesContent":["import { Insertable } from 'kysely'\nimport { chunkArray } from '@atproto/common'\nimport { Cid, l, lexParse, lexStringify, parseCid } from '@atproto/lex'\nimport { AtUri } from '@atproto/syntax'\nimport { BackgroundQueue } from '../background.js'\nimport { DatabaseSchema } from '../db/database-schema.js'\nimport { Database } from '../db/index.js'\nimport { Notification } from '../db/tables/notification.js'\n\n// @NOTE re: insertions and deletions. Due to how record updates are handled,\n// (insertFn) should have the same effect as (insertFn -> deleteFn -> insertFn).\ntype RecordProcessorOptions<TSchema extends l.RecordSchema, TRow> = {\n schema: TSchema\n insertFn: (\n db: DatabaseSchema,\n uri: AtUri,\n cid: Cid,\n obj: l.InferInput<TSchema>,\n timestamp: string,\n ) => Promise<TRow | null>\n findDuplicate: (\n db: DatabaseSchema,\n uri: AtUri,\n obj: l.InferInput<TSchema>,\n ) => Promise<AtUri | null>\n deleteFn: (db: DatabaseSchema, uri: AtUri) => Promise<TRow | null>\n notifsForInsert: (obj: TRow) => Notif[]\n notifsForDelete: (\n prev: TRow,\n replacedBy: TRow | null,\n ) => { notifs: Notif[]; toDelete: string[] }\n updateAggregates?: (db: DatabaseSchema, obj: TRow) => Promise<void>\n}\n\ntype Notif = Insertable<Notification>\n\nexport class RecordProcessor<TSchema extends l.RecordSchema, TRow> {\n constructor(\n private appDb: Database,\n private background: BackgroundQueue<Database>,\n private options: RecordProcessorOptions<TSchema, TRow>,\n ) {}\n\n get db() {\n return this.appDb.db\n }\n\n get collection(): TSchema['$type'] {\n return this.options.schema.$type\n }\n\n matchesSchema<I>(obj: I): obj is I & l.InferInput<TSchema> {\n return this.options.schema.matches(obj)\n }\n\n assertValidRecord(obj: unknown): asserts obj is l.InferInput<TSchema> {\n this.options.schema.check(obj)\n }\n\n async insertRecord(\n uri: AtUri,\n cid: Cid,\n obj: unknown,\n timestamp: string,\n opts?: { disableNotifs?: boolean },\n ) {\n this.assertValidRecord(obj)\n await this.db\n .insertInto('record')\n .values({\n uri: uri.toString(),\n cid: cid.toString(),\n did: uri.host,\n json: lexStringify(obj),\n indexedAt: timestamp,\n })\n .onConflict((oc) => oc.doNothing())\n .execute()\n const inserted = await this.options.insertFn(\n this.db,\n uri,\n cid,\n obj,\n timestamp,\n )\n if (inserted) {\n this.aggregateOnCommit(inserted)\n if (!opts?.disableNotifs) {\n await this.handleNotifs({ inserted })\n }\n return\n }\n // if duplicate, insert into duplicates table with no events\n const found = await this.options.findDuplicate(this.db, uri, obj)\n if (found && found.toString() !== uri.toString()) {\n await this.db\n .insertInto('duplicate_record')\n .values({\n uri: uri.toString(),\n cid: cid.toString(),\n duplicateOf: found.toString(),\n indexedAt: timestamp,\n })\n .onConflict((oc) => oc.doNothing())\n .execute()\n }\n }\n\n // Currently using a very simple strategy for updates: purge the existing index\n // for the uri then replace it. The main upside is that this allows the indexer\n // for each collection to avoid bespoke logic for in-place updates, which isn't\n // straightforward in the general case. We still get nice control over notifications.\n async updateRecord(\n uri: AtUri,\n cid: Cid,\n obj: unknown,\n timestamp: string,\n opts?: { disableNotifs?: boolean },\n ) {\n this.assertValidRecord(obj)\n await this.db\n .updateTable('record')\n .where('uri', '=', uri.toString())\n .set({\n cid: cid.toString(),\n json: lexStringify(obj),\n indexedAt: timestamp,\n })\n .execute()\n // If the updated record was a dupe, update dupe info for it\n const dupe = await this.options.findDuplicate(this.db, uri, obj)\n if (dupe) {\n await this.db\n .updateTable('duplicate_record')\n .where('uri', '=', uri.toString())\n .set({\n cid: cid.toString(),\n duplicateOf: dupe.toString(),\n indexedAt: timestamp,\n })\n .execute()\n } else {\n await this.db\n .deleteFrom('duplicate_record')\n .where('uri', '=', uri.toString())\n .execute()\n }\n\n const deleted = await this.options.deleteFn(this.db, uri)\n if (!deleted) {\n // If a record was updated but hadn't been indexed yet, treat it like a plain insert.\n return this.insertRecord(uri, cid, obj, timestamp)\n }\n this.aggregateOnCommit(deleted)\n const inserted = await this.options.insertFn(\n this.db,\n uri,\n cid,\n obj,\n timestamp,\n )\n if (!inserted) {\n throw new Error(\n 'Record update failed: removed from index but could not be replaced',\n )\n }\n this.aggregateOnCommit(inserted)\n if (!opts?.disableNotifs) {\n await this.handleNotifs({ inserted, deleted })\n }\n }\n\n async deleteRecord(uri: AtUri, cascading = false) {\n await this.db\n .deleteFrom('record')\n .where('uri', '=', uri.toString())\n .execute()\n await this.db\n .deleteFrom('duplicate_record')\n .where('uri', '=', uri.toString())\n .execute()\n const deleted = await this.options.deleteFn(this.db, uri)\n if (!deleted) return\n this.aggregateOnCommit(deleted)\n if (cascading) {\n await this.db\n .deleteFrom('duplicate_record')\n .where('duplicateOf', '=', uri.toString())\n .execute()\n return this.handleNotifs({ deleted })\n } else {\n const found = await this.db\n .selectFrom('duplicate_record')\n .innerJoin('record', 'record.uri', 'duplicate_record.uri')\n .where('duplicateOf', '=', uri.toString())\n .orderBy('duplicate_record.indexedAt', 'asc')\n .limit(1)\n .selectAll()\n .executeTakeFirst()\n\n if (!found) {\n return this.handleNotifs({ deleted })\n }\n const record = lexParse(found.json)\n if (!this.matchesSchema(record)) {\n return this.handleNotifs({ deleted })\n }\n const inserted = await this.options.insertFn(\n this.db,\n new AtUri(found.uri),\n parseCid(found.cid),\n record,\n found.indexedAt,\n )\n if (inserted) {\n this.aggregateOnCommit(inserted)\n }\n await this.handleNotifs({ deleted, inserted: inserted ?? undefined })\n }\n }\n\n async handleNotifs(op: { deleted?: TRow; inserted?: TRow }) {\n let notifs: Notif[] = []\n const runOnCommit: ((db: Database) => Promise<void>)[] = []\n if (op.deleted) {\n const forDelete = this.options.notifsForDelete(\n op.deleted,\n op.inserted ?? null,\n )\n if (forDelete.toDelete.length > 0) {\n // Notifs can be deleted in background: they are expensive to delete and\n // listNotifications already excludes notifs with missing records.\n runOnCommit.push(async (db) => {\n await db.db\n .deleteFrom('notification')\n .where('recordUri', 'in', forDelete.toDelete)\n .execute()\n })\n }\n notifs = forDelete.notifs\n } else if (op.inserted) {\n notifs = this.options.notifsForInsert(op.inserted)\n }\n for (const chunk of chunkArray(notifs, 500)) {\n runOnCommit.push(async (db) => {\n const filtered = await this.filterNotifsForThreadMutes(chunk)\n await db.db.insertInto('notification').values(filtered).execute()\n })\n }\n // Need to ensure notif deletion always happens before creation, otherwise delete may clobber in a race.\n for (const fn of runOnCommit) {\n await fn(this.appDb) // these could be backgrounded\n }\n }\n\n async filterNotifsForThreadMutes(notifs: Notif[]): Promise<Notif[]> {\n const isBlocked = await Promise.all(\n notifs.map((n) => this.isNotifBlockedByThreadMute(n)),\n )\n return notifs.filter((_, i) => !isBlocked[i])\n }\n\n async isNotifBlockedByThreadMute(notif: Notif): Promise<boolean> {\n const subject = notif.reasonSubject\n if (!subject) return false\n if (subject.startsWith('did:')) return false\n const post = await this.db\n .selectFrom('post')\n .select(['uri', 'replyRoot'])\n .where('uri', '=', subject)\n .executeTakeFirst()\n if (!post) return false\n const threadRoot = post.replyRoot ?? post.uri\n const threadMute = await this.db\n .selectFrom('thread_mute')\n .selectAll()\n .where('mutedByDid', '=', notif.did)\n .where('rootUri', '=', threadRoot)\n .executeTakeFirst()\n return !!threadMute\n }\n\n aggregateOnCommit(indexed: TRow) {\n const { updateAggregates } = this.options\n if (!updateAggregates) return\n this.appDb.onCommit(() => {\n this.background.add((db) => updateAggregates(db.db, indexed))\n })\n }\n}\n\nexport default RecordProcessor\n"]}
|
|
1
|
+
{"version":3,"file":"processor.js","sourceRoot":"","sources":["../../../../src/data-plane/server/indexing/processor.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Insertable } from 'kysely'\nimport { chunkArray } from '@atproto/common'\nimport {\n type Cid,\n type l,\n lexParse,\n lexStringify,\n parseCid,\n} from '@atproto/lex'\nimport { AtUri } from '@atproto/syntax'\nimport type { BackgroundQueue } from '../background.js'\nimport type { DatabaseSchema } from '../db/database-schema.js'\nimport type { Database } from '../db/index.js'\nimport type { Notification } from '../db/tables/notification.js'\n\n// @NOTE re: insertions and deletions. Due to how record updates are handled,\n// (insertFn) should have the same effect as (insertFn -> deleteFn -> insertFn).\ntype RecordProcessorOptions<TSchema extends l.RecordSchema, TRow> = {\n schema: TSchema\n insertFn: (\n db: DatabaseSchema,\n uri: AtUri,\n cid: Cid,\n obj: l.InferInput<TSchema>,\n timestamp: string,\n ) => Promise<TRow | null>\n findDuplicate: (\n db: DatabaseSchema,\n uri: AtUri,\n obj: l.InferInput<TSchema>,\n ) => Promise<AtUri | null>\n deleteFn: (db: DatabaseSchema, uri: AtUri) => Promise<TRow | null>\n notifsForInsert: (obj: TRow) => Notif[]\n notifsForDelete: (\n prev: TRow,\n replacedBy: TRow | null,\n ) => { notifs: Notif[]; toDelete: string[] }\n updateAggregates?: (db: DatabaseSchema, obj: TRow) => Promise<void>\n}\n\ntype Notif = Insertable<Notification>\n\nexport class RecordProcessor<TSchema extends l.RecordSchema, TRow> {\n constructor(\n private appDb: Database,\n private background: BackgroundQueue<Database>,\n private options: RecordProcessorOptions<TSchema, TRow>,\n ) {}\n\n get db() {\n return this.appDb.db\n }\n\n get collection(): TSchema['$type'] {\n return this.options.schema.$type\n }\n\n matchesSchema<I>(obj: I): obj is I & l.InferInput<TSchema> {\n return this.options.schema.matches(obj)\n }\n\n assertValidRecord(obj: unknown): asserts obj is l.InferInput<TSchema> {\n this.options.schema.check(obj)\n }\n\n async insertRecord(\n uri: AtUri,\n cid: Cid,\n obj: unknown,\n timestamp: string,\n opts?: { disableNotifs?: boolean },\n ) {\n this.assertValidRecord(obj)\n await this.db\n .insertInto('record')\n .values({\n uri: uri.toString(),\n cid: cid.toString(),\n did: uri.host,\n json: lexStringify(obj),\n indexedAt: timestamp,\n })\n .onConflict((oc) => oc.doNothing())\n .execute()\n const inserted = await this.options.insertFn(\n this.db,\n uri,\n cid,\n obj,\n timestamp,\n )\n if (inserted) {\n this.aggregateOnCommit(inserted)\n if (!opts?.disableNotifs) {\n await this.handleNotifs({ inserted })\n }\n return\n }\n // if duplicate, insert into duplicates table with no events\n const found = await this.options.findDuplicate(this.db, uri, obj)\n if (found && found.toString() !== uri.toString()) {\n await this.db\n .insertInto('duplicate_record')\n .values({\n uri: uri.toString(),\n cid: cid.toString(),\n duplicateOf: found.toString(),\n indexedAt: timestamp,\n })\n .onConflict((oc) => oc.doNothing())\n .execute()\n }\n }\n\n // Currently using a very simple strategy for updates: purge the existing index\n // for the uri then replace it. The main upside is that this allows the indexer\n // for each collection to avoid bespoke logic for in-place updates, which isn't\n // straightforward in the general case. We still get nice control over notifications.\n async updateRecord(\n uri: AtUri,\n cid: Cid,\n obj: unknown,\n timestamp: string,\n opts?: { disableNotifs?: boolean },\n ) {\n this.assertValidRecord(obj)\n await this.db\n .updateTable('record')\n .where('uri', '=', uri.toString())\n .set({\n cid: cid.toString(),\n json: lexStringify(obj),\n indexedAt: timestamp,\n })\n .execute()\n // If the updated record was a dupe, update dupe info for it\n const dupe = await this.options.findDuplicate(this.db, uri, obj)\n if (dupe) {\n await this.db\n .updateTable('duplicate_record')\n .where('uri', '=', uri.toString())\n .set({\n cid: cid.toString(),\n duplicateOf: dupe.toString(),\n indexedAt: timestamp,\n })\n .execute()\n } else {\n await this.db\n .deleteFrom('duplicate_record')\n .where('uri', '=', uri.toString())\n .execute()\n }\n\n const deleted = await this.options.deleteFn(this.db, uri)\n if (!deleted) {\n // If a record was updated but hadn't been indexed yet, treat it like a plain insert.\n return this.insertRecord(uri, cid, obj, timestamp)\n }\n this.aggregateOnCommit(deleted)\n const inserted = await this.options.insertFn(\n this.db,\n uri,\n cid,\n obj,\n timestamp,\n )\n if (!inserted) {\n throw new Error(\n 'Record update failed: removed from index but could not be replaced',\n )\n }\n this.aggregateOnCommit(inserted)\n if (!opts?.disableNotifs) {\n await this.handleNotifs({ inserted, deleted })\n }\n }\n\n async deleteRecord(uri: AtUri, cascading = false) {\n await this.db\n .deleteFrom('record')\n .where('uri', '=', uri.toString())\n .execute()\n await this.db\n .deleteFrom('duplicate_record')\n .where('uri', '=', uri.toString())\n .execute()\n const deleted = await this.options.deleteFn(this.db, uri)\n if (!deleted) return\n this.aggregateOnCommit(deleted)\n if (cascading) {\n await this.db\n .deleteFrom('duplicate_record')\n .where('duplicateOf', '=', uri.toString())\n .execute()\n return this.handleNotifs({ deleted })\n } else {\n const found = await this.db\n .selectFrom('duplicate_record')\n .innerJoin('record', 'record.uri', 'duplicate_record.uri')\n .where('duplicateOf', '=', uri.toString())\n .orderBy('duplicate_record.indexedAt', 'asc')\n .limit(1)\n .selectAll()\n .executeTakeFirst()\n\n if (!found) {\n return this.handleNotifs({ deleted })\n }\n const record = lexParse(found.json)\n if (!this.matchesSchema(record)) {\n return this.handleNotifs({ deleted })\n }\n const inserted = await this.options.insertFn(\n this.db,\n new AtUri(found.uri),\n parseCid(found.cid),\n record,\n found.indexedAt,\n )\n if (inserted) {\n this.aggregateOnCommit(inserted)\n }\n await this.handleNotifs({ deleted, inserted: inserted ?? undefined })\n }\n }\n\n async handleNotifs(op: { deleted?: TRow; inserted?: TRow }) {\n let notifs: Notif[] = []\n const runOnCommit: ((db: Database) => Promise<void>)[] = []\n if (op.deleted) {\n const forDelete = this.options.notifsForDelete(\n op.deleted,\n op.inserted ?? null,\n )\n if (forDelete.toDelete.length > 0) {\n // Notifs can be deleted in background: they are expensive to delete and\n // listNotifications already excludes notifs with missing records.\n runOnCommit.push(async (db) => {\n await db.db\n .deleteFrom('notification')\n .where('recordUri', 'in', forDelete.toDelete)\n .execute()\n })\n }\n notifs = forDelete.notifs\n } else if (op.inserted) {\n notifs = this.options.notifsForInsert(op.inserted)\n }\n for (const chunk of chunkArray(notifs, 500)) {\n runOnCommit.push(async (db) => {\n const filtered = await this.filterNotifsForThreadMutes(chunk)\n await db.db.insertInto('notification').values(filtered).execute()\n })\n }\n // Need to ensure notif deletion always happens before creation, otherwise delete may clobber in a race.\n for (const fn of runOnCommit) {\n await fn(this.appDb) // these could be backgrounded\n }\n }\n\n async filterNotifsForThreadMutes(notifs: Notif[]): Promise<Notif[]> {\n const isBlocked = await Promise.all(\n notifs.map((n) => this.isNotifBlockedByThreadMute(n)),\n )\n return notifs.filter((_, i) => !isBlocked[i])\n }\n\n async isNotifBlockedByThreadMute(notif: Notif): Promise<boolean> {\n const subject = notif.reasonSubject\n if (!subject) return false\n if (subject.startsWith('did:')) return false\n const post = await this.db\n .selectFrom('post')\n .select(['uri', 'replyRoot'])\n .where('uri', '=', subject)\n .executeTakeFirst()\n if (!post) return false\n const threadRoot = post.replyRoot ?? post.uri\n const threadMute = await this.db\n .selectFrom('thread_mute')\n .selectAll()\n .where('mutedByDid', '=', notif.did)\n .where('rootUri', '=', threadRoot)\n .executeTakeFirst()\n return !!threadMute\n }\n\n aggregateOnCommit(indexed: TRow) {\n const { updateAggregates } = this.options\n if (!updateAggregates) return\n this.appDb.onCommit(() => {\n this.background.add((db) => updateAggregates(db.db, indexed))\n })\n }\n}\n\nexport default RecordProcessor\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { ServiceImpl } from '@connectrpc/connect';
|
|
2
|
-
import { Service } from '../../../proto/bsky_connect.js';
|
|
3
|
-
import { Database } from '../db/index.js';
|
|
1
|
+
import type { ServiceImpl } from '@connectrpc/connect';
|
|
2
|
+
import type { Service } from '../../../proto/bsky_connect.js';
|
|
3
|
+
import type { Database } from '../db/index.js';
|
|
4
4
|
declare const _default: (db: Database) => Partial<ServiceImpl<typeof Service>>;
|
|
5
5
|
export default _default;
|
|
6
6
|
//# sourceMappingURL=activity-subscription.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activity-subscription.d.ts","sourceRoot":"","sources":["../../../../src/data-plane/server/routes/activity-subscription.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"activity-subscription.d.ts","sourceRoot":"","sources":["../../../../src/data-plane/server/routes/activity-subscription.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAEtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA;AAM7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;6BAG1B,QAAQ,KAAG,OAAO,CAAC,WAAW,CAAC,OAAO,OAAO,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activity-subscription.js","sourceRoot":"","sources":["../../../../src/data-plane/server/routes/activity-subscription.ts"],"names":[],"mappings":"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","sourcesContent":["import { PlainMessage } from '@bufbuild/protobuf'\nimport { ServiceImpl } from '@connectrpc/connect'\nimport { keyBy } from '@atproto/common'\nimport { Service } from '../../../proto/bsky_connect.js'\nimport {\n ActivitySubscription,\n GetActivitySubscriptionsByActorAndSubjectsResponse,\n} from '../../../proto/bsky_pb.js'\nimport { Namespaces } from '../../../stash.js'\nimport { Database } from '../db/index.js'\nimport { StashKeyKey } from '../db/pagination.js'\n\nexport default (db: Database): Partial<ServiceImpl<typeof Service>> => ({\n async getActivitySubscriptionsByActorAndSubjects(req) {\n const { actorDid, subjectDids } = req\n if (subjectDids.length === 0) {\n return new GetActivitySubscriptionsByActorAndSubjectsResponse({\n subscriptions: [],\n })\n }\n\n const res = await db.db\n .selectFrom('activity_subscription')\n .selectAll()\n .where('creator', '=', actorDid)\n .where('subjectDid', 'in', subjectDids)\n .execute()\n\n const bySubject = keyBy(res, 'subjectDid')\n const subscriptions = subjectDids.map(\n (did): PlainMessage<ActivitySubscription> => {\n const subject = bySubject.get(did)\n if (!subject) {\n return {\n actorDid,\n namespace:\n Namespaces.AppBskyNotificationDefsSubjectActivitySubscription\n .$type,\n key: '',\n post: undefined,\n reply: undefined,\n subjectDid: '',\n }\n }\n\n return {\n actorDid,\n namespace:\n Namespaces.AppBskyNotificationDefsSubjectActivitySubscription.$type,\n key: subject.key,\n post: subject.post ? {} : undefined,\n reply: subject.reply ? {} : undefined,\n subjectDid: subject.subjectDid,\n }\n },\n )\n\n return {\n subscriptions,\n }\n },\n\n async getActivitySubscriptionDids(req) {\n const { actorDid, cursor, limit } = req\n\n let builder = db.db\n .selectFrom('activity_subscription')\n .selectAll()\n .where('creator', '=', actorDid)\n\n const { ref } = db.db.dynamic\n const key = new StashKeyKey(ref('activity_subscription.key'))\n builder = key.paginate(builder, {\n cursor,\n limit,\n })\n const res = await builder.execute()\n const dids = res.map(({ subjectDid }) => subjectDid)\n return {\n dids,\n cursor: key.packFromResult(res),\n }\n },\n})\n"]}
|
|
1
|
+
{"version":3,"file":"activity-subscription.js","sourceRoot":"","sources":["../../../../src/data-plane/server/routes/activity-subscription.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PlainMessage } from '@bufbuild/protobuf'\nimport type { ServiceImpl } from '@connectrpc/connect'\nimport { keyBy } from '@atproto/common'\nimport type { Service } from '../../../proto/bsky_connect.js'\nimport {\n type ActivitySubscription,\n GetActivitySubscriptionsByActorAndSubjectsResponse,\n} from '../../../proto/bsky_pb.js'\nimport { Namespaces } from '../../../stash.js'\nimport type { Database } from '../db/index.js'\nimport { StashKeyKey } from '../db/pagination.js'\n\nexport default (db: Database): Partial<ServiceImpl<typeof Service>> => ({\n async getActivitySubscriptionsByActorAndSubjects(req) {\n const { actorDid, subjectDids } = req\n if (subjectDids.length === 0) {\n return new GetActivitySubscriptionsByActorAndSubjectsResponse({\n subscriptions: [],\n })\n }\n\n const res = await db.db\n .selectFrom('activity_subscription')\n .selectAll()\n .where('creator', '=', actorDid)\n .where('subjectDid', 'in', subjectDids)\n .execute()\n\n const bySubject = keyBy(res, 'subjectDid')\n const subscriptions = subjectDids.map(\n (did): PlainMessage<ActivitySubscription> => {\n const subject = bySubject.get(did)\n if (!subject) {\n return {\n actorDid,\n namespace:\n Namespaces.AppBskyNotificationDefsSubjectActivitySubscription\n .$type,\n key: '',\n post: undefined,\n reply: undefined,\n subjectDid: '',\n }\n }\n\n return {\n actorDid,\n namespace:\n Namespaces.AppBskyNotificationDefsSubjectActivitySubscription.$type,\n key: subject.key,\n post: subject.post ? {} : undefined,\n reply: subject.reply ? {} : undefined,\n subjectDid: subject.subjectDid,\n }\n },\n )\n\n return {\n subscriptions,\n }\n },\n\n async getActivitySubscriptionDids(req) {\n const { actorDid, cursor, limit } = req\n\n let builder = db.db\n .selectFrom('activity_subscription')\n .selectAll()\n .where('creator', '=', actorDid)\n\n const { ref } = db.db.dynamic\n const key = new StashKeyKey(ref('activity_subscription.key'))\n builder = key.paginate(builder, {\n cursor,\n limit,\n })\n const res = await builder.execute()\n const dids = res.map(({ subjectDid }) => subjectDid)\n return {\n dids,\n cursor: key.packFromResult(res),\n }\n },\n})\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { ServiceImpl } from '@connectrpc/connect';
|
|
2
|
-
import { Service } from '../../../proto/bsky_connect.js';
|
|
3
|
-
import { Database } from '../db/index.js';
|
|
1
|
+
import type { ServiceImpl } from '@connectrpc/connect';
|
|
2
|
+
import type { Service } from '../../../proto/bsky_connect.js';
|
|
3
|
+
import type { Database } from '../db/index.js';
|
|
4
4
|
declare const _default: (db: Database) => Partial<ServiceImpl<typeof Service>>;
|
|
5
5
|
export default _default;
|
|
6
6
|
//# sourceMappingURL=blocks.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../../../src/data-plane/server/routes/blocks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../../../src/data-plane/server/routes/blocks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;6BAG1B,QAAQ,KAAG,OAAO,CAAC,WAAW,CAAC,OAAO,OAAO,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blocks.js","sourceRoot":"","sources":["../../../../src/data-plane/server/routes/blocks.ts"],"names":[],"mappings":"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","sourcesContent":["import { ServiceImpl } from '@connectrpc/connect'\nimport { Service } from '../../../proto/bsky_connect.js'\nimport { Database } from '../db/index.js'\nimport { TimeCidKeyset, paginate } from '../db/pagination.js'\n\nexport default (db: Database): Partial<ServiceImpl<typeof Service>> => ({\n async getBidirectionalBlock(req) {\n const { actorDid, targetDid } = req\n const res = await db.db\n .selectFrom('actor_block')\n .where((eb) =>\n eb.or([\n eb.and([\n eb('actor_block.creator', '=', actorDid),\n eb('actor_block.subjectDid', '=', targetDid),\n ]),\n eb.and([\n eb('actor_block.creator', '=', targetDid),\n eb('actor_block.subjectDid', '=', actorDid),\n ]),\n ]),\n )\n .limit(1)\n .selectAll()\n .executeTakeFirst()\n\n return {\n blockUri: res?.uri,\n }\n },\n\n async getBlocks(req) {\n const { actorDid, cursor, limit } = req\n const { ref } = db.db.dynamic\n\n let builder = db.db\n .selectFrom('actor_block')\n .where('actor_block.creator', '=', actorDid)\n .selectAll()\n\n const keyset = new TimeCidKeyset(\n ref('actor_block.sortAt'),\n ref('actor_block.cid'),\n )\n builder = paginate(builder, {\n limit,\n cursor,\n keyset,\n })\n\n const blocks = await builder.execute()\n return {\n blockUris: blocks.map((b) => b.uri),\n cursor: keyset.packFromResult(blocks),\n }\n },\n\n async getBidirectionalBlockViaList(req) {\n const { actorDid, targetDid } = req\n const res = await db.db\n .selectFrom('list_block')\n .innerJoin('list_item', 'list_item.listUri', 'list_block.subjectUri')\n .where((eb) =>\n eb.or([\n eb.and([\n eb('list_block.creator', '=', actorDid),\n eb('list_item.subjectDid', '=', targetDid),\n ]),\n eb.and([\n eb('list_block.creator', '=', targetDid),\n eb('list_item.subjectDid', '=', actorDid),\n ]),\n ]),\n )\n .limit(1)\n .selectAll('list_block')\n .executeTakeFirst()\n\n return {\n listUri: res?.subjectUri,\n }\n },\n\n async getBlocklistSubscription(req) {\n const { actorDid, listUri } = req\n const res = await db.db\n .selectFrom('list_block')\n .where('creator', '=', actorDid)\n .where('subjectUri', '=', listUri)\n .selectAll()\n .limit(1)\n .executeTakeFirst()\n return {\n listblockUri: res?.uri,\n }\n },\n\n async getBlocklistSubscriptions(req) {\n const { actorDid, limit, cursor } = req\n const { ref } = db.db.dynamic\n let builder = db.db\n .selectFrom('list')\n .where(({ exists }) =>\n exists(\n db.db\n .selectFrom('list_block')\n .where('list_block.creator', '=', actorDid)\n .whereRef('list_block.subjectUri', '=', ref('list.uri'))\n .selectAll(),\n ),\n )\n .selectAll('list')\n\n const keyset = new TimeCidKeyset(ref('list.createdAt'), ref('list.cid'))\n builder = paginate(builder, {\n limit,\n cursor,\n keyset,\n })\n const lists = await builder.execute()\n\n return {\n listUris: lists.map((l) => l.uri),\n cursor: keyset.packFromResult(lists),\n }\n },\n})\n"]}
|
|
1
|
+
{"version":3,"file":"blocks.js","sourceRoot":"","sources":["../../../../src/data-plane/server/routes/blocks.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ServiceImpl } from '@connectrpc/connect'\nimport type { Service } from '../../../proto/bsky_connect.js'\nimport type { Database } from '../db/index.js'\nimport { TimeCidKeyset, paginate } from '../db/pagination.js'\n\nexport default (db: Database): Partial<ServiceImpl<typeof Service>> => ({\n async getBidirectionalBlock(req) {\n const { actorDid, targetDid } = req\n const res = await db.db\n .selectFrom('actor_block')\n .where((eb) =>\n eb.or([\n eb.and([\n eb('actor_block.creator', '=', actorDid),\n eb('actor_block.subjectDid', '=', targetDid),\n ]),\n eb.and([\n eb('actor_block.creator', '=', targetDid),\n eb('actor_block.subjectDid', '=', actorDid),\n ]),\n ]),\n )\n .limit(1)\n .selectAll()\n .executeTakeFirst()\n\n return {\n blockUri: res?.uri,\n }\n },\n\n async getBlocks(req) {\n const { actorDid, cursor, limit } = req\n const { ref } = db.db.dynamic\n\n let builder = db.db\n .selectFrom('actor_block')\n .where('actor_block.creator', '=', actorDid)\n .selectAll()\n\n const keyset = new TimeCidKeyset(\n ref('actor_block.sortAt'),\n ref('actor_block.cid'),\n )\n builder = paginate(builder, {\n limit,\n cursor,\n keyset,\n })\n\n const blocks = await builder.execute()\n return {\n blockUris: blocks.map((b) => b.uri),\n cursor: keyset.packFromResult(blocks),\n }\n },\n\n async getBidirectionalBlockViaList(req) {\n const { actorDid, targetDid } = req\n const res = await db.db\n .selectFrom('list_block')\n .innerJoin('list_item', 'list_item.listUri', 'list_block.subjectUri')\n .where((eb) =>\n eb.or([\n eb.and([\n eb('list_block.creator', '=', actorDid),\n eb('list_item.subjectDid', '=', targetDid),\n ]),\n eb.and([\n eb('list_block.creator', '=', targetDid),\n eb('list_item.subjectDid', '=', actorDid),\n ]),\n ]),\n )\n .limit(1)\n .selectAll('list_block')\n .executeTakeFirst()\n\n return {\n listUri: res?.subjectUri,\n }\n },\n\n async getBlocklistSubscription(req) {\n const { actorDid, listUri } = req\n const res = await db.db\n .selectFrom('list_block')\n .where('creator', '=', actorDid)\n .where('subjectUri', '=', listUri)\n .selectAll()\n .limit(1)\n .executeTakeFirst()\n return {\n listblockUri: res?.uri,\n }\n },\n\n async getBlocklistSubscriptions(req) {\n const { actorDid, limit, cursor } = req\n const { ref } = db.db.dynamic\n let builder = db.db\n .selectFrom('list')\n .where(({ exists }) =>\n exists(\n db.db\n .selectFrom('list_block')\n .where('list_block.creator', '=', actorDid)\n .whereRef('list_block.subjectUri', '=', ref('list.uri'))\n .selectAll(),\n ),\n )\n .selectAll('list')\n\n const keyset = new TimeCidKeyset(ref('list.createdAt'), ref('list.cid'))\n builder = paginate(builder, {\n limit,\n cursor,\n keyset,\n })\n const lists = await builder.execute()\n\n return {\n listUris: lists.map((l) => l.uri),\n cursor: keyset.packFromResult(lists),\n }\n },\n})\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { ServiceImpl } from '@connectrpc/connect';
|
|
2
|
-
import { Service } from '../../../proto/bsky_connect.js';
|
|
3
|
-
import { Database } from '../db/index.js';
|
|
1
|
+
import type { ServiceImpl } from '@connectrpc/connect';
|
|
2
|
+
import type { Service } from '../../../proto/bsky_connect.js';
|
|
3
|
+
import type { Database } from '../db/index.js';
|
|
4
4
|
declare const _default: (db: Database) => Partial<ServiceImpl<typeof Service>>;
|
|
5
5
|
export default _default;
|
|
6
6
|
//# sourceMappingURL=bookmarks.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bookmarks.d.ts","sourceRoot":"","sources":["../../../../src/data-plane/server/routes/bookmarks.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"bookmarks.d.ts","sourceRoot":"","sources":["../../../../src/data-plane/server/routes/bookmarks.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAEtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA;AAM7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;6BAG1B,QAAQ,KAAG,OAAO,CAAC,WAAW,CAAC,OAAO,OAAO,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bookmarks.js","sourceRoot":"","sources":["../../../../src/data-plane/server/routes/bookmarks.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"bookmarks.js","sourceRoot":"","sources":["../../../../src/data-plane/server/routes/bookmarks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAEjE,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAEvC,OAAO,EAEL,sCAAsC,GACvC,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAE9C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAEjD,eAAe,CAAC,EAAY,EAAwC,EAAE,CAAC,CAAC;IACtE,KAAK,CAAC,iBAAiB,CAAC,GAAG;QACzB,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAA;QACvC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,OAAO,CAAA;QAE7B,IAAI,OAAO,GAAG,EAAE,CAAC,EAAE;aAChB,UAAU,CAAC,UAAU,CAAC;aACtB,KAAK,CAAC,kBAAkB,EAAE,GAAG,EAAE,QAAQ,CAAC;aACxC,SAAS,EAAE,CAAA;QAEd,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAA;QAChD,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE;YAC9B,MAAM;YACN,KAAK;SACN,CAAC,CAAA;QAEF,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAA;QACnC,OAAO;YACL,SAAS,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACzB,GAAG,EAAE,CAAC,CAAC,GAAG;gBACV,OAAO,EAAE,CAAC,CAAC,UAAU;aACtB,CAAC,CAAC;YACH,MAAM,EAAE,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC;SAChC,CAAA;IACH,CAAC;IAED,KAAK,CAAC,8BAA8B,CAAC,GAAG;QACtC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,GAAG,CAAA;QAE9B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,IAAI,sCAAsC,CAAC;gBAChD,SAAS,EAAE,EAAE;aACd,CAAC,CAAA;QACJ,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,EAAE;aACpB,UAAU,CAAC,UAAU,CAAC;aACtB,KAAK,CAAC,kBAAkB,EAAE,GAAG,EAAE,QAAQ,CAAC;aACxC,KAAK,CAAC,qBAAqB,EAAE,IAAI,EAAE,IAAI,CAAC;aACxC,SAAS,EAAE;aACX,OAAO,EAAE,CAAA;QAEZ,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,YAAY,CAAC,CAAA;QACtC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAA0B,EAAE;YACzD,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAC/B,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO;oBACL,GAAG,EAAE,SAAS;oBACd,UAAU,EAAE,EAAE;oBACd,UAAU,EAAE,EAAE;oBACd,SAAS,EAAE,SAAS;iBACrB,CAAA;YACH,CAAC;YAED,OAAO;gBACL,GAAG,EAAE;oBACH,QAAQ;oBACR,SAAS,EAAE,UAAU,CAAC,2BAA2B,CAAC,KAAK;oBACvD,GAAG,EAAE,QAAQ,CAAC,GAAG;iBAClB;gBACD,UAAU,EAAE,QAAQ,CAAC,UAAU;gBAC/B,UAAU,EAAE,QAAQ,CAAC,UAAU;gBAC/B,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;aAC5D,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,OAAO;YACL,SAAS;SACV,CAAA;IACH,CAAC;CACF,CAAC,CAAA","sourcesContent":["import { type PlainMessage, Timestamp } from '@bufbuild/protobuf'\nimport type { ServiceImpl } from '@connectrpc/connect'\nimport { keyBy } from '@atproto/common'\nimport type { Service } from '../../../proto/bsky_connect.js'\nimport {\n type Bookmark,\n GetBookmarksByActorAndSubjectsResponse,\n} from '../../../proto/bsky_pb.js'\nimport { Namespaces } from '../../../stash.js'\nimport type { Database } from '../db/index.js'\nimport { StashKeyKey } from '../db/pagination.js'\n\nexport default (db: Database): Partial<ServiceImpl<typeof Service>> => ({\n async getActorBookmarks(req) {\n const { actorDid, cursor, limit } = req\n const { ref } = db.db.dynamic\n\n let builder = db.db\n .selectFrom('bookmark')\n .where('bookmark.creator', '=', actorDid)\n .selectAll()\n\n const key = new StashKeyKey(ref('bookmark.key'))\n builder = key.paginate(builder, {\n cursor,\n limit,\n })\n\n const res = await builder.execute()\n return {\n bookmarks: res.map((b) => ({\n key: b.key,\n subject: b.subjectUri,\n })),\n cursor: key.packFromResult(res),\n }\n },\n\n async getBookmarksByActorAndSubjects(req) {\n const { actorDid, uris } = req\n\n if (uris.length === 0) {\n return new GetBookmarksByActorAndSubjectsResponse({\n bookmarks: [],\n })\n }\n\n const res = await db.db\n .selectFrom('bookmark')\n .where('bookmark.creator', '=', actorDid)\n .where('bookmark.subjectUri', 'in', uris)\n .selectAll()\n .execute()\n\n const byUri = keyBy(res, 'subjectUri')\n const bookmarks = uris.map((did): PlainMessage<Bookmark> => {\n const bookmark = byUri.get(did)\n if (!bookmark) {\n return {\n ref: undefined,\n subjectUri: '',\n subjectCid: '',\n indexedAt: undefined,\n }\n }\n\n return {\n ref: {\n actorDid,\n namespace: Namespaces.AppBskyBookmarkDefsBookmark.$type,\n key: bookmark.key,\n },\n subjectUri: bookmark.subjectUri,\n subjectCid: bookmark.subjectCid,\n indexedAt: Timestamp.fromDate(new Date(bookmark.indexedAt)),\n }\n })\n\n return {\n bookmarks,\n }\n },\n})\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { ServiceImpl } from '@connectrpc/connect';
|
|
2
|
-
import { Service } from '../../../proto/bsky_connect.js';
|
|
3
|
-
import { Database } from '../db/index.js';
|
|
1
|
+
import type { ServiceImpl } from '@connectrpc/connect';
|
|
2
|
+
import type { Service } from '../../../proto/bsky_connect.js';
|
|
3
|
+
import type { Database } from '../db/index.js';
|
|
4
4
|
declare const _default: (db: Database) => Partial<ServiceImpl<typeof Service>>;
|
|
5
5
|
export default _default;
|
|
6
6
|
//# sourceMappingURL=drafts.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drafts.d.ts","sourceRoot":"","sources":["../../../../src/data-plane/server/routes/drafts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"drafts.d.ts","sourceRoot":"","sources":["../../../../src/data-plane/server/routes/drafts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA;AAE7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;6BAG1B,QAAQ,KAAG,OAAO,CAAC,WAAW,CAAC,OAAO,OAAO,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drafts.js","sourceRoot":"","sources":["../../../../src/data-plane/server/routes/drafts.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"drafts.js","sourceRoot":"","sources":["../../../../src/data-plane/server/routes/drafts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAKjE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAErD,eAAe,CAAC,EAAY,EAAwC,EAAE,CAAC,CAAC;IACtE,KAAK,CAAC,cAAc,CAAC,GAAG;QACtB,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAA;QACvC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,OAAO,CAAA;QAE7B,IAAI,OAAO,GAAG,EAAE,CAAC,EAAE;aAChB,UAAU,CAAC,OAAO,CAAC;aACnB,KAAK,CAAC,eAAe,EAAE,GAAG,EAAE,QAAQ,CAAC;aACrC,SAAS,EAAE,CAAA;QAEd,MAAM,GAAG,GAAG,IAAI,eAAe,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAA;QACvD,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE;YAC9B,MAAM;YACN,KAAK;SACN,CAAC,CAAA;QAEF,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAA;QACnC,OAAO;YACL,MAAM,EAAE,GAAG,CAAC,GAAG,CACb,CAAC,CAAC,EAA2B,EAAE,CAAC,CAAC;gBAC/B,GAAG,EAAE,CAAC,CAAC,GAAG;gBACV,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;gBAC/B,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;gBACpD,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;aACrD,CAAC,CACH;YACD,MAAM,EAAE,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC;SAChC,CAAA;IACH,CAAC;CACF,CAAC,CAAA","sourcesContent":["import { type PlainMessage, Timestamp } from '@bufbuild/protobuf'\nimport type { ServiceImpl } from '@connectrpc/connect'\nimport type { Service } from '../../../proto/bsky_connect.js'\nimport type { DraftInfo } from '../../../proto/bsky_pb.js'\nimport type { Database } from '../db/index.js'\nimport { IsoUpdatedAtKey } from '../db/pagination.js'\n\nexport default (db: Database): Partial<ServiceImpl<typeof Service>> => ({\n async getActorDrafts(req) {\n const { actorDid, cursor, limit } = req\n const { ref } = db.db.dynamic\n\n let builder = db.db\n .selectFrom('draft')\n .where('draft.creator', '=', actorDid)\n .selectAll()\n\n const key = new IsoUpdatedAtKey(ref('draft.updatedAt'))\n builder = key.paginate(builder, {\n cursor,\n limit,\n })\n\n const res = await builder.execute()\n return {\n drafts: res.map(\n (d): PlainMessage<DraftInfo> => ({\n key: d.key,\n payload: Buffer.from(d.payload),\n createdAt: Timestamp.fromDate(new Date(d.createdAt)),\n updatedAt: Timestamp.fromDate(new Date(d.updatedAt)),\n }),\n ),\n cursor: key.packFromResult(res),\n }\n },\n})\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { ServiceImpl } from '@connectrpc/connect';
|
|
2
|
-
import { Service } from '../../../proto/bsky_connect.js';
|
|
3
|
-
import { Database } from '../db/index.js';
|
|
1
|
+
import type { ServiceImpl } from '@connectrpc/connect';
|
|
2
|
+
import type { Service } from '../../../proto/bsky_connect.js';
|
|
3
|
+
import type { Database } from '../db/index.js';
|
|
4
4
|
declare const _default: (db: Database) => Partial<ServiceImpl<typeof Service>>;
|
|
5
5
|
export default _default;
|
|
6
6
|
//# sourceMappingURL=feed-gens.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feed-gens.d.ts","sourceRoot":"","sources":["../../../../src/data-plane/server/routes/feed-gens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"feed-gens.d.ts","sourceRoot":"","sources":["../../../../src/data-plane/server/routes/feed-gens.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;6BAG1B,QAAQ,KAAG,OAAO,CAAC,WAAW,CAAC,OAAO,OAAO,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feed-gens.js","sourceRoot":"","sources":["../../../../src/data-plane/server/routes/feed-gens.ts"],"names":[],"mappings":"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","sourcesContent":["import { ServiceImpl } from '@connectrpc/connect'\nimport { Service } from '../../../proto/bsky_connect.js'\nimport { Database } from '../db/index.js'\nimport { TimeCidKeyset, paginate } from '../db/pagination.js'\n\nexport default (db: Database): Partial<ServiceImpl<typeof Service>> => ({\n async getActorFeeds(req) {\n const { actorDid, limit, cursor } = req\n\n const { ref } = db.db.dynamic\n let builder = db.db\n .selectFrom('feed_generator')\n .selectAll()\n .where('feed_generator.creator', '=', actorDid)\n\n const keyset = new TimeCidKeyset(\n ref('feed_generator.createdAt'),\n ref('feed_generator.cid'),\n )\n builder = paginate(builder, {\n limit,\n cursor,\n keyset,\n })\n const feeds = await builder.execute()\n\n return {\n uris: feeds.map((f) => f.uri),\n cursor: keyset.packFromResult(feeds),\n }\n },\n\n async getSuggestedFeeds(req) {\n const feeds = await db.db\n .selectFrom('suggested_feed')\n .orderBy('suggested_feed.order', 'asc')\n .$if(!!req.cursor, (q) => q.where('order', '>', parseInt(req.cursor, 10)))\n .limit(req.limit || 50)\n .selectAll()\n .execute()\n return {\n uris: feeds.map((f) => f.uri),\n cursor: feeds.at(-1)?.order.toString(),\n }\n },\n\n async searchFeedGenerators(req) {\n return searchFeedGeneratorsImpl(db, req.query, req.limit)\n },\n\n async searchFeedGeneratorsV2(req) {\n const { uris, cursor } = await searchFeedGeneratorsImpl(\n db,\n req.params?.query ?? '',\n req.params?.limit ?? 25,\n )\n return {\n feedGenerators: uris.map((uri) => ({ uri, score: 0 })),\n pageInfo: { cursor: cursor ?? '', hitsTotal: 0n },\n }\n },\n\n async getFeedGeneratorStatus() {\n throw new Error('unimplemented')\n },\n})\n\nconst searchFeedGeneratorsImpl = async (\n db: Database,\n query: string,\n limit: number,\n) => {\n const { ref } = db.db.dynamic\n const trimmed = query.trim()\n let builder = db.db\n .selectFrom('feed_generator')\n .$if(!!trimmed, (q) => q.where('displayName', 'ilike', `%${trimmed}%`))\n .selectAll()\n const keyset = new TimeCidKeyset(\n ref('feed_generator.createdAt'),\n ref('feed_generator.cid'),\n )\n builder = paginate(builder, { limit, keyset })\n const feeds = await builder.execute()\n return {\n uris: feeds.map((f) => f.uri),\n cursor: keyset.packFromResult(feeds),\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"feed-gens.js","sourceRoot":"","sources":["../../../../src/data-plane/server/routes/feed-gens.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ServiceImpl } from '@connectrpc/connect'\nimport type { Service } from '../../../proto/bsky_connect.js'\nimport type { Database } from '../db/index.js'\nimport { TimeCidKeyset, paginate } from '../db/pagination.js'\n\nexport default (db: Database): Partial<ServiceImpl<typeof Service>> => ({\n async getActorFeeds(req) {\n const { actorDid, limit, cursor } = req\n\n const { ref } = db.db.dynamic\n let builder = db.db\n .selectFrom('feed_generator')\n .selectAll()\n .where('feed_generator.creator', '=', actorDid)\n\n const keyset = new TimeCidKeyset(\n ref('feed_generator.createdAt'),\n ref('feed_generator.cid'),\n )\n builder = paginate(builder, {\n limit,\n cursor,\n keyset,\n })\n const feeds = await builder.execute()\n\n return {\n uris: feeds.map((f) => f.uri),\n cursor: keyset.packFromResult(feeds),\n }\n },\n\n async getSuggestedFeeds(req) {\n const feeds = await db.db\n .selectFrom('suggested_feed')\n .orderBy('suggested_feed.order', 'asc')\n .$if(!!req.cursor, (q) => q.where('order', '>', parseInt(req.cursor, 10)))\n .limit(req.limit || 50)\n .selectAll()\n .execute()\n return {\n uris: feeds.map((f) => f.uri),\n cursor: feeds.at(-1)?.order.toString(),\n }\n },\n\n async searchFeedGenerators(req) {\n return searchFeedGeneratorsImpl(db, req.query, req.limit)\n },\n\n async searchFeedGeneratorsV2(req) {\n const { uris, cursor } = await searchFeedGeneratorsImpl(\n db,\n req.params?.query ?? '',\n req.params?.limit ?? 25,\n )\n return {\n feedGenerators: uris.map((uri) => ({ uri, score: 0 })),\n pageInfo: { cursor: cursor ?? '', hitsTotal: 0n },\n }\n },\n\n async getFeedGeneratorStatus() {\n throw new Error('unimplemented')\n },\n})\n\nconst searchFeedGeneratorsImpl = async (\n db: Database,\n query: string,\n limit: number,\n) => {\n const { ref } = db.db.dynamic\n const trimmed = query.trim()\n let builder = db.db\n .selectFrom('feed_generator')\n .$if(!!trimmed, (q) => q.where('displayName', 'ilike', `%${trimmed}%`))\n .selectAll()\n const keyset = new TimeCidKeyset(\n ref('feed_generator.createdAt'),\n ref('feed_generator.cid'),\n )\n builder = paginate(builder, { limit, keyset })\n const feeds = await builder.execute()\n return {\n uris: feeds.map((f) => f.uri),\n cursor: keyset.packFromResult(feeds),\n }\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { ServiceImpl } from '@connectrpc/connect';
|
|
2
|
-
import { Service } from '../../../proto/bsky_connect.js';
|
|
3
|
-
import { Database } from '../db/index.js';
|
|
1
|
+
import type { ServiceImpl } from '@connectrpc/connect';
|
|
2
|
+
import type { Service } from '../../../proto/bsky_connect.js';
|
|
3
|
+
import type { Database } from '../db/index.js';
|
|
4
4
|
declare const _default: (db: Database) => Partial<ServiceImpl<typeof Service>>;
|
|
5
5
|
export default _default;
|
|
6
6
|
//# sourceMappingURL=feeds.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feeds.d.ts","sourceRoot":"","sources":["../../../../src/data-plane/server/routes/feeds.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"feeds.d.ts","sourceRoot":"","sources":["../../../../src/data-plane/server/routes/feeds.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA;AAE7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;6BAG1B,QAAQ,KAAG,OAAO,CAAC,WAAW,CAAC,OAAO,OAAO,CAAC,CAAC"}
|