@grafana/faro-web-sdk 2.3.1 → 2.5.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 (169) hide show
  1. package/README.md +1 -0
  2. package/dist/bundle/faro-web-sdk.iife.js +1 -1
  3. package/dist/bundle/types/index.d.ts +2 -2
  4. package/dist/bundle/types/instrumentations/console/instrumentation.d.ts +1 -1
  5. package/dist/bundle/types/instrumentations/csp/instrumentation.d.ts +1 -1
  6. package/dist/bundle/types/instrumentations/errors/instrumentation.d.ts +1 -1
  7. package/dist/bundle/types/instrumentations/navigation/instrumentation.d.ts +1 -1
  8. package/dist/bundle/types/instrumentations/performance/instrumentation.d.ts +1 -1
  9. package/dist/bundle/types/instrumentations/session/instrumentation.d.ts +1 -1
  10. package/dist/bundle/types/instrumentations/userActions/instrumentation.d.ts +1 -1
  11. package/dist/bundle/types/instrumentations/view/instrumentation.d.ts +1 -1
  12. package/dist/bundle/types/instrumentations/webVitals/instrumentation.d.ts +1 -1
  13. package/dist/bundle/types/metas/index.d.ts +1 -0
  14. package/dist/bundle/types/metas/os/index.d.ts +1 -0
  15. package/dist/bundle/types/metas/os/meta.d.ts +2 -0
  16. package/dist/bundle/types/metas/shared/index.d.ts +1 -0
  17. package/dist/bundle/types/metas/shared/uaParser.d.ts +4 -0
  18. package/dist/bundle/types/transports/console/transport.d.ts +1 -1
  19. package/dist/bundle/types/transports/fetch/transport.d.ts +1 -1
  20. package/dist/cjs/config/getWebInstrumentations.js +3 -4
  21. package/dist/cjs/config/getWebInstrumentations.js.map +1 -1
  22. package/dist/cjs/config/makeCoreConfig.js +49 -60
  23. package/dist/cjs/config/makeCoreConfig.js.map +1 -1
  24. package/dist/cjs/index.js +3 -2
  25. package/dist/cjs/index.js.map +1 -1
  26. package/dist/cjs/initialize.js +3 -3
  27. package/dist/cjs/initialize.js.map +1 -1
  28. package/dist/cjs/instrumentations/_internal/activityWindowTracker.js +52 -68
  29. package/dist/cjs/instrumentations/_internal/activityWindowTracker.js.map +1 -1
  30. package/dist/cjs/instrumentations/_internal/monitors/consoleMonitor.js +11 -16
  31. package/dist/cjs/instrumentations/_internal/monitors/consoleMonitor.js.map +1 -1
  32. package/dist/cjs/instrumentations/_internal/monitors/domMutationMonitor.js +5 -5
  33. package/dist/cjs/instrumentations/_internal/monitors/domMutationMonitor.js.map +1 -1
  34. package/dist/cjs/instrumentations/_internal/monitors/httpRequestMonitor.js +28 -30
  35. package/dist/cjs/instrumentations/_internal/monitors/httpRequestMonitor.js.map +1 -1
  36. package/dist/cjs/instrumentations/_internal/monitors/interactionMonitor.js +7 -7
  37. package/dist/cjs/instrumentations/_internal/monitors/interactionMonitor.js.map +1 -1
  38. package/dist/cjs/instrumentations/_internal/monitors/performanceEntriesMonitor.js +8 -8
  39. package/dist/cjs/instrumentations/_internal/monitors/performanceEntriesMonitor.js.map +1 -1
  40. package/dist/cjs/instrumentations/_internal/monitors/urlChangeMonitor.js +24 -32
  41. package/dist/cjs/instrumentations/_internal/monitors/urlChangeMonitor.js.map +1 -1
  42. package/dist/cjs/instrumentations/console/instrumentation.js +29 -49
  43. package/dist/cjs/instrumentations/console/instrumentation.js.map +1 -1
  44. package/dist/cjs/instrumentations/csp/instrumentation.js +14 -32
  45. package/dist/cjs/instrumentations/csp/instrumentation.js.map +1 -1
  46. package/dist/cjs/instrumentations/errors/getErrorDetails.js +23 -23
  47. package/dist/cjs/instrumentations/errors/getErrorDetails.js.map +1 -1
  48. package/dist/cjs/instrumentations/errors/getValueAndTypeFromMessage.js +5 -5
  49. package/dist/cjs/instrumentations/errors/getValueAndTypeFromMessage.js.map +1 -1
  50. package/dist/cjs/instrumentations/errors/instrumentation.js +11 -29
  51. package/dist/cjs/instrumentations/errors/instrumentation.js.map +1 -1
  52. package/dist/cjs/instrumentations/errors/registerOnerror.js +6 -10
  53. package/dist/cjs/instrumentations/errors/registerOnerror.js.map +1 -1
  54. package/dist/cjs/instrumentations/errors/registerOnunhandledrejection.js +16 -17
  55. package/dist/cjs/instrumentations/errors/registerOnunhandledrejection.js.map +1 -1
  56. package/dist/cjs/instrumentations/errors/stackFrames/buildStackFrame.js +2 -2
  57. package/dist/cjs/instrumentations/errors/stackFrames/buildStackFrame.js.map +1 -1
  58. package/dist/cjs/instrumentations/errors/stackFrames/getDataFromSafariExtensions.js +4 -4
  59. package/dist/cjs/instrumentations/errors/stackFrames/getDataFromSafariExtensions.js.map +1 -1
  60. package/dist/cjs/instrumentations/errors/stackFrames/getStackFramesFromError.js +16 -17
  61. package/dist/cjs/instrumentations/errors/stackFrames/getStackFramesFromError.js.map +1 -1
  62. package/dist/cjs/instrumentations/errors/stackFrames/parseStacktrace.js +1 -1
  63. package/dist/cjs/instrumentations/errors/stackFrames/parseStacktrace.js.map +1 -1
  64. package/dist/cjs/instrumentations/navigation/instrumentation.js +27 -45
  65. package/dist/cjs/instrumentations/navigation/instrumentation.js.map +1 -1
  66. package/dist/cjs/instrumentations/performance/instrumentation.js +19 -74
  67. package/dist/cjs/instrumentations/performance/instrumentation.js.map +1 -1
  68. package/dist/cjs/instrumentations/performance/navigation.js +15 -26
  69. package/dist/cjs/instrumentations/performance/navigation.js.map +1 -1
  70. package/dist/cjs/instrumentations/performance/performanceUtils.js +18 -33
  71. package/dist/cjs/instrumentations/performance/performanceUtils.js.map +1 -1
  72. package/dist/cjs/instrumentations/performance/resource.js +13 -25
  73. package/dist/cjs/instrumentations/performance/resource.js.map +1 -1
  74. package/dist/cjs/instrumentations/session/instrumentation.js +45 -74
  75. package/dist/cjs/instrumentations/session/instrumentation.js.map +1 -1
  76. package/dist/cjs/instrumentations/session/sessionManager/PersistentSessionsManager.js +21 -24
  77. package/dist/cjs/instrumentations/session/sessionManager/PersistentSessionsManager.js.map +1 -1
  78. package/dist/cjs/instrumentations/session/sessionManager/VolatileSessionManager.js +21 -24
  79. package/dist/cjs/instrumentations/session/sessionManager/VolatileSessionManager.js.map +1 -1
  80. package/dist/cjs/instrumentations/session/sessionManager/getSessionManagerByConfig.js +2 -2
  81. package/dist/cjs/instrumentations/session/sessionManager/getSessionManagerByConfig.js.map +1 -1
  82. package/dist/cjs/instrumentations/session/sessionManager/sampling.js +5 -5
  83. package/dist/cjs/instrumentations/session/sessionManager/sampling.js.map +1 -1
  84. package/dist/cjs/instrumentations/session/sessionManager/sessionManagerUtils.js +47 -65
  85. package/dist/cjs/instrumentations/session/sessionManager/sessionManagerUtils.js.map +1 -1
  86. package/dist/cjs/instrumentations/userActions/instrumentation.js +15 -34
  87. package/dist/cjs/instrumentations/userActions/instrumentation.js.map +1 -1
  88. package/dist/cjs/instrumentations/userActions/processUserActionEventHandler.js +11 -11
  89. package/dist/cjs/instrumentations/userActions/processUserActionEventHandler.js.map +1 -1
  90. package/dist/cjs/instrumentations/userActions/userActionController.js +49 -53
  91. package/dist/cjs/instrumentations/userActions/userActionController.js.map +1 -1
  92. package/dist/cjs/instrumentations/userActions/util.js +4 -4
  93. package/dist/cjs/instrumentations/userActions/util.js.map +1 -1
  94. package/dist/cjs/instrumentations/view/instrumentation.js +12 -30
  95. package/dist/cjs/instrumentations/view/instrumentation.js.map +1 -1
  96. package/dist/cjs/instrumentations/webVitals/instrumentation.js +11 -29
  97. package/dist/cjs/instrumentations/webVitals/instrumentation.js.map +1 -1
  98. package/dist/cjs/instrumentations/webVitals/webVitalsWithAttribution.js +87 -94
  99. package/dist/cjs/instrumentations/webVitals/webVitalsWithAttribution.js.map +1 -1
  100. package/dist/cjs/metas/browser/meta.js +13 -14
  101. package/dist/cjs/metas/browser/meta.js.map +1 -1
  102. package/dist/cjs/metas/index.js +3 -1
  103. package/dist/cjs/metas/index.js.map +1 -1
  104. package/dist/cjs/metas/k6/meta.js +3 -14
  105. package/dist/cjs/metas/k6/meta.js.map +1 -1
  106. package/dist/cjs/metas/os/index.js +6 -0
  107. package/dist/cjs/metas/os/index.js.map +1 -0
  108. package/dist/cjs/metas/os/meta.js +20 -0
  109. package/dist/cjs/metas/os/meta.js.map +1 -0
  110. package/dist/cjs/metas/page/meta.js +7 -19
  111. package/dist/cjs/metas/page/meta.js.map +1 -1
  112. package/dist/cjs/metas/sdk/meta.js +3 -3
  113. package/dist/cjs/metas/sdk/meta.js.map +1 -1
  114. package/dist/cjs/metas/session/createSession.js +2 -2
  115. package/dist/cjs/metas/session/createSession.js.map +1 -1
  116. package/dist/cjs/metas/shared/index.js +6 -0
  117. package/dist/cjs/metas/shared/index.js.map +1 -0
  118. package/dist/cjs/metas/shared/uaParser.js +18 -0
  119. package/dist/cjs/metas/shared/uaParser.js.map +1 -0
  120. package/dist/cjs/transports/console/transport.js +10 -29
  121. package/dist/cjs/transports/console/transport.js.map +1 -1
  122. package/dist/cjs/transports/fetch/transport.js +82 -176
  123. package/dist/cjs/transports/fetch/transport.js.map +1 -1
  124. package/dist/cjs/utils/throttle.js +6 -10
  125. package/dist/cjs/utils/throttle.js.map +1 -1
  126. package/dist/cjs/utils/url.js +4 -5
  127. package/dist/cjs/utils/url.js.map +1 -1
  128. package/dist/cjs/utils/webStorage.js +4 -4
  129. package/dist/cjs/utils/webStorage.js.map +1 -1
  130. package/dist/esm/config/makeCoreConfig.js +2 -1
  131. package/dist/esm/config/makeCoreConfig.js.map +1 -1
  132. package/dist/esm/index.js +1 -1
  133. package/dist/esm/index.js.map +1 -1
  134. package/dist/esm/instrumentations/_internal/activityWindowTracker.js +10 -5
  135. package/dist/esm/instrumentations/_internal/activityWindowTracker.js.map +1 -1
  136. package/dist/esm/instrumentations/errors/getErrorDetails.js +1 -0
  137. package/dist/esm/instrumentations/errors/getErrorDetails.js.map +1 -1
  138. package/dist/esm/metas/browser/meta.js +5 -6
  139. package/dist/esm/metas/browser/meta.js.map +1 -1
  140. package/dist/esm/metas/index.js +1 -0
  141. package/dist/esm/metas/index.js.map +1 -1
  142. package/dist/esm/metas/os/index.js +2 -0
  143. package/dist/esm/metas/os/index.js.map +1 -0
  144. package/dist/esm/metas/os/meta.js +16 -0
  145. package/dist/esm/metas/os/meta.js.map +1 -0
  146. package/dist/esm/metas/shared/index.js +2 -0
  147. package/dist/esm/metas/shared/index.js.map +1 -0
  148. package/dist/esm/metas/shared/uaParser.js +15 -0
  149. package/dist/esm/metas/shared/uaParser.js.map +1 -0
  150. package/dist/esm/transports/fetch/transport.js +1 -1
  151. package/dist/esm/transports/fetch/transport.js.map +1 -1
  152. package/dist/types/index.d.ts +2 -2
  153. package/dist/types/instrumentations/console/instrumentation.d.ts +1 -1
  154. package/dist/types/instrumentations/csp/instrumentation.d.ts +1 -1
  155. package/dist/types/instrumentations/errors/instrumentation.d.ts +1 -1
  156. package/dist/types/instrumentations/navigation/instrumentation.d.ts +1 -1
  157. package/dist/types/instrumentations/performance/instrumentation.d.ts +1 -1
  158. package/dist/types/instrumentations/session/instrumentation.d.ts +1 -1
  159. package/dist/types/instrumentations/userActions/instrumentation.d.ts +1 -1
  160. package/dist/types/instrumentations/view/instrumentation.d.ts +1 -1
  161. package/dist/types/instrumentations/webVitals/instrumentation.d.ts +1 -1
  162. package/dist/types/metas/index.d.ts +1 -0
  163. package/dist/types/metas/os/index.d.ts +1 -0
  164. package/dist/types/metas/os/meta.d.ts +2 -0
  165. package/dist/types/metas/shared/index.d.ts +1 -0
  166. package/dist/types/metas/shared/uaParser.d.ts +4 -0
  167. package/dist/types/transports/console/transport.d.ts +1 -1
  168. package/dist/types/transports/fetch/transport.d.ts +1 -1
  169. package/package.json +5 -5
