@multiplayer-app/session-recorder-browser 1.3.0 → 1.3.2
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 +12583 -6352
- package/dist/exporters/index.js +2 -16257
- package/dist/exporters/index.js.LICENSE.txt +741 -0
- package/dist/exporters/index.js.map +1 -1
- package/dist/global.d.ts +7 -0
- package/dist/global.d.ts.map +1 -0
- package/dist/global.js +9 -0
- package/dist/global.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13483 -7242
- package/dist/index.js.map +1 -1
- package/dist/index.umd.js +12584 -6349
- package/dist/index.umd.js.map +1 -1
- package/dist/listeners.d.ts +1 -1
- package/dist/listeners.d.ts.map +1 -1
- package/dist/rrweb/index.d.ts +5 -3
- package/dist/rrweb/index.d.ts.map +1 -1
- package/dist/rrweb/index.js +7 -9
- package/dist/rrweb/index.js.map +1 -1
- package/dist/services/socket.service.d.ts +28 -20
- package/dist/services/socket.service.d.ts.map +1 -1
- package/dist/services/socket.service.js +105 -96
- package/dist/services/socket.service.js.map +1 -1
- package/dist/{sessionRecorder.d.ts → session-recorder.d.ts} +34 -10
- package/dist/session-recorder.d.ts.map +1 -0
- package/dist/{sessionRecorder.js → session-recorder.js} +70 -44
- package/dist/session-recorder.js.map +1 -0
- package/dist/sessionWidget/index.d.ts +7 -4
- package/dist/sessionWidget/index.d.ts.map +1 -1
- package/dist/sessionWidget/index.js +72 -50
- package/dist/sessionWidget/index.js.map +1 -1
- package/dist/types/index.d.ts +1 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -2
- package/dist/types/index.js.map +1 -1
- package/dist/types/{sessionRecorder.d.ts → session-recorder.d.ts} +9 -3
- package/dist/types/session-recorder.d.ts.map +1 -0
- package/dist/types/{sessionRecorder.js → session-recorder.js} +1 -1
- package/dist/types/session-recorder.js.map +1 -0
- package/dist/types/session.d.ts +1 -2
- package/dist/types/session.d.ts.map +1 -1
- package/dist/types/session.js.map +1 -1
- package/dist/utils/dom.d.ts +7 -1
- package/dist/utils/dom.d.ts.map +1 -1
- package/dist/utils/dom.js +10 -0
- package/dist/utils/dom.js.map +1 -1
- package/package.json +3 -3
- package/dist/browser/index.js.map +0 -1
- package/dist/sessionRecorder.d.ts.map +0 -1
- package/dist/sessionRecorder.js.map +0 -1
- package/dist/types/client-type.enum.d.ts +0 -6
- package/dist/types/client-type.enum.d.ts.map +0 -1
- package/dist/types/client-type.enum.js +0 -7
- package/dist/types/client-type.enum.js.map +0 -1
- package/dist/types/sessionRecorder.d.ts.map +0 -1
- package/dist/types/sessionRecorder.js.map +0 -1
package/dist/listeners.d.ts
CHANGED
package/dist/listeners.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listeners.d.ts","sourceRoot":"","sources":["../src/listeners.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"listeners.d.ts","sourceRoot":"","sources":["../src/listeners.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAOzD,wBAAgB,cAAc,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI,CA0CrE"}
|
package/dist/rrweb/index.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { SessionType } from '@multiplayer-app/session-recorder-common';
|
|
2
|
-
import {
|
|
2
|
+
import { SessionRecorderConfigs } from '../types';
|
|
3
|
+
import { SocketService } from '../services/socket.service';
|
|
3
4
|
export declare class RecorderBrowserSDK {
|
|
4
5
|
private stopFn?;
|
|
5
6
|
private config?;
|
|
7
|
+
private socketService?;
|
|
6
8
|
private restartInterval;
|
|
7
9
|
private _startedAt;
|
|
8
10
|
get startedAt(): string;
|
|
@@ -14,8 +16,9 @@ export declare class RecorderBrowserSDK {
|
|
|
14
16
|
/**
|
|
15
17
|
* Initializes the recorder SDK with configuration settings.
|
|
16
18
|
* @param config - Configuration settings for the session debugger.
|
|
19
|
+
* @param socketService - Optional socket service instance for sending events.
|
|
17
20
|
*/
|
|
18
|
-
init(config: SessionRecorderConfigs): void;
|
|
21
|
+
init(config: SessionRecorderConfigs, socketService?: SocketService): void;
|
|
19
22
|
/**
|
|
20
23
|
* Starts recording events for a given session ID.
|
|
21
24
|
* @param sessionId - The ID of the session to record events for.
|
|
@@ -33,6 +36,5 @@ export declare class RecorderBrowserSDK {
|
|
|
33
36
|
* Stops the recording of events.
|
|
34
37
|
*/
|
|
35
38
|
stop(): void;
|
|
36
|
-
subscribeToSession(session: ISession): void;
|
|
37
39
|
}
|
|
38
40
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rrweb/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAA;AAOtE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rrweb/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAA;AAOtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AAGjD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAE1D,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAC,CAAY;IAC3B,OAAO,CAAC,MAAM,CAAC,CAAwB;IACvC,OAAO,CAAC,aAAa,CAAC,CAAe;IACrC,OAAO,CAAC,eAAe,CAA8B;IAErD,OAAO,CAAC,UAAU,CAAa;IAC/B,IAAW,SAAS,IAAI,MAAM,CAE7B;IACD,IAAW,SAAS,CAAC,CAAC,EAAE,MAAM,EAE7B;IAED,OAAO,CAAC,UAAU,CAAa;IAC/B,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,IAAW,SAAS,CAAC,CAAC,EAAE,MAAM,EAE7B;;IAKD;;;;OAIG;IACH,IAAI,CAAC,MAAM,EAAE,sBAAsB,EAAE,aAAa,CAAC,EAAE,aAAa,GAAG,IAAI;IAKzE;;;OAGG;IACH,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,WAAW,EAAE,WAAW,GAAG,IAAI;IA+E/D;;OAEG;IACG,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhF;;OAEG;IACH,oBAAoB,IAAI,IAAI;IAO5B;;OAEG;IACH,IAAI,IAAI,IAAI;CAOb"}
|
package/dist/rrweb/index.js
CHANGED
|
@@ -4,7 +4,6 @@ import { SessionType } from '@multiplayer-app/session-recorder-common';
|
|
|
4
4
|
import { getRecordConsolePlugin } from '@rrweb/rrweb-plugin-console-record';
|
|
5
5
|
import { isConsoleEvent } from '../utils';
|
|
6
6
|
import { CONTINUOUS_DEBUGGING_TIMEOUT } from '../config';
|
|
7
|
-
import { socketService } from '../services/socket.service';
|
|
8
7
|
export class RecorderBrowserSDK {
|
|
9
8
|
get startedAt() {
|
|
10
9
|
return this._startedAt;
|
|
@@ -26,9 +25,11 @@ export class RecorderBrowserSDK {
|
|
|
26
25
|
/**
|
|
27
26
|
* Initializes the recorder SDK with configuration settings.
|
|
28
27
|
* @param config - Configuration settings for the session debugger.
|
|
28
|
+
* @param socketService - Optional socket service instance for sending events.
|
|
29
29
|
*/
|
|
30
|
-
init(config) {
|
|
30
|
+
init(config, socketService) {
|
|
31
31
|
this.config = config;
|
|
32
|
+
this.socketService = socketService;
|
|
32
33
|
}
|
|
33
34
|
/**
|
|
34
35
|
* Starts recording events for a given session ID.
|
|
@@ -74,7 +75,7 @@ export class RecorderBrowserSDK {
|
|
|
74
75
|
this.stopFn = record({
|
|
75
76
|
...options,
|
|
76
77
|
emit: async (event) => {
|
|
77
|
-
if (socketService) {
|
|
78
|
+
if (this.socketService) {
|
|
78
79
|
if (typeof maskingConfig.maskConsoleEvent === 'function' && isConsoleEvent(event)) {
|
|
79
80
|
const { data } = event;
|
|
80
81
|
const maskedPayload = maskingConfig.maskConsoleEvent(data.payload);
|
|
@@ -82,7 +83,7 @@ export class RecorderBrowserSDK {
|
|
|
82
83
|
}
|
|
83
84
|
const packedEvent = pack(event);
|
|
84
85
|
this.stoppedAt = new Date(event.timestamp).toISOString();
|
|
85
|
-
socketService.send({
|
|
86
|
+
this.socketService.send({
|
|
86
87
|
event: packedEvent,
|
|
87
88
|
eventType: event.type,
|
|
88
89
|
timestamp: event.timestamp,
|
|
@@ -121,15 +122,12 @@ export class RecorderBrowserSDK {
|
|
|
121
122
|
* Stops the recording of events.
|
|
122
123
|
*/
|
|
123
124
|
stop() {
|
|
124
|
-
var _a, _b;
|
|
125
|
+
var _a, _b, _c;
|
|
125
126
|
(_a = this.stopFn) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
126
127
|
if (!((_b = this.config) === null || _b === void 0 ? void 0 : _b.useWebsocket)) {
|
|
127
|
-
socketService === null ||
|
|
128
|
+
(_c = this.socketService) === null || _c === void 0 ? void 0 : _c.close();
|
|
128
129
|
}
|
|
129
130
|
this.clearRestartInterval();
|
|
130
131
|
}
|
|
131
|
-
subscribeToSession(session) {
|
|
132
|
-
socketService === null || socketService === void 0 ? void 0 : socketService.subscribeToSession(session);
|
|
133
|
-
}
|
|
134
132
|
}
|
|
135
133
|
//# sourceMappingURL=index.js.map
|
package/dist/rrweb/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rrweb/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AAEpC,OAAO,EAAiB,MAAM,EAAiB,MAAM,OAAO,CAAA;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAA;AACtE,OAAO,EAAE,sBAAsB,EAAW,MAAM,oCAAoC,CAAA;AAIpF,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AACzC,OAAO,EAAE,4BAA4B,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rrweb/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,34 +1,42 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { Observable } from 'lib0/observable';
|
|
2
|
+
import { type ISession, type IUserAttributes } from '../types';
|
|
3
|
+
import { SESSION_AUTO_CREATED, SESSION_STOPPED_EVENT, REMOTE_SESSION_RECORDING_START, REMOTE_SESSION_RECORDING_STOP } from '../config';
|
|
4
|
+
export type SocketServiceEvents = typeof SESSION_STOPPED_EVENT | typeof SESSION_AUTO_CREATED | typeof REMOTE_SESSION_RECORDING_START | typeof REMOTE_SESSION_RECORDING_STOP;
|
|
5
|
+
export interface SocketServiceOptions {
|
|
6
|
+
apiKey: string;
|
|
7
|
+
socketUrl: string;
|
|
8
|
+
keepAlive?: boolean;
|
|
9
|
+
usePostMessageFallback?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export declare class SocketService extends Observable<SocketServiceEvents> {
|
|
4
12
|
private socket;
|
|
5
13
|
private queue;
|
|
6
14
|
private isConnecting;
|
|
7
15
|
private isConnected;
|
|
8
|
-
private usePostMessage;
|
|
9
16
|
private attempts;
|
|
10
17
|
private sessionId;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
+
private options;
|
|
19
|
+
private usePostMessage;
|
|
20
|
+
constructor();
|
|
21
|
+
/**
|
|
22
|
+
* Initialize the socket service
|
|
23
|
+
* @param config - Socket service configuration
|
|
24
|
+
*/
|
|
25
|
+
init(config: SocketServiceOptions): void;
|
|
26
|
+
/**
|
|
27
|
+
* Update the socket service configuration
|
|
28
|
+
* @param config - Partial configuration to update
|
|
29
|
+
*/
|
|
30
|
+
updateConfigs(config: Partial<SocketServiceOptions>): void;
|
|
31
|
+
private _initConnection;
|
|
18
32
|
private checkReconnectionAttempts;
|
|
19
33
|
private sendViaPostMessage;
|
|
34
|
+
private emitSocketEvent;
|
|
20
35
|
private flushQueue;
|
|
21
|
-
private unsubscribeFromSession;
|
|
22
36
|
send(event: any): void;
|
|
23
37
|
subscribeToSession(session: ISession): void;
|
|
38
|
+
unsubscribeFromSession(stopSession?: boolean): void;
|
|
24
39
|
setUser(userAttributes: IUserAttributes | undefined): void;
|
|
25
|
-
close(): void
|
|
40
|
+
close(): Promise<void>;
|
|
26
41
|
}
|
|
27
|
-
export declare let socketService: SocketService | null;
|
|
28
|
-
export declare const createSocketService: (options: {
|
|
29
|
-
socketUrl: string;
|
|
30
|
-
apiKey: string;
|
|
31
|
-
usePostMessageFallback?: boolean;
|
|
32
|
-
keepAlive?: boolean;
|
|
33
|
-
}) => SocketService;
|
|
34
42
|
//# sourceMappingURL=socket.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socket.service.d.ts","sourceRoot":"","sources":["../../src/services/socket.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"socket.service.d.ts","sourceRoot":"","sources":["../../src/services/socket.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,eAAe,EAAE,MAAM,UAAU,CAAA;AAG9D,OAAO,EAEL,oBAAoB,EACpB,qBAAqB,EAIrB,8BAA8B,EAC9B,6BAA6B,EAE9B,MAAM,WAAW,CAAA;AAKlB,MAAM,MAAM,mBAAmB,GAC3B,OAAO,qBAAqB,GAC5B,OAAO,oBAAoB,GAC3B,OAAO,8BAA8B,GACrC,OAAO,6BAA6B,CAAA;AAExC,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,sBAAsB,CAAC,EAAE,OAAO,CAAA;CACjC;AAED,qBAAa,aAAc,SAAQ,UAAU,CAAC,mBAAmB,CAAC;IAChE,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,KAAK,CAAY;IACzB,OAAO,CAAC,YAAY,CAAiB;IACrC,OAAO,CAAC,WAAW,CAAiB;IACpC,OAAO,CAAC,QAAQ,CAAY;IAC5B,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,cAAc,CAAiB;;IAYvC;;;OAGG;IACI,IAAI,CAAC,MAAM,EAAE,oBAAoB,GAAG,IAAI;IAc/C;;;OAGG;IACI,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,IAAI;IA4BjE,OAAO,CAAC,eAAe;IAiDvB,OAAO,CAAC,yBAAyB;IAOjC,OAAO,CAAC,kBAAkB;IAK1B,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,UAAU;IAaX,IAAI,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAItB,kBAAkB,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI;IAY3C,sBAAsB,CAAC,WAAW,CAAC,EAAE,OAAO;IAS5C,OAAO,CAAC,cAAc,EAAE,eAAe,GAAG,SAAS,GAAG,IAAI;IAI1D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAoB9B"}
|
|
@@ -1,25 +1,66 @@
|
|
|
1
1
|
import io from 'socket.io-client';
|
|
2
|
-
import {
|
|
2
|
+
import { Observable } from 'lib0/observable';
|
|
3
3
|
import messagingService from '../services/messaging.service';
|
|
4
|
-
import { SESSION_ADD_EVENT, SESSION_AUTO_CREATED, SESSION_STOPPED_EVENT, SESSION_SUBSCRIBE_EVENT, SESSION_UNSUBSCRIBE_EVENT, SOCKET_SET_USER_EVENT, REMOTE_SESSION_RECORDING_START, REMOTE_SESSION_RECORDING_STOP, } from '../config';
|
|
4
|
+
import { SESSION_ADD_EVENT, SESSION_AUTO_CREATED, SESSION_STOPPED_EVENT, SESSION_SUBSCRIBE_EVENT, SESSION_UNSUBSCRIBE_EVENT, SOCKET_SET_USER_EVENT, REMOTE_SESSION_RECORDING_START, REMOTE_SESSION_RECORDING_STOP, SESSION_STARTED_EVENT, } from '../config';
|
|
5
5
|
const MAX_RECONNECTION_ATTEMPTS = 2;
|
|
6
|
-
export class SocketService {
|
|
7
|
-
constructor(
|
|
8
|
-
|
|
6
|
+
export class SocketService extends Observable {
|
|
7
|
+
constructor() {
|
|
8
|
+
super();
|
|
9
9
|
this.socket = null;
|
|
10
10
|
this.queue = [];
|
|
11
11
|
this.isConnecting = false;
|
|
12
12
|
this.isConnected = false;
|
|
13
|
-
this.usePostMessage = false;
|
|
14
13
|
this.attempts = 0;
|
|
15
14
|
this.sessionId = null;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
15
|
+
this.usePostMessage = false;
|
|
16
|
+
this.options = {
|
|
17
|
+
apiKey: '',
|
|
18
|
+
socketUrl: '',
|
|
19
|
+
keepAlive: false,
|
|
20
|
+
usePostMessageFallback: false,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Initialize the socket service
|
|
25
|
+
* @param config - Socket service configuration
|
|
26
|
+
*/
|
|
27
|
+
init(config) {
|
|
28
|
+
this.options = {
|
|
29
|
+
...this.options,
|
|
30
|
+
...config,
|
|
31
|
+
};
|
|
32
|
+
if (this.options.keepAlive &&
|
|
33
|
+
this.options.socketUrl &&
|
|
34
|
+
this.options.apiKey) {
|
|
35
|
+
this._initConnection();
|
|
20
36
|
}
|
|
21
37
|
}
|
|
22
|
-
|
|
38
|
+
/**
|
|
39
|
+
* Update the socket service configuration
|
|
40
|
+
* @param config - Partial configuration to update
|
|
41
|
+
*/
|
|
42
|
+
updateConfigs(config) {
|
|
43
|
+
var _a;
|
|
44
|
+
// If any config changed, reconnect if connected
|
|
45
|
+
const hasChanges = Object.keys(config).some((key) => {
|
|
46
|
+
const typedKey = key;
|
|
47
|
+
return (config[typedKey] !== undefined &&
|
|
48
|
+
config[typedKey] !== this.options[typedKey]);
|
|
49
|
+
});
|
|
50
|
+
if (hasChanges) {
|
|
51
|
+
this.options = { ...this.options, ...config };
|
|
52
|
+
if ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.connected) {
|
|
53
|
+
this.close().then(() => {
|
|
54
|
+
if (this.options.keepAlive &&
|
|
55
|
+
this.options.socketUrl &&
|
|
56
|
+
this.options.apiKey) {
|
|
57
|
+
this._initConnection();
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
_initConnection() {
|
|
23
64
|
if (this.isConnecting || this.isConnected)
|
|
24
65
|
return;
|
|
25
66
|
this.attempts++;
|
|
@@ -33,12 +74,6 @@ export class SocketService {
|
|
|
33
74
|
reconnectionAttempts: 2,
|
|
34
75
|
transports: ['websocket'],
|
|
35
76
|
});
|
|
36
|
-
// this.socket.on('connect', () => {
|
|
37
|
-
// this.isConnecting = false
|
|
38
|
-
// this.isConnected = true
|
|
39
|
-
// this.usePostMessage = false
|
|
40
|
-
// this.flushQueue()
|
|
41
|
-
// })
|
|
42
77
|
this.socket.on('ready', () => {
|
|
43
78
|
this.isConnecting = false;
|
|
44
79
|
this.isConnected = true;
|
|
@@ -55,17 +90,16 @@ export class SocketService {
|
|
|
55
90
|
this.checkReconnectionAttempts();
|
|
56
91
|
});
|
|
57
92
|
this.socket.on(SESSION_STOPPED_EVENT, (data) => {
|
|
58
|
-
|
|
59
|
-
this.unsubscribeFromSession();
|
|
93
|
+
this.emit(SESSION_STOPPED_EVENT, [data]);
|
|
60
94
|
});
|
|
61
95
|
this.socket.on(SESSION_AUTO_CREATED, (data) => {
|
|
62
|
-
|
|
96
|
+
this.emit(SESSION_AUTO_CREATED, [data]);
|
|
63
97
|
});
|
|
64
98
|
this.socket.on(REMOTE_SESSION_RECORDING_START, (data) => {
|
|
65
|
-
|
|
99
|
+
this.emit(REMOTE_SESSION_RECORDING_START, [data]);
|
|
66
100
|
});
|
|
67
101
|
this.socket.on(REMOTE_SESSION_RECORDING_STOP, (data) => {
|
|
68
|
-
|
|
102
|
+
this.emit(REMOTE_SESSION_RECORDING_STOP, [data]);
|
|
69
103
|
});
|
|
70
104
|
}
|
|
71
105
|
checkReconnectionAttempts() {
|
|
@@ -74,8 +108,22 @@ export class SocketService {
|
|
|
74
108
|
this.flushQueue();
|
|
75
109
|
}
|
|
76
110
|
}
|
|
77
|
-
sendViaPostMessage(
|
|
78
|
-
|
|
111
|
+
sendViaPostMessage(name, data) {
|
|
112
|
+
const action = name === SESSION_ADD_EVENT ? 'rrweb-event' : 'socket-emit';
|
|
113
|
+
messagingService.sendMessage(action, data);
|
|
114
|
+
}
|
|
115
|
+
emitSocketEvent(name, data) {
|
|
116
|
+
var _a;
|
|
117
|
+
if (this.usePostMessage) {
|
|
118
|
+
this.sendViaPostMessage(name, data);
|
|
119
|
+
}
|
|
120
|
+
else if ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.connected) {
|
|
121
|
+
this.socket.emit(name, data);
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
this.queue.push({ data, name });
|
|
125
|
+
this._initConnection();
|
|
126
|
+
}
|
|
79
127
|
}
|
|
80
128
|
flushQueue() {
|
|
81
129
|
var _a, _b;
|
|
@@ -84,40 +132,17 @@ export class SocketService {
|
|
|
84
132
|
if (!event)
|
|
85
133
|
continue;
|
|
86
134
|
if (this.usePostMessage) {
|
|
87
|
-
this.sendViaPostMessage(event.data);
|
|
135
|
+
this.sendViaPostMessage(event.name, event.data);
|
|
88
136
|
}
|
|
89
137
|
else if ((_b = this.socket) === null || _b === void 0 ? void 0 : _b.connected) {
|
|
90
138
|
this.socket.emit(event.name, event.data);
|
|
91
139
|
}
|
|
92
140
|
}
|
|
93
141
|
}
|
|
94
|
-
unsubscribeFromSession() {
|
|
95
|
-
var _a;
|
|
96
|
-
const payload = {
|
|
97
|
-
debugSessionId: this.sessionId,
|
|
98
|
-
};
|
|
99
|
-
if (this.usePostMessage) {
|
|
100
|
-
messagingService.sendMessage('socket-emit', { event: SESSION_UNSUBSCRIBE_EVENT, data: payload });
|
|
101
|
-
}
|
|
102
|
-
else if ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.connected) {
|
|
103
|
-
this.socket.emit(SESSION_UNSUBSCRIBE_EVENT, payload);
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
142
|
send(event) {
|
|
107
|
-
|
|
108
|
-
if (this.usePostMessage) {
|
|
109
|
-
this.sendViaPostMessage(event);
|
|
110
|
-
}
|
|
111
|
-
else if ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.connected) {
|
|
112
|
-
this.socket.emit(SESSION_ADD_EVENT, event);
|
|
113
|
-
}
|
|
114
|
-
else {
|
|
115
|
-
this.queue.push({ data: event, name: SESSION_ADD_EVENT });
|
|
116
|
-
this.init();
|
|
117
|
-
}
|
|
143
|
+
this.emitSocketEvent(SESSION_ADD_EVENT, event);
|
|
118
144
|
}
|
|
119
145
|
subscribeToSession(session) {
|
|
120
|
-
var _a;
|
|
121
146
|
this.sessionId = session.shortId || session._id;
|
|
122
147
|
const payload = {
|
|
123
148
|
projectId: session.project,
|
|
@@ -125,58 +150,42 @@ export class SocketService {
|
|
|
125
150
|
debugSessionId: this.sessionId,
|
|
126
151
|
sessionType: session.creationType,
|
|
127
152
|
};
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
else {
|
|
138
|
-
this.queue.push({
|
|
139
|
-
data: payload,
|
|
140
|
-
name: SESSION_SUBSCRIBE_EVENT,
|
|
141
|
-
});
|
|
142
|
-
this.init();
|
|
153
|
+
this.emitSocketEvent(SESSION_SUBSCRIBE_EVENT, payload);
|
|
154
|
+
this.emitSocketEvent(SESSION_STARTED_EVENT, { debugSessionId: this.sessionId });
|
|
155
|
+
}
|
|
156
|
+
unsubscribeFromSession(stopSession) {
|
|
157
|
+
if (this.sessionId) {
|
|
158
|
+
this.emitSocketEvent(SESSION_UNSUBSCRIBE_EVENT, { debugSessionId: this.sessionId });
|
|
159
|
+
if (stopSession) {
|
|
160
|
+
this.emitSocketEvent(SESSION_STOPPED_EVENT, {});
|
|
161
|
+
}
|
|
143
162
|
}
|
|
144
163
|
}
|
|
145
164
|
setUser(userAttributes) {
|
|
146
|
-
|
|
147
|
-
if (this.usePostMessage) {
|
|
148
|
-
this.sendViaPostMessage({
|
|
149
|
-
type: SOCKET_SET_USER_EVENT,
|
|
150
|
-
data: userAttributes,
|
|
151
|
-
});
|
|
152
|
-
}
|
|
153
|
-
else if ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.connected) {
|
|
154
|
-
this.socket.emit(SOCKET_SET_USER_EVENT, userAttributes);
|
|
155
|
-
}
|
|
165
|
+
this.emitSocketEvent(SOCKET_SET_USER_EVENT, userAttributes);
|
|
156
166
|
}
|
|
157
167
|
close() {
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
this.
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
168
|
+
return new Promise((resolve) => {
|
|
169
|
+
var _a;
|
|
170
|
+
if (this.usePostMessage) {
|
|
171
|
+
this.sendViaPostMessage('close', {});
|
|
172
|
+
}
|
|
173
|
+
if ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.connected) {
|
|
174
|
+
setTimeout(() => {
|
|
175
|
+
var _a;
|
|
176
|
+
this.unsubscribeFromSession();
|
|
177
|
+
this.attempts = 0;
|
|
178
|
+
this.isConnected = false;
|
|
179
|
+
this.isConnecting = false;
|
|
180
|
+
(_a = this.socket) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
181
|
+
this.socket = null;
|
|
182
|
+
resolve();
|
|
183
|
+
}, 500);
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
186
|
+
resolve();
|
|
187
|
+
}
|
|
188
|
+
});
|
|
173
189
|
}
|
|
174
190
|
}
|
|
175
|
-
export let socketService = null;
|
|
176
|
-
export const createSocketService = (options) => {
|
|
177
|
-
if (!socketService) {
|
|
178
|
-
socketService = new SocketService(options);
|
|
179
|
-
}
|
|
180
|
-
return socketService;
|
|
181
|
-
};
|
|
182
191
|
//# sourceMappingURL=socket.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socket.service.js","sourceRoot":"","sources":["../../src/services/socket.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"socket.service.js","sourceRoot":"","sources":["../../src/services/socket.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { SessionState, ISession, SessionRecorderOptions, SessionRecorderEvents, IUserAttributes } from './types';
|
|
2
|
-
import './index.scss';
|
|
3
2
|
import { SessionType } from '@multiplayer-app/session-recorder-common';
|
|
4
3
|
import { ISessionRecorder } from './types';
|
|
5
4
|
import { Observable } from 'lib0/observable';
|
|
@@ -7,6 +6,7 @@ import { NavigationRecorderPublicApi } from './navigation';
|
|
|
7
6
|
export declare class SessionRecorder extends Observable<SessionRecorderEvents> implements ISessionRecorder {
|
|
8
7
|
private _configs;
|
|
9
8
|
private _apiService;
|
|
9
|
+
private _socketService;
|
|
10
10
|
private _tracer;
|
|
11
11
|
private _recorder;
|
|
12
12
|
private _sessionWidget;
|
|
@@ -87,6 +87,11 @@ export declare class SessionRecorder extends Observable<SessionRecorderEvents> i
|
|
|
87
87
|
* @param attributes - the attributes to set
|
|
88
88
|
*/
|
|
89
89
|
setSessionAttributes(attributes: Record<string, any>): void;
|
|
90
|
+
/**
|
|
91
|
+
* Set the user attributes
|
|
92
|
+
* @param userAttributes - the user attributes to set
|
|
93
|
+
*/
|
|
94
|
+
setUserAttributes(userAttributes: IUserAttributes | undefined): void;
|
|
90
95
|
/**
|
|
91
96
|
* Updates the button click handler in the library.
|
|
92
97
|
* @param handler - A function that will be invoked when the button is clicked.
|
|
@@ -109,23 +114,38 @@ export declare class SessionRecorder extends Observable<SessionRecorderEvents> i
|
|
|
109
114
|
* Register session widget event listeners for controlling session actions
|
|
110
115
|
*/
|
|
111
116
|
private _registerWidgetEvents;
|
|
117
|
+
/**
|
|
118
|
+
* Handle the safe start event
|
|
119
|
+
*/
|
|
112
120
|
private _handleStart;
|
|
121
|
+
/**
|
|
122
|
+
* Handle the safe stop event
|
|
123
|
+
*/
|
|
113
124
|
private _handleStop;
|
|
125
|
+
/**
|
|
126
|
+
* Handle the safe pause event
|
|
127
|
+
*/
|
|
114
128
|
private _handlePause;
|
|
129
|
+
/**
|
|
130
|
+
* Handle the safe resume event
|
|
131
|
+
*/
|
|
115
132
|
private _handleResume;
|
|
133
|
+
/**
|
|
134
|
+
* Handle the safe cancel event
|
|
135
|
+
*/
|
|
116
136
|
private _handleCancel;
|
|
137
|
+
/**
|
|
138
|
+
* Handle the safe save event
|
|
139
|
+
*/
|
|
117
140
|
private _handleSave;
|
|
118
|
-
private _handleContinuousDebugging;
|
|
119
141
|
/**
|
|
120
|
-
*
|
|
142
|
+
* Handle the safe continuous debugging event
|
|
121
143
|
*/
|
|
122
|
-
private
|
|
144
|
+
private _handleContinuousDebugging;
|
|
123
145
|
/**
|
|
124
|
-
* Register
|
|
146
|
+
* Register socket service event listeners
|
|
125
147
|
*/
|
|
126
|
-
private
|
|
127
|
-
private _registerRemoteSessionRecordingStart;
|
|
128
|
-
private _registerRemoteSessionRecordingStop;
|
|
148
|
+
private _registerSocketServiceListeners;
|
|
129
149
|
/**
|
|
130
150
|
* Create a new session and start it
|
|
131
151
|
*/
|
|
@@ -160,6 +180,10 @@ export declare class SessionRecorder extends Observable<SessionRecorderEvents> i
|
|
|
160
180
|
private _checkOperation;
|
|
161
181
|
private _normalizeError;
|
|
162
182
|
private _normalizeErrorInfo;
|
|
163
|
-
|
|
183
|
+
/**
|
|
184
|
+
* Get the session name
|
|
185
|
+
* @returns the session name
|
|
186
|
+
*/
|
|
187
|
+
private _getSessionName;
|
|
164
188
|
}
|
|
165
|
-
//# sourceMappingURL=
|
|
189
|
+
//# sourceMappingURL=session-recorder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-recorder.d.ts","sourceRoot":"","sources":["../src/session-recorder.ts"],"names":[],"mappings":"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"}
|