@j2blasco/ts-auth
Version:
TypeScript authentication abstraction library that eliminates vendor lock-in and provides mock-free testing for both frontend and backend authentication systems
33 lines (32 loc) • 1.64 kB
TypeScript
import { Observable } from 'rxjs';
import { ErrorWithCode, ErrorUnknown, Result, SuccessVoid } from '@j2blasco/ts-result';
import { IAuthFrontend, BackendAuthUser, UserId } from '../../core/auth-frontend.interface';
export declare class AuthFrontendTesting implements IAuthFrontend {
private users;
private currentUser;
private authState;
private passwordResetTokens;
private rateLimitTracker;
private idTokens;
constructor();
addTestUser(email: string, password: string, uid?: string): UserId;
getPasswordResetTokens(): string[];
get authState$(): Observable<BackendAuthUser | null | undefined>;
signInWithEmailAndPassword(args: {
email: string;
password: string;
persistent: boolean;
}): Promise<Result<SuccessVoid, ErrorWithCode<'invalid-email'> | ErrorWithCode<'user-not-found'> | ErrorWithCode<'wrong-password'> | ErrorUnknown>>;
getIdToken(): Promise<string>;
signOut(): Promise<void>;
isEmailAvailable(email: string): Promise<boolean>;
changeEmail(email: string): Promise<Result<void, ErrorWithCode<'email-not-available'> | ErrorUnknown>>;
triggerResetPasswordFlow(email: string): Promise<Result<SuccessVoid, ErrorWithCode<'rate-limit-exceeded'> | ErrorWithCode<'email-not-in-database'> | ErrorUnknown>>;
requestChangePassword(args: {
passwordToken: string;
newPassword: string;
}): Promise<Result<SuccessVoid, ErrorWithCode<'token-expired'> | ErrorWithCode<'token-not-found'> | ErrorUnknown>>;
deleteAccount(): Promise<void>;
signUp(email: string, password: string): Promise<UserId>;
private isValidEmail;
}