@entro314labs/at3-toolkit
Version:
Advanced development toolkit for AT3 Stack projects
94 lines (93 loc) • 2.39 kB
TypeScript
export interface MigrationOptions {
projectPath: string;
interactive?: boolean;
overwrite?: boolean;
skipDeps?: boolean;
updateVersions?: boolean;
replaceLinting?: boolean;
dryRun?: boolean;
force?: boolean;
verbose?: boolean;
configPath?: string;
backupDir?: string;
}
export interface ProjectInfo {
path: string;
type: ProjectType;
packageManager: PackageManager;
dependencies: DependencyInfo[];
configFiles: string[];
hasTypeScript: boolean;
hasNextJs: boolean;
hasReact: boolean;
hasVue: boolean;
hasTailwind: boolean;
hasEslint: boolean;
hasPrettier: boolean;
hasBiome: boolean;
hasAISupport: boolean;
hasSupabase: boolean;
hasEdgeRuntime: boolean;
hasVectorDB: boolean;
}
export type ProjectType = "ait3e" | "nextjs" | "react" | "vue" | "nuxt" | "vite" | "webpack" | "node" | "unknown";
export type PackageManager = "pnpm" | "npm" | "yarn" | "bun";
export interface DependencyInfo {
name: string;
version: string;
type: "dependency" | "devDependency" | "peerDependency";
current?: string;
latest?: string;
}
export interface MigrationStep {
id: string;
name: string;
description: string;
required: boolean;
execute: (options: MigrationOptions) => Promise<void>;
}
export interface MigrationPlan {
steps: MigrationStep[];
conflicts: ConflictInfo[];
backupFiles: string[];
}
export interface ConflictInfo {
file: string;
type: "overwrite" | "merge" | "rename";
description: string;
resolution: "auto" | "manual" | "skip";
}
export interface ConfigTemplate {
name: string;
path: string;
content: string;
type: "json" | "js" | "ts" | "css" | "yaml" | "toml" | "text";
merge?: boolean;
}
export interface BackupInfo {
timestamp: string;
files: string[];
migrationId: string;
canRollback: boolean;
}
export interface MigrationResult {
success: boolean;
steps: MigrationStepResult[];
backupPath?: string;
errors: MigrationError[];
warnings: string[];
}
export interface MigrationStepResult {
stepId: string;
success: boolean;
error?: string;
filesModified: string[];
duration: number;
}
export interface MigrationError {
step: string;
message: string;
file?: string;
code?: string;
severity: "error" | "warning";
}