fcr-core 3.10.5 → 3.10.6

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 (127) hide show
  1. package/lib/engine/index.js +108 -102
  2. package/lib/imports.js +0 -1
  3. package/lib/index.d.ts +1 -1
  4. package/lib/media-control/desktop.js +13 -22
  5. package/lib/media-control/mobile.js +13 -22
  6. package/lib/monitor-control/index.js +7 -17
  7. package/lib/peer-session/index.js +121 -120
  8. package/lib/plugins/chat/chatroom.js +96 -119
  9. package/lib/plugins/chat/connector.js +48 -69
  10. package/lib/remote-control/index.js +216 -194
  11. package/lib/room-control/ability-control/index.js +10 -20
  12. package/lib/room-control/application-control/index.js +75 -82
  13. package/lib/room-control/group-control/index.js +30 -31
  14. package/lib/room-control/helpers/board-init-info-helper.js +10 -16
  15. package/lib/room-control/helpers/validation-helper.js +1 -1
  16. package/lib/room-control/index.js +51 -70
  17. package/lib/room-control/infinity-room-control/index.js +19 -27
  18. package/lib/room-control/interpreter-control/index.js +65 -77
  19. package/lib/room-control/interpreter-control/room.js +4 -6
  20. package/lib/room-control/join-before-host-waitingroom-control/index.js +4 -6
  21. package/lib/room-control/mainroom-control/index.js +25 -37
  22. package/lib/room-control/privilege-control/helper.js +13 -28
  23. package/lib/room-control/privilege-control/index.js +28 -36
  24. package/lib/room-control/room-connector-control/index.js +47 -52
  25. package/lib/room-control/room-control-factory.js +12 -10
  26. package/lib/room-control/room-session/index.js +74 -77
  27. package/lib/room-control/shared-cache.js +56 -63
  28. package/lib/room-control/sharing-control/index.js +57 -65
  29. package/lib/room-control/stream-control/index.js +238 -203
  30. package/lib/room-control/stream-control/type.d.ts +11 -1
  31. package/lib/room-control/stt-control/de-compress-gzip.js +0 -10
  32. package/lib/room-control/stt-control/index.js +86 -93
  33. package/lib/room-control/user-control/index.js +155 -162
  34. package/lib/room-control/waitingroom-control/index.js +9 -18
  35. package/lib/room-control/whiteboard-control/utils.js +2 -4
  36. package/lib/room-control/whiteboard-control-v1/board-subwindow.js +1 -2
  37. package/lib/room-control/whiteboard-control-v1/board-window.js +103 -120
  38. package/lib/room-control/whiteboard-control-v1/factory.js +4 -7
  39. package/lib/room-control/whiteboard-control-v1/index.js +67 -80
  40. package/lib/room-control/whiteboard-control-v1/mount-manager.js +2 -4
  41. package/lib/room-control/whiteboard-control-v1/utils.js +14 -17
  42. package/lib/room-control/whiteboard-control-v2/annotation-control/control.js +10 -14
  43. package/lib/room-control/whiteboard-control-v2/annotation-control/factory.js +8 -17
  44. package/lib/room-control/whiteboard-control-v2/base/index.js +53 -61
  45. package/lib/room-control/whiteboard-control-v2/base/main-window.js +30 -39
  46. package/lib/room-control/whiteboard-control-v2/utils.js +10 -10
  47. package/lib/room-control/whiteboard-control-v2/whiteboard-control/control.js +33 -45
  48. package/lib/room-control/whiteboard-control-v2/whiteboard-control/factory.js +11 -27
  49. package/lib/room-control/widget-control/index.js +33 -43
  50. package/lib/room-router/index.js +58 -66
  51. package/lib/service/api.js +548 -446
  52. package/lib/struct.js +2 -5
  53. package/lib/type.d.ts +1 -1
  54. package/lib/utilities/abortable-retry.js +0 -3
  55. package/lib/utilities/collection.js +11 -15
  56. package/lib/utilities/error-helpers.js +27 -34
  57. package/lib/utilities/error.js +3 -4
  58. package/lib/utilities/join-helper.js +31 -37
  59. package/lib/utilities/logger.js +5 -8
  60. package/lib/utilities/parameters.js +10 -21
  61. package/lib/utilities/retry-helpers.js +0 -1
  62. package/lib/utilities/stream.js +11 -16
  63. package/lib/utilities/user.js +3 -4
  64. package/lib/utilities/validate-params.js +1 -1
  65. package/lib/utilities/video-encoder-config.js +5 -10
  66. package/lib-es/engine/index.js +108 -102
  67. package/lib-es/media-control/desktop.js +13 -22
  68. package/lib-es/media-control/mobile.js +13 -22
  69. package/lib-es/monitor-control/index.js +7 -16
  70. package/lib-es/peer-session/index.js +121 -120
  71. package/lib-es/plugins/chat/chatroom.js +95 -118
  72. package/lib-es/plugins/chat/connector.js +47 -67
  73. package/lib-es/remote-control/index.js +216 -194
  74. package/lib-es/room-control/ability-control/index.js +10 -19
  75. package/lib-es/room-control/application-control/index.js +75 -81
  76. package/lib-es/room-control/group-control/index.js +30 -31
  77. package/lib-es/room-control/helpers/board-init-info-helper.js +10 -15
  78. package/lib-es/room-control/helpers/validation-helper.js +1 -1
  79. package/lib-es/room-control/index.js +51 -69
  80. package/lib-es/room-control/infinity-room-control/index.js +19 -26
  81. package/lib-es/room-control/interpreter-control/index.js +65 -77
  82. package/lib-es/room-control/interpreter-control/room.js +4 -5
  83. package/lib-es/room-control/join-before-host-waitingroom-control/index.js +4 -5
  84. package/lib-es/room-control/mainroom-control/index.js +25 -37
  85. package/lib-es/room-control/privilege-control/helper.js +13 -27
  86. package/lib-es/room-control/privilege-control/index.js +28 -36
  87. package/lib-es/room-control/room-connector-control/index.js +47 -52
  88. package/lib-es/room-control/room-control-factory.js +12 -10
  89. package/lib-es/room-control/room-session/index.js +74 -77
  90. package/lib-es/room-control/shared-cache.js +56 -62
  91. package/lib-es/room-control/sharing-control/index.js +57 -64
  92. package/lib-es/room-control/stream-control/index.js +240 -205
  93. package/lib-es/room-control/stt-control/de-compress-gzip.js +0 -10
  94. package/lib-es/room-control/stt-control/index.js +86 -93
  95. package/lib-es/room-control/user-control/index.js +155 -162
  96. package/lib-es/room-control/waitingroom-control/index.js +9 -18
  97. package/lib-es/room-control/whiteboard-control/utils.js +2 -4
  98. package/lib-es/room-control/whiteboard-control-v1/board-subwindow.js +1 -2
  99. package/lib-es/room-control/whiteboard-control-v1/board-window.js +103 -120
  100. package/lib-es/room-control/whiteboard-control-v1/factory.js +4 -6
  101. package/lib-es/room-control/whiteboard-control-v1/index.js +67 -80
  102. package/lib-es/room-control/whiteboard-control-v1/mount-manager.js +2 -3
  103. package/lib-es/room-control/whiteboard-control-v1/utils.js +14 -17
  104. package/lib-es/room-control/whiteboard-control-v2/annotation-control/control.js +10 -13
  105. package/lib-es/room-control/whiteboard-control-v2/annotation-control/factory.js +8 -16
  106. package/lib-es/room-control/whiteboard-control-v2/base/index.js +53 -60
  107. package/lib-es/room-control/whiteboard-control-v2/base/main-window.js +30 -39
  108. package/lib-es/room-control/whiteboard-control-v2/utils.js +10 -10
  109. package/lib-es/room-control/whiteboard-control-v2/whiteboard-control/control.js +33 -45
  110. package/lib-es/room-control/whiteboard-control-v2/whiteboard-control/factory.js +11 -26
  111. package/lib-es/room-control/widget-control/index.js +33 -42
  112. package/lib-es/room-router/index.js +58 -66
  113. package/lib-es/service/api.js +548 -445
  114. package/lib-es/struct.js +2 -4
  115. package/lib-es/utilities/abortable-retry.js +0 -3
  116. package/lib-es/utilities/collection.js +11 -14
  117. package/lib-es/utilities/error-helpers.js +26 -33
  118. package/lib-es/utilities/error.js +3 -4
  119. package/lib-es/utilities/join-helper.js +29 -36
  120. package/lib-es/utilities/logger.js +5 -7
  121. package/lib-es/utilities/parameters.js +10 -21
  122. package/lib-es/utilities/retry-helpers.js +0 -1
  123. package/lib-es/utilities/stream.js +11 -15
  124. package/lib-es/utilities/user.js +3 -4
  125. package/lib-es/utilities/validate-params.js +1 -1
  126. package/lib-es/utilities/video-encoder-config.js +5 -10
  127. package/package.json +4 -4
