fcr-core 3.7.8 → 3.8.0-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 (108) hide show
  1. package/lib/chat-connection/index.d.ts +1 -1
  2. package/lib/engine/index.js +6 -5
  3. package/lib/imports.d.ts +7 -2
  4. package/lib/imports.js +25 -4
  5. package/lib/index.d.ts +2 -2
  6. package/lib/index.js +12 -0
  7. package/lib/media-control/desktop.js +4 -4
  8. package/lib/media-control/mobile.js +20 -20
  9. package/lib/media-control/type.d.ts +8 -0
  10. package/lib/plugins/chatroom.js +19 -3
  11. package/lib/room-control/ability-control/type.d.ts +4 -1
  12. package/lib/room-control/ability-control/type.js +3 -0
  13. package/lib/room-control/helpers/constants.d.ts +4 -0
  14. package/lib/room-control/helpers/constants.js +5 -1
  15. package/lib/room-control/index.js +16 -5
  16. package/lib/room-control/interpreter-control/index.js +2 -4
  17. package/lib/room-control/mainroom-control/index.js +66 -1
  18. package/lib/room-control/privilege-control/index.js +43 -3
  19. package/lib/room-control/privilege-control/type.d.ts +57 -10
  20. package/lib/room-control/privilege-control/type.js +17 -0
  21. package/lib/room-control/room-control-factory.js +1 -1
  22. package/lib/room-control/room-session/index.js +23 -13
  23. package/lib/room-control/room-session/type.d.ts +2 -2
  24. package/lib/room-control/sharing-control/index.d.ts +5 -5
  25. package/lib/room-control/sharing-control/index.js +43 -13
  26. package/lib/room-control/sharing-control/type.d.ts +9 -5
  27. package/lib/room-control/sharing-control/type.js +6 -1
  28. package/lib/room-control/stream-control/index.d.ts +8 -1
  29. package/lib/room-control/stream-control/index.js +139 -36
  30. package/lib/room-control/stream-control/type.d.ts +6 -0
  31. package/lib/room-control/stt-control/de-compress-gzip.d.ts +1 -0
  32. package/lib/room-control/stt-control/de-compress-gzip.js +49 -0
  33. package/lib/room-control/stt-control/index.d.ts +1 -0
  34. package/lib/room-control/stt-control/index.js +353 -0
  35. package/lib/room-control/stt-control/type.d.ts +142 -0
  36. package/lib/room-control/stt-control/type.js +16 -0
  37. package/lib/room-control/type.d.ts +15 -0
  38. package/lib/room-control/type.js +13 -1
  39. package/lib/room-control/whiteboard-control/enum.d.ts +15 -0
  40. package/lib/room-control/whiteboard-control/{types.js → enum.js} +12 -1
  41. package/lib/room-control/whiteboard-control/type.d.ts +38 -0
  42. package/lib/room-control/whiteboard-control/type.js +15 -0
  43. package/lib/room-control/whiteboard-control/utils.d.ts +3 -0
  44. package/lib/room-control/whiteboard-control/utils.js +23 -0
  45. package/lib/room-control/whiteboard-control-v1/board-subwindow.d.ts +6 -0
  46. package/lib/room-control/whiteboard-control-v1/board-subwindow.js +26 -0
  47. package/lib/room-control/whiteboard-control-v1/board-window.d.ts +58 -0
  48. package/lib/room-control/whiteboard-control-v1/board-window.js +571 -0
  49. package/lib/room-control/{whiteboard-control/enums.d.ts → whiteboard-control-v1/enum.d.ts} +3 -17
  50. package/lib/room-control/{whiteboard-control/enums.js → whiteboard-control-v1/enum.js} +3 -20
  51. package/lib/room-control/whiteboard-control-v1/factory.d.ts +9 -0
  52. package/lib/room-control/whiteboard-control-v1/factory.js +22 -0
  53. package/lib/room-control/whiteboard-control-v1/index.d.ts +1 -0
  54. package/lib/room-control/whiteboard-control-v1/index.js +440 -0
  55. package/lib/room-control/whiteboard-control-v1/mount-manager.d.ts +4 -0
  56. package/lib/room-control/whiteboard-control-v1/mount-manager.js +15 -0
  57. package/lib/room-control/whiteboard-control-v1/type.d.ts +300 -0
  58. package/lib/room-control/whiteboard-control-v1/type.js +13 -0
  59. package/lib/room-control/whiteboard-control-v1/utils.d.ts +53 -0
  60. package/lib/room-control/whiteboard-control-v1/utils.js +290 -0
  61. package/lib/room-control/whiteboard-control-v2/annotation-control/control.d.ts +17 -31
  62. package/lib/room-control/whiteboard-control-v2/annotation-control/control.js +39 -233
  63. package/lib/room-control/whiteboard-control-v2/annotation-control/factory.d.ts +10 -0
  64. package/lib/room-control/whiteboard-control-v2/annotation-control/factory.js +48 -0
  65. package/lib/room-control/whiteboard-control-v2/annotation-control/type.d.ts +11 -19
  66. package/lib/room-control/whiteboard-control-v2/annotation-control/type.js +1 -3
  67. package/lib/room-control/whiteboard-control-v2/base/index.d.ts +42 -0
  68. package/lib/room-control/whiteboard-control-v2/base/index.js +317 -0
  69. package/lib/room-control/whiteboard-control-v2/{main-window.d.ts → base/main-window.d.ts} +6 -4
  70. package/lib/room-control/whiteboard-control-v2/{main-window.js → base/main-window.js} +31 -18
  71. package/lib/room-control/whiteboard-control-v2/constant.d.ts +6 -0
  72. package/lib/room-control/whiteboard-control-v2/constant.js +15 -0
  73. package/lib/room-control/whiteboard-control-v2/enum.d.ts +26 -0
  74. package/lib/room-control/whiteboard-control-v2/enum.js +34 -0
  75. package/lib/room-control/{whiteboard-control/types.d.ts → whiteboard-control-v2/type.d.ts} +51 -165
  76. package/lib/room-control/whiteboard-control-v2/type.js +5 -0
  77. package/lib/room-control/whiteboard-control-v2/utils.d.ts +5 -4
  78. package/lib/room-control/whiteboard-control-v2/utils.js +22 -21
  79. package/lib/room-control/whiteboard-control-v2/whiteboard-control/control.d.ts +34 -33
  80. package/lib/room-control/whiteboard-control-v2/whiteboard-control/control.js +124 -191
  81. package/lib/room-control/whiteboard-control-v2/whiteboard-control/factory.d.ts +11 -0
  82. package/lib/room-control/whiteboard-control-v2/{annotation-control/index.js → whiteboard-control/factory.js} +35 -44
  83. package/lib/room-control/whiteboard-control-v2/whiteboard-control/type.d.ts +18 -30
  84. package/lib/room-control/whiteboard-control-v2/whiteboard-control/type.js +1 -9
  85. package/lib/room-router/index.js +4 -0
  86. package/lib/schema.d.ts +23 -9
  87. package/lib/schema.js +10 -4
  88. package/lib/service/api.d.ts +75 -19
  89. package/lib/service/api.js +193 -24
  90. package/lib/type.d.ts +15 -2
  91. package/lib/type.js +13 -0
  92. package/lib/utilities/error-helpers.d.ts +2 -1
  93. package/lib/utilities/error-helpers.js +1 -0
  94. package/lib/utilities/error.d.ts +1 -0
  95. package/lib/utilities/error.js +1 -0
  96. package/lib/utilities/logger.d.ts +2 -2
  97. package/lib/utilities/shared-storage.d.ts +3 -1
  98. package/lib/utilities/shared-storage.js +9 -1
  99. package/package.json +11 -5
  100. package/lib/room-control/whiteboard-control-v2/annotation-control/index.d.ts +0 -19
  101. package/lib/room-control/whiteboard-control-v2/annotation-control/privilege-control.d.ts +0 -36
  102. package/lib/room-control/whiteboard-control-v2/annotation-control/privilege-control.js +0 -262
  103. package/lib/room-control/whiteboard-control-v2/index.d.ts +0 -38
  104. package/lib/room-control/whiteboard-control-v2/index.js +0 -286
  105. package/lib/room-control/whiteboard-control-v2/whiteboard-control/index.d.ts +0 -17
  106. package/lib/room-control/whiteboard-control-v2/whiteboard-control/index.js +0 -32
  107. package/lib/room-control/whiteboard-control-v2/whiteboard-control/privilege-control.d.ts +0 -36
  108. package/lib/room-control/whiteboard-control-v2/whiteboard-control/privilege-control.js +0 -252
