@eldrforge/kodrdriv 0.1.0 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dist/application.js +25 -3
- package/dist/application.js.map +1 -1
- package/dist/arguments.js +103 -18
- package/dist/arguments.js.map +1 -1
- package/dist/commands/audio-commit.js +28 -7
- package/dist/commands/audio-commit.js.map +1 -1
- package/dist/commands/audio-review.js +28 -7
- package/dist/commands/audio-review.js.map +1 -1
- package/dist/commands/commit.js +75 -18
- package/dist/commands/commit.js.map +1 -1
- package/dist/commands/development.js +264 -0
- package/dist/commands/development.js.map +1 -0
- package/dist/commands/link.js +356 -181
- package/dist/commands/link.js.map +1 -1
- package/dist/commands/publish.js +166 -32
- package/dist/commands/publish.js.map +1 -1
- package/dist/commands/release.js +78 -13
- package/dist/commands/release.js.map +1 -1
- package/dist/commands/review.js +10 -6
- package/dist/commands/review.js.map +1 -1
- package/dist/commands/tree.js +450 -24
- package/dist/commands/tree.js.map +1 -1
- package/dist/commands/unlink.js +267 -372
- package/dist/commands/unlink.js.map +1 -1
- package/dist/commands/versions.js +224 -0
- package/dist/commands/versions.js.map +1 -0
- package/dist/constants.js +29 -10
- package/dist/constants.js.map +1 -1
- package/dist/content/diff.js.map +1 -1
- package/dist/content/files.js +192 -0
- package/dist/content/files.js.map +1 -0
- package/dist/content/log.js +16 -0
- package/dist/content/log.js.map +1 -1
- package/dist/main.js +0 -0
- package/dist/prompt/commit.js +9 -2
- package/dist/prompt/commit.js.map +1 -1
- package/dist/prompt/instructions/commit.md +20 -2
- package/dist/prompt/instructions/release.md +27 -10
- package/dist/prompt/instructions/review.md +75 -8
- package/dist/prompt/release.js +13 -5
- package/dist/prompt/release.js.map +1 -1
- package/dist/types.js +21 -5
- package/dist/types.js.map +1 -1
- package/dist/util/child.js +112 -26
- package/dist/util/child.js.map +1 -1
- package/dist/util/countdown.js +215 -0
- package/dist/util/countdown.js.map +1 -0
- package/dist/util/general.js +31 -7
- package/dist/util/general.js.map +1 -1
- package/dist/util/git.js +587 -0
- package/dist/util/git.js.map +1 -0
- package/dist/util/github.js +519 -3
- package/dist/util/github.js.map +1 -1
- package/dist/util/interactive.js +245 -79
- package/dist/util/interactive.js.map +1 -1
- package/dist/util/openai.js +70 -22
- package/dist/util/openai.js.map +1 -1
- package/dist/util/performance.js +1 -69
- package/dist/util/performance.js.map +1 -1
- package/dist/util/storage.js +28 -1
- package/dist/util/storage.js.map +1 -1
- package/dist/util/validation.js +1 -25
- package/dist/util/validation.js.map +1 -1
- package/package.json +10 -8
- package/test-multiline/cli/package.json +8 -0
- package/test-multiline/core/package.json +5 -0
- package/test-multiline/mobile/package.json +8 -0
- package/test-multiline/web/package.json +8 -0
- package/dist/util/npmOptimizations.js +0 -174
- package/dist/util/npmOptimizations.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unlink.js","sources":["../../src/commands/unlink.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\nimport path from 'path';\nimport { getLogger, getDryRunLogger } from '../logging';\nimport { Config } from '../types';\nimport { create as createStorage } from '../util/storage';\nimport { safeJsonParse, validateLinkBackup, type LinkBackup } from '../util/validation';\nimport { run } from '../util/child';\nimport {\n PerformanceTimer,\n PackageJson,\n PackageJsonLocation,\n findAllPackageJsonFiles,\n scanDirectoryForPackages,\n checkForFileDependencies\n} from '../util/performance';\nimport { smartNpmInstall } from '../util/npmOptimizations';\n\ninterface ExtendedPackageJson extends PackageJson {\n workspaces?: string[] | { packages?: string[] };\n overrides?: Record<string, any>;\n resolutions?: Record<string, any>;\n}\n\n\n\ninterface ProblematicDependency {\n name: string;\n version: string;\n type: 'file:' | 'link:' | 'relative-path' | 'workspace' | 'override' | 'resolution';\n dependencyType: 'dependencies' | 'devDependencies' | 'peerDependencies' | 'workspaces' | 'overrides' | 'resolutions';\n packagePath: string;\n reason: string;\n}\n\nconst EXCLUDED_DIRECTORIES = [\n 'node_modules',\n 'dist',\n 'build',\n 'coverage',\n '.git',\n '.next',\n '.nuxt',\n 'out',\n 'public',\n 'static',\n 'assets'\n];\n\n\n\nconst findPackagesToUnlink = async (scopeRoots: Record<string, string>, storage: any): Promise<string[]> => {\n const logger = getLogger();\n const timer = PerformanceTimer.start(logger, 'Finding packages to unlink');\n const packagesToUnlink: string[] = [];\n\n logger.silly(`Finding packages to unlink from scope roots: ${JSON.stringify(scopeRoots)}`);\n\n // Scan all scope roots to build a comprehensive map of packages that should be unlinked\n const scopeTimer = PerformanceTimer.start(logger, 'Scanning all scope roots for packages to unlink');\n const allScopePackages = new Map<string, string>(); // packageName -> relativePath\n\n // Process all scopes in parallel for better performance\n const scopePromises = Object.entries(scopeRoots).map(async ([scope, rootDir]) => {\n logger.verbose(`Scanning scope ${scope} at root directory: ${rootDir}`);\n const scopePackages = await scanDirectoryForPackages(rootDir, storage);\n\n // Add packages from this scope to the overall map\n const scopeResults: Array<[string, string]> = [];\n for (const [packageName, packagePath] of scopePackages) {\n if (packageName.startsWith(scope)) {\n scopeResults.push([packageName, packagePath]);\n logger.debug(`Package to unlink: ${packageName} -> ${packagePath}`);\n }\n }\n return scopeResults;\n });\n\n const allScopeResults = await Promise.all(scopePromises);\n\n // Flatten results and collect package names\n for (const scopeResults of allScopeResults) {\n for (const [packageName, packagePath] of scopeResults) {\n allScopePackages.set(packageName, packagePath);\n packagesToUnlink.push(packageName);\n }\n }\n\n scopeTimer.end(`Scanned ${Object.keys(scopeRoots).length} scope roots, found ${packagesToUnlink.length} packages to unlink`);\n\n timer.end(`Found ${packagesToUnlink.length} packages to unlink`);\n return packagesToUnlink;\n};\n\nconst readLinkBackup = async (storage: any): Promise<LinkBackup> => {\n const backupPath = path.join(process.cwd(), '.kodrdriv-link-backup.json');\n if (await storage.exists(backupPath)) {\n try {\n const content = await storage.readFile(backupPath, 'utf-8');\n const parsed = safeJsonParse(content, 'link backup file');\n return validateLinkBackup(parsed);\n } catch (error) {\n throw new Error(`Failed to parse link backup file: ${error instanceof Error ? error.message : 'Unknown error'}`);\n }\n }\n return {};\n};\n\nconst writeLinkBackup = async (backup: LinkBackup, storage: any): Promise<void> => {\n const backupPath = path.join(process.cwd(), '.kodrdriv-link-backup.json');\n if (Object.keys(backup).length === 0) {\n // Remove backup file if empty\n if (await storage.exists(backupPath)) {\n await storage.deleteFile(backupPath);\n }\n } else {\n await storage.writeFile(backupPath, JSON.stringify(backup, null, 2), 'utf-8');\n }\n};\n\nconst restorePackageJson = async (\n packageJsonLocation: PackageJsonLocation,\n packagesToUnlink: string[],\n backup: LinkBackup,\n storage: any\n): Promise<number> => {\n const logger = getLogger();\n let restoredCount = 0;\n const { packageJson, path: packageJsonPath, relativePath } = packageJsonLocation;\n\n // Restore original versions from backup\n for (const packageName of packagesToUnlink) {\n const backupKey = `${relativePath}:${packageName}`;\n const backupEntry = backup[backupKey];\n\n if (!backupEntry) {\n logger.debug(`No backup found for ${backupKey}, skipping`);\n continue;\n }\n\n const currentDeps = (packageJson as any)[backupEntry.dependencyType];\n if (currentDeps && currentDeps[packageName]?.startsWith('file:')) {\n // Restore the original version\n currentDeps[packageName] = backupEntry.originalVersion;\n restoredCount++;\n logger.verbose(`Restored ${relativePath}/${backupEntry.dependencyType}.${packageName}: file:... -> ${backupEntry.originalVersion}`);\n\n // Remove from backup\n delete backup[backupKey];\n }\n }\n\n // NOTE: Don't write the file here - let the caller handle all modifications\n return restoredCount;\n};\n\n/**\n * Comprehensive scan for all types of problematic dependencies that could cause GitHub build failures\n */\nconst scanForProblematicDependencies = (packageJsonFiles: PackageJsonLocation[]): ProblematicDependency[] => {\n const logger = getLogger();\n const timer = PerformanceTimer.start(logger, 'Scanning for problematic dependencies');\n const problematicDeps: ProblematicDependency[] = [];\n\n for (const { path: packagePath, packageJson, relativePath } of packageJsonFiles) {\n const extendedPackageJson = packageJson as ExtendedPackageJson;\n\n // Check dependencies, devDependencies, peerDependencies\n const depTypes: Array<keyof Pick<ExtendedPackageJson, 'dependencies' | 'devDependencies' | 'peerDependencies'>> = [\n 'dependencies', 'devDependencies', 'peerDependencies'\n ];\n\n for (const depType of depTypes) {\n const deps = extendedPackageJson[depType];\n if (!deps) continue;\n\n for (const [name, version] of Object.entries(deps)) {\n let problemType: ProblematicDependency['type'] | null = null;\n let reason = '';\n\n // Check for file: dependencies\n if (version.startsWith('file:')) {\n problemType = 'file:';\n reason = 'File dependencies cause build failures in CI/CD environments';\n }\n // Check for link: dependencies\n else if (version.startsWith('link:')) {\n problemType = 'link:';\n reason = 'Link dependencies are not resolvable in remote environments';\n }\n // Check for relative path patterns that could be problematic\n else if (version.includes('../') || version.includes('./') || version.startsWith('/')) {\n problemType = 'relative-path';\n reason = 'Relative path dependencies are not resolvable in different environments';\n }\n // Check for workspace protocol (used by some package managers)\n else if (version.startsWith('workspace:')) {\n problemType = 'workspace';\n reason = 'Workspace protocol dependencies require workspace configuration';\n }\n\n if (problemType) {\n problematicDeps.push({\n name,\n version,\n type: problemType,\n dependencyType: depType,\n packagePath: relativePath,\n reason\n });\n }\n }\n }\n\n // Check workspace configurations\n if (extendedPackageJson.workspaces) {\n problematicDeps.push({\n name: 'workspaces',\n version: JSON.stringify(extendedPackageJson.workspaces),\n type: 'workspace',\n dependencyType: 'workspaces',\n packagePath: relativePath,\n reason: 'Workspace configurations can cause issues when published to npm'\n });\n }\n\n // Check overrides (npm 8.3+)\n if (extendedPackageJson.overrides) {\n for (const [name, override] of Object.entries(extendedPackageJson.overrides)) {\n if (typeof override === 'string' && (override.startsWith('file:') || override.startsWith('link:') || override.includes('../'))) {\n problematicDeps.push({\n name,\n version: override,\n type: 'override',\n dependencyType: 'overrides',\n packagePath: relativePath,\n reason: 'Override configurations with local paths cause build failures'\n });\n }\n }\n }\n\n // Check resolutions (Yarn)\n if (extendedPackageJson.resolutions) {\n for (const [name, resolution] of Object.entries(extendedPackageJson.resolutions)) {\n if (typeof resolution === 'string' && (resolution.startsWith('file:') || resolution.startsWith('link:') || resolution.includes('../'))) {\n problematicDeps.push({\n name,\n version: resolution,\n type: 'resolution',\n dependencyType: 'resolutions',\n packagePath: relativePath,\n reason: 'Resolution configurations with local paths cause build failures'\n });\n }\n }\n }\n }\n\n timer.end(`Found ${problematicDeps.length} problematic dependencies`);\n return problematicDeps;\n};\n\n/**\n * Enhanced function to display problematic dependencies with detailed information\n */\nconst displayProblematicDependencies = (problematicDeps: ProblematicDependency[]): void => {\n const logger = getLogger();\n\n if (problematicDeps.length === 0) {\n logger.info('✅ No problematic dependencies found');\n return;\n }\n\n logger.info('🔓 Found problematic dependencies that could cause GitHub build failures:');\n\n // Group by package path for better readability\n const grouped = problematicDeps.reduce((acc, dep) => {\n if (!acc[dep.packagePath]) {\n acc[dep.packagePath] = [];\n }\n acc[dep.packagePath].push(dep);\n return acc;\n }, {} as Record<string, ProblematicDependency[]>);\n\n for (const [packagePath, deps] of Object.entries(grouped)) {\n logger.info(` 📄 ${packagePath}:`);\n for (const dep of deps) {\n logger.info(` ❌ ${dep.dependencyType}.${dep.name}: ${dep.version} (${dep.type})`);\n logger.info(` 💡 ${dep.reason}`);\n }\n }\n};\n\n/**\n * Verification step to ensure no problematic dependencies remain after cleanup\n */\nconst verifyCleanup = async (packageJsonFiles: PackageJsonLocation[]): Promise<boolean> => {\n const logger = getLogger();\n const timer = PerformanceTimer.start(logger, 'Verifying cleanup completion');\n\n const remainingProblems = scanForProblematicDependencies(packageJsonFiles);\n\n if (remainingProblems.length === 0) {\n logger.info('✅ Verification passed: No problematic dependencies remain');\n timer.end('Verification successful');\n return true;\n } else {\n logger.warn('⚠️ Verification failed: Found remaining problematic dependencies');\n displayProblematicDependencies(remainingProblems);\n timer.end('Verification failed');\n return false;\n }\n};\n\nexport const execute = async (runConfig: Config): Promise<string> => {\n const isDryRun = runConfig.dryRun || runConfig.unlink?.dryRun || false;\n const logger = getDryRunLogger(isDryRun);\n const overallTimer = PerformanceTimer.start(logger, 'Unlink command execution');\n const storage = createStorage({ log: logger.info });\n\n logger.info('🔓 Unlinking workspace packages and cleaning up problematic dependencies...');\n\n // Get configuration\n const configTimer = PerformanceTimer.start(logger, 'Reading configuration');\n const scopeRoots = runConfig.unlink?.scopeRoots || runConfig.link?.scopeRoots || {};\n const workspaceFileName = runConfig.unlink?.workspaceFile || 'pnpm-workspace.yaml';\n configTimer.end('Configuration loaded');\n\n if (Object.keys(scopeRoots).length === 0) {\n logger.info('No scope roots configured. Skipping link management.');\n overallTimer.end('Unlink command (no scope roots)');\n return 'No scope roots configured. Skipping link management.';\n }\n\n // Find all package.json files in current directory tree\n const packageJsonFiles = await findAllPackageJsonFiles(process.cwd(), storage);\n\n if (packageJsonFiles.length === 0) {\n throw new Error('No package.json files found in current directory or subdirectories.');\n }\n\n logger.info(`Found ${packageJsonFiles.length} package.json file(s) to process`);\n logger.info(`Scanning ${Object.keys(scopeRoots).length} scope root(s): ${Object.keys(scopeRoots).join(', ')}`);\n\n // Comprehensive scan for all problematic dependencies\n const problematicDeps = scanForProblematicDependencies(packageJsonFiles);\n displayProblematicDependencies(problematicDeps);\n\n // Find packages to unlink based on scope roots\n const packagesToUnlinkNames = await findPackagesToUnlink(scopeRoots, storage);\n\n if (packagesToUnlinkNames.length === 0 && problematicDeps.length === 0) {\n logger.info('✅ No packages found matching scope roots for unlinking and no problematic dependencies detected.');\n overallTimer.end('Unlink command (nothing to clean)');\n return 'No packages found matching scope roots for unlinking and no problematic dependencies detected.';\n }\n\n logger.verbose(`Found ${packagesToUnlinkNames.length} packages that could be unlinked: ${packagesToUnlinkNames.join(', ')}`);\n\n // Read existing backup\n const backupTimer = PerformanceTimer.start(logger, 'Reading link backup');\n const backup = await readLinkBackup(storage);\n backupTimer.end('Link backup loaded');\n\n if (isDryRun) {\n logger.info('Would clean up problematic dependencies and restore original package.json dependencies');\n\n // Show what would be cleaned up\n let dryRunCount = 0;\n for (const packageName of packagesToUnlinkNames) {\n for (const { relativePath } of packageJsonFiles) {\n const backupKey = `${relativePath}:${packageName}`;\n const backupEntry = backup[backupKey];\n if (backupEntry) {\n logger.verbose(`Would restore ${relativePath}/${packageName}: file:... -> ${backupEntry.originalVersion}`);\n dryRunCount++;\n }\n }\n }\n\n // Show what problematic dependencies would be cleaned\n if (problematicDeps.length > 0) {\n logger.verbose(`Would clean up ${problematicDeps.length} problematic dependencies`);\n }\n\n overallTimer.end('Unlink command (dry run)');\n return `DRY RUN: Would unlink ${dryRunCount} dependency reference(s) and clean up ${problematicDeps.length} problematic dependencies across ${packageJsonFiles.length} package.json files`;\n } else {\n // Restore package.json files with original versions and clean up problematic dependencies\n let totalRestoredCount = 0;\n let totalCleanedCount = 0;\n\n for (const packageJsonLocation of packageJsonFiles) {\n const { packageJson, path: packageJsonPath, relativePath } = packageJsonLocation;\n let modified = false;\n\n // Restore from backup\n const restoredCount = await restorePackageJson(packageJsonLocation, packagesToUnlinkNames, backup, storage);\n totalRestoredCount += restoredCount;\n if (restoredCount > 0) modified = true;\n\n // Clean up problematic dependencies for this specific package\n const extendedPackageJson = packageJson as ExtendedPackageJson;\n\n // Remove workspace configurations\n if (extendedPackageJson.workspaces) {\n delete extendedPackageJson.workspaces;\n logger.verbose(`Removed workspace configuration from ${relativePath}`);\n modified = true;\n totalCleanedCount++;\n }\n\n // Clean overrides with problematic paths\n if (extendedPackageJson.overrides) {\n const cleanOverrides: Record<string, any> = {};\n let overridesModified = false;\n\n for (const [name, override] of Object.entries(extendedPackageJson.overrides)) {\n if (typeof override === 'string' && (override.startsWith('file:') || override.startsWith('link:') || override.includes('../'))) {\n logger.verbose(`Removed problematic override ${relativePath}/overrides.${name}: ${override}`);\n overridesModified = true;\n totalCleanedCount++;\n } else {\n cleanOverrides[name] = override;\n }\n }\n\n if (overridesModified) {\n if (Object.keys(cleanOverrides).length === 0) {\n delete extendedPackageJson.overrides;\n } else {\n extendedPackageJson.overrides = cleanOverrides;\n }\n modified = true;\n }\n }\n\n // Clean resolutions with problematic paths\n if (extendedPackageJson.resolutions) {\n const cleanResolutions: Record<string, any> = {};\n let resolutionsModified = false;\n\n for (const [name, resolution] of Object.entries(extendedPackageJson.resolutions)) {\n if (typeof resolution === 'string' && (resolution.startsWith('file:') || resolution.startsWith('link:') || resolution.includes('../'))) {\n logger.verbose(`Removed problematic resolution ${relativePath}/resolutions.${name}: ${resolution}`);\n resolutionsModified = true;\n totalCleanedCount++;\n } else {\n cleanResolutions[name] = resolution;\n }\n }\n\n if (resolutionsModified) {\n if (Object.keys(cleanResolutions).length === 0) {\n delete extendedPackageJson.resolutions;\n } else {\n extendedPackageJson.resolutions = cleanResolutions;\n }\n modified = true;\n }\n }\n\n // Save the modified package.json if any changes were made\n if (modified) {\n await storage.writeFile(packageJsonPath, JSON.stringify(packageJson, null, 2), 'utf-8');\n }\n }\n\n // Save updated backup (with restored items removed)\n await writeLinkBackup(backup, storage);\n\n if (totalRestoredCount === 0 && totalCleanedCount === 0) {\n logger.info('✅ No problematic dependencies were found to clean up.');\n overallTimer.end('Unlink command (nothing to clean)');\n return 'No problematic dependencies were found to clean up.';\n }\n\n logger.info(`Cleaned up ${totalRestoredCount} linked dependencies and ${totalCleanedCount} other problematic dependencies across ${packageJsonFiles.length} package.json file(s)`);\n\n // CRITICAL: Clean up package-lock.json to prevent GitHub build failures\n // The lock file may still contain file: references even after restoring package.json\n logger.info('🧹 Cleaning up package-lock.json to remove any stale file references...');\n const packageLockPath = path.join(process.cwd(), 'package-lock.json');\n if (await storage.exists(packageLockPath)) {\n await storage.deleteFile(packageLockPath);\n logger.info('🗑️ Deleted package-lock.json to ensure clean state');\n }\n\n // Optionally clean up node_modules for thorough cleanup\n const cleanNodeModules = runConfig.unlink?.cleanNodeModules !== false; // default to true\n if (cleanNodeModules) {\n logger.info('🧹 Cleaning up node_modules for complete fresh start...');\n const nodeModulesPath = path.join(process.cwd(), 'node_modules');\n if (await storage.exists(nodeModulesPath)) {\n try {\n await storage.removeDirectory(nodeModulesPath);\n logger.info('🗑️ Deleted node_modules directory');\n } catch (error: any) {\n logger.warn(`Could not delete node_modules (${error.message}), continuing...`);\n }\n }\n }\n\n // Re-read package.json files for verification\n const updatedPackageJsonFiles = await findAllPackageJsonFiles(process.cwd(), storage);\n\n // Verification step\n const verificationPassed = await verifyCleanup(updatedPackageJsonFiles);\n\n if (!verificationPassed) {\n logger.warn('⚠️ Some problematic dependencies may still remain. Please review the output above.');\n }\n\n // Rebuild dependencies with fresh install (NOT npm ci to avoid using stale lock file)\n logger.info('⏳ Running fresh npm install to regenerate clean dependencies (this may take a moment)...');\n try {\n const installResult = await smartNpmInstall({\n skipIfNotNeeded: false, // Always install after unlinking changes\n preferCi: false, // NEVER use npm ci here - we need fresh npm install to regenerate lock file\n verbose: false\n });\n\n if (installResult.skipped) {\n logger.info(`⚡ Dependencies were up to date (${installResult.method})`);\n } else {\n logger.info(`✅ Dependencies rebuilt cleanly using ${installResult.method} (${installResult.duration}ms)`);\n }\n } catch (error) {\n logger.warn(`Failed to rebuild dependencies: ${error}. You may need to run 'npm install' manually.`);\n }\n\n const summary = `Successfully cleaned up ${totalRestoredCount} linked dependencies and ${totalCleanedCount} other problematic dependencies across ${packageJsonFiles.length} package.json file(s)`;\n overallTimer.end('Unlink command completed');\n return summary;\n }\n};\n"],"names":["findPackagesToUnlink","scopeRoots","storage","logger","getLogger","timer","PerformanceTimer","start","packagesToUnlink","silly","JSON","stringify","scopeTimer","allScopePackages","Map","scopePromises","Object","entries","map","scope","rootDir","verbose","scopePackages","scanDirectoryForPackages","scopeResults","packageName","packagePath","startsWith","push","debug","allScopeResults","Promise","all","set","end","keys","length","readLinkBackup","backupPath","path","join","process","cwd","exists","content","readFile","parsed","safeJsonParse","validateLinkBackup","error","Error","message","writeLinkBackup","backup","deleteFile","writeFile","restorePackageJson","packageJsonLocation","restoredCount","packageJson","packageJsonPath","relativePath","currentDeps","backupKey","backupEntry","dependencyType","originalVersion","scanForProblematicDependencies","packageJsonFiles","problematicDeps","extendedPackageJson","depTypes","depType","deps","name","version","problemType","reason","includes","type","workspaces","overrides","override","resolutions","resolution","displayProblematicDependencies","info","grouped","reduce","acc","dep","verifyCleanup","remainingProblems","warn","execute","runConfig","isDryRun","dryRun","unlink","getDryRunLogger","overallTimer","createStorage","log","configTimer","link","workspaceFile","findAllPackageJsonFiles","packagesToUnlinkNames","backupTimer","dryRunCount","totalRestoredCount","totalCleanedCount","modified","cleanOverrides","overridesModified","cleanResolutions","resolutionsModified","packageLockPath","cleanNodeModules","nodeModulesPath","removeDirectory","updatedPackageJsonFiles","verificationPassed","installResult","smartNpmInstall","skipIfNotNeeded","preferCi","skipped","method","duration","summary"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"unlink.js","sources":["../../src/commands/unlink.ts"],"sourcesContent":["import { getDryRunLogger, getLogger } from '../logging';\nimport { Config } from '../types';\nimport { create as createStorage } from '../util/storage';\nimport { run, runSecure } from '../util/child';\nimport {\n findAllPackageJsonFiles\n} from '../util/performance';\nimport { safeJsonParse, validatePackageJson } from '../util/validation';\n\n// Helper function to parse package names and scopes (same as link command)\nconst parsePackageArgument = (packageArg: string): { scope: string; packageName?: string } => {\n if (packageArg.startsWith('@')) {\n const parts = packageArg.split('/');\n if (parts.length === 1) {\n // Just a scope like \"@fjell\"\n return { scope: parts[0] };\n } else {\n // Full package name like \"@fjell/core\"\n return { scope: parts[0], packageName: packageArg };\n }\n } else {\n throw new Error(`Package argument must start with @ (scope): ${packageArg}`);\n }\n};\n\n// Find packages in the workspace that match the given scope or package name\nconst findMatchingPackages = async (\n targetDirectories: string[],\n scope: string,\n storage: any,\n logger: any,\n packageName?: string\n): Promise<Array<{ name: string; path: string; isSource: boolean }>> => {\n const matchingPackages: Array<{ name: string; path: string; isSource: boolean }> = [];\n\n // Find all package.json files in target directories\n let allPackageJsonFiles: any[] = [];\n for (const targetDirectory of targetDirectories) {\n const packageJsonFiles = await findAllPackageJsonFiles(targetDirectory, storage);\n allPackageJsonFiles = allPackageJsonFiles.concat(packageJsonFiles);\n }\n\n for (const packageJsonLocation of allPackageJsonFiles) {\n const packageDir = packageJsonLocation.path.replace('/package.json', '');\n\n try {\n const packageJsonContent = await storage.readFile(packageJsonLocation.path, 'utf-8');\n const parsed = safeJsonParse(packageJsonContent, packageJsonLocation.path);\n const packageJson = validatePackageJson(parsed, packageJsonLocation.path);\n\n if (!packageJson.name) continue;\n\n const isInScope = packageJson.name.startsWith(scope + '/');\n const isExactMatch = packageName && packageJson.name === packageName;\n\n if (isInScope || isExactMatch) {\n matchingPackages.push({\n name: packageJson.name,\n path: packageDir,\n isSource: packageName ? packageJson.name === packageName : isInScope\n });\n }\n } catch (error: any) {\n logger.warn(`Failed to parse ${packageJsonLocation.path}: ${error.message}`);\n }\n }\n\n return matchingPackages;\n};\n\n// Find packages that depend on the target package\nconst findConsumingPackages = async (\n targetDirectories: string[],\n targetPackageName: string,\n storage: any,\n logger: any\n): Promise<Array<{ name: string; path: string }>> => {\n const consumingPackages: Array<{ name: string; path: string }> = [];\n\n // Find all package.json files in target directories\n let allPackageJsonFiles: any[] = [];\n for (const targetDirectory of targetDirectories) {\n const packageJsonFiles = await findAllPackageJsonFiles(targetDirectory, storage);\n allPackageJsonFiles = allPackageJsonFiles.concat(packageJsonFiles);\n }\n\n for (const packageJsonLocation of allPackageJsonFiles) {\n const packageDir = packageJsonLocation.path.replace('/package.json', '');\n\n try {\n const packageJsonContent = await storage.readFile(packageJsonLocation.path, 'utf-8');\n const parsed = safeJsonParse(packageJsonContent, packageJsonLocation.path);\n const packageJson = validatePackageJson(parsed, packageJsonLocation.path);\n\n if (!packageJson.name) continue;\n\n // Check if this package depends on the target package\n const dependencyTypes = ['dependencies', 'devDependencies', 'peerDependencies', 'optionalDependencies'];\n const hasDependency = dependencyTypes.some(depType =>\n packageJson[depType] && packageJson[depType][targetPackageName]\n );\n\n if (hasDependency && packageJson.name !== targetPackageName) {\n consumingPackages.push({\n name: packageJson.name,\n path: packageDir\n });\n }\n } catch (error: any) {\n logger.warn(`Failed to parse ${packageJsonLocation.path}: ${error.message}`);\n }\n }\n\n return consumingPackages;\n};\n\nconst executeInternal = async (runConfig: Config, packageArgument?: string): Promise<string> => {\n const isDryRun = runConfig.dryRun || runConfig.unlink?.dryRun || false;\n const logger = getDryRunLogger(isDryRun);\n const storage = createStorage({ log: logger.info });\n\n // Get target directories from config, default to current directory\n const targetDirectories = runConfig.tree?.directories || [process.cwd()];\n\n if (targetDirectories.length === 1) {\n logger.info(`Analyzing workspace at: ${targetDirectories[0]}`);\n } else {\n logger.info(`Analyzing workspaces at: ${targetDirectories.join(', ')}`);\n }\n\n // If no package argument provided, implement new behavior for current project\n if (!packageArgument) {\n logger.info('🔓 Unlinking current project...');\n\n const currentDir = process.cwd();\n const packageJsonPath = `${currentDir}/package.json`;\n\n // Check if we're in a directory with package.json\n if (!(await storage.exists(packageJsonPath))) {\n const message = `No package.json found in current directory: ${currentDir}`;\n logger.warn(message);\n return message;\n }\n\n // Parse package.json to get package name\n let packageName: string;\n try {\n const packageJsonContent = await storage.readFile(packageJsonPath, 'utf-8');\n const parsed = safeJsonParse(packageJsonContent, packageJsonPath);\n const packageJson = validatePackageJson(parsed, packageJsonPath);\n\n if (!packageJson.name) {\n throw new Error('package.json has no name field');\n }\n packageName = packageJson.name;\n } catch (error: any) {\n const message = `Failed to parse package.json: ${error.message}`;\n logger.error(message);\n return message;\n }\n\n logger.info(`Processing package: ${packageName}`);\n\n const cleanNodeModules = runConfig.unlink?.cleanNodeModules || false;\n\n\n\n if (isDryRun) {\n logger.info(`DRY RUN: Would execute unlink steps for ${packageName}:`);\n logger.info(` 1. npm unlink -g`);\n if (cleanNodeModules) {\n logger.info(` 2. rm -rf node_modules package-lock.json`);\n logger.info(` 3. npm install`);\n logger.info(` 4. Check for remaining links with npm ls --link`);\n } else {\n logger.info(` 2. Check for remaining links with npm ls --link`);\n logger.info(` Note: Use --clean-node-modules flag to also clean and reinstall dependencies`);\n }\n return `DRY RUN: Would execute unlink steps for ${packageName}`;\n }\n\n // Step 1: Remove global link\n logger.info('Step 1: Removing global link...');\n try {\n await run('npm unlink -g');\n logger.info('✅ Global link removed');\n } catch (error: any) {\n // This might fail if the package wasn't globally linked, which is OK\n logger.warn(`⚠️ Failed to remove global link (this is OK if package wasn't linked): ${error.message}`);\n }\n\n if (cleanNodeModules) {\n // Step 2: Clean node_modules and package-lock.json\n logger.info('Step 2: Cleaning node_modules and package-lock.json...');\n try {\n await run('rm -rf node_modules package-lock.json');\n logger.info('✅ Cleaned node_modules and package-lock.json');\n } catch (error: any) {\n logger.warn(`⚠️ Failed to clean node_modules/package-lock.json: ${error.message}`);\n }\n\n // Step 3: Install dependencies\n logger.info('Step 3: Installing dependencies...');\n try {\n await run('npm install');\n logger.info('✅ Dependencies installed');\n } catch (error: any) {\n logger.error(`❌ Failed to install dependencies: ${error.message}`);\n throw error;\n }\n\n // Step 4: Check for remaining links (suppress output and errors)\n logger.info('Step 4: Checking for remaining links...');\n } else {\n // Step 2: Check for remaining links (suppress output and errors)\n logger.info('Step 2: Checking for remaining links...');\n logger.info('Note: Use --clean-node-modules flag to also clean and reinstall dependencies');\n }\n\n try {\n // Use child_process directly to suppress logging and get JSON output\n const util = await import('util');\n const child_process = await import('child_process');\n const execPromise = util.promisify(child_process.exec);\n\n const result = await execPromise('npm ls --link --json');\n\n // Parse JSON output to check for links to packages in the same scope\n const packageScope = packageName.includes('/') ? packageName.split('/')[0] : null;\n\n if (packageScope && result.stdout.trim()) {\n try {\n const linksData = safeJsonParse(result.stdout, 'npm ls output after unlink');\n const linkedPackages = Object.keys(linksData.dependencies || {});\n const scopeLinkedPackages = linkedPackages.filter(pkg => pkg.startsWith(packageScope + '/'));\n\n if (scopeLinkedPackages.length > 0) {\n logger.warn(`⚠️ Found remaining links to packages in scope ${packageScope}: ${scopeLinkedPackages.join(', ')}`);\n logger.verbose('This may be expected if other packages in your workspace are still linked');\n } else {\n logger.info('✅ No problematic links found');\n }\n } catch {\n // If JSON parsing fails, fall back to basic check\n logger.verbose('Failed to parse npm ls --link --json output, using basic check');\n if (result.stdout.includes(packageScope)) {\n logger.warn(`⚠️ Found remaining links to packages in scope ${packageScope}`);\n logger.verbose('This may be expected if other packages in your workspace are still linked');\n } else {\n logger.info('✅ No problematic links found');\n }\n }\n } else {\n logger.info('✅ No problematic links found');\n }\n } catch {\n // npm ls --link returns non-zero when there are no links, which is what we want\n // So we only log this at verbose level\n logger.verbose('npm ls --link check completed (non-zero exit is expected when no links exist)');\n }\n\n const summary = `Successfully unlinked ${packageName}`;\n logger.info(summary);\n return summary;\n }\n\n // New scope-based unlinking behavior\n logger.info(`🔓 Unlinking scope/package: ${packageArgument}`);\n\n const { scope, packageName } = parsePackageArgument(packageArgument);\n logger.verbose(`Parsed scope: ${scope}, package: ${packageName || 'all packages in scope'}`);\n\n // Find matching packages in the workspace\n const matchingPackages = await findMatchingPackages(targetDirectories, scope, storage, logger, packageName);\n\n if (matchingPackages.length === 0) {\n const message = packageName\n ? `No package found matching: ${packageName}`\n : `No packages found in scope: ${scope}`;\n logger.warn(message);\n return message;\n }\n\n logger.info(`Found ${matchingPackages.length} matching package(s)`);\n\n const unlinkedPackages: string[] = [];\n\n // If specific package name provided, use that; otherwise unlink all packages in scope\n const packagesToUnlink = packageName\n ? matchingPackages.filter(pkg => pkg.name === packageName)\n : matchingPackages;\n\n for (const pkg of packagesToUnlink) {\n logger.info(`Processing package: ${pkg.name}`);\n\n // Step A: Find all packages that depend on this package and unlink them first\n const consumingPackages = await findConsumingPackages(targetDirectories, pkg.name, storage, logger);\n\n if (consumingPackages.length === 0) {\n logger.info(`No consuming packages found for: ${pkg.name}`);\n } else {\n logger.info(`Found ${consumingPackages.length} consuming package(s) for: ${pkg.name}`);\n\n for (const consumer of consumingPackages) {\n try {\n const consumerOriginalCwd = process.cwd();\n process.chdir(consumer.path);\n\n try {\n if (isDryRun) {\n logger.info(`DRY RUN: Would run 'npm unlink ${pkg.name}' in: ${consumer.path}`);\n } else {\n logger.verbose(`Running 'npm unlink ${pkg.name}' in consumer: ${consumer.path}`);\n await runSecure('npm', ['unlink', pkg.name]);\n logger.info(`✅ Consumer unlinked: ${consumer.name} -/-> ${pkg.name}`);\n }\n } finally {\n process.chdir(consumerOriginalCwd);\n }\n } catch (error: any) {\n // npm unlink can fail if package wasn't linked, but that's OK\n logger.warn(`⚠️ Failed to unlink ${pkg.name} in ${consumer.name}: ${error.message}`);\n }\n }\n }\n\n // Step B: Run 'npm unlink' in the source package directory\n try {\n const originalCwd = process.cwd();\n process.chdir(pkg.path);\n\n try {\n if (isDryRun) {\n logger.info(`DRY RUN: Would run 'npm unlink' in: ${pkg.path}`);\n } else {\n logger.verbose(`Running 'npm unlink' in source: ${pkg.path}`);\n await run('npm unlink');\n logger.info(`✅ Source unlinked: ${pkg.name}`);\n }\n } finally {\n process.chdir(originalCwd);\n }\n\n unlinkedPackages.push(pkg.name);\n } catch (error: any) {\n // npm unlink can fail if package wasn't linked, but that's OK\n logger.warn(`⚠️ Failed to unlink source package ${pkg.name}: ${error.message}`);\n unlinkedPackages.push(pkg.name); // Still count as success\n }\n }\n\n const summary = `Successfully unlinked ${unlinkedPackages.length} package(s): ${unlinkedPackages.join(', ')}`;\n logger.info(summary);\n return summary;\n};\n\nexport const execute = async (runConfig: Config, packageArgument?: string): Promise<string> => {\n try {\n // Use packageArgument from runConfig if not provided as parameter\n const finalPackageArgument = packageArgument || runConfig.unlink?.packageArgument;\n return await executeInternal(runConfig, finalPackageArgument);\n } catch (error: any) {\n const logger = getLogger();\n logger.error(`unlink failed: ${error.message}`);\n throw error;\n }\n};\n"],"names":["parsePackageArgument","packageArg","startsWith","parts","split","length","scope","packageName","Error","findMatchingPackages","targetDirectories","storage","logger","matchingPackages","allPackageJsonFiles","targetDirectory","packageJsonFiles","findAllPackageJsonFiles","concat","packageJsonLocation","packageDir","path","replace","packageJsonContent","readFile","parsed","safeJsonParse","packageJson","validatePackageJson","name","isInScope","isExactMatch","push","isSource","error","warn","message","findConsumingPackages","targetPackageName","consumingPackages","dependencyTypes","hasDependency","some","depType","executeInternal","runConfig","packageArgument","isDryRun","dryRun","unlink","getDryRunLogger","createStorage","log","info","tree","directories","process","cwd","join","currentDir","packageJsonPath","exists","cleanNodeModules","run","util","child_process","execPromise","promisify","exec","result","packageScope","includes","stdout","trim","linksData","linkedPackages","Object","keys","dependencies","scopeLinkedPackages","filter","pkg","verbose","summary","unlinkedPackages","packagesToUnlink","consumer","consumerOriginalCwd","chdir","runSecure","originalCwd","execute","finalPackageArgument","getLogger"],"mappings":"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"}
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import path__default from 'path';
|
|
3
|
+
import fs__default from 'fs/promises';
|
|
4
|
+
import { getLogger } from '../logging.js';
|
|
5
|
+
import { create } from '../util/storage.js';
|
|
6
|
+
import { safeJsonParse, validatePackageJson } from '../util/validation.js';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Discover all package.json files in the workspace
|
|
10
|
+
*/ const discoverPackages = async (directories, logger)=>{
|
|
11
|
+
const storage = create({
|
|
12
|
+
log: logger.info
|
|
13
|
+
});
|
|
14
|
+
const packages = [];
|
|
15
|
+
for (const directory of directories){
|
|
16
|
+
logger.verbose(`Scanning directory: ${directory}`);
|
|
17
|
+
try {
|
|
18
|
+
const packageJsonPath = path__default.join(directory, 'package.json');
|
|
19
|
+
if (await storage.exists(packageJsonPath)) {
|
|
20
|
+
const packageJsonContent = await storage.readFile(packageJsonPath, 'utf-8');
|
|
21
|
+
const parsed = safeJsonParse(packageJsonContent, packageJsonPath);
|
|
22
|
+
const packageJson = validatePackageJson(parsed, packageJsonPath);
|
|
23
|
+
if (packageJson.name) {
|
|
24
|
+
packages.push({
|
|
25
|
+
name: packageJson.name,
|
|
26
|
+
version: packageJson.version,
|
|
27
|
+
packageJsonPath
|
|
28
|
+
});
|
|
29
|
+
logger.verbose(`Found package: ${packageJson.name}@${packageJson.version}`);
|
|
30
|
+
}
|
|
31
|
+
} else {
|
|
32
|
+
// Look for nested package.json files in subdirectories
|
|
33
|
+
try {
|
|
34
|
+
const entries = await fs__default.readdir(directory, {
|
|
35
|
+
withFileTypes: true
|
|
36
|
+
});
|
|
37
|
+
for (const entry of entries){
|
|
38
|
+
if (entry.isDirectory() && !entry.name.startsWith('.') && entry.name !== 'node_modules') {
|
|
39
|
+
const subDir = path__default.join(directory, entry.name);
|
|
40
|
+
const subPackages = await discoverPackages([
|
|
41
|
+
subDir
|
|
42
|
+
], logger);
|
|
43
|
+
packages.push(...subPackages);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
} catch (error) {
|
|
47
|
+
logger.debug(`Could not scan subdirectories in ${directory}: ${error}`);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
} catch (error) {
|
|
51
|
+
logger.warn(`Failed to process ${directory}: ${error.message}`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return packages;
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* Extract scope from package name (e.g., "@eldrforge/package" -> "@eldrforge")
|
|
58
|
+
*/ const getPackageScope = (packageName)=>{
|
|
59
|
+
if (packageName.startsWith('@')) {
|
|
60
|
+
const parts = packageName.split('/');
|
|
61
|
+
if (parts.length >= 2) {
|
|
62
|
+
return parts[0];
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return null;
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* Normalize version string to major.minor format (remove patch version)
|
|
69
|
+
*/ const normalizeToMinorVersion = (versionString)=>{
|
|
70
|
+
// Extract the version number, preserving any prefix (^, ~, >=, etc.)
|
|
71
|
+
const match = versionString.match(/^([^0-9]*)([0-9]+\.[0-9]+)(\.[0-9]+)?(.*)$/);
|
|
72
|
+
if (match) {
|
|
73
|
+
const [, prefix, majorMinor, , suffix] = match;
|
|
74
|
+
return `${prefix}${majorMinor}${suffix || ''}`;
|
|
75
|
+
}
|
|
76
|
+
// If it doesn't match the expected pattern, return as-is
|
|
77
|
+
return versionString;
|
|
78
|
+
};
|
|
79
|
+
/**
|
|
80
|
+
* Update dependencies in a package.json to normalize same-scope dependencies to major.minor format
|
|
81
|
+
*/ const updateDependenciesMinor = async (packageInfo, allPackages, isDryRun, logger)=>{
|
|
82
|
+
const storage = create({
|
|
83
|
+
log: logger.info
|
|
84
|
+
});
|
|
85
|
+
const currentScope = getPackageScope(packageInfo.name);
|
|
86
|
+
if (!currentScope) {
|
|
87
|
+
logger.verbose(`Skipping ${packageInfo.name} - not a scoped package`);
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
logger.verbose(`Processing ${packageInfo.name} for scope ${currentScope}`);
|
|
91
|
+
try {
|
|
92
|
+
const packageJsonContent = await storage.readFile(packageInfo.packageJsonPath, 'utf-8');
|
|
93
|
+
const parsed = safeJsonParse(packageJsonContent, packageInfo.packageJsonPath);
|
|
94
|
+
const packageJson = validatePackageJson(parsed, packageInfo.packageJsonPath);
|
|
95
|
+
const sectionsToUpdate = [
|
|
96
|
+
'dependencies',
|
|
97
|
+
'devDependencies',
|
|
98
|
+
'peerDependencies'
|
|
99
|
+
];
|
|
100
|
+
let hasChanges = false;
|
|
101
|
+
// Create a set of same-scope package names for quick lookup
|
|
102
|
+
const sameScopePackageNames = new Set();
|
|
103
|
+
for (const pkg of allPackages){
|
|
104
|
+
const pkgScope = getPackageScope(pkg.name);
|
|
105
|
+
if (pkgScope === currentScope) {
|
|
106
|
+
sameScopePackageNames.add(pkg.name);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
for (const section of sectionsToUpdate){
|
|
110
|
+
const deps = packageJson[section];
|
|
111
|
+
if (!deps) continue;
|
|
112
|
+
for (const [depName, currentVersion] of Object.entries(deps)){
|
|
113
|
+
// Update if this is a same-scope dependency (check scope, not just discovered packages)
|
|
114
|
+
const depScope = getPackageScope(depName);
|
|
115
|
+
if (depScope === currentScope) {
|
|
116
|
+
const normalizedVersion = normalizeToMinorVersion(currentVersion);
|
|
117
|
+
if (currentVersion !== normalizedVersion) {
|
|
118
|
+
if (isDryRun) {
|
|
119
|
+
logger.info(`Would update ${section}.${depName}: ${currentVersion} → ${normalizedVersion}`);
|
|
120
|
+
} else {
|
|
121
|
+
logger.info(`Updating ${section}.${depName}: ${currentVersion} → ${normalizedVersion}`);
|
|
122
|
+
deps[depName] = normalizedVersion;
|
|
123
|
+
}
|
|
124
|
+
hasChanges = true;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
if (hasChanges && !isDryRun) {
|
|
130
|
+
// Write updated package.json
|
|
131
|
+
await storage.writeFile(packageInfo.packageJsonPath, JSON.stringify(packageJson, null, 2) + '\n', 'utf-8');
|
|
132
|
+
logger.info(`Updated dependencies in ${packageInfo.name}`);
|
|
133
|
+
}
|
|
134
|
+
return hasChanges;
|
|
135
|
+
} catch (error) {
|
|
136
|
+
logger.warn(`Failed to update dependencies in ${packageInfo.name}: ${error.message}`);
|
|
137
|
+
return false;
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
/**
|
|
141
|
+
* Execute the versions minor command
|
|
142
|
+
*/ const executeMinor = async (runConfig)=>{
|
|
143
|
+
var _runConfig_versions;
|
|
144
|
+
const logger = getLogger();
|
|
145
|
+
const isDryRun = runConfig.dryRun || false;
|
|
146
|
+
logger.info('🔄 Normalizing same-scope dependencies to major.minor format...');
|
|
147
|
+
// Determine directories to scan
|
|
148
|
+
const directories = ((_runConfig_versions = runConfig.versions) === null || _runConfig_versions === void 0 ? void 0 : _runConfig_versions.directories) || runConfig.contextDirectories || [
|
|
149
|
+
process.cwd()
|
|
150
|
+
];
|
|
151
|
+
if (directories.length === 0) {
|
|
152
|
+
directories.push(process.cwd());
|
|
153
|
+
}
|
|
154
|
+
logger.verbose(`Scanning directories: ${directories.join(', ')}`);
|
|
155
|
+
// Discover all packages
|
|
156
|
+
const allPackages = await discoverPackages(directories, logger);
|
|
157
|
+
if (allPackages.length === 0) {
|
|
158
|
+
logger.warn('No packages found in the specified directories');
|
|
159
|
+
return 'No packages found to process.';
|
|
160
|
+
}
|
|
161
|
+
logger.info(`Found ${allPackages.length} packages`);
|
|
162
|
+
// Group packages by scope
|
|
163
|
+
const packagesByScope = new Map();
|
|
164
|
+
const unscopedPackages = [];
|
|
165
|
+
for (const pkg of allPackages){
|
|
166
|
+
const scope = getPackageScope(pkg.name);
|
|
167
|
+
if (scope) {
|
|
168
|
+
if (!packagesByScope.has(scope)) {
|
|
169
|
+
packagesByScope.set(scope, []);
|
|
170
|
+
}
|
|
171
|
+
packagesByScope.get(scope).push(pkg);
|
|
172
|
+
} else {
|
|
173
|
+
unscopedPackages.push(pkg);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
logger.info(`Found ${packagesByScope.size} scopes: ${Array.from(packagesByScope.keys()).join(', ')}`);
|
|
177
|
+
if (unscopedPackages.length > 0) {
|
|
178
|
+
logger.info(`Found ${unscopedPackages.length} unscoped packages (will be skipped)`);
|
|
179
|
+
// Log each unscoped package being skipped
|
|
180
|
+
for (const pkg of unscopedPackages){
|
|
181
|
+
logger.verbose(`Skipping ${pkg.name} - not a scoped package`);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
let totalUpdated = 0;
|
|
185
|
+
let totalChanges = 0;
|
|
186
|
+
// Process each scope
|
|
187
|
+
for (const [scope, packages] of packagesByScope){
|
|
188
|
+
logger.info(`\n📦 Processing scope: ${scope} (${packages.length} packages)`);
|
|
189
|
+
for (const pkg of packages){
|
|
190
|
+
const hasChanges = await updateDependenciesMinor(pkg, allPackages, isDryRun, logger);
|
|
191
|
+
if (hasChanges) {
|
|
192
|
+
totalChanges++;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
totalUpdated += packages.length;
|
|
196
|
+
}
|
|
197
|
+
const verb = isDryRun ? 'Would update' : 'Updated';
|
|
198
|
+
const summary = `${verb} ${totalChanges} of ${totalUpdated} packages with dependency changes.`;
|
|
199
|
+
if (isDryRun) {
|
|
200
|
+
logger.info(`\n✅ Dry run complete. ${summary}`);
|
|
201
|
+
return `Dry run complete. ${summary}`;
|
|
202
|
+
} else {
|
|
203
|
+
logger.info(`\n✅ Dependencies updated successfully. ${summary}`);
|
|
204
|
+
return `Dependencies updated successfully. ${summary}`;
|
|
205
|
+
}
|
|
206
|
+
};
|
|
207
|
+
/**
|
|
208
|
+
* Main execute function for the versions command
|
|
209
|
+
*/ const execute = async (runConfig)=>{
|
|
210
|
+
var _runConfig_versions;
|
|
211
|
+
const subcommand = (_runConfig_versions = runConfig.versions) === null || _runConfig_versions === void 0 ? void 0 : _runConfig_versions.subcommand;
|
|
212
|
+
if (!subcommand) {
|
|
213
|
+
throw new Error('Versions command requires a subcommand. Use: kodrdriv versions minor');
|
|
214
|
+
}
|
|
215
|
+
switch(subcommand){
|
|
216
|
+
case 'minor':
|
|
217
|
+
return await executeMinor(runConfig);
|
|
218
|
+
default:
|
|
219
|
+
throw new Error(`Unknown versions subcommand: ${subcommand}. Supported: minor`);
|
|
220
|
+
}
|
|
221
|
+
};
|
|
222
|
+
|
|
223
|
+
export { execute };
|
|
224
|
+
//# sourceMappingURL=versions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"versions.js","sources":["../../src/commands/versions.ts"],"sourcesContent":["#!/usr/bin/env node\n/**\n * Versions command - Update dependency versions in package.json files\n *\n * This command helps manage dependency versions across packages in a workspace.\n * It can update dependencies to use semantic versioning patterns (^, ~, etc.)\n * for packages within the same scope.\n *\n * Supported subcommands:\n * - minor: Updates all same-scope dependencies to use ^ (caret) range for minor updates\n */\n\nimport path from 'path';\nimport fs from 'fs/promises';\nimport { getLogger } from '../logging';\nimport { Config } from '../types';\nimport { create as createStorage } from '../util/storage';\nimport { safeJsonParse, validatePackageJson } from '../util/validation';\n\n\ninterface PackageInfo {\n name: string;\n version: string;\n packageJsonPath: string;\n}\n\n/**\n * Discover all package.json files in the workspace\n */\nconst discoverPackages = async (\n directories: string[],\n logger: any\n): Promise<PackageInfo[]> => {\n const storage = createStorage({ log: logger.info });\n const packages: PackageInfo[] = [];\n\n for (const directory of directories) {\n logger.verbose(`Scanning directory: ${directory}`);\n\n try {\n const packageJsonPath = path.join(directory, 'package.json');\n\n if (await storage.exists(packageJsonPath)) {\n const packageJsonContent = await storage.readFile(packageJsonPath, 'utf-8');\n const parsed = safeJsonParse(packageJsonContent, packageJsonPath);\n const packageJson = validatePackageJson(parsed, packageJsonPath);\n\n if (packageJson.name) {\n packages.push({\n name: packageJson.name,\n version: packageJson.version,\n packageJsonPath\n });\n logger.verbose(`Found package: ${packageJson.name}@${packageJson.version}`);\n }\n } else {\n // Look for nested package.json files in subdirectories\n try {\n const entries = await fs.readdir(directory, { withFileTypes: true });\n for (const entry of entries) {\n if (entry.isDirectory() && !entry.name.startsWith('.') && entry.name !== 'node_modules') {\n const subDir = path.join(directory, entry.name);\n const subPackages = await discoverPackages([subDir], logger);\n packages.push(...subPackages);\n }\n }\n } catch (error) {\n logger.debug(`Could not scan subdirectories in ${directory}: ${error}`);\n }\n }\n } catch (error: any) {\n logger.warn(`Failed to process ${directory}: ${error.message}`);\n }\n }\n\n return packages;\n};\n\n/**\n * Extract scope from package name (e.g., \"@eldrforge/package\" -> \"@eldrforge\")\n */\nconst getPackageScope = (packageName: string): string | null => {\n if (packageName.startsWith('@')) {\n const parts = packageName.split('/');\n if (parts.length >= 2) {\n return parts[0];\n }\n }\n return null;\n};\n\n\n\n/**\n * Normalize version string to major.minor format (remove patch version)\n */\nconst normalizeToMinorVersion = (versionString: string): string => {\n // Extract the version number, preserving any prefix (^, ~, >=, etc.)\n const match = versionString.match(/^([^0-9]*)([0-9]+\\.[0-9]+)(\\.[0-9]+)?(.*)$/);\n\n if (match) {\n const [, prefix, majorMinor, , suffix] = match;\n return `${prefix}${majorMinor}${suffix || ''}`;\n }\n\n // If it doesn't match the expected pattern, return as-is\n return versionString;\n};\n\n/**\n * Update dependencies in a package.json to normalize same-scope dependencies to major.minor format\n */\nconst updateDependenciesMinor = async (\n packageInfo: PackageInfo,\n allPackages: PackageInfo[],\n isDryRun: boolean,\n logger: any\n): Promise<boolean> => {\n const storage = createStorage({ log: logger.info });\n const currentScope = getPackageScope(packageInfo.name);\n\n if (!currentScope) {\n logger.verbose(`Skipping ${packageInfo.name} - not a scoped package`);\n return false;\n }\n\n logger.verbose(`Processing ${packageInfo.name} for scope ${currentScope}`);\n\n try {\n const packageJsonContent = await storage.readFile(packageInfo.packageJsonPath, 'utf-8');\n const parsed = safeJsonParse(packageJsonContent, packageInfo.packageJsonPath);\n const packageJson = validatePackageJson(parsed, packageInfo.packageJsonPath);\n\n const sectionsToUpdate = ['dependencies', 'devDependencies', 'peerDependencies'];\n let hasChanges = false;\n\n // Create a set of same-scope package names for quick lookup\n const sameScopePackageNames = new Set<string>();\n for (const pkg of allPackages) {\n const pkgScope = getPackageScope(pkg.name);\n if (pkgScope === currentScope) {\n sameScopePackageNames.add(pkg.name);\n }\n }\n\n for (const section of sectionsToUpdate) {\n const deps = packageJson[section];\n if (!deps) continue;\n\n for (const [depName, currentVersion] of Object.entries(deps)) {\n // Update if this is a same-scope dependency (check scope, not just discovered packages)\n const depScope = getPackageScope(depName);\n if (depScope === currentScope) {\n const normalizedVersion = normalizeToMinorVersion(currentVersion as string);\n\n if (currentVersion !== normalizedVersion) {\n if (isDryRun) {\n logger.info(`Would update ${section}.${depName}: ${currentVersion} → ${normalizedVersion}`);\n } else {\n logger.info(`Updating ${section}.${depName}: ${currentVersion} → ${normalizedVersion}`);\n deps[depName] = normalizedVersion;\n }\n hasChanges = true;\n }\n }\n }\n }\n\n if (hasChanges && !isDryRun) {\n // Write updated package.json\n await storage.writeFile(\n packageInfo.packageJsonPath,\n JSON.stringify(packageJson, null, 2) + '\\n',\n 'utf-8'\n );\n logger.info(`Updated dependencies in ${packageInfo.name}`);\n }\n\n return hasChanges;\n\n } catch (error: any) {\n logger.warn(`Failed to update dependencies in ${packageInfo.name}: ${error.message}`);\n return false;\n }\n};\n\n/**\n * Execute the versions minor command\n */\nconst executeMinor = async (runConfig: Config): Promise<string> => {\n const logger = getLogger();\n const isDryRun = runConfig.dryRun || false;\n\n logger.info('🔄 Normalizing same-scope dependencies to major.minor format...');\n\n // Determine directories to scan\n const directories = runConfig.versions?.directories ||\n runConfig.contextDirectories ||\n [process.cwd()];\n\n if (directories.length === 0) {\n directories.push(process.cwd());\n }\n\n logger.verbose(`Scanning directories: ${directories.join(', ')}`);\n\n // Discover all packages\n const allPackages = await discoverPackages(directories, logger);\n\n if (allPackages.length === 0) {\n logger.warn('No packages found in the specified directories');\n return 'No packages found to process.';\n }\n\n logger.info(`Found ${allPackages.length} packages`);\n\n // Group packages by scope\n const packagesByScope = new Map<string, PackageInfo[]>();\n const unscopedPackages: PackageInfo[] = [];\n\n for (const pkg of allPackages) {\n const scope = getPackageScope(pkg.name);\n if (scope) {\n if (!packagesByScope.has(scope)) {\n packagesByScope.set(scope, []);\n }\n packagesByScope.get(scope)!.push(pkg);\n } else {\n unscopedPackages.push(pkg);\n }\n }\n\n logger.info(`Found ${packagesByScope.size} scopes: ${Array.from(packagesByScope.keys()).join(', ')}`);\n if (unscopedPackages.length > 0) {\n logger.info(`Found ${unscopedPackages.length} unscoped packages (will be skipped)`);\n // Log each unscoped package being skipped\n for (const pkg of unscopedPackages) {\n logger.verbose(`Skipping ${pkg.name} - not a scoped package`);\n }\n }\n\n let totalUpdated = 0;\n let totalChanges = 0;\n\n // Process each scope\n for (const [scope, packages] of packagesByScope) {\n logger.info(`\\n📦 Processing scope: ${scope} (${packages.length} packages)`);\n\n for (const pkg of packages) {\n const hasChanges = await updateDependenciesMinor(pkg, allPackages, isDryRun, logger);\n if (hasChanges) {\n totalChanges++;\n }\n }\n totalUpdated += packages.length;\n }\n\n const verb = isDryRun ? 'Would update' : 'Updated';\n const summary = `${verb} ${totalChanges} of ${totalUpdated} packages with dependency changes.`;\n\n if (isDryRun) {\n logger.info(`\\n✅ Dry run complete. ${summary}`);\n return `Dry run complete. ${summary}`;\n } else {\n logger.info(`\\n✅ Dependencies updated successfully. ${summary}`);\n return `Dependencies updated successfully. ${summary}`;\n }\n};\n\n/**\n * Main execute function for the versions command\n */\nexport const execute = async (runConfig: Config): Promise<string> => {\n const subcommand = runConfig.versions?.subcommand;\n\n if (!subcommand) {\n throw new Error('Versions command requires a subcommand. Use: kodrdriv versions minor');\n }\n\n switch (subcommand) {\n case 'minor':\n return await executeMinor(runConfig);\n default:\n throw new Error(`Unknown versions subcommand: ${subcommand}. Supported: minor`);\n }\n};\n"],"names":["discoverPackages","directories","logger","storage","createStorage","log","info","packages","directory","verbose","packageJsonPath","path","join","exists","packageJsonContent","readFile","parsed","safeJsonParse","packageJson","validatePackageJson","name","push","version","entries","fs","readdir","withFileTypes","entry","isDirectory","startsWith","subDir","subPackages","error","debug","warn","message","getPackageScope","packageName","parts","split","length","normalizeToMinorVersion","versionString","match","prefix","majorMinor","suffix","updateDependenciesMinor","packageInfo","allPackages","isDryRun","currentScope","sectionsToUpdate","hasChanges","sameScopePackageNames","Set","pkg","pkgScope","add","section","deps","depName","currentVersion","Object","depScope","normalizedVersion","writeFile","JSON","stringify","executeMinor","runConfig","getLogger","dryRun","versions","contextDirectories","process","cwd","packagesByScope","Map","unscopedPackages","scope","has","set","get","size","Array","from","keys","totalUpdated","totalChanges","verb","summary","execute","subcommand","Error"],"mappings":"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"}
|
package/dist/constants.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import os__default from 'os';
|
|
2
2
|
import path__default from 'path';
|
|
3
3
|
|
|
4
|
-
const VERSION = '
|
|
4
|
+
const VERSION = '1.2.1 (HEAD/d795376 T:v1.2.1 2025-08-12 12:17:38 -0700) linux x64 v22.18.0';
|
|
5
5
|
const PROGRAM_NAME = 'kodrdriv';
|
|
6
6
|
const DEFAULT_OVERRIDES = false;
|
|
7
7
|
const DATE_FORMAT_YEAR_MONTH_DAY_HOURS_MINUTES_SECONDS_MILLISECONDS = 'YYYY-MM-DD-HHmmss.SSS';
|
|
@@ -15,7 +15,7 @@ const DEFAULT_GIT_COMMAND_MAX_BUFFER = 50 * 1024 * 1024; // 50MB
|
|
|
15
15
|
const DEFAULT_CONTEXT_DIRECTORIES = [];
|
|
16
16
|
const DEFAULT_CONFIG_DIR = '.kodrdriv';
|
|
17
17
|
const DEFAULT_PREFERENCES_DIRECTORY = path__default.join(os__default.homedir(), '.kodrdriv');
|
|
18
|
-
const DEFAULT_FROM_COMMIT_ALIAS = '
|
|
18
|
+
const DEFAULT_FROM_COMMIT_ALIAS = 'main';
|
|
19
19
|
const DEFAULT_TO_COMMIT_ALIAS = 'HEAD';
|
|
20
20
|
const DEFAULT_ADD = false;
|
|
21
21
|
const DEFAULT_CACHED = false;
|
|
@@ -23,7 +23,7 @@ const DEFAULT_SENDIT_MODE = false;
|
|
|
23
23
|
const DEFAULT_INTERACTIVE_MODE = false;
|
|
24
24
|
const DEFAULT_AMEND_MODE = false;
|
|
25
25
|
const DEFAULT_MESSAGE_LIMIT = 50;
|
|
26
|
-
const DEFAULT_MAX_DIFF_BYTES =
|
|
26
|
+
const DEFAULT_MAX_DIFF_BYTES = 20480; // 20KB limit per file
|
|
27
27
|
const DEFAULT_MERGE_METHOD = 'squash';
|
|
28
28
|
const DEFAULT_EXCLUDED_PATTERNS = [
|
|
29
29
|
'node_modules',
|
|
@@ -72,6 +72,8 @@ const COMMAND_TREE = 'tree';
|
|
|
72
72
|
const COMMAND_LINK = 'link';
|
|
73
73
|
const COMMAND_UNLINK = 'unlink';
|
|
74
74
|
const COMMAND_CLEAN = 'clean';
|
|
75
|
+
const COMMAND_DEVELOPMENT = 'development';
|
|
76
|
+
const COMMAND_VERSIONS = 'versions';
|
|
75
77
|
const COMMAND_CHECK_CONFIG = 'check-config';
|
|
76
78
|
const COMMAND_INIT_CONFIG = 'init-config';
|
|
77
79
|
const ALLOWED_COMMANDS = [
|
|
@@ -85,7 +87,9 @@ const ALLOWED_COMMANDS = [
|
|
|
85
87
|
COMMAND_TREE,
|
|
86
88
|
COMMAND_LINK,
|
|
87
89
|
COMMAND_UNLINK,
|
|
88
|
-
COMMAND_CLEAN
|
|
90
|
+
COMMAND_CLEAN,
|
|
91
|
+
COMMAND_DEVELOPMENT,
|
|
92
|
+
COMMAND_VERSIONS
|
|
89
93
|
];
|
|
90
94
|
const DEFAULT_COMMAND = COMMAND_COMMIT;
|
|
91
95
|
// Define defaults in one place
|
|
@@ -115,7 +119,8 @@ const KODRDRIV_DEFAULTS = {
|
|
|
115
119
|
to: DEFAULT_TO_COMMIT_ALIAS,
|
|
116
120
|
messageLimit: DEFAULT_MESSAGE_LIMIT,
|
|
117
121
|
interactive: DEFAULT_INTERACTIVE_MODE,
|
|
118
|
-
maxDiffBytes: DEFAULT_MAX_DIFF_BYTES
|
|
122
|
+
maxDiffBytes: DEFAULT_MAX_DIFF_BYTES,
|
|
123
|
+
noMilestones: false
|
|
119
124
|
},
|
|
120
125
|
audioCommit: {
|
|
121
126
|
maxRecordingTime: 300,
|
|
@@ -158,29 +163,43 @@ const KODRDRIV_DEFAULTS = {
|
|
|
158
163
|
linkWorkspacePackages: true,
|
|
159
164
|
unlinkWorkspacePackages: true,
|
|
160
165
|
sendit: DEFAULT_SENDIT_MODE,
|
|
161
|
-
targetBranch: 'main'
|
|
166
|
+
targetBranch: 'main',
|
|
167
|
+
noMilestones: false
|
|
162
168
|
},
|
|
163
169
|
link: {
|
|
164
170
|
scopeRoots: {},
|
|
165
|
-
dryRun: false
|
|
171
|
+
dryRun: false,
|
|
172
|
+
packageArgument: undefined
|
|
166
173
|
},
|
|
167
174
|
unlink: {
|
|
168
175
|
scopeRoots: {},
|
|
169
176
|
workspaceFile: undefined,
|
|
170
177
|
dryRun: false,
|
|
171
|
-
cleanNodeModules: false
|
|
178
|
+
cleanNodeModules: false,
|
|
179
|
+
packageArgument: undefined
|
|
172
180
|
},
|
|
173
181
|
tree: {
|
|
174
182
|
directories: undefined,
|
|
175
183
|
excludedPatterns: undefined,
|
|
176
184
|
startFrom: undefined,
|
|
185
|
+
stopAt: undefined,
|
|
177
186
|
cmd: undefined,
|
|
178
187
|
parallel: false,
|
|
179
188
|
builtInCommand: undefined,
|
|
180
|
-
continue: false
|
|
189
|
+
continue: false,
|
|
190
|
+
packageArgument: undefined,
|
|
191
|
+
cleanNodeModules: false
|
|
192
|
+
},
|
|
193
|
+
development: {
|
|
194
|
+
targetVersion: 'patch',
|
|
195
|
+
noMilestones: false
|
|
196
|
+
},
|
|
197
|
+
versions: {
|
|
198
|
+
subcommand: undefined,
|
|
199
|
+
directories: undefined
|
|
181
200
|
},
|
|
182
201
|
excludedPatterns: DEFAULT_EXCLUDED_PATTERNS
|
|
183
202
|
};
|
|
184
203
|
|
|
185
|
-
export { ALLOWED_COMMANDS, COMMAND_AUDIO_COMMIT, COMMAND_AUDIO_REVIEW, COMMAND_CHECK_CONFIG, COMMAND_CLEAN, COMMAND_COMMIT, COMMAND_INIT_CONFIG, COMMAND_LINK, COMMAND_PUBLISH, COMMAND_RELEASE, COMMAND_REVIEW, COMMAND_SELECT_AUDIO, COMMAND_TREE, COMMAND_UNLINK, DATE_FORMAT_YEAR_MONTH_DAY_HOURS_MINUTES_SECONDS_MILLISECONDS, DEFAULT_ADD, DEFAULT_AMEND_MODE, DEFAULT_CACHED, DEFAULT_COMMAND, DEFAULT_CONFIG_DIR, DEFAULT_CONTEXT_DIRECTORIES, DEFAULT_DEBUG, DEFAULT_DRY_RUN, DEFAULT_EXCLUDED_PATTERNS, DEFAULT_FROM_COMMIT_ALIAS, DEFAULT_GIT_COMMAND_MAX_BUFFER, DEFAULT_INTERACTIVE_MODE, DEFAULT_MAX_DIFF_BYTES, DEFAULT_MERGE_METHOD, DEFAULT_MESSAGE_LIMIT, DEFAULT_MODEL, DEFAULT_OUTPUT_DIRECTORY, DEFAULT_OVERRIDES, DEFAULT_PREFERENCES_DIRECTORY, DEFAULT_SENDIT_MODE, DEFAULT_TO_COMMIT_ALIAS, DEFAULT_VERBOSE, KODRDRIV_DEFAULTS, PROGRAM_NAME, VERSION };
|
|
204
|
+
export { ALLOWED_COMMANDS, COMMAND_AUDIO_COMMIT, COMMAND_AUDIO_REVIEW, COMMAND_CHECK_CONFIG, COMMAND_CLEAN, COMMAND_COMMIT, COMMAND_DEVELOPMENT, COMMAND_INIT_CONFIG, COMMAND_LINK, COMMAND_PUBLISH, COMMAND_RELEASE, COMMAND_REVIEW, COMMAND_SELECT_AUDIO, COMMAND_TREE, COMMAND_UNLINK, COMMAND_VERSIONS, DATE_FORMAT_YEAR_MONTH_DAY_HOURS_MINUTES_SECONDS_MILLISECONDS, DEFAULT_ADD, DEFAULT_AMEND_MODE, DEFAULT_CACHED, DEFAULT_COMMAND, DEFAULT_CONFIG_DIR, DEFAULT_CONTEXT_DIRECTORIES, DEFAULT_DEBUG, DEFAULT_DRY_RUN, DEFAULT_EXCLUDED_PATTERNS, DEFAULT_FROM_COMMIT_ALIAS, DEFAULT_GIT_COMMAND_MAX_BUFFER, DEFAULT_INTERACTIVE_MODE, DEFAULT_MAX_DIFF_BYTES, DEFAULT_MERGE_METHOD, DEFAULT_MESSAGE_LIMIT, DEFAULT_MODEL, DEFAULT_OUTPUT_DIRECTORY, DEFAULT_OVERRIDES, DEFAULT_PREFERENCES_DIRECTORY, DEFAULT_SENDIT_MODE, DEFAULT_TO_COMMIT_ALIAS, DEFAULT_VERBOSE, KODRDRIV_DEFAULTS, PROGRAM_NAME, VERSION };
|
|
186
205
|
//# sourceMappingURL=constants.js.map
|