tero
Version:
tero is a JSON document Manager, with ACID complaint and backup recovery mechanism.
89 lines (88 loc) • 3.11 kB
TypeScript
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 };