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
@@ -5,8 +5,8 @@
5
5
 
6
6
  var RateLimiter = require('../src/rateLimiter');
7
7
 
8
- describe('RateLimiter()', function() {
9
- it('should have all of the expected methods', function(done) {
8
+ describe('RateLimiter()', function () {
9
+ it('should have all of the expected methods', function (done) {
10
10
  var options = {};
11
11
  var rateLimiter = new RateLimiter(options);
12
12
  expect(rateLimiter).to.have.property('configureGlobal');
@@ -15,19 +15,27 @@ describe('RateLimiter()', function() {
15
15
  done();
16
16
  });
17
17
 
18
- it('should have global properties', function(done) {
18
+ it('should have global properties', function (done) {
19
19
  var options = {};
20
20
  var rateLimiter = new RateLimiter(options);
21
21
  expect(RateLimiter).to.have.property('globalSettings');
22
- var now = (new Date()).getTime();
23
- expect(RateLimiter.globalSettings.startTime).to.be.within(now-1000, now+1000);
22
+ var now = new Date().getTime();
23
+ expect(RateLimiter.globalSettings.startTime).to.be.within(
24
+ now - 1000,
25
+ now + 1000,
26
+ );
24
27
  expect(RateLimiter.globalSettings.maxItems).to.not.be.ok();
25
28
 
26
29
  done();
27
30
  });
28
31
 
29
- it('should set the global options', function(done) {
30
- var options = {startTime: 1, maxItems: 50, itemsPerMinute: 102, fake: 'stuff'};
32
+ it('should set the global options', function (done) {
33
+ var options = {
34
+ startTime: 1,
35
+ maxItems: 50,
36
+ itemsPerMinute: 102,
37
+ fake: 'stuff',
38
+ };
31
39
  var rateLimiter = new RateLimiter(options);
32
40
  expect(RateLimiter.globalSettings.startTime).to.be.eql(1);
33
41
  expect(RateLimiter.globalSettings.maxItems).to.be.eql(50);
@@ -38,27 +46,27 @@ describe('RateLimiter()', function() {
38
46
  });
39
47
  });
40
48
 
41
- describe('shouldSend', function() {
42
- it('should say to send if item says ignore', function(done) {
43
- var now = (new Date()).getTime();
44
- var options = {startTime: now, maxItems: 4, itemsPerMinute: 2};
49
+ describe('shouldSend', function () {
50
+ it('should say to send if item says ignore', function (done) {
51
+ var now = new Date().getTime();
52
+ var options = { startTime: now, maxItems: 4, itemsPerMinute: 2 };
45
53
  var rateLimiter = new RateLimiter(options);
46
54
 
47
- var item = {ignoreRateLimit: true};
55
+ var item = { ignoreRateLimit: true };
48
56
  var result = rateLimiter.shouldSend(item);
49
57
  expect(result.shouldSend).to.be.ok();
50
58
 
51
59
  done();
52
60
  });
53
61
 
54
- it('should say not to send if over the per minute limit', function(done) {
55
- var now = (new Date()).getTime();
56
- var options = {startTime: now, maxItems: 4, itemsPerMinute: 2};
62
+ it('should say not to send if over the per minute limit', function (done) {
63
+ var now = new Date().getTime();
64
+ var options = { startTime: now, maxItems: 4, itemsPerMinute: 2 };
57
65
  var rateLimiter = new RateLimiter(options);
58
66
 
59
- var i1 = {a: 1};
60
- var i2 = {a: 2};
61
- var i3 = {a: 3};
67
+ var i1 = { a: 1 };
68
+ var i2 = { a: 2 };
69
+ var i3 = { a: 3 };
62
70
  var result1 = rateLimiter.shouldSend(i1, now + 1);
63
71
  var result2 = rateLimiter.shouldSend(i2, now + 2);
64
72
  var result3 = rateLimiter.shouldSend(i3, now + 3);
@@ -73,14 +81,14 @@ describe('shouldSend', function() {
73
81
  done();
74
82
  });
75
83
 
76
- it('should reset the per minute limit', function(done) {
77
- var now = (new Date()).getTime();
78
- var options = {startTime: now, maxItems: 4, itemsPerMinute: 2};
84
+ it('should reset the per minute limit', function (done) {
85
+ var now = new Date().getTime();
86
+ var options = { startTime: now, maxItems: 4, itemsPerMinute: 2 };
79
87
  var rateLimiter = new RateLimiter(options);
80
88
 
81
- var i1 = {a: 1};
82
- var i2 = {a: 2};
83
- var i3 = {a: 3};
89
+ var i1 = { a: 1 };
90
+ var i2 = { a: 2 };
91
+ var i3 = { a: 3 };
84
92
  var result1 = rateLimiter.shouldSend(i1, now + 1);
85
93
  var result2 = rateLimiter.shouldSend(i2, now + 2);
86
94
  var result3 = rateLimiter.shouldSend(i3, now + 60000 + 1);
@@ -94,15 +102,15 @@ describe('shouldSend', function() {
94
102
  done();
95
103
  });
96
104
 
97
- it('should not send and give us a payload when the maxItems limit is reached', function(done) {
98
- var now = (new Date()).getTime();
99
- var options = {startTime: now, maxItems: 3, itemsPerMinute: 2};
105
+ it('should not send and give us a payload when the maxItems limit is reached', function (done) {
106
+ var now = new Date().getTime();
107
+ var options = { startTime: now, maxItems: 3, itemsPerMinute: 2 };
100
108
  var rateLimiter = new RateLimiter(options);
101
109
 
102
- var i1 = {a: 1};
103
- var i2 = {a: 2};
104
- var i3 = {a: 3};
105
- var i4 = {a: 4};
110
+ var i1 = { a: 1 };
111
+ var i2 = { a: 2 };
112
+ var i3 = { a: 3 };
113
+ var i4 = { a: 4 };
106
114
  var result1 = rateLimiter.shouldSend(i1, now + 1);
107
115
  var result2 = rateLimiter.shouldSend(i2, now + 2);
108
116
  var result3 = rateLimiter.shouldSend(i3, now + 60000 + 1);
@@ -116,21 +124,23 @@ describe('shouldSend', function() {
116
124
  expect(result4.shouldSend).to.not.be.ok();
117
125
  expect(result4.error).to.not.be.ok();
118
126
  expect(result4.payload).to.be.ok();
119
- expect(result4.payload.body.message.extra.maxItems).to.eql(options.maxItems);
127
+ expect(result4.payload.body.message.extra.maxItems).to.eql(
128
+ options.maxItems,
129
+ );
120
130
 
121
131
  done();
122
132
  });
123
133
 
124
- it('should not send and give an error when over maxItems limit', function(done) {
125
- var now = (new Date()).getTime();
126
- var options = {startTime: now, maxItems: 3, itemsPerMinute: 2};
134
+ it('should not send and give an error when over maxItems limit', function (done) {
135
+ var now = new Date().getTime();
136
+ var options = { startTime: now, maxItems: 3, itemsPerMinute: 2 };
127
137
  var rateLimiter = new RateLimiter(options);
128
138
 
129
- var i1 = {a: 1};
130
- var i2 = {a: 2};
131
- var i3 = {a: 3};
132
- var i4 = {a: 4};
133
- var i5 = {a: 5};
139
+ var i1 = { a: 1 };
140
+ var i2 = { a: 2 };
141
+ var i3 = { a: 3 };
142
+ var i4 = { a: 4 };
143
+ var i5 = { a: 5 };
134
144
  var result1 = rateLimiter.shouldSend(i1, now + 1);
135
145
  var result2 = rateLimiter.shouldSend(i2, now + 2);
136
146
  var result3 = rateLimiter.shouldSend(i3, now + 60000 + 1);
@@ -154,6 +164,4 @@ describe('shouldSend', function() {
154
164
 
155
165
  done();
156
166
  });
157
-
158
167
  });
159
-