rollbar 2.26.4 → 3.0.0-alpha.1

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 (138) hide show
  1. package/.cursor/rules/guidelines.mdc +154 -0
  2. package/.github/workflows/ci.yml +4 -6
  3. package/CLAUDE.md +201 -0
  4. package/Gruntfile.js +59 -16
  5. package/Makefile +3 -3
  6. package/SECURITY.md +5 -0
  7. package/babel.config.json +9 -0
  8. package/codex.md +148 -0
  9. package/dist/plugins/jquery.min.js +1 -1
  10. package/dist/rollbar.js +19329 -6596
  11. package/dist/rollbar.js.map +1 -1
  12. package/dist/rollbar.min.js +2 -1
  13. package/dist/rollbar.min.js.LICENSE.txt +1 -0
  14. package/dist/rollbar.min.js.map +1 -1
  15. package/dist/rollbar.named-amd.js +19329 -6596
  16. package/dist/rollbar.named-amd.js.map +1 -1
  17. package/dist/rollbar.named-amd.min.js +2 -1
  18. package/dist/rollbar.named-amd.min.js.LICENSE.txt +1 -0
  19. package/dist/rollbar.named-amd.min.js.map +1 -1
  20. package/dist/rollbar.noconflict.umd.js +19317 -6582
  21. package/dist/rollbar.noconflict.umd.js.map +1 -1
  22. package/dist/rollbar.noconflict.umd.min.js +2 -1
  23. package/dist/rollbar.noconflict.umd.min.js.LICENSE.txt +1 -0
  24. package/dist/rollbar.noconflict.umd.min.js.map +1 -1
  25. package/dist/rollbar.snippet.js +1 -1
  26. package/dist/rollbar.umd.js +19330 -6597
  27. package/dist/rollbar.umd.js.map +1 -1
  28. package/dist/rollbar.umd.min.js +2 -1
  29. package/dist/rollbar.umd.min.js.LICENSE.txt +1 -0
  30. package/dist/rollbar.umd.min.js.map +1 -1
  31. package/eslint.config.mjs +33 -0
  32. package/get_versions.js +33 -0
  33. package/karma.conf.js +5 -14
  34. package/package.json +19 -20
  35. package/src/api.js +57 -4
  36. package/src/apiUtility.js +2 -3
  37. package/src/browser/core.js +37 -9
  38. package/src/browser/replay/defaults.js +71 -0
  39. package/src/browser/replay/recorder.js +193 -0
  40. package/src/browser/replay/replayMap.js +195 -0
  41. package/src/browser/rollbar.js +11 -7
  42. package/src/browser/telemetry.js +3 -3
  43. package/src/browser/transport/fetch.js +14 -4
  44. package/src/browser/transport/xhr.js +12 -1
  45. package/src/browser/transport.js +11 -8
  46. package/src/defaults.js +1 -1
  47. package/src/queue.js +65 -4
  48. package/src/react-native/rollbar.js +1 -1
  49. package/src/rollbar.js +52 -10
  50. package/src/server/rollbar.js +3 -2
  51. package/src/telemetry.js +76 -11
  52. package/src/tracing/context.js +24 -0
  53. package/src/tracing/contextManager.js +37 -0
  54. package/src/tracing/defaults.js +7 -0
  55. package/src/tracing/exporter.js +188 -0
  56. package/src/tracing/hrtime.js +98 -0
  57. package/src/tracing/id.js +24 -0
  58. package/src/tracing/session.js +55 -0
  59. package/src/tracing/span.js +92 -0
  60. package/src/tracing/spanProcessor.js +15 -0
  61. package/src/tracing/tracer.js +46 -0
  62. package/src/tracing/tracing.js +89 -0
  63. package/src/utility.js +34 -0
  64. package/test/api.test.js +57 -12
  65. package/test/apiUtility.test.js +5 -6
  66. package/test/browser.core.test.js +1 -10
  67. package/test/browser.domUtility.test.js +1 -1
  68. package/test/browser.predicates.test.js +1 -1
  69. package/test/browser.replay.recorder.test.js +416 -0
  70. package/test/browser.rollbar.test.js +58 -12
  71. package/test/browser.telemetry.test.js +1 -1
  72. package/test/browser.transforms.test.js +20 -13
  73. package/test/browser.transport.test.js +5 -4
  74. package/test/browser.url.test.js +1 -1
  75. package/test/fixtures/replay/index.js +20 -0
  76. package/test/fixtures/replay/payloads.fixtures.js +229 -0
  77. package/test/fixtures/replay/rrwebEvents.fixtures.js +251 -0
  78. package/test/fixtures/replay/rrwebSyntheticEvents.fixtures.js +328 -0
  79. package/test/notifier.test.js +1 -1
  80. package/test/predicates.test.js +1 -1
  81. package/test/queue.test.js +1 -1
  82. package/test/rateLimiter.test.js +1 -1
  83. package/test/react-native.rollbar.test.js +1 -1
  84. package/test/react-native.transforms.test.js +2 -2
  85. package/test/react-native.transport.test.js +3 -3
  86. package/test/replay/index.js +2 -0
  87. package/test/replay/integration/api.spans.test.js +136 -0
  88. package/test/replay/integration/e2e.test.js +228 -0
  89. package/test/replay/integration/index.js +9 -0
  90. package/test/replay/integration/queue.replayMap.test.js +332 -0
  91. package/test/replay/integration/replayMap.test.js +163 -0
  92. package/test/replay/integration/sessionRecording.test.js +390 -0
  93. package/test/replay/unit/api.postSpans.test.js +150 -0
  94. package/test/replay/unit/index.js +7 -0
  95. package/test/replay/unit/queue.replayMap.test.js +225 -0
  96. package/test/replay/unit/replayMap.test.js +348 -0
  97. package/test/replay/util/index.js +5 -0
  98. package/test/replay/util/mockRecordFn.js +80 -0
  99. package/test/server.lambda.mocha.test.mjs +172 -0
  100. package/test/server.locals.constructor.mocha.test.mjs +80 -0
  101. package/test/server.locals.error-handling.mocha.test.mjs +387 -0
  102. package/test/server.locals.merge.mocha.test.mjs +267 -0
  103. package/test/server.locals.test-utils.mjs +114 -0
  104. package/test/server.parser.mocha.test.mjs +87 -0
  105. package/test/server.predicates.mocha.test.mjs +63 -0
  106. package/test/server.rollbar.constructor.mocha.test.mjs +199 -0
  107. package/test/server.rollbar.handlers.mocha.test.mjs +253 -0
  108. package/test/server.rollbar.logging.mocha.test.mjs +326 -0
  109. package/test/server.rollbar.misc.mocha.test.mjs +44 -0
  110. package/test/server.rollbar.test-utils.mjs +57 -0
  111. package/test/server.telemetry.mocha.test.mjs +377 -0
  112. package/test/server.transforms.data.mocha.test.mjs +163 -0
  113. package/test/server.transforms.error.mocha.test.mjs +199 -0
  114. package/test/server.transforms.request.mocha.test.mjs +208 -0
  115. package/test/server.transforms.scrub.mocha.test.mjs +140 -0
  116. package/test/server.transforms.sourcemaps.mocha.test.mjs +122 -0
  117. package/test/server.transforms.test-utils.mjs +62 -0
  118. package/test/server.transport.mocha.test.mjs +269 -0
  119. package/test/telemetry.test.js +132 -1
  120. package/test/tracing/contextManager.test.js +28 -0
  121. package/test/tracing/exporter.toPayload.test.js +400 -0
  122. package/test/tracing/id.test.js +24 -0
  123. package/test/tracing/span.test.js +183 -0
  124. package/test/tracing/spanProcessor.test.js +73 -0
  125. package/test/tracing/tracing.test.js +105 -0
  126. package/test/transforms.test.js +2 -2
  127. package/test/truncation.test.js +2 -2
  128. package/test/utility.test.js +44 -6
  129. package/webpack.config.js +6 -44
  130. package/.eslintignore +0 -7
  131. package/test/server.lambda.test.js +0 -194
  132. package/test/server.locals.test.js +0 -1068
  133. package/test/server.parser.test.js +0 -78
  134. package/test/server.predicates.test.js +0 -91
  135. package/test/server.rollbar.test.js +0 -728
  136. package/test/server.telemetry.test.js +0 -443
  137. package/test/server.transforms.test.js +0 -1193
  138. package/test/server.transport.test.js +0 -269
