@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
package/esm/client.d.ts CHANGED
@@ -1,33 +1,63 @@
1
1
  import { BaseClient, Scope } from '@sentry/core';
2
- import { Event, EventHint } from '@sentry/types';
3
- import { BrowserBackend, BrowserOptions } from './backend';
4
- import { ReportDialogOptions } from './helpers';
2
+ import { ClientOptions, Event, EventHint, Options, Severity, SeverityLevel } from '@sentry/types';
3
+ export interface BaseBrowserOptions {
4
+ /**
5
+ * A pattern for error URLs which should exclusively be sent to Sentry.
6
+ * This is the opposite of {@link Options.denyUrls}.
7
+ * By default, all errors will be sent.
8
+ */
9
+ allowUrls?: Array<string | RegExp>;
10
+ /**
11
+ * A pattern for error URLs which should not be sent to Sentry.
12
+ * To allow certain errors instead, use {@link Options.allowUrls}.
13
+ * By default, all errors will be sent.
14
+ */
15
+ denyUrls?: Array<string | RegExp>;
16
+ }
17
+ /**
18
+ * Configuration options for the Sentry Browser SDK.
19
+ * @see @sentry/types Options for more information.
20
+ */
21
+ export interface BrowserOptions extends Options, BaseBrowserOptions {
22
+ }
23
+ /**
24
+ * Configuration options for the Sentry Browser SDK Client class
25
+ * @see BrowserClient for more information.
26
+ */
27
+ export interface BrowserClientOptions extends ClientOptions, BaseBrowserOptions {
28
+ }
5
29
  /**
6
30
  * The Sentry Browser SDK Client.
7
31
  *
8
32
  * @see BrowserOptions for documentation on configuration options.
9
33
  * @see SentryClient for usage documentation.
10
34
  */
11
- export declare class BrowserClient extends BaseClient<BrowserBackend, BrowserOptions> {
35
+ export declare class BrowserClient extends BaseClient<BrowserClientOptions> {
12
36
  /**
13
37
  * Creates a new Browser SDK instance.
14
38
  *
15
39
  * @param options Configuration options for this SDK.
16
40
  */
17
- constructor(options?: BrowserOptions);
41
+ constructor(options: BrowserClientOptions);
18
42
  /**
19
- * Show a report dialog to the user to send feedback to a specific event.
20
- *
21
- * @param options Set individual options for the dialog
43
+ * @inheritDoc
22
44
  */
23
- showReportDialog(options?: ReportDialogOptions): void;
45
+ eventFromException(exception: unknown, hint?: EventHint): PromiseLike<Event>;
24
46
  /**
25
47
  * @inheritDoc
26
48
  */
27
- protected _prepareEvent(event: Event, scope?: Scope, hint?: EventHint): PromiseLike<Event | null>;
49
+ eventFromMessage(message: string, level?: Severity | SeverityLevel, hint?: EventHint): PromiseLike<Event>;
50
+ /**
51
+ * @inheritDoc
52
+ */
53
+ sendEvent(event: Event): void;
28
54
  /**
29
55
  * @inheritDoc
30
56
  */
31
- protected _sendEvent(event: Event): void;
57
+ protected _prepareEvent(event: Event, scope?: Scope, hint?: EventHint): PromiseLike<Event | null>;
58
+ /**
59
+ * Sends client reports as an envelope.
60
+ */
61
+ private _flushOutcomes;
32
62
  }
33
63
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAe,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAGjD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAE3D,OAAO,EAAsB,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAGpE;;;;;GAKG;AACH,qBAAa,aAAc,SAAQ,UAAU,CAAC,cAAc,EAAE,cAAc,CAAC;IAC3E;;;;OAIG;gBACgB,OAAO,GAAE,cAAmB;IAgB/C;;;;OAIG;IACI,gBAAgB,CAAC,OAAO,GAAE,mBAAwB,GAAG,IAAI;IAkBhE;;OAEG;IACH,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC;IAKjG;;OAEG;IACH,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;CAOzC"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAwD,KAAK,EAAe,MAAM,cAAc,CAAC;AACpH,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAkBlG,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IAEnC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;CACnC;AAED;;;GAGG;AACH,MAAM,WAAW,cAAe,SAAQ,OAAO,EAAE,kBAAkB;CAAG;AAEtE;;;GAGG;AACH,MAAM,WAAW,oBAAqB,SAAQ,aAAa,EAAE,kBAAkB;CAAG;AAElF;;;;;GAKG;AACH,qBAAa,aAAc,SAAQ,UAAU,CAAC,oBAAoB,CAAC;IACjE;;;;OAIG;gBACgB,OAAO,EAAE,oBAAoB;IAwBhD;;OAEG;IACI,kBAAkB,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC;IAInF;;OAEG;IACI,gBAAgB,CACrB,OAAO,EAAE,MAAM,EAEf,KAAK,GAAE,QAAQ,GAAG,aAAsB,EACxC,IAAI,CAAC,EAAE,SAAS,GACf,WAAW,CAAC,KAAK,CAAC;IAIrB;;OAEG;IACI,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAgCpC;;OAEG;IACH,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC;IAKjG;;OAEG;IACH,OAAO,CAAC,cAAc;CAwBvB"}
package/esm/client.js CHANGED
@@ -1,26 +1,23 @@
1
- import { __assign, __extends } from "tslib";
2
- import { BaseClient, SDK_VERSION } from '@sentry/core';
3
- import { getGlobalObject, logger } from '@sentry/utils';
4
- import { BrowserBackend } from './backend';
1
+ import { BaseClient, getCurrentHub, getEnvelopeEndpointWithUrlEncodedAuth, SDK_VERSION } from '@sentry/core';
2
+ import { createClientReportEnvelope, dsnToString, getEventDescription, getGlobalObject, logger, serializeEnvelope, } from '@sentry/utils';
3
+ import { eventFromException, eventFromMessage } from './eventbuilder';
5
4
  import { IS_DEBUG_BUILD } from './flags';
