@coralogix/browser 1.0.73 → 1.0.77

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/README.md +41 -0
  2. package/package.json +3 -2
  3. package/src/CoralogixExporter.d.ts +2 -0
  4. package/src/CoralogixExporter.js +33 -7
  5. package/src/CoralogixExporter.js.map +1 -1
  6. package/src/constants.d.ts +4 -0
  7. package/src/constants.js +4 -0
  8. package/src/constants.js.map +1 -1
  9. package/src/helpers.d.ts +7 -0
  10. package/src/helpers.js +16 -1
  11. package/src/helpers.js.map +1 -1
  12. package/src/index.js +26 -8
  13. package/src/index.js.map +1 -1
  14. package/src/instrumentations/CoralogixLongTaskInstrumentation.js +1 -1
  15. package/src/instrumentations/CoralogixLongTaskInstrumentation.js.map +1 -1
  16. package/src/instrumentations/CoralogixResourcesInstrumentation.js +1 -1
  17. package/src/instrumentations/CoralogixResourcesInstrumentation.js.map +1 -1
  18. package/src/instrumentations/CoralogixWebVitalsInstrumentation.js +8 -3
  19. package/src/instrumentations/CoralogixWebVitalsInstrumentation.js.map +1 -1
  20. package/src/label-providers/url-based-label-provider.d.ts +16 -0
  21. package/src/label-providers/url-based-label-provider.js +24 -0
  22. package/src/label-providers/url-based-label-provider.js.map +1 -0
  23. package/src/session/session.consts.d.ts +5 -0
  24. package/src/session/session.consts.js +8 -0
  25. package/src/session/session.consts.js.map +1 -0
  26. package/src/session/session.model.d.ts +74 -0
  27. package/src/session/session.model.js +11 -0
  28. package/src/session/session.model.js.map +1 -0
  29. package/src/session/sessionManager.d.ts +17 -0
  30. package/src/{sessionManager.js → session/sessionManager.js} +22 -4
  31. package/src/session/sessionManager.js.map +1 -0
  32. package/src/session/sessionRecorder.d.ts +32 -0
  33. package/src/session/sessionRecorder.js +178 -0
  34. package/src/session/sessionRecorder.js.map +1 -0
  35. package/src/types.d.ts +27 -2
  36. package/src/types.js +5 -0
  37. package/src/types.js.map +1 -1
  38. package/src/utils.d.ts +4 -0
  39. package/src/utils.js +30 -4
  40. package/src/utils.js.map +1 -1
  41. package/src/version.d.ts +1 -1
  42. package/src/version.js +1 -1
  43. package/src/workers/session-recording-worker.d.ts +1 -0
  44. package/src/workers/session-recording-worker.js +3729 -0
  45. package/src/workers/session-recording-worker.js.map +1 -0
  46. package/src/sessionManager.d.ts +0 -12
  47. package/src/sessionManager.js.map +0 -1
