UNPKG

tero

Version:

tero is a JSON document Manager, with ACID complaint and backup recovery mechanism.

89 lines (88 loc) 3.11 kB
import { DocumentSchema, ValidationResult } from "./schema.js"; import { BackupConfig, BackupMetadata } from "./backup.js"; import { RecoveryConfig, RecoveryResult, FileRecoveryInfo } from "./recovery.js"; interface TeroConfig { directory?: string; cacheSize?: number; } export declare class Tero { private teroDirectory; private cacheSize; private cache; private cacheHits; private cacheRequests; private acidEngine; private schemaValidator; private backupManager?; private dataRecovery?; constructor(config?: TeroConfig); private initializeDirectories; private validateKey; private evictOldestCacheEntry; private invalidateCacheKeys; private updateCache; beginTransaction(): string; write(transactionId: string, key: string, data: any, options?: { validate?: boolean; schemaName?: string; strict?: boolean; }): Promise<ValidationResult | void>; read(transactionId: string, key: string): Promise<any>; delete(transactionId: string, key: string): Promise<void>; commit(transactionId: string): Promise<void>; rollback(transactionId: string): Promise<void>; create(key: string, initialData?: any, options?: { validate?: boolean; schemaName?: string; strict?: boolean; }): Promise<ValidationResult | boolean>; update(key: string, data: any, options?: { validate?: boolean; schemaName?: string; strict?: boolean; }): Promise<ValidationResult | void>; get(key: string): Promise<any>; remove(key: string): Promise<void>; exists(key: string): boolean; batchWrite(operations: Array<{ key: string; data: any; }>, options?: { validate?: boolean; schemaName?: string; strict?: boolean; }): Promise<void>; batchRead(keys: string[]): Promise<{ [key: string]: any; }>; transferMoney(fromKey: string, toKey: string, amount: number): Promise<void>; setSchema(collectionName: string, schema: DocumentSchema): void; getSchema(collectionName: string): DocumentSchema | undefined; removeSchema(collectionName: string): boolean; validateData(collectionName: string, data: any): ValidationResult; configureBackup(config: BackupConfig): void; performBackup(): Promise<{ success: boolean; metadata: BackupMetadata; cloudUploaded?: boolean; }>; configureDataRecovery(config: RecoveryConfig): void; recoverFromCloud(key: string): Promise<boolean>; recoverAllFromCloud(): Promise<RecoveryResult>; getCacheStats(): { size: number; maxSize: number; hitRate: number; }; getActiveTransactions(): string[]; forceCheckpoint(): void; verifyDataIntegrity(): Promise<{ totalFiles: number; corruptedFiles: string[]; missingFiles: string[]; healthy: boolean; }>; clearCache(): void; destroy(): void; } export { DocumentSchema, ValidationResult, BackupConfig, BackupMetadata, RecoveryConfig, RecoveryResult, FileRecoveryInfo };