rollbar 2.26.4 → 3.0.0-alpha.2

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 (140) hide show
  1. package/.claude/settings.local.json +3 -0
  2. package/.cursor/rules/guidelines.mdc +154 -0
  3. package/.github/workflows/ci.yml +4 -6
  4. package/CLAUDE.local.md +297 -0
  5. package/CLAUDE.md +201 -0
  6. package/CLAUDE.testrunner.md +470 -0
  7. package/Gruntfile.js +59 -16
  8. package/Makefile +3 -3
  9. package/SECURITY.md +5 -0
  10. package/babel.config.json +9 -0
  11. package/codex.md +148 -0
  12. package/dist/plugins/jquery.min.js +1 -1
  13. package/dist/rollbar.js +19332 -6596
  14. package/dist/rollbar.js.map +1 -1
  15. package/dist/rollbar.min.js +2 -1
  16. package/dist/rollbar.min.js.LICENSE.txt +1 -0
  17. package/dist/rollbar.min.js.map +1 -1
  18. package/dist/rollbar.named-amd.js +19332 -6596
  19. package/dist/rollbar.named-amd.js.map +1 -1
  20. package/dist/rollbar.named-amd.min.js +2 -1
  21. package/dist/rollbar.named-amd.min.js.LICENSE.txt +1 -0
  22. package/dist/rollbar.named-amd.min.js.map +1 -1
  23. package/dist/rollbar.noconflict.umd.js +19319 -6581
  24. package/dist/rollbar.noconflict.umd.js.map +1 -1
  25. package/dist/rollbar.noconflict.umd.min.js +2 -1
  26. package/dist/rollbar.noconflict.umd.min.js.LICENSE.txt +1 -0
  27. package/dist/rollbar.noconflict.umd.min.js.map +1 -1
  28. package/dist/rollbar.snippet.js +1 -1
  29. package/dist/rollbar.umd.js +19333 -6597
  30. package/dist/rollbar.umd.js.map +1 -1
  31. package/dist/rollbar.umd.min.js +2 -1
  32. package/dist/rollbar.umd.min.js.LICENSE.txt +1 -0
  33. package/dist/rollbar.umd.min.js.map +1 -1
  34. package/eslint.config.mjs +33 -0
  35. package/karma.conf.js +5 -14
  36. package/package.json +19 -20
  37. package/src/api.js +57 -4
  38. package/src/apiUtility.js +2 -3
  39. package/src/browser/core.js +37 -9
  40. package/src/browser/replay/defaults.js +70 -0
  41. package/src/browser/replay/recorder.js +194 -0
  42. package/src/browser/replay/replayMap.js +195 -0
  43. package/src/browser/rollbar.js +11 -7
  44. package/src/browser/telemetry.js +3 -3
  45. package/src/browser/transport/fetch.js +17 -4
  46. package/src/browser/transport/xhr.js +17 -1
  47. package/src/browser/transport.js +11 -8
  48. package/src/defaults.js +1 -1
  49. package/src/queue.js +65 -4
  50. package/src/react-native/rollbar.js +1 -1
  51. package/src/rollbar.js +52 -10
  52. package/src/server/rollbar.js +3 -2
  53. package/src/telemetry.js +76 -11
  54. package/src/tracing/context.js +24 -0
  55. package/src/tracing/contextManager.js +37 -0
  56. package/src/tracing/defaults.js +7 -0
  57. package/src/tracing/exporter.js +188 -0
  58. package/src/tracing/hrtime.js +98 -0
  59. package/src/tracing/id.js +24 -0
  60. package/src/tracing/session.js +55 -0
  61. package/src/tracing/span.js +92 -0
  62. package/src/tracing/spanProcessor.js +15 -0
  63. package/src/tracing/tracer.js +46 -0
  64. package/src/tracing/tracing.js +89 -0
  65. package/src/utility.js +34 -0
  66. package/test/api.test.js +57 -12
  67. package/test/apiUtility.test.js +5 -6
  68. package/test/browser.core.test.js +1 -10
  69. package/test/browser.domUtility.test.js +1 -1
  70. package/test/browser.predicates.test.js +1 -1
  71. package/test/browser.replay.recorder.test.js +430 -0
  72. package/test/browser.rollbar.test.js +58 -12
  73. package/test/browser.telemetry.test.js +1 -1
  74. package/test/browser.transforms.test.js +20 -13
  75. package/test/browser.transport.test.js +5 -4
  76. package/test/browser.url.test.js +1 -1
  77. package/test/fixtures/replay/index.js +20 -0
  78. package/test/fixtures/replay/payloads.fixtures.js +229 -0
  79. package/test/fixtures/replay/rrwebEvents.fixtures.js +251 -0
  80. package/test/fixtures/replay/rrwebSyntheticEvents.fixtures.js +328 -0
  81. package/test/notifier.test.js +1 -1
  82. package/test/predicates.test.js +1 -1
  83. package/test/queue.test.js +1 -1
  84. package/test/rateLimiter.test.js +1 -1
  85. package/test/react-native.rollbar.test.js +1 -1
  86. package/test/react-native.transforms.test.js +2 -2
  87. package/test/react-native.transport.test.js +3 -3
  88. package/test/replay/index.js +2 -0
  89. package/test/replay/integration/api.spans.test.js +136 -0
  90. package/test/replay/integration/e2e.test.js +228 -0
  91. package/test/replay/integration/index.js +9 -0
  92. package/test/replay/integration/queue.replayMap.test.js +332 -0
  93. package/test/replay/integration/replayMap.test.js +163 -0
  94. package/test/replay/integration/sessionRecording.test.js +390 -0
  95. package/test/replay/unit/api.postSpans.test.js +150 -0
  96. package/test/replay/unit/index.js +7 -0
  97. package/test/replay/unit/queue.replayMap.test.js +225 -0
  98. package/test/replay/unit/replayMap.test.js +348 -0
  99. package/test/replay/util/index.js +5 -0
  100. package/test/replay/util/mockRecordFn.js +80 -0
  101. package/test/server.lambda.mocha.test.mjs +172 -0
  102. package/test/server.locals.constructor.mocha.test.mjs +80 -0
  103. package/test/server.locals.error-handling.mocha.test.mjs +387 -0
  104. package/test/server.locals.merge.mocha.test.mjs +267 -0
  105. package/test/server.locals.test-utils.mjs +114 -0
  106. package/test/server.parser.mocha.test.mjs +87 -0
  107. package/test/server.predicates.mocha.test.mjs +63 -0
  108. package/test/server.rollbar.constructor.mocha.test.mjs +199 -0
  109. package/test/server.rollbar.handlers.mocha.test.mjs +253 -0
  110. package/test/server.rollbar.logging.mocha.test.mjs +326 -0
  111. package/test/server.rollbar.misc.mocha.test.mjs +44 -0
  112. package/test/server.rollbar.test-utils.mjs +57 -0
  113. package/test/server.telemetry.mocha.test.mjs +377 -0
  114. package/test/server.transforms.data.mocha.test.mjs +163 -0
  115. package/test/server.transforms.error.mocha.test.mjs +199 -0
  116. package/test/server.transforms.request.mocha.test.mjs +208 -0
  117. package/test/server.transforms.scrub.mocha.test.mjs +140 -0
  118. package/test/server.transforms.sourcemaps.mocha.test.mjs +122 -0
  119. package/test/server.transforms.test-utils.mjs +62 -0
  120. package/test/server.transport.mocha.test.mjs +269 -0
  121. package/test/telemetry.test.js +132 -1
  122. package/test/tracing/contextManager.test.js +28 -0
  123. package/test/tracing/exporter.toPayload.test.js +400 -0
  124. package/test/tracing/id.test.js +24 -0
  125. package/test/tracing/span.test.js +183 -0
  126. package/test/tracing/spanProcessor.test.js +73 -0
  127. package/test/tracing/tracing.test.js +105 -0
  128. package/test/transforms.test.js +2 -2
  129. package/test/truncation.test.js +2 -2
  130. package/test/utility.test.js +44 -6
  131. package/webpack.config.js +6 -44
  132. package/.eslintignore +0 -7
  133. package/test/server.lambda.test.js +0 -194
  134. package/test/server.locals.test.js +0 -1068
  135. package/test/server.parser.test.js +0 -78
  136. package/test/server.predicates.test.js +0 -91
  137. package/test/server.rollbar.test.js +0 -728
  138. package/test/server.telemetry.test.js +0 -443
  139. package/test/server.transforms.test.js +0 -1193
  140. 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 });