* Recursively find all package.json files in a directory
(dir, files = [])
| 26 | * Recursively find all package.json files in a directory |
| 27 | */ |
| 28 | function findPackageJsonFiles(dir, files = []) { |
| 29 | const items = readdirSync(dir) |
| 30 | |
| 31 | for (const item of items) { |
| 32 | const fullPath = join(dir, item) |
| 33 | const stat = statSync(fullPath) |
| 34 | |
| 35 | if (stat.isDirectory() && item !== 'node_modules' && item !== 'dist') { |
| 36 | findPackageJsonFiles(fullPath, files) |
| 37 | } else if (item === 'package.json') { |
| 38 | files.push(fullPath) |
| 39 | } |
| 40 | } |
| 41 | |
| 42 | return files |
| 43 | } |
| 44 | |
| 45 | // Cache for package versions to avoid duplicate API calls |
| 46 | const versionCache = new Map() |