rollbar 2.26.2 → 2.26.4

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.
Files changed (117) hide show
  1. package/.github/workflows/ci.yml +32 -10
  2. package/.lgtm.yml +7 -7
  3. package/.prettierignore +18 -0
  4. package/.vscode/settings.json +39 -0
  5. package/CHANGELOG.md +121 -35
  6. package/Gruntfile.js +51 -71
  7. package/README.md +2 -4
  8. package/bower.json +1 -3
  9. package/defaults.js +17 -5
  10. package/dist/plugins/jquery.min.js +1 -1
  11. package/dist/rollbar.js +5699 -5052
  12. package/dist/rollbar.js.map +1 -1
  13. package/dist/rollbar.min.js +1 -1
  14. package/dist/rollbar.min.js.map +1 -1
  15. package/dist/rollbar.named-amd.js +5704 -5062
  16. package/dist/rollbar.named-amd.js.map +1 -1
  17. package/dist/rollbar.named-amd.min.js +1 -1
  18. package/dist/rollbar.named-amd.min.js.map +1 -1
  19. package/dist/rollbar.noconflict.umd.js +5693 -5052
  20. package/dist/rollbar.noconflict.umd.js.map +1 -1
  21. package/dist/rollbar.noconflict.umd.min.js +1 -1
  22. package/dist/rollbar.noconflict.umd.min.js.map +1 -1
  23. package/dist/rollbar.snippet.js +1 -1
  24. package/dist/rollbar.umd.js +5704 -5063
  25. package/dist/rollbar.umd.js.map +1 -1
  26. package/dist/rollbar.umd.min.js +1 -1
  27. package/dist/rollbar.umd.min.js.map +1 -1
  28. package/docs/extension-exceptions.md +35 -30
  29. package/docs/migration_v0_to_v1.md +41 -38
  30. package/index.d.ts +270 -231
  31. package/karma.conf.js +16 -34
  32. package/package.json +21 -17
  33. package/prettier.config.js +7 -0
  34. package/src/api.js +21 -10
  35. package/src/apiUtility.js +12 -8
  36. package/src/browser/core.js +103 -65
  37. package/src/browser/defaults/scrubFields.js +3 -3
  38. package/src/browser/detection.js +7 -8
  39. package/src/browser/domUtility.js +18 -8
  40. package/src/browser/globalSetup.js +12 -6
  41. package/src/browser/logger.js +1 -1
  42. package/src/browser/plugins/jquery.js +35 -35
  43. package/src/browser/predicates.js +1 -1
  44. package/src/browser/rollbar.js +1 -1
  45. package/src/browser/rollbarWrapper.js +8 -5
  46. package/src/browser/shim.js +43 -19
  47. package/src/browser/snippet_callback.js +6 -4
  48. package/src/browser/telemetry.js +573 -354
  49. package/src/browser/transforms.js +46 -27
  50. package/src/browser/transport/fetch.js +16 -14
  51. package/src/browser/transport/xhr.js +29 -13
  52. package/src/browser/transport.js +82 -25
  53. package/src/browser/url.js +16 -8
  54. package/src/browser/wrapGlobals.js +27 -8
  55. package/src/defaults.js +3 -3
  56. package/src/errorParser.js +14 -11
  57. package/src/merge.js +32 -23
  58. package/src/notifier.js +16 -13
  59. package/src/predicates.js +43 -23
  60. package/src/queue.js +71 -39
  61. package/src/rateLimiter.js +59 -18
  62. package/src/react-native/logger.js +1 -1
  63. package/src/react-native/rollbar.js +59 -55
  64. package/src/react-native/transforms.js +13 -9
  65. package/src/react-native/transport.js +44 -34
  66. package/src/rollbar.js +22 -13
  67. package/src/scrub.js +0 -1
  68. package/src/server/locals.js +69 -39
  69. package/src/server/logger.js +4 -4
  70. package/src/server/parser.js +72 -47
  71. package/src/server/rollbar.js +133 -55
  72. package/src/server/sourceMap/stackTrace.js +33 -18
  73. package/src/server/telemetry/urlHelpers.js +9 -11
  74. package/src/server/telemetry.js +68 -45
  75. package/src/server/transforms.js +37 -21
  76. package/src/server/transport.js +62 -32
  77. package/src/telemetry.js +92 -28
  78. package/src/transforms.js +33 -21
  79. package/src/truncation.js +8 -5
  80. package/src/utility/headers.js +43 -43
  81. package/src/utility/replace.js +9 -0
  82. package/src/utility/traverse.js +1 -1
  83. package/src/utility.js +89 -52
  84. package/test/api.test.js +31 -29
  85. package/test/apiUtility.test.js +43 -44
  86. package/test/browser.core.test.js +141 -131
  87. package/test/browser.domUtility.test.js +52 -35
  88. package/test/browser.predicates.test.js +13 -13
  89. package/test/browser.rollbar.test.js +597 -503
  90. package/test/browser.telemetry.test.js +76 -0
  91. package/test/browser.transforms.test.js +146 -128
  92. package/test/browser.transport.test.js +54 -46
  93. package/test/browser.url.test.js +12 -11
  94. package/test/fixtures/locals.fixtures.js +245 -126
  95. package/test/notifier.test.js +90 -78
  96. package/test/predicates.test.js +260 -214
  97. package/test/queue.test.js +230 -214
  98. package/test/rateLimiter.test.js +50 -42
  99. package/test/react-native.rollbar.test.js +149 -115
  100. package/test/react-native.transforms.test.js +21 -23
  101. package/test/react-native.transport.test.js +23 -11
  102. package/test/server.lambda.test.js +70 -53
  103. package/test/server.locals.test.js +437 -210
  104. package/test/server.parser.test.js +32 -26
  105. package/test/server.predicates.test.js +45 -43
  106. package/test/server.rollbar.test.js +311 -259
  107. package/test/server.telemetry.test.js +208 -83
  108. package/test/server.transforms.test.js +455 -361
  109. package/test/server.transport.test.js +144 -76
  110. package/test/telemetry.test.js +46 -37
  111. package/test/transforms.test.js +68 -66
  112. package/test/truncation.test.js +55 -53
  113. package/test/utility.test.js +266 -222
  114. package/webpack.config.js +46 -43
  115. package/.gitmodules +0 -3
  116. package/browserstack.browsers.js +0 -153
  117. package/browserstack.browsers.json +0 -4384
