@prettyfluid/zentinel
Version:
Integration helper for Zentinel
39 lines (38 loc) • 1.79 kB
TypeScript
import { ZentinelObject, ZentinelRequest } from ".";
import { ZentinelMessageTypes } from "../../core";
import { CheckUser, Consumer, ProviderLogoUrl, Question } from "../auth";
import { Category } from "../categories";
export declare type ZentinelResponse<Type extends ZentinelMessageTypes> = {
messageId: string;
type: ZentinelMessageTypes;
body?: ZentinelResponseBodyType<Type>;
error?: ZentinelError;
};
export interface ZentinelError {
message: string;
errorInstance: Error;
request: ZentinelRequest<ZentinelMessageTypes>;
}
export interface ZentinelResponseBodyTypes {
[ZentinelMessageTypes.login]: Consumer & {
publicKey: string;
};
[ZentinelMessageTypes.restoreSession]: Consumer;
[ZentinelMessageTypes.token]: string;
[ZentinelMessageTypes.initSessionPopup]: Consumer;
[ZentinelMessageTypes.getCategory]: Category;
[ZentinelMessageTypes.loadData]: ZentinelObject;
[ZentinelMessageTypes.saveData]: string;
[ZentinelMessageTypes.registration]: Consumer;
[ZentinelMessageTypes.confirmEmail]: string;
[ZentinelMessageTypes.updateSharing]: boolean;
[ZentinelMessageTypes.checkUser]: CheckUser;
[ZentinelMessageTypes.sendConfirmMigrationEmail]: boolean;
[ZentinelMessageTypes.sendConfirmRegistrationEmail]: boolean;
[ZentinelMessageTypes.checkToken]: boolean;
[ZentinelMessageTypes.getAllQuestions]: Question[];
[ZentinelMessageTypes.getMyQuestions]: Question[];
[ZentinelMessageTypes.getProviderLogoUrl]: ProviderLogoUrl;
}
export declare type ZentinelResponseBodyType<Type extends ZentinelMessageTypes> = Type extends keyof ZentinelResponseBodyTypes ? ZentinelResponseBodyTypes[Type] : never;
export declare type ZentinelResponseMessage = ZentinelResponse<ZentinelMessageTypes>;