/** * Monorepo Detection and Package Discovery * * Automatically detects monorepo structure and finds all packages */ import { Logger } from '../utils/logger'; /** * Package information */ export interface PackageInfo { /** Package name from package.json */ name: string; /** Absolute path to package directory */ path: string; /** Relative path from repo root */ relativePath: string; /** Package version */ version: string; /** Whether this package has changes in current git diff */ hasChanges: boolean; } /** * Monorepo detection result */ export interface MonorepoInfo { /** Whether this is a monorepo */ isMonorepo: boolean; /** Type of monorepo (pnpm, yarn, lerna, npm) */ type?: 'pnpm' | 'yarn' | 'lerna' | 'npm'; /** Root directory of the monorepo */ root: string; /** All packages found */ packages: PackageInfo[]; /** Packages with changes */ changedPackages: PackageInfo[]; } /** * Detects monorepo structure and packages */ export declare class MonorepoDetector { private logger; private repoRoot; constructor(logger: Logger, repoRoot?: string); /** * Detect monorepo and find all packages */ detect(): Promise; /** * Check if current directory is a git repository */ private isGitRepo; /** * Detect type of monorepo */ private detectMonorepoType; /** * Find all packages in the monorepo */ private findPackages; /** * Get workspace patterns based on monorepo type */ private getWorkspacePatterns; /** * Detect which packages have git changes */ private detectChangedPackages; /** * Read package.json from a directory */ private readPackageJson; /** * Return result for single package (non-monorepo) */ private singlePackageResult; /** * Read ignore list from .changeset/config.json */ private getIgnoreList; /** * Filter out packages that match ignore patterns */ private filterIgnoredPackages; } //# sourceMappingURL=monorepo-detector.d.ts.map