@prettyfluid/zentinel
Version:
Integration helper for Zentinel
99 lines (98 loc) • 3.05 kB
TypeScript
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;