@coralogix/browser 1.0.82 → 1.0.87
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 +14 -0
- package/package.json +1 -1
- package/src/CoralogixExporter.d.ts +1 -0
- package/src/CoralogixExporter.js +20 -7
- package/src/CoralogixExporter.js.map +1 -1
- package/src/constants.d.ts +5 -1
- package/src/constants.js +13 -2
- package/src/constants.js.map +1 -1
- package/src/instrumentations/CoralogixUserInteractionInstrumentation.d.ts +2 -0
- package/src/instrumentations/CoralogixUserInteractionInstrumentation.js +26 -3
- package/src/instrumentations/CoralogixUserInteractionInstrumentation.js.map +1 -1
- package/src/label-providers/url-based-label-provider.js +8 -7
- package/src/label-providers/url-based-label-provider.js.map +1 -1
- package/src/session/session.consts.d.ts +2 -0
- package/src/session/session.consts.js +2 -0
- package/src/session/session.consts.js.map +1 -1
- package/src/session/session.model.d.ts +2 -0
- package/src/session/sessionManager.d.ts +4 -2
- package/src/session/sessionManager.js +28 -11
- package/src/session/sessionManager.js.map +1 -1
- package/src/session/sessionRecorder.d.ts +3 -0
- package/src/session/sessionRecorder.js +26 -10
- package/src/session/sessionRecorder.js.map +1 -1
- package/src/types.d.ts +7 -0
- package/src/types.js.map +1 -1
- package/src/utils/all.js +5 -5
- package/src/utils/all.js.map +1 -1
- package/src/version.d.ts +1 -1
- package/src/version.js +1 -1
- package/src/workers/session-recording-worker.js +7 -3
- package/src/workers/session-recording-worker.js.map +1 -1
package/README.md
CHANGED
|
@@ -80,6 +80,20 @@ CoralogixRum.init({
|
|
|
80
80
|
});
|
|
81
81
|
```
|
|
82
82
|
|
|
83
|
+
### Mask elements
|
|
84
|
+
User interactions with specific elements can be masked to prevent sensitive data exposure.
|
|
85
|
+
|
|
86
|
+
<br>use `maskInputTypes` to specify the types of inputs to mask. defaults to: `['password', 'email', 'tel']`
|
|
87
|
+
<br>use `maskClass` to specify the class name that will be used to mask any element, string or RegExp. default is `cx-mask`.
|
|
88
|
+
|
|
89
|
+
```javascript
|
|
90
|
+
CoralogixRum.init({
|
|
91
|
+
// ...
|
|
92
|
+
maskInputTypes: ['password', 'date'], // will only mask password and date inputs
|
|
93
|
+
maskClass: 'mask-me' // will mask any element with class 'mask-me'
|
|
94
|
+
});
|
|
95
|
+
```
|
|
96
|
+
|
|
83
97
|
|
|
84
98
|
### Label Providers
|
|
85
99
|
Provide labels based on url or event
|
package/package.json
CHANGED
|
@@ -11,6 +11,7 @@ export declare class CoralogixExporter implements SpanExporter {
|
|
|
11
11
|
export(spans: ReadableSpan[], resultCallback: (result: ExportResult) => void): void;
|
|
12
12
|
shutdown(): Promise<void>;
|
|
13
13
|
private _mapToCxSpan;
|
|
14
|
+
private internalEventsModifiers;
|
|
14
15
|
private resolveLabels;
|
|
15
16
|
private _getEventTypeContext;
|
|
16
17
|
private resolvePageContext;
|
package/src/CoralogixExporter.js
CHANGED
|
@@ -18,15 +18,16 @@ export class CoralogixExporter {
|
|
|
18
18
|
this.url = `${CoralogixDomainsApiUrlMap[coralogixDomain]}${CORALOGIX_LOGS_URL_SUFFIX}`;
|
|
19
19
|
}
|
|
20
20
|
export(spans, resultCallback) {
|
|
21
|
-
var _a, _b, _c;
|
|
21
|
+
var _a, _b, _c, _d;
|
|
22
22
|
if (!this.isActive) {
|
|
23
23
|
resultCallback({ code: ExportResultCode.SUCCESS });
|
|
24
24
|
return;
|
|
25
25
|
}
|
|
26
26
|
const session = ((_a = getSessionManager()) === null || _a === void 0 ? void 0 : _a.getSession()) || ((_b = getSessionManager()) === null || _b === void 0 ? void 0 : _b.setSession());
|
|
27
27
|
const sessionHasRecording = !!((_c = getSessionRecorder()) === null || _c === void 0 ? void 0 : _c.getSessionHasRecording());
|
|
28
|
+
const prevSession = (_d = getSessionManager()) === null || _d === void 0 ? void 0 : _d.getPrevSession();
|
|
28
29
|
const cxSpans = spans
|
|
29
|
-
.map((
|
|
30
|
+
.map((span) => this._mapToCxSpan(span, session, prevSession, sessionHasRecording))
|
|
30
31
|
.filter((cxSpan) => !shouldDropEvent(cxSpan.text.cx_rum, this.sdkConfig));
|
|
31
32
|
if (cxSpans.length) {
|
|
32
33
|
fetch(this.url, {
|
|
@@ -46,9 +47,10 @@ export class CoralogixExporter {
|
|
|
46
47
|
this.isActive = false;
|
|
47
48
|
return Promise.resolve();
|
|
48
49
|
}
|
|
49
|
-
_mapToCxSpan(span, session, sessionHasRecording) {
|
|
50
|
+
_mapToCxSpan(span, session, prevSession, sessionHasRecording) {
|
|
50
51
|
var _a, _b;
|
|
51
52
|
const { sessionId, sessionCreationDate } = session || {};
|
|
53
|
+
const { sessionId: prevSessionId, sessionCreationDate: prevSessionCreationDate, } = 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]);
|
|
@@ -80,7 +82,7 @@ export class CoralogixExporter {
|
|
|
80
82
|
text: {
|
|
81
83
|
cx_rum: Object.assign(Object.assign({ timestamp }, eventTypeContext), { browser_sdk: {
|
|
82
84
|
version: SDK_VERSION,
|
|
83
|
-
}, version_metadata, session_context: Object.assign(Object.assign({ session_id: sessionId, session_creation_date: sessionCreationDate, hasRecording: sessionHasRecording, user_agent: attributes[CoralogixAttributes.USER_AGENT] }, parseUserAgent(attributes[CoralogixAttributes.USER_AGENT])), { user_id,
|
|
85
|
+
}, version_metadata, session_context: Object.assign(Object.assign({ session_id: sessionId, session_creation_date: sessionCreationDate, prev_session_id: prevSessionId, prev_session_creation_date: prevSessionCreationDate, hasRecording: sessionHasRecording, user_agent: attributes[CoralogixAttributes.USER_AGENT] }, parseUserAgent(attributes[CoralogixAttributes.USER_AGENT])), { user_id,
|
|
84
86
|
user_name,
|
|
85
87
|
user_email,
|
|
86
88
|
user_metadata }), page_context: this.resolvePageContext(attributes), event_context: {
|
|
@@ -112,8 +114,19 @@ export class CoralogixExporter {
|
|
|
112
114
|
};
|
|
113
115
|
}
|
|
114
116
|
cxSpan.text.cx_rum.labels = this.resolveLabels(cxSpan.text.cx_rum);
|
|
117
|
+
if (eventType === CoralogixEventType.INTERNAL) {
|
|
118
|
+
this.internalEventsModifiers(cxSpan.text.cx_rum, attributes);
|
|
119
|
+
}
|
|
115
120
|
return cxSpan;
|
|
116
121
|
}
|
|
122
|
+
internalEventsModifiers(cxRumEvent, attributes) {
|
|
123
|
+
const internalContext = JSON.parse(attributes[CoralogixAttributes.INTERNAL]);
|
|
124
|
+
const { event } = internalContext || {};
|
|
125
|
+
if (event === 'session-end' && cxRumEvent.session_context.prev_session_id) {
|
|
126
|
+
const { prev_session_id, prev_session_creation_date } = cxRumEvent.session_context;
|
|
127
|
+
cxRumEvent.session_context = Object.assign(Object.assign({}, cxRumEvent.session_context), { session_id: prev_session_id, session_creation_date: prev_session_creation_date, prev_session_id: undefined, prev_session_creation_date: undefined });
|
|
128
|
+
}
|
|
129
|
+
}
|
|
117
130
|
resolveLabels(cxRumEvent) {
|
|
118
131
|
var _a, _b;
|
|
119
132
|
let allLabels = cxRumEvent.labels;
|
|
@@ -121,9 +134,9 @@ export class CoralogixExporter {
|
|
|
121
134
|
if (labelProviders === null || labelProviders === void 0 ? void 0 : labelProviders.length) {
|
|
122
135
|
const pageUrlLabelProviders = getInternalRumData(PAGE_URL_LABEL_PROVIDERS_KEY);
|
|
123
136
|
const networkUrlLabelProviders = getInternalRumData(NETWORK_URL_LABEL_PROVIDERS_KEY);
|
|
124
|
-
const
|
|
125
|
-
const labelsFromProviders = Object.assign(Object.assign({}, this.getLabelsByLabelProviders(pageUrlLabelProviders, cxRumEvent, cxRumEvent.page_context.
|
|
126
|
-
? this.getLabelsByLabelProviders(networkUrlLabelProviders, cxRumEvent,
|
|
137
|
+
const networkRequestFragment = (_b = cxRumEvent.network_request_context) === null || _b === void 0 ? void 0 : _b.fragments;
|
|
138
|
+
const labelsFromProviders = Object.assign(Object.assign({}, this.getLabelsByLabelProviders(pageUrlLabelProviders, cxRumEvent, cxRumEvent.page_context.page_fragments)), (networkRequestFragment
|
|
139
|
+
? this.getLabelsByLabelProviders(networkUrlLabelProviders, cxRumEvent, networkRequestFragment)
|
|
127
140
|
: {}));
|
|
128
141
|
allLabels = Object.assign(Object.assign({}, allLabels), labelsFromProviders);
|
|
129
142
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CoralogixExporter.js","sourceRoot":"","sources":["../../../../libs/browser/src/CoralogixExporter.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,kBAAkB,EAUlB,gBAAgB,GAMjB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,yBAAyB,EACzB,mBAAmB,EACnB,yBAAyB,EACzB,+BAA+B,EAC/B,4BAA4B,GAC7B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,gBAAgC,MAAM,oBAAoB,CAAC;AAClE,OAAO,EACL,oBAAoB,EACpB,SAAS,EACT,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACpB,cAAc,GACf,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAgB,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAErE,OAAO,EACL,0BAA0B,EAC1B,8BAA8B,EAC9B,+BAA+B,GAChC,MAAM,2CAA2C,CAAC;AAGnD,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAOpD,MAAM,OAAO,iBAAiB;IAM5B,YAAY,EAAE,UAAU,EAAE,eAAe,EAA2B;QAL5D,aAAQ,GAAG,IAAI,CAAC;QAChB,eAAU,GAAG,EAAE,CAAC;QAChB,cAAS,GAA8B,YAAY,EAAE,CAAC;QACtD,QAAG,GAAG,EAAE,CAAC;QAGf,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,GAAG,GAAG,GAAG,yBAAyB,CAAC,eAAe,CAAC,GAAG,yBAAyB,EAAE,CAAC;IACzF,CAAC;IAED,MAAM,CACJ,KAAqB,EACrB,cAA8C;;QAE9C,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,cAAc,CAAC,EAAE,IAAI,EAAE,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC;YACnD,OAAO;SACR;QAED,MAAM,OAAO,GACX,CAAA,MAAA,iBAAiB,EAAE,0CAAE,UAAU,EAAE,MAAI,MAAA,iBAAiB,EAAE,0CAAE,UAAU,EAAE,CAAA,CAAC;QAEzE,MAAM,mBAAmB,GACvB,CAAC,CAAC,CAAA,MAAA,kBAAkB,EAAE,0CAAE,sBAAsB,EAAE,CAAA,CAAC;QAEnD,MAAM,OAAO,GAAG,KAAK;aAClB,GAAG,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"CoralogixExporter.js","sourceRoot":"","sources":["../../../../libs/browser/src/CoralogixExporter.ts"],"names":[],"mappings":"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"}
|
package/src/constants.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CoralogixBrowserSdkConfig } from './types';
|
|
1
|
+
import { CoralogixBrowserSdkConfig, InputType } from './types';
|
|
2
2
|
import { CoralogixErrorInstrumentation } from './instrumentations/CoralogixErrorInstrumentation';
|
|
3
3
|
import { CoralogixFetchInstrumentation } from './instrumentations/CoralogixFetchInstrumentation';
|
|
4
4
|
import { CoralogixXhrInstrumentation } from './instrumentations/CoralogixXhrInstrumentation';
|
|
@@ -10,6 +10,7 @@ import { CoralogixResourcesInstrumentation } from './instrumentations/CoralogixR
|
|
|
10
10
|
import { CoralogixInternalInstrumentation } from './instrumentations/CoralogixInternalInstrumentation';
|
|
11
11
|
export declare const miillisecondsInSecond = 1000;
|
|
12
12
|
export declare const CORALOGIX_LOGS_URL_SUFFIX = "/browser/v1beta/logs";
|
|
13
|
+
export declare const CORALOGIX_RECORDING_URL_SUFFIX = "/sessionrecording";
|
|
13
14
|
export declare const MAX_EXPORT_BATCH_SIZE = 50;
|
|
14
15
|
export declare const MAX_INTERACTION_ELEMENT_SIZE = 1024;
|
|
15
16
|
export declare const SCHEDULE_DELAY_MILLIS: number;
|
|
@@ -26,6 +27,9 @@ export declare const NANOID_REGEX: RegExp;
|
|
|
26
27
|
export declare const PAGE_URL_LABEL_PROVIDERS_KEY = "PAGE_URL_LABEL_PROVIDERS";
|
|
27
28
|
export declare const NETWORK_URL_LABEL_PROVIDERS_KEY = "NETWORK_URL_LABEL_PROVIDERS";
|
|
28
29
|
export declare const RUM_INTERNAL_DATA_KEY = "rumInternalData";
|
|
30
|
+
export declare const MASKED_TEXT = "***";
|
|
31
|
+
export declare const MASK_CLASS_DEFAULT = "cx-mask";
|
|
32
|
+
export declare const MASK_INPUT_TYPES_DEFAULT: InputType[];
|
|
29
33
|
export declare const OPTIONS_DEFAULTS: Partial<CoralogixBrowserSdkConfig>;
|
|
30
34
|
export declare const INSTRUMENTATIONS: readonly [{
|
|
31
35
|
readonly Instrument: typeof CoralogixErrorInstrumentation;
|
package/src/constants.js
CHANGED
|
@@ -11,6 +11,7 @@ import { replacePatternsInUrl } from './utils';
|
|
|
11
11
|
import { CoralogixInternalInstrumentation } from './instrumentations/CoralogixInternalInstrumentation';
|
|
12
12
|
export const miillisecondsInSecond = 1000;
|
|
13
13
|
export const CORALOGIX_LOGS_URL_SUFFIX = '/browser/v1beta/logs';
|
|
14
|
+
export const CORALOGIX_RECORDING_URL_SUFFIX = '/sessionrecording';
|
|
14
15
|
export const MAX_EXPORT_BATCH_SIZE = 50;
|
|
15
16
|
export const MAX_INTERACTION_ELEMENT_SIZE = 1024;
|
|
16
17
|
export const SCHEDULE_DELAY_MILLIS = 2 * miillisecondsInSecond;
|
|
@@ -32,6 +33,13 @@ export const NANOID_REGEX = /^[a-zA-Z0-9-_]{21}$/;
|
|
|
32
33
|
export const PAGE_URL_LABEL_PROVIDERS_KEY = 'PAGE_URL_LABEL_PROVIDERS';
|
|
33
34
|
export const NETWORK_URL_LABEL_PROVIDERS_KEY = 'NETWORK_URL_LABEL_PROVIDERS';
|
|
34
35
|
export const RUM_INTERNAL_DATA_KEY = 'rumInternalData';
|
|
36
|
+
export const MASKED_TEXT = '***';
|
|
37
|
+
export const MASK_CLASS_DEFAULT = 'cx-mask';
|
|
38
|
+
export const MASK_INPUT_TYPES_DEFAULT = [
|
|
39
|
+
'password',
|
|
40
|
+
'email',
|
|
41
|
+
'tel',
|
|
42
|
+
];
|
|
35
43
|
const idPatterns = [
|
|
36
44
|
{
|
|
37
45
|
pattern: new RegExp(UUID_REGEX),
|
|
@@ -48,7 +56,10 @@ const defaultUrlBlueprinters = {
|
|
|
48
56
|
],
|
|
49
57
|
};
|
|
50
58
|
export const OPTIONS_DEFAULTS = {
|
|
51
|
-
ignoreUrls: [
|
|
59
|
+
ignoreUrls: [
|
|
60
|
+
new RegExp('.*' + CORALOGIX_LOGS_URL_SUFFIX + '.*'),
|
|
61
|
+
new RegExp('.*' + CORALOGIX_RECORDING_URL_SUFFIX + '.*'),
|
|
62
|
+
],
|
|
52
63
|
user_context: {
|
|
53
64
|
user_id: '',
|
|
54
65
|
user_name: '',
|
|
@@ -125,7 +136,7 @@ export const CoralogixAttributes = {
|
|
|
125
136
|
TARGET_ELEMENT: 'target_element',
|
|
126
137
|
TARGET_ELEMENT_TYPE: 'target_element_type',
|
|
127
138
|
TIMESTAMP: 'timestamp',
|
|
128
|
-
INTERNAL: 'internal'
|
|
139
|
+
INTERNAL: 'internal',
|
|
129
140
|
};
|
|
130
141
|
export const CoralogixDomainsApiUrlMap = {
|
|
131
142
|
EU1: 'https://ingress.eu1.rum-ingress-coralogix.com',
|
package/src/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../libs/browser/src/constants.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../libs/browser/src/constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,8 @@ export declare class CoralogixUserInteractionInstrumentation extends Instrumenta
|
|
|
12
12
|
private stop;
|
|
13
13
|
constructor(config: CoralogixUserInteractionInstrumentationConfig);
|
|
14
14
|
enable(): void;
|
|
15
|
+
private shouldMaskElement;
|
|
16
|
+
private shouldMaskByClass;
|
|
15
17
|
disable(): void;
|
|
16
18
|
protected init(): undefined;
|
|
17
19
|
}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { InstrumentationBase, } from '@opentelemetry/instrumentation';
|
|
2
|
-
import { CoralogixAttributes, MAX_INTERACTION_ELEMENT_SIZE, } from '../constants';
|
|
3
|
-
import { CoralogixEventType } from '../types';
|
|
2
|
+
import { CoralogixAttributes, MASKED_TEXT, MAX_INTERACTION_ELEMENT_SIZE, } from '../constants';
|
|
3
|
+
import { CoralogixEventType, } from '../types';
|
|
4
4
|
import { addEventListeners } from '../tools/addEventListener';
|
|
5
|
+
import { getSdkConfig } from '../helpers';
|
|
5
6
|
export const USER_INTERACTION_INSTRUMENTATION_NAME = 'user-interaction';
|
|
6
7
|
export const USER_INTERACTION_INSTRUMENTATION_VERSION = '1';
|
|
7
8
|
export const DEFAULT_INSTRUMENTED_EVENTS = {
|
|
@@ -18,19 +19,28 @@ export class CoralogixUserInteractionInstrumentation extends InstrumentationBase
|
|
|
18
19
|
this.handler = (e) => {
|
|
19
20
|
const eventTarget = e.target;
|
|
20
21
|
const span = this.tracer.startSpan(USER_INTERACTION_INSTRUMENTATION_NAME);
|
|
22
|
+
const config = getSdkConfig();
|
|
21
23
|
const { innerText, innerHTML, id, type, value, className, nodeName } = eventTarget;
|
|
24
|
+
const finalInnerHtml = this.shouldMaskByClass(config, className)
|
|
25
|
+
? MASKED_TEXT
|
|
26
|
+
: innerHTML;
|
|
22
27
|
span.setAttribute(CoralogixAttributes.TIMESTAMP, Date.now());
|
|
23
28
|
span.setAttribute(CoralogixAttributes.EVENT_TYPE, CoralogixEventType.USER_INTERACTION);
|
|
24
29
|
span.setAttribute(CoralogixAttributes.INTERACTION_EVENT_NAME, e.type);
|
|
25
30
|
if (eventTarget && eventTarget instanceof HTMLElement) {
|
|
26
31
|
const elementInnerText = () => {
|
|
27
32
|
const val = innerText || value || '';
|
|
33
|
+
if (this.shouldMaskElement(config, nodeName, className, type)) {
|
|
34
|
+
return MASKED_TEXT;
|
|
35
|
+
}
|
|
28
36
|
return typeof val === 'string' ? val : '';
|
|
29
37
|
};
|
|
30
38
|
[
|
|
31
39
|
[
|
|
32
40
|
CoralogixAttributes.ELEMENT_INNER_HTML,
|
|
33
|
-
(
|
|
41
|
+
(finalInnerHtml === null || finalInnerHtml === void 0 ? void 0 : finalInnerHtml.length) < MAX_INTERACTION_ELEMENT_SIZE
|
|
42
|
+
? finalInnerHtml
|
|
43
|
+
: '',
|
|
34
44
|
],
|
|
35
45
|
[CoralogixAttributes.ELEMENT_ID, id],
|
|
36
46
|
[CoralogixAttributes.ELEMENT_CLASSES, className],
|
|
@@ -55,6 +65,19 @@ export class CoralogixUserInteractionInstrumentation extends InstrumentationBase
|
|
|
55
65
|
passive: true,
|
|
56
66
|
}).stop;
|
|
57
67
|
}
|
|
68
|
+
shouldMaskElement(config, nodeName, className, type) {
|
|
69
|
+
const { maskInputTypes, maskClass } = config;
|
|
70
|
+
const shouldMaskByInput = nodeName === 'INPUT' && maskInputTypes.includes(type);
|
|
71
|
+
const shouldMaskByClass = this.shouldMaskByClass(config, className);
|
|
72
|
+
return shouldMaskByInput || shouldMaskByClass;
|
|
73
|
+
}
|
|
74
|
+
shouldMaskByClass(config, className) {
|
|
75
|
+
const { maskClass } = config;
|
|
76
|
+
if (maskClass instanceof RegExp) {
|
|
77
|
+
return maskClass.test(className);
|
|
78
|
+
}
|
|
79
|
+
return className === null || className === void 0 ? void 0 : className.includes(maskClass);
|
|
80
|
+
}
|
|
58
81
|
disable() {
|
|
59
82
|
this.stop();
|
|
60
83
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CoralogixUserInteractionInstrumentation.js","sourceRoot":"","sources":["../../../../../libs/browser/src/instrumentations/CoralogixUserInteractionInstrumentation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,GAEpB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,mBAAmB,EACnB,4BAA4B,GAC7B,MAAM,cAAc,CAAC;AACtB,OAAO,
|
|
1
|
+
{"version":3,"file":"CoralogixUserInteractionInstrumentation.js","sourceRoot":"","sources":["../../../../../libs/browser/src/instrumentations/CoralogixUserInteractionInstrumentation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +1,22 @@
|
|
|
1
1
|
export class UrlBasedLabelProvider {
|
|
2
2
|
constructor(config) {
|
|
3
3
|
const { urlPatterns, defaultLabels, urlType } = config;
|
|
4
|
+
const compiledRegexps = urlPatterns.map(({ regexps }) => regexps.map((regexp) => new RegExp(regexp)));
|
|
4
5
|
this.urlType = urlType;
|
|
5
6
|
this.providerFunc = (url, _) => {
|
|
6
|
-
|
|
7
|
-
for (const
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
let providerLabels = {};
|
|
8
|
+
outerLoop: for (const [index, compiledRegex,] of compiledRegexps.entries()) {
|
|
9
|
+
const { labels } = urlPatterns[index];
|
|
10
|
+
if (compiledRegex.some((regexp) => regexp.test(url))) {
|
|
11
|
+
providerLabels = Object.assign(Object.assign({}, providerLabels), labels);
|
|
12
|
+
break outerLoop;
|
|
12
13
|
}
|
|
13
14
|
}
|
|
14
15
|
const shouldAddDefaultLabels = !Object.keys(providerLabels).length &&
|
|
15
16
|
defaultLabels &&
|
|
16
17
|
Object.keys(defaultLabels).length;
|
|
17
18
|
if (shouldAddDefaultLabels) {
|
|
18
|
-
Object.assign(providerLabels, defaultLabels);
|
|
19
|
+
providerLabels = Object.assign(Object.assign({}, providerLabels), defaultLabels);
|
|
19
20
|
}
|
|
20
21
|
return providerLabels;
|
|
21
22
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"url-based-label-provider.js","sourceRoot":"","sources":["../../../../../libs/browser/src/label-providers/url-based-label-provider.ts"],"names":[],"mappings":"AAmBA,MAAM,OAAO,qBAAqB;IAIhC,YAAY,MAAmC;QAC7C,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"url-based-label-provider.js","sourceRoot":"","sources":["../../../../../libs/browser/src/label-providers/url-based-label-provider.ts"],"names":[],"mappings":"AAmBA,MAAM,OAAO,qBAAqB;IAIhC,YAAY,MAAmC;QAC7C,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;QACvD,MAAM,eAAe,GAAe,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAClE,OAAO,CAAC,GAAG,CAAC,CAAC,MAAc,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CACpD,CAAC;QAEF,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,YAAY,GAAG,CAAC,GAAW,EAAE,CAAa,EAAE,EAAE;YACjD,IAAI,cAAc,GAAuB,EAAE,CAAC;YAE5C,SAAS,EAAE,KAAK,MAAM,CACpB,KAAK,EACL,aAAa,EACd,IAAI,eAAe,CAAC,OAAO,EAAE,EAAE;gBAC9B,MAAM,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;gBACtC,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;oBACpD,cAAc,mCAAQ,cAAc,GAAK,MAAM,CAAE,CAAC;oBAClD,MAAM,SAAS,CAAC;iBACjB;aACF;YAED,MAAM,sBAAsB,GAC1B,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM;gBACnC,aAAa;gBACb,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC;YAEpC,IAAI,sBAAsB,EAAE;gBAC1B,cAAc,mCAAQ,cAAc,GAAK,aAAa,CAAE,CAAC;aAC1D;YAED,OAAO,cAAc,CAAC;QACxB,CAAC,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -4,3 +4,5 @@ export declare const SESSION_RECORDING_DEFAULT_ERROR_MESSAGE: string;
|
|
|
4
4
|
export declare const SESSION_RECORDING_NETWORK_ERR0R_MESSAGE: string;
|
|
5
5
|
export declare const BATCH_TIME_DELAY: number;
|
|
6
6
|
export declare const SESSION_RECORDING_POSTFIX_URL = "browser/alpha/sessionrecording";
|
|
7
|
+
export declare const SESSION_KEY: string;
|
|
8
|
+
export declare const PREV_SESSION_KEY: string;
|
|
@@ -6,4 +6,6 @@ export const SESSION_RECORDING_DEFAULT_ERROR_MESSAGE = 'Coralogix Browser SDK -
|
|
|
6
6
|
export const SESSION_RECORDING_NETWORK_ERR0R_MESSAGE = 'Coralogix Browser SDK - Error while sending record';
|
|
7
7
|
export const BATCH_TIME_DELAY = 1000;
|
|
8
8
|
export const SESSION_RECORDING_POSTFIX_URL = 'browser/alpha/sessionrecording';
|
|
9
|
+
export const SESSION_KEY = 'rum_session';
|
|
10
|
+
export const PREV_SESSION_KEY = 'rum_prev_session';
|
|
9
11
|
//# sourceMappingURL=session.consts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.consts.js","sourceRoot":"","sources":["../../../../../libs/browser/src/session/session.consts.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAW,KAAM,CAAC,CAAC,KAAK;AAEtD,MAAM,CAAC,MAAM,iCAAiC,GAA2B;IACvE,kBAAkB,EAAE,MAAM;CAC3B,CAAC;AAEF,MAAM,CAAC,MAAM,uCAAuC,GAClD,qEAAqE,CAAC;AAExE,MAAM,CAAC,MAAM,uCAAuC,GAClD,oDAAoD,CAAC;AAEvD,MAAM,CAAC,MAAM,gBAAgB,GAAW,IAAI,CAAC;AAE7C,MAAM,CAAC,MAAM,6BAA6B,GAAG,gCAAgC,
|
|
1
|
+
{"version":3,"file":"session.consts.js","sourceRoot":"","sources":["../../../../../libs/browser/src/session/session.consts.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAW,KAAM,CAAC,CAAC,KAAK;AAEtD,MAAM,CAAC,MAAM,iCAAiC,GAA2B;IACvE,kBAAkB,EAAE,MAAM;CAC3B,CAAC;AAEF,MAAM,CAAC,MAAM,uCAAuC,GAClD,qEAAqE,CAAC;AAExE,MAAM,CAAC,MAAM,uCAAuC,GAClD,oDAAoD,CAAC;AAEvD,MAAM,CAAC,MAAM,gBAAgB,GAAW,IAAI,CAAC;AAE7C,MAAM,CAAC,MAAM,6BAA6B,GAAG,gCAAgC,CAAC;AAE9E,MAAM,CAAC,MAAM,WAAW,GAAW,aAAa,CAAC;AACjD,MAAM,CAAC,MAAM,gBAAgB,GAAW,kBAAkB,CAAC"}
|
|
@@ -69,6 +69,8 @@ export interface SessionRecordingMetadata {
|
|
|
69
69
|
}
|
|
70
70
|
export type SessionRecordingWorkerEvent = 'compressRecordData' | 'splitRecordData' | 'sendRecordData';
|
|
71
71
|
export interface SessionRecordingWorkerData {
|
|
72
|
+
sessionId: string;
|
|
73
|
+
sessionCreationDate: number;
|
|
72
74
|
gzipBlob?: Blob;
|
|
73
75
|
chunkIndex?: number;
|
|
74
76
|
totalChunks?: number;
|
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
import { Session } from '../types';
|
|
2
2
|
import { SessionRecordingConfig } from './session.model';
|
|
3
3
|
export declare class SessionManager {
|
|
4
|
-
private readonly sessionKey;
|
|
5
4
|
private idle;
|
|
6
5
|
private sessionRecorder;
|
|
7
6
|
private activeSession;
|
|
7
|
+
private sessionRecorderConfig;
|
|
8
8
|
constructor(recordConfig?: SessionRecordingConfig);
|
|
9
9
|
getSessionKey(): string;
|
|
10
10
|
getActiveSession(): Session;
|
|
11
11
|
start(): void;
|
|
12
12
|
stop(): void;
|
|
13
|
+
getPrevSession(): Session;
|
|
13
14
|
getSession(): Session;
|
|
15
|
+
private clearSessionWhenIdle;
|
|
14
16
|
private initIdle;
|
|
15
17
|
private clearSession;
|
|
16
|
-
setSession(sessionId?: string): Session;
|
|
18
|
+
setSession(afterIdle?: boolean, sessionId?: string): Session;
|
|
17
19
|
}
|
|
@@ -5,11 +5,12 @@ import { SessionRecorder } from './sessionRecorder';
|
|
|
5
5
|
import { getNowTime, getSdkConfig, getSessionRecorder } from '../helpers';
|
|
6
6
|
import { reportInternalEvent } from '../internal-event-reporter';
|
|
7
7
|
import { isSamplingOn } from '../utils';
|
|
8
|
+
import { PREV_SESSION_KEY, SESSION_KEY } from './session.consts';
|
|
8
9
|
export class SessionManager {
|
|
9
10
|
constructor(recordConfig) {
|
|
10
|
-
this.sessionKey = 'rum_session';
|
|
11
11
|
this.initIdle();
|
|
12
12
|
window[SESSION_MANAGER_KEY] = this;
|
|
13
|
+
this.sessionRecorderConfig = recordConfig;
|
|
13
14
|
if (recordConfig === null || recordConfig === void 0 ? void 0 : recordConfig.enable) {
|
|
14
15
|
const recordingSamplingEnabled = isSamplingOn(recordConfig.sessionRecordingSampleRate);
|
|
15
16
|
if (recordingSamplingEnabled) {
|
|
@@ -23,7 +24,7 @@ export class SessionManager {
|
|
|
23
24
|
}
|
|
24
25
|
}
|
|
25
26
|
getSessionKey() {
|
|
26
|
-
return
|
|
27
|
+
return SESSION_KEY;
|
|
27
28
|
}
|
|
28
29
|
getActiveSession() {
|
|
29
30
|
return this.activeSession;
|
|
@@ -35,8 +36,11 @@ export class SessionManager {
|
|
|
35
36
|
stop() {
|
|
36
37
|
this.idle.stop();
|
|
37
38
|
}
|
|
39
|
+
getPrevSession() {
|
|
40
|
+
return JSON.parse(window.sessionStorage.getItem(PREV_SESSION_KEY));
|
|
41
|
+
}
|
|
38
42
|
getSession() {
|
|
39
|
-
const storedSession = JSON.parse(window.sessionStorage.getItem(
|
|
43
|
+
const storedSession = JSON.parse(window.sessionStorage.getItem(SESSION_KEY));
|
|
40
44
|
const now = getNowTime();
|
|
41
45
|
let session;
|
|
42
46
|
if (storedSession) {
|
|
@@ -44,12 +48,19 @@ export class SessionManager {
|
|
|
44
48
|
session = storedSession;
|
|
45
49
|
}
|
|
46
50
|
else {
|
|
47
|
-
this.
|
|
48
|
-
session = this.setSession();
|
|
51
|
+
this.clearSessionWhenIdle();
|
|
52
|
+
session = this.setSession(true);
|
|
49
53
|
}
|
|
50
54
|
}
|
|
51
55
|
return session;
|
|
52
56
|
}
|
|
57
|
+
clearSessionWhenIdle() {
|
|
58
|
+
var _a;
|
|
59
|
+
if ((_a = this.sessionRecorder) === null || _a === void 0 ? void 0 : _a.getSessionHasRecording()) {
|
|
60
|
+
this.sessionRecorder.recordingStopDueToTimeout = true;
|
|
61
|
+
}
|
|
62
|
+
this.clearSession();
|
|
63
|
+
}
|
|
53
64
|
initIdle() {
|
|
54
65
|
if (this.idle) {
|
|
55
66
|
return;
|
|
@@ -58,10 +69,10 @@ export class SessionManager {
|
|
|
58
69
|
idle: SESSION_IDLE_TIME_IN_MINUTES * miillisecondsInSecond * 60,
|
|
59
70
|
events: ['mousemove', 'keydown', 'mousedown', 'touchstart'],
|
|
60
71
|
onIdle: () => {
|
|
61
|
-
this.
|
|
72
|
+
this.clearSessionWhenIdle();
|
|
62
73
|
},
|
|
63
74
|
onActive: () => {
|
|
64
|
-
this.setSession();
|
|
75
|
+
this.setSession(true);
|
|
65
76
|
},
|
|
66
77
|
// onHide: () => {}, // callback function to be executed when window become hidden
|
|
67
78
|
// onShow: () => {}, // callback function to be executed when window become visible
|
|
@@ -71,11 +82,12 @@ export class SessionManager {
|
|
|
71
82
|
}
|
|
72
83
|
clearSession() {
|
|
73
84
|
var _a;
|
|
85
|
+
window.sessionStorage.setItem(PREV_SESSION_KEY, JSON.stringify(this.activeSession));
|
|
74
86
|
(_a = this.sessionRecorder) === null || _a === void 0 ? void 0 : _a.stopRecording();
|
|
75
|
-
window.sessionStorage.removeItem(
|
|
87
|
+
window.sessionStorage.removeItem(SESSION_KEY);
|
|
76
88
|
reportInternalEvent('session-end');
|
|
77
89
|
}
|
|
78
|
-
setSession(sessionId) {
|
|
90
|
+
setSession(afterIdle = false, sessionId) {
|
|
79
91
|
var _a, _b;
|
|
80
92
|
const now = getNowTime();
|
|
81
93
|
const expirationDate = now + MILLISECONDS_PER_HOUR * SESSION_EXPIRATION_IN_HOURS;
|
|
@@ -85,8 +97,13 @@ export class SessionManager {
|
|
|
85
97
|
sessionExpirationDate: expirationDate,
|
|
86
98
|
};
|
|
87
99
|
this.activeSession = session;
|
|
88
|
-
window.sessionStorage.setItem(
|
|
89
|
-
|
|
100
|
+
window.sessionStorage.setItem(SESSION_KEY, JSON.stringify(session));
|
|
101
|
+
const sessionRecorder = getSessionRecorder();
|
|
102
|
+
const shouldStartRecordingAfterIdle = afterIdle &&
|
|
103
|
+
!!(sessionRecorder === null || sessionRecorder === void 0 ? void 0 : sessionRecorder.recordingStopDueToTimeout) &&
|
|
104
|
+
!!((_a = this.sessionRecorderConfig) === null || _a === void 0 ? void 0 : _a.enable);
|
|
105
|
+
if (shouldStartRecordingAfterIdle ||
|
|
106
|
+
(sessionRecorder === null || sessionRecorder === void 0 ? void 0 : sessionRecorder.getIsAutoStartRecording())) {
|
|
90
107
|
(_b = this.sessionRecorder) === null || _b === void 0 ? void 0 : _b.startRecording();
|
|
91
108
|
}
|
|
92
109
|
return session;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessionManager.js","sourceRoot":"","sources":["../../../../../libs/browser/src/session/sessionManager.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,2BAA2B,EAC3B,4BAA4B,EAC5B,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"sessionManager.js","sourceRoot":"","sources":["../../../../../libs/browser/src/session/sessionManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,9 +15,12 @@ export declare class SessionRecorder {
|
|
|
15
15
|
private batchTimeout;
|
|
16
16
|
private isErrorOccurred;
|
|
17
17
|
private debugMode;
|
|
18
|
+
private _recordingStopDueToTimeout;
|
|
18
19
|
constructor(sessionManager: SessionManager, recordConfig: SessionRecordingConfig);
|
|
19
20
|
getSessionHasRecording(): boolean;
|
|
20
21
|
getIsAutoStartRecording(): boolean;
|
|
22
|
+
set recordingStopDueToTimeout(value: boolean);
|
|
23
|
+
get recordingStopDueToTimeout(): boolean;
|
|
21
24
|
startRecording(): void;
|
|
22
25
|
stopRecording(): void;
|
|
23
26
|
private clearIntervals;
|