Skip to content

Commit

Permalink
Release v2.18.0
Browse files Browse the repository at this point in the history
  • Loading branch information
waltjones committed Jul 7, 2020
1 parent aaf6770 commit 29ee9e3
Show file tree
Hide file tree
Showing 26 changed files with 306 additions and 46 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Rollbar.js


[![Build Status](https://travis-ci.org/rollbar/rollbar.js.svg?branch=v2.17.0)](https://travis-ci.org/rollbar/rollbar.js)
[![Build Status](https://travis-ci.org/rollbar/rollbar.js.svg?branch=v2.18.0)](https://travis-ci.org/rollbar/rollbar.js)
[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/rollbar/rollbar.js.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/rollbar/rollbar.js/context:javascript)
[![Total Alerts](https://img.shields.io/lgtm/alerts/g/rollbar/rollbar.js.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/rollbar/rollbar.js/alerts)

Expand Down
77 changes: 71 additions & 6 deletions dist/rollbar.js
Original file line number Diff line number Diff line change
Expand Up @@ -599,6 +599,27 @@ function setCustomItemKeys(item, custom) {
}
}

function addErrorContext(item, errors) {
var custom = item.data.custom || {};
var contextAdded = false;

try {
for (var i = 0; i < errors.length; ++i) {
if (errors[i].hasOwnProperty('rollbarContext')) {
custom = merge(custom, errors[i].rollbarContext);
contextAdded = true;
}
}

// Avoid adding an empty object to the data.
if (contextAdded) {
item.data.custom = custom;
}
} catch (e) {
item.diagnostic.error_context = 'Failed: ' + e.message;
}
}

var TELEMETRY_TYPES = ['log', 'network', 'dom', 'navigation', 'error', 'manual'];
var TELEMETRY_LEVELS = ['critical', 'error', 'warning', 'info', 'debug'];

Expand Down Expand Up @@ -695,8 +716,15 @@ function set(obj, path, value) {
}
}

function scrub(data, scrubFields) {
function scrub(data, scrubFields, scrubPaths) {
scrubFields = scrubFields || [];

if (scrubPaths) {
for (var i = 0; i < scrubPaths.length; ++i) {
scrubPath(data, scrubPaths[i]);
}
}

var paramRes = _getScrubFieldRegexs(scrubFields);
var queryRes = _getScrubQueryParamRegexs(scrubFields);

Expand Down Expand Up @@ -740,6 +768,22 @@ function scrub(data, scrubFields) {
return traverse(data, scrubber, []);
}

function scrubPath(obj, path) {
var keys = path.split('.');
var last = keys.length - 1;
try {
for (var i = 0; i <= last; ++i) {
if (i < last) {
obj = obj[keys[i]];
} else {
obj[keys[i]] = redact();
}
}
} catch (e) {
// Missing key is OK;
}
}

function _getScrubFieldRegexs(scrubFields) {
var ret = [];
var pat;
Expand Down Expand Up @@ -846,6 +890,7 @@ function handleOptions(current, input, payload) {
module.exports = {
addParamsAndAccessTokenToPath: addParamsAndAccessTokenToPath,
createItem: createItem,
addErrorContext: addErrorContext,
createTelemetryEvent: createTelemetryEvent,
filterIp: filterIp,
formatArgsAsString: formatArgsAsString,
Expand Down Expand Up @@ -1840,7 +1885,7 @@ function _gWindow() {
/* global __DEFAULT_ENDPOINT__:false */

var defaultOptions = {
version: "2.17.0",
version: "2.18.0",
scrubFields: ["pw","pass","passwd","password","secret","confirm_password","confirmPassword","password_confirmation","passwordConfirmation","access_token","accessToken","X-Rollbar-Access-Token","secret_key","secretKey","secretToken","cc-number","card number","cardnumber","cardnum","ccnum","ccnumber","cc num","creditcardnumber","credit card number","newcreditcardnumber","new credit card","creditcardno","credit card no","card#","card #","cc-csc","cvc","cvc2","cvv2","ccv2","security code","card verification","name on credit card","name on card","nameoncard","cardholder","card holder","name des karteninhabers","ccname","card type","cardtype","cc type","cctype","payment type","expiration date","expirationdate","expdate","cc-exp","ccmonth","ccyear"],
logLevel: "debug",
reportLevel: "debug",
Expand Down Expand Up @@ -4408,6 +4453,10 @@ function handleItemWithError(item, options, callback) {
if (item.err) {
try {
item.stackInfo = item.err._savedStackTrace || errorParser.parse(item.err, item.skipFrames);

if (options.addErrorContext) {
addErrorContext(item);
}
} catch (e) {
logger.error('Error while parsing the error object.', e);
try {
Expand All @@ -4421,6 +4470,20 @@ function handleItemWithError(item, options, callback) {
callback(null, item);
}

function addErrorContext(item) {
var chain = [];
var err = item.err;

chain.push(err);

while (err.nested) {
err = err.nested;
chain.push(err);
}

_.addErrorContext(item, chain);
}

function ensureItemHasSomethingToSay(item, options, callback) {
if (!item.message && !item.stackInfo && !item.custom) {
callback(new Error('No message, stack info, or custom data'), null);
Expand Down Expand Up @@ -4681,8 +4744,9 @@ function errorClass(stackInfo, guess, options) {
}

function scrubPayload(item, options, callback) {
var scrubFields = options.scrubFields;
item.data = _.scrub(item.data, scrubFields);
var scrubFields = options.scrubFields || [];
var scrubPaths = options.scrubPaths || [];
item.data = _.scrub(item.data, scrubFields, scrubPaths);
callback(null, item);
}

Expand Down Expand Up @@ -5777,8 +5841,9 @@ Instrumenter.prototype.instrumentNetwork = function() {
}
var body = null;
if (self.autoInstrument.networkResponseBody) {
if (typeof resp.text === 'function') { // Response.text() is not implemented on multiple platforms
body = resp.text(); //returns a Promise
if (typeof resp.text === 'function') { // Response.text() is not implemented on some platforms
// The response must be cloned to prevent reading (and locking) the original stream.
body = resp.clone().text(); //returns a Promise
}
}
if (headers || body) {
Expand Down
2 changes: 1 addition & 1 deletion dist/rollbar.js.map

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/rollbar.min.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/rollbar.min.js.map

Large diffs are not rendered by default.

77 changes: 71 additions & 6 deletions dist/rollbar.named-amd.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion dist/rollbar.named-amd.js.map

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/rollbar.named-amd.min.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/rollbar.named-amd.min.js.map

Large diffs are not rendered by default.

Loading

0 comments on commit 29ee9e3

Please sign in to comment.