From 52580fee15808f3890a59f7e80f5d6727bdd4a93 Mon Sep 17 00:00:00 2001 From: Daniel Holmgren Date: Thu, 7 Dec 2023 13:10:17 -0600 Subject: [PATCH] Setup dataplane grpc client/mock server (#1921) * add buf & connectrpc, codegen client * lint * prettier ignore * fix prettier ignore * tidy & add tests --- .prettierignore | 1 + packages/bsky/buf.gen.yaml | 8 + packages/bsky/package.json | 15 +- packages/bsky/proto/bsky.proto | 792 +++ packages/bsky/src/data-plane/client.ts | 17 + .../bsky/src/data-plane/gen/bsky_connect.ts | 534 ++ packages/bsky/src/data-plane/gen/bsky_pb.ts | 4598 +++++++++++++++++ packages/bsky/src/data-plane/server/index.ts | 29 + packages/bsky/src/data-plane/server/routes.ts | 12 + packages/bsky/tests/data-plane.test.ts | 25 + pnpm-lock.yaml | 284 +- 11 files changed, 6302 insertions(+), 13 deletions(-) create mode 100644 packages/bsky/buf.gen.yaml create mode 100644 packages/bsky/proto/bsky.proto create mode 100644 packages/bsky/src/data-plane/client.ts create mode 100644 packages/bsky/src/data-plane/gen/bsky_connect.ts create mode 100644 packages/bsky/src/data-plane/gen/bsky_pb.ts create mode 100644 packages/bsky/src/data-plane/server/index.ts create mode 100644 packages/bsky/src/data-plane/server/routes.ts create mode 100644 packages/bsky/tests/data-plane.test.ts diff --git a/.prettierignore b/.prettierignore index 6340cc359c2..7bb137f13ea 100644 --- a/.prettierignore +++ b/.prettierignore @@ -8,3 +8,4 @@ pnpm-lock.yaml .pnpm* .changeset *.d.ts +packages/bsky/src/data-plane/gen \ No newline at end of file diff --git a/packages/bsky/buf.gen.yaml b/packages/bsky/buf.gen.yaml new file mode 100644 index 00000000000..47bbfcd4f64 --- /dev/null +++ b/packages/bsky/buf.gen.yaml @@ -0,0 +1,8 @@ +version: v1 +plugins: + - plugin: es + opt: target=ts + out: src/data-plane/gen + - plugin: connect-es + opt: target=ts + out: src/data-plane/gen diff --git a/packages/bsky/package.json b/packages/bsky/package.json index ad86a2fff21..ebb1a8be332 100644 --- a/packages/bsky/package.json +++ b/packages/bsky/package.json @@ -28,17 +28,22 @@ "test": "../dev-infra/with-test-redis-and-db.sh jest", "test:log": "tail -50 test.log | pino-pretty", "test:updateSnapshot": "jest --updateSnapshot", - "migration:create": "ts-node ./bin/migration-create.ts" + "migration:create": "ts-node ./bin/migration-create.ts", + "buf:gen": "buf generate proto" }, "dependencies": { "@atproto/api": "workspace:^", "@atproto/common": "workspace:^", "@atproto/crypto": "workspace:^", - "@atproto/syntax": "workspace:^", "@atproto/identity": "workspace:^", "@atproto/lexicon": "workspace:^", "@atproto/repo": "workspace:^", + "@atproto/syntax": "workspace:^", "@atproto/xrpc-server": "workspace:^", + "@bufbuild/protobuf": "^1.5.0", + "@connectrpc/connect": "^1.1.4", + "@connectrpc/connect-express": "^1.1.4", + "@connectrpc/connect-node": "^1.1.4", "@did-plc/lib": "^0.0.1", "@isaacs/ttlcache": "^1.4.1", "compression": "^1.7.4", @@ -65,12 +70,16 @@ "@atproto/lex-cli": "workspace:^", "@atproto/pds": "workspace:^", "@atproto/xrpc": "workspace:^", + "@bufbuild/buf": "^1.28.1", + "@bufbuild/protoc-gen-es": "^1.5.0", + "@connectrpc/protoc-gen-connect-es": "^1.1.4", "@did-plc/server": "^0.0.1", "@types/cors": "^2.8.12", "@types/express": "^4.17.13", "@types/express-serve-static-core": "^4.17.36", "@types/pg": "^8.6.6", "@types/qs": "^6.9.7", - "axios": "^0.27.2" + "axios": "^0.27.2", + "http2-express-bridge": "^1.0.7" } } diff --git a/packages/bsky/proto/bsky.proto b/packages/bsky/proto/bsky.proto new file mode 100644 index 00000000000..ad273562773 --- /dev/null +++ b/packages/bsky/proto/bsky.proto @@ -0,0 +1,792 @@ +syntax = "proto3"; + +package bsky; +option go_package = "./;bsky"; + +import "google/protobuf/timestamp.proto"; + +// +// Bsky +// + +// +// Follows +// + +// - Return follow uris where user A follows users B, C, D, … +// - E.g. for viewer state on `getProfiles` +message GetActorFollowsActorsRequest { + string actor_did = 1; + repeated string target_dids = 2; +} + +message GetActorFollowsActorsResponse { + repeated string uris = 1; +} + +// - Return follow uris of users who follows user A +// - For `getFollowers` list +message GetFollowersRequest { + string actor_did = 1; + int32 limit = 2; + string cursor = 3; +} + +message GetFollowersResponse { + repeated string uris = 1; + string cursor = 2; +} + +// - Return follow uris of users A follows +// - For `getFollows` list +message GetFollowsRequest { + string actor_did = 1; + int32 limit = 2; + string cursor = 3; +} + +message GetFollowsResponse { + repeated string uris = 1; + string cursor = 2; +} + +// - Return number of users who follow A +// - For `followersCount` on a profile +message GetFollowersCountRequest { + string actor_did = 1; +} + +message GetFollowersCountResponse { + int32 count = 1; +} + +// - Return number of users followed by A +// - For `followCount` on a profile +message GetFollowsCountRequest { + string actor_did = 1; +} + +message GetFollowsCountResponse { + int32 count = 1; +} + +// +// Likes +// + +// - return like uris where subject uri is subject A +// - `getLikes` list for a post +message GetLikesBySubjectRequest { + string subject_uri = 1; + int32 limit = 2; + string cursor = 3; +} + +message GetLikesBySubjectResponse { + repeated string uris = 1; + string cursor = 2; +} + +// - return like uri for user A on subject B +// - viewer state on posts +message GetLikeByActorAndSubjectRequest { + string actor_did = 1; + string subject_uri = 2; +} + +message GetLikeByActorAndSubjectResponse { + string uri = 1; +} + +// - return recent like uris for user A +// - `getActorLikes` list for a user +message GetActorLikesRequest { + string actor_did = 1; + int32 limit = 2; + string cursor = 3; +} + +message GetActorLikesResponse { + repeated string uris = 1; + string cursor = 2; +} + +// - return number of likes on subject A +// - post or feed generator hydration `likeCount` field +message GetLikesCountRequest { + string subject_uri = 1; +} + +message GetLikesCountResponse { + int32 count = 1; +} + +// +// Reposts +// + +// - return repost uris where subject uri is subject A +// - `getReposts` list for a post +message GetRepostsBySubjectRequest { + string subject_uri = 1; + int32 limit = 2; + string cursor = 3; +} + +message GetRepostsBySubjectResponse { + repeated string uris = 1; + string cursor = 2; +} + +// - return repost uri for user A on subject B +// - viewer state on posts +message GetRepostByActorAndSubjectRequest { + string actor_did = 1; + string subject_uri = 2; +} + +message GetRepostByActorAndSubjectResponse { + string uri = 1; +} + +// - return recent repost uris for user A +// - `getActorReposts` list for a user +message GetActorRepostsRequest { + string actor_did = 1; + int32 limit = 2; + string cursor = 3; +} + +message GetActorRepostsResponse { + repeated string uris = 1; + string cursor = 2; +} + +// - return number of reposts on subject A +// - post or feed generator hydration `repostCount` field +message GetRepostsCountRequest { + string subject_uri = 1; +} + +message GetRepostsCountResponse { + int32 count = 1; +} + +// +// Profile +// + +// - return profile record for dids A, B, C… +// - profile hydration +// - should this include handles? apply repo takedown? +message GetProfilesRequest { + repeated string dids = 1; +} + +message GetProfilesResponse { + repeated bytes records = 1; +} + +// - return handle for dids A, B, C… +// - profile hydration +message GetHandlesRequest { + repeated string dids = 1; +} + +message GetHandlesResponse { + repeated string handles = 1; +} + +// - return did for handle A +// - `resolveHandle` +// - answering queries where the query param is a handle +message GetDidsByHandlesRequest { + repeated string handles = 1; +} + +message GetDidsByHandlesResponse { + repeated string dids = 1; +} + +// +// Lists +// + +// - Return dids of users in list A +// - E.g. to view items in one of your mute lists +message GetListMembersRequest { + string list_uri = 1; + int32 limit = 2; + string cursor = 3; +} + +message GetListMembersResponse { + repeated string dids = 1; + string cursor = 2; +} + +// - Return list uris where user A in list B, C, D… +// - Used in thread reply gates +message GetListMembershipRequest { + string actor_did = 1; + repeated string list_uris = 2; +} + +message GetListMembershipResponse { + repeated string listitem_uris = 1; +} + +// - Return list record for list uri +// - list view hydration +message GetListRequest { + string list_uri = 1; +} + +message GetListResponse { + bytes record = 1; +} + +// - Return number of items in list A +// - For aggregate +message GetListCountRequest { + string list_uri = 1; +} + +message GetListCountResponse { + int32 count = 1; +} + +// +// Mutes +// + +// - return boolean if user A has muted user B +// - hydrating mute state onto profiles +message GetActorMutesActorRequest { + string actor_did = 1; + string target_did = 2; +} + +message GetActorMutesActorResponse { + bool muted = 1; +} + +// - return list of user dids of users who A mutes +// - `getMutes` +message GetMutesRequest { + string actor_did = 1; + int32 limit = 2; + string cursor = 3; +} + +message GetMutesResponse { + repeated string dids = 1; + string cursor = 2; +} + +// +// Mutelists +// + +// - return list uri of *any* list through which user A has muted user B +// - hydrating mute state onto profiles +// - note: we only need *one* uri even if a user is muted by multiple lists +message GetActorMutesActorViaListRequest { + string actor_did = 1; + string target_did = 2; +} + +message GetActorMutesActorViaListResponse { + string list_uri = 1; +} + +// - return boolean if actor A has subscribed to mutelist B +// - list view hydration +message GetMutelistSubscriptionRequest { + string actor_did = 1; + string list_uri = 2; +} + +message GetMutelistSubscriptionResponse { + bool subscribed = 1; +} + +// - return list of list uris of mutelists that A subscribes to +// - `getListMutes` +message GetMutelistSubscriptionsRequest { + string actor_did = 1; + int32 limit = 2; + string cursor = 3; +} + +message GetMutelistSubscriptionsResponse { + repeated string list_uris = 1; + string cursor = 2; +} + +// +// Blocks +// + +// - Return block uri if there is a block between users A & B (bidirectional) +// - hydrating (& actioning) block state on profiles +// - handling 3rd party blocks +message GetBidirectionalBlockRequest { + string actor_did = 1; + string target_did = 2; +} + +message GetBidirectionalBlockResponse { + string block_uri = 1; +} + +// - Return list of block uris and user dids of users who A blocks +// - `getBlocks` +message GetBlocksRequest { + string actor_did = 1; + int32 limit = 2; + string cursor = 3; +} + +message GetBlocksResponse { + repeated string block_uris = 1; + string cursor = 2; +} + +// +// Blocklists +// + +// - Return list uri of ***any*** list through which users A & B have a block (bidirectional) +// - hydrating (& actioning) block state on profiles +// - handling 3rd party blocks +message GetBidirectionalBlockViaListRequest { + string actor_did = 1; + string target_did = 2; +} + +message GetBidirectionalBlockViaListResponse { + string list_uri = 1; +} + +// - return boolean if user A has subscribed to blocklist B +// - list view hydration +message GetBlocklistSubscriptionRequest { + string actor_did = 1; + string list_uri = 2; +} + +message GetBlocklistSubscriptionResponse { + bool subscribed = 1; +} + +// - return list of list uris of Blockslists that A subscribes to +// - `getListBlocks` +message GetBlocklistSubscriptionsRequest { + string actor_did = 1; + int32 limit = 2; + string cursor = 3; +} + +message GetBlocklistSubscriptionsResponse { + repeated string list_uris = 1; + string cursor = 2; +} + +// +// Notifications +// + +// - list recent notifications for a user +// - notifications should include a uri for the record that caused the notif & a “reason” for the notification (reply, like, quotepost, etc) +// - this should include both read & unread notifs +message GetNotificationsRequest { + string actor_did = 1; + int32 limit = 2; + string cursor = 3; +} + +message Notification { + string uri = 1; + string reason = 2; + google.protobuf.Timestamp timestamp = 3; +} + +message GetNotificationsResponse { + repeated Notification notifications = 1; + string cursor = 2; +} + +// - update a user’s “last seen time” +// - `updateSeen` +message UpdateNotificationSeenRequest { + string actor_did = 1; + google.protobuf.Timestamp timestamp = 2; +} + +message UpdateNotificationSeenResponse {} + +// - get a user’s “last seen time” +// - hydrating read state onto notifications +message GetNotificationSeenRequest { + string actor_did = 1; +} + +message GetNotificationSeenResponse { + google.protobuf.Timestamp timestamp = 1; +} + +// - get a count of all unread notifications (notifications after `updateSeen`) +// - `getUnreadCount` +message GetUnreadNotificationCountRequest { + string actor_did = 1; +} + +message GetUnreadNotificationCountResponse { + int32 count = 1; +} + +// +// FeedGenerators +// + +// - Returns feed generator records with uris A, B, C… +// - hydration of feed generator views +message GetFeedGeneratorsRequest { + repeated string uris = 1; +} + +message GetFeedGeneratorsResponse { + repeated bytes records = 1; +} + +// - Return uris of feed generator records created by user A +// - `getActorFeeds` +message GetActorFeedsRequest { + string actor_did = 1; + int32 limit = 2; + string cursor = 3; +} + +message GetActorFeedsResponse { + repeated string uris = 1; + string cursor = 2; +} + +// - Returns a list of suggested feed generator uris for an actor, paginated +// - `getSuggestedFeeds` +// - This is currently just hardcoded in the Appview DB +message GetSuggestedFeedsRequest { + string actor_did = 1; + int32 limit = 2; + string cursor = 3; +} + +message GetSuggestedFeedsResponse { + repeated string uris = 1; + string cursor = 2; +} + +// - Returns feed generator validity and online status with uris A, B, C… +// - Not currently being used, but could be worhthwhile. +message GetFeedGeneratorStatusRequest { + repeated string uris = 1; +} + +message GetFeedGeneratorStatusResponse { + repeated string status = 1; +} + +// +// Feeds +// + +// - Returns recent posts authored by a given DID, paginated +// - `getAuthorFeed` +// - Optionally: filter by if a post is/isn’t a reply and if a post has a media object in it +message GetAuthorFeedRequest { + string actor_did = 1; + int32 limit = 2; + string cursor = 3; + bool replies_only = 4; + bool media_only = 5; +} + +message GetAuthorFeedResponse { + repeated string uris = 1; + string cursor = 2; +} + +// - Returns recent posts authored by users followed by a given DID, paginated +// - `getTimeline` +message GetTimelineRequest { + string actor_did = 1; + int32 limit = 2; + string cursor = 3; +} + +message GetTimelineResponse { + repeated string uris = 1; + string cursor = 2; +} + +// - Return recent post uris from users in list A +// - `getListFeed` +// - (This is essentially the same as `getTimeline` but instead of follows of a did, it is list items of a list) +message GetListFeedRequest { + string list_uri = 1; + int32 limit = 2; + string cursor = 3; +} + +message GetListFeedResponse { + repeated string uris = 1; + string cursor = 2; +} + +// +// Threads +// + +// Return posts uris of any replies N levels above or M levels below post A +message GetThreadRequest { + string post_uri = 1; + int32 above = 2; + int32 below = 3; +} + +message GetThreadResponse { + repeated string uris = 1; +} + +// Return threadgate records with uris A, B, C… +message GetThreadgatesRequest { + repeated string uris = 1; +} + +message GetThreadgatesResponse { + repeated bytes records = 1; +} + +// +// Search +// + +// - Return DIDs of actors matching term, paginated +// - `searchActors` skeleton +message SearchActorsRequest { + string term = 1; + int32 limit = 2; + string cursor = 3; +} + +message SearchActorsResponse { + repeated string dids = 1; + string cursor = 2; +} + +// - Return uris of posts matching term, paginated +// - `searchPosts` skeleton +message SearchPostsRequest { + string term = 1; + int32 limit = 2; + string cursor = 3; +} + +message SearchPostsResponse { + repeated string uris = 1; + string cursor = 2; +} + +// +// Suggestions +// + +// - Return DIDs of suggested follows for a user, excluding anyone they already follow +// - `getSuggestions` +message GetSuggestionsRequest { + string actor_did = 1; + int32 limit = 2; + string cursor = 3; +} + +message GetSuggestionsResponse { + repeated string dids = 1; + string cursor = 2; +} + +// +// Posts +// + +// - Return post records with uris A, B, C… +// - All feed hydration +message GetPostsRequest { + repeated string uris = 1; +} + +message GetPostsResponse { + repeated bytes records = 1; +} + +// - Return post reply count with uris A, B, C… +// - All feed hydration +message GetPostReplyCountRequest { + repeated string uris = 1; +} + +message GetPostReplyCountResponse { + repeated int32 counts = 1; +} + +// +// Labels +// + +// - Get all labels on a subjects A, B, C (uri or did) issued by dids D, E, F… +// - label hydration on nearly every view +message GetLabelsRequest { + repeated string subjects = 1; + repeated string issuers = 2; +} + +message GetLabelsResponse { + repeated bytes records = 1; +} + +// +// Sync +// + +// - Latest repo rev of user w/ DID +// - Read-after-write header in`getProfile`, `getProfiles`, `getActorLikes`, `getAuthorFeed`, `getListFeed`, `getPostThread`, `getTimeline`. Could it be view dependent? +message GetLatestRevRequest { + string actor_did = 1; +} + +message GetLatestRevResponse { + string rev = 1; +} + +// +// Moderation +// + +// - Return whether blob is taken down given DID and CID +message GetBlobTakedownRequest { + string actor_did = 1; + string cid = 2; +} + +message GetBlobTakedownResponse { + bool taken_down = 1; +} + +// - Update takedown state for actors, records, and blobs +message UpdateTakedownRequest { + string actor_did = 1; + string record_uri = 2; + string blob_cid = 3; + bool taken_down = 4; +} + +message UpdateTakedownResponse {} + +// Ping +message PingRequest {} +message PingResponse {} + +service Service { + // Follows + rpc GetActorFollowsActors(GetActorFollowsActorsRequest) returns (GetActorFollowsActorsResponse); + rpc GetFollowers(GetFollowersRequest) returns (GetFollowersResponse); + rpc GetFollows(GetFollowsRequest) returns (GetFollowsResponse); + rpc GetFollowersCount(GetFollowersCountRequest) returns (GetFollowersCountResponse); + rpc GetFollowsCount(GetFollowsCountRequest) returns (GetFollowsCountResponse); + + // Likes + rpc GetLikesBySubject(GetLikesBySubjectRequest) returns (GetLikesBySubjectResponse); + rpc GetLikeByActorAndSubject(GetLikeByActorAndSubjectRequest) returns (GetLikeByActorAndSubjectResponse); + rpc GetActorLikes(GetActorLikesRequest) returns (GetActorLikesResponse); + rpc GetLikesCount(GetLikesCountRequest) returns (GetLikesCountResponse); + + // Reposts + rpc GetRepostsBySubject(GetRepostsBySubjectRequest) returns (GetRepostsBySubjectResponse); + rpc GetRepostByActorAndSubject(GetRepostByActorAndSubjectRequest) returns (GetRepostByActorAndSubjectResponse); + rpc GetActorReposts(GetActorRepostsRequest) returns (GetActorRepostsResponse); + rpc GetRepostsCount(GetRepostsCountRequest) returns (GetRepostsCountResponse); + + // Profile + rpc GetProfiles(GetProfilesRequest) returns (GetProfilesResponse); + rpc GetHandles(GetHandlesRequest) returns (GetHandlesResponse); + rpc GetDidsByHandles(GetDidsByHandlesRequest) returns (GetDidsByHandlesResponse); + + // Lists + rpc GetListMembers(GetListMembersRequest) returns (GetListMembersResponse); + rpc GetListMembership(GetListMembershipRequest) returns (GetListMembershipResponse); + rpc GetList(GetListRequest) returns (GetListResponse); + rpc GetListCount(GetListCountRequest) returns (GetListCountResponse); + + // Mutes + rpc GetActorMutesActor(GetActorMutesActorRequest) returns (GetActorMutesActorResponse); + rpc GetMutes(GetMutesRequest) returns (GetMutesResponse); + + // Mutelists + rpc GetActorMutesActorViaList(GetActorMutesActorViaListRequest) returns (GetActorMutesActorViaListResponse); + rpc GetMutelistSubscription(GetMutelistSubscriptionRequest) returns (GetMutelistSubscriptionResponse); + rpc GetMutelistSubscriptions(GetMutelistSubscriptionsRequest) returns (GetMutelistSubscriptionsResponse); + + // Blocks + rpc GetBidirectionalBlock(GetBidirectionalBlockRequest) returns (GetBidirectionalBlockResponse); + rpc GetBlocks(GetBlocksRequest) returns (GetBlocksResponse); + + // Blocklists + rpc GetBidirectionalBlockViaList(GetBidirectionalBlockViaListRequest) returns (GetBidirectionalBlockViaListResponse); + rpc GetBlocklistSubscription(GetBlocklistSubscriptionRequest) returns (GetBlocklistSubscriptionResponse); + rpc GetBlocklistSubscriptions(GetBlocklistSubscriptionsRequest) returns (GetBlocklistSubscriptionsResponse); + + // Notifications + rpc GetNotifications(GetNotificationsRequest) returns (GetNotificationsResponse); + rpc GetNotificationSeen(GetNotificationSeenRequest) returns (GetNotificationSeenResponse); + rpc GetUnreadNotificationCount(GetUnreadNotificationCountRequest) returns (GetUnreadNotificationCountResponse); + rpc UpdateNotificationSeen(UpdateNotificationSeenRequest) returns (UpdateNotificationSeenResponse); + + // FeedGenerators + rpc GetFeedGenerators(GetFeedGeneratorsRequest) returns (GetFeedGeneratorsResponse); + rpc GetActorFeeds(GetActorFeedsRequest) returns (GetActorFeedsResponse); + rpc GetSuggestedFeeds(GetSuggestedFeedsRequest) returns (GetSuggestedFeedsResponse); + rpc GetFeedGeneratorStatus(GetFeedGeneratorStatusRequest) returns (GetFeedGeneratorStatusResponse); + + // Feeds + rpc GetAuthorFeed(GetAuthorFeedRequest) returns (GetAuthorFeedResponse); + rpc GetTimeline(GetTimelineRequest) returns (GetTimelineResponse); + rpc GetListFeed(GetListFeedRequest) returns (GetListFeedResponse); + + // Threads + rpc GetThread(GetThreadRequest) returns (GetThreadResponse); + rpc GetThreadgates(GetThreadgatesRequest) returns (GetThreadgatesResponse); + + // Search + rpc SearchActors(SearchActorsRequest) returns (SearchActorsResponse); + rpc SearchPosts(SearchPostsRequest) returns (SearchPostsResponse); + + // Suggestions + rpc GetSuggestions(GetSuggestionsRequest) returns (GetSuggestionsResponse); + + // Posts + rpc GetPosts(GetPostsRequest) returns (GetPostsResponse); + rpc GetPostReplyCount(GetPostReplyCountRequest) returns (GetPostReplyCountResponse); + + // Labels + rpc GetLabels(GetLabelsRequest) returns (GetLabelsResponse); + + // Sync + rpc GetLatestRev(GetLatestRevRequest) returns (GetLatestRevResponse); + + // Moderation + rpc GetBlobTakedown(GetBlobTakedownRequest) returns (GetBlobTakedownResponse); + rpc UpdateTakedown(UpdateTakedownRequest) returns (UpdateTakedownResponse); + + // Ping + rpc Ping(PingRequest) returns (PingResponse); +} diff --git a/packages/bsky/src/data-plane/client.ts b/packages/bsky/src/data-plane/client.ts new file mode 100644 index 00000000000..75d45e93b98 --- /dev/null +++ b/packages/bsky/src/data-plane/client.ts @@ -0,0 +1,17 @@ +import { Service } from './gen/bsky_connect' +import { PromiseClient, createPromiseClient } from '@connectrpc/connect' +import { createConnectTransport } from '@connectrpc/connect-node' + +export type DataPlaneClient = PromiseClient +type HttpVersion = '1.1' | '2' + +export const createDataPlaneClient = ( + baseUrl: string, + httpVersion: HttpVersion = '2', +) => { + const transport = createConnectTransport({ + baseUrl, + httpVersion, + }) + return createPromiseClient(Service, transport) +} diff --git a/packages/bsky/src/data-plane/gen/bsky_connect.ts b/packages/bsky/src/data-plane/gen/bsky_connect.ts new file mode 100644 index 00000000000..482f0c061ac --- /dev/null +++ b/packages/bsky/src/data-plane/gen/bsky_connect.ts @@ -0,0 +1,534 @@ +// @generated by protoc-gen-connect-es v1.1.4 with parameter "target=ts" +// @generated from file bsky.proto (package bsky, syntax proto3) +/* eslint-disable */ +// @ts-nocheck + +import { GetActorFeedsRequest, GetActorFeedsResponse, GetActorFollowsActorsRequest, GetActorFollowsActorsResponse, GetActorLikesRequest, GetActorLikesResponse, GetActorMutesActorRequest, GetActorMutesActorResponse, GetActorMutesActorViaListRequest, GetActorMutesActorViaListResponse, GetActorRepostsRequest, GetActorRepostsResponse, GetAuthorFeedRequest, GetAuthorFeedResponse, GetBidirectionalBlockRequest, GetBidirectionalBlockResponse, GetBidirectionalBlockViaListRequest, GetBidirectionalBlockViaListResponse, GetBlobTakedownRequest, GetBlobTakedownResponse, GetBlocklistSubscriptionRequest, GetBlocklistSubscriptionResponse, GetBlocklistSubscriptionsRequest, GetBlocklistSubscriptionsResponse, GetBlocksRequest, GetBlocksResponse, GetDidsByHandlesRequest, GetDidsByHandlesResponse, GetFeedGeneratorsRequest, GetFeedGeneratorsResponse, GetFeedGeneratorStatusRequest, GetFeedGeneratorStatusResponse, GetFollowersCountRequest, GetFollowersCountResponse, GetFollowersRequest, GetFollowersResponse, GetFollowsCountRequest, GetFollowsCountResponse, GetFollowsRequest, GetFollowsResponse, GetHandlesRequest, GetHandlesResponse, GetLabelsRequest, GetLabelsResponse, GetLatestRevRequest, GetLatestRevResponse, GetLikeByActorAndSubjectRequest, GetLikeByActorAndSubjectResponse, GetLikesBySubjectRequest, GetLikesBySubjectResponse, GetLikesCountRequest, GetLikesCountResponse, GetListCountRequest, GetListCountResponse, GetListFeedRequest, GetListFeedResponse, GetListMembershipRequest, GetListMembershipResponse, GetListMembersRequest, GetListMembersResponse, GetListRequest, GetListResponse, GetMutelistSubscriptionRequest, GetMutelistSubscriptionResponse, GetMutelistSubscriptionsRequest, GetMutelistSubscriptionsResponse, GetMutesRequest, GetMutesResponse, GetNotificationSeenRequest, GetNotificationSeenResponse, GetNotificationsRequest, GetNotificationsResponse, GetPostReplyCountRequest, GetPostReplyCountResponse, GetPostsRequest, GetPostsResponse, GetProfilesRequest, GetProfilesResponse, GetRepostByActorAndSubjectRequest, GetRepostByActorAndSubjectResponse, GetRepostsBySubjectRequest, GetRepostsBySubjectResponse, GetRepostsCountRequest, GetRepostsCountResponse, GetSuggestedFeedsRequest, GetSuggestedFeedsResponse, GetSuggestionsRequest, GetSuggestionsResponse, GetThreadgatesRequest, GetThreadgatesResponse, GetThreadRequest, GetThreadResponse, GetTimelineRequest, GetTimelineResponse, GetUnreadNotificationCountRequest, GetUnreadNotificationCountResponse, PingRequest, PingResponse, SearchActorsRequest, SearchActorsResponse, SearchPostsRequest, SearchPostsResponse, UpdateNotificationSeenRequest, UpdateNotificationSeenResponse, UpdateTakedownRequest, UpdateTakedownResponse } from "./bsky_pb"; +import { MethodKind } from "@bufbuild/protobuf"; + +/** + * @generated from service bsky.Service + */ +export const Service = { + typeName: "bsky.Service", + methods: { + /** + * Follows + * + * @generated from rpc bsky.Service.GetActorFollowsActors + */ + getActorFollowsActors: { + name: "GetActorFollowsActors", + I: GetActorFollowsActorsRequest, + O: GetActorFollowsActorsResponse, + kind: MethodKind.Unary, + }, + /** + * @generated from rpc bsky.Service.GetFollowers + */ + getFollowers: { + name: "GetFollowers", + I: GetFollowersRequest, + O: GetFollowersResponse, + kind: MethodKind.Unary, + }, + /** + * @generated from rpc bsky.Service.GetFollows + */ + getFollows: { + name: "GetFollows", + I: GetFollowsRequest, + O: GetFollowsResponse, + kind: MethodKind.Unary, + }, + /** + * @generated from rpc bsky.Service.GetFollowersCount + */ + getFollowersCount: { + name: "GetFollowersCount", + I: GetFollowersCountRequest, + O: GetFollowersCountResponse, + kind: MethodKind.Unary, + }, + /** + * @generated from rpc bsky.Service.GetFollowsCount + */ + getFollowsCount: { + name: "GetFollowsCount", + I: GetFollowsCountRequest, + O: GetFollowsCountResponse, + kind: MethodKind.Unary, + }, + /** + * Likes + * + * @generated from rpc bsky.Service.GetLikesBySubject + */ + getLikesBySubject: { + name: "GetLikesBySubject", + I: GetLikesBySubjectRequest, + O: GetLikesBySubjectResponse, + kind: MethodKind.Unary, + }, + /** + * @generated from rpc bsky.Service.GetLikeByActorAndSubject + */ + getLikeByActorAndSubject: { + name: "GetLikeByActorAndSubject", + I: GetLikeByActorAndSubjectRequest, + O: GetLikeByActorAndSubjectResponse, + kind: MethodKind.Unary, + }, + /** + * @generated from rpc bsky.Service.GetActorLikes + */ + getActorLikes: { + name: "GetActorLikes", + I: GetActorLikesRequest, + O: GetActorLikesResponse, + kind: MethodKind.Unary, + }, + /** + * @generated from rpc bsky.Service.GetLikesCount + */ + getLikesCount: { + name: "GetLikesCount", + I: GetLikesCountRequest, + O: GetLikesCountResponse, + kind: MethodKind.Unary, + }, + /** + * Reposts + * + * @generated from rpc bsky.Service.GetRepostsBySubject + */ + getRepostsBySubject: { + name: "GetRepostsBySubject", + I: GetRepostsBySubjectRequest, + O: GetRepostsBySubjectResponse, + kind: MethodKind.Unary, + }, + /** + * @generated from rpc bsky.Service.GetRepostByActorAndSubject + */ + getRepostByActorAndSubject: { + name: "GetRepostByActorAndSubject", + I: GetRepostByActorAndSubjectRequest, + O: GetRepostByActorAndSubjectResponse, + kind: MethodKind.Unary, + }, + /** + * @generated from rpc bsky.Service.GetActorReposts + */ + getActorReposts: { + name: "GetActorReposts", + I: GetActorRepostsRequest, + O: GetActorRepostsResponse, + kind: MethodKind.Unary, + }, + /** + * @generated from rpc bsky.Service.GetRepostsCount + */ + getRepostsCount: { + name: "GetRepostsCount", + I: GetRepostsCountRequest, + O: GetRepostsCountResponse, + kind: MethodKind.Unary, + }, + /** + * Profile + * + * @generated from rpc bsky.Service.GetProfiles + */ + getProfiles: { + name: "GetProfiles", + I: GetProfilesRequest, + O: GetProfilesResponse, + kind: MethodKind.Unary, + }, + /** + * @generated from rpc bsky.Service.GetHandles + */ + getHandles: { + name: "GetHandles", + I: GetHandlesRequest, + O: GetHandlesResponse, + kind: MethodKind.Unary, + }, + /** + * @generated from rpc bsky.Service.GetDidsByHandles + */ + getDidsByHandles: { + name: "GetDidsByHandles", + I: GetDidsByHandlesRequest, + O: GetDidsByHandlesResponse, + kind: MethodKind.Unary, + }, + /** + * Lists + * + * @generated from rpc bsky.Service.GetListMembers + */ + getListMembers: { + name: "GetListMembers", + I: GetListMembersRequest, + O: GetListMembersResponse, + kind: MethodKind.Unary, + }, + /** + * @generated from rpc bsky.Service.GetListMembership + */ + getListMembership: { + name: "GetListMembership", + I: GetListMembershipRequest, + O: GetListMembershipResponse, + kind: MethodKind.Unary, + }, + /** + * @generated from rpc bsky.Service.GetList + */ + getList: { + name: "GetList", + I: GetListRequest, + O: GetListResponse, + kind: MethodKind.Unary, + }, + /** + * @generated from rpc bsky.Service.GetListCount + */ + getListCount: { + name: "GetListCount", + I: GetListCountRequest, + O: GetListCountResponse, + kind: MethodKind.Unary, + }, + /** + * Mutes + * + * @generated from rpc bsky.Service.GetActorMutesActor + */ + getActorMutesActor: { + name: "GetActorMutesActor", + I: GetActorMutesActorRequest, + O: GetActorMutesActorResponse, + kind: MethodKind.Unary, + }, + /** + * @generated from rpc bsky.Service.GetMutes + */ + getMutes: { + name: "GetMutes", + I: GetMutesRequest, + O: GetMutesResponse, + kind: MethodKind.Unary, + }, + /** + * Mutelists + * + * @generated from rpc bsky.Service.GetActorMutesActorViaList + */ + getActorMutesActorViaList: { + name: "GetActorMutesActorViaList", + I: GetActorMutesActorViaListRequest, + O: GetActorMutesActorViaListResponse, + kind: MethodKind.Unary, + }, + /** + * @generated from rpc bsky.Service.GetMutelistSubscription + */ + getMutelistSubscription: { + name: "GetMutelistSubscription", + I: GetMutelistSubscriptionRequest, + O: GetMutelistSubscriptionResponse, + kind: MethodKind.Unary, + }, + /** + * @generated from rpc bsky.Service.GetMutelistSubscriptions + */ + getMutelistSubscriptions: { + name: "GetMutelistSubscriptions", + I: GetMutelistSubscriptionsRequest, + O: GetMutelistSubscriptionsResponse, + kind: MethodKind.Unary, + }, + /** + * Blocks + * + * @generated from rpc bsky.Service.GetBidirectionalBlock + */ + getBidirectionalBlock: { + name: "GetBidirectionalBlock", + I: GetBidirectionalBlockRequest, + O: GetBidirectionalBlockResponse, + kind: MethodKind.Unary, + }, + /** + * @generated from rpc bsky.Service.GetBlocks + */ + getBlocks: { + name: "GetBlocks", + I: GetBlocksRequest, + O: GetBlocksResponse, + kind: MethodKind.Unary, + }, + /** + * Blocklists + * + * @generated from rpc bsky.Service.GetBidirectionalBlockViaList + */ + getBidirectionalBlockViaList: { + name: "GetBidirectionalBlockViaList", + I: GetBidirectionalBlockViaListRequest, + O: GetBidirectionalBlockViaListResponse, + kind: MethodKind.Unary, + }, + /** + * @generated from rpc bsky.Service.GetBlocklistSubscription + */ + getBlocklistSubscription: { + name: "GetBlocklistSubscription", + I: GetBlocklistSubscriptionRequest, + O: GetBlocklistSubscriptionResponse, + kind: MethodKind.Unary, + }, + /** + * @generated from rpc bsky.Service.GetBlocklistSubscriptions + */ + getBlocklistSubscriptions: { + name: "GetBlocklistSubscriptions", + I: GetBlocklistSubscriptionsRequest, + O: GetBlocklistSubscriptionsResponse, + kind: MethodKind.Unary, + }, + /** + * Notifications + * + * @generated from rpc bsky.Service.GetNotifications + */ + getNotifications: { + name: "GetNotifications", + I: GetNotificationsRequest, + O: GetNotificationsResponse, + kind: MethodKind.Unary, + }, + /** + * @generated from rpc bsky.Service.GetNotificationSeen + */ + getNotificationSeen: { + name: "GetNotificationSeen", + I: GetNotificationSeenRequest, + O: GetNotificationSeenResponse, + kind: MethodKind.Unary, + }, + /** + * @generated from rpc bsky.Service.GetUnreadNotificationCount + */ + getUnreadNotificationCount: { + name: "GetUnreadNotificationCount", + I: GetUnreadNotificationCountRequest, + O: GetUnreadNotificationCountResponse, + kind: MethodKind.Unary, + }, + /** + * @generated from rpc bsky.Service.UpdateNotificationSeen + */ + updateNotificationSeen: { + name: "UpdateNotificationSeen", + I: UpdateNotificationSeenRequest, + O: UpdateNotificationSeenResponse, + kind: MethodKind.Unary, + }, + /** + * FeedGenerators + * + * @generated from rpc bsky.Service.GetFeedGenerators + */ + getFeedGenerators: { + name: "GetFeedGenerators", + I: GetFeedGeneratorsRequest, + O: GetFeedGeneratorsResponse, + kind: MethodKind.Unary, + }, + /** + * @generated from rpc bsky.Service.GetActorFeeds + */ + getActorFeeds: { + name: "GetActorFeeds", + I: GetActorFeedsRequest, + O: GetActorFeedsResponse, + kind: MethodKind.Unary, + }, + /** + * @generated from rpc bsky.Service.GetSuggestedFeeds + */ + getSuggestedFeeds: { + name: "GetSuggestedFeeds", + I: GetSuggestedFeedsRequest, + O: GetSuggestedFeedsResponse, + kind: MethodKind.Unary, + }, + /** + * @generated from rpc bsky.Service.GetFeedGeneratorStatus + */ + getFeedGeneratorStatus: { + name: "GetFeedGeneratorStatus", + I: GetFeedGeneratorStatusRequest, + O: GetFeedGeneratorStatusResponse, + kind: MethodKind.Unary, + }, + /** + * Feeds + * + * @generated from rpc bsky.Service.GetAuthorFeed + */ + getAuthorFeed: { + name: "GetAuthorFeed", + I: GetAuthorFeedRequest, + O: GetAuthorFeedResponse, + kind: MethodKind.Unary, + }, + /** + * @generated from rpc bsky.Service.GetTimeline + */ + getTimeline: { + name: "GetTimeline", + I: GetTimelineRequest, + O: GetTimelineResponse, + kind: MethodKind.Unary, + }, + /** + * @generated from rpc bsky.Service.GetListFeed + */ + getListFeed: { + name: "GetListFeed", + I: GetListFeedRequest, + O: GetListFeedResponse, + kind: MethodKind.Unary, + }, + /** + * Threads + * + * @generated from rpc bsky.Service.GetThread + */ + getThread: { + name: "GetThread", + I: GetThreadRequest, + O: GetThreadResponse, + kind: MethodKind.Unary, + }, + /** + * @generated from rpc bsky.Service.GetThreadgates + */ + getThreadgates: { + name: "GetThreadgates", + I: GetThreadgatesRequest, + O: GetThreadgatesResponse, + kind: MethodKind.Unary, + }, + /** + * Search + * + * @generated from rpc bsky.Service.SearchActors + */ + searchActors: { + name: "SearchActors", + I: SearchActorsRequest, + O: SearchActorsResponse, + kind: MethodKind.Unary, + }, + /** + * @generated from rpc bsky.Service.SearchPosts + */ + searchPosts: { + name: "SearchPosts", + I: SearchPostsRequest, + O: SearchPostsResponse, + kind: MethodKind.Unary, + }, + /** + * Suggestions + * + * @generated from rpc bsky.Service.GetSuggestions + */ + getSuggestions: { + name: "GetSuggestions", + I: GetSuggestionsRequest, + O: GetSuggestionsResponse, + kind: MethodKind.Unary, + }, + /** + * Posts + * + * @generated from rpc bsky.Service.GetPosts + */ + getPosts: { + name: "GetPosts", + I: GetPostsRequest, + O: GetPostsResponse, + kind: MethodKind.Unary, + }, + /** + * @generated from rpc bsky.Service.GetPostReplyCount + */ + getPostReplyCount: { + name: "GetPostReplyCount", + I: GetPostReplyCountRequest, + O: GetPostReplyCountResponse, + kind: MethodKind.Unary, + }, + /** + * Labels + * + * @generated from rpc bsky.Service.GetLabels + */ + getLabels: { + name: "GetLabels", + I: GetLabelsRequest, + O: GetLabelsResponse, + kind: MethodKind.Unary, + }, + /** + * Sync + * + * @generated from rpc bsky.Service.GetLatestRev + */ + getLatestRev: { + name: "GetLatestRev", + I: GetLatestRevRequest, + O: GetLatestRevResponse, + kind: MethodKind.Unary, + }, + /** + * Moderation + * + * @generated from rpc bsky.Service.GetBlobTakedown + */ + getBlobTakedown: { + name: "GetBlobTakedown", + I: GetBlobTakedownRequest, + O: GetBlobTakedownResponse, + kind: MethodKind.Unary, + }, + /** + * @generated from rpc bsky.Service.UpdateTakedown + */ + updateTakedown: { + name: "UpdateTakedown", + I: UpdateTakedownRequest, + O: UpdateTakedownResponse, + kind: MethodKind.Unary, + }, + /** + * Ping + * + * @generated from rpc bsky.Service.Ping + */ + ping: { + name: "Ping", + I: PingRequest, + O: PingResponse, + kind: MethodKind.Unary, + }, + } +} as const; + diff --git a/packages/bsky/src/data-plane/gen/bsky_pb.ts b/packages/bsky/src/data-plane/gen/bsky_pb.ts new file mode 100644 index 00000000000..600086aa596 --- /dev/null +++ b/packages/bsky/src/data-plane/gen/bsky_pb.ts @@ -0,0 +1,4598 @@ +// @generated by protoc-gen-es v1.5.0 with parameter "target=ts" +// @generated from file bsky.proto (package bsky, syntax proto3) +/* eslint-disable */ +// @ts-nocheck + +import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf"; +import { Message, proto3, Timestamp } from "@bufbuild/protobuf"; + +/** + * - Return follow uris where user A follows users B, C, D, … + * - E.g. for viewer state on `getProfiles` + * + * @generated from message bsky.GetActorFollowsActorsRequest + */ +export class GetActorFollowsActorsRequest extends Message { + /** + * @generated from field: string actor_did = 1; + */ + actorDid = ""; + + /** + * @generated from field: repeated string target_dids = 2; + */ + targetDids: string[] = []; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetActorFollowsActorsRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "actor_did", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "target_dids", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetActorFollowsActorsRequest { + return new GetActorFollowsActorsRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetActorFollowsActorsRequest { + return new GetActorFollowsActorsRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetActorFollowsActorsRequest { + return new GetActorFollowsActorsRequest().fromJsonString(jsonString, options); + } + + static equals(a: GetActorFollowsActorsRequest | PlainMessage | undefined, b: GetActorFollowsActorsRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(GetActorFollowsActorsRequest, a, b); + } +} + +/** + * @generated from message bsky.GetActorFollowsActorsResponse + */ +export class GetActorFollowsActorsResponse extends Message { + /** + * @generated from field: repeated string uris = 1; + */ + uris: string[] = []; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetActorFollowsActorsResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "uris", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetActorFollowsActorsResponse { + return new GetActorFollowsActorsResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetActorFollowsActorsResponse { + return new GetActorFollowsActorsResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetActorFollowsActorsResponse { + return new GetActorFollowsActorsResponse().fromJsonString(jsonString, options); + } + + static equals(a: GetActorFollowsActorsResponse | PlainMessage | undefined, b: GetActorFollowsActorsResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(GetActorFollowsActorsResponse, a, b); + } +} + +/** + * - Return follow uris of users who follows user A + * - For `getFollowers` list + * + * @generated from message bsky.GetFollowersRequest + */ +export class GetFollowersRequest extends Message { + /** + * @generated from field: string actor_did = 1; + */ + actorDid = ""; + + /** + * @generated from field: int32 limit = 2; + */ + limit = 0; + + /** + * @generated from field: string cursor = 3; + */ + cursor = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetFollowersRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "actor_did", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "limit", kind: "scalar", T: 5 /* ScalarType.INT32 */ }, + { no: 3, name: "cursor", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetFollowersRequest { + return new GetFollowersRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetFollowersRequest { + return new GetFollowersRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetFollowersRequest { + return new GetFollowersRequest().fromJsonString(jsonString, options); + } + + static equals(a: GetFollowersRequest | PlainMessage | undefined, b: GetFollowersRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(GetFollowersRequest, a, b); + } +} + +/** + * @generated from message bsky.GetFollowersResponse + */ +export class GetFollowersResponse extends Message { + /** + * @generated from field: repeated string uris = 1; + */ + uris: string[] = []; + + /** + * @generated from field: string cursor = 2; + */ + cursor = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetFollowersResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "uris", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, + { no: 2, name: "cursor", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetFollowersResponse { + return new GetFollowersResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetFollowersResponse { + return new GetFollowersResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetFollowersResponse { + return new GetFollowersResponse().fromJsonString(jsonString, options); + } + + static equals(a: GetFollowersResponse | PlainMessage | undefined, b: GetFollowersResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(GetFollowersResponse, a, b); + } +} + +/** + * - Return follow uris of users A follows + * - For `getFollows` list + * + * @generated from message bsky.GetFollowsRequest + */ +export class GetFollowsRequest extends Message { + /** + * @generated from field: string actor_did = 1; + */ + actorDid = ""; + + /** + * @generated from field: int32 limit = 2; + */ + limit = 0; + + /** + * @generated from field: string cursor = 3; + */ + cursor = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetFollowsRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "actor_did", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "limit", kind: "scalar", T: 5 /* ScalarType.INT32 */ }, + { no: 3, name: "cursor", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetFollowsRequest { + return new GetFollowsRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetFollowsRequest { + return new GetFollowsRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetFollowsRequest { + return new GetFollowsRequest().fromJsonString(jsonString, options); + } + + static equals(a: GetFollowsRequest | PlainMessage | undefined, b: GetFollowsRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(GetFollowsRequest, a, b); + } +} + +/** + * @generated from message bsky.GetFollowsResponse + */ +export class GetFollowsResponse extends Message { + /** + * @generated from field: repeated string uris = 1; + */ + uris: string[] = []; + + /** + * @generated from field: string cursor = 2; + */ + cursor = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetFollowsResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "uris", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, + { no: 2, name: "cursor", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetFollowsResponse { + return new GetFollowsResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetFollowsResponse { + return new GetFollowsResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetFollowsResponse { + return new GetFollowsResponse().fromJsonString(jsonString, options); + } + + static equals(a: GetFollowsResponse | PlainMessage | undefined, b: GetFollowsResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(GetFollowsResponse, a, b); + } +} + +/** + * - Return number of users who follow A + * - For `followersCount` on a profile + * + * @generated from message bsky.GetFollowersCountRequest + */ +export class GetFollowersCountRequest extends Message { + /** + * @generated from field: string actor_did = 1; + */ + actorDid = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetFollowersCountRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "actor_did", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetFollowersCountRequest { + return new GetFollowersCountRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetFollowersCountRequest { + return new GetFollowersCountRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetFollowersCountRequest { + return new GetFollowersCountRequest().fromJsonString(jsonString, options); + } + + static equals(a: GetFollowersCountRequest | PlainMessage | undefined, b: GetFollowersCountRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(GetFollowersCountRequest, a, b); + } +} + +/** + * @generated from message bsky.GetFollowersCountResponse + */ +export class GetFollowersCountResponse extends Message { + /** + * @generated from field: int32 count = 1; + */ + count = 0; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetFollowersCountResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "count", kind: "scalar", T: 5 /* ScalarType.INT32 */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetFollowersCountResponse { + return new GetFollowersCountResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetFollowersCountResponse { + return new GetFollowersCountResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetFollowersCountResponse { + return new GetFollowersCountResponse().fromJsonString(jsonString, options); + } + + static equals(a: GetFollowersCountResponse | PlainMessage | undefined, b: GetFollowersCountResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(GetFollowersCountResponse, a, b); + } +} + +/** + * - Return number of users followed by A + * - For `followCount` on a profile + * + * @generated from message bsky.GetFollowsCountRequest + */ +export class GetFollowsCountRequest extends Message { + /** + * @generated from field: string actor_did = 1; + */ + actorDid = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetFollowsCountRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "actor_did", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetFollowsCountRequest { + return new GetFollowsCountRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetFollowsCountRequest { + return new GetFollowsCountRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetFollowsCountRequest { + return new GetFollowsCountRequest().fromJsonString(jsonString, options); + } + + static equals(a: GetFollowsCountRequest | PlainMessage | undefined, b: GetFollowsCountRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(GetFollowsCountRequest, a, b); + } +} + +/** + * @generated from message bsky.GetFollowsCountResponse + */ +export class GetFollowsCountResponse extends Message { + /** + * @generated from field: int32 count = 1; + */ + count = 0; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetFollowsCountResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "count", kind: "scalar", T: 5 /* ScalarType.INT32 */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetFollowsCountResponse { + return new GetFollowsCountResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetFollowsCountResponse { + return new GetFollowsCountResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetFollowsCountResponse { + return new GetFollowsCountResponse().fromJsonString(jsonString, options); + } + + static equals(a: GetFollowsCountResponse | PlainMessage | undefined, b: GetFollowsCountResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(GetFollowsCountResponse, a, b); + } +} + +/** + * - return like uris where subject uri is subject A + * - `getLikes` list for a post + * + * @generated from message bsky.GetLikesBySubjectRequest + */ +export class GetLikesBySubjectRequest extends Message { + /** + * @generated from field: string subject_uri = 1; + */ + subjectUri = ""; + + /** + * @generated from field: int32 limit = 2; + */ + limit = 0; + + /** + * @generated from field: string cursor = 3; + */ + cursor = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetLikesBySubjectRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "subject_uri", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "limit", kind: "scalar", T: 5 /* ScalarType.INT32 */ }, + { no: 3, name: "cursor", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetLikesBySubjectRequest { + return new GetLikesBySubjectRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetLikesBySubjectRequest { + return new GetLikesBySubjectRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetLikesBySubjectRequest { + return new GetLikesBySubjectRequest().fromJsonString(jsonString, options); + } + + static equals(a: GetLikesBySubjectRequest | PlainMessage | undefined, b: GetLikesBySubjectRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(GetLikesBySubjectRequest, a, b); + } +} + +/** + * @generated from message bsky.GetLikesBySubjectResponse + */ +export class GetLikesBySubjectResponse extends Message { + /** + * @generated from field: repeated string uris = 1; + */ + uris: string[] = []; + + /** + * @generated from field: string cursor = 2; + */ + cursor = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetLikesBySubjectResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "uris", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, + { no: 2, name: "cursor", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetLikesBySubjectResponse { + return new GetLikesBySubjectResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetLikesBySubjectResponse { + return new GetLikesBySubjectResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetLikesBySubjectResponse { + return new GetLikesBySubjectResponse().fromJsonString(jsonString, options); + } + + static equals(a: GetLikesBySubjectResponse | PlainMessage | undefined, b: GetLikesBySubjectResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(GetLikesBySubjectResponse, a, b); + } +} + +/** + * - return like uri for user A on subject B + * - viewer state on posts + * + * @generated from message bsky.GetLikeByActorAndSubjectRequest + */ +export class GetLikeByActorAndSubjectRequest extends Message { + /** + * @generated from field: string actor_did = 1; + */ + actorDid = ""; + + /** + * @generated from field: string subject_uri = 2; + */ + subjectUri = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetLikeByActorAndSubjectRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "actor_did", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "subject_uri", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetLikeByActorAndSubjectRequest { + return new GetLikeByActorAndSubjectRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetLikeByActorAndSubjectRequest { + return new GetLikeByActorAndSubjectRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetLikeByActorAndSubjectRequest { + return new GetLikeByActorAndSubjectRequest().fromJsonString(jsonString, options); + } + + static equals(a: GetLikeByActorAndSubjectRequest | PlainMessage | undefined, b: GetLikeByActorAndSubjectRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(GetLikeByActorAndSubjectRequest, a, b); + } +} + +/** + * @generated from message bsky.GetLikeByActorAndSubjectResponse + */ +export class GetLikeByActorAndSubjectResponse extends Message { + /** + * @generated from field: string uri = 1; + */ + uri = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetLikeByActorAndSubjectResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "uri", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetLikeByActorAndSubjectResponse { + return new GetLikeByActorAndSubjectResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetLikeByActorAndSubjectResponse { + return new GetLikeByActorAndSubjectResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetLikeByActorAndSubjectResponse { + return new GetLikeByActorAndSubjectResponse().fromJsonString(jsonString, options); + } + + static equals(a: GetLikeByActorAndSubjectResponse | PlainMessage | undefined, b: GetLikeByActorAndSubjectResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(GetLikeByActorAndSubjectResponse, a, b); + } +} + +/** + * - return recent like uris for user A + * - `getActorLikes` list for a user + * + * @generated from message bsky.GetActorLikesRequest + */ +export class GetActorLikesRequest extends Message { + /** + * @generated from field: string actor_did = 1; + */ + actorDid = ""; + + /** + * @generated from field: int32 limit = 2; + */ + limit = 0; + + /** + * @generated from field: string cursor = 3; + */ + cursor = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetActorLikesRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "actor_did", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "limit", kind: "scalar", T: 5 /* ScalarType.INT32 */ }, + { no: 3, name: "cursor", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetActorLikesRequest { + return new GetActorLikesRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetActorLikesRequest { + return new GetActorLikesRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetActorLikesRequest { + return new GetActorLikesRequest().fromJsonString(jsonString, options); + } + + static equals(a: GetActorLikesRequest | PlainMessage | undefined, b: GetActorLikesRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(GetActorLikesRequest, a, b); + } +} + +/** + * @generated from message bsky.GetActorLikesResponse + */ +export class GetActorLikesResponse extends Message { + /** + * @generated from field: repeated string uris = 1; + */ + uris: string[] = []; + + /** + * @generated from field: string cursor = 2; + */ + cursor = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetActorLikesResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "uris", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, + { no: 2, name: "cursor", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetActorLikesResponse { + return new GetActorLikesResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetActorLikesResponse { + return new GetActorLikesResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetActorLikesResponse { + return new GetActorLikesResponse().fromJsonString(jsonString, options); + } + + static equals(a: GetActorLikesResponse | PlainMessage | undefined, b: GetActorLikesResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(GetActorLikesResponse, a, b); + } +} + +/** + * - return number of likes on subject A + * - post or feed generator hydration `likeCount` field + * + * @generated from message bsky.GetLikesCountRequest + */ +export class GetLikesCountRequest extends Message { + /** + * @generated from field: string subject_uri = 1; + */ + subjectUri = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetLikesCountRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "subject_uri", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetLikesCountRequest { + return new GetLikesCountRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetLikesCountRequest { + return new GetLikesCountRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetLikesCountRequest { + return new GetLikesCountRequest().fromJsonString(jsonString, options); + } + + static equals(a: GetLikesCountRequest | PlainMessage | undefined, b: GetLikesCountRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(GetLikesCountRequest, a, b); + } +} + +/** + * @generated from message bsky.GetLikesCountResponse + */ +export class GetLikesCountResponse extends Message { + /** + * @generated from field: int32 count = 1; + */ + count = 0; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetLikesCountResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "count", kind: "scalar", T: 5 /* ScalarType.INT32 */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetLikesCountResponse { + return new GetLikesCountResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetLikesCountResponse { + return new GetLikesCountResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetLikesCountResponse { + return new GetLikesCountResponse().fromJsonString(jsonString, options); + } + + static equals(a: GetLikesCountResponse | PlainMessage | undefined, b: GetLikesCountResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(GetLikesCountResponse, a, b); + } +} + +/** + * - return repost uris where subject uri is subject A + * - `getReposts` list for a post + * + * @generated from message bsky.GetRepostsBySubjectRequest + */ +export class GetRepostsBySubjectRequest extends Message { + /** + * @generated from field: string subject_uri = 1; + */ + subjectUri = ""; + + /** + * @generated from field: int32 limit = 2; + */ + limit = 0; + + /** + * @generated from field: string cursor = 3; + */ + cursor = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetRepostsBySubjectRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "subject_uri", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "limit", kind: "scalar", T: 5 /* ScalarType.INT32 */ }, + { no: 3, name: "cursor", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetRepostsBySubjectRequest { + return new GetRepostsBySubjectRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetRepostsBySubjectRequest { + return new GetRepostsBySubjectRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetRepostsBySubjectRequest { + return new GetRepostsBySubjectRequest().fromJsonString(jsonString, options); + } + + static equals(a: GetRepostsBySubjectRequest | PlainMessage | undefined, b: GetRepostsBySubjectRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(GetRepostsBySubjectRequest, a, b); + } +} + +/** + * @generated from message bsky.GetRepostsBySubjectResponse + */ +export class GetRepostsBySubjectResponse extends Message { + /** + * @generated from field: repeated string uris = 1; + */ + uris: string[] = []; + + /** + * @generated from field: string cursor = 2; + */ + cursor = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetRepostsBySubjectResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "uris", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, + { no: 2, name: "cursor", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetRepostsBySubjectResponse { + return new GetRepostsBySubjectResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetRepostsBySubjectResponse { + return new GetRepostsBySubjectResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetRepostsBySubjectResponse { + return new GetRepostsBySubjectResponse().fromJsonString(jsonString, options); + } + + static equals(a: GetRepostsBySubjectResponse | PlainMessage | undefined, b: GetRepostsBySubjectResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(GetRepostsBySubjectResponse, a, b); + } +} + +/** + * - return repost uri for user A on subject B + * - viewer state on posts + * + * @generated from message bsky.GetRepostByActorAndSubjectRequest + */ +export class GetRepostByActorAndSubjectRequest extends Message { + /** + * @generated from field: string actor_did = 1; + */ + actorDid = ""; + + /** + * @generated from field: string subject_uri = 2; + */ + subjectUri = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetRepostByActorAndSubjectRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "actor_did", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "subject_uri", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetRepostByActorAndSubjectRequest { + return new GetRepostByActorAndSubjectRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetRepostByActorAndSubjectRequest { + return new GetRepostByActorAndSubjectRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetRepostByActorAndSubjectRequest { + return new GetRepostByActorAndSubjectRequest().fromJsonString(jsonString, options); + } + + static equals(a: GetRepostByActorAndSubjectRequest | PlainMessage | undefined, b: GetRepostByActorAndSubjectRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(GetRepostByActorAndSubjectRequest, a, b); + } +} + +/** + * @generated from message bsky.GetRepostByActorAndSubjectResponse + */ +export class GetRepostByActorAndSubjectResponse extends Message { + /** + * @generated from field: string uri = 1; + */ + uri = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetRepostByActorAndSubjectResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "uri", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetRepostByActorAndSubjectResponse { + return new GetRepostByActorAndSubjectResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetRepostByActorAndSubjectResponse { + return new GetRepostByActorAndSubjectResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetRepostByActorAndSubjectResponse { + return new GetRepostByActorAndSubjectResponse().fromJsonString(jsonString, options); + } + + static equals(a: GetRepostByActorAndSubjectResponse | PlainMessage | undefined, b: GetRepostByActorAndSubjectResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(GetRepostByActorAndSubjectResponse, a, b); + } +} + +/** + * - return recent repost uris for user A + * - `getActorReposts` list for a user + * + * @generated from message bsky.GetActorRepostsRequest + */ +export class GetActorRepostsRequest extends Message { + /** + * @generated from field: string actor_did = 1; + */ + actorDid = ""; + + /** + * @generated from field: int32 limit = 2; + */ + limit = 0; + + /** + * @generated from field: string cursor = 3; + */ + cursor = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetActorRepostsRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "actor_did", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "limit", kind: "scalar", T: 5 /* ScalarType.INT32 */ }, + { no: 3, name: "cursor", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetActorRepostsRequest { + return new GetActorRepostsRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetActorRepostsRequest { + return new GetActorRepostsRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetActorRepostsRequest { + return new GetActorRepostsRequest().fromJsonString(jsonString, options); + } + + static equals(a: GetActorRepostsRequest | PlainMessage | undefined, b: GetActorRepostsRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(GetActorRepostsRequest, a, b); + } +} + +/** + * @generated from message bsky.GetActorRepostsResponse + */ +export class GetActorRepostsResponse extends Message { + /** + * @generated from field: repeated string uris = 1; + */ + uris: string[] = []; + + /** + * @generated from field: string cursor = 2; + */ + cursor = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetActorRepostsResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "uris", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, + { no: 2, name: "cursor", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetActorRepostsResponse { + return new GetActorRepostsResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetActorRepostsResponse { + return new GetActorRepostsResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetActorRepostsResponse { + return new GetActorRepostsResponse().fromJsonString(jsonString, options); + } + + static equals(a: GetActorRepostsResponse | PlainMessage | undefined, b: GetActorRepostsResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(GetActorRepostsResponse, a, b); + } +} + +/** + * - return number of reposts on subject A + * - post or feed generator hydration `repostCount` field + * + * @generated from message bsky.GetRepostsCountRequest + */ +export class GetRepostsCountRequest extends Message { + /** + * @generated from field: string subject_uri = 1; + */ + subjectUri = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetRepostsCountRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "subject_uri", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetRepostsCountRequest { + return new GetRepostsCountRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetRepostsCountRequest { + return new GetRepostsCountRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetRepostsCountRequest { + return new GetRepostsCountRequest().fromJsonString(jsonString, options); + } + + static equals(a: GetRepostsCountRequest | PlainMessage | undefined, b: GetRepostsCountRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(GetRepostsCountRequest, a, b); + } +} + +/** + * @generated from message bsky.GetRepostsCountResponse + */ +export class GetRepostsCountResponse extends Message { + /** + * @generated from field: int32 count = 1; + */ + count = 0; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetRepostsCountResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "count", kind: "scalar", T: 5 /* ScalarType.INT32 */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetRepostsCountResponse { + return new GetRepostsCountResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetRepostsCountResponse { + return new GetRepostsCountResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetRepostsCountResponse { + return new GetRepostsCountResponse().fromJsonString(jsonString, options); + } + + static equals(a: GetRepostsCountResponse | PlainMessage | undefined, b: GetRepostsCountResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(GetRepostsCountResponse, a, b); + } +} + +/** + * - return profile record for dids A, B, C… + * - profile hydration + * - should this include handles? apply repo takedown? + * + * @generated from message bsky.GetProfilesRequest + */ +export class GetProfilesRequest extends Message { + /** + * @generated from field: repeated string dids = 1; + */ + dids: string[] = []; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetProfilesRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "dids", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetProfilesRequest { + return new GetProfilesRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetProfilesRequest { + return new GetProfilesRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetProfilesRequest { + return new GetProfilesRequest().fromJsonString(jsonString, options); + } + + static equals(a: GetProfilesRequest | PlainMessage | undefined, b: GetProfilesRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(GetProfilesRequest, a, b); + } +} + +/** + * @generated from message bsky.GetProfilesResponse + */ +export class GetProfilesResponse extends Message { + /** + * @generated from field: repeated bytes records = 1; + */ + records: Uint8Array[] = []; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetProfilesResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "records", kind: "scalar", T: 12 /* ScalarType.BYTES */, repeated: true }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetProfilesResponse { + return new GetProfilesResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetProfilesResponse { + return new GetProfilesResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetProfilesResponse { + return new GetProfilesResponse().fromJsonString(jsonString, options); + } + + static equals(a: GetProfilesResponse | PlainMessage | undefined, b: GetProfilesResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(GetProfilesResponse, a, b); + } +} + +/** + * - return handle for dids A, B, C… + * - profile hydration + * + * @generated from message bsky.GetHandlesRequest + */ +export class GetHandlesRequest extends Message { + /** + * @generated from field: repeated string dids = 1; + */ + dids: string[] = []; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetHandlesRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "dids", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetHandlesRequest { + return new GetHandlesRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetHandlesRequest { + return new GetHandlesRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetHandlesRequest { + return new GetHandlesRequest().fromJsonString(jsonString, options); + } + + static equals(a: GetHandlesRequest | PlainMessage | undefined, b: GetHandlesRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(GetHandlesRequest, a, b); + } +} + +/** + * @generated from message bsky.GetHandlesResponse + */ +export class GetHandlesResponse extends Message { + /** + * @generated from field: repeated string handles = 1; + */ + handles: string[] = []; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetHandlesResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "handles", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetHandlesResponse { + return new GetHandlesResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetHandlesResponse { + return new GetHandlesResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetHandlesResponse { + return new GetHandlesResponse().fromJsonString(jsonString, options); + } + + static equals(a: GetHandlesResponse | PlainMessage | undefined, b: GetHandlesResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(GetHandlesResponse, a, b); + } +} + +/** + * - return did for handle A + * - `resolveHandle` + * - answering queries where the query param is a handle + * + * @generated from message bsky.GetDidsByHandlesRequest + */ +export class GetDidsByHandlesRequest extends Message { + /** + * @generated from field: repeated string handles = 1; + */ + handles: string[] = []; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetDidsByHandlesRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "handles", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetDidsByHandlesRequest { + return new GetDidsByHandlesRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetDidsByHandlesRequest { + return new GetDidsByHandlesRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetDidsByHandlesRequest { + return new GetDidsByHandlesRequest().fromJsonString(jsonString, options); + } + + static equals(a: GetDidsByHandlesRequest | PlainMessage | undefined, b: GetDidsByHandlesRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(GetDidsByHandlesRequest, a, b); + } +} + +/** + * @generated from message bsky.GetDidsByHandlesResponse + */ +export class GetDidsByHandlesResponse extends Message { + /** + * @generated from field: repeated string dids = 1; + */ + dids: string[] = []; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetDidsByHandlesResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "dids", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetDidsByHandlesResponse { + return new GetDidsByHandlesResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetDidsByHandlesResponse { + return new GetDidsByHandlesResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetDidsByHandlesResponse { + return new GetDidsByHandlesResponse().fromJsonString(jsonString, options); + } + + static equals(a: GetDidsByHandlesResponse | PlainMessage | undefined, b: GetDidsByHandlesResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(GetDidsByHandlesResponse, a, b); + } +} + +/** + * - Return dids of users in list A + * - E.g. to view items in one of your mute lists + * + * @generated from message bsky.GetListMembersRequest + */ +export class GetListMembersRequest extends Message { + /** + * @generated from field: string list_uri = 1; + */ + listUri = ""; + + /** + * @generated from field: int32 limit = 2; + */ + limit = 0; + + /** + * @generated from field: string cursor = 3; + */ + cursor = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetListMembersRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "list_uri", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "limit", kind: "scalar", T: 5 /* ScalarType.INT32 */ }, + { no: 3, name: "cursor", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetListMembersRequest { + return new GetListMembersRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetListMembersRequest { + return new GetListMembersRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetListMembersRequest { + return new GetListMembersRequest().fromJsonString(jsonString, options); + } + + static equals(a: GetListMembersRequest | PlainMessage | undefined, b: GetListMembersRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(GetListMembersRequest, a, b); + } +} + +/** + * @generated from message bsky.GetListMembersResponse + */ +export class GetListMembersResponse extends Message { + /** + * @generated from field: repeated string dids = 1; + */ + dids: string[] = []; + + /** + * @generated from field: string cursor = 2; + */ + cursor = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetListMembersResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "dids", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, + { no: 2, name: "cursor", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetListMembersResponse { + return new GetListMembersResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetListMembersResponse { + return new GetListMembersResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetListMembersResponse { + return new GetListMembersResponse().fromJsonString(jsonString, options); + } + + static equals(a: GetListMembersResponse | PlainMessage | undefined, b: GetListMembersResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(GetListMembersResponse, a, b); + } +} + +/** + * - Return list uris where user A in list B, C, D… + * - Used in thread reply gates + * + * @generated from message bsky.GetListMembershipRequest + */ +export class GetListMembershipRequest extends Message { + /** + * @generated from field: string actor_did = 1; + */ + actorDid = ""; + + /** + * @generated from field: repeated string list_uris = 2; + */ + listUris: string[] = []; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetListMembershipRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "actor_did", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "list_uris", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetListMembershipRequest { + return new GetListMembershipRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetListMembershipRequest { + return new GetListMembershipRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetListMembershipRequest { + return new GetListMembershipRequest().fromJsonString(jsonString, options); + } + + static equals(a: GetListMembershipRequest | PlainMessage | undefined, b: GetListMembershipRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(GetListMembershipRequest, a, b); + } +} + +/** + * @generated from message bsky.GetListMembershipResponse + */ +export class GetListMembershipResponse extends Message { + /** + * @generated from field: repeated string listitem_uris = 1; + */ + listitemUris: string[] = []; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetListMembershipResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "listitem_uris", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetListMembershipResponse { + return new GetListMembershipResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetListMembershipResponse { + return new GetListMembershipResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetListMembershipResponse { + return new GetListMembershipResponse().fromJsonString(jsonString, options); + } + + static equals(a: GetListMembershipResponse | PlainMessage | undefined, b: GetListMembershipResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(GetListMembershipResponse, a, b); + } +} + +/** + * - Return list record for list uri + * - list view hydration + * + * @generated from message bsky.GetListRequest + */ +export class GetListRequest extends Message { + /** + * @generated from field: string list_uri = 1; + */ + listUri = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetListRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "list_uri", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetListRequest { + return new GetListRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetListRequest { + return new GetListRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetListRequest { + return new GetListRequest().fromJsonString(jsonString, options); + } + + static equals(a: GetListRequest | PlainMessage | undefined, b: GetListRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(GetListRequest, a, b); + } +} + +/** + * @generated from message bsky.GetListResponse + */ +export class GetListResponse extends Message { + /** + * @generated from field: bytes record = 1; + */ + record = new Uint8Array(0); + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetListResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "record", kind: "scalar", T: 12 /* ScalarType.BYTES */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetListResponse { + return new GetListResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetListResponse { + return new GetListResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetListResponse { + return new GetListResponse().fromJsonString(jsonString, options); + } + + static equals(a: GetListResponse | PlainMessage | undefined, b: GetListResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(GetListResponse, a, b); + } +} + +/** + * - Return number of items in list A + * - For aggregate + * + * @generated from message bsky.GetListCountRequest + */ +export class GetListCountRequest extends Message { + /** + * @generated from field: string list_uri = 1; + */ + listUri = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetListCountRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "list_uri", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetListCountRequest { + return new GetListCountRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetListCountRequest { + return new GetListCountRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetListCountRequest { + return new GetListCountRequest().fromJsonString(jsonString, options); + } + + static equals(a: GetListCountRequest | PlainMessage | undefined, b: GetListCountRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(GetListCountRequest, a, b); + } +} + +/** + * @generated from message bsky.GetListCountResponse + */ +export class GetListCountResponse extends Message { + /** + * @generated from field: int32 count = 1; + */ + count = 0; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetListCountResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "count", kind: "scalar", T: 5 /* ScalarType.INT32 */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetListCountResponse { + return new GetListCountResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetListCountResponse { + return new GetListCountResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetListCountResponse { + return new GetListCountResponse().fromJsonString(jsonString, options); + } + + static equals(a: GetListCountResponse | PlainMessage | undefined, b: GetListCountResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(GetListCountResponse, a, b); + } +} + +/** + * - return boolean if user A has muted user B + * - hydrating mute state onto profiles + * + * @generated from message bsky.GetActorMutesActorRequest + */ +export class GetActorMutesActorRequest extends Message { + /** + * @generated from field: string actor_did = 1; + */ + actorDid = ""; + + /** + * @generated from field: string target_did = 2; + */ + targetDid = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetActorMutesActorRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "actor_did", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "target_did", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetActorMutesActorRequest { + return new GetActorMutesActorRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetActorMutesActorRequest { + return new GetActorMutesActorRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetActorMutesActorRequest { + return new GetActorMutesActorRequest().fromJsonString(jsonString, options); + } + + static equals(a: GetActorMutesActorRequest | PlainMessage | undefined, b: GetActorMutesActorRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(GetActorMutesActorRequest, a, b); + } +} + +/** + * @generated from message bsky.GetActorMutesActorResponse + */ +export class GetActorMutesActorResponse extends Message { + /** + * @generated from field: bool muted = 1; + */ + muted = false; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetActorMutesActorResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "muted", kind: "scalar", T: 8 /* ScalarType.BOOL */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetActorMutesActorResponse { + return new GetActorMutesActorResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetActorMutesActorResponse { + return new GetActorMutesActorResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetActorMutesActorResponse { + return new GetActorMutesActorResponse().fromJsonString(jsonString, options); + } + + static equals(a: GetActorMutesActorResponse | PlainMessage | undefined, b: GetActorMutesActorResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(GetActorMutesActorResponse, a, b); + } +} + +/** + * - return list of user dids of users who A mutes + * - `getMutes` + * + * @generated from message bsky.GetMutesRequest + */ +export class GetMutesRequest extends Message { + /** + * @generated from field: string actor_did = 1; + */ + actorDid = ""; + + /** + * @generated from field: int32 limit = 2; + */ + limit = 0; + + /** + * @generated from field: string cursor = 3; + */ + cursor = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetMutesRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "actor_did", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "limit", kind: "scalar", T: 5 /* ScalarType.INT32 */ }, + { no: 3, name: "cursor", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetMutesRequest { + return new GetMutesRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetMutesRequest { + return new GetMutesRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetMutesRequest { + return new GetMutesRequest().fromJsonString(jsonString, options); + } + + static equals(a: GetMutesRequest | PlainMessage | undefined, b: GetMutesRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(GetMutesRequest, a, b); + } +} + +/** + * @generated from message bsky.GetMutesResponse + */ +export class GetMutesResponse extends Message { + /** + * @generated from field: repeated string dids = 1; + */ + dids: string[] = []; + + /** + * @generated from field: string cursor = 2; + */ + cursor = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetMutesResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "dids", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, + { no: 2, name: "cursor", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetMutesResponse { + return new GetMutesResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetMutesResponse { + return new GetMutesResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetMutesResponse { + return new GetMutesResponse().fromJsonString(jsonString, options); + } + + static equals(a: GetMutesResponse | PlainMessage | undefined, b: GetMutesResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(GetMutesResponse, a, b); + } +} + +/** + * - return list uri of *any* list through which user A has muted user B + * - hydrating mute state onto profiles + * - note: we only need *one* uri even if a user is muted by multiple lists + * + * @generated from message bsky.GetActorMutesActorViaListRequest + */ +export class GetActorMutesActorViaListRequest extends Message { + /** + * @generated from field: string actor_did = 1; + */ + actorDid = ""; + + /** + * @generated from field: string target_did = 2; + */ + targetDid = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetActorMutesActorViaListRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "actor_did", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "target_did", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetActorMutesActorViaListRequest { + return new GetActorMutesActorViaListRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetActorMutesActorViaListRequest { + return new GetActorMutesActorViaListRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetActorMutesActorViaListRequest { + return new GetActorMutesActorViaListRequest().fromJsonString(jsonString, options); + } + + static equals(a: GetActorMutesActorViaListRequest | PlainMessage | undefined, b: GetActorMutesActorViaListRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(GetActorMutesActorViaListRequest, a, b); + } +} + +/** + * @generated from message bsky.GetActorMutesActorViaListResponse + */ +export class GetActorMutesActorViaListResponse extends Message { + /** + * @generated from field: string list_uri = 1; + */ + listUri = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetActorMutesActorViaListResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "list_uri", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetActorMutesActorViaListResponse { + return new GetActorMutesActorViaListResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetActorMutesActorViaListResponse { + return new GetActorMutesActorViaListResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetActorMutesActorViaListResponse { + return new GetActorMutesActorViaListResponse().fromJsonString(jsonString, options); + } + + static equals(a: GetActorMutesActorViaListResponse | PlainMessage | undefined, b: GetActorMutesActorViaListResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(GetActorMutesActorViaListResponse, a, b); + } +} + +/** + * - return boolean if actor A has subscribed to mutelist B + * - list view hydration + * + * @generated from message bsky.GetMutelistSubscriptionRequest + */ +export class GetMutelistSubscriptionRequest extends Message { + /** + * @generated from field: string actor_did = 1; + */ + actorDid = ""; + + /** + * @generated from field: string list_uri = 2; + */ + listUri = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetMutelistSubscriptionRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "actor_did", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "list_uri", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetMutelistSubscriptionRequest { + return new GetMutelistSubscriptionRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetMutelistSubscriptionRequest { + return new GetMutelistSubscriptionRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetMutelistSubscriptionRequest { + return new GetMutelistSubscriptionRequest().fromJsonString(jsonString, options); + } + + static equals(a: GetMutelistSubscriptionRequest | PlainMessage | undefined, b: GetMutelistSubscriptionRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(GetMutelistSubscriptionRequest, a, b); + } +} + +/** + * @generated from message bsky.GetMutelistSubscriptionResponse + */ +export class GetMutelistSubscriptionResponse extends Message { + /** + * @generated from field: bool subscribed = 1; + */ + subscribed = false; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetMutelistSubscriptionResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "subscribed", kind: "scalar", T: 8 /* ScalarType.BOOL */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetMutelistSubscriptionResponse { + return new GetMutelistSubscriptionResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetMutelistSubscriptionResponse { + return new GetMutelistSubscriptionResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetMutelistSubscriptionResponse { + return new GetMutelistSubscriptionResponse().fromJsonString(jsonString, options); + } + + static equals(a: GetMutelistSubscriptionResponse | PlainMessage | undefined, b: GetMutelistSubscriptionResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(GetMutelistSubscriptionResponse, a, b); + } +} + +/** + * - return list of list uris of mutelists that A subscribes to + * - `getListMutes` + * + * @generated from message bsky.GetMutelistSubscriptionsRequest + */ +export class GetMutelistSubscriptionsRequest extends Message { + /** + * @generated from field: string actor_did = 1; + */ + actorDid = ""; + + /** + * @generated from field: int32 limit = 2; + */ + limit = 0; + + /** + * @generated from field: string cursor = 3; + */ + cursor = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetMutelistSubscriptionsRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "actor_did", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "limit", kind: "scalar", T: 5 /* ScalarType.INT32 */ }, + { no: 3, name: "cursor", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetMutelistSubscriptionsRequest { + return new GetMutelistSubscriptionsRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetMutelistSubscriptionsRequest { + return new GetMutelistSubscriptionsRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetMutelistSubscriptionsRequest { + return new GetMutelistSubscriptionsRequest().fromJsonString(jsonString, options); + } + + static equals(a: GetMutelistSubscriptionsRequest | PlainMessage | undefined, b: GetMutelistSubscriptionsRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(GetMutelistSubscriptionsRequest, a, b); + } +} + +/** + * @generated from message bsky.GetMutelistSubscriptionsResponse + */ +export class GetMutelistSubscriptionsResponse extends Message { + /** + * @generated from field: repeated string list_uris = 1; + */ + listUris: string[] = []; + + /** + * @generated from field: string cursor = 2; + */ + cursor = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetMutelistSubscriptionsResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "list_uris", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, + { no: 2, name: "cursor", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetMutelistSubscriptionsResponse { + return new GetMutelistSubscriptionsResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetMutelistSubscriptionsResponse { + return new GetMutelistSubscriptionsResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetMutelistSubscriptionsResponse { + return new GetMutelistSubscriptionsResponse().fromJsonString(jsonString, options); + } + + static equals(a: GetMutelistSubscriptionsResponse | PlainMessage | undefined, b: GetMutelistSubscriptionsResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(GetMutelistSubscriptionsResponse, a, b); + } +} + +/** + * - Return block uri if there is a block between users A & B (bidirectional) + * - hydrating (& actioning) block state on profiles + * - handling 3rd party blocks + * + * @generated from message bsky.GetBidirectionalBlockRequest + */ +export class GetBidirectionalBlockRequest extends Message { + /** + * @generated from field: string actor_did = 1; + */ + actorDid = ""; + + /** + * @generated from field: string target_did = 2; + */ + targetDid = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetBidirectionalBlockRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "actor_did", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "target_did", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetBidirectionalBlockRequest { + return new GetBidirectionalBlockRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetBidirectionalBlockRequest { + return new GetBidirectionalBlockRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetBidirectionalBlockRequest { + return new GetBidirectionalBlockRequest().fromJsonString(jsonString, options); + } + + static equals(a: GetBidirectionalBlockRequest | PlainMessage | undefined, b: GetBidirectionalBlockRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(GetBidirectionalBlockRequest, a, b); + } +} + +/** + * @generated from message bsky.GetBidirectionalBlockResponse + */ +export class GetBidirectionalBlockResponse extends Message { + /** + * @generated from field: string block_uri = 1; + */ + blockUri = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetBidirectionalBlockResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "block_uri", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetBidirectionalBlockResponse { + return new GetBidirectionalBlockResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetBidirectionalBlockResponse { + return new GetBidirectionalBlockResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetBidirectionalBlockResponse { + return new GetBidirectionalBlockResponse().fromJsonString(jsonString, options); + } + + static equals(a: GetBidirectionalBlockResponse | PlainMessage | undefined, b: GetBidirectionalBlockResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(GetBidirectionalBlockResponse, a, b); + } +} + +/** + * - Return list of block uris and user dids of users who A blocks + * - `getBlocks` + * + * @generated from message bsky.GetBlocksRequest + */ +export class GetBlocksRequest extends Message { + /** + * @generated from field: string actor_did = 1; + */ + actorDid = ""; + + /** + * @generated from field: int32 limit = 2; + */ + limit = 0; + + /** + * @generated from field: string cursor = 3; + */ + cursor = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetBlocksRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "actor_did", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "limit", kind: "scalar", T: 5 /* ScalarType.INT32 */ }, + { no: 3, name: "cursor", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetBlocksRequest { + return new GetBlocksRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetBlocksRequest { + return new GetBlocksRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetBlocksRequest { + return new GetBlocksRequest().fromJsonString(jsonString, options); + } + + static equals(a: GetBlocksRequest | PlainMessage | undefined, b: GetBlocksRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(GetBlocksRequest, a, b); + } +} + +/** + * @generated from message bsky.GetBlocksResponse + */ +export class GetBlocksResponse extends Message { + /** + * @generated from field: repeated string block_uris = 1; + */ + blockUris: string[] = []; + + /** + * @generated from field: string cursor = 2; + */ + cursor = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetBlocksResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "block_uris", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, + { no: 2, name: "cursor", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetBlocksResponse { + return new GetBlocksResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetBlocksResponse { + return new GetBlocksResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetBlocksResponse { + return new GetBlocksResponse().fromJsonString(jsonString, options); + } + + static equals(a: GetBlocksResponse | PlainMessage | undefined, b: GetBlocksResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(GetBlocksResponse, a, b); + } +} + +/** + * - Return list uri of ***any*** list through which users A & B have a block (bidirectional) + * - hydrating (& actioning) block state on profiles + * - handling 3rd party blocks + * + * @generated from message bsky.GetBidirectionalBlockViaListRequest + */ +export class GetBidirectionalBlockViaListRequest extends Message { + /** + * @generated from field: string actor_did = 1; + */ + actorDid = ""; + + /** + * @generated from field: string target_did = 2; + */ + targetDid = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetBidirectionalBlockViaListRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "actor_did", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "target_did", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetBidirectionalBlockViaListRequest { + return new GetBidirectionalBlockViaListRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetBidirectionalBlockViaListRequest { + return new GetBidirectionalBlockViaListRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetBidirectionalBlockViaListRequest { + return new GetBidirectionalBlockViaListRequest().fromJsonString(jsonString, options); + } + + static equals(a: GetBidirectionalBlockViaListRequest | PlainMessage | undefined, b: GetBidirectionalBlockViaListRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(GetBidirectionalBlockViaListRequest, a, b); + } +} + +/** + * @generated from message bsky.GetBidirectionalBlockViaListResponse + */ +export class GetBidirectionalBlockViaListResponse extends Message { + /** + * @generated from field: string list_uri = 1; + */ + listUri = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetBidirectionalBlockViaListResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "list_uri", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetBidirectionalBlockViaListResponse { + return new GetBidirectionalBlockViaListResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetBidirectionalBlockViaListResponse { + return new GetBidirectionalBlockViaListResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetBidirectionalBlockViaListResponse { + return new GetBidirectionalBlockViaListResponse().fromJsonString(jsonString, options); + } + + static equals(a: GetBidirectionalBlockViaListResponse | PlainMessage | undefined, b: GetBidirectionalBlockViaListResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(GetBidirectionalBlockViaListResponse, a, b); + } +} + +/** + * - return boolean if user A has subscribed to blocklist B + * - list view hydration + * + * @generated from message bsky.GetBlocklistSubscriptionRequest + */ +export class GetBlocklistSubscriptionRequest extends Message { + /** + * @generated from field: string actor_did = 1; + */ + actorDid = ""; + + /** + * @generated from field: string list_uri = 2; + */ + listUri = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetBlocklistSubscriptionRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "actor_did", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "list_uri", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetBlocklistSubscriptionRequest { + return new GetBlocklistSubscriptionRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetBlocklistSubscriptionRequest { + return new GetBlocklistSubscriptionRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetBlocklistSubscriptionRequest { + return new GetBlocklistSubscriptionRequest().fromJsonString(jsonString, options); + } + + static equals(a: GetBlocklistSubscriptionRequest | PlainMessage | undefined, b: GetBlocklistSubscriptionRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(GetBlocklistSubscriptionRequest, a, b); + } +} + +/** + * @generated from message bsky.GetBlocklistSubscriptionResponse + */ +export class GetBlocklistSubscriptionResponse extends Message { + /** + * @generated from field: bool subscribed = 1; + */ + subscribed = false; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetBlocklistSubscriptionResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "subscribed", kind: "scalar", T: 8 /* ScalarType.BOOL */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetBlocklistSubscriptionResponse { + return new GetBlocklistSubscriptionResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetBlocklistSubscriptionResponse { + return new GetBlocklistSubscriptionResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetBlocklistSubscriptionResponse { + return new GetBlocklistSubscriptionResponse().fromJsonString(jsonString, options); + } + + static equals(a: GetBlocklistSubscriptionResponse | PlainMessage | undefined, b: GetBlocklistSubscriptionResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(GetBlocklistSubscriptionResponse, a, b); + } +} + +/** + * - return list of list uris of Blockslists that A subscribes to + * - `getListBlocks` + * + * @generated from message bsky.GetBlocklistSubscriptionsRequest + */ +export class GetBlocklistSubscriptionsRequest extends Message { + /** + * @generated from field: string actor_did = 1; + */ + actorDid = ""; + + /** + * @generated from field: int32 limit = 2; + */ + limit = 0; + + /** + * @generated from field: string cursor = 3; + */ + cursor = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetBlocklistSubscriptionsRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "actor_did", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "limit", kind: "scalar", T: 5 /* ScalarType.INT32 */ }, + { no: 3, name: "cursor", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetBlocklistSubscriptionsRequest { + return new GetBlocklistSubscriptionsRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetBlocklistSubscriptionsRequest { + return new GetBlocklistSubscriptionsRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetBlocklistSubscriptionsRequest { + return new GetBlocklistSubscriptionsRequest().fromJsonString(jsonString, options); + } + + static equals(a: GetBlocklistSubscriptionsRequest | PlainMessage | undefined, b: GetBlocklistSubscriptionsRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(GetBlocklistSubscriptionsRequest, a, b); + } +} + +/** + * @generated from message bsky.GetBlocklistSubscriptionsResponse + */ +export class GetBlocklistSubscriptionsResponse extends Message { + /** + * @generated from field: repeated string list_uris = 1; + */ + listUris: string[] = []; + + /** + * @generated from field: string cursor = 2; + */ + cursor = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetBlocklistSubscriptionsResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "list_uris", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, + { no: 2, name: "cursor", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetBlocklistSubscriptionsResponse { + return new GetBlocklistSubscriptionsResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetBlocklistSubscriptionsResponse { + return new GetBlocklistSubscriptionsResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetBlocklistSubscriptionsResponse { + return new GetBlocklistSubscriptionsResponse().fromJsonString(jsonString, options); + } + + static equals(a: GetBlocklistSubscriptionsResponse | PlainMessage | undefined, b: GetBlocklistSubscriptionsResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(GetBlocklistSubscriptionsResponse, a, b); + } +} + +/** + * - list recent notifications for a user + * - notifications should include a uri for the record that caused the notif & a “reason” for the notification (reply, like, quotepost, etc) + * - this should include both read & unread notifs + * + * @generated from message bsky.GetNotificationsRequest + */ +export class GetNotificationsRequest extends Message { + /** + * @generated from field: string actor_did = 1; + */ + actorDid = ""; + + /** + * @generated from field: int32 limit = 2; + */ + limit = 0; + + /** + * @generated from field: string cursor = 3; + */ + cursor = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetNotificationsRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "actor_did", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "limit", kind: "scalar", T: 5 /* ScalarType.INT32 */ }, + { no: 3, name: "cursor", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetNotificationsRequest { + return new GetNotificationsRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetNotificationsRequest { + return new GetNotificationsRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetNotificationsRequest { + return new GetNotificationsRequest().fromJsonString(jsonString, options); + } + + static equals(a: GetNotificationsRequest | PlainMessage | undefined, b: GetNotificationsRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(GetNotificationsRequest, a, b); + } +} + +/** + * @generated from message bsky.Notification + */ +export class Notification extends Message { + /** + * @generated from field: string uri = 1; + */ + uri = ""; + + /** + * @generated from field: string reason = 2; + */ + reason = ""; + + /** + * @generated from field: google.protobuf.Timestamp timestamp = 3; + */ + timestamp?: Timestamp; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.Notification"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "uri", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "reason", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 3, name: "timestamp", kind: "message", T: Timestamp }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): Notification { + return new Notification().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): Notification { + return new Notification().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): Notification { + return new Notification().fromJsonString(jsonString, options); + } + + static equals(a: Notification | PlainMessage | undefined, b: Notification | PlainMessage | undefined): boolean { + return proto3.util.equals(Notification, a, b); + } +} + +/** + * @generated from message bsky.GetNotificationsResponse + */ +export class GetNotificationsResponse extends Message { + /** + * @generated from field: repeated bsky.Notification notifications = 1; + */ + notifications: Notification[] = []; + + /** + * @generated from field: string cursor = 2; + */ + cursor = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetNotificationsResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "notifications", kind: "message", T: Notification, repeated: true }, + { no: 2, name: "cursor", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetNotificationsResponse { + return new GetNotificationsResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetNotificationsResponse { + return new GetNotificationsResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetNotificationsResponse { + return new GetNotificationsResponse().fromJsonString(jsonString, options); + } + + static equals(a: GetNotificationsResponse | PlainMessage | undefined, b: GetNotificationsResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(GetNotificationsResponse, a, b); + } +} + +/** + * - update a user’s “last seen time” + * - `updateSeen` + * + * @generated from message bsky.UpdateNotificationSeenRequest + */ +export class UpdateNotificationSeenRequest extends Message { + /** + * @generated from field: string actor_did = 1; + */ + actorDid = ""; + + /** + * @generated from field: google.protobuf.Timestamp timestamp = 2; + */ + timestamp?: Timestamp; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.UpdateNotificationSeenRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "actor_did", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "timestamp", kind: "message", T: Timestamp }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): UpdateNotificationSeenRequest { + return new UpdateNotificationSeenRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): UpdateNotificationSeenRequest { + return new UpdateNotificationSeenRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): UpdateNotificationSeenRequest { + return new UpdateNotificationSeenRequest().fromJsonString(jsonString, options); + } + + static equals(a: UpdateNotificationSeenRequest | PlainMessage | undefined, b: UpdateNotificationSeenRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(UpdateNotificationSeenRequest, a, b); + } +} + +/** + * @generated from message bsky.UpdateNotificationSeenResponse + */ +export class UpdateNotificationSeenResponse extends Message { + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.UpdateNotificationSeenResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): UpdateNotificationSeenResponse { + return new UpdateNotificationSeenResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): UpdateNotificationSeenResponse { + return new UpdateNotificationSeenResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): UpdateNotificationSeenResponse { + return new UpdateNotificationSeenResponse().fromJsonString(jsonString, options); + } + + static equals(a: UpdateNotificationSeenResponse | PlainMessage | undefined, b: UpdateNotificationSeenResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(UpdateNotificationSeenResponse, a, b); + } +} + +/** + * - get a user’s “last seen time” + * - hydrating read state onto notifications + * + * @generated from message bsky.GetNotificationSeenRequest + */ +export class GetNotificationSeenRequest extends Message { + /** + * @generated from field: string actor_did = 1; + */ + actorDid = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetNotificationSeenRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "actor_did", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetNotificationSeenRequest { + return new GetNotificationSeenRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetNotificationSeenRequest { + return new GetNotificationSeenRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetNotificationSeenRequest { + return new GetNotificationSeenRequest().fromJsonString(jsonString, options); + } + + static equals(a: GetNotificationSeenRequest | PlainMessage | undefined, b: GetNotificationSeenRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(GetNotificationSeenRequest, a, b); + } +} + +/** + * @generated from message bsky.GetNotificationSeenResponse + */ +export class GetNotificationSeenResponse extends Message { + /** + * @generated from field: google.protobuf.Timestamp timestamp = 1; + */ + timestamp?: Timestamp; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetNotificationSeenResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "timestamp", kind: "message", T: Timestamp }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetNotificationSeenResponse { + return new GetNotificationSeenResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetNotificationSeenResponse { + return new GetNotificationSeenResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetNotificationSeenResponse { + return new GetNotificationSeenResponse().fromJsonString(jsonString, options); + } + + static equals(a: GetNotificationSeenResponse | PlainMessage | undefined, b: GetNotificationSeenResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(GetNotificationSeenResponse, a, b); + } +} + +/** + * - get a count of all unread notifications (notifications after `updateSeen`) + * - `getUnreadCount` + * + * @generated from message bsky.GetUnreadNotificationCountRequest + */ +export class GetUnreadNotificationCountRequest extends Message { + /** + * @generated from field: string actor_did = 1; + */ + actorDid = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetUnreadNotificationCountRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "actor_did", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetUnreadNotificationCountRequest { + return new GetUnreadNotificationCountRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetUnreadNotificationCountRequest { + return new GetUnreadNotificationCountRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetUnreadNotificationCountRequest { + return new GetUnreadNotificationCountRequest().fromJsonString(jsonString, options); + } + + static equals(a: GetUnreadNotificationCountRequest | PlainMessage | undefined, b: GetUnreadNotificationCountRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(GetUnreadNotificationCountRequest, a, b); + } +} + +/** + * @generated from message bsky.GetUnreadNotificationCountResponse + */ +export class GetUnreadNotificationCountResponse extends Message { + /** + * @generated from field: int32 count = 1; + */ + count = 0; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetUnreadNotificationCountResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "count", kind: "scalar", T: 5 /* ScalarType.INT32 */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetUnreadNotificationCountResponse { + return new GetUnreadNotificationCountResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetUnreadNotificationCountResponse { + return new GetUnreadNotificationCountResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetUnreadNotificationCountResponse { + return new GetUnreadNotificationCountResponse().fromJsonString(jsonString, options); + } + + static equals(a: GetUnreadNotificationCountResponse | PlainMessage | undefined, b: GetUnreadNotificationCountResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(GetUnreadNotificationCountResponse, a, b); + } +} + +/** + * - Returns feed generator records with uris A, B, C… + * - hydration of feed generator views + * + * @generated from message bsky.GetFeedGeneratorsRequest + */ +export class GetFeedGeneratorsRequest extends Message { + /** + * @generated from field: repeated string uris = 1; + */ + uris: string[] = []; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetFeedGeneratorsRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "uris", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetFeedGeneratorsRequest { + return new GetFeedGeneratorsRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetFeedGeneratorsRequest { + return new GetFeedGeneratorsRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetFeedGeneratorsRequest { + return new GetFeedGeneratorsRequest().fromJsonString(jsonString, options); + } + + static equals(a: GetFeedGeneratorsRequest | PlainMessage | undefined, b: GetFeedGeneratorsRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(GetFeedGeneratorsRequest, a, b); + } +} + +/** + * @generated from message bsky.GetFeedGeneratorsResponse + */ +export class GetFeedGeneratorsResponse extends Message { + /** + * @generated from field: repeated bytes records = 1; + */ + records: Uint8Array[] = []; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetFeedGeneratorsResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "records", kind: "scalar", T: 12 /* ScalarType.BYTES */, repeated: true }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetFeedGeneratorsResponse { + return new GetFeedGeneratorsResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetFeedGeneratorsResponse { + return new GetFeedGeneratorsResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetFeedGeneratorsResponse { + return new GetFeedGeneratorsResponse().fromJsonString(jsonString, options); + } + + static equals(a: GetFeedGeneratorsResponse | PlainMessage | undefined, b: GetFeedGeneratorsResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(GetFeedGeneratorsResponse, a, b); + } +} + +/** + * - Return uris of feed generator records created by user A + * - `getActorFeeds` + * + * @generated from message bsky.GetActorFeedsRequest + */ +export class GetActorFeedsRequest extends Message { + /** + * @generated from field: string actor_did = 1; + */ + actorDid = ""; + + /** + * @generated from field: int32 limit = 2; + */ + limit = 0; + + /** + * @generated from field: string cursor = 3; + */ + cursor = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetActorFeedsRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "actor_did", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "limit", kind: "scalar", T: 5 /* ScalarType.INT32 */ }, + { no: 3, name: "cursor", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetActorFeedsRequest { + return new GetActorFeedsRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetActorFeedsRequest { + return new GetActorFeedsRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetActorFeedsRequest { + return new GetActorFeedsRequest().fromJsonString(jsonString, options); + } + + static equals(a: GetActorFeedsRequest | PlainMessage | undefined, b: GetActorFeedsRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(GetActorFeedsRequest, a, b); + } +} + +/** + * @generated from message bsky.GetActorFeedsResponse + */ +export class GetActorFeedsResponse extends Message { + /** + * @generated from field: repeated string uris = 1; + */ + uris: string[] = []; + + /** + * @generated from field: string cursor = 2; + */ + cursor = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetActorFeedsResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "uris", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, + { no: 2, name: "cursor", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetActorFeedsResponse { + return new GetActorFeedsResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetActorFeedsResponse { + return new GetActorFeedsResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetActorFeedsResponse { + return new GetActorFeedsResponse().fromJsonString(jsonString, options); + } + + static equals(a: GetActorFeedsResponse | PlainMessage | undefined, b: GetActorFeedsResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(GetActorFeedsResponse, a, b); + } +} + +/** + * - Returns a list of suggested feed generator uris for an actor, paginated + * - `getSuggestedFeeds` + * - This is currently just hardcoded in the Appview DB + * + * @generated from message bsky.GetSuggestedFeedsRequest + */ +export class GetSuggestedFeedsRequest extends Message { + /** + * @generated from field: string actor_did = 1; + */ + actorDid = ""; + + /** + * @generated from field: int32 limit = 2; + */ + limit = 0; + + /** + * @generated from field: string cursor = 3; + */ + cursor = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetSuggestedFeedsRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "actor_did", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "limit", kind: "scalar", T: 5 /* ScalarType.INT32 */ }, + { no: 3, name: "cursor", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetSuggestedFeedsRequest { + return new GetSuggestedFeedsRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetSuggestedFeedsRequest { + return new GetSuggestedFeedsRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetSuggestedFeedsRequest { + return new GetSuggestedFeedsRequest().fromJsonString(jsonString, options); + } + + static equals(a: GetSuggestedFeedsRequest | PlainMessage | undefined, b: GetSuggestedFeedsRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(GetSuggestedFeedsRequest, a, b); + } +} + +/** + * @generated from message bsky.GetSuggestedFeedsResponse + */ +export class GetSuggestedFeedsResponse extends Message { + /** + * @generated from field: repeated string uris = 1; + */ + uris: string[] = []; + + /** + * @generated from field: string cursor = 2; + */ + cursor = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetSuggestedFeedsResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "uris", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, + { no: 2, name: "cursor", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetSuggestedFeedsResponse { + return new GetSuggestedFeedsResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetSuggestedFeedsResponse { + return new GetSuggestedFeedsResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetSuggestedFeedsResponse { + return new GetSuggestedFeedsResponse().fromJsonString(jsonString, options); + } + + static equals(a: GetSuggestedFeedsResponse | PlainMessage | undefined, b: GetSuggestedFeedsResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(GetSuggestedFeedsResponse, a, b); + } +} + +/** + * - Returns feed generator validity and online status with uris A, B, C… + * - Not currently being used, but could be worhthwhile. + * + * @generated from message bsky.GetFeedGeneratorStatusRequest + */ +export class GetFeedGeneratorStatusRequest extends Message { + /** + * @generated from field: repeated string uris = 1; + */ + uris: string[] = []; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetFeedGeneratorStatusRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "uris", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetFeedGeneratorStatusRequest { + return new GetFeedGeneratorStatusRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetFeedGeneratorStatusRequest { + return new GetFeedGeneratorStatusRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetFeedGeneratorStatusRequest { + return new GetFeedGeneratorStatusRequest().fromJsonString(jsonString, options); + } + + static equals(a: GetFeedGeneratorStatusRequest | PlainMessage | undefined, b: GetFeedGeneratorStatusRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(GetFeedGeneratorStatusRequest, a, b); + } +} + +/** + * @generated from message bsky.GetFeedGeneratorStatusResponse + */ +export class GetFeedGeneratorStatusResponse extends Message { + /** + * @generated from field: repeated string status = 1; + */ + status: string[] = []; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetFeedGeneratorStatusResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "status", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetFeedGeneratorStatusResponse { + return new GetFeedGeneratorStatusResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetFeedGeneratorStatusResponse { + return new GetFeedGeneratorStatusResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetFeedGeneratorStatusResponse { + return new GetFeedGeneratorStatusResponse().fromJsonString(jsonString, options); + } + + static equals(a: GetFeedGeneratorStatusResponse | PlainMessage | undefined, b: GetFeedGeneratorStatusResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(GetFeedGeneratorStatusResponse, a, b); + } +} + +/** + * - Returns recent posts authored by a given DID, paginated + * - `getAuthorFeed` + * - Optionally: filter by if a post is/isn’t a reply and if a post has a media object in it + * + * @generated from message bsky.GetAuthorFeedRequest + */ +export class GetAuthorFeedRequest extends Message { + /** + * @generated from field: string actor_did = 1; + */ + actorDid = ""; + + /** + * @generated from field: int32 limit = 2; + */ + limit = 0; + + /** + * @generated from field: string cursor = 3; + */ + cursor = ""; + + /** + * @generated from field: bool replies_only = 4; + */ + repliesOnly = false; + + /** + * @generated from field: bool media_only = 5; + */ + mediaOnly = false; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetAuthorFeedRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "actor_did", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "limit", kind: "scalar", T: 5 /* ScalarType.INT32 */ }, + { no: 3, name: "cursor", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 4, name: "replies_only", kind: "scalar", T: 8 /* ScalarType.BOOL */ }, + { no: 5, name: "media_only", kind: "scalar", T: 8 /* ScalarType.BOOL */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetAuthorFeedRequest { + return new GetAuthorFeedRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetAuthorFeedRequest { + return new GetAuthorFeedRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetAuthorFeedRequest { + return new GetAuthorFeedRequest().fromJsonString(jsonString, options); + } + + static equals(a: GetAuthorFeedRequest | PlainMessage | undefined, b: GetAuthorFeedRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(GetAuthorFeedRequest, a, b); + } +} + +/** + * @generated from message bsky.GetAuthorFeedResponse + */ +export class GetAuthorFeedResponse extends Message { + /** + * @generated from field: repeated string uris = 1; + */ + uris: string[] = []; + + /** + * @generated from field: string cursor = 2; + */ + cursor = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetAuthorFeedResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "uris", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, + { no: 2, name: "cursor", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetAuthorFeedResponse { + return new GetAuthorFeedResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetAuthorFeedResponse { + return new GetAuthorFeedResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetAuthorFeedResponse { + return new GetAuthorFeedResponse().fromJsonString(jsonString, options); + } + + static equals(a: GetAuthorFeedResponse | PlainMessage | undefined, b: GetAuthorFeedResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(GetAuthorFeedResponse, a, b); + } +} + +/** + * - Returns recent posts authored by users followed by a given DID, paginated + * - `getTimeline` + * + * @generated from message bsky.GetTimelineRequest + */ +export class GetTimelineRequest extends Message { + /** + * @generated from field: string actor_did = 1; + */ + actorDid = ""; + + /** + * @generated from field: int32 limit = 2; + */ + limit = 0; + + /** + * @generated from field: string cursor = 3; + */ + cursor = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetTimelineRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "actor_did", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "limit", kind: "scalar", T: 5 /* ScalarType.INT32 */ }, + { no: 3, name: "cursor", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetTimelineRequest { + return new GetTimelineRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetTimelineRequest { + return new GetTimelineRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetTimelineRequest { + return new GetTimelineRequest().fromJsonString(jsonString, options); + } + + static equals(a: GetTimelineRequest | PlainMessage | undefined, b: GetTimelineRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(GetTimelineRequest, a, b); + } +} + +/** + * @generated from message bsky.GetTimelineResponse + */ +export class GetTimelineResponse extends Message { + /** + * @generated from field: repeated string uris = 1; + */ + uris: string[] = []; + + /** + * @generated from field: string cursor = 2; + */ + cursor = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetTimelineResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "uris", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, + { no: 2, name: "cursor", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetTimelineResponse { + return new GetTimelineResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetTimelineResponse { + return new GetTimelineResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetTimelineResponse { + return new GetTimelineResponse().fromJsonString(jsonString, options); + } + + static equals(a: GetTimelineResponse | PlainMessage | undefined, b: GetTimelineResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(GetTimelineResponse, a, b); + } +} + +/** + * - Return recent post uris from users in list A + * - `getListFeed` + * - (This is essentially the same as `getTimeline` but instead of follows of a did, it is list items of a list) + * + * @generated from message bsky.GetListFeedRequest + */ +export class GetListFeedRequest extends Message { + /** + * @generated from field: string list_uri = 1; + */ + listUri = ""; + + /** + * @generated from field: int32 limit = 2; + */ + limit = 0; + + /** + * @generated from field: string cursor = 3; + */ + cursor = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetListFeedRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "list_uri", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "limit", kind: "scalar", T: 5 /* ScalarType.INT32 */ }, + { no: 3, name: "cursor", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetListFeedRequest { + return new GetListFeedRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetListFeedRequest { + return new GetListFeedRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetListFeedRequest { + return new GetListFeedRequest().fromJsonString(jsonString, options); + } + + static equals(a: GetListFeedRequest | PlainMessage | undefined, b: GetListFeedRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(GetListFeedRequest, a, b); + } +} + +/** + * @generated from message bsky.GetListFeedResponse + */ +export class GetListFeedResponse extends Message { + /** + * @generated from field: repeated string uris = 1; + */ + uris: string[] = []; + + /** + * @generated from field: string cursor = 2; + */ + cursor = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetListFeedResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "uris", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, + { no: 2, name: "cursor", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetListFeedResponse { + return new GetListFeedResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetListFeedResponse { + return new GetListFeedResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetListFeedResponse { + return new GetListFeedResponse().fromJsonString(jsonString, options); + } + + static equals(a: GetListFeedResponse | PlainMessage | undefined, b: GetListFeedResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(GetListFeedResponse, a, b); + } +} + +/** + * Return posts uris of any replies N levels above or M levels below post A + * + * @generated from message bsky.GetThreadRequest + */ +export class GetThreadRequest extends Message { + /** + * @generated from field: string post_uri = 1; + */ + postUri = ""; + + /** + * @generated from field: int32 above = 2; + */ + above = 0; + + /** + * @generated from field: int32 below = 3; + */ + below = 0; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetThreadRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "post_uri", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "above", kind: "scalar", T: 5 /* ScalarType.INT32 */ }, + { no: 3, name: "below", kind: "scalar", T: 5 /* ScalarType.INT32 */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetThreadRequest { + return new GetThreadRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetThreadRequest { + return new GetThreadRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetThreadRequest { + return new GetThreadRequest().fromJsonString(jsonString, options); + } + + static equals(a: GetThreadRequest | PlainMessage | undefined, b: GetThreadRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(GetThreadRequest, a, b); + } +} + +/** + * @generated from message bsky.GetThreadResponse + */ +export class GetThreadResponse extends Message { + /** + * @generated from field: repeated string uris = 1; + */ + uris: string[] = []; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetThreadResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "uris", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetThreadResponse { + return new GetThreadResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetThreadResponse { + return new GetThreadResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetThreadResponse { + return new GetThreadResponse().fromJsonString(jsonString, options); + } + + static equals(a: GetThreadResponse | PlainMessage | undefined, b: GetThreadResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(GetThreadResponse, a, b); + } +} + +/** + * Return threadgate records with uris A, B, C… + * + * @generated from message bsky.GetThreadgatesRequest + */ +export class GetThreadgatesRequest extends Message { + /** + * @generated from field: repeated string uris = 1; + */ + uris: string[] = []; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetThreadgatesRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "uris", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetThreadgatesRequest { + return new GetThreadgatesRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetThreadgatesRequest { + return new GetThreadgatesRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetThreadgatesRequest { + return new GetThreadgatesRequest().fromJsonString(jsonString, options); + } + + static equals(a: GetThreadgatesRequest | PlainMessage | undefined, b: GetThreadgatesRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(GetThreadgatesRequest, a, b); + } +} + +/** + * @generated from message bsky.GetThreadgatesResponse + */ +export class GetThreadgatesResponse extends Message { + /** + * @generated from field: repeated bytes records = 1; + */ + records: Uint8Array[] = []; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetThreadgatesResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "records", kind: "scalar", T: 12 /* ScalarType.BYTES */, repeated: true }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetThreadgatesResponse { + return new GetThreadgatesResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetThreadgatesResponse { + return new GetThreadgatesResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetThreadgatesResponse { + return new GetThreadgatesResponse().fromJsonString(jsonString, options); + } + + static equals(a: GetThreadgatesResponse | PlainMessage | undefined, b: GetThreadgatesResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(GetThreadgatesResponse, a, b); + } +} + +/** + * - Return DIDs of actors matching term, paginated + * - `searchActors` skeleton + * + * @generated from message bsky.SearchActorsRequest + */ +export class SearchActorsRequest extends Message { + /** + * @generated from field: string term = 1; + */ + term = ""; + + /** + * @generated from field: int32 limit = 2; + */ + limit = 0; + + /** + * @generated from field: string cursor = 3; + */ + cursor = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.SearchActorsRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "term", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "limit", kind: "scalar", T: 5 /* ScalarType.INT32 */ }, + { no: 3, name: "cursor", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): SearchActorsRequest { + return new SearchActorsRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): SearchActorsRequest { + return new SearchActorsRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): SearchActorsRequest { + return new SearchActorsRequest().fromJsonString(jsonString, options); + } + + static equals(a: SearchActorsRequest | PlainMessage | undefined, b: SearchActorsRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(SearchActorsRequest, a, b); + } +} + +/** + * @generated from message bsky.SearchActorsResponse + */ +export class SearchActorsResponse extends Message { + /** + * @generated from field: repeated string dids = 1; + */ + dids: string[] = []; + + /** + * @generated from field: string cursor = 2; + */ + cursor = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.SearchActorsResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "dids", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, + { no: 2, name: "cursor", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): SearchActorsResponse { + return new SearchActorsResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): SearchActorsResponse { + return new SearchActorsResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): SearchActorsResponse { + return new SearchActorsResponse().fromJsonString(jsonString, options); + } + + static equals(a: SearchActorsResponse | PlainMessage | undefined, b: SearchActorsResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(SearchActorsResponse, a, b); + } +} + +/** + * - Return uris of posts matching term, paginated + * - `searchPosts` skeleton + * + * @generated from message bsky.SearchPostsRequest + */ +export class SearchPostsRequest extends Message { + /** + * @generated from field: string term = 1; + */ + term = ""; + + /** + * @generated from field: int32 limit = 2; + */ + limit = 0; + + /** + * @generated from field: string cursor = 3; + */ + cursor = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.SearchPostsRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "term", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "limit", kind: "scalar", T: 5 /* ScalarType.INT32 */ }, + { no: 3, name: "cursor", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): SearchPostsRequest { + return new SearchPostsRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): SearchPostsRequest { + return new SearchPostsRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): SearchPostsRequest { + return new SearchPostsRequest().fromJsonString(jsonString, options); + } + + static equals(a: SearchPostsRequest | PlainMessage | undefined, b: SearchPostsRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(SearchPostsRequest, a, b); + } +} + +/** + * @generated from message bsky.SearchPostsResponse + */ +export class SearchPostsResponse extends Message { + /** + * @generated from field: repeated string uris = 1; + */ + uris: string[] = []; + + /** + * @generated from field: string cursor = 2; + */ + cursor = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.SearchPostsResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "uris", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, + { no: 2, name: "cursor", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): SearchPostsResponse { + return new SearchPostsResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): SearchPostsResponse { + return new SearchPostsResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): SearchPostsResponse { + return new SearchPostsResponse().fromJsonString(jsonString, options); + } + + static equals(a: SearchPostsResponse | PlainMessage | undefined, b: SearchPostsResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(SearchPostsResponse, a, b); + } +} + +/** + * - Return DIDs of suggested follows for a user, excluding anyone they already follow + * - `getSuggestions` + * + * @generated from message bsky.GetSuggestionsRequest + */ +export class GetSuggestionsRequest extends Message { + /** + * @generated from field: string actor_did = 1; + */ + actorDid = ""; + + /** + * @generated from field: int32 limit = 2; + */ + limit = 0; + + /** + * @generated from field: string cursor = 3; + */ + cursor = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetSuggestionsRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "actor_did", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "limit", kind: "scalar", T: 5 /* ScalarType.INT32 */ }, + { no: 3, name: "cursor", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetSuggestionsRequest { + return new GetSuggestionsRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetSuggestionsRequest { + return new GetSuggestionsRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetSuggestionsRequest { + return new GetSuggestionsRequest().fromJsonString(jsonString, options); + } + + static equals(a: GetSuggestionsRequest | PlainMessage | undefined, b: GetSuggestionsRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(GetSuggestionsRequest, a, b); + } +} + +/** + * @generated from message bsky.GetSuggestionsResponse + */ +export class GetSuggestionsResponse extends Message { + /** + * @generated from field: repeated string dids = 1; + */ + dids: string[] = []; + + /** + * @generated from field: string cursor = 2; + */ + cursor = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetSuggestionsResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "dids", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, + { no: 2, name: "cursor", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetSuggestionsResponse { + return new GetSuggestionsResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetSuggestionsResponse { + return new GetSuggestionsResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetSuggestionsResponse { + return new GetSuggestionsResponse().fromJsonString(jsonString, options); + } + + static equals(a: GetSuggestionsResponse | PlainMessage | undefined, b: GetSuggestionsResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(GetSuggestionsResponse, a, b); + } +} + +/** + * - Return post records with uris A, B, C… + * - All feed hydration + * + * @generated from message bsky.GetPostsRequest + */ +export class GetPostsRequest extends Message { + /** + * @generated from field: repeated string uris = 1; + */ + uris: string[] = []; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetPostsRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "uris", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetPostsRequest { + return new GetPostsRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetPostsRequest { + return new GetPostsRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetPostsRequest { + return new GetPostsRequest().fromJsonString(jsonString, options); + } + + static equals(a: GetPostsRequest | PlainMessage | undefined, b: GetPostsRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(GetPostsRequest, a, b); + } +} + +/** + * @generated from message bsky.GetPostsResponse + */ +export class GetPostsResponse extends Message { + /** + * @generated from field: repeated bytes records = 1; + */ + records: Uint8Array[] = []; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetPostsResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "records", kind: "scalar", T: 12 /* ScalarType.BYTES */, repeated: true }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetPostsResponse { + return new GetPostsResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetPostsResponse { + return new GetPostsResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetPostsResponse { + return new GetPostsResponse().fromJsonString(jsonString, options); + } + + static equals(a: GetPostsResponse | PlainMessage | undefined, b: GetPostsResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(GetPostsResponse, a, b); + } +} + +/** + * - Return post reply count with uris A, B, C… + * - All feed hydration + * + * @generated from message bsky.GetPostReplyCountRequest + */ +export class GetPostReplyCountRequest extends Message { + /** + * @generated from field: repeated string uris = 1; + */ + uris: string[] = []; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetPostReplyCountRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "uris", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetPostReplyCountRequest { + return new GetPostReplyCountRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetPostReplyCountRequest { + return new GetPostReplyCountRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetPostReplyCountRequest { + return new GetPostReplyCountRequest().fromJsonString(jsonString, options); + } + + static equals(a: GetPostReplyCountRequest | PlainMessage | undefined, b: GetPostReplyCountRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(GetPostReplyCountRequest, a, b); + } +} + +/** + * @generated from message bsky.GetPostReplyCountResponse + */ +export class GetPostReplyCountResponse extends Message { + /** + * @generated from field: repeated int32 counts = 1; + */ + counts: number[] = []; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetPostReplyCountResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "counts", kind: "scalar", T: 5 /* ScalarType.INT32 */, repeated: true }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetPostReplyCountResponse { + return new GetPostReplyCountResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetPostReplyCountResponse { + return new GetPostReplyCountResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetPostReplyCountResponse { + return new GetPostReplyCountResponse().fromJsonString(jsonString, options); + } + + static equals(a: GetPostReplyCountResponse | PlainMessage | undefined, b: GetPostReplyCountResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(GetPostReplyCountResponse, a, b); + } +} + +/** + * - Get all labels on a subjects A, B, C (uri or did) issued by dids D, E, F… + * - label hydration on nearly every view + * + * @generated from message bsky.GetLabelsRequest + */ +export class GetLabelsRequest extends Message { + /** + * @generated from field: repeated string subjects = 1; + */ + subjects: string[] = []; + + /** + * @generated from field: repeated string issuers = 2; + */ + issuers: string[] = []; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetLabelsRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "subjects", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, + { no: 2, name: "issuers", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetLabelsRequest { + return new GetLabelsRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetLabelsRequest { + return new GetLabelsRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetLabelsRequest { + return new GetLabelsRequest().fromJsonString(jsonString, options); + } + + static equals(a: GetLabelsRequest | PlainMessage | undefined, b: GetLabelsRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(GetLabelsRequest, a, b); + } +} + +/** + * @generated from message bsky.GetLabelsResponse + */ +export class GetLabelsResponse extends Message { + /** + * @generated from field: repeated bytes records = 1; + */ + records: Uint8Array[] = []; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetLabelsResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "records", kind: "scalar", T: 12 /* ScalarType.BYTES */, repeated: true }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetLabelsResponse { + return new GetLabelsResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetLabelsResponse { + return new GetLabelsResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetLabelsResponse { + return new GetLabelsResponse().fromJsonString(jsonString, options); + } + + static equals(a: GetLabelsResponse | PlainMessage | undefined, b: GetLabelsResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(GetLabelsResponse, a, b); + } +} + +/** + * - Latest repo rev of user w/ DID + * - Read-after-write header in`getProfile`, `getProfiles`, `getActorLikes`, `getAuthorFeed`, `getListFeed`, `getPostThread`, `getTimeline`. Could it be view dependent? + * + * @generated from message bsky.GetLatestRevRequest + */ +export class GetLatestRevRequest extends Message { + /** + * @generated from field: string actor_did = 1; + */ + actorDid = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetLatestRevRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "actor_did", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetLatestRevRequest { + return new GetLatestRevRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetLatestRevRequest { + return new GetLatestRevRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetLatestRevRequest { + return new GetLatestRevRequest().fromJsonString(jsonString, options); + } + + static equals(a: GetLatestRevRequest | PlainMessage | undefined, b: GetLatestRevRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(GetLatestRevRequest, a, b); + } +} + +/** + * @generated from message bsky.GetLatestRevResponse + */ +export class GetLatestRevResponse extends Message { + /** + * @generated from field: string rev = 1; + */ + rev = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetLatestRevResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "rev", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetLatestRevResponse { + return new GetLatestRevResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetLatestRevResponse { + return new GetLatestRevResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetLatestRevResponse { + return new GetLatestRevResponse().fromJsonString(jsonString, options); + } + + static equals(a: GetLatestRevResponse | PlainMessage | undefined, b: GetLatestRevResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(GetLatestRevResponse, a, b); + } +} + +/** + * - Return whether blob is taken down given DID and CID + * + * @generated from message bsky.GetBlobTakedownRequest + */ +export class GetBlobTakedownRequest extends Message { + /** + * @generated from field: string actor_did = 1; + */ + actorDid = ""; + + /** + * @generated from field: string cid = 2; + */ + cid = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetBlobTakedownRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "actor_did", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "cid", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetBlobTakedownRequest { + return new GetBlobTakedownRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetBlobTakedownRequest { + return new GetBlobTakedownRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetBlobTakedownRequest { + return new GetBlobTakedownRequest().fromJsonString(jsonString, options); + } + + static equals(a: GetBlobTakedownRequest | PlainMessage | undefined, b: GetBlobTakedownRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(GetBlobTakedownRequest, a, b); + } +} + +/** + * @generated from message bsky.GetBlobTakedownResponse + */ +export class GetBlobTakedownResponse extends Message { + /** + * @generated from field: bool taken_down = 1; + */ + takenDown = false; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.GetBlobTakedownResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "taken_down", kind: "scalar", T: 8 /* ScalarType.BOOL */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetBlobTakedownResponse { + return new GetBlobTakedownResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetBlobTakedownResponse { + return new GetBlobTakedownResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetBlobTakedownResponse { + return new GetBlobTakedownResponse().fromJsonString(jsonString, options); + } + + static equals(a: GetBlobTakedownResponse | PlainMessage | undefined, b: GetBlobTakedownResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(GetBlobTakedownResponse, a, b); + } +} + +/** + * - Update takedown state for actors, records, and blobs + * + * @generated from message bsky.UpdateTakedownRequest + */ +export class UpdateTakedownRequest extends Message { + /** + * @generated from field: string actor_did = 1; + */ + actorDid = ""; + + /** + * @generated from field: string record_uri = 2; + */ + recordUri = ""; + + /** + * @generated from field: string blob_cid = 3; + */ + blobCid = ""; + + /** + * @generated from field: bool taken_down = 4; + */ + takenDown = false; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.UpdateTakedownRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "actor_did", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "record_uri", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 3, name: "blob_cid", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 4, name: "taken_down", kind: "scalar", T: 8 /* ScalarType.BOOL */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): UpdateTakedownRequest { + return new UpdateTakedownRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): UpdateTakedownRequest { + return new UpdateTakedownRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): UpdateTakedownRequest { + return new UpdateTakedownRequest().fromJsonString(jsonString, options); + } + + static equals(a: UpdateTakedownRequest | PlainMessage | undefined, b: UpdateTakedownRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(UpdateTakedownRequest, a, b); + } +} + +/** + * @generated from message bsky.UpdateTakedownResponse + */ +export class UpdateTakedownResponse extends Message { + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.UpdateTakedownResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): UpdateTakedownResponse { + return new UpdateTakedownResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): UpdateTakedownResponse { + return new UpdateTakedownResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): UpdateTakedownResponse { + return new UpdateTakedownResponse().fromJsonString(jsonString, options); + } + + static equals(a: UpdateTakedownResponse | PlainMessage | undefined, b: UpdateTakedownResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(UpdateTakedownResponse, a, b); + } +} + +/** + * Ping + * + * @generated from message bsky.PingRequest + */ +export class PingRequest extends Message { + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.PingRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): PingRequest { + return new PingRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): PingRequest { + return new PingRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): PingRequest { + return new PingRequest().fromJsonString(jsonString, options); + } + + static equals(a: PingRequest | PlainMessage | undefined, b: PingRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(PingRequest, a, b); + } +} + +/** + * @generated from message bsky.PingResponse + */ +export class PingResponse extends Message { + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "bsky.PingResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): PingResponse { + return new PingResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): PingResponse { + return new PingResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): PingResponse { + return new PingResponse().fromJsonString(jsonString, options); + } + + static equals(a: PingResponse | PlainMessage | undefined, b: PingResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(PingResponse, a, b); + } +} + diff --git a/packages/bsky/src/data-plane/server/index.ts b/packages/bsky/src/data-plane/server/index.ts new file mode 100644 index 00000000000..1c29a776a29 --- /dev/null +++ b/packages/bsky/src/data-plane/server/index.ts @@ -0,0 +1,29 @@ +import http from 'http' +import events from 'events' +import express from 'express' +import { expressConnectMiddleware } from '@connectrpc/connect-express' +import routes from './routes' + +export class DataPlaneServer { + constructor(public server: http.Server) {} + + static async create(port: number) { + const app = express() + app.use(expressConnectMiddleware({ routes })) + const server = app.listen(port) + await events.once(server, 'listening') + return new DataPlaneServer(server) + } + + async stop() { + return new Promise((resolve, reject) => { + this.server.close((err) => { + if (err) { + reject(err) + } else { + resolve() + } + }) + }) + } +} diff --git a/packages/bsky/src/data-plane/server/routes.ts b/packages/bsky/src/data-plane/server/routes.ts new file mode 100644 index 00000000000..aa3fa5a6573 --- /dev/null +++ b/packages/bsky/src/data-plane/server/routes.ts @@ -0,0 +1,12 @@ +import { ConnectRouter } from '@connectrpc/connect' +import { Service } from '../gen/bsky_connect' + +export default (router: ConnectRouter) => + router.service(Service, { + async getFollowers(req) { + return { + uris: [req.actorDid], + cursor: 'test-cursor', + } + }, + }) diff --git a/packages/bsky/tests/data-plane.test.ts b/packages/bsky/tests/data-plane.test.ts new file mode 100644 index 00000000000..a4164d5464c --- /dev/null +++ b/packages/bsky/tests/data-plane.test.ts @@ -0,0 +1,25 @@ +import { DataPlaneServer } from '../src/data-plane/server' +import { + createDataPlaneClient, + DataPlaneClient, +} from '../src/data-plane/client' + +describe('data plane', () => { + let server: DataPlaneServer + let client: DataPlaneClient + + beforeAll(async () => { + server = await DataPlaneServer.create(1337) + client = createDataPlaneClient('http://localhost:1337', '1.1') + }) + + afterAll(async () => { + await server.stop() + }) + + it('works', async () => { + const res = await client.getFollowers({ actorDid: 'did:example:test' }) + expect(res.uris).toEqual(['did:example:test']) + expect(res.cursor).toEqual('test-cursor') + }) +}) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0b554e7612c..fb994c1ab4b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -186,6 +186,18 @@ importers: '@atproto/xrpc-server': specifier: workspace:^ version: link:../xrpc-server + '@bufbuild/protobuf': + specifier: ^1.5.0 + version: 1.5.0 + '@connectrpc/connect': + specifier: ^1.1.4 + version: 1.1.4(@bufbuild/protobuf@1.5.0) + '@connectrpc/connect-express': + specifier: ^1.1.4 + version: 1.1.4(@bufbuild/protobuf@1.5.0)(@connectrpc/connect-node@1.1.4)(@connectrpc/connect@1.1.4) + '@connectrpc/connect-node': + specifier: ^1.1.4 + version: 1.1.4(@bufbuild/protobuf@1.5.0)(@connectrpc/connect@1.1.4) '@did-plc/lib': specifier: ^0.0.1 version: 0.0.1 @@ -256,6 +268,15 @@ importers: '@atproto/xrpc': specifier: workspace:^ version: link:../xrpc + '@bufbuild/buf': + specifier: ^1.28.1 + version: 1.28.1 + '@bufbuild/protoc-gen-es': + specifier: ^1.5.0 + version: 1.5.0(@bufbuild/protobuf@1.5.0) + '@connectrpc/protoc-gen-connect-es': + specifier: ^1.1.4 + version: 1.1.4(@bufbuild/protoc-gen-es@1.5.0)(@connectrpc/connect@1.1.4) '@did-plc/server': specifier: ^0.0.1 version: 0.0.1 @@ -277,6 +298,9 @@ importers: axios: specifier: ^0.27.2 version: 0.27.2 + http2-express-bridge: + specifier: ^1.0.7 + version: 1.0.7 packages/common: dependencies: @@ -4327,6 +4351,103 @@ packages: resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} dev: true + /@bufbuild/buf-darwin-arm64@1.28.1: + resolution: {integrity: sha512-nAyvwKkcd8qQTExCZo5MtSRhXLK7e3vzKFKHjXfkveRakSUST2HFlFZAHfErZimN4wBrPTN0V0hNRU8PPjkMpQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@bufbuild/buf-darwin-x64@1.28.1: + resolution: {integrity: sha512-b0eT3xd3vX5a5lWAbo5h7FPuf9MsOJI4I39qs4TZnrlZ8BOuPfqzwzijiFf9UCwaX2vR1NQXexIoQ80Ci+fCHw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@bufbuild/buf-linux-aarch64@1.28.1: + resolution: {integrity: sha512-p5h9bZCVLMh8No9/7k7ulXzsFx5P7Lu6DiUMjSJ6aBXPMYo6Xl7r/6L2cQkpsZ53HMtIxCgMYS9a7zoS4K8wIw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@bufbuild/buf-linux-x64@1.28.1: + resolution: {integrity: sha512-fVJ3DiRigIso06jgEl+JNp59Y5t2pxDHd10d3SA4r+14sXbZ2J7Gy/wBqVXPry4x/jW567KKlvmhg7M5ZBgCQQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@bufbuild/buf-win32-arm64@1.28.1: + resolution: {integrity: sha512-KJiRJpugQRK/jXC46Xjlb68UydWhCZj2jHdWLIwNtgXd1WTJ3LngChZV7Y6pPK08pwBAVz0JYeVbD5IlTCD4TQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@bufbuild/buf-win32-x64@1.28.1: + resolution: {integrity: sha512-vMnc+7OVCkmlRWQsgYHgUqiBPRIjD8XeoRyApJ07YZzGs7DkRH4LhvmacJbLd3wORylbn6gLz3pQa8J/M61mzg==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@bufbuild/buf@1.28.1: + resolution: {integrity: sha512-WRDagrf0uBjfV9s5eyrSPJDcdI4A5Q7JMCA4aMrHRR8fo/TTjniDBjJprszhaguqsDkn/LS4QIu92HVFZCrl9A==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@bufbuild/buf-darwin-arm64': 1.28.1 + '@bufbuild/buf-darwin-x64': 1.28.1 + '@bufbuild/buf-linux-aarch64': 1.28.1 + '@bufbuild/buf-linux-x64': 1.28.1 + '@bufbuild/buf-win32-arm64': 1.28.1 + '@bufbuild/buf-win32-x64': 1.28.1 + dev: true + + /@bufbuild/protobuf@1.5.0: + resolution: {integrity: sha512-0Jg+B7Vl8YGCi7c3iZ8/38iTbZrwdU7or6QZlsA9lhSrhumaXOTMsGO8gqwDuus/THEkTiY3Uxn+PEJwgsLt0w==} + + /@bufbuild/protoc-gen-es@1.5.0(@bufbuild/protobuf@1.5.0): + resolution: {integrity: sha512-6dPFlw7jhKPNoJUb5+0MPDTMEEbym4AAQZP2sCo4/0J+T2SlAzq5kbuNx92x+SFkOI5V7/iNoPHrxr0TZZ9b2g==} + engines: {node: '>=14'} + hasBin: true + peerDependencies: + '@bufbuild/protobuf': 1.5.0 + peerDependenciesMeta: + '@bufbuild/protobuf': + optional: true + dependencies: + '@bufbuild/protobuf': 1.5.0 + '@bufbuild/protoplugin': 1.5.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@bufbuild/protoplugin@1.5.0: + resolution: {integrity: sha512-b07uxUfWUHm91PrN7dMMSmO+2RH21kPo+EhczGDR3PDh2t80e4XCZhf3Z/6SM/+ajhVpbl/WNK+z645jsSnGPg==} + dependencies: + '@bufbuild/protobuf': 1.5.0 + '@typescript/vfs': 1.5.0 + typescript: 4.5.2 + transitivePeerDependencies: + - supports-color + dev: true + /@cbor-extract/cbor-extract-darwin-arm64@2.1.1: resolution: {integrity: sha512-blVBy5MXz6m36Vx0DfLd7PChOQKEs8lK2bD1WJn/vVgG4FXZiZmZb2GECHFvVPA5T7OnODd9xZiL3nMCv6QUhA==} cpu: [arm64] @@ -4578,6 +4699,60 @@ packages: prettier: 2.7.1 dev: true + /@connectrpc/connect-express@1.1.4(@bufbuild/protobuf@1.5.0)(@connectrpc/connect-node@1.1.4)(@connectrpc/connect@1.1.4): + resolution: {integrity: sha512-sLiBvXBmXOZpDaw0s0z3Y1WyLkBppPVGfuZTVdw4fACay8Ss7YWi4tzTnvoesJz9DM5My5873pcndwCl2p5ERg==} + engines: {node: '>=16.0.0'} + peerDependencies: + '@bufbuild/protobuf': ^1.4.2 + '@connectrpc/connect': 1.1.4 + '@connectrpc/connect-node': 1.1.4 + dependencies: + '@bufbuild/protobuf': 1.5.0 + '@connectrpc/connect': 1.1.4(@bufbuild/protobuf@1.5.0) + '@connectrpc/connect-node': 1.1.4(@bufbuild/protobuf@1.5.0)(@connectrpc/connect@1.1.4) + '@types/express': 4.17.21 + dev: false + + /@connectrpc/connect-node@1.1.4(@bufbuild/protobuf@1.5.0)(@connectrpc/connect@1.1.4): + resolution: {integrity: sha512-1Pv4PSTh7k6+c8kNjVx9wZiWm8dChexsq+hW4EKcYItjSqvyKpmTfLBTl12y6W+RBQ9vCuFCu3xT79outhNY9g==} + engines: {node: '>=16.0.0'} + peerDependencies: + '@bufbuild/protobuf': ^1.4.2 + '@connectrpc/connect': 1.1.4 + dependencies: + '@bufbuild/protobuf': 1.5.0 + '@connectrpc/connect': 1.1.4(@bufbuild/protobuf@1.5.0) + undici: 5.28.2 + dev: false + + /@connectrpc/connect@1.1.4(@bufbuild/protobuf@1.5.0): + resolution: {integrity: sha512-kFiOi3jsEyOuL4gGW55LgNCqQBNA0Z/GLXrfeJO4r6pI/f8L9rqnjrFZTCeyrvzu1TuqEtL51cR+c46KMCposw==} + peerDependencies: + '@bufbuild/protobuf': ^1.4.2 + dependencies: + '@bufbuild/protobuf': 1.5.0 + + /@connectrpc/protoc-gen-connect-es@1.1.4(@bufbuild/protoc-gen-es@1.5.0)(@connectrpc/connect@1.1.4): + resolution: {integrity: sha512-q+leRn9Bd1FzEbthN1qWHwYaGYGc84rLXy/hEkDlMCiWrqz2zxb4Ijy37gOMlE8eRfwYRwn08XcEhV+Y/1jlyA==} + engines: {node: '>=16.0.0'} + hasBin: true + peerDependencies: + '@bufbuild/protoc-gen-es': ^1.3.3 + '@connectrpc/connect': 1.1.4 + peerDependenciesMeta: + '@bufbuild/protoc-gen-es': + optional: true + '@connectrpc/connect': + optional: true + dependencies: + '@bufbuild/protobuf': 1.5.0 + '@bufbuild/protoc-gen-es': 1.5.0(@bufbuild/protobuf@1.5.0) + '@bufbuild/protoplugin': 1.5.0 + '@connectrpc/connect': 1.1.4(@bufbuild/protobuf@1.5.0) + transitivePeerDependencies: + - supports-color + dev: true + /@cspotcode/source-map-support@0.8.1: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} @@ -4728,6 +4903,11 @@ packages: - supports-color dev: true + /@fastify/busboy@2.1.0: + resolution: {integrity: sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==} + engines: {node: '>=14'} + dev: false + /@fastify/deepmerge@1.3.0: resolution: {integrity: sha512-J8TOSBq3SoZbDhM9+R/u77hP93gz/rajSA+K2kGyijPpORPWUXHUpTaleoj+92As0S9uPRP7Oi8IqMf0u+ro6A==} @@ -5458,13 +5638,11 @@ packages: dependencies: '@types/connect': 3.4.35 '@types/node': 18.17.8 - dev: true /@types/connect@3.4.35: resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} dependencies: '@types/node': 18.17.8 - dev: true /@types/cors@2.8.12: resolution: {integrity: sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==} @@ -5486,7 +5664,6 @@ packages: '@types/qs': 6.9.7 '@types/range-parser': 1.2.4 '@types/send': 0.17.1 - dev: true /@types/express@4.17.13: resolution: {integrity: sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==} @@ -5497,6 +5674,15 @@ packages: '@types/serve-static': 1.15.2 dev: true + /@types/express@4.17.21: + resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} + dependencies: + '@types/body-parser': 1.19.2 + '@types/express-serve-static-core': 4.17.36 + '@types/qs': 6.9.7 + '@types/serve-static': 1.15.2 + dev: false + /@types/graceful-fs@4.1.6: resolution: {integrity: sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==} dependencies: @@ -5505,7 +5691,6 @@ packages: /@types/http-errors@2.0.1: resolution: {integrity: sha512-/K3ds8TRAfBvi5vfjuz8y6+GiAYBZ0x4tXv1Av6CWBWn0IlADc+ZX9pMq7oU0fNQPnBwIZl3rmeLp6SBApbxSQ==} - dev: true /@types/is-ci@3.0.0: resolution: {integrity: sha512-Q0Op0hdWbYd1iahB+IFNQcWXFq4O0Q5MwQP7uN0souuQ4rPg1vEYcnIOfr1gY+M+6rc8FGoRaBO1mOOvL29sEQ==} @@ -5542,11 +5727,9 @@ packages: /@types/mime@1.3.2: resolution: {integrity: sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==} - dev: true /@types/mime@3.0.1: resolution: {integrity: sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==} - dev: true /@types/minimist@1.2.2: resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} @@ -5587,11 +5770,9 @@ packages: /@types/qs@6.9.7: resolution: {integrity: sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==} - dev: true /@types/range-parser@1.2.4: resolution: {integrity: sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==} - dev: true /@types/semver@7.5.0: resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} @@ -5602,7 +5783,6 @@ packages: dependencies: '@types/mime': 1.3.2 '@types/node': 18.17.8 - dev: true /@types/serve-static@1.15.2: resolution: {integrity: sha512-J2LqtvFYCzaj8pVYKw8klQXrLLk7TBZmQ4ShlcdkELFKGwGMfevMLneMMRkMgZxotOD9wg497LpC7O8PcvAmfw==} @@ -5610,7 +5790,6 @@ packages: '@types/http-errors': 2.0.1 '@types/mime': 3.0.1 '@types/node': 18.17.8 - dev: true /@types/shimmer@1.0.5: resolution: {integrity: sha512-9Hp0ObzwwO57DpLFF0InUjUm/II8GmKAvzbefxQTihCb7KI6yc9yzf0nLc4mVdby5N4DRCgQM2wCup9KTieeww==} @@ -5768,6 +5947,14 @@ packages: eslint-visitor-keys: 3.4.3 dev: true + /@typescript/vfs@1.5.0: + resolution: {integrity: sha512-AJS307bPgbsZZ9ggCT3wwpg3VbTKMFNHfaY/uF0ahSkYYrPF2dSSKDNIDIQAHm9qJqbLvCsSJH7yN4Vs/CsMMg==} + dependencies: + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + /abbrev@1.1.1: resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} dev: true @@ -6800,10 +6987,19 @@ packages: resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==} engines: {node: '>=0.10'} + /depd@1.1.2: + resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} + engines: {node: '>= 0.6'} + dev: true + /depd@2.0.0: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} + /destroy@1.0.4: + resolution: {integrity: sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg==} + dev: true + /destroy@1.2.0: resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} @@ -8060,6 +8256,17 @@ packages: resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} dev: true + /http-errors@1.8.1: + resolution: {integrity: sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==} + engines: {node: '>= 0.6'} + dependencies: + depd: 1.1.2 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 1.5.0 + toidentifier: 1.0.1 + dev: true + /http-errors@2.0.0: resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} engines: {node: '>= 0.8'} @@ -8090,6 +8297,17 @@ packages: roarr: 7.15.1 type-fest: 2.19.0 + /http2-express-bridge@1.0.7: + resolution: {integrity: sha512-bmzZSyn3nuzXRqs/+WgH7IGOQYMCIZNJeqTJ/1AoDgMPTSP5wXQCxPGsdUbGzzxwiHrMwyT4Z7t8ccbsKqiHrw==} + engines: {node: '>= 10.0.0'} + dependencies: + merge-descriptors: 1.0.1 + send: 0.17.2 + setprototypeof: 1.2.0 + transitivePeerDependencies: + - supports-color + dev: true + /https-proxy-agent@5.0.1: resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} engines: {node: '>= 6'} @@ -9550,6 +9768,13 @@ packages: /on-exit-leak-free@2.1.0: resolution: {integrity: sha512-VuCaZZAjReZ3vUwgOB8LxAosIurDiAW0s13rI1YwmaP++jvcxP77AWoQvenZebpCA2m8WC1/EosPYPMjnRAp/w==} + /on-finished@2.3.0: + resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==} + engines: {node: '>= 0.8'} + dependencies: + ee-first: 1.1.1 + dev: true + /on-finished@2.4.1: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} engines: {node: '>= 0.8'} @@ -10394,6 +10619,27 @@ packages: dependencies: lru-cache: 6.0.0 + /send@0.17.2: + resolution: {integrity: sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==} + engines: {node: '>= 0.8.0'} + dependencies: + debug: 2.6.9 + depd: 1.1.2 + destroy: 1.0.4 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 0.5.2 + http-errors: 1.8.1 + mime: 1.6.0 + ms: 2.1.3 + on-finished: 2.3.0 + range-parser: 1.2.1 + statuses: 1.5.0 + transitivePeerDependencies: + - supports-color + dev: true + /send@0.18.0: resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} engines: {node: '>= 0.8.0'} @@ -10643,6 +10889,11 @@ packages: /standard-as-callback@2.1.0: resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==} + /statuses@1.5.0: + resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} + engines: {node: '>= 0.6'} + dev: true + /statuses@2.0.1: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} @@ -11126,6 +11377,12 @@ packages: optionalDependencies: rxjs: 7.8.1 + /typescript@4.5.2: + resolution: {integrity: sha512-5BlMof9H1yGt0P8/WF+wPNw6GfctgGjXp5hkblpyT+8rkASSmkUKMXrxR0Xg8ThVCi/JnHQiKXeBaEwCeQwMFw==} + engines: {node: '>=4.2.0'} + hasBin: true + dev: true + /typescript@4.8.4: resolution: {integrity: sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==} engines: {node: '>=4.2.0'} @@ -11159,6 +11416,13 @@ packages: which-boxed-primitive: 1.0.2 dev: true + /undici@5.28.2: + resolution: {integrity: sha512-wh1pHJHnUeQV5Xa8/kyQhO7WFa8M34l026L5P/+2TYiakvGy5Rdc8jWZVyG7ieht/0WgJLEd3kcU5gKx+6GC8w==} + engines: {node: '>=14.0'} + dependencies: + '@fastify/busboy': 2.1.0 + dev: false + /unicode-canonical-property-names-ecmascript@2.0.0: resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} engines: {node: '>=4'}