@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
TypeScript
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>;