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

125 lines (124 loc) 3.82 kB
import { EventEmitter } from 'events'; export declare enum PackageManager { NPM = "npm", YARN = "yarn", PNPM = "pnpm", BUN = "bun", DENO = "deno", CARGO = "cargo", PIP = "pip", POETRY = "poetry", BUNDLER = "bundler", COMPOSER = "composer", MAVEN = "maven", GRADLE = "gradle", GO = "go", DOTNET = "dotnet", UNKNOWN = "unknown" } export interface PackageManagerInfo { name: PackageManager; version: string; path: string; isInstalled: boolean; performance: PerformanceMetrics; features: ManagerFeatures; commands: ManagerCommands; } export interface PerformanceMetrics { installSpeed: 'fast' | 'medium' | 'slow'; cacheEfficiency: 'high' | 'medium' | 'low'; parallelism: boolean; diskUsage: 'low' | 'medium' | 'high'; memoryUsage: 'low' | 'medium' | 'high'; startupTime: number; } export interface ManagerFeatures { workspaces: boolean; lockfiles: boolean; peerDependencies: boolean; patchSupport: boolean; offlineMode: boolean; securityAudit: boolean; autoInstall: boolean; deterministicInstalls: boolean; pluginSystem: boolean; } export interface ManagerCommands { install: string; add: string; remove: string; update: string; run: string; test: string; build: string; publish: string; audit: string; cache: string; } export interface DetectionResult { detected: PackageManager; confidence: number; reason: string; alternatives: Array<{ manager: PackageManager; confidence: number; reason: string; }>; recommendation?: PackageManager; performanceAnalysis?: PerformanceComparison; } export interface PerformanceComparison { fastest: PackageManager; mostEfficient: PackageManager; recommended: PackageManager; analysis: Record<PackageManager, { score: number; pros: string[]; cons: string[]; }>; } export interface ProjectContext { projectPath: string; projectType?: 'node' | 'python' | 'ruby' | 'java' | 'go' | 'rust' | 'php' | 'dotnet' | 'unknown'; size?: 'small' | 'medium' | 'large'; isMonorepo?: boolean; hasWorkspaces?: boolean; dependencies?: number; devDependencies?: number; } export declare class PackageManagerDetector extends EventEmitter { private static managerInfo; private static initialized; private static performanceCache; constructor(); private initialize; private loadManagerDefinitions; private detectInstalledManagers; private checkManagerInstallation; detect(context: ProjectContext): Promise<DetectionResult>; private detectByLockFile; private detectByConfigFile; private detectByProjectType; private detectByEnvironment; private detectByUserPreference; private analyzePerformance; private calculatePerformanceScore; private analyzeManagerProsAndCons; private determineMostEfficient; private determineRecommended; benchmark(context: ProjectContext, managers?: PackageManager[]): Promise<Map<PackageManager, { installTime: number; cacheHitTime: number; diskUsage: number; memoryPeak: number; }>>; private runBenchmark; getInstalledManagers(): PackageManager[]; getManagerInfo(manager: PackageManager): PackageManagerInfo | undefined; getRecommendedManager(context: ProjectContext): Promise<PackageManager>; ensureManagerInstalled(manager: PackageManager): Promise<boolean>; } export declare function getPackageManagerDetector(): PackageManagerDetector; export declare function detectPackageManager(context: ProjectContext): Promise<DetectionResult>; export declare function getRecommendedPackageManager(context: ProjectContext): Promise<PackageManager>;