UNPKG

@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

202 lines (201 loc) 6.13 kB
export interface GlobalConfig { version: string; packageManager: 'npm' | 'yarn' | 'pnpm' | 'bun'; defaultFramework: string; defaultTemplate: string; presets: Record<string, ProjectPreset>; user: { name?: string; email?: string; organization?: string; }; cli: { autoUpdate: boolean; telemetry: boolean; verbose: boolean; theme: 'auto' | 'light' | 'dark'; }; paths: { templates: string; cache: string; plugins: string; }; plugins: { enabled: string[]; marketplace: { registry: string; autoUpdate: boolean; }; }; } export interface ProjectConfig { name: string; version: string; type: 'monorepo' | 'standalone'; packageManager: 'npm' | 'yarn' | 'pnpm' | 'bun'; framework: string; template: string; environments: Record<string, EnvironmentConfig>; workspaces: { root: string; patterns: string[]; types: string[]; }; git: { submodules: boolean; hooks: boolean; conventionalCommits: boolean; }; build: { target: string; optimize: boolean; analyze: boolean; minify?: boolean; }; dev: { port: number; host: string; open: boolean; hmr: boolean; }; quality: { linting: boolean; testing: boolean; coverage: { enabled: boolean; threshold: number; }; security: { enabled: boolean; autoFix: boolean; }; }; } export interface EnvironmentConfig { name: string; variables: Record<string, string>; build: { mode: 'development' | 'staging' | 'production'; optimization: boolean; sourcemaps: boolean; minify?: boolean; analyze?: boolean; target?: string; externals?: string[]; }; deployment: { provider?: 'vercel' | 'netlify' | 'aws' | 'azure' | 'gcp' | 'docker' | 'custom'; target?: string; region?: string; domain?: string; config?: Record<string, any>; secrets?: string[]; hooks?: { preDeploy?: string[]; postDeploy?: string[]; }; }; } export interface WorkspaceConfig { name: string; type: 'app' | 'package' | 'lib' | 'tool'; framework?: string; packageManager?: 'npm' | 'yarn' | 'pnpm' | 'bun'; template?: string; dependencies?: string[]; devDependencies?: string[]; build?: { target?: string; optimize?: boolean; analyze?: boolean; minify?: boolean; outDir?: string; sourcemap?: boolean; }; dev?: { port?: number; host?: string; open?: boolean; hmr?: boolean; proxy?: Record<string, string>; }; quality?: { linting?: boolean; testing?: boolean; coverage?: { enabled?: boolean; threshold?: number; }; security?: { enabled?: boolean; autoFix?: boolean; }; }; deployment?: { provider?: string; config?: Record<string, any>; }; environment?: Record<string, any>; } export interface ProjectPreset { name: string; description: string; config: Partial<ProjectConfig>; tags: string[]; createdAt: string; updatedAt: string; } export declare const DEFAULT_GLOBAL_CONFIG: GlobalConfig; export declare const DEFAULT_PROJECT_CONFIG: Partial<ProjectConfig>; export declare const CONFIG_PATHS: { GLOBAL_DIR: string; GLOBAL_CONFIG: string; PROJECT_CONFIG: string; WORKSPACE_CONFIG: string; WORKSPACE_DIR_CONFIG: string; }; export declare class ConfigManager { private globalConfig; private projectConfig; loadGlobalConfig(): Promise<GlobalConfig>; saveGlobalConfig(config: GlobalConfig): Promise<void>; updateGlobalConfig(updates: Partial<GlobalConfig>): Promise<GlobalConfig>; loadProjectConfig(projectPath?: string): Promise<ProjectConfig | null>; saveProjectConfig(config: ProjectConfig, projectPath?: string): Promise<void>; createProjectConfig(name: string, options?: Partial<ProjectConfig>, projectPath?: string): Promise<ProjectConfig>; loadWorkspaceConfig(workspacePath: string): Promise<WorkspaceConfig | null>; saveWorkspaceConfig(config: WorkspaceConfig, workspacePath: string): Promise<void>; createWorkspaceConfig(name: string, type: 'app' | 'package' | 'lib' | 'tool', options: Partial<WorkspaceConfig>, workspacePath: string): Promise<WorkspaceConfig>; getMergedConfig(projectPath?: string): Promise<{ global: GlobalConfig; project: ProjectConfig | null; merged: Partial<ProjectConfig>; }>; getMergedWorkspaceConfig(workspacePath: string, projectPath?: string): Promise<{ global: GlobalConfig; project: ProjectConfig | null; workspace: WorkspaceConfig | null; merged: any; }>; savePreset(name: string, config: Partial<ProjectConfig>): Promise<void>; loadPreset(name: string): Promise<ProjectPreset | null>; listPresets(): Promise<ProjectPreset[]>; deletePreset(name: string): Promise<void>; migrateConfig(fromVersion: string, toVersion: string): Promise<void>; private validateGlobalConfig; private validateProjectConfig; private validateWorkspaceConfig; private validateSchema; private mergeConfig; backupConfig(): Promise<string>; restoreConfig(backupPath: string): Promise<void>; } export declare const configManager: ConfigManager; export declare function getGlobalConfig(): Promise<GlobalConfig>; export declare function getProjectConfig(projectPath?: string): Promise<ProjectConfig | null>; export declare function getMergedConfig(projectPath?: string): Promise<{ global: GlobalConfig; project: ProjectConfig | null; merged: Partial<ProjectConfig>; }>; export declare function initializeGlobalConfig(): Promise<GlobalConfig>;