@@ -0,0 +1,74 @@
1
+ import { recordOptions } from 'rrweb/typings/types';
2
+ import { eventWithTime } from '@rrweb/types';
3
+ /**
4
+ * Record config properties - based on rrweb
5
+ *
6
+ * | key | default | description |
7
+ * | ------------------------ | ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
8
+ * | emit | required | the callback function to get emitted events |
9
+ * | checkoutEveryNth | - | take a full snapshot after every N events<br />refer to the [checkout](#checkout) chapter |
10
+ * | checkoutEveryNms | - | take a full snapshot after every N ms<br />refer to the [checkout](#checkout) chapter |
11
+ * | blockClass | 'rr-block' | Use a string or RegExp to configure which elements should be blocked, refer to the [privacy](#privacy) chapter |
12
+ * | blockSelector | null | Use a string to configure which selector should be blocked, refer to the [privacy](#privacy) chapter |
13
+ * | ignoreClass | 'rr-ignore' | Use a string or RegExp to configure which elements should be ignored, refer to the [privacy](#privacy) chapter |
14
+ * | ignoreSelector | null | Use a string to configure which selector should be ignored, refer to the [privacy](#privacy) chapter |
15
+ * | ignoreCSSAttributes | null | array of CSS attributes that should be ignored |
16
+ * | maskTextClass | 'rr-mask' | Use a string or RegExp to configure which elements should be masked, refer to the [privacy](#privacy) chapter |
17
+ * | maskTextSelector | null | Use a string to configure which selector should be masked, refer to the [privacy](#privacy) chapter |
18
+ * | maskAllInputs | false | mask all input content as \* |
19
+ * | maskInputOptions | { password: true } | mask some kinds of input \*<br />refer to the [list](https://github.com/rrweb-io/rrweb/blob/588164aa12f1d94576f89ae0210b98f6e971c895/packages/rrweb-snapshot/src/types.ts#L77-L95) |
20
+ * | maskInputFn | - | customize mask input content recording logic |
21
+ * | maskTextFn | - | customize mask text content recording logic |
22
+ * | slimDOMOptions | {} | remove unnecessary parts of the DOM <br />refer to the [list](https://github.com/rrweb-io/rrweb/blob/588164aa12f1d94576f89ae0210b98f6e971c895/packages/rrweb-snapshot/src/types.ts#L97-L108) |
23
+ * | dataURLOptions | {} | Canvas image format and quality ,This parameter will be passed to the OffscreenCanvas.convertToBlob(),Using this parameter effectively reduces the size of the recorded data |
24
+ * | inlineStylesheet | true | whether to inline the stylesheet in the events |
25
+ * | hooks | {} | hooks for events<br />refer to the [list](https://github.com/rrweb-io/rrweb/blob/9488deb6d54a5f04350c063d942da5e96ab74075/src/types.ts#L207) |
26
+ * | packFn | - | refer to the [storage optimization recipe](./docs/recipes/optimize-storage.md) |
27
+ * | sampling | - | refer to the [storage optimization recipe](./docs/recipes/optimize-storage.md) |
28
+ * | recordCanvas | false | Whether to record the canvas element. Available options:<br/>`false`, <br/>`true` |
29
+ * | recordCrossOriginIframes | false | Whether to record cross origin iframes. rrweb has to be injected in each child iframe for this to work. Available options:<br/>`false`, <br/>`true` |
30
+ * | recordAfter | 'load' | If the document is not ready, then the recorder will start recording after the specified event is fired. Available options: `DOMContentLoaded`, `load` |
31
+ * | inlineImages | false | whether to record the image content |
32
+ * | collectFonts | false | whether to collect fonts in the website |
33
+ * | userTriggeredOnInput | false | whether to add `userTriggered` on input events that indicates if this event was triggered directly by the user or not. [What is `userTriggered`?](https://github.com/rrweb-io/rrweb/pull/495) |
34
+ * | plugins | [] | load plugins to provide extended record functions. [What is plugins?](./docs/recipes/plugin.md) |
35
+ * | errorHandler | - | A callback that is called if something inside of rrweb throws an error. The callback receives the error as argument.
36
+ */
37
+ export interface SessionRecordingConfig extends Omit<recordOptions<eventWithTime>, 'sampling' | 'emit' | 'packFn' | 'plugins' | 'hooks'> {
38
+ enable: boolean;
39
+ autoStartSessionRecording: boolean;
40
+ recordConsoleEvents?: boolean;
41
+ }
42
+ export type RecordEvent = eventWithTime;
43
+ export type RecordPluginEvent<T = any> = {
44
+ type: SessionRecordingEventType.Plugin;
45
+ data: {
46
+ plugin: string;
47
+ payload: T;
48
+ };
49
+ timestamp: number;
50
+ };
51
+ export declare enum SessionRecordingEventType {
52
+ DomContentLoaded = 0,
53
+ Load = 1,
54
+ FullSnapshot = 2,
55
+ IncrementalSnapshot = 3,
56
+ Meta = 4,
57
+ Custom = 5,
58
+ Plugin = 6
59
+ }
60
+ export interface SessionRecordingMetadata {
61
+ segmentIndex: number;
62
+ segmentTimestamp: number;
63
+ sessionId: string;
64
+ sessionCreationTime: number;
65
+ application: string;
66
+ subIndex: number | undefined;
67
+ }
68
+ export type SessionRecordingWorkerEvent = 'compressRecordData' | 'splitRecordData' | 'sendRecordData';
69
+ export interface SessionRecordingWorkerData {
70
+ gzipBlob?: Blob;
71
+ chunkIndex?: number;
72
+ totalChunks?: number;
73
+ event: SessionRecordingWorkerEvent;
74
+ }
@@ -0,0 +1,11 @@
1
+ export var SessionRecordingEventType;
2
+ (function (SessionRecordingEventType) {
3
+ SessionRecordingEventType[SessionRecordingEventType["DomContentLoaded"] = 0] = "DomContentLoaded";
4
+ SessionRecordingEventType[SessionRecordingEventType["Load"] = 1] = "Load";
5
+ SessionRecordingEventType[SessionRecordingEventType["FullSnapshot"] = 2] = "FullSnapshot";
6
+ SessionRecordingEventType[SessionRecordingEventType["IncrementalSnapshot"] = 3] = "IncrementalSnapshot";
7
+ SessionRecordingEventType[SessionRecordingEventType["Meta"] = 4] = "Meta";
8
+ SessionRecordingEventType[SessionRecordingEventType["Custom"] = 5] = "Custom";
9
+ SessionRecordingEventType[SessionRecordingEventType["Plugin"] = 6] = "Plugin";
10
+ })(SessionRecordingEventType || (SessionRecordingEventType = {}));
11
+ //# sourceMappingURL=session.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.model.js","sourceRoot":"","sources":["../../../../../libs/browser/src/session/session.model.ts"],"names":[],"mappings":"AA0DA,MAAM,CAAN,IAAY,yBAQX;AARD,WAAY,yBAAyB;IACnC,iGAAoB,CAAA;IACpB,yEAAQ,CAAA;IACR,yFAAgB,CAAA;IAChB,uGAAuB,CAAA;IACvB,yEAAQ,CAAA;IACR,6EAAU,CAAA;IACV,6EAAU,CAAA;AACZ,CAAC,EARW,yBAAyB,KAAzB,yBAAyB,QAQpC"}
@@ -0,0 +1,17 @@
1
+ import { Session } from '../types';
2
+ import { SessionRecordingConfig } from './session.model';
3
+ export declare class SessionManager {
4
+ private readonly sessionKey;
5
+ private idle;
6
+ private sessionRecorder;
7
+ private activeSession;
8
+ constructor(recordConfig?: SessionRecordingConfig);
9
+ getSessionKey(): string;
10
+ getActiveSession(): Session;
11
+ start(): void;
12
+ stop(): void;
13
+ getSession(): Session;
14
+ private initIdle;
15
+ private clearSession;
16
+ setSession(sessionId?: string): Session;
17
+ }
@@ -1,11 +1,22 @@
1
1
  import IdleJs from 'idle-js';
