fcr-core 3.4.1-edu.1 → 3.4.2

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 (40) hide show
  1. package/lib/chat-connection/index.js +1 -1
  2. package/lib/engine/index.d.ts +1 -0
  3. package/lib/engine/index.js +7 -4
  4. package/lib/imports.d.ts +1 -2
  5. package/lib/media-control/desktop.js +7 -1
  6. package/lib/media-control/mobile.js +1 -1
  7. package/lib/media-control/type.d.ts +10 -0
  8. package/lib/monitor-control/index.js +1 -37
  9. package/lib/monitor-control/type.d.ts +1 -8
  10. package/lib/peer-session/index.js +5 -1
  11. package/lib/plugins/chatroom.js +127 -121
  12. package/lib/room-control/chatroom-control/type.d.ts +11 -25
  13. package/lib/room-control/group-control/index.js +1 -1
  14. package/lib/room-control/index.js +249 -192
  15. package/lib/room-control/interpreter-control/index.js +1 -1
  16. package/lib/room-control/interpreter-control/room.js +14 -0
  17. package/lib/room-control/mainroom-control/index.js +5 -1
  18. package/lib/room-control/privilege-control/helper.d.ts +4 -1
  19. package/lib/room-control/privilege-control/helper.js +70 -2
  20. package/lib/room-control/privilege-control/index.js +13 -35
  21. package/lib/room-control/stream-control/index.js +40 -37
  22. package/lib/room-control/type.d.ts +0 -4
  23. package/lib/room-control/type.js +1 -6
  24. package/lib/room-control/user-control/index.js +9 -6
  25. package/lib/room-control/user-control/type.d.ts +2 -3
  26. package/lib/room-control/waitingroom-control/index.js +1 -1
  27. package/lib/room-control/whiteboard-control/board-window.d.ts +1 -10
  28. package/lib/room-control/whiteboard-control/board-window.js +15 -143
  29. package/lib/room-control/whiteboard-control/index.js +2 -7
  30. package/lib/room-control/whiteboard-control/types.d.ts +0 -43
  31. package/lib/room-control/whiteboard-control/types.js +1 -7
  32. package/lib/room-control/whiteboard-control/utils.d.ts +1 -1
  33. package/lib/room-control/whiteboard-control/utils.js +0 -2
  34. package/lib/room-control/whiteboard-control-v2/index.js +3 -3
  35. package/lib/service/api.d.ts +2 -0
  36. package/lib/service/api.js +4 -2
  37. package/lib/type.d.ts +1 -2
  38. package/lib/utilities/error.d.ts +1 -0
  39. package/lib/utilities/error.js +1 -0
  40. package/package.json +7 -9
@@ -154,4 +154,4 @@ class FcrChatConnectionImpl {
154
154
  }
155
155
  exports.FcrChatConnectionImpl = FcrChatConnectionImpl;
156
156
  _FcrChatConnectionImpl = FcrChatConnectionImpl;
157
- [_initProto] = _applyDecs(_FcrChatConnectionImpl, [[_logger.trace, 2, "login"], [_logger.trace, 2, "logout"], [_logger.trace, 2, "getConnectionState"], [_logger.trace, 2, "getConnectionInstance"], [_logger.trace, 2, "addObserver"], [_logger.trace, 2, "removeObserver"]], []).e;
157
+ [_initProto] = _applyDecs(_FcrChatConnectionImpl, [[_logger.trace, 2, "login"], [_logger.trace, 2, "logout"], [_logger.trace, 2, "getConnectionState"], [_logger.trace, 2, "getConnectionInstance"]], []).e;
@@ -83,4 +83,5 @@ export declare class FcrCoreEngine {
83
83
  */
84
84
  removeObserver(observer: FcrCoreEngineObserver): void;
85
85
  private _addRteEngineObserver;
86
+ private _addLogObserver;
86
87
  }
@@ -55,8 +55,7 @@ var _agoraRteSdk = require("agora-rte-sdk");
55
55
  var _helper = require("agora-rte-sdk/lib/core/scene/helper");
56
56
  var _mobile = require("../media-control/mobile");
57
57
  var _chatroom = require("../plugins/chatroom");
58
- var _whiteboardControl = require("../room-control/whiteboard-control");
59
- var _privilegeControl = require("../room-control/privilege-control");
58
+ var _whiteboardControlV = require("../room-control/whiteboard-control-v2");
60
59
  var _logger = require("../utilities/logger");
61
60
  var _FcrCoreEngine;
62
61
  let _initProto;
