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
@@ -17,7 +17,7 @@ function RateLimiter(options) {
17
17
  RateLimiter.globalSettings = {
18
18
  startTime: _.now(),
19
19
  maxItems: undefined,
20
- itemsPerMinute: undefined
20
+ itemsPerMinute: undefined,
21
21
  };
22
22
 
23
23
  /*
@@ -28,7 +28,7 @@ RateLimiter.globalSettings = {
28
28
  * maxItems: the maximum items
29
29
  * itemsPerMinute: the max number of items to send in a given minute
30
30
  */
31
- RateLimiter.prototype.configureGlobal = function(options) {
31
+ RateLimiter.prototype.configureGlobal = function (options) {
32
32
  if (options.startTime !== undefined) {
33
33
  RateLimiter.globalSettings.startTime = options.startTime;
34
34
  }
@@ -55,7 +55,7 @@ RateLimiter.prototype.configureGlobal = function(options) {
55
55
  * means this item put us over the global rate limit and the payload should be sent to Rollbar in
56
56
  * place of the passed in item.
57
57
  */
58
- RateLimiter.prototype.shouldSend = function(item, now) {
58
+ RateLimiter.prototype.shouldSend = function (item, now) {
59
59
  now = now || _.now();
60
60
  var elapsedTime = now - this.startTime;
61
61
  if (elapsedTime < 0 || elapsedTime >= 60000) {
@@ -67,20 +67,39 @@ RateLimiter.prototype.shouldSend = function(item, now) {
67
67
  var globalRateLimitPerMin = RateLimiter.globalSettings.itemsPerMinute;
68
68
 
69
69
  if (checkRate(item, globalRateLimit, this.counter)) {
70
- return shouldSendValue(this.platform, this.platformOptions, globalRateLimit + ' max items reached', false);
70
+ return shouldSendValue(
71
+ this.platform,
72
+ this.platformOptions,
73
+ globalRateLimit + ' max items reached',
74
+ false,
75
+ );
71
76
  } else if (checkRate(item, globalRateLimitPerMin, this.perMinCounter)) {
72
- return shouldSendValue(this.platform, this.platformOptions, globalRateLimitPerMin + ' items per minute reached', false);
77
+ return shouldSendValue(
78
+ this.platform,
79
+ this.platformOptions,
80
+ globalRateLimitPerMin + ' items per minute reached',
81
+ false,
82
+ );
73
83
  }
74
84
  this.counter++;
75
85
  this.perMinCounter++;
76
86
 
77
87
  var shouldSend = !checkRate(item, globalRateLimit, this.counter);
78
88
  var perMinute = shouldSend;
79
- shouldSend = shouldSend && !checkRate(item, globalRateLimitPerMin, this.perMinCounter);
80
- return shouldSendValue(this.platform, this.platformOptions, null, shouldSend, globalRateLimit, globalRateLimitPerMin, perMinute);
89
+ shouldSend =
90
+ shouldSend && !checkRate(item, globalRateLimitPerMin, this.perMinCounter);
91
+ return shouldSendValue(
92
+ this.platform,
93
+ this.platformOptions,
94
+ null,
95
+ shouldSend,
96
+ globalRateLimit,
97
+ globalRateLimitPerMin,
98
+ perMinute,
99
+ );
81
100
  };
82
101
 
83
- RateLimiter.prototype.setPlatformOptions = function(platform, options) {
102
+ RateLimiter.prototype.setPlatformOptions = function (platform, options) {
84
103
  this.platform = platform;
85
104
  this.platformOptions = options;
86
105
  };
@@ -91,19 +110,40 @@ function checkRate(item, limit, counter) {
91
110
  return !item.ignoreRateLimit && limit >= 1 && counter > limit;
92
111
  }
93
112
 
94
- function shouldSendValue(platform, options, error, shouldSend, globalRateLimit, limitPerMin, perMinute) {
113
+ function shouldSendValue(
114
+ platform,
115
+ options,
116
+ error,
117
+ shouldSend,
118
+ globalRateLimit,
119
+ limitPerMin,
120
+ perMinute,
121
+ ) {
95
122
  var payload = null;
96
123
  if (error) {
97
124
  error = new Error(error);
98
125
  }
99
126
  if (!error && !shouldSend) {
100
- payload = rateLimitPayload(platform, options, globalRateLimit, limitPerMin, perMinute);
127
+ payload = rateLimitPayload(
128
+ platform,
129
+ options,
130
+ globalRateLimit,
131
+ limitPerMin,
132
+ perMinute,
133
+ );
101
134
  }
102
- return {error: error, shouldSend: shouldSend, payload: payload};
135
+ return { error: error, shouldSend: shouldSend, payload: payload };
103
136
  }
104
137
 
105
- function rateLimitPayload(platform, options, globalRateLimit, limitPerMin, perMinute) {
106
- var environment = options.environment || (options.payload && options.payload.environment);
138
+ function rateLimitPayload(
139
+ platform,
140
+ options,
141
+ globalRateLimit,
142
+ limitPerMin,
143
+ perMinute,
144
+ ) {
145
+ var environment =
146
+ options.environment || (options.payload && options.payload.environment);
107
147
  var msg;
108
148
  if (perMinute) {
109
149
  msg = 'item per minute limit reached, ignoring errors until timeout';
@@ -116,15 +156,16 @@ function rateLimitPayload(platform, options, globalRateLimit, limitPerMin, perMi
116
156
  body: msg,
117
157
  extra: {
118
158
  maxItems: globalRateLimit,
119
- itemsPerMinute: limitPerMin
120
- }
121
- }
159
+ itemsPerMinute: limitPerMin,
160
+ },
161
+ },
122
162
  },
123
163
  language: 'javascript',
124
164
  environment: environment,
125
165
  notifier: {
126
- version: (options.notifier && options.notifier.version) || options.version
127
- }
166
+ version:
167
+ (options.notifier && options.notifier.version) || options.version,
168
+ },
128
169
  };
129
170
  if (platform === 'browser') {
130
171
  item.platform = 'browser';
@@ -4,7 +4,7 @@
4
4
  var logger = {
5
5
  error: console.error.bind(console),
6
6
  info: console.info.bind(console),
7
- log: console.log.bind(console)
7
+ log: console.log.bind(console),
8
8
  };
9
9
  /* eslint-enable no-console */
10
10
 
@@ -28,15 +28,16 @@ function Rollbar(options, client) {
28
28
 
29
29
  var transport = new Transport(truncation);
30
30
  var api = new API(this.options, transport, urllib, truncation);
31
- var telemeter = new Telemeter(this.options)
32
- this.client = client || new Client(this.options, api, logger, telemeter, 'react-native');
31
+ var telemeter = new Telemeter(this.options);
32
+ this.client =
33
+ client || new Client(this.options, api, logger, telemeter, 'react-native');
33
34
  addTransformsToNotifier(this.client.notifier);
34
35
  addPredicatesToQueue(this.client.queue);
35
36
  _.setupJSON(polyfillJSON);
36
37
  }
37
38
 
38
39
  var _instance = null;
39
- Rollbar.init = function(options, client) {
40
+ Rollbar.init = function (options, client) {
40
41
  if (_instance) {
41
42
  return _instance.global(options).configure(options);
42
43
  }
@@ -52,11 +53,11 @@ function handleUninitialized(maybeCallback) {
52
53
  }
53
54
  }
54
55
 
55
- Rollbar.prototype.global = function(options) {
56
+ Rollbar.prototype.global = function (options) {
56
57
  this.client.global(options);
57
58
  return this;
58
59
  };
59
- Rollbar.global = function(options) {
60
+ Rollbar.global = function (options) {
60
61
  if (_instance) {
61
62
  return _instance.global(options);
62
63
  } else {
@@ -64,18 +65,22 @@ Rollbar.global = function(options) {
64
65
  }
65
66
  };
66
67
 
67
- Rollbar.prototype.configure = function(options, payloadData) {
68
+ Rollbar.prototype.configure = function (options, payloadData) {
68
69
  var oldOptions = this.options;
69
70
  var payload = {};
70
71
  if (payloadData) {
71
- payload = {payload: payloadData};
72
+ payload = { payload: payloadData };
72
73
  }
73
74
  this.options = _.handleOptions(oldOptions, options, payload, logger);
74
- this.options._configuredOptions = _.handleOptions(oldOptions._configuredOptions, options, payload);
75
+ this.options._configuredOptions = _.handleOptions(
76
+ oldOptions._configuredOptions,
77
+ options,
78
+ payload,
79
+ );
75
80
  this.client.configure(options, payloadData);
76
81
  return this;
77
82
  };
78
- Rollbar.configure = function(options, payloadData) {
83
+ Rollbar.configure = function (options, payloadData) {
79
84
  if (_instance) {
80
85
  return _instance.configure(options, payloadData);
81
86
  } else {
@@ -83,10 +88,10 @@ Rollbar.configure = function(options, payloadData) {
83
88
  }
84
89
  };
85
90
 
86
- Rollbar.prototype.lastError = function() {
91
+ Rollbar.prototype.lastError = function () {
87
92
  return this.client.lastError;
88
93
  };
89
- Rollbar.lastError = function() {
94
+ Rollbar.lastError = function () {
90
95
  if (_instance) {
91
96
  return _instance.lastError();
92
97
  } else {
@@ -94,13 +99,13 @@ Rollbar.lastError = function() {
94
99
  }
95
100
  };
96
101
 
97
- Rollbar.prototype.log = function() {
102
+ Rollbar.prototype.log = function () {
98
103
  var item = this._createItem(arguments);
99
104
  var uuid = item.uuid;
100
105
  this.client.log(item);
101
- return {uuid: uuid};
106
+ return { uuid: uuid };
102
107
  };
103
- Rollbar.log = function() {
108
+ Rollbar.log = function () {
104
109
  if (_instance) {
105
110
  return _instance.log.apply(_instance, arguments);
106
111
  } else {
@@ -109,13 +114,13 @@ Rollbar.log = function() {
109
114
  }
110
115
  };
111
116
 
112
- Rollbar.prototype.debug = function() {
117
+ Rollbar.prototype.debug = function () {
113
118
  var item = this._createItem(arguments);
114
119
  var uuid = item.uuid;
115
120
  this.client.debug(item);
116
- return {uuid: uuid};
121
+ return { uuid: uuid };
117
122
  };
118
- Rollbar.debug = function() {
123
+ Rollbar.debug = function () {
119
124
  if (_instance) {
120
125
  return _instance.debug.apply(_instance, arguments);
121
126
  } else {
@@ -124,13 +129,13 @@ Rollbar.debug = function() {
124
129
  }
125
130
  };
126
131
 
127
- Rollbar.prototype.info = function() {
132
+ Rollbar.prototype.info = function () {
128
133
  var item = this._createItem(arguments);
129
134
  var uuid = item.uuid;
130
135
  this.client.info(item);
131
- return {uuid: uuid};
136
+ return { uuid: uuid };
132
137
  };
133
- Rollbar.info = function() {
138
+ Rollbar.info = function () {
134
139
  if (_instance) {
135
140
  return _instance.info.apply(_instance, arguments);
136
141
  } else {
@@ -139,13 +144,13 @@ Rollbar.info = function() {
139
144
  }
140
145
  };
141
146
 
142
- Rollbar.prototype.warn = function() {
147
+ Rollbar.prototype.warn = function () {
143
148
  var item = this._createItem(arguments);
144
149
  var uuid = item.uuid;
145
150
  this.client.warn(item);
146
- return {uuid: uuid};
151
+ return { uuid: uuid };
147
152
  };
148
- Rollbar.warn = function() {
153
+ Rollbar.warn = function () {
149
154
  if (_instance) {
150
155
  return _instance.warn.apply(_instance, arguments);
151
156
  } else {
@@ -154,14 +159,13 @@ Rollbar.warn = function() {
154
159
  }
155
160
  };
156
161
 
157
-
158
- Rollbar.prototype.warning = function() {
162
+ Rollbar.prototype.warning = function () {
159
163
  var item = this._createItem(arguments);
160
164
  var uuid = item.uuid;
161
165
  this.client.warning(item);
162
- return {uuid: uuid};
166
+ return { uuid: uuid };
163
167
  };
164
- Rollbar.warning = function() {
168
+ Rollbar.warning = function () {
165
169
  if (_instance) {
166
170
  return _instance.warning.apply(_instance, arguments);
167
171
  } else {
@@ -170,14 +174,13 @@ Rollbar.warning = function() {
170
174
  }
171
175
  };
172
176
 
173
-
174
- Rollbar.prototype.error = function() {
177
+ Rollbar.prototype.error = function () {
175
178
  var item = this._createItem(arguments);
176
179
  var uuid = item.uuid;
177
180
  this.client.error(item);
178
- return {uuid: uuid};
181
+ return { uuid: uuid };
179
182
  };
180
- Rollbar.error = function() {
183
+ Rollbar.error = function () {
181
184
  if (_instance) {
182
185
  return _instance.error.apply(_instance, arguments);
183
186
  } else {
@@ -185,21 +188,21 @@ Rollbar.error = function() {
185
188
  handleUninitialized(maybeCallback);
186
189
  }
187
190
  };
188
- Rollbar.prototype._uncaughtError = function() {
191
+ Rollbar.prototype._uncaughtError = function () {
189
192
  var item = this._createItem(arguments);
190
193
  item._isUncaught = true;
191
194
  var uuid = item.uuid;
192
195
  this.client.error(item);
193
- return {uuid: uuid};
196
+ return { uuid: uuid };
194
197
  };
195
198
 
196
- Rollbar.prototype.critical = function() {
199
+ Rollbar.prototype.critical = function () {
197
200
  var item = this._createItem(arguments);
198
201
  var uuid = item.uuid;
199
202
  this.client.critical(item);
200
- return {uuid: uuid};
203
+ return { uuid: uuid };
201
204
  };
202
- Rollbar.critical = function() {
205
+ Rollbar.critical = function () {
203
206
  if (_instance) {
204
207
  return _instance.critical.apply(_instance, arguments);
205
208
  } else {
@@ -208,10 +211,10 @@ Rollbar.critical = function() {
208
211
  }
209
212
  };
210
213
 
211
- Rollbar.prototype.buildJsonPayload = function(item) {
214
+ Rollbar.prototype.buildJsonPayload = function (item) {
212
215
  return this.client.buildJsonPayload(item);
213
216
  };
214
- Rollbar.buildJsonPayload = function() {
217
+ Rollbar.buildJsonPayload = function () {
215
218
  if (_instance) {
216
219
  return _instance.buildJsonPayload.apply(_instance, arguments);
217
220
  } else {
@@ -219,10 +222,10 @@ Rollbar.buildJsonPayload = function() {
219
222
  }
220
223
  };
221
224
 
222
- Rollbar.prototype.sendJsonPayload = function(jsonPayload) {
225
+ Rollbar.prototype.sendJsonPayload = function (jsonPayload) {
223
226
  return this.client.sendJsonPayload(jsonPayload);
224
227
  };
225
- Rollbar.sendJsonPayload = function() {
228
+ Rollbar.sendJsonPayload = function () {
226
229
  if (_instance) {
227
230
  return _instance.sendJsonPayload.apply(_instance, arguments);
228
231
  } else {
@@ -230,23 +233,23 @@ Rollbar.sendJsonPayload = function() {
230
233
  }
231
234
  };
232
235
 
233
- Rollbar.prototype.wait = function(callback) {
236
+ Rollbar.prototype.wait = function (callback) {
234
237
  this.client.wait(callback);
235
238
  };
236
- Rollbar.wait = function(callback) {
239
+ Rollbar.wait = function (callback) {
237
240
  if (_instance) {
238
- return _instance.wait(callback)
241
+ return _instance.wait(callback);
239
242
  } else {
240
243
  var maybeCallback = _getFirstFunction(arguments);
241
244
  handleUninitialized(maybeCallback);
242
245
  }
243
246
  };
244
247
 
245
- Rollbar.prototype.captureEvent = function() {
248
+ Rollbar.prototype.captureEvent = function () {
246
249
  var event = _.createTelemetryEvent(arguments);
247
250
  return this.client.captureEvent(event.type, event.metadata, event.level);
248
251
  };
249
- Rollbar.captureEvent = function() {
252
+ Rollbar.captureEvent = function () {
250
253
  if (_instance) {
251
254
  return _instance.captureEvent.apply(_instance, arguments);
252
255
  } else {
@@ -254,10 +257,10 @@ Rollbar.captureEvent = function() {
254
257
  }
255
258
  };
256
259
 
257
- Rollbar.prototype.setPerson = function(personInfo) {
258
- this.configure({}, {person: personInfo});
260
+ Rollbar.prototype.setPerson = function (personInfo) {
261
+ this.configure({}, { person: personInfo });
259
262
  };
260
- Rollbar.setPerson = function(personInfo) {
263
+ Rollbar.setPerson = function (personInfo) {
261
264
  if (_instance) {
262
265
  return _instance.setPerson(personInfo);
263
266
  } else {
@@ -265,10 +268,10 @@ Rollbar.setPerson = function(personInfo) {
265
268
  }
266
269
  };
267
270
 
268
- Rollbar.prototype.clearPerson = function() {
269
- this.configure({}, {person: {}});
271
+ Rollbar.prototype.clearPerson = function () {
272
+ this.configure({}, { person: {} });
270
273
  };
271
- Rollbar.clearPerson = function() {
274
+ Rollbar.clearPerson = function () {
272
275
  if (_instance) {
273
276
  return _instance.clearPerson();
274
277
  } else {
@@ -299,7 +302,7 @@ function addPredicatesToQueue(queue) {
299
302
  .addPredicate(sharedPredicates.userCheckIgnore(logger));
300
303
  }
301
304
 
302
- Rollbar.prototype._createItem = function(args) {
305
+ Rollbar.prototype._createItem = function (args) {
303
306
  return _.createItem(args, logger, this);
304
307
  };
305
308
 
@@ -319,18 +322,19 @@ Rollbar.defaultOptions = {
319
322
  showReportedMessageTraces: false,
320
323
  notifier: {
321
324
  name: 'rollbar-react-native',
322
- version: packageJson.version
325
+ version: packageJson.version,
323
326
  },
324
327
  scrubHeaders: packageJson.defaults.server.scrubHeaders,
325
328
  scrubFields: packageJson.defaults.server.scrubFields,
326
329
  reportLevel: packageJson.defaults.reportLevel,
327
- rewriteFilenamePatterns: packageJson.defaults.reactNative.rewriteFilenamePatterns,
330
+ rewriteFilenamePatterns:
331
+ packageJson.defaults.reactNative.rewriteFilenamePatterns,
328
332
  verbose: false,
329
333
  enabled: true,
330
334
  transmit: true,
331
335
  sendConfig: false,
332
336
  includeItemsInTelemetry: true,
333
- ignoreDuplicateErrors: true
337
+ ignoreDuplicateErrors: true,
334
338
  };
335
339
 
336
340
  module.exports = Rollbar;
@@ -3,7 +3,8 @@ var scrub = require('../scrub');
3
3
  var errorParser = require('../errorParser');
4
4
 
5
5
  function baseData(item, options, callback) {
6
- var environment = (options.payload && options.payload.environment) || options.environment;
6
+ var environment =
7
+ (options.payload && options.payload.environment) || options.environment;
7
8
  var data = {
8
9
  timestamp: Math.round(item.timestamp / 1000),
9
10
  environment: item.environment || environment,
@@ -13,7 +14,7 @@ function baseData(item, options, callback) {
13
14
  framework: item.framework || options.framework,
14
15
  uuid: item.uuid,
15
16
  notifier: JSON.parse(JSON.stringify(options.notifier)),
16
- custom: item.custom
17
+ custom: item.custom,
17
18
  };
18
19
 
19
20
  if (options.codeVersion) {
@@ -38,7 +39,7 @@ function addMessageData(item, options, callback) {
38
39
  item.data.body = item.data.body || {};
39
40
  var message = item.message || 'Item sent with null or missing arguments.';
40
41
  item.data.body.message = {
41
- body: message
42
+ body: message,
42
43
  };
43
44
  callback(null, item);
44
45
  }
@@ -77,8 +78,8 @@ function handleItemWithError(item, options, callback) {
77
78
  frames: _buildFrames(parsedError.stack, options),
78
79
  exception: {
79
80
  class: _errorClass(parsedError.name, guess[0], options),
80
- message: message
81
- }
81
+ message: message,
82
+ },
82
83
  };
83
84
  if (err.description) {
84
85
  stackInfo.exception.description = String(err.description);
@@ -120,8 +121,11 @@ function _buildFrames(stack, options) {
120
121
  var frame = {
121
122
  filename: _rewriteFilename(filename, options),
122
123
  lineno: stackFrame.line || null,
123
- method: (!stackFrame.func || stackFrame.func === '?') ? '[anonymous]' : stackFrame.func,
124
- colno: stackFrame.column
124
+ method:
125
+ !stackFrame.func || stackFrame.func === '?'
126
+ ? '[anonymous]'
127
+ : stackFrame.func,
128
+ colno: stackFrame.column,
125
129
  };
126
130
  frames.push(frame);
127
131
  }
@@ -141,7 +145,7 @@ function _matchFilename(filename, options) {
141
145
  var patterns = options.rewriteFilenamePatterns || [];
142
146
  var length = patterns.length || 0;
143
147
 
144
- for(var i = 0; i < length; i++) {
148
+ for (var i = 0; i < length; i++) {
145
149
  var pattern = new RegExp(patterns[i]);
146
150
  var match = filename.match(pattern);
147
151
  if (match && match[1]) {
@@ -156,5 +160,5 @@ module.exports = {
156
160
  handleItemWithError: handleItemWithError,
157
161
  addBody: addBody,
158
162
  scrubPayload: scrubPayload,
159
- _matchFilename: _matchFilename // to enable unit test
163
+ _matchFilename: _matchFilename, // to enable unit test
160
164
  };
@@ -8,28 +8,28 @@ function Transport(truncation) {
8
8
  this.truncation = truncation;
9
9
  }
10
10
 
11
- Transport.prototype.get = function(accessToken, options, params, callback) {
11
+ Transport.prototype.get = function (accessToken, options, params, callback) {
12
12
  if (!callback || !_.isFunction(callback)) {
13
- callback = function() {};
13
+ callback = function () {};
14
14
  }
15
15
  options = options || {};
16
16
  _.addParamsAndAccessTokenToPath(accessToken, options, params);
17
17
  var headers = _headers(accessToken, options);
18
18
  fetch(_.formatUrl(options), {
19
19
  method: 'GET',
20
- headers: headers
21
- })
22
- .then(function(resp) {
23
- _handleResponse(resp, callback);
20
+ headers: headers,
24
21
  })
25
- .catch(function(err) {
26
- callback(err);
27
- });
28
- }
22
+ .then(function (resp) {
23
+ _handleResponse(resp, callback);
24
+ })
25
+ .catch(function (err) {
26
+ callback(err);
27
+ });
28
+ };
29
29
 
30
- Transport.prototype.post = function(accessToken, options, payload, callback) {
30
+ Transport.prototype.post = function (accessToken, options, payload, callback) {
31
31
  if (!callback || !_.isFunction(callback)) {
32
- callback = function() {};
32
+ callback = function () {};
33
33
  }
34
34
  options = options || {};
35
35
  if (!payload) {
@@ -40,7 +40,7 @@ Transport.prototype.post = function(accessToken, options, payload, callback) {
40
40
  if (this.truncation) {
41
41
  stringifyResult = this.truncation.truncate(payload);
42
42
  } else {
43
- stringifyResult = _.stringify(payload)
43
+ stringifyResult = _.stringify(payload);
44
44
  }
45
45
  if (stringifyResult.error) {
46
46
  logger.error('Problem stringifying payload. Giving up');
@@ -50,11 +50,16 @@ Transport.prototype.post = function(accessToken, options, payload, callback) {
50
50
  var headers = _headers(accessToken, options, writeData);
51
51
 
52
52
  _makeRequest(headers, options, writeData, callback);
53
- }
53
+ };
54
54
 
55
- Transport.prototype.postJsonPayload = function(accessToken, options, jsonPayload, callback) {
55
+ Transport.prototype.postJsonPayload = function (
56
+ accessToken,
57
+ options,
58
+ jsonPayload,
59
+ callback,
60
+ ) {
56
61
  if (!callback || !_.isFunction(callback)) {
57
- callback = function() {};
62
+ callback = function () {};
58
63
  }
59
64
  options = options || {};
60
65
  if (!jsonPayload) {
@@ -62,8 +67,8 @@ Transport.prototype.postJsonPayload = function(accessToken, options, jsonPayload
62
67
  }
63
68
  var headers = _headers(accessToken, options, jsonPayload);
64
69
 
65
- _makeRequest(headers, options, jsonPayload, callback)
66
- }
70
+ _makeRequest(headers, options, jsonPayload, callback);
71
+ };
67
72
 
68
73
  /** Helpers **/
69
74
  function _makeRequest(headers, options, data, callback) {
@@ -71,17 +76,17 @@ function _makeRequest(headers, options, data, callback) {
71
76
  fetch(url, {
72
77
  method: 'POST',
73
78
  headers: headers,
74
- body: data
75
- })
76
- .then(function (resp) {
77
- return resp.json();
79
+ body: data,
78
80
  })
79
- .then(function (data) {
80
- _handleResponse(data, _wrapPostCallback(callback));
81
- })
82
- .catch(function(err) {
83
- callback(err);
84
- });
81
+ .then(function (resp) {
82
+ return resp.json();
83
+ })
84
+ .then(function (data) {
85
+ _handleResponse(data, _wrapPostCallback(callback));
86
+ })
87
+ .catch(function (err) {
88
+ callback(err);
89
+ });
85
90
  }
86
91
 
87
92
  function _headers(accessToken, options, data) {
@@ -101,27 +106,32 @@ function _headers(accessToken, options, data) {
101
106
  function _handleResponse(data, callback) {
102
107
  if (data.err) {
103
108
  logger.error('Received error: ' + data.message);
104
- return callback(new Error('Api error: ' + (data.message || 'Unknown error')));
109
+ return callback(
110
+ new Error('Api error: ' + (data.message || 'Unknown error')),
111
+ );
105
112
  }
106
113
 
107
114
  callback(null, data);
108
115
  }
109
116
 
110
117
  function _wrapPostCallback(callback) {
111
- return function(err, data) {
118
+ return function (err, data) {
112
119
  if (err) {
113
120
  return callback(err);
114
121
  }
115
122
  if (data.result && data.result.uuid) {
116
- logger.log([
123
+ logger.log(
124
+ [
117
125
  'Successful api response.',
118
- ' Link: https://rollbar.com/occurrence/uuid/?uuid=' + data.result.uuid
119
- ].join(''));
126
+ ' Link: https://rollbar.com/occurrence/uuid/?uuid=' +
127
+ data.result.uuid,
128
+ ].join(''),
129
+ );
120
130
  } else {
121
131
  logger.log('Successful api response');
122
132
  }
123
133
  callback(null, data.result);
124
- }
134
+ };
125
135
  }
126
136
 
127
137
  module.exports = Transport;