@atproto/bsky 0.0.187 → 0.0.189
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 +15 -0
- package/dist/api/app/bsky/actor/getProfile.js.map +1 -1
- package/dist/api/app/bsky/actor/getProfiles.js.map +1 -1
- package/dist/api/app/bsky/actor/getSuggestions.js.map +1 -1
- package/dist/api/app/bsky/actor/searchActors.js.map +1 -1
- package/dist/api/app/bsky/actor/searchActorsTypeahead.js.map +1 -1
- package/dist/api/app/bsky/bookmark/createBookmark.js.map +1 -1
- package/dist/api/app/bsky/bookmark/deleteBookmark.js.map +1 -1
- package/dist/api/app/bsky/bookmark/getBookmarks.js.map +1 -1
- package/dist/api/app/bsky/bookmark/util.js.map +1 -1
- package/dist/api/app/bsky/feed/getActorFeeds.js.map +1 -1
- package/dist/api/app/bsky/feed/getActorLikes.js.map +1 -1
- package/dist/api/app/bsky/feed/getAuthorFeed.js.map +1 -1
- package/dist/api/app/bsky/feed/getFeed.js.map +1 -1
- package/dist/api/app/bsky/feed/getFeedGenerator.js.map +1 -1
- package/dist/api/app/bsky/feed/getFeedGenerators.js.map +1 -1
- package/dist/api/app/bsky/feed/getLikes.js.map +1 -1
- package/dist/api/app/bsky/feed/getListFeed.js.map +1 -1
- package/dist/api/app/bsky/feed/getPostThread.js.map +1 -1
- package/dist/api/app/bsky/feed/getPosts.js.map +1 -1
- package/dist/api/app/bsky/feed/getQuotes.js.map +1 -1
- package/dist/api/app/bsky/feed/getRepostedBy.js.map +1 -1
- package/dist/api/app/bsky/feed/getSuggestedFeeds.js.map +1 -1
- package/dist/api/app/bsky/feed/getTimeline.js.map +1 -1
- package/dist/api/app/bsky/feed/searchPosts.js.map +1 -1
- package/dist/api/app/bsky/graph/getActorStarterPacks.js.map +1 -1
- package/dist/api/app/bsky/graph/getBlocks.js.map +1 -1
- package/dist/api/app/bsky/graph/getFollowers.js.map +1 -1
- package/dist/api/app/bsky/graph/getFollows.js.map +1 -1
- package/dist/api/app/bsky/graph/getKnownFollowers.js.map +1 -1
- package/dist/api/app/bsky/graph/getList.js.map +1 -1
- package/dist/api/app/bsky/graph/getListBlocks.js.map +1 -1
- package/dist/api/app/bsky/graph/getListMutes.js.map +1 -1
- package/dist/api/app/bsky/graph/getLists.js.map +1 -1
- package/dist/api/app/bsky/graph/getListsWithMembership.js.map +1 -1
- package/dist/api/app/bsky/graph/getMutes.js.map +1 -1
- package/dist/api/app/bsky/graph/getRelationships.js.map +1 -1
- package/dist/api/app/bsky/graph/getStarterPack.js.map +1 -1
- package/dist/api/app/bsky/graph/getStarterPacks.js.map +1 -1
- package/dist/api/app/bsky/graph/getStarterPacksWithMembership.js.map +1 -1
- package/dist/api/app/bsky/graph/getSuggestedFollowsByActor.js.map +1 -1
- package/dist/api/app/bsky/graph/muteActor.js.map +1 -1
- package/dist/api/app/bsky/graph/muteActorList.js.map +1 -1
- package/dist/api/app/bsky/graph/muteThread.js.map +1 -1
- package/dist/api/app/bsky/graph/searchStarterPacks.js.map +1 -1
- package/dist/api/app/bsky/graph/unmuteActor.js.map +1 -1
- package/dist/api/app/bsky/graph/unmuteActorList.js.map +1 -1
- package/dist/api/app/bsky/graph/unmuteThread.js.map +1 -1
- package/dist/api/app/bsky/labeler/getServices.js.map +1 -1
- package/dist/api/app/bsky/notification/getPreferences.js.map +1 -1
- package/dist/api/app/bsky/notification/getUnreadCount.js.map +1 -1
- package/dist/api/app/bsky/notification/listActivitySubscriptions.js.map +1 -1
- package/dist/api/app/bsky/notification/listNotifications.js.map +1 -1
- package/dist/api/app/bsky/notification/putActivitySubscription.js.map +1 -1
- package/dist/api/app/bsky/notification/putPreferences.js.map +1 -1
- package/dist/api/app/bsky/notification/putPreferencesV2.js.map +1 -1
- package/dist/api/app/bsky/notification/registerPush.js.map +1 -1
- package/dist/api/app/bsky/notification/unregisterPush.js.map +1 -1
- package/dist/api/app/bsky/notification/updateSeen.js.map +1 -1
- package/dist/api/app/bsky/notification/util.js.map +1 -1
- package/dist/api/app/bsky/unspecced/getAgeAssuranceState.js.map +1 -1
- package/dist/api/app/bsky/unspecced/getConfig.js.map +1 -1
- package/dist/api/app/bsky/unspecced/getOnboardingSuggestedStarterPacks.js.map +1 -1
- package/dist/api/app/bsky/unspecced/getPopularFeedGenerators.js.map +1 -1
- package/dist/api/app/bsky/unspecced/getPostThreadOtherV2.js.map +1 -1
- package/dist/api/app/bsky/unspecced/getPostThreadV2.js.map +1 -1
- package/dist/api/app/bsky/unspecced/getSuggestedFeeds.js.map +1 -1
- package/dist/api/app/bsky/unspecced/getSuggestedStarterPacks.js.map +1 -1
- package/dist/api/app/bsky/unspecced/getSuggestedUsers.js.map +1 -1
- package/dist/api/app/bsky/unspecced/getTaggedSuggestions.js.map +1 -1
- package/dist/api/app/bsky/unspecced/getTrendingTopics.js.map +1 -1
- package/dist/api/app/bsky/unspecced/getTrends.js.map +1 -1
- package/dist/api/app/bsky/unspecced/initAgeAssurance.js.map +1 -1
- package/dist/api/blob-dispatcher.js.map +1 -1
- package/dist/api/blob-resolver.js.map +1 -1
- package/dist/api/com/atproto/admin/getAccountInfos.js.map +1 -1
- package/dist/api/com/atproto/admin/getSubjectStatus.js.map +1 -1
- package/dist/api/com/atproto/admin/updateSubjectStatus.js.map +1 -1
- package/dist/api/com/atproto/identity/resolveHandle.js.map +1 -1
- package/dist/api/com/atproto/label/queryLabels.js.map +1 -1
- package/dist/api/com/atproto/repo/getRecord.js.map +1 -1
- package/dist/api/com/atproto/temp/fetchLabels.js.map +1 -1
- package/dist/api/external.js.map +1 -1
- package/dist/api/health.js.map +1 -1
- package/dist/api/index.js.map +1 -1
- package/dist/api/kws/api.js.map +1 -1
- package/dist/api/kws/index.js.map +1 -1
- package/dist/api/kws/types.js.map +1 -1
- package/dist/api/kws/util.js.map +1 -1
- package/dist/api/kws/webhook.js.map +1 -1
- package/dist/api/util.js.map +1 -1
- package/dist/api/well-known.js.map +1 -1
- package/dist/auth-verifier.js.map +1 -1
- package/dist/bsync.js.map +1 -1
- package/dist/cache/read-through.js.map +1 -1
- package/dist/config.js.map +1 -1
- package/dist/context.js.map +1 -1
- package/dist/courier.js.map +1 -1
- package/dist/data-plane/bsync/index.js.map +1 -1
- package/dist/data-plane/client/hosts.js.map +1 -1
- package/dist/data-plane/client/index.js.map +1 -1
- package/dist/data-plane/client/util.js.map +1 -1
- package/dist/data-plane/index.js.map +1 -1
- package/dist/data-plane/server/background.js.map +1 -1
- package/dist/data-plane/server/db/database-schema.js.map +1 -1
- package/dist/data-plane/server/db/db.js.map +1 -1
- package/dist/data-plane/server/db/index.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230309T045948368Z-init.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230408T152211201Z-notification-init.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230417T210628672Z-moderation-init.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230420T211446071Z-did-cache.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230427T194702079Z-notif-record-index.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230605T144730094Z-post-profile-aggs.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230607T211442112Z-feed-generator-init.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230608T155101190Z-algo-whats-hot-view.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230608T201813132Z-mute-lists.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230608T205147239Z-mutes.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230609T153623961Z-blocks.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230609T232122649Z-actor-deletion-indexes.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230610T203555962Z-suggested-follows.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230611T215300060Z-actor-state.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230620T161134972Z-post-langs.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230627T212437895Z-optional-handle.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230629T220835893Z-remove-post-hierarchy.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230703T045536691Z-feed-and-label-indices.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230720T164800037Z-posts-cursor-idx.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230807T035309811Z-feed-item-delete-invite-for-user-idx.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230808T172902639Z-repo-rev.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230810T203349843Z-action-duration.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230817T195936007Z-native-notifications.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230830T205507322Z-suggested-feeds.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230904T211011773Z-block-lists.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230906T222220386Z-thread-gating.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230920T213858047Z-add-tags-to-post.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20230929T192920807Z-record-cursor-indexes.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20231003T202833377Z-create-moderation-subject-status.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20231220T225126090Z-blob-takedowns.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20240124T023719200Z-tagged-suggestions.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20240226T225725627Z-labelers.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20240530T170337073Z-account-deactivation.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20240606T171229898Z-thread-mutes.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20240606T222548219Z-starter-packs.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20240719T203853939Z-priority-notifs.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20240723T220700077Z-quotes-post-aggs.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20240723T220703655Z-quotes.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20240801T193939827Z-post-gate.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20240808T224251220Z-post-gate-flags.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20240829T211238293Z-simplify-actor-sync.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20240831T134810923Z-pinned-posts.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20241114T153108102Z-add-starter-packs-name.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20250116T222618297Z-post-embed-video.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20250207T174822012Z-add-label-exp.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20250404T163421487Z-verifications.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20250526T023712742Z-like-repost-via.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20250528T221913281Z-add-record-tags.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20250602T190357447Z-add-private-data.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20250611T140649895Z-add-activity-subscription.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20250627T025331240Z-add-actor-age-assurance-columns.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20250812T183735692Z-add-bookmarks.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20250813T174955711Z-add-post-agg-bookmarks.js.map +1 -1
- package/dist/data-plane/server/db/migrations/index.js.map +1 -1
- package/dist/data-plane/server/db/migrations/provider.js.map +1 -1
- package/dist/data-plane/server/db/pagination.js.map +1 -1
- package/dist/data-plane/server/db/tables/activity-subscription.js.map +1 -1
- package/dist/data-plane/server/db/tables/actor-block.js.map +1 -1
- package/dist/data-plane/server/db/tables/actor-state.js.map +1 -1
- package/dist/data-plane/server/db/tables/actor-sync.js.map +1 -1
- package/dist/data-plane/server/db/tables/actor.js.map +1 -1
- package/dist/data-plane/server/db/tables/algo.js.map +1 -1
- package/dist/data-plane/server/db/tables/blob-takedown.js.map +1 -1
- package/dist/data-plane/server/db/tables/bookmark.js.map +1 -1
- package/dist/data-plane/server/db/tables/did-cache.js.map +1 -1
- package/dist/data-plane/server/db/tables/duplicate-record.js.map +1 -1
- package/dist/data-plane/server/db/tables/feed-generator.js.map +1 -1
- package/dist/data-plane/server/db/tables/feed-item.js.map +1 -1
- package/dist/data-plane/server/db/tables/follow.js.map +1 -1
- package/dist/data-plane/server/db/tables/label.js.map +1 -1
- package/dist/data-plane/server/db/tables/labeler.js.map +1 -1
- package/dist/data-plane/server/db/tables/like.js.map +1 -1
- package/dist/data-plane/server/db/tables/list-block.js.map +1 -1
- package/dist/data-plane/server/db/tables/list-item.js.map +1 -1
- package/dist/data-plane/server/db/tables/list-mute.js.map +1 -1
- package/dist/data-plane/server/db/tables/list.js.map +1 -1
- package/dist/data-plane/server/db/tables/mute.js.map +1 -1
- package/dist/data-plane/server/db/tables/notification-push-token.js.map +1 -1
- package/dist/data-plane/server/db/tables/notification.js.map +1 -1
- package/dist/data-plane/server/db/tables/post-agg.js.map +1 -1
- package/dist/data-plane/server/db/tables/post-embed.js.map +1 -1
- package/dist/data-plane/server/db/tables/post-gate.js.map +1 -1
- package/dist/data-plane/server/db/tables/post.js.map +1 -1
- package/dist/data-plane/server/db/tables/private-data.js.map +1 -1
- package/dist/data-plane/server/db/tables/profile-agg.js.map +1 -1
- package/dist/data-plane/server/db/tables/profile.js.map +1 -1
- package/dist/data-plane/server/db/tables/quote.js.map +1 -1
- package/dist/data-plane/server/db/tables/record.js.map +1 -1
- package/dist/data-plane/server/db/tables/repost.js.map +1 -1
- package/dist/data-plane/server/db/tables/starter-pack.js.map +1 -1
- package/dist/data-plane/server/db/tables/subscription.js.map +1 -1
- package/dist/data-plane/server/db/tables/suggested-feed.js.map +1 -1
- package/dist/data-plane/server/db/tables/suggested-follow.js.map +1 -1
- package/dist/data-plane/server/db/tables/tagged-suggestion.js.map +1 -1
- package/dist/data-plane/server/db/tables/thread-gate.js.map +1 -1
- package/dist/data-plane/server/db/tables/thread-mute.js.map +1 -1
- package/dist/data-plane/server/db/tables/verification.js.map +1 -1
- package/dist/data-plane/server/db/tables/view-param.js.map +1 -1
- package/dist/data-plane/server/db/types.js.map +1 -1
- package/dist/data-plane/server/db/util.js.map +1 -1
- package/dist/data-plane/server/index.js.map +1 -1
- package/dist/data-plane/server/indexing/index.js.map +1 -1
- package/dist/data-plane/server/indexing/plugins/block.js.map +1 -1
- package/dist/data-plane/server/indexing/plugins/chat-declaration.js.map +1 -1
- package/dist/data-plane/server/indexing/plugins/feed-generator.js.map +1 -1
- package/dist/data-plane/server/indexing/plugins/follow.js.map +1 -1
- package/dist/data-plane/server/indexing/plugins/labeler.js.map +1 -1
- package/dist/data-plane/server/indexing/plugins/like.js.map +1 -1
- package/dist/data-plane/server/indexing/plugins/list-block.js.map +1 -1
- package/dist/data-plane/server/indexing/plugins/list-item.js.map +1 -1
- package/dist/data-plane/server/indexing/plugins/list.js.map +1 -1
- package/dist/data-plane/server/indexing/plugins/notif-declaration.js.map +1 -1
- package/dist/data-plane/server/indexing/plugins/post-gate.js.map +1 -1
- package/dist/data-plane/server/indexing/plugins/post.js.map +1 -1
- package/dist/data-plane/server/indexing/plugins/profile.js.map +1 -1
- package/dist/data-plane/server/indexing/plugins/repost.js.map +1 -1
- package/dist/data-plane/server/indexing/plugins/starter-pack.js.map +1 -1
- package/dist/data-plane/server/indexing/plugins/status.js.map +1 -1
- package/dist/data-plane/server/indexing/plugins/thread-gate.js.map +1 -1
- package/dist/data-plane/server/indexing/plugins/verification.js.map +1 -1
- package/dist/data-plane/server/indexing/processor.js.map +1 -1
- package/dist/data-plane/server/routes/activity-subscription.js.map +1 -1
- package/dist/data-plane/server/routes/blocks.js.map +1 -1
- package/dist/data-plane/server/routes/bookmarks.js.map +1 -1
- package/dist/data-plane/server/routes/feed-gens.js.map +1 -1
- package/dist/data-plane/server/routes/feeds.js.map +1 -1
- package/dist/data-plane/server/routes/follows.js.map +1 -1
- package/dist/data-plane/server/routes/identity.js.map +1 -1
- package/dist/data-plane/server/routes/index.js.map +1 -1
- package/dist/data-plane/server/routes/interactions.js.map +1 -1
- package/dist/data-plane/server/routes/labels.js.map +1 -1
- package/dist/data-plane/server/routes/likes.js.map +1 -1
- package/dist/data-plane/server/routes/lists.js.map +1 -1
- package/dist/data-plane/server/routes/moderation.js.map +1 -1
- package/dist/data-plane/server/routes/mutes.js.map +1 -1
- package/dist/data-plane/server/routes/notifs.js.map +1 -1
- package/dist/data-plane/server/routes/profile.js.map +1 -1
- package/dist/data-plane/server/routes/quotes.js.map +1 -1
- package/dist/data-plane/server/routes/records.js.map +1 -1
- package/dist/data-plane/server/routes/relationships.js.map +1 -1
- package/dist/data-plane/server/routes/reposts.js.map +1 -1
- package/dist/data-plane/server/routes/search.js.map +1 -1
- package/dist/data-plane/server/routes/starter-packs.js.map +1 -1
- package/dist/data-plane/server/routes/suggestions.js.map +1 -1
- package/dist/data-plane/server/routes/sync.js.map +1 -1
- package/dist/data-plane/server/routes/threads.js.map +1 -1
- package/dist/data-plane/server/subscription.js.map +1 -1
- package/dist/data-plane/server/util.js.map +1 -1
- package/dist/error.js.map +1 -1
- package/dist/etcd.js.map +1 -1
- package/dist/feature-gates.js.map +1 -1
- package/dist/hydration/actor.js.map +1 -1
- package/dist/hydration/feed.js.map +1 -1
- package/dist/hydration/graph.js.map +1 -1
- package/dist/hydration/hydrator.js.map +1 -1
- package/dist/hydration/label.js.map +1 -1
- package/dist/hydration/util.js.map +1 -1
- package/dist/image/index.js.map +1 -1
- package/dist/image/invalidator.js.map +1 -1
- package/dist/image/logger.js.map +1 -1
- package/dist/image/server.js.map +1 -1
- package/dist/image/sharp.js.map +1 -1
- package/dist/image/uri.js.map +1 -1
- package/dist/image/util.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/kws.js.map +1 -1
- package/dist/lexicon/index.js.map +1 -1
- package/dist/lexicon/lexicons.d.ts +4 -4
- package/dist/lexicon/lexicons.d.ts.map +1 -1
- package/dist/lexicon/lexicons.js +10 -15
- package/dist/lexicon/lexicons.js.map +1 -1
- package/dist/lexicon/types/app/bsky/actor/defs.js.map +1 -1
- package/dist/lexicon/types/app/bsky/actor/getPreferences.js.map +1 -1
- package/dist/lexicon/types/app/bsky/actor/getProfile.js.map +1 -1
- package/dist/lexicon/types/app/bsky/actor/getProfiles.js.map +1 -1
- package/dist/lexicon/types/app/bsky/actor/getSuggestions.js.map +1 -1
- package/dist/lexicon/types/app/bsky/actor/profile.js.map +1 -1
- package/dist/lexicon/types/app/bsky/actor/putPreferences.js.map +1 -1
- package/dist/lexicon/types/app/bsky/actor/searchActors.js.map +1 -1
- package/dist/lexicon/types/app/bsky/actor/searchActorsTypeahead.js.map +1 -1
- package/dist/lexicon/types/app/bsky/actor/status.js.map +1 -1
- package/dist/lexicon/types/app/bsky/bookmark/createBookmark.js.map +1 -1
- package/dist/lexicon/types/app/bsky/bookmark/defs.js.map +1 -1
- package/dist/lexicon/types/app/bsky/bookmark/deleteBookmark.js.map +1 -1
- package/dist/lexicon/types/app/bsky/bookmark/getBookmarks.js.map +1 -1
- package/dist/lexicon/types/app/bsky/embed/defs.js.map +1 -1
- package/dist/lexicon/types/app/bsky/embed/external.js.map +1 -1
- package/dist/lexicon/types/app/bsky/embed/images.js.map +1 -1
- package/dist/lexicon/types/app/bsky/embed/record.js.map +1 -1
- package/dist/lexicon/types/app/bsky/embed/recordWithMedia.js.map +1 -1
- package/dist/lexicon/types/app/bsky/embed/video.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/defs.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/describeFeedGenerator.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/generator.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/getActorFeeds.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/getActorLikes.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/getAuthorFeed.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/getFeed.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/getFeedGenerator.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/getFeedGenerators.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/getFeedSkeleton.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/getLikes.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/getListFeed.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/getPostThread.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/getPosts.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/getQuotes.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/getRepostedBy.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/getSuggestedFeeds.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/getTimeline.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/like.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/post.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/postgate.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/repost.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/searchPosts.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/sendInteractions.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/threadgate.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/block.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/defs.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/follow.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/getActorStarterPacks.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/getBlocks.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/getFollowers.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/getFollows.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/getKnownFollowers.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/getList.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/getListBlocks.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/getListMutes.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/getLists.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/getListsWithMembership.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/getMutes.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/getRelationships.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/getStarterPack.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/getStarterPacks.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/getStarterPacksWithMembership.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/getSuggestedFollowsByActor.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/list.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/listblock.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/listitem.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/muteActor.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/muteActorList.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/muteThread.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/searchStarterPacks.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/starterpack.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/unmuteActor.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/unmuteActorList.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/unmuteThread.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/verification.js.map +1 -1
- package/dist/lexicon/types/app/bsky/labeler/defs.js.map +1 -1
- package/dist/lexicon/types/app/bsky/labeler/getServices.js.map +1 -1
- package/dist/lexicon/types/app/bsky/labeler/service.js.map +1 -1
- package/dist/lexicon/types/app/bsky/notification/declaration.js.map +1 -1
- package/dist/lexicon/types/app/bsky/notification/defs.js.map +1 -1
- package/dist/lexicon/types/app/bsky/notification/getPreferences.js.map +1 -1
- package/dist/lexicon/types/app/bsky/notification/getUnreadCount.js.map +1 -1
- package/dist/lexicon/types/app/bsky/notification/listActivitySubscriptions.js.map +1 -1
- package/dist/lexicon/types/app/bsky/notification/listNotifications.js.map +1 -1
- package/dist/lexicon/types/app/bsky/notification/putActivitySubscription.js.map +1 -1
- package/dist/lexicon/types/app/bsky/notification/putPreferences.js.map +1 -1
- package/dist/lexicon/types/app/bsky/notification/putPreferencesV2.js.map +1 -1
- package/dist/lexicon/types/app/bsky/notification/registerPush.js.map +1 -1
- package/dist/lexicon/types/app/bsky/notification/unregisterPush.js.map +1 -1
- package/dist/lexicon/types/app/bsky/notification/updateSeen.js.map +1 -1
- package/dist/lexicon/types/app/bsky/richtext/facet.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/defs.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getAgeAssuranceState.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getConfig.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getOnboardingSuggestedStarterPacks.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getOnboardingSuggestedStarterPacksSkeleton.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getPopularFeedGenerators.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getPostThreadOtherV2.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getPostThreadV2.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getSuggestedFeeds.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getSuggestedFeedsSkeleton.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getSuggestedStarterPacks.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getSuggestedStarterPacksSkeleton.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getSuggestedUsers.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getSuggestedUsersSkeleton.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getSuggestionsSkeleton.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getTaggedSuggestions.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getTrendingTopics.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getTrends.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getTrendsSkeleton.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/initAgeAssurance.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/searchActorsSkeleton.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/searchPostsSkeleton.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/searchStarterPacksSkeleton.js.map +1 -1
- package/dist/lexicon/types/app/bsky/video/defs.js.map +1 -1
- package/dist/lexicon/types/app/bsky/video/getJobStatus.js.map +1 -1
- package/dist/lexicon/types/app/bsky/video/getUploadLimits.js.map +1 -1
- package/dist/lexicon/types/app/bsky/video/uploadVideo.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/actor/declaration.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/actor/defs.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/actor/deleteAccount.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/actor/exportAccountData.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/acceptConvo.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/addReaction.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/defs.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/deleteMessageForSelf.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/getConvo.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/getConvoAvailability.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/getConvoForMembers.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/getLog.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/getMessages.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/leaveConvo.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/listConvos.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/muteConvo.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/removeReaction.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/sendMessage.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/sendMessageBatch.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/unmuteConvo.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/updateAllRead.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/updateRead.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/moderation/getActorMetadata.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/moderation/getMessageContext.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/moderation/updateActorAccess.js.map +1 -1
- package/dist/lexicon/types/com/atproto/admin/defs.js.map +1 -1
- package/dist/lexicon/types/com/atproto/admin/deleteAccount.js.map +1 -1
- package/dist/lexicon/types/com/atproto/admin/disableAccountInvites.js.map +1 -1
- package/dist/lexicon/types/com/atproto/admin/disableInviteCodes.js.map +1 -1
- package/dist/lexicon/types/com/atproto/admin/enableAccountInvites.js.map +1 -1
- package/dist/lexicon/types/com/atproto/admin/getAccountInfo.js.map +1 -1
- package/dist/lexicon/types/com/atproto/admin/getAccountInfos.js.map +1 -1
- package/dist/lexicon/types/com/atproto/admin/getInviteCodes.js.map +1 -1
- package/dist/lexicon/types/com/atproto/admin/getSubjectStatus.js.map +1 -1
- package/dist/lexicon/types/com/atproto/admin/searchAccounts.js.map +1 -1
- package/dist/lexicon/types/com/atproto/admin/sendEmail.js.map +1 -1
- package/dist/lexicon/types/com/atproto/admin/updateAccountEmail.js.map +1 -1
- package/dist/lexicon/types/com/atproto/admin/updateAccountHandle.js.map +1 -1
- package/dist/lexicon/types/com/atproto/admin/updateAccountPassword.js.map +1 -1
- package/dist/lexicon/types/com/atproto/admin/updateAccountSigningKey.js.map +1 -1
- package/dist/lexicon/types/com/atproto/admin/updateSubjectStatus.js.map +1 -1
- package/dist/lexicon/types/com/atproto/identity/defs.js.map +1 -1
- package/dist/lexicon/types/com/atproto/identity/getRecommendedDidCredentials.js.map +1 -1
- package/dist/lexicon/types/com/atproto/identity/refreshIdentity.js.map +1 -1
- package/dist/lexicon/types/com/atproto/identity/requestPlcOperationSignature.js.map +1 -1
- package/dist/lexicon/types/com/atproto/identity/resolveDid.js.map +1 -1
- package/dist/lexicon/types/com/atproto/identity/resolveHandle.js.map +1 -1
- package/dist/lexicon/types/com/atproto/identity/resolveIdentity.js.map +1 -1
- package/dist/lexicon/types/com/atproto/identity/signPlcOperation.js.map +1 -1
- package/dist/lexicon/types/com/atproto/identity/submitPlcOperation.js.map +1 -1
- package/dist/lexicon/types/com/atproto/identity/updateHandle.js.map +1 -1
- package/dist/lexicon/types/com/atproto/label/defs.js.map +1 -1
- package/dist/lexicon/types/com/atproto/label/queryLabels.js.map +1 -1
- package/dist/lexicon/types/com/atproto/label/subscribeLabels.js.map +1 -1
- package/dist/lexicon/types/com/atproto/lexicon/schema.js.map +1 -1
- package/dist/lexicon/types/com/atproto/moderation/createReport.js.map +1 -1
- package/dist/lexicon/types/com/atproto/moderation/defs.d.ts +2 -2
- package/dist/lexicon/types/com/atproto/moderation/defs.d.ts.map +1 -1
- package/dist/lexicon/types/com/atproto/moderation/defs.js +1 -1
- package/dist/lexicon/types/com/atproto/moderation/defs.js.map +1 -1
- package/dist/lexicon/types/com/atproto/repo/applyWrites.js.map +1 -1
- package/dist/lexicon/types/com/atproto/repo/createRecord.js.map +1 -1
- package/dist/lexicon/types/com/atproto/repo/defs.js.map +1 -1
- package/dist/lexicon/types/com/atproto/repo/deleteRecord.js.map +1 -1
- package/dist/lexicon/types/com/atproto/repo/describeRepo.js.map +1 -1
- package/dist/lexicon/types/com/atproto/repo/getRecord.js.map +1 -1
- package/dist/lexicon/types/com/atproto/repo/importRepo.js.map +1 -1
- package/dist/lexicon/types/com/atproto/repo/listMissingBlobs.js.map +1 -1
- package/dist/lexicon/types/com/atproto/repo/listRecords.js.map +1 -1
- package/dist/lexicon/types/com/atproto/repo/putRecord.js.map +1 -1
- package/dist/lexicon/types/com/atproto/repo/strongRef.js.map +1 -1
- package/dist/lexicon/types/com/atproto/repo/uploadBlob.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/activateAccount.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/checkAccountStatus.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/confirmEmail.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/createAccount.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/createAppPassword.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/createInviteCode.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/createInviteCodes.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/createSession.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/deactivateAccount.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/defs.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/deleteAccount.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/deleteSession.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/describeServer.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/getAccountInviteCodes.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/getServiceAuth.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/getSession.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/listAppPasswords.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/refreshSession.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/requestAccountDelete.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/requestEmailConfirmation.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/requestEmailUpdate.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/requestPasswordReset.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/reserveSigningKey.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/resetPassword.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/revokeAppPassword.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/updateEmail.js.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/defs.js.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/getBlob.js.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/getBlocks.js.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/getCheckout.js.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/getHead.js.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/getHostStatus.js.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/getLatestCommit.js.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/getRecord.js.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/getRepo.js.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/getRepoStatus.js.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/listBlobs.js.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/listHosts.js.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/listRepos.js.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/listReposByCollection.js.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/notifyOfUpdate.js.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/requestCrawl.js.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/subscribeRepos.js.map +1 -1
- package/dist/lexicon/types/com/atproto/temp/addReservedHandle.js.map +1 -1
- package/dist/lexicon/types/com/atproto/temp/checkHandleAvailability.js.map +1 -1
- package/dist/lexicon/types/com/atproto/temp/checkSignupQueue.js.map +1 -1
- package/dist/lexicon/types/com/atproto/temp/dereferenceScope.js.map +1 -1
- package/dist/lexicon/types/com/atproto/temp/fetchLabels.js.map +1 -1
- package/dist/lexicon/types/com/atproto/temp/requestPhoneVerification.js.map +1 -1
- package/dist/lexicon/types/com/atproto/temp/revokeAccountCredentials.js.map +1 -1
- package/dist/lexicon/util.js.map +1 -1
- package/dist/logger.js.map +1 -1
- package/dist/pipeline.js.map +1 -1
- package/dist/proto/bsky_connect.d.ts +2 -2
- package/dist/proto/bsky_connect.d.ts.map +1 -1
- package/dist/proto/bsky_connect.js +106 -106
- package/dist/proto/bsky_connect.js.map +1 -1
- package/dist/proto/bsky_pb.d.ts +2 -2
- package/dist/proto/bsky_pb.d.ts.map +1 -1
- package/dist/proto/bsky_pb.js +983 -1937
- package/dist/proto/bsky_pb.js.map +1 -1
- package/dist/proto/bsync_connect.d.ts +2 -2
- package/dist/proto/bsync_connect.d.ts.map +1 -1
- package/dist/proto/bsync_connect.js +9 -9
- package/dist/proto/bsync_connect.js.map +1 -1
- package/dist/proto/bsync_pb.d.ts +2 -2
- package/dist/proto/bsync_pb.d.ts.map +1 -1
- package/dist/proto/bsync_pb.js +86 -126
- package/dist/proto/bsync_pb.js.map +1 -1
- package/dist/proto/courier_connect.d.ts +2 -2
- package/dist/proto/courier_connect.d.ts.map +1 -1
- package/dist/proto/courier_connect.js +7 -7
- package/dist/proto/courier_connect.js.map +1 -1
- package/dist/proto/courier_pb.d.ts +2 -2
- package/dist/proto/courier_pb.d.ts.map +1 -1
- package/dist/proto/courier_pb.js +49 -95
- package/dist/proto/courier_pb.js.map +1 -1
- package/dist/redis.js.map +1 -1
- package/dist/stash.js.map +1 -1
- package/dist/util/debug.js.map +1 -1
- package/dist/util/http.js.map +1 -1
- package/dist/util/retry.js.map +1 -1
- package/dist/util/uris.js.map +1 -1
- package/dist/util.js.map +1 -1
- package/dist/views/index.js.map +1 -1
- package/dist/views/threads-v2.js.map +1 -1
- package/dist/views/types.js.map +1 -1
- package/dist/views/util.js.map +1 -1
- package/package.json +7 -7
- package/src/lexicon/lexicons.ts +10 -15
- package/src/lexicon/types/com/atproto/moderation/defs.ts +10 -15
- package/src/proto/bsky_connect.ts +110 -318
- package/src/proto/bsky_pb.ts +4352 -9495
- package/src/proto/bsync_connect.ts +13 -27
- package/src/proto/bsync_pb.ts +391 -693
- package/src/proto/courier_connect.ts +11 -21
- package/src/proto/courier_pb.ts +244 -476
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"like.js","sourceRoot":"","sources":["../../../../../src/data-plane/server/indexing/plugins/like.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,4CAAgE;AAChE,kEAAmD;AAMnD,wCAAkD;AAClD,4CAA8C;AAE9C,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,eAAe,CAAA;AAKrC,MAAM,QAAQ,GAAG,KAAK,EACpB,EAAkB,EAClB,GAAU,EACV,GAAQ,EACR,GAAgB,EAChB,SAAiB,EACY,EAAE;IAC/B,MAAM,QAAQ,GAAG,MAAM,EAAE;SACtB,UAAU,CAAC,MAAM,CAAC;SAClB,MAAM,CAAC;QACN,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;QACnB,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;QACnB,OAAO,EAAE,GAAG,CAAC,IAAI;QACjB,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG;QACxB,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG;QAC3B,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG;QACjB,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG;QACpB,SAAS,EAAE,IAAA,gCAAuB,EAAC,GAAG,CAAC,SAAS,CAAC;QACjD,SAAS,EAAE,SAAS;KACrB,CAAC;SACD,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC;SAClC,YAAY,EAAE;SACd,gBAAgB,EAAE,CAAA;IACrB,OAAO,QAAQ,IAAI,IAAI,CAAA;AACzB,CAAC,CAAA;AAED,MAAM,aAAa,GAAG,KAAK,EACzB,EAAkB,EAClB,GAAU,EACV,GAAgB,EACO,EAAE;IACzB,MAAM,KAAK,GAAG,MAAM,EAAE;SACnB,UAAU,CAAC,MAAM,CAAC;SAClB,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;SAC/B,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC;SACtC,SAAS,EAAE;SACX,gBAAgB,EAAE,CAAA;IACrB,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,cAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AAC5C,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,CAAC,GAAgB,EAAE,EAAE;IAC3C,MAAM,UAAU,GAAG,IAAI,cAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IACzC,6BAA6B;IAC7B,MAAM,qBAAqB,GAAG,UAAU,CAAC,IAAI,KAAK,GAAG,CAAC,OAAO,CAAA;IAC7D,IAAI,qBAAqB,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,MAAM,GAAY;QACtB,kDAAkD;QAClD;YACE,GAAG,EAAE,UAAU,CAAC,IAAI;YACpB,MAAM,EAAE,GAAG,CAAC,OAAO;YACnB,SAAS,EAAE,GAAG,CAAC,GAAG;YAClB,SAAS,EAAE,GAAG,CAAC,GAAG;YAClB,MAAM,EAAE,MAAe;YACvB,aAAa,EAAE,UAAU,CAAC,QAAQ,EAAE;YACpC,MAAM,EAAE,GAAG,CAAC,MAAM;SACnB;KACF,CAAA;IAED,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;QACZ,MAAM,MAAM,GAAG,IAAI,cAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACjC,MAAM,wBAAwB,GAAG,MAAM,CAAC,IAAI,KAAK,GAAG,CAAC,OAAO,CAAA;QAC5D,6BAA6B;QAC7B,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI;YACT,mEAAmE;YACnE;gBACE,GAAG,EAAE,MAAM,CAAC,IAAI;gBAChB,MAAM,EAAE,GAAG,CAAC,OAAO;gBACnB,SAAS,EAAE,GAAG,CAAC,GAAG;gBAClB,SAAS,EAAE,GAAG,CAAC,GAAG;gBAClB,MAAM,EAAE,iBAA0B;gBAClC,aAAa,EAAE,MAAM,CAAC,QAAQ,EAAE;gBAChC,MAAM,EAAE,GAAG,CAAC,MAAM;aACnB,CACF,CAAA;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED,MAAM,QAAQ,GAAG,KAAK,EACpB,EAAkB,EAClB,GAAU,EACmB,EAAE;IAC/B,MAAM,OAAO,GAAG,MAAM,EAAE;SACrB,UAAU,CAAC,MAAM,CAAC;SAClB,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC;SACjC,YAAY,EAAE;SACd,gBAAgB,EAAE,CAAA;IACrB,OAAO,OAAO,IAAI,IAAI,CAAA;AACxB,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,CACtB,OAAoB,EACpB,UAA8B,EAC9B,EAAE;IACF,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IAChD,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAA;AACjC,CAAC,CAAA;AAED,MAAM,gBAAgB,GAAG,KAAK,EAAE,EAAkB,EAAE,IAAiB,EAAE,EAAE;IACvE,MAAM,WAAW,GAAG,EAAE;SACnB,UAAU,CAAC,UAAU,CAAC;SACtB,MAAM,CAAC;QACN,GAAG,EAAE,IAAI,CAAC,OAAO;QACjB,SAAS,EAAE,EAAE;aACV,UAAU,CAAC,MAAM,CAAC;aAClB,KAAK,CAAC,cAAc,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC;aACxC,MAAM,CAAC,eAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;KAChC,CAAC;SACD,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CACjB,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,IAAA,eAAQ,EAAC,EAAE,EAAE,WAAW,CAAC,EAAE,CAAC,CACvE,CAAA;IACH,MAAM,WAAW,CAAC,OAAO,EAAE,CAAA;AAC7B,CAAC,CAAA;AAIM,MAAM,UAAU,GAAG,CACxB,EAAY,EACZ,UAA2B,EACf,EAAE;IACd,OAAO,IAAI,2BAAe,CAAC,EAAE,EAAE,UAAU,EAAE;QACzC,KAAK;QACL,QAAQ;QACR,aAAa;QACb,QAAQ;QACR,eAAe;QACf,eAAe;QACf,gBAAgB;KACjB,CAAC,CAAA;AACJ,CAAC,CAAA;AAbY,QAAA,UAAU,cAatB;AAED,kBAAe,kBAAU,CAAA"}
|
|
1
|
+
{"version":3,"file":"like.js","sourceRoot":"","sources":["../../../../../src/data-plane/server/indexing/plugins/like.ts"],"names":[],"mappings":"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","sourcesContent":["import { Insertable, Selectable } from 'kysely'\nimport { CID } from 'multiformats/cid'\nimport { AtUri, normalizeDatetimeAlways } from '@atproto/syntax'\nimport * as lex from '../../../../lexicon/lexicons'\nimport * as Like from '../../../../lexicon/types/app/bsky/feed/like'\nimport { BackgroundQueue } from '../../background'\nimport { Database } from '../../db'\nimport { DatabaseSchema, DatabaseSchemaType } from '../../db/database-schema'\nimport { Notification } from '../../db/tables/notification'\nimport { countAll, excluded } from '../../db/util'\nimport { RecordProcessor } from '../processor'\n\nconst lexId = lex.ids.AppBskyFeedLike\n\ntype Notif = Insertable<Notification>\ntype IndexedLike = Selectable<DatabaseSchemaType['like']>\n\nconst insertFn = async (\n db: DatabaseSchema,\n uri: AtUri,\n cid: CID,\n obj: Like.Record,\n timestamp: string,\n): Promise<IndexedLike | null> => {\n const inserted = await db\n .insertInto('like')\n .values({\n uri: uri.toString(),\n cid: cid.toString(),\n creator: uri.host,\n subject: obj.subject.uri,\n subjectCid: obj.subject.cid,\n via: obj.via?.uri,\n viaCid: obj.via?.cid,\n createdAt: normalizeDatetimeAlways(obj.createdAt),\n indexedAt: timestamp,\n })\n .onConflict((oc) => oc.doNothing())\n .returningAll()\n .executeTakeFirst()\n return inserted || null\n}\n\nconst findDuplicate = async (\n db: DatabaseSchema,\n uri: AtUri,\n obj: Like.Record,\n): Promise<AtUri | null> => {\n const found = await db\n .selectFrom('like')\n .where('creator', '=', uri.host)\n .where('subject', '=', obj.subject.uri)\n .selectAll()\n .executeTakeFirst()\n return found ? new AtUri(found.uri) : null\n}\n\nconst notifsForInsert = (obj: IndexedLike) => {\n const subjectUri = new AtUri(obj.subject)\n // prevent self-notifications\n const isLikeFromSubjectUser = subjectUri.host === obj.creator\n if (isLikeFromSubjectUser) {\n return []\n }\n\n const notifs: Notif[] = [\n // Notification to the author of the liked record.\n {\n did: subjectUri.host,\n author: obj.creator,\n recordUri: obj.uri,\n recordCid: obj.cid,\n reason: 'like' as const,\n reasonSubject: subjectUri.toString(),\n sortAt: obj.sortAt,\n },\n ]\n\n if (obj.via) {\n const viaUri = new AtUri(obj.via)\n const isLikeFromViaSubjectUser = viaUri.host === obj.creator\n // prevent self-notifications\n if (!isLikeFromViaSubjectUser) {\n notifs.push(\n // Notification to the reposter via whose repost the like was made.\n {\n did: viaUri.host,\n author: obj.creator,\n recordUri: obj.uri,\n recordCid: obj.cid,\n reason: 'like-via-repost' as const,\n reasonSubject: viaUri.toString(),\n sortAt: obj.sortAt,\n },\n )\n }\n }\n\n return notifs\n}\n\nconst deleteFn = async (\n db: DatabaseSchema,\n uri: AtUri,\n): Promise<IndexedLike | null> => {\n const deleted = await db\n .deleteFrom('like')\n .where('uri', '=', uri.toString())\n .returningAll()\n .executeTakeFirst()\n return deleted || null\n}\n\nconst notifsForDelete = (\n deleted: IndexedLike,\n replacedBy: IndexedLike | null,\n) => {\n const toDelete = replacedBy ? [] : [deleted.uri]\n return { notifs: [], toDelete }\n}\n\nconst updateAggregates = async (db: DatabaseSchema, like: IndexedLike) => {\n const likeCountQb = db\n .insertInto('post_agg')\n .values({\n uri: like.subject,\n likeCount: db\n .selectFrom('like')\n .where('like.subject', '=', like.subject)\n .select(countAll.as('count')),\n })\n .onConflict((oc) =>\n oc.column('uri').doUpdateSet({ likeCount: excluded(db, 'likeCount') }),\n )\n await likeCountQb.execute()\n}\n\nexport type PluginType = RecordProcessor<Like.Record, IndexedLike>\n\nexport const makePlugin = (\n db: Database,\n background: BackgroundQueue,\n): PluginType => {\n return new RecordProcessor(db, background, {\n lexId,\n insertFn,\n findDuplicate,\n deleteFn,\n notifsForInsert,\n notifsForDelete,\n updateAggregates,\n })\n}\n\nexport default makePlugin\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-block.js","sourceRoot":"","sources":["../../../../../src/data-plane/server/indexing/plugins/list-block.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,4CAAgE;AAChE,kEAAmD;AAKnD,4CAA8C;AAE9C,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,qBAAqB,CAAA;AAG3C,MAAM,QAAQ,GAAG,KAAK,EACpB,EAAkB,EAClB,GAAU,EACV,GAAQ,EACR,GAAqB,EACrB,SAAiB,EACiB,EAAE;IACpC,MAAM,QAAQ,GAAG,MAAM,EAAE;SACtB,UAAU,CAAC,YAAY,CAAC;SACxB,MAAM,CAAC;QACN,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;QACnB,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;QACnB,OAAO,EAAE,GAAG,CAAC,IAAI;QACjB,UAAU,EAAE,GAAG,CAAC,OAAO;QACvB,SAAS,EAAE,IAAA,gCAAuB,EAAC,GAAG,CAAC,SAAS,CAAC;QACjD,SAAS,EAAE,SAAS;KACrB,CAAC;SACD,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC;SAClC,YAAY,EAAE;SACd,gBAAgB,EAAE,CAAA;IACrB,OAAO,QAAQ,IAAI,IAAI,CAAA;AACzB,CAAC,CAAA;AAED,MAAM,aAAa,GAAG,KAAK,EACzB,EAAkB,EAClB,GAAU,EACV,GAAqB,EACE,EAAE;IACzB,MAAM,KAAK,GAAG,MAAM,EAAE;SACnB,UAAU,CAAC,YAAY,CAAC;SACxB,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;SAC/B,KAAK,CAAC,YAAY,EAAE,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC;SACrC,SAAS,EAAE;SACX,gBAAgB,EAAE,CAAA;IACrB,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,cAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AAC5C,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,GAAG,EAAE;IAC3B,OAAO,EAAE,CAAA;AACX,CAAC,CAAA;AAED,MAAM,QAAQ,GAAG,KAAK,EACpB,EAAkB,EAClB,GAAU,EACwB,EAAE;IACpC,MAAM,OAAO,GAAG,MAAM,EAAE;SACrB,UAAU,CAAC,YAAY,CAAC;SACxB,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC;SACjC,YAAY,EAAE;SACd,gBAAgB,EAAE,CAAA;IACrB,OAAO,OAAO,IAAI,IAAI,CAAA;AACxB,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,GAAG,EAAE;IAC3B,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAA;AACrC,CAAC,CAAA;AAIM,MAAM,UAAU,GAAG,CACxB,EAAY,EACZ,UAA2B,EACf,EAAE;IACd,OAAO,IAAI,2BAAe,CAAC,EAAE,EAAE,UAAU,EAAE;QACzC,KAAK;QACL,QAAQ;QACR,aAAa;QACb,QAAQ;QACR,eAAe;QACf,eAAe;KAChB,CAAC,CAAA;AACJ,CAAC,CAAA;AAZY,QAAA,UAAU,cAYtB;AAED,kBAAe,kBAAU,CAAA"}
|
|
1
|
+
{"version":3,"file":"list-block.js","sourceRoot":"","sources":["../../../../../src/data-plane/server/indexing/plugins/list-block.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,4CAAgE;AAChE,kEAAmD;AAKnD,4CAA8C;AAE9C,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,qBAAqB,CAAA;AAG3C,MAAM,QAAQ,GAAG,KAAK,EACpB,EAAkB,EAClB,GAAU,EACV,GAAQ,EACR,GAAqB,EACrB,SAAiB,EACiB,EAAE;IACpC,MAAM,QAAQ,GAAG,MAAM,EAAE;SACtB,UAAU,CAAC,YAAY,CAAC;SACxB,MAAM,CAAC;QACN,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;QACnB,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;QACnB,OAAO,EAAE,GAAG,CAAC,IAAI;QACjB,UAAU,EAAE,GAAG,CAAC,OAAO;QACvB,SAAS,EAAE,IAAA,gCAAuB,EAAC,GAAG,CAAC,SAAS,CAAC;QACjD,SAAS,EAAE,SAAS;KACrB,CAAC;SACD,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC;SAClC,YAAY,EAAE;SACd,gBAAgB,EAAE,CAAA;IACrB,OAAO,QAAQ,IAAI,IAAI,CAAA;AACzB,CAAC,CAAA;AAED,MAAM,aAAa,GAAG,KAAK,EACzB,EAAkB,EAClB,GAAU,EACV,GAAqB,EACE,EAAE;IACzB,MAAM,KAAK,GAAG,MAAM,EAAE;SACnB,UAAU,CAAC,YAAY,CAAC;SACxB,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;SAC/B,KAAK,CAAC,YAAY,EAAE,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC;SACrC,SAAS,EAAE;SACX,gBAAgB,EAAE,CAAA;IACrB,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,cAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AAC5C,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,GAAG,EAAE;IAC3B,OAAO,EAAE,CAAA;AACX,CAAC,CAAA;AAED,MAAM,QAAQ,GAAG,KAAK,EACpB,EAAkB,EAClB,GAAU,EACwB,EAAE;IACpC,MAAM,OAAO,GAAG,MAAM,EAAE;SACrB,UAAU,CAAC,YAAY,CAAC;SACxB,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC;SACjC,YAAY,EAAE;SACd,gBAAgB,EAAE,CAAA;IACrB,OAAO,OAAO,IAAI,IAAI,CAAA;AACxB,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,GAAG,EAAE;IAC3B,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAA;AACrC,CAAC,CAAA;AAIM,MAAM,UAAU,GAAG,CACxB,EAAY,EACZ,UAA2B,EACf,EAAE;IACd,OAAO,IAAI,2BAAe,CAAC,EAAE,EAAE,UAAU,EAAE;QACzC,KAAK;QACL,QAAQ;QACR,aAAa;QACb,QAAQ;QACR,eAAe;QACf,eAAe;KAChB,CAAC,CAAA;AACJ,CAAC,CAAA;AAZY,QAAA,UAAU,cAYtB;AAED,kBAAe,kBAAU,CAAA","sourcesContent":["import { Selectable } from 'kysely'\nimport { CID } from 'multiformats/cid'\nimport { AtUri, normalizeDatetimeAlways } from '@atproto/syntax'\nimport * as lex from '../../../../lexicon/lexicons'\nimport * as ListBlock from '../../../../lexicon/types/app/bsky/graph/listblock'\nimport { BackgroundQueue } from '../../background'\nimport { Database } from '../../db'\nimport { DatabaseSchema, DatabaseSchemaType } from '../../db/database-schema'\nimport { RecordProcessor } from '../processor'\n\nconst lexId = lex.ids.AppBskyGraphListblock\ntype IndexedListBlock = Selectable<DatabaseSchemaType['list_block']>\n\nconst insertFn = async (\n db: DatabaseSchema,\n uri: AtUri,\n cid: CID,\n obj: ListBlock.Record,\n timestamp: string,\n): Promise<IndexedListBlock | null> => {\n const inserted = await db\n .insertInto('list_block')\n .values({\n uri: uri.toString(),\n cid: cid.toString(),\n creator: uri.host,\n subjectUri: obj.subject,\n createdAt: normalizeDatetimeAlways(obj.createdAt),\n indexedAt: timestamp,\n })\n .onConflict((oc) => oc.doNothing())\n .returningAll()\n .executeTakeFirst()\n return inserted || null\n}\n\nconst findDuplicate = async (\n db: DatabaseSchema,\n uri: AtUri,\n obj: ListBlock.Record,\n): Promise<AtUri | null> => {\n const found = await db\n .selectFrom('list_block')\n .where('creator', '=', uri.host)\n .where('subjectUri', '=', obj.subject)\n .selectAll()\n .executeTakeFirst()\n return found ? new AtUri(found.uri) : null\n}\n\nconst notifsForInsert = () => {\n return []\n}\n\nconst deleteFn = async (\n db: DatabaseSchema,\n uri: AtUri,\n): Promise<IndexedListBlock | null> => {\n const deleted = await db\n .deleteFrom('list_block')\n .where('uri', '=', uri.toString())\n .returningAll()\n .executeTakeFirst()\n return deleted || null\n}\n\nconst notifsForDelete = () => {\n return { notifs: [], toDelete: [] }\n}\n\nexport type PluginType = RecordProcessor<ListBlock.Record, IndexedListBlock>\n\nexport const makePlugin = (\n db: Database,\n background: BackgroundQueue,\n): PluginType => {\n return new RecordProcessor(db, background, {\n lexId,\n insertFn,\n findDuplicate,\n deleteFn,\n notifsForInsert,\n notifsForDelete,\n })\n}\n\nexport default makePlugin\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-item.js","sourceRoot":"","sources":["../../../../../src/data-plane/server/indexing/plugins/list-item.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,4CAAgE;AAChE,sDAA0D;AAC1D,kEAAmD;AAKnD,4CAA8C;AAE9C,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,oBAAoB,CAAA;AAG1C,MAAM,QAAQ,GAAG,KAAK,EACpB,EAAkB,EAClB,GAAU,EACV,GAAQ,EACR,GAAoB,EACpB,SAAiB,EACgB,EAAE;IACnC,MAAM,OAAO,GAAG,IAAI,cAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACnC,IAAI,OAAO,CAAC,QAAQ,KAAK,GAAG,CAAC,QAAQ,EAAE,CAAC;QACtC,MAAM,IAAI,iCAAmB,CAC3B,oDAAoD,CACrD,CAAA;IACH,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,EAAE;SACtB,UAAU,CAAC,WAAW,CAAC;SACvB,MAAM,CAAC;QACN,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;QACnB,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;QACnB,OAAO,EAAE,GAAG,CAAC,IAAI;QACjB,UAAU,EAAE,GAAG,CAAC,OAAO;QACvB,OAAO,EAAE,GAAG,CAAC,IAAI;QACjB,SAAS,EAAE,IAAA,gCAAuB,EAAC,GAAG,CAAC,SAAS,CAAC;QACjD,SAAS,EAAE,SAAS;KACrB,CAAC;SACD,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC;SAClC,YAAY,EAAE;SACd,gBAAgB,EAAE,CAAA;IACrB,OAAO,QAAQ,IAAI,IAAI,CAAA;AACzB,CAAC,CAAA;AAED,MAAM,aAAa,GAAG,KAAK,EACzB,EAAkB,EAClB,IAAW,EACX,GAAoB,EACG,EAAE;IACzB,MAAM,KAAK,GAAG,MAAM,EAAE;SACnB,UAAU,CAAC,WAAW,CAAC;SACvB,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;SAC/B,KAAK,CAAC,YAAY,EAAE,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC;SACrC,SAAS,EAAE;SACX,gBAAgB,EAAE,CAAA;IACrB,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,cAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AAC5C,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,GAAG,EAAE;IAC3B,OAAO,EAAE,CAAA;AACX,CAAC,CAAA;AAED,MAAM,QAAQ,GAAG,KAAK,EACpB,EAAkB,EAClB,GAAU,EACuB,EAAE;IACnC,MAAM,OAAO,GAAG,MAAM,EAAE;SACrB,UAAU,CAAC,WAAW,CAAC;SACvB,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC;SACjC,YAAY,EAAE;SACd,gBAAgB,EAAE,CAAA;IACrB,OAAO,OAAO,IAAI,IAAI,CAAA;AACxB,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,GAAG,EAAE;IAC3B,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAA;AACrC,CAAC,CAAA;AAIM,MAAM,UAAU,GAAG,CACxB,EAAY,EACZ,UAA2B,EACf,EAAE;IACd,OAAO,IAAI,2BAAe,CAAC,EAAE,EAAE,UAAU,EAAE;QACzC,KAAK;QACL,QAAQ;QACR,aAAa;QACb,QAAQ;QACR,eAAe;QACf,eAAe;KAChB,CAAC,CAAA;AACJ,CAAC,CAAA;AAZY,QAAA,UAAU,cAYtB;AAED,kBAAe,kBAAU,CAAA"}
|
|
1
|
+
{"version":3,"file":"list-item.js","sourceRoot":"","sources":["../../../../../src/data-plane/server/indexing/plugins/list-item.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,4CAAgE;AAChE,sDAA0D;AAC1D,kEAAmD;AAKnD,4CAA8C;AAE9C,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,oBAAoB,CAAA;AAG1C,MAAM,QAAQ,GAAG,KAAK,EACpB,EAAkB,EAClB,GAAU,EACV,GAAQ,EACR,GAAoB,EACpB,SAAiB,EACgB,EAAE;IACnC,MAAM,OAAO,GAAG,IAAI,cAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACnC,IAAI,OAAO,CAAC,QAAQ,KAAK,GAAG,CAAC,QAAQ,EAAE,CAAC;QACtC,MAAM,IAAI,iCAAmB,CAC3B,oDAAoD,CACrD,CAAA;IACH,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,EAAE;SACtB,UAAU,CAAC,WAAW,CAAC;SACvB,MAAM,CAAC;QACN,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;QACnB,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;QACnB,OAAO,EAAE,GAAG,CAAC,IAAI;QACjB,UAAU,EAAE,GAAG,CAAC,OAAO;QACvB,OAAO,EAAE,GAAG,CAAC,IAAI;QACjB,SAAS,EAAE,IAAA,gCAAuB,EAAC,GAAG,CAAC,SAAS,CAAC;QACjD,SAAS,EAAE,SAAS;KACrB,CAAC;SACD,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC;SAClC,YAAY,EAAE;SACd,gBAAgB,EAAE,CAAA;IACrB,OAAO,QAAQ,IAAI,IAAI,CAAA;AACzB,CAAC,CAAA;AAED,MAAM,aAAa,GAAG,KAAK,EACzB,EAAkB,EAClB,IAAW,EACX,GAAoB,EACG,EAAE;IACzB,MAAM,KAAK,GAAG,MAAM,EAAE;SACnB,UAAU,CAAC,WAAW,CAAC;SACvB,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;SAC/B,KAAK,CAAC,YAAY,EAAE,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC;SACrC,SAAS,EAAE;SACX,gBAAgB,EAAE,CAAA;IACrB,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,cAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AAC5C,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,GAAG,EAAE;IAC3B,OAAO,EAAE,CAAA;AACX,CAAC,CAAA;AAED,MAAM,QAAQ,GAAG,KAAK,EACpB,EAAkB,EAClB,GAAU,EACuB,EAAE;IACnC,MAAM,OAAO,GAAG,MAAM,EAAE;SACrB,UAAU,CAAC,WAAW,CAAC;SACvB,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC;SACjC,YAAY,EAAE;SACd,gBAAgB,EAAE,CAAA;IACrB,OAAO,OAAO,IAAI,IAAI,CAAA;AACxB,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,GAAG,EAAE;IAC3B,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAA;AACrC,CAAC,CAAA;AAIM,MAAM,UAAU,GAAG,CACxB,EAAY,EACZ,UAA2B,EACf,EAAE;IACd,OAAO,IAAI,2BAAe,CAAC,EAAE,EAAE,UAAU,EAAE;QACzC,KAAK;QACL,QAAQ;QACR,aAAa;QACb,QAAQ;QACR,eAAe;QACf,eAAe;KAChB,CAAC,CAAA;AACJ,CAAC,CAAA;AAZY,QAAA,UAAU,cAYtB;AAED,kBAAe,kBAAU,CAAA","sourcesContent":["import { Selectable } from 'kysely'\nimport { CID } from 'multiformats/cid'\nimport { AtUri, normalizeDatetimeAlways } from '@atproto/syntax'\nimport { InvalidRequestError } from '@atproto/xrpc-server'\nimport * as lex from '../../../../lexicon/lexicons'\nimport * as ListItem from '../../../../lexicon/types/app/bsky/graph/listitem'\nimport { BackgroundQueue } from '../../background'\nimport { Database } from '../../db'\nimport { DatabaseSchema, DatabaseSchemaType } from '../../db/database-schema'\nimport { RecordProcessor } from '../processor'\n\nconst lexId = lex.ids.AppBskyGraphListitem\ntype IndexedListItem = Selectable<DatabaseSchemaType['list_item']>\n\nconst insertFn = async (\n db: DatabaseSchema,\n uri: AtUri,\n cid: CID,\n obj: ListItem.Record,\n timestamp: string,\n): Promise<IndexedListItem | null> => {\n const listUri = new AtUri(obj.list)\n if (listUri.hostname !== uri.hostname) {\n throw new InvalidRequestError(\n 'Creator of listitem does not match creator of list',\n )\n }\n const inserted = await db\n .insertInto('list_item')\n .values({\n uri: uri.toString(),\n cid: cid.toString(),\n creator: uri.host,\n subjectDid: obj.subject,\n listUri: obj.list,\n createdAt: normalizeDatetimeAlways(obj.createdAt),\n indexedAt: timestamp,\n })\n .onConflict((oc) => oc.doNothing())\n .returningAll()\n .executeTakeFirst()\n return inserted || null\n}\n\nconst findDuplicate = async (\n db: DatabaseSchema,\n _uri: AtUri,\n obj: ListItem.Record,\n): Promise<AtUri | null> => {\n const found = await db\n .selectFrom('list_item')\n .where('listUri', '=', obj.list)\n .where('subjectDid', '=', obj.subject)\n .selectAll()\n .executeTakeFirst()\n return found ? new AtUri(found.uri) : null\n}\n\nconst notifsForInsert = () => {\n return []\n}\n\nconst deleteFn = async (\n db: DatabaseSchema,\n uri: AtUri,\n): Promise<IndexedListItem | null> => {\n const deleted = await db\n .deleteFrom('list_item')\n .where('uri', '=', uri.toString())\n .returningAll()\n .executeTakeFirst()\n return deleted || null\n}\n\nconst notifsForDelete = () => {\n return { notifs: [], toDelete: [] }\n}\n\nexport type PluginType = RecordProcessor<ListItem.Record, IndexedListItem>\n\nexport const makePlugin = (\n db: Database,\n background: BackgroundQueue,\n): PluginType => {\n return new RecordProcessor(db, background, {\n lexId,\n insertFn,\n findDuplicate,\n deleteFn,\n notifsForInsert,\n notifsForDelete,\n })\n}\n\nexport default makePlugin\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../../src/data-plane/server/indexing/plugins/list.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,4CAAgE;AAChE,kEAAmD;AAKnD,4CAA8C;AAE9C,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAA;AAGtC,MAAM,QAAQ,GAAG,KAAK,EACpB,EAAkB,EAClB,GAAU,EACV,GAAQ,EACR,GAAgB,EAChB,SAAiB,EACY,EAAE;IAC/B,MAAM,QAAQ,GAAG,MAAM,EAAE;SACtB,UAAU,CAAC,MAAM,CAAC;SAClB,MAAM,CAAC;QACN,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;QACnB,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;QACnB,OAAO,EAAE,GAAG,CAAC,IAAI;QACjB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,iBAAiB,EAAE,GAAG,CAAC,iBAAiB;YACtC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC;YACvC,CAAC,CAAC,SAAS;QACb,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,EAAE;QACrC,SAAS,EAAE,IAAA,gCAAuB,EAAC,GAAG,CAAC,SAAS,CAAC;QACjD,SAAS,EAAE,SAAS;KACrB,CAAC;SACD,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC;SAClC,YAAY,EAAE;SACd,gBAAgB,EAAE,CAAA;IACrB,OAAO,QAAQ,IAAI,IAAI,CAAA;AACzB,CAAC,CAAA;AAED,MAAM,aAAa,GAAG,KAAK,IAA2B,EAAE;IACtD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,GAAG,EAAE;IAC3B,OAAO,EAAE,CAAA;AACX,CAAC,CAAA;AAED,MAAM,QAAQ,GAAG,KAAK,EACpB,EAAkB,EAClB,GAAU,EACmB,EAAE;IAC/B,MAAM,OAAO,GAAG,MAAM,EAAE;SACrB,UAAU,CAAC,MAAM,CAAC;SAClB,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC;SACjC,YAAY,EAAE;SACd,gBAAgB,EAAE,CAAA;IACrB,OAAO,OAAO,IAAI,IAAI,CAAA;AACxB,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,GAAG,EAAE;IAC3B,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAA;AACrC,CAAC,CAAA;AAIM,MAAM,UAAU,GAAG,CACxB,EAAY,EACZ,UAA2B,EACf,EAAE;IACd,OAAO,IAAI,2BAAe,CAAC,EAAE,EAAE,UAAU,EAAE;QACzC,KAAK;QACL,QAAQ;QACR,aAAa;QACb,QAAQ;QACR,eAAe;QACf,eAAe;KAChB,CAAC,CAAA;AACJ,CAAC,CAAA;AAZY,QAAA,UAAU,cAYtB;AAED,kBAAe,kBAAU,CAAA"}
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../../src/data-plane/server/indexing/plugins/list.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,4CAAgE;AAChE,kEAAmD;AAKnD,4CAA8C;AAE9C,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAA;AAGtC,MAAM,QAAQ,GAAG,KAAK,EACpB,EAAkB,EAClB,GAAU,EACV,GAAQ,EACR,GAAgB,EAChB,SAAiB,EACY,EAAE;IAC/B,MAAM,QAAQ,GAAG,MAAM,EAAE;SACtB,UAAU,CAAC,MAAM,CAAC;SAClB,MAAM,CAAC;QACN,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;QACnB,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;QACnB,OAAO,EAAE,GAAG,CAAC,IAAI;QACjB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,iBAAiB,EAAE,GAAG,CAAC,iBAAiB;YACtC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC;YACvC,CAAC,CAAC,SAAS;QACb,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,EAAE;QACrC,SAAS,EAAE,IAAA,gCAAuB,EAAC,GAAG,CAAC,SAAS,CAAC;QACjD,SAAS,EAAE,SAAS;KACrB,CAAC;SACD,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC;SAClC,YAAY,EAAE;SACd,gBAAgB,EAAE,CAAA;IACrB,OAAO,QAAQ,IAAI,IAAI,CAAA;AACzB,CAAC,CAAA;AAED,MAAM,aAAa,GAAG,KAAK,IAA2B,EAAE;IACtD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,GAAG,EAAE;IAC3B,OAAO,EAAE,CAAA;AACX,CAAC,CAAA;AAED,MAAM,QAAQ,GAAG,KAAK,EACpB,EAAkB,EAClB,GAAU,EACmB,EAAE;IAC/B,MAAM,OAAO,GAAG,MAAM,EAAE;SACrB,UAAU,CAAC,MAAM,CAAC;SAClB,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC;SACjC,YAAY,EAAE;SACd,gBAAgB,EAAE,CAAA;IACrB,OAAO,OAAO,IAAI,IAAI,CAAA;AACxB,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,GAAG,EAAE;IAC3B,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAA;AACrC,CAAC,CAAA;AAIM,MAAM,UAAU,GAAG,CACxB,EAAY,EACZ,UAA2B,EACf,EAAE;IACd,OAAO,IAAI,2BAAe,CAAC,EAAE,EAAE,UAAU,EAAE;QACzC,KAAK;QACL,QAAQ;QACR,aAAa;QACb,QAAQ;QACR,eAAe;QACf,eAAe;KAChB,CAAC,CAAA;AACJ,CAAC,CAAA;AAZY,QAAA,UAAU,cAYtB;AAED,kBAAe,kBAAU,CAAA","sourcesContent":["import { Selectable } from 'kysely'\nimport { CID } from 'multiformats/cid'\nimport { AtUri, normalizeDatetimeAlways } from '@atproto/syntax'\nimport * as lex from '../../../../lexicon/lexicons'\nimport * as List from '../../../../lexicon/types/app/bsky/graph/list'\nimport { BackgroundQueue } from '../../background'\nimport { Database } from '../../db'\nimport { DatabaseSchema, DatabaseSchemaType } from '../../db/database-schema'\nimport { RecordProcessor } from '../processor'\n\nconst lexId = lex.ids.AppBskyGraphList\ntype IndexedList = Selectable<DatabaseSchemaType['list']>\n\nconst insertFn = async (\n db: DatabaseSchema,\n uri: AtUri,\n cid: CID,\n obj: List.Record,\n timestamp: string,\n): Promise<IndexedList | null> => {\n const inserted = await db\n .insertInto('list')\n .values({\n uri: uri.toString(),\n cid: cid.toString(),\n creator: uri.host,\n name: obj.name,\n purpose: obj.purpose,\n description: obj.description,\n descriptionFacets: obj.descriptionFacets\n ? JSON.stringify(obj.descriptionFacets)\n : undefined,\n avatarCid: obj.avatar?.ref.toString(),\n createdAt: normalizeDatetimeAlways(obj.createdAt),\n indexedAt: timestamp,\n })\n .onConflict((oc) => oc.doNothing())\n .returningAll()\n .executeTakeFirst()\n return inserted || null\n}\n\nconst findDuplicate = async (): Promise<AtUri | null> => {\n return null\n}\n\nconst notifsForInsert = () => {\n return []\n}\n\nconst deleteFn = async (\n db: DatabaseSchema,\n uri: AtUri,\n): Promise<IndexedList | null> => {\n const deleted = await db\n .deleteFrom('list')\n .where('uri', '=', uri.toString())\n .returningAll()\n .executeTakeFirst()\n return deleted || null\n}\n\nconst notifsForDelete = () => {\n return { notifs: [], toDelete: [] }\n}\n\nexport type PluginType = RecordProcessor<List.Record, IndexedList>\n\nexport const makePlugin = (\n db: Database,\n background: BackgroundQueue,\n): PluginType => {\n return new RecordProcessor(db, background, {\n lexId,\n insertFn,\n findDuplicate,\n deleteFn,\n notifsForInsert,\n notifsForDelete,\n })\n}\n\nexport default makePlugin\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notif-declaration.js","sourceRoot":"","sources":["../../../../../src/data-plane/server/indexing/plugins/notif-declaration.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,kEAAmD;AAInD,4CAA8C;AAE9C,6FAA6F;AAC7F,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,8BAA8B,CAAA;AAEpD,MAAM,QAAQ,GAAG,KAAK,EACpB,GAAmB,EACnB,GAAU,EACV,IAAS,EACT,IAAa,EACb,UAAkB,EACO,EAAE;IAC3B,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,IAAI,CAAA;IACpC,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,aAAa,GAAG,KAAK,IAA2B,EAAE;IACtD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,GAAG,EAAE;IAC3B,OAAO,EAAE,CAAA;AACX,CAAC,CAAA;AAED,MAAM,QAAQ,GAAG,KAAK,EACpB,GAAmB,EACnB,GAAU,EACe,EAAE;IAC3B,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,IAAI,CAAA;IACpC,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,GAAG,EAAE;IAC3B,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAA;AACrC,CAAC,CAAA;AAIM,MAAM,UAAU,GAAG,CACxB,EAAY,EACZ,UAA2B,EACf,EAAE;IACd,OAAO,IAAI,2BAAe,CAAC,EAAE,EAAE,UAAU,EAAE;QACzC,KAAK;QACL,QAAQ;QACR,aAAa;QACb,QAAQ;QACR,eAAe;QACf,eAAe;KAChB,CAAC,CAAA;AACJ,CAAC,CAAA;AAZY,QAAA,UAAU,cAYtB;AAED,kBAAe,kBAAU,CAAA"}
|
|
1
|
+
{"version":3,"file":"notif-declaration.js","sourceRoot":"","sources":["../../../../../src/data-plane/server/indexing/plugins/notif-declaration.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,kEAAmD;AAInD,4CAA8C;AAE9C,6FAA6F;AAC7F,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,8BAA8B,CAAA;AAEpD,MAAM,QAAQ,GAAG,KAAK,EACpB,GAAmB,EACnB,GAAU,EACV,IAAS,EACT,IAAa,EACb,UAAkB,EACO,EAAE;IAC3B,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,IAAI,CAAA;IACpC,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,aAAa,GAAG,KAAK,IAA2B,EAAE;IACtD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,GAAG,EAAE;IAC3B,OAAO,EAAE,CAAA;AACX,CAAC,CAAA;AAED,MAAM,QAAQ,GAAG,KAAK,EACpB,GAAmB,EACnB,GAAU,EACe,EAAE;IAC3B,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,IAAI,CAAA;IACpC,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,GAAG,EAAE;IAC3B,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAA;AACrC,CAAC,CAAA;AAIM,MAAM,UAAU,GAAG,CACxB,EAAY,EACZ,UAA2B,EACf,EAAE;IACd,OAAO,IAAI,2BAAe,CAAC,EAAE,EAAE,UAAU,EAAE;QACzC,KAAK;QACL,QAAQ;QACR,aAAa;QACb,QAAQ;QACR,eAAe;QACf,eAAe;KAChB,CAAC,CAAA;AACJ,CAAC,CAAA;AAZY,QAAA,UAAU,cAYtB;AAED,kBAAe,kBAAU,CAAA","sourcesContent":["import { CID } from 'multiformats/cid'\nimport { AtUri } from '@atproto/syntax'\nimport * as lex from '../../../../lexicon/lexicons'\nimport { BackgroundQueue } from '../../background'\nimport { Database } from '../../db'\nimport { DatabaseSchema } from '../../db/database-schema'\nimport { RecordProcessor } from '../processor'\n\n// @NOTE this indexer is a placeholder to ensure it gets indexed in the generic records table\nconst lexId = lex.ids.AppBskyNotificationDeclaration\n\nconst insertFn = async (\n _db: DatabaseSchema,\n uri: AtUri,\n _cid: CID,\n _obj: unknown,\n _timestamp: string,\n): Promise<unknown | null> => {\n if (uri.rkey !== 'self') return null\n return true\n}\n\nconst findDuplicate = async (): Promise<AtUri | null> => {\n return null\n}\n\nconst notifsForInsert = () => {\n return []\n}\n\nconst deleteFn = async (\n _db: DatabaseSchema,\n uri: AtUri,\n): Promise<unknown | null> => {\n if (uri.rkey !== 'self') return null\n return true\n}\n\nconst notifsForDelete = () => {\n return { notifs: [], toDelete: [] }\n}\n\nexport type PluginType = RecordProcessor<unknown, unknown>\n\nexport const makePlugin = (\n db: Database,\n background: BackgroundQueue,\n): PluginType => {\n return new RecordProcessor(db, background, {\n lexId,\n insertFn,\n findDuplicate,\n deleteFn,\n notifsForInsert,\n notifsForDelete,\n })\n}\n\nexport default makePlugin\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"post-gate.js","sourceRoot":"","sources":["../../../../../src/data-plane/server/indexing/plugins/post-gate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"post-gate.js","sourceRoot":"","sources":["../../../../../src/data-plane/server/indexing/plugins/post-gate.ts"],"names":[],"mappings":"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","sourcesContent":["import { CID } from 'multiformats/cid'\nimport { AtUri, normalizeDatetimeAlways } from '@atproto/syntax'\nimport { InvalidRequestError } from '@atproto/xrpc-server'\nimport * as lex from '../../../../lexicon/lexicons'\nimport * as Postgate from '../../../../lexicon/types/app/bsky/feed/postgate'\nimport { BackgroundQueue } from '../../background'\nimport { Database } from '../../db'\nimport { DatabaseSchema, DatabaseSchemaType } from '../../db/database-schema'\nimport { RecordProcessor } from '../processor'\n\nconst lexId = lex.ids.AppBskyFeedPostgate\ntype IndexedGate = DatabaseSchemaType['post_gate']\n\nconst insertFn = async (\n db: DatabaseSchema,\n uri: AtUri,\n cid: CID,\n obj: Postgate.Record,\n timestamp: string,\n): Promise<IndexedGate | null> => {\n const postUri = new AtUri(obj.post)\n if (postUri.host !== uri.host || postUri.rkey !== uri.rkey) {\n throw new InvalidRequestError(\n 'Creator and rkey of post gate does not match its post',\n )\n }\n const inserted = await db\n .insertInto('post_gate')\n .values({\n uri: uri.toString(),\n cid: cid.toString(),\n creator: uri.host,\n postUri: obj.post,\n createdAt: normalizeDatetimeAlways(obj.createdAt),\n indexedAt: timestamp,\n })\n .onConflict((oc) => oc.doNothing())\n .returningAll()\n .executeTakeFirst()\n await db\n .updateTable('post')\n .where('uri', '=', postUri.toString())\n .set({ hasPostGate: true })\n .executeTakeFirst()\n return inserted || null\n}\n\nconst findDuplicate = async (\n db: DatabaseSchema,\n _uri: AtUri,\n obj: Postgate.Record,\n): Promise<AtUri | null> => {\n const found = await db\n .selectFrom('post_gate')\n .where('postUri', '=', obj.post)\n .selectAll()\n .executeTakeFirst()\n return found ? new AtUri(found.uri) : null\n}\n\nconst notifsForInsert = () => {\n return []\n}\n\nconst deleteFn = async (\n db: DatabaseSchema,\n uri: AtUri,\n): Promise<IndexedGate | null> => {\n const deleted = await db\n .deleteFrom('post_gate')\n .where('uri', '=', uri.toString())\n .returningAll()\n .executeTakeFirst()\n if (deleted) {\n await db\n .updateTable('post')\n .where('uri', '=', deleted.postUri)\n .set({ hasPostGate: false })\n .executeTakeFirst()\n }\n return deleted || null\n}\n\nconst notifsForDelete = () => {\n return { notifs: [], toDelete: [] }\n}\n\nexport type PluginType = RecordProcessor<Postgate.Record, IndexedGate>\n\nexport const makePlugin = (\n db: Database,\n background: BackgroundQueue,\n): PluginType => {\n return new RecordProcessor(db, background, {\n lexId,\n insertFn,\n findDuplicate,\n deleteFn,\n notifsForInsert,\n notifsForDelete,\n })\n}\n\nexport default makePlugin\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"post.js","sourceRoot":"","sources":["../../../../../src/data-plane/server/indexing/plugins/post.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mCAAoD;AAEpD,8CAAkD;AAClD,4CAAgE;AAChE,kEAAmD;AACnD,gFAA6F;AAC7F,4EAAwF;AACxF,4EAAyF;AACzF,8FAA2G;AAC3G,0EAAuF;AAOvF,6EAG0D;AAE1D,gDAI8B;AAE9B,iDAAsD;AAKtD,wCAAkD;AAClD,qCAKmB;AACnB,4CAA8C;AAiC9C,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,eAAe,CAAA;AAErC,MAAM,iBAAiB,GAAG,CAAC,CAAA;AAE3B,MAAM,QAAQ,GAAG,KAAK,EACpB,EAAkB,EAClB,GAAU,EACV,GAAQ,EACR,GAAe,EACf,SAAiB,EACY,EAAE;IAC/B,MAAM,IAAI,GAAG;QACX,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;QACnB,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;QACnB,OAAO,EAAE,GAAG,CAAC,IAAI;QACjB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,SAAS,EAAE,IAAA,gCAAuB,EAAC,GAAG,CAAC,SAAS,CAAC;QACjD,SAAS,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,IAAI;QACvC,YAAY,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,IAAI;QAC1C,WAAW,EAAE,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,IAAI;QAC3C,cAAc,EAAE,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,IAAI;QAC9C,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,MAAM;YACtB,CAAC,CAAC,IAAA,YAAG,EAAU,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,6DAA6D;YAC3G,CAAC,CAAC,IAAI;QACR,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM;YACpB,CAAC,CAAC,IAAA,YAAG,EAAU,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,6DAA6D;YAC1G,CAAC,CAAC,IAAI;QACR,SAAS,EAAE,SAAS;KACrB,CAAA;IACD,MAAM,CAAC,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACvC,EAAE;aACC,UAAU,CAAC,MAAM,CAAC;aAClB,MAAM,CAAC,IAAI,CAAC;aACZ,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC;aAClC,YAAY,EAAE;aACd,gBAAgB,EAAE;QACrB,EAAE;aACC,UAAU,CAAC,WAAW,CAAC;aACvB,MAAM,CAAC;YACN,IAAI,EAAE,MAAM;YACZ,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,OAAO,EAAE,IAAI,CAAC,GAAG;YACjB,aAAa,EAAE,IAAI,CAAC,OAAO;YAC3B,MAAM,EACJ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS;SACpE,CAAC;aACD,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC;aAClC,gBAAgB,EAAE;KACtB,CAAC,CAAA;IACF,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,IAAI,CAAA,CAAC,uBAAuB;IACrC,CAAC;IAED,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QACd,MAAM,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,GAAG,MAAM,aAAa,CAClE,EAAE,EACF,GAAG,CAAC,IAAI,EACR,GAAG,CAAC,KAAK,CACV,CAAA;QACD,IAAI,gBAAgB,IAAI,kBAAkB,EAAE,CAAC;YAC3C,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,CAAC,CAAA;YACrE,MAAM,EAAE;iBACL,WAAW,CAAC,MAAM,CAAC;iBACnB,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC;iBAC3B,GAAG,CAAC,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,CAAC;iBAC7C,gBAAgB,EAAE,CAAA;QACvB,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC;SAC9B,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;SAClC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QACnB,IAAI,IAAA,iBAAS,EAAC,OAAO,CAAC,EAAE,CAAC;YACvB,OAAO;gBACL,IAAI,EAAE,SAAkB;gBACxB,KAAK,EAAE,OAAO,CAAC,GAAG;aACnB,CAAA;QACH,CAAC;QACD,IAAI,IAAA,cAAM,EAAC,OAAO,CAAC,EAAE,CAAC;YACpB,OAAO;gBACL,IAAI,EAAE,MAAe;gBACrB,KAAK,EAAE,OAAO,CAAC,GAAG;aACnB,CAAA;QACH,CAAC;QACD,OAAO,EAAE,CAAA;IACX,CAAC,CAAC,CAAA;IACJ,gBAAgB;IAChB,MAAM,MAAM,GAKN,EAAE,CAAA;IACR,MAAM,UAAU,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAC5C,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,IAAA,eAAY,EAAC,SAAS,CAAC,EAAE,CAAC;YAC5B,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;YAC5B,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC1C,OAAO,EAAE,GAAG,CAAC,QAAQ,EAAE;gBACvB,QAAQ,EAAE,CAAC;gBACX,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE;gBAClC,GAAG,EAAE,GAAG,CAAC,GAAG;aACb,CAAC,CAAC,CAAA;YACH,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;YACxB,MAAM,EAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAA;QACvE,CAAC;aAAM,IAAI,IAAA,iBAAe,EAAC,SAAS,CAAC,EAAE,CAAC;YACtC,MAAM,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAA;YAC9B,MAAM,aAAa,GAAG;gBACpB,OAAO,EAAE,GAAG,CAAC,QAAQ,EAAE;gBACvB,GAAG,EAAE,QAAQ,CAAC,GAAG;gBACjB,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,WAAW,EAAE,QAAQ,CAAC,WAAW;gBACjC,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,QAAQ,EAAE,IAAI,IAAI;aACjD,CAAA;YACD,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;YAC1B,MAAM,EAAE,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,CAAA;QAC5E,CAAC;aAAM,IAAI,IAAA,eAAa,EAAC,SAAS,CAAC,EAAE,CAAC;YACpC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;YAC5B,MAAM,QAAQ,GAAG,IAAI,cAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACtC,MAAM,WAAW,GAAG;gBAClB,OAAO,EAAE,GAAG,CAAC,QAAQ,EAAE;gBACvB,QAAQ,EAAE,MAAM,CAAC,GAAG;gBACpB,QAAQ,EAAE,MAAM,CAAC,GAAG;aACrB,CAAA;YACD,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;YACxB,MAAM,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAA;YAEtE,IAAI,QAAQ,CAAC,UAAU,KAAK,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC;gBACpD,MAAM,KAAK,GAAG;oBACZ,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;oBACnB,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;oBACnB,OAAO,EAAE,MAAM,CAAC,GAAG;oBACnB,UAAU,EAAE,MAAM,CAAC,GAAG;oBACtB,SAAS,EAAE,IAAA,gCAAuB,EAAC,GAAG,CAAC,SAAS,CAAC;oBACjD,SAAS,EAAE,SAAS;iBACrB,CAAA;gBACD,MAAM,EAAE;qBACL,UAAU,CAAC,OAAO,CAAC;qBACnB,MAAM,CAAC,KAAK,CAAC;qBACb,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC;qBAClC,YAAY,EAAE;qBACd,gBAAgB,EAAE,CAAA;gBAErB,MAAM,YAAY,GAAG,EAAE;qBACpB,UAAU,CAAC,UAAU,CAAC;qBACtB,MAAM,CAAC;oBACN,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE;oBAC1B,UAAU,EAAE,EAAE;yBACX,UAAU,CAAC,OAAO,CAAC;yBACnB,KAAK,CAAC,kBAAkB,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;yBACrD,MAAM,CAAC,eAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;iBAChC,CAAC;qBACD,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CACjB,EAAE;qBACC,MAAM,CAAC,KAAK,CAAC;qBACb,WAAW,CAAC,EAAE,UAAU,EAAE,IAAA,eAAQ,EAAC,EAAE,EAAE,YAAY,CAAC,EAAE,CAAC,CAC3D,CAAA;gBACH,MAAM,YAAY,CAAC,OAAO,EAAE,CAAA;gBAE5B,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,iBAAiB,CACxD,EAAE,EACF,QAAQ,CAAC,QAAQ,EAAE,EACnB,GAAG,CAAC,QAAQ,EAAE,CACf,CAAA;gBACD,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE;oBAC1B,sBAAsB,EAAE,sBAAsB;iBAC/C,CAAC,CAAA;gBACF,IAAI,sBAAsB,EAAE,CAAC;oBAC3B,MAAM,EAAE;yBACL,WAAW,CAAC,MAAM,CAAC;yBACnB,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,YAAY,CAAC,GAAG,CAAC;yBACnC,GAAG,CAAC,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,CAAC;yBACvD,gBAAgB,EAAE,CAAA;gBACvB,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,IAAA,cAAY,EAAC,SAAS,CAAC,EAAE,CAAC;YACnC,MAAM,EAAE,KAAK,EAAE,GAAG,SAAS,CAAA;YAC3B,MAAM,UAAU,GAAG;gBACjB,OAAO,EAAE,GAAG,CAAC,QAAQ,EAAE;gBACvB,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE;gBAC9B,qEAAqE;gBACrE,GAAG,EAAE,SAAS,CAAC,GAAG,IAAI,IAAI;aAC3B,CAAA;YACD,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YAEvB,MAAM,EAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAA;QACtE,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,CAAA;IAC5E,MAAM,SAAS,GAAG,MAAM,IAAA,4BAAqB,EAAC,EAAE,EAAE;QAChD,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,YAAY,EAAE,iBAAiB;KAChC,CAAC;SACC,UAAU,CAAC,UAAU,CAAC;SACtB,SAAS,EAAE;SACX,OAAO,EAAE,CAAA;IACZ,MAAM,WAAW,GAAG,MAAM,IAAA,uBAAgB,EAAC,EAAE,EAAE;QAC7C,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,KAAK,EAAE,iBAAiB;KACzB,CAAC;SACC,UAAU,CAAC,YAAY,CAAC;SACxB,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,gBAAgB,CAAC;SAC/C,SAAS,CAAC,YAAY,CAAC;SACvB,MAAM,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;SACpC,OAAO,EAAE,CAAA;IACZ,OAAO;QACL,IAAI,EAAE,YAAY;QAClB,MAAM;QACN,MAAM;QACN,SAAS;QACT,WAAW;QACX,UAAU;KACX,CAAA;AACH,CAAC,CAAA;AAED,MAAM,aAAa,GAAG,KAAK,IAA2B,EAAE;IACtD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,CAAC,GAAgB,EAAE,EAAE;IAC3C,MAAM,MAAM,GAAY,EAAE,CAAA;IAC1B,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;IAC5C,MAAM,WAAW,GAAG,CAAC,KAAY,EAAE,EAAE;QACnC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACvB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACpB,CAAC;IACH,CAAC,CAAA;IACD,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;QACrC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC7B,WAAW,CAAC;gBACV,GAAG,EAAE,KAAK,CAAC,KAAK;gBAChB,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO;gBACxB,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG;gBACvB,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG;gBACvB,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM;aACxB,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACrC,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;YACrC,IAAI,UAAU,IAAI,KAAK,EAAE,CAAC;gBACxB,MAAM,QAAQ,GAAG,IAAI,cAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;gBAC1C,IAAI,QAAQ,CAAC,UAAU,KAAK,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC;oBACpD,WAAW,CAAC;wBACV,GAAG,EAAE,QAAQ,CAAC,IAAI;wBAClB,MAAM,EAAE,OAAO;wBACf,aAAa,EAAE,QAAQ,CAAC,QAAQ,EAAE;wBAClC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO;wBACxB,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG;wBACvB,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG;wBACvB,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM;qBACxB,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAChC,mEAAmE;QACnE,OAAO,MAAM,CAAA;IACf,CAAC;IAED,MAAM,uBAAuB,GAAG,GAAG,CAAC,UAAU,EAAE,aAAa,IAAI,EAAE,CAAA;IAEnE,sBAAsB;IAEtB,KAAK,MAAM,QAAQ,IAAI,GAAG,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;QAC3C,IAAI,QAAQ,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG;YAAE,SAAQ,CAAC,iCAAiC;QAC7E,IAAI,QAAQ,CAAC,MAAM,GAAG,iBAAiB,EAAE,CAAC;YACxC,MAAM,WAAW,GAAG,IAAI,cAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;YAC3C,WAAW,CAAC;gBACV,GAAG,EAAE,WAAW,CAAC,IAAI;gBACrB,MAAM,EAAE,OAAO;gBACf,aAAa,EAAE,WAAW,CAAC,QAAQ,EAAE;gBACrC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO;gBACxB,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG;gBACvB,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG;gBACvB,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM;aACxB,CAAC,CAAA;YACF,wDAAwD;YACxD,IAAI,uBAAuB,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;gBAAE,MAAK;QACrE,CAAC;IACH,CAAC;IAED,6DAA6D;IAC7D,gCAAgC;IAChC,KAAK,MAAM,UAAU,IAAI,GAAG,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC;QAC/C,KAAK,MAAM,QAAQ,IAAI,GAAG,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;YAC3C,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAA;YACtD,IAAI,WAAW,GAAG,iBAAiB,EAAE,CAAC;gBACpC,MAAM,WAAW,GAAG,IAAI,cAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;gBAC3C,WAAW,CAAC;oBACV,GAAG,EAAE,WAAW,CAAC,IAAI;oBACrB,MAAM,EAAE,OAAO;oBACf,aAAa,EAAE,WAAW,CAAC,QAAQ,EAAE;oBACrC,MAAM,EAAE,UAAU,CAAC,OAAO;oBAC1B,SAAS,EAAE,UAAU,CAAC,GAAG;oBACzB,SAAS,EAAE,UAAU,CAAC,GAAG;oBACzB,MAAM,EAAE,UAAU,CAAC,MAAM;iBAC1B,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED,MAAM,QAAQ,GAAG,KAAK,EACpB,EAAkB,EAClB,GAAU,EACmB,EAAE;IAC/B,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAA;IAC7B,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAClC,EAAE;aACC,UAAU,CAAC,MAAM,CAAC;aAClB,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC;aACzB,YAAY,EAAE;aACd,gBAAgB,EAAE;QACrB,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,gBAAgB,EAAE;KAC5E,CAAC,CAAA;IACF,MAAM,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,OAAO,EAAE,CAAA;IACpE,MAAM,aAAa,GAIb,EAAE,CAAA;IACR,MAAM,CAAC,WAAW,EAAE,gBAAgB,EAAE,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACtE,EAAE;aACC,UAAU,CAAC,kBAAkB,CAAC;aAC9B,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC;aAC7B,YAAY,EAAE;aACd,OAAO,EAAE;QACZ,EAAE;aACC,UAAU,CAAC,qBAAqB,CAAC;aACjC,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC;aAC7B,YAAY,EAAE;aACd,gBAAgB,EAAE;QACrB,EAAE;aACC,UAAU,CAAC,mBAAmB,CAAC;aAC/B,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC;aAC7B,YAAY,EAAE;aACd,gBAAgB,EAAE;KACtB,CAAC,CAAA;IACF,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;QACvB,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IACjC,CAAC;IACD,IAAI,gBAAgB,EAAE,CAAC;QACrB,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;IACtC,CAAC;IACD,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,QAAQ,GAAG,IAAI,cAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;QACjD,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QAEhC,IAAI,QAAQ,CAAC,UAAU,KAAK,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC;YACpD,MAAM,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,OAAO,EAAE,CAAA;YAChE,MAAM,EAAE;iBACL,UAAU,CAAC,UAAU,CAAC;iBACtB,MAAM,CAAC;gBACN,GAAG,EAAE,YAAY,CAAC,QAAQ;gBAC1B,UAAU,EAAE,EAAE;qBACX,UAAU,CAAC,OAAO,CAAC;qBACnB,KAAK,CAAC,kBAAkB,EAAE,GAAG,EAAE,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;qBAChE,MAAM,CAAC,eAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;aAChC,CAAC;iBACD,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CACjB,EAAE;iBACC,MAAM,CAAC,KAAK,CAAC;iBACb,WAAW,CAAC,EAAE,UAAU,EAAE,IAAA,eAAQ,EAAC,EAAE,EAAE,YAAY,CAAC,EAAE,CAAC,CAC3D;iBACA,OAAO,EAAE,CAAA;QACd,CAAC;IACH,CAAC;IACD,OAAO,OAAO;QACZ,CAAC,CAAC;YACE,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,EAAE,EAAE,WAAW;YACvB,MAAM,EAAE,aAAa;SACtB;QACH,CAAC,CAAC,IAAI,CAAA;AACV,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,CACtB,OAAoB,EACpB,UAA8B,EAC9B,EAAE;IACF,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC5D,OAAO;QACL,MAAM;QACN,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;KAC7B,CAAA;AACH,CAAC,CAAA;AAED,MAAM,gBAAgB,GAAG,KAAK,EAAE,EAAkB,EAAE,OAAoB,EAAE,EAAE;IAC1E,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW;QAC3C,CAAC,CAAC,EAAE;aACC,UAAU,CAAC,UAAU,CAAC;aACtB,MAAM,CAAC;YACN,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW;YAC7B,UAAU,EAAE,EAAE;iBACX,UAAU,CAAC,MAAM,CAAC;iBAClB,KAAK,CAAC,kBAAkB,EAAE,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC;iBACxD,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CACZ,EAAE;iBACC,KAAK,CAAC,yBAAyB,EAAE,IAAI,EAAE,IAAI,CAAC;iBAC5C,OAAO,CAAC,yBAAyB,EAAE,GAAG,EAAE,KAAK,CAAC,CAClD;iBACA,MAAM,CAAC,eAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;SAChC,CAAC;aACD,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CACjB,EAAE;aACC,MAAM,CAAC,KAAK,CAAC;aACb,WAAW,CAAC,EAAE,UAAU,EAAE,IAAA,eAAQ,EAAC,EAAE,EAAE,YAAY,CAAC,EAAE,CAAC,CAC3D;QACL,CAAC,CAAC,IAAI,CAAA;IACR,MAAM,YAAY,GAAG,EAAE;SACpB,UAAU,CAAC,aAAa,CAAC;SACzB,MAAM,CAAC;QACN,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO;QACzB,UAAU,EAAE,EAAE;aACX,UAAU,CAAC,MAAM,CAAC;aAClB,KAAK,CAAC,cAAc,EAAE,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;aAChD,MAAM,CAAC,eAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;KAChC,CAAC;SACD,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CACjB,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,IAAA,eAAQ,EAAC,EAAE,EAAE,YAAY,CAAC,EAAE,CAAC,CACzE,CAAA;IACH,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,OAAO,EAAE,EAAE,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;AACtE,CAAC,CAAA;AAIM,MAAM,UAAU,GAAG,CACxB,EAAY,EACZ,UAA2B,EACf,EAAE;IACd,OAAO,IAAI,2BAAe,CAAC,EAAE,EAAE,UAAU,EAAE;QACzC,KAAK;QACL,QAAQ;QACR,aAAa;QACb,QAAQ;QACR,eAAe;QACf,eAAe;QACf,gBAAgB;KACjB,CAAC,CAAA;AACJ,CAAC,CAAA;AAbY,QAAA,UAAU,cAatB;AAED,kBAAe,kBAAU,CAAA;AAEzB,SAAS,cAAc,CACrB,KAA0B;IAM1B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,CAAA;IACX,CAAC;IACD,IAAI,IAAA,wBAAsB,EAAC,KAAK,CAAC,EAAE,CAAC;QAClC,OAAO,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,kBAAkB,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;IAC9E,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,CAAA;AAChB,CAAC;AAED,KAAK,UAAU,aAAa,CAC1B,EAAkB,EAClB,OAAe,EACf,KAAe;IAEf,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;IAC/C,cAAc;IACd,MAAM,gBAAgB,GACpB,CAAC,SAAS,CAAC,MAAM,IAAI,IAAA,uBAAqB,EAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,CAAA;IACrE,oBAAoB;IACpB,MAAM,kBAAkB,GAAG,MAAM,IAAA,yBAAuB,EACtD,EAAE,EACF,OAAO,EACP,IAAA,eAAQ,EAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EACxB,SAAS,CAAC,IAAI,EAAE,MAAM,IAAI,IAAI,EAC9B,SAAS,CAAC,IAAI,EAAE,MAAM,IAAI,IAAI,CAC/B,CAAA;IACD,OAAO;QACL,gBAAgB;QAChB,kBAAkB;KACnB,CAAA;AACH,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,EAAkB,EAAE,OAAe;IACpE,MAAM,mBAAmB,GAAG,IAAA,6BAAsB,EAAC,OAAO,CAAC,CAAA;IAC3D,MAAM,OAAO,GAAG,MAAM,EAAE;SACrB,UAAU,CAAC,QAAQ,CAAC;SACpB,KAAK,CAAC,YAAY,EAAE,GAAG,EAAE,mBAAmB,CAAC;SAC7C,SAAS,EAAE;SACX,OAAO,EAAE,CAAA;IACZ,MAAM,gBAAgB,GAAG,OAAO,CAAC,IAAI,CACnC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,mBAAmB,CACzC,CAAA;IACD,IAAI,gBAAgB,EAAE,CAAC;QACrB,OAAO,IAAA,yBAAe,EAAC,gBAAgB,CAAC,IAAI,CAAe,CAAA;IAC7D,CAAC;AACH,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,EAAkB,EAClB,QAAgB,EAChB,SAAiB;IAEjB,MAAM,iBAAiB,GAAG,IAAA,2BAAoB,EAAC,QAAQ,CAAC,CAAA;IACxD,MAAM,cAAc,GAAG,MAAM,EAAE;SAC5B,UAAU,CAAC,QAAQ,CAAC;SACpB,KAAK,CAAC,YAAY,EAAE,GAAG,EAAE,iBAAiB,CAAC;SAC3C,SAAS,EAAE;SACX,gBAAgB,EAAE,CAAA;IACrB,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO;YACL,sBAAsB,EAAE,KAAK;SAC9B,CAAA;IACH,CAAC;IACD,MAAM,EACJ,cAAc,EAAE,EAAE,QAAQ,EAAE,GAC7B,GAAG,IAAA,oBAAa,EAAC;QAChB,IAAI,EAAE,IAAA,yBAAe,EAAC,cAAc,CAAC,IAAI,CAAmB;QAC5D,SAAS,EAAE,IAAA,eAAQ,EAAC,SAAS,CAAC;QAC9B,SAAS,EAAE,IAAA,eAAQ,EAAC,QAAQ,CAAC;KAC9B,CAAC,CAAA;IACF,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO;YACL,sBAAsB,EAAE,KAAK;SAC9B,CAAA;IACH,CAAC;IACD,OAAO;QACL,sBAAsB,EAAE,IAAI;KAC7B,CAAA;AACH,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,EAAkB,EAAE,KAAe;IAC7D,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAA;IAChC,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAA;IACpC,MAAM,SAAS,GAAG,IAAA,6BAAsB,EAAC,SAAS,CAAC,CAAA;IACnD,MAAM,OAAO,GAAG,MAAM,EAAE;SACrB,UAAU,CAAC,QAAQ,CAAC;SACpB,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;SAC9D,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,CAAC;SAC1C,SAAS,CAAC,MAAM,CAAC;SACjB,MAAM,CAAC,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;SAC9B,OAAO,EAAE,CAAA;IACZ,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAA;IACzD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,WAAW,CAAC,CAAA;IAC7D,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAA;IACzD,OAAO;QACL,IAAI,EAAE,IAAI,IAAI;YACZ,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,MAAM,EAAE,IAAA,yBAAe,EAAC,IAAI,CAAC,IAAI,CAAe;SACjD;QACD,MAAM,EAAE,MAAM,IAAI;YAChB,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;YACzC,MAAM,EAAE,IAAA,yBAAe,EAAC,MAAM,CAAC,IAAI,CAAe;SACnD;QACD,IAAI,EAAE,IAAI,IAAI;YACZ,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,MAAM,EAAE,IAAA,yBAAe,EAAC,IAAI,CAAC,IAAI,CAAe;SACjD;KACF,CAAA;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"post.js","sourceRoot":"","sources":["../../../../../src/data-plane/server/indexing/plugins/post.ts"],"names":[],"mappings":"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","sourcesContent":["import { Insertable, Selectable, sql } from 'kysely'\nimport { CID } from 'multiformats/cid'\nimport { jsonStringToLex } from '@atproto/lexicon'\nimport { AtUri, normalizeDatetimeAlways } from '@atproto/syntax'\nimport * as lex from '../../../../lexicon/lexicons'\nimport { isMain as isEmbedExternal } from '../../../../lexicon/types/app/bsky/embed/external'\nimport { isMain as isEmbedImage } from '../../../../lexicon/types/app/bsky/embed/images'\nimport { isMain as isEmbedRecord } from '../../../../lexicon/types/app/bsky/embed/record'\nimport { isMain as isEmbedRecordWithMedia } from '../../../../lexicon/types/app/bsky/embed/recordWithMedia'\nimport { isMain as isEmbedVideo } from '../../../../lexicon/types/app/bsky/embed/video'\nimport {\n Record as PostRecord,\n ReplyRef,\n} from '../../../../lexicon/types/app/bsky/feed/post'\nimport { Record as PostgateRecord } from '../../../../lexicon/types/app/bsky/feed/postgate'\nimport { Record as GateRecord } from '../../../../lexicon/types/app/bsky/feed/threadgate'\nimport {\n isLink,\n isMention,\n} from '../../../../lexicon/types/app/bsky/richtext/facet'\nimport { $Typed } from '../../../../lexicon/util'\nimport {\n postUriToPostgateUri,\n postUriToThreadgateUri,\n uriToDid,\n} from '../../../../util/uris'\nimport { RecordWithMedia } from '../../../../views/types'\nimport { parsePostgate } from '../../../../views/util'\nimport { BackgroundQueue } from '../../background'\nimport { Database } from '../../db'\nimport { DatabaseSchema, DatabaseSchemaType } from '../../db/database-schema'\nimport { Notification } from '../../db/tables/notification'\nimport { countAll, excluded } from '../../db/util'\nimport {\n getAncestorsAndSelfQb,\n getDescendentsQb,\n invalidReplyRoot as checkInvalidReplyRoot,\n violatesThreadGate as checkViolatesThreadGate,\n} from '../../util'\nimport { RecordProcessor } from '../processor'\n\ntype Notif = Insertable<Notification>\ntype Post = Selectable<DatabaseSchemaType['post']>\ntype PostEmbedImage = DatabaseSchemaType['post_embed_image']\ntype PostEmbedExternal = DatabaseSchemaType['post_embed_external']\ntype PostEmbedRecord = DatabaseSchemaType['post_embed_record']\ntype PostEmbedVideo = DatabaseSchemaType['post_embed_video']\ntype PostAncestor = {\n uri: string\n height: number\n}\ntype PostDescendent = {\n uri: string\n depth: number\n cid: string\n creator: string\n sortAt: string\n}\ntype IndexedPost = {\n post: Post\n facets?: { type: 'mention' | 'link'; value: string }[]\n embeds?: (\n | PostEmbedImage[]\n | PostEmbedExternal\n | PostEmbedRecord\n | PostEmbedVideo\n )[]\n ancestors?: PostAncestor[]\n descendents?: PostDescendent[]\n threadgate?: GateRecord\n}\n\nconst lexId = lex.ids.AppBskyFeedPost\n\nconst REPLY_NOTIF_DEPTH = 5\n\nconst insertFn = async (\n db: DatabaseSchema,\n uri: AtUri,\n cid: CID,\n obj: PostRecord,\n timestamp: string,\n): Promise<IndexedPost | null> => {\n const post = {\n uri: uri.toString(),\n cid: cid.toString(),\n creator: uri.host,\n text: obj.text,\n createdAt: normalizeDatetimeAlways(obj.createdAt),\n replyRoot: obj.reply?.root?.uri || null,\n replyRootCid: obj.reply?.root?.cid || null,\n replyParent: obj.reply?.parent?.uri || null,\n replyParentCid: obj.reply?.parent?.cid || null,\n langs: obj.langs?.length\n ? sql<string[]>`${JSON.stringify(obj.langs)}` // sidesteps kysely's array serialization, which is non-jsonb\n : null,\n tags: obj.tags?.length\n ? sql<string[]>`${JSON.stringify(obj.tags)}` // sidesteps kysely's array serialization, which is non-jsonb\n : null,\n indexedAt: timestamp,\n }\n const [insertedPost] = await Promise.all([\n db\n .insertInto('post')\n .values(post)\n .onConflict((oc) => oc.doNothing())\n .returningAll()\n .executeTakeFirst(),\n db\n .insertInto('feed_item')\n .values({\n type: 'post',\n uri: post.uri,\n cid: post.cid,\n postUri: post.uri,\n originatorDid: post.creator,\n sortAt:\n post.indexedAt < post.createdAt ? post.indexedAt : post.createdAt,\n })\n .onConflict((oc) => oc.doNothing())\n .executeTakeFirst(),\n ])\n if (!insertedPost) {\n return null // Post already indexed\n }\n\n if (obj.reply) {\n const { invalidReplyRoot, violatesThreadGate } = await validateReply(\n db,\n uri.host,\n obj.reply,\n )\n if (invalidReplyRoot || violatesThreadGate) {\n Object.assign(insertedPost, { invalidReplyRoot, violatesThreadGate })\n await db\n .updateTable('post')\n .where('uri', '=', post.uri)\n .set({ invalidReplyRoot, violatesThreadGate })\n .executeTakeFirst()\n }\n }\n\n const facets = (obj.facets || [])\n .flatMap((facet) => facet.features)\n .flatMap((feature) => {\n if (isMention(feature)) {\n return {\n type: 'mention' as const,\n value: feature.did,\n }\n }\n if (isLink(feature)) {\n return {\n type: 'link' as const,\n value: feature.uri,\n }\n }\n return []\n })\n // Embed indices\n const embeds: (\n | PostEmbedImage[]\n | PostEmbedExternal\n | PostEmbedRecord\n | PostEmbedVideo\n )[] = []\n const postEmbeds = separateEmbeds(obj.embed)\n for (const postEmbed of postEmbeds) {\n if (isEmbedImage(postEmbed)) {\n const { images } = postEmbed\n const imagesEmbed = images.map((img, i) => ({\n postUri: uri.toString(),\n position: i,\n imageCid: img.image.ref.toString(),\n alt: img.alt,\n }))\n embeds.push(imagesEmbed)\n await db.insertInto('post_embed_image').values(imagesEmbed).execute()\n } else if (isEmbedExternal(postEmbed)) {\n const { external } = postEmbed\n const externalEmbed = {\n postUri: uri.toString(),\n uri: external.uri,\n title: external.title,\n description: external.description,\n thumbCid: external.thumb?.ref.toString() || null,\n }\n embeds.push(externalEmbed)\n await db.insertInto('post_embed_external').values(externalEmbed).execute()\n } else if (isEmbedRecord(postEmbed)) {\n const { record } = postEmbed\n const embedUri = new AtUri(record.uri)\n const recordEmbed = {\n postUri: uri.toString(),\n embedUri: record.uri,\n embedCid: record.cid,\n }\n embeds.push(recordEmbed)\n await db.insertInto('post_embed_record').values(recordEmbed).execute()\n\n if (embedUri.collection === lex.ids.AppBskyFeedPost) {\n const quote = {\n uri: uri.toString(),\n cid: cid.toString(),\n subject: record.uri,\n subjectCid: record.cid,\n createdAt: normalizeDatetimeAlways(obj.createdAt),\n indexedAt: timestamp,\n }\n await db\n .insertInto('quote')\n .values(quote)\n .onConflict((oc) => oc.doNothing())\n .returningAll()\n .executeTakeFirst()\n\n const quoteCountQb = db\n .insertInto('post_agg')\n .values({\n uri: record.uri.toString(),\n quoteCount: db\n .selectFrom('quote')\n .where('quote.subjectCid', '=', record.cid.toString())\n .select(countAll.as('count')),\n })\n .onConflict((oc) =>\n oc\n .column('uri')\n .doUpdateSet({ quoteCount: excluded(db, 'quoteCount') }),\n )\n await quoteCountQb.execute()\n\n const { violatesEmbeddingRules } = await validatePostEmbed(\n db,\n embedUri.toString(),\n uri.toString(),\n )\n Object.assign(insertedPost, {\n violatesEmbeddingRules: violatesEmbeddingRules,\n })\n if (violatesEmbeddingRules) {\n await db\n .updateTable('post')\n .where('uri', '=', insertedPost.uri)\n .set({ violatesEmbeddingRules: violatesEmbeddingRules })\n .executeTakeFirst()\n }\n }\n } else if (isEmbedVideo(postEmbed)) {\n const { video } = postEmbed\n const videoEmbed = {\n postUri: uri.toString(),\n videoCid: video.ref.toString(),\n // @NOTE: alt is required for image but not for video on the lexicon.\n alt: postEmbed.alt ?? null,\n }\n embeds.push(videoEmbed)\n\n await db.insertInto('post_embed_video').values(videoEmbed).execute()\n }\n }\n\n const threadgate = await getThreadgateRecord(db, post.replyRoot || post.uri)\n const ancestors = await getAncestorsAndSelfQb(db, {\n uri: post.uri,\n parentHeight: REPLY_NOTIF_DEPTH,\n })\n .selectFrom('ancestor')\n .selectAll()\n .execute()\n const descendents = await getDescendentsQb(db, {\n uri: post.uri,\n depth: REPLY_NOTIF_DEPTH,\n })\n .selectFrom('descendent')\n .innerJoin('post', 'post.uri', 'descendent.uri')\n .selectAll('descendent')\n .select(['cid', 'creator', 'sortAt'])\n .execute()\n return {\n post: insertedPost,\n facets,\n embeds,\n ancestors,\n descendents,\n threadgate,\n }\n}\n\nconst findDuplicate = async (): Promise<AtUri | null> => {\n return null\n}\n\nconst notifsForInsert = (obj: IndexedPost) => {\n const notifs: Notif[] = []\n const notified = new Set([obj.post.creator])\n const maybeNotify = (notif: Notif) => {\n if (!notified.has(notif.did)) {\n notified.add(notif.did)\n notifs.push(notif)\n }\n }\n for (const facet of obj.facets ?? []) {\n if (facet.type === 'mention') {\n maybeNotify({\n did: facet.value,\n reason: 'mention',\n author: obj.post.creator,\n recordUri: obj.post.uri,\n recordCid: obj.post.cid,\n sortAt: obj.post.sortAt,\n })\n }\n }\n\n if (!obj.post.violatesEmbeddingRules) {\n for (const embed of obj.embeds ?? []) {\n if ('embedUri' in embed) {\n const embedUri = new AtUri(embed.embedUri)\n if (embedUri.collection === lex.ids.AppBskyFeedPost) {\n maybeNotify({\n did: embedUri.host,\n reason: 'quote',\n reasonSubject: embedUri.toString(),\n author: obj.post.creator,\n recordUri: obj.post.uri,\n recordCid: obj.post.cid,\n sortAt: obj.post.sortAt,\n })\n }\n }\n }\n }\n\n if (obj.post.violatesThreadGate) {\n // don't generate reply notifications when post violates threadgate\n return notifs\n }\n\n const threadgateHiddenReplies = obj.threadgate?.hiddenReplies || []\n\n // reply notifications\n\n for (const ancestor of obj.ancestors ?? []) {\n if (ancestor.uri === obj.post.uri) continue // no need to notify for own post\n if (ancestor.height < REPLY_NOTIF_DEPTH) {\n const ancestorUri = new AtUri(ancestor.uri)\n maybeNotify({\n did: ancestorUri.host,\n reason: 'reply',\n reasonSubject: ancestorUri.toString(),\n author: obj.post.creator,\n recordUri: obj.post.uri,\n recordCid: obj.post.cid,\n sortAt: obj.post.sortAt,\n })\n // found hidden reply, don't notify any higher ancestors\n if (threadgateHiddenReplies.includes(ancestorUri.toString())) break\n }\n }\n\n // descendents indicate out-of-order indexing: need to notify\n // the current post and upwards.\n for (const descendent of obj.descendents ?? []) {\n for (const ancestor of obj.ancestors ?? []) {\n const totalHeight = descendent.depth + ancestor.height\n if (totalHeight < REPLY_NOTIF_DEPTH) {\n const ancestorUri = new AtUri(ancestor.uri)\n maybeNotify({\n did: ancestorUri.host,\n reason: 'reply',\n reasonSubject: ancestorUri.toString(),\n author: descendent.creator,\n recordUri: descendent.uri,\n recordCid: descendent.cid,\n sortAt: descendent.sortAt,\n })\n }\n }\n }\n\n return notifs\n}\n\nconst deleteFn = async (\n db: DatabaseSchema,\n uri: AtUri,\n): Promise<IndexedPost | null> => {\n const uriStr = uri.toString()\n const [deleted] = await Promise.all([\n db\n .deleteFrom('post')\n .where('uri', '=', uriStr)\n .returningAll()\n .executeTakeFirst(),\n db.deleteFrom('feed_item').where('postUri', '=', uriStr).executeTakeFirst(),\n ])\n await db.deleteFrom('quote').where('subject', '=', uriStr).execute()\n const deletedEmbeds: (\n | PostEmbedImage[]\n | PostEmbedExternal\n | PostEmbedRecord\n )[] = []\n const [deletedImgs, deletedExternals, deletedPosts] = await Promise.all([\n db\n .deleteFrom('post_embed_image')\n .where('postUri', '=', uriStr)\n .returningAll()\n .execute(),\n db\n .deleteFrom('post_embed_external')\n .where('postUri', '=', uriStr)\n .returningAll()\n .executeTakeFirst(),\n db\n .deleteFrom('post_embed_record')\n .where('postUri', '=', uriStr)\n .returningAll()\n .executeTakeFirst(),\n ])\n if (deletedImgs.length) {\n deletedEmbeds.push(deletedImgs)\n }\n if (deletedExternals) {\n deletedEmbeds.push(deletedExternals)\n }\n if (deletedPosts) {\n const embedUri = new AtUri(deletedPosts.embedUri)\n deletedEmbeds.push(deletedPosts)\n\n if (embedUri.collection === lex.ids.AppBskyFeedPost) {\n await db.deleteFrom('quote').where('uri', '=', uriStr).execute()\n await db\n .insertInto('post_agg')\n .values({\n uri: deletedPosts.embedUri,\n quoteCount: db\n .selectFrom('quote')\n .where('quote.subjectCid', '=', deletedPosts.embedCid.toString())\n .select(countAll.as('count')),\n })\n .onConflict((oc) =>\n oc\n .column('uri')\n .doUpdateSet({ quoteCount: excluded(db, 'quoteCount') }),\n )\n .execute()\n }\n }\n return deleted\n ? {\n post: deleted,\n facets: [], // Not used\n embeds: deletedEmbeds,\n }\n : null\n}\n\nconst notifsForDelete = (\n deleted: IndexedPost,\n replacedBy: IndexedPost | null,\n) => {\n const notifs = replacedBy ? notifsForInsert(replacedBy) : []\n return {\n notifs,\n toDelete: [deleted.post.uri],\n }\n}\n\nconst updateAggregates = async (db: DatabaseSchema, postIdx: IndexedPost) => {\n const replyCountQb = postIdx.post.replyParent\n ? db\n .insertInto('post_agg')\n .values({\n uri: postIdx.post.replyParent,\n replyCount: db\n .selectFrom('post')\n .where('post.replyParent', '=', postIdx.post.replyParent)\n .where((qb) =>\n qb\n .where('post.violatesThreadGate', 'is', null)\n .orWhere('post.violatesThreadGate', '=', false),\n )\n .select(countAll.as('count')),\n })\n .onConflict((oc) =>\n oc\n .column('uri')\n .doUpdateSet({ replyCount: excluded(db, 'replyCount') }),\n )\n : null\n const postsCountQb = db\n .insertInto('profile_agg')\n .values({\n did: postIdx.post.creator,\n postsCount: db\n .selectFrom('post')\n .where('post.creator', '=', postIdx.post.creator)\n .select(countAll.as('count')),\n })\n .onConflict((oc) =>\n oc.column('did').doUpdateSet({ postsCount: excluded(db, 'postsCount') }),\n )\n await Promise.all([replyCountQb?.execute(), postsCountQb.execute()])\n}\n\nexport type PluginType = RecordProcessor<PostRecord, IndexedPost>\n\nexport const makePlugin = (\n db: Database,\n background: BackgroundQueue,\n): PluginType => {\n return new RecordProcessor(db, background, {\n lexId,\n insertFn,\n findDuplicate,\n deleteFn,\n notifsForInsert,\n notifsForDelete,\n updateAggregates,\n })\n}\n\nexport default makePlugin\n\nfunction separateEmbeds(\n embed: PostRecord['embed'],\n): Array<\n | RecordWithMedia['media']\n | $Typed<RecordWithMedia['record']>\n | NonNullable<PostRecord['embed']>\n> {\n if (!embed) {\n return []\n }\n if (isEmbedRecordWithMedia(embed)) {\n return [{ $type: lex.ids.AppBskyEmbedRecord, ...embed.record }, embed.media]\n }\n return [embed]\n}\n\nasync function validateReply(\n db: DatabaseSchema,\n creator: string,\n reply: ReplyRef,\n) {\n const replyRefs = await getReplyRefs(db, reply)\n // check reply\n const invalidReplyRoot =\n !replyRefs.parent || checkInvalidReplyRoot(reply, replyRefs.parent)\n // check interaction\n const violatesThreadGate = await checkViolatesThreadGate(\n db,\n creator,\n uriToDid(reply.root.uri),\n replyRefs.root?.record ?? null,\n replyRefs.gate?.record ?? null,\n )\n return {\n invalidReplyRoot,\n violatesThreadGate,\n }\n}\n\nasync function getThreadgateRecord(db: DatabaseSchema, postUri: string) {\n const threadgateRecordUri = postUriToThreadgateUri(postUri)\n const results = await db\n .selectFrom('record')\n .where('record.uri', '=', threadgateRecordUri)\n .selectAll()\n .execute()\n const threadgateRecord = results.find(\n (ref) => ref.uri === threadgateRecordUri,\n )\n if (threadgateRecord) {\n return jsonStringToLex(threadgateRecord.json) as GateRecord\n }\n}\n\nasync function validatePostEmbed(\n db: DatabaseSchema,\n embedUri: string,\n parentUri: string,\n) {\n const postgateRecordUri = postUriToPostgateUri(embedUri)\n const postgateRecord = await db\n .selectFrom('record')\n .where('record.uri', '=', postgateRecordUri)\n .selectAll()\n .executeTakeFirst()\n if (!postgateRecord) {\n return {\n violatesEmbeddingRules: false,\n }\n }\n const {\n embeddingRules: { canEmbed },\n } = parsePostgate({\n gate: jsonStringToLex(postgateRecord.json) as PostgateRecord,\n viewerDid: uriToDid(parentUri),\n authorDid: uriToDid(embedUri),\n })\n if (canEmbed) {\n return {\n violatesEmbeddingRules: false,\n }\n }\n return {\n violatesEmbeddingRules: true,\n }\n}\n\nasync function getReplyRefs(db: DatabaseSchema, reply: ReplyRef) {\n const replyRoot = reply.root.uri\n const replyParent = reply.parent.uri\n const replyGate = postUriToThreadgateUri(replyRoot)\n const results = await db\n .selectFrom('record')\n .where('record.uri', 'in', [replyRoot, replyGate, replyParent])\n .leftJoin('post', 'post.uri', 'record.uri')\n .selectAll('post')\n .select(['record.uri', 'json'])\n .execute()\n const root = results.find((ref) => ref.uri === replyRoot)\n const parent = results.find((ref) => ref.uri === replyParent)\n const gate = results.find((ref) => ref.uri === replyGate)\n return {\n root: root && {\n uri: root.uri,\n invalidReplyRoot: root.invalidReplyRoot,\n record: jsonStringToLex(root.json) as PostRecord,\n },\n parent: parent && {\n uri: parent.uri,\n invalidReplyRoot: parent.invalidReplyRoot,\n record: jsonStringToLex(parent.json) as PostRecord,\n },\n gate: gate && {\n uri: gate.uri,\n record: jsonStringToLex(gate.json) as GateRecord,\n },\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile.js","sourceRoot":"","sources":["../../../../../src/data-plane/server/indexing/plugins/profile.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"profile.js","sourceRoot":"","sources":["../../../../../src/data-plane/server/indexing/plugins/profile.ts"],"names":[],"mappings":"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","sourcesContent":["import { CID } from 'multiformats/cid'\nimport { AtUri } from '@atproto/syntax'\nimport * as lex from '../../../../lexicon/lexicons'\nimport * as Profile from '../../../../lexicon/types/app/bsky/actor/profile'\nimport { BackgroundQueue } from '../../background'\nimport { Database } from '../../db'\nimport { DatabaseSchema, DatabaseSchemaType } from '../../db/database-schema'\nimport { RecordProcessor } from '../processor'\n\nconst lexId = lex.ids.AppBskyActorProfile\ntype IndexedProfile = DatabaseSchemaType['profile']\n\nconst insertFn = async (\n db: DatabaseSchema,\n uri: AtUri,\n cid: CID,\n obj: Profile.Record,\n timestamp: string,\n): Promise<IndexedProfile | null> => {\n if (uri.rkey !== 'self') return null\n const inserted = await db\n .insertInto('profile')\n .values({\n uri: uri.toString(),\n cid: cid.toString(),\n creator: uri.host,\n displayName: obj.displayName,\n description: obj.description,\n avatarCid: obj.avatar?.ref.toString(),\n bannerCid: obj.banner?.ref.toString(),\n joinedViaStarterPackUri: obj.joinedViaStarterPack?.uri,\n createdAt: obj.createdAt ?? new Date().toISOString(),\n indexedAt: timestamp,\n })\n .onConflict((oc) => oc.doNothing())\n .returningAll()\n .executeTakeFirst()\n return inserted || null\n}\n\nconst findDuplicate = async (): Promise<AtUri | null> => {\n return null\n}\n\nconst notifsForInsert = (obj: IndexedProfile) => {\n if (!obj.joinedViaStarterPackUri) return []\n const starterPackUri = new AtUri(obj.joinedViaStarterPackUri)\n return [\n {\n did: starterPackUri.host,\n author: obj.creator,\n recordUri: obj.uri,\n recordCid: obj.cid,\n reason: 'starterpack-joined' as const,\n reasonSubject: obj.joinedViaStarterPackUri,\n sortAt: obj.indexedAt,\n },\n ]\n}\n\nconst deleteFn = async (\n db: DatabaseSchema,\n uri: AtUri,\n): Promise<IndexedProfile | null> => {\n const deleted = await db\n .deleteFrom('profile')\n .where('uri', '=', uri.toString())\n .returningAll()\n .executeTakeFirst()\n return deleted || null\n}\n\nconst notifsForDelete = () => {\n return { notifs: [], toDelete: [] }\n}\n\nexport type PluginType = RecordProcessor<Profile.Record, IndexedProfile>\n\nexport const makePlugin = (\n db: Database,\n background: BackgroundQueue,\n): PluginType => {\n return new RecordProcessor(db, background, {\n lexId,\n insertFn,\n findDuplicate,\n deleteFn,\n notifsForInsert,\n notifsForDelete,\n })\n}\n\nexport default makePlugin\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repost.js","sourceRoot":"","sources":["../../../../../src/data-plane/server/indexing/plugins/repost.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"repost.js","sourceRoot":"","sources":["../../../../../src/data-plane/server/indexing/plugins/repost.ts"],"names":[],"mappings":"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","sourcesContent":["import { Insertable, Selectable } from 'kysely'\nimport { CID } from 'multiformats/cid'\nimport { AtUri, normalizeDatetimeAlways } from '@atproto/syntax'\nimport * as lex from '../../../../lexicon/lexicons'\nimport * as Repost from '../../../../lexicon/types/app/bsky/feed/repost'\nimport { BackgroundQueue } from '../../background'\nimport { Database } from '../../db'\nimport { DatabaseSchema, DatabaseSchemaType } from '../../db/database-schema'\nimport { Notification } from '../../db/tables/notification'\nimport { countAll, excluded } from '../../db/util'\nimport { RecordProcessor } from '../processor'\n\nconst lexId = lex.ids.AppBskyFeedRepost\ntype Notif = Insertable<Notification>\ntype IndexedRepost = Selectable<DatabaseSchemaType['repost']>\n\nconst insertFn = async (\n db: DatabaseSchema,\n uri: AtUri,\n cid: CID,\n obj: Repost.Record,\n timestamp: string,\n): Promise<IndexedRepost | null> => {\n const repost = {\n uri: uri.toString(),\n cid: cid.toString(),\n creator: uri.host,\n subject: obj.subject.uri,\n subjectCid: obj.subject.cid,\n via: obj.via?.uri,\n viaCid: obj.via?.cid,\n createdAt: normalizeDatetimeAlways(obj.createdAt),\n indexedAt: timestamp,\n }\n const [inserted] = await Promise.all([\n db\n .insertInto('repost')\n .values(repost)\n .onConflict((oc) => oc.doNothing())\n .returningAll()\n .executeTakeFirst(),\n db\n .insertInto('feed_item')\n .values({\n type: 'repost',\n uri: repost.uri,\n cid: repost.cid,\n postUri: repost.subject,\n originatorDid: repost.creator,\n sortAt:\n repost.indexedAt < repost.createdAt\n ? repost.indexedAt\n : repost.createdAt,\n })\n .onConflict((oc) => oc.doNothing())\n .executeTakeFirst(),\n ])\n\n return inserted || null\n}\n\nconst findDuplicate = async (\n db: DatabaseSchema,\n uri: AtUri,\n obj: Repost.Record,\n): Promise<AtUri | null> => {\n const found = await db\n .selectFrom('repost')\n .where('creator', '=', uri.host)\n .where('subject', '=', obj.subject.uri)\n .selectAll()\n .executeTakeFirst()\n return found ? new AtUri(found.uri) : null\n}\n\nconst notifsForInsert = (obj: IndexedRepost) => {\n const subjectUri = new AtUri(obj.subject)\n // prevent self-notifications\n const isRepostFromSubjectUser = subjectUri.host === obj.creator\n if (isRepostFromSubjectUser) {\n return []\n }\n\n const notifs: Notif[] = [\n // Notification to the author of the reposted record.\n {\n did: subjectUri.host,\n author: obj.creator,\n recordUri: obj.uri,\n recordCid: obj.cid,\n reason: 'repost' as const,\n reasonSubject: subjectUri.toString(),\n sortAt: obj.sortAt,\n },\n ]\n\n if (obj.via) {\n const viaUri = new AtUri(obj.via)\n const isRepostFromViaSubjectUser = viaUri.host === obj.creator\n // prevent self-notifications\n if (!isRepostFromViaSubjectUser) {\n notifs.push(\n // Notification to the reposter via whose repost the repost was made.\n {\n did: viaUri.host,\n author: obj.creator,\n recordUri: obj.uri,\n recordCid: obj.cid,\n reason: 'repost-via-repost' as const,\n reasonSubject: viaUri.toString(),\n sortAt: obj.sortAt,\n },\n )\n }\n }\n\n return notifs\n}\n\nconst deleteFn = async (\n db: DatabaseSchema,\n uri: AtUri,\n): Promise<IndexedRepost | null> => {\n const uriStr = uri.toString()\n const [deleted] = await Promise.all([\n db\n .deleteFrom('repost')\n .where('uri', '=', uriStr)\n .returningAll()\n .executeTakeFirst(),\n db.deleteFrom('feed_item').where('uri', '=', uriStr).executeTakeFirst(),\n ])\n return deleted || null\n}\n\nconst notifsForDelete = (\n deleted: IndexedRepost,\n replacedBy: IndexedRepost | null,\n) => {\n const toDelete = replacedBy ? [] : [deleted.uri]\n return { notifs: [], toDelete }\n}\n\nconst updateAggregates = async (db: DatabaseSchema, repost: IndexedRepost) => {\n const repostCountQb = db\n .insertInto('post_agg')\n .values({\n uri: repost.subject,\n repostCount: db\n .selectFrom('repost')\n .where('repost.subject', '=', repost.subject)\n .select(countAll.as('count')),\n })\n .onConflict((oc) =>\n oc\n .column('uri')\n .doUpdateSet({ repostCount: excluded(db, 'repostCount') }),\n )\n await repostCountQb.execute()\n}\n\nexport type PluginType = RecordProcessor<Repost.Record, IndexedRepost>\n\nexport const makePlugin = (\n db: Database,\n background: BackgroundQueue,\n): PluginType => {\n return new RecordProcessor(db, background, {\n lexId,\n insertFn,\n findDuplicate,\n deleteFn,\n notifsForInsert,\n notifsForDelete,\n updateAggregates,\n })\n}\n\nexport default makePlugin\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"starter-pack.js","sourceRoot":"","sources":["../../../../../src/data-plane/server/indexing/plugins/starter-pack.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,4CAAgE;AAChE,kEAAmD;AAKnD,4CAA8C;AAE9C,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,uBAAuB,CAAA;AAG7C,MAAM,QAAQ,GAAG,KAAK,EACpB,EAAkB,EAClB,GAAU,EACV,GAAQ,EACR,GAAuB,EACvB,SAAiB,EACmB,EAAE;IACtC,MAAM,QAAQ,GAAG,MAAM,EAAE;SACtB,UAAU,CAAC,cAAc,CAAC;SAC1B,MAAM,CAAC;QACN,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;QACnB,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;QACnB,OAAO,EAAE,GAAG,CAAC,IAAI;QACjB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,SAAS,EAAE,IAAA,gCAAuB,EAAC,GAAG,CAAC,SAAS,CAAC;QACjD,SAAS,EAAE,SAAS;KACrB,CAAC;SACD,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC;SAClC,YAAY,EAAE;SACd,gBAAgB,EAAE,CAAA;IACrB,OAAO,QAAQ,IAAI,IAAI,CAAA;AACzB,CAAC,CAAA;AAED,MAAM,aAAa,GAAG,KAAK,IAA2B,EAAE;IACtD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,GAAG,EAAE;IAC3B,OAAO,EAAE,CAAA;AACX,CAAC,CAAA;AAED,MAAM,QAAQ,GAAG,KAAK,EACpB,EAAkB,EAClB,GAAU,EAC0B,EAAE;IACtC,MAAM,OAAO,GAAG,MAAM,EAAE;SACrB,UAAU,CAAC,cAAc,CAAC;SAC1B,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC;SACjC,YAAY,EAAE;SACd,gBAAgB,EAAE,CAAA;IACrB,OAAO,OAAO,IAAI,IAAI,CAAA;AACxB,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,GAAG,EAAE;IAC3B,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAA;AACrC,CAAC,CAAA;AAIM,MAAM,UAAU,GAAG,CACxB,EAAY,EACZ,UAA2B,EACf,EAAE;IACd,OAAO,IAAI,2BAAe,CAAC,EAAE,EAAE,UAAU,EAAE;QACzC,KAAK;QACL,QAAQ;QACR,aAAa;QACb,QAAQ;QACR,eAAe;QACf,eAAe;KAChB,CAAC,CAAA;AACJ,CAAC,CAAA;AAZY,QAAA,UAAU,cAYtB;AAED,kBAAe,kBAAU,CAAA"}
|
|
1
|
+
{"version":3,"file":"starter-pack.js","sourceRoot":"","sources":["../../../../../src/data-plane/server/indexing/plugins/starter-pack.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,4CAAgE;AAChE,kEAAmD;AAKnD,4CAA8C;AAE9C,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,uBAAuB,CAAA;AAG7C,MAAM,QAAQ,GAAG,KAAK,EACpB,EAAkB,EAClB,GAAU,EACV,GAAQ,EACR,GAAuB,EACvB,SAAiB,EACmB,EAAE;IACtC,MAAM,QAAQ,GAAG,MAAM,EAAE;SACtB,UAAU,CAAC,cAAc,CAAC;SAC1B,MAAM,CAAC;QACN,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;QACnB,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;QACnB,OAAO,EAAE,GAAG,CAAC,IAAI;QACjB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,SAAS,EAAE,IAAA,gCAAuB,EAAC,GAAG,CAAC,SAAS,CAAC;QACjD,SAAS,EAAE,SAAS;KACrB,CAAC;SACD,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC;SAClC,YAAY,EAAE;SACd,gBAAgB,EAAE,CAAA;IACrB,OAAO,QAAQ,IAAI,IAAI,CAAA;AACzB,CAAC,CAAA;AAED,MAAM,aAAa,GAAG,KAAK,IAA2B,EAAE;IACtD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,GAAG,EAAE;IAC3B,OAAO,EAAE,CAAA;AACX,CAAC,CAAA;AAED,MAAM,QAAQ,GAAG,KAAK,EACpB,EAAkB,EAClB,GAAU,EAC0B,EAAE;IACtC,MAAM,OAAO,GAAG,MAAM,EAAE;SACrB,UAAU,CAAC,cAAc,CAAC;SAC1B,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC;SACjC,YAAY,EAAE;SACd,gBAAgB,EAAE,CAAA;IACrB,OAAO,OAAO,IAAI,IAAI,CAAA;AACxB,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,GAAG,EAAE;IAC3B,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAA;AACrC,CAAC,CAAA;AAIM,MAAM,UAAU,GAAG,CACxB,EAAY,EACZ,UAA2B,EACf,EAAE;IACd,OAAO,IAAI,2BAAe,CAAC,EAAE,EAAE,UAAU,EAAE;QACzC,KAAK;QACL,QAAQ;QACR,aAAa;QACb,QAAQ;QACR,eAAe;QACf,eAAe;KAChB,CAAC,CAAA;AACJ,CAAC,CAAA;AAZY,QAAA,UAAU,cAYtB;AAED,kBAAe,kBAAU,CAAA","sourcesContent":["import { Selectable } from 'kysely'\nimport { CID } from 'multiformats/cid'\nimport { AtUri, normalizeDatetimeAlways } from '@atproto/syntax'\nimport * as lex from '../../../../lexicon/lexicons'\nimport * as StarterPack from '../../../../lexicon/types/app/bsky/graph/starterpack'\nimport { BackgroundQueue } from '../../background'\nimport { Database } from '../../db'\nimport { DatabaseSchema, DatabaseSchemaType } from '../../db/database-schema'\nimport { RecordProcessor } from '../processor'\n\nconst lexId = lex.ids.AppBskyGraphStarterpack\ntype IndexedStarterPack = Selectable<DatabaseSchemaType['starter_pack']>\n\nconst insertFn = async (\n db: DatabaseSchema,\n uri: AtUri,\n cid: CID,\n obj: StarterPack.Record,\n timestamp: string,\n): Promise<IndexedStarterPack | null> => {\n const inserted = await db\n .insertInto('starter_pack')\n .values({\n uri: uri.toString(),\n cid: cid.toString(),\n creator: uri.host,\n name: obj.name,\n createdAt: normalizeDatetimeAlways(obj.createdAt),\n indexedAt: timestamp,\n })\n .onConflict((oc) => oc.doNothing())\n .returningAll()\n .executeTakeFirst()\n return inserted || null\n}\n\nconst findDuplicate = async (): Promise<AtUri | null> => {\n return null\n}\n\nconst notifsForInsert = () => {\n return []\n}\n\nconst deleteFn = async (\n db: DatabaseSchema,\n uri: AtUri,\n): Promise<IndexedStarterPack | null> => {\n const deleted = await db\n .deleteFrom('starter_pack')\n .where('uri', '=', uri.toString())\n .returningAll()\n .executeTakeFirst()\n return deleted || null\n}\n\nconst notifsForDelete = () => {\n return { notifs: [], toDelete: [] }\n}\n\nexport type PluginType = RecordProcessor<StarterPack.Record, IndexedStarterPack>\n\nexport const makePlugin = (\n db: Database,\n background: BackgroundQueue,\n): PluginType => {\n return new RecordProcessor(db, background, {\n lexId,\n insertFn,\n findDuplicate,\n deleteFn,\n notifsForInsert,\n notifsForDelete,\n })\n}\n\nexport default makePlugin\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../../../src/data-plane/server/indexing/plugins/status.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,kEAAmD;AAInD,4CAA8C;AAE9C,6FAA6F;AAE7F,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,kBAAkB,CAAA;AAExC,MAAM,QAAQ,GAAG,KAAK,EACpB,GAAmB,EACnB,GAAU,EACV,IAAS,EACT,IAAa,EACb,UAAkB,EACO,EAAE;IAC3B,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,IAAI,CAAA;IACpC,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,aAAa,GAAG,KAAK,IAA2B,EAAE;IACtD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,GAAG,EAAE;IAC3B,OAAO,EAAE,CAAA;AACX,CAAC,CAAA;AAED,MAAM,QAAQ,GAAG,KAAK,EACpB,GAAmB,EACnB,GAAU,EACe,EAAE;IAC3B,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,IAAI,CAAA;IACpC,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,GAAG,EAAE;IAC3B,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAA;AACrC,CAAC,CAAA;AAIM,MAAM,UAAU,GAAG,CACxB,EAAY,EACZ,UAA2B,EACf,EAAE;IACd,MAAM,SAAS,GAAG,IAAI,2BAAe,CAAC,EAAE,EAAE,UAAU,EAAE;QACpD,KAAK;QACL,QAAQ;QACR,aAAa;QACb,QAAQ;QACR,eAAe;QACf,eAAe;KAChB,CAAC,CAAA;IACF,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAbY,QAAA,UAAU,cAatB;AAED,kBAAe,kBAAU,CAAA"}
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../../../src/data-plane/server/indexing/plugins/status.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,kEAAmD;AAInD,4CAA8C;AAE9C,6FAA6F;AAE7F,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,kBAAkB,CAAA;AAExC,MAAM,QAAQ,GAAG,KAAK,EACpB,GAAmB,EACnB,GAAU,EACV,IAAS,EACT,IAAa,EACb,UAAkB,EACO,EAAE;IAC3B,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,IAAI,CAAA;IACpC,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,aAAa,GAAG,KAAK,IAA2B,EAAE;IACtD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,GAAG,EAAE;IAC3B,OAAO,EAAE,CAAA;AACX,CAAC,CAAA;AAED,MAAM,QAAQ,GAAG,KAAK,EACpB,GAAmB,EACnB,GAAU,EACe,EAAE;IAC3B,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,IAAI,CAAA;IACpC,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,GAAG,EAAE;IAC3B,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAA;AACrC,CAAC,CAAA;AAIM,MAAM,UAAU,GAAG,CACxB,EAAY,EACZ,UAA2B,EACf,EAAE;IACd,MAAM,SAAS,GAAG,IAAI,2BAAe,CAAC,EAAE,EAAE,UAAU,EAAE;QACpD,KAAK;QACL,QAAQ;QACR,aAAa;QACb,QAAQ;QACR,eAAe;QACf,eAAe;KAChB,CAAC,CAAA;IACF,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAbY,QAAA,UAAU,cAatB;AAED,kBAAe,kBAAU,CAAA","sourcesContent":["import { CID } from 'multiformats/cid'\nimport { AtUri } from '@atproto/syntax'\nimport * as lex from '../../../../lexicon/lexicons'\nimport { BackgroundQueue } from '../../background'\nimport { Database } from '../../db'\nimport { DatabaseSchema } from '../../db/database-schema'\nimport { RecordProcessor } from '../processor'\n\n// @NOTE this indexer is a placeholder to ensure it gets indexed in the generic records table\n\nconst lexId = lex.ids.AppBskyActorStatus\n\nconst insertFn = async (\n _db: DatabaseSchema,\n uri: AtUri,\n _cid: CID,\n _obj: unknown,\n _timestamp: string,\n): Promise<unknown | null> => {\n if (uri.rkey !== 'self') return null\n return true\n}\n\nconst findDuplicate = async (): Promise<AtUri | null> => {\n return null\n}\n\nconst notifsForInsert = () => {\n return []\n}\n\nconst deleteFn = async (\n _db: DatabaseSchema,\n uri: AtUri,\n): Promise<unknown | null> => {\n if (uri.rkey !== 'self') return null\n return true\n}\n\nconst notifsForDelete = () => {\n return { notifs: [], toDelete: [] }\n}\n\nexport type PluginType = RecordProcessor<unknown, unknown>\n\nexport const makePlugin = (\n db: Database,\n background: BackgroundQueue,\n): PluginType => {\n const processor = new RecordProcessor(db, background, {\n lexId,\n insertFn,\n findDuplicate,\n deleteFn,\n notifsForInsert,\n notifsForDelete,\n })\n return processor\n}\n\nexport default makePlugin\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thread-gate.js","sourceRoot":"","sources":["../../../../../src/data-plane/server/indexing/plugins/thread-gate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"thread-gate.js","sourceRoot":"","sources":["../../../../../src/data-plane/server/indexing/plugins/thread-gate.ts"],"names":[],"mappings":"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","sourcesContent":["import { CID } from 'multiformats/cid'\nimport { AtUri, normalizeDatetimeAlways } from '@atproto/syntax'\nimport { InvalidRequestError } from '@atproto/xrpc-server'\nimport * as lex from '../../../../lexicon/lexicons'\nimport * as Threadgate from '../../../../lexicon/types/app/bsky/feed/threadgate'\nimport { BackgroundQueue } from '../../background'\nimport { Database } from '../../db'\nimport { DatabaseSchema, DatabaseSchemaType } from '../../db/database-schema'\nimport { RecordProcessor } from '../processor'\n\nconst lexId = lex.ids.AppBskyFeedThreadgate\ntype IndexedGate = DatabaseSchemaType['thread_gate']\n\nconst insertFn = async (\n db: DatabaseSchema,\n uri: AtUri,\n cid: CID,\n obj: Threadgate.Record,\n timestamp: string,\n): Promise<IndexedGate | null> => {\n const postUri = new AtUri(obj.post)\n if (postUri.host !== uri.host || postUri.rkey !== uri.rkey) {\n throw new InvalidRequestError(\n 'Creator and rkey of thread gate does not match its post',\n )\n }\n const inserted = await db\n .insertInto('thread_gate')\n .values({\n uri: uri.toString(),\n cid: cid.toString(),\n creator: uri.host,\n postUri: obj.post,\n createdAt: normalizeDatetimeAlways(obj.createdAt),\n indexedAt: timestamp,\n })\n .onConflict((oc) => oc.doNothing())\n .returningAll()\n .executeTakeFirst()\n await db\n .updateTable('post')\n .where('uri', '=', postUri.toString())\n .set({ hasThreadGate: true })\n .executeTakeFirst()\n return inserted || null\n}\n\nconst findDuplicate = async (\n db: DatabaseSchema,\n _uri: AtUri,\n obj: Threadgate.Record,\n): Promise<AtUri | null> => {\n const found = await db\n .selectFrom('thread_gate')\n .where('postUri', '=', obj.post)\n .selectAll()\n .executeTakeFirst()\n return found ? new AtUri(found.uri) : null\n}\n\nconst notifsForInsert = () => {\n return []\n}\n\nconst deleteFn = async (\n db: DatabaseSchema,\n uri: AtUri,\n): Promise<IndexedGate | null> => {\n const deleted = await db\n .deleteFrom('thread_gate')\n .where('uri', '=', uri.toString())\n .returningAll()\n .executeTakeFirst()\n if (deleted) {\n await db\n .updateTable('post')\n .where('uri', '=', deleted.postUri)\n .set({ hasThreadGate: false })\n .executeTakeFirst()\n }\n return deleted || null\n}\n\nconst notifsForDelete = () => {\n return { notifs: [], toDelete: [] }\n}\n\nexport type PluginType = RecordProcessor<Threadgate.Record, IndexedGate>\n\nexport const makePlugin = (\n db: Database,\n background: BackgroundQueue,\n): PluginType => {\n return new RecordProcessor(db, background, {\n lexId,\n insertFn,\n findDuplicate,\n deleteFn,\n notifsForInsert,\n notifsForDelete,\n })\n}\n\nexport default makePlugin\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verification.js","sourceRoot":"","sources":["../../../../../src/data-plane/server/indexing/plugins/verification.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"verification.js","sourceRoot":"","sources":["../../../../../src/data-plane/server/indexing/plugins/verification.ts"],"names":[],"mappings":"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","sourcesContent":["import { Selectable } from 'kysely'\nimport { CID } from 'multiformats/cid'\nimport { AtUri, normalizeDatetimeAlways } from '@atproto/syntax'\nimport * as lex from '../../../../lexicon/lexicons'\nimport * as Verification from '../../../../lexicon/types/app/bsky/graph/verification'\nimport { BackgroundQueue } from '../../background'\nimport { Database } from '../../db'\nimport { DatabaseSchema, DatabaseSchemaType } from '../../db/database-schema'\nimport { RecordProcessor } from '../processor'\n\nconst lexId = lex.ids.AppBskyGraphVerification\ntype IndexedVerification = Selectable<DatabaseSchemaType['verification']>\n\nconst insertFn = async (\n db: DatabaseSchema,\n uri: AtUri,\n cid: CID,\n obj: Verification.Record,\n timestamp: string,\n): Promise<IndexedVerification | null> => {\n const inserted = await db\n .insertInto('verification')\n .values({\n uri: uri.toString(),\n cid: cid.toString(),\n rkey: uri.rkey,\n creator: uri.host,\n subject: obj.subject,\n handle: obj.handle,\n displayName: obj.displayName,\n createdAt: normalizeDatetimeAlways(obj.createdAt),\n indexedAt: timestamp,\n })\n .onConflict((oc) => oc.doNothing())\n .returningAll()\n .executeTakeFirst()\n return inserted || null\n}\n\nconst findDuplicate = async (\n db: DatabaseSchema,\n uri: AtUri,\n obj: Verification.Record,\n): Promise<AtUri | null> => {\n const found = await db\n .selectFrom('verification')\n .where('subject', '=', obj.subject)\n .where('creator', '=', uri.host)\n .selectAll()\n .executeTakeFirst()\n return found ? new AtUri(found.uri) : null\n}\n\nconst notifsForInsert = (obj: IndexedVerification) => {\n return [\n {\n did: obj.subject,\n author: obj.creator,\n recordUri: obj.uri,\n recordCid: obj.cid,\n reason: 'verified' as const,\n reasonSubject: null,\n sortAt: obj.sortedAt,\n },\n ]\n}\n\nconst deleteFn = async (\n db: DatabaseSchema,\n uri: AtUri,\n): Promise<IndexedVerification | null> => {\n const deleted = await db\n .deleteFrom('verification')\n .where('uri', '=', uri.toString())\n .returningAll()\n .executeTakeFirst()\n return deleted || null\n}\n\nconst notifsForDelete = (\n deleted: IndexedVerification,\n _replacedBy: IndexedVerification | null,\n) => {\n return {\n notifs: [\n {\n did: deleted.subject,\n author: deleted.creator,\n recordUri: deleted.uri,\n recordCid: deleted.cid,\n reason: 'unverified' as const,\n reasonSubject: null,\n sortAt: new Date().toISOString(),\n },\n ],\n toDelete: [],\n }\n}\n\nexport type PluginType = RecordProcessor<\n Verification.Record,\n IndexedVerification\n>\n\nexport const makePlugin = (\n db: Database,\n background: BackgroundQueue,\n): PluginType => {\n return new RecordProcessor(db, background, {\n lexId,\n insertFn,\n findDuplicate,\n deleteFn,\n notifsForInsert,\n notifsForDelete,\n })\n}\n\nexport default makePlugin\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processor.js","sourceRoot":"","sources":["../../../../src/data-plane/server/indexing/processor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"processor.js","sourceRoot":"","sources":["../../../../src/data-plane/server/indexing/processor.ts"],"names":[],"mappings":"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","sourcesContent":["import { Insertable } from 'kysely'\nimport { CID } from 'multiformats/cid'\nimport { chunkArray } from '@atproto/common'\nimport { jsonStringToLex, stringifyLex } from '@atproto/lexicon'\nimport { AtUri } from '@atproto/syntax'\nimport { lexicons } from '../../../lexicon/lexicons'\nimport { BackgroundQueue } from '../background'\nimport { Database } from '../db'\nimport { DatabaseSchema } from '../db/database-schema'\nimport { Notification } from '../db/tables/notification'\n\n// @NOTE re: insertions and deletions. Due to how record updates are handled,\n// (insertFn) should have the same effect as (insertFn -> deleteFn -> insertFn).\ntype RecordProcessorParams<T, S> = {\n lexId: string\n insertFn: (\n db: DatabaseSchema,\n uri: AtUri,\n cid: CID,\n obj: T,\n timestamp: string,\n ) => Promise<S | null>\n findDuplicate: (\n db: DatabaseSchema,\n uri: AtUri,\n obj: T,\n ) => Promise<AtUri | null>\n deleteFn: (db: DatabaseSchema, uri: AtUri) => Promise<S | null>\n notifsForInsert: (obj: S) => Notif[]\n notifsForDelete: (\n prev: S,\n replacedBy: S | null,\n ) => { notifs: Notif[]; toDelete: string[] }\n updateAggregates?: (db: DatabaseSchema, obj: S) => Promise<void>\n}\n\ntype Notif = Insertable<Notification>\n\nexport class RecordProcessor<T, S> {\n collection: string\n db: DatabaseSchema\n constructor(\n private appDb: Database,\n private background: BackgroundQueue,\n private params: RecordProcessorParams<T, S>,\n ) {\n this.db = appDb.db\n this.collection = this.params.lexId\n }\n\n matchesSchema(obj: unknown): obj is T {\n try {\n this.assertValidRecord(obj)\n return true\n } catch {\n return false\n }\n }\n\n assertValidRecord(obj: unknown): asserts obj is T {\n lexicons.assertValidRecord(this.params.lexId, obj)\n }\n\n async insertRecord(\n uri: AtUri,\n cid: CID,\n obj: unknown,\n timestamp: string,\n opts?: { disableNotifs?: boolean },\n ) {\n this.assertValidRecord(obj)\n await this.db\n .insertInto('record')\n .values({\n uri: uri.toString(),\n cid: cid.toString(),\n did: uri.host,\n json: stringifyLex(obj),\n indexedAt: timestamp,\n })\n .onConflict((oc) => oc.doNothing())\n .execute()\n const inserted = await this.params.insertFn(\n this.db,\n uri,\n cid,\n obj,\n timestamp,\n )\n if (inserted) {\n this.aggregateOnCommit(inserted)\n if (!opts?.disableNotifs) {\n await this.handleNotifs({ inserted })\n }\n return\n }\n // if duplicate, insert into duplicates table with no events\n const found = await this.params.findDuplicate(this.db, uri, obj)\n if (found && found.toString() !== uri.toString()) {\n await this.db\n .insertInto('duplicate_record')\n .values({\n uri: uri.toString(),\n cid: cid.toString(),\n duplicateOf: found.toString(),\n indexedAt: timestamp,\n })\n .onConflict((oc) => oc.doNothing())\n .execute()\n }\n }\n\n // Currently using a very simple strategy for updates: purge the existing index\n // for the uri then replace it. The main upside is that this allows the indexer\n // for each collection to avoid bespoke logic for in-place updates, which isn't\n // straightforward in the general case. We still get nice control over notifications.\n async updateRecord(\n uri: AtUri,\n cid: CID,\n obj: unknown,\n timestamp: string,\n opts?: { disableNotifs?: boolean },\n ) {\n this.assertValidRecord(obj)\n await this.db\n .updateTable('record')\n .where('uri', '=', uri.toString())\n .set({\n cid: cid.toString(),\n json: stringifyLex(obj),\n indexedAt: timestamp,\n })\n .execute()\n // If the updated record was a dupe, update dupe info for it\n const dupe = await this.params.findDuplicate(this.db, uri, obj)\n if (dupe) {\n await this.db\n .updateTable('duplicate_record')\n .where('uri', '=', uri.toString())\n .set({\n cid: cid.toString(),\n duplicateOf: dupe.toString(),\n indexedAt: timestamp,\n })\n .execute()\n } else {\n await this.db\n .deleteFrom('duplicate_record')\n .where('uri', '=', uri.toString())\n .execute()\n }\n\n const deleted = await this.params.deleteFn(this.db, uri)\n if (!deleted) {\n // If a record was updated but hadn't been indexed yet, treat it like a plain insert.\n return this.insertRecord(uri, cid, obj, timestamp)\n }\n this.aggregateOnCommit(deleted)\n const inserted = await this.params.insertFn(\n this.db,\n uri,\n cid,\n obj,\n timestamp,\n )\n if (!inserted) {\n throw new Error(\n 'Record update failed: removed from index but could not be replaced',\n )\n }\n this.aggregateOnCommit(inserted)\n if (!opts?.disableNotifs) {\n await this.handleNotifs({ inserted, deleted })\n }\n }\n\n async deleteRecord(uri: AtUri, cascading = false) {\n await this.db\n .deleteFrom('record')\n .where('uri', '=', uri.toString())\n .execute()\n await this.db\n .deleteFrom('duplicate_record')\n .where('uri', '=', uri.toString())\n .execute()\n const deleted = await this.params.deleteFn(this.db, uri)\n if (!deleted) return\n this.aggregateOnCommit(deleted)\n if (cascading) {\n await this.db\n .deleteFrom('duplicate_record')\n .where('duplicateOf', '=', uri.toString())\n .execute()\n return this.handleNotifs({ deleted })\n } else {\n const found = await this.db\n .selectFrom('duplicate_record')\n .innerJoin('record', 'record.uri', 'duplicate_record.uri')\n .where('duplicateOf', '=', uri.toString())\n .orderBy('duplicate_record.indexedAt', 'asc')\n .limit(1)\n .selectAll()\n .executeTakeFirst()\n\n if (!found) {\n return this.handleNotifs({ deleted })\n }\n const record = jsonStringToLex(found.json)\n if (!this.matchesSchema(record)) {\n return this.handleNotifs({ deleted })\n }\n const inserted = await this.params.insertFn(\n this.db,\n new AtUri(found.uri),\n CID.parse(found.cid),\n record,\n found.indexedAt,\n )\n if (inserted) {\n this.aggregateOnCommit(inserted)\n }\n await this.handleNotifs({ deleted, inserted: inserted ?? undefined })\n }\n }\n\n async handleNotifs(op: { deleted?: S; inserted?: S }) {\n let notifs: Notif[] = []\n const runOnCommit: ((db: Database) => Promise<void>)[] = []\n if (op.deleted) {\n const forDelete = this.params.notifsForDelete(\n op.deleted,\n op.inserted ?? null,\n )\n if (forDelete.toDelete.length > 0) {\n // Notifs can be deleted in background: they are expensive to delete and\n // listNotifications already excludes notifs with missing records.\n runOnCommit.push(async (db) => {\n await db.db\n .deleteFrom('notification')\n .where('recordUri', 'in', forDelete.toDelete)\n .execute()\n })\n }\n notifs = forDelete.notifs\n } else if (op.inserted) {\n notifs = this.params.notifsForInsert(op.inserted)\n }\n for (const chunk of chunkArray(notifs, 500)) {\n runOnCommit.push(async (db) => {\n const filtered = await this.filterNotifsForThreadMutes(chunk)\n await db.db.insertInto('notification').values(filtered).execute()\n })\n }\n // Need to ensure notif deletion always happens before creation, otherwise delete may clobber in a race.\n for (const fn of runOnCommit) {\n await fn(this.appDb) // these could be backgrounded\n }\n }\n\n async filterNotifsForThreadMutes(notifs: Notif[]): Promise<Notif[]> {\n const isBlocked = await Promise.all(\n notifs.map((n) => this.isNotifBlockedByThreadMute(n)),\n )\n return notifs.filter((_, i) => !isBlocked[i])\n }\n\n async isNotifBlockedByThreadMute(notif: Notif): Promise<boolean> {\n const subject = notif.reasonSubject\n if (!subject) return false\n if (subject.startsWith('did:')) return false\n const post = await this.db\n .selectFrom('post')\n .select(['uri', 'replyRoot'])\n .where('uri', '=', subject)\n .executeTakeFirst()\n if (!post) return false\n const threadRoot = post.replyRoot ?? post.uri\n const threadMute = await this.db\n .selectFrom('thread_mute')\n .selectAll()\n .where('mutedByDid', '=', notif.did)\n .where('rootUri', '=', threadRoot)\n .executeTakeFirst()\n return !!threadMute\n }\n\n aggregateOnCommit(indexed: S) {\n const { updateAggregates } = this.params\n if (!updateAggregates) return\n this.appDb.onCommit(() => {\n this.background.add((db) => updateAggregates(db.db, indexed))\n })\n }\n}\n\nexport default RecordProcessor\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activity-subscription.js","sourceRoot":"","sources":["../../../../src/data-plane/server/routes/activity-subscription.ts"],"names":[],"mappings":";;AAEA,4CAAuC;AAEvC,oDAG+B;AAC/B,0CAA2C;AAE3C,iDAA8C;AAE9C,kBAAe,CAAC,EAAY,EAAwC,EAAE,CAAC,CAAC;IACtE,KAAK,CAAC,0CAA0C,CAAC,GAAG;QAClD,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,GAAG,CAAA;QACrC,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,IAAI,4DAAkD,CAAC;gBAC5D,aAAa,EAAE,EAAE;aAClB,CAAC,CAAA;QACJ,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,EAAE;aACpB,UAAU,CAAC,uBAAuB,CAAC;aACnC,SAAS,EAAE;aACX,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,QAAQ,CAAC;aAC/B,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,WAAW,CAAC;aACtC,OAAO,EAAE,CAAA;QAEZ,MAAM,SAAS,GAAG,IAAA,cAAK,EAAC,GAAG,EAAE,YAAY,CAAC,CAAA;QAC1C,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,CACnC,CAAC,GAAG,EAAsC,EAAE;YAC1C,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAClC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO;oBACL,QAAQ;oBACR,SAAS,EACP,kBAAU,CAAC,kDAAkD;oBAC/D,GAAG,EAAE,EAAE;oBACP,IAAI,EAAE,SAAS;oBACf,KAAK,EAAE,SAAS;oBAChB,UAAU,EAAE,EAAE;iBACf,CAAA;YACH,CAAC;YAED,OAAO;gBACL,QAAQ;gBACR,SAAS,EACP,kBAAU,CAAC,kDAAkD;gBAC/D,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;gBACnC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;gBACrC,UAAU,EAAE,OAAO,CAAC,UAAU;aAC/B,CAAA;QACH,CAAC,CACF,CAAA;QAED,OAAO;YACL,aAAa;SACd,CAAA;IACH,CAAC;IAED,KAAK,CAAC,2BAA2B,CAAC,GAAG;QACnC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAA;QAEvC,IAAI,OAAO,GAAG,EAAE,CAAC,EAAE;aAChB,UAAU,CAAC,uBAAuB,CAAC;aACnC,SAAS,EAAE;aACX,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAA;QAElC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,OAAO,CAAA;QAC7B,MAAM,GAAG,GAAG,IAAI,wBAAW,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,CAAA;QAC7D,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE;YAC9B,MAAM;YACN,KAAK;SACN,CAAC,CAAA;QACF,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAA;QACnC,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,CAAA;QACpD,OAAO;YACL,IAAI;YACJ,MAAM,EAAE,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC;SAChC,CAAA;IACH,CAAC;CACF,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"activity-subscription.js","sourceRoot":"","sources":["../../../../src/data-plane/server/routes/activity-subscription.ts"],"names":[],"mappings":";;AAEA,4CAAuC;AAEvC,oDAG+B;AAC/B,0CAA2C;AAE3C,iDAA8C;AAE9C,kBAAe,CAAC,EAAY,EAAwC,EAAE,CAAC,CAAC;IACtE,KAAK,CAAC,0CAA0C,CAAC,GAAG;QAClD,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,GAAG,CAAA;QACrC,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,IAAI,4DAAkD,CAAC;gBAC5D,aAAa,EAAE,EAAE;aAClB,CAAC,CAAA;QACJ,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,EAAE;aACpB,UAAU,CAAC,uBAAuB,CAAC;aACnC,SAAS,EAAE;aACX,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,QAAQ,CAAC;aAC/B,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,WAAW,CAAC;aACtC,OAAO,EAAE,CAAA;QAEZ,MAAM,SAAS,GAAG,IAAA,cAAK,EAAC,GAAG,EAAE,YAAY,CAAC,CAAA;QAC1C,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,CACnC,CAAC,GAAG,EAAsC,EAAE;YAC1C,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAClC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO;oBACL,QAAQ;oBACR,SAAS,EACP,kBAAU,CAAC,kDAAkD;oBAC/D,GAAG,EAAE,EAAE;oBACP,IAAI,EAAE,SAAS;oBACf,KAAK,EAAE,SAAS;oBAChB,UAAU,EAAE,EAAE;iBACf,CAAA;YACH,CAAC;YAED,OAAO;gBACL,QAAQ;gBACR,SAAS,EACP,kBAAU,CAAC,kDAAkD;gBAC/D,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;gBACnC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;gBACrC,UAAU,EAAE,OAAO,CAAC,UAAU;aAC/B,CAAA;QACH,CAAC,CACF,CAAA;QAED,OAAO;YACL,aAAa;SACd,CAAA;IACH,CAAC;IAED,KAAK,CAAC,2BAA2B,CAAC,GAAG;QACnC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAA;QAEvC,IAAI,OAAO,GAAG,EAAE,CAAC,EAAE;aAChB,UAAU,CAAC,uBAAuB,CAAC;aACnC,SAAS,EAAE;aACX,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAA;QAElC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,OAAO,CAAA;QAC7B,MAAM,GAAG,GAAG,IAAI,wBAAW,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,CAAA;QAC7D,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE;YAC9B,MAAM;YACN,KAAK;SACN,CAAC,CAAA;QACF,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAA;QACnC,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,CAAA;QACpD,OAAO;YACL,IAAI;YACJ,MAAM,EAAE,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC;SAChC,CAAA;IACH,CAAC;CACF,CAAC,CAAA","sourcesContent":["import { PlainMessage } from '@bufbuild/protobuf'\nimport { ServiceImpl } from '@connectrpc/connect'\nimport { keyBy } from '@atproto/common'\nimport { Service } from '../../../proto/bsky_connect'\nimport {\n ActivitySubscription,\n GetActivitySubscriptionsByActorAndSubjectsResponse,\n} from '../../../proto/bsky_pb'\nimport { Namespaces } from '../../../stash'\nimport { Database } from '../db'\nimport { StashKeyKey } from '../db/pagination'\n\nexport default (db: Database): Partial<ServiceImpl<typeof Service>> => ({\n async getActivitySubscriptionsByActorAndSubjects(req) {\n const { actorDid, subjectDids } = req\n if (subjectDids.length === 0) {\n return new GetActivitySubscriptionsByActorAndSubjectsResponse({\n subscriptions: [],\n })\n }\n\n const res = await db.db\n .selectFrom('activity_subscription')\n .selectAll()\n .where('creator', '=', actorDid)\n .where('subjectDid', 'in', subjectDids)\n .execute()\n\n const bySubject = keyBy(res, 'subjectDid')\n const subscriptions = subjectDids.map(\n (did): PlainMessage<ActivitySubscription> => {\n const subject = bySubject.get(did)\n if (!subject) {\n return {\n actorDid,\n namespace:\n Namespaces.AppBskyNotificationDefsSubjectActivitySubscription,\n key: '',\n post: undefined,\n reply: undefined,\n subjectDid: '',\n }\n }\n\n return {\n actorDid,\n namespace:\n Namespaces.AppBskyNotificationDefsSubjectActivitySubscription,\n key: subject.key,\n post: subject.post ? {} : undefined,\n reply: subject.reply ? {} : undefined,\n subjectDid: subject.subjectDid,\n }\n },\n )\n\n return {\n subscriptions,\n }\n },\n\n async getActivitySubscriptionDids(req) {\n const { actorDid, cursor, limit } = req\n\n let builder = db.db\n .selectFrom('activity_subscription')\n .selectAll()\n .where('creator', '=', actorDid)\n\n const { ref } = db.db.dynamic\n const key = new StashKeyKey(ref('activity_subscription.key'))\n builder = key.paginate(builder, {\n cursor,\n limit,\n })\n const res = await builder.execute()\n const dids = res.map(({ subjectDid }) => subjectDid)\n return {\n dids,\n cursor: key.packFromResult(res),\n }\n },\n})\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blocks.js","sourceRoot":"","sources":["../../../../src/data-plane/server/routes/blocks.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"blocks.js","sourceRoot":"","sources":["../../../../src/data-plane/server/routes/blocks.ts"],"names":[],"mappings":"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","sourcesContent":["import { ServiceImpl } from '@connectrpc/connect'\nimport { Service } from '../../../proto/bsky_connect'\nimport { Database } from '../db'\nimport { TimeCidKeyset, paginate } from '../db/pagination'\n\nexport default (db: Database): Partial<ServiceImpl<typeof Service>> => ({\n async getBidirectionalBlock(req) {\n const { actorDid, targetDid } = req\n const res = await db.db\n .selectFrom('actor_block')\n .where((qb) =>\n qb\n .where('actor_block.creator', '=', actorDid)\n .where('actor_block.subjectDid', '=', targetDid),\n )\n .orWhere((qb) =>\n qb\n .where('actor_block.creator', '=', targetDid)\n .where('actor_block.subjectDid', '=', actorDid),\n )\n .limit(1)\n .selectAll()\n .executeTakeFirst()\n\n return {\n blockUri: res?.uri,\n }\n },\n\n async getBlocks(req) {\n const { actorDid, cursor, limit } = req\n const { ref } = db.db.dynamic\n\n let builder = db.db\n .selectFrom('actor_block')\n .where('actor_block.creator', '=', actorDid)\n .selectAll()\n\n const keyset = new TimeCidKeyset(\n ref('actor_block.sortAt'),\n ref('actor_block.cid'),\n )\n builder = paginate(builder, {\n limit,\n cursor,\n keyset,\n })\n\n const blocks = await builder.execute()\n return {\n blockUris: blocks.map((b) => b.uri),\n cursor: keyset.packFromResult(blocks),\n }\n },\n\n async getBidirectionalBlockViaList(req) {\n const { actorDid, targetDid } = req\n const res = await db.db\n .selectFrom('list_block')\n .innerJoin('list_item', 'list_item.listUri', 'list_block.subjectUri')\n .where((qb) =>\n qb\n .where('list_block.creator', '=', actorDid)\n .where('list_item.subjectDid', '=', targetDid),\n )\n .orWhere((qb) =>\n qb\n .where('list_block.creator', '=', targetDid)\n .where('list_item.subjectDid', '=', actorDid),\n )\n .limit(1)\n .selectAll('list_block')\n .executeTakeFirst()\n\n return {\n listUri: res?.subjectUri,\n }\n },\n\n async getBlocklistSubscription(req) {\n const { actorDid, listUri } = req\n const res = await db.db\n .selectFrom('list_block')\n .where('creator', '=', actorDid)\n .where('subjectUri', '=', listUri)\n .selectAll()\n .limit(1)\n .executeTakeFirst()\n return {\n listblockUri: res?.uri,\n }\n },\n\n async getBlocklistSubscriptions(req) {\n const { actorDid, limit, cursor } = req\n const { ref } = db.db.dynamic\n let builder = db.db\n .selectFrom('list')\n .whereExists(\n db.db\n .selectFrom('list_block')\n .where('list_block.creator', '=', actorDid)\n .whereRef('list_block.subjectUri', '=', ref('list.uri'))\n .selectAll(),\n )\n .selectAll('list')\n\n const keyset = new TimeCidKeyset(ref('list.createdAt'), ref('list.cid'))\n builder = paginate(builder, {\n limit,\n cursor,\n keyset,\n })\n const lists = await builder.execute()\n\n return {\n listUris: lists.map((l) => l.uri),\n cursor: keyset.packFromResult(lists),\n }\n },\n})\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bookmarks.js","sourceRoot":"","sources":["../../../../src/data-plane/server/routes/bookmarks.ts"],"names":[],"mappings":";;AAAA,iDAA4D;AAE5D,4CAAuC;AAEvC,oDAG+B;AAC/B,0CAA2C;AAE3C,iDAA8C;AAE9C,kBAAe,CAAC,EAAY,EAAwC,EAAE,CAAC,CAAC;IACtE,KAAK,CAAC,iBAAiB,CAAC,GAAG;QACzB,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAA;QACvC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,OAAO,CAAA;QAE7B,IAAI,OAAO,GAAG,EAAE,CAAC,EAAE;aAChB,UAAU,CAAC,UAAU,CAAC;aACtB,KAAK,CAAC,kBAAkB,EAAE,GAAG,EAAE,QAAQ,CAAC;aACxC,SAAS,EAAE,CAAA;QAEd,MAAM,GAAG,GAAG,IAAI,wBAAW,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAA;QAChD,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE;YAC9B,MAAM;YACN,KAAK;SACN,CAAC,CAAA;QAEF,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAA;QACnC,OAAO;YACL,SAAS,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACzB,GAAG,EAAE,CAAC,CAAC,GAAG;gBACV,OAAO,EAAE,CAAC,CAAC,UAAU;aACtB,CAAC,CAAC;YACH,MAAM,EAAE,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC;SAChC,CAAA;IACH,CAAC;IAED,KAAK,CAAC,8BAA8B,CAAC,GAAG;QACtC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,GAAG,CAAA;QAE9B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,IAAI,gDAAsC,CAAC;gBAChD,SAAS,EAAE,EAAE;aACd,CAAC,CAAA;QACJ,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,EAAE;aACpB,UAAU,CAAC,UAAU,CAAC;aACtB,KAAK,CAAC,kBAAkB,EAAE,GAAG,EAAE,QAAQ,CAAC;aACxC,KAAK,CAAC,qBAAqB,EAAE,IAAI,EAAE,IAAI,CAAC;aACxC,SAAS,EAAE;aACX,OAAO,EAAE,CAAA;QAEZ,MAAM,KAAK,GAAG,IAAA,cAAK,EAAC,GAAG,EAAE,YAAY,CAAC,CAAA;QACtC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAA0B,EAAE;YACzD,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAC/B,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO;oBACL,GAAG,EAAE,SAAS;oBACd,UAAU,EAAE,EAAE;oBACd,UAAU,EAAE,EAAE;oBACd,SAAS,EAAE,SAAS;iBACrB,CAAA;YACH,CAAC;YAED,OAAO;gBACL,GAAG,EAAE;oBACH,QAAQ;oBACR,SAAS,EAAE,kBAAU,CAAC,2BAA2B;oBACjD,GAAG,EAAE,QAAQ,CAAC,GAAG;iBAClB;gBACD,UAAU,EAAE,QAAQ,CAAC,UAAU;gBAC/B,UAAU,EAAE,QAAQ,CAAC,UAAU;gBAC/B,SAAS,EAAE,oBAAS,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;aAC5D,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,OAAO;YACL,SAAS;SACV,CAAA;IACH,CAAC;CACF,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"bookmarks.js","sourceRoot":"","sources":["../../../../src/data-plane/server/routes/bookmarks.ts"],"names":[],"mappings":";;AAAA,iDAA4D;AAE5D,4CAAuC;AAEvC,oDAG+B;AAC/B,0CAA2C;AAE3C,iDAA8C;AAE9C,kBAAe,CAAC,EAAY,EAAwC,EAAE,CAAC,CAAC;IACtE,KAAK,CAAC,iBAAiB,CAAC,GAAG;QACzB,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAA;QACvC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,OAAO,CAAA;QAE7B,IAAI,OAAO,GAAG,EAAE,CAAC,EAAE;aAChB,UAAU,CAAC,UAAU,CAAC;aACtB,KAAK,CAAC,kBAAkB,EAAE,GAAG,EAAE,QAAQ,CAAC;aACxC,SAAS,EAAE,CAAA;QAEd,MAAM,GAAG,GAAG,IAAI,wBAAW,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAA;QAChD,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE;YAC9B,MAAM;YACN,KAAK;SACN,CAAC,CAAA;QAEF,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAA;QACnC,OAAO;YACL,SAAS,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACzB,GAAG,EAAE,CAAC,CAAC,GAAG;gBACV,OAAO,EAAE,CAAC,CAAC,UAAU;aACtB,CAAC,CAAC;YACH,MAAM,EAAE,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC;SAChC,CAAA;IACH,CAAC;IAED,KAAK,CAAC,8BAA8B,CAAC,GAAG;QACtC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,GAAG,CAAA;QAE9B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,IAAI,gDAAsC,CAAC;gBAChD,SAAS,EAAE,EAAE;aACd,CAAC,CAAA;QACJ,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,EAAE;aACpB,UAAU,CAAC,UAAU,CAAC;aACtB,KAAK,CAAC,kBAAkB,EAAE,GAAG,EAAE,QAAQ,CAAC;aACxC,KAAK,CAAC,qBAAqB,EAAE,IAAI,EAAE,IAAI,CAAC;aACxC,SAAS,EAAE;aACX,OAAO,EAAE,CAAA;QAEZ,MAAM,KAAK,GAAG,IAAA,cAAK,EAAC,GAAG,EAAE,YAAY,CAAC,CAAA;QACtC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAA0B,EAAE;YACzD,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAC/B,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO;oBACL,GAAG,EAAE,SAAS;oBACd,UAAU,EAAE,EAAE;oBACd,UAAU,EAAE,EAAE;oBACd,SAAS,EAAE,SAAS;iBACrB,CAAA;YACH,CAAC;YAED,OAAO;gBACL,GAAG,EAAE;oBACH,QAAQ;oBACR,SAAS,EAAE,kBAAU,CAAC,2BAA2B;oBACjD,GAAG,EAAE,QAAQ,CAAC,GAAG;iBAClB;gBACD,UAAU,EAAE,QAAQ,CAAC,UAAU;gBAC/B,UAAU,EAAE,QAAQ,CAAC,UAAU;gBAC/B,SAAS,EAAE,oBAAS,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;aAC5D,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,OAAO;YACL,SAAS;SACV,CAAA;IACH,CAAC;CACF,CAAC,CAAA","sourcesContent":["import { PlainMessage, Timestamp } from '@bufbuild/protobuf'\nimport { ServiceImpl } from '@connectrpc/connect'\nimport { keyBy } from '@atproto/common'\nimport { Service } from '../../../proto/bsky_connect'\nimport {\n Bookmark,\n GetBookmarksByActorAndSubjectsResponse,\n} from '../../../proto/bsky_pb'\nimport { Namespaces } from '../../../stash'\nimport { Database } from '../db'\nimport { StashKeyKey } from '../db/pagination'\n\nexport default (db: Database): Partial<ServiceImpl<typeof Service>> => ({\n async getActorBookmarks(req) {\n const { actorDid, cursor, limit } = req\n const { ref } = db.db.dynamic\n\n let builder = db.db\n .selectFrom('bookmark')\n .where('bookmark.creator', '=', actorDid)\n .selectAll()\n\n const key = new StashKeyKey(ref('bookmark.key'))\n builder = key.paginate(builder, {\n cursor,\n limit,\n })\n\n const res = await builder.execute()\n return {\n bookmarks: res.map((b) => ({\n key: b.key,\n subject: b.subjectUri,\n })),\n cursor: key.packFromResult(res),\n }\n },\n\n async getBookmarksByActorAndSubjects(req) {\n const { actorDid, uris } = req\n\n if (uris.length === 0) {\n return new GetBookmarksByActorAndSubjectsResponse({\n bookmarks: [],\n })\n }\n\n const res = await db.db\n .selectFrom('bookmark')\n .where('bookmark.creator', '=', actorDid)\n .where('bookmark.subjectUri', 'in', uris)\n .selectAll()\n .execute()\n\n const byUri = keyBy(res, 'subjectUri')\n const bookmarks = uris.map((did): PlainMessage<Bookmark> => {\n const bookmark = byUri.get(did)\n if (!bookmark) {\n return {\n ref: undefined,\n subjectUri: '',\n subjectCid: '',\n indexedAt: undefined,\n }\n }\n\n return {\n ref: {\n actorDid,\n namespace: Namespaces.AppBskyBookmarkDefsBookmark,\n key: bookmark.key,\n },\n subjectUri: bookmark.subjectUri,\n subjectCid: bookmark.subjectCid,\n indexedAt: Timestamp.fromDate(new Date(bookmark.indexedAt)),\n }\n })\n\n return {\n bookmarks,\n }\n },\n})\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feed-gens.js","sourceRoot":"","sources":["../../../../src/data-plane/server/routes/feed-gens.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"feed-gens.js","sourceRoot":"","sources":["../../../../src/data-plane/server/routes/feed-gens.ts"],"names":[],"mappings":"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","sourcesContent":["import { ServiceImpl } from '@connectrpc/connect'\nimport { Service } from '../../../proto/bsky_connect'\nimport { Database } from '../db'\nimport { TimeCidKeyset, paginate } from '../db/pagination'\n\nexport default (db: Database): Partial<ServiceImpl<typeof Service>> => ({\n async getActorFeeds(req) {\n const { actorDid, limit, cursor } = req\n\n const { ref } = db.db.dynamic\n let builder = db.db\n .selectFrom('feed_generator')\n .selectAll()\n .where('feed_generator.creator', '=', actorDid)\n\n const keyset = new TimeCidKeyset(\n ref('feed_generator.createdAt'),\n ref('feed_generator.cid'),\n )\n builder = paginate(builder, {\n limit,\n cursor,\n keyset,\n })\n const feeds = await builder.execute()\n\n return {\n uris: feeds.map((f) => f.uri),\n cursor: keyset.packFromResult(feeds),\n }\n },\n\n async getSuggestedFeeds(req) {\n const feeds = await db.db\n .selectFrom('suggested_feed')\n .orderBy('suggested_feed.order', 'asc')\n .if(!!req.cursor, (q) => q.where('order', '>', parseInt(req.cursor, 10)))\n .limit(req.limit || 50)\n .selectAll()\n .execute()\n return {\n uris: feeds.map((f) => f.uri),\n cursor: feeds.at(-1)?.order.toString(),\n }\n },\n\n async searchFeedGenerators(req) {\n const { ref } = db.db.dynamic\n const limit = req.limit\n const query = req.query.trim()\n let builder = db.db\n .selectFrom('feed_generator')\n .if(!!query, (q) => q.where('displayName', 'ilike', `%${query}%`))\n .selectAll()\n const keyset = new TimeCidKeyset(\n ref('feed_generator.createdAt'),\n ref('feed_generator.cid'),\n )\n builder = paginate(builder, { limit, keyset })\n const feeds = await builder.execute()\n return {\n uris: feeds.map((f) => f.uri),\n cursor: keyset.packFromResult(feeds),\n }\n },\n\n async getFeedGeneratorStatus() {\n throw new Error('unimplemented')\n },\n})\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feeds.js","sourceRoot":"","sources":["../../../../src/data-plane/server/routes/feeds.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"feeds.js","sourceRoot":"","sources":["../../../../src/data-plane/server/routes/feeds.ts"],"names":[],"mappings":"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","sourcesContent":["import { ServiceImpl } from '@connectrpc/connect'\nimport { Service } from '../../../proto/bsky_connect'\nimport { FeedType } from '../../../proto/bsky_pb'\nimport { Database } from '../db'\nimport { TimeCidKeyset, paginate } from '../db/pagination'\n\nexport default (db: Database): Partial<ServiceImpl<typeof Service>> => ({\n async getAuthorFeed(req) {\n const { actorDid, limit, cursor, feedType } = req\n const { ref } = db.db.dynamic\n\n // defaults to posts, reposts, and replies\n let builder = db.db\n .selectFrom('feed_item')\n .innerJoin('post', 'post.uri', 'feed_item.postUri')\n .selectAll('feed_item')\n .where('originatorDid', '=', actorDid)\n\n if (feedType === FeedType.POSTS_WITH_MEDIA) {\n builder = builder\n // only your own posts\n .where('type', '=', 'post')\n // only posts with media\n .whereExists((qb) =>\n qb\n .selectFrom('post_embed_image')\n .select('post_embed_image.postUri')\n .whereRef('post_embed_image.postUri', '=', 'feed_item.postUri'),\n )\n } else if (feedType === FeedType.POSTS_WITH_VIDEO) {\n builder = builder\n // only your own posts\n .where('type', '=', 'post')\n // only posts with video\n .whereExists((qb) =>\n qb\n .selectFrom('post_embed_video')\n .select('post_embed_video.postUri')\n .whereRef('post_embed_video.postUri', '=', 'feed_item.postUri'),\n )\n } else if (feedType === FeedType.POSTS_NO_REPLIES) {\n builder = builder.where((qb) =>\n qb.where('post.replyParent', 'is', null).orWhere('type', '=', 'repost'),\n )\n } else if (feedType === FeedType.POSTS_AND_AUTHOR_THREADS) {\n builder = builder.where((qb) =>\n qb\n .where('type', '=', 'repost')\n .orWhere('post.replyParent', 'is', null)\n .orWhere('post.replyRoot', 'like', `at://${actorDid}/%`),\n )\n }\n\n const keyset = new TimeCidKeyset(\n ref('feed_item.sortAt'),\n ref('feed_item.cid'),\n )\n\n builder = paginate(builder, {\n limit,\n cursor,\n keyset,\n })\n\n const feedItems = await builder.execute()\n\n return {\n items: feedItems.map(feedItemFromRow),\n cursor: keyset.packFromResult(feedItems),\n }\n },\n\n async getTimeline(req) {\n const { actorDid, limit, cursor } = req\n const { ref } = db.db.dynamic\n\n const keyset = new TimeCidKeyset(\n ref('feed_item.sortAt'),\n ref('feed_item.cid'),\n )\n\n let followQb = db.db\n .selectFrom('feed_item')\n .innerJoin('follow', 'follow.subjectDid', 'feed_item.originatorDid')\n .where('follow.creator', '=', actorDid)\n .selectAll('feed_item')\n\n followQb = paginate(followQb, {\n limit,\n cursor,\n keyset,\n tryIndex: true,\n })\n\n let selfQb = db.db\n .selectFrom('feed_item')\n .where('feed_item.originatorDid', '=', actorDid)\n .selectAll('feed_item')\n\n selfQb = paginate(selfQb, {\n limit: Math.min(limit, 10),\n cursor,\n keyset,\n tryIndex: true,\n })\n\n const [followRes, selfRes] = await Promise.all([\n followQb.execute(),\n selfQb.execute(),\n ])\n\n const feedItems = [...followRes, ...selfRes]\n .sort((a, b) => {\n if (a.sortAt > b.sortAt) return -1\n if (a.sortAt < b.sortAt) return 1\n return a.cid > b.cid ? -1 : 1\n })\n .slice(0, limit)\n\n return {\n items: feedItems.map(feedItemFromRow),\n cursor: keyset.packFromResult(feedItems),\n }\n },\n\n async getListFeed(req) {\n const { listUri, cursor, limit } = req\n const { ref } = db.db.dynamic\n\n let builder = db.db\n .selectFrom('post')\n .selectAll('post')\n .innerJoin('list_item', 'list_item.subjectDid', 'post.creator')\n .where('list_item.listUri', '=', listUri)\n\n const keyset = new TimeCidKeyset(ref('post.sortAt'), ref('post.cid'))\n builder = paginate(builder, {\n limit,\n cursor,\n keyset,\n tryIndex: true,\n })\n const feedItems = await builder.execute()\n\n return {\n items: feedItems.map((item) => ({ uri: item.uri, cid: item.cid })),\n cursor: keyset.packFromResult(feedItems),\n }\n },\n})\n\n// @NOTE does not support additional fields in the protos specific to author feeds\n// and timelines. at the time of writing, hydration/view implementations do not rely on them.\nconst feedItemFromRow = (row: { postUri: string; uri: string }) => {\n return {\n uri: row.postUri,\n repost: row.uri === row.postUri ? undefined : row.uri,\n }\n}\n"]}
|