@coralogix/browser 1.2.40 → 1.4.4
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 +76 -0
- package/package.json +1 -1
- package/src/constants.d.ts +9 -3
- package/src/constants.js +11 -3
- package/src/constants.js.map +1 -1
- package/src/index.js +37 -3
- package/src/index.js.map +1 -1
- package/src/instrumentations/CoralogixResourcesInstrumentation.d.ts +1 -0
- package/src/instrumentations/CoralogixResourcesInstrumentation.js +14 -16
- package/src/instrumentations/CoralogixResourcesInstrumentation.js.map +1 -1
- package/src/instrumentations/CoralogixWebVitalsInstrumentation.js +12 -2
- package/src/instrumentations/CoralogixWebVitalsInstrumentation.js.map +1 -1
- package/src/instrumentations/{CoralogixCustomMeasurementInstrumentation.d.ts → custom-measurements/CoralogixCustomMeasurementInstrumentation.d.ts} +2 -2
- package/src/instrumentations/{CoralogixCustomMeasurementInstrumentation.js → custom-measurements/CoralogixCustomMeasurementInstrumentation.js} +7 -4
- package/src/instrumentations/custom-measurements/CoralogixCustomMeasurementInstrumentation.js.map +1 -0
- package/src/instrumentations/custom-measurements/custom-measurements.types.d.ts +5 -0
- package/src/instrumentations/custom-measurements/custom-measurements.types.js +2 -0
- package/src/instrumentations/custom-measurements/custom-measurements.types.js.map +1 -0
- package/src/instrumentations/custom-measurements/index.d.ts +3 -0
- package/src/instrumentations/custom-measurements/index.js +4 -0
- package/src/instrumentations/custom-measurements/index.js.map +1 -0
- package/src/instrumentations/custom-measurements/timeMeasurementTracker.d.ts +9 -0
- package/src/instrumentations/custom-measurements/timeMeasurementTracker.js +38 -0
- package/src/instrumentations/custom-measurements/timeMeasurementTracker.js.map +1 -0
- package/src/instrumentations/{CoralogixFetchInstrumentation.d.ts → network/CoralogixFetchInstrumentation.d.ts} +5 -1
- package/src/instrumentations/network/CoralogixFetchInstrumentation.js +99 -0
- package/src/instrumentations/network/CoralogixFetchInstrumentation.js.map +1 -0
- package/src/instrumentations/{CoralogixXhrInstrumentation.d.ts → network/CoralogixXhrInstrumentation.d.ts} +4 -0
- package/src/instrumentations/network/CoralogixXhrInstrumentation.js +57 -0
- package/src/instrumentations/network/CoralogixXhrInstrumentation.js.map +1 -0
- package/src/instrumentations/network/HeadersManager.d.ts +5 -0
- package/src/instrumentations/network/HeadersManager.js +42 -0
- package/src/instrumentations/network/HeadersManager.js.map +1 -0
- package/src/instrumentations/network/NetworkDataManager.d.ts +11 -0
- package/src/instrumentations/network/NetworkDataManager.js +87 -0
- package/src/instrumentations/network/NetworkDataManager.js.map +1 -0
- package/src/instrumentations/network/constants.d.ts +6 -0
- package/src/instrumentations/network/constants.js +7 -0
- package/src/instrumentations/network/constants.js.map +1 -0
- package/src/instrumentations/screenshot/CoralogixScreenshotInstrumentation.d.ts +8 -0
- package/src/instrumentations/screenshot/CoralogixScreenshotInstrumentation.js +28 -0
- package/src/instrumentations/screenshot/CoralogixScreenshotInstrumentation.js.map +1 -0
- package/src/instrumentations/screenshot/screenshot.utils.d.ts +2 -0
- package/src/instrumentations/screenshot/screenshot.utils.js +3 -0
- package/src/instrumentations/screenshot/screenshot.utils.js.map +1 -0
- package/src/processors/CoralogixSnapshotSpanProcessor.js +3 -0
- package/src/processors/CoralogixSnapshotSpanProcessor.js.map +1 -1
- package/src/processors/CoralogixSpanMapProcessor.js +19 -6
- package/src/processors/CoralogixSpanMapProcessor.js.map +1 -1
- package/src/session/session.model.d.ts +3 -1
- package/src/session/sessionManager.js +4 -4
- package/src/session/sessionManager.js.map +1 -1
- package/src/session/sessionRecorder.d.ts +6 -1
- package/src/session/sessionRecorder.js +93 -58
- package/src/session/sessionRecorder.js.map +1 -1
- package/src/snapshot/snapshot.consts.js +1 -0
- package/src/snapshot/snapshot.consts.js.map +1 -1
- package/src/snapshot/snapshot.model.d.ts +1 -0
- package/src/types.d.ts +41 -3
- package/src/types.js +1 -0
- package/src/types.js.map +1 -1
- package/src/utils/all.js +5 -6
- package/src/utils/all.js.map +1 -1
- package/src/version.d.ts +1 -1
- package/src/version.js +1 -1
- package/src/version.js.map +1 -1
- package/src/workers/session-recording-worker.js +13 -4
- package/src/workers/session-recording-worker.js.map +1 -1
- package/src/instrumentations/CoralogixCustomMeasurementInstrumentation.js.map +0 -1
- package/src/instrumentations/CoralogixFetchInstrumentation.js +0 -30
- package/src/instrumentations/CoralogixFetchInstrumentation.js.map +0 -1
- package/src/instrumentations/CoralogixXhrInstrumentation.js +0 -27
- package/src/instrumentations/CoralogixXhrInstrumentation.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timeMeasurementTracker.js","sourceRoot":"","sources":["../../../../../../libs/browser/src/instrumentations/custom-measurements/timeMeasurementTracker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAIhE,MAAM,OAAO,sBAAsB;IAAnC;QACU,iBAAY,GAAoC,IAAI,GAAG,EAAE,CAAC;IAuCpE,CAAC;IArCC,gBAAgB,CAAC,GAAW,EAAE,MAA2B;QACvD,IAAI,CAAC,6BAA6B,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE;YAC7C,IAAI,CAAC,QAAQ,CAAC,8BAA8B,GAAG,IAAI,CAAC,CAAC;YACrD,OAAO;SACR;QAED,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,cAAc,CAAC,GAAW;QACxB,IAAI,CAAC,6BAA6B,EAAE,CAAC;QAErC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE;YAC9C,IAAI,CAAC,QAAQ,CAAC,8BAA8B,GAAG,IAAI,CAAC,CAAC;YACrD,OAAO,SAAS,CAAC;SAClB;QAED,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;QAC1D,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;YAChC,MAAM;SACP,CAAC;IACJ,CAAC;IAEO,6BAA6B;QACnC,IAAI,iBAAiB,EAAE,CAAC,YAAY,EAAE;YACpC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;SAC3B;IACH,CAAC;IAEO,QAAQ,CAAC,OAAe;QAC9B,IAAI,YAAY,EAAE,CAAC,KAAK,EAAE;YACxB,OAAO,CAAC,KAAK,CAAC,2BAA2B,OAAO,EAAE,CAAC,CAAC;SACrD;IACH,CAAC;CACF"}
|
|
@@ -3,6 +3,10 @@ export declare enum FetchSource {
|
|
|
3
3
|
FETCH = "fetch"
|
|
4
4
|
}
|
|
5
5
|
export declare class CoralogixFetchInstrumentation extends FetchInstrumentation {
|
|
6
|
+
private networkDataManager;
|
|
7
|
+
private headersManager;
|
|
6
8
|
constructor(config: FetchInstrumentationConfig);
|
|
7
|
-
|
|
9
|
+
private setNetworkSpanAttributes;
|
|
10
|
+
private setRequestAttributes;
|
|
11
|
+
private setResponseAttributes;
|
|
8
12
|
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import { FetchInstrumentation, } from '@opentelemetry/instrumentation-fetch';
|
|
3
|
+
import { CoralogixAttributes } from '../../constants';
|
|
4
|
+
import { CoralogixEventType } from '../../types';
|
|
5
|
+
import { CoralogixLogSeverity } from '../../types-external';
|
|
6
|
+
import { propagateTraceHeaderCorsUrls } from '../../otel/CoralogixPropgator';
|
|
7
|
+
import { isNetworkError } from '../../utils';
|
|
8
|
+
import { NetworkDataManager } from './NetworkDataManager';
|
|
9
|
+
import { getSdkConfig } from '../../helpers';
|
|
10
|
+
import { HeadersManager } from './HeadersManager';
|
|
11
|
+
import { NetworkInstrumentationAttributes } from './constants';
|
|
12
|
+
export var FetchSource;
|
|
13
|
+
(function (FetchSource) {
|
|
14
|
+
FetchSource["FETCH"] = "fetch";
|
|
15
|
+
})(FetchSource || (FetchSource = {}));
|
|
16
|
+
export class CoralogixFetchInstrumentation extends FetchInstrumentation {
|
|
17
|
+
constructor(config) {
|
|
18
|
+
propagateTraceHeaderCorsUrls(config);
|
|
19
|
+
config.applyCustomAttributesOnSpan = (span, request, result) => {
|
|
20
|
+
this.setNetworkSpanAttributes(span, request, result);
|
|
21
|
+
};
|
|
22
|
+
super(config);
|
|
23
|
+
this.networkDataManager = new NetworkDataManager();
|
|
24
|
+
this.headersManager = new HeadersManager();
|
|
25
|
+
}
|
|
26
|
+
setNetworkSpanAttributes(span, request, response) {
|
|
27
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
28
|
+
const { status } = response;
|
|
29
|
+
const { networkExtraConfig } = getSdkConfig();
|
|
30
|
+
const url = span.attributes['http.url'] ||
|
|
31
|
+
'';
|
|
32
|
+
const resolvedConfig = this.networkDataManager.resolveConfigForUrl(url, networkExtraConfig);
|
|
33
|
+
if (resolvedConfig) {
|
|
34
|
+
yield this.setRequestAttributes(span, request, resolvedConfig);
|
|
35
|
+
yield this.setResponseAttributes(span, response, resolvedConfig);
|
|
36
|
+
}
|
|
37
|
+
span.setAttributes({
|
|
38
|
+
[CoralogixAttributes.SEVERITY]: isNetworkError(status)
|
|
39
|
+
? CoralogixLogSeverity.Error
|
|
40
|
+
: CoralogixLogSeverity.Info,
|
|
41
|
+
[CoralogixAttributes.EVENT_TYPE]: CoralogixEventType.NETWORK_REQUEST,
|
|
42
|
+
[CoralogixAttributes.SOURCE]: FetchSource.FETCH,
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
setRequestAttributes(span, request, networkExtraConfig) {
|
|
47
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
48
|
+
const { reqHeaders, collectReqPayload } = networkExtraConfig;
|
|
49
|
+
try {
|
|
50
|
+
const requestPayload = collectReqPayload
|
|
51
|
+
? yield this.networkDataManager.stringifyRequestBody(request)
|
|
52
|
+
: undefined;
|
|
53
|
+
const sanitizedHeaders = (reqHeaders === null || reqHeaders === void 0 ? void 0 : reqHeaders.length)
|
|
54
|
+
? this.headersManager.filterHeaders(request.headers, reqHeaders)
|
|
55
|
+
: undefined;
|
|
56
|
+
if (requestPayload)
|
|
57
|
+
span[NetworkInstrumentationAttributes.REQUEST_PAYLOAD] = requestPayload;
|
|
58
|
+
if (sanitizedHeaders === null || sanitizedHeaders === void 0 ? void 0 : sanitizedHeaders.size) {
|
|
59
|
+
span[NetworkInstrumentationAttributes.REQUEST_HEADERS] =
|
|
60
|
+
Object.fromEntries(sanitizedHeaders);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
if (getSdkConfig().debug) {
|
|
65
|
+
console.debug('Error setting request attributes on span:', error);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
setResponseAttributes(span, result, networkExtraConfig) {
|
|
71
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
72
|
+
const { resHeaders, collectResPayload } = networkExtraConfig;
|
|
73
|
+
if (result instanceof Response) {
|
|
74
|
+
try {
|
|
75
|
+
const responsePayload = collectResPayload
|
|
76
|
+
? yield this.networkDataManager.stringifyResponseBody(result)
|
|
77
|
+
: undefined;
|
|
78
|
+
const sanitizedHeaders = (resHeaders === null || resHeaders === void 0 ? void 0 : resHeaders.length)
|
|
79
|
+
? this.headersManager.filterHeaders(result.headers, resHeaders)
|
|
80
|
+
: undefined;
|
|
81
|
+
if (responsePayload) {
|
|
82
|
+
span[NetworkInstrumentationAttributes.RESPONSE_PAYLOAD] =
|
|
83
|
+
responsePayload;
|
|
84
|
+
}
|
|
85
|
+
if (sanitizedHeaders === null || sanitizedHeaders === void 0 ? void 0 : sanitizedHeaders.size) {
|
|
86
|
+
span[NetworkInstrumentationAttributes.RESPONSE_HEADERS] =
|
|
87
|
+
Object.fromEntries(sanitizedHeaders);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
if (getSdkConfig().debug) {
|
|
92
|
+
console.debug('Error setting request attributes on span:', error);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=CoralogixFetchInstrumentation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CoralogixFetchInstrumentation.js","sourceRoot":"","sources":["../../../../../../libs/browser/src/instrumentations/network/CoralogixFetchInstrumentation.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,5 +3,9 @@ export declare enum XHRSource {
|
|
|
3
3
|
XHR = "xhr"
|
|
4
4
|
}
|
|
5
5
|
export declare class CoralogixXhrInstrumentation extends XMLHttpRequestInstrumentation {
|
|
6
|
+
private networkDataManager;
|
|
7
|
+
private headersManager;
|
|
6
8
|
constructor(config: XMLHttpRequestInstrumentationConfig);
|
|
9
|
+
private setNetworkSpanAttributes;
|
|
10
|
+
private setResponseAttributes;
|
|
7
11
|
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { XMLHttpRequestInstrumentation, } from '@opentelemetry/instrumentation-xml-http-request';
|
|
2
|
+
import { CoralogixAttributes } from '../../constants';
|
|
3
|
+
import { CoralogixEventType } from '../../types';
|
|
4
|
+
import { CoralogixLogSeverity } from '../../types-external';
|
|
5
|
+
import { isNetworkError } from '../../utils';
|
|
6
|
+
import { propagateTraceHeaderCorsUrls } from '../../otel/CoralogixPropgator';
|
|
7
|
+
import { NetworkDataManager } from './NetworkDataManager';
|
|
8
|
+
import { getSdkConfig } from '../../helpers';
|
|
9
|
+
import { HeadersManager } from './HeadersManager';
|
|
10
|
+
import { NetworkInstrumentationAttributes } from './constants';
|
|
11
|
+
export var XHRSource;
|
|
12
|
+
(function (XHRSource) {
|
|
13
|
+
XHRSource["XHR"] = "xhr";
|
|
14
|
+
})(XHRSource || (XHRSource = {}));
|
|
15
|
+
export class CoralogixXhrInstrumentation extends XMLHttpRequestInstrumentation {
|
|
16
|
+
constructor(config) {
|
|
17
|
+
propagateTraceHeaderCorsUrls(config);
|
|
18
|
+
config.applyCustomAttributesOnSpan = (span, xhr) => {
|
|
19
|
+
this.setNetworkSpanAttributes(span, xhr);
|
|
20
|
+
};
|
|
21
|
+
super(config);
|
|
22
|
+
this.networkDataManager = new NetworkDataManager();
|
|
23
|
+
this.headersManager = new HeadersManager();
|
|
24
|
+
}
|
|
25
|
+
setNetworkSpanAttributes(span, xhr) {
|
|
26
|
+
const { status } = xhr;
|
|
27
|
+
const { networkExtraConfig } = getSdkConfig();
|
|
28
|
+
const resolvedConfig = this.networkDataManager.resolveConfigForUrl(xhr.responseURL, networkExtraConfig);
|
|
29
|
+
span.setAttributes({
|
|
30
|
+
[CoralogixAttributes.SEVERITY]: isNetworkError(status)
|
|
31
|
+
? CoralogixLogSeverity.Error
|
|
32
|
+
: CoralogixLogSeverity.Info,
|
|
33
|
+
[CoralogixAttributes.EVENT_TYPE]: CoralogixEventType.NETWORK_REQUEST,
|
|
34
|
+
[CoralogixAttributes.SOURCE]: XHRSource.XHR,
|
|
35
|
+
});
|
|
36
|
+
if (resolvedConfig) {
|
|
37
|
+
this.setResponseAttributes(span, xhr, resolvedConfig);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
setResponseAttributes(span, xhr, resolvedConfig) {
|
|
41
|
+
const { resHeaders, collectResPayload } = resolvedConfig;
|
|
42
|
+
const responsePayload = collectResPayload
|
|
43
|
+
? this.networkDataManager.truncateIfExceedsLimit(xhr.responseText)
|
|
44
|
+
: undefined;
|
|
45
|
+
const sanitizedHeaders = (resHeaders === null || resHeaders === void 0 ? void 0 : resHeaders.length)
|
|
46
|
+
? this.headersManager.filterHeaders(xhr.getAllResponseHeaders(), resHeaders)
|
|
47
|
+
: undefined;
|
|
48
|
+
if (responsePayload) {
|
|
49
|
+
span[NetworkInstrumentationAttributes.RESPONSE_PAYLOAD] = responsePayload;
|
|
50
|
+
}
|
|
51
|
+
if (sanitizedHeaders === null || sanitizedHeaders === void 0 ? void 0 : sanitizedHeaders.size) {
|
|
52
|
+
span[NetworkInstrumentationAttributes.RESPONSE_HEADERS] =
|
|
53
|
+
Object.fromEntries(sanitizedHeaders);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=CoralogixXhrInstrumentation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CoralogixXhrInstrumentation.js","sourceRoot":"","sources":["../../../../../../libs/browser/src/instrumentations/network/CoralogixXhrInstrumentation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
export class HeadersManager {
|
|
2
|
+
filterHeaders(headersInit, allowedKeys = []) {
|
|
3
|
+
if (!headersInit) {
|
|
4
|
+
return new Map();
|
|
5
|
+
}
|
|
6
|
+
const normalized = this.normalizeHeaders(headersInit);
|
|
7
|
+
const filteredHeaders = new Map();
|
|
8
|
+
allowedKeys.forEach((headerKey) => {
|
|
9
|
+
const normalizedKey = headerKey.toLowerCase();
|
|
10
|
+
if (normalized.has(normalizedKey)) {
|
|
11
|
+
filteredHeaders.set(headerKey, normalized.get(normalizedKey));
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
return filteredHeaders;
|
|
15
|
+
}
|
|
16
|
+
normalizeHeaders(headersInit) {
|
|
17
|
+
if (typeof headersInit === 'string') {
|
|
18
|
+
return this.normalizeHeadersFromString(headersInit);
|
|
19
|
+
}
|
|
20
|
+
const headers = new Headers(headersInit);
|
|
21
|
+
const headersMap = new Map();
|
|
22
|
+
headers.forEach((value, key) => {
|
|
23
|
+
headersMap.set(key.toLowerCase(), value);
|
|
24
|
+
});
|
|
25
|
+
return headersMap;
|
|
26
|
+
}
|
|
27
|
+
normalizeHeadersFromString(headersString) {
|
|
28
|
+
const headerMap = new Map();
|
|
29
|
+
if (!headersString) {
|
|
30
|
+
return headerMap;
|
|
31
|
+
}
|
|
32
|
+
const lines = headersString.trim().split(/\r\n/);
|
|
33
|
+
lines.forEach((line) => {
|
|
34
|
+
const [key, value] = line.split(': ', 2);
|
|
35
|
+
if (key && value) {
|
|
36
|
+
headerMap.set(key.trim().toLowerCase(), value.trim());
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
return headerMap;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=HeadersManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HeadersManager.js","sourceRoot":"","sources":["../../../../../../libs/browser/src/instrumentations/network/HeadersManager.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,cAAc;IACzB,aAAa,CACX,WAA6C,EAC7C,cAAwB,EAAE;QAE1B,IAAI,CAAC,WAAW,EAAE;YAChB,OAAO,IAAI,GAAG,EAAE,CAAC;SAClB;QAED,MAAM,UAAU,GAAwB,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAC3E,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;QAElD,WAAW,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;YAChC,MAAM,aAAa,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;YAC9C,IAAI,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE;gBACjC,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,CAAC,aAAa,CAAE,CAAC,CAAC;aAChE;QACH,CAAC,CAAC,CAAC;QACH,OAAO,eAAe,CAAC;IACzB,CAAC;IAEO,gBAAgB,CACtB,WAAiC;QAEjC,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;YACnC,OAAO,IAAI,CAAC,0BAA0B,CAAC,WAAW,CAAC,CAAC;SACrD;QAED,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;QACzC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;QAE7C,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YAC7B,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,OAAO,UAAU,CAAC;IACpB,CAAC;IAEO,0BAA0B,CAChC,aAAqB;QAErB,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC5C,IAAI,CAAC,aAAa,EAAE;YAClB,OAAO,SAAS,CAAC;SAClB;QAED,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjD,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACrB,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACzC,IAAI,GAAG,IAAI,KAAK,EAAE;gBAChB,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;aACvD;QACH,CAAC,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;IACnB,CAAC;CACF"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { NetworkExtraConfig } from '../../types';
|
|
2
|
+
export declare class NetworkDataManager {
|
|
3
|
+
private readonly responseBodyParsers;
|
|
4
|
+
private readonly requestBodySerializers;
|
|
5
|
+
resolveConfigForUrl(url: string, configs?: NetworkExtraConfig[]): NetworkExtraConfig | undefined;
|
|
6
|
+
stringifyRequestBody(request: Request | RequestInit): Promise<string | undefined>;
|
|
7
|
+
stringifyResponseBody(response: Response): Promise<string | undefined>;
|
|
8
|
+
truncateIfExceedsLimit(content: string): string | undefined;
|
|
9
|
+
private serializeRequestBody;
|
|
10
|
+
private serializeFormData;
|
|
11
|
+
}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import { MAX_CHARACTERS } from '../../constants';
|
|
3
|
+
export class NetworkDataManager {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.responseBodyParsers = new Map([
|
|
6
|
+
[MimeType.Json, (body) => __awaiter(this, void 0, void 0, function* () { return JSON.stringify(yield body.json()); })],
|
|
7
|
+
[MimeType.TextPlain, (body) => __awaiter(this, void 0, void 0, function* () { return yield body.text(); })],
|
|
8
|
+
[MimeType.TextHtml, (body) => __awaiter(this, void 0, void 0, function* () { return yield body.text(); })],
|
|
9
|
+
[MimeType.TextCss, (body) => __awaiter(this, void 0, void 0, function* () { return yield body.text(); })],
|
|
10
|
+
[MimeType.TextJavascript, (body) => __awaiter(this, void 0, void 0, function* () { return yield body.text(); })],
|
|
11
|
+
[MimeType.Xml, (body) => __awaiter(this, void 0, void 0, function* () { return yield body.text(); })],
|
|
12
|
+
[MimeType.FormData, (body) => __awaiter(this, void 0, void 0, function* () { return yield body.text(); })],
|
|
13
|
+
]);
|
|
14
|
+
this.requestBodySerializers = new Map([
|
|
15
|
+
[BodyType.String, (body) => __awaiter(this, void 0, void 0, function* () { return body; })],
|
|
16
|
+
[BodyType.Blob, (body) => __awaiter(this, void 0, void 0, function* () { return body.text(); })],
|
|
17
|
+
[
|
|
18
|
+
BodyType.FormData,
|
|
19
|
+
(body) => __awaiter(this, void 0, void 0, function* () { return this.serializeFormData(body); }),
|
|
20
|
+
],
|
|
21
|
+
[
|
|
22
|
+
BodyType.URLSearchParams,
|
|
23
|
+
(body) => __awaiter(this, void 0, void 0, function* () { return body.toString(); }),
|
|
24
|
+
],
|
|
25
|
+
[BodyType.JsonObject, (body) => __awaiter(this, void 0, void 0, function* () { return JSON.stringify(body); })],
|
|
26
|
+
]);
|
|
27
|
+
}
|
|
28
|
+
resolveConfigForUrl(url, configs = []) {
|
|
29
|
+
return configs.find(({ url: configUrl }) => configUrl === url ||
|
|
30
|
+
(configUrl instanceof RegExp && configUrl.test(url)));
|
|
31
|
+
}
|
|
32
|
+
stringifyRequestBody(request) {
|
|
33
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
34
|
+
if (!(request === null || request === void 0 ? void 0 : request.body))
|
|
35
|
+
return '';
|
|
36
|
+
const bodyContent = yield this.serializeRequestBody(request.body);
|
|
37
|
+
return this.truncateIfExceedsLimit(bodyContent);
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
stringifyResponseBody(response) {
|
|
41
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
42
|
+
const contentType = response.headers.get('content-type') || '';
|
|
43
|
+
const mimeType = contentType.split(';')[0].trim();
|
|
44
|
+
const parser = this.responseBodyParsers.get(mimeType);
|
|
45
|
+
if (!parser)
|
|
46
|
+
return '';
|
|
47
|
+
const parsedContent = yield parser(response);
|
|
48
|
+
return this.truncateIfExceedsLimit(parsedContent);
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
truncateIfExceedsLimit(content) {
|
|
52
|
+
return content.length > MAX_CHARACTERS ? undefined : content;
|
|
53
|
+
}
|
|
54
|
+
serializeRequestBody(body) {
|
|
55
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
56
|
+
const handler = this.requestBodySerializers.get(body.constructor.name);
|
|
57
|
+
return handler ? yield handler(body) : '';
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
serializeFormData(formData) {
|
|
61
|
+
let result = '';
|
|
62
|
+
formData.forEach((value, key) => {
|
|
63
|
+
result += `${key}: ${value}\n`;
|
|
64
|
+
});
|
|
65
|
+
return result.trim();
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
var MimeType;
|
|
69
|
+
(function (MimeType) {
|
|
70
|
+
MimeType["Json"] = "application/json";
|
|
71
|
+
MimeType["TextPlain"] = "text/plain";
|
|
72
|
+
MimeType["TextHtml"] = "text/html";
|
|
73
|
+
MimeType["TextCss"] = "text/css";
|
|
74
|
+
MimeType["TextJavascript"] = "application/javascript";
|
|
75
|
+
MimeType["Xml"] = "application/xml";
|
|
76
|
+
MimeType["FormData"] = "multipart/form-data";
|
|
77
|
+
})(MimeType || (MimeType = {}));
|
|
78
|
+
var BodyType;
|
|
79
|
+
(function (BodyType) {
|
|
80
|
+
BodyType["String"] = "String";
|
|
81
|
+
BodyType["Blob"] = "Blob";
|
|
82
|
+
BodyType["FormData"] = "FormData";
|
|
83
|
+
BodyType["URLSearchParams"] = "URLSearchParams";
|
|
84
|
+
BodyType["JsonObject"] = "JsonObject";
|
|
85
|
+
BodyType["Unknown"] = "Unknown";
|
|
86
|
+
})(BodyType || (BodyType = {}));
|
|
87
|
+
//# sourceMappingURL=NetworkDataManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NetworkDataManager.js","sourceRoot":"","sources":["../../../../../../libs/browser/src/instrumentations/network/NetworkDataManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../libs/browser/src/instrumentations/network/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC9C,eAAe,EAAE,iBAAiB;IAClC,gBAAgB,EAAE,kBAAkB;IACpC,gBAAgB,EAAE,kBAAkB;IACpC,eAAe,EAAE,iBAAiB;CACnC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { InstrumentationBase, InstrumentationConfig } from '@opentelemetry/instrumentation';
|
|
2
|
+
export declare class CoralogixScreenshotInstrumentation extends InstrumentationBase {
|
|
3
|
+
constructor(config: InstrumentationConfig);
|
|
4
|
+
protected init(): void;
|
|
5
|
+
disable(): void;
|
|
6
|
+
enable(): void;
|
|
7
|
+
screenshot(id: string, description?: string): void;
|
|
8
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { InstrumentationBase, } from '@opentelemetry/instrumentation';
|
|
2
|
+
import { CoralogixEventType } from '../../types';
|
|
3
|
+
import { CoralogixAttributes } from '../../constants';
|
|
4
|
+
import { CoralogixLogSeverity } from '../../types-external';
|
|
5
|
+
import { getSessionRecorder } from '../../helpers';
|
|
6
|
+
import { SCREENSHOT_INSTRUMENTATION_NAME, SCREENSHOT_INSTRUMENTATION_VERSION, } from './screenshot.utils';
|
|
7
|
+
export class CoralogixScreenshotInstrumentation extends InstrumentationBase {
|
|
8
|
+
constructor(config) {
|
|
9
|
+
super(SCREENSHOT_INSTRUMENTATION_NAME, SCREENSHOT_INSTRUMENTATION_VERSION, config);
|
|
10
|
+
}
|
|
11
|
+
init() { }
|
|
12
|
+
disable() { }
|
|
13
|
+
enable() { }
|
|
14
|
+
screenshot(id, description) {
|
|
15
|
+
if (!getSessionRecorder()) {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
const span = this.tracer.startSpan(CoralogixEventType.SCREENSHOT);
|
|
19
|
+
span.setAttribute(CoralogixAttributes.EVENT_TYPE, CoralogixEventType.SCREENSHOT);
|
|
20
|
+
span.setAttribute(CoralogixAttributes.SEVERITY, CoralogixLogSeverity.Info);
|
|
21
|
+
span[CoralogixAttributes.SCREENSHOT_CONTEXT] = {
|
|
22
|
+
id,
|
|
23
|
+
description,
|
|
24
|
+
};
|
|
25
|
+
span.end();
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=CoralogixScreenshotInstrumentation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CoralogixScreenshotInstrumentation.js","sourceRoot":"","sources":["../../../../../../libs/browser/src/instrumentations/screenshot/CoralogixScreenshotInstrumentation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,GAEpB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EACL,+BAA+B,EAC/B,kCAAkC,GACnC,MAAM,oBAAoB,CAAC;AAE5B,MAAM,OAAO,kCAAmC,SAAQ,mBAAmB;IACzE,YAAY,MAA6B;QACvC,KAAK,CACH,+BAA+B,EAC/B,kCAAkC,EAClC,MAAM,CACP,CAAC;IACJ,CAAC;IAES,IAAI,KAAU,CAAC;IAEhB,OAAO,KAAI,CAAC;IAEZ,MAAM,KAAI,CAAC;IAEpB,UAAU,CAAC,EAAU,EAAE,WAAoB;QACzC,IAAI,CAAC,kBAAkB,EAAE,EAAE;YACzB,OAAO;SACR;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAElE,IAAI,CAAC,YAAY,CACf,mBAAmB,CAAC,UAAU,EAC9B,kBAAkB,CAAC,UAAU,CAC9B,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,QAAQ,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAE3E,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,GAAG;YAC7C,EAAE;YACF,WAAW;SACZ,CAAC;QAEF,IAAI,CAAC,GAAG,EAAE,CAAC;IACb,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"screenshot.utils.js","sourceRoot":"","sources":["../../../../../../libs/browser/src/instrumentations/screenshot/screenshot.utils.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,+BAA+B,GAAG,YAAY,CAAC;AAC5D,MAAM,CAAC,MAAM,kCAAkC,GAAG,OAAO,CAAA"}
|
|
@@ -66,6 +66,9 @@ export class CoralogixSnapshotSpanProcessor {
|
|
|
66
66
|
updateSnapshot({ timestamp: getNowTime() });
|
|
67
67
|
shouldCreateSnapshot = true;
|
|
68
68
|
}
|
|
69
|
+
if (spanType === CoralogixEventType.SCREENSHOT) {
|
|
70
|
+
updateSnapshot({ hasScreenshot: true });
|
|
71
|
+
}
|
|
69
72
|
if (spanTimestamp - snapshotTimestamp >=
|
|
70
73
|
millisecondsPerMinute) {
|
|
71
74
|
updateSnapshot({ timestamp: getNowTime() });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CoralogixSnapshotSpanProcessor.js","sourceRoot":"","sources":["../../../../../libs/browser/src/processors/CoralogixSnapshotSpanProcessor.ts"],"names":[],"mappings":";AAMA,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAuB,MAAM,UAAU,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAElE,MAAM,OAAO,8BAA8B;IAA3C;QAGE,aAAQ,GAAY,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"CoralogixSnapshotSpanProcessor.js","sourceRoot":"","sources":["../../../../../libs/browser/src/processors/CoralogixSnapshotSpanProcessor.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,20 +10,22 @@ import { shouldDropEvent } from '../filters/filters';
|
|
|
10
10
|
import { processBeforeSend } from '../before-send';
|
|
11
11
|
import { isProcessorShouldStop } from './processor.helper';
|
|
12
12
|
import { getNowTime } from '../utils/time';
|
|
13
|
+
import { NetworkInstrumentationAttributes } from '../instrumentations/network/constants';
|
|
13
14
|
export class CoralogixSpanMapProcessor {
|
|
14
15
|
constructor() {
|
|
15
16
|
this.sdkConfig = getSdkConfig();
|
|
16
17
|
this.isActive = true;
|
|
17
18
|
}
|
|
18
19
|
onEnd(span) {
|
|
19
|
-
var _a;
|
|
20
|
+
var _a, _b;
|
|
20
21
|
if (isProcessorShouldStop(this.isActive)) {
|
|
21
22
|
return;
|
|
22
23
|
}
|
|
23
24
|
const { onlySessionWithErrorMode, getPrevSession, getSession, setSession } = getSessionManager();
|
|
24
25
|
const session = getSession() || setSession();
|
|
25
26
|
const sessionHasRecording = !!((_a = getSessionRecorder()) === null || _a === void 0 ? void 0 : _a.getSessionHasRecording());
|
|
26
|
-
const
|
|
27
|
+
const sessionHasScreenshot = !!((_b = getSessionRecorder()) === null || _b === void 0 ? void 0 : _b.getSessionHasScreenshot());
|
|
28
|
+
const mappedCxSpan = this._mapToCxSpan(span, session, getPrevSession(), sessionHasRecording, sessionHasScreenshot, onlySessionWithErrorMode);
|
|
27
29
|
if (!shouldDropEvent(mappedCxSpan.text.cx_rum, this.sdkConfig)) {
|
|
28
30
|
const resolvedCxSpan = processBeforeSend(mappedCxSpan, this.sdkConfig);
|
|
29
31
|
if (resolvedCxSpan) {
|
|
@@ -45,10 +47,10 @@ export class CoralogixSpanMapProcessor {
|
|
|
45
47
|
forceFlush() {
|
|
46
48
|
return Promise.resolve(undefined);
|
|
47
49
|
}
|
|
48
|
-
_mapToCxSpan(span, session, prevSession, sessionHasRecording, onlySessionWithErrorMode) {
|
|
50
|
+
_mapToCxSpan(span, session, prevSession, sessionHasRecording, sessionHasScreenshot, onlySessionWithErrorMode) {
|
|
49
51
|
var _a, _b;
|
|
50
52
|
const { sessionId, sessionCreationDate } = session || {};
|
|
51
|
-
const { sessionId: prevSessionId, sessionCreationDate: prevSessionCreationDate, hasRecording: prevSessionHasRecording, } = prevSession || {};
|
|
53
|
+
const { sessionId: prevSessionId, sessionCreationDate: prevSessionCreationDate, hasRecording: prevSessionHasRecording, hasScreenshot: prevSessionHasScreenshot, } = prevSession || {};
|
|
52
54
|
const { attributes, startTime, parentSpanId, name, endTime, status, duration, kind, } = span;
|
|
53
55
|
const user_context = JSON.parse(attributes[CoralogixAttributes.USER_CONTEXT]);
|
|
54
56
|
const application_context = JSON.parse(attributes[CoralogixAttributes.APPLICATION_CONTEXT]);
|
|
@@ -85,8 +87,9 @@ export class CoralogixSpanMapProcessor {
|
|
|
85
87
|
session_id: prevSessionId,
|
|
86
88
|
session_creation_date: prevSessionCreationDate,
|
|
87
89
|
hasRecording: prevSessionHasRecording,
|
|
90
|
+
hasScreenshot: prevSessionHasScreenshot,
|
|
88
91
|
}
|
|
89
|
-
: undefined, hasRecording: sessionHasRecording, user_agent: attributes[CoralogixAttributes.USER_AGENT] }), parseUserAgent(attributes[CoralogixAttributes.USER_AGENT])), { onlyWithErrorMode: onlySessionWithErrorMode }), page_context: span[CoralogixAttributes.PAGE_CONTEXT], isNavigationEvent: !!span[CoralogixAttributes.IS_NAVIGATION_EVENT], event_context: {
|
|
92
|
+
: undefined, hasRecording: sessionHasRecording, hasScreenshot: sessionHasScreenshot, user_agent: attributes[CoralogixAttributes.USER_AGENT] }), parseUserAgent(attributes[CoralogixAttributes.USER_AGENT])), { onlyWithErrorMode: onlySessionWithErrorMode }), page_context: span[CoralogixAttributes.PAGE_CONTEXT], isNavigationEvent: !!span[CoralogixAttributes.IS_NAVIGATION_EVENT], event_context: {
|
|
90
93
|
type: eventType,
|
|
91
94
|
source: attributes[CoralogixAttributes.SOURCE],
|
|
92
95
|
severity,
|
|
@@ -130,6 +133,11 @@ export class CoralogixSpanMapProcessor {
|
|
|
130
133
|
span[CoralogixAttributes.MEMORY_USAGE_CONTEXT];
|
|
131
134
|
break;
|
|
132
135
|
}
|
|
136
|
+
case CoralogixEventType.SCREENSHOT: {
|
|
137
|
+
cxSpan.text.cx_rum.screenshot_context =
|
|
138
|
+
span[CoralogixAttributes.SCREENSHOT_CONTEXT];
|
|
139
|
+
break;
|
|
140
|
+
}
|
|
133
141
|
}
|
|
134
142
|
}
|
|
135
143
|
_getEventTypeContext(spanAttributes, eventType, span) {
|
|
@@ -177,6 +185,10 @@ export class CoralogixSpanMapProcessor {
|
|
|
177
185
|
status_text: spanAttributes[OtelNetworkAttrs.STATUS_TEXT],
|
|
178
186
|
duration: hrTimeToMilliseconds(span === null || span === void 0 ? void 0 : span.duration),
|
|
179
187
|
response_content_length: spanAttributes[OtelNetworkAttrs.RESPONSE_CONTENT_LENGTH],
|
|
188
|
+
request_headers: span[NetworkInstrumentationAttributes.REQUEST_HEADERS],
|
|
189
|
+
request_payload: span[NetworkInstrumentationAttributes.REQUEST_PAYLOAD],
|
|
190
|
+
response_headers: span[NetworkInstrumentationAttributes.RESPONSE_HEADERS],
|
|
191
|
+
response_payload: span[NetworkInstrumentationAttributes.RESPONSE_PAYLOAD],
|
|
180
192
|
},
|
|
181
193
|
};
|
|
182
194
|
}
|
|
@@ -232,8 +244,9 @@ export class CoralogixSpanMapProcessor {
|
|
|
232
244
|
}
|
|
233
245
|
case CoralogixEventType.RESOURCES: {
|
|
234
246
|
const resourceContext = JSON.parse(spanAttributes[RESOURCES_INSTRUMENTATION_NAME]);
|
|
247
|
+
const fragments = getUrlFragments(resourceContext.name);
|
|
235
248
|
return {
|
|
236
|
-
resource_context: resourceContext,
|
|
249
|
+
resource_context: Object.assign(Object.assign({}, resourceContext), { fragments }),
|
|
237
250
|
};
|
|
238
251
|
}
|
|
239
252
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CoralogixSpanMapProcessor.js","sourceRoot":"","sources":["../../../../../libs/browser/src/processors/CoralogixSpanMapProcessor.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,kBAAkB,EAUlB,gBAAgB,GAMjB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,+BAA+B,EAC/B,4BAA4B,GAC7B,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EACL,oBAAoB,EACpB,SAAS,EACT,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACpB,cAAc,GACf,MAAM,UAAU,CAAC;AAClB,OAAO,gBAAgC,MAAM,oBAAoB,CAAC;AAClE,OAAO,EACL,8BAA8B,EAC9B,+BAA+B,GAChC,MAAM,4CAA4C,CAAC;AACpD,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"CoralogixSpanMapProcessor.js","sourceRoot":"","sources":["../../../../../libs/browser/src/processors/CoralogixSpanMapProcessor.ts"],"names":[],"mappings":"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"}
|
|
@@ -86,9 +86,10 @@ export interface SessionRecordingMetadata {
|
|
|
86
86
|
segmentSize: number;
|
|
87
87
|
segmentTimestamp: number;
|
|
88
88
|
sessionId: string;
|
|
89
|
-
|
|
89
|
+
sessionCreationDate: number;
|
|
90
90
|
application: string;
|
|
91
91
|
subIndex: number | undefined;
|
|
92
|
+
snapshotId?: string;
|
|
92
93
|
}
|
|
93
94
|
export type SessionRecordingWorkerEvent = 'compressRecordData' | 'splitRecordData' | 'sendRecordData' | 'stopRecording';
|
|
94
95
|
export interface SessionRecordingWorkerData {
|
|
@@ -98,4 +99,5 @@ export interface SessionRecordingWorkerData {
|
|
|
98
99
|
chunkIndex?: number;
|
|
99
100
|
totalChunks?: number;
|
|
100
101
|
event: SessionRecordingWorkerEvent;
|
|
102
|
+
screenshotId?: string;
|
|
101
103
|
}
|