fcr-core 3.7.9-alpha → 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 (130) hide show
  1. package/lib/chat-connection/index.d.ts +1 -1
  2. package/lib/chat-connection/index.js +41 -26
  3. package/lib/engine/index.js +72 -78
  4. package/lib/imports.d.ts +7 -2
  5. package/lib/imports.js +26 -4
  6. package/lib/index.d.ts +2 -2
  7. package/lib/index.js +12 -0
  8. package/lib/media-control/desktop.js +22 -17
  9. package/lib/media-control/mobile.js +38 -33
  10. package/lib/media-control/type.d.ts +8 -0
  11. package/lib/monitor-control/index.js +10 -5
  12. package/lib/peer-session/index.js +48 -39
  13. package/lib/plugins/chatroom.js +237 -205
  14. package/lib/room-control/ability-control/index.js +14 -9
  15. package/lib/room-control/ability-control/type.d.ts +4 -1
  16. package/lib/room-control/ability-control/type.js +3 -0
  17. package/lib/room-control/group-control/index.js +21 -16
  18. package/lib/room-control/helpers/constants.d.ts +4 -0
  19. package/lib/room-control/helpers/constants.js +5 -1
  20. package/lib/room-control/helpers/validation-helper.js +1 -1
  21. package/lib/room-control/index.js +66 -38
  22. package/lib/room-control/interpreter-control/index.js +49 -38
  23. package/lib/room-control/interpreter-control/room.js +6 -4
  24. package/lib/room-control/join-before-host-waitingroom-control/index.js +6 -4
  25. package/lib/room-control/mainroom-control/index.js +90 -17
  26. package/lib/room-control/privilege-control/helper.js +8 -5
  27. package/lib/room-control/privilege-control/index.js +66 -19
  28. package/lib/room-control/privilege-control/type.d.ts +57 -10
  29. package/lib/room-control/privilege-control/type.js +17 -0
  30. package/lib/room-control/room-connector-control/index.js +28 -19
  31. package/lib/room-control/room-control-factory.js +3 -2
  32. package/lib/room-control/room-session/index.js +68 -49
  33. package/lib/room-control/room-session/type.d.ts +2 -2
  34. package/lib/room-control/shared-cache.js +36 -29
  35. package/lib/room-control/sharing-control/index.d.ts +5 -5
  36. package/lib/room-control/sharing-control/index.js +81 -43
  37. package/lib/room-control/sharing-control/type.d.ts +9 -5
  38. package/lib/room-control/sharing-control/type.js +6 -1
  39. package/lib/room-control/stream-control/index.d.ts +8 -1
  40. package/lib/room-control/stream-control/index.js +310 -199
  41. package/lib/room-control/stream-control/type.d.ts +6 -0
  42. package/lib/room-control/stt-control/de-compress-gzip.d.ts +1 -0
  43. package/lib/room-control/stt-control/de-compress-gzip.js +49 -0
  44. package/lib/room-control/stt-control/index.d.ts +1 -0
  45. package/lib/room-control/stt-control/index.js +353 -0
  46. package/lib/room-control/stt-control/type.d.ts +142 -0
  47. package/lib/room-control/stt-control/type.js +16 -0
  48. package/lib/room-control/type.d.ts +15 -0
  49. package/lib/room-control/type.js +13 -1
  50. package/lib/room-control/user-control/index.js +143 -136
  51. package/lib/room-control/waitingroom-control/index.js +14 -9
  52. package/lib/room-control/whiteboard-control/enum.d.ts +15 -0
  53. package/lib/room-control/whiteboard-control/{types.js → enum.js} +12 -1
  54. package/lib/room-control/whiteboard-control/type.d.ts +38 -0
  55. package/lib/room-control/whiteboard-control/type.js +15 -0
  56. package/lib/room-control/whiteboard-control/utils.d.ts +3 -0
  57. package/lib/room-control/whiteboard-control/utils.js +23 -0
  58. package/lib/room-control/whiteboard-control-v1/board-subwindow.d.ts +6 -0
  59. package/lib/room-control/whiteboard-control-v1/board-subwindow.js +26 -0
  60. package/lib/room-control/whiteboard-control-v1/board-window.d.ts +58 -0
  61. package/lib/room-control/whiteboard-control-v1/board-window.js +571 -0
  62. package/lib/room-control/{whiteboard-control/enums.d.ts → whiteboard-control-v1/enum.d.ts} +3 -17
  63. package/lib/room-control/{whiteboard-control/enums.js → whiteboard-control-v1/enum.js} +3 -20
  64. package/lib/room-control/whiteboard-control-v1/factory.d.ts +9 -0
  65. package/lib/room-control/whiteboard-control-v1/factory.js +22 -0
  66. package/lib/room-control/whiteboard-control-v1/index.d.ts +1 -0
  67. package/lib/room-control/whiteboard-control-v1/index.js +440 -0
  68. package/lib/room-control/whiteboard-control-v1/mount-manager.d.ts +4 -0
  69. package/lib/room-control/whiteboard-control-v1/mount-manager.js +15 -0
  70. package/lib/room-control/whiteboard-control-v1/type.d.ts +300 -0
  71. package/lib/room-control/whiteboard-control-v1/type.js +13 -0
  72. package/lib/room-control/whiteboard-control-v1/utils.d.ts +53 -0
  73. package/lib/room-control/whiteboard-control-v1/utils.js +290 -0
  74. package/lib/room-control/whiteboard-control-v2/annotation-control/control.d.ts +17 -31
  75. package/lib/room-control/whiteboard-control-v2/annotation-control/control.js +42 -228
  76. package/lib/room-control/whiteboard-control-v2/annotation-control/factory.d.ts +10 -0
  77. package/lib/room-control/whiteboard-control-v2/annotation-control/factory.js +48 -0
  78. package/lib/room-control/whiteboard-control-v2/annotation-control/type.d.ts +11 -19
  79. package/lib/room-control/whiteboard-control-v2/annotation-control/type.js +1 -3
  80. package/lib/room-control/whiteboard-control-v2/base/index.d.ts +42 -0
  81. package/lib/room-control/whiteboard-control-v2/base/index.js +317 -0
  82. package/lib/room-control/whiteboard-control-v2/{main-window.d.ts → base/main-window.d.ts} +6 -4
  83. package/lib/room-control/whiteboard-control-v2/{main-window.js → base/main-window.js} +54 -36
  84. package/lib/room-control/whiteboard-control-v2/constant.d.ts +6 -0
  85. package/lib/room-control/whiteboard-control-v2/constant.js +15 -0
  86. package/lib/room-control/whiteboard-control-v2/enum.d.ts +26 -0
  87. package/lib/room-control/whiteboard-control-v2/enum.js +34 -0
  88. package/lib/room-control/{whiteboard-control/types.d.ts → whiteboard-control-v2/type.d.ts} +51 -165
  89. package/lib/room-control/whiteboard-control-v2/type.js +5 -0
  90. package/lib/room-control/whiteboard-control-v2/utils.d.ts +5 -4
  91. package/lib/room-control/whiteboard-control-v2/utils.js +29 -27
  92. package/lib/room-control/whiteboard-control-v2/whiteboard-control/control.d.ts +34 -33
  93. package/lib/room-control/whiteboard-control-v2/whiteboard-control/control.js +131 -187
  94. package/lib/room-control/whiteboard-control-v2/whiteboard-control/factory.d.ts +11 -0
  95. package/lib/room-control/whiteboard-control-v2/{annotation-control/index.js → whiteboard-control/factory.js} +40 -38
  96. package/lib/room-control/whiteboard-control-v2/whiteboard-control/type.d.ts +18 -30
  97. package/lib/room-control/whiteboard-control-v2/whiteboard-control/type.js +1 -9
  98. package/lib/room-router/index.js +56 -42
  99. package/lib/schema.d.ts +23 -9
  100. package/lib/schema.js +10 -4
  101. package/lib/service/api.d.ts +75 -19
  102. package/lib/service/api.js +401 -208
  103. package/lib/type.d.ts +15 -2
  104. package/lib/type.js +13 -0
  105. package/lib/utilities/collection.js +3 -2
  106. package/lib/utilities/error-helpers.d.ts +2 -1
  107. package/lib/utilities/error-helpers.js +35 -27
  108. package/lib/utilities/error.d.ts +1 -0
  109. package/lib/utilities/error.js +10 -8
  110. package/lib/utilities/join-helper.js +32 -25
  111. package/lib/utilities/logger.d.ts +2 -2
  112. package/lib/utilities/logger.js +6 -3
  113. package/lib/utilities/parameters.js +8 -4
  114. package/lib/utilities/retry-helpers.js +1 -0
  115. package/lib/utilities/shared-storage.d.ts +3 -1
  116. package/lib/utilities/shared-storage.js +10 -1
  117. package/lib/utilities/storage.js +1 -0
  118. package/lib/utilities/stream.js +16 -11
  119. package/lib/utilities/user.js +4 -3
  120. package/lib/utilities/validate-params.js +2 -1
  121. package/package.json +11 -5
  122. package/lib/room-control/whiteboard-control-v2/annotation-control/index.d.ts +0 -19
  123. package/lib/room-control/whiteboard-control-v2/annotation-control/privilege-control.d.ts +0 -36
  124. package/lib/room-control/whiteboard-control-v2/annotation-control/privilege-control.js +0 -252
  125. package/lib/room-control/whiteboard-control-v2/index.d.ts +0 -38
  126. package/lib/room-control/whiteboard-control-v2/index.js +0 -274
  127. package/lib/room-control/whiteboard-control-v2/whiteboard-control/index.d.ts +0 -17
  128. package/lib/room-control/whiteboard-control-v2/whiteboard-control/index.js +0 -30
  129. package/lib/room-control/whiteboard-control-v2/whiteboard-control/privilege-control.d.ts +0 -36
  130. package/lib/room-control/whiteboard-control-v2/whiteboard-control/privilege-control.js +0 -240
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
 
