@techsee/techsee-media-service 999.22.4-sap → 999.22.4-types-impr2
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.
- package/lib/MultiParty/Contracts.d.ts +1 -1
- package/lib/MultiParty/Contracts.d.ts.map +1 -1
- package/lib/MultiParty/MultiParty.d.ts +1 -4
- package/lib/MultiParty/MultiParty.d.ts.map +1 -1
- package/lib/MultiParty/MultiParty.js +0 -1
- package/lib/MultiParty/MultiParty.js.map +1 -1
- package/lib/MultiParty/OpentokMultiparty.d.ts +17 -11
- package/lib/MultiParty/OpentokMultiparty.d.ts.map +1 -1
- package/lib/MultiParty/OpentokMultiparty.js +35 -64
- package/lib/MultiParty/OpentokMultiparty.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/MultiParty/Contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAE,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AAEhE,MAAM,WAAW,YAAY;IACzB,MAAM,
|
|
1
|
+
{"version":3,"sources":["../src/MultiParty/Contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAE,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AAEhE,MAAM,WAAW,YAAY;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC7B,aAAa,EAAE,WAAW,CAAC;IAC3B,mBAAmB,EAAE,OAAO,CAAA;IAC5B,gBAAgB,EAAE,gBAAgB,CAAA;CACrC","file":"Contracts.d.ts","sourcesContent":["import {CameraTypes, MediaServiceType} from '../MediaConstants';\n\nexport interface ICredentials {\n apiKey: string,\n sessionId: string,\n token: string\n}\n\nexport interface ISessionSettings {\n defaultCamera: CameraTypes,\n startWithAudioMuted: boolean\n mediaServiceType: MediaServiceType\n}\n"]}
|
|
@@ -11,11 +11,9 @@ export declare enum MULTI_PARTY_EVENTS {
|
|
|
11
11
|
connectionDestroyed = "connectionDestroyed",
|
|
12
12
|
streamCreated = "streamCreated",
|
|
13
13
|
videoElementCreated = "videoElementCreated",
|
|
14
|
-
participantsNumberChanged = "participantsNumberChanged"
|
|
15
|
-
videoAudioStatus = "videoAudioStatus"
|
|
14
|
+
participantsNumberChanged = "participantsNumberChanged"
|
|
16
15
|
}
|
|
17
16
|
export interface IMultiParty {
|
|
18
|
-
session: any;
|
|
19
17
|
subscribers: Array<any> | undefined;
|
|
20
18
|
connect(...args: any[]): void;
|
|
21
19
|
disconnect(): void;
|
|
@@ -23,7 +21,6 @@ export interface IMultiParty {
|
|
|
23
21
|
on(event: string | symbol, listener: (...args: any[]) => void): IMultiParty;
|
|
24
22
|
}
|
|
25
23
|
export declare abstract class MultiParty extends EventEmitter implements IMultiParty {
|
|
26
|
-
abstract session: any;
|
|
27
24
|
abstract subscribers: Array<any> | undefined;
|
|
28
25
|
protected settings: ISessionSettings;
|
|
29
26
|
abstract connect(...args: any[]): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/MultiParty/MultiParty.ts"],"names":[],"mappings":";AAEA,OAAO,EAAC,YAAY,EAAC,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAC,gBAAgB,EAAC,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"sources":["../src/MultiParty/MultiParty.ts"],"names":[],"mappings":";AAEA,OAAO,EAAC,YAAY,EAAC,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAC,gBAAgB,EAAC,MAAM,aAAa,CAAC;AAK7C,eAAO,MAAM,gBAAgB,gBAAgB,CAAC;AAC9C,eAAO,MAAM,sBAAsB,uBAAuB,CAAC;AAC3D,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAEvC,oBAAY,kBAAkB;IAC1B,aAAa,kBAAkB;IAC/B,eAAe,oBAAoB;IACnC,iBAAiB,sBAAsB;IACvC,mBAAmB,wBAAwB;IAC3C,aAAa,kBAAkB;IAC/B,mBAAmB,wBAAwB;IAC3C,yBAAyB,8BAA8B;CAC1D;AAED,MAAM,WAAW,WAAW;IACxB,WAAW,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IAEpC,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC9B,UAAU,IAAI,IAAI,CAAC;IACnB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,WAAW,CAAC;CAC/E;AAED,8BAAsB,UAAW,SAAQ,YAAa,YAAW,WAAW;IACxE,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IAC7C,SAAS,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IAErC,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IACtC,QAAQ,CAAC,UAAU,IAAI,IAAI;IAC3B,QAAQ,CAAC,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;gBAE1B,QAAQ,EAAE,gBAAgB;CAIzC;AAED,eAAO,MAAM,oBAAoB,QAAa,QAAQ,OAAO,CAW5D,CAAC","file":"MultiParty.d.ts","sourcesContent":["import {MediaCapabilitiesHelper} from './MediaCapabilitiesHelper';\nimport {getMediaTracer} from '../MediaUtils/MediaTracer';\nimport {EventEmitter} from 'events';\nimport {ISessionSettings} from './Contracts';\nimport {CameraTypes} from '../MediaConstants';\n\nconst trace = getMediaTracer('Multiparty');\n\nexport const participantDomId = 'participant';\nexport const pinnedParticipantDomId = 'pinned-participant';\nexport const maxParticipantsNumber = 2;\n\nexport enum MULTI_PARTY_EVENTS {\n connectFailed = 'connectFailed',\n streamDestroyed = 'streamDestroyed',\n connectionCreated = 'connectionCreated',\n connectionDestroyed = 'connectionDestroyed',\n streamCreated = 'streamCreated',\n videoElementCreated = 'videoElementCreated',\n participantsNumberChanged = 'participantsNumberChanged'\n}\n\nexport interface IMultiParty {\n subscribers: Array<any> | undefined;\n\n connect(...args: any[]): void;\n disconnect(): void;\n switchCamera(): Promise<void>;\n on(event: string | symbol, listener: (...args: any[]) => void): IMultiParty;\n}\n\nexport abstract class MultiParty extends EventEmitter implements IMultiParty {\n abstract subscribers: Array<any> | undefined;\n protected settings: ISessionSettings;\n\n abstract connect(...args: any[]): void;\n abstract disconnect(): void;\n abstract switchCamera(): Promise<void>;\n\n constructor(settings: ISessionSettings) {\n super();\n this.settings = settings;\n }\n}\n\nexport const couldStartMultiparty = async (): Promise<boolean> => {\n try {\n const mediaCapabilitiesHelper = await MediaCapabilitiesHelper.init();\n\n return mediaCapabilitiesHelper.hasWebRTC();\n\n } catch (err) {\n trace.error(JSON.stringify(err));\n\n return false;\n }\n};\n"]}
|
|
@@ -194,7 +194,6 @@ var MULTI_PARTY_EVENTS;
|
|
|
194
194
|
MULTI_PARTY_EVENTS["streamCreated"] = "streamCreated";
|
|
195
195
|
MULTI_PARTY_EVENTS["videoElementCreated"] = "videoElementCreated";
|
|
196
196
|
MULTI_PARTY_EVENTS["participantsNumberChanged"] = "participantsNumberChanged";
|
|
197
|
-
MULTI_PARTY_EVENTS["videoAudioStatus"] = "videoAudioStatus";
|
|
198
197
|
})(MULTI_PARTY_EVENTS = exports.MULTI_PARTY_EVENTS || (exports.MULTI_PARTY_EVENTS = {}));
|
|
199
198
|
|
|
200
199
|
var MultiParty =
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["MultiParty/MultiParty.js"],"names":["__extends","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__","constructor","create","__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","apply","__generator","body","_","label","sent","t","trys","ops","f","y","g","verb","Symbol","iterator","n","v","op","TypeError","pop","length","push","defineProperty","exports","couldStartMultiparty","MultiParty","MULTI_PARTY_EVENTS","maxParticipantsNumber","pinnedParticipantDomId","participantDomId","MediaCapabilitiesHelper_1","require","MediaTracer_1","events_1","trace","getMediaTracer","_super","settings","_this","EventEmitter","mediaCapabilitiesHelper","err_1","_a","MediaCapabilitiesHelper","init","hasWebRTC","error","JSON","stringify"],"mappings":"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","file":"MultiParty.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 __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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.couldStartMultiparty = exports.MultiParty = exports.MULTI_PARTY_EVENTS = exports.maxParticipantsNumber = exports.pinnedParticipantDomId = exports.participantDomId = void 0;\nvar MediaCapabilitiesHelper_1 = require(\"./MediaCapabilitiesHelper\");\nvar MediaTracer_1 = require(\"../MediaUtils/MediaTracer\");\nvar events_1 = require(\"events\");\nvar trace = MediaTracer_1.getMediaTracer('Multiparty');\nexports.participantDomId = 'participant';\nexports.pinnedParticipantDomId = 'pinned-participant';\nexports.maxParticipantsNumber = 2;\nvar MULTI_PARTY_EVENTS;\n(function (MULTI_PARTY_EVENTS) {\n MULTI_PARTY_EVENTS[\"connectFailed\"] = \"connectFailed\";\n MULTI_PARTY_EVENTS[\"streamDestroyed\"] = \"streamDestroyed\";\n MULTI_PARTY_EVENTS[\"connectionCreated\"] = \"connectionCreated\";\n MULTI_PARTY_EVENTS[\"connectionDestroyed\"] = \"connectionDestroyed\";\n MULTI_PARTY_EVENTS[\"streamCreated\"] = \"streamCreated\";\n MULTI_PARTY_EVENTS[\"videoElementCreated\"] = \"videoElementCreated\";\n MULTI_PARTY_EVENTS[\"participantsNumberChanged\"] = \"participantsNumberChanged\";\n MULTI_PARTY_EVENTS[\"videoAudioStatus\"] = \"videoAudioStatus\";\n})(MULTI_PARTY_EVENTS = exports.MULTI_PARTY_EVENTS || (exports.MULTI_PARTY_EVENTS = {}));\nvar MultiParty = /** @class */ (function (_super) {\n __extends(MultiParty, _super);\n function MultiParty(settings) {\n var _this = _super.call(this) || this;\n _this.settings = settings;\n return _this;\n }\n return MultiParty;\n}(events_1.EventEmitter));\nexports.MultiParty = MultiParty;\nvar couldStartMultiparty = function () { return __awaiter(void 0, void 0, void 0, function () {\n var mediaCapabilitiesHelper, err_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, MediaCapabilitiesHelper_1.MediaCapabilitiesHelper.init()];\n case 1:\n mediaCapabilitiesHelper = _a.sent();\n return [2 /*return*/, mediaCapabilitiesHelper.hasWebRTC()];\n case 2:\n err_1 = _a.sent();\n trace.error(JSON.stringify(err_1));\n return [2 /*return*/, false];\n case 3: return [2 /*return*/];\n }\n });\n}); };\nexports.couldStartMultiparty = couldStartMultiparty;\n\n//# sourceMappingURL=MultiParty.js.map\n"]}
|
|
1
|
+
{"version":3,"sources":["MultiParty/MultiParty.js"],"names":["__extends","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__","constructor","create","__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","apply","__generator","body","_","label","sent","t","trys","ops","f","y","g","verb","Symbol","iterator","n","v","op","TypeError","pop","length","push","defineProperty","exports","couldStartMultiparty","MultiParty","MULTI_PARTY_EVENTS","maxParticipantsNumber","pinnedParticipantDomId","participantDomId","MediaCapabilitiesHelper_1","require","MediaTracer_1","events_1","trace","getMediaTracer","_super","settings","_this","EventEmitter","mediaCapabilitiesHelper","err_1","_a","MediaCapabilitiesHelper","init","hasWebRTC","error","JSON","stringify"],"mappings":"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","file":"MultiParty.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 __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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.couldStartMultiparty = exports.MultiParty = exports.MULTI_PARTY_EVENTS = exports.maxParticipantsNumber = exports.pinnedParticipantDomId = exports.participantDomId = void 0;\nvar MediaCapabilitiesHelper_1 = require(\"./MediaCapabilitiesHelper\");\nvar MediaTracer_1 = require(\"../MediaUtils/MediaTracer\");\nvar events_1 = require(\"events\");\nvar trace = MediaTracer_1.getMediaTracer('Multiparty');\nexports.participantDomId = 'participant';\nexports.pinnedParticipantDomId = 'pinned-participant';\nexports.maxParticipantsNumber = 2;\nvar MULTI_PARTY_EVENTS;\n(function (MULTI_PARTY_EVENTS) {\n MULTI_PARTY_EVENTS[\"connectFailed\"] = \"connectFailed\";\n MULTI_PARTY_EVENTS[\"streamDestroyed\"] = \"streamDestroyed\";\n MULTI_PARTY_EVENTS[\"connectionCreated\"] = \"connectionCreated\";\n MULTI_PARTY_EVENTS[\"connectionDestroyed\"] = \"connectionDestroyed\";\n MULTI_PARTY_EVENTS[\"streamCreated\"] = \"streamCreated\";\n MULTI_PARTY_EVENTS[\"videoElementCreated\"] = \"videoElementCreated\";\n MULTI_PARTY_EVENTS[\"participantsNumberChanged\"] = \"participantsNumberChanged\";\n})(MULTI_PARTY_EVENTS = exports.MULTI_PARTY_EVENTS || (exports.MULTI_PARTY_EVENTS = {}));\nvar MultiParty = /** @class */ (function (_super) {\n __extends(MultiParty, _super);\n function MultiParty(settings) {\n var _this = _super.call(this) || this;\n _this.settings = settings;\n return _this;\n }\n return MultiParty;\n}(events_1.EventEmitter));\nexports.MultiParty = MultiParty;\nvar couldStartMultiparty = function () { return __awaiter(void 0, void 0, void 0, function () {\n var mediaCapabilitiesHelper, err_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, MediaCapabilitiesHelper_1.MediaCapabilitiesHelper.init()];\n case 1:\n mediaCapabilitiesHelper = _a.sent();\n return [2 /*return*/, mediaCapabilitiesHelper.hasWebRTC()];\n case 2:\n err_1 = _a.sent();\n trace.error(JSON.stringify(err_1));\n return [2 /*return*/, false];\n case 3: return [2 /*return*/];\n }\n });\n}); };\nexports.couldStartMultiparty = couldStartMultiparty;\n\n//# sourceMappingURL=MultiParty.js.map\n"]}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { MultiParty } from './MultiParty';
|
|
2
2
|
import { ICredentials, ISessionSettings } from './Contracts';
|
|
3
|
+
import OT from '@opentok/client';
|
|
3
4
|
export declare class OpentokMultiparty extends MultiParty {
|
|
4
5
|
subscribers: Array<any>;
|
|
5
|
-
session
|
|
6
|
+
session?: OT.Session | null;
|
|
6
7
|
currentPublisher: any;
|
|
7
|
-
credentials: any;
|
|
8
8
|
participantCount: number;
|
|
9
|
-
get ownConnectionId(): string |
|
|
9
|
+
get ownConnectionId(): string | undefined;
|
|
10
10
|
connect: (credentials: ICredentials) => void;
|
|
11
11
|
disconnect: () => void;
|
|
12
12
|
couldStartPublishVideo: (settings: ISessionSettings) => Promise<boolean | Error>;
|
|
@@ -17,13 +17,19 @@ export declare class OpentokMultiparty extends MultiParty {
|
|
|
17
17
|
switchCamera: () => Promise<void>;
|
|
18
18
|
private getClientRole;
|
|
19
19
|
initPublisher: (settings: ISessionSettings) => void;
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
stream: any;
|
|
20
|
+
streamCreatedHandler: (event: OT.Event<"streamCreated", OT.Session> & {
|
|
21
|
+
stream: OT.Stream;
|
|
23
22
|
}) => void;
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
23
|
+
streamDestroyedHandler: (event: OT.Event<"streamDestroyed", OT.Session> & {
|
|
24
|
+
stream: OT.Stream;
|
|
25
|
+
reason: string;
|
|
26
|
+
}) => void;
|
|
27
|
+
connectionCreatedHandler: (event: OT.Event<"connectionCreated", OT.Session> & {
|
|
28
|
+
connection: OT.Connection;
|
|
29
|
+
}) => void;
|
|
30
|
+
connectionDestroyedHandler: (event: OT.Event<"connectionDestroyed", OT.Session> & {
|
|
31
|
+
connection: OT.Connection;
|
|
32
|
+
reason: string;
|
|
33
|
+
}) => void;
|
|
34
|
+
traceErrorCallback: (error?: Error | undefined) => void;
|
|
29
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/MultiParty/OpentokMultiparty.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4C,UAAU,EAA2C,MAAM,cAAc,CAAC;AAI7H,OAAO,EAAC,YAAY,EAAE,gBAAgB,EAAC,MAAM,aAAa,CAAC;AAe3D,qBAAa,iBAAkB,SAAQ,UAAU;IAC7C,WAAW,EAAE,KAAK,CAAC,GAAG,CAAC,CAAM;IAC7B,OAAO,EAAE,GAAG,CAAC;IACb,gBAAgB,EAAE,GAAG,CAAC;IACtB,WAAW,EAAE,GAAG,CAAC;IACjB,gBAAgB,SAAK;IAErB,IAAI,eAAe,IAAI,MAAM,GAAG,OAAO,CAEtC;IAED,OAAO,gBAAiB,YAAY,KAAG,IAAI,CAoCzC;IAEF,UAAU,QAAO,IAAI,CAYnB;IAEF,sBAAsB,aAAoB,gBAAgB,KAAG,QAAQ,OAAO,GAAG,KAAK,CAAC,CAYnF;IAEF,sBAAsB,aAAoB,gBAAgB,KAAG,QAAQ,OAAO,GAAG,KAAK,CAAC,CASnF;IAEF,eAAe,yBAAgC,gBAAgB,KAAG,QAAQ,IAAI,CAAC,CAwB7E;IAEF,YAAY,UAAiB,OAAO,KAAG,QAAQ,IAAI,CAAC,CAgBlD;IAEF,YAAY,UAAiB,OAAO,KAAG,QAAQ,IAAI,CAAC,CAgBlD;IAEF,YAAY,QAAa,QAAQ,IAAI,CAAC,CAmCpC;IAEF,OAAO,CAAC,aAAa;IAIrB,aAAa,aAAc,gBAAgB,KAAG,IAAI,CA6BhD;IAEF,mBAAmB,eAAgB,GAAG,KAAG,MAAM,CAEM;IAErD,oBAAoB;gBAAqB,GAAG;UAAK,IAAI,CAkDnD;IAEF,4BAA4B,UAAW,GAAG,KAAG,IAAI,CAW/C;IAEF,sBAAsB,UAAW,GAAG,KAAG,IAAI,CAOzC;IAEF,wBAAwB,UAAW,GAAG,KAAG,IAAI,CAc3C;IAEF,0BAA0B,UAAW,GAAG,KAAG,IAAI,CAY7C;IAEF,kBAAkB,UAAW,KAAK,KAAG,IAAI,CAEvC;CACL","file":"OpentokMultiparty.d.ts","sourcesContent":["import {maxParticipantsNumber, MULTI_PARTY_EVENTS, MultiParty, participantDomId, pinnedParticipantDomId} from './MultiParty';\nimport {CameraTypes, SessionClientRole} from '../MediaConstants';\nimport {getMediaTracer} from '../MediaUtils/MediaTracer';\nimport get from 'lodash/get';\nimport {ICredentials, ISessionSettings} from './Contracts';\nimport filter from 'lodash/filter';\nimport cloneDeep from 'lodash/cloneDeep';\nimport {MediaCapabilitiesHelper} from './MediaCapabilitiesHelper';\n\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst OT = require('@opentok/client');\nconst trace = getMediaTracer('Multiparty');\n\n// The preferred camera position to use for the video source\nenum OpentokFacingMode {\n USER = 'user',\n ENVIRONMENT = 'environment'\n}\n\nexport class OpentokMultiparty extends MultiParty {\n subscribers: Array<any> = [];\n session: any;\n currentPublisher: any;\n credentials: any;\n participantCount = 0;\n\n get ownConnectionId(): string | boolean {\n return this.session && this.session.connection && this.session.connection.connectionId;\n }\n\n connect = (credentials: ICredentials): void => {\n this.credentials = credentials;\n\n try {\n this.session = OT.initSession(credentials.apiKey, credentials.sessionId);\n } catch (err) {\n trace.error(JSON.stringify(err));\n this.emit(MULTI_PARTY_EVENTS.connectFailed, {meta: {err: JSON.stringify(err)}});\n\n return;\n }\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\n this.session.connect(this.credentials.token, async (error: any) => {\n if (error) {\n this.session.off();\n this.session = null;\n this.traceErrorCallback(error);\n this.emit(MULTI_PARTY_EVENTS.connectFailed, {meta: {err: JSON.stringify(error)}});\n\n return;\n }\n\n if (this.settings.defaultCamera === CameraTypes.NONE && this.settings.startWithAudioMuted) {\n trace.info('camera is none, no need to create publisher');\n\n return;\n }\n\n await this.createPublisher(this.settings);\n });\n };\n\n disconnect = (): void => {\n try {\n trace.info('Disconnecting from session');\n\n if (this.session) {\n this.session.disconnect();\n this.participantCount = 0;\n trace.info('Disconnection from session completed');\n }\n } catch (err) {\n trace.error(JSON.stringify(err));\n }\n };\n\n couldStartPublishVideo = async (settings: ISessionSettings): Promise<boolean | Error> => {\n try {\n const mediaCapabilitiesHelper = await MediaCapabilitiesHelper.init();\n\n return (settings.defaultCamera !== CameraTypes.NONE)\n ? mediaCapabilitiesHelper.hasCamera()\n : false;\n\n } catch (err) {\n trace.error(JSON.stringify(err));\n throw err;\n }\n };\n\n couldStartPublishAudio = async (settings: ISessionSettings): Promise<boolean | Error> => {\n try {\n const mediaCapabilitiesHelper = await MediaCapabilitiesHelper.init();\n\n return !settings.startWithAudioMuted && mediaCapabilitiesHelper.hasMicrophone();\n } catch (err) {\n trace.error(JSON.stringify(err));\n throw err;\n }\n };\n\n createPublisher = async (settingsForPublisher: ISessionSettings): Promise<void> => {\n const settings = cloneDeep(settingsForPublisher);\n const couldStartPublishVideo = await this.couldStartPublishVideo(settings);\n const couldStartPublishAudio = await this.couldStartPublishAudio(settings);\n\n if (!couldStartPublishVideo && !couldStartPublishAudio) {\n // FIXME: use emitter\n trace.error('could not create a publisher, due to lack of media capabilities or settings');\n\n return;\n }\n\n if (!couldStartPublishVideo) {\n settings.defaultCamera = CameraTypes.NONE;\n }\n\n if (!couldStartPublishAudio) {\n settings.startWithAudioMuted = true;\n }\n\n if (!this.currentPublisher) {\n this.initPublisher(settings);\n this.session.publish(this.currentPublisher, this.traceErrorCallback);\n }\n };\n\n publishAudio = async (value: boolean): Promise<void> => {\n const settings = cloneDeep(this.settings);\n\n settings.startWithAudioMuted = !value;\n\n if (value && !await this.couldStartPublishAudio(settings)) {\n trace.error('could not publish audio');\n\n return;\n }\n\n if (!this.currentPublisher) {\n await this.createPublisher(settings);\n } else {\n this.currentPublisher.publishAudio(value);\n }\n };\n\n publishVideo = async (value: boolean): Promise<void> => {\n const settings = cloneDeep(this.settings);\n\n settings.defaultCamera = value ? this.settings.defaultCamera : CameraTypes.NONE;\n\n if (value && !await this.couldStartPublishVideo(settings)) {\n trace.error('could not publish video');\n\n return;\n }\n\n if (!this.currentPublisher) {\n await this.createPublisher(settings);\n } else {\n this.currentPublisher.publishVideo(value);\n }\n };\n\n switchCamera = async (): Promise<void> => {\n try {\n const mediaCapabilitiesHelper = await MediaCapabilitiesHelper.init();\n\n if (!mediaCapabilitiesHelper.supportSwitchCamera) {\n throw new Error('Not Support switch camera');\n }\n\n let deviceId = '';\n let cameraType = CameraTypes.NONE;\n\n switch (this.settings.defaultCamera) {\n case CameraTypes.BACK:\n cameraType = CameraTypes.FRONT;\n deviceId = mediaCapabilitiesHelper.frontCameraDeviceId;\n break;\n case CameraTypes.FRONT:\n cameraType = CameraTypes.BACK;\n deviceId = mediaCapabilitiesHelper.backCameraDeviceId;\n break;\n default:\n throw new Error(`cameraType not valid: ${this.settings.defaultCamera}`);\n }\n\n return this.currentPublisher.setVideoSource(deviceId)\n .then(() => {\n this.settings.defaultCamera = cameraType;\n trace.info(`Success to switch camera to cameraType: ${cameraType}`);\n\n return;\n });\n } catch (err) {\n trace.error(JSON.stringify(err));\n throw err;\n }\n };\n\n private getClientRole(connection: any) {\n return (connection?.data?.clientRole) ? JSON.parse(connection.data).clientRole : 'default'; //fixme temp workaround for BE/Storybook\n }\n\n initPublisher = (settings: ISessionSettings): void => {\n const properties = {\n insertMode: 'append',\n fitMode: 'contain',\n width: '100%',\n height: '100%',\n publishAudio: !settings.startWithAudioMuted,\n publishVideo: settings.defaultCamera !== CameraTypes.NONE,\n facingMode: settings.defaultCamera === CameraTypes.FRONT ? OpentokFacingMode.USER : OpentokFacingMode.ENVIRONMENT\n };\n\n this.currentPublisher = OT.initPublisher(this.getParticipantDomId(this.session.connection),\n properties, this.traceErrorCallback);\n\n if (!this.currentPublisher) {\n trace.error('failed to init publisher');\n } else {\n this.currentPublisher.on('videoElementCreated', (event: any) => {\n trace.info('videoElementCreated', event);\n this.emit(MULTI_PARTY_EVENTS.videoElementCreated, event);\n });\n this.currentPublisher.on('streamDestroyed', (event: any) => {\n trace.info('Publisher stream destroyed', event);\n });\n this.currentPublisher.on('streamCreated', (event: any) => {\n this.emit(MULTI_PARTY_EVENTS.streamCreated, event);\n trace.info('publisher stream created', event, get(this.currentPublisher, 'stream.hasAudio'));\n });\n }\n };\n\n getParticipantDomId = (connection: any): string => ((this.getClientRole(connection) === SessionClientRole.AGENT)\n ? pinnedParticipantDomId\n : `${participantDomId}${this.participantCount}`);\n\n streamCreatedHandler = (event: { stream: any }): void => {\n trace.info('streamCreatedHandler', event.stream);\n const clientDiv = this.getParticipantDomId(event.stream && event.stream.connection);\n\n this.emit(MULTI_PARTY_EVENTS.streamCreated, {meta: {event, participantDomId: clientDiv}});\n\n const {stream} = event;\n const {connection} = stream || {connection: null};\n\n this.emit(MULTI_PARTY_EVENTS.videoAudioStatus, {\n hasVideo: stream && stream.hasVideo,\n hasAudio: stream && stream.hasAudio,\n participantDomId: clientDiv\n });\n\n console.log('streamCreatedHandler');\n console.log({\n hasVideo: stream && stream.hasVideo,\n hasAudio: stream && stream.hasAudio,\n participantDomId: clientDiv\n });\n\n if (!this.ownConnectionId || !stream || connection.connectionId === this.ownConnectionId) {\n return;\n }\n\n if (this.subscribers.length >= maxParticipantsNumber - 1) {\n trace.info(`a new subscriber cannot be added, as the number of participants reached its limit: ${maxParticipantsNumber}`);\n } else {\n const properties = {\n insertMode: 'append',\n fitMode: 'contain',\n width: '100%',\n height: '100%'\n };\n\n const subscriber = this.session.subscribe(event.stream, clientDiv, properties, (err: any) => {\n this.traceErrorCallback(err);\n\n subscriber.on('videoElementCreated', (event: any) => {\n trace.info('videoElementCreated', event);\n });\n });\n\n this.subscribers.push({\n subscriber,\n connectionId: connection.connectionId,\n clientRole: this.getClientRole(connection)\n });\n }\n };\n\n streamPropertyChangedHandler = (event: any): void => {\n trace.info('streamPropertyChangedHandler', event);\n console.log('streamPropertyChangedHandler');\n console.log(event);\n const {stream} = event;\n\n this.emit(MULTI_PARTY_EVENTS.videoAudioStatus, {\n hasVideo: stream && stream.hasVideo,\n hasAudio: stream && stream.hasAudio,\n participantDomId: this.getParticipantDomId(stream && stream.connection)\n });\n };\n\n streamDestroyedHandler = (event: any): void => {\n trace.info('streamDestroyedHandler', event);\n const {stream} = event;\n const destroyedConnectionId = stream && stream.connection && stream.connection.connectionId;\n\n this.emit(MULTI_PARTY_EVENTS.streamDestroyed, {meta: {event: JSON.stringify(event)}});\n this.subscribers = filter(this.subscribers, (subscriber) => subscriber.connectionId !== destroyedConnectionId);\n };\n\n connectionCreatedHandler = (event: any): void => {\n trace.info('connectionCreatedHandler', event);\n\n const {connection} = event;\n\n if (!this.ownConnectionId || !connection) {\n return;\n }\n\n ++this.participantCount;\n this.emit(MULTI_PARTY_EVENTS.participantsNumberChanged, this.participantCount);\n const clientRole = this.getClientRole(connection);\n\n this.emit(MULTI_PARTY_EVENTS.connectionCreated, {meta: {clientRole, event, participantDomId: this.getParticipantDomId(event && event.connection)}});\n };\n\n connectionDestroyedHandler = (event: any): void => {\n const {connection} = event;\n\n if (!this.ownConnectionId || !connection || connection.connectionId !== this.ownConnectionId) {\n return;\n }\n\n --this.participantCount;\n this.emit(MULTI_PARTY_EVENTS.participantsNumberChanged, this.participantCount);\n this.session = null;\n trace.info('connectionDestroyedHandler', event);\n this.emit(MULTI_PARTY_EVENTS.connectionDestroyed, {meta: {event: JSON.stringify(event)}});\n };\n\n traceErrorCallback = (error: Error): void => {\n trace.error(JSON.stringify(error));\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/MultiParty/OpentokMultiparty.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4C,UAAU,EAA2C,MAAM,cAAc,CAAC;AAI7H,OAAO,EAAC,YAAY,EAAE,gBAAgB,EAAC,MAAM,aAAa,CAAC;AAK3D,OAAO,EAAE,MAAM,iBAAiB,CAAC;AASjC,qBAAa,iBAAkB,SAAQ,UAAU;IAC7C,WAAW,EAAE,KAAK,CAAC,GAAG,CAAC,CAAM;IAC7B,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC;IAC5B,gBAAgB,EAAE,GAAG,CAAC;IACtB,gBAAgB,SAAK;IAErB,IAAI,eAAe,IAAI,MAAM,GAAG,SAAS,CAExC;IAED,OAAO,gBAAiB,YAAY,KAAG,IAAI,CAkCzC;IAEF,UAAU,QAAO,IAAI,CAYnB;IAEF,sBAAsB,aAAoB,gBAAgB,KAAG,QAAQ,OAAO,GAAG,KAAK,CAAC,CAYnF;IAEF,sBAAsB,aAAoB,gBAAgB,KAAG,QAAQ,OAAO,GAAG,KAAK,CAAC,CASnF;IAEF,eAAe,yBAAgC,gBAAgB,KAAG,QAAQ,IAAI,CAAC,CAwB7E;IAEF,YAAY,UAAiB,OAAO,KAAG,QAAQ,IAAI,CAAC,CAgBlD;IAEF,YAAY,UAAiB,OAAO,KAAG,QAAQ,IAAI,CAAC,CAgBlD;IAEF,YAAY,QAAa,QAAQ,IAAI,CAAC,CAmCpC;IAEF,OAAO,CAAC,aAAa;IAIrB,aAAa,aAAc,gBAAgB,KAAG,IAAI,CAiChD;IAEF,oBAAoB;gBACR,GAAG,MAAM;UACjB,IAAI,CAuCN;IAEF,sBAAsB;gBACV,GAAG,MAAM;gBACT,MAAM;UACd,IAAI,CAON;IAEF,wBAAwB;oBACR,GAAG,UAAU;UACzB,IAAI,CAaN;IAEF,0BAA0B;oBACV,GAAG,UAAU;gBACjB,MAAM;UACd,IAAI,CAYN;IAEF,kBAAkB,iCAAoB,IAAI,CAExC;CACL","file":"OpentokMultiparty.d.ts","sourcesContent":["import {maxParticipantsNumber, MULTI_PARTY_EVENTS, MultiParty, participantDomId, pinnedParticipantDomId} from './MultiParty';\nimport {CameraTypes, SessionClientRole} from '../MediaConstants';\nimport {getMediaTracer} from '../MediaUtils/MediaTracer';\nimport get from 'lodash/get';\nimport {ICredentials, ISessionSettings} from './Contracts';\nimport filter from 'lodash/filter';\nimport cloneDeep from 'lodash/cloneDeep';\nimport {MediaCapabilitiesHelper} from './MediaCapabilitiesHelper';\n\nimport OT from '@opentok/client';\nconst trace = getMediaTracer('Multiparty');\n\n// The preferred camera position to use for the video source\nenum OpentokFacingMode {\n USER = 'user',\n ENVIRONMENT = 'environment'\n}\n\nexport class OpentokMultiparty extends MultiParty {\n subscribers: Array<any> = [];\n session?: OT.Session | null;\n currentPublisher: any;\n participantCount = 0;\n\n get ownConnectionId(): string | undefined {\n return this.session?.connection?.connectionId;\n }\n\n connect = (credentials: ICredentials): void => {\n\n try {\n this.session = OT.initSession(credentials.apiKey, credentials.sessionId);\n } catch (err) {\n trace.error(JSON.stringify(err));\n this.emit(MULTI_PARTY_EVENTS.connectFailed, {meta: {err: JSON.stringify(err)}});\n\n return;\n }\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\n this.session.connect(credentials.token, async (error?: OT.OTError) => {\n if (error) {\n this.session?.off();\n this.session = null;\n this.traceErrorCallback(error);\n this.emit(MULTI_PARTY_EVENTS.connectFailed, {meta: {err: JSON.stringify(error)}});\n\n return;\n }\n\n if (this.settings.defaultCamera === CameraTypes.NONE && this.settings.startWithAudioMuted) {\n trace.info('camera is none, no need to create publisher');\n\n return;\n }\n\n await this.createPublisher(this.settings);\n });\n };\n\n disconnect = (): void => {\n try {\n trace.info('Disconnecting from session');\n\n if (this.session) {\n this.session.disconnect();\n this.participantCount = 0;\n trace.info('Disconnection from session completed');\n }\n } catch (err) {\n trace.error(JSON.stringify(err));\n }\n };\n\n couldStartPublishVideo = async (settings: ISessionSettings): Promise<boolean | Error> => {\n try {\n const mediaCapabilitiesHelper = await MediaCapabilitiesHelper.init();\n\n return (settings.defaultCamera !== CameraTypes.NONE)\n ? mediaCapabilitiesHelper.hasCamera()\n : false;\n\n } catch (err) {\n trace.error(JSON.stringify(err));\n throw err;\n }\n };\n\n couldStartPublishAudio = async (settings: ISessionSettings): Promise<boolean | Error> => {\n try {\n const mediaCapabilitiesHelper = await MediaCapabilitiesHelper.init();\n\n return !settings.startWithAudioMuted && mediaCapabilitiesHelper.hasMicrophone();\n } catch (err) {\n trace.error(JSON.stringify(err));\n throw err;\n }\n };\n\n createPublisher = async (settingsForPublisher: ISessionSettings): Promise<void> => {\n const settings = cloneDeep(settingsForPublisher);\n const couldStartPublishVideo = await this.couldStartPublishVideo(settings);\n const couldStartPublishAudio = await this.couldStartPublishAudio(settings);\n\n if (!couldStartPublishVideo && !couldStartPublishAudio) {\n // FIXME: use emitter\n trace.error('could not create a publisher, due to lack of media capabilities or settings');\n\n return;\n }\n\n if (!couldStartPublishVideo) {\n settings.defaultCamera = CameraTypes.NONE;\n }\n\n if (!couldStartPublishAudio) {\n settings.startWithAudioMuted = true;\n }\n\n if (!this.currentPublisher) {\n this.initPublisher(settings);\n this.session?.publish(this.currentPublisher, this.traceErrorCallback);\n }\n };\n\n publishAudio = async (value: boolean): Promise<void> => {\n const settings = cloneDeep(this.settings);\n\n settings.startWithAudioMuted = !value;\n\n if (value && !await this.couldStartPublishAudio(settings)) {\n trace.error('could not publish audio');\n\n return;\n }\n\n if (!this.currentPublisher) {\n await this.createPublisher(settings);\n } else {\n this.currentPublisher.publishAudio(value);\n }\n };\n\n publishVideo = async (value: boolean): Promise<void> => {\n const settings = cloneDeep(this.settings);\n\n settings.defaultCamera = value ? this.settings.defaultCamera : CameraTypes.NONE;\n\n if (value && !await this.couldStartPublishVideo(settings)) {\n trace.error('could not publish video');\n\n return;\n }\n\n if (!this.currentPublisher) {\n await this.createPublisher(settings);\n } else {\n this.currentPublisher.publishVideo(value);\n }\n };\n\n switchCamera = async (): Promise<void> => {\n try {\n const mediaCapabilitiesHelper = await MediaCapabilitiesHelper.init();\n\n if (!mediaCapabilitiesHelper.supportSwitchCamera) {\n throw new Error('Not Support switch camera');\n }\n\n let deviceId = '';\n let cameraType = CameraTypes.NONE;\n\n switch (this.settings.defaultCamera) {\n case CameraTypes.BACK:\n cameraType = CameraTypes.FRONT;\n deviceId = mediaCapabilitiesHelper.frontCameraDeviceId;\n break;\n case CameraTypes.FRONT:\n cameraType = CameraTypes.BACK;\n deviceId = mediaCapabilitiesHelper.backCameraDeviceId;\n break;\n default:\n throw new Error(`cameraType not valid: ${this.settings.defaultCamera}`);\n }\n\n return this.currentPublisher.setVideoSource(deviceId)\n .then(() => {\n this.settings.defaultCamera = cameraType;\n trace.info(`Success to switch camera to cameraType: ${cameraType}`);\n\n return;\n });\n } catch (err) {\n trace.error(JSON.stringify(err));\n throw err;\n }\n };\n\n private getClientRole(connection: any) {\n return (connection?.data?.clientRole) ? JSON.parse(connection.data).clientRole : 'default'; //fixme temp workaround for BE/Storybook\n }\n\n initPublisher = (settings: ISessionSettings): void => {\n const properties: OT.PublisherProperties = {\n insertMode: 'append',\n fitMode: 'contain',\n width: '100%',\n height: '100%',\n publishAudio: !settings.startWithAudioMuted,\n publishVideo: settings.defaultCamera !== CameraTypes.NONE,\n facingMode: settings.defaultCamera === CameraTypes.FRONT ? OpentokFacingMode.USER : OpentokFacingMode.ENVIRONMENT\n };\n\n // eslint-disable-next-line no-constant-condition\n const clientDiv = (this.getClientRole(this.session?.connection) === SessionClientRole.AGENT || 'default')\n ? pinnedParticipantDomId\n : `${participantDomId}${this.participantCount}`;\n\n this.currentPublisher = OT.initPublisher(clientDiv, properties, this.traceErrorCallback);\n\n if (!this.currentPublisher) {\n trace.error('failed to init publisher');\n } else {\n this.currentPublisher.on('videoElementCreated', (event: any) => {\n trace.info('videoElementCreated', event);\n this.emit(MULTI_PARTY_EVENTS.videoElementCreated, event);\n });\n this.currentPublisher.on('streamDestroyed', (event: any) => {\n trace.info('Publisher stream destroyed', event);\n });\n this.currentPublisher.on('streamCreated', (event: any) => {\n this.emit(MULTI_PARTY_EVENTS.streamCreated, event);\n trace.info('publisher stream created', event, get(this.currentPublisher, 'stream.hasAudio'));\n });\n }\n };\n\n streamCreatedHandler = (event: OT.Event<'streamCreated', OT.Session> & {\n stream: OT.Stream;\n }): void => {\n trace.info('streamCreatedHandler', event.stream);\n this.emit(MULTI_PARTY_EVENTS.streamCreated, event);\n\n const {stream} = event;\n const {connection} = stream || {connection: null};\n\n if (!this.ownConnectionId || !stream || connection.connectionId === this.ownConnectionId) {\n return;\n }\n\n if (this.subscribers.length >= maxParticipantsNumber - 1) {\n trace.info(`a new subscriber cannot be added, as the number of participants reached its limit: ${maxParticipantsNumber}`);\n } else {\n // eslint-disable-next-line no-constant-condition\n const clientDiv = (this.getClientRole(connection) === SessionClientRole.AGENT)\n ? pinnedParticipantDomId\n : `${participantDomId}${this.participantCount}`;\n const properties: OT.SubscriberProperties = {\n insertMode: 'append',\n fitMode: 'contain',\n width: '100%',\n height: '100%'\n };\n\n const subscriber = this.session?.subscribe(event.stream, clientDiv, properties, (err: any) => {\n this.traceErrorCallback(err);\n\n subscriber?.on('videoElementCreated', (event: any) => {\n trace.info('videoElementCreated', event);\n });\n });\n\n this.subscribers.push({\n subscriber,\n connectionId: connection.connectionId,\n clientRole: this.getClientRole(connection)\n });\n }\n };\n\n streamDestroyedHandler = (event: OT.Event<'streamDestroyed', OT.Session> & {\n stream: OT.Stream;\n reason: string;\n }): void => {\n trace.info('streamDestroyedHandler', event);\n const {stream} = event;\n const destroyedConnectionId = stream && stream.connection && stream.connection.connectionId;\n\n this.emit(MULTI_PARTY_EVENTS.streamDestroyed, {meta: {event: JSON.stringify(event)}});\n this.subscribers = filter(this.subscribers, (subscriber) => subscriber.connectionId !== destroyedConnectionId);\n };\n\n connectionCreatedHandler = (event: OT.Event<'connectionCreated', OT.Session> & {\n connection: OT.Connection;\n }): void => {\n trace.info('connectionCreatedHandler', event);\n const {connection} = event;\n\n if (!this.ownConnectionId || !connection) {\n return;\n }\n\n ++this.participantCount;\n this.emit(MULTI_PARTY_EVENTS.participantsNumberChanged, this.participantCount);\n const clientRole = this.getClientRole(connection);\n\n this.emit(MULTI_PARTY_EVENTS.connectionCreated, {meta: {clientRole, event: JSON.stringify(event)}});\n };\n\n connectionDestroyedHandler = (event: OT.Event<'connectionDestroyed', OT.Session> & {\n connection: OT.Connection;\n reason: string;\n }): void => {\n const {connection} = event;\n\n if (!this.ownConnectionId || !connection || connection.connectionId !== this.ownConnectionId) {\n return;\n }\n\n --this.participantCount;\n this.emit(MULTI_PARTY_EVENTS.participantsNumberChanged, this.participantCount);\n this.session = null;\n trace.info('connectionDestroyedHandler', event);\n this.emit(MULTI_PARTY_EVENTS.connectionDestroyed, {meta: {event: JSON.stringify(event)}});\n };\n\n traceErrorCallback = (error?: Error): void => {\n trace.error(JSON.stringify(error));\n };\n}\n"]}
|
|
@@ -192,10 +192,9 @@ var filter_1 = __importDefault(require("lodash/filter"));
|
|
|
192
192
|
|
|
193
193
|
var cloneDeep_1 = __importDefault(require("lodash/cloneDeep"));
|
|
194
194
|
|
|
195
|
-
var MediaCapabilitiesHelper_1 = require("./MediaCapabilitiesHelper");
|
|
195
|
+
var MediaCapabilitiesHelper_1 = require("./MediaCapabilitiesHelper");
|
|
196
196
|
|
|
197
|
-
|
|
198
|
-
var OT = require('@opentok/client');
|
|
197
|
+
var client_1 = __importDefault(require("@opentok/client"));
|
|
199
198
|
|
|
200
199
|
var trace = MediaTracer_1.getMediaTracer('Multiparty'); // The preferred camera position to use for the video source
|
|
201
200
|
|
|
@@ -218,10 +217,8 @@ function (_super) {
|
|
|
218
217
|
_this.participantCount = 0;
|
|
219
218
|
|
|
220
219
|
_this.connect = function (credentials) {
|
|
221
|
-
_this.credentials = credentials;
|
|
222
|
-
|
|
223
220
|
try {
|
|
224
|
-
_this.session =
|
|
221
|
+
_this.session = client_1["default"].initSession(credentials.apiKey, credentials.sessionId);
|
|
225
222
|
} catch (err) {
|
|
226
223
|
trace.error(JSON.stringify(err));
|
|
227
224
|
|
|
@@ -242,15 +239,15 @@ function (_super) {
|
|
|
242
239
|
|
|
243
240
|
_this.session.on('streamDestroyed', _this.streamDestroyedHandler);
|
|
244
241
|
|
|
245
|
-
_this.session.
|
|
246
|
-
|
|
247
|
-
_this.session.connect(_this.credentials.token, function (error) {
|
|
242
|
+
_this.session.connect(credentials.token, function (error) {
|
|
248
243
|
return __awaiter(_this, void 0, void 0, function () {
|
|
249
|
-
|
|
250
|
-
|
|
244
|
+
var _a;
|
|
245
|
+
|
|
246
|
+
return __generator(this, function (_b) {
|
|
247
|
+
switch (_b.label) {
|
|
251
248
|
case 0:
|
|
252
249
|
if (error) {
|
|
253
|
-
this.session.off();
|
|
250
|
+
(_a = this.session) === null || _a === void 0 ? void 0 : _a.off();
|
|
254
251
|
this.session = null;
|
|
255
252
|
this.traceErrorCallback(error);
|
|
256
253
|
this.emit(MultiParty_1.MULTI_PARTY_EVENTS.connectFailed, {
|
|
@@ -275,7 +272,7 @@ function (_super) {
|
|
|
275
272
|
, this.createPublisher(this.settings)];
|
|
276
273
|
|
|
277
274
|
case 1:
|
|
278
|
-
|
|
275
|
+
_b.sent();
|
|
279
276
|
|
|
280
277
|
return [2
|
|
281
278
|
/*return*/
|
|
@@ -368,8 +365,11 @@ function (_super) {
|
|
|
368
365
|
_this.createPublisher = function (settingsForPublisher) {
|
|
369
366
|
return __awaiter(_this, void 0, void 0, function () {
|
|
370
367
|
var settings, couldStartPublishVideo, couldStartPublishAudio;
|
|
371
|
-
|
|
372
|
-
|
|
368
|
+
|
|
369
|
+
var _a;
|
|
370
|
+
|
|
371
|
+
return __generator(this, function (_b) {
|
|
372
|
+
switch (_b.label) {
|
|
373
373
|
case 0:
|
|
374
374
|
settings = cloneDeep_1["default"](settingsForPublisher);
|
|
375
375
|
return [4
|
|
@@ -377,13 +377,13 @@ function (_super) {
|
|
|
377
377
|
, this.couldStartPublishVideo(settings)];
|
|
378
378
|
|
|
379
379
|
case 1:
|
|
380
|
-
couldStartPublishVideo =
|
|
380
|
+
couldStartPublishVideo = _b.sent();
|
|
381
381
|
return [4
|
|
382
382
|
/*yield*/
|
|
383
383
|
, this.couldStartPublishAudio(settings)];
|
|
384
384
|
|
|
385
385
|
case 2:
|
|
386
|
-
couldStartPublishAudio =
|
|
386
|
+
couldStartPublishAudio = _b.sent();
|
|
387
387
|
|
|
388
388
|
if (!couldStartPublishVideo && !couldStartPublishAudio) {
|
|
389
389
|
// FIXME: use emitter
|
|
@@ -403,7 +403,7 @@ function (_super) {
|
|
|
403
403
|
|
|
404
404
|
if (!this.currentPublisher) {
|
|
405
405
|
this.initPublisher(settings);
|
|
406
|
-
this.session.publish(this.currentPublisher, this.traceErrorCallback);
|
|
406
|
+
(_a = this.session) === null || _a === void 0 ? void 0 : _a.publish(this.currentPublisher, this.traceErrorCallback);
|
|
407
407
|
}
|
|
408
408
|
|
|
409
409
|
return [2
|
|
@@ -589,6 +589,8 @@ function (_super) {
|
|
|
589
589
|
};
|
|
590
590
|
|
|
591
591
|
_this.initPublisher = function (settings) {
|
|
592
|
+
var _a;
|
|
593
|
+
|
|
592
594
|
var properties = {
|
|
593
595
|
insertMode: 'append',
|
|
594
596
|
fitMode: 'contain',
|
|
@@ -597,8 +599,10 @@ function (_super) {
|
|
|
597
599
|
publishAudio: !settings.startWithAudioMuted,
|
|
598
600
|
publishVideo: settings.defaultCamera !== MediaConstants_1.CameraTypes.NONE,
|
|
599
601
|
facingMode: settings.defaultCamera === MediaConstants_1.CameraTypes.FRONT ? OpentokFacingMode.USER : OpentokFacingMode.ENVIRONMENT
|
|
600
|
-
};
|
|
601
|
-
|
|
602
|
+
}; // eslint-disable-next-line no-constant-condition
|
|
603
|
+
|
|
604
|
+
var clientDiv = _this.getClientRole((_a = _this.session) === null || _a === void 0 ? void 0 : _a.connection) === MediaConstants_1.SessionClientRole.AGENT || 'default' ? MultiParty_1.pinnedParticipantDomId : "" + MultiParty_1.participantDomId + _this.participantCount;
|
|
605
|
+
_this.currentPublisher = client_1["default"].initPublisher(clientDiv, properties, _this.traceErrorCallback);
|
|
602
606
|
|
|
603
607
|
if (!_this.currentPublisher) {
|
|
604
608
|
trace.error('failed to init publisher');
|
|
@@ -621,40 +625,18 @@ function (_super) {
|
|
|
621
625
|
}
|
|
622
626
|
};
|
|
623
627
|
|
|
624
|
-
_this.getParticipantDomId = function (connection) {
|
|
625
|
-
return _this.getClientRole(connection) === MediaConstants_1.SessionClientRole.AGENT ? MultiParty_1.pinnedParticipantDomId : "" + MultiParty_1.participantDomId + _this.participantCount;
|
|
626
|
-
};
|
|
627
|
-
|
|
628
628
|
_this.streamCreatedHandler = function (event) {
|
|
629
|
+
var _a;
|
|
630
|
+
|
|
629
631
|
trace.info('streamCreatedHandler', event.stream);
|
|
630
632
|
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
_this.emit(MultiParty_1.MULTI_PARTY_EVENTS.streamCreated, {
|
|
634
|
-
meta: {
|
|
635
|
-
event: event,
|
|
636
|
-
participantDomId: clientDiv
|
|
637
|
-
}
|
|
638
|
-
});
|
|
633
|
+
_this.emit(MultiParty_1.MULTI_PARTY_EVENTS.streamCreated, event);
|
|
639
634
|
|
|
640
635
|
var stream = event.stream;
|
|
641
636
|
var connection = (stream || {
|
|
642
637
|
connection: null
|
|
643
638
|
}).connection;
|
|
644
639
|
|
|
645
|
-
_this.emit(MultiParty_1.MULTI_PARTY_EVENTS.videoAudioStatus, {
|
|
646
|
-
hasVideo: stream && stream.hasVideo,
|
|
647
|
-
hasAudio: stream && stream.hasAudio,
|
|
648
|
-
participantDomId: clientDiv
|
|
649
|
-
});
|
|
650
|
-
|
|
651
|
-
console.log('streamCreatedHandler');
|
|
652
|
-
console.log({
|
|
653
|
-
hasVideo: stream && stream.hasVideo,
|
|
654
|
-
hasAudio: stream && stream.hasAudio,
|
|
655
|
-
participantDomId: clientDiv
|
|
656
|
-
});
|
|
657
|
-
|
|
658
640
|
if (!_this.ownConnectionId || !stream || connection.connectionId === _this.ownConnectionId) {
|
|
659
641
|
return;
|
|
660
642
|
}
|
|
@@ -662,17 +644,18 @@ function (_super) {
|
|
|
662
644
|
if (_this.subscribers.length >= MultiParty_1.maxParticipantsNumber - 1) {
|
|
663
645
|
trace.info("a new subscriber cannot be added, as the number of participants reached its limit: " + MultiParty_1.maxParticipantsNumber);
|
|
664
646
|
} else {
|
|
647
|
+
// eslint-disable-next-line no-constant-condition
|
|
648
|
+
var clientDiv = _this.getClientRole(connection) === MediaConstants_1.SessionClientRole.AGENT ? MultiParty_1.pinnedParticipantDomId : "" + MultiParty_1.participantDomId + _this.participantCount;
|
|
665
649
|
var properties = {
|
|
666
650
|
insertMode: 'append',
|
|
667
651
|
fitMode: 'contain',
|
|
668
652
|
width: '100%',
|
|
669
653
|
height: '100%'
|
|
670
654
|
};
|
|
671
|
-
|
|
672
|
-
var subscriber_1 = _this.session.subscribe(event.stream, clientDiv, properties, function (err) {
|
|
655
|
+
var subscriber_1 = (_a = _this.session) === null || _a === void 0 ? void 0 : _a.subscribe(event.stream, clientDiv, properties, function (err) {
|
|
673
656
|
_this.traceErrorCallback(err);
|
|
674
657
|
|
|
675
|
-
subscriber_1.on('videoElementCreated', function (event) {
|
|
658
|
+
subscriber_1 === null || subscriber_1 === void 0 ? void 0 : subscriber_1.on('videoElementCreated', function (event) {
|
|
676
659
|
trace.info('videoElementCreated', event);
|
|
677
660
|
});
|
|
678
661
|
});
|
|
@@ -685,19 +668,6 @@ function (_super) {
|
|
|
685
668
|
}
|
|
686
669
|
};
|
|
687
670
|
|
|
688
|
-
_this.streamPropertyChangedHandler = function (event) {
|
|
689
|
-
trace.info('streamPropertyChangedHandler', event);
|
|
690
|
-
console.log('streamPropertyChangedHandler');
|
|
691
|
-
console.log(event);
|
|
692
|
-
var stream = event.stream;
|
|
693
|
-
|
|
694
|
-
_this.emit(MultiParty_1.MULTI_PARTY_EVENTS.videoAudioStatus, {
|
|
695
|
-
hasVideo: stream && stream.hasVideo,
|
|
696
|
-
hasAudio: stream && stream.hasAudio,
|
|
697
|
-
participantDomId: _this.getParticipantDomId(stream && stream.connection)
|
|
698
|
-
});
|
|
699
|
-
};
|
|
700
|
-
|
|
701
671
|
_this.streamDestroyedHandler = function (event) {
|
|
702
672
|
trace.info('streamDestroyedHandler', event);
|
|
703
673
|
var stream = event.stream;
|
|
@@ -731,8 +701,7 @@ function (_super) {
|
|
|
731
701
|
_this.emit(MultiParty_1.MULTI_PARTY_EVENTS.connectionCreated, {
|
|
732
702
|
meta: {
|
|
733
703
|
clientRole: clientRole,
|
|
734
|
-
event: event
|
|
735
|
-
participantDomId: _this.getParticipantDomId(event && event.connection)
|
|
704
|
+
event: JSON.stringify(event)
|
|
736
705
|
}
|
|
737
706
|
});
|
|
738
707
|
};
|
|
@@ -767,7 +736,9 @@ function (_super) {
|
|
|
767
736
|
|
|
768
737
|
Object.defineProperty(OpentokMultiparty.prototype, "ownConnectionId", {
|
|
769
738
|
get: function get() {
|
|
770
|
-
|
|
739
|
+
var _a, _b;
|
|
740
|
+
|
|
741
|
+
return (_b = (_a = this.session) === null || _a === void 0 ? void 0 : _a.connection) === null || _b === void 0 ? void 0 : _b.connectionId;
|
|
771
742
|
},
|
|
772
743
|
enumerable: false,
|
|
773
744
|
configurable: true
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["MultiParty/OpentokMultiparty.js"],"names":["__extends","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__","constructor","create","__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","apply","__generator","body","_","label","sent","t","trys","ops","f","y","g","verb","Symbol","iterator","n","v","op","TypeError","pop","length","push","__importDefault","mod","__esModule","defineProperty","exports","OpentokMultiparty","MultiParty_1","require","MediaConstants_1","MediaTracer_1","get_1","filter_1","cloneDeep_1","MediaCapabilitiesHelper_1","OT","trace","getMediaTracer","OpentokFacingMode","_super","_this","arguments","subscribers","participantCount","connect","credentials","session","initSession","apiKey","sessionId","err","error","JSON","stringify","emit","MULTI_PARTY_EVENTS","connectFailed","meta","on","connectionCreatedHandler","connectionDestroyedHandler","streamCreatedHandler","streamDestroyedHandler","streamPropertyChangedHandler","token","_a","off","traceErrorCallback","settings","defaultCamera","CameraTypes","NONE","startWithAudioMuted","info","createPublisher","disconnect","couldStartPublishVideo","mediaCapabilitiesHelper","err_1","MediaCapabilitiesHelper","init","hasCamera","couldStartPublishAudio","err_2","hasMicrophone","settingsForPublisher","currentPublisher","initPublisher","publish","publishAudio","_b","publishVideo","switchCamera","deviceId","cameraType_1","err_3","supportSwitchCamera","Error","BACK","FRONT","frontCameraDeviceId","backCameraDeviceId","setVideoSource","properties","insertMode","fitMode","width","height","facingMode","USER","ENVIRONMENT","getParticipantDomId","connection","event","videoElementCreated","streamCreated","getClientRole","SessionClientRole","AGENT","pinnedParticipantDomId","participantDomId","stream","clientDiv","videoAudioStatus","hasVideo","hasAudio","console","log","ownConnectionId","connectionId","maxParticipantsNumber","subscriber_1","subscribe","subscriber","clientRole","destroyedConnectionId","streamDestroyed","participantsNumberChanged","connectionCreated","connectionDestroyed","get","enumerable","configurable","data","parse","MultiParty"],"mappings":"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","file":"OpentokMultiparty.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 __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 __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OpentokMultiparty = void 0;\nvar MultiParty_1 = require(\"./MultiParty\");\nvar MediaConstants_1 = require(\"../MediaConstants\");\nvar MediaTracer_1 = require(\"../MediaUtils/MediaTracer\");\nvar get_1 = __importDefault(require(\"lodash/get\"));\nvar filter_1 = __importDefault(require(\"lodash/filter\"));\nvar cloneDeep_1 = __importDefault(require(\"lodash/cloneDeep\"));\nvar MediaCapabilitiesHelper_1 = require(\"./MediaCapabilitiesHelper\");\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nvar OT = require('@opentok/client');\nvar trace = MediaTracer_1.getMediaTracer('Multiparty');\n// The preferred camera position to use for the video source\nvar OpentokFacingMode;\n(function (OpentokFacingMode) {\n OpentokFacingMode[\"USER\"] = \"user\";\n OpentokFacingMode[\"ENVIRONMENT\"] = \"environment\";\n})(OpentokFacingMode || (OpentokFacingMode = {}));\nvar OpentokMultiparty = /** @class */ (function (_super) {\n __extends(OpentokMultiparty, _super);\n function OpentokMultiparty() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.subscribers = [];\n _this.participantCount = 0;\n _this.connect = function (credentials) {\n _this.credentials = credentials;\n try {\n _this.session = OT.initSession(credentials.apiKey, credentials.sessionId);\n }\n catch (err) {\n trace.error(JSON.stringify(err));\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.connectFailed, { meta: { err: JSON.stringify(err) } });\n return;\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.connect(_this.credentials.token, function (error) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (error) {\n this.session.off();\n this.session = null;\n this.traceErrorCallback(error);\n this.emit(MultiParty_1.MULTI_PARTY_EVENTS.connectFailed, { meta: { err: JSON.stringify(error) } });\n return [2 /*return*/];\n }\n if (this.settings.defaultCamera === MediaConstants_1.CameraTypes.NONE && this.settings.startWithAudioMuted) {\n trace.info('camera is none, no need to create publisher');\n return [2 /*return*/];\n }\n return [4 /*yield*/, this.createPublisher(this.settings)];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n }); });\n };\n _this.disconnect = function () {\n try {\n trace.info('Disconnecting from session');\n if (_this.session) {\n _this.session.disconnect();\n _this.participantCount = 0;\n trace.info('Disconnection from session completed');\n }\n }\n catch (err) {\n trace.error(JSON.stringify(err));\n }\n };\n _this.couldStartPublishVideo = function (settings) { return __awaiter(_this, void 0, void 0, function () {\n var mediaCapabilitiesHelper, err_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, MediaCapabilitiesHelper_1.MediaCapabilitiesHelper.init()];\n case 1:\n mediaCapabilitiesHelper = _a.sent();\n return [2 /*return*/, (settings.defaultCamera !== MediaConstants_1.CameraTypes.NONE)\n ? mediaCapabilitiesHelper.hasCamera()\n : false];\n case 2:\n err_1 = _a.sent();\n trace.error(JSON.stringify(err_1));\n throw err_1;\n case 3: return [2 /*return*/];\n }\n });\n }); };\n _this.couldStartPublishAudio = function (settings) { return __awaiter(_this, void 0, void 0, function () {\n var mediaCapabilitiesHelper, err_2;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, MediaCapabilitiesHelper_1.MediaCapabilitiesHelper.init()];\n case 1:\n mediaCapabilitiesHelper = _a.sent();\n return [2 /*return*/, !settings.startWithAudioMuted && mediaCapabilitiesHelper.hasMicrophone()];\n case 2:\n err_2 = _a.sent();\n trace.error(JSON.stringify(err_2));\n throw err_2;\n case 3: return [2 /*return*/];\n }\n });\n }); };\n _this.createPublisher = function (settingsForPublisher) { return __awaiter(_this, void 0, void 0, function () {\n var settings, couldStartPublishVideo, couldStartPublishAudio;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n settings = cloneDeep_1.default(settingsForPublisher);\n return [4 /*yield*/, this.couldStartPublishVideo(settings)];\n case 1:\n couldStartPublishVideo = _a.sent();\n return [4 /*yield*/, this.couldStartPublishAudio(settings)];\n case 2:\n couldStartPublishAudio = _a.sent();\n if (!couldStartPublishVideo && !couldStartPublishAudio) {\n // FIXME: use emitter\n trace.error('could not create a publisher, due to lack of media capabilities or settings');\n return [2 /*return*/];\n }\n if (!couldStartPublishVideo) {\n settings.defaultCamera = MediaConstants_1.CameraTypes.NONE;\n }\n if (!couldStartPublishAudio) {\n settings.startWithAudioMuted = true;\n }\n if (!this.currentPublisher) {\n this.initPublisher(settings);\n this.session.publish(this.currentPublisher, this.traceErrorCallback);\n }\n return [2 /*return*/];\n }\n });\n }); };\n _this.publishAudio = function (value) { return __awaiter(_this, void 0, void 0, function () {\n var settings, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n settings = cloneDeep_1.default(this.settings);\n settings.startWithAudioMuted = !value;\n _a = value;\n if (!_a) return [3 /*break*/, 2];\n return [4 /*yield*/, this.couldStartPublishAudio(settings)];\n case 1:\n _a = !(_b.sent());\n _b.label = 2;\n case 2:\n if (_a) {\n trace.error('could not publish audio');\n return [2 /*return*/];\n }\n if (!!this.currentPublisher) return [3 /*break*/, 4];\n return [4 /*yield*/, this.createPublisher(settings)];\n case 3:\n _b.sent();\n return [3 /*break*/, 5];\n case 4:\n this.currentPublisher.publishAudio(value);\n _b.label = 5;\n case 5: return [2 /*return*/];\n }\n });\n }); };\n _this.publishVideo = function (value) { return __awaiter(_this, void 0, void 0, function () {\n var settings, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n settings = cloneDeep_1.default(this.settings);\n settings.defaultCamera = value ? this.settings.defaultCamera : MediaConstants_1.CameraTypes.NONE;\n _a = value;\n if (!_a) return [3 /*break*/, 2];\n return [4 /*yield*/, this.couldStartPublishVideo(settings)];\n case 1:\n _a = !(_b.sent());\n _b.label = 2;\n case 2:\n if (_a) {\n trace.error('could not publish video');\n return [2 /*return*/];\n }\n if (!!this.currentPublisher) return [3 /*break*/, 4];\n return [4 /*yield*/, this.createPublisher(settings)];\n case 3:\n _b.sent();\n return [3 /*break*/, 5];\n case 4:\n this.currentPublisher.publishVideo(value);\n _b.label = 5;\n case 5: return [2 /*return*/];\n }\n });\n }); };\n _this.switchCamera = function () { return __awaiter(_this, void 0, void 0, function () {\n var mediaCapabilitiesHelper, deviceId, cameraType_1, err_3;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, MediaCapabilitiesHelper_1.MediaCapabilitiesHelper.init()];\n case 1:\n mediaCapabilitiesHelper = _a.sent();\n if (!mediaCapabilitiesHelper.supportSwitchCamera) {\n throw new Error('Not Support switch camera');\n }\n deviceId = '';\n cameraType_1 = MediaConstants_1.CameraTypes.NONE;\n switch (this.settings.defaultCamera) {\n case MediaConstants_1.CameraTypes.BACK:\n cameraType_1 = MediaConstants_1.CameraTypes.FRONT;\n deviceId = mediaCapabilitiesHelper.frontCameraDeviceId;\n break;\n case MediaConstants_1.CameraTypes.FRONT:\n cameraType_1 = MediaConstants_1.CameraTypes.BACK;\n deviceId = mediaCapabilitiesHelper.backCameraDeviceId;\n break;\n default:\n throw new Error(\"cameraType not valid: \" + this.settings.defaultCamera);\n }\n return [2 /*return*/, this.currentPublisher.setVideoSource(deviceId)\n .then(function () {\n _this.settings.defaultCamera = cameraType_1;\n trace.info(\"Success to switch camera to cameraType: \" + cameraType_1);\n return;\n })];\n case 2:\n err_3 = _a.sent();\n trace.error(JSON.stringify(err_3));\n throw err_3;\n case 3: return [2 /*return*/];\n }\n });\n }); };\n _this.initPublisher = function (settings) {\n var properties = {\n insertMode: 'append',\n fitMode: 'contain',\n width: '100%',\n height: '100%',\n publishAudio: !settings.startWithAudioMuted,\n publishVideo: settings.defaultCamera !== MediaConstants_1.CameraTypes.NONE,\n facingMode: settings.defaultCamera === MediaConstants_1.CameraTypes.FRONT ? OpentokFacingMode.USER : OpentokFacingMode.ENVIRONMENT\n };\n _this.currentPublisher = OT.initPublisher(_this.getParticipantDomId(_this.session.connection), properties, _this.traceErrorCallback);\n if (!_this.currentPublisher) {\n trace.error('failed to init publisher');\n }\n else {\n _this.currentPublisher.on('videoElementCreated', function (event) {\n trace.info('videoElementCreated', event);\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.videoElementCreated, event);\n });\n _this.currentPublisher.on('streamDestroyed', function (event) {\n trace.info('Publisher stream destroyed', event);\n });\n _this.currentPublisher.on('streamCreated', function (event) {\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.streamCreated, event);\n trace.info('publisher stream created', event, get_1.default(_this.currentPublisher, 'stream.hasAudio'));\n });\n }\n };\n _this.getParticipantDomId = function (connection) { return ((_this.getClientRole(connection) === MediaConstants_1.SessionClientRole.AGENT)\n ? MultiParty_1.pinnedParticipantDomId\n : \"\" + MultiParty_1.participantDomId + _this.participantCount); };\n _this.streamCreatedHandler = function (event) {\n trace.info('streamCreatedHandler', event.stream);\n var clientDiv = _this.getParticipantDomId(event.stream && event.stream.connection);\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.streamCreated, { meta: { event: event, participantDomId: clientDiv } });\n var stream = event.stream;\n var connection = (stream || { connection: null }).connection;\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.videoAudioStatus, {\n hasVideo: stream && stream.hasVideo,\n hasAudio: stream && stream.hasAudio,\n participantDomId: clientDiv\n });\n console.log('streamCreatedHandler');\n console.log({\n hasVideo: stream && stream.hasVideo,\n hasAudio: stream && stream.hasAudio,\n participantDomId: clientDiv\n });\n if (!_this.ownConnectionId || !stream || connection.connectionId === _this.ownConnectionId) {\n return;\n }\n if (_this.subscribers.length >= MultiParty_1.maxParticipantsNumber - 1) {\n trace.info(\"a new subscriber cannot be added, as the number of participants reached its limit: \" + MultiParty_1.maxParticipantsNumber);\n }\n else {\n var properties = {\n insertMode: 'append',\n fitMode: 'contain',\n width: '100%',\n height: '100%'\n };\n var subscriber_1 = _this.session.subscribe(event.stream, clientDiv, properties, function (err) {\n _this.traceErrorCallback(err);\n subscriber_1.on('videoElementCreated', function (event) {\n trace.info('videoElementCreated', event);\n });\n });\n _this.subscribers.push({\n subscriber: subscriber_1,\n connectionId: connection.connectionId,\n clientRole: _this.getClientRole(connection)\n });\n }\n };\n _this.streamPropertyChangedHandler = function (event) {\n trace.info('streamPropertyChangedHandler', event);\n console.log('streamPropertyChangedHandler');\n console.log(event);\n var stream = event.stream;\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.videoAudioStatus, {\n hasVideo: stream && stream.hasVideo,\n hasAudio: stream && stream.hasAudio,\n participantDomId: _this.getParticipantDomId(stream && stream.connection)\n });\n };\n _this.streamDestroyedHandler = function (event) {\n trace.info('streamDestroyedHandler', event);\n var stream = event.stream;\n var destroyedConnectionId = stream && stream.connection && stream.connection.connectionId;\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.streamDestroyed, { meta: { event: JSON.stringify(event) } });\n _this.subscribers = filter_1.default(_this.subscribers, function (subscriber) { return subscriber.connectionId !== destroyedConnectionId; });\n };\n _this.connectionCreatedHandler = function (event) {\n trace.info('connectionCreatedHandler', event);\n var connection = event.connection;\n if (!_this.ownConnectionId || !connection) {\n return;\n }\n ++_this.participantCount;\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.participantsNumberChanged, _this.participantCount);\n var clientRole = _this.getClientRole(connection);\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.connectionCreated, { meta: { clientRole: clientRole, event: event, participantDomId: _this.getParticipantDomId(event && event.connection) } });\n };\n _this.connectionDestroyedHandler = function (event) {\n var connection = event.connection;\n if (!_this.ownConnectionId || !connection || connection.connectionId !== _this.ownConnectionId) {\n return;\n }\n --_this.participantCount;\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.participantsNumberChanged, _this.participantCount);\n _this.session = null;\n trace.info('connectionDestroyedHandler', event);\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.connectionDestroyed, { meta: { event: JSON.stringify(event) } });\n };\n _this.traceErrorCallback = function (error) {\n trace.error(JSON.stringify(error));\n };\n return _this;\n }\n Object.defineProperty(OpentokMultiparty.prototype, \"ownConnectionId\", {\n get: function () {\n return this.session && this.session.connection && this.session.connection.connectionId;\n },\n enumerable: false,\n configurable: true\n });\n OpentokMultiparty.prototype.getClientRole = function (connection) {\n var _a;\n return ((_a = connection === null || connection === void 0 ? void 0 : connection.data) === null || _a === void 0 ? void 0 : _a.clientRole) ? JSON.parse(connection.data).clientRole : 'default'; //fixme temp workaround for BE/Storybook\n };\n return OpentokMultiparty;\n}(MultiParty_1.MultiParty));\nexports.OpentokMultiparty = OpentokMultiparty;\n\n//# sourceMappingURL=OpentokMultiparty.js.map\n"]}
|
|
1
|
+
{"version":3,"sources":["MultiParty/OpentokMultiparty.js"],"names":["__extends","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__","constructor","create","__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","apply","__generator","body","_","label","sent","t","trys","ops","f","y","g","verb","Symbol","iterator","n","v","op","TypeError","pop","length","push","__importDefault","mod","__esModule","defineProperty","exports","OpentokMultiparty","MultiParty_1","require","MediaConstants_1","MediaTracer_1","get_1","filter_1","cloneDeep_1","MediaCapabilitiesHelper_1","client_1","trace","getMediaTracer","OpentokFacingMode","_super","_this","arguments","subscribers","participantCount","connect","credentials","session","initSession","apiKey","sessionId","err","error","JSON","stringify","emit","MULTI_PARTY_EVENTS","connectFailed","meta","on","connectionCreatedHandler","connectionDestroyedHandler","streamCreatedHandler","streamDestroyedHandler","token","_a","_b","off","traceErrorCallback","settings","defaultCamera","CameraTypes","NONE","startWithAudioMuted","info","createPublisher","disconnect","couldStartPublishVideo","mediaCapabilitiesHelper","err_1","MediaCapabilitiesHelper","init","hasCamera","couldStartPublishAudio","err_2","hasMicrophone","settingsForPublisher","currentPublisher","initPublisher","publish","publishAudio","publishVideo","switchCamera","deviceId","cameraType_1","err_3","supportSwitchCamera","Error","BACK","FRONT","frontCameraDeviceId","backCameraDeviceId","setVideoSource","properties","insertMode","fitMode","width","height","facingMode","USER","ENVIRONMENT","clientDiv","getClientRole","connection","SessionClientRole","AGENT","pinnedParticipantDomId","participantDomId","event","videoElementCreated","streamCreated","stream","ownConnectionId","connectionId","maxParticipantsNumber","subscriber_1","subscribe","subscriber","clientRole","destroyedConnectionId","streamDestroyed","participantsNumberChanged","connectionCreated","connectionDestroyed","get","enumerable","configurable","data","parse","MultiParty"],"mappings":"AAAA;;AACA,IAAIA,SAAS,GAAI,UAAQ,SAAKA,SAAd,IAA6B,YAAY;AACrD,MAAIC,cAAa,GAAG,uBAAUC,CAAV,EAAaC,CAAb,EAAgB;AAChCF,IAAAA,cAAa,GAAGG,MAAM,CAACC,cAAP,IACX;AAAEC,MAAAA,SAAS,EAAE;AAAb,iBAA6BC,KAA7B,IAAsC,UAAUL,CAAV,EAAaC,CAAb,EAAgB;AAAED,MAAAA,CAAC,CAACI,SAAF,GAAcH,CAAd;AAAkB,KAD/D,IAEZ,UAAUD,CAAV,EAAaC,CAAb,EAAgB;AAAE,WAAK,IAAIK,CAAT,IAAcL,CAAd;AAAiB,YAAIC,MAAM,CAACK,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqCR,CAArC,EAAwCK,CAAxC,CAAJ,EAAgDN,CAAC,CAACM,CAAD,CAAD,GAAOL,CAAC,CAACK,CAAD,CAAR;AAAjE;AAA+E,KAFrG;;AAGA,WAAOP,cAAa,CAACC,CAAD,EAAIC,CAAJ,CAApB;AACH,GALD;;AAMA,SAAO,UAAUD,CAAV,EAAaC,CAAb,EAAgB;AACnBF,IAAAA,cAAa,CAACC,CAAD,EAAIC,CAAJ,CAAb;;AACA,aAASS,EAAT,GAAc;AAAE,WAAKC,WAAL,GAAmBX,CAAnB;AAAuB;;AACvCA,IAAAA,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;AACH,GAJD;AAKH,CAZ2C,EAA5C;;AAaA,IAAIG,SAAS,GAAI,UAAQ,SAAKA,SAAd,IAA4B,UAAUC,OAAV,EAAmBC,UAAnB,EAA+BC,CAA/B,EAAkCC,SAAlC,EAA6C;AACrF,WAASC,KAAT,CAAeC,KAAf,EAAsB;AAAE,WAAOA,KAAK,YAAYH,CAAjB,GAAqBG,KAArB,GAA6B,IAAIH,CAAJ,CAAM,UAAUI,OAAV,EAAmB;AAAEA,MAAAA,OAAO,CAACD,KAAD,CAAP;AAAiB,KAA5C,CAApC;AAAoF;;AAC5G,SAAO,KAAKH,CAAC,KAAKA,CAAC,GAAGK,OAAT,CAAN,EAAyB,UAAUD,OAAV,EAAmBE,MAAnB,EAA2B;AACvD,aAASC,SAAT,CAAmBJ,KAAnB,EAA0B;AAAE,UAAI;AAAEK,QAAAA,IAAI,CAACP,SAAS,CAACQ,IAAV,CAAeN,KAAf,CAAD,CAAJ;AAA8B,OAApC,CAAqC,OAAOO,CAAP,EAAU;AAAEJ,QAAAA,MAAM,CAACI,CAAD,CAAN;AAAY;AAAE;;AAC3F,aAASC,QAAT,CAAkBR,KAAlB,EAAyB;AAAE,UAAI;AAAEK,QAAAA,IAAI,CAACP,SAAS,CAAC,OAAD,CAAT,CAAmBE,KAAnB,CAAD,CAAJ;AAAkC,OAAxC,CAAyC,OAAOO,CAAP,EAAU;AAAEJ,QAAAA,MAAM,CAACI,CAAD,CAAN;AAAY;AAAE;;AAC9F,aAASF,IAAT,CAAcI,MAAd,EAAsB;AAAEA,MAAAA,MAAM,CAACC,IAAP,GAAcT,OAAO,CAACQ,MAAM,CAACT,KAAR,CAArB,GAAsCD,KAAK,CAACU,MAAM,CAACT,KAAR,CAAL,CAAoBW,IAApB,CAAyBP,SAAzB,EAAoCI,QAApC,CAAtC;AAAsF;;AAC9GH,IAAAA,IAAI,CAAC,CAACP,SAAS,GAAGA,SAAS,CAACc,KAAV,CAAgBjB,OAAhB,EAAyBC,UAAU,IAAI,EAAvC,CAAb,EAAyDU,IAAzD,EAAD,CAAJ;AACH,GALM,CAAP;AAMH,CARD;;AASA,IAAIO,WAAW,GAAI,UAAQ,SAAKA,WAAd,IAA8B,UAAUlB,OAAV,EAAmBmB,IAAnB,EAAyB;AACrE,MAAIC,CAAC,GAAG;AAAEC,IAAAA,KAAK,EAAE,CAAT;AAAYC,IAAAA,IAAI,EAAE,gBAAW;AAAE,UAAIC,CAAC,CAAC,CAAD,CAAD,GAAO,CAAX,EAAc,MAAMA,CAAC,CAAC,CAAD,CAAP;AAAY,aAAOA,CAAC,CAAC,CAAD,CAAR;AAAc,KAAvE;AAAyEC,IAAAA,IAAI,EAAE,EAA/E;AAAmFC,IAAAA,GAAG,EAAE;AAAxF,GAAR;AAAA,MAAsGC,CAAtG;AAAA,MAAyGC,CAAzG;AAAA,MAA4GJ,CAA5G;AAAA,MAA+GK,CAA/G;AACA,SAAOA,CAAC,GAAG;AAAEjB,IAAAA,IAAI,EAAEkB,IAAI,CAAC,CAAD,CAAZ;AAAiB,aAASA,IAAI,CAAC,CAAD,CAA9B;AAAmC,cAAUA,IAAI,CAAC,CAAD;AAAjD,GAAJ,EAA4D,OAAOC,MAAP,KAAkB,UAAlB,KAAiCF,CAAC,CAACE,MAAM,CAACC,QAAR,CAAD,GAAqB,YAAW;AAAE,WAAO,IAAP;AAAc,GAAjF,CAA5D,EAAgJH,CAAvJ;;AACA,WAASC,IAAT,CAAcG,CAAd,EAAiB;AAAE,WAAO,UAAUC,CAAV,EAAa;AAAE,aAAOvB,IAAI,CAAC,CAACsB,CAAD,EAAIC,CAAJ,CAAD,CAAX;AAAsB,KAA5C;AAA+C;;AAClE,WAASvB,IAAT,CAAcwB,EAAd,EAAkB;AACd,QAAIR,CAAJ,EAAO,MAAM,IAAIS,SAAJ,CAAc,iCAAd,CAAN;;AACP,WAAOf,CAAP;AAAU,UAAI;AACV,YAAIM,CAAC,GAAG,CAAJ,EAAOC,CAAC,KAAKJ,CAAC,GAAGW,EAAE,CAAC,CAAD,CAAF,GAAQ,CAAR,GAAYP,CAAC,CAAC,QAAD,CAAb,GAA0BO,EAAE,CAAC,CAAD,CAAF,GAAQP,CAAC,CAAC,OAAD,CAAD,KAAe,CAACJ,CAAC,GAAGI,CAAC,CAAC,QAAD,CAAN,KAAqBJ,CAAC,CAAC5B,IAAF,CAAOgC,CAAP,CAArB,EAAgC,CAA/C,CAAR,GAA4DA,CAAC,CAAChB,IAAjG,CAAD,IAA2G,CAAC,CAACY,CAAC,GAAGA,CAAC,CAAC5B,IAAF,CAAOgC,CAAP,EAAUO,EAAE,CAAC,CAAD,CAAZ,CAAL,EAAuBnB,IAA9I,EAAoJ,OAAOQ,CAAP;AACpJ,YAAII,CAAC,GAAG,CAAJ,EAAOJ,CAAX,EAAcW,EAAE,GAAG,CAACA,EAAE,CAAC,CAAD,CAAF,GAAQ,CAAT,EAAYX,CAAC,CAAClB,KAAd,CAAL;;AACd,gBAAQ6B,EAAE,CAAC,CAAD,CAAV;AACI,eAAK,CAAL;AAAQ,eAAK,CAAL;AAAQX,YAAAA,CAAC,GAAGW,EAAJ;AAAQ;;AACxB,eAAK,CAAL;AAAQd,YAAAA,CAAC,CAACC,KAAF;AAAW,mBAAO;AAAEhB,cAAAA,KAAK,EAAE6B,EAAE,CAAC,CAAD,CAAX;AAAgBnB,cAAAA,IAAI,EAAE;AAAtB,aAAP;;AACnB,eAAK,CAAL;AAAQK,YAAAA,CAAC,CAACC,KAAF;AAAWM,YAAAA,CAAC,GAAGO,EAAE,CAAC,CAAD,CAAN;AAAWA,YAAAA,EAAE,GAAG,CAAC,CAAD,CAAL;AAAU;;AACxC,eAAK,CAAL;AAAQA,YAAAA,EAAE,GAAGd,CAAC,CAACK,GAAF,CAAMW,GAAN,EAAL;;AAAkBhB,YAAAA,CAAC,CAACI,IAAF,CAAOY,GAAP;;AAAc;;AACxC;AACI,gBAAI,EAAEb,CAAC,GAAGH,CAAC,CAACI,IAAN,EAAYD,CAAC,GAAGA,CAAC,CAACc,MAAF,GAAW,CAAX,IAAgBd,CAAC,CAACA,CAAC,CAACc,MAAF,GAAW,CAAZ,CAAnC,MAAuDH,EAAE,CAAC,CAAD,CAAF,KAAU,CAAV,IAAeA,EAAE,CAAC,CAAD,CAAF,KAAU,CAAhF,CAAJ,EAAwF;AAAEd,cAAAA,CAAC,GAAG,CAAJ;AAAO;AAAW;;AAC5G,gBAAIc,EAAE,CAAC,CAAD,CAAF,KAAU,CAAV,KAAgB,CAACX,CAAD,IAAOW,EAAE,CAAC,CAAD,CAAF,GAAQX,CAAC,CAAC,CAAD,CAAT,IAAgBW,EAAE,CAAC,CAAD,CAAF,GAAQX,CAAC,CAAC,CAAD,CAAhD,CAAJ,EAA2D;AAAEH,cAAAA,CAAC,CAACC,KAAF,GAAUa,EAAE,CAAC,CAAD,CAAZ;AAAiB;AAAQ;;AACtF,gBAAIA,EAAE,CAAC,CAAD,CAAF,KAAU,CAAV,IAAed,CAAC,CAACC,KAAF,GAAUE,CAAC,CAAC,CAAD,CAA9B,EAAmC;AAAEH,cAAAA,CAAC,CAACC,KAAF,GAAUE,CAAC,CAAC,CAAD,CAAX;AAAgBA,cAAAA,CAAC,GAAGW,EAAJ;AAAQ;AAAQ;;AACrE,gBAAIX,CAAC,IAAIH,CAAC,CAACC,KAAF,GAAUE,CAAC,CAAC,CAAD,CAApB,EAAyB;AAAEH,cAAAA,CAAC,CAACC,KAAF,GAAUE,CAAC,CAAC,CAAD,CAAX;;AAAgBH,cAAAA,CAAC,CAACK,GAAF,CAAMa,IAAN,CAAWJ,EAAX;;AAAgB;AAAQ;;AACnE,gBAAIX,CAAC,CAAC,CAAD,CAAL,EAAUH,CAAC,CAACK,GAAF,CAAMW,GAAN;;AACVhB,YAAAA,CAAC,CAACI,IAAF,CAAOY,GAAP;;AAAc;AAXtB;;AAaAF,QAAAA,EAAE,GAAGf,IAAI,CAACxB,IAAL,CAAUK,OAAV,EAAmBoB,CAAnB,CAAL;AACH,OAjBS,CAiBR,OAAOR,CAAP,EAAU;AAAEsB,QAAAA,EAAE,GAAG,CAAC,CAAD,EAAItB,CAAJ,CAAL;AAAae,QAAAA,CAAC,GAAG,CAAJ;AAAQ,OAjBzB,SAiBkC;AAAED,QAAAA,CAAC,GAAGH,CAAC,GAAG,CAAR;AAAY;AAjB1D;;AAkBA,QAAIW,EAAE,CAAC,CAAD,CAAF,GAAQ,CAAZ,EAAe,MAAMA,EAAE,CAAC,CAAD,CAAR;AAAa,WAAO;AAAE7B,MAAAA,KAAK,EAAE6B,EAAE,CAAC,CAAD,CAAF,GAAQA,EAAE,CAAC,CAAD,CAAV,GAAgB,KAAK,CAA9B;AAAiCnB,MAAAA,IAAI,EAAE;AAAvC,KAAP;AAC/B;AACJ,CA1BD;;AA2BA,IAAIwB,eAAe,GAAI,UAAQ,SAAKA,eAAd,IAAkC,UAAUC,GAAV,EAAe;AACnE,SAAQA,GAAG,IAAIA,GAAG,CAACC,UAAZ,GAA0BD,GAA1B,GAAgC;AAAE,eAAWA;AAAb,GAAvC;AACH,CAFD;;AAGApD,MAAM,CAACsD,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAAEtC,EAAAA,KAAK,EAAE;AAAT,CAA7C;AACAsC,OAAO,CAACC,iBAAR,GAA4B,KAAK,CAAjC;;AACA,IAAIC,YAAY,GAAGC,OAAO,CAAC,cAAD,CAA1B;;AACA,IAAIC,gBAAgB,GAAGD,OAAO,CAAC,mBAAD,CAA9B;;AACA,IAAIE,aAAa,GAAGF,OAAO,CAAC,2BAAD,CAA3B;;AACA,IAAIG,KAAK,GAAGV,eAAe,CAACO,OAAO,CAAC,YAAD,CAAR,CAA3B;;AACA,IAAII,QAAQ,GAAGX,eAAe,CAACO,OAAO,CAAC,eAAD,CAAR,CAA9B;;AACA,IAAIK,WAAW,GAAGZ,eAAe,CAACO,OAAO,CAAC,kBAAD,CAAR,CAAjC;;AACA,IAAIM,yBAAyB,GAAGN,OAAO,CAAC,2BAAD,CAAvC;;AACA,IAAIO,QAAQ,GAAGd,eAAe,CAACO,OAAO,CAAC,iBAAD,CAAR,CAA9B;;AACA,IAAIQ,KAAK,GAAGN,aAAa,CAACO,cAAd,CAA6B,YAA7B,CAAZ,C,CACA;;AACA,IAAIC,iBAAJ;;AACA,CAAC,UAAUA,iBAAV,EAA6B;AAC1BA,EAAAA,iBAAiB,CAAC,MAAD,CAAjB,GAA4B,MAA5B;AACAA,EAAAA,iBAAiB,CAAC,aAAD,CAAjB,GAAmC,aAAnC;AACH,CAHD,EAGGA,iBAAiB,KAAKA,iBAAiB,GAAG,EAAzB,CAHpB;;AAIA,IAAIZ,iBAAiB;AAAG;AAAe,UAAUa,MAAV,EAAkB;AACrDzE,EAAAA,SAAS,CAAC4D,iBAAD,EAAoBa,MAApB,CAAT;;AACA,WAASb,iBAAT,GAA6B;AACzB,QAAIc,KAAK,GAAGD,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACxC,KAAP,CAAa,IAAb,EAAmB0C,SAAnB,CAAnB,IAAoD,IAAhE;;AACAD,IAAAA,KAAK,CAACE,WAAN,GAAoB,EAApB;AACAF,IAAAA,KAAK,CAACG,gBAAN,GAAyB,CAAzB;;AACAH,IAAAA,KAAK,CAACI,OAAN,GAAgB,UAAUC,WAAV,EAAuB;AACnC,UAAI;AACAL,QAAAA,KAAK,CAACM,OAAN,GAAgBX,QAAQ,WAAR,CAAiBY,WAAjB,CAA6BF,WAAW,CAACG,MAAzC,EAAiDH,WAAW,CAACI,SAA7D,CAAhB;AACH,OAFD,CAGA,OAAOC,GAAP,EAAY;AACRd,QAAAA,KAAK,CAACe,KAAN,CAAYC,IAAI,CAACC,SAAL,CAAeH,GAAf,CAAZ;;AACAV,QAAAA,KAAK,CAACc,IAAN,CAAW3B,YAAY,CAAC4B,kBAAb,CAAgCC,aAA3C,EAA0D;AAAEC,UAAAA,IAAI,EAAE;AAAEP,YAAAA,GAAG,EAAEE,IAAI,CAACC,SAAL,CAAeH,GAAf;AAAP;AAAR,SAA1D;;AACA;AACH;;AACDV,MAAAA,KAAK,CAACM,OAAN,CAAcY,EAAd,CAAiB,mBAAjB,EAAsClB,KAAK,CAACmB,wBAA5C;;AACAnB,MAAAA,KAAK,CAACM,OAAN,CAAcY,EAAd,CAAiB,qBAAjB,EAAwClB,KAAK,CAACoB,0BAA9C;;AACApB,MAAAA,KAAK,CAACM,OAAN,CAAcY,EAAd,CAAiB,eAAjB,EAAkClB,KAAK,CAACqB,oBAAxC;;AACArB,MAAAA,KAAK,CAACM,OAAN,CAAcY,EAAd,CAAiB,iBAAjB,EAAoClB,KAAK,CAACsB,sBAA1C;;AACAtB,MAAAA,KAAK,CAACM,OAAN,CAAcF,OAAd,CAAsBC,WAAW,CAACkB,KAAlC,EAAyC,UAAUZ,KAAV,EAAiB;AAAE,eAAOtE,SAAS,CAAC2D,KAAD,EAAQ,KAAK,CAAb,EAAgB,KAAK,CAArB,EAAwB,YAAY;AAC5G,cAAIwB,EAAJ;;AACA,iBAAOhE,WAAW,CAAC,IAAD,EAAO,UAAUiE,EAAV,EAAc;AACnC,oBAAQA,EAAE,CAAC9D,KAAX;AACI,mBAAK,CAAL;AACI,oBAAIgD,KAAJ,EAAW;AACP,mBAACa,EAAE,GAAG,KAAKlB,OAAX,MAAwB,IAAxB,IAAgCkB,EAAE,KAAK,KAAK,CAA5C,GAAgD,KAAK,CAArD,GAAyDA,EAAE,CAACE,GAAH,EAAzD;AACA,uBAAKpB,OAAL,GAAe,IAAf;AACA,uBAAKqB,kBAAL,CAAwBhB,KAAxB;AACA,uBAAKG,IAAL,CAAU3B,YAAY,CAAC4B,kBAAb,CAAgCC,aAA1C,EAAyD;AAAEC,oBAAAA,IAAI,EAAE;AAAEP,sBAAAA,GAAG,EAAEE,IAAI,CAACC,SAAL,CAAeF,KAAf;AAAP;AAAR,mBAAzD;AACA,yBAAO,CAAC;AAAE;AAAH,mBAAP;AACH;;AACD,oBAAI,KAAKiB,QAAL,CAAcC,aAAd,KAAgCxC,gBAAgB,CAACyC,WAAjB,CAA6BC,IAA7D,IAAqE,KAAKH,QAAL,CAAcI,mBAAvF,EAA4G;AACxGpC,kBAAAA,KAAK,CAACqC,IAAN,CAAW,6CAAX;AACA,yBAAO,CAAC;AAAE;AAAH,mBAAP;AACH;;AACD,uBAAO,CAAC;AAAE;AAAH,kBAAc,KAAKC,eAAL,CAAqB,KAAKN,QAA1B,CAAd,CAAP;;AACJ,mBAAK,CAAL;AACIH,gBAAAA,EAAE,CAAC7D,IAAH;;AACA,uBAAO,CAAC;AAAE;AAAH,iBAAP;AAhBR;AAkBH,WAnBiB,CAAlB;AAoBH,SAtB2E,CAAhB;AAsBvD,OAtBL;AAuBH,KApCD;;AAqCAoC,IAAAA,KAAK,CAACmC,UAAN,GAAmB,YAAY;AAC3B,UAAI;AACAvC,QAAAA,KAAK,CAACqC,IAAN,CAAW,4BAAX;;AACA,YAAIjC,KAAK,CAACM,OAAV,EAAmB;AACfN,UAAAA,KAAK,CAACM,OAAN,CAAc6B,UAAd;;AACAnC,UAAAA,KAAK,CAACG,gBAAN,GAAyB,CAAzB;AACAP,UAAAA,KAAK,CAACqC,IAAN,CAAW,sCAAX;AACH;AACJ,OAPD,CAQA,OAAOvB,GAAP,EAAY;AACRd,QAAAA,KAAK,CAACe,KAAN,CAAYC,IAAI,CAACC,SAAL,CAAeH,GAAf,CAAZ;AACH;AACJ,KAZD;;AAaAV,IAAAA,KAAK,CAACoC,sBAAN,GAA+B,UAAUR,QAAV,EAAoB;AAAE,aAAOvF,SAAS,CAAC2D,KAAD,EAAQ,KAAK,CAAb,EAAgB,KAAK,CAArB,EAAwB,YAAY;AACrG,YAAIqC,uBAAJ,EAA6BC,KAA7B;AACA,eAAO9E,WAAW,CAAC,IAAD,EAAO,UAAUgE,EAAV,EAAc;AACnC,kBAAQA,EAAE,CAAC7D,KAAX;AACI,iBAAK,CAAL;AACI6D,cAAAA,EAAE,CAAC1D,IAAH,CAAQc,IAAR,CAAa,CAAC,CAAD,EAAI,CAAJ,GAAS,CAAT,CAAb;;AACA,qBAAO,CAAC;AAAE;AAAH,gBAAcc,yBAAyB,CAAC6C,uBAA1B,CAAkDC,IAAlD,EAAd,CAAP;;AACJ,iBAAK,CAAL;AACIH,cAAAA,uBAAuB,GAAGb,EAAE,CAAC5D,IAAH,EAA1B;AACA,qBAAO,CAAC;AAAE;AAAH,gBAAgBgE,QAAQ,CAACC,aAAT,KAA2BxC,gBAAgB,CAACyC,WAAjB,CAA6BC,IAAzD,GACZM,uBAAuB,CAACI,SAAxB,EADY,GAEZ,KAFH,CAAP;;AAGJ,iBAAK,CAAL;AACIH,cAAAA,KAAK,GAAGd,EAAE,CAAC5D,IAAH,EAAR;AACAgC,cAAAA,KAAK,CAACe,KAAN,CAAYC,IAAI,CAACC,SAAL,CAAeyB,KAAf,CAAZ;AACA,oBAAMA,KAAN;;AACJ,iBAAK,CAAL;AAAQ,qBAAO,CAAC;AAAE;AAAH,eAAP;AAbZ;AAeH,SAhBiB,CAAlB;AAiBH,OAnBoE,CAAhB;AAmBhD,KAnBL;;AAoBAtC,IAAAA,KAAK,CAAC0C,sBAAN,GAA+B,UAAUd,QAAV,EAAoB;AAAE,aAAOvF,SAAS,CAAC2D,KAAD,EAAQ,KAAK,CAAb,EAAgB,KAAK,CAArB,EAAwB,YAAY;AACrG,YAAIqC,uBAAJ,EAA6BM,KAA7B;AACA,eAAOnF,WAAW,CAAC,IAAD,EAAO,UAAUgE,EAAV,EAAc;AACnC,kBAAQA,EAAE,CAAC7D,KAAX;AACI,iBAAK,CAAL;AACI6D,cAAAA,EAAE,CAAC1D,IAAH,CAAQc,IAAR,CAAa,CAAC,CAAD,EAAI,CAAJ,GAAS,CAAT,CAAb;;AACA,qBAAO,CAAC;AAAE;AAAH,gBAAcc,yBAAyB,CAAC6C,uBAA1B,CAAkDC,IAAlD,EAAd,CAAP;;AACJ,iBAAK,CAAL;AACIH,cAAAA,uBAAuB,GAAGb,EAAE,CAAC5D,IAAH,EAA1B;AACA,qBAAO,CAAC;AAAE;AAAH,gBAAe,CAACgE,QAAQ,CAACI,mBAAV,IAAiCK,uBAAuB,CAACO,aAAxB,EAAhD,CAAP;;AACJ,iBAAK,CAAL;AACID,cAAAA,KAAK,GAAGnB,EAAE,CAAC5D,IAAH,EAAR;AACAgC,cAAAA,KAAK,CAACe,KAAN,CAAYC,IAAI,CAACC,SAAL,CAAe8B,KAAf,CAAZ;AACA,oBAAMA,KAAN;;AACJ,iBAAK,CAAL;AAAQ,qBAAO,CAAC;AAAE;AAAH,eAAP;AAXZ;AAaH,SAdiB,CAAlB;AAeH,OAjBoE,CAAhB;AAiBhD,KAjBL;;AAkBA3C,IAAAA,KAAK,CAACkC,eAAN,GAAwB,UAAUW,oBAAV,EAAgC;AAAE,aAAOxG,SAAS,CAAC2D,KAAD,EAAQ,KAAK,CAAb,EAAgB,KAAK,CAArB,EAAwB,YAAY;AAC1G,YAAI4B,QAAJ,EAAcQ,sBAAd,EAAsCM,sBAAtC;;AACA,YAAIlB,EAAJ;;AACA,eAAOhE,WAAW,CAAC,IAAD,EAAO,UAAUiE,EAAV,EAAc;AACnC,kBAAQA,EAAE,CAAC9D,KAAX;AACI,iBAAK,CAAL;AACIiE,cAAAA,QAAQ,GAAGnC,WAAW,WAAX,CAAoBoD,oBAApB,CAAX;AACA,qBAAO,CAAC;AAAE;AAAH,gBAAc,KAAKT,sBAAL,CAA4BR,QAA5B,CAAd,CAAP;;AACJ,iBAAK,CAAL;AACIQ,cAAAA,sBAAsB,GAAGX,EAAE,CAAC7D,IAAH,EAAzB;AACA,qBAAO,CAAC;AAAE;AAAH,gBAAc,KAAK8E,sBAAL,CAA4Bd,QAA5B,CAAd,CAAP;;AACJ,iBAAK,CAAL;AACIc,cAAAA,sBAAsB,GAAGjB,EAAE,CAAC7D,IAAH,EAAzB;;AACA,kBAAI,CAACwE,sBAAD,IAA2B,CAACM,sBAAhC,EAAwD;AACpD;AACA9C,gBAAAA,KAAK,CAACe,KAAN,CAAY,6EAAZ;AACA,uBAAO,CAAC;AAAE;AAAH,iBAAP;AACH;;AACD,kBAAI,CAACyB,sBAAL,EAA6B;AACzBR,gBAAAA,QAAQ,CAACC,aAAT,GAAyBxC,gBAAgB,CAACyC,WAAjB,CAA6BC,IAAtD;AACH;;AACD,kBAAI,CAACW,sBAAL,EAA6B;AACzBd,gBAAAA,QAAQ,CAACI,mBAAT,GAA+B,IAA/B;AACH;;AACD,kBAAI,CAAC,KAAKc,gBAAV,EAA4B;AACxB,qBAAKC,aAAL,CAAmBnB,QAAnB;AACA,iBAACJ,EAAE,GAAG,KAAKlB,OAAX,MAAwB,IAAxB,IAAgCkB,EAAE,KAAK,KAAK,CAA5C,GAAgD,KAAK,CAArD,GAAyDA,EAAE,CAACwB,OAAH,CAAW,KAAKF,gBAAhB,EAAkC,KAAKnB,kBAAvC,CAAzD;AACH;;AACD,qBAAO,CAAC;AAAE;AAAH,eAAP;AAxBR;AA0BH,SA3BiB,CAAlB;AA4BH,OA/ByE,CAAhB;AA+BrD,KA/BL;;AAgCA3B,IAAAA,KAAK,CAACiD,YAAN,GAAqB,UAAUtG,KAAV,EAAiB;AAAE,aAAON,SAAS,CAAC2D,KAAD,EAAQ,KAAK,CAAb,EAAgB,KAAK,CAArB,EAAwB,YAAY;AACxF,YAAI4B,QAAJ,EAAcJ,EAAd;;AACA,eAAOhE,WAAW,CAAC,IAAD,EAAO,UAAUiE,EAAV,EAAc;AACnC,kBAAQA,EAAE,CAAC9D,KAAX;AACI,iBAAK,CAAL;AACIiE,cAAAA,QAAQ,GAAGnC,WAAW,WAAX,CAAoB,KAAKmC,QAAzB,CAAX;AACAA,cAAAA,QAAQ,CAACI,mBAAT,GAA+B,CAACrF,KAAhC;AACA6E,cAAAA,EAAE,GAAG7E,KAAL;AACA,kBAAI,CAAC6E,EAAL,EAAS,OAAO,CAAC;AAAE;AAAH,gBAAc,CAAd,CAAP;AACT,qBAAO,CAAC;AAAE;AAAH,gBAAc,KAAKkB,sBAAL,CAA4Bd,QAA5B,CAAd,CAAP;;AACJ,iBAAK,CAAL;AACIJ,cAAAA,EAAE,GAAG,CAAEC,EAAE,CAAC7D,IAAH,EAAP;AACA6D,cAAAA,EAAE,CAAC9D,KAAH,GAAW,CAAX;;AACJ,iBAAK,CAAL;AACI,kBAAI6D,EAAJ,EAAQ;AACJ5B,gBAAAA,KAAK,CAACe,KAAN,CAAY,yBAAZ;AACA,uBAAO,CAAC;AAAE;AAAH,iBAAP;AACH;;AACD,kBAAI,CAAC,CAAC,KAAKmC,gBAAX,EAA6B,OAAO,CAAC;AAAE;AAAH,gBAAc,CAAd,CAAP;AAC7B,qBAAO,CAAC;AAAE;AAAH,gBAAc,KAAKZ,eAAL,CAAqBN,QAArB,CAAd,CAAP;;AACJ,iBAAK,CAAL;AACIH,cAAAA,EAAE,CAAC7D,IAAH;;AACA,qBAAO,CAAC;AAAE;AAAH,gBAAc,CAAd,CAAP;;AACJ,iBAAK,CAAL;AACI,mBAAKkF,gBAAL,CAAsBG,YAAtB,CAAmCtG,KAAnC;AACA8E,cAAAA,EAAE,CAAC9D,KAAH,GAAW,CAAX;;AACJ,iBAAK,CAAL;AAAQ,qBAAO,CAAC;AAAE;AAAH,eAAP;AAvBZ;AAyBH,SA1BiB,CAAlB;AA2BH,OA7BuD,CAAhB;AA6BnC,KA7BL;;AA8BAqC,IAAAA,KAAK,CAACkD,YAAN,GAAqB,UAAUvG,KAAV,EAAiB;AAAE,aAAON,SAAS,CAAC2D,KAAD,EAAQ,KAAK,CAAb,EAAgB,KAAK,CAArB,EAAwB,YAAY;AACxF,YAAI4B,QAAJ,EAAcJ,EAAd;;AACA,eAAOhE,WAAW,CAAC,IAAD,EAAO,UAAUiE,EAAV,EAAc;AACnC,kBAAQA,EAAE,CAAC9D,KAAX;AACI,iBAAK,CAAL;AACIiE,cAAAA,QAAQ,GAAGnC,WAAW,WAAX,CAAoB,KAAKmC,QAAzB,CAAX;AACAA,cAAAA,QAAQ,CAACC,aAAT,GAAyBlF,KAAK,GAAG,KAAKiF,QAAL,CAAcC,aAAjB,GAAiCxC,gBAAgB,CAACyC,WAAjB,CAA6BC,IAA5F;AACAP,cAAAA,EAAE,GAAG7E,KAAL;AACA,kBAAI,CAAC6E,EAAL,EAAS,OAAO,CAAC;AAAE;AAAH,gBAAc,CAAd,CAAP;AACT,qBAAO,CAAC;AAAE;AAAH,gBAAc,KAAKY,sBAAL,CAA4BR,QAA5B,CAAd,CAAP;;AACJ,iBAAK,CAAL;AACIJ,cAAAA,EAAE,GAAG,CAAEC,EAAE,CAAC7D,IAAH,EAAP;AACA6D,cAAAA,EAAE,CAAC9D,KAAH,GAAW,CAAX;;AACJ,iBAAK,CAAL;AACI,kBAAI6D,EAAJ,EAAQ;AACJ5B,gBAAAA,KAAK,CAACe,KAAN,CAAY,yBAAZ;AACA,uBAAO,CAAC;AAAE;AAAH,iBAAP;AACH;;AACD,kBAAI,CAAC,CAAC,KAAKmC,gBAAX,EAA6B,OAAO,CAAC;AAAE;AAAH,gBAAc,CAAd,CAAP;AAC7B,qBAAO,CAAC;AAAE;AAAH,gBAAc,KAAKZ,eAAL,CAAqBN,QAArB,CAAd,CAAP;;AACJ,iBAAK,CAAL;AACIH,cAAAA,EAAE,CAAC7D,IAAH;;AACA,qBAAO,CAAC;AAAE;AAAH,gBAAc,CAAd,CAAP;;AACJ,iBAAK,CAAL;AACI,mBAAKkF,gBAAL,CAAsBI,YAAtB,CAAmCvG,KAAnC;AACA8E,cAAAA,EAAE,CAAC9D,KAAH,GAAW,CAAX;;AACJ,iBAAK,CAAL;AAAQ,qBAAO,CAAC;AAAE;AAAH,eAAP;AAvBZ;AAyBH,SA1BiB,CAAlB;AA2BH,OA7BuD,CAAhB;AA6BnC,KA7BL;;AA8BAqC,IAAAA,KAAK,CAACmD,YAAN,GAAqB,YAAY;AAAE,aAAO9G,SAAS,CAAC2D,KAAD,EAAQ,KAAK,CAAb,EAAgB,KAAK,CAArB,EAAwB,YAAY;AACnF,YAAIqC,uBAAJ,EAA6Be,QAA7B,EAAuCC,YAAvC,EAAqDC,KAArD;;AACA,YAAItD,KAAK,GAAG,IAAZ;;AACA,eAAOxC,WAAW,CAAC,IAAD,EAAO,UAAUgE,EAAV,EAAc;AACnC,kBAAQA,EAAE,CAAC7D,KAAX;AACI,iBAAK,CAAL;AACI6D,cAAAA,EAAE,CAAC1D,IAAH,CAAQc,IAAR,CAAa,CAAC,CAAD,EAAI,CAAJ,GAAS,CAAT,CAAb;;AACA,qBAAO,CAAC;AAAE;AAAH,gBAAcc,yBAAyB,CAAC6C,uBAA1B,CAAkDC,IAAlD,EAAd,CAAP;;AACJ,iBAAK,CAAL;AACIH,cAAAA,uBAAuB,GAAGb,EAAE,CAAC5D,IAAH,EAA1B;;AACA,kBAAI,CAACyE,uBAAuB,CAACkB,mBAA7B,EAAkD;AAC9C,sBAAM,IAAIC,KAAJ,CAAU,2BAAV,CAAN;AACH;;AACDJ,cAAAA,QAAQ,GAAG,EAAX;AACAC,cAAAA,YAAY,GAAGhE,gBAAgB,CAACyC,WAAjB,CAA6BC,IAA5C;;AACA,sBAAQ,KAAKH,QAAL,CAAcC,aAAtB;AACI,qBAAKxC,gBAAgB,CAACyC,WAAjB,CAA6B2B,IAAlC;AACIJ,kBAAAA,YAAY,GAAGhE,gBAAgB,CAACyC,WAAjB,CAA6B4B,KAA5C;AACAN,kBAAAA,QAAQ,GAAGf,uBAAuB,CAACsB,mBAAnC;AACA;;AACJ,qBAAKtE,gBAAgB,CAACyC,WAAjB,CAA6B4B,KAAlC;AACIL,kBAAAA,YAAY,GAAGhE,gBAAgB,CAACyC,WAAjB,CAA6B2B,IAA5C;AACAL,kBAAAA,QAAQ,GAAGf,uBAAuB,CAACuB,kBAAnC;AACA;;AACJ;AACI,wBAAM,IAAIJ,KAAJ,CAAU,2BAA2B,KAAK5B,QAAL,CAAcC,aAAnD,CAAN;AAVR;;AAYA,qBAAO,CAAC;AAAE;AAAH,gBAAe,KAAKiB,gBAAL,CAAsBe,cAAtB,CAAqCT,QAArC,EACb9F,IADa,CACR,YAAY;AAClB0C,gBAAAA,KAAK,CAAC4B,QAAN,CAAeC,aAAf,GAA+BwB,YAA/B;AACAzD,gBAAAA,KAAK,CAACqC,IAAN,CAAW,6CAA6CoB,YAAxD;AACA;AACH,eALiB,CAAf,CAAP;;AAMJ,iBAAK,CAAL;AACIC,cAAAA,KAAK,GAAG9B,EAAE,CAAC5D,IAAH,EAAR;AACAgC,cAAAA,KAAK,CAACe,KAAN,CAAYC,IAAI,CAACC,SAAL,CAAeyC,KAAf,CAAZ;AACA,oBAAMA,KAAN;;AACJ,iBAAK,CAAL;AAAQ,qBAAO,CAAC;AAAE;AAAH,eAAP;AAjCZ;AAmCH,SApCiB,CAAlB;AAqCH,OAxCkD,CAAhB;AAwC9B,KAxCL;;AAyCAtD,IAAAA,KAAK,CAAC+C,aAAN,GAAsB,UAAUnB,QAAV,EAAoB;AACtC,UAAIJ,EAAJ;;AACA,UAAIsC,UAAU,GAAG;AACbC,QAAAA,UAAU,EAAE,QADC;AAEbC,QAAAA,OAAO,EAAE,SAFI;AAGbC,QAAAA,KAAK,EAAE,MAHM;AAIbC,QAAAA,MAAM,EAAE,MAJK;AAKbjB,QAAAA,YAAY,EAAE,CAACrB,QAAQ,CAACI,mBALX;AAMbkB,QAAAA,YAAY,EAAEtB,QAAQ,CAACC,aAAT,KAA2BxC,gBAAgB,CAACyC,WAAjB,CAA6BC,IANzD;AAOboC,QAAAA,UAAU,EAAEvC,QAAQ,CAACC,aAAT,KAA2BxC,gBAAgB,CAACyC,WAAjB,CAA6B4B,KAAxD,GAAgE5D,iBAAiB,CAACsE,IAAlF,GAAyFtE,iBAAiB,CAACuE;AAP1G,OAAjB,CAFsC,CAWtC;;AACA,UAAIC,SAAS,GAAItE,KAAK,CAACuE,aAAN,CAAoB,CAAC/C,EAAE,GAAGxB,KAAK,CAACM,OAAZ,MAAyB,IAAzB,IAAiCkB,EAAE,KAAK,KAAK,CAA7C,GAAiD,KAAK,CAAtD,GAA0DA,EAAE,CAACgD,UAAjF,MAAiGnF,gBAAgB,CAACoF,iBAAjB,CAAmCC,KAApI,IAA6I,SAA9I,GACVvF,YAAY,CAACwF,sBADH,GAEV,KAAKxF,YAAY,CAACyF,gBAAlB,GAAqC5E,KAAK,CAACG,gBAFjD;AAGAH,MAAAA,KAAK,CAAC8C,gBAAN,GAAyBnD,QAAQ,WAAR,CAAiBoD,aAAjB,CAA+BuB,SAA/B,EAA0CR,UAA1C,EAAsD9D,KAAK,CAAC2B,kBAA5D,CAAzB;;AACA,UAAI,CAAC3B,KAAK,CAAC8C,gBAAX,EAA6B;AACzBlD,QAAAA,KAAK,CAACe,KAAN,CAAY,0BAAZ;AACH,OAFD,MAGK;AACDX,QAAAA,KAAK,CAAC8C,gBAAN,CAAuB5B,EAAvB,CAA0B,qBAA1B,EAAiD,UAAU2D,KAAV,EAAiB;AAC9DjF,UAAAA,KAAK,CAACqC,IAAN,CAAW,qBAAX,EAAkC4C,KAAlC;;AACA7E,UAAAA,KAAK,CAACc,IAAN,CAAW3B,YAAY,CAAC4B,kBAAb,CAAgC+D,mBAA3C,EAAgED,KAAhE;AACH,SAHD;;AAIA7E,QAAAA,KAAK,CAAC8C,gBAAN,CAAuB5B,EAAvB,CAA0B,iBAA1B,EAA6C,UAAU2D,KAAV,EAAiB;AAC1DjF,UAAAA,KAAK,CAACqC,IAAN,CAAW,4BAAX,EAAyC4C,KAAzC;AACH,SAFD;;AAGA7E,QAAAA,KAAK,CAAC8C,gBAAN,CAAuB5B,EAAvB,CAA0B,eAA1B,EAA2C,UAAU2D,KAAV,EAAiB;AACxD7E,UAAAA,KAAK,CAACc,IAAN,CAAW3B,YAAY,CAAC4B,kBAAb,CAAgCgE,aAA3C,EAA0DF,KAA1D;;AACAjF,UAAAA,KAAK,CAACqC,IAAN,CAAW,0BAAX,EAAuC4C,KAAvC,EAA8CtF,KAAK,WAAL,CAAcS,KAAK,CAAC8C,gBAApB,EAAsC,iBAAtC,CAA9C;AACH,SAHD;AAIH;AACJ,KAhCD;;AAiCA9C,IAAAA,KAAK,CAACqB,oBAAN,GAA6B,UAAUwD,KAAV,EAAiB;AAC1C,UAAIrD,EAAJ;;AACA5B,MAAAA,KAAK,CAACqC,IAAN,CAAW,sBAAX,EAAmC4C,KAAK,CAACG,MAAzC;;AACAhF,MAAAA,KAAK,CAACc,IAAN,CAAW3B,YAAY,CAAC4B,kBAAb,CAAgCgE,aAA3C,EAA0DF,KAA1D;;AACA,UAAIG,MAAM,GAAGH,KAAK,CAACG,MAAnB;AACA,UAAIR,UAAU,GAAG,CAACQ,MAAM,IAAI;AAAER,QAAAA,UAAU,EAAE;AAAd,OAAX,EAAiCA,UAAlD;;AACA,UAAI,CAACxE,KAAK,CAACiF,eAAP,IAA0B,CAACD,MAA3B,IAAqCR,UAAU,CAACU,YAAX,KAA4BlF,KAAK,CAACiF,eAA3E,EAA4F;AACxF;AACH;;AACD,UAAIjF,KAAK,CAACE,WAAN,CAAkBvB,MAAlB,IAA4BQ,YAAY,CAACgG,qBAAb,GAAqC,CAArE,EAAwE;AACpEvF,QAAAA,KAAK,CAACqC,IAAN,CAAW,wFAAwF9C,YAAY,CAACgG,qBAAhH;AACH,OAFD,MAGK;AACD;AACA,YAAIb,SAAS,GAAItE,KAAK,CAACuE,aAAN,CAAoBC,UAApB,MAAoCnF,gBAAgB,CAACoF,iBAAjB,CAAmCC,KAAxE,GACVvF,YAAY,CAACwF,sBADH,GAEV,KAAKxF,YAAY,CAACyF,gBAAlB,GAAqC5E,KAAK,CAACG,gBAFjD;AAGA,YAAI2D,UAAU,GAAG;AACbC,UAAAA,UAAU,EAAE,QADC;AAEbC,UAAAA,OAAO,EAAE,SAFI;AAGbC,UAAAA,KAAK,EAAE,MAHM;AAIbC,UAAAA,MAAM,EAAE;AAJK,SAAjB;AAMA,YAAIkB,YAAY,GAAG,CAAC5D,EAAE,GAAGxB,KAAK,CAACM,OAAZ,MAAyB,IAAzB,IAAiCkB,EAAE,KAAK,KAAK,CAA7C,GAAiD,KAAK,CAAtD,GAA0DA,EAAE,CAAC6D,SAAH,CAAaR,KAAK,CAACG,MAAnB,EAA2BV,SAA3B,EAAsCR,UAAtC,EAAkD,UAAUpD,GAAV,EAAe;AAC1IV,UAAAA,KAAK,CAAC2B,kBAAN,CAAyBjB,GAAzB;;AACA0E,UAAAA,YAAY,KAAK,IAAjB,IAAyBA,YAAY,KAAK,KAAK,CAA/C,GAAmD,KAAK,CAAxD,GAA4DA,YAAY,CAAClE,EAAb,CAAgB,qBAAhB,EAAuC,UAAU2D,KAAV,EAAiB;AAChHjF,YAAAA,KAAK,CAACqC,IAAN,CAAW,qBAAX,EAAkC4C,KAAlC;AACH,WAF2D,CAA5D;AAGH,SAL4E,CAA7E;;AAMA7E,QAAAA,KAAK,CAACE,WAAN,CAAkBtB,IAAlB,CAAuB;AACnB0G,UAAAA,UAAU,EAAEF,YADO;AAEnBF,UAAAA,YAAY,EAAEV,UAAU,CAACU,YAFN;AAGnBK,UAAAA,UAAU,EAAEvF,KAAK,CAACuE,aAAN,CAAoBC,UAApB;AAHO,SAAvB;AAKH;AACJ,KAnCD;;AAoCAxE,IAAAA,KAAK,CAACsB,sBAAN,GAA+B,UAAUuD,KAAV,EAAiB;AAC5CjF,MAAAA,KAAK,CAACqC,IAAN,CAAW,wBAAX,EAAqC4C,KAArC;AACA,UAAIG,MAAM,GAAGH,KAAK,CAACG,MAAnB;AACA,UAAIQ,qBAAqB,GAAGR,MAAM,IAAIA,MAAM,CAACR,UAAjB,IAA+BQ,MAAM,CAACR,UAAP,CAAkBU,YAA7E;;AACAlF,MAAAA,KAAK,CAACc,IAAN,CAAW3B,YAAY,CAAC4B,kBAAb,CAAgC0E,eAA3C,EAA4D;AAAExE,QAAAA,IAAI,EAAE;AAAE4D,UAAAA,KAAK,EAAEjE,IAAI,CAACC,SAAL,CAAegE,KAAf;AAAT;AAAR,OAA5D;;AACA7E,MAAAA,KAAK,CAACE,WAAN,GAAoBV,QAAQ,WAAR,CAAiBQ,KAAK,CAACE,WAAvB,EAAoC,UAAUoF,UAAV,EAAsB;AAAE,eAAOA,UAAU,CAACJ,YAAX,KAA4BM,qBAAnC;AAA2D,OAAvH,CAApB;AACH,KAND;;AAOAxF,IAAAA,KAAK,CAACmB,wBAAN,GAAiC,UAAU0D,KAAV,EAAiB;AAC9CjF,MAAAA,KAAK,CAACqC,IAAN,CAAW,0BAAX,EAAuC4C,KAAvC;AACA,UAAIL,UAAU,GAAGK,KAAK,CAACL,UAAvB;;AACA,UAAI,CAACxE,KAAK,CAACiF,eAAP,IAA0B,CAACT,UAA/B,EAA2C;AACvC;AACH;;AACD,QAAExE,KAAK,CAACG,gBAAR;;AACAH,MAAAA,KAAK,CAACc,IAAN,CAAW3B,YAAY,CAAC4B,kBAAb,CAAgC2E,yBAA3C,EAAsE1F,KAAK,CAACG,gBAA5E;;AACA,UAAIoF,UAAU,GAAGvF,KAAK,CAACuE,aAAN,CAAoBC,UAApB,CAAjB;;AACAxE,MAAAA,KAAK,CAACc,IAAN,CAAW3B,YAAY,CAAC4B,kBAAb,CAAgC4E,iBAA3C,EAA8D;AAAE1E,QAAAA,IAAI,EAAE;AAAEsE,UAAAA,UAAU,EAAEA,UAAd;AAA0BV,UAAAA,KAAK,EAAEjE,IAAI,CAACC,SAAL,CAAegE,KAAf;AAAjC;AAAR,OAA9D;AACH,KAVD;;AAWA7E,IAAAA,KAAK,CAACoB,0BAAN,GAAmC,UAAUyD,KAAV,EAAiB;AAChD,UAAIL,UAAU,GAAGK,KAAK,CAACL,UAAvB;;AACA,UAAI,CAACxE,KAAK,CAACiF,eAAP,IAA0B,CAACT,UAA3B,IAAyCA,UAAU,CAACU,YAAX,KAA4BlF,KAAK,CAACiF,eAA/E,EAAgG;AAC5F;AACH;;AACD,QAAEjF,KAAK,CAACG,gBAAR;;AACAH,MAAAA,KAAK,CAACc,IAAN,CAAW3B,YAAY,CAAC4B,kBAAb,CAAgC2E,yBAA3C,EAAsE1F,KAAK,CAACG,gBAA5E;;AACAH,MAAAA,KAAK,CAACM,OAAN,GAAgB,IAAhB;AACAV,MAAAA,KAAK,CAACqC,IAAN,CAAW,4BAAX,EAAyC4C,KAAzC;;AACA7E,MAAAA,KAAK,CAACc,IAAN,CAAW3B,YAAY,CAAC4B,kBAAb,CAAgC6E,mBAA3C,EAAgE;AAAE3E,QAAAA,IAAI,EAAE;AAAE4D,UAAAA,KAAK,EAAEjE,IAAI,CAACC,SAAL,CAAegE,KAAf;AAAT;AAAR,OAAhE;AACH,KAVD;;AAWA7E,IAAAA,KAAK,CAAC2B,kBAAN,GAA2B,UAAUhB,KAAV,EAAiB;AACxCf,MAAAA,KAAK,CAACe,KAAN,CAAYC,IAAI,CAACC,SAAL,CAAeF,KAAf,CAAZ;AACH,KAFD;;AAGA,WAAOX,KAAP;AACH;;AACDtE,EAAAA,MAAM,CAACsD,cAAP,CAAsBE,iBAAiB,CAACnD,SAAxC,EAAmD,iBAAnD,EAAsE;AAClE8J,IAAAA,GAAG,EAAE,eAAY;AACb,UAAIrE,EAAJ,EAAQC,EAAR;;AACA,aAAO,CAACA,EAAE,GAAG,CAACD,EAAE,GAAG,KAAKlB,OAAX,MAAwB,IAAxB,IAAgCkB,EAAE,KAAK,KAAK,CAA5C,GAAgD,KAAK,CAArD,GAAyDA,EAAE,CAACgD,UAAlE,MAAkF,IAAlF,IAA0F/C,EAAE,KAAK,KAAK,CAAtG,GAA0G,KAAK,CAA/G,GAAmHA,EAAE,CAACyD,YAA7H;AACH,KAJiE;AAKlEY,IAAAA,UAAU,EAAE,KALsD;AAMlEC,IAAAA,YAAY,EAAE;AANoD,GAAtE;;AAQA7G,EAAAA,iBAAiB,CAACnD,SAAlB,CAA4BwI,aAA5B,GAA4C,UAAUC,UAAV,EAAsB;AAC9D,QAAIhD,EAAJ;;AACA,WAAO,CAAC,CAACA,EAAE,GAAGgD,UAAU,KAAK,IAAf,IAAuBA,UAAU,KAAK,KAAK,CAA3C,GAA+C,KAAK,CAApD,GAAwDA,UAAU,CAACwB,IAAzE,MAAmF,IAAnF,IAA2FxE,EAAE,KAAK,KAAK,CAAvG,GAA2G,KAAK,CAAhH,GAAoHA,EAAE,CAAC+D,UAAxH,IAAsI3E,IAAI,CAACqF,KAAL,CAAWzB,UAAU,CAACwB,IAAtB,EAA4BT,UAAlK,GAA+K,SAAtL,CAF8D,CAEmI;AACpM,GAHD;;AAIA,SAAOrG,iBAAP;AACH,CAvVsC,CAuVrCC,YAAY,CAAC+G,UAvVwB,CAAvC;;AAwVAjH,OAAO,CAACC,iBAAR,GAA4BA,iBAA5B","file":"OpentokMultiparty.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 __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 __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OpentokMultiparty = void 0;\nvar MultiParty_1 = require(\"./MultiParty\");\nvar MediaConstants_1 = require(\"../MediaConstants\");\nvar MediaTracer_1 = require(\"../MediaUtils/MediaTracer\");\nvar get_1 = __importDefault(require(\"lodash/get\"));\nvar filter_1 = __importDefault(require(\"lodash/filter\"));\nvar cloneDeep_1 = __importDefault(require(\"lodash/cloneDeep\"));\nvar MediaCapabilitiesHelper_1 = require(\"./MediaCapabilitiesHelper\");\nvar client_1 = __importDefault(require(\"@opentok/client\"));\nvar trace = MediaTracer_1.getMediaTracer('Multiparty');\n// The preferred camera position to use for the video source\nvar OpentokFacingMode;\n(function (OpentokFacingMode) {\n OpentokFacingMode[\"USER\"] = \"user\";\n OpentokFacingMode[\"ENVIRONMENT\"] = \"environment\";\n})(OpentokFacingMode || (OpentokFacingMode = {}));\nvar OpentokMultiparty = /** @class */ (function (_super) {\n __extends(OpentokMultiparty, _super);\n function OpentokMultiparty() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.subscribers = [];\n _this.participantCount = 0;\n _this.connect = function (credentials) {\n try {\n _this.session = client_1.default.initSession(credentials.apiKey, credentials.sessionId);\n }\n catch (err) {\n trace.error(JSON.stringify(err));\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.connectFailed, { meta: { err: JSON.stringify(err) } });\n return;\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.connect(credentials.token, function (error) { return __awaiter(_this, void 0, void 0, function () {\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (error) {\n (_a = this.session) === null || _a === void 0 ? void 0 : _a.off();\n this.session = null;\n this.traceErrorCallback(error);\n this.emit(MultiParty_1.MULTI_PARTY_EVENTS.connectFailed, { meta: { err: JSON.stringify(error) } });\n return [2 /*return*/];\n }\n if (this.settings.defaultCamera === MediaConstants_1.CameraTypes.NONE && this.settings.startWithAudioMuted) {\n trace.info('camera is none, no need to create publisher');\n return [2 /*return*/];\n }\n return [4 /*yield*/, this.createPublisher(this.settings)];\n case 1:\n _b.sent();\n return [2 /*return*/];\n }\n });\n }); });\n };\n _this.disconnect = function () {\n try {\n trace.info('Disconnecting from session');\n if (_this.session) {\n _this.session.disconnect();\n _this.participantCount = 0;\n trace.info('Disconnection from session completed');\n }\n }\n catch (err) {\n trace.error(JSON.stringify(err));\n }\n };\n _this.couldStartPublishVideo = function (settings) { return __awaiter(_this, void 0, void 0, function () {\n var mediaCapabilitiesHelper, err_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, MediaCapabilitiesHelper_1.MediaCapabilitiesHelper.init()];\n case 1:\n mediaCapabilitiesHelper = _a.sent();\n return [2 /*return*/, (settings.defaultCamera !== MediaConstants_1.CameraTypes.NONE)\n ? mediaCapabilitiesHelper.hasCamera()\n : false];\n case 2:\n err_1 = _a.sent();\n trace.error(JSON.stringify(err_1));\n throw err_1;\n case 3: return [2 /*return*/];\n }\n });\n }); };\n _this.couldStartPublishAudio = function (settings) { return __awaiter(_this, void 0, void 0, function () {\n var mediaCapabilitiesHelper, err_2;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, MediaCapabilitiesHelper_1.MediaCapabilitiesHelper.init()];\n case 1:\n mediaCapabilitiesHelper = _a.sent();\n return [2 /*return*/, !settings.startWithAudioMuted && mediaCapabilitiesHelper.hasMicrophone()];\n case 2:\n err_2 = _a.sent();\n trace.error(JSON.stringify(err_2));\n throw err_2;\n case 3: return [2 /*return*/];\n }\n });\n }); };\n _this.createPublisher = function (settingsForPublisher) { return __awaiter(_this, void 0, void 0, function () {\n var settings, couldStartPublishVideo, couldStartPublishAudio;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n settings = cloneDeep_1.default(settingsForPublisher);\n return [4 /*yield*/, this.couldStartPublishVideo(settings)];\n case 1:\n couldStartPublishVideo = _b.sent();\n return [4 /*yield*/, this.couldStartPublishAudio(settings)];\n case 2:\n couldStartPublishAudio = _b.sent();\n if (!couldStartPublishVideo && !couldStartPublishAudio) {\n // FIXME: use emitter\n trace.error('could not create a publisher, due to lack of media capabilities or settings');\n return [2 /*return*/];\n }\n if (!couldStartPublishVideo) {\n settings.defaultCamera = MediaConstants_1.CameraTypes.NONE;\n }\n if (!couldStartPublishAudio) {\n settings.startWithAudioMuted = true;\n }\n if (!this.currentPublisher) {\n this.initPublisher(settings);\n (_a = this.session) === null || _a === void 0 ? void 0 : _a.publish(this.currentPublisher, this.traceErrorCallback);\n }\n return [2 /*return*/];\n }\n });\n }); };\n _this.publishAudio = function (value) { return __awaiter(_this, void 0, void 0, function () {\n var settings, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n settings = cloneDeep_1.default(this.settings);\n settings.startWithAudioMuted = !value;\n _a = value;\n if (!_a) return [3 /*break*/, 2];\n return [4 /*yield*/, this.couldStartPublishAudio(settings)];\n case 1:\n _a = !(_b.sent());\n _b.label = 2;\n case 2:\n if (_a) {\n trace.error('could not publish audio');\n return [2 /*return*/];\n }\n if (!!this.currentPublisher) return [3 /*break*/, 4];\n return [4 /*yield*/, this.createPublisher(settings)];\n case 3:\n _b.sent();\n return [3 /*break*/, 5];\n case 4:\n this.currentPublisher.publishAudio(value);\n _b.label = 5;\n case 5: return [2 /*return*/];\n }\n });\n }); };\n _this.publishVideo = function (value) { return __awaiter(_this, void 0, void 0, function () {\n var settings, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n settings = cloneDeep_1.default(this.settings);\n settings.defaultCamera = value ? this.settings.defaultCamera : MediaConstants_1.CameraTypes.NONE;\n _a = value;\n if (!_a) return [3 /*break*/, 2];\n return [4 /*yield*/, this.couldStartPublishVideo(settings)];\n case 1:\n _a = !(_b.sent());\n _b.label = 2;\n case 2:\n if (_a) {\n trace.error('could not publish video');\n return [2 /*return*/];\n }\n if (!!this.currentPublisher) return [3 /*break*/, 4];\n return [4 /*yield*/, this.createPublisher(settings)];\n case 3:\n _b.sent();\n return [3 /*break*/, 5];\n case 4:\n this.currentPublisher.publishVideo(value);\n _b.label = 5;\n case 5: return [2 /*return*/];\n }\n });\n }); };\n _this.switchCamera = function () { return __awaiter(_this, void 0, void 0, function () {\n var mediaCapabilitiesHelper, deviceId, cameraType_1, err_3;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, MediaCapabilitiesHelper_1.MediaCapabilitiesHelper.init()];\n case 1:\n mediaCapabilitiesHelper = _a.sent();\n if (!mediaCapabilitiesHelper.supportSwitchCamera) {\n throw new Error('Not Support switch camera');\n }\n deviceId = '';\n cameraType_1 = MediaConstants_1.CameraTypes.NONE;\n switch (this.settings.defaultCamera) {\n case MediaConstants_1.CameraTypes.BACK:\n cameraType_1 = MediaConstants_1.CameraTypes.FRONT;\n deviceId = mediaCapabilitiesHelper.frontCameraDeviceId;\n break;\n case MediaConstants_1.CameraTypes.FRONT:\n cameraType_1 = MediaConstants_1.CameraTypes.BACK;\n deviceId = mediaCapabilitiesHelper.backCameraDeviceId;\n break;\n default:\n throw new Error(\"cameraType not valid: \" + this.settings.defaultCamera);\n }\n return [2 /*return*/, this.currentPublisher.setVideoSource(deviceId)\n .then(function () {\n _this.settings.defaultCamera = cameraType_1;\n trace.info(\"Success to switch camera to cameraType: \" + cameraType_1);\n return;\n })];\n case 2:\n err_3 = _a.sent();\n trace.error(JSON.stringify(err_3));\n throw err_3;\n case 3: return [2 /*return*/];\n }\n });\n }); };\n _this.initPublisher = function (settings) {\n var _a;\n var properties = {\n insertMode: 'append',\n fitMode: 'contain',\n width: '100%',\n height: '100%',\n publishAudio: !settings.startWithAudioMuted,\n publishVideo: settings.defaultCamera !== MediaConstants_1.CameraTypes.NONE,\n facingMode: settings.defaultCamera === MediaConstants_1.CameraTypes.FRONT ? OpentokFacingMode.USER : OpentokFacingMode.ENVIRONMENT\n };\n // eslint-disable-next-line no-constant-condition\n var clientDiv = (_this.getClientRole((_a = _this.session) === null || _a === void 0 ? void 0 : _a.connection) === MediaConstants_1.SessionClientRole.AGENT || 'default')\n ? MultiParty_1.pinnedParticipantDomId\n : \"\" + MultiParty_1.participantDomId + _this.participantCount;\n _this.currentPublisher = client_1.default.initPublisher(clientDiv, properties, _this.traceErrorCallback);\n if (!_this.currentPublisher) {\n trace.error('failed to init publisher');\n }\n else {\n _this.currentPublisher.on('videoElementCreated', function (event) {\n trace.info('videoElementCreated', event);\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.videoElementCreated, event);\n });\n _this.currentPublisher.on('streamDestroyed', function (event) {\n trace.info('Publisher stream destroyed', event);\n });\n _this.currentPublisher.on('streamCreated', function (event) {\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.streamCreated, event);\n trace.info('publisher stream created', event, get_1.default(_this.currentPublisher, 'stream.hasAudio'));\n });\n }\n };\n _this.streamCreatedHandler = function (event) {\n var _a;\n trace.info('streamCreatedHandler', event.stream);\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.streamCreated, event);\n var stream = event.stream;\n var connection = (stream || { connection: null }).connection;\n if (!_this.ownConnectionId || !stream || connection.connectionId === _this.ownConnectionId) {\n return;\n }\n if (_this.subscribers.length >= MultiParty_1.maxParticipantsNumber - 1) {\n trace.info(\"a new subscriber cannot be added, as the number of participants reached its limit: \" + MultiParty_1.maxParticipantsNumber);\n }\n else {\n // eslint-disable-next-line no-constant-condition\n var clientDiv = (_this.getClientRole(connection) === MediaConstants_1.SessionClientRole.AGENT)\n ? MultiParty_1.pinnedParticipantDomId\n : \"\" + MultiParty_1.participantDomId + _this.participantCount;\n var properties = {\n insertMode: 'append',\n fitMode: 'contain',\n width: '100%',\n height: '100%'\n };\n var subscriber_1 = (_a = _this.session) === null || _a === void 0 ? void 0 : _a.subscribe(event.stream, clientDiv, properties, function (err) {\n _this.traceErrorCallback(err);\n subscriber_1 === null || subscriber_1 === void 0 ? void 0 : subscriber_1.on('videoElementCreated', function (event) {\n trace.info('videoElementCreated', event);\n });\n });\n _this.subscribers.push({\n subscriber: subscriber_1,\n connectionId: connection.connectionId,\n clientRole: _this.getClientRole(connection)\n });\n }\n };\n _this.streamDestroyedHandler = function (event) {\n trace.info('streamDestroyedHandler', event);\n var stream = event.stream;\n var destroyedConnectionId = stream && stream.connection && stream.connection.connectionId;\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.streamDestroyed, { meta: { event: JSON.stringify(event) } });\n _this.subscribers = filter_1.default(_this.subscribers, function (subscriber) { return subscriber.connectionId !== destroyedConnectionId; });\n };\n _this.connectionCreatedHandler = function (event) {\n trace.info('connectionCreatedHandler', event);\n var connection = event.connection;\n if (!_this.ownConnectionId || !connection) {\n return;\n }\n ++_this.participantCount;\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.participantsNumberChanged, _this.participantCount);\n var clientRole = _this.getClientRole(connection);\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.connectionCreated, { meta: { clientRole: clientRole, event: JSON.stringify(event) } });\n };\n _this.connectionDestroyedHandler = function (event) {\n var connection = event.connection;\n if (!_this.ownConnectionId || !connection || connection.connectionId !== _this.ownConnectionId) {\n return;\n }\n --_this.participantCount;\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.participantsNumberChanged, _this.participantCount);\n _this.session = null;\n trace.info('connectionDestroyedHandler', event);\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.connectionDestroyed, { meta: { event: JSON.stringify(event) } });\n };\n _this.traceErrorCallback = function (error) {\n trace.error(JSON.stringify(error));\n };\n return _this;\n }\n Object.defineProperty(OpentokMultiparty.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 OpentokMultiparty.prototype.getClientRole = function (connection) {\n var _a;\n return ((_a = connection === null || connection === void 0 ? void 0 : connection.data) === null || _a === void 0 ? void 0 : _a.clientRole) ? JSON.parse(connection.data).clientRole : 'default'; //fixme temp workaround for BE/Storybook\n };\n return OpentokMultiparty;\n}(MultiParty_1.MultiParty));\nexports.OpentokMultiparty = OpentokMultiparty;\n\n//# sourceMappingURL=OpentokMultiparty.js.map\n"]}
|