2
2
  import { v4 as uuidv4 } from 'uuid';
3
- import { miillisecondsInSecond, MILLISECONDS_PER_HOUR, SESSION_EXPIRATION_IN_HOURS, SESSION_IDLE_TIME_IN_MINUTES, SESSION_MANAGER_KEY, } from './constants';
3
+ import { miillisecondsInSecond, MILLISECONDS_PER_HOUR, SESSION_EXPIRATION_IN_HOURS, SESSION_IDLE_TIME_IN_MINUTES, SESSION_MANAGER_KEY, } from '../constants';
4
+ import { SessionRecorder } from './sessionRecorder';
5
+ import { getNowTime, getSessionRecorder } from '../helpers';
4
6
  export class SessionManager {
5
- constructor() {
7
+ constructor(recordConfig) {
6
8
  this.sessionKey = 'rum_session';
7
9
  this.initIdle();
8
10
  window[SESSION_MANAGER_KEY] = this;
11
+ if (recordConfig === null || recordConfig === void 0 ? void 0 : recordConfig.enable) {
12
+ this.sessionRecorder = new SessionRecorder(this, recordConfig);
13
+ }
14
+ }
15
+ getSessionKey() {
16
+ return this.sessionKey;
17
+ }
18
+ getActiveSession() {
19
+ return this.activeSession;
9
20
  }
10
21
  start() {
11
22
  this.idle.start();
@@ -16,7 +27,7 @@ export class SessionManager {
16
27
  }
17
28
  getSession() {
18
29
  const storedSession = JSON.parse(window.sessionStorage.getItem(this.sessionKey));
19
- const now = Date.now();
30
+ const now = getNowTime();
20
31
  let session;
21
32
  if (storedSession) {
22
33
  if (storedSession.sessionExpirationDate > now) {
@@ -49,17 +60,24 @@ export class SessionManager {
49
60
  });
50
61
  }
51
62
  clearSession() {
63
+ var _a;
64
+ (_a = this.sessionRecorder) === null || _a === void 0 ? void 0 : _a.stopRecording();
52
65
  window.sessionStorage.removeItem(this.sessionKey);
53
66
  }
54
67
  setSession(sessionId) {
55
- const now = Date.now();
68
+ var _a, _b;
69
+ const now = getNowTime();
56
70
  const expirationDate = now + MILLISECONDS_PER_HOUR * SESSION_EXPIRATION_IN_HOURS;
57
71
  const session = {
58
72
  sessionId: sessionId || uuidv4(),
59
73
  sessionCreationDate: now,
60
74
  sessionExpirationDate: expirationDate,
61
75
  };
76
+ this.activeSession = session;
62
77
  window.sessionStorage.setItem(this.sessionKey, JSON.stringify(session));
78
+ if ((_a = getSessionRecorder()) === null || _a === void 0 ? void 0 : _a.getIsAutoStartRecording()) {
79
+ (_b = this.sessionRecorder) === null || _b === void 0 ? void 0 : _b.startRecording();
80
+ }
63
81
  return session;
64
82
  }
65
83
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionManager.js","sourceRoot":"","sources":["../../../../../libs/browser/src/session/sessionManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import { SessionRecordingConfig } from './session.model';
2
+ import { SessionManager } from './sessionManager';
3
+ export declare class SessionRecorder {
4
+ private readonly sessionWorker;
5
+ private readonly isAutoStartRecording;
6
+ private recordEvents;
7
+ private recordRef;
8
+ private recordConfig;
9
+ private segmentIndexCounter;
10
+ private sessionManager;
11
+ private hasRecording;
12
+ private recordingStopped;
13
+ private batchingTimeInterval;
14
+ private batchTimeDelay;
15
+ private batchTimeout;
16
+ private isErrorOccurred;
17
+ private debugMode;
18
+ constructor(sessionManager: SessionManager, recordConfig: SessionRecordingConfig);
19
+ getSessionHasRecording(): boolean;
20
+ getIsAutoStartRecording(): boolean;
21
+ startRecording(): void;
22
+ stopRecording(): void;
23
+ private clearIntervals;
24
+ private prepareRecordConfig;
25
+ private handleRecordEvent;
26
+ private prepareRecordEventsBeforeSend;
27
+ private registerToWorkerMessages;
28
+ private resetBatching;
29
+ private sendRecordEvents;
30
+ private handleSessionRecordingResponse;
31
+ private startBatchingRecords;
32
+ }
@@ -0,0 +1,178 @@
1
+ import { __awaiter } from "tslib";
2
+ import { CoralogixDomainsApiUrlMap, SESSION_RECORDER_KEY } from '../constants';
3
+ import { BATCH_TIME_DELAY, MAX_BATCH_TIME_MS, SESSION_RECORDING_DEFAULT_ERROR_MESSAGE, SESSION_RECORDING_DEFAULT_HEADERS, SESSION_RECORDING_NETWORK_ERR0R_MESSAGE, } from './session.consts';
4
+ import { getNowTime, getSdkConfig } from '../helpers';
5
+ import { getWorkerString } from '../workers/session-recording-worker';
6
+ import { getRecordConsolePlugin, record } from 'rrweb';
7
+ export class SessionRecorder {
8
+ constructor(sessionManager, recordConfig) {
9
+ var _a;
10
+ this.isAutoStartRecording = false;
11
+ this.recordEvents = [];
12
+ this.segmentIndexCounter = 0;
13
+ this.hasRecording = false;
14
+ this.recordingStopped = false;
15
+ this.batchTimeDelay = BATCH_TIME_DELAY;
16
+ this.isErrorOccurred = false;
17
+ this.debugMode = !!((_a = getSdkConfig()) === null || _a === void 0 ? void 0 : _a.debug);
18
+ this.handleRecordEvent = (event) => {
19
+ if (!this.recordingStopped) {
20
+ this.recordEvents.push(event);
21
+ }
22
+ };
23
+ this.prepareRecordEventsBeforeSend = () => {
24
+ if (!this.recordEvents.length) {
25
+ return;
26
+ }
27
+ this.sessionWorker.postMessage({
28
+ event: 'compressRecordData',
29
+ records: this.recordEvents,
30
+ });
31
+ this.resetBatching();
32
+ };
33
+ this.sendRecordEvents = (data, chunkIndex, totalChunks, dataSplit) => {
34
+ const formData = new FormData();
35
+ const { sessionId, sessionCreationDate } = this.sessionManager.getActiveSession() || {};
36
+ const { application, public_key, coralogixDomain } = getSdkConfig();
37
+ const baseUrl = CoralogixDomainsApiUrlMap[coralogixDomain];
38
+ const fullUrl = `${baseUrl}/browser/v1/sessionrecording`;
39
+ let segmentIndex;
40
+ if (dataSplit) {
41
+ segmentIndex =
42
+ chunkIndex === totalChunks
43
+ ? this.segmentIndexCounter++
44
+ : this.segmentIndexCounter;
45
+ }
46
+ else {
47
+ segmentIndex = this.segmentIndexCounter++;
48
+ }
49
+ const metaData = {
50
+ segmentIndex,
51
+ segmentTimestamp: getNowTime(),
52
+ sessionCreationTime: sessionCreationDate,
53
+ sessionId,
54
+ application,
55
+ subIndex: chunkIndex !== null && chunkIndex !== void 0 ? chunkIndex : -1,
56
+ };
57
+ formData.append('chunk', data);
58
+ formData.append('metaData', JSON.stringify(metaData));
59
+ const sendRecordRequest = () => __awaiter(this, void 0, void 0, function* () {
60
+ const response = !this.isErrorOccurred
61
+ ? yield fetch(fullUrl, {
62
+ method: 'POST',
63
+ body: formData,
64
+ headers: Object.assign(Object.assign({}, SESSION_RECORDING_DEFAULT_HEADERS), { Authorization: `Bearer ${public_key}` }),
65
+ })
66
+ : undefined;
67
+ this.handleSessionRecordingResponse(response);
68
+ });
69
+ if (dataSplit) {
70
+ this.batchTimeout = setTimeout(sendRecordRequest, this.batchTimeDelay);
71
+ this.batchTimeDelay += BATCH_TIME_DELAY;
72
+ }
73
+ else {
74
+ sendRecordRequest();
75
+ this.batchTimeDelay = BATCH_TIME_DELAY;
76
+ }
77
+ };
78
+ window[SESSION_RECORDER_KEY] = this;
79
+ this.sessionManager = sessionManager;
80
+ this.recordConfig = this.prepareRecordConfig(recordConfig);
81
+ this.isAutoStartRecording = recordConfig.autoStartSessionRecording;
82
+ if (window.Worker) {
83
+ try {
84
+ const workerCode = `(${getWorkerString.toString()})()`;
85
+ const workerUrl = URL.createObjectURL(new Blob([workerCode]));
86
+ this.sessionWorker = new Worker(workerUrl);
87
+ if (this.isAutoStartRecording) {
88
+ this.startRecording();
89
+ }
90
+ this.registerToWorkerMessages();
91
+ }
92
+ catch (err) {
93
+ // todo:warp with debug flag
94
+ console.warn('Coralogix Browser SDK - Web worker not created due to: ', err);
95
+ }
96
+ }
97
+ else {
98
+ // todo:warp with debug flag
99
+ console.warn(SESSION_RECORDING_DEFAULT_ERROR_MESSAGE);
100
+ }
101
+ }
102
+ getSessionHasRecording() {
103
+ return this.hasRecording;
104
+ }
105
+ getIsAutoStartRecording() {
106
+ return this.isAutoStartRecording;
107
+ }
108
+ startRecording() {
109
+ if (this.recordRef) {
110
+ return;
111
+ }
112
+ if (this.debugMode) {
113
+ console.log('Coralogix Browser SDK - Session recording started');
114
+ }
115
+ this.resetBatching();
116
+ this.hasRecording = true;
117
+ this.recordingStopped = false;
118
+ this.isErrorOccurred = false;
119
+ this.recordRef = record(this.recordConfig);
120
+ this.startBatchingRecords();
121
+ }
122
+ stopRecording() {
123
+ if (!this.recordRef) {
124
+ return;
125
+ }
126
+ if (this.debugMode) {
127
+ console.log('Coralogix Browser SDK - Session recording stopped');
128
+ }
129
+ this.recordRef();
130
+ this.recordRef = undefined;
131
+ this.recordingStopped = true;
132
+ this.prepareRecordEventsBeforeSend();
133
+ this.clearIntervals();
134
+ }
135
+ clearIntervals() {
136
+ if (this.batchingTimeInterval) {
137
+ clearInterval(this.batchingTimeInterval);
138
+ }
139
+ }
140
+ prepareRecordConfig(recordConfig) {
141
+ this.recordConfig = Object.assign(Object.assign({}, recordConfig), { emit: this.handleRecordEvent, plugins: recordConfig.recordConsoleEvents
142
+ ? [getRecordConsolePlugin()]
143
+ : [] });
144
+ return this.recordConfig;
145
+ }
146
+ registerToWorkerMessages() {
147
+ this.sessionWorker.onmessage = ({ data, }) => {
148
+ switch (data.event) {
149
+ case 'sendRecordData':
150
+ this.sendRecordEvents(data.gzipBlob);
151
+ break;
152
+ case 'splitRecordData':
153
+ this.sendRecordEvents(data.gzipBlob, data.chunkIndex, data.totalChunks, true);
154
+ break;
155
+ }
156
+ };
157
+ }
158
+ resetBatching() {
159
+ this.recordEvents = [];
160
+ }
161
+ handleSessionRecordingResponse(response) {
162
+ if (!(response === null || response === void 0 ? void 0 : response.ok) && !this.isErrorOccurred) {
163
+ console.warn(SESSION_RECORDING_NETWORK_ERR0R_MESSAGE);
164
+ this.isErrorOccurred = true;
165
+ this.stopRecording();
166
+ if (this.batchTimeout) {
167
+ clearTimeout(this.batchTimeout);
168
+ }
169
+ }
170
+ else {
171
+ this.isErrorOccurred = false;
172
+ }
173
+ }
174
+ startBatchingRecords() {
175
+ this.batchingTimeInterval = setInterval(this.prepareRecordEventsBeforeSend, MAX_BATCH_TIME_MS);
176
+ }
177
+ }
178
+ //# sourceMappingURL=sessionRecorder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionRecorder.js","sourceRoot":"","sources":["../../../../../libs/browser/src/session/sessionRecorder.ts"],"names":[],"mappings":"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"}
package/src/types.d.ts CHANGED
@@ -10,6 +10,8 @@ import { StackFrame } from 'error-stack-parser';
10
10
  import { CoralogixUserInteractionInstrumentationConfig } from './instrumentations/CoralogixUserInteractionInstrumentation';
11
11
  import { Metric } from 'web-vitals/attribution';
12
12
  import { CoralogixWebVitalsInstrumentationConfig } from './instrumentations/instrumentation.model';
13
+ import { UrlBasedLabelProvider } from './label-providers/url-based-label-provider';
14
+ import { SessionRecordingConfig } from './session/session.model';
13
15
  export declare enum CoralogixEventType {
14
16
  ERROR = "error",
15
17
  NETWORK_REQUEST = "network-request",
@@ -103,6 +105,10 @@ export interface CoralogixBrowserSdkConfig {
103
105
  environment?: string;
104
106
  /** Stringify custom log data property */
105
107
  stringifyCustomLogData?: boolean;
108
+ /** Sets recording config for session replay */
109
+ sessionRecordingConfig?: SessionRecordingConfig;
110
+ /** Provide labels based on url or event */
111
+ labelProviders?: Array<LabelProvider>;
106
112
  }
107
113
  export interface CoralogixOtelWebType extends SendLog {
108
114
  /**
@@ -131,6 +137,14 @@ export interface CoralogixOtelWebType extends SendLog {
131
137
  * Provides the session id.
132
138
  */
133
139
  getSessionId: () => string | undefined;
140
+ /**
141
+ * Stop session recording
142
+ */
143
+ stopSessionRecording: () => void;
144
+ /**
145
+ * Start session recording
146
+ */
147
+ startSessionRecording: () => void;
134
148
  readonly isInited: boolean;
135
149
  }
136
150
  export interface ErrorContext {
@@ -195,6 +209,7 @@ export interface SessionContext {
195
209
  os: OS;
196
210
  osVersion: string;
197
211
  device: Device;
212
+ hasRecording: boolean;
198
213
  user_metadata?: {
199
214
  [key: string]: any;
200
215
  };
@@ -220,7 +235,7 @@ interface VersionMetaData {
220
235
  app_name: string;
221
236
  app_version: string;
222
237
  }
223
- export interface CxRum extends EventTypeContext {
238
+ export interface CxRumEvent extends EventTypeContext {
224
239
  browser_sdk: {
225
240
  version: string;
226
241
  };
@@ -246,7 +261,7 @@ export interface CxSpan {
246
261
  isErrorWithStacktrace: boolean;
247
262
  instrumentation_data?: InstrumentationData;
248
263
  text: {
249
- cx_rum: CxRum;
264
+ cx_rum: CxRumEvent;
250
265
  };
251
266
  }
252
267
  export interface Session {
@@ -267,4 +282,14 @@ export type Browser = 'Chrome' | 'Edge' | 'Firefox' | 'Safari' | 'Opera' | 'IE'
267
282
  export type OS = 'Windows' | 'MacOS' | 'Linux' | 'iOS' | 'Android' | 'Unknown';
268
283
  export type Device = 'Mobile' | 'Tablet' | 'Desktop' | 'Unknown';
269
284
  export type EventName = keyof HTMLElementEventMap;
285
+ export declare enum UrlType {
286
+ PAGE = "page",
287
+ NETWORK_REQUEST = "network_request"
288
+ }
289
+ export type LabelProviderLabels = Record<string, string | undefined>;
290
+ export interface GenericLabelProvider {
291
+ urlType?: UrlType;
292
+ providerFunc: (url: string, event: CxRumEvent) => LabelProviderLabels;
293
+ }
294
+ export type LabelProvider = UrlBasedLabelProvider | GenericLabelProvider;
270
295
  export {};
package/src/types.js CHANGED
@@ -24,4 +24,9 @@ export var OtelNetworkAttrs;
24
24
  OtelNetworkAttrs["STATUS_TEXT"] = "http.status_text";
25
25
  OtelNetworkAttrs["RESPONSE_CONTENT_LENGTH"] = "http.response_content_length";
26
26
  })(OtelNetworkAttrs || (OtelNetworkAttrs = {}));
27
+ export var UrlType;
28
+ (function (UrlType) {
29
+ UrlType["PAGE"] = "page";
30
+ UrlType["NETWORK_REQUEST"] = "network_request";
31
+ })(UrlType || (UrlType = {}));
27
32
  //# sourceMappingURL=types.js.map
package/src/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../libs/browser/src/types.ts"],"names":[],"mappings":"AAaA,MAAM,CAAN,IAAY,kBAQX;AARD,WAAY,kBAAkB;IAC5B,qCAAe,CAAA;IACf,yDAAmC,CAAA;IACnC,iCAAW,CAAA;IACX,2DAAqC,CAAA;IACrC,+CAAyB,CAAA;IACzB,4CAAsB,CAAA;IACtB,6CAAuB,CAAA;AACzB,CAAC,EARW,kBAAkB,KAAlB,kBAAkB,QAQ7B;AAED,MAAM,CAAN,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IAC1B,yCAAqB,CAAA;IACrB,yCAAqB,CAAA;IACrB,6CAAyB,CAAA;AAC3B,CAAC,EAJW,gBAAgB,KAAhB,gBAAgB,QAI3B;AAyRD,MAAM,CAAN,IAAY,gBAQX;AARD,WAAY,gBAAgB;IAC1B,0CAAsB,CAAA;IACtB,oCAAgB,CAAA;IAChB,oDAAgC,CAAA;IAChC,sCAAkB,CAAA;IAClB,0CAAsB,CAAA;IACtB,oDAAgC,CAAA;IAChC,4EAAwD,CAAA;AAC1D,CAAC,EARW,gBAAgB,KAAhB,gBAAgB,QAQ3B"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../libs/browser/src/types.ts"],"names":[],"mappings":"AAeA,MAAM,CAAN,IAAY,kBAQX;AARD,WAAY,kBAAkB;IAC5B,qCAAe,CAAA;IACf,yDAAmC,CAAA;IACnC,iCAAW,CAAA;IACX,2DAAqC,CAAA;IACrC,+CAAyB,CAAA;IACzB,4CAAsB,CAAA;IACtB,6CAAuB,CAAA;AACzB,CAAC,EARW,kBAAkB,KAAlB,kBAAkB,QAQ7B;AAED,MAAM,CAAN,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IAC1B,yCAAqB,CAAA;IACrB,yCAAqB,CAAA;IACrB,6CAAyB,CAAA;AAC3B,CAAC,EAJW,gBAAgB,KAAhB,gBAAgB,QAI3B;AA0SD,MAAM,CAAN,IAAY,gBAQX;AARD,WAAY,gBAAgB;IAC1B,0CAAsB,CAAA;IACtB,oCAAgB,CAAA;IAChB,oDAAgC,CAAA;IAChC,sCAAkB,CAAA;IAClB,0CAAsB,CAAA;IACtB,oDAAgC,CAAA;IAChC,4EAAwD,CAAA;AAC1D,CAAC,EARW,gBAAgB,KAAhB,gBAAgB,QAQ3B;AAiBD,MAAM,CAAN,IAAY,OAGX;AAHD,WAAY,OAAO;IACjB,wBAAa,CAAA;IACb,8CAAmC,CAAA;AACrC,CAAC,EAHW,OAAO,KAAP,OAAO,QAGlB"}
package/src/utils.d.ts CHANGED
@@ -22,3 +22,7 @@ export declare function generateWebVitalUniqueID(): string;
22
22
  export declare function rateForTBTMetricValue(value: number): WebVitalsRating;
23
23
  export declare function flattenAttributes(attributes: Attributes): Attributes;
24
24
  export declare const getCircularReplacer: () => (key: any, value: any) => undefined | any;
25
+ export declare function deepClone<T>(obj: T): T;
26
+ export declare function saveInternalRumData(key: string, value: any): void;
27
+ export declare function getInternalRumData<T>(key: string): T;
28
+ export declare function partition<T>(array: T[], predicate: (value: T) => boolean): [T[], T[]];
package/src/utils.js CHANGED
@@ -1,7 +1,8 @@
1
- import { CoralogixAttributes, ID_MASK_KEY, NANOID_REGEX, OPTIONS_DEFAULTS, UUID_REGEX, } from './constants';
1
+ var _a;
2
+ import { CoralogixAttributes, ID_MASK_KEY, NANOID_REGEX, OPTIONS_DEFAULTS, RUM_INTERNAL_DATA_KEY, UUID_REGEX, } from './constants';
2
3
  import { LONGTASK_DURATION } from './instrumentations/instrumentation.consts';
3
4
  import { omit } from 'lodash-es';
4
- export const supportedPerformanceTypes = !(window === null || window === void 0 ? void 0 : window.PerformanceObserver)
5
+ export const supportedPerformanceTypes = !((_a = window === null || window === void 0 ? void 0 : window.PerformanceObserver) === null || _a === void 0 ? void 0 : _a.supportedEntryTypes)
5
6
  ? {}
6
7
  : window.PerformanceObserver.supportedEntryTypes.reduce((obj, type) => {
7
8
  obj[type] = true;
@@ -55,7 +56,7 @@ export const getUrlFragments = (url) => {
55
56
  return replacedFragments === null || replacedFragments === void 0 ? void 0 : replacedFragments.join('/');
56
57
  };
57
58
  export function parseUserAgent(userAgent) {
58
- var _a;
59
+ var _a, _b;
59
60
  const browsers = {
60
61
  Chrome: /Chrome\/([\d.]+)/,
61
62
  Firefox: /Firefox\/([\d.]+)/,
@@ -92,7 +93,7 @@ export function parseUserAgent(userAgent) {
92
93
  const match = userAgent.match(regex);
93
94
  if (match) {
94
95
  os = name;
95
- osVersion = ((_a = match[1]) === null || _a === void 0 ? void 0 : _a.replaceAll('_', '.')) || 'Unknown';
96
+ osVersion = ((_b = (_a = match[1]) === null || _a === void 0 ? void 0 : _a.split('_')) === null || _b === void 0 ? void 0 : _b.join('.')) || 'Unknown';
96
97
  break;
97
98
  }
98
99
  }
@@ -146,4 +147,29 @@ export const getCircularReplacer = () => {
146
147
  return value;
147
148
  };
148
149
  };
150
+ export function deepClone(obj) {
151
+ return JSON.parse(JSON.stringify(obj));
152
+ }
153
+ export function saveInternalRumData(key, value) {
154
+ if (!window[RUM_INTERNAL_DATA_KEY]) {
155
+ window[RUM_INTERNAL_DATA_KEY] = {};
156
+ }
157
+ window[RUM_INTERNAL_DATA_KEY][key] = value;
158
+ }
159
+ export function getInternalRumData(key) {
160
+ return window[RUM_INTERNAL_DATA_KEY][key];
161
+ }
162
+ export function partition(array, predicate) {
163
+ const truthyValues = [];
164
+ const falsyValues = [];
165
+ for (const element of array) {
166
+ if (predicate(element)) {
167
+ truthyValues.push(element);
168
+ }
169
+ else {
170
+ falsyValues.push(element);
171
+ }
172
+ }
173
+ return [truthyValues, falsyValues];
174
+ }
149
175
  //# sourceMappingURL=utils.js.map
package/src/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../libs/browser/src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../libs/browser/src/utils.ts"],"names":[],"mappings":"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"}
package/src/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const SDK_VERSION = "1.0.73";
1
+ export declare const SDK_VERSION = "1.0.77";
package/src/version.js CHANGED
@@ -1,2 +1,2 @@
1
- export const SDK_VERSION = '1.0.73';
1
+ export const SDK_VERSION = '1.0.77';
2
2
  //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ export declare function getWorkerString(): void;