Comparing version 2.2.0 to 2.3.0
@@ -5,2 +5,9 @@ export interface Credentials { | ||
} | ||
export interface TokenData { | ||
refresh_token?: string; | ||
expires_in?: number; | ||
access_token?: string; | ||
token_type?: string; | ||
id_token?: string; | ||
} | ||
export interface TokenOptions { | ||
@@ -16,4 +23,4 @@ keyFile?: string; | ||
export declare class GoogleToken { | ||
token: string | null; | ||
expiresAt: number | null; | ||
token?: string | null; | ||
expiresAt?: number | null; | ||
key?: string; | ||
@@ -24,3 +31,3 @@ keyFile?: string; | ||
scope?: string; | ||
rawToken: string | null; | ||
rawToken: TokenData | null; | ||
tokenExpires: number | null; | ||
@@ -46,4 +53,4 @@ email?: string; | ||
*/ | ||
getToken(): Promise<string | null>; | ||
getToken(callback: (err: Error | null, token?: string | null) => void): void; | ||
getToken(): Promise<string | null | undefined>; | ||
getToken(callback: (err: Error | null, token?: string | null | undefined) => void): void; | ||
/** | ||
@@ -50,0 +57,0 @@ * Given a keyFile, extract the key and client email if available |
@@ -50,3 +50,2 @@ "use strict"; | ||
var fs = require("fs"); | ||
var google_p12_pem_1 = require("google-p12-pem"); | ||
var jws = require("jws"); | ||
@@ -68,2 +67,3 @@ var mime = require("mime"); | ||
}(Error)); | ||
var getPem; | ||
var GoogleToken = /** @class */ (function () { | ||
@@ -125,3 +125,3 @@ /** | ||
} | ||
return [3 /*break*/, 7]; | ||
return [3 /*break*/, 9]; | ||
case 1: return [4 /*yield*/, readFile(keyFile, 'utf8')]; | ||
@@ -141,7 +141,13 @@ case 2: | ||
return [2 /*return*/, { privateKey: privateKey }]; | ||
case 5: return [4 /*yield*/, google_p12_pem_1.getPem(keyFile)]; | ||
case 5: | ||
if (!!getPem) return [3 /*break*/, 7]; | ||
return [4 /*yield*/, Promise.resolve().then(function () { return require('google-p12-pem'); })]; | ||
case 6: | ||
getPem = (_b.sent()).getPem; | ||
_b.label = 7; | ||
case 7: return [4 /*yield*/, getPem(keyFile)]; | ||
case 8: | ||
privateKey = _b.sent(); | ||
return [2 /*return*/, { privateKey: privateKey }]; | ||
case 7: throw new ErrorWithCode('Unknown certificate type. Type is determined based on file extension. ' + | ||
case 9: throw new ErrorWithCode('Unknown certificate type. Type is determined based on file extension. ' + | ||
'Current supported extensions are *.json, *.pem, and *.p12.', 'UNKNOWN_CERTIFICATE_TYPE'); | ||
@@ -249,16 +255,14 @@ } | ||
signedJWT = jws.sign({ header: { alg: 'RS256' }, payload: payload, secret: this.key }); | ||
return [2 /*return*/, axios_1.default({ | ||
method: 'post', | ||
url: GOOGLE_TOKEN_URL, | ||
data: querystring.stringify({ | ||
grant_type: 'urn:ietf:params:oauth:grant-type:jwt-bearer', | ||
assertion: signedJWT | ||
}), | ||
headers: { 'Content-Type': 'application/x-www-form-urlencoded' } | ||
}) | ||
return [2 /*return*/, axios_1.default | ||
.post(GOOGLE_TOKEN_URL, querystring.stringify({ | ||
grant_type: 'urn:ietf:params:oauth:grant-type:jwt-bearer', | ||
assertion: signedJWT | ||
}), { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }) | ||
.then(function (r) { | ||
var body = r.data; | ||
_this.rawToken = body; | ||
_this.token = body.access_token; | ||
_this.expiresAt = (iat + body.expires_in) * 1000; | ||
_this.rawToken = r.data; | ||
_this.token = r.data.access_token; | ||
_this.expiresAt = | ||
(r.data.expires_in === null || r.data.expires_in === undefined) ? | ||
null : | ||
(iat + r.data.expires_in) * 1000; | ||
return _this.token; | ||
@@ -265,0 +269,0 @@ }) |
{ | ||
"name": "gtoken", | ||
"version": "2.2.0", | ||
"version": "2.3.0", | ||
"description": "Node.js Google Authentication Service Account Tokens", | ||
@@ -46,3 +46,3 @@ "main": "./build/src/index.js", | ||
"@types/mime": "^2.0.0", | ||
"@types/mocha": "^2.2.48", | ||
"@types/mocha": "^5.0.0", | ||
"@types/nock": "^9.1.2", | ||
@@ -49,0 +49,0 @@ "@types/node": "^9.4.6", |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
29588
358