supertokens-node
Version:
NodeJS driver for SuperTokens core
148 lines (147 loc) • 4.91 kB
TypeScript
import { Request } from "express";
import { TypeInput as TypeNormalisedInputEmailVerification } from "../emailverification/types";
export declare type UserInfo = {
id: string;
email?: {
id: string;
isVerified: boolean;
};
};
export declare type TypeProviderGetResponse = {
accessTokenAPI: {
url: string;
params: {
[key: string]: string;
};
};
authorisationRedirect: {
url: string;
params: {
[key: string]: string | ((request: Request) => string);
};
};
getProfileInfo: (authCodeResponse: any) => Promise<UserInfo>;
};
export declare type TypeProvider = {
id: string;
get: (redirectURI: string | undefined, authCodeFromRequest: string | undefined) => Promise<TypeProviderGetResponse>;
};
export declare type User = {
id: string;
timeJoined: number;
email: string;
thirdParty: {
id: string;
userId: string;
};
};
export declare type TypeInputSetJwtPayloadForSession = (user: User, thirdPartyAuthCodeResponse: any, action: "signin" | "signup") => Promise<{
[key: string]: any;
} | undefined>;
export declare type TypeInputSetSessionDataForSession = (user: User, thirdPartyAuthCodeResponse: any, 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 TypeInputEmailVerificationFeature = {
disableDefaultImplementation?: boolean;
getEmailVerificationURL?: (user: User) => Promise<string>;
createAndSendCustomEmail?: (user: User, emailVerificationURLWithToken: string) => Promise<void>;
handlePostEmailVerification?: (user: User) => Promise<void>;
};
export declare type TypeInputSignInAndUp = {
disableDefaultImplementation?: boolean;
handlePostSignUpIn?: (user: User, thirdPartyAuthCodeResponse: any, newUser: boolean) => Promise<void>;
providers: TypeProvider[];
};
export declare type TypeNormalisedInputSignInAndUp = {
disableDefaultImplementation: boolean;
handlePostSignUpIn: (user: User, thirdPartyAuthCodeResponse: any, newUser: boolean) => Promise<void>;
providers: TypeProvider[];
};
export declare type TypeInputSignOutFeature = {
disableDefaultImplementation?: boolean;
};
export declare type TypeNormalisedInputSignOutFeature = {
disableDefaultImplementation: boolean;
};
export declare type TypeInput = {
sessionFeature?: TypeInputSessionFeature;
signInAndUpFeature: TypeInputSignInAndUp;
signOutFeature?: TypeInputSignOutFeature;
emailVerificationFeature?: TypeInputEmailVerificationFeature;
};
export declare const InputSchema: {
type: string;
properties: {
sessionFeature: {
type: string;
properties: {
setJwtPayload: {
type: string;
};
setSessionData: {
type: string;
};
};
additionalProperties: boolean;
};
signInAndUpFeature: {
type: string;
properties: {
disableDefaultImplementation: {
type: string;
};
providers: {
type: string;
};
handlePostSignUpIn: {
type: string;
};
};
required: string[];
additionalProperties: boolean;
};
signOutFeature: {
type: string;
properties: {
disableDefaultImplementation: {
type: string;
};
};
additionalProperties: boolean;
};
emailVerificationFeature: {
type: string;
properties: {
disableDefaultImplementation: {
type: string;
};
getEmailVerificationURL: {
type: string;
};
createAndSendCustomEmail: {
type: string;
};
handlePostEmailVerification: {
type: string;
};
};
additionalProperties: boolean;
};
};
required: string[];
additionalProperties: boolean;
};
export declare type TypeNormalisedInput = {
sessionFeature: TypeNormalisedInputSessionFeature;
signInAndUpFeature: TypeNormalisedInputSignInAndUp;
signOutFeature: TypeNormalisedInputSignOutFeature;
emailVerificationFeature: TypeNormalisedInputEmailVerification;
};