@accounts/mikro-orm
Version:
MikroORM adaptor for accounts
51 lines (50 loc) • 3.53 kB
TypeScript
import { type ConnectionInformations, type CreateUser, type DatabaseInterface } from '@accounts/types';
import { type IUser } from './entity/User';
import { Email } from './entity/Email';
import { Service } from './entity/Service';
import { Session } from './entity/Session';
import { type Constructor } from '@mikro-orm/core';
import { type User as AccountsUser } from '@accounts/types/lib/types/user';
import { type Session as ISession } from '@accounts/types/lib/types/session/session';
export declare class AccountsMikroOrm<CustomUser extends IUser<any, any, any>, CustomEmail extends Email<any>, CustomSession extends Session<any>, CustomService extends Service<any>> implements DatabaseInterface {
private context?;
private get em();
private UserEntity;
private EmailEntity;
private ServiceEntity;
private SessionEntity;
private get userRepository();
private get emailRepository();
private get serviceRepository();
private get sessionRepository();
constructor(EmailEntity?: Constructor<CustomEmail | Email<any>>, ServiceEntity?: Constructor<CustomService | Service<any>>, SessionEntity?: Constructor<CustomSession | Session<any>>, UserEntity?: Constructor<CustomUser | IUser<any, any, any>>);
findUserByEmail(email: string): Promise<AccountsUser | null>;
findUserByUsername(username: string): Promise<AccountsUser | null>;
findUserById(userId: string): Promise<AccountsUser | null>;
findUserByResetPasswordToken(token: string): Promise<AccountsUser | null>;
findUserByEmailVerificationToken(token: string): Promise<AccountsUser | null>;
createUser({ username, email, password, ...otherFields }: CreateUser): Promise<string>;
setUsername(userId: string, newUsername: string): Promise<void>;
findUserByServiceId(serviceName: string, serviceId: string): Promise<AccountsUser | null>;
setService(userId: string, serviceName: string, data: object, token?: string, flush?: boolean): Promise<void>;
unsetService(userId: string, serviceName: string): Promise<void>;
findPasswordHash(userId: string): Promise<string | null>;
setPassword(userId: string, newPassword: string, flush?: boolean): Promise<void>;
addResetPasswordToken(userId: string, email: string, token: string, reason: string): Promise<void>;
setResetPassword(userId: string, email: string, newPassword: string): Promise<void>;
addEmail(userId: string, newEmail: string, verified: boolean): Promise<void>;
removeEmail(userId: string, email: string): Promise<void>;
verifyEmail(userId: string, email: string): Promise<void>;
addEmailVerificationToken(userId: string, email: string, token: string): Promise<void>;
removeAllResetPasswordTokens(userId: string): Promise<void>;
setUserDeactivated(userId: string, deactivated: boolean): Promise<void>;
findSessionById(sessionId: string): Promise<ISession | null>;
findSessionByToken(token: string): Promise<ISession | null>;
findUserByLoginToken(token: string): Promise<AccountsUser | null>;
addLoginToken(userId: string, email: string, token: string): Promise<void>;
removeAllLoginTokens(userId: string): Promise<void>;
createSession(userId: string, token: string, connection?: ConnectionInformations, extra?: object): Promise<string>;
updateSession(sessionId: string, connection: ConnectionInformations): Promise<void>;
invalidateSession(sessionId: string): Promise<void>;
invalidateAllSessions(userId: string, excludedSessionIds?: string[]): Promise<void>;
}