@multiplayer-app/session-recorder-node 0.0.4 → 0.0.6
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/config.d.ts +3 -0
- package/dist/config.js +10 -0
- package/dist/config.js.map +1 -0
- package/dist/helper.d.ts +2 -0
- package/dist/helper.d.ts.map +1 -0
- package/dist/helper.js +15 -0
- package/dist/helper.js.map +1 -0
- package/dist/services/api.service.d.ts +85 -0
- package/dist/services/api.service.js +117 -0
- package/dist/services/api.service.js.map +1 -0
- package/dist/types.d.ts +27 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/package.json +1 -1
package/dist/config.d.ts
ADDED
package/dist/config.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.SESSION_RECORDER_VERSION = exports.MULTIPLAYER_BASE_API_URL = void 0;
|
|
7
|
+
const package_json_1 = __importDefault(require("../package.json"));
|
|
8
|
+
exports.MULTIPLAYER_BASE_API_URL = process.env.MULTIPLAYER_BASE_API_URL || 'https://api.multiplayer.app';
|
|
9
|
+
exports.SESSION_RECORDER_VERSION = process.env.SESSION_RECORDER_VERSION || package_json_1.default.version;
|
|
10
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;;AAAA,mEAAkC;AAErB,QAAA,wBAAwB,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,6BAA6B,CAAA;AAEhG,QAAA,wBAAwB,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,sBAAG,CAAC,OAAO,CAAA"}
|
package/dist/helper.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helper.d.ts","sourceRoot":"","sources":["../src/helper.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,GAAI,SAAI,EAAE,aAAQ,WAY9C,CAAA"}
|
package/dist/helper.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getFormattedDate = void 0;
|
|
4
|
+
const getFormattedDate = (date, options) => {
|
|
5
|
+
return new Date(date).toLocaleDateString('en-US', options || {
|
|
6
|
+
month: 'short',
|
|
7
|
+
year: 'numeric',
|
|
8
|
+
day: 'numeric',
|
|
9
|
+
hour: 'numeric',
|
|
10
|
+
minute: '2-digit',
|
|
11
|
+
second: '2-digit',
|
|
12
|
+
});
|
|
13
|
+
};
|
|
14
|
+
exports.getFormattedDate = getFormattedDate;
|
|
15
|
+
//# sourceMappingURL=helper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helper.js","sourceRoot":"","sources":["../src/helper.ts"],"names":[],"mappings":";;;AAAO,MAAM,gBAAgB,GAAG,CAAC,IAAI,EAAE,OAAQ,EAAE,EAAE;IACjD,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,kBAAkB,CACtC,OAAO,EACP,OAAO,IAAI;QACT,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,SAAS;QACf,GAAG,EAAE,SAAS;QACd,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,SAAS;QACjB,MAAM,EAAE,SAAS;KAClB,CACF,CAAA;AACH,CAAC,CAAA;AAZY,QAAA,gBAAgB,oBAY5B"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { ISession } from '../types';
|
|
2
|
+
export interface ApiServiceConfig {
|
|
3
|
+
apiKey?: string;
|
|
4
|
+
exporterApiBaseUrl?: string;
|
|
5
|
+
continuousDebugging?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export interface StartSessionRequest {
|
|
8
|
+
name?: string;
|
|
9
|
+
resourceAttributes?: Record<string, any>;
|
|
10
|
+
sessionAttributes?: Record<string, any>;
|
|
11
|
+
tags?: {
|
|
12
|
+
key?: string;
|
|
13
|
+
value: string;
|
|
14
|
+
}[];
|
|
15
|
+
}
|
|
16
|
+
export interface StopSessionRequest {
|
|
17
|
+
sessionAttributes?: {
|
|
18
|
+
email?: string;
|
|
19
|
+
comment?: string;
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
export declare class ApiService {
|
|
23
|
+
private config;
|
|
24
|
+
constructor();
|
|
25
|
+
/**
|
|
26
|
+
* Initialize the API service
|
|
27
|
+
* @param config - API service configuration
|
|
28
|
+
*/
|
|
29
|
+
init(config: ApiServiceConfig): void;
|
|
30
|
+
/**
|
|
31
|
+
* Update the API service configuration
|
|
32
|
+
* @param config - Partial configuration to update
|
|
33
|
+
*/
|
|
34
|
+
updateConfigs(config: Partial<ApiServiceConfig>): void;
|
|
35
|
+
/**
|
|
36
|
+
* Start a new debug session
|
|
37
|
+
* @param requestBody - Session start request data
|
|
38
|
+
* @param signal - Optional AbortSignal for request cancellation
|
|
39
|
+
*/
|
|
40
|
+
startSession(requestBody: StartSessionRequest, signal?: AbortSignal): Promise<ISession>;
|
|
41
|
+
/**
|
|
42
|
+
* Stop an active debug session
|
|
43
|
+
* @param sessionId - ID of the session to stop
|
|
44
|
+
* @param requestBody - Session stop request data
|
|
45
|
+
*/
|
|
46
|
+
stopSession(sessionId: string, requestBody: StopSessionRequest): Promise<any>;
|
|
47
|
+
/**
|
|
48
|
+
* Cancel an active session
|
|
49
|
+
* @param sessionId - ID of the session to cancel
|
|
50
|
+
*/
|
|
51
|
+
cancelSession(sessionId: string): Promise<any>;
|
|
52
|
+
/**
|
|
53
|
+
* Start a new session
|
|
54
|
+
* @param requestBody - Session start request data
|
|
55
|
+
* @param signal - Optional AbortSignal for request cancellation
|
|
56
|
+
*/
|
|
57
|
+
startContinuousSession(requestBody: StartSessionRequest, signal?: AbortSignal): Promise<any>;
|
|
58
|
+
/**
|
|
59
|
+
* Save a continuous session
|
|
60
|
+
* @param sessionId - ID of the session to save
|
|
61
|
+
* @param requestBody - Session save request data
|
|
62
|
+
* @param signal - Optional AbortSignal for request cancellation
|
|
63
|
+
*/
|
|
64
|
+
saveContinuousSession(sessionId: string, requestBody: StartSessionRequest, signal?: AbortSignal): Promise<any>;
|
|
65
|
+
/**
|
|
66
|
+
* Cancel an active debug session
|
|
67
|
+
* @param sessionId - ID of the session to cancel
|
|
68
|
+
*/
|
|
69
|
+
stopContinuousSession(sessionId: string): Promise<any>;
|
|
70
|
+
/**
|
|
71
|
+
* Check debug session should be started remotely
|
|
72
|
+
*/
|
|
73
|
+
checkRemoteSession(requestBody: StartSessionRequest, signal?: AbortSignal): Promise<{
|
|
74
|
+
state: 'START' | 'STOP';
|
|
75
|
+
}>;
|
|
76
|
+
/**
|
|
77
|
+
* Make a request to the session API
|
|
78
|
+
* @param path - API endpoint path (relative to the base URL)
|
|
79
|
+
* @param method - HTTP method (GET, POST, PATCH, etc.)
|
|
80
|
+
* @param body - request payload
|
|
81
|
+
* @param signal - AbortSignal to set request's signal
|
|
82
|
+
*/
|
|
83
|
+
private makeRequest;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=api.service.d.ts.map
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ApiService = void 0;
|
|
4
|
+
const config_1 = require("../config");
|
|
5
|
+
class ApiService {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.config = {
|
|
8
|
+
exporterApiBaseUrl: config_1.MULTIPLAYER_BASE_API_URL,
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Initialize the API service
|
|
13
|
+
* @param config - API service configuration
|
|
14
|
+
*/
|
|
15
|
+
init(config) {
|
|
16
|
+
this.config = { ...this.config, ...config };
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Update the API service configuration
|
|
20
|
+
* @param config - Partial configuration to update
|
|
21
|
+
*/
|
|
22
|
+
updateConfigs(config) {
|
|
23
|
+
this.config = { ...this.config, ...config };
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Start a new debug session
|
|
27
|
+
* @param requestBody - Session start request data
|
|
28
|
+
* @param signal - Optional AbortSignal for request cancellation
|
|
29
|
+
*/
|
|
30
|
+
async startSession(requestBody, signal) {
|
|
31
|
+
return this.makeRequest('/debug-sessions/start', 'POST', requestBody, signal);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Stop an active debug session
|
|
35
|
+
* @param sessionId - ID of the session to stop
|
|
36
|
+
* @param requestBody - Session stop request data
|
|
37
|
+
*/
|
|
38
|
+
async stopSession(sessionId, requestBody) {
|
|
39
|
+
return this.makeRequest(`/debug-sessions/${sessionId}/stop`, 'PATCH', requestBody);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Cancel an active session
|
|
43
|
+
* @param sessionId - ID of the session to cancel
|
|
44
|
+
*/
|
|
45
|
+
async cancelSession(sessionId) {
|
|
46
|
+
return this.makeRequest(`/debug-sessions/${sessionId}/cancel`, 'DELETE');
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Start a new session
|
|
50
|
+
* @param requestBody - Session start request data
|
|
51
|
+
* @param signal - Optional AbortSignal for request cancellation
|
|
52
|
+
*/
|
|
53
|
+
async startContinuousSession(requestBody, signal) {
|
|
54
|
+
return this.makeRequest('/continuous-debug-sessions/start', 'POST', requestBody, signal);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Save a continuous session
|
|
58
|
+
* @param sessionId - ID of the session to save
|
|
59
|
+
* @param requestBody - Session save request data
|
|
60
|
+
* @param signal - Optional AbortSignal for request cancellation
|
|
61
|
+
*/
|
|
62
|
+
async saveContinuousSession(sessionId, requestBody, signal) {
|
|
63
|
+
return this.makeRequest(`/continuous-debug-sessions/${sessionId}/save`, 'POST', requestBody, signal);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Cancel an active debug session
|
|
67
|
+
* @param sessionId - ID of the session to cancel
|
|
68
|
+
*/
|
|
69
|
+
async stopContinuousSession(sessionId) {
|
|
70
|
+
return this.makeRequest(`/continuous-debug-sessions/${sessionId}/cancel`, 'DELETE');
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Check debug session should be started remotely
|
|
74
|
+
*/
|
|
75
|
+
async checkRemoteSession(requestBody, signal) {
|
|
76
|
+
return this.makeRequest(`/remote-debug-session/check`, 'POST', requestBody, signal);
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Make a request to the session API
|
|
80
|
+
* @param path - API endpoint path (relative to the base URL)
|
|
81
|
+
* @param method - HTTP method (GET, POST, PATCH, etc.)
|
|
82
|
+
* @param body - request payload
|
|
83
|
+
* @param signal - AbortSignal to set request's signal
|
|
84
|
+
*/
|
|
85
|
+
async makeRequest(path, method, body, signal) {
|
|
86
|
+
const url = `${this.config.exporterApiBaseUrl}/v0/radar${path}`;
|
|
87
|
+
const params = {
|
|
88
|
+
method,
|
|
89
|
+
body: body ? JSON.stringify(body) : null,
|
|
90
|
+
headers: {
|
|
91
|
+
'Content-Type': 'application/json',
|
|
92
|
+
...(this.config.apiKey && { 'X-Api-Key': this.config.apiKey }),
|
|
93
|
+
},
|
|
94
|
+
};
|
|
95
|
+
try {
|
|
96
|
+
const response = await fetch(url, {
|
|
97
|
+
...params,
|
|
98
|
+
credentials: 'include',
|
|
99
|
+
signal,
|
|
100
|
+
});
|
|
101
|
+
if (!response.ok) {
|
|
102
|
+
throw new Error('Network response was not ok: ' + response.statusText);
|
|
103
|
+
}
|
|
104
|
+
if (response.status === 204) {
|
|
105
|
+
return null;
|
|
106
|
+
}
|
|
107
|
+
return await response.json();
|
|
108
|
+
}
|
|
109
|
+
catch (error) {
|
|
110
|
+
if ((error === null || error === void 0 ? void 0 : error.name) === 'AbortError') {
|
|
111
|
+
throw new Error('Request aborted');
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
exports.ApiService = ApiService;
|
|
117
|
+
//# sourceMappingURL=api.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.service.js","sourceRoot":"","sources":["../../src/services/api.service.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export interface ISession {
|
|
2
|
+
_id?: string;
|
|
3
|
+
shortId?: string;
|
|
4
|
+
name?: string;
|
|
5
|
+
resourceAttributes?: {
|
|
6
|
+
browserInfo?: string;
|
|
7
|
+
cookiesEnabled?: string;
|
|
8
|
+
deviceInfo?: string;
|
|
9
|
+
hardwareConcurrency?: string;
|
|
10
|
+
osInfo?: string;
|
|
11
|
+
pixelRatio?: string;
|
|
12
|
+
screenSize?: string;
|
|
13
|
+
} & object;
|
|
14
|
+
sessionAttributes?: {
|
|
15
|
+
userEmail?: string;
|
|
16
|
+
userId?: string;
|
|
17
|
+
userName?: string;
|
|
18
|
+
accountId?: string;
|
|
19
|
+
accountName?: string;
|
|
20
|
+
comment?: string;
|
|
21
|
+
} & object;
|
|
22
|
+
tags?: {
|
|
23
|
+
key?: string;
|
|
24
|
+
value: string;
|
|
25
|
+
}[];
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACvB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,kBAAkB,CAAC,EAAE;QACnB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GAAG,MAAM,CAAA;IACV,iBAAiB,CAAC,EAAE;QAClB,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,CAAC;QAErB,OAAO,CAAC,EAAE,MAAM,CAAA;KAEjB,GAAG,MAAM,CAAA;IACV,IAAI,CAAC,EAAE;QACL,GAAG,CAAC,EAAE,MAAM,CAAA;QACZ,KAAK,EAAE,MAAM,CAAA;KACd,EAAE,CAAA;CACJ"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|