supertokens-node
Version:
NodeJS driver for SuperTokens core
194 lines (193 loc) • 6.55 kB
TypeScript
import { TypeProvider } from "../thirdparty/types";
import { TypeInput as TypeNormalisedInputEmailVerification } from "../emailverification/types";
import { NormalisedFormField, TypeFormField, TypeInputFormField, TypeInputResetPasswordUsingTokenFeature } from "../emailpassword/types";
export declare type User = {
id: string;
timeJoined: number;
email: string;
thirdParty?: {
id: string;
userId: string;
};
};
export declare type TypeContextEmailPasswordSignUp = {
loginType: "emailpassword";
formFields: TypeFormField[];
};
export declare type TypeContextEmailPasswordSessionDataAndJWT = {
loginType: "emailpassword";
formFields: TypeFormField[];
};
export declare type TypeContextEmailPasswordSignIn = {
loginType: "emailpassword";
};
export declare type TypeContextThirdParty = {
loginType: "thirdparty";
thirdPartyAuthCodeResponse: any;
};
export declare type TypeInputHandlePostSignUp = (user: User, context: TypeContextEmailPasswordSignUp | TypeContextThirdParty) => Promise<void>;
export declare type TypeInputHandlePostSignIn = (user: User, context: TypeContextEmailPasswordSignIn | TypeContextThirdParty) => Promise<void>;
export declare type TypeInputSetJwtPayloadForSession = (user: User, context: TypeContextEmailPasswordSessionDataAndJWT | TypeContextThirdParty, action: "signin" | "signup") => Promise<{
[key: string]: any;
} | undefined>;
export declare type TypeInputSetSessionDataForSession = (user: User, context: TypeContextEmailPasswordSessionDataAndJWT | TypeContextThirdParty, action: "signin" | "signup") => Promise<{
[key: string]: any;
} | undefined>;
export declare type TypeInputSessionFeature = {
setJwtPayload?: TypeInputSetJwtPayloadForSession;
setSessionData?: TypeInputSetSessionDataForSession;
};
export declare type TypeNormalisedInputSessionFeature = {
setJwtPayload: TypeInputSetJwtPayloadForSession;
setSessionData: TypeInputSetSessionDataForSession;
};
export declare type TypeInputSignUp = {
disableDefaultImplementation?: boolean;
formFields?: TypeInputFormField[];
handlePostSignUp?: TypeInputHandlePostSignUp;
};
export declare type TypeNormalisedInputSignUp = {
disableDefaultImplementation: boolean;
formFields: NormalisedFormField[];
handlePostSignUp: TypeInputHandlePostSignUp;
};
export declare type TypeInputSignIn = {
disableDefaultImplementation?: boolean;
handlePostSignIn?: TypeInputHandlePostSignIn;
};
export declare type TypeNormalisedInputSignIn = {
disableDefaultImplementation: boolean;
handlePostSignIn: TypeInputHandlePostSignIn;
};
export declare type TypeInputSignOut = {
disableDefaultImplementation?: boolean;
};
export declare type TypeNormalisedInputSignOut = {
disableDefaultImplementation: boolean;
};
export declare type TypeInputEmailVerificationFeature = {
disableDefaultImplementation?: boolean;
getEmailVerificationURL?: (user: User) => Promise<string>;
createAndSendCustomEmail?: (user: User, emailVerificationURLWithToken: string) => Promise<void>;
handlePostEmailVerification?: (user: User) => Promise<void>;
};
export declare type TypeInput = {
sessionFeature?: TypeInputSessionFeature;
signUpFeature?: TypeInputSignUp;
signInFeature?: TypeInputSignIn;
providers?: TypeProvider[];
signOutFeature?: TypeInputSignOut;
resetPasswordUsingTokenFeature?: TypeInputResetPasswordUsingTokenFeature;
emailVerificationFeature?: TypeInputEmailVerificationFeature;
};
export declare const InputSchema: {
sessionFeature: {
type: string;
properties: {
setJwtPayload: {
type: string;
};
setSessionData: {
type: string;
};
};
additionalProperties: boolean;
};
signUpFeature: {
type: string;
properties: {
disableDefaultImplementation: {
type: string;
};
formFields: {
type: string;
items: {
type: string;
properties: {
id: {
type: string;
};
validate: {
type: string;
};
optional: {
type: string;
};
};
required: string[];
additionalProperties: boolean;
};
};
handlePostSignUp: {
type: string;
};
};
additionalProperties: boolean;
};
signInFeature: {
type: string;
properties: {
disableDefaultImplementation: {
type: string;
};
handlePostSignIn: {
type: string;
};
};
additionalProperties: boolean;
};
providers: {
type: string;
};
signOutFeature: {
type: string;
properties: {
disableDefaultImplementation: {
type: string;
};
};
additionalProperties: boolean;
};
resetPasswordUsingTokenFeature: {
type: string;
properties: {
disableDefaultImplementation: {
type: string;
};
getResetPasswordURL: {
type: string;
};
createAndSendCustomEmail: {
type: string;
};
};
additionalProperties: boolean;
};
emailVerificationFeature: {
type: string;
properties: {
disableDefaultImplementation: {
type: string;
};
getEmailVerificationURL: {
type: string;
};
createAndSendCustomEmail: {
type: string;
};
handlePostEmailVerification: {
type: string;
};
};
additionalProperties: boolean;
};
};
export declare type TypeNormalisedInput = {
sessionFeature: TypeNormalisedInputSessionFeature;
signUpFeature: TypeNormalisedInputSignUp;
signInFeature: TypeNormalisedInputSignIn;
providers: TypeProvider[];
signOutFeature: TypeNormalisedInputSignOut;
resetPasswordUsingTokenFeature?: TypeInputResetPasswordUsingTokenFeature;
emailVerificationFeature: TypeNormalisedInputEmailVerification;
};