Socket
Socket
Sign inDemoInstall

firebase-admin

Package Overview
Dependencies
Maintainers
1
Versions
137
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

firebase-admin - npm Package Compare versions

Comparing version 5.2.1 to 5.3.0

130

lib/auth/auth-api-request.js

@@ -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 @@ }());

14

lib/auth/credential.js

@@ -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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc