supertokens-node
    Preparing search index...

    Type Alias RecipeInterface

    type RecipeInterface = {
        associateUserToTenant: (
            input: {
                recipeUserId: RecipeUserId;
                tenantId: string;
                userContext: UserContext;
            },
        ) => Promise<
            | { status: "OK"; wasAlreadyAssociated: boolean }
            | {
                status:
                    | "UNKNOWN_USER_ID_ERROR"
                    | "EMAIL_ALREADY_EXISTS_ERROR"
                    | "PHONE_NUMBER_ALREADY_EXISTS_ERROR"
                    | "THIRD_PARTY_USER_ALREADY_EXISTS_ERROR";
            }
            | { reason: string; status: "ASSOCIATION_NOT_ALLOWED_ERROR" },
        >;
        createOrUpdateTenant: (
            input: {
                config?: {
                    coreConfig?: { [key: string]: any };
                    firstFactors?: string[] | null;
                    requiredSecondaryFactors?: string[] | null;
                };
                tenantId: string;
                userContext: UserContext;
            },
        ) => Promise<{ createdNew: boolean; status: "OK" }>;
        createOrUpdateThirdPartyConfig: (
            input: {
                config: ProviderConfig;
                skipValidation?: boolean;
                tenantId: string;
                userContext: UserContext;
            },
        ) => Promise<{ createdNew: boolean; status: "OK" }>;
        deleteTenant: (
            input: { tenantId: string; userContext: UserContext },
        ) => Promise<{ didExist: boolean; status: "OK" }>;
        deleteThirdPartyConfig: (
            input: {
                tenantId: string;
                thirdPartyId: string;
                userContext: UserContext;
            },
        ) => Promise<{ didConfigExist: boolean; status: "OK" }>;
        disassociateUserFromTenant: (
            input: {
                recipeUserId: RecipeUserId;
                tenantId: string;
                userContext: UserContext;
            },
        ) => Promise<{ status: "OK"; wasAssociated: boolean }>;
        getTenant: (
            input: { tenantId: string; userContext: UserContext },
        ) => Promise<{ status: "OK" } & TenantConfig | undefined>;
        getTenantId: (
            input: { tenantIdFromFrontend: string; userContext: UserContext },
        ) => Promise<string>;
        listAllTenants: (
            input: { userContext: UserContext },
        ) => Promise<
            { status: "OK"; tenants: (TenantConfig & { tenantId: string })[] },
        >;
    }
    Index

    Properties

    associateUserToTenant: (
        input: {
            recipeUserId: RecipeUserId;
            tenantId: string;
            userContext: UserContext;
        },
    ) => Promise<
        | { status: "OK"; wasAlreadyAssociated: boolean }
        | {
            status:
                | "UNKNOWN_USER_ID_ERROR"
                | "EMAIL_ALREADY_EXISTS_ERROR"
                | "PHONE_NUMBER_ALREADY_EXISTS_ERROR"
                | "THIRD_PARTY_USER_ALREADY_EXISTS_ERROR";
        }
        | { reason: string; status: "ASSOCIATION_NOT_ALLOWED_ERROR" },
    >
    createOrUpdateTenant: (
        input: {
            config?: {
                coreConfig?: { [key: string]: any };
                firstFactors?: string[] | null;
                requiredSecondaryFactors?: string[] | null;
            };
            tenantId: string;
            userContext: UserContext;
        },
    ) => Promise<{ createdNew: boolean; status: "OK" }>
    createOrUpdateThirdPartyConfig: (
        input: {
            config: ProviderConfig;
            skipValidation?: boolean;
            tenantId: string;
            userContext: UserContext;
        },
    ) => Promise<{ createdNew: boolean; status: "OK" }>
    deleteTenant: (
        input: { tenantId: string; userContext: UserContext },
    ) => Promise<{ didExist: boolean; status: "OK" }>
    deleteThirdPartyConfig: (
        input: {
            tenantId: string;
            thirdPartyId: string;
            userContext: UserContext;
        },
    ) => Promise<{ didConfigExist: boolean; status: "OK" }>
    disassociateUserFromTenant: (
        input: {
            recipeUserId: RecipeUserId;
            tenantId: string;
            userContext: UserContext;
        },
    ) => Promise<{ status: "OK"; wasAssociated: boolean }>
    getTenant: (
        input: { tenantId: string; userContext: UserContext },
    ) => Promise<{ status: "OK" } & TenantConfig | undefined>
    getTenantId: (
        input: { tenantIdFromFrontend: string; userContext: UserContext },
    ) => Promise<string>
    listAllTenants: (
        input: { userContext: UserContext },
    ) => Promise<
        { status: "OK"; tenants: (TenantConfig & { tenantId: string })[] },
    >