@coralogix/browser 1.0.81 → 1.0.86
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/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 +1 -0
- package/src/constants.js +5 -1
- package/src/constants.js.map +1 -1
- package/src/instrumentations/CoralogixLongTaskInstrumentation.d.ts +0 -2
- package/src/instrumentations/CoralogixLongTaskInstrumentation.js +3 -12
- package/src/instrumentations/CoralogixLongTaskInstrumentation.js.map +1 -1
- package/src/instrumentations/CoralogixResourcesInstrumentation.js +3 -3
- package/src/instrumentations/CoralogixResourcesInstrumentation.js.map +1 -1
- package/src/instrumentations/CoralogixWebVitalsInstrumentation.d.ts +0 -2
- package/src/instrumentations/CoralogixWebVitalsInstrumentation.js +28 -42
- package/src/instrumentations/CoralogixWebVitalsInstrumentation.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 +32 -14
- package/src/session/sessionRecorder.js.map +1 -1
- package/src/types.d.ts +2 -1
- package/src/types.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
|
@@ -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;
|
|
@@ -10,12 +10,13 @@ export class SessionRecorder {
|
|
|
10
10
|
var _a;
|
|
11
11
|
this.isAutoStartRecording = false;
|
|
12
12
|
this.recordEvents = [];
|
|
13
|
-
this.segmentIndexCounter =
|
|
13
|
+
this.segmentIndexCounter = {};
|
|
14
14
|
this.hasRecording = false;
|
|
15
15
|
this.recordingStopped = false;
|
|
16
16
|
this.batchTimeDelay = BATCH_TIME_DELAY;
|
|
17
17
|
this.isErrorOccurred = false;
|
|
18
18
|
this.debugMode = !!((_a = getSdkConfig()) === null || _a === void 0 ? void 0 : _a.debug);
|
|
19
|
+
this._recordingStopDueToTimeout = false;
|
|
19
20
|
this.handleRecordEvent = (event) => {
|
|
20
21
|
if (!this.recordingStopped) {
|
|
21
22
|
this.recordEvents.push(event);
|
|
@@ -25,32 +26,37 @@ export class SessionRecorder {
|
|
|
25
26
|
if (!this.recordEvents.length) {
|
|
26
27
|
return;
|
|
27
28
|
}
|
|
29
|
+
const { sessionId, sessionCreationDate } = this.sessionManager.getActiveSession() || {};
|
|
28
30
|
this.sessionWorker.postMessage({
|
|
29
31
|
event: 'compressRecordData',
|
|
30
32
|
records: this.recordEvents,
|
|
33
|
+
sessionId,
|
|
34
|
+
sessionCreationDate,
|
|
31
35
|
});
|
|
32
36
|
this.resetBatching();
|
|
33
37
|
};
|
|
34
|
-
this.sendRecordEvents = (data, chunkIndex, totalChunks, dataSplit) => {
|
|
38
|
+
this.sendRecordEvents = (sessionId, sessionCreationTime, data, chunkIndex, totalChunks, dataSplit) => {
|
|
35
39
|
const formData = new FormData();
|
|
36
|
-
const { sessionId, sessionCreationDate } = this.sessionManager.getActiveSession() || {};
|
|
37
40
|
const { application, public_key, coralogixDomain } = getSdkConfig();
|
|
38
41
|
const baseUrl = CoralogixDomainsApiUrlMap[coralogixDomain];
|
|
39
42
|
const fullUrl = `${baseUrl}/${SESSION_RECORDING_POSTFIX_URL}`;
|
|
40
43
|
let segmentIndex;
|
|
44
|
+
if (!this.segmentIndexCounter[sessionId]) {
|
|
45
|
+
this.segmentIndexCounter[sessionId] = 0;
|
|
46
|
+
}
|
|
41
47
|
if (dataSplit) {
|
|
42
48
|
segmentIndex =
|
|
43
49
|
chunkIndex === totalChunks
|
|
44
|
-
? this.segmentIndexCounter++
|
|
45
|
-
: this.segmentIndexCounter;
|
|
50
|
+
? this.segmentIndexCounter[sessionId]++
|
|
51
|
+
: this.segmentIndexCounter[sessionId];
|
|
46
52
|
}
|
|
47
53
|
else {
|
|
48
|
-
segmentIndex = this.segmentIndexCounter++;
|
|
54
|
+
segmentIndex = this.segmentIndexCounter[sessionId]++;
|
|
49
55
|
}
|
|
50
56
|
const metaData = {
|
|
51
57
|
segmentIndex,
|
|
52
58
|
segmentTimestamp: getNowTime(),
|
|
53
|
-
sessionCreationTime
|
|
59
|
+
sessionCreationTime,
|
|
54
60
|
sessionId,
|
|
55
61
|
application,
|
|
56
62
|
subIndex: chunkIndex !== null && chunkIndex !== void 0 ? chunkIndex : -1,
|
|
@@ -91,21 +97,31 @@ export class SessionRecorder {
|
|
|
91
97
|
this.registerToWorkerMessages();
|
|
92
98
|
}
|
|
93
99
|
catch (err) {
|
|
94
|
-
|
|
95
|
-
|
|
100
|
+
if (this.debugMode) {
|
|
101
|
+
console.warn('Coralogix Browser SDK - Web worker not created due to: ', err);
|
|
102
|
+
}
|
|
96
103
|
}
|
|
97
104
|
}
|
|
98
105
|
else {
|
|
99
|
-
|
|
100
|
-
|
|
106
|
+
if (this.debugMode) {
|
|
107
|
+
console.warn(SESSION_RECORDING_DEFAULT_ERROR_MESSAGE);
|
|
108
|
+
}
|
|
101
109
|
}
|
|
102
110
|
}
|
|
103
111
|
getSessionHasRecording() {
|
|
104
|
-
|
|
112
|
+
var _a;
|
|
113
|
+
return (this.hasRecording &&
|
|
114
|
+
!!this.segmentIndexCounter[(_a = this.sessionManager.getActiveSession()) === null || _a === void 0 ? void 0 : _a.sessionId]);
|
|
105
115
|
}
|
|
106
116
|
getIsAutoStartRecording() {
|
|
107
117
|
return this.isAutoStartRecording;
|
|
108
118
|
}
|
|
119
|
+
set recordingStopDueToTimeout(value) {
|
|
120
|
+
this._recordingStopDueToTimeout = value;
|
|
121
|
+
}
|
|
122
|
+
get recordingStopDueToTimeout() {
|
|
123
|
+
return this._recordingStopDueToTimeout;
|
|
124
|
+
}
|
|
109
125
|
startRecording() {
|
|
110
126
|
if (this.recordRef) {
|
|
111
127
|
return;
|
|
@@ -117,6 +133,7 @@ export class SessionRecorder {
|
|
|
117
133
|
this.hasRecording = true;
|
|
118
134
|
this.recordingStopped = false;
|
|
119
135
|
this.isErrorOccurred = false;
|
|
136
|
+
this.recordingStopDueToTimeout = false;
|
|
120
137
|
this.recordRef = record(this.recordConfig);
|
|
121
138
|
this.startBatchingRecords();
|
|
122
139
|
reportInternalEvent('recording-start');
|
|
@@ -131,6 +148,7 @@ export class SessionRecorder {
|
|
|
131
148
|
this.recordRef();
|
|
132
149
|
this.recordRef = undefined;
|
|
133
150
|
this.recordingStopped = true;
|
|
151
|
+
this.hasRecording = false;
|
|
134
152
|
this.prepareRecordEventsBeforeSend();
|
|
135
153
|
this.clearIntervals();
|
|
136
154
|
reportInternalEvent('recording-stop');
|
|
@@ -150,10 +168,10 @@ export class SessionRecorder {
|
|
|
150
168
|
this.sessionWorker.onmessage = ({ data, }) => {
|
|
151
169
|
switch (data.event) {
|
|
152
170
|
case 'sendRecordData':
|
|
153
|
-
this.sendRecordEvents(data.gzipBlob);
|
|
171
|
+
this.sendRecordEvents(data.sessionId, data.sessionCreationDate, data.gzipBlob);
|
|
154
172
|
break;
|
|
155
173
|
case 'splitRecordData':
|
|
156
|
-
this.sendRecordEvents(data.gzipBlob, data.chunkIndex, data.totalChunks, true);
|
|
174
|
+
this.sendRecordEvents(data.sessionId, data.sessionCreationDate, data.gzipBlob, data.chunkIndex, data.totalChunks, true);
|
|
157
175
|
break;
|
|
158
176
|
}
|
|
159
177
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessionRecorder.js","sourceRoot":"","sources":["../../../../../libs/browser/src/session/sessionRecorder.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAO/E,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,uCAAuC,EACvC,iCAAiC,EACjC,uCAAuC,EACvC,6BAA6B,GAC9B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEtD,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,MAAM,OAAO,eAAe;
|
|
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
|
@@ -194,7 +194,6 @@ export interface InteractionContext {
|
|
|
194
194
|
}
|
|
195
195
|
export interface LongTaskContext extends Omit<PerformanceEntry, 'toJSON'> {
|
|
196
196
|
id: string;
|
|
197
|
-
type: 'regular' | 'after_page_loaded';
|
|
198
197
|
}
|
|
199
198
|
export interface WebVitalsContext extends Metric {
|
|
200
199
|
}
|
|
@@ -217,6 +216,8 @@ export interface EventTypeContext {
|
|
|
217
216
|
export interface SessionContext {
|
|
218
217
|
session_id: string;
|
|
219
218
|
session_creation_date: number;
|
|
219
|
+
prev_session_id?: string;
|
|
220
|
+
prev_session_creation_date?: number;
|
|
220
221
|
user_agent: string;
|
|
221
222
|
user_id: string;
|
|
222
223
|
user_name?: string;
|
package/src/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../libs/browser/src/types.ts"],"names":[],"mappings":"AAgBA,MAAM,CAAN,IAAY,kBASX;AATD,WAAY,kBAAkB;IAC5B,qCAAe,CAAA;IACf,yDAAmC,CAAA;IACnC,iCAAW,CAAA;IACX,2DAAqC,CAAA;IACrC,+CAAyB,CAAA;IACzB,4CAAsB,CAAA;IACtB,6CAAuB,CAAA;IACvB,2CAAqB,CAAA;AACvB,CAAC,EATW,kBAAkB,KAAlB,kBAAkB,QAS7B;AAED,MAAM,CAAN,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IAC1B,yCAAqB,CAAA;IACrB,yCAAqB,CAAA;IACrB,6CAAyB,CAAA;AAC3B,CAAC,EAJW,gBAAgB,KAAhB,gBAAgB,QAI3B;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../libs/browser/src/types.ts"],"names":[],"mappings":"AAgBA,MAAM,CAAN,IAAY,kBASX;AATD,WAAY,kBAAkB;IAC5B,qCAAe,CAAA;IACf,yDAAmC,CAAA;IACnC,iCAAW,CAAA;IACX,2DAAqC,CAAA;IACrC,+CAAyB,CAAA;IACzB,4CAAsB,CAAA;IACtB,6CAAuB,CAAA;IACvB,2CAAqB,CAAA;AACvB,CAAC,EATW,kBAAkB,KAAlB,kBAAkB,QAS7B;AAED,MAAM,CAAN,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IAC1B,yCAAqB,CAAA;IACrB,yCAAqB,CAAA;IACrB,6CAAyB,CAAA;AAC3B,CAAC,EAJW,gBAAgB,KAAhB,gBAAgB,QAI3B;AAkUD,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;AAsBD,MAAM,CAAN,IAAY,OAGX;AAHD,WAAY,OAAO;IACjB,wBAAa,CAAA;IACb,8CAAmC,CAAA;AACrC,CAAC,EAHW,OAAO,KAAP,OAAO,QAGlB"}
|
package/src/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const SDK_VERSION = "1.0.
|
|
1
|
+
export declare const SDK_VERSION = "1.0.86";
|
package/src/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const SDK_VERSION = '1.0.
|
|
1
|
+
export const SDK_VERSION = '1.0.86';
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
|
@@ -3692,6 +3692,8 @@ export function getWorkerString() {
|
|
|
3692
3692
|
});
|
|
3693
3693
|
self.onmessage = ({ data }) => {
|
|
3694
3694
|
const recordsData = omitSquareBrackets(JSON.stringify(data.records));
|
|
3695
|
+
const sessionId = data.sessionId;
|
|
3696
|
+
const sessionCreationDate = data.sessionCreationDate;
|
|
3695
3697
|
const gzipData = coralogixGzipFunc(recordsData);
|
|
3696
3698
|
const gzipSize = gzipData.byteLength;
|
|
3697
3699
|
if (gzipSize >= MAX_CHUNK_SIZE) {
|
|
@@ -3700,11 +3702,11 @@ export function getWorkerString() {
|
|
|
3700
3702
|
const start = i * MAX_CHUNK_SIZE;
|
|
3701
3703
|
const end = (i + 1) * MAX_CHUNK_SIZE;
|
|
3702
3704
|
const chunk = gzipData.slice(start, end);
|
|
3703
|
-
createBlobAndSend(chunk, i, totalChunks - 1, 'splitRecordData');
|
|
3705
|
+
createBlobAndSend(sessionId, sessionCreationDate, chunk, i, totalChunks - 1, 'splitRecordData');
|
|
3704
3706
|
}
|
|
3705
3707
|
}
|
|
3706
3708
|
else {
|
|
3707
|
-
createBlobAndSend(gzipData);
|
|
3709
|
+
createBlobAndSend(sessionId, sessionCreationDate, gzipData);
|
|
3708
3710
|
}
|
|
3709
3711
|
};
|
|
3710
3712
|
self.onerror = (err) => {
|
|
@@ -3714,11 +3716,13 @@ export function getWorkerString() {
|
|
|
3714
3716
|
function omitSquareBrackets(json) {
|
|
3715
3717
|
return json.slice(1, -1);
|
|
3716
3718
|
}
|
|
3717
|
-
function createBlobAndSend(gzipData, chunkIndex, totalChunks, event = 'sendRecordData') {
|
|
3719
|
+
function createBlobAndSend(sessionId, sessionCreationDate, gzipData, chunkIndex, totalChunks, event = 'sendRecordData') {
|
|
3718
3720
|
const blob = new Blob([gzipData], {
|
|
3719
3721
|
type: 'application/octet-stream',
|
|
3720
3722
|
});
|
|
3721
3723
|
self.postMessage({
|
|
3724
|
+
sessionId,
|
|
3725
|
+
sessionCreationDate,
|
|
3722
3726
|
gzipBlob: blob,
|
|
3723
3727
|
chunkIndex,
|
|
3724
3728
|
totalChunks,
|