registry-auth-token
Advanced tools
Comparing version 3.3.2 to 3.4.0
@@ -5,2 +5,8 @@ # Change Log | ||
## [3.4.0] - 2019-03-20 | ||
### Changes | ||
- Enabled legacy auth token to be read from environment variable (Martin Flodin) | ||
## [3.3.2] - 2018-01-26 | ||
@@ -7,0 +13,0 @@ |
25
index.js
@@ -55,6 +55,9 @@ var url = require('url') | ||
function getLegacyAuthInfo (npmrc) { | ||
if (npmrc._auth) { | ||
return {token: npmrc._auth, type: 'Basic'} | ||
if (!npmrc._auth) { | ||
return undefined | ||
} | ||
return undefined | ||
var token = replaceEnvironmentVariable(npmrc._auth) | ||
return {token: token, type: 'Basic'} | ||
} | ||
@@ -84,2 +87,8 @@ | ||
function replaceEnvironmentVariable (token) { | ||
return token.replace(/^\$\{?([^}]*)\}?$/, function (fullMatch, envVar) { | ||
return process.env[envVar] | ||
}) | ||
} | ||
function getBearerToken (tok) { | ||
@@ -90,6 +99,4 @@ if (!tok) { | ||
// check if bearer token | ||
var token = tok.replace(/^\$\{?([^}]*)\}?$/, function (fullMatch, envVar) { | ||
return process.env[envVar] | ||
}) | ||
// check if bearer token is set as environment variable | ||
var token = replaceEnvironmentVariable(tok) | ||
@@ -106,5 +113,3 @@ return {token: token, type: 'Bearer'} | ||
// See https://github.com/npm/npm/blob/v3.10.6/lib/config/set-credentials-by-uri.js#L26 | ||
var pass = decodeBase64(password.replace(/^\$\{?([^}]*)\}?$/, function (fullMatch, envVar) { | ||
return process.env[envVar] | ||
})) | ||
var pass = decodeBase64(replaceEnvironmentVariable(password)) | ||
@@ -111,0 +116,0 @@ // a basic auth token is base64 encoded 'username:password' |
{ | ||
"name": "registry-auth-token", | ||
"version": "3.3.2", | ||
"version": "3.4.0", | ||
"description": "Get the auth token set for an npm registry (if any)", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
@@ -53,2 +53,38 @@ var fs = require('fs') | ||
}) | ||
it('should return legacy auth token defined by reference to an environment variable (with curly braces)', function (done) { | ||
var environmentVariable = '__REGISTRY_AUTH_TOKEN_NPM_TOKEN__' | ||
var content = [ | ||
'_auth=${' + environmentVariable + '}', | ||
'registry=http://registry.foobar.eu/' | ||
].join('\n') | ||
process.env[environmentVariable] = 'foobar' | ||
fs.writeFile(npmRcPath, content, function (err) { | ||
var getAuthToken = requireUncached('../index') | ||
assert(!err, err) | ||
assert.deepEqual(getAuthToken(), {token: 'foobar', type: 'Basic'}) | ||
delete process.env[environmentVariable] | ||
done() | ||
}) | ||
}) | ||
it('should return legacy auth token defined by reference to an environment variable (without curly braces)', function (done) { | ||
var environmentVariable = '__REGISTRY_AUTH_TOKEN_NPM_TOKEN__' | ||
var content = [ | ||
'_auth=$' + environmentVariable, | ||
'registry=http://registry.foobar.eu/' | ||
].join('\n') | ||
process.env[environmentVariable] = 'foobar' | ||
fs.writeFile(npmRcPath, content, function (err) { | ||
var getAuthToken = requireUncached('../index') | ||
assert(!err, err) | ||
assert.deepEqual(getAuthToken(), {token: 'foobar', type: 'Basic'}) | ||
delete process.env[environmentVariable] | ||
done() | ||
}) | ||
}) | ||
}) | ||
@@ -55,0 +91,0 @@ |
Sorry, the diff of this file is not supported yet
81135
11
576
15