ts-pkgx
Version:
A library & CLI for managing packages
64 lines • 2.2 kB
TypeScript
/**
* Parse a dependency file (deps.yaml, dependencies.yaml, pkgx.yaml, etc.)
*/
export declare function parseDependencyFile(filePath: string): Dependency[];
/**
* Load available versions for a package from generated package files
*/
export declare function getAvailableVersionsForPackage(packageName: string, packagesDir?: any): Promise<string[]>;
/**
* Resolve a version constraint to the best available version using proper semver
*/
export declare function resolveVersionConstraint(packageName: string, constraint: string): Promise<string>;
/**
* Parse version constraint and compare versions for deduplication
*/
export declare function compareVersions(version1: string, version2: string): number;
/**
* Resolve transitive dependencies for a package
*/
export declare function resolveTransitiveDependencies(packageName: string, options?: DependencyResolverOptions, visited?: Set<string>, depth?: any): Promise<Dependency[]>;
/**
* Deduplicate dependencies and resolve version conflicts
*/
export declare function deduplicateDependencies(dependencies: Dependency[], _options?: DependencyResolverOptions): Promise<DependencyResolutionResult>;
/**
* Main function to resolve all dependencies from a dependency file
*/
export declare function resolveDependencyFile(filePath: string, options?: DependencyResolverOptions): Promise<DependencyResolutionResult>;
/**
* Find dependency files in a directory
*/
export declare function findDependencyFiles(directory: string): string[];
/**
* Represents a dependency with version constraints
*/
export declare interface Dependency {
name: string
version: string
constraint: string
isOsSpecific: boolean
os?: string
}
/**
* Result of dependency resolution
*/
export declare interface DependencyResolutionResult {
allDependencies: Dependency[]
uniquePackages: string[]
conflicts: Array<{
package: string
versions: string[]
}>
osSpecificDeps: Record<string, Dependency[]>
}
/**
* Options for dependency resolution
*/
export declare interface DependencyResolverOptions {
packagesDir?: string
includeOsSpecific?: boolean
targetOs?: 'linux' | 'darwin' | 'windows'
maxDepth?: number
verbose?: boolean
}