fcr-core 3.4.2 → 3.4.4-100

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 (57) hide show
  1. package/lib/chat-connection/index.js +20 -38
  2. package/lib/engine/index.js +42 -43
  3. package/lib/imports.d.ts +1 -0
  4. package/lib/imports.js +0 -1
  5. package/lib/media-control/desktop.js +3 -11
  6. package/lib/media-control/mobile.js +6 -13
  7. package/lib/media-control/type.d.ts +3 -6
  8. package/lib/monitor-control/index.js +29 -0
  9. package/lib/monitor-control/type.d.ts +8 -1
  10. package/lib/peer-session/index.js +34 -47
  11. package/lib/plugins/chatroom.js +218 -182
  12. package/lib/room-control/ability-control/index.js +62 -0
  13. package/lib/room-control/ability-control/type.d.ts +9 -0
  14. package/lib/room-control/ability-control/type.js +11 -0
  15. package/lib/room-control/chatroom-control/type.d.ts +25 -11
  16. package/lib/room-control/group-control/index.js +11 -22
  17. package/lib/room-control/index.js +70 -94
  18. package/lib/room-control/interpreter-control/index.js +9 -17
  19. package/lib/room-control/interpreter-control/room.js +4 -6
  20. package/lib/room-control/mainroom-control/index.js +21 -41
  21. package/lib/room-control/privilege-control/helper.js +5 -10
  22. package/lib/room-control/privilege-control/index.js +12 -21
  23. package/lib/room-control/privilege-control/type.js +1 -0
  24. package/lib/room-control/room-connector-control/index.js +13 -24
  25. package/lib/room-control/room-session/index.js +36 -49
  26. package/lib/room-control/stream-control/index.js +141 -152
  27. package/lib/room-control/user-control/index.js +120 -135
  28. package/lib/room-control/user-control/type.d.ts +3 -2
  29. package/lib/room-control/waitingroom-control/index.js +8 -16
  30. package/lib/room-control/whiteboard-control/board-subwindow.js +1 -2
  31. package/lib/room-control/whiteboard-control/board-window.d.ts +10 -1
  32. package/lib/room-control/whiteboard-control/board-window.js +176 -60
  33. package/lib/room-control/whiteboard-control/enums.js +84 -0
  34. package/lib/room-control/whiteboard-control/index.js +29 -36
  35. package/lib/room-control/whiteboard-control/mount-manager.js +2 -4
  36. package/lib/room-control/whiteboard-control/types.d.ts +43 -0
  37. package/lib/room-control/whiteboard-control/types.js +7 -1
  38. package/lib/room-control/whiteboard-control/utils.d.ts +1 -1
  39. package/lib/room-control/whiteboard-control/utils.js +16 -17
  40. package/lib/room-control/whiteboard-control-v2/index.js +24 -35
  41. package/lib/room-control/whiteboard-control-v2/main-window.js +15 -23
  42. package/lib/schema.d.ts +988 -0
  43. package/lib/schema.js +282 -0
  44. package/lib/service/api.js +76 -82
  45. package/lib/type.d.ts +3 -1
  46. package/lib/type.js +4 -2
  47. package/lib/utilities/collection.js +2 -3
  48. package/lib/utilities/error.js +3 -5
  49. package/lib/utilities/logger.js +1 -2
  50. package/lib/utilities/parameters.js +4 -8
  51. package/lib/utilities/stream.js +12 -20
  52. package/lib/utilities/user.js +1 -1
  53. package/lib/utilities/validate-params.d.ts +2 -0
  54. package/lib/utilities/validate-params.js +13 -0
  55. package/package.json +7 -5
  56. package/lib/room-control/chatroom-control/index.js +0 -385
  57. /package/lib/room-control/{chatroom-control → ability-control}/index.d.ts +0 -0
@@ -1,14 +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
- require("core-js/modules/esnext.async-iterator.filter.js");
7
- require("core-js/modules/esnext.async-iterator.for-each.js");
8
4
  require("core-js/modules/esnext.function.metadata.js");
9
- require("core-js/modules/esnext.iterator.constructor.js");
10
- require("core-js/modules/esnext.iterator.filter.js");
11
- require("core-js/modules/esnext.iterator.for-each.js");
12
5
  require("core-js/modules/esnext.map.delete-all.js");
13
6
  require("core-js/modules/esnext.map.emplace.js");
14
7
  require("core-js/modules/esnext.map.every.js");
@@ -24,39 +17,32 @@ require("core-js/modules/esnext.map.reduce.js");
24
17
  require("core-js/modules/esnext.map.some.js");
25
18
  require("core-js/modules/esnext.map.update.js");
26
19
  require("core-js/modules/esnext.symbol.metadata.js");
27
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
28
20
  Object.defineProperty(exports, "__esModule", {
29
21
  value: true
30
22
  });
31
23
  exports.FcrChatConnectionImpl = void 0;
32
- require("core-js/modules/es.json.stringify.js");
33
- require("core-js/modules/es.regexp.exec.js");
34
- require("core-js/modules/web.dom-collections.iterator.js");
35
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
36
24
  var _imports = require("../imports");
37
25
  var _type = require("./type");
38
26
  var _parameters = require("../utilities/parameters");
39
27
  var _config2 = require("./config");
40
28
  var _logger = require("../utilities/logger");
41
- var _FcrChatConnectionImpl;
42
29
  let _initProto;
43
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
44
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
45
30
  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)]; } }; }
46
31
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
47
32
  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); }
48
33
  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; }
49
34
  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; }
