@techsee/techsee-media-service 999.22.1-sss → 999.22.2-alpha

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.
@@ -4,14 +4,9 @@ export declare class MediaCapabilitiesHelper {
4
4
  private static mediaCapabilitiesHelper;
5
5
  private static devicesList;
6
6
  private environmentService;
7
- private static groupedDevices;
8
7
  static init(): Promise<MediaCapabilitiesHelper>;
9
8
  hasCamera(): boolean;
10
9
  hasMicrophone(): boolean;
11
10
  hasWebRTC(): boolean;
12
11
  hasGetUserMediaSupported(): boolean;
13
- private static setGroupedDevices;
14
- supportSwitchCamera(): boolean;
15
- getBackCameraDeviceId(): string | null | undefined;
16
- getFrontCameraDeviceId(): string | null | undefined;
17
12
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/MultiParty/MediaCapabilitiesHelper.ts"],"names":[],"mappings":"AA6BA,qBAAa,uBAAuB;IAChC,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAsB;IACxD,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAA+B;IAC/D,OAAO,CAAC,MAAM,CAAC,uBAAuB,CAA0B;IAChE,OAAO,CAAC,MAAM,CAAC,WAAW,CAAyD;IAEnF,OAAO,CAAC,kBAAkB,CAA6B;IACvD,OAAO,CAAC,MAAM,CAAC,cAAc,CAA+D;WAExE,IAAI,IAAI,OAAO,CAAC,uBAAuB,CAAC;IA8BrD,SAAS,IAAI,OAAO;IAIpB,aAAa,IAAI,OAAO;IAMxB,SAAS,IAAI,OAAO;IAIpB,wBAAwB,IAAI,OAAO;IAI1C,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAWzB,mBAAmB;IAInB,qBAAqB;IAMrB,sBAAsB;CAKhC","file":"MediaCapabilitiesHelper.d.ts","sourcesContent":["// eslint-disable-next-line @typescript-eslint/no-var-requires\nimport {getMediaTracer} from '../MediaUtils/MediaTracer';\nimport {DETECT_RTC_ADVISED_TIMEOUT, DetectWebRtcService} from './DetectWebRtcService';\nimport {ClientWebRtcInfo} from '../MediaContracts';\nimport filter from 'lodash/filter';\nimport {TsEnvironmentDetect} from '@techsee/techsee-common/lib/helpers/ts-environment-detect';\nimport {CameraTypes} from '../MediaConstants';\nimport last from 'lodash/last';\nimport first from 'lodash/first';\nimport {Nullable} from '@techsee/techsee-common';\n\nconst trace = getMediaTracer('MediaCapabilitiesHelper');\n\nfunction enumerateMediaDevices(): Promise<MediaDeviceInfo[]> {\n return new Promise((resolve, reject) => {\n if (navigator.mediaDevices && navigator.mediaDevices.enumerateDevices) {\n return navigator.mediaDevices.enumerateDevices().then(resolve).catch(reject);\n }\n\n return resolve([]);\n });\n}\n\ntype GroupedDevices = {\n video: Nullable<{ back?: MediaDeviceInfo; front?: MediaDeviceInfo }>;\n audio: Nullable<MediaDeviceInfo>;\n camerasCount: number;\n}\n\nexport class MediaCapabilitiesHelper {\n private static detectWebRtcService: DetectWebRtcService;\n private static webRtcSupportInfo: ClientWebRtcInfo | undefined;\n private static mediaCapabilitiesHelper: MediaCapabilitiesHelper;\n private static devicesList: { video: MediaDeviceInfo[]; audio: MediaDeviceInfo[] };\n\n private environmentService = new TsEnvironmentDetect();\n private static groupedDevices: GroupedDevices = {video: null, audio: null, camerasCount: 0};\n\n public static async init(): Promise<MediaCapabilitiesHelper> {\n try {\n this.detectWebRtcService = await new DetectWebRtcService(DETECT_RTC_ADVISED_TIMEOUT);\n this.webRtcSupportInfo = await this.detectWebRtcService.getWebRtcInfo();\n\n const localDevicesList = this.webRtcSupportInfo.isWebRTCSupported ? await enumerateMediaDevices() : [];\n\n console.log(localDevicesList);\n this.devicesList = {\n video: filter(localDevicesList, (device) => device.kind.toLowerCase() === 'videoinput'),\n audio: filter(localDevicesList, (device) => device.kind.toLowerCase() === 'audioinput')\n };\n\n this.setGroupedDevices();\n\n if (!this.mediaCapabilitiesHelper) {\n this.mediaCapabilitiesHelper = new MediaCapabilitiesHelper();\n }\n\n trace.info('initialize media capabilities helper successfully');\n\n return this.mediaCapabilitiesHelper;\n\n } catch (err) {\n trace.error(JSON.stringify(err));\n\n throw err;\n }\n }\n\n public hasCamera(): boolean {\n return MediaCapabilitiesHelper.devicesList.video.length > 0 && this.hasGetUserMediaSupported();\n }\n\n public hasMicrophone(): boolean {\n return this.environmentService.isIOS()\n ? MediaCapabilitiesHelper.webRtcSupportInfo!.isWebsiteHasMicrophonePermissions && this.hasGetUserMediaSupported()\n : MediaCapabilitiesHelper.devicesList.audio.length > 0 && this.hasGetUserMediaSupported();\n }\n\n public hasWebRTC(): boolean {\n return MediaCapabilitiesHelper.webRtcSupportInfo!.isWebRTCSupported;\n }\n\n public hasGetUserMediaSupported(): boolean {\n return MediaCapabilitiesHelper.webRtcSupportInfo!.isGetUserMediaSupported;\n }\n\n private static setGroupedDevices() {\n trace.info('setGroupedDevices', this.devicesList);\n MediaCapabilitiesHelper.groupedDevices = {\n video: this.devicesList.video\n ? {[CameraTypes.BACK]: last(this.devicesList.video), [CameraTypes.FRONT]: first(this.devicesList.video)}\n : null,\n audio: last(this.devicesList.audio) || null,\n camerasCount: this.devicesList.video.length\n };\n }\n\n public supportSwitchCamera() {\n return MediaCapabilitiesHelper.groupedDevices.camerasCount > 1;\n }\n\n public getBackCameraDeviceId() {\n const videoDevices = MediaCapabilitiesHelper.groupedDevices.video;\n\n return videoDevices && videoDevices[CameraTypes.BACK] && videoDevices[CameraTypes.BACK]?.deviceId;\n }\n\n public getFrontCameraDeviceId() {\n const videoDevices = MediaCapabilitiesHelper.groupedDevices.video;\n\n return videoDevices && videoDevices[CameraTypes.FRONT] && videoDevices[CameraTypes.FRONT]?.deviceId;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/MultiParty/MediaCapabilitiesHelper.ts"],"names":[],"mappings":"AAmBA,qBAAa,uBAAuB;IAChC,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAsB;IACxD,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAA+B;IAC/D,OAAO,CAAC,MAAM,CAAC,uBAAuB,CAA0B;IAChE,OAAO,CAAC,MAAM,CAAC,WAAW,CAAyD;IAEnF,OAAO,CAAC,kBAAkB,CAA6B;WAEnC,IAAI,IAAI,OAAO,CAAC,uBAAuB,CAAC;IA2BrD,SAAS,IAAI,OAAO;IAIpB,aAAa,IAAI,OAAO;IAMxB,SAAS,IAAI,OAAO;IAIpB,wBAAwB,IAAI,OAAO;CAG7C","file":"MediaCapabilitiesHelper.d.ts","sourcesContent":["// eslint-disable-next-line @typescript-eslint/no-var-requires\nimport {getMediaTracer} from '../MediaUtils/MediaTracer';\nimport {DETECT_RTC_ADVISED_TIMEOUT, DetectWebRtcService} from './DetectWebRtcService';\nimport {ClientWebRtcInfo} from '../MediaContracts';\nimport filter from 'lodash/filter';\nimport {TsEnvironmentDetect} from '@techsee/techsee-common/lib/helpers/ts-environment-detect';\n\nconst trace = getMediaTracer('MediaCapabilitiesHelper');\n\nfunction enumerateMediaDevices(): Promise<MediaDeviceInfo[]> {\n return new Promise((resolve, reject) => {\n if (navigator.mediaDevices && navigator.mediaDevices.enumerateDevices) {\n return navigator.mediaDevices.enumerateDevices().then(resolve).catch(reject);\n }\n\n return resolve([]);\n });\n}\n\nexport class MediaCapabilitiesHelper {\n private static detectWebRtcService: DetectWebRtcService;\n private static webRtcSupportInfo: ClientWebRtcInfo | undefined;\n private static mediaCapabilitiesHelper: MediaCapabilitiesHelper;\n private static devicesList: { video: MediaDeviceInfo[]; audio: MediaDeviceInfo[] };\n\n private environmentService = new TsEnvironmentDetect();\n\n public static async init(): Promise<MediaCapabilitiesHelper> {\n try {\n this.detectWebRtcService = await new DetectWebRtcService(DETECT_RTC_ADVISED_TIMEOUT);\n this.webRtcSupportInfo = await this.detectWebRtcService.getWebRtcInfo();\n\n const localDevicesList = this.webRtcSupportInfo.isWebRTCSupported ? await enumerateMediaDevices() : [];\n\n this.devicesList = {\n video: filter(localDevicesList, (device) => device.kind.toLowerCase() === 'videoinput'),\n audio: filter(localDevicesList, (device) => device.kind.toLowerCase() === 'audioinput')\n };\n\n if (!this.mediaCapabilitiesHelper) {\n this.mediaCapabilitiesHelper = new MediaCapabilitiesHelper();\n }\n\n trace.info('initialize media capabilities helper successfully');\n\n return this.mediaCapabilitiesHelper;\n\n } catch (err) {\n trace.error(JSON.stringify(err));\n\n throw err;\n }\n }\n\n public hasCamera(): boolean {\n return MediaCapabilitiesHelper.devicesList.video.length > 0 && this.hasGetUserMediaSupported();\n }\n\n public hasMicrophone(): boolean {\n return this.environmentService.isIOS()\n ? MediaCapabilitiesHelper.webRtcSupportInfo!.isWebsiteHasMicrophonePermissions && this.hasGetUserMediaSupported()\n : MediaCapabilitiesHelper.devicesList.audio.length > 0 && this.hasGetUserMediaSupported();\n }\n\n public hasWebRTC(): boolean {\n return MediaCapabilitiesHelper.webRtcSupportInfo!.isWebRTCSupported;\n }\n\n public hasGetUserMediaSupported(): boolean {\n return MediaCapabilitiesHelper.webRtcSupportInfo!.isGetUserMediaSupported;\n }\n}\n"]}
@@ -162,12 +162,6 @@ var filter_1 = __importDefault(require("lodash/filter"));
162
162
 
163
163
  var ts_environment_detect_1 = require("@techsee/techsee-common/lib/helpers/ts-environment-detect");
164
164
 
165
- var MediaConstants_1 = require("../MediaConstants");
166
-
167
- var last_1 = __importDefault(require("lodash/last"));
168
-
169
- var first_1 = __importDefault(require("lodash/first"));
170
-
171
165
  var trace = MediaTracer_1.getMediaTracer('MediaCapabilitiesHelper');
172
166
 
173
167
  function enumerateMediaDevices() {
@@ -229,7 +223,6 @@ function () {
229
223
 
230
224
  case 5:
231
225
  localDevicesList = _c;
232
- console.log(localDevicesList);
233
226
  this.devicesList = {
234
227
  video: filter_1["default"](localDevicesList, function (device) {
235
228
  return device.kind.toLowerCase() === 'videoinput';
@@ -238,7 +231,6 @@ function () {
238
231
  return device.kind.toLowerCase() === 'audioinput';
239
232
  })
240
233
  };
241
- this.setGroupedDevices();
242
234
 
243
235
  if (!this.mediaCapabilitiesHelper) {
244
236
  this.mediaCapabilitiesHelper = new MediaCapabilitiesHelper();
@@ -279,40 +271,6 @@ function () {
279
271
  return MediaCapabilitiesHelper.webRtcSupportInfo.isGetUserMediaSupported;
280
272
  };
281
273
 
282
- MediaCapabilitiesHelper.setGroupedDevices = function () {
283
- var _a;
284
-
285
- trace.info('setGroupedDevices', this.devicesList);
286
- MediaCapabilitiesHelper.groupedDevices = {
287
- video: this.devicesList.video ? (_a = {}, _a[MediaConstants_1.CameraTypes.BACK] = last_1["default"](this.devicesList.video), _a[MediaConstants_1.CameraTypes.FRONT] = first_1["default"](this.devicesList.video), _a) : null,
288
- audio: last_1["default"](this.devicesList.audio) || null,
289
- camerasCount: this.devicesList.video.length
290
- };
291
- };
292
-
293
- MediaCapabilitiesHelper.prototype.supportSwitchCamera = function () {
294
- return MediaCapabilitiesHelper.groupedDevices.camerasCount > 1;
295
- };
296
-
297
- MediaCapabilitiesHelper.prototype.getBackCameraDeviceId = function () {
298
- var _a;
299
-
300
- var videoDevices = MediaCapabilitiesHelper.groupedDevices.video;
301
- return videoDevices && videoDevices[MediaConstants_1.CameraTypes.BACK] && ((_a = videoDevices[MediaConstants_1.CameraTypes.BACK]) === null || _a === void 0 ? void 0 : _a.deviceId);
302
- };
303
-
304
- MediaCapabilitiesHelper.prototype.getFrontCameraDeviceId = function () {
305
- var _a;
306
-
307
- var videoDevices = MediaCapabilitiesHelper.groupedDevices.video;
308
- return videoDevices && videoDevices[MediaConstants_1.CameraTypes.FRONT] && ((_a = videoDevices[MediaConstants_1.CameraTypes.FRONT]) === null || _a === void 0 ? void 0 : _a.deviceId);
309
- };
310
-
311
- MediaCapabilitiesHelper.groupedDevices = {
312
- video: null,
313
- audio: null,
314
- camerasCount: 0
315
- };
316
274
  return MediaCapabilitiesHelper;
317
275
  }();
318
276
 
@@ -1 +1 @@
1
- {"version":3,"sources":["MultiParty/MediaCapabilitiesHelper.js"],"names":["__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","call","pop","length","push","__importDefault","mod","__esModule","Object","defineProperty","exports","MediaCapabilitiesHelper","MediaTracer_1","require","DetectWebRtcService_1","filter_1","ts_environment_detect_1","MediaConstants_1","last_1","first_1","trace","getMediaTracer","enumerateMediaDevices","navigator","mediaDevices","enumerateDevices","environmentService","TsEnvironmentDetect","init","_a","_b","localDevicesList","_c","err_1","_d","DetectWebRtcService","DETECT_RTC_ADVISED_TIMEOUT","detectWebRtcService","getWebRtcInfo","webRtcSupportInfo","isWebRTCSupported","console","log","devicesList","video","device","kind","toLowerCase","audio","setGroupedDevices","mediaCapabilitiesHelper","info","error","JSON","stringify","prototype","hasCamera","hasGetUserMediaSupported","hasMicrophone","isIOS","isWebsiteHasMicrophonePermissions","hasWebRTC","isGetUserMediaSupported","groupedDevices","CameraTypes","BACK","FRONT","camerasCount","supportSwitchCamera","getBackCameraDeviceId","videoDevices","deviceId","getFrontCameraDeviceId"],"mappings":"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","file":"MediaCapabilitiesHelper.js","sourcesContent":["\"use strict\";\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.MediaCapabilitiesHelper = void 0;\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nvar MediaTracer_1 = require(\"../MediaUtils/MediaTracer\");\nvar DetectWebRtcService_1 = require(\"./DetectWebRtcService\");\nvar filter_1 = __importDefault(require(\"lodash/filter\"));\nvar ts_environment_detect_1 = require(\"@techsee/techsee-common/lib/helpers/ts-environment-detect\");\nvar MediaConstants_1 = require(\"../MediaConstants\");\nvar last_1 = __importDefault(require(\"lodash/last\"));\nvar first_1 = __importDefault(require(\"lodash/first\"));\nvar trace = MediaTracer_1.getMediaTracer('MediaCapabilitiesHelper');\nfunction enumerateMediaDevices() {\n return new Promise(function (resolve, reject) {\n if (navigator.mediaDevices && navigator.mediaDevices.enumerateDevices) {\n return navigator.mediaDevices.enumerateDevices().then(resolve).catch(reject);\n }\n return resolve([]);\n });\n}\nvar MediaCapabilitiesHelper = /** @class */ (function () {\n function MediaCapabilitiesHelper() {\n this.environmentService = new ts_environment_detect_1.TsEnvironmentDetect();\n }\n MediaCapabilitiesHelper.init = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _a, _b, localDevicesList, _c, err_1;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n _d.trys.push([0, 6, , 7]);\n _a = this;\n return [4 /*yield*/, new DetectWebRtcService_1.DetectWebRtcService(DetectWebRtcService_1.DETECT_RTC_ADVISED_TIMEOUT)];\n case 1:\n _a.detectWebRtcService = _d.sent();\n _b = this;\n return [4 /*yield*/, this.detectWebRtcService.getWebRtcInfo()];\n case 2:\n _b.webRtcSupportInfo = _d.sent();\n if (!this.webRtcSupportInfo.isWebRTCSupported) return [3 /*break*/, 4];\n return [4 /*yield*/, enumerateMediaDevices()];\n case 3:\n _c = _d.sent();\n return [3 /*break*/, 5];\n case 4:\n _c = [];\n _d.label = 5;\n case 5:\n localDevicesList = _c;\n console.log(localDevicesList);\n this.devicesList = {\n video: filter_1.default(localDevicesList, function (device) { return device.kind.toLowerCase() === 'videoinput'; }),\n audio: filter_1.default(localDevicesList, function (device) { return device.kind.toLowerCase() === 'audioinput'; })\n };\n this.setGroupedDevices();\n if (!this.mediaCapabilitiesHelper) {\n this.mediaCapabilitiesHelper = new MediaCapabilitiesHelper();\n }\n trace.info('initialize media capabilities helper successfully');\n return [2 /*return*/, this.mediaCapabilitiesHelper];\n case 6:\n err_1 = _d.sent();\n trace.error(JSON.stringify(err_1));\n throw err_1;\n case 7: return [2 /*return*/];\n }\n });\n });\n };\n MediaCapabilitiesHelper.prototype.hasCamera = function () {\n return MediaCapabilitiesHelper.devicesList.video.length > 0 && this.hasGetUserMediaSupported();\n };\n MediaCapabilitiesHelper.prototype.hasMicrophone = function () {\n return this.environmentService.isIOS()\n ? MediaCapabilitiesHelper.webRtcSupportInfo.isWebsiteHasMicrophonePermissions && this.hasGetUserMediaSupported()\n : MediaCapabilitiesHelper.devicesList.audio.length > 0 && this.hasGetUserMediaSupported();\n };\n MediaCapabilitiesHelper.prototype.hasWebRTC = function () {\n return MediaCapabilitiesHelper.webRtcSupportInfo.isWebRTCSupported;\n };\n MediaCapabilitiesHelper.prototype.hasGetUserMediaSupported = function () {\n return MediaCapabilitiesHelper.webRtcSupportInfo.isGetUserMediaSupported;\n };\n MediaCapabilitiesHelper.setGroupedDevices = function () {\n var _a;\n trace.info('setGroupedDevices', this.devicesList);\n MediaCapabilitiesHelper.groupedDevices = {\n video: this.devicesList.video\n ? (_a = {}, _a[MediaConstants_1.CameraTypes.BACK] = last_1.default(this.devicesList.video), _a[MediaConstants_1.CameraTypes.FRONT] = first_1.default(this.devicesList.video), _a) : null,\n audio: last_1.default(this.devicesList.audio) || null,\n camerasCount: this.devicesList.video.length\n };\n };\n MediaCapabilitiesHelper.prototype.supportSwitchCamera = function () {\n return MediaCapabilitiesHelper.groupedDevices.camerasCount > 1;\n };\n MediaCapabilitiesHelper.prototype.getBackCameraDeviceId = function () {\n var _a;\n var videoDevices = MediaCapabilitiesHelper.groupedDevices.video;\n return videoDevices && videoDevices[MediaConstants_1.CameraTypes.BACK] && ((_a = videoDevices[MediaConstants_1.CameraTypes.BACK]) === null || _a === void 0 ? void 0 : _a.deviceId);\n };\n MediaCapabilitiesHelper.prototype.getFrontCameraDeviceId = function () {\n var _a;\n var videoDevices = MediaCapabilitiesHelper.groupedDevices.video;\n return videoDevices && videoDevices[MediaConstants_1.CameraTypes.FRONT] && ((_a = videoDevices[MediaConstants_1.CameraTypes.FRONT]) === null || _a === void 0 ? void 0 : _a.deviceId);\n };\n MediaCapabilitiesHelper.groupedDevices = { video: null, audio: null, camerasCount: 0 };\n return MediaCapabilitiesHelper;\n}());\nexports.MediaCapabilitiesHelper = MediaCapabilitiesHelper;\n\n//# sourceMappingURL=MediaCapabilitiesHelper.js.map\n"]}
1
+ {"version":3,"sources":["MultiParty/MediaCapabilitiesHelper.js"],"names":["__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","call","pop","length","push","__importDefault","mod","__esModule","Object","defineProperty","exports","MediaCapabilitiesHelper","MediaTracer_1","require","DetectWebRtcService_1","filter_1","ts_environment_detect_1","trace","getMediaTracer","enumerateMediaDevices","navigator","mediaDevices","enumerateDevices","environmentService","TsEnvironmentDetect","init","_a","_b","localDevicesList","_c","err_1","_d","DetectWebRtcService","DETECT_RTC_ADVISED_TIMEOUT","detectWebRtcService","getWebRtcInfo","webRtcSupportInfo","isWebRTCSupported","devicesList","video","device","kind","toLowerCase","audio","mediaCapabilitiesHelper","info","error","JSON","stringify","prototype","hasCamera","hasGetUserMediaSupported","hasMicrophone","isIOS","isWebsiteHasMicrophonePermissions","hasWebRTC","isGetUserMediaSupported"],"mappings":"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","file":"MediaCapabilitiesHelper.js","sourcesContent":["\"use strict\";\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.MediaCapabilitiesHelper = void 0;\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nvar MediaTracer_1 = require(\"../MediaUtils/MediaTracer\");\nvar DetectWebRtcService_1 = require(\"./DetectWebRtcService\");\nvar filter_1 = __importDefault(require(\"lodash/filter\"));\nvar ts_environment_detect_1 = require(\"@techsee/techsee-common/lib/helpers/ts-environment-detect\");\nvar trace = MediaTracer_1.getMediaTracer('MediaCapabilitiesHelper');\nfunction enumerateMediaDevices() {\n return new Promise(function (resolve, reject) {\n if (navigator.mediaDevices && navigator.mediaDevices.enumerateDevices) {\n return navigator.mediaDevices.enumerateDevices().then(resolve).catch(reject);\n }\n return resolve([]);\n });\n}\nvar MediaCapabilitiesHelper = /** @class */ (function () {\n function MediaCapabilitiesHelper() {\n this.environmentService = new ts_environment_detect_1.TsEnvironmentDetect();\n }\n MediaCapabilitiesHelper.init = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _a, _b, localDevicesList, _c, err_1;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n _d.trys.push([0, 6, , 7]);\n _a = this;\n return [4 /*yield*/, new DetectWebRtcService_1.DetectWebRtcService(DetectWebRtcService_1.DETECT_RTC_ADVISED_TIMEOUT)];\n case 1:\n _a.detectWebRtcService = _d.sent();\n _b = this;\n return [4 /*yield*/, this.detectWebRtcService.getWebRtcInfo()];\n case 2:\n _b.webRtcSupportInfo = _d.sent();\n if (!this.webRtcSupportInfo.isWebRTCSupported) return [3 /*break*/, 4];\n return [4 /*yield*/, enumerateMediaDevices()];\n case 3:\n _c = _d.sent();\n return [3 /*break*/, 5];\n case 4:\n _c = [];\n _d.label = 5;\n case 5:\n localDevicesList = _c;\n this.devicesList = {\n video: filter_1.default(localDevicesList, function (device) { return device.kind.toLowerCase() === 'videoinput'; }),\n audio: filter_1.default(localDevicesList, function (device) { return device.kind.toLowerCase() === 'audioinput'; })\n };\n if (!this.mediaCapabilitiesHelper) {\n this.mediaCapabilitiesHelper = new MediaCapabilitiesHelper();\n }\n trace.info('initialize media capabilities helper successfully');\n return [2 /*return*/, this.mediaCapabilitiesHelper];\n case 6:\n err_1 = _d.sent();\n trace.error(JSON.stringify(err_1));\n throw err_1;\n case 7: return [2 /*return*/];\n }\n });\n });\n };\n MediaCapabilitiesHelper.prototype.hasCamera = function () {\n return MediaCapabilitiesHelper.devicesList.video.length > 0 && this.hasGetUserMediaSupported();\n };\n MediaCapabilitiesHelper.prototype.hasMicrophone = function () {\n return this.environmentService.isIOS()\n ? MediaCapabilitiesHelper.webRtcSupportInfo.isWebsiteHasMicrophonePermissions && this.hasGetUserMediaSupported()\n : MediaCapabilitiesHelper.devicesList.audio.length > 0 && this.hasGetUserMediaSupported();\n };\n MediaCapabilitiesHelper.prototype.hasWebRTC = function () {\n return MediaCapabilitiesHelper.webRtcSupportInfo.isWebRTCSupported;\n };\n MediaCapabilitiesHelper.prototype.hasGetUserMediaSupported = function () {\n return MediaCapabilitiesHelper.webRtcSupportInfo.isGetUserMediaSupported;\n };\n return MediaCapabilitiesHelper;\n}());\nexports.MediaCapabilitiesHelper = MediaCapabilitiesHelper;\n\n//# sourceMappingURL=MediaCapabilitiesHelper.js.map\n"]}
@@ -1,22 +1,23 @@
1
1
  /// <reference types="node" />
2
2
  import { EventEmitter } from 'events';
3
3
  import { ISessionSettings } from './Contracts';
4
- import { CameraTypes } from '../MediaConstants';
5
- export declare const participateDomId = "participate";
4
+ export declare const participantDomId = "participant";
5
+ export declare const publisherDomId: string;
6
6
  export declare const maxParticipantsNumber = 2;
7
7
  export declare enum MULTI_PARTY_EVENTS {
8
8
  connectFailed = "connectFailed",
9
9
  streamDestroyed = "streamDestroyed",
10
10
  connectionCreated = "connectionCreated",
11
11
  connectionDestroyed = "connectionDestroyed",
12
- streamCreated = "streamCreated"
12
+ streamCreated = "streamCreated",
13
+ videoElementCreated = "videoElementCreated",
14
+ participantsNumberChanged = "participantsNumberChanged"
13
15
  }
14
16
  export interface IMultiParty {
15
17
  session: any;
16
18
  subscribers: Array<any> | undefined;
17
19
  connect(...args: any[]): void;
18
20
  disconnect(): void;
19
- switchCamera(cameraType: CameraTypes): Promise<void>;
20
21
  on(event: string | symbol, listener: (...args: any[]) => void): IMultiParty;
21
22
  }
22
23
  export declare abstract class MultiParty extends EventEmitter implements IMultiParty {
@@ -25,7 +26,6 @@ export declare abstract class MultiParty extends EventEmitter implements IMultiP
25
26
  protected settings: ISessionSettings;
26
27
  abstract connect(...args: any[]): void;
27
28
  abstract disconnect(): void;
28
- abstract switchCamera(cameraType: CameraTypes): Promise<void>;
29
29
  constructor(settings: ISessionSettings);
30
30
  }
31
31
  export declare const couldStartMultiparty: () => Promise<boolean>;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/MultiParty/MultiParty.ts"],"names":[],"mappings":";AAEA,OAAO,EAAC,YAAY,EAAC,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAC,gBAAgB,EAAC,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAC,WAAW,EAAC,MAAM,mBAAmB,CAAC;AAI9C,eAAO,MAAM,gBAAgB,gBAAgB,CAAC;AAC9C,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAEvC,oBAAY,kBAAkB;IAC1B,aAAa,kBAAkB;IAC/B,eAAe,oBAAoB;IACnC,iBAAiB,sBAAsB;IACvC,mBAAmB,wBAAwB;IAC3C,aAAa,kBAAkB;CAClC;AAED,MAAM,WAAW,WAAW;IACxB,OAAO,EAAE,GAAG,CAAC;IACb,WAAW,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IAEpC,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC9B,UAAU,IAAI,IAAI,CAAC;IACnB,YAAY,CAAC,UAAU,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,WAAW,CAAC;CAC/E;AAED,8BAAsB,UAAW,SAAQ,YAAa,YAAW,WAAW;IACxE,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IAC7C,SAAS,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IAErC,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IACtC,QAAQ,CAAC,UAAU,IAAI,IAAI;IAC3B,QAAQ,CAAC,YAAY,CAAC,UAAU,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;gBAEjD,QAAQ,EAAE,gBAAgB;CAIzC;AAED,eAAO,MAAM,oBAAoB,QAAa,QAAQ,OAAO,CAW5D,CAAC","file":"MultiParty.d.ts","sourcesContent":["import {MediaCapabilitiesHelper} from './MediaCapabilitiesHelper';\nimport {getMediaTracer} from '../MediaUtils/MediaTracer';\nimport {EventEmitter} from 'events';\nimport {ISessionSettings} from './Contracts';\nimport {CameraTypes} from '../MediaConstants';\n\nconst trace = getMediaTracer('Multiparty');\n\nexport const participateDomId = 'participate';\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}\n\nexport interface IMultiParty {\n session: any;\n subscribers: Array<any> | undefined;\n\n connect(...args: any[]): void;\n disconnect(): void;\n switchCamera(cameraType: CameraTypes): Promise<void>;\n on(event: string | symbol, listener: (...args: any[]) => void): IMultiParty;\n}\n\nexport abstract class MultiParty extends EventEmitter implements IMultiParty {\n abstract session: any;\n abstract subscribers: Array<any> | undefined;\n protected settings: ISessionSettings;\n\n abstract connect(...args: any[]): void;\n abstract disconnect(): void;\n abstract switchCamera(cameraType: CameraTypes): Promise<void>;\n\n constructor(settings: ISessionSettings) {\n super();\n this.settings = settings;\n }\n}\n\nexport const couldStartMultiparty = async (): Promise<boolean> => {\n try {\n const mediaCapabilitiesHelper = await MediaCapabilitiesHelper.init();\n\n return mediaCapabilitiesHelper.hasWebRTC();\n\n } catch (err) {\n trace.error(JSON.stringify(err));\n\n return false;\n }\n};\n"]}
1
+ {"version":3,"sources":["../src/MultiParty/MultiParty.ts"],"names":[],"mappings":";AAEA,OAAO,EAAC,YAAY,EAAC,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAC,gBAAgB,EAAC,MAAM,aAAa,CAAC;AAI7C,eAAO,MAAM,gBAAgB,gBAAgB,CAAC;AAC9C,eAAO,MAAM,cAAc,QAAyB,CAAC;AACrD,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAEvC,oBAAY,kBAAkB;IAC1B,aAAa,kBAAkB;IAC/B,eAAe,oBAAoB;IACnC,iBAAiB,sBAAsB;IACvC,mBAAmB,wBAAwB;IAC3C,aAAa,kBAAkB;IAC/B,mBAAmB,wBAAwB;IAC3C,yBAAyB,8BAA8B;CAC1D;AAED,MAAM,WAAW,WAAW;IACxB,OAAO,EAAE,GAAG,CAAC;IACb,WAAW,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IAEpC,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC9B,UAAU,IAAI,IAAI,CAAC;IACnB,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,WAAW,CAAC;CAC/E;AAED,8BAAsB,UAAW,SAAQ,YAAa,YAAW,WAAW;IACxE,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IAC7C,SAAS,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IAErC,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IACtC,QAAQ,CAAC,UAAU,IAAI,IAAI;gBAEf,QAAQ,EAAE,gBAAgB;CAIzC;AAED,eAAO,MAAM,oBAAoB,QAAa,QAAQ,OAAO,CAW5D,CAAC","file":"MultiParty.d.ts","sourcesContent":["import {MediaCapabilitiesHelper} from './MediaCapabilitiesHelper';\nimport {getMediaTracer} from '../MediaUtils/MediaTracer';\nimport {EventEmitter} from 'events';\nimport {ISessionSettings} from './Contracts';\n\nconst trace = getMediaTracer('Multiparty');\n\nexport const participantDomId = 'participant';\nexport const publisherDomId = `${participantDomId}1`;\nexport const maxParticipantsNumber = 2;\n\nexport enum MULTI_PARTY_EVENTS {\n connectFailed = 'connectFailed',\n streamDestroyed = 'streamDestroyed',\n connectionCreated = 'connectionCreated',\n connectionDestroyed = 'connectionDestroyed',\n streamCreated = 'streamCreated',\n videoElementCreated = 'videoElementCreated',\n participantsNumberChanged = 'participantsNumberChanged'\n}\n\nexport interface IMultiParty {\n session: any;\n subscribers: Array<any> | undefined;\n\n connect(...args: any[]): void;\n disconnect(): void;\n on(event: string | symbol, listener: (...args: any[]) => void): IMultiParty;\n}\n\nexport abstract class MultiParty extends EventEmitter implements IMultiParty {\n abstract session: any;\n abstract subscribers: Array<any> | undefined;\n protected settings: ISessionSettings;\n\n abstract connect(...args: any[]): void;\n abstract disconnect(): void;\n\n constructor(settings: ISessionSettings) {\n super();\n this.settings = settings;\n }\n}\n\nexport const couldStartMultiparty = async (): Promise<boolean> => {\n try {\n const mediaCapabilitiesHelper = await MediaCapabilitiesHelper.init();\n\n return mediaCapabilitiesHelper.hasWebRTC();\n\n } catch (err) {\n trace.error(JSON.stringify(err));\n\n return false;\n }\n};\n"]}
@@ -172,7 +172,7 @@ var __generator = void 0 && (void 0).__generator || function (thisArg, body) {
172
172
  Object.defineProperty(exports, "__esModule", {
173
173
  value: true
174
174
  });
175
- exports.couldStartMultiparty = exports.MultiParty = exports.MULTI_PARTY_EVENTS = exports.maxParticipantsNumber = exports.participateDomId = void 0;
175
+ exports.couldStartMultiparty = exports.MultiParty = exports.MULTI_PARTY_EVENTS = exports.maxParticipantsNumber = exports.publisherDomId = exports.participantDomId = void 0;
176
176
 
177
177
  var MediaCapabilitiesHelper_1 = require("./MediaCapabilitiesHelper");
178
178
 
@@ -181,7 +181,8 @@ var MediaTracer_1 = require("../MediaUtils/MediaTracer");
181
181
  var events_1 = require("events");
182
182
 
183
183
  var trace = MediaTracer_1.getMediaTracer('Multiparty');
184
- exports.participateDomId = 'participate';
184
+ exports.participantDomId = 'participant';
185
+ exports.publisherDomId = exports.participantDomId + "1";
185
186
  exports.maxParticipantsNumber = 2;
186
187
  var MULTI_PARTY_EVENTS;
187
188
 
@@ -191,6 +192,8 @@ var MULTI_PARTY_EVENTS;
191
192
  MULTI_PARTY_EVENTS["connectionCreated"] = "connectionCreated";
192
193
  MULTI_PARTY_EVENTS["connectionDestroyed"] = "connectionDestroyed";
193
194
  MULTI_PARTY_EVENTS["streamCreated"] = "streamCreated";
195
+ MULTI_PARTY_EVENTS["videoElementCreated"] = "videoElementCreated";
196
+ MULTI_PARTY_EVENTS["participantsNumberChanged"] = "participantsNumberChanged";
194
197
  })(MULTI_PARTY_EVENTS = exports.MULTI_PARTY_EVENTS || (exports.MULTI_PARTY_EVENTS = {}));
195
198
 
196
199
  var MultiParty =
@@ -1 +1 @@
1
- {"version":3,"sources":["MultiParty/MultiParty.js"],"names":["__extends","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__","constructor","create","__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","apply","__generator","body","_","label","sent","t","trys","ops","f","y","g","verb","Symbol","iterator","n","v","op","TypeError","pop","length","push","defineProperty","exports","couldStartMultiparty","MultiParty","MULTI_PARTY_EVENTS","maxParticipantsNumber","participateDomId","MediaCapabilitiesHelper_1","require","MediaTracer_1","events_1","trace","getMediaTracer","_super","settings","_this","EventEmitter","mediaCapabilitiesHelper","err_1","_a","MediaCapabilitiesHelper","init","hasWebRTC","error","JSON","stringify"],"mappings":"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","file":"MultiParty.js","sourcesContent":["\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.couldStartMultiparty = exports.MultiParty = exports.MULTI_PARTY_EVENTS = exports.maxParticipantsNumber = exports.participateDomId = void 0;\nvar MediaCapabilitiesHelper_1 = require(\"./MediaCapabilitiesHelper\");\nvar MediaTracer_1 = require(\"../MediaUtils/MediaTracer\");\nvar events_1 = require(\"events\");\nvar trace = MediaTracer_1.getMediaTracer('Multiparty');\nexports.participateDomId = 'participate';\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 = exports.MULTI_PARTY_EVENTS || (exports.MULTI_PARTY_EVENTS = {}));\nvar MultiParty = /** @class */ (function (_super) {\n __extends(MultiParty, _super);\n function MultiParty(settings) {\n var _this = _super.call(this) || this;\n _this.settings = settings;\n return _this;\n }\n return MultiParty;\n}(events_1.EventEmitter));\nexports.MultiParty = MultiParty;\nvar couldStartMultiparty = function () { return __awaiter(void 0, void 0, void 0, function () {\n var mediaCapabilitiesHelper, err_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, MediaCapabilitiesHelper_1.MediaCapabilitiesHelper.init()];\n case 1:\n mediaCapabilitiesHelper = _a.sent();\n return [2 /*return*/, mediaCapabilitiesHelper.hasWebRTC()];\n case 2:\n err_1 = _a.sent();\n trace.error(JSON.stringify(err_1));\n return [2 /*return*/, false];\n case 3: return [2 /*return*/];\n }\n });\n}); };\nexports.couldStartMultiparty = couldStartMultiparty;\n\n//# sourceMappingURL=MultiParty.js.map\n"]}
1
+ {"version":3,"sources":["MultiParty/MultiParty.js"],"names":["__extends","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__","constructor","create","__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","apply","__generator","body","_","label","sent","t","trys","ops","f","y","g","verb","Symbol","iterator","n","v","op","TypeError","pop","length","push","defineProperty","exports","couldStartMultiparty","MultiParty","MULTI_PARTY_EVENTS","maxParticipantsNumber","publisherDomId","participantDomId","MediaCapabilitiesHelper_1","require","MediaTracer_1","events_1","trace","getMediaTracer","_super","settings","_this","EventEmitter","mediaCapabilitiesHelper","err_1","_a","MediaCapabilitiesHelper","init","hasWebRTC","error","JSON","stringify"],"mappings":"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","file":"MultiParty.js","sourcesContent":["\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.couldStartMultiparty = exports.MultiParty = exports.MULTI_PARTY_EVENTS = exports.maxParticipantsNumber = exports.publisherDomId = exports.participantDomId = void 0;\nvar MediaCapabilitiesHelper_1 = require(\"./MediaCapabilitiesHelper\");\nvar MediaTracer_1 = require(\"../MediaUtils/MediaTracer\");\nvar events_1 = require(\"events\");\nvar trace = MediaTracer_1.getMediaTracer('Multiparty');\nexports.participantDomId = 'participant';\nexports.publisherDomId = exports.participantDomId + \"1\";\nexports.maxParticipantsNumber = 2;\nvar MULTI_PARTY_EVENTS;\n(function (MULTI_PARTY_EVENTS) {\n MULTI_PARTY_EVENTS[\"connectFailed\"] = \"connectFailed\";\n MULTI_PARTY_EVENTS[\"streamDestroyed\"] = \"streamDestroyed\";\n MULTI_PARTY_EVENTS[\"connectionCreated\"] = \"connectionCreated\";\n MULTI_PARTY_EVENTS[\"connectionDestroyed\"] = \"connectionDestroyed\";\n MULTI_PARTY_EVENTS[\"streamCreated\"] = \"streamCreated\";\n MULTI_PARTY_EVENTS[\"videoElementCreated\"] = \"videoElementCreated\";\n MULTI_PARTY_EVENTS[\"participantsNumberChanged\"] = \"participantsNumberChanged\";\n})(MULTI_PARTY_EVENTS = exports.MULTI_PARTY_EVENTS || (exports.MULTI_PARTY_EVENTS = {}));\nvar MultiParty = /** @class */ (function (_super) {\n __extends(MultiParty, _super);\n function MultiParty(settings) {\n var _this = _super.call(this) || this;\n _this.settings = settings;\n return _this;\n }\n return MultiParty;\n}(events_1.EventEmitter));\nexports.MultiParty = MultiParty;\nvar couldStartMultiparty = function () { return __awaiter(void 0, void 0, void 0, function () {\n var mediaCapabilitiesHelper, err_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, MediaCapabilitiesHelper_1.MediaCapabilitiesHelper.init()];\n case 1:\n mediaCapabilitiesHelper = _a.sent();\n return [2 /*return*/, mediaCapabilitiesHelper.hasWebRTC()];\n case 2:\n err_1 = _a.sent();\n trace.error(JSON.stringify(err_1));\n return [2 /*return*/, false];\n case 3: return [2 /*return*/];\n }\n });\n}); };\nexports.couldStartMultiparty = couldStartMultiparty;\n\n//# sourceMappingURL=MultiParty.js.map\n"]}
@@ -1,11 +1,11 @@
1
1
  import { MultiParty } from './MultiParty';
2
- import { CameraTypes } from '../MediaConstants';
3
2
  import { ICredentials, ISessionSettings } from './Contracts';
4
3
  export declare class OpentokMultiparty extends MultiParty {
5
4
  subscribers: Array<any>;
6
5
  session: any;
7
6
  currentPublisher: any;
8
7
  credentials: any;
8
+ participantCount: number;
9
9
  get ownConnectionId(): string | boolean;
10
10
  connect: (credentials: ICredentials) => void;
11
11
  disconnect: () => void;
@@ -14,7 +14,6 @@ export declare class OpentokMultiparty extends MultiParty {
14
14
  createPublisher: (settingsForPublisher: ISessionSettings) => Promise<void>;
15
15
  publishAudio: (value: boolean) => Promise<void>;
16
16
  publishVideo: (value: boolean) => Promise<void>;
17
- switchCamera: (cameraType: CameraTypes) => Promise<void>;
18
17
  initPublisher: (settings: ISessionSettings) => void;
19
18
  streamCreatedHandler: (event: {
20
19
  stream: any;
@@ -22,5 +21,5 @@ export declare class OpentokMultiparty extends MultiParty {
22
21
  streamDestroyedHandler: (event: any) => void;
23
22
  connectionCreatedHandler: (event: any) => void;
24
23
  connectionDestroyedHandler: (event: any) => void;
25
- traceError: (error: any) => void;
24
+ traceErrorCallback: (error: Error) => void;
26
25
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/MultiParty/OpentokMultiparty.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4C,UAAU,EAAmB,MAAM,cAAc,CAAC;AACrG,OAAO,EAAC,WAAW,EAAC,MAAM,mBAAmB,CAAC;AAG9C,OAAO,EAAC,YAAY,EAAE,gBAAgB,EAAC,MAAM,aAAa,CAAC;AAe3D,qBAAa,iBAAkB,SAAQ,UAAU;IAC7C,WAAW,EAAE,KAAK,CAAC,GAAG,CAAC,CAAM;IAC7B,OAAO,EAAE,GAAG,CAAC;IACb,gBAAgB,EAAE,GAAG,CAAC;IACtB,WAAW,EAAE,GAAG,CAAC;IAEjB,IAAI,eAAe,IAAI,MAAM,GAAG,OAAO,CAEtC;IAED,OAAO,gBAAiB,YAAY,KAAG,IAAI,CAmCzC;IAEF,UAAU,QAAO,IAAI,CAYnB;IAEF,sBAAsB,aAAoB,gBAAgB,KAAG,QAAQ,OAAO,GAAG,KAAK,CAAC,CAYnF;IAEF,sBAAsB,aAAoB,gBAAgB,KAAG,QAAQ,OAAO,GAAG,KAAK,CAAC,CASnF;IAEF,eAAe,yBAAgC,gBAAgB,KAAG,QAAQ,IAAI,CAAC,CAwB7E;IAEF,YAAY,UAAiB,OAAO,KAAG,QAAQ,IAAI,CAAC,CAgBlD;IAEF,YAAY,UAAiB,OAAO,KAAG,QAAQ,IAAI,CAAC,CAgBlD;IAEF,YAAY,eAAsB,WAAW,KAAG,QAAQ,IAAI,CAAC,CA4B3D;IAEF,aAAa,aAAc,gBAAgB,UA0B1C;IAED,oBAAoB;gBAAqB,GAAG;UAAK,IAAI,CAmCnD;IAEF,sBAAsB,UAAW,GAAG,KAAG,IAAI,CAOzC;IAEF,wBAAwB,UAAW,GAAG,KAAG,IAAI,CAW3C;IAEF,0BAA0B,UAAW,GAAG,KAAG,IAAI,CAU7C;IAEF,UAAU,UAAW,GAAG,KAAG,IAAI,CAE7B;CACL","file":"OpentokMultiparty.d.ts","sourcesContent":["import {maxParticipantsNumber, MULTI_PARTY_EVENTS, MultiParty, participateDomId} from './MultiParty';\nimport {CameraTypes} from '../MediaConstants';\nimport {getMediaTracer} from '../MediaUtils/MediaTracer';\nimport get from 'lodash/get';\nimport {ICredentials, ISessionSettings} from './Contracts';\nimport filter from 'lodash/filter';\nimport cloneDeep from 'lodash/cloneDeep';\nimport {MediaCapabilitiesHelper} from './MediaCapabilitiesHelper';\n\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst OT = require('@opentok/client');\nconst trace = getMediaTracer('Multiparty');\n\n// The preferred camera position to use for the video source\nenum OpentokFacingMode {\n USER = 'user',\n ENVIRONMENT = 'environment'\n}\n\nexport class OpentokMultiparty extends MultiParty {\n subscribers: Array<any> = [];\n session: any;\n currentPublisher: any;\n credentials: any;\n\n get ownConnectionId(): string | boolean {\n return this.session && this.session.connection && this.session.connection.connectionId;\n }\n\n connect = (credentials: ICredentials): void => {\n this.credentials = credentials;\n\n try {\n this.session = OT.initSession(credentials.apiKey, credentials.sessionId);\n } catch (err) {\n trace.error(JSON.stringify(err));\n this.emit(MULTI_PARTY_EVENTS.connectFailed, {meta: {err: JSON.stringify(err)}});\n\n return;\n }\n\n this.session.on('connectionCreated', this.connectionCreatedHandler);\n this.session.on('connectionDestroyed', this.connectionDestroyedHandler);\n this.session.on('streamCreated', this.streamCreatedHandler);\n this.session.on('streamDestroyed', this.streamDestroyedHandler);\n\n this.session.connect(this.credentials.token, async (error: any) => {\n if (error) {\n this.session.off();\n this.session = null;\n this.traceError(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\n trace.info('Disconnection from session completed');\n }\n } catch (err) {\n trace.error(JSON.stringify(err));\n }\n };\n\n couldStartPublishVideo = async (settings: ISessionSettings): Promise<boolean | Error> => {\n try {\n const mediaCapabilitiesHelper = await MediaCapabilitiesHelper.init();\n\n return (settings.defaultCamera !== CameraTypes.NONE)\n ? mediaCapabilitiesHelper.hasCamera()\n : false;\n\n } catch (err) {\n trace.error(JSON.stringify(err));\n throw err;\n }\n };\n\n couldStartPublishAudio = async (settings: ISessionSettings): Promise<boolean | Error> => {\n try {\n const mediaCapabilitiesHelper = await MediaCapabilitiesHelper.init();\n\n return !settings.startWithAudioMuted && mediaCapabilitiesHelper.hasMicrophone();\n } catch (err) {\n trace.error(JSON.stringify(err));\n throw err;\n }\n };\n\n createPublisher = async (settingsForPublisher: ISessionSettings): Promise<void> => {\n const settings = cloneDeep(settingsForPublisher);\n const couldStartPublishVideo = await this.couldStartPublishVideo(settings);\n const couldStartPublishAudio = await this.couldStartPublishAudio(settings);\n\n if (!couldStartPublishVideo && !couldStartPublishAudio) {\n // FIXME: use emitter\n trace.error('could not create a publisher, due to lack of media capabilities or settings');\n\n return;\n }\n\n if (!couldStartPublishVideo) {\n settings.defaultCamera = CameraTypes.NONE;\n }\n\n if (!couldStartPublishAudio) {\n settings.startWithAudioMuted = true;\n }\n\n if (!this.currentPublisher) {\n this.initPublisher(settings);\n this.session.publish(this.currentPublisher, this.traceError);\n }\n };\n\n publishAudio = async (value: boolean): Promise<void> => {\n const settings = cloneDeep(this.settings);\n\n settings.startWithAudioMuted = !value;\n\n if (value && !await this.couldStartPublishAudio(settings)) {\n trace.error('could not publish audio');\n\n return;\n }\n\n if (!this.currentPublisher) {\n this.createPublisher(settings);\n } else {\n this.currentPublisher.publishAudio(value);\n }\n };\n\n publishVideo = async (value: boolean): Promise<void> => {\n const settings = cloneDeep(this.settings);\n\n settings.defaultCamera = value ? this.settings.defaultCamera : CameraTypes.NONE;\n\n if (value && !await this.couldStartPublishVideo(settings)) {\n trace.error('could not publish video');\n\n return;\n }\n\n if (!this.currentPublisher) {\n this.createPublisher(settings);\n } else {\n this.currentPublisher.publishVideo(value);\n }\n };\n\n switchCamera = async (cameraType: CameraTypes): Promise<void> => {\n try {\n const mediaCapabilitiesHelper = await MediaCapabilitiesHelper.init();\n\n if (!mediaCapabilitiesHelper.supportSwitchCamera()) {\n throw new Error('Not Support switch camera');\n }\n\n let deviceId = '';\n\n switch (cameraType) {\n case CameraTypes.BACK:\n deviceId = mediaCapabilitiesHelper.getBackCameraDeviceId() || '';\n break;\n case CameraTypes.FRONT:\n deviceId = mediaCapabilitiesHelper.getFrontCameraDeviceId() || '';\n break;\n default:\n throw new Error('cameraType not valid');\n }\n\n console.log('deviceId: ' + deviceId);\n\n return this.currentPublisher.setVideoSource(deviceId);\n } catch (err) {\n trace.error(JSON.stringify(err));\n throw err;\n }\n };\n\n initPublisher = (settings: ISessionSettings) => {\n const properties = {\n insertMode: 'append',\n width: '200',\n height: '200',\n publishAudio: !settings.startWithAudioMuted,\n publishVideo: settings.defaultCamera !== CameraTypes.NONE,\n facingMode: settings.defaultCamera === CameraTypes.FRONT ? OpentokFacingMode.USER : OpentokFacingMode.ENVIRONMENT\n };\n\n this.currentPublisher = OT.initPublisher(`${participateDomId}1`, properties, this.traceError);\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 });\n this.currentPublisher.on('streamDestroyed', (event: any) => {\n trace.info('Publisher stream destroyed', event);\n });\n this.currentPublisher.on('streamCreated', (event: any) => {\n this.emit(MULTI_PARTY_EVENTS.streamCreated, event);\n trace.info('publisher stream created', event, get(this.currentPublisher, 'stream.hasAudio'));\n });\n }\n }\n\n streamCreatedHandler = (event: { stream: any }): void => {\n trace.info('streamCreatedHandler', event.stream);\n this.emit(MULTI_PARTY_EVENTS.streamCreated, event);\n\n const {stream} = event;\n const {connection} = stream || {connection: null};\n\n if (!this.ownConnectionId || !stream || connection.connectionId === this.ownConnectionId) {\n return;\n }\n\n if (this.subscribers.length >= maxParticipantsNumber - 1) {\n trace.info(`a new subscriber cannot be added, as the number of participants reached its limit: ${maxParticipantsNumber}`);\n } else {\n //fixme: use width and height passed in settings\n const properties = {\n insertMode: 'append',\n width: '200',\n height: '200'\n };\n\n const subscriber = this.session.subscribe(event.stream, `${participateDomId}${this.subscribers.length}`, properties, (err: any) => {\n this.traceError(err);\n\n subscriber.on('videoElementCreated', (event: any) => {\n trace.info('videoElementCreated', event);\n });\n });\n\n this.subscribers.push({\n subscriber,\n connectionId: connection.connectionId,\n clientRole: connection?.data ? JSON.parse(connection.data).clientRole : 'default' //fixme temp workaround for BE\n });\n }\n };\n\n streamDestroyedHandler = (event: any): void => {\n trace.info('streamDestroyedHandler', event);\n const {stream} = event;\n const destroyedConnectionId = stream && stream.connection && stream.connection.connectionId;\n\n this.emit(MULTI_PARTY_EVENTS.streamDestroyed, {meta: {event: JSON.stringify(event)}});\n this.subscribers = filter(this.subscribers, (subscriber) => subscriber.connectionId !== destroyedConnectionId);\n };\n\n connectionCreatedHandler = (event: any): void => {\n trace.info('connectionCreatedHandler', event);\n const {connection} = event;\n\n if (!this.ownConnectionId || !connection) {\n return;\n }\n\n const clientRole = connection.data ? JSON.parse(connection.data).clientRole : 'default'; //fixme temp workaround for BE\n\n this.emit(MULTI_PARTY_EVENTS.connectionCreated, {meta: {clientRole, event: JSON.stringify(event)}});\n };\n\n connectionDestroyedHandler = (event: any): void => {\n const {connection} = event;\n\n if (!this.ownConnectionId || !connection || connection.connectionId !== this.ownConnectionId) {\n return;\n }\n\n this.session = null;\n trace.info('connectionDestroyedHandler', event);\n this.emit(MULTI_PARTY_EVENTS.connectionDestroyed, {meta: {event: JSON.stringify(event)}});\n };\n\n traceError = (error: any): void => {\n trace.error(error);\n };\n}\n"]}
1
+ {"version":3,"sources":["../src/MultiParty/OpentokMultiparty.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4C,UAAU,EAAmC,MAAM,cAAc,CAAC;AAIrH,OAAO,EAAC,YAAY,EAAE,gBAAgB,EAAC,MAAM,aAAa,CAAC;AAe3D,qBAAa,iBAAkB,SAAQ,UAAU;IAC7C,WAAW,EAAE,KAAK,CAAC,GAAG,CAAC,CAAM;IAC7B,OAAO,EAAE,GAAG,CAAC;IACb,gBAAgB,EAAE,GAAG,CAAC;IACtB,WAAW,EAAE,GAAG,CAAC;IACjB,gBAAgB,SAAK;IAErB,IAAI,eAAe,IAAI,MAAM,GAAG,OAAO,CAEtC;IAED,OAAO,gBAAiB,YAAY,KAAG,IAAI,CAmCzC;IAEF,UAAU,QAAO,IAAI,CAYnB;IAEF,sBAAsB,aAAoB,gBAAgB,KAAG,QAAQ,OAAO,GAAG,KAAK,CAAC,CAYnF;IAEF,sBAAsB,aAAoB,gBAAgB,KAAG,QAAQ,OAAO,GAAG,KAAK,CAAC,CASnF;IAEF,eAAe,yBAAgC,gBAAgB,KAAG,QAAQ,IAAI,CAAC,CAwB7E;IAEF,YAAY,UAAiB,OAAO,KAAG,QAAQ,IAAI,CAAC,CAgBlD;IAEF,YAAY,UAAiB,OAAO,KAAG,QAAQ,IAAI,CAAC,CAgBlD;IAEF,aAAa,aAAc,gBAAgB,KAAI,IAAI,CA4BjD;IAEF,oBAAoB;gBAAqB,GAAG;UAAK,IAAI,CAmCnD;IAEF,sBAAsB,UAAW,GAAG,KAAG,IAAI,CAOzC;IAEF,wBAAwB,UAAW,GAAG,KAAG,IAAI,CAiB3C;IAEF,0BAA0B,UAAW,GAAG,KAAG,IAAI,CAY7C;IAEF,kBAAkB,UAAW,KAAK,KAAG,IAAI,CAEvC;CACL","file":"OpentokMultiparty.d.ts","sourcesContent":["import {maxParticipantsNumber, MULTI_PARTY_EVENTS, MultiParty, participantDomId, publisherDomId} from './MultiParty';\nimport {CameraTypes} from '../MediaConstants';\nimport {getMediaTracer} from '../MediaUtils/MediaTracer';\nimport get from 'lodash/get';\nimport {ICredentials, ISessionSettings} from './Contracts';\nimport filter from 'lodash/filter';\nimport cloneDeep from 'lodash/cloneDeep';\nimport {MediaCapabilitiesHelper} from './MediaCapabilitiesHelper';\n\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst OT = require('@opentok/client');\nconst trace = getMediaTracer('Multiparty');\n\n// The preferred camera position to use for the video source\nenum OpentokFacingMode {\n USER = 'user',\n ENVIRONMENT = 'environment'\n}\n\nexport class OpentokMultiparty extends MultiParty {\n subscribers: Array<any> = [];\n session: any;\n currentPublisher: any;\n credentials: any;\n participantCount = 0;\n\n get ownConnectionId(): string | boolean {\n return this.session && this.session.connection && this.session.connection.connectionId;\n }\n\n connect = (credentials: ICredentials): void => {\n this.credentials = credentials;\n\n try {\n this.session = OT.initSession(credentials.apiKey, credentials.sessionId);\n } catch (err) {\n trace.error(JSON.stringify(err));\n this.emit(MULTI_PARTY_EVENTS.connectFailed, {meta: {err: JSON.stringify(err)}});\n\n return;\n }\n\n this.session.on('connectionCreated', this.connectionCreatedHandler);\n this.session.on('connectionDestroyed', this.connectionDestroyedHandler);\n this.session.on('streamCreated', this.streamCreatedHandler);\n this.session.on('streamDestroyed', this.streamDestroyedHandler);\n\n this.session.connect(this.credentials.token, async (error: any) => {\n if (error) {\n this.session.off();\n this.session = null;\n this.traceErrorCallback(error);\n this.emit(MULTI_PARTY_EVENTS.connectFailed, {meta: {err: JSON.stringify(error)}});\n\n return;\n }\n\n if (this.settings.defaultCamera === CameraTypes.NONE && this.settings.startWithAudioMuted) {\n trace.info('camera is none, no need to create publisher');\n\n return;\n }\n\n await this.createPublisher(this.settings);\n });\n };\n\n disconnect = (): void => {\n try {\n trace.info('Disconnecting from session');\n\n if (this.session) {\n this.session.disconnect();\n\n trace.info('Disconnection from session completed');\n }\n } catch (err) {\n trace.error(JSON.stringify(err));\n }\n };\n\n couldStartPublishVideo = async (settings: ISessionSettings): Promise<boolean | Error> => {\n try {\n const mediaCapabilitiesHelper = await MediaCapabilitiesHelper.init();\n\n return (settings.defaultCamera !== CameraTypes.NONE)\n ? mediaCapabilitiesHelper.hasCamera()\n : false;\n\n } catch (err) {\n trace.error(JSON.stringify(err));\n throw err;\n }\n };\n\n couldStartPublishAudio = async (settings: ISessionSettings): Promise<boolean | Error> => {\n try {\n const mediaCapabilitiesHelper = await MediaCapabilitiesHelper.init();\n\n return !settings.startWithAudioMuted && mediaCapabilitiesHelper.hasMicrophone();\n } catch (err) {\n trace.error(JSON.stringify(err));\n throw err;\n }\n };\n\n createPublisher = async (settingsForPublisher: ISessionSettings): Promise<void> => {\n const settings = cloneDeep(settingsForPublisher);\n const couldStartPublishVideo = await this.couldStartPublishVideo(settings);\n const couldStartPublishAudio = await this.couldStartPublishAudio(settings);\n\n if (!couldStartPublishVideo && !couldStartPublishAudio) {\n // FIXME: use emitter\n trace.error('could not create a publisher, due to lack of media capabilities or settings');\n\n return;\n }\n\n if (!couldStartPublishVideo) {\n settings.defaultCamera = CameraTypes.NONE;\n }\n\n if (!couldStartPublishAudio) {\n settings.startWithAudioMuted = true;\n }\n\n if (!this.currentPublisher) {\n this.initPublisher(settings);\n this.session.publish(this.currentPublisher, this.traceErrorCallback);\n }\n };\n\n publishAudio = async (value: boolean): Promise<void> => {\n const settings = cloneDeep(this.settings);\n\n settings.startWithAudioMuted = !value;\n\n if (value && !await this.couldStartPublishAudio(settings)) {\n trace.error('could not publish audio');\n\n return;\n }\n\n if (!this.currentPublisher) {\n await this.createPublisher(settings);\n } else {\n this.currentPublisher.publishAudio(value);\n }\n };\n\n publishVideo = async (value: boolean): Promise<void> => {\n const settings = cloneDeep(this.settings);\n\n settings.defaultCamera = value ? this.settings.defaultCamera : CameraTypes.NONE;\n\n if (value && !await this.couldStartPublishVideo(settings)) {\n trace.error('could not publish video');\n\n return;\n }\n\n if (!this.currentPublisher) {\n await this.createPublisher(settings);\n } else {\n this.currentPublisher.publishVideo(value);\n }\n };\n\n initPublisher = (settings: ISessionSettings) : void => {\n const properties = {\n insertMode: 'append',\n fitMode: 'contain',\n width: '100%',\n height: '100%',\n publishAudio: !settings.startWithAudioMuted,\n publishVideo: settings.defaultCamera !== CameraTypes.NONE,\n facingMode: settings.defaultCamera === CameraTypes.FRONT ? OpentokFacingMode.USER : OpentokFacingMode.ENVIRONMENT\n };\n\n this.currentPublisher = OT.initPublisher(publisherDomId, properties, this.traceErrorCallback);\n\n if (!this.currentPublisher) {\n trace.error('failed to init publisher');\n } else {\n this.currentPublisher.on('videoElementCreated', (event: any) => {\n trace.info('videoElementCreated', event);\n this.emit(MULTI_PARTY_EVENTS.videoElementCreated, event);\n });\n this.currentPublisher.on('streamDestroyed', (event: any) => {\n trace.info('Publisher stream destroyed', event);\n });\n this.currentPublisher.on('streamCreated', (event: any) => {\n this.emit(MULTI_PARTY_EVENTS.streamCreated, event);\n trace.info('publisher stream created', event, get(this.currentPublisher, 'stream.hasAudio'));\n });\n }\n };\n\n streamCreatedHandler = (event: { stream: any }): void => {\n trace.info('streamCreatedHandler', event.stream);\n this.emit(MULTI_PARTY_EVENTS.streamCreated, event);\n\n const {stream} = event;\n const {connection} = stream || {connection: null};\n\n if (!this.ownConnectionId || !stream || connection.connectionId === this.ownConnectionId) {\n return;\n }\n\n if (this.subscribers.length >= maxParticipantsNumber - 1) {\n trace.info(`a new subscriber cannot be added, as the number of participants reached its limit: ${maxParticipantsNumber}`);\n } else {\n const properties = {\n insertMode: 'append',\n fitMode: 'contain',\n width: '100%',\n height: '100%'\n };\n\n const subscriber = this.session.subscribe(event.stream, `${participantDomId}${this.participantCount}`, properties, (err: any) => {\n this.traceErrorCallback(err);\n\n subscriber.on('videoElementCreated', (event: any) => {\n trace.info('videoElementCreated', event);\n });\n });\n\n this.subscribers.push({\n subscriber,\n connectionId: connection.connectionId,\n clientRole: connection?.data ? JSON.parse(connection.data).clientRole : 'default' //fixme temp workaround for BE\n });\n }\n };\n\n streamDestroyedHandler = (event: any): void => {\n trace.info('streamDestroyedHandler', event);\n const {stream} = event;\n const destroyedConnectionId = stream && stream.connection && stream.connection.connectionId;\n\n this.emit(MULTI_PARTY_EVENTS.streamDestroyed, {meta: {event: JSON.stringify(event)}});\n this.subscribers = filter(this.subscribers, (subscriber) => subscriber.connectionId !== destroyedConnectionId);\n };\n\n connectionCreatedHandler = (event: any): void => {\n trace.info('connectionCreatedHandler', event);\n const {connection} = event;\n\n if (!this.ownConnectionId || !connection) {\n return;\n }\n\n if (this.participantCount < maxParticipantsNumber) {\n ++this.participantCount;\n this.emit(MULTI_PARTY_EVENTS.participantsNumberChanged, this.participantCount);\n const clientRole = connection.data ? JSON.parse(connection.data).clientRole : 'default'; //fixme temp workaround for BE\n\n this.emit(MULTI_PARTY_EVENTS.connectionCreated, {meta: {clientRole, event: JSON.stringify(event)}});\n } else {\n trace.info(`a new connection cannot be added, as the number of participants reached its limit: ${maxParticipantsNumber}`);\n }\n };\n\n connectionDestroyedHandler = (event: any): void => {\n const {connection} = event;\n\n if (!this.ownConnectionId || !connection || connection.connectionId !== this.ownConnectionId) {\n return;\n }\n\n --this.participantCount;\n this.emit(MULTI_PARTY_EVENTS.participantsNumberChanged, this.participantCount);\n this.session = null;\n trace.info('connectionDestroyedHandler', event);\n this.emit(MULTI_PARTY_EVENTS.connectionDestroyed, {meta: {event: JSON.stringify(event)}});\n };\n\n traceErrorCallback = (error: Error): void => {\n trace.error(JSON.stringify(error));\n };\n}\n"]}
@@ -215,6 +215,7 @@ function (_super) {
215
215
  var _this = _super !== null && _super.apply(this, arguments) || this;
216
216
 
217
217
  _this.subscribers = [];
218
+ _this.participantCount = 0;
218
219
 
219
220
  _this.connect = function (credentials) {
220
221
  _this.credentials = credentials;
@@ -249,7 +250,7 @@ function (_super) {
249
250
  if (error) {
250
251
  this.session.off();
251
252
  this.session = null;
252
- this.traceError(error);
253
+ this.traceErrorCallback(error);
253
254
  this.emit(MultiParty_1.MULTI_PARTY_EVENTS.connectFailed, {
254
255
  meta: {
255
256
  err: JSON.stringify(error)
@@ -399,7 +400,7 @@ function (_super) {
399
400
 
400
401
  if (!this.currentPublisher) {
401
402
  this.initPublisher(settings);
402
- this.session.publish(this.currentPublisher, this.traceError);
403
+ this.session.publish(this.currentPublisher, this.traceErrorCallback);
403
404
  }
404
405
 
405
406
  return [2
@@ -439,12 +440,25 @@ function (_super) {
439
440
  ];
440
441
  }
441
442
 
442
- if (!this.currentPublisher) {
443
- this.createPublisher(settings);
444
- } else {
445
- this.currentPublisher.publishAudio(value);
446
- }
443
+ if (!!this.currentPublisher) return [3
444
+ /*break*/
445
+ , 4];
446
+ return [4
447
+ /*yield*/
448
+ , this.createPublisher(settings)];
449
+
450
+ case 3:
451
+ _b.sent();
447
452
 
453
+ return [3
454
+ /*break*/
455
+ , 5];
456
+
457
+ case 4:
458
+ this.currentPublisher.publishAudio(value);
459
+ _b.label = 5;
460
+
461
+ case 5:
448
462
  return [2
449
463
  /*return*/
450
464
  ];
@@ -482,65 +496,25 @@ function (_super) {
482
496
  ];
483
497
  }
484
498
 
485
- if (!this.currentPublisher) {
486
- this.createPublisher(settings);
487
- } else {
488
- this.currentPublisher.publishVideo(value);
489
- }
490
-
491
- return [2
492
- /*return*/
493
- ];
494
- }
495
- });
496
- });
497
- };
498
-
499
- _this.switchCamera = function (cameraType) {
500
- return __awaiter(_this, void 0, void 0, function () {
501
- var mediaCapabilitiesHelper, deviceId, err_3;
502
- return __generator(this, function (_a) {
503
- switch (_a.label) {
504
- case 0:
505
- _a.trys.push([0, 2,, 3]);
506
-
499
+ if (!!this.currentPublisher) return [3
500
+ /*break*/
501
+ , 4];
507
502
  return [4
508
503
  /*yield*/
509
- , MediaCapabilitiesHelper_1.MediaCapabilitiesHelper.init()];
504
+ , this.createPublisher(settings)];
510
505
 
511
- case 1:
512
- mediaCapabilitiesHelper = _a.sent();
513
-
514
- if (!mediaCapabilitiesHelper.supportSwitchCamera()) {
515
- throw new Error('Not Support switch camera');
516
- }
517
-
518
- deviceId = '';
519
-
520
- switch (cameraType) {
521
- case MediaConstants_1.CameraTypes.BACK:
522
- deviceId = mediaCapabilitiesHelper.getBackCameraDeviceId() || '';
523
- break;
524
-
525
- case MediaConstants_1.CameraTypes.FRONT:
526
- deviceId = mediaCapabilitiesHelper.getFrontCameraDeviceId() || '';
527
- break;
528
-
529
- default:
530
- throw new Error('cameraType not valid');
531
- }
506
+ case 3:
507
+ _b.sent();
532
508
 
533
- console.log('deviceId: ' + deviceId);
534
- return [2
535
- /*return*/
536
- , this.currentPublisher.setVideoSource(deviceId)];
509
+ return [3
510
+ /*break*/
511
+ , 5];
537
512
 
538
- case 2:
539
- err_3 = _a.sent();
540
- trace.error(JSON.stringify(err_3));
541
- throw err_3;
513
+ case 4:
514
+ this.currentPublisher.publishVideo(value);
515
+ _b.label = 5;
542
516
 
543
- case 3:
517
+ case 5:
544
518
  return [2
545
519
  /*return*/
546
520
  ];
@@ -552,19 +526,22 @@ function (_super) {
552
526
  _this.initPublisher = function (settings) {
553
527
  var properties = {
554
528
  insertMode: 'append',
555
- width: '200',
556
- height: '200',
529
+ fitMode: 'contain',
530
+ width: '100%',
531
+ height: '100%',
557
532
  publishAudio: !settings.startWithAudioMuted,
558
533
  publishVideo: settings.defaultCamera !== MediaConstants_1.CameraTypes.NONE,
559
534
  facingMode: settings.defaultCamera === MediaConstants_1.CameraTypes.FRONT ? OpentokFacingMode.USER : OpentokFacingMode.ENVIRONMENT
560
535
  };
561
- _this.currentPublisher = OT.initPublisher(MultiParty_1.participateDomId + "1", properties, _this.traceError);
536
+ _this.currentPublisher = OT.initPublisher(MultiParty_1.publisherDomId, properties, _this.traceErrorCallback);
562
537
 
563
538
  if (!_this.currentPublisher) {
564
539
  trace.error('failed to init publisher');
565
540
  } else {
566
541
  _this.currentPublisher.on('videoElementCreated', function (event) {
567
542
  trace.info('videoElementCreated', event);
543
+
544
+ _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.videoElementCreated, event);
568
545
  });
569
546
 
570
547
  _this.currentPublisher.on('streamDestroyed', function (event) {
@@ -596,15 +573,15 @@ function (_super) {
596
573
  if (_this.subscribers.length >= MultiParty_1.maxParticipantsNumber - 1) {
597
574
  trace.info("a new subscriber cannot be added, as the number of participants reached its limit: " + MultiParty_1.maxParticipantsNumber);
598
575
  } else {
599
- //fixme: use width and height passed in settings
600
576
  var properties = {
601
577
  insertMode: 'append',
602
- width: '200',
603
- height: '200'
578
+ fitMode: 'contain',
579
+ width: '100%',
580
+ height: '100%'
604
581
  };
605
582
 
606
- var subscriber_1 = _this.session.subscribe(event.stream, "" + MultiParty_1.participateDomId + _this.subscribers.length, properties, function (err) {
607
- _this.traceError(err);
583
+ var subscriber_1 = _this.session.subscribe(event.stream, "" + MultiParty_1.participantDomId + _this.participantCount, properties, function (err) {
584
+ _this.traceErrorCallback(err);
608
585
 
609
586
  subscriber_1.on('videoElementCreated', function (event) {
610
587
  trace.info('videoElementCreated', event);
@@ -644,14 +621,22 @@ function (_super) {
644
621
  return;
645
622
  }
646
623
 
647
- var clientRole = connection.data ? JSON.parse(connection.data).clientRole : 'default'; //fixme temp workaround for BE
624
+ if (_this.participantCount < MultiParty_1.maxParticipantsNumber) {
625
+ ++_this.participantCount;
648
626
 
649
- _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.connectionCreated, {
650
- meta: {
651
- clientRole: clientRole,
652
- event: JSON.stringify(event)
653
- }
654
- });
627
+ _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.participantsNumberChanged, _this.participantCount);
628
+
629
+ var clientRole = connection.data ? JSON.parse(connection.data).clientRole : 'default'; //fixme temp workaround for BE
630
+
631
+ _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.connectionCreated, {
632
+ meta: {
633
+ clientRole: clientRole,
634
+ event: JSON.stringify(event)
635
+ }
636
+ });
637
+ } else {
638
+ trace.info("a new connection cannot be added, as the number of participants reached its limit: " + MultiParty_1.maxParticipantsNumber);
639
+ }
655
640
  };
656
641
 
657
642
  _this.connectionDestroyedHandler = function (event) {
@@ -661,6 +646,10 @@ function (_super) {
661
646
  return;
662
647
  }
663
648
 
649
+ --_this.participantCount;
650
+
651
+ _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.participantsNumberChanged, _this.participantCount);
652
+
664
653
  _this.session = null;
665
654
  trace.info('connectionDestroyedHandler', event);
666
655
 
@@ -671,8 +660,8 @@ function (_super) {
671
660
  });
672
661
  };
673
662
 
674
- _this.traceError = function (error) {
675
- trace.error(error);
663
+ _this.traceErrorCallback = function (error) {
664
+ trace.error(JSON.stringify(error));
676
665
  };
677
666
 
678
667
  return _this;
@@ -1 +1 @@
1
- {"version":3,"sources":["MultiParty/OpentokMultiparty.js"],"names":["__extends","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__","constructor","create","__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","apply","__generator","body","_","label","sent","t","trys","ops","f","y","g","verb","Symbol","iterator","n","v","op","TypeError","pop","length","push","__importDefault","mod","__esModule","defineProperty","exports","OpentokMultiparty","MultiParty_1","require","MediaConstants_1","MediaTracer_1","get_1","filter_1","cloneDeep_1","MediaCapabilitiesHelper_1","OT","trace","getMediaTracer","OpentokFacingMode","_super","_this","arguments","subscribers","connect","credentials","session","initSession","apiKey","sessionId","err","error","JSON","stringify","emit","MULTI_PARTY_EVENTS","connectFailed","meta","on","connectionCreatedHandler","connectionDestroyedHandler","streamCreatedHandler","streamDestroyedHandler","token","_a","off","traceError","settings","defaultCamera","CameraTypes","NONE","startWithAudioMuted","info","createPublisher","disconnect","couldStartPublishVideo","mediaCapabilitiesHelper","err_1","MediaCapabilitiesHelper","init","hasCamera","couldStartPublishAudio","err_2","hasMicrophone","settingsForPublisher","currentPublisher","initPublisher","publish","publishAudio","_b","publishVideo","switchCamera","cameraType","deviceId","err_3","supportSwitchCamera","Error","BACK","getBackCameraDeviceId","FRONT","getFrontCameraDeviceId","console","log","setVideoSource","properties","insertMode","width","height","facingMode","USER","ENVIRONMENT","participateDomId","event","streamCreated","stream","connection","ownConnectionId","connectionId","maxParticipantsNumber","subscriber_1","subscribe","subscriber","clientRole","data","parse","destroyedConnectionId","streamDestroyed","connectionCreated","connectionDestroyed","get","enumerable","configurable","MultiParty"],"mappings":"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","file":"OpentokMultiparty.js","sourcesContent":["\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OpentokMultiparty = void 0;\nvar MultiParty_1 = require(\"./MultiParty\");\nvar MediaConstants_1 = require(\"../MediaConstants\");\nvar MediaTracer_1 = require(\"../MediaUtils/MediaTracer\");\nvar get_1 = __importDefault(require(\"lodash/get\"));\nvar filter_1 = __importDefault(require(\"lodash/filter\"));\nvar cloneDeep_1 = __importDefault(require(\"lodash/cloneDeep\"));\nvar MediaCapabilitiesHelper_1 = require(\"./MediaCapabilitiesHelper\");\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nvar OT = require('@opentok/client');\nvar trace = MediaTracer_1.getMediaTracer('Multiparty');\n// The preferred camera position to use for the video source\nvar OpentokFacingMode;\n(function (OpentokFacingMode) {\n OpentokFacingMode[\"USER\"] = \"user\";\n OpentokFacingMode[\"ENVIRONMENT\"] = \"environment\";\n})(OpentokFacingMode || (OpentokFacingMode = {}));\nvar OpentokMultiparty = /** @class */ (function (_super) {\n __extends(OpentokMultiparty, _super);\n function OpentokMultiparty() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.subscribers = [];\n _this.connect = function (credentials) {\n _this.credentials = credentials;\n try {\n _this.session = OT.initSession(credentials.apiKey, credentials.sessionId);\n }\n catch (err) {\n trace.error(JSON.stringify(err));\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.connectFailed, { meta: { err: JSON.stringify(err) } });\n return;\n }\n _this.session.on('connectionCreated', _this.connectionCreatedHandler);\n _this.session.on('connectionDestroyed', _this.connectionDestroyedHandler);\n _this.session.on('streamCreated', _this.streamCreatedHandler);\n _this.session.on('streamDestroyed', _this.streamDestroyedHandler);\n _this.session.connect(_this.credentials.token, function (error) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (error) {\n this.session.off();\n this.session = null;\n this.traceError(error);\n this.emit(MultiParty_1.MULTI_PARTY_EVENTS.connectFailed, { meta: { err: JSON.stringify(error) } });\n return [2 /*return*/];\n }\n if (this.settings.defaultCamera === MediaConstants_1.CameraTypes.NONE && this.settings.startWithAudioMuted) {\n trace.info('camera is none, no need to create publisher');\n return [2 /*return*/];\n }\n return [4 /*yield*/, this.createPublisher(this.settings)];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n }); });\n };\n _this.disconnect = function () {\n try {\n trace.info('Disconnecting from session');\n if (_this.session) {\n _this.session.disconnect();\n trace.info('Disconnection from session completed');\n }\n }\n catch (err) {\n trace.error(JSON.stringify(err));\n }\n };\n _this.couldStartPublishVideo = function (settings) { return __awaiter(_this, void 0, void 0, function () {\n var mediaCapabilitiesHelper, err_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, MediaCapabilitiesHelper_1.MediaCapabilitiesHelper.init()];\n case 1:\n mediaCapabilitiesHelper = _a.sent();\n return [2 /*return*/, (settings.defaultCamera !== MediaConstants_1.CameraTypes.NONE)\n ? mediaCapabilitiesHelper.hasCamera()\n : false];\n case 2:\n err_1 = _a.sent();\n trace.error(JSON.stringify(err_1));\n throw err_1;\n case 3: return [2 /*return*/];\n }\n });\n }); };\n _this.couldStartPublishAudio = function (settings) { return __awaiter(_this, void 0, void 0, function () {\n var mediaCapabilitiesHelper, err_2;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, MediaCapabilitiesHelper_1.MediaCapabilitiesHelper.init()];\n case 1:\n mediaCapabilitiesHelper = _a.sent();\n return [2 /*return*/, !settings.startWithAudioMuted && mediaCapabilitiesHelper.hasMicrophone()];\n case 2:\n err_2 = _a.sent();\n trace.error(JSON.stringify(err_2));\n throw err_2;\n case 3: return [2 /*return*/];\n }\n });\n }); };\n _this.createPublisher = function (settingsForPublisher) { return __awaiter(_this, void 0, void 0, function () {\n var settings, couldStartPublishVideo, couldStartPublishAudio;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n settings = cloneDeep_1.default(settingsForPublisher);\n return [4 /*yield*/, this.couldStartPublishVideo(settings)];\n case 1:\n couldStartPublishVideo = _a.sent();\n return [4 /*yield*/, this.couldStartPublishAudio(settings)];\n case 2:\n couldStartPublishAudio = _a.sent();\n if (!couldStartPublishVideo && !couldStartPublishAudio) {\n // FIXME: use emitter\n trace.error('could not create a publisher, due to lack of media capabilities or settings');\n return [2 /*return*/];\n }\n if (!couldStartPublishVideo) {\n settings.defaultCamera = MediaConstants_1.CameraTypes.NONE;\n }\n if (!couldStartPublishAudio) {\n settings.startWithAudioMuted = true;\n }\n if (!this.currentPublisher) {\n this.initPublisher(settings);\n this.session.publish(this.currentPublisher, this.traceError);\n }\n return [2 /*return*/];\n }\n });\n }); };\n _this.publishAudio = function (value) { return __awaiter(_this, void 0, void 0, function () {\n var settings, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n settings = cloneDeep_1.default(this.settings);\n settings.startWithAudioMuted = !value;\n _a = value;\n if (!_a) return [3 /*break*/, 2];\n return [4 /*yield*/, this.couldStartPublishAudio(settings)];\n case 1:\n _a = !(_b.sent());\n _b.label = 2;\n case 2:\n if (_a) {\n trace.error('could not publish audio');\n return [2 /*return*/];\n }\n if (!this.currentPublisher) {\n this.createPublisher(settings);\n }\n else {\n this.currentPublisher.publishAudio(value);\n }\n return [2 /*return*/];\n }\n });\n }); };\n _this.publishVideo = function (value) { return __awaiter(_this, void 0, void 0, function () {\n var settings, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n settings = cloneDeep_1.default(this.settings);\n settings.defaultCamera = value ? this.settings.defaultCamera : MediaConstants_1.CameraTypes.NONE;\n _a = value;\n if (!_a) return [3 /*break*/, 2];\n return [4 /*yield*/, this.couldStartPublishVideo(settings)];\n case 1:\n _a = !(_b.sent());\n _b.label = 2;\n case 2:\n if (_a) {\n trace.error('could not publish video');\n return [2 /*return*/];\n }\n if (!this.currentPublisher) {\n this.createPublisher(settings);\n }\n else {\n this.currentPublisher.publishVideo(value);\n }\n return [2 /*return*/];\n }\n });\n }); };\n _this.switchCamera = function (cameraType) { return __awaiter(_this, void 0, void 0, function () {\n var mediaCapabilitiesHelper, deviceId, err_3;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, MediaCapabilitiesHelper_1.MediaCapabilitiesHelper.init()];\n case 1:\n mediaCapabilitiesHelper = _a.sent();\n if (!mediaCapabilitiesHelper.supportSwitchCamera()) {\n throw new Error('Not Support switch camera');\n }\n deviceId = '';\n switch (cameraType) {\n case MediaConstants_1.CameraTypes.BACK:\n deviceId = mediaCapabilitiesHelper.getBackCameraDeviceId() || '';\n break;\n case MediaConstants_1.CameraTypes.FRONT:\n deviceId = mediaCapabilitiesHelper.getFrontCameraDeviceId() || '';\n break;\n default:\n throw new Error('cameraType not valid');\n }\n console.log('deviceId: ' + deviceId);\n return [2 /*return*/, this.currentPublisher.setVideoSource(deviceId)];\n case 2:\n err_3 = _a.sent();\n trace.error(JSON.stringify(err_3));\n throw err_3;\n case 3: return [2 /*return*/];\n }\n });\n }); };\n _this.initPublisher = function (settings) {\n var properties = {\n insertMode: 'append',\n width: '200',\n height: '200',\n publishAudio: !settings.startWithAudioMuted,\n publishVideo: settings.defaultCamera !== MediaConstants_1.CameraTypes.NONE,\n facingMode: settings.defaultCamera === MediaConstants_1.CameraTypes.FRONT ? OpentokFacingMode.USER : OpentokFacingMode.ENVIRONMENT\n };\n _this.currentPublisher = OT.initPublisher(MultiParty_1.participateDomId + \"1\", properties, _this.traceError);\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 });\n _this.currentPublisher.on('streamDestroyed', function (event) {\n trace.info('Publisher stream destroyed', event);\n });\n _this.currentPublisher.on('streamCreated', function (event) {\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.streamCreated, event);\n trace.info('publisher stream created', event, get_1.default(_this.currentPublisher, 'stream.hasAudio'));\n });\n }\n };\n _this.streamCreatedHandler = function (event) {\n trace.info('streamCreatedHandler', event.stream);\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.streamCreated, event);\n var stream = event.stream;\n var connection = (stream || { connection: null }).connection;\n if (!_this.ownConnectionId || !stream || connection.connectionId === _this.ownConnectionId) {\n return;\n }\n if (_this.subscribers.length >= MultiParty_1.maxParticipantsNumber - 1) {\n trace.info(\"a new subscriber cannot be added, as the number of participants reached its limit: \" + MultiParty_1.maxParticipantsNumber);\n }\n else {\n //fixme: use width and height passed in settings\n var properties = {\n insertMode: 'append',\n width: '200',\n height: '200'\n };\n var subscriber_1 = _this.session.subscribe(event.stream, \"\" + MultiParty_1.participateDomId + _this.subscribers.length, properties, function (err) {\n _this.traceError(err);\n subscriber_1.on('videoElementCreated', function (event) {\n trace.info('videoElementCreated', event);\n });\n });\n _this.subscribers.push({\n subscriber: subscriber_1,\n connectionId: connection.connectionId,\n clientRole: (connection === null || connection === void 0 ? void 0 : connection.data) ? JSON.parse(connection.data).clientRole : 'default' //fixme temp workaround for BE\n });\n }\n };\n _this.streamDestroyedHandler = function (event) {\n trace.info('streamDestroyedHandler', event);\n var stream = event.stream;\n var destroyedConnectionId = stream && stream.connection && stream.connection.connectionId;\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.streamDestroyed, { meta: { event: JSON.stringify(event) } });\n _this.subscribers = filter_1.default(_this.subscribers, function (subscriber) { return subscriber.connectionId !== destroyedConnectionId; });\n };\n _this.connectionCreatedHandler = function (event) {\n trace.info('connectionCreatedHandler', event);\n var connection = event.connection;\n if (!_this.ownConnectionId || !connection) {\n return;\n }\n var clientRole = connection.data ? JSON.parse(connection.data).clientRole : 'default'; //fixme temp workaround for BE\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.connectionCreated, { meta: { clientRole: clientRole, event: JSON.stringify(event) } });\n };\n _this.connectionDestroyedHandler = function (event) {\n var connection = event.connection;\n if (!_this.ownConnectionId || !connection || connection.connectionId !== _this.ownConnectionId) {\n return;\n }\n _this.session = null;\n trace.info('connectionDestroyedHandler', event);\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.connectionDestroyed, { meta: { event: JSON.stringify(event) } });\n };\n _this.traceError = function (error) {\n trace.error(error);\n };\n return _this;\n }\n Object.defineProperty(OpentokMultiparty.prototype, \"ownConnectionId\", {\n get: function () {\n return this.session && this.session.connection && this.session.connection.connectionId;\n },\n enumerable: false,\n configurable: true\n });\n 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","OT","trace","getMediaTracer","OpentokFacingMode","_super","_this","arguments","subscribers","participantCount","connect","credentials","session","initSession","apiKey","sessionId","err","error","JSON","stringify","emit","MULTI_PARTY_EVENTS","connectFailed","meta","on","connectionCreatedHandler","connectionDestroyedHandler","streamCreatedHandler","streamDestroyedHandler","token","_a","off","traceErrorCallback","settings","defaultCamera","CameraTypes","NONE","startWithAudioMuted","info","createPublisher","disconnect","couldStartPublishVideo","mediaCapabilitiesHelper","err_1","MediaCapabilitiesHelper","init","hasCamera","couldStartPublishAudio","err_2","hasMicrophone","settingsForPublisher","currentPublisher","initPublisher","publish","publishAudio","_b","publishVideo","properties","insertMode","fitMode","width","height","facingMode","FRONT","USER","ENVIRONMENT","publisherDomId","event","videoElementCreated","streamCreated","stream","connection","ownConnectionId","connectionId","maxParticipantsNumber","subscriber_1","subscribe","participantDomId","subscriber","clientRole","data","parse","destroyedConnectionId","streamDestroyed","participantsNumberChanged","connectionCreated","connectionDestroyed","get","enumerable","configurable","MultiParty"],"mappings":"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","file":"OpentokMultiparty.js","sourcesContent":["\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OpentokMultiparty = void 0;\nvar MultiParty_1 = require(\"./MultiParty\");\nvar MediaConstants_1 = require(\"../MediaConstants\");\nvar MediaTracer_1 = require(\"../MediaUtils/MediaTracer\");\nvar get_1 = __importDefault(require(\"lodash/get\"));\nvar filter_1 = __importDefault(require(\"lodash/filter\"));\nvar cloneDeep_1 = __importDefault(require(\"lodash/cloneDeep\"));\nvar MediaCapabilitiesHelper_1 = require(\"./MediaCapabilitiesHelper\");\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nvar OT = require('@opentok/client');\nvar trace = MediaTracer_1.getMediaTracer('Multiparty');\n// The preferred camera position to use for the video source\nvar OpentokFacingMode;\n(function (OpentokFacingMode) {\n OpentokFacingMode[\"USER\"] = \"user\";\n OpentokFacingMode[\"ENVIRONMENT\"] = \"environment\";\n})(OpentokFacingMode || (OpentokFacingMode = {}));\nvar OpentokMultiparty = /** @class */ (function (_super) {\n __extends(OpentokMultiparty, _super);\n function OpentokMultiparty() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.subscribers = [];\n _this.participantCount = 0;\n _this.connect = function (credentials) {\n _this.credentials = credentials;\n try {\n _this.session = OT.initSession(credentials.apiKey, credentials.sessionId);\n }\n catch (err) {\n trace.error(JSON.stringify(err));\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.connectFailed, { meta: { err: JSON.stringify(err) } });\n return;\n }\n _this.session.on('connectionCreated', _this.connectionCreatedHandler);\n _this.session.on('connectionDestroyed', _this.connectionDestroyedHandler);\n _this.session.on('streamCreated', _this.streamCreatedHandler);\n _this.session.on('streamDestroyed', _this.streamDestroyedHandler);\n _this.session.connect(_this.credentials.token, function (error) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (error) {\n this.session.off();\n this.session = null;\n this.traceErrorCallback(error);\n this.emit(MultiParty_1.MULTI_PARTY_EVENTS.connectFailed, { meta: { err: JSON.stringify(error) } });\n return [2 /*return*/];\n }\n if (this.settings.defaultCamera === MediaConstants_1.CameraTypes.NONE && this.settings.startWithAudioMuted) {\n trace.info('camera is none, no need to create publisher');\n return [2 /*return*/];\n }\n return [4 /*yield*/, this.createPublisher(this.settings)];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n }); });\n };\n _this.disconnect = function () {\n try {\n trace.info('Disconnecting from session');\n if (_this.session) {\n _this.session.disconnect();\n trace.info('Disconnection from session completed');\n }\n }\n catch (err) {\n trace.error(JSON.stringify(err));\n }\n };\n _this.couldStartPublishVideo = function (settings) { return __awaiter(_this, void 0, void 0, function () {\n var mediaCapabilitiesHelper, err_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, MediaCapabilitiesHelper_1.MediaCapabilitiesHelper.init()];\n case 1:\n mediaCapabilitiesHelper = _a.sent();\n return [2 /*return*/, (settings.defaultCamera !== MediaConstants_1.CameraTypes.NONE)\n ? mediaCapabilitiesHelper.hasCamera()\n : false];\n case 2:\n err_1 = _a.sent();\n trace.error(JSON.stringify(err_1));\n throw err_1;\n case 3: return [2 /*return*/];\n }\n });\n }); };\n _this.couldStartPublishAudio = function (settings) { return __awaiter(_this, void 0, void 0, function () {\n var mediaCapabilitiesHelper, err_2;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, MediaCapabilitiesHelper_1.MediaCapabilitiesHelper.init()];\n case 1:\n mediaCapabilitiesHelper = _a.sent();\n return [2 /*return*/, !settings.startWithAudioMuted && mediaCapabilitiesHelper.hasMicrophone()];\n case 2:\n err_2 = _a.sent();\n trace.error(JSON.stringify(err_2));\n throw err_2;\n case 3: return [2 /*return*/];\n }\n });\n }); };\n _this.createPublisher = function (settingsForPublisher) { return __awaiter(_this, void 0, void 0, function () {\n var settings, couldStartPublishVideo, couldStartPublishAudio;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n settings = cloneDeep_1.default(settingsForPublisher);\n return [4 /*yield*/, this.couldStartPublishVideo(settings)];\n case 1:\n couldStartPublishVideo = _a.sent();\n return [4 /*yield*/, this.couldStartPublishAudio(settings)];\n case 2:\n couldStartPublishAudio = _a.sent();\n if (!couldStartPublishVideo && !couldStartPublishAudio) {\n // FIXME: use emitter\n trace.error('could not create a publisher, due to lack of media capabilities or settings');\n return [2 /*return*/];\n }\n if (!couldStartPublishVideo) {\n settings.defaultCamera = MediaConstants_1.CameraTypes.NONE;\n }\n if (!couldStartPublishAudio) {\n settings.startWithAudioMuted = true;\n }\n if (!this.currentPublisher) {\n this.initPublisher(settings);\n this.session.publish(this.currentPublisher, this.traceErrorCallback);\n }\n return [2 /*return*/];\n }\n });\n }); };\n _this.publishAudio = function (value) { return __awaiter(_this, void 0, void 0, function () {\n var settings, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n settings = cloneDeep_1.default(this.settings);\n settings.startWithAudioMuted = !value;\n _a = value;\n if (!_a) return [3 /*break*/, 2];\n return [4 /*yield*/, this.couldStartPublishAudio(settings)];\n case 1:\n _a = !(_b.sent());\n _b.label = 2;\n case 2:\n if (_a) {\n trace.error('could not publish audio');\n return [2 /*return*/];\n }\n if (!!this.currentPublisher) return [3 /*break*/, 4];\n return [4 /*yield*/, this.createPublisher(settings)];\n case 3:\n _b.sent();\n return [3 /*break*/, 5];\n case 4:\n this.currentPublisher.publishAudio(value);\n _b.label = 5;\n case 5: return [2 /*return*/];\n }\n });\n }); };\n _this.publishVideo = function (value) { return __awaiter(_this, void 0, void 0, function () {\n var settings, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n settings = cloneDeep_1.default(this.settings);\n settings.defaultCamera = value ? this.settings.defaultCamera : MediaConstants_1.CameraTypes.NONE;\n _a = value;\n if (!_a) return [3 /*break*/, 2];\n return [4 /*yield*/, this.couldStartPublishVideo(settings)];\n case 1:\n _a = !(_b.sent());\n _b.label = 2;\n case 2:\n if (_a) {\n trace.error('could not publish video');\n return [2 /*return*/];\n }\n if (!!this.currentPublisher) return [3 /*break*/, 4];\n return [4 /*yield*/, this.createPublisher(settings)];\n case 3:\n _b.sent();\n return [3 /*break*/, 5];\n case 4:\n this.currentPublisher.publishVideo(value);\n _b.label = 5;\n case 5: return [2 /*return*/];\n }\n });\n }); };\n _this.initPublisher = function (settings) {\n var properties = {\n insertMode: 'append',\n fitMode: 'contain',\n width: '100%',\n height: '100%',\n publishAudio: !settings.startWithAudioMuted,\n publishVideo: settings.defaultCamera !== MediaConstants_1.CameraTypes.NONE,\n facingMode: settings.defaultCamera === MediaConstants_1.CameraTypes.FRONT ? OpentokFacingMode.USER : OpentokFacingMode.ENVIRONMENT\n };\n _this.currentPublisher = OT.initPublisher(MultiParty_1.publisherDomId, properties, _this.traceErrorCallback);\n if (!_this.currentPublisher) {\n trace.error('failed to init publisher');\n }\n else {\n _this.currentPublisher.on('videoElementCreated', function (event) {\n trace.info('videoElementCreated', event);\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.videoElementCreated, event);\n });\n _this.currentPublisher.on('streamDestroyed', function (event) {\n trace.info('Publisher stream destroyed', event);\n });\n _this.currentPublisher.on('streamCreated', function (event) {\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.streamCreated, event);\n trace.info('publisher stream created', event, get_1.default(_this.currentPublisher, 'stream.hasAudio'));\n });\n }\n };\n _this.streamCreatedHandler = function (event) {\n trace.info('streamCreatedHandler', event.stream);\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.streamCreated, event);\n var stream = event.stream;\n var connection = (stream || { connection: null }).connection;\n if (!_this.ownConnectionId || !stream || connection.connectionId === _this.ownConnectionId) {\n return;\n }\n if (_this.subscribers.length >= MultiParty_1.maxParticipantsNumber - 1) {\n trace.info(\"a new subscriber cannot be added, as the number of participants reached its limit: \" + MultiParty_1.maxParticipantsNumber);\n }\n else {\n var properties = {\n insertMode: 'append',\n fitMode: 'contain',\n width: '100%',\n height: '100%'\n };\n var subscriber_1 = _this.session.subscribe(event.stream, \"\" + MultiParty_1.participantDomId + _this.participantCount, properties, function (err) {\n _this.traceErrorCallback(err);\n subscriber_1.on('videoElementCreated', function (event) {\n trace.info('videoElementCreated', event);\n });\n });\n _this.subscribers.push({\n subscriber: subscriber_1,\n connectionId: connection.connectionId,\n clientRole: (connection === null || connection === void 0 ? void 0 : connection.data) ? JSON.parse(connection.data).clientRole : 'default' //fixme temp workaround for BE\n });\n }\n };\n _this.streamDestroyedHandler = function (event) {\n trace.info('streamDestroyedHandler', event);\n var stream = event.stream;\n var destroyedConnectionId = stream && stream.connection && stream.connection.connectionId;\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.streamDestroyed, { meta: { event: JSON.stringify(event) } });\n _this.subscribers = filter_1.default(_this.subscribers, function (subscriber) { return subscriber.connectionId !== destroyedConnectionId; });\n };\n _this.connectionCreatedHandler = function (event) {\n trace.info('connectionCreatedHandler', event);\n var connection = event.connection;\n if (!_this.ownConnectionId || !connection) {\n return;\n }\n if (_this.participantCount < MultiParty_1.maxParticipantsNumber) {\n ++_this.participantCount;\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.participantsNumberChanged, _this.participantCount);\n var clientRole = connection.data ? JSON.parse(connection.data).clientRole : 'default'; //fixme temp workaround for BE\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.connectionCreated, { meta: { clientRole: clientRole, event: JSON.stringify(event) } });\n }\n else {\n trace.info(\"a new connection cannot be added, as the number of participants reached its limit: \" + MultiParty_1.maxParticipantsNumber);\n }\n };\n _this.connectionDestroyedHandler = function (event) {\n var connection = event.connection;\n if (!_this.ownConnectionId || !connection || connection.connectionId !== _this.ownConnectionId) {\n return;\n }\n --_this.participantCount;\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.participantsNumberChanged, _this.participantCount);\n _this.session = null;\n trace.info('connectionDestroyedHandler', event);\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.connectionDestroyed, { meta: { event: JSON.stringify(event) } });\n };\n _this.traceErrorCallback = function (error) {\n trace.error(JSON.stringify(error));\n };\n return _this;\n }\n Object.defineProperty(OpentokMultiparty.prototype, \"ownConnectionId\", {\n get: function () {\n return this.session && this.session.connection && this.session.connection.connectionId;\n },\n enumerable: false,\n configurable: true\n });\n return OpentokMultiparty;\n}(MultiParty_1.MultiParty));\nexports.OpentokMultiparty = OpentokMultiparty;\n\n//# sourceMappingURL=OpentokMultiparty.js.map\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@techsee/techsee-media-service",
3
- "version": "999.22.1-sss",
3
+ "version": "999.22.2-alpha",
4
4
  "description": "Techsee Media Service Client",
5
5
  "author": "TechSee",
6
6
  "main": "lib/index.js",