@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/browser/index.js
CHANGED
|
@@ -25065,6 +25065,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
25065
25065
|
/* harmony export */ OTEL_IGNORE_URLS: () => (/* binding */ OTEL_IGNORE_URLS),
|
|
25066
25066
|
/* harmony export */ OTEL_MP_SAMPLE_TRACE_RATIO: () => (/* binding */ OTEL_MP_SAMPLE_TRACE_RATIO),
|
|
25067
25067
|
/* harmony export */ PACKAGE_VERSION_EXPORT: () => (/* binding */ PACKAGE_VERSION_EXPORT),
|
|
25068
|
+
/* harmony export */ REMOTE_SESSION_RECORDING_START: () => (/* binding */ REMOTE_SESSION_RECORDING_START),
|
|
25069
|
+
/* harmony export */ REMOTE_SESSION_RECORDING_STOP: () => (/* binding */ REMOTE_SESSION_RECORDING_STOP),
|
|
25068
25070
|
/* harmony export */ SESSION_ADD_EVENT: () => (/* binding */ SESSION_ADD_EVENT),
|
|
25069
25071
|
/* harmony export */ SESSION_AUTO_CREATED: () => (/* binding */ SESSION_AUTO_CREATED),
|
|
25070
25072
|
/* harmony export */ SESSION_ID_PROP_NAME: () => (/* binding */ SESSION_ID_PROP_NAME),
|
|
@@ -25076,7 +25078,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
25076
25078
|
/* harmony export */ SESSION_STOPPED_EVENT: () => (/* binding */ SESSION_STOPPED_EVENT),
|
|
25077
25079
|
/* harmony export */ SESSION_SUBSCRIBE_EVENT: () => (/* binding */ SESSION_SUBSCRIBE_EVENT),
|
|
25078
25080
|
/* harmony export */ SESSION_TYPE_PROP_NAME: () => (/* binding */ SESSION_TYPE_PROP_NAME),
|
|
25079
|
-
/* harmony export */ SESSION_UNSUBSCRIBE_EVENT: () => (/* binding */ SESSION_UNSUBSCRIBE_EVENT)
|
|
25081
|
+
/* harmony export */ SESSION_UNSUBSCRIBE_EVENT: () => (/* binding */ SESSION_UNSUBSCRIBE_EVENT),
|
|
25082
|
+
/* harmony export */ SOCKET_SET_USER_EVENT: () => (/* binding */ SOCKET_SET_USER_EVENT)
|
|
25080
25083
|
/* harmony export */ });
|
|
25081
25084
|
const OTEL_MP_SAMPLE_TRACE_RATIO = 0.15;
|
|
25082
25085
|
const SESSION_ID_PROP_NAME = 'multiplayer-session-id';
|
|
@@ -25090,11 +25093,14 @@ const SESSION_SUBSCRIBE_EVENT = 'debug-session:subscribe';
|
|
|
25090
25093
|
const SESSION_UNSUBSCRIBE_EVENT = 'debug-session:unsubscribe';
|
|
25091
25094
|
const SESSION_AUTO_CREATED = 'debug-session:auto-created';
|
|
25092
25095
|
const SESSION_ADD_EVENT = 'debug-session:rrweb:add-event';
|
|
25096
|
+
const SOCKET_SET_USER_EVENT = 'socket:set-user';
|
|
25093
25097
|
const DEFAULT_MAX_HTTP_CAPTURING_PAYLOAD_SIZE = 100000;
|
|
25094
25098
|
const SESSION_RESPONSE = 'multiplayer-debug-session-response';
|
|
25095
25099
|
const CONTINUOUS_DEBUGGING_TIMEOUT = 60000; // 1 minutes
|
|
25096
25100
|
const DEBUG_SESSION_MAX_DURATION_SECONDS = 10 * 60 + 30; // TODO: move to shared config otel core
|
|
25097
|
-
const
|
|
25101
|
+
const REMOTE_SESSION_RECORDING_START = 'remote-session-recording:start';
|
|
25102
|
+
const REMOTE_SESSION_RECORDING_STOP = 'remote-session-recording:stop';
|
|
25103
|
+
const PACKAGE_VERSION_EXPORT = "1.3.0" || 0;
|
|
25098
25104
|
// Regex patterns for OpenTelemetry ignore URLs
|
|
25099
25105
|
const OTEL_IGNORE_URLS = [
|
|
25100
25106
|
// Traces endpoint
|
|
@@ -25190,6 +25196,7 @@ const BASE_CONFIG = {
|
|
|
25190
25196
|
captureHeaders: true,
|
|
25191
25197
|
masking: DEFAULT_MASKING_CONFIG,
|
|
25192
25198
|
widgetTextOverrides: DEFAULT_WIDGET_TEXT_CONFIG,
|
|
25199
|
+
useWebsocket: true,
|
|
25193
25200
|
};
|
|
25194
25201
|
|
|
25195
25202
|
|
|
@@ -25213,6 +25220,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
25213
25220
|
/* harmony export */ OTEL_IGNORE_URLS: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.OTEL_IGNORE_URLS),
|
|
25214
25221
|
/* harmony export */ OTEL_MP_SAMPLE_TRACE_RATIO: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.OTEL_MP_SAMPLE_TRACE_RATIO),
|
|
25215
25222
|
/* harmony export */ PACKAGE_VERSION_EXPORT: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.PACKAGE_VERSION_EXPORT),
|
|
25223
|
+
/* harmony export */ REMOTE_SESSION_RECORDING_START: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.REMOTE_SESSION_RECORDING_START),
|
|
25224
|
+
/* harmony export */ REMOTE_SESSION_RECORDING_STOP: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.REMOTE_SESSION_RECORDING_STOP),
|
|
25216
25225
|
/* harmony export */ SESSION_ADD_EVENT: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.SESSION_ADD_EVENT),
|
|
25217
25226
|
/* harmony export */ SESSION_AUTO_CREATED: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.SESSION_AUTO_CREATED),
|
|
25218
25227
|
/* harmony export */ SESSION_ID_PROP_NAME: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.SESSION_ID_PROP_NAME),
|
|
@@ -25225,6 +25234,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
25225
25234
|
/* harmony export */ SESSION_SUBSCRIBE_EVENT: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.SESSION_SUBSCRIBE_EVENT),
|
|
25226
25235
|
/* harmony export */ SESSION_TYPE_PROP_NAME: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.SESSION_TYPE_PROP_NAME),
|
|
25227
25236
|
/* harmony export */ SESSION_UNSUBSCRIBE_EVENT: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.SESSION_UNSUBSCRIBE_EVENT),
|
|
25237
|
+
/* harmony export */ SOCKET_SET_USER_EVENT: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.SOCKET_SET_USER_EVENT),
|
|
25228
25238
|
/* harmony export */ getMaskingConfig: () => (/* reexport safe */ _masking__WEBPACK_IMPORTED_MODULE_3__.getMaskingConfig),
|
|
25229
25239
|
/* harmony export */ getSessionRecorderConfig: () => (/* reexport safe */ _session_recorder__WEBPACK_IMPORTED_MODULE_4__.getSessionRecorderConfig),
|
|
25230
25240
|
/* harmony export */ isValidArray: () => (/* reexport safe */ _validators__WEBPACK_IMPORTED_MODULE_2__.isValidArray),
|
|
@@ -25344,6 +25354,7 @@ const getWidgetTextOverridesConfig = (config, defaultConfig) => {
|
|
|
25344
25354
|
};
|
|
25345
25355
|
};
|
|
25346
25356
|
const getSessionRecorderConfig = (c) => {
|
|
25357
|
+
var _a;
|
|
25347
25358
|
if (!c) {
|
|
25348
25359
|
return _defaults__WEBPACK_IMPORTED_MODULE_1__.BASE_CONFIG;
|
|
25349
25360
|
}
|
|
@@ -25369,6 +25380,7 @@ const getSessionRecorderConfig = (c) => {
|
|
|
25369
25380
|
captureHeaders: (0,_validators__WEBPACK_IMPORTED_MODULE_3__.isValidBoolean)(c.captureHeaders, _defaults__WEBPACK_IMPORTED_MODULE_1__.BASE_CONFIG.captureHeaders),
|
|
25370
25381
|
masking: (0,_masking__WEBPACK_IMPORTED_MODULE_2__.getMaskingConfig)(c.masking),
|
|
25371
25382
|
widgetTextOverrides: getWidgetTextOverridesConfig(c.widgetTextOverrides, _defaults__WEBPACK_IMPORTED_MODULE_1__.BASE_CONFIG.widgetTextOverrides),
|
|
25383
|
+
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),
|
|
25372
25384
|
};
|
|
25373
25385
|
};
|
|
25374
25386
|
|
|
@@ -25958,14 +25970,7 @@ const getExporterEndpoint = (exporterEndpoint) => {
|
|
|
25958
25970
|
return `${trimmedExporterEndpoint}/v1/traces`;
|
|
25959
25971
|
};
|
|
25960
25972
|
const getElementTextContent = (element) => {
|
|
25961
|
-
|
|
25962
|
-
const slicedText = element.innerText.slice(0, 50);
|
|
25963
|
-
if (slicedText.length < element.innerText.length) {
|
|
25964
|
-
return `${slicedText}...`;
|
|
25965
|
-
}
|
|
25966
|
-
return slicedText;
|
|
25967
|
-
};
|
|
25968
|
-
return String(element.textContent || element.ariaLabel || getInnerText(element) || '').trim();
|
|
25973
|
+
return String(element.textContent || element.ariaLabel || '').trim();
|
|
25969
25974
|
};
|
|
25970
25975
|
|
|
25971
25976
|
|
|
@@ -26190,6 +26195,7 @@ class TracerBrowserSDK {
|
|
|
26190
26195
|
});
|
|
26191
26196
|
return;
|
|
26192
26197
|
}
|
|
26198
|
+
// eslint-disable-next-line
|
|
26193
26199
|
}
|
|
26194
26200
|
catch (_ignored) { }
|
|
26195
26201
|
// Fallback: create a short-lived span to hold the exception details
|
|
@@ -26205,6 +26211,7 @@ class TracerBrowserSDK {
|
|
|
26205
26211
|
...(errorInfo || {}),
|
|
26206
26212
|
});
|
|
26207
26213
|
span.end();
|
|
26214
|
+
// eslint-disable-next-line
|
|
26208
26215
|
}
|
|
26209
26216
|
catch (_ignored) { }
|
|
26210
26217
|
}
|
|
@@ -26226,12 +26233,14 @@ class TracerBrowserSDK {
|
|
|
26226
26233
|
return;
|
|
26227
26234
|
if (typeof window === 'undefined')
|
|
26228
26235
|
return;
|
|
26236
|
+
// eslint-disable-next-line
|
|
26229
26237
|
const errorHandler = (event) => {
|
|
26230
26238
|
const err = (event === null || event === void 0 ? void 0 : event.error) instanceof Error
|
|
26231
26239
|
? event.error
|
|
26232
26240
|
: new Error((event === null || event === void 0 ? void 0 : event.message) || 'Script error');
|
|
26233
26241
|
this.captureException(err);
|
|
26234
26242
|
};
|
|
26243
|
+
// eslint-disable-next-line
|
|
26235
26244
|
const rejectionHandler = (event) => {
|
|
26236
26245
|
const reason = (event && 'reason' in event) ? event.reason : undefined;
|
|
26237
26246
|
const err = reason instanceof Error
|
|
@@ -26410,6 +26419,7 @@ if (typeof window !== 'undefined' && typeof window.fetch !== 'undefined') {
|
|
|
26410
26419
|
: (typeof input === 'string' || input instanceof URL ? String(input) : '');
|
|
26411
26420
|
// Only attempt to read the body from init (safe); avoid constructing/cloning Requests
|
|
26412
26421
|
// If the caller passed a Request as input, we do not attempt to read its body here
|
|
26422
|
+
// eslint-disable-next-line
|
|
26413
26423
|
const candidateBody = init === null || init === void 0 ? void 0 : init.body;
|
|
26414
26424
|
if (!(0,_utils_type_utils__WEBPACK_IMPORTED_MODULE_0__.isNullish)(candidateBody)) {
|
|
26415
26425
|
const requestBody = _tryReadFetchBody({
|
|
@@ -26604,170 +26614,6 @@ if (typeof XMLHttpRequest !== 'undefined') {
|
|
|
26604
26614
|
}
|
|
26605
26615
|
|
|
26606
26616
|
|
|
26607
|
-
/***/ }),
|
|
26608
|
-
|
|
26609
|
-
/***/ "./src/rrweb/exporter.ts":
|
|
26610
|
-
/*!*******************************!*\
|
|
26611
|
-
!*** ./src/rrweb/exporter.ts ***!
|
|
26612
|
-
\*******************************/
|
|
26613
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
26614
|
-
|
|
26615
|
-
"use strict";
|
|
26616
|
-
__webpack_require__.r(__webpack_exports__);
|
|
26617
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
26618
|
-
/* harmony export */ RrwebEventExporter: () => (/* binding */ RrwebEventExporter)
|
|
26619
|
-
/* harmony export */ });
|
|
26620
|
-
/* harmony import */ var socket_io_client__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! socket.io-client */ "../../node_modules/socket.io-client/build/esm/index.js");
|
|
26621
|
-
/* harmony import */ var _eventBus__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../eventBus */ "./src/eventBus.ts");
|
|
26622
|
-
/* harmony import */ var _services_messaging_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../services/messaging.service */ "./src/services/messaging.service.ts");
|
|
26623
|
-
/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../config */ "./src/config/index.ts");
|
|
26624
|
-
|
|
26625
|
-
|
|
26626
|
-
|
|
26627
|
-
|
|
26628
|
-
const MAX_RECONNECTION_ATTEMPTS = 2;
|
|
26629
|
-
class RrwebEventExporter {
|
|
26630
|
-
constructor(options) {
|
|
26631
|
-
this.options = options;
|
|
26632
|
-
this.socket = null;
|
|
26633
|
-
this.queue = [];
|
|
26634
|
-
this.isConnecting = false;
|
|
26635
|
-
this.isConnected = false;
|
|
26636
|
-
this.usePostMessage = false;
|
|
26637
|
-
this.attempts = 0;
|
|
26638
|
-
this.sessionId = null;
|
|
26639
|
-
}
|
|
26640
|
-
init() {
|
|
26641
|
-
if (this.isConnecting || this.isConnected)
|
|
26642
|
-
return;
|
|
26643
|
-
this.attempts++;
|
|
26644
|
-
this.isConnecting = true;
|
|
26645
|
-
this.usePostMessage = false;
|
|
26646
|
-
this.socket = (0,socket_io_client__WEBPACK_IMPORTED_MODULE_0__["default"])(this.options.socketUrl, {
|
|
26647
|
-
path: '/v0/radar/ws',
|
|
26648
|
-
auth: {
|
|
26649
|
-
'x-api-key': this.options.apiKey,
|
|
26650
|
-
},
|
|
26651
|
-
reconnectionAttempts: 2,
|
|
26652
|
-
transports: ['websocket'],
|
|
26653
|
-
});
|
|
26654
|
-
// this.socket.on('connect', () => {
|
|
26655
|
-
// this.isConnecting = false
|
|
26656
|
-
// this.isConnected = true
|
|
26657
|
-
// this.usePostMessage = false
|
|
26658
|
-
// this.flushQueue()
|
|
26659
|
-
// })
|
|
26660
|
-
this.socket.on('ready', () => {
|
|
26661
|
-
this.isConnecting = false;
|
|
26662
|
-
this.isConnected = true;
|
|
26663
|
-
this.usePostMessage = false;
|
|
26664
|
-
this.flushQueue();
|
|
26665
|
-
});
|
|
26666
|
-
this.socket.on('disconnect', (err) => {
|
|
26667
|
-
this.isConnecting = false;
|
|
26668
|
-
this.isConnected = false;
|
|
26669
|
-
});
|
|
26670
|
-
this.socket.on('connect_error', (err) => {
|
|
26671
|
-
this.isConnecting = false;
|
|
26672
|
-
this.isConnected = false;
|
|
26673
|
-
this.checkReconnectionAttempts();
|
|
26674
|
-
});
|
|
26675
|
-
this.socket.on(_config__WEBPACK_IMPORTED_MODULE_3__.SESSION_STOPPED_EVENT, (data) => {
|
|
26676
|
-
_eventBus__WEBPACK_IMPORTED_MODULE_1__.recorderEventBus.emit(_config__WEBPACK_IMPORTED_MODULE_3__.SESSION_STOPPED_EVENT, data);
|
|
26677
|
-
this.unsubscribeFromSession();
|
|
26678
|
-
});
|
|
26679
|
-
this.socket.on(_config__WEBPACK_IMPORTED_MODULE_3__.SESSION_AUTO_CREATED, (data) => {
|
|
26680
|
-
_eventBus__WEBPACK_IMPORTED_MODULE_1__.recorderEventBus.emit(_config__WEBPACK_IMPORTED_MODULE_3__.SESSION_AUTO_CREATED, data);
|
|
26681
|
-
});
|
|
26682
|
-
}
|
|
26683
|
-
checkReconnectionAttempts() {
|
|
26684
|
-
if (this.attempts >= MAX_RECONNECTION_ATTEMPTS) {
|
|
26685
|
-
this.usePostMessage = !!this.options.usePostMessageFallback;
|
|
26686
|
-
this.flushQueue();
|
|
26687
|
-
}
|
|
26688
|
-
}
|
|
26689
|
-
sendViaPostMessage(event) {
|
|
26690
|
-
_services_messaging_service__WEBPACK_IMPORTED_MODULE_2__["default"].sendMessage('rrweb-event', event);
|
|
26691
|
-
}
|
|
26692
|
-
flushQueue() {
|
|
26693
|
-
var _a, _b;
|
|
26694
|
-
while (this.queue.length > 0 && (this.usePostMessage || ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.connected))) {
|
|
26695
|
-
const event = this.queue.shift();
|
|
26696
|
-
if (!event)
|
|
26697
|
-
continue;
|
|
26698
|
-
if (this.usePostMessage) {
|
|
26699
|
-
this.sendViaPostMessage(event.data);
|
|
26700
|
-
}
|
|
26701
|
-
else if ((_b = this.socket) === null || _b === void 0 ? void 0 : _b.connected) {
|
|
26702
|
-
this.socket.emit(event.name, event.data);
|
|
26703
|
-
}
|
|
26704
|
-
}
|
|
26705
|
-
}
|
|
26706
|
-
unsubscribeFromSession() {
|
|
26707
|
-
var _a;
|
|
26708
|
-
const payload = {
|
|
26709
|
-
debugSessionId: this.sessionId,
|
|
26710
|
-
};
|
|
26711
|
-
if (this.usePostMessage) {
|
|
26712
|
-
_services_messaging_service__WEBPACK_IMPORTED_MODULE_2__["default"].sendMessage('socket-emit', { event: _config__WEBPACK_IMPORTED_MODULE_3__.SESSION_UNSUBSCRIBE_EVENT, data: payload });
|
|
26713
|
-
}
|
|
26714
|
-
else if ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.connected) {
|
|
26715
|
-
this.socket.emit(_config__WEBPACK_IMPORTED_MODULE_3__.SESSION_UNSUBSCRIBE_EVENT, payload);
|
|
26716
|
-
}
|
|
26717
|
-
}
|
|
26718
|
-
send(event) {
|
|
26719
|
-
var _a;
|
|
26720
|
-
if (this.usePostMessage) {
|
|
26721
|
-
this.sendViaPostMessage(event);
|
|
26722
|
-
}
|
|
26723
|
-
else if ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.connected) {
|
|
26724
|
-
this.socket.emit(_config__WEBPACK_IMPORTED_MODULE_3__.SESSION_ADD_EVENT, event);
|
|
26725
|
-
}
|
|
26726
|
-
else {
|
|
26727
|
-
this.queue.push({ data: event, name: _config__WEBPACK_IMPORTED_MODULE_3__.SESSION_ADD_EVENT });
|
|
26728
|
-
this.init();
|
|
26729
|
-
}
|
|
26730
|
-
}
|
|
26731
|
-
subscribeToSession(session) {
|
|
26732
|
-
var _a;
|
|
26733
|
-
this.sessionId = session.shortId || session._id;
|
|
26734
|
-
const payload = {
|
|
26735
|
-
projectId: session.project,
|
|
26736
|
-
workspaceId: session.workspace,
|
|
26737
|
-
debugSessionId: this.sessionId,
|
|
26738
|
-
sessionType: session.creationType,
|
|
26739
|
-
};
|
|
26740
|
-
if (this.usePostMessage) {
|
|
26741
|
-
this.sendViaPostMessage({ type: _config__WEBPACK_IMPORTED_MODULE_3__.SESSION_SUBSCRIBE_EVENT, ...payload });
|
|
26742
|
-
}
|
|
26743
|
-
else if ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.connected) {
|
|
26744
|
-
this.socket.emit(_config__WEBPACK_IMPORTED_MODULE_3__.SESSION_SUBSCRIBE_EVENT, payload);
|
|
26745
|
-
}
|
|
26746
|
-
else {
|
|
26747
|
-
this.queue.push({ data: payload, name: _config__WEBPACK_IMPORTED_MODULE_3__.SESSION_SUBSCRIBE_EVENT });
|
|
26748
|
-
this.init();
|
|
26749
|
-
}
|
|
26750
|
-
}
|
|
26751
|
-
close() {
|
|
26752
|
-
var _a;
|
|
26753
|
-
if (this.usePostMessage) {
|
|
26754
|
-
this.sendViaPostMessage({ type: 'close' });
|
|
26755
|
-
}
|
|
26756
|
-
if ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.connected) {
|
|
26757
|
-
setTimeout(() => {
|
|
26758
|
-
var _a;
|
|
26759
|
-
this.unsubscribeFromSession();
|
|
26760
|
-
this.attempts = 0;
|
|
26761
|
-
this.isConnected = false;
|
|
26762
|
-
this.isConnecting = false;
|
|
26763
|
-
(_a = this.socket) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
26764
|
-
this.socket = null;
|
|
26765
|
-
}, 500);
|
|
26766
|
-
}
|
|
26767
|
-
}
|
|
26768
|
-
}
|
|
26769
|
-
|
|
26770
|
-
|
|
26771
26617
|
/***/ }),
|
|
26772
26618
|
|
|
26773
26619
|
/***/ "./src/rrweb/index.ts":
|
|
@@ -26787,7 +26633,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
26787
26633
|
/* 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");
|
|
26788
26634
|
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils */ "./src/utils/index.ts");
|
|
26789
26635
|
/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../config */ "./src/config/index.ts");
|
|
26790
|
-
/* harmony import */ var
|
|
26636
|
+
/* harmony import */ var _services_socket_service__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../services/socket.service */ "./src/services/socket.service.ts");
|
|
26791
26637
|
|
|
26792
26638
|
|
|
26793
26639
|
|
|
@@ -26819,11 +26665,6 @@ class RecorderBrowserSDK {
|
|
|
26819
26665
|
*/
|
|
26820
26666
|
init(config) {
|
|
26821
26667
|
this.config = config;
|
|
26822
|
-
this.exporter = new _exporter__WEBPACK_IMPORTED_MODULE_5__.RrwebEventExporter({
|
|
26823
|
-
apiKey: config.apiKey,
|
|
26824
|
-
socketUrl: config.apiBaseUrl || '',
|
|
26825
|
-
usePostMessageFallback: Boolean(config.usePostMessageFallback),
|
|
26826
|
-
});
|
|
26827
26668
|
}
|
|
26828
26669
|
/**
|
|
26829
26670
|
* Starts recording events for a given session ID.
|
|
@@ -26869,7 +26710,7 @@ class RecorderBrowserSDK {
|
|
|
26869
26710
|
this.stopFn = (0,rrweb__WEBPACK_IMPORTED_MODULE_6__.record)({
|
|
26870
26711
|
...options,
|
|
26871
26712
|
emit: async (event) => {
|
|
26872
|
-
if (
|
|
26713
|
+
if (_services_socket_service__WEBPACK_IMPORTED_MODULE_5__.socketService) {
|
|
26873
26714
|
if (typeof maskingConfig.maskConsoleEvent === 'function' && (0,_utils__WEBPACK_IMPORTED_MODULE_3__.isConsoleEvent)(event)) {
|
|
26874
26715
|
const { data } = event;
|
|
26875
26716
|
const maskedPayload = maskingConfig.maskConsoleEvent(data.payload);
|
|
@@ -26877,7 +26718,7 @@ class RecorderBrowserSDK {
|
|
|
26877
26718
|
}
|
|
26878
26719
|
const packedEvent = (0,_rrweb_packer__WEBPACK_IMPORTED_MODULE_0__.pack)(event);
|
|
26879
26720
|
this.stoppedAt = new Date(event.timestamp).toISOString();
|
|
26880
|
-
|
|
26721
|
+
_services_socket_service__WEBPACK_IMPORTED_MODULE_5__.socketService.send({
|
|
26881
26722
|
event: packedEvent,
|
|
26882
26723
|
eventType: event.type,
|
|
26883
26724
|
timestamp: event.timestamp,
|
|
@@ -26918,12 +26759,13 @@ class RecorderBrowserSDK {
|
|
|
26918
26759
|
stop() {
|
|
26919
26760
|
var _a, _b;
|
|
26920
26761
|
(_a = this.stopFn) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
26921
|
-
(_b = this.
|
|
26762
|
+
if (!((_b = this.config) === null || _b === void 0 ? void 0 : _b.useWebsocket)) {
|
|
26763
|
+
_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();
|
|
26764
|
+
}
|
|
26922
26765
|
this.clearRestartInterval();
|
|
26923
26766
|
}
|
|
26924
26767
|
subscribeToSession(session) {
|
|
26925
|
-
|
|
26926
|
-
(_a = this.exporter) === null || _a === void 0 ? void 0 : _a.subscribeToSession(session);
|
|
26768
|
+
_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);
|
|
26927
26769
|
}
|
|
26928
26770
|
}
|
|
26929
26771
|
|
|
@@ -27184,6 +27026,208 @@ const messagingService = new MessagingService();
|
|
|
27184
27026
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (messagingService);
|
|
27185
27027
|
|
|
27186
27028
|
|
|
27029
|
+
/***/ }),
|
|
27030
|
+
|
|
27031
|
+
/***/ "./src/services/socket.service.ts":
|
|
27032
|
+
/*!****************************************!*\
|
|
27033
|
+
!*** ./src/services/socket.service.ts ***!
|
|
27034
|
+
\****************************************/
|
|
27035
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
27036
|
+
|
|
27037
|
+
"use strict";
|
|
27038
|
+
__webpack_require__.r(__webpack_exports__);
|
|
27039
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
27040
|
+
/* harmony export */ SocketService: () => (/* binding */ SocketService),
|
|
27041
|
+
/* harmony export */ createSocketService: () => (/* binding */ createSocketService),
|
|
27042
|
+
/* harmony export */ socketService: () => (/* binding */ socketService)
|
|
27043
|
+
/* harmony export */ });
|
|
27044
|
+
/* harmony import */ var socket_io_client__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! socket.io-client */ "../../node_modules/socket.io-client/build/esm/index.js");
|
|
27045
|
+
/* harmony import */ var _eventBus__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../eventBus */ "./src/eventBus.ts");
|
|
27046
|
+
/* harmony import */ var _services_messaging_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../services/messaging.service */ "./src/services/messaging.service.ts");
|
|
27047
|
+
/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../config */ "./src/config/index.ts");
|
|
27048
|
+
|
|
27049
|
+
|
|
27050
|
+
|
|
27051
|
+
|
|
27052
|
+
const MAX_RECONNECTION_ATTEMPTS = 2;
|
|
27053
|
+
class SocketService {
|
|
27054
|
+
constructor(options) {
|
|
27055
|
+
this.options = options;
|
|
27056
|
+
this.socket = null;
|
|
27057
|
+
this.queue = [];
|
|
27058
|
+
this.isConnecting = false;
|
|
27059
|
+
this.isConnected = false;
|
|
27060
|
+
this.usePostMessage = false;
|
|
27061
|
+
this.attempts = 0;
|
|
27062
|
+
this.sessionId = null;
|
|
27063
|
+
if (this.options.keepAlive
|
|
27064
|
+
&& this.options.socketUrl
|
|
27065
|
+
&& this.options.apiKey) {
|
|
27066
|
+
this.init();
|
|
27067
|
+
}
|
|
27068
|
+
}
|
|
27069
|
+
init() {
|
|
27070
|
+
if (this.isConnecting || this.isConnected)
|
|
27071
|
+
return;
|
|
27072
|
+
this.attempts++;
|
|
27073
|
+
this.isConnecting = true;
|
|
27074
|
+
this.usePostMessage = false;
|
|
27075
|
+
this.socket = (0,socket_io_client__WEBPACK_IMPORTED_MODULE_0__["default"])(this.options.socketUrl, {
|
|
27076
|
+
path: '/v0/radar/ws',
|
|
27077
|
+
auth: {
|
|
27078
|
+
'x-api-key': this.options.apiKey,
|
|
27079
|
+
},
|
|
27080
|
+
reconnectionAttempts: 2,
|
|
27081
|
+
transports: ['websocket'],
|
|
27082
|
+
});
|
|
27083
|
+
// this.socket.on('connect', () => {
|
|
27084
|
+
// this.isConnecting = false
|
|
27085
|
+
// this.isConnected = true
|
|
27086
|
+
// this.usePostMessage = false
|
|
27087
|
+
// this.flushQueue()
|
|
27088
|
+
// })
|
|
27089
|
+
this.socket.on('ready', () => {
|
|
27090
|
+
this.isConnecting = false;
|
|
27091
|
+
this.isConnected = true;
|
|
27092
|
+
this.usePostMessage = false;
|
|
27093
|
+
this.flushQueue();
|
|
27094
|
+
});
|
|
27095
|
+
this.socket.on('disconnect', (err) => {
|
|
27096
|
+
this.isConnecting = false;
|
|
27097
|
+
this.isConnected = false;
|
|
27098
|
+
});
|
|
27099
|
+
this.socket.on('connect_error', (err) => {
|
|
27100
|
+
this.isConnecting = false;
|
|
27101
|
+
this.isConnected = false;
|
|
27102
|
+
this.checkReconnectionAttempts();
|
|
27103
|
+
});
|
|
27104
|
+
this.socket.on(_config__WEBPACK_IMPORTED_MODULE_3__.SESSION_STOPPED_EVENT, (data) => {
|
|
27105
|
+
_eventBus__WEBPACK_IMPORTED_MODULE_1__.recorderEventBus.emit(_config__WEBPACK_IMPORTED_MODULE_3__.SESSION_STOPPED_EVENT, data);
|
|
27106
|
+
this.unsubscribeFromSession();
|
|
27107
|
+
});
|
|
27108
|
+
this.socket.on(_config__WEBPACK_IMPORTED_MODULE_3__.SESSION_AUTO_CREATED, (data) => {
|
|
27109
|
+
_eventBus__WEBPACK_IMPORTED_MODULE_1__.recorderEventBus.emit(_config__WEBPACK_IMPORTED_MODULE_3__.SESSION_AUTO_CREATED, data);
|
|
27110
|
+
});
|
|
27111
|
+
this.socket.on(_config__WEBPACK_IMPORTED_MODULE_3__.REMOTE_SESSION_RECORDING_START, (data) => {
|
|
27112
|
+
_eventBus__WEBPACK_IMPORTED_MODULE_1__.recorderEventBus.emit(_config__WEBPACK_IMPORTED_MODULE_3__.REMOTE_SESSION_RECORDING_START, data);
|
|
27113
|
+
});
|
|
27114
|
+
this.socket.on(_config__WEBPACK_IMPORTED_MODULE_3__.REMOTE_SESSION_RECORDING_STOP, (data) => {
|
|
27115
|
+
_eventBus__WEBPACK_IMPORTED_MODULE_1__.recorderEventBus.emit(_config__WEBPACK_IMPORTED_MODULE_3__.REMOTE_SESSION_RECORDING_STOP, data);
|
|
27116
|
+
});
|
|
27117
|
+
}
|
|
27118
|
+
checkReconnectionAttempts() {
|
|
27119
|
+
if (this.attempts >= MAX_RECONNECTION_ATTEMPTS) {
|
|
27120
|
+
this.usePostMessage = !!this.options.usePostMessageFallback;
|
|
27121
|
+
this.flushQueue();
|
|
27122
|
+
}
|
|
27123
|
+
}
|
|
27124
|
+
sendViaPostMessage(event) {
|
|
27125
|
+
_services_messaging_service__WEBPACK_IMPORTED_MODULE_2__["default"].sendMessage('rrweb-event', event);
|
|
27126
|
+
}
|
|
27127
|
+
flushQueue() {
|
|
27128
|
+
var _a, _b;
|
|
27129
|
+
while (this.queue.length > 0 && (this.usePostMessage || ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.connected))) {
|
|
27130
|
+
const event = this.queue.shift();
|
|
27131
|
+
if (!event)
|
|
27132
|
+
continue;
|
|
27133
|
+
if (this.usePostMessage) {
|
|
27134
|
+
this.sendViaPostMessage(event.data);
|
|
27135
|
+
}
|
|
27136
|
+
else if ((_b = this.socket) === null || _b === void 0 ? void 0 : _b.connected) {
|
|
27137
|
+
this.socket.emit(event.name, event.data);
|
|
27138
|
+
}
|
|
27139
|
+
}
|
|
27140
|
+
}
|
|
27141
|
+
unsubscribeFromSession() {
|
|
27142
|
+
var _a;
|
|
27143
|
+
const payload = {
|
|
27144
|
+
debugSessionId: this.sessionId,
|
|
27145
|
+
};
|
|
27146
|
+
if (this.usePostMessage) {
|
|
27147
|
+
_services_messaging_service__WEBPACK_IMPORTED_MODULE_2__["default"].sendMessage('socket-emit', { event: _config__WEBPACK_IMPORTED_MODULE_3__.SESSION_UNSUBSCRIBE_EVENT, data: payload });
|
|
27148
|
+
}
|
|
27149
|
+
else if ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.connected) {
|
|
27150
|
+
this.socket.emit(_config__WEBPACK_IMPORTED_MODULE_3__.SESSION_UNSUBSCRIBE_EVENT, payload);
|
|
27151
|
+
}
|
|
27152
|
+
}
|
|
27153
|
+
send(event) {
|
|
27154
|
+
var _a;
|
|
27155
|
+
if (this.usePostMessage) {
|
|
27156
|
+
this.sendViaPostMessage(event);
|
|
27157
|
+
}
|
|
27158
|
+
else if ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.connected) {
|
|
27159
|
+
this.socket.emit(_config__WEBPACK_IMPORTED_MODULE_3__.SESSION_ADD_EVENT, event);
|
|
27160
|
+
}
|
|
27161
|
+
else {
|
|
27162
|
+
this.queue.push({ data: event, name: _config__WEBPACK_IMPORTED_MODULE_3__.SESSION_ADD_EVENT });
|
|
27163
|
+
this.init();
|
|
27164
|
+
}
|
|
27165
|
+
}
|
|
27166
|
+
subscribeToSession(session) {
|
|
27167
|
+
var _a;
|
|
27168
|
+
this.sessionId = session.shortId || session._id;
|
|
27169
|
+
const payload = {
|
|
27170
|
+
projectId: session.project,
|
|
27171
|
+
workspaceId: session.workspace,
|
|
27172
|
+
debugSessionId: this.sessionId,
|
|
27173
|
+
sessionType: session.creationType,
|
|
27174
|
+
};
|
|
27175
|
+
if (this.usePostMessage) {
|
|
27176
|
+
this.sendViaPostMessage({
|
|
27177
|
+
type: _config__WEBPACK_IMPORTED_MODULE_3__.SESSION_SUBSCRIBE_EVENT,
|
|
27178
|
+
...payload,
|
|
27179
|
+
});
|
|
27180
|
+
}
|
|
27181
|
+
else if ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.connected) {
|
|
27182
|
+
this.socket.emit(_config__WEBPACK_IMPORTED_MODULE_3__.SESSION_SUBSCRIBE_EVENT, payload);
|
|
27183
|
+
}
|
|
27184
|
+
else {
|
|
27185
|
+
this.queue.push({
|
|
27186
|
+
data: payload,
|
|
27187
|
+
name: _config__WEBPACK_IMPORTED_MODULE_3__.SESSION_SUBSCRIBE_EVENT,
|
|
27188
|
+
});
|
|
27189
|
+
this.init();
|
|
27190
|
+
}
|
|
27191
|
+
}
|
|
27192
|
+
setUser(userAttributes) {
|
|
27193
|
+
var _a;
|
|
27194
|
+
if (this.usePostMessage) {
|
|
27195
|
+
this.sendViaPostMessage({
|
|
27196
|
+
type: _config__WEBPACK_IMPORTED_MODULE_3__.SOCKET_SET_USER_EVENT,
|
|
27197
|
+
data: userAttributes,
|
|
27198
|
+
});
|
|
27199
|
+
}
|
|
27200
|
+
else if ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.connected) {
|
|
27201
|
+
this.socket.emit(_config__WEBPACK_IMPORTED_MODULE_3__.SOCKET_SET_USER_EVENT, userAttributes);
|
|
27202
|
+
}
|
|
27203
|
+
}
|
|
27204
|
+
close() {
|
|
27205
|
+
var _a;
|
|
27206
|
+
if (this.usePostMessage) {
|
|
27207
|
+
this.sendViaPostMessage({ type: 'close' });
|
|
27208
|
+
}
|
|
27209
|
+
if ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.connected) {
|
|
27210
|
+
setTimeout(() => {
|
|
27211
|
+
var _a;
|
|
27212
|
+
this.unsubscribeFromSession();
|
|
27213
|
+
this.attempts = 0;
|
|
27214
|
+
this.isConnected = false;
|
|
27215
|
+
this.isConnecting = false;
|
|
27216
|
+
(_a = this.socket) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
27217
|
+
this.socket = null;
|
|
27218
|
+
}, 500);
|
|
27219
|
+
}
|
|
27220
|
+
}
|
|
27221
|
+
}
|
|
27222
|
+
let socketService = null;
|
|
27223
|
+
const createSocketService = (options) => {
|
|
27224
|
+
if (!socketService) {
|
|
27225
|
+
socketService = new SocketService(options);
|
|
27226
|
+
}
|
|
27227
|
+
return socketService;
|
|
27228
|
+
};
|
|
27229
|
+
|
|
27230
|
+
|
|
27187
27231
|
/***/ }),
|
|
27188
27232
|
|
|
27189
27233
|
/***/ "./src/sessionRecorder.ts":
|
|
@@ -27201,17 +27245,19 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
27201
27245
|
/* harmony import */ var _rrweb__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./rrweb */ "./src/rrweb/index.ts");
|
|
27202
27246
|
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils */ "./src/utils/index.ts");
|
|
27203
27247
|
/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./types */ "./src/types/index.ts");
|
|
27204
|
-
/* harmony import */ var
|
|
27205
|
-
/* harmony import */ var
|
|
27206
|
-
/* harmony import */ var
|
|
27207
|
-
/* harmony import */ var
|
|
27208
|
-
/* harmony import */ var
|
|
27209
|
-
/* harmony import */ var
|
|
27210
|
-
/* harmony import */ var
|
|
27211
|
-
/* harmony import */ var
|
|
27212
|
-
/* harmony import */ var
|
|
27213
|
-
/* harmony import */ var
|
|
27214
|
-
/* harmony import */ var
|
|
27248
|
+
/* harmony import */ var _services_socket_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./services/socket.service */ "./src/services/socket.service.ts");
|
|
27249
|
+
/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./config */ "./src/config/index.ts");
|
|
27250
|
+
/* harmony import */ var _patch__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./patch */ "./src/patch/index.ts");
|
|
27251
|
+
/* harmony import */ var _eventBus__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./eventBus */ "./src/eventBus.ts");
|
|
27252
|
+
/* harmony import */ var _sessionWidget__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./sessionWidget */ "./src/sessionWidget/index.ts");
|
|
27253
|
+
/* harmony import */ var _services_messaging_service__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./services/messaging.service */ "./src/services/messaging.service.ts");
|
|
27254
|
+
/* harmony import */ var _services_api_service__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./services/api.service */ "./src/services/api.service.ts");
|
|
27255
|
+
/* harmony import */ var _index_scss__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./index.scss */ "./src/index.scss");
|
|
27256
|
+
/* 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");
|
|
27257
|
+
/* harmony import */ var _sessionWidget_buttonStateConfigs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./sessionWidget/buttonStateConfigs */ "./src/sessionWidget/buttonStateConfigs.ts");
|
|
27258
|
+
/* harmony import */ var lib0_observable__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! lib0/observable */ "../../node_modules/lib0/observable.js");
|
|
27259
|
+
/* harmony import */ var _navigation__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./navigation */ "./src/navigation/index.ts");
|
|
27260
|
+
|
|
27215
27261
|
|
|
27216
27262
|
|
|
27217
27263
|
|
|
@@ -27227,7 +27273,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
27227
27273
|
|
|
27228
27274
|
|
|
27229
27275
|
|
|
27230
|
-
class SessionRecorder extends
|
|
27276
|
+
class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_15__.Observable {
|
|
27231
27277
|
get navigation() {
|
|
27232
27278
|
return this._navigationRecorder.api;
|
|
27233
27279
|
}
|
|
@@ -27239,20 +27285,20 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
27239
27285
|
}
|
|
27240
27286
|
set sessionId(sessionId) {
|
|
27241
27287
|
this._sessionId = sessionId;
|
|
27242
|
-
(0,_utils__WEBPACK_IMPORTED_MODULE_2__.setStoredItem)(
|
|
27288
|
+
(0,_utils__WEBPACK_IMPORTED_MODULE_2__.setStoredItem)(_config__WEBPACK_IMPORTED_MODULE_5__.SESSION_ID_PROP_NAME, sessionId);
|
|
27243
27289
|
}
|
|
27244
27290
|
get sessionType() {
|
|
27245
27291
|
return this._sessionType;
|
|
27246
27292
|
}
|
|
27247
27293
|
set sessionType(sessionType) {
|
|
27248
27294
|
this._sessionType = sessionType;
|
|
27249
|
-
const continuousRecording = sessionType ===
|
|
27295
|
+
const continuousRecording = sessionType === _multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.CONTINUOUS;
|
|
27250
27296
|
this._sessionWidget.updateContinuousRecordingState(continuousRecording);
|
|
27251
|
-
|
|
27252
|
-
(0,_utils__WEBPACK_IMPORTED_MODULE_2__.setStoredItem)(
|
|
27297
|
+
_services_messaging_service__WEBPACK_IMPORTED_MODULE_9__["default"].sendMessage('continuous-debugging', continuousRecording);
|
|
27298
|
+
(0,_utils__WEBPACK_IMPORTED_MODULE_2__.setStoredItem)(_config__WEBPACK_IMPORTED_MODULE_5__.SESSION_TYPE_PROP_NAME, sessionType);
|
|
27253
27299
|
}
|
|
27254
27300
|
get continuousRecording() {
|
|
27255
|
-
return this.sessionType ===
|
|
27301
|
+
return this.sessionType === _multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.CONTINUOUS;
|
|
27256
27302
|
}
|
|
27257
27303
|
get sessionState() {
|
|
27258
27304
|
return this._sessionState || _types__WEBPACK_IMPORTED_MODULE_3__.SessionState.stopped;
|
|
@@ -27260,8 +27306,8 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
27260
27306
|
set sessionState(state) {
|
|
27261
27307
|
this._sessionState = state;
|
|
27262
27308
|
this._sessionWidget.updateState(this._sessionState, this.continuousRecording);
|
|
27263
|
-
|
|
27264
|
-
(0,_utils__WEBPACK_IMPORTED_MODULE_2__.setStoredItem)(
|
|
27309
|
+
_services_messaging_service__WEBPACK_IMPORTED_MODULE_9__["default"].sendMessage('state-change', this._sessionState);
|
|
27310
|
+
(0,_utils__WEBPACK_IMPORTED_MODULE_2__.setStoredItem)(_config__WEBPACK_IMPORTED_MODULE_5__.SESSION_STATE_PROP_NAME, state);
|
|
27265
27311
|
// Emit observable event to support React wrapper
|
|
27266
27312
|
this.emit('state-change', [this._sessionState || _types__WEBPACK_IMPORTED_MODULE_3__.SessionState.stopped, this.sessionType]);
|
|
27267
27313
|
}
|
|
@@ -27270,7 +27316,7 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
27270
27316
|
}
|
|
27271
27317
|
set session(session) {
|
|
27272
27318
|
this._session = session;
|
|
27273
|
-
(0,_utils__WEBPACK_IMPORTED_MODULE_2__.setStoredItem)(
|
|
27319
|
+
(0,_utils__WEBPACK_IMPORTED_MODULE_2__.setStoredItem)(_config__WEBPACK_IMPORTED_MODULE_5__.SESSION_PROP_NAME, this._session);
|
|
27274
27320
|
}
|
|
27275
27321
|
get sessionAttributes() {
|
|
27276
27322
|
return this._sessionAttributes || {};
|
|
@@ -27302,16 +27348,17 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
27302
27348
|
constructor() {
|
|
27303
27349
|
var _a;
|
|
27304
27350
|
super();
|
|
27305
|
-
this._apiService = new
|
|
27351
|
+
this._apiService = new _services_api_service__WEBPACK_IMPORTED_MODULE_10__.ApiService();
|
|
27306
27352
|
this._tracer = new _otel__WEBPACK_IMPORTED_MODULE_0__.TracerBrowserSDK();
|
|
27307
27353
|
this._recorder = new _rrweb__WEBPACK_IMPORTED_MODULE_1__.RecorderBrowserSDK();
|
|
27308
|
-
this._sessionWidget = new
|
|
27309
|
-
this._navigationRecorder = new
|
|
27354
|
+
this._sessionWidget = new _sessionWidget__WEBPACK_IMPORTED_MODULE_8__.SessionWidget();
|
|
27355
|
+
this._navigationRecorder = new _navigation__WEBPACK_IMPORTED_MODULE_14__.NavigationRecorder();
|
|
27356
|
+
this._userAttributes = undefined;
|
|
27310
27357
|
this._startRequestController = null;
|
|
27311
27358
|
this._isInitialized = false;
|
|
27312
27359
|
// Session ID and state are stored in localStorage
|
|
27313
27360
|
this._sessionId = null;
|
|
27314
|
-
this._sessionType =
|
|
27361
|
+
this._sessionType = _multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.MANUAL;
|
|
27315
27362
|
this._sessionState = null;
|
|
27316
27363
|
this._session = null;
|
|
27317
27364
|
this._sessionAttributes = null;
|
|
@@ -27321,10 +27368,10 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
27321
27368
|
this._error = '';
|
|
27322
27369
|
// Safety: avoid accessing storage in SSR/non-browser environments
|
|
27323
27370
|
const isBrowser = typeof window !== 'undefined';
|
|
27324
|
-
const sessionLocal = isBrowser ? (0,_utils__WEBPACK_IMPORTED_MODULE_2__.getStoredItem)(
|
|
27325
|
-
const sessionIdLocal = isBrowser ? (0,_utils__WEBPACK_IMPORTED_MODULE_2__.getStoredItem)(
|
|
27326
|
-
const sessionStateLocal = isBrowser ? (0,_utils__WEBPACK_IMPORTED_MODULE_2__.getStoredItem)(
|
|
27327
|
-
const sessionTypeLocal = isBrowser ? (0,_utils__WEBPACK_IMPORTED_MODULE_2__.getStoredItem)(
|
|
27371
|
+
const sessionLocal = isBrowser ? (0,_utils__WEBPACK_IMPORTED_MODULE_2__.getStoredItem)(_config__WEBPACK_IMPORTED_MODULE_5__.SESSION_PROP_NAME, true) : null;
|
|
27372
|
+
const sessionIdLocal = isBrowser ? (0,_utils__WEBPACK_IMPORTED_MODULE_2__.getStoredItem)(_config__WEBPACK_IMPORTED_MODULE_5__.SESSION_ID_PROP_NAME) : null;
|
|
27373
|
+
const sessionStateLocal = isBrowser ? (0,_utils__WEBPACK_IMPORTED_MODULE_2__.getStoredItem)(_config__WEBPACK_IMPORTED_MODULE_5__.SESSION_STATE_PROP_NAME) : null;
|
|
27374
|
+
const sessionTypeLocal = isBrowser ? (0,_utils__WEBPACK_IMPORTED_MODULE_2__.getStoredItem)(_config__WEBPACK_IMPORTED_MODULE_5__.SESSION_TYPE_PROP_NAME) : null;
|
|
27328
27375
|
if ((0,_utils__WEBPACK_IMPORTED_MODULE_2__.isSessionActive)(sessionLocal, sessionTypeLocal)) {
|
|
27329
27376
|
this.session = sessionLocal;
|
|
27330
27377
|
this.sessionId = sessionIdLocal;
|
|
@@ -27335,10 +27382,10 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
27335
27382
|
this.session = null;
|
|
27336
27383
|
this.sessionId = null;
|
|
27337
27384
|
this.sessionState = null;
|
|
27338
|
-
this.sessionType =
|
|
27385
|
+
this.sessionType = _multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.MANUAL;
|
|
27339
27386
|
}
|
|
27340
27387
|
this._configs = {
|
|
27341
|
-
...
|
|
27388
|
+
..._config__WEBPACK_IMPORTED_MODULE_5__.BASE_CONFIG,
|
|
27342
27389
|
apiKey: ((_a = this.session) === null || _a === void 0 ? void 0 : _a.tempApiKey) || '',
|
|
27343
27390
|
};
|
|
27344
27391
|
}
|
|
@@ -27350,11 +27397,11 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
27350
27397
|
if (typeof window === 'undefined') {
|
|
27351
27398
|
return;
|
|
27352
27399
|
}
|
|
27353
|
-
this._configs = (0,
|
|
27400
|
+
this._configs = (0,_config__WEBPACK_IMPORTED_MODULE_5__.getSessionRecorderConfig)({ ...this._configs, ...configs });
|
|
27354
27401
|
this._isInitialized = true;
|
|
27355
27402
|
this._checkOperation('init');
|
|
27356
|
-
(0,
|
|
27357
|
-
(0,
|
|
27403
|
+
(0,_patch__WEBPACK_IMPORTED_MODULE_6__.setMaxCapturingHttpPayloadSize)(this._configs.maxCapturingHttpPayloadSize || _config__WEBPACK_IMPORTED_MODULE_5__.DEFAULT_MAX_HTTP_CAPTURING_PAYLOAD_SIZE);
|
|
27404
|
+
(0,_patch__WEBPACK_IMPORTED_MODULE_6__.setShouldRecordHttpData)(this._configs.captureBody, this._configs.captureHeaders);
|
|
27358
27405
|
this._tracer.init(this._configs);
|
|
27359
27406
|
this._apiService.init(this._configs);
|
|
27360
27407
|
this._sessionWidget.init(this._configs);
|
|
@@ -27364,16 +27411,26 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
27364
27411
|
environment: this._configs.environment,
|
|
27365
27412
|
version: this._configs.version,
|
|
27366
27413
|
});
|
|
27414
|
+
(0,_services_socket_service__WEBPACK_IMPORTED_MODULE_4__.createSocketService)({
|
|
27415
|
+
apiKey: this._configs.apiKey,
|
|
27416
|
+
socketUrl: this._configs.apiBaseUrl || '',
|
|
27417
|
+
usePostMessageFallback: Boolean(this._configs.usePostMessageFallback),
|
|
27418
|
+
keepAlive: Boolean(this._configs.useWebsocket),
|
|
27419
|
+
});
|
|
27367
27420
|
if (this._configs.apiKey) {
|
|
27368
27421
|
this._recorder.init(this._configs);
|
|
27369
27422
|
}
|
|
27370
|
-
if (this.sessionId
|
|
27423
|
+
if (this.sessionId
|
|
27424
|
+
&& (this.sessionState === _types__WEBPACK_IMPORTED_MODULE_3__.SessionState.started
|
|
27425
|
+
|| this.sessionState === _types__WEBPACK_IMPORTED_MODULE_3__.SessionState.paused)) {
|
|
27371
27426
|
this._start();
|
|
27372
27427
|
}
|
|
27373
27428
|
this._registerWidgetEvents();
|
|
27374
27429
|
this._registerSessionLimitReach();
|
|
27375
27430
|
this._registerSessionAutoCreation();
|
|
27376
|
-
|
|
27431
|
+
this._registerRemoteSessionRecordingStart();
|
|
27432
|
+
this._registerRemoteSessionRecordingStop();
|
|
27433
|
+
_services_messaging_service__WEBPACK_IMPORTED_MODULE_9__["default"].sendMessage('state-change', this.sessionState);
|
|
27377
27434
|
// Emit init observable event
|
|
27378
27435
|
this.emit('init', [this]);
|
|
27379
27436
|
}
|
|
@@ -27386,7 +27443,7 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
27386
27443
|
if (!this.continuousRecording || !this._configs.showContinuousRecording) {
|
|
27387
27444
|
return;
|
|
27388
27445
|
}
|
|
27389
|
-
this._sessionWidget.updateSaveContinuousDebugSessionState(
|
|
27446
|
+
this._sessionWidget.updateSaveContinuousDebugSessionState(_sessionWidget_buttonStateConfigs__WEBPACK_IMPORTED_MODULE_13__.ContinuousRecordingSaveButtonState.SAVING);
|
|
27390
27447
|
const res = await this._apiService.saveContinuousDebugSession(this.sessionId, {
|
|
27391
27448
|
sessionAttributes: this.sessionAttributes,
|
|
27392
27449
|
resourceAttributes: (0,_utils__WEBPACK_IMPORTED_MODULE_2__.getNavigatorInfo)(),
|
|
@@ -27395,7 +27452,7 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
27395
27452
|
? `${this.sessionAttributes.userName}'s session on ${(0,_utils__WEBPACK_IMPORTED_MODULE_2__.getFormattedDate)(Date.now(), { month: 'short', day: 'numeric' })}`
|
|
27396
27453
|
: `Session on ${(0,_utils__WEBPACK_IMPORTED_MODULE_2__.getFormattedDate)(Date.now())}`,
|
|
27397
27454
|
});
|
|
27398
|
-
this._sessionWidget.updateSaveContinuousDebugSessionState(
|
|
27455
|
+
this._sessionWidget.updateSaveContinuousDebugSessionState(_sessionWidget_buttonStateConfigs__WEBPACK_IMPORTED_MODULE_13__.ContinuousRecordingSaveButtonState.SAVED);
|
|
27399
27456
|
const sessionUrl = res === null || res === void 0 ? void 0 : res.url;
|
|
27400
27457
|
this._sessionWidget.showToast({
|
|
27401
27458
|
type: 'success',
|
|
@@ -27408,11 +27465,11 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
27408
27465
|
}
|
|
27409
27466
|
catch (error) {
|
|
27410
27467
|
this.error = error.message;
|
|
27411
|
-
this._sessionWidget.updateSaveContinuousDebugSessionState(
|
|
27468
|
+
this._sessionWidget.updateSaveContinuousDebugSessionState(_sessionWidget_buttonStateConfigs__WEBPACK_IMPORTED_MODULE_13__.ContinuousRecordingSaveButtonState.ERROR);
|
|
27412
27469
|
}
|
|
27413
27470
|
finally {
|
|
27414
27471
|
setTimeout(() => {
|
|
27415
|
-
this._sessionWidget.updateSaveContinuousDebugSessionState(
|
|
27472
|
+
this._sessionWidget.updateSaveContinuousDebugSessionState(_sessionWidget_buttonStateConfigs__WEBPACK_IMPORTED_MODULE_13__.ContinuousRecordingSaveButtonState.IDLE);
|
|
27416
27473
|
}, 3000);
|
|
27417
27474
|
}
|
|
27418
27475
|
}
|
|
@@ -27421,11 +27478,11 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
27421
27478
|
* @param type - the type of session to start
|
|
27422
27479
|
* @param session - the session to start
|
|
27423
27480
|
*/
|
|
27424
|
-
start(type =
|
|
27481
|
+
start(type = _multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.MANUAL, session) {
|
|
27425
27482
|
this._checkOperation('start');
|
|
27426
27483
|
// If continuous recording is disabled, force plain mode
|
|
27427
|
-
if (type ===
|
|
27428
|
-
type =
|
|
27484
|
+
if (type === _multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.CONTINUOUS && !this._configs.showContinuousRecording) {
|
|
27485
|
+
type = _multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.MANUAL;
|
|
27429
27486
|
}
|
|
27430
27487
|
this.sessionType = type;
|
|
27431
27488
|
this._startRequestController = new AbortController();
|
|
@@ -27446,7 +27503,7 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
27446
27503
|
this._stop();
|
|
27447
27504
|
if (this.continuousRecording) {
|
|
27448
27505
|
await this._apiService.stopContinuousDebugSession(this.sessionId);
|
|
27449
|
-
this.sessionType =
|
|
27506
|
+
this.sessionType = _multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.MANUAL;
|
|
27450
27507
|
}
|
|
27451
27508
|
else {
|
|
27452
27509
|
const request = {
|
|
@@ -27454,7 +27511,7 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
27454
27511
|
stoppedAt: this._recorder.stoppedAt,
|
|
27455
27512
|
};
|
|
27456
27513
|
const response = await this._apiService.stopSession(this.sessionId, request);
|
|
27457
|
-
|
|
27514
|
+
_eventBus__WEBPACK_IMPORTED_MODULE_7__.recorderEventBus.emit(_config__WEBPACK_IMPORTED_MODULE_5__.SESSION_RESPONSE, response);
|
|
27458
27515
|
}
|
|
27459
27516
|
this._clearSession();
|
|
27460
27517
|
}
|
|
@@ -27495,7 +27552,7 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
27495
27552
|
this._stop();
|
|
27496
27553
|
if (this.continuousRecording) {
|
|
27497
27554
|
await this._apiService.stopContinuousDebugSession(this.sessionId);
|
|
27498
|
-
this.sessionType =
|
|
27555
|
+
this.sessionType = _multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.MANUAL;
|
|
27499
27556
|
}
|
|
27500
27557
|
else {
|
|
27501
27558
|
await this._apiService.cancelSession(this.sessionId);
|
|
@@ -27519,7 +27576,7 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
27519
27576
|
* The function receives the click event as its parameter and
|
|
27520
27577
|
* should return `false` to prevent the default button action,
|
|
27521
27578
|
* or `true` (or nothing) to allow it.
|
|
27522
|
-
|
|
27579
|
+
*/
|
|
27523
27580
|
set recordingButtonClickHandler(handler) {
|
|
27524
27581
|
this._sessionWidget.buttonClickExternalHandler = handler;
|
|
27525
27582
|
}
|
|
@@ -27555,11 +27612,12 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
27555
27612
|
...(0,_utils__WEBPACK_IMPORTED_MODULE_2__.getNavigatorInfo)(),
|
|
27556
27613
|
...((sessionPayload === null || sessionPayload === void 0 ? void 0 : sessionPayload.resourceAttributes) || {}),
|
|
27557
27614
|
},
|
|
27615
|
+
userAttributes: this._userAttributes
|
|
27558
27616
|
};
|
|
27559
27617
|
const { state } = await this._apiService.checkRemoteSession(payload);
|
|
27560
27618
|
if (state == 'START') {
|
|
27561
27619
|
if (this.sessionState !== _types__WEBPACK_IMPORTED_MODULE_3__.SessionState.started) {
|
|
27562
|
-
await this.start(
|
|
27620
|
+
await this.start(_multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.CONTINUOUS);
|
|
27563
27621
|
}
|
|
27564
27622
|
}
|
|
27565
27623
|
else if (state == 'STOP') {
|
|
@@ -27608,7 +27666,7 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
27608
27666
|
}
|
|
27609
27667
|
_handleStart() {
|
|
27610
27668
|
if (this.sessionState === _types__WEBPACK_IMPORTED_MODULE_3__.SessionState.stopped) {
|
|
27611
|
-
this.start(
|
|
27669
|
+
this.start(_multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.MANUAL);
|
|
27612
27670
|
}
|
|
27613
27671
|
}
|
|
27614
27672
|
_handleStop(comment) {
|
|
@@ -27638,14 +27696,14 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
27638
27696
|
}
|
|
27639
27697
|
_handleContinuousDebugging() {
|
|
27640
27698
|
if (this.sessionState === _types__WEBPACK_IMPORTED_MODULE_3__.SessionState.stopped) {
|
|
27641
|
-
this.start(
|
|
27699
|
+
this.start(_multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.CONTINUOUS);
|
|
27642
27700
|
}
|
|
27643
27701
|
}
|
|
27644
27702
|
/**
|
|
27645
27703
|
* Register session limit reaching listeners for controlling session end
|
|
27646
27704
|
*/
|
|
27647
27705
|
_registerSessionLimitReach() {
|
|
27648
|
-
|
|
27706
|
+
_eventBus__WEBPACK_IMPORTED_MODULE_7__.recorderEventBus.on(_config__WEBPACK_IMPORTED_MODULE_5__.SESSION_STOPPED_EVENT, () => {
|
|
27649
27707
|
this._stop();
|
|
27650
27708
|
this._clearSession();
|
|
27651
27709
|
this._sessionWidget.handleUIReseting();
|
|
@@ -27655,7 +27713,7 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
27655
27713
|
* Register session auto creation listeners during continuous recording
|
|
27656
27714
|
*/
|
|
27657
27715
|
_registerSessionAutoCreation() {
|
|
27658
|
-
|
|
27716
|
+
_eventBus__WEBPACK_IMPORTED_MODULE_7__.recorderEventBus.on(_config__WEBPACK_IMPORTED_MODULE_5__.SESSION_AUTO_CREATED, (payload) => {
|
|
27659
27717
|
var _a;
|
|
27660
27718
|
if (!(payload === null || payload === void 0 ? void 0 : payload.data))
|
|
27661
27719
|
return;
|
|
@@ -27669,6 +27727,18 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
27669
27727
|
}, 5000);
|
|
27670
27728
|
});
|
|
27671
27729
|
}
|
|
27730
|
+
_registerRemoteSessionRecordingStart() {
|
|
27731
|
+
_eventBus__WEBPACK_IMPORTED_MODULE_7__.recorderEventBus.on(_config__WEBPACK_IMPORTED_MODULE_5__.REMOTE_SESSION_RECORDING_START, (payload) => {
|
|
27732
|
+
console.log('REMOTE_SESSION_RECORDING_START', payload);
|
|
27733
|
+
this.start();
|
|
27734
|
+
});
|
|
27735
|
+
}
|
|
27736
|
+
_registerRemoteSessionRecordingStop() {
|
|
27737
|
+
_eventBus__WEBPACK_IMPORTED_MODULE_7__.recorderEventBus.on(_config__WEBPACK_IMPORTED_MODULE_5__.REMOTE_SESSION_RECORDING_STOP, (payload) => {
|
|
27738
|
+
console.log('REMOTE_SESSION_RECORDING_STOP', payload);
|
|
27739
|
+
this.stop();
|
|
27740
|
+
});
|
|
27741
|
+
}
|
|
27672
27742
|
/**
|
|
27673
27743
|
* Create a new session and start it
|
|
27674
27744
|
*/
|
|
@@ -27679,6 +27749,7 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
27679
27749
|
const payload = {
|
|
27680
27750
|
sessionAttributes: this.sessionAttributes,
|
|
27681
27751
|
resourceAttributes: (0,_utils__WEBPACK_IMPORTED_MODULE_2__.getNavigatorInfo)(),
|
|
27752
|
+
userAttributes: this._userAttributes,
|
|
27682
27753
|
name: this.sessionAttributes.userName
|
|
27683
27754
|
? `${this.sessionAttributes.userName}'s session on ${(0,_utils__WEBPACK_IMPORTED_MODULE_2__.getFormattedDate)(Date.now(), { month: 'short', day: 'numeric' })}`
|
|
27684
27755
|
: `Session on ${(0,_utils__WEBPACK_IMPORTED_MODULE_2__.getFormattedDate)(Date.now())}`,
|
|
@@ -27690,8 +27761,8 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
27690
27761
|
: await this._apiService.startSession(request, signal);
|
|
27691
27762
|
if (session) {
|
|
27692
27763
|
session.sessionType = this.continuousRecording
|
|
27693
|
-
?
|
|
27694
|
-
:
|
|
27764
|
+
? _multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.CONTINUOUS
|
|
27765
|
+
: _multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.MANUAL;
|
|
27695
27766
|
this._setupSessionAndStart(session, false);
|
|
27696
27767
|
}
|
|
27697
27768
|
}
|
|
@@ -27699,7 +27770,7 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
27699
27770
|
this.error = error.message;
|
|
27700
27771
|
this.sessionState = _types__WEBPACK_IMPORTED_MODULE_3__.SessionState.stopped;
|
|
27701
27772
|
if (this.continuousRecording) {
|
|
27702
|
-
this.sessionType =
|
|
27773
|
+
this.sessionType = _multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.MANUAL;
|
|
27703
27774
|
}
|
|
27704
27775
|
}
|
|
27705
27776
|
}
|
|
@@ -27714,7 +27785,7 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
27714
27785
|
this._recorder.start(this.sessionId, this.sessionType);
|
|
27715
27786
|
this._navigationRecorder.start({ sessionId: this.sessionId, sessionType: this.sessionType, });
|
|
27716
27787
|
if (this.session) {
|
|
27717
|
-
|
|
27788
|
+
_eventBus__WEBPACK_IMPORTED_MODULE_7__.recorderEventBus.emit(_config__WEBPACK_IMPORTED_MODULE_5__.SESSION_STARTED_EVENT, this.session);
|
|
27718
27789
|
this._recorder.subscribeToSession(this.session);
|
|
27719
27790
|
this._sessionWidget.seconds = (0,_utils__WEBPACK_IMPORTED_MODULE_2__.getTimeDifferenceInSeconds)((_a = this.session) === null || _a === void 0 ? void 0 : _a.startedAt);
|
|
27720
27791
|
}
|
|
@@ -27840,6 +27911,10 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
27840
27911
|
return { errorInfo: String(errorInfo) };
|
|
27841
27912
|
}
|
|
27842
27913
|
}
|
|
27914
|
+
setUser(userAttributes) {
|
|
27915
|
+
this._userAttributes = userAttributes;
|
|
27916
|
+
_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);
|
|
27917
|
+
}
|
|
27843
27918
|
}
|
|
27844
27919
|
|
|
27845
27920
|
|
|
@@ -29190,6 +29265,27 @@ const getButtonTemplate = (button) => {
|
|
|
29190
29265
|
};
|
|
29191
29266
|
|
|
29192
29267
|
|
|
29268
|
+
/***/ }),
|
|
29269
|
+
|
|
29270
|
+
/***/ "./src/types/client-type.enum.ts":
|
|
29271
|
+
/*!***************************************!*\
|
|
29272
|
+
!*** ./src/types/client-type.enum.ts ***!
|
|
29273
|
+
\***************************************/
|
|
29274
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
29275
|
+
|
|
29276
|
+
"use strict";
|
|
29277
|
+
__webpack_require__.r(__webpack_exports__);
|
|
29278
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
29279
|
+
/* harmony export */ UserType: () => (/* binding */ UserType)
|
|
29280
|
+
/* harmony export */ });
|
|
29281
|
+
var UserType;
|
|
29282
|
+
(function (UserType) {
|
|
29283
|
+
UserType["USER"] = "USER";
|
|
29284
|
+
UserType["VISITOR"] = "VISITOR";
|
|
29285
|
+
UserType["API_CLIENT"] = "API_CLIENT";
|
|
29286
|
+
})(UserType || (UserType = {}));
|
|
29287
|
+
|
|
29288
|
+
|
|
29193
29289
|
/***/ }),
|
|
29194
29290
|
|
|
29195
29291
|
/***/ "./src/types/index.ts":
|
|
@@ -29203,11 +29299,14 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
29203
29299
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
29204
29300
|
/* harmony export */ DebugSessionDataType: () => (/* reexport safe */ _session__WEBPACK_IMPORTED_MODULE_1__.DebugSessionDataType),
|
|
29205
29301
|
/* harmony export */ SessionState: () => (/* reexport safe */ _sessionRecorder__WEBPACK_IMPORTED_MODULE_2__.SessionState),
|
|
29302
|
+
/* harmony export */ UserType: () => (/* reexport safe */ _client_type_enum__WEBPACK_IMPORTED_MODULE_3__.UserType),
|
|
29206
29303
|
/* harmony export */ WidgetButtonPlacement: () => (/* reexport safe */ _sessionRecorder__WEBPACK_IMPORTED_MODULE_2__.WidgetButtonPlacement)
|
|
29207
29304
|
/* harmony export */ });
|
|
29208
29305
|
/* harmony import */ var _widget__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./widget */ "./src/types/widget.ts");
|
|
29209
29306
|
/* harmony import */ var _session__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./session */ "./src/types/session.ts");
|
|
29210
29307
|
/* harmony import */ var _sessionRecorder__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./sessionRecorder */ "./src/types/sessionRecorder.ts");
|
|
29308
|
+
/* harmony import */ var _client_type_enum__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./client-type.enum */ "./src/types/client-type.enum.ts");
|
|
29309
|
+
|
|
29211
29310
|
|
|
29212
29311
|
|
|
29213
29312
|
|
|
@@ -49373,6 +49472,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
49373
49472
|
/* harmony export */ SessionRecorderTraceIdRatioBasedSampler: () => (/* reexport safe */ _multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_6__.SessionRecorderTraceIdRatioBasedSampler),
|
|
49374
49473
|
/* harmony export */ SessionState: () => (/* reexport safe */ _types__WEBPACK_IMPORTED_MODULE_4__.SessionState),
|
|
49375
49474
|
/* harmony export */ SessionType: () => (/* reexport safe */ _multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_6__.SessionType),
|
|
49475
|
+
/* harmony export */ UserType: () => (/* reexport safe */ _types__WEBPACK_IMPORTED_MODULE_4__.UserType),
|
|
49376
49476
|
/* harmony export */ WidgetButtonPlacement: () => (/* reexport safe */ _types__WEBPACK_IMPORTED_MODULE_4__.WidgetButtonPlacement),
|
|
49377
49477
|
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
|
|
49378
49478
|
/* harmony export */ recorderEventBus: () => (/* reexport safe */ _eventBus__WEBPACK_IMPORTED_MODULE_2__.recorderEventBus)
|