@multiplayer-app/session-recorder-browser 1.2.37 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/index.js +339 -232
- package/dist/browser/index.js.map +1 -1
- package/dist/config/constants.d.ts +3 -0
- package/dist/config/constants.d.ts.map +1 -1
- package/dist/config/constants.js +3 -0
- package/dist/config/constants.js.map +1 -1
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +1 -0
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/session-recorder.d.ts.map +1 -1
- package/dist/config/session-recorder.js +2 -0
- package/dist/config/session-recorder.js.map +1 -1
- package/dist/exporters/index.js +182 -114
- package/dist/exporters/index.js.map +1 -1
- package/dist/exporters.d.ts +1 -1
- package/dist/exporters.d.ts.map +1 -1
- package/dist/exporters.js +1 -1
- package/dist/exporters.js.map +1 -1
- package/dist/index.js +337 -231
- package/dist/index.js.map +1 -1
- package/dist/index.umd.js +337 -231
- package/dist/index.umd.js.map +1 -1
- package/dist/otel/index.d.ts.map +1 -1
- package/dist/otel/index.js +4 -0
- package/dist/otel/index.js.map +1 -1
- package/dist/patch/fetch.js +1 -0
- package/dist/patch/fetch.js.map +1 -1
- package/dist/rrweb/index.d.ts +2 -3
- package/dist/rrweb/index.d.ts.map +1 -1
- package/dist/rrweb/index.js +7 -11
- package/dist/rrweb/index.js.map +1 -1
- package/dist/services/api.service.d.ts +8 -2
- package/dist/services/api.service.d.ts.map +1 -1
- package/dist/services/api.service.js.map +1 -1
- package/dist/{rrweb/exporter.d.ts → services/socket.service.d.ts} +12 -3
- package/dist/services/socket.service.d.ts.map +1 -0
- package/dist/{rrweb/exporter.js → services/socket.service.js} +41 -5
- package/dist/services/socket.service.js.map +1 -0
- package/dist/sessionRecorder.d.ts +6 -2
- package/dist/sessionRecorder.d.ts.map +1 -1
- package/dist/sessionRecorder.js +33 -3
- package/dist/sessionRecorder.js.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/sessionRecorder.d.ts +5 -0
- package/dist/types/sessionRecorder.d.ts.map +1 -1
- package/dist/types/sessionRecorder.js.map +1 -1
- package/package.json +3 -3
- package/dist/rrweb/exporter.d.ts.map +0 -1
- package/dist/rrweb/exporter.js.map +0 -1
package/dist/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
|
|
|
@@ -26183,6 +26195,7 @@ class TracerBrowserSDK {
|
|
|
26183
26195
|
});
|
|
26184
26196
|
return;
|
|
26185
26197
|
}
|
|
26198
|
+
// eslint-disable-next-line
|
|
26186
26199
|
}
|
|
26187
26200
|
catch (_ignored) { }
|
|
26188
26201
|
// Fallback: create a short-lived span to hold the exception details
|
|
@@ -26198,6 +26211,7 @@ class TracerBrowserSDK {
|
|
|
26198
26211
|
...(errorInfo || {}),
|
|
26199
26212
|
});
|
|
26200
26213
|
span.end();
|
|
26214
|
+
// eslint-disable-next-line
|
|
26201
26215
|
}
|
|
26202
26216
|
catch (_ignored) { }
|
|
26203
26217
|
}
|
|
@@ -26219,12 +26233,14 @@ class TracerBrowserSDK {
|
|
|
26219
26233
|
return;
|
|
26220
26234
|
if (typeof window === 'undefined')
|
|
26221
26235
|
return;
|
|
26236
|
+
// eslint-disable-next-line
|
|
26222
26237
|
const errorHandler = (event) => {
|
|
26223
26238
|
const err = (event === null || event === void 0 ? void 0 : event.error) instanceof Error
|
|
26224
26239
|
? event.error
|
|
26225
26240
|
: new Error((event === null || event === void 0 ? void 0 : event.message) || 'Script error');
|
|
26226
26241
|
this.captureException(err);
|
|
26227
26242
|
};
|
|
26243
|
+
// eslint-disable-next-line
|
|
26228
26244
|
const rejectionHandler = (event) => {
|
|
26229
26245
|
const reason = (event && 'reason' in event) ? event.reason : undefined;
|
|
26230
26246
|
const err = reason instanceof Error
|
|
@@ -26403,6 +26419,7 @@ if (typeof window !== 'undefined' && typeof window.fetch !== 'undefined') {
|
|
|
26403
26419
|
: (typeof input === 'string' || input instanceof URL ? String(input) : '');
|
|
26404
26420
|
// Only attempt to read the body from init (safe); avoid constructing/cloning Requests
|
|
26405
26421
|
// If the caller passed a Request as input, we do not attempt to read its body here
|
|
26422
|
+
// eslint-disable-next-line
|
|
26406
26423
|
const candidateBody = init === null || init === void 0 ? void 0 : init.body;
|
|
26407
26424
|
if (!(0,_utils_type_utils__WEBPACK_IMPORTED_MODULE_0__.isNullish)(candidateBody)) {
|
|
26408
26425
|
const requestBody = _tryReadFetchBody({
|
|
@@ -26597,170 +26614,6 @@ if (typeof XMLHttpRequest !== 'undefined') {
|
|
|
26597
26614
|
}
|
|
26598
26615
|
|
|
26599
26616
|
|
|
26600
|
-
/***/ }),
|
|
26601
|
-
|
|
26602
|
-
/***/ "./src/rrweb/exporter.ts":
|
|
26603
|
-
/*!*******************************!*\
|
|
26604
|
-
!*** ./src/rrweb/exporter.ts ***!
|
|
26605
|
-
\*******************************/
|
|
26606
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
26607
|
-
|
|
26608
|
-
"use strict";
|
|
26609
|
-
__webpack_require__.r(__webpack_exports__);
|
|
26610
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
26611
|
-
/* harmony export */ RrwebEventExporter: () => (/* binding */ RrwebEventExporter)
|
|
26612
|
-
/* harmony export */ });
|
|
26613
|
-
/* harmony import */ var socket_io_client__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! socket.io-client */ "../../node_modules/socket.io-client/build/esm/index.js");
|
|
26614
|
-
/* harmony import */ var _eventBus__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../eventBus */ "./src/eventBus.ts");
|
|
26615
|
-
/* harmony import */ var _services_messaging_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../services/messaging.service */ "./src/services/messaging.service.ts");
|
|
26616
|
-
/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../config */ "./src/config/index.ts");
|
|
26617
|
-
|
|
26618
|
-
|
|
26619
|
-
|
|
26620
|
-
|
|
26621
|
-
const MAX_RECONNECTION_ATTEMPTS = 2;
|
|
26622
|
-
class RrwebEventExporter {
|
|
26623
|
-
constructor(options) {
|
|
26624
|
-
this.options = options;
|
|
26625
|
-
this.socket = null;
|
|
26626
|
-
this.queue = [];
|
|
26627
|
-
this.isConnecting = false;
|
|
26628
|
-
this.isConnected = false;
|
|
26629
|
-
this.usePostMessage = false;
|
|
26630
|
-
this.attempts = 0;
|
|
26631
|
-
this.sessionId = null;
|
|
26632
|
-
}
|
|
26633
|
-
init() {
|
|
26634
|
-
if (this.isConnecting || this.isConnected)
|
|
26635
|
-
return;
|
|
26636
|
-
this.attempts++;
|
|
26637
|
-
this.isConnecting = true;
|
|
26638
|
-
this.usePostMessage = false;
|
|
26639
|
-
this.socket = (0,socket_io_client__WEBPACK_IMPORTED_MODULE_0__["default"])(this.options.socketUrl, {
|
|
26640
|
-
path: '/v0/radar/ws',
|
|
26641
|
-
auth: {
|
|
26642
|
-
'x-api-key': this.options.apiKey,
|
|
26643
|
-
},
|
|
26644
|
-
reconnectionAttempts: 2,
|
|
26645
|
-
transports: ['websocket'],
|
|
26646
|
-
});
|
|
26647
|
-
// this.socket.on('connect', () => {
|
|
26648
|
-
// this.isConnecting = false
|
|
26649
|
-
// this.isConnected = true
|
|
26650
|
-
// this.usePostMessage = false
|
|
26651
|
-
// this.flushQueue()
|
|
26652
|
-
// })
|
|
26653
|
-
this.socket.on('ready', () => {
|
|
26654
|
-
this.isConnecting = false;
|
|
26655
|
-
this.isConnected = true;
|
|
26656
|
-
this.usePostMessage = false;
|
|
26657
|
-
this.flushQueue();
|
|
26658
|
-
});
|
|
26659
|
-
this.socket.on('disconnect', (err) => {
|
|
26660
|
-
this.isConnecting = false;
|
|
26661
|
-
this.isConnected = false;
|
|
26662
|
-
});
|
|
26663
|
-
this.socket.on('connect_error', (err) => {
|
|
26664
|
-
this.isConnecting = false;
|
|
26665
|
-
this.isConnected = false;
|
|
26666
|
-
this.checkReconnectionAttempts();
|
|
26667
|
-
});
|
|
26668
|
-
this.socket.on(_config__WEBPACK_IMPORTED_MODULE_3__.SESSION_STOPPED_EVENT, (data) => {
|
|
26669
|
-
_eventBus__WEBPACK_IMPORTED_MODULE_1__.recorderEventBus.emit(_config__WEBPACK_IMPORTED_MODULE_3__.SESSION_STOPPED_EVENT, data);
|
|
26670
|
-
this.unsubscribeFromSession();
|
|
26671
|
-
});
|
|
26672
|
-
this.socket.on(_config__WEBPACK_IMPORTED_MODULE_3__.SESSION_AUTO_CREATED, (data) => {
|
|
26673
|
-
_eventBus__WEBPACK_IMPORTED_MODULE_1__.recorderEventBus.emit(_config__WEBPACK_IMPORTED_MODULE_3__.SESSION_AUTO_CREATED, data);
|
|
26674
|
-
});
|
|
26675
|
-
}
|
|
26676
|
-
checkReconnectionAttempts() {
|
|
26677
|
-
if (this.attempts >= MAX_RECONNECTION_ATTEMPTS) {
|
|
26678
|
-
this.usePostMessage = !!this.options.usePostMessageFallback;
|
|
26679
|
-
this.flushQueue();
|
|
26680
|
-
}
|
|
26681
|
-
}
|
|
26682
|
-
sendViaPostMessage(event) {
|
|
26683
|
-
_services_messaging_service__WEBPACK_IMPORTED_MODULE_2__["default"].sendMessage('rrweb-event', event);
|
|
26684
|
-
}
|
|
26685
|
-
flushQueue() {
|
|
26686
|
-
var _a, _b;
|
|
26687
|
-
while (this.queue.length > 0 && (this.usePostMessage || ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.connected))) {
|
|
26688
|
-
const event = this.queue.shift();
|
|
26689
|
-
if (!event)
|
|
26690
|
-
continue;
|
|
26691
|
-
if (this.usePostMessage) {
|
|
26692
|
-
this.sendViaPostMessage(event.data);
|
|
26693
|
-
}
|
|
26694
|
-
else if ((_b = this.socket) === null || _b === void 0 ? void 0 : _b.connected) {
|
|
26695
|
-
this.socket.emit(event.name, event.data);
|
|
26696
|
-
}
|
|
26697
|
-
}
|
|
26698
|
-
}
|
|
26699
|
-
unsubscribeFromSession() {
|
|
26700
|
-
var _a;
|
|
26701
|
-
const payload = {
|
|
26702
|
-
debugSessionId: this.sessionId,
|
|
26703
|
-
};
|
|
26704
|
-
if (this.usePostMessage) {
|
|
26705
|
-
_services_messaging_service__WEBPACK_IMPORTED_MODULE_2__["default"].sendMessage('socket-emit', { event: _config__WEBPACK_IMPORTED_MODULE_3__.SESSION_UNSUBSCRIBE_EVENT, data: payload });
|
|
26706
|
-
}
|
|
26707
|
-
else if ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.connected) {
|
|
26708
|
-
this.socket.emit(_config__WEBPACK_IMPORTED_MODULE_3__.SESSION_UNSUBSCRIBE_EVENT, payload);
|
|
26709
|
-
}
|
|
26710
|
-
}
|
|
26711
|
-
send(event) {
|
|
26712
|
-
var _a;
|
|
26713
|
-
if (this.usePostMessage) {
|
|
26714
|
-
this.sendViaPostMessage(event);
|
|
26715
|
-
}
|
|
26716
|
-
else if ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.connected) {
|
|
26717
|
-
this.socket.emit(_config__WEBPACK_IMPORTED_MODULE_3__.SESSION_ADD_EVENT, event);
|
|
26718
|
-
}
|
|
26719
|
-
else {
|
|
26720
|
-
this.queue.push({ data: event, name: _config__WEBPACK_IMPORTED_MODULE_3__.SESSION_ADD_EVENT });
|
|
26721
|
-
this.init();
|
|
26722
|
-
}
|
|
26723
|
-
}
|
|
26724
|
-
subscribeToSession(session) {
|
|
26725
|
-
var _a;
|
|
26726
|
-
this.sessionId = session.shortId || session._id;
|
|
26727
|
-
const payload = {
|
|
26728
|
-
projectId: session.project,
|
|
26729
|
-
workspaceId: session.workspace,
|
|
26730
|
-
debugSessionId: this.sessionId,
|
|
26731
|
-
sessionType: session.creationType,
|
|
26732
|
-
};
|
|
26733
|
-
if (this.usePostMessage) {
|
|
26734
|
-
this.sendViaPostMessage({ type: _config__WEBPACK_IMPORTED_MODULE_3__.SESSION_SUBSCRIBE_EVENT, ...payload });
|
|
26735
|
-
}
|
|
26736
|
-
else if ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.connected) {
|
|
26737
|
-
this.socket.emit(_config__WEBPACK_IMPORTED_MODULE_3__.SESSION_SUBSCRIBE_EVENT, payload);
|
|
26738
|
-
}
|
|
26739
|
-
else {
|
|
26740
|
-
this.queue.push({ data: payload, name: _config__WEBPACK_IMPORTED_MODULE_3__.SESSION_SUBSCRIBE_EVENT });
|
|
26741
|
-
this.init();
|
|
26742
|
-
}
|
|
26743
|
-
}
|
|
26744
|
-
close() {
|
|
26745
|
-
var _a;
|
|
26746
|
-
if (this.usePostMessage) {
|
|
26747
|
-
this.sendViaPostMessage({ type: 'close' });
|
|
26748
|
-
}
|
|
26749
|
-
if ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.connected) {
|
|
26750
|
-
setTimeout(() => {
|
|
26751
|
-
var _a;
|
|
26752
|
-
this.unsubscribeFromSession();
|
|
26753
|
-
this.attempts = 0;
|
|
26754
|
-
this.isConnected = false;
|
|
26755
|
-
this.isConnecting = false;
|
|
26756
|
-
(_a = this.socket) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
26757
|
-
this.socket = null;
|
|
26758
|
-
}, 500);
|
|
26759
|
-
}
|
|
26760
|
-
}
|
|
26761
|
-
}
|
|
26762
|
-
|
|
26763
|
-
|
|
26764
26617
|
/***/ }),
|
|
26765
26618
|
|
|
26766
26619
|
/***/ "./src/rrweb/index.ts":
|
|
@@ -26780,7 +26633,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
26780
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");
|
|
26781
26634
|
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils */ "./src/utils/index.ts");
|
|
26782
26635
|
/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../config */ "./src/config/index.ts");
|
|
26783
|
-
/* harmony import */ var
|
|
26636
|
+
/* harmony import */ var _services_socket_service__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../services/socket.service */ "./src/services/socket.service.ts");
|
|
26784
26637
|
|
|
26785
26638
|
|
|
26786
26639
|
|
|
@@ -26812,11 +26665,6 @@ class RecorderBrowserSDK {
|
|
|
26812
26665
|
*/
|
|
26813
26666
|
init(config) {
|
|
26814
26667
|
this.config = config;
|
|
26815
|
-
this.exporter = new _exporter__WEBPACK_IMPORTED_MODULE_5__.RrwebEventExporter({
|
|
26816
|
-
apiKey: config.apiKey,
|
|
26817
|
-
socketUrl: config.apiBaseUrl || '',
|
|
26818
|
-
usePostMessageFallback: Boolean(config.usePostMessageFallback),
|
|
26819
|
-
});
|
|
26820
26668
|
}
|
|
26821
26669
|
/**
|
|
26822
26670
|
* Starts recording events for a given session ID.
|
|
@@ -26862,7 +26710,7 @@ class RecorderBrowserSDK {
|
|
|
26862
26710
|
this.stopFn = (0,rrweb__WEBPACK_IMPORTED_MODULE_6__.record)({
|
|
26863
26711
|
...options,
|
|
26864
26712
|
emit: async (event) => {
|
|
26865
|
-
if (
|
|
26713
|
+
if (_services_socket_service__WEBPACK_IMPORTED_MODULE_5__.socketService) {
|
|
26866
26714
|
if (typeof maskingConfig.maskConsoleEvent === 'function' && (0,_utils__WEBPACK_IMPORTED_MODULE_3__.isConsoleEvent)(event)) {
|
|
26867
26715
|
const { data } = event;
|
|
26868
26716
|
const maskedPayload = maskingConfig.maskConsoleEvent(data.payload);
|
|
@@ -26870,7 +26718,7 @@ class RecorderBrowserSDK {
|
|
|
26870
26718
|
}
|
|
26871
26719
|
const packedEvent = (0,_rrweb_packer__WEBPACK_IMPORTED_MODULE_0__.pack)(event);
|
|
26872
26720
|
this.stoppedAt = new Date(event.timestamp).toISOString();
|
|
26873
|
-
|
|
26721
|
+
_services_socket_service__WEBPACK_IMPORTED_MODULE_5__.socketService.send({
|
|
26874
26722
|
event: packedEvent,
|
|
26875
26723
|
eventType: event.type,
|
|
26876
26724
|
timestamp: event.timestamp,
|
|
@@ -26911,12 +26759,13 @@ class RecorderBrowserSDK {
|
|
|
26911
26759
|
stop() {
|
|
26912
26760
|
var _a, _b;
|
|
26913
26761
|
(_a = this.stopFn) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
26914
|
-
(_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
|
+
}
|
|
26915
26765
|
this.clearRestartInterval();
|
|
26916
26766
|
}
|
|
26917
26767
|
subscribeToSession(session) {
|
|
26918
|
-
|
|
26919
|
-
(_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);
|
|
26920
26769
|
}
|
|
26921
26770
|
}
|
|
26922
26771
|
|
|
@@ -27177,6 +27026,208 @@ const messagingService = new MessagingService();
|
|
|
27177
27026
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (messagingService);
|
|
27178
27027
|
|
|
27179
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
|
+
|
|
27180
27231
|
/***/ }),
|
|
27181
27232
|
|
|
27182
27233
|
/***/ "./src/sessionRecorder.ts":
|
|
@@ -27194,17 +27245,19 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
27194
27245
|
/* harmony import */ var _rrweb__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./rrweb */ "./src/rrweb/index.ts");
|
|
27195
27246
|
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils */ "./src/utils/index.ts");
|
|
27196
27247
|
/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./types */ "./src/types/index.ts");
|
|
27197
|
-
/* harmony import */ var
|
|
27198
|
-
/* harmony import */ var
|
|
27199
|
-
/* harmony import */ var
|
|
27200
|
-
/* harmony import */ var
|
|
27201
|
-
/* harmony import */ var
|
|
27202
|
-
/* harmony import */ var
|
|
27203
|
-
/* harmony import */ var
|
|
27204
|
-
/* harmony import */ var
|
|
27205
|
-
/* harmony import */ var
|
|
27206
|
-
/* harmony import */ var
|
|
27207
|
-
/* 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
|
+
|
|
27208
27261
|
|
|
27209
27262
|
|
|
27210
27263
|
|
|
@@ -27220,7 +27273,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
27220
27273
|
|
|
27221
27274
|
|
|
27222
27275
|
|
|
27223
|
-
class SessionRecorder extends
|
|
27276
|
+
class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_15__.Observable {
|
|
27224
27277
|
get navigation() {
|
|
27225
27278
|
return this._navigationRecorder.api;
|
|
27226
27279
|
}
|
|
@@ -27232,20 +27285,20 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
27232
27285
|
}
|
|
27233
27286
|
set sessionId(sessionId) {
|
|
27234
27287
|
this._sessionId = sessionId;
|
|
27235
|
-
(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);
|
|
27236
27289
|
}
|
|
27237
27290
|
get sessionType() {
|
|
27238
27291
|
return this._sessionType;
|
|
27239
27292
|
}
|
|
27240
27293
|
set sessionType(sessionType) {
|
|
27241
27294
|
this._sessionType = sessionType;
|
|
27242
|
-
const continuousRecording = sessionType ===
|
|
27295
|
+
const continuousRecording = sessionType === _multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.CONTINUOUS;
|
|
27243
27296
|
this._sessionWidget.updateContinuousRecordingState(continuousRecording);
|
|
27244
|
-
|
|
27245
|
-
(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);
|
|
27246
27299
|
}
|
|
27247
27300
|
get continuousRecording() {
|
|
27248
|
-
return this.sessionType ===
|
|
27301
|
+
return this.sessionType === _multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.CONTINUOUS;
|
|
27249
27302
|
}
|
|
27250
27303
|
get sessionState() {
|
|
27251
27304
|
return this._sessionState || _types__WEBPACK_IMPORTED_MODULE_3__.SessionState.stopped;
|
|
@@ -27253,8 +27306,8 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
27253
27306
|
set sessionState(state) {
|
|
27254
27307
|
this._sessionState = state;
|
|
27255
27308
|
this._sessionWidget.updateState(this._sessionState, this.continuousRecording);
|
|
27256
|
-
|
|
27257
|
-
(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);
|
|
27258
27311
|
// Emit observable event to support React wrapper
|
|
27259
27312
|
this.emit('state-change', [this._sessionState || _types__WEBPACK_IMPORTED_MODULE_3__.SessionState.stopped, this.sessionType]);
|
|
27260
27313
|
}
|
|
@@ -27263,7 +27316,7 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
27263
27316
|
}
|
|
27264
27317
|
set session(session) {
|
|
27265
27318
|
this._session = session;
|
|
27266
|
-
(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);
|
|
27267
27320
|
}
|
|
27268
27321
|
get sessionAttributes() {
|
|
27269
27322
|
return this._sessionAttributes || {};
|
|
@@ -27295,16 +27348,17 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
27295
27348
|
constructor() {
|
|
27296
27349
|
var _a;
|
|
27297
27350
|
super();
|
|
27298
|
-
this._apiService = new
|
|
27351
|
+
this._apiService = new _services_api_service__WEBPACK_IMPORTED_MODULE_10__.ApiService();
|
|
27299
27352
|
this._tracer = new _otel__WEBPACK_IMPORTED_MODULE_0__.TracerBrowserSDK();
|
|
27300
27353
|
this._recorder = new _rrweb__WEBPACK_IMPORTED_MODULE_1__.RecorderBrowserSDK();
|
|
27301
|
-
this._sessionWidget = new
|
|
27302
|
-
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;
|
|
27303
27357
|
this._startRequestController = null;
|
|
27304
27358
|
this._isInitialized = false;
|
|
27305
27359
|
// Session ID and state are stored in localStorage
|
|
27306
27360
|
this._sessionId = null;
|
|
27307
|
-
this._sessionType =
|
|
27361
|
+
this._sessionType = _multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.MANUAL;
|
|
27308
27362
|
this._sessionState = null;
|
|
27309
27363
|
this._session = null;
|
|
27310
27364
|
this._sessionAttributes = null;
|
|
@@ -27314,10 +27368,10 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
27314
27368
|
this._error = '';
|
|
27315
27369
|
// Safety: avoid accessing storage in SSR/non-browser environments
|
|
27316
27370
|
const isBrowser = typeof window !== 'undefined';
|
|
27317
|
-
const sessionLocal = isBrowser ? (0,_utils__WEBPACK_IMPORTED_MODULE_2__.getStoredItem)(
|
|
27318
|
-
const sessionIdLocal = isBrowser ? (0,_utils__WEBPACK_IMPORTED_MODULE_2__.getStoredItem)(
|
|
27319
|
-
const sessionStateLocal = isBrowser ? (0,_utils__WEBPACK_IMPORTED_MODULE_2__.getStoredItem)(
|
|
27320
|
-
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;
|
|
27321
27375
|
if ((0,_utils__WEBPACK_IMPORTED_MODULE_2__.isSessionActive)(sessionLocal, sessionTypeLocal)) {
|
|
27322
27376
|
this.session = sessionLocal;
|
|
27323
27377
|
this.sessionId = sessionIdLocal;
|
|
@@ -27328,10 +27382,10 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
27328
27382
|
this.session = null;
|
|
27329
27383
|
this.sessionId = null;
|
|
27330
27384
|
this.sessionState = null;
|
|
27331
|
-
this.sessionType =
|
|
27385
|
+
this.sessionType = _multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.MANUAL;
|
|
27332
27386
|
}
|
|
27333
27387
|
this._configs = {
|
|
27334
|
-
...
|
|
27388
|
+
..._config__WEBPACK_IMPORTED_MODULE_5__.BASE_CONFIG,
|
|
27335
27389
|
apiKey: ((_a = this.session) === null || _a === void 0 ? void 0 : _a.tempApiKey) || '',
|
|
27336
27390
|
};
|
|
27337
27391
|
}
|
|
@@ -27343,11 +27397,11 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
27343
27397
|
if (typeof window === 'undefined') {
|
|
27344
27398
|
return;
|
|
27345
27399
|
}
|
|
27346
|
-
this._configs = (0,
|
|
27400
|
+
this._configs = (0,_config__WEBPACK_IMPORTED_MODULE_5__.getSessionRecorderConfig)({ ...this._configs, ...configs });
|
|
27347
27401
|
this._isInitialized = true;
|
|
27348
27402
|
this._checkOperation('init');
|
|
27349
|
-
(0,
|
|
27350
|
-
(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);
|
|
27351
27405
|
this._tracer.init(this._configs);
|
|
27352
27406
|
this._apiService.init(this._configs);
|
|
27353
27407
|
this._sessionWidget.init(this._configs);
|
|
@@ -27357,16 +27411,26 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
27357
27411
|
environment: this._configs.environment,
|
|
27358
27412
|
version: this._configs.version,
|
|
27359
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
|
+
});
|
|
27360
27420
|
if (this._configs.apiKey) {
|
|
27361
27421
|
this._recorder.init(this._configs);
|
|
27362
27422
|
}
|
|
27363
|
-
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)) {
|
|
27364
27426
|
this._start();
|
|
27365
27427
|
}
|
|
27366
27428
|
this._registerWidgetEvents();
|
|
27367
27429
|
this._registerSessionLimitReach();
|
|
27368
27430
|
this._registerSessionAutoCreation();
|
|
27369
|
-
|
|
27431
|
+
this._registerRemoteSessionRecordingStart();
|
|
27432
|
+
this._registerRemoteSessionRecordingStop();
|
|
27433
|
+
_services_messaging_service__WEBPACK_IMPORTED_MODULE_9__["default"].sendMessage('state-change', this.sessionState);
|
|
27370
27434
|
// Emit init observable event
|
|
27371
27435
|
this.emit('init', [this]);
|
|
27372
27436
|
}
|
|
@@ -27379,7 +27443,7 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
27379
27443
|
if (!this.continuousRecording || !this._configs.showContinuousRecording) {
|
|
27380
27444
|
return;
|
|
27381
27445
|
}
|
|
27382
|
-
this._sessionWidget.updateSaveContinuousDebugSessionState(
|
|
27446
|
+
this._sessionWidget.updateSaveContinuousDebugSessionState(_sessionWidget_buttonStateConfigs__WEBPACK_IMPORTED_MODULE_13__.ContinuousRecordingSaveButtonState.SAVING);
|
|
27383
27447
|
const res = await this._apiService.saveContinuousDebugSession(this.sessionId, {
|
|
27384
27448
|
sessionAttributes: this.sessionAttributes,
|
|
27385
27449
|
resourceAttributes: (0,_utils__WEBPACK_IMPORTED_MODULE_2__.getNavigatorInfo)(),
|
|
@@ -27388,7 +27452,7 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
27388
27452
|
? `${this.sessionAttributes.userName}'s session on ${(0,_utils__WEBPACK_IMPORTED_MODULE_2__.getFormattedDate)(Date.now(), { month: 'short', day: 'numeric' })}`
|
|
27389
27453
|
: `Session on ${(0,_utils__WEBPACK_IMPORTED_MODULE_2__.getFormattedDate)(Date.now())}`,
|
|
27390
27454
|
});
|
|
27391
|
-
this._sessionWidget.updateSaveContinuousDebugSessionState(
|
|
27455
|
+
this._sessionWidget.updateSaveContinuousDebugSessionState(_sessionWidget_buttonStateConfigs__WEBPACK_IMPORTED_MODULE_13__.ContinuousRecordingSaveButtonState.SAVED);
|
|
27392
27456
|
const sessionUrl = res === null || res === void 0 ? void 0 : res.url;
|
|
27393
27457
|
this._sessionWidget.showToast({
|
|
27394
27458
|
type: 'success',
|
|
@@ -27401,11 +27465,11 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
27401
27465
|
}
|
|
27402
27466
|
catch (error) {
|
|
27403
27467
|
this.error = error.message;
|
|
27404
|
-
this._sessionWidget.updateSaveContinuousDebugSessionState(
|
|
27468
|
+
this._sessionWidget.updateSaveContinuousDebugSessionState(_sessionWidget_buttonStateConfigs__WEBPACK_IMPORTED_MODULE_13__.ContinuousRecordingSaveButtonState.ERROR);
|
|
27405
27469
|
}
|
|
27406
27470
|
finally {
|
|
27407
27471
|
setTimeout(() => {
|
|
27408
|
-
this._sessionWidget.updateSaveContinuousDebugSessionState(
|
|
27472
|
+
this._sessionWidget.updateSaveContinuousDebugSessionState(_sessionWidget_buttonStateConfigs__WEBPACK_IMPORTED_MODULE_13__.ContinuousRecordingSaveButtonState.IDLE);
|
|
27409
27473
|
}, 3000);
|
|
27410
27474
|
}
|
|
27411
27475
|
}
|
|
@@ -27414,11 +27478,11 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
27414
27478
|
* @param type - the type of session to start
|
|
27415
27479
|
* @param session - the session to start
|
|
27416
27480
|
*/
|
|
27417
|
-
start(type =
|
|
27481
|
+
start(type = _multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.MANUAL, session) {
|
|
27418
27482
|
this._checkOperation('start');
|
|
27419
27483
|
// If continuous recording is disabled, force plain mode
|
|
27420
|
-
if (type ===
|
|
27421
|
-
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;
|
|
27422
27486
|
}
|
|
27423
27487
|
this.sessionType = type;
|
|
27424
27488
|
this._startRequestController = new AbortController();
|
|
@@ -27439,7 +27503,7 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
27439
27503
|
this._stop();
|
|
27440
27504
|
if (this.continuousRecording) {
|
|
27441
27505
|
await this._apiService.stopContinuousDebugSession(this.sessionId);
|
|
27442
|
-
this.sessionType =
|
|
27506
|
+
this.sessionType = _multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.MANUAL;
|
|
27443
27507
|
}
|
|
27444
27508
|
else {
|
|
27445
27509
|
const request = {
|
|
@@ -27447,7 +27511,7 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
27447
27511
|
stoppedAt: this._recorder.stoppedAt,
|
|
27448
27512
|
};
|
|
27449
27513
|
const response = await this._apiService.stopSession(this.sessionId, request);
|
|
27450
|
-
|
|
27514
|
+
_eventBus__WEBPACK_IMPORTED_MODULE_7__.recorderEventBus.emit(_config__WEBPACK_IMPORTED_MODULE_5__.SESSION_RESPONSE, response);
|
|
27451
27515
|
}
|
|
27452
27516
|
this._clearSession();
|
|
27453
27517
|
}
|
|
@@ -27488,7 +27552,7 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
27488
27552
|
this._stop();
|
|
27489
27553
|
if (this.continuousRecording) {
|
|
27490
27554
|
await this._apiService.stopContinuousDebugSession(this.sessionId);
|
|
27491
|
-
this.sessionType =
|
|
27555
|
+
this.sessionType = _multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.MANUAL;
|
|
27492
27556
|
}
|
|
27493
27557
|
else {
|
|
27494
27558
|
await this._apiService.cancelSession(this.sessionId);
|
|
@@ -27512,7 +27576,7 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
27512
27576
|
* The function receives the click event as its parameter and
|
|
27513
27577
|
* should return `false` to prevent the default button action,
|
|
27514
27578
|
* or `true` (or nothing) to allow it.
|
|
27515
|
-
|
|
27579
|
+
*/
|
|
27516
27580
|
set recordingButtonClickHandler(handler) {
|
|
27517
27581
|
this._sessionWidget.buttonClickExternalHandler = handler;
|
|
27518
27582
|
}
|
|
@@ -27548,11 +27612,12 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
27548
27612
|
...(0,_utils__WEBPACK_IMPORTED_MODULE_2__.getNavigatorInfo)(),
|
|
27549
27613
|
...((sessionPayload === null || sessionPayload === void 0 ? void 0 : sessionPayload.resourceAttributes) || {}),
|
|
27550
27614
|
},
|
|
27615
|
+
userAttributes: this._userAttributes
|
|
27551
27616
|
};
|
|
27552
27617
|
const { state } = await this._apiService.checkRemoteSession(payload);
|
|
27553
27618
|
if (state == 'START') {
|
|
27554
27619
|
if (this.sessionState !== _types__WEBPACK_IMPORTED_MODULE_3__.SessionState.started) {
|
|
27555
|
-
await this.start(
|
|
27620
|
+
await this.start(_multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.CONTINUOUS);
|
|
27556
27621
|
}
|
|
27557
27622
|
}
|
|
27558
27623
|
else if (state == 'STOP') {
|
|
@@ -27601,7 +27666,7 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
27601
27666
|
}
|
|
27602
27667
|
_handleStart() {
|
|
27603
27668
|
if (this.sessionState === _types__WEBPACK_IMPORTED_MODULE_3__.SessionState.stopped) {
|
|
27604
|
-
this.start(
|
|
27669
|
+
this.start(_multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.MANUAL);
|
|
27605
27670
|
}
|
|
27606
27671
|
}
|
|
27607
27672
|
_handleStop(comment) {
|
|
@@ -27631,14 +27696,14 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
27631
27696
|
}
|
|
27632
27697
|
_handleContinuousDebugging() {
|
|
27633
27698
|
if (this.sessionState === _types__WEBPACK_IMPORTED_MODULE_3__.SessionState.stopped) {
|
|
27634
|
-
this.start(
|
|
27699
|
+
this.start(_multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.CONTINUOUS);
|
|
27635
27700
|
}
|
|
27636
27701
|
}
|
|
27637
27702
|
/**
|
|
27638
27703
|
* Register session limit reaching listeners for controlling session end
|
|
27639
27704
|
*/
|
|
27640
27705
|
_registerSessionLimitReach() {
|
|
27641
|
-
|
|
27706
|
+
_eventBus__WEBPACK_IMPORTED_MODULE_7__.recorderEventBus.on(_config__WEBPACK_IMPORTED_MODULE_5__.SESSION_STOPPED_EVENT, () => {
|
|
27642
27707
|
this._stop();
|
|
27643
27708
|
this._clearSession();
|
|
27644
27709
|
this._sessionWidget.handleUIReseting();
|
|
@@ -27648,7 +27713,7 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
27648
27713
|
* Register session auto creation listeners during continuous recording
|
|
27649
27714
|
*/
|
|
27650
27715
|
_registerSessionAutoCreation() {
|
|
27651
|
-
|
|
27716
|
+
_eventBus__WEBPACK_IMPORTED_MODULE_7__.recorderEventBus.on(_config__WEBPACK_IMPORTED_MODULE_5__.SESSION_AUTO_CREATED, (payload) => {
|
|
27652
27717
|
var _a;
|
|
27653
27718
|
if (!(payload === null || payload === void 0 ? void 0 : payload.data))
|
|
27654
27719
|
return;
|
|
@@ -27662,6 +27727,18 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
27662
27727
|
}, 5000);
|
|
27663
27728
|
});
|
|
27664
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
|
+
}
|
|
27665
27742
|
/**
|
|
27666
27743
|
* Create a new session and start it
|
|
27667
27744
|
*/
|
|
@@ -27672,6 +27749,7 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
27672
27749
|
const payload = {
|
|
27673
27750
|
sessionAttributes: this.sessionAttributes,
|
|
27674
27751
|
resourceAttributes: (0,_utils__WEBPACK_IMPORTED_MODULE_2__.getNavigatorInfo)(),
|
|
27752
|
+
userAttributes: this._userAttributes,
|
|
27675
27753
|
name: this.sessionAttributes.userName
|
|
27676
27754
|
? `${this.sessionAttributes.userName}'s session on ${(0,_utils__WEBPACK_IMPORTED_MODULE_2__.getFormattedDate)(Date.now(), { month: 'short', day: 'numeric' })}`
|
|
27677
27755
|
: `Session on ${(0,_utils__WEBPACK_IMPORTED_MODULE_2__.getFormattedDate)(Date.now())}`,
|
|
@@ -27683,8 +27761,8 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
27683
27761
|
: await this._apiService.startSession(request, signal);
|
|
27684
27762
|
if (session) {
|
|
27685
27763
|
session.sessionType = this.continuousRecording
|
|
27686
|
-
?
|
|
27687
|
-
:
|
|
27764
|
+
? _multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.CONTINUOUS
|
|
27765
|
+
: _multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.MANUAL;
|
|
27688
27766
|
this._setupSessionAndStart(session, false);
|
|
27689
27767
|
}
|
|
27690
27768
|
}
|
|
@@ -27692,7 +27770,7 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
27692
27770
|
this.error = error.message;
|
|
27693
27771
|
this.sessionState = _types__WEBPACK_IMPORTED_MODULE_3__.SessionState.stopped;
|
|
27694
27772
|
if (this.continuousRecording) {
|
|
27695
|
-
this.sessionType =
|
|
27773
|
+
this.sessionType = _multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_12__.SessionType.MANUAL;
|
|
27696
27774
|
}
|
|
27697
27775
|
}
|
|
27698
27776
|
}
|
|
@@ -27707,7 +27785,7 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
27707
27785
|
this._recorder.start(this.sessionId, this.sessionType);
|
|
27708
27786
|
this._navigationRecorder.start({ sessionId: this.sessionId, sessionType: this.sessionType, });
|
|
27709
27787
|
if (this.session) {
|
|
27710
|
-
|
|
27788
|
+
_eventBus__WEBPACK_IMPORTED_MODULE_7__.recorderEventBus.emit(_config__WEBPACK_IMPORTED_MODULE_5__.SESSION_STARTED_EVENT, this.session);
|
|
27711
27789
|
this._recorder.subscribeToSession(this.session);
|
|
27712
27790
|
this._sessionWidget.seconds = (0,_utils__WEBPACK_IMPORTED_MODULE_2__.getTimeDifferenceInSeconds)((_a = this.session) === null || _a === void 0 ? void 0 : _a.startedAt);
|
|
27713
27791
|
}
|
|
@@ -27833,6 +27911,10 @@ class SessionRecorder extends lib0_observable__WEBPACK_IMPORTED_MODULE_14__.Obse
|
|
|
27833
27911
|
return { errorInfo: String(errorInfo) };
|
|
27834
27912
|
}
|
|
27835
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
|
+
}
|
|
27836
27918
|
}
|
|
27837
27919
|
|
|
27838
27920
|
|
|
@@ -29183,6 +29265,27 @@ const getButtonTemplate = (button) => {
|
|
|
29183
29265
|
};
|
|
29184
29266
|
|
|
29185
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
|
+
|
|
29186
29289
|
/***/ }),
|
|
29187
29290
|
|
|
29188
29291
|
/***/ "./src/types/index.ts":
|
|
@@ -29196,11 +29299,14 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
29196
29299
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
29197
29300
|
/* harmony export */ DebugSessionDataType: () => (/* reexport safe */ _session__WEBPACK_IMPORTED_MODULE_1__.DebugSessionDataType),
|
|
29198
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),
|
|
29199
29303
|
/* harmony export */ WidgetButtonPlacement: () => (/* reexport safe */ _sessionRecorder__WEBPACK_IMPORTED_MODULE_2__.WidgetButtonPlacement)
|
|
29200
29304
|
/* harmony export */ });
|
|
29201
29305
|
/* harmony import */ var _widget__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./widget */ "./src/types/widget.ts");
|
|
29202
29306
|
/* harmony import */ var _session__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./session */ "./src/types/session.ts");
|
|
29203
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
|
+
|
|
29204
29310
|
|
|
29205
29311
|
|
|
29206
29312
|
|
|
@@ -49366,6 +49472,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
49366
49472
|
/* harmony export */ SessionRecorderTraceIdRatioBasedSampler: () => (/* reexport safe */ _multiplayer_app_session_recorder_common__WEBPACK_IMPORTED_MODULE_6__.SessionRecorderTraceIdRatioBasedSampler),
|
|
49367
49473
|
/* harmony export */ SessionState: () => (/* reexport safe */ _types__WEBPACK_IMPORTED_MODULE_4__.SessionState),
|
|
49368
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),
|
|
49369
49476
|
/* harmony export */ WidgetButtonPlacement: () => (/* reexport safe */ _types__WEBPACK_IMPORTED_MODULE_4__.WidgetButtonPlacement),
|
|
49370
49477
|
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
|
|
49371
49478
|
/* harmony export */ recorderEventBus: () => (/* reexport safe */ _eventBus__WEBPACK_IMPORTED_MODULE_2__.recorderEventBus)
|