aboutsummaryrefslogtreecommitdiff
path: root/deps/node/deps/npm/lib/adduser.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/node/deps/npm/lib/adduser.js')
-rw-r--r--deps/node/deps/npm/lib/adduser.js49
1 files changed, 49 insertions, 0 deletions
diff --git a/deps/node/deps/npm/lib/adduser.js b/deps/node/deps/npm/lib/adduser.js
new file mode 100644
index 00000000..e1c22103
--- /dev/null
+++ b/deps/node/deps/npm/lib/adduser.js
@@ -0,0 +1,49 @@
+module.exports = adduser
+
+var log = require('npmlog')
+var npm = require('./npm.js')
+var usage = require('./utils/usage')
+var crypto
+
+try {
+ crypto = require('crypto')
+} catch (ex) {}
+
+adduser.usage = usage(
+ 'adduser',
+ 'npm adduser [--registry=url] [--scope=@orgname] [--auth-type=legacy] [--always-auth]'
+)
+
+function adduser (args, cb) {
+ if (!crypto) {
+ return cb(new Error(
+ 'You must compile node with ssl support to use the adduser feature'
+ ))
+ }
+
+ var registry = npm.config.get('registry')
+ var scope = npm.config.get('scope')
+ var creds = npm.config.getCredentialsByURI(npm.config.get('registry'))
+
+ if (scope) {
+ var scopedRegistry = npm.config.get(scope + ':registry')
+ var cliRegistry = npm.config.get('registry', 'cli')
+ if (scopedRegistry && !cliRegistry) registry = scopedRegistry
+ }
+
+ log.disableProgress()
+
+ try {
+ var auth = require('./auth/' + npm.config.get('auth-type'))
+ } catch (e) {
+ return cb(new Error('no such auth module'))
+ }
+ auth.login(creds, registry, scope, function (err, newCreds) {
+ if (err) return cb(err)
+
+ npm.config.del('_token', 'user') // prevent legacy pollution
+ if (scope) npm.config.set(scope + ':registry', registry, 'user')
+ npm.config.setCredentialsByURI(registry, newCreds)
+ npm.config.save('user', cb)
+ })
+}