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.
- package/.github/workflows/ci.yml +32 -10
- package/.lgtm.yml +7 -7
- package/.prettierignore +18 -0
- package/.vscode/settings.json +39 -0
- package/CHANGELOG.md +121 -35
- package/Gruntfile.js +51 -71
- package/README.md +2 -4
- package/bower.json +1 -3
- package/defaults.js +17 -5
- package/dist/plugins/jquery.min.js +1 -1
- package/dist/rollbar.js +5699 -5052
- package/dist/rollbar.js.map +1 -1
- package/dist/rollbar.min.js +1 -1
- package/dist/rollbar.min.js.map +1 -1
- package/dist/rollbar.named-amd.js +5704 -5062
- package/dist/rollbar.named-amd.js.map +1 -1
- package/dist/rollbar.named-amd.min.js +1 -1
- package/dist/rollbar.named-amd.min.js.map +1 -1
- package/dist/rollbar.noconflict.umd.js +5693 -5052
- package/dist/rollbar.noconflict.umd.js.map +1 -1
- package/dist/rollbar.noconflict.umd.min.js +1 -1
- package/dist/rollbar.noconflict.umd.min.js.map +1 -1
- package/dist/rollbar.snippet.js +1 -1
- package/dist/rollbar.umd.js +5704 -5063
- package/dist/rollbar.umd.js.map +1 -1
- package/dist/rollbar.umd.min.js +1 -1
- package/dist/rollbar.umd.min.js.map +1 -1
- package/docs/extension-exceptions.md +35 -30
- package/docs/migration_v0_to_v1.md +41 -38
- package/index.d.ts +270 -231
- package/karma.conf.js +16 -34
- package/package.json +21 -17
- package/prettier.config.js +7 -0
- package/src/api.js +21 -10
- package/src/apiUtility.js +12 -8
- package/src/browser/core.js +103 -65
- package/src/browser/defaults/scrubFields.js +3 -3
- package/src/browser/detection.js +7 -8
- package/src/browser/domUtility.js +18 -8
- package/src/browser/globalSetup.js +12 -6
- package/src/browser/logger.js +1 -1
- package/src/browser/plugins/jquery.js +35 -35
- package/src/browser/predicates.js +1 -1
- package/src/browser/rollbar.js +1 -1
- package/src/browser/rollbarWrapper.js +8 -5
- package/src/browser/shim.js +43 -19
- package/src/browser/snippet_callback.js +6 -4
- package/src/browser/telemetry.js +573 -354
- package/src/browser/transforms.js +46 -27
- package/src/browser/transport/fetch.js +16 -14
- package/src/browser/transport/xhr.js +29 -13
- package/src/browser/transport.js +82 -25
- package/src/browser/url.js +16 -8
- package/src/browser/wrapGlobals.js +27 -8
- package/src/defaults.js +3 -3
- package/src/errorParser.js +14 -11
- package/src/merge.js +32 -23
- package/src/notifier.js +16 -13
- package/src/predicates.js +43 -23
- package/src/queue.js +71 -39
- package/src/rateLimiter.js +59 -18
- package/src/react-native/logger.js +1 -1
- package/src/react-native/rollbar.js +59 -55
- package/src/react-native/transforms.js +13 -9
- package/src/react-native/transport.js +44 -34
- package/src/rollbar.js +22 -13
- package/src/scrub.js +0 -1
- package/src/server/locals.js +69 -39
- package/src/server/logger.js +4 -4
- package/src/server/parser.js +72 -47
- package/src/server/rollbar.js +133 -55
- package/src/server/sourceMap/stackTrace.js +33 -18
- package/src/server/telemetry/urlHelpers.js +9 -11
- package/src/server/telemetry.js +68 -45
- package/src/server/transforms.js +37 -21
- package/src/server/transport.js +62 -32
- package/src/telemetry.js +92 -28
- package/src/transforms.js +33 -21
- package/src/truncation.js +8 -5
- package/src/utility/headers.js +43 -43
- package/src/utility/replace.js +9 -0
- package/src/utility/traverse.js +1 -1
- package/src/utility.js +89 -52
- package/test/api.test.js +31 -29
- package/test/apiUtility.test.js +43 -44
- package/test/browser.core.test.js +141 -131
- package/test/browser.domUtility.test.js +52 -35
- package/test/browser.predicates.test.js +13 -13
- package/test/browser.rollbar.test.js +597 -503
- package/test/browser.telemetry.test.js +76 -0
- package/test/browser.transforms.test.js +146 -128
- package/test/browser.transport.test.js +54 -46
- package/test/browser.url.test.js +12 -11
- package/test/fixtures/locals.fixtures.js +245 -126
- package/test/notifier.test.js +90 -78
- package/test/predicates.test.js +260 -214
- package/test/queue.test.js +230 -214
- package/test/rateLimiter.test.js +50 -42
- package/test/react-native.rollbar.test.js +149 -115
- package/test/react-native.transforms.test.js +21 -23
- package/test/react-native.transport.test.js +23 -11
- package/test/server.lambda.test.js +70 -53
- package/test/server.locals.test.js +437 -210
- package/test/server.parser.test.js +32 -26
- package/test/server.predicates.test.js +45 -43
- package/test/server.rollbar.test.js +311 -259
- package/test/server.telemetry.test.js +208 -83
- package/test/server.transforms.test.js +455 -361
- package/test/server.transport.test.js +144 -76
- package/test/telemetry.test.js +46 -37
- package/test/transforms.test.js +68 -66
- package/test/truncation.test.js +55 -53
- package/test/utility.test.js +266 -222
- package/webpack.config.js +46 -43
- package/.gitmodules +0 -3
- package/browserstack.browsers.js +0 -153
- package/browserstack.browsers.json +0 -4384
package/test/rateLimiter.test.js
CHANGED
|
@@ -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 =
|
|
23
|
-
expect(RateLimiter.globalSettings.startTime).to.be.within(
|
|
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 = {
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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(
|
|
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 =
|
|
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
|
-
|