firebase-admin
Advanced tools
Comparing version 5.2.1 to 5.3.0
@@ -1,2 +0,2 @@ | ||
/*! firebase-admin v5.2.1 */ | ||
/*! firebase-admin v5.3.0 */ | ||
"use strict"; | ||
@@ -33,6 +33,15 @@ /*! | ||
'Content-Type': 'application/json', | ||
'X-Client-Version': 'Node/Admin/5.2.1', | ||
'X-Client-Version': 'Node/Admin/5.3.0', | ||
}; | ||
/** Firebase Auth request timeout duration in milliseconds. */ | ||
var FIREBASE_AUTH_TIMEOUT = 10000; | ||
/** List of reserved claims which cannot be provided when creating a custom token. */ | ||
exports.RESERVED_CLAIMS = [ | ||
'acr', 'amr', 'at_hash', 'aud', 'auth_time', 'azp', 'cnf', 'c_hash', 'exp', 'iat', | ||
'iss', 'jti', 'nbf', 'nonce', 'sub', 'firebase', | ||
]; | ||
/** Maximum allowed number of characters in the custom claims payload. */ | ||
var MAX_CLAIMS_PAYLOAD_SIZE = 1000; | ||
/** Maximum allowed number of users to batch download at one time. */ | ||
var MAX_DOWNLOAD_ACCOUNT_PAGE_SIZE = 1000; | ||
/** | ||
@@ -61,2 +70,3 @@ * Validates a create/edit request object. All unsupported parameters | ||
phoneNumber: true, | ||
customAttributes: true, | ||
}; | ||
@@ -125,4 +135,51 @@ // Remove invalid keys from original request. | ||
} | ||
// customAttributes should be stringified JSON with no blacklisted claims. | ||
// The payload should not exceed 1KB. | ||
if (typeof request.customAttributes !== 'undefined') { | ||
var developerClaims_1; | ||
try { | ||
developerClaims_1 = JSON.parse(request.customAttributes); | ||
} | ||
catch (error) { | ||
// JSON parsing error. This should never happen as we stringify the claims internally. | ||
// However, we still need to check since setAccountInfo via edit requests could pass | ||
// this field. | ||
throw new error_2.FirebaseAuthError(error_2.AuthClientErrorCode.INVALID_CLAIMS, error.message); | ||
} | ||
var invalidClaims_1 = []; | ||
// Check for any invalid claims. | ||
exports.RESERVED_CLAIMS.forEach(function (blacklistedClaim) { | ||
if (developerClaims_1.hasOwnProperty(blacklistedClaim)) { | ||
invalidClaims_1.push(blacklistedClaim); | ||
} | ||
}); | ||
// Throw an error if an invalid claim is detected. | ||
if (invalidClaims_1.length > 0) { | ||
throw new error_2.FirebaseAuthError(error_2.AuthClientErrorCode.FORBIDDEN_CLAIM, invalidClaims_1.length > 1 ? | ||
"Developer claims \"" + invalidClaims_1.join('", "') + "\" are reserved and cannot be specified." : | ||
"Developer claim \"" + invalidClaims_1[0] + "\" is reserved and cannot be specified."); | ||
} | ||
// Check claims payload does not exceed maxmimum size. | ||
if (request.customAttributes.length > MAX_CLAIMS_PAYLOAD_SIZE) { | ||
throw new error_2.FirebaseAuthError(error_2.AuthClientErrorCode.CLAIMS_TOO_LARGE, "Developer claims payload should not exceed " + MAX_CLAIMS_PAYLOAD_SIZE + " characters."); | ||
} | ||
} | ||
} | ||
; | ||
/** Instantiates the downloadAccount endpoint settings. */ | ||
exports.FIREBASE_AUTH_DOWNLOAD_ACCOUNT = new api_request_1.ApiSettings('downloadAccount', 'POST') | ||
.setRequestValidator(function (request) { | ||
// Validate next page token. | ||
if (typeof request.nextPageToken !== 'undefined' && | ||
!validator.isNonEmptyString(request.nextPageToken)) { | ||
throw new error_2.FirebaseAuthError(error_2.AuthClientErrorCode.INVALID_PAGE_TOKEN); | ||
} | ||
// Validate max results. | ||
if (!validator.isNumber(request.maxResults) || | ||
request.maxResults <= 0 || | ||
request.maxResults > MAX_DOWNLOAD_ACCOUNT_PAGE_SIZE) { | ||
throw new error_2.FirebaseAuthError(error_2.AuthClientErrorCode.INVALID_ARGUMENT, "Required \"maxResults\" must be a positive non-zero number that does not exceed " + | ||
("the allowed " + MAX_DOWNLOAD_ACCOUNT_PAGE_SIZE + ".")); | ||
} | ||
}); | ||
/** Instantiates the getAccountInfo endpoint settings. */ | ||
@@ -168,2 +225,6 @@ exports.FIREBASE_AUTH_GET_ACCOUNT_INFO = new api_request_1.ApiSettings('getAccountInfo', 'POST') | ||
.setRequestValidator(function (request) { | ||
// signupNewUser does not support customAttributes. | ||
if (typeof request.customAttributes !== 'undefined') { | ||
throw new error_2.FirebaseAuthError(error_2.AuthClientErrorCode.INVALID_ARGUMENT, "\"customAttributes\" cannot be set when creating a new user."); | ||
} | ||
validateCreateEditRequest(request); | ||
@@ -180,3 +241,3 @@ }) | ||
*/ | ||
var FirebaseAuthRequestHandler = (function () { | ||
var FirebaseAuthRequestHandler = /** @class */ (function () { | ||
/** | ||
@@ -247,2 +308,35 @@ * @param {FirebaseApp} app The app used to fetch access tokens to sign API requests. | ||
/** | ||
* Exports the users (single batch only) with a size of maxResults and starting from | ||
* the offset as specified by pageToken. | ||
* | ||
* @param {number=} maxResults The page size, 1000 if undefined. This is also the maximum | ||
* allowed limit. | ||
* @param {string=} pageToken The next page token. If not specified, returns users starting | ||
* without any offset. Users are returned in the order they were created from oldest to | ||
* newest, relative to the page token offset. | ||
* @return {Promise<Object>} A promise that resolves with the current batch of downloaded | ||
* users and the next page token if available. For the last page, an empty list of users | ||
* and no page token are returned. | ||
*/ | ||
FirebaseAuthRequestHandler.prototype.downloadAccount = function (maxResults, pageToken) { | ||
if (maxResults === void 0) { maxResults = MAX_DOWNLOAD_ACCOUNT_PAGE_SIZE; } | ||
// Construct request. | ||
var request = { | ||
maxResults: maxResults, | ||
nextPageToken: pageToken, | ||
}; | ||
// Remove next page token if not provided. | ||
if (typeof request.nextPageToken === 'undefined') { | ||
delete request.nextPageToken; | ||
} | ||
return this.invokeRequestHandler(exports.FIREBASE_AUTH_DOWNLOAD_ACCOUNT, request) | ||
.then(function (response) { | ||
// No more users available. | ||
if (!response.users) { | ||
response.users = []; | ||
} | ||
return response; | ||
}); | ||
}; | ||
/** | ||
* Deletes an account identified by a uid. | ||
@@ -263,2 +357,32 @@ * | ||
/** | ||
* Sets additional developer claims on an existing user identified by provided UID. | ||
* | ||
* @param {string} uid The user to edit. | ||
* @param {Object} customUserClaims The developer claims to set. | ||
* @return {Promise<string>} A promise that resolves when the operation completes | ||
* with the user id that was edited. | ||
*/ | ||
FirebaseAuthRequestHandler.prototype.setCustomUserClaims = function (uid, customUserClaims) { | ||
// Validate user UID. | ||
if (!validator.isUid(uid)) { | ||
return Promise.reject(new error_2.FirebaseAuthError(error_2.AuthClientErrorCode.INVALID_UID)); | ||
} | ||
else if (!validator.isObject(customUserClaims)) { | ||
return Promise.reject(new error_2.FirebaseAuthError(error_2.AuthClientErrorCode.INVALID_ARGUMENT, 'CustomUserClaims argument must be an object or null.')); | ||
} | ||
// Delete operation. Replace null with an empty object. | ||
if (customUserClaims === null) { | ||
customUserClaims = {}; | ||
} | ||
// Construct custom user attribute editting request. | ||
var request = { | ||
localId: uid, | ||
customAttributes: JSON.stringify(customUserClaims), | ||
}; | ||
return this.invokeRequestHandler(exports.FIREBASE_AUTH_SET_ACCOUNT_INFO, request) | ||
.then(function (response) { | ||
return response.localId; | ||
}); | ||
}; | ||
/** | ||
* Edits an existing user. | ||
@@ -265,0 +389,0 @@ * |
@@ -1,2 +0,2 @@ | ||
/*! firebase-admin v5.2.1 */ | ||
/*! firebase-admin v5.3.0 */ | ||
"use strict"; | ||
@@ -27,3 +27,3 @@ /*! | ||
*/ | ||
var AuthInternals = (function () { | ||
var AuthInternals = /** @class */ (function () { | ||
function AuthInternals() { | ||
@@ -46,3 +46,3 @@ } | ||
*/ | ||
var Auth = (function () { | ||
var Auth = /** @class */ (function () { | ||
/** | ||
@@ -169,2 +169,36 @@ * @param {Object} app The app for this Auth service. | ||
/** | ||
* Exports a batch of user accounts. Batch size is determined by the maxResults argument. | ||
* Starting point of the batch is determined by the pageToken argument. | ||
* | ||
* @param {number=} maxResults The page size, 1000 if undefined. This is also the maximum | ||
* allowed limit. | ||
* @param {string=} pageToken The next page token. If not specified, returns users starting | ||
* without any offset. | ||
* @return {Promise<{users: UserRecord[], pageToken?: string}>} A promise that resolves with | ||
* the current batch of downloaded users and the next page token. For the last page, an | ||
* empty list of users and no page token are returned. | ||
*/ | ||
Auth.prototype.listUsers = function (maxResults, pageToken) { | ||
return this.authRequestHandler.downloadAccount(maxResults, pageToken) | ||
.then(function (response) { | ||
// List of users to return. | ||
var users = []; | ||
// Convert each user response to a UserRecord. | ||
response.users.forEach(function (userResponse) { | ||
users.push(new user_record_1.UserRecord(userResponse)); | ||
}); | ||
// Return list of user records and the next page token if available. | ||
var result = { | ||
users: users, | ||
pageToken: response.nextPageToken, | ||
}; | ||
// Delete result.pageToken if undefined. | ||
if (typeof result.pageToken === 'undefined') { | ||
delete result.pageToken; | ||
} | ||
return result; | ||
}); | ||
}; | ||
; | ||
/** | ||
* Creates a new user with the properties provided. | ||
@@ -221,2 +255,17 @@ * | ||
; | ||
/** | ||
* Sets additional developer claims on an existing user identified by the provided UID. | ||
* | ||
* @param {string} uid The user to edit. | ||
* @param {Object} customUserClaims The developer claims to set. | ||
* @return {Promise<void>} A promise that resolves when the operation completes | ||
* successfully. | ||
*/ | ||
Auth.prototype.setCustomUserClaims = function (uid, customUserClaims) { | ||
return this.authRequestHandler.setCustomUserClaims(uid, customUserClaims) | ||
.then(function (existingUid) { | ||
// Return nothing on success. | ||
}); | ||
}; | ||
; | ||
return Auth; | ||
@@ -223,0 +272,0 @@ }()); |
@@ -1,2 +0,2 @@ | ||
/*! firebase-admin v5.2.1 */ | ||
/*! firebase-admin v5.3.0 */ | ||
"use strict"; | ||
@@ -57,3 +57,3 @@ /*! | ||
} | ||
var RefreshToken = (function () { | ||
var RefreshToken = /** @class */ (function () { | ||
function RefreshToken(json) { | ||
@@ -108,3 +108,3 @@ copyAttr(this, json, 'clientId', 'client_id'); | ||
*/ | ||
var Certificate = (function () { | ||
var Certificate = /** @class */ (function () { | ||
function Certificate(json) { | ||
@@ -191,3 +191,3 @@ if (typeof json !== 'object' || json === null) { | ||
*/ | ||
var CertCredential = (function () { | ||
var CertCredential = /** @class */ (function () { | ||
function CertCredential(serviceAccountPathOrObject) { | ||
@@ -244,3 +244,3 @@ if (typeof serviceAccountPathOrObject === 'string') { | ||
*/ | ||
var RefreshTokenCredential = (function () { | ||
var RefreshTokenCredential = /** @class */ (function () { | ||
function RefreshTokenCredential(refreshTokenPathOrObject) { | ||
@@ -283,3 +283,3 @@ if (typeof refreshTokenPathOrObject === 'string') { | ||
*/ | ||
var MetadataServiceCredential = (function () { | ||
var MetadataServiceCredential = /** @class */ (function () { | ||
function MetadataServiceCredential() { | ||
@@ -308,3 +308,3 @@ } | ||
*/ | ||
var ApplicationDefaultCredential = (function () { | ||
var ApplicationDefaultCredential = /** @class */ (function () { | ||
function ApplicationDefaultCredential() { | ||
@@ -311,0 +311,0 @@ if (process.env.GOOGLE_APPLICATION_CREDENTIALS) { |
@@ -1,2 +0,2 @@ | ||
/*! firebase-admin v5.2.1 */ | ||
/*! firebase-admin v5.3.0 */ | ||
"use strict"; | ||
@@ -3,0 +3,0 @@ /*! |
@@ -1,2 +0,2 @@ | ||
/*! firebase-admin v5.2.1 */ | ||
/*! firebase-admin v5.3.0 */ | ||
"use strict"; | ||
@@ -39,3 +39,3 @@ /*! | ||
*/ | ||
var FirebaseTokenGenerator = (function () { | ||
var FirebaseTokenGenerator = /** @class */ (function () { | ||
function FirebaseTokenGenerator(certificate) { | ||
@@ -251,3 +251,3 @@ if (!certificate) { | ||
if (subParts[0] === 'max-age') { | ||
var maxAge = subParts[1]; | ||
var maxAge = +subParts[1]; | ||
_this.publicKeysExpireAt_ = Date.now() + (maxAge * 1000); | ||
@@ -254,0 +254,0 @@ } |
@@ -1,2 +0,2 @@ | ||
/*! firebase-admin v5.2.1 */ | ||
/*! firebase-admin v5.3.0 */ | ||
"use strict"; | ||
@@ -19,2 +19,3 @@ /*! | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
var deep_copy_1 = require("../utils/deep-copy"); | ||
var utils = require("../utils"); | ||
@@ -48,3 +49,3 @@ var error_1 = require("../utils/error"); | ||
*/ | ||
var UserMetadata = (function () { | ||
var UserMetadata = /** @class */ (function () { | ||
function UserMetadata(response) { | ||
@@ -76,3 +77,3 @@ // Creation date should always be available but due to some backend bugs there | ||
*/ | ||
var UserInfo = (function () { | ||
var UserInfo = /** @class */ (function () { | ||
function UserInfo(response) { | ||
@@ -112,3 +113,3 @@ // Provider user id and provider id are required. | ||
*/ | ||
var UserRecord = (function () { | ||
var UserRecord = /** @class */ (function () { | ||
function UserRecord(response) { | ||
@@ -134,2 +135,11 @@ // The Firebase user id is required. | ||
utils.addReadonlyGetter(this, 'providerData', providerData); | ||
utils.addReadonlyGetter(this, 'passwordHash', response.passwordHash); | ||
utils.addReadonlyGetter(this, 'passwordSalt', response.salt); | ||
try { | ||
utils.addReadonlyGetter(this, 'customClaims', JSON.parse(response.customAttributes)); | ||
} | ||
catch (e) { | ||
// Ignore error. | ||
utils.addReadonlyGetter(this, 'customClaims', undefined); | ||
} | ||
} | ||
@@ -148,2 +158,5 @@ /** @return {Object} The plain object representation of the user record. */ | ||
metadata: this.metadata.toJSON(), | ||
passwordHash: this.passwordHash, | ||
passwordSalt: this.passwordSalt, | ||
customClaims: deep_copy_1.deepCopy(this.customClaims), | ||
}; | ||
@@ -150,0 +163,0 @@ json.providerData = []; |
@@ -1,2 +0,2 @@ | ||
/*! firebase-admin v5.2.1 */ | ||
/*! firebase-admin v5.3.0 */ | ||
"use strict"; | ||
@@ -3,0 +3,0 @@ /*! |
@@ -1,2 +0,2 @@ | ||
/*! firebase-admin v5.2.1 */ | ||
/*! firebase-admin v5.3.0 */ | ||
"use strict"; | ||
@@ -25,3 +25,3 @@ /*! | ||
*/ | ||
var FirebaseAppInternals = (function () { | ||
var FirebaseAppInternals = /** @class */ (function () { | ||
function FirebaseAppInternals(credential_) { | ||
@@ -179,3 +179,3 @@ this.credential_ = credential_; | ||
*/ | ||
var FirebaseApp = (function () { | ||
var FirebaseApp = /** @class */ (function () { | ||
function FirebaseApp(options, name, firebaseInternals_) { | ||
@@ -182,0 +182,0 @@ var _this = this; |
@@ -1,2 +0,2 @@ | ||
/*! firebase-admin v5.2.1 */ | ||
/*! firebase-admin v5.3.0 */ | ||
"use strict"; | ||
@@ -30,3 +30,3 @@ /*! | ||
*/ | ||
var FirebaseNamespaceInternals = (function () { | ||
var FirebaseNamespaceInternals = /** @class */ (function () { | ||
function FirebaseNamespaceInternals(firebase_) { | ||
@@ -211,3 +211,3 @@ this.firebase_ = firebase_; | ||
*/ | ||
var FirebaseNamespace = (function () { | ||
var FirebaseNamespace = /** @class */ (function () { | ||
/* tslint:enable */ | ||
@@ -220,3 +220,3 @@ function FirebaseNamespace() { | ||
this.credential = firebaseCredential; | ||
this.SDK_VERSION = '5.2.1'; | ||
this.SDK_VERSION = '5.3.0'; | ||
/* tslint:disable */ | ||
@@ -223,0 +223,0 @@ // TODO(jwenger): Database is the only consumer of firebase.Promise. We should update it to use |
@@ -1,2 +0,2 @@ | ||
/*! firebase-admin v5.2.1 */ | ||
/*! firebase-admin v5.3.0 */ | ||
"use strict"; | ||
@@ -3,0 +3,0 @@ /*! |
@@ -1,2 +0,2 @@ | ||
/*! firebase-admin v5.2.1 */ | ||
/*! firebase-admin v5.3.0 */ | ||
/*! | ||
@@ -18,2 +18,4 @@ * Copyright 2017 Google Inc. | ||
import {Bucket} from '@google-cloud/storage'; | ||
declare namespace admin { | ||
@@ -104,2 +106,5 @@ interface FirebaseError { | ||
providerData: admin.auth.UserInfo[]; | ||
passwordHash?: string; | ||
passwordSalt?: string; | ||
customClaims?: Object; | ||
@@ -141,2 +146,7 @@ toJSON(): Object; | ||
interface ListUsersResult { | ||
users: admin.auth.UserRecord[]; | ||
pageToken?: string; | ||
} | ||
interface Auth { | ||
@@ -151,4 +161,6 @@ app: admin.app.App; | ||
getUserByPhoneNumber(phoneNumber: string): Promise<admin.auth.UserRecord>; | ||
listUsers(maxResults?: number, pageToken?: string): Promise<admin.auth.ListUsersResult>; | ||
updateUser(uid: string, properties: admin.auth.UpdateRequest): Promise<admin.auth.UserRecord>; | ||
verifyIdToken(idToken: string): Promise<admin.auth.DecodedIdToken>; | ||
setCustomUserClaims(uid: string, customUserClaims: Object): Promise<void>; | ||
} | ||
@@ -394,3 +406,3 @@ } | ||
app: admin.app.App; | ||
bucket(name?: string): any; | ||
bucket(name?: string): Bucket; | ||
} | ||
@@ -400,3 +412,4 @@ } | ||
declare module 'firebase-admin' { | ||
export = admin; | ||
} | ||
export = admin; |
@@ -1,2 +0,2 @@ | ||
/*! firebase-admin v5.2.1 */ | ||
/*! firebase-admin v5.3.0 */ | ||
"use strict"; | ||
@@ -3,0 +3,0 @@ /*! |
@@ -1,2 +0,2 @@ | ||
/*! firebase-admin v5.2.1 */ | ||
/*! firebase-admin v5.3.0 */ | ||
"use strict"; | ||
@@ -29,3 +29,3 @@ /*! | ||
'Content-Type': 'application/json', | ||
'Sdk-Version': 'Node/Admin/5.2.1', | ||
'Sdk-Version': 'Node/Admin/5.3.0', | ||
access_token_auth: 'true', | ||
@@ -36,3 +36,3 @@ }; | ||
*/ | ||
var FirebaseMessagingRequestHandler = (function () { | ||
var FirebaseMessagingRequestHandler = /** @class */ (function () { | ||
/** | ||
@@ -39,0 +39,0 @@ * @param {FirebaseApp} app The app used to fetch access tokens to sign API requests. |
@@ -1,2 +0,2 @@ | ||
/*! firebase-admin v5.2.1 */ | ||
/*! firebase-admin v5.3.0 */ | ||
"use strict"; | ||
@@ -151,3 +151,3 @@ /*! | ||
*/ | ||
var MessagingInternals = (function () { | ||
var MessagingInternals = /** @class */ (function () { | ||
function MessagingInternals() { | ||
@@ -170,3 +170,3 @@ } | ||
*/ | ||
var Messaging = (function () { | ||
var Messaging = /** @class */ (function () { | ||
/** | ||
@@ -297,3 +297,3 @@ * @param {Object} app The app for this Messaging service. | ||
if (response.success === 0) { | ||
return Promise.reject(new error_1.FirebaseMessagingError(error_1.MessagingClientErrorCode.INVALID_RECIPIENT, 'Notification key provided to sendToDeviceGroup() is invalid.')); | ||
throw new error_1.FirebaseMessagingError(error_1.MessagingClientErrorCode.INVALID_RECIPIENT, 'Notification key provided to sendToDeviceGroup() is invalid.'); | ||
} | ||
@@ -300,0 +300,0 @@ else { |
@@ -1,2 +0,2 @@ | ||
/*! firebase-admin v5.2.1 */ | ||
/*! firebase-admin v5.3.0 */ | ||
"use strict"; | ||
@@ -3,0 +3,0 @@ /*! |
@@ -1,2 +0,2 @@ | ||
/*! firebase-admin v5.2.1 */ | ||
/*! firebase-admin v5.3.0 */ | ||
"use strict"; | ||
@@ -3,0 +3,0 @@ Object.defineProperty(exports, "__esModule", { value: true }); |
@@ -1,2 +0,2 @@ | ||
/*! firebase-admin v5.2.1 */ | ||
/*! firebase-admin v5.3.0 */ | ||
"use strict"; | ||
@@ -25,3 +25,3 @@ /*! | ||
*/ | ||
var StorageInternals = (function () { | ||
var StorageInternals = /** @class */ (function () { | ||
function StorageInternals() { | ||
@@ -43,3 +43,3 @@ } | ||
*/ | ||
var Storage = (function () { | ||
var Storage = /** @class */ (function () { | ||
/** | ||
@@ -46,0 +46,0 @@ * @param {Object} app The app for this Storage service. |
@@ -1,2 +0,2 @@ | ||
/*! firebase-admin v5.2.1 */ | ||
/*! firebase-admin v5.3.0 */ | ||
"use strict"; | ||
@@ -35,3 +35,3 @@ /*! | ||
*/ | ||
var HttpRequestHandler = (function () { | ||
var HttpRequestHandler = /** @class */ (function () { | ||
function HttpRequestHandler() { | ||
@@ -41,2 +41,3 @@ } | ||
* Sends HTTP requests and returns a promise that resolves with the result. | ||
* Will retry once if the first attempt encounters an AppErrorCodes.NETWORK_ERROR. | ||
* | ||
@@ -53,2 +54,31 @@ * @param {string} host The HTTP host. | ||
HttpRequestHandler.prototype.sendRequest = function (host, port, path, httpMethod, data, headers, timeout) { | ||
var _this = this; | ||
// Convenience for calling the real _sendRequest() method with the original params. | ||
var sendOneRequest = function () { | ||
return _this._sendRequest(host, port, path, httpMethod, data, headers, timeout); | ||
}; | ||
return sendOneRequest() | ||
.catch(function (response) { | ||
// Retry if the request failed due to a network error. | ||
if (response.error instanceof error_1.FirebaseAppError) { | ||
if (response.error.hasCode(error_1.AppErrorCodes.NETWORK_ERROR)) { | ||
return sendOneRequest(); | ||
} | ||
} | ||
return Promise.reject(response); | ||
}); | ||
}; | ||
/** | ||
* Sends HTTP requests and returns a promise that resolves with the result. | ||
* | ||
* @param {string} host The HTTP host. | ||
* @param {number} port The port number. | ||
* @param {string} path The endpoint path. | ||
* @param {HttpMethod} httpMethod The http method. | ||
* @param {Object} [data] The request JSON. | ||
* @param {Object} [headers] The request headers. | ||
* @param {number} [timeout] The request timeout in milliseconds. | ||
* @return {Promise<Object>} A promise that resolves with the response. | ||
*/ | ||
HttpRequestHandler.prototype._sendRequest = function (host, port, path, httpMethod, data, headers, timeout) { | ||
var requestData; | ||
@@ -156,3 +186,3 @@ if (data) { | ||
*/ | ||
var SignedApiRequestHandler = (function (_super) { | ||
var SignedApiRequestHandler = /** @class */ (function (_super) { | ||
__extends(SignedApiRequestHandler, _super); | ||
@@ -177,3 +207,3 @@ function SignedApiRequestHandler(app_) { | ||
SignedApiRequestHandler.prototype.sendRequest = function (host, port, path, httpMethod, data, headers, timeout) { | ||
var ancestorSendRequest = _super.prototype.sendRequest; | ||
var _this = this; | ||
return this.app_.INTERNAL.getToken().then(function (accessTokenObj) { | ||
@@ -183,3 +213,3 @@ var headersCopy = deep_copy_1.deepCopy(headers); | ||
headersCopy[authorizationHeaderKey] = 'Bearer ' + accessTokenObj.accessToken; | ||
return ancestorSendRequest(host, port, path, httpMethod, data, headersCopy, timeout); | ||
return _super.prototype.sendRequest.call(_this, host, port, path, httpMethod, data, headersCopy, timeout); | ||
}); | ||
@@ -197,3 +227,3 @@ }; | ||
*/ | ||
var ApiSettings = (function () { | ||
var ApiSettings = /** @class */ (function () { | ||
function ApiSettings(endpoint, httpMethod) { | ||
@@ -200,0 +230,0 @@ if (httpMethod === void 0) { httpMethod = 'POST'; } |
@@ -1,2 +0,2 @@ | ||
/*! firebase-admin v5.2.1 */ | ||
/*! firebase-admin v5.3.0 */ | ||
"use strict"; | ||
@@ -3,0 +3,0 @@ /*! |
@@ -1,2 +0,2 @@ | ||
/*! firebase-admin v5.2.1 */ | ||
/*! firebase-admin v5.3.0 */ | ||
"use strict"; | ||
@@ -36,3 +36,3 @@ /*! | ||
*/ | ||
var FirebaseError = (function (_super) { | ||
var FirebaseError = /** @class */ (function (_super) { | ||
__extends(FirebaseError, _super); | ||
@@ -76,4 +76,5 @@ function FirebaseError(errorInfo) { | ||
/** | ||
* Firebase App error code structure. This extends FirebaseError. | ||
* A FirebaseError with a prefix in front of the error code. | ||
* | ||
* @param {string} codePrefix The prefix to apply to the error code. | ||
* @param {string} code The error code. | ||
@@ -83,15 +84,52 @@ * @param {string} message The error message. | ||
*/ | ||
var FirebaseAppError = (function (_super) { | ||
__extends(FirebaseAppError, _super); | ||
function FirebaseAppError(code, message) { | ||
return _super.call(this, { | ||
code: 'app/' + code, | ||
var PrefixedFirebaseError = /** @class */ (function (_super) { | ||
__extends(PrefixedFirebaseError, _super); | ||
function PrefixedFirebaseError(codePrefix, code, message) { | ||
var _this = _super.call(this, { | ||
code: codePrefix + "/" + code, | ||
message: message, | ||
}) || this; | ||
_this.codePrefix = codePrefix; | ||
/* tslint:disable:max-line-length */ | ||
// Set the prototype explicitly. See the following link for more details: | ||
// https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#extending-built-ins-like-error-array-and-map-may-no-longer-work | ||
/* tslint:enable:max-line-length */ | ||
_this.__proto__ = PrefixedFirebaseError.prototype; | ||
return _this; | ||
} | ||
/** | ||
* Allows the error type to be checked without needing to know implementation details | ||
* of the code prefixing. | ||
* | ||
* @param {string} code The non-prefixed error code to test against. | ||
* @return {boolean} True if the code matches, false otherwise. | ||
*/ | ||
PrefixedFirebaseError.prototype.hasCode = function (code) { | ||
return this.codePrefix + "/" + code === this.code; | ||
}; | ||
return PrefixedFirebaseError; | ||
}(FirebaseError)); | ||
/** | ||
* Firebase App error code structure. This extends PrefixedFirebaseError. | ||
* | ||
* @param {string} code The error code. | ||
* @param {string} message The error message. | ||
* @constructor | ||
*/ | ||
var FirebaseAppError = /** @class */ (function (_super) { | ||
__extends(FirebaseAppError, _super); | ||
function FirebaseAppError(code, message) { | ||
var _this = _super.call(this, 'app', code, message) || this; | ||
/* tslint:disable:max-line-length */ | ||
// Set the prototype explicitly. See the following link for more details: | ||
// https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#extending-built-ins-like-error-array-and-map-may-no-longer-work | ||
/* tslint:enable:max-line-length */ | ||
_this.__proto__ = FirebaseAppError.prototype; | ||
return _this; | ||
} | ||
return FirebaseAppError; | ||
}(FirebaseError)); | ||
}(PrefixedFirebaseError)); | ||
exports.FirebaseAppError = FirebaseAppError; | ||
/** | ||
* Firebase Auth error code structure. This extends FirebaseError. | ||
* Firebase Auth error code structure. This extends PrefixedFirebaseError. | ||
* | ||
@@ -103,7 +141,14 @@ * @param {ErrorInfo} info The error code info. | ||
*/ | ||
var FirebaseAuthError = (function (_super) { | ||
var FirebaseAuthError = /** @class */ (function (_super) { | ||
__extends(FirebaseAuthError, _super); | ||
function FirebaseAuthError(info, message) { | ||
var _this = | ||
// Override default message if custom message provided. | ||
return _super.call(this, { code: 'auth/' + info.code, message: message || info.message }) || this; | ||
_super.call(this, 'auth', info.code, message || info.message) || this; | ||
/* tslint:disable:max-line-length */ | ||
// Set the prototype explicitly. See the following link for more details: | ||
// https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#extending-built-ins-like-error-array-and-map-may-no-longer-work | ||
/* tslint:enable:max-line-length */ | ||
_this.__proto__ = FirebaseAuthError.prototype; | ||
return _this; | ||
} | ||
@@ -135,6 +180,6 @@ /** | ||
return FirebaseAuthError; | ||
}(FirebaseError)); | ||
}(PrefixedFirebaseError)); | ||
exports.FirebaseAuthError = FirebaseAuthError; | ||
/** | ||
* Firebase Messaging error code structure. This extends FirebaseError. | ||
* Firebase Messaging error code structure. This extends PrefixedFirebaseError. | ||
* | ||
@@ -145,7 +190,14 @@ * @param {ErrorInfo} info The error code info. | ||
*/ | ||
var FirebaseMessagingError = (function (_super) { | ||
var FirebaseMessagingError = /** @class */ (function (_super) { | ||
__extends(FirebaseMessagingError, _super); | ||
function FirebaseMessagingError(info, message) { | ||
var _this = | ||
// Override default message if custom message provided. | ||
return _super.call(this, { code: 'messaging/' + info.code, message: message || info.message }) || this; | ||
_super.call(this, 'messaging', info.code, message || info.message) || this; | ||
/* tslint:disable:max-line-length */ | ||
// Set the prototype explicitly. See the following link for more details: | ||
// https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#extending-built-ins-like-error-array-and-map-may-no-longer-work | ||
/* tslint:enable:max-line-length */ | ||
_this.__proto__ = FirebaseMessagingError.prototype; | ||
return _this; | ||
} | ||
@@ -177,3 +229,3 @@ /** | ||
return FirebaseMessagingError; | ||
}(FirebaseError)); | ||
}(PrefixedFirebaseError)); | ||
exports.FirebaseMessagingError = FirebaseMessagingError; | ||
@@ -183,3 +235,3 @@ /** | ||
*/ | ||
var AppErrorCodes = (function () { | ||
var AppErrorCodes = /** @class */ (function () { | ||
function AppErrorCodes() { | ||
@@ -204,5 +256,9 @@ } | ||
*/ | ||
var AuthClientErrorCode = (function () { | ||
var AuthClientErrorCode = /** @class */ (function () { | ||
function AuthClientErrorCode() { | ||
} | ||
AuthClientErrorCode.CLAIMS_TOO_LARGE = { | ||
code: 'claims-too-large', | ||
message: 'Developer claims maximum payload size exceeded.', | ||
}; | ||
AuthClientErrorCode.INVALID_ARGUMENT = { | ||
@@ -216,2 +272,6 @@ code: 'argument-error', | ||
}; | ||
AuthClientErrorCode.FORBIDDEN_CLAIM = { | ||
code: 'reserved-claim', | ||
message: 'The specified developer claim is reserved and cannot be specified.', | ||
}; | ||
AuthClientErrorCode.INTERNAL_ERROR = { | ||
@@ -221,2 +281,6 @@ code: 'internal-error', | ||
}; | ||
AuthClientErrorCode.INVALID_CLAIMS = { | ||
code: 'invalid-claims', | ||
message: 'The provided custom claim attributes are invalid.', | ||
}; | ||
AuthClientErrorCode.INVALID_CREDENTIAL = { | ||
@@ -242,2 +306,6 @@ code: 'invalid-credential', | ||
}; | ||
AuthClientErrorCode.INVALID_PAGE_TOKEN = { | ||
code: 'invalid-page-token', | ||
message: 'The page token must be a valid non-empty string.', | ||
}; | ||
AuthClientErrorCode.INVALID_PASSWORD = { | ||
@@ -300,3 +368,3 @@ code: 'invalid-password', | ||
*/ | ||
var MessagingClientErrorCode = (function () { | ||
var MessagingClientErrorCode = /** @class */ (function () { | ||
function MessagingClientErrorCode() { | ||
@@ -398,2 +466,4 @@ } | ||
var AUTH_SERVER_TO_CLIENT_CODE = { | ||
// Claims payload is too large. | ||
CLAIMS_TOO_LARGE: 'CLAIMS_TOO_LARGE', | ||
// Project not found. | ||
@@ -409,4 +479,10 @@ CONFIGURATION_NOT_FOUND: 'PROJECT_NOT_FOUND', | ||
EMAIL_EXISTS: 'EMAIL_ALREADY_EXISTS', | ||
// Reserved claim name. | ||
FORBIDDEN_CLAIM: 'FORBIDDEN_CLAIM', | ||
// Invalid claims provided. | ||
INVALID_CLAIMS: 'INVALID_CLAIMS', | ||
// Invalid email provided. | ||
INVALID_EMAIL: 'INVALID_EMAIL', | ||
// Invalid page token. | ||
INVALID_PAGE_SELECTION: 'INVALID_PAGE_TOKEN', | ||
// Invalid phone number. | ||
@@ -413,0 +489,0 @@ INVALID_PHONE_NUMBER: 'INVALID_PHONE_NUMBER', |
@@ -1,2 +0,2 @@ | ||
/*! firebase-admin v5.2.1 */ | ||
/*! firebase-admin v5.3.0 */ | ||
"use strict"; | ||
@@ -3,0 +3,0 @@ /*! |
@@ -1,2 +0,2 @@ | ||
/*! firebase-admin v5.2.1 */ | ||
/*! firebase-admin v5.3.0 */ | ||
"use strict"; | ||
@@ -81,2 +81,12 @@ /*! | ||
/** | ||
* Validates that a value is a nullable object. | ||
* | ||
* @param {any} value The value to validate. | ||
* @return {boolean} Whether the value is an object or not. | ||
*/ | ||
function isObject(value) { | ||
return typeof value === 'object' && !(value instanceof Array); | ||
} | ||
exports.isObject = isObject; | ||
/** | ||
* Validates that a value is a non-null object. | ||
@@ -88,3 +98,3 @@ * | ||
function isNonNullObject(value) { | ||
return typeof value === 'object' && value !== null && !(value instanceof Array); | ||
return isObject(value) && value !== null; | ||
} | ||
@@ -91,0 +101,0 @@ exports.isNonNullObject = isNonNullObject; |
{ | ||
"name": "firebase-admin", | ||
"version": "5.2.1", | ||
"version": "5.3.0", | ||
"dependencies": { | ||
"@google-cloud/common": { | ||
"version": "0.13.4", | ||
"version": "0.13.5", | ||
"from": "@google-cloud/common@>=0.13.0 <0.14.0", | ||
"resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-0.13.4.tgz" | ||
"resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-0.13.5.tgz" | ||
}, | ||
"@google-cloud/storage": { | ||
"version": "1.2.1", | ||
"version": "1.3.0", | ||
"from": "@google-cloud/storage@>=1.2.1 <2.0.0", | ||
"resolved": "https://registry.npmjs.org/@google-cloud/storage/-/storage-1.2.1.tgz" | ||
"resolved": "https://registry.npmjs.org/@google-cloud/storage/-/storage-1.3.0.tgz" | ||
}, | ||
@@ -21,10 +21,10 @@ "@types/jsonwebtoken": { | ||
"@types/node": { | ||
"version": "8.0.22", | ||
"version": "8.0.31", | ||
"from": "@types/node@*", | ||
"resolved": "https://registry.npmjs.org/@types/node/-/node-8.0.22.tgz" | ||
"resolved": "https://registry.npmjs.org/@types/node/-/node-8.0.31.tgz" | ||
}, | ||
"ajv": { | ||
"version": "4.11.8", | ||
"from": "ajv@>=4.9.1 <5.0.0", | ||
"resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz" | ||
"version": "5.2.3", | ||
"from": "ajv@>=5.1.0 <6.0.0", | ||
"resolved": "https://registry.npmjs.org/ajv/-/ajv-5.2.3.tgz" | ||
}, | ||
@@ -47,5 +47,5 @@ "array-uniq": { | ||
"assert-plus": { | ||
"version": "0.2.0", | ||
"from": "assert-plus@>=0.2.0 <0.3.0", | ||
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz" | ||
"version": "1.0.0", | ||
"from": "assert-plus@>=1.0.0 <2.0.0", | ||
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" | ||
}, | ||
@@ -63,9 +63,9 @@ "async": { | ||
"aws-sign2": { | ||
"version": "0.6.0", | ||
"from": "aws-sign2@>=0.6.0 <0.7.0", | ||
"resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz" | ||
"version": "0.7.0", | ||
"from": "aws-sign2@>=0.7.0 <0.8.0", | ||
"resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz" | ||
}, | ||
"aws4": { | ||
"version": "1.6.0", | ||
"from": "aws4@>=1.2.1 <2.0.0", | ||
"from": "aws4@>=1.6.0 <2.0.0", | ||
"resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz" | ||
@@ -85,5 +85,5 @@ }, | ||
"boom": { | ||
"version": "2.10.1", | ||
"from": "boom@>=2.0.0 <3.0.0", | ||
"resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz" | ||
"version": "4.3.1", | ||
"from": "boom@>=4.0.0 <5.0.0", | ||
"resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz" | ||
}, | ||
@@ -141,5 +141,12 @@ "buffer-equal": { | ||
"cryptiles": { | ||
"version": "2.0.5", | ||
"from": "cryptiles@>=2.0.0 <3.0.0", | ||
"resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz" | ||
"version": "3.1.2", | ||
"from": "cryptiles@>=3.0.0 <4.0.0", | ||
"resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", | ||
"dependencies": { | ||
"boom": { | ||
"version": "5.2.0", | ||
"from": "boom@>=5.0.0 <6.0.0", | ||
"resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz" | ||
} | ||
} | ||
}, | ||
@@ -154,10 +161,3 @@ "crypto-random-string": { | ||
"from": "dashdash@>=1.12.0 <2.0.0", | ||
"resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", | ||
"dependencies": { | ||
"assert-plus": { | ||
"version": "1.0.0", | ||
"from": "assert-plus@>=1.0.0 <2.0.0", | ||
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" | ||
} | ||
} | ||
"resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz" | ||
}, | ||
@@ -210,2 +210,7 @@ "delayed-stream": { | ||
}, | ||
"fast-deep-equal": { | ||
"version": "1.0.0", | ||
"from": "fast-deep-equal@>=1.0.0 <2.0.0", | ||
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz" | ||
}, | ||
"faye-websocket": { | ||
@@ -222,15 +227,22 @@ "version": "0.9.3", | ||
"form-data": { | ||
"version": "2.1.4", | ||
"from": "form-data@>=2.1.1 <2.2.0", | ||
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz" | ||
"version": "2.3.1", | ||
"from": "form-data@>=2.3.1 <2.4.0", | ||
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz" | ||
}, | ||
"gcp-metadata": { | ||
"version": "0.2.0", | ||
"from": "gcp-metadata@>=0.2.0 <0.3.0", | ||
"resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-0.2.0.tgz" | ||
"version": "0.3.1", | ||
"from": "gcp-metadata@>=0.3.0 <0.4.0", | ||
"resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-0.3.1.tgz", | ||
"dependencies": { | ||
"retry-request": { | ||
"version": "3.0.0", | ||
"from": "retry-request@>=3.0.0 <4.0.0", | ||
"resolved": "https://registry.npmjs.org/retry-request/-/retry-request-3.0.0.tgz" | ||
} | ||
} | ||
}, | ||
"gcs-resumable-upload": { | ||
"version": "0.8.1", | ||
"version": "0.8.2", | ||
"from": "gcs-resumable-upload@>=0.8.0 <0.9.0", | ||
"resolved": "https://registry.npmjs.org/gcs-resumable-upload/-/gcs-resumable-upload-0.8.1.tgz" | ||
"resolved": "https://registry.npmjs.org/gcs-resumable-upload/-/gcs-resumable-upload-0.8.2.tgz" | ||
}, | ||
@@ -240,10 +252,3 @@ "getpass": { | ||
"from": "getpass@>=0.1.1 <0.2.0", | ||
"resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", | ||
"dependencies": { | ||
"assert-plus": { | ||
"version": "1.0.0", | ||
"from": "assert-plus@>=1.0.0 <2.0.0", | ||
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" | ||
} | ||
} | ||
"resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz" | ||
}, | ||
@@ -256,5 +261,5 @@ "google-auth-library": { | ||
"google-auto-auth": { | ||
"version": "0.7.1", | ||
"version": "0.7.2", | ||
"from": "google-auto-auth@>=0.7.1 <0.8.0", | ||
"resolved": "https://registry.npmjs.org/google-auto-auth/-/google-auto-auth-0.7.1.tgz" | ||
"resolved": "https://registry.npmjs.org/google-auto-auth/-/google-auto-auth-0.7.2.tgz" | ||
}, | ||
@@ -277,10 +282,10 @@ "google-p12-pem": { | ||
"har-schema": { | ||
"version": "1.0.5", | ||
"from": "har-schema@>=1.0.5 <2.0.0", | ||
"resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz" | ||
"version": "2.0.0", | ||
"from": "har-schema@>=2.0.0 <3.0.0", | ||
"resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz" | ||
}, | ||
"har-validator": { | ||
"version": "4.2.1", | ||
"from": "har-validator@>=4.2.1 <4.3.0", | ||
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz" | ||
"version": "5.0.3", | ||
"from": "har-validator@>=5.0.3 <5.1.0", | ||
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz" | ||
}, | ||
@@ -293,15 +298,20 @@ "hash-stream-validation": { | ||
"hawk": { | ||
"version": "3.1.3", | ||
"from": "hawk@>=3.1.3 <3.2.0", | ||
"resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz" | ||
"version": "6.0.2", | ||
"from": "hawk@>=6.0.2 <6.1.0", | ||
"resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz" | ||
}, | ||
"hoek": { | ||
"version": "2.16.3", | ||
"from": "hoek@>=2.0.0 <3.0.0", | ||
"resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz" | ||
"version": "4.2.0", | ||
"from": "hoek@>=4.0.0 <5.0.0", | ||
"resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz" | ||
}, | ||
"http-parser-js": { | ||
"version": "0.4.8", | ||
"from": "http-parser-js@>=0.4.0", | ||
"resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.8.tgz" | ||
}, | ||
"http-signature": { | ||
"version": "1.1.1", | ||
"from": "http-signature@>=1.1.0 <1.2.0", | ||
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz" | ||
"version": "1.2.0", | ||
"from": "http-signature@>=1.2.0 <1.3.0", | ||
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz" | ||
}, | ||
@@ -356,3 +366,10 @@ "imurmurhash": { | ||
"from": "joi@>=6.10.1 <7.0.0", | ||
"resolved": "https://registry.npmjs.org/joi/-/joi-6.10.1.tgz" | ||
"resolved": "https://registry.npmjs.org/joi/-/joi-6.10.1.tgz", | ||
"dependencies": { | ||
"hoek": { | ||
"version": "2.16.3", | ||
"from": "hoek@>=2.0.0 <3.0.0", | ||
"resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz" | ||
} | ||
} | ||
}, | ||
@@ -370,2 +387,7 @@ "jsbn": { | ||
}, | ||
"json-schema-traverse": { | ||
"version": "0.3.1", | ||
"from": "json-schema-traverse@>=0.3.0 <0.4.0", | ||
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz" | ||
}, | ||
"json-stable-stringify": { | ||
@@ -394,10 +416,3 @@ "version": "1.0.1", | ||
"from": "jsprim@>=1.2.2 <2.0.0", | ||
"resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", | ||
"dependencies": { | ||
"assert-plus": { | ||
"version": "1.0.0", | ||
"from": "assert-plus@1.0.0", | ||
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" | ||
} | ||
} | ||
"resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz" | ||
}, | ||
@@ -445,15 +460,15 @@ "jwa": { | ||
"mime": { | ||
"version": "1.3.6", | ||
"version": "1.4.1", | ||
"from": "mime@>=1.2.11 <2.0.0", | ||
"resolved": "https://registry.npmjs.org/mime/-/mime-1.3.6.tgz" | ||
"resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz" | ||
}, | ||
"mime-db": { | ||
"version": "1.29.0", | ||
"from": "mime-db@>=1.29.0 <1.30.0", | ||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.29.0.tgz" | ||
"version": "1.30.0", | ||
"from": "mime-db@>=1.30.0 <1.31.0", | ||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz" | ||
}, | ||
"mime-types": { | ||
"version": "2.1.16", | ||
"version": "2.1.17", | ||
"from": "mime-types@>=2.0.8 <3.0.0", | ||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz" | ||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz" | ||
}, | ||
@@ -482,3 +497,3 @@ "modelo": { | ||
"version": "0.8.2", | ||
"from": "oauth-sign@>=0.8.1 <0.9.0", | ||
"from": "oauth-sign@>=0.8.2 <0.9.0", | ||
"resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz" | ||
@@ -492,5 +507,5 @@ }, | ||
"performance-now": { | ||
"version": "0.2.0", | ||
"from": "performance-now@>=0.2.0 <0.3.0", | ||
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz" | ||
"version": "2.1.0", | ||
"from": "performance-now@>=2.1.0 <3.0.0", | ||
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz" | ||
}, | ||
@@ -523,5 +538,5 @@ "pify": { | ||
"qs": { | ||
"version": "6.4.0", | ||
"from": "qs@>=6.4.0 <6.5.0", | ||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz" | ||
"version": "6.5.1", | ||
"from": "qs@>=6.5.1 <6.6.0", | ||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz" | ||
}, | ||
@@ -534,5 +549,5 @@ "readable-stream": { | ||
"request": { | ||
"version": "2.81.0", | ||
"version": "2.82.0", | ||
"from": "request@>=2.79.0 <3.0.0", | ||
"resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz" | ||
"resolved": "https://registry.npmjs.org/request/-/request-2.82.0.tgz" | ||
}, | ||
@@ -546,14 +561,14 @@ "retry-request": { | ||
"version": "5.1.1", | ||
"from": "safe-buffer@>=5.1.1 <5.2.0", | ||
"from": "safe-buffer@>=5.1.1 <6.0.0", | ||
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz" | ||
}, | ||
"slide": { | ||
"version": "1.1.6", | ||
"from": "slide@>=1.1.5 <2.0.0", | ||
"resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz" | ||
"signal-exit": { | ||
"version": "3.0.2", | ||
"from": "signal-exit@>=3.0.2 <4.0.0", | ||
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz" | ||
}, | ||
"sntp": { | ||
"version": "1.0.9", | ||
"from": "sntp@>=1.0.0 <2.0.0", | ||
"resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz" | ||
"version": "2.0.2", | ||
"from": "sntp@>=2.0.0 <3.0.0", | ||
"resolved": "https://registry.npmjs.org/sntp/-/sntp-2.0.2.tgz" | ||
}, | ||
@@ -568,10 +583,3 @@ "split-array-stream": { | ||
"from": "sshpk@>=1.7.0 <2.0.0", | ||
"resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", | ||
"dependencies": { | ||
"assert-plus": { | ||
"version": "1.0.0", | ||
"from": "assert-plus@>=1.0.0 <2.0.0", | ||
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" | ||
} | ||
} | ||
"resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz" | ||
}, | ||
@@ -600,3 +608,3 @@ "stream-events": { | ||
"version": "0.0.5", | ||
"from": "stringstream@>=0.0.4 <0.1.0", | ||
"from": "stringstream@>=0.0.5 <0.1.0", | ||
"resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz" | ||
@@ -617,8 +625,15 @@ }, | ||
"from": "topo@>=1.0.0 <2.0.0", | ||
"resolved": "https://registry.npmjs.org/topo/-/topo-1.1.0.tgz" | ||
"resolved": "https://registry.npmjs.org/topo/-/topo-1.1.0.tgz", | ||
"dependencies": { | ||
"hoek": { | ||
"version": "2.16.3", | ||
"from": "hoek@>=2.0.0 <3.0.0", | ||
"resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz" | ||
} | ||
} | ||
}, | ||
"tough-cookie": { | ||
"version": "2.3.2", | ||
"from": "tough-cookie@>=2.3.0 <2.4.0", | ||
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz" | ||
"version": "2.3.3", | ||
"from": "tough-cookie@>=2.3.2 <2.4.0", | ||
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz" | ||
}, | ||
@@ -653,3 +668,3 @@ "tunnel-agent": { | ||
"version": "3.1.0", | ||
"from": "uuid@>=3.0.0 <4.0.0", | ||
"from": "uuid@>=3.1.0 <4.0.0", | ||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz" | ||
@@ -660,20 +675,13 @@ }, | ||
"from": "verror@1.10.0", | ||
"resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", | ||
"dependencies": { | ||
"assert-plus": { | ||
"version": "1.0.0", | ||
"from": "assert-plus@>=1.0.0 <2.0.0", | ||
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" | ||
} | ||
} | ||
"resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz" | ||
}, | ||
"websocket-driver": { | ||
"version": "0.6.5", | ||
"version": "0.7.0", | ||
"from": "websocket-driver@>=0.5.1", | ||
"resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz" | ||
"resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz" | ||
}, | ||
"websocket-extensions": { | ||
"version": "0.1.1", | ||
"version": "0.1.2", | ||
"from": "websocket-extensions@>=0.1.1", | ||
"resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.1.tgz" | ||
"resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.2.tgz" | ||
}, | ||
@@ -686,5 +694,5 @@ "wrappy": { | ||
"write-file-atomic": { | ||
"version": "2.1.0", | ||
"version": "2.3.0", | ||
"from": "write-file-atomic@>=2.0.0 <3.0.0", | ||
"resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.1.0.tgz" | ||
"resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz" | ||
}, | ||
@@ -691,0 +699,0 @@ "xdg-basedir": { |
{ | ||
"name": "firebase-admin", | ||
"version": "5.2.1", | ||
"version": "5.3.0", | ||
"description": "Firebase admin SDK for Node.js", | ||
"author": "Firebase (https://firebase.google.com/)", | ||
"author": "Firebase <firebase-support@google.com> (https://firebase.google.com/)", | ||
"license": "Apache-2.0", | ||
"homepage": "https://firebase.google.com/", | ||
"scripts": { | ||
"test": "gulp" | ||
"build": "gulp build", | ||
"lint": "tslint --project tsconfig-lint.json --format stylish", | ||
"test": "run-s lint test:unit", | ||
"integration": "run-s build test:integration", | ||
"test:unit": "mocha test/**/*.spec.ts --compilers ts:ts-node/register", | ||
"test:integration": "node test/integration", | ||
"test:coverage": "nyc npm run test:unit" | ||
}, | ||
"nyc": { | ||
"extension": [ | ||
".ts" | ||
], | ||
"include": [ | ||
"src" | ||
], | ||
"exclude": [ | ||
"**/*.d.ts", | ||
"**/database.js" | ||
], | ||
"all": true | ||
}, | ||
"keywords": [ | ||
@@ -18,2 +37,6 @@ "admin", | ||
], | ||
"repository": { | ||
"type": "git", | ||
"url": "https://github.com/firebase/firebase-admin-node" | ||
}, | ||
"main": "lib/index.js", | ||
@@ -63,3 +86,6 @@ "files": [ | ||
"merge2": "^1.0.2", | ||
"mocha": "^3.5.0", | ||
"nock": "^8.0.0", | ||
"npm-run-all": "^4.1.1", | ||
"nyc": "^11.1.0", | ||
"request": "^2.75.0", | ||
@@ -71,2 +97,3 @@ "request-promise": "^4.1.1", | ||
"tslint": "^3.5.0", | ||
"ts-node": "^3.3.0", | ||
"typescript": "^2.0.3", | ||
@@ -73,0 +100,0 @@ "typings": "^1.0.4" |
Sorry, the diff of this file is too big to display
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
No repository
Supply chain riskPackage does not have a linked source code repository. Without this field, a package will have no reference to the location of the source code use to generate the package.
Found 1 instance in 1 package
372045
6023
9
40