@@ -1,11 +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");
5
3
  require("core-js/modules/es.array.push.js");
6
4
  require("core-js/modules/esnext.function.metadata.js");
7
- require("core-js/modules/esnext.iterator.filter.js");
8
- require("core-js/modules/esnext.iterator.for-each.js");
9
5
  require("core-js/modules/esnext.symbol.metadata.js");
10
6
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
11
7
  Object.defineProperty(exports, "__esModule", {
@@ -29,9 +25,6 @@ require("core-js/modules/esnext.map.merge.js");
29
25
  require("core-js/modules/esnext.map.reduce.js");
30
26
  require("core-js/modules/esnext.map.some.js");
31
27
  require("core-js/modules/esnext.map.update.js");
32
- require("core-js/modules/web.dom-collections.iterator.js");
33
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
34
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
35
28
  var _imports = require("../../imports");
36
29
  var _schema = require("../../schema");
37
30
  var _type = require("../../type");
@@ -39,37 +32,38 @@ var _error = require("../../utilities/error");
39
32
  var _logger = require("../../utilities/logger");
40
33
  var _validateParams = _interopRequireDefault(require("../../utilities/validate-params"));
41
34
  var _helpers = require("../helpers");
42
- var _FcrRoomSessionControlImpl;
43
- let _initProto, _startRoomSessionDecs, _stopRoomSessionDecs, _acceptRoomSessionDecs, _rejectRoomSessionDecs, _ref;
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
- 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; }
35
+ let _initProto, _startRoomSessionDecs, _stopRoomSessionDecs, _acceptRoomSessionDecs, _rejectRoomSessionDecs;
46
36
  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)]; } }; }
