UNPKG

dome-embedded-app-sdk

Version:

Build Dome cards and document viewers with a single SDK. Cards let you extend a dome with custom functionality, while viewers let you render and edit documents inside Dome.

242 lines (241 loc) 5.32 kB
/** * Permissions map keyed by role abbreviations. */ export type CardPermissionsMap = Record<string, string>; /** * Permission codes available to cards. */ export declare enum CardPermission { READ = "r", WRITE = "w", FORWARD = "f", SHARE = "s", DOWNLOAD = "d" } /** * Convenience alias for permission enum. */ export declare const cardPermission: typeof CardPermission; /** * Role metadata for the current user. */ export interface CardUserRole { key?: string; name?: string; description?: string | null; abbr?: string; } /** * Name fields for a user profile. */ export interface CardUserName { prefix?: string; given?: string; middle?: string; family?: string; suffix?: string; } /** * Photo metadata for a user. */ export interface CardUserPhoto { url?: string; [key: string]: any; } /** * Organization details for a user. */ export interface CardUserOrganization { company?: string; department?: string; position?: string; [key: string]: any; } /** * Cover photo metadata for a user profile. */ export interface CardUserCoverPhoto { url?: string; [key: string]: any; } /** * Cover properties for a user profile. */ export interface CardUserCover { photo?: CardUserCoverPhoto; color?: string; [key: string]: any; } /** * User profile payload delivered with onInit. */ export interface CardUser { name?: CardUserName; photo?: CardUserPhoto; organization?: CardUserOrganization; about_me?: string | null; cover?: CardUserCover; iid?: string; mci?: string; user_iuid?: string; iuid?: string; type?: string; label?: string; valid?: boolean; can_delete?: boolean; read_only?: boolean; share_url?: string; getFullName?: () => string; [key: string]: any; } /** * UI metadata passed with init data. */ export interface CardUiProps { theme?: "light" | "dark"; [key: string]: any; } /** * Payload delivered to onInit. */ export interface CardInitData { api_token?: string; iuid?: string; user?: CardUser; perms_v2?: CardPermissionsMap | null; role?: CardUserRole | null; container?: { iuid?: string; [key: string]: any; }; ui?: CardUiProps; [key: string]: any; } /** * Payload delivered to onInitError. */ export interface CardInitErrorPayload { error_code?: string | number; message?: string; [key: string]: any; } /** * Payload delivered when file data changes. */ export type CardFileChangePayload = Record<string, any>; /** * Payload delivered when a refresh is requested. */ export type CardRefreshRequestPayload = Record<string, any>; /** * Callback signature for cardFS updates. */ export type CardFsCallback<T = any> = (payload: T) => void; export declare enum CardFsFileType { TEXT = "text", JSON = "json", BINARY = "binary" } /** * CardFS error codes. */ export declare enum CardFsErrorCode { NO_INTERNET = "NO_INTERNET", NO_PERMISSION = "NO_PERMISSION", NOT_FOUND = "NOT_FOUND", SERVER_ERROR = "SERVER_ERROR", TIMEOUT = "TIMEOUT", INVALID_REQUEST = "INVALID_REQUEST", UNKNOWN = "UNKNOWN" } /** * CardFS error payload. */ export interface CardFsErrorPayload { message: string; code?: CardFsErrorCode; } /** * CardFS read result payload. */ export interface CardFsReadResult { name?: string; iuid?: string | null; object?: any; data?: any; is_dirty?: boolean; is_stale: boolean; is_complete: boolean; } /** * CardFS write update payload. */ export interface CardFsWriteUpdatePayload { status: "uploading" | "completed" | "unknown"; progress?: number; uploaded_bytes?: number; [key: string]: any; } /** * CardFS read update payload. */ export interface CardFsReadUpdatePayload { status: "downloading" | "completed" | "unknown"; progress?: number; downloaded_bytes?: number; [key: string]: any; } /** * CardFS read handler interface. */ export interface CardFsReadHandler { next: CardFsCallback<CardFsReadResult>; error?: CardFsCallback<CardFsErrorPayload>; } /** * CardFS list handler interface. */ export interface CardFsListHandler { next: CardFsCallback<CardFsListResult>; error?: CardFsCallback<CardFsErrorPayload>; } /** * CardFS list result payload. */ export interface CardFsListResult { documents: any[]; is_stale: boolean; is_complete: boolean; is_dirty: boolean; folder_name?: string; folder_iuid?: string; last_index?: number | null; last_page?: number | boolean | null; [key: string]: any; } /** * Event handler interface for card SDK lifecycle events. */ export interface CardEventHandler { onInit: (data: CardInitData) => void; onInitError?: (data: CardInitErrorPayload) => void; onError?: (data: { error_code: string | number; message: string; data: any; }) => void; onFileChange?: (data: CardFileChangePayload) => void; onRefreshRequest?: (data: CardRefreshRequestPayload) => void; } /** * Card key blob v1 payload shape. */ export interface CardKeyBlobV1 { v: number; seed: number; obf: number[]; } /** * Supported card key blob payloads. */ export type CardKeyBlob = CardKeyBlobV1;