| | import serverPackageJson from '../../server/package.json' assert { type: 'json' }; |
| | import collectorPackageJson from '../../collector/package.json' assert { type: 'json' }; |
| | const { dependencies: serverDependencies } = serverPackageJson; |
| | const { dependencies: collectorDependencies } = collectorPackageJson; |
| |
|
| | const serverDependenciesKeys = Object.keys(serverDependencies); |
| | const collectorDependenciesKeys = Object.keys(collectorDependencies); |
| | const commonDependencies = Array.from(new Set([ |
| | ...serverDependenciesKeys.filter((key) => collectorDependenciesKeys.includes(key)), |
| | ...collectorDependenciesKeys.filter((key) => serverDependenciesKeys.includes(key)), |
| | ])); |
| |
|
| | const ignores = [ |
| | "@langchain/community" |
| | ] |
| |
|
| | console.log(`${commonDependencies.length} common dependencies found`, commonDependencies); |
| | console.log(`Verifying (serverVersion == collectorVersion) for each common dependency`); |
| |
|
| | const failed = []; |
| | commonDependencies.forEach((dependency) => { |
| | console.log(`Verifying ${dependency}: ${serverDependencies[dependency]} == ${collectorDependencies[dependency]}`); |
| | if (serverDependencies[dependency] !== collectorDependencies[dependency]) { |
| | if (ignores.includes(dependency)) console.log(`${dependency} is in ignore list.`); |
| | else failed.push({ dependency, serverVersion: serverDependencies[dependency], collectorVersion: collectorDependencies[dependency] }); |
| | } |
| | }); |
| |
|
| | if (failed.length > 0) { |
| | console.log(`❌ ${failed.length} dependencies failed to verify`, JSON.stringify(failed, null, 2)); |
| | throw new Error(`${failed.length} dependencies failed to verify!`); |
| | } |
| |
|
| | console.log(`👍 All dependencies match between server and collector!`); |
| |
|