Server IP : 66.29.132.122 / Your IP : 3.22.248.254 Web Server : LiteSpeed System : Linux business142.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64 User : admazpex ( 531) PHP Version : 7.2.34 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/self/root/proc/self/root/usr/lib/node_modules/npm/node_modules/package-json/ |
Upload File : |
'use strict'; const url = require('url'); const got = require('got'); const registryUrl = require('registry-url'); const registryAuthToken = require('registry-auth-token'); const semver = require('semver'); module.exports = (name, opts) => { const scope = name.split('/')[0]; const regUrl = registryUrl(scope); const pkgUrl = url.resolve(regUrl, encodeURIComponent(name).replace(/^%40/, '@')); const authInfo = registryAuthToken(regUrl, {recursive: true}); opts = Object.assign({ version: 'latest' }, opts); const headers = { accept: 'application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*' }; if (opts.fullMetadata) { delete headers.accept; } if (authInfo) { headers.authorization = `${authInfo.type} ${authInfo.token}`; } return got(pkgUrl, {json: true, headers}) .then(res => { let data = res.body; let version = opts.version; if (opts.allVersions) { return data; } if (data['dist-tags'][version]) { data = data.versions[data['dist-tags'][version]]; } else if (version) { if (!data.versions[version]) { const versions = Object.keys(data.versions); version = semver.maxSatisfying(versions, version); if (!version) { throw new Error('Version doesn\'t exist'); } } data = data.versions[version]; if (!data) { throw new Error('Version doesn\'t exist'); } } return data; }) .catch(err => { if (err.statusCode === 404) { throw new Error(`Package \`${name}\` doesn't exist`); } throw err; }); };