rollbar 2.25.0 → 2.25.2

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.
@@ -1351,10 +1351,10 @@ module.exports = rollbar;
1351
1351
  var Rollbar = __webpack_require__(9);
1352
1352
  var telemeter = __webpack_require__(29);
1353
1353
  var instrumenter = __webpack_require__(30);
1354
- var polyfillJSON = __webpack_require__(32);
1355
- var wrapGlobals = __webpack_require__(34);
1354
+ var polyfillJSON = __webpack_require__(33);
1355
+ var wrapGlobals = __webpack_require__(35);
1356
1356
  var scrub = __webpack_require__(4);
1357
- var truncation = __webpack_require__(35);
1357
+ var truncation = __webpack_require__(36);
1358
1358
 
1359
1359
  Rollbar.setComponents({
1360
1360
  telemeter: telemeter,
@@ -2899,7 +2899,12 @@ function Api(options, transport, urllib, truncation, jsonBackup) {
2899
2899
  Api.prototype.postItem = function(data, callback) {
2900
2900
  var transportOptions = helpers.transportOptions(this.transportOptions, 'POST');
2901
2901
  var payload = helpers.buildPayload(this.accessToken, data, this.jsonBackup);
2902
- this.transport.post(this.accessToken, transportOptions, payload, callback);
2902
+ var self = this;
2903
+
2904
+ // ensure the network request is scheduled after the current tick.
2905
+ setTimeout(function() {
2906
+ self.transport.post(self.accessToken, transportOptions, payload, callback);
2907
+ }, 0);
2903
2908
  };
2904
2909
 
2905
2910
  /**
@@ -3584,20 +3589,25 @@ function addBaseInfo(item, options, callback) {
3584
3589
 
3585
3590
  function addRequestInfo(window) {
3586
3591
  return function(item, options, callback) {
3587
- if (!window || !window.location) {
3588
- return callback(null, item);
3592
+ var requestInfo = {};
3593
+
3594
+ if (window && window.location) {
3595
+ requestInfo.url = window.location.href;
3596
+ requestInfo.query_string = window.location.search;
3589
3597
  }
3598
+
3590
3599
  var remoteString = '$remote_ip';
3591
3600
  if (!options.captureIp) {
3592
3601
  remoteString = null;
3593
3602
  } else if (options.captureIp !== true) {
3594
3603
  remoteString += '_anonymize';
3595
3604
  }
3596
- _.set(item, 'data.request', {
3597
- url: window.location.href,
3598
- query_string: window.location.search,
3599
- user_ip: remoteString
3600
- });
3605
+ if (remoteString) requestInfo.user_ip = remoteString;
3606
+
3607
+ if (Object.keys(requestInfo).length > 0) {
3608
+ _.set(item, 'data.request', requestInfo);
3609
+ }
3610
+
3601
3611
  callback(null, item);
3602
3612
  };
3603
3613
  }
@@ -4581,7 +4591,7 @@ module.exports = {
4581
4591
 
4582
4592
 
4583
4593
  module.exports = {
4584
- version: '2.25.0',
4594
+ version: '2.25.2',
4585
4595
  endpoint: 'api.rollbar.com/api/1/item/',
4586
4596
  logLevel: 'debug',
4587
4597
  reportLevel: 'debug',
@@ -4853,9 +4863,10 @@ module.exports = Telemeter;
4853
4863
 
4854
4864
 
4855
4865
  var _ = __webpack_require__(0);
4866
+ var headers = __webpack_require__(31);
4856
4867
  var scrub = __webpack_require__(4);
4857
4868
  var urlparser = __webpack_require__(2);
4858
- var domUtil = __webpack_require__(31);
4869
+ var domUtil = __webpack_require__(32);
4859
4870
 
4860
4871
  var defaults = {
4861
4872
  network: true,
@@ -5216,7 +5227,7 @@ Instrumenter.prototype.instrumentNetwork = function() {
5216
5227
  if (args[1] && args[1].headers) {
5217
5228
  // Argument may be a Headers object, or plain object. Ensure here that
5218
5229
  // we are working with a Headers object with case-insensitive keys.
5219
- var reqHeaders = new Headers(args[1].headers);
5230
+ var reqHeaders = headers(args[1].headers);
5220
5231
 
5221
5232
  metadata.request_content_type = reqHeaders.get('Content-Type');
5222
5233
 
@@ -5629,6 +5640,109 @@ module.exports = Instrumenter;
5629
5640
  "use strict";
5630
5641
 
5631
5642
 
5643
+ /*
5644
+ * headers - Detect when fetch Headers are undefined and use a partial polyfill.
5645
+ *
5646
+ * A full polyfill is not used in order to keep package size as small as possible.
5647
+ * Since this is only used internally and is not added to the window object,
5648
+ * the full interface doesn't need to be supported.
5649
+ *
5650
+ * This implementation is modified from whatwg-fetch:
5651
+ * https://github.com/github/fetch
5652
+ */
5653
+ function headers(headers) {
5654
+ if (typeof Headers === 'undefined') {
5655
+ return new FetchHeaders(headers);
5656
+ }
5657
+
5658
+ return new Headers(headers);
5659
+ }
5660
+
5661
+ function normalizeName(name) {
5662
+ if (typeof name !== 'string') {
5663
+ name = String(name)
5664
+ }
5665
+ return name.toLowerCase()
5666
+ }
5667
+
5668
+ function normalizeValue(value) {
5669
+ if (typeof value !== 'string') {
5670
+ value = String(value)
5671
+ }
5672
+ return value
5673
+ }
5674
+
5675
+ function iteratorFor(items) {
5676
+ var iterator = {
5677
+ next: function() {
5678
+ var value = items.shift()
5679
+ return {done: value === undefined, value: value}
5680
+ }
5681
+ }
5682
+
5683
+ return iterator
5684
+ }
5685
+
5686
+ function FetchHeaders(headers) {
5687
+ this.map = {}
5688
+
5689
+ if (headers instanceof FetchHeaders) {
5690
+ headers.forEach(function(value, name) {
5691
+ this.append(name, value)
5692
+ }, this)
5693
+ } else if (Array.isArray(headers)) {
5694
+ headers.forEach(function(header) {
5695
+ this.append(header[0], header[1])
5696
+ }, this)
5697
+ } else if (headers) {
5698
+ Object.getOwnPropertyNames(headers).forEach(function(name) {
5699
+ this.append(name, headers[name])
5700
+ }, this)
5701
+ }
5702
+ }
5703
+
5704
+ FetchHeaders.prototype.append = function(name, value) {
5705
+ name = normalizeName(name)
5706
+ value = normalizeValue(value)
5707
+ var oldValue = this.map[name]
5708
+ this.map[name] = oldValue ? oldValue + ', ' + value : value
5709
+ }
5710
+
5711
+ FetchHeaders.prototype.get = function(name) {
5712
+ name = normalizeName(name)
5713
+ return this.has(name) ? this.map[name] : null
5714
+ }
5715
+
5716
+ FetchHeaders.prototype.has = function(name) {
5717
+ return this.map.hasOwnProperty(normalizeName(name))
5718
+ }
5719
+
5720
+ FetchHeaders.prototype.forEach = function(callback, thisArg) {
5721
+ for (var name in this.map) {
5722
+ if (this.map.hasOwnProperty(name)) {
5723
+ callback.call(thisArg, this.map[name], name, this)
5724
+ }
5725
+ }
5726
+ }
5727
+
5728
+ FetchHeaders.prototype.entries = function() {
5729
+ var items = []
5730
+ this.forEach(function(value, name) {
5731
+ items.push([name, value])
5732
+ })
5733
+ return iteratorFor(items)
5734
+ }
5735
+
5736
+ module.exports = headers;
5737
+
5738
+
5739
+ /***/ }),
5740
+ /* 32 */
5741
+ /***/ (function(module, exports, __webpack_require__) {
5742
+
5743
+ "use strict";
5744
+
5745
+
5632
5746
  function getElementType(e) {
5633
5747
  return (e.getAttribute('type') || '').toLowerCase();
5634
5748
  }
@@ -5762,19 +5876,19 @@ module.exports = {
5762
5876
 
5763
5877
 
5764
5878
  /***/ }),
5765
- /* 32 */
5879
+ /* 33 */
5766
5880
  /***/ (function(module, exports, __webpack_require__) {
5767
5881
 
5768
5882
  "use strict";
5769
5883
 
5770
5884
 
5771
- var polyfillJSON = __webpack_require__(33);
5885
+ var polyfillJSON = __webpack_require__(34);
5772
5886
 
5773
5887
  module.exports = polyfillJSON;
5774
5888
 
5775
5889
 
5776
5890
  /***/ }),
5777
- /* 33 */
5891
+ /* 34 */
5778
5892
  /***/ (function(module, exports) {
5779
5893
 
5780
5894
  // json3.js
@@ -6543,7 +6657,7 @@ module.exports = setupCustomJSON;
6543
6657
 
6544
6658
 
6545
6659
  /***/ }),
6546
- /* 34 */
6660
+ /* 35 */
6547
6661
  /***/ (function(module, exports, __webpack_require__) {
6548
6662
 
6549
6663
  "use strict";
@@ -6593,7 +6707,7 @@ module.exports = wrapGlobals;
6593
6707
 
6594
6708
 
6595
6709
  /***/ }),
6596
- /* 35 */
6710
+ /* 36 */
6597
6711
  /***/ (function(module, exports, __webpack_require__) {
6598
6712
 
6599
6713
  "use strict";