UNPKG

@prettyfluid/zentinel

Version:

Integration helper for Zentinel

99 lines (98 loc) 3.05 kB
import { ZentinelObject } from "."; import { Question } from ".."; import { ZentinelMessageTypes } from "../../core/message-types"; import { Consumer } from "../auth"; import { Category } from "../categories"; export interface ZentinelRequest<Type extends ZentinelMessageTypes> { messageId: string; type: ZentinelMessageTypes; payload: Type extends keyof ZentinelRequestBodyTypes ? { body: ZentinelRequestBodyType<Type>; options?: any; } : never; } export interface ZentinelRegistration { user: Partial<Consumer> & { email: string; }; password: string; } export interface ZentinelLogin { login: string; password: string; } export declare type ZentinelSaveData = { category: Category; data: ZentinelObject; }; export interface ZentinelSaveDataOptions { shareData: boolean; corporationName: string; } export declare type ZentinelLoadData = { zentinelId: string; category: Category; }; export interface ZentinelEmptyBody { } export declare type ZentinelRequestMessage = ZentinelRequest<ZentinelMessageTypes>; export declare type ZentinelRequestBodyTypes = { [ZentinelMessageTypes.login]: ZentinelLogin; [ZentinelMessageTypes.restoreSession]: { clientId: string; }; [ZentinelMessageTypes.invalidateToken]: { publicKey: string; }; [ZentinelMessageTypes.loadData]: ZentinelLoadData; [ZentinelMessageTypes.saveData]: ZentinelSaveData; [ZentinelMessageTypes.registration]: ZentinelRegistration; [ZentinelMessageTypes.getCategory]: { id: number; }; [ZentinelMessageTypes.confirmEmail]: string; [ZentinelMessageTypes.changePassword]: { login: string; oldPassword?: string; newPassword: string; }; [ZentinelMessageTypes.updateSharing]: ZentinelSaveData; [ZentinelMessageTypes.checkUser]: { email: string; providerId: string; }; [ZentinelMessageTypes.sendConfirmMigrationEmail]: { email: string; providerId: string; zentinelUrl: string; redirectUrl: string; }; [ZentinelMessageTypes.sendConfirmRegistrationEmail]: { email: string; providerId: string; zentinelUrl: string; redirectUrl: string; }; [ZentinelMessageTypes.checkToken]: { token: string; email: string; }; [ZentinelMessageTypes.getProviderLogoUrl]: { providerName: string; }; [ZentinelMessageTypes.initSessionPopup]: any; [ZentinelMessageTypes.setQuestions]: Question[]; [ZentinelMessageTypes.sendRestorationLink]: { email: string; zentinelUrl: string; redirectUrl: string; }; [ZentinelMessageTypes.getMyQuestions]: { token: string; }; [ZentinelMessageTypes.restoreAccount]: { questions: Question[]; login: string; }; }; export declare type ZentinelRequestBodyType<Type extends ZentinelMessageTypes> = Type extends keyof ZentinelRequestBodyTypes ? ZentinelRequestBodyTypes[Type] : never;