@grafana/faro-web-sdk 1.14.2 → 1.15.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 (163) hide show
  1. package/dist/bundle/faro-web-sdk.iife.js +1 -1
  2. package/dist/bundle/types/index.d.ts +2 -2
  3. package/dist/bundle/types/instrumentations/console/instrumentation.d.ts +1 -1
  4. package/dist/bundle/types/instrumentations/errors/instrumentation.d.ts +1 -1
  5. package/dist/bundle/types/instrumentations/performance/instrumentation.d.ts +1 -1
  6. package/dist/bundle/types/instrumentations/session/instrumentation.d.ts +1 -1
  7. package/dist/bundle/types/instrumentations/session/sessionManager/sessionManagerUtils.d.ts +1 -1
  8. package/dist/bundle/types/instrumentations/userActions/const.d.ts +0 -1
  9. package/dist/bundle/types/instrumentations/userActions/httpRequestMonitor.d.ts +2 -1
  10. package/dist/bundle/types/instrumentations/userActions/index.d.ts +1 -1
  11. package/dist/bundle/types/instrumentations/userActions/instrumentation.d.ts +1 -1
  12. package/dist/bundle/types/instrumentations/userActions/processUserActionEventHandler.d.ts +1 -1
  13. package/dist/bundle/types/instrumentations/userActions/types.d.ts +10 -2
  14. package/dist/bundle/types/instrumentations/view/instrumentation.d.ts +1 -1
  15. package/dist/bundle/types/instrumentations/webVitals/instrumentation.d.ts +1 -1
  16. package/dist/bundle/types/instrumentations/webVitals/webVitalsBasic.d.ts +8 -10
  17. package/dist/bundle/types/instrumentations/webVitals/webVitalsWithAttribution.d.ts +2 -4
  18. package/dist/bundle/types/transports/console/transport.d.ts +1 -1
  19. package/dist/bundle/types/transports/fetch/transport.d.ts +3 -3
  20. package/dist/bundle/types/utils/index.d.ts +1 -1
  21. package/dist/bundle/types/utils/url.d.ts +8 -0
  22. package/dist/cjs/config/getWebInstrumentations.js +1 -2
  23. package/dist/cjs/config/getWebInstrumentations.js.map +1 -1
  24. package/dist/cjs/config/makeCoreConfig.js +1 -2
  25. package/dist/cjs/config/makeCoreConfig.js.map +1 -1
  26. package/dist/cjs/index.js +5 -5
  27. package/dist/cjs/index.js.map +1 -1
  28. package/dist/cjs/initialize.js +1 -2
  29. package/dist/cjs/initialize.js.map +1 -1
  30. package/dist/cjs/instrumentations/console/instrumentation.js.map +1 -1
  31. package/dist/cjs/instrumentations/errors/getErrorDetails.js +3 -4
  32. package/dist/cjs/instrumentations/errors/getErrorDetails.js.map +1 -1
  33. package/dist/cjs/instrumentations/errors/getValueAndTypeFromMessage.js +1 -2
  34. package/dist/cjs/instrumentations/errors/getValueAndTypeFromMessage.js.map +1 -1
  35. package/dist/cjs/instrumentations/errors/instrumentation.js.map +1 -1
  36. package/dist/cjs/instrumentations/errors/registerOnerror.js +1 -2
  37. package/dist/cjs/instrumentations/errors/registerOnerror.js.map +1 -1
  38. package/dist/cjs/instrumentations/errors/registerOnunhandledrejection.js +1 -2
  39. package/dist/cjs/instrumentations/errors/registerOnunhandledrejection.js.map +1 -1
  40. package/dist/cjs/instrumentations/errors/stackFrames/buildStackFrame.js +1 -2
  41. package/dist/cjs/instrumentations/errors/stackFrames/buildStackFrame.js.map +1 -1
  42. package/dist/cjs/instrumentations/errors/stackFrames/getDataFromSafariExtensions.js +1 -2
  43. package/dist/cjs/instrumentations/errors/stackFrames/getDataFromSafariExtensions.js.map +1 -1
  44. package/dist/cjs/instrumentations/errors/stackFrames/getStackFramesFromError.js +1 -2
  45. package/dist/cjs/instrumentations/errors/stackFrames/getStackFramesFromError.js.map +1 -1
  46. package/dist/cjs/instrumentations/errors/stackFrames/parseStacktrace.js +1 -2
  47. package/dist/cjs/instrumentations/errors/stackFrames/parseStacktrace.js.map +1 -1
  48. package/dist/cjs/instrumentations/performance/instrumentation.js +2 -2
  49. package/dist/cjs/instrumentations/performance/instrumentation.js.map +1 -1
  50. package/dist/cjs/instrumentations/performance/navigation.js +1 -2
  51. package/dist/cjs/instrumentations/performance/navigation.js.map +1 -1
  52. package/dist/cjs/instrumentations/performance/performanceUtils.js +7 -10
  53. package/dist/cjs/instrumentations/performance/performanceUtils.js.map +1 -1
  54. package/dist/cjs/instrumentations/performance/resource.js +1 -2
  55. package/dist/cjs/instrumentations/performance/resource.js.map +1 -1
  56. package/dist/cjs/instrumentations/session/instrumentation.js.map +1 -1
  57. package/dist/cjs/instrumentations/session/sessionManager/PersistentSessionsManager.js.map +1 -1
  58. package/dist/cjs/instrumentations/session/sessionManager/VolatileSessionManager.js.map +1 -1
  59. package/dist/cjs/instrumentations/session/sessionManager/getSessionManagerByConfig.js +1 -2
  60. package/dist/cjs/instrumentations/session/sessionManager/getSessionManagerByConfig.js.map +1 -1
  61. package/dist/cjs/instrumentations/session/sessionManager/sampling.js +1 -2
  62. package/dist/cjs/instrumentations/session/sessionManager/sampling.js.map +1 -1
  63. package/dist/cjs/instrumentations/session/sessionManager/sessionManagerUtils.js +5 -6
  64. package/dist/cjs/instrumentations/session/sessionManager/sessionManagerUtils.js.map +1 -1
  65. package/dist/cjs/instrumentations/userActions/const.js +1 -2
  66. package/dist/cjs/instrumentations/userActions/const.js.map +1 -1
  67. package/dist/cjs/instrumentations/userActions/domMutationMonitor.js +1 -2
  68. package/dist/cjs/instrumentations/userActions/domMutationMonitor.js.map +1 -1
  69. package/dist/cjs/instrumentations/userActions/httpRequestMonitor.js +56 -47
  70. package/dist/cjs/instrumentations/userActions/httpRequestMonitor.js.map +1 -1
  71. package/dist/cjs/instrumentations/userActions/index.js.map +1 -1
  72. package/dist/cjs/instrumentations/userActions/instrumentation.js.map +1 -1
  73. package/dist/cjs/instrumentations/userActions/performanceEntriesMonitor.js +1 -2
  74. package/dist/cjs/instrumentations/userActions/performanceEntriesMonitor.js.map +1 -1
  75. package/dist/cjs/instrumentations/userActions/processUserActionEventHandler.js +104 -59
  76. package/dist/cjs/instrumentations/userActions/processUserActionEventHandler.js.map +1 -1
  77. package/dist/cjs/instrumentations/userActions/types.js.map +1 -1
  78. package/dist/cjs/instrumentations/userActions/util.js +1 -2
  79. package/dist/cjs/instrumentations/userActions/util.js.map +1 -1
  80. package/dist/cjs/instrumentations/view/instrumentation.js.map +1 -1
  81. package/dist/cjs/instrumentations/webVitals/instrumentation.js.map +1 -1
  82. package/dist/cjs/instrumentations/webVitals/webVitalsWithAttribution.js.map +1 -1
  83. package/dist/cjs/metas/browser/meta.js.map +1 -1
  84. package/dist/cjs/metas/page/meta.js +1 -2
  85. package/dist/cjs/metas/page/meta.js.map +1 -1
  86. package/dist/cjs/metas/session/createSession.js +1 -2
  87. package/dist/cjs/metas/session/createSession.js.map +1 -1
  88. package/dist/cjs/transports/console/transport.js.map +1 -1
  89. package/dist/cjs/transports/fetch/transport.js +3 -4
  90. package/dist/cjs/transports/fetch/transport.js.map +1 -1
  91. package/dist/cjs/utils/index.js +2 -1
  92. package/dist/cjs/utils/index.js.map +1 -1
  93. package/dist/cjs/utils/throttle.js +1 -2
  94. package/dist/cjs/utils/throttle.js.map +1 -1
  95. package/dist/cjs/utils/url.js +22 -3
  96. package/dist/cjs/utils/url.js.map +1 -1
  97. package/dist/cjs/utils/webStorage.js +5 -5
  98. package/dist/cjs/utils/webStorage.js.map +1 -1
  99. package/dist/esm/config/getWebInstrumentations.js.map +1 -1
  100. package/dist/esm/config/makeCoreConfig.js.map +1 -1
  101. package/dist/esm/index.js +2 -2
  102. package/dist/esm/index.js.map +1 -1
  103. package/dist/esm/initialize.js.map +1 -1
  104. package/dist/esm/instrumentations/console/instrumentation.js.map +1 -1
  105. package/dist/esm/instrumentations/errors/getErrorDetails.js.map +1 -1
  106. package/dist/esm/instrumentations/errors/registerOnerror.js.map +1 -1
  107. package/dist/esm/instrumentations/errors/registerOnunhandledrejection.js.map +1 -1
  108. package/dist/esm/instrumentations/errors/stackFrames/buildStackFrame.js.map +1 -1
  109. package/dist/esm/instrumentations/errors/stackFrames/getDataFromSafariExtensions.js.map +1 -1
  110. package/dist/esm/instrumentations/errors/stackFrames/getStackFramesFromError.js.map +1 -1
  111. package/dist/esm/instrumentations/performance/instrumentation.js.map +1 -1
  112. package/dist/esm/instrumentations/performance/navigation.js.map +1 -1
  113. package/dist/esm/instrumentations/performance/performanceUtils.js +1 -3
  114. package/dist/esm/instrumentations/performance/performanceUtils.js.map +1 -1
  115. package/dist/esm/instrumentations/performance/resource.js.map +1 -1
  116. package/dist/esm/instrumentations/session/instrumentation.js.map +1 -1
  117. package/dist/esm/instrumentations/session/sessionManager/PersistentSessionsManager.js.map +1 -1
  118. package/dist/esm/instrumentations/session/sessionManager/VolatileSessionManager.js.map +1 -1
  119. package/dist/esm/instrumentations/session/sessionManager/sampling.js.map +1 -1
  120. package/dist/esm/instrumentations/session/sessionManager/sessionManagerUtils.js.map +1 -1
  121. package/dist/esm/instrumentations/userActions/const.js +0 -1
  122. package/dist/esm/instrumentations/userActions/const.js.map +1 -1
  123. package/dist/esm/instrumentations/userActions/httpRequestMonitor.js +56 -48
  124. package/dist/esm/instrumentations/userActions/httpRequestMonitor.js.map +1 -1
  125. package/dist/esm/instrumentations/userActions/index.js.map +1 -1
  126. package/dist/esm/instrumentations/userActions/performanceEntriesMonitor.js.map +1 -1
  127. package/dist/esm/instrumentations/userActions/processUserActionEventHandler.js +105 -59
  128. package/dist/esm/instrumentations/userActions/processUserActionEventHandler.js.map +1 -1
  129. package/dist/esm/instrumentations/userActions/types.js.map +1 -1
  130. package/dist/esm/instrumentations/view/instrumentation.js.map +1 -1
  131. package/dist/esm/instrumentations/webVitals/instrumentation.js.map +1 -1
  132. package/dist/esm/instrumentations/webVitals/webVitalsWithAttribution.js.map +1 -1
  133. package/dist/esm/metas/browser/meta.js.map +1 -1
  134. package/dist/esm/metas/page/meta.js.map +1 -1
  135. package/dist/esm/transports/fetch/transport.js +1 -1
  136. package/dist/esm/transports/fetch/transport.js.map +1 -1
  137. package/dist/esm/utils/index.js +1 -1
  138. package/dist/esm/utils/index.js.map +1 -1
  139. package/dist/esm/utils/throttle.js.map +1 -1
  140. package/dist/esm/utils/url.js +20 -1
  141. package/dist/esm/utils/url.js.map +1 -1
  142. package/dist/esm/utils/webStorage.js.map +1 -1
  143. package/dist/types/index.d.ts +2 -2
  144. package/dist/types/instrumentations/console/instrumentation.d.ts +1 -1
  145. package/dist/types/instrumentations/errors/instrumentation.d.ts +1 -1
  146. package/dist/types/instrumentations/performance/instrumentation.d.ts +1 -1
  147. package/dist/types/instrumentations/session/instrumentation.d.ts +1 -1
  148. package/dist/types/instrumentations/session/sessionManager/sessionManagerUtils.d.ts +1 -1
  149. package/dist/types/instrumentations/userActions/const.d.ts +0 -1
  150. package/dist/types/instrumentations/userActions/httpRequestMonitor.d.ts +2 -1
  151. package/dist/types/instrumentations/userActions/index.d.ts +1 -1
  152. package/dist/types/instrumentations/userActions/instrumentation.d.ts +1 -1
  153. package/dist/types/instrumentations/userActions/processUserActionEventHandler.d.ts +1 -1
  154. package/dist/types/instrumentations/userActions/types.d.ts +10 -2
  155. package/dist/types/instrumentations/view/instrumentation.d.ts +1 -1
  156. package/dist/types/instrumentations/webVitals/instrumentation.d.ts +1 -1
  157. package/dist/types/instrumentations/webVitals/webVitalsBasic.d.ts +8 -10
  158. package/dist/types/instrumentations/webVitals/webVitalsWithAttribution.d.ts +2 -4
  159. package/dist/types/transports/console/transport.d.ts +1 -1
  160. package/dist/types/transports/fetch/transport.d.ts +3 -3
  161. package/dist/types/utils/index.d.ts +1 -1
  162. package/dist/types/utils/url.d.ts +8 -0
  163. package/package.json +3 -3
