UNPKG

mcard-js

Version:

MCard - Content-addressable storage with cryptographic hashing, handle resolution, and vector search for Node.js and browsers

63 lines (59 loc) 2.1 kB
import { S as StorageEngine, M as MCard, P as Page } from '../StorageAdapter-Dw1BeOam.js'; /** * SqliteWasmEngine - SQLite WASM backend using sql.js * * Provides full SQL support with FTS5 and same schema as Python implementation. * Persistence via IndexedDB or OPFS. */ type SqlJsDatabase = { run: (sql: string, params?: unknown[]) => void; exec: (sql: string) => { columns: string[]; values: unknown[][]; }[]; prepare: (sql: string) => unknown; export: () => Uint8Array; }; /** * SqliteWasmEngine - Full SQL support via sql.js */ declare class SqliteWasmEngine implements StorageEngine { private db; private SQL; /** * Initialize the database * @param wasmUrl URL to sql-wasm.wasm file (optional, defaults to CDN) * @param existingData Optional existing database as Uint8Array */ init(wasmUrl?: string, existingData?: Uint8Array): Promise<void>; private ensureDb; /** * Export database as Uint8Array (for persistence) */ export(): Uint8Array; /** * Get raw sql.js Database for use with VectorStore adapter. * * Example: * const vecStore = createWasmVectorStore(engine.getRawDb()); */ getRawDb(): SqlJsDatabase; add(card: MCard): Promise<string>; get(hash: string): Promise<MCard | null>; delete(hash: string): Promise<void>; getPage(pageNumber: number, pageSize: number): Promise<Page<MCard>>; count(): Promise<number>; searchByHash(hashPrefix: string): Promise<MCard[]>; search(query: string, pageNumber: number, pageSize: number): Promise<Page<MCard>>; getAll(): Promise<MCard[]>; clear(): Promise<void>; registerHandle(handle: string, hash: string): Promise<void>; resolveHandle(handle: string): Promise<string | null>; getByHandle(handle: string): Promise<MCard | null>; updateHandle(handle: string, newHash: string): Promise<string>; getHandleHistory(handle: string): Promise<{ previousHash: string; changedAt: string; }[]>; } export { type SqlJsDatabase, SqliteWasmEngine };