@techsee/techsee-media-service 0.20.0 → 0.20.2

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.
@@ -0,0 +1,11 @@
1
+ import { CameraTypes, MediaServiceType } from '../MediaConstants';
2
+ export interface ICredentials {
3
+ apiKey?: string;
4
+ sessionId: string;
5
+ token: string;
6
+ }
7
+ export interface ISessionSettings {
8
+ defaultCamera: CameraTypes;
9
+ startWithAudioMuted: boolean;
10
+ mediaSessionType: MediaServiceType;
11
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/MultiParty/Contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAE,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AAEhE,MAAM,WAAW,YAAY;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC7B,aAAa,EAAE,WAAW,CAAC;IAC3B,mBAAmB,EAAE,OAAO,CAAA;IAC5B,gBAAgB,EAAE,gBAAgB,CAAA;CACrC","file":"Contracts.d.ts","sourcesContent":["import {CameraTypes, MediaServiceType} from '../MediaConstants';\n\nexport interface ICredentials {\n apiKey?: string,\n sessionId: string,\n token: string\n}\n\nexport interface ISessionSettings {\n defaultCamera: CameraTypes,\n startWithAudioMuted: boolean\n mediaSessionType: MediaServiceType\n}\n"]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+
5
+ //# sourceMappingURL=Contracts.js.map
6
+ //# sourceMappingURL=Contracts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["MultiParty/Contracts.js"],"names":["Object","defineProperty","exports","value"],"mappings":"AAAA;;AACAA,OAAOC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C,EAAEC,OAAO,IAAT,EAA7C;;AAEA","file":"Contracts.js","sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n\n//# sourceMappingURL=Contracts.js.map\n"]}
@@ -0,0 +1,16 @@
1
+ import { ClientWebRtcInfo } from '@techsee/techsee-common/lib/data-contracts/ClientInfo';
2
+ export declare const DETECT_RTC_ADVISED_TIMEOUT = 20;
3
+ export interface WebRtcNativeService extends ClientWebRtcInfo {
4
+ load(doneCb: Function): void;
5
+ }
6
+ export interface IWebRtcDetector {
7
+ getWebRtcInfo(): Promise<ClientWebRtcInfo>;
8
+ }
9
+ export declare class DetectWebRtcService implements IWebRtcDetector {
10
+ private _cachedResult;
11
+ private readonly _nativeService;
12
+ private readonly _detectionTimeoutSec;
13
+ constructor(detectionTimeoutSec: number);
14
+ getWebRtcInfo(): Promise<ClientWebRtcInfo>;
15
+ private static getDefaultResult;
16
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/MultiParty/DetectWebRtcService.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,gBAAgB,EAAC,MAAM,uDAAuD,CAAC;AAKvF,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAE7C,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAEzD,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,eAAe;IAC5B,aAAa,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAC9C;AAED,qBAAa,mBAAoB,YAAW,eAAe;IACvD,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgC;IAC/D,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;gBAElC,mBAAmB,EAAE,MAAM;IAMvC,aAAa,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAsC1C,OAAO,CAAC,MAAM,CAAC,gBAAgB;CASlC","file":"DetectWebRtcService.d.ts","sourcesContent":["import {Nullable} from '@techsee/techsee-common';\nimport {ClientWebRtcInfo} from '@techsee/techsee-common/lib/data-contracts/ClientInfo';\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport detectRTC from '@techsee/techsee-common/lib/detectrtc.js';\n\nexport const DETECT_RTC_ADVISED_TIMEOUT = 20;\n\nexport interface WebRtcNativeService extends ClientWebRtcInfo {\n // eslint-disable-next-line @typescript-eslint/ban-types\n load(doneCb: Function): void;\n}\n\nexport interface IWebRtcDetector {\n getWebRtcInfo(): Promise<ClientWebRtcInfo>;\n}\n\nexport class DetectWebRtcService implements IWebRtcDetector {\n private _cachedResult: Nullable<ClientWebRtcInfo>;\n private readonly _nativeService: Nullable<WebRtcNativeService>;\n private readonly _detectionTimeoutSec: number;\n\n constructor(detectionTimeoutSec: number) {\n this._cachedResult = null;\n this._nativeService = detectRTC;\n this._detectionTimeoutSec = detectionTimeoutSec * 1000;\n }\n\n getWebRtcInfo(): Promise<ClientWebRtcInfo> {\n if (this._cachedResult) {\n return Promise.resolve(this._cachedResult);\n }\n\n if (!this._nativeService) {\n this._cachedResult = DetectWebRtcService.getDefaultResult();\n\n return Promise.resolve(this._cachedResult);\n }\n\n return new Promise((resolve) => {\n let timeoutPtr: any = setTimeout(() => {\n timeoutPtr = null;\n this._cachedResult = DetectWebRtcService.getDefaultResult();\n resolve(this._cachedResult);\n }, this._detectionTimeoutSec);\n\n this._nativeService!.load(() => {\n if (timeoutPtr === null) {\n return;\n }\n\n clearTimeout(timeoutPtr);\n\n this._cachedResult = {\n isWebRTCSupported: this._nativeService!.isWebRTCSupported,\n isWebsiteHasWebcamPermissions: this._nativeService!.isWebsiteHasWebcamPermissions,\n isWebsiteHasMicrophonePermissions: this._nativeService!.isWebsiteHasMicrophonePermissions,\n isGetUserMediaSupported: this._nativeService!.isGetUserMediaSupported,\n isApplyConstraintsSupported: this._nativeService!.isApplyConstraintsSupported\n };\n\n resolve(this._cachedResult);\n });\n });\n }\n\n private static getDefaultResult() {\n return {\n isWebRTCSupported: false,\n isWebsiteHasWebcamPermissions: false,\n isWebsiteHasMicrophonePermissions: false,\n isGetUserMediaSupported: false,\n isApplyConstraintsSupported: false\n };\n }\n}\n"]}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+
3
+ var __importDefault = undefined && undefined.__importDefault || function (mod) {
4
+ return mod && mod.__esModule ? mod : { "default": mod };
5
+ };
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.DetectWebRtcService = exports.DETECT_RTC_ADVISED_TIMEOUT = void 0;
8
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
9
+ // @ts-ignore
10
+ var detectrtc_js_1 = __importDefault(require("@techsee/techsee-common/lib/detectrtc.js"));
11
+ exports.DETECT_RTC_ADVISED_TIMEOUT = 20;
12
+ var DetectWebRtcService = /** @class */function () {
13
+ function DetectWebRtcService(detectionTimeoutSec) {
14
+ this._cachedResult = null;
15
+ this._nativeService = detectrtc_js_1.default;
16
+ this._detectionTimeoutSec = detectionTimeoutSec * 1000;
17
+ }
18
+ DetectWebRtcService.prototype.getWebRtcInfo = function () {
19
+ var _this = this;
20
+ if (this._cachedResult) {
21
+ return Promise.resolve(this._cachedResult);
22
+ }
23
+ if (!this._nativeService) {
24
+ this._cachedResult = DetectWebRtcService.getDefaultResult();
25
+ return Promise.resolve(this._cachedResult);
26
+ }
27
+ return new Promise(function (resolve) {
28
+ var timeoutPtr = setTimeout(function () {
29
+ timeoutPtr = null;
30
+ _this._cachedResult = DetectWebRtcService.getDefaultResult();
31
+ resolve(_this._cachedResult);
32
+ }, _this._detectionTimeoutSec);
33
+ _this._nativeService.load(function () {
34
+ if (timeoutPtr === null) {
35
+ return;
36
+ }
37
+ clearTimeout(timeoutPtr);
38
+ _this._cachedResult = {
39
+ isWebRTCSupported: _this._nativeService.isWebRTCSupported,
40
+ isWebsiteHasWebcamPermissions: _this._nativeService.isWebsiteHasWebcamPermissions,
41
+ isWebsiteHasMicrophonePermissions: _this._nativeService.isWebsiteHasMicrophonePermissions,
42
+ isGetUserMediaSupported: _this._nativeService.isGetUserMediaSupported,
43
+ isApplyConstraintsSupported: _this._nativeService.isApplyConstraintsSupported
44
+ };
45
+ resolve(_this._cachedResult);
46
+ });
47
+ });
48
+ };
49
+ DetectWebRtcService.getDefaultResult = function () {
50
+ return {
51
+ isWebRTCSupported: false,
52
+ isWebsiteHasWebcamPermissions: false,
53
+ isWebsiteHasMicrophonePermissions: false,
54
+ isGetUserMediaSupported: false,
55
+ isApplyConstraintsSupported: false
56
+ };
57
+ };
58
+ return DetectWebRtcService;
59
+ }();
60
+ exports.DetectWebRtcService = DetectWebRtcService;
61
+
62
+ //# sourceMappingURL=DetectWebRtcService.js.map
63
+ //# sourceMappingURL=DetectWebRtcService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["MultiParty/DetectWebRtcService.js"],"names":["__importDefault","mod","__esModule","Object","defineProperty","exports","value","DetectWebRtcService","DETECT_RTC_ADVISED_TIMEOUT","detectrtc_js_1","require","detectionTimeoutSec","_cachedResult","_nativeService","default","_detectionTimeoutSec","prototype","getWebRtcInfo","_this","Promise","resolve","getDefaultResult","timeoutPtr","setTimeout","load","clearTimeout","isWebRTCSupported","isWebsiteHasWebcamPermissions","isWebsiteHasMicrophonePermissions","isGetUserMediaSupported","isApplyConstraintsSupported"],"mappings":"AAAA;;AACA,IAAIA,kBAAmB,aAAQ,UAAKA,eAAd,IAAkC,UAAUC,GAAV,EAAe;AACnE,WAAQA,OAAOA,IAAIC,UAAZ,GAA0BD,GAA1B,GAAgC,EAAE,WAAWA,GAAb,EAAvC;AACH,CAFD;AAGAE,OAAOC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C,EAAEC,OAAO,IAAT,EAA7C;AACAD,QAAQE,mBAAR,GAA8BF,QAAQG,0BAAR,GAAqC,KAAK,CAAxE;AACA;AACA;AACA,IAAIC,iBAAiBT,gBAAgBU,QAAQ,0CAAR,CAAhB,CAArB;AACAL,QAAQG,0BAAR,GAAqC,EAArC;AACA,IAAID,sBAAsB,aAAe,YAAY;AACjD,aAASA,mBAAT,CAA6BI,mBAA7B,EAAkD;AAC9C,aAAKC,aAAL,GAAqB,IAArB;AACA,aAAKC,cAAL,GAAsBJ,eAAeK,OAArC;AACA,aAAKC,oBAAL,GAA4BJ,sBAAsB,IAAlD;AACH;AACDJ,wBAAoBS,SAApB,CAA8BC,aAA9B,GAA8C,YAAY;AACtD,YAAIC,QAAQ,IAAZ;AACA,YAAI,KAAKN,aAAT,EAAwB;AACpB,mBAAOO,QAAQC,OAAR,CAAgB,KAAKR,aAArB,CAAP;AACH;AACD,YAAI,CAAC,KAAKC,cAAV,EAA0B;AACtB,iBAAKD,aAAL,GAAqBL,oBAAoBc,gBAApB,EAArB;AACA,mBAAOF,QAAQC,OAAR,CAAgB,KAAKR,aAArB,CAAP;AACH;AACD,eAAO,IAAIO,OAAJ,CAAY,UAAUC,OAAV,EAAmB;AAClC,gBAAIE,aAAaC,WAAW,YAAY;AACpCD,6BAAa,IAAb;AACAJ,sBAAMN,aAAN,GAAsBL,oBAAoBc,gBAApB,EAAtB;AACAD,wBAAQF,MAAMN,aAAd;AACH,aAJgB,EAIdM,MAAMH,oBAJQ,CAAjB;AAKAG,kBAAML,cAAN,CAAqBW,IAArB,CAA0B,YAAY;AAClC,oBAAIF,eAAe,IAAnB,EAAyB;AACrB;AACH;AACDG,6BAAaH,UAAb;AACAJ,sBAAMN,aAAN,GAAsB;AAClBc,uCAAmBR,MAAML,cAAN,CAAqBa,iBADtB;AAElBC,mDAA+BT,MAAML,cAAN,CAAqBc,6BAFlC;AAGlBC,uDAAmCV,MAAML,cAAN,CAAqBe,iCAHtC;AAIlBC,6CAAyBX,MAAML,cAAN,CAAqBgB,uBAJ5B;AAKlBC,iDAA6BZ,MAAML,cAAN,CAAqBiB;AALhC,iBAAtB;AAOAV,wBAAQF,MAAMN,aAAd;AACH,aAbD;AAcH,SApBM,CAAP;AAqBH,KA9BD;AA+BAL,wBAAoBc,gBAApB,GAAuC,YAAY;AAC/C,eAAO;AACHK,+BAAmB,KADhB;AAEHC,2CAA+B,KAF5B;AAGHC,+CAAmC,KAHhC;AAIHC,qCAAyB,KAJtB;AAKHC,yCAA6B;AAL1B,SAAP;AAOH,KARD;AASA,WAAOvB,mBAAP;AACH,CA/CwC,EAAzC;AAgDAF,QAAQE,mBAAR,GAA8BA,mBAA9B;;AAEA","file":"DetectWebRtcService.js","sourcesContent":["\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DetectWebRtcService = exports.DETECT_RTC_ADVISED_TIMEOUT = void 0;\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nvar detectrtc_js_1 = __importDefault(require(\"@techsee/techsee-common/lib/detectrtc.js\"));\nexports.DETECT_RTC_ADVISED_TIMEOUT = 20;\nvar DetectWebRtcService = /** @class */ (function () {\n function DetectWebRtcService(detectionTimeoutSec) {\n this._cachedResult = null;\n this._nativeService = detectrtc_js_1.default;\n this._detectionTimeoutSec = detectionTimeoutSec * 1000;\n }\n DetectWebRtcService.prototype.getWebRtcInfo = function () {\n var _this = this;\n if (this._cachedResult) {\n return Promise.resolve(this._cachedResult);\n }\n if (!this._nativeService) {\n this._cachedResult = DetectWebRtcService.getDefaultResult();\n return Promise.resolve(this._cachedResult);\n }\n return new Promise(function (resolve) {\n var timeoutPtr = setTimeout(function () {\n timeoutPtr = null;\n _this._cachedResult = DetectWebRtcService.getDefaultResult();\n resolve(_this._cachedResult);\n }, _this._detectionTimeoutSec);\n _this._nativeService.load(function () {\n if (timeoutPtr === null) {\n return;\n }\n clearTimeout(timeoutPtr);\n _this._cachedResult = {\n isWebRTCSupported: _this._nativeService.isWebRTCSupported,\n isWebsiteHasWebcamPermissions: _this._nativeService.isWebsiteHasWebcamPermissions,\n isWebsiteHasMicrophonePermissions: _this._nativeService.isWebsiteHasMicrophonePermissions,\n isGetUserMediaSupported: _this._nativeService.isGetUserMediaSupported,\n isApplyConstraintsSupported: _this._nativeService.isApplyConstraintsSupported\n };\n resolve(_this._cachedResult);\n });\n });\n };\n DetectWebRtcService.getDefaultResult = function () {\n return {\n isWebRTCSupported: false,\n isWebsiteHasWebcamPermissions: false,\n isWebsiteHasMicrophonePermissions: false,\n isGetUserMediaSupported: false,\n isApplyConstraintsSupported: false\n };\n };\n return DetectWebRtcService;\n}());\nexports.DetectWebRtcService = DetectWebRtcService;\n\n//# sourceMappingURL=DetectWebRtcService.js.map\n"]}
@@ -0,0 +1,12 @@
1
+ export declare class MediaCapabilitiesHelper {
2
+ private static detectWebRtcService;
3
+ private static webRtcSupportInfo;
4
+ private static mediaCapabilitiesHelper;
5
+ private static devicesList;
6
+ private environmentService;
7
+ static init(): Promise<MediaCapabilitiesHelper>;
8
+ hasCamera(): boolean;
9
+ hasMicrophone(): boolean;
10
+ hasWebRTC(): boolean;
11
+ hasGetUserMediaSupported(): boolean;
12
+ }
@@ -0,0 +1 @@
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;IA0BrD,SAAS,IAAI,OAAO;IAMpB,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 = 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 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 this.environmentService.isIOS()\n ? MediaCapabilitiesHelper.webRtcSupportInfo!.isWebsiteHasWebcamPermissions && this.hasGetUserMediaSupported()\n : 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"]}
@@ -0,0 +1,167 @@
1
+ "use strict";
2
+
3
+ var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
4
+ function adopt(value) {
5
+ return value instanceof P ? value : new P(function (resolve) {
6
+ resolve(value);
7
+ });
8
+ }
9
+ return new (P || (P = Promise))(function (resolve, reject) {
10
+ function fulfilled(value) {
11
+ try {
12
+ step(generator.next(value));
13
+ } catch (e) {
14
+ reject(e);
15
+ }
16
+ }
17
+ function rejected(value) {
18
+ try {
19
+ step(generator["throw"](value));
20
+ } catch (e) {
21
+ reject(e);
22
+ }
23
+ }
24
+ function step(result) {
25
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
26
+ }
27
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
28
+ });
29
+ };
30
+ var __generator = undefined && undefined.__generator || function (thisArg, body) {
31
+ var _ = { label: 0, sent: function sent() {
32
+ if (t[0] & 1) throw t[1];return t[1];
33
+ }, trys: [], ops: [] },
34
+ f,
35
+ y,
36
+ t,
37
+ g;
38
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
39
+ return this;
40
+ }), g;
41
+ function verb(n) {
42
+ return function (v) {
43
+ return step([n, v]);
44
+ };
45
+ }
46
+ function step(op) {
47
+ if (f) throw new TypeError("Generator is already executing.");
48
+ while (_) {
49
+ try {
50
+ 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;
51
+ if (y = 0, t) op = [op[0] & 2, t.value];
52
+ switch (op[0]) {
53
+ case 0:case 1:
54
+ t = op;break;
55
+ case 4:
56
+ _.label++;return { value: op[1], done: false };
57
+ case 5:
58
+ _.label++;y = op[1];op = [0];continue;
59
+ case 7:
60
+ op = _.ops.pop();_.trys.pop();continue;
61
+ default:
62
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
63
+ _ = 0;continue;
64
+ }
65
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
66
+ _.label = op[1];break;
67
+ }
68
+ if (op[0] === 6 && _.label < t[1]) {
69
+ _.label = t[1];t = op;break;
70
+ }
71
+ if (t && _.label < t[2]) {
72
+ _.label = t[2];_.ops.push(op);break;
73
+ }
74
+ if (t[2]) _.ops.pop();
75
+ _.trys.pop();continue;
76
+ }
77
+ op = body.call(thisArg, _);
78
+ } catch (e) {
79
+ op = [6, e];y = 0;
80
+ } finally {
81
+ f = t = 0;
82
+ }
83
+ }if (op[0] & 5) throw op[1];return { value: op[0] ? op[1] : void 0, done: true };
84
+ }
85
+ };
86
+ var __importDefault = undefined && undefined.__importDefault || function (mod) {
87
+ return mod && mod.__esModule ? mod : { "default": mod };
88
+ };
89
+ Object.defineProperty(exports, "__esModule", { value: true });
90
+ exports.MediaCapabilitiesHelper = void 0;
91
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
92
+ var MediaTracer_1 = require("../MediaUtils/MediaTracer");
93
+ var DetectWebRtcService_1 = require("./DetectWebRtcService");
94
+ var filter_1 = __importDefault(require("lodash/filter"));
95
+ var ts_environment_detect_1 = require("@techsee/techsee-common/lib/helpers/ts-environment-detect");
96
+ var trace = MediaTracer_1.getMediaTracer('MediaCapabilitiesHelper');
97
+ function enumerateMediaDevices() {
98
+ return new Promise(function (resolve, reject) {
99
+ if (navigator.mediaDevices && navigator.mediaDevices.enumerateDevices) {
100
+ return navigator.mediaDevices.enumerateDevices().then(resolve).catch(reject);
101
+ }
102
+ return resolve([]);
103
+ });
104
+ }
105
+ var MediaCapabilitiesHelper = /** @class */function () {
106
+ function MediaCapabilitiesHelper() {
107
+ this.environmentService = new ts_environment_detect_1.TsEnvironmentDetect();
108
+ }
109
+ MediaCapabilitiesHelper.init = function () {
110
+ return __awaiter(this, void 0, void 0, function () {
111
+ var _a, _b, localDevicesList, err_1;
112
+ return __generator(this, function (_c) {
113
+ switch (_c.label) {
114
+ case 0:
115
+ _c.trys.push([0, 4,, 5]);
116
+ _a = this;
117
+ return [4 /*yield*/, new DetectWebRtcService_1.DetectWebRtcService(DetectWebRtcService_1.DETECT_RTC_ADVISED_TIMEOUT)];
118
+ case 1:
119
+ _a.detectWebRtcService = _c.sent();
120
+ _b = this;
121
+ return [4 /*yield*/, this.detectWebRtcService.getWebRtcInfo()];
122
+ case 2:
123
+ _b.webRtcSupportInfo = _c.sent();
124
+ return [4 /*yield*/, enumerateMediaDevices()];
125
+ case 3:
126
+ localDevicesList = _c.sent();
127
+ this.devicesList = {
128
+ video: filter_1.default(localDevicesList, function (device) {
129
+ return device.kind.toLowerCase() === 'videoinput';
130
+ }),
131
+ audio: filter_1.default(localDevicesList, function (device) {
132
+ return device.kind.toLowerCase() === 'audioinput';
133
+ })
134
+ };
135
+ if (!this.mediaCapabilitiesHelper) {
136
+ this.mediaCapabilitiesHelper = new MediaCapabilitiesHelper();
137
+ }
138
+ trace.info('initialize media capabilities helper successfully');
139
+ return [2 /*return*/, this.mediaCapabilitiesHelper];
140
+ case 4:
141
+ err_1 = _c.sent();
142
+ trace.error(JSON.stringify(err_1));
143
+ throw err_1;
144
+ case 5:
145
+ return [2 /*return*/];
146
+ }
147
+ });
148
+ });
149
+ };
150
+ MediaCapabilitiesHelper.prototype.hasCamera = function () {
151
+ return this.environmentService.isIOS() ? MediaCapabilitiesHelper.webRtcSupportInfo.isWebsiteHasWebcamPermissions && this.hasGetUserMediaSupported() : MediaCapabilitiesHelper.devicesList.video.length > 0 && this.hasGetUserMediaSupported();
152
+ };
153
+ MediaCapabilitiesHelper.prototype.hasMicrophone = function () {
154
+ return this.environmentService.isIOS() ? MediaCapabilitiesHelper.webRtcSupportInfo.isWebsiteHasMicrophonePermissions && this.hasGetUserMediaSupported() : MediaCapabilitiesHelper.devicesList.audio.length > 0 && this.hasGetUserMediaSupported();
155
+ };
156
+ MediaCapabilitiesHelper.prototype.hasWebRTC = function () {
157
+ return MediaCapabilitiesHelper.webRtcSupportInfo.isWebRTCSupported;
158
+ };
159
+ MediaCapabilitiesHelper.prototype.hasGetUserMediaSupported = function () {
160
+ return MediaCapabilitiesHelper.webRtcSupportInfo.isGetUserMediaSupported;
161
+ };
162
+ return MediaCapabilitiesHelper;
163
+ }();
164
+ exports.MediaCapabilitiesHelper = MediaCapabilitiesHelper;
165
+
166
+ //# sourceMappingURL=MediaCapabilitiesHelper.js.map
167
+ //# sourceMappingURL=MediaCapabilitiesHelper.js.map
@@ -0,0 +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","trace","getMediaTracer","enumerateMediaDevices","navigator","mediaDevices","enumerateDevices","catch","environmentService","TsEnvironmentDetect","init","_a","_b","localDevicesList","err_1","_c","DetectWebRtcService","DETECT_RTC_ADVISED_TIMEOUT","detectWebRtcService","getWebRtcInfo","webRtcSupportInfo","devicesList","video","default","device","kind","toLowerCase","audio","mediaCapabilitiesHelper","info","error","JSON","stringify","prototype","hasCamera","isIOS","isWebsiteHasWebcamPermissions","hasGetUserMediaSupported","hasMicrophone","isWebsiteHasMicrophonePermissions","hasWebRTC","isWebRTCSupported","isGetUserMediaSupported"],"mappings":"AAAA;;AACA,IAAIA,YAAa,aAAQ,UAAKA,SAAd,IAA4B,UAAUC,OAAV,EAAmBC,UAAnB,EAA+BC,CAA/B,EAAkCC,SAAlC,EAA6C;AACrF,aAASC,KAAT,CAAeC,KAAf,EAAsB;AAAE,eAAOA,iBAAiBH,CAAjB,GAAqBG,KAArB,GAA6B,IAAIH,CAAJ,CAAM,UAAUI,OAAV,EAAmB;AAAEA,oBAAQD,KAAR;AAAiB,SAA5C,CAApC;AAAoF;AAC5G,WAAO,KAAKH,MAAMA,IAAIK,OAAV,CAAL,EAAyB,UAAUD,OAAV,EAAmBE,MAAnB,EAA2B;AACvD,iBAASC,SAAT,CAAmBJ,KAAnB,EAA0B;AAAE,gBAAI;AAAEK,qBAAKP,UAAUQ,IAAV,CAAeN,KAAf,CAAL;AAA8B,aAApC,CAAqC,OAAOO,CAAP,EAAU;AAAEJ,uBAAOI,CAAP;AAAY;AAAE;AAC3F,iBAASC,QAAT,CAAkBR,KAAlB,EAAyB;AAAE,gBAAI;AAAEK,qBAAKP,UAAU,OAAV,EAAmBE,KAAnB,CAAL;AAAkC,aAAxC,CAAyC,OAAOO,CAAP,EAAU;AAAEJ,uBAAOI,CAAP;AAAY;AAAE;AAC9F,iBAASF,IAAT,CAAcI,MAAd,EAAsB;AAAEA,mBAAOC,IAAP,GAAcT,QAAQQ,OAAOT,KAAf,CAAd,GAAsCD,MAAMU,OAAOT,KAAb,EAAoBW,IAApB,CAAyBP,SAAzB,EAAoCI,QAApC,CAAtC;AAAsF;AAC9GH,aAAK,CAACP,YAAYA,UAAUc,KAAV,CAAgBjB,OAAhB,EAAyBC,cAAc,EAAvC,CAAb,EAAyDU,IAAzD,EAAL;AACH,KALM,CAAP;AAMH,CARD;AASA,IAAIO,cAAe,aAAQ,UAAKA,WAAd,IAA8B,UAAUlB,OAAV,EAAmBmB,IAAnB,EAAyB;AACrE,QAAIC,IAAI,EAAEC,OAAO,CAAT,EAAYC,MAAM,gBAAW;AAAE,gBAAIC,EAAE,CAAF,IAAO,CAAX,EAAc,MAAMA,EAAE,CAAF,CAAN,CAAY,OAAOA,EAAE,CAAF,CAAP;AAAc,SAAvE,EAAyEC,MAAM,EAA/E,EAAmFC,KAAK,EAAxF,EAAR;AAAA,QAAsGC,CAAtG;AAAA,QAAyGC,CAAzG;AAAA,QAA4GJ,CAA5G;AAAA,QAA+GK,CAA/G;AACA,WAAOA,IAAI,EAAEjB,MAAMkB,KAAK,CAAL,CAAR,EAAiB,SAASA,KAAK,CAAL,CAA1B,EAAmC,UAAUA,KAAK,CAAL,CAA7C,EAAJ,EAA4D,OAAOC,MAAP,KAAkB,UAAlB,KAAiCF,EAAEE,OAAOC,QAAT,IAAqB,YAAW;AAAE,eAAO,IAAP;AAAc,KAAjF,CAA5D,EAAgJH,CAAvJ;AACA,aAASC,IAAT,CAAcG,CAAd,EAAiB;AAAE,eAAO,UAAUC,CAAV,EAAa;AAAE,mBAAOvB,KAAK,CAACsB,CAAD,EAAIC,CAAJ,CAAL,CAAP;AAAsB,SAA5C;AAA+C;AAClE,aAASvB,IAAT,CAAcwB,EAAd,EAAkB;AACd,YAAIR,CAAJ,EAAO,MAAM,IAAIS,SAAJ,CAAc,iCAAd,CAAN;AACP,eAAOf,CAAP;AAAU,gBAAI;AACV,oBAAIM,IAAI,CAAJ,EAAOC,MAAMJ,IAAIW,GAAG,CAAH,IAAQ,CAAR,GAAYP,EAAE,QAAF,CAAZ,GAA0BO,GAAG,CAAH,IAAQP,EAAE,OAAF,MAAe,CAACJ,IAAII,EAAE,QAAF,CAAL,KAAqBJ,EAAEa,IAAF,CAAOT,CAAP,CAArB,EAAgC,CAA/C,CAAR,GAA4DA,EAAEhB,IAAlG,KAA2G,CAAC,CAACY,IAAIA,EAAEa,IAAF,CAAOT,CAAP,EAAUO,GAAG,CAAH,CAAV,CAAL,EAAuBnB,IAA9I,EAAoJ,OAAOQ,CAAP;AACpJ,oBAAII,IAAI,CAAJ,EAAOJ,CAAX,EAAcW,KAAK,CAACA,GAAG,CAAH,IAAQ,CAAT,EAAYX,EAAElB,KAAd,CAAL;AACd,wBAAQ6B,GAAG,CAAH,CAAR;AACI,yBAAK,CAAL,CAAQ,KAAK,CAAL;AAAQX,4BAAIW,EAAJ,CAAQ;AACxB,yBAAK,CAAL;AAAQd,0BAAEC,KAAF,GAAW,OAAO,EAAEhB,OAAO6B,GAAG,CAAH,CAAT,EAAgBnB,MAAM,KAAtB,EAAP;AACnB,yBAAK,CAAL;AAAQK,0BAAEC,KAAF,GAAWM,IAAIO,GAAG,CAAH,CAAJ,CAAWA,KAAK,CAAC,CAAD,CAAL,CAAU;AACxC,yBAAK,CAAL;AAAQA,6BAAKd,EAAEK,GAAF,CAAMY,GAAN,EAAL,CAAkBjB,EAAEI,IAAF,CAAOa,GAAP,GAAc;AACxC;AACI,4BAAI,EAAEd,IAAIH,EAAEI,IAAN,EAAYD,IAAIA,EAAEe,MAAF,GAAW,CAAX,IAAgBf,EAAEA,EAAEe,MAAF,GAAW,CAAb,CAAlC,MAAuDJ,GAAG,CAAH,MAAU,CAAV,IAAeA,GAAG,CAAH,MAAU,CAAhF,CAAJ,EAAwF;AAAEd,gCAAI,CAAJ,CAAO;AAAW;AAC5G,4BAAIc,GAAG,CAAH,MAAU,CAAV,KAAgB,CAACX,CAAD,IAAOW,GAAG,CAAH,IAAQX,EAAE,CAAF,CAAR,IAAgBW,GAAG,CAAH,IAAQX,EAAE,CAAF,CAA/C,CAAJ,EAA2D;AAAEH,8BAAEC,KAAF,GAAUa,GAAG,CAAH,CAAV,CAAiB;AAAQ;AACtF,4BAAIA,GAAG,CAAH,MAAU,CAAV,IAAed,EAAEC,KAAF,GAAUE,EAAE,CAAF,CAA7B,EAAmC;AAAEH,8BAAEC,KAAF,GAAUE,EAAE,CAAF,CAAV,CAAgBA,IAAIW,EAAJ,CAAQ;AAAQ;AACrE,4BAAIX,KAAKH,EAAEC,KAAF,GAAUE,EAAE,CAAF,CAAnB,EAAyB;AAAEH,8BAAEC,KAAF,GAAUE,EAAE,CAAF,CAAV,CAAgBH,EAAEK,GAAF,CAAMc,IAAN,CAAWL,EAAX,EAAgB;AAAQ;AACnE,4BAAIX,EAAE,CAAF,CAAJ,EAAUH,EAAEK,GAAF,CAAMY,GAAN;AACVjB,0BAAEI,IAAF,CAAOa,GAAP,GAAc;AAXtB;AAaAH,qBAAKf,KAAKiB,IAAL,CAAUpC,OAAV,EAAmBoB,CAAnB,CAAL;AACH,aAjBS,CAiBR,OAAOR,CAAP,EAAU;AAAEsB,qBAAK,CAAC,CAAD,EAAItB,CAAJ,CAAL,CAAae,IAAI,CAAJ;AAAQ,aAjBzB,SAiBkC;AAAED,oBAAIH,IAAI,CAAR;AAAY;AAjB1D,SAkBA,IAAIW,GAAG,CAAH,IAAQ,CAAZ,EAAe,MAAMA,GAAG,CAAH,CAAN,CAAa,OAAO,EAAE7B,OAAO6B,GAAG,CAAH,IAAQA,GAAG,CAAH,CAAR,GAAgB,KAAK,CAA9B,EAAiCnB,MAAM,IAAvC,EAAP;AAC/B;AACJ,CA1BD;AA2BA,IAAIyB,kBAAmB,aAAQ,UAAKA,eAAd,IAAkC,UAAUC,GAAV,EAAe;AACnE,WAAQA,OAAOA,IAAIC,UAAZ,GAA0BD,GAA1B,GAAgC,EAAE,WAAWA,GAAb,EAAvC;AACH,CAFD;AAGAE,OAAOC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C,EAAExC,OAAO,IAAT,EAA7C;AACAwC,QAAQC,uBAAR,GAAkC,KAAK,CAAvC;AACA;AACA,IAAIC,gBAAgBC,QAAQ,2BAAR,CAApB;AACA,IAAIC,wBAAwBD,QAAQ,uBAAR,CAA5B;AACA,IAAIE,WAAWV,gBAAgBQ,QAAQ,eAAR,CAAhB,CAAf;AACA,IAAIG,0BAA0BH,QAAQ,2DAAR,CAA9B;AACA,IAAII,QAAQL,cAAcM,cAAd,CAA6B,yBAA7B,CAAZ;AACA,SAASC,qBAAT,GAAiC;AAC7B,WAAO,IAAI/C,OAAJ,CAAY,UAAUD,OAAV,EAAmBE,MAAnB,EAA2B;AAC1C,YAAI+C,UAAUC,YAAV,IAA0BD,UAAUC,YAAV,CAAuBC,gBAArD,EAAuE;AACnE,mBAAOF,UAAUC,YAAV,CAAuBC,gBAAvB,GAA0CzC,IAA1C,CAA+CV,OAA/C,EAAwDoD,KAAxD,CAA8DlD,MAA9D,CAAP;AACH;AACD,eAAOF,QAAQ,EAAR,CAAP;AACH,KALM,CAAP;AAMH;AACD,IAAIwC,0BAA0B,aAAe,YAAY;AACrD,aAASA,uBAAT,GAAmC;AAC/B,aAAKa,kBAAL,GAA0B,IAAIR,wBAAwBS,mBAA5B,EAA1B;AACH;AACDd,4BAAwBe,IAAxB,GAA+B,YAAY;AACvC,eAAO9D,UAAU,IAAV,EAAgB,KAAK,CAArB,EAAwB,KAAK,CAA7B,EAAgC,YAAY;AAC/C,gBAAI+D,EAAJ,EAAQC,EAAR,EAAYC,gBAAZ,EAA8BC,KAA9B;AACA,mBAAO/C,YAAY,IAAZ,EAAkB,UAAUgD,EAAV,EAAc;AACnC,wBAAQA,GAAG7C,KAAX;AACI,yBAAK,CAAL;AACI6C,2BAAG1C,IAAH,CAAQe,IAAR,CAAa,CAAC,CAAD,EAAI,CAAJ,GAAS,CAAT,CAAb;AACAuB,6BAAK,IAAL;AACA,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAc,IAAIb,sBAAsBkB,mBAA1B,CAA8ClB,sBAAsBmB,0BAApE,CAAd,CAAP;AACJ,yBAAK,CAAL;AACIN,2BAAGO,mBAAH,GAAyBH,GAAG5C,IAAH,EAAzB;AACAyC,6BAAK,IAAL;AACA,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAc,KAAKM,mBAAL,CAAyBC,aAAzB,EAAd,CAAP;AACJ,yBAAK,CAAL;AACIP,2BAAGQ,iBAAH,GAAuBL,GAAG5C,IAAH,EAAvB;AACA,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAcgC,uBAAd,CAAP;AACJ,yBAAK,CAAL;AACIU,2CAAmBE,GAAG5C,IAAH,EAAnB;AACA,6BAAKkD,WAAL,GAAmB;AACfC,mCAAOvB,SAASwB,OAAT,CAAiBV,gBAAjB,EAAmC,UAAUW,MAAV,EAAkB;AAAE,uCAAOA,OAAOC,IAAP,CAAYC,WAAZ,OAA8B,YAArC;AAAoD,6BAA3G,CADQ;AAEfC,mCAAO5B,SAASwB,OAAT,CAAiBV,gBAAjB,EAAmC,UAAUW,MAAV,EAAkB;AAAE,uCAAOA,OAAOC,IAAP,CAAYC,WAAZ,OAA8B,YAArC;AAAoD,6BAA3G;AAFQ,yBAAnB;AAIA,4BAAI,CAAC,KAAKE,uBAAV,EAAmC;AAC/B,iCAAKA,uBAAL,GAA+B,IAAIjC,uBAAJ,EAA/B;AACH;AACDM,8BAAM4B,IAAN,CAAW,mDAAX;AACA,+BAAO,CAAC,CAAD,CAAG,UAAH,EAAe,KAAKD,uBAApB,CAAP;AACJ,yBAAK,CAAL;AACId,gCAAQC,GAAG5C,IAAH,EAAR;AACA8B,8BAAM6B,KAAN,CAAYC,KAAKC,SAAL,CAAelB,KAAf,CAAZ;AACA,8BAAMA,KAAN;AACJ,yBAAK,CAAL;AAAQ,+BAAO,CAAC,CAAD,CAAG,UAAH,CAAP;AA3BZ;AA6BH,aA9BM,CAAP;AA+BH,SAjCM,CAAP;AAkCH,KAnCD;AAoCAnB,4BAAwBsC,SAAxB,CAAkCC,SAAlC,GAA8C,YAAY;AACtD,eAAO,KAAK1B,kBAAL,CAAwB2B,KAAxB,KACDxC,wBAAwByB,iBAAxB,CAA0CgB,6BAA1C,IAA2E,KAAKC,wBAAL,EAD1E,GAED1C,wBAAwB0B,WAAxB,CAAoCC,KAApC,CAA0CnC,MAA1C,GAAmD,CAAnD,IAAwD,KAAKkD,wBAAL,EAF9D;AAGH,KAJD;AAKA1C,4BAAwBsC,SAAxB,CAAkCK,aAAlC,GAAkD,YAAY;AAC1D,eAAO,KAAK9B,kBAAL,CAAwB2B,KAAxB,KACDxC,wBAAwByB,iBAAxB,CAA0CmB,iCAA1C,IAA+E,KAAKF,wBAAL,EAD9E,GAED1C,wBAAwB0B,WAAxB,CAAoCM,KAApC,CAA0CxC,MAA1C,GAAmD,CAAnD,IAAwD,KAAKkD,wBAAL,EAF9D;AAGH,KAJD;AAKA1C,4BAAwBsC,SAAxB,CAAkCO,SAAlC,GAA8C,YAAY;AACtD,eAAO7C,wBAAwByB,iBAAxB,CAA0CqB,iBAAjD;AACH,KAFD;AAGA9C,4BAAwBsC,SAAxB,CAAkCI,wBAAlC,GAA6D,YAAY;AACrE,eAAO1C,wBAAwByB,iBAAxB,CAA0CsB,uBAAjD;AACH,KAFD;AAGA,WAAO/C,uBAAP;AACH,CAzD4C,EAA7C;AA0DAD,QAAQC,uBAAR,GAAkCA,uBAAlC;;AAEA","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, err_1;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _c.trys.push([0, 4, , 5]);\n _a = this;\n return [4 /*yield*/, new DetectWebRtcService_1.DetectWebRtcService(DetectWebRtcService_1.DETECT_RTC_ADVISED_TIMEOUT)];\n case 1:\n _a.detectWebRtcService = _c.sent();\n _b = this;\n return [4 /*yield*/, this.detectWebRtcService.getWebRtcInfo()];\n case 2:\n _b.webRtcSupportInfo = _c.sent();\n return [4 /*yield*/, enumerateMediaDevices()];\n case 3:\n localDevicesList = _c.sent();\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 4:\n err_1 = _c.sent();\n trace.error(JSON.stringify(err_1));\n throw err_1;\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n MediaCapabilitiesHelper.prototype.hasCamera = function () {\n return this.environmentService.isIOS()\n ? MediaCapabilitiesHelper.webRtcSupportInfo.isWebsiteHasWebcamPermissions && this.hasGetUserMediaSupported()\n : 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"]}
@@ -0,0 +1,21 @@
1
+ /// <reference types="node" />
2
+ import { EventEmitter } from 'events';
3
+ import { ISessionSettings } from './Contracts';
4
+ export declare const participateDomId = "participate";
5
+ export declare const maxParticipantsNumber = 2;
6
+ export declare enum MULTI_PARTY_EVENTS {
7
+ connectFailed = "connectFailed",
8
+ streamDestroyed = "streamDestroyed",
9
+ connectionCreated = "connectionCreated",
10
+ connectionDestroyed = "connectionDestroyed",
11
+ streamCreated = "streamCreated"
12
+ }
13
+ export declare abstract class MultiParty extends EventEmitter {
14
+ abstract session: any;
15
+ abstract subscribers: Array<any> | undefined;
16
+ protected settings: ISessionSettings;
17
+ abstract connect(...args: any[]): void;
18
+ abstract disconnect(): void;
19
+ constructor(settings: ISessionSettings);
20
+ }
21
+ export declare const couldStartMultiparty: () => Promise<boolean>;
@@ -0,0 +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;AAI7C,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,8BAAsB,UAAW,SAAQ,YAAY;IACjD,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 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 abstract class MultiParty extends EventEmitter {\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"]}
@@ -0,0 +1,155 @@
1
+ "use strict";
2
+
3
+ var __extends = undefined && undefined.__extends || function () {
4
+ var _extendStatics = function extendStatics(d, b) {
5
+ _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {
6
+ d.__proto__ = b;
7
+ } || function (d, b) {
8
+ for (var p in b) {
9
+ if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
10
+ }
11
+ };
12
+ return _extendStatics(d, b);
13
+ };
14
+ return function (d, b) {
15
+ _extendStatics(d, b);
16
+ function __() {
17
+ this.constructor = d;
18
+ }
19
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
20
+ };
21
+ }();
22
+ var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
23
+ function adopt(value) {
24
+ return value instanceof P ? value : new P(function (resolve) {
25
+ resolve(value);
26
+ });
27
+ }
28
+ return new (P || (P = Promise))(function (resolve, reject) {
29
+ function fulfilled(value) {
30
+ try {
31
+ step(generator.next(value));
32
+ } catch (e) {
33
+ reject(e);
34
+ }
35
+ }
36
+ function rejected(value) {
37
+ try {
38
+ step(generator["throw"](value));
39
+ } catch (e) {
40
+ reject(e);
41
+ }
42
+ }
43
+ function step(result) {
44
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
45
+ }
46
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
47
+ });
48
+ };
49
+ var __generator = undefined && undefined.__generator || function (thisArg, body) {
50
+ var _ = { label: 0, sent: function sent() {
51
+ if (t[0] & 1) throw t[1];return t[1];
52
+ }, trys: [], ops: [] },
53
+ f,
54
+ y,
55
+ t,
56
+ g;
57
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
58
+ return this;
59
+ }), g;
60
+ function verb(n) {
61
+ return function (v) {
62
+ return step([n, v]);
63
+ };
64
+ }
65
+ function step(op) {
66
+ if (f) throw new TypeError("Generator is already executing.");
67
+ while (_) {
68
+ try {
69
+ 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;
70
+ if (y = 0, t) op = [op[0] & 2, t.value];
71
+ switch (op[0]) {
72
+ case 0:case 1:
73
+ t = op;break;
74
+ case 4:
75
+ _.label++;return { value: op[1], done: false };
76
+ case 5:
77
+ _.label++;y = op[1];op = [0];continue;
78
+ case 7:
79
+ op = _.ops.pop();_.trys.pop();continue;
80
+ default:
81
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
82
+ _ = 0;continue;
83
+ }
84
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
85
+ _.label = op[1];break;
86
+ }
87
+ if (op[0] === 6 && _.label < t[1]) {
88
+ _.label = t[1];t = op;break;
89
+ }
90
+ if (t && _.label < t[2]) {
91
+ _.label = t[2];_.ops.push(op);break;
92
+ }
93
+ if (t[2]) _.ops.pop();
94
+ _.trys.pop();continue;
95
+ }
96
+ op = body.call(thisArg, _);
97
+ } catch (e) {
98
+ op = [6, e];y = 0;
99
+ } finally {
100
+ f = t = 0;
101
+ }
102
+ }if (op[0] & 5) throw op[1];return { value: op[0] ? op[1] : void 0, done: true };
103
+ }
104
+ };
105
+ Object.defineProperty(exports, "__esModule", { value: true });
106
+ exports.couldStartMultiparty = exports.MultiParty = exports.MULTI_PARTY_EVENTS = exports.maxParticipantsNumber = exports.participateDomId = void 0;
107
+ var MediaCapabilitiesHelper_1 = require("./MediaCapabilitiesHelper");
108
+ var MediaTracer_1 = require("../MediaUtils/MediaTracer");
109
+ var events_1 = require("events");
110
+ var trace = MediaTracer_1.getMediaTracer('Multiparty');
111
+ exports.participateDomId = 'participate';
112
+ exports.maxParticipantsNumber = 2;
113
+ var MULTI_PARTY_EVENTS;
114
+ (function (MULTI_PARTY_EVENTS) {
115
+ MULTI_PARTY_EVENTS["connectFailed"] = "connectFailed";
116
+ MULTI_PARTY_EVENTS["streamDestroyed"] = "streamDestroyed";
117
+ MULTI_PARTY_EVENTS["connectionCreated"] = "connectionCreated";
118
+ MULTI_PARTY_EVENTS["connectionDestroyed"] = "connectionDestroyed";
119
+ MULTI_PARTY_EVENTS["streamCreated"] = "streamCreated";
120
+ })(MULTI_PARTY_EVENTS = exports.MULTI_PARTY_EVENTS || (exports.MULTI_PARTY_EVENTS = {}));
121
+ var MultiParty = /** @class */function (_super) {
122
+ __extends(MultiParty, _super);
123
+ function MultiParty(settings) {
124
+ var _this = _super.call(this) || this;
125
+ _this.settings = settings;
126
+ return _this;
127
+ }
128
+ return MultiParty;
129
+ }(events_1.EventEmitter);
130
+ exports.MultiParty = MultiParty;
131
+ var couldStartMultiparty = function couldStartMultiparty() {
132
+ return __awaiter(void 0, void 0, void 0, function () {
133
+ var mediaCapabilitiesHelper, err_1;
134
+ return __generator(this, function (_a) {
135
+ switch (_a.label) {
136
+ case 0:
137
+ _a.trys.push([0, 2,, 3]);
138
+ return [4 /*yield*/, MediaCapabilitiesHelper_1.MediaCapabilitiesHelper.init()];
139
+ case 1:
140
+ mediaCapabilitiesHelper = _a.sent();
141
+ return [2 /*return*/, mediaCapabilitiesHelper.hasWebRTC()];
142
+ case 2:
143
+ err_1 = _a.sent();
144
+ trace.error(JSON.stringify(err_1));
145
+ return [2 /*return*/, false];
146
+ case 3:
147
+ return [2 /*return*/];
148
+ }
149
+ });
150
+ });
151
+ };
152
+ exports.couldStartMultiparty = couldStartMultiparty;
153
+
154
+ //# sourceMappingURL=MultiParty.js.map
155
+ //# sourceMappingURL=MultiParty.js.map
@@ -0,0 +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"]}
@@ -0,0 +1,2 @@
1
+ import { ISessionSettings } from './Contracts';
2
+ export declare const createMultiParty: (settings: ISessionSettings) => any;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/MultiParty/MultipartyFactory.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,gBAAgB,EAAC,MAAM,aAAa,CAAC;AAE7C,eAAO,MAAM,gBAAgB,aAAc,gBAAgB,KAAG,GAM7D,CAAC","file":"MultipartyFactory.d.ts","sourcesContent":["import {MediaServiceType} from '../MediaConstants';\nimport {OpentokMultiparty} from './OpentokMultiparty';\nimport {ISessionSettings} from './Contracts';\n\nexport const createMultiParty = (settings: ISessionSettings): any => {\n if (settings.mediaSessionType === MediaServiceType.OPENTOK) {\n return new OpentokMultiparty(settings);\n }\n\n throw new Error('NOT_SUPPORTED');\n};\n"]}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.createMultiParty = void 0;
5
+ var MediaConstants_1 = require("../MediaConstants");
6
+ var OpentokMultiparty_1 = require("./OpentokMultiparty");
7
+ var createMultiParty = function createMultiParty(settings) {
8
+ if (settings.mediaSessionType === MediaConstants_1.MediaServiceType.OPENTOK) {
9
+ return new OpentokMultiparty_1.OpentokMultiparty(settings);
10
+ }
11
+ throw new Error('NOT_SUPPORTED');
12
+ };
13
+ exports.createMultiParty = createMultiParty;
14
+ //# sourceMappingURL=MultipartyFactory.js.map
15
+
16
+ //# sourceMappingURL=MultipartyFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["MultiParty/MultipartyFactory.js","../src/MultiParty/MultipartyFactory.ts"],"names":["Object","defineProperty","exports","value","createMultiParty","MediaConstants_1","require","OpentokMultiparty_1","settings","mediaSessionType","MediaServiceType","OPENTOK","OpentokMultiparty","Error"],"mappings":"AAAA;;AACAA,OAAOC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C,EAAEC,OAAO,IAAT,EAA7C;AACAD,QAAQE,gBAAR,GAA2B,KAAK,CAAhC;ACFA,IAAAC,mBAAAC,QAAA,mBAAA,CAAA;AACA,IAAAC,sBAAAD,QAAA,qBAAA,CAAA;AAGO,IAAMF,mBAAmB,SAAnBA,gBAAmB,CAACI,QAAD,EAA2B;AACvD,QAAIA,SAASC,gBAAT,KAA8BJ,iBAAAK,gBAAA,CAAiBC,OAAnD,EAA4D;AACxD,eAAO,IAAIJ,oBAAAK,iBAAJ,CAAsBJ,QAAtB,CAAP;AACH;AAED,UAAM,IAAIK,KAAJ,CAAU,eAAV,CAAN;AACH,CANM;AAAMX,QAAAE,gBAAA,GAAgBA,gBAAhB","file":"MultipartyFactory.js","sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createMultiParty = void 0;\nvar MediaConstants_1 = require(\"../MediaConstants\");\nvar OpentokMultiparty_1 = require(\"./OpentokMultiparty\");\nvar createMultiParty = function (settings) {\n if (settings.mediaSessionType === MediaConstants_1.MediaServiceType.OPENTOK) {\n return new OpentokMultiparty_1.OpentokMultiparty(settings);\n }\n throw new Error('NOT_SUPPORTED');\n};\nexports.createMultiParty = createMultiParty;\n","import {MediaServiceType} from '../MediaConstants';\nimport {OpentokMultiparty} from './OpentokMultiparty';\nimport {ISessionSettings} from './Contracts';\n\nexport const createMultiParty = (settings: ISessionSettings): any => {\n if (settings.mediaSessionType === MediaServiceType.OPENTOK) {\n return new OpentokMultiparty(settings);\n }\n\n throw new Error('NOT_SUPPORTED');\n};\n"]}
@@ -0,0 +1,24 @@
1
+ import { MultiParty } from './MultiParty';
2
+ import { ICredentials, ISessionSettings } from './Contracts';
3
+ export declare class OpentokMultiparty extends MultiParty {
4
+ subscribers: Array<any>;
5
+ session: any;
6
+ currentPublisher: any;
7
+ credentials: any;
8
+ get ownConnectionId(): string | boolean;
9
+ connect: (credentials: ICredentials) => void;
10
+ disconnect: () => void;
11
+ couldStartPublishVideo: (settings: ISessionSettings) => Promise<boolean | Error>;
12
+ couldStartPublishAudio: (settings: ISessionSettings) => Promise<boolean | Error>;
13
+ createPublisher: (settingsForPublisher: ISessionSettings) => Promise<void>;
14
+ publishAudio: (value: boolean) => Promise<void>;
15
+ publishVideo: (value: boolean) => Promise<void>;
16
+ initPublisher: (settings: ISessionSettings) => void;
17
+ streamCreatedHandler: (event: {
18
+ stream: any;
19
+ }) => void;
20
+ streamDestroyedHandler: (event: any) => void;
21
+ connectionCreatedHandler: (event: any) => void;
22
+ connectionDestroyedHandler: (event: any) => void;
23
+ traceError: (error: any) => void;
24
+ }