@@ -2,11 +2,19 @@ import type { MESSAGE_TYPE_DOM_MUTATION, MESSAGE_TYPE_HTTP_REQUEST_END, MESSAGE_
2
2
  export type DomMutationMessage = {
3
3
  type: typeof MESSAGE_TYPE_DOM_MUTATION;
4
4
  };
5
+ type RequestApiType = 'xhr' | 'fetch';
6
+ export type HttpRequestMessagePayload = {
7
+ requestId: string;
8
+ url: string;
9
+ method: string;
10
+ apiType: RequestApiType;
11
+ };
5
12
  export type HttpRequestStartMessage = {
6
13
  type: typeof MESSAGE_TYPE_HTTP_REQUEST_START;
7
- pending: number;
14
+ request: HttpRequestMessagePayload;
8
15
  };
9
16
  export type HttpRequestEndMessage = {
10
17
  type: typeof MESSAGE_TYPE_HTTP_REQUEST_END;
11
- pending: number;
18
+ request: HttpRequestMessagePayload;
12
19
  };
20
+ export {};
@@ -1,7 +1,7 @@
1
1
  import { BaseInstrumentation } from '@grafana/faro-core';
2
2
  export declare class ViewInstrumentation extends BaseInstrumentation {
3
3
  readonly name = "@grafana/faro-web-sdk:instrumentation-view";
4
- readonly version = "1.14.2";
4
+ readonly version = "1.15.0";
5
5
  private notifiedView;
6
6
  private sendViewChangedEvent;
7
7
  initialize(): void;
@@ -1,7 +1,7 @@
1
1
  import { BaseInstrumentation } from '@grafana/faro-core';
2
2
  export declare class WebVitalsInstrumentation extends BaseInstrumentation {
3
3
  readonly name = "@grafana/faro-web-sdk:instrumentation-web-vitals";
4
- readonly version = "1.14.2";
4
+ readonly version = "1.15.0";
5
5
  initialize(): void;
6
6
  private intializeWebVitalsInstrumentation;
7
7
  }
@@ -1,17 +1,15 @@
1
- import type { MeasurementsAPI } from '@grafana/faro-core';
1
+ import type { Config, MeasurementsAPI } from '@grafana/faro-core';
2
2
  export declare class WebVitalsBasic {
3
3
  private pushMeasurement;
4
4
  private webVitalConfig?;
5
5
  static mapping: {
6
- cls: (onReport: (metric: import("web-vitals").CLSMetric) => void, opts?: import("web-vitals").ReportOpts | undefined) => void;
7
- fcp: (onReport: (metric: import("web-vitals").FCPMetric) => void, opts?: import("web-vitals").ReportOpts | undefined) => void;
8
- fid: (onReport: (metric: import("web-vitals").FIDMetric) => void, opts?: import("web-vitals").ReportOpts | undefined) => void;
9
- inp: (onReport: (metric: import("web-vitals").INPMetric) => void, opts?: import("web-vitals").ReportOpts | undefined) => void;
10
- lcp: (onReport: (metric: import("web-vitals").LCPMetric) => void, opts?: import("web-vitals").ReportOpts | undefined) => void;
11
- ttfb: (onReport: (metric: import("web-vitals").TTFBMetric) => void, opts?: import("web-vitals").ReportOpts | undefined) => void;
6
+ cls: (onReport: (metric: import("web-vitals").CLSMetric) => void, opts?: import("web-vitals").ReportOpts) => void;
7
+ fcp: (onReport: (metric: import("web-vitals").FCPMetric) => void, opts?: import("web-vitals").ReportOpts) => void;
8
+ fid: (onReport: (metric: import("web-vitals").FIDMetric) => void, opts?: import("web-vitals").ReportOpts) => void;
9
+ inp: (onReport: (metric: import("web-vitals").INPMetric) => void, opts?: import("web-vitals").ReportOpts) => void;
10
+ lcp: (onReport: (metric: import("web-vitals").LCPMetric) => void, opts?: import("web-vitals").ReportOpts) => void;
11
+ ttfb: (onReport: (metric: import("web-vitals").TTFBMetric) => void, opts?: import("web-vitals").ReportOpts) => void;
12
12
  };
13
- constructor(pushMeasurement: MeasurementsAPI['pushMeasurement'], webVitalConfig?: {
14
- reportAllChanges?: boolean | undefined;
15
- } | undefined);
13
+ constructor(pushMeasurement: MeasurementsAPI['pushMeasurement'], webVitalConfig?: Config['webVitalsInstrumentation']);
16
14
  initialize(): void;
17
15
  }
@@ -1,10 +1,8 @@
1
- import type { MeasurementsAPI } from '@grafana/faro-core';
1
+ import type { Config, MeasurementsAPI } from '@grafana/faro-core';
2
2
  export declare class WebVitalsWithAttribution {
3
3
  private corePushMeasurement;
4
4
  private webVitalConfig?;
5
- constructor(corePushMeasurement: MeasurementsAPI['pushMeasurement'], webVitalConfig?: {
6
- reportAllChanges?: boolean | undefined;
7
- } | undefined);
5
+ constructor(corePushMeasurement: MeasurementsAPI['pushMeasurement'], webVitalConfig?: Config['webVitalsInstrumentation']);
8
6
  initialize(): void;
9
7
  private measureCLS;
10
8
  private measureFCP;
@@ -4,7 +4,7 @@ import type { ConsoleTransportOptions } from './types';
4
4
  export declare class ConsoleTransport extends BaseTransport {
5
5
  private options;
6
6
  readonly name = "@grafana/faro-web-sdk:transport-console";
7
- readonly version = "1.14.2";
7
+ readonly version = "1.15.0";
8
8
  constructor(options?: ConsoleTransportOptions);
9
9
  send(item: TransportItem): void;
10
10
  }
@@ -1,10 +1,10 @@
1
- import { BaseTransport, PromiseBuffer } from '@grafana/faro-core';
2
- import type { Patterns, TransportItem } from '@grafana/faro-core';
1
+ import { BaseTransport } from '@grafana/faro-core';
2
+ import type { Patterns, PromiseBuffer, TransportItem } from '@grafana/faro-core';
3
3
  import type { FetchTransportOptions } from './types';
4
4
  export declare class FetchTransport extends BaseTransport {
5
5
  private options;
6
6
  readonly name = "@grafana/faro-web-sdk:transport-fetch";
7
- readonly version = "1.14.2";
7
+ readonly version = "1.15.0";
8
8
  promiseBuffer: PromiseBuffer<Response | void>;
9
9
  private readonly rateLimitBackoffMs;
10
10
  private readonly getNow;
@@ -1,3 +1,3 @@
1
1
  export { getItem, isLocalStorageAvailable, isSessionStorageAvailable, isWebStorageAvailable, removeItem, setItem, webStorageType, } from './webStorage';
2
2
  export { throttle } from './throttle';
3
- export { getIgnoreUrls } from './url';
3
+ export { getIgnoreUrls, getUrlFromResource } from './url';
@@ -12,3 +12,11 @@ export declare function getIgnoreUrls(): Patterns;
12
12
  * @returns `true` if the URL is in the list of ignored URLs, `false` otherwise.
13
13
  */
14
14
  export declare function isUrlIgnored(url?: string): boolean;
15
+ /**
16
+ * Extracts a URL string from the given resource.
17
+ *
18
+ * @param resource - The input resource which can be a string, a URL object, or an object with a `toString` method.
19
+ * @returns The URL as a string if the resource is a valid URL-like object, or `undefined` if the resource is not valid.
20
+ *
21
+ */
22
+ export declare function getUrlFromResource(resource: any): string | undefined;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getWebInstrumentations = void 0;
3
+ exports.getWebInstrumentations = getWebInstrumentations;
4
4
  var instrumentations_1 = require("../instrumentations");
5
5
  function getWebInstrumentations(options) {
6
6
  if (options === void 0) { options = {}; }
@@ -22,5 +22,4 @@ function getWebInstrumentations(options) {
22
22
  }
23
23
  return instrumentations;
24
24
  }
25
- exports.getWebInstrumentations = getWebInstrumentations;
26
25
  //# sourceMappingURL=getWebInstrumentations.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getWebInstrumentations.js","sourceRoot":"","sources":["../../../src/config/getWebInstrumentations.ts"],"names":[],"mappings":";;;AAEA,wDAQ6B;AAI7B,SAAgB,sBAAsB,CAAC,OAA2C;IAA3C,wBAAA,EAAA,YAA2C;IAChF,IAAM,gBAAgB,GAAsB;QAC1C,IAAI,4CAAyB,EAAE;QAC/B,IAAI,wCAAqB,EAAE;QAC3B,IAAI,2CAAwB,EAAE;QAC9B,IAAI,yCAAsB,EAAE;QAC5B,IAAI,sCAAmB,EAAE;KAC1B,CAAC;IAEF,IAAI,OAAO,CAAC,gCAAgC,KAAK,KAAK,EAAE;QACtD,iFAAiF;QACjF,gBAAgB,CAAC,OAAO,CAAC,IAAI,6CAA0B,EAAE,CAAC,CAAC;KAC5D;IAED,IAAI,OAAO,CAAC,cAAc,KAAK,KAAK,EAAE;QACpC,gBAAgB,CAAC,IAAI,CACnB,IAAI,yCAAsB,CAAC;YACzB,cAAc,EAAE,OAAO,CAAC,4BAA4B;SACrD,CAAC,CACH,CAAC;KACH;IAED,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAvBD,wDAuBC","sourcesContent":["import type { Instrumentation } from '@grafana/faro-core';\n\nimport {\n ConsoleInstrumentation,\n ErrorsInstrumentation,\n PerformanceInstrumentation,\n SessionInstrumentation,\n UserActionInstrumentation,\n ViewInstrumentation,\n WebVitalsInstrumentation,\n} from '../instrumentations';\n\nimport type { GetWebInstrumentationsOptions } from './types';\n\nexport function getWebInstrumentations(options: GetWebInstrumentationsOptions = {}): Instrumentation[] {\n const instrumentations: Instrumentation[] = [\n new UserActionInstrumentation(),\n new ErrorsInstrumentation(),\n new WebVitalsInstrumentation(),\n new SessionInstrumentation(),\n new ViewInstrumentation(),\n ];\n\n if (options.enablePerformanceInstrumentation !== false) {\n // unshift to ensure that initialization starts before the other instrumentations\n instrumentations.unshift(new PerformanceInstrumentation());\n }\n\n if (options.captureConsole !== false) {\n instrumentations.push(\n new ConsoleInstrumentation({\n disabledLevels: options.captureConsoleDisabledLevels,\n })\n );\n }\n\n return instrumentations;\n}\n"]}
1
+ {"version":3,"file":"getWebInstrumentations.js","sourceRoot":"","sources":["../../../src/config/getWebInstrumentations.ts"],"names":[],"mappings":";;AAcA,wDAuBC;AAnCD,wDAQ6B;AAI7B,SAAgB,sBAAsB,CAAC,OAA2C;IAA3C,wBAAA,EAAA,YAA2C;IAChF,IAAM,gBAAgB,GAAsB;QAC1C,IAAI,4CAAyB,EAAE;QAC/B,IAAI,wCAAqB,EAAE;QAC3B,IAAI,2CAAwB,EAAE;QAC9B,IAAI,yCAAsB,EAAE;QAC5B,IAAI,sCAAmB,EAAE;KAC1B,CAAC;IAEF,IAAI,OAAO,CAAC,gCAAgC,KAAK,KAAK,EAAE,CAAC;QACvD,iFAAiF;QACjF,gBAAgB,CAAC,OAAO,CAAC,IAAI,6CAA0B,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,OAAO,CAAC,cAAc,KAAK,KAAK,EAAE,CAAC;QACrC,gBAAgB,CAAC,IAAI,CACnB,IAAI,yCAAsB,CAAC;YACzB,cAAc,EAAE,OAAO,CAAC,4BAA4B;SACrD,CAAC,CACH,CAAC;IACJ,CAAC;IAED,OAAO,gBAAgB,CAAC;AAC1B,CAAC","sourcesContent":["import type { Instrumentation } from '@grafana/faro-core';\n\nimport {\n ConsoleInstrumentation,\n ErrorsInstrumentation,\n PerformanceInstrumentation,\n SessionInstrumentation,\n UserActionInstrumentation,\n ViewInstrumentation,\n WebVitalsInstrumentation,\n} from '../instrumentations';\n\nimport type { GetWebInstrumentationsOptions } from './types';\n\nexport function getWebInstrumentations(options: GetWebInstrumentationsOptions = {}): Instrumentation[] {\n const instrumentations: Instrumentation[] = [\n new UserActionInstrumentation(),\n new ErrorsInstrumentation(),\n new WebVitalsInstrumentation(),\n new SessionInstrumentation(),\n new ViewInstrumentation(),\n ];\n\n if (options.enablePerformanceInstrumentation !== false) {\n // unshift to ensure that initialization starts before the other instrumentations\n instrumentations.unshift(new PerformanceInstrumentation());\n }\n\n if (options.captureConsole !== false) {\n instrumentations.push(\n new ConsoleInstrumentation({\n disabledLevels: options.captureConsoleDisabledLevels,\n })\n );\n }\n\n return instrumentations;\n}\n"]}
@@ -20,7 +20,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
20
20
  return to.concat(ar || Array.prototype.slice.call(from));
21
21
  };
22
22
  Object.defineProperty(exports, "__esModule", { value: true });
23
- exports.makeCoreConfig = void 0;
23
+ exports.makeCoreConfig = makeCoreConfig;
24
24
  var faro_core_1 = require("@grafana/faro-core");
25
25
  var consts_1 = require("../consts");
26
26
  var instrumentations_1 = require("../instrumentations");
@@ -87,7 +87,6 @@ function makeCoreConfig(browserConfig) {
87
87
  trackUserActionsExcludeItem: trackUserActionsExcludeItem,
88
88
  };
89
89
  }
90
- exports.makeCoreConfig = makeCoreConfig;
91
90
  function getFilteredInstrumentations(instrumentations, _a) {
92
91
  var trackUserActionsPreview = _a.trackUserActionsPreview;
93
92
  return instrumentations.filter(function (instr) {
@@ -1 +1 @@
1
- {"version":3,"file":"makeCoreConfig.js","sourceRoot":"","sources":["../../../src/config/makeCoreConfig.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n createInternalLogger,\n defaultBatchingConfig,\n defaultGlobalObjectKey,\n defaultInternalLoggerLevel,\n defaultLogArgsSerializer,\n defaultUnpatchedConsole,\n isBoolean,\n isEmpty,\n isObject,\n} from '@grafana/faro-core';\nimport type { Config, Instrumentation, MetaItem, MetaSession, Transport } from '@grafana/faro-core';\n\nimport { defaultEventDomain } from '../consts';\nimport { parseStacktrace } from '../instrumentations';\nimport { defaultSessionTrackingConfig } from '../instrumentations/session';\nimport { userActionDataAttribute } from '../instrumentations/userActions/const';\nimport { browserMeta } from '../metas';\nimport { k6Meta } from '../metas/k6';\nimport { createPageMeta } from '../metas/page';\nimport { FetchTransport } from '../transports';\n\nimport { getWebInstrumentations } from './getWebInstrumentations';\nimport type { BrowserConfig } from './types';\n\nexport function makeCoreConfig(browserConfig: BrowserConfig): Config {\n const transports: Transport[] = [];\n\n const internalLogger = createInternalLogger(browserConfig.unpatchedConsole, browserConfig.internalLoggerLevel);\n\n if (browserConfig.transports) {\n if (browserConfig.url || browserConfig.apiKey) {\n internalLogger.error('if \"transports\" is defined, \"url\" and \"apiKey\" should not be defined');\n }\n\n transports.push(...browserConfig.transports);\n } else if (browserConfig.url) {\n transports.push(\n new FetchTransport({\n url: browserConfig.url,\n apiKey: browserConfig.apiKey,\n })\n );\n } else {\n internalLogger.error('either \"url\" or \"transports\" must be defined');\n }\n\n const {\n app,\n batching,\n beforeSend,\n consoleInstrumentation,\n ignoreErrors,\n sessionTracking,\n trackResources,\n trackWebVitalsAttribution,\n user,\n view,\n trackGeolocation,\n // properties with default values\n dedupe = true,\n eventDomain = defaultEventDomain,\n globalObjectKey = defaultGlobalObjectKey,\n instrumentations = getWebInstrumentations(),\n internalLoggerLevel = defaultInternalLoggerLevel,\n isolate = false,\n logArgsSerializer = defaultLogArgsSerializer,\n metas = createDefaultMetas(browserConfig),\n paused = false,\n preventGlobalExposure = false,\n unpatchedConsole = defaultUnpatchedConsole,\n webVitalsInstrumentation,\n trackUserActionsPreview = false,\n trackUserActionsDataAttributeName = userActionDataAttribute,\n trackUserActionsExcludeItem,\n }: BrowserConfig = browserConfig;\n\n return {\n app,\n batching: {\n ...defaultBatchingConfig,\n ...batching,\n },\n dedupe: dedupe,\n globalObjectKey,\n instrumentations: getFilteredInstrumentations(instrumentations, browserConfig),\n internalLoggerLevel,\n isolate,\n logArgsSerializer,\n metas,\n parseStacktrace,\n paused,\n preventGlobalExposure,\n transports,\n unpatchedConsole,\n beforeSend,\n eventDomain,\n ignoreErrors,\n // ignore cloud collector urls by default. These are URLs ending with /collect or /collect/ followed by alphanumeric characters.\n ignoreUrls: (browserConfig.ignoreUrls ?? []).concat([/\\/collect(?:\\/[\\w]*)?$/]),\n sessionTracking: {\n ...defaultSessionTrackingConfig,\n ...sessionTracking,\n ...crateSessionMeta({ trackGeolocation, sessionTracking }),\n },\n user,\n view,\n trackResources,\n trackWebVitalsAttribution,\n consoleInstrumentation,\n webVitalsInstrumentation,\n trackUserActionsPreview,\n trackUserActionsDataAttributeName,\n trackUserActionsExcludeItem,\n };\n}\n\nfunction getFilteredInstrumentations(\n instrumentations: Instrumentation[],\n { trackUserActionsPreview }: BrowserConfig\n): Instrumentation[] {\n return instrumentations.filter((instr) => {\n if (instr.name === '@grafana/faro-web-sdk:instrumentation-user-action' && !trackUserActionsPreview) {\n return false;\n }\n return true;\n });\n}\n\nfunction createDefaultMetas(browserConfig: BrowserConfig): MetaItem[] {\n const { page, generatePageId } = browserConfig?.pageTracking ?? {};\n\n const initialMetas: MetaItem[] = [\n browserMeta,\n createPageMeta({ generatePageId, initialPageMeta: page }),\n ...(browserConfig.metas ?? []),\n ];\n\n const isK6BrowserSession = isObject((window as any).k6);\n if (isK6BrowserSession) {\n return [...initialMetas, k6Meta];\n }\n\n return initialMetas;\n}\n\nfunction crateSessionMeta({\n trackGeolocation,\n sessionTracking,\n}: Pick<BrowserConfig, 'trackGeolocation' | 'sessionTracking'>): { session: MetaSession } | {} {\n const overrides: MetaSession['overrides'] = {};\n\n if (isBoolean(trackGeolocation)) {\n overrides.geoLocationTrackingEnabled = trackGeolocation;\n }\n\n if (isEmpty(overrides)) {\n return {};\n }\n\n return {\n session: {\n ...(sessionTracking?.session ?? {}),\n overrides,\n },\n };\n}\n"]}
1
+ {"version":3,"file":"makeCoreConfig.js","sourceRoot":"","sources":["../../../src/config/makeCoreConfig.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n createInternalLogger,\n defaultBatchingConfig,\n defaultGlobalObjectKey,\n defaultInternalLoggerLevel,\n defaultLogArgsSerializer,\n defaultUnpatchedConsole,\n isBoolean,\n isEmpty,\n isObject,\n} from '@grafana/faro-core';\nimport type { Config, Instrumentation, MetaItem, MetaSession, Transport } from '@grafana/faro-core';\n\nimport { defaultEventDomain } from '../consts';\nimport { parseStacktrace } from '../instrumentations';\nimport { defaultSessionTrackingConfig } from '../instrumentations/session';\nimport { userActionDataAttribute } from '../instrumentations/userActions/const';\nimport { browserMeta } from '../metas';\nimport { k6Meta } from '../metas/k6';\nimport { createPageMeta } from '../metas/page';\nimport { FetchTransport } from '../transports';\n\nimport { getWebInstrumentations } from './getWebInstrumentations';\nimport type { BrowserConfig } from './types';\n\nexport function makeCoreConfig(browserConfig: BrowserConfig): Config {\n const transports: Transport[] = [];\n\n const internalLogger = createInternalLogger(browserConfig.unpatchedConsole, browserConfig.internalLoggerLevel);\n\n if (browserConfig.transports) {\n if (browserConfig.url || browserConfig.apiKey) {\n internalLogger.error('if \"transports\" is defined, \"url\" and \"apiKey\" should not be defined');\n }\n\n transports.push(...browserConfig.transports);\n } else if (browserConfig.url) {\n transports.push(\n new FetchTransport({\n url: browserConfig.url,\n apiKey: browserConfig.apiKey,\n })\n );\n } else {\n internalLogger.error('either \"url\" or \"transports\" must be defined');\n }\n\n const {\n app,\n batching,\n beforeSend,\n consoleInstrumentation,\n ignoreErrors,\n sessionTracking,\n trackResources,\n trackWebVitalsAttribution,\n user,\n view,\n trackGeolocation,\n // properties with default values\n dedupe = true,\n eventDomain = defaultEventDomain,\n globalObjectKey = defaultGlobalObjectKey,\n instrumentations = getWebInstrumentations(),\n internalLoggerLevel = defaultInternalLoggerLevel,\n isolate = false,\n logArgsSerializer = defaultLogArgsSerializer,\n metas = createDefaultMetas(browserConfig),\n paused = false,\n preventGlobalExposure = false,\n unpatchedConsole = defaultUnpatchedConsole,\n webVitalsInstrumentation,\n trackUserActionsPreview = false,\n trackUserActionsDataAttributeName = userActionDataAttribute,\n trackUserActionsExcludeItem,\n }: BrowserConfig = browserConfig;\n\n return {\n app,\n batching: {\n ...defaultBatchingConfig,\n ...batching,\n },\n dedupe: dedupe,\n globalObjectKey,\n instrumentations: getFilteredInstrumentations(instrumentations, browserConfig),\n internalLoggerLevel,\n isolate,\n logArgsSerializer,\n metas,\n parseStacktrace,\n paused,\n preventGlobalExposure,\n transports,\n unpatchedConsole,\n beforeSend,\n eventDomain,\n ignoreErrors,\n // ignore cloud collector urls by default. These are URLs ending with /collect or /collect/ followed by alphanumeric characters.\n ignoreUrls: (browserConfig.ignoreUrls ?? []).concat([/\\/collect(?:\\/[\\w]*)?$/]),\n sessionTracking: {\n ...defaultSessionTrackingConfig,\n ...sessionTracking,\n ...crateSessionMeta({ trackGeolocation, sessionTracking }),\n },\n user,\n view,\n trackResources,\n trackWebVitalsAttribution,\n consoleInstrumentation,\n webVitalsInstrumentation,\n trackUserActionsPreview,\n trackUserActionsDataAttributeName,\n trackUserActionsExcludeItem,\n };\n}\n\nfunction getFilteredInstrumentations(\n instrumentations: Instrumentation[],\n { trackUserActionsPreview }: BrowserConfig\n): Instrumentation[] {\n return instrumentations.filter((instr) => {\n if (instr.name === '@grafana/faro-web-sdk:instrumentation-user-action' && !trackUserActionsPreview) {\n return false;\n }\n return true;\n });\n}\n\nfunction createDefaultMetas(browserConfig: BrowserConfig): MetaItem[] {\n const { page, generatePageId } = browserConfig?.pageTracking ?? {};\n\n const initialMetas: MetaItem[] = [\n browserMeta,\n createPageMeta({ generatePageId, initialPageMeta: page }),\n ...(browserConfig.metas ?? []),\n ];\n\n const isK6BrowserSession = isObject((window as any).k6);\n if (isK6BrowserSession) {\n return [...initialMetas, k6Meta];\n }\n\n return initialMetas;\n}\n\nfunction crateSessionMeta({\n trackGeolocation,\n sessionTracking,\n}: Pick<BrowserConfig, 'trackGeolocation' | 'sessionTracking'>): { session: MetaSession } | {} {\n const overrides: MetaSession['overrides'] = {};\n\n if (isBoolean(trackGeolocation)) {\n overrides.geoLocationTrackingEnabled = trackGeolocation;\n }\n\n if (isEmpty(overrides)) {\n return {};\n }\n\n return {\n session: {\n ...(sessionTracking?.session ?? {}),\n overrides,\n },\n };\n}\n"]}
package/dist/cjs/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isEventDefined = exports.isEvent = exports.isErrorEvent = exports.isErrorDefined = exports.isError = exports.isElementDefined = exports.isElement = exports.isDomException = exports.isDomError = exports.isBoolean = exports.isArray = exports.internalGlobalObjectKey = exports.globalObject = exports.getTransportBody = exports.getInternalFaroFromGlobalObject = exports.getCurrentTimestamp = exports.genShortID = exports.defaultLogLevel = exports.defaultInternalLoggerLevel = exports.defaultGlobalObjectKey = exports.defaultExceptionType = exports.deepEqual = exports.createPromiseBuffer = exports.createInternalLogger = exports.Conventions = exports.BaseTransport = exports.BaseInstrumentation = exports.BaseExtension = exports.allLogLevels = exports.faro = exports.FetchTransport = exports.ConsoleTransport = exports.sdkMeta = exports.createSession = exports.browserMeta = exports.UserActionInstrumentation = exports.PerformanceInstrumentation = exports.SessionInstrumentation = exports.WebVitalsInstrumentation = exports.ViewInstrumentation = exports.parseStacktrace = exports.getStackFramesFromError = exports.getDataFromSafariExtensions = exports.ErrorsInstrumentation = exports.ConsoleInstrumentation = exports.buildStackFrame = exports.initializeFaro = exports.defaultEventDomain = exports.makeCoreConfig = exports.getWebInstrumentations = void 0;
4
- exports.userActionDataAttribute = exports.getIgnoreUrls = exports.STORAGE_KEY = exports.SESSION_INACTIVITY_TIME = exports.SESSION_EXPIRATION_TIME = exports.MAX_SESSION_PERSISTENCE_TIME_BUFFER = exports.MAX_SESSION_PERSISTENCE_TIME = exports.VolatileSessionsManager = exports.PersistentSessionsManager = exports.USER_ACTION_START_MESSAGE_TYPE = exports.USER_ACTION_END_MESSAGE_TYPE = exports.USER_ACTION_CANCEL_MESSAGE_TYPE = exports.merge = exports.Observable = exports.apiMessageBus = exports.EVENT_VIEW_CHANGED = exports.EVENT_SESSION_START = exports.EVENT_SESSION_RESUME = exports.EVENT_SESSION_EXTEND = exports.EVENT_ROUTE_CHANGE = exports.EVENT_NAVIGATION = exports.EVENT_CLICK = exports.VERSION = exports.transportItemTypeToBodyKey = exports.TransportItemType = exports.setInternalFaroOnGlobalObject = exports.noop = exports.LogLevel = exports.InternalLoggerLevel = exports.isEmpty = exports.isUndefined = exports.isTypeof = exports.isToString = exports.isThenable = exports.isSyntheticEvent = exports.isSymbol = exports.isString = exports.isRegExp = exports.isPrimitive = exports.isObject = exports.isNumber = exports.isNull = exports.isMapDefined = exports.isMap = exports.isInternalFaroOnGlobalObject = exports.isInt = exports.isInstanceOf = exports.isFunction = void 0;
4
+ exports.userActionDataAttribute = exports.getUrlFromResource = exports.getIgnoreUrls = exports.STORAGE_KEY = exports.SESSION_INACTIVITY_TIME = exports.SESSION_EXPIRATION_TIME = exports.MAX_SESSION_PERSISTENCE_TIME_BUFFER = exports.MAX_SESSION_PERSISTENCE_TIME = exports.VolatileSessionsManager = exports.PersistentSessionsManager = exports.USER_ACTION_START = exports.USER_ACTION_END = exports.USER_ACTION_CANCEL = exports.Observable = exports.apiMessageBus = exports.EVENT_VIEW_CHANGED = exports.EVENT_SESSION_START = exports.EVENT_SESSION_RESUME = exports.EVENT_SESSION_EXTEND = exports.EVENT_ROUTE_CHANGE = exports.EVENT_NAVIGATION = exports.EVENT_CLICK = exports.VERSION = exports.transportItemTypeToBodyKey = exports.TransportItemType = exports.setInternalFaroOnGlobalObject = exports.noop = exports.LogLevel = exports.InternalLoggerLevel = exports.isEmpty = exports.isUndefined = exports.isTypeof = exports.isToString = exports.isThenable = exports.isSyntheticEvent = exports.isSymbol = exports.isString = exports.isRegExp = exports.isPrimitive = exports.isObject = exports.isNumber = exports.isNull = exports.isMapDefined = exports.isMap = exports.isInternalFaroOnGlobalObject = exports.isInt = exports.isInstanceOf = exports.isFunction = void 0;
5
5
  var config_1 = require("./config");
6
6
  Object.defineProperty(exports, "getWebInstrumentations", { enumerable: true, get: function () { return config_1.getWebInstrumentations; } });
7
7
  Object.defineProperty(exports, "makeCoreConfig", { enumerable: true, get: function () { return config_1.makeCoreConfig; } });
@@ -94,10 +94,9 @@ Object.defineProperty(exports, "EVENT_SESSION_START", { enumerable: true, get: f
94
94
  Object.defineProperty(exports, "EVENT_VIEW_CHANGED", { enumerable: true, get: function () { return faro_core_1.EVENT_VIEW_CHANGED; } });
95
95
  Object.defineProperty(exports, "apiMessageBus", { enumerable: true, get: function () { return faro_core_1.apiMessageBus; } });
96
96
  Object.defineProperty(exports, "Observable", { enumerable: true, get: function () { return faro_core_1.Observable; } });
97
- Object.defineProperty(exports, "merge", { enumerable: true, get: function () { return faro_core_1.merge; } });
98
- Object.defineProperty(exports, "USER_ACTION_CANCEL_MESSAGE_TYPE", { enumerable: true, get: function () { return faro_core_1.USER_ACTION_CANCEL_MESSAGE_TYPE; } });
99
- Object.defineProperty(exports, "USER_ACTION_END_MESSAGE_TYPE", { enumerable: true, get: function () { return faro_core_1.USER_ACTION_END_MESSAGE_TYPE; } });
100
- Object.defineProperty(exports, "USER_ACTION_START_MESSAGE_TYPE", { enumerable: true, get: function () { return faro_core_1.USER_ACTION_START_MESSAGE_TYPE; } });
97
+ Object.defineProperty(exports, "USER_ACTION_CANCEL", { enumerable: true, get: function () { return faro_core_1.USER_ACTION_CANCEL; } });
98
+ Object.defineProperty(exports, "USER_ACTION_END", { enumerable: true, get: function () { return faro_core_1.USER_ACTION_END; } });
99
+ Object.defineProperty(exports, "USER_ACTION_START", { enumerable: true, get: function () { return faro_core_1.USER_ACTION_START; } });
101
100
  var session_1 = require("./instrumentations/session");
102
101
  Object.defineProperty(exports, "PersistentSessionsManager", { enumerable: true, get: function () { return session_1.PersistentSessionsManager; } });
103
102
  Object.defineProperty(exports, "VolatileSessionsManager", { enumerable: true, get: function () { return session_1.VolatileSessionsManager; } });
@@ -108,6 +107,7 @@ Object.defineProperty(exports, "SESSION_INACTIVITY_TIME", { enumerable: true, ge
108
107
  Object.defineProperty(exports, "STORAGE_KEY", { enumerable: true, get: function () { return session_1.STORAGE_KEY; } });
109
108
  var url_1 = require("./utils/url");
110
109
  Object.defineProperty(exports, "getIgnoreUrls", { enumerable: true, get: function () { return url_1.getIgnoreUrls; } });
110
+ Object.defineProperty(exports, "getUrlFromResource", { enumerable: true, get: function () { return url_1.getUrlFromResource; } });
111
111
  var const_1 = require("./instrumentations/userActions/const");
112
112
  Object.defineProperty(exports, "userActionDataAttribute", { enumerable: true, get: function () { return const_1.userActionDataAttribute; } });
113
113
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["export { getWebInstrumentations, makeCoreConfig } from './config';\nexport type { BrowserConfig } from './config';\n\nexport { defaultEventDomain } from './consts';\n\nexport { initializeFaro } from './initialize';\n\nexport {\n buildStackFrame,\n ConsoleInstrumentation,\n ErrorsInstrumentation,\n getDataFromSafariExtensions,\n getStackFramesFromError,\n parseStacktrace,\n ViewInstrumentation,\n WebVitalsInstrumentation,\n SessionInstrumentation,\n PerformanceInstrumentation,\n UserActionInstrumentation,\n} from './instrumentations';\nexport type { ConsoleInstrumentationOptions, ErrorEvent, ExtendedPromiseRejectionEvent } from './instrumentations';\n\nexport { browserMeta, createSession, sdkMeta } from './metas';\n\nexport { ConsoleTransport, FetchTransport } from './transports';\nexport type {\n ClockFn,\n ConsoleTransportOptions,\n FetchTransportOptions,\n FetchTransportRequestOptions,\n} from './transports';\n\nexport {\n faro,\n allLogLevels,\n BaseExtension,\n BaseInstrumentation,\n BaseTransport,\n Conventions,\n createInternalLogger,\n createPromiseBuffer,\n deepEqual,\n defaultExceptionType,\n defaultGlobalObjectKey,\n defaultInternalLoggerLevel,\n defaultLogLevel,\n genShortID,\n getCurrentTimestamp,\n getInternalFaroFromGlobalObject,\n getTransportBody,\n globalObject,\n internalGlobalObjectKey,\n isArray,\n isBoolean,\n isDomError,\n isDomException,\n isElement,\n isElementDefined,\n isError,\n isErrorDefined,\n isErrorEvent,\n isEvent,\n isEventDefined,\n isFunction,\n isInstanceOf,\n isInt,\n isInternalFaroOnGlobalObject,\n isMap,\n isMapDefined,\n isNull,\n isNumber,\n isObject,\n isPrimitive,\n isRegExp,\n isString,\n isSymbol,\n isSyntheticEvent,\n isThenable,\n isToString,\n isTypeof,\n isUndefined,\n isEmpty,\n InternalLoggerLevel,\n LogLevel,\n noop,\n setInternalFaroOnGlobalObject,\n TransportItemType,\n transportItemTypeToBodyKey,\n VERSION,\n EVENT_CLICK,\n EVENT_NAVIGATION,\n EVENT_ROUTE_CHANGE,\n EVENT_SESSION_EXTEND,\n EVENT_SESSION_RESUME,\n EVENT_SESSION_START,\n EVENT_VIEW_CHANGED,\n apiMessageBus,\n Observable,\n merge,\n USER_ACTION_CANCEL_MESSAGE_TYPE,\n USER_ACTION_END_MESSAGE_TYPE,\n USER_ACTION_START_MESSAGE_TYPE,\n} from '@grafana/faro-core';\n\nexport type {\n Faro,\n API,\n APIEvent,\n BaseObject,\n BaseObjectKey,\n BaseObjectPrimitiveValue,\n BaseObjectValue,\n BeforeSendHook,\n BufferItem,\n Config,\n EventAttributes,\n EventEvent,\n EventsAPI,\n ExceptionEvent,\n ExceptionStackFrame,\n ExceptionsAPI,\n ExtendedError,\n Extension,\n GlobalObject,\n Instrumentation,\n Instrumentations,\n InternalLogger,\n LogContext,\n LogEvent,\n LogsAPI,\n MeasurementEvent,\n MeasurementsAPI,\n Meta,\n MetaAPI,\n MetaApp,\n MetaAttributes,\n MetaBrowser,\n MetaGetter,\n MetaItem,\n MetaPage,\n Metas,\n MetaSDK,\n MetaSDKIntegration,\n MetaSession,\n MetaUser,\n MetaView,\n OTELApi,\n Patterns,\n PromiseBuffer,\n PromiseBufferOptions,\n PromiseProducer,\n PushErrorOptions,\n PushLogOptions,\n PushMeasurementOptions,\n Stacktrace,\n StacktraceParser,\n TraceContext,\n TraceEvent,\n TracesAPI,\n Transport,\n TransportBody,\n TransportItem,\n TransportItemPayload,\n Transports,\n UnpatchedConsole,\n ApiMessageBusMessages,\n UserActionStartMessage,\n UserActionEndMessage,\n UserActionCancelMessage,\n UserAction,\n} from '@grafana/faro-core';\n\nexport {\n PersistentSessionsManager,\n VolatileSessionsManager,\n MAX_SESSION_PERSISTENCE_TIME,\n MAX_SESSION_PERSISTENCE_TIME_BUFFER,\n SESSION_EXPIRATION_TIME,\n SESSION_INACTIVITY_TIME,\n STORAGE_KEY,\n} from './instrumentations/session';\n\nexport { getIgnoreUrls } from './utils/url';\n\nexport { userActionDataAttribute } from './instrumentations/userActions/const';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["export { getWebInstrumentations, makeCoreConfig } from './config';\nexport type { BrowserConfig } from './config';\n\nexport { defaultEventDomain } from './consts';\n\nexport { initializeFaro } from './initialize';\n\nexport {\n buildStackFrame,\n ConsoleInstrumentation,\n ErrorsInstrumentation,\n getDataFromSafariExtensions,\n getStackFramesFromError,\n parseStacktrace,\n ViewInstrumentation,\n WebVitalsInstrumentation,\n SessionInstrumentation,\n PerformanceInstrumentation,\n UserActionInstrumentation,\n} from './instrumentations';\nexport type { ConsoleInstrumentationOptions, ErrorEvent, ExtendedPromiseRejectionEvent } from './instrumentations';\n\nexport { browserMeta, createSession, sdkMeta } from './metas';\n\nexport { ConsoleTransport, FetchTransport } from './transports';\nexport type {\n ClockFn,\n ConsoleTransportOptions,\n FetchTransportOptions,\n FetchTransportRequestOptions,\n} from './transports';\n\nexport {\n faro,\n allLogLevels,\n BaseExtension,\n BaseInstrumentation,\n BaseTransport,\n Conventions,\n createInternalLogger,\n createPromiseBuffer,\n deepEqual,\n defaultExceptionType,\n defaultGlobalObjectKey,\n defaultInternalLoggerLevel,\n defaultLogLevel,\n genShortID,\n getCurrentTimestamp,\n getInternalFaroFromGlobalObject,\n getTransportBody,\n globalObject,\n internalGlobalObjectKey,\n isArray,\n isBoolean,\n isDomError,\n isDomException,\n isElement,\n isElementDefined,\n isError,\n isErrorDefined,\n isErrorEvent,\n isEvent,\n isEventDefined,\n isFunction,\n isInstanceOf,\n isInt,\n isInternalFaroOnGlobalObject,\n isMap,\n isMapDefined,\n isNull,\n isNumber,\n isObject,\n isPrimitive,\n isRegExp,\n isString,\n isSymbol,\n isSyntheticEvent,\n isThenable,\n isToString,\n isTypeof,\n isUndefined,\n isEmpty,\n InternalLoggerLevel,\n LogLevel,\n noop,\n setInternalFaroOnGlobalObject,\n TransportItemType,\n transportItemTypeToBodyKey,\n VERSION,\n EVENT_CLICK,\n EVENT_NAVIGATION,\n EVENT_ROUTE_CHANGE,\n EVENT_SESSION_EXTEND,\n EVENT_SESSION_RESUME,\n EVENT_SESSION_START,\n EVENT_VIEW_CHANGED,\n apiMessageBus,\n Observable,\n USER_ACTION_CANCEL,\n USER_ACTION_END,\n USER_ACTION_START,\n} from '@grafana/faro-core';\n\nexport type {\n Faro,\n API,\n APIEvent,\n BaseObject,\n BaseObjectKey,\n BaseObjectPrimitiveValue,\n BaseObjectValue,\n BeforeSendHook,\n BufferItem,\n Config,\n EventAttributes,\n EventEvent,\n EventsAPI,\n ExceptionEvent,\n ExceptionStackFrame,\n ExceptionsAPI,\n ExtendedError,\n Extension,\n GlobalObject,\n Instrumentation,\n Instrumentations,\n InternalLogger,\n LogContext,\n LogEvent,\n LogsAPI,\n MeasurementEvent,\n MeasurementsAPI,\n Meta,\n MetaAPI,\n MetaApp,\n MetaAttributes,\n MetaBrowser,\n MetaGetter,\n MetaItem,\n MetaPage,\n Metas,\n MetaSDK,\n MetaSDKIntegration,\n MetaSession,\n MetaUser,\n MetaView,\n OTELApi,\n Patterns,\n PromiseBuffer,\n PromiseBufferOptions,\n PromiseProducer,\n PushErrorOptions,\n PushLogOptions,\n PushMeasurementOptions,\n Stacktrace,\n StacktraceParser,\n TraceContext,\n TraceEvent,\n TracesAPI,\n Transport,\n TransportBody,\n TransportItem,\n TransportItemPayload,\n Transports,\n UnpatchedConsole,\n ApiMessageBusMessages,\n UserActionStartMessage,\n UserActionEndMessage,\n UserActionCancelMessage,\n UserAction,\n} from '@grafana/faro-core';\n\nexport {\n PersistentSessionsManager,\n VolatileSessionsManager,\n MAX_SESSION_PERSISTENCE_TIME,\n MAX_SESSION_PERSISTENCE_TIME_BUFFER,\n SESSION_EXPIRATION_TIME,\n SESSION_INACTIVITY_TIME,\n STORAGE_KEY,\n} from './instrumentations/session';\n\nexport { getIgnoreUrls, getUrlFromResource } from './utils/url';\n\nexport { userActionDataAttribute } from './instrumentations/userActions/const';\n"]}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.initializeFaro = void 0;
3
+ exports.initializeFaro = initializeFaro;
4
4
  var faro_core_1 = require("@grafana/faro-core");
5
5
  var config_1 = require("./config");
6
6
  function initializeFaro(config) {
@@ -10,5 +10,4 @@ function initializeFaro(config) {
10
10
  }
11
11
  return (0, faro_core_1.initializeFaro)(coreConfig);
12
12
  }
13
- exports.initializeFaro = initializeFaro;
14
13
  //# sourceMappingURL=initialize.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"initialize.js","sourceRoot":"","sources":["../../src/initialize.ts"],"names":[],"mappings":";;;AAAA,gDAAgE;AAGhE,mCAA0C;AAG1C,SAAgB,cAAc,CAAC,MAAqB;IAClD,IAAM,UAAU,GAAG,IAAA,uBAAc,EAAC,MAAM,CAAC,CAAC;IAE1C,IAAI,CAAC,UAAU,EAAE;QACf,OAAO,SAAU,CAAC;KACnB;IAED,OAAO,IAAA,0BAAQ,EAAC,UAAU,CAAC,CAAC;AAC9B,CAAC;AARD,wCAQC","sourcesContent":["import { initializeFaro as coreInit } from '@grafana/faro-core';\nimport type { Faro } from '@grafana/faro-core';\n\nimport { makeCoreConfig } from './config';\nimport type { BrowserConfig } from './config';\n\nexport function initializeFaro(config: BrowserConfig): Faro {\n const coreConfig = makeCoreConfig(config);\n\n if (!coreConfig) {\n return undefined!;\n }\n\n return coreInit(coreConfig);\n}\n"]}
1
+ {"version":3,"file":"initialize.js","sourceRoot":"","sources":["../../src/initialize.ts"],"names":[],"mappings":";;AAMA,wCAQC;AAdD,gDAAgE;AAGhE,mCAA0C;AAG1C,SAAgB,cAAc,CAAC,MAAqB;IAClD,IAAM,UAAU,GAAG,IAAA,uBAAc,EAAC,MAAM,CAAC,CAAC;IAE1C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,SAAU,CAAC;IACpB,CAAC;IAED,OAAO,IAAA,0BAAQ,EAAC,UAAU,CAAC,CAAC;AAC9B,CAAC","sourcesContent":["import { initializeFaro as coreInit } from '@grafana/faro-core';\nimport type { Faro } from '@grafana/faro-core';\n\nimport { makeCoreConfig } from './config';\nimport type { BrowserConfig } from './config';\n\nexport function initializeFaro(config: BrowserConfig): Faro {\n const coreConfig = makeCoreConfig(config);\n\n if (!coreConfig) {\n return undefined!;\n }\n\n return coreInit(coreConfig);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../../../src/instrumentations/console/instrumentation.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n allLogLevels,\n BaseInstrumentation,\n defaultErrorArgsSerializer,\n defaultLogArgsSerializer,\n LogArgsSerializer,\n LogLevel,\n VERSION,\n} from '@grafana/faro-core';\n\nimport { getDetailsFromConsoleErrorArgs } from '../errors/getErrorDetails';\n\nimport type { ConsoleInstrumentationOptions } from './types';\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 private errorSerializer: LogArgsSerializer = defaultLogArgsSerializer;\n\n constructor(private options: ConsoleInstrumentationOptions = {}) {\n super();\n }\n\n initialize() {\n this.options = { ...this.options, ...this.config.consoleInstrumentation };\n\n const serializeErrors = this.options?.serializeErrors || !!this.options?.errorSerializer;\n this.errorSerializer = serializeErrors\n ? (this.options?.errorSerializer ?? defaultErrorArgsSerializer)\n : defaultLogArgsSerializer;\n\n allLogLevels\n .filter(\n (level) => !(this.options?.disabledLevels ?? ConsoleInstrumentation.defaultDisabledLevels).includes(level)\n )\n .forEach((level) => {\n /* eslint-disable-next-line no-console */\n console[level] = (...args) => {\n try {\n if (level === LogLevel.ERROR && !this.options?.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 && this.options?.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 } finally {\n this.unpatchedConsole[level](...args);\n }\n };\n });\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 allLogLevels,\n BaseInstrumentation,\n defaultErrorArgsSerializer,\n defaultLogArgsSerializer,\n LogLevel,\n VERSION,\n} from '@grafana/faro-core';\nimport type { LogArgsSerializer } from '@grafana/faro-core';\n\nimport { getDetailsFromConsoleErrorArgs } from '../errors/getErrorDetails';\n\nimport type { ConsoleInstrumentationOptions } from './types';\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 private errorSerializer: LogArgsSerializer = defaultLogArgsSerializer;\n\n constructor(private options: ConsoleInstrumentationOptions = {}) {\n super();\n }\n\n initialize() {\n this.options = { ...this.options, ...this.config.consoleInstrumentation };\n\n const serializeErrors = this.options?.serializeErrors || !!this.options?.errorSerializer;\n this.errorSerializer = serializeErrors\n ? (this.options?.errorSerializer ?? defaultErrorArgsSerializer)\n : defaultLogArgsSerializer;\n\n allLogLevels\n .filter(\n (level) => !(this.options?.disabledLevels ?? ConsoleInstrumentation.defaultDisabledLevels).includes(level)\n )\n .forEach((level) => {\n /* eslint-disable-next-line no-console */\n console[level] = (...args) => {\n try {\n if (level === LogLevel.ERROR && !this.options?.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 && this.options?.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 } finally {\n this.unpatchedConsole[level](...args);\n }\n };\n });\n }\n}\n"]}
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getDetailsFromConsoleErrorArgs = exports.getDetailsFromErrorArgs = exports.getErrorDetails = void 0;
3
+ exports.getErrorDetails = getErrorDetails;
4
+ exports.getDetailsFromErrorArgs = getDetailsFromErrorArgs;
5
+ exports.getDetailsFromConsoleErrorArgs = getDetailsFromConsoleErrorArgs;
4
6
  var faro_core_1 = require("@grafana/faro-core");
5
7
  var const_1 = require("./const");
6
8
  var getValueAndTypeFromMessage_1 = require("./getValueAndTypeFromMessage");
@@ -31,7 +33,6 @@ function getErrorDetails(evt) {
31
33
  }
32
34
  return [value, type, stackFrames];
33
35
  }
34
- exports.getErrorDetails = getErrorDetails;
35
36
  function getDetailsFromErrorArgs(args) {
36
37
  var _a, _b;
37
38
  var evt = args[0], source = args[1], lineno = args[2], colno = args[3], error = args[4];
@@ -52,7 +53,6 @@ function getDetailsFromErrorArgs(args) {
52
53
  }
53
54
  return { value: value, type: type, stackFrames: stackFrames };
54
55
  }
55
- exports.getDetailsFromErrorArgs = getDetailsFromErrorArgs;
56
56
  function getDetailsFromConsoleErrorArgs(args, serializer) {
57
57
  if ((0, faro_core_1.isError)(args[0])) {
58
58
  return getDetailsFromErrorArgs(args);
@@ -61,5 +61,4 @@ function getDetailsFromConsoleErrorArgs(args, serializer) {
61
61
  return { value: serializer(args) };
62
62
  }
63
63
  }
64
- exports.getDetailsFromConsoleErrorArgs = getDetailsFromConsoleErrorArgs;
65
64
  //# sourceMappingURL=getErrorDetails.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getErrorDetails.js","sourceRoot":"","sources":["../../../../src/instrumentations/errors/getErrorDetails.ts"],"names":[],"mappings":";;;AAAA,gDAAoH;AAGpH,iCAAgG;AAChG,2EAA0E;AAC1E,6CAAyE;AAGzE,SAAgB,eAAe,CAAC,GAAe;IAC7C,IAAI,KAAyB,CAAC;IAC9B,IAAI,IAAwB,CAAC;IAC7B,IAAI,WAAW,GAA0B,EAAE,CAAC;IAC5C,IAAI,aAAkC,CAAC;IACvC,IAAI,UAA+B,CAAC;IAEpC,IAAI,IAAA,wBAAY,EAAC,GAAG,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE;QAClC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;QAC1B,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;QACtB,WAAW,GAAG,IAAA,qCAAuB,EAAC,GAAG,CAAC,KAAK,CAAC,CAAC;KAClD;SAAM,IAAI,CAAC,aAAa,GAAG,IAAA,sBAAU,EAAC,GAAG,CAAC,CAAC,IAAI,IAAA,0BAAc,EAAC,GAAG,CAAC,EAAE;QAC3D,IAAA,MAAI,GAAc,GAAG,KAAjB,EAAE,OAAO,GAAK,GAAG,QAAR,CAAS;QAE9B,IAAI,GAAG,MAAI,aAAJ,MAAI,cAAJ,MAAI,GAAI,CAAC,aAAa,CAAC,CAAC,CAAC,oBAAY,CAAC,CAAC,CAAC,wBAAgB,CAAC,CAAC;QACjE,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,UAAG,IAAI,eAAK,OAAO,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC;KAChD;SAAM,IAAI,IAAA,mBAAO,EAAC,GAAG,CAAC,EAAE;QACvB,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC;QACpB,WAAW,GAAG,IAAA,qCAAuB,EAAC,GAAG,CAAC,CAAC;KAC5C;SAAM,IAAI,IAAA,oBAAQ,EAAC,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,IAAA,mBAAO,EAAC,GAAG,CAAC,CAAC,EAAE;QACvD,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QACrD,KAAK,GAAG,UAAG,wBAAgB,cAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAE,CAAC;KACnD;IAED,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;AACpC,CAAC;AAzBD,0CAyBC;AAQD,SAAgB,uBAAuB,CAAC,IAAsB;;IACrD,IAAA,GAAG,GAAkC,IAAI,GAAtC,EAAE,MAAM,GAA0B,IAAI,GAA9B,EAAE,MAAM,GAAkB,IAAI,GAAtB,EAAE,KAAK,GAAW,IAAI,GAAf,EAAE,KAAK,GAAI,IAAI,GAAR,CAAS;IAEjD,IAAI,KAAyB,CAAC;IAC9B,IAAI,IAAwB,CAAC;IAC7B,IAAI,WAAW,GAA0B,EAAE,CAAC;IAC5C,IAAM,aAAa,GAAG,IAAA,oBAAQ,EAAC,GAAG,CAAC,CAAC;IACpC,IAAM,iBAAiB,GAAG,IAAA,6BAAe,EAAC,MAAM,EAAE,2BAAmB,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAEtF,IAAI,KAAK,IAAI,CAAC,aAAa,EAAE;QAC3B,KAA6B,eAAe,CAAC,CAAC,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,GAAG,CAAkB,CAAC,EAA5E,KAAK,QAAA,EAAE,IAAI,QAAA,EAAE,WAAW,QAAA,CAAqD;QAE9E,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;YAC5B,WAAW,GAAG,CAAC,iBAAiB,CAAC,CAAC;SACnC;KACF;SAAM,IAAI,aAAa,EAAE;QACxB,KAAgB,IAAA,uDAA0B,EAAC,GAAG,CAAC,EAA9C,KAAK,QAAA,EAAE,IAAI,QAAA,CAAoC;QAChD,WAAW,GAAG,CAAC,iBAAiB,CAAC,CAAC;KACnC;IAED,OAAO,EAAE,KAAK,OAAA,EAAE,IAAI,MAAA,EAAE,WAAW,aAAA,EAAE,CAAC;AACtC,CAAC;AArBD,0DAqBC;AAED,SAAgB,8BAA8B,CAAC,IAAsB,EAAE,UAA6B;IAClG,IAAI,IAAA,mBAAO,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;QACpB,OAAO,uBAAuB,CAAC,IAAI,CAAC,CAAC;KACtC;SAAM;QACL,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;KACpC;AACH,CAAC;AAND,wEAMC","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 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,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getValueAndTypeFromMessage = void 0;
3
+ exports.getValueAndTypeFromMessage = getValueAndTypeFromMessage;
4
4
  var faro_core_1 = require("@grafana/faro-core");
5
5
  var const_1 = require("./const");
6
6
  function getValueAndTypeFromMessage(message) {
@@ -10,5 +10,4 @@ function getValueAndTypeFromMessage(message) {
10
10
  var 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
- exports.getValueAndTypeFromMessage = getValueAndTypeFromMessage;
14
13
  //# sourceMappingURL=getValueAndTypeFromMessage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getValueAndTypeFromMessage.js","sourceRoot":"","sources":["../../../../src/instrumentations/errors/getValueAndTypeFromMessage.ts"],"names":[],"mappings":";;;AAAA,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;AAPD,gEAOC","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,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 +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;QAAA,qEAWC;QAVU,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,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,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.registerOnerror = void 0;
3
+ exports.registerOnerror = registerOnerror;
4
4
  var getErrorDetails_1 = require("./getErrorDetails");
5
5
  function registerOnerror(api) {
6
6
  var oldOnerror = window.onerror;
@@ -20,5 +20,4 @@ function registerOnerror(api) {
20
20
  }
21
21
  };
22
22
  }
23
- exports.registerOnerror = registerOnerror;
24
23
  //# sourceMappingURL=registerOnerror.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"registerOnerror.js","sourceRoot":"","sources":["../../../../src/instrumentations/errors/registerOnerror.ts"],"names":[],"mappings":";;;AAEA,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;YACI,IAAA,KAA+B,IAAA,yCAAuB,EAAC,IAAI,CAAC,EAA1D,KAAK,WAAA,EAAE,IAAI,UAAA,EAAE,WAAW,iBAAkC,CAAC;YAEnE,IAAI,KAAK,EAAE;gBACT,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,MAAA,EAAE,WAAW,aAAA,EAAE,CAAC,CAAC;aACxD;SACF;gBAAS;YACR,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;SACjC;IACH,CAAC,CAAC;AACJ,CAAC;AAdD,0CAcC","sourcesContent":["import type { API } 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\n if (value) {\n api.pushError(new Error(value), { type, stackFrames });\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,0CAcC;AAhBD,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;YAEnE,IAAI,KAAK,EAAE,CAAC;gBACV,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,MAAA,EAAE,WAAW,aAAA,EAAE,CAAC,CAAC;YACzD,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 } 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\n if (value) {\n api.pushError(new Error(value), { type, stackFrames });\n }\n } finally {\n oldOnerror?.apply(window, args);\n }\n };\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.registerOnunhandledrejection = void 0;
3
+ exports.registerOnunhandledrejection = registerOnunhandledrejection;
4
4
  var faro_core_1 = require("@grafana/faro-core");
5
5
  var const_1 = require("./const");
6
6
  var getErrorDetails_1 = require("./getErrorDetails");
@@ -30,5 +30,4 @@ function registerOnunhandledrejection(api) {
30
30
  }
31
31
  });
32
32
  }
33
- exports.registerOnunhandledrejection = registerOnunhandledrejection;
34
33
  //# sourceMappingURL=registerOnunhandledrejection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"registerOnunhandledrejection.js","sourceRoot":"","sources":["../../../../src/instrumentations/errors/registerOnunhandledrejection.ts"],"names":[],"mappings":";;;AAAA,gDAAsE;AAGtE,iCAA0E;AAC1E,qDAAoD;AAGpD,SAAgB,4BAA4B,CAAC,GAAQ;IACnD,MAAM,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,UAAC,GAAkC;;;QAC/E,IAAI,KAAK,GAAG,GAAG,CAAC;QAEhB,IAAI,KAAK,CAAC,MAAM,EAAE;YAChB,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC;SACpB;aAAM,IAAI,MAAA,GAAG,CAAC,MAAM,0CAAE,MAAM,EAAE;YAC7B,KAAK,GAAG,MAAA,GAAG,CAAC,MAAM,0CAAE,MAAM,CAAC;SAC5B;QAED,IAAI,KAAyB,CAAC;QAC9B,IAAI,IAAwB,CAAC;QAC7B,IAAI,WAAW,GAA0B,EAAE,CAAC;QAC5C,IAAI,IAAA,uBAAW,EAAC,KAAK,CAAC,EAAE;YACtB,KAAK,GAAG,UAAG,+BAAuB,cAAI,MAAM,CAAC,KAAK,CAAC,CAAE,CAAC;YACtD,IAAI,GAAG,8BAAsB,CAAC;SAC/B;aAAM;YACL,KAA6B,IAAA,iCAAe,EAAC,KAAK,CAAC,EAAlD,KAAK,QAAA,EAAE,IAAI,QAAA,EAAE,WAAW,QAAA,CAA2B;SACrD;QAED,IAAI,KAAK,EAAE;YACT,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,MAAA,EAAE,WAAW,aAAA,EAAE,CAAC,CAAC;SACxD;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAxBD,oEAwBC","sourcesContent":["import { ExceptionStackFrame, isPrimitive } from '@grafana/faro-core';\nimport type { API } from '@grafana/faro-core';\n\nimport { primitiveUnhandledType, primitiveUnhandledValue } from './const';\nimport { getErrorDetails } from './getErrorDetails';\nimport type { ExtendedPromiseRejectionEvent } from './types';\n\nexport function registerOnunhandledrejection(api: API): void {\n window.addEventListener('unhandledrejection', (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"]}
1
+ {"version":3,"file":"registerOnunhandledrejection.js","sourceRoot":"","sources":["../../../../src/instrumentations/errors/registerOnunhandledrejection.ts"],"names":[],"mappings":";;AAOA,oEAwBC;AA/BD,gDAAiD;AAGjD,iCAA0E;AAC1E,qDAAoD;AAGpD,SAAgB,4BAA4B,CAAC,GAAQ;IACnD,MAAM,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,UAAC,GAAkC;;;QAC/E,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,CAAC;AACL,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\nexport function registerOnunhandledrejection(api: API): void {\n window.addEventListener('unhandledrejection', (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"]}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.buildStackFrame = void 0;
3
+ exports.buildStackFrame = buildStackFrame;
4
4
  var const_1 = require("./const");
5
5
  function buildStackFrame(filename, func, lineno, colno) {
6
6
  var stackFrame = {
@@ -15,5 +15,4 @@ function buildStackFrame(filename, func, lineno, colno) {
15
15
  }
16
16
  return stackFrame;
17
17
  }
18
- exports.buildStackFrame = buildStackFrame;
19
18
  //# sourceMappingURL=buildStackFrame.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"buildStackFrame.js","sourceRoot":"","sources":["../../../../../src/instrumentations/errors/stackFrames/buildStackFrame.ts"],"names":[],"mappings":";;;AAEA,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;QACxB,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;KAC5B;IAED,IAAI,KAAK,KAAK,SAAS,EAAE;QACvB,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC;KAC1B;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AApBD,0CAoBC","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,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,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getDataFromSafariExtensions = void 0;
3
+ exports.getDataFromSafariExtensions = getDataFromSafariExtensions;
4
4
  var const_1 = require("./const");
5
5
  function getDataFromSafariExtensions(func, filename) {
6
6
  var isSafariExtension = func === null || func === void 0 ? void 0 : func.includes(const_1.safariExtensionString);
@@ -13,5 +13,4 @@ function getDataFromSafariExtensions(func, filename) {
13
13
  isSafariExtension ? "".concat(const_1.safariExtensionString, ":").concat(filename) : "".concat(const_1.safariWebExtensionString, ":").concat(filename),
14
14
  ];
15
15
  }
16
- exports.getDataFromSafariExtensions = getDataFromSafariExtensions;
17
16
  //# sourceMappingURL=getDataFromSafariExtensions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getDataFromSafariExtensions.js","sourceRoot":"","sources":["../../../../../src/instrumentations/errors/stackFrames/getDataFromSafariExtensions.ts"],"names":[],"mappings":";;;AAAA,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;QAC/C,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;KACzB;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;AAfD,kEAeC","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,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,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getStackFramesFromError = void 0;
3
+ exports.getStackFramesFromError = getStackFramesFromError;
4
4
  var faro_core_1 = require("@grafana/faro-core");
5
5
  var buildStackFrame_1 = require("./buildStackFrame");
6
6
  var const_1 = require("./const");
@@ -66,5 +66,4 @@ function getStackFramesFromError(error) {
66
66
  }
67
67
  return stackFrames;
68
68
  }
69
- exports.getStackFramesFromError = getStackFramesFromError;
70
69
  //# sourceMappingURL=getStackFramesFromError.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getStackFramesFromError.js","sourceRoot":"","sources":["../../../../../src/instrumentations/errors/stackFrames/getStackFramesFromError.ts"],"names":[],"mappings":"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","sourcesContent":["import { isNumber } from '@grafana/faro-core';\nimport type { ExceptionStackFrame, ExtendedError } from '@grafana/faro-core';\n\nimport { buildStackFrame } from './buildStackFrame';\nimport {\n evalString,\n firefoxEvalRegex,\n firefoxEvalString,\n firefoxLineRegex,\n newLineString,\n reactMinifiedRegex,\n webkitAddressAtString,\n webkitAddressAtStringLength,\n webkitEvalRegex,\n webkitEvalString,\n webkitLineRegex,\n} from './const';\nimport { getDataFromSafariExtensions } from './getDataFromSafariExtensions';\n\nexport function getStackFramesFromError(error: ExtendedError): ExceptionStackFrame[] {\n let lines: string[] = [];\n\n if (error.stacktrace) {\n lines = error.stacktrace.split(newLineString).filter((_line, idx) => idx % 2 === 0);\n } else if (error.stack) {\n lines = error.stack.split(newLineString);\n }\n\n const stackFrames = lines.reduce((acc, line, idx) => {\n let parts: RegExpExecArray | null;\n let func: string | undefined;\n let filename: string | undefined;\n let lineno: string | undefined;\n let colno: string | undefined;\n\n if ((parts = webkitLineRegex.exec(line))) {\n func = parts[1];\n filename = parts[2];\n lineno = parts[3];\n colno = parts[4];\n\n if (filename?.startsWith(webkitEvalString)) {\n const submatch = webkitEvalRegex.exec(filename);\n\n if (submatch) {\n filename = submatch[1];\n lineno = submatch[2];\n colno = submatch[3];\n }\n }\n\n filename = filename?.startsWith(webkitAddressAtString)\n ? filename.substring(webkitAddressAtStringLength)\n : filename;\n [func, filename] = getDataFromSafariExtensions(func, filename);\n } else if ((parts = firefoxLineRegex.exec(line))) {\n func = parts[1];\n filename = parts[3];\n lineno = parts[4];\n colno = parts[5];\n\n if (!!filename && filename.includes(firefoxEvalString)) {\n const submatch = firefoxEvalRegex.exec(filename);\n\n if (submatch) {\n func = func || evalString;\n filename = submatch[1];\n lineno = submatch[2];\n }\n } else if (idx === 0 && !colno && isNumber(error.columnNumber)) {\n colno = String(error.columnNumber! + 1);\n }\n\n [func, filename] = getDataFromSafariExtensions(func, filename);\n }\n\n if (filename || func) {\n acc.push(buildStackFrame(filename, func, lineno ? Number(lineno) : undefined, colno ? Number(colno) : undefined));\n }\n\n return acc;\n }, [] as ExceptionStackFrame[]);\n\n if (reactMinifiedRegex.test(error.message)) {\n return stackFrames.slice(1);\n }\n\n return stackFrames;\n}\n"]}
1
+ {"version":3,"file":"getStackFramesFromError.js","sourceRoot":"","sources":["../../../../../src/instrumentations/errors/stackFrames/getStackFramesFromError.ts"],"names":[],"mappings":"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","sourcesContent":["import { isNumber } from '@grafana/faro-core';\nimport type { ExceptionStackFrame, ExtendedError } from '@grafana/faro-core';\n\nimport { buildStackFrame } from './buildStackFrame';\nimport {\n evalString,\n firefoxEvalRegex,\n firefoxEvalString,\n firefoxLineRegex,\n newLineString,\n reactMinifiedRegex,\n webkitAddressAtString,\n webkitAddressAtStringLength,\n webkitEvalRegex,\n webkitEvalString,\n webkitLineRegex,\n} from './const';\nimport { getDataFromSafariExtensions } from './getDataFromSafariExtensions';\n\nexport function getStackFramesFromError(error: ExtendedError): ExceptionStackFrame[] {\n let lines: string[] = [];\n\n if (error.stacktrace) {\n lines = error.stacktrace.split(newLineString).filter((_line, idx) => idx % 2 === 0);\n } else if (error.stack) {\n lines = error.stack.split(newLineString);\n }\n\n const stackFrames = lines.reduce((acc, line, idx) => {\n let parts: RegExpExecArray | null;\n let func: string | undefined;\n let filename: string | undefined;\n let lineno: string | undefined;\n let colno: string | undefined;\n\n if ((parts = webkitLineRegex.exec(line))) {\n func = parts[1];\n filename = parts[2];\n lineno = parts[3];\n colno = parts[4];\n\n if (filename?.startsWith(webkitEvalString)) {\n const submatch = webkitEvalRegex.exec(filename);\n\n if (submatch) {\n filename = submatch[1];\n lineno = submatch[2];\n colno = submatch[3];\n }\n }\n\n filename = filename?.startsWith(webkitAddressAtString)\n ? filename.substring(webkitAddressAtStringLength)\n : filename;\n [func, filename] = getDataFromSafariExtensions(func, filename);\n } else if ((parts = firefoxLineRegex.exec(line))) {\n func = parts[1];\n filename = parts[3];\n lineno = parts[4];\n colno = parts[5];\n\n if (!!filename && filename.includes(firefoxEvalString)) {\n const submatch = firefoxEvalRegex.exec(filename);\n\n if (submatch) {\n func = func || evalString;\n filename = submatch[1];\n lineno = submatch[2];\n }\n } else if (idx === 0 && !colno && isNumber(error.columnNumber)) {\n colno = String(error.columnNumber! + 1);\n }\n\n [func, filename] = getDataFromSafariExtensions(func, filename);\n }\n\n if (filename || func) {\n acc.push(buildStackFrame(filename, func, lineno ? Number(lineno) : undefined, colno ? Number(colno) : undefined));\n }\n\n return acc;\n }, [] as ExceptionStackFrame[]);\n\n if (reactMinifiedRegex.test(error.message)) {\n return stackFrames.slice(1);\n }\n\n return stackFrames;\n}\n"]}