@techsee/techsee-media-service 999.7.0-gal.alpha40 → 999.7.0-gal.alpha5
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/MultiParty.d.ts +1 -4
- package/lib/MultiParty/MultiParty.d.ts.map +1 -1
- package/lib/MultiParty/MultiParty.js +0 -3
- package/lib/MultiParty/MultiParty.js.map +1 -1
- package/lib/MultiParty/OpentokMultiparty.d.ts +2 -1
- package/lib/MultiParty/OpentokMultiparty.d.ts.map +1 -1
- package/lib/MultiParty/OpentokMultiparty.js +93 -163
- package/lib/MultiParty/OpentokMultiparty.js.map +1 -1
- package/package.json +1 -1
|
@@ -13,10 +13,7 @@ export declare enum MULTI_PARTY_EVENTS {
|
|
|
13
13
|
videoElementCreated = "videoElementCreated",
|
|
14
14
|
participantsNumberChanged = "participantsNumberChanged",
|
|
15
15
|
videoAudioStatus = "videoAudioStatus",
|
|
16
|
-
mediaDeviceAccessDenied = "mediaDeviceAccessDenied"
|
|
17
|
-
sessionReconnecting = "sessionReconnecting",
|
|
18
|
-
sessionDisconnected = "sessionDisconnected",
|
|
19
|
-
sessionReconnected = "sessionReconnected"
|
|
16
|
+
mediaDeviceAccessDenied = "mediaDeviceAccessDenied"
|
|
20
17
|
}
|
|
21
18
|
export declare type Subscriber = {
|
|
22
19
|
subscriber: unknown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/MultiParty/MultiParty.ts"],"names":[],"mappings":";AAEA,OAAO,EAAC,YAAY,EAAC,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAC,eAAe,EAAC,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAC,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AAKpD,eAAO,MAAM,kBAAkB,uqLAAuqL,CAAC;AAEvsL,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;IACvD,gBAAgB,qBAAqB;IACrC,uBAAuB,4BAA4B;IACnD,mBAAmB,wBAAwB;IAC3C,mBAAmB,wBAAwB;IAC3C,kBAAkB,uBAAuB;CAC5C;AAED,oBAAY,UAAU,GAAG;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,iBAAiB,GAAG,SAAS,CAAC;CAC7C,CAAC;AAEF,MAAM,WAAW,WAAW;IACxB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,WAAW,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAChC,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,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;IAC5E,YAAY,CAAC,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,YAAY,CAAC,kBAAkB,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5D;AAED,8BAAsB,UAAW,SAAQ,YAAa,YAAW,WAAW;IACxE,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IACzC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,SAAS,CAAC,QAAQ,EAAE,eAAe,CAAC;IAEpC,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;IACtC,QAAQ,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IACzD,QAAQ,CAAC,YAAY,CAAC,kBAAkB,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;gBAErD,QAAQ,EAAE,eAAe;CAIxC;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 {SessionSettings} from './Contracts';\nimport {SessionClientRole} from '../MediaConstants';\n\nconst trace = getMediaTracer('Multiparty');\n\n// eslint-disable-next-line max-len\nexport const DEFAULT_AVATAR_URI = 'data:image/png;base64,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';\n\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 videoAudioStatus = 'videoAudioStatus',\n mediaDeviceAccessDenied = 'mediaDeviceAccessDenied',\n sessionReconnecting = 'sessionReconnecting',\n sessionDisconnected = 'sessionDisconnected',\n sessionReconnected = 'sessionReconnected'\n}\n\nexport type Subscriber = {\n subscriber: unknown;\n connectionId: string;\n clientRole: SessionClientRole | 'default';\n};\n\nexport interface IMultiParty {\n session?: any;\n subscribers?: Array<Subscriber>;\n ownConnectionId?: string;\n\n connect(...args: any[]): void;\n disconnect(): void;\n switchCamera(): Promise<void>;\n on(event: string | symbol, listener: (...args: any[]) => void): IMultiParty;\n publishAudio(shouldMute: boolean): Promise<void>;\n publishVideo(shouldPublishVideo: boolean): Promise<void>;\n}\n\nexport abstract class MultiParty extends EventEmitter implements IMultiParty {\n session?: any;\n abstract subscribers?: Array<Subscriber>;\n abstract ownConnectionId?: string;\n protected settings: SessionSettings;\n\n abstract connect(...args: any[]): void;\n abstract disconnect(): void;\n abstract switchCamera(): Promise<void>;\n abstract publishAudio(shouldMute: boolean): Promise<void>;\n abstract publishVideo(shouldPublishVideo: boolean): Promise<void>;\n\n constructor(settings: SessionSettings) {\n super();\n this.settings = settings;\n }\n}\n\nexport const couldStartMultiparty = async (): Promise<boolean> => {\n try {\n const mediaCapabilitiesHelper = await MediaCapabilitiesHelper.getInstance();\n\n return mediaCapabilitiesHelper.hasWebRTC();\n\n } catch (err) {\n trace.error(JSON.stringify(err));\n\n return false;\n }\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/MultiParty/MultiParty.ts"],"names":[],"mappings":";AAEA,OAAO,EAAC,YAAY,EAAC,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAC,eAAe,EAAC,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAC,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AAKpD,eAAO,MAAM,kBAAkB,uqLAAuqL,CAAC;AAEvsL,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;IACvD,gBAAgB,qBAAqB;IACrC,uBAAuB,4BAA4B;CACtD;AAED,oBAAY,UAAU,GAAG;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,iBAAiB,GAAG,SAAS,CAAC;CAC7C,CAAC;AAEF,MAAM,WAAW,WAAW;IACxB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,WAAW,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAChC,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,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;IAC5E,YAAY,CAAC,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,YAAY,CAAC,kBAAkB,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5D;AAED,8BAAsB,UAAW,SAAQ,YAAa,YAAW,WAAW;IACxE,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IACzC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,SAAS,CAAC,QAAQ,EAAE,eAAe,CAAC;IAEpC,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;IACtC,QAAQ,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IACzD,QAAQ,CAAC,YAAY,CAAC,kBAAkB,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;gBAErD,QAAQ,EAAE,eAAe;CAIxC;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 {SessionSettings} from './Contracts';\nimport {SessionClientRole} from '../MediaConstants';\n\nconst trace = getMediaTracer('Multiparty');\n\n// eslint-disable-next-line max-len\nexport const DEFAULT_AVATAR_URI = 'data:image/png;base64,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';\n\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 videoAudioStatus = 'videoAudioStatus',\n mediaDeviceAccessDenied = 'mediaDeviceAccessDenied'\n}\n\nexport type Subscriber = {\n subscriber: unknown;\n connectionId: string;\n clientRole: SessionClientRole | 'default';\n};\n\nexport interface IMultiParty {\n session?: any;\n subscribers?: Array<Subscriber>;\n ownConnectionId?: string;\n\n connect(...args: any[]): void;\n disconnect(): void;\n switchCamera(): Promise<void>;\n on(event: string | symbol, listener: (...args: any[]) => void): IMultiParty;\n publishAudio(shouldMute: boolean): Promise<void>;\n publishVideo(shouldPublishVideo: boolean): Promise<void>;\n}\n\nexport abstract class MultiParty extends EventEmitter implements IMultiParty {\n session?: any;\n abstract subscribers?: Array<Subscriber>;\n abstract ownConnectionId?: string;\n protected settings: SessionSettings;\n\n abstract connect(...args: any[]): void;\n abstract disconnect(): void;\n abstract switchCamera(): Promise<void>;\n abstract publishAudio(shouldMute: boolean): Promise<void>;\n abstract publishVideo(shouldPublishVideo: boolean): Promise<void>;\n\n constructor(settings: SessionSettings) {\n super();\n this.settings = settings;\n }\n}\n\nexport const couldStartMultiparty = async (): Promise<boolean> => {\n try {\n const mediaCapabilitiesHelper = await MediaCapabilitiesHelper.getInstance();\n\n return mediaCapabilitiesHelper.hasWebRTC();\n\n } catch (err) {\n trace.error(JSON.stringify(err));\n\n return false;\n }\n};\n"]}
|
|
@@ -196,9 +196,6 @@ var MULTI_PARTY_EVENTS;
|
|
|
196
196
|
MULTI_PARTY_EVENTS["participantsNumberChanged"] = "participantsNumberChanged";
|
|
197
197
|
MULTI_PARTY_EVENTS["videoAudioStatus"] = "videoAudioStatus";
|
|
198
198
|
MULTI_PARTY_EVENTS["mediaDeviceAccessDenied"] = "mediaDeviceAccessDenied";
|
|
199
|
-
MULTI_PARTY_EVENTS["sessionReconnecting"] = "sessionReconnecting";
|
|
200
|
-
MULTI_PARTY_EVENTS["sessionDisconnected"] = "sessionDisconnected";
|
|
201
|
-
MULTI_PARTY_EVENTS["sessionReconnected"] = "sessionReconnected";
|
|
202
199
|
})(MULTI_PARTY_EVENTS = exports.MULTI_PARTY_EVENTS || (exports.MULTI_PARTY_EVENTS = {}));
|
|
203
200
|
|
|
204
201
|
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","DEFAULT_AVATAR_URI","MediaCapabilitiesHelper_1","require","MediaTracer_1","events_1","trace","getMediaTracer","_super","settings","_this","EventEmitter","mediaCapabilitiesHelper","err_1","_a","MediaCapabilitiesHelper","getInstance","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.DEFAULT_AVATAR_URI = void 0;\nvar MediaCapabilitiesHelper_1 = require(\"./MediaCapabilitiesHelper\");\nvar MediaTracer_1 = require(\"../MediaUtils/MediaTracer\");\nvar events_1 = require(\"events\");\nvar trace = MediaTracer_1.getMediaTracer('Multiparty');\n// eslint-disable-next-line max-len\nexports.DEFAULT_AVATAR_URI = 'data:image/png;base64,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';\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[\"mediaDeviceAccessDenied\"] = \"mediaDeviceAccessDenied\";\n MULTI_PARTY_EVENTS[\"sessionReconnecting\"] = \"sessionReconnecting\";\n MULTI_PARTY_EVENTS[\"sessionDisconnected\"] = \"sessionDisconnected\";\n MULTI_PARTY_EVENTS[\"sessionReconnected\"] = \"sessionReconnected\";\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.getInstance()];\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","DEFAULT_AVATAR_URI","MediaCapabilitiesHelper_1","require","MediaTracer_1","events_1","trace","getMediaTracer","_super","settings","_this","EventEmitter","mediaCapabilitiesHelper","err_1","_a","MediaCapabilitiesHelper","getInstance","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.DEFAULT_AVATAR_URI = void 0;\nvar MediaCapabilitiesHelper_1 = require(\"./MediaCapabilitiesHelper\");\nvar MediaTracer_1 = require(\"../MediaUtils/MediaTracer\");\nvar events_1 = require(\"events\");\nvar trace = MediaTracer_1.getMediaTracer('Multiparty');\n// eslint-disable-next-line max-len\nexports.DEFAULT_AVATAR_URI = 'data:image/png;base64,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';\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[\"mediaDeviceAccessDenied\"] = \"mediaDeviceAccessDenied\";\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.getInstance()];\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"]}
|
|
@@ -7,7 +7,8 @@ export declare class OpentokMultiparty extends MultiParty {
|
|
|
7
7
|
currentPublisher?: any;
|
|
8
8
|
branding?: BrandingSettings;
|
|
9
9
|
getParticipantId: (clientRole: SessionClientRole, connectionId: string) => string;
|
|
10
|
-
|
|
10
|
+
/** @FIXME not used atm, should be refactored */
|
|
11
|
+
credentials?: Credentials;
|
|
11
12
|
participantCount: number;
|
|
12
13
|
constructor(settings: SessionSettings, getParticipantDomId: (clientRole: SessionClientRole, connectionId: string) => string);
|
|
13
14
|
get ownConnectionId(): string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/MultiParty/OpentokMultiparty.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4C,UAAU,EAAE,UAAU,EAAqB,MAAM,cAAc,CAAC;AACnH,OAAO,EAAc,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AAGjE,OAAO,EAAC,gBAAgB,EAAE,WAAW,EAAE,eAAe,EAAC,MAAM,aAAa,CAAC;AAa3E,qBAAa,iBAAkB,SAAQ,UAAU;IAC7C,WAAW,EAAE,KAAK,CAAC,UAAU,CAAC,CAAM;IACpC,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,gBAAgB,CAAC,EAAE,GAAG,CAAC;IACvB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,gBAAgB,EAAE,CAAC,UAAU,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,KAAK,MAAM,CAAC;IAClF,WAAW,EAAE,WAAW,CAItB;IACF,gBAAgB,SAAK;gBAET,QAAQ,EAAE,eAAe,EAAE,mBAAmB,EAAE,CAAC,UAAU,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,KAAK,MAAM;IAM3H,IAAI,eAAe,IAAI,MAAM,GAAG,SAAS,CAExC;IAED,OAAO,gBAAiB,WAAW,KAAG,IAAI,CAwCxC;IAEF,UAAU,QAAO,IAAI,CAcnB;IAEF,sBAAsB,aAAoB,eAAe,KAAG,QAAQ,OAAO,GAAG,KAAK,CAAC,CAclF;IAEF,sBAAsB,aAAoB,eAAe,KAAG,QAAQ,OAAO,GAAG,KAAK,CAAC,CAWlF;IAEF,eAAe,yBAAgC,eAAe,KAAG,QAAQ,IAAI,CAAC,CA+B5E;IAEF,YAAY,eAAsB,OAAO,KAAG,QAAQ,IAAI,CAAC,CAiBvD;IAEF,YAAY,uBAA8B,OAAO,KAAG,QAAQ,IAAI,CAAC,CAkB/D;IAEF,YAAY,QAAa,QAAQ,IAAI,CAAC,CAmCpC;IAEF,OAAO,CAAC,aAAa;IAIrB,aAAa,aAAc,eAAe,KAAG,IAAI,CA8D/C;IAEF,OAAO,CAAC,yBAAyB;IAMjC,oBAAoB,kBAEhB,QAAQ,IAAI,CAAC,CA0Df;IAEF,4BAA4B,UAAW,GAAG,KAAG,IAAI,CAY/C;IAEF,sBAAsB,kBAGlB,IAAI,CAUN;IAEF,wBAAwB,kBAEpB,IAAI,CAmBN;IAEF,0BAA0B,kBAGtB,IAAI,CAcN;IAEF,kBAAkB,iCAAoB,IAAI,CAExC;IAEF,OAAO,CAAC,0BAA0B,CAahC;IAEF,OAAO,CAAC,0BAA0B,CAEhC;IAEF,OAAO,CAAC,yBAAyB,CAI/B;CACL","file":"OpentokMultiparty.d.ts","sourcesContent":["import {maxParticipantsNumber, MULTI_PARTY_EVENTS, MultiParty, Subscriber, DEFAULT_AVATAR_URI} from './MultiParty';\nimport {CameraTypes, SessionClientRole} from '../MediaConstants';\nimport {getMediaTracer} from '../MediaUtils/MediaTracer';\nimport get from 'lodash/get';\nimport {BrandingSettings, Credentials, SessionSettings} from './Contracts';\nimport filter from 'lodash/filter';\nimport cloneDeep from 'lodash/cloneDeep';\nimport {MediaCapabilitiesHelper} from './MediaCapabilitiesHelper';\n\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<Subscriber> = [];\n session?: any;\n currentPublisher?: any;\n branding?: BrandingSettings;\n getParticipantId: (clientRole: SessionClientRole, connectionId: string) => string;\n credentials: Credentials = {\n apiKey: '',\n sessionId: '',\n token: ''\n };\n participantCount = 0;\n\n constructor(settings: SessionSettings, getParticipantDomId: (clientRole: SessionClientRole, connectionId: string) => string) {\n super(settings);\n this.branding = settings.branding;\n this.getParticipantId = getParticipantDomId;\n }\n\n get ownConnectionId(): string | undefined {\n return this.session?.connection?.connectionId;\n }\n\n connect = (credentials: Credentials): void => {\n this.credentials = credentials;\n\n try {\n this.session = window?.OT.initSession(credentials.apiKey, credentials.sessionId);\n } catch (err) {\n console.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 this.session.on('sessionDisconnected', this.sessionDisconnectedHandler);\n this.session.on('sessionReconnecting', this.sessionReconnectingHandler);\n this.session.on('sessionReconnected', this.sessionReconnectedHandler);\n\n this.session.connect(credentials.token, async (error?: any) => {\n console.log('media service - session connect');\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 console.log('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 console.log('Disconnecting from session');\n console.log('media service - session disconnect');\n\n if (this.session) {\n this.session.disconnect();\n //this.subscribers = [];\n this.participantCount = 0;\n console.log('Disconnection from session completed');\n }\n } catch (err) {\n console.error(JSON.stringify(err));\n }\n };\n\n couldStartPublishVideo = async (settings: SessionSettings): Promise<boolean | Error> => {\n console.log('media service - could start publish video');\n\n try {\n const mediaCapabilitiesHelper = await MediaCapabilitiesHelper.getInstance();\n\n return (settings.defaultCamera !== CameraTypes.NONE)\n ? mediaCapabilitiesHelper.hasCamera()\n : false;\n\n } catch (err) {\n console.error(JSON.stringify(err));\n throw err;\n }\n };\n\n couldStartPublishAudio = async (settings: SessionSettings): Promise<boolean | Error> => {\n console.log('media service - could start publish audio');\n\n try {\n const mediaCapabilitiesHelper = await MediaCapabilitiesHelper.getInstance();\n\n return !settings.startWithAudioMuted && mediaCapabilitiesHelper.hasMicrophone();\n } catch (err) {\n console.error(JSON.stringify(err));\n throw err;\n }\n };\n\n createPublisher = async (settingsForPublisher: SessionSettings): Promise<void> => {\n console.log('media service - create publisher');\n\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 console.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\n if (!this.currentPublisher) {\n throw new Error('Creating session requires initialized publisher');\n }\n\n this.currentPublisher && this.session?.publish(this.currentPublisher, this.traceErrorCallback);\n }\n };\n\n publishAudio = async (shouldMute: boolean): Promise<void> => {\n console.log('media service - publish audio');\n const settings = cloneDeep(this.settings);\n\n settings.startWithAudioMuted = !shouldMute;\n\n if (shouldMute && !await this.couldStartPublishAudio(settings)) {\n console.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(shouldMute);\n }\n };\n\n publishVideo = async (shouldPublishVideo: boolean): Promise<void> => {\n console.log('media service - publish video');\n\n const settings = cloneDeep(this.settings);\n\n settings.defaultCamera = shouldPublishVideo ? this.settings.defaultCamera : CameraTypes.NONE;\n\n if (shouldPublishVideo && !await this.couldStartPublishVideo(settings)) {\n console.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(shouldPublishVideo);\n }\n };\n\n switchCamera = async (): Promise<void> => {\n console.log('media service - switch camera');\n\n try {\n const mediaCapabilitiesHelper = await MediaCapabilitiesHelper.getInstance();\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 console.log(`Success to switch camera to cameraType: ${cameraType}`);\n });\n } catch (err) {\n console.error(JSON.stringify(err));\n throw err;\n }\n };\n\n private getClientRole(connection?: any): SessionClientRole {\n return (connection?.data && JSON.parse(connection.data).clientRole) || SessionClientRole.USER;\n }\n\n initPublisher = (settings: SessionSettings): void => {\n\n console.log('media service - init publisher');\n\n const properties = {\n insertMode: 'append',\n fitMode: 'cover',\n width: '100%',\n height: '100%',\n style: {\n buttonDisplayMode: 'off',\n archiveStatusDisplayMode: 'off',\n audioLevelDisplayMode: 'off',\n backgroundImageURI: this.branding?.backgroundImageURI || DEFAULT_AVATAR_URI\n },\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 = window?.OT.initPublisher(this.getParticipantIdForStream(this.session?.connection),\n properties, this.traceErrorCallback);\n\n if (!this.currentPublisher) {\n console.error('failed to init publisher');\n } else {\n this.currentPublisher.on('videoElementCreated', (event: any) => {\n console.log('videoElementCreated', event);\n this.emit(MULTI_PARTY_EVENTS.videoElementCreated, event);\n });\n this.currentPublisher.on('streamDestroyed', (event: any) => {\n console.log('Publisher stream destroyed', event);\n this.emit(MULTI_PARTY_EVENTS.streamDestroyed, {\n event: event,\n participantId: this.getParticipantIdForStream(event?.stream?.connection)\n });\n });\n this.currentPublisher.on('accessDenied', (event: any) => {\n console.log('Publisher denied media permissions', event);\n this.emit(MULTI_PARTY_EVENTS.mediaDeviceAccessDenied);\n });\n this.currentPublisher.on('streamCreated', async (event: any) => {\n await MediaCapabilitiesHelper.setDevicesList();\n\n const participantId = this.getParticipantIdForStream(event?.stream?.connection);\n\n this.emit(MULTI_PARTY_EVENTS.streamCreated,\n {\n event: event, participantId: participantId,\n startWithAudioMuted: this.settings.startWithAudioMuted,\n hasAudio: event?.stream?.hasAudio,\n hasVideo: event?.stream?.hasVideo,\n isOwnConnection: this.ownConnectionId === event?.stream?.connection?.connectionId,\n });\n\n console.log('publisher stream created', {\n event,\n hasAudio: get(this.currentPublisher, 'stream.hasAudio'),\n participantId\n });\n });\n }\n };\n\n private getParticipantIdForStream(connection: any) {\n const clientRole = this.getClientRole(connection);\n\n return this.getParticipantId(clientRole, connection.connectionId);\n }\n\n streamCreatedHandler = async (event: any & {\n stream: any;\n }): Promise<void> => {\n console.log('streamCreatedHandler', event.stream);\n\n const {stream} = event;\n const {connection} = stream;\n const participantId = this.getParticipantIdForStream(connection);\n\n await MediaCapabilitiesHelper.setDevicesList();\n if (!this.ownConnectionId) {\n ++this.participantCount;\n this.emit(MULTI_PARTY_EVENTS.participantsNumberChanged, this.participantCount);\n }\n\n this.emit(MULTI_PARTY_EVENTS.streamCreated,\n {\n event: event, participantId: participantId,\n startWithAudioMuted: this.settings.startWithAudioMuted,\n isOwnConnection: this.ownConnectionId === (event?.stream?.connection?.connectionId) as string,\n hasVideo: event?.stream?.hasVideo,\n hasAudio: event?.stream?.hasAudio\n });\n\n if (!this.ownConnectionId || !stream || connection.connectionId === this.ownConnectionId) {\n return;\n }\n\n if (this.subscribers.length >= maxParticipantsNumber - 1) {\n // eslint-disable-next-line no-alert\n console.log('media service - a new subscriber cannot be added, count: ' + this.subscribers + ' as the number of participants reached its limit');\n //this.subscribers = [];\n console.log(`a new subscriber cannot be added, as the number of participants reached its limit: ${maxParticipantsNumber}`);\n // participantId\n }\n const properties = {\n insertMode: 'append',\n fitMode: 'cover',\n width: '100%',\n height: '100%',\n style: {\n buttonDisplayMode: 'off',\n audioLevelDisplayMode: 'off',\n backgroundImageURI: this.branding?.backgroundImageURI || DEFAULT_AVATAR_URI\n },\n };\n\n const subscriber = event.target.subscribe(event.stream, participantId, properties, (err: any) => {\n this.traceErrorCallback(err);\n subscriber?.on('videoElementCreated', (event: any) => {\n console.log('videoElementCreated', event);\n this.emit(MULTI_PARTY_EVENTS.videoElementCreated, event);\n });\n });\n\n this.subscribers.push({\n subscriber,\n connectionId: connection.connectionId,\n clientRole: this.getClientRole(connection)\n });\n };\n\n streamPropertyChangedHandler = (event: any): void => {\n console.log('streamPropertyChangedHandler', event);\n\n const {stream} = event;\n\n this.emit(MULTI_PARTY_EVENTS.videoAudioStatus, {\n hasVideo: stream?.hasVideo,\n hasAudio: stream?.hasAudio,\n participantId: this.getParticipantIdForStream(stream?.connection),\n isOwnConnection: this.ownConnectionId === stream?.connection?.connectionId,\n stream\n });\n };\n\n streamDestroyedHandler = (event: any & {\n stream: any;\n reason: string;\n }): void => {\n console.log('streamDestroyedHandler', event);\n const {stream} = event;\n const destroyedConnectionId = stream && stream.connection && stream.connection.connectionId;\n\n this.emit(MULTI_PARTY_EVENTS.streamDestroyed, {event: event, participantId: this.getParticipantIdForStream(event?.stream?.connection)});\n this.subscribers = filter(this.subscribers, (subscriber) => subscriber.connectionId !== destroyedConnectionId);\n //this.subscribers = [];\n // eslint-disable-next-line no-alert\n console.log('media service - removed subscriber, subscribers array: ' + this.subscribers.toString());\n };\n\n connectionCreatedHandler = (event: any & {\n connection: any;\n }): void => {\n console.log('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\n const clientRole = this.getClientRole(connection);\n\n this.emit(MULTI_PARTY_EVENTS.connectionCreated, {\n clientRole, event,\n participantId: this.getParticipantIdForStream(connection),\n isOwnConnection: this.ownConnectionId === connection.connectionId\n });\n };\n\n connectionDestroyedHandler = (event: any & {\n connection: any;\n reason: string;\n }): void => {\n const {connection} = event;\n const clientRole = this.getClientRole(connection);\n\n console.log('connectionDestroyedHandler', event);\n this.emit(MULTI_PARTY_EVENTS.connectionDestroyed, {clientRole, event, participantId: this.getParticipantIdForStream(event?.connection)});\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 };\n\n traceErrorCallback = (error?: Error): void => {\n console.error(JSON.stringify(error));\n };\n\n private sessionDisconnectedHandler = async (event: any) => {\n console.log('media service - session disconnected');\n await this.session.destroy();\n await this.connect(this.credentials);\n\n /*console.log('sessionDisconnectedHandler', event);\n this?.session?.signal({retryAfterReconnect: true});\n // this.participantCount = 0;\n //this.emit(MULTI_PARTY_EVENTS.participantsNumberChanged, this.participantCount);\n this.emit(MULTI_PARTY_EVENTS.sessionDisconnected, event);\n //this.subscribers = [];\n this.session.destroy();\n this.connect(this.credentials);*/\n };\n\n private sessionReconnectingHandler = async (event: any) => {\n console.log('media service - session reconnecting');\n };\n\n private sessionReconnectedHandler = async (event: any) => {\n console.log('media service - session reconnected');\n await this.session.destroy();\n await this.connect(this.credentials);\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/MultiParty/OpentokMultiparty.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4C,UAAU,EAAE,UAAU,EAAqB,MAAM,cAAc,CAAC;AACnH,OAAO,EAAc,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AAGjE,OAAO,EAAC,gBAAgB,EAAE,WAAW,EAAE,eAAe,EAAC,MAAM,aAAa,CAAC;AAa3E,qBAAa,iBAAkB,SAAQ,UAAU;IAC7C,WAAW,EAAE,KAAK,CAAC,UAAU,CAAC,CAAM;IACpC,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,gBAAgB,CAAC,EAAE,GAAG,CAAC;IACvB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,gBAAgB,EAAE,CAAC,UAAU,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,KAAK,MAAM,CAAC;IAElF,gDAAgD;IAChD,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,gBAAgB,SAAK;gBAET,QAAQ,EAAE,eAAe,EAAE,mBAAmB,EAAE,CAAC,UAAU,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,KAAK,MAAM;IAM3H,IAAI,eAAe,IAAI,MAAM,GAAG,SAAS,CAExC;IAED,OAAO,gBAAiB,WAAW,KAAG,IAAI,CAuCxC;IAEF,UAAU,QAAO,IAAI,CAYnB;IAEF,sBAAsB,aAAoB,eAAe,KAAG,QAAQ,OAAO,GAAG,KAAK,CAAC,CAYlF;IAEF,sBAAsB,aAAoB,eAAe,KAAG,QAAQ,OAAO,GAAG,KAAK,CAAC,CASlF;IAEF,eAAe,yBAAgC,eAAe,KAAG,QAAQ,IAAI,CAAC,CA4B5E;IAEF,YAAY,eAAsB,OAAO,KAAG,QAAQ,IAAI,CAAC,CAgBvD;IAEF,YAAY,uBAA8B,OAAO,KAAG,QAAQ,IAAI,CAAC,CAgB/D;IAEF,YAAY,QAAa,QAAQ,IAAI,CAAC,CAiCpC;IAEF,OAAO,CAAC,aAAa;IAIrB,aAAa,aAAc,eAAe,KAAG,IAAI,CAsD/C;IAEF,OAAO,CAAC,yBAAyB;IAMjC,oBAAoB,kBAEhB,QAAQ,IAAI,CAAC,CAoDf;IAEF,4BAA4B,UAAW,GAAG,KAAG,IAAI,CAY/C;IAEF,sBAAsB,kBAGlB,IAAI,CAWN;IAEF,wBAAwB,kBAEpB,IAAI,CAqBN;IAEF,0BAA0B,kBAGtB,IAAI,CAcN;IAEF,kBAAkB,iCAAoB,IAAI,CAExC;IAEF,OAAO,CAAC,0BAA0B,CAGjC;IAED,OAAO,CAAC,0BAA0B,CAEjC;IAED,OAAO,CAAC,yBAAyB,CAEhC;CACJ","file":"OpentokMultiparty.d.ts","sourcesContent":["import {maxParticipantsNumber, MULTI_PARTY_EVENTS, MultiParty, Subscriber, DEFAULT_AVATAR_URI} from './MultiParty';\nimport {CameraTypes, SessionClientRole} from '../MediaConstants';\nimport {getMediaTracer} from '../MediaUtils/MediaTracer';\nimport get from 'lodash/get';\nimport {BrandingSettings, Credentials, SessionSettings} from './Contracts';\nimport filter from 'lodash/filter';\nimport cloneDeep from 'lodash/cloneDeep';\nimport {MediaCapabilitiesHelper} from './MediaCapabilitiesHelper';\n\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<Subscriber> = [];\n session?: any;\n currentPublisher?: any;\n branding?: BrandingSettings;\n getParticipantId: (clientRole: SessionClientRole, connectionId: string) => string;\n\n /** @FIXME not used atm, should be refactored */\n credentials?: Credentials;\n participantCount = 0;\n\n constructor(settings: SessionSettings, getParticipantDomId: (clientRole: SessionClientRole, connectionId: string) => string) {\n super(settings);\n this.branding = settings.branding;\n this.getParticipantId = getParticipantDomId;\n }\n\n get ownConnectionId(): string | undefined {\n return this.session?.connection?.connectionId;\n }\n\n connect = (credentials: Credentials): void => {\n this.credentials = credentials;\n\n try {\n this.session = window?.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 this.session.on('sessionDisconnected', this.sessionDisconnectedHandler);\n this.session.on('sessionReconnecting', this.sessionReconnectingHandler);\n this.session.on('sessionReconnected', this.sessionReconnectedHandler);\n\n this.session.connect(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: SessionSettings): Promise<boolean | Error> => {\n try {\n const mediaCapabilitiesHelper = await MediaCapabilitiesHelper.getInstance();\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: SessionSettings): Promise<boolean | Error> => {\n try {\n const mediaCapabilitiesHelper = await MediaCapabilitiesHelper.getInstance();\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: SessionSettings): 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 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\n if (!this.currentPublisher) {\n throw new Error('Creating session requires initialized publisher');\n }\n\n this.currentPublisher && this.session?.publish(this.currentPublisher, this.traceErrorCallback);\n }\n };\n\n publishAudio = async (shouldMute: boolean): Promise<void> => {\n const settings = cloneDeep(this.settings);\n\n settings.startWithAudioMuted = !shouldMute;\n\n if (shouldMute && !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(shouldMute);\n }\n };\n\n publishVideo = async (shouldPublishVideo: boolean): Promise<void> => {\n const settings = cloneDeep(this.settings);\n\n settings.defaultCamera = shouldPublishVideo ? this.settings.defaultCamera : CameraTypes.NONE;\n\n if (shouldPublishVideo && !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(shouldPublishVideo);\n }\n };\n\n switchCamera = async (): Promise<void> => {\n try {\n const mediaCapabilitiesHelper = await MediaCapabilitiesHelper.getInstance();\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 } catch (err) {\n trace.error(JSON.stringify(err));\n throw err;\n }\n };\n\n private getClientRole(connection?: any): SessionClientRole {\n return (connection?.data && JSON.parse(connection.data).clientRole) || SessionClientRole.USER;\n }\n\n initPublisher = (settings: SessionSettings): void => {\n const properties = {\n insertMode: 'append',\n fitMode: 'cover',\n width: '100%',\n height: '100%',\n style: {\n buttonDisplayMode: 'off',\n archiveStatusDisplayMode: 'off',\n audioLevelDisplayMode: 'off',\n backgroundImageURI: this.branding?.backgroundImageURI || DEFAULT_AVATAR_URI\n },\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 = window?.OT.initPublisher(this.getParticipantIdForStream(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 this.emit(MULTI_PARTY_EVENTS.streamDestroyed, {event: event,\n participantId: this.getParticipantIdForStream(event?.stream?.connection)});\n });\n this.currentPublisher.on('accessDenied', (event: any) => {\n trace.info('Publisher denied media permissions', event);\n this.emit(MULTI_PARTY_EVENTS.mediaDeviceAccessDenied);\n });\n this.currentPublisher.on('streamCreated', async (event: any) => {\n await MediaCapabilitiesHelper.setDevicesList();\n\n const participantId = this.getParticipantIdForStream(event?.stream?.connection);\n\n this.emit(MULTI_PARTY_EVENTS.streamCreated,\n {event: event, participantId: participantId,\n startWithAudioMuted: this.settings.startWithAudioMuted,\n hasAudio: event?.stream?.hasAudio,\n hasVideo: event?.stream?.hasVideo,\n isOwnConnection: this.ownConnectionId === event?.stream?.connection?.connectionId,\n });\n\n trace.info('publisher stream created', {event,\n hasAudio: get(this.currentPublisher, 'stream.hasAudio'),\n participantId});\n });\n }\n };\n\n private getParticipantIdForStream(connection: any) {\n const clientRole = this.getClientRole(connection);\n\n return this.getParticipantId(clientRole, connection.connectionId);\n }\n\n streamCreatedHandler = async (event: any & {\n stream: any;\n }): Promise<void> => {\n trace.info('streamCreatedHandler', event.stream);\n\n const {stream} = event;\n const {connection} = stream;\n const participantId = this.getParticipantIdForStream(connection);\n\n await MediaCapabilitiesHelper.setDevicesList();\n\n this.emit(MULTI_PARTY_EVENTS.streamCreated,\n {event: event, participantId: participantId,\n startWithAudioMuted: this.settings.startWithAudioMuted,\n isOwnConnection: this.ownConnectionId === (event?.stream?.connection?.connectionId) as string,\n hasVideo: event?.stream?.hasVideo,\n hasAudio: event?.stream?.hasAudio});\n\n if (!this.ownConnectionId || !stream || connection.connectionId === this.ownConnectionId) {\n return;\n }\n\n if (this.subscribers.length >= maxParticipantsNumber - 1) {\n // eslint-disable-next-line no-alert\n alert('a new subscriber cannot be added, as the number of participants reached its limit');\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: 'cover',\n width: '100%',\n height: '100%',\n style: {\n buttonDisplayMode: 'off',\n audioLevelDisplayMode: 'off',\n backgroundImageURI: this.branding?.backgroundImageURI || DEFAULT_AVATAR_URI\n },\n };\n\n const subscriber = event.target.subscribe(event.stream, participantId, properties, (err: any) => {\n this.traceErrorCallback(err);\n subscriber?.on('videoElementCreated', (event: any) => {\n trace.info('videoElementCreated', event);\n });\n });\n\n this?.session?.signal({retryAfterReconnect: true});\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\n const {stream} = event;\n\n this.emit(MULTI_PARTY_EVENTS.videoAudioStatus, {\n hasVideo: stream?.hasVideo,\n hasAudio: stream?.hasAudio,\n participantId: this.getParticipantIdForStream(stream?.connection),\n isOwnConnection: this.ownConnectionId === stream?.connection?.connectionId,\n stream\n });\n };\n\n streamDestroyedHandler = (event: any & {\n stream: any;\n reason: string;\n }): void => {\n\n this?.session?.signal({retryAfterReconnect: true});\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, {event: event, participantId: this.getParticipantIdForStream(event?.stream?.connection)});\n this.subscribers = filter(this.subscribers, (subscriber) => subscriber.connectionId !== destroyedConnectionId);\n // eslint-disable-next-line no-alert\n alert('removed subscriber, subscribers array: ' + this.subscribers.toString());\n };\n\n connectionCreatedHandler = (event: any & {\n connection: any;\n }): 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\n const clientRole = this.getClientRole(connection);\n\n this?.session?.signal({retryAfterReconnect: true});\n\n this.emit(MULTI_PARTY_EVENTS.connectionCreated, {\n clientRole, event,\n participantId: this.getParticipantIdForStream(connection),\n isOwnConnection: this.ownConnectionId === connection.connectionId\n });\n };\n\n connectionDestroyedHandler = (event: any & {\n connection: any;\n reason: string;\n }): void => {\n const {connection} = event;\n const clientRole = this.getClientRole(connection);\n\n trace.info('connectionDestroyedHandler', event);\n this.emit(MULTI_PARTY_EVENTS.connectionDestroyed, {clientRole, event, participantId: this.getParticipantIdForStream(event?.connection)});\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 };\n\n traceErrorCallback = (error?: Error): void => {\n trace.error(JSON.stringify(error));\n };\n\n private sessionDisconnectedHandler = (event: any) => {\n trace.info('sessionDisconnectedHandler', event);\n this?.session?.signal({retryAfterReconnect: true});\n }\n\n private sessionReconnectingHandler = (event: any) => {\n trace.info('sessionReconnectingHandler', event);\n }\n\n private sessionReconnectedHandler = (event: any) => {\n trace.info('sessionReconnectedHandler', event);\n }\n}\n"]}
|
|
@@ -212,11 +212,6 @@ function (_super) {
|
|
|
212
212
|
var _this = _super.call(this, settings) || this;
|
|
213
213
|
|
|
214
214
|
_this.subscribers = [];
|
|
215
|
-
_this.credentials = {
|
|
216
|
-
apiKey: '',
|
|
217
|
-
sessionId: '',
|
|
218
|
-
token: ''
|
|
219
|
-
};
|
|
220
215
|
_this.participantCount = 0;
|
|
221
216
|
|
|
222
217
|
_this.connect = function (credentials) {
|
|
@@ -225,7 +220,7 @@ function (_super) {
|
|
|
225
220
|
try {
|
|
226
221
|
_this.session = window === null || window === void 0 ? void 0 : window.OT.initSession(credentials.apiKey, credentials.sessionId);
|
|
227
222
|
} catch (err) {
|
|
228
|
-
|
|
223
|
+
trace.error(JSON.stringify(err));
|
|
229
224
|
|
|
230
225
|
_this.emit(MultiParty_1.MULTI_PARTY_EVENTS.connectFailed, {
|
|
231
226
|
meta: {
|
|
@@ -259,8 +254,6 @@ function (_super) {
|
|
|
259
254
|
return __generator(this, function (_b) {
|
|
260
255
|
switch (_b.label) {
|
|
261
256
|
case 0:
|
|
262
|
-
console.log('media service - session connect');
|
|
263
|
-
|
|
264
257
|
if (error) {
|
|
265
258
|
(_a = this.session) === null || _a === void 0 ? void 0 : _a.off();
|
|
266
259
|
this.session = null;
|
|
@@ -276,7 +269,7 @@ function (_super) {
|
|
|
276
269
|
}
|
|
277
270
|
|
|
278
271
|
if (this.settings.defaultCamera === MediaConstants_1.CameraTypes.NONE && this.settings.startWithAudioMuted) {
|
|
279
|
-
|
|
272
|
+
trace.info('camera is none, no need to create publisher');
|
|
280
273
|
return [2
|
|
281
274
|
/*return*/
|
|
282
275
|
];
|
|
@@ -300,18 +293,16 @@ function (_super) {
|
|
|
300
293
|
|
|
301
294
|
_this.disconnect = function () {
|
|
302
295
|
try {
|
|
303
|
-
|
|
304
|
-
console.log('media service - session disconnect');
|
|
296
|
+
trace.info('Disconnecting from session');
|
|
305
297
|
|
|
306
298
|
if (_this.session) {
|
|
307
|
-
_this.session.disconnect();
|
|
308
|
-
|
|
299
|
+
_this.session.disconnect();
|
|
309
300
|
|
|
310
301
|
_this.participantCount = 0;
|
|
311
|
-
|
|
302
|
+
trace.info('Disconnection from session completed');
|
|
312
303
|
}
|
|
313
304
|
} catch (err) {
|
|
314
|
-
|
|
305
|
+
trace.error(JSON.stringify(err));
|
|
315
306
|
}
|
|
316
307
|
};
|
|
317
308
|
|
|
@@ -321,28 +312,24 @@ function (_super) {
|
|
|
321
312
|
return __generator(this, function (_a) {
|
|
322
313
|
switch (_a.label) {
|
|
323
314
|
case 0:
|
|
324
|
-
|
|
325
|
-
_a.label = 1;
|
|
326
|
-
|
|
327
|
-
case 1:
|
|
328
|
-
_a.trys.push([1, 3,, 4]);
|
|
315
|
+
_a.trys.push([0, 2,, 3]);
|
|
329
316
|
|
|
330
317
|
return [4
|
|
331
318
|
/*yield*/
|
|
332
319
|
, MediaCapabilitiesHelper_1.MediaCapabilitiesHelper.getInstance()];
|
|
333
320
|
|
|
334
|
-
case
|
|
321
|
+
case 1:
|
|
335
322
|
mediaCapabilitiesHelper = _a.sent();
|
|
336
323
|
return [2
|
|
337
324
|
/*return*/
|
|
338
325
|
, settings.defaultCamera !== MediaConstants_1.CameraTypes.NONE ? mediaCapabilitiesHelper.hasCamera() : false];
|
|
339
326
|
|
|
340
|
-
case
|
|
327
|
+
case 2:
|
|
341
328
|
err_1 = _a.sent();
|
|
342
|
-
|
|
329
|
+
trace.error(JSON.stringify(err_1));
|
|
343
330
|
throw err_1;
|
|
344
331
|
|
|
345
|
-
case
|
|
332
|
+
case 3:
|
|
346
333
|
return [2
|
|
347
334
|
/*return*/
|
|
348
335
|
];
|
|
@@ -357,28 +344,24 @@ function (_super) {
|
|
|
357
344
|
return __generator(this, function (_a) {
|
|
358
345
|
switch (_a.label) {
|
|
359
346
|
case 0:
|
|
360
|
-
|
|
361
|
-
_a.label = 1;
|
|
362
|
-
|
|
363
|
-
case 1:
|
|
364
|
-
_a.trys.push([1, 3,, 4]);
|
|
347
|
+
_a.trys.push([0, 2,, 3]);
|
|
365
348
|
|
|
366
349
|
return [4
|
|
367
350
|
/*yield*/
|
|
368
351
|
, MediaCapabilitiesHelper_1.MediaCapabilitiesHelper.getInstance()];
|
|
369
352
|
|
|
370
|
-
case
|
|
353
|
+
case 1:
|
|
371
354
|
mediaCapabilitiesHelper = _a.sent();
|
|
372
355
|
return [2
|
|
373
356
|
/*return*/
|
|
374
357
|
, !settings.startWithAudioMuted && mediaCapabilitiesHelper.hasMicrophone()];
|
|
375
358
|
|
|
376
|
-
case
|
|
359
|
+
case 2:
|
|
377
360
|
err_2 = _a.sent();
|
|
378
|
-
|
|
361
|
+
trace.error(JSON.stringify(err_2));
|
|
379
362
|
throw err_2;
|
|
380
363
|
|
|
381
|
-
case
|
|
364
|
+
case 3:
|
|
382
365
|
return [2
|
|
383
366
|
/*return*/
|
|
384
367
|
];
|
|
@@ -396,7 +379,6 @@ function (_super) {
|
|
|
396
379
|
return __generator(this, function (_b) {
|
|
397
380
|
switch (_b.label) {
|
|
398
381
|
case 0:
|
|
399
|
-
console.log('media service - create publisher');
|
|
400
382
|
settings = cloneDeep_1["default"](settingsForPublisher);
|
|
401
383
|
return [4
|
|
402
384
|
/*yield*/
|
|
@@ -412,8 +394,7 @@ function (_super) {
|
|
|
412
394
|
couldStartPublishAudio = _b.sent();
|
|
413
395
|
|
|
414
396
|
if (!couldStartPublishVideo && !couldStartPublishAudio) {
|
|
415
|
-
|
|
416
|
-
console.error('could not create a publisher, due to lack of media capabilities or settings');
|
|
397
|
+
trace.error('could not create a publisher, due to lack of media capabilities or settings');
|
|
417
398
|
return [2
|
|
418
399
|
/*return*/
|
|
419
400
|
];
|
|
@@ -452,7 +433,6 @@ function (_super) {
|
|
|
452
433
|
return __generator(this, function (_b) {
|
|
453
434
|
switch (_b.label) {
|
|
454
435
|
case 0:
|
|
455
|
-
console.log('media service - publish audio');
|
|
456
436
|
settings = cloneDeep_1["default"](this.settings);
|
|
457
437
|
settings.startWithAudioMuted = !shouldMute;
|
|
458
438
|
_a = shouldMute;
|
|
@@ -469,7 +449,7 @@ function (_super) {
|
|
|
469
449
|
|
|
470
450
|
case 2:
|
|
471
451
|
if (_a) {
|
|
472
|
-
|
|
452
|
+
trace.error('could not publish audio');
|
|
473
453
|
return [2
|
|
474
454
|
/*return*/
|
|
475
455
|
];
|
|
@@ -509,7 +489,6 @@ function (_super) {
|
|
|
509
489
|
return __generator(this, function (_b) {
|
|
510
490
|
switch (_b.label) {
|
|
511
491
|
case 0:
|
|
512
|
-
console.log('media service - publish video');
|
|
513
492
|
settings = cloneDeep_1["default"](this.settings);
|
|
514
493
|
settings.defaultCamera = shouldPublishVideo ? this.settings.defaultCamera : MediaConstants_1.CameraTypes.NONE;
|
|
515
494
|
_a = shouldPublishVideo;
|
|
@@ -526,7 +505,7 @@ function (_super) {
|
|
|
526
505
|
|
|
527
506
|
case 2:
|
|
528
507
|
if (_a) {
|
|
529
|
-
|
|
508
|
+
trace.error('could not publish video');
|
|
530
509
|
return [2
|
|
531
510
|
/*return*/
|
|
532
511
|
];
|
|
@@ -570,17 +549,13 @@ function (_super) {
|
|
|
570
549
|
return __generator(this, function (_b) {
|
|
571
550
|
switch (_b.label) {
|
|
572
551
|
case 0:
|
|
573
|
-
|
|
574
|
-
_b.label = 1;
|
|
575
|
-
|
|
576
|
-
case 1:
|
|
577
|
-
_b.trys.push([1, 3,, 4]);
|
|
552
|
+
_b.trys.push([0, 2,, 3]);
|
|
578
553
|
|
|
579
554
|
return [4
|
|
580
555
|
/*yield*/
|
|
581
556
|
, MediaCapabilitiesHelper_1.MediaCapabilitiesHelper.getInstance()];
|
|
582
557
|
|
|
583
|
-
case
|
|
558
|
+
case 1:
|
|
584
559
|
mediaCapabilitiesHelper = _b.sent();
|
|
585
560
|
|
|
586
561
|
if (!mediaCapabilitiesHelper.supportSwitchCamera) {
|
|
@@ -609,15 +584,15 @@ function (_super) {
|
|
|
609
584
|
/*return*/
|
|
610
585
|
, (_a = this.currentPublisher) === null || _a === void 0 ? void 0 : _a.setVideoSource(deviceId).then(function () {
|
|
611
586
|
_this.settings.defaultCamera = cameraType_1;
|
|
612
|
-
|
|
587
|
+
trace.info("Success to switch camera to cameraType: " + cameraType_1);
|
|
613
588
|
})];
|
|
614
589
|
|
|
615
|
-
case
|
|
590
|
+
case 2:
|
|
616
591
|
err_3 = _b.sent();
|
|
617
|
-
|
|
592
|
+
trace.error(JSON.stringify(err_3));
|
|
618
593
|
throw err_3;
|
|
619
594
|
|
|
620
|
-
case
|
|
595
|
+
case 3:
|
|
621
596
|
return [2
|
|
622
597
|
/*return*/
|
|
623
598
|
];
|
|
@@ -629,7 +604,6 @@ function (_super) {
|
|
|
629
604
|
_this.initPublisher = function (settings) {
|
|
630
605
|
var _a, _b;
|
|
631
606
|
|
|
632
|
-
console.log('media service - init publisher');
|
|
633
607
|
var properties = {
|
|
634
608
|
insertMode: 'append',
|
|
635
609
|
fitMode: 'cover',
|
|
@@ -648,10 +622,10 @@ function (_super) {
|
|
|
648
622
|
_this.currentPublisher = window === null || window === void 0 ? void 0 : window.OT.initPublisher(_this.getParticipantIdForStream((_b = _this.session) === null || _b === void 0 ? void 0 : _b.connection), properties, _this.traceErrorCallback);
|
|
649
623
|
|
|
650
624
|
if (!_this.currentPublisher) {
|
|
651
|
-
|
|
625
|
+
trace.error('failed to init publisher');
|
|
652
626
|
} else {
|
|
653
627
|
_this.currentPublisher.on('videoElementCreated', function (event) {
|
|
654
|
-
|
|
628
|
+
trace.info('videoElementCreated', event);
|
|
655
629
|
|
|
656
630
|
_this.emit(MultiParty_1.MULTI_PARTY_EVENTS.videoElementCreated, event);
|
|
657
631
|
});
|
|
@@ -659,7 +633,7 @@ function (_super) {
|
|
|
659
633
|
_this.currentPublisher.on('streamDestroyed', function (event) {
|
|
660
634
|
var _a;
|
|
661
635
|
|
|
662
|
-
|
|
636
|
+
trace.info('Publisher stream destroyed', event);
|
|
663
637
|
|
|
664
638
|
_this.emit(MultiParty_1.MULTI_PARTY_EVENTS.streamDestroyed, {
|
|
665
639
|
event: event,
|
|
@@ -668,7 +642,7 @@ function (_super) {
|
|
|
668
642
|
});
|
|
669
643
|
|
|
670
644
|
_this.currentPublisher.on('accessDenied', function (event) {
|
|
671
|
-
|
|
645
|
+
trace.info('Publisher denied media permissions', event);
|
|
672
646
|
|
|
673
647
|
_this.emit(MultiParty_1.MULTI_PARTY_EVENTS.mediaDeviceAccessDenied);
|
|
674
648
|
});
|
|
@@ -698,7 +672,7 @@ function (_super) {
|
|
|
698
672
|
hasVideo: (_c = event === null || event === void 0 ? void 0 : event.stream) === null || _c === void 0 ? void 0 : _c.hasVideo,
|
|
699
673
|
isOwnConnection: this.ownConnectionId === ((_e = (_d = event === null || event === void 0 ? void 0 : event.stream) === null || _d === void 0 ? void 0 : _d.connection) === null || _e === void 0 ? void 0 : _e.connectionId)
|
|
700
674
|
});
|
|
701
|
-
|
|
675
|
+
trace.info('publisher stream created', {
|
|
702
676
|
event: event,
|
|
703
677
|
hasAudio: get_1["default"](this.currentPublisher, 'stream.hasAudio'),
|
|
704
678
|
participantId: participantId
|
|
@@ -715,16 +689,16 @@ function (_super) {
|
|
|
715
689
|
|
|
716
690
|
_this.streamCreatedHandler = function (event) {
|
|
717
691
|
return __awaiter(_this, void 0, void 0, function () {
|
|
718
|
-
var stream, connection, participantId, properties,
|
|
692
|
+
var stream, connection, participantId, properties, subscriber_1;
|
|
719
693
|
|
|
720
694
|
var _this = this;
|
|
721
695
|
|
|
722
|
-
var _a, _b, _c, _d, _e;
|
|
696
|
+
var _a, _b, _c, _d, _e, _f;
|
|
723
697
|
|
|
724
|
-
return __generator(this, function (
|
|
725
|
-
switch (
|
|
698
|
+
return __generator(this, function (_g) {
|
|
699
|
+
switch (_g.label) {
|
|
726
700
|
case 0:
|
|
727
|
-
|
|
701
|
+
trace.info('streamCreatedHandler', event.stream);
|
|
728
702
|
stream = event.stream;
|
|
729
703
|
connection = stream.connection;
|
|
730
704
|
participantId = this.getParticipantIdForStream(connection);
|
|
@@ -733,12 +707,7 @@ function (_super) {
|
|
|
733
707
|
, MediaCapabilitiesHelper_1.MediaCapabilitiesHelper.setDevicesList()];
|
|
734
708
|
|
|
735
709
|
case 1:
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
if (!this.ownConnectionId) {
|
|
739
|
-
++this.participantCount;
|
|
740
|
-
this.emit(MultiParty_1.MULTI_PARTY_EVENTS.participantsNumberChanged, this.participantCount);
|
|
741
|
-
}
|
|
710
|
+
_g.sent();
|
|
742
711
|
|
|
743
712
|
this.emit(MultiParty_1.MULTI_PARTY_EVENTS.streamCreated, {
|
|
744
713
|
event: event,
|
|
@@ -757,36 +726,37 @@ function (_super) {
|
|
|
757
726
|
|
|
758
727
|
if (this.subscribers.length >= MultiParty_1.maxParticipantsNumber - 1) {
|
|
759
728
|
// eslint-disable-next-line no-alert
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
729
|
+
alert('a new subscriber cannot be added, as the number of participants reached its limit');
|
|
730
|
+
trace.info("a new subscriber cannot be added, as the number of participants reached its limit: " + MultiParty_1.maxParticipantsNumber);
|
|
731
|
+
} else {
|
|
732
|
+
properties = {
|
|
733
|
+
insertMode: 'append',
|
|
734
|
+
fitMode: 'cover',
|
|
735
|
+
width: '100%',
|
|
736
|
+
height: '100%',
|
|
737
|
+
style: {
|
|
738
|
+
buttonDisplayMode: 'off',
|
|
739
|
+
audioLevelDisplayMode: 'off',
|
|
740
|
+
backgroundImageURI: ((_e = this.branding) === null || _e === void 0 ? void 0 : _e.backgroundImageURI) || MultiParty_1.DEFAULT_AVATAR_URI
|
|
741
|
+
}
|
|
742
|
+
};
|
|
743
|
+
subscriber_1 = event.target.subscribe(event.stream, participantId, properties, function (err) {
|
|
744
|
+
_this.traceErrorCallback(err);
|
|
745
|
+
|
|
746
|
+
subscriber_1 === null || subscriber_1 === void 0 ? void 0 : subscriber_1.on('videoElementCreated', function (event) {
|
|
747
|
+
trace.info('videoElementCreated', event);
|
|
748
|
+
});
|
|
749
|
+
});
|
|
750
|
+
(_f = this === null || this === void 0 ? void 0 : this.session) === null || _f === void 0 ? void 0 : _f.signal({
|
|
751
|
+
retryAfterReconnect: true
|
|
752
|
+
});
|
|
753
|
+
this.subscribers.push({
|
|
754
|
+
subscriber: subscriber_1,
|
|
755
|
+
connectionId: connection.connectionId,
|
|
756
|
+
clientRole: this.getClientRole(connection)
|
|
757
|
+
});
|
|
763
758
|
}
|
|
764
759
|
|
|
765
|
-
properties = {
|
|
766
|
-
insertMode: 'append',
|
|
767
|
-
fitMode: 'cover',
|
|
768
|
-
width: '100%',
|
|
769
|
-
height: '100%',
|
|
770
|
-
style: {
|
|
771
|
-
buttonDisplayMode: 'off',
|
|
772
|
-
audioLevelDisplayMode: 'off',
|
|
773
|
-
backgroundImageURI: ((_e = this.branding) === null || _e === void 0 ? void 0 : _e.backgroundImageURI) || MultiParty_1.DEFAULT_AVATAR_URI
|
|
774
|
-
}
|
|
775
|
-
};
|
|
776
|
-
subscriber = event.target.subscribe(event.stream, participantId, properties, function (err) {
|
|
777
|
-
_this.traceErrorCallback(err);
|
|
778
|
-
|
|
779
|
-
subscriber === null || subscriber === void 0 ? void 0 : subscriber.on('videoElementCreated', function (event) {
|
|
780
|
-
console.log('videoElementCreated', event);
|
|
781
|
-
|
|
782
|
-
_this.emit(MultiParty_1.MULTI_PARTY_EVENTS.videoElementCreated, event);
|
|
783
|
-
});
|
|
784
|
-
});
|
|
785
|
-
this.subscribers.push({
|
|
786
|
-
subscriber: subscriber,
|
|
787
|
-
connectionId: connection.connectionId,
|
|
788
|
-
clientRole: this.getClientRole(connection)
|
|
789
|
-
});
|
|
790
760
|
return [2
|
|
791
761
|
/*return*/
|
|
792
762
|
];
|
|
@@ -798,7 +768,7 @@ function (_super) {
|
|
|
798
768
|
_this.streamPropertyChangedHandler = function (event) {
|
|
799
769
|
var _a;
|
|
800
770
|
|
|
801
|
-
|
|
771
|
+
trace.info('streamPropertyChangedHandler', event);
|
|
802
772
|
var stream = event.stream;
|
|
803
773
|
|
|
804
774
|
_this.emit(MultiParty_1.MULTI_PARTY_EVENTS.videoAudioStatus, {
|
|
@@ -811,37 +781,47 @@ function (_super) {
|
|
|
811
781
|
};
|
|
812
782
|
|
|
813
783
|
_this.streamDestroyedHandler = function (event) {
|
|
814
|
-
var _a;
|
|
784
|
+
var _a, _b;
|
|
815
785
|
|
|
816
|
-
|
|
786
|
+
(_a = _this === null || _this === void 0 ? void 0 : _this.session) === null || _a === void 0 ? void 0 : _a.signal({
|
|
787
|
+
retryAfterReconnect: true
|
|
788
|
+
});
|
|
789
|
+
trace.info('streamDestroyedHandler', event);
|
|
817
790
|
var stream = event.stream;
|
|
818
791
|
var destroyedConnectionId = stream && stream.connection && stream.connection.connectionId;
|
|
819
792
|
|
|
820
793
|
_this.emit(MultiParty_1.MULTI_PARTY_EVENTS.streamDestroyed, {
|
|
821
794
|
event: event,
|
|
822
|
-
participantId: _this.getParticipantIdForStream((
|
|
795
|
+
participantId: _this.getParticipantIdForStream((_b = event === null || event === void 0 ? void 0 : event.stream) === null || _b === void 0 ? void 0 : _b.connection)
|
|
823
796
|
});
|
|
824
797
|
|
|
825
798
|
_this.subscribers = filter_1["default"](_this.subscribers, function (subscriber) {
|
|
826
799
|
return subscriber.connectionId !== destroyedConnectionId;
|
|
827
|
-
}); //
|
|
828
|
-
// eslint-disable-next-line no-alert
|
|
800
|
+
}); // eslint-disable-next-line no-alert
|
|
829
801
|
|
|
830
|
-
|
|
802
|
+
alert('removed subscriber, subscribers array: ' + _this.subscribers.toString());
|
|
831
803
|
};
|
|
832
804
|
|
|
833
805
|
_this.connectionCreatedHandler = function (event) {
|
|
834
|
-
|
|
806
|
+
var _a;
|
|
807
|
+
|
|
808
|
+
trace.info('connectionCreatedHandler', event);
|
|
835
809
|
var connection = event.connection;
|
|
836
810
|
|
|
837
811
|
if (!_this.ownConnectionId || !connection) {
|
|
838
812
|
return;
|
|
839
|
-
}
|
|
840
|
-
//this.emit(MULTI_PARTY_EVENTS.participantsNumberChanged, this.participantCount);
|
|
813
|
+
}
|
|
841
814
|
|
|
815
|
+
++_this.participantCount;
|
|
816
|
+
|
|
817
|
+
_this.emit(MultiParty_1.MULTI_PARTY_EVENTS.participantsNumberChanged, _this.participantCount);
|
|
842
818
|
|
|
843
819
|
var clientRole = _this.getClientRole(connection);
|
|
844
820
|
|
|
821
|
+
(_a = _this === null || _this === void 0 ? void 0 : _this.session) === null || _a === void 0 ? void 0 : _a.signal({
|
|
822
|
+
retryAfterReconnect: true
|
|
823
|
+
});
|
|
824
|
+
|
|
845
825
|
_this.emit(MultiParty_1.MULTI_PARTY_EVENTS.connectionCreated, {
|
|
846
826
|
clientRole: clientRole,
|
|
847
827
|
event: event,
|
|
@@ -855,7 +835,7 @@ function (_super) {
|
|
|
855
835
|
|
|
856
836
|
var clientRole = _this.getClientRole(connection);
|
|
857
837
|
|
|
858
|
-
|
|
838
|
+
trace.info('connectionDestroyedHandler', event);
|
|
859
839
|
|
|
860
840
|
_this.emit(MultiParty_1.MULTI_PARTY_EVENTS.connectionDestroyed, {
|
|
861
841
|
clientRole: clientRole,
|
|
@@ -875,74 +855,24 @@ function (_super) {
|
|
|
875
855
|
};
|
|
876
856
|
|
|
877
857
|
_this.traceErrorCallback = function (error) {
|
|
878
|
-
|
|
858
|
+
trace.error(JSON.stringify(error));
|
|
879
859
|
};
|
|
880
860
|
|
|
881
861
|
_this.sessionDisconnectedHandler = function (event) {
|
|
882
|
-
|
|
883
|
-
return __generator(this, function (_a) {
|
|
884
|
-
switch (_a.label) {
|
|
885
|
-
case 0:
|
|
886
|
-
console.log('media service - session disconnected');
|
|
887
|
-
return [4
|
|
888
|
-
/*yield*/
|
|
889
|
-
, this.session.destroy()];
|
|
890
|
-
|
|
891
|
-
case 1:
|
|
892
|
-
_a.sent();
|
|
893
|
-
|
|
894
|
-
return [4
|
|
895
|
-
/*yield*/
|
|
896
|
-
, this.connect(this.credentials)];
|
|
897
|
-
|
|
898
|
-
case 2:
|
|
899
|
-
_a.sent();
|
|
862
|
+
var _a;
|
|
900
863
|
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
}
|
|
905
|
-
});
|
|
864
|
+
trace.info('sessionDisconnectedHandler', event);
|
|
865
|
+
(_a = _this === null || _this === void 0 ? void 0 : _this.session) === null || _a === void 0 ? void 0 : _a.signal({
|
|
866
|
+
retryAfterReconnect: true
|
|
906
867
|
});
|
|
907
868
|
};
|
|
908
869
|
|
|
909
870
|
_this.sessionReconnectingHandler = function (event) {
|
|
910
|
-
|
|
911
|
-
return __generator(this, function (_a) {
|
|
912
|
-
console.log('media service - session reconnecting');
|
|
913
|
-
return [2
|
|
914
|
-
/*return*/
|
|
915
|
-
];
|
|
916
|
-
});
|
|
917
|
-
});
|
|
871
|
+
trace.info('sessionReconnectingHandler', event);
|
|
918
872
|
};
|
|
919
873
|
|
|
920
874
|
_this.sessionReconnectedHandler = function (event) {
|
|
921
|
-
|
|
922
|
-
return __generator(this, function (_a) {
|
|
923
|
-
switch (_a.label) {
|
|
924
|
-
case 0:
|
|
925
|
-
console.log('media service - session reconnected');
|
|
926
|
-
return [4
|
|
927
|
-
/*yield*/
|
|
928
|
-
, this.session.destroy()];
|
|
929
|
-
|
|
930
|
-
case 1:
|
|
931
|
-
_a.sent();
|
|
932
|
-
|
|
933
|
-
return [4
|
|
934
|
-
/*yield*/
|
|
935
|
-
, this.connect(this.credentials)];
|
|
936
|
-
|
|
937
|
-
case 2:
|
|
938
|
-
_a.sent();
|
|
939
|
-
|
|
940
|
-
return [2
|
|
941
|
-
/*return*/
|
|
942
|
-
];
|
|
943
|
-
}
|
|
944
|
-
});
|
|
945
|
-
});
|
|
875
|
+
trace.info('sessionReconnectedHandler', event);
|
|
946
876
|
};
|
|
947
877
|
|
|
948
878
|
_this.branding = settings.branding;
|
|
@@ -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","trace","getMediaTracer","OpentokFacingMode","_super","settings","getParticipantDomId","_this","subscribers","credentials","apiKey","sessionId","token","participantCount","connect","session","window","OT","initSession","err","console","error","JSON","stringify","emit","MULTI_PARTY_EVENTS","connectFailed","meta","on","connectionCreatedHandler","connectionDestroyedHandler","streamCreatedHandler","streamDestroyedHandler","streamPropertyChangedHandler","sessionDisconnectedHandler","sessionReconnectingHandler","sessionReconnectedHandler","_a","_b","log","off","traceErrorCallback","defaultCamera","CameraTypes","NONE","startWithAudioMuted","createPublisher","disconnect","couldStartPublishVideo","mediaCapabilitiesHelper","err_1","MediaCapabilitiesHelper","getInstance","hasCamera","couldStartPublishAudio","err_2","hasMicrophone","settingsForPublisher","currentPublisher","initPublisher","Error","publish","publishAudio","shouldMute","publishVideo","shouldPublishVideo","switchCamera","deviceId","cameraType_1","err_3","supportSwitchCamera","BACK","FRONT","frontCameraDeviceId","backCameraDeviceId","setVideoSource","properties","insertMode","fitMode","width","height","style","buttonDisplayMode","archiveStatusDisplayMode","audioLevelDisplayMode","backgroundImageURI","branding","DEFAULT_AVATAR_URI","facingMode","USER","ENVIRONMENT","getParticipantIdForStream","connection","event","videoElementCreated","streamDestroyed","participantId","stream","mediaDeviceAccessDenied","_c","_d","_e","_f","setDevicesList","streamCreated","hasAudio","hasVideo","isOwnConnection","ownConnectionId","connectionId","subscriber","participantsNumberChanged","maxParticipantsNumber","target","subscribe","clientRole","getClientRole","videoAudioStatus","destroyedConnectionId","toString","connectionCreated","connectionDestroyed","destroy","getParticipantId","get","enumerable","configurable","data","parse","SessionClientRole","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\");\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(settings, getParticipantDomId) {\n var _this = _super.call(this, settings) || this;\n _this.subscribers = [];\n _this.credentials = {\n apiKey: '',\n sessionId: '',\n token: ''\n };\n _this.participantCount = 0;\n _this.connect = function (credentials) {\n _this.credentials = credentials;\n try {\n _this.session = window === null || window === void 0 ? void 0 : window.OT.initSession(credentials.apiKey, credentials.sessionId);\n }\n catch (err) {\n console.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.on('sessionDisconnected', _this.sessionDisconnectedHandler);\n _this.session.on('sessionReconnecting', _this.sessionReconnectingHandler);\n _this.session.on('sessionReconnected', _this.sessionReconnectedHandler);\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 console.log('media service - session connect');\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 console.log('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 console.log('Disconnecting from session');\n console.log('media service - session disconnect');\n if (_this.session) {\n _this.session.disconnect();\n //this.subscribers = [];\n _this.participantCount = 0;\n console.log('Disconnection from session completed');\n }\n }\n catch (err) {\n console.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 console.log('media service - could start publish video');\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, MediaCapabilitiesHelper_1.MediaCapabilitiesHelper.getInstance()];\n case 2:\n mediaCapabilitiesHelper = _a.sent();\n return [2 /*return*/, (settings.defaultCamera !== MediaConstants_1.CameraTypes.NONE)\n ? mediaCapabilitiesHelper.hasCamera()\n : false];\n case 3:\n err_1 = _a.sent();\n console.error(JSON.stringify(err_1));\n throw err_1;\n case 4: 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 console.log('media service - could start publish audio');\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, MediaCapabilitiesHelper_1.MediaCapabilitiesHelper.getInstance()];\n case 2:\n mediaCapabilitiesHelper = _a.sent();\n return [2 /*return*/, !settings.startWithAudioMuted && mediaCapabilitiesHelper.hasMicrophone()];\n case 3:\n err_2 = _a.sent();\n console.error(JSON.stringify(err_2));\n throw err_2;\n case 4: 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 console.log('media service - create publisher');\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 console.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 if (!this.currentPublisher) {\n throw new Error('Creating session requires initialized publisher');\n }\n this.currentPublisher && ((_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 (shouldMute) { 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 console.log('media service - publish audio');\n settings = cloneDeep_1.default(this.settings);\n settings.startWithAudioMuted = !shouldMute;\n _a = shouldMute;\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 console.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(shouldMute);\n _b.label = 5;\n case 5: return [2 /*return*/];\n }\n });\n }); };\n _this.publishVideo = function (shouldPublishVideo) { 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 console.log('media service - publish video');\n settings = cloneDeep_1.default(this.settings);\n settings.defaultCamera = shouldPublishVideo ? this.settings.defaultCamera : MediaConstants_1.CameraTypes.NONE;\n _a = shouldPublishVideo;\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 console.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(shouldPublishVideo);\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 var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n console.log('media service - switch camera');\n _b.label = 1;\n case 1:\n _b.trys.push([1, 3, , 4]);\n return [4 /*yield*/, MediaCapabilitiesHelper_1.MediaCapabilitiesHelper.getInstance()];\n case 2:\n mediaCapabilitiesHelper = _b.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*/, (_a = this.currentPublisher) === null || _a === void 0 ? void 0 : _a.setVideoSource(deviceId).then(function () {\n _this.settings.defaultCamera = cameraType_1;\n console.log(\"Success to switch camera to cameraType: \" + cameraType_1);\n })];\n case 3:\n err_3 = _b.sent();\n console.error(JSON.stringify(err_3));\n throw err_3;\n case 4: return [2 /*return*/];\n }\n });\n }); };\n _this.initPublisher = function (settings) {\n var _a, _b;\n console.log('media service - init publisher');\n var properties = {\n insertMode: 'append',\n fitMode: 'cover',\n width: '100%',\n height: '100%',\n style: {\n buttonDisplayMode: 'off',\n archiveStatusDisplayMode: 'off',\n audioLevelDisplayMode: 'off',\n backgroundImageURI: ((_a = _this.branding) === null || _a === void 0 ? void 0 : _a.backgroundImageURI) || MultiParty_1.DEFAULT_AVATAR_URI\n },\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 = window === null || window === void 0 ? void 0 : window.OT.initPublisher(_this.getParticipantIdForStream((_b = _this.session) === null || _b === void 0 ? void 0 : _b.connection), properties, _this.traceErrorCallback);\n if (!_this.currentPublisher) {\n console.error('failed to init publisher');\n }\n else {\n _this.currentPublisher.on('videoElementCreated', function (event) {\n console.log('videoElementCreated', event);\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.videoElementCreated, event);\n });\n _this.currentPublisher.on('streamDestroyed', function (event) {\n var _a;\n console.log('Publisher stream destroyed', event);\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.streamDestroyed, {\n event: event,\n participantId: _this.getParticipantIdForStream((_a = event === null || event === void 0 ? void 0 : event.stream) === null || _a === void 0 ? void 0 : _a.connection)\n });\n });\n _this.currentPublisher.on('accessDenied', function (event) {\n console.log('Publisher denied media permissions', event);\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.mediaDeviceAccessDenied);\n });\n _this.currentPublisher.on('streamCreated', function (event) { return __awaiter(_this, void 0, void 0, function () {\n var participantId;\n var _a, _b, _c, _d, _e;\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0: return [4 /*yield*/, MediaCapabilitiesHelper_1.MediaCapabilitiesHelper.setDevicesList()];\n case 1:\n _f.sent();\n participantId = this.getParticipantIdForStream((_a = event === null || event === void 0 ? void 0 : event.stream) === null || _a === void 0 ? void 0 : _a.connection);\n this.emit(MultiParty_1.MULTI_PARTY_EVENTS.streamCreated, {\n event: event, participantId: participantId,\n startWithAudioMuted: this.settings.startWithAudioMuted,\n hasAudio: (_b = event === null || event === void 0 ? void 0 : event.stream) === null || _b === void 0 ? void 0 : _b.hasAudio,\n hasVideo: (_c = event === null || event === void 0 ? void 0 : event.stream) === null || _c === void 0 ? void 0 : _c.hasVideo,\n isOwnConnection: this.ownConnectionId === ((_e = (_d = event === null || event === void 0 ? void 0 : event.stream) === null || _d === void 0 ? void 0 : _d.connection) === null || _e === void 0 ? void 0 : _e.connectionId),\n });\n console.log('publisher stream created', {\n event: event,\n hasAudio: get_1.default(this.currentPublisher, 'stream.hasAudio'),\n participantId: participantId\n });\n return [2 /*return*/];\n }\n });\n }); });\n }\n };\n _this.streamCreatedHandler = function (event) { return __awaiter(_this, void 0, void 0, function () {\n var stream, connection, participantId, properties, subscriber;\n var _this = this;\n var _a, _b, _c, _d, _e;\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0:\n console.log('streamCreatedHandler', event.stream);\n stream = event.stream;\n connection = stream.connection;\n participantId = this.getParticipantIdForStream(connection);\n return [4 /*yield*/, MediaCapabilitiesHelper_1.MediaCapabilitiesHelper.setDevicesList()];\n case 1:\n _f.sent();\n if (!this.ownConnectionId) {\n ++this.participantCount;\n this.emit(MultiParty_1.MULTI_PARTY_EVENTS.participantsNumberChanged, this.participantCount);\n }\n this.emit(MultiParty_1.MULTI_PARTY_EVENTS.streamCreated, {\n event: event, participantId: participantId,\n startWithAudioMuted: this.settings.startWithAudioMuted,\n isOwnConnection: this.ownConnectionId === ((_b = (_a = event === null || event === void 0 ? void 0 : event.stream) === null || _a === void 0 ? void 0 : _a.connection) === null || _b === void 0 ? void 0 : _b.connectionId),\n hasVideo: (_c = event === null || event === void 0 ? void 0 : event.stream) === null || _c === void 0 ? void 0 : _c.hasVideo,\n hasAudio: (_d = event === null || event === void 0 ? void 0 : event.stream) === null || _d === void 0 ? void 0 : _d.hasAudio\n });\n if (!this.ownConnectionId || !stream || connection.connectionId === this.ownConnectionId) {\n return [2 /*return*/];\n }\n if (this.subscribers.length >= MultiParty_1.maxParticipantsNumber - 1) {\n // eslint-disable-next-line no-alert\n console.log('media service - a new subscriber cannot be added, count: ' + this.subscribers + ' as the number of participants reached its limit');\n //this.subscribers = [];\n console.log(\"a new subscriber cannot be added, as the number of participants reached its limit: \" + MultiParty_1.maxParticipantsNumber);\n // participantId\n }\n properties = {\n insertMode: 'append',\n fitMode: 'cover',\n width: '100%',\n height: '100%',\n style: {\n buttonDisplayMode: 'off',\n audioLevelDisplayMode: 'off',\n backgroundImageURI: ((_e = this.branding) === null || _e === void 0 ? void 0 : _e.backgroundImageURI) || MultiParty_1.DEFAULT_AVATAR_URI\n },\n };\n subscriber = event.target.subscribe(event.stream, participantId, properties, function (err) {\n _this.traceErrorCallback(err);\n subscriber === null || subscriber === void 0 ? void 0 : subscriber.on('videoElementCreated', function (event) {\n console.log('videoElementCreated', event);\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.videoElementCreated, event);\n });\n });\n this.subscribers.push({\n subscriber: subscriber,\n connectionId: connection.connectionId,\n clientRole: this.getClientRole(connection)\n });\n return [2 /*return*/];\n }\n });\n }); };\n _this.streamPropertyChangedHandler = function (event) {\n var _a;\n console.log('streamPropertyChangedHandler', event);\n var stream = event.stream;\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.videoAudioStatus, {\n hasVideo: stream === null || stream === void 0 ? void 0 : stream.hasVideo,\n hasAudio: stream === null || stream === void 0 ? void 0 : stream.hasAudio,\n participantId: _this.getParticipantIdForStream(stream === null || stream === void 0 ? void 0 : stream.connection),\n isOwnConnection: _this.ownConnectionId === ((_a = stream === null || stream === void 0 ? void 0 : stream.connection) === null || _a === void 0 ? void 0 : _a.connectionId),\n stream: stream\n });\n };\n _this.streamDestroyedHandler = function (event) {\n var _a;\n console.log('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, { event: event, participantId: _this.getParticipantIdForStream((_a = event === null || event === void 0 ? void 0 : event.stream) === null || _a === void 0 ? void 0 : _a.connection) });\n _this.subscribers = filter_1.default(_this.subscribers, function (subscriber) { return subscriber.connectionId !== destroyedConnectionId; });\n //this.subscribers = [];\n // eslint-disable-next-line no-alert\n console.log('media service - removed subscriber, subscribers array: ' + _this.subscribers.toString());\n };\n _this.connectionCreatedHandler = function (event) {\n console.log('connectionCreatedHandler', event);\n var connection = event.connection;\n if (!_this.ownConnectionId || !connection) {\n return;\n }\n //++this.participantCount;\n //this.emit(MULTI_PARTY_EVENTS.participantsNumberChanged, this.participantCount);\n var clientRole = _this.getClientRole(connection);\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.connectionCreated, {\n clientRole: clientRole, event: event,\n participantId: _this.getParticipantIdForStream(connection),\n isOwnConnection: _this.ownConnectionId === connection.connectionId\n });\n };\n _this.connectionDestroyedHandler = function (event) {\n var connection = event.connection;\n var clientRole = _this.getClientRole(connection);\n console.log('connectionDestroyedHandler', event);\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.connectionDestroyed, { clientRole: clientRole, event: event, participantId: _this.getParticipantIdForStream(event === null || event === void 0 ? void 0 : 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 };\n _this.traceErrorCallback = function (error) {\n console.error(JSON.stringify(error));\n };\n _this.sessionDisconnectedHandler = function (event) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n console.log('media service - session disconnected');\n return [4 /*yield*/, this.session.destroy()];\n case 1:\n _a.sent();\n return [4 /*yield*/, this.connect(this.credentials)];\n case 2:\n _a.sent();\n return [2 /*return*/];\n }\n });\n }); };\n _this.sessionReconnectingHandler = function (event) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n console.log('media service - session reconnecting');\n return [2 /*return*/];\n });\n }); };\n _this.sessionReconnectedHandler = function (event) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n console.log('media service - session reconnected');\n return [4 /*yield*/, this.session.destroy()];\n case 1:\n _a.sent();\n return [4 /*yield*/, this.connect(this.credentials)];\n case 2:\n _a.sent();\n return [2 /*return*/];\n }\n });\n }); };\n _this.branding = settings.branding;\n _this.getParticipantId = getParticipantDomId;\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 return ((connection === null || connection === void 0 ? void 0 : connection.data) && JSON.parse(connection.data).clientRole) || MediaConstants_1.SessionClientRole.USER;\n };\n OpentokMultiparty.prototype.getParticipantIdForStream = function (connection) {\n var clientRole = this.getClientRole(connection);\n return this.getParticipantId(clientRole, connection.connectionId);\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","trace","getMediaTracer","OpentokFacingMode","_super","settings","getParticipantDomId","_this","subscribers","participantCount","connect","credentials","session","window","OT","initSession","apiKey","sessionId","err","error","JSON","stringify","emit","MULTI_PARTY_EVENTS","connectFailed","meta","on","connectionCreatedHandler","connectionDestroyedHandler","streamCreatedHandler","streamDestroyedHandler","streamPropertyChangedHandler","sessionDisconnectedHandler","sessionReconnectingHandler","sessionReconnectedHandler","token","_a","_b","off","traceErrorCallback","defaultCamera","CameraTypes","NONE","startWithAudioMuted","info","createPublisher","disconnect","couldStartPublishVideo","mediaCapabilitiesHelper","err_1","MediaCapabilitiesHelper","getInstance","hasCamera","couldStartPublishAudio","err_2","hasMicrophone","settingsForPublisher","currentPublisher","initPublisher","Error","publish","publishAudio","shouldMute","publishVideo","shouldPublishVideo","switchCamera","deviceId","cameraType_1","err_3","supportSwitchCamera","BACK","FRONT","frontCameraDeviceId","backCameraDeviceId","setVideoSource","properties","insertMode","fitMode","width","height","style","buttonDisplayMode","archiveStatusDisplayMode","audioLevelDisplayMode","backgroundImageURI","branding","DEFAULT_AVATAR_URI","facingMode","USER","ENVIRONMENT","getParticipantIdForStream","connection","event","videoElementCreated","streamDestroyed","participantId","stream","mediaDeviceAccessDenied","_c","_d","_e","_f","setDevicesList","streamCreated","hasAudio","hasVideo","isOwnConnection","ownConnectionId","connectionId","subscriber_1","_g","maxParticipantsNumber","alert","target","subscribe","signal","retryAfterReconnect","subscriber","clientRole","getClientRole","videoAudioStatus","destroyedConnectionId","toString","participantsNumberChanged","connectionCreated","connectionDestroyed","getParticipantId","get","enumerable","configurable","data","parse","SessionClientRole","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,KAAK,GAAGL,aAAa,CAACM,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,IAAIX,iBAAiB;AAAG;AAAe,UAAUY,MAAV,EAAkB;AACrDxE,EAAAA,SAAS,CAAC4D,iBAAD,EAAoBY,MAApB,CAAT;;AACA,WAASZ,iBAAT,CAA2Ba,QAA3B,EAAqCC,mBAArC,EAA0D;AACtD,QAAIC,KAAK,GAAGH,MAAM,CAAC7D,IAAP,CAAY,IAAZ,EAAkB8D,QAAlB,KAA+B,IAA3C;;AACAE,IAAAA,KAAK,CAACC,WAAN,GAAoB,EAApB;AACAD,IAAAA,KAAK,CAACE,gBAAN,GAAyB,CAAzB;;AACAF,IAAAA,KAAK,CAACG,OAAN,GAAgB,UAAUC,WAAV,EAAuB;AACnCJ,MAAAA,KAAK,CAACI,WAAN,GAAoBA,WAApB;;AACA,UAAI;AACAJ,QAAAA,KAAK,CAACK,OAAN,GAAgBC,MAAM,KAAK,IAAX,IAAmBA,MAAM,KAAK,KAAK,CAAnC,GAAuC,KAAK,CAA5C,GAAgDA,MAAM,CAACC,EAAP,CAAUC,WAAV,CAAsBJ,WAAW,CAACK,MAAlC,EAA0CL,WAAW,CAACM,SAAtD,CAAhE;AACH,OAFD,CAGA,OAAOC,GAAP,EAAY;AACRjB,QAAAA,KAAK,CAACkB,KAAN,CAAYC,IAAI,CAACC,SAAL,CAAeH,GAAf,CAAZ;;AACAX,QAAAA,KAAK,CAACe,IAAN,CAAW7B,YAAY,CAAC8B,kBAAb,CAAgCC,aAA3C,EAA0D;AAAEC,UAAAA,IAAI,EAAE;AAAEP,YAAAA,GAAG,EAAEE,IAAI,CAACC,SAAL,CAAeH,GAAf;AAAP;AAAR,SAA1D;;AACA;AACH;;AACDX,MAAAA,KAAK,CAACK,OAAN,CAAcc,EAAd,CAAiB,mBAAjB,EAAsCnB,KAAK,CAACoB,wBAA5C;;AACApB,MAAAA,KAAK,CAACK,OAAN,CAAcc,EAAd,CAAiB,qBAAjB,EAAwCnB,KAAK,CAACqB,0BAA9C;;AACArB,MAAAA,KAAK,CAACK,OAAN,CAAcc,EAAd,CAAiB,eAAjB,EAAkCnB,KAAK,CAACsB,oBAAxC;;AACAtB,MAAAA,KAAK,CAACK,OAAN,CAAcc,EAAd,CAAiB,iBAAjB,EAAoCnB,KAAK,CAACuB,sBAA1C;;AACAvB,MAAAA,KAAK,CAACK,OAAN,CAAcc,EAAd,CAAiB,uBAAjB,EAA0CnB,KAAK,CAACwB,4BAAhD;;AACAxB,MAAAA,KAAK,CAACK,OAAN,CAAcc,EAAd,CAAiB,qBAAjB,EAAwCnB,KAAK,CAACyB,0BAA9C;;AACAzB,MAAAA,KAAK,CAACK,OAAN,CAAcc,EAAd,CAAiB,qBAAjB,EAAwCnB,KAAK,CAAC0B,0BAA9C;;AACA1B,MAAAA,KAAK,CAACK,OAAN,CAAcc,EAAd,CAAiB,oBAAjB,EAAuCnB,KAAK,CAAC2B,yBAA7C;;AACA3B,MAAAA,KAAK,CAACK,OAAN,CAAcF,OAAd,CAAsBC,WAAW,CAACwB,KAAlC,EAAyC,UAAUhB,KAAV,EAAiB;AAAE,eAAOxE,SAAS,CAAC4D,KAAD,EAAQ,KAAK,CAAb,EAAgB,KAAK,CAArB,EAAwB,YAAY;AAC5G,cAAI6B,EAAJ;;AACA,iBAAOtE,WAAW,CAAC,IAAD,EAAO,UAAUuE,EAAV,EAAc;AACnC,oBAAQA,EAAE,CAACpE,KAAX;AACI,mBAAK,CAAL;AACI,oBAAIkD,KAAJ,EAAW;AACP,mBAACiB,EAAE,GAAG,KAAKxB,OAAX,MAAwB,IAAxB,IAAgCwB,EAAE,KAAK,KAAK,CAA5C,GAAgD,KAAK,CAArD,GAAyDA,EAAE,CAACE,GAAH,EAAzD;AACA,uBAAK1B,OAAL,GAAe,IAAf;AACA,uBAAK2B,kBAAL,CAAwBpB,KAAxB;AACA,uBAAKG,IAAL,CAAU7B,YAAY,CAAC8B,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,KAAKd,QAAL,CAAcmC,aAAd,KAAgC7C,gBAAgB,CAAC8C,WAAjB,CAA6BC,IAA7D,IAAqE,KAAKrC,QAAL,CAAcsC,mBAAvF,EAA4G;AACxG1C,kBAAAA,KAAK,CAAC2C,IAAN,CAAW,6CAAX;AACA,yBAAO,CAAC;AAAE;AAAH,mBAAP;AACH;;AACD,uBAAO,CAAC;AAAE;AAAH,kBAAc,KAAKC,eAAL,CAAqB,KAAKxC,QAA1B,CAAd,CAAP;;AACJ,mBAAK,CAAL;AACIgC,gBAAAA,EAAE,CAACnE,IAAH;;AACA,uBAAO,CAAC;AAAE;AAAH,iBAAP;AAhBR;AAkBH,WAnBiB,CAAlB;AAoBH,SAtB2E,CAAhB;AAsBvD,OAtBL;AAuBH,KAzCD;;AA0CAqC,IAAAA,KAAK,CAACuC,UAAN,GAAmB,YAAY;AAC3B,UAAI;AACA7C,QAAAA,KAAK,CAAC2C,IAAN,CAAW,4BAAX;;AACA,YAAIrC,KAAK,CAACK,OAAV,EAAmB;AACfL,UAAAA,KAAK,CAACK,OAAN,CAAckC,UAAd;;AACAvC,UAAAA,KAAK,CAACE,gBAAN,GAAyB,CAAzB;AACAR,UAAAA,KAAK,CAAC2C,IAAN,CAAW,sCAAX;AACH;AACJ,OAPD,CAQA,OAAO1B,GAAP,EAAY;AACRjB,QAAAA,KAAK,CAACkB,KAAN,CAAYC,IAAI,CAACC,SAAL,CAAeH,GAAf,CAAZ;AACH;AACJ,KAZD;;AAaAX,IAAAA,KAAK,CAACwC,sBAAN,GAA+B,UAAU1C,QAAV,EAAoB;AAAE,aAAO1D,SAAS,CAAC4D,KAAD,EAAQ,KAAK,CAAb,EAAgB,KAAK,CAArB,EAAwB,YAAY;AACrG,YAAIyC,uBAAJ,EAA6BC,KAA7B;AACA,eAAOnF,WAAW,CAAC,IAAD,EAAO,UAAUsE,EAAV,EAAc;AACnC,kBAAQA,EAAE,CAACnE,KAAX;AACI,iBAAK,CAAL;AACImE,cAAAA,EAAE,CAAChE,IAAH,CAAQc,IAAR,CAAa,CAAC,CAAD,EAAI,CAAJ,GAAS,CAAT,CAAb;;AACA,qBAAO,CAAC;AAAE;AAAH,gBAAcc,yBAAyB,CAACkD,uBAA1B,CAAkDC,WAAlD,EAAd,CAAP;;AACJ,iBAAK,CAAL;AACIH,cAAAA,uBAAuB,GAAGZ,EAAE,CAAClE,IAAH,EAA1B;AACA,qBAAO,CAAC;AAAE;AAAH,gBAAgBmC,QAAQ,CAACmC,aAAT,KAA2B7C,gBAAgB,CAAC8C,WAAjB,CAA6BC,IAAzD,GACZM,uBAAuB,CAACI,SAAxB,EADY,GAEZ,KAFH,CAAP;;AAGJ,iBAAK,CAAL;AACIH,cAAAA,KAAK,GAAGb,EAAE,CAAClE,IAAH,EAAR;AACA+B,cAAAA,KAAK,CAACkB,KAAN,CAAYC,IAAI,CAACC,SAAL,CAAe4B,KAAf,CAAZ;AACA,oBAAMA,KAAN;;AACJ,iBAAK,CAAL;AAAQ,qBAAO,CAAC;AAAE;AAAH,eAAP;AAbZ;AAeH,SAhBiB,CAAlB;AAiBH,OAnBoE,CAAhB;AAmBhD,KAnBL;;AAoBA1C,IAAAA,KAAK,CAAC8C,sBAAN,GAA+B,UAAUhD,QAAV,EAAoB;AAAE,aAAO1D,SAAS,CAAC4D,KAAD,EAAQ,KAAK,CAAb,EAAgB,KAAK,CAArB,EAAwB,YAAY;AACrG,YAAIyC,uBAAJ,EAA6BM,KAA7B;AACA,eAAOxF,WAAW,CAAC,IAAD,EAAO,UAAUsE,EAAV,EAAc;AACnC,kBAAQA,EAAE,CAACnE,KAAX;AACI,iBAAK,CAAL;AACImE,cAAAA,EAAE,CAAChE,IAAH,CAAQc,IAAR,CAAa,CAAC,CAAD,EAAI,CAAJ,GAAS,CAAT,CAAb;;AACA,qBAAO,CAAC;AAAE;AAAH,gBAAcc,yBAAyB,CAACkD,uBAA1B,CAAkDC,WAAlD,EAAd,CAAP;;AACJ,iBAAK,CAAL;AACIH,cAAAA,uBAAuB,GAAGZ,EAAE,CAAClE,IAAH,EAA1B;AACA,qBAAO,CAAC;AAAE;AAAH,gBAAe,CAACmC,QAAQ,CAACsC,mBAAV,IAAiCK,uBAAuB,CAACO,aAAxB,EAAhD,CAAP;;AACJ,iBAAK,CAAL;AACID,cAAAA,KAAK,GAAGlB,EAAE,CAAClE,IAAH,EAAR;AACA+B,cAAAA,KAAK,CAACkB,KAAN,CAAYC,IAAI,CAACC,SAAL,CAAeiC,KAAf,CAAZ;AACA,oBAAMA,KAAN;;AACJ,iBAAK,CAAL;AAAQ,qBAAO,CAAC;AAAE;AAAH,eAAP;AAXZ;AAaH,SAdiB,CAAlB;AAeH,OAjBoE,CAAhB;AAiBhD,KAjBL;;AAkBA/C,IAAAA,KAAK,CAACsC,eAAN,GAAwB,UAAUW,oBAAV,EAAgC;AAAE,aAAO7G,SAAS,CAAC4D,KAAD,EAAQ,KAAK,CAAb,EAAgB,KAAK,CAArB,EAAwB,YAAY;AAC1G,YAAIF,QAAJ,EAAc0C,sBAAd,EAAsCM,sBAAtC;;AACA,YAAIjB,EAAJ;;AACA,eAAOtE,WAAW,CAAC,IAAD,EAAO,UAAUuE,EAAV,EAAc;AACnC,kBAAQA,EAAE,CAACpE,KAAX;AACI,iBAAK,CAAL;AACIoC,cAAAA,QAAQ,GAAGN,WAAW,WAAX,CAAoByD,oBAApB,CAAX;AACA,qBAAO,CAAC;AAAE;AAAH,gBAAc,KAAKT,sBAAL,CAA4B1C,QAA5B,CAAd,CAAP;;AACJ,iBAAK,CAAL;AACI0C,cAAAA,sBAAsB,GAAGV,EAAE,CAACnE,IAAH,EAAzB;AACA,qBAAO,CAAC;AAAE;AAAH,gBAAc,KAAKmF,sBAAL,CAA4BhD,QAA5B,CAAd,CAAP;;AACJ,iBAAK,CAAL;AACIgD,cAAAA,sBAAsB,GAAGhB,EAAE,CAACnE,IAAH,EAAzB;;AACA,kBAAI,CAAC6E,sBAAD,IAA2B,CAACM,sBAAhC,EAAwD;AACpDpD,gBAAAA,KAAK,CAACkB,KAAN,CAAY,6EAAZ;AACA,uBAAO,CAAC;AAAE;AAAH,iBAAP;AACH;;AACD,kBAAI,CAAC4B,sBAAL,EAA6B;AACzB1C,gBAAAA,QAAQ,CAACmC,aAAT,GAAyB7C,gBAAgB,CAAC8C,WAAjB,CAA6BC,IAAtD;AACH;;AACD,kBAAI,CAACW,sBAAL,EAA6B;AACzBhD,gBAAAA,QAAQ,CAACsC,mBAAT,GAA+B,IAA/B;AACH;;AACD,kBAAI,CAAC,KAAKc,gBAAV,EAA4B;AACxB,qBAAKC,aAAL,CAAmBrD,QAAnB;;AACA,oBAAI,CAAC,KAAKoD,gBAAV,EAA4B;AACxB,wBAAM,IAAIE,KAAJ,CAAU,iDAAV,CAAN;AACH;;AACD,qBAAKF,gBAAL,KAA0B,CAACrB,EAAE,GAAG,KAAKxB,OAAX,MAAwB,IAAxB,IAAgCwB,EAAE,KAAK,KAAK,CAA5C,GAAgD,KAAK,CAArD,GAAyDA,EAAE,CAACwB,OAAH,CAAW,KAAKH,gBAAhB,EAAkC,KAAKlB,kBAAvC,CAAnF;AACH;;AACD,qBAAO,CAAC;AAAE;AAAH,eAAP;AA1BR;AA4BH,SA7BiB,CAAlB;AA8BH,OAjCyE,CAAhB;AAiCrD,KAjCL;;AAkCAhC,IAAAA,KAAK,CAACsD,YAAN,GAAqB,UAAUC,UAAV,EAAsB;AAAE,aAAOnH,SAAS,CAAC4D,KAAD,EAAQ,KAAK,CAAb,EAAgB,KAAK,CAArB,EAAwB,YAAY;AAC7F,YAAIF,QAAJ,EAAc+B,EAAd;;AACA,eAAOtE,WAAW,CAAC,IAAD,EAAO,UAAUuE,EAAV,EAAc;AACnC,kBAAQA,EAAE,CAACpE,KAAX;AACI,iBAAK,CAAL;AACIoC,cAAAA,QAAQ,GAAGN,WAAW,WAAX,CAAoB,KAAKM,QAAzB,CAAX;AACAA,cAAAA,QAAQ,CAACsC,mBAAT,GAA+B,CAACmB,UAAhC;AACA1B,cAAAA,EAAE,GAAG0B,UAAL;AACA,kBAAI,CAAC1B,EAAL,EAAS,OAAO,CAAC;AAAE;AAAH,gBAAc,CAAd,CAAP;AACT,qBAAO,CAAC;AAAE;AAAH,gBAAc,KAAKiB,sBAAL,CAA4BhD,QAA5B,CAAd,CAAP;;AACJ,iBAAK,CAAL;AACI+B,cAAAA,EAAE,GAAG,CAAEC,EAAE,CAACnE,IAAH,EAAP;AACAmE,cAAAA,EAAE,CAACpE,KAAH,GAAW,CAAX;;AACJ,iBAAK,CAAL;AACI,kBAAImE,EAAJ,EAAQ;AACJnC,gBAAAA,KAAK,CAACkB,KAAN,CAAY,yBAAZ;AACA,uBAAO,CAAC;AAAE;AAAH,iBAAP;AACH;;AACD,kBAAI,CAAC,CAAC,KAAKsC,gBAAX,EAA6B,OAAO,CAAC;AAAE;AAAH,gBAAc,CAAd,CAAP;AAC7B,qBAAO,CAAC;AAAE;AAAH,gBAAc,KAAKZ,eAAL,CAAqBxC,QAArB,CAAd,CAAP;;AACJ,iBAAK,CAAL;AACIgC,cAAAA,EAAE,CAACnE,IAAH;;AACA,qBAAO,CAAC;AAAE;AAAH,gBAAc,CAAd,CAAP;;AACJ,iBAAK,CAAL;AACI,mBAAKuF,gBAAL,CAAsBI,YAAtB,CAAmCC,UAAnC;AACAzB,cAAAA,EAAE,CAACpE,KAAH,GAAW,CAAX;;AACJ,iBAAK,CAAL;AAAQ,qBAAO,CAAC;AAAE;AAAH,eAAP;AAvBZ;AAyBH,SA1BiB,CAAlB;AA2BH,OA7B4D,CAAhB;AA6BxC,KA7BL;;AA8BAsC,IAAAA,KAAK,CAACwD,YAAN,GAAqB,UAAUC,kBAAV,EAA8B;AAAE,aAAOrH,SAAS,CAAC4D,KAAD,EAAQ,KAAK,CAAb,EAAgB,KAAK,CAArB,EAAwB,YAAY;AACrG,YAAIF,QAAJ,EAAc+B,EAAd;;AACA,eAAOtE,WAAW,CAAC,IAAD,EAAO,UAAUuE,EAAV,EAAc;AACnC,kBAAQA,EAAE,CAACpE,KAAX;AACI,iBAAK,CAAL;AACIoC,cAAAA,QAAQ,GAAGN,WAAW,WAAX,CAAoB,KAAKM,QAAzB,CAAX;AACAA,cAAAA,QAAQ,CAACmC,aAAT,GAAyBwB,kBAAkB,GAAG,KAAK3D,QAAL,CAAcmC,aAAjB,GAAiC7C,gBAAgB,CAAC8C,WAAjB,CAA6BC,IAAzG;AACAN,cAAAA,EAAE,GAAG4B,kBAAL;AACA,kBAAI,CAAC5B,EAAL,EAAS,OAAO,CAAC;AAAE;AAAH,gBAAc,CAAd,CAAP;AACT,qBAAO,CAAC;AAAE;AAAH,gBAAc,KAAKW,sBAAL,CAA4B1C,QAA5B,CAAd,CAAP;;AACJ,iBAAK,CAAL;AACI+B,cAAAA,EAAE,GAAG,CAAEC,EAAE,CAACnE,IAAH,EAAP;AACAmE,cAAAA,EAAE,CAACpE,KAAH,GAAW,CAAX;;AACJ,iBAAK,CAAL;AACI,kBAAImE,EAAJ,EAAQ;AACJnC,gBAAAA,KAAK,CAACkB,KAAN,CAAY,yBAAZ;AACA,uBAAO,CAAC;AAAE;AAAH,iBAAP;AACH;;AACD,kBAAI,CAAC,CAAC,KAAKsC,gBAAX,EAA6B,OAAO,CAAC;AAAE;AAAH,gBAAc,CAAd,CAAP;AAC7B,qBAAO,CAAC;AAAE;AAAH,gBAAc,KAAKZ,eAAL,CAAqBxC,QAArB,CAAd,CAAP;;AACJ,iBAAK,CAAL;AACIgC,cAAAA,EAAE,CAACnE,IAAH;;AACA,qBAAO,CAAC;AAAE;AAAH,gBAAc,CAAd,CAAP;;AACJ,iBAAK,CAAL;AACI,mBAAKuF,gBAAL,CAAsBM,YAAtB,CAAmCC,kBAAnC;AACA3B,cAAAA,EAAE,CAACpE,KAAH,GAAW,CAAX;;AACJ,iBAAK,CAAL;AAAQ,qBAAO,CAAC;AAAE;AAAH,eAAP;AAvBZ;AAyBH,SA1BiB,CAAlB;AA2BH,OA7BoE,CAAhB;AA6BhD,KA7BL;;AA8BAsC,IAAAA,KAAK,CAAC0D,YAAN,GAAqB,YAAY;AAAE,aAAOtH,SAAS,CAAC4D,KAAD,EAAQ,KAAK,CAAb,EAAgB,KAAK,CAArB,EAAwB,YAAY;AACnF,YAAIyC,uBAAJ,EAA6BkB,QAA7B,EAAuCC,YAAvC,EAAqDC,KAArD;;AACA,YAAI7D,KAAK,GAAG,IAAZ;;AACA,YAAI6B,EAAJ;;AACA,eAAOtE,WAAW,CAAC,IAAD,EAAO,UAAUuE,EAAV,EAAc;AACnC,kBAAQA,EAAE,CAACpE,KAAX;AACI,iBAAK,CAAL;AACIoE,cAAAA,EAAE,CAACjE,IAAH,CAAQc,IAAR,CAAa,CAAC,CAAD,EAAI,CAAJ,GAAS,CAAT,CAAb;;AACA,qBAAO,CAAC;AAAE;AAAH,gBAAcc,yBAAyB,CAACkD,uBAA1B,CAAkDC,WAAlD,EAAd,CAAP;;AACJ,iBAAK,CAAL;AACIH,cAAAA,uBAAuB,GAAGX,EAAE,CAACnE,IAAH,EAA1B;;AACA,kBAAI,CAAC8E,uBAAuB,CAACqB,mBAA7B,EAAkD;AAC9C,sBAAM,IAAIV,KAAJ,CAAU,2BAAV,CAAN;AACH;;AACDO,cAAAA,QAAQ,GAAG,EAAX;AACAC,cAAAA,YAAY,GAAGxE,gBAAgB,CAAC8C,WAAjB,CAA6BC,IAA5C;;AACA,sBAAQ,KAAKrC,QAAL,CAAcmC,aAAtB;AACI,qBAAK7C,gBAAgB,CAAC8C,WAAjB,CAA6B6B,IAAlC;AACIH,kBAAAA,YAAY,GAAGxE,gBAAgB,CAAC8C,WAAjB,CAA6B8B,KAA5C;AACAL,kBAAAA,QAAQ,GAAGlB,uBAAuB,CAACwB,mBAAnC;AACA;;AACJ,qBAAK7E,gBAAgB,CAAC8C,WAAjB,CAA6B8B,KAAlC;AACIJ,kBAAAA,YAAY,GAAGxE,gBAAgB,CAAC8C,WAAjB,CAA6B6B,IAA5C;AACAJ,kBAAAA,QAAQ,GAAGlB,uBAAuB,CAACyB,kBAAnC;AACA;;AACJ;AACI,wBAAM,IAAId,KAAJ,CAAU,2BAA2B,KAAKtD,QAAL,CAAcmC,aAAnD,CAAN;AAVR;;AAYA,qBAAO,CAAC;AAAE;AAAH,gBAAe,CAACJ,EAAE,GAAG,KAAKqB,gBAAX,MAAiC,IAAjC,IAAyCrB,EAAE,KAAK,KAAK,CAArD,GAAyD,KAAK,CAA9D,GAAkEA,EAAE,CAACsC,cAAH,CAAkBR,QAAlB,EAA4BtG,IAA5B,CAAiC,YAAY;AAC7H2C,gBAAAA,KAAK,CAACF,QAAN,CAAemC,aAAf,GAA+B2B,YAA/B;AACAlE,gBAAAA,KAAK,CAAC2C,IAAN,CAAW,6CAA6CuB,YAAxD;AACH,eAHmF,CAAjF,CAAP;;AAIJ,iBAAK,CAAL;AACIC,cAAAA,KAAK,GAAG/B,EAAE,CAACnE,IAAH,EAAR;AACA+B,cAAAA,KAAK,CAACkB,KAAN,CAAYC,IAAI,CAACC,SAAL,CAAe+C,KAAf,CAAZ;AACA,oBAAMA,KAAN;;AACJ,iBAAK,CAAL;AAAQ,qBAAO,CAAC;AAAE;AAAH,eAAP;AA/BZ;AAiCH,SAlCiB,CAAlB;AAmCH,OAvCkD,CAAhB;AAuC9B,KAvCL;;AAwCA7D,IAAAA,KAAK,CAACmD,aAAN,GAAsB,UAAUrD,QAAV,EAAoB;AACtC,UAAI+B,EAAJ,EAAQC,EAAR;;AACA,UAAIsC,UAAU,GAAG;AACbC,QAAAA,UAAU,EAAE,QADC;AAEbC,QAAAA,OAAO,EAAE,OAFI;AAGbC,QAAAA,KAAK,EAAE,MAHM;AAIbC,QAAAA,MAAM,EAAE,MAJK;AAKbC,QAAAA,KAAK,EAAE;AACHC,UAAAA,iBAAiB,EAAE,KADhB;AAEHC,UAAAA,wBAAwB,EAAE,KAFvB;AAGHC,UAAAA,qBAAqB,EAAE,KAHpB;AAIHC,UAAAA,kBAAkB,EAAE,CAAC,CAAChD,EAAE,GAAG7B,KAAK,CAAC8E,QAAZ,MAA0B,IAA1B,IAAkCjD,EAAE,KAAK,KAAK,CAA9C,GAAkD,KAAK,CAAvD,GAA2DA,EAAE,CAACgD,kBAA/D,KAAsF3F,YAAY,CAAC6F;AAJpH,SALM;AAWbzB,QAAAA,YAAY,EAAE,CAACxD,QAAQ,CAACsC,mBAXX;AAYboB,QAAAA,YAAY,EAAE1D,QAAQ,CAACmC,aAAT,KAA2B7C,gBAAgB,CAAC8C,WAAjB,CAA6BC,IAZzD;AAab6C,QAAAA,UAAU,EAAElF,QAAQ,CAACmC,aAAT,KAA2B7C,gBAAgB,CAAC8C,WAAjB,CAA6B8B,KAAxD,GAAgEpE,iBAAiB,CAACqF,IAAlF,GAAyFrF,iBAAiB,CAACsF;AAb1G,OAAjB;AAeAlF,MAAAA,KAAK,CAACkD,gBAAN,GAAyB5C,MAAM,KAAK,IAAX,IAAmBA,MAAM,KAAK,KAAK,CAAnC,GAAuC,KAAK,CAA5C,GAAgDA,MAAM,CAACC,EAAP,CAAU4C,aAAV,CAAwBnD,KAAK,CAACmF,yBAAN,CAAgC,CAACrD,EAAE,GAAG9B,KAAK,CAACK,OAAZ,MAAyB,IAAzB,IAAiCyB,EAAE,KAAK,KAAK,CAA7C,GAAiD,KAAK,CAAtD,GAA0DA,EAAE,CAACsD,UAA7F,CAAxB,EAAkIhB,UAAlI,EAA8IpE,KAAK,CAACgC,kBAApJ,CAAzE;;AACA,UAAI,CAAChC,KAAK,CAACkD,gBAAX,EAA6B;AACzBxD,QAAAA,KAAK,CAACkB,KAAN,CAAY,0BAAZ;AACH,OAFD,MAGK;AACDZ,QAAAA,KAAK,CAACkD,gBAAN,CAAuB/B,EAAvB,CAA0B,qBAA1B,EAAiD,UAAUkE,KAAV,EAAiB;AAC9D3F,UAAAA,KAAK,CAAC2C,IAAN,CAAW,qBAAX,EAAkCgD,KAAlC;;AACArF,UAAAA,KAAK,CAACe,IAAN,CAAW7B,YAAY,CAAC8B,kBAAb,CAAgCsE,mBAA3C,EAAgED,KAAhE;AACH,SAHD;;AAIArF,QAAAA,KAAK,CAACkD,gBAAN,CAAuB/B,EAAvB,CAA0B,iBAA1B,EAA6C,UAAUkE,KAAV,EAAiB;AAC1D,cAAIxD,EAAJ;;AACAnC,UAAAA,KAAK,CAAC2C,IAAN,CAAW,4BAAX,EAAyCgD,KAAzC;;AACArF,UAAAA,KAAK,CAACe,IAAN,CAAW7B,YAAY,CAAC8B,kBAAb,CAAgCuE,eAA3C,EAA4D;AAAEF,YAAAA,KAAK,EAAEA,KAAT;AAAgBG,YAAAA,aAAa,EAAExF,KAAK,CAACmF,yBAAN,CAAgC,CAACtD,EAAE,GAAGwD,KAAK,KAAK,IAAV,IAAkBA,KAAK,KAAK,KAAK,CAAjC,GAAqC,KAAK,CAA1C,GAA8CA,KAAK,CAACI,MAA1D,MAAsE,IAAtE,IAA8E5D,EAAE,KAAK,KAAK,CAA1F,GAA8F,KAAK,CAAnG,GAAuGA,EAAE,CAACuD,UAA1I;AAA/B,WAA5D;AACH,SAJD;;AAKApF,QAAAA,KAAK,CAACkD,gBAAN,CAAuB/B,EAAvB,CAA0B,cAA1B,EAA0C,UAAUkE,KAAV,EAAiB;AACvD3F,UAAAA,KAAK,CAAC2C,IAAN,CAAW,oCAAX,EAAiDgD,KAAjD;;AACArF,UAAAA,KAAK,CAACe,IAAN,CAAW7B,YAAY,CAAC8B,kBAAb,CAAgC0E,uBAA3C;AACH,SAHD;;AAIA1F,QAAAA,KAAK,CAACkD,gBAAN,CAAuB/B,EAAvB,CAA0B,eAA1B,EAA2C,UAAUkE,KAAV,EAAiB;AAAE,iBAAOjJ,SAAS,CAAC4D,KAAD,EAAQ,KAAK,CAAb,EAAgB,KAAK,CAArB,EAAwB,YAAY;AAC9G,gBAAIwF,aAAJ;;AACA,gBAAI3D,EAAJ,EAAQC,EAAR,EAAY6D,EAAZ,EAAgBC,EAAhB,EAAoBC,EAApB;;AACA,mBAAOtI,WAAW,CAAC,IAAD,EAAO,UAAUuI,EAAV,EAAc;AACnC,sBAAQA,EAAE,CAACpI,KAAX;AACI,qBAAK,CAAL;AAAQ,yBAAO,CAAC;AAAE;AAAH,oBAAc+B,yBAAyB,CAACkD,uBAA1B,CAAkDoD,cAAlD,EAAd,CAAP;;AACR,qBAAK,CAAL;AACID,kBAAAA,EAAE,CAACnI,IAAH;;AACA6H,kBAAAA,aAAa,GAAG,KAAKL,yBAAL,CAA+B,CAACtD,EAAE,GAAGwD,KAAK,KAAK,IAAV,IAAkBA,KAAK,KAAK,KAAK,CAAjC,GAAqC,KAAK,CAA1C,GAA8CA,KAAK,CAACI,MAA1D,MAAsE,IAAtE,IAA8E5D,EAAE,KAAK,KAAK,CAA1F,GAA8F,KAAK,CAAnG,GAAuGA,EAAE,CAACuD,UAAzI,CAAhB;AACA,uBAAKrE,IAAL,CAAU7B,YAAY,CAAC8B,kBAAb,CAAgCgF,aAA1C,EAAyD;AAAEX,oBAAAA,KAAK,EAAEA,KAAT;AAAgBG,oBAAAA,aAAa,EAAEA,aAA/B;AACrDpD,oBAAAA,mBAAmB,EAAE,KAAKtC,QAAL,CAAcsC,mBADkB;AACG6D,oBAAAA,QAAQ,EAAE,CAACnE,EAAE,GAAGuD,KAAK,KAAK,IAAV,IAAkBA,KAAK,KAAK,KAAK,CAAjC,GAAqC,KAAK,CAA1C,GAA8CA,KAAK,CAACI,MAA1D,MAAsE,IAAtE,IAA8E3D,EAAE,KAAK,KAAK,CAA1F,GAA8F,KAAK,CAAnG,GAAuGA,EAAE,CAACmE,QADvH;AAErDC,oBAAAA,QAAQ,EAAE,CAACP,EAAE,GAAGN,KAAK,KAAK,IAAV,IAAkBA,KAAK,KAAK,KAAK,CAAjC,GAAqC,KAAK,CAA1C,GAA8CA,KAAK,CAACI,MAA1D,MAAsE,IAAtE,IAA8EE,EAAE,KAAK,KAAK,CAA1F,GAA8F,KAAK,CAAnG,GAAuGA,EAAE,CAACO,QAF/D;AAGrDC,oBAAAA,eAAe,EAAE,KAAKC,eAAL,MAA0B,CAACP,EAAE,GAAG,CAACD,EAAE,GAAGP,KAAK,KAAK,IAAV,IAAkBA,KAAK,KAAK,KAAK,CAAjC,GAAqC,KAAK,CAA1C,GAA8CA,KAAK,CAACI,MAA1D,MAAsE,IAAtE,IAA8EG,EAAE,KAAK,KAAK,CAA1F,GAA8F,KAAK,CAAnG,GAAuGA,EAAE,CAACR,UAAhH,MAAgI,IAAhI,IAAwIS,EAAE,KAAK,KAAK,CAApJ,GAAwJ,KAAK,CAA7J,GAAiKA,EAAE,CAACQ,YAA9L;AAHoC,mBAAzD;AAKA3G,kBAAAA,KAAK,CAAC2C,IAAN,CAAW,0BAAX,EAAuC;AAAEgD,oBAAAA,KAAK,EAAEA,KAAT;AAAgBY,oBAAAA,QAAQ,EAAE3G,KAAK,WAAL,CAAc,KAAK4D,gBAAnB,EAAqC,iBAArC,CAA1B;AAAmFsC,oBAAAA,aAAa,EAAEA;AAAlG,mBAAvC;AACA,yBAAO,CAAC;AAAE;AAAH,mBAAP;AAXR;AAaH,aAdiB,CAAlB;AAeH,WAlB6E,CAAhB;AAkBzD,SAlBL;AAmBH;AACJ,KAvDD;;AAwDAxF,IAAAA,KAAK,CAACsB,oBAAN,GAA6B,UAAU+D,KAAV,EAAiB;AAAE,aAAOjJ,SAAS,CAAC4D,KAAD,EAAQ,KAAK,CAAb,EAAgB,KAAK,CAArB,EAAwB,YAAY;AAChG,YAAIyF,MAAJ,EAAYL,UAAZ,EAAwBI,aAAxB,EAAuCpB,UAAvC,EAAmDkC,YAAnD;;AACA,YAAItG,KAAK,GAAG,IAAZ;;AACA,YAAI6B,EAAJ,EAAQC,EAAR,EAAY6D,EAAZ,EAAgBC,EAAhB,EAAoBC,EAApB,EAAwBC,EAAxB;;AACA,eAAOvI,WAAW,CAAC,IAAD,EAAO,UAAUgJ,EAAV,EAAc;AACnC,kBAAQA,EAAE,CAAC7I,KAAX;AACI,iBAAK,CAAL;AACIgC,cAAAA,KAAK,CAAC2C,IAAN,CAAW,sBAAX,EAAmCgD,KAAK,CAACI,MAAzC;AACAA,cAAAA,MAAM,GAAGJ,KAAK,CAACI,MAAf;AACAL,cAAAA,UAAU,GAAGK,MAAM,CAACL,UAApB;AACAI,cAAAA,aAAa,GAAG,KAAKL,yBAAL,CAA+BC,UAA/B,CAAhB;AACA,qBAAO,CAAC;AAAE;AAAH,gBAAc3F,yBAAyB,CAACkD,uBAA1B,CAAkDoD,cAAlD,EAAd,CAAP;;AACJ,iBAAK,CAAL;AACIQ,cAAAA,EAAE,CAAC5I,IAAH;;AACA,mBAAKoD,IAAL,CAAU7B,YAAY,CAAC8B,kBAAb,CAAgCgF,aAA1C,EAAyD;AAAEX,gBAAAA,KAAK,EAAEA,KAAT;AAAgBG,gBAAAA,aAAa,EAAEA,aAA/B;AACrDpD,gBAAAA,mBAAmB,EAAE,KAAKtC,QAAL,CAAcsC,mBADkB;AACG+D,gBAAAA,eAAe,EAAE,KAAKC,eAAL,MAA0B,CAACtE,EAAE,GAAG,CAACD,EAAE,GAAGwD,KAAK,KAAK,IAAV,IAAkBA,KAAK,KAAK,KAAK,CAAjC,GAAqC,KAAK,CAA1C,GAA8CA,KAAK,CAACI,MAA1D,MAAsE,IAAtE,IAA8E5D,EAAE,KAAK,KAAK,CAA1F,GAA8F,KAAK,CAAnG,GAAuGA,EAAE,CAACuD,UAAhH,MAAgI,IAAhI,IAAwItD,EAAE,KAAK,KAAK,CAApJ,GAAwJ,KAAK,CAA7J,GAAiKA,EAAE,CAACuE,YAA9L,CADpB;AAErDH,gBAAAA,QAAQ,EAAE,CAACP,EAAE,GAAGN,KAAK,KAAK,IAAV,IAAkBA,KAAK,KAAK,KAAK,CAAjC,GAAqC,KAAK,CAA1C,GAA8CA,KAAK,CAACI,MAA1D,MAAsE,IAAtE,IAA8EE,EAAE,KAAK,KAAK,CAA1F,GAA8F,KAAK,CAAnG,GAAuGA,EAAE,CAACO,QAF/D;AAGrDD,gBAAAA,QAAQ,EAAE,CAACL,EAAE,GAAGP,KAAK,KAAK,IAAV,IAAkBA,KAAK,KAAK,KAAK,CAAjC,GAAqC,KAAK,CAA1C,GAA8CA,KAAK,CAACI,MAA1D,MAAsE,IAAtE,IAA8EG,EAAE,KAAK,KAAK,CAA1F,GAA8F,KAAK,CAAnG,GAAuGA,EAAE,CAACK;AAH/D,eAAzD;;AAIA,kBAAI,CAAC,KAAKG,eAAN,IAAyB,CAACX,MAA1B,IAAoCL,UAAU,CAACiB,YAAX,KAA4B,KAAKD,eAAzE,EAA0F;AACtF,uBAAO,CAAC;AAAE;AAAH,iBAAP;AACH;;AACD,kBAAI,KAAKnG,WAAL,CAAiBvB,MAAjB,IAA2BQ,YAAY,CAACsH,qBAAb,GAAqC,CAApE,EAAuE;AACnE;AACAC,gBAAAA,KAAK,CAAC,mFAAD,CAAL;AACA/G,gBAAAA,KAAK,CAAC2C,IAAN,CAAW,wFAAwFnD,YAAY,CAACsH,qBAAhH;AACH,eAJD,MAKK;AACDpC,gBAAAA,UAAU,GAAG;AACTC,kBAAAA,UAAU,EAAE,QADH;AAETC,kBAAAA,OAAO,EAAE,OAFA;AAGTC,kBAAAA,KAAK,EAAE,MAHE;AAITC,kBAAAA,MAAM,EAAE,MAJC;AAKTC,kBAAAA,KAAK,EAAE;AACHC,oBAAAA,iBAAiB,EAAE,KADhB;AAEHE,oBAAAA,qBAAqB,EAAE,KAFpB;AAGHC,oBAAAA,kBAAkB,EAAE,CAAC,CAACgB,EAAE,GAAG,KAAKf,QAAX,MAAyB,IAAzB,IAAiCe,EAAE,KAAK,KAAK,CAA7C,GAAiD,KAAK,CAAtD,GAA0DA,EAAE,CAAChB,kBAA9D,KAAqF3F,YAAY,CAAC6F;AAHnH;AALE,iBAAb;AAWAuB,gBAAAA,YAAY,GAAGjB,KAAK,CAACqB,MAAN,CAAaC,SAAb,CAAuBtB,KAAK,CAACI,MAA7B,EAAqCD,aAArC,EAAoDpB,UAApD,EAAgE,UAAUzD,GAAV,EAAe;AAC1FX,kBAAAA,KAAK,CAACgC,kBAAN,CAAyBrB,GAAzB;;AACA2F,kBAAAA,YAAY,KAAK,IAAjB,IAAyBA,YAAY,KAAK,KAAK,CAA/C,GAAmD,KAAK,CAAxD,GAA4DA,YAAY,CAACnF,EAAb,CAAgB,qBAAhB,EAAuC,UAAUkE,KAAV,EAAiB;AAChH3F,oBAAAA,KAAK,CAAC2C,IAAN,CAAW,qBAAX,EAAkCgD,KAAlC;AACH,mBAF2D,CAA5D;AAGH,iBALc,CAAf;AAMA,iBAACS,EAAE,GAAG,SAAS,IAAT,IAAiB,SAAS,KAAK,CAA/B,GAAmC,KAAK,CAAxC,GAA4C,KAAKzF,OAAvD,MAAoE,IAApE,IAA4EyF,EAAE,KAAK,KAAK,CAAxF,GAA4F,KAAK,CAAjG,GAAqGA,EAAE,CAACc,MAAH,CAAU;AAAEC,kBAAAA,mBAAmB,EAAE;AAAvB,iBAAV,CAArG;AACA,qBAAK5G,WAAL,CAAiBtB,IAAjB,CAAsB;AAClBmI,kBAAAA,UAAU,EAAER,YADM;AAElBD,kBAAAA,YAAY,EAAEjB,UAAU,CAACiB,YAFP;AAGlBU,kBAAAA,UAAU,EAAE,KAAKC,aAAL,CAAmB5B,UAAnB;AAHM,iBAAtB;AAKH;;AACD,qBAAO,CAAC;AAAE;AAAH,eAAP;AA9CR;AAgDH,SAjDiB,CAAlB;AAkDH,OAtD+D,CAAhB;AAsD3C,KAtDL;;AAuDApF,IAAAA,KAAK,CAACwB,4BAAN,GAAqC,UAAU6D,KAAV,EAAiB;AAClD,UAAIxD,EAAJ;;AACAnC,MAAAA,KAAK,CAAC2C,IAAN,CAAW,8BAAX,EAA2CgD,KAA3C;AACA,UAAII,MAAM,GAAGJ,KAAK,CAACI,MAAnB;;AACAzF,MAAAA,KAAK,CAACe,IAAN,CAAW7B,YAAY,CAAC8B,kBAAb,CAAgCiG,gBAA3C,EAA6D;AACzDf,QAAAA,QAAQ,EAAET,MAAM,KAAK,IAAX,IAAmBA,MAAM,KAAK,KAAK,CAAnC,GAAuC,KAAK,CAA5C,GAAgDA,MAAM,CAACS,QADR;AAEzDD,QAAAA,QAAQ,EAAER,MAAM,KAAK,IAAX,IAAmBA,MAAM,KAAK,KAAK,CAAnC,GAAuC,KAAK,CAA5C,GAAgDA,MAAM,CAACQ,QAFR;AAGzDT,QAAAA,aAAa,EAAExF,KAAK,CAACmF,yBAAN,CAAgCM,MAAM,KAAK,IAAX,IAAmBA,MAAM,KAAK,KAAK,CAAnC,GAAuC,KAAK,CAA5C,GAAgDA,MAAM,CAACL,UAAvF,CAH0C;AAIzDe,QAAAA,eAAe,EAAEnG,KAAK,CAACoG,eAAN,MAA2B,CAACvE,EAAE,GAAG4D,MAAM,KAAK,IAAX,IAAmBA,MAAM,KAAK,KAAK,CAAnC,GAAuC,KAAK,CAA5C,GAAgDA,MAAM,CAACL,UAA7D,MAA6E,IAA7E,IAAqFvD,EAAE,KAAK,KAAK,CAAjG,GAAqG,KAAK,CAA1G,GAA8GA,EAAE,CAACwE,YAA5I,CAJwC;AAKzDZ,QAAAA,MAAM,EAAEA;AALiD,OAA7D;AAOH,KAXD;;AAYAzF,IAAAA,KAAK,CAACuB,sBAAN,GAA+B,UAAU8D,KAAV,EAAiB;AAC5C,UAAIxD,EAAJ,EAAQC,EAAR;;AACA,OAACD,EAAE,GAAG7B,KAAK,KAAK,IAAV,IAAkBA,KAAK,KAAK,KAAK,CAAjC,GAAqC,KAAK,CAA1C,GAA8CA,KAAK,CAACK,OAA1D,MAAuE,IAAvE,IAA+EwB,EAAE,KAAK,KAAK,CAA3F,GAA+F,KAAK,CAApG,GAAwGA,EAAE,CAAC+E,MAAH,CAAU;AAAEC,QAAAA,mBAAmB,EAAE;AAAvB,OAAV,CAAxG;AACAnH,MAAAA,KAAK,CAAC2C,IAAN,CAAW,wBAAX,EAAqCgD,KAArC;AACA,UAAII,MAAM,GAAGJ,KAAK,CAACI,MAAnB;AACA,UAAIyB,qBAAqB,GAAGzB,MAAM,IAAIA,MAAM,CAACL,UAAjB,IAA+BK,MAAM,CAACL,UAAP,CAAkBiB,YAA7E;;AACArG,MAAAA,KAAK,CAACe,IAAN,CAAW7B,YAAY,CAAC8B,kBAAb,CAAgCuE,eAA3C,EAA4D;AAAEF,QAAAA,KAAK,EAAEA,KAAT;AAAgBG,QAAAA,aAAa,EAAExF,KAAK,CAACmF,yBAAN,CAAgC,CAACrD,EAAE,GAAGuD,KAAK,KAAK,IAAV,IAAkBA,KAAK,KAAK,KAAK,CAAjC,GAAqC,KAAK,CAA1C,GAA8CA,KAAK,CAACI,MAA1D,MAAsE,IAAtE,IAA8E3D,EAAE,KAAK,KAAK,CAA1F,GAA8F,KAAK,CAAnG,GAAuGA,EAAE,CAACsD,UAA1I;AAA/B,OAA5D;;AACApF,MAAAA,KAAK,CAACC,WAAN,GAAoBV,QAAQ,WAAR,CAAiBS,KAAK,CAACC,WAAvB,EAAoC,UAAU6G,UAAV,EAAsB;AAAE,eAAOA,UAAU,CAACT,YAAX,KAA4Ba,qBAAnC;AAA2D,OAAvH,CAApB,CAP4C,CAQ5C;;AACAT,MAAAA,KAAK,CAAC,4CAA4CzG,KAAK,CAACC,WAAN,CAAkBkH,QAAlB,EAA7C,CAAL;AACH,KAVD;;AAWAnH,IAAAA,KAAK,CAACoB,wBAAN,GAAiC,UAAUiE,KAAV,EAAiB;AAC9C,UAAIxD,EAAJ;;AACAnC,MAAAA,KAAK,CAAC2C,IAAN,CAAW,0BAAX,EAAuCgD,KAAvC;AACA,UAAID,UAAU,GAAGC,KAAK,CAACD,UAAvB;;AACA,UAAI,CAACpF,KAAK,CAACoG,eAAP,IAA0B,CAAChB,UAA/B,EAA2C;AACvC;AACH;;AACD,QAAEpF,KAAK,CAACE,gBAAR;;AACAF,MAAAA,KAAK,CAACe,IAAN,CAAW7B,YAAY,CAAC8B,kBAAb,CAAgCoG,yBAA3C,EAAsEpH,KAAK,CAACE,gBAA5E;;AACA,UAAI6G,UAAU,GAAG/G,KAAK,CAACgH,aAAN,CAAoB5B,UAApB,CAAjB;;AACA,OAACvD,EAAE,GAAG7B,KAAK,KAAK,IAAV,IAAkBA,KAAK,KAAK,KAAK,CAAjC,GAAqC,KAAK,CAA1C,GAA8CA,KAAK,CAACK,OAA1D,MAAuE,IAAvE,IAA+EwB,EAAE,KAAK,KAAK,CAA3F,GAA+F,KAAK,CAApG,GAAwGA,EAAE,CAAC+E,MAAH,CAAU;AAAEC,QAAAA,mBAAmB,EAAE;AAAvB,OAAV,CAAxG;;AACA7G,MAAAA,KAAK,CAACe,IAAN,CAAW7B,YAAY,CAAC8B,kBAAb,CAAgCqG,iBAA3C,EAA8D;AAC1DN,QAAAA,UAAU,EAAEA,UAD8C;AAClC1B,QAAAA,KAAK,EAAEA,KAD2B;AAE1DG,QAAAA,aAAa,EAAExF,KAAK,CAACmF,yBAAN,CAAgCC,UAAhC,CAF2C;AAG1De,QAAAA,eAAe,EAAEnG,KAAK,CAACoG,eAAN,KAA0BhB,UAAU,CAACiB;AAHI,OAA9D;AAKH,KAhBD;;AAiBArG,IAAAA,KAAK,CAACqB,0BAAN,GAAmC,UAAUgE,KAAV,EAAiB;AAChD,UAAID,UAAU,GAAGC,KAAK,CAACD,UAAvB;;AACA,UAAI2B,UAAU,GAAG/G,KAAK,CAACgH,aAAN,CAAoB5B,UAApB,CAAjB;;AACA1F,MAAAA,KAAK,CAAC2C,IAAN,CAAW,4BAAX,EAAyCgD,KAAzC;;AACArF,MAAAA,KAAK,CAACe,IAAN,CAAW7B,YAAY,CAAC8B,kBAAb,CAAgCsG,mBAA3C,EAAgE;AAAEP,QAAAA,UAAU,EAAEA,UAAd;AAA0B1B,QAAAA,KAAK,EAAEA,KAAjC;AAAwCG,QAAAA,aAAa,EAAExF,KAAK,CAACmF,yBAAN,CAAgCE,KAAK,KAAK,IAAV,IAAkBA,KAAK,KAAK,KAAK,CAAjC,GAAqC,KAAK,CAA1C,GAA8CA,KAAK,CAACD,UAApF;AAAvD,OAAhE;;AACA,UAAI,CAACpF,KAAK,CAACoG,eAAP,IAA0B,CAAChB,UAA3B,IAAyCA,UAAU,CAACiB,YAAX,KAA4BrG,KAAK,CAACoG,eAA/E,EAAgG;AAC5F;AACH;;AACD,QAAEpG,KAAK,CAACE,gBAAR;;AACAF,MAAAA,KAAK,CAACe,IAAN,CAAW7B,YAAY,CAAC8B,kBAAb,CAAgCoG,yBAA3C,EAAsEpH,KAAK,CAACE,gBAA5E;;AACAF,MAAAA,KAAK,CAACK,OAAN,GAAgB,IAAhB;AACH,KAXD;;AAYAL,IAAAA,KAAK,CAACgC,kBAAN,GAA2B,UAAUpB,KAAV,EAAiB;AACxClB,MAAAA,KAAK,CAACkB,KAAN,CAAYC,IAAI,CAACC,SAAL,CAAeF,KAAf,CAAZ;AACH,KAFD;;AAGAZ,IAAAA,KAAK,CAACyB,0BAAN,GAAmC,UAAU4D,KAAV,EAAiB;AAChD,UAAIxD,EAAJ;;AACAnC,MAAAA,KAAK,CAAC2C,IAAN,CAAW,4BAAX,EAAyCgD,KAAzC;AACA,OAACxD,EAAE,GAAG7B,KAAK,KAAK,IAAV,IAAkBA,KAAK,KAAK,KAAK,CAAjC,GAAqC,KAAK,CAA1C,GAA8CA,KAAK,CAACK,OAA1D,MAAuE,IAAvE,IAA+EwB,EAAE,KAAK,KAAK,CAA3F,GAA+F,KAAK,CAApG,GAAwGA,EAAE,CAAC+E,MAAH,CAAU;AAAEC,QAAAA,mBAAmB,EAAE;AAAvB,OAAV,CAAxG;AACH,KAJD;;AAKA7G,IAAAA,KAAK,CAAC0B,0BAAN,GAAmC,UAAU2D,KAAV,EAAiB;AAChD3F,MAAAA,KAAK,CAAC2C,IAAN,CAAW,4BAAX,EAAyCgD,KAAzC;AACH,KAFD;;AAGArF,IAAAA,KAAK,CAAC2B,yBAAN,GAAkC,UAAU0D,KAAV,EAAiB;AAC/C3F,MAAAA,KAAK,CAAC2C,IAAN,CAAW,2BAAX,EAAwCgD,KAAxC;AACH,KAFD;;AAGArF,IAAAA,KAAK,CAAC8E,QAAN,GAAiBhF,QAAQ,CAACgF,QAA1B;AACA9E,IAAAA,KAAK,CAACuH,gBAAN,GAAyBxH,mBAAzB;AACA,WAAOC,KAAP;AACH;;AACDvE,EAAAA,MAAM,CAACsD,cAAP,CAAsBE,iBAAiB,CAACnD,SAAxC,EAAmD,iBAAnD,EAAsE;AAClE0L,IAAAA,GAAG,EAAE,eAAY;AACb,UAAI3F,EAAJ,EAAQC,EAAR;;AACA,aAAO,CAACA,EAAE,GAAG,CAACD,EAAE,GAAG,KAAKxB,OAAX,MAAwB,IAAxB,IAAgCwB,EAAE,KAAK,KAAK,CAA5C,GAAgD,KAAK,CAArD,GAAyDA,EAAE,CAACuD,UAAlE,MAAkF,IAAlF,IAA0FtD,EAAE,KAAK,KAAK,CAAtG,GAA0G,KAAK,CAA/G,GAAmHA,EAAE,CAACuE,YAA7H;AACH,KAJiE;AAKlEoB,IAAAA,UAAU,EAAE,KALsD;AAMlEC,IAAAA,YAAY,EAAE;AANoD,GAAtE;;AAQAzI,EAAAA,iBAAiB,CAACnD,SAAlB,CAA4BkL,aAA5B,GAA4C,UAAU5B,UAAV,EAAsB;AAC9D,WAAQ,CAACA,UAAU,KAAK,IAAf,IAAuBA,UAAU,KAAK,KAAK,CAA3C,GAA+C,KAAK,CAApD,GAAwDA,UAAU,CAACuC,IAApE,KAA6E9G,IAAI,CAAC+G,KAAL,CAAWxC,UAAU,CAACuC,IAAtB,EAA4BZ,UAA1G,IAAyH3H,gBAAgB,CAACyI,iBAAjB,CAAmC5C,IAAnK;AACH,GAFD;;AAGAhG,EAAAA,iBAAiB,CAACnD,SAAlB,CAA4BqJ,yBAA5B,GAAwD,UAAUC,UAAV,EAAsB;AAC1E,QAAI2B,UAAU,GAAG,KAAKC,aAAL,CAAmB5B,UAAnB,CAAjB;AACA,WAAO,KAAKmC,gBAAL,CAAsBR,UAAtB,EAAkC3B,UAAU,CAACiB,YAA7C,CAAP;AACH,GAHD;;AAIA,SAAOpH,iBAAP;AACH,CA9asC,CA8arCC,YAAY,CAAC4I,UA9awB,CAAvC;;AA+aA9I,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 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(settings, getParticipantDomId) {\n var _this = _super.call(this, settings) || this;\n _this.subscribers = [];\n _this.participantCount = 0;\n _this.connect = function (credentials) {\n _this.credentials = credentials;\n try {\n _this.session = window === null || window === void 0 ? void 0 : window.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.on('sessionDisconnected', _this.sessionDisconnectedHandler);\n _this.session.on('sessionReconnecting', _this.sessionReconnectingHandler);\n _this.session.on('sessionReconnected', _this.sessionReconnectedHandler);\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.getInstance()];\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.getInstance()];\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 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 if (!this.currentPublisher) {\n throw new Error('Creating session requires initialized publisher');\n }\n this.currentPublisher && ((_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 (shouldMute) { 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 = !shouldMute;\n _a = shouldMute;\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(shouldMute);\n _b.label = 5;\n case 5: return [2 /*return*/];\n }\n });\n }); };\n _this.publishVideo = function (shouldPublishVideo) { 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 = shouldPublishVideo ? this.settings.defaultCamera : MediaConstants_1.CameraTypes.NONE;\n _a = shouldPublishVideo;\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(shouldPublishVideo);\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 var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 2, , 3]);\n return [4 /*yield*/, MediaCapabilitiesHelper_1.MediaCapabilitiesHelper.getInstance()];\n case 1:\n mediaCapabilitiesHelper = _b.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*/, (_a = this.currentPublisher) === null || _a === void 0 ? void 0 : _a.setVideoSource(deviceId).then(function () {\n _this.settings.defaultCamera = cameraType_1;\n trace.info(\"Success to switch camera to cameraType: \" + cameraType_1);\n })];\n case 2:\n err_3 = _b.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, _b;\n var properties = {\n insertMode: 'append',\n fitMode: 'cover',\n width: '100%',\n height: '100%',\n style: {\n buttonDisplayMode: 'off',\n archiveStatusDisplayMode: 'off',\n audioLevelDisplayMode: 'off',\n backgroundImageURI: ((_a = _this.branding) === null || _a === void 0 ? void 0 : _a.backgroundImageURI) || MultiParty_1.DEFAULT_AVATAR_URI\n },\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 = window === null || window === void 0 ? void 0 : window.OT.initPublisher(_this.getParticipantIdForStream((_b = _this.session) === null || _b === void 0 ? void 0 : _b.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 var _a;\n trace.info('Publisher stream destroyed', event);\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.streamDestroyed, { event: event, participantId: _this.getParticipantIdForStream((_a = event === null || event === void 0 ? void 0 : event.stream) === null || _a === void 0 ? void 0 : _a.connection) });\n });\n _this.currentPublisher.on('accessDenied', function (event) {\n trace.info('Publisher denied media permissions', event);\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.mediaDeviceAccessDenied);\n });\n _this.currentPublisher.on('streamCreated', function (event) { return __awaiter(_this, void 0, void 0, function () {\n var participantId;\n var _a, _b, _c, _d, _e;\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0: return [4 /*yield*/, MediaCapabilitiesHelper_1.MediaCapabilitiesHelper.setDevicesList()];\n case 1:\n _f.sent();\n participantId = this.getParticipantIdForStream((_a = event === null || event === void 0 ? void 0 : event.stream) === null || _a === void 0 ? void 0 : _a.connection);\n this.emit(MultiParty_1.MULTI_PARTY_EVENTS.streamCreated, { event: event, participantId: participantId,\n startWithAudioMuted: this.settings.startWithAudioMuted, hasAudio: (_b = event === null || event === void 0 ? void 0 : event.stream) === null || _b === void 0 ? void 0 : _b.hasAudio,\n hasVideo: (_c = event === null || event === void 0 ? void 0 : event.stream) === null || _c === void 0 ? void 0 : _c.hasVideo,\n isOwnConnection: this.ownConnectionId === ((_e = (_d = event === null || event === void 0 ? void 0 : event.stream) === null || _d === void 0 ? void 0 : _d.connection) === null || _e === void 0 ? void 0 : _e.connectionId),\n });\n trace.info('publisher stream created', { event: event, hasAudio: get_1.default(this.currentPublisher, 'stream.hasAudio'), participantId: participantId });\n return [2 /*return*/];\n }\n });\n }); });\n }\n };\n _this.streamCreatedHandler = function (event) { return __awaiter(_this, void 0, void 0, function () {\n var stream, connection, participantId, properties, subscriber_1;\n var _this = this;\n var _a, _b, _c, _d, _e, _f;\n return __generator(this, function (_g) {\n switch (_g.label) {\n case 0:\n trace.info('streamCreatedHandler', event.stream);\n stream = event.stream;\n connection = stream.connection;\n participantId = this.getParticipantIdForStream(connection);\n return [4 /*yield*/, MediaCapabilitiesHelper_1.MediaCapabilitiesHelper.setDevicesList()];\n case 1:\n _g.sent();\n this.emit(MultiParty_1.MULTI_PARTY_EVENTS.streamCreated, { event: event, participantId: participantId,\n startWithAudioMuted: this.settings.startWithAudioMuted, isOwnConnection: this.ownConnectionId === ((_b = (_a = event === null || event === void 0 ? void 0 : event.stream) === null || _a === void 0 ? void 0 : _a.connection) === null || _b === void 0 ? void 0 : _b.connectionId),\n hasVideo: (_c = event === null || event === void 0 ? void 0 : event.stream) === null || _c === void 0 ? void 0 : _c.hasVideo,\n hasAudio: (_d = event === null || event === void 0 ? void 0 : event.stream) === null || _d === void 0 ? void 0 : _d.hasAudio });\n if (!this.ownConnectionId || !stream || connection.connectionId === this.ownConnectionId) {\n return [2 /*return*/];\n }\n if (this.subscribers.length >= MultiParty_1.maxParticipantsNumber - 1) {\n // eslint-disable-next-line no-alert\n alert('a new subscriber cannot be added, as the number of participants reached its limit');\n trace.info(\"a new subscriber cannot be added, as the number of participants reached its limit: \" + MultiParty_1.maxParticipantsNumber);\n }\n else {\n properties = {\n insertMode: 'append',\n fitMode: 'cover',\n width: '100%',\n height: '100%',\n style: {\n buttonDisplayMode: 'off',\n audioLevelDisplayMode: 'off',\n backgroundImageURI: ((_e = this.branding) === null || _e === void 0 ? void 0 : _e.backgroundImageURI) || MultiParty_1.DEFAULT_AVATAR_URI\n },\n };\n subscriber_1 = event.target.subscribe(event.stream, participantId, 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 (_f = this === null || this === void 0 ? void 0 : this.session) === null || _f === void 0 ? void 0 : _f.signal({ retryAfterReconnect: true });\n this.subscribers.push({\n subscriber: subscriber_1,\n connectionId: connection.connectionId,\n clientRole: this.getClientRole(connection)\n });\n }\n return [2 /*return*/];\n }\n });\n }); };\n _this.streamPropertyChangedHandler = function (event) {\n var _a;\n trace.info('streamPropertyChangedHandler', event);\n var stream = event.stream;\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.videoAudioStatus, {\n hasVideo: stream === null || stream === void 0 ? void 0 : stream.hasVideo,\n hasAudio: stream === null || stream === void 0 ? void 0 : stream.hasAudio,\n participantId: _this.getParticipantIdForStream(stream === null || stream === void 0 ? void 0 : stream.connection),\n isOwnConnection: _this.ownConnectionId === ((_a = stream === null || stream === void 0 ? void 0 : stream.connection) === null || _a === void 0 ? void 0 : _a.connectionId),\n stream: stream\n });\n };\n _this.streamDestroyedHandler = function (event) {\n var _a, _b;\n (_a = _this === null || _this === void 0 ? void 0 : _this.session) === null || _a === void 0 ? void 0 : _a.signal({ retryAfterReconnect: true });\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, { event: event, participantId: _this.getParticipantIdForStream((_b = event === null || event === void 0 ? void 0 : event.stream) === null || _b === void 0 ? void 0 : _b.connection) });\n _this.subscribers = filter_1.default(_this.subscribers, function (subscriber) { return subscriber.connectionId !== destroyedConnectionId; });\n // eslint-disable-next-line no-alert\n alert('removed subscriber, subscribers array: ' + _this.subscribers.toString());\n };\n _this.connectionCreatedHandler = function (event) {\n var _a;\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 (_a = _this === null || _this === void 0 ? void 0 : _this.session) === null || _a === void 0 ? void 0 : _a.signal({ retryAfterReconnect: true });\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.connectionCreated, {\n clientRole: clientRole, event: event,\n participantId: _this.getParticipantIdForStream(connection),\n isOwnConnection: _this.ownConnectionId === connection.connectionId\n });\n };\n _this.connectionDestroyedHandler = function (event) {\n var connection = event.connection;\n var clientRole = _this.getClientRole(connection);\n trace.info('connectionDestroyedHandler', event);\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.connectionDestroyed, { clientRole: clientRole, event: event, participantId: _this.getParticipantIdForStream(event === null || event === void 0 ? void 0 : 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 };\n _this.traceErrorCallback = function (error) {\n trace.error(JSON.stringify(error));\n };\n _this.sessionDisconnectedHandler = function (event) {\n var _a;\n trace.info('sessionDisconnectedHandler', event);\n (_a = _this === null || _this === void 0 ? void 0 : _this.session) === null || _a === void 0 ? void 0 : _a.signal({ retryAfterReconnect: true });\n };\n _this.sessionReconnectingHandler = function (event) {\n trace.info('sessionReconnectingHandler', event);\n };\n _this.sessionReconnectedHandler = function (event) {\n trace.info('sessionReconnectedHandler', event);\n };\n _this.branding = settings.branding;\n _this.getParticipantId = getParticipantDomId;\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 return ((connection === null || connection === void 0 ? void 0 : connection.data) && JSON.parse(connection.data).clientRole) || MediaConstants_1.SessionClientRole.USER;\n };\n OpentokMultiparty.prototype.getParticipantIdForStream = function (connection) {\n var clientRole = this.getClientRole(connection);\n return this.getParticipantId(clientRole, connection.connectionId);\n };\n return OpentokMultiparty;\n}(MultiParty_1.MultiParty));\nexports.OpentokMultiparty = OpentokMultiparty;\n\n//# sourceMappingURL=OpentokMultiparty.js.map\n"]}
|