UNPKG

@accounts/graphql-client

Version:

GraphQL client transport for accounts

96 lines (95 loc) 2.62 kB
import { type AccountsClient, type TransportInterface } from '@accounts/client'; import { type CreateUser, type ImpersonationResult, type LoginResult, type User, type CreateUserResult } from '@accounts/types'; import { type DocumentNode } from 'graphql/language'; export interface AuthenticateParams { [key: string]: string | object; } export interface OptionsType { graphQLClient: any; userFieldsFragment?: DocumentNode; } export default class GraphQLClient implements TransportInterface { client: AccountsClient; private options; constructor(options: OptionsType); /** * Create a user with basic user info * * @param {CreateUser} user user object * @returns {Promise<CreateUserResult>} contains user's ID and LoginResult object if autologin is enabled * @memberof GraphQLClient */ createUser(user: CreateUser): Promise<CreateUserResult>; /** * @inheritDoc */ authenticateWithService(service: string, authenticateParams: { [key: string]: string | object; }): Promise<boolean>; /** * @inheritDoc */ loginWithService(service: string, authenticateParams: AuthenticateParams): Promise<LoginResult>; /** * @inheritDoc */ getUser(): Promise<User>; /** * @inheritDoc */ logout(): Promise<void>; /** * @inheritDoc */ refreshTokens(accessToken: string, refreshToken: string): Promise<LoginResult>; /** * @inheritDoc */ verifyEmail(token: string): Promise<void>; /** * @inheritDoc */ sendResetPasswordEmail(email: string): Promise<void>; /** * @inheritDoc */ sendVerificationEmail(email: string): Promise<void>; /** * @inheritDoc */ resetPassword(token: string, newPassword: string): Promise<LoginResult | null>; /** * @inheritDoc */ addEmail(newEmail: string): Promise<void>; /** * @inheritDoc */ changePassword(oldPassword: string, newPassword: string): Promise<void>; /** * @inheritDoc */ getTwoFactorSecret(): Promise<any>; /** * @inheritDoc */ twoFactorSet(secret: any, code: string): Promise<void>; /** * @inheritDoc */ twoFactorUnset(code: string): Promise<void>; /** * @inheritDoc */ impersonate(token: string, impersonated: { username?: string; userId?: string; email?: string; }): Promise<ImpersonationResult>; private mutate; private query; /** * @inheritDoc */ requestMagicLinkEmail(email: string): Promise<void>; }