fcr-core 3.11.0-rc.2 → 3.11.0

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 +83 -63
  17. package/lib/room-control/infinity-room-control/index.js +31 -21
  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 +41 -27
  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 +201 -170
  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 +63 -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 +460 -564
  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 +25 -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 +82 -63
  80. package/lib-es/room-control/infinity-room-control/index.js +30 -21
  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 +41 -27
  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 +200 -170
  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 +62 -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 +459 -564
  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 +25 -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 +8 -9
@@ -1,7 +1,12 @@
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.constructor.js");
8
+ require("core-js/modules/esnext.iterator.filter.js");
9
+ require("core-js/modules/esnext.iterator.for-each.js");
5
10
  require("core-js/modules/esnext.symbol.metadata.js");
6
11
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
7
12
  Object.defineProperty(exports, "__esModule", {
@@ -23,12 +28,18 @@ require("core-js/modules/esnext.map.merge.js");
23
28
  require("core-js/modules/esnext.map.reduce.js");
24
29
  require("core-js/modules/esnext.map.some.js");
25
30
  require("core-js/modules/esnext.map.update.js");
31
+ require("core-js/modules/web.dom-collections.iterator.js");
32
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
33
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
26
34
  var _imports = require("../imports");
27
35
  var _error = require("../utilities/error");
28
36
  var _logger = require("../utilities/logger");
29
37
  var _schema = require("../schema");
30
38
  var _validateParams = _interopRequireDefault(require("../utilities/validate-params"));
31
- let _initProto, _startPeerSessionDecs, _stopPeerSessionDecs, _endPeerSessionDecs, _acceptPeerSessionDecs, _rejectPeerSessionDecs;
39
+ var _FcrPeerSessionControlImpl;
40
+ let _initProto, _startPeerSessionDecs, _stopPeerSessionDecs, _endPeerSessionDecs, _acceptPeerSessionDecs, _rejectPeerSessionDecs, _ref;
41
+ 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; }
42
+ 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; }
32
43
  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)]; } }; }
33
44
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
34
45
  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); }
@@ -42,29 +53,25 @@ const KEEPALIVE_TIMEOUT_MULTIPLIER = exports.KEEPALIVE_TIMEOUT_MULTIPLIER = 2;
42
53
  /**
43
54
  * @internal
44
55
  */
