@atproto/bsky 0.0.225 → 0.0.227
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 +23 -0
- package/dist/api/app/bsky/bookmark/getBookmarks.d.ts.map +1 -1
- package/dist/api/app/bsky/bookmark/getBookmarks.js +1 -1
- package/dist/api/app/bsky/bookmark/getBookmarks.js.map +1 -1
- package/dist/api/app/bsky/contact/getMatches.d.ts.map +1 -1
- package/dist/api/app/bsky/contact/getMatches.js +1 -1
- package/dist/api/app/bsky/contact/getMatches.js.map +1 -1
- package/dist/api/app/bsky/feed/getTimeline.d.ts +2 -4
- package/dist/api/app/bsky/feed/getTimeline.d.ts.map +1 -1
- package/dist/api/app/bsky/feed/getTimeline.js +1 -1
- package/dist/api/app/bsky/feed/getTimeline.js.map +1 -1
- package/dist/api/app/bsky/graph/getBlocks.d.ts.map +1 -1
- package/dist/api/app/bsky/graph/getBlocks.js +1 -1
- package/dist/api/app/bsky/graph/getBlocks.js.map +1 -1
- package/dist/api/app/bsky/graph/getKnownFollowers.d.ts.map +1 -1
- package/dist/api/app/bsky/graph/getKnownFollowers.js +1 -1
- package/dist/api/app/bsky/graph/getKnownFollowers.js.map +1 -1
- package/dist/api/app/bsky/graph/getListBlocks.d.ts.map +1 -1
- package/dist/api/app/bsky/graph/getListBlocks.js +1 -1
- package/dist/api/app/bsky/graph/getListBlocks.js.map +1 -1
- package/dist/api/app/bsky/graph/getListMutes.d.ts.map +1 -1
- package/dist/api/app/bsky/graph/getListMutes.js +1 -1
- package/dist/api/app/bsky/graph/getListMutes.js.map +1 -1
- package/dist/api/app/bsky/graph/getListsWithMembership.js +1 -1
- package/dist/api/app/bsky/graph/getListsWithMembership.js.map +1 -1
- package/dist/api/app/bsky/graph/getMutes.d.ts.map +1 -1
- package/dist/api/app/bsky/graph/getMutes.js +1 -1
- package/dist/api/app/bsky/graph/getMutes.js.map +1 -1
- package/dist/api/app/bsky/graph/getStarterPacksWithMembership.js +1 -1
- package/dist/api/app/bsky/graph/getStarterPacksWithMembership.js.map +1 -1
- package/dist/api/app/bsky/notification/listActivitySubscriptions.js +1 -1
- package/dist/api/app/bsky/notification/listActivitySubscriptions.js.map +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/data-plane/client/index.d.ts.map +1 -1
- package/dist/data-plane/client/index.js +2 -0
- package/dist/data-plane/client/index.js.map +1 -1
- package/dist/data-plane/client/util.d.ts +2 -1
- package/dist/data-plane/client/util.d.ts.map +1 -1
- package/dist/data-plane/client/util.js +6 -1
- package/dist/data-plane/client/util.js.map +1 -1
- package/dist/data-plane/client/util.test.d.ts +2 -0
- package/dist/data-plane/client/util.test.d.ts.map +1 -0
- package/dist/data-plane/client/util.test.js +33 -0
- package/dist/data-plane/client/util.test.js.map +1 -0
- package/dist/data-plane/server/routes/profile.d.ts.map +1 -1
- package/dist/data-plane/server/routes/profile.js +3 -0
- package/dist/data-plane/server/routes/profile.js.map +1 -1
- package/dist/hydration/actor.d.ts +1 -0
- package/dist/hydration/actor.d.ts.map +1 -1
- package/dist/hydration/actor.js +1 -0
- package/dist/hydration/actor.js.map +1 -1
- package/dist/hydration/hydrator.d.ts +3 -0
- package/dist/hydration/hydrator.d.ts.map +1 -1
- package/dist/hydration/hydrator.js.map +1 -1
- package/dist/lexicons/app/bsky/actor/defs.defs.d.ts +1 -0
- package/dist/lexicons/app/bsky/actor/defs.defs.d.ts.map +1 -1
- package/dist/lexicons/app/bsky/actor/defs.defs.js +1 -0
- package/dist/lexicons/app/bsky/actor/defs.defs.js.map +1 -1
- package/dist/lexicons/chat/bsky/actor/declaration.defs.d.ts +14 -0
- package/dist/lexicons/chat/bsky/actor/declaration.defs.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/actor/declaration.defs.js +1 -0
- package/dist/lexicons/chat/bsky/actor/declaration.defs.js.map +1 -1
- package/dist/lexicons/chat/bsky/actor/defs.defs.d.ts +35 -0
- package/dist/lexicons/chat/bsky/actor/defs.defs.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/actor/defs.defs.js +17 -1
- package/dist/lexicons/chat/bsky/actor/defs.defs.js.map +1 -1
- package/dist/lexicons/chat/bsky/authFullChatClient.defs.js +1 -1
- package/dist/lexicons/chat/bsky/authFullChatClient.defs.js.map +1 -1
- package/dist/lexicons/chat/bsky/convo/acceptConvo.defs.d.ts +2 -1
- package/dist/lexicons/chat/bsky/convo/acceptConvo.defs.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/convo/acceptConvo.defs.js +2 -1
- package/dist/lexicons/chat/bsky/convo/acceptConvo.defs.js.map +1 -1
- package/dist/lexicons/chat/bsky/convo/addReaction.defs.d.ts +1 -1
- package/dist/lexicons/chat/bsky/convo/addReaction.defs.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/convo/addReaction.defs.js +7 -1
- package/dist/lexicons/chat/bsky/convo/addReaction.defs.js.map +1 -1
- package/dist/lexicons/chat/bsky/convo/defs.defs.d.ts +470 -3
- package/dist/lexicons/chat/bsky/convo/defs.defs.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/convo/defs.defs.js +235 -2
- package/dist/lexicons/chat/bsky/convo/defs.defs.js.map +1 -1
- package/dist/lexicons/chat/bsky/convo/deleteMessageForSelf.defs.d.ts +2 -1
- package/dist/lexicons/chat/bsky/convo/deleteMessageForSelf.defs.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/convo/deleteMessageForSelf.defs.js +2 -1
- package/dist/lexicons/chat/bsky/convo/deleteMessageForSelf.defs.js.map +1 -1
- package/dist/lexicons/chat/bsky/convo/getConvo.defs.d.ts +2 -1
- package/dist/lexicons/chat/bsky/convo/getConvo.defs.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/convo/getConvo.defs.js +2 -1
- package/dist/lexicons/chat/bsky/convo/getConvo.defs.js.map +1 -1
- package/dist/lexicons/chat/bsky/convo/getConvoAvailability.defs.d.ts +1 -1
- package/dist/lexicons/chat/bsky/convo/getConvoAvailability.defs.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/convo/getConvoAvailability.defs.js +1 -1
- package/dist/lexicons/chat/bsky/convo/getConvoAvailability.defs.js.map +1 -1
- package/dist/lexicons/chat/bsky/convo/getConvoForMembers.defs.d.ts +2 -1
- package/dist/lexicons/chat/bsky/convo/getConvoForMembers.defs.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/convo/getConvoForMembers.defs.js +8 -1
- package/dist/lexicons/chat/bsky/convo/getConvoForMembers.defs.js.map +1 -1
- package/dist/lexicons/chat/bsky/convo/getConvoMembers.d.ts +3 -0
- package/dist/lexicons/chat/bsky/convo/getConvoMembers.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/convo/getConvoMembers.defs.d.ts +26 -0
- package/dist/lexicons/chat/bsky/convo/getConvoMembers.defs.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/convo/getConvoMembers.defs.js +55 -0
- package/dist/lexicons/chat/bsky/convo/getConvoMembers.defs.js.map +1 -0
- package/dist/lexicons/chat/bsky/convo/getConvoMembers.js +45 -0
- package/dist/lexicons/chat/bsky/convo/getConvoMembers.js.map +1 -0
- package/dist/lexicons/chat/bsky/convo/getLog.defs.d.ts +2 -2
- package/dist/lexicons/chat/bsky/convo/getLog.defs.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/convo/getLog.defs.js +17 -0
- package/dist/lexicons/chat/bsky/convo/getLog.defs.js.map +1 -1
- package/dist/lexicons/chat/bsky/convo/getMessages.defs.d.ts +4 -3
- package/dist/lexicons/chat/bsky/convo/getMessages.defs.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/convo/getMessages.defs.js +3 -1
- package/dist/lexicons/chat/bsky/convo/getMessages.defs.js.map +1 -1
- package/dist/lexicons/chat/bsky/convo/leaveConvo.defs.d.ts +2 -1
- package/dist/lexicons/chat/bsky/convo/leaveConvo.defs.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/convo/leaveConvo.defs.js +2 -1
- package/dist/lexicons/chat/bsky/convo/leaveConvo.defs.js.map +1 -1
- package/dist/lexicons/chat/bsky/convo/listConvoRequests.d.ts +3 -0
- package/dist/lexicons/chat/bsky/convo/listConvoRequests.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/convo/listConvoRequests.defs.d.ts +25 -0
- package/dist/lexicons/chat/bsky/convo/listConvoRequests.defs.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/convo/listConvoRequests.defs.js +58 -0
- package/dist/lexicons/chat/bsky/convo/listConvoRequests.defs.js.map +1 -0
- package/dist/lexicons/chat/bsky/convo/listConvoRequests.js +45 -0
- package/dist/lexicons/chat/bsky/convo/listConvoRequests.js.map +1 -0
- package/dist/lexicons/chat/bsky/convo/listConvos.defs.d.ts +7 -0
- package/dist/lexicons/chat/bsky/convo/listConvos.defs.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/convo/listConvos.defs.js +2 -0
- package/dist/lexicons/chat/bsky/convo/listConvos.defs.js.map +1 -1
- package/dist/lexicons/chat/bsky/convo/lockConvo.d.ts +3 -0
- package/dist/lexicons/chat/bsky/convo/lockConvo.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/convo/lockConvo.defs.d.ts +22 -0
- package/dist/lexicons/chat/bsky/convo/lockConvo.defs.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/convo/lockConvo.defs.js +50 -0
- package/dist/lexicons/chat/bsky/convo/lockConvo.defs.js.map +1 -0
- package/dist/lexicons/chat/bsky/convo/lockConvo.js +45 -0
- package/dist/lexicons/chat/bsky/convo/lockConvo.js.map +1 -0
- package/dist/lexicons/chat/bsky/convo/muteConvo.defs.d.ts +2 -1
- package/dist/lexicons/chat/bsky/convo/muteConvo.defs.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/convo/muteConvo.defs.js +2 -1
- package/dist/lexicons/chat/bsky/convo/muteConvo.defs.js.map +1 -1
- package/dist/lexicons/chat/bsky/convo/removeReaction.defs.d.ts +1 -1
- package/dist/lexicons/chat/bsky/convo/removeReaction.defs.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/convo/removeReaction.defs.js +6 -1
- package/dist/lexicons/chat/bsky/convo/removeReaction.defs.js.map +1 -1
- package/dist/lexicons/chat/bsky/convo/sendMessage.defs.d.ts +2 -1
- package/dist/lexicons/chat/bsky/convo/sendMessage.defs.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/convo/sendMessage.defs.js +2 -1
- package/dist/lexicons/chat/bsky/convo/sendMessage.defs.js.map +1 -1
- package/dist/lexicons/chat/bsky/convo/sendMessageBatch.defs.d.ts +2 -1
- package/dist/lexicons/chat/bsky/convo/sendMessageBatch.defs.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/convo/sendMessageBatch.defs.js +2 -1
- package/dist/lexicons/chat/bsky/convo/sendMessageBatch.defs.js.map +1 -1
- package/dist/lexicons/chat/bsky/convo/unlockConvo.d.ts +3 -0
- package/dist/lexicons/chat/bsky/convo/unlockConvo.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/convo/unlockConvo.defs.d.ts +22 -0
- package/dist/lexicons/chat/bsky/convo/unlockConvo.defs.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/convo/unlockConvo.defs.js +50 -0
- package/dist/lexicons/chat/bsky/convo/unlockConvo.defs.js.map +1 -0
- package/dist/lexicons/chat/bsky/convo/unlockConvo.js +45 -0
- package/dist/lexicons/chat/bsky/convo/unlockConvo.js.map +1 -0
- package/dist/lexicons/chat/bsky/convo/unmuteConvo.defs.d.ts +2 -1
- package/dist/lexicons/chat/bsky/convo/unmuteConvo.defs.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/convo/unmuteConvo.defs.js +2 -1
- package/dist/lexicons/chat/bsky/convo/unmuteConvo.defs.js.map +1 -1
- package/dist/lexicons/chat/bsky/convo/updateAllRead.defs.d.ts +1 -0
- package/dist/lexicons/chat/bsky/convo/updateAllRead.defs.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/convo/updateAllRead.defs.js +1 -0
- package/dist/lexicons/chat/bsky/convo/updateAllRead.defs.js.map +1 -1
- package/dist/lexicons/chat/bsky/convo/updateRead.defs.d.ts +2 -1
- package/dist/lexicons/chat/bsky/convo/updateRead.defs.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/convo/updateRead.defs.js +2 -1
- package/dist/lexicons/chat/bsky/convo/updateRead.defs.js.map +1 -1
- package/dist/lexicons/chat/bsky/convo.d.ts +4 -0
- package/dist/lexicons/chat/bsky/convo.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/convo.js +5 -1
- package/dist/lexicons/chat/bsky/convo.js.map +1 -1
- package/dist/lexicons/chat/bsky/group/addMembers.d.ts +3 -0
- package/dist/lexicons/chat/bsky/group/addMembers.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/group/addMembers.defs.d.ts +31 -0
- package/dist/lexicons/chat/bsky/group/addMembers.defs.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/group/addMembers.defs.js +65 -0
- package/dist/lexicons/chat/bsky/group/addMembers.defs.js.map +1 -0
- package/dist/lexicons/chat/bsky/group/addMembers.js +45 -0
- package/dist/lexicons/chat/bsky/group/addMembers.js.map +1 -0
- package/dist/lexicons/chat/bsky/group/approveJoinRequest.d.ts +3 -0
- package/dist/lexicons/chat/bsky/group/approveJoinRequest.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/group/approveJoinRequest.defs.d.ts +28 -0
- package/dist/lexicons/chat/bsky/group/approveJoinRequest.defs.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/group/approveJoinRequest.defs.js +50 -0
- package/dist/lexicons/chat/bsky/group/approveJoinRequest.defs.js.map +1 -0
- package/dist/lexicons/chat/bsky/group/approveJoinRequest.js +45 -0
- package/dist/lexicons/chat/bsky/group/approveJoinRequest.js.map +1 -0
- package/dist/lexicons/chat/bsky/group/createGroup.d.ts +3 -0
- package/dist/lexicons/chat/bsky/group/createGroup.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/group/createGroup.defs.d.ts +36 -0
- package/dist/lexicons/chat/bsky/group/createGroup.defs.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/group/createGroup.defs.js +59 -0
- package/dist/lexicons/chat/bsky/group/createGroup.defs.js.map +1 -0
- package/dist/lexicons/chat/bsky/group/createGroup.js +45 -0
- package/dist/lexicons/chat/bsky/group/createGroup.js.map +1 -0
- package/dist/lexicons/chat/bsky/group/createJoinLink.d.ts +3 -0
- package/dist/lexicons/chat/bsky/group/createJoinLink.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/group/createJoinLink.defs.d.ts +26 -0
- package/dist/lexicons/chat/bsky/group/createJoinLink.defs.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/group/createJoinLink.defs.js +54 -0
- package/dist/lexicons/chat/bsky/group/createJoinLink.defs.js.map +1 -0
- package/dist/lexicons/chat/bsky/group/createJoinLink.js +45 -0
- package/dist/lexicons/chat/bsky/group/createJoinLink.js.map +1 -0
- package/dist/lexicons/chat/bsky/group/defs.d.ts +3 -0
- package/dist/lexicons/chat/bsky/group/defs.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/group/defs.defs.d.ts +47 -0
- package/dist/lexicons/chat/bsky/group/defs.defs.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/group/defs.defs.js +69 -0
- package/dist/lexicons/chat/bsky/group/defs.defs.js.map +1 -0
- package/dist/lexicons/chat/bsky/group/defs.js +45 -0
- package/dist/lexicons/chat/bsky/group/defs.js.map +1 -0
- package/dist/lexicons/chat/bsky/group/disableJoinLink.d.ts +3 -0
- package/dist/lexicons/chat/bsky/group/disableJoinLink.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/group/disableJoinLink.defs.d.ts +22 -0
- package/dist/lexicons/chat/bsky/group/disableJoinLink.defs.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/group/disableJoinLink.defs.js +50 -0
- package/dist/lexicons/chat/bsky/group/disableJoinLink.defs.js.map +1 -0
- package/dist/lexicons/chat/bsky/group/disableJoinLink.js +45 -0
- package/dist/lexicons/chat/bsky/group/disableJoinLink.js.map +1 -0
- package/dist/lexicons/chat/bsky/group/editGroup.d.ts +3 -0
- package/dist/lexicons/chat/bsky/group/editGroup.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/group/editGroup.defs.d.ts +32 -0
- package/dist/lexicons/chat/bsky/group/editGroup.defs.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/group/editGroup.defs.js +53 -0
- package/dist/lexicons/chat/bsky/group/editGroup.defs.js.map +1 -0
- package/dist/lexicons/chat/bsky/group/editGroup.js +45 -0
- package/dist/lexicons/chat/bsky/group/editGroup.js.map +1 -0
- package/dist/lexicons/chat/bsky/group/editJoinLink.d.ts +3 -0
- package/dist/lexicons/chat/bsky/group/editJoinLink.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/group/editJoinLink.defs.d.ts +26 -0
- package/dist/lexicons/chat/bsky/group/editJoinLink.defs.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/group/editJoinLink.defs.js +54 -0
- package/dist/lexicons/chat/bsky/group/editJoinLink.defs.js.map +1 -0
- package/dist/lexicons/chat/bsky/group/editJoinLink.js +45 -0
- package/dist/lexicons/chat/bsky/group/editJoinLink.js.map +1 -0
- package/dist/lexicons/chat/bsky/group/enableJoinLink.d.ts +3 -0
- package/dist/lexicons/chat/bsky/group/enableJoinLink.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/group/enableJoinLink.defs.d.ts +22 -0
- package/dist/lexicons/chat/bsky/group/enableJoinLink.defs.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/group/enableJoinLink.defs.js +50 -0
- package/dist/lexicons/chat/bsky/group/enableJoinLink.defs.js.map +1 -0
- package/dist/lexicons/chat/bsky/group/enableJoinLink.js +45 -0
- package/dist/lexicons/chat/bsky/group/enableJoinLink.js.map +1 -0
- package/dist/lexicons/chat/bsky/group/getGroupPublicInfo.d.ts +3 -0
- package/dist/lexicons/chat/bsky/group/getGroupPublicInfo.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/group/getGroupPublicInfo.defs.d.ts +20 -0
- package/dist/lexicons/chat/bsky/group/getGroupPublicInfo.defs.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/group/getGroupPublicInfo.defs.js +50 -0
- package/dist/lexicons/chat/bsky/group/getGroupPublicInfo.defs.js.map +1 -0
- package/dist/lexicons/chat/bsky/group/getGroupPublicInfo.js +45 -0
- package/dist/lexicons/chat/bsky/group/getGroupPublicInfo.js.map +1 -0
- package/dist/lexicons/chat/bsky/group/listJoinRequests.d.ts +3 -0
- package/dist/lexicons/chat/bsky/group/listJoinRequests.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/group/listJoinRequests.defs.d.ts +26 -0
- package/dist/lexicons/chat/bsky/group/listJoinRequests.defs.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/group/listJoinRequests.defs.js +55 -0
- package/dist/lexicons/chat/bsky/group/listJoinRequests.defs.js.map +1 -0
- package/dist/lexicons/chat/bsky/group/listJoinRequests.js +45 -0
- package/dist/lexicons/chat/bsky/group/listJoinRequests.js.map +1 -0
- package/dist/lexicons/chat/bsky/group/rejectJoinRequest.d.ts +3 -0
- package/dist/lexicons/chat/bsky/group/rejectJoinRequest.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/group/rejectJoinRequest.defs.d.ts +23 -0
- package/dist/lexicons/chat/bsky/group/rejectJoinRequest.defs.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/group/rejectJoinRequest.defs.js +14 -0
- package/dist/lexicons/chat/bsky/group/rejectJoinRequest.defs.js.map +1 -0
- package/dist/lexicons/chat/bsky/group/rejectJoinRequest.js +45 -0
- package/dist/lexicons/chat/bsky/group/rejectJoinRequest.js.map +1 -0
- package/dist/lexicons/chat/bsky/group/removeMembers.d.ts +3 -0
- package/dist/lexicons/chat/bsky/group/removeMembers.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/group/removeMembers.defs.d.ts +28 -0
- package/dist/lexicons/chat/bsky/group/removeMembers.defs.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/group/removeMembers.defs.js +53 -0
- package/dist/lexicons/chat/bsky/group/removeMembers.defs.js.map +1 -0
- package/dist/lexicons/chat/bsky/group/removeMembers.js +45 -0
- package/dist/lexicons/chat/bsky/group/removeMembers.js.map +1 -0
- package/dist/lexicons/chat/bsky/group/requestJoin.d.ts +3 -0
- package/dist/lexicons/chat/bsky/group/requestJoin.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/group/requestJoin.defs.d.ts +28 -0
- package/dist/lexicons/chat/bsky/group/requestJoin.defs.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/group/requestJoin.defs.js +58 -0
- package/dist/lexicons/chat/bsky/group/requestJoin.defs.js.map +1 -0
- package/dist/lexicons/chat/bsky/group/requestJoin.js +45 -0
- package/dist/lexicons/chat/bsky/group/requestJoin.js.map +1 -0
- package/dist/lexicons/chat/bsky/group.d.ts +15 -0
- package/dist/lexicons/chat/bsky/group.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/group.js +54 -0
- package/dist/lexicons/chat/bsky/group.js.map +1 -0
- package/dist/lexicons/chat/bsky/moderation/getMessageContext.defs.d.ts +2 -2
- package/dist/lexicons/chat/bsky/moderation/getMessageContext.defs.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/moderation/getMessageContext.defs.js +1 -0
- package/dist/lexicons/chat/bsky/moderation/getMessageContext.defs.js.map +1 -1
- package/dist/lexicons/chat/bsky/moderation/subscribeModEvents.d.ts +3 -0
- package/dist/lexicons/chat/bsky/moderation/subscribeModEvents.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/moderation/subscribeModEvents.defs.d.ts +32 -0
- package/dist/lexicons/chat/bsky/moderation/subscribeModEvents.defs.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/moderation/subscribeModEvents.defs.js +23 -0
- package/dist/lexicons/chat/bsky/moderation/subscribeModEvents.defs.js.map +1 -0
- package/dist/lexicons/chat/bsky/moderation/subscribeModEvents.js +45 -0
- package/dist/lexicons/chat/bsky/moderation/subscribeModEvents.js.map +1 -0
- package/dist/lexicons/chat/bsky/moderation.d.ts +1 -0
- package/dist/lexicons/chat/bsky/moderation.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/moderation.js +2 -1
- package/dist/lexicons/chat/bsky/moderation.js.map +1 -1
- package/dist/lexicons/chat/bsky.d.ts +1 -0
- package/dist/lexicons/chat/bsky.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky.js +2 -1
- package/dist/lexicons/chat/bsky.js.map +1 -1
- package/dist/proto/bsky_pb.d.ts +4 -0
- package/dist/proto/bsky_pb.d.ts.map +1 -1
- package/dist/proto/bsky_pb.js +10 -0
- package/dist/proto/bsky_pb.js.map +1 -1
- package/dist/proto/bsync_connect.d.ts +10 -1
- package/dist/proto/bsync_connect.d.ts.map +1 -1
- package/dist/proto/bsync_connect.js +9 -0
- package/dist/proto/bsync_connect.js.map +1 -1
- package/dist/proto/bsync_pb.d.ts +38 -0
- package/dist/proto/bsync_pb.d.ts.map +1 -1
- package/dist/proto/bsync_pb.js +113 -1
- package/dist/proto/bsync_pb.js.map +1 -1
- package/dist/views/index.d.ts +2 -1
- package/dist/views/index.d.ts.map +1 -1
- package/dist/views/index.js +10 -8
- package/dist/views/index.js.map +1 -1
- package/dist/views/types.d.ts +1 -0
- package/dist/views/types.d.ts.map +1 -1
- package/dist/views/types.js.map +1 -1
- package/package.json +7 -7
- package/proto/bsky.proto +1 -0
- package/src/api/app/bsky/bookmark/getBookmarks.ts +3 -6
- package/src/api/app/bsky/contact/getMatches.ts +3 -6
- package/src/api/app/bsky/feed/getTimeline.ts +3 -6
- package/src/api/app/bsky/graph/getBlocks.ts +3 -6
- package/src/api/app/bsky/graph/getKnownFollowers.ts +3 -6
- package/src/api/app/bsky/graph/getListBlocks.ts +3 -6
- package/src/api/app/bsky/graph/getListMutes.ts +3 -6
- package/src/api/app/bsky/graph/getListsWithMembership.ts +3 -3
- package/src/api/app/bsky/graph/getMutes.ts +3 -6
- package/src/api/app/bsky/graph/getStarterPacksWithMembership.ts +3 -3
- package/src/api/app/bsky/notification/listActivitySubscriptions.ts +3 -3
- package/src/api/app/bsky/notification/listNotifications.ts +3 -6
- package/src/data-plane/client/index.ts +2 -0
- package/src/data-plane/client/util.test.ts +39 -0
- package/src/data-plane/client/util.ts +9 -1
- package/src/data-plane/server/routes/profile.ts +4 -0
- package/src/hydration/actor.ts +2 -0
- package/src/hydration/hydrator.ts +2 -0
- package/src/proto/bsky_pb.ts +6 -0
- package/src/proto/bsync_connect.ts +10 -1
- package/src/proto/bsync_pb.ts +80 -0
- package/src/views/index.ts +11 -8
- package/src/views/types.ts +1 -0
- package/tests/views/profile.test.ts +64 -0
- package/tsconfig.build.tsbuildinfo +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hydrator.js","sourceRoot":"","sources":["../../src/hydration/hydrator.ts"],"names":[],"mappings":"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","sourcesContent":["import assert from 'node:assert'\nimport { mapDefined } from '@atproto/common'\nimport { AtUri, AtUriString, DidString, UriString } from '@atproto/syntax'\nimport { DataPlaneClient } from '../data-plane/client'\nimport { FeatureGatesClient, ScopedFeatureGatesClient } from '../feature-gates'\nimport { app, chat, com } from '../lexicons/index.js'\nimport { hydrationLogger } from '../logger'\nimport {\n Bookmark as BookmarkLex,\n BookmarkInfo,\n Notification,\n RecordRef,\n} from '../proto/bsky_pb'\nimport { ParsedLabelers } from '../util'\nimport { uriToDid, uriToDid as didFromUri } from '../util/uris'\nimport {\n ProfileRecord,\n isListRuleType,\n isRecordEmbedType,\n isRecordWithMediaType,\n} from '../views/types.js'\nimport {\n ActivitySubscriptionStates,\n ActorHydrator,\n Actors,\n KnownFollowersStates,\n ProfileAggs,\n ProfileViewerState,\n ProfileViewerStates,\n} from './actor'\nimport {\n FeedGenAggs,\n FeedGenViewerStates,\n FeedGens,\n FeedHydrator,\n FeedItem,\n type GetPostsHydrationOptions,\n Likes,\n Post,\n PostAggs,\n PostViewerStates,\n Postgates,\n Posts,\n Reposts,\n ThreadContexts,\n ThreadRef,\n Threadgates,\n} from './feed'\nimport {\n BlockEntry,\n Follows,\n GraphHydrator,\n ListAggs,\n ListItems,\n ListMembershipState,\n ListMembershipStates,\n ListViewerStates,\n Lists,\n RelationshipPair,\n StarterPackAggs,\n StarterPacks,\n Verifications,\n} from './graph'\nimport {\n LabelHydrator,\n LabelerAggs,\n LabelerViewerStates,\n Labelers,\n Labels,\n} from './label'\nimport {\n HydrationMap,\n ItemRef,\n RecordInfo,\n mergeManyMaps,\n mergeMaps,\n mergeNestedMaps,\n parseDate,\n urisByCollection,\n} from './util'\n\nexport class HydrateCtx {\n labelers = this.vals.labelers\n viewer = this.vals.viewer !== null ? serviceRefToDid(this.vals.viewer) : null\n includeTakedowns = this.vals.includeTakedowns\n overrideIncludeTakedownsForActor = this.vals.overrideIncludeTakedownsForActor\n include3pBlocks = this.vals.include3pBlocks\n skipViewerBlocks = this.vals.skipViewerBlocks\n includeDebugField = this.vals.includeDebugField\n features = this.vals.features\n constructor(private vals: HydrateCtxVals) {}\n // Convenience with use with dataplane.getActors cache control\n get skipCacheForViewer() {\n if (!this.viewer) return\n return [this.viewer]\n }\n copy<V extends Partial<HydrateCtxVals>>(vals?: V): HydrateCtx & V {\n return new HydrateCtx({ ...this.vals, ...vals }) as HydrateCtx & V\n }\n}\n\nexport type HydrateCtxVals = {\n labelers: ParsedLabelers\n viewer: DidString | null\n includeTakedowns?: boolean\n overrideIncludeTakedownsForActor?: boolean\n include3pBlocks?: boolean\n skipViewerBlocks?: boolean\n includeDebugField?: boolean\n features: ScopedFeatureGatesClient\n}\n\nexport type HydrationState = {\n ctx?: HydrateCtx\n actors?: Actors\n profileViewers?: ProfileViewerStates\n profileAggs?: ProfileAggs\n posts?: Posts\n postAggs?: PostAggs\n postViewers?: PostViewerStates\n threadContexts?: ThreadContexts\n postBlocks?: PostBlocks\n reposts?: Reposts\n follows?: Follows\n followBlocks?: FollowBlocks\n threadgates?: Threadgates\n postgates?: Postgates\n lists?: Lists\n listAggs?: ListAggs\n listMemberships?: ListMembershipStates\n listViewers?: ListViewerStates\n listItems?: ListItems\n likes?: Likes\n likeBlocks?: LikeBlocks\n labels?: Labels\n feedgens?: FeedGens\n feedgenViewers?: FeedGenViewerStates\n feedgenAggs?: FeedGenAggs\n starterPacks?: StarterPacks\n starterPackAggs?: StarterPackAggs\n labelers?: Labelers\n labelerViewers?: LabelerViewerStates\n labelerAggs?: LabelerAggs\n knownFollowers?: KnownFollowersStates\n activitySubscriptions?: ActivitySubscriptionStates\n bidirectionalBlocks?: BidirectionalBlocks\n verifications?: Verifications\n bookmarks?: Bookmarks\n}\n\nexport type PostBlock = { embed: boolean; parent: boolean; root: boolean }\nexport type PostBlocks = HydrationMap<AtUriString, PostBlock>\ntype PostBlockPairs = {\n embed?: RelationshipPair\n parent?: RelationshipPair\n root?: RelationshipPair\n}\n\nexport type LikeBlock = boolean\nexport type LikeBlocks = HydrationMap<AtUriString, LikeBlock>\n\nexport type FollowBlock = boolean\nexport type FollowBlocks = HydrationMap<AtUriString, FollowBlock>\n\nexport type BidirectionalBlocks = HydrationMap<\n DidString,\n HydrationMap<DidString, boolean>\n>\n\nexport type Bookmark = {\n ref?: { key: string }\n subjectUri: string\n subjectCid: string\n indexedAt?: Date\n}\n\n// actor DID -> stash key -> bookmark\nexport type Bookmarks = HydrationMap<DidString, HydrationMap<string, Bookmark>>\n\n/**\n * Additional config passed from `ServerConfig` to the `Hydrator` instance.\n * Values within this config object may be passed to other sub-hydrators.\n */\nexport type HydratorConfig = {\n debugFieldAllowedDids: Set<string>\n featureGatesClient: FeatureGatesClient\n}\n\nexport class Hydrator {\n actor: ActorHydrator\n feed: FeedHydrator\n graph: GraphHydrator\n label: LabelHydrator\n serviceLabelers: Set<string>\n config: HydratorConfig\n\n constructor(\n public dataplane: DataPlaneClient,\n serviceLabelers: readonly DidString[] = [],\n config: HydratorConfig,\n ) {\n this.config = config\n this.actor = new ActorHydrator(dataplane)\n this.feed = new FeedHydrator(dataplane)\n this.graph = new GraphHydrator(dataplane)\n this.label = new LabelHydrator(dataplane)\n this.serviceLabelers = new Set(serviceLabelers)\n }\n\n // app.bsky.actor.defs#profileView\n // - profile viewer\n // - list basic\n // Note: builds on the naive profile viewer hydrator and removes references to lists that have been deleted\n async hydrateProfileViewers(\n dids: DidString[],\n ctx: HydrateCtx,\n ): Promise<HydrationState> {\n const viewer = ctx.viewer\n if (!viewer) return {}\n const profileViewers = await this.actor.getProfileViewerStatesNaive(\n dids,\n viewer,\n )\n const listUris: AtUriString[] = []\n profileViewers.forEach((item) => {\n listUris.push(...listUrisFromProfileViewer(item))\n })\n const listState = await this.hydrateListsBasic(listUris, ctx)\n // if a list no longer exists or is not a mod list, then remove from viewer state\n profileViewers.forEach((item) => {\n removeNonModListsFromProfileViewer(item, listState)\n })\n\n return mergeStates(listState, {\n profileViewers,\n ctx,\n })\n }\n\n // app.bsky.actor.defs#profileView\n // - profile\n // - list basic\n async hydrateProfiles(\n dids: DidString[],\n ctx: HydrateCtx,\n ): Promise<HydrationState> {\n /**\n * Special case here, we want to include takedowns in special cases, like\n * `getProfile`, since we throw client-facing errors later in the pipeline.\n */\n const includeTakedowns =\n ctx.includeTakedowns || ctx.overrideIncludeTakedownsForActor\n const [actors, labels, profileViewersState] = await Promise.all([\n this.actor.getActors(dids, {\n includeTakedowns,\n skipCacheForDids: ctx.skipCacheForViewer,\n }),\n this.label.getLabelsForSubjects(labelSubjectsForDid(dids), ctx.labelers),\n this.hydrateProfileViewers(dids, ctx),\n ])\n if (!includeTakedowns) {\n actionTakedownLabels(dids, actors, labels)\n }\n return mergeStates(profileViewersState ?? {}, {\n actors,\n labels,\n ctx,\n })\n }\n\n // app.bsky.actor.defs#profileViewBasic\n // - profile basic\n // - profile\n // - list basic\n async hydrateProfilesBasic(\n dids: DidString[],\n ctx: HydrateCtx,\n ): Promise<HydrationState> {\n return this.hydrateProfiles(dids, ctx)\n }\n\n // app.bsky.actor.defs#profileViewDetailed\n // - profile detailed\n // - profile\n // - list basic\n // - starterpack\n // - profile\n // - list basic\n // - labels\n async hydrateProfilesDetailed(\n dids: DidString[],\n ctx: HydrateCtx,\n ): Promise<HydrationState> {\n let knownFollowers: KnownFollowersStates = new HydrationMap()\n try {\n knownFollowers = await this.actor.getKnownFollowers(dids, ctx.viewer)\n } catch (err) {\n hydrationLogger.error(\n { err },\n 'Failed to get known followers for profiles',\n )\n }\n\n let activitySubscriptions: ActivitySubscriptionStates = new HydrationMap()\n try {\n activitySubscriptions = await this.actor.getActivitySubscriptions(\n dids,\n ctx.viewer,\n )\n } catch (err) {\n hydrationLogger.error(\n { err },\n 'Failed to get activity subscriptions state for profiles',\n )\n }\n\n const subjectsToKnownFollowersMap = new Map<DidString, DidString[]>()\n\n for (const did of knownFollowers.keys()) {\n const known = knownFollowers.get(did)\n if (known) subjectsToKnownFollowersMap.set(did, known.followers)\n }\n\n const allKnownFollowerDids = Array.from(knownFollowers.values())\n .filter(Boolean)\n .flatMap((f) => f!.followers)\n const allDids = Array.from(new Set(dids.concat(allKnownFollowerDids)))\n const [state, profileAggs, bidirectionalBlocks] = await Promise.all([\n this.hydrateProfiles(allDids, ctx),\n this.actor.getProfileAggregates(dids),\n this.hydrateBidirectionalBlocks(subjectsToKnownFollowersMap, ctx),\n ])\n const starterPackUriSet = new Set<AtUriString>()\n state.actors?.forEach((actor) => {\n if (actor?.profile?.joinedViaStarterPack) {\n starterPackUriSet.add(actor?.profile?.joinedViaStarterPack?.uri)\n }\n })\n const starterPackState = await this.hydrateStarterPacksBasic(\n [...starterPackUriSet],\n ctx,\n )\n return mergeManyStates(state, starterPackState, {\n profileAggs,\n knownFollowers,\n activitySubscriptions,\n ctx,\n bidirectionalBlocks,\n })\n }\n\n // app.bsky.graph.defs#listView\n // - list\n // - profile basic\n async hydrateLists(\n uris: AtUriString[],\n ctx: HydrateCtx,\n ): Promise<HydrationState> {\n const [listsState, profilesState] = await Promise.all([\n this.hydrateListsBasic(uris, ctx, {\n skipAuthors: true, // handled via author profile hydration\n }),\n this.hydrateProfilesBasic(uris.map(didFromUri), ctx),\n ])\n return mergeStates(listsState, profilesState)\n }\n\n // app.bsky.graph.defs#listViewBasic\n // - list basic\n async hydrateListsBasic(\n uris: AtUriString[],\n ctx: HydrateCtx,\n opts?: { skipAuthors: boolean },\n ): Promise<HydrationState> {\n const includeAuthorDids = opts?.skipAuthors ? [] : uris.map(uriToDid)\n const [lists, listAggs, listViewers, labels, actors] = await Promise.all([\n this.graph.getLists(uris, ctx.includeTakedowns),\n this.graph.getListAggregates(uris.map((uri) => ({ uri }))),\n ctx.viewer ? this.graph.getListViewerStates(uris, ctx.viewer) : undefined,\n this.label.getLabelsForSubjects(\n [...uris, ...includeAuthorDids],\n ctx.labelers,\n ),\n this.actor.getActors(includeAuthorDids, {\n includeTakedowns: ctx.includeTakedowns,\n skipCacheForDids: ctx.skipCacheForViewer,\n }),\n ])\n\n if (!ctx.includeTakedowns) {\n actionTakedownLabels(uris, lists, labels)\n actionTakedownLabels(includeAuthorDids, actors, labels)\n }\n\n return { lists, listAggs, listViewers, labels, actors, ctx }\n }\n\n // app.bsky.graph.defs#listItemView\n // - list item\n // - profile\n // - list basic\n async hydrateListItems(\n uris: AtUriString[],\n ctx: HydrateCtx,\n ): Promise<HydrationState> {\n const listItems = await this.graph.getListItems(uris)\n const dids: DidString[] = []\n listItems.forEach((item) => {\n if (item) {\n dids.push(item.record.subject)\n }\n })\n const profileState = await this.hydrateProfiles(dids, ctx)\n return mergeStates(profileState, { listItems, ctx })\n }\n\n async hydrateListsMembership(\n uris: AtUriString[],\n did: DidString,\n ctx: HydrateCtx,\n ): Promise<HydrationState> {\n const [\n actorsHydrationState,\n listsHydrationState,\n { listitemUris: listItemUris },\n ] = await Promise.all([\n this.hydrateProfiles([did], ctx),\n this.hydrateLists(uris, ctx),\n this.dataplane.getListMembership({\n actorDid: did,\n listUris: uris,\n }),\n ])\n\n // mapping uri -> did -> { actorListItemUri }\n const listMemberships = new HydrationMap(\n uris.map((uri, i) => {\n const listItemUri = listItemUris[i] as '' | AtUriString\n return [\n uri,\n new HydrationMap<DidString, ListMembershipState>([\n listItemUri\n ? [did, { actorListItemUri: listItemUri }]\n : [did, null],\n ]),\n ]\n }),\n )\n\n return mergeManyStates(actorsHydrationState, listsHydrationState, {\n listMemberships,\n ctx,\n })\n }\n\n // app.bsky.feed.defs#postView\n // - post\n // - profile\n // - list basic\n // - list\n // - profile\n // - list basic\n // - feedgen\n // - profile\n // - list basic\n // - mod service\n // - profile\n // - list basic\n async hydratePosts(\n refs: { uri: AtUriString }[],\n ctx: HydrateCtx,\n state: HydrationState = {},\n options: Pick<GetPostsHydrationOptions, 'processDynamicTagsForView'> = {},\n ): Promise<HydrationState> {\n const uris = refs.map((ref) => ref.uri)\n\n state.posts ??= new HydrationMap()\n const addPostsToHydrationState = (posts: Posts) => {\n posts.forEach((post, uri) => {\n state.posts ??= new HydrationMap()\n state.posts.set(uri, post)\n })\n }\n\n // layer 0: the posts in the thread\n const postsLayer0 = await this.feed.getPosts(\n uris,\n ctx.includeTakedowns,\n state.posts,\n ctx.viewer,\n {\n processDynamicTagsForView: options.processDynamicTagsForView,\n },\n )\n addPostsToHydrationState(postsLayer0)\n\n const additionalRootUris = rootUrisFromPosts(postsLayer0) // supports computing threadgates\n const threadRootUris = new Set<AtUriString>()\n for (const [uri, post] of postsLayer0) {\n if (post) {\n threadRootUris.add(rootUriFromPost(post) ?? uri)\n }\n }\n const postUrisWithThreadgates = new Set<AtUriString>()\n for (const uri of threadRootUris) {\n const post = postsLayer0.get(uri)\n /*\n * Checking `post.hasThreadGate` is an optimization, which tells us that\n * this post has a threadgate record associated with it. `hydratePosts`\n * always hydrates root posts via `additionalRootUris`, so we try to\n * check the optimization flag were possible. If the post is unavailable\n * for whatever reason, we fall back to requesting threadgate records\n * that may not exist.\n */\n if (!post || post.hasThreadGate) {\n postUrisWithThreadgates.add(uri)\n }\n }\n\n // layer 1: first level embeds plus thread roots we haven't fetched yet\n const urisLayer1 = nestedRecordUrisFromPosts(postsLayer0)\n const urisLayer1ByCollection = urisByCollection(urisLayer1)\n const embedPostUrisLayer1 =\n urisLayer1ByCollection.get(app.bsky.feed.post.$type) ?? []\n const postsLayer1 = await this.feed.getPosts(\n [...embedPostUrisLayer1, ...additionalRootUris],\n ctx.includeTakedowns,\n state.posts,\n )\n addPostsToHydrationState(postsLayer1)\n\n // layer 2: second level embeds, ignoring any additional root uris we mixed-in to the previous layer\n const urisLayer2 = nestedRecordUrisFromPosts(\n postsLayer1,\n embedPostUrisLayer1,\n )\n const urisLayer2ByCollection = urisByCollection(urisLayer2)\n const embedPostUrisLayer2 =\n urisLayer2ByCollection.get(app.bsky.feed.post.$type) ?? []\n\n const [postsLayer2, threadgates] = await Promise.all([\n this.feed.getPosts(\n embedPostUrisLayer2,\n ctx.includeTakedowns,\n state.posts,\n ),\n this.feed.getThreadgatesForPosts([...postUrisWithThreadgates.values()]),\n ])\n addPostsToHydrationState(postsLayer2)\n\n // collect list/feedgen embeds, lists in threadgates, post record hydration\n const threadgateListUris = getListUrisFromThreadgates(threadgates)\n const nestedListUris = [\n ...(urisLayer1ByCollection.get(app.bsky.graph.list.$type) ?? []),\n ...(urisLayer2ByCollection.get(app.bsky.graph.list.$type) ?? []),\n ]\n const nestedFeedGenUris = [\n ...(urisLayer1ByCollection.get(app.bsky.feed.generator.$type) ?? []),\n ...(urisLayer2ByCollection.get(app.bsky.feed.generator.$type) ?? []),\n ]\n const nestedLabelerDids = [\n ...(urisLayer1ByCollection.get(app.bsky.labeler.service.$type) ?? []),\n ...(urisLayer2ByCollection.get(app.bsky.labeler.service.$type) ?? []),\n ].map(didFromUri)\n const nestedStarterPackUris = [\n ...(urisLayer1ByCollection.get(app.bsky.graph.starterpack.$type) ?? []),\n ...(urisLayer2ByCollection.get(app.bsky.graph.starterpack.$type) ?? []),\n ]\n const posts =\n mergeManyMaps(postsLayer0, postsLayer1, postsLayer2) ?? postsLayer0\n const allPostUris = [...posts.keys()]\n const allRefs = [\n ...refs,\n ...embedPostUrisLayer1.map(uriToRef), // supports aggregates on embed #viewRecords\n ...embedPostUrisLayer2.map(uriToRef),\n ]\n const threadRefs = allRefs.map((ref) => ({\n ...ref,\n threadRoot: posts.get(ref.uri)?.record.reply?.root.uri ?? ref.uri,\n }))\n const postUrisWithPostgates = new Set<AtUriString>()\n for (const [uri, post] of posts) {\n if (post && post.hasPostGate) {\n postUrisWithPostgates.add(uri)\n }\n }\n\n const [\n postAggs,\n postViewers,\n labels,\n postBlocks,\n profileState,\n listState,\n feedGenState,\n labelerState,\n starterPackState,\n postgates,\n ] = await Promise.all([\n this.feed.getPostAggregates(allRefs, ctx.viewer),\n ctx.viewer\n ? this.feed.getPostViewerStates(threadRefs, ctx.viewer)\n : undefined,\n this.label.getLabelsForSubjects(allPostUris, ctx.labelers),\n this.hydratePostBlocks(posts, ctx),\n this.hydrateProfiles(allPostUris.map(didFromUri), ctx),\n this.hydrateLists([...nestedListUris, ...threadgateListUris], ctx),\n this.hydrateFeedGens(nestedFeedGenUris, ctx),\n this.hydrateLabelers(nestedLabelerDids, ctx),\n this.hydrateStarterPacksBasic(nestedStarterPackUris, ctx),\n this.feed.getPostgatesForPosts([...postUrisWithPostgates.values()]),\n ])\n if (!ctx.includeTakedowns) {\n actionTakedownLabels(allPostUris, posts, labels)\n }\n // combine all hydration state\n return mergeManyStates(\n profileState,\n listState,\n feedGenState,\n labelerState,\n starterPackState,\n {\n posts,\n postAggs,\n postViewers,\n postBlocks,\n labels,\n threadgates,\n postgates,\n ctx,\n },\n )\n }\n\n private async hydratePostBlocks(\n posts: Posts,\n ctx: HydrateCtx,\n ): Promise<PostBlocks> {\n const postBlocks: PostBlocks = new HydrationMap()\n const postBlocksPairs = new Map<AtUriString, PostBlockPairs>()\n const relationships: RelationshipPair[] = []\n for (const [uri, item] of posts) {\n if (!item) continue\n const post = item.record\n const creator = didFromUri(uri)\n const postBlockPairs: PostBlockPairs = {}\n postBlocksPairs.set(uri, postBlockPairs)\n // 3p block for replies\n const parentUri = post.reply?.parent.uri\n const parentDid = parentUri && didFromUri(parentUri)\n if (parentDid && parentDid !== creator) {\n const pair: RelationshipPair = [creator, parentDid]\n relationships.push(pair)\n postBlockPairs.parent = pair\n }\n const rootUri = post.reply?.root.uri\n const rootDid = rootUri && didFromUri(rootUri)\n if (rootDid && rootDid !== creator) {\n const pair: RelationshipPair = [creator, rootDid]\n relationships.push(pair)\n postBlockPairs.root = pair\n }\n // 3p block for record embeds\n for (const embedUri of nestedRecordUris(post)) {\n const pair: RelationshipPair = [creator, didFromUri(embedUri)]\n relationships.push(pair)\n postBlockPairs.embed = pair\n }\n }\n // replace embed/parent/root pairs with block state\n const blocks = await this.hydrateBidirectionalBlocks(\n pairsToMap(relationships),\n ctx,\n )\n for (const [uri, { embed, parent, root }] of postBlocksPairs) {\n postBlocks.set(uri, {\n embed: !!embed && !!isBlocked(blocks, embed),\n parent: !!parent && !!isBlocked(blocks, parent),\n root: !!root && !!isBlocked(blocks, root),\n })\n }\n return postBlocks\n }\n\n // app.bsky.feed.defs#feedViewPost\n // - post (+ replies w/ reply parent author)\n // - profile\n // - list basic\n // - list\n // - profile\n // - list basic\n // - feedgen\n // - profile\n // - list basic\n // - repost\n // - profile\n // - list basic\n // - post\n // - ...\n async hydrateFeedItems(\n items: FeedItem[],\n ctx: HydrateCtx,\n ): Promise<HydrationState> {\n // get posts, collect reply refs\n const posts = await this.feed.getPosts(\n items.map((item) => item.post.uri),\n ctx.includeTakedowns,\n )\n const rootUris: AtUriString[] = []\n const parentUris: AtUriString[] = []\n const postAndReplyRefs: ItemRef[] = []\n posts.forEach((post, uri) => {\n if (!post) return\n postAndReplyRefs.push({ uri, cid: post.cid })\n if (post.record.reply) {\n rootUris.push(post.record.reply.root.uri)\n parentUris.push(post.record.reply.parent.uri)\n postAndReplyRefs.push(post.record.reply.root, post.record.reply.parent)\n }\n })\n // get replies, collect reply parent authors\n const replies = await this.feed.getPosts(\n [...rootUris, ...parentUris],\n ctx.includeTakedowns,\n )\n const replyParentAuthors: DidString[] = []\n parentUris.forEach((uri) => {\n const parent = replies.get(uri)\n if (!parent?.record.reply) return\n replyParentAuthors.push(didFromUri(parent.record.reply.parent.uri))\n })\n // hydrate state for all posts, reposts, authors of reposts + reply parent authors\n const repostUris = mapDefined(items, (item) => item.repost?.uri)\n const [postState, repostProfileState, reposts] = await Promise.all([\n this.hydratePosts(postAndReplyRefs, ctx, {\n posts: posts.merge(replies), // avoids refetches of posts\n }),\n this.hydrateProfiles(\n [...repostUris.map(didFromUri), ...replyParentAuthors],\n ctx,\n ),\n this.feed.getReposts(repostUris, ctx.includeTakedowns),\n ])\n return mergeManyStates(postState, repostProfileState, {\n reposts,\n ctx,\n })\n }\n\n // app.bsky.feed.defs#threadViewPost\n // - post\n // - profile\n // - list basic\n // - list\n // - profile\n // - list basic\n // - feedgen\n // - profile\n // - list basic\n async hydrateThreadPosts(\n refs: ItemRef[],\n ctx: HydrateCtx,\n ): Promise<HydrationState> {\n const postsState = await this.hydratePosts(refs, ctx, undefined, {\n processDynamicTagsForView: ctx.features.checkGate(\n ctx.features.Gate.ThreadsReplyRankingExplorationEnable,\n )\n ? 'thread'\n : undefined,\n })\n\n const threadRefs: ThreadRef[] = []\n\n if (postsState.posts) {\n for (const [uri, post] of postsState.posts.entries()) {\n if (post) {\n threadRefs.push({\n uri,\n cid: post.cid,\n threadRoot: post.record.reply?.root.uri ?? uri,\n })\n }\n }\n }\n\n const threadContexts = await this.feed.getThreadContexts(threadRefs)\n\n return mergeStates(postsState, { threadContexts })\n }\n\n // app.bsky.feed.defs#generatorView\n // - feedgen\n // - profile\n // - list basic\n async hydrateFeedGens(\n uris: AtUriString[], // @TODO any way to get refs here?\n ctx: HydrateCtx,\n ): Promise<HydrationState> {\n const [feedgens, feedgenAggs, feedgenViewers, profileState, labels] =\n await Promise.all([\n this.feed.getFeedGens(uris, ctx.includeTakedowns),\n this.feed.getFeedGenAggregates(\n uris.map((uri) => ({ uri })),\n ctx.viewer,\n ),\n ctx.viewer\n ? this.feed.getFeedGenViewerStates(uris, ctx.viewer)\n : undefined,\n this.hydrateProfiles(uris.map(didFromUri), ctx),\n this.label.getLabelsForSubjects(uris, ctx.labelers),\n ])\n if (!ctx.includeTakedowns) {\n actionTakedownLabels(uris, feedgens, labels)\n }\n return mergeStates(profileState, {\n feedgens,\n feedgenAggs,\n feedgenViewers,\n labels,\n ctx,\n })\n }\n\n // app.bsky.graph.defs#starterPackViewBasic\n // - starterpack\n // - profile\n // - list basic\n // - labels\n async hydrateStarterPacksBasic(\n uris: AtUriString[],\n ctx: HydrateCtx,\n ): Promise<HydrationState> {\n const [starterPacks, starterPackAggs, profileState, labels] =\n await Promise.all([\n this.graph.getStarterPacks(uris, ctx.includeTakedowns),\n this.graph.getStarterPackAggregates(uris.map((uri) => ({ uri }))),\n this.hydrateProfiles(uris.map(didFromUri), ctx),\n this.label.getLabelsForSubjects(uris, ctx.labelers),\n ])\n if (!ctx.includeTakedowns) {\n actionTakedownLabels(uris, starterPacks, labels)\n }\n return mergeStates(profileState, {\n starterPacks,\n starterPackAggs,\n labels,\n ctx,\n })\n }\n\n // app.bsky.graph.defs#starterPackView\n // - starterpack\n // - profile\n // - list basic\n // - feedgen\n // - profile\n // - list basic\n // - list basic\n // - list item\n // - profile\n // - list basic\n // - labels\n async hydrateStarterPacks(\n uris: AtUriString[],\n ctx: HydrateCtx,\n ): Promise<HydrationState> {\n const starterPackState = await this.hydrateStarterPacksBasic(uris, ctx)\n // gather feed and list uris\n const feedUriSet = new Set<AtUriString>()\n const listUriSet = new Set<AtUriString>()\n starterPackState.starterPacks?.forEach((sp) => {\n sp?.record.feeds?.forEach((feed) => feedUriSet.add(feed.uri))\n if (sp?.record.list) {\n listUriSet.add(sp?.record.list)\n }\n })\n const feedUris = [...feedUriSet]\n const listUris = [...listUriSet]\n // hydrate feeds, lists, and their members\n const [feedGenState, listState, ...listsMembers] = await Promise.all([\n this.hydrateFeedGens(feedUris, ctx),\n this.hydrateLists(listUris, ctx),\n ...listUris.map((uri) =>\n this.dataplane.getListMembers({ listUri: uri, limit: 50 }),\n ),\n ])\n // collect list info\n const listMembersByList = new Map(\n listUris.map((uri, i) => [uri, listsMembers[i]]),\n )\n const listMemberDids = listsMembers.flatMap((lm) =>\n lm.listitems.map((li) => li.did as DidString),\n )\n const listCreatorMemberPairs = [...listMembersByList.entries()].flatMap(\n ([listUri, members]) => {\n const creator = didFromUri(listUri)\n return members.listitems.map(\n (li): RelationshipPair => [creator, li.did as DidString],\n )\n },\n )\n const blocks = await this.hydrateBidirectionalBlocks(\n pairsToMap(listCreatorMemberPairs),\n ctx,\n )\n // sample top list items per starter pack based on their follows\n const listMemberAggs = await this.actor.getProfileAggregates(listMemberDids)\n const listItemUris: AtUriString[] = []\n uris.forEach((uri) => {\n const sp = starterPackState.starterPacks?.get(uri)\n const agg = starterPackState.starterPackAggs?.get(uri)\n if (!sp?.record.list || !agg) return\n const members = listMembersByList.get(sp.record.list)\n if (!members) return\n const creator = didFromUri(sp.record.list)\n // update aggregation with list items for top 12 most followed members\n agg.listItemSampleUris = [\n ...members.listitems.filter(\n (li) =>\n ctx.viewer === creator ||\n !isBlocked(blocks, [creator, li.did as DidString]),\n ),\n ]\n .sort((li1, li2) => {\n const score1 =\n listMemberAggs.get(li1.did as DidString)?.followers ?? 0\n const score2 =\n listMemberAggs.get(li2.did as DidString)?.followers ?? 0\n return score2 - score1\n })\n .slice(0, 12)\n .map((li) => li.uri as AtUriString)\n listItemUris.push(...agg.listItemSampleUris)\n })\n // hydrate sampled list items\n const listItemState = await this.hydrateListItems(listItemUris, ctx)\n return mergeManyStates(\n starterPackState,\n feedGenState,\n listState,\n listItemState,\n )\n }\n\n // app.bsky.feed.getLikes#like\n // - like\n // - profile\n // - list basic\n async hydrateLikes(\n authorDid: DidString,\n uris: AtUriString[],\n ctx: HydrateCtx,\n ): Promise<HydrationState> {\n const [likes, profileState] = await Promise.all([\n this.feed.getLikes(uris, ctx.includeTakedowns),\n this.hydrateProfiles(uris.map(didFromUri), ctx),\n ])\n\n const pairs: RelationshipPair[] = []\n for (const [uri, like] of likes) {\n if (like) {\n pairs.push([authorDid, didFromUri(uri)])\n }\n }\n const blocks = await this.hydrateBidirectionalBlocks(pairsToMap(pairs), ctx)\n const likeBlocks = new HydrationMap<AtUriString, LikeBlock>()\n for (const [uri, like] of likes) {\n if (like) {\n likeBlocks.set(uri, isBlocked(blocks, [authorDid, didFromUri(uri)]))\n } else {\n likeBlocks.set(uri, null)\n }\n }\n\n return mergeStates(profileState, { likes, likeBlocks, ctx })\n }\n\n // app.bsky.feed.getRepostedBy#repostedBy\n // - repost\n // - profile\n // - list basic\n async hydrateReposts(uris: AtUriString[], ctx: HydrateCtx) {\n const [reposts, profileState] = await Promise.all([\n this.feed.getReposts(uris, ctx.includeTakedowns),\n this.hydrateProfiles(uris.map(didFromUri), ctx),\n ])\n return mergeStates(profileState, { reposts, ctx })\n }\n\n // app.bsky.notification.listNotifications#notification\n // - notification\n // - profile\n // - list basic\n async hydrateNotifications(\n notifs: Notification[],\n ctx: HydrateCtx,\n ): Promise<HydrationState> {\n const uris = notifs.map((notif) => notif.uri as AtUriString)\n const collections = urisByCollection(uris)\n const postUris = collections.get(app.bsky.feed.post.$type) ?? []\n const likeUris = collections.get(app.bsky.feed.like.$type) ?? []\n const repostUris = collections.get(app.bsky.feed.repost.$type) ?? []\n const followUris = collections.get(app.bsky.graph.follow.$type) ?? []\n const verificationUris =\n collections.get(app.bsky.graph.verification.$type) ?? []\n const [\n posts,\n likes,\n reposts,\n follows,\n verifications,\n labels,\n profileState,\n ] = await Promise.all([\n this.feed.getPosts(postUris), // reason: mention, reply, quote\n this.feed.getLikes(likeUris), // reason: like\n this.feed.getReposts(repostUris), // reason: repost\n this.graph.getFollows(followUris), // reason: follow\n this.graph.getVerifications(verificationUris), // reason: verified\n this.label.getLabelsForSubjects(uris, ctx.labelers),\n this.hydrateProfiles(uris.map(didFromUri), ctx),\n ])\n const viewerRootPostUris = new Set<AtUriString>()\n for (const notif of notifs) {\n if (notif.reason === 'reply') {\n const post = posts.get(notif.uri as AtUriString)\n if (post) {\n const rootUri = post.record.reply?.root.uri\n if (rootUri && didFromUri(rootUri) === ctx.viewer) {\n viewerRootPostUris.add(rootUri)\n }\n }\n }\n }\n const threadgates = await this.feed.getThreadgatesForPosts([\n ...viewerRootPostUris.values(),\n ])\n actionTakedownLabels(postUris, posts, labels)\n return mergeStates(profileState, {\n posts,\n likes,\n reposts,\n follows,\n verifications,\n labels,\n threadgates,\n ctx,\n })\n }\n\n async hydrateBookmarks(\n bookmarkInfos: BookmarkInfo[],\n ctx: HydrateCtx,\n ): Promise<HydrationState> {\n const viewer = ctx.viewer\n if (!viewer) return {}\n const bookmarksRes = await this.dataplane.getBookmarksByActorAndSubjects({\n actorDid: viewer,\n uris: bookmarkInfos.map((b) => b.subject),\n })\n\n type BookmarkWithRef = BookmarkLex & { ref: RecordRef }\n const bookmarks: BookmarkWithRef[] = bookmarksRes.bookmarks.filter(\n (bookmark): bookmark is BookmarkWithRef => !!bookmark.ref?.key,\n )\n\n // mapping DID -> stash key -> bookmark\n const bookmarksMap = new HydrationMap<\n DidString,\n HydrationMap<string, Bookmark>\n >()\n\n bookmarksMap.set(\n viewer,\n new HydrationMap(\n bookmarks.map((bookmark) => [\n bookmark.ref.key,\n {\n ref: bookmark.ref,\n subjectUri: bookmark.subjectUri,\n subjectCid: bookmark.subjectCid,\n indexedAt: parseDate(bookmark.indexedAt),\n },\n ]),\n ),\n )\n\n // @NOTE: The `createBookmark` endpoint limits bookmarks to be of posts,\n // so we can assume currently all subjects are posts.\n const postsState = await this.hydratePosts(\n bookmarks.map((bookmark) => ({\n uri: bookmark.subjectUri as AtUriString,\n })),\n ctx,\n )\n\n return mergeStates(postsState, { bookmarks: bookmarksMap })\n }\n\n // provides partial hydration state within getFollows / getFollowers, mainly for applying rules\n async hydrateFollows(\n uris: AtUriString[],\n ctx: HydrateCtx,\n ): Promise<HydrationState> {\n const follows = await this.graph.getFollows(uris)\n const pairs: RelationshipPair[] = []\n for (const [uri, follow] of follows) {\n if (follow) {\n pairs.push([didFromUri(uri), follow.record.subject])\n }\n }\n const blocks = await this.hydrateBidirectionalBlocks(pairsToMap(pairs), ctx)\n const followBlocks: FollowBlocks = new HydrationMap()\n for (const [uri, follow] of follows) {\n if (follow) {\n followBlocks.set(\n uri,\n isBlocked(blocks, [didFromUri(uri), follow.record.subject]),\n )\n } else {\n followBlocks.set(uri, null)\n }\n }\n return { follows, followBlocks }\n }\n\n async hydrateBidirectionalBlocks(\n didMap: Map<DidString, DidString[]>, // DID -> DID[]\n ctx: HydrateCtx,\n ): Promise<BidirectionalBlocks> {\n const pairs: RelationshipPair[] = []\n for (const [source, targets] of didMap) {\n for (const target of targets) {\n pairs.push([source, target])\n }\n }\n\n const blocks = await this.graph.getBidirectionalBlocks(pairs)\n const listUrisSet = new Set<AtUriString>()\n for (const [source, targets] of didMap) {\n for (const target of targets) {\n const block = blocks.get(source, target)\n if (block?.blockListUri) {\n listUrisSet.add(block.blockListUri)\n }\n }\n }\n const listUris = [...listUrisSet]\n\n // if a list no longer exists or is not a mod list, then remove from block entry\n const listState = await this.hydrateListsBasic(listUris, ctx)\n for (const [source, targets] of didMap) {\n for (const target of targets) {\n const block = blocks.get(source, target)\n if (!isModList(block?.blockListUri, listState)) {\n delete block?.blockListUri\n }\n }\n }\n\n const result: BidirectionalBlocks = new HydrationMap()\n\n for (const [source, targets] of didMap) {\n const didBlocks = new HydrationMap<DidString, boolean>()\n for (const target of targets) {\n const block = blocks.get(source, target)\n\n // If a list no longer exists or is not a mod list, then remove from block entry.\n // isModList confirms the list exists in listState, which ensures it wasn't taken down.\n if (!isModList(block?.blockListUri, listState)) {\n delete block?.blockListUri\n }\n\n const blockEntry: BlockEntry = {\n blockUri: block?.blockUri,\n blockListUri:\n block?.blockListUri &&\n listState.actors?.get(uriToDid(block.blockListUri))\n ? block.blockListUri\n : undefined,\n }\n\n didBlocks.set(\n target,\n !!blockEntry.blockUri || !!blockEntry.blockListUri,\n )\n }\n result.set(source, didBlocks)\n }\n\n return result\n }\n\n // app.bsky.labeler.def#labelerViewDetailed\n // - labeler\n // - profile\n // - list basic\n async hydrateLabelers(\n dids: DidString[],\n ctx: HydrateCtx,\n ): Promise<HydrationState> {\n const [labelers, labelerAggs, labelerViewers, profileState] =\n await Promise.all([\n this.label.getLabelers(dids, ctx.includeTakedowns),\n this.label.getLabelerAggregates(dids, ctx.viewer),\n ctx.viewer\n ? this.label.getLabelerViewerStates(dids, ctx.viewer)\n : undefined,\n this.hydrateProfiles(dids, ctx),\n ])\n actionTakedownLabels(dids, labelers, profileState.labels ?? new Labels())\n return mergeStates(profileState, {\n labelers,\n labelerAggs,\n labelerViewers,\n ctx,\n })\n }\n\n // ad-hoc record hydration\n // in com.atproto.repo.getRecord\n async getRecord(uri: AtUriString, includeTakedowns = false) {\n const parsed = new AtUri(uri)\n const collection = parsed.collection\n if (collection === app.bsky.feed.post.$type) {\n return (\n (await this.feed.getPosts([uri], includeTakedowns)).get(uri) ??\n undefined\n )\n } else if (collection === app.bsky.feed.repost.$type) {\n return (\n (await this.feed.getReposts([uri], includeTakedowns)).get(uri) ??\n undefined\n )\n } else if (collection === app.bsky.feed.like.$type) {\n return (\n (await this.feed.getLikes([uri], includeTakedowns)).get(uri) ??\n undefined\n )\n } else if (collection === app.bsky.graph.follow.$type) {\n return (\n (await this.graph.getFollows([uri], includeTakedowns)).get(uri) ??\n undefined\n )\n } else if (collection === app.bsky.graph.list.$type) {\n return (\n (await this.graph.getLists([uri], includeTakedowns)).get(uri) ??\n undefined\n )\n } else if (collection === app.bsky.graph.listitem.$type) {\n return (\n (await this.graph.getListItems([uri], includeTakedowns)).get(uri) ??\n undefined\n )\n } else if (collection === app.bsky.graph.block.$type) {\n return (\n (await this.graph.getBlocks([uri], includeTakedowns)).get(uri) ??\n undefined\n )\n } else if (collection === app.bsky.graph.starterpack.$type) {\n return (\n (await this.graph.getStarterPacks([uri], includeTakedowns)).get(uri) ??\n undefined\n )\n } else if (collection === app.bsky.feed.generator.$type) {\n return (\n (await this.feed.getFeedGens([uri], includeTakedowns)).get(uri) ??\n undefined\n )\n } else if (collection === app.bsky.feed.threadgate.$type) {\n return (\n (await this.feed.getThreadgateRecords([uri], includeTakedowns)).get(\n uri,\n ) ?? undefined\n )\n } else if (collection === app.bsky.feed.postgate.$type) {\n return (\n (await this.feed.getPostgateRecords([uri], includeTakedowns)).get(\n uri,\n ) ?? undefined\n )\n } else if (collection === app.bsky.labeler.service.$type) {\n if (parsed.rkey !== 'self') return\n const { did } = parsed\n return (\n (await this.label.getLabelers([did], includeTakedowns)).get(did) ??\n undefined\n )\n } else if (collection === chat.bsky.actor.declaration.$type) {\n if (parsed.rkey !== 'self') return\n return (\n (await this.actor.getChatDeclarations([uri], includeTakedowns)).get(\n uri,\n ) ?? undefined\n )\n } else if (collection === com.germnetwork.declaration.$type) {\n if (parsed.rkey !== 'self') return\n return (\n (await this.actor.getGermDeclarations([uri], includeTakedowns)).get(\n uri,\n ) ?? undefined\n )\n } else if (collection === app.bsky.notification.declaration.$type) {\n if (parsed.rkey !== 'self') return\n return (\n (\n await this.actor.getNotificationDeclarations([uri], includeTakedowns)\n ).get(uri) ?? undefined\n )\n } else if (collection === app.bsky.actor.status.$type) {\n if (parsed.rkey !== 'self') return\n return (\n (await this.actor.getStatus([uri], includeTakedowns)).get(uri) ??\n undefined\n )\n } else if (collection === app.bsky.actor.profile.$type) {\n const did = parsed.did\n const actor = (\n await this.actor.getActors([did], { includeTakedowns })\n ).get(did)\n if (!actor?.profile || !actor?.profileCid) return undefined\n const recordInfo: RecordInfo<ProfileRecord> = {\n record: actor.profile,\n cid: actor.profileCid,\n sortedAt: actor.sortedAt ?? new Date(0), // @NOTE will be present since profile record is present\n indexedAt: actor.indexedAt ?? new Date(0), // @NOTE will be present since profile record is present\n takedownRef: actor.profileTakedownRef,\n }\n\n return recordInfo\n }\n }\n\n async createContext<\n V extends Omit<HydrateCtxVals, 'features'> & {\n features?: ScopedFeatureGatesClient\n },\n >(vals: V): Promise<HydrateCtx & { viewer: V['viewer'] }> {\n // ensures we're only apply labelers that exist and are not taken down\n const labelers = vals.labelers.dids\n const nonServiceLabelers = labelers.filter(\n (did) => !this.serviceLabelers.has(did),\n )\n const labelerActors = await this.actor.getActors(nonServiceLabelers, {\n includeTakedowns: vals.includeTakedowns,\n })\n const availableDids = labelers.filter(\n (did) => this.serviceLabelers.has(did) || !!labelerActors.get(did),\n )\n const availableLabelers = {\n dids: availableDids,\n redact: vals.labelers.redact,\n }\n const includeDebugField =\n !!vals.viewer && this.config.debugFieldAllowedDids.has(vals.viewer)\n return new HydrateCtx({\n labelers: availableLabelers,\n viewer: vals.viewer,\n includeTakedowns: vals.includeTakedowns,\n include3pBlocks: vals.include3pBlocks,\n skipViewerBlocks: vals.skipViewerBlocks,\n includeDebugField,\n // create default anonymous scope\n features: vals.features || this.config.featureGatesClient.scope({}),\n })\n }\n\n async resolveUri(uriStr: AtUriString): Promise<AtUriString> {\n const uri = new AtUri(uriStr)\n const [did] = await this.actor.getDids([uri.host])\n if (!did) return uriStr\n uri.hostname = did\n return uri.toString()\n }\n}\n\n// service refs may look like \"did:plc:example#service_id\". we want to extract the did part \"did:plc:example\".\nconst serviceRefToDid = (serviceRef: string) => {\n const idx = serviceRef.indexOf('#')\n return (idx !== -1 ? serviceRef.slice(0, idx) : serviceRef) as DidString\n}\n\nconst listUrisFromProfileViewer = (\n item: ProfileViewerState | null,\n): AtUriString[] => {\n const listUris: AtUriString[] = []\n if (item?.mutedByList) {\n listUris.push(item.mutedByList)\n }\n if (item?.blockingByList) {\n listUris.push(item.blockingByList)\n }\n // blocked-by list does not appear in views, but will be used to evaluate the existence of a block between users.\n if (item?.blockedByList) {\n listUris.push(item.blockedByList)\n }\n return listUris\n}\n\nconst removeNonModListsFromProfileViewer = (\n item: ProfileViewerState | null,\n state: HydrationState,\n) => {\n if (!isModList(item?.mutedByList, state)) {\n delete item?.mutedByList\n }\n if (!isModList(item?.blockingByList, state)) {\n delete item?.blockingByList\n }\n if (!isModList(item?.blockedByList, state)) {\n delete item?.blockedByList\n }\n}\n\nconst isModList = (\n listUri: AtUriString | undefined,\n state: HydrationState,\n): boolean => {\n if (!listUri) return false\n const list = state.lists?.get(listUri)\n return list?.record.purpose === 'app.bsky.graph.defs#modlist'\n}\n\nconst labelSubjectsForDid = (dids: DidString[]) => {\n return [\n ...dids,\n ...dids.map((did) =>\n AtUri.make(did, app.bsky.actor.profile.$type, 'self').toString(),\n ),\n ...dids.map((did) =>\n AtUri.make(did, app.bsky.actor.status.$type, 'self').toString(),\n ),\n ]\n}\n\nconst rootUrisFromPosts = (posts: Posts): AtUriString[] => {\n const uris: AtUriString[] = []\n for (const item of posts.values()) {\n const rootUri = item && rootUriFromPost(item)\n if (rootUri) {\n uris.push(rootUri)\n }\n }\n return uris\n}\n\nconst rootUriFromPost = (post: Post): AtUriString | undefined => {\n return post.record.reply?.root.uri\n}\n\nconst nestedRecordUrisFromPosts = (\n posts: Posts,\n fromUris?: AtUriString[],\n): AtUriString[] => {\n const uris: AtUriString[] = []\n const postUris = fromUris ?? posts.keys()\n for (const uri of postUris) {\n const item = posts.get(uri)\n if (item) {\n uris.push(...nestedRecordUris(item.record))\n }\n }\n return uris\n}\n\nconst nestedRecordUris = (post: Post['record']): AtUriString[] => {\n const uris: AtUriString[] = []\n if (!post?.embed) return uris\n if (isRecordEmbedType(post.embed)) {\n uris.push(post.embed.record.uri)\n } else if (isRecordWithMediaType(post.embed)) {\n uris.push(post.embed.record.record.uri)\n }\n return uris\n}\n\nconst getListUrisFromThreadgates = (gates: Threadgates): AtUriString[] => {\n const uris: AtUriString[] = []\n for (const gate of gates.values()) {\n const listRules = gate?.record.allow?.filter(isListRuleType) ?? []\n for (const rule of listRules) {\n uris.push(rule.list)\n }\n }\n return uris\n}\n\nconst isBlocked = (blocks: BidirectionalBlocks, [a, b]: RelationshipPair) => {\n return blocks.get(a)?.get(b) ?? false\n}\n\nconst pairsToMap = <K extends string>(pairs: [a: K, b: K][]): Map<K, K[]> => {\n const map = new Map<K, K[]>()\n for (const [a, b] of pairs) {\n const list = map.get(a)\n if (list) list.push(b)\n else map.set(a, [b])\n }\n return map\n}\n\nexport const mergeStates = (\n stateA: HydrationState,\n stateB: HydrationState,\n): HydrationState => {\n assert(\n !stateA.ctx?.viewer ||\n !stateB.ctx?.viewer ||\n stateA.ctx?.viewer === stateB.ctx?.viewer,\n 'incompatible viewers',\n )\n return {\n ctx: stateA.ctx ?? stateB.ctx,\n actors: mergeMaps(stateA.actors, stateB.actors),\n profileAggs: mergeMaps(stateA.profileAggs, stateB.profileAggs),\n profileViewers: mergeMaps(stateA.profileViewers, stateB.profileViewers),\n posts: mergeMaps(stateA.posts, stateB.posts),\n postAggs: mergeMaps(stateA.postAggs, stateB.postAggs),\n postViewers: mergeMaps(stateA.postViewers, stateB.postViewers),\n threadContexts: mergeMaps(stateA.threadContexts, stateB.threadContexts),\n postBlocks: mergeMaps(stateA.postBlocks, stateB.postBlocks),\n reposts: mergeMaps(stateA.reposts, stateB.reposts),\n follows: mergeMaps(stateA.follows, stateB.follows),\n followBlocks: mergeMaps(stateA.followBlocks, stateB.followBlocks),\n threadgates: mergeMaps(stateA.threadgates, stateB.threadgates),\n postgates: mergeMaps(stateA.postgates, stateB.postgates),\n lists: mergeMaps(stateA.lists, stateB.lists),\n listAggs: mergeMaps(stateA.listAggs, stateB.listAggs),\n listMemberships: mergeNestedMaps(\n stateA.listMemberships,\n stateB.listMemberships,\n ),\n listViewers: mergeMaps(stateA.listViewers, stateB.listViewers),\n listItems: mergeMaps(stateA.listItems, stateB.listItems),\n likes: mergeMaps(stateA.likes, stateB.likes),\n likeBlocks: mergeMaps(stateA.likeBlocks, stateB.likeBlocks),\n labels: mergeMaps(stateA.labels, stateB.labels),\n feedgens: mergeMaps(stateA.feedgens, stateB.feedgens),\n feedgenAggs: mergeMaps(stateA.feedgenAggs, stateB.feedgenAggs),\n feedgenViewers: mergeMaps(stateA.feedgenViewers, stateB.feedgenViewers),\n starterPacks: mergeMaps(stateA.starterPacks, stateB.starterPacks),\n starterPackAggs: mergeMaps(stateA.starterPackAggs, stateB.starterPackAggs),\n labelers: mergeMaps(stateA.labelers, stateB.labelers),\n labelerAggs: mergeMaps(stateA.labelerAggs, stateB.labelerAggs),\n labelerViewers: mergeMaps(stateA.labelerViewers, stateB.labelerViewers),\n knownFollowers: mergeMaps(stateA.knownFollowers, stateB.knownFollowers),\n activitySubscriptions: mergeMaps(\n stateA.activitySubscriptions,\n stateB.activitySubscriptions,\n ),\n bidirectionalBlocks: mergeNestedMaps(\n stateA.bidirectionalBlocks,\n stateB.bidirectionalBlocks,\n ),\n verifications: mergeMaps(stateA.verifications, stateB.verifications),\n bookmarks: mergeNestedMaps(stateA.bookmarks, stateB.bookmarks),\n }\n}\n\nexport const mergeManyStates = (...states: HydrationState[]) => {\n return states.reduce(mergeStates, {} as HydrationState)\n}\n\nconst actionTakedownLabels = (\n keys: UriString[],\n hydrationMap: HydrationMap<UriString, unknown>,\n labels: Labels,\n) => {\n for (const key of keys) {\n if (labels.get(key)?.isTakendown) {\n hydrationMap.set(key, null)\n }\n }\n}\n\nconst uriToRef = (uri: AtUriString): ItemRef => {\n return { uri }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"hydrator.js","sourceRoot":"","sources":["../../src/hydration/hydrator.ts"],"names":[],"mappings":"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","sourcesContent":["import assert from 'node:assert'\nimport { mapDefined } from '@atproto/common'\nimport { AtUri, AtUriString, DidString, UriString } from '@atproto/syntax'\nimport { DataPlaneClient } from '../data-plane/client'\nimport { FeatureGatesClient, ScopedFeatureGatesClient } from '../feature-gates'\nimport { app, chat, com } from '../lexicons/index.js'\nimport { hydrationLogger } from '../logger'\nimport {\n Bookmark as BookmarkLex,\n BookmarkInfo,\n Notification,\n RecordRef,\n} from '../proto/bsky_pb'\nimport { ParsedLabelers } from '../util'\nimport { uriToDid, uriToDid as didFromUri } from '../util/uris'\nimport {\n ProfileRecord,\n isListRuleType,\n isRecordEmbedType,\n isRecordWithMediaType,\n} from '../views/types.js'\nimport {\n ActivitySubscriptionStates,\n ActorHydrator,\n Actors,\n KnownFollowersStates,\n ProfileAggs,\n ProfileViewerState,\n ProfileViewerStates,\n} from './actor'\nimport {\n FeedGenAggs,\n FeedGenViewerStates,\n FeedGens,\n FeedHydrator,\n FeedItem,\n type GetPostsHydrationOptions,\n Likes,\n Post,\n PostAggs,\n PostViewerStates,\n Postgates,\n Posts,\n Reposts,\n ThreadContexts,\n ThreadRef,\n Threadgates,\n} from './feed'\nimport {\n BlockEntry,\n Follows,\n GraphHydrator,\n ListAggs,\n ListItems,\n ListMembershipState,\n ListMembershipStates,\n ListViewerStates,\n Lists,\n RelationshipPair,\n StarterPackAggs,\n StarterPacks,\n Verifications,\n} from './graph'\nimport {\n LabelHydrator,\n LabelerAggs,\n LabelerViewerStates,\n Labelers,\n Labels,\n} from './label'\nimport {\n HydrationMap,\n ItemRef,\n RecordInfo,\n mergeManyMaps,\n mergeMaps,\n mergeNestedMaps,\n parseDate,\n urisByCollection,\n} from './util'\n\nexport class HydrateCtx {\n labelers = this.vals.labelers\n viewer = this.vals.viewer !== null ? serviceRefToDid(this.vals.viewer) : null\n includeTakedowns = this.vals.includeTakedowns\n overrideIncludeTakedownsForActor = this.vals.overrideIncludeTakedownsForActor\n include3pBlocks = this.vals.include3pBlocks\n skipViewerBlocks = this.vals.skipViewerBlocks\n includeDebugField = this.vals.includeDebugField\n features = this.vals.features\n constructor(private vals: HydrateCtxVals) {}\n // Convenience with use with dataplane.getActors cache control\n get skipCacheForViewer() {\n if (!this.viewer) return\n return [this.viewer]\n }\n copy<V extends Partial<HydrateCtxVals>>(vals?: V): HydrateCtx & V {\n return new HydrateCtx({ ...this.vals, ...vals }) as HydrateCtx & V\n }\n}\n\nexport type HydrateCtxWithViewer = HydrateCtx & { viewer: string }\n\nexport type HydrateCtxVals = {\n labelers: ParsedLabelers\n viewer: DidString | null\n includeTakedowns?: boolean\n overrideIncludeTakedownsForActor?: boolean\n include3pBlocks?: boolean\n skipViewerBlocks?: boolean\n includeDebugField?: boolean\n features: ScopedFeatureGatesClient\n}\n\nexport type HydrationState = {\n ctx?: HydrateCtx\n actors?: Actors\n profileViewers?: ProfileViewerStates\n profileAggs?: ProfileAggs\n posts?: Posts\n postAggs?: PostAggs\n postViewers?: PostViewerStates\n threadContexts?: ThreadContexts\n postBlocks?: PostBlocks\n reposts?: Reposts\n follows?: Follows\n followBlocks?: FollowBlocks\n threadgates?: Threadgates\n postgates?: Postgates\n lists?: Lists\n listAggs?: ListAggs\n listMemberships?: ListMembershipStates\n listViewers?: ListViewerStates\n listItems?: ListItems\n likes?: Likes\n likeBlocks?: LikeBlocks\n labels?: Labels\n feedgens?: FeedGens\n feedgenViewers?: FeedGenViewerStates\n feedgenAggs?: FeedGenAggs\n starterPacks?: StarterPacks\n starterPackAggs?: StarterPackAggs\n labelers?: Labelers\n labelerViewers?: LabelerViewerStates\n labelerAggs?: LabelerAggs\n knownFollowers?: KnownFollowersStates\n activitySubscriptions?: ActivitySubscriptionStates\n bidirectionalBlocks?: BidirectionalBlocks\n verifications?: Verifications\n bookmarks?: Bookmarks\n}\n\nexport type PostBlock = { embed: boolean; parent: boolean; root: boolean }\nexport type PostBlocks = HydrationMap<AtUriString, PostBlock>\ntype PostBlockPairs = {\n embed?: RelationshipPair\n parent?: RelationshipPair\n root?: RelationshipPair\n}\n\nexport type LikeBlock = boolean\nexport type LikeBlocks = HydrationMap<AtUriString, LikeBlock>\n\nexport type FollowBlock = boolean\nexport type FollowBlocks = HydrationMap<AtUriString, FollowBlock>\n\nexport type BidirectionalBlocks = HydrationMap<\n DidString,\n HydrationMap<DidString, boolean>\n>\n\nexport type Bookmark = {\n ref?: { key: string }\n subjectUri: string\n subjectCid: string\n indexedAt?: Date\n}\n\n// actor DID -> stash key -> bookmark\nexport type Bookmarks = HydrationMap<DidString, HydrationMap<string, Bookmark>>\n\n/**\n * Additional config passed from `ServerConfig` to the `Hydrator` instance.\n * Values within this config object may be passed to other sub-hydrators.\n */\nexport type HydratorConfig = {\n debugFieldAllowedDids: Set<string>\n featureGatesClient: FeatureGatesClient\n}\n\nexport class Hydrator {\n actor: ActorHydrator\n feed: FeedHydrator\n graph: GraphHydrator\n label: LabelHydrator\n serviceLabelers: Set<string>\n config: HydratorConfig\n\n constructor(\n public dataplane: DataPlaneClient,\n serviceLabelers: readonly DidString[] = [],\n config: HydratorConfig,\n ) {\n this.config = config\n this.actor = new ActorHydrator(dataplane)\n this.feed = new FeedHydrator(dataplane)\n this.graph = new GraphHydrator(dataplane)\n this.label = new LabelHydrator(dataplane)\n this.serviceLabelers = new Set(serviceLabelers)\n }\n\n // app.bsky.actor.defs#profileView\n // - profile viewer\n // - list basic\n // Note: builds on the naive profile viewer hydrator and removes references to lists that have been deleted\n async hydrateProfileViewers(\n dids: DidString[],\n ctx: HydrateCtx,\n ): Promise<HydrationState> {\n const viewer = ctx.viewer\n if (!viewer) return {}\n const profileViewers = await this.actor.getProfileViewerStatesNaive(\n dids,\n viewer,\n )\n const listUris: AtUriString[] = []\n profileViewers.forEach((item) => {\n listUris.push(...listUrisFromProfileViewer(item))\n })\n const listState = await this.hydrateListsBasic(listUris, ctx)\n // if a list no longer exists or is not a mod list, then remove from viewer state\n profileViewers.forEach((item) => {\n removeNonModListsFromProfileViewer(item, listState)\n })\n\n return mergeStates(listState, {\n profileViewers,\n ctx,\n })\n }\n\n // app.bsky.actor.defs#profileView\n // - profile\n // - list basic\n async hydrateProfiles(\n dids: DidString[],\n ctx: HydrateCtx,\n ): Promise<HydrationState> {\n /**\n * Special case here, we want to include takedowns in special cases, like\n * `getProfile`, since we throw client-facing errors later in the pipeline.\n */\n const includeTakedowns =\n ctx.includeTakedowns || ctx.overrideIncludeTakedownsForActor\n const [actors, labels, profileViewersState] = await Promise.all([\n this.actor.getActors(dids, {\n includeTakedowns,\n skipCacheForDids: ctx.skipCacheForViewer,\n }),\n this.label.getLabelsForSubjects(labelSubjectsForDid(dids), ctx.labelers),\n this.hydrateProfileViewers(dids, ctx),\n ])\n if (!includeTakedowns) {\n actionTakedownLabels(dids, actors, labels)\n }\n return mergeStates(profileViewersState ?? {}, {\n actors,\n labels,\n ctx,\n })\n }\n\n // app.bsky.actor.defs#profileViewBasic\n // - profile basic\n // - profile\n // - list basic\n async hydrateProfilesBasic(\n dids: DidString[],\n ctx: HydrateCtx,\n ): Promise<HydrationState> {\n return this.hydrateProfiles(dids, ctx)\n }\n\n // app.bsky.actor.defs#profileViewDetailed\n // - profile detailed\n // - profile\n // - list basic\n // - starterpack\n // - profile\n // - list basic\n // - labels\n async hydrateProfilesDetailed(\n dids: DidString[],\n ctx: HydrateCtx,\n ): Promise<HydrationState> {\n let knownFollowers: KnownFollowersStates = new HydrationMap()\n try {\n knownFollowers = await this.actor.getKnownFollowers(dids, ctx.viewer)\n } catch (err) {\n hydrationLogger.error(\n { err },\n 'Failed to get known followers for profiles',\n )\n }\n\n let activitySubscriptions: ActivitySubscriptionStates = new HydrationMap()\n try {\n activitySubscriptions = await this.actor.getActivitySubscriptions(\n dids,\n ctx.viewer,\n )\n } catch (err) {\n hydrationLogger.error(\n { err },\n 'Failed to get activity subscriptions state for profiles',\n )\n }\n\n const subjectsToKnownFollowersMap = new Map<DidString, DidString[]>()\n\n for (const did of knownFollowers.keys()) {\n const known = knownFollowers.get(did)\n if (known) subjectsToKnownFollowersMap.set(did, known.followers)\n }\n\n const allKnownFollowerDids = Array.from(knownFollowers.values())\n .filter(Boolean)\n .flatMap((f) => f!.followers)\n const allDids = Array.from(new Set(dids.concat(allKnownFollowerDids)))\n const [state, profileAggs, bidirectionalBlocks] = await Promise.all([\n this.hydrateProfiles(allDids, ctx),\n this.actor.getProfileAggregates(dids),\n this.hydrateBidirectionalBlocks(subjectsToKnownFollowersMap, ctx),\n ])\n const starterPackUriSet = new Set<AtUriString>()\n state.actors?.forEach((actor) => {\n if (actor?.profile?.joinedViaStarterPack) {\n starterPackUriSet.add(actor?.profile?.joinedViaStarterPack?.uri)\n }\n })\n const starterPackState = await this.hydrateStarterPacksBasic(\n [...starterPackUriSet],\n ctx,\n )\n return mergeManyStates(state, starterPackState, {\n profileAggs,\n knownFollowers,\n activitySubscriptions,\n ctx,\n bidirectionalBlocks,\n })\n }\n\n // app.bsky.graph.defs#listView\n // - list\n // - profile basic\n async hydrateLists(\n uris: AtUriString[],\n ctx: HydrateCtx,\n ): Promise<HydrationState> {\n const [listsState, profilesState] = await Promise.all([\n this.hydrateListsBasic(uris, ctx, {\n skipAuthors: true, // handled via author profile hydration\n }),\n this.hydrateProfilesBasic(uris.map(didFromUri), ctx),\n ])\n return mergeStates(listsState, profilesState)\n }\n\n // app.bsky.graph.defs#listViewBasic\n // - list basic\n async hydrateListsBasic(\n uris: AtUriString[],\n ctx: HydrateCtx,\n opts?: { skipAuthors: boolean },\n ): Promise<HydrationState> {\n const includeAuthorDids = opts?.skipAuthors ? [] : uris.map(uriToDid)\n const [lists, listAggs, listViewers, labels, actors] = await Promise.all([\n this.graph.getLists(uris, ctx.includeTakedowns),\n this.graph.getListAggregates(uris.map((uri) => ({ uri }))),\n ctx.viewer ? this.graph.getListViewerStates(uris, ctx.viewer) : undefined,\n this.label.getLabelsForSubjects(\n [...uris, ...includeAuthorDids],\n ctx.labelers,\n ),\n this.actor.getActors(includeAuthorDids, {\n includeTakedowns: ctx.includeTakedowns,\n skipCacheForDids: ctx.skipCacheForViewer,\n }),\n ])\n\n if (!ctx.includeTakedowns) {\n actionTakedownLabels(uris, lists, labels)\n actionTakedownLabels(includeAuthorDids, actors, labels)\n }\n\n return { lists, listAggs, listViewers, labels, actors, ctx }\n }\n\n // app.bsky.graph.defs#listItemView\n // - list item\n // - profile\n // - list basic\n async hydrateListItems(\n uris: AtUriString[],\n ctx: HydrateCtx,\n ): Promise<HydrationState> {\n const listItems = await this.graph.getListItems(uris)\n const dids: DidString[] = []\n listItems.forEach((item) => {\n if (item) {\n dids.push(item.record.subject)\n }\n })\n const profileState = await this.hydrateProfiles(dids, ctx)\n return mergeStates(profileState, { listItems, ctx })\n }\n\n async hydrateListsMembership(\n uris: AtUriString[],\n did: DidString,\n ctx: HydrateCtx,\n ): Promise<HydrationState> {\n const [\n actorsHydrationState,\n listsHydrationState,\n { listitemUris: listItemUris },\n ] = await Promise.all([\n this.hydrateProfiles([did], ctx),\n this.hydrateLists(uris, ctx),\n this.dataplane.getListMembership({\n actorDid: did,\n listUris: uris,\n }),\n ])\n\n // mapping uri -> did -> { actorListItemUri }\n const listMemberships = new HydrationMap(\n uris.map((uri, i) => {\n const listItemUri = listItemUris[i] as '' | AtUriString\n return [\n uri,\n new HydrationMap<DidString, ListMembershipState>([\n listItemUri\n ? [did, { actorListItemUri: listItemUri }]\n : [did, null],\n ]),\n ]\n }),\n )\n\n return mergeManyStates(actorsHydrationState, listsHydrationState, {\n listMemberships,\n ctx,\n })\n }\n\n // app.bsky.feed.defs#postView\n // - post\n // - profile\n // - list basic\n // - list\n // - profile\n // - list basic\n // - feedgen\n // - profile\n // - list basic\n // - mod service\n // - profile\n // - list basic\n async hydratePosts(\n refs: { uri: AtUriString }[],\n ctx: HydrateCtx,\n state: HydrationState = {},\n options: Pick<GetPostsHydrationOptions, 'processDynamicTagsForView'> = {},\n ): Promise<HydrationState> {\n const uris = refs.map((ref) => ref.uri)\n\n state.posts ??= new HydrationMap()\n const addPostsToHydrationState = (posts: Posts) => {\n posts.forEach((post, uri) => {\n state.posts ??= new HydrationMap()\n state.posts.set(uri, post)\n })\n }\n\n // layer 0: the posts in the thread\n const postsLayer0 = await this.feed.getPosts(\n uris,\n ctx.includeTakedowns,\n state.posts,\n ctx.viewer,\n {\n processDynamicTagsForView: options.processDynamicTagsForView,\n },\n )\n addPostsToHydrationState(postsLayer0)\n\n const additionalRootUris = rootUrisFromPosts(postsLayer0) // supports computing threadgates\n const threadRootUris = new Set<AtUriString>()\n for (const [uri, post] of postsLayer0) {\n if (post) {\n threadRootUris.add(rootUriFromPost(post) ?? uri)\n }\n }\n const postUrisWithThreadgates = new Set<AtUriString>()\n for (const uri of threadRootUris) {\n const post = postsLayer0.get(uri)\n /*\n * Checking `post.hasThreadGate` is an optimization, which tells us that\n * this post has a threadgate record associated with it. `hydratePosts`\n * always hydrates root posts via `additionalRootUris`, so we try to\n * check the optimization flag were possible. If the post is unavailable\n * for whatever reason, we fall back to requesting threadgate records\n * that may not exist.\n */\n if (!post || post.hasThreadGate) {\n postUrisWithThreadgates.add(uri)\n }\n }\n\n // layer 1: first level embeds plus thread roots we haven't fetched yet\n const urisLayer1 = nestedRecordUrisFromPosts(postsLayer0)\n const urisLayer1ByCollection = urisByCollection(urisLayer1)\n const embedPostUrisLayer1 =\n urisLayer1ByCollection.get(app.bsky.feed.post.$type) ?? []\n const postsLayer1 = await this.feed.getPosts(\n [...embedPostUrisLayer1, ...additionalRootUris],\n ctx.includeTakedowns,\n state.posts,\n )\n addPostsToHydrationState(postsLayer1)\n\n // layer 2: second level embeds, ignoring any additional root uris we mixed-in to the previous layer\n const urisLayer2 = nestedRecordUrisFromPosts(\n postsLayer1,\n embedPostUrisLayer1,\n )\n const urisLayer2ByCollection = urisByCollection(urisLayer2)\n const embedPostUrisLayer2 =\n urisLayer2ByCollection.get(app.bsky.feed.post.$type) ?? []\n\n const [postsLayer2, threadgates] = await Promise.all([\n this.feed.getPosts(\n embedPostUrisLayer2,\n ctx.includeTakedowns,\n state.posts,\n ),\n this.feed.getThreadgatesForPosts([...postUrisWithThreadgates.values()]),\n ])\n addPostsToHydrationState(postsLayer2)\n\n // collect list/feedgen embeds, lists in threadgates, post record hydration\n const threadgateListUris = getListUrisFromThreadgates(threadgates)\n const nestedListUris = [\n ...(urisLayer1ByCollection.get(app.bsky.graph.list.$type) ?? []),\n ...(urisLayer2ByCollection.get(app.bsky.graph.list.$type) ?? []),\n ]\n const nestedFeedGenUris = [\n ...(urisLayer1ByCollection.get(app.bsky.feed.generator.$type) ?? []),\n ...(urisLayer2ByCollection.get(app.bsky.feed.generator.$type) ?? []),\n ]\n const nestedLabelerDids = [\n ...(urisLayer1ByCollection.get(app.bsky.labeler.service.$type) ?? []),\n ...(urisLayer2ByCollection.get(app.bsky.labeler.service.$type) ?? []),\n ].map(didFromUri)\n const nestedStarterPackUris = [\n ...(urisLayer1ByCollection.get(app.bsky.graph.starterpack.$type) ?? []),\n ...(urisLayer2ByCollection.get(app.bsky.graph.starterpack.$type) ?? []),\n ]\n const posts =\n mergeManyMaps(postsLayer0, postsLayer1, postsLayer2) ?? postsLayer0\n const allPostUris = [...posts.keys()]\n const allRefs = [\n ...refs,\n ...embedPostUrisLayer1.map(uriToRef), // supports aggregates on embed #viewRecords\n ...embedPostUrisLayer2.map(uriToRef),\n ]\n const threadRefs = allRefs.map((ref) => ({\n ...ref,\n threadRoot: posts.get(ref.uri)?.record.reply?.root.uri ?? ref.uri,\n }))\n const postUrisWithPostgates = new Set<AtUriString>()\n for (const [uri, post] of posts) {\n if (post && post.hasPostGate) {\n postUrisWithPostgates.add(uri)\n }\n }\n\n const [\n postAggs,\n postViewers,\n labels,\n postBlocks,\n profileState,\n listState,\n feedGenState,\n labelerState,\n starterPackState,\n postgates,\n ] = await Promise.all([\n this.feed.getPostAggregates(allRefs, ctx.viewer),\n ctx.viewer\n ? this.feed.getPostViewerStates(threadRefs, ctx.viewer)\n : undefined,\n this.label.getLabelsForSubjects(allPostUris, ctx.labelers),\n this.hydratePostBlocks(posts, ctx),\n this.hydrateProfiles(allPostUris.map(didFromUri), ctx),\n this.hydrateLists([...nestedListUris, ...threadgateListUris], ctx),\n this.hydrateFeedGens(nestedFeedGenUris, ctx),\n this.hydrateLabelers(nestedLabelerDids, ctx),\n this.hydrateStarterPacksBasic(nestedStarterPackUris, ctx),\n this.feed.getPostgatesForPosts([...postUrisWithPostgates.values()]),\n ])\n if (!ctx.includeTakedowns) {\n actionTakedownLabels(allPostUris, posts, labels)\n }\n // combine all hydration state\n return mergeManyStates(\n profileState,\n listState,\n feedGenState,\n labelerState,\n starterPackState,\n {\n posts,\n postAggs,\n postViewers,\n postBlocks,\n labels,\n threadgates,\n postgates,\n ctx,\n },\n )\n }\n\n private async hydratePostBlocks(\n posts: Posts,\n ctx: HydrateCtx,\n ): Promise<PostBlocks> {\n const postBlocks: PostBlocks = new HydrationMap()\n const postBlocksPairs = new Map<AtUriString, PostBlockPairs>()\n const relationships: RelationshipPair[] = []\n for (const [uri, item] of posts) {\n if (!item) continue\n const post = item.record\n const creator = didFromUri(uri)\n const postBlockPairs: PostBlockPairs = {}\n postBlocksPairs.set(uri, postBlockPairs)\n // 3p block for replies\n const parentUri = post.reply?.parent.uri\n const parentDid = parentUri && didFromUri(parentUri)\n if (parentDid && parentDid !== creator) {\n const pair: RelationshipPair = [creator, parentDid]\n relationships.push(pair)\n postBlockPairs.parent = pair\n }\n const rootUri = post.reply?.root.uri\n const rootDid = rootUri && didFromUri(rootUri)\n if (rootDid && rootDid !== creator) {\n const pair: RelationshipPair = [creator, rootDid]\n relationships.push(pair)\n postBlockPairs.root = pair\n }\n // 3p block for record embeds\n for (const embedUri of nestedRecordUris(post)) {\n const pair: RelationshipPair = [creator, didFromUri(embedUri)]\n relationships.push(pair)\n postBlockPairs.embed = pair\n }\n }\n // replace embed/parent/root pairs with block state\n const blocks = await this.hydrateBidirectionalBlocks(\n pairsToMap(relationships),\n ctx,\n )\n for (const [uri, { embed, parent, root }] of postBlocksPairs) {\n postBlocks.set(uri, {\n embed: !!embed && !!isBlocked(blocks, embed),\n parent: !!parent && !!isBlocked(blocks, parent),\n root: !!root && !!isBlocked(blocks, root),\n })\n }\n return postBlocks\n }\n\n // app.bsky.feed.defs#feedViewPost\n // - post (+ replies w/ reply parent author)\n // - profile\n // - list basic\n // - list\n // - profile\n // - list basic\n // - feedgen\n // - profile\n // - list basic\n // - repost\n // - profile\n // - list basic\n // - post\n // - ...\n async hydrateFeedItems(\n items: FeedItem[],\n ctx: HydrateCtx,\n ): Promise<HydrationState> {\n // get posts, collect reply refs\n const posts = await this.feed.getPosts(\n items.map((item) => item.post.uri),\n ctx.includeTakedowns,\n )\n const rootUris: AtUriString[] = []\n const parentUris: AtUriString[] = []\n const postAndReplyRefs: ItemRef[] = []\n posts.forEach((post, uri) => {\n if (!post) return\n postAndReplyRefs.push({ uri, cid: post.cid })\n if (post.record.reply) {\n rootUris.push(post.record.reply.root.uri)\n parentUris.push(post.record.reply.parent.uri)\n postAndReplyRefs.push(post.record.reply.root, post.record.reply.parent)\n }\n })\n // get replies, collect reply parent authors\n const replies = await this.feed.getPosts(\n [...rootUris, ...parentUris],\n ctx.includeTakedowns,\n )\n const replyParentAuthors: DidString[] = []\n parentUris.forEach((uri) => {\n const parent = replies.get(uri)\n if (!parent?.record.reply) return\n replyParentAuthors.push(didFromUri(parent.record.reply.parent.uri))\n })\n // hydrate state for all posts, reposts, authors of reposts + reply parent authors\n const repostUris = mapDefined(items, (item) => item.repost?.uri)\n const [postState, repostProfileState, reposts] = await Promise.all([\n this.hydratePosts(postAndReplyRefs, ctx, {\n posts: posts.merge(replies), // avoids refetches of posts\n }),\n this.hydrateProfiles(\n [...repostUris.map(didFromUri), ...replyParentAuthors],\n ctx,\n ),\n this.feed.getReposts(repostUris, ctx.includeTakedowns),\n ])\n return mergeManyStates(postState, repostProfileState, {\n reposts,\n ctx,\n })\n }\n\n // app.bsky.feed.defs#threadViewPost\n // - post\n // - profile\n // - list basic\n // - list\n // - profile\n // - list basic\n // - feedgen\n // - profile\n // - list basic\n async hydrateThreadPosts(\n refs: ItemRef[],\n ctx: HydrateCtx,\n ): Promise<HydrationState> {\n const postsState = await this.hydratePosts(refs, ctx, undefined, {\n processDynamicTagsForView: ctx.features.checkGate(\n ctx.features.Gate.ThreadsReplyRankingExplorationEnable,\n )\n ? 'thread'\n : undefined,\n })\n\n const threadRefs: ThreadRef[] = []\n\n if (postsState.posts) {\n for (const [uri, post] of postsState.posts.entries()) {\n if (post) {\n threadRefs.push({\n uri,\n cid: post.cid,\n threadRoot: post.record.reply?.root.uri ?? uri,\n })\n }\n }\n }\n\n const threadContexts = await this.feed.getThreadContexts(threadRefs)\n\n return mergeStates(postsState, { threadContexts })\n }\n\n // app.bsky.feed.defs#generatorView\n // - feedgen\n // - profile\n // - list basic\n async hydrateFeedGens(\n uris: AtUriString[], // @TODO any way to get refs here?\n ctx: HydrateCtx,\n ): Promise<HydrationState> {\n const [feedgens, feedgenAggs, feedgenViewers, profileState, labels] =\n await Promise.all([\n this.feed.getFeedGens(uris, ctx.includeTakedowns),\n this.feed.getFeedGenAggregates(\n uris.map((uri) => ({ uri })),\n ctx.viewer,\n ),\n ctx.viewer\n ? this.feed.getFeedGenViewerStates(uris, ctx.viewer)\n : undefined,\n this.hydrateProfiles(uris.map(didFromUri), ctx),\n this.label.getLabelsForSubjects(uris, ctx.labelers),\n ])\n if (!ctx.includeTakedowns) {\n actionTakedownLabels(uris, feedgens, labels)\n }\n return mergeStates(profileState, {\n feedgens,\n feedgenAggs,\n feedgenViewers,\n labels,\n ctx,\n })\n }\n\n // app.bsky.graph.defs#starterPackViewBasic\n // - starterpack\n // - profile\n // - list basic\n // - labels\n async hydrateStarterPacksBasic(\n uris: AtUriString[],\n ctx: HydrateCtx,\n ): Promise<HydrationState> {\n const [starterPacks, starterPackAggs, profileState, labels] =\n await Promise.all([\n this.graph.getStarterPacks(uris, ctx.includeTakedowns),\n this.graph.getStarterPackAggregates(uris.map((uri) => ({ uri }))),\n this.hydrateProfiles(uris.map(didFromUri), ctx),\n this.label.getLabelsForSubjects(uris, ctx.labelers),\n ])\n if (!ctx.includeTakedowns) {\n actionTakedownLabels(uris, starterPacks, labels)\n }\n return mergeStates(profileState, {\n starterPacks,\n starterPackAggs,\n labels,\n ctx,\n })\n }\n\n // app.bsky.graph.defs#starterPackView\n // - starterpack\n // - profile\n // - list basic\n // - feedgen\n // - profile\n // - list basic\n // - list basic\n // - list item\n // - profile\n // - list basic\n // - labels\n async hydrateStarterPacks(\n uris: AtUriString[],\n ctx: HydrateCtx,\n ): Promise<HydrationState> {\n const starterPackState = await this.hydrateStarterPacksBasic(uris, ctx)\n // gather feed and list uris\n const feedUriSet = new Set<AtUriString>()\n const listUriSet = new Set<AtUriString>()\n starterPackState.starterPacks?.forEach((sp) => {\n sp?.record.feeds?.forEach((feed) => feedUriSet.add(feed.uri))\n if (sp?.record.list) {\n listUriSet.add(sp?.record.list)\n }\n })\n const feedUris = [...feedUriSet]\n const listUris = [...listUriSet]\n // hydrate feeds, lists, and their members\n const [feedGenState, listState, ...listsMembers] = await Promise.all([\n this.hydrateFeedGens(feedUris, ctx),\n this.hydrateLists(listUris, ctx),\n ...listUris.map((uri) =>\n this.dataplane.getListMembers({ listUri: uri, limit: 50 }),\n ),\n ])\n // collect list info\n const listMembersByList = new Map(\n listUris.map((uri, i) => [uri, listsMembers[i]]),\n )\n const listMemberDids = listsMembers.flatMap((lm) =>\n lm.listitems.map((li) => li.did as DidString),\n )\n const listCreatorMemberPairs = [...listMembersByList.entries()].flatMap(\n ([listUri, members]) => {\n const creator = didFromUri(listUri)\n return members.listitems.map(\n (li): RelationshipPair => [creator, li.did as DidString],\n )\n },\n )\n const blocks = await this.hydrateBidirectionalBlocks(\n pairsToMap(listCreatorMemberPairs),\n ctx,\n )\n // sample top list items per starter pack based on their follows\n const listMemberAggs = await this.actor.getProfileAggregates(listMemberDids)\n const listItemUris: AtUriString[] = []\n uris.forEach((uri) => {\n const sp = starterPackState.starterPacks?.get(uri)\n const agg = starterPackState.starterPackAggs?.get(uri)\n if (!sp?.record.list || !agg) return\n const members = listMembersByList.get(sp.record.list)\n if (!members) return\n const creator = didFromUri(sp.record.list)\n // update aggregation with list items for top 12 most followed members\n agg.listItemSampleUris = [\n ...members.listitems.filter(\n (li) =>\n ctx.viewer === creator ||\n !isBlocked(blocks, [creator, li.did as DidString]),\n ),\n ]\n .sort((li1, li2) => {\n const score1 =\n listMemberAggs.get(li1.did as DidString)?.followers ?? 0\n const score2 =\n listMemberAggs.get(li2.did as DidString)?.followers ?? 0\n return score2 - score1\n })\n .slice(0, 12)\n .map((li) => li.uri as AtUriString)\n listItemUris.push(...agg.listItemSampleUris)\n })\n // hydrate sampled list items\n const listItemState = await this.hydrateListItems(listItemUris, ctx)\n return mergeManyStates(\n starterPackState,\n feedGenState,\n listState,\n listItemState,\n )\n }\n\n // app.bsky.feed.getLikes#like\n // - like\n // - profile\n // - list basic\n async hydrateLikes(\n authorDid: DidString,\n uris: AtUriString[],\n ctx: HydrateCtx,\n ): Promise<HydrationState> {\n const [likes, profileState] = await Promise.all([\n this.feed.getLikes(uris, ctx.includeTakedowns),\n this.hydrateProfiles(uris.map(didFromUri), ctx),\n ])\n\n const pairs: RelationshipPair[] = []\n for (const [uri, like] of likes) {\n if (like) {\n pairs.push([authorDid, didFromUri(uri)])\n }\n }\n const blocks = await this.hydrateBidirectionalBlocks(pairsToMap(pairs), ctx)\n const likeBlocks = new HydrationMap<AtUriString, LikeBlock>()\n for (const [uri, like] of likes) {\n if (like) {\n likeBlocks.set(uri, isBlocked(blocks, [authorDid, didFromUri(uri)]))\n } else {\n likeBlocks.set(uri, null)\n }\n }\n\n return mergeStates(profileState, { likes, likeBlocks, ctx })\n }\n\n // app.bsky.feed.getRepostedBy#repostedBy\n // - repost\n // - profile\n // - list basic\n async hydrateReposts(uris: AtUriString[], ctx: HydrateCtx) {\n const [reposts, profileState] = await Promise.all([\n this.feed.getReposts(uris, ctx.includeTakedowns),\n this.hydrateProfiles(uris.map(didFromUri), ctx),\n ])\n return mergeStates(profileState, { reposts, ctx })\n }\n\n // app.bsky.notification.listNotifications#notification\n // - notification\n // - profile\n // - list basic\n async hydrateNotifications(\n notifs: Notification[],\n ctx: HydrateCtx,\n ): Promise<HydrationState> {\n const uris = notifs.map((notif) => notif.uri as AtUriString)\n const collections = urisByCollection(uris)\n const postUris = collections.get(app.bsky.feed.post.$type) ?? []\n const likeUris = collections.get(app.bsky.feed.like.$type) ?? []\n const repostUris = collections.get(app.bsky.feed.repost.$type) ?? []\n const followUris = collections.get(app.bsky.graph.follow.$type) ?? []\n const verificationUris =\n collections.get(app.bsky.graph.verification.$type) ?? []\n const [\n posts,\n likes,\n reposts,\n follows,\n verifications,\n labels,\n profileState,\n ] = await Promise.all([\n this.feed.getPosts(postUris), // reason: mention, reply, quote\n this.feed.getLikes(likeUris), // reason: like\n this.feed.getReposts(repostUris), // reason: repost\n this.graph.getFollows(followUris), // reason: follow\n this.graph.getVerifications(verificationUris), // reason: verified\n this.label.getLabelsForSubjects(uris, ctx.labelers),\n this.hydrateProfiles(uris.map(didFromUri), ctx),\n ])\n const viewerRootPostUris = new Set<AtUriString>()\n for (const notif of notifs) {\n if (notif.reason === 'reply') {\n const post = posts.get(notif.uri as AtUriString)\n if (post) {\n const rootUri = post.record.reply?.root.uri\n if (rootUri && didFromUri(rootUri) === ctx.viewer) {\n viewerRootPostUris.add(rootUri)\n }\n }\n }\n }\n const threadgates = await this.feed.getThreadgatesForPosts([\n ...viewerRootPostUris.values(),\n ])\n actionTakedownLabels(postUris, posts, labels)\n return mergeStates(profileState, {\n posts,\n likes,\n reposts,\n follows,\n verifications,\n labels,\n threadgates,\n ctx,\n })\n }\n\n async hydrateBookmarks(\n bookmarkInfos: BookmarkInfo[],\n ctx: HydrateCtx,\n ): Promise<HydrationState> {\n const viewer = ctx.viewer\n if (!viewer) return {}\n const bookmarksRes = await this.dataplane.getBookmarksByActorAndSubjects({\n actorDid: viewer,\n uris: bookmarkInfos.map((b) => b.subject),\n })\n\n type BookmarkWithRef = BookmarkLex & { ref: RecordRef }\n const bookmarks: BookmarkWithRef[] = bookmarksRes.bookmarks.filter(\n (bookmark): bookmark is BookmarkWithRef => !!bookmark.ref?.key,\n )\n\n // mapping DID -> stash key -> bookmark\n const bookmarksMap = new HydrationMap<\n DidString,\n HydrationMap<string, Bookmark>\n >()\n\n bookmarksMap.set(\n viewer,\n new HydrationMap(\n bookmarks.map((bookmark) => [\n bookmark.ref.key,\n {\n ref: bookmark.ref,\n subjectUri: bookmark.subjectUri,\n subjectCid: bookmark.subjectCid,\n indexedAt: parseDate(bookmark.indexedAt),\n },\n ]),\n ),\n )\n\n // @NOTE: The `createBookmark` endpoint limits bookmarks to be of posts,\n // so we can assume currently all subjects are posts.\n const postsState = await this.hydratePosts(\n bookmarks.map((bookmark) => ({\n uri: bookmark.subjectUri as AtUriString,\n })),\n ctx,\n )\n\n return mergeStates(postsState, { bookmarks: bookmarksMap })\n }\n\n // provides partial hydration state within getFollows / getFollowers, mainly for applying rules\n async hydrateFollows(\n uris: AtUriString[],\n ctx: HydrateCtx,\n ): Promise<HydrationState> {\n const follows = await this.graph.getFollows(uris)\n const pairs: RelationshipPair[] = []\n for (const [uri, follow] of follows) {\n if (follow) {\n pairs.push([didFromUri(uri), follow.record.subject])\n }\n }\n const blocks = await this.hydrateBidirectionalBlocks(pairsToMap(pairs), ctx)\n const followBlocks: FollowBlocks = new HydrationMap()\n for (const [uri, follow] of follows) {\n if (follow) {\n followBlocks.set(\n uri,\n isBlocked(blocks, [didFromUri(uri), follow.record.subject]),\n )\n } else {\n followBlocks.set(uri, null)\n }\n }\n return { follows, followBlocks }\n }\n\n async hydrateBidirectionalBlocks(\n didMap: Map<DidString, DidString[]>, // DID -> DID[]\n ctx: HydrateCtx,\n ): Promise<BidirectionalBlocks> {\n const pairs: RelationshipPair[] = []\n for (const [source, targets] of didMap) {\n for (const target of targets) {\n pairs.push([source, target])\n }\n }\n\n const blocks = await this.graph.getBidirectionalBlocks(pairs)\n const listUrisSet = new Set<AtUriString>()\n for (const [source, targets] of didMap) {\n for (const target of targets) {\n const block = blocks.get(source, target)\n if (block?.blockListUri) {\n listUrisSet.add(block.blockListUri)\n }\n }\n }\n const listUris = [...listUrisSet]\n\n // if a list no longer exists or is not a mod list, then remove from block entry\n const listState = await this.hydrateListsBasic(listUris, ctx)\n for (const [source, targets] of didMap) {\n for (const target of targets) {\n const block = blocks.get(source, target)\n if (!isModList(block?.blockListUri, listState)) {\n delete block?.blockListUri\n }\n }\n }\n\n const result: BidirectionalBlocks = new HydrationMap()\n\n for (const [source, targets] of didMap) {\n const didBlocks = new HydrationMap<DidString, boolean>()\n for (const target of targets) {\n const block = blocks.get(source, target)\n\n // If a list no longer exists or is not a mod list, then remove from block entry.\n // isModList confirms the list exists in listState, which ensures it wasn't taken down.\n if (!isModList(block?.blockListUri, listState)) {\n delete block?.blockListUri\n }\n\n const blockEntry: BlockEntry = {\n blockUri: block?.blockUri,\n blockListUri:\n block?.blockListUri &&\n listState.actors?.get(uriToDid(block.blockListUri))\n ? block.blockListUri\n : undefined,\n }\n\n didBlocks.set(\n target,\n !!blockEntry.blockUri || !!blockEntry.blockListUri,\n )\n }\n result.set(source, didBlocks)\n }\n\n return result\n }\n\n // app.bsky.labeler.def#labelerViewDetailed\n // - labeler\n // - profile\n // - list basic\n async hydrateLabelers(\n dids: DidString[],\n ctx: HydrateCtx,\n ): Promise<HydrationState> {\n const [labelers, labelerAggs, labelerViewers, profileState] =\n await Promise.all([\n this.label.getLabelers(dids, ctx.includeTakedowns),\n this.label.getLabelerAggregates(dids, ctx.viewer),\n ctx.viewer\n ? this.label.getLabelerViewerStates(dids, ctx.viewer)\n : undefined,\n this.hydrateProfiles(dids, ctx),\n ])\n actionTakedownLabels(dids, labelers, profileState.labels ?? new Labels())\n return mergeStates(profileState, {\n labelers,\n labelerAggs,\n labelerViewers,\n ctx,\n })\n }\n\n // ad-hoc record hydration\n // in com.atproto.repo.getRecord\n async getRecord(uri: AtUriString, includeTakedowns = false) {\n const parsed = new AtUri(uri)\n const collection = parsed.collection\n if (collection === app.bsky.feed.post.$type) {\n return (\n (await this.feed.getPosts([uri], includeTakedowns)).get(uri) ??\n undefined\n )\n } else if (collection === app.bsky.feed.repost.$type) {\n return (\n (await this.feed.getReposts([uri], includeTakedowns)).get(uri) ??\n undefined\n )\n } else if (collection === app.bsky.feed.like.$type) {\n return (\n (await this.feed.getLikes([uri], includeTakedowns)).get(uri) ??\n undefined\n )\n } else if (collection === app.bsky.graph.follow.$type) {\n return (\n (await this.graph.getFollows([uri], includeTakedowns)).get(uri) ??\n undefined\n )\n } else if (collection === app.bsky.graph.list.$type) {\n return (\n (await this.graph.getLists([uri], includeTakedowns)).get(uri) ??\n undefined\n )\n } else if (collection === app.bsky.graph.listitem.$type) {\n return (\n (await this.graph.getListItems([uri], includeTakedowns)).get(uri) ??\n undefined\n )\n } else if (collection === app.bsky.graph.block.$type) {\n return (\n (await this.graph.getBlocks([uri], includeTakedowns)).get(uri) ??\n undefined\n )\n } else if (collection === app.bsky.graph.starterpack.$type) {\n return (\n (await this.graph.getStarterPacks([uri], includeTakedowns)).get(uri) ??\n undefined\n )\n } else if (collection === app.bsky.feed.generator.$type) {\n return (\n (await this.feed.getFeedGens([uri], includeTakedowns)).get(uri) ??\n undefined\n )\n } else if (collection === app.bsky.feed.threadgate.$type) {\n return (\n (await this.feed.getThreadgateRecords([uri], includeTakedowns)).get(\n uri,\n ) ?? undefined\n )\n } else if (collection === app.bsky.feed.postgate.$type) {\n return (\n (await this.feed.getPostgateRecords([uri], includeTakedowns)).get(\n uri,\n ) ?? undefined\n )\n } else if (collection === app.bsky.labeler.service.$type) {\n if (parsed.rkey !== 'self') return\n const { did } = parsed\n return (\n (await this.label.getLabelers([did], includeTakedowns)).get(did) ??\n undefined\n )\n } else if (collection === chat.bsky.actor.declaration.$type) {\n if (parsed.rkey !== 'self') return\n return (\n (await this.actor.getChatDeclarations([uri], includeTakedowns)).get(\n uri,\n ) ?? undefined\n )\n } else if (collection === com.germnetwork.declaration.$type) {\n if (parsed.rkey !== 'self') return\n return (\n (await this.actor.getGermDeclarations([uri], includeTakedowns)).get(\n uri,\n ) ?? undefined\n )\n } else if (collection === app.bsky.notification.declaration.$type) {\n if (parsed.rkey !== 'self') return\n return (\n (\n await this.actor.getNotificationDeclarations([uri], includeTakedowns)\n ).get(uri) ?? undefined\n )\n } else if (collection === app.bsky.actor.status.$type) {\n if (parsed.rkey !== 'self') return\n return (\n (await this.actor.getStatus([uri], includeTakedowns)).get(uri) ??\n undefined\n )\n } else if (collection === app.bsky.actor.profile.$type) {\n const did = parsed.did\n const actor = (\n await this.actor.getActors([did], { includeTakedowns })\n ).get(did)\n if (!actor?.profile || !actor?.profileCid) return undefined\n const recordInfo: RecordInfo<ProfileRecord> = {\n record: actor.profile,\n cid: actor.profileCid,\n sortedAt: actor.sortedAt ?? new Date(0), // @NOTE will be present since profile record is present\n indexedAt: actor.indexedAt ?? new Date(0), // @NOTE will be present since profile record is present\n takedownRef: actor.profileTakedownRef,\n }\n\n return recordInfo\n }\n }\n\n async createContext<\n V extends Omit<HydrateCtxVals, 'features'> & {\n features?: ScopedFeatureGatesClient\n },\n >(vals: V): Promise<HydrateCtx & { viewer: V['viewer'] }> {\n // ensures we're only apply labelers that exist and are not taken down\n const labelers = vals.labelers.dids\n const nonServiceLabelers = labelers.filter(\n (did) => !this.serviceLabelers.has(did),\n )\n const labelerActors = await this.actor.getActors(nonServiceLabelers, {\n includeTakedowns: vals.includeTakedowns,\n })\n const availableDids = labelers.filter(\n (did) => this.serviceLabelers.has(did) || !!labelerActors.get(did),\n )\n const availableLabelers = {\n dids: availableDids,\n redact: vals.labelers.redact,\n }\n const includeDebugField =\n !!vals.viewer && this.config.debugFieldAllowedDids.has(vals.viewer)\n return new HydrateCtx({\n labelers: availableLabelers,\n viewer: vals.viewer,\n includeTakedowns: vals.includeTakedowns,\n include3pBlocks: vals.include3pBlocks,\n skipViewerBlocks: vals.skipViewerBlocks,\n includeDebugField,\n // create default anonymous scope\n features: vals.features || this.config.featureGatesClient.scope({}),\n })\n }\n\n async resolveUri(uriStr: AtUriString): Promise<AtUriString> {\n const uri = new AtUri(uriStr)\n const [did] = await this.actor.getDids([uri.host])\n if (!did) return uriStr\n uri.hostname = did\n return uri.toString()\n }\n}\n\n// service refs may look like \"did:plc:example#service_id\". we want to extract the did part \"did:plc:example\".\nconst serviceRefToDid = (serviceRef: string) => {\n const idx = serviceRef.indexOf('#')\n return (idx !== -1 ? serviceRef.slice(0, idx) : serviceRef) as DidString\n}\n\nconst listUrisFromProfileViewer = (\n item: ProfileViewerState | null,\n): AtUriString[] => {\n const listUris: AtUriString[] = []\n if (item?.mutedByList) {\n listUris.push(item.mutedByList)\n }\n if (item?.blockingByList) {\n listUris.push(item.blockingByList)\n }\n // blocked-by list does not appear in views, but will be used to evaluate the existence of a block between users.\n if (item?.blockedByList) {\n listUris.push(item.blockedByList)\n }\n return listUris\n}\n\nconst removeNonModListsFromProfileViewer = (\n item: ProfileViewerState | null,\n state: HydrationState,\n) => {\n if (!isModList(item?.mutedByList, state)) {\n delete item?.mutedByList\n }\n if (!isModList(item?.blockingByList, state)) {\n delete item?.blockingByList\n }\n if (!isModList(item?.blockedByList, state)) {\n delete item?.blockedByList\n }\n}\n\nconst isModList = (\n listUri: AtUriString | undefined,\n state: HydrationState,\n): boolean => {\n if (!listUri) return false\n const list = state.lists?.get(listUri)\n return list?.record.purpose === 'app.bsky.graph.defs#modlist'\n}\n\nconst labelSubjectsForDid = (dids: DidString[]) => {\n return [\n ...dids,\n ...dids.map((did) =>\n AtUri.make(did, app.bsky.actor.profile.$type, 'self').toString(),\n ),\n ...dids.map((did) =>\n AtUri.make(did, app.bsky.actor.status.$type, 'self').toString(),\n ),\n ]\n}\n\nconst rootUrisFromPosts = (posts: Posts): AtUriString[] => {\n const uris: AtUriString[] = []\n for (const item of posts.values()) {\n const rootUri = item && rootUriFromPost(item)\n if (rootUri) {\n uris.push(rootUri)\n }\n }\n return uris\n}\n\nconst rootUriFromPost = (post: Post): AtUriString | undefined => {\n return post.record.reply?.root.uri\n}\n\nconst nestedRecordUrisFromPosts = (\n posts: Posts,\n fromUris?: AtUriString[],\n): AtUriString[] => {\n const uris: AtUriString[] = []\n const postUris = fromUris ?? posts.keys()\n for (const uri of postUris) {\n const item = posts.get(uri)\n if (item) {\n uris.push(...nestedRecordUris(item.record))\n }\n }\n return uris\n}\n\nconst nestedRecordUris = (post: Post['record']): AtUriString[] => {\n const uris: AtUriString[] = []\n if (!post?.embed) return uris\n if (isRecordEmbedType(post.embed)) {\n uris.push(post.embed.record.uri)\n } else if (isRecordWithMediaType(post.embed)) {\n uris.push(post.embed.record.record.uri)\n }\n return uris\n}\n\nconst getListUrisFromThreadgates = (gates: Threadgates): AtUriString[] => {\n const uris: AtUriString[] = []\n for (const gate of gates.values()) {\n const listRules = gate?.record.allow?.filter(isListRuleType) ?? []\n for (const rule of listRules) {\n uris.push(rule.list)\n }\n }\n return uris\n}\n\nconst isBlocked = (blocks: BidirectionalBlocks, [a, b]: RelationshipPair) => {\n return blocks.get(a)?.get(b) ?? false\n}\n\nconst pairsToMap = <K extends string>(pairs: [a: K, b: K][]): Map<K, K[]> => {\n const map = new Map<K, K[]>()\n for (const [a, b] of pairs) {\n const list = map.get(a)\n if (list) list.push(b)\n else map.set(a, [b])\n }\n return map\n}\n\nexport const mergeStates = (\n stateA: HydrationState,\n stateB: HydrationState,\n): HydrationState => {\n assert(\n !stateA.ctx?.viewer ||\n !stateB.ctx?.viewer ||\n stateA.ctx?.viewer === stateB.ctx?.viewer,\n 'incompatible viewers',\n )\n return {\n ctx: stateA.ctx ?? stateB.ctx,\n actors: mergeMaps(stateA.actors, stateB.actors),\n profileAggs: mergeMaps(stateA.profileAggs, stateB.profileAggs),\n profileViewers: mergeMaps(stateA.profileViewers, stateB.profileViewers),\n posts: mergeMaps(stateA.posts, stateB.posts),\n postAggs: mergeMaps(stateA.postAggs, stateB.postAggs),\n postViewers: mergeMaps(stateA.postViewers, stateB.postViewers),\n threadContexts: mergeMaps(stateA.threadContexts, stateB.threadContexts),\n postBlocks: mergeMaps(stateA.postBlocks, stateB.postBlocks),\n reposts: mergeMaps(stateA.reposts, stateB.reposts),\n follows: mergeMaps(stateA.follows, stateB.follows),\n followBlocks: mergeMaps(stateA.followBlocks, stateB.followBlocks),\n threadgates: mergeMaps(stateA.threadgates, stateB.threadgates),\n postgates: mergeMaps(stateA.postgates, stateB.postgates),\n lists: mergeMaps(stateA.lists, stateB.lists),\n listAggs: mergeMaps(stateA.listAggs, stateB.listAggs),\n listMemberships: mergeNestedMaps(\n stateA.listMemberships,\n stateB.listMemberships,\n ),\n listViewers: mergeMaps(stateA.listViewers, stateB.listViewers),\n listItems: mergeMaps(stateA.listItems, stateB.listItems),\n likes: mergeMaps(stateA.likes, stateB.likes),\n likeBlocks: mergeMaps(stateA.likeBlocks, stateB.likeBlocks),\n labels: mergeMaps(stateA.labels, stateB.labels),\n feedgens: mergeMaps(stateA.feedgens, stateB.feedgens),\n feedgenAggs: mergeMaps(stateA.feedgenAggs, stateB.feedgenAggs),\n feedgenViewers: mergeMaps(stateA.feedgenViewers, stateB.feedgenViewers),\n starterPacks: mergeMaps(stateA.starterPacks, stateB.starterPacks),\n starterPackAggs: mergeMaps(stateA.starterPackAggs, stateB.starterPackAggs),\n labelers: mergeMaps(stateA.labelers, stateB.labelers),\n labelerAggs: mergeMaps(stateA.labelerAggs, stateB.labelerAggs),\n labelerViewers: mergeMaps(stateA.labelerViewers, stateB.labelerViewers),\n knownFollowers: mergeMaps(stateA.knownFollowers, stateB.knownFollowers),\n activitySubscriptions: mergeMaps(\n stateA.activitySubscriptions,\n stateB.activitySubscriptions,\n ),\n bidirectionalBlocks: mergeNestedMaps(\n stateA.bidirectionalBlocks,\n stateB.bidirectionalBlocks,\n ),\n verifications: mergeMaps(stateA.verifications, stateB.verifications),\n bookmarks: mergeNestedMaps(stateA.bookmarks, stateB.bookmarks),\n }\n}\n\nexport const mergeManyStates = (...states: HydrationState[]) => {\n return states.reduce(mergeStates, {} as HydrationState)\n}\n\nconst actionTakedownLabels = (\n keys: UriString[],\n hydrationMap: HydrationMap<UriString, unknown>,\n labels: Labels,\n) => {\n for (const key of keys) {\n if (labels.get(key)?.isTakendown) {\n hydrationMap.set(key, null)\n }\n }\n}\n\nconst uriToRef = (uri: AtUriString): ItemRef => {\n return { uri }\n}\n"]}
|
|
@@ -98,6 +98,7 @@ export { profileAssociated };
|
|
|
98
98
|
type ProfileAssociatedChat = {
|
|
99
99
|
$type?: 'app.bsky.actor.defs#profileAssociatedChat';
|
|
100
100
|
allowIncoming: 'all' | 'none' | 'following' | l.UnknownString;
|
|
101
|
+
allowGroupInvites?: 'all' | 'none' | 'following' | l.UnknownString;
|
|
101
102
|
};
|
|
102
103
|
export type { ProfileAssociatedChat };
|
|
103
104
|
declare const profileAssociatedChat: l.TypedObjectSchema<"app.bsky.actor.defs#profileAssociatedChat", l.Validator<ProfileAssociatedChat, ProfileAssociatedChat>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defs.defs.d.ts","sourceRoot":"","sources":["../../../../../src/lexicons/app/bsky/actor/defs.defs.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"defs.defs.d.ts","sourceRoot":"","sources":["../../../../../src/lexicons/app/bsky/actor/defs.defs.ts"],"names":[],"mappings":"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"}
|
|
@@ -115,6 +115,7 @@ const profileAssociated = lex_1.l.typedObject($nsid, 'profileAssociated', lex_1.
|
|
|
115
115
|
exports.profileAssociated = profileAssociated;
|
|
116
116
|
const profileAssociatedChat = lex_1.l.typedObject($nsid, 'profileAssociatedChat', lex_1.l.object({
|
|
117
117
|
allowIncoming: lex_1.l.string(),
|
|
118
|
+
allowGroupInvites: lex_1.l.optional(lex_1.l.string()),
|
|
118
119
|
}));
|
|
119
120
|
exports.profileAssociatedChat = profileAssociatedChat;
|
|
120
121
|
const profileAssociatedGerm = lex_1.l.typedObject($nsid, 'profileAssociatedGerm', lex_1.l.object({
|