47
37
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
48
38
  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
39
  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
40
  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 = (_startRoomSessionDecs = [(0, _imports.trace)(['params', 'targetRoles']), (0, _validateParams.default)(_schema.fcrRoomSessionParamsSchema, _schema.fcrPrivilegeUserRoleArraySchema.optional())], _stopRoomSessionDecs = [(0, _imports.trace)(['sessionId']), (0, _validateParams.default)(_schema.stringSchema)], _acceptRoomSessionDecs = [(0, _imports.trace)(['session', 'cause']), (0, _validateParams.default)(_schema.fcrSessionBaseSchema, _schema.stringKeyUnknownValueSchema.optional())], _rejectRoomSessionDecs = [(0, _imports.trace)(['session', 'cause']), (0, _validateParams.default)(_schema.fcrSessionBaseSchema, _schema.stringKeyUnknownValueSchema.optional())], "logger");
52
41
  /**
53
42
  * @internal
54
43
  */
55
44
  class FcrRoomSessionControlImpl {
45
+ static {
46
+ [_initProto] = _applyDecs(this, [[_startRoomSessionDecs, 2, "startRoomSession"], [_stopRoomSessionDecs, 2, "stopRoomSession"], [_acceptRoomSessionDecs, 2, "acceptRoomSession"], [_rejectRoomSessionDecs, 2, "rejectRoomSession"], [_imports.trace, 2, "release"]], []).e;
47
+ }
48
+ //@internal
49
+ [(_startRoomSessionDecs = [(0, _imports.trace)(['params', 'targetRoles']), (0, _validateParams.default)(_schema.fcrRoomSessionParamsSchema, _schema.fcrPrivilegeUserRoleArraySchema.optional())], _stopRoomSessionDecs = [(0, _imports.trace)(['sessionId']), (0, _validateParams.default)(_schema.stringSchema)], _acceptRoomSessionDecs = [(0, _imports.trace)(['session', 'cause']), (0, _validateParams.default)(_schema.fcrSessionBaseSchema, _schema.stringKeyUnknownValueSchema.optional())], _rejectRoomSessionDecs = [(0, _imports.trace)(['session', 'cause']), (0, _validateParams.default)(_schema.fcrSessionBaseSchema, _schema.stringKeyUnknownValueSchema.optional())], "logger")] = (_initProto(this), (0, _logger.createLogger)({
50
+ prefix: 'FcrRoomSessionControlImpl'
51
+ }));
52
+ //@internal
53
+ _observable = new _imports.AgoraObservable();
54
+ //@internal
55
+ _taskInterval = _imports.Duration.second(1);
56
+ //@internal
57
+
58
+ //@internal
59
+ _scheduleMap = new Map();
60
+ //@internal
61
+ _receivedMap = new Map();
62
+ //@internal
63
+ _roomObserver = {
64
+ onRoomMessageReceived: this._handleRoomMessage.bind(this)
65
+ };
56
66
  constructor(_roomControl, _api, _userId) {
57
- //@internal
58
- (0, _defineProperty2.default)(this, _ref, (_initProto(this), (0, _logger.createLogger)({
59
- prefix: 'FcrRoomSessionControlImpl'
60
- })));
61
- //@internal
62
- (0, _defineProperty2.default)(this, "_observable", new _imports.AgoraObservable());
63
- //@internal
64
- (0, _defineProperty2.default)(this, "_taskInterval", _imports.Duration.second(1));
65
- //@internal
66
- (0, _defineProperty2.default)(this, "_scheduleMap", new Map());
67
- //@internal
68
- (0, _defineProperty2.default)(this, "_receivedMap", new Map());
69
- //@internal
70
- (0, _defineProperty2.default)(this, "_roomObserver", {
71
- onRoomMessageReceived: this._handleRoomMessage.bind(this)
72
- });
73
67
  this._roomControl = _roomControl;
74
68
  this._api = _api;
75
69
  this._userId = _userId;
@@ -81,30 +75,34 @@ class FcrRoomSessionControlImpl {
81
75
  async startRoomSession(params, targetRoles) {
82
76
  try {
83
77
  const session = {
84
- sessionId: (0, _imports.md5)("".concat(this._userId).concat(Date.now())),
78
+ sessionId: (0, _imports.md5)(`${this._userId}${Date.now()}`),
85
79
  sessionKey: params.sessionKey,
86
80
  payload: params.payload,
87
81
  duration: params.duration,
88
82
  sender: this._userId,
89
83
  targetRoles: targetRoles ? targetRoles.map(role => _type.FcrPrivilegeUserRoleToStringMap[role]) : undefined
90
84
  };
91
- const _await$this$_api$upda = await this._api.updateRoomSession({
92
- userId: this._userId,
93
- sessionId: session.sessionId,
94
- sessionKey: session.sessionKey,
95
- duration: session.duration,
96
- payload: session.payload,
97
- targetId: this._roomControl.getRoomInfo().roomId,
98
- targetRoles: session.targetRoles
99
- }),
100
- interval = _await$this$_api$upda.data.interval;
85
+ const {
86
+ data: {
87
+ interval
88
+ }
89
+ } = await this._api.updateRoomSession({
90
+ userId: this._userId,
91
+ sessionId: session.sessionId,
92
+ sessionKey: session.sessionKey,
93
+ duration: session.duration,
94
+ payload: session.payload,
95
+ targetId: this._roomControl.getRoomInfo().roomId,
96
+ targetRoles: session.targetRoles
97
+ });
101
98
  const nextTs = Date.now() + interval;
102
- this._scheduleMap.set(session.sessionId, _objectSpread(_objectSpread({}, params), {}, {
99
+ this._scheduleMap.set(session.sessionId, {
100
+ ...params,
103
101
  targetRoles: session.targetRoles,
104
102
  nextTs,
105
103
  startTs: Date.now()
106
- }));
107
- this.logger.info("[RoomSession] put into session schedule: ".concat(session.sessionId, ", next ts: ").concat(nextTs, ", remain: ").concat(nextTs - Date.now(), "ms"));
104
+ });
105
+ this.logger.info(`[RoomSession] put into session schedule: ${session.sessionId}, next ts: ${nextTs}, remain: ${nextTs - Date.now()}ms`);
108
106
  return session.sessionId;
109
107
  } catch (e) {
110
108
  throw (0, _error.generateFcrCoreServerError)(_imports.DetailErrorCode.LOCAL_HTTP_REQUEST_FAILED, 'start room session failed');
@@ -193,33 +191,37 @@ class FcrRoomSessionControlImpl {
193
191
  interval: 0
194
192
  };
195
193
  if (this._isSessionExpired(session)) {
196
- this.logger.info("room session expired, removed: ".concat(session.sessionId));
194
+ this.logger.info(`room session expired, removed: ${session.sessionId}`);
197
195
  this._scheduleMap.delete(session.sessionId);
198
196
  continue;
199
197
  }
200
198
  // check timeout
201
199
  if (params.nextTs < Date.now()) {
202
- this.logger.info("ping session: ".concat(session.sessionId));
200
+ this.logger.info(`ping session: ${session.sessionId}`);
203
201
  try {
204
- const _await$this$_api$upda2 = await this._api.updateRoomSession({
205
- userId: this._userId,
206
- sessionId: session.sessionId,
207
- sessionKey: session.sessionKey,
208
- duration: params.duration,
209
- payload: session.payload,
210
- targetRoles: session.targetRoles,
211
- targetId: this._roomControl.getRoomInfo().roomId
212
- }),
213
- interval = _await$this$_api$upda2.data.interval;
202
+ const {
203
+ data: {
204
+ interval
205
+ }
206
+ } = await this._api.updateRoomSession({
207
+ userId: this._userId,
208
+ sessionId: session.sessionId,
209
+ sessionKey: session.sessionKey,
210
+ duration: params.duration,
211
+ payload: session.payload,
212
+ targetRoles: session.targetRoles,
213
+ targetId: this._roomControl.getRoomInfo().roomId
214
+ });
214
215
  const nextTs = Date.now() + interval;
215
216
  if (this._scheduleMap.has(session.sessionId)) {
216
- this._scheduleMap.set(session.sessionId, _objectSpread(_objectSpread({}, params), {}, {
217
+ this._scheduleMap.set(session.sessionId, {
218
+ ...params,
217
219
  nextTs
218
- }));
219
- this.logger.info("[RoomSession] refresh session schedule: ".concat(session.sessionId, ", next ts: ").concat(nextTs));
220
+ });
221
+ this.logger.info(`[RoomSession] refresh session schedule: ${session.sessionId}, next ts: ${nextTs}`);
220
222
  }
221
223
  } catch (e) {
222
- this.logger.error("ping session failed: ".concat(e));
224
+ this.logger.error(`ping session failed: ${e}`);
223
225
  }
224
226
  }
225
227
  }
@@ -228,16 +230,18 @@ class FcrRoomSessionControlImpl {
228
230
  const session = this._receivedMap.get(key);
229
231
  if (this._isSessionExpired(session)) {
230
232
  this._receivedMap.delete(key);
231
- this.logger.info("delete session callback: ".concat(key));
233
+ this.logger.info(`delete session callback: ${key}`);
232
234
  }
233
235
  }
234
236
  }
235
237
 
236
238
  //@internal
237
239
  async _handleRoomMessage(roomId, message) {
238
- const senderId = message.senderId,
239
- payload = message.payload,
240
- cmd = message.cmd;
240
+ const {
241
+ senderId,
242
+ payload,
243
+ cmd
244
+ } = message;
241
245
  const data = payload;
242
246
  if (cmd === _helpers.ROOM_MESSAGE_COMMANDS.ROOM_SESSION_REQUEST) {
243
247
  const session = {
@@ -255,7 +259,7 @@ class FcrRoomSessionControlImpl {
255
259
  }
256
260
  if (!this._isSessionExpired(session)) {
257
261
  if (!this._receivedMap.has(session.sessionId)) {
258
- this.logger.info("[RoomSession] received room session request ".concat(JSON.stringify(session)));
262
+ this.logger.info(`[RoomSession] received room session request ${JSON.stringify(session)}`);
259
263
  this._observable.notifyObservers('onRoomSessionReceived', roomId, session);
260
264
  }
261
265
  this._receivedMap.set(session.sessionId, session);
@@ -265,7 +269,6 @@ class FcrRoomSessionControlImpl {
265
269
  // 但是点对点消息实际上触发的是 AgoraRteEngine.onPeerMessageReceived 事件. 所以这里并不会收到 cmd === ROOM_SESSION_ACCEPT 和 ROOM_SESSION_REJECT 的消息.
266
270
  if (data.action === 1) {
267
271
  if (this._scheduleMap.has(data.sessionUuid)) {
268
- var _session$payload, _ref2, _data$payload;
269
272
  const session = this._scheduleMap.get(data.sessionUuid);
270
273
  const sessionResponse = {
271
274
  sessionId: data.sessionUuid,
@@ -273,16 +276,15 @@ class FcrRoomSessionControlImpl {
273
276
  responderId: senderId,
274
277
  // FIXME: session may be lost when the client refreshes
275
278
  // get payload from original session
276
- payload: (_session$payload = session.payload) !== null && _session$payload !== void 0 ? _session$payload : {},
277
- cause: (_ref2 = (_data$payload = data.payload) === null || _data$payload === void 0 ? void 0 : _data$payload.cause) !== null && _ref2 !== void 0 ? _ref2 : {}
279
+ payload: session.payload ?? {},
280
+ cause: data.payload?.cause ?? {}
278
281
  };
279
- this.logger.info("[RoomSession] received room session accepted ".concat(JSON.stringify(sessionResponse)));
282
+ this.logger.info(`[RoomSession] received room session accepted ${JSON.stringify(sessionResponse)}`);
280
283
  this._scheduleMap.delete(data.sessionUuid);
281
284
  this._observable.notifyObservers('onRoomSessionAccepted', roomId, sessionResponse);
282
285
  }
283
286
  } else if (data.action === 2) {
284
287
  if (this._scheduleMap.has(data.sessionUuid)) {
285
- var _session$payload2, _ref3, _data$payload2;
286
288
  const session = this._scheduleMap.get(data.sessionUuid);
287
289
  const sessionResponse = {
288
290
  sessionId: data.sessionUuid,
@@ -290,10 +292,10 @@ class FcrRoomSessionControlImpl {
290
292
  responderId: senderId,
291
293
  // FIXME: session may be lost when the client refreshes
292
294
  // get payload from original session
293
- payload: (_session$payload2 = session.payload) !== null && _session$payload2 !== void 0 ? _session$payload2 : {},
294
- cause: (_ref3 = (_data$payload2 = data.payload) === null || _data$payload2 === void 0 ? void 0 : _data$payload2.cause) !== null && _ref3 !== void 0 ? _ref3 : {}
295
+ payload: session.payload ?? {},
296
+ cause: data.payload?.cause ?? {}
295
297
  };
296
- this.logger.info("[RoomSession] received room session rejected ".concat(JSON.stringify(sessionResponse)));
298
+ this.logger.info(`[RoomSession] received room session rejected ${JSON.stringify(sessionResponse)}`);
297
299
  if (this._scheduleMap.has(data.sessionUuid)) {
298
300
  this._scheduleMap.delete(data.sessionUuid);
299
301
  this._observable.notifyObservers('onRoomSessionRejected', roomId, sessionResponse);
@@ -311,9 +313,4 @@ class FcrRoomSessionControlImpl {
311
313
  this.addObserver((0, _logger.generateLogObserver)(this.logger, [['onRoomSessionAccepted', ['roomId', 'response']], ['onRoomSessionRejected', ['roomId', 'response']], ['onRoomSessionReceived', ['roomId', 'session']]]));
312
314
  }
313
315
  }
314
- exports.FcrRoomSessionControlImpl = FcrRoomSessionControlImpl;
315
- _FcrRoomSessionControlImpl = FcrRoomSessionControlImpl;
316
- var _applyDecs$e = _applyDecs(_FcrRoomSessionControlImpl, [[_startRoomSessionDecs, 2, "startRoomSession"], [_stopRoomSessionDecs, 2, "stopRoomSession"], [_acceptRoomSessionDecs, 2, "acceptRoomSession"], [_rejectRoomSessionDecs, 2, "rejectRoomSession"], [_imports.trace, 2, "release"]], []).e;
317
- var _applyDecs$e2 = (0, _slicedToArray2.default)(_applyDecs$e, 1);
318
- _initProto = _applyDecs$e2[0];
319
- _applyDecs$e;
316
+ exports.FcrRoomSessionControlImpl = FcrRoomSessionControlImpl;
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
@@ -20,77 +19,71 @@ require("core-js/modules/esnext.map.merge.js");
20
19
  require("core-js/modules/esnext.map.reduce.js");
21
20
  require("core-js/modules/esnext.map.some.js");
22
21
  require("core-js/modules/esnext.map.update.js");
23
- require("core-js/modules/web.dom-collections.iterator.js");
24
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
22
  class FcrRoomCache {
26
- constructor() {
27
- (0, _defineProperty2.default)(this, "_platformMapByUserId", new Map());
28
- (0, _defineProperty2.default)(this, "_avatarMapByUserId", new Map());
29
- (0, _defineProperty2.default)(this, "_userMapByUserId", new Map());
30
- //@internal
31
- (0, _defineProperty2.default)(this, "_userList", []);
32
- (0, _defineProperty2.default)(this, "setUserMapByUserId", (userId, user) => {
33
- this._userMapByUserId.set(userId, user);
34
- });
35
- (0, _defineProperty2.default)(this, "deleteUserMapByUserId", userId => {
36
- this._userMapByUserId.delete(userId);
37
- });
38
- (0, _defineProperty2.default)(this, "setUserList", userList => {
39
- this._userList = userList;
40
- });
41
- (0, _defineProperty2.default)(this, "insertUserToList", (index, user) => {
42
- this._userList.splice(index, 0, user);
43
- });
44
- (0, _defineProperty2.default)(this, "deleteUserList", index => {
45
- this._userList.splice(index, 1);
46
- });
47
- (0, _defineProperty2.default)(this, "addUserToList", user => {
48
- this._userList.push(user);
49
- });
50
- (0, _defineProperty2.default)(this, "getUserPlatform", userId => {
51
- return this._platformMapByUserId.get(userId);
52
- });
53
- (0, _defineProperty2.default)(this, "getUserAvatar", userId => {
54
- return this._avatarMapByUserId.get(userId);
55
- });
56
- (0, _defineProperty2.default)(this, "setUserPlatform", (userId, platform) => {
57
- this._platformMapByUserId.set(userId, platform);
58
- });
59
- (0, _defineProperty2.default)(this, "setUserAvatar", (userId, avatar) => {
60
- this._avatarMapByUserId.set(userId, avatar);
61
- });
62
- (0, _defineProperty2.default)(this, "deleteUserPlatform", userId => {
63
- this._platformMapByUserId.delete(userId);
64
- });
65
- (0, _defineProperty2.default)(this, "deleteUserAvatar", userId => {
66
- this._avatarMapByUserId.delete(userId);
67
- });
68
- (0, _defineProperty2.default)(this, "clear", () => {
69
- this._userMapByUserId.clear();
70
- this._userList = [];
71
- this._platformMapByUserId.clear();
72
- this._avatarMapByUserId.clear();
73
- });
74
- }
23
+ _platformMapByUserId = new Map();
24
+ _avatarMapByUserId = new Map();
25
+ _userMapByUserId = new Map();
26
+ //@internal
27
+ _userList = [];
75
28
  get userList() {
76
29
  return this._userList;
77
30
  }
78
31
  get userMapByUserId() {
79
32
  return this._userMapByUserId;
80
33
  }
34
+ setUserMapByUserId = (userId, user) => {
35
+ this._userMapByUserId.set(userId, user);
36
+ };
37
+ deleteUserMapByUserId = userId => {
38
+ this._userMapByUserId.delete(userId);
39
+ };
40
+ setUserList = userList => {
41
+ this._userList = userList;
42
+ };
43
+ insertUserToList = (index, user) => {
44
+ this._userList.splice(index, 0, user);
45
+ };
46
+ deleteUserList = index => {
47
+ this._userList.splice(index, 1);
48
+ };
49
+ addUserToList = user => {
50
+ this._userList.push(user);
51
+ };
52
+ getUserPlatform = userId => {
53
+ return this._platformMapByUserId.get(userId);
54
+ };
55
+ getUserAvatar = userId => {
56
+ return this._avatarMapByUserId.get(userId);
57
+ };
58
+ setUserPlatform = (userId, platform) => {
59
+ this._platformMapByUserId.set(userId, platform);
60
+ };
61
+ setUserAvatar = (userId, avatar) => {
62
+ this._avatarMapByUserId.set(userId, avatar);
63
+ };
64
+ deleteUserPlatform = userId => {
65
+ this._platformMapByUserId.delete(userId);
66
+ };
67
+ deleteUserAvatar = userId => {
68
+ this._avatarMapByUserId.delete(userId);
69
+ };
70
+ clear = () => {
71
+ this._userMapByUserId.clear();
72
+ this._userList = [];
73
+ this._platformMapByUserId.clear();
74
+ this._avatarMapByUserId.clear();
75
+ };
81
76
  }
82
77
  exports.FcrRoomCache = FcrRoomCache;
83
78
  class FcrSharedCache {
84
- constructor() {
85
- (0, _defineProperty2.default)(this, "_roomCache", new Map());
86
- (0, _defineProperty2.default)(this, "getRoomCache", roomId => {
87
- let roomCache = this._roomCache.get(roomId);
88
- if (!roomCache) {
89
- roomCache = new FcrRoomCache();
90
- this._roomCache.set(roomId, roomCache);
91
- }
92
- return roomCache;
93
- });
94
- }
79
+ _roomCache = new Map();
80
+ getRoomCache = roomId => {
81
+ let roomCache = this._roomCache.get(roomId);
82
+ if (!roomCache) {
83
+ roomCache = new FcrRoomCache();
84
+ this._roomCache.set(roomId, roomCache);
85
+ }
86
+ return roomCache;
87
+ };
95
88
  }
96
89
  exports.FcrSharedCache = FcrSharedCache;