errsole-sqlite
Version:
SQLite storage plugin for Errsole
79 lines (66 loc) • 2.3 kB
TypeScript
declare module 'errsole-sqlite' {
import { Database } from 'sqlite3';
interface Config {
id?: number;
key: string;
value: string;
}
interface User {
id?: number;
name: string;
email: string;
role: string;
}
interface Log {
id?: number;
errsole_id?: number;
timestamp: Date;
hostname: string;
pid: number;
source: string;
level: string;
message: string;
meta?: string;
}
interface LogFilter {
lt_id?: number;
gt_id?: number;
lte_timestamp?: Date;
gte_timestamp?: Date;
hostnames?: string[];
level_json?: { source: string; level: string }[];
errsole_id?: number;
limit?: number;
}
interface Notification {
id?: number;
errsole_id: number;
hostname: string;
hashed_message: string;
created_at?: Date;
updated_at?: Date;
}
class ErrsoleSQLite {
constructor(filename: string);
getConfig(key: string): Promise<{ item: Config }>;
setConfig(key: string, value: string): Promise<{ item: Config }>;
deleteConfig(key: string): Promise<{}>;
createUser(user: { name: string; email: string; password: string; role: string }): Promise<{ item: User }>;
verifyUser(email: string, password: string): Promise<{ item: User }>;
getUserCount(): Promise<{ count: number }>;
getAllUsers(): Promise<{ items: User[] }>;
getUserByEmail(email: string): Promise<{ item: User }>;
updateUserByEmail(email: string, updates: Partial<User>): Promise<{ item: User }>;
updatePassword(email: string, currentPassword: string, newPassword: string): Promise<{ item: User }>;
deleteUser(id: number): Promise<{}>;
postLogs(logEntries: Log[]): Promise<{}>;
flushLogs(): Promise<{}>;
getLogs(filters?: LogFilter): Promise<{ items: Log[] }>;
searchLogs(searchTerms: string[], filters?: LogFilter): Promise<{ items: Log[], filters: LogFilter[] }>;
deleteAllLogs(): Promise<{}>;
getMeta(id: number): Promise<{ item: { id: number, meta: string } }>;
insertNotificationItem(notification: Notification): Promise<{ previousNotificationItem: Notification | null, todayNotificationCount: number }>;
getHostnames(): Promise<{ items: string[] }>;
}
export default ErrsoleSQLite;
}