@@ -40,7 +40,7 @@ var _error = require("../../utilities/error");
40
40
  var _validateParams = _interopRequireDefault(require("../../utilities/validate-params"));
41
41
  var _schema = require("../../schema");
42
42
  var _FcrPrivilegeControlImpl;
43
- let _initProto, _getSecurityInfoDecs, _getLocalUserPermissionInfoDecs, _enableLockedRoomDecs, _allowShareAndWriteDecs, _allowWriteBoardDecs, _allowSendChatDecs, _allowStartAudioDecs, _allowStartVideoDecs, _allowJoinWithMutedAudioDecs, _allowJoinWithMutedVideoDecs, _allowWatermarkDecs, _allowChangeUserNameDecs, _ref;
43
+ let _initProto, _getSecurityInfoDecs, _getLocalUserPermissionInfoDecs, _enableLockedRoomDecs, _allowShareAndWriteDecs, _allowWriteBoardDecs, _allowWriteBoardByUserIdsDecs, _allowSendChatDecs, _allowStartAudioDecs, _allowStartVideoDecs, _allowJoinWithMutedAudioDecs, _allowJoinWithMutedVideoDecs, _allowWatermarkDecs, _allowChangeUserNameDecs, _allowStartCaptionDecs, _allowStartTranscribingDecs, _allowUpdateSttSourceLanguageDecs, _allowJoinWithPromptSoundDecs, _ref;
44
44
  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; }
45
45
  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; }
