PATH:
usr
/
lib
/
node_modules
/
npm
/
lib
/
commands
const log = require('../utils/log-shim.js') const replaceInfo = require('../utils/replace-info.js') const BaseCommand = require('../base-command.js') const authTypes = { legacy: require('../auth/legacy.js'), web: require('../auth/legacy.js'), webauthn: require('../auth/legacy.js'), oauth: require('../auth/oauth.js'), saml: require('../auth/saml.js'), sso: require('../auth/sso.js'), } class AddUser extends BaseCommand { static description = 'Add a registry user account' static name = 'adduser' static params = [ 'registry', 'scope', 'auth-type', ] static ignoreImplicitWorkspace = true async exec (args) { const { scope } = this.npm.flatOptions const registry = this.getRegistry(this.npm.flatOptions) const auth = this.getAuthType(this.npm.flatOptions) const creds = this.npm.config.getCredentialsByURI(registry) log.disableProgress() log.warn('adduser', '`adduser` will be split into `login` and `register` in a future version.' + ' `adduser` will become an alias of `register`.' + ' `login` (currently an alias) will become its own command.') log.notice('', `Log in on ${replaceInfo(registry)}`) const { message, newCreds } = await auth(this.npm, { ...this.npm.flatOptions, creds, registry, scope, }) await this.updateConfig({ newCreds, registry, scope, }) this.npm.output(message) } getRegistry ({ scope, registry }) { if (scope) { const scopedRegistry = this.npm.config.get(`${scope}:registry`) const cliRegistry = this.npm.config.get('registry', 'cli') if (scopedRegistry && !cliRegistry) { return scopedRegistry } } return registry } getAuthType ({ authType }) { const type = authTypes[authType] if (!type) { throw new Error('no such auth module') } return type } async updateConfig ({ newCreds, registry, scope }) { this.npm.config.delete('_token', 'user') // prevent legacy pollution this.npm.config.setCredentialsByURI(registry, newCreds) if (scope) { this.npm.config.set(scope + ':registry', registry, 'user') } await this.npm.config.save('user') } } module.exports = AddUser
[-] star.js
[edit]
[-] ping.js
[edit]
[-] stop.js
[edit]
[-] team.js
[edit]
[-] run-script.js
[edit]
[-] edit.js
[edit]
[-] explore.js
[edit]
[-] access.js
[edit]
[-] explain.js
[edit]
[-] repo.js
[edit]
[-] root.js
[edit]
[-] completion.js
[edit]
[-] bugs.js
[edit]
[-] restart.js
[edit]
[+]
..
[-] pack.js
[edit]
[-] ll.js
[edit]
[-] install-test.js
[edit]
[-] find-dupes.js
[edit]
[-] unstar.js
[edit]
[-] org.js
[edit]
[-] dedupe.js
[edit]
[-] birthday.js
[edit]
[-] test.js
[edit]
[-] audit.js
[edit]
[-] install-ci-test.js
[edit]
[-] cache.js
[edit]
[-] outdated.js
[edit]
[-] link.js
[edit]
[-] diff.js
[edit]
[-] logout.js
[edit]
[-] install.js
[edit]
[-] fund.js
[edit]
[-] ci.js
[edit]
[-] get.js
[edit]
[-] profile.js
[edit]
[-] uninstall.js
[edit]
[-] init.js
[edit]
[-] prune.js
[edit]
[-] dist-tag.js
[edit]
[-] search.js
[edit]
[-] view.js
[edit]
[-] owner.js
[edit]
[-] rebuild.js
[edit]
[-] query.js
[edit]
[-] start.js
[edit]
[-] config.js
[edit]
[-] update.js
[edit]
[-] docs.js
[edit]
[-] help.js
[edit]
[-] ls.js
[edit]
[-] deprecate.js
[edit]
[-] exec.js
[edit]
[-] hook.js
[edit]
[-] publish.js
[edit]
[-] prefix.js
[edit]
[-] adduser.js
[edit]
[-] shrinkwrap.js
[edit]
[-] help-search.js
[edit]
[-] stars.js
[edit]
[-] doctor.js
[edit]
[-] set.js
[edit]
[-] whoami.js
[edit]
[-] version.js
[edit]
[-] pkg.js
[edit]
[-] bin.js
[edit]
[-] token.js
[edit]
[-] set-script.js
[edit]
[-] unpublish.js
[edit]