UNPKG

depsweep

Version:

🌱 Automated intelligent dependency cleanup with environmental impact reporting

83 lines (82 loc) • 2.39 kB
export interface DependencyContext { scripts?: Record<string, string>; configs?: Record<string, any>; projectRoot: string; dependencyGraph?: Map<string, Set<string>>; } export interface PackageJson { dependencies?: Record<string, string>; devDependencies?: Record<string, string>; peerDependencies?: Record<string, string>; optionalDependencies?: Record<string, string>; workspaces?: string[] | { packages: string[]; }; scripts?: Record<string, string>; repository?: { url: string; }; homepage?: string; } export interface WorkspaceInfo { root: string; packages: string[]; } export interface ProgressOptions { onProgress?: (filePath: string, subdepIndex?: number, subdepCount?: number) => void; totalAnalysisSteps: number; } export interface DependencyInfo { usedInFiles: string[]; requiredByPackages: Set<string>; hasSubDependencyUsage: boolean; } export interface EnvironmentalImpact { carbonSavings: number; energySavings: number; waterSavings: number; treesEquivalent: number; carMilesEquivalent: number; efficiencyGain: number; networkSavings: number; storageSavings: number; transferEnergy: number; cpuEnergy: number; memoryEnergy: number; latencyEnergy: number; buildEnergy: number; ciCdEnergy: number; registryEnergy: number; lifecycleEnergy: number; carbonOffsetValue: number; waterTreatmentValue: number; totalFinancialValue: number; carbonIntensityUsed: number; regionalMultiplier: number; peakEnergySavings: number; offPeakEnergySavings: number; timeOfDayMultiplier: number; renewableEnergySavings: number; fossilFuelSavings: number; renewablePercentage: number; ewasteReduction: number; serverUtilizationImprovement: number; developerProductivityGain: number; buildTimeReduction: number; } export interface ImpactMetrics { installTime: number; diskSpace: number; errors?: string[]; environmentalImpact?: EnvironmentalImpact; } export interface EnvironmentalReport { totalImpact: EnvironmentalImpact; perPackageImpact: Record<string, EnvironmentalImpact>; timeframes: { daily: EnvironmentalImpact; monthly: EnvironmentalImpact; yearly?: EnvironmentalImpact; }; recommendations: string[]; }