46
46
  function _applyDecs(e, t, r, n, o, a) { function i(e, t, r) { return function (n, o) { return r && r(n), e[t].call(n, o); }; } function c(e, t) { for (var r = 0; r < e.length; r++) e[r].call(t); return t; } function s(e, t, r, n) { if ("function" != typeof e && (n || void 0 !== e)) throw new TypeError(t + " must " + (r || "be") + " a function" + (n ? "" : " or undefined")); return e; } function applyDec(e, t, r, n, o, a, c, u, l, f, p, d, h) { function m(e) { if (!h(e)) throw new TypeError("Attempted to access private element on non-instance"); } var y, v = t[0], g = t[3], b = !u; if (!b) { r || Array.isArray(v) || (v = [v]); var w = {}, S = [], A = 3 === o ? "get" : 4 === o || d ? "set" : "value"; f ? (p || d ? w = { get: _setFunctionName(function () { return g(this); }, n, "get"), set: function (e) { t[4](this, e); } } : w[A] = g, p || _setFunctionName(w[A], n, 2 === o ? "" : A)) : p || (w = Object.getOwnPropertyDescriptor(e, n)); } for (var P = e, j = v.length - 1; j >= 0; j -= r ? 2 : 1) { var D = v[j], E = r ? v[j - 1] : void 0, I = {}, O = { kind: ["field", "accessor", "method", "getter", "setter", "class"][o], name: n, metadata: a, addInitializer: function (e, t) { if (e.v) throw Error("attempted to call addInitializer after decoration was finished"); s(t, "An initializer", "be", !0), c.push(t); }.bind(null, I) }; try { if (b) (y = s(D.call(E, P, O), "class decorators", "return")) && (P = y);else { var k, F; O.static = l, O.private = f, f ? 2 === o ? k = function (e) { return m(e), w.value; } : (o < 4 && (k = i(w, "get", m)), 3 !== o && (F = i(w, "set", m))) : (k = function (e) { return e[n]; }, (o < 2 || 4 === o) && (F = function (e, t) { e[n] = t; })); var N = O.access = { has: f ? h.bind() : function (e) { return n in e; } }; if (k && (N.get = k), F && (N.set = F), P = D.call(E, d ? { get: w.get, set: w.set } : w[A], O), d) { if ("object" == typeof P && P) (y = s(P.get, "accessor.get")) && (w.get = y), (y = s(P.set, "accessor.set")) && (w.set = y), (y = s(P.init, "accessor.init")) && S.push(y);else if (void 0 !== P) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0"); } else s(P, (p ? "field" : "method") + " decorators", "return") && (p ? S.push(P) : w[A] = P); } } finally { I.v = !0; } } return (p || d) && u.push(function (e, t) { for (var r = S.length - 1; r >= 0; r--) t = S[r].call(e, t); return t; }), p || b || (f ? d ? u.push(i(w, "get"), i(w, "set")) : u.push(2 === o ? w[A] : i.call.bind(w[A])) : Object.defineProperty(e, n, w)), P; } function u(e, t) { return Object.defineProperty(e, Symbol.metadata || Symbol.for("Symbol.metadata"), { configurable: !0, enumerable: !0, value: t }); } if (arguments.length >= 6) var l = a[Symbol.metadata || Symbol.for("Symbol.metadata")]; var f = Object.create(null == l ? null : l), p = function (e, t, r, n) { var o, a, i = [], s = function (t) { return _checkInRHS(t) === e; }, u = new Map(); function l(e) { e && i.push(c.bind(null, e)); } for (var f = 0; f < t.length; f++) { var p = t[f]; if (Array.isArray(p)) { var d = p[1], h = p[2], m = p.length > 3, y = 16 & d, v = !!(8 & d), g = 0 == (d &= 7), b = h + "/" + v; if (!g && !m) { var w = u.get(b); if (!0 === w || 3 === w && 4 !== d || 4 === w && 3 !== d) throw Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + h); u.set(b, !(d > 2) || d); } applyDec(v ? e : e.prototype, p, y, m ? "#" + h : _toPropertyKey(h), d, n, v ? a = a || [] : o = o || [], i, v, m, g, 1 === d, v && m ? s : r); } } return l(o), l(a), i; }(e, t, o, f); return r.length || u(e, f), { e: p, get c() { var t = []; return r.length && [u(applyDec(e, [r], n, e.name, 5, f, t), f), c.bind(null, t, e)]; } }; }
@@ -48,7 +48,7 @@ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol"
48
48
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
49
49
  function _setFunctionName(e, t, n) { "symbol" == typeof t && (t = (t = t.description) ? "[" + t + "]" : ""); try { Object.defineProperty(e, "name", { configurable: !0, value: n ? n + " " + t : t }); } catch (e) {} return e; }
50
50
  function _checkInRHS(e) { if (Object(e) !== e) throw TypeError("right-hand side of 'in' should be an object, got " + (null !== e ? typeof e : "null")); return e; }
51
- _ref = (_getSecurityInfoDecs = [_imports.trace, (0, _validateParams.default)(_schema.fcrSecurityActionSchema)], _getLocalUserPermissionInfoDecs = [_imports.trace, (0, _validateParams.default)(_schema.fcrPermissionActionSchema)], _enableLockedRoomDecs = [_imports.trace, (0, _validateParams.default)(_schema.booleanSchema, _schema.fcrPrivilegeUserRoleArraySchema)], _allowShareAndWriteDecs = [_imports.trace, (0, _validateParams.default)(_schema.booleanSchema, _schema.fcrPrivilegeUserRoleArraySchema)], _allowWriteBoardDecs = [_imports.trace, (0, _validateParams.default)(_schema.booleanSchema, _schema.fcrPrivilegeUserRoleArraySchema)], _allowSendChatDecs = [_imports.trace, (0, _validateParams.default)(_schema.booleanSchema, _schema.fcrPrivilegeUserRoleArraySchema, _schema.fcrSecuritySendChatPayloadSchema)], _allowStartAudioDecs = [_imports.trace, (0, _validateParams.default)(_schema.booleanSchema, _schema.fcrPrivilegeUserRoleArraySchema)], _allowStartVideoDecs = [_imports.trace, (0, _validateParams.default)(_schema.booleanSchema, _schema.fcrPrivilegeUserRoleArraySchema)], _allowJoinWithMutedAudioDecs = [_imports.trace, (0, _validateParams.default)(_schema.booleanSchema, _schema.fcrPrivilegeUserRoleArraySchema)], _allowJoinWithMutedVideoDecs = [_imports.trace, (0, _validateParams.default)(_schema.booleanSchema, _schema.fcrPrivilegeUserRoleArraySchema)], _allowWatermarkDecs = [_imports.trace, (0, _validateParams.default)(_schema.booleanSchema, _schema.fcrPrivilegeUserRoleArraySchema, _schema.fcrLineTypeSchema.optional())], _allowChangeUserNameDecs = [_imports.trace, (0, _validateParams.default)(_schema.booleanSchema, _schema.fcrPrivilegeUserRoleArraySchema)], "logger");
51
+ _ref = (_getSecurityInfoDecs = [_imports.trace, (0, _validateParams.default)(_schema.fcrSecurityActionSchema)], _getLocalUserPermissionInfoDecs = [_imports.trace, (0, _validateParams.default)(_schema.fcrPermissionActionSchema)], _enableLockedRoomDecs = [_imports.trace, (0, _validateParams.default)(_schema.booleanSchema, _schema.fcrPrivilegeUserRoleArraySchema)], _allowShareAndWriteDecs = [_imports.trace, (0, _validateParams.default)(_schema.booleanSchema, _schema.fcrPrivilegeUserRoleArraySchema)], _allowWriteBoardDecs = [_imports.trace, (0, _validateParams.default)(_schema.booleanSchema, _schema.fcrPrivilegeUserRoleArraySchema)], _allowWriteBoardByUserIdsDecs = [_imports.trace, (0, _validateParams.default)(_schema.booleanSchema, _schema.stringArraySchema)], _allowSendChatDecs = [_imports.trace, (0, _validateParams.default)(_schema.booleanSchema, _schema.fcrPrivilegeUserRoleArraySchema, _schema.fcrSecuritySendChatPayloadSchema)], _allowStartAudioDecs = [_imports.trace, (0, _validateParams.default)(_schema.booleanSchema, _schema.fcrPrivilegeUserRoleArraySchema)], _allowStartVideoDecs = [_imports.trace, (0, _validateParams.default)(_schema.booleanSchema, _schema.fcrPrivilegeUserRoleArraySchema)], _allowJoinWithMutedAudioDecs = [_imports.trace, (0, _validateParams.default)(_schema.booleanSchema, _schema.fcrPrivilegeUserRoleArraySchema)], _allowJoinWithMutedVideoDecs = [_imports.trace, (0, _validateParams.default)(_schema.booleanSchema, _schema.fcrPrivilegeUserRoleArraySchema)], _allowWatermarkDecs = [_imports.trace, (0, _validateParams.default)(_schema.booleanSchema, _schema.fcrPrivilegeUserRoleArraySchema, _schema.fcrLineTypeSchema.optional())], _allowChangeUserNameDecs = [_imports.trace, (0, _validateParams.default)(_schema.booleanSchema, _schema.fcrPrivilegeUserRoleArraySchema)], _allowStartCaptionDecs = [_imports.trace, (0, _validateParams.default)(_schema.booleanSchema, _schema.fcrPrivilegeUserRoleArraySchema)], _allowStartTranscribingDecs = [_imports.trace, (0, _validateParams.default)(_schema.booleanSchema, _schema.fcrPrivilegeUserRoleArraySchema)], _allowUpdateSttSourceLanguageDecs = [_imports.trace, (0, _validateParams.default)(_schema.booleanSchema, _schema.fcrPrivilegeUserRoleArraySchema)], _allowJoinWithPromptSoundDecs = [_imports.trace, (0, _validateParams.default)(_schema.booleanSchema, _schema.fcrPrivilegeUserRoleArraySchema)], "logger");
52
52
  /**
53
53
  * @internal
54
54
  */
@@ -148,6 +148,18 @@ class FcrPrivilegeControlImpl {
148
148
  }
149
149
  }), _error.FcrErrorModuleCode.ROOM_PRIVILEGE, 'allow write board failed');
150
150
  }
151
+ async allowWriteBoardByUserIds(enable, targetUserIds) {
152
+ await (0, _error.handleRequestError)(() => this._api.toggleShareEnableByUserIds({
153
+ roomId: this._scene.sceneId,
154
+ enable: true,
155
+ toUserUuids: targetUserIds,
156
+ payload: {
157
+ board: {
158
+ write: enable ? 1 : 0
159
+ }
160
+ }
161
+ }), _error.FcrErrorModuleCode.ROOM_PRIVILEGE, 'allow write board by user ids failed');
162
+ }
151
163
  async allowSendChat(enable, targetRoles, payload) {
152
164
  await (0, _error.handleRequestError)(() => this._api.allowSendChat({
153
165
  enable,
@@ -211,6 +223,34 @@ class FcrPrivilegeControlImpl {
211
223
  targetRoles: targetRoles.map(role => _type2.FcrPrivilegeUserRoleToStringMap[role])
212
224
  }), _error.FcrErrorModuleCode.ROOM_PRIVILEGE, 'allow change user name failed');
213
225
  }
226
+ async allowStartCaption(enable, targetRoles) {
227
+ await (0, _error.handleRequestError)(() => this._api.allowStartCaption({
228
+ roomUuid: this._scene.sceneId,
229
+ enable,
230
+ targetRoles: targetRoles.map(role => _type2.FcrPrivilegeUserRoleToStringMap[role])
231
+ }), _error.FcrErrorModuleCode.ROOM_STT, 'allow start caption failed');
232
+ }
233
+ async allowStartTranscribing(enable, targetRoles) {
234
+ await (0, _error.handleRequestError)(() => this._api.allowStartTranscribing({
235
+ roomUuid: this._scene.sceneId,
236
+ enable,
237
+ targetRoles: targetRoles.map(role => _type2.FcrPrivilegeUserRoleToStringMap[role])
238
+ }), _error.FcrErrorModuleCode.ROOM_STT, 'allow start transcribing failed');
239
+ }
240
+ async allowUpdateSttSourceLanguage(enable, targetRoles) {
241
+ await (0, _error.handleRequestError)(() => this._api.allowUpdateSttSourceLanguage({
242
+ roomUuid: this._scene.sceneId,
243
+ enable,
244
+ targetRoles: targetRoles.map(role => _type2.FcrPrivilegeUserRoleToStringMap[role])
245
+ }), _error.FcrErrorModuleCode.ROOM_STT, 'allow update stt source language failed');
246
+ }
247
+ async allowJoinWithPromptSound(enable, targetRoles) {
248
+ await (0, _error.handleRequestError)(() => this._api.allowJoinWithPromptSound({
249
+ roomId: this._scene.sceneId,
250
+ enable,
251
+ targetRoles: targetRoles.map(role => _type2.FcrPrivilegeUserRoleToStringMap[role])
252
+ }), _error.FcrErrorModuleCode.ROOM_PRIVILEGE, 'allow join with prompt sound failed');
253
+ }
214
254
  addObserver(observer) {
215
255
  this._observable.addObserver(observer);
216
256
  }
@@ -295,4 +335,4 @@ class FcrPrivilegeControlImpl {
295
335
  }
296
336
  exports.FcrPrivilegeControlImpl = FcrPrivilegeControlImpl;
297
337
  _FcrPrivilegeControlImpl = FcrPrivilegeControlImpl;
298
- [_initProto] = _applyDecs(_FcrPrivilegeControlImpl, [[_imports.trace, 2, "allowWriteAnnotation"], [_getSecurityInfoDecs, 2, "getSecurityInfo"], [_getLocalUserPermissionInfoDecs, 2, "getLocalUserPermissionInfo"], [_enableLockedRoomDecs, 2, "enableLockedRoom"], [_allowShareAndWriteDecs, 2, "allowShareAndWrite"], [_allowWriteBoardDecs, 2, "allowWriteBoard"], [_allowSendChatDecs, 2, "allowSendChat"], [_allowStartAudioDecs, 2, "allowStartAudio"], [_allowStartVideoDecs, 2, "allowStartVideo"], [_allowJoinWithMutedAudioDecs, 2, "allowJoinWithMutedAudio"], [_allowJoinWithMutedVideoDecs, 2, "allowJoinWithMutedVideo"], [_allowWatermarkDecs, 2, "allowWatermark"], [_allowChangeUserNameDecs, 2, "allowChangeUserName"]], []).e;
338
+ [_initProto] = _applyDecs(_FcrPrivilegeControlImpl, [[_imports.trace, 2, "allowWriteAnnotation"], [_getSecurityInfoDecs, 2, "getSecurityInfo"], [_getLocalUserPermissionInfoDecs, 2, "getLocalUserPermissionInfo"], [_enableLockedRoomDecs, 2, "enableLockedRoom"], [_allowShareAndWriteDecs, 2, "allowShareAndWrite"], [_allowWriteBoardDecs, 2, "allowWriteBoard"], [_allowWriteBoardByUserIdsDecs, 2, "allowWriteBoardByUserIds"], [_allowSendChatDecs, 2, "allowSendChat"], [_allowStartAudioDecs, 2, "allowStartAudio"], [_allowStartVideoDecs, 2, "allowStartVideo"], [_allowJoinWithMutedAudioDecs, 2, "allowJoinWithMutedAudio"], [_allowJoinWithMutedVideoDecs, 2, "allowJoinWithMutedVideo"], [_allowWatermarkDecs, 2, "allowWatermark"], [_allowChangeUserNameDecs, 2, "allowChangeUserName"], [_allowStartCaptionDecs, 2, "allowStartCaption"], [_allowStartTranscribingDecs, 2, "allowStartTranscribing"], [_allowUpdateSttSourceLanguageDecs, 2, "allowUpdateSttSourceLanguage"], [_allowJoinWithPromptSoundDecs, 2, "allowJoinWithPromptSound"]], []).e;
@@ -1,6 +1,6 @@
1
1
  import { FcrSecurityPrivateChatConfigSchema, FcrSecuritySendChatPayloadSchema } from '../../schema';
2
2
  import { FcrLineType, FcrUserInfo } from '../../type';
3
- import { FcrSharePermissionState } from '../whiteboard-control/enums';
3
+ import { FcrSharePermissionState } from '../sharing-control/type';
4
4
  export interface FcrPrivilegeControl {
5
5
  /**
6
6
  * Gets the security information of the specified action.
@@ -38,6 +38,12 @@ export interface FcrPrivilegeControl {
38
38
  * @param targetRoles
39
39
  */
40
40
  allowWriteBoard(enable: boolean, targetRoles: FcrPrivilegeUserRole[]): Promise<void>;
41
+ /**
42
+ * Enables or disables whiteboard write privilege by user ids.
43
+ * @param enable
44
+ * @param targetUserIds
45
+ */
46
+ allowWriteBoardByUserIds(enable: boolean, targetUserIds: string[]): Promise<void>;
41
47
  /**
42
48
  * Enables or disables send chat.
43
49
  * @param enable
@@ -87,6 +93,30 @@ export interface FcrPrivilegeControl {
87
93
  * @param targetRoles
88
94
  */
89
95
  allowWriteAnnotation(enable: boolean, targetRoles: FcrPrivilegeUserRole[]): Promise<void>;
96
+ /**
97
+ * Enables or disables start caption.
98
+ * @param enable
99
+ * @param targetRoles
100
+ */
101
+ allowStartCaption(enable: boolean, targetRoles: FcrPrivilegeUserRole[]): Promise<void>;
102
+ /**
103
+ * Enables or disables start transcribing.
104
+ * @param enable
105
+ * @param targetRoles
106
+ */
107
+ allowStartTranscribing(enable: boolean, targetRoles: FcrPrivilegeUserRole[]): Promise<void>;
108
+ /**
109
+ * Enables or disables update stt source language.
110
+ * @param enable
111
+ * @param targetRoles
112
+ */
113
+ allowUpdateSttSourceLanguage(enable: boolean, targetRoles: FcrPrivilegeUserRole[]): Promise<void>;
114
+ /**
115
+ * Enables or disables join with prompt sound.
116
+ * @param enable
117
+ * @param targetRoles
118
+ */
119
+ allowJoinWithPromptSound(enable: boolean, targetRoles: FcrPrivilegeUserRole[]): Promise<void>;
90
120
  /**
91
121
  * Adds an observer.
92
122
  * @param observer
@@ -173,13 +203,13 @@ export declare enum FcrPrivilegeUserRole {
173
203
  SELF = 7
174
204
  }
175
205
  export declare const FcrPrivilegeUserRoleToStringMap: {
176
- 1: string;
177
- 2: string;
178
- 3: string;
179
- 4: string;
180
- 5: string;
181
- 6: string;
182
- 7: string;
206
+ readonly 1: "host";
207
+ readonly 2: "cohost";
208
+ readonly 3: "participant";
209
+ readonly 4: "audience";
210
+ readonly 5: "observer";
211
+ readonly 6: "robot";
212
+ readonly 7: "~";
183
213
  };
184
214
  export declare const FcrPrivilegeUserStringToRoleMap: {
185
215
  host: FcrPrivilegeUserRole;
@@ -229,6 +259,7 @@ export declare enum FcrPermissionAction {
229
259
  StreamEnableJoinWithVideo = "stream:disallowJoinWithCloseVideo",
230
260
  StreamDisableJoinWithAudio = "stream:allowJoinWithMuteAudio",
231
261
  StreamEnableJoinWithAudio = "stream:disallowJoinWithMuteAudio",
262
+ StreamAllowJoinWithPromptSound = "stream:allowJoinWithPromptSound",
232
263
  WaitingRoomOpen = "waitingRoom:enable",
233
264
  WaitingRoomClose = "waitingRoom:disable",
234
265
  WaitingRoomAddUser = "waitingRoom:addUser",
@@ -260,8 +291,20 @@ export declare enum FcrPermissionAction {
260
291
  BoardDisallowWrite = "board:disallowWrite",
261
292
  InterpreterStart = "interpreter:start",
262
293
  InterpreterStop = "interpreter:stop",
294
+ AnnotationStart = "annotation:start",
263
295
  AnnotationWrite = "annotation:write",
264
- AnnotationAllowWrite = "annotation:allowWrite"
296
+ AnnotationAllowWrite = "annotation:allowWrite",
297
+ SttAllowStartCaption = "stt:allowStartCaption",
298
+ SttDisallowStartCaption = "stt:disallowStartCaption",
299
+ SttAllowStartTranscribe = "stt:allowStartTranscribe",
300
+ SttDisallowStartTranscribe = "stt:disallowStartTranscribe",
301
+ SttAllowModifySpeechLanguage = "stt:allowModifySpeechLanguage",
302
+ SttDisallowModifySpeechLanguage = "stt:disallowModifySpeechLanguage",
303
+ SttStartCaption = "stt:startCaption",
304
+ SttStopCaption = "stt:stopCaption",
305
+ SttStartTranscribe = "stt:startTranscribe",
306
+ SttStopTranscribe = "stt:stopTranscribe",
307
+ SttModifySpeechLanguage = "stt:modifySpeechLanguage"
265
308
  }
266
309
  export type FcrPermission = {
267
310
  action: FcrPermissionAction;
@@ -298,7 +341,11 @@ export declare enum FcrSecurityAction {
298
341
  BoardAllowWrite = "boardAllowWrite",
299
342
  Sharing = "sharing",
300
343
  WaterMark = "watermark",
301
- Annotation = "annotation"
344
+ Annotation = "annotation",
345
+ SttSourceLanguage = "stt",
346
+ SttStartCaption = "caption",
347
+ SttStartTranscribe = "transcribe",
348
+ JoinWithPromptSound = "joinWithPromptSound"
302
349
  }
303
350
  export declare enum FcrWatermarkPermissionState {
304
351
  ON = 1,
@@ -75,6 +75,7 @@ let FcrPermissionAction = exports.FcrPermissionAction = /*#__PURE__*/function (F
75
75
  FcrPermissionAction["StreamEnableJoinWithVideo"] = "stream:disallowJoinWithCloseVideo";
76
76
  FcrPermissionAction["StreamDisableJoinWithAudio"] = "stream:allowJoinWithMuteAudio";
77
77
  FcrPermissionAction["StreamEnableJoinWithAudio"] = "stream:disallowJoinWithMuteAudio";
78
+ FcrPermissionAction["StreamAllowJoinWithPromptSound"] = "stream:allowJoinWithPromptSound";
78
79
  FcrPermissionAction["WaitingRoomOpen"] = "waitingRoom:enable";
79
80
  FcrPermissionAction["WaitingRoomClose"] = "waitingRoom:disable";
80
81
  FcrPermissionAction["WaitingRoomAddUser"] = "waitingRoom:addUser";
@@ -106,8 +107,20 @@ let FcrPermissionAction = exports.FcrPermissionAction = /*#__PURE__*/function (F
106
107
  FcrPermissionAction["BoardDisallowWrite"] = "board:disallowWrite";
107
108
  FcrPermissionAction["InterpreterStart"] = "interpreter:start";
108
109
  FcrPermissionAction["InterpreterStop"] = "interpreter:stop";
110
+ FcrPermissionAction["AnnotationStart"] = "annotation:start";
109
111
  FcrPermissionAction["AnnotationWrite"] = "annotation:write";
110
112
  FcrPermissionAction["AnnotationAllowWrite"] = "annotation:allowWrite";
113
+ FcrPermissionAction["SttAllowStartCaption"] = "stt:allowStartCaption";
114
+ FcrPermissionAction["SttDisallowStartCaption"] = "stt:disallowStartCaption";
115
+ FcrPermissionAction["SttAllowStartTranscribe"] = "stt:allowStartTranscribe";
116
+ FcrPermissionAction["SttDisallowStartTranscribe"] = "stt:disallowStartTranscribe";
117
+ FcrPermissionAction["SttAllowModifySpeechLanguage"] = "stt:allowModifySpeechLanguage";
118
+ FcrPermissionAction["SttDisallowModifySpeechLanguage"] = "stt:disallowModifySpeechLanguage";
119
+ FcrPermissionAction["SttStartCaption"] = "stt:startCaption";
120
+ FcrPermissionAction["SttStopCaption"] = "stt:stopCaption";
121
+ FcrPermissionAction["SttStartTranscribe"] = "stt:startTranscribe";
122
+ FcrPermissionAction["SttStopTranscribe"] = "stt:stopTranscribe";
123
+ FcrPermissionAction["SttModifySpeechLanguage"] = "stt:modifySpeechLanguage";
111
124
  return FcrPermissionAction;
112
125
  }({});
113
126
  let FcrOperatePermissionType = exports.FcrOperatePermissionType = /*#__PURE__*/function (FcrOperatePermissionType) {
@@ -139,6 +152,10 @@ let FcrSecurityAction = exports.FcrSecurityAction = /*#__PURE__*/function (FcrSe
139
152
  FcrSecurityAction["Sharing"] = "sharing";
140
153
  FcrSecurityAction["WaterMark"] = "watermark";
141
154
  FcrSecurityAction["Annotation"] = "annotation";
155
+ FcrSecurityAction["SttSourceLanguage"] = "stt";
156
+ FcrSecurityAction["SttStartCaption"] = "caption";
157
+ FcrSecurityAction["SttStartTranscribe"] = "transcribe";
158
+ FcrSecurityAction["JoinWithPromptSound"] = "joinWithPromptSound";
142
159
  return FcrSecurityAction;
143
160
  }({});
144
161
  let FcrWatermarkPermissionState = exports.FcrWatermarkPermissionState = /*#__PURE__*/function (FcrWatermarkPermissionState) {
@@ -58,7 +58,7 @@ class RoomControlFactory {
58
58
  }
59
59
 
60
60
  // 创建聊天室控制
61
- const chatRoomControl = new _chatroom.FcrChatRoomControlImpl(scene, chatConnection, sharedCache);
61
+ const chatRoomControl = new _chatroom.FcrChatRoomControlImpl(scene, chatConnection, sharedCache, false);
62
62
 
63
63
  // 创建房间控制实例
64
64
  return new RoomControlImpl(engine, scene, apiService, config, sharedCache, chatConnection, chatRoomControl);
@@ -3,7 +3,6 @@
3
3
  require("core-js/modules/es.symbol.description.js");
4
4
  require("core-js/modules/es.array.push.js");
5
5
  require("core-js/modules/esnext.function.metadata.js");
6
- require("core-js/modules/esnext.iterator.constructor.js");
7
6
  require("core-js/modules/esnext.iterator.filter.js");
8
7
  require("core-js/modules/esnext.iterator.for-each.js");
9
8
  require("core-js/modules/esnext.symbol.metadata.js");
@@ -14,6 +13,8 @@ Object.defineProperty(exports, "__esModule", {
14
13
  exports.FcrRoomSessionControlImpl = void 0;
15
14
  require("core-js/modules/es.error.cause.js");
16
15
  require("core-js/modules/es.json.stringify.js");
16
+ require("core-js/modules/esnext.iterator.constructor.js");
17
+ require("core-js/modules/esnext.iterator.map.js");
17
18
  require("core-js/modules/esnext.map.delete-all.js");
18
19
  require("core-js/modules/esnext.map.emplace.js");
19
20
  require("core-js/modules/esnext.map.every.js");
@@ -31,10 +32,12 @@ require("core-js/modules/esnext.map.update.js");
31
32
  require("core-js/modules/web.dom-collections.iterator.js");
32
33
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
33
34
  var _imports = require("../../imports");
35
+ var _type = require("../../type");
34
36
  var _error = require("../../utilities/error");
35
37
  var _logger = require("../../utilities/logger");
36
38
  var _validateParams = _interopRequireDefault(require("../../utilities/validate-params"));
37
39
  var _schema = require("../../schema");
40
+ var _helpers = require("../helpers");
38
41
  var _FcrRoomSessionControlImpl;
39
42
  let _initProto, _startRoomSessionDecs, _stopRoomSessionDecs, _acceptRoomSessionDecs, _rejectRoomSessionDecs, _ref;
40
43
  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; }
@@ -47,7 +50,7 @@ function _checkInRHS(e) { if (Object(e) !== e) throw TypeError("right-hand side
47
50
  /**
48
51
  * @internal
49
52
  */
50
- _ref = (_startRoomSessionDecs = [_imports.trace, (0, _validateParams.default)(_schema.fcrRoomSessionParamsSchema)], _stopRoomSessionDecs = [_imports.trace, (0, _validateParams.default)(_schema.stringSchema)], _acceptRoomSessionDecs = [_imports.trace, (0, _validateParams.default)(_schema.fcrSessionBaseSchema, _schema.stringKeyUnknownValueSchema.optional())], _rejectRoomSessionDecs = [_imports.trace, (0, _validateParams.default)(_schema.fcrSessionBaseSchema, _schema.stringKeyUnknownValueSchema.optional())], "logger");
53
+ _ref = (_startRoomSessionDecs = [_imports.trace, (0, _validateParams.default)(_schema.fcrRoomSessionParamsSchema, _schema.fcrPrivilegeUserRoleArraySchema.optional())], _stopRoomSessionDecs = [_imports.trace, (0, _validateParams.default)(_schema.stringSchema)], _acceptRoomSessionDecs = [_imports.trace, (0, _validateParams.default)(_schema.fcrSessionBaseSchema, _schema.stringKeyUnknownValueSchema.optional())], _rejectRoomSessionDecs = [_imports.trace, (0, _validateParams.default)(_schema.fcrSessionBaseSchema, _schema.stringKeyUnknownValueSchema.optional())], "logger");
51
54
  class FcrRoomSessionControlImpl {
52
55
  constructor(_roomControl, _api, _userId) {
53
56
  //@internal
@@ -72,14 +75,15 @@ class FcrRoomSessionControlImpl {
72
75
  });
73
76
  this._task = _imports.AgoraScheduler.shared.addPollingTask(this._executeTask, this._taskInterval, true, () => _imports.ActionWhenTaskFail.CONTINUE);
74
77
  }
75
- async startRoomSession(params) {
78
+ async startRoomSession(params, targetRoles) {
76
79
  try {
77
80
  const session = {
78
- sessionId: (0, _imports.md5)("".concat(Date.now())),
81
+ sessionId: (0, _imports.md5)("".concat(this._userId).concat(Date.now())),
79
82
  sessionKey: params.sessionKey,
80
83
  payload: params.payload,
81
84
  duration: params.duration,
82
- sender: this._userId
85
+ sender: this._userId,
86
+ targetRoles: targetRoles ? targetRoles.map(role => _type.FcrPrivilegeUserRoleToStringMap[role]) : undefined
83
87
  };
84
88
  const {
85
89
  data: {
@@ -91,10 +95,12 @@ class FcrRoomSessionControlImpl {
91
95
  sessionKey: session.sessionKey,
92
96
  duration: session.duration,
93
97
  payload: session.payload,
94
- targetId: this._roomControl.getRoomInfo().roomId
98
+ targetId: this._roomControl.getRoomInfo().roomId,
99
+ targetRoles: session.targetRoles
95
100
  });
96
101
  const nextTs = Date.now() + interval;
97
102
  this._scheduleMap.set(session.sessionId, _objectSpread(_objectSpread({}, params), {}, {
103
+ targetRoles: session.targetRoles,
98
104
  nextTs,
99
105
  startTs: Date.now()
100
106
  }));
@@ -117,6 +123,7 @@ class FcrRoomSessionControlImpl {
117
123
  sessionId: session.sessionId,
118
124
  sessionKey: session.sessionKey,
119
125
  receiverIds: [session.senderId],
126
+ target: 2,
120
127
  action: 1,
121
128
  payload: {
122
129
  cause
@@ -136,6 +143,7 @@ class FcrRoomSessionControlImpl {
136
143
  sessionId: session.sessionId,
137
144
  sessionKey: session.sessionKey,
138
145
  receiverIds: [session.senderId],
146
+ target: 2,
139
147
  action: 2,
140
148
  payload: {
141
149
  cause
@@ -164,6 +172,7 @@ class FcrRoomSessionControlImpl {
164
172
  duration: params.duration,
165
173
  senderId: this._userId,
166
174
  timestamp: params.startTs,
175
+ targetRoles: params.targetRoles,
167
176
  interval: 0
168
177
  };
169
178
  if (this._isSessionExpired(session)) {
@@ -185,6 +194,7 @@ class FcrRoomSessionControlImpl {
185
194
  sessionKey: session.sessionKey,
186
195
  duration: params.duration,
187
196
  payload: session.payload,
197
+ targetRoles: session.targetRoles,
188
198
  targetId: this._roomControl.getRoomInfo().roomId
189
199
  });
190
200
  const nextTs = Date.now() + interval;
@@ -213,13 +223,11 @@ class FcrRoomSessionControlImpl {
213
223
  async _handleRoomMessage(roomId, message) {
214
224
  const {
215
225
  senderId,
216
- payload
217
- } = message;
218
- const {
219
- data,
226
+ payload,
220
227
  cmd
221
- } = payload;
222
- if (cmd === '1001') {
228
+ } = message;
229
+ const data = payload;
230
+ if (cmd === _helpers.ROOM_MESSAGE_COMMANDS.ROOM_SESSION_REQUEST) {
223
231
  const session = {
224
232
  sessionId: data.sessionUuid,
225
233
  sessionKey: data.sessionKey,
@@ -240,7 +248,9 @@ class FcrRoomSessionControlImpl {
240
248
  }
241
249
  this._receivedMap.set(session.sessionId, session);
242
250
  }
243
- } else if (cmd === '1002') {
251
+ } else if (cmd === _helpers.ROOM_MESSAGE_COMMANDS.ROOM_SESSION_ACCEPT) {
252
+ // TODO: BUG FIXSME: onRoomSessionAccepted 和 onRoomSessionRejected 两个事件, apaas private doc 描述的是监听 AgoraRteEngine.onSceneMessageReceived
253
+ // 但是点对点消息实际上触发的是 AgoraRteEngine.onPeerMessageReceived 事件. 所以这里并不会收到 cmd === ROOM_SESSION_ACCEPT 和 ROOM_SESSION_REJECT 的消息.
244
254
  if (data.action === 1) {
245
255
  if (this._scheduleMap.has(data.sessionUuid)) {
246
256
  var _session$payload, _ref2, _data$payload;
@@ -1,11 +1,11 @@
1
- import { FcrSessionResponse } from '../../type';
1
+ import { FcrPrivilegeUserRole, FcrSessionResponse } from '../../type';
2
2
  import { FcrRoomSessionParamsSchema, FcrSessionBaseSchema } from '../../schema';
3
3
  export interface FcrRoomSessionControl {
4
4
  /**
5
5
  * Starts a room session.
6
6
  * @param params
7
7
  */
8
- startRoomSession(params: FcrRoomSessionParams): Promise<string>;
8
+ startRoomSession(params: FcrRoomSessionParams, targetRoles?: FcrPrivilegeUserRole[]): Promise<string>;
9
9
  /**
10
10
  * Stops a room session.
11
11
  * @param sessionId
@@ -3,11 +3,11 @@ import { FcrCoreServiceApi } from '../../service/api';
3
3
  import { FcrScreenStreamCreateConfig, FcrSize, FcrStreamControl } from '../stream-control/type';
4
4
  import { FcrScreenSharingState, FcrSharingControl, FcrSharingObserver, FcrWhiteboardState } from './type';
5
5
  import { FcrPrivilegeControl } from '../privilege-control/type';
6
- import { FcrPrivilegedWhiteboardControl } from '../whiteboard-control-v2/whiteboard-control/type';
6
+ import { FcrWhiteboardControl } from '../whiteboard-control-v2/whiteboard-control/type';
7
7
  import { FcrStreamInfo } from '../../type';
8
8
  import { FcrUserControl } from '../..';
9
9
  import { FcrSharedCache } from '../shared-cache';
10
- import { FcrPrivilegedAnnotationControl } from '../whiteboard-control-v2/annotation-control/type';
10
+ import { FcrAnnotationControl } from '../whiteboard-control-v2/annotation-control/type';
11
11
  export declare class FcrSharingControlImpl implements FcrSharingControl {
12
12
  private _scene;
13
13
  private _api;
@@ -16,7 +16,7 @@ export declare class FcrSharingControlImpl implements FcrSharingControl {
16
16
  private _streamControl;
17
17
  private _sharedCache;
18
18
  private _userControl;
19
- protected logger: import("agora-foundation/lib/logger").Logger;
19
+ protected logger: import("agora-foundation/lib/logger/type").Logger;
20
20
  private _observable;
21
21
  private _annotationControl;
22
22
  private _whiteboardControl;
@@ -35,9 +35,9 @@ export declare class FcrSharingControlImpl implements FcrSharingControl {
35
35
  stop(): Promise<void>;
36
36
  getScreenSharingState(): FcrScreenSharingState;
37
37
  getWhiteboardState(): FcrWhiteboardState;
38
- getAnnotationControl(): FcrPrivilegedAnnotationControl;
38
+ getAnnotationControl(): FcrAnnotationControl;
39
39
  getSharingWindowSize(): FcrSize | undefined;
40
- getBoardControl(): FcrPrivilegedWhiteboardControl;
40
+ getBoardControl(): FcrWhiteboardControl;
41
41
  addObserver(observer: FcrSharingObserver): void;
42
42
  removeObserver(observer: FcrSharingObserver): void;
43
43
  release(): void;
@@ -32,10 +32,11 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
32
32
  var _type = require("./type");
33
33
  var _imports = require("../../imports");
34
34
  var _ = require("../..");
35
- var _enums = require("../whiteboard-control/enums");
36
35
  var _logger = require("../../utilities/logger");
37
- var _whiteboardControl = require("../whiteboard-control-v2/whiteboard-control");
38
- var _annotationControl = require("../whiteboard-control-v2/annotation-control");
36
+ var _factory = require("../whiteboard-control-v2/whiteboard-control/factory");
37
+ var _factory2 = require("../whiteboard-control-v2/annotation-control/factory");
38
+ var _utils = require("../whiteboard-control/utils");
39
+ var _type2 = require("../type");
39
40
  var _FcrSharingControlImpl;
40
41
  let _initProto;
41
42
  function _applyDecs(e, t, r, n, o, a) { function i(e, t, r) { return function (n, o) { return r && r(n), e[t].call(n, o); }; } function c(e, t) { for (var r = 0; r < e.length; r++) e[r].call(t); return t; } function s(e, t, r, n) { if ("function" != typeof e && (n || void 0 !== e)) throw new TypeError(t + " must " + (r || "be") + " a function" + (n ? "" : " or undefined")); return e; } function applyDec(e, t, r, n, o, a, c, u, l, f, p, d, h) { function m(e) { if (!h(e)) throw new TypeError("Attempted to access private element on non-instance"); } var y, v = t[0], g = t[3], b = !u; if (!b) { r || Array.isArray(v) || (v = [v]); var w = {}, S = [], A = 3 === o ? "get" : 4 === o || d ? "set" : "value"; f ? (p || d ? w = { get: _setFunctionName(function () { return g(this); }, n, "get"), set: function (e) { t[4](this, e); } } : w[A] = g, p || _setFunctionName(w[A], n, 2 === o ? "" : A)) : p || (w = Object.getOwnPropertyDescriptor(e, n)); } for (var P = e, j = v.length - 1; j >= 0; j -= r ? 2 : 1) { var D = v[j], E = r ? v[j - 1] : void 0, I = {}, O = { kind: ["field", "accessor", "method", "getter", "setter", "class"][o], name: n, metadata: a, addInitializer: function (e, t) { if (e.v) throw Error("attempted to call addInitializer after decoration was finished"); s(t, "An initializer", "be", !0), c.push(t); }.bind(null, I) }; try { if (b) (y = s(D.call(E, P, O), "class decorators", "return")) && (P = y);else { var k, F; O.static = l, O.private = f, f ? 2 === o ? k = function (e) { return m(e), w.value; } : (o < 4 && (k = i(w, "get", m)), 3 !== o && (F = i(w, "set", m))) : (k = function (e) { return e[n]; }, (o < 2 || 4 === o) && (F = function (e, t) { e[n] = t; })); var N = O.access = { has: f ? h.bind() : function (e) { return n in e; } }; if (k && (N.get = k), F && (N.set = F), P = D.call(E, d ? { get: w.get, set: w.set } : w[A], O), d) { if ("object" == typeof P && P) (y = s(P.get, "accessor.get")) && (w.get = y), (y = s(P.set, "accessor.set")) && (w.set = y), (y = s(P.init, "accessor.init")) && S.push(y);else if (void 0 !== P) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0"); } else s(P, (p ? "field" : "method") + " decorators", "return") && (p ? S.push(P) : w[A] = P); } } finally { I.v = !0; } } return (p || d) && u.push(function (e, t) { for (var r = S.length - 1; r >= 0; r--) t = S[r].call(e, t); return t; }), p || b || (f ? d ? u.push(i(w, "get"), i(w, "set")) : u.push(2 === o ? w[A] : i.call.bind(w[A])) : Object.defineProperty(e, n, w)), P; } function u(e, t) { return Object.defineProperty(e, Symbol.metadata || Symbol.for("Symbol.metadata"), { configurable: !0, enumerable: !0, value: t }); } if (arguments.length >= 6) var l = a[Symbol.metadata || Symbol.for("Symbol.metadata")]; var f = Object.create(null == l ? null : l), p = function (e, t, r, n) { var o, a, i = [], s = function (t) { return _checkInRHS(t) === e; }, u = new Map(); function l(e) { e && i.push(c.bind(null, e)); } for (var f = 0; f < t.length; f++) { var p = t[f]; if (Array.isArray(p)) { var d = p[1], h = p[2], m = p.length > 3, y = 16 & d, v = !!(8 & d), g = 0 == (d &= 7), b = h + "/" + v; if (!g && !m) { var w = u.get(b); if (!0 === w || 3 === w && 4 !== d || 4 === w && 3 !== d) throw Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + h); u.set(b, !(d > 2) || d); } applyDec(v ? e : e.prototype, p, y, m ? "#" + h : _toPropertyKey(h), d, n, v ? a = a || [] : o = o || [], i, v, m, g, 1 === d, v && m ? s : r); } } return l(o), l(a), i; }(e, t, o, f); return r.length || u(e, f), { e: p, get c() { var t = []; return r.length && [u(applyDec(e, [r], n, e.name, 5, f, t), f), c.bind(null, t, e)]; } }; }
@@ -101,9 +102,9 @@ class FcrSharingControlImpl {
101
102
  const currentShareState = this.getScreenSharingState();
102
103
  if (currentShareState === _type.FcrScreenSharingState.START_ONLY_SCREEN) {
103
104
  if (enableAnnotation) {
104
- return this._api.toggleAnnotationActivityState(this._scene.sceneId, _enums.FcrSharePermissionState.ON);
105
+ return this._api.toggleAnnotationActivityState(this._scene.sceneId, _type.FcrSharePermissionState.ON);
105
106
  } else {
106
- return this._api.toggleAnnotationActivityState(this._scene.sceneId, _enums.FcrSharePermissionState.OFF);
107
+ return this._api.toggleAnnotationActivityState(this._scene.sceneId, _type.FcrSharePermissionState.OFF);
107
108
  }
108
109
  }
109
110
  return Promise.resolve();
@@ -135,9 +136,25 @@ class FcrSharingControlImpl {
135
136
  }
136
137
  getAnnotationControl() {
137
138
  if (!this._annotationControl) {
138
- this._annotationControl = new _annotationControl.FcrAnnotationControlFactoryImpl(
139
+ const {
140
+ userId,
141
+ userName
142
+ } = this._userControl.getLocalUser();
143
+ const annotationConfig = {
144
+ userId,
145
+ userName,
146
+ roomId: this._scene.sceneId,
147
+ boardRatio: 1,
148
+ size: {
149
+ width: 1280,
150
+ height: 720
151
+ }
152
+ };
153
+ const permissions = this._privilegeControl.getAllLocalUserPermissionInfo();
154
+ const hasOperationPrivilege = (0, _utils.hasAnnotationWritePermission)(permissions);
155
+ this._annotationControl = new _factory2.FcrAnnotationControlFactoryImpl().createForMainProcess(
139
156
  // @ts-ignore
140
- this._engine._rtmClient._client, this._scene, this._streamControl, this._userControl, this._privilegeControl, this._api).createForMainProcess();
157
+ this._engine._rtmClient._client, hasOperationPrivilege, annotationConfig, this._api);
141
158
  }
142
159
  return this._annotationControl;
143
160
  }
@@ -154,9 +171,22 @@ class FcrSharingControlImpl {
154
171
  }
155
172
  getBoardControl() {
156
173
  if (!this._whiteboardControl) {
157
- this._whiteboardControl = new _whiteboardControl.FcrWhiteboardControlFactoryImpl(
174
+ const factory = new _factory.FcrWhiteboardControlFactoryImpl();
175
+ const permissions = this._privilegeControl.getAllLocalUserPermissionInfo();
176
+ const hasOperationPrivilege = (0, _utils.hasBoardWritePermission)(permissions);
177
+ const {
178
+ userId,
179
+ userName
180
+ } = this._userControl.getLocalUser();
181
+ const boardConfig = {
182
+ userId,
183
+ userName,
184
+ roomId: this._scene.sceneId,
185
+ boardRatio: 0
186
+ };
187
+ this._whiteboardControl = factory.createForMainProcess(
158
188
  // @ts-ignore
159
- this._engine._rtmClient._client, this._scene, this._api, this._sharedCache, this._privilegeControl).createForMainProcess();
189
+ this._engine._rtmClient._client, hasOperationPrivilege, boardConfig, this._scene, this._api, this._sharedCache);
160
190
  }
161
191
  return this._whiteboardControl;
162
192
  }
@@ -216,9 +246,9 @@ class FcrSharingControlImpl {
216
246
  const currentScreenSharingState = this.getScreenSharingState();
217
247
  const causeCmd = cause === null || cause === void 0 ? void 0 : cause.cmd;
218
248
  if (currentScreenSharingState === _type.FcrScreenSharingState.END) {
219
- if (causeData && causeCmd === 10 && causeData.widgetUuid === 'annotation') {
249
+ if (causeData && causeCmd === 10 && causeData.widgetUuid === _type2.FcrWidgetUuid.ANNOTATION) {
220
250
  var _causeData$widgetCaus;
221
- if (((_causeData$widgetCaus = causeData.widgetCause) === null || _causeData$widgetCaus === void 0 ? void 0 : _causeData$widgetCaus.cmd) === 1) {
251
+ if (((_causeData$widgetCaus = causeData.widgetCause) === null || _causeData$widgetCaus === void 0 ? void 0 : _causeData$widgetCaus.cmd) === _type2.FcrWidgetCauseCmd.ANNOTATION) {
222
252
  this._observable.notifyObservers('onScreenSharingUpdated', this.ownerStream, _type.FcrScreenSharingState.END);
223
253
  const isMeSharing = this.ownerId === this._userControl.getLocalUser().userId;
224
254
  if (isMeSharing) {
@@ -230,9 +260,9 @@ class FcrSharingControlImpl {
230
260
  }
231
261
  } else {
232
262
  // 当屏幕共享开启时
233
- if (causeData && causeCmd === 10 && causeData.widgetUuid === 'annotation') {
263
+ if (causeData && causeCmd === 10 && causeData.widgetUuid === _type2.FcrWidgetUuid.ANNOTATION) {
234
264
  var _causeData$widgetCaus2;
235
- if (((_causeData$widgetCaus2 = causeData.widgetCause) === null || _causeData$widgetCaus2 === void 0 ? void 0 : _causeData$widgetCaus2.cmd) === 1) {
265
+ if (((_causeData$widgetCaus2 = causeData.widgetCause) === null || _causeData$widgetCaus2 === void 0 ? void 0 : _causeData$widgetCaus2.cmd) === _type2.FcrWidgetCauseCmd.ANNOTATION) {
236
266
  const screenStream = this._getScreenShareStreamByUuid();
237
267
  this._observable.notifyObservers('onScreenSharingUpdated', screenStream !== null && screenStream !== void 0 ? screenStream : this.ownerStream, _type.FcrScreenSharingState.START_WHIT_ANNOTATION);
238
268
  // const owner = this._userControl.getUser(this.ownerId);
@@ -1,8 +1,8 @@
1
1
  import { FcrStreamInfo, FcrUserInfo } from '../../type';
2
2
  import { FcrScreenStreamCreateConfig, FcrSize } from '../stream-control/type';
3
- import { FcrPrivilegedAnnotationControl } from '../whiteboard-control-v2/annotation-control/type';
4
- import { FcrPrivilegedWhiteboardControl } from '../whiteboard-control-v2/whiteboard-control/type';
5
- import { FcrBoardInactiveReason } from '../whiteboard-control/types';
3
+ import { FcrBoardInactiveReason } from '../whiteboard-control/enum';
4
+ import { FcrAnnotationControl } from '../whiteboard-control-v2/annotation-control/type';
5
+ import { FcrWhiteboardControl } from '../whiteboard-control-v2/whiteboard-control/type';
6
6
  export interface FcrSharingControl {
7
7
  startScreenSharing(config: FcrScreenStreamCreateConfig, size?: FcrSize): Promise<string>;
8
8
  startWhiteboard(): Promise<void>;
@@ -10,8 +10,8 @@ export interface FcrSharingControl {
10
10
  stop(): Promise<void>;
11
11
  getScreenSharingState(): FcrScreenSharingState;
12
12
  getWhiteboardState(): FcrWhiteboardState;
13
- getAnnotationControl(): FcrPrivilegedAnnotationControl;
14
- getBoardControl(): FcrPrivilegedWhiteboardControl;
13
+ getAnnotationControl(): FcrAnnotationControl;
14
+ getBoardControl(): FcrWhiteboardControl;
15
15
  getSharingWindowSize(): FcrSize | undefined;
16
16
  addObserver(observer: FcrSharingObserver): void;
17
17
  removeObserver(observer: FcrSharingObserver): void;
@@ -30,3 +30,7 @@ export declare enum FcrWhiteboardState {
30
30
  END = 0,
31
31
  START = 1
32
32
  }
33
+ export declare enum FcrSharePermissionState {
34
+ ON = 1,
35
+ OFF = 0
36
+ }
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.FcrWhiteboardState = exports.FcrScreenSharingState = void 0;
6
+ exports.FcrWhiteboardState = exports.FcrSharePermissionState = exports.FcrScreenSharingState = void 0;
7
7
  let FcrScreenSharingState = exports.FcrScreenSharingState = /*#__PURE__*/function (FcrScreenSharingState) {
8
8
  FcrScreenSharingState[FcrScreenSharingState["END"] = 0] = "END";
9
9
  FcrScreenSharingState[FcrScreenSharingState["START_ONLY_SCREEN"] = 1] = "START_ONLY_SCREEN";
@@ -14,4 +14,9 @@ let FcrWhiteboardState = exports.FcrWhiteboardState = /*#__PURE__*/function (Fcr
14
14
  FcrWhiteboardState[FcrWhiteboardState["END"] = 0] = "END";
15
15
  FcrWhiteboardState[FcrWhiteboardState["START"] = 1] = "START";
16
16
  return FcrWhiteboardState;
17
+ }({});
18
+ let FcrSharePermissionState = exports.FcrSharePermissionState = /*#__PURE__*/function (FcrSharePermissionState) {
19
+ FcrSharePermissionState[FcrSharePermissionState["ON"] = 1] = "ON";
20
+ FcrSharePermissionState[FcrSharePermissionState["OFF"] = 0] = "OFF";
21
+ return FcrSharePermissionState;
17
22
  }({});
@@ -1 +1,8 @@
1
- export {};
1
+ import { AgoraRteRenderView } from '../../imports';
2
+ export declare class FcrSubscribedStreamsControl {
3
+ private logger;
4
+ getViewId(element: AgoraRteRenderView): string;
5
+ isEmpty(streamId: string): boolean;
6
+ bind(viewId: string, streamId: string): void;
7
+ unbind(viewId: string, streamId: string): void;
8
+ }