@@ -1,78 +0,0 @@
1
- 'use strict';
2
-
3
- var assert = require('assert');
4
- var vows = require('vows');
5
- var p = require('../src/server/parser');
6
-
7
- vows
8
- .describe('parser')
9
- .addBatch({
10
- parseStack: {
11
- 'a valid stack trace': {
12
- topic: function () {
13
- var item = { diagnostic: {} };
14
- var stack =
15
- 'ReferenceError: foo is not defined\n' +
16
- ' at MethodClass.method.<anonymous> (app/server.js:2:4)\n' +
17
- ' at /app/node_modules/client.js:321:23\n' +
18
- ' at (/app/node_modules/client.js:321:23)\n' +
19
- ' at MethodClass.method.(anonymous) (app/server.js:62:14)\n' +
20
- ' at MethodClass.method (app/server.ts:52:4)\n' +
21
- ' at MethodClass.method (app/server.js:62:14)\n';
22
- p.parseStack(stack, {}, item, this.callback);
23
- },
24
- 'should parse valid js frame': function (err, frames) {
25
- var frame = frames[0];
26
- assert.ifError(err);
27
- assert.equal(frame.method, 'MethodClass.method');
28
- assert.equal(frame.filename, 'app/server.js');
29
- assert.equal(frame.lineno, 62);
30
- assert.equal(frame.colno, 14 - 1);
31
- },
32
- 'should parse valid ts frame': function (err, frames) {
33
- var frame = frames[1];
34
- assert.ifError(err);
35
- assert.equal(frame.method, 'MethodClass.method');
36
- assert.equal(frame.filename, 'app/server.ts');
37
- assert.equal(frame.lineno, 52);
38
- assert.equal(frame.colno, 4 - 1);
39
- },
40
- 'should parse method with parens': function (err, frames) {
41
- var frame = frames[2];
42
- assert.ifError(err);
43
- assert.equal(frame.method, 'MethodClass.method.(anonymous)');
44
- assert.equal(frame.filename, 'app/server.js');
45
- assert.equal(frame.lineno, 62);
46
- assert.equal(frame.colno, 14 - 1);
47
- },
48
- 'should parse without method and with leading slash': function (
49
- err,
50
- frames,
51
- ) {
52
- var frame = frames[3];
53
- assert.ifError(err);
54
- assert.equal(frame.method, '<unknown>');
55
- assert.equal(frame.filename, '/app/node_modules/client.js');
56
- assert.equal(frame.lineno, 321);
57
- assert.equal(frame.colno, 23 - 1);
58
- },
59
- 'should parse without method or parens': function (err, frames) {
60
- var frame = frames[4];
61
- assert.ifError(err);
62
- assert.equal(frame.method, '<unknown>');
63
- assert.equal(frame.filename, '/app/node_modules/client.js');
64
- assert.equal(frame.lineno, 321);
65
- assert.equal(frame.colno, 23 - 1);
66
- },
67
- 'should parse method with angle brackets': function (err, frames) {
68
- var frame = frames[5];
69
- assert.ifError(err);
70
- assert.equal(frame.method, 'MethodClass.method.<anonymous>');
71
- assert.equal(frame.filename, 'app/server.js');
72
- assert.equal(frame.lineno, 2);
73
- assert.equal(frame.colno, 4 - 1);
74
- },
75
- },
76
- },
77
- })
78
- .export(module, { error: false });
@@ -1,91 +0,0 @@
1
- 'use strict';
2
-
3
- var assert = require('assert');
4
- var vows = require('vows');
5
- var p = require('../src/predicates');
6
-
7
- vows
8
- .describe('predicates')
9
- .addBatch({
10
- checkLevel: {
11
- 'an item without a level': {
12
- topic: function () {
13
- return { body: 'nothing' };
14
- },
15
- 'settings with a critical reportLevel': {
16
- topic: function (item) {
17
- var settings = { reportLevel: 'critical' };
18
- return p.checkLevel(item, settings);
19
- },
20
- 'should not send': function (topic) {
21
- assert.isFalse(topic);
22
- },
23
- },
24
- },
25
- 'an item with an unknown level': {
26
- topic: function () {
27
- return { level: 'wooo' };
28
- },
29
- 'settings with an error reportLevel': {
30
- topic: function (item) {
31
- var settings = { reportLevel: 'error' };
32
- return p.checkLevel(item, settings);
33
- },
34
- 'should not send': function (topic) {
35
- assert.isFalse(topic);
36
- },
37
- },
38
- 'settings with an unknown reportLevel': {
39
- topic: function (item) {
40
- var settings = { reportLevel: 'yesss' };
41
- return p.checkLevel(item, settings);
42
- },
43
- 'should send': function (topic) {
44
- assert.isTrue(topic);
45
- },
46
- },
47
- 'settings without a reportLevel': {
48
- topic: function (item) {
49
- var settings = { nothing: 'to see here' };
50
- return p.checkLevel(item, settings);
51
- },
52
- 'should send': function (topic) {
53
- assert.isTrue(topic);
54
- },
55
- },
56
- },
57
- 'an item with a warning level': {
58
- topic: function () {
59
- return { level: 'warning' };
60
- },
61
- 'settings with an error reportLevel': {
62
- topic: function (item) {
63
- var settings = { reportLevel: 'error' };
64
- return p.checkLevel(item, settings);
65
- },
66
- 'should not send': function (topic) {
67
- assert.isFalse(topic);
68
- },
69
- },
70
- 'settings with an info reportLevel': {
71
- topic: function (item) {
72
- var settings = { reportLevel: 'info' };
73
- return p.checkLevel(item, settings);
74
- },
75
- 'should send': function (topic) {
76
- assert.isTrue(topic);
77
- },
78
- },
79
- 'settings with a warning reportLevel': {
80
- topic: function (item) {
81
- var settings = { reportLevel: 'warning' };
82
- return p.checkLevel(item, settings);
83
- },
84
- 'should send': function (topic) {
85
- assert.isTrue(topic);
86
- },
87
- },
88
- },
89
- },
90
- })
91
- .export(module, { error: false });