@sentry/browser 6.16.1 → 6.17.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 (111) hide show
  1. package/build/bundle.es6.js +1311 -1428
  2. package/build/bundle.es6.js.map +1 -1
  3. package/build/bundle.es6.min.js +2 -2
  4. package/build/bundle.es6.min.js.map +1 -1
  5. package/build/bundle.js +1350 -1483
  6. package/build/bundle.js.map +1 -1
  7. package/build/bundle.min.js +2 -2
  8. package/build/bundle.min.js.map +1 -1
  9. package/dist/eventbuilder.d.ts +2 -2
  10. package/dist/eventbuilder.d.ts.map +1 -1
  11. package/dist/eventbuilder.js +7 -7
  12. package/dist/eventbuilder.js.map +1 -1
  13. package/dist/exports.d.ts +1 -1
  14. package/dist/exports.d.ts.map +1 -1
  15. package/dist/exports.js +0 -1
  16. package/dist/exports.js.map +1 -1
  17. package/dist/helpers.d.ts.map +1 -1
  18. package/dist/helpers.js +26 -37
  19. package/dist/helpers.js.map +1 -1
  20. package/dist/integrations/breadcrumbs.d.ts +0 -20
  21. package/dist/integrations/breadcrumbs.d.ts.map +1 -1
  22. package/dist/integrations/breadcrumbs.js +132 -173
  23. package/dist/integrations/breadcrumbs.js.map +1 -1
  24. package/dist/integrations/dedupe.d.ts +0 -14
  25. package/dist/integrations/dedupe.d.ts.map +1 -1
  26. package/dist/integrations/dedupe.js +126 -126
  27. package/dist/integrations/dedupe.js.map +1 -1
  28. package/dist/integrations/globalhandlers.d.ts +7 -25
  29. package/dist/integrations/globalhandlers.d.ts.map +1 -1
  30. package/dist/integrations/globalhandlers.js +176 -168
  31. package/dist/integrations/globalhandlers.js.map +1 -1
  32. package/dist/integrations/linkederrors.d.ts +15 -13
  33. package/dist/integrations/linkederrors.d.ts.map +1 -1
  34. package/dist/integrations/linkederrors.js +26 -28
  35. package/dist/integrations/linkederrors.js.map +1 -1
  36. package/dist/integrations/trycatch.d.ts +0 -8
  37. package/dist/integrations/trycatch.d.ts.map +1 -1
  38. package/dist/integrations/trycatch.js +154 -153
  39. package/dist/integrations/trycatch.js.map +1 -1
  40. package/dist/integrations/useragent.js +2 -3
  41. package/dist/integrations/useragent.js.map +1 -1
  42. package/dist/sdk.d.ts.map +1 -1
  43. package/dist/sdk.js +23 -19
  44. package/dist/sdk.js.map +1 -1
  45. package/dist/transports/base.d.ts +9 -4
  46. package/dist/transports/base.d.ts.map +1 -1
  47. package/dist/transports/base.js +23 -19
  48. package/dist/transports/base.js.map +1 -1
  49. package/dist/transports/fetch.d.ts +2 -10
  50. package/dist/transports/fetch.d.ts.map +1 -1
  51. package/dist/transports/fetch.js +6 -20
  52. package/dist/transports/fetch.js.map +1 -1
  53. package/dist/transports/utils.d.ts.map +1 -1
  54. package/dist/transports/utils.js +7 -5
  55. package/dist/transports/utils.js.map +1 -1
  56. package/dist/transports/xhr.d.ts +2 -10
  57. package/dist/transports/xhr.d.ts.map +1 -1
  58. package/dist/transports/xhr.js +3 -17
  59. package/dist/transports/xhr.js.map +1 -1
  60. package/esm/eventbuilder.d.ts +2 -2
  61. package/esm/eventbuilder.d.ts.map +1 -1
  62. package/esm/eventbuilder.js +8 -8
  63. package/esm/eventbuilder.js.map +1 -1
  64. package/esm/exports.d.ts +1 -1
  65. package/esm/exports.d.ts.map +1 -1
  66. package/esm/exports.js +1 -1
  67. package/esm/exports.js.map +1 -1
  68. package/esm/helpers.d.ts.map +1 -1
  69. package/esm/helpers.js +28 -39
  70. package/esm/helpers.js.map +1 -1
  71. package/esm/integrations/breadcrumbs.d.ts +0 -20
  72. package/esm/integrations/breadcrumbs.d.ts.map +1 -1
  73. package/esm/integrations/breadcrumbs.js +134 -175
  74. package/esm/integrations/breadcrumbs.js.map +1 -1
  75. package/esm/integrations/dedupe.d.ts +0 -14
  76. package/esm/integrations/dedupe.d.ts.map +1 -1
  77. package/esm/integrations/dedupe.js +126 -126
  78. package/esm/integrations/dedupe.js.map +1 -1
  79. package/esm/integrations/globalhandlers.d.ts +7 -25
  80. package/esm/integrations/globalhandlers.d.ts.map +1 -1
  81. package/esm/integrations/globalhandlers.js +178 -170
  82. package/esm/integrations/globalhandlers.js.map +1 -1
  83. package/esm/integrations/linkederrors.d.ts +15 -13
  84. package/esm/integrations/linkederrors.d.ts.map +1 -1
  85. package/esm/integrations/linkederrors.js +24 -28
  86. package/esm/integrations/linkederrors.js.map +1 -1
  87. package/esm/integrations/trycatch.d.ts +0 -8
  88. package/esm/integrations/trycatch.d.ts.map +1 -1
  89. package/esm/integrations/trycatch.js +155 -154
  90. package/esm/integrations/trycatch.js.map +1 -1
  91. package/esm/integrations/useragent.js +2 -3
  92. package/esm/integrations/useragent.js.map +1 -1
  93. package/esm/sdk.d.ts.map +1 -1
  94. package/esm/sdk.js +24 -20
  95. package/esm/sdk.js.map +1 -1
  96. package/esm/transports/base.d.ts +9 -4
  97. package/esm/transports/base.d.ts.map +1 -1
  98. package/esm/transports/base.js +25 -21
  99. package/esm/transports/base.js.map +1 -1
  100. package/esm/transports/fetch.d.ts +2 -10
  101. package/esm/transports/fetch.d.ts.map +1 -1
  102. package/esm/transports/fetch.js +6 -20
  103. package/esm/transports/fetch.js.map +1 -1
  104. package/esm/transports/utils.d.ts.map +1 -1
  105. package/esm/transports/utils.js +8 -6
  106. package/esm/transports/utils.js.map +1 -1
  107. package/esm/transports/xhr.d.ts +2 -10
  108. package/esm/transports/xhr.d.ts.map +1 -1
  109. package/esm/transports/xhr.js +3 -17
  110. package/esm/transports/xhr.js.map +1 -1
  111. package/package.json +4 -5