@@ -3,7 +3,7 @@ var errorParser = require('../errorParser');
3
3
  var logger = require('./logger');
4
4
 
5
5
  function handleDomException(item, options, callback) {
6
- if(item.err && errorParser.Stack(item.err).name === 'DOMException') {
6
+ if (item.err && errorParser.Stack(item.err).name === 'DOMException') {
7
7
  var originalError = new Error();
8
8
  originalError.name = item.err.name;
9
9
  originalError.message = item.err.message;
@@ -18,7 +18,9 @@ function handleItemWithError(item, options, callback) {
18
18
  item.data = item.data || {};
19
19
  if (item.err) {
20
20
  try {
21
- item.stackInfo = item.err._savedStackTrace || errorParser.parse(item.err, item.skipFrames);
21
+ item.stackInfo =
22
+ item.err._savedStackTrace ||
23
+ errorParser.parse(item.err, item.skipFrames);
22
24
 
23
25
  if (options.addErrorContext) {
24
26
  addErrorContext(item);
@@ -26,7 +28,11 @@ function handleItemWithError(item, options, callback) {
26
28
  } catch (e) {
27
29
  logger.error('Error while parsing the error object.', e);
28
30
  try {
29
- item.message = item.err.message || item.err.description || item.message || String(item.err);
31
+ item.message =
32
+ item.err.message ||
33
+ item.err.description ||
34
+ item.message ||
35
+ String(item.err);
30
36
  } catch (e2) {
31
37
  item.message = String(item.err) || String(e2);
32
38
  }
@@ -58,7 +64,8 @@ function ensureItemHasSomethingToSay(item, options, callback) {
58
64
  }
59
65
 
60
66
  function addBaseInfo(item, options, callback) {
61
- var environment = (options.payload && options.payload.environment) || options.environment;
67
+ var environment =
68
+ (options.payload && options.payload.environment) || options.environment;
62
69
  item.data = _.merge(item.data, {
63
70
  environment: environment,
64
71
  level: item.level,
@@ -70,15 +77,15 @@ function addBaseInfo(item, options, callback) {
70
77
  uuid: item.uuid,
71
78
  notifier: {
72
79
  name: 'rollbar-browser-js',
73
- version: options.version
80
+ version: options.version,
74
81
  },
75
- custom: item.custom
82
+ custom: item.custom,
76
83
  });
77
84
  callback(null, item);
78
85
  }
79
86
 
80
87
  function addRequestInfo(window) {
81
- return function(item, options, callback) {
88
+ return function (item, options, callback) {
82
89
  var requestInfo = {};
83
90
 
84
91
  if (window && window.location) {
@@ -103,7 +110,7 @@ function addRequestInfo(window) {
103
110
  }
104
111
 
105
112
  function addClientInfo(window) {
106
- return function(item, options, callback) {
113
+ return function (item, options, callback) {
107
114
  if (!window) {
108
115
  return callback(null, item);
109
116
  }
@@ -118,25 +125,25 @@ function addClientInfo(window) {
118
125
  cookie_enabled: nav.cookieEnabled,
119
126
  screen: {
120
127
  width: scr.width,
121
- height: scr.height
122
- }
123
- }
128
+ height: scr.height,
129
+ },
130
+ },
124
131
  });
125
132
  callback(null, item);
126
133
  };
127
134
  }
128
135
 
129
136
  function addPluginInfo(window) {
130
- return function(item, options, callback) {
137
+ return function (item, options, callback) {
131
138
  if (!window || !window.navigator) {
132
139
  return callback(null, item);
133
140
  }
134
141
  var plugins = [];
135
142
  var navPlugins = window.navigator.plugins || [];
136
143
  var cur;
137
- for (var i=0, l=navPlugins.length; i < l; ++i) {
144
+ for (var i = 0, l = navPlugins.length; i < l; ++i) {
138
145
  cur = navPlugins[i];
139
- plugins.push({name: cur.name, description: cur.description});
146
+ plugins.push({ name: cur.name, description: cur.description });
140
147
  }
141
148
  _.set(item, 'data.client.javascript.plugins', plugins);
142
149
  callback(null, item);
@@ -163,21 +170,26 @@ function addBodyMessage(item, options, callback) {
163
170
  message = 'Item sent with null or missing arguments.';
164
171
  }
165
172
  var result = {
166
- body: message
173
+ body: message,
167
174
  };
168
175
 
169
176
  if (custom) {
170
177
  result.extra = _.merge(custom);
171
178
  }
172
179
 
173
- _.set(item, 'data.body', {message: result});
180
+ _.set(item, 'data.body', { message: result });
174
181
  callback(null, item);
175
182
  }
176
183
 
177
184
  function stackFromItem(item) {
178
185
  // Transform a TraceKit stackInfo object into a Rollbar trace
179
186
  var stack = item.stackInfo.stack;
180
- if (stack && stack.length === 0 && item._unhandledStackInfo && item._unhandledStackInfo.stack) {
187
+ if (
188
+ stack &&
189
+ stack.length === 0 &&
190
+ item._unhandledStackInfo &&
191
+ item._unhandledStackInfo.stack
192
+ ) {
181
193
  stack = item._unhandledStackInfo.stack;
182
194
  }
183
195
  return stack;
@@ -193,7 +205,7 @@ function addBodyTraceChain(item, options, callback) {
193
205
  traces.push(trace);
194
206
  }
195
207
 
196
- _.set(item, 'data.body', {trace_chain: traces});
208
+ _.set(item, 'data.body', { trace_chain: traces });
197
209
  callback(null, item);
198
210
  }
199
211
 
@@ -202,7 +214,7 @@ function addBodyTrace(item, options, callback) {
202
214
 
203
215
  if (stack) {
204
216
  var trace = buildTrace(item, item.stackInfo, options);
205
- _.set(item, 'data.body', {trace: trace});
217
+ _.set(item, 'data.body', { trace: trace });
206
218
  callback(null, item);
207
219
  } else {
208
220
  var stackInfo = item.stackInfo;
@@ -225,9 +237,9 @@ function buildTrace(item, stackInfo, options) {
225
237
  var message = guess[1];
226
238
  var trace = {
227
239
  exception: {
228
- 'class': className,
229
- message: message
230
- }
240
+ class: className,
241
+ message: message,
242
+ },
231
243
  };
232
244
 
233
245
  if (description) {
@@ -253,13 +265,20 @@ function buildTrace(item, stackInfo, options) {
253
265
  frame = {
254
266
  filename: stackFrame.url ? _.sanitizeUrl(stackFrame.url) : '(unknown)',
255
267
  lineno: stackFrame.line || null,
256
- method: (!stackFrame.func || stackFrame.func === '?') ? '[anonymous]' : stackFrame.func,
257
- colno: stackFrame.column
268
+ method:
269
+ !stackFrame.func || stackFrame.func === '?'
270
+ ? '[anonymous]'
271
+ : stackFrame.func,
272
+ colno: stackFrame.column,
258
273
  };
259
274
  if (options.sendFrameUrl) {
260
275
  frame.url = stackFrame.url;
261
276
  }
262
- if (frame.method && frame.method.endsWith && frame.method.endsWith('_rollbar_wrapped')) {
277
+ if (
278
+ frame.method &&
279
+ frame.method.endsWith &&
280
+ frame.method.endsWith('_rollbar_wrapped')
281
+ ) {
263
282
  continue;
264
283
  }
265
284
 
@@ -322,7 +341,7 @@ function addScrubber(scrubFn) {
322
341
  item.data = scrubFn(item.data, scrubFields, scrubPaths);
323
342
  }
324
343
  callback(null, item);
325
- }
344
+ };
326
345
  }
327
346
 
328
347
  module.exports = {
@@ -334,5 +353,5 @@ module.exports = {
334
353
  addClientInfo: addClientInfo,
335
354
  addPluginInfo: addPluginInfo,
336
355
  addBody: addBody,
337
- addScrubber: addScrubber
356
+ addScrubber: addScrubber,
338
357
  };
@@ -5,9 +5,11 @@ function makeFetchRequest(accessToken, url, method, data, callback, timeout) {
5
5
  var controller;
6
6
  var timeoutId;
7
7
 
8
- if(_.isFiniteNumber(timeout)) {
8
+ if (_.isFiniteNumber(timeout)) {
9
9
  controller = new AbortController();
10
- timeoutId = setTimeout(function () {controller.abort()}, timeout);
10
+ timeoutId = setTimeout(function () {
11
+ controller.abort();
12
+ }, timeout);
11
13
  }
12
14
 
13
15
  fetch(url, {
@@ -15,21 +17,21 @@ function makeFetchRequest(accessToken, url, method, data, callback, timeout) {
15
17
  headers: {
16
18
  'Content-Type': 'application/json',
17
19
  'X-Rollbar-Access-Token': accessToken,
18
- signal: controller && controller.signal
20
+ signal: controller && controller.signal,
19
21
  },
20
22
  body: data,
21
23
  })
22
- .then(function (response) {
23
- if (timeoutId) clearTimeout(timeoutId);
24
- return response.json();
25
- })
26
- .then(function (data) {
27
- callback(null, data);
28
- })
29
- .catch(function (error) {
30
- logger.error(error.message);
31
- callback(error);
32
- });
24
+ .then(function (response) {
25
+ if (timeoutId) clearTimeout(timeoutId);
26
+ return response.json();
27
+ })
28
+ .then(function (data) {
29
+ callback(null, data);
30
+ })
31
+ .catch(function (error) {
32
+ logger.error(error.message);
33
+ callback(error);
34
+ });
33
35
  }
34
36
 
35
37
  module.exports = makeFetchRequest;
@@ -3,7 +3,15 @@
3
3
  var _ = require('../../utility');
4
4
  var logger = require('../logger');
5
5
 
6
- function makeXhrRequest(accessToken, url, method, data, callback, requestFactory, timeout) {
6
+ function makeXhrRequest(
7
+ accessToken,
8
+ url,
9
+ method,
10
+ data,
11
+ callback,
12
+ requestFactory,
13
+ timeout,
14
+ ) {
7
15
  var request;
8
16
  if (requestFactory) {
9
17
  request = requestFactory();
@@ -16,7 +24,7 @@ function makeXhrRequest(accessToken, url, method, data, callback, requestFactory
16
24
  }
17
25
  try {
18
26
  try {
19
- var onreadystatechange = function() {
27
+ var onreadystatechange = function () {
20
28
  try {
21
29
  if (onreadystatechange && request.readyState === 4) {
22
30
  onreadystatechange = undefined;
@@ -28,7 +36,8 @@ function makeXhrRequest(accessToken, url, method, data, callback, requestFactory
28
36
  } else if (_isNormalFailure(request)) {
29
37
  if (request.status === 403) {
30
38
  // likely caused by using a server access token
31
- var message = parseResponse.value && parseResponse.value.message;
39
+ var message =
40
+ parseResponse.value && parseResponse.value.message;
32
41
  logger.error(message);
33
42
  }
34
43
  // return valid http status codes
@@ -37,7 +46,8 @@ function makeXhrRequest(accessToken, url, method, data, callback, requestFactory
37
46
  // IE will return a status 12000+ on some sort of connection failure,
38
47
  // so we return a blank error
39
48
  // http://msdn.microsoft.com/en-us/library/aa383770%28VS.85%29.aspx
40
- var msg = 'XHR response had no status code (likely connection failure)';
49
+ var msg =
50
+ 'XHR response had no status code (likely connection failure)';
41
51
  callback(_newRetriableError(msg));
42
52
  }
43
53
  }
@@ -61,7 +71,7 @@ function makeXhrRequest(accessToken, url, method, data, callback, requestFactory
61
71
  request.setRequestHeader('X-Rollbar-Access-Token', accessToken);
62
72
  }
63
73
 
64
- if(_.isFiniteNumber(timeout)) {
74
+ if (_.isFiniteNumber(timeout)) {
65
75
  request.timeout = timeout;
66
76
  }
67
77
 
@@ -70,31 +80,37 @@ function makeXhrRequest(accessToken, url, method, data, callback, requestFactory
70
80
  } catch (e1) {
71
81
  // Sending using the normal xmlhttprequest object didn't work, try XDomainRequest
72
82
  if (typeof XDomainRequest !== 'undefined') {
73
-
74
83
  // Assume we are in a really old browser which has a bunch of limitations:
75
84
  // http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx
76
85
 
77
86
  // Extreme paranoia: if we have XDomainRequest then we have a window, but just in case
78
87
  if (!window || !window.location) {
79
- return callback(new Error('No window available during request, unknown environment'));
88
+ return callback(
89
+ new Error(
90
+ 'No window available during request, unknown environment',
91
+ ),
92
+ );
80
93
  }
81
94
 
82
95
  // If the current page is http, try and send over http
83
- if (window.location.href.substring(0, 5) === 'http:' && url.substring(0, 5) === 'https') {
96
+ if (
97
+ window.location.href.substring(0, 5) === 'http:' &&
98
+ url.substring(0, 5) === 'https'
99
+ ) {
84
100
  url = 'http' + url.substring(5);
85
101
  }
86
102
 
87
103
  var xdomainrequest = new XDomainRequest();
88
- xdomainrequest.onprogress = function() {};
89
- xdomainrequest.ontimeout = function() {
104
+ xdomainrequest.onprogress = function () {};
105
+ xdomainrequest.ontimeout = function () {
90
106
  var msg = 'Request timed out';
91
107
  var code = 'ETIMEDOUT';
92
108
  callback(_newRetriableError(msg, code));
93
109
  };
94
- xdomainrequest.onerror = function() {
110
+ xdomainrequest.onerror = function () {
95
111
  callback(new Error('Error during request'));
96
112
  };
97
- xdomainrequest.onload = function() {
113
+ xdomainrequest.onload = function () {
98
114
  var parseResponse = _.jsonParse(xdomainrequest.responseText);
99
115
  callback(parseResponse.error, parseResponse.value);
100
116
  };
@@ -124,7 +140,7 @@ function _createXMLHTTPObject() {
124
140
  },
125
141
  function () {
126
142
  return new ActiveXObject('Microsoft.XMLHTTP');
127
- }
143
+ },
128
144
  ];
129
145
  var xmlhttp;
130
146
  var i;
@@ -24,22 +24,41 @@ function Transport(truncation) {
24
24
  this.truncation = truncation;
25
25
  }
26
26
 
27
- Transport.prototype.get = function(accessToken, options, params, callback, requestFactory) {
27
+ Transport.prototype.get = function (
28
+ accessToken,
29
+ options,
30
+ params,
31
+ callback,
32
+ requestFactory,
33
+ ) {
28
34
  if (!callback || !_.isFunction(callback)) {
29
- callback = function() {};
35
+ callback = function () {};
30
36
  }
31
37
  _.addParamsAndAccessTokenToPath(accessToken, options, params);
32
38
 
33
39
  var method = 'GET';
34
40
  var url = _.formatUrl(options);
35
41
  this._makeZoneRequest(
36
- accessToken, url, method, null, callback, requestFactory, options.timeout, options.transport
42
+ accessToken,
43
+ url,
44
+ method,
45
+ null,
46
+ callback,
47
+ requestFactory,
48
+ options.timeout,
49
+ options.transport,
37
50
  );
38
- }
39
-
40
- Transport.prototype.post = function(accessToken, options, payload, callback, requestFactory) {
51
+ };
52
+
53
+ Transport.prototype.post = function (
54
+ accessToken,
55
+ options,
56
+ payload,
57
+ callback,
58
+ requestFactory,
59
+ ) {
41
60
  if (!callback || !_.isFunction(callback)) {
42
- callback = function() {};
61
+ callback = function () {};
43
62
  }
44
63
 
45
64
  if (!payload) {
@@ -50,7 +69,7 @@ Transport.prototype.post = function(accessToken, options, payload, callback, req
50
69
  if (this.truncation) {
51
70
  stringifyResult = this.truncation.truncate(payload);
52
71
  } else {
53
- stringifyResult = _.stringify(payload)
72
+ stringifyResult = _.stringify(payload);
54
73
  }
55
74
  if (stringifyResult.error) {
56
75
  return callback(stringifyResult.error);
@@ -60,29 +79,50 @@ Transport.prototype.post = function(accessToken, options, payload, callback, req
60
79
  var method = 'POST';
61
80
  var url = _.formatUrl(options);
62
81
  this._makeZoneRequest(
63
- accessToken, url, method, writeData, callback, requestFactory, options.timeout, options.transport
82
+ accessToken,
83
+ url,
84
+ method,
85
+ writeData,
86
+ callback,
87
+ requestFactory,
88
+ options.timeout,
89
+ options.transport,
64
90
  );
65
- }
66
-
67
- Transport.prototype.postJsonPayload = function (accessToken, options, jsonPayload, callback, requestFactory) {
91
+ };
92
+
93
+ Transport.prototype.postJsonPayload = function (
94
+ accessToken,
95
+ options,
96
+ jsonPayload,
97
+ callback,
98
+ requestFactory,
99
+ ) {
68
100
  if (!callback || !_.isFunction(callback)) {
69
- callback = function() {};
101
+ callback = function () {};
70
102
  }
71
103
 
72
104
  var method = 'POST';
73
105
  var url = _.formatUrl(options);
74
106
  this._makeZoneRequest(
75
- accessToken, url, method, jsonPayload, callback, requestFactory, options.timeout, options.transport
107
+ accessToken,
108
+ url,
109
+ method,
110
+ jsonPayload,
111
+ callback,
112
+ requestFactory,
113
+ options.timeout,
114
+ options.transport,
76
115
  );
77
- }
78
-
116
+ };
79
117
 
80
118
  // Wraps _makeRequest and if Angular 2+ Zone.js is detected, changes scope
81
119
  // so Angular change detection isn't triggered on each API call.
82
120
  // This is the equivalent of runOutsideAngular().
83
121
  //
84
122
  Transport.prototype._makeZoneRequest = function () {
85
- var gWindow = ((typeof window != 'undefined') && window) || ((typeof self != 'undefined') && self);
123
+ var gWindow =
124
+ (typeof window != 'undefined' && window) ||
125
+ (typeof self != 'undefined' && self);
86
126
  var currentZone = gWindow && gWindow.Zone && gWindow.Zone.current;
87
127
  var args = Array.prototype.slice.call(arguments);
88
128
 
@@ -95,31 +135,48 @@ Transport.prototype._makeZoneRequest = function () {
95
135
  } else {
96
136
  this._makeRequest.apply(undefined, args);
97
137
  }
98
- }
138
+ };
99
139
 
100
140
  Transport.prototype._makeRequest = function (
101
- accessToken, url, method, data, callback, requestFactory, timeout, transport
141
+ accessToken,
142
+ url,
143
+ method,
144
+ data,
145
+ callback,
146
+ requestFactory,
147
+ timeout,
148
+ transport,
102
149
  ) {
103
150
  if (typeof RollbarProxy !== 'undefined') {
104
151
  return _proxyRequest(data, callback);
105
152
  }
106
153
 
107
154
  if (transport === 'fetch') {
108
- makeFetchRequest(accessToken, url, method, data, callback, timeout)
155
+ makeFetchRequest(accessToken, url, method, data, callback, timeout);
109
156
  } else {
110
- makeXhrRequest(accessToken, url, method, data, callback, requestFactory, timeout)
157
+ makeXhrRequest(
158
+ accessToken,
159
+ url,
160
+ method,
161
+ data,
162
+ callback,
163
+ requestFactory,
164
+ timeout,
165
+ );
111
166
  }
112
- }
167
+ };
113
168
 
114
169
  /* global RollbarProxy */
115
170
  function _proxyRequest(json, callback) {
116
171
  var rollbarProxy = new RollbarProxy();
117
172
  rollbarProxy.sendJsonPayload(
118
173
  json,
119
- function(_msg) { /* do nothing */ }, // eslint-disable-line no-unused-vars
120
- function(err) {
174
+ function (_msg) {
175
+ /* do nothing */
176
+ }, // eslint-disable-line no-unused-vars
177
+ function (err) {
121
178
  callback(new Error(err));
122
- }
179
+ },
123
180
  );
124
181
  }
125
182
 
@@ -1,24 +1,32 @@
1
1
  // See https://nodejs.org/docs/latest/api/url.html
2
2
  function parse(url) {
3
3
  var result = {
4
- protocol: null, auth: null, host: null, path: null,
5
- hash: null, href: url, hostname: null, port: null,
6
- pathname: null, search: null, query: null
4
+ protocol: null,
5
+ auth: null,
6
+ host: null,
7
+ path: null,
8
+ hash: null,
9
+ href: url,
10
+ hostname: null,
11
+ port: null,
12
+ pathname: null,
13
+ search: null,
14
+ query: null,
7
15
  };
8
16
 
9
17
  var i, last;
10
18
  i = url.indexOf('//');
11
19
  if (i !== -1) {
12
- result.protocol = url.substring(0,i);
13
- last = i+2;
20
+ result.protocol = url.substring(0, i);
21
+ last = i + 2;
14
22
  } else {
15
23
  last = 0;
16
24
  }
17
-
25
+
18
26
  i = url.indexOf('@', last);
19
27
  if (i !== -1) {
20
28
  result.auth = url.substring(last, i);
21
- last = i+1;
29
+ last = i + 1;
22
30
  }
23
31
 
24
32
  i = url.indexOf('/', last);
@@ -75,5 +83,5 @@ function parse(url) {
75
83
  }
76
84
 
77
85
  module.exports = {
78
- parse: parse
86
+ parse: parse,
79
87
  };
@@ -1,7 +1,12 @@
1
1
  function wrapGlobals(window, handler, shim) {
2
- if (!window) { return; }
2
+ if (!window) {
3
+ return;
4
+ }
3
5
  // Adapted from https://github.com/bugsnag/bugsnag-js
4
- var globals = 'EventTarget,Window,Node,ApplicationCache,AudioTrackList,ChannelMergerNode,CryptoOperation,EventSource,FileReader,HTMLUnknownElement,IDBDatabase,IDBRequest,IDBTransaction,KeyOperation,MediaController,MessagePort,ModalWindow,Notification,SVGElementInstance,Screen,TextTrack,TextTrackCue,TextTrackList,WebSocket,WebSocketWorker,Worker,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload'.split(',');
6
+ var globals =
7
+ 'EventTarget,Window,Node,ApplicationCache,AudioTrackList,ChannelMergerNode,CryptoOperation,EventSource,FileReader,HTMLUnknownElement,IDBDatabase,IDBRequest,IDBTransaction,KeyOperation,MediaController,MessagePort,ModalWindow,Notification,SVGElementInstance,Screen,TextTrack,TextTrackCue,TextTrackList,WebSocket,WebSocketWorker,Worker,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload'.split(
8
+ ',',
9
+ );
5
10
  var i, global;
6
11
  for (i = 0; i < globals.length; ++i) {
7
12
  global = globals[i];
@@ -13,12 +18,18 @@ function wrapGlobals(window, handler, shim) {
13
18
  }
14
19
 
15
20
  function _extendListenerPrototype(handler, prototype, shim) {
16
- if (prototype.hasOwnProperty && prototype.hasOwnProperty('addEventListener')) {
21
+ if (
22
+ prototype.hasOwnProperty &&
23
+ prototype.hasOwnProperty('addEventListener')
24
+ ) {
17
25
  var oldAddEventListener = prototype.addEventListener;
18
- while (oldAddEventListener._rollbarOldAdd && oldAddEventListener.belongsToShim) {
26
+ while (
27
+ oldAddEventListener._rollbarOldAdd &&
28
+ oldAddEventListener.belongsToShim
29
+ ) {
19
30
  oldAddEventListener = oldAddEventListener._rollbarOldAdd;
20
31
  }
21
- var addFn = function(event, callback, bubble) {
32
+ var addFn = function (event, callback, bubble) {
22
33
  oldAddEventListener.call(this, event, handler.wrap(callback), bubble);
23
34
  };
24
35
  addFn._rollbarOldAdd = oldAddEventListener;
@@ -26,11 +37,19 @@ function _extendListenerPrototype(handler, prototype, shim) {
26
37
  prototype.addEventListener = addFn;
27
38
 
28
39
  var oldRemoveEventListener = prototype.removeEventListener;
29
- while (oldRemoveEventListener._rollbarOldRemove && oldRemoveEventListener.belongsToShim) {
40
+ while (
41
+ oldRemoveEventListener._rollbarOldRemove &&
42
+ oldRemoveEventListener.belongsToShim
43
+ ) {
30
44
  oldRemoveEventListener = oldRemoveEventListener._rollbarOldRemove;
31
45
  }
32
- var removeFn = function(event, callback, bubble) {
33
- oldRemoveEventListener.call(this, event, callback && callback._rollbar_wrapped || callback, bubble);
46
+ var removeFn = function (event, callback, bubble) {
47
+ oldRemoveEventListener.call(
48
+ this,
49
+ event,
50
+ (callback && callback._rollbar_wrapped) || callback,
51
+ bubble,
52
+ );
34
53
  };
35
54
  removeFn._rollbarOldRemove = oldRemoveEventListener;
36
55
  removeFn.belongsToShim = shim;
package/src/defaults.js CHANGED
@@ -1,9 +1,9 @@
1
1
  module.exports = {
2
- version: '2.26.2',
2
+ version: '2.26.4',
3
3
  endpoint: 'api.rollbar.com/api/1/item/',
4
4
  logLevel: 'debug',
5
5
  reportLevel: 'debug',
6
6
  uncaughtErrorLevel: 'error',
7
7
  maxItems: 0,
8
- itemsPerMin: 60
9
- }
8
+ itemsPerMin: 60,
9
+ };