@techsee/techsee-media-service 10.0.0 → 11.0.0

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.
Files changed (53) hide show
  1. package/lib/MultiParty/opentok/OpentokSubscriber.js +0 -2
  2. package/lib/MultiParty/opentok/OpentokSubscriber.js.map +1 -1
  3. package/package.json +5 -3
  4. package/lib/oldCode/constants.js +0 -25
  5. package/lib/oldCode/constants.js.map +0 -1
  6. package/lib/oldCode/event-emitter.js +0 -62
  7. package/lib/oldCode/event-emitter.js.map +0 -1
  8. package/lib/oldCode/index.js +0 -60
  9. package/lib/oldCode/index.js.map +0 -1
  10. package/lib/oldCode/opentok/session.js +0 -335
  11. package/lib/oldCode/opentok/session.js.map +0 -1
  12. package/lib/oldCode/opentok/stream.js +0 -324
  13. package/lib/oldCode/opentok/stream.js.map +0 -1
  14. package/lib/oldCode/publisher.js +0 -168
  15. package/lib/oldCode/publisher.js.map +0 -1
  16. package/lib/oldCode/service.js +0 -417
  17. package/lib/oldCode/service.js.map +0 -1
  18. package/lib/oldCode/session.js +0 -132
  19. package/lib/oldCode/session.js.map +0 -1
  20. package/lib/oldCode/stream.js +0 -223
  21. package/lib/oldCode/stream.js.map +0 -1
  22. package/lib/oldCode/subscriber.js +0 -115
  23. package/lib/oldCode/subscriber.js.map +0 -1
  24. package/lib/oldCode/tracer.d.ts +0 -36
  25. package/lib/oldCode/tracer.d.ts.map +0 -1
  26. package/lib/oldCode/tracer.js +0 -202
  27. package/lib/oldCode/tracer.js.map +0 -1
  28. package/lib/oldCode/utils/ImageFixer.d.ts +0 -1
  29. package/lib/oldCode/utils/ImageFixer.d.ts.map +0 -1
  30. package/lib/oldCode/utils/ImageFixer.js +0 -83
  31. package/lib/oldCode/utils/ImageFixer.js.map +0 -1
  32. package/lib/oldCode/webrtc/constants.js +0 -106
  33. package/lib/oldCode/webrtc/constants.js.map +0 -1
  34. package/lib/oldCode/webrtc/helper.js +0 -225
  35. package/lib/oldCode/webrtc/helper.js.map +0 -1
  36. package/lib/oldCode/webrtc/session-kms.js +0 -573
  37. package/lib/oldCode/webrtc/session-kms.js.map +0 -1
  38. package/lib/oldCode/webrtc/session-loopback.js +0 -354
  39. package/lib/oldCode/webrtc/session-loopback.js.map +0 -1
  40. package/lib/oldCode/webrtc/session-turn.js +0 -927
  41. package/lib/oldCode/webrtc/session-turn.js.map +0 -1
  42. package/lib/oldCode/webrtc/session-turn.v2.js +0 -592
  43. package/lib/oldCode/webrtc/session-turn.v2.js.map +0 -1
  44. package/lib/oldCode/webrtc/session.js +0 -58
  45. package/lib/oldCode/webrtc/session.js.map +0 -1
  46. package/lib/oldCode/webrtc/stream.js +0 -696
  47. package/lib/oldCode/webrtc/stream.js.map +0 -1
  48. package/lib/oldCode/webrtc/temasys/adapter-loader.js +0 -11
  49. package/lib/oldCode/webrtc/temasys/adapter-loader.js.map +0 -1
  50. package/lib/oldCode/webrtc/temasys/adapter.js +0 -5933
  51. package/lib/oldCode/webrtc/temasys/adapter.js.map +0 -1
  52. package/lib/oldCode/webrtc/webrtc-ie-shim.js +0 -3437
  53. package/lib/oldCode/webrtc/webrtc-ie-shim.js.map +0 -1