3
+ require("core-js/modules/es.symbol.description.js");
4
+ require("core-js/modules/es.error.cause.js");
3
5
  require("core-js/modules/esnext.function.metadata.js");
4
6
  require("core-js/modules/esnext.map.delete-all.js");
5
7
  require("core-js/modules/esnext.map.emplace.js");
@@ -25,13 +27,16 @@ require("core-js/modules/es.array.push.js");
25
27
  require("core-js/modules/esnext.iterator.constructor.js");
26
28
  require("core-js/modules/esnext.iterator.map.js");
27
29
  require("core-js/modules/esnext.iterator.reduce.js");
30
+ require("core-js/modules/web.dom-collections.iterator.js");
31
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
28
32
  var _type = require("./type");
29
33
  var _imports = require("../../imports");
30
34
  var _logger = require("../../utilities/logger");
31
35
  var _error = require("../../utilities/error");
32
36
  var _validateParams = _interopRequireDefault(require("../../utilities/validate-params"));
33
37
  var _schema = require("../../schema");
34
- let _initProto, _startSessionByPhoneDecs, _startSessionByIPDecs, _stopSessionDecs;
38
+ var _FcrRoomConnectorControlImpl;
39
+ let _initProto, _startSessionByPhoneDecs, _startSessionByIPDecs, _stopSessionDecs, _ref;
35
40
  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)]; } }; }
