|
367 | 367 | return f.apply(this, arguments);
|
368 | 368 | } catch(exc) {
|
369 | 369 | var e = exc;
|
370 |
| - if (e) { |
| 370 | + if (e && window._rollbarWrappedError !== e) { |
371 | 371 | if (_.isType(e, 'string')) {
|
372 | 372 | e = new String(e);
|
373 | 373 | }
|
|
384 | 384 |
|
385 | 385 | if (f.hasOwnProperty) {
|
386 | 386 | for (var prop in f) {
|
387 |
| - if (f.hasOwnProperty(prop)) { |
| 387 | + if (f.hasOwnProperty(prop) && prop !== '_rollbar_wrapped') { |
388 | 388 | f._rollbar_wrapped[prop] = f[prop];
|
389 | 389 | }
|
390 | 390 | }
|
|
405 | 405 | }
|
406 | 406 | };
|
407 | 407 |
|
408 |
| - Rollbar.prototype.captureEvent = function(metadata, level) { |
409 |
| - return this.client.captureEvent(metadata, level); |
| 408 | + Rollbar.prototype.captureEvent = function() { |
| 409 | + var event = _.createTelemetryEvent(arguments); |
| 410 | + return this.client.captureEvent(event.type, event.metadata, event.level); |
410 | 411 | };
|
411 |
| - Rollbar.captureEvent = function(metadata, level) { |
| 412 | + Rollbar.captureEvent = function() { |
412 | 413 | if (_instance) {
|
413 |
| - return _instance.captureEvent(metadata, level); |
| 414 | + return _instance.captureEvent.apply(_instance, arguments); |
414 | 415 | } else {
|
415 | 416 | handleUninitialized();
|
416 | 417 | }
|
|
481 | 482 | /* global __DEFAULT_ENDPOINT__:false */
|
482 | 483 |
|
483 | 484 | var defaultOptions = {
|
484 |
| - version: ("2.5.3"), |
| 485 | + version: ("2.5.4"), |
485 | 486 | scrubFields: (["pw","pass","passwd","password","secret","confirm_password","confirmPassword","password_confirmation","passwordConfirmation","access_token","accessToken","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","cvc2","cvv2","ccv2","security code","card verification","name on credit card","name on card","nameoncard","cardholder","card holder","name des karteninhabers","card type","cardtype","cc type","cctype","payment type","expiration date","expirationdate","expdate","cc-exp"]),
|
486 | 487 | logLevel: ("debug"),
|
487 | 488 | reportLevel: ("debug"),
|
|
586 | 587 | this.queue.wait(callback);
|
587 | 588 | };
|
588 | 589 |
|
589 |
| - Rollbar.prototype.captureEvent = function(metadata, level) { |
590 |
| - return this.telemeter.captureEvent(metadata, level); |
| 590 | + Rollbar.prototype.captureEvent = function(type, metadata, level) { |
| 591 | + return this.telemeter.captureEvent(type, metadata, level); |
591 | 592 | };
|
592 | 593 |
|
593 | 594 | Rollbar.prototype.captureDomContentLoaded = function(ts) {
|
|
1045 | 1046 | var o = parseUriOptions;
|
1046 | 1047 | var m = o.parser[o.strictMode ? 'strict' : 'loose'].exec(str);
|
1047 | 1048 | var uri = {};
|
1048 |
| - var i = o.key.length; |
1049 | 1049 |
|
1050 |
| - while (i--) { |
| 1050 | + for (var i = 0, l = o.key.length; i < l; ++i) { |
1051 | 1051 | uri[o.key[i]] = m[i] || '';
|
1052 | 1052 | }
|
1053 | 1053 |
|
|
1262 | 1262 | return item;
|
1263 | 1263 | }
|
1264 | 1264 |
|
| 1265 | + var TELEMETRY_TYPES = ['log', 'network', 'dom', 'navigation', 'error', 'manual']; |
| 1266 | + var TELEMETRY_LEVELS = ['critical', 'error', 'warning', 'info', 'debug']; |
| 1267 | + |
| 1268 | + function arrayIncludes(arr, val) { |
| 1269 | + for (var k = 0; k < arr.length; ++k) { |
| 1270 | + if (arr[k] === val) { |
| 1271 | + return true; |
| 1272 | + } |
| 1273 | + } |
| 1274 | + |
| 1275 | + return false; |
| 1276 | + } |
| 1277 | + |
| 1278 | + function createTelemetryEvent(args) { |
| 1279 | + var type, metadata, level; |
| 1280 | + var arg; |
| 1281 | + |
| 1282 | + for (var i = 0, l = args.length; i < l; ++i) { |
| 1283 | + arg = args[i]; |
| 1284 | + |
| 1285 | + var typ = typeName(arg); |
| 1286 | + switch (typ) { |
| 1287 | + case 'string': |
| 1288 | + if (arrayIncludes(TELEMETRY_TYPES, arg)) { |
| 1289 | + type = arg; |
| 1290 | + } else if (arrayIncludes(TELEMETRY_LEVELS, arg)) { |
| 1291 | + level = arg; |
| 1292 | + } |
| 1293 | + break; |
| 1294 | + case 'object': |
| 1295 | + metadata = arg; |
| 1296 | + break; |
| 1297 | + default: |
| 1298 | + break; |
| 1299 | + } |
| 1300 | + } |
| 1301 | + var event = { |
| 1302 | + type: type || 'manual', |
| 1303 | + metadata: metadata || {}, |
| 1304 | + level: level |
| 1305 | + }; |
| 1306 | + |
| 1307 | + return event; |
| 1308 | + } |
| 1309 | + |
1265 | 1310 | /*
|
1266 | 1311 | * get - given an obj/array and a keypath, return the value at that keypath or
|
1267 | 1312 | * undefined if not possible.
|
|
1302 | 1347 | try {
|
1303 | 1348 | var temp = obj[keys[0]] || {};
|
1304 | 1349 | var replacement = temp;
|
1305 |
| - for (var i = 1; i < len-1; i++) { |
| 1350 | + for (var i = 1; i < len - 1; ++i) { |
1306 | 1351 | temp[keys[i]] = temp[keys[i]] || {};
|
1307 | 1352 | temp = temp[keys[i]];
|
1308 | 1353 | }
|
|
1382 | 1427 | function formatArgsAsString(args) {
|
1383 | 1428 | var i, len, arg;
|
1384 | 1429 | var result = [];
|
1385 |
| - for (i = 0, len = args.length; i < len; i++) { |
| 1430 | + for (i = 0, len = args.length; i < len; ++i) { |
1386 | 1431 | arg = args[i];
|
1387 | 1432 | switch (typeName(arg)) {
|
1388 | 1433 | case 'object':
|
|
1464 | 1509 | module.exports = {
|
1465 | 1510 | addParamsAndAccessTokenToPath: addParamsAndAccessTokenToPath,
|
1466 | 1511 | createItem: createItem,
|
| 1512 | + createTelemetryEvent: createTelemetryEvent, |
1467 | 1513 | filterIp: filterIp,
|
1468 | 1514 | formatArgsAsString: formatArgsAsString,
|
1469 | 1515 | formatUrl: formatUrl,
|
|
2784 | 2830 | return e;
|
2785 | 2831 | };
|
2786 | 2832 |
|
2787 |
| - Telemeter.prototype.captureEvent = function(metadata, level, rollbarUUID) { |
2788 |
| - return this.capture('manual', metadata, level, rollbarUUID); |
| 2833 | + Telemeter.prototype.captureEvent = function(type, metadata, level, rollbarUUID) { |
| 2834 | + return this.capture(type, metadata, level, rollbarUUID); |
2789 | 2835 | };
|
2790 | 2836 |
|
2791 | 2837 | Telemeter.prototype.captureError = function(err, level, rollbarUUID, timestamp) {
|
|
0 commit comments