X7ROOT File Manager
Current Path:
/opt/alt/alt-nodejs18/root/usr/lib/node_modules/npm/lib/commands
opt
/
alt
/
alt-nodejs18
/
root
/
usr
/
lib
/
node_modules
/
npm
/
lib
/
commands
/
??
..
??
access.js
(6.04 KB)
??
adduser.js
(1.29 KB)
??
audit.js
(3.15 KB)
??
bugs.js
(847 B)
??
cache.js
(7.12 KB)
??
ci.js
(4.22 KB)
??
completion.js
(8.9 KB)
??
config.js
(11.18 KB)
??
dedupe.js
(1.41 KB)
??
deprecate.js
(2.13 KB)
??
diff.js
(8.14 KB)
??
dist-tag.js
(5.52 KB)
??
docs.js
(449 B)
??
doctor.js
(10.1 KB)
??
edit.js
(1.76 KB)
??
exec.js
(3.42 KB)
??
explain.js
(3.58 KB)
??
explore.js
(2.16 KB)
??
find-dupes.js
(634 B)
??
fund.js
(6.46 KB)
??
get.js
(577 B)
??
help-search.js
(5.52 KB)
??
help.js
(3.66 KB)
??
hook.js
(3.37 KB)
??
init.js
(6.85 KB)
??
install-ci-test.js
(373 B)
??
install-test.js
(370 B)
??
install.js
(5.15 KB)
??
link.js
(5.3 KB)
??
ll.js
(234 B)
??
login.js
(1.29 KB)
??
logout.js
(1.42 KB)
??
ls.js
(16.81 KB)
??
org.js
(4.02 KB)
??
outdated.js
(7.7 KB)
??
owner.js
(5.85 KB)
??
pack.js
(2.6 KB)
??
ping.js
(873 B)
??
pkg.js
(3.56 KB)
??
prefix.js
(335 B)
??
profile.js
(10.57 KB)
??
prune.js
(799 B)
??
publish.js
(7.19 KB)
??
query.js
(3.51 KB)
??
rebuild.js
(2.19 KB)
??
repo.js
(1.25 KB)
??
restart.js
(310 B)
??
root.js
(295 B)
??
run-script.js
(6.04 KB)
??
sbom.js
(4.51 KB)
??
search.js
(1.83 KB)
??
set.js
(671 B)
??
shrinkwrap.js
(2.65 KB)
??
star.js
(1.87 KB)
??
stars.js
(1.03 KB)
??
start.js
(300 B)
??
stop.js
(295 B)
??
team.js
(4.36 KB)
??
test.js
(295 B)
??
token.js
(6.02 KB)
??
uninstall.js
(1.52 KB)
??
unpublish.js
(5.27 KB)
??
unstar.js
(183 B)
??
update.js
(1.72 KB)
??
version.js
(3.54 KB)
??
view.js
(12.8 KB)
??
whoami.js
(527 B)
Editing: team.js
const columns = require('cli-columns') const libteam = require('libnpmteam') const { output } = require('proc-log') const { otplease } = require('../utils/auth.js') const BaseCommand = require('../base-cmd.js') class Team extends BaseCommand { static description = 'Manage organization teams and team memberships' static name = 'team' static usage = [ 'create <scope:team> [--otp <otpcode>]', 'destroy <scope:team> [--otp <otpcode>]', 'add <scope:team> <user> [--otp <otpcode>]', 'rm <scope:team> <user> [--otp <otpcode>]', 'ls <scope>|<scope:team>', ] static params = [ 'registry', 'otp', 'parseable', 'json', ] static ignoreImplicitWorkspace = false static async completion (opts) { const { conf: { argv: { remain: argv } } } = opts const subcommands = ['create', 'destroy', 'add', 'rm', 'ls'] if (argv.length === 2) { return subcommands } if (subcommands.includes(argv[2])) { return [] } throw new Error(argv[2] + ' not recognized') } async exec ([cmd, entity = '', user = '']) { // Entities are in the format <scope>:<team> // XXX: "description" option to libnpmteam is used as a description of the // team, but in npm's options, this is a boolean meaning "show the // description in npm search output". Hence its being set to null here. await otplease(this.npm, { ...this.npm.flatOptions }, opts => { entity = entity.replace(/^@/, '') switch (cmd) { case 'create': return this.create(entity, opts) case 'destroy': return this.destroy(entity, opts) case 'add': return this.add(entity, user, opts) case 'rm': return this.rm(entity, user, opts) case 'ls': { const match = entity.match(/[^:]+:.+/) if (match) { return this.listUsers(entity, opts) } else { return this.listTeams(entity, opts) } } default: throw this.usageError() } }) } async create (entity, opts) { await libteam.create(entity, opts) if (opts.json) { output.buffer({ created: true, team: entity, }) } else if (opts.parseable) { output.standard(`${entity}\tcreated`) } else if (!this.npm.silent) { output.standard(`+@${entity}`) } } async destroy (entity, opts) { await libteam.destroy(entity, opts) if (opts.json) { output.buffer({ deleted: true, team: entity, }) } else if (opts.parseable) { output.standard(`${entity}\tdeleted`) } else if (!this.npm.silent) { output.standard(`-@${entity}`) } } async add (entity, user, opts) { await libteam.add(user, entity, opts) if (opts.json) { output.buffer({ added: true, team: entity, user, }) } else if (opts.parseable) { output.standard(`${user}\t${entity}\tadded`) } else if (!this.npm.silent) { output.standard(`${user} added to @${entity}`) } } async rm (entity, user, opts) { await libteam.rm(user, entity, opts) if (opts.json) { output.buffer({ removed: true, team: entity, user, }) } else if (opts.parseable) { output.standard(`${user}\t${entity}\tremoved`) } else if (!this.npm.silent) { output.standard(`${user} removed from @${entity}`) } } async listUsers (entity, opts) { const users = (await libteam.lsUsers(entity, opts)).sort() if (opts.json) { output.buffer(users) } else if (opts.parseable) { output.standard(users.join('\n')) } else if (!this.npm.silent) { const plural = users.length === 1 ? '' : 's' const more = users.length === 0 ? '' : ':\n' output.standard(`\n@${entity} has ${users.length} user${plural}${more}`) output.standard(columns(users, { padding: 1 })) } } async listTeams (entity, opts) { const teams = (await libteam.lsTeams(entity, opts)).sort() if (opts.json) { output.buffer(teams) } else if (opts.parseable) { output.standard(teams.join('\n')) } else if (!this.npm.silent) { const plural = teams.length === 1 ? '' : 's' const more = teams.length === 0 ? '' : ':\n' output.standard(`\n@${entity} has ${teams.length} team${plural}${more}`) output.standard(columns(teams.map(t => `@${t}`), { padding: 1 })) } } } module.exports = Team
Upload File
Create Folder