@techsee/techsee-media-service 17.2.0 → 17.4.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.
@@ -3,7 +3,7 @@ import { SessionSettings } from './types';
3
3
  import { TypedEventEmitter } from '@techsee/techsee-common/lib/helpers/TypedEventEmitter';
4
4
  import { SessionClientRole, VideoTypesEnum } from '../MediaConstants';
5
5
  export declare const DEFAULT_AVATAR_URI = "data:image/png;base64,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";
6
- export declare const maxParticipantsNumber = 2;
6
+ export declare const maxParticipantsNumber = 3;
7
7
  export declare type OTError = {
8
8
  name: string;
9
9
  message: string;
@@ -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,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
+ {"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 = 3;\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"]}
@@ -35,7 +35,7 @@ var TypedEventEmitter_1 = require("@techsee/techsee-common/lib/helpers/TypedEven
35
35
 
36
36
 
37
37
  exports.DEFAULT_AVATAR_URI = 'data:image/png;base64,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';
38
- exports.maxParticipantsNumber = 2;
38
+ exports.maxParticipantsNumber = 3;
39
39
 
40
40
  var MultiPartyService =
41
41
  /** @class */
@@ -1 +1 @@
1
- {"version":3,"sources":["MultiParty/MultiPartyService.js"],"names":["__extends","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__","constructor","create","defineProperty","exports","value","MultiPartyService","maxParticipantsNumber","DEFAULT_AVATAR_URI","TypedEventEmitter_1","require","_super","apply","arguments","TypedEventEmitter"],"mappings":"AAAA;;AACA,IAAIA,SAAS,GAAI,UAAQ,SAAKA,SAAd,IAA6B,YAAY;EACrD,IAAIC,cAAa,GAAG,uBAAUC,CAAV,EAAaC,CAAb,EAAgB;IAChCF,cAAa,GAAGG,MAAM,CAACC,cAAP,IACX;MAAEC,SAAS,EAAE;IAAb,aAA6BC,KAA7B,IAAsC,UAAUL,CAAV,EAAaC,CAAb,EAAgB;MAAED,CAAC,CAACI,SAAF,GAAcH,CAAd;IAAkB,CAD/D,IAEZ,UAAUD,CAAV,EAAaC,CAAb,EAAgB;MAAE,KAAK,IAAIK,CAAT,IAAcL,CAAd;QAAiB,IAAIC,MAAM,CAACK,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqCR,CAArC,EAAwCK,CAAxC,CAAJ,EAAgDN,CAAC,CAACM,CAAD,CAAD,GAAOL,CAAC,CAACK,CAAD,CAAR;MAAjE;IAA+E,CAFrG;;IAGA,OAAOP,cAAa,CAACC,CAAD,EAAIC,CAAJ,CAApB;EACH,CALD;;EAMA,OAAO,UAAUD,CAAV,EAAaC,CAAb,EAAgB;IACnBF,cAAa,CAACC,CAAD,EAAIC,CAAJ,CAAb;;IACA,SAASS,EAAT,GAAc;MAAE,KAAKC,WAAL,GAAmBX,CAAnB;IAAuB;;IACvCA,CAAC,CAACO,SAAF,GAAcN,CAAC,KAAK,IAAN,GAAaC,MAAM,CAACU,MAAP,CAAcX,CAAd,CAAb,IAAiCS,EAAE,CAACH,SAAH,GAAeN,CAAC,CAACM,SAAjB,EAA4B,IAAIG,EAAJ,EAA7D,CAAd;EACH,CAJD;AAKH,CAZ2C,EAA5C;;AAaAR,MAAM,CAACW,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;EAAEC,KAAK,EAAE;AAAT,CAA7C;AACAD,OAAO,CAACE,iBAAR,GAA4BF,OAAO,CAACG,qBAAR,GAAgCH,OAAO,CAACI,kBAAR,GAA6B,KAAK,CAA9F;;AACA,IAAIC,mBAAmB,GAAGC,OAAO,CAAC,uDAAD,CAAjC,C,CACA;;;AACAN,OAAO,CAACI,kBAAR,GAA6B,oqLAA7B;AACAJ,OAAO,CAACG,qBAAR,GAAgC,CAAhC;;AACA,IAAID,iBAAiB;AAAG;AAAe,UAAUK,MAAV,EAAkB;EACrDvB,SAAS,CAACkB,iBAAD,EAAoBK,MAApB,CAAT;;EACA,SAASL,iBAAT,GAA6B;IACzB,OAAOK,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACC,KAAP,CAAa,IAAb,EAAmBC,SAAnB,CAAnB,IAAoD,IAA3D;EACH;;EACD,OAAOP,iBAAP;AACH,CANsC,CAMrCG,mBAAmB,CAACK,iBANiB,CAAvC;;AAOAV,OAAO,CAACE,iBAAR,GAA4BA,iBAA5B","file":"MultiPartyService.js","sourcesContent":["\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MultiPartyService = exports.maxParticipantsNumber = exports.DEFAULT_AVATAR_URI = void 0;\nvar TypedEventEmitter_1 = require(\"@techsee/techsee-common/lib/helpers/TypedEventEmitter\");\n// eslint-disable-next-line max-len\nexports.DEFAULT_AVATAR_URI = 'data:image/png;base64,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';\nexports.maxParticipantsNumber = 2;\nvar MultiPartyService = /** @class */ (function (_super) {\n __extends(MultiPartyService, _super);\n function MultiPartyService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return MultiPartyService;\n}(TypedEventEmitter_1.TypedEventEmitter));\nexports.MultiPartyService = MultiPartyService;\n\n//# sourceMappingURL=MultiPartyService.js.map\n"]}
1
+ {"version":3,"sources":["MultiParty/MultiPartyService.js"],"names":["__extends","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__","constructor","create","defineProperty","exports","value","MultiPartyService","maxParticipantsNumber","DEFAULT_AVATAR_URI","TypedEventEmitter_1","require","_super","apply","arguments","TypedEventEmitter"],"mappings":"AAAA;;AACA,IAAIA,SAAS,GAAI,UAAQ,SAAKA,SAAd,IAA6B,YAAY;EACrD,IAAIC,cAAa,GAAG,uBAAUC,CAAV,EAAaC,CAAb,EAAgB;IAChCF,cAAa,GAAGG,MAAM,CAACC,cAAP,IACX;MAAEC,SAAS,EAAE;IAAb,aAA6BC,KAA7B,IAAsC,UAAUL,CAAV,EAAaC,CAAb,EAAgB;MAAED,CAAC,CAACI,SAAF,GAAcH,CAAd;IAAkB,CAD/D,IAEZ,UAAUD,CAAV,EAAaC,CAAb,EAAgB;MAAE,KAAK,IAAIK,CAAT,IAAcL,CAAd;QAAiB,IAAIC,MAAM,CAACK,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqCR,CAArC,EAAwCK,CAAxC,CAAJ,EAAgDN,CAAC,CAACM,CAAD,CAAD,GAAOL,CAAC,CAACK,CAAD,CAAR;MAAjE;IAA+E,CAFrG;;IAGA,OAAOP,cAAa,CAACC,CAAD,EAAIC,CAAJ,CAApB;EACH,CALD;;EAMA,OAAO,UAAUD,CAAV,EAAaC,CAAb,EAAgB;IACnBF,cAAa,CAACC,CAAD,EAAIC,CAAJ,CAAb;;IACA,SAASS,EAAT,GAAc;MAAE,KAAKC,WAAL,GAAmBX,CAAnB;IAAuB;;IACvCA,CAAC,CAACO,SAAF,GAAcN,CAAC,KAAK,IAAN,GAAaC,MAAM,CAACU,MAAP,CAAcX,CAAd,CAAb,IAAiCS,EAAE,CAACH,SAAH,GAAeN,CAAC,CAACM,SAAjB,EAA4B,IAAIG,EAAJ,EAA7D,CAAd;EACH,CAJD;AAKH,CAZ2C,EAA5C;;AAaAR,MAAM,CAACW,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;EAAEC,KAAK,EAAE;AAAT,CAA7C;AACAD,OAAO,CAACE,iBAAR,GAA4BF,OAAO,CAACG,qBAAR,GAAgCH,OAAO,CAACI,kBAAR,GAA6B,KAAK,CAA9F;;AACA,IAAIC,mBAAmB,GAAGC,OAAO,CAAC,uDAAD,CAAjC,C,CACA;;;AACAN,OAAO,CAACI,kBAAR,GAA6B,oqLAA7B;AACAJ,OAAO,CAACG,qBAAR,GAAgC,CAAhC;;AACA,IAAID,iBAAiB;AAAG;AAAe,UAAUK,MAAV,EAAkB;EACrDvB,SAAS,CAACkB,iBAAD,EAAoBK,MAApB,CAAT;;EACA,SAASL,iBAAT,GAA6B;IACzB,OAAOK,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACC,KAAP,CAAa,IAAb,EAAmBC,SAAnB,CAAnB,IAAoD,IAA3D;EACH;;EACD,OAAOP,iBAAP;AACH,CANsC,CAMrCG,mBAAmB,CAACK,iBANiB,CAAvC;;AAOAV,OAAO,CAACE,iBAAR,GAA4BA,iBAA5B","file":"MultiPartyService.js","sourcesContent":["\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MultiPartyService = exports.maxParticipantsNumber = exports.DEFAULT_AVATAR_URI = void 0;\nvar TypedEventEmitter_1 = require(\"@techsee/techsee-common/lib/helpers/TypedEventEmitter\");\n// eslint-disable-next-line max-len\nexports.DEFAULT_AVATAR_URI = 'data:image/png;base64,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';\nexports.maxParticipantsNumber = 3;\nvar MultiPartyService = /** @class */ (function (_super) {\n __extends(MultiPartyService, _super);\n function MultiPartyService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return MultiPartyService;\n}(TypedEventEmitter_1.TypedEventEmitter));\nexports.MultiPartyService = MultiPartyService;\n\n//# sourceMappingURL=MultiPartyService.js.map\n"]}
@@ -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,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"]}
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,CAoC5C;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\n return await new Promise((resolve, reject) => {\n this.screenPublisher &&\n this.session?.publish(this.screenPublisher.get(), (err) => {\n if (err) {\n trace.error('Failed to publish screen', err);\n\n return reject();\n }\n\n return resolve();\n });\n });\n } catch (e) {\n trace.error('Failed to publish screen', e);\n\n return Promise.reject();\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"]}
@@ -521,16 +521,16 @@ function (_super) {
521
521
 
522
522
  _this.publishScreen = function () {
523
523
  return __awaiter(_this, void 0, void 0, function () {
524
- var publisherOptions, capabilitiesService;
524
+ var publisherOptions, capabilitiesService, e_1;
525
525
 
526
- var _a;
526
+ var _this = this;
527
527
 
528
- return __generator(this, function (_b) {
529
- switch (_b.label) {
528
+ return __generator(this, function (_a) {
529
+ switch (_a.label) {
530
530
  case 0:
531
531
  if (!this.enableDesktopSharing) return [3
532
532
  /*break*/
533
- , 2];
533
+ , 5];
534
534
  publisherOptions = {
535
535
  backgroundImageURI: this.backgroundImageURI
536
536
  };
@@ -539,21 +539,44 @@ function (_super) {
539
539
  , MediaCapabilitiesService_1.MediaCapabilitiesService.getInstance()];
540
540
 
541
541
  case 1:
542
- capabilitiesService = _b.sent();
542
+ capabilitiesService = _a.sent();
543
+ _a.label = 2;
543
544
 
544
- try {
545
- this.screenPublisher = new OpentokScreenPublisher_1.OpentokScreenPublisher(__assign(__assign({}, publisherOptions), {
546
- participantId: this.getParticipantId(this.ownConnectionId, MediaConstants_1.VideoTypesEnum.SCREEN)
547
- }), capabilitiesService);
548
- this.forwardPublisherEvents(this.screenPublisher);
549
- this.screenPublisher && ((_a = this.session) === null || _a === void 0 ? void 0 : _a.publish(this.screenPublisher.get(), trace_1.traceError));
550
- } catch (e) {
551
- trace.error('Failed to publish screen', e);
552
- }
545
+ case 2:
546
+ _a.trys.push([2, 4,, 5]);
547
+
548
+ this.screenPublisher = new OpentokScreenPublisher_1.OpentokScreenPublisher(__assign(__assign({}, publisherOptions), {
549
+ participantId: this.getParticipantId(this.ownConnectionId, MediaConstants_1.VideoTypesEnum.SCREEN)
550
+ }), capabilitiesService);
551
+ this.forwardPublisherEvents(this.screenPublisher);
552
+ return [4
553
+ /*yield*/
554
+ , new Promise(function (resolve, reject) {
555
+ var _a;
553
556
 
554
- _b.label = 2;
557
+ _this.screenPublisher && ((_a = _this.session) === null || _a === void 0 ? void 0 : _a.publish(_this.screenPublisher.get(), function (err) {
558
+ if (err) {
559
+ trace.error('Failed to publish screen', err);
560
+ return reject();
561
+ }
555
562
 
556
- case 2:
563
+ return resolve();
564
+ }));
565
+ })];
566
+
567
+ case 3:
568
+ return [2
569
+ /*return*/
570
+ , _a.sent()];
571
+
572
+ case 4:
573
+ e_1 = _a.sent();
574
+ trace.error('Failed to publish screen', e_1);
575
+ return [2
576
+ /*return*/
577
+ , Promise.reject()];
578
+
579
+ case 5:
557
580
  return [2
558
581
  /*return*/
559
582
  ];
@@ -1 +1 @@
1
- {"version":3,"sources":["MultiParty/opentok/OpentokMultiPartyService.js"],"names":["__extends","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__","constructor","create","__assign","assign","t","s","i","n","arguments","length","apply","__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","__generator","body","_","label","sent","trys","ops","f","y","g","verb","Symbol","iterator","v","op","TypeError","pop","push","__spreadArrays","il","r","k","a","j","jl","defineProperty","exports","OpentokMultiPartyService","MediaTracer_1","require","MediaCapabilitiesService_1","MediaCapabilitiesUtils_1","MultiPartyService_1","MultipartyServiceEventTypes_1","OpentokVideoPublisher_1","OpentokScreenPublisher_1","OpentokSubscriber_1","utils_1","trace_1","MediaConstants_1","trace","getMediaTracer","_super","getParticipantId","_this","enableDesktopSharing","backgroundImageURI","DEFAULT_AVATAR_URI","subscriberList","setBackgroundImageURI","uri","connect","sessionSettings","credentials","session","OT","initSession","apiKey","sessionId","on","connectionCreatedHandler","connectionDestroyedHandler","streamCreatedHandler","streamDestroyedHandler","streamPropertyChangedHandler","sessionDisconnectedHandler","token","error","_a","off","undefined","traceError","emit","MultiPartyServiceEventTypes","connectFailed","meta","err","JSON","stringify","initVideoPublisher","isScreenSharingSupported","isScreenSharingCapabilitiesEnabled","disconnect","_b","info","videoPublisher","destroy","screenPublisher","takeSnapshot","connectionId","videoType","_c","VideoTypesEnum","CAMERA","ownConnectionId","getImgData","subscribers","find","subscriber","settings","canStartWithAudio","canStartWithVideo","capabilitiesService","publisherOptions","checkAudioCapabilities","checkVideoCapabilities","MediaCapabilitiesService","getInstance","Error","participantId","OpentokVideoPublisher","videoSettings","cameraEnabled","startWithAudioMuted","forwardPublisherEvents","publish","get","checkIsMobile","checkScreenSharingCapability","res","supported","extensionRegistered","publisher","cameraSourceChanged","streamCreated","streamDestroyed","mediaDeviceAccessDenied","videoElementCreated","publishAudio","shouldMute","canPublishAudio","publishVideo","shouldPublishVideo","canPublishVideo","publishScreen","OpentokScreenPublisher","SCREEN","switchCamera","reinitializeStreams","promises","shouldPublishScreen","map","forEach","unsubscribe","all","event","stream","connection","hasAudio","hasVideo","videoDimensions","data","clientRole","decodeClientRole","maxParticipantsNumber","createSubscriber","isOwnConnection","mirror","filter","isSameStream","connectionCreated","checkOwnConnection","connectionDestroyed","streamPropertyChanged","enumerable","configurable","stopScreenPublisher","MultiPartyService"],"mappings":"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","file":"OpentokMultiPartyService.js","sourcesContent":["\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OpentokMultiPartyService = void 0;\nvar MediaTracer_1 = require(\"../MediaTracer\");\nvar MediaCapabilitiesService_1 = require(\"../MediaCapabilitiesService\");\nvar MediaCapabilitiesUtils_1 = require(\"../MediaCapabilitiesUtils\");\nvar MultiPartyService_1 = require(\"../MultiPartyService\");\nvar MultipartyServiceEventTypes_1 = require(\"../MultipartyServiceEventTypes\");\nvar OpentokVideoPublisher_1 = require(\"./OpentokVideoPublisher\");\nvar OpentokScreenPublisher_1 = require(\"./OpentokScreenPublisher\");\nvar OpentokSubscriber_1 = require(\"./OpentokSubscriber\");\nvar utils_1 = require(\"../utils\");\nvar trace_1 = require(\"./trace\");\nvar MediaConstants_1 = require(\"../../MediaConstants\");\nvar trace = MediaTracer_1.getMediaTracer('Multiparty');\nvar OpentokMultiPartyService = /** @class */ (function (_super) {\n __extends(OpentokMultiPartyService, _super);\n function OpentokMultiPartyService(getParticipantId) {\n var _this = _super.call(this) || this;\n _this.getParticipantId = getParticipantId;\n _this.enableDesktopSharing = false;\n _this.backgroundImageURI = MultiPartyService_1.DEFAULT_AVATAR_URI;\n _this.subscriberList = [];\n _this.setBackgroundImageURI = function (uri) {\n _this.backgroundImageURI = uri || MultiPartyService_1.DEFAULT_AVATAR_URI;\n };\n _this.connect = function (sessionSettings, credentials) {\n try {\n _this.session = OT.initSession(credentials.apiKey, credentials.sessionId);\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 _this.session.connect(credentials.token, function (error) {\n var _a;\n if (error) {\n (_a = _this.session) === null || _a === void 0 ? void 0 : _a.off();\n _this.session = undefined;\n trace_1.traceError(error);\n _this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.connectFailed, {\n meta: { err: JSON.stringify(error) }\n });\n return;\n }\n _this.initVideoPublisher(sessionSettings);\n _this.isScreenSharingSupported(sessionSettings.isScreenSharingCapabilitiesEnabled);\n });\n }\n catch (err) {\n trace.error(JSON.stringify(err));\n _this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.connectFailed, {\n meta: { err: JSON.stringify(err) }\n });\n }\n };\n _this.disconnect = function () {\n var _a, _b;\n try {\n trace.info('Disconnecting from session');\n if (_this.session) {\n (_a = _this.videoPublisher) === null || _a === void 0 ? void 0 : _a.destroy();\n (_b = _this.screenPublisher) === null || _b === void 0 ? void 0 : _b.destroy();\n _this.session.disconnect();\n trace.info('Disconnection from session completed');\n }\n }\n catch (err) {\n trace.error(JSON.stringify(err));\n }\n };\n _this.takeSnapshot = function (connectionId, videoType) {\n var _a, _b, _c;\n if (videoType === void 0) { videoType = MediaConstants_1.VideoTypesEnum.CAMERA; }\n if (!connectionId) {\n return null;\n }\n if (connectionId === _this.ownConnectionId) {\n if (videoType === MediaConstants_1.VideoTypesEnum.CAMERA) {\n return ((_a = _this.videoPublisher) === null || _a === void 0 ? void 0 : _a.getImgData()) || null;\n }\n return ((_b = _this.screenPublisher) === null || _b === void 0 ? void 0 : _b.getImgData()) || null;\n }\n return (((_c = _this.subscribers\n .find(function (s) { return s.connectionId === connectionId && s.videoType === videoType; })) === null || _c === void 0 ? void 0 : _c.subscriber.getImgData()) || null);\n };\n _this.initVideoPublisher = function (settings) { return __awaiter(_this, void 0, void 0, function () {\n var canStartWithAudio, canStartWithVideo, capabilitiesService, publisherOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.session) {\n return [2 /*return*/];\n }\n return [4 /*yield*/, MediaCapabilitiesUtils_1.checkAudioCapabilities()];\n case 1:\n canStartWithAudio = _a.sent();\n return [4 /*yield*/, MediaCapabilitiesUtils_1.checkVideoCapabilities()];\n case 2:\n canStartWithVideo = _a.sent();\n return [4 /*yield*/, MediaCapabilitiesService_1.MediaCapabilitiesService.getInstance()];\n case 3:\n capabilitiesService = _a.sent();\n if (!canStartWithAudio && !canStartWithVideo) {\n throw new Error('Creating session requires initialized publisher');\n }\n publisherOptions = {\n backgroundImageURI: this.backgroundImageURI,\n participantId: this.getParticipantId(this.ownConnectionId, MediaConstants_1.VideoTypesEnum.CAMERA)\n };\n try {\n this.videoPublisher = new OpentokVideoPublisher_1.OpentokVideoPublisher(__assign(__assign({}, settings.videoSettings), { cameraEnabled: settings.videoSettings.cameraEnabled && canStartWithVideo, startWithAudioMuted: settings.videoSettings.startWithAudioMuted && canStartWithAudio }), publisherOptions, capabilitiesService);\n this.forwardPublisherEvents(this.videoPublisher);\n this.session.publish(this.videoPublisher.get(), trace_1.traceError);\n }\n catch (error) {\n trace.error('could not init publisher');\n }\n return [2 /*return*/];\n }\n });\n }); };\n _this.isScreenSharingSupported = function (isScreenSharingCapabilitiesEnabled) { return __awaiter(_this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(isScreenSharingCapabilitiesEnabled && !MediaCapabilitiesUtils_1.checkIsMobile())) return [3 /*break*/, 2];\n return [4 /*yield*/, OT.checkScreenSharingCapability(function (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 }\n else {\n _this.enableDesktopSharing = true;\n }\n })];\n case 1:\n _a.sent();\n return [3 /*break*/, 3];\n case 2:\n this.enableDesktopSharing = false;\n _a.label = 3;\n case 3: return [2 /*return*/, Promise.resolve(this.enableDesktopSharing)];\n }\n });\n }); };\n _this.forwardPublisherEvents = function (publisher) {\n publisher.on('cameraSourceChanged', function (e) { return _this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.cameraSourceChanged, e); });\n publisher.on('streamCreated', function (e) { return _this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.streamCreated, e); });\n publisher.on('streamDestroyed', function (e) { return _this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.streamDestroyed, e); });\n publisher.on('mediaDeviceAccessDenied', function (e) {\n return _this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.mediaDeviceAccessDenied, e);\n });\n publisher.on('videoElementCreated', function () { return _this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.videoElementCreated); });\n };\n _this.publishAudio = function (shouldMute) { return __awaiter(_this, void 0, void 0, function () {\n var canPublishAudio;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, MediaCapabilitiesUtils_1.checkAudioCapabilities()];\n case 1:\n canPublishAudio = _b.sent();\n if (shouldMute && !canPublishAudio) {\n trace.error('could not publish audio');\n return [2 /*return*/];\n }\n (_a = this.videoPublisher) === null || _a === void 0 ? void 0 : _a.publishAudio(shouldMute);\n return [2 /*return*/];\n }\n });\n }); };\n _this.publishVideo = function (shouldPublishVideo) { return __awaiter(_this, void 0, void 0, function () {\n var canPublishVideo;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, MediaCapabilitiesUtils_1.checkVideoCapabilities()];\n case 1:\n canPublishVideo = _b.sent();\n if (shouldPublishVideo && !canPublishVideo) {\n trace.error('could not publish video');\n return [2 /*return*/];\n }\n (_a = this.videoPublisher) === null || _a === void 0 ? void 0 : _a.publishVideo(shouldPublishVideo);\n return [2 /*return*/];\n }\n });\n }); };\n _this.publishScreen = function () { return __awaiter(_this, void 0, void 0, function () {\n var publisherOptions, capabilitiesService;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!this.enableDesktopSharing) return [3 /*break*/, 2];\n publisherOptions = {\n backgroundImageURI: this.backgroundImageURI\n };\n return [4 /*yield*/, MediaCapabilitiesService_1.MediaCapabilitiesService.getInstance()];\n case 1:\n capabilitiesService = _b.sent();\n try {\n this.screenPublisher = new OpentokScreenPublisher_1.OpentokScreenPublisher(__assign(__assign({}, publisherOptions), { participantId: this.getParticipantId(this.ownConnectionId, MediaConstants_1.VideoTypesEnum.SCREEN) }), capabilitiesService);\n this.forwardPublisherEvents(this.screenPublisher);\n this.screenPublisher && ((_a = this.session) === null || _a === void 0 ? void 0 : _a.publish(this.screenPublisher.get(), trace_1.traceError));\n }\n catch (e) {\n trace.error('Failed to publish screen', e);\n }\n _b.label = 2;\n case 2: return [2 /*return*/];\n }\n });\n }); };\n _this.switchCamera = function () { return __awaiter(_this, void 0, void 0, function () { var _a; return __generator(this, function (_b) {\n return [2 /*return*/, (_a = this.videoPublisher) === null || _a === void 0 ? void 0 : _a.switchCamera()];\n }); }); };\n _this.reinitializeStreams = function (settings) {\n var _a, _b, _c;\n var promises = [];\n if (!_this.session) {\n return Promise.resolve([]);\n }\n var shouldPublishScreen = !!_this.screenPublisher;\n _this.subscriberList.map(function (s) { return s.subscriber; }).forEach((_a = _this.session) === null || _a === void 0 ? void 0 : _a.unsubscribe);\n _this.subscriberList = [];\n (_b = _this.videoPublisher) === null || _b === void 0 ? void 0 : _b.destroy();\n (_c = _this.screenPublisher) === null || _c === void 0 ? void 0 : _c.destroy();\n promises.push(_this.initVideoPublisher(settings));\n if (shouldPublishScreen) {\n promises.push(_this.publishScreen());\n }\n return Promise.all(promises);\n };\n _this.streamCreatedHandler = function (event) { return __awaiter(_this, void 0, void 0, function () {\n var stream, connection, hasAudio, hasVideo, videoDimensions, videoType, connectionId, data, participantId, clientRole, subscriber;\n return __generator(this, function (_a) {\n trace.info('streamCreatedHandler', event.stream);\n stream = event.stream;\n connection = stream.connection, hasAudio = stream.hasAudio, hasVideo = stream.hasVideo, videoDimensions = stream.videoDimensions, videoType = stream.videoType;\n connectionId = connection.connectionId, data = connection.data;\n participantId = this.getParticipantId(connectionId, videoType);\n clientRole = utils_1.decodeClientRole(data);\n if (this.ownConnectionId && stream && connectionId !== this.ownConnectionId) {\n if (this.subscriberList.length < MultiPartyService_1.maxParticipantsNumber - 1) {\n subscriber = OpentokSubscriber_1.createSubscriber(this.session, stream, this.getParticipantId(connectionId, videoType), this.backgroundImageURI);\n this.subscriberList.push({\n subscriber: subscriber,\n connectionId: connectionId,\n clientRole: clientRole,\n videoType: videoType\n });\n }\n else {\n trace.info(\"a new subscriber cannot be added, as the number of participants reached its limit: \" + MultiPartyService_1.maxParticipantsNumber);\n }\n }\n this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.streamCreated, {\n participantId: participantId,\n clientRole: clientRole,\n connectionId: connectionId,\n hasVideo: hasVideo,\n hasAudio: hasAudio,\n isOwnConnection: false,\n mirror: false,\n videoDimensions: videoDimensions,\n videoType: videoType\n });\n return [2 /*return*/];\n });\n }); };\n _this.streamDestroyedHandler = function (event) {\n trace.info('streamDestroyedHandler', event);\n var _a = event.stream, connection = _a.connection, videoType = _a.videoType;\n var connectionId = connection.connectionId;\n _this.subscriberList = _this.subscriberList.filter(function (subscriber) { return !utils_1.isSameStream(__assign({}, subscriber), { connectionId: connectionId, videoType: videoType }); });\n _this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.streamDestroyed, {\n participantId: _this.getParticipantId(connectionId, videoType),\n connectionId: connectionId,\n isOwnConnection: false,\n clientRole: utils_1.decodeClientRole(connection.data),\n videoType: videoType\n });\n };\n _this.connectionCreatedHandler = function (event) {\n trace.info('connectionCreatedHandler', event);\n var connection = event.connection;\n var connectionId = connection.connectionId;\n if (!_this.ownConnectionId || !connection) {\n return;\n }\n _this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.connectionCreated, {\n clientRole: utils_1.decodeClientRole(connection.data),\n participantId: _this.getParticipantId(connectionId),\n connectionId: connectionId,\n isOwnConnection: _this.checkOwnConnection(connectionId)\n });\n };\n _this.connectionDestroyedHandler = function (event) {\n var connection = event.connection;\n var connectionId = connection.connectionId;\n trace.info('connectionDestroyedHandler', event);\n _this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.connectionDestroyed, {\n clientRole: utils_1.decodeClientRole(connection.data),\n participantId: _this.getParticipantId(connectionId),\n connectionId: connectionId,\n isOwnConnection: _this.checkOwnConnection(connectionId)\n });\n if (connectionId !== _this.ownConnectionId || !_this.ownConnectionId) {\n return;\n }\n _this.session = undefined;\n };\n _this.streamPropertyChangedHandler = function (event) {\n trace.info('streamPropertyChangedHandler', event);\n var _a = event.stream, hasVideo = _a.hasVideo, hasAudio = _a.hasAudio, connection = _a.connection, videoDimensions = _a.videoDimensions, videoType = _a.videoType;\n var connectionId = connection.connectionId;\n _this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.streamPropertyChanged, {\n hasVideo: hasVideo,\n hasAudio: hasAudio,\n participantId: _this.getParticipantId(connectionId, videoType),\n connectionId: connectionId,\n isOwnConnection: _this.checkOwnConnection(connectionId),\n clientRole: utils_1.decodeClientRole(connection.data),\n videoDimensions: videoDimensions\n });\n };\n _this.sessionDisconnectedHandler = function (event) {\n trace.info('sessionDisconnectedHandler', event);\n };\n _this.checkOwnConnection = function (connectionId) {\n return _this.ownConnectionId !== undefined && _this.ownConnectionId === connectionId;\n };\n return _this;\n }\n Object.defineProperty(OpentokMultiPartyService.prototype, \"ownConnectionId\", {\n get: function () {\n var _a, _b;\n return ((_b = (_a = this.session) === null || _a === void 0 ? void 0 : _a.connection) === null || _b === void 0 ? void 0 : _b.connectionId) || '';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(OpentokMultiPartyService.prototype, \"subscribers\", {\n get: function () {\n return __spreadArrays(this.subscriberList);\n },\n enumerable: false,\n configurable: true\n });\n OpentokMultiPartyService.prototype.stopScreenPublisher = function () {\n var _a;\n return (_a = this.screenPublisher) === null || _a === void 0 ? void 0 : _a.destroy();\n };\n return OpentokMultiPartyService;\n}(MultiPartyService_1.MultiPartyService));\nexports.OpentokMultiPartyService = OpentokMultiPartyService;\n\n//# sourceMappingURL=OpentokMultiPartyService.js.map\n"]}
1
+ {"version":3,"sources":["MultiParty/opentok/OpentokMultiPartyService.js"],"names":["__extends","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__","constructor","create","__assign","assign","t","s","i","n","arguments","length","apply","__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","__generator","body","_","label","sent","trys","ops","f","y","g","verb","Symbol","iterator","v","op","TypeError","pop","push","__spreadArrays","il","r","k","a","j","jl","defineProperty","exports","OpentokMultiPartyService","MediaTracer_1","require","MediaCapabilitiesService_1","MediaCapabilitiesUtils_1","MultiPartyService_1","MultipartyServiceEventTypes_1","OpentokVideoPublisher_1","OpentokScreenPublisher_1","OpentokSubscriber_1","utils_1","trace_1","MediaConstants_1","trace","getMediaTracer","_super","getParticipantId","_this","enableDesktopSharing","backgroundImageURI","DEFAULT_AVATAR_URI","subscriberList","setBackgroundImageURI","uri","connect","sessionSettings","credentials","session","OT","initSession","apiKey","sessionId","on","connectionCreatedHandler","connectionDestroyedHandler","streamCreatedHandler","streamDestroyedHandler","streamPropertyChangedHandler","sessionDisconnectedHandler","token","error","_a","off","undefined","traceError","emit","MultiPartyServiceEventTypes","connectFailed","meta","err","JSON","stringify","initVideoPublisher","isScreenSharingSupported","isScreenSharingCapabilitiesEnabled","disconnect","_b","info","videoPublisher","destroy","screenPublisher","takeSnapshot","connectionId","videoType","_c","VideoTypesEnum","CAMERA","ownConnectionId","getImgData","subscribers","find","subscriber","settings","canStartWithAudio","canStartWithVideo","capabilitiesService","publisherOptions","checkAudioCapabilities","checkVideoCapabilities","MediaCapabilitiesService","getInstance","Error","participantId","OpentokVideoPublisher","videoSettings","cameraEnabled","startWithAudioMuted","forwardPublisherEvents","publish","get","checkIsMobile","checkScreenSharingCapability","res","supported","extensionRegistered","publisher","cameraSourceChanged","streamCreated","streamDestroyed","mediaDeviceAccessDenied","videoElementCreated","publishAudio","shouldMute","canPublishAudio","publishVideo","shouldPublishVideo","canPublishVideo","publishScreen","e_1","OpentokScreenPublisher","SCREEN","switchCamera","reinitializeStreams","promises","shouldPublishScreen","map","forEach","unsubscribe","all","event","stream","connection","hasAudio","hasVideo","videoDimensions","data","clientRole","decodeClientRole","maxParticipantsNumber","createSubscriber","isOwnConnection","mirror","filter","isSameStream","connectionCreated","checkOwnConnection","connectionDestroyed","streamPropertyChanged","enumerable","configurable","stopScreenPublisher","MultiPartyService"],"mappings":"AAAA;;AACA,IAAIA,SAAS,GAAI,UAAQ,SAAKA,SAAd,IAA6B,YAAY;EACrD,IAAIC,cAAa,GAAG,uBAAUC,CAAV,EAAaC,CAAb,EAAgB;IAChCF,cAAa,GAAGG,MAAM,CAACC,cAAP,IACX;MAAEC,SAAS,EAAE;IAAb,aAA6BC,KAA7B,IAAsC,UAAUL,CAAV,EAAaC,CAAb,EAAgB;MAAED,CAAC,CAACI,SAAF,GAAcH,CAAd;IAAkB,CAD/D,IAEZ,UAAUD,CAAV,EAAaC,CAAb,EAAgB;MAAE,KAAK,IAAIK,CAAT,IAAcL,CAAd;QAAiB,IAAIC,MAAM,CAACK,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqCR,CAArC,EAAwCK,CAAxC,CAAJ,EAAgDN,CAAC,CAACM,CAAD,CAAD,GAAOL,CAAC,CAACK,CAAD,CAAR;MAAjE;IAA+E,CAFrG;;IAGA,OAAOP,cAAa,CAACC,CAAD,EAAIC,CAAJ,CAApB;EACH,CALD;;EAMA,OAAO,UAAUD,CAAV,EAAaC,CAAb,EAAgB;IACnBF,cAAa,CAACC,CAAD,EAAIC,CAAJ,CAAb;;IACA,SAASS,EAAT,GAAc;MAAE,KAAKC,WAAL,GAAmBX,CAAnB;IAAuB;;IACvCA,CAAC,CAACO,SAAF,GAAcN,CAAC,KAAK,IAAN,GAAaC,MAAM,CAACU,MAAP,CAAcX,CAAd,CAAb,IAAiCS,EAAE,CAACH,SAAH,GAAeN,CAAC,CAACM,SAAjB,EAA4B,IAAIG,EAAJ,EAA7D,CAAd;EACH,CAJD;AAKH,CAZ2C,EAA5C;;AAaA,IAAIG,QAAQ,GAAI,UAAQ,SAAKA,QAAd,IAA2B,YAAY;EAClDA,QAAQ,GAAGX,MAAM,CAACY,MAAP,IAAiB,UAASC,CAAT,EAAY;IACpC,KAAK,IAAIC,CAAJ,EAAOC,CAAC,GAAG,CAAX,EAAcC,CAAC,GAAGC,SAAS,CAACC,MAAjC,EAAyCH,CAAC,GAAGC,CAA7C,EAAgDD,CAAC,EAAjD,EAAqD;MACjDD,CAAC,GAAGG,SAAS,CAACF,CAAD,CAAb;;MACA,KAAK,IAAIX,CAAT,IAAcU,CAAd;QAAiB,IAAId,MAAM,CAACK,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqCO,CAArC,EAAwCV,CAAxC,CAAJ,EACbS,CAAC,CAACT,CAAD,CAAD,GAAOU,CAAC,CAACV,CAAD,CAAR;MADJ;IAEH;;IACD,OAAOS,CAAP;EACH,CAPD;;EAQA,OAAOF,QAAQ,CAACQ,KAAT,CAAe,IAAf,EAAqBF,SAArB,CAAP;AACH,CAVD;;AAWA,IAAIG,SAAS,GAAI,UAAQ,SAAKA,SAAd,IAA4B,UAAUC,OAAV,EAAmBC,UAAnB,EAA+BC,CAA/B,EAAkCC,SAAlC,EAA6C;EACrF,SAASC,KAAT,CAAeC,KAAf,EAAsB;IAAE,OAAOA,KAAK,YAAYH,CAAjB,GAAqBG,KAArB,GAA6B,IAAIH,CAAJ,CAAM,UAAUI,OAAV,EAAmB;MAAEA,OAAO,CAACD,KAAD,CAAP;IAAiB,CAA5C,CAApC;EAAoF;;EAC5G,OAAO,KAAKH,CAAC,KAAKA,CAAC,GAAGK,OAAT,CAAN,EAAyB,UAAUD,OAAV,EAAmBE,MAAnB,EAA2B;IACvD,SAASC,SAAT,CAAmBJ,KAAnB,EAA0B;MAAE,IAAI;QAAEK,IAAI,CAACP,SAAS,CAACQ,IAAV,CAAeN,KAAf,CAAD,CAAJ;MAA8B,CAApC,CAAqC,OAAOO,CAAP,EAAU;QAAEJ,MAAM,CAACI,CAAD,CAAN;MAAY;IAAE;;IAC3F,SAASC,QAAT,CAAkBR,KAAlB,EAAyB;MAAE,IAAI;QAAEK,IAAI,CAACP,SAAS,CAAC,OAAD,CAAT,CAAmBE,KAAnB,CAAD,CAAJ;MAAkC,CAAxC,CAAyC,OAAOO,CAAP,EAAU;QAAEJ,MAAM,CAACI,CAAD,CAAN;MAAY;IAAE;;IAC9F,SAASF,IAAT,CAAcI,MAAd,EAAsB;MAAEA,MAAM,CAACC,IAAP,GAAcT,OAAO,CAACQ,MAAM,CAACT,KAAR,CAArB,GAAsCD,KAAK,CAACU,MAAM,CAACT,KAAR,CAAL,CAAoBW,IAApB,CAAyBP,SAAzB,EAAoCI,QAApC,CAAtC;IAAsF;;IAC9GH,IAAI,CAAC,CAACP,SAAS,GAAGA,SAAS,CAACL,KAAV,CAAgBE,OAAhB,EAAyBC,UAAU,IAAI,EAAvC,CAAb,EAAyDU,IAAzD,EAAD,CAAJ;EACH,CALM,CAAP;AAMH,CARD;;AASA,IAAIM,WAAW,GAAI,UAAQ,SAAKA,WAAd,IAA8B,UAAUjB,OAAV,EAAmBkB,IAAnB,EAAyB;EACrE,IAAIC,CAAC,GAAG;IAAEC,KAAK,EAAE,CAAT;IAAYC,IAAI,EAAE,gBAAW;MAAE,IAAI7B,CAAC,CAAC,CAAD,CAAD,GAAO,CAAX,EAAc,MAAMA,CAAC,CAAC,CAAD,CAAP;MAAY,OAAOA,CAAC,CAAC,CAAD,CAAR;IAAc,CAAvE;IAAyE8B,IAAI,EAAE,EAA/E;IAAmFC,GAAG,EAAE;EAAxF,CAAR;EAAA,IAAsGC,CAAtG;EAAA,IAAyGC,CAAzG;EAAA,IAA4GjC,CAA5G;EAAA,IAA+GkC,CAA/G;EACA,OAAOA,CAAC,GAAG;IAAEf,IAAI,EAAEgB,IAAI,CAAC,CAAD,CAAZ;IAAiB,SAASA,IAAI,CAAC,CAAD,CAA9B;IAAmC,UAAUA,IAAI,CAAC,CAAD;EAAjD,CAAJ,EAA4D,OAAOC,MAAP,KAAkB,UAAlB,KAAiCF,CAAC,CAACE,MAAM,CAACC,QAAR,CAAD,GAAqB,YAAW;IAAE,OAAO,IAAP;EAAc,CAAjF,CAA5D,EAAgJH,CAAvJ;;EACA,SAASC,IAAT,CAAchC,CAAd,EAAiB;IAAE,OAAO,UAAUmC,CAAV,EAAa;MAAE,OAAOpB,IAAI,CAAC,CAACf,CAAD,EAAImC,CAAJ,CAAD,CAAX;IAAsB,CAA5C;EAA+C;;EAClE,SAASpB,IAAT,CAAcqB,EAAd,EAAkB;IACd,IAAIP,CAAJ,EAAO,MAAM,IAAIQ,SAAJ,CAAc,iCAAd,CAAN;;IACP,OAAOb,CAAP;MAAU,IAAI;QACV,IAAIK,CAAC,GAAG,CAAJ,EAAOC,CAAC,KAAKjC,CAAC,GAAGuC,EAAE,CAAC,CAAD,CAAF,GAAQ,CAAR,GAAYN,CAAC,CAAC,QAAD,CAAb,GAA0BM,EAAE,CAAC,CAAD,CAAF,GAAQN,CAAC,CAAC,OAAD,CAAD,KAAe,CAACjC,CAAC,GAAGiC,CAAC,CAAC,QAAD,CAAN,KAAqBjC,CAAC,CAACN,IAAF,CAAOuC,CAAP,CAArB,EAAgC,CAA/C,CAAR,GAA4DA,CAAC,CAACd,IAAjG,CAAD,IAA2G,CAAC,CAACnB,CAAC,GAAGA,CAAC,CAACN,IAAF,CAAOuC,CAAP,EAAUM,EAAE,CAAC,CAAD,CAAZ,CAAL,EAAuBhB,IAA9I,EAAoJ,OAAOvB,CAAP;QACpJ,IAAIiC,CAAC,GAAG,CAAJ,EAAOjC,CAAX,EAAcuC,EAAE,GAAG,CAACA,EAAE,CAAC,CAAD,CAAF,GAAQ,CAAT,EAAYvC,CAAC,CAACa,KAAd,CAAL;;QACd,QAAQ0B,EAAE,CAAC,CAAD,CAAV;UACI,KAAK,CAAL;UAAQ,KAAK,CAAL;YAAQvC,CAAC,GAAGuC,EAAJ;YAAQ;;UACxB,KAAK,CAAL;YAAQZ,CAAC,CAACC,KAAF;YAAW,OAAO;cAAEf,KAAK,EAAE0B,EAAE,CAAC,CAAD,CAAX;cAAgBhB,IAAI,EAAE;YAAtB,CAAP;;UACnB,KAAK,CAAL;YAAQI,CAAC,CAACC,KAAF;YAAWK,CAAC,GAAGM,EAAE,CAAC,CAAD,CAAN;YAAWA,EAAE,GAAG,CAAC,CAAD,CAAL;YAAU;;UACxC,KAAK,CAAL;YAAQA,EAAE,GAAGZ,CAAC,CAACI,GAAF,CAAMU,GAAN,EAAL;;YAAkBd,CAAC,CAACG,IAAF,CAAOW,GAAP;;YAAc;;UACxC;YACI,IAAI,EAAEzC,CAAC,GAAG2B,CAAC,CAACG,IAAN,EAAY9B,CAAC,GAAGA,CAAC,CAACK,MAAF,GAAW,CAAX,IAAgBL,CAAC,CAACA,CAAC,CAACK,MAAF,GAAW,CAAZ,CAAnC,MAAuDkC,EAAE,CAAC,CAAD,CAAF,KAAU,CAAV,IAAeA,EAAE,CAAC,CAAD,CAAF,KAAU,CAAhF,CAAJ,EAAwF;cAAEZ,CAAC,GAAG,CAAJ;cAAO;YAAW;;YAC5G,IAAIY,EAAE,CAAC,CAAD,CAAF,KAAU,CAAV,KAAgB,CAACvC,CAAD,IAAOuC,EAAE,CAAC,CAAD,CAAF,GAAQvC,CAAC,CAAC,CAAD,CAAT,IAAgBuC,EAAE,CAAC,CAAD,CAAF,GAAQvC,CAAC,CAAC,CAAD,CAAhD,CAAJ,EAA2D;cAAE2B,CAAC,CAACC,KAAF,GAAUW,EAAE,CAAC,CAAD,CAAZ;cAAiB;YAAQ;;YACtF,IAAIA,EAAE,CAAC,CAAD,CAAF,KAAU,CAAV,IAAeZ,CAAC,CAACC,KAAF,GAAU5B,CAAC,CAAC,CAAD,CAA9B,EAAmC;cAAE2B,CAAC,CAACC,KAAF,GAAU5B,CAAC,CAAC,CAAD,CAAX;cAAgBA,CAAC,GAAGuC,EAAJ;cAAQ;YAAQ;;YACrE,IAAIvC,CAAC,IAAI2B,CAAC,CAACC,KAAF,GAAU5B,CAAC,CAAC,CAAD,CAApB,EAAyB;cAAE2B,CAAC,CAACC,KAAF,GAAU5B,CAAC,CAAC,CAAD,CAAX;;cAAgB2B,CAAC,CAACI,GAAF,CAAMW,IAAN,CAAWH,EAAX;;cAAgB;YAAQ;;YACnE,IAAIvC,CAAC,CAAC,CAAD,CAAL,EAAU2B,CAAC,CAACI,GAAF,CAAMU,GAAN;;YACVd,CAAC,CAACG,IAAF,CAAOW,GAAP;;YAAc;QAXtB;;QAaAF,EAAE,GAAGb,IAAI,CAAChC,IAAL,CAAUc,OAAV,EAAmBmB,CAAnB,CAAL;MACH,CAjBS,CAiBR,OAAOP,CAAP,EAAU;QAAEmB,EAAE,GAAG,CAAC,CAAD,EAAInB,CAAJ,CAAL;QAAaa,CAAC,GAAG,CAAJ;MAAQ,CAjBzB,SAiBkC;QAAED,CAAC,GAAGhC,CAAC,GAAG,CAAR;MAAY;IAjB1D;;IAkBA,IAAIuC,EAAE,CAAC,CAAD,CAAF,GAAQ,CAAZ,EAAe,MAAMA,EAAE,CAAC,CAAD,CAAR;IAAa,OAAO;MAAE1B,KAAK,EAAE0B,EAAE,CAAC,CAAD,CAAF,GAAQA,EAAE,CAAC,CAAD,CAAV,GAAgB,KAAK,CAA9B;MAAiChB,IAAI,EAAE;IAAvC,CAAP;EAC/B;AACJ,CA1BD;;AA2BA,IAAIoB,cAAc,GAAI,UAAQ,SAAKA,cAAd,IAAiC,YAAY;EAC9D,KAAK,IAAI1C,CAAC,GAAG,CAAR,EAAWC,CAAC,GAAG,CAAf,EAAkB0C,EAAE,GAAGxC,SAAS,CAACC,MAAtC,EAA8CH,CAAC,GAAG0C,EAAlD,EAAsD1C,CAAC,EAAvD;IAA2DD,CAAC,IAAIG,SAAS,CAACF,CAAD,CAAT,CAAaG,MAAlB;EAA3D;;EACA,KAAK,IAAIwC,CAAC,GAAGvD,KAAK,CAACW,CAAD,CAAb,EAAkB6C,CAAC,GAAG,CAAtB,EAAyB5C,CAAC,GAAG,CAAlC,EAAqCA,CAAC,GAAG0C,EAAzC,EAA6C1C,CAAC,EAA9C;IACI,KAAK,IAAI6C,CAAC,GAAG3C,SAAS,CAACF,CAAD,CAAjB,EAAsB8C,CAAC,GAAG,CAA1B,EAA6BC,EAAE,GAAGF,CAAC,CAAC1C,MAAzC,EAAiD2C,CAAC,GAAGC,EAArD,EAAyDD,CAAC,IAAIF,CAAC,EAA/D;MACID,CAAC,CAACC,CAAD,CAAD,GAAOC,CAAC,CAACC,CAAD,CAAR;IADJ;EADJ;;EAGA,OAAOH,CAAP;AACH,CAND;;AAOA1D,MAAM,CAAC+D,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;EAAEtC,KAAK,EAAE;AAAT,CAA7C;AACAsC,OAAO,CAACC,wBAAR,GAAmC,KAAK,CAAxC;;AACA,IAAIC,aAAa,GAAGC,OAAO,CAAC,gBAAD,CAA3B;;AACA,IAAIC,0BAA0B,GAAGD,OAAO,CAAC,6BAAD,CAAxC;;AACA,IAAIE,wBAAwB,GAAGF,OAAO,CAAC,2BAAD,CAAtC;;AACA,IAAIG,mBAAmB,GAAGH,OAAO,CAAC,sBAAD,CAAjC;;AACA,IAAII,6BAA6B,GAAGJ,OAAO,CAAC,gCAAD,CAA3C;;AACA,IAAIK,uBAAuB,GAAGL,OAAO,CAAC,yBAAD,CAArC;;AACA,IAAIM,wBAAwB,GAAGN,OAAO,CAAC,0BAAD,CAAtC;;AACA,IAAIO,mBAAmB,GAAGP,OAAO,CAAC,qBAAD,CAAjC;;AACA,IAAIQ,OAAO,GAAGR,OAAO,CAAC,UAAD,CAArB;;AACA,IAAIS,OAAO,GAAGT,OAAO,CAAC,SAAD,CAArB;;AACA,IAAIU,gBAAgB,GAAGV,OAAO,CAAC,sBAAD,CAA9B;;AACA,IAAIW,KAAK,GAAGZ,aAAa,CAACa,cAAd,CAA6B,YAA7B,CAAZ;;AACA,IAAId,wBAAwB;AAAG;AAAe,UAAUe,MAAV,EAAkB;EAC5DpF,SAAS,CAACqE,wBAAD,EAA2Be,MAA3B,CAAT;;EACA,SAASf,wBAAT,CAAkCgB,gBAAlC,EAAoD;IAChD,IAAIC,KAAK,GAAGF,MAAM,CAACzE,IAAP,CAAY,IAAZ,KAAqB,IAAjC;;IACA2E,KAAK,CAACD,gBAAN,GAAyBA,gBAAzB;IACAC,KAAK,CAACC,oBAAN,GAA6B,KAA7B;IACAD,KAAK,CAACE,kBAAN,GAA2Bd,mBAAmB,CAACe,kBAA/C;IACAH,KAAK,CAACI,cAAN,GAAuB,EAAvB;;IACAJ,KAAK,CAACK,qBAAN,GAA8B,UAAUC,GAAV,EAAe;MACzCN,KAAK,CAACE,kBAAN,GAA2BI,GAAG,IAAIlB,mBAAmB,CAACe,kBAAtD;IACH,CAFD;;IAGAH,KAAK,CAACO,OAAN,GAAgB,UAAUC,eAAV,EAA2BC,WAA3B,EAAwC;MACpD,IAAI;QACAT,KAAK,CAACU,OAAN,GAAgBC,EAAE,CAACC,WAAH,CAAeH,WAAW,CAACI,MAA3B,EAAmCJ,WAAW,CAACK,SAA/C,CAAhB;;QACAd,KAAK,CAACU,OAAN,CAAcK,EAAd,CAAiB,mBAAjB,EAAsCf,KAAK,CAACgB,wBAA5C;;QACAhB,KAAK,CAACU,OAAN,CAAcK,EAAd,CAAiB,qBAAjB,EAAwCf,KAAK,CAACiB,0BAA9C;;QACAjB,KAAK,CAACU,OAAN,CAAcK,EAAd,CAAiB,eAAjB,EAAkCf,KAAK,CAACkB,oBAAxC;;QACAlB,KAAK,CAACU,OAAN,CAAcK,EAAd,CAAiB,iBAAjB,EAAoCf,KAAK,CAACmB,sBAA1C;;QACAnB,KAAK,CAACU,OAAN,CAAcK,EAAd,CAAiB,uBAAjB,EAA0Cf,KAAK,CAACoB,4BAAhD;;QACApB,KAAK,CAACU,OAAN,CAAcK,EAAd,CAAiB,qBAAjB,EAAwCf,KAAK,CAACqB,0BAA9C;;QACArB,KAAK,CAACU,OAAN,CAAcH,OAAd,CAAsBE,WAAW,CAACa,KAAlC,EAAyC,UAAUC,KAAV,EAAiB;UACtD,IAAIC,EAAJ;;UACA,IAAID,KAAJ,EAAW;YACP,CAACC,EAAE,GAAGxB,KAAK,CAACU,OAAZ,MAAyB,IAAzB,IAAiCc,EAAE,KAAK,KAAK,CAA7C,GAAiD,KAAK,CAAtD,GAA0DA,EAAE,CAACC,GAAH,EAA1D;YACAzB,KAAK,CAACU,OAAN,GAAgBgB,SAAhB;YACAhC,OAAO,CAACiC,UAAR,CAAmBJ,KAAnB;;YACAvB,KAAK,CAAC4B,IAAN,CAAWvC,6BAA6B,CAACwC,2BAA9B,CAA0DC,aAArE,EAAoF;cAChFC,IAAI,EAAE;gBAAEC,GAAG,EAAEC,IAAI,CAACC,SAAL,CAAeX,KAAf;cAAP;YAD0E,CAApF;;YAGA;UACH;;UACDvB,KAAK,CAACmC,kBAAN,CAAyB3B,eAAzB;;UACAR,KAAK,CAACoC,wBAAN,CAA+B5B,eAAe,CAAC6B,kCAA/C;QACH,CAbD;MAcH,CAtBD,CAuBA,OAAOL,GAAP,EAAY;QACRpC,KAAK,CAAC2B,KAAN,CAAYU,IAAI,CAACC,SAAL,CAAeF,GAAf,CAAZ;;QACAhC,KAAK,CAAC4B,IAAN,CAAWvC,6BAA6B,CAACwC,2BAA9B,CAA0DC,aAArE,EAAoF;UAChFC,IAAI,EAAE;YAAEC,GAAG,EAAEC,IAAI,CAACC,SAAL,CAAeF,GAAf;UAAP;QAD0E,CAApF;MAGH;IACJ,CA9BD;;IA+BAhC,KAAK,CAACsC,UAAN,GAAmB,YAAY;MAC3B,IAAId,EAAJ,EAAQe,EAAR;;MACA,IAAI;QACA3C,KAAK,CAAC4C,IAAN,CAAW,4BAAX;;QACA,IAAIxC,KAAK,CAACU,OAAV,EAAmB;UACf,CAACc,EAAE,GAAGxB,KAAK,CAACyC,cAAZ,MAAgC,IAAhC,IAAwCjB,EAAE,KAAK,KAAK,CAApD,GAAwD,KAAK,CAA7D,GAAiEA,EAAE,CAACkB,OAAH,EAAjE;UACA,CAACH,EAAE,GAAGvC,KAAK,CAAC2C,eAAZ,MAAiC,IAAjC,IAAyCJ,EAAE,KAAK,KAAK,CAArD,GAAyD,KAAK,CAA9D,GAAkEA,EAAE,CAACG,OAAH,EAAlE;;UACA1C,KAAK,CAACU,OAAN,CAAc4B,UAAd;;UACA1C,KAAK,CAAC4C,IAAN,CAAW,sCAAX;QACH;MACJ,CARD,CASA,OAAOR,GAAP,EAAY;QACRpC,KAAK,CAAC2B,KAAN,CAAYU,IAAI,CAACC,SAAL,CAAeF,GAAf,CAAZ;MACH;IACJ,CAdD;;IAeAhC,KAAK,CAAC4C,YAAN,GAAqB,UAAUC,YAAV,EAAwBC,SAAxB,EAAmC;MACpD,IAAItB,EAAJ,EAAQe,EAAR,EAAYQ,EAAZ;;MACA,IAAID,SAAS,KAAK,KAAK,CAAvB,EAA0B;QAAEA,SAAS,GAAGnD,gBAAgB,CAACqD,cAAjB,CAAgCC,MAA5C;MAAqD;;MACjF,IAAI,CAACJ,YAAL,EAAmB;QACf,OAAO,IAAP;MACH;;MACD,IAAIA,YAAY,KAAK7C,KAAK,CAACkD,eAA3B,EAA4C;QACxC,IAAIJ,SAAS,KAAKnD,gBAAgB,CAACqD,cAAjB,CAAgCC,MAAlD,EAA0D;UACtD,OAAO,CAAC,CAACzB,EAAE,GAAGxB,KAAK,CAACyC,cAAZ,MAAgC,IAAhC,IAAwCjB,EAAE,KAAK,KAAK,CAApD,GAAwD,KAAK,CAA7D,GAAiEA,EAAE,CAAC2B,UAAH,EAAlE,KAAsF,IAA7F;QACH;;QACD,OAAO,CAAC,CAACZ,EAAE,GAAGvC,KAAK,CAAC2C,eAAZ,MAAiC,IAAjC,IAAyCJ,EAAE,KAAK,KAAK,CAArD,GAAyD,KAAK,CAA9D,GAAkEA,EAAE,CAACY,UAAH,EAAnE,KAAuF,IAA9F;MACH;;MACD,OAAQ,CAAC,CAACJ,EAAE,GAAG/C,KAAK,CAACoD,WAAN,CACVC,IADU,CACL,UAAUzH,CAAV,EAAa;QAAE,OAAOA,CAAC,CAACiH,YAAF,KAAmBA,YAAnB,IAAmCjH,CAAC,CAACkH,SAAF,KAAgBA,SAA1D;MAAsE,CADhF,CAAN,MAC6F,IAD7F,IACqGC,EAAE,KAAK,KAAK,CADjH,GACqH,KAAK,CAD1H,GAC8HA,EAAE,CAACO,UAAH,CAAcH,UAAd,EAD/H,KAC8J,IADtK;IAEH,CAdD;;IAeAnD,KAAK,CAACmC,kBAAN,GAA2B,UAAUoB,QAAV,EAAoB;MAAE,OAAOrH,SAAS,CAAC8D,KAAD,EAAQ,KAAK,CAAb,EAAgB,KAAK,CAArB,EAAwB,YAAY;QACjG,IAAIwD,iBAAJ,EAAuBC,iBAAvB,EAA0CC,mBAA1C,EAA+DC,gBAA/D;QACA,OAAOvG,WAAW,CAAC,IAAD,EAAO,UAAUoE,EAAV,EAAc;UACnC,QAAQA,EAAE,CAACjE,KAAX;YACI,KAAK,CAAL;cACI,IAAI,CAAC,KAAKmD,OAAV,EAAmB;gBACf,OAAO,CAAC;gBAAE;gBAAH,CAAP;cACH;;cACD,OAAO,CAAC;cAAE;cAAH,EAAcvB,wBAAwB,CAACyE,sBAAzB,EAAd,CAAP;;YACJ,KAAK,CAAL;cACIJ,iBAAiB,GAAGhC,EAAE,CAAChE,IAAH,EAApB;cACA,OAAO,CAAC;cAAE;cAAH,EAAc2B,wBAAwB,CAAC0E,sBAAzB,EAAd,CAAP;;YACJ,KAAK,CAAL;cACIJ,iBAAiB,GAAGjC,EAAE,CAAChE,IAAH,EAApB;cACA,OAAO,CAAC;cAAE;cAAH,EAAc0B,0BAA0B,CAAC4E,wBAA3B,CAAoDC,WAApD,EAAd,CAAP;;YACJ,KAAK,CAAL;cACIL,mBAAmB,GAAGlC,EAAE,CAAChE,IAAH,EAAtB;;cACA,IAAI,CAACgG,iBAAD,IAAsB,CAACC,iBAA3B,EAA8C;gBAC1C,MAAM,IAAIO,KAAJ,CAAU,iDAAV,CAAN;cACH;;cACDL,gBAAgB,GAAG;gBACfzD,kBAAkB,EAAE,KAAKA,kBADV;gBAEf+D,aAAa,EAAE,KAAKlE,gBAAL,CAAsB,KAAKmD,eAA3B,EAA4CvD,gBAAgB,CAACqD,cAAjB,CAAgCC,MAA5E;cAFA,CAAnB;;cAIA,IAAI;gBACA,KAAKR,cAAL,GAAsB,IAAInD,uBAAuB,CAAC4E,qBAA5B,CAAkDzI,QAAQ,CAACA,QAAQ,CAAC,EAAD,EAAK8H,QAAQ,CAACY,aAAd,CAAT,EAAuC;kBAAEC,aAAa,EAAEb,QAAQ,CAACY,aAAT,CAAuBC,aAAvB,IAAwCX,iBAAzD;kBAA4EY,mBAAmB,EAAEd,QAAQ,CAACY,aAAT,CAAuBE,mBAAvB,IAA8Cb;gBAA/I,CAAvC,CAA1D,EAAsQG,gBAAtQ,EAAwRD,mBAAxR,CAAtB;gBACA,KAAKY,sBAAL,CAA4B,KAAK7B,cAAjC;gBACA,KAAK/B,OAAL,CAAa6D,OAAb,CAAqB,KAAK9B,cAAL,CAAoB+B,GAApB,EAArB,EAAgD9E,OAAO,CAACiC,UAAxD;cACH,CAJD,CAKA,OAAOJ,KAAP,EAAc;gBACV3B,KAAK,CAAC2B,KAAN,CAAY,0BAAZ;cACH;;cACD,OAAO,CAAC;cAAE;cAAH,CAAP;UA7BR;QA+BH,CAhCiB,CAAlB;MAiCH,CAnCgE,CAAhB;IAmC5C,CAnCL;;IAoCAvB,KAAK,CAACoC,wBAAN,GAAiC,UAAUC,kCAAV,EAA8C;MAAE,OAAOnG,SAAS,CAAC8D,KAAD,EAAQ,KAAK,CAAb,EAAgB,KAAK,CAArB,EAAwB,YAAY;QACjI,IAAIA,KAAK,GAAG,IAAZ;;QACA,OAAO5C,WAAW,CAAC,IAAD,EAAO,UAAUoE,EAAV,EAAc;UACnC,QAAQA,EAAE,CAACjE,KAAX;YACI,KAAK,CAAL;cACI,IAAI,EAAE8E,kCAAkC,IAAI,CAAClD,wBAAwB,CAACsF,aAAzB,EAAzC,CAAJ,EAAwF,OAAO,CAAC;cAAE;cAAH,EAAc,CAAd,CAAP;cACxF,OAAO,CAAC;cAAE;cAAH,EAAc9D,EAAE,CAAC+D,4BAAH,CAAgC,UAAUC,GAAV,EAAe;gBAC5D,IAAI,CAACA,GAAG,CAACC,SAAL,IAAkBD,GAAG,CAACE,mBAAJ,KAA4B,KAAlD,EAAyD;kBACrD;kBACAjF,KAAK,CAAC2B,KAAN,CAAY,iCAAZ;kBACAvB,KAAK,CAACC,oBAAN,GAA6B,KAA7B;gBACH,CAJD,MAKK;kBACDD,KAAK,CAACC,oBAAN,GAA6B,IAA7B;gBACH;cACJ,CATgB,CAAd,CAAP;;YAUJ,KAAK,CAAL;cACIuB,EAAE,CAAChE,IAAH;;cACA,OAAO,CAAC;cAAE;cAAH,EAAc,CAAd,CAAP;;YACJ,KAAK,CAAL;cACI,KAAKyC,oBAAL,GAA4B,KAA5B;cACAuB,EAAE,CAACjE,KAAH,GAAW,CAAX;;YACJ,KAAK,CAAL;cAAQ,OAAO,CAAC;cAAE;cAAH,EAAeb,OAAO,CAACD,OAAR,CAAgB,KAAKwD,oBAArB,CAAf,CAAP;UAnBZ;QAqBH,CAtBiB,CAAlB;MAuBH,CAzBgG,CAAhB;IAyB5E,CAzBL;;IA0BAD,KAAK,CAACsE,sBAAN,GAA+B,UAAUQ,SAAV,EAAqB;MAChDA,SAAS,CAAC/D,EAAV,CAAa,qBAAb,EAAoC,UAAUhE,CAAV,EAAa;QAAE,OAAOiD,KAAK,CAAC4B,IAAN,CAAWvC,6BAA6B,CAACwC,2BAA9B,CAA0DkD,mBAArE,EAA0FhI,CAA1F,CAAP;MAAsG,CAAzJ;MACA+H,SAAS,CAAC/D,EAAV,CAAa,eAAb,EAA8B,UAAUhE,CAAV,EAAa;QAAE,OAAOiD,KAAK,CAAC4B,IAAN,CAAWvC,6BAA6B,CAACwC,2BAA9B,CAA0DmD,aAArE,EAAoFjI,CAApF,CAAP;MAAgG,CAA7I;MACA+H,SAAS,CAAC/D,EAAV,CAAa,iBAAb,EAAgC,UAAUhE,CAAV,EAAa;QAAE,OAAOiD,KAAK,CAAC4B,IAAN,CAAWvC,6BAA6B,CAACwC,2BAA9B,CAA0DoD,eAArE,EAAsFlI,CAAtF,CAAP;MAAkG,CAAjJ;MACA+H,SAAS,CAAC/D,EAAV,CAAa,yBAAb,EAAwC,UAAUhE,CAAV,EAAa;QACjD,OAAOiD,KAAK,CAAC4B,IAAN,CAAWvC,6BAA6B,CAACwC,2BAA9B,CAA0DqD,uBAArE,EAA8FnI,CAA9F,CAAP;MACH,CAFD;MAGA+H,SAAS,CAAC/D,EAAV,CAAa,qBAAb,EAAoC,YAAY;QAAE,OAAOf,KAAK,CAAC4B,IAAN,CAAWvC,6BAA6B,CAACwC,2BAA9B,CAA0DsD,mBAArE,CAAP;MAAmG,CAArJ;IACH,CARD;;IASAnF,KAAK,CAACoF,YAAN,GAAqB,UAAUC,UAAV,EAAsB;MAAE,OAAOnJ,SAAS,CAAC8D,KAAD,EAAQ,KAAK,CAAb,EAAgB,KAAK,CAArB,EAAwB,YAAY;QAC7F,IAAIsF,eAAJ;;QACA,IAAI9D,EAAJ;;QACA,OAAOpE,WAAW,CAAC,IAAD,EAAO,UAAUmF,EAAV,EAAc;UACnC,QAAQA,EAAE,CAAChF,KAAX;YACI,KAAK,CAAL;cAAQ,OAAO,CAAC;cAAE;cAAH,EAAc4B,wBAAwB,CAACyE,sBAAzB,EAAd,CAAP;;YACR,KAAK,CAAL;cACI0B,eAAe,GAAG/C,EAAE,CAAC/E,IAAH,EAAlB;;cACA,IAAI6H,UAAU,IAAI,CAACC,eAAnB,EAAoC;gBAChC1F,KAAK,CAAC2B,KAAN,CAAY,yBAAZ;gBACA,OAAO,CAAC;gBAAE;gBAAH,CAAP;cACH;;cACD,CAACC,EAAE,GAAG,KAAKiB,cAAX,MAA+B,IAA/B,IAAuCjB,EAAE,KAAK,KAAK,CAAnD,GAAuD,KAAK,CAA5D,GAAgEA,EAAE,CAAC4D,YAAH,CAAgBC,UAAhB,CAAhE;cACA,OAAO,CAAC;cAAE;cAAH,CAAP;UATR;QAWH,CAZiB,CAAlB;MAaH,CAhB4D,CAAhB;IAgBxC,CAhBL;;IAiBArF,KAAK,CAACuF,YAAN,GAAqB,UAAUC,kBAAV,EAA8B;MAAE,OAAOtJ,SAAS,CAAC8D,KAAD,EAAQ,KAAK,CAAb,EAAgB,KAAK,CAArB,EAAwB,YAAY;QACrG,IAAIyF,eAAJ;;QACA,IAAIjE,EAAJ;;QACA,OAAOpE,WAAW,CAAC,IAAD,EAAO,UAAUmF,EAAV,EAAc;UACnC,QAAQA,EAAE,CAAChF,KAAX;YACI,KAAK,CAAL;cAAQ,OAAO,CAAC;cAAE;cAAH,EAAc4B,wBAAwB,CAAC0E,sBAAzB,EAAd,CAAP;;YACR,KAAK,CAAL;cACI4B,eAAe,GAAGlD,EAAE,CAAC/E,IAAH,EAAlB;;cACA,IAAIgI,kBAAkB,IAAI,CAACC,eAA3B,EAA4C;gBACxC7F,KAAK,CAAC2B,KAAN,CAAY,yBAAZ;gBACA,OAAO,CAAC;gBAAE;gBAAH,CAAP;cACH;;cACD,CAACC,EAAE,GAAG,KAAKiB,cAAX,MAA+B,IAA/B,IAAuCjB,EAAE,KAAK,KAAK,CAAnD,GAAuD,KAAK,CAA5D,GAAgEA,EAAE,CAAC+D,YAAH,CAAgBC,kBAAhB,CAAhE;cACA,OAAO,CAAC;cAAE;cAAH,CAAP;UATR;QAWH,CAZiB,CAAlB;MAaH,CAhBoE,CAAhB;IAgBhD,CAhBL;;IAiBAxF,KAAK,CAAC0F,aAAN,GAAsB,YAAY;MAAE,OAAOxJ,SAAS,CAAC8D,KAAD,EAAQ,KAAK,CAAb,EAAgB,KAAK,CAArB,EAAwB,YAAY;QACpF,IAAI2D,gBAAJ,EAAsBD,mBAAtB,EAA2CiC,GAA3C;;QACA,IAAI3F,KAAK,GAAG,IAAZ;;QACA,OAAO5C,WAAW,CAAC,IAAD,EAAO,UAAUoE,EAAV,EAAc;UACnC,QAAQA,EAAE,CAACjE,KAAX;YACI,KAAK,CAAL;cACI,IAAI,CAAC,KAAK0C,oBAAV,EAAgC,OAAO,CAAC;cAAE;cAAH,EAAc,CAAd,CAAP;cAChC0D,gBAAgB,GAAG;gBACfzD,kBAAkB,EAAE,KAAKA;cADV,CAAnB;cAGA,OAAO,CAAC;cAAE;cAAH,EAAchB,0BAA0B,CAAC4E,wBAA3B,CAAoDC,WAApD,EAAd,CAAP;;YACJ,KAAK,CAAL;cACIL,mBAAmB,GAAGlC,EAAE,CAAChE,IAAH,EAAtB;cACAgE,EAAE,CAACjE,KAAH,GAAW,CAAX;;YACJ,KAAK,CAAL;cACIiE,EAAE,CAAC/D,IAAH,CAAQY,IAAR,CAAa,CAAC,CAAD,EAAI,CAAJ,GAAS,CAAT,CAAb;;cACA,KAAKsE,eAAL,GAAuB,IAAIpD,wBAAwB,CAACqG,sBAA7B,CAAoDnK,QAAQ,CAACA,QAAQ,CAAC,EAAD,EAAKkI,gBAAL,CAAT,EAAiC;gBAAEM,aAAa,EAAE,KAAKlE,gBAAL,CAAsB,KAAKmD,eAA3B,EAA4CvD,gBAAgB,CAACqD,cAAjB,CAAgC6C,MAA5E;cAAjB,CAAjC,CAA5D,EAAsMnC,mBAAtM,CAAvB;cACA,KAAKY,sBAAL,CAA4B,KAAK3B,eAAjC;cACA,OAAO,CAAC;cAAE;cAAH,EAAc,IAAIjG,OAAJ,CAAY,UAAUD,OAAV,EAAmBE,MAAnB,EAA2B;gBACpD,IAAI6E,EAAJ;;gBACAxB,KAAK,CAAC2C,eAAN,KAA0B,CAACnB,EAAE,GAAGxB,KAAK,CAACU,OAAZ,MAAyB,IAAzB,IAAiCc,EAAE,KAAK,KAAK,CAA7C,GAAiD,KAAK,CAAtD,GAA0DA,EAAE,CAAC+C,OAAH,CAAWvE,KAAK,CAAC2C,eAAN,CAAsB6B,GAAtB,EAAX,EAAwC,UAAUxC,GAAV,EAAe;kBACvI,IAAIA,GAAJ,EAAS;oBACLpC,KAAK,CAAC2B,KAAN,CAAY,0BAAZ,EAAwCS,GAAxC;oBACA,OAAOrF,MAAM,EAAb;kBACH;;kBACD,OAAOF,OAAO,EAAd;gBACH,CANmF,CAApF;cAOH,CATgB,CAAd,CAAP;;YAUJ,KAAK,CAAL;cAAQ,OAAO,CAAC;cAAE;cAAH,EAAe+E,EAAE,CAAChE,IAAH,EAAf,CAAP;;YACR,KAAK,CAAL;cACImI,GAAG,GAAGnE,EAAE,CAAChE,IAAH,EAAN;cACAoC,KAAK,CAAC2B,KAAN,CAAY,0BAAZ,EAAwCoE,GAAxC;cACA,OAAO,CAAC;cAAE;cAAH,EAAejJ,OAAO,CAACC,MAAR,EAAf,CAAP;;YACJ,KAAK,CAAL;cAAQ,OAAO,CAAC;cAAE;cAAH,CAAP;UA7BZ;QA+BH,CAhCiB,CAAlB;MAiCH,CApCmD,CAAhB;IAoC/B,CApCL;;IAqCAqD,KAAK,CAAC8F,YAAN,GAAqB,YAAY;MAAE,OAAO5J,SAAS,CAAC8D,KAAD,EAAQ,KAAK,CAAb,EAAgB,KAAK,CAArB,EAAwB,YAAY;QAAE,IAAIwB,EAAJ;;QAAQ,OAAOpE,WAAW,CAAC,IAAD,EAAO,UAAUmF,EAAV,EAAc;UACpI,OAAO,CAAC;UAAE;UAAH,EAAe,CAACf,EAAE,GAAG,KAAKiB,cAAX,MAA+B,IAA/B,IAAuCjB,EAAE,KAAK,KAAK,CAAnD,GAAuD,KAAK,CAA5D,GAAgEA,EAAE,CAACsE,YAAH,EAA/E,CAAP;QACH,CAFkH,CAAlB;MAE5F,CAF8C,CAAhB;IAE1B,CAFT;;IAGA9F,KAAK,CAAC+F,mBAAN,GAA4B,UAAUxC,QAAV,EAAoB;MAC5C,IAAI/B,EAAJ,EAAQe,EAAR,EAAYQ,EAAZ;;MACA,IAAIiD,QAAQ,GAAG,EAAf;;MACA,IAAI,CAAChG,KAAK,CAACU,OAAX,EAAoB;QAChB,OAAOhE,OAAO,CAACD,OAAR,CAAgB,EAAhB,CAAP;MACH;;MACD,IAAIwJ,mBAAmB,GAAG,CAAC,CAACjG,KAAK,CAAC2C,eAAlC;;MACA3C,KAAK,CAACI,cAAN,CAAqB8F,GAArB,CAAyB,UAAUtK,CAAV,EAAa;QAAE,OAAOA,CAAC,CAAC0H,UAAT;MAAsB,CAA9D,EAAgE6C,OAAhE,CAAwE,CAAC3E,EAAE,GAAGxB,KAAK,CAACU,OAAZ,MAAyB,IAAzB,IAAiCc,EAAE,KAAK,KAAK,CAA7C,GAAiD,KAAK,CAAtD,GAA0DA,EAAE,CAAC4E,WAArI;;MACApG,KAAK,CAACI,cAAN,GAAuB,EAAvB;MACA,CAACmC,EAAE,GAAGvC,KAAK,CAACyC,cAAZ,MAAgC,IAAhC,IAAwCF,EAAE,KAAK,KAAK,CAApD,GAAwD,KAAK,CAA7D,GAAiEA,EAAE,CAACG,OAAH,EAAjE;MACA,CAACK,EAAE,GAAG/C,KAAK,CAAC2C,eAAZ,MAAiC,IAAjC,IAAyCI,EAAE,KAAK,KAAK,CAArD,GAAyD,KAAK,CAA9D,GAAkEA,EAAE,CAACL,OAAH,EAAlE;MACAsD,QAAQ,CAAC3H,IAAT,CAAc2B,KAAK,CAACmC,kBAAN,CAAyBoB,QAAzB,CAAd;;MACA,IAAI0C,mBAAJ,EAAyB;QACrBD,QAAQ,CAAC3H,IAAT,CAAc2B,KAAK,CAAC0F,aAAN,EAAd;MACH;;MACD,OAAOhJ,OAAO,CAAC2J,GAAR,CAAYL,QAAZ,CAAP;IACH,CAhBD;;IAiBAhG,KAAK,CAACkB,oBAAN,GAA6B,UAAUoF,KAAV,EAAiB;MAAE,OAAOpK,SAAS,CAAC8D,KAAD,EAAQ,KAAK,CAAb,EAAgB,KAAK,CAArB,EAAwB,YAAY;QAChG,IAAIuG,MAAJ,EAAYC,UAAZ,EAAwBC,QAAxB,EAAkCC,QAAlC,EAA4CC,eAA5C,EAA6D7D,SAA7D,EAAwED,YAAxE,EAAsF+D,IAAtF,EAA4F3C,aAA5F,EAA2G4C,UAA3G,EAAuHvD,UAAvH;QACA,OAAOlG,WAAW,CAAC,IAAD,EAAO,UAAUoE,EAAV,EAAc;UACnC5B,KAAK,CAAC4C,IAAN,CAAW,sBAAX,EAAmC8D,KAAK,CAACC,MAAzC;UACAA,MAAM,GAAGD,KAAK,CAACC,MAAf;UACAC,UAAU,GAAGD,MAAM,CAACC,UAApB,EAAgCC,QAAQ,GAAGF,MAAM,CAACE,QAAlD,EAA4DC,QAAQ,GAAGH,MAAM,CAACG,QAA9E,EAAwFC,eAAe,GAAGJ,MAAM,CAACI,eAAjH,EAAkI7D,SAAS,GAAGyD,MAAM,CAACzD,SAArJ;UACAD,YAAY,GAAG2D,UAAU,CAAC3D,YAA1B,EAAwC+D,IAAI,GAAGJ,UAAU,CAACI,IAA1D;UACA3C,aAAa,GAAG,KAAKlE,gBAAL,CAAsB8C,YAAtB,EAAoCC,SAApC,CAAhB;UACA+D,UAAU,GAAGpH,OAAO,CAACqH,gBAAR,CAAyBF,IAAzB,CAAb;;UACA,IAAI,KAAK1D,eAAL,IAAwBqD,MAAxB,IAAkC1D,YAAY,KAAK,KAAKK,eAA5D,EAA6E;YACzE,IAAI,KAAK9C,cAAL,CAAoBpE,MAApB,GAA6BoD,mBAAmB,CAAC2H,qBAApB,GAA4C,CAA7E,EAAgF;cAC5EzD,UAAU,GAAG9D,mBAAmB,CAACwH,gBAApB,CAAqC,KAAKtG,OAA1C,EAAmD6F,MAAnD,EAA2D,KAAKxG,gBAAL,CAAsB8C,YAAtB,EAAoCC,SAApC,CAA3D,EAA2G,KAAK5C,kBAAhH,CAAb;cACA,KAAKE,cAAL,CAAoB/B,IAApB,CAAyB;gBACrBiF,UAAU,EAAEA,UADS;gBAErBT,YAAY,EAAEA,YAFO;gBAGrBgE,UAAU,EAAEA,UAHS;gBAIrB/D,SAAS,EAAEA;cAJU,CAAzB;YAMH,CARD,MASK;cACDlD,KAAK,CAAC4C,IAAN,CAAW,wFAAwFpD,mBAAmB,CAAC2H,qBAAvH;YACH;UACJ;;UACD,KAAKnF,IAAL,CAAUvC,6BAA6B,CAACwC,2BAA9B,CAA0DmD,aAApE,EAAmF;YAC/Ef,aAAa,EAAEA,aADgE;YAE/E4C,UAAU,EAAEA,UAFmE;YAG/EhE,YAAY,EAAEA,YAHiE;YAI/E6D,QAAQ,EAAEA,QAJqE;YAK/ED,QAAQ,EAAEA,QALqE;YAM/EQ,eAAe,EAAE,KAN8D;YAO/EC,MAAM,EAAE,KAPuE;YAQ/EP,eAAe,EAAEA,eAR8D;YAS/E7D,SAAS,EAAEA;UAToE,CAAnF;UAWA,OAAO,CAAC;UAAE;UAAH,CAAP;QACH,CAjCiB,CAAlB;MAkCH,CApC+D,CAAhB;IAoC3C,CApCL;;IAqCA9C,KAAK,CAACmB,sBAAN,GAA+B,UAAUmF,KAAV,EAAiB;MAC5C1G,KAAK,CAAC4C,IAAN,CAAW,wBAAX,EAAqC8D,KAArC;MACA,IAAI9E,EAAE,GAAG8E,KAAK,CAACC,MAAf;MAAA,IAAuBC,UAAU,GAAGhF,EAAE,CAACgF,UAAvC;MAAA,IAAmD1D,SAAS,GAAGtB,EAAE,CAACsB,SAAlE;MACA,IAAID,YAAY,GAAG2D,UAAU,CAAC3D,YAA9B;MACA7C,KAAK,CAACI,cAAN,GAAuBJ,KAAK,CAACI,cAAN,CAAqB+G,MAArB,CAA4B,UAAU7D,UAAV,EAAsB;QAAE,OAAO,CAAC7D,OAAO,CAAC2H,YAAR,CAAqB3L,QAAQ,CAAC,EAAD,EAAK6H,UAAL,CAA7B,EAA+C;UAAET,YAAY,EAAEA,YAAhB;UAA8BC,SAAS,EAAEA;QAAzC,CAA/C,CAAR;MAA+G,CAAnK,CAAvB;;MACA9C,KAAK,CAAC4B,IAAN,CAAWvC,6BAA6B,CAACwC,2BAA9B,CAA0DoD,eAArE,EAAsF;QAClFhB,aAAa,EAAEjE,KAAK,CAACD,gBAAN,CAAuB8C,YAAvB,EAAqCC,SAArC,CADmE;QAElFD,YAAY,EAAEA,YAFoE;QAGlFoE,eAAe,EAAE,KAHiE;QAIlFJ,UAAU,EAAEpH,OAAO,CAACqH,gBAAR,CAAyBN,UAAU,CAACI,IAApC,CAJsE;QAKlF9D,SAAS,EAAEA;MALuE,CAAtF;IAOH,CAZD;;IAaA9C,KAAK,CAACgB,wBAAN,GAAiC,UAAUsF,KAAV,EAAiB;MAC9C1G,KAAK,CAAC4C,IAAN,CAAW,0BAAX,EAAuC8D,KAAvC;MACA,IAAIE,UAAU,GAAGF,KAAK,CAACE,UAAvB;MACA,IAAI3D,YAAY,GAAG2D,UAAU,CAAC3D,YAA9B;;MACA,IAAI,CAAC7C,KAAK,CAACkD,eAAP,IAA0B,CAACsD,UAA/B,EAA2C;QACvC;MACH;;MACDxG,KAAK,CAAC4B,IAAN,CAAWvC,6BAA6B,CAACwC,2BAA9B,CAA0DwF,iBAArE,EAAwF;QACpFR,UAAU,EAAEpH,OAAO,CAACqH,gBAAR,CAAyBN,UAAU,CAACI,IAApC,CADwE;QAEpF3C,aAAa,EAAEjE,KAAK,CAACD,gBAAN,CAAuB8C,YAAvB,CAFqE;QAGpFA,YAAY,EAAEA,YAHsE;QAIpFoE,eAAe,EAAEjH,KAAK,CAACsH,kBAAN,CAAyBzE,YAAzB;MAJmE,CAAxF;IAMH,CAbD;;IAcA7C,KAAK,CAACiB,0BAAN,GAAmC,UAAUqF,KAAV,EAAiB;MAChD,IAAIE,UAAU,GAAGF,KAAK,CAACE,UAAvB;MACA,IAAI3D,YAAY,GAAG2D,UAAU,CAAC3D,YAA9B;MACAjD,KAAK,CAAC4C,IAAN,CAAW,4BAAX,EAAyC8D,KAAzC;;MACAtG,KAAK,CAAC4B,IAAN,CAAWvC,6BAA6B,CAACwC,2BAA9B,CAA0D0F,mBAArE,EAA0F;QACtFV,UAAU,EAAEpH,OAAO,CAACqH,gBAAR,CAAyBN,UAAU,CAACI,IAApC,CAD0E;QAEtF3C,aAAa,EAAEjE,KAAK,CAACD,gBAAN,CAAuB8C,YAAvB,CAFuE;QAGtFA,YAAY,EAAEA,YAHwE;QAItFoE,eAAe,EAAEjH,KAAK,CAACsH,kBAAN,CAAyBzE,YAAzB;MAJqE,CAA1F;;MAMA,IAAIA,YAAY,KAAK7C,KAAK,CAACkD,eAAvB,IAA0C,CAAClD,KAAK,CAACkD,eAArD,EAAsE;QAClE;MACH;;MACDlD,KAAK,CAACU,OAAN,GAAgBgB,SAAhB;IACH,CAdD;;IAeA1B,KAAK,CAACoB,4BAAN,GAAqC,UAAUkF,KAAV,EAAiB;MAClD1G,KAAK,CAAC4C,IAAN,CAAW,8BAAX,EAA2C8D,KAA3C;MACA,IAAI9E,EAAE,GAAG8E,KAAK,CAACC,MAAf;MAAA,IAAuBG,QAAQ,GAAGlF,EAAE,CAACkF,QAArC;MAAA,IAA+CD,QAAQ,GAAGjF,EAAE,CAACiF,QAA7D;MAAA,IAAuED,UAAU,GAAGhF,EAAE,CAACgF,UAAvF;MAAA,IAAmGG,eAAe,GAAGnF,EAAE,CAACmF,eAAxH;MAAA,IAAyI7D,SAAS,GAAGtB,EAAE,CAACsB,SAAxJ;MACA,IAAID,YAAY,GAAG2D,UAAU,CAAC3D,YAA9B;;MACA7C,KAAK,CAAC4B,IAAN,CAAWvC,6BAA6B,CAACwC,2BAA9B,CAA0D2F,qBAArE,EAA4F;QACxFd,QAAQ,EAAEA,QAD8E;QAExFD,QAAQ,EAAEA,QAF8E;QAGxFxC,aAAa,EAAEjE,KAAK,CAACD,gBAAN,CAAuB8C,YAAvB,EAAqCC,SAArC,CAHyE;QAIxFD,YAAY,EAAEA,YAJ0E;QAKxFoE,eAAe,EAAEjH,KAAK,CAACsH,kBAAN,CAAyBzE,YAAzB,CALuE;QAMxFgE,UAAU,EAAEpH,OAAO,CAACqH,gBAAR,CAAyBN,UAAU,CAACI,IAApC,CAN4E;QAOxFD,eAAe,EAAEA;MAPuE,CAA5F;IASH,CAbD;;IAcA3G,KAAK,CAACqB,0BAAN,GAAmC,UAAUiF,KAAV,EAAiB;MAChD1G,KAAK,CAAC4C,IAAN,CAAW,4BAAX,EAAyC8D,KAAzC;IACH,CAFD;;IAGAtG,KAAK,CAACsH,kBAAN,GAA2B,UAAUzE,YAAV,EAAwB;MAC/C,OAAO7C,KAAK,CAACkD,eAAN,KAA0BxB,SAA1B,IAAuC1B,KAAK,CAACkD,eAAN,KAA0BL,YAAxE;IACH,CAFD;;IAGA,OAAO7C,KAAP;EACH;;EACDlF,MAAM,CAAC+D,cAAP,CAAsBE,wBAAwB,CAAC5D,SAA/C,EAA0D,iBAA1D,EAA6E;IACzEqJ,GAAG,EAAE,eAAY;MACb,IAAIhD,EAAJ,EAAQe,EAAR;;MACA,OAAO,CAAC,CAACA,EAAE,GAAG,CAACf,EAAE,GAAG,KAAKd,OAAX,MAAwB,IAAxB,IAAgCc,EAAE,KAAK,KAAK,CAA5C,GAAgD,KAAK,CAArD,GAAyDA,EAAE,CAACgF,UAAlE,MAAkF,IAAlF,IAA0FjE,EAAE,KAAK,KAAK,CAAtG,GAA0G,KAAK,CAA/G,GAAmHA,EAAE,CAACM,YAAvH,KAAwI,EAA/I;IACH,CAJwE;IAKzE4E,UAAU,EAAE,KAL6D;IAMzEC,YAAY,EAAE;EAN2D,CAA7E;EAQA5M,MAAM,CAAC+D,cAAP,CAAsBE,wBAAwB,CAAC5D,SAA/C,EAA0D,aAA1D,EAAyE;IACrEqJ,GAAG,EAAE,eAAY;MACb,OAAOlG,cAAc,CAAC,KAAK8B,cAAN,CAArB;IACH,CAHoE;IAIrEqH,UAAU,EAAE,KAJyD;IAKrEC,YAAY,EAAE;EALuD,CAAzE;;EAOA3I,wBAAwB,CAAC5D,SAAzB,CAAmCwM,mBAAnC,GAAyD,YAAY;IACjE,IAAInG,EAAJ;;IACA,OAAO,CAACA,EAAE,GAAG,KAAKmB,eAAX,MAAgC,IAAhC,IAAwCnB,EAAE,KAAK,KAAK,CAApD,GAAwD,KAAK,CAA7D,GAAiEA,EAAE,CAACkB,OAAH,EAAxE;EACH,CAHD;;EAIA,OAAO3D,wBAAP;AACH,CAnW6C,CAmW5CK,mBAAmB,CAACwI,iBAnWwB,CAA9C;;AAoWA9I,OAAO,CAACC,wBAAR,GAAmCA,wBAAnC","file":"OpentokMultiPartyService.js","sourcesContent":["\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OpentokMultiPartyService = void 0;\nvar MediaTracer_1 = require(\"../MediaTracer\");\nvar MediaCapabilitiesService_1 = require(\"../MediaCapabilitiesService\");\nvar MediaCapabilitiesUtils_1 = require(\"../MediaCapabilitiesUtils\");\nvar MultiPartyService_1 = require(\"../MultiPartyService\");\nvar MultipartyServiceEventTypes_1 = require(\"../MultipartyServiceEventTypes\");\nvar OpentokVideoPublisher_1 = require(\"./OpentokVideoPublisher\");\nvar OpentokScreenPublisher_1 = require(\"./OpentokScreenPublisher\");\nvar OpentokSubscriber_1 = require(\"./OpentokSubscriber\");\nvar utils_1 = require(\"../utils\");\nvar trace_1 = require(\"./trace\");\nvar MediaConstants_1 = require(\"../../MediaConstants\");\nvar trace = MediaTracer_1.getMediaTracer('Multiparty');\nvar OpentokMultiPartyService = /** @class */ (function (_super) {\n __extends(OpentokMultiPartyService, _super);\n function OpentokMultiPartyService(getParticipantId) {\n var _this = _super.call(this) || this;\n _this.getParticipantId = getParticipantId;\n _this.enableDesktopSharing = false;\n _this.backgroundImageURI = MultiPartyService_1.DEFAULT_AVATAR_URI;\n _this.subscriberList = [];\n _this.setBackgroundImageURI = function (uri) {\n _this.backgroundImageURI = uri || MultiPartyService_1.DEFAULT_AVATAR_URI;\n };\n _this.connect = function (sessionSettings, credentials) {\n try {\n _this.session = OT.initSession(credentials.apiKey, credentials.sessionId);\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 _this.session.connect(credentials.token, function (error) {\n var _a;\n if (error) {\n (_a = _this.session) === null || _a === void 0 ? void 0 : _a.off();\n _this.session = undefined;\n trace_1.traceError(error);\n _this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.connectFailed, {\n meta: { err: JSON.stringify(error) }\n });\n return;\n }\n _this.initVideoPublisher(sessionSettings);\n _this.isScreenSharingSupported(sessionSettings.isScreenSharingCapabilitiesEnabled);\n });\n }\n catch (err) {\n trace.error(JSON.stringify(err));\n _this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.connectFailed, {\n meta: { err: JSON.stringify(err) }\n });\n }\n };\n _this.disconnect = function () {\n var _a, _b;\n try {\n trace.info('Disconnecting from session');\n if (_this.session) {\n (_a = _this.videoPublisher) === null || _a === void 0 ? void 0 : _a.destroy();\n (_b = _this.screenPublisher) === null || _b === void 0 ? void 0 : _b.destroy();\n _this.session.disconnect();\n trace.info('Disconnection from session completed');\n }\n }\n catch (err) {\n trace.error(JSON.stringify(err));\n }\n };\n _this.takeSnapshot = function (connectionId, videoType) {\n var _a, _b, _c;\n if (videoType === void 0) { videoType = MediaConstants_1.VideoTypesEnum.CAMERA; }\n if (!connectionId) {\n return null;\n }\n if (connectionId === _this.ownConnectionId) {\n if (videoType === MediaConstants_1.VideoTypesEnum.CAMERA) {\n return ((_a = _this.videoPublisher) === null || _a === void 0 ? void 0 : _a.getImgData()) || null;\n }\n return ((_b = _this.screenPublisher) === null || _b === void 0 ? void 0 : _b.getImgData()) || null;\n }\n return (((_c = _this.subscribers\n .find(function (s) { return s.connectionId === connectionId && s.videoType === videoType; })) === null || _c === void 0 ? void 0 : _c.subscriber.getImgData()) || null);\n };\n _this.initVideoPublisher = function (settings) { return __awaiter(_this, void 0, void 0, function () {\n var canStartWithAudio, canStartWithVideo, capabilitiesService, publisherOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.session) {\n return [2 /*return*/];\n }\n return [4 /*yield*/, MediaCapabilitiesUtils_1.checkAudioCapabilities()];\n case 1:\n canStartWithAudio = _a.sent();\n return [4 /*yield*/, MediaCapabilitiesUtils_1.checkVideoCapabilities()];\n case 2:\n canStartWithVideo = _a.sent();\n return [4 /*yield*/, MediaCapabilitiesService_1.MediaCapabilitiesService.getInstance()];\n case 3:\n capabilitiesService = _a.sent();\n if (!canStartWithAudio && !canStartWithVideo) {\n throw new Error('Creating session requires initialized publisher');\n }\n publisherOptions = {\n backgroundImageURI: this.backgroundImageURI,\n participantId: this.getParticipantId(this.ownConnectionId, MediaConstants_1.VideoTypesEnum.CAMERA)\n };\n try {\n this.videoPublisher = new OpentokVideoPublisher_1.OpentokVideoPublisher(__assign(__assign({}, settings.videoSettings), { cameraEnabled: settings.videoSettings.cameraEnabled && canStartWithVideo, startWithAudioMuted: settings.videoSettings.startWithAudioMuted && canStartWithAudio }), publisherOptions, capabilitiesService);\n this.forwardPublisherEvents(this.videoPublisher);\n this.session.publish(this.videoPublisher.get(), trace_1.traceError);\n }\n catch (error) {\n trace.error('could not init publisher');\n }\n return [2 /*return*/];\n }\n });\n }); };\n _this.isScreenSharingSupported = function (isScreenSharingCapabilitiesEnabled) { return __awaiter(_this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(isScreenSharingCapabilitiesEnabled && !MediaCapabilitiesUtils_1.checkIsMobile())) return [3 /*break*/, 2];\n return [4 /*yield*/, OT.checkScreenSharingCapability(function (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 }\n else {\n _this.enableDesktopSharing = true;\n }\n })];\n case 1:\n _a.sent();\n return [3 /*break*/, 3];\n case 2:\n this.enableDesktopSharing = false;\n _a.label = 3;\n case 3: return [2 /*return*/, Promise.resolve(this.enableDesktopSharing)];\n }\n });\n }); };\n _this.forwardPublisherEvents = function (publisher) {\n publisher.on('cameraSourceChanged', function (e) { return _this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.cameraSourceChanged, e); });\n publisher.on('streamCreated', function (e) { return _this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.streamCreated, e); });\n publisher.on('streamDestroyed', function (e) { return _this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.streamDestroyed, e); });\n publisher.on('mediaDeviceAccessDenied', function (e) {\n return _this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.mediaDeviceAccessDenied, e);\n });\n publisher.on('videoElementCreated', function () { return _this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.videoElementCreated); });\n };\n _this.publishAudio = function (shouldMute) { return __awaiter(_this, void 0, void 0, function () {\n var canPublishAudio;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, MediaCapabilitiesUtils_1.checkAudioCapabilities()];\n case 1:\n canPublishAudio = _b.sent();\n if (shouldMute && !canPublishAudio) {\n trace.error('could not publish audio');\n return [2 /*return*/];\n }\n (_a = this.videoPublisher) === null || _a === void 0 ? void 0 : _a.publishAudio(shouldMute);\n return [2 /*return*/];\n }\n });\n }); };\n _this.publishVideo = function (shouldPublishVideo) { return __awaiter(_this, void 0, void 0, function () {\n var canPublishVideo;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, MediaCapabilitiesUtils_1.checkVideoCapabilities()];\n case 1:\n canPublishVideo = _b.sent();\n if (shouldPublishVideo && !canPublishVideo) {\n trace.error('could not publish video');\n return [2 /*return*/];\n }\n (_a = this.videoPublisher) === null || _a === void 0 ? void 0 : _a.publishVideo(shouldPublishVideo);\n return [2 /*return*/];\n }\n });\n }); };\n _this.publishScreen = function () { return __awaiter(_this, void 0, void 0, function () {\n var publisherOptions, capabilitiesService, e_1;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.enableDesktopSharing) return [3 /*break*/, 5];\n publisherOptions = {\n backgroundImageURI: this.backgroundImageURI\n };\n return [4 /*yield*/, MediaCapabilitiesService_1.MediaCapabilitiesService.getInstance()];\n case 1:\n capabilitiesService = _a.sent();\n _a.label = 2;\n case 2:\n _a.trys.push([2, 4, , 5]);\n this.screenPublisher = new OpentokScreenPublisher_1.OpentokScreenPublisher(__assign(__assign({}, publisherOptions), { participantId: this.getParticipantId(this.ownConnectionId, MediaConstants_1.VideoTypesEnum.SCREEN) }), capabilitiesService);\n this.forwardPublisherEvents(this.screenPublisher);\n return [4 /*yield*/, new Promise(function (resolve, reject) {\n var _a;\n _this.screenPublisher && ((_a = _this.session) === null || _a === void 0 ? void 0 : _a.publish(_this.screenPublisher.get(), function (err) {\n if (err) {\n trace.error('Failed to publish screen', err);\n return reject();\n }\n return resolve();\n }));\n })];\n case 3: return [2 /*return*/, _a.sent()];\n case 4:\n e_1 = _a.sent();\n trace.error('Failed to publish screen', e_1);\n return [2 /*return*/, Promise.reject()];\n case 5: return [2 /*return*/];\n }\n });\n }); };\n _this.switchCamera = function () { return __awaiter(_this, void 0, void 0, function () { var _a; return __generator(this, function (_b) {\n return [2 /*return*/, (_a = this.videoPublisher) === null || _a === void 0 ? void 0 : _a.switchCamera()];\n }); }); };\n _this.reinitializeStreams = function (settings) {\n var _a, _b, _c;\n var promises = [];\n if (!_this.session) {\n return Promise.resolve([]);\n }\n var shouldPublishScreen = !!_this.screenPublisher;\n _this.subscriberList.map(function (s) { return s.subscriber; }).forEach((_a = _this.session) === null || _a === void 0 ? void 0 : _a.unsubscribe);\n _this.subscriberList = [];\n (_b = _this.videoPublisher) === null || _b === void 0 ? void 0 : _b.destroy();\n (_c = _this.screenPublisher) === null || _c === void 0 ? void 0 : _c.destroy();\n promises.push(_this.initVideoPublisher(settings));\n if (shouldPublishScreen) {\n promises.push(_this.publishScreen());\n }\n return Promise.all(promises);\n };\n _this.streamCreatedHandler = function (event) { return __awaiter(_this, void 0, void 0, function () {\n var stream, connection, hasAudio, hasVideo, videoDimensions, videoType, connectionId, data, participantId, clientRole, subscriber;\n return __generator(this, function (_a) {\n trace.info('streamCreatedHandler', event.stream);\n stream = event.stream;\n connection = stream.connection, hasAudio = stream.hasAudio, hasVideo = stream.hasVideo, videoDimensions = stream.videoDimensions, videoType = stream.videoType;\n connectionId = connection.connectionId, data = connection.data;\n participantId = this.getParticipantId(connectionId, videoType);\n clientRole = utils_1.decodeClientRole(data);\n if (this.ownConnectionId && stream && connectionId !== this.ownConnectionId) {\n if (this.subscriberList.length < MultiPartyService_1.maxParticipantsNumber - 1) {\n subscriber = OpentokSubscriber_1.createSubscriber(this.session, stream, this.getParticipantId(connectionId, videoType), this.backgroundImageURI);\n this.subscriberList.push({\n subscriber: subscriber,\n connectionId: connectionId,\n clientRole: clientRole,\n videoType: videoType\n });\n }\n else {\n trace.info(\"a new subscriber cannot be added, as the number of participants reached its limit: \" + MultiPartyService_1.maxParticipantsNumber);\n }\n }\n this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.streamCreated, {\n participantId: participantId,\n clientRole: clientRole,\n connectionId: connectionId,\n hasVideo: hasVideo,\n hasAudio: hasAudio,\n isOwnConnection: false,\n mirror: false,\n videoDimensions: videoDimensions,\n videoType: videoType\n });\n return [2 /*return*/];\n });\n }); };\n _this.streamDestroyedHandler = function (event) {\n trace.info('streamDestroyedHandler', event);\n var _a = event.stream, connection = _a.connection, videoType = _a.videoType;\n var connectionId = connection.connectionId;\n _this.subscriberList = _this.subscriberList.filter(function (subscriber) { return !utils_1.isSameStream(__assign({}, subscriber), { connectionId: connectionId, videoType: videoType }); });\n _this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.streamDestroyed, {\n participantId: _this.getParticipantId(connectionId, videoType),\n connectionId: connectionId,\n isOwnConnection: false,\n clientRole: utils_1.decodeClientRole(connection.data),\n videoType: videoType\n });\n };\n _this.connectionCreatedHandler = function (event) {\n trace.info('connectionCreatedHandler', event);\n var connection = event.connection;\n var connectionId = connection.connectionId;\n if (!_this.ownConnectionId || !connection) {\n return;\n }\n _this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.connectionCreated, {\n clientRole: utils_1.decodeClientRole(connection.data),\n participantId: _this.getParticipantId(connectionId),\n connectionId: connectionId,\n isOwnConnection: _this.checkOwnConnection(connectionId)\n });\n };\n _this.connectionDestroyedHandler = function (event) {\n var connection = event.connection;\n var connectionId = connection.connectionId;\n trace.info('connectionDestroyedHandler', event);\n _this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.connectionDestroyed, {\n clientRole: utils_1.decodeClientRole(connection.data),\n participantId: _this.getParticipantId(connectionId),\n connectionId: connectionId,\n isOwnConnection: _this.checkOwnConnection(connectionId)\n });\n if (connectionId !== _this.ownConnectionId || !_this.ownConnectionId) {\n return;\n }\n _this.session = undefined;\n };\n _this.streamPropertyChangedHandler = function (event) {\n trace.info('streamPropertyChangedHandler', event);\n var _a = event.stream, hasVideo = _a.hasVideo, hasAudio = _a.hasAudio, connection = _a.connection, videoDimensions = _a.videoDimensions, videoType = _a.videoType;\n var connectionId = connection.connectionId;\n _this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.streamPropertyChanged, {\n hasVideo: hasVideo,\n hasAudio: hasAudio,\n participantId: _this.getParticipantId(connectionId, videoType),\n connectionId: connectionId,\n isOwnConnection: _this.checkOwnConnection(connectionId),\n clientRole: utils_1.decodeClientRole(connection.data),\n videoDimensions: videoDimensions\n });\n };\n _this.sessionDisconnectedHandler = function (event) {\n trace.info('sessionDisconnectedHandler', event);\n };\n _this.checkOwnConnection = function (connectionId) {\n return _this.ownConnectionId !== undefined && _this.ownConnectionId === connectionId;\n };\n return _this;\n }\n Object.defineProperty(OpentokMultiPartyService.prototype, \"ownConnectionId\", {\n get: function () {\n var _a, _b;\n return ((_b = (_a = this.session) === null || _a === void 0 ? void 0 : _a.connection) === null || _b === void 0 ? void 0 : _b.connectionId) || '';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(OpentokMultiPartyService.prototype, \"subscribers\", {\n get: function () {\n return __spreadArrays(this.subscriberList);\n },\n enumerable: false,\n configurable: true\n });\n OpentokMultiPartyService.prototype.stopScreenPublisher = function () {\n var _a;\n return (_a = this.screenPublisher) === null || _a === void 0 ? void 0 : _a.destroy();\n };\n return OpentokMultiPartyService;\n}(MultiPartyService_1.MultiPartyService));\nexports.OpentokMultiPartyService = OpentokMultiPartyService;\n\n//# sourceMappingURL=OpentokMultiPartyService.js.map\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@techsee/techsee-media-service",
3
- "version": "17.2.0",
3
+ "version": "17.4.0",
4
4
  "description": "Techsee Media Service",
5
5
  "author": "TechSee",
6
6
  "main": "lib/index.js",
@@ -29,7 +29,7 @@
29
29
  "dependencies": {
30
30
  "@techsee/kurento-utils-temasys-mod": "6.6.3-dev-3",
31
31
  "@techsee/openvidu-browser": "~12.15.6",
32
- "@techsee/techsee-common": "^6.1.0",
32
+ "@techsee/techsee-common": "^6.8.0",
33
33
  "bluebird": "~3.7.2",
34
34
  "kurento-utils": "6.6.2",
35
35
  "lodash": "4.17.21",