50
35
  class FcrChatConnectionImpl {
36
+ static #_ = (() => [_initProto] = _applyDecs(this, [[_logger.trace, 2, "login"], [_logger.trace, 2, "logout"], [_logger.trace, 2, "getConnectionState"], [_logger.trace, 2, "getConnectionInstance"]], []).e)();
37
+ logger = (() => (_initProto(this), (0, _imports.getLogger)()))();
38
+ _observable = (() => new _imports.AgoraObservable())();
39
+ _connectionState = (() => _type.FcrChatConnectionState.DISCONNECTED)();
40
+ _offlineListener = () => {
41
+ if (this._connectionState !== _type.FcrChatConnectionState.DISCONNECTED) {
42
+ this._setConnectionState(_type.FcrChatConnectionState.DISCONNECTED);
43
+ }
44
+ };
51
45
  constructor(_config, _api) {
52
- (0, _defineProperty2.default)(this, "logger", (_initProto(this), (0, _imports.getLogger)()));
53
- (0, _defineProperty2.default)(this, "_observable", new _imports.AgoraObservable());
54
- (0, _defineProperty2.default)(this, "_connectionState", _type.FcrChatConnectionState.DISCONNECTED);
55
- (0, _defineProperty2.default)(this, "_offlineListener", () => {
56
- if (this._connectionState !== _type.FcrChatConnectionState.DISCONNECTED) {
57
- this._setConnectionState(_type.FcrChatConnectionState.DISCONNECTED);
58
- }
59
- });
60
46
  this._config = _config;
61
47
  this._api = _api;
62
48
  }
@@ -70,9 +56,11 @@ class FcrChatConnectionImpl {
70
56
  await (0, _imports.to)((0, _imports.retryAttempt)(async () => {
71
57
  const tokenResult = await this._api.getUserToken(this._config.userId);
72
58
  this._initConfig = tokenResult;
73
- const connParams = _objectSpread(_objectSpread(_objectSpread({}, _config2.agoraChatConfig), privateConfig), {}, {
59
+ const connParams = {
60
+ ..._config2.agoraChatConfig,
61
+ ...privateConfig,
74
62
  appKey: tokenResult.appKey
75
- });
63
+ };
76
64
  _imports.EasemobChatSDK.logger.setConsoleLogVisibility(false);
77
65
  this._conn = new _imports.EasemobChatSDK.connection(connParams);
78
66
  await this._conn.open({
@@ -92,15 +80,14 @@ class FcrChatConnectionImpl {
92
80
  if (error instanceof _imports.AgoraRestfulClientError) {
93
81
  throw error;
94
82
  }
95
- this.logger.error("[ChatConnection] retry to login ChatConnection, ".concat(error.message, ",retry ").concat(currentRetry, " times"));
83
+ this.logger.error(`[ChatConnection] retry to login ChatConnection, ${error.message},retry ${currentRetry} times`);
96
84
  await timeFn();
97
85
  return true;
98
86
  }).exec());
99
87
  }
100
88
  _addEventListeners() {
101
- var _this$_conn;
102
89
  window.addEventListener('offline', this._offlineListener);
103
- (_this$_conn = this._conn) === null || _this$_conn === void 0 || _this$_conn.addEventHandler('connection', {
90
+ this._conn?.addEventHandler('connection', {
104
91
  onError: e => {
105
92
  // this._observable.notifyObservers('onErrorOccurred', this._initConfig.roomId);
106
93
  },
@@ -115,9 +102,8 @@ class FcrChatConnectionImpl {
115
102
  });
116
103
  }
117
104
  logout() {
118
- var _this$_conn2;
119
105
  window.removeEventListener('offline', this._offlineListener);
120
- (_this$_conn2 = this._conn) === null || _this$_conn2 === void 0 || _this$_conn2.close();
106
+ this._conn?.close();
121
107
  }
122
108
  _setConnectionState(state) {
123
109
  this._connectionState = state;
@@ -136,22 +122,18 @@ class FcrChatConnectionImpl {
136
122
  this._observable.removeObserver(observer);
137
123
  }
138
124
  _getPrivateConfig() {
139
- var _this$_chatIpList, _this$_restIpList;
140
- if ((_this$_chatIpList = this._chatIpList) !== null && _this$_chatIpList !== void 0 && _this$_chatIpList.length || (_this$_restIpList = this._restIpList) !== null && _this$_restIpList !== void 0 && _this$_restIpList.length) {
141
- var _this$_chatIpList2, _this$_restIpList2;
125
+ if (this._chatIpList?.length || this._restIpList?.length) {
142
126
  const privateConfig = {
143
127
  isHttpDNS: false
144
128
  };
145
- if ((_this$_chatIpList2 = this._chatIpList) !== null && _this$_chatIpList2 !== void 0 && _this$_chatIpList2.length) {
129
+ if (this._chatIpList?.length) {
146
130
  privateConfig.url = this._chatIpList[0];
147
131
  }
148
- if ((_this$_restIpList2 = this._restIpList) !== null && _this$_restIpList2 !== void 0 && _this$_restIpList2.length) {
132
+ if (this._restIpList?.length) {
149
133
  privateConfig.apiUrl = this._restIpList[0];
150
134
  }
151
135
  return privateConfig;
152
136
  }
153
137
  }
154
138
  }
155
- exports.FcrChatConnectionImpl = FcrChatConnectionImpl;
156
- _FcrChatConnectionImpl = FcrChatConnectionImpl;
157
- [_initProto] = _applyDecs(_FcrChatConnectionImpl, [[_logger.trace, 2, "login"], [_logger.trace, 2, "logout"], [_logger.trace, 2, "getConnectionState"], [_logger.trace, 2, "getConnectionInstance"]], []).e;
139
+ exports.FcrChatConnectionImpl = FcrChatConnectionImpl;
@@ -1,13 +1,7 @@
1
1
  "use strict";
2
2
 
3
- require("core-js/modules/es.symbol.description.js");
4
3
  require("core-js/modules/es.array.push.js");
5
- require("core-js/modules/esnext.async-iterator.filter.js");
6
- require("core-js/modules/esnext.async-iterator.for-each.js");
7
4
  require("core-js/modules/esnext.function.metadata.js");
8
- require("core-js/modules/esnext.iterator.constructor.js");
9
- require("core-js/modules/esnext.iterator.filter.js");
10
- require("core-js/modules/esnext.iterator.for-each.js");
11
5
  require("core-js/modules/esnext.map.delete-all.js");
12
6
  require("core-js/modules/esnext.map.emplace.js");
13
7
  require("core-js/modules/esnext.map.every.js");
@@ -23,18 +17,12 @@ require("core-js/modules/esnext.map.reduce.js");
23
17
  require("core-js/modules/esnext.map.some.js");
24
18
  require("core-js/modules/esnext.map.update.js");
25
19
  require("core-js/modules/esnext.symbol.metadata.js");
26
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
27
20
  Object.defineProperty(exports, "__esModule", {
28
21
  value: true
29
22
  });
30
23
  exports.FcrCoreEngine = void 0;
31
- require("core-js/modules/es.error.cause.js");
32
- require("core-js/modules/es.json.stringify.js");
33
- require("core-js/modules/es.regexp.exec.js");
34
- require("core-js/modules/esnext.async-iterator.map.js");
24
+ require("core-js/modules/esnext.iterator.constructor.js");
35
25
  require("core-js/modules/esnext.iterator.map.js");
36
- require("core-js/modules/web.dom-collections.iterator.js");
37
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
38
26
  var _imports = require("../imports");
39
27
  var _api = require("../service/api");
40
28
  var _monitorControl = require("../monitor-control");
@@ -55,24 +43,38 @@ var _agoraRteSdk = require("agora-rte-sdk");
55
43
  var _helper = require("agora-rte-sdk/lib/core/scene/helper");
56
44
  var _mobile = require("../media-control/mobile");
57
45
  var _chatroom = require("../plugins/chatroom");
58
- var _whiteboardControlV = require("../room-control/whiteboard-control-v2");
46
+ var _whiteboardControl = require("../room-control/whiteboard-control");
47
+ var _privilegeControl = require("../room-control/privilege-control");
59
48
  var _logger = require("../utilities/logger");
60
- var _FcrCoreEngine;
61
49
  let _initProto;
62
- 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; }
63
- 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; }
64
50
  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)]; } }; }
65
51
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
66
52
  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); }
67
53
  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; }
