@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
102 lines (101 loc) • 3 kB
TypeScript
import { WorkspaceDefinition } from './workspace-schema';
export interface BackupMetadata {
id: string;
name: string;
description?: string;
timestamp: string;
workspaceFile: string;
version: string;
size: number;
hash: string;
tags?: string[];
includeState?: boolean;
includeCache?: boolean;
includeTemplates?: boolean;
}
export interface BackupContent {
metadata: BackupMetadata;
workspace: WorkspaceDefinition;
state?: any;
cache?: any;
templates?: any;
files?: Record<string, string>;
}
export interface BackupIndex {
version: string;
backups: Record<string, BackupMetadata>;
metadata: {
created: string;
lastModified: string;
totalBackups: number;
totalSize: number;
};
}
export interface BackupOptions {
name?: string;
description?: string;
includeState?: boolean;
includeCache?: boolean;
includeTemplates?: boolean;
includeFiles?: boolean;
filePatterns?: string[];
tags?: string[];
compress?: boolean;
}
export interface RestoreOptions {
force?: boolean;
selective?: boolean;
restoreState?: boolean;
restoreCache?: boolean;
restoreTemplates?: boolean;
restoreFiles?: boolean;
targetPath?: string;
}
export declare class WorkspaceBackupManager {
private backupDir;
private indexPath;
private index;
private rootPath;
constructor(rootPath?: string);
init(): Promise<void>;
createBackup(workspaceFile: string, options?: BackupOptions): Promise<string>;
listBackups(): Promise<BackupMetadata[]>;
getBackup(id: string): Promise<BackupContent | null>;
restoreBackup(id: string, options?: RestoreOptions): Promise<void>;
deleteBackup(id: string): Promise<void>;
exportBackup(id: string, outputPath: string): Promise<void>;
importBackup(filePath: string): Promise<string>;
cleanupBackups(options?: {
keepCount?: number;
keepDays?: number;
dryRun?: boolean;
}): Promise<{
deletedCount: number;
freedSpace: number;
}>;
getBackupStatistics(): {
totalBackups: number;
totalSize: number;
oldestBackup?: string;
newestBackup?: string;
averageSize: number;
};
private generateBackupId;
private createDefaultIndex;
private loadIndex;
private saveIndex;
private saveWorkspaceDefinition;
private backupDirectory;
private restoreDirectory;
private backupFiles;
private restoreFiles;
}
export declare function createWorkspaceBackupManager(rootPath?: string): Promise<WorkspaceBackupManager>;
export declare function createQuickBackup(workspaceFile: string, name?: string): Promise<string>;
export interface BackupComparison {
added: string[];
removed: string[];
modified: string[];
unchanged: string[];
}
export declare function compareBackups(manager: WorkspaceBackupManager, id1: string, id2: string): Promise<BackupComparison>;