UNPKG

xypriss-security

Version:

Advanced High-Performance Security Framework. Military-grade encryption, post-quantum resilience, and fortified data structures.

138 lines 3.77 kB
export type CachedData = Record<string, any>; export interface MemoryCacheEntry { data: string; iv: string; authTag: string; timestamp: number; expiresAt: number; accessCount: number; lastAccessed: number; compressed: boolean; size: number; version: number; } export interface CacheStats { hits: number; misses: number; evictions: number; totalSize: number; entryCount: number; hitRate: number; memoryUsage: { used: number; limit: number; percentage: number; }; totalAccesses: number; size: number; capacity: number; } export interface CacheOptions { ttl?: number; compress?: boolean; encrypt?: boolean; } export type SecurityEvent = "key_rotation" | "suspicious_access" | "memory_pressure" | "cache_overflow" | "encryption_failure"; /** * Options for file-based cache operations */ export interface FileCacheOptions extends CacheOptions { maxCacheSize: number; /** Directory to store cache files (default: .data/cache) */ directory?: string; /** File extension for cache files (default: .cache) */ extension?: string; /** Enable atomic writes (write to temp file then rename) */ atomic?: boolean; /** Enable file compression */ compress?: boolean; /** Custom file naming strategy */ namingStrategy?: "hash" | "direct" | "hierarchical" | "dated" | "flat"; /** Maximum file size in bytes (default: 10MB) */ maxFileSize?: number; /** Enable file metadata tracking */ trackMetadata?: boolean; } /** * File cache entry metadata */ export interface FileCacheMetadata { /** Original cache key */ key: string; /** File creation timestamp */ createdAt: number; /** Last access timestamp */ lastAccessed: number; /** Expiration timestamp */ expiresAt: number; /** File size in bytes */ size: number; /** Number of times accessed */ accessCount: number; /** Whether data is compressed */ compressed: boolean; /** Whether data is encrypted */ encrypted: boolean; /** Data type information */ dataType: string; /** File version for migration support */ version: number; } /** * File cache statistics */ export interface FileCacheStats { /** Total number of cache files */ fileCount: number; /** Total disk space used in bytes */ totalSize: number; /** Number of cache hits */ hits: number; /** Number of cache misses */ misses: number; /** Number of expired files cleaned up */ cleanups: number; /** Average file size in bytes */ averageFileSize: number; /** Cache hit rate percentage */ hitRate: number; /** Disk usage by directory */ diskUsage: { used: number; available: number; percentage: number; }; /** File age distribution */ ageDistribution: { fresh: number; recent: number; old: number; }; reads: number; writes: number; deletes: number; errors: number; totalFiles: number; avgResponseTime: number; lastCleanup: number; } /** * File cache cleanup options */ export interface FileCacheCleanupOptions { /** Remove expired files */ removeExpired?: boolean; /** Remove files older than specified age in milliseconds */ maxAge?: number; /** Maximum number of files to keep (LRU cleanup) */ maxFiles?: number; /** Maximum total size in bytes (size-based cleanup) */ maxTotalSize?: number; /** Dry run mode (don't actually delete files) */ dryRun?: boolean; } /** * File cache directory structure */ export type FileCacheStrategy = "flat" | "hierarchical" | "dated" | "custom"; //# sourceMappingURL=cache.type.d.ts.map