@grafana/faro-web-sdk 2.3.1 → 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dist/bundle/faro-web-sdk.iife.js +1 -1
- package/dist/bundle/types/index.d.ts +2 -2
- package/dist/bundle/types/instrumentations/console/instrumentation.d.ts +1 -1
- package/dist/bundle/types/instrumentations/csp/instrumentation.d.ts +1 -1
- package/dist/bundle/types/instrumentations/errors/instrumentation.d.ts +1 -1
- package/dist/bundle/types/instrumentations/navigation/instrumentation.d.ts +1 -1
- package/dist/bundle/types/instrumentations/performance/instrumentation.d.ts +1 -1
- package/dist/bundle/types/instrumentations/session/instrumentation.d.ts +1 -1
- package/dist/bundle/types/instrumentations/userActions/instrumentation.d.ts +1 -1
- 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/metas/index.d.ts +1 -0
- package/dist/bundle/types/metas/os/index.d.ts +1 -0
- package/dist/bundle/types/metas/os/meta.d.ts +2 -0
- package/dist/bundle/types/metas/shared/index.d.ts +1 -0
- package/dist/bundle/types/metas/shared/uaParser.d.ts +4 -0
- 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 +3 -4
- package/dist/cjs/config/getWebInstrumentations.js.map +1 -1
- package/dist/cjs/config/makeCoreConfig.js +49 -60
- package/dist/cjs/config/makeCoreConfig.js.map +1 -1
- package/dist/cjs/index.js +3 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/initialize.js +3 -3
- package/dist/cjs/initialize.js.map +1 -1
- package/dist/cjs/instrumentations/_internal/activityWindowTracker.js +52 -68
- package/dist/cjs/instrumentations/_internal/activityWindowTracker.js.map +1 -1
- package/dist/cjs/instrumentations/_internal/monitors/consoleMonitor.js +11 -16
- package/dist/cjs/instrumentations/_internal/monitors/consoleMonitor.js.map +1 -1
- package/dist/cjs/instrumentations/_internal/monitors/domMutationMonitor.js +5 -5
- package/dist/cjs/instrumentations/_internal/monitors/domMutationMonitor.js.map +1 -1
- package/dist/cjs/instrumentations/_internal/monitors/httpRequestMonitor.js +28 -30
- package/dist/cjs/instrumentations/_internal/monitors/httpRequestMonitor.js.map +1 -1
- package/dist/cjs/instrumentations/_internal/monitors/interactionMonitor.js +7 -7
- package/dist/cjs/instrumentations/_internal/monitors/interactionMonitor.js.map +1 -1
- package/dist/cjs/instrumentations/_internal/monitors/performanceEntriesMonitor.js +8 -8
- package/dist/cjs/instrumentations/_internal/monitors/performanceEntriesMonitor.js.map +1 -1
- package/dist/cjs/instrumentations/_internal/monitors/urlChangeMonitor.js +24 -32
- package/dist/cjs/instrumentations/_internal/monitors/urlChangeMonitor.js.map +1 -1
- package/dist/cjs/instrumentations/console/instrumentation.js +29 -49
- package/dist/cjs/instrumentations/console/instrumentation.js.map +1 -1
- package/dist/cjs/instrumentations/csp/instrumentation.js +14 -32
- package/dist/cjs/instrumentations/csp/instrumentation.js.map +1 -1
- package/dist/cjs/instrumentations/errors/getErrorDetails.js +23 -23
- package/dist/cjs/instrumentations/errors/getErrorDetails.js.map +1 -1
- package/dist/cjs/instrumentations/errors/getValueAndTypeFromMessage.js +5 -5
- package/dist/cjs/instrumentations/errors/getValueAndTypeFromMessage.js.map +1 -1
- package/dist/cjs/instrumentations/errors/instrumentation.js +11 -29
- package/dist/cjs/instrumentations/errors/instrumentation.js.map +1 -1
- package/dist/cjs/instrumentations/errors/registerOnerror.js +6 -10
- package/dist/cjs/instrumentations/errors/registerOnerror.js.map +1 -1
- package/dist/cjs/instrumentations/errors/registerOnunhandledrejection.js +16 -17
- package/dist/cjs/instrumentations/errors/registerOnunhandledrejection.js.map +1 -1
- package/dist/cjs/instrumentations/errors/stackFrames/buildStackFrame.js +2 -2
- package/dist/cjs/instrumentations/errors/stackFrames/buildStackFrame.js.map +1 -1
- package/dist/cjs/instrumentations/errors/stackFrames/getDataFromSafariExtensions.js +4 -4
- package/dist/cjs/instrumentations/errors/stackFrames/getDataFromSafariExtensions.js.map +1 -1
- package/dist/cjs/instrumentations/errors/stackFrames/getStackFramesFromError.js +16 -17
- package/dist/cjs/instrumentations/errors/stackFrames/getStackFramesFromError.js.map +1 -1
- package/dist/cjs/instrumentations/errors/stackFrames/parseStacktrace.js +1 -1
- package/dist/cjs/instrumentations/errors/stackFrames/parseStacktrace.js.map +1 -1
- package/dist/cjs/instrumentations/navigation/instrumentation.js +27 -45
- package/dist/cjs/instrumentations/navigation/instrumentation.js.map +1 -1
- package/dist/cjs/instrumentations/performance/instrumentation.js +19 -74
- package/dist/cjs/instrumentations/performance/instrumentation.js.map +1 -1
- package/dist/cjs/instrumentations/performance/navigation.js +15 -26
- package/dist/cjs/instrumentations/performance/navigation.js.map +1 -1
- package/dist/cjs/instrumentations/performance/performanceUtils.js +18 -33
- package/dist/cjs/instrumentations/performance/performanceUtils.js.map +1 -1
- package/dist/cjs/instrumentations/performance/resource.js +13 -25
- package/dist/cjs/instrumentations/performance/resource.js.map +1 -1
- package/dist/cjs/instrumentations/session/instrumentation.js +45 -74
- package/dist/cjs/instrumentations/session/instrumentation.js.map +1 -1
- package/dist/cjs/instrumentations/session/sessionManager/PersistentSessionsManager.js +21 -24
- package/dist/cjs/instrumentations/session/sessionManager/PersistentSessionsManager.js.map +1 -1
- package/dist/cjs/instrumentations/session/sessionManager/VolatileSessionManager.js +21 -24
- package/dist/cjs/instrumentations/session/sessionManager/VolatileSessionManager.js.map +1 -1
- package/dist/cjs/instrumentations/session/sessionManager/getSessionManagerByConfig.js +2 -2
- package/dist/cjs/instrumentations/session/sessionManager/getSessionManagerByConfig.js.map +1 -1
- package/dist/cjs/instrumentations/session/sessionManager/sampling.js +5 -5
- package/dist/cjs/instrumentations/session/sessionManager/sampling.js.map +1 -1
- package/dist/cjs/instrumentations/session/sessionManager/sessionManagerUtils.js +47 -65
- package/dist/cjs/instrumentations/session/sessionManager/sessionManagerUtils.js.map +1 -1
- package/dist/cjs/instrumentations/userActions/instrumentation.js +15 -34
- package/dist/cjs/instrumentations/userActions/instrumentation.js.map +1 -1
- package/dist/cjs/instrumentations/userActions/processUserActionEventHandler.js +11 -11
- package/dist/cjs/instrumentations/userActions/processUserActionEventHandler.js.map +1 -1
- package/dist/cjs/instrumentations/userActions/userActionController.js +49 -53
- package/dist/cjs/instrumentations/userActions/userActionController.js.map +1 -1
- package/dist/cjs/instrumentations/userActions/util.js +4 -4
- package/dist/cjs/instrumentations/userActions/util.js.map +1 -1
- package/dist/cjs/instrumentations/view/instrumentation.js +12 -30
- package/dist/cjs/instrumentations/view/instrumentation.js.map +1 -1
- package/dist/cjs/instrumentations/webVitals/instrumentation.js +11 -29
- package/dist/cjs/instrumentations/webVitals/instrumentation.js.map +1 -1
- package/dist/cjs/instrumentations/webVitals/webVitalsWithAttribution.js +87 -94
- package/dist/cjs/instrumentations/webVitals/webVitalsWithAttribution.js.map +1 -1
- package/dist/cjs/metas/browser/meta.js +13 -14
- package/dist/cjs/metas/browser/meta.js.map +1 -1
- package/dist/cjs/metas/index.js +3 -1
- package/dist/cjs/metas/index.js.map +1 -1
- package/dist/cjs/metas/k6/meta.js +3 -14
- package/dist/cjs/metas/k6/meta.js.map +1 -1
- package/dist/cjs/metas/os/index.js +6 -0
- package/dist/cjs/metas/os/index.js.map +1 -0
- package/dist/cjs/metas/os/meta.js +20 -0
- package/dist/cjs/metas/os/meta.js.map +1 -0
- package/dist/cjs/metas/page/meta.js +7 -19
- package/dist/cjs/metas/page/meta.js.map +1 -1
- package/dist/cjs/metas/sdk/meta.js +3 -3
- package/dist/cjs/metas/sdk/meta.js.map +1 -1
- package/dist/cjs/metas/session/createSession.js +2 -2
- package/dist/cjs/metas/session/createSession.js.map +1 -1
- package/dist/cjs/metas/shared/index.js +6 -0
- package/dist/cjs/metas/shared/index.js.map +1 -0
- package/dist/cjs/metas/shared/uaParser.js +18 -0
- package/dist/cjs/metas/shared/uaParser.js.map +1 -0
- package/dist/cjs/transports/console/transport.js +10 -29
- package/dist/cjs/transports/console/transport.js.map +1 -1
- package/dist/cjs/transports/fetch/transport.js +82 -176
- package/dist/cjs/transports/fetch/transport.js.map +1 -1
- package/dist/cjs/utils/throttle.js +6 -10
- package/dist/cjs/utils/throttle.js.map +1 -1
- package/dist/cjs/utils/url.js +4 -5
- package/dist/cjs/utils/url.js.map +1 -1
- package/dist/cjs/utils/webStorage.js +4 -4
- package/dist/cjs/utils/webStorage.js.map +1 -1
- package/dist/esm/config/makeCoreConfig.js +2 -1
- package/dist/esm/config/makeCoreConfig.js.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/instrumentations/_internal/activityWindowTracker.js +10 -5
- package/dist/esm/instrumentations/_internal/activityWindowTracker.js.map +1 -1
- package/dist/esm/instrumentations/errors/getErrorDetails.js +1 -0
- package/dist/esm/instrumentations/errors/getErrorDetails.js.map +1 -1
- package/dist/esm/metas/browser/meta.js +5 -6
- package/dist/esm/metas/browser/meta.js.map +1 -1
- package/dist/esm/metas/index.js +1 -0
- package/dist/esm/metas/index.js.map +1 -1
- package/dist/esm/metas/os/index.js +2 -0
- package/dist/esm/metas/os/index.js.map +1 -0
- package/dist/esm/metas/os/meta.js +16 -0
- package/dist/esm/metas/os/meta.js.map +1 -0
- package/dist/esm/metas/shared/index.js +2 -0
- package/dist/esm/metas/shared/index.js.map +1 -0
- package/dist/esm/metas/shared/uaParser.js +15 -0
- package/dist/esm/metas/shared/uaParser.js.map +1 -0
- package/dist/esm/transports/fetch/transport.js +1 -1
- package/dist/esm/transports/fetch/transport.js.map +1 -1
- package/dist/types/index.d.ts +2 -2
- package/dist/types/instrumentations/console/instrumentation.d.ts +1 -1
- package/dist/types/instrumentations/csp/instrumentation.d.ts +1 -1
- package/dist/types/instrumentations/errors/instrumentation.d.ts +1 -1
- package/dist/types/instrumentations/navigation/instrumentation.d.ts +1 -1
- package/dist/types/instrumentations/performance/instrumentation.d.ts +1 -1
- package/dist/types/instrumentations/session/instrumentation.d.ts +1 -1
- package/dist/types/instrumentations/userActions/instrumentation.d.ts +1 -1
- package/dist/types/instrumentations/view/instrumentation.d.ts +1 -1
- package/dist/types/instrumentations/webVitals/instrumentation.d.ts +1 -1
- package/dist/types/metas/index.d.ts +1 -0
- package/dist/types/metas/os/index.d.ts +1 -0
- package/dist/types/metas/os/meta.d.ts +2 -0
- package/dist/types/metas/shared/index.d.ts +1 -0
- package/dist/types/metas/shared/uaParser.d.ts +4 -0
- package/dist/types/transports/console/transport.d.ts +1 -1
- package/dist/types/transports/fetch/transport.d.ts +1 -1
- package/package.json +5 -5
|
@@ -1,64 +1,45 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __extends = (this && this.__extends) || (function () {
|
|
3
|
-
var extendStatics = function (d, b) {
|
|
4
|
-
extendStatics = Object.setPrototypeOf ||
|
|
5
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
-
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
-
return extendStatics(d, b);
|
|
8
|
-
};
|
|
9
|
-
return function (d, b) {
|
|
10
|
-
if (typeof b !== "function" && b !== null)
|
|
11
|
-
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
-
extendStatics(d, b);
|
|
13
|
-
function __() { this.constructor = d; }
|
|
14
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
-
};
|
|
16
|
-
})();
|
|
17
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
3
|
exports.ConsoleInstrumentation = void 0;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
_this.errorSerializer = faro_core_1.defaultLogArgsSerializer;
|
|
29
|
-
return _this;
|
|
4
|
+
const faro_core_1 = require("@grafana/faro-core");
|
|
5
|
+
const consoleMonitor_1 = require("../_internal/monitors/consoleMonitor");
|
|
6
|
+
const getErrorDetails_1 = require("../errors/getErrorDetails");
|
|
7
|
+
class ConsoleInstrumentation extends faro_core_1.BaseInstrumentation {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
this.name = '@grafana/faro-web-sdk:instrumentation-console';
|
|
11
|
+
this.version = faro_core_1.VERSION;
|
|
12
|
+
this.errorSerializer = faro_core_1.defaultLogArgsSerializer;
|
|
30
13
|
}
|
|
31
|
-
|
|
32
|
-
var _this = this;
|
|
14
|
+
initialize() {
|
|
33
15
|
var _a, _b;
|
|
34
|
-
|
|
35
|
-
|
|
16
|
+
const instrumentationOptions = this.config.consoleInstrumentation;
|
|
17
|
+
const serializeErrors = (instrumentationOptions === null || instrumentationOptions === void 0 ? void 0 : instrumentationOptions.serializeErrors) || !!(instrumentationOptions === null || instrumentationOptions === void 0 ? void 0 : instrumentationOptions.errorSerializer);
|
|
36
18
|
this.errorSerializer = serializeErrors
|
|
37
19
|
? ((_a = instrumentationOptions === null || instrumentationOptions === void 0 ? void 0 : instrumentationOptions.errorSerializer) !== null && _a !== void 0 ? _a : faro_core_1.defaultErrorArgsSerializer)
|
|
38
20
|
: faro_core_1.defaultLogArgsSerializer;
|
|
39
|
-
|
|
21
|
+
const disabledLevels = (_b = instrumentationOptions === null || instrumentationOptions === void 0 ? void 0 : instrumentationOptions.disabledLevels) !== null && _b !== void 0 ? _b : ConsoleInstrumentation.defaultDisabledLevels;
|
|
40
22
|
// Pass unpatchedConsole to the monitor (only first caller's value is used)
|
|
41
|
-
|
|
23
|
+
const consoleMonitor = (0, consoleMonitor_1.monitorConsole)(this.unpatchedConsole);
|
|
42
24
|
// Subscribe this Faro instance to console events
|
|
43
|
-
this.subscription = consoleMonitor.subscribe(
|
|
44
|
-
var level = _a.level, args = _a.args;
|
|
25
|
+
this.subscription = consoleMonitor.subscribe(({ level, args }) => {
|
|
45
26
|
// Skip if this level is disabled for this instance
|
|
46
27
|
if (disabledLevels.includes(level)) {
|
|
47
28
|
return;
|
|
48
29
|
}
|
|
49
30
|
try {
|
|
50
31
|
if (level === faro_core_1.LogLevel.ERROR && !(instrumentationOptions === null || instrumentationOptions === void 0 ? void 0 : instrumentationOptions.consoleErrorAsLog)) {
|
|
51
|
-
|
|
32
|
+
const { value, type, stackFrames } = (0, getErrorDetails_1.getDetailsFromConsoleErrorArgs)(args, this.errorSerializer);
|
|
52
33
|
if (value && !type && !stackFrames) {
|
|
53
|
-
|
|
34
|
+
this.api.pushError(new Error(ConsoleInstrumentation.consoleErrorPrefix + value));
|
|
54
35
|
return;
|
|
55
36
|
}
|
|
56
|
-
|
|
37
|
+
this.api.pushError(new Error(ConsoleInstrumentation.consoleErrorPrefix + value), { type, stackFrames });
|
|
57
38
|
}
|
|
58
39
|
else if (level === faro_core_1.LogLevel.ERROR && (instrumentationOptions === null || instrumentationOptions === void 0 ? void 0 : instrumentationOptions.consoleErrorAsLog)) {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
level
|
|
40
|
+
const { value, type, stackFrames } = (0, getErrorDetails_1.getDetailsFromConsoleErrorArgs)(args, this.errorSerializer);
|
|
41
|
+
this.api.pushLog(value ? [ConsoleInstrumentation.consoleErrorPrefix + value] : args, {
|
|
42
|
+
level,
|
|
62
43
|
context: {
|
|
63
44
|
value: value !== null && value !== void 0 ? value : '',
|
|
64
45
|
type: type !== null && type !== void 0 ? type : '',
|
|
@@ -67,23 +48,22 @@ var ConsoleInstrumentation = /** @class */ (function (_super) {
|
|
|
67
48
|
});
|
|
68
49
|
}
|
|
69
50
|
else {
|
|
70
|
-
|
|
51
|
+
this.api.pushLog(args, { level });
|
|
71
52
|
}
|
|
72
53
|
}
|
|
73
54
|
catch (err) {
|
|
74
|
-
|
|
55
|
+
this.logError(err);
|
|
75
56
|
}
|
|
76
57
|
});
|
|
77
|
-
}
|
|
58
|
+
}
|
|
78
59
|
// Clean up subscription when instrumentation is destroyed
|
|
79
|
-
|
|
60
|
+
destroy() {
|
|
80
61
|
var _a;
|
|
81
62
|
(_a = this.subscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
|
|
82
63
|
this.subscription = undefined;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
ConsoleInstrumentation.consoleErrorPrefix = 'console.error: ';
|
|
86
|
-
return ConsoleInstrumentation;
|
|
87
|
-
}(faro_core_1.BaseInstrumentation));
|
|
64
|
+
}
|
|
65
|
+
}
|
|
88
66
|
exports.ConsoleInstrumentation = ConsoleInstrumentation;
|
|
67
|
+
ConsoleInstrumentation.defaultDisabledLevels = [faro_core_1.LogLevel.DEBUG, faro_core_1.LogLevel.TRACE, faro_core_1.LogLevel.LOG];
|
|
68
|
+
ConsoleInstrumentation.consoleErrorPrefix = 'console.error: ';
|
|
89
69
|
//# sourceMappingURL=instrumentation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../../../src/instrumentations/console/instrumentation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../../../src/instrumentations/console/instrumentation.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n BaseInstrumentation,\n defaultErrorArgsSerializer,\n defaultLogArgsSerializer,\n LogLevel,\n VERSION,\n} from '@grafana/faro-core';\nimport type { LogArgsSerializer, Subscription } from '@grafana/faro-core';\n\nimport { monitorConsole } from '../_internal/monitors/consoleMonitor';\nimport { getDetailsFromConsoleErrorArgs } from '../errors/getErrorDetails';\n\nexport class ConsoleInstrumentation extends BaseInstrumentation {\n readonly name = '@grafana/faro-web-sdk:instrumentation-console';\n readonly version = VERSION;\n\n static defaultDisabledLevels: LogLevel[] = [LogLevel.DEBUG, LogLevel.TRACE, LogLevel.LOG];\n static consoleErrorPrefix = 'console.error: ';\n\n private errorSerializer: LogArgsSerializer = defaultLogArgsSerializer;\n private subscription: Subscription | undefined;\n\n initialize() {\n const instrumentationOptions = this.config.consoleInstrumentation;\n\n const serializeErrors = instrumentationOptions?.serializeErrors || !!instrumentationOptions?.errorSerializer;\n this.errorSerializer = serializeErrors\n ? (instrumentationOptions?.errorSerializer ?? defaultErrorArgsSerializer)\n : defaultLogArgsSerializer;\n\n const disabledLevels = instrumentationOptions?.disabledLevels ?? ConsoleInstrumentation.defaultDisabledLevels;\n\n // Pass unpatchedConsole to the monitor (only first caller's value is used)\n const consoleMonitor = monitorConsole(this.unpatchedConsole);\n\n // Subscribe this Faro instance to console events\n this.subscription = consoleMonitor.subscribe(({ level, args }) => {\n // Skip if this level is disabled for this instance\n if (disabledLevels.includes(level)) {\n return;\n }\n\n try {\n if (level === LogLevel.ERROR && !instrumentationOptions?.consoleErrorAsLog) {\n const { value, type, stackFrames } = getDetailsFromConsoleErrorArgs(args, this.errorSerializer);\n\n if (value && !type && !stackFrames) {\n this.api.pushError(new Error(ConsoleInstrumentation.consoleErrorPrefix + value));\n return;\n }\n\n this.api.pushError(new Error(ConsoleInstrumentation.consoleErrorPrefix + value), { type, stackFrames });\n } else if (level === LogLevel.ERROR && instrumentationOptions?.consoleErrorAsLog) {\n const { value, type, stackFrames } = getDetailsFromConsoleErrorArgs(args, this.errorSerializer);\n\n this.api.pushLog(value ? [ConsoleInstrumentation.consoleErrorPrefix + value] : args, {\n level,\n context: {\n value: value ?? '',\n type: type ?? '',\n stackFrames: stackFrames?.length ? defaultErrorArgsSerializer(stackFrames) : '',\n },\n });\n } else {\n this.api.pushLog(args, { level });\n }\n } catch (err) {\n this.logError(err);\n }\n });\n }\n\n // Clean up subscription when instrumentation is destroyed\n destroy() {\n this.subscription?.unsubscribe();\n this.subscription = undefined;\n }\n}\n"]}
|
|
@@ -1,41 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __extends = (this && this.__extends) || (function () {
|
|
3
|
-
var extendStatics = function (d, b) {
|
|
4
|
-
extendStatics = Object.setPrototypeOf ||
|
|
5
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
-
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
-
return extendStatics(d, b);
|
|
8
|
-
};
|
|
9
|
-
return function (d, b) {
|
|
10
|
-
if (typeof b !== "function" && b !== null)
|
|
11
|
-
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
-
extendStatics(d, b);
|
|
13
|
-
function __() { this.constructor = d; }
|
|
14
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
-
};
|
|
16
|
-
})();
|
|
17
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
3
|
exports.CSPInstrumentation = void 0;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
_this.version = faro_core_1.VERSION;
|
|
26
|
-
return _this;
|
|
4
|
+
const faro_core_1 = require("@grafana/faro-core");
|
|
5
|
+
class CSPInstrumentation extends faro_core_1.BaseInstrumentation {
|
|
6
|
+
constructor() {
|
|
7
|
+
super();
|
|
8
|
+
this.name = '@grafana/faro-web-sdk:instrumentation-csp';
|
|
9
|
+
this.version = faro_core_1.VERSION;
|
|
27
10
|
}
|
|
28
|
-
|
|
11
|
+
initialize() {
|
|
29
12
|
document.addEventListener('securitypolicyviolation', this.securitypolicyviolationHandler.bind(this));
|
|
30
|
-
}
|
|
31
|
-
|
|
13
|
+
}
|
|
14
|
+
destroy() {
|
|
32
15
|
document.removeEventListener('securitypolicyviolation', this.securitypolicyviolationHandler);
|
|
33
|
-
}
|
|
34
|
-
|
|
16
|
+
}
|
|
17
|
+
securitypolicyviolationHandler(ev) {
|
|
35
18
|
// We must explicitly extract properties because SecurityPolicyViolationEvent
|
|
36
19
|
// properties are getters on the prototype chain, not own enumerable properties.
|
|
37
20
|
// Object.entries() would not capture them.
|
|
38
|
-
|
|
21
|
+
const attributes = {
|
|
39
22
|
blockedURI: ev.blockedURI,
|
|
40
23
|
columnNumber: ev.columnNumber,
|
|
41
24
|
disposition: ev.disposition,
|
|
@@ -50,8 +33,7 @@ var CSPInstrumentation = /** @class */ (function (_super) {
|
|
|
50
33
|
violatedDirective: ev.violatedDirective,
|
|
51
34
|
};
|
|
52
35
|
this.api.pushEvent('securitypolicyviolation', (0, faro_core_1.stringifyObjectValues)(attributes));
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
}(faro_core_1.BaseInstrumentation));
|
|
36
|
+
}
|
|
37
|
+
}
|
|
56
38
|
exports.CSPInstrumentation = CSPInstrumentation;
|
|
57
39
|
//# sourceMappingURL=instrumentation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../../../src/instrumentations/csp/instrumentation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../../../src/instrumentations/csp/instrumentation.ts"],"names":[],"mappings":";;;AAAA,kDAAyF;AAGzF,MAAa,kBAAmB,SAAQ,+BAAmB;IAIzD;QACE,KAAK,EAAE,CAAC;QAJD,SAAI,GAAG,2CAA2C,CAAC;QACnD,YAAO,GAAG,mBAAO,CAAC;IAI3B,CAAC;IAED,UAAU;QACR,QAAQ,CAAC,gBAAgB,CAAC,yBAAyB,EAAE,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACvG,CAAC;IAED,OAAO;QACL,QAAQ,CAAC,mBAAmB,CAAC,yBAAyB,EAAE,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAC/F,CAAC;IAEM,8BAA8B,CAAC,EAAgC;QACpE,6EAA6E;QAC7E,gFAAgF;QAChF,2CAA2C;QAC3C,MAAM,UAAU,GAAG;YACjB,UAAU,EAAE,EAAE,CAAC,UAAU;YACzB,YAAY,EAAE,EAAE,CAAC,YAAY;YAC7B,WAAW,EAAE,EAAE,CAAC,WAAW;YAC3B,WAAW,EAAE,EAAE,CAAC,WAAW;YAC3B,kBAAkB,EAAE,EAAE,CAAC,kBAAkB;YACzC,UAAU,EAAE,EAAE,CAAC,UAAU;YACzB,cAAc,EAAE,EAAE,CAAC,cAAc;YACjC,QAAQ,EAAE,EAAE,CAAC,QAAQ;YACrB,MAAM,EAAE,EAAE,CAAC,MAAM;YACjB,UAAU,EAAE,EAAE,CAAC,UAAU;YACzB,UAAU,EAAE,EAAE,CAAC,UAAU;YACzB,iBAAiB,EAAE,EAAE,CAAC,iBAAiB;SACxC,CAAC;QAEF,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,yBAAyB,EAAE,IAAA,iCAAqB,EAAC,UAAU,CAAC,CAAC,CAAC;IACnF,CAAC;CACF;AArCD,gDAqCC","sourcesContent":["import { BaseInstrumentation, stringifyObjectValues, VERSION } from '@grafana/faro-core';\nimport type { Instrumentation } from '@grafana/faro-core';\n\nexport class CSPInstrumentation extends BaseInstrumentation implements Instrumentation {\n readonly name = '@grafana/faro-web-sdk:instrumentation-csp';\n readonly version = VERSION;\n\n constructor() {\n super();\n }\n\n initialize() {\n document.addEventListener('securitypolicyviolation', this.securitypolicyviolationHandler.bind(this));\n }\n\n destroy() {\n document.removeEventListener('securitypolicyviolation', this.securitypolicyviolationHandler);\n }\n\n public securitypolicyviolationHandler(ev: SecurityPolicyViolationEvent) {\n // We must explicitly extract properties because SecurityPolicyViolationEvent\n // properties are getters on the prototype chain, not own enumerable properties.\n // Object.entries() would not capture them.\n const attributes = {\n blockedURI: ev.blockedURI,\n columnNumber: ev.columnNumber,\n disposition: ev.disposition,\n documentURI: ev.documentURI,\n effectiveDirective: ev.effectiveDirective,\n lineNumber: ev.lineNumber,\n originalPolicy: ev.originalPolicy,\n referrer: ev.referrer,\n sample: ev.sample,\n sourceFile: ev.sourceFile,\n statusCode: ev.statusCode,\n violatedDirective: ev.violatedDirective,\n };\n\n this.api.pushEvent('securitypolicyviolation', stringifyObjectValues(attributes));\n }\n}\n"]}
|
|
@@ -3,55 +3,55 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.getErrorDetails = getErrorDetails;
|
|
4
4
|
exports.getDetailsFromErrorArgs = getDetailsFromErrorArgs;
|
|
5
5
|
exports.getDetailsFromConsoleErrorArgs = getDetailsFromConsoleErrorArgs;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
const faro_core_1 = require("@grafana/faro-core");
|
|
7
|
+
const const_1 = require("./const");
|
|
8
|
+
const getValueAndTypeFromMessage_1 = require("./getValueAndTypeFromMessage");
|
|
9
|
+
const stackFrames_1 = require("./stackFrames");
|
|
10
10
|
function getErrorDetails(evt) {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
11
|
+
let value;
|
|
12
|
+
let type;
|
|
13
|
+
let stackFrames = [];
|
|
14
|
+
let isDomErrorRes;
|
|
15
|
+
let isEventRes;
|
|
16
16
|
if ((0, faro_core_1.isErrorEvent)(evt) && evt.error) {
|
|
17
17
|
value = evt.error.message;
|
|
18
18
|
type = evt.error.name;
|
|
19
19
|
stackFrames = (0, stackFrames_1.getStackFramesFromError)(evt.error);
|
|
20
20
|
}
|
|
21
21
|
else if ((isDomErrorRes = (0, faro_core_1.isDomError)(evt)) || (0, faro_core_1.isDomException)(evt)) {
|
|
22
|
-
|
|
23
|
-
type =
|
|
24
|
-
value = message ?
|
|
22
|
+
const { name, message } = evt;
|
|
23
|
+
type = name !== null && name !== void 0 ? name : (isDomErrorRes ? const_1.domErrorType : const_1.domExceptionType);
|
|
24
|
+
value = message ? `${type}: ${message}` : type;
|
|
25
25
|
}
|
|
26
26
|
else if ((0, faro_core_1.isError)(evt)) {
|
|
27
|
+
type = evt.name;
|
|
27
28
|
value = evt.message;
|
|
28
29
|
stackFrames = (0, stackFrames_1.getStackFramesFromError)(evt);
|
|
29
30
|
}
|
|
30
31
|
else if ((0, faro_core_1.isObject)(evt) || (isEventRes = (0, faro_core_1.isEvent)(evt))) {
|
|
31
32
|
type = isEventRes ? evt.constructor.name : undefined;
|
|
32
|
-
value =
|
|
33
|
+
value = `${const_1.objectEventValue} ${Object.keys(evt)}`;
|
|
33
34
|
}
|
|
34
35
|
return [value, type, stackFrames];
|
|
35
36
|
}
|
|
36
37
|
function getDetailsFromErrorArgs(args) {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
var initialStackFrame = (0, stackFrames_1.buildStackFrame)(source, const_1.unknownSymbolString, lineno, colno);
|
|
38
|
+
const [evt, source, lineno, colno, error] = args;
|
|
39
|
+
let value;
|
|
40
|
+
let type;
|
|
41
|
+
let stackFrames = [];
|
|
42
|
+
const eventIsString = (0, faro_core_1.isString)(evt);
|
|
43
|
+
const initialStackFrame = (0, stackFrames_1.buildStackFrame)(source, const_1.unknownSymbolString, lineno, colno);
|
|
44
44
|
if (error || !eventIsString) {
|
|
45
|
-
|
|
45
|
+
[value, type, stackFrames] = getErrorDetails((error !== null && error !== void 0 ? error : evt));
|
|
46
46
|
if (stackFrames.length === 0) {
|
|
47
47
|
stackFrames = [initialStackFrame];
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
50
|
else if (eventIsString) {
|
|
51
|
-
|
|
51
|
+
[value, type] = (0, getValueAndTypeFromMessage_1.getValueAndTypeFromMessage)(evt);
|
|
52
52
|
stackFrames = [initialStackFrame];
|
|
53
53
|
}
|
|
54
|
-
return { value
|
|
54
|
+
return { value, type, stackFrames };
|
|
55
55
|
}
|
|
56
56
|
function getDetailsFromConsoleErrorArgs(args, serializer) {
|
|
57
57
|
if ((0, faro_core_1.isError)(args[0])) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getErrorDetails.js","sourceRoot":"","sources":["../../../../src/instrumentations/errors/getErrorDetails.ts"],"names":[],"mappings":";;AAQA,
|
|
1
|
+
{"version":3,"file":"getErrorDetails.js","sourceRoot":"","sources":["../../../../src/instrumentations/errors/getErrorDetails.ts"],"names":[],"mappings":"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","sourcesContent":["import { isDomError, isDomException, isError, isErrorEvent, isEvent, isObject, isString } from '@grafana/faro-core';\nimport type { ExceptionStackFrame, LogArgsSerializer } from '@grafana/faro-core';\n\nimport { domErrorType, domExceptionType, objectEventValue, unknownSymbolString } from './const';\nimport { getValueAndTypeFromMessage } from './getValueAndTypeFromMessage';\nimport { buildStackFrame, getStackFramesFromError } from './stackFrames';\nimport type { ErrorEvent } from './types';\n\nexport function getErrorDetails(evt: ErrorEvent): [string | undefined, string | undefined, ExceptionStackFrame[]] {\n let value: string | undefined;\n let type: string | undefined;\n let stackFrames: ExceptionStackFrame[] = [];\n let isDomErrorRes: boolean | undefined;\n let isEventRes: boolean | undefined;\n\n if (isErrorEvent(evt) && evt.error) {\n value = evt.error.message;\n type = evt.error.name;\n stackFrames = getStackFramesFromError(evt.error);\n } else if ((isDomErrorRes = isDomError(evt)) || isDomException(evt)) {\n const { name, message } = evt;\n\n type = name ?? (isDomErrorRes ? domErrorType : domExceptionType);\n value = message ? `${type}: ${message}` : type;\n } else if (isError(evt)) {\n type = evt.name;\n value = evt.message;\n stackFrames = getStackFramesFromError(evt);\n } else if (isObject(evt) || (isEventRes = isEvent(evt))) {\n type = isEventRes ? evt.constructor.name : undefined;\n value = `${objectEventValue} ${Object.keys(evt)}`;\n }\n\n return [value, type, stackFrames];\n}\n\nexport interface ErrorDetails {\n value?: string;\n type?: string;\n stackFrames?: ExceptionStackFrame[];\n}\n\nexport function getDetailsFromErrorArgs(args: [any?, ...any[]]): ErrorDetails {\n const [evt, source, lineno, colno, error] = args;\n\n let value: string | undefined;\n let type: string | undefined;\n let stackFrames: ExceptionStackFrame[] = [];\n const eventIsString = isString(evt);\n const initialStackFrame = buildStackFrame(source, unknownSymbolString, lineno, colno);\n\n if (error || !eventIsString) {\n [value, type, stackFrames] = getErrorDetails((error ?? evt) as Error | Event);\n\n if (stackFrames.length === 0) {\n stackFrames = [initialStackFrame];\n }\n } else if (eventIsString) {\n [value, type] = getValueAndTypeFromMessage(evt);\n stackFrames = [initialStackFrame];\n }\n\n return { value, type, stackFrames };\n}\n\nexport function getDetailsFromConsoleErrorArgs(args: [any?, ...any[]], serializer: LogArgsSerializer): ErrorDetails {\n if (isError(args[0])) {\n return getDetailsFromErrorArgs(args);\n } else {\n return { value: serializer(args) };\n }\n}\n"]}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getValueAndTypeFromMessage = getValueAndTypeFromMessage;
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
const faro_core_1 = require("@grafana/faro-core");
|
|
5
|
+
const const_1 = require("./const");
|
|
6
6
|
function getValueAndTypeFromMessage(message) {
|
|
7
7
|
var _a, _b;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
const groups = message.match(const_1.valueTypeRegex);
|
|
9
|
+
const type = (_a = groups === null || groups === void 0 ? void 0 : groups[1]) !== null && _a !== void 0 ? _a : faro_core_1.defaultExceptionType;
|
|
10
|
+
const value = (_b = groups === null || groups === void 0 ? void 0 : groups[2]) !== null && _b !== void 0 ? _b : message;
|
|
11
11
|
return [value, type];
|
|
12
12
|
}
|
|
13
13
|
//# sourceMappingURL=getValueAndTypeFromMessage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getValueAndTypeFromMessage.js","sourceRoot":"","sources":["../../../../src/instrumentations/errors/getValueAndTypeFromMessage.ts"],"names":[],"mappings":";;AAIA,gEAOC;AAXD,
|
|
1
|
+
{"version":3,"file":"getValueAndTypeFromMessage.js","sourceRoot":"","sources":["../../../../src/instrumentations/errors/getValueAndTypeFromMessage.ts"],"names":[],"mappings":";;AAIA,gEAOC;AAXD,kDAA0D;AAE1D,mCAAyC;AAEzC,SAAgB,0BAA0B,CAAC,OAAe;;IACxD,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,sBAAc,CAAC,CAAC;IAE7C,MAAM,IAAI,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,CAAC,CAAC,mCAAI,gCAAoB,CAAC;IACjD,MAAM,KAAK,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,CAAC,CAAC,mCAAI,OAAO,CAAC;IAErC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACvB,CAAC","sourcesContent":["import { defaultExceptionType } from '@grafana/faro-core';\n\nimport { valueTypeRegex } from './const';\n\nexport function getValueAndTypeFromMessage(message: string): [string, string] {\n const groups = message.match(valueTypeRegex);\n\n const type = groups?.[1] ?? defaultExceptionType;\n const value = groups?.[2] ?? message;\n\n return [value, type];\n}\n"]}
|
|
@@ -1,38 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __extends = (this && this.__extends) || (function () {
|
|
3
|
-
var extendStatics = function (d, b) {
|
|
4
|
-
extendStatics = Object.setPrototypeOf ||
|
|
5
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
-
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
-
return extendStatics(d, b);
|
|
8
|
-
};
|
|
9
|
-
return function (d, b) {
|
|
10
|
-
if (typeof b !== "function" && b !== null)
|
|
11
|
-
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
-
extendStatics(d, b);
|
|
13
|
-
function __() { this.constructor = d; }
|
|
14
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
-
};
|
|
16
|
-
})();
|
|
17
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
3
|
exports.ErrorsInstrumentation = void 0;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
_this.version = faro_core_1.VERSION;
|
|
28
|
-
return _this;
|
|
4
|
+
const faro_core_1 = require("@grafana/faro-core");
|
|
5
|
+
const registerOnerror_1 = require("./registerOnerror");
|
|
6
|
+
const registerOnunhandledrejection_1 = require("./registerOnunhandledrejection");
|
|
7
|
+
class ErrorsInstrumentation extends faro_core_1.BaseInstrumentation {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
this.name = '@grafana/faro-web-sdk:instrumentation-errors';
|
|
11
|
+
this.version = faro_core_1.VERSION;
|
|
29
12
|
}
|
|
30
|
-
|
|
13
|
+
initialize() {
|
|
31
14
|
this.logDebug('Initializing');
|
|
32
15
|
(0, registerOnerror_1.registerOnerror)(this.api);
|
|
33
16
|
(0, registerOnunhandledrejection_1.registerOnunhandledrejection)(this.api);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
}(faro_core_1.BaseInstrumentation));
|
|
17
|
+
}
|
|
18
|
+
}
|
|
37
19
|
exports.ErrorsInstrumentation = ErrorsInstrumentation;
|
|
38
20
|
//# sourceMappingURL=instrumentation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../../../src/instrumentations/errors/instrumentation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../../../src/instrumentations/errors/instrumentation.ts"],"names":[],"mappings":";;;AAAA,kDAAkE;AAElE,uDAAoD;AACpD,iFAA8E;AAE9E,MAAa,qBAAsB,SAAQ,+BAAmB;IAA9D;;QACW,SAAI,GAAG,8CAA8C,CAAC;QACtD,YAAO,GAAG,mBAAO,CAAC;IAS7B,CAAC;IAPC,UAAU;QACR,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QAE9B,IAAA,iCAAe,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE1B,IAAA,2DAA4B,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC;CACF;AAXD,sDAWC","sourcesContent":["import { BaseInstrumentation, VERSION } from '@grafana/faro-core';\n\nimport { registerOnerror } from './registerOnerror';\nimport { registerOnunhandledrejection } from './registerOnunhandledrejection';\n\nexport class ErrorsInstrumentation extends BaseInstrumentation {\n readonly name = '@grafana/faro-web-sdk:instrumentation-errors';\n readonly version = VERSION;\n\n initialize(): void {\n this.logDebug('Initializing');\n\n registerOnerror(this.api);\n\n registerOnunhandledrejection(this.api);\n }\n}\n"]}
|
|
@@ -1,19 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.registerOnerror = registerOnerror;
|
|
4
|
-
|
|
4
|
+
const getErrorDetails_1 = require("./getErrorDetails");
|
|
5
5
|
function registerOnerror(api) {
|
|
6
|
-
|
|
7
|
-
window.onerror =
|
|
8
|
-
var args = [];
|
|
9
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
10
|
-
args[_i] = arguments[_i];
|
|
11
|
-
}
|
|
6
|
+
const oldOnerror = window.onerror;
|
|
7
|
+
window.onerror = (...args) => {
|
|
12
8
|
try {
|
|
13
|
-
|
|
14
|
-
|
|
9
|
+
const { value, type, stackFrames } = (0, getErrorDetails_1.getDetailsFromErrorArgs)(args);
|
|
10
|
+
const originalError = args[4];
|
|
15
11
|
if (value) {
|
|
16
|
-
|
|
12
|
+
const options = { type, stackFrames };
|
|
17
13
|
if (originalError != null) {
|
|
18
14
|
options.originalError = originalError;
|
|
19
15
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registerOnerror.js","sourceRoot":"","sources":["../../../../src/instrumentations/errors/registerOnerror.ts"],"names":[],"mappings":";;AAIA,0CAqBC;AAvBD,
|
|
1
|
+
{"version":3,"file":"registerOnerror.js","sourceRoot":"","sources":["../../../../src/instrumentations/errors/registerOnerror.ts"],"names":[],"mappings":";;AAIA,0CAqBC;AAvBD,uDAA4D;AAE5D,SAAgB,eAAe,CAAC,GAAQ;IACtC,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC;IAElC,MAAM,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE;QAC3B,IAAI,CAAC;YACH,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,IAAA,yCAAuB,EAAC,IAAI,CAAC,CAAC;YACnE,MAAM,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAE9B,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,OAAO,GAAqB,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;gBAExD,IAAI,aAAa,IAAI,IAAI,EAAE,CAAC;oBAC1B,OAAO,CAAC,aAAa,GAAG,aAAa,CAAC;gBACxC,CAAC;gBAED,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAClC,CAAC;IACH,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import type { API, PushErrorOptions } from '@grafana/faro-core';\n\nimport { getDetailsFromErrorArgs } from './getErrorDetails';\n\nexport function registerOnerror(api: API): void {\n const oldOnerror = window.onerror;\n\n window.onerror = (...args) => {\n try {\n const { value, type, stackFrames } = getDetailsFromErrorArgs(args);\n const originalError = args[4];\n\n if (value) {\n const options: PushErrorOptions = { type, stackFrames };\n\n if (originalError != null) {\n options.originalError = originalError;\n }\n\n api.pushError(new Error(value), options);\n }\n } finally {\n oldOnerror?.apply(window, args);\n }\n };\n}\n"]}
|
|
@@ -2,34 +2,33 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.registerOnunhandledrejection = registerOnunhandledrejection;
|
|
4
4
|
exports.__resetOnunhandledrejectionForTests = __resetOnunhandledrejectionForTests;
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
const faro_core_1 = require("@grafana/faro-core");
|
|
6
|
+
const const_1 = require("./const");
|
|
7
|
+
const getErrorDetails_1 = require("./getErrorDetails");
|
|
8
8
|
// Store handlers for cleanup in tests
|
|
9
|
-
|
|
9
|
+
const registeredHandlers = [];
|
|
10
10
|
function registerOnunhandledrejection(api) {
|
|
11
|
-
|
|
12
|
-
var _a;
|
|
13
|
-
|
|
14
|
-
var error = evt;
|
|
11
|
+
const handler = (evt) => {
|
|
12
|
+
var _a, _b;
|
|
13
|
+
let error = evt;
|
|
15
14
|
if (error.reason) {
|
|
16
15
|
error = evt.reason;
|
|
17
16
|
}
|
|
18
|
-
else if ((
|
|
19
|
-
error = (
|
|
17
|
+
else if ((_a = evt.detail) === null || _a === void 0 ? void 0 : _a.reason) {
|
|
18
|
+
error = (_b = evt.detail) === null || _b === void 0 ? void 0 : _b.reason;
|
|
20
19
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
let value;
|
|
21
|
+
let type;
|
|
22
|
+
let stackFrames = [];
|
|
24
23
|
if ((0, faro_core_1.isPrimitive)(error)) {
|
|
25
|
-
value =
|
|
24
|
+
value = `${const_1.primitiveUnhandledValue} ${String(error)}`;
|
|
26
25
|
type = const_1.primitiveUnhandledType;
|
|
27
26
|
}
|
|
28
27
|
else {
|
|
29
|
-
|
|
28
|
+
[value, type, stackFrames] = (0, getErrorDetails_1.getErrorDetails)(error);
|
|
30
29
|
}
|
|
31
30
|
if (value) {
|
|
32
|
-
api.pushError(new Error(value), { type
|
|
31
|
+
api.pushError(new Error(value), { type, stackFrames });
|
|
33
32
|
}
|
|
34
33
|
};
|
|
35
34
|
window.addEventListener('unhandledrejection', handler);
|
|
@@ -37,7 +36,7 @@ function registerOnunhandledrejection(api) {
|
|
|
37
36
|
}
|
|
38
37
|
// Test-only utility to reset state between tests
|
|
39
38
|
function __resetOnunhandledrejectionForTests() {
|
|
40
|
-
registeredHandlers.forEach(
|
|
39
|
+
registeredHandlers.forEach((handler) => {
|
|
41
40
|
window.removeEventListener('unhandledrejection', handler);
|
|
42
41
|
});
|
|
43
42
|
registeredHandlers.length = 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registerOnunhandledrejection.js","sourceRoot":"","sources":["../../../../src/instrumentations/errors/registerOnunhandledrejection.ts"],"names":[],"mappings":";;AAUA,oEA2BC;AAGD,kFAKC;AA7CD,
|
|
1
|
+
{"version":3,"file":"registerOnunhandledrejection.js","sourceRoot":"","sources":["../../../../src/instrumentations/errors/registerOnunhandledrejection.ts"],"names":[],"mappings":";;AAUA,oEA2BC;AAGD,kFAKC;AA7CD,kDAAiD;AAGjD,mCAA0E;AAC1E,uDAAoD;AAGpD,sCAAsC;AACtC,MAAM,kBAAkB,GAAwD,EAAE,CAAC;AAEnF,SAAgB,4BAA4B,CAAC,GAAQ;IACnD,MAAM,OAAO,GAAG,CAAC,GAAkC,EAAE,EAAE;;QACrD,IAAI,KAAK,GAAG,GAAG,CAAC;QAEhB,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC;QACrB,CAAC;aAAM,IAAI,MAAA,GAAG,CAAC,MAAM,0CAAE,MAAM,EAAE,CAAC;YAC9B,KAAK,GAAG,MAAA,GAAG,CAAC,MAAM,0CAAE,MAAM,CAAC;QAC7B,CAAC;QAED,IAAI,KAAyB,CAAC;QAC9B,IAAI,IAAwB,CAAC;QAC7B,IAAI,WAAW,GAA0B,EAAE,CAAC;QAC5C,IAAI,IAAA,uBAAW,EAAC,KAAK,CAAC,EAAE,CAAC;YACvB,KAAK,GAAG,GAAG,+BAAuB,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACtD,IAAI,GAAG,8BAAsB,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,CAAC,KAAK,EAAE,IAAI,EAAE,WAAW,CAAC,GAAG,IAAA,iCAAe,EAAC,KAAK,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,KAAK,EAAE,CAAC;YACV,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;QACzD,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;IACvD,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC;AAED,iDAAiD;AACjD,SAAgB,mCAAmC;IACjD,kBAAkB,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QACrC,MAAM,CAAC,mBAAmB,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IACH,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC;AAChC,CAAC","sourcesContent":["import { isPrimitive } from '@grafana/faro-core';\nimport type { API, ExceptionStackFrame } from '@grafana/faro-core';\n\nimport { primitiveUnhandledType, primitiveUnhandledValue } from './const';\nimport { getErrorDetails } from './getErrorDetails';\nimport type { ExtendedPromiseRejectionEvent } from './types';\n\n// Store handlers for cleanup in tests\nconst registeredHandlers: Array<(evt: ExtendedPromiseRejectionEvent) => void> = [];\n\nexport function registerOnunhandledrejection(api: API): void {\n const handler = (evt: ExtendedPromiseRejectionEvent) => {\n let error = evt;\n\n if (error.reason) {\n error = evt.reason;\n } else if (evt.detail?.reason) {\n error = evt.detail?.reason;\n }\n\n let value: string | undefined;\n let type: string | undefined;\n let stackFrames: ExceptionStackFrame[] = [];\n if (isPrimitive(error)) {\n value = `${primitiveUnhandledValue} ${String(error)}`;\n type = primitiveUnhandledType;\n } else {\n [value, type, stackFrames] = getErrorDetails(error);\n }\n\n if (value) {\n api.pushError(new Error(value), { type, stackFrames });\n }\n };\n\n window.addEventListener('unhandledrejection', handler);\n registeredHandlers.push(handler);\n}\n\n// Test-only utility to reset state between tests\nexport function __resetOnunhandledrejectionForTests(): void {\n registeredHandlers.forEach((handler) => {\n window.removeEventListener('unhandledrejection', handler);\n });\n registeredHandlers.length = 0;\n}\n"]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.buildStackFrame = buildStackFrame;
|
|
4
|
-
|
|
4
|
+
const const_1 = require("./const");
|
|
5
5
|
function buildStackFrame(filename, func, lineno, colno) {
|
|
6
|
-
|
|
6
|
+
const stackFrame = {
|
|
7
7
|
filename: filename || document.location.href,
|
|
8
8
|
function: func || const_1.unknownSymbolString,
|
|
9
9
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildStackFrame.js","sourceRoot":"","sources":["../../../../../src/instrumentations/errors/stackFrames/buildStackFrame.ts"],"names":[],"mappings":";;AAIA,0CAoBC;AAtBD,
|
|
1
|
+
{"version":3,"file":"buildStackFrame.js","sourceRoot":"","sources":["../../../../../src/instrumentations/errors/stackFrames/buildStackFrame.ts"],"names":[],"mappings":";;AAIA,0CAoBC;AAtBD,mCAA8C;AAE9C,SAAgB,eAAe,CAC7B,QAA4B,EAC5B,IAAwB,EACxB,MAA0B,EAC1B,KAAyB;IAEzB,MAAM,UAAU,GAAwB;QACtC,QAAQ,EAAE,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI;QAC5C,QAAQ,EAAE,IAAI,IAAI,2BAAmB;KACtC,CAAC;IAEF,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;IAC7B,CAAC;IAED,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC","sourcesContent":["import type { ExceptionStackFrame } from '@grafana/faro-core';\n\nimport { unknownSymbolString } from './const';\n\nexport function buildStackFrame(\n filename: string | undefined,\n func: string | undefined,\n lineno: number | undefined,\n colno: number | undefined\n): ExceptionStackFrame {\n const stackFrame: ExceptionStackFrame = {\n filename: filename || document.location.href,\n function: func || unknownSymbolString,\n };\n\n if (lineno !== undefined) {\n stackFrame.lineno = lineno;\n }\n\n if (colno !== undefined) {\n stackFrame.colno = colno;\n }\n\n return stackFrame;\n}\n"]}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getDataFromSafariExtensions = getDataFromSafariExtensions;
|
|
4
|
-
|
|
4
|
+
const const_1 = require("./const");
|
|
5
5
|
function getDataFromSafariExtensions(func, filename) {
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
const isSafariExtension = func === null || func === void 0 ? void 0 : func.includes(const_1.safariExtensionString);
|
|
7
|
+
const isSafariWebExtension = !isSafariExtension && (func === null || func === void 0 ? void 0 : func.includes(const_1.safariWebExtensionString));
|
|
8
8
|
if (!isSafariExtension && !isSafariWebExtension) {
|
|
9
9
|
return [func, filename];
|
|
10
10
|
}
|
|
11
11
|
return [
|
|
12
12
|
(func === null || func === void 0 ? void 0 : func.includes(const_1.atString)) ? func.split(const_1.atString)[0] : func,
|
|
13
|
-
isSafariExtension ?
|
|
13
|
+
isSafariExtension ? `${const_1.safariExtensionString}:${filename}` : `${const_1.safariWebExtensionString}:${filename}`,
|
|
14
14
|
];
|
|
15
15
|
}
|
|
16
16
|
//# sourceMappingURL=getDataFromSafariExtensions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getDataFromSafariExtensions.js","sourceRoot":"","sources":["../../../../../src/instrumentations/errors/stackFrames/getDataFromSafariExtensions.ts"],"names":[],"mappings":";;AAEA,kEAeC;AAjBD,
|
|
1
|
+
{"version":3,"file":"getDataFromSafariExtensions.js","sourceRoot":"","sources":["../../../../../src/instrumentations/errors/stackFrames/getDataFromSafariExtensions.ts"],"names":[],"mappings":";;AAEA,kEAeC;AAjBD,mCAAoF;AAEpF,SAAgB,2BAA2B,CACzC,IAAwB,EACxB,QAA4B;IAE5B,MAAM,iBAAiB,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,6BAAqB,CAAC,CAAC;IAChE,MAAM,oBAAoB,GAAG,CAAC,iBAAiB,KAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,gCAAwB,CAAC,CAAA,CAAC;IAE5F,IAAI,CAAC,iBAAiB,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAChD,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC1B,CAAC;IAED,OAAO;QACL,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,gBAAQ,CAAC,EAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;QACzD,iBAAiB,CAAC,CAAC,CAAC,GAAG,6BAAqB,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,gCAAwB,IAAI,QAAQ,EAAE;KACvG,CAAC;AACJ,CAAC","sourcesContent":["import { atString, safariExtensionString, safariWebExtensionString } from './const';\n\nexport function getDataFromSafariExtensions(\n func: string | undefined,\n filename: string | undefined\n): [string | undefined, string | undefined] {\n const isSafariExtension = func?.includes(safariExtensionString);\n const isSafariWebExtension = !isSafariExtension && func?.includes(safariWebExtensionString);\n\n if (!isSafariExtension && !isSafariWebExtension) {\n return [func, filename];\n }\n\n return [\n func?.includes(atString) ? func.split(atString)[0] : func,\n isSafariExtension ? `${safariExtensionString}:${filename}` : `${safariWebExtensionString}:${filename}`,\n ];\n}\n"]}
|