Server IP : 127.0.0.2 / Your IP : 18.116.60.81 Web Server : Apache/2.4.18 (Ubuntu) System : User : www-data ( ) PHP Version : 7.0.33-0ubuntu0.16.04.16 Disable Function : disk_free_space,disk_total_space,diskfreespace,dl,exec,fpaththru,getmyuid,getmypid,highlight_file,ignore_user_abord,leak,listen,link,opcache_get_configuration,opcache_get_status,passthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,php_uname,phpinfo,posix_ctermid,posix_getcwd,posix_getegid,posix_geteuid,posix_getgid,posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid,posix,_getppid,posix_getpwnam,posix_getpwuid,posix_getrlimit,posix_getsid,posix_getuid,posix_isatty,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setuid,posix_times,posix_ttyname,posix_uname,pclose,popen,proc_open,proc_close,proc_get_status,proc_nice,proc_terminate,shell_exec,source,show_source,system,virtual MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/share/npm/lib/ |
Upload File : |
'use strict' var resolve = require('path').resolve var readPackageJson = require('read-package-json') var mapToRegistry = require('./utils/map-to-registry.js') var npm = require('./npm.js') var whoami = require('./whoami') module.exports = access access.usage = 'npm access public [<package>]\n' + 'npm access restricted [<package>]\n' + 'npm access grant <read-only|read-write> <scope:team> [<package>]\n' + 'npm access revoke <scope:team> [<package>]\n' + 'npm access ls-packages [<user>|<scope>|<scope:team>]\n' + 'npm access ls-collaborators [<package> [<user>]]\n' + 'npm access edit [<package>]' access.subcommands = ['public', 'restricted', 'grant', 'revoke', 'ls-packages', 'ls-collaborators', 'edit'] access.completion = function (opts, cb) { var argv = opts.conf.argv.remain if (argv.length === 2) { return cb(null, access.subcommands) } switch (argv[2]) { case 'grant': if (argv.length === 3) { return cb(null, ['read-only', 'read-write']) } else { return cb(null, []) } break case 'public': case 'restricted': case 'ls-packages': case 'ls-collaborators': case 'edit': return cb(null, []) case 'revoke': return cb(null, []) default: return cb(new Error(argv[2] + ' not recognized')) } } function access (args, cb) { var cmd = args.shift() var params return parseParams(cmd, args, function (err, p) { if (err) { return cb(err) } params = p return mapToRegistry(params.package, npm.config, invokeCmd) }) function invokeCmd (err, uri, auth, base) { if (err) { return cb(err) } params.auth = auth try { return npm.registry.access(cmd, uri, params, function (err, data) { !err && data && console.log(JSON.stringify(data, undefined, 2)) cb(err, data) }) } catch (e) { cb(e.message + '\n\nUsage:\n' + access.usage) } } } function parseParams (cmd, args, cb) { // mapToRegistry will complain if package is undefined, // but it's not needed for ls-packages var params = { 'package': '' } if (cmd === 'grant') { params.permissions = args.shift() } if (['grant', 'revoke', 'ls-packages'].indexOf(cmd) !== -1) { var entity = (args.shift() || '').split(':') params.scope = entity[0] params.team = entity[1] } if (cmd === 'ls-packages') { if (!params.scope) { whoami([], true, function (err, scope) { params.scope = scope cb(err, params) }) } else { cb(null, params) } } else { getPackage(args.shift(), function (err, pkg) { if (err) return cb(err) params.package = pkg if (cmd === 'ls-collaborators') params.user = args.shift() cb(null, params) }) } } function getPackage (name, cb) { if (name && name.trim()) { cb(null, name.trim()) } else { readPackageJson( resolve(npm.prefix, 'package.json'), function (err, data) { if (err) { if (err.code === 'ENOENT') { cb(new Error('no package name passed to command and no package.json found')) } else { cb(err) } } else { cb(null, data.name) } } ) } }