mira-app-server
Version:
Mira Server - standalone server application using mira-app-core
62 lines • 2.13 kB
TypeScript
export interface User {
id: number;
username: string;
password: string;
role: string;
permissions: string[];
created_at: number;
updated_at: number;
is_active: boolean;
email?: string;
}
export interface Session {
token: string;
user_id: number;
created_at: number;
expires_at: number;
is_active: boolean;
}
export declare class UserStorage {
private db;
private dbPath;
constructor(dataDir?: string);
initialize(): Promise<void>;
private createTables;
private createDefaultAdmin;
hashPassword(password: string): string;
private verifyPassword;
generateToken(userId: number): string;
createUser(userData: Omit<User, 'id'>): Promise<number>;
findUserByUsername(username: string): Promise<User | null>;
findUserByUsernameIncludeInactive(username: string): Promise<User | null>;
findUserById(id: number): Promise<User | null>;
authenticateUser(username: string, password: string): Promise<User | null>;
createSession(userId: number, tokenLifetime?: number): Promise<string>;
validateSession(token: string): Promise<User | null>;
revokeSession(token: string): Promise<boolean>;
revokeAllUserSessions(userId: number): Promise<boolean>;
cleanupExpiredSessions(): Promise<number>;
private rowToUser;
getUserInfo(user: User): {
id: number;
username: string;
role: string;
permissions: string[];
created_at: number;
updated_at: number;
is_active: boolean;
email?: string;
};
getAllUsers(): Promise<User[]>;
updateUser(id: number, userData: Partial<Omit<User, 'id' | 'created_at'>>): Promise<boolean>;
softDeleteUser(id: number): Promise<boolean>;
hardDeleteUser(id: number): Promise<boolean>;
deleteInactiveUsers(): Promise<number>;
isUsernameExists(username: string, excludeId?: number): Promise<boolean>;
getUsersWithPermission(permission: string): Promise<User[]>;
private executeSql;
private runSql;
private getSql;
close(): Promise<void>;
}
//# sourceMappingURL=UserStorage.d.ts.map