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.

101 lines (100 loc) 3.52 kB
export declare enum ViewerMessageType { CONNECTION_SUCCESS = "CONNECTION_SUCCESS", INIT = "INIT", REQUEST_SAVE = "REQUEST_SAVE", REQUEST_CLOSE = "REQUEST_CLOSE", REQUEST_INITIAL_DATA = "REQUEST_INITIAL_DATA", SET_DIRTY = "SET_DIRTY", SEND_CLOSE = "SEND_CLOSE", SEND_EXCEPTION = "SEND_EXCEPTION" } export declare enum CommonClientMessageType { CONNECT = "CONNECT" } export declare enum ViewerClientMessageType { REQUEST_CLOSE = "REQUEST_CLOSE", REQUEST_SAVE = "REQUEST_SAVE", DATA_CHANGE = "DATA_CHANGE", SAVE_ERROR = "SAVE_ERROR", SAVE_SUCCESS = "SAVE_SUCCESS", INIT_ACK = "INIT_ACK" } export declare enum CardClientMessageType { DATA_CHANGE = "DATA_CHANGE", CFS_ERROR = "CFS_ERROR", CFS_WRITE_SUCCESS = "CFS_WRITE_SUCCESS", CFS_FILE_DATA = "CFS_FILE_DATA", CFS_WRITE_FILE_ACK = "CFS_WRITE_FILE_ACK", CFS_READ_FILE_ACK = "CFS_READ_FILE_ACK", CFS_DELETE_FILE_ACK = "CFS_DELETE_FILE_ACK", CFS_LIST_FILES_ACK = "CFS_LIST_FILES_ACK", INIT_ACK = "INIT_ACK", INIT_ERROR = "INIT_ERROR", AF1_DATA_TOKEN_ACK = "AF1_DATA_TOKEN_ACK", ERROR = "ERROR", REFRESH = "REFRESH", LOGGING_ENABLE = "LOGGING_ENABLE", LOGGING_DISABLE = "LOGGING_DISABLE", LOGGING_CLEAR = "LOGGING_CLEAR", LOGGING_GET = "LOGGING_GET" } export declare enum CardMessageType { APP_READY = "APP_READY", INIT = "INIT", CFS_READ_FILE = "CFS_READ_FILE", CFS_WRITE_FILE = "CFS_WRITE_FILE", CFS_DELETE_FILE = "CFS_DELETE_FILE", CFS_LIST_FILES = "CFS_LIST_FILES", FILE_DIRTY = "FILE_DIRTY", OPEN_DEEPLINK = "OPEN_DEEPLINK", AF1_DATA_TOKEN = "AF1_DATA_TOKEN", LOGGING_GET_RET = "LOGGING_GET_RET" } export interface HostInfo { type: string; os?: string; os_ver?: string; app_type?: string; app_ver?: string; [key: string]: any; } export interface HostCapabilities { ver?: string; card_fs?: { ver?: string; [key: string]: any; } | null; [key: string]: any; } export type HostDetails = HostInfo & { capabilities?: HostCapabilities; }; export declare class DomeEmbeddedAppSdk { private readonly targetOrigin; protected isAppReady: boolean; protected port2: MessagePort | null; protected runtimeHost: "android" | "ios" | "webapp" | "unknown"; private parentHostDetails; protected parentCapabilities: HostCapabilities | null; private readonly handleDeepLinkClick; constructor(); private detectHost; private setupDeepLinkInterception; protected emitDeepLink(href: string): boolean; protected updateParentContext(host?: HostInfo | null, capabilities?: HostCapabilities | null): void; getHost(): HostDetails; protected sendMessage(type: ViewerMessageType | CardMessageType, data?: any, binaryData?: ArrayBuffer | ArrayBufferView): void; protected sendAppInit(): void; protected safeInvoke<T extends Record<string, any>>(eventName: keyof T, handlerObj: T, data?: any): void; protected setupParentConnection(): Promise<void>; private setupMessageChannelListener; private notifyConnectionSuccess; private handlePortMessage; protected handleMessage(type: string, data: any): void; protected decodeCborBuffer(buffer: ArrayBuffer | ArrayBufferView): any | null; protected encodeCborMessage(payload: Record<string, unknown>): ArrayBuffer; private toUint8Array; private normalizeBinaryPayload; private buildVersionedMessage; private copyBufferView; }