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.
@@ -1356,10 +1356,10 @@ module.exports = rollbar;
1356
1356
  var Rollbar = __webpack_require__(9);
1357
1357
  var telemeter = __webpack_require__(29);
1358
1358
  var instrumenter = __webpack_require__(30);
1359
- var polyfillJSON = __webpack_require__(32);
1360
- var wrapGlobals = __webpack_require__(34);
1359
+ var polyfillJSON = __webpack_require__(33);
1360
+ var wrapGlobals = __webpack_require__(35);
1361
1361
  var scrub = __webpack_require__(4);
1362
- var truncation = __webpack_require__(35);
1362
+ var truncation = __webpack_require__(36);
1363
1363
 
1364
1364
  Rollbar.setComponents({
1365
1365
  telemeter: telemeter,
@@ -2904,7 +2904,12 @@ function Api(options, transport, urllib, truncation, jsonBackup) {
2904
2904
  Api.prototype.postItem = function(data, callback) {
2905
2905
  var transportOptions = helpers.transportOptions(this.transportOptions, 'POST');
2906
2906
  var payload = helpers.buildPayload(this.accessToken, data, this.jsonBackup);
2907
- this.transport.post(this.accessToken, transportOptions, payload, callback);
2907
+ var self = this;
2908
+
2909
+ // ensure the network request is scheduled after the current tick.
2910
+ setTimeout(function() {
2911
+ self.transport.post(self.accessToken, transportOptions, payload, callback);
2912
+ }, 0);
2908
2913
  };
2909
2914
 
2910
2915
  /**
@@ -3589,20 +3594,25 @@ function addBaseInfo(item, options, callback) {
3589
3594
 
3590
3595
  function addRequestInfo(window) {
3591
3596
  return function(item, options, callback) {
3592
- if (!window || !window.location) {
3593
- return callback(null, item);
3597
+ var requestInfo = {};
3598
+
3599
+ if (window && window.location) {
3600
+ requestInfo.url = window.location.href;
3601
+ requestInfo.query_string = window.location.search;
3594
3602
  }
3603
+
3595
3604
  var remoteString = '$remote_ip';
3596
3605
  if (!options.captureIp) {
3597
3606
  remoteString = null;
3598
3607
  } else if (options.captureIp !== true) {
3599
3608
  remoteString += '_anonymize';
3600
3609
  }
3601
- _.set(item, 'data.request', {
3602
- url: window.location.href,
3603
- query_string: window.location.search,
3604
- user_ip: remoteString
3605
- });
3610
+ if (remoteString) requestInfo.user_ip = remoteString;
3611
+
3612
+ if (Object.keys(requestInfo).length > 0) {
3613
+ _.set(item, 'data.request', requestInfo);
3614
+ }
3615
+
3606
3616
  callback(null, item);
3607
3617
  };
3608
3618
  }
@@ -4586,7 +4596,7 @@ module.exports = {
4586
4596
 
4587
4597
 
4588
4598
  module.exports = {
4589
- version: '2.25.0',
4599
+ version: '2.25.2',
4590
4600
  endpoint: 'api.rollbar.com/api/1/item/',
4591
4601
  logLevel: 'debug',
4592
4602
  reportLevel: 'debug',
@@ -4858,9 +4868,10 @@ module.exports = Telemeter;
4858
4868
 
4859
4869
 
4860
4870
  var _ = __webpack_require__(0);
4871
+ var headers = __webpack_require__(31);
4861
4872
  var scrub = __webpack_require__(4);
4862
4873
  var urlparser = __webpack_require__(2);
4863
- var domUtil = __webpack_require__(31);
4874
+ var domUtil = __webpack_require__(32);
4864
4875
 
4865
4876
  var defaults = {
4866
4877
  network: true,
@@ -5221,7 +5232,7 @@ Instrumenter.prototype.instrumentNetwork = function() {
5221
5232
  if (args[1] && args[1].headers) {
5222
5233
  // Argument may be a Headers object, or plain object. Ensure here that
5223
5234
  // we are working with a Headers object with case-insensitive keys.
5224
- var reqHeaders = new Headers(args[1].headers);
5235
+ var reqHeaders = headers(args[1].headers);
5225
5236
 
5226
5237
  metadata.request_content_type = reqHeaders.get('Content-Type');
5227
5238
 
@@ -5634,6 +5645,109 @@ module.exports = Instrumenter;
5634
5645
  "use strict";
5635
5646
 
5636
5647
 
5648
+ /*
5649
+ * headers - Detect when fetch Headers are undefined and use a partial polyfill.
5650
+ *
5651
+ * A full polyfill is not used in order to keep package size as small as possible.
5652
+ * Since this is only used internally and is not added to the window object,
5653
+ * the full interface doesn't need to be supported.
5654
+ *
5655
+ * This implementation is modified from whatwg-fetch:
5656
+ * https://github.com/github/fetch
5657
+ */
5658
+ function headers(headers) {
5659
+ if (typeof Headers === 'undefined') {
5660
+ return new FetchHeaders(headers);
5661
+ }
5662
+
5663
+ return new Headers(headers);
5664
+ }
5665
+
5666
+ function normalizeName(name) {
5667
+ if (typeof name !== 'string') {
5668
+ name = String(name)
5669
+ }
5670
+ return name.toLowerCase()
5671
+ }
5672
+
5673
+ function normalizeValue(value) {
5674
+ if (typeof value !== 'string') {
5675
+ value = String(value)
5676
+ }
5677
+ return value
5678
+ }
5679
+
5680
+ function iteratorFor(items) {
5681
+ var iterator = {
5682
+ next: function() {
5683
+ var value = items.shift()
5684
+ return {done: value === undefined, value: value}
5685
+ }
5686
+ }
5687
+
5688
+ return iterator
5689
+ }
5690
+
5691
+ function FetchHeaders(headers) {
5692
+ this.map = {}
5693
+
5694
+ if (headers instanceof FetchHeaders) {
5695
+ headers.forEach(function(value, name) {
5696
+ this.append(name, value)
5697
+ }, this)
5698
+ } else if (Array.isArray(headers)) {
5699
+ headers.forEach(function(header) {
5700
+ this.append(header[0], header[1])
5701
+ }, this)
5702
+ } else if (headers) {
5703
+ Object.getOwnPropertyNames(headers).forEach(function(name) {
5704
+ this.append(name, headers[name])
5705
+ }, this)
5706
+ }
5707
+ }
5708
+
5709
+ FetchHeaders.prototype.append = function(name, value) {
5710
+ name = normalizeName(name)
5711
+ value = normalizeValue(value)
5712
+ var oldValue = this.map[name]
5713
+ this.map[name] = oldValue ? oldValue + ', ' + value : value
5714
+ }
5715
+
5716
+ FetchHeaders.prototype.get = function(name) {
5717
+ name = normalizeName(name)
5718
+ return this.has(name) ? this.map[name] : null
5719
+ }
5720
+
5721
+ FetchHeaders.prototype.has = function(name) {
5722
+ return this.map.hasOwnProperty(normalizeName(name))
5723
+ }
5724
+
5725
+ FetchHeaders.prototype.forEach = function(callback, thisArg) {
5726
+ for (var name in this.map) {
5727
+ if (this.map.hasOwnProperty(name)) {
5728
+ callback.call(thisArg, this.map[name], name, this)
5729
+ }
5730
+ }
5731
+ }
5732
+
5733
+ FetchHeaders.prototype.entries = function() {
5734
+ var items = []
5735
+ this.forEach(function(value, name) {
5736
+ items.push([name, value])
5737
+ })
5738
+ return iteratorFor(items)
5739
+ }
5740
+
5741
+ module.exports = headers;
5742
+
5743
+
5744
+ /***/ }),
5745
+ /* 32 */
5746
+ /***/ (function(module, exports, __webpack_require__) {
5747
+
5748
+ "use strict";
5749
+
5750
+
5637
5751
  function getElementType(e) {
5638
5752
  return (e.getAttribute('type') || '').toLowerCase();
5639
5753
  }
@@ -5767,19 +5881,19 @@ module.exports = {
5767
5881
 
5768
5882
 
5769
5883
  /***/ }),
5770
- /* 32 */
5884
+ /* 33 */
5771
5885
  /***/ (function(module, exports, __webpack_require__) {
5772
5886
 
5773
5887
  "use strict";
5774
5888
 
5775
5889
 
5776
- var polyfillJSON = __webpack_require__(33);
5890
+ var polyfillJSON = __webpack_require__(34);
5777
5891
 
5778
5892
  module.exports = polyfillJSON;
5779
5893
 
5780
5894
 
5781
5895
  /***/ }),
5782
- /* 33 */
5896
+ /* 34 */
5783
5897
  /***/ (function(module, exports) {
5784
5898
 
5785
5899
  // json3.js
@@ -6548,7 +6662,7 @@ module.exports = setupCustomJSON;
6548
6662
 
6549
6663
 
6550
6664
  /***/ }),
6551
- /* 34 */
6665
+ /* 35 */
6552
6666
  /***/ (function(module, exports, __webpack_require__) {
6553
6667
 
6554
6668
  "use strict";
@@ -6598,7 +6712,7 @@ module.exports = wrapGlobals;
6598
6712
 
6599
6713
 
6600
6714
  /***/ }),
6601
- /* 35 */
6715
+ /* 36 */
6602
6716
  /***/ (function(module, exports, __webpack_require__) {
6603
6717
 
6604
6718
  "use strict";