UNPKG

@accounts/mongo

Version:
46 lines (45 loc) 2.83 kB
import { type CreateIndexesOptions } from 'mongodb'; import { type ConnectionInformations, type CreateUserServicePassword, type DatabaseInterface, type User, type Session } from '@accounts/types'; import { type AccountsMongoOptions } from './types'; export declare class Mongo implements DatabaseInterface { private options; private dbConn; private collection; private sessions; private servicePassword; private serviceMagicLink; constructor(dbConn: any, options?: AccountsMongoOptions); /** * Setup the mongo indexes needed. * @param options Options passed to the mongo native `createIndex` method. */ setupIndexes(options?: Omit<CreateIndexesOptions, 'unique' | 'sparse'>): Promise<void>; findUserById(userId: string): Promise<User | null>; createUser(user: CreateUserServicePassword): Promise<string>; findUserByEmail(email: string): Promise<User | null>; findUserByUsername(username: string): Promise<User | null>; findPasswordHash(userId: string): Promise<string | null>; findUserByEmailVerificationToken(token: string): Promise<User | null>; findUserByResetPasswordToken(token: string): Promise<User | null>; addEmail(userId: string, newEmail: string, verified: boolean): Promise<void>; removeEmail(userId: string, email: string): Promise<void>; verifyEmail(userId: string, email: string): Promise<void>; setUsername(userId: string, newUsername: string): Promise<void>; setPassword(userId: string, newPassword: string): Promise<void>; removeAllResetPasswordTokens(userId: string): Promise<void>; addEmailVerificationToken(userId: string, email: string, token: string): Promise<void>; addResetPasswordToken(userId: string, email: string, token: string, reason: string): Promise<void>; addLoginToken(userId: string, email: string, token: string): Promise<void>; findUserByLoginToken(token: string): Promise<User | null>; removeAllLoginTokens(userId: string): Promise<void>; createSession(userId: string, token: string, connection?: ConnectionInformations, extraData?: object): Promise<string>; findSessionById(sessionId: string): Promise<Session | null>; findSessionByToken(token: string): Promise<Session | null>; updateSession(sessionId: string, connection: ConnectionInformations, newToken?: string): Promise<void>; invalidateSession(sessionId: string): Promise<void>; invalidateAllSessions(userId: string, excludedSessionIds?: string[]): Promise<void>; findUserByServiceId(serviceName: string, serviceId: string): Promise<User | null>; setService(userId: string, serviceName: string, service: object): Promise<void>; unsetService(userId: string, serviceName: string): Promise<void>; setUserDeactivated(userId: string, deactivated: boolean): Promise<void>; }