@atproto/bsky 0.0.112 → 0.0.114
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 +38 -0
- package/bin/migration-create.ts +2 -2
- package/dist/api/app/bsky/actor/getProfile.d.ts +1 -1
- package/dist/api/app/bsky/actor/getProfile.d.ts.map +1 -1
- package/dist/api/app/bsky/actor/getProfile.js +1 -1
- package/dist/api/app/bsky/actor/getProfile.js.map +1 -1
- package/dist/api/app/bsky/actor/getProfiles.d.ts +1 -1
- package/dist/api/app/bsky/actor/getProfiles.d.ts.map +1 -1
- package/dist/api/app/bsky/actor/getProfiles.js +2 -2
- package/dist/api/app/bsky/actor/getProfiles.js.map +1 -1
- package/dist/api/app/bsky/actor/getSuggestions.d.ts +1 -1
- package/dist/api/app/bsky/actor/getSuggestions.d.ts.map +1 -1
- package/dist/api/app/bsky/actor/getSuggestions.js +1 -1
- package/dist/api/app/bsky/actor/getSuggestions.js.map +1 -1
- package/dist/api/app/bsky/actor/searchActors.d.ts +1 -1
- package/dist/api/app/bsky/actor/searchActors.d.ts.map +1 -1
- package/dist/api/app/bsky/actor/searchActors.js +1 -1
- package/dist/api/app/bsky/actor/searchActors.js.map +1 -1
- package/dist/api/app/bsky/actor/searchActorsTypeahead.d.ts +1 -1
- package/dist/api/app/bsky/actor/searchActorsTypeahead.d.ts.map +1 -1
- package/dist/api/app/bsky/actor/searchActorsTypeahead.js +1 -1
- package/dist/api/app/bsky/actor/searchActorsTypeahead.js.map +1 -1
- package/dist/api/app/bsky/feed/getActorFeeds.d.ts +1 -1
- package/dist/api/app/bsky/feed/getActorFeeds.d.ts.map +1 -1
- package/dist/api/app/bsky/feed/getActorFeeds.js +2 -2
- package/dist/api/app/bsky/feed/getActorFeeds.js.map +1 -1
- package/dist/api/app/bsky/feed/getActorLikes.d.ts +1 -1
- package/dist/api/app/bsky/feed/getActorLikes.d.ts.map +1 -1
- package/dist/api/app/bsky/feed/getActorLikes.js +6 -6
- package/dist/api/app/bsky/feed/getActorLikes.js.map +1 -1
- package/dist/api/app/bsky/feed/getAuthorFeed.d.ts +5 -5
- package/dist/api/app/bsky/feed/getAuthorFeed.d.ts.map +1 -1
- package/dist/api/app/bsky/feed/getAuthorFeed.js +11 -9
- package/dist/api/app/bsky/feed/getAuthorFeed.js.map +1 -1
- package/dist/api/app/bsky/feed/getFeed.d.ts +2 -2
- package/dist/api/app/bsky/feed/getFeed.d.ts.map +1 -1
- package/dist/api/app/bsky/feed/getFeed.js +6 -6
- package/dist/api/app/bsky/feed/getFeed.js.map +1 -1
- package/dist/api/app/bsky/feed/getFeedGenerator.d.ts +1 -1
- 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 +1 -1
- 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 +1 -1
- package/dist/api/app/bsky/feed/getLikes.d.ts.map +1 -1
- package/dist/api/app/bsky/feed/getLikes.js +2 -2
- package/dist/api/app/bsky/feed/getLikes.js.map +1 -1
- package/dist/api/app/bsky/feed/getListFeed.d.ts +4 -4
- package/dist/api/app/bsky/feed/getListFeed.d.ts.map +1 -1
- package/dist/api/app/bsky/feed/getListFeed.js +7 -7
- package/dist/api/app/bsky/feed/getListFeed.js.map +1 -1
- package/dist/api/app/bsky/feed/getPostThread.d.ts +1 -1
- package/dist/api/app/bsky/feed/getPostThread.d.ts.map +1 -1
- package/dist/api/app/bsky/feed/getPostThread.js +2 -2
- package/dist/api/app/bsky/feed/getPostThread.js.map +1 -1
- package/dist/api/app/bsky/feed/getPosts.d.ts +1 -1
- package/dist/api/app/bsky/feed/getPosts.d.ts.map +1 -1
- package/dist/api/app/bsky/feed/getPosts.js +1 -1
- package/dist/api/app/bsky/feed/getPosts.js.map +1 -1
- package/dist/api/app/bsky/feed/getQuotes.d.ts +1 -1
- package/dist/api/app/bsky/feed/getQuotes.d.ts.map +1 -1
- package/dist/api/app/bsky/feed/getQuotes.js +6 -6
- package/dist/api/app/bsky/feed/getQuotes.js.map +1 -1
- package/dist/api/app/bsky/feed/getRepostedBy.d.ts +1 -1
- package/dist/api/app/bsky/feed/getRepostedBy.d.ts.map +1 -1
- package/dist/api/app/bsky/feed/getRepostedBy.js +1 -1
- package/dist/api/app/bsky/feed/getRepostedBy.js.map +1 -1
- package/dist/api/app/bsky/feed/getSuggestedFeeds.d.ts +1 -1
- 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 +4 -4
- package/dist/api/app/bsky/feed/getTimeline.d.ts.map +1 -1
- package/dist/api/app/bsky/feed/getTimeline.js +6 -6
- package/dist/api/app/bsky/feed/getTimeline.js.map +1 -1
- package/dist/api/app/bsky/feed/searchPosts.d.ts +1 -1
- package/dist/api/app/bsky/feed/searchPosts.d.ts.map +1 -1
- package/dist/api/app/bsky/feed/searchPosts.js +1 -1
- package/dist/api/app/bsky/feed/searchPosts.js.map +1 -1
- package/dist/api/app/bsky/graph/getActorStarterPacks.d.ts +1 -1
- package/dist/api/app/bsky/graph/getActorStarterPacks.d.ts.map +1 -1
- package/dist/api/app/bsky/graph/getActorStarterPacks.js +5 -5
- package/dist/api/app/bsky/graph/getActorStarterPacks.js.map +1 -1
- package/dist/api/app/bsky/graph/getBlocks.d.ts +1 -1
- 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 +1 -1
- package/dist/api/app/bsky/graph/getFollowers.d.ts.map +1 -1
- package/dist/api/app/bsky/graph/getFollowers.js +1 -1
- package/dist/api/app/bsky/graph/getFollowers.js.map +1 -1
- package/dist/api/app/bsky/graph/getFollows.d.ts +1 -1
- package/dist/api/app/bsky/graph/getFollows.d.ts.map +1 -1
- package/dist/api/app/bsky/graph/getFollows.js +1 -1
- package/dist/api/app/bsky/graph/getFollows.js.map +1 -1
- package/dist/api/app/bsky/graph/getKnownFollowers.d.ts +1 -1
- 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 +1 -1
- package/dist/api/app/bsky/graph/getList.d.ts.map +1 -1
- package/dist/api/app/bsky/graph/getList.js +2 -2
- package/dist/api/app/bsky/graph/getList.js.map +1 -1
- package/dist/api/app/bsky/graph/getListBlocks.d.ts +1 -1
- 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 +1 -1
- 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 +1 -1
- 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/getMutes.d.ts +1 -1
- 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 +1 -1
- package/dist/api/app/bsky/graph/getRelationships.d.ts.map +1 -1
- package/dist/api/app/bsky/graph/getStarterPack.d.ts +1 -1
- 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 +1 -1
- package/dist/api/app/bsky/graph/getStarterPacks.d.ts.map +1 -1
- package/dist/api/app/bsky/graph/getStarterPacks.js +1 -1
- package/dist/api/app/bsky/graph/getStarterPacks.js.map +1 -1
- package/dist/api/app/bsky/graph/getSuggestedFollowsByActor.d.ts +1 -1
- 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 +1 -1
- package/dist/api/app/bsky/graph/muteActor.d.ts.map +1 -1
- package/dist/api/app/bsky/graph/muteActorList.d.ts +1 -1
- package/dist/api/app/bsky/graph/muteActorList.d.ts.map +1 -1
- package/dist/api/app/bsky/graph/muteThread.d.ts +1 -1
- package/dist/api/app/bsky/graph/muteThread.d.ts.map +1 -1
- package/dist/api/app/bsky/graph/searchStarterPacks.d.ts +1 -1
- package/dist/api/app/bsky/graph/searchStarterPacks.d.ts.map +1 -1
- package/dist/api/app/bsky/graph/searchStarterPacks.js +2 -2
- package/dist/api/app/bsky/graph/searchStarterPacks.js.map +1 -1
- package/dist/api/app/bsky/graph/unmuteActor.d.ts +1 -1
- package/dist/api/app/bsky/graph/unmuteActor.d.ts.map +1 -1
- package/dist/api/app/bsky/graph/unmuteActorList.d.ts +1 -1
- package/dist/api/app/bsky/graph/unmuteActorList.d.ts.map +1 -1
- package/dist/api/app/bsky/graph/unmuteThread.d.ts +1 -1
- package/dist/api/app/bsky/graph/unmuteThread.d.ts.map +1 -1
- package/dist/api/app/bsky/labeler/getServices.d.ts +1 -1
- 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/getUnreadCount.d.ts +1 -1
- 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/listNotifications.d.ts +1 -1
- package/dist/api/app/bsky/notification/listNotifications.d.ts.map +1 -1
- package/dist/api/app/bsky/notification/listNotifications.js +1 -1
- package/dist/api/app/bsky/notification/listNotifications.js.map +1 -1
- package/dist/api/app/bsky/notification/putPreferences.d.ts +1 -1
- package/dist/api/app/bsky/notification/putPreferences.d.ts.map +1 -1
- package/dist/api/app/bsky/notification/registerPush.d.ts +1 -1
- package/dist/api/app/bsky/notification/registerPush.d.ts.map +1 -1
- package/dist/api/app/bsky/notification/updateSeen.d.ts +1 -1
- package/dist/api/app/bsky/notification/updateSeen.d.ts.map +1 -1
- package/dist/api/app/bsky/notification/updateSeen.js +2 -5
- package/dist/api/app/bsky/notification/updateSeen.js.map +1 -1
- package/dist/api/app/bsky/unspecced/getConfig.d.ts +1 -1
- package/dist/api/app/bsky/unspecced/getConfig.d.ts.map +1 -1
- package/dist/api/app/bsky/unspecced/getPopularFeedGenerators.d.ts +1 -1
- 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/getTaggedSuggestions.d.ts +1 -1
- package/dist/api/app/bsky/unspecced/getTaggedSuggestions.d.ts.map +1 -1
- package/dist/api/app/bsky/unspecced/getTrendingTopics.d.ts +1 -1
- package/dist/api/app/bsky/unspecced/getTrendingTopics.d.ts.map +1 -1
- package/dist/api/app/bsky/unspecced/getTrendingTopics.js +1 -1
- package/dist/api/app/bsky/unspecced/getTrendingTopics.js.map +1 -1
- package/dist/api/blob-dispatcher.d.ts.map +1 -1
- package/dist/api/blob-dispatcher.js +1 -1
- package/dist/api/blob-dispatcher.js.map +1 -1
- package/dist/api/blob-resolver.d.ts +3 -3
- package/dist/api/blob-resolver.d.ts.map +1 -1
- package/dist/api/blob-resolver.js +6 -4
- package/dist/api/blob-resolver.js.map +1 -1
- package/dist/api/com/atproto/admin/getAccountInfos.d.ts +1 -1
- 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 +1 -1
- package/dist/api/com/atproto/admin/getSubjectStatus.d.ts.map +1 -1
- package/dist/api/com/atproto/admin/updateSubjectStatus.d.ts +1 -1
- package/dist/api/com/atproto/admin/updateSubjectStatus.d.ts.map +1 -1
- package/dist/api/com/atproto/identity/resolveHandle.d.ts +1 -1
- package/dist/api/com/atproto/identity/resolveHandle.d.ts.map +1 -1
- package/dist/api/com/atproto/identity/resolveHandle.js +1 -1
- package/dist/api/com/atproto/identity/resolveHandle.js.map +1 -1
- package/dist/api/com/atproto/label/queryLabels.d.ts +1 -1
- 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 +1 -1
- package/dist/api/com/atproto/repo/getRecord.d.ts.map +1 -1
- package/dist/api/com/atproto/repo/getRecord.js +1 -1
- package/dist/api/com/atproto/repo/getRecord.js.map +1 -1
- package/dist/api/com/atproto/temp/fetchLabels.d.ts +1 -1
- 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/health.d.ts +3 -3
- package/dist/api/health.d.ts.map +1 -1
- package/dist/api/health.js +2 -5
- package/dist/api/health.js.map +1 -1
- package/dist/api/index.d.ts +1 -1
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +20 -20
- package/dist/api/index.js.map +1 -1
- package/dist/api/util.d.ts +1 -0
- package/dist/api/util.d.ts.map +1 -1
- package/dist/api/util.js +2 -1
- package/dist/api/util.js.map +1 -1
- package/dist/api/well-known.d.ts +3 -3
- package/dist/api/well-known.d.ts.map +1 -1
- package/dist/api/well-known.js +2 -5
- package/dist/api/well-known.js.map +1 -1
- package/dist/auth-verifier.d.ts +1 -1
- package/dist/auth-verifier.d.ts.map +1 -1
- package/dist/auth-verifier.js +3 -3
- 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 +1 -1
- package/dist/bsync.js.map +1 -1
- package/dist/context.d.ts +7 -8
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +1 -2
- 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 +1 -1
- package/dist/courier.js.map +1 -1
- package/dist/data-plane/bsync/index.d.ts +1 -1
- package/dist/data-plane/bsync/index.d.ts.map +1 -1
- package/dist/data-plane/bsync/index.js +6 -6
- package/dist/data-plane/bsync/index.js.map +1 -1
- package/dist/data-plane/client.d.ts.map +1 -1
- package/dist/data-plane/client.js +1 -1
- package/dist/data-plane/client.js.map +1 -1
- package/dist/data-plane/server/background.d.ts.map +1 -1
- package/dist/data-plane/server/background.js.map +1 -1
- package/dist/data-plane/server/db/database-schema.d.ts +26 -27
- package/dist/data-plane/server/db/database-schema.d.ts.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 +6 -6
- package/dist/data-plane/server/db/db.js.map +1 -1
- package/dist/data-plane/server/db/util.d.ts +1 -1
- package/dist/data-plane/server/db/util.d.ts.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 +4 -4
- package/dist/data-plane/server/index.js.map +1 -1
- package/dist/data-plane/server/indexing/index.d.ts +14 -14
- package/dist/data-plane/server/indexing/index.d.ts.map +1 -1
- package/dist/data-plane/server/indexing/index.js +16 -16
- 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 +2 -5
- 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 +2 -5
- 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 +2 -5
- 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 +2 -5
- package/dist/data-plane/server/indexing/plugins/follow.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 +2 -5
- 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 +2 -5
- 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 +2 -5
- 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 +3 -6
- package/dist/data-plane/server/indexing/plugins/list-item.js.map +1 -1
- package/dist/data-plane/server/indexing/plugins/list.d.ts +3 -3
- package/dist/data-plane/server/indexing/plugins/list.d.ts.map +1 -1
- package/dist/data-plane/server/indexing/plugins/list.js +2 -5
- package/dist/data-plane/server/indexing/plugins/list.js.map +1 -1
- package/dist/data-plane/server/indexing/plugins/post-gate.d.ts +3 -3
- package/dist/data-plane/server/indexing/plugins/post-gate.d.ts.map +1 -1
- package/dist/data-plane/server/indexing/plugins/post-gate.js +2 -5
- package/dist/data-plane/server/indexing/plugins/post-gate.js.map +1 -1
- package/dist/data-plane/server/indexing/plugins/post.d.ts +3 -3
- package/dist/data-plane/server/indexing/plugins/post.d.ts.map +1 -1
- package/dist/data-plane/server/indexing/plugins/post.js +21 -24
- package/dist/data-plane/server/indexing/plugins/post.js.map +1 -1
- package/dist/data-plane/server/indexing/plugins/profile.d.ts +3 -3
- package/dist/data-plane/server/indexing/plugins/profile.d.ts.map +1 -1
- package/dist/data-plane/server/indexing/plugins/profile.js +2 -5
- 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 +2 -5
- 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 +2 -5
- package/dist/data-plane/server/indexing/plugins/starter-pack.js.map +1 -1
- package/dist/data-plane/server/indexing/plugins/thread-gate.d.ts +3 -3
- package/dist/data-plane/server/indexing/plugins/thread-gate.d.ts.map +1 -1
- package/dist/data-plane/server/indexing/plugins/thread-gate.js +2 -5
- package/dist/data-plane/server/indexing/plugins/thread-gate.js.map +1 -1
- package/dist/data-plane/server/indexing/processor.d.ts +2 -2
- 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/feeds.d.ts.map +1 -1
- package/dist/data-plane/server/routes/feeds.js +1 -1
- package/dist/data-plane/server/routes/feeds.js.map +1 -1
- package/dist/data-plane/server/routes/follows.d.ts.map +1 -1
- package/dist/data-plane/server/routes/follows.js +1 -1
- package/dist/data-plane/server/routes/follows.js.map +1 -1
- package/dist/data-plane/server/routes/identity.d.ts +1 -1
- 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.map +1 -1
- package/dist/data-plane/server/routes/index.js +1 -1
- package/dist/data-plane/server/routes/index.js.map +1 -1
- package/dist/data-plane/server/routes/interactions.d.ts.map +1 -1
- package/dist/data-plane/server/routes/interactions.js +11 -11
- package/dist/data-plane/server/routes/interactions.js.map +1 -1
- 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.map +1 -1
- package/dist/data-plane/server/routes/likes.js +1 -2
- package/dist/data-plane/server/routes/likes.js.map +1 -1
- package/dist/data-plane/server/routes/lists.d.ts.map +1 -1
- package/dist/data-plane/server/routes/lists.js +2 -2
- package/dist/data-plane/server/routes/lists.js.map +1 -1
- package/dist/data-plane/server/routes/mutes.d.ts.map +1 -1
- package/dist/data-plane/server/routes/mutes.js +7 -7
- package/dist/data-plane/server/routes/mutes.js.map +1 -1
- package/dist/data-plane/server/routes/notifs.js +2 -2
- package/dist/data-plane/server/routes/notifs.js.map +1 -1
- package/dist/data-plane/server/routes/posts.d.ts.map +1 -1
- package/dist/data-plane/server/routes/posts.js +1 -1
- package/dist/data-plane/server/routes/posts.js.map +1 -1
- package/dist/data-plane/server/routes/profile.d.ts.map +1 -1
- package/dist/data-plane/server/routes/profile.js +4 -4
- package/dist/data-plane/server/routes/profile.js.map +1 -1
- package/dist/data-plane/server/routes/records.d.ts.map +1 -1
- package/dist/data-plane/server/routes/records.js +7 -7
- package/dist/data-plane/server/routes/records.js.map +1 -1
- package/dist/data-plane/server/routes/relationships.d.ts.map +1 -1
- package/dist/data-plane/server/routes/relationships.js +60 -40
- package/dist/data-plane/server/routes/relationships.js.map +1 -1
- package/dist/data-plane/server/routes/reposts.d.ts.map +1 -1
- package/dist/data-plane/server/routes/reposts.js +1 -2
- package/dist/data-plane/server/routes/reposts.js.map +1 -1
- 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/subscription.d.ts +3 -3
- package/dist/data-plane/server/subscription.d.ts.map +1 -1
- package/dist/data-plane/server/subscription.js +2 -2
- package/dist/data-plane/server/subscription.js.map +1 -1
- package/dist/data-plane/server/util.d.ts +1 -1
- package/dist/data-plane/server/util.d.ts.map +1 -1
- package/dist/data-plane/server/util.js +4 -4
- package/dist/data-plane/server/util.js.map +1 -1
- package/dist/error.d.ts.map +1 -1
- package/dist/error.js.map +1 -1
- package/dist/feature-gates.d.ts.map +1 -1
- package/dist/feature-gates.js.map +1 -1
- package/dist/hydration/feed.d.ts +3 -3
- package/dist/hydration/feed.d.ts.map +1 -1
- package/dist/hydration/feed.js +1 -1
- package/dist/hydration/feed.js.map +1 -1
- package/dist/hydration/graph.d.ts +11 -8
- package/dist/hydration/graph.d.ts.map +1 -1
- package/dist/hydration/graph.js +17 -19
- package/dist/hydration/graph.js.map +1 -1
- package/dist/hydration/hydrator.d.ts +7 -5
- package/dist/hydration/hydrator.d.ts.map +1 -1
- package/dist/hydration/hydrator.js +53 -21
- package/dist/hydration/hydrator.js.map +1 -1
- package/dist/hydration/label.d.ts +2 -2
- 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.map +1 -1
- package/dist/hydration/util.js +2 -2
- package/dist/hydration/util.js.map +1 -1
- package/dist/image/index.d.ts +1 -1
- package/dist/image/index.d.ts.map +1 -1
- package/dist/image/server.d.ts +1 -1
- package/dist/image/server.d.ts.map +1 -1
- package/dist/image/server.js +3 -3
- package/dist/image/server.js.map +1 -1
- package/dist/image/sharp.d.ts.map +1 -1
- package/dist/image/sharp.js +1 -1
- package/dist/image/sharp.js.map +1 -1
- package/dist/index.d.ts +6 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +22 -22
- package/dist/index.js.map +1 -1
- package/dist/lexicon/lexicons.d.ts +56 -2
- package/dist/lexicon/lexicons.d.ts.map +1 -1
- package/dist/lexicon/lexicons.js +32 -0
- package/dist/lexicon/lexicons.js.map +1 -1
- package/dist/lexicon/types/app/bsky/actor/defs.d.ts +19 -1
- package/dist/lexicon/types/app/bsky/actor/defs.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/actor/defs.js +10 -0
- package/dist/lexicon/types/app/bsky/actor/defs.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/postgate.d.ts +1 -0
- package/dist/lexicon/types/app/bsky/feed/postgate.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/postgate.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/threadgate.d.ts +1 -0
- package/dist/lexicon/types/app/bsky/feed/threadgate.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/threadgate.js.map +1 -1
- package/dist/logger.js +2 -5
- package/dist/logger.js.map +1 -1
- package/dist/redis.js +5 -5
- package/dist/redis.js.map +1 -1
- package/dist/util/http.d.ts.map +1 -1
- package/dist/util/http.js.map +1 -1
- package/dist/util/uris.d.ts.map +1 -1
- package/dist/views/index.d.ts +13 -8
- package/dist/views/index.d.ts.map +1 -1
- package/dist/views/index.js +47 -27
- package/dist/views/index.js.map +1 -1
- package/dist/views/types.d.ts +3 -3
- package/dist/views/types.d.ts.map +1 -1
- package/dist/views/util.d.ts +1 -1
- package/dist/views/util.d.ts.map +1 -1
- package/dist/views/util.js +1 -1
- package/dist/views/util.js.map +1 -1
- package/package.json +20 -17
- package/src/api/app/bsky/actor/getProfile.ts +5 -5
- package/src/api/app/bsky/actor/getProfiles.ts +6 -6
- package/src/api/app/bsky/actor/getSuggestions.ts +10 -9
- package/src/api/app/bsky/actor/searchActors.ts +6 -6
- package/src/api/app/bsky/actor/searchActorsTypeahead.ts +5 -5
- package/src/api/app/bsky/feed/getActorFeeds.ts +7 -7
- package/src/api/app/bsky/feed/getActorLikes.ts +9 -9
- package/src/api/app/bsky/feed/getAuthorFeed.ts +18 -12
- package/src/api/app/bsky/feed/getFeed.ts +17 -17
- package/src/api/app/bsky/feed/getFeedGenerator.ts +3 -3
- package/src/api/app/bsky/feed/getFeedGenerators.ts +4 -4
- package/src/api/app/bsky/feed/getLikes.ts +6 -7
- package/src/api/app/bsky/feed/getListFeed.ts +9 -9
- package/src/api/app/bsky/feed/getPostThread.ts +7 -7
- package/src/api/app/bsky/feed/getPosts.ts +6 -6
- package/src/api/app/bsky/feed/getQuotes.ts +7 -7
- package/src/api/app/bsky/feed/getRepostedBy.ts +5 -5
- package/src/api/app/bsky/feed/getSuggestedFeeds.ts +2 -2
- package/src/api/app/bsky/feed/getTimeline.ts +9 -9
- package/src/api/app/bsky/feed/searchPosts.ts +6 -6
- package/src/api/app/bsky/graph/getActorStarterPacks.ts +7 -7
- package/src/api/app/bsky/graph/getBlocks.ts +4 -4
- package/src/api/app/bsky/graph/getFollowers.ts +6 -6
- package/src/api/app/bsky/graph/getFollows.ts +6 -6
- package/src/api/app/bsky/graph/getKnownFollowers.ts +2 -2
- package/src/api/app/bsky/graph/getList.ts +10 -10
- package/src/api/app/bsky/graph/getListBlocks.ts +4 -4
- package/src/api/app/bsky/graph/getListMutes.ts +4 -4
- package/src/api/app/bsky/graph/getLists.ts +4 -4
- package/src/api/app/bsky/graph/getMutes.ts +3 -3
- package/src/api/app/bsky/graph/getRelationships.ts +1 -1
- package/src/api/app/bsky/graph/getStarterPack.ts +4 -4
- package/src/api/app/bsky/graph/getStarterPacks.ts +5 -5
- package/src/api/app/bsky/graph/getSuggestedFollowsByActor.ts +6 -5
- package/src/api/app/bsky/graph/muteActor.ts +1 -1
- package/src/api/app/bsky/graph/muteActorList.ts +1 -1
- package/src/api/app/bsky/graph/muteThread.ts +1 -1
- package/src/api/app/bsky/graph/searchStarterPacks.ts +7 -7
- package/src/api/app/bsky/graph/unmuteActor.ts +1 -1
- package/src/api/app/bsky/graph/unmuteActorList.ts +1 -1
- package/src/api/app/bsky/graph/unmuteThread.ts +1 -1
- package/src/api/app/bsky/labeler/getServices.ts +2 -2
- package/src/api/app/bsky/notification/getUnreadCount.ts +2 -2
- package/src/api/app/bsky/notification/listNotifications.ts +6 -6
- package/src/api/app/bsky/notification/putPreferences.ts +1 -1
- package/src/api/app/bsky/notification/registerPush.ts +1 -1
- package/src/api/app/bsky/notification/updateSeen.ts +3 -3
- package/src/api/app/bsky/unspecced/getConfig.ts +1 -1
- package/src/api/app/bsky/unspecced/getPopularFeedGenerators.ts +2 -2
- package/src/api/app/bsky/unspecced/getTaggedSuggestions.ts +1 -1
- package/src/api/app/bsky/unspecced/getTrendingTopics.ts +7 -7
- package/src/api/blob-dispatcher.ts +1 -2
- package/src/api/blob-resolver.ts +15 -13
- package/src/api/com/atproto/admin/getAccountInfos.ts +2 -2
- package/src/api/com/atproto/admin/getSubjectStatus.ts +1 -1
- package/src/api/com/atproto/admin/updateSubjectStatus.ts +2 -2
- package/src/api/com/atproto/identity/resolveHandle.ts +2 -2
- package/src/api/com/atproto/label/queryLabels.ts +2 -2
- package/src/api/com/atproto/repo/getRecord.ts +2 -2
- package/src/api/com/atproto/temp/fetchLabels.ts +2 -2
- package/src/api/health.ts +4 -4
- package/src/api/index.ts +21 -21
- package/src/api/util.ts +1 -0
- package/src/api/well-known.ts +4 -4
- package/src/auth-verifier.ts +6 -6
- package/src/bsync.ts +3 -3
- package/src/context.ts +8 -10
- package/src/courier.ts +3 -3
- package/src/data-plane/bsync/index.ts +6 -6
- package/src/data-plane/client.ts +1 -1
- package/src/data-plane/server/background.ts +1 -1
- package/src/data-plane/server/db/database-schema.ts +26 -28
- package/src/data-plane/server/db/db.ts +6 -6
- package/src/data-plane/server/db/util.ts +2 -2
- package/src/data-plane/server/index.ts +5 -5
- package/src/data-plane/server/indexing/index.ts +21 -21
- package/src/data-plane/server/indexing/plugins/block.ts +4 -4
- package/src/data-plane/server/indexing/plugins/chat-declaration.ts +4 -4
- package/src/data-plane/server/indexing/plugins/feed-generator.ts +4 -4
- package/src/data-plane/server/indexing/plugins/follow.ts +5 -5
- package/src/data-plane/server/indexing/plugins/labeler.ts +4 -4
- package/src/data-plane/server/indexing/plugins/like.ts +5 -5
- package/src/data-plane/server/indexing/plugins/list-block.ts +4 -4
- package/src/data-plane/server/indexing/plugins/list-item.ts +5 -5
- package/src/data-plane/server/indexing/plugins/list.ts +5 -5
- package/src/data-plane/server/indexing/plugins/post-gate.ts +5 -5
- package/src/data-plane/server/indexing/plugins/post.ts +18 -18
- package/src/data-plane/server/indexing/plugins/profile.ts +5 -5
- package/src/data-plane/server/indexing/plugins/repost.ts +4 -4
- package/src/data-plane/server/indexing/plugins/starter-pack.ts +4 -4
- package/src/data-plane/server/indexing/plugins/thread-gate.ts +5 -5
- package/src/data-plane/server/indexing/processor.ts +3 -3
- package/src/data-plane/server/routes/feeds.ts +1 -1
- package/src/data-plane/server/routes/follows.ts +2 -2
- package/src/data-plane/server/routes/identity.ts +2 -2
- package/src/data-plane/server/routes/index.ts +2 -2
- package/src/data-plane/server/routes/interactions.ts +14 -12
- package/src/data-plane/server/routes/labels.ts +2 -2
- package/src/data-plane/server/routes/likes.ts +2 -3
- package/src/data-plane/server/routes/lists.ts +3 -3
- package/src/data-plane/server/routes/mutes.ts +3 -3
- package/src/data-plane/server/routes/notifs.ts +3 -3
- package/src/data-plane/server/routes/posts.ts +2 -2
- package/src/data-plane/server/routes/profile.ts +6 -6
- package/src/data-plane/server/routes/quotes.ts +1 -1
- package/src/data-plane/server/routes/records.ts +7 -7
- package/src/data-plane/server/routes/relationships.ts +74 -50
- package/src/data-plane/server/routes/reposts.ts +2 -3
- package/src/data-plane/server/routes/suggestions.ts +1 -1
- package/src/data-plane/server/subscription.ts +3 -3
- package/src/data-plane/server/util.ts +2 -2
- package/src/error.ts +1 -1
- package/src/feature-gates.ts +0 -2
- package/src/hydration/feed.ts +9 -9
- package/src/hydration/graph.ts +27 -27
- package/src/hydration/hydrator.ts +92 -45
- package/src/hydration/label.ts +4 -4
- package/src/hydration/util.ts +2 -2
- package/src/image/index.ts +1 -1
- package/src/image/server.ts +12 -13
- package/src/image/sharp.ts +2 -2
- package/src/index.ts +23 -23
- package/src/lexicon/lexicons.ts +37 -0
- package/src/lexicon/types/app/bsky/actor/defs.ts +36 -0
- package/src/lexicon/types/app/bsky/feed/postgate.ts +1 -0
- package/src/lexicon/types/app/bsky/feed/threadgate.ts +1 -0
- package/src/logger.ts +1 -1
- package/src/redis.ts +1 -1
- package/src/util/http.ts +1 -1
- package/src/util/uris.ts +1 -1
- package/src/views/index.ts +77 -45
- package/src/views/types.ts +9 -9
- package/src/views/util.ts +4 -4
- package/tests/_util.ts +4 -5
- package/tests/admin/admin-auth.test.ts +2 -2
- package/tests/admin/moderation.test.ts +1 -1
- package/tests/auth.test.ts +1 -1
- package/tests/blob-resolver.test.ts +2 -2
- package/tests/data-plane/duplicate-records.test.ts +3 -3
- package/tests/data-plane/handle-invalidation.test.ts +2 -2
- package/tests/data-plane/indexing.test.ts +8 -8
- package/tests/data-plane/subscription.test.ts +1 -1
- package/tests/data-plane/thread-mutes.test.ts +1 -1
- package/tests/entryway-auth.test.ts +5 -5
- package/tests/feed-generation.test.ts +8 -8
- package/tests/hydration/util.test.ts +1 -1
- package/tests/image/server.test.ts +2 -2
- package/tests/image/uri.test.ts +2 -2
- package/tests/label-hydration.test.ts +6 -3
- package/tests/postgates.test.ts +2 -3
- package/tests/query-labels.test.ts +1 -1
- package/tests/seed/feed-hidden-replies.ts +1 -1
- package/tests/seed/known-followers.ts +1 -1
- package/tests/seed/postgates.ts +1 -1
- package/tests/server.test.ts +2 -2
- package/tests/views/account-deactivation.test.ts +1 -1
- package/tests/views/actor-likes.test.ts +1 -1
- package/tests/views/actor-search.test.ts +2 -2
- package/tests/views/author-feed.test.ts +11 -11
- package/tests/views/block-lists.test.ts +3 -3
- package/tests/views/blocks.test.ts +4 -4
- package/tests/views/feed-hidden-replies.test.ts +2 -3
- package/tests/views/feed-view-post.test.ts +2 -2
- package/tests/views/follows.test.ts +2 -2
- package/tests/views/known-followers.test.ts +2 -3
- package/tests/views/labeler-service.test.ts +2 -2
- package/tests/views/labels-needs-review.test.ts +2 -2
- package/tests/views/labels-takedown.test.ts +30 -1
- package/tests/views/likes.test.ts +2 -2
- package/tests/views/list-feed.test.ts +2 -2
- package/tests/views/lists.test.ts +2 -2
- package/tests/views/mute-lists.test.ts +3 -3
- package/tests/views/mutes.test.ts +2 -2
- package/tests/views/notifications.test.ts +3 -3
- package/tests/views/posts.test.ts +3 -3
- package/tests/views/profile.test.ts +3 -3
- package/tests/views/quotes.test.ts +2 -2
- package/tests/views/reposts.test.ts +2 -2
- package/tests/views/starter-packs.test.ts +3 -3
- package/tests/views/suggested-follows.test.ts +2 -2
- package/tests/views/suggestions.test.ts +2 -2
- package/tests/views/thread.test.ts +2 -2
- package/tests/views/threadgating.test.ts +3 -3
- package/tests/views/timeline.test.ts +5 -5
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ConnectRouter } from '@connectrpc/connect'
|
|
2
2
|
import { IdResolver } from '@atproto/identity'
|
|
3
3
|
import { Service } from '../../../proto/bsky_connect'
|
|
4
|
+
import { Database } from '../db'
|
|
4
5
|
import blocks from './blocks'
|
|
5
6
|
import feedGens from './feed-gens'
|
|
6
7
|
import feeds from './feeds'
|
|
@@ -20,11 +21,10 @@ import records from './records'
|
|
|
20
21
|
import relationships from './relationships'
|
|
21
22
|
import reposts from './reposts'
|
|
22
23
|
import search from './search'
|
|
24
|
+
import starterPacks from './starter-packs'
|
|
23
25
|
import suggestions from './suggestions'
|
|
24
26
|
import sync from './sync'
|
|
25
27
|
import threads from './threads'
|
|
26
|
-
import starterPacks from './starter-packs'
|
|
27
|
-
import { Database } from '../db'
|
|
28
28
|
|
|
29
29
|
export default (db: Database, idResolver: IdResolver) =>
|
|
30
30
|
(router: ConnectRouter) =>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { DAY, keyBy } from '@atproto/common'
|
|
2
1
|
import { ServiceImpl } from '@connectrpc/connect'
|
|
2
|
+
import { DAY, keyBy } from '@atproto/common'
|
|
3
3
|
import { Service } from '../../../proto/bsky_connect'
|
|
4
4
|
import { Database } from '../db'
|
|
5
5
|
import { countAll } from '../db/util'
|
|
@@ -17,10 +17,10 @@ export default (db: Database): Partial<ServiceImpl<typeof Service>> => ({
|
|
|
17
17
|
.execute()
|
|
18
18
|
const byUri = keyBy(res, 'uri')
|
|
19
19
|
return {
|
|
20
|
-
likes: uris.map((uri) => byUri
|
|
21
|
-
replies: uris.map((uri) => byUri
|
|
22
|
-
reposts: uris.map((uri) => byUri
|
|
23
|
-
quotes: uris.map((uri) => byUri
|
|
20
|
+
likes: uris.map((uri) => byUri.get(uri)?.likeCount ?? 0),
|
|
21
|
+
replies: uris.map((uri) => byUri.get(uri)?.replyCount ?? 0),
|
|
22
|
+
reposts: uris.map((uri) => byUri.get(uri)?.repostCount ?? 0),
|
|
23
|
+
quotes: uris.map((uri) => byUri.get(uri)?.quoteCount ?? 0),
|
|
24
24
|
}
|
|
25
25
|
},
|
|
26
26
|
async getCountsForUsers(req) {
|
|
@@ -52,12 +52,14 @@ export default (db: Database): Partial<ServiceImpl<typeof Service>> => ({
|
|
|
52
52
|
.execute()
|
|
53
53
|
const byDid = keyBy(res, 'did')
|
|
54
54
|
return {
|
|
55
|
-
followers: req.dids.map((uri) => byDid
|
|
56
|
-
following: req.dids.map((uri) => byDid
|
|
57
|
-
posts: req.dids.map((uri) => byDid
|
|
58
|
-
lists: req.dids.map((uri) => byDid
|
|
59
|
-
feeds: req.dids.map((uri) => byDid
|
|
60
|
-
starterPacks: req.dids.map(
|
|
55
|
+
followers: req.dids.map((uri) => byDid.get(uri)?.followersCount ?? 0),
|
|
56
|
+
following: req.dids.map((uri) => byDid.get(uri)?.followsCount ?? 0),
|
|
57
|
+
posts: req.dids.map((uri) => byDid.get(uri)?.postsCount ?? 0),
|
|
58
|
+
lists: req.dids.map((uri) => byDid.get(uri)?.listsCount ?? 0),
|
|
59
|
+
feeds: req.dids.map((uri) => byDid.get(uri)?.feedGensCount ?? 0),
|
|
60
|
+
starterPacks: req.dids.map(
|
|
61
|
+
(uri) => byDid.get(uri)?.starterPacksCount ?? 0,
|
|
62
|
+
),
|
|
61
63
|
}
|
|
62
64
|
},
|
|
63
65
|
async getStarterPackCounts(req) {
|
|
@@ -105,7 +107,7 @@ export default (db: Database): Partial<ServiceImpl<typeof Service>> => ({
|
|
|
105
107
|
.execute()
|
|
106
108
|
const countsByUri = keyBy(countsListItems, 'uri')
|
|
107
109
|
return {
|
|
108
|
-
listItems: uris.map((uri) => countsByUri
|
|
110
|
+
listItems: uris.map((uri) => countsByUri.get(uri)?.count ?? 0),
|
|
109
111
|
}
|
|
110
112
|
},
|
|
111
113
|
})
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
+
import { ServiceImpl } from '@connectrpc/connect'
|
|
2
|
+
import { Selectable } from 'kysely'
|
|
1
3
|
import * as ui8 from 'uint8arrays'
|
|
2
4
|
import { noUndefinedVals } from '@atproto/common'
|
|
3
|
-
import { ServiceImpl } from '@connectrpc/connect'
|
|
4
5
|
import { Service } from '../../../proto/bsky_connect'
|
|
5
6
|
import { Database } from '../db'
|
|
6
|
-
import { Selectable } from 'kysely'
|
|
7
7
|
import { Label } from '../db/tables/label'
|
|
8
8
|
|
|
9
9
|
type LabelRow = Selectable<Label>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import assert from 'node:assert'
|
|
2
|
-
import { keyBy } from '@atproto/common'
|
|
3
2
|
import { ServiceImpl } from '@connectrpc/connect'
|
|
3
|
+
import { keyBy } from '@atproto/common'
|
|
4
4
|
import { Service } from '../../../proto/bsky_connect'
|
|
5
5
|
import { Database } from '../db'
|
|
6
6
|
import { TimeCidKeyset, paginate } from '../db/pagination'
|
|
@@ -58,8 +58,7 @@ export default (db: Database): Partial<ServiceImpl<typeof Service>> => ({
|
|
|
58
58
|
.selectAll()
|
|
59
59
|
.execute()
|
|
60
60
|
const bySubject = keyBy(res, 'subject')
|
|
61
|
-
|
|
62
|
-
const uris = refs.map(({ uri }) => bySubject[uri]?.uri)
|
|
61
|
+
const uris = refs.map(({ uri }) => bySubject.get(uri)?.uri ?? '')
|
|
63
62
|
return { uris }
|
|
64
63
|
},
|
|
65
64
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { keyBy } from '@atproto/common'
|
|
2
1
|
import { ServiceImpl } from '@connectrpc/connect'
|
|
2
|
+
import { keyBy } from '@atproto/common'
|
|
3
3
|
import { Service } from '../../../proto/bsky_connect'
|
|
4
4
|
import { Database } from '../db'
|
|
5
|
-
import { countAll } from '../db/util'
|
|
6
5
|
import { TimeCidKeyset, paginate } from '../db/pagination'
|
|
6
|
+
import { countAll } from '../db/util'
|
|
7
7
|
|
|
8
8
|
export default (db: Database): Partial<ServiceImpl<typeof Service>> => ({
|
|
9
9
|
async getActorLists(req) {
|
|
@@ -69,7 +69,7 @@ export default (db: Database): Partial<ServiceImpl<typeof Service>> => ({
|
|
|
69
69
|
.selectAll()
|
|
70
70
|
.execute()
|
|
71
71
|
const byListUri = keyBy(res, 'listUri')
|
|
72
|
-
const listitemUris = listUris.map((uri) => byListUri
|
|
72
|
+
const listitemUris = listUris.map((uri) => byListUri.get(uri)?.uri ?? '')
|
|
73
73
|
return {
|
|
74
74
|
listitemUris,
|
|
75
75
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import assert from 'assert'
|
|
1
|
+
import assert from 'node:assert'
|
|
2
2
|
import { ServiceImpl } from '@connectrpc/connect'
|
|
3
|
+
import { keyBy } from '@atproto/common'
|
|
3
4
|
import { AtUri } from '@atproto/syntax'
|
|
4
5
|
import { ids } from '../../../lexicon/lexicons'
|
|
5
6
|
import { Service } from '../../../proto/bsky_connect'
|
|
6
7
|
import { Database } from '../db'
|
|
7
8
|
import { CreatedAtDidKeyset, TimeCidKeyset, paginate } from '../db/pagination'
|
|
8
|
-
import { keyBy } from '@atproto/common'
|
|
9
9
|
|
|
10
10
|
export default (db: Database): Partial<ServiceImpl<typeof Service>> => ({
|
|
11
11
|
async getActorMutesActor(req) {
|
|
@@ -180,7 +180,7 @@ export default (db: Database): Partial<ServiceImpl<typeof Service>> => ({
|
|
|
180
180
|
.where('rootUri', 'in', threadRoots)
|
|
181
181
|
.execute()
|
|
182
182
|
const byRootUri = keyBy(res, 'rootUri')
|
|
183
|
-
const muted = threadRoots.map((uri) => !!byRootUri
|
|
183
|
+
const muted = threadRoots.map((uri) => !!byRootUri.get(uri))
|
|
184
184
|
return { muted }
|
|
185
185
|
},
|
|
186
186
|
})
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { sql } from 'kysely'
|
|
2
|
-
import { ServiceImpl } from '@connectrpc/connect'
|
|
3
1
|
import { Timestamp } from '@bufbuild/protobuf'
|
|
2
|
+
import { ServiceImpl } from '@connectrpc/connect'
|
|
3
|
+
import { sql } from 'kysely'
|
|
4
4
|
import { Service } from '../../../proto/bsky_connect'
|
|
5
5
|
import { Database } from '../db'
|
|
6
|
-
import { countAll, notSoftDeletedClause } from '../db/util'
|
|
7
6
|
import { TimeCidKeyset, paginate } from '../db/pagination'
|
|
7
|
+
import { countAll, notSoftDeletedClause } from '../db/util'
|
|
8
8
|
|
|
9
9
|
export default (db: Database): Partial<ServiceImpl<typeof Service>> => ({
|
|
10
10
|
async getNotifications(req) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ServiceImpl } from '@connectrpc/connect'
|
|
2
|
-
import { Service } from '../../../proto/bsky_connect'
|
|
3
2
|
import { keyBy } from '@atproto/common'
|
|
3
|
+
import { Service } from '../../../proto/bsky_connect'
|
|
4
4
|
import { Database } from '../db'
|
|
5
5
|
|
|
6
6
|
export default (db: Database): Partial<ServiceImpl<typeof Service>> => ({
|
|
@@ -15,7 +15,7 @@ export default (db: Database): Partial<ServiceImpl<typeof Service>> => ({
|
|
|
15
15
|
.where('uri', 'in', uris)
|
|
16
16
|
.execute()
|
|
17
17
|
const byUri = keyBy(res, 'uri')
|
|
18
|
-
const counts = uris.map((uri) => byUri
|
|
18
|
+
const counts = uris.map((uri) => byUri.get(uri)?.replyCount ?? 0)
|
|
19
19
|
return { counts }
|
|
20
20
|
},
|
|
21
21
|
})
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { ServiceImpl } from '@connectrpc/connect'
|
|
2
|
-
import { Service } from '../../../proto/bsky_connect'
|
|
3
|
-
import { keyBy } from '@atproto/common'
|
|
4
|
-
import { getRecords } from './records'
|
|
5
|
-
import { Database } from '../db'
|
|
6
2
|
import { sql } from 'kysely'
|
|
3
|
+
import { keyBy } from '@atproto/common'
|
|
7
4
|
import { parseRecordBytes } from '../../../hydration/util'
|
|
5
|
+
import { Service } from '../../../proto/bsky_connect'
|
|
6
|
+
import { Database } from '../db'
|
|
7
|
+
import { getRecords } from './records'
|
|
8
8
|
|
|
9
9
|
export default (db: Database): Partial<ServiceImpl<typeof Service>> => ({
|
|
10
10
|
async getActors(req) {
|
|
@@ -39,7 +39,7 @@ export default (db: Database): Partial<ServiceImpl<typeof Service>> => ({
|
|
|
39
39
|
])
|
|
40
40
|
const byDid = keyBy(handlesRes, 'did')
|
|
41
41
|
const actors = dids.map((did, i) => {
|
|
42
|
-
const row = byDid
|
|
42
|
+
const row = byDid.get(did)
|
|
43
43
|
const chatDeclaration = parseRecordBytes(
|
|
44
44
|
chatDeclarations.records[i].record,
|
|
45
45
|
)
|
|
@@ -74,7 +74,7 @@ export default (db: Database): Partial<ServiceImpl<typeof Service>> => ({
|
|
|
74
74
|
.selectAll()
|
|
75
75
|
.execute()
|
|
76
76
|
const byHandle = keyBy(res, 'handle')
|
|
77
|
-
const dids = handles.map((handle) => byHandle
|
|
77
|
+
const dids = handles.map((handle) => byHandle.get(handle)?.did ?? '')
|
|
78
78
|
return { dids }
|
|
79
79
|
},
|
|
80
80
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ServiceImpl } from '@connectrpc/connect'
|
|
2
2
|
import { Service } from '../../../proto/bsky_connect'
|
|
3
3
|
import { Database } from '../db'
|
|
4
|
-
import {
|
|
4
|
+
import { TimeCidKeyset, paginate } from '../db/pagination'
|
|
5
5
|
|
|
6
6
|
export default (db: Database): Partial<ServiceImpl<typeof Service>> => ({
|
|
7
7
|
async getQuotesBySubjectSorted(req) {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { keyBy } from '@atproto/common'
|
|
2
|
-
import { AtUri } from '@atproto/syntax'
|
|
3
1
|
import { Timestamp } from '@bufbuild/protobuf'
|
|
4
2
|
import { ServiceImpl } from '@connectrpc/connect'
|
|
5
3
|
import * as ui8 from 'uint8arrays'
|
|
4
|
+
import { keyBy } from '@atproto/common'
|
|
5
|
+
import { AtUri } from '@atproto/syntax'
|
|
6
6
|
import { ids } from '../../../lexicon/lexicons'
|
|
7
7
|
import { Service } from '../../../proto/bsky_connect'
|
|
8
8
|
import { PostRecordMeta, Record } from '../../../proto/bsky_pb'
|
|
@@ -41,7 +41,7 @@ export const getRecords =
|
|
|
41
41
|
: []
|
|
42
42
|
const byUri = keyBy(res, 'uri')
|
|
43
43
|
const records: Record[] = req.uris.map((uri) => {
|
|
44
|
-
const row = byUri
|
|
44
|
+
const row = byUri.get(uri)
|
|
45
45
|
const json = row ? row.json : JSON.stringify(null)
|
|
46
46
|
const createdAtRaw = new Date(JSON.parse(json)?.['createdAt'])
|
|
47
47
|
const createdAt = !isNaN(createdAtRaw.getTime())
|
|
@@ -88,10 +88,10 @@ export const getPostRecords = (db: Database) => {
|
|
|
88
88
|
const byKey = keyBy(details, 'uri')
|
|
89
89
|
const meta = req.uris.map((uri) => {
|
|
90
90
|
return new PostRecordMeta({
|
|
91
|
-
violatesThreadGate: !!byKey
|
|
92
|
-
violatesEmbeddingRules: !!byKey
|
|
93
|
-
hasThreadGate: !!byKey
|
|
94
|
-
hasPostGate: !!byKey
|
|
91
|
+
violatesThreadGate: !!byKey.get(uri)?.violatesThreadGate,
|
|
92
|
+
violatesEmbeddingRules: !!byKey.get(uri)?.violatesEmbeddingRules,
|
|
93
|
+
hasThreadGate: !!byKey.get(uri)?.hasThreadGate,
|
|
94
|
+
hasPostGate: !!byKey.get(uri)?.hasPostGate,
|
|
95
95
|
})
|
|
96
96
|
})
|
|
97
97
|
return { records, meta }
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { sql } from 'kysely'
|
|
2
1
|
import { ServiceImpl } from '@connectrpc/connect'
|
|
2
|
+
import { sql } from 'kysely'
|
|
3
3
|
import { keyBy } from '@atproto/common'
|
|
4
4
|
import { Service } from '../../../proto/bsky_connect'
|
|
5
5
|
import { Database } from '../db'
|
|
@@ -72,16 +72,16 @@ export default (db: Database): Partial<ServiceImpl<typeof Service>> => ({
|
|
|
72
72
|
.execute()
|
|
73
73
|
const byDid = keyBy(res, 'did')
|
|
74
74
|
const relationships = targetDids.map((did) => {
|
|
75
|
-
const row = byDid
|
|
75
|
+
const row = byDid.get(did)
|
|
76
76
|
return {
|
|
77
|
-
muted: row
|
|
78
|
-
mutedByList: row
|
|
79
|
-
blockedBy: row
|
|
80
|
-
blocking: row
|
|
81
|
-
blockedByList: row
|
|
82
|
-
blockingByList: row
|
|
83
|
-
following: row
|
|
84
|
-
followedBy: row
|
|
77
|
+
muted: row?.muted ?? false,
|
|
78
|
+
mutedByList: row?.mutedByList ?? '',
|
|
79
|
+
blockedBy: row?.blockedBy ?? '',
|
|
80
|
+
blocking: row?.blocking ?? '',
|
|
81
|
+
blockedByList: row?.blockedByList ?? '',
|
|
82
|
+
blockingByList: row?.blockingByList ?? '',
|
|
83
|
+
following: row?.following ?? '',
|
|
84
|
+
followedBy: row?.followedBy ?? '',
|
|
85
85
|
}
|
|
86
86
|
})
|
|
87
87
|
return { relationships }
|
|
@@ -90,7 +90,7 @@ export default (db: Database): Partial<ServiceImpl<typeof Service>> => ({
|
|
|
90
90
|
async getBlockExistence(req) {
|
|
91
91
|
const { pairs } = req
|
|
92
92
|
if (pairs.length === 0) {
|
|
93
|
-
return { exists: [] }
|
|
93
|
+
return { exists: [], blocks: [] }
|
|
94
94
|
}
|
|
95
95
|
const { ref } = db.db.dynamic
|
|
96
96
|
const sourceRef = ref('pair.source')
|
|
@@ -101,48 +101,72 @@ export default (db: Database): Partial<ServiceImpl<typeof Service>> => ({
|
|
|
101
101
|
.select([
|
|
102
102
|
sql<string>`${sourceRef}`.as('source'),
|
|
103
103
|
sql<string>`${targetRef}`.as('target'),
|
|
104
|
+
(eb) =>
|
|
105
|
+
eb
|
|
106
|
+
.selectFrom('actor_block')
|
|
107
|
+
.whereRef('actor_block.creator', '=', sourceRef)
|
|
108
|
+
.whereRef('actor_block.subjectDid', '=', targetRef)
|
|
109
|
+
.select('uri')
|
|
110
|
+
.as('blocking'),
|
|
111
|
+
(eb) =>
|
|
112
|
+
eb
|
|
113
|
+
.selectFrom('actor_block')
|
|
114
|
+
.whereRef('actor_block.creator', '=', targetRef)
|
|
115
|
+
.whereRef('actor_block.subjectDid', '=', sourceRef)
|
|
116
|
+
.select('uri')
|
|
117
|
+
.as('blockedBy'),
|
|
118
|
+
(eb) =>
|
|
119
|
+
eb
|
|
120
|
+
.selectFrom('list_item')
|
|
121
|
+
.innerJoin(
|
|
122
|
+
'list_block',
|
|
123
|
+
'list_block.subjectUri',
|
|
124
|
+
'list_item.listUri',
|
|
125
|
+
)
|
|
126
|
+
.whereRef('list_block.creator', '=', sourceRef)
|
|
127
|
+
.whereRef('list_item.subjectDid', '=', targetRef)
|
|
128
|
+
.select('list_item.listUri')
|
|
129
|
+
.as('blockingByList'),
|
|
130
|
+
(eb) =>
|
|
131
|
+
eb
|
|
132
|
+
.selectFrom('list_item')
|
|
133
|
+
.innerJoin(
|
|
134
|
+
'list_block',
|
|
135
|
+
'list_block.subjectUri',
|
|
136
|
+
'list_item.listUri',
|
|
137
|
+
)
|
|
138
|
+
.whereRef('list_block.creator', '=', targetRef)
|
|
139
|
+
.whereRef('list_item.subjectDid', '=', sourceRef)
|
|
140
|
+
.select('list_item.listUri')
|
|
141
|
+
.as('blockedByList'),
|
|
104
142
|
])
|
|
105
|
-
.whereExists((qb) =>
|
|
106
|
-
qb
|
|
107
|
-
.selectFrom('actor_block')
|
|
108
|
-
.whereRef('actor_block.creator', '=', sourceRef)
|
|
109
|
-
.whereRef('actor_block.subjectDid', '=', targetRef)
|
|
110
|
-
.select('uri'),
|
|
111
|
-
)
|
|
112
|
-
.orWhereExists((qb) =>
|
|
113
|
-
qb
|
|
114
|
-
.selectFrom('actor_block')
|
|
115
|
-
.whereRef('actor_block.creator', '=', targetRef)
|
|
116
|
-
.whereRef('actor_block.subjectDid', '=', sourceRef)
|
|
117
|
-
.select('uri'),
|
|
118
|
-
)
|
|
119
|
-
.orWhereExists((qb) =>
|
|
120
|
-
qb
|
|
121
|
-
.selectFrom('list_item')
|
|
122
|
-
.innerJoin('list_block', 'list_block.subjectUri', 'list_item.listUri')
|
|
123
|
-
.whereRef('list_block.creator', '=', sourceRef)
|
|
124
|
-
.whereRef('list_item.subjectDid', '=', targetRef)
|
|
125
|
-
.select('list_item.listUri'),
|
|
126
|
-
)
|
|
127
|
-
.orWhereExists((qb) =>
|
|
128
|
-
qb
|
|
129
|
-
.selectFrom('list_item')
|
|
130
|
-
.innerJoin('list_block', 'list_block.subjectUri', 'list_item.listUri')
|
|
131
|
-
.whereRef('list_block.creator', '=', targetRef)
|
|
132
|
-
.whereRef('list_item.subjectDid', '=', sourceRef)
|
|
133
|
-
.select('list_item.listUri'),
|
|
134
|
-
)
|
|
135
143
|
.execute()
|
|
136
|
-
const
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
const key = [pair.a, pair.b].sort().join(',')
|
|
142
|
-
return existMap.get(key) === true
|
|
143
|
-
})
|
|
144
|
+
const getKey = (a, b) => [a, b].sort().join(',')
|
|
145
|
+
const lookup = res.reduce((acc, cur) => {
|
|
146
|
+
const key = getKey(cur.source, cur.target)
|
|
147
|
+
return acc.set(key, cur)
|
|
148
|
+
}, new Map<string, (typeof res)[0]>())
|
|
144
149
|
return {
|
|
145
|
-
exists
|
|
150
|
+
exists: pairs.map((pair) => {
|
|
151
|
+
const item = lookup.get(getKey(pair.a, pair.b))
|
|
152
|
+
if (!item) return false
|
|
153
|
+
return !!(
|
|
154
|
+
item.blocking ||
|
|
155
|
+
item.blockedBy ||
|
|
156
|
+
item.blockingByList ||
|
|
157
|
+
item.blockedByList
|
|
158
|
+
)
|
|
159
|
+
}),
|
|
160
|
+
blocks: pairs.map((pair) => {
|
|
161
|
+
const item = lookup.get(getKey(pair.a, pair.b))
|
|
162
|
+
if (!item) return {}
|
|
163
|
+
return {
|
|
164
|
+
blockedBy: item.blockedBy || undefined,
|
|
165
|
+
blocking: item.blocking || undefined,
|
|
166
|
+
blockedByList: item.blockedByList || undefined,
|
|
167
|
+
blockingByList: item.blockingByList || undefined,
|
|
168
|
+
}
|
|
169
|
+
}),
|
|
146
170
|
}
|
|
147
171
|
},
|
|
148
172
|
})
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { keyBy } from '@atproto/common'
|
|
2
1
|
import { ServiceImpl } from '@connectrpc/connect'
|
|
2
|
+
import { keyBy } from '@atproto/common'
|
|
3
3
|
import { Service } from '../../../proto/bsky_connect'
|
|
4
4
|
import { Database } from '../db'
|
|
5
5
|
import { TimeCidKeyset, paginate } from '../db/pagination'
|
|
@@ -45,8 +45,7 @@ export default (db: Database): Partial<ServiceImpl<typeof Service>> => ({
|
|
|
45
45
|
.selectAll()
|
|
46
46
|
.execute()
|
|
47
47
|
const bySubject = keyBy(res, 'subject')
|
|
48
|
-
|
|
49
|
-
const uris = refs.map(({ uri }) => bySubject[uri]?.uri)
|
|
48
|
+
const uris = refs.map(({ uri }) => bySubject.get(uri)?.uri ?? '')
|
|
50
49
|
return { uris }
|
|
51
50
|
},
|
|
52
51
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { Firehose, MemoryRunner } from '@atproto/sync'
|
|
2
1
|
import { IdResolver } from '@atproto/identity'
|
|
3
2
|
import { WriteOpAction } from '@atproto/repo'
|
|
3
|
+
import { Firehose, MemoryRunner } from '@atproto/sync'
|
|
4
4
|
import { subLogger as log } from '../../logger'
|
|
5
|
-
import { IndexingService } from './indexing'
|
|
6
|
-
import { Database } from './db'
|
|
7
5
|
import { BackgroundQueue } from './background'
|
|
6
|
+
import { Database } from './db'
|
|
7
|
+
import { IndexingService } from './indexing'
|
|
8
8
|
|
|
9
9
|
export class RepoSubscription {
|
|
10
10
|
firehose: Firehose
|
|
@@ -4,9 +4,9 @@ import {
|
|
|
4
4
|
ReplyRef,
|
|
5
5
|
} from '../../lexicon/types/app/bsky/feed/post'
|
|
6
6
|
import { Record as GateRecord } from '../../lexicon/types/app/bsky/feed/threadgate'
|
|
7
|
-
import DatabaseSchema from './db/database-schema'
|
|
8
|
-
import { valuesList } from './db/util'
|
|
9
7
|
import { parseThreadGate } from '../../views/util'
|
|
8
|
+
import { DatabaseSchema } from './db/database-schema'
|
|
9
|
+
import { valuesList } from './db/util'
|
|
10
10
|
|
|
11
11
|
export const getDescendentsQb = (
|
|
12
12
|
db: DatabaseSchema,
|
package/src/error.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { XRPCError } from '@atproto/xrpc-server'
|
|
2
1
|
import { ErrorRequestHandler } from 'express'
|
|
2
|
+
import { XRPCError } from '@atproto/xrpc-server'
|
|
3
3
|
import { httpLogger as log } from './logger'
|
|
4
4
|
|
|
5
5
|
export const handler: ErrorRequestHandler = (err, _req, res, next) => {
|
package/src/feature-gates.ts
CHANGED
package/src/hydration/feed.ts
CHANGED
|
@@ -1,10 +1,16 @@
|
|
|
1
|
+
import { dedupeStrs } from '@atproto/common'
|
|
1
2
|
import { DataPlaneClient } from '../data-plane/client'
|
|
2
|
-
import { Record as
|
|
3
|
+
import { Record as FeedGenRecord } from '../lexicon/types/app/bsky/feed/generator'
|
|
3
4
|
import { Record as LikeRecord } from '../lexicon/types/app/bsky/feed/like'
|
|
5
|
+
import { Record as PostRecord } from '../lexicon/types/app/bsky/feed/post'
|
|
6
|
+
import { Record as PostgateRecord } from '../lexicon/types/app/bsky/feed/postgate'
|
|
4
7
|
import { Record as RepostRecord } from '../lexicon/types/app/bsky/feed/repost'
|
|
5
|
-
import { Record as FeedGenRecord } from '../lexicon/types/app/bsky/feed/generator'
|
|
6
8
|
import { Record as ThreadgateRecord } from '../lexicon/types/app/bsky/feed/threadgate'
|
|
7
|
-
import {
|
|
9
|
+
import {
|
|
10
|
+
postUriToPostgateUri,
|
|
11
|
+
postUriToThreadgateUri,
|
|
12
|
+
uriToDid as didFromUri,
|
|
13
|
+
} from '../util/uris'
|
|
8
14
|
import {
|
|
9
15
|
HydrationMap,
|
|
10
16
|
ItemRef,
|
|
@@ -13,12 +19,6 @@ import {
|
|
|
13
19
|
parseString,
|
|
14
20
|
split,
|
|
15
21
|
} from './util'
|
|
16
|
-
import { dedupeStrs } from '@atproto/common'
|
|
17
|
-
import {
|
|
18
|
-
postUriToThreadgateUri,
|
|
19
|
-
postUriToPostgateUri,
|
|
20
|
-
uriToDid as didFromUri,
|
|
21
|
-
} from '../util/uris'
|
|
22
22
|
|
|
23
23
|
export type Post = RecordInfo<PostRecord> & {
|
|
24
24
|
violatesThreadGate: boolean
|
package/src/hydration/graph.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DataPlaneClient } from '../data-plane/client'
|
|
2
2
|
import { Record as BlockRecord } from '../lexicon/types/app/bsky/graph/block'
|
|
3
|
-
import { Record as
|
|
3
|
+
import { Record as FollowRecord } from '../lexicon/types/app/bsky/graph/follow'
|
|
4
4
|
import { Record as ListRecord } from '../lexicon/types/app/bsky/graph/list'
|
|
5
5
|
import { Record as ListItemRecord } from '../lexicon/types/app/bsky/graph/listitem'
|
|
6
|
-
import {
|
|
7
|
-
import { HydrationMap, ItemRef, RecordInfo, parseRecord } from './util'
|
|
6
|
+
import { Record as StarterPackRecord } from '../lexicon/types/app/bsky/graph/starterpack'
|
|
8
7
|
import { FollowInfo } from '../proto/bsky_pb'
|
|
8
|
+
import { HydrationMap, ItemRef, RecordInfo, parseRecord } from './util'
|
|
9
9
|
|
|
10
10
|
export type List = RecordInfo<ListRecord>
|
|
11
11
|
export type Lists = HydrationMap<List>
|
|
@@ -46,50 +46,46 @@ export type ListAggs = HydrationMap<ListAgg>
|
|
|
46
46
|
export type RelationshipPair = [didA: string, didB: string]
|
|
47
47
|
|
|
48
48
|
const dedupePairs = (pairs: RelationshipPair[]): RelationshipPair[] => {
|
|
49
|
-
const
|
|
50
|
-
(
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
return acc
|
|
54
|
-
},
|
|
55
|
-
{} as Record<string, RelationshipPair>,
|
|
56
|
-
)
|
|
57
|
-
return Object.values(mapped)
|
|
49
|
+
const deduped = pairs.reduce((acc, pair) => {
|
|
50
|
+
return acc.set(Blocks.key(...pair), pair)
|
|
51
|
+
}, new Map<string, RelationshipPair>())
|
|
52
|
+
return [...deduped.values()]
|
|
58
53
|
}
|
|
59
54
|
|
|
60
55
|
export class Blocks {
|
|
61
|
-
_blocks: Map<string,
|
|
56
|
+
_blocks: Map<string, BlockEntry> = new Map() // did:a,did:b -> block
|
|
62
57
|
constructor() {}
|
|
63
58
|
|
|
64
59
|
static key(didA: string, didB: string): string {
|
|
65
60
|
return [didA, didB].sort().join(',')
|
|
66
61
|
}
|
|
67
62
|
|
|
68
|
-
set(didA: string, didB: string,
|
|
63
|
+
set(didA: string, didB: string, block: BlockEntry): Blocks {
|
|
69
64
|
const key = Blocks.key(didA, didB)
|
|
70
|
-
this._blocks.set(key,
|
|
65
|
+
this._blocks.set(key, block)
|
|
71
66
|
return this
|
|
72
67
|
}
|
|
73
68
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
return this._blocks.has(key)
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
isBlocked(didA: string, didB: string): boolean {
|
|
80
|
-
if (didA === didB) return false // ignore self-blocks
|
|
69
|
+
get(didA: string, didB: string): BlockEntry | null {
|
|
70
|
+
if (didA === didB) return null // ignore self-blocks
|
|
81
71
|
const key = Blocks.key(didA, didB)
|
|
82
|
-
return this._blocks.get(key) ??
|
|
72
|
+
return this._blocks.get(key) ?? null
|
|
83
73
|
}
|
|
84
74
|
|
|
85
75
|
merge(blocks: Blocks): Blocks {
|
|
86
|
-
blocks._blocks.forEach((
|
|
87
|
-
this._blocks.set(key,
|
|
76
|
+
blocks._blocks.forEach((block, key) => {
|
|
77
|
+
this._blocks.set(key, block)
|
|
88
78
|
})
|
|
89
79
|
return this
|
|
90
80
|
}
|
|
91
81
|
}
|
|
92
82
|
|
|
83
|
+
// No "blocking" vs. "blocked" directionality: only suitable for bidirectional block checks
|
|
84
|
+
export type BlockEntry = {
|
|
85
|
+
blockUri: string | undefined
|
|
86
|
+
blockListUri: string | undefined
|
|
87
|
+
}
|
|
88
|
+
|
|
93
89
|
export class GraphHydrator {
|
|
94
90
|
constructor(public dataplane: DataPlaneClient) {}
|
|
95
91
|
|
|
@@ -162,7 +158,11 @@ export class GraphHydrator {
|
|
|
162
158
|
const blocks = new Blocks()
|
|
163
159
|
for (let i = 0; i < deduped.length; i++) {
|
|
164
160
|
const pair = deduped[i]
|
|
165
|
-
|
|
161
|
+
const block = res.blocks[i]
|
|
162
|
+
blocks.set(pair.a, pair.b, {
|
|
163
|
+
blockUri: block.blockedBy || block.blocking || undefined,
|
|
164
|
+
blockListUri: block.blockedByList || block.blockingByList || undefined,
|
|
165
|
+
})
|
|
166
166
|
}
|
|
167
167
|
return blocks
|
|
168
168
|
}
|