mira-app-server
Version:
Mira Server - standalone server application using mira-app-core
72 lines • 2.91 kB
TypeScript
export type { User } from './types';
import type { User } from './types';
export declare class UserStorage {
private db;
private dbPath;
constructor(dataDir?: string);
initialize(): Promise<void>;
private createTables;
/** 幂等加列:若表已存在但缺 col 列,则 ALTER TABLE ADD COLUMN。 */
private ensureColumn;
private createDefaultAdmin;
hashPassword(password: string): string;
private verifyPassword;
verifyPasswordDirect(password: string, hashedPassword: string): boolean;
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>;
private rowToCookieSite;
listCookieSites(userId: number): Promise<any[]>;
createCookieSite(userId: number, data: {
name: string;
url: string;
remark?: string;
cookies?: any[];
label?: string;
isDefault?: boolean;
}): Promise<any>;
updateCookieSite(userId: number, id: number, data: {
name?: string;
url?: string;
remark?: string;
cookies?: any[];
label?: string;
isDefault?: boolean;
}): Promise<any | null>;
/** 把某用户某 url 下所有组 is_default 置 0,exceptId 对应的除外 */
private clearDefaultForUrl;
/** 把指定组设为该站点的默认组(同 url 其他组自动取消) */
setDefaultCookieSite(userId: number, id: number): Promise<any | null>;
deleteCookieSite(userId: number, id: number): Promise<boolean>;
}
//# sourceMappingURL=UserStorage.d.ts.map