rollbar 2.25.1 → 2.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/rollbar.js +261 -61
- package/dist/rollbar.js.map +1 -1
- package/dist/rollbar.min.js +1 -1
- package/dist/rollbar.min.js.map +1 -1
- package/dist/rollbar.named-amd.js +261 -61
- package/dist/rollbar.named-amd.js.map +1 -1
- package/dist/rollbar.named-amd.min.js +1 -1
- package/dist/rollbar.named-amd.min.js.map +1 -1
- package/dist/rollbar.noconflict.umd.js +261 -61
- package/dist/rollbar.noconflict.umd.js.map +1 -1
- package/dist/rollbar.noconflict.umd.min.js +1 -1
- package/dist/rollbar.noconflict.umd.min.js.map +1 -1
- package/dist/rollbar.snippet.js +1 -1
- package/dist/rollbar.umd.js +261 -61
- package/dist/rollbar.umd.js.map +1 -1
- package/dist/rollbar.umd.min.js +1 -1
- package/dist/rollbar.umd.min.js.map +1 -1
- package/index.d.ts +1 -1
- package/package.json +1 -1
- package/src/apiUtility.js +14 -2
- package/src/browser/telemetry.js +6 -1
- package/src/browser/transforms.js +12 -7
- package/src/browser/transport/fetch.js +35 -0
- package/src/browser/transport/xhr.js +159 -0
- package/src/browser/transport.js +29 -166
- package/src/defaults.js +1 -1
- package/src/utility/headers.js +94 -0
- package/test/apiUtility.test.js +54 -0
- package/test/browser.rollbar.test.js +101 -28
- package/test/browser.transforms.test.js +15 -1
- package/test/browser.transport.test.js +59 -0
package/dist/rollbar.js
CHANGED
|
@@ -1018,7 +1018,7 @@ module.exports = {
|
|
|
1018
1018
|
"use strict";
|
|
1019
1019
|
|
|
1020
1020
|
|
|
1021
|
-
var ErrorStackParser = __webpack_require__(
|
|
1021
|
+
var ErrorStackParser = __webpack_require__(23);
|
|
1022
1022
|
|
|
1023
1023
|
var UNKNOWN_FUNCTION = '?';
|
|
1024
1024
|
var ERR_CLASS_REGEXP = new RegExp('^(([a-zA-Z0-9-_$ ]*): *)?(Uncaught )?([a-zA-Z0-9-_$ ]*): ');
|
|
@@ -1347,12 +1347,12 @@ module.exports = rollbar;
|
|
|
1347
1347
|
|
|
1348
1348
|
|
|
1349
1349
|
var Rollbar = __webpack_require__(8);
|
|
1350
|
-
var telemeter = __webpack_require__(
|
|
1351
|
-
var instrumenter = __webpack_require__(
|
|
1352
|
-
var polyfillJSON = __webpack_require__(
|
|
1353
|
-
var wrapGlobals = __webpack_require__(
|
|
1350
|
+
var telemeter = __webpack_require__(30);
|
|
1351
|
+
var instrumenter = __webpack_require__(31);
|
|
1352
|
+
var polyfillJSON = __webpack_require__(34);
|
|
1353
|
+
var wrapGlobals = __webpack_require__(36);
|
|
1354
1354
|
var scrub = __webpack_require__(4);
|
|
1355
|
-
var truncation = __webpack_require__(
|
|
1355
|
+
var truncation = __webpack_require__(37);
|
|
1356
1356
|
|
|
1357
1357
|
Rollbar.setComponents({
|
|
1358
1358
|
telemeter: telemeter,
|
|
@@ -1382,10 +1382,10 @@ var globals = __webpack_require__(18);
|
|
|
1382
1382
|
var Transport = __webpack_require__(19);
|
|
1383
1383
|
var urllib = __webpack_require__(2);
|
|
1384
1384
|
|
|
1385
|
-
var transforms = __webpack_require__(
|
|
1386
|
-
var sharedTransforms = __webpack_require__(
|
|
1387
|
-
var predicates = __webpack_require__(
|
|
1388
|
-
var sharedPredicates = __webpack_require__(
|
|
1385
|
+
var transforms = __webpack_require__(22);
|
|
1386
|
+
var sharedTransforms = __webpack_require__(25);
|
|
1387
|
+
var predicates = __webpack_require__(26);
|
|
1388
|
+
var sharedPredicates = __webpack_require__(27);
|
|
1389
1389
|
var errorParser = __webpack_require__(3);
|
|
1390
1390
|
|
|
1391
1391
|
function Rollbar(options, client) {
|
|
@@ -1914,8 +1914,8 @@ function _gWindow() {
|
|
|
1914
1914
|
return ((typeof window != 'undefined') && window) || ((typeof self != 'undefined') && self);
|
|
1915
1915
|
}
|
|
1916
1916
|
|
|
1917
|
-
var defaults = __webpack_require__(
|
|
1918
|
-
var scrubFields = __webpack_require__(
|
|
1917
|
+
var defaults = __webpack_require__(28);
|
|
1918
|
+
var scrubFields = __webpack_require__(29);
|
|
1919
1919
|
|
|
1920
1920
|
var defaultOptions = {
|
|
1921
1921
|
version: defaults.version,
|
|
@@ -2991,6 +2991,7 @@ function getTransportFromOptions(options, defaults, url) {
|
|
|
2991
2991
|
var path = defaults.path;
|
|
2992
2992
|
var search = defaults.search;
|
|
2993
2993
|
var timeout = options.timeout;
|
|
2994
|
+
var transport = detectTransport(options)
|
|
2994
2995
|
|
|
2995
2996
|
var proxy = options.proxy;
|
|
2996
2997
|
if (options.endpoint) {
|
|
@@ -3008,16 +3009,26 @@ function getTransportFromOptions(options, defaults, url) {
|
|
|
3008
3009
|
port: port,
|
|
3009
3010
|
path: path,
|
|
3010
3011
|
search: search,
|
|
3011
|
-
proxy: proxy
|
|
3012
|
+
proxy: proxy,
|
|
3013
|
+
transport: transport
|
|
3012
3014
|
};
|
|
3013
3015
|
}
|
|
3014
3016
|
|
|
3017
|
+
function detectTransport(options) {
|
|
3018
|
+
var gWindow = ((typeof window != 'undefined') && window) || ((typeof self != 'undefined') && self);
|
|
3019
|
+
var transport = options.defaultTransport || 'xhr';
|
|
3020
|
+
if (typeof gWindow.fetch === 'undefined') transport = 'xhr';
|
|
3021
|
+
if (typeof gWindow.XMLHttpRequest === 'undefined') transport = 'fetch';
|
|
3022
|
+
return transport;
|
|
3023
|
+
}
|
|
3024
|
+
|
|
3015
3025
|
function transportOptions(transport, method) {
|
|
3016
3026
|
var protocol = transport.protocol || 'https:';
|
|
3017
3027
|
var port = transport.port || (protocol === 'http:' ? 80 : protocol === 'https:' ? 443 : undefined);
|
|
3018
3028
|
var hostname = transport.hostname;
|
|
3019
3029
|
var path = transport.path;
|
|
3020
3030
|
var timeout = transport.timeout;
|
|
3031
|
+
var transportAPI = transport.transport;
|
|
3021
3032
|
if (transport.search) {
|
|
3022
3033
|
path = path + transport.search;
|
|
3023
3034
|
}
|
|
@@ -3033,7 +3044,8 @@ function transportOptions(transport, method) {
|
|
|
3033
3044
|
hostname: hostname,
|
|
3034
3045
|
path: path,
|
|
3035
3046
|
port: port,
|
|
3036
|
-
method: method
|
|
3047
|
+
method: method,
|
|
3048
|
+
transport: transportAPI
|
|
3037
3049
|
};
|
|
3038
3050
|
}
|
|
3039
3051
|
|
|
@@ -3235,10 +3247,9 @@ module.exports = {
|
|
|
3235
3247
|
"use strict";
|
|
3236
3248
|
|
|
3237
3249
|
|
|
3238
|
-
/*global XDomainRequest*/
|
|
3239
|
-
|
|
3240
3250
|
var _ = __webpack_require__(0);
|
|
3241
|
-
var
|
|
3251
|
+
var makeFetchRequest = __webpack_require__(20);
|
|
3252
|
+
var makeXhrRequest = __webpack_require__(21);
|
|
3242
3253
|
|
|
3243
3254
|
/*
|
|
3244
3255
|
* accessToken may be embedded in payload but that should not
|
|
@@ -3250,6 +3261,7 @@ var logger = __webpack_require__(1);
|
|
|
3250
3261
|
* path
|
|
3251
3262
|
* port
|
|
3252
3263
|
* method
|
|
3264
|
+
* transport ('xhr' | 'fetch')
|
|
3253
3265
|
* }
|
|
3254
3266
|
*
|
|
3255
3267
|
* params is an object containing key/value pairs. These
|
|
@@ -3269,7 +3281,9 @@ Transport.prototype.get = function(accessToken, options, params, callback, reque
|
|
|
3269
3281
|
|
|
3270
3282
|
var method = 'GET';
|
|
3271
3283
|
var url = _.formatUrl(options);
|
|
3272
|
-
_makeZoneRequest(
|
|
3284
|
+
this._makeZoneRequest(
|
|
3285
|
+
accessToken, url, method, null, callback, requestFactory, options.timeout, options.transport
|
|
3286
|
+
);
|
|
3273
3287
|
}
|
|
3274
3288
|
|
|
3275
3289
|
Transport.prototype.post = function(accessToken, options, payload, callback, requestFactory) {
|
|
@@ -3294,7 +3308,9 @@ Transport.prototype.post = function(accessToken, options, payload, callback, req
|
|
|
3294
3308
|
var writeData = stringifyResult.value;
|
|
3295
3309
|
var method = 'POST';
|
|
3296
3310
|
var url = _.formatUrl(options);
|
|
3297
|
-
_makeZoneRequest(
|
|
3311
|
+
this._makeZoneRequest(
|
|
3312
|
+
accessToken, url, method, writeData, callback, requestFactory, options.timeout, options.transport
|
|
3313
|
+
);
|
|
3298
3314
|
}
|
|
3299
3315
|
|
|
3300
3316
|
Transport.prototype.postJsonPayload = function (accessToken, options, jsonPayload, callback, requestFactory) {
|
|
@@ -3304,7 +3320,9 @@ Transport.prototype.postJsonPayload = function (accessToken, options, jsonPayloa
|
|
|
3304
3320
|
|
|
3305
3321
|
var method = 'POST';
|
|
3306
3322
|
var url = _.formatUrl(options);
|
|
3307
|
-
_makeZoneRequest(
|
|
3323
|
+
this._makeZoneRequest(
|
|
3324
|
+
accessToken, url, method, jsonPayload, callback, requestFactory, options.timeout, options.transport
|
|
3325
|
+
);
|
|
3308
3326
|
}
|
|
3309
3327
|
|
|
3310
3328
|
|
|
@@ -3312,7 +3330,7 @@ Transport.prototype.postJsonPayload = function (accessToken, options, jsonPayloa
|
|
|
3312
3330
|
// so Angular change detection isn't triggered on each API call.
|
|
3313
3331
|
// This is the equivalent of runOutsideAngular().
|
|
3314
3332
|
//
|
|
3315
|
-
function
|
|
3333
|
+
Transport.prototype._makeZoneRequest = function () {
|
|
3316
3334
|
var gWindow = ((typeof window != 'undefined') && window) || ((typeof self != 'undefined') && self);
|
|
3317
3335
|
var currentZone = gWindow && gWindow.Zone && gWindow.Zone.current;
|
|
3318
3336
|
var args = Array.prototype.slice.call(arguments);
|
|
@@ -3320,10 +3338,24 @@ function _makeZoneRequest() {
|
|
|
3320
3338
|
if (currentZone && currentZone._name === 'angular') {
|
|
3321
3339
|
var rootZone = currentZone._parent;
|
|
3322
3340
|
rootZone.run(function () {
|
|
3323
|
-
_makeRequest.apply(undefined, args);
|
|
3341
|
+
this._makeRequest.apply(undefined, args);
|
|
3324
3342
|
});
|
|
3325
3343
|
} else {
|
|
3326
|
-
_makeRequest.apply(undefined, args);
|
|
3344
|
+
this._makeRequest.apply(undefined, args);
|
|
3345
|
+
}
|
|
3346
|
+
}
|
|
3347
|
+
|
|
3348
|
+
Transport.prototype._makeRequest = function (
|
|
3349
|
+
accessToken, url, method, data, callback, requestFactory, timeout, transport
|
|
3350
|
+
) {
|
|
3351
|
+
if (typeof RollbarProxy !== 'undefined') {
|
|
3352
|
+
return _proxyRequest(data, callback);
|
|
3353
|
+
}
|
|
3354
|
+
|
|
3355
|
+
if (transport === 'fetch') {
|
|
3356
|
+
makeFetchRequest(accessToken, url, method, data, callback, timeout)
|
|
3357
|
+
} else {
|
|
3358
|
+
makeXhrRequest(accessToken, url, method, data, callback, requestFactory, timeout)
|
|
3327
3359
|
}
|
|
3328
3360
|
}
|
|
3329
3361
|
|
|
@@ -3339,11 +3371,66 @@ function _proxyRequest(json, callback) {
|
|
|
3339
3371
|
);
|
|
3340
3372
|
}
|
|
3341
3373
|
|
|
3342
|
-
|
|
3343
|
-
|
|
3344
|
-
|
|
3374
|
+
module.exports = Transport;
|
|
3375
|
+
|
|
3376
|
+
|
|
3377
|
+
/***/ }),
|
|
3378
|
+
/* 20 */
|
|
3379
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
3380
|
+
|
|
3381
|
+
"use strict";
|
|
3382
|
+
|
|
3383
|
+
|
|
3384
|
+
var logger = __webpack_require__(1);
|
|
3385
|
+
var _ = __webpack_require__(0);
|
|
3386
|
+
|
|
3387
|
+
function makeFetchRequest(accessToken, url, method, data, callback, timeout) {
|
|
3388
|
+
var controller;
|
|
3389
|
+
var timeoutId;
|
|
3390
|
+
|
|
3391
|
+
if(_.isFiniteNumber(timeout)) {
|
|
3392
|
+
controller = new AbortController();
|
|
3393
|
+
timeoutId = setTimeout(() => controller.abort(), timeout);
|
|
3345
3394
|
}
|
|
3346
3395
|
|
|
3396
|
+
fetch(url, {
|
|
3397
|
+
method: method,
|
|
3398
|
+
headers: {
|
|
3399
|
+
'Content-Type': 'application/json',
|
|
3400
|
+
'X-Rollbar-Access-Token': accessToken,
|
|
3401
|
+
signal: controller && controller.signal
|
|
3402
|
+
},
|
|
3403
|
+
body: data,
|
|
3404
|
+
})
|
|
3405
|
+
.then((response) => {
|
|
3406
|
+
if (timeoutId) clearTimeout(timeoutId);
|
|
3407
|
+
return response.json();
|
|
3408
|
+
})
|
|
3409
|
+
.then((data) => {
|
|
3410
|
+
callback(null, data);
|
|
3411
|
+
})
|
|
3412
|
+
.catch((error) => {
|
|
3413
|
+
logger.error(error.message);
|
|
3414
|
+
callback(error);
|
|
3415
|
+
});
|
|
3416
|
+
}
|
|
3417
|
+
|
|
3418
|
+
module.exports = makeFetchRequest;
|
|
3419
|
+
|
|
3420
|
+
|
|
3421
|
+
/***/ }),
|
|
3422
|
+
/* 21 */
|
|
3423
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
3424
|
+
|
|
3425
|
+
"use strict";
|
|
3426
|
+
|
|
3427
|
+
|
|
3428
|
+
/*global XDomainRequest*/
|
|
3429
|
+
|
|
3430
|
+
var _ = __webpack_require__(0);
|
|
3431
|
+
var logger = __webpack_require__(1);
|
|
3432
|
+
|
|
3433
|
+
function makeXhrRequest(accessToken, url, method, data, callback, requestFactory, timeout) {
|
|
3347
3434
|
var request;
|
|
3348
3435
|
if (requestFactory) {
|
|
3349
3436
|
request = requestFactory();
|
|
@@ -3496,11 +3583,11 @@ function _newRetriableError(message, code) {
|
|
|
3496
3583
|
return err;
|
|
3497
3584
|
}
|
|
3498
3585
|
|
|
3499
|
-
module.exports =
|
|
3586
|
+
module.exports = makeXhrRequest;
|
|
3500
3587
|
|
|
3501
3588
|
|
|
3502
3589
|
/***/ }),
|
|
3503
|
-
/*
|
|
3590
|
+
/* 22 */
|
|
3504
3591
|
/***/ (function(module, exports, __webpack_require__) {
|
|
3505
3592
|
|
|
3506
3593
|
"use strict";
|
|
@@ -3587,20 +3674,25 @@ function addBaseInfo(item, options, callback) {
|
|
|
3587
3674
|
|
|
3588
3675
|
function addRequestInfo(window) {
|
|
3589
3676
|
return function(item, options, callback) {
|
|
3590
|
-
|
|
3591
|
-
|
|
3677
|
+
var requestInfo = {};
|
|
3678
|
+
|
|
3679
|
+
if (window && window.location) {
|
|
3680
|
+
requestInfo.url = window.location.href;
|
|
3681
|
+
requestInfo.query_string = window.location.search;
|
|
3592
3682
|
}
|
|
3683
|
+
|
|
3593
3684
|
var remoteString = '$remote_ip';
|
|
3594
3685
|
if (!options.captureIp) {
|
|
3595
3686
|
remoteString = null;
|
|
3596
3687
|
} else if (options.captureIp !== true) {
|
|
3597
3688
|
remoteString += '_anonymize';
|
|
3598
3689
|
}
|
|
3599
|
-
|
|
3600
|
-
|
|
3601
|
-
|
|
3602
|
-
|
|
3603
|
-
}
|
|
3690
|
+
if (remoteString) requestInfo.user_ip = remoteString;
|
|
3691
|
+
|
|
3692
|
+
if (Object.keys(requestInfo).length > 0) {
|
|
3693
|
+
_.set(item, 'data.request', requestInfo);
|
|
3694
|
+
}
|
|
3695
|
+
|
|
3604
3696
|
callback(null, item);
|
|
3605
3697
|
};
|
|
3606
3698
|
}
|
|
@@ -3842,7 +3934,7 @@ module.exports = {
|
|
|
3842
3934
|
|
|
3843
3935
|
|
|
3844
3936
|
/***/ }),
|
|
3845
|
-
/*
|
|
3937
|
+
/* 23 */
|
|
3846
3938
|
/***/ (function(module, exports, __webpack_require__) {
|
|
3847
3939
|
|
|
3848
3940
|
var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function(root, factory) {
|
|
@@ -3851,7 +3943,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
|
|
|
3851
3943
|
|
|
3852
3944
|
/* istanbul ignore next */
|
|
3853
3945
|
if (true) {
|
|
3854
|
-
!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(
|
|
3946
|
+
!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(24)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
|
|
3855
3947
|
__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
|
|
3856
3948
|
(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
|
|
3857
3949
|
__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
@@ -3902,21 +3994,21 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
|
|
|
3902
3994
|
return filtered.map(function(line) {
|
|
3903
3995
|
if (line.indexOf('(eval ') > -1) {
|
|
3904
3996
|
// Throw away eval information until we implement stacktrace.js/stackframe#8
|
|
3905
|
-
line = line.replace(/eval code/g, 'eval').replace(/(\(eval at [^()]*)|(
|
|
3997
|
+
line = line.replace(/eval code/g, 'eval').replace(/(\(eval at [^()]*)|(,.*$)/g, '');
|
|
3906
3998
|
}
|
|
3907
|
-
var sanitizedLine = line.replace(/^\s+/, '').replace(/\(eval code/g, '(');
|
|
3999
|
+
var sanitizedLine = line.replace(/^\s+/, '').replace(/\(eval code/g, '(').replace(/^.*?\s+/, '');
|
|
3908
4000
|
|
|
3909
4001
|
// capture and preseve the parenthesized location "(/foo/my bar.js:12:87)" in
|
|
3910
4002
|
// case it has spaces in it, as the string is split on \s+ later on
|
|
3911
|
-
var location = sanitizedLine.match(/ (\(
|
|
4003
|
+
var location = sanitizedLine.match(/ (\(.+\)$)/);
|
|
3912
4004
|
|
|
3913
4005
|
// remove the parenthesized location from the line, if it was matched
|
|
3914
4006
|
sanitizedLine = location ? sanitizedLine.replace(location[0], '') : sanitizedLine;
|
|
3915
4007
|
|
|
3916
|
-
|
|
3917
|
-
//
|
|
3918
|
-
var locationParts = this.extractLocation(location ? location[1] :
|
|
3919
|
-
var functionName =
|
|
4008
|
+
// if a location was matched, pass it to extractLocation() otherwise pass all sanitizedLine
|
|
4009
|
+
// because this line doesn't have function name
|
|
4010
|
+
var locationParts = this.extractLocation(location ? location[1] : sanitizedLine);
|
|
4011
|
+
var functionName = location && sanitizedLine || undefined;
|
|
3920
4012
|
var fileName = ['eval', '<anonymous>'].indexOf(locationParts[0]) > -1 ? undefined : locationParts[0];
|
|
3921
4013
|
|
|
3922
4014
|
return new StackFrame({
|
|
@@ -4049,7 +4141,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
|
|
|
4049
4141
|
|
|
4050
4142
|
|
|
4051
4143
|
/***/ }),
|
|
4052
|
-
/*
|
|
4144
|
+
/* 24 */
|
|
4053
4145
|
/***/ (function(module, exports, __webpack_require__) {
|
|
4054
4146
|
|
|
4055
4147
|
var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function(root, factory) {
|
|
@@ -4197,7 +4289,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
|
|
|
4197
4289
|
|
|
4198
4290
|
|
|
4199
4291
|
/***/ }),
|
|
4200
|
-
/*
|
|
4292
|
+
/* 25 */
|
|
4201
4293
|
/***/ (function(module, exports, __webpack_require__) {
|
|
4202
4294
|
|
|
4203
4295
|
"use strict";
|
|
@@ -4354,7 +4446,7 @@ module.exports = {
|
|
|
4354
4446
|
|
|
4355
4447
|
|
|
4356
4448
|
/***/ }),
|
|
4357
|
-
/*
|
|
4449
|
+
/* 26 */
|
|
4358
4450
|
/***/ (function(module, exports, __webpack_require__) {
|
|
4359
4451
|
|
|
4360
4452
|
"use strict";
|
|
@@ -4375,7 +4467,7 @@ module.exports = {
|
|
|
4375
4467
|
|
|
4376
4468
|
|
|
4377
4469
|
/***/ }),
|
|
4378
|
-
/*
|
|
4470
|
+
/* 27 */
|
|
4379
4471
|
/***/ (function(module, exports, __webpack_require__) {
|
|
4380
4472
|
|
|
4381
4473
|
"use strict";
|
|
@@ -4577,14 +4669,14 @@ module.exports = {
|
|
|
4577
4669
|
|
|
4578
4670
|
|
|
4579
4671
|
/***/ }),
|
|
4580
|
-
/*
|
|
4672
|
+
/* 28 */
|
|
4581
4673
|
/***/ (function(module, exports, __webpack_require__) {
|
|
4582
4674
|
|
|
4583
4675
|
"use strict";
|
|
4584
4676
|
|
|
4585
4677
|
|
|
4586
4678
|
module.exports = {
|
|
4587
|
-
version: '2.
|
|
4679
|
+
version: '2.26.0',
|
|
4588
4680
|
endpoint: 'api.rollbar.com/api/1/item/',
|
|
4589
4681
|
logLevel: 'debug',
|
|
4590
4682
|
reportLevel: 'debug',
|
|
@@ -4595,7 +4687,7 @@ module.exports = {
|
|
|
4595
4687
|
|
|
4596
4688
|
|
|
4597
4689
|
/***/ }),
|
|
4598
|
-
/*
|
|
4690
|
+
/* 29 */
|
|
4599
4691
|
/***/ (function(module, exports, __webpack_require__) {
|
|
4600
4692
|
|
|
4601
4693
|
"use strict";
|
|
@@ -4663,7 +4755,7 @@ module.exports = {
|
|
|
4663
4755
|
|
|
4664
4756
|
|
|
4665
4757
|
/***/ }),
|
|
4666
|
-
/*
|
|
4758
|
+
/* 30 */
|
|
4667
4759
|
/***/ (function(module, exports, __webpack_require__) {
|
|
4668
4760
|
|
|
4669
4761
|
"use strict";
|
|
@@ -4849,16 +4941,17 @@ module.exports = Telemeter;
|
|
|
4849
4941
|
|
|
4850
4942
|
|
|
4851
4943
|
/***/ }),
|
|
4852
|
-
/*
|
|
4944
|
+
/* 31 */
|
|
4853
4945
|
/***/ (function(module, exports, __webpack_require__) {
|
|
4854
4946
|
|
|
4855
4947
|
"use strict";
|
|
4856
4948
|
|
|
4857
4949
|
|
|
4858
4950
|
var _ = __webpack_require__(0);
|
|
4951
|
+
var headers = __webpack_require__(32);
|
|
4859
4952
|
var scrub = __webpack_require__(4);
|
|
4860
4953
|
var urlparser = __webpack_require__(2);
|
|
4861
|
-
var domUtil = __webpack_require__(
|
|
4954
|
+
var domUtil = __webpack_require__(33);
|
|
4862
4955
|
|
|
4863
4956
|
var defaults = {
|
|
4864
4957
|
network: true,
|
|
@@ -5219,7 +5312,7 @@ Instrumenter.prototype.instrumentNetwork = function() {
|
|
|
5219
5312
|
if (args[1] && args[1].headers) {
|
|
5220
5313
|
// Argument may be a Headers object, or plain object. Ensure here that
|
|
5221
5314
|
// we are working with a Headers object with case-insensitive keys.
|
|
5222
|
-
var reqHeaders =
|
|
5315
|
+
var reqHeaders = headers(args[1].headers);
|
|
5223
5316
|
|
|
5224
5317
|
metadata.request_content_type = reqHeaders.get('Content-Type');
|
|
5225
5318
|
|
|
@@ -5239,6 +5332,9 @@ Instrumenter.prototype.instrumentNetwork = function() {
|
|
|
5239
5332
|
if (self.trackHttpErrors()) {
|
|
5240
5333
|
metadata.stack = (new Error()).stack;
|
|
5241
5334
|
}
|
|
5335
|
+
|
|
5336
|
+
// Start our handler before returning the promise. This allows resp.clone()
|
|
5337
|
+
// to execute before other handlers touch the response.
|
|
5242
5338
|
return orig.apply(this, args).then(function (resp) {
|
|
5243
5339
|
metadata.end_time_ms = _.now();
|
|
5244
5340
|
metadata.status_code = resp.status;
|
|
@@ -5251,6 +5347,7 @@ Instrumenter.prototype.instrumentNetwork = function() {
|
|
|
5251
5347
|
if (self.autoInstrument.networkResponseBody) {
|
|
5252
5348
|
if (typeof resp.text === 'function') { // Response.text() is not implemented on some platforms
|
|
5253
5349
|
// The response must be cloned to prevent reading (and locking) the original stream.
|
|
5350
|
+
// This must be done before other handlers touch the response.
|
|
5254
5351
|
body = resp.clone().text(); //returns a Promise
|
|
5255
5352
|
}
|
|
5256
5353
|
}
|
|
@@ -5626,7 +5723,110 @@ module.exports = Instrumenter;
|
|
|
5626
5723
|
|
|
5627
5724
|
|
|
5628
5725
|
/***/ }),
|
|
5629
|
-
/*
|
|
5726
|
+
/* 32 */
|
|
5727
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
5728
|
+
|
|
5729
|
+
"use strict";
|
|
5730
|
+
|
|
5731
|
+
|
|
5732
|
+
/*
|
|
5733
|
+
* headers - Detect when fetch Headers are undefined and use a partial polyfill.
|
|
5734
|
+
*
|
|
5735
|
+
* A full polyfill is not used in order to keep package size as small as possible.
|
|
5736
|
+
* Since this is only used internally and is not added to the window object,
|
|
5737
|
+
* the full interface doesn't need to be supported.
|
|
5738
|
+
*
|
|
5739
|
+
* This implementation is modified from whatwg-fetch:
|
|
5740
|
+
* https://github.com/github/fetch
|
|
5741
|
+
*/
|
|
5742
|
+
function headers(headers) {
|
|
5743
|
+
if (typeof Headers === 'undefined') {
|
|
5744
|
+
return new FetchHeaders(headers);
|
|
5745
|
+
}
|
|
5746
|
+
|
|
5747
|
+
return new Headers(headers);
|
|
5748
|
+
}
|
|
5749
|
+
|
|
5750
|
+
function normalizeName(name) {
|
|
5751
|
+
if (typeof name !== 'string') {
|
|
5752
|
+
name = String(name)
|
|
5753
|
+
}
|
|
5754
|
+
return name.toLowerCase()
|
|
5755
|
+
}
|
|
5756
|
+
|
|
5757
|
+
function normalizeValue(value) {
|
|
5758
|
+
if (typeof value !== 'string') {
|
|
5759
|
+
value = String(value)
|
|
5760
|
+
}
|
|
5761
|
+
return value
|
|
5762
|
+
}
|
|
5763
|
+
|
|
5764
|
+
function iteratorFor(items) {
|
|
5765
|
+
var iterator = {
|
|
5766
|
+
next: function() {
|
|
5767
|
+
var value = items.shift()
|
|
5768
|
+
return {done: value === undefined, value: value}
|
|
5769
|
+
}
|
|
5770
|
+
}
|
|
5771
|
+
|
|
5772
|
+
return iterator
|
|
5773
|
+
}
|
|
5774
|
+
|
|
5775
|
+
function FetchHeaders(headers) {
|
|
5776
|
+
this.map = {}
|
|
5777
|
+
|
|
5778
|
+
if (headers instanceof FetchHeaders) {
|
|
5779
|
+
headers.forEach(function(value, name) {
|
|
5780
|
+
this.append(name, value)
|
|
5781
|
+
}, this)
|
|
5782
|
+
} else if (Array.isArray(headers)) {
|
|
5783
|
+
headers.forEach(function(header) {
|
|
5784
|
+
this.append(header[0], header[1])
|
|
5785
|
+
}, this)
|
|
5786
|
+
} else if (headers) {
|
|
5787
|
+
Object.getOwnPropertyNames(headers).forEach(function(name) {
|
|
5788
|
+
this.append(name, headers[name])
|
|
5789
|
+
}, this)
|
|
5790
|
+
}
|
|
5791
|
+
}
|
|
5792
|
+
|
|
5793
|
+
FetchHeaders.prototype.append = function(name, value) {
|
|
5794
|
+
name = normalizeName(name)
|
|
5795
|
+
value = normalizeValue(value)
|
|
5796
|
+
var oldValue = this.map[name]
|
|
5797
|
+
this.map[name] = oldValue ? oldValue + ', ' + value : value
|
|
5798
|
+
}
|
|
5799
|
+
|
|
5800
|
+
FetchHeaders.prototype.get = function(name) {
|
|
5801
|
+
name = normalizeName(name)
|
|
5802
|
+
return this.has(name) ? this.map[name] : null
|
|
5803
|
+
}
|
|
5804
|
+
|
|
5805
|
+
FetchHeaders.prototype.has = function(name) {
|
|
5806
|
+
return this.map.hasOwnProperty(normalizeName(name))
|
|
5807
|
+
}
|
|
5808
|
+
|
|
5809
|
+
FetchHeaders.prototype.forEach = function(callback, thisArg) {
|
|
5810
|
+
for (var name in this.map) {
|
|
5811
|
+
if (this.map.hasOwnProperty(name)) {
|
|
5812
|
+
callback.call(thisArg, this.map[name], name, this)
|
|
5813
|
+
}
|
|
5814
|
+
}
|
|
5815
|
+
}
|
|
5816
|
+
|
|
5817
|
+
FetchHeaders.prototype.entries = function() {
|
|
5818
|
+
var items = []
|
|
5819
|
+
this.forEach(function(value, name) {
|
|
5820
|
+
items.push([name, value])
|
|
5821
|
+
})
|
|
5822
|
+
return iteratorFor(items)
|
|
5823
|
+
}
|
|
5824
|
+
|
|
5825
|
+
module.exports = headers;
|
|
5826
|
+
|
|
5827
|
+
|
|
5828
|
+
/***/ }),
|
|
5829
|
+
/* 33 */
|
|
5630
5830
|
/***/ (function(module, exports, __webpack_require__) {
|
|
5631
5831
|
|
|
5632
5832
|
"use strict";
|
|
@@ -5765,19 +5965,19 @@ module.exports = {
|
|
|
5765
5965
|
|
|
5766
5966
|
|
|
5767
5967
|
/***/ }),
|
|
5768
|
-
/*
|
|
5968
|
+
/* 34 */
|
|
5769
5969
|
/***/ (function(module, exports, __webpack_require__) {
|
|
5770
5970
|
|
|
5771
5971
|
"use strict";
|
|
5772
5972
|
|
|
5773
5973
|
|
|
5774
|
-
var polyfillJSON = __webpack_require__(
|
|
5974
|
+
var polyfillJSON = __webpack_require__(35);
|
|
5775
5975
|
|
|
5776
5976
|
module.exports = polyfillJSON;
|
|
5777
5977
|
|
|
5778
5978
|
|
|
5779
5979
|
/***/ }),
|
|
5780
|
-
/*
|
|
5980
|
+
/* 35 */
|
|
5781
5981
|
/***/ (function(module, exports) {
|
|
5782
5982
|
|
|
5783
5983
|
// json3.js
|
|
@@ -6546,7 +6746,7 @@ module.exports = setupCustomJSON;
|
|
|
6546
6746
|
|
|
6547
6747
|
|
|
6548
6748
|
/***/ }),
|
|
6549
|
-
/*
|
|
6749
|
+
/* 36 */
|
|
6550
6750
|
/***/ (function(module, exports, __webpack_require__) {
|
|
6551
6751
|
|
|
6552
6752
|
"use strict";
|
|
@@ -6596,7 +6796,7 @@ module.exports = wrapGlobals;
|
|
|
6596
6796
|
|
|
6597
6797
|
|
|
6598
6798
|
/***/ }),
|
|
6599
|
-
/*
|
|
6799
|
+
/* 37 */
|
|
6600
6800
|
/***/ (function(module, exports, __webpack_require__) {
|
|
6601
6801
|
|
|
6602
6802
|
"use strict";
|