@grafana/faro-web-sdk 1.18.2 → 2.0.0-beta
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.
- package/dist/bundle/faro-web-sdk.iife.js +1 -1
- package/dist/bundle/types/config/types.d.ts +2 -2
- package/dist/bundle/types/index.d.ts +6 -6
- package/dist/bundle/types/instrumentations/console/index.d.ts +0 -1
- package/dist/bundle/types/instrumentations/console/instrumentation.d.ts +1 -4
- package/dist/bundle/types/instrumentations/csp/index.d.ts +1 -0
- package/dist/bundle/types/instrumentations/csp/instrumentation.d.ts +10 -0
- package/dist/bundle/types/instrumentations/errors/instrumentation.d.ts +1 -1
- package/dist/bundle/types/instrumentations/index.d.ts +3 -3
- package/dist/bundle/types/instrumentations/performance/instrumentation.d.ts +1 -1
- package/dist/bundle/types/instrumentations/session/index.d.ts +1 -1
- package/dist/bundle/types/instrumentations/session/instrumentation.d.ts +1 -1
- package/dist/bundle/types/instrumentations/session/sessionManager/index.d.ts +1 -1
- package/dist/bundle/types/instrumentations/session/sessionManager/sessionConstants.d.ts +0 -4
- package/dist/bundle/types/instrumentations/userActions/index.d.ts +1 -1
- package/dist/bundle/types/instrumentations/userActions/instrumentation.d.ts +3 -2
- package/dist/bundle/types/instrumentations/userActions/processUserActionEventHandler.d.ts +10 -3
- package/dist/bundle/types/instrumentations/userActions/types.d.ts +0 -5
- package/dist/bundle/types/instrumentations/view/instrumentation.d.ts +1 -1
- package/dist/bundle/types/instrumentations/webVitals/instrumentation.d.ts +1 -1
- package/dist/bundle/types/instrumentations/webVitals/webVitalsBasic.d.ts +1 -2
- package/dist/bundle/types/instrumentations/webVitals/webVitalsWithAttribution.d.ts +0 -1
- package/dist/bundle/types/transports/console/transport.d.ts +1 -1
- package/dist/bundle/types/transports/fetch/transport.d.ts +1 -1
- package/dist/cjs/config/getWebInstrumentations.js +4 -3
- package/dist/cjs/config/getWebInstrumentations.js.map +1 -1
- package/dist/cjs/config/makeCoreConfig.js +6 -5
- package/dist/cjs/config/makeCoreConfig.js.map +1 -1
- package/dist/cjs/config/types.js.map +1 -1
- package/dist/cjs/index.js +3 -11
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/instrumentations/console/index.js.map +1 -1
- package/dist/cjs/instrumentations/console/instrumentation.js +11 -25
- package/dist/cjs/instrumentations/console/instrumentation.js.map +1 -1
- package/dist/cjs/instrumentations/csp/index.js +6 -0
- package/dist/cjs/instrumentations/csp/index.js.map +1 -0
- package/dist/cjs/instrumentations/csp/instrumentation.js +40 -0
- package/dist/cjs/instrumentations/csp/instrumentation.js.map +1 -0
- package/dist/cjs/instrumentations/errors/stackFrames/const.js +1 -1
- package/dist/cjs/instrumentations/errors/stackFrames/const.js.map +1 -1
- package/dist/cjs/instrumentations/index.js +3 -3
- package/dist/cjs/instrumentations/index.js.map +1 -1
- package/dist/cjs/instrumentations/session/index.js +1 -2
- package/dist/cjs/instrumentations/session/index.js.map +1 -1
- package/dist/cjs/instrumentations/session/sessionManager/index.js +1 -2
- package/dist/cjs/instrumentations/session/sessionManager/index.js.map +1 -1
- package/dist/cjs/instrumentations/session/sessionManager/sessionConstants.js +1 -5
- package/dist/cjs/instrumentations/session/sessionManager/sessionConstants.js.map +1 -1
- package/dist/cjs/instrumentations/userActions/index.js +1 -2
- package/dist/cjs/instrumentations/userActions/index.js.map +1 -1
- package/dist/cjs/instrumentations/userActions/instrumentation.js +17 -15
- package/dist/cjs/instrumentations/userActions/instrumentation.js.map +1 -1
- package/dist/cjs/instrumentations/userActions/processUserActionEventHandler.js +30 -129
- package/dist/cjs/instrumentations/userActions/processUserActionEventHandler.js.map +1 -1
- package/dist/cjs/instrumentations/userActions/types.js.map +1 -1
- package/dist/cjs/instrumentations/webVitals/webVitalsBasic.js +0 -1
- package/dist/cjs/instrumentations/webVitals/webVitalsBasic.js.map +1 -1
- package/dist/cjs/instrumentations/webVitals/webVitalsWithAttribution.js +2 -17
- package/dist/cjs/instrumentations/webVitals/webVitalsWithAttribution.js.map +1 -1
- package/dist/esm/config/getWebInstrumentations.js +5 -4
- package/dist/esm/config/getWebInstrumentations.js.map +1 -1
- package/dist/esm/config/makeCoreConfig.js +9 -5
- package/dist/esm/config/makeCoreConfig.js.map +1 -1
- package/dist/esm/config/types.js.map +1 -1
- package/dist/esm/index.js +4 -4
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/instrumentations/console/index.js.map +1 -1
- package/dist/esm/instrumentations/console/instrumentation.js +9 -11
- package/dist/esm/instrumentations/console/instrumentation.js.map +1 -1
- package/dist/esm/instrumentations/csp/index.js +2 -0
- package/dist/esm/instrumentations/csp/index.js.map +1 -0
- package/dist/esm/instrumentations/csp/instrumentation.js +18 -0
- package/dist/esm/instrumentations/csp/instrumentation.js.map +1 -0
- package/dist/esm/instrumentations/errors/stackFrames/const.js +1 -1
- package/dist/esm/instrumentations/errors/stackFrames/const.js.map +1 -1
- package/dist/esm/instrumentations/index.js +3 -2
- package/dist/esm/instrumentations/index.js.map +1 -1
- package/dist/esm/instrumentations/session/index.js +1 -1
- package/dist/esm/instrumentations/session/index.js.map +1 -1
- package/dist/esm/instrumentations/session/sessionManager/index.js +1 -1
- package/dist/esm/instrumentations/session/sessionManager/index.js.map +1 -1
- package/dist/esm/instrumentations/session/sessionManager/sessionConstants.js +0 -4
- package/dist/esm/instrumentations/session/sessionManager/sessionConstants.js.map +1 -1
- package/dist/esm/instrumentations/userActions/index.js +1 -1
- package/dist/esm/instrumentations/userActions/index.js.map +1 -1
- package/dist/esm/instrumentations/userActions/instrumentation.js +17 -15
- package/dist/esm/instrumentations/userActions/instrumentation.js.map +1 -1
- package/dist/esm/instrumentations/userActions/processUserActionEventHandler.js +30 -125
- package/dist/esm/instrumentations/userActions/processUserActionEventHandler.js.map +1 -1
- package/dist/esm/instrumentations/userActions/types.js.map +1 -1
- package/dist/esm/instrumentations/webVitals/webVitalsBasic.js +1 -2
- package/dist/esm/instrumentations/webVitals/webVitalsBasic.js.map +1 -1
- package/dist/esm/instrumentations/webVitals/webVitalsWithAttribution.js +3 -17
- package/dist/esm/instrumentations/webVitals/webVitalsWithAttribution.js.map +1 -1
- package/dist/types/config/types.d.ts +2 -2
- package/dist/types/index.d.ts +6 -6
- package/dist/types/instrumentations/console/index.d.ts +0 -1
- package/dist/types/instrumentations/console/instrumentation.d.ts +1 -4
- package/dist/types/instrumentations/csp/index.d.ts +1 -0
- package/dist/types/instrumentations/csp/instrumentation.d.ts +10 -0
- package/dist/types/instrumentations/errors/instrumentation.d.ts +1 -1
- package/dist/types/instrumentations/index.d.ts +3 -3
- package/dist/types/instrumentations/performance/instrumentation.d.ts +1 -1
- package/dist/types/instrumentations/session/index.d.ts +1 -1
- package/dist/types/instrumentations/session/instrumentation.d.ts +1 -1
- package/dist/types/instrumentations/session/sessionManager/index.d.ts +1 -1
- package/dist/types/instrumentations/session/sessionManager/sessionConstants.d.ts +0 -4
- package/dist/types/instrumentations/userActions/index.d.ts +1 -1
- package/dist/types/instrumentations/userActions/instrumentation.d.ts +3 -2
- package/dist/types/instrumentations/userActions/processUserActionEventHandler.d.ts +10 -3
- package/dist/types/instrumentations/userActions/types.d.ts +0 -5
- package/dist/types/instrumentations/view/instrumentation.d.ts +1 -1
- package/dist/types/instrumentations/webVitals/instrumentation.d.ts +1 -1
- package/dist/types/instrumentations/webVitals/webVitalsBasic.d.ts +1 -2
- package/dist/types/instrumentations/webVitals/webVitalsWithAttribution.d.ts +0 -1
- package/dist/types/transports/console/transport.d.ts +1 -1
- package/dist/types/transports/fetch/transport.d.ts +1 -1
- package/package.json +10 -10
- package/dist/bundle/types/instrumentations/console/types.d.ts +0 -6
- package/dist/cjs/instrumentations/console/types.js +0 -3
- package/dist/cjs/instrumentations/console/types.js.map +0 -1
- package/dist/esm/instrumentations/console/types.js +0 -2
- package/dist/esm/instrumentations/console/types.js.map +0 -1
- package/dist/types/instrumentations/console/types.d.ts +0 -6
|
@@ -3,6 +3,6 @@ import type { ResourceEntryMessage } from './types';
|
|
|
3
3
|
export declare const performanceEntriesSubscription: Observable<ResourceEntryMessage>;
|
|
4
4
|
export declare class PerformanceInstrumentation extends BaseInstrumentation {
|
|
5
5
|
readonly name = "@grafana/faro-web-sdk:instrumentation-performance";
|
|
6
|
-
readonly version = "
|
|
6
|
+
readonly version = "2.0.0-beta";
|
|
7
7
|
initialize(): void;
|
|
8
8
|
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { SessionInstrumentation } from './instrumentation';
|
|
2
|
-
export { MAX_SESSION_PERSISTENCE_TIME,
|
|
2
|
+
export { MAX_SESSION_PERSISTENCE_TIME, PersistentSessionsManager, SESSION_EXPIRATION_TIME, SESSION_INACTIVITY_TIME, STORAGE_KEY, STORAGE_UPDATE_DELAY, VolatileSessionsManager, defaultSessionTrackingConfig, isSampled, } from './sessionManager';
|
|
3
3
|
export type { FaroUserSession } from './sessionManager';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BaseInstrumentation } from '@grafana/faro-core';
|
|
2
2
|
export declare class SessionInstrumentation extends BaseInstrumentation {
|
|
3
3
|
readonly name = "@grafana/faro-web-sdk:instrumentation-session";
|
|
4
|
-
readonly version = "
|
|
4
|
+
readonly version = "2.0.0-beta";
|
|
5
5
|
private notifiedSession;
|
|
6
6
|
private sendSessionStartEvent;
|
|
7
7
|
private createInitialSession;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { PersistentSessionsManager } from './PersistentSessionsManager';
|
|
2
2
|
export { VolatileSessionsManager } from './VolatileSessionManager';
|
|
3
|
-
export { MAX_SESSION_PERSISTENCE_TIME,
|
|
3
|
+
export { MAX_SESSION_PERSISTENCE_TIME, SESSION_EXPIRATION_TIME, SESSION_INACTIVITY_TIME, STORAGE_KEY, STORAGE_UPDATE_DELAY, defaultSessionTrackingConfig, } from './sessionConstants';
|
|
4
4
|
export { isSampled } from './sampling';
|
|
5
5
|
export type { FaroUserSession } from './types';
|
|
6
6
|
export { getSessionManagerByConfig } from './getSessionManagerByConfig';
|
|
@@ -3,9 +3,5 @@ export declare const STORAGE_KEY = "com.grafana.faro.session";
|
|
|
3
3
|
export declare const SESSION_EXPIRATION_TIME: number;
|
|
4
4
|
export declare const SESSION_INACTIVITY_TIME: number;
|
|
5
5
|
export declare const STORAGE_UPDATE_DELAY: number;
|
|
6
|
-
/**
|
|
7
|
-
* @deprecated MAX_SESSION_PERSISTENCE_TIME_BUFFER is not used anymore. The constant will be removed in the future
|
|
8
|
-
*/
|
|
9
|
-
export declare const MAX_SESSION_PERSISTENCE_TIME_BUFFER: number;
|
|
10
6
|
export declare const MAX_SESSION_PERSISTENCE_TIME: number;
|
|
11
7
|
export declare const defaultSessionTrackingConfig: Config['sessionTracking'];
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { UserActionInstrumentation
|
|
1
|
+
export { UserActionInstrumentation } from './instrumentation';
|
|
2
2
|
export type { DomMutationMessage, HttpRequestEndMessage, HttpRequestStartMessage, HttpRequestMessagePayload, } from './types';
|
|
3
3
|
export { MESSAGE_TYPE_DOM_MUTATION, MESSAGE_TYPE_HTTP_REQUEST_END, MESSAGE_TYPE_HTTP_REQUEST_START, userActionDataAttribute, } from './const';
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { BaseInstrumentation } from '@grafana/faro-core';
|
|
2
2
|
export declare class UserActionInstrumentation extends BaseInstrumentation {
|
|
3
3
|
readonly name = "@grafana/faro-web-sdk:instrumentation-user-action";
|
|
4
|
-
readonly version = "
|
|
4
|
+
readonly version = "2.0.0-beta";
|
|
5
|
+
private _userActionSub?;
|
|
5
6
|
initialize(): void;
|
|
7
|
+
destroy(): void;
|
|
6
8
|
}
|
|
7
|
-
export declare function startUserAction(name: string, attributes?: Record<string, string>): void;
|
|
@@ -1,3 +1,10 @@
|
|
|
1
|
-
import type { Faro } from '@grafana/faro-core';
|
|
2
|
-
import type {
|
|
3
|
-
export declare function getUserEventHandler(faro: Faro):
|
|
1
|
+
import type { Faro, Subscription, UserActionInterface } from '@grafana/faro-core';
|
|
2
|
+
import type { HttpRequestEndMessage, HttpRequestStartMessage } from './types';
|
|
3
|
+
export declare function getUserEventHandler(faro: Faro): {
|
|
4
|
+
processUserEvent: (event: PointerEvent | KeyboardEvent) => void;
|
|
5
|
+
proceessUserActionStarted: (userAction: UserActionInterface) => void;
|
|
6
|
+
};
|
|
7
|
+
export declare function getUserActionNameFromElement(element: HTMLElement, dataAttributeName: string): string | undefined;
|
|
8
|
+
export declare function unsubscribeAllMonitors(allMonitorsSub: Subscription | undefined): void;
|
|
9
|
+
export declare function isRequestStartMessage(msg: any): msg is HttpRequestStartMessage;
|
|
10
|
+
export declare function isRequestEndMessage(msg: any): msg is HttpRequestEndMessage;
|
|
@@ -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 = "
|
|
4
|
+
readonly version = "2.0.0-beta";
|
|
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 = "
|
|
4
|
+
readonly version = "2.0.0-beta";
|
|
5
5
|
initialize(): void;
|
|
6
6
|
private intializeWebVitalsInstrumentation;
|
|
7
7
|
}
|
|
@@ -5,8 +5,7 @@ export declare class WebVitalsBasic {
|
|
|
5
5
|
static mapping: {
|
|
6
6
|
cls: (onReport: (metric: import("web-vitals").CLSMetric) => void, opts?: import("web-vitals").ReportOpts) => void;
|
|
7
7
|
fcp: (onReport: (metric: import("web-vitals").FCPMetric) => void, opts?: import("web-vitals").ReportOpts) => void;
|
|
8
|
-
|
|
9
|
-
inp: (onReport: (metric: import("web-vitals").INPMetric) => void, opts?: import("web-vitals").ReportOpts) => void;
|
|
8
|
+
inp: (onReport: (metric: import("web-vitals").INPMetric) => void, opts?: import("web-vitals").INPReportOpts) => void;
|
|
10
9
|
lcp: (onReport: (metric: import("web-vitals").LCPMetric) => void, opts?: import("web-vitals").ReportOpts) => void;
|
|
11
10
|
ttfb: (onReport: (metric: import("web-vitals").TTFBMetric) => void, opts?: import("web-vitals").ReportOpts) => void;
|
|
12
11
|
};
|
|
@@ -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 = "
|
|
7
|
+
readonly version = "2.0.0-beta";
|
|
8
8
|
constructor(options?: ConsoleTransportOptions);
|
|
9
9
|
send(item: TransportItem): void;
|
|
10
10
|
}
|
|
@@ -4,7 +4,7 @@ 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 = "
|
|
7
|
+
readonly version = "2.0.0-beta";
|
|
8
8
|
promiseBuffer: PromiseBuffer<Response | void>;
|
|
9
9
|
private readonly rateLimitBackoffMs;
|
|
10
10
|
private readonly getNow;
|
|
@@ -15,10 +15,11 @@ function getWebInstrumentations(options) {
|
|
|
15
15
|
// unshift to ensure that initialization starts before the other instrumentations
|
|
16
16
|
instrumentations.unshift(new instrumentations_1.PerformanceInstrumentation());
|
|
17
17
|
}
|
|
18
|
+
if (options.enableContentSecurityPolicyInstrumentation !== false) {
|
|
19
|
+
instrumentations.push(new instrumentations_1.CSPInstrumentation());
|
|
20
|
+
}
|
|
18
21
|
if (options.captureConsole !== false) {
|
|
19
|
-
instrumentations.push(new instrumentations_1.ConsoleInstrumentation(
|
|
20
|
-
disabledLevels: options.captureConsoleDisabledLevels,
|
|
21
|
-
}));
|
|
22
|
+
instrumentations.push(new instrumentations_1.ConsoleInstrumentation());
|
|
22
23
|
}
|
|
23
24
|
return instrumentations;
|
|
24
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getWebInstrumentations.js","sourceRoot":"","sources":["../../../src/config/getWebInstrumentations.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"getWebInstrumentations.js","sourceRoot":"","sources":["../../../src/config/getWebInstrumentations.ts"],"names":[],"mappings":";;AAeA,wDAuBC;AApCD,wDAS6B;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,0CAA0C,KAAK,KAAK,EAAE,CAAC;QACjE,gBAAgB,CAAC,IAAI,CAAC,IAAI,qCAAkB,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,OAAO,CAAC,cAAc,KAAK,KAAK,EAAE,CAAC;QACrC,gBAAgB,CAAC,IAAI,CAAC,IAAI,yCAAsB,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,gBAAgB,CAAC;AAC1B,CAAC","sourcesContent":["import type { Instrumentation } from '@grafana/faro-core';\n\nimport {\n ConsoleInstrumentation,\n CSPInstrumentation,\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.enableContentSecurityPolicyInstrumentation !== false) {\n instrumentations.push(new CSPInstrumentation());\n }\n\n if (options.captureConsole !== false) {\n instrumentations.push(new ConsoleInstrumentation());\n }\n\n return instrumentations;\n}\n"]}
|
|
@@ -65,12 +65,13 @@ function makeCoreConfig(browserConfig) {
|
|
|
65
65
|
// properties with default values
|
|
66
66
|
_b = browserConfig.dedupe,
|
|
67
67
|
// properties with default values
|
|
68
|
-
dedupe = _b === void 0 ? true : _b, _c = browserConfig.eventDomain, eventDomain = _c === void 0 ? consts_1.defaultEventDomain : _c, _d = browserConfig.globalObjectKey, globalObjectKey = _d === void 0 ? faro_core_1.defaultGlobalObjectKey : _d, _e = browserConfig.instrumentations, instrumentations = _e === void 0 ? (0, getWebInstrumentations_1.getWebInstrumentations)() : _e, _f = browserConfig.internalLoggerLevel, internalLoggerLevel = _f === void 0 ? faro_core_1.defaultInternalLoggerLevel : _f, _g = browserConfig.isolate, isolate = _g === void 0 ? false : _g, _h = browserConfig.logArgsSerializer, logArgsSerializer = _h === void 0 ? faro_core_1.defaultLogArgsSerializer : _h, _j = browserConfig.metas, metas = _j === void 0 ? createDefaultMetas(browserConfig) : _j, _k = browserConfig.paused, paused = _k === void 0 ? false : _k, _l = browserConfig.preventGlobalExposure, preventGlobalExposure = _l === void 0 ? false : _l, _m = browserConfig.unpatchedConsole, unpatchedConsole = _m === void 0 ? faro_core_1.defaultUnpatchedConsole : _m, _o = browserConfig.trackUserActionsPreview, trackUserActionsPreview = _o === void 0 ? false : _o, _p = browserConfig.trackUserActionsDataAttributeName, trackUserActionsDataAttributeName = _p === void 0 ? const_1.userActionDataAttribute : _p,
|
|
68
|
+
dedupe = _b === void 0 ? true : _b, _c = browserConfig.eventDomain, eventDomain = _c === void 0 ? consts_1.defaultEventDomain : _c, _d = browserConfig.globalObjectKey, globalObjectKey = _d === void 0 ? faro_core_1.defaultGlobalObjectKey : _d, _e = browserConfig.instrumentations, instrumentations = _e === void 0 ? (0, getWebInstrumentations_1.getWebInstrumentations)() : _e, _f = browserConfig.internalLoggerLevel, internalLoggerLevel = _f === void 0 ? faro_core_1.defaultInternalLoggerLevel : _f, _g = browserConfig.isolate, isolate = _g === void 0 ? false : _g, _h = browserConfig.logArgsSerializer, logArgsSerializer = _h === void 0 ? faro_core_1.defaultLogArgsSerializer : _h, _j = browserConfig.metas, metas = _j === void 0 ? createDefaultMetas(browserConfig) : _j, _k = browserConfig.paused, paused = _k === void 0 ? false : _k, _l = browserConfig.preventGlobalExposure, preventGlobalExposure = _l === void 0 ? false : _l, _m = browserConfig.unpatchedConsole, unpatchedConsole = _m === void 0 ? faro_core_1.defaultUnpatchedConsole : _m, _o = browserConfig.trackUserActionsPreview, trackUserActionsPreview = _o === void 0 ? false : _o, _p = browserConfig.trackUserActionsDataAttributeName, trackUserActionsDataAttributeName = _p === void 0 ? const_1.userActionDataAttribute : _p, browserConfigUrl = browserConfig.url,
|
|
69
69
|
// Properties without default values or which aren't used to create derived config
|
|
70
|
-
restProperties = __rest(browserConfig, ["dedupe", "eventDomain", "globalObjectKey", "instrumentations", "internalLoggerLevel", "isolate", "logArgsSerializer", "metas", "paused", "preventGlobalExposure", "unpatchedConsole", "trackUserActionsPreview", "trackUserActionsDataAttributeName"]);
|
|
71
|
-
return __assign(__assign({}, restProperties), { batching: __assign(__assign({}, faro_core_1.defaultBatchingConfig), browserConfig.batching), dedupe: dedupe, globalObjectKey: globalObjectKey, instrumentations: getFilteredInstrumentations(instrumentations, browserConfig), internalLoggerLevel: internalLoggerLevel, isolate: isolate, logArgsSerializer: logArgsSerializer, metas: metas, parseStacktrace: instrumentations_1.parseStacktrace, paused: paused, preventGlobalExposure: preventGlobalExposure, transports: transports, unpatchedConsole: unpatchedConsole, eventDomain: eventDomain,
|
|
72
|
-
|
|
73
|
-
|
|
70
|
+
restProperties = __rest(browserConfig, ["dedupe", "eventDomain", "globalObjectKey", "instrumentations", "internalLoggerLevel", "isolate", "logArgsSerializer", "metas", "paused", "preventGlobalExposure", "unpatchedConsole", "trackUserActionsPreview", "trackUserActionsDataAttributeName", "url"]);
|
|
71
|
+
return __assign(__assign({}, restProperties), { batching: __assign(__assign({}, faro_core_1.defaultBatchingConfig), browserConfig.batching), dedupe: dedupe, globalObjectKey: globalObjectKey, instrumentations: getFilteredInstrumentations(instrumentations, browserConfig), internalLoggerLevel: internalLoggerLevel, isolate: isolate, logArgsSerializer: logArgsSerializer, metas: metas, parseStacktrace: instrumentations_1.parseStacktrace, paused: paused, preventGlobalExposure: preventGlobalExposure, transports: transports, unpatchedConsole: unpatchedConsole, eventDomain: eventDomain, ignoreUrls: __spreadArray(__spreadArray(__spreadArray([], ((_a = browserConfig.ignoreUrls) !== null && _a !== void 0 ? _a : []), true), (browserConfigUrl ? [browserConfigUrl] : []), true), [
|
|
72
|
+
// Try our best to exclude collector URLs form other Faro instances. By default these are URLs ending with /collect or /collect/ followed by alphanumeric characters.
|
|
73
|
+
/\/collect(?:\/[\w]*)?$/,
|
|
74
|
+
], false), sessionTracking: __assign(__assign(__assign({}, session_1.defaultSessionTrackingConfig), browserConfig.sessionTracking), crateSessionMeta({
|
|
74
75
|
trackGeolocation: browserConfig.trackGeolocation,
|
|
75
76
|
sessionTracking: browserConfig.sessionTracking,
|
|
76
77
|
})), trackUserActionsPreview: trackUserActionsPreview, trackUserActionsDataAttributeName: trackUserActionsDataAttributeName });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"makeCoreConfig.js","sourceRoot":"","sources":["../../../src/config/makeCoreConfig.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,
|
|
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 // 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 trackUserActionsPreview = false,\n trackUserActionsDataAttributeName = userActionDataAttribute,\n url: browserConfigUrl,\n // Properties without default values or which aren't used to create derived config\n ...restProperties\n }: BrowserConfig = browserConfig;\n\n return {\n ...restProperties,\n\n batching: {\n ...defaultBatchingConfig,\n ...browserConfig.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 eventDomain,\n ignoreUrls: [\n ...(browserConfig.ignoreUrls ?? []),\n // ignore configured cloud collector url by default\n ...(browserConfigUrl ? [browserConfigUrl] : []),\n // Try our best to exclude collector URLs form other Faro instances. By default these are URLs ending with /collect or /collect/ followed by alphanumeric characters.\n /\\/collect(?:\\/[\\w]*)?$/,\n ],\n sessionTracking: {\n ...defaultSessionTrackingConfig,\n ...browserConfig.sessionTracking,\n ...crateSessionMeta({\n trackGeolocation: browserConfig.trackGeolocation,\n sessionTracking: browserConfig.sessionTracking,\n }),\n },\n trackUserActionsPreview,\n trackUserActionsDataAttributeName,\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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/config/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Config
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/config/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Config } from '@grafana/faro-core';\n\nexport interface BrowserConfig extends Partial<Omit<Config, 'app' | 'parseStacktrace'>>, Pick<Config, 'app'> {\n url?: string;\n apiKey?: string;\n}\n\nexport interface GetWebInstrumentationsOptions {\n captureConsole?: boolean;\n enablePerformanceInstrumentation?: boolean;\n enableContentSecurityPolicyInstrumentation?: boolean;\n}\n"]}
|
package/dist/cjs/index.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
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.
|
|
4
|
-
exports.userActionDataAttribute = exports.getUrlFromResource = exports.getIgnoreUrls = exports.STORAGE_KEY = exports.SESSION_INACTIVITY_TIME = exports.SESSION_EXPIRATION_TIME = exports.
|
|
5
|
-
exports.startUserAction = void 0;
|
|
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.BaseTransport = exports.BaseInstrumentation = exports.BaseExtension = exports.allLogLevels = exports.faro = exports.FetchTransport = exports.ConsoleTransport = exports.sdkMeta = exports.createSession = exports.browserMeta = exports.UserActionInstrumentation = exports.CSPInstrumentation = 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.getUrlFromResource = exports.getIgnoreUrls = exports.STORAGE_KEY = exports.SESSION_INACTIVITY_TIME = exports.SESSION_EXPIRATION_TIME = exports.MAX_SESSION_PERSISTENCE_TIME = exports.VolatileSessionsManager = exports.PersistentSessionsManager = exports.unknownString = exports.Observable = 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;
|
|
6
5
|
var config_1 = require("./config");
|
|
7
6
|
Object.defineProperty(exports, "getWebInstrumentations", { enumerable: true, get: function () { return config_1.getWebInstrumentations; } });
|
|
8
7
|
Object.defineProperty(exports, "makeCoreConfig", { enumerable: true, get: function () { return config_1.makeCoreConfig; } });
|
|
@@ -21,6 +20,7 @@ Object.defineProperty(exports, "ViewInstrumentation", { enumerable: true, get: f
|
|
|
21
20
|
Object.defineProperty(exports, "WebVitalsInstrumentation", { enumerable: true, get: function () { return instrumentations_1.WebVitalsInstrumentation; } });
|
|
22
21
|
Object.defineProperty(exports, "SessionInstrumentation", { enumerable: true, get: function () { return instrumentations_1.SessionInstrumentation; } });
|
|
23
22
|
Object.defineProperty(exports, "PerformanceInstrumentation", { enumerable: true, get: function () { return instrumentations_1.PerformanceInstrumentation; } });
|
|
23
|
+
Object.defineProperty(exports, "CSPInstrumentation", { enumerable: true, get: function () { return instrumentations_1.CSPInstrumentation; } });
|
|
24
24
|
Object.defineProperty(exports, "UserActionInstrumentation", { enumerable: true, get: function () { return instrumentations_1.UserActionInstrumentation; } });
|
|
25
25
|
var metas_1 = require("./metas");
|
|
26
26
|
Object.defineProperty(exports, "browserMeta", { enumerable: true, get: function () { return metas_1.browserMeta; } });
|
|
@@ -35,7 +35,6 @@ Object.defineProperty(exports, "allLogLevels", { enumerable: true, get: function
|
|
|
35
35
|
Object.defineProperty(exports, "BaseExtension", { enumerable: true, get: function () { return faro_core_1.BaseExtension; } });
|
|
36
36
|
Object.defineProperty(exports, "BaseInstrumentation", { enumerable: true, get: function () { return faro_core_1.BaseInstrumentation; } });
|
|
37
37
|
Object.defineProperty(exports, "BaseTransport", { enumerable: true, get: function () { return faro_core_1.BaseTransport; } });
|
|
38
|
-
Object.defineProperty(exports, "Conventions", { enumerable: true, get: function () { return faro_core_1.Conventions; } });
|
|
39
38
|
Object.defineProperty(exports, "createInternalLogger", { enumerable: true, get: function () { return faro_core_1.createInternalLogger; } });
|
|
40
39
|
Object.defineProperty(exports, "createPromiseBuffer", { enumerable: true, get: function () { return faro_core_1.createPromiseBuffer; } });
|
|
41
40
|
Object.defineProperty(exports, "deepEqual", { enumerable: true, get: function () { return faro_core_1.deepEqual; } });
|
|
@@ -93,18 +92,12 @@ Object.defineProperty(exports, "EVENT_SESSION_EXTEND", { enumerable: true, get:
|
|
|
93
92
|
Object.defineProperty(exports, "EVENT_SESSION_RESUME", { enumerable: true, get: function () { return faro_core_1.EVENT_SESSION_RESUME; } });
|
|
94
93
|
Object.defineProperty(exports, "EVENT_SESSION_START", { enumerable: true, get: function () { return faro_core_1.EVENT_SESSION_START; } });
|
|
95
94
|
Object.defineProperty(exports, "EVENT_VIEW_CHANGED", { enumerable: true, get: function () { return faro_core_1.EVENT_VIEW_CHANGED; } });
|
|
96
|
-
Object.defineProperty(exports, "apiMessageBus", { enumerable: true, get: function () { return faro_core_1.apiMessageBus; } });
|
|
97
95
|
Object.defineProperty(exports, "Observable", { enumerable: true, get: function () { return faro_core_1.Observable; } });
|
|
98
|
-
Object.defineProperty(exports, "USER_ACTION_CANCEL", { enumerable: true, get: function () { return faro_core_1.USER_ACTION_CANCEL; } });
|
|
99
|
-
Object.defineProperty(exports, "USER_ACTION_END", { enumerable: true, get: function () { return faro_core_1.USER_ACTION_END; } });
|
|
100
|
-
Object.defineProperty(exports, "USER_ACTION_HALT", { enumerable: true, get: function () { return faro_core_1.USER_ACTION_HALT; } });
|
|
101
|
-
Object.defineProperty(exports, "USER_ACTION_START", { enumerable: true, get: function () { return faro_core_1.USER_ACTION_START; } });
|
|
102
96
|
Object.defineProperty(exports, "unknownString", { enumerable: true, get: function () { return faro_core_1.unknownString; } });
|
|
103
97
|
var session_1 = require("./instrumentations/session");
|
|
104
98
|
Object.defineProperty(exports, "PersistentSessionsManager", { enumerable: true, get: function () { return session_1.PersistentSessionsManager; } });
|
|
105
99
|
Object.defineProperty(exports, "VolatileSessionsManager", { enumerable: true, get: function () { return session_1.VolatileSessionsManager; } });
|
|
106
100
|
Object.defineProperty(exports, "MAX_SESSION_PERSISTENCE_TIME", { enumerable: true, get: function () { return session_1.MAX_SESSION_PERSISTENCE_TIME; } });
|
|
107
|
-
Object.defineProperty(exports, "MAX_SESSION_PERSISTENCE_TIME_BUFFER", { enumerable: true, get: function () { return session_1.MAX_SESSION_PERSISTENCE_TIME_BUFFER; } });
|
|
108
101
|
Object.defineProperty(exports, "SESSION_EXPIRATION_TIME", { enumerable: true, get: function () { return session_1.SESSION_EXPIRATION_TIME; } });
|
|
109
102
|
Object.defineProperty(exports, "SESSION_INACTIVITY_TIME", { enumerable: true, get: function () { return session_1.SESSION_INACTIVITY_TIME; } });
|
|
110
103
|
Object.defineProperty(exports, "STORAGE_KEY", { enumerable: true, get: function () { return session_1.STORAGE_KEY; } });
|
|
@@ -113,5 +106,4 @@ Object.defineProperty(exports, "getIgnoreUrls", { enumerable: true, get: functio
|
|
|
113
106
|
Object.defineProperty(exports, "getUrlFromResource", { enumerable: true, get: function () { return url_1.getUrlFromResource; } });
|
|
114
107
|
var userActions_1 = require("./instrumentations/userActions");
|
|
115
108
|
Object.defineProperty(exports, "userActionDataAttribute", { enumerable: true, get: function () { return userActions_1.userActionDataAttribute; } });
|
|
116
|
-
Object.defineProperty(exports, "startUserAction", { enumerable: true, get: function () { return userActions_1.startUserAction; } });
|
|
117
109
|
//# sourceMappingURL=index.js.map
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;AAAA,mCAAkE;AAAzD,gHAAA,sBAAsB,OAAA;AAAE,wGAAA,cAAc,OAAA;AAG/C,mCAA8C;AAArC,4GAAA,kBAAkB,OAAA;AAE3B,2CAA8C;AAArC,4GAAA,cAAc,OAAA;AAEvB,uDAa4B;AAZ1B,mHAAA,eAAe,OAAA;AACf,0HAAA,sBAAsB,OAAA;AACtB,yHAAA,qBAAqB,OAAA;AACrB,+HAAA,2BAA2B,OAAA;AAC3B,2HAAA,uBAAuB,OAAA;AACvB,mHAAA,eAAe,OAAA;AACf,uHAAA,mBAAmB,OAAA;AACnB,4HAAA,wBAAwB,OAAA;AACxB,0HAAA,sBAAsB,OAAA;AACtB,8HAAA,0BAA0B,OAAA;AAC1B,sHAAA,kBAAkB,OAAA;AAClB,6HAAA,yBAAyB,OAAA;AAI3B,iCAA8D;AAArD,oGAAA,WAAW,OAAA;AAAE,sGAAA,aAAa,OAAA;AAAE,gGAAA,OAAO,OAAA;AAE5C,2CAAgE;AAAvD,8GAAA,gBAAgB,OAAA;AAAE,4GAAA,cAAc,OAAA;AAQzC,gDAiE4B;AAhE1B,iGAAA,IAAI,OAAA;AACJ,yGAAA,YAAY,OAAA;AACZ,0GAAA,aAAa,OAAA;AACb,gHAAA,mBAAmB,OAAA;AACnB,0GAAA,aAAa,OAAA;AACb,iHAAA,oBAAoB,OAAA;AACpB,gHAAA,mBAAmB,OAAA;AACnB,sGAAA,SAAS,OAAA;AACT,iHAAA,oBAAoB,OAAA;AACpB,mHAAA,sBAAsB,OAAA;AACtB,uHAAA,0BAA0B,OAAA;AAC1B,4GAAA,eAAe,OAAA;AACf,uGAAA,UAAU,OAAA;AACV,gHAAA,mBAAmB,OAAA;AACnB,4HAAA,+BAA+B,OAAA;AAC/B,6GAAA,gBAAgB,OAAA;AAChB,yGAAA,YAAY,OAAA;AACZ,oHAAA,uBAAuB,OAAA;AACvB,oGAAA,OAAO,OAAA;AACP,sGAAA,SAAS,OAAA;AACT,uGAAA,UAAU,OAAA;AACV,2GAAA,cAAc,OAAA;AACd,sGAAA,SAAS,OAAA;AACT,6GAAA,gBAAgB,OAAA;AAChB,oGAAA,OAAO,OAAA;AACP,2GAAA,cAAc,OAAA;AACd,yGAAA,YAAY,OAAA;AACZ,oGAAA,OAAO,OAAA;AACP,2GAAA,cAAc,OAAA;AACd,uGAAA,UAAU,OAAA;AACV,yGAAA,YAAY,OAAA;AACZ,kGAAA,KAAK,OAAA;AACL,yHAAA,4BAA4B,OAAA;AAC5B,kGAAA,KAAK,OAAA;AACL,yGAAA,YAAY,OAAA;AACZ,mGAAA,MAAM,OAAA;AACN,qGAAA,QAAQ,OAAA;AACR,qGAAA,QAAQ,OAAA;AACR,wGAAA,WAAW,OAAA;AACX,qGAAA,QAAQ,OAAA;AACR,qGAAA,QAAQ,OAAA;AACR,qGAAA,QAAQ,OAAA;AACR,6GAAA,gBAAgB,OAAA;AAChB,uGAAA,UAAU,OAAA;AACV,uGAAA,UAAU,OAAA;AACV,qGAAA,QAAQ,OAAA;AACR,wGAAA,WAAW,OAAA;AACX,oGAAA,OAAO,OAAA;AACP,gHAAA,mBAAmB,OAAA;AACnB,qGAAA,QAAQ,OAAA;AACR,iGAAA,IAAI,OAAA;AACJ,0HAAA,6BAA6B,OAAA;AAC7B,8GAAA,iBAAiB,OAAA;AACjB,uHAAA,0BAA0B,OAAA;AAC1B,oGAAA,OAAO,OAAA;AACP,wGAAA,WAAW,OAAA;AACX,6GAAA,gBAAgB,OAAA;AAChB,+GAAA,kBAAkB,OAAA;AAClB,iHAAA,oBAAoB,OAAA;AACpB,iHAAA,oBAAoB,OAAA;AACpB,gHAAA,mBAAmB,OAAA;AACnB,+GAAA,kBAAkB,OAAA;AAClB,uGAAA,UAAU,OAAA;AACV,0GAAA,aAAa,OAAA;AAmEf,sDAOoC;AANlC,oHAAA,yBAAyB,OAAA;AACzB,kHAAA,uBAAuB,OAAA;AACvB,uHAAA,4BAA4B,OAAA;AAC5B,kHAAA,uBAAuB,OAAA;AACvB,kHAAA,uBAAuB,OAAA;AACvB,sGAAA,WAAW,OAAA;AAGb,mCAAgE;AAAvD,oGAAA,aAAa,OAAA;AAAE,yGAAA,kBAAkB,OAAA;AAE1C,8DAAyE;AAAhE,sHAAA,uBAAuB,OAAA","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 CSPInstrumentation,\n UserActionInstrumentation,\n} from './instrumentations';\nexport type { 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 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 Observable,\n unknownString,\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 ExceptionEventExtended,\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} from '@grafana/faro-core';\n\nexport {\n PersistentSessionsManager,\n VolatileSessionsManager,\n MAX_SESSION_PERSISTENCE_TIME,\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';\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/instrumentations/console/index.ts"],"names":[],"mappings":";;;AAAA,qDAA2D;AAAlD,yHAAA,sBAAsB,OAAA","sourcesContent":["export { ConsoleInstrumentation } from './instrumentation';\n
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/instrumentations/console/index.ts"],"names":[],"mappings":";;;AAAA,qDAA2D;AAAlD,yHAAA,sBAAsB,OAAA","sourcesContent":["export { ConsoleInstrumentation } from './instrumentation';\n"]}
|
|
@@ -14,27 +14,14 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
14
14
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
15
|
};
|
|
16
16
|
})();
|
|
17
|
-
var __assign = (this && this.__assign) || function () {
|
|
18
|
-
__assign = Object.assign || function(t) {
|
|
19
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
20
|
-
s = arguments[i];
|
|
21
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
22
|
-
t[p] = s[p];
|
|
23
|
-
}
|
|
24
|
-
return t;
|
|
25
|
-
};
|
|
26
|
-
return __assign.apply(this, arguments);
|
|
27
|
-
};
|
|
28
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
18
|
exports.ConsoleInstrumentation = void 0;
|
|
30
19
|
var faro_core_1 = require("@grafana/faro-core");
|
|
31
20
|
var getErrorDetails_1 = require("../errors/getErrorDetails");
|
|
32
21
|
var ConsoleInstrumentation = /** @class */ (function (_super) {
|
|
33
22
|
__extends(ConsoleInstrumentation, _super);
|
|
34
|
-
function ConsoleInstrumentation(
|
|
35
|
-
|
|
36
|
-
var _this = _super.call(this) || this;
|
|
37
|
-
_this.options = options;
|
|
23
|
+
function ConsoleInstrumentation() {
|
|
24
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
38
25
|
_this.name = '@grafana/faro-web-sdk:instrumentation-console';
|
|
39
26
|
_this.version = faro_core_1.VERSION;
|
|
40
27
|
_this.errorSerializer = faro_core_1.defaultLogArgsSerializer;
|
|
@@ -42,34 +29,33 @@ var ConsoleInstrumentation = /** @class */ (function (_super) {
|
|
|
42
29
|
}
|
|
43
30
|
ConsoleInstrumentation.prototype.initialize = function () {
|
|
44
31
|
var _this = this;
|
|
45
|
-
var _a
|
|
46
|
-
|
|
47
|
-
var serializeErrors = (
|
|
32
|
+
var _a;
|
|
33
|
+
var instrumentationOptions = this.config.consoleInstrumentation;
|
|
34
|
+
var serializeErrors = (instrumentationOptions === null || instrumentationOptions === void 0 ? void 0 : instrumentationOptions.serializeErrors) || !!(instrumentationOptions === null || instrumentationOptions === void 0 ? void 0 : instrumentationOptions.errorSerializer);
|
|
48
35
|
this.errorSerializer = serializeErrors
|
|
49
|
-
? ((
|
|
36
|
+
? ((_a = instrumentationOptions === null || instrumentationOptions === void 0 ? void 0 : instrumentationOptions.errorSerializer) !== null && _a !== void 0 ? _a : faro_core_1.defaultErrorArgsSerializer)
|
|
50
37
|
: faro_core_1.defaultLogArgsSerializer;
|
|
51
38
|
faro_core_1.allLogLevels
|
|
52
|
-
.filter(function (level) { var _a
|
|
39
|
+
.filter(function (level) { var _a; return !((_a = instrumentationOptions === null || instrumentationOptions === void 0 ? void 0 : instrumentationOptions.disabledLevels) !== null && _a !== void 0 ? _a : ConsoleInstrumentation.defaultDisabledLevels).includes(level); })
|
|
53
40
|
.forEach(function (level) {
|
|
54
41
|
/* eslint-disable-next-line no-console */
|
|
55
42
|
console[level] = function () {
|
|
56
43
|
var _a;
|
|
57
|
-
var _b, _c;
|
|
58
44
|
var args = [];
|
|
59
45
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
60
46
|
args[_i] = arguments[_i];
|
|
61
47
|
}
|
|
62
48
|
try {
|
|
63
|
-
if (level === faro_core_1.LogLevel.ERROR && !(
|
|
64
|
-
var
|
|
49
|
+
if (level === faro_core_1.LogLevel.ERROR && !(instrumentationOptions === null || instrumentationOptions === void 0 ? void 0 : instrumentationOptions.consoleErrorAsLog)) {
|
|
50
|
+
var _b = (0, getErrorDetails_1.getDetailsFromConsoleErrorArgs)(args, _this.errorSerializer), value = _b.value, type = _b.type, stackFrames = _b.stackFrames;
|
|
65
51
|
if (value && !type && !stackFrames) {
|
|
66
52
|
_this.api.pushError(new Error(ConsoleInstrumentation.consoleErrorPrefix + value));
|
|
67
53
|
return;
|
|
68
54
|
}
|
|
69
55
|
_this.api.pushError(new Error(ConsoleInstrumentation.consoleErrorPrefix + value), { type: type, stackFrames: stackFrames });
|
|
70
56
|
}
|
|
71
|
-
else if (level === faro_core_1.LogLevel.ERROR && (
|
|
72
|
-
var
|
|
57
|
+
else if (level === faro_core_1.LogLevel.ERROR && (instrumentationOptions === null || instrumentationOptions === void 0 ? void 0 : instrumentationOptions.consoleErrorAsLog)) {
|
|
58
|
+
var _c = (0, getErrorDetails_1.getDetailsFromConsoleErrorArgs)(args, _this.errorSerializer), value = _c.value, type = _c.type, stackFrames = _c.stackFrames;
|
|
73
59
|
_this.api.pushLog(value ? [ConsoleInstrumentation.consoleErrorPrefix + value] : args, {
|
|
74
60
|
level: level,
|
|
75
61
|
context: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../../../src/instrumentations/console/instrumentation.ts"],"names":[],"mappings":"
|
|
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\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 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 allLogLevels\n .filter(\n (level) =>\n !(instrumentationOptions?.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 && !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 } finally {\n this.unpatchedConsole[level](...args);\n }\n };\n });\n }\n}\n"]}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CSPInstrumentation = void 0;
|
|
4
|
+
var instrumentation_1 = require("./instrumentation");
|
|
5
|
+
Object.defineProperty(exports, "CSPInstrumentation", { enumerable: true, get: function () { return instrumentation_1.CSPInstrumentation; } });
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/instrumentations/csp/index.ts"],"names":[],"mappings":";;;AAAA,qDAAuD;AAA9C,qHAAA,kBAAkB,OAAA","sourcesContent":["export { CSPInstrumentation } from './instrumentation';\n"]}
|
|
@@ -0,0 +1,40 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
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;
|
|
27
|
+
}
|
|
28
|
+
CSPInstrumentation.prototype.initialize = function () {
|
|
29
|
+
document.addEventListener('securitypolicyviolation', this.securitypolicyviolationHandler.bind(this));
|
|
30
|
+
};
|
|
31
|
+
CSPInstrumentation.prototype.destroy = function () {
|
|
32
|
+
document.removeEventListener('securitypolicyviolation', this.securitypolicyviolationHandler);
|
|
33
|
+
};
|
|
34
|
+
CSPInstrumentation.prototype.securitypolicyviolationHandler = function (ev) {
|
|
35
|
+
this.api.pushEvent('securitypolicyviolation', (0, faro_core_1.stringifyObjectValues)(ev));
|
|
36
|
+
};
|
|
37
|
+
return CSPInstrumentation;
|
|
38
|
+
}(faro_core_1.BaseInstrumentation));
|
|
39
|
+
exports.CSPInstrumentation = CSPInstrumentation;
|
|
40
|
+
//# sourceMappingURL=instrumentation.js.map
|
|
@@ -0,0 +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,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,yBAAyB,EAAE,IAAA,iCAAqB,EAAC,EAAyB,CAAC,CAAC,CAAC;IAClG,CAAC;IACH,yBAAC;AAAD,CAAC,AAnBD,CAAwC,+BAAmB,GAmB1D;AAnBY,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 this.api.pushEvent('securitypolicyviolation', stringifyObjectValues(ev as Record<string, any>));\n }\n}\n"]}
|
|
@@ -5,7 +5,7 @@ exports.newLineString = '\n';
|
|
|
5
5
|
exports.evalString = 'eval';
|
|
6
6
|
exports.unknownSymbolString = '?';
|
|
7
7
|
exports.atString = '@';
|
|
8
|
-
exports.webkitLineRegex = /^\s*at (?:(
|
|
8
|
+
exports.webkitLineRegex = /^\s*at (?:(?![a-z]+:\/\/)([^(]+?) ?\((?:address at )?)?((?:file|https?|blob|chrome-extension|address|native|eval|webpack|<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i;
|
|
9
9
|
exports.webkitEvalRegex = /\((\S*)(?::(\d+))(?::(\d+))\)/;
|
|
10
10
|
exports.webkitEvalString = 'eval';
|
|
11
11
|
exports.webkitAddressAtString = 'address at ';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"const.js","sourceRoot":"","sources":["../../../../../src/instrumentations/errors/stackFrames/const.ts"],"names":[],"mappings":";;;AAAa,QAAA,aAAa,GAAG,IAAI,CAAC;AACrB,QAAA,UAAU,GAAG,MAAM,CAAC;AACpB,QAAA,mBAAmB,GAAG,GAAG,CAAC;AAC1B,QAAA,QAAQ,GAAG,GAAG,CAAC;AAEf,QAAA,eAAe,GAC1B,
|
|
1
|
+
{"version":3,"file":"const.js","sourceRoot":"","sources":["../../../../../src/instrumentations/errors/stackFrames/const.ts"],"names":[],"mappings":";;;AAAa,QAAA,aAAa,GAAG,IAAI,CAAC;AACrB,QAAA,UAAU,GAAG,MAAM,CAAC;AACpB,QAAA,mBAAmB,GAAG,GAAG,CAAC;AAC1B,QAAA,QAAQ,GAAG,GAAG,CAAC;AAEf,QAAA,eAAe,GAC1B,+LAA+L,CAAC;AACrL,QAAA,eAAe,GAAG,+BAA+B,CAAC;AAClD,QAAA,gBAAgB,GAAG,MAAM,CAAC;AAC1B,QAAA,qBAAqB,GAAG,aAAa,CAAC;AACtC,QAAA,2BAA2B,GAAG,6BAAqB,CAAC,MAAM,CAAC;AAE3D,QAAA,gBAAgB,GAC3B,oOAAoO,CAAC;AAC1N,QAAA,gBAAgB,GAAG,+CAA+C,CAAC;AACnE,QAAA,iBAAiB,GAAG,SAAS,CAAC;AAE9B,QAAA,qBAAqB,GAAG,kBAAkB,CAAC;AAC3C,QAAA,wBAAwB,GAAG,sBAAsB,CAAC;AAElD,QAAA,kBAAkB,GAAG,6BAA6B,CAAC","sourcesContent":["export const newLineString = '\\n';\nexport const evalString = 'eval';\nexport const unknownSymbolString = '?';\nexport const atString = '@';\n\nexport const webkitLineRegex =\n /^\\s*at (?:(?![a-z]+:\\/\\/)([^(]+?) ?\\((?:address at )?)?((?:file|https?|blob|chrome-extension|address|native|eval|webpack|<anonymous>|[-a-z]+:|.*bundle|\\/)?.*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\nexport const webkitEvalRegex = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\nexport const webkitEvalString = 'eval';\nexport const webkitAddressAtString = 'address at ';\nexport const webkitAddressAtStringLength = webkitAddressAtString.length;\n\nexport const firefoxLineRegex =\n /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)?((?:file|https?|blob|chrome|webpack|resource|moz-extension|safari-extension|safari-web-extension|capacitor)?:\\/.*?|\\[native code]|[^@]*(?:bundle|\\d+\\.js)|\\/[\\w\\-. /=]+)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nexport const firefoxEvalRegex = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\nexport const firefoxEvalString = ' > eval';\n\nexport const safariExtensionString = 'safari-extension';\nexport const safariWebExtensionString = 'safari-web-extension';\n\nexport const reactMinifiedRegex = /Minified React error #\\d+;/i;\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.CSPInstrumentation = exports.userActionDataAttribute = exports.UserActionInstrumentation = exports.PerformanceInstrumentation = exports.STORAGE_KEY = exports.SESSION_INACTIVITY_TIME = exports.SESSION_EXPIRATION_TIME = exports.MAX_SESSION_PERSISTENCE_TIME = exports.VolatileSessionsManager = exports.PersistentSessionsManager = exports.WebVitalsInstrumentation = exports.ViewInstrumentation = exports.parseStacktrace = exports.getStackFramesFromError = exports.getDataFromSafariExtensions = exports.ErrorsInstrumentation = exports.buildStackFrame = exports.ConsoleInstrumentation = exports.SessionInstrumentation = void 0;
|
|
4
4
|
var session_1 = require("./session");
|
|
5
5
|
Object.defineProperty(exports, "SessionInstrumentation", { enumerable: true, get: function () { return session_1.SessionInstrumentation; } });
|
|
6
6
|
var console_1 = require("./console");
|
|
@@ -19,7 +19,6 @@ var session_2 = require("./session");
|
|
|
19
19
|
Object.defineProperty(exports, "PersistentSessionsManager", { enumerable: true, get: function () { return session_2.PersistentSessionsManager; } });
|
|
20
20
|
Object.defineProperty(exports, "VolatileSessionsManager", { enumerable: true, get: function () { return session_2.VolatileSessionsManager; } });
|
|
21
21
|
Object.defineProperty(exports, "MAX_SESSION_PERSISTENCE_TIME", { enumerable: true, get: function () { return session_2.MAX_SESSION_PERSISTENCE_TIME; } });
|
|
22
|
-
Object.defineProperty(exports, "MAX_SESSION_PERSISTENCE_TIME_BUFFER", { enumerable: true, get: function () { return session_2.MAX_SESSION_PERSISTENCE_TIME_BUFFER; } });
|
|
23
22
|
Object.defineProperty(exports, "SESSION_EXPIRATION_TIME", { enumerable: true, get: function () { return session_2.SESSION_EXPIRATION_TIME; } });
|
|
24
23
|
Object.defineProperty(exports, "SESSION_INACTIVITY_TIME", { enumerable: true, get: function () { return session_2.SESSION_INACTIVITY_TIME; } });
|
|
25
24
|
Object.defineProperty(exports, "STORAGE_KEY", { enumerable: true, get: function () { return session_2.STORAGE_KEY; } });
|
|
@@ -28,5 +27,6 @@ Object.defineProperty(exports, "PerformanceInstrumentation", { enumerable: true,
|
|
|
28
27
|
var userActions_1 = require("./userActions");
|
|
29
28
|
Object.defineProperty(exports, "UserActionInstrumentation", { enumerable: true, get: function () { return userActions_1.UserActionInstrumentation; } });
|
|
30
29
|
Object.defineProperty(exports, "userActionDataAttribute", { enumerable: true, get: function () { return userActions_1.userActionDataAttribute; } });
|
|
31
|
-
|
|
30
|
+
var csp_1 = require("./csp");
|
|
31
|
+
Object.defineProperty(exports, "CSPInstrumentation", { enumerable: true, get: function () { return csp_1.CSPInstrumentation; } });
|
|
32
32
|
//# sourceMappingURL=index.js.map
|