import { LogLevel } from "builder-util"; import { PackageJson } from "./types"; import * as fs from "fs-extra"; export declare enum LogMessageByKey { PKG_DUPLICATE_REF = "duplicate dependency references", PKG_NOT_FOUND = "cannot find path for dependency", PKG_NOT_ON_DISK = "dependency not found on disk", PKG_SELF_REF = "self-referential dependencies", PKG_OPTIONAL_NOT_INSTALLED = "missing optional dependencies", PKG_COLLECTOR_OUTPUT = "collector stderr output" } export declare const logMessageLevelByKey: Record; export type Package = { packageDir: string; packageJson: PackageJson; }; type JsonCache = Record>; type RealPathCache = Record>; type ExistsCache = Record>; type LstatCache = Record>; type PackageCache = Record>; type LogSummaryCache = Record; export declare class ModuleManager { /** Cache for package.json contents (readJson) */ readonly json: JsonCache; /** Cache for resolved real paths (if symlink, realpath; otherwise resolve) */ readonly realPath: RealPathCache; /** Cache for file/directory existence checks */ readonly exists: ExistsCache; /** Cache for lstat results */ readonly lstat: LstatCache; /** Cache for package lookups (key: "packageName||fromDir||semverRange"). Use helper function `versionedCacheKey` */ readonly packageData: PackageCache; /** For logging purposes, just track all dependencies for each key */ readonly logSummary: LogSummaryCache; private readonly jsonMap; private readonly realPathMap; private readonly existsMap; private readonly lstatMap; private readonly packageDataMap; private readonly logSummaryMap; constructor(); private createLogSummarySyncProxy; private createAsyncProxy; versionedCacheKey(pkg: { name: string; path: string; semver?: string; }): string; protected locatePackageVersionFromCacheKey(key: string): Promise; locatePackageVersion({ parentDir, pkgName, requiredRange }: { parentDir: string; pkgName: string; requiredRange?: string; }): Promise; private semverSatisfies; /** * Upward search (hoisted) */ private upwardSearch; /** * Breadth-first downward search from parentDir/node_modules * Looks for node_modules/\*\/node_modules/pkgName (and deeper) */ private downwardSearch; } export {};