@multiplayer-app/session-recorder-browser 1.2.36 → 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/README.md +44 -14
- package/dist/browser/index.js +340 -240
- 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 +338 -239
- package/dist/index.js.map +1 -1
- package/dist/index.umd.js +338 -239
- package/dist/index.umd.js.map +1 -1
- package/dist/otel/helpers.d.ts.map +1 -1
- package/dist/otel/helpers.js +1 -8
- package/dist/otel/helpers.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
|
|
|
@@ -25155,14 +25167,7 @@ const getExporterEndpoint = (exporterEndpoint) => {
|
|
|
25155
25167
|
return `${trimmedExporterEndpoint}/v1/traces`;
|
|
25156
25168
|
};
|
|
25157
25169
|
const getElementTextContent = (element) => {
|
|
25158
|
-
|
|
25159
|
-
const slicedText = element.innerText.slice(0, 50);
|
|
25160
|
-
if (slicedText.length < element.innerText.length) {
|
|
25161
|
-
return `${slicedText}...`;
|
|
25162
|
-
}
|
|
25163
|
-
return slicedText;
|
|
25164
|
-
};
|
|
25165
|
-
return String(element.textContent || element.ariaLabel || getInnerText(element) || '').trim();
|
|
25170
|
+
return String(element.textContent || element.ariaLabel || '').trim();
|
|
25166
25171
|
};
|
|
25167
25172
|
|
|
25168
25173
|
|
|
@@ -25386,6 +25391,7 @@ class TracerBrowserSDK {
|
|
|
25386
25391
|
});
|
|
25387
25392
|
return;
|
|
25388
25393
|
}
|
|
25394
|
+
// eslint-disable-next-line
|
|
25389
25395
|
}
|
|
25390
25396
|
catch (_ignored) { }
|
|
25391
25397
|
// Fallback: create a short-lived span to hold the exception details
|
|
@@ -25401,6 +25407,7 @@ class TracerBrowserSDK {
|
|
|
25401
25407
|
...(errorInfo || {}),
|
|
25402
25408
|
});
|
|
25403
25409
|
span.end();
|
|
25410
|
+
// eslint-disable-next-line
|
|
25404
25411
|
}
|
|
25405
25412
|
catch (_ignored) { }
|
|
25406
25413
|
}
|
|
@@ -25422,12 +25429,14 @@ class TracerBrowserSDK {
|
|
|
25422
25429
|
return;
|
|
25423
25430
|
if (typeof window === 'undefined')
|
|
25424
25431
|
return;
|
|
25432
|
+
// eslint-disable-next-line
|
|
25425
25433
|
const errorHandler = (event) => {
|
|
25426
25434
|
const err = (event === null || event === void 0 ? void 0 : event.error) instanceof Error
|
|
25427
25435
|
? event.error
|
|
25428
25436
|
: new Error((event === null || event === void 0 ? void 0 : event.message) || 'Script error');
|
|
25429
25437
|
this.captureException(err);
|
|
25430
25438
|
};
|
|
25439
|
+
// eslint-disable-next-line
|
|
25431
25440
|
const rejectionHandler = (event) => {
|
|
25432
25441
|
const reason = (event && 'reason' in event) ? event.reason : undefined;
|
|
25433
25442
|
const err = reason instanceof Error
|
|
@@ -25604,6 +25613,7 @@ if (typeof window !== 'undefined' && typeof window.fetch !== 'undefined') {
|
|
|
25604
25613
|
: (typeof input === 'string' || input instanceof URL ? String(input) : '');
|
|
25605
25614
|
// Only attempt to read the body from init (safe); avoid constructing/cloning Requests
|
|
25606
25615
|
// If the caller passed a Request as input, we do not attempt to read its body here
|
|
25616
|
+
// eslint-disable-next-line
|
|
25607
25617
|
const candidateBody = init === null || init === void 0 ? void 0 : init.body;
|
|
25608
25618
|
if (!(0,_utils_type_utils__WEBPACK_IMPORTED_MODULE_0__.isNullish)(candidateBody)) {
|
|
25609
25619
|
const requestBody = _tryReadFetchBody({
|
|
@@ -25795,169 +25805,6 @@ if (typeof XMLHttpRequest !== 'undefined') {
|
|
|
25795
25805
|
}
|
|
25796
25806
|
|
|
25797
25807
|
|
|
25798
|
-
/***/ }),
|
|
25799
|
-
|
|
25800
|
-
/***/ "./src/rrweb/exporter.ts":
|
|
25801
|
-
/*!*******************************!*\
|
|
25802
|
-
!*** ./src/rrweb/exporter.ts ***!
|
|
25803
|
-
\*******************************/
|
|
25804
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
25805
|
-
|
|
25806
|
-
"use strict";
|
|
25807
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
25808
|
-
/* harmony export */ RrwebEventExporter: () => (/* binding */ RrwebEventExporter)
|
|
25809
|
-
/* harmony export */ });
|
|
25810
|
-
/* harmony import */ var socket_io_client__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! socket.io-client */ "../../node_modules/socket.io-client/build/esm/index.js");
|
|
25811
|
-
/* harmony import */ var _eventBus__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../eventBus */ "./src/eventBus.ts");
|
|
25812
|
-
/* harmony import */ var _services_messaging_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../services/messaging.service */ "./src/services/messaging.service.ts");
|
|
25813
|
-
/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../config */ "./src/config/index.ts");
|
|
25814
|
-
|
|
25815
|
-
|
|
25816
|
-
|
|
25817
|
-
|
|
25818
|
-
const MAX_RECONNECTION_ATTEMPTS = 2;
|
|
25819
|
-
class RrwebEventExporter {
|
|
25820
|
-
constructor(options) {
|
|
25821
|
-
this.options = options;
|
|
25822
|
-
this.socket = null;
|
|
25823
|
-
this.queue = [];
|
|
25824
|
-
this.isConnecting = false;
|
|
25825
|
-
this.isConnected = false;
|
|
25826
|
-
this.usePostMessage = false;
|
|
25827
|
-
this.attempts = 0;
|
|
25828
|
-
this.sessionId = null;
|
|
25829
|
-
}
|
|
25830
|
-
init() {
|
|
25831
|
-
if (this.isConnecting || this.isConnected)
|
|
25832
|
-
return;
|
|
25833
|
-
this.attempts++;
|
|
25834
|
-
this.isConnecting = true;
|
|
25835
|
-
this.usePostMessage = false;
|
|
25836
|
-
this.socket = (0,socket_io_client__WEBPACK_IMPORTED_MODULE_0__["default"])(this.options.socketUrl, {
|
|
25837
|
-
path: '/v0/radar/ws',
|
|
25838
|
-
auth: {
|
|
25839
|
-
'x-api-key': this.options.apiKey,
|
|
25840
|
-
},
|
|
25841
|
-
reconnectionAttempts: 2,
|
|
25842
|
-
transports: ['websocket'],
|
|
25843
|
-
});
|
|
25844
|
-
// this.socket.on('connect', () => {
|
|
25845
|
-
// this.isConnecting = false
|
|
25846
|
-
// this.isConnected = true
|
|
25847
|
-
// this.usePostMessage = false
|
|
25848
|
-
// this.flushQueue()
|
|
25849
|
-
// })
|
|
25850
|
-
this.socket.on('ready', () => {
|
|
25851
|
-
this.isConnecting = false;
|
|
25852
|
-
this.isConnected = true;
|
|
25853
|
-
this.usePostMessage = false;
|
|
25854
|
-
this.flushQueue();
|
|
25855
|
-
});
|
|
25856
|
-
this.socket.on('disconnect', (err) => {
|
|
25857
|
-
this.isConnecting = false;
|
|
25858
|
-
this.isConnected = false;
|
|
25859
|
-
});
|
|
25860
|
-
this.socket.on('connect_error', (err) => {
|
|
25861
|
-
this.isConnecting = false;
|
|
25862
|
-
this.isConnected = false;
|
|
25863
|
-
this.checkReconnectionAttempts();
|
|
25864
|
-
});
|
|
25865
|
-
this.socket.on(_config__WEBPACK_IMPORTED_MODULE_3__.SESSION_STOPPED_EVENT, (data) => {
|
|
25866
|
-
_eventBus__WEBPACK_IMPORTED_MODULE_1__.recorderEventBus.emit(_config__WEBPACK_IMPORTED_MODULE_3__.SESSION_STOPPED_EVENT, data);
|
|
25867
|
-
this.unsubscribeFromSession();
|
|
25868
|
-
});
|
|
25869
|
-
this.socket.on(_config__WEBPACK_IMPORTED_MODULE_3__.SESSION_AUTO_CREATED, (data) => {
|
|
25870
|
-
_eventBus__WEBPACK_IMPORTED_MODULE_1__.recorderEventBus.emit(_config__WEBPACK_IMPORTED_MODULE_3__.SESSION_AUTO_CREATED, data);
|
|
25871
|
-
});
|
|
25872
|
-
}
|
|
25873
|
-
checkReconnectionAttempts() {
|
|
25874
|
-
if (this.attempts >= MAX_RECONNECTION_ATTEMPTS) {
|
|
25875
|
-
this.usePostMessage = !!this.options.usePostMessageFallback;
|
|
25876
|
-
this.flushQueue();
|
|
25877
|
-
}
|
|
25878
|
-
}
|
|
25879
|
-
sendViaPostMessage(event) {
|
|
25880
|
-
_services_messaging_service__WEBPACK_IMPORTED_MODULE_2__["default"].sendMessage('rrweb-event', event);
|
|
25881
|
-
}
|
|
25882
|
-
flushQueue() {
|
|
25883
|
-
var _a, _b;
|
|
25884
|
-
while (this.queue.length > 0 && (this.usePostMessage || ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.connected))) {
|
|
25885
|
-
const event = this.queue.shift();
|
|
25886
|
-
if (!event)
|
|
25887
|
-
continue;
|
|
25888
|
-
if (this.usePostMessage) {
|
|
25889
|
-
this.sendViaPostMessage(event.data);
|
|
25890
|
-
}
|
|
25891
|
-
else if ((_b = this.socket) === null || _b === void 0 ? void 0 : _b.connected) {
|
|
25892
|
-
this.socket.emit(event.name, event.data);
|
|
25893
|
-
}
|
|
25894
|
-
}
|
|
25895
|
-
}
|
|
25896
|
-
unsubscribeFromSession() {
|
|
25897
|
-
var _a;
|
|
25898
|
-
const payload = {
|
|
25899
|
-
debugSessionId: this.sessionId,
|
|
25900
|
-
};
|
|
25901
|
-
if (this.usePostMessage) {
|
|
25902
|
-
_services_messaging_service__WEBPACK_IMPORTED_MODULE_2__["default"].sendMessage('socket-emit', { event: _config__WEBPACK_IMPORTED_MODULE_3__.SESSION_UNSUBSCRIBE_EVENT, data: payload });
|
|
25903
|
-
}
|
|
25904
|
-
else if ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.connected) {
|
|
25905
|
-
this.socket.emit(_config__WEBPACK_IMPORTED_MODULE_3__.SESSION_UNSUBSCRIBE_EVENT, payload);
|
|
25906
|
-
}
|
|
25907
|
-
}
|
|
25908
|
-
send(event) {
|
|
25909
|
-
var _a;
|
|
25910
|
-
if (this.usePostMessage) {
|
|
25911
|
-
this.sendViaPostMessage(event);
|
|
25912
|
-
}
|
|
25913
|
-
else if ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.connected) {
|
|
25914
|
-
this.socket.emit(_config__WEBPACK_IMPORTED_MODULE_3__.SESSION_ADD_EVENT, event);
|
|
25915
|
-
}
|
|
25916
|
-
else {
|
|
25917
|
-
this.queue.push({ data: event, name: _config__WEBPACK_IMPORTED_MODULE_3__.SESSION_ADD_EVENT });
|
|
25918
|
-
this.init();
|
|
25919
|
-
}
|
|
25920
|
-
}
|
|
25921
|
-
subscribeToSession(session) {
|
|
25922
|
-
var _a;
|
|
25923
|
-
this.sessionId = session.shortId || session._id;
|
|
25924
|
-
const payload = {
|
|
25925
|
-
projectId: session.project,
|
|
25926
|
-
workspaceId: session.workspace,
|
|
25927
|
-
debugSessionId: this.sessionId,
|
|
25928
|
-
sessionType: session.creationType,
|
|
25929
|
-
};
|
|
25930
|
-
if (this.usePostMessage) {
|
|
25931
|
-
this.sendViaPostMessage({ type: _config__WEBPACK_IMPORTED_MODULE_3__.SESSION_SUBSCRIBE_EVENT, ...payload });
|
|
25932
|
-
}
|
|
25933
|
-
else if ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.connected) {
|
|
25934
|
-
this.socket.emit(_config__WEBPACK_IMPORTED_MODULE_3__.SESSION_SUBSCRIBE_EVENT, payload);
|
|
25935
|
-
}
|
|
25936
|
-
else {
|
|
25937
|
-
this.queue.push({ data: payload, name: _config__WEBPACK_IMPORTED_MODULE_3__.SESSION_SUBSCRIBE_EVENT });
|
|
25938
|
-
this.init();
|
|
25939
|
-
}
|
|
25940
|
-
}
|
|
25941
|
-
close() {
|
|
25942
|
-
var _a;
|
|
25943
|
-
if (this.usePostMessage) {
|
|
25944
|
-
this.sendViaPostMessage({ type: 'close' });
|
|
25945
|
-
}
|
|
25946
|
-
if ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.connected) {
|
|
25947
|
-
setTimeout(() => {
|
|
25948
|
-
var _a;
|
|
25949
|
-
this.unsubscribeFromSession();
|
|
25950
|
-
this.attempts = 0;
|
|
25951
|
-
this.isConnected = false;
|
|
25952
|
-
this.isConnecting = false;
|
|
25953
|
-
(_a = this.socket) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
25954
|
-
this.socket = null;
|
|
25955
|
-
}, 500);
|
|
25956
|
-
}
|
|
25957
|
-
}
|
|
25958
|
-
}
|
|
25959
|
-
|
|
25960
|
-
|
|
25961
25808
|
/***/ }),
|
|
25962
25809
|
|
|
25963
25810
|
/***/ "./src/rrweb/index.ts":
|
|
@@ -25976,7 +25823,7 @@ class RrwebEventExporter {
|
|
|
25976
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");
|
|
25977
25824
|
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils */ "./src/utils/index.ts");
|
|
25978
25825
|
/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../config */ "./src/config/index.ts");
|
|
25979
|
-
/* harmony import */ var
|
|
25826
|
+
/* harmony import */ var _services_socket_service__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../services/socket.service */ "./src/services/socket.service.ts");
|
|
25980
25827
|
|
|
25981
25828
|
|
|
25982
25829
|
|
|
@@ -26008,11 +25855,6 @@ class RecorderBrowserSDK {
|
|
|
26008
25855
|
*/
|
|
26009
25856
|
init(config) {
|
|
26010
25857
|
this.config = config;
|
|
26011
|
-
this.exporter = new _exporter__WEBPACK_IMPORTED_MODULE_5__.RrwebEventExporter({
|
|
26012
|
-
apiKey: config.apiKey,
|
|
26013
|
-
socketUrl: config.apiBaseUrl || '',
|
|
26014
|
-
usePostMessageFallback: Boolean(config.usePostMessageFallback),
|
|
26015
|
-
});
|
|
26016
25858
|
}
|
|
26017
25859
|
/**
|
|
26018
25860
|
* Starts recording events for a given session ID.
|
|
@@ -26058,7 +25900,7 @@ class RecorderBrowserSDK {
|
|
|
26058
25900
|
this.stopFn = (0,rrweb__WEBPACK_IMPORTED_MODULE_6__.record)({
|
|
26059
25901
|
...options,
|
|
26060
25902
|
emit: async (event) => {
|
|
26061
|
-
if (
|
|
25903
|
+
if (_services_socket_service__WEBPACK_IMPORTED_MODULE_5__.socketService) {
|
|
26062
25904
|
if (typeof maskingConfig.maskConsoleEvent === 'function' && (0,_utils__WEBPACK_IMPORTED_MODULE_3__.isConsoleEvent)(event)) {
|
|
26063
25905
|
const { data } = event;
|
|
26064
25906
|
const maskedPayload = maskingConfig.maskConsoleEvent(data.payload);
|
|
@@ -26066,7 +25908,7 @@ class RecorderBrowserSDK {
|
|
|
26066
25908
|
}
|
|
26067
25909
|
const packedEvent = (0,_rrweb_packer__WEBPACK_IMPORTED_MODULE_0__.pack)(event);
|
|
26068
25910
|
this.stoppedAt = new Date(event.timestamp).toISOString();
|
|
26069
|
-
|
|
25911
|
+
_services_socket_service__WEBPACK_IMPORTED_MODULE_5__.socketService.send({
|
|
26070
25912
|
event: packedEvent,
|
|
26071
25913
|
eventType: event.type,
|
|
26072
25914
|
timestamp: event.timestamp,
|
|
@@ -26107,12 +25949,13 @@ class RecorderBrowserSDK {
|
|
|
26107
25949
|
stop() {
|
|
26108
25950
|
var _a, _b;
|
|
26109
25951
|
(_a = this.stopFn) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
26110
|
-
(_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
|
+
}
|
|
26111
25955
|
this.clearRestartInterval();
|
|
26112
25956
|
}
|
|
26113
25957
|
subscribeToSession(session) {
|
|
26114
|
-
|
|
26115
|
-
(_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);
|
|
26116
25959
|
}
|
|
26117
25960
|
}
|
|
26118
25961
|
|
|
@@ -26371,6 +26214,207 @@ const messagingService = new MessagingService();
|
|
|
26371
26214
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (messagingService);
|
|
26372
26215
|
|
|
26373
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
|
+
|
|
26374
26418
|
/***/ }),
|
|
26375
26419
|
|
|
26376
26420
|
/***/ "./src/sessionRecorder.ts":
|
|
@@ -26387,17 +26431,18 @@ const messagingService = new MessagingService();
|
|
|
26387
26431
|
/* harmony import */ var _rrweb__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./rrweb */ "./src/rrweb/index.ts");
|
|
26388
26432
|
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils */ "./src/utils/index.ts");
|
|
26389
26433
|
/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./types */ "./src/types/index.ts");
|
|
26390
|
-
/* harmony import */ var
|
|
26391
|
-
/* harmony import */ var
|
|
26392
|
-
/* harmony import */ var
|
|
26393
|
-
/* harmony import */ var
|
|
26394
|
-
/* harmony import */ var
|
|
26395
|
-
/* harmony import */ var
|
|
26396
|
-
/* harmony import */ var
|
|
26397
|
-
/* harmony import */ var
|
|
26398
|
-
/* harmony import */ var
|
|
26399
|
-
/* harmony import */ var
|
|
26400
|
-
/* 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");
|
|
26401
26446
|
|
|
26402
26447
|
|
|
26403
26448
|
|
|
@@ -26413,7 +26458,8 @@ const messagingService = new MessagingService();
|
|
|
26413
26458
|
|
|
26414
26459
|
|
|
26415
26460
|
|
|
26416
|
-
|
|
26461
|
+
|
|
26462
|
+
class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_15__.Observable {
|
|
26417
26463
|
get navigation() {
|
|
26418
26464
|
return this._navigationRecorder.api;
|
|
26419
26465
|
}
|
|
@@ -26425,20 +26471,20 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
26425
26471
|
}
|
|
26426
26472
|
set sessionId(sessionId) {
|
|
26427
26473
|
this._sessionId = sessionId;
|
|
26428
|
-
(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);
|
|
26429
26475
|
}
|
|
26430
26476
|
get sessionType() {
|
|
26431
26477
|
return this._sessionType;
|
|
26432
26478
|
}
|
|
26433
26479
|
set sessionType(sessionType) {
|
|
26434
26480
|
this._sessionType = sessionType;
|
|
26435
|
-
const continuousRecording = sessionType ===
|
|
26481
|
+
const continuousRecording = sessionType === _multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.CONTINUOUS;
|
|
26436
26482
|
this._sessionWidget.updateContinuousRecordingState(continuousRecording);
|
|
26437
|
-
|
|
26438
|
-
(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);
|
|
26439
26485
|
}
|
|
26440
26486
|
get continuousRecording() {
|
|
26441
|
-
return this.sessionType ===
|
|
26487
|
+
return this.sessionType === _multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.CONTINUOUS;
|
|
26442
26488
|
}
|
|
26443
26489
|
get sessionState() {
|
|
26444
26490
|
return this._sessionState || _types__WEBPACK_IMPORTED_MODULE_3__.SessionState.stopped;
|
|
@@ -26446,8 +26492,8 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
26446
26492
|
set sessionState(state) {
|
|
26447
26493
|
this._sessionState = state;
|
|
26448
26494
|
this._sessionWidget.updateState(this._sessionState, this.continuousRecording);
|
|
26449
|
-
|
|
26450
|
-
(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);
|
|
26451
26497
|
// Emit observable event to support React wrapper
|
|
26452
26498
|
this.emit('state-change', [this._sessionState || _types__WEBPACK_IMPORTED_MODULE_3__.SessionState.stopped, this.sessionType]);
|
|
26453
26499
|
}
|
|
@@ -26456,7 +26502,7 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
26456
26502
|
}
|
|
26457
26503
|
set session(session) {
|
|
26458
26504
|
this._session = session;
|
|
26459
|
-
(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);
|
|
26460
26506
|
}
|
|
26461
26507
|
get sessionAttributes() {
|
|
26462
26508
|
return this._sessionAttributes || {};
|
|
@@ -26488,16 +26534,17 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
26488
26534
|
constructor() {
|
|
26489
26535
|
var _a;
|
|
26490
26536
|
super();
|
|
26491
|
-
this._apiService = new
|
|
26537
|
+
this._apiService = new _services_api_service__WEBPACK_IMPORTED_MODULE_10__.ApiService();
|
|
26492
26538
|
this._tracer = new _otel__WEBPACK_IMPORTED_MODULE_0__.TracerBrowserSDK();
|
|
26493
26539
|
this._recorder = new _rrweb__WEBPACK_IMPORTED_MODULE_1__.RecorderBrowserSDK();
|
|
26494
|
-
this._sessionWidget = new
|
|
26495
|
-
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;
|
|
26496
26543
|
this._startRequestController = null;
|
|
26497
26544
|
this._isInitialized = false;
|
|
26498
26545
|
// Session ID and state are stored in localStorage
|
|
26499
26546
|
this._sessionId = null;
|
|
26500
|
-
this._sessionType =
|
|
26547
|
+
this._sessionType = _multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.MANUAL;
|
|
26501
26548
|
this._sessionState = null;
|
|
26502
26549
|
this._session = null;
|
|
26503
26550
|
this._sessionAttributes = null;
|
|
@@ -26507,10 +26554,10 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
26507
26554
|
this._error = '';
|
|
26508
26555
|
// Safety: avoid accessing storage in SSR/non-browser environments
|
|
26509
26556
|
const isBrowser = typeof window !== 'undefined';
|
|
26510
|
-
const sessionLocal = isBrowser ? (0,_utils__WEBPACK_IMPORTED_MODULE_2__.getStoredItem)(
|
|
26511
|
-
const sessionIdLocal = isBrowser ? (0,_utils__WEBPACK_IMPORTED_MODULE_2__.getStoredItem)(
|
|
26512
|
-
const sessionStateLocal = isBrowser ? (0,_utils__WEBPACK_IMPORTED_MODULE_2__.getStoredItem)(
|
|
26513
|
-
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;
|
|
26514
26561
|
if ((0,_utils__WEBPACK_IMPORTED_MODULE_2__.isSessionActive)(sessionLocal, sessionTypeLocal)) {
|
|
26515
26562
|
this.session = sessionLocal;
|
|
26516
26563
|
this.sessionId = sessionIdLocal;
|
|
@@ -26521,10 +26568,10 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
26521
26568
|
this.session = null;
|
|
26522
26569
|
this.sessionId = null;
|
|
26523
26570
|
this.sessionState = null;
|
|
26524
|
-
this.sessionType =
|
|
26571
|
+
this.sessionType = _multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.MANUAL;
|
|
26525
26572
|
}
|
|
26526
26573
|
this._configs = {
|
|
26527
|
-
...
|
|
26574
|
+
..._config__WEBPACK_IMPORTED_MODULE_5__.BASE_CONFIG,
|
|
26528
26575
|
apiKey: ((_a = this.session) === null || _a === void 0 ? void 0 : _a.tempApiKey) || '',
|
|
26529
26576
|
};
|
|
26530
26577
|
}
|
|
@@ -26536,11 +26583,11 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
26536
26583
|
if (typeof window === 'undefined') {
|
|
26537
26584
|
return;
|
|
26538
26585
|
}
|
|
26539
|
-
this._configs = (0,
|
|
26586
|
+
this._configs = (0,_config__WEBPACK_IMPORTED_MODULE_5__.getSessionRecorderConfig)({ ...this._configs, ...configs });
|
|
26540
26587
|
this._isInitialized = true;
|
|
26541
26588
|
this._checkOperation('init');
|
|
26542
|
-
(0,
|
|
26543
|
-
(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);
|
|
26544
26591
|
this._tracer.init(this._configs);
|
|
26545
26592
|
this._apiService.init(this._configs);
|
|
26546
26593
|
this._sessionWidget.init(this._configs);
|
|
@@ -26550,16 +26597,26 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
26550
26597
|
environment: this._configs.environment,
|
|
26551
26598
|
version: this._configs.version,
|
|
26552
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
|
+
});
|
|
26553
26606
|
if (this._configs.apiKey) {
|
|
26554
26607
|
this._recorder.init(this._configs);
|
|
26555
26608
|
}
|
|
26556
|
-
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)) {
|
|
26557
26612
|
this._start();
|
|
26558
26613
|
}
|
|
26559
26614
|
this._registerWidgetEvents();
|
|
26560
26615
|
this._registerSessionLimitReach();
|
|
26561
26616
|
this._registerSessionAutoCreation();
|
|
26562
|
-
|
|
26617
|
+
this._registerRemoteSessionRecordingStart();
|
|
26618
|
+
this._registerRemoteSessionRecordingStop();
|
|
26619
|
+
_services_messaging_service__WEBPACK_IMPORTED_MODULE_9__["default"].sendMessage('state-change', this.sessionState);
|
|
26563
26620
|
// Emit init observable event
|
|
26564
26621
|
this.emit('init', [this]);
|
|
26565
26622
|
}
|
|
@@ -26572,7 +26629,7 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
26572
26629
|
if (!this.continuousRecording || !this._configs.showContinuousRecording) {
|
|
26573
26630
|
return;
|
|
26574
26631
|
}
|
|
26575
|
-
this._sessionWidget.updateSaveContinuousDebugSessionState(
|
|
26632
|
+
this._sessionWidget.updateSaveContinuousDebugSessionState(_sessionWidget_buttonStateConfigs__WEBPACK_IMPORTED_MODULE_13__.ContinuousRecordingSaveButtonState.SAVING);
|
|
26576
26633
|
const res = await this._apiService.saveContinuousDebugSession(this.sessionId, {
|
|
26577
26634
|
sessionAttributes: this.sessionAttributes,
|
|
26578
26635
|
resourceAttributes: (0,_utils__WEBPACK_IMPORTED_MODULE_2__.getNavigatorInfo)(),
|
|
@@ -26581,7 +26638,7 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
26581
26638
|
? `${this.sessionAttributes.userName}'s session on ${(0,_utils__WEBPACK_IMPORTED_MODULE_2__.getFormattedDate)(Date.now(), { month: 'short', day: 'numeric' })}`
|
|
26582
26639
|
: `Session on ${(0,_utils__WEBPACK_IMPORTED_MODULE_2__.getFormattedDate)(Date.now())}`,
|
|
26583
26640
|
});
|
|
26584
|
-
this._sessionWidget.updateSaveContinuousDebugSessionState(
|
|
26641
|
+
this._sessionWidget.updateSaveContinuousDebugSessionState(_sessionWidget_buttonStateConfigs__WEBPACK_IMPORTED_MODULE_13__.ContinuousRecordingSaveButtonState.SAVED);
|
|
26585
26642
|
const sessionUrl = res === null || res === void 0 ? void 0 : res.url;
|
|
26586
26643
|
this._sessionWidget.showToast({
|
|
26587
26644
|
type: 'success',
|
|
@@ -26594,11 +26651,11 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
26594
26651
|
}
|
|
26595
26652
|
catch (error) {
|
|
26596
26653
|
this.error = error.message;
|
|
26597
|
-
this._sessionWidget.updateSaveContinuousDebugSessionState(
|
|
26654
|
+
this._sessionWidget.updateSaveContinuousDebugSessionState(_sessionWidget_buttonStateConfigs__WEBPACK_IMPORTED_MODULE_13__.ContinuousRecordingSaveButtonState.ERROR);
|
|
26598
26655
|
}
|
|
26599
26656
|
finally {
|
|
26600
26657
|
setTimeout(() => {
|
|
26601
|
-
this._sessionWidget.updateSaveContinuousDebugSessionState(
|
|
26658
|
+
this._sessionWidget.updateSaveContinuousDebugSessionState(_sessionWidget_buttonStateConfigs__WEBPACK_IMPORTED_MODULE_13__.ContinuousRecordingSaveButtonState.IDLE);
|
|
26602
26659
|
}, 3000);
|
|
26603
26660
|
}
|
|
26604
26661
|
}
|
|
@@ -26607,11 +26664,11 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
26607
26664
|
* @param type - the type of session to start
|
|
26608
26665
|
* @param session - the session to start
|
|
26609
26666
|
*/
|
|
26610
|
-
start(type =
|
|
26667
|
+
start(type = _multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.MANUAL, session) {
|
|
26611
26668
|
this._checkOperation('start');
|
|
26612
26669
|
// If continuous recording is disabled, force plain mode
|
|
26613
|
-
if (type ===
|
|
26614
|
-
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;
|
|
26615
26672
|
}
|
|
26616
26673
|
this.sessionType = type;
|
|
26617
26674
|
this._startRequestController = new AbortController();
|
|
@@ -26632,7 +26689,7 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
26632
26689
|
this._stop();
|
|
26633
26690
|
if (this.continuousRecording) {
|
|
26634
26691
|
await this._apiService.stopContinuousDebugSession(this.sessionId);
|
|
26635
|
-
this.sessionType =
|
|
26692
|
+
this.sessionType = _multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.MANUAL;
|
|
26636
26693
|
}
|
|
26637
26694
|
else {
|
|
26638
26695
|
const request = {
|
|
@@ -26640,7 +26697,7 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
26640
26697
|
stoppedAt: this._recorder.stoppedAt,
|
|
26641
26698
|
};
|
|
26642
26699
|
const response = await this._apiService.stopSession(this.sessionId, request);
|
|
26643
|
-
|
|
26700
|
+
_eventBus__WEBPACK_IMPORTED_MODULE_7__.recorderEventBus.emit(_config__WEBPACK_IMPORTED_MODULE_5__.SESSION_RESPONSE, response);
|
|
26644
26701
|
}
|
|
26645
26702
|
this._clearSession();
|
|
26646
26703
|
}
|
|
@@ -26681,7 +26738,7 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
26681
26738
|
this._stop();
|
|
26682
26739
|
if (this.continuousRecording) {
|
|
26683
26740
|
await this._apiService.stopContinuousDebugSession(this.sessionId);
|
|
26684
|
-
this.sessionType =
|
|
26741
|
+
this.sessionType = _multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.MANUAL;
|
|
26685
26742
|
}
|
|
26686
26743
|
else {
|
|
26687
26744
|
await this._apiService.cancelSession(this.sessionId);
|
|
@@ -26705,7 +26762,7 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
26705
26762
|
* The function receives the click event as its parameter and
|
|
26706
26763
|
* should return `false` to prevent the default button action,
|
|
26707
26764
|
* or `true` (or nothing) to allow it.
|
|
26708
|
-
|
|
26765
|
+
*/
|
|
26709
26766
|
set recordingButtonClickHandler(handler) {
|
|
26710
26767
|
this._sessionWidget.buttonClickExternalHandler = handler;
|
|
26711
26768
|
}
|
|
@@ -26741,11 +26798,12 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
26741
26798
|
...(0,_utils__WEBPACK_IMPORTED_MODULE_2__.getNavigatorInfo)(),
|
|
26742
26799
|
...((sessionPayload === null || sessionPayload === void 0 ? void 0 : sessionPayload.resourceAttributes) || {}),
|
|
26743
26800
|
},
|
|
26801
|
+
userAttributes: this._userAttributes
|
|
26744
26802
|
};
|
|
26745
26803
|
const { state } = await this._apiService.checkRemoteSession(payload);
|
|
26746
26804
|
if (state == 'START') {
|
|
26747
26805
|
if (this.sessionState !== _types__WEBPACK_IMPORTED_MODULE_3__.SessionState.started) {
|
|
26748
|
-
await this.start(
|
|
26806
|
+
await this.start(_multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.CONTINUOUS);
|
|
26749
26807
|
}
|
|
26750
26808
|
}
|
|
26751
26809
|
else if (state == 'STOP') {
|
|
@@ -26794,7 +26852,7 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
26794
26852
|
}
|
|
26795
26853
|
_handleStart() {
|
|
26796
26854
|
if (this.sessionState === _types__WEBPACK_IMPORTED_MODULE_3__.SessionState.stopped) {
|
|
26797
|
-
this.start(
|
|
26855
|
+
this.start(_multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.MANUAL);
|
|
26798
26856
|
}
|
|
26799
26857
|
}
|
|
26800
26858
|
_handleStop(comment) {
|
|
@@ -26824,14 +26882,14 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
26824
26882
|
}
|
|
26825
26883
|
_handleContinuousDebugging() {
|
|
26826
26884
|
if (this.sessionState === _types__WEBPACK_IMPORTED_MODULE_3__.SessionState.stopped) {
|
|
26827
|
-
this.start(
|
|
26885
|
+
this.start(_multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.CONTINUOUS);
|
|
26828
26886
|
}
|
|
26829
26887
|
}
|
|
26830
26888
|
/**
|
|
26831
26889
|
* Register session limit reaching listeners for controlling session end
|
|
26832
26890
|
*/
|
|
26833
26891
|
_registerSessionLimitReach() {
|
|
26834
|
-
|
|
26892
|
+
_eventBus__WEBPACK_IMPORTED_MODULE_7__.recorderEventBus.on(_config__WEBPACK_IMPORTED_MODULE_5__.SESSION_STOPPED_EVENT, () => {
|
|
26835
26893
|
this._stop();
|
|
26836
26894
|
this._clearSession();
|
|
26837
26895
|
this._sessionWidget.handleUIReseting();
|
|
@@ -26841,7 +26899,7 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
26841
26899
|
* Register session auto creation listeners during continuous recording
|
|
26842
26900
|
*/
|
|
26843
26901
|
_registerSessionAutoCreation() {
|
|
26844
|
-
|
|
26902
|
+
_eventBus__WEBPACK_IMPORTED_MODULE_7__.recorderEventBus.on(_config__WEBPACK_IMPORTED_MODULE_5__.SESSION_AUTO_CREATED, (payload) => {
|
|
26845
26903
|
var _a;
|
|
26846
26904
|
if (!(payload === null || payload === void 0 ? void 0 : payload.data))
|
|
26847
26905
|
return;
|
|
@@ -26855,6 +26913,18 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
26855
26913
|
}, 5000);
|
|
26856
26914
|
});
|
|
26857
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
|
+
}
|
|
26858
26928
|
/**
|
|
26859
26929
|
* Create a new session and start it
|
|
26860
26930
|
*/
|
|
@@ -26865,6 +26935,7 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
26865
26935
|
const payload = {
|
|
26866
26936
|
sessionAttributes: this.sessionAttributes,
|
|
26867
26937
|
resourceAttributes: (0,_utils__WEBPACK_IMPORTED_MODULE_2__.getNavigatorInfo)(),
|
|
26938
|
+
userAttributes: this._userAttributes,
|
|
26868
26939
|
name: this.sessionAttributes.userName
|
|
26869
26940
|
? `${this.sessionAttributes.userName}'s session on ${(0,_utils__WEBPACK_IMPORTED_MODULE_2__.getFormattedDate)(Date.now(), { month: 'short', day: 'numeric' })}`
|
|
26870
26941
|
: `Session on ${(0,_utils__WEBPACK_IMPORTED_MODULE_2__.getFormattedDate)(Date.now())}`,
|
|
@@ -26876,8 +26947,8 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
26876
26947
|
: await this._apiService.startSession(request, signal);
|
|
26877
26948
|
if (session) {
|
|
26878
26949
|
session.sessionType = this.continuousRecording
|
|
26879
|
-
?
|
|
26880
|
-
:
|
|
26950
|
+
? _multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.CONTINUOUS
|
|
26951
|
+
: _multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.MANUAL;
|
|
26881
26952
|
this._setupSessionAndStart(session, false);
|
|
26882
26953
|
}
|
|
26883
26954
|
}
|
|
@@ -26885,7 +26956,7 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
26885
26956
|
this.error = error.message;
|
|
26886
26957
|
this.sessionState = _types__WEBPACK_IMPORTED_MODULE_3__.SessionState.stopped;
|
|
26887
26958
|
if (this.continuousRecording) {
|
|
26888
|
-
this.sessionType =
|
|
26959
|
+
this.sessionType = _multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.MANUAL;
|
|
26889
26960
|
}
|
|
26890
26961
|
}
|
|
26891
26962
|
}
|
|
@@ -26900,7 +26971,7 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
26900
26971
|
this._recorder.start(this.sessionId, this.sessionType);
|
|
26901
26972
|
this._navigationRecorder.start({ sessionId: this.sessionId, sessionType: this.sessionType, });
|
|
26902
26973
|
if (this.session) {
|
|
26903
|
-
|
|
26974
|
+
_eventBus__WEBPACK_IMPORTED_MODULE_7__.recorderEventBus.emit(_config__WEBPACK_IMPORTED_MODULE_5__.SESSION_STARTED_EVENT, this.session);
|
|
26904
26975
|
this._recorder.subscribeToSession(this.session);
|
|
26905
26976
|
this._sessionWidget.seconds = (0,_utils__WEBPACK_IMPORTED_MODULE_2__.getTimeDifferenceInSeconds)((_a = this.session) === null || _a === void 0 ? void 0 : _a.startedAt);
|
|
26906
26977
|
}
|
|
@@ -27026,6 +27097,10 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
27026
27097
|
return { errorInfo: String(errorInfo) };
|
|
27027
27098
|
}
|
|
27028
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
|
+
}
|
|
27029
27104
|
}
|
|
27030
27105
|
|
|
27031
27106
|
|
|
@@ -28364,6 +28439,26 @@ const getButtonTemplate = (button) => {
|
|
|
28364
28439
|
};
|
|
28365
28440
|
|
|
28366
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
|
+
|
|
28367
28462
|
/***/ }),
|
|
28368
28463
|
|
|
28369
28464
|
/***/ "./src/types/index.ts":
|
|
@@ -28376,11 +28471,14 @@ const getButtonTemplate = (button) => {
|
|
|
28376
28471
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
28377
28472
|
/* harmony export */ DebugSessionDataType: () => (/* reexport safe */ _session__WEBPACK_IMPORTED_MODULE_1__.DebugSessionDataType),
|
|
28378
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),
|
|
28379
28475
|
/* harmony export */ WidgetButtonPlacement: () => (/* reexport safe */ _sessionRecorder__WEBPACK_IMPORTED_MODULE_2__.WidgetButtonPlacement)
|
|
28380
28476
|
/* harmony export */ });
|
|
28381
28477
|
/* harmony import */ var _widget__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./widget */ "./src/types/widget.ts");
|
|
28382
28478
|
/* harmony import */ var _session__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./session */ "./src/types/session.ts");
|
|
28383
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
|
+
|
|
28384
28482
|
|
|
28385
28483
|
|
|
28386
28484
|
|
|
@@ -48393,6 +48491,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
48393
48491
|
/* harmony export */ SessionRecorderTraceIdRatioBasedSampler: () => (/* reexport safe */ _multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_6__.SessionRecorderTraceIdRatioBasedSampler),
|
|
48394
48492
|
/* harmony export */ SessionState: () => (/* reexport safe */ _types__WEBPACK_IMPORTED_MODULE_4__.SessionState),
|
|
48395
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),
|
|
48396
48495
|
/* harmony export */ WidgetButtonPlacement: () => (/* reexport safe */ _types__WEBPACK_IMPORTED_MODULE_4__.WidgetButtonPlacement),
|
|
48397
48496
|
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
|
|
48398
48497
|
/* harmony export */ recorderEventBus: () => (/* reexport safe */ _eventBus__WEBPACK_IMPORTED_MODULE_2__.recorderEventBus)
|