fcr-core 3.8.0-alpha → 3.8.1-alpha
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/lib/chat-connection/index.js +26 -40
- package/lib/engine/index.js +72 -66
- package/lib/imports.js +0 -1
- package/lib/media-control/desktop.js +13 -18
- package/lib/media-control/mobile.js +13 -18
- package/lib/monitor-control/index.js +5 -10
- package/lib/peer-session/index.js +39 -47
- package/lib/plugins/chatroom.js +213 -229
- package/lib/room-control/ability-control/index.js +9 -14
- package/lib/room-control/group-control/index.js +16 -21
- package/lib/room-control/helpers/validation-helper.js +1 -1
- package/lib/room-control/index.js +36 -53
- package/lib/room-control/interpreter-control/index.js +34 -47
- package/lib/room-control/interpreter-control/room.js +4 -6
- package/lib/room-control/join-before-host-waitingroom-control/index.js +4 -6
- package/lib/room-control/mainroom-control/index.js +27 -35
- package/lib/room-control/privilege-control/helper.js +5 -8
- package/lib/room-control/privilege-control/index.js +19 -26
- package/lib/room-control/room-connector-control/index.js +19 -28
- package/lib/room-control/room-control-factory.js +1 -2
- package/lib/room-control/room-session/index.js +39 -46
- package/lib/room-control/shared-cache.js +29 -36
- package/lib/room-control/sharing-control/index.d.ts +1 -1
- package/lib/room-control/sharing-control/index.js +34 -42
- package/lib/room-control/stream-control/index.js +191 -195
- package/lib/room-control/stream-control/type.d.ts +1 -1
- package/lib/room-control/stt-control/de-compress-gzip.js +0 -10
- package/lib/room-control/stt-control/index.js +95 -98
- package/lib/room-control/stt-control/type.d.ts +1 -1
- package/lib/room-control/user-control/index.js +136 -143
- package/lib/room-control/waitingroom-control/index.js +9 -14
- package/lib/room-control/whiteboard-control/utils.js +2 -4
- package/lib/room-control/whiteboard-control-v1/board-subwindow.js +1 -2
- package/lib/room-control/whiteboard-control-v1/board-window.js +88 -99
- package/lib/room-control/whiteboard-control-v1/factory.js +4 -7
- package/lib/room-control/whiteboard-control-v1/index.js +28 -40
- package/lib/room-control/whiteboard-control-v1/mount-manager.js +2 -4
- package/lib/room-control/whiteboard-control-v1/utils.js +14 -17
- package/lib/room-control/whiteboard-control-v2/annotation-control/control.js +4 -6
- package/lib/room-control/whiteboard-control-v2/annotation-control/factory.js +5 -10
- package/lib/room-control/whiteboard-control-v2/base/index.js +34 -41
- package/lib/room-control/whiteboard-control-v2/base/main-window.js +24 -29
- package/lib/room-control/whiteboard-control-v2/utils.js +6 -7
- package/lib/room-control/whiteboard-control-v2/whiteboard-control/control.d.ts +0 -1
- package/lib/room-control/whiteboard-control-v2/whiteboard-control/control.js +23 -34
- package/lib/room-control/whiteboard-control-v2/whiteboard-control/factory.js +7 -14
- package/lib/room-router/index.js +47 -53
- package/lib/room-router/type.d.ts +2 -2
- package/lib/service/api.js +227 -250
- package/lib/utilities/collection.js +2 -3
- package/lib/utilities/error-helpers.js +27 -34
- package/lib/utilities/error.js +8 -9
- package/lib/utilities/join-helper.js +25 -32
- package/lib/utilities/logger.js +3 -6
- package/lib/utilities/parameters.js +4 -8
- package/lib/utilities/retry-helpers.js +0 -1
- package/lib/utilities/stream.js +11 -16
- package/lib/utilities/user.js +3 -4
- package/lib/utilities/validate-params.js +1 -2
- package/package.json +5 -6
|
@@ -5,9 +5,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.iterateSet = exports.iterateMap = exports.convertToStructure = void 0;
|
|
7
7
|
require("core-js/modules/es.array.push.js");
|
|
8
|
-
require("core-js/modules/web.dom-collections.iterator.js");
|
|
9
8
|
const iterateMap = (map, processors) => {
|
|
10
|
-
const onFilter =
|
|
9
|
+
const onFilter = processors?.onFilter || (() => true);
|
|
11
10
|
const {
|
|
12
11
|
onMap,
|
|
13
12
|
onReduce
|
|
@@ -27,7 +26,7 @@ const iterateMap = (map, processors) => {
|
|
|
27
26
|
};
|
|
28
27
|
exports.iterateMap = iterateMap;
|
|
29
28
|
const iterateSet = (map, processors) => {
|
|
30
|
-
const onFilter =
|
|
29
|
+
const onFilter = processors?.onFilter || (() => true);
|
|
31
30
|
const {
|
|
32
31
|
onMap,
|
|
33
32
|
onReduce
|
|
@@ -1,18 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
require("core-js/modules/es.array.push.js");
|
|
4
|
-
require("core-js/modules/esnext.iterator.constructor.js");
|
|
5
|
-
require("core-js/modules/esnext.iterator.filter.js");
|
|
6
|
-
require("core-js/modules/esnext.iterator.for-each.js");
|
|
7
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
8
3
|
Object.defineProperty(exports, "__esModule", {
|
|
9
4
|
value: true
|
|
10
5
|
});
|
|
11
6
|
exports.roomControlErrorHelper = exports.liveStreamingErrorHelper = exports.engineErrorHelper = exports.defaultErrorHelper = exports.FcrErrorHelper = exports.ControllerType = void 0;
|
|
12
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
7
|
var _error = require("./error");
|
|
14
|
-
|
|
15
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } /**
|
|
8
|
+
/**
|
|
16
9
|
* 通用错误处理辅助工具
|
|
17
10
|
*
|
|
18
11
|
* 提供统一的错误创建和处理机制,支持实例化配置
|
|
@@ -42,14 +35,14 @@ let ControllerType = exports.ControllerType = /*#__PURE__*/function (ControllerT
|
|
|
42
35
|
* 错误处理助手类 - 支持实例化配置
|
|
43
36
|
*/
|
|
44
37
|
class FcrErrorHelper {
|
|
45
|
-
constructor() {
|
|
46
|
-
|
|
47
|
-
this.config = _objectSpread({
|
|
38
|
+
constructor(config = {}) {
|
|
39
|
+
this.config = {
|
|
48
40
|
defaultModuleCode: _error.FcrErrorModuleCode.ROOM,
|
|
49
41
|
enableDetailedMessages: true,
|
|
50
42
|
logPrefix: 'FCR',
|
|
51
|
-
autoLog: false
|
|
52
|
-
|
|
43
|
+
autoLog: false,
|
|
44
|
+
...config
|
|
45
|
+
};
|
|
53
46
|
}
|
|
54
47
|
/**
|
|
55
48
|
* 生成控制器未初始化错误
|
|
@@ -58,11 +51,11 @@ class FcrErrorHelper {
|
|
|
58
51
|
* @returns FcrError
|
|
59
52
|
*/
|
|
60
53
|
createControllerNotInitializedError(controllerType, moduleCode) {
|
|
61
|
-
const module = moduleCode
|
|
62
|
-
const message = this.config.enableDetailedMessages ?
|
|
54
|
+
const module = moduleCode ?? this.config.defaultModuleCode;
|
|
55
|
+
const message = this.config.enableDetailedMessages ? `[${this.config.logPrefix}] The ${controllerType} controller is not initialized, please join the room first` : `${controllerType} controller not initialized`;
|
|
63
56
|
const error = (0, _error.generateFcrCoreClientErrorNew)(module, _error.FcrErrorCode.NOT_JOINED_ROOM, message);
|
|
64
57
|
if (this.config.autoLog) {
|
|
65
|
-
console.error(
|
|
58
|
+
console.error(`${this.config.logPrefix}: ${message}`);
|
|
66
59
|
}
|
|
67
60
|
return error;
|
|
68
61
|
}
|
|
@@ -75,11 +68,11 @@ class FcrErrorHelper {
|
|
|
75
68
|
* @returns FcrError
|
|
76
69
|
*/
|
|
77
70
|
createOperationConflictError(operation, reason, moduleCode) {
|
|
78
|
-
const module = moduleCode
|
|
79
|
-
const message = this.config.enableDetailedMessages ?
|
|
71
|
+
const module = moduleCode ?? this.config.defaultModuleCode;
|
|
72
|
+
const message = this.config.enableDetailedMessages ? `[${this.config.logPrefix}] Failed to ${operation}: ${reason}` : `${operation} failed: ${reason}`;
|
|
80
73
|
const error = (0, _error.generateFcrCoreClientErrorNew)(module, _error.FcrErrorCode.JOIN_CONFLICT, message);
|
|
81
74
|
if (this.config.autoLog) {
|
|
82
|
-
console.error(
|
|
75
|
+
console.error(`${this.config.logPrefix}: ${message}`);
|
|
83
76
|
}
|
|
84
77
|
return error;
|
|
85
78
|
}
|
|
@@ -91,11 +84,11 @@ class FcrErrorHelper {
|
|
|
91
84
|
* @returns FcrError
|
|
92
85
|
*/
|
|
93
86
|
createOperationCanceledError(operation, moduleCode) {
|
|
94
|
-
const module = moduleCode
|
|
95
|
-
const message = this.config.enableDetailedMessages ?
|
|
87
|
+
const module = moduleCode ?? this.config.defaultModuleCode;
|
|
88
|
+
const message = this.config.enableDetailedMessages ? `[${this.config.logPrefix}] ${operation} operation has been cancelled` : `${operation} cancelled`;
|
|
96
89
|
const error = (0, _error.generateFcrCoreClientErrorNew)(module, _error.FcrErrorCode.NOT_JOINED_ROOM, message);
|
|
97
90
|
if (this.config.autoLog) {
|
|
98
|
-
console.error(
|
|
91
|
+
console.error(`${this.config.logPrefix}: ${message}`);
|
|
99
92
|
}
|
|
100
93
|
return error;
|
|
101
94
|
}
|
|
@@ -107,11 +100,11 @@ class FcrErrorHelper {
|
|
|
107
100
|
* @returns FcrError
|
|
108
101
|
*/
|
|
109
102
|
createSendMessageError(originalError, moduleCode) {
|
|
110
|
-
const module = moduleCode
|
|
111
|
-
const message = this.config.enableDetailedMessages ?
|
|
103
|
+
const module = moduleCode ?? this.config.defaultModuleCode;
|
|
104
|
+
const message = this.config.enableDetailedMessages ? `[${this.config.logPrefix}] Send message failed: ${originalError.message}` : 'send message failed';
|
|
112
105
|
const error = (0, _error.generateFcrCoreClientErrorNew)(module, _error.FcrErrorCode.UNDEFINED_ERROR, message);
|
|
113
106
|
if (this.config.autoLog) {
|
|
114
|
-
console.error(
|
|
107
|
+
console.error(`${this.config.logPrefix}: ${message}`, originalError);
|
|
115
108
|
}
|
|
116
109
|
return error;
|
|
117
110
|
}
|
|
@@ -124,11 +117,11 @@ class FcrErrorHelper {
|
|
|
124
117
|
* @returns FcrError
|
|
125
118
|
*/
|
|
126
119
|
createOperationError(operation, originalError, moduleCode) {
|
|
127
|
-
const module = moduleCode
|
|
128
|
-
const message = this.config.enableDetailedMessages ?
|
|
120
|
+
const module = moduleCode ?? this.config.defaultModuleCode;
|
|
121
|
+
const message = this.config.enableDetailedMessages ? `[${this.config.logPrefix}] ${operation} failed${originalError ? `: ${originalError.message}` : ''}` : `${operation} failed`;
|
|
129
122
|
const error = (0, _error.generateFcrCoreClientErrorNew)(module, _error.FcrErrorCode.NOT_JOINED_ROOM, message);
|
|
130
123
|
if (this.config.autoLog) {
|
|
131
|
-
console.error(
|
|
124
|
+
console.error(`${this.config.logPrefix}: ${message}`, originalError);
|
|
132
125
|
}
|
|
133
126
|
return error;
|
|
134
127
|
}
|
|
@@ -140,11 +133,11 @@ class FcrErrorHelper {
|
|
|
140
133
|
* @returns FcrError
|
|
141
134
|
*/
|
|
142
135
|
createNetworkError(message, moduleCode) {
|
|
143
|
-
const module = moduleCode
|
|
144
|
-
const formattedMessage = this.config.enableDetailedMessages ?
|
|
136
|
+
const module = moduleCode ?? this.config.defaultModuleCode;
|
|
137
|
+
const formattedMessage = this.config.enableDetailedMessages ? `[${this.config.logPrefix}] Network error: ${message}` : message;
|
|
145
138
|
const error = (0, _error.generateFcrCoreClientErrorNew)(module, _error.FcrErrorCode.LOCAL_HTTP_REQUEST_FAILED, formattedMessage);
|
|
146
139
|
if (this.config.autoLog) {
|
|
147
|
-
console.error(
|
|
140
|
+
console.error(`${this.config.logPrefix}: ${formattedMessage}`);
|
|
148
141
|
}
|
|
149
142
|
return error;
|
|
150
143
|
}
|
|
@@ -157,11 +150,11 @@ class FcrErrorHelper {
|
|
|
157
150
|
* @returns FcrError
|
|
158
151
|
*/
|
|
159
152
|
createInvalidParamsError(paramName, reason, moduleCode) {
|
|
160
|
-
const module = moduleCode
|
|
161
|
-
const message = this.config.enableDetailedMessages ?
|
|
153
|
+
const module = moduleCode ?? this.config.defaultModuleCode;
|
|
154
|
+
const message = this.config.enableDetailedMessages ? `[${this.config.logPrefix}] Invalid parameter '${paramName}': ${reason}` : `Invalid parameter '${paramName}': ${reason}`;
|
|
162
155
|
const error = (0, _error.generateFcrCoreClientErrorNew)(module, _error.FcrErrorCode.INVALID_PARAMS, message);
|
|
163
156
|
if (this.config.autoLog) {
|
|
164
|
-
console.error(
|
|
157
|
+
console.error(`${this.config.logPrefix}: ${message}`);
|
|
165
158
|
}
|
|
166
159
|
return error;
|
|
167
160
|
}
|
package/lib/utilities/error.js
CHANGED
|
@@ -55,9 +55,9 @@ const generateFcrCoreClientError = (module, code, message, origin) => {
|
|
|
55
55
|
const errorType = (0, _imports.padEnd)(String(FcrErrorCodeType.CLIENT), 3, '0'); // 如:'100'
|
|
56
56
|
const moduleCode = (0, _imports.padStart)(String(module), 3, '0'); // 如:'020'
|
|
57
57
|
const errorCode = (0, _imports.padStart)(String(code), 3, '0'); // 如:'001'
|
|
58
|
-
const fullErrorCode = Number(
|
|
58
|
+
const fullErrorCode = Number(`${errorType}${moduleCode}${errorCode}`); // 如:'100020001'
|
|
59
59
|
|
|
60
|
-
const errorMessage =
|
|
60
|
+
const errorMessage = `domain: RTE-CLIENT, info: ${message}`;
|
|
61
61
|
return new _imports.FcrError({
|
|
62
62
|
code: fullErrorCode,
|
|
63
63
|
message: errorMessage
|
|
@@ -65,7 +65,7 @@ const generateFcrCoreClientError = (module, code, message, origin) => {
|
|
|
65
65
|
};
|
|
66
66
|
exports.generateFcrCoreClientError = generateFcrCoreClientError;
|
|
67
67
|
const generateFcrCoreServerError = (code, message, origin) => {
|
|
68
|
-
const errorCode = Number(
|
|
68
|
+
const errorCode = Number(`${FcrErrorCodeType.SERVER}${(0, _imports.padStart)(String(code), 8, '0')}`);
|
|
69
69
|
const error = new _imports.FcrError({
|
|
70
70
|
message: message,
|
|
71
71
|
code: errorCode
|
|
@@ -80,11 +80,10 @@ const handleRequestError = async (action, errorModuleCode, errorMessage) => {
|
|
|
80
80
|
return await action();
|
|
81
81
|
} catch (e) {
|
|
82
82
|
if (e instanceof _imports.AgoraRestfulClientError) {
|
|
83
|
-
|
|
84
|
-
throw generateFcrCoreServerError((_e$serviceCode = e.serviceCode) !== null && _e$serviceCode !== void 0 ? _e$serviceCode : -1, e.message, e);
|
|
83
|
+
throw generateFcrCoreServerError(e.serviceCode ?? -1, e.message, e);
|
|
85
84
|
}
|
|
86
85
|
const error = e;
|
|
87
|
-
throw generateFcrCoreClientError(errorModuleCode, FcrErrorCode.UNDEFINED_ERROR, errorMessage
|
|
86
|
+
throw generateFcrCoreClientError(errorModuleCode, FcrErrorCode.UNDEFINED_ERROR, errorMessage ?? error.message, error);
|
|
88
87
|
}
|
|
89
88
|
};
|
|
90
89
|
|
|
@@ -105,9 +104,9 @@ const generateFcrCoreClientErrorNew = (module, code, message) => {
|
|
|
105
104
|
const errorType = (0, _imports.padEnd)(String(FcrErrorCodeType.CLIENT), 3, '0'); // 如:'100'
|
|
106
105
|
const moduleCode = (0, _imports.padStart)(String(module), 3, '0'); // 如:'020'
|
|
107
106
|
const errorCode = (0, _imports.padStart)(String(code), 3, '0'); // 如:'001'
|
|
108
|
-
const fullErrorCode = Number(
|
|
107
|
+
const fullErrorCode = Number(`${errorType}${moduleCode}${errorCode}`); // 如:'100020001'
|
|
109
108
|
|
|
110
|
-
const errorMessage =
|
|
109
|
+
const errorMessage = `domain: RTE-CLIENT, info: ${message}`;
|
|
111
110
|
return new _imports.FcrError({
|
|
112
111
|
code: fullErrorCode,
|
|
113
112
|
message: errorMessage
|
|
@@ -115,7 +114,7 @@ const generateFcrCoreClientErrorNew = (module, code, message) => {
|
|
|
115
114
|
};
|
|
116
115
|
exports.generateFcrCoreClientErrorNew = generateFcrCoreClientErrorNew;
|
|
117
116
|
const generateFcrCoreServerErrorNew = (code, message) => {
|
|
118
|
-
const errorCode = Number(
|
|
117
|
+
const errorCode = Number(`${FcrErrorCodeType.SERVER}${(0, _imports.padStart)(String(code), 8, '0')}`);
|
|
119
118
|
const error = new _imports.FcrError({
|
|
120
119
|
message: message,
|
|
121
120
|
code: errorCode
|
|
@@ -1,29 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
require("core-js/modules/es.array.push.js");
|
|
4
|
-
require("core-js/modules/esnext.iterator.filter.js");
|
|
5
|
-
require("core-js/modules/esnext.iterator.for-each.js");
|
|
6
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
7
3
|
Object.defineProperty(exports, "__esModule", {
|
|
8
4
|
value: true
|
|
9
5
|
});
|
|
10
6
|
exports.FcrJoinHelper = void 0;
|
|
11
7
|
exports.handleJoinRetryFailure = handleJoinRetryFailure;
|
|
12
|
-
require("core-js/modules/es.regexp.exec.js");
|
|
13
8
|
require("core-js/modules/esnext.iterator.constructor.js");
|
|
14
9
|
require("core-js/modules/esnext.iterator.map.js");
|
|
15
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
16
10
|
var _imports = require("../imports");
|
|
17
11
|
var _type = require("../type");
|
|
18
12
|
var _retryHelpers = require("./retry-helpers");
|
|
19
13
|
var _error = require("./error");
|
|
20
14
|
var _constants = require("../room-control/helpers/constants");
|
|
21
|
-
|
|
22
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } /**
|
|
15
|
+
/**
|
|
23
16
|
* 房间加入辅助工具
|
|
24
17
|
*
|
|
25
18
|
* 提供房间控制相关的加入逻辑和参数构建,统一处理 room-control 和 room-router 中的公共逻辑
|
|
26
19
|
*/
|
|
20
|
+
|
|
27
21
|
/**
|
|
28
22
|
* 通用的加入房间重试失败处理器
|
|
29
23
|
* @param error 错误对象
|
|
@@ -34,15 +28,14 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
34
28
|
* @param logPrefix 日志前缀
|
|
35
29
|
* @returns 是否继续重试
|
|
36
30
|
*/
|
|
37
|
-
async function handleJoinRetryFailure(error, waitBeforeRetry, attemptCount, canRetryFn, onAborted) {
|
|
38
|
-
|
|
39
|
-
onAborted === null || onAborted === void 0 || onAborted();
|
|
31
|
+
async function handleJoinRetryFailure(error, waitBeforeRetry, attemptCount, canRetryFn, onAborted, logPrefix = 'join room') {
|
|
32
|
+
onAborted?.();
|
|
40
33
|
if (!canRetryFn(error)) {
|
|
41
34
|
throw error;
|
|
42
35
|
}
|
|
43
36
|
|
|
44
37
|
// 记录重试信息
|
|
45
|
-
console.warn(
|
|
38
|
+
console.warn(`Retry attempt ${attemptCount + 1} to ${logPrefix}: ${error.message}`);
|
|
46
39
|
await waitBeforeRetry();
|
|
47
40
|
return true;
|
|
48
41
|
}
|
|
@@ -73,31 +66,33 @@ class FcrJoinHelper {
|
|
|
73
66
|
* @returns CheckIn参数对象
|
|
74
67
|
*/
|
|
75
68
|
static buildCheckInParams(options, userId, roomId, extraParams) {
|
|
76
|
-
|
|
77
|
-
return _objectSpread(_objectSpread({
|
|
69
|
+
return {
|
|
78
70
|
userName: options.userName,
|
|
79
71
|
userId,
|
|
80
72
|
userRole: _type.FcrUserRoleToStringMap[options.userRole],
|
|
81
73
|
userProperties: options.userProperties,
|
|
82
74
|
roomId,
|
|
83
|
-
platform:
|
|
84
|
-
streams:
|
|
75
|
+
platform: options.platform ?? (0, _imports.getPlatform)(),
|
|
76
|
+
streams: options.createStreamConfigs?.map(s => ({
|
|
85
77
|
videoSourceUuid: s.videoSourceId,
|
|
86
78
|
audioSourceUuid: s.audioSourceId,
|
|
87
|
-
streamName: s.streamName
|
|
88
|
-
|
|
79
|
+
streamName: s.streamName,
|
|
80
|
+
...(0, _imports.convertStreamTypeToPublishState)(s.streamType),
|
|
89
81
|
videoSourceType: s.videoSourceType,
|
|
90
82
|
audioSourceType: s.audioSourceType,
|
|
91
83
|
audioSourceState: s.audioSourceState,
|
|
92
84
|
videoSourceState: s.videoSourceState
|
|
93
85
|
})),
|
|
94
86
|
version: (0, _imports.getVersion)(),
|
|
95
|
-
password: options.password
|
|
96
|
-
|
|
97
|
-
bypass
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
87
|
+
password: options.password,
|
|
88
|
+
// 只有在提供了额外参数时才添加
|
|
89
|
+
...(extraParams?.bypass !== undefined && {
|
|
90
|
+
bypass: extraParams.bypass
|
|
91
|
+
}),
|
|
92
|
+
...(extraParams?.avatar !== undefined && {
|
|
93
|
+
avatar: extraParams.avatar
|
|
94
|
+
})
|
|
95
|
+
};
|
|
101
96
|
}
|
|
102
97
|
|
|
103
98
|
/**
|
|
@@ -122,8 +117,7 @@ class FcrJoinHelper {
|
|
|
122
117
|
* @param useInternalApi 是否使用 checkInInternal API(默认 true)
|
|
123
118
|
* @returns CheckIn响应数据
|
|
124
119
|
*/
|
|
125
|
-
async performCheckIn(options, extraParams) {
|
|
126
|
-
let useInternalApi = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
|
120
|
+
async performCheckIn(options, extraParams, useInternalApi = true) {
|
|
127
121
|
const checkInParams = this._buildCheckInParams(options, extraParams);
|
|
128
122
|
const apiCall = useInternalApi ? () => this._api.checkInInternal(checkInParams) : () => this._api.checkIn(checkInParams);
|
|
129
123
|
const errorMessage = useInternalApi ? 'check in internal failed' : 'check in failed';
|
|
@@ -166,12 +160,11 @@ class FcrJoinHelper {
|
|
|
166
160
|
}
|
|
167
161
|
}, [], {
|
|
168
162
|
retriesMax: _constants.ROOM_CONTROL_CONSTANTS.MAX_JOIN_ATTEMPTS
|
|
169
|
-
}).fail(async
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
} = _ref;
|
|
163
|
+
}).fail(async ({
|
|
164
|
+
error,
|
|
165
|
+
timeFn: waitBeforeRetry,
|
|
166
|
+
currentRetry: attemptCount
|
|
167
|
+
}) => {
|
|
175
168
|
return handleJoinRetryFailure(error, waitBeforeRetry, attemptCount, _retryHelpers.canRetryJoinError, onJoinAborted, 'join room via CheckIn');
|
|
176
169
|
}).exec();
|
|
177
170
|
}
|
package/lib/utilities/logger.js
CHANGED
|
@@ -16,18 +16,15 @@ exports.getLogger = getLogger;
|
|
|
16
16
|
const createLogger = opts => {
|
|
17
17
|
return (0, _imports.createLogger)({
|
|
18
18
|
label: 'fcr-core',
|
|
19
|
-
prefix:
|
|
19
|
+
prefix: `${opts.prefix}@${(0, _imports.randomString)(5)}`
|
|
20
20
|
});
|
|
21
21
|
};
|
|
22
22
|
exports.createLogger = createLogger;
|
|
23
23
|
const generateLogObserver = (logger, callbackMethods) => {
|
|
24
24
|
const observer = {};
|
|
25
25
|
callbackMethods.forEach(method => {
|
|
26
|
-
observer[method] =
|
|
27
|
-
|
|
28
|
-
args[_key] = arguments[_key];
|
|
29
|
-
}
|
|
30
|
-
logger.info("[API Callback] ".concat(method, " [parameters: ").concat((0, _imports.serializeArgs)(args), "]"));
|
|
26
|
+
observer[method] = (...args) => {
|
|
27
|
+
logger.info(`[API Callback] ${method} [parameters: ${(0, _imports.serializeArgs)(args)}]`);
|
|
31
28
|
};
|
|
32
29
|
});
|
|
33
30
|
return observer;
|
|
@@ -11,23 +11,19 @@ const isTrueValue = value => {
|
|
|
11
11
|
};
|
|
12
12
|
exports.isTrueValue = isTrueValue;
|
|
13
13
|
const getCoreIpList = parameters => {
|
|
14
|
-
|
|
15
|
-
return parameters === null || parameters === void 0 || (_parameters$core = parameters.core) === null || _parameters$core === void 0 ? void 0 : _parameters$core.coreIpList;
|
|
14
|
+
return parameters?.core?.coreIpList;
|
|
16
15
|
};
|
|
17
16
|
exports.getCoreIpList = getCoreIpList;
|
|
18
17
|
const getEasemobChatIpList = parameters => {
|
|
19
|
-
|
|
20
|
-
return parameters === null || parameters === void 0 || (_parameters$core2 = parameters.core) === null || _parameters$core2 === void 0 ? void 0 : _parameters$core2.easemobChatIpList;
|
|
18
|
+
return parameters?.core?.easemobChatIpList;
|
|
21
19
|
};
|
|
22
20
|
exports.getEasemobChatIpList = getEasemobChatIpList;
|
|
23
21
|
const getEasemobRestIpList = parameters => {
|
|
24
|
-
|
|
25
|
-
return parameters === null || parameters === void 0 || (_parameters$core3 = parameters.core) === null || _parameters$core3 === void 0 ? void 0 : _parameters$core3.easemobRestIpList;
|
|
22
|
+
return parameters?.core?.easemobRestIpList;
|
|
26
23
|
};
|
|
27
24
|
exports.getEasemobRestIpList = getEasemobRestIpList;
|
|
28
25
|
const isEndpointRegionDisabled = parameters => {
|
|
29
|
-
|
|
30
|
-
return isTrueValue(parameters === null || parameters === void 0 || (_parameters$core4 = parameters.core) === null || _parameters$core4 === void 0 ? void 0 : _parameters$core4.disableEndpointRegion);
|
|
26
|
+
return isTrueValue(parameters?.core?.disableEndpointRegion);
|
|
31
27
|
};
|
|
32
28
|
exports.isEndpointRegionDisabled = isEndpointRegionDisabled;
|
|
33
29
|
const getRtcPresetParameters = () => {
|
|
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.ROOM_NON_RETRYABLE_ERRORS = exports.ROOM_JOIN_NON_RETRYABLE_ERRORS = void 0;
|
|
7
7
|
exports.canRetryError = canRetryError;
|
|
8
8
|
exports.canRetryJoinError = canRetryJoinError;
|
|
9
|
-
require("core-js/modules/web.dom-collections.iterator.js");
|
|
10
9
|
var _imports = require("../imports");
|
|
11
10
|
/**
|
|
12
11
|
* 通用重试辅助工具
|
package/lib/utilities/stream.js
CHANGED
|
@@ -1,31 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
require("core-js/modules/es.array.push.js");
|
|
4
|
-
require("core-js/modules/esnext.iterator.filter.js");
|
|
5
|
-
require("core-js/modules/esnext.iterator.for-each.js");
|
|
6
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
7
3
|
Object.defineProperty(exports, "__esModule", {
|
|
8
4
|
value: true
|
|
9
5
|
});
|
|
10
6
|
exports.getStreamsJoinConfig = exports.getStreamJoinConfig = void 0;
|
|
11
7
|
require("core-js/modules/esnext.iterator.constructor.js");
|
|
12
8
|
require("core-js/modules/esnext.iterator.map.js");
|
|
13
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
14
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
15
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
16
9
|
const getStreamJoinConfig = stream => {
|
|
17
|
-
return
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
10
|
+
return {
|
|
11
|
+
...stream,
|
|
12
|
+
videoSourceUuid: stream?.videoSourceId,
|
|
13
|
+
audioSourceUuid: stream?.audioSourceId
|
|
14
|
+
};
|
|
21
15
|
};
|
|
22
16
|
exports.getStreamJoinConfig = getStreamJoinConfig;
|
|
23
17
|
const getStreamsJoinConfig = streams => {
|
|
24
|
-
return streams
|
|
25
|
-
return
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
18
|
+
return streams?.map(stream => {
|
|
19
|
+
return {
|
|
20
|
+
...stream,
|
|
21
|
+
videoSourceUuid: stream?.videoSourceId,
|
|
22
|
+
audioSourceUuid: stream?.audioSourceId
|
|
23
|
+
};
|
|
29
24
|
});
|
|
30
25
|
};
|
|
31
26
|
exports.getStreamsJoinConfig = getStreamsJoinConfig;
|
package/lib/utilities/user.js
CHANGED
|
@@ -7,13 +7,12 @@ exports.convertStringPrivilegeRoleToFcrPrivilegeRole = exports.convertRteUserToF
|
|
|
7
7
|
var _type = require("../type");
|
|
8
8
|
var _type2 = require("../room-control/privilege-control/type");
|
|
9
9
|
const convertRteUserToFcrUser = (user, cache) => {
|
|
10
|
-
var _cache$getUserPlatfor, _cache$getUserAvatar;
|
|
11
10
|
const userRole = _type.FcrUserStringToRoleMap[user.userRole];
|
|
12
11
|
if (!userRole) {
|
|
13
12
|
return undefined;
|
|
14
13
|
}
|
|
15
|
-
let platform =
|
|
16
|
-
const avatar =
|
|
14
|
+
let platform = cache.getUserPlatform(user.userId) ?? _type.FcrPlatform.UNSUPPORTED;
|
|
15
|
+
const avatar = cache.getUserAvatar(user.userId) ?? '';
|
|
17
16
|
const isValidPlatform = platform in _type.FcrPlatform;
|
|
18
17
|
platform = isValidPlatform ? platform : _type.FcrPlatform.UNSUPPORTED;
|
|
19
18
|
return {
|
|
@@ -27,7 +26,7 @@ const convertRteUserToFcrUser = (user, cache) => {
|
|
|
27
26
|
};
|
|
28
27
|
exports.convertRteUserToFcrUser = convertRteUserToFcrUser;
|
|
29
28
|
const checkFcrUserRole = user => {
|
|
30
|
-
if (!
|
|
29
|
+
if (!user?.userRole) return;
|
|
31
30
|
return user;
|
|
32
31
|
};
|
|
33
32
|
exports.checkFcrUserRole = checkFcrUserRole;
|
|
@@ -4,11 +4,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
require("core-js/modules/es.error.cause.js");
|
|
8
7
|
var _imports = require("../imports");
|
|
9
8
|
var _error = require("./error");
|
|
10
9
|
var _default = exports.default = (0, _imports.validateParams)(error => {
|
|
11
|
-
const message =
|
|
10
|
+
const message = `invalid params: ${error.message}`;
|
|
12
11
|
const fcrErrorModuleCode = '00';
|
|
13
12
|
return (0, _error.generateFcrCoreClientError)(fcrErrorModuleCode, _error.FcrErrorCode.INVALID_PARAMS, message, new Error(message));
|
|
14
13
|
});
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fcr-core",
|
|
3
3
|
"description": "Core APIs for building online scenes",
|
|
4
|
-
"version": "3.8.
|
|
4
|
+
"version": "3.8.1-alpha",
|
|
5
5
|
"module": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
7
7
|
"files": [
|
|
@@ -17,7 +17,6 @@
|
|
|
17
17
|
"author": "agora.io",
|
|
18
18
|
"license": "MIT",
|
|
19
19
|
"scripts": {
|
|
20
|
-
"prepare": "husky",
|
|
21
20
|
"build": "agora-tc-transpile",
|
|
22
21
|
"build:docs": "run-s build:docs:types build:split:i18n build:link-plugin build:en-docs build:cn-docs build:docs:generate",
|
|
23
22
|
"build:link-plugin": "sh build-doc/theme/install.sh",
|
|
@@ -40,7 +39,7 @@
|
|
|
40
39
|
"@types/lodash": "^4.14.168",
|
|
41
40
|
"@types/sinon": "^17.0.2",
|
|
42
41
|
"@types/uuid": "^8.3.0",
|
|
43
|
-
"agora-toolchain": "3.8.
|
|
42
|
+
"agora-toolchain": "3.8.1-alpha",
|
|
44
43
|
"core-js": "^3.33.3",
|
|
45
44
|
"decomment": "^0.9.5",
|
|
46
45
|
"husky": "^9.0.11",
|
|
@@ -60,8 +59,8 @@
|
|
|
60
59
|
"@netless/video-js-plugin": "^0.3.8",
|
|
61
60
|
"@netless/white-snapshot": "^0.4.2",
|
|
62
61
|
"@netless/window-manager": "^1.0.7-beta.6",
|
|
63
|
-
"agora-foundation": "3.8.
|
|
64
|
-
"agora-rte-sdk": "3.8.
|
|
62
|
+
"agora-foundation": "3.8.1-alpha",
|
|
63
|
+
"agora-rte-sdk": "3.8.1-alpha",
|
|
65
64
|
"await-to-js": "^3.0.0",
|
|
66
65
|
"dayjs": "^1.10.4",
|
|
67
66
|
"easemob-websdk": "4.13.0",
|
|
@@ -92,4 +91,4 @@
|
|
|
92
91
|
"lint-staged": {
|
|
93
92
|
"*.{ts,tsx,html,css}": "prettier --write"
|
|
94
93
|
}
|
|
95
|
-
}
|
|
94
|
+
}
|