@sentry/browser 6.19.7 → 7.0.0-beta.0

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 (265) hide show
  1. package/cjs/client.d.ts +63 -0
  2. package/cjs/client.d.ts.map +1 -0
  3. package/cjs/client.js +116 -0
  4. package/cjs/client.js.map +1 -0
  5. package/cjs/eventbuilder.d.ts +37 -0
  6. package/cjs/eventbuilder.d.ts.map +1 -0
  7. package/{dist → cjs}/eventbuilder.js +52 -53
  8. package/cjs/eventbuilder.js.map +1 -0
  9. package/cjs/exports.d.ts +11 -0
  10. package/cjs/exports.d.ts.map +1 -0
  11. package/{dist → cjs}/exports.js +21 -7
  12. package/cjs/exports.js.map +1 -0
  13. package/{dist → cjs}/flags.d.ts +0 -0
  14. package/{dist → cjs}/flags.d.ts.map +0 -0
  15. package/{dist → cjs}/flags.js +0 -0
  16. package/{dist → cjs}/flags.js.map +0 -0
  17. package/{dist → cjs}/helpers.d.ts +0 -5
  18. package/cjs/helpers.d.ts.map +1 -0
  19. package/{dist → cjs}/helpers.js +15 -49
  20. package/cjs/helpers.js.map +1 -0
  21. package/{dist → cjs}/index.d.ts +1 -2
  22. package/{dist → cjs}/index.d.ts.map +1 -1
  23. package/cjs/index.js +15 -0
  24. package/cjs/index.js.map +1 -0
  25. package/{dist → cjs}/integrations/breadcrumbs.d.ts +6 -7
  26. package/cjs/integrations/breadcrumbs.d.ts.map +1 -0
  27. package/{dist → cjs}/integrations/breadcrumbs.js +39 -57
  28. package/cjs/integrations/breadcrumbs.js.map +1 -0
  29. package/{dist → cjs}/integrations/dedupe.d.ts +0 -0
  30. package/{dist → cjs}/integrations/dedupe.d.ts.map +1 -1
  31. package/{dist → cjs}/integrations/dedupe.js +28 -30
  32. package/cjs/integrations/dedupe.js.map +1 -0
  33. package/{dist → cjs}/integrations/globalhandlers.d.ts +0 -0
  34. package/cjs/integrations/globalhandlers.d.ts.map +1 -0
  35. package/{dist → cjs}/integrations/globalhandlers.js +57 -57
  36. package/cjs/integrations/globalhandlers.js.map +1 -0
  37. package/{dist → cjs}/integrations/index.d.ts +0 -0
  38. package/{dist → cjs}/integrations/index.d.ts.map +0 -0
  39. package/{dist → cjs}/integrations/index.js +0 -0
  40. package/{dist → cjs}/integrations/index.js.map +0 -0
  41. package/{dist → cjs}/integrations/linkederrors.d.ts +3 -3
  42. package/cjs/integrations/linkederrors.d.ts.map +1 -0
  43. package/cjs/integrations/linkederrors.js +62 -0
  44. package/cjs/integrations/linkederrors.js.map +1 -0
  45. package/{dist → cjs}/integrations/trycatch.d.ts +0 -0
  46. package/{dist → cjs}/integrations/trycatch.d.ts.map +0 -0
  47. package/{dist → cjs}/integrations/trycatch.js +30 -40
  48. package/cjs/integrations/trycatch.js.map +1 -0
  49. package/{dist → cjs}/integrations/useragent.d.ts +0 -0
  50. package/{dist → cjs}/integrations/useragent.d.ts.map +0 -0
  51. package/cjs/integrations/useragent.js +40 -0
  52. package/cjs/integrations/useragent.js.map +1 -0
  53. package/{dist → cjs}/sdk.d.ts +3 -3
  54. package/cjs/sdk.d.ts.map +1 -0
  55. package/{dist → cjs}/sdk.js +47 -28
  56. package/cjs/sdk.js.map +1 -0
  57. package/cjs/stack-parsers.d.ts +9 -0
  58. package/cjs/stack-parsers.d.ts.map +1 -0
  59. package/{dist → cjs}/stack-parsers.js +45 -44
  60. package/cjs/stack-parsers.js.map +1 -0
  61. package/{esm/transports/new-fetch.d.ts → cjs/transports/fetch.d.ts} +3 -3
  62. package/cjs/transports/fetch.d.ts.map +1 -0
  63. package/cjs/transports/fetch.js +20 -0
  64. package/cjs/transports/fetch.js.map +1 -0
  65. package/cjs/transports/index.d.ts +3 -0
  66. package/cjs/transports/index.d.ts.map +1 -0
  67. package/cjs/transports/index.js +6 -0
  68. package/cjs/transports/index.js.map +1 -0
  69. package/{dist → cjs}/transports/utils.d.ts +0 -0
  70. package/{dist → cjs}/transports/utils.d.ts.map +1 -1
  71. package/{dist → cjs}/transports/utils.js +17 -17
  72. package/cjs/transports/utils.js.map +1 -0
  73. package/{types/transports/new-xhr.d.ts → cjs/transports/xhr.d.ts} +3 -3
  74. package/cjs/transports/xhr.d.ts.map +1 -0
  75. package/{esm/transports/new-xhr.js → cjs/transports/xhr.js} +14 -14
  76. package/cjs/transports/xhr.js.map +1 -0
  77. package/{dist → cjs}/version.d.ts +0 -0
  78. package/{dist → cjs}/version.d.ts.map +0 -0
  79. package/{dist → cjs}/version.js +0 -0
  80. package/{dist → cjs}/version.js.map +0 -0
  81. package/esm/client.d.ts +41 -11
  82. package/esm/client.d.ts.map +1 -1
  83. package/esm/client.js +79 -41
  84. package/esm/client.js.map +1 -1
  85. package/esm/eventbuilder.d.ts +10 -12
  86. package/esm/eventbuilder.d.ts.map +1 -1
  87. package/esm/eventbuilder.js +52 -53
  88. package/esm/eventbuilder.js.map +1 -1
  89. package/esm/exports.d.ts +7 -6
  90. package/esm/exports.d.ts.map +1 -1
  91. package/esm/exports.js +4 -4
  92. package/esm/exports.js.map +1 -1
  93. package/esm/flags.js +1 -1
  94. package/esm/flags.js.map +1 -1
  95. package/esm/helpers.d.ts +0 -5
  96. package/esm/helpers.d.ts.map +1 -1
  97. package/esm/helpers.js +15 -48
  98. package/esm/helpers.js.map +1 -1
  99. package/esm/index.d.ts +1 -2
  100. package/esm/index.d.ts.map +1 -1
  101. package/esm/index.js +4 -6
  102. package/esm/index.js.map +1 -1
  103. package/esm/integrations/breadcrumbs.d.ts +6 -7
  104. package/esm/integrations/breadcrumbs.d.ts.map +1 -1
  105. package/esm/integrations/breadcrumbs.js +38 -57
  106. package/esm/integrations/breadcrumbs.js.map +1 -1
  107. package/esm/integrations/dedupe.d.ts.map +1 -1
  108. package/esm/integrations/dedupe.js +26 -29
  109. package/esm/integrations/dedupe.js.map +1 -1
  110. package/esm/integrations/globalhandlers.d.ts.map +1 -1
  111. package/esm/integrations/globalhandlers.js +52 -53
  112. package/esm/integrations/globalhandlers.js.map +1 -1
  113. package/esm/integrations/linkederrors.d.ts +3 -3
  114. package/esm/integrations/linkederrors.d.ts.map +1 -1
  115. package/esm/integrations/linkederrors.js +24 -25
  116. package/esm/integrations/linkederrors.js.map +1 -1
  117. package/esm/integrations/trycatch.js +28 -39
  118. package/esm/integrations/trycatch.js.map +1 -1
  119. package/esm/integrations/useragent.js +17 -20
  120. package/esm/integrations/useragent.js.map +1 -1
  121. package/esm/sdk.d.ts +3 -3
  122. package/esm/sdk.d.ts.map +1 -1
  123. package/esm/sdk.js +44 -25
  124. package/esm/sdk.js.map +1 -1
  125. package/esm/stack-parsers.d.ts +8 -6
  126. package/esm/stack-parsers.d.ts.map +1 -1
  127. package/esm/stack-parsers.js +45 -44
  128. package/esm/stack-parsers.js.map +1 -1
  129. package/esm/transports/fetch.d.ts +7 -14
  130. package/esm/transports/fetch.d.ts.map +1 -1
  131. package/esm/transports/fetch.js +15 -77
  132. package/esm/transports/fetch.js.map +1 -1
  133. package/esm/transports/index.d.ts +2 -5
  134. package/esm/transports/index.d.ts.map +1 -1
  135. package/esm/transports/index.js +2 -5
  136. package/esm/transports/index.js.map +1 -1
  137. package/esm/transports/utils.d.ts.map +1 -1
  138. package/esm/transports/utils.js +16 -16
  139. package/esm/transports/utils.js.map +1 -1
  140. package/esm/transports/xhr.d.ts +9 -9
  141. package/esm/transports/xhr.d.ts.map +1 -1
  142. package/esm/transports/xhr.js +38 -59
  143. package/esm/transports/xhr.js.map +1 -1
  144. package/esm/version.js +1 -1
  145. package/esm/version.js.map +1 -1
  146. package/package.json +6 -7
  147. package/types/client.d.ts +41 -11
  148. package/types/client.d.ts.map +1 -1
  149. package/types/eventbuilder.d.ts +10 -12
  150. package/types/eventbuilder.d.ts.map +1 -1
  151. package/types/exports.d.ts +7 -6
  152. package/types/exports.d.ts.map +1 -1
  153. package/types/helpers.d.ts +0 -5
  154. package/types/helpers.d.ts.map +1 -1
  155. package/types/index.d.ts +1 -2
  156. package/types/index.d.ts.map +1 -1
  157. package/types/integrations/breadcrumbs.d.ts +6 -7
  158. package/types/integrations/breadcrumbs.d.ts.map +1 -1
  159. package/types/integrations/dedupe.d.ts.map +1 -1
  160. package/types/integrations/globalhandlers.d.ts.map +1 -1
  161. package/types/integrations/linkederrors.d.ts +3 -3
  162. package/types/integrations/linkederrors.d.ts.map +1 -1
  163. package/types/sdk.d.ts +3 -3
  164. package/types/sdk.d.ts.map +1 -1
  165. package/types/stack-parsers.d.ts +8 -6
  166. package/types/stack-parsers.d.ts.map +1 -1
  167. package/types/transports/fetch.d.ts +7 -14
  168. package/types/transports/fetch.d.ts.map +1 -1
  169. package/types/transports/index.d.ts +2 -5
  170. package/types/transports/index.d.ts.map +1 -1
  171. package/types/transports/utils.d.ts.map +1 -1
  172. package/types/transports/xhr.d.ts +9 -9
  173. package/types/transports/xhr.d.ts.map +1 -1
  174. package/build/bundle.debug.min.js +0 -3
  175. package/build/bundle.debug.min.js.map +0 -1
  176. package/build/bundle.es6.debug.min.js +0 -3
  177. package/build/bundle.es6.debug.min.js.map +0 -1
  178. package/build/bundle.es6.js +0 -6868
  179. package/build/bundle.es6.js.map +0 -1
  180. package/build/bundle.es6.min.js +0 -3
  181. package/build/bundle.es6.min.js.map +0 -1
  182. package/build/bundle.js +0 -7169
  183. package/build/bundle.js.map +0 -1
  184. package/build/bundle.min.js +0 -3
  185. package/build/bundle.min.js.map +0 -1
  186. package/dist/backend.d.ts +0 -43
  187. package/dist/backend.d.ts.map +0 -1
  188. package/dist/backend.js +0 -58
  189. package/dist/backend.js.map +0 -1
  190. package/dist/client.d.ts +0 -33
  191. package/dist/client.d.ts.map +0 -1
  192. package/dist/client.js +0 -77
  193. package/dist/client.js.map +0 -1
  194. package/dist/eventbuilder.d.ts +0 -39
  195. package/dist/eventbuilder.d.ts.map +0 -1
  196. package/dist/eventbuilder.js.map +0 -1
  197. package/dist/exports.d.ts +0 -10
  198. package/dist/exports.d.ts.map +0 -1
  199. package/dist/exports.js.map +0 -1
  200. package/dist/helpers.d.ts.map +0 -1
  201. package/dist/helpers.js.map +0 -1
  202. package/dist/index.js +0 -17
  203. package/dist/index.js.map +0 -1
  204. package/dist/integrations/breadcrumbs.d.ts.map +0 -1
  205. package/dist/integrations/breadcrumbs.js.map +0 -1
  206. package/dist/integrations/dedupe.js.map +0 -1
  207. package/dist/integrations/globalhandlers.d.ts.map +0 -1
  208. package/dist/integrations/globalhandlers.js.map +0 -1
  209. package/dist/integrations/linkederrors.d.ts.map +0 -1
  210. package/dist/integrations/linkederrors.js +0 -62
  211. package/dist/integrations/linkederrors.js.map +0 -1
  212. package/dist/integrations/trycatch.js.map +0 -1
  213. package/dist/integrations/useragent.js +0 -42
  214. package/dist/integrations/useragent.js.map +0 -1
  215. package/dist/sdk.d.ts.map +0 -1
  216. package/dist/sdk.js.map +0 -1
  217. package/dist/stack-parsers.d.ts +0 -7
  218. package/dist/stack-parsers.d.ts.map +0 -1
  219. package/dist/stack-parsers.js.map +0 -1
  220. package/dist/transports/base.d.ts +0 -65
  221. package/dist/transports/base.d.ts.map +0 -1
  222. package/dist/transports/base.js +0 -141
  223. package/dist/transports/base.js.map +0 -1
  224. package/dist/transports/fetch.d.ts +0 -17
  225. package/dist/transports/fetch.d.ts.map +0 -1
  226. package/dist/transports/fetch.js +0 -81
  227. package/dist/transports/fetch.js.map +0 -1
  228. package/dist/transports/index.d.ts +0 -6
  229. package/dist/transports/index.d.ts.map +0 -1
  230. package/dist/transports/index.js +0 -12
  231. package/dist/transports/index.js.map +0 -1
  232. package/dist/transports/new-fetch.d.ts +0 -10
  233. package/dist/transports/new-fetch.d.ts.map +0 -1
  234. package/dist/transports/new-fetch.js +0 -27
  235. package/dist/transports/new-fetch.js.map +0 -1
  236. package/dist/transports/new-xhr.d.ts +0 -11
  237. package/dist/transports/new-xhr.d.ts.map +0 -1
  238. package/dist/transports/new-xhr.js +0 -46
  239. package/dist/transports/new-xhr.js.map +0 -1
  240. package/dist/transports/utils.js.map +0 -1
  241. package/dist/transports/xhr.d.ts +0 -11
  242. package/dist/transports/xhr.d.ts.map +0 -1
  243. package/dist/transports/xhr.js +0 -64
  244. package/dist/transports/xhr.js.map +0 -1
  245. package/esm/backend.d.ts +0 -43
  246. package/esm/backend.d.ts.map +0 -1
  247. package/esm/backend.js +0 -57
  248. package/esm/backend.js.map +0 -1
  249. package/esm/transports/base.d.ts +0 -65
  250. package/esm/transports/base.d.ts.map +0 -1
  251. package/esm/transports/base.js +0 -140
  252. package/esm/transports/base.js.map +0 -1
  253. package/esm/transports/new-fetch.d.ts.map +0 -1
  254. package/esm/transports/new-fetch.js +0 -25
  255. package/esm/transports/new-fetch.js.map +0 -1
  256. package/esm/transports/new-xhr.d.ts +0 -11
  257. package/esm/transports/new-xhr.d.ts.map +0 -1
  258. package/esm/transports/new-xhr.js.map +0 -1
  259. package/types/backend.d.ts +0 -43
  260. package/types/backend.d.ts.map +0 -1
  261. package/types/transports/base.d.ts +0 -65
  262. package/types/transports/base.d.ts.map +0 -1
  263. package/types/transports/new-fetch.d.ts +0 -10
  264. package/types/transports/new-fetch.d.ts.map +0 -1
  265. package/types/transports/new-xhr.d.ts.map +0 -1
