@atproto/bsky 0.0.37 → 0.0.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/dist/api/app/bsky/feed/getAuthorFeed.d.ts +2 -3
- package/dist/api/app/bsky/feed/getListFeed.d.ts +2 -2
- package/dist/api/app/bsky/feed/getTimeline.d.ts +4 -2
- package/dist/api/app/bsky/labeler/getServices.d.ts +3 -0
- package/dist/api/util.d.ts +9 -2
- package/dist/auth-verifier.d.ts +1 -1
- package/dist/context.d.ts +3 -0
- package/dist/data-plane/server/db/database-schema.d.ts +2 -2
- package/dist/data-plane/server/db/migrations/20240226T225725627Z-labelers.d.ts +3 -0
- package/dist/data-plane/server/db/migrations/index.d.ts +1 -0
- package/dist/data-plane/server/db/tables/labeler.d.ts +13 -0
- package/dist/data-plane/server/indexing/index.d.ts +2 -0
- package/dist/data-plane/server/indexing/plugins/labeler.d.ts +10 -0
- package/dist/data-plane/server/util.d.ts +6 -6
- package/dist/hydration/actor.d.ts +3 -0
- package/dist/hydration/hydrator.d.ts +27 -22
- package/dist/hydration/label.d.ts +23 -9
- package/dist/index.js +4068 -4641
- package/dist/index.js.map +3 -3
- package/dist/lexicon/index.d.ts +7 -27
- package/dist/lexicon/lexicons.d.ts +507 -1467
- package/dist/lexicon/types/app/bsky/actor/defs.d.ts +23 -1
- package/dist/lexicon/types/app/bsky/embed/record.d.ts +2 -1
- package/dist/lexicon/types/app/bsky/feed/defs.d.ts +1 -0
- package/dist/lexicon/types/app/bsky/graph/defs.d.ts +3 -0
- package/dist/lexicon/types/app/bsky/labeler/defs.d.ts +41 -0
- package/dist/lexicon/types/{com/atproto/admin/searchRepos.d.ts → app/bsky/labeler/getServices.d.ts} +7 -7
- package/dist/lexicon/types/app/bsky/labeler/service.d.ts +14 -0
- package/dist/lexicon/types/com/atproto/admin/defs.d.ts +0 -304
- package/dist/lexicon/types/com/atproto/label/defs.d.ts +23 -0
- package/dist/proto/bsky_connect.d.ts +7 -1
- package/dist/proto/bsky_pb.d.ts +25 -0
- package/dist/util.d.ts +7 -0
- package/dist/views/index.d.ts +3 -0
- package/dist/views/types.d.ts +2 -1
- package/package.json +14 -13
- package/proto/bsky.proto +12 -0
- package/src/api/app/bsky/actor/getProfile.ts +21 -17
- package/src/api/app/bsky/actor/getProfiles.ts +16 -7
- package/src/api/app/bsky/actor/getSuggestions.ts +18 -13
- package/src/api/app/bsky/actor/searchActors.ts +9 -5
- package/src/api/app/bsky/actor/searchActorsTypeahead.ts +12 -5
- package/src/api/app/bsky/feed/getActorFeeds.ts +16 -6
- package/src/api/app/bsky/feed/getActorLikes.ts +18 -8
- package/src/api/app/bsky/feed/getAuthorFeed.ts +18 -19
- package/src/api/app/bsky/feed/getFeed.ts +14 -7
- package/src/api/app/bsky/feed/getFeedGenerator.ts +8 -2
- package/src/api/app/bsky/feed/getFeedGenerators.ts +16 -5
- package/src/api/app/bsky/feed/getLikes.ts +13 -6
- package/src/api/app/bsky/feed/getListFeed.ts +13 -7
- package/src/api/app/bsky/feed/getPostThread.ts +15 -8
- package/src/api/app/bsky/feed/getPosts.ts +14 -5
- package/src/api/app/bsky/feed/getRepostedBy.ts +13 -6
- package/src/api/app/bsky/feed/getSuggestedFeeds.ts +8 -2
- package/src/api/app/bsky/feed/getTimeline.ts +14 -8
- package/src/api/app/bsky/feed/searchPosts.ts +9 -5
- package/src/api/app/bsky/graph/getBlocks.ts +10 -9
- package/src/api/app/bsky/graph/getFollowers.ts +23 -15
- package/src/api/app/bsky/graph/getFollows.ts +23 -15
- package/src/api/app/bsky/graph/getList.ts +14 -8
- package/src/api/app/bsky/graph/getListBlocks.ts +10 -7
- package/src/api/app/bsky/graph/getListMutes.ts +10 -7
- package/src/api/app/bsky/graph/getLists.ts +9 -7
- package/src/api/app/bsky/graph/getMutes.ts +10 -8
- package/src/api/app/bsky/graph/getSuggestedFollowsByActor.ts +10 -7
- package/src/api/app/bsky/graph/muteActor.ts +1 -1
- package/src/api/app/bsky/labeler/getServices.ts +46 -0
- package/src/api/app/bsky/notification/listNotifications.ts +12 -8
- package/src/api/app/bsky/unspecced/getPopularFeedGenerators.ts +6 -3
- package/src/api/com/atproto/admin/getAccountInfos.ts +10 -3
- package/src/api/index.ts +2 -0
- package/src/api/util.ts +19 -4
- package/src/auth-verifier.ts +2 -2
- package/src/context.ts +20 -0
- package/src/data-plane/server/db/database-schema.ts +4 -4
- package/src/data-plane/server/db/migrations/20240226T225725627Z-labelers.ts +27 -0
- package/src/data-plane/server/db/migrations/index.ts +1 -0
- package/src/data-plane/server/db/tables/labeler.ts +16 -0
- package/src/data-plane/server/indexing/index.ts +4 -0
- package/src/data-plane/server/indexing/plugins/labeler.ts +77 -0
- package/src/data-plane/server/routes/interactions.ts +17 -1
- package/src/data-plane/server/routes/profile.ts +15 -1
- package/src/data-plane/server/routes/records.ts +1 -0
- package/src/hydration/actor.ts +6 -0
- package/src/hydration/hydrator.ts +171 -97
- package/src/hydration/label.ts +106 -20
- package/src/index.ts +1 -3
- package/src/lexicon/index.ts +22 -137
- package/src/lexicon/lexicons.ts +502 -1598
- package/src/lexicon/types/app/bsky/actor/defs.ts +57 -1
- package/src/lexicon/types/app/bsky/embed/record.ts +2 -0
- package/src/lexicon/types/app/bsky/feed/defs.ts +1 -0
- package/src/lexicon/types/app/bsky/graph/defs.ts +3 -0
- package/src/lexicon/types/app/bsky/labeler/defs.ts +93 -0
- package/src/lexicon/types/{com/atproto/admin/searchRepos.ts → app/bsky/labeler/getServices.ts} +8 -8
- package/src/lexicon/types/app/bsky/labeler/service.ts +31 -0
- package/src/lexicon/types/com/atproto/admin/defs.ts +0 -694
- package/src/lexicon/types/com/atproto/label/defs.ts +78 -0
- package/src/proto/bsky_connect.ts +11 -0
- package/src/proto/bsky_pb.ts +146 -0
- package/src/util.ts +44 -0
- package/src/views/index.ts +76 -7
- package/src/views/types.ts +6 -3
- package/tests/__snapshots__/feed-generation.test.ts.snap +12 -0
- package/tests/_util.ts +21 -0
- package/tests/data-plane/__snapshots__/indexing.test.ts.snap +20 -0
- package/tests/label-hydration.test.ts +162 -0
- package/tests/views/__snapshots__/block-lists.test.ts.snap +7 -0
- package/tests/views/__snapshots__/labeler-service.test.ts.snap +160 -0
- package/tests/views/__snapshots__/mute-lists.test.ts.snap +10 -0
- package/tests/views/__snapshots__/profile.test.ts.snap +40 -0
- package/tests/views/__snapshots__/threadgating.test.ts.snap +2 -0
- package/tests/views/labeler-service.test.ts +156 -0
- package/tests/views/takedown-labels.test.ts +133 -0
- package/tests/views/timeline.test.ts +7 -2
- package/dist/data-plane/server/db/tables/moderation.d.ts +0 -42
- package/dist/lexicon/types/com/atproto/admin/createCommunicationTemplate.d.ts +0 -37
- package/dist/lexicon/types/com/atproto/admin/deleteCommunicationTemplate.d.ts +0 -25
- package/dist/lexicon/types/com/atproto/admin/emitModerationEvent.d.ts +0 -45
- package/dist/lexicon/types/com/atproto/admin/getModerationEvent.d.ts +0 -29
- package/dist/lexicon/types/com/atproto/admin/getRecord.d.ts +0 -31
- package/dist/lexicon/types/com/atproto/admin/getRepo.d.ts +0 -30
- package/dist/lexicon/types/com/atproto/admin/listCommunicationTemplates.d.ts +0 -31
- package/dist/lexicon/types/com/atproto/admin/queryModerationEvents.d.ts +0 -48
- package/dist/lexicon/types/com/atproto/admin/queryModerationStatuses.d.ts +0 -50
- package/dist/lexicon/types/com/atproto/admin/updateCommunicationTemplate.d.ts +0 -39
- package/src/data-plane/server/db/tables/moderation.ts +0 -59
- package/src/lexicon/types/com/atproto/admin/createCommunicationTemplate.ts +0 -54
- package/src/lexicon/types/com/atproto/admin/deleteCommunicationTemplate.ts +0 -38
- package/src/lexicon/types/com/atproto/admin/emitModerationEvent.ts +0 -67
- package/src/lexicon/types/com/atproto/admin/getModerationEvent.ts +0 -41
- package/src/lexicon/types/com/atproto/admin/getRecord.ts +0 -43
- package/src/lexicon/types/com/atproto/admin/getRepo.ts +0 -42
- package/src/lexicon/types/com/atproto/admin/listCommunicationTemplates.ts +0 -44
- package/src/lexicon/types/com/atproto/admin/queryModerationEvents.ts +0 -73
- package/src/lexicon/types/com/atproto/admin/queryModerationStatuses.ts +0 -74
- package/src/lexicon/types/com/atproto/admin/updateCommunicationTemplate.ts +0 -57
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# @atproto/bsky
|
|
2
2
|
|
|
3
|
+
## 0.0.38
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [[`4eaadc0ac`](https://github.com/bluesky-social/atproto/commit/4eaadc0acb6b73b9745dd7a2b929d02e58083ab0), [`4eaadc0ac`](https://github.com/bluesky-social/atproto/commit/4eaadc0acb6b73b9745dd7a2b929d02e58083ab0)]:
|
|
8
|
+
- @atproto/identity@0.3.3
|
|
9
|
+
- @atproto/api@0.11.0
|
|
10
|
+
- @atproto/common@0.3.4
|
|
11
|
+
- @atproto/lexicon@0.3.3
|
|
12
|
+
- @atproto/repo@0.3.9
|
|
13
|
+
- @atproto/syntax@0.2.1
|
|
14
|
+
- @atproto/crypto@0.3.0
|
|
15
|
+
- @atproto/xrpc-server@0.4.4
|
|
16
|
+
|
|
3
17
|
## 0.0.37
|
|
4
18
|
|
|
5
19
|
### Patch Changes
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Server } from '../../../../lexicon';
|
|
2
2
|
import { QueryParams } from '../../../../lexicon/types/app/bsky/feed/getAuthorFeed';
|
|
3
3
|
import AppContext from '../../../../context';
|
|
4
|
-
import { Hydrator } from '../../../../hydration/hydrator';
|
|
4
|
+
import { HydrateCtx, Hydrator } from '../../../../hydration/hydrator';
|
|
5
5
|
import { Views } from '../../../../views';
|
|
6
6
|
import { DataPlaneClient } from '../../../../data-plane';
|
|
7
7
|
import { Actor } from '../../../../hydration/actor';
|
|
@@ -17,8 +17,7 @@ type Context = {
|
|
|
17
17
|
dataplane: DataPlaneClient;
|
|
18
18
|
};
|
|
19
19
|
type Params = QueryParams & {
|
|
20
|
-
|
|
21
|
-
includeTakedowns: boolean;
|
|
20
|
+
hydrateCtx: HydrateCtx;
|
|
22
21
|
};
|
|
23
22
|
type Skeleton = {
|
|
24
23
|
actor: Actor;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Server } from '../../../../lexicon';
|
|
2
2
|
import { QueryParams } from '../../../../lexicon/types/app/bsky/feed/getListFeed';
|
|
3
3
|
import AppContext from '../../../../context';
|
|
4
|
-
import { Hydrator } from '../../../../hydration/hydrator';
|
|
4
|
+
import { HydrateCtx, Hydrator } from '../../../../hydration/hydrator';
|
|
5
5
|
import { Views } from '../../../../views';
|
|
6
6
|
import { DataPlaneClient } from '../../../../data-plane';
|
|
7
7
|
import { FeedItem } from '../../../../hydration/feed';
|
|
@@ -16,7 +16,7 @@ type Context = {
|
|
|
16
16
|
dataplane: DataPlaneClient;
|
|
17
17
|
};
|
|
18
18
|
type Params = QueryParams & {
|
|
19
|
-
|
|
19
|
+
hydrateCtx: HydrateCtx;
|
|
20
20
|
};
|
|
21
21
|
type Skeleton = {
|
|
22
22
|
items: FeedItem[];
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Server } from '../../../../lexicon';
|
|
2
2
|
import AppContext from '../../../../context';
|
|
3
3
|
import { QueryParams } from '../../../../lexicon/types/app/bsky/feed/getTimeline';
|
|
4
|
-
import { Hydrator } from '../../../../hydration/hydrator';
|
|
4
|
+
import { HydrateCtx, Hydrator } from '../../../../hydration/hydrator';
|
|
5
5
|
import { Views } from '../../../../views';
|
|
6
6
|
import { DataPlaneClient } from '../../../../data-plane';
|
|
7
7
|
import { FeedItem } from '../../../../hydration/feed';
|
|
@@ -16,7 +16,9 @@ type Context = {
|
|
|
16
16
|
dataplane: DataPlaneClient;
|
|
17
17
|
};
|
|
18
18
|
type Params = QueryParams & {
|
|
19
|
-
|
|
19
|
+
hydrateCtx: HydrateCtx & {
|
|
20
|
+
viewer: string;
|
|
21
|
+
};
|
|
20
22
|
};
|
|
21
23
|
type Skeleton = {
|
|
22
24
|
items: FeedItem[];
|
package/dist/api/util.d.ts
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
-
import
|
|
2
|
-
export declare const
|
|
1
|
+
import { ParsedLabelers } from '../util';
|
|
2
|
+
export declare const ATPROTO_CONTENT_LABELERS = "Atproto-Content-Labelers";
|
|
3
|
+
export declare const ATPROTO_REPO_REV = "Atproto-Repo-Rev";
|
|
4
|
+
type ResHeaderOpts = {
|
|
5
|
+
labelers: ParsedLabelers;
|
|
6
|
+
repoRev: string | null;
|
|
7
|
+
};
|
|
8
|
+
export declare const resHeaders: (opts: Partial<ResHeaderOpts>) => Record<string, string>;
|
|
3
9
|
export declare const clearlyBadCursor: (cursor?: string) => boolean;
|
|
10
|
+
export {};
|
package/dist/auth-verifier.d.ts
CHANGED
|
@@ -75,7 +75,7 @@ export declare class AuthVerifier {
|
|
|
75
75
|
nullCreds(): NullOutput;
|
|
76
76
|
parseCreds(creds: StandardOutput | RoleOutput | ModServiceOutput | NullOutput): {
|
|
77
77
|
viewer: string | null;
|
|
78
|
-
|
|
78
|
+
includeTakedowns: boolean;
|
|
79
79
|
canPerformTakedown: boolean;
|
|
80
80
|
};
|
|
81
81
|
}
|
package/dist/context.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import express from 'express';
|
|
1
2
|
import * as plc from '@did-plc/lib';
|
|
2
3
|
import { IdResolver } from '@atproto/identity';
|
|
3
4
|
import AtpAgent from '@atproto/api';
|
|
@@ -9,6 +10,7 @@ import { Views } from './views';
|
|
|
9
10
|
import { AuthVerifier } from './auth-verifier';
|
|
10
11
|
import { BsyncClient } from './bsync';
|
|
11
12
|
import { CourierClient } from './courier';
|
|
13
|
+
import { ParsedLabelers } from './util';
|
|
12
14
|
export declare class AppContext {
|
|
13
15
|
private opts;
|
|
14
16
|
constructor(opts: {
|
|
@@ -35,5 +37,6 @@ export declare class AppContext {
|
|
|
35
37
|
get courierClient(): CourierClient;
|
|
36
38
|
get authVerifier(): AuthVerifier;
|
|
37
39
|
serviceAuthJwt(aud: string): Promise<string>;
|
|
40
|
+
reqLabelers(req: express.Request): ParsedLabelers;
|
|
38
41
|
}
|
|
39
42
|
export default AppContext;
|
|
@@ -25,7 +25,6 @@ import * as record from './tables/record';
|
|
|
25
25
|
import * as notification from './tables/notification';
|
|
26
26
|
import * as notificationPushToken from './tables/notification-push-token';
|
|
27
27
|
import * as didCache from './tables/did-cache';
|
|
28
|
-
import * as moderation from './tables/moderation';
|
|
29
28
|
import * as label from './tables/label';
|
|
30
29
|
import * as algo from './tables/algo';
|
|
31
30
|
import * as viewParam from './tables/view-param';
|
|
@@ -33,6 +32,7 @@ import * as suggestedFollow from './tables/suggested-follow';
|
|
|
33
32
|
import * as suggestedFeed from './tables/suggested-feed';
|
|
34
33
|
import * as taggedSuggestion from './tables/tagged-suggestion';
|
|
35
34
|
import * as blobTakedown from './tables/blob-takedown';
|
|
36
|
-
|
|
35
|
+
import * as labeler from './tables/labeler';
|
|
36
|
+
export type DatabaseSchemaType = duplicateRecord.PartialDB & profile.PartialDB & profileAgg.PartialDB & post.PartialDB & postEmbed.PartialDB & postAgg.PartialDB & repost.PartialDB & threadGate.PartialDB & feedItem.PartialDB & follow.PartialDB & like.PartialDB & list.PartialDB & listItem.PartialDB & listMute.PartialDB & listBlock.PartialDB & mute.PartialDB & actorBlock.PartialDB & feedGenerator.PartialDB & subscription.PartialDB & actor.PartialDB & actorState.PartialDB & actorSync.PartialDB & record.PartialDB & notification.PartialDB & notificationPushToken.PartialDB & didCache.PartialDB & label.PartialDB & algo.PartialDB & viewParam.PartialDB & suggestedFollow.PartialDB & suggestedFeed.PartialDB & blobTakedown.PartialDB & labeler.PartialDB & taggedSuggestion.PartialDB;
|
|
37
37
|
export type DatabaseSchema = Kysely<DatabaseSchemaType>;
|
|
38
38
|
export default DatabaseSchema;
|
|
@@ -29,3 +29,4 @@ export * as _20230929T192920807Z from './20230929T192920807Z-record-cursor-index
|
|
|
29
29
|
export * as _20231003T202833377Z from './20231003T202833377Z-create-moderation-subject-status';
|
|
30
30
|
export * as _20231220T225126090Z from './20231220T225126090Z-blob-takedowns';
|
|
31
31
|
export * as _20240124T023719200Z from './20240124T023719200Z-tagged-suggestions';
|
|
32
|
+
export * as _20240226T225725627Z from './20240226T225725627Z-labelers';
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { GeneratedAlways } from 'kysely';
|
|
2
|
+
export declare const tableName = "labeler";
|
|
3
|
+
export interface Labeler {
|
|
4
|
+
uri: string;
|
|
5
|
+
cid: string;
|
|
6
|
+
creator: string;
|
|
7
|
+
createdAt: string;
|
|
8
|
+
indexedAt: string;
|
|
9
|
+
sortAt: GeneratedAlways<string>;
|
|
10
|
+
}
|
|
11
|
+
export type PartialDB = {
|
|
12
|
+
[tableName]: Labeler;
|
|
13
|
+
};
|
|
@@ -14,6 +14,7 @@ import * as ListItem from './plugins/list-item';
|
|
|
14
14
|
import * as ListBlock from './plugins/list-block';
|
|
15
15
|
import * as Block from './plugins/block';
|
|
16
16
|
import * as FeedGenerator from './plugins/feed-generator';
|
|
17
|
+
import * as Labeler from './plugins/labeler';
|
|
17
18
|
import RecordProcessor from './processor';
|
|
18
19
|
import { BackgroundQueue } from '../background';
|
|
19
20
|
export declare class IndexingService {
|
|
@@ -32,6 +33,7 @@ export declare class IndexingService {
|
|
|
32
33
|
listBlock: ListBlock.PluginType;
|
|
33
34
|
block: Block.PluginType;
|
|
34
35
|
feedGenerator: FeedGenerator.PluginType;
|
|
36
|
+
labeler: Labeler.PluginType;
|
|
35
37
|
};
|
|
36
38
|
constructor(db: Database, idResolver: IdResolver, background: BackgroundQueue);
|
|
37
39
|
transact(txn: Database): IndexingService;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Selectable } from 'kysely';
|
|
2
|
+
import * as Labeler from '../../../../lexicon/types/app/bsky/labeler/service';
|
|
3
|
+
import { Database } from '../../db';
|
|
4
|
+
import { DatabaseSchemaType } from '../../db/database-schema';
|
|
5
|
+
import RecordProcessor from '../processor';
|
|
6
|
+
import { BackgroundQueue } from '../../background';
|
|
7
|
+
type IndexedLabeler = Selectable<DatabaseSchemaType['labeler']>;
|
|
8
|
+
export type PluginType = RecordProcessor<Labeler.Record, IndexedLabeler>;
|
|
9
|
+
export declare const makePlugin: (db: Database, background: BackgroundQueue) => PluginType;
|
|
10
|
+
export default makePlugin;
|
|
@@ -4,28 +4,28 @@ import DatabaseSchema from './db/database-schema';
|
|
|
4
4
|
export declare const getDescendentsQb: (db: DatabaseSchema, opts: {
|
|
5
5
|
uri: string;
|
|
6
6
|
depth: number;
|
|
7
|
-
}) => import("kysely/dist/cjs/parser/with-parser").QueryCreatorWithCommonTableExpression<import("./db/database-schema").DatabaseSchemaType, "descendent(uri, depth)", (cte: import("kysely").QueryCreator<import("./db/tables/duplicate-record").PartialDB & import("./db/tables/profile").PartialDB & import("./db/tables/profile-agg").PartialDB & import("./db/tables/post").PartialDB & import("./db/tables/post-embed").PartialDB & import("./db/tables/post-agg").PartialDB & import("./db/tables/repost").PartialDB & import("./db/tables/thread-gate").PartialDB & import("./db/tables/feed-item").PartialDB & import("./db/tables/follow").PartialDB & import("./db/tables/like").PartialDB & import("./db/tables/list").PartialDB & import("./db/tables/list-item").PartialDB & import("./db/tables/list-mute").PartialDB & import("./db/tables/list-block").PartialDB & import("./db/tables/mute").PartialDB & import("./db/tables/actor-block").PartialDB & import("./db/tables/feed-generator").PartialDB & import("./db/tables/subscription").PartialDB & import("./db/tables/actor").PartialDB & import("./db/tables/actor-state").PartialDB & import("./db/tables/actor-sync").PartialDB & import("./db/tables/record").PartialDB & import("./db/tables/notification").PartialDB & import("./db/tables/notification-push-token").PartialDB & import("./db/tables/did-cache").PartialDB & import("./db/tables/
|
|
7
|
+
}) => import("kysely/dist/cjs/parser/with-parser").QueryCreatorWithCommonTableExpression<import("./db/database-schema").DatabaseSchemaType, "descendent(uri, depth)", (cte: import("kysely").QueryCreator<import("./db/tables/duplicate-record").PartialDB & import("./db/tables/profile").PartialDB & import("./db/tables/profile-agg").PartialDB & import("./db/tables/post").PartialDB & import("./db/tables/post-embed").PartialDB & import("./db/tables/post-agg").PartialDB & import("./db/tables/repost").PartialDB & import("./db/tables/thread-gate").PartialDB & import("./db/tables/feed-item").PartialDB & import("./db/tables/follow").PartialDB & import("./db/tables/like").PartialDB & import("./db/tables/list").PartialDB & import("./db/tables/list-item").PartialDB & import("./db/tables/list-mute").PartialDB & import("./db/tables/list-block").PartialDB & import("./db/tables/mute").PartialDB & import("./db/tables/actor-block").PartialDB & import("./db/tables/feed-generator").PartialDB & import("./db/tables/subscription").PartialDB & import("./db/tables/actor").PartialDB & import("./db/tables/actor-state").PartialDB & import("./db/tables/actor-sync").PartialDB & import("./db/tables/record").PartialDB & import("./db/tables/notification").PartialDB & import("./db/tables/notification-push-token").PartialDB & import("./db/tables/did-cache").PartialDB & import("./db/tables/label").PartialDB & import("./db/tables/algo").PartialDB & import("./db/tables/view-param").PartialDB & import("./db/tables/suggested-follow").PartialDB & import("./db/tables/suggested-feed").PartialDB & import("./db/tables/blob-takedown").PartialDB & import("./db/tables/labeler").PartialDB & import("./db/tables/tagged-suggestion").PartialDB & Record<"descendent", {
|
|
8
8
|
uri: any;
|
|
9
9
|
depth: any;
|
|
10
|
-
}>>) => import("kysely").SelectQueryBuilder<import("kysely/dist/cjs/parser/table-parser").From<import("./db/tables/duplicate-record").PartialDB & import("./db/tables/profile").PartialDB & import("./db/tables/profile-agg").PartialDB & import("./db/tables/post").PartialDB & import("./db/tables/post-embed").PartialDB & import("./db/tables/post-agg").PartialDB & import("./db/tables/repost").PartialDB & import("./db/tables/thread-gate").PartialDB & import("./db/tables/feed-item").PartialDB & import("./db/tables/follow").PartialDB & import("./db/tables/like").PartialDB & import("./db/tables/list").PartialDB & import("./db/tables/list-item").PartialDB & import("./db/tables/list-mute").PartialDB & import("./db/tables/list-block").PartialDB & import("./db/tables/mute").PartialDB & import("./db/tables/actor-block").PartialDB & import("./db/tables/feed-generator").PartialDB & import("./db/tables/subscription").PartialDB & import("./db/tables/actor").PartialDB & import("./db/tables/actor-state").PartialDB & import("./db/tables/actor-sync").PartialDB & import("./db/tables/record").PartialDB & import("./db/tables/notification").PartialDB & import("./db/tables/notification-push-token").PartialDB & import("./db/tables/did-cache").PartialDB & import("./db/tables/
|
|
10
|
+
}>>) => import("kysely").SelectQueryBuilder<import("kysely/dist/cjs/parser/table-parser").From<import("./db/tables/duplicate-record").PartialDB & import("./db/tables/profile").PartialDB & import("./db/tables/profile-agg").PartialDB & import("./db/tables/post").PartialDB & import("./db/tables/post-embed").PartialDB & import("./db/tables/post-agg").PartialDB & import("./db/tables/repost").PartialDB & import("./db/tables/thread-gate").PartialDB & import("./db/tables/feed-item").PartialDB & import("./db/tables/follow").PartialDB & import("./db/tables/like").PartialDB & import("./db/tables/list").PartialDB & import("./db/tables/list-item").PartialDB & import("./db/tables/list-mute").PartialDB & import("./db/tables/list-block").PartialDB & import("./db/tables/mute").PartialDB & import("./db/tables/actor-block").PartialDB & import("./db/tables/feed-generator").PartialDB & import("./db/tables/subscription").PartialDB & import("./db/tables/actor").PartialDB & import("./db/tables/actor-state").PartialDB & import("./db/tables/actor-sync").PartialDB & import("./db/tables/record").PartialDB & import("./db/tables/notification").PartialDB & import("./db/tables/notification-push-token").PartialDB & import("./db/tables/did-cache").PartialDB & import("./db/tables/label").PartialDB & import("./db/tables/algo").PartialDB & import("./db/tables/view-param").PartialDB & import("./db/tables/suggested-follow").PartialDB & import("./db/tables/suggested-feed").PartialDB & import("./db/tables/blob-takedown").PartialDB & import("./db/tables/labeler").PartialDB & import("./db/tables/tagged-suggestion").PartialDB & Record<"descendent", {
|
|
11
11
|
uri: any;
|
|
12
12
|
depth: any;
|
|
13
|
-
}>, "post">, "post", import("kysely").Selection<import("kysely/dist/cjs/parser/table-parser").From<import("./db/tables/duplicate-record").PartialDB & import("./db/tables/profile").PartialDB & import("./db/tables/profile-agg").PartialDB & import("./db/tables/post").PartialDB & import("./db/tables/post-embed").PartialDB & import("./db/tables/post-agg").PartialDB & import("./db/tables/repost").PartialDB & import("./db/tables/thread-gate").PartialDB & import("./db/tables/feed-item").PartialDB & import("./db/tables/follow").PartialDB & import("./db/tables/like").PartialDB & import("./db/tables/list").PartialDB & import("./db/tables/list-item").PartialDB & import("./db/tables/list-mute").PartialDB & import("./db/tables/list-block").PartialDB & import("./db/tables/mute").PartialDB & import("./db/tables/actor-block").PartialDB & import("./db/tables/feed-generator").PartialDB & import("./db/tables/subscription").PartialDB & import("./db/tables/actor").PartialDB & import("./db/tables/actor-state").PartialDB & import("./db/tables/actor-sync").PartialDB & import("./db/tables/record").PartialDB & import("./db/tables/notification").PartialDB & import("./db/tables/notification-push-token").PartialDB & import("./db/tables/did-cache").PartialDB & import("./db/tables/
|
|
13
|
+
}>, "post">, "post", import("kysely").Selection<import("kysely/dist/cjs/parser/table-parser").From<import("./db/tables/duplicate-record").PartialDB & import("./db/tables/profile").PartialDB & import("./db/tables/profile-agg").PartialDB & import("./db/tables/post").PartialDB & import("./db/tables/post-embed").PartialDB & import("./db/tables/post-agg").PartialDB & import("./db/tables/repost").PartialDB & import("./db/tables/thread-gate").PartialDB & import("./db/tables/feed-item").PartialDB & import("./db/tables/follow").PartialDB & import("./db/tables/like").PartialDB & import("./db/tables/list").PartialDB & import("./db/tables/list-item").PartialDB & import("./db/tables/list-mute").PartialDB & import("./db/tables/list-block").PartialDB & import("./db/tables/mute").PartialDB & import("./db/tables/actor-block").PartialDB & import("./db/tables/feed-generator").PartialDB & import("./db/tables/subscription").PartialDB & import("./db/tables/actor").PartialDB & import("./db/tables/actor-state").PartialDB & import("./db/tables/actor-sync").PartialDB & import("./db/tables/record").PartialDB & import("./db/tables/notification").PartialDB & import("./db/tables/notification-push-token").PartialDB & import("./db/tables/did-cache").PartialDB & import("./db/tables/label").PartialDB & import("./db/tables/algo").PartialDB & import("./db/tables/view-param").PartialDB & import("./db/tables/suggested-follow").PartialDB & import("./db/tables/suggested-feed").PartialDB & import("./db/tables/blob-takedown").PartialDB & import("./db/tables/labeler").PartialDB & import("./db/tables/tagged-suggestion").PartialDB & Record<"descendent", {
|
|
14
14
|
uri: any;
|
|
15
15
|
depth: any;
|
|
16
16
|
}>, "post">, "post", "post.uri as uri" | import("kysely").AliasedRawBuilder<number, "depth">>>>;
|
|
17
17
|
export declare const getAncestorsAndSelfQb: (db: DatabaseSchema, opts: {
|
|
18
18
|
uri: string;
|
|
19
19
|
parentHeight: number;
|
|
20
|
-
}) => import("kysely/dist/cjs/parser/with-parser").QueryCreatorWithCommonTableExpression<import("./db/database-schema").DatabaseSchemaType, "ancestor(uri, ancestorUri, height)", (cte: import("kysely").QueryCreator<import("./db/tables/duplicate-record").PartialDB & import("./db/tables/profile").PartialDB & import("./db/tables/profile-agg").PartialDB & import("./db/tables/post").PartialDB & import("./db/tables/post-embed").PartialDB & import("./db/tables/post-agg").PartialDB & import("./db/tables/repost").PartialDB & import("./db/tables/thread-gate").PartialDB & import("./db/tables/feed-item").PartialDB & import("./db/tables/follow").PartialDB & import("./db/tables/like").PartialDB & import("./db/tables/list").PartialDB & import("./db/tables/list-item").PartialDB & import("./db/tables/list-mute").PartialDB & import("./db/tables/list-block").PartialDB & import("./db/tables/mute").PartialDB & import("./db/tables/actor-block").PartialDB & import("./db/tables/feed-generator").PartialDB & import("./db/tables/subscription").PartialDB & import("./db/tables/actor").PartialDB & import("./db/tables/actor-state").PartialDB & import("./db/tables/actor-sync").PartialDB & import("./db/tables/record").PartialDB & import("./db/tables/notification").PartialDB & import("./db/tables/notification-push-token").PartialDB & import("./db/tables/did-cache").PartialDB & import("./db/tables/
|
|
20
|
+
}) => import("kysely/dist/cjs/parser/with-parser").QueryCreatorWithCommonTableExpression<import("./db/database-schema").DatabaseSchemaType, "ancestor(uri, ancestorUri, height)", (cte: import("kysely").QueryCreator<import("./db/tables/duplicate-record").PartialDB & import("./db/tables/profile").PartialDB & import("./db/tables/profile-agg").PartialDB & import("./db/tables/post").PartialDB & import("./db/tables/post-embed").PartialDB & import("./db/tables/post-agg").PartialDB & import("./db/tables/repost").PartialDB & import("./db/tables/thread-gate").PartialDB & import("./db/tables/feed-item").PartialDB & import("./db/tables/follow").PartialDB & import("./db/tables/like").PartialDB & import("./db/tables/list").PartialDB & import("./db/tables/list-item").PartialDB & import("./db/tables/list-mute").PartialDB & import("./db/tables/list-block").PartialDB & import("./db/tables/mute").PartialDB & import("./db/tables/actor-block").PartialDB & import("./db/tables/feed-generator").PartialDB & import("./db/tables/subscription").PartialDB & import("./db/tables/actor").PartialDB & import("./db/tables/actor-state").PartialDB & import("./db/tables/actor-sync").PartialDB & import("./db/tables/record").PartialDB & import("./db/tables/notification").PartialDB & import("./db/tables/notification-push-token").PartialDB & import("./db/tables/did-cache").PartialDB & import("./db/tables/label").PartialDB & import("./db/tables/algo").PartialDB & import("./db/tables/view-param").PartialDB & import("./db/tables/suggested-follow").PartialDB & import("./db/tables/suggested-feed").PartialDB & import("./db/tables/blob-takedown").PartialDB & import("./db/tables/labeler").PartialDB & import("./db/tables/tagged-suggestion").PartialDB & Record<"ancestor", {
|
|
21
21
|
uri: any;
|
|
22
22
|
ancestorUri: any;
|
|
23
23
|
height: any;
|
|
24
|
-
}>>) => import("kysely").SelectQueryBuilder<import("kysely/dist/cjs/parser/table-parser").From<import("./db/tables/duplicate-record").PartialDB & import("./db/tables/profile").PartialDB & import("./db/tables/profile-agg").PartialDB & import("./db/tables/post").PartialDB & import("./db/tables/post-embed").PartialDB & import("./db/tables/post-agg").PartialDB & import("./db/tables/repost").PartialDB & import("./db/tables/thread-gate").PartialDB & import("./db/tables/feed-item").PartialDB & import("./db/tables/follow").PartialDB & import("./db/tables/like").PartialDB & import("./db/tables/list").PartialDB & import("./db/tables/list-item").PartialDB & import("./db/tables/list-mute").PartialDB & import("./db/tables/list-block").PartialDB & import("./db/tables/mute").PartialDB & import("./db/tables/actor-block").PartialDB & import("./db/tables/feed-generator").PartialDB & import("./db/tables/subscription").PartialDB & import("./db/tables/actor").PartialDB & import("./db/tables/actor-state").PartialDB & import("./db/tables/actor-sync").PartialDB & import("./db/tables/record").PartialDB & import("./db/tables/notification").PartialDB & import("./db/tables/notification-push-token").PartialDB & import("./db/tables/did-cache").PartialDB & import("./db/tables/
|
|
24
|
+
}>>) => import("kysely").SelectQueryBuilder<import("kysely/dist/cjs/parser/table-parser").From<import("./db/tables/duplicate-record").PartialDB & import("./db/tables/profile").PartialDB & import("./db/tables/profile-agg").PartialDB & import("./db/tables/post").PartialDB & import("./db/tables/post-embed").PartialDB & import("./db/tables/post-agg").PartialDB & import("./db/tables/repost").PartialDB & import("./db/tables/thread-gate").PartialDB & import("./db/tables/feed-item").PartialDB & import("./db/tables/follow").PartialDB & import("./db/tables/like").PartialDB & import("./db/tables/list").PartialDB & import("./db/tables/list-item").PartialDB & import("./db/tables/list-mute").PartialDB & import("./db/tables/list-block").PartialDB & import("./db/tables/mute").PartialDB & import("./db/tables/actor-block").PartialDB & import("./db/tables/feed-generator").PartialDB & import("./db/tables/subscription").PartialDB & import("./db/tables/actor").PartialDB & import("./db/tables/actor-state").PartialDB & import("./db/tables/actor-sync").PartialDB & import("./db/tables/record").PartialDB & import("./db/tables/notification").PartialDB & import("./db/tables/notification-push-token").PartialDB & import("./db/tables/did-cache").PartialDB & import("./db/tables/label").PartialDB & import("./db/tables/algo").PartialDB & import("./db/tables/view-param").PartialDB & import("./db/tables/suggested-follow").PartialDB & import("./db/tables/suggested-feed").PartialDB & import("./db/tables/blob-takedown").PartialDB & import("./db/tables/labeler").PartialDB & import("./db/tables/tagged-suggestion").PartialDB & Record<"ancestor", {
|
|
25
25
|
uri: any;
|
|
26
26
|
ancestorUri: any;
|
|
27
27
|
height: any;
|
|
28
|
-
}>, "post">, "post", import("kysely").Selection<import("kysely/dist/cjs/parser/table-parser").From<import("./db/tables/duplicate-record").PartialDB & import("./db/tables/profile").PartialDB & import("./db/tables/profile-agg").PartialDB & import("./db/tables/post").PartialDB & import("./db/tables/post-embed").PartialDB & import("./db/tables/post-agg").PartialDB & import("./db/tables/repost").PartialDB & import("./db/tables/thread-gate").PartialDB & import("./db/tables/feed-item").PartialDB & import("./db/tables/follow").PartialDB & import("./db/tables/like").PartialDB & import("./db/tables/list").PartialDB & import("./db/tables/list-item").PartialDB & import("./db/tables/list-mute").PartialDB & import("./db/tables/list-block").PartialDB & import("./db/tables/mute").PartialDB & import("./db/tables/actor-block").PartialDB & import("./db/tables/feed-generator").PartialDB & import("./db/tables/subscription").PartialDB & import("./db/tables/actor").PartialDB & import("./db/tables/actor-state").PartialDB & import("./db/tables/actor-sync").PartialDB & import("./db/tables/record").PartialDB & import("./db/tables/notification").PartialDB & import("./db/tables/notification-push-token").PartialDB & import("./db/tables/did-cache").PartialDB & import("./db/tables/
|
|
28
|
+
}>, "post">, "post", import("kysely").Selection<import("kysely/dist/cjs/parser/table-parser").From<import("./db/tables/duplicate-record").PartialDB & import("./db/tables/profile").PartialDB & import("./db/tables/profile-agg").PartialDB & import("./db/tables/post").PartialDB & import("./db/tables/post-embed").PartialDB & import("./db/tables/post-agg").PartialDB & import("./db/tables/repost").PartialDB & import("./db/tables/thread-gate").PartialDB & import("./db/tables/feed-item").PartialDB & import("./db/tables/follow").PartialDB & import("./db/tables/like").PartialDB & import("./db/tables/list").PartialDB & import("./db/tables/list-item").PartialDB & import("./db/tables/list-mute").PartialDB & import("./db/tables/list-block").PartialDB & import("./db/tables/mute").PartialDB & import("./db/tables/actor-block").PartialDB & import("./db/tables/feed-generator").PartialDB & import("./db/tables/subscription").PartialDB & import("./db/tables/actor").PartialDB & import("./db/tables/actor-state").PartialDB & import("./db/tables/actor-sync").PartialDB & import("./db/tables/record").PartialDB & import("./db/tables/notification").PartialDB & import("./db/tables/notification-push-token").PartialDB & import("./db/tables/did-cache").PartialDB & import("./db/tables/label").PartialDB & import("./db/tables/algo").PartialDB & import("./db/tables/view-param").PartialDB & import("./db/tables/suggested-follow").PartialDB & import("./db/tables/suggested-feed").PartialDB & import("./db/tables/blob-takedown").PartialDB & import("./db/tables/labeler").PartialDB & import("./db/tables/tagged-suggestion").PartialDB & Record<"ancestor", {
|
|
29
29
|
uri: any;
|
|
30
30
|
ancestorUri: any;
|
|
31
31
|
height: any;
|
|
@@ -9,6 +9,7 @@ export type Actor = {
|
|
|
9
9
|
profileTakedownRef?: string;
|
|
10
10
|
sortedAt?: Date;
|
|
11
11
|
takedownRef?: string;
|
|
12
|
+
isLabeler: boolean;
|
|
12
13
|
};
|
|
13
14
|
export type Actors = HydrationMap<Actor>;
|
|
14
15
|
export type ProfileViewerState = {
|
|
@@ -26,6 +27,8 @@ export type ProfileAgg = {
|
|
|
26
27
|
followers: number;
|
|
27
28
|
follows: number;
|
|
28
29
|
posts: number;
|
|
30
|
+
lists: number;
|
|
31
|
+
feeds: number;
|
|
29
32
|
};
|
|
30
33
|
export type ProfileAggs = HydrationMap<ProfileAgg>;
|
|
31
34
|
export declare class ActorHydrator {
|
|
@@ -2,11 +2,17 @@ import { DataPlaneClient } from '../data-plane/client';
|
|
|
2
2
|
import { Notification } from '../proto/bsky_pb';
|
|
3
3
|
import { ActorHydrator, ProfileAggs, Actors, ProfileViewerStates } from './actor';
|
|
4
4
|
import { Follows, GraphHydrator, ListItems, ListViewerStates, Lists } from './graph';
|
|
5
|
-
import { LabelHydrator, Labels } from './label';
|
|
5
|
+
import { LabelHydrator, LabelerAggs, LabelerViewerStates, Labelers, Labels } from './label';
|
|
6
6
|
import { HydrationMap, RecordInfo } from './util';
|
|
7
7
|
import { FeedGenAggs, FeedGens, FeedGenViewerStates, FeedHydrator, Likes, Posts, Reposts, PostAggs, PostViewerStates, Threadgates, FeedItem, ItemRef } from './feed';
|
|
8
|
+
import { ParsedLabelers } from '../util';
|
|
9
|
+
export type HydrateCtx = {
|
|
10
|
+
labelers: ParsedLabelers;
|
|
11
|
+
viewer: string | null;
|
|
12
|
+
includeTakedowns?: boolean;
|
|
13
|
+
};
|
|
8
14
|
export type HydrationState = {
|
|
9
|
-
|
|
15
|
+
ctx?: HydrateCtx;
|
|
10
16
|
actors?: Actors;
|
|
11
17
|
profileViewers?: ProfileViewerStates;
|
|
12
18
|
profileAggs?: ProfileAggs;
|
|
@@ -26,6 +32,9 @@ export type HydrationState = {
|
|
|
26
32
|
feedgens?: FeedGens;
|
|
27
33
|
feedgenViewers?: FeedGenViewerStates;
|
|
28
34
|
feedgenAggs?: FeedGenAggs;
|
|
35
|
+
labelers?: Labelers;
|
|
36
|
+
labelerViewers?: LabelerViewerStates;
|
|
37
|
+
labelerAggs?: LabelerAggs;
|
|
29
38
|
};
|
|
30
39
|
export type PostBlock = {
|
|
31
40
|
embed: boolean;
|
|
@@ -36,32 +45,28 @@ export type FollowBlock = boolean;
|
|
|
36
45
|
export type FollowBlocks = HydrationMap<FollowBlock>;
|
|
37
46
|
export declare class Hydrator {
|
|
38
47
|
dataplane: DataPlaneClient;
|
|
39
|
-
opts?: {
|
|
40
|
-
labelsFromIssuerDids?: string[] | undefined;
|
|
41
|
-
} | undefined;
|
|
42
48
|
actor: ActorHydrator;
|
|
43
49
|
feed: FeedHydrator;
|
|
44
50
|
graph: GraphHydrator;
|
|
45
51
|
label: LabelHydrator;
|
|
46
|
-
constructor(dataplane: DataPlaneClient
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
hydrateListItems(uris: string[], viewer: string | null): Promise<HydrationState>;
|
|
56
|
-
hydratePosts(refs: ItemRef[], viewer: string | null, includeTakedowns?: boolean, state?: HydrationState): Promise<HydrationState>;
|
|
52
|
+
constructor(dataplane: DataPlaneClient);
|
|
53
|
+
hydrateProfileViewers(dids: string[], ctx: HydrateCtx): Promise<HydrationState>;
|
|
54
|
+
hydrateProfiles(dids: string[], ctx: HydrateCtx): Promise<HydrationState>;
|
|
55
|
+
hydrateProfilesBasic(dids: string[], ctx: HydrateCtx): Promise<HydrationState>;
|
|
56
|
+
hydrateProfilesDetailed(dids: string[], ctx: HydrateCtx): Promise<HydrationState>;
|
|
57
|
+
hydrateLists(uris: string[], ctx: HydrateCtx): Promise<HydrationState>;
|
|
58
|
+
hydrateListsBasic(uris: string[], ctx: HydrateCtx): Promise<HydrationState>;
|
|
59
|
+
hydrateListItems(uris: string[], ctx: HydrateCtx): Promise<HydrationState>;
|
|
60
|
+
hydratePosts(refs: ItemRef[], ctx: HydrateCtx, state?: HydrationState): Promise<HydrationState>;
|
|
57
61
|
private hydratePostBlocks;
|
|
58
|
-
hydrateFeedItems(items: FeedItem[],
|
|
59
|
-
hydrateThreadPosts(refs: ItemRef[],
|
|
60
|
-
hydrateFeedGens(uris: string[],
|
|
61
|
-
hydrateLikes(uris: string[],
|
|
62
|
-
hydrateReposts(uris: string[],
|
|
63
|
-
hydrateNotifications(notifs: Notification[],
|
|
62
|
+
hydrateFeedItems(items: FeedItem[], ctx: HydrateCtx): Promise<HydrationState>;
|
|
63
|
+
hydrateThreadPosts(refs: ItemRef[], ctx: HydrateCtx): Promise<HydrationState>;
|
|
64
|
+
hydrateFeedGens(uris: string[], ctx: HydrateCtx): Promise<HydrationState>;
|
|
65
|
+
hydrateLikes(uris: string[], ctx: HydrateCtx): Promise<HydrationState>;
|
|
66
|
+
hydrateReposts(uris: string[], ctx: HydrateCtx): Promise<HydrationState>;
|
|
67
|
+
hydrateNotifications(notifs: Notification[], ctx: HydrateCtx): Promise<HydrationState>;
|
|
64
68
|
hydrateFollows(uris: string[]): Promise<HydrationState>;
|
|
69
|
+
hydrateLabelers(dids: string[], ctx: HydrateCtx): Promise<HydrationState>;
|
|
65
70
|
getRecord(uri: string, includeTakedowns?: boolean): Promise<RecordInfo<Record<string, unknown>> | undefined>;
|
|
66
71
|
}
|
|
67
72
|
export declare const mergeStates: (stateA: HydrationState, stateB: HydrationState) => HydrationState;
|
|
@@ -1,15 +1,29 @@
|
|
|
1
1
|
import { DataPlaneClient } from '../data-plane/client';
|
|
2
2
|
import { Label } from '../lexicon/types/com/atproto/label/defs';
|
|
3
|
-
import {
|
|
3
|
+
import { Record as LabelerRecord } from '../lexicon/types/app/bsky/labeler/service';
|
|
4
|
+
import { HydrationMap, RecordInfo } from './util';
|
|
5
|
+
import { ParsedLabelers } from '../util';
|
|
4
6
|
export type { Label } from '../lexicon/types/com/atproto/label/defs';
|
|
5
|
-
export type
|
|
7
|
+
export type SubjectLabels = {
|
|
8
|
+
isTakendown: boolean;
|
|
9
|
+
labels: Label[];
|
|
10
|
+
};
|
|
11
|
+
export type Labels = HydrationMap<SubjectLabels>;
|
|
12
|
+
export type LabelerAgg = {
|
|
13
|
+
likes: number;
|
|
14
|
+
};
|
|
15
|
+
export type LabelerAggs = HydrationMap<LabelerAgg>;
|
|
16
|
+
export type Labeler = RecordInfo<LabelerRecord>;
|
|
17
|
+
export type Labelers = HydrationMap<Labeler>;
|
|
18
|
+
export type LabelerViewerState = {
|
|
19
|
+
like?: string;
|
|
20
|
+
};
|
|
21
|
+
export type LabelerViewerStates = HydrationMap<LabelerViewerState>;
|
|
6
22
|
export declare class LabelHydrator {
|
|
7
23
|
dataplane: DataPlaneClient;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
} | undefined);
|
|
14
|
-
getLabelsForSubjects(subjects: string[], issuers?: string[]): Promise<Labels>;
|
|
24
|
+
constructor(dataplane: DataPlaneClient);
|
|
25
|
+
getLabelsForSubjects(subjects: string[], labelers: ParsedLabelers): Promise<Labels>;
|
|
26
|
+
getLabelers(dids: string[], includeTakedowns?: boolean): Promise<Labelers>;
|
|
27
|
+
getLabelerViewerStates(dids: string[], viewer: string): Promise<LabelerViewerStates>;
|
|
28
|
+
getLabelerAggregates(dids: string[]): Promise<LabelerAggs>;
|
|
15
29
|
}
|