UNPKG

@surgbc/egw-writings-shared

Version:

Shared utilities, types, and database schema for EGW Writings MCP servers

33 lines (32 loc) 1.39 kB
import Database from 'better-sqlite3'; import type { Book, Paragraph, SearchHit } from '../types/index.js'; export interface DatabaseConfig { dbPath?: string; enableWAL?: boolean; enableFTS?: boolean; } export declare class EGWDatabase { private db; constructor(config?: DatabaseConfig); private initializeSchema; private initializeFTS; insertLanguage(code: string, name: string, direction?: string): Database.RunResult; getLanguages(): unknown[]; insertBook(book: Book): Database.RunResult; getBooks(languageCode?: string, folderId?: number): unknown[]; getBook(bookId: number): unknown; insertParagraph(paragraph: Paragraph, bookId: number, chapterTitle?: string): Database.RunResult; getParagraphs(bookId: number, limit?: number, offset?: number): unknown[]; search(query: string, limit?: number, offset?: number): SearchHit[]; searchCount(query: string): number; createDownloadTask(taskType: string, languageCode?: string, folderId?: number, bookId?: number, totalItems?: number): number | bigint; updateDownloadProgress(taskId: number, completedItems: number, status?: string, errorMessage?: string): Database.RunResult; getDownloadProgress(): unknown[]; getStats(): { languages: number; books: number; paragraphs: number; downloadedBooks: number; }; close(): void; }