6
- import { injectReportDialog } from './helpers';
7
- import { Breadcrumbs } from './integrations';
5
+ import { BREADCRUMB_INTEGRATION_ID } from './integrations/breadcrumbs';
6
+ import { sendReport } from './transports/utils';
7
+ const globalObject = getGlobalObject();
8
8
  /**
9
9
  * The Sentry Browser SDK Client.
10
10
  *
11
11
  * @see BrowserOptions for documentation on configuration options.
12
12
  * @see SentryClient for usage documentation.
13
13
  */
14
- var BrowserClient = /** @class */ (function (_super) {
15
- __extends(BrowserClient, _super);
14
+ export class BrowserClient extends BaseClient {
16
15
  /**
17
16
  * Creates a new Browser SDK instance.
18
17
  *
19
18
  * @param options Configuration options for this SDK.
20
19
  */
21
- function BrowserClient(options) {
22
- if (options === void 0) { options = {}; }
23
- var _this = this;
20
+ constructor(options) {
24
21
  options._metadata = options._metadata || {};
25
22
  options._metadata.sdk = options._metadata.sdk || {
26
23
  name: 'sentry.javascript.browser',
@@ -32,45 +29,86 @@ var BrowserClient = /** @class */ (function (_super) {
32
29
  ],
33
30
  version: SDK_VERSION,
34
31
  };
35
- _this = _super.call(this, BrowserBackend, options) || this;
36
- return _this;
32
+ super(options);
33
+ if (options.sendClientReports && globalObject.document) {
34
+ globalObject.document.addEventListener('visibilitychange', () => {
35
+ if (globalObject.document.visibilityState === 'hidden') {
36
+ this._flushOutcomes();
37
+ }
38
+ });
39
+ }
37
40
  }
38
41
  /**
39
- * Show a report dialog to the user to send feedback to a specific event.
40
- *
41
- * @param options Set individual options for the dialog
42
+ * @inheritDoc
42
43
  */
43
- BrowserClient.prototype.showReportDialog = function (options) {
44
- if (options === void 0) { options = {}; }
45
- // doesn't work without a document (React Native)
46
- var document = getGlobalObject().document;
47
- if (!document) {
48
- return;
49
- }
50
- if (!this._isEnabled()) {
51
- IS_DEBUG_BUILD && logger.error('Trying to call showReportDialog with Sentry Client disabled');
52
- return;
44
+ eventFromException(exception, hint) {
45
+ return eventFromException(this._options.stackParser, exception, hint, this._options.attachStacktrace);
46
+ }
47
+ /**
48
+ * @inheritDoc
49
+ */
50
+ eventFromMessage(message,
51
+ // eslint-disable-next-line deprecation/deprecation
52
+ level = 'info', hint) {
53
+ return eventFromMessage(this._options.stackParser, message, level, hint, this._options.attachStacktrace);
54
+ }
55
+ /**
56
+ * @inheritDoc
57
+ */
58
+ sendEvent(event) {
59
+ // We only want to add the sentry event breadcrumb when the user has the breadcrumb integration installed and
60
+ // activated its `sentry` option.
61
+ // We also do not want to use the `Breadcrumbs` class here directly, because we do not want it to be included in
62
+ // bundles, if it is not used by the SDK.
63
+ // This all sadly is a bit ugly, but we currently don't have a "pre-send" hook on the integrations so we do it this
64
+ // way for now.
65
+ const breadcrumbIntegration = this.getIntegrationById(BREADCRUMB_INTEGRATION_ID);
66
+ if (breadcrumbIntegration &&
67
+ // We check for definedness of `options`, even though it is not strictly necessary, because that access to
68
+ // `.sentry` below does not throw, in case users provided their own integration with id "Breadcrumbs" that does
69
+ // not have an`options` field
70
+ breadcrumbIntegration.options &&
71
+ breadcrumbIntegration.options.sentry) {
72
+ getCurrentHub().addBreadcrumb({
73
+ category: `sentry.${event.type === 'transaction' ? 'transaction' : 'event'}`,
74
+ event_id: event.event_id,
75
+ level: event.level,
76
+ message: getEventDescription(event),
77
+ }, {
78
+ event,
79
+ });
53
80
  }
54
- injectReportDialog(__assign(__assign({}, options), { dsn: options.dsn || this.getDsn() }));
55
- };
81
+ super.sendEvent(event);
82
+ }
56
83
  /**
57
84
  * @inheritDoc
58
85
  */
59
- BrowserClient.prototype._prepareEvent = function (event, scope, hint) {
86
+ _prepareEvent(event, scope, hint) {
60
87
  event.platform = event.platform || 'javascript';
61
- return _super.prototype._prepareEvent.call(this, event, scope, hint);
62
- };
88
+ return super._prepareEvent(event, scope, hint);
89
+ }
63
90
  /**
64
- * @inheritDoc
91
+ * Sends client reports as an envelope.
65
92
  */
66
- BrowserClient.prototype._sendEvent = function (event) {
67
- var integration = this.getIntegration(Breadcrumbs);
68
- if (integration) {
69
- integration.addSentryBreadcrumb(event);
93
+ _flushOutcomes() {
94
+ const outcomes = this._clearOutcomes();
95
+ if (outcomes.length === 0) {
96
+ IS_DEBUG_BUILD && logger.log('No outcomes to send');
97
+ return;
70
98
  }
71
- _super.prototype._sendEvent.call(this, event);
72
- };
73
- return BrowserClient;
74
- }(BaseClient));
75
- export { BrowserClient };
99
+ if (!this._dsn) {
100
+ IS_DEBUG_BUILD && logger.log('No dsn provided, will not send outcomes');
101
+ return;
102
+ }
103
+ IS_DEBUG_BUILD && logger.log('Sending outcomes:', outcomes);
104
+ const url = getEnvelopeEndpointWithUrlEncodedAuth(this._dsn, this._options.tunnel);
105
+ const envelope = createClientReportEnvelope(outcomes, this._options.tunnel && dsnToString(this._dsn));
106
+ try {
107
+ sendReport(url, serializeEnvelope(envelope));
108
+ }
109
+ catch (e) {
110
+ IS_DEBUG_BUILD && logger.error(e);
111
+ }
112
+ }
113
+ }
76
114
  //# sourceMappingURL=client.js.map
package/esm/client.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/client.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAS,WAAW,EAAE,MAAM,cAAc,CAAC;AAE9D,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,EAAE,cAAc,EAAkB,MAAM,WAAW,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAuB,MAAM,WAAW,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C;;;;;GAKG;AACH;IAAmC,iCAA0C;IAC3E;;;;OAIG;IACH,uBAAmB,OAA4B;QAA5B,wBAAA,EAAA,YAA4B;QAA/C,iBAcC;QAbC,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;QAC5C,OAAO,CAAC,SAAS,CAAC,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI;YAC/C,IAAI,EAAE,2BAA2B;YACjC,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,qBAAqB;oBAC3B,OAAO,EAAE,WAAW;iBACrB;aACF;YACD,OAAO,EAAE,WAAW;SACrB,CAAC;QAEF,QAAA,kBAAM,cAAc,EAAE,OAAO,CAAC,SAAC;;IACjC,CAAC;IAED;;;;OAIG;IACI,wCAAgB,GAAvB,UAAwB,OAAiC;QAAjC,wBAAA,EAAA,YAAiC;QACvD,iDAAiD;QACjD,IAAM,QAAQ,GAAG,eAAe,EAAU,CAAC,QAAQ,CAAC;QACpD,IAAI,CAAC,QAAQ,EAAE;YACb,OAAO;SACR;QAED,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE;YACtB,cAAc,IAAI,MAAM,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC;YAC9F,OAAO;SACR;QAED,kBAAkB,uBACb,OAAO,KACV,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE,IACjC,CAAC;IACL,CAAC;IAED;;OAEG;IACO,qCAAa,GAAvB,UAAwB,KAAY,EAAE,KAAa,EAAE,IAAgB;QACnE,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,YAAY,CAAC;QAChD,OAAO,iBAAM,aAAa,YAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACO,kCAAU,GAApB,UAAqB,KAAY;QAC/B,IAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACrD,IAAI,WAAW,EAAE;YACf,WAAW,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;SACxC;QACD,iBAAM,UAAU,YAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IACH,oBAAC;AAAD,CAAC,AA/DD,CAAmC,UAAU,GA+D5C","sourcesContent":["import { BaseClient, Scope, SDK_VERSION } from '@sentry/core';\nimport { Event, EventHint } from '@sentry/types';\nimport { getGlobalObject, logger } from '@sentry/utils';\n\nimport { BrowserBackend, BrowserOptions } from './backend';\nimport { IS_DEBUG_BUILD } from './flags';\nimport { injectReportDialog, ReportDialogOptions } from './helpers';\nimport { Breadcrumbs } from './integrations';\n\n/**\n * The Sentry Browser SDK Client.\n *\n * @see BrowserOptions for documentation on configuration options.\n * @see SentryClient for usage documentation.\n */\nexport class BrowserClient extends BaseClient<BrowserBackend, BrowserOptions> {\n /**\n * Creates a new Browser SDK instance.\n *\n * @param options Configuration options for this SDK.\n */\n public constructor(options: BrowserOptions = {}) {\n options._metadata = options._metadata || {};\n options._metadata.sdk = options._metadata.sdk || {\n name: 'sentry.javascript.browser',\n packages: [\n {\n name: 'npm:@sentry/browser',\n version: SDK_VERSION,\n },\n ],\n version: SDK_VERSION,\n };\n\n super(BrowserBackend, options);\n }\n\n /**\n * Show a report dialog to the user to send feedback to a specific event.\n *\n * @param options Set individual options for the dialog\n */\n public showReportDialog(options: ReportDialogOptions = {}): void {\n // doesn't work without a document (React Native)\n const document = getGlobalObject<Window>().document;\n if (!document) {\n return;\n }\n\n if (!this._isEnabled()) {\n IS_DEBUG_BUILD && logger.error('Trying to call showReportDialog with Sentry Client disabled');\n return;\n }\n\n injectReportDialog({\n ...options,\n dsn: options.dsn || this.getDsn(),\n });\n }\n\n /**\n * @inheritDoc\n */\n protected _prepareEvent(event: Event, scope?: Scope, hint?: EventHint): PromiseLike<Event | null> {\n event.platform = event.platform || 'javascript';\n return super._prepareEvent(event, scope, hint);\n }\n\n /**\n * @inheritDoc\n */\n protected _sendEvent(event: Event): void {\n const integration = this.getIntegration(Breadcrumbs);\n if (integration) {\n integration.addSentryBreadcrumb(event);\n }\n super._sendEvent(event);\n }\n}\n"]}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/client.ts"],"names":[],"mappings":"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","sourcesContent":["import { BaseClient, getCurrentHub, getEnvelopeEndpointWithUrlEncodedAuth, Scope, SDK_VERSION } from '@sentry/core';\nimport { ClientOptions, Event, EventHint, Options, Severity, SeverityLevel } from '@sentry/types';\nimport {\n createClientReportEnvelope,\n dsnToString,\n getEventDescription,\n getGlobalObject,\n logger,\n serializeEnvelope,\n} from '@sentry/utils';\n\nimport { eventFromException, eventFromMessage } from './eventbuilder';\nimport { IS_DEBUG_BUILD } from './flags';\nimport { Breadcrumbs } from './integrations';\nimport { BREADCRUMB_INTEGRATION_ID } from './integrations/breadcrumbs';\nimport { sendReport } from './transports/utils';\n\nconst globalObject = getGlobalObject<Window>();\n\nexport interface BaseBrowserOptions {\n /**\n * A pattern for error URLs which should exclusively be sent to Sentry.\n * This is the opposite of {@link Options.denyUrls}.\n * By default, all errors will be sent.\n */\n allowUrls?: Array<string | RegExp>;\n\n /**\n * A pattern for error URLs which should not be sent to Sentry.\n * To allow certain errors instead, use {@link Options.allowUrls}.\n * By default, all errors will be sent.\n */\n denyUrls?: Array<string | RegExp>;\n}\n\n/**\n * Configuration options for the Sentry Browser SDK.\n * @see @sentry/types Options for more information.\n */\nexport interface BrowserOptions extends Options, BaseBrowserOptions {}\n\n/**\n * Configuration options for the Sentry Browser SDK Client class\n * @see BrowserClient for more information.\n */\nexport interface BrowserClientOptions extends ClientOptions, BaseBrowserOptions {}\n\n/**\n * The Sentry Browser SDK Client.\n *\n * @see BrowserOptions for documentation on configuration options.\n * @see SentryClient for usage documentation.\n */\nexport class BrowserClient extends BaseClient<BrowserClientOptions> {\n /**\n * Creates a new Browser SDK instance.\n *\n * @param options Configuration options for this SDK.\n */\n public constructor(options: BrowserClientOptions) {\n options._metadata = options._metadata || {};\n options._metadata.sdk = options._metadata.sdk || {\n name: 'sentry.javascript.browser',\n packages: [\n {\n name: 'npm:@sentry/browser',\n version: SDK_VERSION,\n },\n ],\n version: SDK_VERSION,\n };\n\n super(options);\n\n if (options.sendClientReports && globalObject.document) {\n globalObject.document.addEventListener('visibilitychange', () => {\n if (globalObject.document.visibilityState === 'hidden') {\n this._flushOutcomes();\n }\n });\n }\n }\n\n /**\n * @inheritDoc\n */\n public eventFromException(exception: unknown, hint?: EventHint): PromiseLike<Event> {\n return eventFromException(this._options.stackParser, exception, hint, this._options.attachStacktrace);\n }\n\n /**\n * @inheritDoc\n */\n public eventFromMessage(\n message: string,\n // eslint-disable-next-line deprecation/deprecation\n level: Severity | SeverityLevel = 'info',\n hint?: EventHint,\n ): PromiseLike<Event> {\n return eventFromMessage(this._options.stackParser, message, level, hint, this._options.attachStacktrace);\n }\n\n /**\n * @inheritDoc\n */\n public sendEvent(event: Event): void {\n // We only want to add the sentry event breadcrumb when the user has the breadcrumb integration installed and\n // activated its `sentry` option.\n // We also do not want to use the `Breadcrumbs` class here directly, because we do not want it to be included in\n // bundles, if it is not used by the SDK.\n // This all sadly is a bit ugly, but we currently don't have a \"pre-send\" hook on the integrations so we do it this\n // way for now.\n const breadcrumbIntegration = this.getIntegrationById(BREADCRUMB_INTEGRATION_ID) as Breadcrumbs | null;\n if (\n breadcrumbIntegration &&\n // We check for definedness of `options`, even though it is not strictly necessary, because that access to\n // `.sentry` below does not throw, in case users provided their own integration with id \"Breadcrumbs\" that does\n // not have an`options` field\n breadcrumbIntegration.options &&\n breadcrumbIntegration.options.sentry\n ) {\n getCurrentHub().addBreadcrumb(\n {\n category: `sentry.${event.type === 'transaction' ? 'transaction' : 'event'}`,\n event_id: event.event_id,\n level: event.level,\n message: getEventDescription(event),\n },\n {\n event,\n },\n );\n }\n\n super.sendEvent(event);\n }\n\n /**\n * @inheritDoc\n */\n protected _prepareEvent(event: Event, scope?: Scope, hint?: EventHint): PromiseLike<Event | null> {\n event.platform = event.platform || 'javascript';\n return super._prepareEvent(event, scope, hint);\n }\n\n /**\n * Sends client reports as an envelope.\n */\n private _flushOutcomes(): void {\n const outcomes = this._clearOutcomes();\n\n if (outcomes.length === 0) {\n IS_DEBUG_BUILD && logger.log('No outcomes to send');\n return;\n }\n\n if (!this._dsn) {\n IS_DEBUG_BUILD && logger.log('No dsn provided, will not send outcomes');\n return;\n }\n\n IS_DEBUG_BUILD && logger.log('Sending outcomes:', outcomes);\n\n const url = getEnvelopeEndpointWithUrlEncodedAuth(this._dsn, this._options.tunnel);\n const envelope = createClientReportEnvelope(outcomes, this._options.tunnel && dsnToString(this._dsn));\n\n try {\n sendReport(url, serializeEnvelope(envelope));\n } catch (e) {\n IS_DEBUG_BUILD && logger.error(e);\n }\n }\n}\n"]}
@@ -1,20 +1,18 @@
1
- import { Event, EventHint, Exception, Severity, StackFrame } from '@sentry/types';
1
+ import { Event, EventHint, Exception, Severity, SeverityLevel, StackFrame, StackParser } from '@sentry/types';
2
2
  /**
3
- * This function creates an exception from an TraceKitStackTrace
4
- * @param stacktrace TraceKitStackTrace that will be converted to an exception
5
- * @hidden
3
+ * This function creates an exception from a JavaScript Error
6
4
  */
7
- export declare function exceptionFromError(ex: Error): Exception;
5
+ export declare function exceptionFromError(stackParser: StackParser, ex: Error): Exception;
8
6
  /**
9
7
  * @hidden
10
8
  */
11
- export declare function eventFromPlainObject(exception: Record<string, unknown>, syntheticException?: Error, isUnhandledRejection?: boolean): Event;
9
+ export declare function eventFromPlainObject(stackParser: StackParser, exception: Record<string, unknown>, syntheticException?: Error, isUnhandledRejection?: boolean): Event;
12
10
  /**
13
11
  * @hidden
14
12
  */
15
- export declare function eventFromError(ex: Error): Event;
13
+ export declare function eventFromError(stackParser: StackParser, ex: Error): Event;
16
14
  /** Parses stack frames from an error */
17
- export declare function parseStackFrames(ex: Error & {
15
+ export declare function parseStackFrames(stackParser: StackParser, ex: Error & {
18
16
  framesToPop?: number;
19
17
  stacktrace?: string;
20
18
  }): StackFrame[];
@@ -22,18 +20,18 @@ export declare function parseStackFrames(ex: Error & {
22
20
  * Creates an {@link Event} from all inputs to `captureException` and non-primitive inputs to `captureMessage`.
23
21
  * @hidden
24
22
  */
25
- export declare function eventFromException(exception: unknown, hint?: EventHint, attachStacktrace?: boolean): PromiseLike<Event>;
23
+ export declare function eventFromException(stackParser: StackParser, exception: unknown, hint?: EventHint, attachStacktrace?: boolean): PromiseLike<Event>;
26
24
  /**
27
25
  * Builds and Event from a Message
28
26
  * @hidden
29
27
  */
30
- export declare function eventFromMessage(message: string, level?: Severity, hint?: EventHint, attachStacktrace?: boolean): PromiseLike<Event>;
28
+ export declare function eventFromMessage(stackParser: StackParser, message: string, level?: Severity | SeverityLevel, hint?: EventHint, attachStacktrace?: boolean): PromiseLike<Event>;
31
29
  /**
32
30
  * @hidden
33
31
  */
34
- export declare function eventFromUnknownInput(exception: unknown, syntheticException?: Error, attachStacktrace?: boolean, isUnhandledRejection?: boolean): Event;
32
+ export declare function eventFromUnknownInput(stackParser: StackParser, exception: unknown, syntheticException?: Error, attachStacktrace?: boolean, isUnhandledRejection?: boolean): Event;
35
33
  /**
36
34
  * @hidden
37
35
  */
38
- export declare function eventFromString(input: string, syntheticException?: Error, attachStacktrace?: boolean): Event;
36
+ export declare function eventFromString(stackParser: StackParser, input: string, syntheticException?: Error, attachStacktrace?: boolean): Event;
39
37
  //# sourceMappingURL=eventbuilder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"eventbuilder.d.ts","sourceRoot":"","sources":["../../../src/eventbuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAwBlF;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,KAAK,GAAG,SAAS,CAkBvD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,kBAAkB,CAAC,EAAE,KAAK,EAC1B,oBAAoB,CAAC,EAAE,OAAO,GAC7B,KAAK,CAyBP;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,KAAK,GAAG,KAAK,CAM/C;AAED,wCAAwC;AACxC,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,KAAK,GAAG;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,UAAU,EAAE,CAqBxG;AAmCD;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,OAAO,EAClB,IAAI,CAAC,EAAE,SAAS,EAChB,gBAAgB,CAAC,EAAE,OAAO,GACzB,WAAW,CAAC,KAAK,CAAC,CASpB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,QAAwB,EAC/B,IAAI,CAAC,EAAE,SAAS,EAChB,gBAAgB,CAAC,EAAE,OAAO,GACzB,WAAW,CAAC,KAAK,CAAC,CAQpB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,OAAO,EAClB,kBAAkB,CAAC,EAAE,KAAK,EAC1B,gBAAgB,CAAC,EAAE,OAAO,EAC1B,oBAAoB,CAAC,EAAE,OAAO,GAC7B,KAAK,CAiEP;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,kBAAkB,CAAC,EAAE,KAAK,EAAE,gBAAgB,CAAC,EAAE,OAAO,GAAG,KAAK,CAa5G"}
1
+ {"version":3,"file":"eventbuilder.d.ts","sourceRoot":"","sources":["../../../src/eventbuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAe9G;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,WAAW,EAAE,EAAE,EAAE,KAAK,GAAG,SAAS,CAkBjF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,kBAAkB,CAAC,EAAE,KAAK,EAC1B,oBAAoB,CAAC,EAAE,OAAO,GAC7B,KAAK,CA0BP;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,WAAW,EAAE,EAAE,EAAE,KAAK,GAAG,KAAK,CAMzE;AAED,wCAAwC;AACxC,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,WAAW,EACxB,EAAE,EAAE,KAAK,GAAG;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GACxD,UAAU,EAAE,CAed;AAmCD;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,OAAO,EAClB,IAAI,CAAC,EAAE,SAAS,EAChB,gBAAgB,CAAC,EAAE,OAAO,GACzB,WAAW,CAAC,KAAK,CAAC,CASpB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,EAEf,KAAK,GAAE,QAAQ,GAAG,aAAsB,EACxC,IAAI,CAAC,EAAE,SAAS,EAChB,gBAAgB,CAAC,EAAE,OAAO,GACzB,WAAW,CAAC,KAAK,CAAC,CAQpB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,OAAO,EAClB,kBAAkB,CAAC,EAAE,KAAK,EAC1B,gBAAgB,CAAC,EAAE,OAAO,EAC1B,oBAAoB,CAAC,EAAE,OAAO,GAC7B,KAAK,CAiEP;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,MAAM,EACb,kBAAkB,CAAC,EAAE,KAAK,EAC1B,gBAAgB,CAAC,EAAE,OAAO,GACzB,KAAK,CAeP"}
@@ -1,21 +1,16 @@
1
- import { __assign } from "tslib";
2
- import { Severity } from '@sentry/types';
3
- import { addExceptionMechanism, addExceptionTypeValue, createStackParser, extractExceptionKeysForMessage, isDOMError, isDOMException, isError, isErrorEvent, isEvent, isPlainObject, normalizeToSize, resolvedSyncPromise, } from '@sentry/utils';
4
- import { chromeStackParser, geckoStackParser, opera10StackParser, opera11StackParser, winjsStackParser, } from './stack-parsers';
1
+ import { addExceptionMechanism, addExceptionTypeValue, extractExceptionKeysForMessage, isDOMError, isDOMException, isError, isErrorEvent, isEvent, isPlainObject, normalizeToSize, resolvedSyncPromise, } from '@sentry/utils';
5
2
  /**
6
- * This function creates an exception from an TraceKitStackTrace
7
- * @param stacktrace TraceKitStackTrace that will be converted to an exception
8
- * @hidden
3
+ * This function creates an exception from a JavaScript Error
9
4
  */
10
- export function exceptionFromError(ex) {
5
+ export function exceptionFromError(stackParser, ex) {
11
6
  // Get the frames first since Opera can lose the stack if we touch anything else first
12
- var frames = parseStackFrames(ex);
13
- var exception = {
7
+ const frames = parseStackFrames(stackParser, ex);
8
+ const exception = {
14
9
  type: ex && ex.name,
15
10
  value: extractMessage(ex),
16
11
  };
17
12
  if (frames.length) {
18
- exception.stacktrace = { frames: frames };
13
+ exception.stacktrace = { frames };
19
14
  }
20
15
  if (exception.type === undefined && exception.value === '') {
21
16
  exception.value = 'Unrecoverable error caught';
@@ -25,13 +20,13 @@ export function exceptionFromError(ex) {
25
20
  /**
26
21
  * @hidden
27
22
  */
28
- export function eventFromPlainObject(exception, syntheticException, isUnhandledRejection) {
29
- var event = {
23
+ export function eventFromPlainObject(stackParser, exception, syntheticException, isUnhandledRejection) {
24
+ const event = {
30
25
  exception: {
31
26
  values: [
32
27
  {
33
28
  type: isEvent(exception) ? exception.constructor.name : isUnhandledRejection ? 'UnhandledRejection' : 'Error',
34
- value: "Non-Error " + (isUnhandledRejection ? 'promise rejection' : 'exception') + " captured with keys: " + extractExceptionKeysForMessage(exception),
29
+ value: `Non-Error ${isUnhandledRejection ? 'promise rejection' : 'exception'} captured with keys: ${extractExceptionKeysForMessage(exception)}`,
35
30
  },
36
31
  ],
37
32
  },
@@ -40,9 +35,10 @@ export function eventFromPlainObject(exception, syntheticException, isUnhandledR
40
35
  },
41
36
  };
42
37
  if (syntheticException) {
43
- var frames_1 = parseStackFrames(syntheticException);
44
- if (frames_1.length) {
45
- event.stacktrace = { frames: frames_1 };
38
+ const frames = parseStackFrames(stackParser, syntheticException);
39
+ if (frames.length) {
40
+ // event.exception.values[0] has been set above
41
+ event.exception.values[0].stacktrace = { frames };
46
42
  }
47
43
  }
48
44
  return event;
@@ -50,22 +46,22 @@ export function eventFromPlainObject(exception, syntheticException, isUnhandledR
50
46
  /**
51
47
  * @hidden
52
48
  */
53
- export function eventFromError(ex) {
49
+ export function eventFromError(stackParser, ex) {
54
50
  return {
55
51
  exception: {
56
- values: [exceptionFromError(ex)],
52
+ values: [exceptionFromError(stackParser, ex)],
57
53
  },
58
54
  };
59
55
  }
60
56
  /** Parses stack frames from an error */
61
- export function parseStackFrames(ex) {
57
+ export function parseStackFrames(stackParser, ex) {
62
58
  // Access and store the stacktrace property before doing ANYTHING
63
59
  // else to it because Opera is not very good at providing it
64
60
  // reliably in other circumstances.
65
- var stacktrace = ex.stacktrace || ex.stack || '';
66
- var popSize = getPopSize(ex);
61
+ const stacktrace = ex.stacktrace || ex.stack || '';
62
+ const popSize = getPopSize(ex);
67
63
  try {
68
- return createStackParser(opera10StackParser, opera11StackParser, chromeStackParser, winjsStackParser, geckoStackParser)(stacktrace, popSize);
64
+ return stackParser(stacktrace, popSize);
69
65
  }
70
66
  catch (e) {
71
67
  // no-empty
@@ -73,7 +69,7 @@ export function parseStackFrames(ex) {
73
69
  return [];
74
70
  }
75
71
  // Based on our own mapping pattern - https://github.com/getsentry/sentry/blob/9f08305e09866c8bd6d0c24f5b0aabdd7dd6c59c/src/sentry/lang/javascript/errormapping.py#L83-L108
76
- var reactMinifiedRegexp = /Minified React error #\d+;/i;
72
+ const reactMinifiedRegexp = /Minified React error #\d+;/i;
77
73
  function getPopSize(ex) {
78
74
  if (ex) {
79
75
  if (typeof ex.framesToPop === 'number') {
@@ -91,7 +87,7 @@ function getPopSize(ex) {
91
87
  * In this specific case we try to extract stacktrace.message.error.message
92
88
  */
93
89
  function extractMessage(ex) {
94
- var message = ex && ex.message;
90
+ const message = ex && ex.message;
95
91
  if (!message) {
96
92
  return 'No error message';
97
93
  }
@@ -104,11 +100,11 @@ function extractMessage(ex) {
104
100
  * Creates an {@link Event} from all inputs to `captureException` and non-primitive inputs to `captureMessage`.
105
101
  * @hidden
106
102
  */
107
- export function eventFromException(exception, hint, attachStacktrace) {
108
- var syntheticException = (hint && hint.syntheticException) || undefined;
109
- var event = eventFromUnknownInput(exception, syntheticException, attachStacktrace);
103
+ export function eventFromException(stackParser, exception, hint, attachStacktrace) {
104
+ const syntheticException = (hint && hint.syntheticException) || undefined;
105
+ const event = eventFromUnknownInput(stackParser, exception, syntheticException, attachStacktrace);
110
106
  addExceptionMechanism(event); // defaults to { type: 'generic', handled: true }
111
- event.level = Severity.Error;
107
+ event.level = 'error';
112
108
  if (hint && hint.event_id) {
113
109
  event.event_id = hint.event_id;
114
110
  }
@@ -118,10 +114,11 @@ export function eventFromException(exception, hint, attachStacktrace) {
118
114
  * Builds and Event from a Message
119
115
  * @hidden
120
116
  */
121
- export function eventFromMessage(message, level, hint, attachStacktrace) {
122
- if (level === void 0) { level = Severity.Info; }
123
- var syntheticException = (hint && hint.syntheticException) || undefined;
124
- var event = eventFromString(message, syntheticException, attachStacktrace);
117
+ export function eventFromMessage(stackParser, message,
118
+ // eslint-disable-next-line deprecation/deprecation
119
+ level = 'info', hint, attachStacktrace) {
120
+ const syntheticException = (hint && hint.syntheticException) || undefined;
121
+ const event = eventFromString(stackParser, message, syntheticException, attachStacktrace);
125
122
  event.level = level;
126
123
  if (hint && hint.event_id) {
127
124
  event.event_id = hint.event_id;
@@ -131,12 +128,12 @@ export function eventFromMessage(message, level, hint, attachStacktrace) {
131
128
  /**
132
129
  * @hidden
133
130
  */
134
- export function eventFromUnknownInput(exception, syntheticException, attachStacktrace, isUnhandledRejection) {
135
- var event;
131
+ export function eventFromUnknownInput(stackParser, exception, syntheticException, attachStacktrace, isUnhandledRejection) {
132
+ let event;
136
133
  if (isErrorEvent(exception) && exception.error) {
137
134
  // If it is an ErrorEvent with `error` property, extract it to get actual Error
138
- var errorEvent = exception;
139
- return eventFromError(errorEvent.error);
135
+ const errorEvent = exception;
136
+ return eventFromError(stackParser, errorEvent.error);
140
137
  }
141
138
  // If it is a `DOMError` (which is a legacy API, but still supported in some browsers) then we just extract the name
142
139
  // and message, as it doesn't provide anything else. According to the spec, all `DOMExceptions` should also be
@@ -146,31 +143,31 @@ export function eventFromUnknownInput(exception, syntheticException, attachStack
146
143
  // https://developer.mozilla.org/en-US/docs/Web/API/DOMException
147
144
  // https://webidl.spec.whatwg.org/#es-DOMException-specialness
148
145
  if (isDOMError(exception) || isDOMException(exception)) {
149
- var domException = exception;
146
+ const domException = exception;
150
147
  if ('stack' in exception) {
151
- event = eventFromError(exception);
148
+ event = eventFromError(stackParser, exception);
152
149
  }
153
150
  else {
154
- var name_1 = domException.name || (isDOMError(domException) ? 'DOMError' : 'DOMException');
155
- var message = domException.message ? name_1 + ": " + domException.message : name_1;
156
- event = eventFromString(message, syntheticException, attachStacktrace);
151
+ const name = domException.name || (isDOMError(domException) ? 'DOMError' : 'DOMException');
152
+ const message = domException.message ? `${name}: ${domException.message}` : name;
153
+ event = eventFromString(stackParser, message, syntheticException, attachStacktrace);
157
154
  addExceptionTypeValue(event, message);
158
155
  }
159
156
  if ('code' in domException) {
160
- event.tags = __assign(__assign({}, event.tags), { 'DOMException.code': "" + domException.code });
157
+ event.tags = Object.assign(Object.assign({}, event.tags), { 'DOMException.code': `${domException.code}` });
161
158
  }
162
159
  return event;
163
160
  }
164
161
  if (isError(exception)) {
165
162
  // we have a real Error object, do nothing
166
- return eventFromError(exception);
163
+ return eventFromError(stackParser, exception);
167
164
  }
168
165
  if (isPlainObject(exception) || isEvent(exception)) {
169
166
  // If it's a plain object or an instance of `Event` (the built-in JS kind, not this SDK's `Event` type), serialize
170
167
  // it manually. This will allow us to group events based on top-level keys which is much better than creating a new
171
168
  // group on any key/value change.
172
- var objectException = exception;
173
- event = eventFromPlainObject(objectException, syntheticException, isUnhandledRejection);
169
+ const objectException = exception;
170
+ event = eventFromPlainObject(stackParser, objectException, syntheticException, isUnhandledRejection);
174
171
  addExceptionMechanism(event, {
175
172
  synthetic: true,
176
173
  });
@@ -185,8 +182,8 @@ export function eventFromUnknownInput(exception, syntheticException, attachStack
185
182
  // - a plain Object
186
183
  //
187
184
  // So bail out and capture it as a simple message:
188
- event = eventFromString(exception, syntheticException, attachStacktrace);
189
- addExceptionTypeValue(event, "" + exception, undefined);
185
+ event = eventFromString(stackParser, exception, syntheticException, attachStacktrace);
186
+ addExceptionTypeValue(event, `${exception}`, undefined);
190
187
  addExceptionMechanism(event, {
191
188
  synthetic: true,
192
189
  });
@@ -195,14 +192,16 @@ export function eventFromUnknownInput(exception, syntheticException, attachStack
195
192
  /**
196
193
  * @hidden
197
194
  */
198
- export function eventFromString(input, syntheticException, attachStacktrace) {
199
- var event = {
195
+ export function eventFromString(stackParser, input, syntheticException, attachStacktrace) {
196
+ const event = {
200
197
  message: input,
201
198
  };
202
199
  if (attachStacktrace && syntheticException) {
203
- var frames_2 = parseStackFrames(syntheticException);
204
- if (frames_2.length) {
205
- event.stacktrace = { frames: frames_2 };
200
+ const frames = parseStackFrames(stackParser, syntheticException);
201
+ if (frames.length) {
202
+ event.exception = {
203
+ values: [{ value: input, stacktrace: { frames } }],
204
+ };
206
205
  }
207
206
  }
208
207
  return event;