56
+ _ref = (_startPeerSessionDecs = [(0, _imports.trace)(['params']), (0, _validateParams.default)(_schema.fcrPeerSessionParamsSchema)], _stopPeerSessionDecs = [(0, _imports.trace)(['sessionId']), (0, _validateParams.default)(_schema.stringSchema)], _endPeerSessionDecs = [(0, _imports.trace)(['sessionId', 'cause']), (0, _validateParams.default)(_schema.stringSchema, _schema.stringKeyUnknownValueSchema.optional())], _acceptPeerSessionDecs = [(0, _imports.trace)(['session', 'cause']), (0, _validateParams.default)(_schema.fcrSessionBaseSchema, _schema.stringKeyUnknownValueSchema.optional())], _rejectPeerSessionDecs = [(0, _imports.trace)(['session', 'cause']), (0, _validateParams.default)(_schema.fcrSessionBaseSchema, _schema.stringKeyUnknownValueSchema.optional())], "logger");
45
57
  class FcrPeerSessionControlImpl {
46
- static {
47
- [_initProto] = _applyDecs(this, [[_startPeerSessionDecs, 2, "startPeerSession"], [_stopPeerSessionDecs, 2, "stopPeerSession"], [_endPeerSessionDecs, 2, "endPeerSession"], [_acceptPeerSessionDecs, 2, "acceptPeerSession"], [_rejectPeerSessionDecs, 2, "rejectPeerSession"], [_imports.trace, 2, "release"]], []).e;
48
- }
49
- //@internal
50
- [(_startPeerSessionDecs = [(0, _imports.trace)(['params']), (0, _validateParams.default)(_schema.fcrPeerSessionParamsSchema)], _stopPeerSessionDecs = [(0, _imports.trace)(['sessionId']), (0, _validateParams.default)(_schema.stringSchema)], _endPeerSessionDecs = [(0, _imports.trace)(['sessionId', 'cause']), (0, _validateParams.default)(_schema.stringSchema, _schema.stringKeyUnknownValueSchema.optional())], _acceptPeerSessionDecs = [(0, _imports.trace)(['session', 'cause']), (0, _validateParams.default)(_schema.fcrSessionBaseSchema, _schema.stringKeyUnknownValueSchema.optional())], _rejectPeerSessionDecs = [(0, _imports.trace)(['session', 'cause']), (0, _validateParams.default)(_schema.fcrSessionBaseSchema, _schema.stringKeyUnknownValueSchema.optional())], "logger")] = (_initProto(this), (0, _logger.createLogger)({
51
- prefix: 'FcrPeerSessionControlImpl'
52
- }));
53
- //@internal
54
- _observable = new _imports.AgoraObservable();
55
- //@internal
56
- _taskInterval = _imports.Duration.second(1);
57
- //@internal
58
-
59
- //@internal
60
- _scheduleMap = new Map();
61
- //@internal
62
- _receivedMap = new Map();
63
- //@internal
64
- _engineObserver = {
65
- onPeerMessageReceived: this._handlePeerMessage.bind(this)
66
- };
67
58
  constructor(_rteEngine, _api, _userId) {
59
+ //@internal
60
+ (0, _defineProperty2.default)(this, _ref, (_initProto(this), (0, _logger.createLogger)({
61
+ prefix: 'FcrPeerSessionControlImpl'
62
+ })));
63
+ //@internal
64
+ (0, _defineProperty2.default)(this, "_observable", new _imports.AgoraObservable());
65
+ //@internal
66
+ (0, _defineProperty2.default)(this, "_taskInterval", _imports.Duration.second(1));
67
+ //@internal
68
+ (0, _defineProperty2.default)(this, "_scheduleMap", new Map());
69
+ //@internal
70
+ (0, _defineProperty2.default)(this, "_receivedMap", new Map());
71
+ //@internal
72
+ (0, _defineProperty2.default)(this, "_engineObserver", {
73
+ onPeerMessageReceived: this._handlePeerMessage.bind(this)
74
+ });
68
75
  this._rteEngine = _rteEngine;
69
76
  this._api = _api;
70
77
  this._userId = _userId;
@@ -76,7 +83,7 @@ class FcrPeerSessionControlImpl {
76
83
  async startPeerSession(params) {
77
84
  try {
78
85
  const session = {
79
- sessionId: (0, _imports.md5)(`${Date.now()}`),
86
+ sessionId: (0, _imports.md5)("".concat(Date.now())),
80
87
  sessionKey: params.sessionKey,
81
88
  payload: params.payload,
82
89
  duration: params.duration,
@@ -87,28 +94,24 @@ class FcrPeerSessionControlImpl {
87
94
  if (this._scheduleMap.has(session.sessionId)) {
88
95
  throw (0, _error.generateFcrCoreClientError)(_imports.ErrorModuleCode.FCR_PEER_SESSION, _imports.DetailErrorCode.PEER_SESSION_ALREADY_EXISTS, 'peer session already exists');
89
96
  }
90
- const {
91
- data: {
92
- interval
93
- }
94
- } = await this._api.updatePeerSession({
95
- userId: this._userId,
96
- sessionId: session.sessionId,
97
- sessionKey: session.sessionKey,
98
- duration: session.duration,
99
- payload: session.payload,
100
- targetId: params.receiverId,
101
- keepAlive: params.keepAlive,
102
- action: 0
103
- });
97
+ const _await$this$_api$upda = await this._api.updatePeerSession({
98
+ userId: this._userId,
99
+ sessionId: session.sessionId,
100
+ sessionKey: session.sessionKey,
101
+ duration: session.duration,
102
+ payload: session.payload,
103
+ targetId: params.receiverId,
104
+ keepAlive: params.keepAlive,
105
+ action: 0
106
+ }),
107
+ interval = _await$this$_api$upda.data.interval;
104
108
  const nextTs = Date.now() + interval;
105
- this._scheduleMap.set(session.sessionId, {
106
- ...params,
109
+ this._scheduleMap.set(session.sessionId, _objectSpread(_objectSpread({}, params), {}, {
107
110
  nextTs,
108
111
  startTs: Date.now(),
109
112
  action: 0
110
- });
111
- this.logger.info(`[PeerSession] put into session schedule: ${session.sessionId}, next ts: ${nextTs}, remain: ${nextTs - Date.now()}ms`);
113
+ }));
114
+ this.logger.info("[PeerSession] put into session schedule: ".concat(session.sessionId, ", next ts: ").concat(nextTs, ", remain: ").concat(nextTs - Date.now(), "ms"));
112
115
  return session.sessionId;
113
116
  } catch (e) {
114
117
  throw (0, _error.generateFcrCoreServerError)(_imports.DetailErrorCode.LOCAL_HTTP_REQUEST_FAILED, 'start peer session failed');
@@ -151,27 +154,23 @@ class FcrPeerSessionControlImpl {
151
154
  if (session.keepAlive) {
152
155
  const params = this._receivedMap.get(session.sessionId);
153
156
  if (params) {
154
- const {
155
- data: {
156
- interval
157
- }
158
- } = await this._api.updatePeerSession({
159
- userId: this._userId,
160
- sessionId: session.sessionId,
161
- sessionKey: session.sessionKey,
162
- duration: session.duration,
163
- payload: session.payload,
164
- targetId: session.senderId,
165
- keepAlive: session.keepAlive,
166
- action: 1
167
- });
157
+ const _await$this$_api$upda2 = await this._api.updatePeerSession({
158
+ userId: this._userId,
159
+ sessionId: session.sessionId,
160
+ sessionKey: session.sessionKey,
161
+ duration: session.duration,
162
+ payload: session.payload,
163
+ targetId: session.senderId,
164
+ keepAlive: session.keepAlive,
165
+ action: 1
166
+ }),
167
+ interval = _await$this$_api$upda2.data.interval;
168
168
  const _now = Date.now();
169
- this._receivedMap.set(session.sessionId, {
170
- ...params,
169
+ this._receivedMap.set(session.sessionId, _objectSpread(_objectSpread({}, params), {}, {
171
170
  nextTs: _now + interval,
172
171
  startTs: _now,
173
172
  action: 1
174
- });
173
+ }));
175
174
  return;
176
175
  }
177
176
  }
@@ -254,7 +253,7 @@ class FcrPeerSessionControlImpl {
254
253
  action: params.action
255
254
  };
256
255
  if (this._isSessionExpired(session)) {
257
- this.logger.info(`peer session expired, removed: ${session.sessionId}`);
256
+ this.logger.info("peer session expired, removed: ".concat(session.sessionId));
258
257
  if (session.keepAlive) {
259
258
  await this.endPeerSession(session.sessionId);
260
259
  }
@@ -266,32 +265,28 @@ class FcrPeerSessionControlImpl {
266
265
 
267
266
  // check timeout
268
267
  if (params.nextTs < Date.now()) {
269
- this.logger.info(`ping session: ${session.sessionId}`);
268
+ this.logger.info("ping session: ".concat(session.sessionId));
270
269
  try {
271
- const {
272
- data: {
273
- interval
274
- }
275
- } = await this._api.updatePeerSession({
276
- userId: this._userId,
277
- sessionId: session.sessionId,
278
- sessionKey: session.sessionKey,
279
- duration: params.duration,
280
- payload: session.payload,
281
- targetId: params.receiverId,
282
- keepAlive: params.keepAlive,
283
- action: params.action
284
- });
270
+ const _await$this$_api$upda3 = await this._api.updatePeerSession({
271
+ userId: this._userId,
272
+ sessionId: session.sessionId,
273
+ sessionKey: session.sessionKey,
274
+ duration: params.duration,
275
+ payload: session.payload,
276
+ targetId: params.receiverId,
277
+ keepAlive: params.keepAlive,
278
+ action: params.action
279
+ }),
280
+ interval = _await$this$_api$upda3.data.interval;
285
281
  const nextTs = Date.now() + interval;
286
282
  if (this._scheduleMap.has(session.sessionId)) {
287
- this._scheduleMap.set(session.sessionId, {
288
- ...params,
283
+ this._scheduleMap.set(session.sessionId, _objectSpread(_objectSpread({}, params), {}, {
289
284
  nextTs
290
- });
291
- this.logger.info(`[PeerSession] refresh session schedule: ${session.sessionId}, next ts: ${nextTs}`);
285
+ }));
286
+ this.logger.info("[PeerSession] refresh session schedule: ".concat(session.sessionId, ", next ts: ").concat(nextTs));
292
287
  }
293
288
  } catch (e) {
294
- this.logger.error(`ping session failed: ${e}`);
289
+ this.logger.error("ping session failed: ".concat(e));
295
290
  }
296
291
  }
297
292
  }
@@ -299,7 +294,7 @@ class FcrPeerSessionControlImpl {
299
294
  for (const key of this._receivedMap.keys()) {
300
295
  const session = this._receivedMap.get(key);
301
296
  if (this._isSessionExpired(session)) {
302
- this.logger.info(`peer session expired, removed: ${key}`);
297
+ this.logger.info("peer session expired, removed: ".concat(key));
303
298
  if (session.keepAlive) {
304
299
  await this.endPeerSession(key);
305
300
  }
@@ -311,23 +306,21 @@ class FcrPeerSessionControlImpl {
311
306
  // 如果会话是keepAlive的,并且距离上次ping的时间超过2倍interval,则认为会话已过期(可能因为对方或己方已经掉线),需要结束会话
312
307
  if (session.keepAlive && session.nextTs + session.interval * KEEPALIVE_TIMEOUT_MULTIPLIER < Date.now()) {
313
308
  await this.endPeerSession(key);
314
- this.logger.info(`peer session has not been pinged, removed: ${key}`);
309
+ this.logger.info("peer session has not been pinged, removed: ".concat(key));
315
310
  }
316
311
  }
317
312
  }
318
313
 
319
314
  //@internal
320
315
  async _handlePeerMessage(message) {
321
- const {
322
- senderId,
323
- payload
324
- } = message;
325
- const {
326
- data,
327
- cmd
328
- } = payload;
329
- const logContext = `cmd=${cmd}, sessionKey=${data.sessionKey}, sessionId=${data.sessionUuid}, ` + `action=${String(data.action)}, senderId=${senderId}, keepAlive=${!!data.keepAlive}`;
330
- this.logger.info(`[PeerSession] received peer message: ${logContext}, payload=${JSON.stringify(data.payload ?? {})}`);
316
+ var _data$payload;
317
+ const senderId = message.senderId,
318
+ payload = message.payload;
319
+ const _ref2 = payload,
320
+ data = _ref2.data,
321
+ cmd = _ref2.cmd;
322
+ const logContext = "cmd=".concat(cmd, ", sessionKey=").concat(data.sessionKey, ", sessionId=").concat(data.sessionUuid, ", ") + "action=".concat(String(data.action), ", senderId=").concat(senderId, ", keepAlive=").concat(!!data.keepAlive);
323
+ this.logger.info("[PeerSession] received peer message: ".concat(logContext, ", payload=").concat(JSON.stringify((_data$payload = data.payload) !== null && _data$payload !== void 0 ? _data$payload : {})));
331
324
  if (cmd === '1001') {
332
325
  const session = {
333
326
  sessionId: data.sessionUuid,
@@ -347,53 +340,52 @@ class FcrPeerSessionControlImpl {
347
340
  if (!this._isSessionExpired(session)) {
348
341
  if (data.action === 1) {
349
342
  if (this._scheduleMap.has(session.sessionId)) {
343
+ var _session$payload, _ref3, _data$payload2;
350
344
  const sessionResponse = {
351
345
  sessionId: session.sessionId,
352
346
  sessionKey: session.sessionKey,
353
347
  responderId: senderId,
354
- payload: session.payload ?? {},
355
- cause: data.payload?.cause ?? {},
348
+ payload: (_session$payload = session.payload) !== null && _session$payload !== void 0 ? _session$payload : {},
349
+ cause: (_ref3 = (_data$payload2 = data.payload) === null || _data$payload2 === void 0 ? void 0 : _data$payload2.cause) !== null && _ref3 !== void 0 ? _ref3 : {},
356
350
  keepAlive: !!session.keepAlive
357
351
  };
358
352
  const params = this._scheduleMap.get(session.sessionId);
359
- this._scheduleMap.set(session.sessionId, {
360
- ...params,
353
+ this._scheduleMap.set(session.sessionId, _objectSpread(_objectSpread({}, params), {}, {
361
354
  action: 1
362
- });
363
- this.logger.info(`[PeerSession] forward peer session accepted to observers: ${logContext}`);
355
+ }));
356
+ this.logger.info("[PeerSession] forward peer session accepted to observers: ".concat(logContext));
364
357
  this._observable.notifyObservers('onPeerSessionAccepted', sessionResponse);
365
358
  } else {
366
- this.logger.info(`[PeerSession] ignore peer session accepted without local schedule: ${logContext}`);
359
+ this.logger.info("[PeerSession] ignore peer session accepted without local schedule: ".concat(logContext));
367
360
  }
368
361
  if (this._receivedMap.has(session.sessionId)) {
369
- this._receivedMap.set(session.sessionId, {
370
- ...session,
362
+ this._receivedMap.set(session.sessionId, _objectSpread(_objectSpread({}, session), {}, {
371
363
  nextTs: Date.now() + data.interval,
372
364
  startTs: Date.now(),
373
365
  action: 1
374
- });
366
+ }));
375
367
  }
376
368
  return;
377
369
  } else {
378
370
  if (!this._receivedMap.has(session.sessionId)) {
379
- this.logger.info(`[PeerSession] forward peer session request to observers: ${logContext}`);
371
+ this.logger.info("[PeerSession] forward peer session request to observers: ".concat(logContext));
380
372
  this._observable.notifyObservers('onPeerSessionReceived', session);
381
373
  } else {
382
- this.logger.info(`[PeerSession] peer session request already cached, update cache only: ${logContext}`);
374
+ this.logger.info("[PeerSession] peer session request already cached, update cache only: ".concat(logContext));
383
375
  }
384
- this._receivedMap.set(session.sessionId, {
385
- ...session,
376
+ this._receivedMap.set(session.sessionId, _objectSpread(_objectSpread({}, session), {}, {
386
377
  nextTs: Date.now() + data.interval,
387
378
  startTs: Date.now(),
388
379
  action: 0
389
- });
380
+ }));
390
381
  }
391
382
  } else {
392
- this.logger.info(`[PeerSession] ignore expired peer session message: ${logContext}, ` + `timestamp=${session.timestamp}, duration=${session.duration}`);
383
+ this.logger.info("[PeerSession] ignore expired peer session message: ".concat(logContext, ", ") + "timestamp=".concat(session.timestamp, ", duration=").concat(session.duration));
393
384
  }
394
385
  } else if (cmd === '1002') {
395
386
  if (data.action === 1) {
396
387
  if (this._scheduleMap.has(data.sessionUuid)) {
388
+ var _session$payload2, _ref4, _data$payload3;
397
389
  const session = this._scheduleMap.get(data.sessionUuid);
398
390
  const sessionResponse = {
399
391
  sessionId: data.sessionUuid,
@@ -401,18 +393,19 @@ class FcrPeerSessionControlImpl {
401
393
  responderId: senderId,
402
394
  // FIXME: session may be lost when the client refreshes
403
395
  // get payload from original session
404
- payload: session.payload ?? {},
405
- cause: data.payload?.cause ?? {},
396
+ payload: (_session$payload2 = session.payload) !== null && _session$payload2 !== void 0 ? _session$payload2 : {},
397
+ cause: (_ref4 = (_data$payload3 = data.payload) === null || _data$payload3 === void 0 ? void 0 : _data$payload3.cause) !== null && _ref4 !== void 0 ? _ref4 : {},
406
398
  keepAlive: !!data.keepAlive
407
399
  };
408
400
  this._scheduleMap.delete(data.sessionUuid);
409
- this.logger.info(`[PeerSession] forward peer session accepted to observers: ${logContext}`);
401
+ this.logger.info("[PeerSession] forward peer session accepted to observers: ".concat(logContext));
410
402
  this._observable.notifyObservers('onPeerSessionAccepted', sessionResponse);
411
403
  } else {
412
- this.logger.info(`[PeerSession] ignore peer session accepted without local schedule: ${logContext}`);
404
+ this.logger.info("[PeerSession] ignore peer session accepted without local schedule: ".concat(logContext));
413
405
  }
414
406
  } else if (data.action === 2) {
415
407
  if (this._scheduleMap.has(data.sessionUuid)) {
408
+ var _session$payload3, _ref5, _data$payload4;
416
409
  const session = this._scheduleMap.get(data.sessionUuid);
417
410
  const sessionResponse = {
418
411
  sessionId: data.sessionUuid,
@@ -420,27 +413,28 @@ class FcrPeerSessionControlImpl {
420
413
  responderId: senderId,
421
414
  // FIXME: session may be lost when the client refreshes
422
415
  // get payload from original session
423
- payload: session.payload ?? {},
424
- cause: data.payload?.cause ?? {},
416
+ payload: (_session$payload3 = session.payload) !== null && _session$payload3 !== void 0 ? _session$payload3 : {},
417
+ cause: (_ref5 = (_data$payload4 = data.payload) === null || _data$payload4 === void 0 ? void 0 : _data$payload4.cause) !== null && _ref5 !== void 0 ? _ref5 : {},
425
418
  keepAlive: !!data.keepAlive
426
419
  };
427
420
  if (this._scheduleMap.has(data.sessionUuid)) {
428
421
  this._scheduleMap.delete(data.sessionUuid);
429
- this.logger.info(`[PeerSession] forward peer session rejected to observers: ${logContext}`);
422
+ this.logger.info("[PeerSession] forward peer session rejected to observers: ".concat(logContext));
430
423
  this._observable.notifyObservers('onPeerSessionRejected', sessionResponse);
431
424
  }
432
425
  } else {
433
- this.logger.info(`[PeerSession] ignore peer session rejected without local schedule: ${logContext}`);
426
+ this.logger.info("[PeerSession] ignore peer session rejected without local schedule: ".concat(logContext));
434
427
  }
435
428
  } else if (data.action === 3) {
436
429
  const scheduleSession = this._scheduleMap.get(data.sessionUuid);
437
430
  const receivedSession = this._receivedMap.get(data.sessionUuid);
438
431
  const session = scheduleSession || receivedSession;
439
432
  if (session) {
433
+ var _ref6, _data$payload5;
440
434
  const params = {
441
435
  sessionId: data.sessionUuid,
442
436
  fromUserId: senderId,
443
- cause: data.payload?.cause ?? {}
437
+ cause: (_ref6 = (_data$payload5 = data.payload) === null || _data$payload5 === void 0 ? void 0 : _data$payload5.cause) !== null && _ref6 !== void 0 ? _ref6 : {}
444
438
  };
445
439
  if (scheduleSession) {
446
440
  this._scheduleMap.delete(data.sessionUuid);
@@ -449,15 +443,15 @@ class FcrPeerSessionControlImpl {
449
443
  this._receivedMap.delete(data.sessionUuid);
450
444
  }
451
445
  this._observable.notifyObservers('onPeerSessionEnded', params.sessionId, params.fromUserId, params.cause);
452
- this.logger.info(`[PeerSession] forward peer session ended to observers: ${logContext}`);
446
+ this.logger.info("[PeerSession] forward peer session ended to observers: ".concat(logContext));
453
447
  } else {
454
- this.logger.info(`[PeerSession] ignore peer session ended without cached session: ${logContext}`);
448
+ this.logger.info("[PeerSession] ignore peer session ended without cached session: ".concat(logContext));
455
449
  }
456
450
  } else {
457
- this.logger.info(`[PeerSession] ignore peer session response with unknown action: ${logContext}`);
451
+ this.logger.info("[PeerSession] ignore peer session response with unknown action: ".concat(logContext));
458
452
  }
459
453
  } else {
460
- this.logger.info(`[PeerSession] ignore unsupported peer session cmd: ${logContext}`);
454
+ this.logger.info("[PeerSession] ignore unsupported peer session cmd: ".concat(logContext));
461
455
  }
462
456
  }
463
457
 
@@ -469,4 +463,9 @@ class FcrPeerSessionControlImpl {
469
463
  this.addObserver((0, _logger.generateLogObserver)(this.logger, [['onPeerSessionAccepted', ['session']], ['onPeerSessionReceived', ['session']], ['onPeerSessionRejected', ['session']], ['onPeerSessionEnded', ['sessionId', 'fromUserId', 'reason']]]));
470
464
  }
471
465
  }
472
- exports.FcrPeerSessionControlImpl = FcrPeerSessionControlImpl;
466
+ exports.FcrPeerSessionControlImpl = FcrPeerSessionControlImpl;
467
+ _FcrPeerSessionControlImpl = FcrPeerSessionControlImpl;
468
+ var _applyDecs$e = _applyDecs(_FcrPeerSessionControlImpl, [[_startPeerSessionDecs, 2, "startPeerSession"], [_stopPeerSessionDecs, 2, "stopPeerSession"], [_endPeerSessionDecs, 2, "endPeerSession"], [_acceptPeerSessionDecs, 2, "acceptPeerSession"], [_rejectPeerSessionDecs, 2, "rejectPeerSession"], [_imports.trace, 2, "release"]], []).e;
469
+ var _applyDecs$e2 = (0, _slicedToArray2.default)(_applyDecs$e, 1);
470
+ _initProto = _applyDecs$e2[0];
471
+ _applyDecs$e;