@@ -1,15 +1,13 @@
1
- import { __assign, __read } from "tslib";
2
1
  /* eslint-disable @typescript-eslint/no-unsafe-member-access */
3
2
  import { getCurrentHub } from '@sentry/core';
4
- import { Severity } from '@sentry/types';
5
3
  import { addExceptionMechanism, addInstrumentationHandler, getLocationHref, isErrorEvent, isPrimitive, isString, logger, } from '@sentry/utils';
6
4
  import { eventFromUnknownInput } from '../eventbuilder';
7
5
  import { IS_DEBUG_BUILD } from '../flags';
8
6
  import { shouldIgnoreOnError } from '../helpers';
9
7
  /** Global handlers */
10
- var GlobalHandlers = /** @class */ (function () {
8
+ export class GlobalHandlers {
11
9
  /** JSDoc */
12
- function GlobalHandlers(options) {
10
+ constructor(options) {
13
11
  /**
14
12
  * @inheritDoc
15
13
  */
@@ -22,50 +20,48 @@ var GlobalHandlers = /** @class */ (function () {
22
20
  onerror: _installGlobalOnErrorHandler,
23
21
  onunhandledrejection: _installGlobalOnUnhandledRejectionHandler,
24
22
  };
25
- this._options = __assign({ onerror: true, onunhandledrejection: true }, options);
23
+ this._options = Object.assign({ onerror: true, onunhandledrejection: true }, options);
26
24
  }
27
25
  /**
28
26
  * @inheritDoc
29
27
  */
30
- GlobalHandlers.prototype.setupOnce = function () {
28
+ setupOnce() {
31
29
  Error.stackTraceLimit = 50;
32
- var options = this._options;
30
+ const options = this._options;
33
31
  // We can disable guard-for-in as we construct the options object above + do checks against
34
32
  // `this._installFunc` for the property.
35
33
  // eslint-disable-next-line guard-for-in
36
- for (var key in options) {
37
- var installFunc = this._installFunc[key];
34
+ for (const key in options) {
35
+ const installFunc = this._installFunc[key];
38
36
  if (installFunc && options[key]) {
39
37
  globalHandlerLog(key);
40
38
  installFunc();
41
39
  this._installFunc[key] = undefined;
42
40
  }
43
41
  }
44
- };
45
- /**
46
- * @inheritDoc
47
- */
48
- GlobalHandlers.id = 'GlobalHandlers';
49
- return GlobalHandlers;
50
- }());
51
- export { GlobalHandlers };
42
+ }
43
+ }
44
+ /**
45
+ * @inheritDoc
46
+ */
47
+ GlobalHandlers.id = 'GlobalHandlers';
52
48
  /** JSDoc */
53
49
  function _installGlobalOnErrorHandler() {
54
50
  addInstrumentationHandler('error',
55
51
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
56
- function (data) {
57
- var _a = __read(getHubAndAttachStacktrace(), 2), hub = _a[0], attachStacktrace = _a[1];
52
+ (data) => {
53
+ const [hub, stackParser, attachStacktrace] = getHubAndOptions();
58
54
  if (!hub.getIntegration(GlobalHandlers)) {
59
55
  return;
60
56
  }
61
- var msg = data.msg, url = data.url, line = data.line, column = data.column, error = data.error;
57
+ const { msg, url, line, column, error } = data;
62
58
  if (shouldIgnoreOnError() || (error && error.__sentry_own_request__)) {
63
59
  return;
64
60
  }
65
- var event = error === undefined && isString(msg)
61
+ const event = error === undefined && isString(msg)
66
62
  ? _eventFromIncompleteOnError(msg, url, line, column)
67
- : _enhanceEventWithInitialFrame(eventFromUnknownInput(error || msg, undefined, attachStacktrace, false), url, line, column);
68
- event.level = Severity.Error;
63
+ : _enhanceEventWithInitialFrame(eventFromUnknownInput(stackParser, error || msg, undefined, attachStacktrace, false), url, line, column);
64
+ event.level = 'error';
69
65
  addMechanismAndCapture(hub, error, event, 'onerror');
70
66
  });
71
67
  }
@@ -73,12 +69,12 @@ function _installGlobalOnErrorHandler() {
73
69
  function _installGlobalOnUnhandledRejectionHandler() {
74
70
  addInstrumentationHandler('unhandledrejection',
75
71
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
76
- function (e) {
77
- var _a = __read(getHubAndAttachStacktrace(), 2), hub = _a[0], attachStacktrace = _a[1];
72
+ (e) => {
73
+ const [hub, stackParser, attachStacktrace] = getHubAndOptions();
78
74
  if (!hub.getIntegration(GlobalHandlers)) {
79
75
  return;
80
76
  }
81
- var error = e;
77
+ let error = e;
82
78
  // dig the object of the rejection out of known event types
83
79
  try {
84
80
  // PromiseRejectionEvents store the object of the rejection under 'reason'
@@ -101,10 +97,10 @@ function _installGlobalOnUnhandledRejectionHandler() {
101
97
  if (shouldIgnoreOnError() || (error && error.__sentry_own_request__)) {
102
98
  return true;
103
99
  }
104
- var event = isPrimitive(error)
100
+ const event = isPrimitive(error)
105
101
  ? _eventFromRejectionWithPrimitive(error)
106
- : eventFromUnknownInput(error, undefined, attachStacktrace, true);
107
- event.level = Severity.Error;
102
+ : eventFromUnknownInput(stackParser, error, undefined, attachStacktrace, true);
103
+ event.level = 'error';
108
104
  addMechanismAndCapture(hub, error, event, 'onunhandledrejection');
109
105
  return;
110
106
  });
@@ -122,7 +118,7 @@ function _eventFromRejectionWithPrimitive(reason) {
122
118
  {
123
119
  type: 'UnhandledRejection',
124
120
  // String() is needed because the Primitive type includes symbols (which can't be automatically stringified)
125
- value: "Non-Error promise rejection captured with value: " + String(reason),
121
+ value: `Non-Error promise rejection captured with value: ${String(reason)}`,
126
122
  },
127
123
  ],
128
124
  },
@@ -133,16 +129,16 @@ function _eventFromRejectionWithPrimitive(reason) {
133
129
  */
134
130
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
135
131
  function _eventFromIncompleteOnError(msg, url, line, column) {
136
- var ERROR_TYPES_RE = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;
132
+ const ERROR_TYPES_RE = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;
137
133
  // If 'message' is ErrorEvent, get real message from inside
138
- var message = isErrorEvent(msg) ? msg.message : msg;
139
- var name = 'Error';
140
- var groups = message.match(ERROR_TYPES_RE);
134
+ let message = isErrorEvent(msg) ? msg.message : msg;
135
+ let name = 'Error';
136
+ const groups = message.match(ERROR_TYPES_RE);
141
137
  if (groups) {
142
138
  name = groups[1];
143
139
  message = groups[2];
144
140
  }
145
- var event = {
141
+ const event = {
146
142
  exception: {
147
143
  values: [
148
144
  {
@@ -158,46 +154,49 @@ function _eventFromIncompleteOnError(msg, url, line, column) {
158
154
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
159
155
  function _enhanceEventWithInitialFrame(event, url, line, column) {
160
156
  // event.exception
161
- var e = (event.exception = event.exception || {});
157
+ const e = (event.exception = event.exception || {});
162
158
  // event.exception.values
163
- var ev = (e.values = e.values || []);
159
+ const ev = (e.values = e.values || []);
164
160
  // event.exception.values[0]
165
- var ev0 = (ev[0] = ev[0] || {});
161
+ const ev0 = (ev[0] = ev[0] || {});
166
162
  // event.exception.values[0].stacktrace
167
- var ev0s = (ev0.stacktrace = ev0.stacktrace || {});
163
+ const ev0s = (ev0.stacktrace = ev0.stacktrace || {});
168
164
  // event.exception.values[0].stacktrace.frames
169
- var ev0sf = (ev0s.frames = ev0s.frames || []);
170
- var colno = isNaN(parseInt(column, 10)) ? undefined : column;
171
- var lineno = isNaN(parseInt(line, 10)) ? undefined : line;
172
- var filename = isString(url) && url.length > 0 ? url : getLocationHref();
165
+ const ev0sf = (ev0s.frames = ev0s.frames || []);
166
+ const colno = isNaN(parseInt(column, 10)) ? undefined : column;
167
+ const lineno = isNaN(parseInt(line, 10)) ? undefined : line;
168
+ const filename = isString(url) && url.length > 0 ? url : getLocationHref();
173
169
  // event.exception.values[0].stacktrace.frames
174
170
  if (ev0sf.length === 0) {
175
171
  ev0sf.push({
176
- colno: colno,
177
- filename: filename,
172
+ colno,
173
+ filename,
178
174
  function: '?',
179
175
  in_app: true,
180
- lineno: lineno,
176
+ lineno,
181
177
  });
182
178
  }
183
179
  return event;
184
180
  }
185
181
  function globalHandlerLog(type) {
186
- IS_DEBUG_BUILD && logger.log("Global Handler attached: " + type);
182
+ IS_DEBUG_BUILD && logger.log(`Global Handler attached: ${type}`);
187
183
  }
188
184
  function addMechanismAndCapture(hub, error, event, type) {
189
185
  addExceptionMechanism(event, {
190
186
  handled: false,
191
- type: type,
187
+ type,
192
188
  });
193
189
  hub.captureEvent(event, {
194
190
  originalException: error,
195
191
  });
196
192
  }
197
- function getHubAndAttachStacktrace() {
198
- var hub = getCurrentHub();
199
- var client = hub.getClient();
200
- var attachStacktrace = client && client.getOptions().attachStacktrace;
201
- return [hub, attachStacktrace];
193
+ function getHubAndOptions() {
194
+ const hub = getCurrentHub();
195
+ const client = hub.getClient();
196
+ const options = (client && client.getOptions()) || {
197
+ stackParser: () => [],
198
+ attachStacktrace: false,
199
+ };
200
+ return [hub, options.stackParser, options.attachStacktrace];
202
201
  }
203
202
  //# 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, EventHint, Hub, 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 { IS_DEBUG_BUILD } from '../flags';\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, attachStacktrace, false),\n url,\n line,\n column,\n );\n\n event.level = Severity.Error;\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, attachStacktrace, true);\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 =\n /^(?:[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 IS_DEBUG_BUILD && logger.log(`Global Handler attached: ${type}`);\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
+ {"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, StackParser } from '@sentry/types';\nimport {\n addExceptionMechanism,\n addInstrumentationHandler,\n getLocationHref,\n isErrorEvent,\n isPrimitive,\n isString,\n logger,\n} from '@sentry/utils';\n\nimport { BrowserClient } from '../client';\nimport { eventFromUnknownInput } from '../eventbuilder';\nimport { IS_DEBUG_BUILD } from '../flags';\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, stackParser, attachStacktrace] = getHubAndOptions();\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(stackParser, error || msg, undefined, attachStacktrace, false),\n url,\n line,\n column,\n );\n\n event.level = 'error';\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, stackParser, attachStacktrace] = getHubAndOptions();\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(stackParser, error, undefined, attachStacktrace, true);\n\n event.level = '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 =\n /^(?:[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 IS_DEBUG_BUILD && logger.log(`Global Handler attached: ${type}`);\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 getHubAndOptions(): [Hub, StackParser, boolean | undefined] {\n const hub = getCurrentHub();\n const client = hub.getClient<BrowserClient>();\n const options = (client && client.getOptions()) || {\n stackParser: () => [],\n attachStacktrace: false,\n };\n return [hub, options.stackParser, options.attachStacktrace];\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { Event, EventHint, Exception, ExtendedError, Integration } from '@sentry/types';
1
+ import { Event, EventHint, Exception, ExtendedError, Integration, StackParser } from '@sentry/types';
2
2
  interface LinkedErrorsOptions {
3
3
  key: string;
4
4
  limit: number;
@@ -33,10 +33,10 @@ export declare class LinkedErrors implements Integration {
33
33
  /**
34
34
  * @inheritDoc
35
35
  */
36
- export declare function _handler(key: string, limit: number, event: Event, hint?: EventHint): Event | null;
36
+ export declare function _handler(parser: StackParser, key: string, limit: number, event: Event, hint?: EventHint): Event | null;
37
37
  /**
38
38
  * JSDOC
39
39
  */
40
- export declare function _walkErrorTree(limit: number, error: ExtendedError, key: string, stack?: Exception[]): Exception[];
40
+ export declare function _walkErrorTree(parser: StackParser, limit: number, error: ExtendedError, key: string, stack?: Exception[]): Exception[];
41
41
  export {};
42
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,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAQxF,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,CAMrH"}
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,WAAW,EAAE,MAAM,eAAe,CAAC;AASrG,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;CAUzB;AAED;;GAEG;AACH,wBAAgB,QAAQ,CACtB,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,KAAK,EACZ,IAAI,CAAC,EAAE,SAAS,GACf,KAAK,GAAG,IAAI,CAOd;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,aAAa,EACpB,GAAG,EAAE,MAAM,EACX,KAAK,GAAE,SAAS,EAAO,GACtB,SAAS,EAAE,CAMb"}
@@ -1,16 +1,14 @@
1
- import { __read, __spread } from "tslib";
2
1
  import { addGlobalEventProcessor, getCurrentHub } from '@sentry/core';
3
2
  import { isInstanceOf } from '@sentry/utils';
4
3
  import { exceptionFromError } from '../eventbuilder';
5
- var DEFAULT_KEY = 'cause';
6
- var DEFAULT_LIMIT = 5;
4
+ const DEFAULT_KEY = 'cause';
5
+ const DEFAULT_LIMIT = 5;
7
6
  /** Adds SDK info to an event. */
8
- var LinkedErrors = /** @class */ (function () {
7
+ export class LinkedErrors {
9
8
  /**
10
9
  * @inheritDoc
11
10
  */
12
- function LinkedErrors(options) {
13
- if (options === void 0) { options = {}; }
11
+ constructor(options = {}) {
14
12
  /**
15
13
  * @inheritDoc
16
14
  */
@@ -21,39 +19,40 @@ var LinkedErrors = /** @class */ (function () {
21
19
  /**
22
20
  * @inheritDoc
23
21
  */
24
- LinkedErrors.prototype.setupOnce = function () {
25
- addGlobalEventProcessor(function (event, hint) {
26
- var self = getCurrentHub().getIntegration(LinkedErrors);
27
- return self ? _handler(self._key, self._limit, event, hint) : event;
22
+ setupOnce() {
23
+ const client = getCurrentHub().getClient();
24
+ if (!client) {
25
+ return;
26
+ }
27
+ addGlobalEventProcessor((event, hint) => {
28
+ const self = getCurrentHub().getIntegration(LinkedErrors);
29
+ return self ? _handler(client.getOptions().stackParser, self._key, self._limit, event, hint) : event;
28
30
  });
29
- };
30
- /**
31
- * @inheritDoc
32
- */
33
- LinkedErrors.id = 'LinkedErrors';
34
- return LinkedErrors;
35
- }());
36
- export { LinkedErrors };
31
+ }
32
+ }
33
+ /**
34
+ * @inheritDoc
35
+ */
36
+ LinkedErrors.id = 'LinkedErrors';
37
37
  /**
38
38
  * @inheritDoc
39
39
  */
40
- export function _handler(key, limit, event, hint) {
40
+ export function _handler(parser, key, limit, event, hint) {
41
41
  if (!event.exception || !event.exception.values || !hint || !isInstanceOf(hint.originalException, Error)) {
42
42
  return event;
43
43
  }
44
- var linkedErrors = _walkErrorTree(limit, hint.originalException, key);
45
- event.exception.values = __spread(linkedErrors, event.exception.values);
44
+ const linkedErrors = _walkErrorTree(parser, limit, hint.originalException, key);
45
+ event.exception.values = [...linkedErrors, ...event.exception.values];
46
46
  return event;
47
47
  }
48
48
  /**
49
49
  * JSDOC
50
50
  */
51
- export function _walkErrorTree(limit, error, key, stack) {
52
- if (stack === void 0) { stack = []; }
51
+ export function _walkErrorTree(parser, limit, error, key, stack = []) {
53
52
  if (!isInstanceOf(error[key], Error) || stack.length + 1 >= limit) {
54
53
  return stack;
55
54
  }
56
- var exception = exceptionFromError(error[key]);
57
- return _walkErrorTree(limit, error[key], key, __spread([exception], stack));
55
+ const exception = exceptionFromError(parser, error[key]);
56
+ return _walkErrorTree(parser, limit, error[key], key, [exception, ...stack]);
58
57
  }
59
58
  //# sourceMappingURL=linkederrors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"linkederrors.js","sourceRoot":"","sources":["../../../../src/integrations/linkederrors.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAEtE,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,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,uBAAuB,CAAC,UAAC,KAAY,EAAE,IAAgB;YACrD,IAAM,IAAI,GAAG,aAAa,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;SAtCY,YAAY;AAwCzB;;GAEG;AACH,MAAM,UAAU,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,YAAY,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,YAAO,YAAY,EAAK,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACtE,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa,EAAE,KAAoB,EAAE,GAAW,EAAE,KAAuB;IAAvB,sBAAA,EAAA,UAAuB;IACtG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,EAAE;QACjE,OAAO,KAAK,CAAC;KACd;IACD,IAAM,SAAS,GAAG,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IACjD,OAAO,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,YAAG,SAAS,GAAK,KAAK,EAAE,CAAC;AACvE,CAAC","sourcesContent":["import { addGlobalEventProcessor, getCurrentHub } from '@sentry/core';\nimport { Event, EventHint, Exception, ExtendedError, Integration } from '@sentry/types';\nimport { isInstanceOf } from '@sentry/utils';\n\nimport { exceptionFromError } from '../eventbuilder';\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 exception = exceptionFromError(error[key]);\n return _walkErrorTree(limit, error[key], key, [exception, ...stack]);\n}\n"]}
1
+ {"version":3,"file":"linkederrors.js","sourceRoot":"","sources":["../../../../src/integrations/linkederrors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAEtE,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAG7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,WAAW,GAAG,OAAO,CAAC;AAC5B,MAAM,aAAa,GAAG,CAAC,CAAC;AAOxB,iCAAiC;AACjC,MAAM,OAAO,YAAY;IAqBvB;;OAEG;IACH,YAAmB,UAAwC,EAAE;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,SAAS;QACd,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC,SAAS,EAAiB,CAAC;QAC1D,IAAI,CAAC,MAAM,EAAE;YACX,OAAO;SACR;QACD,uBAAuB,CAAC,CAAC,KAAY,EAAE,IAAgB,EAAE,EAAE;YACzD,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;YAC1D,OAAO,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACvG,CAAC,CAAC,CAAC;IACL,CAAC;;AAxCD;;GAEG;AACW,eAAE,GAAW,cAAc,CAAC;AAwC5C;;GAEG;AACH,MAAM,UAAU,QAAQ,CACtB,MAAmB,EACnB,GAAW,EACX,KAAa,EACb,KAAY,EACZ,IAAgB;IAEhB,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,EAAE;QACxG,OAAO,KAAK,CAAC;KACd;IACD,MAAM,YAAY,GAAG,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,iBAAkC,EAAE,GAAG,CAAC,CAAC;IACjG,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,YAAY,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACtE,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAC5B,MAAmB,EACnB,KAAa,EACb,KAAoB,EACpB,GAAW,EACX,QAAqB,EAAE;IAEvB,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,EAAE;QACjE,OAAO,KAAK,CAAC;KACd;IACD,MAAM,SAAS,GAAG,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IACzD,OAAO,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;AAC/E,CAAC","sourcesContent":["import { addGlobalEventProcessor, getCurrentHub } from '@sentry/core';\nimport { Event, EventHint, Exception, ExtendedError, Integration, StackParser } from '@sentry/types';\nimport { isInstanceOf } from '@sentry/utils';\n\nimport { BrowserClient } from '../client';\nimport { exceptionFromError } from '../eventbuilder';\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 const client = getCurrentHub().getClient<BrowserClient>();\n if (!client) {\n return;\n }\n addGlobalEventProcessor((event: Event, hint?: EventHint) => {\n const self = getCurrentHub().getIntegration(LinkedErrors);\n return self ? _handler(client.getOptions().stackParser, self._key, self._limit, event, hint) : event;\n });\n }\n}\n\n/**\n * @inheritDoc\n */\nexport function _handler(\n parser: StackParser,\n key: string,\n limit: number,\n event: Event,\n hint?: EventHint,\n): Event | null {\n if (!event.exception || !event.exception.values || !hint || !isInstanceOf(hint.originalException, Error)) {\n return event;\n }\n const linkedErrors = _walkErrorTree(parser, 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(\n parser: StackParser,\n limit: number,\n error: ExtendedError,\n key: string,\n stack: Exception[] = [],\n): Exception[] {\n if (!isInstanceOf(error[key], Error) || stack.length + 1 >= limit) {\n return stack;\n }\n const exception = exceptionFromError(parser, error[key]);\n return _walkErrorTree(parser, limit, error[key], key, [exception, ...stack]);\n}\n"]}
@@ -1,7 +1,6 @@
1
- import { __assign } from "tslib";
2
1
  import { fill, getFunctionName, getGlobalObject, getOriginalFunction } from '@sentry/utils';
3
2
  import { wrap } from '../helpers';
4
- var DEFAULT_EVENT_TARGET = [
3
+ const DEFAULT_EVENT_TARGET = [
5
4
  'EventTarget',
6
5
  'Window',
7
6
  'Node',
@@ -33,23 +32,23 @@ var DEFAULT_EVENT_TARGET = [
33
32
  'XMLHttpRequestUpload',
34
33
  ];
35
34
  /** Wrap timer functions and event targets to catch errors and provide better meta data */
36
- var TryCatch = /** @class */ (function () {
35
+ export class TryCatch {
37
36
  /**
38
37
  * @inheritDoc
39
38
  */
40
- function TryCatch(options) {
39
+ constructor(options) {
41
40
  /**
42
41
  * @inheritDoc
43
42
  */
44
43
  this.name = TryCatch.id;
45
- this._options = __assign({ XMLHttpRequest: true, eventTarget: true, requestAnimationFrame: true, setInterval: true, setTimeout: true }, options);
44
+ this._options = Object.assign({ XMLHttpRequest: true, eventTarget: true, requestAnimationFrame: true, setInterval: true, setTimeout: true }, options);
46
45
  }
47
46
  /**
48
47
  * Wrap timer functions and event targets to catch errors
49
48
  * and provide better metadata.
50
49
  */
51
- TryCatch.prototype.setupOnce = function () {
52
- var global = getGlobalObject();
50
+ setupOnce() {
51
+ const global = getGlobalObject();
53
52
  if (this._options.setTimeout) {
54
53
  fill(global, 'setTimeout', _wrapTimeFunction);
55
54
  }
@@ -62,28 +61,22 @@ var TryCatch = /** @class */ (function () {
62
61
  if (this._options.XMLHttpRequest && 'XMLHttpRequest' in global) {
63
62
  fill(XMLHttpRequest.prototype, 'send', _wrapXHR);
64
63
  }
65
- var eventTargetOption = this._options.eventTarget;
64
+ const eventTargetOption = this._options.eventTarget;
66
65
  if (eventTargetOption) {
67
- var eventTarget = Array.isArray(eventTargetOption) ? eventTargetOption : DEFAULT_EVENT_TARGET;
66
+ const eventTarget = Array.isArray(eventTargetOption) ? eventTargetOption : DEFAULT_EVENT_TARGET;
68
67
  eventTarget.forEach(_wrapEventTarget);
69
68
  }
70
- };
71
- /**
72
- * @inheritDoc
73
- */
74
- TryCatch.id = 'TryCatch';
75
- return TryCatch;
76
- }());
77
- export { TryCatch };
69
+ }
70
+ }
71
+ /**
72
+ * @inheritDoc
73
+ */
74
+ TryCatch.id = 'TryCatch';
78
75
  /** JSDoc */
79
76
  function _wrapTimeFunction(original) {
80
77
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
81
- return function () {
82
- var args = [];
83
- for (var _i = 0; _i < arguments.length; _i++) {
84
- args[_i] = arguments[_i];
85
- }
86
- var originalCallback = args[0];
78
+ return function (...args) {
79
+ const originalCallback = args[0];
87
80
  args[0] = wrap(originalCallback, {
88
81
  mechanism: {
89
82
  data: { function: getFunctionName(original) },
@@ -117,19 +110,15 @@ function _wrapRAF(original) {
117
110
  /** JSDoc */
118
111
  function _wrapXHR(originalSend) {
119
112
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
120
- return function () {
121
- var args = [];
122
- for (var _i = 0; _i < arguments.length; _i++) {
123
- args[_i] = arguments[_i];
124
- }
113
+ return function (...args) {
125
114
  // eslint-disable-next-line @typescript-eslint/no-this-alias
126
- var xhr = this;
127
- var xmlHttpRequestProps = ['onload', 'onerror', 'onprogress', 'onreadystatechange'];
128
- xmlHttpRequestProps.forEach(function (prop) {
115
+ const xhr = this;
116
+ const xmlHttpRequestProps = ['onload', 'onerror', 'onprogress', 'onreadystatechange'];
117
+ xmlHttpRequestProps.forEach(prop => {
129
118
  if (prop in xhr && typeof xhr[prop] === 'function') {
130
119
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
131
120
  fill(xhr, prop, function (original) {
132
- var wrapOptions = {
121
+ const wrapOptions = {
133
122
  mechanism: {
134
123
  data: {
135
124
  function: prop,
@@ -140,7 +129,7 @@ function _wrapXHR(originalSend) {
140
129
  },
141
130
  };
142
131
  // If Instrument integration has been called before TryCatch, get the name of original function
143
- var originalFunction = getOriginalFunction(original);
132
+ const originalFunction = getOriginalFunction(original);
144
133
  if (originalFunction) {
145
134
  wrapOptions.mechanism.data.handler = getFunctionName(originalFunction);
146
135
  }
@@ -155,9 +144,9 @@ function _wrapXHR(originalSend) {
155
144
  /** JSDoc */
156
145
  function _wrapEventTarget(target) {
157
146
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
158
- var global = getGlobalObject();
147
+ const global = getGlobalObject();
159
148
  // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
160
- var proto = global[target] && global[target].prototype;
149
+ const proto = global[target] && global[target].prototype;
161
150
  // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, no-prototype-builtins
162
151
  if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {
163
152
  return;
@@ -171,7 +160,7 @@ function _wrapEventTarget(target) {
171
160
  data: {
172
161
  function: 'handleEvent',
173
162
  handler: getFunctionName(fn),
174
- target: target,
163
+ target,
175
164
  },
176
165
  handled: true,
177
166
  type: 'instrument',
@@ -190,7 +179,7 @@ function _wrapEventTarget(target) {
190
179
  data: {
191
180
  function: 'addEventListener',
192
181
  handler: getFunctionName(fn),
193
- target: target,
182
+ target,
194
183
  },
195
184
  handled: true,
196
185
  type: 'instrument',
@@ -219,9 +208,9 @@ function _wrapEventTarget(target) {
219
208
  * then we have to detach both of them. Otherwise, if we'd detach only wrapped one, it'd be impossible
220
209
  * to get rid of the initial handler and it'd stick there forever.
221
210
  */
222
- var wrappedEventHandler = fn;
211
+ const wrappedEventHandler = fn;
223
212
  try {
224
- var originalEventHandler = wrappedEventHandler && wrappedEventHandler.__sentry_wrapped__;
213
+ const originalEventHandler = wrappedEventHandler && wrappedEventHandler.__sentry_wrapped__;
225
214
  if (originalEventHandler) {
226
215
  originalRemoveEventListener.call(this, eventName, originalEventHandler, options);
227
216
  }