@re-shell/cli
Version:
Full-stack development platform uniting microservices and microfrontends. Build complete applications with .NET (ASP.NET Core Web API, Minimal API), Java (Spring Boot, Quarkus, Micronaut, Vert.x), Rust (Actix-Web, Warp, Rocket, Axum), Python (FastAPI, Dja
97 lines (96 loc) • 3.14 kB
TypeScript
export interface WorkspaceState {
name: string;
lastModified: string;
lastBuild?: string;
buildStatus?: 'success' | 'failed' | 'pending';
healthScore?: number;
dependencyHash?: string;
fileHashes: Record<string, string>;
metadata: Record<string, any>;
}
export interface WorkspaceStateStorage {
version: string;
timestamp: string;
workspaces: Record<string, WorkspaceState>;
globalMetadata: Record<string, any>;
}
export interface CacheEntry<T = any> {
key: string;
value: T;
timestamp: string;
ttl?: number;
tags?: string[];
size?: number;
}
export interface CacheMetadata {
totalEntries: number;
totalSize: number;
lastOptimized: string;
hitRate: number;
missRate: number;
}
export declare class WorkspaceStateManager {
private statePath;
private stateData;
private isDirty;
constructor(rootPath?: string);
loadState(): Promise<WorkspaceStateStorage>;
saveState(): Promise<void>;
getWorkspaceState(name: string): WorkspaceState | undefined;
updateWorkspaceState(name: string, updates: Partial<WorkspaceState>): Promise<void>;
updateFileHashes(name: string, workspacePath: string): Promise<void>;
hasWorkspaceChanged(name: string, workspacePath: string): Promise<boolean>;
clearState(): Promise<void>;
backupState(backupName?: string): Promise<string>;
restoreState(backupPath: string): Promise<void>;
getStateStatistics(): {
workspaceCount: number;
lastModified: string;
stateFileSize: number;
oldestWorkspace?: string;
newestWorkspace?: string;
};
private createDefaultState;
private createDefaultWorkspaceState;
private validateAndMigrateState;
private calculateFileHashes;
private getRelevantFiles;
private areHashesEqual;
}
export declare class WorkspaceCacheManager {
private cachePath;
private cacheDir;
private metadata;
private memoryCache;
private hitCount;
private missCount;
constructor(rootPath?: string);
init(): Promise<void>;
get<T>(key: string): Promise<T | null>;
set<T>(key: string, value: T, ttl?: number, tags?: string[]): Promise<void>;
invalidate(key: string): Promise<void>;
invalidatePattern(pattern: RegExp | string): Promise<number>;
clear(): Promise<void>;
optimize(): Promise<{
removedEntries: number;
freedSpace: number;
}>;
getCacheStatistics(): CacheMetadata & {
memoryEntries: number;
hitRate: number;
missRate: number;
};
private createDefaultMetadata;
private getEntryPath;
private encodeKey;
private decodeKey;
private isEntryValid;
private calculateSize;
private saveMetadata;
}
export declare function createWorkspaceStateManager(rootPath?: string): Promise<WorkspaceStateManager>;
export declare function createWorkspaceCacheManager(rootPath?: string): Promise<WorkspaceCacheManager>;
export declare function initializeWorkspaceStorage(rootPath?: string): Promise<{
stateManager: WorkspaceStateManager;
cacheManager: WorkspaceCacheManager;
}>;