fcr-core 3.10.2 → 3.10.5

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