@multiplayer-app/session-recorder-browser 1.2.21 → 1.2.23
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 +48 -102
- package/dist/browser/index.js.map +1 -1
- package/dist/config/constants.d.ts +19 -0
- package/dist/config/constants.js +35 -0
- package/dist/config/constants.js.map +1 -0
- package/dist/config/defaults.d.ts +5 -0
- package/dist/config/defaults.js +60 -0
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/index.d.ts +6 -0
- package/dist/config/index.js +7 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/masking.d.ts +3 -0
- package/dist/config/masking.js +30 -0
- package/dist/config/masking.js.map +1 -0
- package/dist/config/session-recorder.d.ts +3 -0
- package/dist/config/session-recorder.js +60 -0
- package/dist/config/session-recorder.js.map +1 -0
- package/dist/config/validators.d.ts +11 -0
- package/dist/config/validators.js +25 -0
- package/dist/config/validators.js.map +1 -0
- package/dist/eventBus.d.ts +3 -0
- package/dist/eventBus.js +3 -0
- package/dist/eventBus.js.map +1 -0
- package/dist/exporters/index.js +1 -1
- package/dist/exporters.d.ts +4 -0
- package/dist/exporters.js +8 -0
- package/dist/exporters.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +53 -102
- package/dist/index.js.map +1 -1
- package/dist/index.umd.js +48 -101
- package/dist/index.umd.js.map +1 -1
- package/dist/listeners.d.ts +3 -0
- package/dist/listeners.js +39 -0
- package/dist/listeners.js.map +1 -0
- package/dist/navigation/index.d.ts +3 -0
- package/dist/navigation/index.js +3 -0
- package/dist/navigation/index.js.map +1 -0
- package/dist/navigation/navigationRecorder.d.ts +22 -0
- package/dist/navigation/navigationRecorder.js +195 -0
- package/dist/navigation/navigationRecorder.js.map +1 -0
- package/dist/navigation/types.d.ts +32 -0
- package/dist/navigation/types.js +2 -0
- package/dist/navigation/types.js.map +1 -0
- package/dist/otel/helpers.d.ts +46 -0
- package/dist/otel/helpers.js +201 -0
- package/dist/otel/helpers.js.map +1 -0
- package/dist/otel/index.d.ts +18 -0
- package/dist/otel/index.js +186 -0
- package/dist/otel/index.js.map +1 -0
- package/dist/otel/types.d.ts +10 -0
- package/dist/otel/types.js +2 -0
- package/dist/otel/types.js.map +1 -0
- package/dist/patch/configs.d.ts +9 -0
- package/dist/patch/configs.js +16 -0
- package/dist/patch/configs.js.map +1 -0
- package/dist/patch/fetch.d.ts +2 -0
- package/dist/patch/fetch.js +123 -0
- package/dist/patch/fetch.js.map +1 -0
- package/dist/patch/index.d.ts +4 -0
- package/dist/patch/index.js +4 -0
- package/dist/patch/index.js.map +1 -0
- package/dist/patch/xhr.d.ts +2 -0
- package/dist/patch/xhr.js +85 -0
- package/dist/patch/xhr.js.map +1 -0
- package/dist/rrweb/exporter.d.ts +25 -0
- package/dist/rrweb/exporter.js +146 -0
- package/dist/rrweb/exporter.js.map +1 -0
- package/dist/rrweb/index.d.ts +39 -0
- package/dist/rrweb/index.js +139 -0
- package/dist/rrweb/index.js.map +1 -0
- package/dist/rrweb/indexedDbService.d.ts +9 -0
- package/dist/rrweb/indexedDbService.js +54 -0
- package/dist/rrweb/indexedDbService.js.map +1 -0
- package/dist/services/api.service.d.ts +81 -0
- package/dist/services/api.service.js +133 -0
- package/dist/services/api.service.js.map +1 -0
- package/dist/services/messaging.service.d.ts +16 -0
- package/dist/services/messaging.service.js +94 -0
- package/dist/services/messaging.service.js.map +1 -0
- package/dist/sessionRecorder.d.ts +148 -0
- package/dist/sessionRecorder.js +555 -0
- package/dist/sessionRecorder.js.map +1 -0
- package/dist/sessionWidget/UIManager.d.ts +76 -0
- package/dist/sessionWidget/UIManager.js +135 -0
- package/dist/sessionWidget/UIManager.js.map +1 -0
- package/dist/sessionWidget/buttonStateConfigs.d.ts +83 -0
- package/dist/sessionWidget/buttonStateConfigs.js +86 -0
- package/dist/sessionWidget/buttonStateConfigs.js.map +1 -0
- package/dist/sessionWidget/constants.d.ts +5 -0
- package/dist/sessionWidget/constants.js +5 -0
- package/dist/sessionWidget/constants.js.map +1 -0
- package/dist/sessionWidget/dragManager.d.ts +16 -0
- package/dist/sessionWidget/dragManager.js +114 -0
- package/dist/sessionWidget/dragManager.js.map +1 -0
- package/dist/sessionWidget/index.d.ts +86 -0
- package/dist/sessionWidget/index.js +564 -0
- package/dist/sessionWidget/index.js.map +1 -0
- package/dist/sessionWidget/templates/finalPopover.d.ts +3 -0
- package/dist/sessionWidget/templates/finalPopover.js +21 -0
- package/dist/sessionWidget/templates/finalPopover.js.map +1 -0
- package/dist/sessionWidget/templates/icons.d.ts +14 -0
- package/dist/sessionWidget/templates/icons.js +50 -0
- package/dist/sessionWidget/templates/icons.js.map +1 -0
- package/dist/sessionWidget/templates/initialPopover.d.ts +3 -0
- package/dist/sessionWidget/templates/initialPopover.js +41 -0
- package/dist/sessionWidget/templates/initialPopover.js.map +1 -0
- package/dist/sessionWidget/templates/recordingOverlay.d.ts +2 -0
- package/dist/sessionWidget/templates/recordingOverlay.js +16 -0
- package/dist/sessionWidget/templates/recordingOverlay.js.map +1 -0
- package/dist/sessionWidget/templates/submitSessionDialog.d.ts +3 -0
- package/dist/sessionWidget/templates/submitSessionDialog.js +17 -0
- package/dist/sessionWidget/templates/submitSessionDialog.js.map +1 -0
- package/dist/sessionWidget/templates/toast.d.ts +3 -0
- package/dist/sessionWidget/templates/toast.js +25 -0
- package/dist/sessionWidget/templates/toast.js.map +1 -0
- package/dist/types/client-type.enum.d.ts +6 -0
- package/dist/types/client-type.enum.js +7 -0
- package/dist/types/client-type.enum.js.map +1 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.js +4 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/session.d.ts +72 -0
- package/dist/types/session.js +7 -0
- package/dist/types/session.js.map +1 -0
- package/dist/types/sessionRecorder.d.ts +369 -0
- package/dist/types/sessionRecorder.js +14 -0
- package/dist/types/sessionRecorder.js.map +1 -0
- package/dist/types/widget.d.ts +11 -0
- package/dist/types/widget.js +2 -0
- package/dist/types/widget.js.map +1 -0
- package/dist/utils/array.d.ts +4 -0
- package/dist/utils/array.js +50 -0
- package/dist/utils/array.js.map +1 -0
- package/dist/utils/dom.d.ts +5 -0
- package/dist/utils/dom.js +9 -0
- package/dist/utils/dom.js.map +1 -0
- package/dist/utils/globals.d.ts +24 -0
- package/dist/utils/globals.js +14 -0
- package/dist/utils/globals.js.map +1 -0
- package/dist/utils/index.d.ts +9 -0
- package/dist/utils/index.js +10 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/navigator.d.ts +3 -0
- package/dist/utils/navigator.js +83 -0
- package/dist/utils/navigator.js.map +1 -0
- package/dist/utils/request-utils.d.ts +10 -0
- package/dist/utils/request-utils.js +70 -0
- package/dist/utils/request-utils.js.map +1 -0
- package/dist/utils/session.d.ts +8 -0
- package/dist/utils/session.js +21 -0
- package/dist/utils/session.js.map +1 -0
- package/dist/utils/storage.d.ts +7 -0
- package/dist/utils/storage.js +19 -0
- package/dist/utils/storage.js.map +1 -0
- package/dist/utils/time.d.ts +7 -0
- package/dist/utils/time.js +25 -0
- package/dist/utils/time.js.map +1 -0
- package/dist/utils/type-utils.d.ts +18 -0
- package/dist/utils/type-utils.js +71 -0
- package/dist/utils/type-utils.js.map +1 -0
- package/package.json +7 -2
- package/dist/exports.d.ts.map +0 -1
- package/docs/img/header-js.png +0 -0
- package/src/index.scss +0 -913
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
class MessagingService {
|
|
2
|
+
constructor() {
|
|
3
|
+
this.promiseIdCounter = 0;
|
|
4
|
+
this.promiseMap = new Map();
|
|
5
|
+
this.messagingServices = new Map();
|
|
6
|
+
this.isBrowser = typeof window !== 'undefined';
|
|
7
|
+
this.setupMessageListener();
|
|
8
|
+
}
|
|
9
|
+
generatePromiseId() {
|
|
10
|
+
return `promise_${++this.promiseIdCounter}`;
|
|
11
|
+
}
|
|
12
|
+
sendMessage(action, payload) {
|
|
13
|
+
if (!this.isBrowser)
|
|
14
|
+
return;
|
|
15
|
+
const message = {
|
|
16
|
+
type: 'MULTIPLAYER_SESSION_DEBUGGER_LIB',
|
|
17
|
+
action,
|
|
18
|
+
payload,
|
|
19
|
+
};
|
|
20
|
+
window.postMessage(message, '*');
|
|
21
|
+
}
|
|
22
|
+
sendMessagePromise(action, payload) {
|
|
23
|
+
if (!this.isBrowser) {
|
|
24
|
+
return Promise.reject(new Error('Not in browser environment'));
|
|
25
|
+
}
|
|
26
|
+
const promiseId = this.generatePromiseId();
|
|
27
|
+
const promise = new Promise((resolve, reject) => {
|
|
28
|
+
this.promiseMap.set(promiseId, { resolve, reject });
|
|
29
|
+
});
|
|
30
|
+
const message = {
|
|
31
|
+
type: 'MULTIPLAYER_SESSION_DEBUGGER_LIB',
|
|
32
|
+
action,
|
|
33
|
+
payload,
|
|
34
|
+
promiseId,
|
|
35
|
+
};
|
|
36
|
+
window.postMessage(message, '*');
|
|
37
|
+
return promise;
|
|
38
|
+
}
|
|
39
|
+
on(action, handler) {
|
|
40
|
+
const handlers = this.messagingServices.get(action) || [];
|
|
41
|
+
handlers.push(handler);
|
|
42
|
+
this.messagingServices.set(action, handlers);
|
|
43
|
+
}
|
|
44
|
+
off(action, handler) {
|
|
45
|
+
if (!handler) {
|
|
46
|
+
// Remove all handlers for this action
|
|
47
|
+
this.messagingServices.delete(action);
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
const handlers = this.messagingServices.get(action);
|
|
51
|
+
if (handlers) {
|
|
52
|
+
const index = handlers.indexOf(handler);
|
|
53
|
+
if (index !== -1) {
|
|
54
|
+
handlers.splice(index, 1);
|
|
55
|
+
if (handlers.length === 0) {
|
|
56
|
+
this.messagingServices.delete(action);
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
this.messagingServices.set(action, handlers);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
setupMessageListener() {
|
|
65
|
+
if (!this.isBrowser)
|
|
66
|
+
return;
|
|
67
|
+
window.addEventListener('message', (event) => {
|
|
68
|
+
const { type, action, payload, promiseId } = event.data;
|
|
69
|
+
if (type !== 'MULTIPLAYER_SESSION_DEBUGGER_EXTENSION' || !action)
|
|
70
|
+
return;
|
|
71
|
+
// Handle promise response
|
|
72
|
+
if (promiseId && this.promiseMap.has(promiseId)) {
|
|
73
|
+
const { resolve, reject } = this.promiseMap.get(promiseId);
|
|
74
|
+
const { error, response } = payload;
|
|
75
|
+
if (error) {
|
|
76
|
+
reject(error);
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
resolve(response);
|
|
80
|
+
}
|
|
81
|
+
this.promiseMap.delete(promiseId);
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
// Handle regular message handlers
|
|
85
|
+
const handlers = this.messagingServices.get(action);
|
|
86
|
+
if (handlers) {
|
|
87
|
+
handlers.forEach(handler => handler(payload));
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
const messagingService = new MessagingService();
|
|
93
|
+
export default messagingService;
|
|
94
|
+
//# sourceMappingURL=messaging.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messaging.service.js","sourceRoot":"","sources":["../../src/services/messaging.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { SessionState, ISession, SessionRecorderOptions, SessionRecorderEvents } from './types';
|
|
2
|
+
import './index.scss';
|
|
3
|
+
import { SessionType } from '@multiplayer-app/session-recorder-common';
|
|
4
|
+
import { ISessionRecorder } from './types';
|
|
5
|
+
import { Observable } from 'lib0/observable';
|
|
6
|
+
import { NavigationRecorderPublicApi } from './navigation';
|
|
7
|
+
export declare class SessionRecorder extends Observable<SessionRecorderEvents> implements ISessionRecorder {
|
|
8
|
+
private _configs;
|
|
9
|
+
private _apiService;
|
|
10
|
+
private _tracer;
|
|
11
|
+
private _recorder;
|
|
12
|
+
private _sessionWidget;
|
|
13
|
+
private _navigationRecorder;
|
|
14
|
+
private _startRequestController;
|
|
15
|
+
get navigation(): NavigationRecorderPublicApi;
|
|
16
|
+
private _isInitialized;
|
|
17
|
+
get isInitialized(): boolean;
|
|
18
|
+
private _sessionId;
|
|
19
|
+
get sessionId(): string | null;
|
|
20
|
+
set sessionId(sessionId: string | null);
|
|
21
|
+
private _sessionType;
|
|
22
|
+
get sessionType(): SessionType;
|
|
23
|
+
set sessionType(sessionType: SessionType);
|
|
24
|
+
get continuousRecording(): boolean;
|
|
25
|
+
private _sessionState;
|
|
26
|
+
get sessionState(): SessionState | null;
|
|
27
|
+
set sessionState(state: SessionState | null);
|
|
28
|
+
private _session;
|
|
29
|
+
get session(): ISession | null;
|
|
30
|
+
set session(session: ISession | null);
|
|
31
|
+
private _sessionAttributes;
|
|
32
|
+
get sessionAttributes(): Record<string, any>;
|
|
33
|
+
set sessionAttributes(attributes: Record<string, any> | null);
|
|
34
|
+
/**
|
|
35
|
+
* Error message getter and setter
|
|
36
|
+
*/
|
|
37
|
+
private _error;
|
|
38
|
+
get error(): string;
|
|
39
|
+
set error(v: string);
|
|
40
|
+
/**
|
|
41
|
+
* Returns the HTML button element for the session widget's recorder button.
|
|
42
|
+
*
|
|
43
|
+
* This element is used to control the start/stop recording functionality in the session widget UI.
|
|
44
|
+
*
|
|
45
|
+
* @returns {HTMLButtonElement} The recorder button element from the session widget.
|
|
46
|
+
*/
|
|
47
|
+
get sessionWidgetButtonElement(): HTMLButtonElement;
|
|
48
|
+
/**
|
|
49
|
+
* Initialize debugger with default or custom configurations
|
|
50
|
+
*/
|
|
51
|
+
constructor();
|
|
52
|
+
/**
|
|
53
|
+
* Initialize the session debugger
|
|
54
|
+
* @param configs - custom configurations for session debugger
|
|
55
|
+
*/
|
|
56
|
+
init(configs: SessionRecorderOptions): void;
|
|
57
|
+
/**
|
|
58
|
+
* Save the continuous recording session
|
|
59
|
+
*/
|
|
60
|
+
save(): Promise<any>;
|
|
61
|
+
/**
|
|
62
|
+
* Start a new session
|
|
63
|
+
* @param type - the type of session to start
|
|
64
|
+
* @param session - the session to start
|
|
65
|
+
*/
|
|
66
|
+
start(type?: SessionType, session?: ISession): void;
|
|
67
|
+
/**
|
|
68
|
+
* Stop the current session with an optional comment
|
|
69
|
+
* @param comment - user-provided comment to include in session session attributes
|
|
70
|
+
*/
|
|
71
|
+
stop(comment?: string): Promise<void>;
|
|
72
|
+
/**
|
|
73
|
+
* Pause the current session
|
|
74
|
+
*/
|
|
75
|
+
pause(): Promise<void>;
|
|
76
|
+
/**
|
|
77
|
+
* Resume the current session
|
|
78
|
+
*/
|
|
79
|
+
resume(): Promise<void>;
|
|
80
|
+
/**
|
|
81
|
+
* Cancel the current session
|
|
82
|
+
*/
|
|
83
|
+
cancel(): Promise<void>;
|
|
84
|
+
/**
|
|
85
|
+
* Set the session attributes
|
|
86
|
+
* @param attributes - the attributes to set
|
|
87
|
+
*/
|
|
88
|
+
setSessionAttributes(attributes: Record<string, any>): void;
|
|
89
|
+
/**
|
|
90
|
+
* Updates the button click handler in the library.
|
|
91
|
+
* @param handler - A function that will be invoked when the button is clicked.
|
|
92
|
+
* The function receives the click event as its parameter and
|
|
93
|
+
* should return `false` to prevent the default button action,
|
|
94
|
+
* or `true` (or nothing) to allow it.
|
|
95
|
+
*/
|
|
96
|
+
set recordingButtonClickHandler(handler: () => boolean | void);
|
|
97
|
+
/**
|
|
98
|
+
* @description Check if session should be started/stopped automatically
|
|
99
|
+
* @param {ISession} [sessionPayload]
|
|
100
|
+
* @returns {Promise<void>}
|
|
101
|
+
*/
|
|
102
|
+
checkRemoteContinuousSession(sessionPayload?: Omit<ISession, '_id' | 'shortId'>): Promise<void>;
|
|
103
|
+
/**
|
|
104
|
+
* Register session widget event listeners for controlling session actions
|
|
105
|
+
*/
|
|
106
|
+
private _registerWidgetEvents;
|
|
107
|
+
/**
|
|
108
|
+
* Register session limit reaching listeners for controlling session end
|
|
109
|
+
*/
|
|
110
|
+
private _registerSessionLimitReach;
|
|
111
|
+
/**
|
|
112
|
+
* Register session auto creation listeners during continuous recording
|
|
113
|
+
*/
|
|
114
|
+
private _registerSessionAutoCreation;
|
|
115
|
+
/**
|
|
116
|
+
* Create a new session and start it
|
|
117
|
+
*/
|
|
118
|
+
private _createSessionAndStart;
|
|
119
|
+
/**
|
|
120
|
+
* Start tracing and recording for the session
|
|
121
|
+
*/
|
|
122
|
+
private _start;
|
|
123
|
+
/**
|
|
124
|
+
* Stop tracing and recording for the session
|
|
125
|
+
*/
|
|
126
|
+
private _stop;
|
|
127
|
+
/**
|
|
128
|
+
* Pause the session tracing and recording
|
|
129
|
+
*/
|
|
130
|
+
private _pause;
|
|
131
|
+
/**
|
|
132
|
+
* Resume the session tracing and recording
|
|
133
|
+
*/
|
|
134
|
+
private _resume;
|
|
135
|
+
private _setupSessionAndStart;
|
|
136
|
+
/**
|
|
137
|
+
* Set the session ID in localStorage
|
|
138
|
+
* @param sessionId - the session ID to set or clear
|
|
139
|
+
*/
|
|
140
|
+
private _setSession;
|
|
141
|
+
private _clearSession;
|
|
142
|
+
/**
|
|
143
|
+
* Check the operation validity based on the session state and action
|
|
144
|
+
* @param action - action being checked ('init', 'start', 'stop', 'cancel', 'pause', 'resume')
|
|
145
|
+
*/
|
|
146
|
+
private _checkOperation;
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=sessionRecorder.d.ts.map
|