@techsee/techsee-media-service 16.0.0 → 17.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/lib/MediaConstants.d.ts +5 -0
  2. package/lib/MediaConstants.d.ts.map +1 -1
  3. package/lib/MediaConstants.js +9 -1
  4. package/lib/MediaConstants.js.map +1 -1
  5. package/lib/MultiParty/MultiPartyService.d.ts +7 -3
  6. package/lib/MultiParty/MultiPartyService.d.ts.map +1 -1
  7. package/lib/MultiParty/MultiPartyServiceFactory.d.ts +2 -2
  8. package/lib/MultiParty/MultiPartyServiceFactory.d.ts.map +1 -1
  9. package/lib/MultiParty/MultiPartyServiceFactory.js +2 -2
  10. package/lib/MultiParty/MultiPartyServiceFactory.js.map +1 -1
  11. package/lib/MultiParty/MultipartyServiceEventTypes.d.ts +3 -1
  12. package/lib/MultiParty/MultipartyServiceEventTypes.d.ts.map +1 -1
  13. package/lib/MultiParty/index.d.ts +0 -1
  14. package/lib/MultiParty/index.d.ts.map +1 -1
  15. package/lib/MultiParty/index.js +1 -10
  16. package/lib/MultiParty/index.js.map +1 -1
  17. package/lib/MultiParty/opentok/OpentokMultiPartyService.d.ts +13 -6
  18. package/lib/MultiParty/opentok/OpentokMultiPartyService.d.ts.map +1 -1
  19. package/lib/MultiParty/opentok/OpentokMultiPartyService.js +192 -71
  20. package/lib/MultiParty/opentok/OpentokMultiPartyService.js.map +1 -1
  21. package/lib/MultiParty/opentok/OpentokPublisher.d.ts +12 -16
  22. package/lib/MultiParty/opentok/OpentokPublisher.d.ts.map +1 -1
  23. package/lib/MultiParty/opentok/OpentokPublisher.js +17 -108
  24. package/lib/MultiParty/opentok/OpentokPublisher.js.map +1 -1
  25. package/lib/MultiParty/opentok/OpentokPublisherEventMapper.d.ts +2 -1
  26. package/lib/MultiParty/opentok/OpentokPublisherEventMapper.d.ts.map +1 -1
  27. package/lib/MultiParty/opentok/OpentokPublisherEventMapper.js +8 -5
  28. package/lib/MultiParty/opentok/OpentokPublisherEventMapper.js.map +1 -1
  29. package/lib/MultiParty/opentok/OpentokScreenPublisher.d.ts +5 -0
  30. package/lib/MultiParty/opentok/OpentokScreenPublisher.d.ts.map +1 -0
  31. package/lib/MultiParty/opentok/OpentokScreenPublisher.js +80 -0
  32. package/lib/MultiParty/opentok/OpentokScreenPublisher.js.map +1 -0
  33. package/lib/MultiParty/opentok/OpentokVideoPublisher.d.ts +13 -0
  34. package/lib/MultiParty/opentok/OpentokVideoPublisher.d.ts.map +1 -0
  35. package/lib/MultiParty/opentok/OpentokVideoPublisher.js +314 -0
  36. package/lib/MultiParty/opentok/OpentokVideoPublisher.js.map +1 -0
  37. package/lib/MultiParty/types.d.ts +5 -1
  38. package/lib/MultiParty/types.d.ts.map +1 -1
  39. package/lib/MultiParty/utils.d.ts +7 -1
  40. package/lib/MultiParty/utils.d.ts.map +1 -1
  41. package/lib/MultiParty/utils.js +7 -1
  42. package/lib/MultiParty/utils.js.map +1 -1
  43. package/lib/qos/raw-qos.js +1 -1
  44. package/lib/webrtc-ie-shim.js +1 -1
  45. package/package.json +1 -1
  46. package/lib/MultiParty/VideoLayoutType.d.ts +0 -4
  47. package/lib/MultiParty/VideoLayoutType.d.ts.map +0 -1
  48. package/lib/MultiParty/VideoLayoutType.js +0 -13
  49. package/lib/MultiParty/VideoLayoutType.js.map +0 -1
@@ -9,6 +9,11 @@ export declare enum ConstraintType {
9
9
  MIN = "min",
10
10
  IDEAL = "ideal"
11
11
  }