@@ -100,6 +99,7 @@ class FcrCoreEngine {
100
99
  this._monitorControl = new _monitorControl.FcrMonitorControlImpl(this._rteEngine, this._config);
101
100
  this._desktopMediaControl = new _desktop.FcrDesktopMediaControlImpl(this._rteEngine.getMediaControl());
102
101
  this._mobileMediaControl = new _mobile.FcrMobileMediaControlImpl(this._rteEngine.getMediaControl());
102
+ this._addLogObserver();
103
103
  this._addRteEngineObserver();
104
104
  const coreIpList = (0, _parameters.getCoreIpList)(config.parameters);
105
105
  if (coreIpList) {
@@ -160,7 +160,7 @@ class FcrCoreEngine {
160
160
  const scene = this._rteEngine.createScene({
161
161
  sceneId: roomId
162
162
  });
163
- 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));
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));
164
164
  }
165
165
 
166
166
  /**
@@ -345,7 +345,10 @@ class FcrCoreEngine {
345
345
  }
346
346
  });
347
347
  }
348
+ _addLogObserver() {
349
+ this.addObserver((0, _logger.generateLogObserver)(this.logger, ['onConnectionStateUpdated', 'onPeerMessageReceived']));
350
+ }
348
351
  }
349
352
  exports.FcrCoreEngine = FcrCoreEngine;
350
353
  _FcrCoreEngine = FcrCoreEngine;
351
- [_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"], [_logger.trace, 2, "addObserver"], [_logger.trace, 2, "removeObserver"]], []).e;
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;
package/lib/imports.d.ts CHANGED
@@ -19,7 +19,7 @@ export { Duration } from 'agora-foundation/lib/schedule/scheduler';
19
19
  export { trace, bound } from 'agora-foundation/lib/decorator';
20
20
  export { AgoraScheduler, ActionWhenTaskFail } from 'agora-foundation/lib/schedule';
21
21
  export type { AgoraRtcNetworkStats, AgoraRtcDeviceInfo, AgoraRtcDisplayInfo, AgoraRtcWindowInfo, AgoraRtePerformanceInfo, AgoraRteScenePropertiesDeletedEvent, AgoraRteStreamEncryptionConfig, AgoraRteStreamJoinConfig, AgoraRteDualVideoStreamConfig, AgoraRteMessage, AgoraRteScenePropertiesUpdatedEvent, AgoraRteRenderView, AgoraRteScene, } from 'agora-rte-sdk';
22
- export type { AgoraRteVideoEncoderConfig } from 'agora-rte-sdk/lib/type';
22
+ export type { AgoraRteVideoEncoderConfig, AgoraRteEngineObserver } from 'agora-rte-sdk/lib/type';
23
23
  export type { AgoraRteNetworkQualityEvent } from 'agora-rte-sdk/lib/core/scene/type';
24
24
  export type { AgoraRteOperatCause } from 'agora-rte-sdk/lib/core/processor/type';
25
25
  export type { AgoraRestfulClient } from 'agora-rte-sdk/lib/core/services/client';
@@ -39,7 +39,6 @@ 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';
43
42
  export { FcrCoreEngine } from './engine';
44
43
  export type FcrImageData = ImageData;
45
44
  export type FcrWhiteboardView = HTMLElement;
@@ -144,7 +144,13 @@ class FcrDesktopMediaControlImpl {
144
144
  checkLoopbackDevice() {
145
145
  return this._mediaControl.checkLoopbackDevice();
146
146
  }
147
+ followSystemSpeaker(follow) {
148
+ return this._mediaControl.followSystemSpeaker(follow);
149
+ }
150
+ followSystemMicrophone(follow) {
151
+ return this._mediaControl.followSystemMicrophone(follow);
152
+ }
147
153
  }
148
154
  exports.FcrDesktopMediaControlImpl = FcrDesktopMediaControlImpl;
149
155
  _FcrDesktopMediaControlImpl = FcrDesktopMediaControlImpl;
150
- [_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, "setSelectedSpeakerVolume"], [_logger.trace, 2, "getSelectedSpeakerVolume"], [_logger.trace, 2, "addObserver"], [_logger.trace, 2, "removeObserver"]], []).e;
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;
@@ -194,4 +194,4 @@ class FcrMobileMediaControlImpl {
194
194
  }
195
195
  exports.FcrMobileMediaControlImpl = FcrMobileMediaControlImpl;
196
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"], [_logger.trace, 2, "addObserver"], [_logger.trace, 2, "removeObserver"]], []).e;
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;
@@ -588,6 +588,16 @@ export interface FcrDesktopMediaControl {
588
588
  * 2 if not installed/activated
589
589
  */
590
590
  checkLoopbackDevice(): Promise<number>;
