heimdall-tide
Version:
SDK for communicating with a Tide Enclave
58 lines (57 loc) • 1.6 kB
TypeScript
export interface HeimdallConstructor {
vendorId: string;
homeOrkOrigin: string;
voucherURL: string;
signed_client_origin: string;
}
export declare abstract class Heimdall<T> implements EnclaveFlow<T> {
name: string;
_windowType: windowType;
enclaveOrigin: string;
voucherURL: string;
signed_client_origin: string;
vendorId: string;
private enclaveWindow;
constructor(init: HeimdallConstructor);
enclaveClosed(): boolean;
getOrkUrl(): URL;
open(): Promise<boolean>;
send(data: any): void;
recieve(type: string): Promise<any>;
close(): void;
onerror(data: any): void;
private openPopUp;
private closeHiddenIframe;
private openHiddenIframe;
private closePopupEnclave;
private waitForWindowPostMessage;
private sendPostWindowMessage;
private processEvent;
}
export declare enum windowType {
Popup = 0,
Redirect = 1,
Hidden = 2
}
export interface HiddenInit {
doken: string;
/**
* @returns A refresh doken for Heimdall
*/
dokenRefreshCallback: () => Promise<string> | undefined;
/**
* @returns A function that re authenticates the current user from the client. (Used to update their session key on Identity System). Returns a new doken too.
*/
requireReloginCallback: () => Promise<string>;
}
interface EnclaveFlow<T> {
name: string;
_windowType: windowType;
open(): Promise<boolean>;
send(data: any): void;
recieve(type: string): Promise<any>;
close(): void;
onerror(data: any): void;
getOrkUrl(): URL;
}
export {};