UNPKG

@atproto/repo

Version:

atproto repo and MST implementation

45 lines 1.75 kB
import type { Readable } from 'node:stream'; import { check } from '@atproto/common-web'; import { Cid, LexMap } from '@atproto/lex-data'; import { BlockMap } from '../block-map.js'; import { CommitData } from '../types.js'; export interface RepoStorage { getRoot(): Promise<Cid | null>; putBlock(cid: Cid, block: Uint8Array, rev: string): Promise<void>; putMany(blocks: BlockMap, rev: string): Promise<void>; updateRoot(cid: Cid, rev: string): Promise<void>; applyCommit(commit: CommitData): any; getBytes(cid: Cid): Promise<Uint8Array | null>; has(cid: Cid): Promise<boolean>; getBlocks(cids: Cid[]): Promise<{ blocks: BlockMap; missing: Cid[]; }>; attemptRead<T>(cid: Cid, def: check.Def<T>): Promise<{ obj: T; bytes: Uint8Array; } | null>; readObjAndBytes<T>(cid: Cid, def: check.Def<T>): Promise<{ obj: T; bytes: Uint8Array; }>; readObj<T>(cid: Cid, def: check.Def<T>): Promise<T>; attemptReadRecord(cid: Cid): Promise<LexMap | null>; readRecord(cid: Cid): Promise<LexMap>; } export interface BlobStore { putTemp(bytes: Uint8Array | Readable): Promise<string>; makePermanent(key: string, cid: Cid): Promise<void>; putPermanent(cid: Cid, bytes: Uint8Array | Readable): Promise<void>; quarantine(cid: Cid): Promise<void>; unquarantine(cid: Cid): Promise<void>; getBytes(cid: Cid): Promise<Uint8Array>; getStream(cid: Cid): Promise<Readable>; hasTemp(key: string): Promise<boolean>; hasStored(cid: Cid): Promise<boolean>; delete(cid: Cid): Promise<void>; deleteMany(cid: Cid[]): Promise<void>; } export declare class BlobNotFoundError extends Error { } //# sourceMappingURL=types.d.ts.map