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.
Files changed (50) hide show
  1. package/lib/chat-connection/index.js +26 -41
  2. package/lib/engine/index.js +74 -67
  3. package/lib/imports.js +0 -1
  4. package/lib/media-control/desktop.js +13 -18
  5. package/lib/media-control/mobile.js +13 -18
  6. package/lib/monitor-control/index.js +5 -10
  7. package/lib/peer-session/index.js +39 -48
  8. package/lib/plugins/chatroom.js +202 -218
  9. package/lib/room-control/ability-control/index.js +9 -14
  10. package/lib/room-control/group-control/index.js +16 -21
  11. package/lib/room-control/helpers/validation-helper.js +1 -1
  12. package/lib/room-control/index.js +36 -53
  13. package/lib/room-control/interpreter-control/index.js +34 -47
  14. package/lib/room-control/interpreter-control/room.js +4 -6
  15. package/lib/room-control/join-before-host-waitingroom-control/index.js +4 -6
  16. package/lib/room-control/mainroom-control/index.js +17 -25
  17. package/lib/room-control/privilege-control/helper.js +5 -8
  18. package/lib/room-control/privilege-control/index.js +19 -26
  19. package/lib/room-control/room-connector-control/index.js +19 -28
  20. package/lib/room-control/room-control-factory.js +1 -2
  21. package/lib/room-control/room-session/index.js +39 -48
  22. package/lib/room-control/shared-cache.js +29 -36
  23. package/lib/room-control/sharing-control/index.js +32 -40
  24. package/lib/room-control/stream-control/index.js +173 -181
  25. package/lib/room-control/user-control/index.js +136 -143
  26. package/lib/room-control/waitingroom-control/index.js +9 -14
  27. package/lib/room-control/whiteboard-control-v2/annotation-control/control.js +24 -32
  28. package/lib/room-control/whiteboard-control-v2/annotation-control/index.js +16 -27
  29. package/lib/room-control/whiteboard-control-v2/annotation-control/privilege-control.js +53 -63
  30. package/lib/room-control/whiteboard-control-v2/index.js +28 -40
  31. package/lib/room-control/whiteboard-control-v2/main-window.js +23 -28
  32. package/lib/room-control/whiteboard-control-v2/utils.js +6 -7
  33. package/lib/room-control/whiteboard-control-v2/whiteboard-control/control.js +27 -38
  34. package/lib/room-control/whiteboard-control-v2/whiteboard-control/index.js +3 -5
  35. package/lib/room-control/whiteboard-control-v2/whiteboard-control/privilege-control.js +42 -54
  36. package/lib/room-router/index.js +42 -52
  37. package/lib/service/api.js +207 -231
  38. package/lib/utilities/collection.js +2 -3
  39. package/lib/utilities/error-helpers.js +27 -34
  40. package/lib/utilities/error.js +8 -9
  41. package/lib/utilities/join-helper.js +25 -32
  42. package/lib/utilities/logger.js +3 -6
  43. package/lib/utilities/parameters.js +4 -8
  44. package/lib/utilities/retry-helpers.js +0 -1
  45. package/lib/utilities/shared-storage.js +0 -1
  46. package/lib/utilities/storage.js +0 -1
  47. package/lib/utilities/stream.js +11 -16
  48. package/lib/utilities/user.js +3 -4
  49. package/lib/utilities/validate-params.js +1 -2
  50. 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 = (processors === null || processors === void 0 ? void 0 : processors.onFilter) || (() => true);
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 = (processors === null || processors === void 0 ? void 0 : processors.onFilter) || (() => true);
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
- 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; } /**
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
- let config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
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
- }, config);
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 !== null && moduleCode !== void 0 ? moduleCode : this.config.defaultModuleCode;
61
- const message = this.config.enableDetailedMessages ? "[".concat(this.config.logPrefix, "] The ").concat(controllerType, " controller is not initialized, please join the room first") : "".concat(controllerType, " controller not initialized");
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("".concat(this.config.logPrefix, ": ").concat(message));
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 !== null && moduleCode !== void 0 ? moduleCode : this.config.defaultModuleCode;
78
- const message = this.config.enableDetailedMessages ? "[".concat(this.config.logPrefix, "] Failed to ").concat(operation, ": ").concat(reason) : "".concat(operation, " failed: ").concat(reason);
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("".concat(this.config.logPrefix, ": ").concat(message));
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 !== null && moduleCode !== void 0 ? moduleCode : this.config.defaultModuleCode;
94
- const message = this.config.enableDetailedMessages ? "[".concat(this.config.logPrefix, "] ").concat(operation, " operation has been cancelled") : "".concat(operation, " cancelled");
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("".concat(this.config.logPrefix, ": ").concat(message));
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 !== null && moduleCode !== void 0 ? moduleCode : this.config.defaultModuleCode;
110
- const message = this.config.enableDetailedMessages ? "[".concat(this.config.logPrefix, "] Send message failed: ").concat(originalError.message) : 'send message failed';
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("".concat(this.config.logPrefix, ": ").concat(message), originalError);
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 !== null && moduleCode !== void 0 ? moduleCode : this.config.defaultModuleCode;
127
- const message = this.config.enableDetailedMessages ? "[".concat(this.config.logPrefix, "] ").concat(operation, " failed").concat(originalError ? ": ".concat(originalError.message) : '') : "".concat(operation, " failed");
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("".concat(this.config.logPrefix, ": ").concat(message), originalError);
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 !== null && moduleCode !== void 0 ? moduleCode : this.config.defaultModuleCode;
143
- const formattedMessage = this.config.enableDetailedMessages ? "[".concat(this.config.logPrefix, "] Network error: ").concat(message) : message;
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("".concat(this.config.logPrefix, ": ").concat(formattedMessage));
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 !== null && moduleCode !== void 0 ? moduleCode : this.config.defaultModuleCode;
160
- const message = this.config.enableDetailedMessages ? "[".concat(this.config.logPrefix, "] Invalid parameter '").concat(paramName, "': ").concat(reason) : "Invalid parameter '".concat(paramName, "': ").concat(reason);
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("".concat(this.config.logPrefix, ": ").concat(message));
156
+ console.error(`${this.config.logPrefix}: ${message}`);
164
157
  }
165
158
  return error;
166
159
  }
@@ -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("".concat(errorType).concat(moduleCode).concat(errorCode)); // 如:'100020001'
57
+ const fullErrorCode = Number(`${errorType}${moduleCode}${errorCode}`); // 如:'100020001'
58
58
 
59
- const errorMessage = "domain: RTE-CLIENT, info: ".concat(message);
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("".concat(FcrErrorCodeType.SERVER).concat((0, _imports.padStart)(String(code), 8, '0')));
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
- var _e$serviceCode;
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 !== null && errorMessage !== void 0 ? errorMessage : error.message, error);
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("".concat(errorType).concat(moduleCode).concat(errorCode)); // 如:'100020001'
106
+ const fullErrorCode = Number(`${errorType}${moduleCode}${errorCode}`); // 如:'100020001'
108
107
 
109
- const errorMessage = "domain: RTE-CLIENT, info: ".concat(message);
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("".concat(FcrErrorCodeType.SERVER).concat((0, _imports.padStart)(String(code), 8, '0')));
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
- 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; }
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
- let logPrefix = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 'join room';
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("Retry attempt ".concat(attemptCount + 1, " to ").concat(logPrefix, ": ").concat(error.message));
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
- var _options$platform, _options$createStream;
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: (_options$platform = options.platform) !== null && _options$platform !== void 0 ? _options$platform : (0, _imports.getPlatform)(),
84
- streams: (_options$createStream = options.createStreamConfigs) === null || _options$createStream === void 0 ? void 0 : _options$createStream.map(s => _objectSpread(_objectSpread({
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
- }, (0, _imports.convertStreamTypeToPublishState)(s.streamType)), {}, {
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
- }, (extraParams === null || extraParams === void 0 ? void 0 : extraParams.bypass) !== undefined && {
97
- bypass: extraParams.bypass
98
- }), (extraParams === null || extraParams === void 0 ? void 0 : extraParams.avatar) !== undefined && {
99
- avatar: extraParams.avatar
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 _ref => {
170
- let {
171
- error,
172
- timeFn: waitBeforeRetry,
173
- currentRetry: attemptCount
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
  }
@@ -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: "".concat(opts.prefix, "@").concat((0, _imports.randomString)(5))
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] = function () {
27
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
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
- var _parameters$core;
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
- var _parameters$core2;
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
- var _parameters$core3;
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
- var _parameters$core4;
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';
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.storage = void 0;
7
- require("core-js/modules/es.json.stringify.js");
8
7
  class LocalStorage {
9
8
  set(key, value) {
10
9
  if (typeof value === 'object') {
@@ -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 _objectSpread(_objectSpread({}, stream), {}, {
18
- videoSourceUuid: stream === null || stream === void 0 ? void 0 : stream.videoSourceId,
19
- audioSourceUuid: stream === null || stream === void 0 ? void 0 : stream.audioSourceId
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 === null || streams === void 0 ? void 0 : streams.map(stream => {
25
- return _objectSpread(_objectSpread({}, stream), {}, {
26
- videoSourceUuid: stream === null || stream === void 0 ? void 0 : stream.videoSourceId,
27
- audioSourceUuid: stream === null || stream === void 0 ? void 0 : stream.audioSourceId
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;
@@ -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 = (_cache$getUserPlatfor = cache.getUserPlatform(user.userId)) !== null && _cache$getUserPlatfor !== void 0 ? _cache$getUserPlatfor : _type.FcrPlatform.UNSUPPORTED;
16
- const avatar = (_cache$getUserAvatar = cache.getUserAvatar(user.userId)) !== null && _cache$getUserAvatar !== void 0 ? _cache$getUserAvatar : '';
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 (!(user !== null && user !== void 0 && user.userRole)) return;
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 = "invalid params: ".concat(error.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.8",
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.8",
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.8",
59
- "agora-rte-sdk": "3.7.8",
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",