@multiplayer-app/session-recorder-browser 1.2.37 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/index.js +339 -232
- package/dist/browser/index.js.map +1 -1
- package/dist/config/constants.d.ts +3 -0
- package/dist/config/constants.d.ts.map +1 -1
- package/dist/config/constants.js +3 -0
- package/dist/config/constants.js.map +1 -1
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +1 -0
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/session-recorder.d.ts.map +1 -1
- package/dist/config/session-recorder.js +2 -0
- package/dist/config/session-recorder.js.map +1 -1
- package/dist/exporters/index.js +182 -114
- package/dist/exporters/index.js.map +1 -1
- package/dist/exporters.d.ts +1 -1
- package/dist/exporters.d.ts.map +1 -1
- package/dist/exporters.js +1 -1
- package/dist/exporters.js.map +1 -1
- package/dist/index.js +337 -231
- package/dist/index.js.map +1 -1
- package/dist/index.umd.js +337 -231
- package/dist/index.umd.js.map +1 -1
- package/dist/otel/index.d.ts.map +1 -1
- package/dist/otel/index.js +4 -0
- package/dist/otel/index.js.map +1 -1
- package/dist/patch/fetch.js +1 -0
- package/dist/patch/fetch.js.map +1 -1
- package/dist/rrweb/index.d.ts +2 -3
- package/dist/rrweb/index.d.ts.map +1 -1
- package/dist/rrweb/index.js +7 -11
- package/dist/rrweb/index.js.map +1 -1
- package/dist/services/api.service.d.ts +8 -2
- package/dist/services/api.service.d.ts.map +1 -1
- package/dist/services/api.service.js.map +1 -1
- package/dist/{rrweb/exporter.d.ts → services/socket.service.d.ts} +12 -3
- package/dist/services/socket.service.d.ts.map +1 -0
- package/dist/{rrweb/exporter.js → services/socket.service.js} +41 -5
- package/dist/services/socket.service.js.map +1 -0
- package/dist/sessionRecorder.d.ts +6 -2
- package/dist/sessionRecorder.d.ts.map +1 -1
- package/dist/sessionRecorder.js +33 -3
- package/dist/sessionRecorder.js.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/sessionRecorder.d.ts +5 -0
- package/dist/types/sessionRecorder.d.ts.map +1 -1
- package/dist/types/sessionRecorder.js.map +1 -1
- package/package.json +3 -3
- package/dist/rrweb/exporter.d.ts.map +0 -1
- package/dist/rrweb/exporter.js.map +0 -1
package/dist/index.umd.js
CHANGED
|
@@ -24288,6 +24288,8 @@ module.exports = {
|
|
|
24288
24288
|
/* harmony export */ OTEL_IGNORE_URLS: () => (/* binding */ OTEL_IGNORE_URLS),
|
|
24289
24289
|
/* harmony export */ OTEL_MP_SAMPLE_TRACE_RATIO: () => (/* binding */ OTEL_MP_SAMPLE_TRACE_RATIO),
|
|
24290
24290
|
/* harmony export */ PACKAGE_VERSION_EXPORT: () => (/* binding */ PACKAGE_VERSION_EXPORT),
|
|
24291
|
+
/* harmony export */ REMOTE_SESSION_RECORDING_START: () => (/* binding */ REMOTE_SESSION_RECORDING_START),
|
|
24292
|
+
/* harmony export */ REMOTE_SESSION_RECORDING_STOP: () => (/* binding */ REMOTE_SESSION_RECORDING_STOP),
|
|
24291
24293
|
/* harmony export */ SESSION_ADD_EVENT: () => (/* binding */ SESSION_ADD_EVENT),
|
|
24292
24294
|
/* harmony export */ SESSION_AUTO_CREATED: () => (/* binding */ SESSION_AUTO_CREATED),
|
|
24293
24295
|
/* harmony export */ SESSION_ID_PROP_NAME: () => (/* binding */ SESSION_ID_PROP_NAME),
|
|
@@ -24298,7 +24300,8 @@ module.exports = {
|
|
|
24298
24300
|
/* harmony export */ SESSION_STOPPED_EVENT: () => (/* binding */ SESSION_STOPPED_EVENT),
|
|
24299
24301
|
/* harmony export */ SESSION_SUBSCRIBE_EVENT: () => (/* binding */ SESSION_SUBSCRIBE_EVENT),
|
|
24300
24302
|
/* harmony export */ SESSION_TYPE_PROP_NAME: () => (/* binding */ SESSION_TYPE_PROP_NAME),
|
|
24301
|
-
/* harmony export */ SESSION_UNSUBSCRIBE_EVENT: () => (/* binding */ SESSION_UNSUBSCRIBE_EVENT)
|
|
24303
|
+
/* harmony export */ SESSION_UNSUBSCRIBE_EVENT: () => (/* binding */ SESSION_UNSUBSCRIBE_EVENT),
|
|
24304
|
+
/* harmony export */ SOCKET_SET_USER_EVENT: () => (/* binding */ SOCKET_SET_USER_EVENT)
|
|
24302
24305
|
/* harmony export */ });
|
|
24303
24306
|
/* unused harmony export SESSION_SHORT_ID_PROP_NAME */
|
|
24304
24307
|
const OTEL_MP_SAMPLE_TRACE_RATIO = 0.15;
|
|
@@ -24313,11 +24316,14 @@ const SESSION_SUBSCRIBE_EVENT = 'debug-session:subscribe';
|
|
|
24313
24316
|
const SESSION_UNSUBSCRIBE_EVENT = 'debug-session:unsubscribe';
|
|
24314
24317
|
const SESSION_AUTO_CREATED = 'debug-session:auto-created';
|
|
24315
24318
|
const SESSION_ADD_EVENT = 'debug-session:rrweb:add-event';
|
|
24319
|
+
const SOCKET_SET_USER_EVENT = 'socket:set-user';
|
|
24316
24320
|
const DEFAULT_MAX_HTTP_CAPTURING_PAYLOAD_SIZE = 100000;
|
|
24317
24321
|
const SESSION_RESPONSE = 'multiplayer-debug-session-response';
|
|
24318
24322
|
const CONTINUOUS_DEBUGGING_TIMEOUT = 60000; // 1 minutes
|
|
24319
24323
|
const DEBUG_SESSION_MAX_DURATION_SECONDS = 10 * 60 + 30; // TODO: move to shared config otel core
|
|
24320
|
-
const
|
|
24324
|
+
const REMOTE_SESSION_RECORDING_START = 'remote-session-recording:start';
|
|
24325
|
+
const REMOTE_SESSION_RECORDING_STOP = 'remote-session-recording:stop';
|
|
24326
|
+
const PACKAGE_VERSION_EXPORT = "1.3.0" || 0;
|
|
24321
24327
|
// Regex patterns for OpenTelemetry ignore URLs
|
|
24322
24328
|
const OTEL_IGNORE_URLS = [
|
|
24323
24329
|
// Traces endpoint
|
|
@@ -24412,6 +24418,7 @@ const BASE_CONFIG = {
|
|
|
24412
24418
|
captureHeaders: true,
|
|
24413
24419
|
masking: DEFAULT_MASKING_CONFIG,
|
|
24414
24420
|
widgetTextOverrides: DEFAULT_WIDGET_TEXT_CONFIG,
|
|
24421
|
+
useWebsocket: true,
|
|
24415
24422
|
};
|
|
24416
24423
|
|
|
24417
24424
|
|
|
@@ -24430,6 +24437,8 @@ const BASE_CONFIG = {
|
|
|
24430
24437
|
/* harmony export */ DEFAULT_MAX_HTTP_CAPTURING_PAYLOAD_SIZE: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.DEFAULT_MAX_HTTP_CAPTURING_PAYLOAD_SIZE),
|
|
24431
24438
|
/* harmony export */ DEFAULT_WIDGET_TEXT_CONFIG: () => (/* reexport safe */ _defaults__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_WIDGET_TEXT_CONFIG),
|
|
24432
24439
|
/* harmony export */ OTEL_IGNORE_URLS: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.OTEL_IGNORE_URLS),
|
|
24440
|
+
/* harmony export */ REMOTE_SESSION_RECORDING_START: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.REMOTE_SESSION_RECORDING_START),
|
|
24441
|
+
/* harmony export */ REMOTE_SESSION_RECORDING_STOP: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.REMOTE_SESSION_RECORDING_STOP),
|
|
24433
24442
|
/* harmony export */ SESSION_ADD_EVENT: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.SESSION_ADD_EVENT),
|
|
24434
24443
|
/* harmony export */ SESSION_AUTO_CREATED: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.SESSION_AUTO_CREATED),
|
|
24435
24444
|
/* harmony export */ SESSION_ID_PROP_NAME: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.SESSION_ID_PROP_NAME),
|
|
@@ -24441,6 +24450,7 @@ const BASE_CONFIG = {
|
|
|
24441
24450
|
/* harmony export */ SESSION_SUBSCRIBE_EVENT: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.SESSION_SUBSCRIBE_EVENT),
|
|
24442
24451
|
/* harmony export */ SESSION_TYPE_PROP_NAME: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.SESSION_TYPE_PROP_NAME),
|
|
24443
24452
|
/* harmony export */ SESSION_UNSUBSCRIBE_EVENT: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.SESSION_UNSUBSCRIBE_EVENT),
|
|
24453
|
+
/* harmony export */ SOCKET_SET_USER_EVENT: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.SOCKET_SET_USER_EVENT),
|
|
24444
24454
|
/* harmony export */ getSessionRecorderConfig: () => (/* reexport safe */ _session_recorder__WEBPACK_IMPORTED_MODULE_4__.getSessionRecorderConfig)
|
|
24445
24455
|
/* harmony export */ });
|
|
24446
24456
|
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants */ "./src/config/constants.ts");
|
|
@@ -24550,6 +24560,7 @@ const getWidgetTextOverridesConfig = (config, defaultConfig) => {
|
|
|
24550
24560
|
};
|
|
24551
24561
|
};
|
|
24552
24562
|
const getSessionRecorderConfig = (c) => {
|
|
24563
|
+
var _a;
|
|
24553
24564
|
if (!c) {
|
|
24554
24565
|
return _defaults__WEBPACK_IMPORTED_MODULE_1__.BASE_CONFIG;
|
|
24555
24566
|
}
|
|
@@ -24575,6 +24586,7 @@ const getSessionRecorderConfig = (c) => {
|
|
|
24575
24586
|
captureHeaders: (0,_validators__WEBPACK_IMPORTED_MODULE_3__.isValidBoolean)(c.captureHeaders, _defaults__WEBPACK_IMPORTED_MODULE_1__.BASE_CONFIG.captureHeaders),
|
|
24576
24587
|
masking: (0,_masking__WEBPACK_IMPORTED_MODULE_2__.getMaskingConfig)(c.masking),
|
|
24577
24588
|
widgetTextOverrides: getWidgetTextOverridesConfig(c.widgetTextOverrides, _defaults__WEBPACK_IMPORTED_MODULE_1__.BASE_CONFIG.widgetTextOverrides),
|
|
24589
|
+
useWebsocket: (0,_validators__WEBPACK_IMPORTED_MODULE_3__.isValidBoolean)(c.useWebsocket, (_a = _defaults__WEBPACK_IMPORTED_MODULE_1__.BASE_CONFIG.useWebsocket) !== null && _a !== void 0 ? _a : false),
|
|
24578
24590
|
};
|
|
24579
24591
|
};
|
|
24580
24592
|
|
|
@@ -25379,6 +25391,7 @@ class TracerBrowserSDK {
|
|
|
25379
25391
|
});
|
|
25380
25392
|
return;
|
|
25381
25393
|
}
|
|
25394
|
+
// eslint-disable-next-line
|
|
25382
25395
|
}
|
|
25383
25396
|
catch (_ignored) { }
|
|
25384
25397
|
// Fallback: create a short-lived span to hold the exception details
|
|
@@ -25394,6 +25407,7 @@ class TracerBrowserSDK {
|
|
|
25394
25407
|
...(errorInfo || {}),
|
|
25395
25408
|
});
|
|
25396
25409
|
span.end();
|
|
25410
|
+
// eslint-disable-next-line
|
|
25397
25411
|
}
|
|
25398
25412
|
catch (_ignored) { }
|
|
25399
25413
|
}
|
|
@@ -25415,12 +25429,14 @@ class TracerBrowserSDK {
|
|
|
25415
25429
|
return;
|
|
25416
25430
|
if (typeof window === 'undefined')
|
|
25417
25431
|
return;
|
|
25432
|
+
// eslint-disable-next-line
|
|
25418
25433
|
const errorHandler = (event) => {
|
|
25419
25434
|
const err = (event === null || event === void 0 ? void 0 : event.error) instanceof Error
|
|
25420
25435
|
? event.error
|
|
25421
25436
|
: new Error((event === null || event === void 0 ? void 0 : event.message) || 'Script error');
|
|
25422
25437
|
this.captureException(err);
|
|
25423
25438
|
};
|
|
25439
|
+
// eslint-disable-next-line
|
|
25424
25440
|
const rejectionHandler = (event) => {
|
|
25425
25441
|
const reason = (event && 'reason' in event) ? event.reason : undefined;
|
|
25426
25442
|
const err = reason instanceof Error
|
|
@@ -25597,6 +25613,7 @@ if (typeof window !== 'undefined' && typeof window.fetch !== 'undefined') {
|
|
|
25597
25613
|
: (typeof input === 'string' || input instanceof URL ? String(input) : '');
|
|
25598
25614
|
// Only attempt to read the body from init (safe); avoid constructing/cloning Requests
|
|
25599
25615
|
// If the caller passed a Request as input, we do not attempt to read its body here
|
|
25616
|
+
// eslint-disable-next-line
|
|
25600
25617
|
const candidateBody = init === null || init === void 0 ? void 0 : init.body;
|
|
25601
25618
|
if (!(0,_utils_type_utils__WEBPACK_IMPORTED_MODULE_0__.isNullish)(candidateBody)) {
|
|
25602
25619
|
const requestBody = _tryReadFetchBody({
|
|
@@ -25788,169 +25805,6 @@ if (typeof XMLHttpRequest !== 'undefined') {
|
|
|
25788
25805
|
}
|
|
25789
25806
|
|
|
25790
25807
|
|
|
25791
|
-
/***/ }),
|
|
25792
|
-
|
|
25793
|
-
/***/ "./src/rrweb/exporter.ts":
|
|
25794
|
-
/*!*******************************!*\
|
|
25795
|
-
!*** ./src/rrweb/exporter.ts ***!
|
|
25796
|
-
\*******************************/
|
|
25797
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
25798
|
-
|
|
25799
|
-
"use strict";
|
|
25800
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
25801
|
-
/* harmony export */ RrwebEventExporter: () => (/* binding */ RrwebEventExporter)
|
|
25802
|
-
/* harmony export */ });
|
|
25803
|
-
/* harmony import */ var socket_io_client__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! socket.io-client */ "../../node_modules/socket.io-client/build/esm/index.js");
|
|
25804
|
-
/* harmony import */ var _eventBus__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../eventBus */ "./src/eventBus.ts");
|
|
25805
|
-
/* harmony import */ var _services_messaging_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../services/messaging.service */ "./src/services/messaging.service.ts");
|
|
25806
|
-
/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../config */ "./src/config/index.ts");
|
|
25807
|
-
|
|
25808
|
-
|
|
25809
|
-
|
|
25810
|
-
|
|
25811
|
-
const MAX_RECONNECTION_ATTEMPTS = 2;
|
|
25812
|
-
class RrwebEventExporter {
|
|
25813
|
-
constructor(options) {
|
|
25814
|
-
this.options = options;
|
|
25815
|
-
this.socket = null;
|
|
25816
|
-
this.queue = [];
|
|
25817
|
-
this.isConnecting = false;
|
|
25818
|
-
this.isConnected = false;
|
|
25819
|
-
this.usePostMessage = false;
|
|
25820
|
-
this.attempts = 0;
|
|
25821
|
-
this.sessionId = null;
|
|
25822
|
-
}
|
|
25823
|
-
init() {
|
|
25824
|
-
if (this.isConnecting || this.isConnected)
|
|
25825
|
-
return;
|
|
25826
|
-
this.attempts++;
|
|
25827
|
-
this.isConnecting = true;
|
|
25828
|
-
this.usePostMessage = false;
|
|
25829
|
-
this.socket = (0,socket_io_client__WEBPACK_IMPORTED_MODULE_0__["default"])(this.options.socketUrl, {
|
|
25830
|
-
path: '/v0/radar/ws',
|
|
25831
|
-
auth: {
|
|
25832
|
-
'x-api-key': this.options.apiKey,
|
|
25833
|
-
},
|
|
25834
|
-
reconnectionAttempts: 2,
|
|
25835
|
-
transports: ['websocket'],
|
|
25836
|
-
});
|
|
25837
|
-
// this.socket.on('connect', () => {
|
|
25838
|
-
// this.isConnecting = false
|
|
25839
|
-
// this.isConnected = true
|
|
25840
|
-
// this.usePostMessage = false
|
|
25841
|
-
// this.flushQueue()
|
|
25842
|
-
// })
|
|
25843
|
-
this.socket.on('ready', () => {
|
|
25844
|
-
this.isConnecting = false;
|
|
25845
|
-
this.isConnected = true;
|
|
25846
|
-
this.usePostMessage = false;
|
|
25847
|
-
this.flushQueue();
|
|
25848
|
-
});
|
|
25849
|
-
this.socket.on('disconnect', (err) => {
|
|
25850
|
-
this.isConnecting = false;
|
|
25851
|
-
this.isConnected = false;
|
|
25852
|
-
});
|
|
25853
|
-
this.socket.on('connect_error', (err) => {
|
|
25854
|
-
this.isConnecting = false;
|
|
25855
|
-
this.isConnected = false;
|
|
25856
|
-
this.checkReconnectionAttempts();
|
|
25857
|
-
});
|
|
25858
|
-
this.socket.on(_config__WEBPACK_IMPORTED_MODULE_3__.SESSION_STOPPED_EVENT, (data) => {
|
|
25859
|
-
_eventBus__WEBPACK_IMPORTED_MODULE_1__.recorderEventBus.emit(_config__WEBPACK_IMPORTED_MODULE_3__.SESSION_STOPPED_EVENT, data);
|
|
25860
|
-
this.unsubscribeFromSession();
|
|
25861
|
-
});
|
|
25862
|
-
this.socket.on(_config__WEBPACK_IMPORTED_MODULE_3__.SESSION_AUTO_CREATED, (data) => {
|
|
25863
|
-
_eventBus__WEBPACK_IMPORTED_MODULE_1__.recorderEventBus.emit(_config__WEBPACK_IMPORTED_MODULE_3__.SESSION_AUTO_CREATED, data);
|
|
25864
|
-
});
|
|
25865
|
-
}
|
|
25866
|
-
checkReconnectionAttempts() {
|
|
25867
|
-
if (this.attempts >= MAX_RECONNECTION_ATTEMPTS) {
|
|
25868
|
-
this.usePostMessage = !!this.options.usePostMessageFallback;
|
|
25869
|
-
this.flushQueue();
|
|
25870
|
-
}
|
|
25871
|
-
}
|
|
25872
|
-
sendViaPostMessage(event) {
|
|
25873
|
-
_services_messaging_service__WEBPACK_IMPORTED_MODULE_2__["default"].sendMessage('rrweb-event', event);
|
|
25874
|
-
}
|
|
25875
|
-
flushQueue() {
|
|
25876
|
-
var _a, _b;
|
|
25877
|
-
while (this.queue.length > 0 && (this.usePostMessage || ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.connected))) {
|
|
25878
|
-
const event = this.queue.shift();
|
|
25879
|
-
if (!event)
|
|
25880
|
-
continue;
|
|
25881
|
-
if (this.usePostMessage) {
|
|
25882
|
-
this.sendViaPostMessage(event.data);
|
|
25883
|
-
}
|
|
25884
|
-
else if ((_b = this.socket) === null || _b === void 0 ? void 0 : _b.connected) {
|
|
25885
|
-
this.socket.emit(event.name, event.data);
|
|
25886
|
-
}
|
|
25887
|
-
}
|
|
25888
|
-
}
|
|
25889
|
-
unsubscribeFromSession() {
|
|
25890
|
-
var _a;
|
|
25891
|
-
const payload = {
|
|
25892
|
-
debugSessionId: this.sessionId,
|
|
25893
|
-
};
|
|
25894
|
-
if (this.usePostMessage) {
|
|
25895
|
-
_services_messaging_service__WEBPACK_IMPORTED_MODULE_2__["default"].sendMessage('socket-emit', { event: _config__WEBPACK_IMPORTED_MODULE_3__.SESSION_UNSUBSCRIBE_EVENT, data: payload });
|
|
25896
|
-
}
|
|
25897
|
-
else if ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.connected) {
|
|
25898
|
-
this.socket.emit(_config__WEBPACK_IMPORTED_MODULE_3__.SESSION_UNSUBSCRIBE_EVENT, payload);
|
|
25899
|
-
}
|
|
25900
|
-
}
|
|
25901
|
-
send(event) {
|
|
25902
|
-
var _a;
|
|
25903
|
-
if (this.usePostMessage) {
|
|
25904
|
-
this.sendViaPostMessage(event);
|
|
25905
|
-
}
|
|
25906
|
-
else if ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.connected) {
|
|
25907
|
-
this.socket.emit(_config__WEBPACK_IMPORTED_MODULE_3__.SESSION_ADD_EVENT, event);
|
|
25908
|
-
}
|
|
25909
|
-
else {
|
|
25910
|
-
this.queue.push({ data: event, name: _config__WEBPACK_IMPORTED_MODULE_3__.SESSION_ADD_EVENT });
|
|
25911
|
-
this.init();
|
|
25912
|
-
}
|
|
25913
|
-
}
|
|
25914
|
-
subscribeToSession(session) {
|
|
25915
|
-
var _a;
|
|
25916
|
-
this.sessionId = session.shortId || session._id;
|
|
25917
|
-
const payload = {
|
|
25918
|
-
projectId: session.project,
|
|
25919
|
-
workspaceId: session.workspace,
|
|
25920
|
-
debugSessionId: this.sessionId,
|
|
25921
|
-
sessionType: session.creationType,
|
|
25922
|
-
};
|
|
25923
|
-
if (this.usePostMessage) {
|
|
25924
|
-
this.sendViaPostMessage({ type: _config__WEBPACK_IMPORTED_MODULE_3__.SESSION_SUBSCRIBE_EVENT, ...payload });
|
|
25925
|
-
}
|
|
25926
|
-
else if ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.connected) {
|
|
25927
|
-
this.socket.emit(_config__WEBPACK_IMPORTED_MODULE_3__.SESSION_SUBSCRIBE_EVENT, payload);
|
|
25928
|
-
}
|
|
25929
|
-
else {
|
|
25930
|
-
this.queue.push({ data: payload, name: _config__WEBPACK_IMPORTED_MODULE_3__.SESSION_SUBSCRIBE_EVENT });
|
|
25931
|
-
this.init();
|
|
25932
|
-
}
|
|
25933
|
-
}
|
|
25934
|
-
close() {
|
|
25935
|
-
var _a;
|
|
25936
|
-
if (this.usePostMessage) {
|
|
25937
|
-
this.sendViaPostMessage({ type: 'close' });
|
|
25938
|
-
}
|
|
25939
|
-
if ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.connected) {
|
|
25940
|
-
setTimeout(() => {
|
|
25941
|
-
var _a;
|
|
25942
|
-
this.unsubscribeFromSession();
|
|
25943
|
-
this.attempts = 0;
|
|
25944
|
-
this.isConnected = false;
|
|
25945
|
-
this.isConnecting = false;
|
|
25946
|
-
(_a = this.socket) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
25947
|
-
this.socket = null;
|
|
25948
|
-
}, 500);
|
|
25949
|
-
}
|
|
25950
|
-
}
|
|
25951
|
-
}
|
|
25952
|
-
|
|
25953
|
-
|
|
25954
25808
|
/***/ }),
|
|
25955
25809
|
|
|
25956
25810
|
/***/ "./src/rrweb/index.ts":
|
|
@@ -25969,7 +25823,7 @@ class RrwebEventExporter {
|
|
|
25969
25823
|
/* harmony import */ var _rrweb_rrweb_plugin_console_record__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @rrweb/rrweb-plugin-console-record */ "../../node_modules/@rrweb/rrweb-plugin-console-record/dist/rrweb-plugin-console-record.js");
|
|
25970
25824
|
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils */ "./src/utils/index.ts");
|
|
25971
25825
|
/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../config */ "./src/config/index.ts");
|
|
25972
|
-
/* harmony import */ var
|
|
25826
|
+
/* harmony import */ var _services_socket_service__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../services/socket.service */ "./src/services/socket.service.ts");
|
|
25973
25827
|
|
|
25974
25828
|
|
|
25975
25829
|
|
|
@@ -26001,11 +25855,6 @@ class RecorderBrowserSDK {
|
|
|
26001
25855
|
*/
|
|
26002
25856
|
init(config) {
|
|
26003
25857
|
this.config = config;
|
|
26004
|
-
this.exporter = new _exporter__WEBPACK_IMPORTED_MODULE_5__.RrwebEventExporter({
|
|
26005
|
-
apiKey: config.apiKey,
|
|
26006
|
-
socketUrl: config.apiBaseUrl || '',
|
|
26007
|
-
usePostMessageFallback: Boolean(config.usePostMessageFallback),
|
|
26008
|
-
});
|
|
26009
25858
|
}
|
|
26010
25859
|
/**
|
|
26011
25860
|
* Starts recording events for a given session ID.
|
|
@@ -26051,7 +25900,7 @@ class RecorderBrowserSDK {
|
|
|
26051
25900
|
this.stopFn = (0,rrweb__WEBPACK_IMPORTED_MODULE_6__.record)({
|
|
26052
25901
|
...options,
|
|
26053
25902
|
emit: async (event) => {
|
|
26054
|
-
if (
|
|
25903
|
+
if (_services_socket_service__WEBPACK_IMPORTED_MODULE_5__.socketService) {
|
|
26055
25904
|
if (typeof maskingConfig.maskConsoleEvent === 'function' && (0,_utils__WEBPACK_IMPORTED_MODULE_3__.isConsoleEvent)(event)) {
|
|
26056
25905
|
const { data } = event;
|
|
26057
25906
|
const maskedPayload = maskingConfig.maskConsoleEvent(data.payload);
|
|
@@ -26059,7 +25908,7 @@ class RecorderBrowserSDK {
|
|
|
26059
25908
|
}
|
|
26060
25909
|
const packedEvent = (0,_rrweb_packer__WEBPACK_IMPORTED_MODULE_0__.pack)(event);
|
|
26061
25910
|
this.stoppedAt = new Date(event.timestamp).toISOString();
|
|
26062
|
-
|
|
25911
|
+
_services_socket_service__WEBPACK_IMPORTED_MODULE_5__.socketService.send({
|
|
26063
25912
|
event: packedEvent,
|
|
26064
25913
|
eventType: event.type,
|
|
26065
25914
|
timestamp: event.timestamp,
|
|
@@ -26100,12 +25949,13 @@ class RecorderBrowserSDK {
|
|
|
26100
25949
|
stop() {
|
|
26101
25950
|
var _a, _b;
|
|
26102
25951
|
(_a = this.stopFn) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
26103
|
-
(_b = this.
|
|
25952
|
+
if (!((_b = this.config) === null || _b === void 0 ? void 0 : _b.useWebsocket)) {
|
|
25953
|
+
_services_socket_service__WEBPACK_IMPORTED_MODULE_5__.socketService === null || _services_socket_service__WEBPACK_IMPORTED_MODULE_5__.socketService === void 0 ? void 0 : _services_socket_service__WEBPACK_IMPORTED_MODULE_5__.socketService.close();
|
|
25954
|
+
}
|
|
26104
25955
|
this.clearRestartInterval();
|
|
26105
25956
|
}
|
|
26106
25957
|
subscribeToSession(session) {
|
|
26107
|
-
|
|
26108
|
-
(_a = this.exporter) === null || _a === void 0 ? void 0 : _a.subscribeToSession(session);
|
|
25958
|
+
_services_socket_service__WEBPACK_IMPORTED_MODULE_5__.socketService === null || _services_socket_service__WEBPACK_IMPORTED_MODULE_5__.socketService === void 0 ? void 0 : _services_socket_service__WEBPACK_IMPORTED_MODULE_5__.socketService.subscribeToSession(session);
|
|
26109
25959
|
}
|
|
26110
25960
|
}
|
|
26111
25961
|
|
|
@@ -26364,6 +26214,207 @@ const messagingService = new MessagingService();
|
|
|
26364
26214
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (messagingService);
|
|
26365
26215
|
|
|
26366
26216
|
|
|
26217
|
+
/***/ }),
|
|
26218
|
+
|
|
26219
|
+
/***/ "./src/services/socket.service.ts":
|
|
26220
|
+
/*!****************************************!*\
|
|
26221
|
+
!*** ./src/services/socket.service.ts ***!
|
|
26222
|
+
\****************************************/
|
|
26223
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
26224
|
+
|
|
26225
|
+
"use strict";
|
|
26226
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
26227
|
+
/* harmony export */ createSocketService: () => (/* binding */ createSocketService),
|
|
26228
|
+
/* harmony export */ socketService: () => (/* binding */ socketService)
|
|
26229
|
+
/* harmony export */ });
|
|
26230
|
+
/* unused harmony export SocketService */
|
|
26231
|
+
/* harmony import */ var socket_io_client__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! socket.io-client */ "../../node_modules/socket.io-client/build/esm/index.js");
|
|
26232
|
+
/* harmony import */ var _eventBus__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../eventBus */ "./src/eventBus.ts");
|
|
26233
|
+
/* harmony import */ var _services_messaging_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../services/messaging.service */ "./src/services/messaging.service.ts");
|
|
26234
|
+
/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../config */ "./src/config/index.ts");
|
|
26235
|
+
|
|
26236
|
+
|
|
26237
|
+
|
|
26238
|
+
|
|
26239
|
+
const MAX_RECONNECTION_ATTEMPTS = 2;
|
|
26240
|
+
class SocketService {
|
|
26241
|
+
constructor(options) {
|
|
26242
|
+
this.options = options;
|
|
26243
|
+
this.socket = null;
|
|
26244
|
+
this.queue = [];
|
|
26245
|
+
this.isConnecting = false;
|
|
26246
|
+
this.isConnected = false;
|
|
26247
|
+
this.usePostMessage = false;
|
|
26248
|
+
this.attempts = 0;
|
|
26249
|
+
this.sessionId = null;
|
|
26250
|
+
if (this.options.keepAlive
|
|
26251
|
+
&& this.options.socketUrl
|
|
26252
|
+
&& this.options.apiKey) {
|
|
26253
|
+
this.init();
|
|
26254
|
+
}
|
|
26255
|
+
}
|
|
26256
|
+
init() {
|
|
26257
|
+
if (this.isConnecting || this.isConnected)
|
|
26258
|
+
return;
|
|
26259
|
+
this.attempts++;
|
|
26260
|
+
this.isConnecting = true;
|
|
26261
|
+
this.usePostMessage = false;
|
|
26262
|
+
this.socket = (0,socket_io_client__WEBPACK_IMPORTED_MODULE_0__["default"])(this.options.socketUrl, {
|
|
26263
|
+
path: '/v0/radar/ws',
|
|
26264
|
+
auth: {
|
|
26265
|
+
'x-api-key': this.options.apiKey,
|
|
26266
|
+
},
|
|
26267
|
+
reconnectionAttempts: 2,
|
|
26268
|
+
transports: ['websocket'],
|
|
26269
|
+
});
|
|
26270
|
+
// this.socket.on('connect', () => {
|
|
26271
|
+
// this.isConnecting = false
|
|
26272
|
+
// this.isConnected = true
|
|
26273
|
+
// this.usePostMessage = false
|
|
26274
|
+
// this.flushQueue()
|
|
26275
|
+
// })
|
|
26276
|
+
this.socket.on('ready', () => {
|
|
26277
|
+
this.isConnecting = false;
|
|
26278
|
+
this.isConnected = true;
|
|
26279
|
+
this.usePostMessage = false;
|
|
26280
|
+
this.flushQueue();
|
|
26281
|
+
});
|
|
26282
|
+
this.socket.on('disconnect', (err) => {
|
|
26283
|
+
this.isConnecting = false;
|
|
26284
|
+
this.isConnected = false;
|
|
26285
|
+
});
|
|
26286
|
+
this.socket.on('connect_error', (err) => {
|
|
26287
|
+
this.isConnecting = false;
|
|
26288
|
+
this.isConnected = false;
|
|
26289
|
+
this.checkReconnectionAttempts();
|
|
26290
|
+
});
|
|
26291
|
+
this.socket.on(_config__WEBPACK_IMPORTED_MODULE_3__.SESSION_STOPPED_EVENT, (data) => {
|
|
26292
|
+
_eventBus__WEBPACK_IMPORTED_MODULE_1__.recorderEventBus.emit(_config__WEBPACK_IMPORTED_MODULE_3__.SESSION_STOPPED_EVENT, data);
|
|
26293
|
+
this.unsubscribeFromSession();
|
|
26294
|
+
});
|
|
26295
|
+
this.socket.on(_config__WEBPACK_IMPORTED_MODULE_3__.SESSION_AUTO_CREATED, (data) => {
|
|
26296
|
+
_eventBus__WEBPACK_IMPORTED_MODULE_1__.recorderEventBus.emit(_config__WEBPACK_IMPORTED_MODULE_3__.SESSION_AUTO_CREATED, data);
|
|
26297
|
+
});
|
|
26298
|
+
this.socket.on(_config__WEBPACK_IMPORTED_MODULE_3__.REMOTE_SESSION_RECORDING_START, (data) => {
|
|
26299
|
+
_eventBus__WEBPACK_IMPORTED_MODULE_1__.recorderEventBus.emit(_config__WEBPACK_IMPORTED_MODULE_3__.REMOTE_SESSION_RECORDING_START, data);
|
|
26300
|
+
});
|
|
26301
|
+
this.socket.on(_config__WEBPACK_IMPORTED_MODULE_3__.REMOTE_SESSION_RECORDING_STOP, (data) => {
|
|
26302
|
+
_eventBus__WEBPACK_IMPORTED_MODULE_1__.recorderEventBus.emit(_config__WEBPACK_IMPORTED_MODULE_3__.REMOTE_SESSION_RECORDING_STOP, data);
|
|
26303
|
+
});
|
|
26304
|
+
}
|
|
26305
|
+
checkReconnectionAttempts() {
|
|
26306
|
+
if (this.attempts >= MAX_RECONNECTION_ATTEMPTS) {
|
|
26307
|
+
this.usePostMessage = !!this.options.usePostMessageFallback;
|
|
26308
|
+
this.flushQueue();
|
|
26309
|
+
}
|
|
26310
|
+
}
|
|
26311
|
+
sendViaPostMessage(event) {
|
|
26312
|
+
_services_messaging_service__WEBPACK_IMPORTED_MODULE_2__["default"].sendMessage('rrweb-event', event);
|
|
26313
|
+
}
|
|
26314
|
+
flushQueue() {
|
|
26315
|
+
var _a, _b;
|
|
26316
|
+
while (this.queue.length > 0 && (this.usePostMessage || ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.connected))) {
|
|
26317
|
+
const event = this.queue.shift();
|
|
26318
|
+
if (!event)
|
|
26319
|
+
continue;
|
|
26320
|
+
if (this.usePostMessage) {
|
|
26321
|
+
this.sendViaPostMessage(event.data);
|
|
26322
|
+
}
|
|
26323
|
+
else if ((_b = this.socket) === null || _b === void 0 ? void 0 : _b.connected) {
|
|
26324
|
+
this.socket.emit(event.name, event.data);
|
|
26325
|
+
}
|
|
26326
|
+
}
|
|
26327
|
+
}
|
|
26328
|
+
unsubscribeFromSession() {
|
|
26329
|
+
var _a;
|
|
26330
|
+
const payload = {
|
|
26331
|
+
debugSessionId: this.sessionId,
|
|
26332
|
+
};
|
|
26333
|
+
if (this.usePostMessage) {
|
|
26334
|
+
_services_messaging_service__WEBPACK_IMPORTED_MODULE_2__["default"].sendMessage('socket-emit', { event: _config__WEBPACK_IMPORTED_MODULE_3__.SESSION_UNSUBSCRIBE_EVENT, data: payload });
|
|
26335
|
+
}
|
|
26336
|
+
else if ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.connected) {
|
|
26337
|
+
this.socket.emit(_config__WEBPACK_IMPORTED_MODULE_3__.SESSION_UNSUBSCRIBE_EVENT, payload);
|
|
26338
|
+
}
|
|
26339
|
+
}
|
|
26340
|
+
send(event) {
|
|
26341
|
+
var _a;
|
|
26342
|
+
if (this.usePostMessage) {
|
|
26343
|
+
this.sendViaPostMessage(event);
|
|
26344
|
+
}
|
|
26345
|
+
else if ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.connected) {
|
|
26346
|
+
this.socket.emit(_config__WEBPACK_IMPORTED_MODULE_3__.SESSION_ADD_EVENT, event);
|
|
26347
|
+
}
|
|
26348
|
+
else {
|
|
26349
|
+
this.queue.push({ data: event, name: _config__WEBPACK_IMPORTED_MODULE_3__.SESSION_ADD_EVENT });
|
|
26350
|
+
this.init();
|
|
26351
|
+
}
|
|
26352
|
+
}
|
|
26353
|
+
subscribeToSession(session) {
|
|
26354
|
+
var _a;
|
|
26355
|
+
this.sessionId = session.shortId || session._id;
|
|
26356
|
+
const payload = {
|
|
26357
|
+
projectId: session.project,
|
|
26358
|
+
workspaceId: session.workspace,
|
|
26359
|
+
debugSessionId: this.sessionId,
|
|
26360
|
+
sessionType: session.creationType,
|
|
26361
|
+
};
|
|
26362
|
+
if (this.usePostMessage) {
|
|
26363
|
+
this.sendViaPostMessage({
|
|
26364
|
+
type: _config__WEBPACK_IMPORTED_MODULE_3__.SESSION_SUBSCRIBE_EVENT,
|
|
26365
|
+
...payload,
|
|
26366
|
+
});
|
|
26367
|
+
}
|
|
26368
|
+
else if ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.connected) {
|
|
26369
|
+
this.socket.emit(_config__WEBPACK_IMPORTED_MODULE_3__.SESSION_SUBSCRIBE_EVENT, payload);
|
|
26370
|
+
}
|
|
26371
|
+
else {
|
|
26372
|
+
this.queue.push({
|
|
26373
|
+
data: payload,
|
|
26374
|
+
name: _config__WEBPACK_IMPORTED_MODULE_3__.SESSION_SUBSCRIBE_EVENT,
|
|
26375
|
+
});
|
|
26376
|
+
this.init();
|
|
26377
|
+
}
|
|
26378
|
+
}
|
|
26379
|
+
setUser(userAttributes) {
|
|
26380
|
+
var _a;
|
|
26381
|
+
if (this.usePostMessage) {
|
|
26382
|
+
this.sendViaPostMessage({
|
|
26383
|
+
type: _config__WEBPACK_IMPORTED_MODULE_3__.SOCKET_SET_USER_EVENT,
|
|
26384
|
+
data: userAttributes,
|
|
26385
|
+
});
|
|
26386
|
+
}
|
|
26387
|
+
else if ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.connected) {
|
|
26388
|
+
this.socket.emit(_config__WEBPACK_IMPORTED_MODULE_3__.SOCKET_SET_USER_EVENT, userAttributes);
|
|
26389
|
+
}
|
|
26390
|
+
}
|
|
26391
|
+
close() {
|
|
26392
|
+
var _a;
|
|
26393
|
+
if (this.usePostMessage) {
|
|
26394
|
+
this.sendViaPostMessage({ type: 'close' });
|
|
26395
|
+
}
|
|
26396
|
+
if ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.connected) {
|
|
26397
|
+
setTimeout(() => {
|
|
26398
|
+
var _a;
|
|
26399
|
+
this.unsubscribeFromSession();
|
|
26400
|
+
this.attempts = 0;
|
|
26401
|
+
this.isConnected = false;
|
|
26402
|
+
this.isConnecting = false;
|
|
26403
|
+
(_a = this.socket) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
26404
|
+
this.socket = null;
|
|
26405
|
+
}, 500);
|
|
26406
|
+
}
|
|
26407
|
+
}
|
|
26408
|
+
}
|
|
26409
|
+
let socketService = null;
|
|
26410
|
+
const createSocketService = (options) => {
|
|
26411
|
+
if (!socketService) {
|
|
26412
|
+
socketService = new SocketService(options);
|
|
26413
|
+
}
|
|
26414
|
+
return socketService;
|
|
26415
|
+
};
|
|
26416
|
+
|
|
26417
|
+
|
|
26367
26418
|
/***/ }),
|
|
26368
26419
|
|
|
26369
26420
|
/***/ "./src/sessionRecorder.ts":
|
|
@@ -26380,17 +26431,18 @@ const messagingService = new MessagingService();
|
|
|
26380
26431
|
/* harmony import */ var _rrweb__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./rrweb */ "./src/rrweb/index.ts");
|
|
26381
26432
|
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils */ "./src/utils/index.ts");
|
|
26382
26433
|
/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./types */ "./src/types/index.ts");
|
|
26383
|
-
/* harmony import */ var
|
|
26384
|
-
/* harmony import */ var
|
|
26385
|
-
/* harmony import */ var
|
|
26386
|
-
/* harmony import */ var
|
|
26387
|
-
/* harmony import */ var
|
|
26388
|
-
/* harmony import */ var
|
|
26389
|
-
/* harmony import */ var
|
|
26390
|
-
/* harmony import */ var
|
|
26391
|
-
/* harmony import */ var
|
|
26392
|
-
/* harmony import */ var
|
|
26393
|
-
/* harmony import */ var
|
|
26434
|
+
/* harmony import */ var _services_socket_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./services/socket.service */ "./src/services/socket.service.ts");
|
|
26435
|
+
/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./config */ "./src/config/index.ts");
|
|
26436
|
+
/* harmony import */ var _patch__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./patch */ "./src/patch/index.ts");
|
|
26437
|
+
/* harmony import */ var _eventBus__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./eventBus */ "./src/eventBus.ts");
|
|
26438
|
+
/* harmony import */ var _sessionWidget__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./sessionWidget */ "./src/sessionWidget/index.ts");
|
|
26439
|
+
/* harmony import */ var _services_messaging_service__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./services/messaging.service */ "./src/services/messaging.service.ts");
|
|
26440
|
+
/* harmony import */ var _services_api_service__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./services/api.service */ "./src/services/api.service.ts");
|
|
26441
|
+
/* harmony import */ var _index_scss__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./index.scss */ "./src/index.scss");
|
|
26442
|
+
/* harmony import */ var _multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @multiplayer-app/session-recorder-common */ "../session-recorder-common/dist/esm/index-browser.js");
|
|
26443
|
+
/* harmony import */ var _sessionWidget_buttonStateConfigs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./sessionWidget/buttonStateConfigs */ "./src/sessionWidget/buttonStateConfigs.ts");
|
|
26444
|
+
/* harmony import */ var lib0_observable__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! lib0/observable */ "../../node_modules/lib0/observable.js");
|
|
26445
|
+
/* harmony import */ var _navigation__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./navigation */ "./src/navigation/index.ts");
|
|
26394
26446
|
|
|
26395
26447
|
|
|
26396
26448
|
|
|
@@ -26406,7 +26458,8 @@ const messagingService = new MessagingService();
|
|
|
26406
26458
|
|
|
26407
26459
|
|
|
26408
26460
|
|
|
26409
|
-
|
|
26461
|
+
|
|
26462
|
+
class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_15__.Observable {
|
|
26410
26463
|
get navigation() {
|
|
26411
26464
|
return this._navigationRecorder.api;
|
|
26412
26465
|
}
|
|
@@ -26418,20 +26471,20 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
26418
26471
|
}
|
|
26419
26472
|
set sessionId(sessionId) {
|
|
26420
26473
|
this._sessionId = sessionId;
|
|
26421
|
-
(0,_utils__WEBPACK_IMPORTED_MODULE_2__.setStoredItem)(
|
|
26474
|
+
(0,_utils__WEBPACK_IMPORTED_MODULE_2__.setStoredItem)(_config__WEBPACK_IMPORTED_MODULE_5__.SESSION_ID_PROP_NAME, sessionId);
|
|
26422
26475
|
}
|
|
26423
26476
|
get sessionType() {
|
|
26424
26477
|
return this._sessionType;
|
|
26425
26478
|
}
|
|
26426
26479
|
set sessionType(sessionType) {
|
|
26427
26480
|
this._sessionType = sessionType;
|
|
26428
|
-
const continuousRecording = sessionType ===
|
|
26481
|
+
const continuousRecording = sessionType === _multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.CONTINUOUS;
|
|
26429
26482
|
this._sessionWidget.updateContinuousRecordingState(continuousRecording);
|
|
26430
|
-
|
|
26431
|
-
(0,_utils__WEBPACK_IMPORTED_MODULE_2__.setStoredItem)(
|
|
26483
|
+
_services_messaging_service__WEBPACK_IMPORTED_MODULE_9__["default"].sendMessage('continuous-debugging', continuousRecording);
|
|
26484
|
+
(0,_utils__WEBPACK_IMPORTED_MODULE_2__.setStoredItem)(_config__WEBPACK_IMPORTED_MODULE_5__.SESSION_TYPE_PROP_NAME, sessionType);
|
|
26432
26485
|
}
|
|
26433
26486
|
get continuousRecording() {
|
|
26434
|
-
return this.sessionType ===
|
|
26487
|
+
return this.sessionType === _multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.CONTINUOUS;
|
|
26435
26488
|
}
|
|
26436
26489
|
get sessionState() {
|
|
26437
26490
|
return this._sessionState || _types__WEBPACK_IMPORTED_MODULE_3__.SessionState.stopped;
|
|
@@ -26439,8 +26492,8 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
26439
26492
|
set sessionState(state) {
|
|
26440
26493
|
this._sessionState = state;
|
|
26441
26494
|
this._sessionWidget.updateState(this._sessionState, this.continuousRecording);
|
|
26442
|
-
|
|
26443
|
-
(0,_utils__WEBPACK_IMPORTED_MODULE_2__.setStoredItem)(
|
|
26495
|
+
_services_messaging_service__WEBPACK_IMPORTED_MODULE_9__["default"].sendMessage('state-change', this._sessionState);
|
|
26496
|
+
(0,_utils__WEBPACK_IMPORTED_MODULE_2__.setStoredItem)(_config__WEBPACK_IMPORTED_MODULE_5__.SESSION_STATE_PROP_NAME, state);
|
|
26444
26497
|
// Emit observable event to support React wrapper
|
|
26445
26498
|
this.emit('state-change', [this._sessionState || _types__WEBPACK_IMPORTED_MODULE_3__.SessionState.stopped, this.sessionType]);
|
|
26446
26499
|
}
|
|
@@ -26449,7 +26502,7 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
26449
26502
|
}
|
|
26450
26503
|
set session(session) {
|
|
26451
26504
|
this._session = session;
|
|
26452
|
-
(0,_utils__WEBPACK_IMPORTED_MODULE_2__.setStoredItem)(
|
|
26505
|
+
(0,_utils__WEBPACK_IMPORTED_MODULE_2__.setStoredItem)(_config__WEBPACK_IMPORTED_MODULE_5__.SESSION_PROP_NAME, this._session);
|
|
26453
26506
|
}
|
|
26454
26507
|
get sessionAttributes() {
|
|
26455
26508
|
return this._sessionAttributes || {};
|
|
@@ -26481,16 +26534,17 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
26481
26534
|
constructor() {
|
|
26482
26535
|
var _a;
|
|
26483
26536
|
super();
|
|
26484
|
-
this._apiService = new
|
|
26537
|
+
this._apiService = new _services_api_service__WEBPACK_IMPORTED_MODULE_10__.ApiService();
|
|
26485
26538
|
this._tracer = new _otel__WEBPACK_IMPORTED_MODULE_0__.TracerBrowserSDK();
|
|
26486
26539
|
this._recorder = new _rrweb__WEBPACK_IMPORTED_MODULE_1__.RecorderBrowserSDK();
|
|
26487
|
-
this._sessionWidget = new
|
|
26488
|
-
this._navigationRecorder = new
|
|
26540
|
+
this._sessionWidget = new _sessionWidget__WEBPACK_IMPORTED_MODULE_8__.SessionWidget();
|
|
26541
|
+
this._navigationRecorder = new _navigation__WEBPACK_IMPORTED_MODULE_14__.NavigationRecorder();
|
|
26542
|
+
this._userAttributes = undefined;
|
|
26489
26543
|
this._startRequestController = null;
|
|
26490
26544
|
this._isInitialized = false;
|
|
26491
26545
|
// Session ID and state are stored in localStorage
|
|
26492
26546
|
this._sessionId = null;
|
|
26493
|
-
this._sessionType =
|
|
26547
|
+
this._sessionType = _multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.MANUAL;
|
|
26494
26548
|
this._sessionState = null;
|
|
26495
26549
|
this._session = null;
|
|
26496
26550
|
this._sessionAttributes = null;
|
|
@@ -26500,10 +26554,10 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
26500
26554
|
this._error = '';
|
|
26501
26555
|
// Safety: avoid accessing storage in SSR/non-browser environments
|
|
26502
26556
|
const isBrowser = typeof window !== 'undefined';
|
|
26503
|
-
const sessionLocal = isBrowser ? (0,_utils__WEBPACK_IMPORTED_MODULE_2__.getStoredItem)(
|
|
26504
|
-
const sessionIdLocal = isBrowser ? (0,_utils__WEBPACK_IMPORTED_MODULE_2__.getStoredItem)(
|
|
26505
|
-
const sessionStateLocal = isBrowser ? (0,_utils__WEBPACK_IMPORTED_MODULE_2__.getStoredItem)(
|
|
26506
|
-
const sessionTypeLocal = isBrowser ? (0,_utils__WEBPACK_IMPORTED_MODULE_2__.getStoredItem)(
|
|
26557
|
+
const sessionLocal = isBrowser ? (0,_utils__WEBPACK_IMPORTED_MODULE_2__.getStoredItem)(_config__WEBPACK_IMPORTED_MODULE_5__.SESSION_PROP_NAME, true) : null;
|
|
26558
|
+
const sessionIdLocal = isBrowser ? (0,_utils__WEBPACK_IMPORTED_MODULE_2__.getStoredItem)(_config__WEBPACK_IMPORTED_MODULE_5__.SESSION_ID_PROP_NAME) : null;
|
|
26559
|
+
const sessionStateLocal = isBrowser ? (0,_utils__WEBPACK_IMPORTED_MODULE_2__.getStoredItem)(_config__WEBPACK_IMPORTED_MODULE_5__.SESSION_STATE_PROP_NAME) : null;
|
|
26560
|
+
const sessionTypeLocal = isBrowser ? (0,_utils__WEBPACK_IMPORTED_MODULE_2__.getStoredItem)(_config__WEBPACK_IMPORTED_MODULE_5__.SESSION_TYPE_PROP_NAME) : null;
|
|
26507
26561
|
if ((0,_utils__WEBPACK_IMPORTED_MODULE_2__.isSessionActive)(sessionLocal, sessionTypeLocal)) {
|
|
26508
26562
|
this.session = sessionLocal;
|
|
26509
26563
|
this.sessionId = sessionIdLocal;
|
|
@@ -26514,10 +26568,10 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
26514
26568
|
this.session = null;
|
|
26515
26569
|
this.sessionId = null;
|
|
26516
26570
|
this.sessionState = null;
|
|
26517
|
-
this.sessionType =
|
|
26571
|
+
this.sessionType = _multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.MANUAL;
|
|
26518
26572
|
}
|
|
26519
26573
|
this._configs = {
|
|
26520
|
-
...
|
|
26574
|
+
..._config__WEBPACK_IMPORTED_MODULE_5__.BASE_CONFIG,
|
|
26521
26575
|
apiKey: ((_a = this.session) === null || _a === void 0 ? void 0 : _a.tempApiKey) || '',
|
|
26522
26576
|
};
|
|
26523
26577
|
}
|
|
@@ -26529,11 +26583,11 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
26529
26583
|
if (typeof window === 'undefined') {
|
|
26530
26584
|
return;
|
|
26531
26585
|
}
|
|
26532
|
-
this._configs = (0,
|
|
26586
|
+
this._configs = (0,_config__WEBPACK_IMPORTED_MODULE_5__.getSessionRecorderConfig)({ ...this._configs, ...configs });
|
|
26533
26587
|
this._isInitialized = true;
|
|
26534
26588
|
this._checkOperation('init');
|
|
26535
|
-
(0,
|
|
26536
|
-
(0,
|
|
26589
|
+
(0,_patch__WEBPACK_IMPORTED_MODULE_6__.setMaxCapturingHttpPayloadSize)(this._configs.maxCapturingHttpPayloadSize || _config__WEBPACK_IMPORTED_MODULE_5__.DEFAULT_MAX_HTTP_CAPTURING_PAYLOAD_SIZE);
|
|
26590
|
+
(0,_patch__WEBPACK_IMPORTED_MODULE_6__.setShouldRecordHttpData)(this._configs.captureBody, this._configs.captureHeaders);
|
|
26537
26591
|
this._tracer.init(this._configs);
|
|
26538
26592
|
this._apiService.init(this._configs);
|
|
26539
26593
|
this._sessionWidget.init(this._configs);
|
|
@@ -26543,16 +26597,26 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
26543
26597
|
environment: this._configs.environment,
|
|
26544
26598
|
version: this._configs.version,
|
|
26545
26599
|
});
|
|
26600
|
+
(0,_services_socket_service__WEBPACK_IMPORTED_MODULE_4__.createSocketService)({
|
|
26601
|
+
apiKey: this._configs.apiKey,
|
|
26602
|
+
socketUrl: this._configs.apiBaseUrl || '',
|
|
26603
|
+
usePostMessageFallback: Boolean(this._configs.usePostMessageFallback),
|
|
26604
|
+
keepAlive: Boolean(this._configs.useWebsocket),
|
|
26605
|
+
});
|
|
26546
26606
|
if (this._configs.apiKey) {
|
|
26547
26607
|
this._recorder.init(this._configs);
|
|
26548
26608
|
}
|
|
26549
|
-
if (this.sessionId
|
|
26609
|
+
if (this.sessionId
|
|
26610
|
+
&& (this.sessionState === _types__WEBPACK_IMPORTED_MODULE_3__.SessionState.started
|
|
26611
|
+
|| this.sessionState === _types__WEBPACK_IMPORTED_MODULE_3__.SessionState.paused)) {
|
|
26550
26612
|
this._start();
|
|
26551
26613
|
}
|
|
26552
26614
|
this._registerWidgetEvents();
|
|
26553
26615
|
this._registerSessionLimitReach();
|
|
26554
26616
|
this._registerSessionAutoCreation();
|
|
26555
|
-
|
|
26617
|
+
this._registerRemoteSessionRecordingStart();
|
|
26618
|
+
this._registerRemoteSessionRecordingStop();
|
|
26619
|
+
_services_messaging_service__WEBPACK_IMPORTED_MODULE_9__["default"].sendMessage('state-change', this.sessionState);
|
|
26556
26620
|
// Emit init observable event
|
|
26557
26621
|
this.emit('init', [this]);
|
|
26558
26622
|
}
|
|
@@ -26565,7 +26629,7 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
26565
26629
|
if (!this.continuousRecording || !this._configs.showContinuousRecording) {
|
|
26566
26630
|
return;
|
|
26567
26631
|
}
|
|
26568
|
-
this._sessionWidget.updateSaveContinuousDebugSessionState(
|
|
26632
|
+
this._sessionWidget.updateSaveContinuousDebugSessionState(_sessionWidget_buttonStateConfigs__WEBPACK_IMPORTED_MODULE_13__.ContinuousRecordingSaveButtonState.SAVING);
|
|
26569
26633
|
const res = await this._apiService.saveContinuousDebugSession(this.sessionId, {
|
|
26570
26634
|
sessionAttributes: this.sessionAttributes,
|
|
26571
26635
|
resourceAttributes: (0,_utils__WEBPACK_IMPORTED_MODULE_2__.getNavigatorInfo)(),
|
|
@@ -26574,7 +26638,7 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
26574
26638
|
? `${this.sessionAttributes.userName}'s session on ${(0,_utils__WEBPACK_IMPORTED_MODULE_2__.getFormattedDate)(Date.now(), { month: 'short', day: 'numeric' })}`
|
|
26575
26639
|
: `Session on ${(0,_utils__WEBPACK_IMPORTED_MODULE_2__.getFormattedDate)(Date.now())}`,
|
|
26576
26640
|
});
|
|
26577
|
-
this._sessionWidget.updateSaveContinuousDebugSessionState(
|
|
26641
|
+
this._sessionWidget.updateSaveContinuousDebugSessionState(_sessionWidget_buttonStateConfigs__WEBPACK_IMPORTED_MODULE_13__.ContinuousRecordingSaveButtonState.SAVED);
|
|
26578
26642
|
const sessionUrl = res === null || res === void 0 ? void 0 : res.url;
|
|
26579
26643
|
this._sessionWidget.showToast({
|
|
26580
26644
|
type: 'success',
|
|
@@ -26587,11 +26651,11 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
26587
26651
|
}
|
|
26588
26652
|
catch (error) {
|
|
26589
26653
|
this.error = error.message;
|
|
26590
|
-
this._sessionWidget.updateSaveContinuousDebugSessionState(
|
|
26654
|
+
this._sessionWidget.updateSaveContinuousDebugSessionState(_sessionWidget_buttonStateConfigs__WEBPACK_IMPORTED_MODULE_13__.ContinuousRecordingSaveButtonState.ERROR);
|
|
26591
26655
|
}
|
|
26592
26656
|
finally {
|
|
26593
26657
|
setTimeout(() => {
|
|
26594
|
-
this._sessionWidget.updateSaveContinuousDebugSessionState(
|
|
26658
|
+
this._sessionWidget.updateSaveContinuousDebugSessionState(_sessionWidget_buttonStateConfigs__WEBPACK_IMPORTED_MODULE_13__.ContinuousRecordingSaveButtonState.IDLE);
|
|
26595
26659
|
}, 3000);
|
|
26596
26660
|
}
|
|
26597
26661
|
}
|
|
@@ -26600,11 +26664,11 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
26600
26664
|
* @param type - the type of session to start
|
|
26601
26665
|
* @param session - the session to start
|
|
26602
26666
|
*/
|
|
26603
|
-
start(type =
|
|
26667
|
+
start(type = _multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.MANUAL, session) {
|
|
26604
26668
|
this._checkOperation('start');
|
|
26605
26669
|
// If continuous recording is disabled, force plain mode
|
|
26606
|
-
if (type ===
|
|
26607
|
-
type =
|
|
26670
|
+
if (type === _multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.CONTINUOUS && !this._configs.showContinuousRecording) {
|
|
26671
|
+
type = _multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.MANUAL;
|
|
26608
26672
|
}
|
|
26609
26673
|
this.sessionType = type;
|
|
26610
26674
|
this._startRequestController = new AbortController();
|
|
@@ -26625,7 +26689,7 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
26625
26689
|
this._stop();
|
|
26626
26690
|
if (this.continuousRecording) {
|
|
26627
26691
|
await this._apiService.stopContinuousDebugSession(this.sessionId);
|
|
26628
|
-
this.sessionType =
|
|
26692
|
+
this.sessionType = _multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.MANUAL;
|
|
26629
26693
|
}
|
|
26630
26694
|
else {
|
|
26631
26695
|
const request = {
|
|
@@ -26633,7 +26697,7 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
26633
26697
|
stoppedAt: this._recorder.stoppedAt,
|
|
26634
26698
|
};
|
|
26635
26699
|
const response = await this._apiService.stopSession(this.sessionId, request);
|
|
26636
|
-
|
|
26700
|
+
_eventBus__WEBPACK_IMPORTED_MODULE_7__.recorderEventBus.emit(_config__WEBPACK_IMPORTED_MODULE_5__.SESSION_RESPONSE, response);
|
|
26637
26701
|
}
|
|
26638
26702
|
this._clearSession();
|
|
26639
26703
|
}
|
|
@@ -26674,7 +26738,7 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
26674
26738
|
this._stop();
|
|
26675
26739
|
if (this.continuousRecording) {
|
|
26676
26740
|
await this._apiService.stopContinuousDebugSession(this.sessionId);
|
|
26677
|
-
this.sessionType =
|
|
26741
|
+
this.sessionType = _multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.MANUAL;
|
|
26678
26742
|
}
|
|
26679
26743
|
else {
|
|
26680
26744
|
await this._apiService.cancelSession(this.sessionId);
|
|
@@ -26698,7 +26762,7 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
26698
26762
|
* The function receives the click event as its parameter and
|
|
26699
26763
|
* should return `false` to prevent the default button action,
|
|
26700
26764
|
* or `true` (or nothing) to allow it.
|
|
26701
|
-
|
|
26765
|
+
*/
|
|
26702
26766
|
set recordingButtonClickHandler(handler) {
|
|
26703
26767
|
this._sessionWidget.buttonClickExternalHandler = handler;
|
|
26704
26768
|
}
|
|
@@ -26734,11 +26798,12 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
26734
26798
|
...(0,_utils__WEBPACK_IMPORTED_MODULE_2__.getNavigatorInfo)(),
|
|
26735
26799
|
...((sessionPayload === null || sessionPayload === void 0 ? void 0 : sessionPayload.resourceAttributes) || {}),
|
|
26736
26800
|
},
|
|
26801
|
+
userAttributes: this._userAttributes
|
|
26737
26802
|
};
|
|
26738
26803
|
const { state } = await this._apiService.checkRemoteSession(payload);
|
|
26739
26804
|
if (state == 'START') {
|
|
26740
26805
|
if (this.sessionState !== _types__WEBPACK_IMPORTED_MODULE_3__.SessionState.started) {
|
|
26741
|
-
await this.start(
|
|
26806
|
+
await this.start(_multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.CONTINUOUS);
|
|
26742
26807
|
}
|
|
26743
26808
|
}
|
|
26744
26809
|
else if (state == 'STOP') {
|
|
@@ -26787,7 +26852,7 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
26787
26852
|
}
|
|
26788
26853
|
_handleStart() {
|
|
26789
26854
|
if (this.sessionState === _types__WEBPACK_IMPORTED_MODULE_3__.SessionState.stopped) {
|
|
26790
|
-
this.start(
|
|
26855
|
+
this.start(_multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.MANUAL);
|
|
26791
26856
|
}
|
|
26792
26857
|
}
|
|
26793
26858
|
_handleStop(comment) {
|
|
@@ -26817,14 +26882,14 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
26817
26882
|
}
|
|
26818
26883
|
_handleContinuousDebugging() {
|
|
26819
26884
|
if (this.sessionState === _types__WEBPACK_IMPORTED_MODULE_3__.SessionState.stopped) {
|
|
26820
|
-
this.start(
|
|
26885
|
+
this.start(_multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.CONTINUOUS);
|
|
26821
26886
|
}
|
|
26822
26887
|
}
|
|
26823
26888
|
/**
|
|
26824
26889
|
* Register session limit reaching listeners for controlling session end
|
|
26825
26890
|
*/
|
|
26826
26891
|
_registerSessionLimitReach() {
|
|
26827
|
-
|
|
26892
|
+
_eventBus__WEBPACK_IMPORTED_MODULE_7__.recorderEventBus.on(_config__WEBPACK_IMPORTED_MODULE_5__.SESSION_STOPPED_EVENT, () => {
|
|
26828
26893
|
this._stop();
|
|
26829
26894
|
this._clearSession();
|
|
26830
26895
|
this._sessionWidget.handleUIReseting();
|
|
@@ -26834,7 +26899,7 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
26834
26899
|
* Register session auto creation listeners during continuous recording
|
|
26835
26900
|
*/
|
|
26836
26901
|
_registerSessionAutoCreation() {
|
|
26837
|
-
|
|
26902
|
+
_eventBus__WEBPACK_IMPORTED_MODULE_7__.recorderEventBus.on(_config__WEBPACK_IMPORTED_MODULE_5__.SESSION_AUTO_CREATED, (payload) => {
|
|
26838
26903
|
var _a;
|
|
26839
26904
|
if (!(payload === null || payload === void 0 ? void 0 : payload.data))
|
|
26840
26905
|
return;
|
|
@@ -26848,6 +26913,18 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
26848
26913
|
}, 5000);
|
|
26849
26914
|
});
|
|
26850
26915
|
}
|
|
26916
|
+
_registerRemoteSessionRecordingStart() {
|
|
26917
|
+
_eventBus__WEBPACK_IMPORTED_MODULE_7__.recorderEventBus.on(_config__WEBPACK_IMPORTED_MODULE_5__.REMOTE_SESSION_RECORDING_START, (payload) => {
|
|
26918
|
+
console.log('REMOTE_SESSION_RECORDING_START', payload);
|
|
26919
|
+
this.start();
|
|
26920
|
+
});
|
|
26921
|
+
}
|
|
26922
|
+
_registerRemoteSessionRecordingStop() {
|
|
26923
|
+
_eventBus__WEBPACK_IMPORTED_MODULE_7__.recorderEventBus.on(_config__WEBPACK_IMPORTED_MODULE_5__.REMOTE_SESSION_RECORDING_STOP, (payload) => {
|
|
26924
|
+
console.log('REMOTE_SESSION_RECORDING_STOP', payload);
|
|
26925
|
+
this.stop();
|
|
26926
|
+
});
|
|
26927
|
+
}
|
|
26851
26928
|
/**
|
|
26852
26929
|
* Create a new session and start it
|
|
26853
26930
|
*/
|
|
@@ -26858,6 +26935,7 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
26858
26935
|
const payload = {
|
|
26859
26936
|
sessionAttributes: this.sessionAttributes,
|
|
26860
26937
|
resourceAttributes: (0,_utils__WEBPACK_IMPORTED_MODULE_2__.getNavigatorInfo)(),
|
|
26938
|
+
userAttributes: this._userAttributes,
|
|
26861
26939
|
name: this.sessionAttributes.userName
|
|
26862
26940
|
? `${this.sessionAttributes.userName}'s session on ${(0,_utils__WEBPACK_IMPORTED_MODULE_2__.getFormattedDate)(Date.now(), { month: 'short', day: 'numeric' })}`
|
|
26863
26941
|
: `Session on ${(0,_utils__WEBPACK_IMPORTED_MODULE_2__.getFormattedDate)(Date.now())}`,
|
|
@@ -26869,8 +26947,8 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
26869
26947
|
: await this._apiService.startSession(request, signal);
|
|
26870
26948
|
if (session) {
|
|
26871
26949
|
session.sessionType = this.continuousRecording
|
|
26872
|
-
?
|
|
26873
|
-
:
|
|
26950
|
+
? _multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.CONTINUOUS
|
|
26951
|
+
: _multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.MANUAL;
|
|
26874
26952
|
this._setupSessionAndStart(session, false);
|
|
26875
26953
|
}
|
|
26876
26954
|
}
|
|
@@ -26878,7 +26956,7 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
26878
26956
|
this.error = error.message;
|
|
26879
26957
|
this.sessionState = _types__WEBPACK_IMPORTED_MODULE_3__.SessionState.stopped;
|
|
26880
26958
|
if (this.continuousRecording) {
|
|
26881
|
-
this.sessionType =
|
|
26959
|
+
this.sessionType = _multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.MANUAL;
|
|
26882
26960
|
}
|
|
26883
26961
|
}
|
|
26884
26962
|
}
|
|
@@ -26893,7 +26971,7 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
26893
26971
|
this._recorder.start(this.sessionId, this.sessionType);
|
|
26894
26972
|
this._navigationRecorder.start({ sessionId: this.sessionId, sessionType: this.sessionType, });
|
|
26895
26973
|
if (this.session) {
|
|
26896
|
-
|
|
26974
|
+
_eventBus__WEBPACK_IMPORTED_MODULE_7__.recorderEventBus.emit(_config__WEBPACK_IMPORTED_MODULE_5__.SESSION_STARTED_EVENT, this.session);
|
|
26897
26975
|
this._recorder.subscribeToSession(this.session);
|
|
26898
26976
|
this._sessionWidget.seconds = (0,_utils__WEBPACK_IMPORTED_MODULE_2__.getTimeDifferenceInSeconds)((_a = this.session) === null || _a === void 0 ? void 0 : _a.startedAt);
|
|
26899
26977
|
}
|
|
@@ -27019,6 +27097,10 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
27019
27097
|
return { errorInfo: String(errorInfo) };
|
|
27020
27098
|
}
|
|
27021
27099
|
}
|
|
27100
|
+
setUser(userAttributes) {
|
|
27101
|
+
this._userAttributes = userAttributes;
|
|
27102
|
+
_services_socket_service__WEBPACK_IMPORTED_MODULE_4__.socketService === null || _services_socket_service__WEBPACK_IMPORTED_MODULE_4__.socketService === void 0 ? void 0 : _services_socket_service__WEBPACK_IMPORTED_MODULE_4__.socketService.setUser(this._userAttributes);
|
|
27103
|
+
}
|
|
27022
27104
|
}
|
|
27023
27105
|
|
|
27024
27106
|
|
|
@@ -28357,6 +28439,26 @@ const getButtonTemplate = (button) => {
|
|
|
28357
28439
|
};
|
|
28358
28440
|
|
|
28359
28441
|
|
|
28442
|
+
/***/ }),
|
|
28443
|
+
|
|
28444
|
+
/***/ "./src/types/client-type.enum.ts":
|
|
28445
|
+
/*!***************************************!*\
|
|
28446
|
+
!*** ./src/types/client-type.enum.ts ***!
|
|
28447
|
+
\***************************************/
|
|
28448
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
28449
|
+
|
|
28450
|
+
"use strict";
|
|
28451
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
28452
|
+
/* harmony export */ UserType: () => (/* binding */ UserType)
|
|
28453
|
+
/* harmony export */ });
|
|
28454
|
+
var UserType;
|
|
28455
|
+
(function (UserType) {
|
|
28456
|
+
UserType["USER"] = "USER";
|
|
28457
|
+
UserType["VISITOR"] = "VISITOR";
|
|
28458
|
+
UserType["API_CLIENT"] = "API_CLIENT";
|
|
28459
|
+
})(UserType || (UserType = {}));
|
|
28460
|
+
|
|
28461
|
+
|
|
28360
28462
|
/***/ }),
|
|
28361
28463
|
|
|
28362
28464
|
/***/ "./src/types/index.ts":
|
|
@@ -28369,11 +28471,14 @@ const getButtonTemplate = (button) => {
|
|
|
28369
28471
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
28370
28472
|
/* harmony export */ DebugSessionDataType: () => (/* reexport safe */ _session__WEBPACK_IMPORTED_MODULE_1__.DebugSessionDataType),
|
|
28371
28473
|
/* harmony export */ SessionState: () => (/* reexport safe */ _sessionRecorder__WEBPACK_IMPORTED_MODULE_2__.SessionState),
|
|
28474
|
+
/* harmony export */ UserType: () => (/* reexport safe */ _client_type_enum__WEBPACK_IMPORTED_MODULE_3__.UserType),
|
|
28372
28475
|
/* harmony export */ WidgetButtonPlacement: () => (/* reexport safe */ _sessionRecorder__WEBPACK_IMPORTED_MODULE_2__.WidgetButtonPlacement)
|
|
28373
28476
|
/* harmony export */ });
|
|
28374
28477
|
/* harmony import */ var _widget__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./widget */ "./src/types/widget.ts");
|
|
28375
28478
|
/* harmony import */ var _session__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./session */ "./src/types/session.ts");
|
|
28376
28479
|
/* harmony import */ var _sessionRecorder__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./sessionRecorder */ "./src/types/sessionRecorder.ts");
|
|
28480
|
+
/* harmony import */ var _client_type_enum__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./client-type.enum */ "./src/types/client-type.enum.ts");
|
|
28481
|
+
|
|
28377
28482
|
|
|
28378
28483
|
|
|
28379
28484
|
|
|
@@ -48386,6 +48491,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
48386
48491
|
/* harmony export */ SessionRecorderTraceIdRatioBasedSampler: () => (/* reexport safe */ _multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_6__.SessionRecorderTraceIdRatioBasedSampler),
|
|
48387
48492
|
/* harmony export */ SessionState: () => (/* reexport safe */ _types__WEBPACK_IMPORTED_MODULE_4__.SessionState),
|
|
48388
48493
|
/* harmony export */ SessionType: () => (/* reexport safe */ _multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_6__.SessionType),
|
|
48494
|
+
/* harmony export */ UserType: () => (/* reexport safe */ _types__WEBPACK_IMPORTED_MODULE_4__.UserType),
|
|
48389
48495
|
/* harmony export */ WidgetButtonPlacement: () => (/* reexport safe */ _types__WEBPACK_IMPORTED_MODULE_4__.WidgetButtonPlacement),
|
|
48390
48496
|
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
|
|
48391
48497
|
/* harmony export */ recorderEventBus: () => (/* reexport safe */ _eventBus__WEBPACK_IMPORTED_MODULE_2__.recorderEventBus)
|