36
41
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
37
42
  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); }
@@ -40,16 +45,14 @@ function _checkInRHS(e) { if (Object(e) !== e) throw TypeError("right-hand side
40
45
  /**
41
46
  * @internal
42
47
  */
48
+ _ref = (_startSessionByPhoneDecs = [_imports.trace, (0, _validateParams.default)(_schema.fcrPhoneConnectorSessionParamsSchema)], _startSessionByIPDecs = [_imports.trace, (0, _validateParams.default)(_schema.fcrIPConnectorSessionParamsSchema)], _stopSessionDecs = [_imports.trace, (0, _validateParams.default)(_schema.stringSchema)], "logger");
43
49
  class FcrRoomConnectorControlImpl {
44
- static {
45
- [_initProto] = _applyDecs(this, [[_imports.trace, 2, "getRoomConnectorPhoneInfo"], [_imports.trace, 2, "getRoomConnectorIpInfo"], [_startSessionByPhoneDecs, 2, "startSessionByPhone"], [_startSessionByIPDecs, 2, "startSessionByIP"], [_stopSessionDecs, 2, "stopSession"]], []).e;
46
- }
47
- //@internal
48
- [(_startSessionByPhoneDecs = [_imports.trace, (0, _validateParams.default)(_schema.fcrPhoneConnectorSessionParamsSchema)], _startSessionByIPDecs = [_imports.trace, (0, _validateParams.default)(_schema.fcrIPConnectorSessionParamsSchema)], _stopSessionDecs = [_imports.trace, (0, _validateParams.default)(_schema.stringSchema)], "logger")] = (_initProto(this), (0, _logger.createLogger)({
49
- prefix: 'FcrRoomConnectorControlImpl'
50
- }));
51
- _observable = new _imports.AgoraObservable();
52
50
  constructor(_scene, _engine, _api) {
51
+ //@internal
52
+ (0, _defineProperty2.default)(this, _ref, (_initProto(this), (0, _logger.createLogger)({
53
+ prefix: 'FcrRoomConnectorControlImpl'
54
+ })));
55
+ (0, _defineProperty2.default)(this, "_observable", new _imports.AgoraObservable());
53
56
  this._scene = _scene;
54
57
  this._engine = _engine;
55
58
  this._api = _api;
@@ -59,16 +62,18 @@ class FcrRoomConnectorControlImpl {
59
62
  });
60
63
  }
61
64
  getRoomConnectorPhoneInfo() {
65
+ var _ref2;
62
66
  const mid = this._scene.getScenePropertiesByKeyPath('call.mid');
63
- const callIn = this._scene.getScenePropertiesByKeyPath('call.callIn') ?? [];
67
+ const callIn = (_ref2 = this._scene.getScenePropertiesByKeyPath('call.callIn')) !== null && _ref2 !== void 0 ? _ref2 : [];
64
68
  const uid = this._scene.getUserPropertiesByKeyPath('call.uid', this._scene.getLocalUser().getLocalUserId());
65
69
  const regionMap = {
66
70
  cn: _type.FcrRoomConnectorPhoneRegion.CN
67
71
  };
68
- return Promise.resolve(callIn.map(({
69
- callNumbers,
70
- region
71
- }) => {
72
+ return Promise.resolve(callIn.map(_ref3 => {
73
+ let {
74
+ callNumbers,
75
+ region
76
+ } = _ref3;
72
77
  return {
73
78
  region: regionMap[region],
74
79
  phoneNumberList: callNumbers,
@@ -78,12 +83,14 @@ class FcrRoomConnectorControlImpl {
78
83
  }));
79
84
  }
80
85
  getRoomConnectorIpInfo() {
86
+ var _ref4;
81
87
  const mid = this._scene.getScenePropertiesByKeyPath('call.mid');
82
- const callIn = this._scene.getScenePropertiesByKeyPath('call.callIn') ?? [];
88
+ const callIn = (_ref4 = this._scene.getScenePropertiesByKeyPath('call.callIn')) !== null && _ref4 !== void 0 ? _ref4 : [];
83
89
  return Promise.resolve({
84
- addressList: callIn.reduce((prev, {
85
- ipAddresses
86
- }) => {
90
+ addressList: callIn.reduce((prev, _ref5) => {
91
+ let {
92
+ ipAddresses
93
+ } = _ref5;
87
94
  if (Array.isArray(ipAddresses)) {
88
95
  prev.push(...ipAddresses);
89
96
  }
@@ -183,4 +190,6 @@ class FcrRoomConnectorControlImpl {
183
190
  this.addObserver((0, _logger.generateLogObserver)(this.logger, ['onIPConnectorSessionStateUpdated', 'onPhoneConnectorSessionStateUpdated']));
184
191
  }
185
192
  }
186
- exports.FcrRoomConnectorControlImpl = FcrRoomConnectorControlImpl;
193
+ exports.FcrRoomConnectorControlImpl = FcrRoomConnectorControlImpl;
194
+ _FcrRoomConnectorControlImpl = FcrRoomConnectorControlImpl;
195
+ [_initProto] = _applyDecs(_FcrRoomConnectorControlImpl, [[_imports.trace, 2, "getRoomConnectorPhoneInfo"], [_imports.trace, 2, "getRoomConnectorIpInfo"], [_startSessionByPhoneDecs, 2, "startSessionByPhone"], [_startSessionByIPDecs, 2, "startSessionByIP"], [_stopSessionDecs, 2, "stopSession"]], []).e;
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.RoomControlFactory = void 0;
7
+ require("core-js/modules/es.error.cause.js");
7
8
  require("core-js/modules/esnext.iterator.constructor.js");
8
9
  require("core-js/modules/esnext.iterator.map.js");
9
10
  var _type = require("./type");
@@ -53,11 +54,11 @@ class RoomControlFactory {
53
54
  const roomType = roomResponse.room.roomProperties.roomType;
54
55
  const RoomControlImpl = ROOM_CONTROL_IMPLEMENTATIONS[roomType];
55
56
  if (!RoomControlImpl) {
56
- throw (0, _error.generateFcrCoreClientError)(_error.FcrErrorModuleCode.ROOM, _error.FcrErrorCode.UNDEFINED_ERROR, `Unsupported room types: ${roomType}`, new Error(`Unsupported room type: ${roomType}`));
57
+ throw (0, _error.generateFcrCoreClientError)(_error.FcrErrorModuleCode.ROOM, _error.FcrErrorCode.UNDEFINED_ERROR, "Unsupported room types: ".concat(roomType), new Error("Unsupported room type: ".concat(roomType)));
57
58
  }
58
59
 
59
60
  // 创建聊天室控制
60
- const chatRoomControl = new _chatroom.FcrChatRoomControlImpl(scene, chatConnection, sharedCache);
61
+ const chatRoomControl = new _chatroom.FcrChatRoomControlImpl(scene, chatConnection, sharedCache, false);
61
62
 
62
63
  // 创建房间控制实例
63
64
  return new RoomControlImpl(engine, scene, apiService, config, sharedCache, chatConnection, chatRoomControl);
@@ -1,13 +1,20 @@
1
1
  "use strict";
2
2
 
3
+ require("core-js/modules/es.symbol.description.js");
3
4
  require("core-js/modules/es.array.push.js");
4
5
  require("core-js/modules/esnext.function.metadata.js");
6
+ require("core-js/modules/esnext.iterator.filter.js");
7
+ require("core-js/modules/esnext.iterator.for-each.js");
5
8
  require("core-js/modules/esnext.symbol.metadata.js");
6
9
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
7
10
  Object.defineProperty(exports, "__esModule", {
8
11
  value: true
9
12
  });
10
13
  exports.FcrRoomSessionControlImpl = void 0;
14
+ require("core-js/modules/es.error.cause.js");
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");
11
18
  require("core-js/modules/esnext.map.delete-all.js");
12
19
  require("core-js/modules/esnext.map.emplace.js");
13
20
  require("core-js/modules/esnext.map.every.js");
@@ -22,12 +29,19 @@ require("core-js/modules/esnext.map.merge.js");
22
29
  require("core-js/modules/esnext.map.reduce.js");
23
30
  require("core-js/modules/esnext.map.some.js");
24
31
  require("core-js/modules/esnext.map.update.js");
32
+ require("core-js/modules/web.dom-collections.iterator.js");
33
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
34
  var _imports = require("../../imports");
35
+ var _type = require("../../type");
26
36
  var _error = require("../../utilities/error");
27
37
  var _logger = require("../../utilities/logger");
28
38
  var _validateParams = _interopRequireDefault(require("../../utilities/validate-params"));
29
39
  var _schema = require("../../schema");
30
- let _initProto, _startRoomSessionDecs, _stopRoomSessionDecs, _acceptRoomSessionDecs, _rejectRoomSessionDecs;
40
+ var _helpers = require("../helpers");
41
+ var _FcrRoomSessionControlImpl;
42
+ let _initProto, _startRoomSessionDecs, _stopRoomSessionDecs, _acceptRoomSessionDecs, _rejectRoomSessionDecs, _ref;
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; }
44
+ 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; }
31
45
  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)]; } }; }
32
46
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
33
47
  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); }
@@ -36,25 +50,21 @@ function _checkInRHS(e) { if (Object(e) !== e) throw TypeError("right-hand side
36
50
  /**
37
51
  * @internal
38
52
  */
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");
39
54
  class FcrRoomSessionControlImpl {
40
- static {
41
- [_initProto] = _applyDecs(this, [[_startRoomSessionDecs, 2, "startRoomSession"], [_stopRoomSessionDecs, 2, "stopRoomSession"], [_acceptRoomSessionDecs, 2, "acceptRoomSession"], [_rejectRoomSessionDecs, 2, "rejectRoomSession"]], []).e;
42
- }
43
- //@internal
44
- [(_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")] = (_initProto(this), (0, _logger.createLogger)({
45
- prefix: 'FcrRoomSessionControlImpl'
46
- }));
47
- //@internal
48
- _observable = new _imports.AgoraObservable();
49
- //@internal
50
- _taskInterval = _imports.Duration.second(1);
51
- //@internal
52
-
53
- //@internal
54
- _scheduleMap = new Map();
55
- //@internal
56
- _receivedMap = new Map();
57
55
  constructor(_roomControl, _api, _userId) {
56
+ //@internal
57
+ (0, _defineProperty2.default)(this, _ref, (_initProto(this), (0, _logger.createLogger)({
58
+ prefix: 'FcrRoomSessionControlImpl'
59
+ })));
60
+ //@internal
61
+ (0, _defineProperty2.default)(this, "_observable", new _imports.AgoraObservable());
62
+ //@internal
63
+ (0, _defineProperty2.default)(this, "_taskInterval", _imports.Duration.second(1));
64
+ //@internal
65
+ (0, _defineProperty2.default)(this, "_scheduleMap", new Map());
66
+ //@internal
67
+ (0, _defineProperty2.default)(this, "_receivedMap", new Map());
58
68
  this._roomControl = _roomControl;
59
69
  this._api = _api;
60
70
  this._userId = _userId;
@@ -65,14 +75,15 @@ class FcrRoomSessionControlImpl {
65
75
  });
66
76
  this._task = _imports.AgoraScheduler.shared.addPollingTask(this._executeTask, this._taskInterval, true, () => _imports.ActionWhenTaskFail.CONTINUE);
67
77
  }
68
- async startRoomSession(params) {
78
+ async startRoomSession(params, targetRoles) {
69
79
  try {
70
80
  const session = {
71
- sessionId: (0, _imports.md5)(`${Date.now()}`),
81
+ sessionId: (0, _imports.md5)("".concat(this._userId).concat(Date.now())),
72
82
  sessionKey: params.sessionKey,
73
83
  payload: params.payload,
74
84
  duration: params.duration,
75
- sender: this._userId
85
+ sender: this._userId,
86
+ targetRoles: targetRoles ? targetRoles.map(role => _type.FcrPrivilegeUserRoleToStringMap[role]) : undefined
76
87
  };
77
88
  const {
78
89
  data: {
@@ -84,15 +95,16 @@ class FcrRoomSessionControlImpl {
84
95
  sessionKey: session.sessionKey,
85
96
  duration: session.duration,
86
97
  payload: session.payload,
87
- targetId: this._roomControl.getRoomInfo().roomId
98
+ targetId: this._roomControl.getRoomInfo().roomId,
99
+ targetRoles: session.targetRoles
88
100
  });
89
101
  const nextTs = Date.now() + interval;
90
- this._scheduleMap.set(session.sessionId, {
91
- ...params,
102
+ this._scheduleMap.set(session.sessionId, _objectSpread(_objectSpread({}, params), {}, {
103
+ targetRoles: session.targetRoles,
92
104
  nextTs,
93
105
  startTs: Date.now()
94
- });
95
- this.logger.info(`[RoomSession] put into session schedule: ${session.sessionId}, next ts: ${nextTs}, remain: ${nextTs - Date.now()}ms`);
106
+ }));
107
+ this.logger.info("[RoomSession] put into session schedule: ".concat(session.sessionId, ", next ts: ").concat(nextTs, ", remain: ").concat(nextTs - Date.now(), "ms"));
96
108
  return session.sessionId;
97
109
  } catch (e) {
98
110
  throw (0, _error.generateFcrCoreServerError)(_error.FcrErrorCode.LOCAL_HTTP_REQUEST_FAILED, 'start room session failed', e);
@@ -111,6 +123,7 @@ class FcrRoomSessionControlImpl {
111
123
  sessionId: session.sessionId,
112
124
  sessionKey: session.sessionKey,
113
125
  receiverIds: [session.senderId],
126
+ target: 2,
114
127
  action: 1,
115
128
  payload: {
116
129
  cause
@@ -130,6 +143,7 @@ class FcrRoomSessionControlImpl {
130
143
  sessionId: session.sessionId,
131
144
  sessionKey: session.sessionKey,
132
145
  receiverIds: [session.senderId],
146
+ target: 2,
133
147
  action: 2,
134
148
  payload: {
135
149
  cause
@@ -158,16 +172,17 @@ class FcrRoomSessionControlImpl {
158
172
  duration: params.duration,
159
173
  senderId: this._userId,
160
174
  timestamp: params.startTs,
175
+ targetRoles: params.targetRoles,
161
176
  interval: 0
162
177
  };
163
178
  if (this._isSessionExpired(session)) {
164
- this.logger.info(`[RoomSession] room session expired, removed: ${session.sessionId}`);
179
+ this.logger.info("[RoomSession] room session expired, removed: ".concat(session.sessionId));
165
180
  this._scheduleMap.delete(session.sessionId);
166
181
  continue;
167
182
  }
168
183
  // check timeout
169
184
  if (params.nextTs < Date.now()) {
170
- this.logger.info(`[RoomSession] ping session: ${session.sessionId}`);
185
+ this.logger.info("[RoomSession] ping session: ".concat(session.sessionId));
171
186
  try {
172
187
  const {
173
188
  data: {
@@ -179,18 +194,18 @@ class FcrRoomSessionControlImpl {
179
194
  sessionKey: session.sessionKey,
180
195
  duration: params.duration,
181
196
  payload: session.payload,
197
+ targetRoles: session.targetRoles,
182
198
  targetId: this._roomControl.getRoomInfo().roomId
183
199
  });
184
200
  const nextTs = Date.now() + interval;
185
201
  if (this._scheduleMap.has(session.sessionId)) {
186
- this._scheduleMap.set(session.sessionId, {
187
- ...params,
202
+ this._scheduleMap.set(session.sessionId, _objectSpread(_objectSpread({}, params), {}, {
188
203
  nextTs
189
- });
190
- this.logger.info(`[RoomSession] refresh session schedule: ${session.sessionId}, next ts: ${nextTs}`);
204
+ }));
205
+ this.logger.info("[RoomSession] refresh session schedule: ".concat(session.sessionId, ", next ts: ").concat(nextTs));
191
206
  }
192
207
  } catch (e) {
193
- this.logger.error(`[RoomSession] ping session failed: ${e}`);
208
+ this.logger.error("[RoomSession] ping session failed: ".concat(e));
194
209
  }
195
210
  }
196
211
  }
@@ -199,7 +214,7 @@ class FcrRoomSessionControlImpl {
199
214
  const session = this._receivedMap.get(key);
200
215
  if (this._isSessionExpired(session)) {
201
216
  this._receivedMap.delete(key);
202
- this.logger.info(`[RoomSession] delete session callback: ${key}`);
217
+ this.logger.info("[RoomSession] delete session callback: ".concat(key));
203
218
  }
204
219
  }
205
220
  }
@@ -208,13 +223,11 @@ class FcrRoomSessionControlImpl {
208
223
  async _handleRoomMessage(roomId, message) {
209
224
  const {
210
225
  senderId,
211
- payload
212
- } = message;
213
- const {
214
- data,
226
+ payload,
215
227
  cmd
216
- } = payload;
217
- if (cmd === '1001') {
228
+ } = message;
229
+ const data = payload;
230
+ if (cmd === _helpers.ROOM_MESSAGE_COMMANDS.ROOM_SESSION_REQUEST) {
218
231
  const session = {
219
232
  sessionId: data.sessionUuid,
220
233
  sessionKey: data.sessionKey,
@@ -230,14 +243,17 @@ class FcrRoomSessionControlImpl {
230
243
  }
231
244
  if (!this._isSessionExpired(session)) {
232
245
  if (!this._receivedMap.has(session.sessionId)) {
233
- this.logger.info(`[RoomSession] received room session request ${JSON.stringify(session)}`);
246
+ this.logger.info("[RoomSession] received room session request ".concat(JSON.stringify(session)));
234
247
  this._observable.notifyObservers('onRoomSessionReceived', roomId, session);
235
248
  }
236
249
  this._receivedMap.set(session.sessionId, session);
237
250
  }
238
- } 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 的消息.
239
254
  if (data.action === 1) {
240
255
  if (this._scheduleMap.has(data.sessionUuid)) {
256
+ var _session$payload, _ref2, _data$payload;
241
257
  const session = this._scheduleMap.get(data.sessionUuid);
242
258
  const sessionResponse = {
243
259
  sessionId: data.sessionUuid,
@@ -245,15 +261,16 @@ class FcrRoomSessionControlImpl {
245
261
  responderId: senderId,
246
262
  // FIXME: session may be lost when the client refreshes
247
263
  // get payload from original session
248
- payload: session.payload ?? {},
249
- cause: data.payload?.cause ?? {}
264
+ payload: (_session$payload = session.payload) !== null && _session$payload !== void 0 ? _session$payload : {},
265
+ cause: (_ref2 = (_data$payload = data.payload) === null || _data$payload === void 0 ? void 0 : _data$payload.cause) !== null && _ref2 !== void 0 ? _ref2 : {}
250
266
  };
251
- this.logger.info(`[RoomSession] received room session accepted ${JSON.stringify(sessionResponse)}`);
267
+ this.logger.info("[RoomSession] received room session accepted ".concat(JSON.stringify(sessionResponse)));
252
268
  this._scheduleMap.delete(data.sessionUuid);
253
269
  this._observable.notifyObservers('onRoomSessionAccepted', roomId, sessionResponse);
254
270
  }
255
271
  } else if (data.action === 2) {
256
272
  if (this._scheduleMap.has(data.sessionUuid)) {
273
+ var _session$payload2, _ref3, _data$payload2;
257
274
  const session = this._scheduleMap.get(data.sessionUuid);
258
275
  const sessionResponse = {
259
276
  sessionId: data.sessionUuid,
@@ -261,10 +278,10 @@ class FcrRoomSessionControlImpl {
261
278
  responderId: senderId,
262
279
  // FIXME: session may be lost when the client refreshes
263
280
  // get payload from original session
264
- payload: session.payload ?? {},
265
- cause: data.payload?.cause ?? {}
281
+ payload: (_session$payload2 = session.payload) !== null && _session$payload2 !== void 0 ? _session$payload2 : {},
282
+ cause: (_ref3 = (_data$payload2 = data.payload) === null || _data$payload2 === void 0 ? void 0 : _data$payload2.cause) !== null && _ref3 !== void 0 ? _ref3 : {}
266
283
  };
267
- this.logger.info(`[RoomSession] received room session rejected ${JSON.stringify(sessionResponse)}`);
284
+ this.logger.info("[RoomSession] received room session rejected ".concat(JSON.stringify(sessionResponse)));
268
285
  if (this._scheduleMap.has(data.sessionUuid)) {
269
286
  this._scheduleMap.delete(data.sessionUuid);
270
287
  this._observable.notifyObservers('onRoomSessionRejected', roomId, sessionResponse);
@@ -282,4 +299,6 @@ class FcrRoomSessionControlImpl {
282
299
  this.addObserver((0, _logger.generateLogObserver)(this.logger, ['onRoomSessionAccepted', 'onRoomSessionRejected', 'onRoomSessionReceived']));
283
300
  }
284
301
  }
285
- exports.FcrRoomSessionControlImpl = FcrRoomSessionControlImpl;
302
+ exports.FcrRoomSessionControlImpl = FcrRoomSessionControlImpl;
303
+ _FcrRoomSessionControlImpl = FcrRoomSessionControlImpl;
304
+ [_initProto] = _applyDecs(_FcrRoomSessionControlImpl, [[_startRoomSessionDecs, 2, "startRoomSession"], [_stopRoomSessionDecs, 2, "stopRoomSession"], [_acceptRoomSessionDecs, 2, "acceptRoomSession"], [_rejectRoomSessionDecs, 2, "rejectRoomSession"]], []).e;
@@ -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
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
@@ -18,38 +19,44 @@ require("core-js/modules/esnext.map.merge.js");
18
19
  require("core-js/modules/esnext.map.reduce.js");
19
20
  require("core-js/modules/esnext.map.some.js");
20
21
  require("core-js/modules/esnext.map.update.js");
22
+ require("core-js/modules/web.dom-collections.iterator.js");
23
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
21
24
  class FcrRoomCache {
22
- _platformMapByUserId = new Map();
23
- _avatarMapByUserId = new Map();
24
- getUserPlatform = userId => {
25
- return this._platformMapByUserId.get(userId);
26
- };
27
- getUserAvatar = userId => {
28
- return this._avatarMapByUserId.get(userId);
29
- };
30
- setUserPlatform = (userId, platform) => {
31
- this._platformMapByUserId.set(userId, platform);
32
- };
33
- setUserAvatar = (userId, avatar) => {
34
- this._avatarMapByUserId.set(userId, avatar);
35
- };
36
- deleteUserPlatform = userId => {
37
- this._platformMapByUserId.delete(userId);
38
- };
39
- deleteUserAvatar = userId => {
40
- this._avatarMapByUserId.delete(userId);
41
- };
25
+ constructor() {
26
+ (0, _defineProperty2.default)(this, "_platformMapByUserId", new Map());
27
+ (0, _defineProperty2.default)(this, "_avatarMapByUserId", new Map());
28
+ (0, _defineProperty2.default)(this, "getUserPlatform", userId => {
29
+ return this._platformMapByUserId.get(userId);
30
+ });
31
+ (0, _defineProperty2.default)(this, "getUserAvatar", userId => {
32
+ return this._avatarMapByUserId.get(userId);
33
+ });
34
+ (0, _defineProperty2.default)(this, "setUserPlatform", (userId, platform) => {
35
+ this._platformMapByUserId.set(userId, platform);
36
+ });
37
+ (0, _defineProperty2.default)(this, "setUserAvatar", (userId, avatar) => {
38
+ this._avatarMapByUserId.set(userId, avatar);
39
+ });
40
+ (0, _defineProperty2.default)(this, "deleteUserPlatform", userId => {
41
+ this._platformMapByUserId.delete(userId);
42
+ });
43
+ (0, _defineProperty2.default)(this, "deleteUserAvatar", userId => {
44
+ this._avatarMapByUserId.delete(userId);
45
+ });
46
+ }
42
47
  }
43
48
  exports.FcrRoomCache = FcrRoomCache;
44
49
  class FcrSharedCache {
45
- _roomCache = new Map();
46
- getRoomCache = roomId => {
47
- let roomCache = this._roomCache.get(roomId);
48
- if (!roomCache) {
49
- roomCache = new FcrRoomCache();
50
- this._roomCache.set(roomId, roomCache);
51
- }
52
- return roomCache;
53
- };
50
+ constructor() {
51
+ (0, _defineProperty2.default)(this, "_roomCache", new Map());
52
+ (0, _defineProperty2.default)(this, "getRoomCache", roomId => {
53
+ let roomCache = this._roomCache.get(roomId);
54
+ if (!roomCache) {
55
+ roomCache = new FcrRoomCache();
56
+ this._roomCache.set(roomId, roomCache);
57
+ }
58
+ return roomCache;
59
+ });
60
+ }
54
61
  }
55
62
  exports.FcrSharedCache = FcrSharedCache;
@@ -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;