68
54
  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; }
69
55
  class FcrCoreEngine {
56
+ static #_ = (() => [_initProto] = _applyDecs(this, [[_logger.trace, 2, "release"], [_logger.trace, 2, "login"], [_logger.trace, 2, "logout"], [_logger.trace, 2, "getVersion"], [_logger.trace, 2, "createMainRoomControl"], [_logger.trace, 2, "createWaitingRoomControl"], [_logger.trace, 2, "createRoomControlAndJoin"], [_logger.trace, 2, "getDesktopMediaControl"], [_logger.trace, 2, "getMobileMediaControl"], [_logger.trace, 2, "getMonitorControl"], [_logger.trace, 2, "getPeerSessionControl"], [_logger.trace, 2, "sendPeerMessage"], [_logger.trace, 2, "setParameters"]], []).e)();
57
+ // @internal
58
+ logger = (() => (_initProto(this), (0, _logger.getLogger)()))();
59
+ // @internal
60
+
61
+ // @internal
62
+
63
+ // @internal
64
+
65
+ // @internal
66
+
67
+ // @internal
68
+
69
+ // @internal
70
+
71
+ // @internal
72
+
73
+ // @internal
74
+
75
+ // @internal
76
+ _isLoggingIn = false;
70
77
  constructor(config) {
71
- var _config$parameters, _config$parameters2, _config$parameters3;
72
- // @internal
73
- (0, _defineProperty2.default)(this, "logger", (_initProto(this), (0, _logger.getLogger)()));
74
- // @internal
75
- (0, _defineProperty2.default)(this, "_isLoggingIn", false);
76
78
  this._config = config;
77
79
  (0, _domainHolder.resetSharedDomainHolder)();
78
80
  this._rteEngine = new _imports.AgoraRteEngine({
@@ -85,9 +87,9 @@ class FcrCoreEngine {
85
87
  dualCameraVideoStreamConfig: config.dualCameraVideoStreamConfig,
86
88
  dualScreenVideoStreamConfig: config.dualScreenVideoStreamConfig,
87
89
  parameters: {
88
- rte: (_config$parameters = config.parameters) === null || _config$parameters === void 0 ? void 0 : _config$parameters.rte,
89
- rtc: (_config$parameters2 = config.parameters) === null || _config$parameters2 === void 0 ? void 0 : _config$parameters2.rtc,
90
- rtm: (_config$parameters3 = config.parameters) === null || _config$parameters3 === void 0 ? void 0 : _config$parameters3.rtm
90
+ rte: config.parameters?.rte,
91
+ rtc: config.parameters?.rtc,
92
+ rtm: config.parameters?.rtm
91
93
  }
92
94
  });
93
95
  const restfulClient = new _agoraRteSdk.AgoraRestfulClientImpl(this._rteEngine.getHttpAuthHeadersProvider(), (0, _imports.getSharedDomainHolder)(config.region));
@@ -103,7 +105,7 @@ class FcrCoreEngine {
103
105
  this._addRteEngineObserver();
104
106
  const coreIpList = (0, _parameters.getCoreIpList)(config.parameters);
105
107
  if (coreIpList) {
106
- this.logger.info("[FcrCoreEngine] set fixed domain list: ".concat(JSON.stringify(coreIpList)));
108
+ this.logger.info(`[FcrCoreEngine] set fixed domain list: ${JSON.stringify(coreIpList)}`);
107
109
  (0, _imports.getSharedDomainHolder)(this._config.region).setFixedDomainList(coreIpList);
108
110
  }
109
111
  }
@@ -160,7 +162,7 @@ class FcrCoreEngine {
160
162
  const scene = this._rteEngine.createScene({
161
163
  sceneId: roomId
162
164
  });
163
- return new _mainroomControl.FcrMainRoomControlImpl(this._rteEngine, scene, this._apiService, this._config, _type2.FcrRoomType.Mainroom, this._chatConnection, new _chatroom.FcrChatRoomControlImpl(scene, this._chatConnection), new _whiteboardControlV.FcrWhiteboardControlImpl(scene, this._apiService, this._rteEngine));
165
+ return new _mainroomControl.FcrMainRoomControlImpl(this._rteEngine, scene, this._apiService, this._config, _type2.FcrRoomType.Mainroom, this._chatConnection, new _chatroom.FcrChatRoomControlImpl(scene, this._chatConnection), new _whiteboardControl.FcrWhiteboardControlImpl(scene, new _privilegeControl.FcrPrivilegeControlImpl(this._rteEngine, scene, this._apiService), this._apiService));
164
166
  }
165
167
 
166
168
  /**
@@ -186,7 +188,6 @@ class FcrCoreEngine {
186
188
  } = this._rteEngine.getConfig();
187
189
  let res = undefined;
188
190
  const [error] = await (0, _imports.to)((0, _imports.retryAttempt)(async () => {
189
- var _options$createStream;
190
191
  res = await this._apiService.checkIn({
191
192
  userName: options.userName,
192
193
  userId,
@@ -194,11 +195,11 @@ class FcrCoreEngine {
194
195
  userProperties: options.userProperties,
195
196
  roomId,
196
197
  platform: (0, _imports.getPlatform)(),
197
- streams: (_options$createStream = options.createStreamConfigs) === null || _options$createStream === void 0 ? void 0 : _options$createStream.map(s => _objectSpread(_objectSpread({
198
+ streams: options.createStreamConfigs?.map(s => ({
198
199
  videoSourceUuid: s.videoSourceId,
199
200
  audioSourceUuid: s.audioSourceId,
200
- streamName: s.streamName
201
- }, (0, _helper.convertStreamTypeToPublishState)(s.streamType)), {}, {
201
+ streamName: s.streamName,
202
+ ...(0, _helper.convertStreamTypeToPublishState)(s.streamType),
202
203
  videoSourceType: s.videoSourceType,
203
204
  audioSourceType: s.audioSourceType,
204
205
  audioSourceState: s.audioSourceState,
@@ -218,24 +219,23 @@ class FcrCoreEngine {
218
219
  if (error instanceof _imports.AgoraRestfulClientError) {
219
220
  throw error;
220
221
  }
221
- this.logger.error("[RoomControl] retry to check in room, ".concat(error.message, ",retry ").concat(currentRetry, " times"));
222
+ this.logger.error(`[RoomControl] retry to check in room, ${error.message},retry ${currentRetry} times`);
222
223
  await timeFn();
223
224
  return true;
224
225
  }).exec());
225
226
  if (error) {
226
- this.logger.error("[RoomControl] check in room failed, ".concat(error.message, "-").concat(JSON.stringify(error)));
227
+ this.logger.error(`[RoomControl] check in room failed, ${error.message}-${JSON.stringify(error)}`);
227
228
  if (error instanceof _imports.AgoraRestfulClientError) {
228
229
  if (error.httpCode < 100) {
229
- throw (0, _error.generateFcrCoreClientError)(_error.FcrErrorModuleCode.ROOM, _error.FcrErrorCode.LOCAL_HTTP_REQUEST_FAILED, "entry room failed, ".concat(error.message), error);
230
+ throw (0, _error.generateFcrCoreClientError)(_error.FcrErrorModuleCode.ROOM, _error.FcrErrorCode.LOCAL_HTTP_REQUEST_FAILED, `entry room failed, ${error.message}`, error);
230
231
  } else {
231
- var _error$serviceCode;
232
- throw (0, _error.generateFcrCoreServerError)((_error$serviceCode = error.serviceCode) !== null && _error$serviceCode !== void 0 ? _error$serviceCode : -1, error.message, error);
232
+ throw (0, _error.generateFcrCoreServerError)(error.serviceCode ?? -1, error.message, error);
233
233
  }
234
234
  }
235
235
  throw (0, _error.generateFcrCoreClientError)(_error.FcrErrorModuleCode.ROOM, _error.FcrErrorCode.UNDEFINED_ERROR, 'join room failed', error);
236
236
  }
237
237
  if (!res) {
238
- this.logger.error("[RoomControl] cannot get data from check in respnose");
238
+ this.logger.error(`[RoomControl] cannot get data from check in respnose`);
239
239
  throw (0, _error.generateFcrCoreClientError)(_error.FcrErrorModuleCode.ROOM, _error.FcrErrorCode.UNDEFINED_ERROR, 'join room failed', new Error('cannot get data from check in respnose'));
240
240
  }
241
241
  const {
@@ -250,11 +250,12 @@ class FcrCoreEngine {
250
250
  } else {
251
251
  roomControl = this.createMainRoomControl(roomId);
252
252
  }
253
- await roomControl.join(_objectSpread(_objectSpread({}, options), {}, {
253
+ await roomControl.join({
254
+ ...options,
254
255
  snapshot: data,
255
256
  timestamp: ts,
256
257
  createStreamConfigs: data.room.roomProperties.roomType === _type2.FcrRoomType.Waitingroom ? [] : options.createStreamConfigs
257
- }));
258
+ });
258
259
  return roomControl;
259
260
  }
260
261
 
@@ -297,7 +298,7 @@ class FcrCoreEngine {
297
298
  * @param receiverId
298
299
  */
299
300
  async sendPeerMessage(payload, guaranteedDelivery, receiverId) {
300
- await this._rteEngine.sendPeerMessage(payload, "".concat(_cmd.CMD_PEER_MESSAGE), guaranteedDelivery, receiverId);
301
+ await this._rteEngine.sendPeerMessage(payload, `${_cmd.CMD_PEER_MESSAGE}`, guaranteedDelivery, receiverId);
301
302
  }
302
303
 
303
304
  /**
@@ -349,6 +350,4 @@ class FcrCoreEngine {
349
350
  this.addObserver((0, _logger.generateLogObserver)(this.logger, ['onConnectionStateUpdated', 'onPeerMessageReceived']));
350
351
  }
351
352
  }
352
- exports.FcrCoreEngine = FcrCoreEngine;
353
- _FcrCoreEngine = FcrCoreEngine;
354
- [_initProto] = _applyDecs(_FcrCoreEngine, [[_logger.trace, 2, "release"], [_logger.trace, 2, "login"], [_logger.trace, 2, "logout"], [_logger.trace, 2, "getVersion"], [_logger.trace, 2, "createMainRoomControl"], [_logger.trace, 2, "createWaitingRoomControl"], [_logger.trace, 2, "createRoomControlAndJoin"], [_logger.trace, 2, "getDesktopMediaControl"], [_logger.trace, 2, "getMobileMediaControl"], [_logger.trace, 2, "getMonitorControl"], [_logger.trace, 2, "getPeerSessionControl"], [_logger.trace, 2, "sendPeerMessage"], [_logger.trace, 2, "setParameters"]], []).e;
353
+ exports.FcrCoreEngine = FcrCoreEngine;
package/lib/imports.d.ts CHANGED
@@ -39,6 +39,7 @@ export { getSharedDomainHolder } from 'agora-rte-sdk/lib/core/services/domain-ho
39
39
  export { AgoraRteScreenCaptureType, AgoraRteVideoOrientation, } from 'agora-rte-sdk/lib/core/media/type';
40
40
  export { registerPlugin } from 'agora-rte-sdk/lib/core/engine/plugin';
41
41
  export { AgoraRteUserUpdatedReason } from 'agora-rte-sdk/lib/core/scene/type';
42
+ export type { AgoraRteUploadEvent } from 'agora-rte-sdk/lib/core/monitor/type';
42
43
  export { FcrCoreEngine } from './engine';
43
44
  export type FcrImageData = ImageData;
44
45
  export type FcrWhiteboardView = HTMLElement;
package/lib/imports.js CHANGED
@@ -2,7 +2,6 @@
2
2
 
3
3
  require("core-js/modules/esnext.weak-map.delete-all.js");
4
4
  require("core-js/modules/esnext.weak-map.emplace.js");
5
- require("core-js/modules/web.dom-collections.iterator.js");
6
5
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
7
6
  Object.defineProperty(exports, "__esModule", {
8
7
  value: true
@@ -1,7 +1,5 @@
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
5
  require("core-js/modules/esnext.map.delete-all.js");
@@ -19,19 +17,14 @@ require("core-js/modules/esnext.map.reduce.js");
19
17
  require("core-js/modules/esnext.map.some.js");
20
18
  require("core-js/modules/esnext.map.update.js");
21
19
  require("core-js/modules/esnext.symbol.metadata.js");
22
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
23
20
  Object.defineProperty(exports, "__esModule", {
24
21
  value: true
25
22
  });
26
23
  exports.FcrDesktopMediaControlImpl = void 0;
27
- require("core-js/modules/esnext.async-iterator.for-each.js");
28
24
  require("core-js/modules/esnext.iterator.constructor.js");
29
25
  require("core-js/modules/esnext.iterator.for-each.js");
30
- require("core-js/modules/web.dom-collections.iterator.js");
31
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
32
26
  var _imports = require("../imports");
33
27
  var _logger = require("../utilities/logger");
34
- var _FcrDesktopMediaControlImpl;
35
28
  let _initProto;
36
29
  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
30
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
@@ -42,8 +35,9 @@ function _checkInRHS(e) { if (Object(e) !== e) throw TypeError("right-hand side
42
35
  * @internal
43
36
  */
44
37
  class FcrDesktopMediaControlImpl {
38
+ static #_ = (() => [_initProto] = _applyDecs(this, [[_logger.trace, 2, "getCameraList"], [_logger.trace, 2, "getMicrophoneList"], [_logger.trace, 2, "getSpeakerList"], [_logger.trace, 2, "getSystemSelectedMicrophone"], [_logger.trace, 2, "getSystemSelectedSpeaker"], [_logger.trace, 2, "getWindowList"], [_logger.trace, 2, "getDisplayList"], [_logger.trace, 2, "getCameraTrack"], [_logger.trace, 2, "getMicrophoneTrack"], [_logger.trace, 2, "getScreenTrack"], [_logger.trace, 2, "getLoopbackTrack"], [_logger.trace, 2, "setSelectedSpeaker"], [_logger.trace, 2, "startSelectedSpeakerTest"], [_logger.trace, 2, "stopSelectedSpeakerTest"], [_logger.trace, 2, "isCapabilitySupported"], [_logger.trace, 2, "adjustOutputVolume"], [_logger.trace, 2, "setSelectedSpeakerVolume"], [_logger.trace, 2, "getSelectedSpeakerVolume"], [_logger.trace, 2, "checkLoopbackDevice"], [_logger.trace, 2, "followSystemSpeaker"], [_logger.trace, 2, "followSystemMicrophone"]], []).e)();
39
+ _observable = (() => (_initProto(this), new _imports.AgoraObservable()))();
45
40
  constructor(mediaControl) {
46
- (0, _defineProperty2.default)(this, "_observable", (_initProto(this), new _imports.AgoraObservable()));
47
41
  this._mediaControl = mediaControl;
48
42
  this._mediaControl.addObserver({
49
43
  onAutoPlayFailed: () => {
@@ -151,6 +145,4 @@ class FcrDesktopMediaControlImpl {
151
145
  return this._mediaControl.followSystemMicrophone(follow);
152
146
  }
153
147
  }
154
- exports.FcrDesktopMediaControlImpl = FcrDesktopMediaControlImpl;
155
- _FcrDesktopMediaControlImpl = FcrDesktopMediaControlImpl;
156
- [_initProto] = _applyDecs(_FcrDesktopMediaControlImpl, [[_logger.trace, 2, "getCameraList"], [_logger.trace, 2, "getMicrophoneList"], [_logger.trace, 2, "getSpeakerList"], [_logger.trace, 2, "getSystemSelectedMicrophone"], [_logger.trace, 2, "getSystemSelectedSpeaker"], [_logger.trace, 2, "getWindowList"], [_logger.trace, 2, "getDisplayList"], [_logger.trace, 2, "getCameraTrack"], [_logger.trace, 2, "getMicrophoneTrack"], [_logger.trace, 2, "getScreenTrack"], [_logger.trace, 2, "getLoopbackTrack"], [_logger.trace, 2, "setSelectedSpeaker"], [_logger.trace, 2, "startSelectedSpeakerTest"], [_logger.trace, 2, "stopSelectedSpeakerTest"], [_logger.trace, 2, "isCapabilitySupported"], [_logger.trace, 2, "adjustOutputVolume"], [_logger.trace, 2, "setSelectedSpeakerVolume"], [_logger.trace, 2, "getSelectedSpeakerVolume"], [_logger.trace, 2, "checkLoopbackDevice"], [_logger.trace, 2, "followSystemSpeaker"], [_logger.trace, 2, "followSystemMicrophone"]], []).e;
148
+ exports.FcrDesktopMediaControlImpl = FcrDesktopMediaControlImpl;
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
 
3
- require("core-js/modules/es.symbol.description.js");
4
3
  require("core-js/modules/es.array.push.js");
5
4
  require("core-js/modules/esnext.function.metadata.js");
6
5
  require("core-js/modules/esnext.map.delete-all.js");
@@ -18,19 +17,14 @@ require("core-js/modules/esnext.map.reduce.js");
18
17
  require("core-js/modules/esnext.map.some.js");
19
18
  require("core-js/modules/esnext.map.update.js");
20
19
  require("core-js/modules/esnext.symbol.metadata.js");
21
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
22
20
  Object.defineProperty(exports, "__esModule", {
23
21
  value: true
24
22
  });
25
23
  exports.FcrMobileMediaControlImpl = void 0;
26
- require("core-js/modules/es.error.cause.js");
27
- require("core-js/modules/web.dom-collections.iterator.js");
28
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
29
24
  var _imports = require("../imports");
30
25
  var _type = require("../type");
31
26
  var _ = require("..");
32
27
  var _logger = require("../utilities/logger");
33
- var _FcrMobileMediaControlImpl;
34
28
  let _initProto;
35
29
  function _applyDecs(e, t, r, n, o, a) { function i(e, t, r) { return function (n, o) { return r && r(n), e[t].call(n, o); }; } function c(e, t) { for (var r = 0; r < e.length; r++) e[r].call(t); return t; } function s(e, t, r, n) { if ("function" != typeof e && (n || void 0 !== e)) throw new TypeError(t + " must " + (r || "be") + " a function" + (n ? "" : " or undefined")); return e; } function applyDec(e, t, r, n, o, a, c, u, l, f, p, d, h) { function m(e) { if (!h(e)) throw new TypeError("Attempted to access private element on non-instance"); } var y, v = t[0], g = t[3], b = !u; if (!b) { r || Array.isArray(v) || (v = [v]); var w = {}, S = [], A = 3 === o ? "get" : 4 === o || d ? "set" : "value"; f ? (p || d ? w = { get: _setFunctionName(function () { return g(this); }, n, "get"), set: function (e) { t[4](this, e); } } : w[A] = g, p || _setFunctionName(w[A], n, 2 === o ? "" : A)) : p || (w = Object.getOwnPropertyDescriptor(e, n)); } for (var P = e, j = v.length - 1; j >= 0; j -= r ? 2 : 1) { var D = v[j], E = r ? v[j - 1] : void 0, I = {}, O = { kind: ["field", "accessor", "method", "getter", "setter", "class"][o], name: n, metadata: a, addInitializer: function (e, t) { if (e.v) throw Error("attempted to call addInitializer after decoration was finished"); s(t, "An initializer", "be", !0), c.push(t); }.bind(null, I) }; try { if (b) (y = s(D.call(E, P, O), "class decorators", "return")) && (P = y);else { var k, F; O.static = l, O.private = f, f ? 2 === o ? k = function (e) { return m(e), w.value; } : (o < 4 && (k = i(w, "get", m)), 3 !== o && (F = i(w, "set", m))) : (k = function (e) { return e[n]; }, (o < 2 || 4 === o) && (F = function (e, t) { e[n] = t; })); var N = O.access = { has: f ? h.bind() : function (e) { return n in e; } }; if (k && (N.get = k), F && (N.set = F), P = D.call(E, d ? { get: w.get, set: w.set } : w[A], O), d) { if ("object" == typeof P && P) (y = s(P.get, "accessor.get")) && (w.get = y), (y = s(P.set, "accessor.set")) && (w.set = y), (y = s(P.init, "accessor.init")) && S.push(y);else if (void 0 !== P) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0"); } else s(P, (p ? "field" : "method") + " decorators", "return") && (p ? S.push(P) : w[A] = P); } } finally { I.v = !0; } } return (p || d) && u.push(function (e, t) { for (var r = S.length - 1; r >= 0; r--) t = S[r].call(e, t); return t; }), p || b || (f ? d ? u.push(i(w, "get"), i(w, "set")) : u.push(2 === o ? w[A] : i.call.bind(w[A])) : Object.defineProperty(e, n, w)), P; } function u(e, t) { return Object.defineProperty(e, Symbol.metadata || Symbol.for("Symbol.metadata"), { configurable: !0, enumerable: !0, value: t }); } if (arguments.length >= 6) var l = a[Symbol.metadata || Symbol.for("Symbol.metadata")]; var f = Object.create(null == l ? null : l), p = function (e, t, r, n) { var o, a, i = [], s = function (t) { return _checkInRHS(t) === e; }, u = new Map(); function l(e) { e && i.push(c.bind(null, e)); } for (var f = 0; f < t.length; f++) { var p = t[f]; if (Array.isArray(p)) { var d = p[1], h = p[2], m = p.length > 3, y = 16 & d, v = !!(8 & d), g = 0 == (d &= 7), b = h + "/" + v; if (!g && !m) { var w = u.get(b); if (!0 === w || 3 === w && 4 !== d || 4 === w && 3 !== d) throw Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + h); u.set(b, !(d > 2) || d); } applyDec(v ? e : e.prototype, p, y, m ? "#" + h : _toPropertyKey(h), d, n, v ? a = a || [] : o = o || [], i, v, m, g, 1 === d, v && m ? s : r); } } return l(o), l(a), i; }(e, t, o, f); return r.length || u(e, f), { e: p, get c() { var t = []; return r.length && [u(applyDec(e, [r], n, e.name, 5, f, t), f), c.bind(null, t, e)]; } }; }
36
30
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
@@ -41,11 +35,12 @@ function _checkInRHS(e) { if (Object(e) !== e) throw TypeError("right-hand side
41
35
  * @internal
42
36
  */
43
37
  class FcrMobileMediaControlImpl {
38
+ static #_ = (() => [_initProto] = _applyDecs(this, [[_logger.trace, 2, "getDeviceId"], [_logger.trace, 2, "getDeviceState"], [_logger.trace, 2, "startCameraTest"], [_logger.trace, 2, "stopCameraTest"], [_logger.trace, 2, "startCameraPreview"], [_logger.trace, 2, "stopCameraPreview"], [_logger.trace, 2, "stopCameraPreviewOnAllCanvas"], [_logger.trace, 2, "startScreenCapture"], [_logger.trace, 2, "updateScreenCapture"], [_logger.trace, 2, "stopScreenCapture"], [_logger.trace, 2, "getScreenCaptureState"], [_logger.trace, 2, "enableSpeaker"], [_logger.trace, 2, "getAudioOutputRouting"], [_logger.trace, 2, "getAudioEffectEnhancer"], [_logger.trace, 2, "getVideoEffectEnhancer"], [_logger.trace, 2, "openDevice"], [_logger.trace, 2, "closeDevice"], [_logger.trace, 2, "switchCamera"], [_logger.trace, 2, "getCameraPosition"], [_logger.trace, 2, "isCapabilitySupported"], [_logger.trace, 2, "adjustOutputVolume"]], []).e)();
39
+ _observable = (() => (_initProto(this), new _imports.AgoraObservable()))();
40
+ _cameraDeviceName = (() => undefined)();
41
+ _microphoneDeviceName = (() => undefined)();
42
+ _screenDeviceName = (() => undefined)();
44
43
  constructor(mediaControl) {
45
- (0, _defineProperty2.default)(this, "_observable", (_initProto(this), new _imports.AgoraObservable()));
46
- (0, _defineProperty2.default)(this, "_cameraDeviceName", undefined);
47
- (0, _defineProperty2.default)(this, "_microphoneDeviceName", undefined);
48
- (0, _defineProperty2.default)(this, "_screenDeviceName", undefined);
49
44
  this._mediaControl = mediaControl;
50
45
  this._mediaControl.getCameraVideoTrack(this._cameraDeviceName).addObserver({
51
46
  onCameraStateUpdated: (deviceId, state) => {
@@ -192,6 +187,4 @@ class FcrMobileMediaControlImpl {
192
187
  this._observable.removeObserver(observer);
193
188
  }
194
189
  }
195
- exports.FcrMobileMediaControlImpl = FcrMobileMediaControlImpl;
196
- _FcrMobileMediaControlImpl = FcrMobileMediaControlImpl;
197
- [_initProto] = _applyDecs(_FcrMobileMediaControlImpl, [[_logger.trace, 2, "getDeviceId"], [_logger.trace, 2, "getDeviceState"], [_logger.trace, 2, "startCameraTest"], [_logger.trace, 2, "stopCameraTest"], [_logger.trace, 2, "startCameraPreview"], [_logger.trace, 2, "stopCameraPreview"], [_logger.trace, 2, "stopCameraPreviewOnAllCanvas"], [_logger.trace, 2, "startScreenCapture"], [_logger.trace, 2, "updateScreenCapture"], [_logger.trace, 2, "stopScreenCapture"], [_logger.trace, 2, "getScreenCaptureState"], [_logger.trace, 2, "enableSpeaker"], [_logger.trace, 2, "getAudioOutputRouting"], [_logger.trace, 2, "getAudioEffectEnhancer"], [_logger.trace, 2, "getVideoEffectEnhancer"], [_logger.trace, 2, "openDevice"], [_logger.trace, 2, "closeDevice"], [_logger.trace, 2, "switchCamera"], [_logger.trace, 2, "getCameraPosition"], [_logger.trace, 2, "isCapabilitySupported"], [_logger.trace, 2, "adjustOutputVolume"]], []).e;
190
+ exports.FcrMobileMediaControlImpl = FcrMobileMediaControlImpl;
@@ -1,6 +1,6 @@
1
1
  import { AgoraRteAudioRawDataConfig, AgoraRteBeautyOptions, AgoraRteCameraPosition, AgoraRteScreenCaptureParams, AgoraRteScreenCaptureType, AgoraRteVirtualBackgroundOptions, AgoraRteVideoOrientation, AgoraRteCameraCaptureParams, AgoraRtcAudioOutputRouting } from '../imports';
2
- import { FcrDeviceInfo, FcrDeviceType, FcrDisplayInfo, FcrRenderView, FcrWindowInfo } from '../type';
3
- import { FcrMediaSourceState, FcrVideoRenderMode, FcrAiDenoiseLevel, FcrVideoSourceType, FcrAudioSourceType, FcrCapability } from '..';
2
+ import { FcrDeviceInfo, FcrDeviceType, FcrDisplayInfo, FcrRenderView, FcrVideoRenderConfig, FcrWindowInfo } from '../type';
3
+ import { FcrMediaSourceState, FcrAiDenoiseLevel, FcrVideoSourceType, FcrAudioSourceType, FcrCapability } from '..';
4
4
  export type FcrAudioOutputRouting = AgoraRtcAudioOutputRouting;
5
5
  export type FcrDesktopMediaObserver = {
6
6
  /**
@@ -99,10 +99,7 @@ export type FcrLoopbackObserver = {
99
99
  */
100
100
  onLoopbackStateUpdated?: (deviceId: string, state: FcrMediaSourceState) => void;
101
101
  };
102
- export type FcrRenderConfig = {
103
- renderMode: FcrVideoRenderMode;
104
- isMirror: boolean;
105
- };
102
+ export type FcrRenderConfig = FcrVideoRenderConfig;
106
103
  export type FcrBeautyOptions = AgoraRteBeautyOptions;
107
104
  export type FcrVirtualBackgroundOptions = AgoraRteVirtualBackgroundOptions;
108
105
  export type FcrCameraPosition = AgoraRteCameraPosition;
@@ -1,17 +1,46 @@
1
1
  "use strict";
2
2
 
3
+ require("core-js/modules/es.array.push.js");
4
+ require("core-js/modules/esnext.function.metadata.js");
5
+ require("core-js/modules/esnext.map.delete-all.js");
6
+ require("core-js/modules/esnext.map.emplace.js");
7
+ require("core-js/modules/esnext.map.every.js");
8
+ require("core-js/modules/esnext.map.filter.js");
9
+ require("core-js/modules/esnext.map.find.js");
10
+ require("core-js/modules/esnext.map.find-key.js");
11
+ require("core-js/modules/esnext.map.includes.js");
12
+ require("core-js/modules/esnext.map.key-of.js");
13
+ require("core-js/modules/esnext.map.map-keys.js");
14
+ require("core-js/modules/esnext.map.map-values.js");
15
+ require("core-js/modules/esnext.map.merge.js");
16
+ require("core-js/modules/esnext.map.reduce.js");
17
+ require("core-js/modules/esnext.map.some.js");
18
+ require("core-js/modules/esnext.map.update.js");
19
+ require("core-js/modules/esnext.symbol.metadata.js");
3
20
  Object.defineProperty(exports, "__esModule", {
4
21
  value: true
5
22
  });
6
23
  exports.FcrMonitorControlImpl = void 0;
24
+ var _imports = require("../imports");
25
+ let _initProto;
26
+ 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)]; } }; }
27
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
28
+ 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); }
29
+ 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; }
30
+ 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; }
7
31
  /**
8
32
  * @internal
9
33
  */
10
34
  class FcrMonitorControlImpl {
35
+ static #_ = (() => [_initProto] = _applyDecs(this, [[_imports.trace, 2, "uploadEvent"]], []).e)();
36
+ _monitor = (() => void _initProto(this))();
11
37
  constructor(engine, _config) {
12
38
  this._config = _config;
13
39
  this._monitor = engine.getMonitor();
14
40
  }
41
+ async uploadEvent(event) {
42
+ return this._monitor.uploadEvent(event);
43
+ }
15
44
  addObserver(observer) {
16
45
  this._monitor.addObserver(observer);
17
46
  }
@@ -1,8 +1,15 @@
1
- import { FcrPerformanceInfo } from '../type';
1
+ import { FcrMonitorUploadEvent, FcrPerformanceInfo } from '../type';
2
2
  export interface FcrMonitorObserver {
3
3
  onPerformanceInfoUpdated?: (status: FcrPerformanceInfo) => void;
4
4
  }
5
5
  export interface FcrMonitorControl {
6
+ /**
7
+ * Uploads an event to the Agora Real-Time Engagement Monitor.
8
+ * @param event The event to be uploaded.
9
+ * @param success Callback function to be called if the upload is successful.
10
+ * @param failure Callback function to be called if the upload fails, with an error parameter.
11
+ */
12
+ uploadEvent(event: FcrMonitorUploadEvent): Promise<void>;
6
13
  /**
7
14
  * Add an observer to the monitor.
8
15
  * @param observer