@techsee/techsee-media-service 999.19.50-alphagb2 → 999.20.0-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.
- package/lib/MultiParty/DetectWebRtcService.d.ts +16 -0
- package/lib/MultiParty/DetectWebRtcService.d.ts.map +1 -0
- package/lib/MultiParty/DetectWebRtcService.js +63 -0
- package/lib/MultiParty/DetectWebRtcService.js.map +1 -0
- package/lib/MultiParty/MediaCapabilitiesHelper.d.ts +10 -0
- package/lib/MultiParty/MediaCapabilitiesHelper.d.ts.map +1 -0
- package/lib/MultiParty/MediaCapabilitiesHelper.js +140 -0
- package/lib/MultiParty/MediaCapabilitiesHelper.js.map +1 -0
- package/lib/MultiParty/MultiParty.d.ts +12 -0
- package/lib/MultiParty/MultiParty.d.ts.map +1 -0
- package/lib/MultiParty/MultiParty.js +130 -0
- package/lib/MultiParty/MultiParty.js.map +1 -0
- package/lib/MultiParty/OpentokMultiparty.d.ts +27 -0
- package/lib/MultiParty/OpentokMultiparty.d.ts.map +1 -0
- package/lib/MultiParty/OpentokMultiparty.js +121 -0
- package/lib/MultiParty/OpentokMultiparty.js.map +1 -0
- package/lib/oldCode/tracer.js +1 -1
- package/lib/oldCode/tracer.js.map +1 -1
- package/lib/oldCode/utils/ImageFixer.js +1 -1
- package/lib/oldCode/utils/ImageFixer.js.map +1 -1
- package/lib/oldCode/webrtc/temasys/adapter.js +1 -2
- package/lib/oldCode/webrtc/temasys/adapter.js.map +1 -1
- package/package.json +5 -3
|
@@ -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,10 @@
|
|
|
1
|
+
export declare class MediaCapabilitiesHelper {
|
|
2
|
+
private static detectWebRtcService;
|
|
3
|
+
private static webRtcSupportInfo;
|
|
4
|
+
private static mediaCapabilitiesHelper;
|
|
5
|
+
static init(): Promise<MediaCapabilitiesHelper>;
|
|
6
|
+
hasCamera(): boolean;
|
|
7
|
+
hasMicrophone(): boolean;
|
|
8
|
+
hasWebRTC(): boolean;
|
|
9
|
+
hasGetUserMediaSupported(): boolean;
|
|
10
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/MultiParty/MediaCapabilitiesHelper.ts"],"names":[],"mappings":"AAMA,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;WAE5C,IAAI,IAAI,OAAO,CAAC,uBAAuB,CAAC;IAiBrD,SAAS,IAAI,OAAO;IAIpB,aAAa,IAAI,OAAO;IAIxB,SAAS,IAAI,OAAO;IAIpB,wBAAwB,IAAI,OAAO;CAiB7C","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';\nconst trace = getMediaTracer('MediaCapabilitiesHelper');\n\nexport class MediaCapabilitiesHelper {\n private static detectWebRtcService: DetectWebRtcService;\n private static webRtcSupportInfo: ClientWebRtcInfo | undefined;\n private static mediaCapabilitiesHelper: MediaCapabilitiesHelper;\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 if (!this.mediaCapabilitiesHelper) {\n this.mediaCapabilitiesHelper = new MediaCapabilitiesHelper();\n }\n\n return this.mediaCapabilitiesHelper;\n\n } catch (err) {\n trace.error(JSON.stringify(err));\n\n throw err;\n }\n }\n public hasCamera(): boolean {\n return MediaCapabilitiesHelper.webRtcSupportInfo!.isWebsiteHasWebcamPermissions && this.hasGetUserMediaSupported();\n }\n\n public hasMicrophone(): boolean {\n return MediaCapabilitiesHelper.webRtcSupportInfo!.isWebsiteHasMicrophonePermissions && 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 // videoPlayback() {\n // console.log();\n // }\n //\n //\n // devicesList() {\n // console.log();\n // }\n //\n // hasSwitchCameras(): boolean {\n // return true;\n // }\n //\n}\n"]}
|
|
@@ -0,0 +1,140 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
87
|
+
exports.MediaCapabilitiesHelper = void 0;
|
|
88
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
89
|
+
var MediaTracer_1 = require("../MediaUtils/MediaTracer");
|
|
90
|
+
var DetectWebRtcService_1 = require("./DetectWebRtcService");
|
|
91
|
+
var trace = MediaTracer_1.getMediaTracer('MediaCapabilitiesHelper');
|
|
92
|
+
var MediaCapabilitiesHelper = /** @class */function () {
|
|
93
|
+
function MediaCapabilitiesHelper() {}
|
|
94
|
+
MediaCapabilitiesHelper.init = function () {
|
|
95
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
96
|
+
var _a, _b, err_1;
|
|
97
|
+
return __generator(this, function (_c) {
|
|
98
|
+
switch (_c.label) {
|
|
99
|
+
case 0:
|
|
100
|
+
_c.trys.push([0, 3,, 4]);
|
|
101
|
+
_a = this;
|
|
102
|
+
return [4 /*yield*/, new DetectWebRtcService_1.DetectWebRtcService(DetectWebRtcService_1.DETECT_RTC_ADVISED_TIMEOUT)];
|
|
103
|
+
case 1:
|
|
104
|
+
_a.detectWebRtcService = _c.sent();
|
|
105
|
+
_b = this;
|
|
106
|
+
return [4 /*yield*/, this.detectWebRtcService.getWebRtcInfo()];
|
|
107
|
+
case 2:
|
|
108
|
+
_b.webRtcSupportInfo = _c.sent();
|
|
109
|
+
if (!this.mediaCapabilitiesHelper) {
|
|
110
|
+
this.mediaCapabilitiesHelper = new MediaCapabilitiesHelper();
|
|
111
|
+
}
|
|
112
|
+
return [2 /*return*/, this.mediaCapabilitiesHelper];
|
|
113
|
+
case 3:
|
|
114
|
+
err_1 = _c.sent();
|
|
115
|
+
trace.error(JSON.stringify(err_1));
|
|
116
|
+
throw err_1;
|
|
117
|
+
case 4:
|
|
118
|
+
return [2 /*return*/];
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
};
|
|
123
|
+
MediaCapabilitiesHelper.prototype.hasCamera = function () {
|
|
124
|
+
return MediaCapabilitiesHelper.webRtcSupportInfo.isWebsiteHasWebcamPermissions && this.hasGetUserMediaSupported();
|
|
125
|
+
};
|
|
126
|
+
MediaCapabilitiesHelper.prototype.hasMicrophone = function () {
|
|
127
|
+
return MediaCapabilitiesHelper.webRtcSupportInfo.isWebsiteHasMicrophonePermissions && this.hasGetUserMediaSupported();
|
|
128
|
+
};
|
|
129
|
+
MediaCapabilitiesHelper.prototype.hasWebRTC = function () {
|
|
130
|
+
return MediaCapabilitiesHelper.webRtcSupportInfo.isWebRTCSupported;
|
|
131
|
+
};
|
|
132
|
+
MediaCapabilitiesHelper.prototype.hasGetUserMediaSupported = function () {
|
|
133
|
+
return MediaCapabilitiesHelper.webRtcSupportInfo.isGetUserMediaSupported;
|
|
134
|
+
};
|
|
135
|
+
return MediaCapabilitiesHelper;
|
|
136
|
+
}();
|
|
137
|
+
exports.MediaCapabilitiesHelper = MediaCapabilitiesHelper;
|
|
138
|
+
|
|
139
|
+
//# sourceMappingURL=MediaCapabilitiesHelper.js.map
|
|
140
|
+
//# 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","Object","defineProperty","exports","MediaCapabilitiesHelper","MediaTracer_1","require","DetectWebRtcService_1","trace","getMediaTracer","init","_a","_b","err_1","_c","DetectWebRtcService","DETECT_RTC_ADVISED_TIMEOUT","detectWebRtcService","getWebRtcInfo","webRtcSupportInfo","mediaCapabilitiesHelper","error","JSON","stringify","prototype","hasCamera","isWebsiteHasWebcamPermissions","hasGetUserMediaSupported","hasMicrophone","isWebsiteHasMicrophonePermissions","hasWebRTC","isWebRTCSupported","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};\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 trace = MediaTracer_1.getMediaTracer('MediaCapabilitiesHelper');\nvar MediaCapabilitiesHelper = /** @class */ (function () {\n function MediaCapabilitiesHelper() {\n }\n MediaCapabilitiesHelper.init = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _a, _b, err_1;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _c.trys.push([0, 3, , 4]);\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 if (!this.mediaCapabilitiesHelper) {\n this.mediaCapabilitiesHelper = new MediaCapabilitiesHelper();\n }\n return [2 /*return*/, this.mediaCapabilitiesHelper];\n case 3:\n err_1 = _c.sent();\n trace.error(JSON.stringify(err_1));\n throw err_1;\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n MediaCapabilitiesHelper.prototype.hasCamera = function () {\n return MediaCapabilitiesHelper.webRtcSupportInfo.isWebsiteHasWebcamPermissions && this.hasGetUserMediaSupported();\n };\n MediaCapabilitiesHelper.prototype.hasMicrophone = function () {\n return MediaCapabilitiesHelper.webRtcSupportInfo.isWebsiteHasMicrophonePermissions && 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,12 @@
|
|
|
1
|
+
import { CameraTypes } from '../MediaConstants';
|
|
2
|
+
export declare const participateDomId = "participate";
|
|
3
|
+
export declare const maxParticipantsNumber = 2;
|
|
4
|
+
export declare abstract class MultiParty {
|
|
5
|
+
abstract session: any;
|
|
6
|
+
abstract subscribers: Array<any> | undefined;
|
|
7
|
+
abstract connect(...args: any[]): any;
|
|
8
|
+
}
|
|
9
|
+
export declare const couldStartMultiparty: (settings: {
|
|
10
|
+
defaultCamera: CameraTypes;
|
|
11
|
+
isAudioSession: boolean;
|
|
12
|
+
}) => Promise<boolean>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/MultiParty/MultiParty.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,WAAW,EAAC,MAAM,mBAAmB,CAAC;AAI9C,eAAO,MAAM,gBAAgB,gBAAgB,CAAC;AAC9C,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAEvC,8BAAsB,UAAU;IAC5B,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG;CACxC;AAED,eAAO,MAAM,oBAAoB,aAAoB;IAAE,aAAa,EAAE,WAAW,CAAC;IAAC,cAAc,EAAE,OAAO,CAAA;CAAE,KAAG,QAAQ,OAAO,CAwB7H,CAAC","file":"MultiParty.d.ts","sourcesContent":["import {MediaCapabilitiesHelper} from './MediaCapabilitiesHelper';\nimport {getMediaTracer} from '../MediaUtils/MediaTracer';\nimport {CameraTypes} from '../MediaConstants';\n\nconst trace = getMediaTracer('Multiparty');\n\nexport const participateDomId = 'participate';\nexport const maxParticipantsNumber = 2;\n\nexport abstract class MultiParty {\n abstract session: any;\n abstract subscribers: Array<any> | undefined;\n abstract connect(...args: any[]): any;\n}\n\nexport const couldStartMultiparty = async (settings: { defaultCamera: CameraTypes, isAudioSession: boolean }): Promise<boolean> => {\n try {\n const mediaCapabilitiesHelper = await MediaCapabilitiesHelper.init();\n\n if (!mediaCapabilitiesHelper.hasWebRTC() || !mediaCapabilitiesHelper.hasGetUserMediaSupported) {\n return false;\n }\n\n if (settings.isAudioSession) {\n return (settings.defaultCamera !== CameraTypes.NONE)\n ? mediaCapabilitiesHelper.hasCamera() && mediaCapabilitiesHelper.hasMicrophone()\n : mediaCapabilitiesHelper.hasMicrophone();\n }\n\n return (settings.defaultCamera !== CameraTypes.NONE)\n ? mediaCapabilitiesHelper.hasCamera()\n : false;\n\n } catch (err) {\n trace.error(JSON.stringify(err));\n //todo: send event emitter\n\n return false;\n }\n};\n"]}
|
|
@@ -0,0 +1,130 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
87
|
+
exports.couldStartMultiparty = exports.MultiParty = exports.maxParticipantsNumber = exports.participateDomId = void 0;
|
|
88
|
+
var MediaCapabilitiesHelper_1 = require("./MediaCapabilitiesHelper");
|
|
89
|
+
var MediaTracer_1 = require("../MediaUtils/MediaTracer");
|
|
90
|
+
var MediaConstants_1 = require("../MediaConstants");
|
|
91
|
+
var trace = MediaTracer_1.getMediaTracer('Multiparty');
|
|
92
|
+
exports.participateDomId = 'participate';
|
|
93
|
+
exports.maxParticipantsNumber = 2;
|
|
94
|
+
var MultiParty = /** @class */function () {
|
|
95
|
+
function MultiParty() {}
|
|
96
|
+
return MultiParty;
|
|
97
|
+
}();
|
|
98
|
+
exports.MultiParty = MultiParty;
|
|
99
|
+
var couldStartMultiparty = function couldStartMultiparty(settings) {
|
|
100
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
101
|
+
var mediaCapabilitiesHelper, err_1;
|
|
102
|
+
return __generator(this, function (_a) {
|
|
103
|
+
switch (_a.label) {
|
|
104
|
+
case 0:
|
|
105
|
+
_a.trys.push([0, 2,, 3]);
|
|
106
|
+
return [4 /*yield*/, MediaCapabilitiesHelper_1.MediaCapabilitiesHelper.init()];
|
|
107
|
+
case 1:
|
|
108
|
+
mediaCapabilitiesHelper = _a.sent();
|
|
109
|
+
if (!mediaCapabilitiesHelper.hasWebRTC() || !mediaCapabilitiesHelper.hasGetUserMediaSupported) {
|
|
110
|
+
return [2 /*return*/, false];
|
|
111
|
+
}
|
|
112
|
+
if (settings.isAudioSession) {
|
|
113
|
+
return [2 /*return*/, settings.defaultCamera !== MediaConstants_1.CameraTypes.NONE ? mediaCapabilitiesHelper.hasCamera() && mediaCapabilitiesHelper.hasMicrophone() : mediaCapabilitiesHelper.hasMicrophone()];
|
|
114
|
+
}
|
|
115
|
+
return [2 /*return*/, settings.defaultCamera !== MediaConstants_1.CameraTypes.NONE ? mediaCapabilitiesHelper.hasCamera() : false];
|
|
116
|
+
case 2:
|
|
117
|
+
err_1 = _a.sent();
|
|
118
|
+
trace.error(JSON.stringify(err_1));
|
|
119
|
+
//todo: send event emitter
|
|
120
|
+
return [2 /*return*/, false];
|
|
121
|
+
case 3:
|
|
122
|
+
return [2 /*return*/];
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
});
|
|
126
|
+
};
|
|
127
|
+
exports.couldStartMultiparty = couldStartMultiparty;
|
|
128
|
+
|
|
129
|
+
//# sourceMappingURL=MultiParty.js.map
|
|
130
|
+
//# sourceMappingURL=MultiParty.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["MultiParty/MultiParty.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","Object","defineProperty","exports","couldStartMultiparty","MultiParty","maxParticipantsNumber","participateDomId","MediaCapabilitiesHelper_1","require","MediaTracer_1","MediaConstants_1","trace","getMediaTracer","settings","mediaCapabilitiesHelper","err_1","_a","MediaCapabilitiesHelper","init","hasWebRTC","hasGetUserMediaSupported","isAudioSession","defaultCamera","CameraTypes","NONE","hasCamera","hasMicrophone","error","JSON","stringify"],"mappings":"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","file":"MultiParty.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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.couldStartMultiparty = exports.MultiParty = exports.maxParticipantsNumber = exports.participateDomId = void 0;\nvar MediaCapabilitiesHelper_1 = require(\"./MediaCapabilitiesHelper\");\nvar MediaTracer_1 = require(\"../MediaUtils/MediaTracer\");\nvar MediaConstants_1 = require(\"../MediaConstants\");\nvar trace = MediaTracer_1.getMediaTracer('Multiparty');\nexports.participateDomId = 'participate';\nexports.maxParticipantsNumber = 2;\nvar MultiParty = /** @class */ (function () {\n function MultiParty() {\n }\n return MultiParty;\n}());\nexports.MultiParty = MultiParty;\nvar couldStartMultiparty = function (settings) { 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 if (!mediaCapabilitiesHelper.hasWebRTC() || !mediaCapabilitiesHelper.hasGetUserMediaSupported) {\n return [2 /*return*/, false];\n }\n if (settings.isAudioSession) {\n return [2 /*return*/, (settings.defaultCamera !== MediaConstants_1.CameraTypes.NONE)\n ? mediaCapabilitiesHelper.hasCamera() && mediaCapabilitiesHelper.hasMicrophone()\n : mediaCapabilitiesHelper.hasMicrophone()];\n }\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 //todo: send event emitter\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,27 @@
|
|
|
1
|
+
import { MultiParty } from './MultiParty';
|
|
2
|
+
import { CameraTypes } from '../MediaConstants';
|
|
3
|
+
export { couldStartMultiparty } from './MultiParty';
|
|
4
|
+
export declare class OpentokMultiparty extends MultiParty {
|
|
5
|
+
subscribers: Array<any>;
|
|
6
|
+
session: any;
|
|
7
|
+
currentPublisher: any;
|
|
8
|
+
credentials: any;
|
|
9
|
+
settings: {
|
|
10
|
+
[name: string]: any;
|
|
11
|
+
};
|
|
12
|
+
constructor(settings: {
|
|
13
|
+
defaultCamera: CameraTypes;
|
|
14
|
+
isAudioSession: boolean;
|
|
15
|
+
});
|
|
16
|
+
connect(credentials: {
|
|
17
|
+
apiKey: string;
|
|
18
|
+
sessionId: string;
|
|
19
|
+
token: string;
|
|
20
|
+
}): void;
|
|
21
|
+
createPublisher(): void;
|
|
22
|
+
streamCreatedHandler(event: {
|
|
23
|
+
stream: any;
|
|
24
|
+
}): void;
|
|
25
|
+
get ownConnectionId(): string | undefined;
|
|
26
|
+
traceError: (error: Error) => void;
|
|
27
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/MultiParty/OpentokMultiparty.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAA0C,MAAM,cAAc,CAAC;AACjF,OAAO,EAAC,WAAW,EAAC,MAAM,mBAAmB,CAAC;AAM9C,OAAO,EAAC,oBAAoB,EAAC,MAAM,cAAc,CAAC;AAQlD,qBAAa,iBAAkB,SAAQ,UAAU;IAE7C,WAAW,EAAE,KAAK,CAAC,GAAG,CAAC,CAAM;IAC7B,OAAO,EAAE,GAAG,CAAC;IACb,gBAAgB,EAAE,GAAG,CAAC;IACtB,WAAW,EAAE,GAAG,CAAC;IACjB,QAAQ,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;gBAEtB,QAAQ,EAAE;QAAE,aAAa,EAAE,WAAW,CAAC;QAAC,cAAc,EAAE,OAAO,CAAA;KAAE;IAK7E,OAAO,CAAC,WAAW,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IA0BhF,eAAe,IAAI,IAAI;IAavB,oBAAoB,CAAC,KAAK,EAAE;QAAE,MAAM,EAAE,GAAG,CAAA;KAAE,GAAG,IAAI;IAsBlD,IAAI,eAAe,IAAI,MAAM,GAAG,SAAS,CAMxC;IAED,UAAU,UAAW,KAAK,KAAG,IAAI,CAE/B;CAEL","file":"OpentokMultiparty.d.ts","sourcesContent":["import {MultiParty, participateDomId, maxParticipantsNumber} from './MultiParty';\nimport {CameraTypes} from '../MediaConstants';\nimport {getMediaTracer} from '../MediaUtils/MediaTracer';\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst OT = require('@opentok/client');\nconst trace = getMediaTracer('Multiparty');\n\nexport {couldStartMultiparty} from './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 //todo: define interfaces\n subscribers: Array<any> = [];\n session: any;\n currentPublisher: any;\n credentials: any;\n settings: { [name: string]: any };\n\n constructor(settings: { defaultCamera: CameraTypes, isAudioSession: boolean }) {\n super();\n this.settings = settings;\n }\n\n connect(credentials: { apiKey: string, sessionId: string, token: string }): void {\n this.credentials = credentials;\n try {\n this.session = OT.initSession(credentials.apiKey, credentials.sessionId);\n } catch (err) {\n trace.error(JSON.stringify(err));\n\n return;\n }\n\n this.session.on('streamCreated', (event: { stream: any }) => this.streamCreatedHandler(event));\n //todo: check camera, audio to know which session to start\n this.session.connect(this.credentials.token, (error: any) => {\n if (error) {\n //todo: add event emitter\n this.traceError(error);\n this.session.off();\n this.session = undefined;\n } else if (this.settings.defaultCamera.NONE) {\n trace.info('camera is none, can not create publisher');\n } else {\n this.createPublisher();\n }\n });\n }\n\n createPublisher(): void {\n const properties = {\n insertMode: 'append',\n width: '200',\n height: '200',\n facingMode: this.settings.defaultCamera.FRONT ? OpentokFacingMode.USER : OpentokFacingMode.ENVIRONMENT\n };\n\n this.currentPublisher = OT.initPublisher(`${participateDomId}1`, properties, this.traceError);\n\n this.session.publish(this.currentPublisher, this.traceError);\n }\n\n streamCreatedHandler(event: { stream: any }): void {\n const currentConnection = event.stream.connection;\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 if (this.ownConnectionId !== currentConnection.connectionId) {\n this.subscribers.push({\n connectionId: currentConnection.connectionId,\n clientRole: currentConnection?.data?.clientRole ? JSON.parse(currentConnection.data).clientRole : 'default' //fixme temp workaround for BE\n });\n\n //fixme: use width and height passed in settings\n const properties = {\n insertMode: 'append',\n width: '200',\n height: '200'\n };\n\n this.session.subscribe(event.stream, `${participateDomId}${this.subscribers.length}`, properties, this.traceError);\n }\n }\n\n get ownConnectionId(): string | undefined {\n if (this.session) {\n return this.session!.connection!.connectionId;\n }\n\n return undefined;\n }\n\n traceError = (error: Error): void => {\n trace.error(error?.message);\n };\n\n}\n"]}
|
|
@@ -0,0 +1,121 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
|
+
exports.OpentokMultiparty = exports.couldStartMultiparty = void 0;
|
|
24
|
+
var MultiParty_1 = require("./MultiParty");
|
|
25
|
+
var MediaTracer_1 = require("../MediaUtils/MediaTracer");
|
|
26
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
27
|
+
var OT = require('@opentok/client');
|
|
28
|
+
var trace = MediaTracer_1.getMediaTracer('Multiparty');
|
|
29
|
+
var MultiParty_2 = require("./MultiParty");
|
|
30
|
+
Object.defineProperty(exports, "couldStartMultiparty", { enumerable: true, get: function get() {
|
|
31
|
+
return MultiParty_2.couldStartMultiparty;
|
|
32
|
+
} });
|
|
33
|
+
// The preferred camera position to use for the video source
|
|
34
|
+
var OpentokFacingMode;
|
|
35
|
+
(function (OpentokFacingMode) {
|
|
36
|
+
OpentokFacingMode["USER"] = "user";
|
|
37
|
+
OpentokFacingMode["ENVIRONMENT"] = "environment";
|
|
38
|
+
})(OpentokFacingMode || (OpentokFacingMode = {}));
|
|
39
|
+
var OpentokMultiparty = /** @class */function (_super) {
|
|
40
|
+
__extends(OpentokMultiparty, _super);
|
|
41
|
+
function OpentokMultiparty(settings) {
|
|
42
|
+
var _this = _super.call(this) || this;
|
|
43
|
+
//todo: define interfaces
|
|
44
|
+
_this.subscribers = [];
|
|
45
|
+
_this.traceError = function (error) {
|
|
46
|
+
trace.error(error === null || error === void 0 ? void 0 : error.message);
|
|
47
|
+
};
|
|
48
|
+
_this.settings = settings;
|
|
49
|
+
return _this;
|
|
50
|
+
}
|
|
51
|
+
OpentokMultiparty.prototype.connect = function (credentials) {
|
|
52
|
+
var _this = this;
|
|
53
|
+
this.credentials = credentials;
|
|
54
|
+
try {
|
|
55
|
+
this.session = OT.initSession(credentials.apiKey, credentials.sessionId);
|
|
56
|
+
} catch (err) {
|
|
57
|
+
trace.error(JSON.stringify(err));
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
this.session.on('streamCreated', function (event) {
|
|
61
|
+
return _this.streamCreatedHandler(event);
|
|
62
|
+
});
|
|
63
|
+
//todo: check camera, audio to know which session to start
|
|
64
|
+
this.session.connect(this.credentials.token, function (error) {
|
|
65
|
+
if (error) {
|
|
66
|
+
//todo: add event emitter
|
|
67
|
+
_this.traceError(error);
|
|
68
|
+
_this.session.off();
|
|
69
|
+
_this.session = undefined;
|
|
70
|
+
} else if (_this.settings.defaultCamera.NONE) {
|
|
71
|
+
trace.info('camera is none, can not create publisher');
|
|
72
|
+
} else {
|
|
73
|
+
_this.createPublisher();
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
};
|
|
77
|
+
OpentokMultiparty.prototype.createPublisher = function () {
|
|
78
|
+
var properties = {
|
|
79
|
+
insertMode: 'append',
|
|
80
|
+
width: '200',
|
|
81
|
+
height: '200',
|
|
82
|
+
facingMode: this.settings.defaultCamera.FRONT ? OpentokFacingMode.USER : OpentokFacingMode.ENVIRONMENT
|
|
83
|
+
};
|
|
84
|
+
this.currentPublisher = OT.initPublisher(MultiParty_1.participateDomId + "1", properties, this.traceError);
|
|
85
|
+
this.session.publish(this.currentPublisher, this.traceError);
|
|
86
|
+
};
|
|
87
|
+
OpentokMultiparty.prototype.streamCreatedHandler = function (event) {
|
|
88
|
+
var _a;
|
|
89
|
+
var currentConnection = event.stream.connection;
|
|
90
|
+
if (this.subscribers.length >= MultiParty_1.maxParticipantsNumber - 1) {
|
|
91
|
+
trace.info("a new subscriber cannot be added, as the number of participants reached its limit: " + MultiParty_1.maxParticipantsNumber);
|
|
92
|
+
} else if (this.ownConnectionId !== currentConnection.connectionId) {
|
|
93
|
+
this.subscribers.push({
|
|
94
|
+
connectionId: currentConnection.connectionId,
|
|
95
|
+
clientRole: ((_a = currentConnection === null || currentConnection === void 0 ? void 0 : currentConnection.data) === null || _a === void 0 ? void 0 : _a.clientRole) ? JSON.parse(currentConnection.data).clientRole : 'default' //fixme temp workaround for BE
|
|
96
|
+
});
|
|
97
|
+
//fixme: use width and height passed in settings
|
|
98
|
+
var properties = {
|
|
99
|
+
insertMode: 'append',
|
|
100
|
+
width: '200',
|
|
101
|
+
height: '200'
|
|
102
|
+
};
|
|
103
|
+
this.session.subscribe(event.stream, "" + MultiParty_1.participateDomId + this.subscribers.length, properties, this.traceError);
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
Object.defineProperty(OpentokMultiparty.prototype, "ownConnectionId", {
|
|
107
|
+
get: function get() {
|
|
108
|
+
if (this.session) {
|
|
109
|
+
return this.session.connection.connectionId;
|
|
110
|
+
}
|
|
111
|
+
return undefined;
|
|
112
|
+
},
|
|
113
|
+
enumerable: false,
|
|
114
|
+
configurable: true
|
|
115
|
+
});
|
|
116
|
+
return OpentokMultiparty;
|
|
117
|
+
}(MultiParty_1.MultiParty);
|
|
118
|
+
exports.OpentokMultiparty = OpentokMultiparty;
|
|
119
|
+
//# sourceMappingURL=OpentokMultiparty.js.map
|
|
120
|
+
|
|
121
|
+
//# sourceMappingURL=OpentokMultiparty.js.map
|