var assert = require('assert')
var toNerfDart = require('./nerf-dart.js')
module.exports = getCredentialsByURI
function getCredentialsByURI (uri) {
assert(uri && typeof uri === 'string', 'registry URL is required')
var nerfed = toNerfDart(uri)
var defnerf = toNerfDart(this.get('registry'))
// hidden class micro-optimization
var c = {
scope: nerfed,
token: undefined,
password: undefined,
username: undefined,
email: undefined,
auth: undefined,
alwaysAuth: undefined
}
// used to override scope matching for tokens as well as legacy auth
if (this.get(nerfed + ':always-auth') !== undefined) {
var val = this.get(nerfed + ':always-auth')
c.alwaysAuth = val === 'false' ? false : !!val
} else if (this.get('always-auth') !== undefined) {
c.alwaysAuth = this.get('always-auth')
}
if (this.get(nerfed + ':_authToken')) {
c.token = this.get(nerfed + ':_authToken')
// the bearer token is enough, don't confuse things
return c
}
// Handle the old-style _auth=