@@ -1,417 +0,0 @@
1
- "use strict";
2
-
3
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.TsMediaService = exports.EVENTS = void 0;
9
-
10
- var _tsEnvironmentDetect = require("@techsee/techsee-common/lib/helpers/ts-environment-detect");
11
-
12
- var _eventEmitter = require("./event-emitter");
13
-
14
- var _session = require("./session");
15
-
16
- var _session2 = require("./opentok/session");
17
-
18
- var _session3 = require("./webrtc/session");
19
-
20
- var _helper = require("./webrtc/helper");
21
-
22
- var _constants = require("./constants");
23
-
24
- var _constants2 = require("./webrtc/constants");
25
-
26
- var _tracer = require("./tracer");
27
-
28
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
29
-
30
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
31
-
32
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
33
-
34
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
35
-
36
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
37
-
38
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
39
-
40
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
41
-
42
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
43
-
44
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
45
-
46
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
47
-
48
- var tracer = (0, _tracer.getTracer)();
49
- var environmentDetect = new _tsEnvironmentDetect.TsEnvironmentDetect();
50
- var isIE11 = environmentDetect.isIE11();
51
-
52
- if (isIE11) {
53
- require('./webrtc/webrtc-ie-shim.js');
54
- } else if (!(environmentDetect.isChrome() && environmentDetect.majorVersion() < 49)) {
55
- require('webrtc-adapter/src/js/adapter_core'); // eslint-disable-line global-require
56
-
57
- }
58
-
59
- function _isOTDefined() {
60
- try {
61
- return !!OT;
62
- } catch (e) {
63
- return false;
64
- }
65
- }
66
-
67
- function _waitForOT() {
68
- if (_isOTDefined()) {
69
- return Promise.resolve();
70
- }
71
-
72
- var isDefined = false;
73
- return Promise.reduce(new Array(_constants.WAIT_FOR_OPENTOK_INITIALIZATION_MAX_ATTEMPTS), function () {
74
- if (isDefined || _isOTDefined()) {
75
- isDefined = true;
76
- return Promise.resolve();
77
- }
78
-
79
- return Promise.delay(_constants.WAIT_FOR_OPENTOK_INITIALIZATION_INTERVAL);
80
- }, 0).then(function () {
81
- return isDefined || Promise.reject('OT is undefined');
82
- });
83
- }
84
- /**
85
- * @enum SERVICE_EVENTS
86
- */
87
-
88
-
89
- var SERVICE_EVENTS = {
90
- SESSION_CREATED: 'SESSION_CREATED',
91
- EXCEPTION: 'EXCEPTION'
92
- };
93
- exports.EVENTS = SERVICE_EVENTS;
94
- var sessions = [];
95
- var latestLocalStream = null;
96
- var userMediaPromise = null;
97
- /**
98
- * The top of hierarchy and the entry point of the TsMedia Service.
99
- *
100
- * @static
101
- * @class
102
- * @extends EventEmitter
103
- */
104
-
105
- var TsMediaServiceFacade = /*#__PURE__*/function (_EventEmitter) {
106
- _inherits(TsMediaServiceFacade, _EventEmitter);
107
-
108
- var _super = _createSuper(TsMediaServiceFacade);
109
-
110
- function TsMediaServiceFacade() {
111
- var _this;
112
-
113
- _classCallCheck(this, TsMediaServiceFacade);
114
-
115
- _this = _super.call(this);
116
- _this.createLocalMediaStream = _this.createLocalMediaStream.bind(_assertThisInitialized(_this));
117
- _this.destroyLocalMediaStream = _this.destroyLocalMediaStream.bind(_assertThisInitialized(_this));
118
- return _this;
119
- }
120
- /**
121
- * All created sessoins
122
- *
123
- * @member { Object }
124
- * @memberof TsMediaService
125
- * @type { Array<TsMediaSession> }
126
- */
127
-
128
-
129
- _createClass(TsMediaServiceFacade, [{
130
- key: "sessions",
131
- get: function get() {
132
- return sessions;
133
- }
134
- }, {
135
- key: "createLocalMediaStream",
136
- value: function createLocalMediaStream(constraints) {
137
- tracer.trace('createLocalMediaStream');
138
-
139
- if (userMediaPromise) {
140
- return userMediaPromise;
141
- }
142
-
143
- if (latestLocalStream) {
144
- var videoTrack = latestLocalStream.getVideoTracks();
145
-
146
- if (videoTrack.length > 0 && videoTrack[0].readyState === 'live') {
147
- return Promise.resolve(latestLocalStream);
148
- } else {
149
- this.destroyLocalMediaStream();
150
- }
151
- }
152
-
153
- userMediaPromise = new Promise(function (resolve, reject) {
154
- try {
155
- tracer.trace('createLocalMediaStream inside promise');
156
- navigator.mediaDevices.getUserMedia(constraints).then(function (stream) {
157
- latestLocalStream = stream;
158
- userMediaPromise = null;
159
- resolve(stream);
160
- })["catch"](function (err) {
161
- userMediaPromise = null;
162
- reject(err);
163
- });
164
- } catch (e) {
165
- userMediaPromise = null;
166
- reject(e);
167
- }
168
- });
169
- return userMediaPromise;
170
- }
171
- }, {
172
- key: "destroyLocalMediaStream",
173
- value: function destroyLocalMediaStream() {
174
- tracer.trace('Destroy local streams');
175
-
176
- if (latestLocalStream) {
177
- latestLocalStream.getTracks().forEach(function (track) {
178
- track.stop();
179
- });
180
- }
181
-
182
- latestLocalStream = null;
183
- }
184
- }, {
185
- key: "toggleMicrophone",
186
- value: function toggleMicrophone() {
187
- var enableMic = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
188
-
189
- if (!latestLocalStream) {
190
- return Promise.resolve();
191
- }
192
-
193
- var audioTracks = latestLocalStream.getAudioTracks();
194
-
195
- if (audioTracks.length > 0) {
196
- audioTracks[0].enabled = enableMic;
197
- }
198
-
199
- return Promise.resolve();
200
- }
201
- /**
202
- * Enumerate available media devices
203
- *
204
- * @method
205
- * @memberof TsMediaService
206
- * @returns { Promise<Array<MediaDeviceInfo>> } devices list
207
- *
208
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/MediaDeviceInfo | MediaDeviceInfo documentation}
209
- */
210
-
211
- }, {
212
- key: "getDevices",
213
- value: function getDevices() {
214
- if (typeof OT !== 'undefined' && OT && OT.getDevices) {
215
- return new Promise(function (resolve, reject) {
216
- OT.getDevices(function (error, devices) {
217
- if (error) {
218
- return reject(error);
219
- }
220
-
221
- return resolve(devices);
222
- });
223
- });
224
- }
225
-
226
- if (navigator.mediaDevices && navigator.mediaDevices.enumerateDevices) {
227
- return navigator.mediaDevices.enumerateDevices();
228
- }
229
-
230
- return Promise.reject('getDevices is not supported');
231
- }
232
- /**
233
- * Verifies camera access
234
- *
235
- * @method
236
- * @memberof TsMediaService
237
- * @returns { Promise<Object> } returns {stream,constraints} if successful, or rejected promise if failed
238
- *
239
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/MediaDeviceInfo | MediaDeviceInfo documentation}
240
- */
241
-
242
- }, {
243
- key: "verifyCameraAccess",
244
- value: function verifyCameraAccess(deviceOpts) {
245
- return (0, _helper.getHighestResolutionStream)(deviceOpts);
246
- }
247
- }, {
248
- key: "isVideoPlaySupportedOnDevice",
249
- value: function isVideoPlaySupportedOnDevice() {
250
- if (!isIE11) {
251
- return Promise.resolve(true);
252
- }
253
-
254
- if (!!window.WebRTCAdapter) {
255
- return Promise.resolve(true);
256
- }
257
-
258
- if (window.OT && window.OTPlugin && window.OTPlugin.isInstalled && window.OTPlugin.isInstalled()) {
259
- return Promise.resolve(true);
260
- }
261
-
262
- return Promise.resolve(false);
263
- }
264
- /**
265
- * Init WebRTC or OpenTok session depends on required type.
266
- *
267
- * Returns an initialized specific implementation of TsMediaSession interface.
268
- *
269
- * Assuming mobile will be a publisher and not mobile will be a subscriber.
270
- *
271
- * @method
272
- * @memberof TsMediaService
273
- *
274
- * @param { OPENTOK|MEDIASERVER|TURNSERVER } mediaServiceType required implementation
275
- * @param { Boolean } isMobile Whether techsee-mobile or not calls this method.
276
- * @param { Object } resolution constraint to use for video stream
277
- * @param { opentok|tsMediaServer|turnServer } credentials server/service credentials
278
- * @param { Object } deviceOpts requested devices (mainly audio/video device ids)
279
- * @param { Boolean } isLoopback Whether to use loopback webrtc
280
- *
281
- * @returns { Promise<TsMediaSession> }
282
- */
283
-
284
- }, {
285
- key: "initSession",
286
- value: function initSession() {
287
- var _this2 = this;
288
-
289
- var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
290
- isMobile: false,
291
- resolution: '640x480'
292
- },
293
- mediaServiceType = _ref.mediaServiceType,
294
- isMobile = _ref.isMobile,
295
- resolution = _ref.resolution,
296
- credentials = _ref.credentials,
297
- deviceOpts = _ref.deviceOpts,
298
- isLoopback = _ref.isLoopback;
299
-
300
- return Promise.resolve().then(function () {
301
- if (mediaServiceType === _constants.MEDIA_SERVICE_TYPES.MEDIASERVER) {
302
- //
303
- // KMS CONNECTION
304
- //
305
- return Promise.resolve().then(function () {
306
- var sessionOptions = {
307
- isMobile: isMobile,
308
- resolution: resolution,
309
- credentials: credentials.tsMediaServer,
310
- deviceOpts: deviceOpts || {
311
- audio: true,
312
- video: true
313
- }
314
- };
315
- return new _session3.KMSWebRTCSession(sessionOptions);
316
- });
317
- } else if (mediaServiceType === _constants.MEDIA_SERVICE_TYPES.TURNSERVER || isLoopback) {
318
- //
319
- // TURN-based connection or loopback (no connection)
320
- //
321
- return Promise.resolve().then(function () {
322
- var creds = null;
323
-
324
- if (!isLoopback) {
325
- creds = mediaServiceType === _constants.MEDIA_SERVICE_TYPES.TURNSERVER ? credentials.turnServer : credentials.opentok;
326
- }
327
-
328
- var sessionOptions = {
329
- isMobile: isMobile,
330
- resolution: resolution,
331
- credentials: creds,
332
- deviceOpts: deviceOpts || {
333
- audio: true,
334
- video: true
335
- }
336
- };
337
-
338
- if (isLoopback) {
339
- return new _session3.LoopbackWebRTCSession(sessionOptions);
340
- } else if (isMobile) {
341
- return new _session3.TurnWebRTCSession(sessionOptions, _this2.createLocalMediaStream);
342
- } else {
343
- return _this2.getTurnMediaSessionV2(sessionOptions).then(function (mediaSession) {
344
- _this2.subscribeTurnSessionEvents(mediaSession);
345
-
346
- return mediaSession;
347
- });
348
- }
349
- });
350
- } //
351
- // OT CONNECTION (default mediaServiceType)
352
- //
353
-
354
-
355
- return Promise.resolve().then(function () {
356
- return _waitForOT();
357
- }).then(function () {
358
- var sessionOptions = {
359
- isMobile: isMobile,
360
- resolution: resolution,
361
- credentials: credentials.opentok
362
- };
363
- return new _session2.TsOpenTokSession(sessionOptions);
364
- });
365
- }).then(function (session) {
366
- _this2.emit(SERVICE_EVENTS.SESSION_CREATED, session);
367
-
368
- sessions.push(session);
369
- return session;
370
- });
371
- }
372
- }, {
373
- key: "getTurnMediaSessionV2",
374
- value: function getTurnMediaSessionV2(sessionOptions) {
375
- var _this3 = this;
376
-
377
- return (0, _helper.getMediaConstraints)({
378
- resolution: sessionOptions.resolution,
379
- deviceOpts: sessionOptions.deviceOpts
380
- }).then(function (constraints) {
381
- var clientType = sessionOptions.isMobile ? _constants2.CLIENT_TYPES.INITIATOR : _constants2.CLIENT_TYPES.GUEST; // streaming from dashboard is not supported and we
382
- // don't want to access the camera without a reason
383
-
384
- if (clientType === _constants2.CLIENT_TYPES.GUEST) {
385
- delete constraints.video;
386
- }
387
-
388
- var sessionParams = {
389
- constraints: constraints,
390
- clientType: clientType,
391
- credentials: sessionOptions.credentials,
392
- streamFactory: _this3.createLocalMediaStream
393
- };
394
- return new _session3.TurnWebRtcSessionV2(sessionParams);
395
- });
396
- }
397
- }, {
398
- key: "subscribeTurnSessionEvents",
399
- value: function subscribeTurnSessionEvents(mediaSession) {
400
- var _this4 = this;
401
-
402
- var disconnectHandler = function disconnectHandler() {
403
- _this4.destroyLocalMediaStream();
404
-
405
- mediaSession.off(_session.SESSION_EVENTS.DISCONNECTED, disconnectHandler);
406
- };
407
-
408
- mediaSession.on(_session.SESSION_EVENTS.DISCONNECTED, disconnectHandler);
409
- }
410
- }]);
411
-
412
- return TsMediaServiceFacade;
413
- }(_eventEmitter.EventEmitter);
414
-
415
- var TsMediaService = new TsMediaServiceFacade();
416
- exports.TsMediaService = TsMediaService;
417
- //# sourceMappingURL=service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["oldCode/service.js"],"names":["tracer","environmentDetect","TsEnvironmentDetect","isIE11","require","isChrome","majorVersion","_isOTDefined","OT","e","_waitForOT","Promise","resolve","isDefined","reduce","Array","WAIT_FOR_OPENTOK_INITIALIZATION_MAX_ATTEMPTS","delay","WAIT_FOR_OPENTOK_INITIALIZATION_INTERVAL","then","reject","SERVICE_EVENTS","SESSION_CREATED","EXCEPTION","sessions","latestLocalStream","userMediaPromise","TsMediaServiceFacade","createLocalMediaStream","bind","destroyLocalMediaStream","constraints","trace","videoTrack","getVideoTracks","length","readyState","navigator","mediaDevices","getUserMedia","stream","err","getTracks","forEach","track","stop","enableMic","audioTracks","getAudioTracks","enabled","getDevices","error","devices","enumerateDevices","deviceOpts","window","WebRTCAdapter","OTPlugin","isInstalled","isMobile","resolution","mediaServiceType","credentials","isLoopback","MEDIA_SERVICE_TYPES","MEDIASERVER","sessionOptions","tsMediaServer","audio","video","KMSWebRTCSession","TURNSERVER","creds","turnServer","opentok","LoopbackWebRTCSession","TurnWebRTCSession","getTurnMediaSessionV2","mediaSession","subscribeTurnSessionEvents","TsOpenTokSession","session","emit","push","clientType","CLIENT_TYPES","INITIATOR","GUEST","sessionParams","streamFactory","TurnWebRtcSessionV2","disconnectHandler","off","SESSION_EVENTS","DISCONNECTED","on","EventEmitter","TsMediaService"],"mappings":"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","sourcesContent":["import {TsEnvironmentDetect} from '@techsee/techsee-common/lib/helpers/ts-environment-detect';\nimport {EventEmitter} from './event-emitter';\nimport {SESSION_EVENTS} from './session';\nimport {TsOpenTokSession} from './opentok/session';\nimport {KMSWebRTCSession, LoopbackWebRTCSession, TurnWebRTCSession, TurnWebRtcSessionV2} from './webrtc/session';\nimport {getHighestResolutionStream, getMediaConstraints} from './webrtc/helper';\n\nimport {\n MEDIA_SERVICE_TYPES,\n WAIT_FOR_OPENTOK_INITIALIZATION_INTERVAL,\n WAIT_FOR_OPENTOK_INITIALIZATION_MAX_ATTEMPTS\n} from './constants';\nimport {CLIENT_TYPES} from './webrtc/constants';\nimport {getTracer} from './tracer';\n\nconst tracer = getTracer();\n\n\nconst environmentDetect = new TsEnvironmentDetect();\nconst isIE11 = environmentDetect.isIE11();\n\nif (isIE11) {\n require('./webrtc/webrtc-ie-shim.js');\n} else if (!(environmentDetect.isChrome() && (environmentDetect.majorVersion() < 49))) {\n require('webrtc-adapter/src/js/adapter_core'); // eslint-disable-line global-require\n}\n\nfunction _isOTDefined() {\n try {\n return !!OT;\n } catch (e) {\n return false;\n }\n}\n\nfunction _waitForOT() {\n if (_isOTDefined()) {\n return Promise.resolve();\n }\n\n let isDefined = false;\n\n return Promise.reduce(\n new Array(WAIT_FOR_OPENTOK_INITIALIZATION_MAX_ATTEMPTS),\n () => {\n if (isDefined || _isOTDefined()) {\n isDefined = true;\n\n return Promise.resolve();\n }\n\n return Promise.delay(WAIT_FOR_OPENTOK_INITIALIZATION_INTERVAL);\n }, 0)\n .then(() => isDefined || Promise.reject('OT is undefined'));\n}\n\n/**\n * @enum SERVICE_EVENTS\n */\nconst SERVICE_EVENTS = {\n SESSION_CREATED: 'SESSION_CREATED',\n EXCEPTION: 'EXCEPTION'\n};\n\nexport {SERVICE_EVENTS as EVENTS};\n\nconst sessions = [];\nlet latestLocalStream = null;\nlet userMediaPromise = null;\n\n/**\n * The top of hierarchy and the entry point of the TsMedia Service.\n *\n * @static\n * @class\n * @extends EventEmitter\n */\nclass TsMediaServiceFacade extends EventEmitter {\n constructor() {\n super();\n\n this.createLocalMediaStream = this.createLocalMediaStream.bind(this);\n this.destroyLocalMediaStream = this.destroyLocalMediaStream.bind(this);\n }\n\n /**\n * All created sessoins\n *\n * @member { Object }\n * @memberof TsMediaService\n * @type { Array<TsMediaSession> }\n */\n get sessions() {\n return sessions;\n }\n\n createLocalMediaStream(constraints) {\n tracer.trace('createLocalMediaStream');\n if (userMediaPromise) {\n return userMediaPromise;\n }\n\n if (latestLocalStream) {\n const videoTrack = latestLocalStream.getVideoTracks();\n if (videoTrack.length > 0 && videoTrack[0].readyState === 'live') {\n return Promise.resolve(latestLocalStream);\n } else {\n this.destroyLocalMediaStream();\n }\n }\n\n userMediaPromise = new Promise((resolve, reject) => {\n try {\n tracer.trace('createLocalMediaStream inside promise');\n\n navigator.mediaDevices.getUserMedia(constraints)\n .then((stream) => {\n latestLocalStream = stream;\n userMediaPromise = null;\n resolve(stream);\n })\n .catch((err) => {\n userMediaPromise = null;\n reject(err);\n });\n } catch (e) {\n userMediaPromise = null;\n reject(e);\n }\n });\n\n return userMediaPromise;\n }\n\n destroyLocalMediaStream() {\n tracer.trace('Destroy local streams');\n if (latestLocalStream) {\n latestLocalStream.getTracks().forEach((track) => {\n track.stop();\n });\n }\n\n latestLocalStream = null;\n }\n\n toggleMicrophone(enableMic = true) {\n if (!latestLocalStream) {\n return Promise.resolve();\n }\n\n const audioTracks = latestLocalStream.getAudioTracks();\n if (audioTracks.length > 0) {\n audioTracks[0].enabled = enableMic;\n }\n\n return Promise.resolve();\n }\n\n /**\n * Enumerate available media devices\n *\n * @method\n * @memberof TsMediaService\n * @returns { Promise<Array<MediaDeviceInfo>> } devices list\n *\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/MediaDeviceInfo | MediaDeviceInfo documentation}\n */\n getDevices() {\n if ((typeof OT !== 'undefined') && OT && OT.getDevices) {\n return new Promise((resolve, reject) => {\n OT.getDevices((error, devices) => {\n if (error) {\n return reject(error);\n }\n\n return resolve(devices);\n });\n });\n }\n\n if (navigator.mediaDevices && navigator.mediaDevices.enumerateDevices) {\n return navigator.mediaDevices.enumerateDevices();\n }\n\n return Promise.reject('getDevices is not supported');\n }\n\n /**\n * Verifies camera access\n *\n * @method\n * @memberof TsMediaService\n * @returns { Promise<Object> } returns {stream,constraints} if successful, or rejected promise if failed\n *\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/MediaDeviceInfo | MediaDeviceInfo documentation}\n */\n verifyCameraAccess(deviceOpts) {\n return getHighestResolutionStream(deviceOpts);\n }\n\n isVideoPlaySupportedOnDevice() {\n if (!isIE11) {\n return Promise.resolve(true);\n }\n\n if (!!window.WebRTCAdapter) {\n return Promise.resolve(true);\n }\n\n if (window.OT && window.OTPlugin && window.OTPlugin.isInstalled && window.OTPlugin.isInstalled()) {\n return Promise.resolve(true);\n }\n\n return Promise.resolve(false);\n }\n\n /**\n * Init WebRTC or OpenTok session depends on required type.\n *\n * Returns an initialized specific implementation of TsMediaSession interface.\n *\n * Assuming mobile will be a publisher and not mobile will be a subscriber.\n *\n * @method\n * @memberof TsMediaService\n *\n * @param { OPENTOK|MEDIASERVER|TURNSERVER } mediaServiceType required implementation\n * @param { Boolean } isMobile Whether techsee-mobile or not calls this method.\n * @param { Object } resolution constraint to use for video stream\n * @param { opentok|tsMediaServer|turnServer } credentials server/service credentials\n * @param { Object } deviceOpts requested devices (mainly audio/video device ids)\n * @param { Boolean } isLoopback Whether to use loopback webrtc\n *\n * @returns { Promise<TsMediaSession> }\n */\n initSession({\n mediaServiceType,\n isMobile,\n resolution,\n credentials,\n deviceOpts,\n isLoopback\n } = {\n isMobile: false,\n resolution: '640x480'\n }) {\n return Promise.resolve()\n .then(() => {\n if (mediaServiceType === MEDIA_SERVICE_TYPES.MEDIASERVER) {\n //\n // KMS CONNECTION\n //\n return Promise.resolve()\n .then(() => {\n const sessionOptions = {\n isMobile,\n resolution,\n\n credentials: credentials.tsMediaServer,\n deviceOpts: deviceOpts || {audio: true, video: true}\n };\n\n return new KMSWebRTCSession(sessionOptions);\n });\n } else if (mediaServiceType === MEDIA_SERVICE_TYPES.TURNSERVER || isLoopback) {\n //\n // TURN-based connection or loopback (no connection)\n //\n return Promise.resolve()\n .then(() => {\n let creds = null;\n\n if (!isLoopback) {\n creds = (mediaServiceType === MEDIA_SERVICE_TYPES.TURNSERVER) ? credentials.turnServer : credentials.opentok;\n }\n\n const sessionOptions = {\n isMobile,\n resolution,\n credentials: creds,\n deviceOpts: deviceOpts || {audio: true, video: true}\n };\n\n if (isLoopback) {\n return new LoopbackWebRTCSession(sessionOptions);\n } else if (isMobile) {\n return new TurnWebRTCSession(sessionOptions, this.createLocalMediaStream);\n } else {\n return this.getTurnMediaSessionV2(sessionOptions)\n .then((mediaSession) => {\n this.subscribeTurnSessionEvents(mediaSession);\n\n return mediaSession;\n });\n }\n });\n }\n\n //\n // OT CONNECTION (default mediaServiceType)\n //\n return Promise.resolve()\n .then(() => _waitForOT())\n .then(() => {\n const sessionOptions = {\n isMobile,\n resolution,\n\n credentials: credentials.opentok\n };\n\n return new TsOpenTokSession(sessionOptions);\n });\n })\n .then((session) => {\n this.emit(SERVICE_EVENTS.SESSION_CREATED, session);\n\n sessions.push(session);\n\n return session;\n });\n }\n\n getTurnMediaSessionV2(sessionOptions) {\n return getMediaConstraints({\n resolution: sessionOptions.resolution,\n deviceOpts: sessionOptions.deviceOpts\n }).then((constraints) => {\n const clientType = sessionOptions.isMobile ? CLIENT_TYPES.INITIATOR : CLIENT_TYPES.GUEST;\n\n // streaming from dashboard is not supported and we\n // don't want to access the camera without a reason\n if (clientType === CLIENT_TYPES.GUEST) {\n delete constraints.video;\n }\n\n const sessionParams = {\n constraints,\n clientType,\n credentials: sessionOptions.credentials,\n streamFactory: this.createLocalMediaStream\n };\n\n return new TurnWebRtcSessionV2(sessionParams);\n });\n }\n\n subscribeTurnSessionEvents(mediaSession) {\n const disconnectHandler = () => {\n this.destroyLocalMediaStream();\n mediaSession.off(SESSION_EVENTS.DISCONNECTED, disconnectHandler);\n };\n\n mediaSession.on(SESSION_EVENTS.DISCONNECTED, disconnectHandler);\n }\n}\n\nexport const TsMediaService = new TsMediaServiceFacade();\n"],"file":"service.js"}
@@ -1,132 +0,0 @@
1
- "use strict";
2
-
3
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.TsMediaSession = exports.EVENTS = exports.SESSION_EVENTS = void 0;
9
-
10
- var _eventEmitter = require("./event-emitter");
11
-
12
- var _stream = require("./stream");
13
-
14
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
15
-
16
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
17
-
18
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
19
-
20
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
21
-
22
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
23
-
24
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
25
-
26
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
27
-
28
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
29
-
30
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
31
-
32
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
33
-
34
- /**
35
- * @enum SESSION_EVENTS
36
- */
37
- var SESSION_EVENTS = {
38
- CONNECTED: 'CONNECTED',
39
- DISCONNECTED: 'DISCONNECTED',
40
- EXCEPTION: 'EXCEPTION',
41
- STREAM_CREATED: 'STREAM_CREATED',
42
- STREAM_DESTROYED: 'STREAM_DESTROYED',
43
- STREAM_PROPERTY_CHANGED: 'STREAM_PROPERTY_CHANGED',
44
- RECONNECT_TURN_SERVER: 'RECONNECT_TURN_SERVER',
45
- TURN_SERVER_CONNECTION_FAILED: 'TURN_SERVER_CONNECTION_FAILED',
46
- PEER_CONNECTED: 'PEER_CONNECTED',
47
- PEER_DISCONNECTED: 'PEER_DISCONNECTED'
48
- };
49
- exports.EVENTS = exports.SESSION_EVENTS = SESSION_EVENTS;
50
-
51
- /**
52
- * Session object returned by TsMediaSercice.initSession() call.
53
- * <br>
54
- * Represents connection to OpenTok server or TsMediaServer.
55
- * <br>
56
- * General interface for the specific implementations - TsOpenTokSession and TsWebRTCSession
57
- *
58
- * @interface
59
- * @extends EventEmitter
60
- *
61
- * @fires SESSION_EVENTS#CONNECTED
62
- * @fires SESSION_EVENTS#DISCONNECTED
63
- * @fires SESSION_EVENTS#EXCEPTION
64
- * @fires SESSION_EVENTS#STREAM_CREATED
65
- */
66
- var TsMediaSession = /*#__PURE__*/function (_EventEmitter) {
67
- _inherits(TsMediaSession, _EventEmitter);
68
-
69
- var _super = _createSuper(TsMediaSession);
70
-
71
- function TsMediaSession() {
72
- var _this;
73
-
74
- _classCallCheck(this, TsMediaSession);
75
-
76
- _this = _super.call(this);
77
- _this._streams = new Map();
78
-
79
- _this.on(SESSION_EVENTS.STREAM_PROPERTY_CHANGED, function (event) {
80
- if (event.stream) {
81
- event.stream.emit(_stream.EVENTS.PROPERTY_CHANGED, event);
82
- }
83
- });
84
-
85
- return _this;
86
- }
87
- /**
88
- * All media streams registered in the session.
89
- *
90
- * @member { Object }
91
- * @type { Array<TsMediaStream> }
92
- */
93
-
94
-
95
- _createClass(TsMediaSession, [{
96
- key: "streams",
97
- get: function get() {
98
- var streamArray = [];
99
-
100
- this._streams.forEach(function (stream) {
101
- return streamArray.push(stream);
102
- });
103
-
104
- return streamArray;
105
- }
106
- /**
107
- * Register new media stream in the session.
108
- *
109
- * Called internally by TsMediaStream constructor.
110
- *
111
- * @method
112
- * @param { String } id Stream id
113
- * @param { TsMediaStream } stream Media Stream
114
- */
115
-
116
- }, {
117
- key: "registerStream",
118
- value: function registerStream(id, stream) {
119
- this._streams.set(id, stream);
120
- }
121
- }, {
122
- key: "unregisterStream",
123
- value: function unregisterStream(id) {
124
- this._streams["delete"](id);
125
- }
126
- }]);
127
-
128
- return TsMediaSession;
129
- }(_eventEmitter.EventEmitter);
130
-
131
- exports.TsMediaSession = TsMediaSession;
132
- //# sourceMappingURL=session.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["oldCode/session.js"],"names":["SESSION_EVENTS","CONNECTED","DISCONNECTED","EXCEPTION","STREAM_CREATED","STREAM_DESTROYED","STREAM_PROPERTY_CHANGED","RECONNECT_TURN_SERVER","TURN_SERVER_CONNECTION_FAILED","PEER_CONNECTED","PEER_DISCONNECTED","TsMediaSession","_streams","Map","on","event","stream","emit","STREAM_EVENTS","PROPERTY_CHANGED","streamArray","forEach","push","id","set","EventEmitter"],"mappings":";;;;;;;;;AAAA;;AAEA;;;;;;;;;;;;;;;;;;;;;;AAEA;AACA;AACA;AACO,IAAMA,cAAc,GAAG;AAC1BC,EAAAA,SAAS,EAAE,WADe;AAE1BC,EAAAA,YAAY,EAAE,cAFY;AAG1BC,EAAAA,SAAS,EAAE,WAHe;AAI1BC,EAAAA,cAAc,EAAE,gBAJU;AAK1BC,EAAAA,gBAAgB,EAAE,kBALQ;AAM1BC,EAAAA,uBAAuB,EAAE,yBANC;AAO1BC,EAAAA,qBAAqB,EAAE,uBAPG;AAQ1BC,EAAAA,6BAA6B,EAAE,+BARL;AAS1BC,EAAAA,cAAc,EAAE,gBATU;AAU1BC,EAAAA,iBAAiB,EAAE;AAVO,CAAvB;;;AAeP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACaC,c;;;;;AACT,4BAAc;AAAA;;AAAA;;AACV;AAEA,UAAKC,QAAL,GAAgB,IAAIC,GAAJ,EAAhB;;AAEA,UAAKC,EAAL,CAAQd,cAAc,CAACM,uBAAvB,EAAgD,UAACS,KAAD,EAAW;AACvD,UAAIA,KAAK,CAACC,MAAV,EAAkB;AACdD,QAAAA,KAAK,CAACC,MAAN,CAAaC,IAAb,CAAkBC,eAAcC,gBAAhC,EAAkDJ,KAAlD;AACH;AACJ,KAJD;;AALU;AAUb;AAED;AACJ;AACA;AACA;AACA;AACA;;;;;SACI,eAAc;AACV,UAAMK,WAAW,GAAG,EAApB;;AAEA,WAAKR,QAAL,CAAcS,OAAd,CAAsB,UAACL,MAAD;AAAA,eAAYI,WAAW,CAACE,IAAZ,CAAiBN,MAAjB,CAAZ;AAAA,OAAtB;;AAEA,aAAOI,WAAP;AACH;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACI,wBAAeG,EAAf,EAAmBP,MAAnB,EAA2B;AACvB,WAAKJ,QAAL,CAAcY,GAAd,CAAkBD,EAAlB,EAAsBP,MAAtB;AACH;;;WAED,0BAAiBO,EAAjB,EAAqB;AACjB,WAAKX,QAAL,WAAqBW,EAArB;AACH;;;;EA1C+BE,0B","sourcesContent":["import {EventEmitter} from './event-emitter';\n\nimport {EVENTS as STREAM_EVENTS} from './stream';\n\n/**\n * @enum SESSION_EVENTS\n */\nexport const SESSION_EVENTS = {\n CONNECTED: 'CONNECTED',\n DISCONNECTED: 'DISCONNECTED',\n EXCEPTION: 'EXCEPTION',\n STREAM_CREATED: 'STREAM_CREATED',\n STREAM_DESTROYED: 'STREAM_DESTROYED',\n STREAM_PROPERTY_CHANGED: 'STREAM_PROPERTY_CHANGED',\n RECONNECT_TURN_SERVER: 'RECONNECT_TURN_SERVER',\n TURN_SERVER_CONNECTION_FAILED: 'TURN_SERVER_CONNECTION_FAILED',\n PEER_CONNECTED: 'PEER_CONNECTED',\n PEER_DISCONNECTED: 'PEER_DISCONNECTED'\n};\n\nexport {SESSION_EVENTS as EVENTS};\n\n/**\n * Session object returned by TsMediaSercice.initSession() call.\n * <br>\n * Represents connection to OpenTok server or TsMediaServer.\n * <br>\n * General interface for the specific implementations - TsOpenTokSession and TsWebRTCSession\n *\n * @interface\n * @extends EventEmitter\n *\n * @fires SESSION_EVENTS#CONNECTED\n * @fires SESSION_EVENTS#DISCONNECTED\n * @fires SESSION_EVENTS#EXCEPTION\n * @fires SESSION_EVENTS#STREAM_CREATED\n */\nexport class TsMediaSession extends EventEmitter {\n constructor() {\n super();\n\n this._streams = new Map();\n\n this.on(SESSION_EVENTS.STREAM_PROPERTY_CHANGED, (event) => {\n if (event.stream) {\n event.stream.emit(STREAM_EVENTS.PROPERTY_CHANGED, event);\n }\n });\n }\n\n /**\n * All media streams registered in the session.\n *\n * @member { Object }\n * @type { Array<TsMediaStream> }\n */\n get streams() {\n const streamArray = [];\n\n this._streams.forEach((stream) => streamArray.push(stream));\n\n return streamArray;\n }\n\n /**\n * Register new media stream in the session.\n *\n * Called internally by TsMediaStream constructor.\n *\n * @method\n * @param { String } id Stream id\n * @param { TsMediaStream } stream Media Stream\n */\n registerStream(id, stream) {\n this._streams.set(id, stream);\n }\n\n unregisterStream(id) {\n this._streams.delete(id);\n }\n}\n\n"],"file":"session.js"}