@@ -1,64 +1,45 @@
1
1
  "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
2
  Object.defineProperty(exports, "__esModule", { value: true });
18
3
  exports.ConsoleInstrumentation = void 0;
19
- var faro_core_1 = require("@grafana/faro-core");
20
- var consoleMonitor_1 = require("../_internal/monitors/consoleMonitor");
21
- var getErrorDetails_1 = require("../errors/getErrorDetails");
22
- var ConsoleInstrumentation = /** @class */ (function (_super) {
23
- __extends(ConsoleInstrumentation, _super);
24
- function ConsoleInstrumentation() {
25
- var _this = _super !== null && _super.apply(this, arguments) || this;
26
- _this.name = '@grafana/faro-web-sdk:instrumentation-console';
27
- _this.version = faro_core_1.VERSION;
28
- _this.errorSerializer = faro_core_1.defaultLogArgsSerializer;
29
- return _this;
4
+ const faro_core_1 = require("@grafana/faro-core");
5
+ const consoleMonitor_1 = require("../_internal/monitors/consoleMonitor");
6
+ const getErrorDetails_1 = require("../errors/getErrorDetails");
7
+ class ConsoleInstrumentation extends faro_core_1.BaseInstrumentation {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.name = '@grafana/faro-web-sdk:instrumentation-console';
11
+ this.version = faro_core_1.VERSION;
12
+ this.errorSerializer = faro_core_1.defaultLogArgsSerializer;
30
13
  }
31
- ConsoleInstrumentation.prototype.initialize = function () {
32
- var _this = this;
14
+ initialize() {
33
15
  var _a, _b;
34
- var instrumentationOptions = this.config.consoleInstrumentation;
35
- var serializeErrors = (instrumentationOptions === null || instrumentationOptions === void 0 ? void 0 : instrumentationOptions.serializeErrors) || !!(instrumentationOptions === null || instrumentationOptions === void 0 ? void 0 : instrumentationOptions.errorSerializer);
16
+ const instrumentationOptions = this.config.consoleInstrumentation;
17
+ const serializeErrors = (instrumentationOptions === null || instrumentationOptions === void 0 ? void 0 : instrumentationOptions.serializeErrors) || !!(instrumentationOptions === null || instrumentationOptions === void 0 ? void 0 : instrumentationOptions.errorSerializer);
36
18
  this.errorSerializer = serializeErrors
37
19
  ? ((_a = instrumentationOptions === null || instrumentationOptions === void 0 ? void 0 : instrumentationOptions.errorSerializer) !== null && _a !== void 0 ? _a : faro_core_1.defaultErrorArgsSerializer)
38
20
  : faro_core_1.defaultLogArgsSerializer;
39
- var disabledLevels = (_b = instrumentationOptions === null || instrumentationOptions === void 0 ? void 0 : instrumentationOptions.disabledLevels) !== null && _b !== void 0 ? _b : ConsoleInstrumentation.defaultDisabledLevels;
21
+ const disabledLevels = (_b = instrumentationOptions === null || instrumentationOptions === void 0 ? void 0 : instrumentationOptions.disabledLevels) !== null && _b !== void 0 ? _b : ConsoleInstrumentation.defaultDisabledLevels;
40
22
  // Pass unpatchedConsole to the monitor (only first caller's value is used)
41
- var consoleMonitor = (0, consoleMonitor_1.monitorConsole)(this.unpatchedConsole);
23
+ const consoleMonitor = (0, consoleMonitor_1.monitorConsole)(this.unpatchedConsole);
42
24
  // Subscribe this Faro instance to console events
43
- this.subscription = consoleMonitor.subscribe(function (_a) {
44
- var level = _a.level, args = _a.args;
25
+ this.subscription = consoleMonitor.subscribe(({ level, args }) => {
45
26
  // Skip if this level is disabled for this instance
46
27
  if (disabledLevels.includes(level)) {
47
28
  return;
48
29
  }
49
30
  try {
50
31
  if (level === faro_core_1.LogLevel.ERROR && !(instrumentationOptions === null || instrumentationOptions === void 0 ? void 0 : instrumentationOptions.consoleErrorAsLog)) {
51
- var _b = (0, getErrorDetails_1.getDetailsFromConsoleErrorArgs)(args, _this.errorSerializer), value = _b.value, type = _b.type, stackFrames = _b.stackFrames;
32
+ const { value, type, stackFrames } = (0, getErrorDetails_1.getDetailsFromConsoleErrorArgs)(args, this.errorSerializer);
52
33
  if (value && !type && !stackFrames) {
53
- _this.api.pushError(new Error(ConsoleInstrumentation.consoleErrorPrefix + value));
34
+ this.api.pushError(new Error(ConsoleInstrumentation.consoleErrorPrefix + value));
54
35
  return;
55
36
  }
56
- _this.api.pushError(new Error(ConsoleInstrumentation.consoleErrorPrefix + value), { type: type, stackFrames: stackFrames });
37
+ this.api.pushError(new Error(ConsoleInstrumentation.consoleErrorPrefix + value), { type, stackFrames });
57
38
  }
58
39
  else if (level === faro_core_1.LogLevel.ERROR && (instrumentationOptions === null || instrumentationOptions === void 0 ? void 0 : instrumentationOptions.consoleErrorAsLog)) {
59
- var _c = (0, getErrorDetails_1.getDetailsFromConsoleErrorArgs)(args, _this.errorSerializer), value = _c.value, type = _c.type, stackFrames = _c.stackFrames;
60
- _this.api.pushLog(value ? [ConsoleInstrumentation.consoleErrorPrefix + value] : args, {
61
- level: level,
40
+ const { value, type, stackFrames } = (0, getErrorDetails_1.getDetailsFromConsoleErrorArgs)(args, this.errorSerializer);
41
+ this.api.pushLog(value ? [ConsoleInstrumentation.consoleErrorPrefix + value] : args, {
42
+ level,
62
43
  context: {
63
44
  value: value !== null && value !== void 0 ? value : '',
64
45
  type: type !== null && type !== void 0 ? type : '',
@@ -67,23 +48,22 @@ var ConsoleInstrumentation = /** @class */ (function (_super) {
67
48
  });
68
49
  }
69
50
  else {
70
- _this.api.pushLog(args, { level: level });
51
+ this.api.pushLog(args, { level });
71
52
  }
72
53
  }
73
54
  catch (err) {
74
- _this.logError(err);
55
+ this.logError(err);
75
56
  }
76
57
  });
77
- };
58
+ }
78
59
  // Clean up subscription when instrumentation is destroyed
79
- ConsoleInstrumentation.prototype.destroy = function () {
60
+ destroy() {
80
61
  var _a;
81
62
  (_a = this.subscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
82
63
  this.subscription = undefined;
83
- };
84
- ConsoleInstrumentation.defaultDisabledLevels = [faro_core_1.LogLevel.DEBUG, faro_core_1.LogLevel.TRACE, faro_core_1.LogLevel.LOG];
85
- ConsoleInstrumentation.consoleErrorPrefix = 'console.error: ';
86
- return ConsoleInstrumentation;
87
- }(faro_core_1.BaseInstrumentation));
64
+ }
65
+ }
88
66
  exports.ConsoleInstrumentation = ConsoleInstrumentation;
67
+ ConsoleInstrumentation.defaultDisabledLevels = [faro_core_1.LogLevel.DEBUG, faro_core_1.LogLevel.TRACE, faro_core_1.LogLevel.LOG];
68
+ ConsoleInstrumentation.consoleErrorPrefix = 'console.error: ';
89
69
  //# sourceMappingURL=instrumentation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../../../src/instrumentations/console/instrumentation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,gDAM4B;AAG5B,uEAAsE;AACtE,6DAA2E;AAE3E;IAA4C,0CAAmB;IAA/D;;QACW,UAAI,GAAG,+CAA+C,CAAC;QACvD,aAAO,GAAG,mBAAO,CAAC;QAKnB,qBAAe,GAAsB,oCAAwB,CAAC;;IA0DxE,CAAC;IAvDC,2CAAU,GAAV;QAAA,iBAgDC;;QA/CC,IAAM,sBAAsB,GAAG,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC;QAElE,IAAM,eAAe,GAAG,CAAA,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,eAAe,KAAI,CAAC,CAAC,CAAA,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,eAAe,CAAA,CAAC;QAC7G,IAAI,CAAC,eAAe,GAAG,eAAe;YACpC,CAAC,CAAC,CAAC,MAAA,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,eAAe,mCAAI,sCAA0B,CAAC;YACzE,CAAC,CAAC,oCAAwB,CAAC;QAE7B,IAAM,cAAc,GAAG,MAAA,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,cAAc,mCAAI,sBAAsB,CAAC,qBAAqB,CAAC;QAE9G,2EAA2E;QAC3E,IAAM,cAAc,GAAG,IAAA,+BAAc,EAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAE7D,iDAAiD;QACjD,IAAI,CAAC,YAAY,GAAG,cAAc,CAAC,SAAS,CAAC,UAAC,EAAe;gBAAb,KAAK,WAAA,EAAE,IAAI,UAAA;YACzD,mDAAmD;YACnD,IAAI,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnC,OAAO;YACT,CAAC;YAED,IAAI,CAAC;gBACH,IAAI,KAAK,KAAK,oBAAQ,CAAC,KAAK,IAAI,CAAC,CAAA,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,iBAAiB,CAAA,EAAE,CAAC;oBACrE,IAAA,KAA+B,IAAA,gDAA8B,EAAC,IAAI,EAAE,KAAI,CAAC,eAAe,CAAC,EAAvF,KAAK,WAAA,EAAE,IAAI,UAAA,EAAE,WAAW,iBAA+D,CAAC;oBAEhG,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;wBACnC,KAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,sBAAsB,CAAC,kBAAkB,GAAG,KAAK,CAAC,CAAC,CAAC;wBACjF,OAAO;oBACT,CAAC;oBAED,KAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,sBAAsB,CAAC,kBAAkB,GAAG,KAAK,CAAC,EAAE,EAAE,IAAI,MAAA,EAAE,WAAW,aAAA,EAAE,CAAC,CAAC;gBAC1G,CAAC;qBAAM,IAAI,KAAK,KAAK,oBAAQ,CAAC,KAAK,KAAI,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,iBAAiB,CAAA,EAAE,CAAC;oBAC3E,IAAA,KAA+B,IAAA,gDAA8B,EAAC,IAAI,EAAE,KAAI,CAAC,eAAe,CAAC,EAAvF,KAAK,WAAA,EAAE,IAAI,UAAA,EAAE,WAAW,iBAA+D,CAAC;oBAEhG,KAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,kBAAkB,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;wBACnF,KAAK,OAAA;wBACL,OAAO,EAAE;4BACP,KAAK,EAAE,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,EAAE;4BAClB,IAAI,EAAE,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE;4BAChB,WAAW,EAAE,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,MAAM,EAAC,CAAC,CAAC,IAAA,sCAA0B,EAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;yBAChF;qBACF,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,KAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,KAAK,OAAA,EAAE,CAAC,CAAC;gBACpC,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,KAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,0DAA0D;IAC1D,wCAAO,GAAP;;QACE,MAAA,IAAI,CAAC,YAAY,0CAAE,WAAW,EAAE,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;IAChC,CAAC;IA5DM,4CAAqB,GAAe,CAAC,oBAAQ,CAAC,KAAK,EAAE,oBAAQ,CAAC,KAAK,EAAE,oBAAQ,CAAC,GAAG,CAAC,AAA7D,CAA8D;IACnF,yCAAkB,GAAG,iBAAiB,AAApB,CAAqB;IA4DhD,6BAAC;CAAA,AAjED,CAA4C,+BAAmB,GAiE9D;AAjEY,wDAAsB","sourcesContent":["import {\n BaseInstrumentation,\n defaultErrorArgsSerializer,\n defaultLogArgsSerializer,\n LogLevel,\n VERSION,\n} from '@grafana/faro-core';\nimport type { LogArgsSerializer, Subscription } from '@grafana/faro-core';\n\nimport { monitorConsole } from '../_internal/monitors/consoleMonitor';\nimport { getDetailsFromConsoleErrorArgs } from '../errors/getErrorDetails';\n\nexport class ConsoleInstrumentation extends BaseInstrumentation {\n readonly name = '@grafana/faro-web-sdk:instrumentation-console';\n readonly version = VERSION;\n\n static defaultDisabledLevels: LogLevel[] = [LogLevel.DEBUG, LogLevel.TRACE, LogLevel.LOG];\n static consoleErrorPrefix = 'console.error: ';\n\n private errorSerializer: LogArgsSerializer = defaultLogArgsSerializer;\n private subscription: Subscription | undefined;\n\n initialize() {\n const instrumentationOptions = this.config.consoleInstrumentation;\n\n const serializeErrors = instrumentationOptions?.serializeErrors || !!instrumentationOptions?.errorSerializer;\n this.errorSerializer = serializeErrors\n ? (instrumentationOptions?.errorSerializer ?? defaultErrorArgsSerializer)\n : defaultLogArgsSerializer;\n\n const disabledLevels = instrumentationOptions?.disabledLevels ?? ConsoleInstrumentation.defaultDisabledLevels;\n\n // Pass unpatchedConsole to the monitor (only first caller's value is used)\n const consoleMonitor = monitorConsole(this.unpatchedConsole);\n\n // Subscribe this Faro instance to console events\n this.subscription = consoleMonitor.subscribe(({ level, args }) => {\n // Skip if this level is disabled for this instance\n if (disabledLevels.includes(level)) {\n return;\n }\n\n try {\n if (level === LogLevel.ERROR && !instrumentationOptions?.consoleErrorAsLog) {\n const { value, type, stackFrames } = getDetailsFromConsoleErrorArgs(args, this.errorSerializer);\n\n if (value && !type && !stackFrames) {\n this.api.pushError(new Error(ConsoleInstrumentation.consoleErrorPrefix + value));\n return;\n }\n\n this.api.pushError(new Error(ConsoleInstrumentation.consoleErrorPrefix + value), { type, stackFrames });\n } else if (level === LogLevel.ERROR && instrumentationOptions?.consoleErrorAsLog) {\n const { value, type, stackFrames } = getDetailsFromConsoleErrorArgs(args, this.errorSerializer);\n\n this.api.pushLog(value ? [ConsoleInstrumentation.consoleErrorPrefix + value] : args, {\n level,\n context: {\n value: value ?? '',\n type: type ?? '',\n stackFrames: stackFrames?.length ? defaultErrorArgsSerializer(stackFrames) : '',\n },\n });\n } else {\n this.api.pushLog(args, { level });\n }\n } catch (err) {\n this.logError(err);\n }\n });\n }\n\n // Clean up subscription when instrumentation is destroyed\n destroy() {\n this.subscription?.unsubscribe();\n this.subscription = undefined;\n }\n}\n"]}
1
+ {"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../../../src/instrumentations/console/instrumentation.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n BaseInstrumentation,\n defaultErrorArgsSerializer,\n defaultLogArgsSerializer,\n LogLevel,\n VERSION,\n} from '@grafana/faro-core';\nimport type { LogArgsSerializer, Subscription } from '@grafana/faro-core';\n\nimport { monitorConsole } from '../_internal/monitors/consoleMonitor';\nimport { getDetailsFromConsoleErrorArgs } from '../errors/getErrorDetails';\n\nexport class ConsoleInstrumentation extends BaseInstrumentation {\n readonly name = '@grafana/faro-web-sdk:instrumentation-console';\n readonly version = VERSION;\n\n static defaultDisabledLevels: LogLevel[] = [LogLevel.DEBUG, LogLevel.TRACE, LogLevel.LOG];\n static consoleErrorPrefix = 'console.error: ';\n\n private errorSerializer: LogArgsSerializer = defaultLogArgsSerializer;\n private subscription: Subscription | undefined;\n\n initialize() {\n const instrumentationOptions = this.config.consoleInstrumentation;\n\n const serializeErrors = instrumentationOptions?.serializeErrors || !!instrumentationOptions?.errorSerializer;\n this.errorSerializer = serializeErrors\n ? (instrumentationOptions?.errorSerializer ?? defaultErrorArgsSerializer)\n : defaultLogArgsSerializer;\n\n const disabledLevels = instrumentationOptions?.disabledLevels ?? ConsoleInstrumentation.defaultDisabledLevels;\n\n // Pass unpatchedConsole to the monitor (only first caller's value is used)\n const consoleMonitor = monitorConsole(this.unpatchedConsole);\n\n // Subscribe this Faro instance to console events\n this.subscription = consoleMonitor.subscribe(({ level, args }) => {\n // Skip if this level is disabled for this instance\n if (disabledLevels.includes(level)) {\n return;\n }\n\n try {\n if (level === LogLevel.ERROR && !instrumentationOptions?.consoleErrorAsLog) {\n const { value, type, stackFrames } = getDetailsFromConsoleErrorArgs(args, this.errorSerializer);\n\n if (value && !type && !stackFrames) {\n this.api.pushError(new Error(ConsoleInstrumentation.consoleErrorPrefix + value));\n return;\n }\n\n this.api.pushError(new Error(ConsoleInstrumentation.consoleErrorPrefix + value), { type, stackFrames });\n } else if (level === LogLevel.ERROR && instrumentationOptions?.consoleErrorAsLog) {\n const { value, type, stackFrames } = getDetailsFromConsoleErrorArgs(args, this.errorSerializer);\n\n this.api.pushLog(value ? [ConsoleInstrumentation.consoleErrorPrefix + value] : args, {\n level,\n context: {\n value: value ?? '',\n type: type ?? '',\n stackFrames: stackFrames?.length ? defaultErrorArgsSerializer(stackFrames) : '',\n },\n });\n } else {\n this.api.pushLog(args, { level });\n }\n } catch (err) {\n this.logError(err);\n }\n });\n }\n\n // Clean up subscription when instrumentation is destroyed\n destroy() {\n this.subscription?.unsubscribe();\n this.subscription = undefined;\n }\n}\n"]}
@@ -1,41 +1,24 @@
1
1
  "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
2
  Object.defineProperty(exports, "__esModule", { value: true });
18
3
  exports.CSPInstrumentation = void 0;
19
- var faro_core_1 = require("@grafana/faro-core");
20
- var CSPInstrumentation = /** @class */ (function (_super) {
21
- __extends(CSPInstrumentation, _super);
22
- function CSPInstrumentation() {
23
- var _this = _super.call(this) || this;
24
- _this.name = '@grafana/faro-web-sdk:instrumentation-csp';
25
- _this.version = faro_core_1.VERSION;
26
- return _this;
4
+ const faro_core_1 = require("@grafana/faro-core");
5
+ class CSPInstrumentation extends faro_core_1.BaseInstrumentation {
6
+ constructor() {
7
+ super();
8
+ this.name = '@grafana/faro-web-sdk:instrumentation-csp';
9
+ this.version = faro_core_1.VERSION;
27
10
  }
28
- CSPInstrumentation.prototype.initialize = function () {
11
+ initialize() {
29
12
  document.addEventListener('securitypolicyviolation', this.securitypolicyviolationHandler.bind(this));
30
- };
31
- CSPInstrumentation.prototype.destroy = function () {
13
+ }
14
+ destroy() {
32
15
  document.removeEventListener('securitypolicyviolation', this.securitypolicyviolationHandler);
33
- };
34
- CSPInstrumentation.prototype.securitypolicyviolationHandler = function (ev) {
16
+ }
17
+ securitypolicyviolationHandler(ev) {
35
18
  // We must explicitly extract properties because SecurityPolicyViolationEvent
36
19
  // properties are getters on the prototype chain, not own enumerable properties.
37
20
  // Object.entries() would not capture them.
38
- var attributes = {
21
+ const attributes = {
39
22
  blockedURI: ev.blockedURI,
40
23
  columnNumber: ev.columnNumber,
41
24
  disposition: ev.disposition,
@@ -50,8 +33,7 @@ var CSPInstrumentation = /** @class */ (function (_super) {
50
33
  violatedDirective: ev.violatedDirective,
51
34
  };
52
35
  this.api.pushEvent('securitypolicyviolation', (0, faro_core_1.stringifyObjectValues)(attributes));
53
- };
54
- return CSPInstrumentation;
55
- }(faro_core_1.BaseInstrumentation));
36
+ }
37
+ }
56
38
  exports.CSPInstrumentation = CSPInstrumentation;
57
39
  //# sourceMappingURL=instrumentation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../../../src/instrumentations/csp/instrumentation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,gDAAyF;AAGzF;IAAwC,sCAAmB;IAIzD;QACE,YAAA,MAAK,WAAE,SAAC;QAJD,UAAI,GAAG,2CAA2C,CAAC;QACnD,aAAO,GAAG,mBAAO,CAAC;;IAI3B,CAAC;IAED,uCAAU,GAAV;QACE,QAAQ,CAAC,gBAAgB,CAAC,yBAAyB,EAAE,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACvG,CAAC;IAED,oCAAO,GAAP;QACE,QAAQ,CAAC,mBAAmB,CAAC,yBAAyB,EAAE,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAC/F,CAAC;IAEM,2DAA8B,GAArC,UAAsC,EAAgC;QACpE,6EAA6E;QAC7E,gFAAgF;QAChF,2CAA2C;QAC3C,IAAM,UAAU,GAAG;YACjB,UAAU,EAAE,EAAE,CAAC,UAAU;YACzB,YAAY,EAAE,EAAE,CAAC,YAAY;YAC7B,WAAW,EAAE,EAAE,CAAC,WAAW;YAC3B,WAAW,EAAE,EAAE,CAAC,WAAW;YAC3B,kBAAkB,EAAE,EAAE,CAAC,kBAAkB;YACzC,UAAU,EAAE,EAAE,CAAC,UAAU;YACzB,cAAc,EAAE,EAAE,CAAC,cAAc;YACjC,QAAQ,EAAE,EAAE,CAAC,QAAQ;YACrB,MAAM,EAAE,EAAE,CAAC,MAAM;YACjB,UAAU,EAAE,EAAE,CAAC,UAAU;YACzB,UAAU,EAAE,EAAE,CAAC,UAAU;YACzB,iBAAiB,EAAE,EAAE,CAAC,iBAAiB;SACxC,CAAC;QAEF,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,yBAAyB,EAAE,IAAA,iCAAqB,EAAC,UAAU,CAAC,CAAC,CAAC;IACnF,CAAC;IACH,yBAAC;AAAD,CAAC,AArCD,CAAwC,+BAAmB,GAqC1D;AArCY,gDAAkB","sourcesContent":["import { BaseInstrumentation, stringifyObjectValues, VERSION } from '@grafana/faro-core';\nimport type { Instrumentation } from '@grafana/faro-core';\n\nexport class CSPInstrumentation extends BaseInstrumentation implements Instrumentation {\n readonly name = '@grafana/faro-web-sdk:instrumentation-csp';\n readonly version = VERSION;\n\n constructor() {\n super();\n }\n\n initialize() {\n document.addEventListener('securitypolicyviolation', this.securitypolicyviolationHandler.bind(this));\n }\n\n destroy() {\n document.removeEventListener('securitypolicyviolation', this.securitypolicyviolationHandler);\n }\n\n public securitypolicyviolationHandler(ev: SecurityPolicyViolationEvent) {\n // We must explicitly extract properties because SecurityPolicyViolationEvent\n // properties are getters on the prototype chain, not own enumerable properties.\n // Object.entries() would not capture them.\n const attributes = {\n blockedURI: ev.blockedURI,\n columnNumber: ev.columnNumber,\n disposition: ev.disposition,\n documentURI: ev.documentURI,\n effectiveDirective: ev.effectiveDirective,\n lineNumber: ev.lineNumber,\n originalPolicy: ev.originalPolicy,\n referrer: ev.referrer,\n sample: ev.sample,\n sourceFile: ev.sourceFile,\n statusCode: ev.statusCode,\n violatedDirective: ev.violatedDirective,\n };\n\n this.api.pushEvent('securitypolicyviolation', stringifyObjectValues(attributes));\n }\n}\n"]}
1
+ {"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../../../src/instrumentations/csp/instrumentation.ts"],"names":[],"mappings":";;;AAAA,kDAAyF;AAGzF,MAAa,kBAAmB,SAAQ,+BAAmB;IAIzD;QACE,KAAK,EAAE,CAAC;QAJD,SAAI,GAAG,2CAA2C,CAAC;QACnD,YAAO,GAAG,mBAAO,CAAC;IAI3B,CAAC;IAED,UAAU;QACR,QAAQ,CAAC,gBAAgB,CAAC,yBAAyB,EAAE,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACvG,CAAC;IAED,OAAO;QACL,QAAQ,CAAC,mBAAmB,CAAC,yBAAyB,EAAE,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAC/F,CAAC;IAEM,8BAA8B,CAAC,EAAgC;QACpE,6EAA6E;QAC7E,gFAAgF;QAChF,2CAA2C;QAC3C,MAAM,UAAU,GAAG;YACjB,UAAU,EAAE,EAAE,CAAC,UAAU;YACzB,YAAY,EAAE,EAAE,CAAC,YAAY;YAC7B,WAAW,EAAE,EAAE,CAAC,WAAW;YAC3B,WAAW,EAAE,EAAE,CAAC,WAAW;YAC3B,kBAAkB,EAAE,EAAE,CAAC,kBAAkB;YACzC,UAAU,EAAE,EAAE,CAAC,UAAU;YACzB,cAAc,EAAE,EAAE,CAAC,cAAc;YACjC,QAAQ,EAAE,EAAE,CAAC,QAAQ;YACrB,MAAM,EAAE,EAAE,CAAC,MAAM;YACjB,UAAU,EAAE,EAAE,CAAC,UAAU;YACzB,UAAU,EAAE,EAAE,CAAC,UAAU;YACzB,iBAAiB,EAAE,EAAE,CAAC,iBAAiB;SACxC,CAAC;QAEF,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,yBAAyB,EAAE,IAAA,iCAAqB,EAAC,UAAU,CAAC,CAAC,CAAC;IACnF,CAAC;CACF;AArCD,gDAqCC","sourcesContent":["import { BaseInstrumentation, stringifyObjectValues, VERSION } from '@grafana/faro-core';\nimport type { Instrumentation } from '@grafana/faro-core';\n\nexport class CSPInstrumentation extends BaseInstrumentation implements Instrumentation {\n readonly name = '@grafana/faro-web-sdk:instrumentation-csp';\n readonly version = VERSION;\n\n constructor() {\n super();\n }\n\n initialize() {\n document.addEventListener('securitypolicyviolation', this.securitypolicyviolationHandler.bind(this));\n }\n\n destroy() {\n document.removeEventListener('securitypolicyviolation', this.securitypolicyviolationHandler);\n }\n\n public securitypolicyviolationHandler(ev: SecurityPolicyViolationEvent) {\n // We must explicitly extract properties because SecurityPolicyViolationEvent\n // properties are getters on the prototype chain, not own enumerable properties.\n // Object.entries() would not capture them.\n const attributes = {\n blockedURI: ev.blockedURI,\n columnNumber: ev.columnNumber,\n disposition: ev.disposition,\n documentURI: ev.documentURI,\n effectiveDirective: ev.effectiveDirective,\n lineNumber: ev.lineNumber,\n originalPolicy: ev.originalPolicy,\n referrer: ev.referrer,\n sample: ev.sample,\n sourceFile: ev.sourceFile,\n statusCode: ev.statusCode,\n violatedDirective: ev.violatedDirective,\n };\n\n this.api.pushEvent('securitypolicyviolation', stringifyObjectValues(attributes));\n }\n}\n"]}
@@ -3,55 +3,55 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getErrorDetails = getErrorDetails;
4
4
  exports.getDetailsFromErrorArgs = getDetailsFromErrorArgs;
5
5
  exports.getDetailsFromConsoleErrorArgs = getDetailsFromConsoleErrorArgs;
6
- var faro_core_1 = require("@grafana/faro-core");
7
- var const_1 = require("./const");
8
- var getValueAndTypeFromMessage_1 = require("./getValueAndTypeFromMessage");
9
- var stackFrames_1 = require("./stackFrames");
6
+ const faro_core_1 = require("@grafana/faro-core");
7
+ const const_1 = require("./const");
8
+ const getValueAndTypeFromMessage_1 = require("./getValueAndTypeFromMessage");
9
+ const stackFrames_1 = require("./stackFrames");
10
10
  function getErrorDetails(evt) {
11
- var value;
12
- var type;
13
- var stackFrames = [];
14
- var isDomErrorRes;
15
- var isEventRes;
11
+ let value;
12
+ let type;
13
+ let stackFrames = [];
14
+ let isDomErrorRes;
15
+ let isEventRes;
16
16
  if ((0, faro_core_1.isErrorEvent)(evt) && evt.error) {
17
17
  value = evt.error.message;
18
18
  type = evt.error.name;
19
19
  stackFrames = (0, stackFrames_1.getStackFramesFromError)(evt.error);
20
20
  }
21
21
  else if ((isDomErrorRes = (0, faro_core_1.isDomError)(evt)) || (0, faro_core_1.isDomException)(evt)) {
22
- var name_1 = evt.name, message = evt.message;
23
- type = name_1 !== null && name_1 !== void 0 ? name_1 : (isDomErrorRes ? const_1.domErrorType : const_1.domExceptionType);
24
- value = message ? "".concat(type, ": ").concat(message) : type;
22
+ const { name, message } = evt;
23
+ type = name !== null && name !== void 0 ? name : (isDomErrorRes ? const_1.domErrorType : const_1.domExceptionType);
24
+ value = message ? `${type}: ${message}` : type;
25
25
  }
26
26
  else if ((0, faro_core_1.isError)(evt)) {
27
+ type = evt.name;
27
28
  value = evt.message;
28
29
  stackFrames = (0, stackFrames_1.getStackFramesFromError)(evt);
29
30
  }
30
31
  else if ((0, faro_core_1.isObject)(evt) || (isEventRes = (0, faro_core_1.isEvent)(evt))) {
31
32
  type = isEventRes ? evt.constructor.name : undefined;
32
- value = "".concat(const_1.objectEventValue, " ").concat(Object.keys(evt));
33
+ value = `${const_1.objectEventValue} ${Object.keys(evt)}`;
33
34
  }
34
35
  return [value, type, stackFrames];
35
36
  }
36
37
  function getDetailsFromErrorArgs(args) {
37
- var _a, _b;
38
- var evt = args[0], source = args[1], lineno = args[2], colno = args[3], error = args[4];
39
- var value;
40
- var type;
41
- var stackFrames = [];
42
- var eventIsString = (0, faro_core_1.isString)(evt);
43
- var initialStackFrame = (0, stackFrames_1.buildStackFrame)(source, const_1.unknownSymbolString, lineno, colno);
38
+ const [evt, source, lineno, colno, error] = args;
39
+ let value;
40
+ let type;
41
+ let stackFrames = [];
42
+ const eventIsString = (0, faro_core_1.isString)(evt);
43
+ const initialStackFrame = (0, stackFrames_1.buildStackFrame)(source, const_1.unknownSymbolString, lineno, colno);
44
44
  if (error || !eventIsString) {
45
- _a = getErrorDetails((error !== null && error !== void 0 ? error : evt)), value = _a[0], type = _a[1], stackFrames = _a[2];
45
+ [value, type, stackFrames] = getErrorDetails((error !== null && error !== void 0 ? error : evt));
46
46
  if (stackFrames.length === 0) {
47
47
  stackFrames = [initialStackFrame];
48
48
  }
49
49
  }
50
50
  else if (eventIsString) {
51
- _b = (0, getValueAndTypeFromMessage_1.getValueAndTypeFromMessage)(evt), value = _b[0], type = _b[1];
51
+ [value, type] = (0, getValueAndTypeFromMessage_1.getValueAndTypeFromMessage)(evt);
52
52
  stackFrames = [initialStackFrame];
53
53
  }
54
- return { value: value, type: type, stackFrames: stackFrames };
54
+ return { value, type, stackFrames };
55
55
  }
56
56
  function getDetailsFromConsoleErrorArgs(args, serializer) {
57
57
  if ((0, faro_core_1.isError)(args[0])) {
@@ -1 +1 @@
1
- {"version":3,"file":"getErrorDetails.js","sourceRoot":"","sources":["../../../../src/instrumentations/errors/getErrorDetails.ts"],"names":[],"mappings":"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","sourcesContent":["import { isDomError, isDomException, isError, isErrorEvent, isEvent, isObject, isString } from '@grafana/faro-core';\nimport type { ExceptionStackFrame, LogArgsSerializer } from '@grafana/faro-core';\n\nimport { domErrorType, domExceptionType, objectEventValue, unknownSymbolString } from './const';\nimport { getValueAndTypeFromMessage } from './getValueAndTypeFromMessage';\nimport { buildStackFrame, getStackFramesFromError } from './stackFrames';\nimport type { ErrorEvent } from './types';\n\nexport function getErrorDetails(evt: ErrorEvent): [string | undefined, string | undefined, ExceptionStackFrame[]] {\n let value: string | undefined;\n let type: string | undefined;\n let stackFrames: ExceptionStackFrame[] = [];\n let isDomErrorRes: boolean | undefined;\n let isEventRes: boolean | undefined;\n\n if (isErrorEvent(evt) && evt.error) {\n value = evt.error.message;\n type = evt.error.name;\n stackFrames = getStackFramesFromError(evt.error);\n } else if ((isDomErrorRes = isDomError(evt)) || isDomException(evt)) {\n const { name, message } = evt;\n\n type = name ?? (isDomErrorRes ? domErrorType : domExceptionType);\n value = message ? `${type}: ${message}` : type;\n } else if (isError(evt)) {\n value = evt.message;\n stackFrames = getStackFramesFromError(evt);\n } else if (isObject(evt) || (isEventRes = isEvent(evt))) {\n type = isEventRes ? evt.constructor.name : undefined;\n value = `${objectEventValue} ${Object.keys(evt)}`;\n }\n\n return [value, type, stackFrames];\n}\n\nexport interface ErrorDetails {\n value?: string;\n type?: string;\n stackFrames?: ExceptionStackFrame[];\n}\n\nexport function getDetailsFromErrorArgs(args: [any?, ...any[]]): ErrorDetails {\n const [evt, source, lineno, colno, error] = args;\n\n let value: string | undefined;\n let type: string | undefined;\n let stackFrames: ExceptionStackFrame[] = [];\n const eventIsString = isString(evt);\n const initialStackFrame = buildStackFrame(source, unknownSymbolString, lineno, colno);\n\n if (error || !eventIsString) {\n [value, type, stackFrames] = getErrorDetails((error ?? evt) as Error | Event);\n\n if (stackFrames.length === 0) {\n stackFrames = [initialStackFrame];\n }\n } else if (eventIsString) {\n [value, type] = getValueAndTypeFromMessage(evt);\n stackFrames = [initialStackFrame];\n }\n\n return { value, type, stackFrames };\n}\n\nexport function getDetailsFromConsoleErrorArgs(args: [any?, ...any[]], serializer: LogArgsSerializer): ErrorDetails {\n if (isError(args[0])) {\n return getDetailsFromErrorArgs(args);\n } else {\n return { value: serializer(args) };\n }\n}\n"]}
1
+ {"version":3,"file":"getErrorDetails.js","sourceRoot":"","sources":["../../../../src/instrumentations/errors/getErrorDetails.ts"],"names":[],"mappings":"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","sourcesContent":["import { isDomError, isDomException, isError, isErrorEvent, isEvent, isObject, isString } from '@grafana/faro-core';\nimport type { ExceptionStackFrame, LogArgsSerializer } from '@grafana/faro-core';\n\nimport { domErrorType, domExceptionType, objectEventValue, unknownSymbolString } from './const';\nimport { getValueAndTypeFromMessage } from './getValueAndTypeFromMessage';\nimport { buildStackFrame, getStackFramesFromError } from './stackFrames';\nimport type { ErrorEvent } from './types';\n\nexport function getErrorDetails(evt: ErrorEvent): [string | undefined, string | undefined, ExceptionStackFrame[]] {\n let value: string | undefined;\n let type: string | undefined;\n let stackFrames: ExceptionStackFrame[] = [];\n let isDomErrorRes: boolean | undefined;\n let isEventRes: boolean | undefined;\n\n if (isErrorEvent(evt) && evt.error) {\n value = evt.error.message;\n type = evt.error.name;\n stackFrames = getStackFramesFromError(evt.error);\n } else if ((isDomErrorRes = isDomError(evt)) || isDomException(evt)) {\n const { name, message } = evt;\n\n type = name ?? (isDomErrorRes ? domErrorType : domExceptionType);\n value = message ? `${type}: ${message}` : type;\n } else if (isError(evt)) {\n type = evt.name;\n value = evt.message;\n stackFrames = getStackFramesFromError(evt);\n } else if (isObject(evt) || (isEventRes = isEvent(evt))) {\n type = isEventRes ? evt.constructor.name : undefined;\n value = `${objectEventValue} ${Object.keys(evt)}`;\n }\n\n return [value, type, stackFrames];\n}\n\nexport interface ErrorDetails {\n value?: string;\n type?: string;\n stackFrames?: ExceptionStackFrame[];\n}\n\nexport function getDetailsFromErrorArgs(args: [any?, ...any[]]): ErrorDetails {\n const [evt, source, lineno, colno, error] = args;\n\n let value: string | undefined;\n let type: string | undefined;\n let stackFrames: ExceptionStackFrame[] = [];\n const eventIsString = isString(evt);\n const initialStackFrame = buildStackFrame(source, unknownSymbolString, lineno, colno);\n\n if (error || !eventIsString) {\n [value, type, stackFrames] = getErrorDetails((error ?? evt) as Error | Event);\n\n if (stackFrames.length === 0) {\n stackFrames = [initialStackFrame];\n }\n } else if (eventIsString) {\n [value, type] = getValueAndTypeFromMessage(evt);\n stackFrames = [initialStackFrame];\n }\n\n return { value, type, stackFrames };\n}\n\nexport function getDetailsFromConsoleErrorArgs(args: [any?, ...any[]], serializer: LogArgsSerializer): ErrorDetails {\n if (isError(args[0])) {\n return getDetailsFromErrorArgs(args);\n } else {\n return { value: serializer(args) };\n }\n}\n"]}
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getValueAndTypeFromMessage = getValueAndTypeFromMessage;
4
- var faro_core_1 = require("@grafana/faro-core");
5
- var const_1 = require("./const");
4
+ const faro_core_1 = require("@grafana/faro-core");
5
+ const const_1 = require("./const");
6
6
  function getValueAndTypeFromMessage(message) {
7
7
  var _a, _b;
8
- var groups = message.match(const_1.valueTypeRegex);
9
- var type = (_a = groups === null || groups === void 0 ? void 0 : groups[1]) !== null && _a !== void 0 ? _a : faro_core_1.defaultExceptionType;
10
- var value = (_b = groups === null || groups === void 0 ? void 0 : groups[2]) !== null && _b !== void 0 ? _b : message;
8
+ const groups = message.match(const_1.valueTypeRegex);
9
+ const type = (_a = groups === null || groups === void 0 ? void 0 : groups[1]) !== null && _a !== void 0 ? _a : faro_core_1.defaultExceptionType;
10
+ const value = (_b = groups === null || groups === void 0 ? void 0 : groups[2]) !== null && _b !== void 0 ? _b : message;
11
11
  return [value, type];
12
12
  }
13
13
  //# sourceMappingURL=getValueAndTypeFromMessage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getValueAndTypeFromMessage.js","sourceRoot":"","sources":["../../../../src/instrumentations/errors/getValueAndTypeFromMessage.ts"],"names":[],"mappings":";;AAIA,gEAOC;AAXD,gDAA0D;AAE1D,iCAAyC;AAEzC,SAAgB,0BAA0B,CAAC,OAAe;;IACxD,IAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,sBAAc,CAAC,CAAC;IAE7C,IAAM,IAAI,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,CAAC,CAAC,mCAAI,gCAAoB,CAAC;IACjD,IAAM,KAAK,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,CAAC,CAAC,mCAAI,OAAO,CAAC;IAErC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACvB,CAAC","sourcesContent":["import { defaultExceptionType } from '@grafana/faro-core';\n\nimport { valueTypeRegex } from './const';\n\nexport function getValueAndTypeFromMessage(message: string): [string, string] {\n const groups = message.match(valueTypeRegex);\n\n const type = groups?.[1] ?? defaultExceptionType;\n const value = groups?.[2] ?? message;\n\n return [value, type];\n}\n"]}
1
+ {"version":3,"file":"getValueAndTypeFromMessage.js","sourceRoot":"","sources":["../../../../src/instrumentations/errors/getValueAndTypeFromMessage.ts"],"names":[],"mappings":";;AAIA,gEAOC;AAXD,kDAA0D;AAE1D,mCAAyC;AAEzC,SAAgB,0BAA0B,CAAC,OAAe;;IACxD,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,sBAAc,CAAC,CAAC;IAE7C,MAAM,IAAI,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,CAAC,CAAC,mCAAI,gCAAoB,CAAC;IACjD,MAAM,KAAK,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,CAAC,CAAC,mCAAI,OAAO,CAAC;IAErC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACvB,CAAC","sourcesContent":["import { defaultExceptionType } from '@grafana/faro-core';\n\nimport { valueTypeRegex } from './const';\n\nexport function getValueAndTypeFromMessage(message: string): [string, string] {\n const groups = message.match(valueTypeRegex);\n\n const type = groups?.[1] ?? defaultExceptionType;\n const value = groups?.[2] ?? message;\n\n return [value, type];\n}\n"]}
@@ -1,38 +1,20 @@
1
1
  "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
2
  Object.defineProperty(exports, "__esModule", { value: true });
18
3
  exports.ErrorsInstrumentation = void 0;
19
- var faro_core_1 = require("@grafana/faro-core");
20
- var registerOnerror_1 = require("./registerOnerror");
21
- var registerOnunhandledrejection_1 = require("./registerOnunhandledrejection");
22
- var ErrorsInstrumentation = /** @class */ (function (_super) {
23
- __extends(ErrorsInstrumentation, _super);
24
- function ErrorsInstrumentation() {
25
- var _this = _super !== null && _super.apply(this, arguments) || this;
26
- _this.name = '@grafana/faro-web-sdk:instrumentation-errors';
27
- _this.version = faro_core_1.VERSION;
28
- return _this;
4
+ const faro_core_1 = require("@grafana/faro-core");
5
+ const registerOnerror_1 = require("./registerOnerror");
6
+ const registerOnunhandledrejection_1 = require("./registerOnunhandledrejection");
7
+ class ErrorsInstrumentation extends faro_core_1.BaseInstrumentation {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.name = '@grafana/faro-web-sdk:instrumentation-errors';
11
+ this.version = faro_core_1.VERSION;
29
12
  }
30
- ErrorsInstrumentation.prototype.initialize = function () {
13
+ initialize() {
31
14
  this.logDebug('Initializing');
32
15
  (0, registerOnerror_1.registerOnerror)(this.api);
33
16
  (0, registerOnunhandledrejection_1.registerOnunhandledrejection)(this.api);
34
- };
35
- return ErrorsInstrumentation;
36
- }(faro_core_1.BaseInstrumentation));
17
+ }
18
+ }
37
19
  exports.ErrorsInstrumentation = ErrorsInstrumentation;
38
20
  //# sourceMappingURL=instrumentation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../../../src/instrumentations/errors/instrumentation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,gDAAkE;AAElE,qDAAoD;AACpD,+EAA8E;AAE9E;IAA2C,yCAAmB;IAA9D;;QACW,UAAI,GAAG,8CAA8C,CAAC;QACtD,aAAO,GAAG,mBAAO,CAAC;;IAS7B,CAAC;IAPC,0CAAU,GAAV;QACE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QAE9B,IAAA,iCAAe,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE1B,IAAA,2DAA4B,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC;IACH,4BAAC;AAAD,CAAC,AAXD,CAA2C,+BAAmB,GAW7D;AAXY,sDAAqB","sourcesContent":["import { BaseInstrumentation, VERSION } from '@grafana/faro-core';\n\nimport { registerOnerror } from './registerOnerror';\nimport { registerOnunhandledrejection } from './registerOnunhandledrejection';\n\nexport class ErrorsInstrumentation extends BaseInstrumentation {\n readonly name = '@grafana/faro-web-sdk:instrumentation-errors';\n readonly version = VERSION;\n\n initialize(): void {\n this.logDebug('Initializing');\n\n registerOnerror(this.api);\n\n registerOnunhandledrejection(this.api);\n }\n}\n"]}
1
+ {"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../../../src/instrumentations/errors/instrumentation.ts"],"names":[],"mappings":";;;AAAA,kDAAkE;AAElE,uDAAoD;AACpD,iFAA8E;AAE9E,MAAa,qBAAsB,SAAQ,+BAAmB;IAA9D;;QACW,SAAI,GAAG,8CAA8C,CAAC;QACtD,YAAO,GAAG,mBAAO,CAAC;IAS7B,CAAC;IAPC,UAAU;QACR,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QAE9B,IAAA,iCAAe,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE1B,IAAA,2DAA4B,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC;CACF;AAXD,sDAWC","sourcesContent":["import { BaseInstrumentation, VERSION } from '@grafana/faro-core';\n\nimport { registerOnerror } from './registerOnerror';\nimport { registerOnunhandledrejection } from './registerOnunhandledrejection';\n\nexport class ErrorsInstrumentation extends BaseInstrumentation {\n readonly name = '@grafana/faro-web-sdk:instrumentation-errors';\n readonly version = VERSION;\n\n initialize(): void {\n this.logDebug('Initializing');\n\n registerOnerror(this.api);\n\n registerOnunhandledrejection(this.api);\n }\n}\n"]}
@@ -1,19 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.registerOnerror = registerOnerror;
4
- var getErrorDetails_1 = require("./getErrorDetails");
4
+ const getErrorDetails_1 = require("./getErrorDetails");
5
5
  function registerOnerror(api) {
6
- var oldOnerror = window.onerror;
7
- window.onerror = function () {
8
- var args = [];
9
- for (var _i = 0; _i < arguments.length; _i++) {
10
- args[_i] = arguments[_i];
11
- }
6
+ const oldOnerror = window.onerror;
7
+ window.onerror = (...args) => {
12
8
  try {
13
- var _a = (0, getErrorDetails_1.getDetailsFromErrorArgs)(args), value = _a.value, type = _a.type, stackFrames = _a.stackFrames;
14
- var originalError = args[4];
9
+ const { value, type, stackFrames } = (0, getErrorDetails_1.getDetailsFromErrorArgs)(args);
10
+ const originalError = args[4];
15
11
  if (value) {
16
- var options = { type: type, stackFrames: stackFrames };
12
+ const options = { type, stackFrames };
17
13
  if (originalError != null) {
18
14
  options.originalError = originalError;
19
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"registerOnerror.js","sourceRoot":"","sources":["../../../../src/instrumentations/errors/registerOnerror.ts"],"names":[],"mappings":";;AAIA,0CAqBC;AAvBD,qDAA4D;AAE5D,SAAgB,eAAe,CAAC,GAAQ;IACtC,IAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC;IAElC,MAAM,CAAC,OAAO,GAAG;QAAC,cAAO;aAAP,UAAO,EAAP,qBAAO,EAAP,IAAO;YAAP,yBAAO;;QACvB,IAAI,CAAC;YACG,IAAA,KAA+B,IAAA,yCAAuB,EAAC,IAAI,CAAC,EAA1D,KAAK,WAAA,EAAE,IAAI,UAAA,EAAE,WAAW,iBAAkC,CAAC;YACnE,IAAM,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAE9B,IAAI,KAAK,EAAE,CAAC;gBACV,IAAM,OAAO,GAAqB,EAAE,IAAI,MAAA,EAAE,WAAW,aAAA,EAAE,CAAC;gBAExD,IAAI,aAAa,IAAI,IAAI,EAAE,CAAC;oBAC1B,OAAO,CAAC,aAAa,GAAG,aAAa,CAAC;gBACxC,CAAC;gBAED,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAClC,CAAC;IACH,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import type { API, PushErrorOptions } from '@grafana/faro-core';\n\nimport { getDetailsFromErrorArgs } from './getErrorDetails';\n\nexport function registerOnerror(api: API): void {\n const oldOnerror = window.onerror;\n\n window.onerror = (...args) => {\n try {\n const { value, type, stackFrames } = getDetailsFromErrorArgs(args);\n const originalError = args[4];\n\n if (value) {\n const options: PushErrorOptions = { type, stackFrames };\n\n if (originalError != null) {\n options.originalError = originalError;\n }\n\n api.pushError(new Error(value), options);\n }\n } finally {\n oldOnerror?.apply(window, args);\n }\n };\n}\n"]}
1
+ {"version":3,"file":"registerOnerror.js","sourceRoot":"","sources":["../../../../src/instrumentations/errors/registerOnerror.ts"],"names":[],"mappings":";;AAIA,0CAqBC;AAvBD,uDAA4D;AAE5D,SAAgB,eAAe,CAAC,GAAQ;IACtC,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC;IAElC,MAAM,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE;QAC3B,IAAI,CAAC;YACH,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,IAAA,yCAAuB,EAAC,IAAI,CAAC,CAAC;YACnE,MAAM,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAE9B,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,OAAO,GAAqB,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;gBAExD,IAAI,aAAa,IAAI,IAAI,EAAE,CAAC;oBAC1B,OAAO,CAAC,aAAa,GAAG,aAAa,CAAC;gBACxC,CAAC;gBAED,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAClC,CAAC;IACH,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import type { API, PushErrorOptions } from '@grafana/faro-core';\n\nimport { getDetailsFromErrorArgs } from './getErrorDetails';\n\nexport function registerOnerror(api: API): void {\n const oldOnerror = window.onerror;\n\n window.onerror = (...args) => {\n try {\n const { value, type, stackFrames } = getDetailsFromErrorArgs(args);\n const originalError = args[4];\n\n if (value) {\n const options: PushErrorOptions = { type, stackFrames };\n\n if (originalError != null) {\n options.originalError = originalError;\n }\n\n api.pushError(new Error(value), options);\n }\n } finally {\n oldOnerror?.apply(window, args);\n }\n };\n}\n"]}
@@ -2,34 +2,33 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.registerOnunhandledrejection = registerOnunhandledrejection;
4
4
  exports.__resetOnunhandledrejectionForTests = __resetOnunhandledrejectionForTests;
5
- var faro_core_1 = require("@grafana/faro-core");
6
- var const_1 = require("./const");
7
- var getErrorDetails_1 = require("./getErrorDetails");
5
+ const faro_core_1 = require("@grafana/faro-core");
6
+ const const_1 = require("./const");
7
+ const getErrorDetails_1 = require("./getErrorDetails");
8
8
  // Store handlers for cleanup in tests
9
- var registeredHandlers = [];
9
+ const registeredHandlers = [];
10
10
  function registerOnunhandledrejection(api) {
11
- var handler = function (evt) {
12
- var _a;
13
- var _b, _c;
14
- var error = evt;
11
+ const handler = (evt) => {
12
+ var _a, _b;
13
+ let error = evt;
15
14
  if (error.reason) {
16
15
  error = evt.reason;
17
16
  }
18
- else if ((_b = evt.detail) === null || _b === void 0 ? void 0 : _b.reason) {
19
- error = (_c = evt.detail) === null || _c === void 0 ? void 0 : _c.reason;
17
+ else if ((_a = evt.detail) === null || _a === void 0 ? void 0 : _a.reason) {
18
+ error = (_b = evt.detail) === null || _b === void 0 ? void 0 : _b.reason;
20
19
  }
21
- var value;
22
- var type;
23
- var stackFrames = [];
20
+ let value;
21
+ let type;
22
+ let stackFrames = [];
24
23
  if ((0, faro_core_1.isPrimitive)(error)) {
25
- value = "".concat(const_1.primitiveUnhandledValue, " ").concat(String(error));
24
+ value = `${const_1.primitiveUnhandledValue} ${String(error)}`;
26
25
  type = const_1.primitiveUnhandledType;
27
26
  }
28
27
  else {
29
- _a = (0, getErrorDetails_1.getErrorDetails)(error), value = _a[0], type = _a[1], stackFrames = _a[2];
28
+ [value, type, stackFrames] = (0, getErrorDetails_1.getErrorDetails)(error);
30
29
  }
31
30
  if (value) {
32
- api.pushError(new Error(value), { type: type, stackFrames: stackFrames });
31
+ api.pushError(new Error(value), { type, stackFrames });
33
32
  }
34
33
  };
35
34
  window.addEventListener('unhandledrejection', handler);
@@ -37,7 +36,7 @@ function registerOnunhandledrejection(api) {
37
36
  }
38
37
  // Test-only utility to reset state between tests
39
38
  function __resetOnunhandledrejectionForTests() {
40
- registeredHandlers.forEach(function (handler) {
39
+ registeredHandlers.forEach((handler) => {
41
40
  window.removeEventListener('unhandledrejection', handler);
42
41
  });
43
42
  registeredHandlers.length = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"registerOnunhandledrejection.js","sourceRoot":"","sources":["../../../../src/instrumentations/errors/registerOnunhandledrejection.ts"],"names":[],"mappings":";;AAUA,oEA2BC;AAGD,kFAKC;AA7CD,gDAAiD;AAGjD,iCAA0E;AAC1E,qDAAoD;AAGpD,sCAAsC;AACtC,IAAM,kBAAkB,GAAwD,EAAE,CAAC;AAEnF,SAAgB,4BAA4B,CAAC,GAAQ;IACnD,IAAM,OAAO,GAAG,UAAC,GAAkC;;;QACjD,IAAI,KAAK,GAAG,GAAG,CAAC;QAEhB,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC;QACrB,CAAC;aAAM,IAAI,MAAA,GAAG,CAAC,MAAM,0CAAE,MAAM,EAAE,CAAC;YAC9B,KAAK,GAAG,MAAA,GAAG,CAAC,MAAM,0CAAE,MAAM,CAAC;QAC7B,CAAC;QAED,IAAI,KAAyB,CAAC;QAC9B,IAAI,IAAwB,CAAC;QAC7B,IAAI,WAAW,GAA0B,EAAE,CAAC;QAC5C,IAAI,IAAA,uBAAW,EAAC,KAAK,CAAC,EAAE,CAAC;YACvB,KAAK,GAAG,UAAG,+BAAuB,cAAI,MAAM,CAAC,KAAK,CAAC,CAAE,CAAC;YACtD,IAAI,GAAG,8BAAsB,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,KAA6B,IAAA,iCAAe,EAAC,KAAK,CAAC,EAAlD,KAAK,QAAA,EAAE,IAAI,QAAA,EAAE,WAAW,QAAA,CAA2B;QACtD,CAAC;QAED,IAAI,KAAK,EAAE,CAAC;YACV,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,MAAA,EAAE,WAAW,aAAA,EAAE,CAAC,CAAC;QACzD,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;IACvD,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC;AAED,iDAAiD;AACjD,SAAgB,mCAAmC;IACjD,kBAAkB,CAAC,OAAO,CAAC,UAAC,OAAO;QACjC,MAAM,CAAC,mBAAmB,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IACH,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC;AAChC,CAAC","sourcesContent":["import { isPrimitive } from '@grafana/faro-core';\nimport type { API, ExceptionStackFrame } from '@grafana/faro-core';\n\nimport { primitiveUnhandledType, primitiveUnhandledValue } from './const';\nimport { getErrorDetails } from './getErrorDetails';\nimport type { ExtendedPromiseRejectionEvent } from './types';\n\n// Store handlers for cleanup in tests\nconst registeredHandlers: Array<(evt: ExtendedPromiseRejectionEvent) => void> = [];\n\nexport function registerOnunhandledrejection(api: API): void {\n const handler = (evt: ExtendedPromiseRejectionEvent) => {\n let error = evt;\n\n if (error.reason) {\n error = evt.reason;\n } else if (evt.detail?.reason) {\n error = evt.detail?.reason;\n }\n\n let value: string | undefined;\n let type: string | undefined;\n let stackFrames: ExceptionStackFrame[] = [];\n if (isPrimitive(error)) {\n value = `${primitiveUnhandledValue} ${String(error)}`;\n type = primitiveUnhandledType;\n } else {\n [value, type, stackFrames] = getErrorDetails(error);\n }\n\n if (value) {\n api.pushError(new Error(value), { type, stackFrames });\n }\n };\n\n window.addEventListener('unhandledrejection', handler);\n registeredHandlers.push(handler);\n}\n\n// Test-only utility to reset state between tests\nexport function __resetOnunhandledrejectionForTests(): void {\n registeredHandlers.forEach((handler) => {\n window.removeEventListener('unhandledrejection', handler);\n });\n registeredHandlers.length = 0;\n}\n"]}
1
+ {"version":3,"file":"registerOnunhandledrejection.js","sourceRoot":"","sources":["../../../../src/instrumentations/errors/registerOnunhandledrejection.ts"],"names":[],"mappings":";;AAUA,oEA2BC;AAGD,kFAKC;AA7CD,kDAAiD;AAGjD,mCAA0E;AAC1E,uDAAoD;AAGpD,sCAAsC;AACtC,MAAM,kBAAkB,GAAwD,EAAE,CAAC;AAEnF,SAAgB,4BAA4B,CAAC,GAAQ;IACnD,MAAM,OAAO,GAAG,CAAC,GAAkC,EAAE,EAAE;;QACrD,IAAI,KAAK,GAAG,GAAG,CAAC;QAEhB,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC;QACrB,CAAC;aAAM,IAAI,MAAA,GAAG,CAAC,MAAM,0CAAE,MAAM,EAAE,CAAC;YAC9B,KAAK,GAAG,MAAA,GAAG,CAAC,MAAM,0CAAE,MAAM,CAAC;QAC7B,CAAC;QAED,IAAI,KAAyB,CAAC;QAC9B,IAAI,IAAwB,CAAC;QAC7B,IAAI,WAAW,GAA0B,EAAE,CAAC;QAC5C,IAAI,IAAA,uBAAW,EAAC,KAAK,CAAC,EAAE,CAAC;YACvB,KAAK,GAAG,GAAG,+BAAuB,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACtD,IAAI,GAAG,8BAAsB,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,CAAC,KAAK,EAAE,IAAI,EAAE,WAAW,CAAC,GAAG,IAAA,iCAAe,EAAC,KAAK,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,KAAK,EAAE,CAAC;YACV,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;QACzD,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;IACvD,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC;AAED,iDAAiD;AACjD,SAAgB,mCAAmC;IACjD,kBAAkB,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QACrC,MAAM,CAAC,mBAAmB,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IACH,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC;AAChC,CAAC","sourcesContent":["import { isPrimitive } from '@grafana/faro-core';\nimport type { API, ExceptionStackFrame } from '@grafana/faro-core';\n\nimport { primitiveUnhandledType, primitiveUnhandledValue } from './const';\nimport { getErrorDetails } from './getErrorDetails';\nimport type { ExtendedPromiseRejectionEvent } from './types';\n\n// Store handlers for cleanup in tests\nconst registeredHandlers: Array<(evt: ExtendedPromiseRejectionEvent) => void> = [];\n\nexport function registerOnunhandledrejection(api: API): void {\n const handler = (evt: ExtendedPromiseRejectionEvent) => {\n let error = evt;\n\n if (error.reason) {\n error = evt.reason;\n } else if (evt.detail?.reason) {\n error = evt.detail?.reason;\n }\n\n let value: string | undefined;\n let type: string | undefined;\n let stackFrames: ExceptionStackFrame[] = [];\n if (isPrimitive(error)) {\n value = `${primitiveUnhandledValue} ${String(error)}`;\n type = primitiveUnhandledType;\n } else {\n [value, type, stackFrames] = getErrorDetails(error);\n }\n\n if (value) {\n api.pushError(new Error(value), { type, stackFrames });\n }\n };\n\n window.addEventListener('unhandledrejection', handler);\n registeredHandlers.push(handler);\n}\n\n// Test-only utility to reset state between tests\nexport function __resetOnunhandledrejectionForTests(): void {\n registeredHandlers.forEach((handler) => {\n window.removeEventListener('unhandledrejection', handler);\n });\n registeredHandlers.length = 0;\n}\n"]}
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.buildStackFrame = buildStackFrame;
4
- var const_1 = require("./const");
4
+ const const_1 = require("./const");
5
5
  function buildStackFrame(filename, func, lineno, colno) {
6
- var stackFrame = {
6
+ const stackFrame = {
7
7
  filename: filename || document.location.href,
8
8
  function: func || const_1.unknownSymbolString,
9
9
  };
@@ -1 +1 @@
1
- {"version":3,"file":"buildStackFrame.js","sourceRoot":"","sources":["../../../../../src/instrumentations/errors/stackFrames/buildStackFrame.ts"],"names":[],"mappings":";;AAIA,0CAoBC;AAtBD,iCAA8C;AAE9C,SAAgB,eAAe,CAC7B,QAA4B,EAC5B,IAAwB,EACxB,MAA0B,EAC1B,KAAyB;IAEzB,IAAM,UAAU,GAAwB;QACtC,QAAQ,EAAE,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI;QAC5C,QAAQ,EAAE,IAAI,IAAI,2BAAmB;KACtC,CAAC;IAEF,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;IAC7B,CAAC;IAED,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC","sourcesContent":["import type { ExceptionStackFrame } from '@grafana/faro-core';\n\nimport { unknownSymbolString } from './const';\n\nexport function buildStackFrame(\n filename: string | undefined,\n func: string | undefined,\n lineno: number | undefined,\n colno: number | undefined\n): ExceptionStackFrame {\n const stackFrame: ExceptionStackFrame = {\n filename: filename || document.location.href,\n function: func || unknownSymbolString,\n };\n\n if (lineno !== undefined) {\n stackFrame.lineno = lineno;\n }\n\n if (colno !== undefined) {\n stackFrame.colno = colno;\n }\n\n return stackFrame;\n}\n"]}
1
+ {"version":3,"file":"buildStackFrame.js","sourceRoot":"","sources":["../../../../../src/instrumentations/errors/stackFrames/buildStackFrame.ts"],"names":[],"mappings":";;AAIA,0CAoBC;AAtBD,mCAA8C;AAE9C,SAAgB,eAAe,CAC7B,QAA4B,EAC5B,IAAwB,EACxB,MAA0B,EAC1B,KAAyB;IAEzB,MAAM,UAAU,GAAwB;QACtC,QAAQ,EAAE,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI;QAC5C,QAAQ,EAAE,IAAI,IAAI,2BAAmB;KACtC,CAAC;IAEF,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;IAC7B,CAAC;IAED,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC","sourcesContent":["import type { ExceptionStackFrame } from '@grafana/faro-core';\n\nimport { unknownSymbolString } from './const';\n\nexport function buildStackFrame(\n filename: string | undefined,\n func: string | undefined,\n lineno: number | undefined,\n colno: number | undefined\n): ExceptionStackFrame {\n const stackFrame: ExceptionStackFrame = {\n filename: filename || document.location.href,\n function: func || unknownSymbolString,\n };\n\n if (lineno !== undefined) {\n stackFrame.lineno = lineno;\n }\n\n if (colno !== undefined) {\n stackFrame.colno = colno;\n }\n\n return stackFrame;\n}\n"]}
@@ -1,16 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getDataFromSafariExtensions = getDataFromSafariExtensions;
4
- var const_1 = require("./const");
4
+ const const_1 = require("./const");
5
5
  function getDataFromSafariExtensions(func, filename) {
6
- var isSafariExtension = func === null || func === void 0 ? void 0 : func.includes(const_1.safariExtensionString);
7
- var isSafariWebExtension = !isSafariExtension && (func === null || func === void 0 ? void 0 : func.includes(const_1.safariWebExtensionString));
6
+ const isSafariExtension = func === null || func === void 0 ? void 0 : func.includes(const_1.safariExtensionString);
7
+ const isSafariWebExtension = !isSafariExtension && (func === null || func === void 0 ? void 0 : func.includes(const_1.safariWebExtensionString));
8
8
  if (!isSafariExtension && !isSafariWebExtension) {
9
9
  return [func, filename];
10
10
  }
11
11
  return [
12
12
  (func === null || func === void 0 ? void 0 : func.includes(const_1.atString)) ? func.split(const_1.atString)[0] : func,
13
- isSafariExtension ? "".concat(const_1.safariExtensionString, ":").concat(filename) : "".concat(const_1.safariWebExtensionString, ":").concat(filename),
13
+ isSafariExtension ? `${const_1.safariExtensionString}:${filename}` : `${const_1.safariWebExtensionString}:${filename}`,
14
14
  ];
15
15
  }
16
16
  //# sourceMappingURL=getDataFromSafariExtensions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getDataFromSafariExtensions.js","sourceRoot":"","sources":["../../../../../src/instrumentations/errors/stackFrames/getDataFromSafariExtensions.ts"],"names":[],"mappings":";;AAEA,kEAeC;AAjBD,iCAAoF;AAEpF,SAAgB,2BAA2B,CACzC,IAAwB,EACxB,QAA4B;IAE5B,IAAM,iBAAiB,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,6BAAqB,CAAC,CAAC;IAChE,IAAM,oBAAoB,GAAG,CAAC,iBAAiB,KAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,gCAAwB,CAAC,CAAA,CAAC;IAE5F,IAAI,CAAC,iBAAiB,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAChD,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC1B,CAAC;IAED,OAAO;QACL,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,gBAAQ,CAAC,EAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;QACzD,iBAAiB,CAAC,CAAC,CAAC,UAAG,6BAAqB,cAAI,QAAQ,CAAE,CAAC,CAAC,CAAC,UAAG,gCAAwB,cAAI,QAAQ,CAAE;KACvG,CAAC;AACJ,CAAC","sourcesContent":["import { atString, safariExtensionString, safariWebExtensionString } from './const';\n\nexport function getDataFromSafariExtensions(\n func: string | undefined,\n filename: string | undefined\n): [string | undefined, string | undefined] {\n const isSafariExtension = func?.includes(safariExtensionString);\n const isSafariWebExtension = !isSafariExtension && func?.includes(safariWebExtensionString);\n\n if (!isSafariExtension && !isSafariWebExtension) {\n return [func, filename];\n }\n\n return [\n func?.includes(atString) ? func.split(atString)[0] : func,\n isSafariExtension ? `${safariExtensionString}:${filename}` : `${safariWebExtensionString}:${filename}`,\n ];\n}\n"]}
1
+ {"version":3,"file":"getDataFromSafariExtensions.js","sourceRoot":"","sources":["../../../../../src/instrumentations/errors/stackFrames/getDataFromSafariExtensions.ts"],"names":[],"mappings":";;AAEA,kEAeC;AAjBD,mCAAoF;AAEpF,SAAgB,2BAA2B,CACzC,IAAwB,EACxB,QAA4B;IAE5B,MAAM,iBAAiB,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,6BAAqB,CAAC,CAAC;IAChE,MAAM,oBAAoB,GAAG,CAAC,iBAAiB,KAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,gCAAwB,CAAC,CAAA,CAAC;IAE5F,IAAI,CAAC,iBAAiB,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAChD,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC1B,CAAC;IAED,OAAO;QACL,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,gBAAQ,CAAC,EAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;QACzD,iBAAiB,CAAC,CAAC,CAAC,GAAG,6BAAqB,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,gCAAwB,IAAI,QAAQ,EAAE;KACvG,CAAC;AACJ,CAAC","sourcesContent":["import { atString, safariExtensionString, safariWebExtensionString } from './const';\n\nexport function getDataFromSafariExtensions(\n func: string | undefined,\n filename: string | undefined\n): [string | undefined, string | undefined] {\n const isSafariExtension = func?.includes(safariExtensionString);\n const isSafariWebExtension = !isSafariExtension && func?.includes(safariWebExtensionString);\n\n if (!isSafariExtension && !isSafariWebExtension) {\n return [func, filename];\n }\n\n return [\n func?.includes(atString) ? func.split(atString)[0] : func,\n isSafariExtension ? `${safariExtensionString}:${filename}` : `${safariWebExtensionString}:${filename}`,\n ];\n}\n"]}