fcr-core 3.7.8 → 3.7.9-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 -41
- package/lib/engine/index.js +74 -67
- 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 -48
- package/lib/plugins/chatroom.js +202 -218
- 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 +17 -25
- 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 -48
- package/lib/room-control/shared-cache.js +29 -36
- package/lib/room-control/sharing-control/index.js +32 -40
- package/lib/room-control/stream-control/index.js +173 -181
- 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-v2/annotation-control/control.js +24 -32
- package/lib/room-control/whiteboard-control-v2/annotation-control/index.js +16 -27
- package/lib/room-control/whiteboard-control-v2/annotation-control/privilege-control.js +53 -63
- package/lib/room-control/whiteboard-control-v2/index.js +28 -40
- package/lib/room-control/whiteboard-control-v2/main-window.js +23 -28
- package/lib/room-control/whiteboard-control-v2/utils.js +6 -7
- package/lib/room-control/whiteboard-control-v2/whiteboard-control/control.js +27 -38
- package/lib/room-control/whiteboard-control-v2/whiteboard-control/index.js +3 -5
- package/lib/room-control/whiteboard-control-v2/whiteboard-control/privilege-control.js +42 -54
- package/lib/room-router/index.js +42 -52
- package/lib/service/api.js +207 -231
- 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/shared-storage.js +0 -1
- package/lib/utilities/storage.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 +4 -4
|
@@ -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
|
* 提供统一的错误创建和处理机制,支持实例化配置
|
|
@@ -41,14 +34,14 @@ let ControllerType = exports.ControllerType = /*#__PURE__*/function (ControllerT
|
|
|
41
34
|
* 错误处理助手类 - 支持实例化配置
|
|
42
35
|
*/
|
|
43
36
|
class FcrErrorHelper {
|
|
44
|
-
constructor() {
|
|
45
|
-
|
|
46
|
-
this.config = _objectSpread({
|
|
37
|
+
constructor(config = {}) {
|
|
38
|
+
this.config = {
|
|
47
39
|
defaultModuleCode: _error.FcrErrorModuleCode.ROOM,
|
|
48
40
|
enableDetailedMessages: true,
|
|
49
41
|
logPrefix: 'FCR',
|
|
50
|
-
autoLog: false
|
|
51
|
-
|
|
42
|
+
autoLog: false,
|
|
43
|
+
...config
|
|
44
|
+
};
|
|
52
45
|
}
|
|
53
46
|
/**
|
|
54
47
|
* 生成控制器未初始化错误
|
|
@@ -57,11 +50,11 @@ class FcrErrorHelper {
|
|
|
57
50
|
* @returns FcrError
|
|
58
51
|
*/
|
|
59
52
|
createControllerNotInitializedError(controllerType, moduleCode) {
|
|
60
|
-
const module = moduleCode
|
|
61
|
-
const message = this.config.enableDetailedMessages ?
|
|
53
|
+
const module = moduleCode ?? this.config.defaultModuleCode;
|
|
54
|
+
const message = this.config.enableDetailedMessages ? `[${this.config.logPrefix}] The ${controllerType} controller is not initialized, please join the room first` : `${controllerType} controller not initialized`;
|
|
62
55
|
const error = (0, _error.generateFcrCoreClientErrorNew)(module, _error.FcrErrorCode.NOT_JOINED_ROOM, message);
|
|
63
56
|
if (this.config.autoLog) {
|
|
64
|
-
console.error(
|
|
57
|
+
console.error(`${this.config.logPrefix}: ${message}`);
|
|
65
58
|
}
|
|
66
59
|
return error;
|
|
67
60
|
}
|
|
@@ -74,11 +67,11 @@ class FcrErrorHelper {
|
|
|
74
67
|
* @returns FcrError
|
|
75
68
|
*/
|
|
76
69
|
createOperationConflictError(operation, reason, moduleCode) {
|
|
77
|
-
const module = moduleCode
|
|
78
|
-
const message = this.config.enableDetailedMessages ?
|
|
70
|
+
const module = moduleCode ?? this.config.defaultModuleCode;
|
|
71
|
+
const message = this.config.enableDetailedMessages ? `[${this.config.logPrefix}] Failed to ${operation}: ${reason}` : `${operation} failed: ${reason}`;
|
|
79
72
|
const error = (0, _error.generateFcrCoreClientErrorNew)(module, _error.FcrErrorCode.JOIN_CONFLICT, message);
|
|
80
73
|
if (this.config.autoLog) {
|
|
81
|
-
console.error(
|
|
74
|
+
console.error(`${this.config.logPrefix}: ${message}`);
|
|
82
75
|
}
|
|
83
76
|
return error;
|
|
84
77
|
}
|
|
@@ -90,11 +83,11 @@ class FcrErrorHelper {
|
|
|
90
83
|
* @returns FcrError
|
|
91
84
|
*/
|
|
92
85
|
createOperationCanceledError(operation, moduleCode) {
|
|
93
|
-
const module = moduleCode
|
|
94
|
-
const message = this.config.enableDetailedMessages ?
|
|
86
|
+
const module = moduleCode ?? this.config.defaultModuleCode;
|
|
87
|
+
const message = this.config.enableDetailedMessages ? `[${this.config.logPrefix}] ${operation} operation has been cancelled` : `${operation} cancelled`;
|
|
95
88
|
const error = (0, _error.generateFcrCoreClientErrorNew)(module, _error.FcrErrorCode.NOT_JOINED_ROOM, message);
|
|
96
89
|
if (this.config.autoLog) {
|
|
97
|
-
console.error(
|
|
90
|
+
console.error(`${this.config.logPrefix}: ${message}`);
|
|
98
91
|
}
|
|
99
92
|
return error;
|
|
100
93
|
}
|
|
@@ -106,11 +99,11 @@ class FcrErrorHelper {
|
|
|
106
99
|
* @returns FcrError
|
|
107
100
|
*/
|
|
108
101
|
createSendMessageError(originalError, moduleCode) {
|
|
109
|
-
const module = moduleCode
|
|
110
|
-
const message = this.config.enableDetailedMessages ?
|
|
102
|
+
const module = moduleCode ?? this.config.defaultModuleCode;
|
|
103
|
+
const message = this.config.enableDetailedMessages ? `[${this.config.logPrefix}] Send message failed: ${originalError.message}` : 'send message failed';
|
|
111
104
|
const error = (0, _error.generateFcrCoreClientErrorNew)(module, _error.FcrErrorCode.UNDEFINED_ERROR, message);
|
|
112
105
|
if (this.config.autoLog) {
|
|
113
|
-
console.error(
|
|
106
|
+
console.error(`${this.config.logPrefix}: ${message}`, originalError);
|
|
114
107
|
}
|
|
115
108
|
return error;
|
|
116
109
|
}
|
|
@@ -123,11 +116,11 @@ class FcrErrorHelper {
|
|
|
123
116
|
* @returns FcrError
|
|
124
117
|
*/
|
|
125
118
|
createOperationError(operation, originalError, moduleCode) {
|
|
126
|
-
const module = moduleCode
|
|
127
|
-
const message = this.config.enableDetailedMessages ?
|
|
119
|
+
const module = moduleCode ?? this.config.defaultModuleCode;
|
|
120
|
+
const message = this.config.enableDetailedMessages ? `[${this.config.logPrefix}] ${operation} failed${originalError ? `: ${originalError.message}` : ''}` : `${operation} failed`;
|
|
128
121
|
const error = (0, _error.generateFcrCoreClientErrorNew)(module, _error.FcrErrorCode.NOT_JOINED_ROOM, message);
|
|
129
122
|
if (this.config.autoLog) {
|
|
130
|
-
console.error(
|
|
123
|
+
console.error(`${this.config.logPrefix}: ${message}`, originalError);
|
|
131
124
|
}
|
|
132
125
|
return error;
|
|
133
126
|
}
|
|
@@ -139,11 +132,11 @@ class FcrErrorHelper {
|
|
|
139
132
|
* @returns FcrError
|
|
140
133
|
*/
|
|
141
134
|
createNetworkError(message, moduleCode) {
|
|
142
|
-
const module = moduleCode
|
|
143
|
-
const formattedMessage = this.config.enableDetailedMessages ?
|
|
135
|
+
const module = moduleCode ?? this.config.defaultModuleCode;
|
|
136
|
+
const formattedMessage = this.config.enableDetailedMessages ? `[${this.config.logPrefix}] Network error: ${message}` : message;
|
|
144
137
|
const error = (0, _error.generateFcrCoreClientErrorNew)(module, _error.FcrErrorCode.LOCAL_HTTP_REQUEST_FAILED, formattedMessage);
|
|
145
138
|
if (this.config.autoLog) {
|
|
146
|
-
console.error(
|
|
139
|
+
console.error(`${this.config.logPrefix}: ${formattedMessage}`);
|
|
147
140
|
}
|
|
148
141
|
return error;
|
|
149
142
|
}
|
|
@@ -156,11 +149,11 @@ class FcrErrorHelper {
|
|
|
156
149
|
* @returns FcrError
|
|
157
150
|
*/
|
|
158
151
|
createInvalidParamsError(paramName, reason, moduleCode) {
|
|
159
|
-
const module = moduleCode
|
|
160
|
-
const message = this.config.enableDetailedMessages ?
|
|
152
|
+
const module = moduleCode ?? this.config.defaultModuleCode;
|
|
153
|
+
const message = this.config.enableDetailedMessages ? `[${this.config.logPrefix}] Invalid parameter '${paramName}': ${reason}` : `Invalid parameter '${paramName}': ${reason}`;
|
|
161
154
|
const error = (0, _error.generateFcrCoreClientErrorNew)(module, _error.FcrErrorCode.INVALID_PARAMS, message);
|
|
162
155
|
if (this.config.autoLog) {
|
|
163
|
-
console.error(
|
|
156
|
+
console.error(`${this.config.logPrefix}: ${message}`);
|
|
164
157
|
}
|
|
165
158
|
return error;
|
|
166
159
|
}
|
package/lib/utilities/error.js
CHANGED
|
@@ -54,9 +54,9 @@ const generateFcrCoreClientError = (module, code, message, origin) => {
|
|
|
54
54
|
const errorType = (0, _imports.padEnd)(String(FcrErrorCodeType.CLIENT), 3, '0'); // 如:'100'
|
|
55
55
|
const moduleCode = (0, _imports.padStart)(String(module), 3, '0'); // 如:'020'
|
|
56
56
|
const errorCode = (0, _imports.padStart)(String(code), 3, '0'); // 如:'001'
|
|
57
|
-
const fullErrorCode = Number(
|
|
57
|
+
const fullErrorCode = Number(`${errorType}${moduleCode}${errorCode}`); // 如:'100020001'
|
|
58
58
|
|
|
59
|
-
const errorMessage =
|
|
59
|
+
const errorMessage = `domain: RTE-CLIENT, info: ${message}`;
|
|
60
60
|
return new _imports.FcrError({
|
|
61
61
|
code: fullErrorCode,
|
|
62
62
|
message: errorMessage
|
|
@@ -64,7 +64,7 @@ const generateFcrCoreClientError = (module, code, message, origin) => {
|
|
|
64
64
|
};
|
|
65
65
|
exports.generateFcrCoreClientError = generateFcrCoreClientError;
|
|
66
66
|
const generateFcrCoreServerError = (code, message, origin) => {
|
|
67
|
-
const errorCode = Number(
|
|
67
|
+
const errorCode = Number(`${FcrErrorCodeType.SERVER}${(0, _imports.padStart)(String(code), 8, '0')}`);
|
|
68
68
|
const error = new _imports.FcrError({
|
|
69
69
|
message: message,
|
|
70
70
|
code: errorCode
|
|
@@ -79,11 +79,10 @@ const handleRequestError = async (action, errorModuleCode, errorMessage) => {
|
|
|
79
79
|
return await action();
|
|
80
80
|
} catch (e) {
|
|
81
81
|
if (e instanceof _imports.AgoraRestfulClientError) {
|
|
82
|
-
|
|
83
|
-
throw generateFcrCoreServerError((_e$serviceCode = e.serviceCode) !== null && _e$serviceCode !== void 0 ? _e$serviceCode : -1, e.message, e);
|
|
82
|
+
throw generateFcrCoreServerError(e.serviceCode ?? -1, e.message, e);
|
|
84
83
|
}
|
|
85
84
|
const error = e;
|
|
86
|
-
throw generateFcrCoreClientError(errorModuleCode, FcrErrorCode.UNDEFINED_ERROR, errorMessage
|
|
85
|
+
throw generateFcrCoreClientError(errorModuleCode, FcrErrorCode.UNDEFINED_ERROR, errorMessage ?? error.message, error);
|
|
87
86
|
}
|
|
88
87
|
};
|
|
89
88
|
|
|
@@ -104,9 +103,9 @@ const generateFcrCoreClientErrorNew = (module, code, message) => {
|
|
|
104
103
|
const errorType = (0, _imports.padEnd)(String(FcrErrorCodeType.CLIENT), 3, '0'); // 如:'100'
|
|
105
104
|
const moduleCode = (0, _imports.padStart)(String(module), 3, '0'); // 如:'020'
|
|
106
105
|
const errorCode = (0, _imports.padStart)(String(code), 3, '0'); // 如:'001'
|
|
107
|
-
const fullErrorCode = Number(
|
|
106
|
+
const fullErrorCode = Number(`${errorType}${moduleCode}${errorCode}`); // 如:'100020001'
|
|
108
107
|
|
|
109
|
-
const errorMessage =
|
|
108
|
+
const errorMessage = `domain: RTE-CLIENT, info: ${message}`;
|
|
110
109
|
return new _imports.FcrError({
|
|
111
110
|
code: fullErrorCode,
|
|
112
111
|
message: errorMessage
|
|
@@ -114,7 +113,7 @@ const generateFcrCoreClientErrorNew = (module, code, message) => {
|
|
|
114
113
|
};
|
|
115
114
|
exports.generateFcrCoreClientErrorNew = generateFcrCoreClientErrorNew;
|
|
116
115
|
const generateFcrCoreServerErrorNew = (code, message) => {
|
|
117
|
-
const errorCode = Number(
|
|
116
|
+
const errorCode = Number(`${FcrErrorCodeType.SERVER}${(0, _imports.padStart)(String(code), 8, '0')}`);
|
|
118
117
|
const error = new _imports.FcrError({
|
|
119
118
|
message: message,
|
|
120
119
|
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
|
* 通用重试辅助工具
|
|
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.setWhiteboardOptions = exports.setAnnotationBoardOptions = exports.getAnnotationBoardOptions = exports.clearWhiteboardOptions = exports.clearAnnotationBoardOptions = void 0;
|
|
7
|
-
require("core-js/modules/es.json.stringify.js");
|
|
8
7
|
require("core-js/modules/esnext.json.parse.js");
|
|
9
8
|
var _imports = require("../imports");
|
|
10
9
|
const STORAGE_KEY_ANNOTATION_BOARD_OPTIONS = 'annotation_board_options';
|
package/lib/utilities/storage.js
CHANGED
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.7.
|
|
4
|
+
"version": "3.7.9-alpha",
|
|
5
5
|
"module": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
7
7
|
"files": [
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"@types/lodash": "^4.14.168",
|
|
41
41
|
"@types/sinon": "^17.0.2",
|
|
42
42
|
"@types/uuid": "^8.3.0",
|
|
43
|
-
"agora-toolchain": "3.7.
|
|
43
|
+
"agora-toolchain": "3.7.9-alpha",
|
|
44
44
|
"core-js": "^3.33.3",
|
|
45
45
|
"decomment": "^0.9.5",
|
|
46
46
|
"husky": "^9.0.11",
|
|
@@ -55,8 +55,8 @@
|
|
|
55
55
|
"@netless/forge-room": "1.0.6",
|
|
56
56
|
"@netless/forge-rtm": "1.0.6",
|
|
57
57
|
"@netless/forge-whiteboard": "1.0.6",
|
|
58
|
-
"agora-foundation": "3.7.
|
|
59
|
-
"agora-rte-sdk": "3.7.
|
|
58
|
+
"agora-foundation": "3.7.9-alpha",
|
|
59
|
+
"agora-rte-sdk": "3.7.9-alpha",
|
|
60
60
|
"await-to-js": "^3.0.0",
|
|
61
61
|
"dayjs": "^1.10.4",
|
|
62
62
|
"easemob-websdk": "4.13.0",
|