UNPKG

@atproto/ozone

Version:

Backend service for moderating the Bluesky network.

73 lines 3.64 kB
import { AppBskyActorDefs, AtpAgent, ComAtprotoRepoGetRecord } from '@atproto/api'; import { Keypair } from '@atproto/crypto'; import { IdResolver } from '@atproto/identity'; import { BlobRef } from '@atproto/lexicon'; import { Database } from '../db'; import { LabelRow } from '../db/schema/label'; import { FeedViewPost } from '../lexicon/types/app/bsky/feed/defs'; import { AccountView } from '../lexicon/types/com/atproto/admin/defs'; import { Label } from '../lexicon/types/com/atproto/label/defs'; import { OutputSchema as ReportOutput } from '../lexicon/types/com/atproto/moderation/createReport'; import { BlobView, ModEventView, ModEventViewDetail, RecordView, RecordViewDetail, RepoView, SubjectStatusView } from '../lexicon/types/tools/ozone/moderation/defs'; import { Un$Typed } from '../lexicon/util'; import { ParsedLabelers } from '../util'; import { ModerationEventRowWithHandle, ModerationSubjectStatusRowWithHandle } from './types'; export type AuthHeaders = { headers: { authorization: string; 'atproto-accept-labelers'?: string; }; }; export declare class ModerationViews { private db; private signingKey; private signingKeyId; private appviewAgent; private appviewAuth; idResolver: IdResolver; devMode?: boolean | undefined; constructor(db: Database, signingKey: Keypair, signingKeyId: number, appviewAgent: AtpAgent, appviewAuth: (method: string) => Promise<AuthHeaders>, idResolver: IdResolver, devMode?: boolean | undefined); getAccoutInfosByDid(dids: string[]): Promise<Map<string, AccountView>>; repos(dids: string[]): Promise<Map<string, RepoView>>; formatEvent(row: ModerationEventRowWithHandle): Un$Typed<ModEventView>; eventDetail(result: ModerationEventRowWithHandle): Promise<ModEventViewDetail>; repoDetails(dids: string[], labelers?: ParsedLabelers): Promise<Map<string, RepoView>>; fetchRecord(params: ComAtprotoRepoGetRecord.QueryParams, appviewAuth: AuthHeaders): Promise<ComAtprotoRepoGetRecord.Response | null>; fetchRecords(subjects: RecordSubject[]): Promise<Map<string, RecordInfo>>; records(subjects: RecordSubject[]): Promise<Map<string, RecordView & { $type?: undefined; moderation: { $type?: undefined; subjectStatus?: SubjectStatusView; }; }>>; recordDetails(subjects: RecordSubject[], labelers?: ParsedLabelers): Promise<Map<string, RecordViewDetail>>; getExternalLabels(subjects: string[], labelers?: ParsedLabelers): Promise<Map<string, Label[]>>; formatReport(report: ModerationEventRowWithHandle): ReportOutput; subject(subject: string): Promise<SubjectView>; blob(blobs: BlobRef[]): Promise<BlobView[]>; labels(subjects: string[], includeNeg?: boolean): Promise<Map<string, Label[]>>; formatLabelAndEnsureSig(row: LabelRow): Promise<Label>; getSubjectStatus(subjects: string[]): Promise<Map<string, ModerationSubjectStatusRowWithHandle>>; formatSubjectStatus(status: ModerationSubjectStatusRowWithHandle): SubjectStatusView; fetchAuthorFeed(actor: string): Promise<FeedViewPost[]>; getProfiles(dids: string[]): Promise<Map<string, AppBskyActorDefs.ProfileViewDetailed>>; } type RecordSubject = { uri: string; cid?: string; }; type SubjectView = ModEventViewDetail['subject']; type RecordInfo = { uri: string; cid: string; value: Record<string, unknown>; indexedAt: string; }; export declare function getSelfLabels(details: { uri: string | null; cid: string | null; record: Record<string, unknown> | null; }): Label[]; export {}; //# sourceMappingURL=views.d.ts.map