@@ -14,10 +14,14 @@ var GlobalHandlers = /** @class */ (function () {
14
14
  * @inheritDoc
15
15
  */
16
16
  this.name = GlobalHandlers.id;
17
- /** JSDoc */
18
- this._onErrorHandlerInstalled = false;
19
- /** JSDoc */
20
- this._onUnhandledRejectionHandlerInstalled = false;
17
+ /**
18
+ * Stores references functions to installing handlers. Will set to undefined
19
+ * after they have been run so that they are not used twice.
20
+ */
21
+ this._installFunc = {
22
+ onerror: _installGlobalOnErrorHandler,
23
+ onunhandledrejection: _installGlobalOnUnhandledRejectionHandler,
24
+ };
21
25
  this._options = tslib_1.__assign({ onerror: true, onunhandledrejection: true }, options);
22
26
  }
23
27
  /**
@@ -25,178 +29,182 @@ var GlobalHandlers = /** @class */ (function () {
25
29
  */
26
30
  GlobalHandlers.prototype.setupOnce = function () {
27
31
  Error.stackTraceLimit = 50;
28
- if (this._options.onerror) {
29
- utils_1.logger.log('Global Handler attached: onerror');
30
- this._installGlobalOnErrorHandler();
31
- }
32
- if (this._options.onunhandledrejection) {
33
- utils_1.logger.log('Global Handler attached: onunhandledrejection');
34
- this._installGlobalOnUnhandledRejectionHandler();
32
+ var options = this._options;
33
+ // We can disable guard-for-in as we construct the options object above + do checks against
34
+ // `this._installFunc` for the property.
35
+ // eslint-disable-next-line guard-for-in
36
+ for (var key in options) {
37
+ var installFunc = this._installFunc[key];
38
+ if (installFunc && options[key]) {
39
+ globalHandlerLog(key);
40
+ installFunc();
41
+ this._installFunc[key] = undefined;
42
+ }
35
43
  }
36
44
  };
37
- /** JSDoc */
38
- GlobalHandlers.prototype._installGlobalOnErrorHandler = function () {
39
- var _this = this;
40
- if (this._onErrorHandlerInstalled) {
45
+ /**
46
+ * @inheritDoc
47
+ */
48
+ GlobalHandlers.id = 'GlobalHandlers';
49
+ return GlobalHandlers;
50
+ }());
51
+ exports.GlobalHandlers = GlobalHandlers;
52
+ /** JSDoc */
53
+ function _installGlobalOnErrorHandler() {
54
+ utils_1.addInstrumentationHandler('error',
55
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
56
+ function (data) {
57
+ var _a = tslib_1.__read(getHubAndAttachStacktrace(), 2), hub = _a[0], attachStacktrace = _a[1];
58
+ if (!hub.getIntegration(GlobalHandlers)) {
41
59
  return;
42
60
  }
43
- utils_1.addInstrumentationHandler({
44
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
45
- callback: function (data) {
46
- var error = data.error;
47
- var currentHub = core_1.getCurrentHub();
48
- var hasIntegration = currentHub.getIntegration(GlobalHandlers);
49
- var isFailedOwnDelivery = error && error.__sentry_own_request__ === true;
50
- if (!hasIntegration || helpers_1.shouldIgnoreOnError() || isFailedOwnDelivery) {
51
- return;
52
- }
53
- var client = currentHub.getClient();
54
- var event = error === undefined && utils_1.isString(data.msg)
55
- ? _this._eventFromIncompleteOnError(data.msg, data.url, data.line, data.column)
56
- : _this._enhanceEventWithInitialFrame(eventbuilder_1.eventFromUnknownInput(error || data.msg, undefined, {
57
- attachStacktrace: client && client.getOptions().attachStacktrace,
58
- rejection: false,
59
- }), data.url, data.line, data.column);
60
- utils_1.addExceptionMechanism(event, {
61
- handled: false,
62
- type: 'onerror',
63
- });
64
- currentHub.captureEvent(event, {
65
- originalException: error,
66
- });
67
- },
68
- type: 'error',
69
- });
70
- this._onErrorHandlerInstalled = true;
71
- };
72
- /** JSDoc */
73
- GlobalHandlers.prototype._installGlobalOnUnhandledRejectionHandler = function () {
74
- var _this = this;
75
- if (this._onUnhandledRejectionHandlerInstalled) {
61
+ var msg = data.msg, url = data.url, line = data.line, column = data.column, error = data.error;
62
+ if (helpers_1.shouldIgnoreOnError() || (error && error.__sentry_own_request__)) {
76
63
  return;
77
64
  }
78
- utils_1.addInstrumentationHandler({
79
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
80
- callback: function (e) {
81
- var error = e;
82
- // dig the object of the rejection out of known event types
83
- try {
84
- // PromiseRejectionEvents store the object of the rejection under 'reason'
85
- // see https://developer.mozilla.org/en-US/docs/Web/API/PromiseRejectionEvent
86
- if ('reason' in e) {
87
- error = e.reason;
88
- }
89
- // something, somewhere, (likely a browser extension) effectively casts PromiseRejectionEvents
90
- // to CustomEvents, moving the `promise` and `reason` attributes of the PRE into
91
- // the CustomEvent's `detail` attribute, since they're not part of CustomEvent's spec
92
- // see https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent and
93
- // https://github.com/getsentry/sentry-javascript/issues/2380
94
- else if ('detail' in e && 'reason' in e.detail) {
95
- error = e.detail.reason;
96
- }
97
- }
98
- catch (_oO) {
99
- // no-empty
100
- }
101
- var currentHub = core_1.getCurrentHub();
102
- var hasIntegration = currentHub.getIntegration(GlobalHandlers);
103
- var isFailedOwnDelivery = error && error.__sentry_own_request__ === true;
104
- if (!hasIntegration || helpers_1.shouldIgnoreOnError() || isFailedOwnDelivery) {
105
- return true;
106
- }
107
- var client = currentHub.getClient();
108
- var event = utils_1.isPrimitive(error)
109
- ? _this._eventFromRejectionWithPrimitive(error)
110
- : eventbuilder_1.eventFromUnknownInput(error, undefined, {
111
- attachStacktrace: client && client.getOptions().attachStacktrace,
112
- rejection: true,
113
- });
114
- event.level = types_1.Severity.Error;
115
- utils_1.addExceptionMechanism(event, {
116
- handled: false,
117
- type: 'onunhandledrejection',
118
- });
119
- currentHub.captureEvent(event, {
120
- originalException: error,
121
- });
122
- return;
123
- },
124
- type: 'unhandledrejection',
125
- });
126
- this._onUnhandledRejectionHandlerInstalled = true;
127
- };
128
- /**
129
- * This function creates a stack from an old, error-less onerror handler.
130
- */
65
+ var event = error === undefined && utils_1.isString(msg)
66
+ ? _eventFromIncompleteOnError(msg, url, line, column)
67
+ : _enhanceEventWithInitialFrame(eventbuilder_1.eventFromUnknownInput(error || msg, undefined, {
68
+ attachStacktrace: attachStacktrace,
69
+ isRejection: false,
70
+ }), url, line, column);
71
+ addMechanismAndCapture(hub, error, event, 'onerror');
72
+ });
73
+ }
74
+ /** JSDoc */
75
+ function _installGlobalOnUnhandledRejectionHandler() {
76
+ utils_1.addInstrumentationHandler('unhandledrejection',
131
77
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
132
- GlobalHandlers.prototype._eventFromIncompleteOnError = function (msg, url, line, column) {
133
- var ERROR_TYPES_RE = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;
134
- // If 'message' is ErrorEvent, get real message from inside
135
- var message = utils_1.isErrorEvent(msg) ? msg.message : msg;
136
- var name;
137
- var groups = message.match(ERROR_TYPES_RE);
138
- if (groups) {
139
- name = groups[1];
140
- message = groups[2];
78
+ function (e) {
79
+ var _a = tslib_1.__read(getHubAndAttachStacktrace(), 2), hub = _a[0], attachStacktrace = _a[1];
80
+ if (!hub.getIntegration(GlobalHandlers)) {
81
+ return;
141
82
  }
142
- var event = {
143
- exception: {
144
- values: [
145
- {
146
- type: name || 'Error',
147
- value: message,
148
- },
149
- ],
150
- },
151
- };
152
- return this._enhanceEventWithInitialFrame(event, url, line, column);
153
- };
154
- /**
155
- * Create an event from a promise rejection where the `reason` is a primitive.
156
- *
157
- * @param reason: The `reason` property of the promise rejection
158
- * @returns An Event object with an appropriate `exception` value
159
- */
160
- GlobalHandlers.prototype._eventFromRejectionWithPrimitive = function (reason) {
161
- return {
162
- exception: {
163
- values: [
164
- {
165
- type: 'UnhandledRejection',
166
- // String() is needed because the Primitive type includes symbols (which can't be automatically stringified)
167
- value: "Non-Error promise rejection captured with value: " + String(reason),
168
- },
169
- ],
170
- },
171
- };
172
- };
173
- /** JSDoc */
174
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
175
- GlobalHandlers.prototype._enhanceEventWithInitialFrame = function (event, url, line, column) {
176
- event.exception = event.exception || {};
177
- event.exception.values = event.exception.values || [];
178
- event.exception.values[0] = event.exception.values[0] || {};
179
- event.exception.values[0].stacktrace = event.exception.values[0].stacktrace || {};
180
- event.exception.values[0].stacktrace.frames = event.exception.values[0].stacktrace.frames || [];
181
- var colno = isNaN(parseInt(column, 10)) ? undefined : column;
182
- var lineno = isNaN(parseInt(line, 10)) ? undefined : line;
183
- var filename = utils_1.isString(url) && url.length > 0 ? url : utils_1.getLocationHref();
184
- if (event.exception.values[0].stacktrace.frames.length === 0) {
185
- event.exception.values[0].stacktrace.frames.push({
186
- colno: colno,
187
- filename: filename,
188
- function: '?',
189
- in_app: true,
190
- lineno: lineno,
191
- });
83
+ var error = e;
84
+ // dig the object of the rejection out of known event types
85
+ try {
86
+ // PromiseRejectionEvents store the object of the rejection under 'reason'
87
+ // see https://developer.mozilla.org/en-US/docs/Web/API/PromiseRejectionEvent
88
+ if ('reason' in e) {
89
+ error = e.reason;
90
+ }
91
+ // something, somewhere, (likely a browser extension) effectively casts PromiseRejectionEvents
92
+ // to CustomEvents, moving the `promise` and `reason` attributes of the PRE into
93
+ // the CustomEvent's `detail` attribute, since they're not part of CustomEvent's spec
94
+ // see https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent and
95
+ // https://github.com/getsentry/sentry-javascript/issues/2380
96
+ else if ('detail' in e && 'reason' in e.detail) {
97
+ error = e.detail.reason;
98
+ }
99
+ }
100
+ catch (_oO) {
101
+ // no-empty
102
+ }
103
+ if (helpers_1.shouldIgnoreOnError() || (error && error.__sentry_own_request__)) {
104
+ return true;
192
105
  }
193
- return event;
106
+ var event = utils_1.isPrimitive(error)
107
+ ? _eventFromRejectionWithPrimitive(error)
108
+ : eventbuilder_1.eventFromUnknownInput(error, undefined, {
109
+ attachStacktrace: attachStacktrace,
110
+ isRejection: true,
111
+ });
112
+ event.level = types_1.Severity.Error;
113
+ addMechanismAndCapture(hub, error, event, 'onunhandledrejection');
114
+ return;
115
+ });
116
+ }
117
+ /**
118
+ * Create an event from a promise rejection where the `reason` is a primitive.
119
+ *
120
+ * @param reason: The `reason` property of the promise rejection
121
+ * @returns An Event object with an appropriate `exception` value
122
+ */
123
+ function _eventFromRejectionWithPrimitive(reason) {
124
+ return {
125
+ exception: {
126
+ values: [
127
+ {
128
+ type: 'UnhandledRejection',
129
+ // String() is needed because the Primitive type includes symbols (which can't be automatically stringified)
130
+ value: "Non-Error promise rejection captured with value: " + String(reason),
131
+ },
132
+ ],
133
+ },
194
134
  };
195
- /**
196
- * @inheritDoc
197
- */
198
- GlobalHandlers.id = 'GlobalHandlers';
199
- return GlobalHandlers;
200
- }());
201
- exports.GlobalHandlers = GlobalHandlers;
135
+ }
136
+ /**
137
+ * This function creates a stack from an old, error-less onerror handler.
138
+ */
139
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
140
+ function _eventFromIncompleteOnError(msg, url, line, column) {
141
+ var ERROR_TYPES_RE = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;
142
+ // If 'message' is ErrorEvent, get real message from inside
143
+ var message = utils_1.isErrorEvent(msg) ? msg.message : msg;
144
+ var name = 'Error';
145
+ var groups = message.match(ERROR_TYPES_RE);
146
+ if (groups) {
147
+ name = groups[1];
148
+ message = groups[2];
149
+ }
150
+ var event = {
151
+ exception: {
152
+ values: [
153
+ {
154
+ type: name,
155
+ value: message,
156
+ },
157
+ ],
158
+ },
159
+ };
160
+ return _enhanceEventWithInitialFrame(event, url, line, column);
161
+ }
162
+ /** JSDoc */
163
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
164
+ function _enhanceEventWithInitialFrame(event, url, line, column) {
165
+ // event.exception
166
+ var e = (event.exception = event.exception || {});
167
+ // event.exception.values
168
+ var ev = (e.values = e.values || []);
169
+ // event.exception.values[0]
170
+ var ev0 = (ev[0] = ev[0] || {});
171
+ // event.exception.values[0].stacktrace
172
+ var ev0s = (ev0.stacktrace = ev0.stacktrace || {});
173
+ // event.exception.values[0].stacktrace.frames
174
+ var ev0sf = (ev0s.frames = ev0s.frames || []);
175
+ var colno = isNaN(parseInt(column, 10)) ? undefined : column;
176
+ var lineno = isNaN(parseInt(line, 10)) ? undefined : line;
177
+ var filename = utils_1.isString(url) && url.length > 0 ? url : utils_1.getLocationHref();
178
+ // event.exception.values[0].stacktrace.frames
179
+ if (ev0sf.length === 0) {
180
+ ev0sf.push({
181
+ colno: colno,
182
+ filename: filename,
183
+ function: '?',
184
+ in_app: true,
185
+ lineno: lineno,
186
+ });
187
+ }
188
+ return event;
189
+ }
190
+ function globalHandlerLog(type) {
191
+ if (utils_1.isDebugBuild()) {
192
+ utils_1.logger.log("Global Handler attached: " + type);
193
+ }
194
+ }
195
+ function addMechanismAndCapture(hub, error, event, type) {
196
+ utils_1.addExceptionMechanism(event, {
197
+ handled: false,
198
+ type: type,
199
+ });
200
+ hub.captureEvent(event, {
201
+ originalException: error,
202
+ });
203
+ }
204
+ function getHubAndAttachStacktrace() {
205
+ var hub = core_1.getCurrentHub();
206
+ var client = hub.getClient();
207
+ var attachStacktrace = client && client.getOptions().attachStacktrace;
208
+ return [hub, attachStacktrace];
209
+ }
202
210
  //# sourceMappingURL=globalhandlers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"globalhandlers.js","sourceRoot":"","sources":["../../src/integrations/globalhandlers.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport { getCurrentHub } from '@sentry/core';\nimport { Event, Integration, Primitive, Severity } from '@sentry/types';\nimport {\n addExceptionMechanism,\n addInstrumentationHandler,\n getLocationHref,\n isErrorEvent,\n isPrimitive,\n isString,\n logger,\n} from '@sentry/utils';\n\nimport { eventFromUnknownInput } from '../eventbuilder';\nimport { shouldIgnoreOnError } from '../helpers';\n\n/** JSDoc */\ninterface GlobalHandlersIntegrations {\n onerror: boolean;\n onunhandledrejection: boolean;\n}\n\n/** Global handlers */\nexport class GlobalHandlers implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'GlobalHandlers';\n\n /**\n * @inheritDoc\n */\n public name: string = GlobalHandlers.id;\n\n /** JSDoc */\n private readonly _options: GlobalHandlersIntegrations;\n\n /** JSDoc */\n private _onErrorHandlerInstalled: boolean = false;\n\n /** JSDoc */\n private _onUnhandledRejectionHandlerInstalled: boolean = false;\n\n /** JSDoc */\n public constructor(options?: GlobalHandlersIntegrations) {\n this._options = {\n onerror: true,\n onunhandledrejection: true,\n ...options,\n };\n }\n /**\n * @inheritDoc\n */\n public setupOnce(): void {\n Error.stackTraceLimit = 50;\n\n if (this._options.onerror) {\n logger.log('Global Handler attached: onerror');\n this._installGlobalOnErrorHandler();\n }\n\n if (this._options.onunhandledrejection) {\n logger.log('Global Handler attached: onunhandledrejection');\n this._installGlobalOnUnhandledRejectionHandler();\n }\n }\n\n /** JSDoc */\n private _installGlobalOnErrorHandler(): void {\n if (this._onErrorHandlerInstalled) {\n return;\n }\n\n addInstrumentationHandler({\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n callback: (data: { msg: any; url: any; line: any; column: any; error: any }) => {\n const error = data.error;\n const currentHub = getCurrentHub();\n const hasIntegration = currentHub.getIntegration(GlobalHandlers);\n const isFailedOwnDelivery = error && error.__sentry_own_request__ === true;\n\n if (!hasIntegration || shouldIgnoreOnError() || isFailedOwnDelivery) {\n return;\n }\n\n const client = currentHub.getClient();\n const event =\n error === undefined && isString(data.msg)\n ? this._eventFromIncompleteOnError(data.msg, data.url, data.line, data.column)\n : this._enhanceEventWithInitialFrame(\n eventFromUnknownInput(error || data.msg, undefined, {\n attachStacktrace: client && client.getOptions().attachStacktrace,\n rejection: false,\n }),\n data.url,\n data.line,\n data.column,\n );\n\n addExceptionMechanism(event, {\n handled: false,\n type: 'onerror',\n });\n\n currentHub.captureEvent(event, {\n originalException: error,\n });\n },\n type: 'error',\n });\n\n this._onErrorHandlerInstalled = true;\n }\n\n /** JSDoc */\n private _installGlobalOnUnhandledRejectionHandler(): void {\n if (this._onUnhandledRejectionHandlerInstalled) {\n return;\n }\n\n addInstrumentationHandler({\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n callback: (e: any) => {\n let error = e;\n\n // dig the object of the rejection out of known event types\n try {\n // PromiseRejectionEvents store the object of the rejection under 'reason'\n // see https://developer.mozilla.org/en-US/docs/Web/API/PromiseRejectionEvent\n if ('reason' in e) {\n error = e.reason;\n }\n // something, somewhere, (likely a browser extension) effectively casts PromiseRejectionEvents\n // to CustomEvents, moving the `promise` and `reason` attributes of the PRE into\n // the CustomEvent's `detail` attribute, since they're not part of CustomEvent's spec\n // see https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent and\n // https://github.com/getsentry/sentry-javascript/issues/2380\n else if ('detail' in e && 'reason' in e.detail) {\n error = e.detail.reason;\n }\n } catch (_oO) {\n // no-empty\n }\n\n const currentHub = getCurrentHub();\n const hasIntegration = currentHub.getIntegration(GlobalHandlers);\n const isFailedOwnDelivery = error && error.__sentry_own_request__ === true;\n\n if (!hasIntegration || shouldIgnoreOnError() || isFailedOwnDelivery) {\n return true;\n }\n\n const client = currentHub.getClient();\n const event = isPrimitive(error)\n ? this._eventFromRejectionWithPrimitive(error)\n : eventFromUnknownInput(error, undefined, {\n attachStacktrace: client && client.getOptions().attachStacktrace,\n rejection: true,\n });\n\n event.level = Severity.Error;\n\n addExceptionMechanism(event, {\n handled: false,\n type: 'onunhandledrejection',\n });\n\n currentHub.captureEvent(event, {\n originalException: error,\n });\n\n return;\n },\n type: 'unhandledrejection',\n });\n\n this._onUnhandledRejectionHandlerInstalled = true;\n }\n\n /**\n * This function creates a stack from an old, error-less onerror handler.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _eventFromIncompleteOnError(msg: any, url: any, line: any, column: any): Event {\n const ERROR_TYPES_RE = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;\n\n // If 'message' is ErrorEvent, get real message from inside\n let message = isErrorEvent(msg) ? msg.message : msg;\n let name;\n\n const groups = message.match(ERROR_TYPES_RE);\n if (groups) {\n name = groups[1];\n message = groups[2];\n }\n\n const event = {\n exception: {\n values: [\n {\n type: name || 'Error',\n value: message,\n },\n ],\n },\n };\n\n return this._enhanceEventWithInitialFrame(event, url, line, column);\n }\n\n /**\n * Create an event from a promise rejection where the `reason` is a primitive.\n *\n * @param reason: The `reason` property of the promise rejection\n * @returns An Event object with an appropriate `exception` value\n */\n private _eventFromRejectionWithPrimitive(reason: Primitive): Event {\n return {\n exception: {\n values: [\n {\n type: 'UnhandledRejection',\n // String() is needed because the Primitive type includes symbols (which can't be automatically stringified)\n value: `Non-Error promise rejection captured with value: ${String(reason)}`,\n },\n ],\n },\n };\n }\n\n /** JSDoc */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _enhanceEventWithInitialFrame(event: Event, url: any, line: any, column: any): Event {\n event.exception = event.exception || {};\n event.exception.values = event.exception.values || [];\n event.exception.values[0] = event.exception.values[0] || {};\n event.exception.values[0].stacktrace = event.exception.values[0].stacktrace || {};\n event.exception.values[0].stacktrace.frames = event.exception.values[0].stacktrace.frames || [];\n\n const colno = isNaN(parseInt(column, 10)) ? undefined : column;\n const lineno = isNaN(parseInt(line, 10)) ? undefined : line;\n const filename = isString(url) && url.length > 0 ? url : getLocationHref();\n\n if (event.exception.values[0].stacktrace.frames.length === 0) {\n event.exception.values[0].stacktrace.frames.push({\n colno,\n filename,\n function: '?',\n in_app: true,\n lineno,\n });\n }\n\n return event;\n }\n}\n"]}
1
+ {"version":3,"file":"globalhandlers.js","sourceRoot":"","sources":["../../src/integrations/globalhandlers.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport { getCurrentHub } from '@sentry/core';\nimport { Event, EventHint, Hub, Integration, Primitive, Severity } from '@sentry/types';\nimport {\n addExceptionMechanism,\n addInstrumentationHandler,\n getLocationHref,\n isDebugBuild,\n isErrorEvent,\n isPrimitive,\n isString,\n logger,\n} from '@sentry/utils';\n\nimport { eventFromUnknownInput } from '../eventbuilder';\nimport { shouldIgnoreOnError } from '../helpers';\n\ntype GlobalHandlersIntegrationsOptionKeys = 'onerror' | 'onunhandledrejection';\n\n/** JSDoc */\ntype GlobalHandlersIntegrations = Record<GlobalHandlersIntegrationsOptionKeys, boolean>;\n\n/** Global handlers */\nexport class GlobalHandlers implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'GlobalHandlers';\n\n /**\n * @inheritDoc\n */\n public name: string = GlobalHandlers.id;\n\n /** JSDoc */\n private readonly _options: GlobalHandlersIntegrations;\n\n /**\n * Stores references functions to installing handlers. Will set to undefined\n * after they have been run so that they are not used twice.\n */\n private _installFunc: Record<GlobalHandlersIntegrationsOptionKeys, (() => void) | undefined> = {\n onerror: _installGlobalOnErrorHandler,\n onunhandledrejection: _installGlobalOnUnhandledRejectionHandler,\n };\n\n /** JSDoc */\n public constructor(options?: GlobalHandlersIntegrations) {\n this._options = {\n onerror: true,\n onunhandledrejection: true,\n ...options,\n };\n }\n /**\n * @inheritDoc\n */\n public setupOnce(): void {\n Error.stackTraceLimit = 50;\n const options = this._options;\n\n // We can disable guard-for-in as we construct the options object above + do checks against\n // `this._installFunc` for the property.\n // eslint-disable-next-line guard-for-in\n for (const key in options) {\n const installFunc = this._installFunc[key as GlobalHandlersIntegrationsOptionKeys];\n if (installFunc && options[key as GlobalHandlersIntegrationsOptionKeys]) {\n globalHandlerLog(key);\n installFunc();\n this._installFunc[key as GlobalHandlersIntegrationsOptionKeys] = undefined;\n }\n }\n }\n}\n\n/** JSDoc */\nfunction _installGlobalOnErrorHandler(): void {\n addInstrumentationHandler(\n 'error',\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (data: { msg: any; url: any; line: any; column: any; error: any }) => {\n const [hub, attachStacktrace] = getHubAndAttachStacktrace();\n if (!hub.getIntegration(GlobalHandlers)) {\n return;\n }\n const { msg, url, line, column, error } = data;\n if (shouldIgnoreOnError() || (error && error.__sentry_own_request__)) {\n return;\n }\n\n const event =\n error === undefined && isString(msg)\n ? _eventFromIncompleteOnError(msg, url, line, column)\n : _enhanceEventWithInitialFrame(\n eventFromUnknownInput(error || msg, undefined, {\n attachStacktrace,\n isRejection: false,\n }),\n url,\n line,\n column,\n );\n\n addMechanismAndCapture(hub, error, event, 'onerror');\n },\n );\n}\n\n/** JSDoc */\nfunction _installGlobalOnUnhandledRejectionHandler(): void {\n addInstrumentationHandler(\n 'unhandledrejection',\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (e: any) => {\n const [hub, attachStacktrace] = getHubAndAttachStacktrace();\n if (!hub.getIntegration(GlobalHandlers)) {\n return;\n }\n let error = e;\n\n // dig the object of the rejection out of known event types\n try {\n // PromiseRejectionEvents store the object of the rejection under 'reason'\n // see https://developer.mozilla.org/en-US/docs/Web/API/PromiseRejectionEvent\n if ('reason' in e) {\n error = e.reason;\n }\n // something, somewhere, (likely a browser extension) effectively casts PromiseRejectionEvents\n // to CustomEvents, moving the `promise` and `reason` attributes of the PRE into\n // the CustomEvent's `detail` attribute, since they're not part of CustomEvent's spec\n // see https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent and\n // https://github.com/getsentry/sentry-javascript/issues/2380\n else if ('detail' in e && 'reason' in e.detail) {\n error = e.detail.reason;\n }\n } catch (_oO) {\n // no-empty\n }\n\n if (shouldIgnoreOnError() || (error && error.__sentry_own_request__)) {\n return true;\n }\n\n const event = isPrimitive(error)\n ? _eventFromRejectionWithPrimitive(error)\n : eventFromUnknownInput(error, undefined, {\n attachStacktrace,\n isRejection: true,\n });\n\n event.level = Severity.Error;\n\n addMechanismAndCapture(hub, error, event, 'onunhandledrejection');\n return;\n },\n );\n}\n\n/**\n * Create an event from a promise rejection where the `reason` is a primitive.\n *\n * @param reason: The `reason` property of the promise rejection\n * @returns An Event object with an appropriate `exception` value\n */\nfunction _eventFromRejectionWithPrimitive(reason: Primitive): Event {\n return {\n exception: {\n values: [\n {\n type: 'UnhandledRejection',\n // String() is needed because the Primitive type includes symbols (which can't be automatically stringified)\n value: `Non-Error promise rejection captured with value: ${String(reason)}`,\n },\n ],\n },\n };\n}\n\n/**\n * This function creates a stack from an old, error-less onerror handler.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _eventFromIncompleteOnError(msg: any, url: any, line: any, column: any): Event {\n const ERROR_TYPES_RE = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;\n\n // If 'message' is ErrorEvent, get real message from inside\n let message = isErrorEvent(msg) ? msg.message : msg;\n let name = 'Error';\n\n const groups = message.match(ERROR_TYPES_RE);\n if (groups) {\n name = groups[1];\n message = groups[2];\n }\n\n const event = {\n exception: {\n values: [\n {\n type: name,\n value: message,\n },\n ],\n },\n };\n\n return _enhanceEventWithInitialFrame(event, url, line, column);\n}\n\n/** JSDoc */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _enhanceEventWithInitialFrame(event: Event, url: any, line: any, column: any): Event {\n // event.exception\n const e = (event.exception = event.exception || {});\n // event.exception.values\n const ev = (e.values = e.values || []);\n // event.exception.values[0]\n const ev0 = (ev[0] = ev[0] || {});\n // event.exception.values[0].stacktrace\n const ev0s = (ev0.stacktrace = ev0.stacktrace || {});\n // event.exception.values[0].stacktrace.frames\n const ev0sf = (ev0s.frames = ev0s.frames || []);\n\n const colno = isNaN(parseInt(column, 10)) ? undefined : column;\n const lineno = isNaN(parseInt(line, 10)) ? undefined : line;\n const filename = isString(url) && url.length > 0 ? url : getLocationHref();\n\n // event.exception.values[0].stacktrace.frames\n if (ev0sf.length === 0) {\n ev0sf.push({\n colno,\n filename,\n function: '?',\n in_app: true,\n lineno,\n });\n }\n\n return event;\n}\n\nfunction globalHandlerLog(type: string): void {\n if (isDebugBuild()) {\n logger.log(`Global Handler attached: ${type}`);\n }\n}\n\nfunction addMechanismAndCapture(hub: Hub, error: EventHint['originalException'], event: Event, type: string): void {\n addExceptionMechanism(event, {\n handled: false,\n type,\n });\n hub.captureEvent(event, {\n originalException: error,\n });\n}\n\nfunction getHubAndAttachStacktrace(): [Hub, boolean | undefined] {\n const hub = getCurrentHub();\n const client = hub.getClient();\n const attachStacktrace = client && client.getOptions().attachStacktrace;\n return [hub, attachStacktrace];\n}\n"]}
@@ -1,4 +1,8 @@
1
- import { Integration } from '@sentry/types';
1
+ import { Event, EventHint, Exception, ExtendedError, Integration } from '@sentry/types';
2
+ interface LinkedErrorsOptions {
3
+ key: string;
4
+ limit: number;
5
+ }
2
6
  /** Adds SDK info to an event. */
3
7
  export declare class LinkedErrors implements Integration {
4
8
  /**
@@ -20,21 +24,19 @@ export declare class LinkedErrors implements Integration {
20
24
  /**
21
25
  * @inheritDoc
22
26
  */
23
- constructor(options?: {
24
- key?: string;
25
- limit?: number;
26
- });
27
+ constructor(options?: Partial<LinkedErrorsOptions>);
27
28
  /**
28
29
  * @inheritDoc
29
30
  */
30
31
  setupOnce(): void;
31
- /**
32
- * @inheritDoc
33
- */
34
- private _handler;
35
- /**
36
- * @inheritDoc
37
- */
38
- private _walkErrorTree;
39
32
  }
33
+ /**
34
+ * @inheritDoc
35
+ */
36
+ export declare function _handler(key: string, limit: number, event: Event, hint?: EventHint): Event | null;
37
+ /**
38
+ * JSDOC
39
+ */
40
+ export declare function _walkErrorTree(limit: number, error: ExtendedError, key: string, stack?: Exception[]): Exception[];
41
+ export {};
40
42
  //# sourceMappingURL=linkederrors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"linkederrors.d.ts","sourceRoot":"","sources":["../../src/integrations/linkederrors.ts"],"names":[],"mappings":"AACA,OAAO,EAA8C,WAAW,EAAE,MAAM,eAAe,CAAC;AASxF,iCAAiC;AACjC,qBAAa,YAAa,YAAW,WAAW;IAC9C;;OAEG;IACH,OAAc,EAAE,EAAE,MAAM,CAAkB;IAE1C;;OAEG;IACH,SAAgB,IAAI,EAAE,MAAM,CAAmB;IAE/C;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAE9B;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAEhC;;OAEG;gBACgB,OAAO,GAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO;IAKjE;;OAEG;IACI,SAAS,IAAI,IAAI;IAWxB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAShB;;OAEG;IACH,OAAO,CAAC,cAAc;CAQvB"}
1
+ {"version":3,"file":"linkederrors.d.ts","sourceRoot":"","sources":["../../src/integrations/linkederrors.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AASxF,UAAU,mBAAmB;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED,iCAAiC;AACjC,qBAAa,YAAa,YAAW,WAAW;IAC9C;;OAEG;IACH,OAAc,EAAE,EAAE,MAAM,CAAkB;IAE1C;;OAEG;IACH,SAAgB,IAAI,EAAE,MAAM,CAAmB;IAE/C;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA6B;IAElD;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA+B;IAEtD;;OAEG;gBACgB,OAAO,GAAE,OAAO,CAAC,mBAAmB,CAAM;IAK7D;;OAEG;IACI,SAAS,IAAI,IAAI;CAMzB;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,KAAK,GAAG,IAAI,CAOjG;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,GAAE,SAAS,EAAO,GAAG,SAAS,EAAE,CAOrH"}
@@ -26,36 +26,9 @@ var LinkedErrors = /** @class */ (function () {
26
26
  LinkedErrors.prototype.setupOnce = function () {
27
27
  core_1.addGlobalEventProcessor(function (event, hint) {
28
28
  var self = core_1.getCurrentHub().getIntegration(LinkedErrors);
29
- if (self) {
30
- var handler = self._handler && self._handler.bind(self);
31
- return typeof handler === 'function' ? handler(event, hint) : event;
32
- }
33
- return event;
29
+ return self ? _handler(self._key, self._limit, event, hint) : event;
34
30
  });
35
31
  };
36
- /**
37
- * @inheritDoc
38
- */
39
- LinkedErrors.prototype._handler = function (event, hint) {
40
- if (!event.exception || !event.exception.values || !hint || !utils_1.isInstanceOf(hint.originalException, Error)) {
41
- return event;
42
- }
43
- var linkedErrors = this._walkErrorTree(hint.originalException, this._key);
44
- event.exception.values = tslib_1.__spread(linkedErrors, event.exception.values);
45
- return event;
46
- };
47
- /**
48
- * @inheritDoc
49
- */
50
- LinkedErrors.prototype._walkErrorTree = function (error, key, stack) {
51
- if (stack === void 0) { stack = []; }
52
- if (!utils_1.isInstanceOf(error[key], Error) || stack.length + 1 >= this._limit) {
53
- return stack;
54
- }
55
- var stacktrace = tracekit_1.computeStackTrace(error[key]);
56
- var exception = parsers_1.exceptionFromStacktrace(stacktrace);
57
- return this._walkErrorTree(error[key], key, tslib_1.__spread([exception], stack));
58
- };
59
32
  /**
60
33
  * @inheritDoc
61
34
  */
@@ -63,4 +36,29 @@ var LinkedErrors = /** @class */ (function () {
63
36
  return LinkedErrors;
64
37
  }());
65
38
  exports.LinkedErrors = LinkedErrors;
39
+ /**
40
+ * @inheritDoc
41
+ */
42
+ function _handler(key, limit, event, hint) {
43
+ if (!event.exception || !event.exception.values || !hint || !utils_1.isInstanceOf(hint.originalException, Error)) {
44
+ return event;
45
+ }
46
+ var linkedErrors = _walkErrorTree(limit, hint.originalException, key);
47
+ event.exception.values = tslib_1.__spread(linkedErrors, event.exception.values);
48
+ return event;
49
+ }
50
+ exports._handler = _handler;
51
+ /**
52
+ * JSDOC
53
+ */
54
+ function _walkErrorTree(limit, error, key, stack) {
55
+ if (stack === void 0) { stack = []; }
56
+ if (!utils_1.isInstanceOf(error[key], Error) || stack.length + 1 >= limit) {
57
+ return stack;
58
+ }
59
+ var stacktrace = tracekit_1.computeStackTrace(error[key]);
60
+ var exception = parsers_1.exceptionFromStacktrace(stacktrace);
61
+ return _walkErrorTree(limit, error[key], key, tslib_1.__spread([exception], stack));
62
+ }
63
+ exports._walkErrorTree = _walkErrorTree;
66
64
  //# sourceMappingURL=linkederrors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"linkederrors.js","sourceRoot":"","sources":["../../src/integrations/linkederrors.ts"],"names":[],"mappings":";;AAAA,qCAAsE;AAEtE,uCAA6C;AAE7C,sCAAqD;AACrD,wCAAgD;AAEhD,IAAM,WAAW,GAAG,OAAO,CAAC;AAC5B,IAAM,aAAa,GAAG,CAAC,CAAC;AAExB,iCAAiC;AACjC;IAqBE;;OAEG;IACH,sBAAmB,OAA8C;QAA9C,wBAAA,EAAA,YAA8C;QAlBjE;;WAEG;QACa,SAAI,GAAW,YAAY,CAAC,EAAE,CAAC;QAgB7C,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,GAAG,IAAI,WAAW,CAAC;QACvC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,IAAI,aAAa,CAAC;IAC/C,CAAC;IAED;;OAEG;IACI,gCAAS,GAAhB;QACE,8BAAuB,CAAC,UAAC,KAAY,EAAE,IAAgB;YACrD,IAAM,IAAI,GAAG,oBAAa,EAAE,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;YAC1D,IAAI,IAAI,EAAE;gBACR,IAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC1D,OAAO,OAAO,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;aACrE;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,+BAAQ,GAAhB,UAAiB,KAAY,EAAE,IAAgB;QAC7C,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,oBAAY,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,EAAE;YACxG,OAAO,KAAK,CAAC;SACd;QACD,IAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAkC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7F,KAAK,CAAC,SAAS,CAAC,MAAM,oBAAO,YAAY,EAAK,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACtE,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACK,qCAAc,GAAtB,UAAuB,KAAoB,EAAE,GAAW,EAAE,KAAuB;QAAvB,sBAAA,EAAA,UAAuB;QAC/E,IAAI,CAAC,oBAAY,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE;YACvE,OAAO,KAAK,CAAC;SACd;QACD,IAAM,UAAU,GAAG,4BAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QACjD,IAAM,SAAS,GAAG,iCAAuB,CAAC,UAAU,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,oBAAG,SAAS,GAAK,KAAK,EAAE,CAAC;IACrE,CAAC;IAhED;;OAEG;IACW,eAAE,GAAW,cAAc,CAAC;IA8D5C,mBAAC;CAAA,AAlED,IAkEC;AAlEY,oCAAY","sourcesContent":["import { addGlobalEventProcessor, getCurrentHub } from '@sentry/core';\nimport { Event, EventHint, Exception, ExtendedError, Integration } from '@sentry/types';\nimport { isInstanceOf } from '@sentry/utils';\n\nimport { exceptionFromStacktrace } from '../parsers';\nimport { computeStackTrace } from '../tracekit';\n\nconst DEFAULT_KEY = 'cause';\nconst DEFAULT_LIMIT = 5;\n\n/** Adds SDK info to an event. */\nexport class LinkedErrors implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'LinkedErrors';\n\n /**\n * @inheritDoc\n */\n public readonly name: string = LinkedErrors.id;\n\n /**\n * @inheritDoc\n */\n private readonly _key: string;\n\n /**\n * @inheritDoc\n */\n private readonly _limit: number;\n\n /**\n * @inheritDoc\n */\n public constructor(options: { key?: string; limit?: number } = {}) {\n this._key = options.key || DEFAULT_KEY;\n this._limit = options.limit || DEFAULT_LIMIT;\n }\n\n /**\n * @inheritDoc\n */\n public setupOnce(): void {\n addGlobalEventProcessor((event: Event, hint?: EventHint) => {\n const self = getCurrentHub().getIntegration(LinkedErrors);\n if (self) {\n const handler = self._handler && self._handler.bind(self);\n return typeof handler === 'function' ? handler(event, hint) : event;\n }\n return event;\n });\n }\n\n /**\n * @inheritDoc\n */\n private _handler(event: Event, hint?: EventHint): Event | null {\n if (!event.exception || !event.exception.values || !hint || !isInstanceOf(hint.originalException, Error)) {\n return event;\n }\n const linkedErrors = this._walkErrorTree(hint.originalException as ExtendedError, this._key);\n event.exception.values = [...linkedErrors, ...event.exception.values];\n return event;\n }\n\n /**\n * @inheritDoc\n */\n private _walkErrorTree(error: ExtendedError, key: string, stack: Exception[] = []): Exception[] {\n if (!isInstanceOf(error[key], Error) || stack.length + 1 >= this._limit) {\n return stack;\n }\n const stacktrace = computeStackTrace(error[key]);\n const exception = exceptionFromStacktrace(stacktrace);\n return this._walkErrorTree(error[key], key, [exception, ...stack]);\n }\n}\n"]}
1
+ {"version":3,"file":"linkederrors.js","sourceRoot":"","sources":["../../src/integrations/linkederrors.ts"],"names":[],"mappings":";;AAAA,qCAAsE;AAEtE,uCAA6C;AAE7C,sCAAqD;AACrD,wCAAgD;AAEhD,IAAM,WAAW,GAAG,OAAO,CAAC;AAC5B,IAAM,aAAa,GAAG,CAAC,CAAC;AAOxB,iCAAiC;AACjC;IAqBE;;OAEG;IACH,sBAAmB,OAA0C;QAA1C,wBAAA,EAAA,YAA0C;QAlB7D;;WAEG;QACa,SAAI,GAAW,YAAY,CAAC,EAAE,CAAC;QAgB7C,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,GAAG,IAAI,WAAW,CAAC;QACvC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,IAAI,aAAa,CAAC;IAC/C,CAAC;IAED;;OAEG;IACI,gCAAS,GAAhB;QACE,8BAAuB,CAAC,UAAC,KAAY,EAAE,IAAgB;YACrD,IAAM,IAAI,GAAG,oBAAa,EAAE,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;YAC1D,OAAO,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACtE,CAAC,CAAC,CAAC;IACL,CAAC;IApCD;;OAEG;IACW,eAAE,GAAW,cAAc,CAAC;IAkC5C,mBAAC;CAAA,AAtCD,IAsCC;AAtCY,oCAAY;AAwCzB;;GAEG;AACH,SAAgB,QAAQ,CAAC,GAAW,EAAE,KAAa,EAAE,KAAY,EAAE,IAAgB;IACjF,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,oBAAY,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,EAAE;QACxG,OAAO,KAAK,CAAC;KACd;IACD,IAAM,YAAY,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,iBAAkC,EAAE,GAAG,CAAC,CAAC;IACzF,KAAK,CAAC,SAAS,CAAC,MAAM,oBAAO,YAAY,EAAK,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACtE,OAAO,KAAK,CAAC;AACf,CAAC;AAPD,4BAOC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,KAAa,EAAE,KAAoB,EAAE,GAAW,EAAE,KAAuB;IAAvB,sBAAA,EAAA,UAAuB;IACtG,IAAI,CAAC,oBAAY,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,EAAE;QACjE,OAAO,KAAK,CAAC;KACd;IACD,IAAM,UAAU,GAAG,4BAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IACjD,IAAM,SAAS,GAAG,iCAAuB,CAAC,UAAU,CAAC,CAAC;IACtD,OAAO,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,oBAAG,SAAS,GAAK,KAAK,EAAE,CAAC;AACvE,CAAC;AAPD,wCAOC","sourcesContent":["import { addGlobalEventProcessor, getCurrentHub } from '@sentry/core';\nimport { Event, EventHint, Exception, ExtendedError, Integration } from '@sentry/types';\nimport { isInstanceOf } from '@sentry/utils';\n\nimport { exceptionFromStacktrace } from '../parsers';\nimport { computeStackTrace } from '../tracekit';\n\nconst DEFAULT_KEY = 'cause';\nconst DEFAULT_LIMIT = 5;\n\ninterface LinkedErrorsOptions {\n key: string;\n limit: number;\n}\n\n/** Adds SDK info to an event. */\nexport class LinkedErrors implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'LinkedErrors';\n\n /**\n * @inheritDoc\n */\n public readonly name: string = LinkedErrors.id;\n\n /**\n * @inheritDoc\n */\n private readonly _key: LinkedErrorsOptions['key'];\n\n /**\n * @inheritDoc\n */\n private readonly _limit: LinkedErrorsOptions['limit'];\n\n /**\n * @inheritDoc\n */\n public constructor(options: Partial<LinkedErrorsOptions> = {}) {\n this._key = options.key || DEFAULT_KEY;\n this._limit = options.limit || DEFAULT_LIMIT;\n }\n\n /**\n * @inheritDoc\n */\n public setupOnce(): void {\n addGlobalEventProcessor((event: Event, hint?: EventHint) => {\n const self = getCurrentHub().getIntegration(LinkedErrors);\n return self ? _handler(self._key, self._limit, event, hint) : event;\n });\n }\n}\n\n/**\n * @inheritDoc\n */\nexport function _handler(key: string, limit: number, event: Event, hint?: EventHint): Event | null {\n if (!event.exception || !event.exception.values || !hint || !isInstanceOf(hint.originalException, Error)) {\n return event;\n }\n const linkedErrors = _walkErrorTree(limit, hint.originalException as ExtendedError, key);\n event.exception.values = [...linkedErrors, ...event.exception.values];\n return event;\n}\n\n/**\n * JSDOC\n */\nexport function _walkErrorTree(limit: number, error: ExtendedError, key: string, stack: Exception[] = []): Exception[] {\n if (!isInstanceOf(error[key], Error) || stack.length + 1 >= limit) {\n return stack;\n }\n const stacktrace = computeStackTrace(error[key]);\n const exception = exceptionFromStacktrace(stacktrace);\n return _walkErrorTree(limit, error[key], key, [exception, ...stack]);\n}\n"]}
@@ -28,14 +28,6 @@ export declare class TryCatch implements Integration {
28
28
  * and provide better metadata.
29
29
  */
30
30
  setupOnce(): void;
31
- /** JSDoc */
32
- private _wrapTimeFunction;
33
- /** JSDoc */
34
- private _wrapRAF;
35
- /** JSDoc */
36
- private _wrapEventTarget;
37
- /** JSDoc */
38
- private _wrapXHR;
39
31
  }
40
32
  export {};
41
33
  //# sourceMappingURL=trycatch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"trycatch.d.ts","sourceRoot":"","sources":["../../src/integrations/trycatch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAmB,MAAM,eAAe,CAAC;AAuC7D,YAAY;AACZ,UAAU,eAAe;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,cAAc,EAAE,OAAO,CAAC;IACxB,WAAW,EAAE,OAAO,GAAG,MAAM,EAAE,CAAC;CACjC;AAED,0FAA0F;AAC1F,qBAAa,QAAS,YAAW,WAAW;IAC1C;;OAEG;IACH,OAAc,EAAE,EAAE,MAAM,CAAc;IAEtC;;OAEG;IACI,IAAI,EAAE,MAAM,CAAe;IAElC,YAAY;IACZ,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAE3C;;OAEG;gBACgB,OAAO,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC;IAWrD;;;OAGG;IACI,SAAS,IAAI,IAAI;IAyBxB,YAAY;IACZ,OAAO,CAAC,iBAAiB;IAezB,YAAY;IAEZ,OAAO,CAAC,QAAQ;IAoBhB,YAAY;IACZ,OAAO,CAAC,gBAAgB;IAqGxB,YAAY;IACZ,OAAO,CAAC,QAAQ;CAoCjB"}
1
+ {"version":3,"file":"trycatch.d.ts","sourceRoot":"","sources":["../../src/integrations/trycatch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAmB,MAAM,eAAe,CAAC;AAuC7D,YAAY;AACZ,UAAU,eAAe;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,cAAc,EAAE,OAAO,CAAC;IACxB,WAAW,EAAE,OAAO,GAAG,MAAM,EAAE,CAAC;CACjC;AAED,0FAA0F;AAC1F,qBAAa,QAAS,YAAW,WAAW;IAC1C;;OAEG;IACH,OAAc,EAAE,EAAE,MAAM,CAAc;IAEtC;;OAEG;IACI,IAAI,EAAE,MAAM,CAAe;IAElC,YAAY;IACZ,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAE3C;;OAEG;gBACgB,OAAO,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC;IAWrD;;;OAGG;IACI,SAAS,IAAI,IAAI;CAyBzB"}