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
TypeScript
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;
}