591
+ /**
592
+ * Follow the system speaker.
593
+ * @param follow
594
+ */
595
+ followSystemSpeaker(follow: boolean): void;
596
+ /**
597
+ * Follow the system microphone.
598
+ * @param follow
599
+ */
600
+ followSystemMicrophone(follow: boolean): void;
591
601
  }
592
602
  export interface FcrMobileMediaControl {
593
603
  /**
@@ -1,51 +1,17 @@
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
- require("core-js/modules/es.array.push.js");
6
- require("core-js/modules/esnext.function.metadata.js");
7
- require("core-js/modules/esnext.map.delete-all.js");
8
- require("core-js/modules/esnext.map.emplace.js");
9
- require("core-js/modules/esnext.map.every.js");
10
- require("core-js/modules/esnext.map.filter.js");
11
- require("core-js/modules/esnext.map.find.js");
12
- require("core-js/modules/esnext.map.find-key.js");
13
- require("core-js/modules/esnext.map.includes.js");
14
- require("core-js/modules/esnext.map.key-of.js");
15
- require("core-js/modules/esnext.map.map-keys.js");
16
- require("core-js/modules/esnext.map.map-values.js");
17
- require("core-js/modules/esnext.map.merge.js");
18
- require("core-js/modules/esnext.map.reduce.js");
19
- require("core-js/modules/esnext.map.some.js");
20
- require("core-js/modules/esnext.map.update.js");
21
- require("core-js/modules/esnext.symbol.metadata.js");
22
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
23
3
  Object.defineProperty(exports, "__esModule", {
24
4
  value: true
25
5
  });
26
6
  exports.FcrMonitorControlImpl = void 0;
27
- require("core-js/modules/web.dom-collections.iterator.js");
28
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
29
- var _logger = require("../utilities/logger");
30
- var _FcrMonitorControlImpl;
31
- let _initProto;
32
- 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
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
34
- 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); }
35
- 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; }
36
- 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; }
37
7
  /**
38
8
  * @internal
39
9
  */
40
10
  class FcrMonitorControlImpl {
41
11
  constructor(engine, _config) {
42
- (0, _defineProperty2.default)(this, "_monitor", void _initProto(this));
43
12
  this._config = _config;
44
13
  this._monitor = engine.getMonitor();
45
14
  }
46
- async uploadEvent(event) {
47
- return this._monitor.uploadEvent(event);
48
- }
49
15
  addObserver(observer) {
50
16
  this._monitor.addObserver(observer);
51
17
  }
@@ -53,6 +19,4 @@ class FcrMonitorControlImpl {
53
19
  this._monitor.addObserver(observer);
54
20
  }
55
21
  }
56
- exports.FcrMonitorControlImpl = FcrMonitorControlImpl;
57
- _FcrMonitorControlImpl = FcrMonitorControlImpl;
58
- [_initProto] = _applyDecs(_FcrMonitorControlImpl, [[_logger.trace, 2, "uploadEvent"], [_logger.trace, 2, "addObserver"], [_logger.trace, 2, "removeObserver"]], []).e;
22
+ exports.FcrMonitorControlImpl = FcrMonitorControlImpl;
@@ -1,15 +1,8 @@
1
- import { FcrMonitorUploadEvent, FcrPerformanceInfo } from '../type';
1
+ import { 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>;
13
6
  /**
14
7
  * Add an observer to the monitor.
15
8
  * @param observer
@@ -62,6 +62,7 @@ class FcrPeerSessionControlImpl {
62
62
  this._rteEngine = _rteEngine;
63
63
  this._api = _api;
64
64
  this._userId = _userId;
65
+ this._addLogObserver();
65
66
  this._executeTask = this._executeTask.bind(this);
66
67
  this._rteEngine.addObserver({
67
68
  onPeerMessageReceived: this._handlePeerMessage.bind(this)
@@ -281,7 +282,10 @@ class FcrPeerSessionControlImpl {
281
282
  _isSessionExpired(session) {
282
283
  return session.timestamp + session.duration * _imports.Duration.second(1) < Date.now();
283
284
  }
285
+ _addLogObserver() {
286
+ this.addObserver((0, _logger.generateLogObserver)(this.logger, ['onPeerSessionAccepted', 'onPeerSessionReceived', 'onPeerSessionRejected']));
287
+ }
284
288
  }
285
289
  exports.FcrPeerSessionControlImpl = FcrPeerSessionControlImpl;
286
290
  _FcrPeerSessionControlImpl = FcrPeerSessionControlImpl;
287
- [_initProto] = _applyDecs(_FcrPeerSessionControlImpl, [[_logger.trace, 2, "startPeerSession"], [_logger.trace, 2, "stopPeerSession"], [_logger.trace, 2, "acceptPeerSession"], [_logger.trace, 2, "rejectPeerSession"], [_logger.trace, 2, "addObserver"], [_logger.trace, 2, "removeObserver"]], []).e;
291
+ [_initProto] = _applyDecs(_FcrPeerSessionControlImpl, [[_logger.trace, 2, "startPeerSession"], [_logger.trace, 2, "stopPeerSession"], [_logger.trace, 2, "acceptPeerSession"], [_logger.trace, 2, "rejectPeerSession"]], []).e;
@@ -29,8 +29,6 @@ Object.defineProperty(exports, "__esModule", {
29
29
  });
30
30
  exports.FcrChatRoomControlImpl = void 0;
31
31
  require("core-js/modules/es.error.cause.js");
32
- require("core-js/modules/esnext.async-iterator.map.js");
33
- require("core-js/modules/esnext.iterator.map.js");
34
32
  require("core-js/modules/web.dom-collections.iterator.js");
35
33
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
36
34
  var _observable = require("agora-foundation/lib/utilities/observable");
@@ -53,10 +51,6 @@ function _checkInRHS(e) { if (Object(e) !== e) throw TypeError("right-hand side
53
51
  * @internal
54
52
  */
55
53
  class FcrChatRoomControlImpl {
56
- _setConnectionState(state) {
57
- this._connectionState = state;
58
- this._observable.notifyObservers('onConnectionStateUpdated', this._scene.sceneId, state);
59
- }
60
54
  get conn() {
61
55
  if (!this._chatConnection.getConnectionInstance()) {
62
56
  throw (0, _error.generateFcrCoreClientError)(_error.FcrErrorModuleCode.ROOM_CHATROOM, _error.FcrErrorCode.UNDEFINED_ERROR, 'chat room connection not initialized, please get chat room token first', new Error('chat room connection not initialized, please get chat room token first'));
@@ -114,24 +108,27 @@ class FcrChatRoomControlImpl {
114
108
  };
115
109
  return message;
116
110
  }
117
- case 'img':
118
- {
119
- var _msg$ext, _msg$ext2;
120
- const message = {
121
- id: msg.id,
122
- from: (_msg$ext = msg.ext) === null || _msg$ext === void 0 ? void 0 : _msg$ext.sender,
123
- type: _type.FcrChatRoomMessageType.Image,
124
- timestamp: msg.time,
125
- url: msg.url || '',
126
- isPrivate: (_msg$ext2 = msg.ext) === null || _msg$ext2 === void 0 ? void 0 : _msg$ext2.isPrivate
127
- };
128
- return message;
129
- }
111
+ // TODO: 3.x
112
+ // case 'IMAGE': {
113
+ // const message: FcrChatRoomReceiveImageMessage = {
114
+ // id: msg.id,
115
+ // //@ts-ignore
116
+ // from: msg.ext.sender,
117
+ // type: FcrChatRoomMessageType.Image,
118
+ // //@ts-ignore
119
+ // timestamp: parseInt(msg.time),
120
+ // //@ts-ignore
121
+ // file: msg.url,
122
+ // //@ts-ignore
123
+ // isPrivate: msg.ext.isPrivate,
124
+ // };
125
+ // return message;
126
+ // }
130
127
  }
131
128
  throw (0, _error.generateFcrCoreClientError)(_error.FcrErrorModuleCode.ROOM_CHATROOM, _error.FcrErrorCode.UNDEFINED_ERROR, 'unknown remote message type', new Error('unknown remote message type'));
132
129
  });
133
- (0, _defineProperty2.default)(this, "_convertFcrChatRoomSendBaseMessageToAgoraChatMessage", (msg, progress) => {
134
- var _message$to, _imageMessage$to;
130
+ (0, _defineProperty2.default)(this, "_convertFcrChatRoomSendBaseMessageToAgoraChatMessage", msg => {
131
+ var _message$to;
135
132
  switch (msg.type) {
136
133
  case _type.FcrChatRoomMessageType.Text:
137
134
  const message = msg;
@@ -149,36 +146,12 @@ class FcrChatRoomControlImpl {
149
146
  },
150
147
  receiverList: message.to
151
148
  });
152
- case _type.FcrChatRoomMessageType.Image:
153
- const imageMessage = msg;
154
- const isPrivateImage = !!((_imageMessage$to = imageMessage.to) !== null && _imageMessage$to !== void 0 && _imageMessage$to.length);
155
- const localUser = this._scene.getUser(this._scene.getLocalUser().getLocalUserId());
156
- return _easemobWebsdk.default.message.create({
157
- to: this.chatRoomId,
158
- type: 'img',
159
- chatType: 'chatRoom',
160
- url: imageMessage.file.filePath,
161
- file: {
162
- filename: imageMessage.file.fileName,
163
- filetype: imageMessage.file.fileType,
164
- data: imageMessage.file.data,
165
- url: ''
166
- },
167
- ext: {
168
- sender: (0, _user.convertRteUserToFcrUser)(localUser),
169
- roomUuid: this._scene.sceneId,
170
- isPrivate: isPrivateImage
171
- },
172
- receiverList: imageMessage.to,
173
- onFileUploadProgress: e => {
174
- progress === null || progress === void 0 || progress(Math.round(e.loaded / e.total * 100));
175
- }
176
- });
177
149
  }
178
150
  throw (0, _error.generateFcrCoreClientError)(_error.FcrErrorModuleCode.ROOM_CHATROOM, _error.FcrErrorCode.UNDEFINED_ERROR, 'unknown local message type', new Error('unknown local message type'));
179
151
  });
180
152
  this._scene = _scene;
181
153
  this._chatConnection = _chatConnection;
154
+ this._addLogObserver();
182
155
  this._chatConnection.addObserver(this._chatConnectionObserver);
183
156
  if (this._chatConnection.getConnectionInstance()) {
184
157
  this._addEventListener();
@@ -187,74 +160,22 @@ class FcrChatRoomControlImpl {
187
160
  async join() {
188
161
  await this._joinChatRoom(this._chatConnection.getConnectionState());
189
162
  }
190
- _removeEventListener() {
191
- this.conn.removeEventHandler("chatroom".concat(this._scene.sceneId));
192
- }
193
- _addEventListener() {
194
- this._removeEventListener();
195
- this.conn.addEventHandler("chatroom".concat(this._scene.sceneId), {
196
- onTextMessage: msg => {
197
- if (msg.to !== this.chatRoomId) {
198
- return;
199
- }
200
- const message = this._convertAgoraChatMessageToFcrChatRoomReceiveMessage(msg);
201
- this._observable.notifyObservers('onTextMessageReceived', this._scene.sceneId, message);
202
- }
203
- });
204
- this.conn.onPictureMessage = msg => {
205
- if (msg.to !== this.chatRoomId) {
206
- return;
207
- }
208
- // 这里的数据结构和 onTextMessage 不一样,实际上contentsType是img ,type是chatroom,
209
- // 但是因为在onPictureMessage的回调中,所以这里直接用type: 'img',后续可以考虑优化
210
- const message = this._convertAgoraChatMessageToFcrChatRoomReceiveMessage(_objectSpread(_objectSpread({}, msg), {}, {
211
- type: 'img'
212
- }));
213
- this._observable.notifyObservers('onImageMessageReceived', this._scene.sceneId, message);
214
- };
215
-
216
- // TODO: 3.x
217
- // this.conn.onCmdMessage = (msg) => {
218
- // if (msg.to !== this.initConfig.chatRoomId) {
219
- // return;
220
- // }
221
- // const message: FcrChatRoomReceiveCustomMessage =
222
- // this._convertAgoraChatMessageToFcrChatRoomReceiveMessage(msg);
223
- // this._observable.notifyObservers('onCustomMessageReceived', this._scene.sceneId, message);
224
- // };
225
-
226
- // TODO: 3.x
227
- // this.conn.onChatroomEvent = (eventData: EasemobChat.ChatroomEvent) => {
228
- // if (eventData.operation === 'updateAnnouncement') {
229
- // this._observable.notifyObservers(
230
- // 'onAnnouncementUpdated',
231
- // this._scene.sceneId,
232
- // // TODO: 应该用什么字段传递?
233
- // (eventData.attributes as { [key: string]: string })?.announcement,
234
- // );
235
- // } else if (eventData.operation === 'deleteAnnouncement') {
236
- // this._observable.notifyObservers('onAnnouncementDeleted', this._scene.sceneId);
237
- // }
238
- // };
239
- }
240
163
  getConnectionState() {
241
164
  return this._connectionState;
242
165
  }
243
- async sendMessage(message, progress) {
166
+ async sendMessage(message) {
244
167
  var _message$to2;
245
- const msg = this._convertFcrChatRoomSendBaseMessageToAgoraChatMessage(message, progress);
246
- const sendMsgRes = await this.conn.send(msg);
168
+ const msg = this._convertFcrChatRoomSendBaseMessageToAgoraChatMessage(message);
169
+ await this.conn.send(msg);
247
170
  const localUserInfo = this._scene.getUser(this._scene.getLocalUser().getLocalUserId());
248
171
  const res = _objectSpread(_objectSpread({}, message.type === _type.FcrChatRoomMessageType.Text ? {
249
172
  content: message.content
250
- } :
251
- // @ts-ignore
252
- {
253
- url: sendMsgRes.message.url
173
+ } : {
174
+ file: message.file
254
175
  }), {}, {
255
176
  from: (0, _user.convertRteUserToFcrUser)(localUserInfo),
256
- id: sendMsgRes.serverMsgId,
257
- type: message.type,
177
+ id: msg.id,
178
+ type: _type.FcrChatRoomMessageType.Text,
258
179
  properties: message.properties,
259
180
  timestamp: Date.now(),
260
181
  isPrivate: !!((_message$to2 = message.to) !== null && _message$to2 !== void 0 && _message$to2.length)
@@ -268,6 +189,9 @@ class FcrChatRoomControlImpl {
268
189
  this._observable.removeObserver(observer);
269
190
  }
270
191
  async leave() {
192
+ if (!this._chatConnection.getConnectionInstance()) {
193
+ return;
194
+ }
271
195
  await new Promise(async (resolve, reject) => {
272
196
  this._removeEventListener();
273
197
  try {
@@ -285,24 +209,106 @@ class FcrChatRoomControlImpl {
285
209
  }
286
210
  });
287
211
  }
288
- async getHistoryMessageList(pageSize, startedMessageId) {
289
- if (pageSize > 50) {
290
- throw (0, _error.generateFcrCoreClientError)(_error.FcrErrorModuleCode.ROOM_CHATROOM, _error.FcrErrorCode.UNDEFINED_ERROR, 'pageSize should be less than 50', new Error('pageSize should be less than 50'));
291
- }
292
- const assembleRet = await this.conn.fetchHistoryMessages({
293
- queue: this.chatRoomId,
294
- count: pageSize,
295
- start: startedMessageId,
296
- isGroup: true,
297
- fail(error) {
298
- throw (0, _error.generateFcrCoreClientError)(_error.FcrErrorModuleCode.ROOM_CHATROOM, _error.FcrErrorCode.UNDEFINED_ERROR, error.message, new Error('get history message list failed'));
212
+ _removeEventListener() {
213
+ this.conn.removeEventHandler("chatroom".concat(this._scene.sceneId));
214
+ }
215
+ _addEventListener() {
216
+ this._removeEventListener();
217
+ this.conn.addEventHandler("chatroom".concat(this._scene.sceneId), {
218
+ onTextMessage: msg => {
219
+ if (msg.to !== this.chatRoomId) {
220
+ return;
221
+ }
222
+ const message = this._convertAgoraChatMessageToFcrChatRoomReceiveMessage(msg);
223
+ this._observable.notifyObservers('onTextMessageReceived', this._scene.sceneId, message);
299
224
  }
300
225
  });
301
- const ret = assembleRet.map(msgBody => {
302
- return this._convertAgoraChatMessageToFcrChatRoomReceiveMessage(msgBody);
303
- });
304
- return ret;
226
+ // TODO: 3.x
227
+ // this.conn.onPictureMessage = (msg) => {
228
+ // if (msg.to !== this.initConfig.chatRoomId) {
229
+ // return;
230
+ // }
231
+ // const message: FcrChatRoomReceiveImageMessage =
232
+ // this._convertAgoraChatMessageToFcrChatRoomReceiveMessage(
233
+ // msg,
234
+ // ) as FcrChatRoomReceiveImageMessage;
235
+ // this._observable.notifyObservers('onImageMessageReceived', this._scene.sceneId, message);
236
+ // };
237
+
238
+ // TODO: 3.x
239
+ // this.conn.onCmdMessage = (msg) => {
240
+ // if (msg.to !== this.initConfig.chatRoomId) {
241
+ // return;
242
+ // }
243
+ // const message: FcrChatRoomReceiveCustomMessage =
244
+ // this._convertAgoraChatMessageToFcrChatRoomReceiveMessage(msg);
245
+ // this._observable.notifyObservers('onCustomMessageReceived', this._scene.sceneId, message);
246
+ // };
247
+
248
+ // TODO: 3.x
249
+ // this.conn.onChatroomEvent = (eventData: EasemobChat.ChatroomEvent) => {
250
+ // if (eventData.operation === 'updateAnnouncement') {
251
+ // this._observable.notifyObservers(
252
+ // 'onAnnouncementUpdated',
253
+ // this._scene.sceneId,
254
+ // // TODO: 应该用什么字段传递?
255
+ // (eventData.attributes as { [key: string]: string })?.announcement,
256
+ // );
257
+ // } else if (eventData.operation === 'deleteAnnouncement') {
258
+ // this._observable.notifyObservers('onAnnouncementDeleted', this._scene.sceneId);
259
+ // }
260
+ // };
261
+ }
262
+ _setConnectionState(state) {
263
+ this._connectionState = state;
264
+ this._observable.notifyObservers('onConnectionStateUpdated', this._scene.sceneId, state);
305
265
  }
266
+ _addLogObserver() {
267
+ this.addObserver((0, _logger.generateLogObserver)(this.logger, ['onConnectionStateUpdated', 'onErrorOccurred'
268
+ // 'onTextMessageReceived'
269
+ ]));
270
+ }
271
+
272
+ // TODO: 3.x
273
+ // /**
274
+ // *
275
+ // * @param pageSize max 50
276
+ // * @param startedMessageId
277
+ // * @returns
278
+ // */
279
+ // async getHistoryMessageList(
280
+ // pageSize: number,
281
+ // startedMessageId: string,
282
+ // ): Promise<Array<FcrChatRoomReceiveBaseMessage>> {
283
+ // if (pageSize > 50) {
284
+ // throw generateFcrCoreClientError(
285
+ // FcrErrorModuleCode.ROOM_CHATROOM,
286
+ // FcrErrorCode.UNDEFINED_ERROR,
287
+ // 'pageSize should be less than 50',
288
+ // new Error('pageSize should be less than 50'),
289
+ // );
290
+ // }
291
+
292
+ // const assembleRet = await this.conn.fetchHistoryMessages({
293
+ // queue: this.initConfig.chatRoomId,
294
+ // isGroup: true,
295
+ // count: pageSize,
296
+ // start: startedMessageId,
297
+ // fail(error) {
298
+ // throw generateFcrCoreClientError(
299
+ // FcrErrorModuleCode.ROOM_CHATROOM,
300
+ // FcrErrorCode.UNDEFINED_ERROR,
301
+ // error.message,
302
+ // new Error('get history message list failed'),
303
+ // );
304
+ // },
305
+ // });
306
+
307
+ // const ret: FcrChatRoomReceiveBaseMessage[] = assembleRet.map((msgBody) => {
308
+ // return this._convertAgoraChatMessageToFcrChatRoomReceiveMessage(msgBody);
309
+ // });
310
+ // return ret;
311
+ // }
306
312
 
307
313
  // TODO: 3.x
308
314
  // async getAnnouncement(): Promise<string> {
@@ -358,4 +364,4 @@ class FcrChatRoomControlImpl {
358
364
  }
359
365
  exports.FcrChatRoomControlImpl = FcrChatRoomControlImpl;
360
366
  _FcrChatRoomControlImpl = FcrChatRoomControlImpl;
361
- [_initProto] = _applyDecs(_FcrChatRoomControlImpl, [[_logger.trace, 2, "join"], [_logger.trace, 2, "getConnectionState"], [_logger.trace, 2, "sendMessage"], [_logger.trace, 2, "addObserver"], [_logger.trace, 2, "removeObserver"], [_logger.trace, 2, "leave"]], []).e;
367
+ [_initProto] = _applyDecs(_FcrChatRoomControlImpl, [[_logger.trace, 2, "join"], [_logger.trace, 2, "getConnectionState"], [_logger.trace, 2, "sendMessage"], [_logger.trace, 2, "leave"]], []).e;
@@ -9,9 +9,8 @@ export interface FcrChatRoomControl {
9
9
  /**
10
10
  * Sends a message to the chat room.
11
11
  * @param message
12
- * @param onProgress
13
12
  */
14
- sendMessage(message: FcrChatRoomSendBaseMessage, progress?: (progress: number) => void): Promise<FcrChatRoomReceivedBaseMessage>;
13
+ sendMessage(message: FcrChatRoomSendBaseMessage): Promise<FcrChatRoomReceiveBaseMessage>;
15
14
  /**
16
15
  * Adds an observer to the chat room.
17
16
  * @param observer
@@ -22,12 +21,6 @@ export interface FcrChatRoomControl {
22
21
  * @param observer
23
22
  */
24
23
  removeObserver(observer: FcrChatRoomObserver): void;
25
- /**
26
- * Gets the history message list of the chat room.
27
- * @param pageSize
28
- * @param startedMessageId
29
- */
30
- getHistoryMessageList(pageSize: number, startedMessageId?: string): Promise<FcrChatRoomReceivedBaseMessage[]>;
31
24
  }
32
25
  export declare enum FcrChatRoomConnectionState {
33
26
  Disconnected = 0,
@@ -47,7 +40,7 @@ export type FcrChatRoomSendBaseMessage = {
47
40
  export type FcrChatRoomSendTextMessage = FcrChatRoomSendBaseMessage & {
48
41
  content: string;
49
42
  };
50
- export type FcrChatRoomReceivedBaseMessage = {
43
+ export type FcrChatRoomReceiveBaseMessage = {
51
44
  id: string;
52
45
  from: FcrUserInfo;
53
46
  type: FcrChatRoomMessageType;
@@ -55,22 +48,22 @@ export type FcrChatRoomReceivedBaseMessage = {
55
48
  timestamp: number;
56
49
  isPrivate: boolean;
57
50
  };
58
- export type FcrChatRoomReceivedTextMessage = FcrChatRoomReceivedBaseMessage & {
51
+ export type FcrChatRoomReceiveTextMessage = FcrChatRoomReceiveBaseMessage & {
59
52
  content: string;
60
53
  };
61
54
  export type FcrChatRoomFile = {
62
- fileName: string;
63
- fileType: string;
64
- filePath?: string;
65
- data?: any;
66
- };
67
- export type FcrChatRoomReceivedImageMessage = FcrChatRoomReceivedBaseMessage & {
55
+ filename: string;
56
+ filetype: string;
68
57
  url: string;
58
+ data: any;
59
+ };
60
+ export type FcrChatRoomReceiveImageMessage = FcrChatRoomReceiveBaseMessage & {
61
+ file: FcrChatRoomFile;
69
62
  };
70
63
  export type FcrChatRoomSendImageMessage = FcrChatRoomSendBaseMessage & {
71
64
  file: FcrChatRoomFile;
72
65
  };
73
- export type FcrChatRoomReceiveCustomMessage = FcrChatRoomReceivedBaseMessage & {};
66
+ export type FcrChatRoomReceiveCustomMessage = FcrChatRoomReceiveBaseMessage & {};
74
67
  export type FcrChatRoomObserver = {
75
68
  /**
76
69
  * Callback to receive the connection state change of the chat room.
@@ -85,7 +78,7 @@ export type FcrChatRoomObserver = {
85
78
  * @param message
86
79
  * @returns
87
80
  */
88
- onTextMessageReceived?: (roomId: string, message: FcrChatRoomReceivedTextMessage) => void;
81
+ onTextMessageReceived?: (roomId: string, message: FcrChatRoomReceiveTextMessage) => void;
89
82
  /**
90
83
  * Callback when an error occurs.
91
84
  * @param roomId
@@ -93,13 +86,6 @@ export type FcrChatRoomObserver = {
93
86
  * @returns
94
87
  */
95
88
  onErrorOccurred?: (roomId: string, error: FcrError) => void;
96
- /**
97
- * Callback to receive the image message sent to the chat room.
98
- * @param roomId The ID of the chat room.
99
- * @param message The image message received in the chat room.
100
- * @returns void
101
- */
102
- onImageMessageReceived?: (roomId: string, message: FcrChatRoomReceivedImageMessage) => void;
103
89
  };
104
90
  export type FcrChatRoomControlInitConfig = {
105
91
  appkey: string;
@@ -246,4 +246,4 @@ class FcrGroupControl {
246
246
  }
247
247
  exports.FcrGroupControl = FcrGroupControl;
248
248
  _FcrGroupControl = FcrGroupControl;
249
- [_initProto] = _applyDecs(_FcrGroupControl, [[_logger.trace, 2, "getGroupList"], [_logger.trace, 2, "getGroupUserList"], [_logger.trace, 2, "addGroups"], [_logger.trace, 2, "updateGroups"], [_logger.trace, 2, "deleteGroups"], [_logger.trace, 2, "deleteAllGroups"], [_logger.trace, 2, "addUsers"], [_logger.trace, 2, "removeUsers"], [_logger.trace, 2, "moveUsers"], [_logger.trace, 2, "addObserver"], [_logger.trace, 2, "removeObserver"]], []).e;
249
+ [_initProto] = _applyDecs(_FcrGroupControl, [[_logger.trace, 2, "getGroupList"], [_logger.trace, 2, "getGroupUserList"], [_logger.trace, 2, "addGroups"], [_logger.trace, 2, "updateGroups"], [_logger.trace, 2, "deleteGroups"], [_logger.trace, 2, "deleteAllGroups"], [_logger.trace, 2, "addUsers"], [_logger.trace, 2, "removeUsers"], [_logger.trace, 2, "moveUsers"]], []).e;