![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/.nvm/versions/node/v20.18.0/lib/node_modules/npm/node_modules/libnpmdiff/lib/ |
const pacote = require('pacote') const formatDiff = require('./format-diff.js') const getTarball = require('./tarball.js') const untar = require('./untar.js') // TODO: we test this condition in the diff command // so this error probably doesnt need to be here. Or // if it does we should figure out a standard code // so we can catch it in the cli and display it consistently const argsError = () => Object.assign( new TypeError('libnpmdiff needs two arguments to compare'), { code: 'EDIFFARGS' } ) const diff = async (specs, opts = {}) => { if (specs.length !== 2) { throw argsError() } const [ aManifest, bManifest, ] = await Promise.all(specs.map(spec => pacote.manifest(spec, opts))) const versions = { a: aManifest.version, b: bManifest.version, } // fetches tarball using pacote const [a, b] = await Promise.all([ getTarball(aManifest, opts), getTarball(bManifest, opts), ]) // read all files // populates `files` and `refs` const { files, refs, } = await untar([ { prefix: 'a/', item: a, }, { prefix: 'b/', item: b, }, ], opts) return formatDiff({ files, opts, refs, versions, }) } module.exports = diff