12
+ export declare enum VideoTypesEnum {
13
+ CAMERA = "camera",
14
+ SCREEN = "screen",
15
+ NOTHING = ""
16
+ }
12
17
  export declare enum MultiPartyCameraTypes {
13
18
  FRONT = "front",
14
19
  BACK = "back"
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/MediaConstants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,qBAAqB,EAAC,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAC,WAAW,EAAC,MAAM,uDAAuD,CAAC;AAElF,oBAAY,oBAAoB;IAC5B,MAAM,WAAW;IACjB,YAAY,iBAAiB;IAC7B,aAAa,kBAAkB;CAClC;AAED,oBAAY,cAAc;IACtB,GAAG,QAAQ;IACX,KAAK,UAAU;CAClB;AAED,oBAAY,qBAAqB;IAC7B,KAAK,UAAoB;IACzB,IAAI,SAAmB;CAC1B;AAED,oBAAY,gBAAgB;IACxB,OAAO,YAAY;IACnB,UAAU,gBAAgB;IAC1B,WAAW,iBAAiB;CAC/B;AAED,oBAAY,iBAAiB;IACzB,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,IAAI,SAAS;CAChB;AAED,oBAAY,iBAAiB;IACzB,SAAS,cAAc;IACvB,KAAK,eAAe;CACvB;AAED,oBAAY,qBAAqB;IAC7B,eAAe,oBAAoB;IACnC,gBAAgB,qBAAqB;IACrC,YAAY,iBAAiB;CAChC;AAED,oBAAY,oBAAoB;IAC5B,KAAK,UAAU;IACf,KAAK,UAAU;CAClB;AAED,oBAAY,gBAAgB;IACxB,kBAAkB,2BAA2B;IAC7C,qBAAqB,0BAA0B;IAC/C,iBAAiB,+BAA+B;IAChD,iBAAiB,+BAA+B;IAChD,wBAAwB,6BAA6B;CACxD;AAED,oBAAY,4BAA4B;IAEpC,gBAAgB,qBAAqB;IACrC,yBAAyB,8BAA8B;IACvD,gCAAgC,qCAAqC;IACrE,wBAAwB,6BAA6B;IACrD,wBAAwB,6BAA6B;IACrD,gBAAgB,qBAAqB;IACrC,0BAA0B,+BAA+B;CAC5D;AAED,oBAAY,2BAA2B;IACnC,WAAW,gBAAgB;IAC3B,eAAe,oBAAoB;IACnC,cAAc,mBAAmB;IACjC,cAAc,mBAAmB;CACpC;AAED,oBAAY,6BAA6B;IACrC,EAAE,SAAS;IACX,EAAE,SAAS;CACd;AAED,oBAAY,qBAAqB;IAC7B,EAAE,OAAO;IACT,EAAE,OAAO;IACT,IAAI,SAAS;CAChB;AAED,eAAO,MAAM,wBAAwB,YAAY,CAAC;AAClD,eAAO,MAAM,6BAA6B,uBAAuB,CAAC;AAClE,eAAO,MAAM,yCAAyC,KAAK,CAAC;AAC5D,eAAO,MAAM,kCAAkC,KAAK,CAAC;AAErD,eAAO,MAAM,yBAAyB,EAAE,qBAGvC,CAAC;AAEF,eAAO,MAAM,6BAA6B,EAAE,qBAAqB,EAIhE,CAAC;AAEF,eAAO,MAAM,aAAa,aAAa,CAAC;AAExC,OAAO,EAAC,WAAW,EAAC,CAAC","file":"MediaConstants.d.ts","sourcesContent":["import {VideoStreamResolution} from './MediaContracts';\nimport {CameraTypes} from '@techsee/techsee-common/lib/constants/media.constants';\n\nexport enum LocalVideoSourceType {\n CAMERA = 'CAMERA',\n CAMERA_FRONT = 'CAMERA_FRONT',\n DESKTOP_SHARE = 'DESKTOP_SHARE'\n}\n\nexport enum ConstraintType {\n MIN = 'min',\n IDEAL = 'ideal'\n}\n\nexport enum MultiPartyCameraTypes {\n FRONT = CameraTypes.FRONT,\n BACK = CameraTypes.BACK\n}\n\nexport enum MediaServiceType {\n OPENTOK = 'OPENTOK',\n TURNSERVER = 'TURN_SERVER',\n MEDIASERVER = 'MEDIA_SERVER'\n}\n\nexport enum SessionClientRole {\n AGENT = 'AGENT',\n OBSERVER = 'OBSERVER',\n USER = 'USER'\n}\n\nexport enum SessionClientType {\n INITIATOR = 'publisher',\n GUEST = 'subscriber'\n}\n\nexport enum MediaRequestErrorCode {\n Overconstrained = 'Overconstrained',\n PermissionDenied = 'PermissionDenied',\n GeneralError = 'GeneralError'\n}\n\nexport enum KnownMediaStreamKind {\n Audio = 'audio',\n Video = 'video'\n}\n\nexport enum KnownMediaStream {\n AGENT_AUDIO_STREAM = 'DASHBOARD_AUDIO_STREAM',\n OBSERVER_AUDIO_STREAM = 'OBSERVER_AUDIO_STREAM',\n USER_AUDIO_STREAM = 'MOBILE_CLIENT_AUDIO_STREAM',\n USER_VIDEO_STREAM = 'MOBILE_CLIENT_VIDEO_STREAM',\n USER_SCREEN_SHARE_STREAM = 'USER_SCREEN_SHARE_STREAM'\n}\n\nexport enum MediaSessionDisconnectReason {\n //Raised on initiator peer when guest peer was disconnected from signaling\n PeerDisconnected = 'PeerDisconnected',\n PeerConnectionInterrupted = 'PeerConnectionInterrupted',\n PeerConnectionStateChangeTimeout = 'PeerConnectionStateChangeTimeout',\n InitiatorPeerReconnected = 'InitiatorPeerReconnected',\n PublishedStreamDestroyed = 'PublishedStreamDestroyed',\n ForcedByConsumer = 'ForcedByConsumer',\n SignalingChannelDisconnect = 'SignalingChannelDisconnect'\n}\n\nexport enum MediaStreamUnregisterReason {\n NativeEvent = 'NativeEvent',\n ReplacingStream = 'ReplacingStream',\n ClosedRemotely = 'ClosedRemotely',\n ServiceCleanUp = 'ServiceCleanUp'\n}\n\nexport enum VideoResolutionMultiplication {\n HD = 829440, //(1280*720)*0.9\n SD = 230400 //640*360*0.9\n}\n\nexport enum VideoResolutionFormat {\n HD = 'HD',\n SD = 'SD',\n NONE = 'none'\n}\n\nexport const DEFAULT_VIDEO_RESOLUTION = '640x480';\nexport const DEFAULT_VIDEO_CONSTRAINT_TYPE = ConstraintType.IDEAL;\nexport const DEFAULT_PEER_CONNECTIVITY_TIMEOUT_SECONDS = 10;\nexport const DEFAULT_VIDEO_WAIT_TIMEOUT_SECONDS = 30;\n\nexport const DEFAULT_VIDEO_CONSTRAINTS: VideoStreamResolution = {\n resolution: DEFAULT_VIDEO_RESOLUTION,\n constraintType: DEFAULT_VIDEO_CONSTRAINT_TYPE\n};\n\nexport const POSSIBLE_LOOPBACK_RESOLUTIONS: VideoStreamResolution[] = [\n {resolution: '1920x1080', constraintType: ConstraintType.MIN}, // FHD\n {resolution: '1280x720', constraintType: ConstraintType.MIN}, // HD\n DEFAULT_VIDEO_CONSTRAINTS // fallback\n];\n\nexport const HD_RESOLUTION = '1280x720';\n\nexport {CameraTypes};\n"]}
1
+ {"version":3,"sources":["../src/MediaConstants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,qBAAqB,EAAC,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAC,WAAW,EAAC,MAAM,uDAAuD,CAAC;AAElF,oBAAY,oBAAoB;IAC5B,MAAM,WAAW;IACjB,YAAY,iBAAiB;IAC7B,aAAa,kBAAkB;CAClC;AAED,oBAAY,cAAc;IACtB,GAAG,QAAQ;IACX,KAAK,UAAU;CAClB;AAED,oBAAY,cAAc;IACtB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,OAAO,KAAK;CACf;AAED,oBAAY,qBAAqB;IAC7B,KAAK,UAAoB;IACzB,IAAI,SAAmB;CAC1B;AAED,oBAAY,gBAAgB;IACxB,OAAO,YAAY;IACnB,UAAU,gBAAgB;IAC1B,WAAW,iBAAiB;CAC/B;AAED,oBAAY,iBAAiB;IACzB,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,IAAI,SAAS;CAChB;AAED,oBAAY,iBAAiB;IACzB,SAAS,cAAc;IACvB,KAAK,eAAe;CACvB;AAED,oBAAY,qBAAqB;IAC7B,eAAe,oBAAoB;IACnC,gBAAgB,qBAAqB;IACrC,YAAY,iBAAiB;CAChC;AAED,oBAAY,oBAAoB;IAC5B,KAAK,UAAU;IACf,KAAK,UAAU;CAClB;AAED,oBAAY,gBAAgB;IACxB,kBAAkB,2BAA2B;IAC7C,qBAAqB,0BAA0B;IAC/C,iBAAiB,+BAA+B;IAChD,iBAAiB,+BAA+B;IAChD,wBAAwB,6BAA6B;CACxD;AAED,oBAAY,4BAA4B;IAEpC,gBAAgB,qBAAqB;IACrC,yBAAyB,8BAA8B;IACvD,gCAAgC,qCAAqC;IACrE,wBAAwB,6BAA6B;IACrD,wBAAwB,6BAA6B;IACrD,gBAAgB,qBAAqB;IACrC,0BAA0B,+BAA+B;CAC5D;AAED,oBAAY,2BAA2B;IACnC,WAAW,gBAAgB;IAC3B,eAAe,oBAAoB;IACnC,cAAc,mBAAmB;IACjC,cAAc,mBAAmB;CACpC;AAED,oBAAY,6BAA6B;IACrC,EAAE,SAAS;IACX,EAAE,SAAS;CACd;AAED,oBAAY,qBAAqB;IAC7B,EAAE,OAAO;IACT,EAAE,OAAO;IACT,IAAI,SAAS;CAChB;AAED,eAAO,MAAM,wBAAwB,YAAY,CAAC;AAClD,eAAO,MAAM,6BAA6B,uBAAuB,CAAC;AAClE,eAAO,MAAM,yCAAyC,KAAK,CAAC;AAC5D,eAAO,MAAM,kCAAkC,KAAK,CAAC;AAErD,eAAO,MAAM,yBAAyB,EAAE,qBAGvC,CAAC;AAEF,eAAO,MAAM,6BAA6B,EAAE,qBAAqB,EAIhE,CAAC;AAEF,eAAO,MAAM,aAAa,aAAa,CAAC;AAExC,OAAO,EAAC,WAAW,EAAC,CAAC","file":"MediaConstants.d.ts","sourcesContent":["import {VideoStreamResolution} from './MediaContracts';\nimport {CameraTypes} from '@techsee/techsee-common/lib/constants/media.constants';\n\nexport enum LocalVideoSourceType {\n CAMERA = 'CAMERA',\n CAMERA_FRONT = 'CAMERA_FRONT',\n DESKTOP_SHARE = 'DESKTOP_SHARE'\n}\n\nexport enum ConstraintType {\n MIN = 'min',\n IDEAL = 'ideal'\n}\n\nexport enum VideoTypesEnum {\n CAMERA = 'camera',\n SCREEN = 'screen',\n NOTHING = ''\n}\n\nexport enum MultiPartyCameraTypes {\n FRONT = CameraTypes.FRONT,\n BACK = CameraTypes.BACK\n}\n\nexport enum MediaServiceType {\n OPENTOK = 'OPENTOK',\n TURNSERVER = 'TURN_SERVER',\n MEDIASERVER = 'MEDIA_SERVER'\n}\n\nexport enum SessionClientRole {\n AGENT = 'AGENT',\n OBSERVER = 'OBSERVER',\n USER = 'USER'\n}\n\nexport enum SessionClientType {\n INITIATOR = 'publisher',\n GUEST = 'subscriber'\n}\n\nexport enum MediaRequestErrorCode {\n Overconstrained = 'Overconstrained',\n PermissionDenied = 'PermissionDenied',\n GeneralError = 'GeneralError'\n}\n\nexport enum KnownMediaStreamKind {\n Audio = 'audio',\n Video = 'video'\n}\n\nexport enum KnownMediaStream {\n AGENT_AUDIO_STREAM = 'DASHBOARD_AUDIO_STREAM',\n OBSERVER_AUDIO_STREAM = 'OBSERVER_AUDIO_STREAM',\n USER_AUDIO_STREAM = 'MOBILE_CLIENT_AUDIO_STREAM',\n USER_VIDEO_STREAM = 'MOBILE_CLIENT_VIDEO_STREAM',\n USER_SCREEN_SHARE_STREAM = 'USER_SCREEN_SHARE_STREAM'\n}\n\nexport enum MediaSessionDisconnectReason {\n //Raised on initiator peer when guest peer was disconnected from signaling\n PeerDisconnected = 'PeerDisconnected',\n PeerConnectionInterrupted = 'PeerConnectionInterrupted',\n PeerConnectionStateChangeTimeout = 'PeerConnectionStateChangeTimeout',\n InitiatorPeerReconnected = 'InitiatorPeerReconnected',\n PublishedStreamDestroyed = 'PublishedStreamDestroyed',\n ForcedByConsumer = 'ForcedByConsumer',\n SignalingChannelDisconnect = 'SignalingChannelDisconnect'\n}\n\nexport enum MediaStreamUnregisterReason {\n NativeEvent = 'NativeEvent',\n ReplacingStream = 'ReplacingStream',\n ClosedRemotely = 'ClosedRemotely',\n ServiceCleanUp = 'ServiceCleanUp'\n}\n\nexport enum VideoResolutionMultiplication {\n HD = 829440, //(1280*720)*0.9\n SD = 230400 //640*360*0.9\n}\n\nexport enum VideoResolutionFormat {\n HD = 'HD',\n SD = 'SD',\n NONE = 'none'\n}\n\nexport const DEFAULT_VIDEO_RESOLUTION = '640x480';\nexport const DEFAULT_VIDEO_CONSTRAINT_TYPE = ConstraintType.IDEAL;\nexport const DEFAULT_PEER_CONNECTIVITY_TIMEOUT_SECONDS = 10;\nexport const DEFAULT_VIDEO_WAIT_TIMEOUT_SECONDS = 30;\n\nexport const DEFAULT_VIDEO_CONSTRAINTS: VideoStreamResolution = {\n resolution: DEFAULT_VIDEO_RESOLUTION,\n constraintType: DEFAULT_VIDEO_CONSTRAINT_TYPE\n};\n\nexport const POSSIBLE_LOOPBACK_RESOLUTIONS: VideoStreamResolution[] = [\n {resolution: '1920x1080', constraintType: ConstraintType.MIN}, // FHD\n {resolution: '1280x720', constraintType: ConstraintType.MIN}, // HD\n DEFAULT_VIDEO_CONSTRAINTS // fallback\n];\n\nexport const HD_RESOLUTION = '1280x720';\n\nexport {CameraTypes};\n"]}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.CameraTypes = exports.HD_RESOLUTION = exports.POSSIBLE_LOOPBACK_RESOLUTIONS = exports.DEFAULT_VIDEO_CONSTRAINTS = exports.DEFAULT_VIDEO_WAIT_TIMEOUT_SECONDS = exports.DEFAULT_PEER_CONNECTIVITY_TIMEOUT_SECONDS = exports.DEFAULT_VIDEO_CONSTRAINT_TYPE = exports.DEFAULT_VIDEO_RESOLUTION = exports.VideoResolutionFormat = exports.VideoResolutionMultiplication = exports.MediaStreamUnregisterReason = exports.MediaSessionDisconnectReason = exports.KnownMediaStream = exports.KnownMediaStreamKind = exports.MediaRequestErrorCode = exports.SessionClientType = exports.SessionClientRole = exports.MediaServiceType = exports.MultiPartyCameraTypes = exports.ConstraintType = exports.LocalVideoSourceType = void 0;
6
+ exports.CameraTypes = exports.HD_RESOLUTION = exports.POSSIBLE_LOOPBACK_RESOLUTIONS = exports.DEFAULT_VIDEO_CONSTRAINTS = exports.DEFAULT_VIDEO_WAIT_TIMEOUT_SECONDS = exports.DEFAULT_PEER_CONNECTIVITY_TIMEOUT_SECONDS = exports.DEFAULT_VIDEO_CONSTRAINT_TYPE = exports.DEFAULT_VIDEO_RESOLUTION = exports.VideoResolutionFormat = exports.VideoResolutionMultiplication = exports.MediaStreamUnregisterReason = exports.MediaSessionDisconnectReason = exports.KnownMediaStream = exports.KnownMediaStreamKind = exports.MediaRequestErrorCode = exports.SessionClientType = exports.SessionClientRole = exports.MediaServiceType = exports.MultiPartyCameraTypes = exports.VideoTypesEnum = exports.ConstraintType = exports.LocalVideoSourceType = void 0;
7
7
 
8
8
  var media_constants_1 = require("@techsee/techsee-common/lib/constants/media.constants");
9
9
 
@@ -28,6 +28,14 @@ var ConstraintType;
28
28
  ConstraintType["IDEAL"] = "ideal";
29
29
  })(ConstraintType = exports.ConstraintType || (exports.ConstraintType = {}));
30
30
 
31
+ var VideoTypesEnum;
32
+
33
+ (function (VideoTypesEnum) {
34
+ VideoTypesEnum["CAMERA"] = "camera";
35
+ VideoTypesEnum["SCREEN"] = "screen";
36
+ VideoTypesEnum["NOTHING"] = "";
37
+ })(VideoTypesEnum = exports.VideoTypesEnum || (exports.VideoTypesEnum = {}));
38
+
31
39
  var MultiPartyCameraTypes;
32
40
 
33
41
  (function (MultiPartyCameraTypes) {
@@ -1 +1 @@
1
- {"version":3,"sources":["MediaConstants.js","../src/MediaConstants.ts"],"names":["Object","defineProperty","exports","value","CameraTypes","HD_RESOLUTION","POSSIBLE_LOOPBACK_RESOLUTIONS","DEFAULT_VIDEO_CONSTRAINTS","DEFAULT_VIDEO_WAIT_TIMEOUT_SECONDS","DEFAULT_PEER_CONNECTIVITY_TIMEOUT_SECONDS","DEFAULT_VIDEO_CONSTRAINT_TYPE","DEFAULT_VIDEO_RESOLUTION","VideoResolutionFormat","VideoResolutionMultiplication","MediaStreamUnregisterReason","MediaSessionDisconnectReason","KnownMediaStream","KnownMediaStreamKind","MediaRequestErrorCode","SessionClientType","SessionClientRole","MediaServiceType","MultiPartyCameraTypes","ConstraintType","LocalVideoSourceType","media_constants_1","require","enumerable","get","IDEAL","resolution","constraintType","MIN"],"mappings":"AAAA;;AACAA,MAAM,CAACC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAAEC,EAAAA,KAAK,EAAE;AAAT,CAA7C;AACAD,OAAO,CAACE,WAAR,GAAsBF,OAAO,CAACG,aAAR,GAAwBH,OAAO,CAACI,6BAAR,GAAwCJ,OAAO,CAACK,yBAAR,GAAoCL,OAAO,CAACM,kCAAR,GAA6CN,OAAO,CAACO,yCAAR,GAAoDP,OAAO,CAACQ,6BAAR,GAAwCR,OAAO,CAACS,wBAAR,GAAmCT,OAAO,CAACU,qBAAR,GAAgCV,OAAO,CAACW,6BAAR,GAAwCX,OAAO,CAACY,2BAAR,GAAsCZ,OAAO,CAACa,4BAAR,GAAuCb,OAAO,CAACc,gBAAR,GAA2Bd,OAAO,CAACe,oBAAR,GAA+Bf,OAAO,CAACgB,qBAAR,GAAgChB,OAAO,CAACiB,iBAAR,GAA4BjB,OAAO,CAACkB,iBAAR,GAA4BlB,OAAO,CAACmB,gBAAR,GAA2BnB,OAAO,CAACoB,qBAAR,GAAgCpB,OAAO,CAACqB,cAAR,GAAyBrB,OAAO,CAACsB,oBAAR,GAA+B,KAAK,CAArsB;;ACDA,IAAAC,iBAAA,GAAAC,OAAA,CAAA,uDAAA,CAAA;;AAqGQ1B,MAAA,CAAAC,cAAA,CAAAC,OAAA,EAAA,aAAA,EAAA;AAAAyB,EAAAA,UAAA,EAAA,IAAA;AAAAC,EAAAA,GAAA,EAAA,eAAA;AAAA,WArGAH,iBAAA,CAAArB,WAqGA;AArGW;AAqGX,CAAA;AAnGR,IAAYoB,oBAAZ;;AAAA,CAAA,UAAYA,oBAAZ,EAAgC;AAC5BA,EAAAA,oBAAA,CAAA,QAAA,CAAA,GAAA,QAAA;AACAA,EAAAA,oBAAA,CAAA,cAAA,CAAA,GAAA,cAAA;AACAA,EAAAA,oBAAA,CAAA,eAAA,CAAA,GAAA,eAAA;AACH,CAJD,EAAYA,oBAAoB,GAApBtB,OAAA,CAAAsB,oBAAA,KAAAtB,OAAA,CAAAsB,oBAAA,GAAoB,EAApB,CAAZ;;AAMA,IAAYD,cAAZ;;AAAA,CAAA,UAAYA,cAAZ,EAA0B;AACtBA,EAAAA,cAAA,CAAA,KAAA,CAAA,GAAA,KAAA;AACAA,EAAAA,cAAA,CAAA,OAAA,CAAA,GAAA,OAAA;AACH,CAHD,EAAYA,cAAc,GAAdrB,OAAA,CAAAqB,cAAA,KAAArB,OAAA,CAAAqB,cAAA,GAAc,EAAd,CAAZ;;AAKA,IAAYD,qBAAZ;;AAAA,CAAA,UAAYA,qBAAZ,EAAiC;AAC7BA,EAAAA,qBAAA,CAAA,OAAA,CAAA,GAAA,OAAA;AACAA,EAAAA,qBAAA,CAAA,MAAA,CAAA,GAAA,MAAA;AACH,CAHD,EAAYA,qBAAqB,GAArBpB,OAAA,CAAAoB,qBAAA,KAAApB,OAAA,CAAAoB,qBAAA,GAAqB,EAArB,CAAZ;;AAKA,IAAYD,gBAAZ;;AAAA,CAAA,UAAYA,gBAAZ,EAA4B;AACxBA,EAAAA,gBAAA,CAAA,SAAA,CAAA,GAAA,SAAA;AACAA,EAAAA,gBAAA,CAAA,YAAA,CAAA,GAAA,aAAA;AACAA,EAAAA,gBAAA,CAAA,aAAA,CAAA,GAAA,cAAA;AACH,CAJD,EAAYA,gBAAgB,GAAhBnB,OAAA,CAAAmB,gBAAA,KAAAnB,OAAA,CAAAmB,gBAAA,GAAgB,EAAhB,CAAZ;;AAMA,IAAYD,iBAAZ;;AAAA,CAAA,UAAYA,iBAAZ,EAA6B;AACzBA,EAAAA,iBAAA,CAAA,OAAA,CAAA,GAAA,OAAA;AACAA,EAAAA,iBAAA,CAAA,UAAA,CAAA,GAAA,UAAA;AACAA,EAAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,MAAA;AACH,CAJD,EAAYA,iBAAiB,GAAjBlB,OAAA,CAAAkB,iBAAA,KAAAlB,OAAA,CAAAkB,iBAAA,GAAiB,EAAjB,CAAZ;;AAMA,IAAYD,iBAAZ;;AAAA,CAAA,UAAYA,iBAAZ,EAA6B;AACzBA,EAAAA,iBAAA,CAAA,WAAA,CAAA,GAAA,WAAA;AACAA,EAAAA,iBAAA,CAAA,OAAA,CAAA,GAAA,YAAA;AACH,CAHD,EAAYA,iBAAiB,GAAjBjB,OAAA,CAAAiB,iBAAA,KAAAjB,OAAA,CAAAiB,iBAAA,GAAiB,EAAjB,CAAZ;;AAKA,IAAYD,qBAAZ;;AAAA,CAAA,UAAYA,qBAAZ,EAAiC;AAC7BA,EAAAA,qBAAA,CAAA,iBAAA,CAAA,GAAA,iBAAA;AACAA,EAAAA,qBAAA,CAAA,kBAAA,CAAA,GAAA,kBAAA;AACAA,EAAAA,qBAAA,CAAA,cAAA,CAAA,GAAA,cAAA;AACH,CAJD,EAAYA,qBAAqB,GAArBhB,OAAA,CAAAgB,qBAAA,KAAAhB,OAAA,CAAAgB,qBAAA,GAAqB,EAArB,CAAZ;;AAMA,IAAYD,oBAAZ;;AAAA,CAAA,UAAYA,oBAAZ,EAAgC;AAC5BA,EAAAA,oBAAA,CAAA,OAAA,CAAA,GAAA,OAAA;AACAA,EAAAA,oBAAA,CAAA,OAAA,CAAA,GAAA,OAAA;AACH,CAHD,EAAYA,oBAAoB,GAApBf,OAAA,CAAAe,oBAAA,KAAAf,OAAA,CAAAe,oBAAA,GAAoB,EAApB,CAAZ;;AAKA,IAAYD,gBAAZ;;AAAA,CAAA,UAAYA,gBAAZ,EAA4B;AACxBA,EAAAA,gBAAA,CAAA,oBAAA,CAAA,GAAA,wBAAA;AACAA,EAAAA,gBAAA,CAAA,uBAAA,CAAA,GAAA,uBAAA;AACAA,EAAAA,gBAAA,CAAA,mBAAA,CAAA,GAAA,4BAAA;AACAA,EAAAA,gBAAA,CAAA,mBAAA,CAAA,GAAA,4BAAA;AACAA,EAAAA,gBAAA,CAAA,0BAAA,CAAA,GAAA,0BAAA;AACH,CAND,EAAYA,gBAAgB,GAAhBd,OAAA,CAAAc,gBAAA,KAAAd,OAAA,CAAAc,gBAAA,GAAgB,EAAhB,CAAZ;;AAQA,IAAYD,4BAAZ;;AAAA,CAAA,UAAYA,4BAAZ,EAAwC;AACpC;AACAA,EAAAA,4BAAA,CAAA,kBAAA,CAAA,GAAA,kBAAA;AACAA,EAAAA,4BAAA,CAAA,2BAAA,CAAA,GAAA,2BAAA;AACAA,EAAAA,4BAAA,CAAA,kCAAA,CAAA,GAAA,kCAAA;AACAA,EAAAA,4BAAA,CAAA,0BAAA,CAAA,GAAA,0BAAA;AACAA,EAAAA,4BAAA,CAAA,0BAAA,CAAA,GAAA,0BAAA;AACAA,EAAAA,4BAAA,CAAA,kBAAA,CAAA,GAAA,kBAAA;AACAA,EAAAA,4BAAA,CAAA,4BAAA,CAAA,GAAA,4BAAA;AACH,CATD,EAAYA,4BAA4B,GAA5Bb,OAAA,CAAAa,4BAAA,KAAAb,OAAA,CAAAa,4BAAA,GAA4B,EAA5B,CAAZ;;AAWA,IAAYD,2BAAZ;;AAAA,CAAA,UAAYA,2BAAZ,EAAuC;AACnCA,EAAAA,2BAAA,CAAA,aAAA,CAAA,GAAA,aAAA;AACAA,EAAAA,2BAAA,CAAA,iBAAA,CAAA,GAAA,iBAAA;AACAA,EAAAA,2BAAA,CAAA,gBAAA,CAAA,GAAA,gBAAA;AACAA,EAAAA,2BAAA,CAAA,gBAAA,CAAA,GAAA,gBAAA;AACH,CALD,EAAYA,2BAA2B,GAA3BZ,OAAA,CAAAY,2BAAA,KAAAZ,OAAA,CAAAY,2BAAA,GAA2B,EAA3B,CAAZ;;AAOA,IAAYD,6BAAZ;;AAAA,CAAA,UAAYA,6BAAZ,EAAyC;AACrCA,EAAAA,6BAAA,CAAAA,6BAAA,CAAA,IAAA,CAAA,GAAA,MAAA,CAAA,GAAA,IAAA;AACAA,EAAAA,6BAAA,CAAAA,6BAAA,CAAA,IAAA,CAAA,GAAA,MAAA,CAAA,GAAA,IAAA,CAFqC,CAEzB;AACf,CAHD,EAAYA,6BAA6B,GAA7BX,OAAA,CAAAW,6BAAA,KAAAX,OAAA,CAAAW,6BAAA,GAA6B,EAA7B,CAAZ;;AAKA,IAAYD,qBAAZ;;AAAA,CAAA,UAAYA,qBAAZ,EAAiC;AAC7BA,EAAAA,qBAAA,CAAA,IAAA,CAAA,GAAA,IAAA;AACAA,EAAAA,qBAAA,CAAA,IAAA,CAAA,GAAA,IAAA;AACAA,EAAAA,qBAAA,CAAA,MAAA,CAAA,GAAA,MAAA;AACH,CAJD,EAAYA,qBAAqB,GAArBV,OAAA,CAAAU,qBAAA,KAAAV,OAAA,CAAAU,qBAAA,GAAqB,EAArB,CAAZ;;AAMaV,OAAA,CAAAS,wBAAA,GAA2B,SAA3B;AACAT,OAAA,CAAAQ,6BAAA,GAAgCa,cAAc,CAACM,KAA/C;AACA3B,OAAA,CAAAO,yCAAA,GAA4C,EAA5C;AACAP,OAAA,CAAAM,kCAAA,GAAqC,EAArC;AAEAN,OAAA,CAAAK,yBAAA,GAAmD;AAC5DuB,EAAAA,UAAU,EAAE5B,OAAA,CAAAS,wBADgD;AAE5DoB,EAAAA,cAAc,EAAE7B,OAAA,CAAAQ;AAF4C,CAAnD;AAKAR,OAAA,CAAAI,6BAAA,GAAyD,CAClE;AAACwB,EAAAA,UAAU,EAAE,WAAb;AAA0BC,EAAAA,cAAc,EAAER,cAAc,CAACS;AAAzD,CADkE,EAElE;AAACF,EAAAA,UAAU,EAAE,UAAb;AAAyBC,EAAAA,cAAc,EAAER,cAAc,CAACS;AAAxD,CAFkE,EAGlE9B,OAAA,CAAAK,yBAHkE,CAGxC;AAHwC,CAAzD;AAMAL,OAAA,CAAAG,aAAA,GAAgB,UAAhB","file":"MediaConstants.js","sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CameraTypes = exports.HD_RESOLUTION = exports.POSSIBLE_LOOPBACK_RESOLUTIONS = exports.DEFAULT_VIDEO_CONSTRAINTS = exports.DEFAULT_VIDEO_WAIT_TIMEOUT_SECONDS = exports.DEFAULT_PEER_CONNECTIVITY_TIMEOUT_SECONDS = exports.DEFAULT_VIDEO_CONSTRAINT_TYPE = exports.DEFAULT_VIDEO_RESOLUTION = exports.VideoResolutionFormat = exports.VideoResolutionMultiplication = exports.MediaStreamUnregisterReason = exports.MediaSessionDisconnectReason = exports.KnownMediaStream = exports.KnownMediaStreamKind = exports.MediaRequestErrorCode = exports.SessionClientType = exports.SessionClientRole = exports.MediaServiceType = exports.MultiPartyCameraTypes = exports.ConstraintType = exports.LocalVideoSourceType = void 0;\nvar media_constants_1 = require(\"@techsee/techsee-common/lib/constants/media.constants\");\nObject.defineProperty(exports, \"CameraTypes\", { enumerable: true, get: function () { return media_constants_1.CameraTypes; } });\nvar LocalVideoSourceType;\n(function (LocalVideoSourceType) {\n LocalVideoSourceType[\"CAMERA\"] = \"CAMERA\";\n LocalVideoSourceType[\"CAMERA_FRONT\"] = \"CAMERA_FRONT\";\n LocalVideoSourceType[\"DESKTOP_SHARE\"] = \"DESKTOP_SHARE\";\n})(LocalVideoSourceType = exports.LocalVideoSourceType || (exports.LocalVideoSourceType = {}));\nvar ConstraintType;\n(function (ConstraintType) {\n ConstraintType[\"MIN\"] = \"min\";\n ConstraintType[\"IDEAL\"] = \"ideal\";\n})(ConstraintType = exports.ConstraintType || (exports.ConstraintType = {}));\nvar MultiPartyCameraTypes;\n(function (MultiPartyCameraTypes) {\n MultiPartyCameraTypes[\"FRONT\"] = \"front\";\n MultiPartyCameraTypes[\"BACK\"] = \"back\";\n})(MultiPartyCameraTypes = exports.MultiPartyCameraTypes || (exports.MultiPartyCameraTypes = {}));\nvar MediaServiceType;\n(function (MediaServiceType) {\n MediaServiceType[\"OPENTOK\"] = \"OPENTOK\";\n MediaServiceType[\"TURNSERVER\"] = \"TURN_SERVER\";\n MediaServiceType[\"MEDIASERVER\"] = \"MEDIA_SERVER\";\n})(MediaServiceType = exports.MediaServiceType || (exports.MediaServiceType = {}));\nvar SessionClientRole;\n(function (SessionClientRole) {\n SessionClientRole[\"AGENT\"] = \"AGENT\";\n SessionClientRole[\"OBSERVER\"] = \"OBSERVER\";\n SessionClientRole[\"USER\"] = \"USER\";\n})(SessionClientRole = exports.SessionClientRole || (exports.SessionClientRole = {}));\nvar SessionClientType;\n(function (SessionClientType) {\n SessionClientType[\"INITIATOR\"] = \"publisher\";\n SessionClientType[\"GUEST\"] = \"subscriber\";\n})(SessionClientType = exports.SessionClientType || (exports.SessionClientType = {}));\nvar MediaRequestErrorCode;\n(function (MediaRequestErrorCode) {\n MediaRequestErrorCode[\"Overconstrained\"] = \"Overconstrained\";\n MediaRequestErrorCode[\"PermissionDenied\"] = \"PermissionDenied\";\n MediaRequestErrorCode[\"GeneralError\"] = \"GeneralError\";\n})(MediaRequestErrorCode = exports.MediaRequestErrorCode || (exports.MediaRequestErrorCode = {}));\nvar KnownMediaStreamKind;\n(function (KnownMediaStreamKind) {\n KnownMediaStreamKind[\"Audio\"] = \"audio\";\n KnownMediaStreamKind[\"Video\"] = \"video\";\n})(KnownMediaStreamKind = exports.KnownMediaStreamKind || (exports.KnownMediaStreamKind = {}));\nvar KnownMediaStream;\n(function (KnownMediaStream) {\n KnownMediaStream[\"AGENT_AUDIO_STREAM\"] = \"DASHBOARD_AUDIO_STREAM\";\n KnownMediaStream[\"OBSERVER_AUDIO_STREAM\"] = \"OBSERVER_AUDIO_STREAM\";\n KnownMediaStream[\"USER_AUDIO_STREAM\"] = \"MOBILE_CLIENT_AUDIO_STREAM\";\n KnownMediaStream[\"USER_VIDEO_STREAM\"] = \"MOBILE_CLIENT_VIDEO_STREAM\";\n KnownMediaStream[\"USER_SCREEN_SHARE_STREAM\"] = \"USER_SCREEN_SHARE_STREAM\";\n})(KnownMediaStream = exports.KnownMediaStream || (exports.KnownMediaStream = {}));\nvar MediaSessionDisconnectReason;\n(function (MediaSessionDisconnectReason) {\n //Raised on initiator peer when guest peer was disconnected from signaling\n MediaSessionDisconnectReason[\"PeerDisconnected\"] = \"PeerDisconnected\";\n MediaSessionDisconnectReason[\"PeerConnectionInterrupted\"] = \"PeerConnectionInterrupted\";\n MediaSessionDisconnectReason[\"PeerConnectionStateChangeTimeout\"] = \"PeerConnectionStateChangeTimeout\";\n MediaSessionDisconnectReason[\"InitiatorPeerReconnected\"] = \"InitiatorPeerReconnected\";\n MediaSessionDisconnectReason[\"PublishedStreamDestroyed\"] = \"PublishedStreamDestroyed\";\n MediaSessionDisconnectReason[\"ForcedByConsumer\"] = \"ForcedByConsumer\";\n MediaSessionDisconnectReason[\"SignalingChannelDisconnect\"] = \"SignalingChannelDisconnect\";\n})(MediaSessionDisconnectReason = exports.MediaSessionDisconnectReason || (exports.MediaSessionDisconnectReason = {}));\nvar MediaStreamUnregisterReason;\n(function (MediaStreamUnregisterReason) {\n MediaStreamUnregisterReason[\"NativeEvent\"] = \"NativeEvent\";\n MediaStreamUnregisterReason[\"ReplacingStream\"] = \"ReplacingStream\";\n MediaStreamUnregisterReason[\"ClosedRemotely\"] = \"ClosedRemotely\";\n MediaStreamUnregisterReason[\"ServiceCleanUp\"] = \"ServiceCleanUp\";\n})(MediaStreamUnregisterReason = exports.MediaStreamUnregisterReason || (exports.MediaStreamUnregisterReason = {}));\nvar VideoResolutionMultiplication;\n(function (VideoResolutionMultiplication) {\n VideoResolutionMultiplication[VideoResolutionMultiplication[\"HD\"] = 829440] = \"HD\";\n VideoResolutionMultiplication[VideoResolutionMultiplication[\"SD\"] = 230400] = \"SD\"; //640*360*0.9\n})(VideoResolutionMultiplication = exports.VideoResolutionMultiplication || (exports.VideoResolutionMultiplication = {}));\nvar VideoResolutionFormat;\n(function (VideoResolutionFormat) {\n VideoResolutionFormat[\"HD\"] = \"HD\";\n VideoResolutionFormat[\"SD\"] = \"SD\";\n VideoResolutionFormat[\"NONE\"] = \"none\";\n})(VideoResolutionFormat = exports.VideoResolutionFormat || (exports.VideoResolutionFormat = {}));\nexports.DEFAULT_VIDEO_RESOLUTION = '640x480';\nexports.DEFAULT_VIDEO_CONSTRAINT_TYPE = ConstraintType.IDEAL;\nexports.DEFAULT_PEER_CONNECTIVITY_TIMEOUT_SECONDS = 10;\nexports.DEFAULT_VIDEO_WAIT_TIMEOUT_SECONDS = 30;\nexports.DEFAULT_VIDEO_CONSTRAINTS = {\n resolution: exports.DEFAULT_VIDEO_RESOLUTION,\n constraintType: exports.DEFAULT_VIDEO_CONSTRAINT_TYPE\n};\nexports.POSSIBLE_LOOPBACK_RESOLUTIONS = [\n { resolution: '1920x1080', constraintType: ConstraintType.MIN },\n { resolution: '1280x720', constraintType: ConstraintType.MIN },\n exports.DEFAULT_VIDEO_CONSTRAINTS // fallback\n];\nexports.HD_RESOLUTION = '1280x720';\n\n//# sourceMappingURL=MediaConstants.js.map\n","import {VideoStreamResolution} from './MediaContracts';\nimport {CameraTypes} from '@techsee/techsee-common/lib/constants/media.constants';\n\nexport enum LocalVideoSourceType {\n CAMERA = 'CAMERA',\n CAMERA_FRONT = 'CAMERA_FRONT',\n DESKTOP_SHARE = 'DESKTOP_SHARE'\n}\n\nexport enum ConstraintType {\n MIN = 'min',\n IDEAL = 'ideal'\n}\n\nexport enum MultiPartyCameraTypes {\n FRONT = CameraTypes.FRONT,\n BACK = CameraTypes.BACK\n}\n\nexport enum MediaServiceType {\n OPENTOK = 'OPENTOK',\n TURNSERVER = 'TURN_SERVER',\n MEDIASERVER = 'MEDIA_SERVER'\n}\n\nexport enum SessionClientRole {\n AGENT = 'AGENT',\n OBSERVER = 'OBSERVER',\n USER = 'USER'\n}\n\nexport enum SessionClientType {\n INITIATOR = 'publisher',\n GUEST = 'subscriber'\n}\n\nexport enum MediaRequestErrorCode {\n Overconstrained = 'Overconstrained',\n PermissionDenied = 'PermissionDenied',\n GeneralError = 'GeneralError'\n}\n\nexport enum KnownMediaStreamKind {\n Audio = 'audio',\n Video = 'video'\n}\n\nexport enum KnownMediaStream {\n AGENT_AUDIO_STREAM = 'DASHBOARD_AUDIO_STREAM',\n OBSERVER_AUDIO_STREAM = 'OBSERVER_AUDIO_STREAM',\n USER_AUDIO_STREAM = 'MOBILE_CLIENT_AUDIO_STREAM',\n USER_VIDEO_STREAM = 'MOBILE_CLIENT_VIDEO_STREAM',\n USER_SCREEN_SHARE_STREAM = 'USER_SCREEN_SHARE_STREAM'\n}\n\nexport enum MediaSessionDisconnectReason {\n //Raised on initiator peer when guest peer was disconnected from signaling\n PeerDisconnected = 'PeerDisconnected',\n PeerConnectionInterrupted = 'PeerConnectionInterrupted',\n PeerConnectionStateChangeTimeout = 'PeerConnectionStateChangeTimeout',\n InitiatorPeerReconnected = 'InitiatorPeerReconnected',\n PublishedStreamDestroyed = 'PublishedStreamDestroyed',\n ForcedByConsumer = 'ForcedByConsumer',\n SignalingChannelDisconnect = 'SignalingChannelDisconnect'\n}\n\nexport enum MediaStreamUnregisterReason {\n NativeEvent = 'NativeEvent',\n ReplacingStream = 'ReplacingStream',\n ClosedRemotely = 'ClosedRemotely',\n ServiceCleanUp = 'ServiceCleanUp'\n}\n\nexport enum VideoResolutionMultiplication {\n HD = 829440, //(1280*720)*0.9\n SD = 230400 //640*360*0.9\n}\n\nexport enum VideoResolutionFormat {\n HD = 'HD',\n SD = 'SD',\n NONE = 'none'\n}\n\nexport const DEFAULT_VIDEO_RESOLUTION = '640x480';\nexport const DEFAULT_VIDEO_CONSTRAINT_TYPE = ConstraintType.IDEAL;\nexport const DEFAULT_PEER_CONNECTIVITY_TIMEOUT_SECONDS = 10;\nexport const DEFAULT_VIDEO_WAIT_TIMEOUT_SECONDS = 30;\n\nexport const DEFAULT_VIDEO_CONSTRAINTS: VideoStreamResolution = {\n resolution: DEFAULT_VIDEO_RESOLUTION,\n constraintType: DEFAULT_VIDEO_CONSTRAINT_TYPE\n};\n\nexport const POSSIBLE_LOOPBACK_RESOLUTIONS: VideoStreamResolution[] = [\n {resolution: '1920x1080', constraintType: ConstraintType.MIN}, // FHD\n {resolution: '1280x720', constraintType: ConstraintType.MIN}, // HD\n DEFAULT_VIDEO_CONSTRAINTS // fallback\n];\n\nexport const HD_RESOLUTION = '1280x720';\n\nexport {CameraTypes};\n"]}
1
+ {"version":3,"sources":["MediaConstants.js","../src/MediaConstants.ts"],"names":["Object","defineProperty","exports","value","CameraTypes","HD_RESOLUTION","POSSIBLE_LOOPBACK_RESOLUTIONS","DEFAULT_VIDEO_CONSTRAINTS","DEFAULT_VIDEO_WAIT_TIMEOUT_SECONDS","DEFAULT_PEER_CONNECTIVITY_TIMEOUT_SECONDS","DEFAULT_VIDEO_CONSTRAINT_TYPE","DEFAULT_VIDEO_RESOLUTION","VideoResolutionFormat","VideoResolutionMultiplication","MediaStreamUnregisterReason","MediaSessionDisconnectReason","KnownMediaStream","KnownMediaStreamKind","MediaRequestErrorCode","SessionClientType","SessionClientRole","MediaServiceType","MultiPartyCameraTypes","VideoTypesEnum","ConstraintType","LocalVideoSourceType","media_constants_1","require","enumerable","get","IDEAL","resolution","constraintType","MIN"],"mappings":"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","file":"MediaConstants.js","sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CameraTypes = exports.HD_RESOLUTION = exports.POSSIBLE_LOOPBACK_RESOLUTIONS = exports.DEFAULT_VIDEO_CONSTRAINTS = exports.DEFAULT_VIDEO_WAIT_TIMEOUT_SECONDS = exports.DEFAULT_PEER_CONNECTIVITY_TIMEOUT_SECONDS = exports.DEFAULT_VIDEO_CONSTRAINT_TYPE = exports.DEFAULT_VIDEO_RESOLUTION = exports.VideoResolutionFormat = exports.VideoResolutionMultiplication = exports.MediaStreamUnregisterReason = exports.MediaSessionDisconnectReason = exports.KnownMediaStream = exports.KnownMediaStreamKind = exports.MediaRequestErrorCode = exports.SessionClientType = exports.SessionClientRole = exports.MediaServiceType = exports.MultiPartyCameraTypes = exports.VideoTypesEnum = exports.ConstraintType = exports.LocalVideoSourceType = void 0;\nvar media_constants_1 = require(\"@techsee/techsee-common/lib/constants/media.constants\");\nObject.defineProperty(exports, \"CameraTypes\", { enumerable: true, get: function () { return media_constants_1.CameraTypes; } });\nvar LocalVideoSourceType;\n(function (LocalVideoSourceType) {\n LocalVideoSourceType[\"CAMERA\"] = \"CAMERA\";\n LocalVideoSourceType[\"CAMERA_FRONT\"] = \"CAMERA_FRONT\";\n LocalVideoSourceType[\"DESKTOP_SHARE\"] = \"DESKTOP_SHARE\";\n})(LocalVideoSourceType = exports.LocalVideoSourceType || (exports.LocalVideoSourceType = {}));\nvar ConstraintType;\n(function (ConstraintType) {\n ConstraintType[\"MIN\"] = \"min\";\n ConstraintType[\"IDEAL\"] = \"ideal\";\n})(ConstraintType = exports.ConstraintType || (exports.ConstraintType = {}));\nvar VideoTypesEnum;\n(function (VideoTypesEnum) {\n VideoTypesEnum[\"CAMERA\"] = \"camera\";\n VideoTypesEnum[\"SCREEN\"] = \"screen\";\n VideoTypesEnum[\"NOTHING\"] = \"\";\n})(VideoTypesEnum = exports.VideoTypesEnum || (exports.VideoTypesEnum = {}));\nvar MultiPartyCameraTypes;\n(function (MultiPartyCameraTypes) {\n MultiPartyCameraTypes[\"FRONT\"] = \"front\";\n MultiPartyCameraTypes[\"BACK\"] = \"back\";\n})(MultiPartyCameraTypes = exports.MultiPartyCameraTypes || (exports.MultiPartyCameraTypes = {}));\nvar MediaServiceType;\n(function (MediaServiceType) {\n MediaServiceType[\"OPENTOK\"] = \"OPENTOK\";\n MediaServiceType[\"TURNSERVER\"] = \"TURN_SERVER\";\n MediaServiceType[\"MEDIASERVER\"] = \"MEDIA_SERVER\";\n})(MediaServiceType = exports.MediaServiceType || (exports.MediaServiceType = {}));\nvar SessionClientRole;\n(function (SessionClientRole) {\n SessionClientRole[\"AGENT\"] = \"AGENT\";\n SessionClientRole[\"OBSERVER\"] = \"OBSERVER\";\n SessionClientRole[\"USER\"] = \"USER\";\n})(SessionClientRole = exports.SessionClientRole || (exports.SessionClientRole = {}));\nvar SessionClientType;\n(function (SessionClientType) {\n SessionClientType[\"INITIATOR\"] = \"publisher\";\n SessionClientType[\"GUEST\"] = \"subscriber\";\n})(SessionClientType = exports.SessionClientType || (exports.SessionClientType = {}));\nvar MediaRequestErrorCode;\n(function (MediaRequestErrorCode) {\n MediaRequestErrorCode[\"Overconstrained\"] = \"Overconstrained\";\n MediaRequestErrorCode[\"PermissionDenied\"] = \"PermissionDenied\";\n MediaRequestErrorCode[\"GeneralError\"] = \"GeneralError\";\n})(MediaRequestErrorCode = exports.MediaRequestErrorCode || (exports.MediaRequestErrorCode = {}));\nvar KnownMediaStreamKind;\n(function (KnownMediaStreamKind) {\n KnownMediaStreamKind[\"Audio\"] = \"audio\";\n KnownMediaStreamKind[\"Video\"] = \"video\";\n})(KnownMediaStreamKind = exports.KnownMediaStreamKind || (exports.KnownMediaStreamKind = {}));\nvar KnownMediaStream;\n(function (KnownMediaStream) {\n KnownMediaStream[\"AGENT_AUDIO_STREAM\"] = \"DASHBOARD_AUDIO_STREAM\";\n KnownMediaStream[\"OBSERVER_AUDIO_STREAM\"] = \"OBSERVER_AUDIO_STREAM\";\n KnownMediaStream[\"USER_AUDIO_STREAM\"] = \"MOBILE_CLIENT_AUDIO_STREAM\";\n KnownMediaStream[\"USER_VIDEO_STREAM\"] = \"MOBILE_CLIENT_VIDEO_STREAM\";\n KnownMediaStream[\"USER_SCREEN_SHARE_STREAM\"] = \"USER_SCREEN_SHARE_STREAM\";\n})(KnownMediaStream = exports.KnownMediaStream || (exports.KnownMediaStream = {}));\nvar MediaSessionDisconnectReason;\n(function (MediaSessionDisconnectReason) {\n //Raised on initiator peer when guest peer was disconnected from signaling\n MediaSessionDisconnectReason[\"PeerDisconnected\"] = \"PeerDisconnected\";\n MediaSessionDisconnectReason[\"PeerConnectionInterrupted\"] = \"PeerConnectionInterrupted\";\n MediaSessionDisconnectReason[\"PeerConnectionStateChangeTimeout\"] = \"PeerConnectionStateChangeTimeout\";\n MediaSessionDisconnectReason[\"InitiatorPeerReconnected\"] = \"InitiatorPeerReconnected\";\n MediaSessionDisconnectReason[\"PublishedStreamDestroyed\"] = \"PublishedStreamDestroyed\";\n MediaSessionDisconnectReason[\"ForcedByConsumer\"] = \"ForcedByConsumer\";\n MediaSessionDisconnectReason[\"SignalingChannelDisconnect\"] = \"SignalingChannelDisconnect\";\n})(MediaSessionDisconnectReason = exports.MediaSessionDisconnectReason || (exports.MediaSessionDisconnectReason = {}));\nvar MediaStreamUnregisterReason;\n(function (MediaStreamUnregisterReason) {\n MediaStreamUnregisterReason[\"NativeEvent\"] = \"NativeEvent\";\n MediaStreamUnregisterReason[\"ReplacingStream\"] = \"ReplacingStream\";\n MediaStreamUnregisterReason[\"ClosedRemotely\"] = \"ClosedRemotely\";\n MediaStreamUnregisterReason[\"ServiceCleanUp\"] = \"ServiceCleanUp\";\n})(MediaStreamUnregisterReason = exports.MediaStreamUnregisterReason || (exports.MediaStreamUnregisterReason = {}));\nvar VideoResolutionMultiplication;\n(function (VideoResolutionMultiplication) {\n VideoResolutionMultiplication[VideoResolutionMultiplication[\"HD\"] = 829440] = \"HD\";\n VideoResolutionMultiplication[VideoResolutionMultiplication[\"SD\"] = 230400] = \"SD\"; //640*360*0.9\n})(VideoResolutionMultiplication = exports.VideoResolutionMultiplication || (exports.VideoResolutionMultiplication = {}));\nvar VideoResolutionFormat;\n(function (VideoResolutionFormat) {\n VideoResolutionFormat[\"HD\"] = \"HD\";\n VideoResolutionFormat[\"SD\"] = \"SD\";\n VideoResolutionFormat[\"NONE\"] = \"none\";\n})(VideoResolutionFormat = exports.VideoResolutionFormat || (exports.VideoResolutionFormat = {}));\nexports.DEFAULT_VIDEO_RESOLUTION = '640x480';\nexports.DEFAULT_VIDEO_CONSTRAINT_TYPE = ConstraintType.IDEAL;\nexports.DEFAULT_PEER_CONNECTIVITY_TIMEOUT_SECONDS = 10;\nexports.DEFAULT_VIDEO_WAIT_TIMEOUT_SECONDS = 30;\nexports.DEFAULT_VIDEO_CONSTRAINTS = {\n resolution: exports.DEFAULT_VIDEO_RESOLUTION,\n constraintType: exports.DEFAULT_VIDEO_CONSTRAINT_TYPE\n};\nexports.POSSIBLE_LOOPBACK_RESOLUTIONS = [\n { resolution: '1920x1080', constraintType: ConstraintType.MIN },\n { resolution: '1280x720', constraintType: ConstraintType.MIN },\n exports.DEFAULT_VIDEO_CONSTRAINTS // fallback\n];\nexports.HD_RESOLUTION = '1280x720';\n\n//# sourceMappingURL=MediaConstants.js.map\n","import {VideoStreamResolution} from './MediaContracts';\nimport {CameraTypes} from '@techsee/techsee-common/lib/constants/media.constants';\n\nexport enum LocalVideoSourceType {\n CAMERA = 'CAMERA',\n CAMERA_FRONT = 'CAMERA_FRONT',\n DESKTOP_SHARE = 'DESKTOP_SHARE'\n}\n\nexport enum ConstraintType {\n MIN = 'min',\n IDEAL = 'ideal'\n}\n\nexport enum VideoTypesEnum {\n CAMERA = 'camera',\n SCREEN = 'screen',\n NOTHING = ''\n}\n\nexport enum MultiPartyCameraTypes {\n FRONT = CameraTypes.FRONT,\n BACK = CameraTypes.BACK\n}\n\nexport enum MediaServiceType {\n OPENTOK = 'OPENTOK',\n TURNSERVER = 'TURN_SERVER',\n MEDIASERVER = 'MEDIA_SERVER'\n}\n\nexport enum SessionClientRole {\n AGENT = 'AGENT',\n OBSERVER = 'OBSERVER',\n USER = 'USER'\n}\n\nexport enum SessionClientType {\n INITIATOR = 'publisher',\n GUEST = 'subscriber'\n}\n\nexport enum MediaRequestErrorCode {\n Overconstrained = 'Overconstrained',\n PermissionDenied = 'PermissionDenied',\n GeneralError = 'GeneralError'\n}\n\nexport enum KnownMediaStreamKind {\n Audio = 'audio',\n Video = 'video'\n}\n\nexport enum KnownMediaStream {\n AGENT_AUDIO_STREAM = 'DASHBOARD_AUDIO_STREAM',\n OBSERVER_AUDIO_STREAM = 'OBSERVER_AUDIO_STREAM',\n USER_AUDIO_STREAM = 'MOBILE_CLIENT_AUDIO_STREAM',\n USER_VIDEO_STREAM = 'MOBILE_CLIENT_VIDEO_STREAM',\n USER_SCREEN_SHARE_STREAM = 'USER_SCREEN_SHARE_STREAM'\n}\n\nexport enum MediaSessionDisconnectReason {\n //Raised on initiator peer when guest peer was disconnected from signaling\n PeerDisconnected = 'PeerDisconnected',\n PeerConnectionInterrupted = 'PeerConnectionInterrupted',\n PeerConnectionStateChangeTimeout = 'PeerConnectionStateChangeTimeout',\n InitiatorPeerReconnected = 'InitiatorPeerReconnected',\n PublishedStreamDestroyed = 'PublishedStreamDestroyed',\n ForcedByConsumer = 'ForcedByConsumer',\n SignalingChannelDisconnect = 'SignalingChannelDisconnect'\n}\n\nexport enum MediaStreamUnregisterReason {\n NativeEvent = 'NativeEvent',\n ReplacingStream = 'ReplacingStream',\n ClosedRemotely = 'ClosedRemotely',\n ServiceCleanUp = 'ServiceCleanUp'\n}\n\nexport enum VideoResolutionMultiplication {\n HD = 829440, //(1280*720)*0.9\n SD = 230400 //640*360*0.9\n}\n\nexport enum VideoResolutionFormat {\n HD = 'HD',\n SD = 'SD',\n NONE = 'none'\n}\n\nexport const DEFAULT_VIDEO_RESOLUTION = '640x480';\nexport const DEFAULT_VIDEO_CONSTRAINT_TYPE = ConstraintType.IDEAL;\nexport const DEFAULT_PEER_CONNECTIVITY_TIMEOUT_SECONDS = 10;\nexport const DEFAULT_VIDEO_WAIT_TIMEOUT_SECONDS = 30;\n\nexport const DEFAULT_VIDEO_CONSTRAINTS: VideoStreamResolution = {\n resolution: DEFAULT_VIDEO_RESOLUTION,\n constraintType: DEFAULT_VIDEO_CONSTRAINT_TYPE\n};\n\nexport const POSSIBLE_LOOPBACK_RESOLUTIONS: VideoStreamResolution[] = [\n {resolution: '1920x1080', constraintType: ConstraintType.MIN}, // FHD\n {resolution: '1280x720', constraintType: ConstraintType.MIN}, // HD\n DEFAULT_VIDEO_CONSTRAINTS // fallback\n];\n\nexport const HD_RESOLUTION = '1280x720';\n\nexport {CameraTypes};\n"]}
@@ -1,7 +1,7 @@
1
1
  import { MultipartyServiceEventTypesMap } from './MultipartyServiceEventTypes';
2
2
  import { SessionSettings } from './types';
3
3
  import { TypedEventEmitter } from '@techsee/techsee-common/lib/helpers/TypedEventEmitter';
4
- import { SessionClientRole } from '../MediaConstants';
4
+ import { SessionClientRole, VideoTypesEnum } from '../MediaConstants';
5
5
  export declare const DEFAULT_AVATAR_URI = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQcAAAFKCAYAAAAQbZoVAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAABB+SURBVHgB7d3NbxzlAcfxJ9jrtXFiE4MdQhOE1NALnBJUQbjwciDJBfVC20NVVaIvEgf4r4C0asWFwqFApRIuJD006aExQoqjgu3EiZM4fo87v3FXMuufvbO7MzvPbL4fyUoxTYC1/d3neeaZZw689+4734at8EwAgB0eCQBgEAcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcA1mBAX3vkkUfCwMBAqA0NhaHaUPrXg4OD6ecaf18fzTY2NsKDBw/C1tZW8utmWFtbDxubG2FzczOsr62lfw/9jTj0mXq9HoaSENSSEOh/KwSdaP59IyM//PuKx/r6WlhdXQ1r6+thdWUloL8Qh4rTu/5w8pM7XB9OfoBH7CigCIqHPkZGHk3/WiOJ1dWVsLy8nH4wsqg+4lBBCoBGBYcOHUpHCL0Kwn7076BQNGKxvHw/jcTS0lJANRGHChkYHAgHRw+GgwcPRRGE/TRCMTY2nk49Fu/cDpsbmwHVQRwqQKOE8fHx5NfhUDWN6cfo6Gg6ili6v8T6REUQh4hVOQqOAqEPjSRuLtxgJBE54hAhTR8en3i8b6LQTNF76uiP0pEE0414EYeIaB1Bi4xVWFPIQ2MkcefOYlhcXAyIC3GIhN5NJ5LRQqf7EqpMi5aPPjoaFm4tsB4REeJQMo0QtK6g0cLDTFGcmpwKd+/eDbdv3wooH3EokdYWpiaPPJSjhb1oWqXNXHPzs6xFlIwbr0qiufaTR44SBkOviV4bhQLl4TuzBJpjayqBvWm69dhjh9NfWawsB3Hooe1v+MeSUcPBgGwU0lqtFhYWFrhfo8eYVvSI1hcmkwU3wtA+bcPWa6fXEL1DHHqgsfCoW6nRGb12eg0JRO8Qh4JxRSI/25c7CUSvEIcCEYb8EYjeIQ4F0eLjE49PEoYC6DXVa/swbDEvE69uQbQVmjWG4ui11ZUfFIc4FECX30aaD11E7nTlh/0ixSEOOdOuPr5he0ch1m5T5I845EiLZPpmRW9pJyULlPkjDjnSKjqLZL2n15zXPn+8mjk5fPgwVyZKpNeeUVu+iEMOdFDLw34eQwy03lMf7s+j9cpAHHKgy5aIw8ThCaYXOeFV7JKGskwn4qGvBedA5IM4dEEr5Fy2jI+meFy96B5x6ML4GDv0YqRpxeMTTwR0hzh0SO9MbL6JlxaJWZzsDnHo0MRhFiFjN86lza6wktYBPYlquA/elbSYOjU1lb7D1utD6X/XnTt30jMbV1dXwvzcXKiyxuiBZ2F0hjh0oMrTiWPHnw4nTpwIJ559tuWmoTtJJGZmZsI301fDdPJRRRo9zBGHjhCHNlV1rUFROH36dPprVmPJlZjn9PH882kovvrqy3Dl8uVQJRo96GvGMzDaRxzaVLUrFGNjY+HM2XNtRcH+OUkk3jhzLrz00svh/Ifvp9OPqjg4epDj7TvAgmSb9E5UFSdOPBt+9evfdB2GnRSJt3/3h/DS6ZdDVTwsDybOGyOHNmg6UZXdkCdPngqvvPb6vv+f68l6wtzcbJifn0//eiWZm2uhdXJyMlmoPJJE5fiev7cRh68ufBlipzAo6svLywHZEYc26PkJVfDcc8/vGYbV1dVw6eLX6Yf+9360YKn1Bn24xcsqBeLQoTHi0KaBF1/86XvJr2z1a0HvPlW4wUprDG/94pf272mk8Oc//TG9+rC52XqBTvHQ75m+Op1e5tRlz2bHkymL5vPz83Ff9tTXb2npXtja2grIholYRlU5E/Ktn/sw6N19eyGx/YU5/Z5PP/l4zxHCq8koRVGKmeIwzLmebSEOGVVhSqFh/pi5EUw/1HkM/ff6czSf1xWR2A3X2U7dDuKQUexXKfTO7a4g5BWGnX+e1iua6YrIfguYMeBE8PYQhww03479Uph2PDbTdKCIxcIvPv8sucqxe43hdOSXN9OrFtyMlRlxyGBoqBZid/LkC7s+98Vnn4Wi/P3zv+36nEYP9eG4R1i1wfi/lrEgDhnUI5+ral9C81qDRg1F3g+hey6uz1zb9XltvIoZTyHLjjhkUKvF/W5z3OyAvHTxYija9NXd8Tl2LL/dmEWo0g7XshGHFjRPjX1XpNsePWPe1fM2PT2963NTR6ZCzPS1ZCt1NrxKLdRq8Q9Dh808vxdnMWjq0rzLsgrPjhgcYGNwFsShhYGB+A8q3bXe0MM7EHUozE5VGLYPVmCBOQbEoQWOne8/QxUYDcaAOLTA6nb/Yc0hG16lFg4cOBBi1zyN0DSjV/sNmtcYWt3pGQNGg9kQhxaq8C6zaE5lmpws/qqB9lc0q8KhtFVYR4oBcWihCnGYn53d9bnjx4vfb+D+GTo8Bv2BOLRQhSGo229w8tQLoWjunzFzfSbEjjWHbHiV+oD2GzRvZdYlRZ3gVJT0dCizZfubq/EfYU8csuFV6hNuK/Mrr75eyMJkenv4S7vvwJy5Fv+oAdkRhz5x5crlXVcKNHp4882fhbzpfMq9DpVB/yAOfUJhuHDhH7s+r/suNILIiw6UcXdeKgydHEGHeBGHFh48eBCq4p8XL9rbqE+eOtX1FEOjkDfOnrOnTRV1qAzKxW6QFhSH2Bew9IM7OXUkfQbmXhQI/f2PPvpL23sRNPo4c+asnUrI6spqEp/Xtk+qrsAzNTc2NgJaO/Deu+98G7bCMwHW0aNPRXs5U1HQ5UR9tHPDk46mv7jHKGOnTp6vqd2aWv+4dOnrNBoxWltbC7Oz3wfsj5FDC3qXiTEOrd7N9/PjZM1AH1qnmJ+bTc+DbCxmKjJ6PoVGIp3cYal/H0099GCdTz75OB1NxIZnV2RDHFrI8vCXXtMP3hs5HAWvH/7tU6Pz302pSOgZGnmffp2HKq0jlYk4tBDbN1LWMDQ/BTuvh860++dqFNF4BF8sNK1Aa8ShhZi+kfSDuNczMLcXA/+TPrrOXVLU3ZPpcL/DXZP68y8kIwC3TqE/+9jTx9Oj6d1JUFqs1LF1sdyUtbHJgmQWLEi2UBuqhSePHA0xePu3v7drDHqORNZ3Zv3wnnj2RHLl4if7PoRmez1iLv2hzvLQ3QYFyF3uVFTOf/hBiMHcfLLGsrISsD9GDi1sbsSx5uDuZZBP//pxenUgK40qdDJ143Rq3do9PDwchv6/+LiWREAPxu10Q5PWFxaT33vmzA+nPlrX0IN3piO492KdaUUmxKEFrTnEcMVCaw3N9IPYThicIp6O/e/Ll8NUEp3muzZPnjxVehz0tWRBMht2SGZQ9ulGjasKO8W+K1H/bs2vWwxPxFpfXw/IhjhksL5e7jB0aurIrs/FfgekwnDl8r92ff7Y8XIferPCWkNmxCGDtbVy323GxndfLux2OtEL7srGcMlH169vMHLIijhkoGczlDlPdZcHm58XEaPFRX9JtSz6GnKVIjvikNHy8nKISaz3Ley0uhrXVYEqnIwdE+KQEXPV6ltevh+QHXHIaGVlmUtgbarX43ogUGyjv9gRh4wUhrK2UrsNSdpQFDt3dH1Zp0UpDMS9PWyCasO9e3fT3YS9NmeeS6EtytrdeD3So+DTQ2jNNuq5ku6vYErRPuLQBi1olXEy1Pz8fHpZcOcegcbR80UeP583jRrKuPlKuyKXlpYC2sO0og0Kw927d0MZ+uGMxvMflHPjFVcpOkMc2nT/fjnvQDMzM+nJSlWlG8TKWm/gVOzOMK1ok4aouqxZxtqDbmi6fm0mnDl7bt/brWOy3zkQvaDpBAfKdoY4dECnIZURh+1/9mI4/+H76U7Dyamp0v49spi5dq30d+2l+6w1dIo4dEBbl8saPTToh47h8v601sB26c6x5tCh5rMUEZ+FhZsBnSMOHWqMHhAn1hq6Rxy6cOvWArvuIsWUq3vEoQt6Zypr3wP2pjAwaugeceiStlTzjRgPfS3cORJoH3HokqYVCwsLAXFgETI/xCEHWpxkelE+fQ3YKp0f4pAT5rnl0mt/+/atgPwQh5xoeqFnQHD1ovcarz3yRRxyxLtXObQAyagtf8QhZ9p8w2p572g6pytGyB9xKIC+YZeW7gUUS0e/EeLiEIeC3L59u/QnZfUznefJZctiEYeCaJHsxo0bzIULoNf05s0bLP4WjDgUSN/EWkUnEPnhNe0d4lAwvpnzw2vZW8ShBxrf1KxBdE5rDISht4hDj+ibWs9s4KlL7dOVH8LQe8Shh7YXKee5/NYGXRbWjW0sPvYeZ0iWQN/wW1sP0kNie/2AnKpQDLTblIfRlIc4lER3EGqKoUfaDQ7yZdiJhcc48LZVIn3zf/fdf7ndewe9FrOz3xOGCPCWFQENnzWKmJiYeGhHEYqBdjxyHkM8iEMkdGCMRhFahxgfHw8Pi8bzR3XzFIuOcSEOkdFipZ7HqUiMjo6Gfqaj/XWCN1OIOBGHCDWG2ArF4cMTUT/yrhOKgv7bmELEjThErLFqX68Pp6OIqo8kiEK1EIcK0HqEPvSDpelGvV6vzMJlY01BUyWmD9VCHCqkMd0QjSJGRh5NPkZCbBQE3QuhRUaNElhorCbiUFHaOagP7bBUIBQKjSjK2nGpAOhy7IqeIZr8ShCqjzhUnH4IG6EQrU8MDdXSX2u1WmHTD41iNCrQnaYaJbCO0H+IQ59prE80dl1qJFGrDYWBwYEwODCYhGMoHDhwIP28Plw8FJzGO78isLm5uT1VSEKwsb6efo6RQf8jDn1OP8SKReCNHW3i3goAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGD9D7w3oqmvc81MAAAAAElFTkSuQmCC";
6
6
  export declare const maxParticipantsNumber = 2;
7
7
  export declare type OTError = {
@@ -29,16 +29,20 @@ export declare type SubscriberInfo = {
29
29
  subscriber: MultipartySubscriber;
30
30
  connectionId: string;
31
31
  clientRole: SessionClientRole | 'default';
32
+ videoType: VideoTypesEnum;
32
33
  };
33
34
  export declare abstract class MultiPartyService extends TypedEventEmitter<MultipartyServiceEventTypesMap> {
34
35
  abstract subscribers: Readonly<SubscriberInfo>[];
35
36
  abstract ownConnectionId: string;
36
37
  abstract connect(...args: any[]): void;
37
38
  abstract disconnect(): void;
38
- abstract reinitializeStreams(settings: SessionSettings): Promise<void>;
39
+ abstract reinitializeStreams(settings: SessionSettings): Promise<void[]>;
39
40
  abstract switchCamera(): Promise<void>;
40
41
  abstract publishAudio(shouldMute: boolean): Promise<void>;
41
42
  abstract publishVideo(shouldPublishVideo: boolean): Promise<void>;
42
- abstract takeSnapshot(connectionId: string): string | null;
43
+ abstract publishScreen(): Promise<void>;
44
+ abstract stopScreenPublisher(): void | undefined;
45
+ abstract isScreenSharingSupported(isScreenSharingCapabilitiesEnabled?: boolean): Promise<boolean>;
46
+ abstract takeSnapshot(connectionId: string, videoType: VideoTypesEnum): string | null;
43
47
  }
44
48
  export {};
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/MultiParty/MultiPartyService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,8BAA8B,EAAC,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAC,eAAe,EAAC,MAAM,SAAS,CAAC;AACxC,OAAO,EAAC,iBAAiB,EAAC,MAAM,uDAAuD,CAAC;AACxF,OAAO,EAAC,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AAGpD,eAAO,MAAM,kBAAkB,uqLACyoL,CAAC;AAEzqL,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAIvC,oBAAY,OAAO,GAAG;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,oBAAY,kBAAkB,GAAG;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,oBAAY,eAAe,GAAG;IAC1B,KAAK,EAAE,kBAAkB,CAAC;IAC1B,KAAK,EAAE,kBAAkB,GAAG;QAAC,SAAS,EAAE,MAAM,CAAA;KAAC,CAAC;IAChD,SAAS,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,aAAK,UAAU,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,eAAe,KAAK,IAAI,KAAK,IAAI,CAAC;AACzF,oBAAY,oBAAoB,GAAG;IAC/B,UAAU,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,EAAE,UAAU,CAAC;CACxB,CAAC;AAEF,oBAAY,cAAc,GAAG;IACzB,UAAU,EAAE,oBAAoB,CAAC;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,iBAAiB,GAAG,SAAS,CAAC;CAC7C,CAAC;AAEF,8BAAsB,iBAAkB,SAAQ,iBAAiB,CAAC,8BAA8B,CAAC;IAC7F,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;IAEjD,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IAEjC,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAEtC,QAAQ,CAAC,UAAU,IAAI,IAAI;IAE3B,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAEtE,QAAQ,CAAC,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAEtC,QAAQ,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAEzD,QAAQ,CAAC,YAAY,CAAC,kBAAkB,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAEjE,QAAQ,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;CAC7D","file":"MultiPartyService.d.ts","sourcesContent":["import {MultipartyServiceEventTypesMap} from './MultipartyServiceEventTypes';\nimport {SessionSettings} from './types';\nimport {TypedEventEmitter} from '@techsee/techsee-common/lib/helpers/TypedEventEmitter';\nimport {SessionClientRole} from '../MediaConstants';\n\n// eslint-disable-next-line max-len\nexport const DEFAULT_AVATAR_URI =\n 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQcAAAFKCAYAAAAQbZoVAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAABB+SURBVHgB7d3NbxzlAcfxJ9jrtXFiE4MdQhOE1NALnBJUQbjwciDJBfVC20NVVaIvEgf4r4C0asWFwqFApRIuJD006aExQoqjgu3EiZM4fo87v3FXMuufvbO7MzvPbL4fyUoxTYC1/d3neeaZZw689+4734at8EwAgB0eCQBgEAcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcA1mBAX3vkkUfCwMBAqA0NhaHaUPrXg4OD6ecaf18fzTY2NsKDBw/C1tZW8utmWFtbDxubG2FzczOsr62lfw/9jTj0mXq9HoaSENSSEOh/KwSdaP59IyM//PuKx/r6WlhdXQ1r6+thdWUloL8Qh4rTu/5w8pM7XB9OfoBH7CigCIqHPkZGHk3/WiOJ1dWVsLy8nH4wsqg+4lBBCoBGBYcOHUpHCL0Kwn7076BQNGKxvHw/jcTS0lJANRGHChkYHAgHRw+GgwcPRRGE/TRCMTY2nk49Fu/cDpsbmwHVQRwqQKOE8fHx5NfhUDWN6cfo6Gg6ili6v8T6REUQh4hVOQqOAqEPjSRuLtxgJBE54hAhTR8en3i8b6LQTNF76uiP0pEE0414EYeIaB1Bi4xVWFPIQ2MkcefOYlhcXAyIC3GIhN5NJ5LRQqf7EqpMi5aPPjoaFm4tsB4REeJQMo0QtK6g0cLDTFGcmpwKd+/eDbdv3wooH3EokdYWpiaPPJSjhb1oWqXNXHPzs6xFlIwbr0qiufaTR44SBkOviV4bhQLl4TuzBJpjayqBvWm69dhjh9NfWawsB3Hooe1v+MeSUcPBgGwU0lqtFhYWFrhfo8eYVvSI1hcmkwU3wtA+bcPWa6fXEL1DHHqgsfCoW6nRGb12eg0JRO8Qh4JxRSI/25c7CUSvEIcCEYb8EYjeIQ4F0eLjE49PEoYC6DXVa/swbDEvE69uQbQVmjWG4ui11ZUfFIc4FECX30aaD11E7nTlh/0ixSEOOdOuPr5he0ch1m5T5I845EiLZPpmRW9pJyULlPkjDjnSKjqLZL2n15zXPn+8mjk5fPgwVyZKpNeeUVu+iEMOdFDLw34eQwy03lMf7s+j9cpAHHKgy5aIw8ThCaYXOeFV7JKGskwn4qGvBedA5IM4dEEr5Fy2jI+meFy96B5x6ML4GDv0YqRpxeMTTwR0hzh0SO9MbL6JlxaJWZzsDnHo0MRhFiFjN86lza6wktYBPYlquA/elbSYOjU1lb7D1utD6X/XnTt30jMbV1dXwvzcXKiyxuiBZ2F0hjh0oMrTiWPHnw4nTpwIJ559tuWmoTtJJGZmZsI301fDdPJRRRo9zBGHjhCHNlV1rUFROH36dPprVmPJlZjn9PH882kovvrqy3Dl8uVQJRo96GvGMzDaRxzaVLUrFGNjY+HM2XNtRcH+OUkk3jhzLrz00svh/Ifvp9OPqjg4epDj7TvAgmSb9E5UFSdOPBt+9evfdB2GnRSJt3/3h/DS6ZdDVTwsDybOGyOHNmg6UZXdkCdPngqvvPb6vv+f68l6wtzcbJifn0//eiWZm2uhdXJyMlmoPJJE5fiev7cRh68ufBlipzAo6svLywHZEYc26PkJVfDcc8/vGYbV1dVw6eLX6Yf+9360YKn1Bn24xcsqBeLQoTHi0KaBF1/86XvJr2z1a0HvPlW4wUprDG/94pf272mk8Oc//TG9+rC52XqBTvHQ75m+Op1e5tRlz2bHkymL5vPz83Ff9tTXb2npXtja2grIholYRlU5E/Ktn/sw6N19eyGx/YU5/Z5PP/l4zxHCq8koRVGKmeIwzLmebSEOGVVhSqFh/pi5EUw/1HkM/ff6czSf1xWR2A3X2U7dDuKQUexXKfTO7a4g5BWGnX+e1iua6YrIfguYMeBE8PYQhww03479Uph2PDbTdKCIxcIvPv8sucqxe43hdOSXN9OrFtyMlRlxyGBoqBZid/LkC7s+98Vnn4Wi/P3zv+36nEYP9eG4R1i1wfi/lrEgDhnUI5+ral9C81qDRg1F3g+hey6uz1zb9XltvIoZTyHLjjhkUKvF/W5z3OyAvHTxYija9NXd8Tl2LL/dmEWo0g7XshGHFjRPjX1XpNsePWPe1fM2PT2963NTR6ZCzPS1ZCt1NrxKLdRq8Q9Dh808vxdnMWjq0rzLsgrPjhgcYGNwFsShhYGB+A8q3bXe0MM7EHUozE5VGLYPVmCBOQbEoQWOne8/QxUYDcaAOLTA6nb/Yc0hG16lFg4cOBBi1zyN0DSjV/sNmtcYWt3pGQNGg9kQhxaq8C6zaE5lmpws/qqB9lc0q8KhtFVYR4oBcWihCnGYn53d9bnjx4vfb+D+GTo8Bv2BOLRQhSGo229w8tQLoWjunzFzfSbEjjWHbHiV+oD2GzRvZdYlRZ3gVJT0dCizZfubq/EfYU8csuFV6hNuK/Mrr75eyMJkenv4S7vvwJy5Fv+oAdkRhz5x5crlXVcKNHp4882fhbzpfMq9DpVB/yAOfUJhuHDhH7s+r/suNILIiw6UcXdeKgydHEGHeBGHFh48eBCq4p8XL9rbqE+eOtX1FEOjkDfOnrOnTRV1qAzKxW6QFhSH2Bew9IM7OXUkfQbmXhQI/f2PPvpL23sRNPo4c+asnUrI6spqEp/Xtk+qrsAzNTc2NgJaO/Deu+98G7bCMwHW0aNPRXs5U1HQ5UR9tHPDk46mv7jHKGOnTp6vqd2aWv+4dOnrNBoxWltbC7Oz3wfsj5FDC3qXiTEOrd7N9/PjZM1AH1qnmJ+bTc+DbCxmKjJ6PoVGIp3cYal/H0099GCdTz75OB1NxIZnV2RDHFrI8vCXXtMP3hs5HAWvH/7tU6Pz302pSOgZGnmffp2HKq0jlYk4tBDbN1LWMDQ/BTuvh860++dqFNF4BF8sNK1Aa8ShhZi+kfSDuNczMLcXA/+TPrrOXVLU3ZPpcL/DXZP68y8kIwC3TqE/+9jTx9Oj6d1JUFqs1LF1sdyUtbHJgmQWLEi2UBuqhSePHA0xePu3v7drDHqORNZ3Zv3wnnj2RHLl4if7PoRmez1iLv2hzvLQ3QYFyF3uVFTOf/hBiMHcfLLGsrISsD9GDi1sbsSx5uDuZZBP//pxenUgK40qdDJ143Rq3do9PDwchv6/+LiWREAPxu10Q5PWFxaT33vmzA+nPlrX0IN3piO492KdaUUmxKEFrTnEcMVCaw3N9IPYThicIp6O/e/Ll8NUEp3muzZPnjxVehz0tWRBMht2SGZQ9ulGjasKO8W+K1H/bs2vWwxPxFpfXw/IhjhksL5e7jB0aurIrs/FfgekwnDl8r92ff7Y8XIferPCWkNmxCGDtbVy323GxndfLux2OtEL7srGcMlH169vMHLIijhkoGczlDlPdZcHm58XEaPFRX9JtSz6GnKVIjvikNHy8nKISaz3Ley0uhrXVYEqnIwdE+KQEXPV6ltevh+QHXHIaGVlmUtgbarX43ogUGyjv9gRh4wUhrK2UrsNSdpQFDt3dH1Zp0UpDMS9PWyCasO9e3fT3YS9NmeeS6EtytrdeD3So+DTQ2jNNuq5ku6vYErRPuLQBi1olXEy1Pz8fHpZcOcegcbR80UeP583jRrKuPlKuyKXlpYC2sO0og0Kw927d0MZ+uGMxvMflHPjFVcpOkMc2nT/fjnvQDMzM+nJSlWlG8TKWm/gVOzOMK1ok4aouqxZxtqDbmi6fm0mnDl7bt/brWOy3zkQvaDpBAfKdoY4dECnIZURh+1/9mI4/+H76U7Dyamp0v49spi5dq30d+2l+6w1dIo4dEBbl8saPTToh47h8v601sB26c6x5tCh5rMUEZ+FhZsBnSMOHWqMHhAn1hq6Rxy6cOvWArvuIsWUq3vEoQt6Zypr3wP2pjAwaugeceiStlTzjRgPfS3cORJoH3HokqYVCwsLAXFgETI/xCEHWpxkelE+fQ3YKp0f4pAT5rnl0mt/+/atgPwQh5xoeqFnQHD1ovcarz3yRRxyxLtXObQAyagtf8QhZ9p8w2p572g6pytGyB9xKIC+YZeW7gUUS0e/EeLiEIeC3L59u/QnZfUznefJZctiEYeCaJHsxo0bzIULoNf05s0bLP4WjDgUSN/EWkUnEPnhNe0d4lAwvpnzw2vZW8ShBxrf1KxBdE5rDISht4hDj+ibWs9s4KlL7dOVH8LQe8Shh7YXKee5/NYGXRbWjW0sPvYeZ0iWQN/wW1sP0kNie/2AnKpQDLTblIfRlIc4lER3EGqKoUfaDQ7yZdiJhcc48LZVIn3zf/fdf7ndewe9FrOz3xOGCPCWFQENnzWKmJiYeGhHEYqBdjxyHkM8iEMkdGCMRhFahxgfHw8Pi8bzR3XzFIuOcSEOkdFipZ7HqUiMjo6Gfqaj/XWCN1OIOBGHCDWG2ArF4cMTUT/yrhOKgv7bmELEjThErLFqX68Pp6OIqo8kiEK1EIcK0HqEPvSDpelGvV6vzMJlY01BUyWmD9VCHCqkMd0QjSJGRh5NPkZCbBQE3QuhRUaNElhorCbiUFHaOagP7bBUIBQKjSjK2nGpAOhy7IqeIZr8ShCqjzhUnH4IG6EQrU8MDdXSX2u1WmHTD41iNCrQnaYaJbCO0H+IQ59prE80dl1qJFGrDYWBwYEwODCYhGMoHDhwIP28Plw8FJzGO78isLm5uT1VSEKwsb6efo6RQf8jDn1OP8SKReCNHW3i3goAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGARBwAWcQBgEQcAFnEAYBEHABZxAGD9D7w3oqmvc81MAAAAAElFTkSuQmCC';\n\nexport const maxParticipantsNumber = 2;\n\n// ToDo: SubscriberInfo and GetStatsCb will need to be abstracted. Right now they are OT specific.\n// As a quick temporary fix replace with local redefinition of OT types\nexport type OTError = {\n name: string;\n message: string;\n};\n\nexport type IncomingTrackStats = {\n bytesReceived: number;\n packetsLost: number;\n packetsReceived: number;\n};\n\nexport type SubscriberStats = {\n audio: IncomingTrackStats;\n video: IncomingTrackStats & {frameRate: number};\n timestamp: number;\n};\n\ntype GetStatsCb = (callback: (error?: OTError, stats?: SubscriberStats) => void) => void;\nexport type MultipartySubscriber = {\n getImgData: () => string | null;\n getStats: GetStatsCb;\n};\n\nexport type SubscriberInfo = {\n subscriber: MultipartySubscriber;\n connectionId: string;\n clientRole: SessionClientRole | 'default';\n};\n\nexport abstract class MultiPartyService extends TypedEventEmitter<MultipartyServiceEventTypesMap> {\n abstract subscribers: Readonly<SubscriberInfo>[];\n\n abstract ownConnectionId: string;\n\n abstract connect(...args: any[]): void;\n\n abstract disconnect(): void;\n\n abstract reinitializeStreams(settings: SessionSettings): Promise<void>;\n\n abstract switchCamera(): Promise<void>;\n\n abstract publishAudio(shouldMute: boolean): Promise<void>;\n\n abstract publishVideo(shouldPublishVideo: boolean): Promise<void>;\n\n abstract takeSnapshot(connectionId: string): string | null;\n}\n"]}
1
+ {"version":3,"sources":["../src/MultiParty/MultiPartyService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,8BAA8B,EAAC,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAC,eAAe,EAAC,MAAM,SAAS,CAAC;AACxC,OAAO,EAAC,iBAAiB,EAAC,MAAM,uDAAuD,CAAC;AACxF,OAAO,EAAC,iBAAiB,EAAE,cAAc,EAAC,MAAM,mBAAmB,CAAC;AAGpE,eAAO,MAAM,kBAAkB,uqLACyoL,CAAC;AAEzqL,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAIvC,oBAAY,OAAO,GAAG;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,oBAAY,kBAAkB,GAAG;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,oBAAY,eAAe,GAAG;IAC1B,KAAK,EAAE,kBAAkB,CAAC;IAC1B,KAAK,EAAE,kBAAkB,GAAG;QAAC,SAAS,EAAE,MAAM,CAAA;KAAC,CAAC;IAChD,SAAS,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,aAAK,UAAU,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,eAAe,KAAK,IAAI,KAAK,IAAI,CAAC;AACzF,oBAAY,oBAAoB,GAAG;IAC/B,UAAU,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,EAAE,UAAU,CAAC;CACxB,CAAC;AAEF,oBAAY,cAAc,GAAG;IACzB,UAAU,EAAE,oBAAoB,CAAC;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAC1C,SAAS,EAAE,cAAc,CAAC;CAC7B,CAAC;AAEF,8BAAsB,iBAAkB,SAAQ,iBAAiB,CAAC,8BAA8B,CAAC;IAC7F,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;IAEjD,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IAEjC,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAEtC,QAAQ,CAAC,UAAU,IAAI,IAAI;IAE3B,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAExE,QAAQ,CAAC,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAEtC,QAAQ,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAEzD,QAAQ,CAAC,YAAY,CAAC,kBAAkB,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAEjE,QAAQ,CAAC,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAEvC,QAAQ,CAAC,mBAAmB,IAAI,IAAI,GAAG,SAAS;IAEhD,QAAQ,CAAC,wBAAwB,CAAC,kCAAkC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAEjG,QAAQ,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,GAAG,MAAM,GAAG,IAAI;CACxF","file":"MultiPartyService.d.ts","sourcesContent":["import {MultipartyServiceEventTypesMap} from './MultipartyServiceEventTypes';\nimport {SessionSettings} from './types';\nimport {TypedEventEmitter} from '@techsee/techsee-common/lib/helpers/TypedEventEmitter';\nimport {SessionClientRole, VideoTypesEnum} from '../MediaConstants';\n\n// eslint-disable-next-line max-len\nexport const DEFAULT_AVATAR_URI =\n 'data:image/png;base64,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';\n\nexport const maxParticipantsNumber = 2;\n\n// ToDo: SubscriberInfo and GetStatsCb will need to be abstracted. Right now they are OT specific.\n// As a quick temporary fix replace with local redefinition of OT types\nexport type OTError = {\n name: string;\n message: string;\n};\n\nexport type IncomingTrackStats = {\n bytesReceived: number;\n packetsLost: number;\n packetsReceived: number;\n};\n\nexport type SubscriberStats = {\n audio: IncomingTrackStats;\n video: IncomingTrackStats & {frameRate: number};\n timestamp: number;\n};\n\ntype GetStatsCb = (callback: (error?: OTError, stats?: SubscriberStats) => void) => void;\nexport type MultipartySubscriber = {\n getImgData: () => string | null;\n getStats: GetStatsCb;\n};\n\nexport type SubscriberInfo = {\n subscriber: MultipartySubscriber;\n connectionId: string;\n clientRole: SessionClientRole | 'default';\n videoType: VideoTypesEnum;\n};\n\nexport abstract class MultiPartyService extends TypedEventEmitter<MultipartyServiceEventTypesMap> {\n abstract subscribers: Readonly<SubscriberInfo>[];\n\n abstract ownConnectionId: string;\n\n abstract connect(...args: any[]): void;\n\n abstract disconnect(): void;\n\n abstract reinitializeStreams(settings: SessionSettings): Promise<void[]>;\n\n abstract switchCamera(): Promise<void>;\n\n abstract publishAudio(shouldMute: boolean): Promise<void>;\n\n abstract publishVideo(shouldPublishVideo: boolean): Promise<void>;\n\n abstract publishScreen(): Promise<void>;\n\n abstract stopScreenPublisher(): void | undefined;\n\n abstract isScreenSharingSupported(isScreenSharingCapabilitiesEnabled?: boolean): Promise<boolean>;\n\n abstract takeSnapshot(connectionId: string, videoType: VideoTypesEnum): string | null;\n}\n"]}
@@ -1,3 +1,3 @@
1
- import { SessionSettings } from './types';
2
1
  import { MultiPartyService } from './MultiPartyService';
3
- export declare const createMultiPartyService: (settings: SessionSettings, getParticipantDomId: (connectionId?: string | undefined) => string) => MultiPartyService;
2
+ import { MediaServiceType } from '../MediaConstants';
3
+ export declare const createMultiPartyService: (mediaServiceType: MediaServiceType, getParticipantDomId: (connectionId?: string | undefined) => string) => MultiPartyService;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/MultiParty/MultiPartyServiceFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,SAAS,CAAC;AACxC,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AAItD,eAAO,MAAM,uBAAuB,aACtB,eAAe,8DACuB,MAAM,KACvD,iBAMF,CAAC","file":"MultiPartyServiceFactory.d.ts","sourcesContent":["import {SessionSettings} from './types';\nimport {MultiPartyService} from './MultiPartyService';\nimport {OpentokMultiPartyService} from './opentok/OpentokMultiPartyService';\nimport {MediaServiceType} from '../MediaConstants';\n\nexport const createMultiPartyService = (\n settings: SessionSettings,\n getParticipantDomId: (connectionId?: string) => string\n): MultiPartyService => {\n if (settings.mediaServiceType === MediaServiceType.OPENTOK) {\n return new OpentokMultiPartyService(getParticipantDomId);\n }\n\n throw new Error('NOT_SUPPORTED');\n};\n"]}
1
+ {"version":3,"sources":["../src/MultiParty/MultiPartyServiceFactory.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAC,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AAEnD,eAAO,MAAM,uBAAuB,qBACd,gBAAgB,8DACc,MAAM,KACvD,iBAMF,CAAC","file":"MultiPartyServiceFactory.d.ts","sourcesContent":["import {SessionSettings} from './types';\nimport {MultiPartyService} from './MultiPartyService';\nimport {OpentokMultiPartyService} from './opentok/OpentokMultiPartyService';\nimport {MediaServiceType} from '../MediaConstants';\n\nexport const createMultiPartyService = (\n mediaServiceType: MediaServiceType,\n getParticipantDomId: (connectionId?: string) => string\n): MultiPartyService => {\n if (mediaServiceType === MediaServiceType.OPENTOK) {\n return new OpentokMultiPartyService(getParticipantDomId);\n }\n\n throw new Error('NOT_SUPPORTED');\n};\n"]}
@@ -9,8 +9,8 @@ var OpentokMultiPartyService_1 = require("./opentok/OpentokMultiPartyService");
9
9
 
10
10
  var MediaConstants_1 = require("../MediaConstants");
11
11
 
12
- var createMultiPartyService = function createMultiPartyService(settings, getParticipantDomId) {
13
- if (settings.mediaServiceType === MediaConstants_1.MediaServiceType.OPENTOK) {
12
+ var createMultiPartyService = function createMultiPartyService(mediaServiceType, getParticipantDomId) {
13
+ if (mediaServiceType === MediaConstants_1.MediaServiceType.OPENTOK) {
14
14
  return new OpentokMultiPartyService_1.OpentokMultiPartyService(getParticipantDomId);
15
15
  }
16
16
 
@@ -1 +1 @@
1
- {"version":3,"sources":["MultiParty/MultiPartyServiceFactory.js"],"names":["Object","defineProperty","exports","value","createMultiPartyService","OpentokMultiPartyService_1","require","MediaConstants_1","settings","getParticipantDomId","mediaServiceType","MediaServiceType","OPENTOK","OpentokMultiPartyService","Error"],"mappings":"AAAA;;AACAA,MAAM,CAACC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAAEC,EAAAA,KAAK,EAAE;AAAT,CAA7C;AACAD,OAAO,CAACE,uBAAR,GAAkC,KAAK,CAAvC;;AACA,IAAIC,0BAA0B,GAAGC,OAAO,CAAC,oCAAD,CAAxC;;AACA,IAAIC,gBAAgB,GAAGD,OAAO,CAAC,mBAAD,CAA9B;;AACA,IAAIF,uBAAuB,GAAG,SAA1BA,uBAA0B,CAAUI,QAAV,EAAoBC,mBAApB,EAAyC;AACnE,MAAID,QAAQ,CAACE,gBAAT,KAA8BH,gBAAgB,CAACI,gBAAjB,CAAkCC,OAApE,EAA6E;AACzE,WAAO,IAAIP,0BAA0B,CAACQ,wBAA/B,CAAwDJ,mBAAxD,CAAP;AACH;;AACD,QAAM,IAAIK,KAAJ,CAAU,eAAV,CAAN;AACH,CALD;;AAMAZ,OAAO,CAACE,uBAAR,GAAkCA,uBAAlC","file":"MultiPartyServiceFactory.js","sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createMultiPartyService = void 0;\nvar OpentokMultiPartyService_1 = require(\"./opentok/OpentokMultiPartyService\");\nvar MediaConstants_1 = require(\"../MediaConstants\");\nvar createMultiPartyService = function (settings, getParticipantDomId) {\n if (settings.mediaServiceType === MediaConstants_1.MediaServiceType.OPENTOK) {\n return new OpentokMultiPartyService_1.OpentokMultiPartyService(getParticipantDomId);\n }\n throw new Error('NOT_SUPPORTED');\n};\nexports.createMultiPartyService = createMultiPartyService;\n\n//# sourceMappingURL=MultiPartyServiceFactory.js.map\n"]}
1
+ {"version":3,"sources":["MultiParty/MultiPartyServiceFactory.js"],"names":["Object","defineProperty","exports","value","createMultiPartyService","OpentokMultiPartyService_1","require","MediaConstants_1","mediaServiceType","getParticipantDomId","MediaServiceType","OPENTOK","OpentokMultiPartyService","Error"],"mappings":"AAAA;;AACAA,MAAM,CAACC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAAEC,EAAAA,KAAK,EAAE;AAAT,CAA7C;AACAD,OAAO,CAACE,uBAAR,GAAkC,KAAK,CAAvC;;AACA,IAAIC,0BAA0B,GAAGC,OAAO,CAAC,oCAAD,CAAxC;;AACA,IAAIC,gBAAgB,GAAGD,OAAO,CAAC,mBAAD,CAA9B;;AACA,IAAIF,uBAAuB,GAAG,SAA1BA,uBAA0B,CAAUI,gBAAV,EAA4BC,mBAA5B,EAAiD;AAC3E,MAAID,gBAAgB,KAAKD,gBAAgB,CAACG,gBAAjB,CAAkCC,OAA3D,EAAoE;AAChE,WAAO,IAAIN,0BAA0B,CAACO,wBAA/B,CAAwDH,mBAAxD,CAAP;AACH;;AACD,QAAM,IAAII,KAAJ,CAAU,eAAV,CAAN;AACH,CALD;;AAMAX,OAAO,CAACE,uBAAR,GAAkCA,uBAAlC","file":"MultiPartyServiceFactory.js","sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createMultiPartyService = void 0;\nvar OpentokMultiPartyService_1 = require(\"./opentok/OpentokMultiPartyService\");\nvar MediaConstants_1 = require(\"../MediaConstants\");\nvar createMultiPartyService = function (mediaServiceType, getParticipantDomId) {\n if (mediaServiceType === MediaConstants_1.MediaServiceType.OPENTOK) {\n return new OpentokMultiPartyService_1.OpentokMultiPartyService(getParticipantDomId);\n }\n throw new Error('NOT_SUPPORTED');\n};\nexports.createMultiPartyService = createMultiPartyService;\n\n//# sourceMappingURL=MultiPartyServiceFactory.js.map\n"]}
@@ -1,4 +1,4 @@
1
- import { MultiPartyCameraTypes, SessionClientRole } from '../MediaConstants';
1
+ import { MultiPartyCameraTypes, SessionClientRole, VideoTypesEnum } from '../MediaConstants';
2
2
  export declare enum MultiPartyServiceEventTypes {
3
3
  connectFailed = "connectFailed",
4
4
  streamDestroyed = "streamDestroyed",
@@ -39,12 +39,14 @@ export declare type MultipartyServiceStreamCreatedEvent = {
39
39
  width: number;
40
40
  height: number;
41
41
  };
42
+ videoType: VideoTypesEnum;
42
43
  };
43
44
  export declare type MultipartyServiceStreamDestroyedEvent = {
44
45
  isOwnConnection: boolean;
45
46
  connectionId: string;
46
47
  participantId: string;
47
48
  clientRole: SessionClientRole;
49
+ videoType: VideoTypesEnum;
48
50
  };
49
51
  export declare type MultipartyServiceStreamPropertyChangedEvent = {
50
52
  isOwnConnection: boolean;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/MultiParty/MultipartyServiceEventTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,qBAAqB,EAAE,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AAE3E,oBAAY,2BAA2B;IACnC,aAAa,kBAAkB;IAC/B,eAAe,oBAAoB;IACnC,iBAAiB,sBAAsB;IACvC,mBAAmB,wBAAwB;IAC3C,aAAa,kBAAkB;IAC/B,mBAAmB,wBAAwB;IAC3C,qBAAqB,0BAA0B;IAC/C,uBAAuB,4BAA4B;IACnD,mBAAmB,wBAAwB;CAC9C;AAED,oBAAY,mCAAmC,GAAG;IAC9C,IAAI,EAAE;QACF,GAAG,EAAE,MAAM,CAAC;KACf,CAAC;CACL,CAAC;AAEF,oBAAY,uCAAuC,GAAG;IAClD,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,iBAAiB,CAAC;CACjC,CAAC;AAEF,oBAAY,yCAAyC,GAAG;IACpD,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,iBAAiB,CAAC;CACjC,CAAC;AAEF,oBAAY,mCAAmC,GAAG;IAC9C,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,eAAe,EAAE;QACb,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAClB,CAAC;CACL,CAAC;AAEF,oBAAY,qCAAqC,GAAG;IAChD,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,iBAAiB,CAAC;CACjC,CAAC;AAEF,oBAAY,2CAA2C,GAAG;IACtD,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,eAAe,EAAE;QACb,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAClB,CAAC;CACL,CAAC;AAEF,oBAAY,yCAAyC,GAAG;IACpD,YAAY,EAAE,qBAAqB,CAAC;IACpC,MAAM,EAAE,OAAO,CAAC;IAChB,eAAe,EAAE;QACb,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAClB,CAAC;CACL,CAAC;AAEF,oBAAY,uCAAuC,GAAG;IAClD,eAAe,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,MAAM,WAAW,8BAA8B;IAC3C,iBAAiB,EAAE,uCAAuC,CAAC;IAC3D,mBAAmB,EAAE,yCAAyC,CAAC;IAC/D,aAAa,EAAE,mCAAmC,CAAC;IACnD,eAAe,EAAE,qCAAqC,CAAC;IACvD,aAAa,EAAE,mCAAmC,CAAC;IACnD,mBAAmB,EAAE,IAAI,CAAC;IAC1B,qBAAqB,EAAE,2CAA2C,CAAC;IACnE,uBAAuB,EAAE,uCAAuC,CAAC;IACjE,mBAAmB,EAAE,yCAAyC,CAAC;CAClE","file":"MultipartyServiceEventTypes.d.ts","sourcesContent":["import {MultiPartyCameraTypes, SessionClientRole} from '../MediaConstants';\n\nexport enum MultiPartyServiceEventTypes {\n connectFailed = 'connectFailed',\n streamDestroyed = 'streamDestroyed',\n connectionCreated = 'connectionCreated',\n connectionDestroyed = 'connectionDestroyed',\n streamCreated = 'streamCreated',\n videoElementCreated = 'videoElementCreated',\n streamPropertyChanged = 'streamPropertyChanged',\n mediaDeviceAccessDenied = 'mediaDeviceAccessDenied',\n cameraSourceChanged = 'cameraSourceChanged'\n}\n\nexport type MultipartyServiceConnectFailedEvent = {\n meta: {\n err: string;\n };\n};\n\nexport type MultipartyServiceConnectionCreatedEvent = {\n isOwnConnection: boolean;\n connectionId: string;\n participantId: string;\n clientRole: SessionClientRole;\n};\n\nexport type MultipartyServiceConnectionDestroyedEvent = {\n isOwnConnection: boolean;\n connectionId: string;\n participantId: string;\n clientRole: SessionClientRole;\n};\n\nexport type MultipartyServiceStreamCreatedEvent = {\n isOwnConnection: boolean;\n connectionId: string;\n participantId: string;\n clientRole: SessionClientRole;\n hasVideo: boolean;\n hasAudio: boolean;\n mirror: boolean;\n videoDimensions: {\n width: number;\n height: number;\n };\n};\n\nexport type MultipartyServiceStreamDestroyedEvent = {\n isOwnConnection: boolean;\n connectionId: string;\n participantId: string;\n clientRole: SessionClientRole;\n};\n\nexport type MultipartyServiceStreamPropertyChangedEvent = {\n isOwnConnection: boolean;\n connectionId: string;\n participantId: string;\n clientRole: SessionClientRole;\n hasVideo: boolean;\n hasAudio: boolean;\n videoDimensions: {\n width: number;\n height: number;\n };\n};\n\nexport type MultipartyServiceCameraSourceChangedEvent = {\n cameraSource: MultiPartyCameraTypes;\n mirror: boolean;\n videoDimensions: {\n width: number;\n height: number;\n };\n};\n\nexport type MultipartyServiceMediaAccessDeniedEvent = {\n isOwnConnection: boolean;\n};\n\nexport interface MultipartyServiceEventTypesMap {\n connectionCreated: MultipartyServiceConnectionCreatedEvent;\n connectionDestroyed: MultipartyServiceConnectionDestroyedEvent;\n connectFailed: MultipartyServiceConnectFailedEvent;\n streamDestroyed: MultipartyServiceStreamDestroyedEvent;\n streamCreated: MultipartyServiceStreamCreatedEvent;\n videoElementCreated: void;\n streamPropertyChanged: MultipartyServiceStreamPropertyChangedEvent;\n mediaDeviceAccessDenied: MultipartyServiceMediaAccessDeniedEvent;\n cameraSourceChanged: MultipartyServiceCameraSourceChangedEvent;\n}\n"]}
1
+ {"version":3,"sources":["../src/MultiParty/MultipartyServiceEventTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,qBAAqB,EAAE,iBAAiB,EAAE,cAAc,EAAC,MAAM,mBAAmB,CAAC;AAE3F,oBAAY,2BAA2B;IACnC,aAAa,kBAAkB;IAC/B,eAAe,oBAAoB;IACnC,iBAAiB,sBAAsB;IACvC,mBAAmB,wBAAwB;IAC3C,aAAa,kBAAkB;IAC/B,mBAAmB,wBAAwB;IAC3C,qBAAqB,0BAA0B;IAC/C,uBAAuB,4BAA4B;IACnD,mBAAmB,wBAAwB;CAC9C;AAED,oBAAY,mCAAmC,GAAG;IAC9C,IAAI,EAAE;QACF,GAAG,EAAE,MAAM,CAAC;KACf,CAAC;CACL,CAAC;AAEF,oBAAY,uCAAuC,GAAG;IAClD,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,iBAAiB,CAAC;CACjC,CAAC;AAEF,oBAAY,yCAAyC,GAAG;IACpD,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,iBAAiB,CAAC;CACjC,CAAC;AAEF,oBAAY,mCAAmC,GAAG;IAC9C,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,eAAe,EAAE;QACb,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,SAAS,EAAE,cAAc,CAAC;CAC7B,CAAC;AAEF,oBAAY,qCAAqC,GAAG;IAChD,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,SAAS,EAAE,cAAc,CAAC;CAC7B,CAAC;AAEF,oBAAY,2CAA2C,GAAG;IACtD,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,eAAe,EAAE;QACb,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAClB,CAAC;CACL,CAAC;AAEF,oBAAY,yCAAyC,GAAG;IACpD,YAAY,EAAE,qBAAqB,CAAC;IACpC,MAAM,EAAE,OAAO,CAAC;IAChB,eAAe,EAAE;QACb,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAClB,CAAC;CACL,CAAC;AAEF,oBAAY,uCAAuC,GAAG;IAClD,eAAe,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,MAAM,WAAW,8BAA8B;IAC3C,iBAAiB,EAAE,uCAAuC,CAAC;IAC3D,mBAAmB,EAAE,yCAAyC,CAAC;IAC/D,aAAa,EAAE,mCAAmC,CAAC;IACnD,eAAe,EAAE,qCAAqC,CAAC;IACvD,aAAa,EAAE,mCAAmC,CAAC;IACnD,mBAAmB,EAAE,IAAI,CAAC;IAC1B,qBAAqB,EAAE,2CAA2C,CAAC;IACnE,uBAAuB,EAAE,uCAAuC,CAAC;IACjE,mBAAmB,EAAE,yCAAyC,CAAC;CAClE","file":"MultipartyServiceEventTypes.d.ts","sourcesContent":["import {MultiPartyCameraTypes, SessionClientRole, VideoTypesEnum} from '../MediaConstants';\n\nexport enum MultiPartyServiceEventTypes {\n connectFailed = 'connectFailed',\n streamDestroyed = 'streamDestroyed',\n connectionCreated = 'connectionCreated',\n connectionDestroyed = 'connectionDestroyed',\n streamCreated = 'streamCreated',\n videoElementCreated = 'videoElementCreated',\n streamPropertyChanged = 'streamPropertyChanged',\n mediaDeviceAccessDenied = 'mediaDeviceAccessDenied',\n cameraSourceChanged = 'cameraSourceChanged'\n}\n\nexport type MultipartyServiceConnectFailedEvent = {\n meta: {\n err: string;\n };\n};\n\nexport type MultipartyServiceConnectionCreatedEvent = {\n isOwnConnection: boolean;\n connectionId: string;\n participantId: string;\n clientRole: SessionClientRole;\n};\n\nexport type MultipartyServiceConnectionDestroyedEvent = {\n isOwnConnection: boolean;\n connectionId: string;\n participantId: string;\n clientRole: SessionClientRole;\n};\n\nexport type MultipartyServiceStreamCreatedEvent = {\n isOwnConnection: boolean;\n connectionId: string;\n participantId: string;\n clientRole: SessionClientRole;\n hasVideo: boolean;\n hasAudio: boolean;\n mirror: boolean;\n videoDimensions: {\n width: number;\n height: number;\n };\n videoType: VideoTypesEnum;\n};\n\nexport type MultipartyServiceStreamDestroyedEvent = {\n isOwnConnection: boolean;\n connectionId: string;\n participantId: string;\n clientRole: SessionClientRole;\n videoType: VideoTypesEnum;\n};\n\nexport type MultipartyServiceStreamPropertyChangedEvent = {\n isOwnConnection: boolean;\n connectionId: string;\n participantId: string;\n clientRole: SessionClientRole;\n hasVideo: boolean;\n hasAudio: boolean;\n videoDimensions: {\n width: number;\n height: number;\n };\n};\n\nexport type MultipartyServiceCameraSourceChangedEvent = {\n cameraSource: MultiPartyCameraTypes;\n mirror: boolean;\n videoDimensions: {\n width: number;\n height: number;\n };\n};\n\nexport type MultipartyServiceMediaAccessDeniedEvent = {\n isOwnConnection: boolean;\n};\n\nexport interface MultipartyServiceEventTypesMap {\n connectionCreated: MultipartyServiceConnectionCreatedEvent;\n connectionDestroyed: MultipartyServiceConnectionDestroyedEvent;\n connectFailed: MultipartyServiceConnectFailedEvent;\n streamDestroyed: MultipartyServiceStreamDestroyedEvent;\n streamCreated: MultipartyServiceStreamCreatedEvent;\n videoElementCreated: void;\n streamPropertyChanged: MultipartyServiceStreamPropertyChangedEvent;\n mediaDeviceAccessDenied: MultipartyServiceMediaAccessDeniedEvent;\n cameraSourceChanged: MultipartyServiceCameraSourceChangedEvent;\n}\n"]}
@@ -4,4 +4,3 @@ export * from './MultiPartyService';
4
4
  export * from './MultipartyServiceEventTypes';
5
5
  export * from './MediaTracer';
6
6
  export { createMultiPartyService } from './MultiPartyServiceFactory';
7
- export { VideoLayoutType } from './VideoLayoutType';
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/MultiParty/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAC,uBAAuB,EAAC,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC","file":"index.d.ts","sourcesContent":["export * from './types';\nexport * from './MediaCapabilitiesUtils';\nexport * from './MultiPartyService';\nexport * from './MultipartyServiceEventTypes';\nexport * from './MediaTracer';\nexport {createMultiPartyService} from './MultiPartyServiceFactory';\nexport {VideoLayoutType} from './VideoLayoutType';\n"]}
1
+ {"version":3,"sources":["../src/MultiParty/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAC,uBAAuB,EAAC,MAAM,4BAA4B,CAAC","file":"index.d.ts","sourcesContent":["export * from './types';\nexport * from './MediaCapabilitiesUtils';\nexport * from './MultiPartyService';\nexport * from './MultipartyServiceEventTypes';\nexport * from './MediaTracer';\nexport {createMultiPartyService} from './MultiPartyServiceFactory';\n"]}
@@ -22,7 +22,7 @@ var __exportStar = void 0 && (void 0).__exportStar || function (m, exports) {
22
22
  Object.defineProperty(exports, "__esModule", {
23
23
  value: true
24
24
  });
25
- exports.VideoLayoutType = exports.createMultiPartyService = void 0;
25
+ exports.createMultiPartyService = void 0;
26
26
 
27
27
  __exportStar(require("./types"), exports);
28
28
 
@@ -42,13 +42,4 @@ Object.defineProperty(exports, "createMultiPartyService", {
42
42
  return MultiPartyServiceFactory_1.createMultiPartyService;
43
43
  }
44
44
  });
45
-
46
- var VideoLayoutType_1 = require("./VideoLayoutType");
47
-
48
- Object.defineProperty(exports, "VideoLayoutType", {
49
- enumerable: true,
50
- get: function get() {
51
- return VideoLayoutType_1.VideoLayoutType;
52
- }
53
- });
54
45
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["MultiParty/index.js"],"names":["__createBinding","Object","create","o","m","k","k2","undefined","defineProperty","enumerable","get","__exportStar","exports","p","prototype","hasOwnProperty","call","value","VideoLayoutType","createMultiPartyService","require","MultiPartyServiceFactory_1","VideoLayoutType_1"],"mappings":"AAAA;;AACA,IAAIA,eAAe,GAAI,UAAQ,SAAKA,eAAd,KAAmCC,MAAM,CAACC,MAAP,GAAiB,UAASC,CAAT,EAAYC,CAAZ,EAAeC,CAAf,EAAkBC,EAAlB,EAAsB;AAC5F,MAAIA,EAAE,KAAKC,SAAX,EAAsBD,EAAE,GAAGD,CAAL;AACtBJ,EAAAA,MAAM,CAACO,cAAP,CAAsBL,CAAtB,EAAyBG,EAAzB,EAA6B;AAAEG,IAAAA,UAAU,EAAE,IAAd;AAAoBC,IAAAA,GAAG,EAAE,eAAW;AAAE,aAAON,CAAC,CAACC,CAAD,CAAR;AAAc;AAApD,GAA7B;AACH,CAHwD,GAGnD,UAASF,CAAT,EAAYC,CAAZ,EAAeC,CAAf,EAAkBC,EAAlB,EAAsB;AACxB,MAAIA,EAAE,KAAKC,SAAX,EAAsBD,EAAE,GAAGD,CAAL;AACtBF,EAAAA,CAAC,CAACG,EAAD,CAAD,GAAQF,CAAC,CAACC,CAAD,CAAT;AACH,CANqB,CAAtB;;AAOA,IAAIM,YAAY,GAAI,UAAQ,SAAKA,YAAd,IAA+B,UAASP,CAAT,EAAYQ,OAAZ,EAAqB;AACnE,OAAK,IAAIC,CAAT,IAAcT,CAAd;AAAiB,QAAIS,CAAC,KAAK,SAAN,IAAmB,CAACZ,MAAM,CAACa,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqCJ,OAArC,EAA8CC,CAA9C,CAAxB,EAA0Eb,eAAe,CAACY,OAAD,EAAUR,CAAV,EAAaS,CAAb,CAAf;AAA3F;AACH,CAFD;;AAGAZ,MAAM,CAACO,cAAP,CAAsBI,OAAtB,EAA+B,YAA/B,EAA6C;AAAEK,EAAAA,KAAK,EAAE;AAAT,CAA7C;AACAL,OAAO,CAACM,eAAR,GAA0BN,OAAO,CAACO,uBAAR,GAAkC,KAAK,CAAjE;;AACAR,YAAY,CAACS,OAAO,CAAC,SAAD,CAAR,EAAqBR,OAArB,CAAZ;;AACAD,YAAY,CAACS,OAAO,CAAC,0BAAD,CAAR,EAAsCR,OAAtC,CAAZ;;AACAD,YAAY,CAACS,OAAO,CAAC,qBAAD,CAAR,EAAiCR,OAAjC,CAAZ;;AACAD,YAAY,CAACS,OAAO,CAAC,+BAAD,CAAR,EAA2CR,OAA3C,CAAZ;;AACAD,YAAY,CAACS,OAAO,CAAC,eAAD,CAAR,EAA2BR,OAA3B,CAAZ;;AACA,IAAIS,0BAA0B,GAAGD,OAAO,CAAC,4BAAD,CAAxC;;AACAnB,MAAM,CAACO,cAAP,CAAsBI,OAAtB,EAA+B,yBAA/B,EAA0D;AAAEH,EAAAA,UAAU,EAAE,IAAd;AAAoBC,EAAAA,GAAG,EAAE,eAAY;AAAE,WAAOW,0BAA0B,CAACF,uBAAlC;AAA4D;AAAnG,CAA1D;;AACA,IAAIG,iBAAiB,GAAGF,OAAO,CAAC,mBAAD,CAA/B;;AACAnB,MAAM,CAACO,cAAP,CAAsBI,OAAtB,EAA+B,iBAA/B,EAAkD;AAAEH,EAAAA,UAAU,EAAE,IAAd;AAAoBC,EAAAA,GAAG,EAAE,eAAY;AAAE,WAAOY,iBAAiB,CAACJ,eAAzB;AAA2C;AAAlF,CAAlD","file":"index.js","sourcesContent":["\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VideoLayoutType = exports.createMultiPartyService = void 0;\n__exportStar(require(\"./types\"), exports);\n__exportStar(require(\"./MediaCapabilitiesUtils\"), exports);\n__exportStar(require(\"./MultiPartyService\"), exports);\n__exportStar(require(\"./MultipartyServiceEventTypes\"), exports);\n__exportStar(require(\"./MediaTracer\"), exports);\nvar MultiPartyServiceFactory_1 = require(\"./MultiPartyServiceFactory\");\nObject.defineProperty(exports, \"createMultiPartyService\", { enumerable: true, get: function () { return MultiPartyServiceFactory_1.createMultiPartyService; } });\nvar VideoLayoutType_1 = require(\"./VideoLayoutType\");\nObject.defineProperty(exports, \"VideoLayoutType\", { enumerable: true, get: function () { return VideoLayoutType_1.VideoLayoutType; } });\n\n//# sourceMappingURL=index.js.map\n"]}
1
+ {"version":3,"sources":["MultiParty/index.js"],"names":["__createBinding","Object","create","o","m","k","k2","undefined","defineProperty","enumerable","get","__exportStar","exports","p","prototype","hasOwnProperty","call","value","createMultiPartyService","require","MultiPartyServiceFactory_1"],"mappings":"AAAA;;AACA,IAAIA,eAAe,GAAI,UAAQ,SAAKA,eAAd,KAAmCC,MAAM,CAACC,MAAP,GAAiB,UAASC,CAAT,EAAYC,CAAZ,EAAeC,CAAf,EAAkBC,EAAlB,EAAsB;AAC5F,MAAIA,EAAE,KAAKC,SAAX,EAAsBD,EAAE,GAAGD,CAAL;AACtBJ,EAAAA,MAAM,CAACO,cAAP,CAAsBL,CAAtB,EAAyBG,EAAzB,EAA6B;AAAEG,IAAAA,UAAU,EAAE,IAAd;AAAoBC,IAAAA,GAAG,EAAE,eAAW;AAAE,aAAON,CAAC,CAACC,CAAD,CAAR;AAAc;AAApD,GAA7B;AACH,CAHwD,GAGnD,UAASF,CAAT,EAAYC,CAAZ,EAAeC,CAAf,EAAkBC,EAAlB,EAAsB;AACxB,MAAIA,EAAE,KAAKC,SAAX,EAAsBD,EAAE,GAAGD,CAAL;AACtBF,EAAAA,CAAC,CAACG,EAAD,CAAD,GAAQF,CAAC,CAACC,CAAD,CAAT;AACH,CANqB,CAAtB;;AAOA,IAAIM,YAAY,GAAI,UAAQ,SAAKA,YAAd,IAA+B,UAASP,CAAT,EAAYQ,OAAZ,EAAqB;AACnE,OAAK,IAAIC,CAAT,IAAcT,CAAd;AAAiB,QAAIS,CAAC,KAAK,SAAN,IAAmB,CAACZ,MAAM,CAACa,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqCJ,OAArC,EAA8CC,CAA9C,CAAxB,EAA0Eb,eAAe,CAACY,OAAD,EAAUR,CAAV,EAAaS,CAAb,CAAf;AAA3F;AACH,CAFD;;AAGAZ,MAAM,CAACO,cAAP,CAAsBI,OAAtB,EAA+B,YAA/B,EAA6C;AAAEK,EAAAA,KAAK,EAAE;AAAT,CAA7C;AACAL,OAAO,CAACM,uBAAR,GAAkC,KAAK,CAAvC;;AACAP,YAAY,CAACQ,OAAO,CAAC,SAAD,CAAR,EAAqBP,OAArB,CAAZ;;AACAD,YAAY,CAACQ,OAAO,CAAC,0BAAD,CAAR,EAAsCP,OAAtC,CAAZ;;AACAD,YAAY,CAACQ,OAAO,CAAC,qBAAD,CAAR,EAAiCP,OAAjC,CAAZ;;AACAD,YAAY,CAACQ,OAAO,CAAC,+BAAD,CAAR,EAA2CP,OAA3C,CAAZ;;AACAD,YAAY,CAACQ,OAAO,CAAC,eAAD,CAAR,EAA2BP,OAA3B,CAAZ;;AACA,IAAIQ,0BAA0B,GAAGD,OAAO,CAAC,4BAAD,CAAxC;;AACAlB,MAAM,CAACO,cAAP,CAAsBI,OAAtB,EAA+B,yBAA/B,EAA0D;AAAEH,EAAAA,UAAU,EAAE,IAAd;AAAoBC,EAAAA,GAAG,EAAE,eAAY;AAAE,WAAOU,0BAA0B,CAACF,uBAAlC;AAA4D;AAAnG,CAA1D","file":"index.js","sourcesContent":["\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createMultiPartyService = void 0;\n__exportStar(require(\"./types\"), exports);\n__exportStar(require(\"./MediaCapabilitiesUtils\"), exports);\n__exportStar(require(\"./MultiPartyService\"), exports);\n__exportStar(require(\"./MultipartyServiceEventTypes\"), exports);\n__exportStar(require(\"./MediaTracer\"), exports);\nvar MultiPartyServiceFactory_1 = require(\"./MultiPartyServiceFactory\");\nObject.defineProperty(exports, \"createMultiPartyService\", { enumerable: true, get: function () { return MultiPartyServiceFactory_1.createMultiPartyService; } });\n\n//# sourceMappingURL=index.js.map\n"]}
@@ -1,23 +1,29 @@
1
1
  import { Credentials, SessionSettings } from '../types';
2
2
  import { MultiPartyService, SubscriberInfo } from '../MultiPartyService';
3
+ import { VideoTypesEnum } from '../../MediaConstants';
3
4
  export declare class OpentokMultiPartyService extends MultiPartyService {
4
5
  private readonly getParticipantId;
5
- private publisher?;
6
+ private videoPublisher?;
7
+ private screenPublisher?;
8
+ private enableDesktopSharing;
6
9
  private backgroundImageURI;
7
10
  private session?;
8
11
  private subscriberList;
9
- constructor(getParticipantId: (connectionId?: string) => string);
12
+ constructor(getParticipantId: (connectionId?: string, videoType?: string) => string);
10
13
  get ownConnectionId(): string;
11
14
  get subscribers(): SubscriberInfo[];
12
15
  setBackgroundImageURI: (uri: string) => void;
13
- connect: (settings: SessionSettings, credentials: Credentials) => void;
16
+ connect: (sessionSettings: SessionSettings, credentials: Credentials) => void;
14
17
  disconnect: () => void;
15
- takeSnapshot: (connectionId: string) => string | null;
16
- private initPublisher;
18
+ takeSnapshot: (connectionId: string, videoType?: VideoTypesEnum) => string | null;
19
+ private initVideoPublisher;
20
+ isScreenSharingSupported: (isScreenSharingCapabilitiesEnabled?: boolean | undefined) => Promise<boolean>;
21
+ private forwardPublisherEvents;
17
22
  publishAudio: (shouldMute: boolean) => Promise<void>;
18
23
  publishVideo: (shouldPublishVideo: boolean) => Promise<void>;
24
+ publishScreen: () => Promise<void>;
19
25
  switchCamera: () => Promise<void>;
20
- reinitializeStreams: (settings: SessionSettings) => Promise<void>;
26
+ reinitializeStreams: (settings: SessionSettings) => Promise<void[]>;
21
27
  private streamCreatedHandler;
22
28
  private streamDestroyedHandler;
23
29
  private connectionCreatedHandler;
@@ -25,4 +31,5 @@ export declare class OpentokMultiPartyService extends MultiPartyService {
25
31
  private streamPropertyChangedHandler;
26
32
  private sessionDisconnectedHandler;
27
33
  private checkOwnConnection;
34
+ stopScreenPublisher(): void | undefined;
28
35
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/MultiParty/opentok/OpentokMultiPartyService.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,WAAW,EAAE,eAAe,EAAC,MAAM,UAAU,CAAC;AAGtD,OAAO,EAAC,iBAAiB,EAAE,cAAc,EAA4C,MAAM,sBAAsB,CAAC;AAalH,qBAAa,wBAAyB,SAAQ,iBAAiB;IAQ/C,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAP7C,OAAO,CAAC,SAAS,CAAC,CAAmB;IAErC,OAAO,CAAC,kBAAkB,CAA8B;IAExD,OAAO,CAAC,OAAO,CAAC,CAAa;IAC7B,OAAO,CAAC,cAAc,CAA+B;gBAExB,gBAAgB,EAAE,CAAC,YAAY,CAAC,EAAE,MAAM,KAAK,MAAM;IAIhF,IAAW,eAAe,IAAI,MAAM,CAEnC;IAED,IAAW,WAAW,IAAI,cAAc,EAAE,CAEzC;IAEM,qBAAqB,QAAS,MAAM,UAEzC;IAEK,OAAO,aAAc,eAAe,eAAe,WAAW,KAAG,IAAI,CAiC1E;IAEK,UAAU,QAAO,IAAI,CAY1B;IAEK,YAAY,iBAAkB,MAAM,KAAG,MAAM,GAAG,IAAI,CAUzD;IAEF,OAAO,CAAC,aAAa,CA4CnB;IAEK,YAAY,eAAsB,OAAO,KAAG,QAAQ,IAAI,CAAC,CAU9D;IAEK,YAAY,uBAA8B,OAAO,KAAG,QAAQ,IAAI,CAAC,CAUtE;IAEK,YAAY,QAAa,QAAQ,IAAI,CAAC,CAAmC;IAEzE,mBAAmB,aAAoB,eAAe,KAAG,QAAQ,IAAI,CAAC,CAW3E;IAEF,OAAO,CAAC,oBAAoB,CAwC1B;IAEF,OAAO,CAAC,sBAAsB,CAa5B;IAEF,OAAO,CAAC,wBAAwB,CAgB9B;IAEF,OAAO,CAAC,0BAA0B,CAkBhC;IAEF,OAAO,CAAC,4BAA4B,CAelC;IAEF,OAAO,CAAC,0BAA0B,CAEhC;IAEF,OAAO,CAAC,kBAAkB,CACsD;CACnF","file":"OpentokMultiPartyService.d.ts","sourcesContent":["import {getMediaTracer} from '../MediaTracer';\nimport {Credentials, SessionSettings} from '../types';\nimport {MediaCapabilitiesService} from '../MediaCapabilitiesService';\nimport {checkAudioCapabilities, checkVideoCapabilities} from '../MediaCapabilitiesUtils';\nimport {MultiPartyService, SubscriberInfo, maxParticipantsNumber, DEFAULT_AVATAR_URI} from '../MultiPartyService';\nimport {MultiPartyServiceEventTypes} from '../MultipartyServiceEventTypes';\nimport {OpentokPublisher} from './OpentokPublisher';\nimport {createSubscriber} from './OpentokSubscriber';\nimport {decodeClientRole} from '../utils';\nimport {traceError} from './trace';\n\nconst trace = getMediaTracer('Multiparty');\n\ntype OpentokSubscriberInfo = SubscriberInfo & {\n subscriber: OT.Subscriber;\n};\n\nexport class OpentokMultiPartyService extends MultiPartyService {\n private publisher?: OpentokPublisher;\n\n private backgroundImageURI: string = DEFAULT_AVATAR_URI;\n\n private session?: OT.Session;\n private subscriberList: OpentokSubscriberInfo[] = [];\n\n constructor(private readonly getParticipantId: (connectionId?: string) => string) {\n super();\n }\n\n public get ownConnectionId(): string {\n return this.session?.connection?.connectionId || '';\n }\n\n public get subscribers(): SubscriberInfo[] {\n return [...this.subscriberList];\n }\n\n public setBackgroundImageURI = (uri: string) => {\n this.backgroundImageURI = uri || DEFAULT_AVATAR_URI;\n };\n\n public connect = (settings: SessionSettings, credentials: Credentials): void => {\n try {\n this.session = OT.initSession(credentials.apiKey, credentials.sessionId);\n\n this.session.on('connectionCreated', this.connectionCreatedHandler);\n this.session.on('connectionDestroyed', this.connectionDestroyedHandler);\n this.session.on('streamCreated', this.streamCreatedHandler);\n this.session.on('streamDestroyed', this.streamDestroyedHandler);\n this.session.on('streamPropertyChanged', this.streamPropertyChangedHandler);\n this.session.on('sessionDisconnected', this.sessionDisconnectedHandler);\n\n this.session.connect(credentials.token, (error?: any) => {\n if (error) {\n this.session?.off();\n this.session = undefined;\n traceError(error);\n\n this.emit(MultiPartyServiceEventTypes.connectFailed, {\n meta: {err: JSON.stringify(error)}\n });\n\n return;\n }\n\n this.initPublisher(settings);\n });\n } catch (err) {\n trace.error(JSON.stringify(err));\n\n this.emit(MultiPartyServiceEventTypes.connectFailed, {\n meta: {err: JSON.stringify(err)}\n });\n }\n };\n\n public disconnect = (): void => {\n try {\n trace.info('Disconnecting from session');\n\n if (this.session) {\n this.publisher?.destroy();\n this.session.disconnect();\n trace.info('Disconnection from session completed');\n }\n } catch (err) {\n trace.error(JSON.stringify(err));\n }\n };\n\n public takeSnapshot = (connectionId: string): string | null => {\n if (!connectionId) {\n return null;\n }\n\n if (connectionId === this.ownConnectionId) {\n return this.publisher?.getImgData() || null;\n }\n\n return this.subscribers.find((s) => s.connectionId === connectionId)?.subscriber.getImgData() || null;\n };\n\n private initPublisher = async (settings: Readonly<SessionSettings>): Promise<void> => {\n if (!this.session) {\n return;\n }\n\n const canStartWithAudio = await checkAudioCapabilities();\n const canStartWithVideo = await checkVideoCapabilities();\n const capabilitiesService = await MediaCapabilitiesService.getInstance();\n\n if (!canStartWithAudio && !canStartWithVideo) {\n throw new Error('Creating session requires initialized publisher');\n }\n\n const publisherOptions = {\n participantId: this.getParticipantId(this.ownConnectionId),\n backgroundImageURI: this.backgroundImageURI\n };\n\n try {\n this.publisher = new OpentokPublisher(\n {\n ...settings,\n cameraEnabled: settings.cameraEnabled && canStartWithVideo,\n startWithAudioMuted: settings.startWithAudioMuted && canStartWithAudio\n },\n publisherOptions,\n capabilitiesService\n );\n\n // forward publisher events\n this.publisher.on('cameraSourceChanged', (e) =>\n this.emit(MultiPartyServiceEventTypes.cameraSourceChanged, e)\n );\n this.publisher.on('streamCreated', (e) => this.emit(MultiPartyServiceEventTypes.streamCreated, e));\n this.publisher.on('streamDestroyed', (e) => this.emit(MultiPartyServiceEventTypes.streamDestroyed, e));\n this.publisher.on('mediaDeviceAccessDenied', (e) =>\n this.emit(MultiPartyServiceEventTypes.mediaDeviceAccessDenied, e)\n );\n this.publisher.on('videoElementCreated', () => this.emit(MultiPartyServiceEventTypes.videoElementCreated));\n\n this.session.publish(this.publisher.get(), traceError);\n } catch (error) {\n trace.error('could not init publisher');\n }\n };\n\n public publishAudio = async (shouldMute: boolean): Promise<void> => {\n const canPublishAudio = await checkAudioCapabilities();\n\n if (shouldMute && !canPublishAudio) {\n trace.error('could not publish audio');\n\n return;\n }\n\n this.publisher?.publishAudio(shouldMute);\n };\n\n public publishVideo = async (shouldPublishVideo: boolean): Promise<void> => {\n const canPublishVideo = await checkVideoCapabilities();\n\n if (shouldPublishVideo && !canPublishVideo) {\n trace.error('could not publish video');\n\n return;\n }\n\n this.publisher?.publishVideo(shouldPublishVideo);\n };\n\n public switchCamera = async (): Promise<void> => this.publisher?.switchCamera();\n\n public reinitializeStreams = async (settings: SessionSettings): Promise<void> => {\n if (!this.session) {\n return;\n }\n\n this.subscriberList.map((s) => s.subscriber).forEach(this.session?.unsubscribe);\n this.subscriberList = [];\n\n this.publisher?.destroy();\n\n return this.initPublisher(settings);\n };\n\n private streamCreatedHandler = async (event: {stream: OT.Stream}): Promise<void> => {\n trace.info('streamCreatedHandler', event.stream);\n\n const {stream} = event;\n const {connection, hasAudio, hasVideo, videoDimensions} = stream;\n const {connectionId, data} = connection;\n const participantId = this.getParticipantId(connectionId);\n const clientRole = decodeClientRole(data);\n\n if (this.ownConnectionId && stream && connectionId !== this.ownConnectionId) {\n if (this.subscriberList.length < maxParticipantsNumber - 1) {\n const subscriber = createSubscriber(\n this.session!,\n stream,\n this.getParticipantId(connectionId),\n this.backgroundImageURI\n );\n\n this.subscriberList.push({\n subscriber,\n connectionId,\n clientRole\n });\n } else {\n trace.info(\n `a new subscriber cannot be added, as the number of participants reached its limit: ${maxParticipantsNumber}`\n );\n }\n }\n\n this.emit(MultiPartyServiceEventTypes.streamCreated, {\n participantId,\n clientRole,\n connectionId,\n hasVideo,\n hasAudio,\n isOwnConnection: false,\n mirror: false,\n videoDimensions\n });\n };\n\n private streamDestroyedHandler = (event: {stream: OT.Stream; reason: string}): void => {\n trace.info('streamDestroyedHandler', event);\n\n const {connection} = event.stream;\n const {connectionId} = connection;\n\n this.subscriberList = this.subscriberList.filter((subscriber) => subscriber.connectionId !== connectionId);\n this.emit(MultiPartyServiceEventTypes.streamDestroyed, {\n participantId: this.getParticipantId(connectionId),\n connectionId,\n isOwnConnection: false,\n clientRole: decodeClientRole(connection.data)\n });\n };\n\n private connectionCreatedHandler = (event: {connection: OT.Connection}): void => {\n trace.info('connectionCreatedHandler', event);\n\n const {connection} = event;\n const {connectionId} = connection;\n\n if (!this.ownConnectionId || !connection) {\n return;\n }\n\n this.emit(MultiPartyServiceEventTypes.connectionCreated, {\n clientRole: decodeClientRole(connection.data),\n participantId: this.getParticipantId(connectionId),\n connectionId,\n isOwnConnection: this.checkOwnConnection(connectionId)\n });\n };\n\n private connectionDestroyedHandler = (event: {connection: OT.Connection; reason: string}): void => {\n const {connection} = event;\n const {connectionId} = connection;\n\n trace.info('connectionDestroyedHandler', event);\n\n this.emit(MultiPartyServiceEventTypes.connectionDestroyed, {\n clientRole: decodeClientRole(connection.data),\n participantId: this.getParticipantId(connectionId),\n connectionId,\n isOwnConnection: this.checkOwnConnection(connectionId)\n });\n\n if (connectionId !== this.ownConnectionId || !this.ownConnectionId) {\n return;\n }\n\n this.session = undefined;\n };\n\n private streamPropertyChangedHandler = (event: {stream: OT.Stream}): void => {\n trace.info('streamPropertyChangedHandler', event);\n\n const {hasVideo, hasAudio, connection, videoDimensions} = event.stream;\n const {connectionId} = connection;\n\n this.emit(MultiPartyServiceEventTypes.streamPropertyChanged, {\n hasVideo,\n hasAudio,\n participantId: this.getParticipantId(connectionId),\n connectionId: connectionId,\n isOwnConnection: this.checkOwnConnection(connectionId),\n clientRole: decodeClientRole(connection.data),\n videoDimensions\n });\n };\n\n private sessionDisconnectedHandler = (event: unknown) => {\n trace.info('sessionDisconnectedHandler', event);\n };\n\n private checkOwnConnection = (connectionId: string) =>\n this.ownConnectionId !== undefined && this.ownConnectionId === connectionId;\n}\n"]}
1
+ {"version":3,"sources":["../src/MultiParty/opentok/OpentokMultiPartyService.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,WAAW,EAAE,eAAe,EAAC,MAAM,UAAU,CAAC;AAGtD,OAAO,EAA4C,iBAAiB,EAAE,cAAc,EAAC,MAAM,sBAAsB,CAAC;AAOlH,OAAO,EAAC,cAAc,EAAC,MAAM,sBAAsB,CAAC;AAQpD,qBAAa,wBAAyB,SAAQ,iBAAiB;IAU/C,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAT7C,OAAO,CAAC,cAAc,CAAC,CAAwB;IAC/C,OAAO,CAAC,eAAe,CAAC,CAAyB;IACjD,OAAO,CAAC,oBAAoB,CAAkB;IAE9C,OAAO,CAAC,kBAAkB,CAA8B;IAExD,OAAO,CAAC,OAAO,CAAC,CAAa;IAC7B,OAAO,CAAC,cAAc,CAA+B;gBAExB,gBAAgB,EAAE,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,MAAM;IAIpG,IAAW,eAAe,IAAI,MAAM,CAEnC;IAED,IAAW,WAAW,IAAI,cAAc,EAAE,CAEzC;IAEM,qBAAqB,QAAS,MAAM,UAEzC;IAEK,OAAO,oBAAqB,eAAe,eAAe,WAAW,KAAG,IAAI,CAkCjF;IAEK,UAAU,QAAO,IAAI,CAa1B;IAEK,YAAY,iBAAkB,MAAM,iCAAsC,MAAM,GAAG,IAAI,CAkB5F;IAEF,OAAO,CAAC,kBAAkB,CAkCxB;IAEK,wBAAwB,gEAAyD,QAAQ,OAAO,CAAC,CAgBtG;IAEF,OAAO,CAAC,sBAAsB,CAQ5B;IAEK,YAAY,eAAsB,OAAO,KAAG,QAAQ,IAAI,CAAC,CAU9D;IAEK,YAAY,uBAA8B,OAAO,KAAG,QAAQ,IAAI,CAAC,CAUtE;IAEK,aAAa,QAAa,QAAQ,IAAI,CAAC,CAsB5C;IAEK,YAAY,QAAa,QAAQ,IAAI,CAAC,CAAwC;IAE9E,mBAAmB,aAAc,eAAe,KAAG,QAAQ,IAAI,EAAE,CAAC,CAqBvE;IAEF,OAAO,CAAC,oBAAoB,CAyC1B;IAEF,OAAO,CAAC,sBAAsB,CAgB5B;IAEF,OAAO,CAAC,wBAAwB,CAgB9B;IAEF,OAAO,CAAC,0BAA0B,CAkBhC;IAEF,OAAO,CAAC,4BAA4B,CAelC;IAEF,OAAO,CAAC,0BAA0B,CAEhC;IAEF,OAAO,CAAC,kBAAkB,CACsD;IAEzE,mBAAmB,IAAI,IAAI,GAAG,SAAS;CAGjD","file":"OpentokMultiPartyService.d.ts","sourcesContent":["import {getMediaTracer} from '../MediaTracer';\nimport {Credentials, SessionSettings} from '../types';\nimport {MediaCapabilitiesService} from '../MediaCapabilitiesService';\nimport {checkAudioCapabilities, checkIsMobile, checkVideoCapabilities} from '../MediaCapabilitiesUtils';\nimport {DEFAULT_AVATAR_URI, maxParticipantsNumber, MultiPartyService, SubscriberInfo} from '../MultiPartyService';\nimport {MultiPartyServiceEventTypes} from '../MultipartyServiceEventTypes';\nimport {OpentokVideoPublisher} from './OpentokVideoPublisher';\nimport {OpentokScreenPublisher} from './OpentokScreenPublisher';\nimport {createSubscriber} from './OpentokSubscriber';\nimport {decodeClientRole, isSameStream} from '../utils';\nimport {traceError} from './trace';\nimport {VideoTypesEnum} from '../../MediaConstants';\n\nconst trace = getMediaTracer('Multiparty');\n\ntype OpentokSubscriberInfo = SubscriberInfo & {\n subscriber: OT.Subscriber;\n};\n\nexport class OpentokMultiPartyService extends MultiPartyService {\n private videoPublisher?: OpentokVideoPublisher;\n private screenPublisher?: OpentokScreenPublisher;\n private enableDesktopSharing: boolean = false;\n\n private backgroundImageURI: string = DEFAULT_AVATAR_URI;\n\n private session?: OT.Session;\n private subscriberList: OpentokSubscriberInfo[] = [];\n\n constructor(private readonly getParticipantId: (connectionId?: string, videoType?: string) => string) {\n super();\n }\n\n public get ownConnectionId(): string {\n return this.session?.connection?.connectionId || '';\n }\n\n public get subscribers(): SubscriberInfo[] {\n return [...this.subscriberList];\n }\n\n public setBackgroundImageURI = (uri: string) => {\n this.backgroundImageURI = uri || DEFAULT_AVATAR_URI;\n };\n\n public connect = (sessionSettings: SessionSettings, credentials: Credentials): void => {\n try {\n this.session = OT.initSession(credentials.apiKey, credentials.sessionId);\n\n this.session.on('connectionCreated', this.connectionCreatedHandler);\n this.session.on('connectionDestroyed', this.connectionDestroyedHandler);\n this.session.on('streamCreated', this.streamCreatedHandler);\n this.session.on('streamDestroyed', this.streamDestroyedHandler);\n this.session.on('streamPropertyChanged', this.streamPropertyChangedHandler);\n this.session.on('sessionDisconnected', this.sessionDisconnectedHandler);\n\n this.session.connect(credentials.token, (error?: any) => {\n if (error) {\n this.session?.off();\n this.session = undefined;\n traceError(error);\n\n this.emit(MultiPartyServiceEventTypes.connectFailed, {\n meta: {err: JSON.stringify(error)}\n });\n\n return;\n }\n\n this.initVideoPublisher(sessionSettings);\n this.isScreenSharingSupported(sessionSettings.isScreenSharingCapabilitiesEnabled);\n });\n } catch (err) {\n trace.error(JSON.stringify(err));\n\n this.emit(MultiPartyServiceEventTypes.connectFailed, {\n meta: {err: JSON.stringify(err)}\n });\n }\n };\n\n public disconnect = (): void => {\n try {\n trace.info('Disconnecting from session');\n\n if (this.session) {\n this.videoPublisher?.destroy();\n this.screenPublisher?.destroy();\n this.session.disconnect();\n trace.info('Disconnection from session completed');\n }\n } catch (err) {\n trace.error(JSON.stringify(err));\n }\n };\n\n public takeSnapshot = (connectionId: string, videoType = VideoTypesEnum.CAMERA): string | null => {\n if (!connectionId) {\n return null;\n }\n\n if (connectionId === this.ownConnectionId) {\n if (videoType === VideoTypesEnum.CAMERA) {\n return this.videoPublisher?.getImgData() || null;\n }\n\n return this.screenPublisher?.getImgData() || null;\n }\n\n return (\n this.subscribers\n .find((s) => s.connectionId === connectionId && s.videoType === videoType)\n ?.subscriber.getImgData() || null\n );\n };\n\n private initVideoPublisher = async (settings: Readonly<SessionSettings>): Promise<void> => {\n if (!this.session) {\n return;\n }\n\n const canStartWithAudio = await checkAudioCapabilities();\n const canStartWithVideo = await checkVideoCapabilities();\n const capabilitiesService = await MediaCapabilitiesService.getInstance();\n\n if (!canStartWithAudio && !canStartWithVideo) {\n throw new Error('Creating session requires initialized publisher');\n }\n\n const publisherOptions = {\n backgroundImageURI: this.backgroundImageURI,\n participantId: this.getParticipantId(this.ownConnectionId, VideoTypesEnum.CAMERA)\n };\n\n try {\n this.videoPublisher = new OpentokVideoPublisher(\n {\n ...settings.videoSettings,\n cameraEnabled: settings.videoSettings.cameraEnabled && canStartWithVideo,\n startWithAudioMuted: settings.videoSettings.startWithAudioMuted && canStartWithAudio\n },\n publisherOptions,\n capabilitiesService\n );\n\n this.forwardPublisherEvents(this.videoPublisher);\n this.session.publish(this.videoPublisher.get(), traceError);\n } catch (error) {\n trace.error('could not init publisher');\n }\n };\n\n public isScreenSharingSupported = async (isScreenSharingCapabilitiesEnabled?: boolean): Promise<boolean> => {\n if (isScreenSharingCapabilitiesEnabled && !checkIsMobile()) {\n await OT.checkScreenSharingCapability((res) => {\n if (!res.supported || res.extensionRegistered === false) {\n // This browser does not support screen sharing.\n trace.error('no screen sharing support found');\n this.enableDesktopSharing = false;\n } else {\n this.enableDesktopSharing = true;\n }\n });\n } else {\n this.enableDesktopSharing = false;\n }\n\n return Promise.resolve(this.enableDesktopSharing);\n };\n\n private forwardPublisherEvents = (publisher: OpentokVideoPublisher | OpentokScreenPublisher) => {\n publisher.on('cameraSourceChanged', (e) => this.emit(MultiPartyServiceEventTypes.cameraSourceChanged, e));\n publisher.on('streamCreated', (e) => this.emit(MultiPartyServiceEventTypes.streamCreated, e));\n publisher.on('streamDestroyed', (e) => this.emit(MultiPartyServiceEventTypes.streamDestroyed, e));\n publisher.on('mediaDeviceAccessDenied', (e) =>\n this.emit(MultiPartyServiceEventTypes.mediaDeviceAccessDenied, e)\n );\n publisher.on('videoElementCreated', () => this.emit(MultiPartyServiceEventTypes.videoElementCreated));\n };\n\n public publishAudio = async (shouldMute: boolean): Promise<void> => {\n const canPublishAudio = await checkAudioCapabilities();\n\n if (shouldMute && !canPublishAudio) {\n trace.error('could not publish audio');\n\n return;\n }\n\n this.videoPublisher?.publishAudio(shouldMute);\n };\n\n public publishVideo = async (shouldPublishVideo: boolean): Promise<void> => {\n const canPublishVideo = await checkVideoCapabilities();\n\n if (shouldPublishVideo && !canPublishVideo) {\n trace.error('could not publish video');\n\n return;\n }\n\n this.videoPublisher?.publishVideo(shouldPublishVideo);\n };\n\n public publishScreen = async (): Promise<void> => {\n if (this.enableDesktopSharing) {\n const publisherOptions = {\n backgroundImageURI: this.backgroundImageURI\n };\n const capabilitiesService = await MediaCapabilitiesService.getInstance();\n\n try {\n this.screenPublisher = new OpentokScreenPublisher(\n {\n ...publisherOptions,\n participantId: this.getParticipantId(this.ownConnectionId, VideoTypesEnum.SCREEN)\n },\n capabilitiesService\n );\n\n this.forwardPublisherEvents(this.screenPublisher);\n this.screenPublisher && this.session?.publish(this.screenPublisher.get(), traceError);\n } catch (e) {\n trace.error('Failed to publish screen', e);\n }\n }\n };\n\n public switchCamera = async (): Promise<void> => this.videoPublisher?.switchCamera();\n\n public reinitializeStreams = (settings: SessionSettings): Promise<void[]> => {\n const promises: Promise<void>[] = [];\n\n if (!this.session) {\n return Promise.resolve([]);\n }\n\n const shouldPublishScreen = !!this.screenPublisher;\n\n this.subscriberList.map((s) => s.subscriber).forEach(this.session?.unsubscribe);\n this.subscriberList = [];\n\n this.videoPublisher?.destroy();\n this.screenPublisher?.destroy();\n\n promises.push(this.initVideoPublisher(settings));\n if (shouldPublishScreen) {\n promises.push(this.publishScreen());\n }\n\n return Promise.all(promises);\n };\n\n private streamCreatedHandler = async (event: {stream: OT.Stream}): Promise<void> => {\n trace.info('streamCreatedHandler', event.stream);\n const {stream} = event;\n const {connection, hasAudio, hasVideo, videoDimensions, videoType} = stream;\n const {connectionId, data} = connection;\n const participantId = this.getParticipantId(connectionId, videoType);\n const clientRole = decodeClientRole(data);\n\n if (this.ownConnectionId && stream && connectionId !== this.ownConnectionId) {\n if (this.subscriberList.length < maxParticipantsNumber - 1) {\n const subscriber = createSubscriber(\n this.session!,\n stream,\n this.getParticipantId(connectionId, videoType),\n this.backgroundImageURI\n );\n\n this.subscriberList.push({\n subscriber,\n connectionId,\n clientRole,\n videoType: videoType as VideoTypesEnum\n });\n } else {\n trace.info(\n `a new subscriber cannot be added, as the number of participants reached its limit: ${maxParticipantsNumber}`\n );\n }\n }\n\n this.emit(MultiPartyServiceEventTypes.streamCreated, {\n participantId,\n clientRole,\n connectionId,\n hasVideo,\n hasAudio,\n isOwnConnection: false,\n mirror: false,\n videoDimensions,\n videoType: videoType as VideoTypesEnum\n });\n };\n\n private streamDestroyedHandler = (event: {stream: OT.Stream; reason: string}): void => {\n trace.info('streamDestroyedHandler', event);\n\n const {connection, videoType} = event.stream;\n const {connectionId} = connection;\n\n this.subscriberList = this.subscriberList.filter(\n (subscriber) => !isSameStream({...subscriber}, {connectionId, videoType: videoType as VideoTypesEnum})\n );\n this.emit(MultiPartyServiceEventTypes.streamDestroyed, {\n participantId: this.getParticipantId(connectionId, videoType),\n connectionId,\n isOwnConnection: false,\n clientRole: decodeClientRole(connection.data),\n videoType: videoType as VideoTypesEnum\n });\n };\n\n private connectionCreatedHandler = (event: {connection: OT.Connection}): void => {\n trace.info('connectionCreatedHandler', event);\n\n const {connection} = event;\n const {connectionId} = connection;\n\n if (!this.ownConnectionId || !connection) {\n return;\n }\n\n this.emit(MultiPartyServiceEventTypes.connectionCreated, {\n clientRole: decodeClientRole(connection.data),\n participantId: this.getParticipantId(connectionId),\n connectionId,\n isOwnConnection: this.checkOwnConnection(connectionId)\n });\n };\n\n private connectionDestroyedHandler = (event: {connection: OT.Connection; reason: string}): void => {\n const {connection} = event;\n const {connectionId} = connection;\n\n trace.info('connectionDestroyedHandler', event);\n\n this.emit(MultiPartyServiceEventTypes.connectionDestroyed, {\n clientRole: decodeClientRole(connection.data),\n participantId: this.getParticipantId(connectionId),\n connectionId,\n isOwnConnection: this.checkOwnConnection(connectionId)\n });\n\n if (connectionId !== this.ownConnectionId || !this.ownConnectionId) {\n return;\n }\n\n this.session = undefined;\n };\n\n private streamPropertyChangedHandler = (event: {stream: OT.Stream}): void => {\n trace.info('streamPropertyChangedHandler', event);\n\n const {hasVideo, hasAudio, connection, videoDimensions, videoType} = event.stream;\n const {connectionId} = connection;\n\n this.emit(MultiPartyServiceEventTypes.streamPropertyChanged, {\n hasVideo,\n hasAudio,\n participantId: this.getParticipantId(connectionId, videoType),\n connectionId: connectionId,\n isOwnConnection: this.checkOwnConnection(connectionId),\n clientRole: decodeClientRole(connection.data),\n videoDimensions\n });\n };\n\n private sessionDisconnectedHandler = (event: unknown) => {\n trace.info('sessionDisconnectedHandler', event);\n };\n\n private checkOwnConnection = (connectionId: string) =>\n this.ownConnectionId !== undefined && this.ownConnectionId === connectionId;\n\n public stopScreenPublisher(): void | undefined {\n return this.screenPublisher?.destroy();\n }\n}\n"]}