UNPKG

@useorbis/db-sdk

Version:

Orbis' Typescript SDK for building open-data experiences.

49 lines (48 loc) 1.8 kB
import { StreamID } from "@ceramicnetwork/streamid"; import { DIDAny } from "./common.js"; import { ModelInstanceDocument } from "@ceramicnetwork/stream-model-instance"; import { SupportedChains } from "./providers.js"; import { ISiwxAuth, AuthUserInformation, IDidAuth } from "./auth.js"; import { SiwxMessage } from "@didtools/cacao"; import { KeyDidSession } from "../auth/keyDid.js"; import { DIDSession } from "did-session"; export type CeramicDocument = { id: string; content: Record<string, any>; controller: DIDAny; model: string; context?: string; metadata: Record<string, any>; }; export type NewCeramicDocument = { content: Record<string, any>; model: StreamID | string; context?: StreamID | string; metadata?: Record<string, any>; }; export interface ICeramicStorage { id: string; userFriendlyName: string; supportedChains: Array<SupportedChains>; user?: AuthUserInformation; session: KeyDidSession | DIDSession | false; connect(params?: any): Promise<void>; authorize({ authenticator, siwxOverwrites, }: { authenticator: ISiwxAuth | IDidAuth; siwxOverwrites?: Partial<SiwxMessage>; }): Promise<any>; setSession({ session, did, }: { session: string; did?: DIDAny; }): Promise<KeyDidSession | DIDSession>; clearSession(): Promise<void>; assertCurrentUser(did: DIDAny): Promise<boolean>; getDocument(id: string): Promise<CeramicDocument>; createDocument(params: NewCeramicDocument): Promise<{ id: string; }>; updateDocument(id: string, params: Record<string, any>): Promise<{ id: string; }>; updateDocumentBySetter(id: string, setter: (document: ModelInstanceDocument) => Promise<Record<string, any>>): Promise<CeramicDocument>; }