@techsee/techsee-media-service 999.20.0-nodejs.lite.2 → 999.20.1-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.
Files changed (205) hide show
  1. package/README.md +28 -27
  2. package/lib/LocalStreamManager.d.ts +0 -1
  3. package/lib/LocalStreamManager.d.ts.map +1 -1
  4. package/lib/LocalStreamManager.js +84 -82
  5. package/lib/LocalStreamManager.js.map +1 -1
  6. package/lib/MediaConstants.d.ts +3 -21
  7. package/lib/MediaConstants.d.ts.map +1 -1
  8. package/lib/MediaConstants.js +13 -32
  9. package/lib/MediaConstants.js.map +1 -1
  10. package/lib/MediaContracts.d.ts +3 -9
  11. package/lib/MediaContracts.d.ts.map +1 -1
  12. package/lib/MediaContracts.js +4 -1
  13. package/lib/MediaContracts.js.map +1 -1
  14. package/lib/MediaPublisher.d.ts +0 -1
  15. package/lib/MediaPublisher.d.ts.map +1 -1
  16. package/lib/MediaPublisher.js +10 -7
  17. package/lib/MediaPublisher.js.map +1 -1
  18. package/lib/MediaServiceBase.d.ts +0 -1
  19. package/lib/MediaServiceBase.d.ts.map +1 -1
  20. package/lib/MediaServiceBase.js +199 -170
  21. package/lib/MediaServiceBase.js.map +1 -1
  22. package/lib/MediaSession/MediaServer.d.ts +0 -1
  23. package/lib/MediaSession/MediaServer.d.ts.map +1 -1
  24. package/lib/MediaSession/MediaServer.js +74 -62
  25. package/lib/MediaSession/MediaServer.js.map +1 -1
  26. package/lib/MediaSession/MediaSessionBase.d.ts +0 -1
  27. package/lib/MediaSession/MediaSessionBase.d.ts.map +1 -1
  28. package/lib/MediaSession/MediaSessionBase.js +23 -19
  29. package/lib/MediaSession/MediaSessionBase.js.map +1 -1
  30. package/lib/MediaSession/SessionOpentok.d.ts +2 -3
  31. package/lib/MediaSession/SessionOpentok.d.ts.map +1 -1
  32. package/lib/MediaSession/SessionOpentok.js +80 -51
  33. package/lib/MediaSession/SessionOpentok.js.map +1 -1
  34. package/lib/MediaSession/SessionTurn.d.ts +0 -1
  35. package/lib/MediaSession/SessionTurn.d.ts.map +1 -1
  36. package/lib/MediaSession/SessionTurn.js +151 -109
  37. package/lib/MediaSession/SessionTurn.js.map +1 -1
  38. package/lib/MediaSession/TurnConstants.d.ts +0 -1
  39. package/lib/MediaSession/TurnConstants.d.ts.map +1 -1
  40. package/lib/MediaSession/TurnConstants.js +16 -1
  41. package/lib/MediaSession/TurnConstants.js.map +1 -1
  42. package/lib/MediaSubscriber.d.ts +0 -1
  43. package/lib/MediaSubscriber.d.ts.map +1 -1
  44. package/lib/MediaSubscriber.js +43 -37
  45. package/lib/MediaSubscriber.js.map +1 -1
  46. package/lib/MediaUtils/Compatibility.d.ts +0 -3
  47. package/lib/MediaUtils/Compatibility.d.ts.map +1 -1
  48. package/lib/MediaUtils/Compatibility.js +34 -76
  49. package/lib/MediaUtils/Compatibility.js.map +1 -1
  50. package/lib/MediaUtils/MediaDomUtils.d.ts +3 -6
  51. package/lib/MediaUtils/MediaDomUtils.d.ts.map +1 -1
  52. package/lib/MediaUtils/MediaDomUtils.js +65 -70
  53. package/lib/MediaUtils/MediaDomUtils.js.map +1 -1
  54. package/lib/MediaUtils/MediaTracer.d.ts +0 -1
  55. package/lib/MediaUtils/MediaTracer.d.ts.map +1 -1
  56. package/lib/MediaUtils/MediaTracer.js +5 -2
  57. package/lib/MediaUtils/MediaTracer.js.map +1 -1
  58. package/lib/MultiParty/DetectWebRtcService.d.ts +14 -17
  59. package/lib/MultiParty/DetectWebRtcService.d.ts.map +1 -1
  60. package/lib/MultiParty/DetectWebRtcService.js +54 -98
  61. package/lib/MultiParty/DetectWebRtcService.js.map +1 -1
  62. package/lib/MultiParty/MediaCapabilitiesHelper.d.ts +10 -0
  63. package/lib/MultiParty/MediaCapabilitiesHelper.d.ts.map +1 -0
  64. package/lib/MultiParty/MediaCapabilitiesHelper.js +140 -0
  65. package/lib/MultiParty/MediaCapabilitiesHelper.js.map +1 -0
  66. package/lib/MultiParty/MultiParty.d.ts +21 -0
  67. package/lib/MultiParty/MultiParty.d.ts.map +1 -0
  68. package/lib/MultiParty/MultiParty.js +160 -0
  69. package/lib/MultiParty/MultiParty.js.map +1 -0
  70. package/lib/MultiParty/OpentokMultiparty.d.ts +32 -0
  71. package/lib/MultiParty/OpentokMultiparty.d.ts.map +1 -0
  72. package/lib/MultiParty/OpentokMultiparty.js +184 -0
  73. package/lib/MultiParty/OpentokMultiparty.js.map +1 -0
  74. package/lib/TechseeMediaStream.d.ts +0 -1
  75. package/lib/TechseeMediaStream.d.ts.map +1 -1
  76. package/lib/TechseeMediaStream.js +12 -9
  77. package/lib/TechseeMediaStream.js.map +1 -1
  78. package/lib/oldCode/constants.js +20 -0
  79. package/lib/oldCode/constants.js.map +1 -0
  80. package/lib/oldCode/event-emitter.js +39 -0
  81. package/lib/oldCode/event-emitter.js.map +1 -0
  82. package/lib/oldCode/index.js +64 -0
  83. package/lib/oldCode/index.js.map +1 -0
  84. package/lib/oldCode/opentok/session.js +310 -0
  85. package/lib/oldCode/opentok/session.js.map +1 -0
  86. package/lib/oldCode/opentok/stream.js +310 -0
  87. package/lib/oldCode/opentok/stream.js.map +1 -0
  88. package/lib/oldCode/publisher.js +143 -0
  89. package/lib/oldCode/publisher.js.map +1 -0
  90. package/lib/oldCode/service.js +395 -0
  91. package/lib/oldCode/service.js.map +1 -0
  92. package/lib/oldCode/session.js +110 -0
  93. package/lib/oldCode/session.js.map +1 -0
  94. package/lib/oldCode/stream.js +195 -0
  95. package/lib/oldCode/stream.js.map +1 -0
  96. package/lib/oldCode/subscriber.js +90 -0
  97. package/lib/oldCode/subscriber.js.map +1 -0
  98. package/lib/oldCode/tracer.d.ts +36 -0
  99. package/lib/oldCode/tracer.d.ts.map +1 -0
  100. package/lib/oldCode/tracer.js +161 -0
  101. package/lib/oldCode/tracer.js.map +1 -0
  102. package/lib/oldCode/utils/ImageFixer.d.ts +1 -0
  103. package/lib/oldCode/utils/ImageFixer.d.ts.map +1 -0
  104. package/lib/oldCode/utils/ImageFixer.js +59 -0
  105. package/lib/oldCode/utils/ImageFixer.js.map +1 -0
  106. package/lib/oldCode/webrtc/constants.js +114 -0
  107. package/lib/oldCode/webrtc/constants.js.map +1 -0
  108. package/lib/oldCode/webrtc/helper.js +173 -0
  109. package/lib/oldCode/webrtc/helper.js.map +1 -0
  110. package/lib/oldCode/webrtc/session-kms.js +558 -0
  111. package/lib/oldCode/webrtc/session-kms.js.map +1 -0
  112. package/lib/oldCode/webrtc/session-loopback.js +336 -0
  113. package/lib/oldCode/webrtc/session-loopback.js.map +1 -0
  114. package/lib/oldCode/webrtc/session-turn.js +880 -0
  115. package/lib/oldCode/webrtc/session-turn.js.map +1 -0
  116. package/lib/oldCode/webrtc/session-turn.v2.js +583 -0
  117. package/lib/oldCode/webrtc/session-turn.v2.js.map +1 -0
  118. package/lib/oldCode/webrtc/session.js +52 -0
  119. package/lib/oldCode/webrtc/session.js.map +1 -0
  120. package/lib/oldCode/webrtc/stream.js +674 -0
  121. package/lib/oldCode/webrtc/stream.js.map +1 -0
  122. package/lib/oldCode/webrtc/temasys/adapter-loader.js +12 -0
  123. package/lib/oldCode/webrtc/temasys/adapter-loader.js.map +1 -0
  124. package/lib/oldCode/webrtc/temasys/adapter.js +5861 -0
  125. package/lib/oldCode/webrtc/temasys/adapter.js.map +1 -0
  126. package/lib/oldCode/webrtc/webrtc-ie-shim.js +3007 -0
  127. package/lib/oldCode/webrtc/webrtc-ie-shim.js.map +1 -0
  128. package/lib/qos/raw-qos.js +145 -84
  129. package/lib/qos/raw-qos.js.map +1 -1
  130. package/lib/webrtc-ie-shim.js +2950 -1896
  131. package/lib/webrtc-ie-shim.js.map +1 -1
  132. package/package.json +59 -65
  133. package/lib/MediaUtils/index.d.ts +0 -2
  134. package/lib/MediaUtils/index.d.ts.map +0 -1
  135. package/lib/MediaUtils/index.js +0 -6
  136. package/lib/MediaUtils/index.js.map +0 -1
  137. package/lib/MultiParty/MediaCapabilitiesService.d.ts +0 -18
  138. package/lib/MultiParty/MediaCapabilitiesService.d.ts.map +0 -1
  139. package/lib/MultiParty/MediaCapabilitiesService.js +0 -158
  140. package/lib/MultiParty/MediaCapabilitiesService.js.map +0 -1
  141. package/lib/MultiParty/MediaCapabilitiesUtils.d.ts +0 -6
  142. package/lib/MultiParty/MediaCapabilitiesUtils.d.ts.map +0 -1
  143. package/lib/MultiParty/MediaCapabilitiesUtils.js +0 -123
  144. package/lib/MultiParty/MediaCapabilitiesUtils.js.map +0 -1
  145. package/lib/MultiParty/MediaTracer.d.ts +0 -4
  146. package/lib/MultiParty/MediaTracer.d.ts.map +0 -1
  147. package/lib/MultiParty/MediaTracer.js +0 -10
  148. package/lib/MultiParty/MediaTracer.js.map +0 -1
  149. package/lib/MultiParty/MultiPartyService.d.ts +0 -49
  150. package/lib/MultiParty/MultiPartyService.d.ts.map +0 -1
  151. package/lib/MultiParty/MultiPartyService.js +0 -30
  152. package/lib/MultiParty/MultiPartyService.js.map +0 -1
  153. package/lib/MultiParty/MultiPartyServiceFactory.d.ts +0 -4
  154. package/lib/MultiParty/MultiPartyServiceFactory.d.ts.map +0 -1
  155. package/lib/MultiParty/MultiPartyServiceFactory.js +0 -13
  156. package/lib/MultiParty/MultiPartyServiceFactory.js.map +0 -1
  157. package/lib/MultiParty/MultipartyServiceEventTypes.d.ts +0 -89
  158. package/lib/MultiParty/MultipartyServiceEventTypes.d.ts.map +0 -1
  159. package/lib/MultiParty/MultipartyServiceEventTypes.js +0 -16
  160. package/lib/MultiParty/MultipartyServiceEventTypes.js.map +0 -1
  161. package/lib/MultiParty/index.d.ts +0 -7
  162. package/lib/MultiParty/index.d.ts.map +0 -1
  163. package/lib/MultiParty/index.js +0 -25
  164. package/lib/MultiParty/index.js.map +0 -1
  165. package/lib/MultiParty/opentok/OpentokMultiPartyService.d.ts +0 -38
  166. package/lib/MultiParty/opentok/OpentokMultiPartyService.d.ts.map +0 -1
  167. package/lib/MultiParty/opentok/OpentokMultiPartyService.js +0 -492
  168. package/lib/MultiParty/opentok/OpentokMultiPartyService.js.map +0 -1
  169. package/lib/MultiParty/opentok/OpentokPublisher.d.ts +0 -34
  170. package/lib/MultiParty/opentok/OpentokPublisher.d.ts.map +0 -1
  171. package/lib/MultiParty/opentok/OpentokPublisher.js +0 -121
  172. package/lib/MultiParty/opentok/OpentokPublisher.js.map +0 -1
  173. package/lib/MultiParty/opentok/OpentokPublisherEventMapper.d.ts +0 -20
  174. package/lib/MultiParty/opentok/OpentokPublisherEventMapper.d.ts.map +0 -1
  175. package/lib/MultiParty/opentok/OpentokPublisherEventMapper.js +0 -49
  176. package/lib/MultiParty/opentok/OpentokPublisherEventMapper.js.map +0 -1
  177. package/lib/MultiParty/opentok/OpentokScreenPublisher.d.ts +0 -6
  178. package/lib/MultiParty/opentok/OpentokScreenPublisher.d.ts.map +0 -1
  179. package/lib/MultiParty/opentok/OpentokScreenPublisher.js +0 -48
  180. package/lib/MultiParty/opentok/OpentokScreenPublisher.js.map +0 -1
  181. package/lib/MultiParty/opentok/OpentokSubscriber.d.ts +0 -2
  182. package/lib/MultiParty/opentok/OpentokSubscriber.d.ts.map +0 -1
  183. package/lib/MultiParty/opentok/OpentokSubscriber.js +0 -26
  184. package/lib/MultiParty/opentok/OpentokSubscriber.js.map +0 -1
  185. package/lib/MultiParty/opentok/OpentokVideoPublisher.d.ts +0 -19
  186. package/lib/MultiParty/opentok/OpentokVideoPublisher.d.ts.map +0 -1
  187. package/lib/MultiParty/opentok/OpentokVideoPublisher.js +0 -182
  188. package/lib/MultiParty/opentok/OpentokVideoPublisher.js.map +0 -1
  189. package/lib/MultiParty/opentok/trace.d.ts +0 -3
  190. package/lib/MultiParty/opentok/trace.d.ts.map +0 -1
  191. package/lib/MultiParty/opentok/trace.js +0 -18
  192. package/lib/MultiParty/opentok/trace.js.map +0 -1
  193. package/lib/MultiParty/opentok.d.ts +0 -463
  194. package/lib/MultiParty/types.d.ts +0 -33
  195. package/lib/MultiParty/types.d.ts.map +0 -1
  196. package/lib/MultiParty/types.js +0 -3
  197. package/lib/MultiParty/types.js.map +0 -1
  198. package/lib/MultiParty/utils.d.ts +0 -10
  199. package/lib/MultiParty/utils.d.ts.map +0 -1
  200. package/lib/MultiParty/utils.js +0 -17
  201. package/lib/MultiParty/utils.js.map +0 -1
  202. package/lib/qos/raw-qos.d.ts +0 -29
  203. package/lib/qos/raw-qos.d.ts.map +0 -1
  204. package/lib/webrtc-ie-shim.d.ts +0 -4
  205. package/lib/webrtc-ie-shim.d.ts.map +0 -1
@@ -0,0 +1,110 @@
1
+ 'use strict';
2
+
3
+ exports.__esModule = true;
4
+ exports.TsMediaSession = exports.EVENTS = exports.SESSION_EVENTS = undefined;
5
+
6
+ var _createClass = function () { 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
7
+
8
+ var _eventEmitter = require('./event-emitter');
9
+
10
+ var _stream = require('./stream');
11
+
12
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
13
+
14
+ function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
15
+
16
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
17
+
18
+ /**
19
+ * @enum SESSION_EVENTS
20
+ */
21
+ var SESSION_EVENTS = exports.SESSION_EVENTS = {
22
+ CONNECTED: 'CONNECTED',
23
+ DISCONNECTED: 'DISCONNECTED',
24
+ EXCEPTION: 'EXCEPTION',
25
+ STREAM_CREATED: 'STREAM_CREATED',
26
+ STREAM_DESTROYED: 'STREAM_DESTROYED',
27
+ STREAM_PROPERTY_CHANGED: 'STREAM_PROPERTY_CHANGED',
28
+ RECONNECT_TURN_SERVER: 'RECONNECT_TURN_SERVER',
29
+ TURN_SERVER_CONNECTION_FAILED: 'TURN_SERVER_CONNECTION_FAILED',
30
+ PEER_CONNECTED: 'PEER_CONNECTED',
31
+ PEER_DISCONNECTED: 'PEER_DISCONNECTED'
32
+ };
33
+
34
+ exports.EVENTS = SESSION_EVENTS;
35
+
36
+ /**
37
+ * Session object returned by TsMediaSercice.initSession() call.
38
+ * <br>
39
+ * Represents connection to OpenTok server or TsMediaServer.
40
+ * <br>
41
+ * General interface for the specific implementations - TsOpenTokSession and TsWebRTCSession
42
+ *
43
+ * @interface
44
+ * @extends EventEmitter
45
+ *
46
+ * @fires SESSION_EVENTS#CONNECTED
47
+ * @fires SESSION_EVENTS#DISCONNECTED
48
+ * @fires SESSION_EVENTS#EXCEPTION
49
+ * @fires SESSION_EVENTS#STREAM_CREATED
50
+ */
51
+
52
+ var TsMediaSession = exports.TsMediaSession = function (_EventEmitter) {
53
+ _inherits(TsMediaSession, _EventEmitter);
54
+
55
+ function TsMediaSession() {
56
+ _classCallCheck(this, TsMediaSession);
57
+
58
+ var _this = _possibleConstructorReturn(this, _EventEmitter.call(this));
59
+
60
+ _this._streams = new Map();
61
+
62
+ _this.on(SESSION_EVENTS.STREAM_PROPERTY_CHANGED, function (event) {
63
+ if (event.stream) {
64
+ event.stream.emit(_stream.EVENTS.PROPERTY_CHANGED, event);
65
+ }
66
+ });
67
+ return _this;
68
+ }
69
+
70
+ /**
71
+ * All media streams registered in the session.
72
+ *
73
+ * @member { Object }
74
+ * @type { Array<TsMediaStream> }
75
+ */
76
+
77
+
78
+ /**
79
+ * Register new media stream in the session.
80
+ *
81
+ * Called internally by TsMediaStream constructor.
82
+ *
83
+ * @method
84
+ * @param { String } id Stream id
85
+ * @param { TsMediaStream } stream Media Stream
86
+ */
87
+ TsMediaSession.prototype.registerStream = function registerStream(id, stream) {
88
+ this._streams.set(id, stream);
89
+ };
90
+
91
+ TsMediaSession.prototype.unregisterStream = function unregisterStream(id) {
92
+ this._streams.delete(id);
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
+
108
+ return TsMediaSession;
109
+ }(_eventEmitter.EventEmitter);
110
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
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","EVENTS","TsMediaSession","_streams","Map","on","event","stream","emit","STREAM_EVENTS","PROPERTY_CHANGED","registerStream","id","set","unregisterStream","delete","streamArray","forEach","push","EventEmitter"],"mappings":";;;;;;;AAAA;;AAEA;;;;;;;;AAEA;;;AAGO,IAAMA,0CAAiB;AAC1BC,eAAW,WADe;AAE1BC,kBAAc,cAFY;AAG1BC,eAAW,WAHe;AAI1BC,oBAAgB,gBAJU;AAK1BC,sBAAkB,kBALQ;AAM1BC,6BAAyB,yBANC;AAO1BC,2BAAuB,uBAPG;AAQ1BC,mCAA+B,+BARL;AAS1BC,oBAAgB,gBATU;AAU1BC,uBAAmB;AAVO,CAAvB;;QAamBC,M,GAAlBX,c;;AAER;;;;;;;;;;;;;;;;IAeaY,c,WAAAA,c;;;AACT,8BAAc;AAAA;;AAAA,qDACV,wBADU;;AAGV,cAAKC,QAAL,GAAgB,IAAIC,GAAJ,EAAhB;;AAEA,cAAKC,EAAL,CAAQf,eAAeM,uBAAvB,EAAgD,UAACU,KAAD,EAAW;AACvD,gBAAIA,MAAMC,MAAV,EAAkB;AACdD,sBAAMC,MAAN,CAAaC,IAAb,CAAkBC,eAAcC,gBAAhC,EAAkDJ,KAAlD;AACH;AACJ,SAJD;AALU;AAUb;;AAED;;;;;;;;AAcA;;;;;;;;;6BASAK,c,2BAAeC,E,EAAIL,M,EAAQ;AACvB,aAAKJ,QAAL,CAAcU,GAAd,CAAkBD,EAAlB,EAAsBL,MAAtB;AACH,K;;6BAEDO,gB,6BAAiBF,E,EAAI;AACjB,aAAKT,QAAL,CAAcY,MAAd,CAAqBH,EAArB;AACH,K;;;;4BAvBa;AACV,gBAAMI,cAAc,EAApB;;AAEA,iBAAKb,QAAL,CAAcc,OAAd,CAAsB,UAACV,MAAD;AAAA,uBAAYS,YAAYE,IAAZ,CAAiBX,MAAjB,CAAZ;AAAA,aAAtB;;AAEA,mBAAOS,WAAP;AACH;;;;EAzB+BG,0B","file":"session.js","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"]}
@@ -0,0 +1,195 @@
1
+ 'use strict';
2
+
3
+ exports.__esModule = true;
4
+ exports.TsMediaStream = exports.EVENTS = undefined;
5
+
6
+ var _createClass = function () { 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
7
+
8
+ var _eventEmitter = require('./event-emitter');
9
+
10
+ var _session = require('./session');
11
+
12
+ var _subscriber = require('./subscriber');
13
+
14
+ var _tsEnvironmentDetect = require('@techsee/techsee-common/lib/helpers/ts-environment-detect');
15
+
16
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
17
+
18
+ function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
19
+
20
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
21
+
22
+ /**
23
+ * @enum STREAM_EVENTS
24
+ */
25
+ var STREAM_EVENTS = {
26
+ PROPERTY_CHANGED: 'PROPERTY_CHANGED'
27
+ };
28
+
29
+ exports.EVENTS = STREAM_EVENTS;
30
+
31
+ /**
32
+ * Media stream wrapper.
33
+ *
34
+ * Represents video or audio stream, local or remote.
35
+ *
36
+ * General interface for the specific implementations - TsOpenTokStream or TsWebRTCStream
37
+ *
38
+ * @interface
39
+ *
40
+ * @see TsOpenTokStream
41
+ * @see TsWebRTCStream
42
+ */
43
+
44
+ var TsMediaStream = exports.TsMediaStream = function (_EventEmitter) {
45
+ _inherits(TsMediaStream, _EventEmitter);
46
+
47
+ function TsMediaStream(id, session) {
48
+ var isRemote = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
49
+ var videoTrackSettings = arguments[3];
50
+
51
+ _classCallCheck(this, TsMediaStream);
52
+
53
+ var _this = _possibleConstructorReturn(this, _EventEmitter.call(this));
54
+
55
+ session.registerStream(id, _this);
56
+ _this.remote = isRemote;
57
+
58
+ if (videoTrackSettings) {
59
+ _this._width = videoTrackSettings.width;
60
+ _this._height = videoTrackSettings.height;
61
+ }
62
+
63
+ /**
64
+ * Environment detector
65
+ *
66
+ * @protected
67
+ * @member { Object }
68
+ */
69
+ _this._environment = new _tsEnvironmentDetect.TsEnvironmentDetect();
70
+ return _this;
71
+ }
72
+
73
+ /**
74
+ * Stream video dimensions
75
+ *
76
+ * @member { Object }
77
+ * @type { Object }
78
+ */
79
+
80
+
81
+ TsMediaStream.prototype._updateVideoDimensions = function _updateVideoDimensions(videoEl) {
82
+ if (videoEl) {
83
+ this._width = videoEl.videoWidth;
84
+ this._height = videoEl.videoHeight;
85
+
86
+ var stream = this;
87
+ var property = 'videoDimensions';
88
+ var value = this.videoDimensions;
89
+
90
+ this._session.emit(_session.EVENTS.STREAM_PROPERTY_CHANGED, { stream: stream, property: property, value: value });
91
+ }
92
+ };
93
+
94
+ TsMediaStream.prototype.setupDimensionsListener = function setupDimensionsListener(videoEl, subscriber) {
95
+ var _this2 = this;
96
+
97
+ this._clearUpdateDimensionsInterval();
98
+
99
+ this._width = videoEl.videoWidth;
100
+ this._height = videoEl.videoHeight;
101
+
102
+ if (!subscriber && !this._environment.isIE11() && !this._environment.isIOS()) {
103
+ $(videoEl).on('resize', function () {
104
+ return _this2._updateVideoDimensions(videoEl);
105
+ });
106
+ } else {
107
+ this.intervalId = setInterval(function () {
108
+ if (subscriber && !(subscriber.stream && subscriber.stream.hasVideo)) {
109
+ return;
110
+ }
111
+
112
+ if (_this2._width !== videoEl.videoWidth || _this2._height !== videoEl.videoHeight) {
113
+ _this2._updateVideoDimensions(videoEl);
114
+ }
115
+ }, 500);
116
+ }
117
+
118
+ if (subscriber && this.intervalId) {
119
+ subscriber.on(_subscriber.EVENTS.DESTROYED, function () {
120
+ _this2._clearUpdateDimensionsInterval();
121
+ });
122
+ }
123
+ };
124
+
125
+ TsMediaStream.prototype._clearUpdateDimensionsInterval = function _clearUpdateDimensionsInterval() {
126
+ if (this.intervalId) {
127
+ clearInterval(this.intervalId);
128
+
129
+ this.intervalId = null;
130
+ }
131
+ };
132
+
133
+ /* eslint-disable no-unused-vars */
134
+ /**
135
+ * Get snapshot of the current frame in the media stream
136
+ *
137
+ * Used internally in (TsMediaPublisher | TsMediaSubscriber).getSnapshot
138
+ *
139
+ * @method
140
+ * @param { TsMediaPublisher | TsMediaSubscriber } tsMediaElement
141
+ * @param { Number } timeout Usually used in IE. Time between video element transformation and snapshot.
142
+ * @param { Object } options
143
+ * format: Output MIME type (image/png or image/jpeg; default: image/png).
144
+ * quality: Output quality (between 0 and 1; default: 0.92; applies only when the format is image/jpeg).
145
+ * x: The x coordinate of the crop starting position.
146
+ * y: The y coordinate of the crop starting position.
147
+ * w: Crop width.
148
+ * h: Crop Height.
149
+ *
150
+ * @returns { Promise<String> } snapshot
151
+ */
152
+
153
+
154
+ TsMediaStream.prototype.getSnapshot = function getSnapshot(tsMediaElement) {
155
+ var timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
156
+
157
+ var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},
158
+ _ref$format = _ref.format,
159
+ format = _ref$format === undefined ? 'image/png' : _ref$format,
160
+ _ref$quality = _ref.quality,
161
+ quality = _ref$quality === undefined ? 0.92 : _ref$quality,
162
+ x = _ref.x,
163
+ y = _ref.y,
164
+ w = _ref.w,
165
+ h = _ref.h;
166
+
167
+ throw new TypeError('The method \'getSnapshot\' is not implemented');
168
+ };
169
+
170
+ TsMediaStream.prototype.turnFlashlight = function turnFlashlight() {
171
+ var isTorchOn = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
172
+
173
+ throw new TypeError('The method \'turnFlashlight\' is not implemented');
174
+ };
175
+
176
+ TsMediaStream.prototype.setAutoLightOffTimer = function setAutoLightOffTimer(flashlightTimeout) {
177
+ throw new TypeError('The method \'setAutoLightOffTimer\' is not implemented');
178
+ };
179
+
180
+ /* eslint-enable no-unused-vars */
181
+
182
+
183
+ _createClass(TsMediaStream, [{
184
+ key: 'videoDimensions',
185
+ get: function get() {
186
+ // FIXME the fallback dimensions should be removed, and the Opentok/Webrtc implementations
187
+ // should pass the dimensions just like loopback does. I suspect current behavior is
188
+ // the cause of the video element "jumping" (change size) on initial connection
189
+ return { width: this._width || 480, height: this._height || 640 };
190
+ }
191
+ }]);
192
+
193
+ return TsMediaStream;
194
+ }(_eventEmitter.EventEmitter);
195
+ //# sourceMappingURL=stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["oldCode/stream.js"],"names":["STREAM_EVENTS","PROPERTY_CHANGED","EVENTS","TsMediaStream","id","session","isRemote","videoTrackSettings","registerStream","remote","_width","width","_height","height","_environment","TsEnvironmentDetect","_updateVideoDimensions","videoEl","videoWidth","videoHeight","stream","property","value","videoDimensions","_session","emit","SESSION_EVENTS","STREAM_PROPERTY_CHANGED","setupDimensionsListener","subscriber","_clearUpdateDimensionsInterval","isIE11","isIOS","$","on","intervalId","setInterval","hasVideo","SUBSCRIBER_EVENTS","DESTROYED","clearInterval","getSnapshot","tsMediaElement","timeout","format","quality","x","y","w","h","TypeError","turnFlashlight","isTorchOn","setAutoLightOffTimer","flashlightTimeout","EventEmitter"],"mappings":"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","file":"stream.js","sourcesContent":["import {EventEmitter} from './event-emitter';\n\nimport {\n EVENTS as SESSION_EVENTS\n} from './session';\n\nimport {\n EVENTS as SUBSCRIBER_EVENTS\n} from './subscriber';\n\nimport {TsEnvironmentDetect} from '@techsee/techsee-common/lib/helpers/ts-environment-detect';\n\n/**\n * @enum STREAM_EVENTS\n */\nconst STREAM_EVENTS = {\n PROPERTY_CHANGED: 'PROPERTY_CHANGED'\n};\n\nexport {STREAM_EVENTS as EVENTS};\n\n/**\n * Media stream wrapper.\n *\n * Represents video or audio stream, local or remote.\n *\n * General interface for the specific implementations - TsOpenTokStream or TsWebRTCStream\n *\n * @interface\n *\n * @see TsOpenTokStream\n * @see TsWebRTCStream\n */\nexport class TsMediaStream extends EventEmitter {\n constructor(id, session, isRemote = true, videoTrackSettings) {\n super();\n\n session.registerStream(id, this);\n this.remote = isRemote;\n\n if (videoTrackSettings) {\n this._width = videoTrackSettings.width;\n this._height = videoTrackSettings.height;\n }\n\n /**\n * Environment detector\n *\n * @protected\n * @member { Object }\n */\n this._environment = new TsEnvironmentDetect();\n }\n\n /**\n * Stream video dimensions\n *\n * @member { Object }\n * @type { Object }\n */\n get videoDimensions() {\n // FIXME the fallback dimensions should be removed, and the Opentok/Webrtc implementations\n // should pass the dimensions just like loopback does. I suspect current behavior is\n // the cause of the video element \"jumping\" (change size) on initial connection\n return {width: this._width || 480, height: this._height || 640};\n }\n\n _updateVideoDimensions(videoEl) {\n if (videoEl) {\n this._width = videoEl.videoWidth;\n this._height = videoEl.videoHeight;\n\n const stream = this;\n const property = 'videoDimensions';\n const value = this.videoDimensions;\n\n this._session.emit(SESSION_EVENTS.STREAM_PROPERTY_CHANGED, {stream, property, value});\n }\n }\n\n setupDimensionsListener(videoEl, subscriber) {\n this._clearUpdateDimensionsInterval();\n\n this._width = videoEl.videoWidth;\n this._height = videoEl.videoHeight;\n\n if (!subscriber && !this._environment.isIE11() && !this._environment.isIOS()) {\n $(videoEl).on('resize', () => this._updateVideoDimensions(videoEl));\n } else {\n this.intervalId = setInterval(() => {\n if (subscriber && !(subscriber.stream && subscriber.stream.hasVideo)) {\n return;\n }\n\n if (this._width !== videoEl.videoWidth || this._height !== videoEl.videoHeight) {\n this._updateVideoDimensions(videoEl);\n }\n }, 500);\n }\n\n if (subscriber && this.intervalId) {\n subscriber.on(SUBSCRIBER_EVENTS.DESTROYED, () => {\n this._clearUpdateDimensionsInterval();\n });\n }\n }\n\n _clearUpdateDimensionsInterval() {\n if (this.intervalId) {\n clearInterval(this.intervalId);\n\n this.intervalId = null;\n }\n }\n\n /* eslint-disable no-unused-vars */\n /**\n * Get snapshot of the current frame in the media stream\n *\n * Used internally in (TsMediaPublisher | TsMediaSubscriber).getSnapshot\n *\n * @method\n * @param { TsMediaPublisher | TsMediaSubscriber } tsMediaElement\n * @param { Number } timeout Usually used in IE. Time between video element transformation and snapshot.\n * @param { Object } options\n * format: Output MIME type (image/png or image/jpeg; default: image/png).\n * quality: Output quality (between 0 and 1; default: 0.92; applies only when the format is image/jpeg).\n * x: The x coordinate of the crop starting position.\n * y: The y coordinate of the crop starting position.\n * w: Crop width.\n * h: Crop Height.\n *\n * @returns { Promise<String> } snapshot\n */\n getSnapshot(tsMediaElement, timeout = 0, {format = 'image/png', quality = 0.92, x, y, w, h} = {}) {\n throw new TypeError('The method \\'getSnapshot\\' is not implemented');\n }\n\n turnFlashlight(isTorchOn = true) {\n throw new TypeError('The method \\'turnFlashlight\\' is not implemented');\n }\n\n setAutoLightOffTimer(flashlightTimeout) {\n throw new TypeError('The method \\'setAutoLightOffTimer\\' is not implemented');\n }\n\n /* eslint-enable no-unused-vars */\n}\n\n"]}
@@ -0,0 +1,90 @@
1
+ 'use strict';
2
+
3
+ exports.__esModule = true;
4
+ exports.TsMediaSubscriber = exports.EVENTS = undefined;
5
+
6
+ var _eventEmitter = require('./event-emitter');
7
+
8
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
9
+
10
+ function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
11
+
12
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
13
+
14
+ /**
15
+ * @enum SUBSCRIBER_EVENTS
16
+ */
17
+ var SUBSCRIBER_EVENTS = {
18
+ DESTROYED: 'DESTROYED',
19
+ DISCONNECTED: 'DISCONNECTED'
20
+ };
21
+
22
+ exports.EVENTS = SUBSCRIBER_EVENTS;
23
+
24
+ /**
25
+ * Subscriber object represents subscription to a media stream.
26
+ *
27
+ * Exposes session and stream wrapper methods specific for media subscription.
28
+ *
29
+ * Instance is returned by TsMediaStream.subscribe() call
30
+ *
31
+ * @class
32
+ *
33
+ * @see TsMediaStream
34
+ */
35
+
36
+ var TsMediaSubscriber = exports.TsMediaSubscriber = function (_EventEmitter) {
37
+ _inherits(TsMediaSubscriber, _EventEmitter);
38
+
39
+ function TsMediaSubscriber(data) {
40
+ _classCallCheck(this, TsMediaSubscriber);
41
+
42
+ var _this = _possibleConstructorReturn(this, _EventEmitter.call(this));
43
+
44
+ _.assign(_this, data);
45
+ return _this;
46
+ }
47
+
48
+ /**
49
+ * Unsubscribe from the media stream and destroy subscriber's view
50
+ *
51
+ * @method
52
+ */
53
+
54
+
55
+ TsMediaSubscriber.prototype.destroy = function destroy() {
56
+ return this.stream.destroySubscriber(this);
57
+ };
58
+
59
+ /**
60
+ * Get snapshot of the current frame in the media stream
61
+ *
62
+ * @method
63
+ * @param { Number } timeout Usually used in IE.
64
+ * Time between video element transformation and snapshot.
65
+ *
66
+ * @param { Object } options Snapshot options: format, quality and crop positions
67
+ *
68
+ * @returns { Promise<String> } snapshot
69
+ */
70
+
71
+
72
+ TsMediaSubscriber.prototype.getSnapshot = function getSnapshot(timeout, options) {
73
+ return this.stream.getSnapshot(this, timeout, options);
74
+ };
75
+
76
+ /**
77
+ * Get statistics of the media subscription like bytes received.
78
+ *
79
+ * @method
80
+ * @returns { Promise<ToBeDefined> } stats
81
+ */
82
+
83
+
84
+ TsMediaSubscriber.prototype.getStats = function getStats() {
85
+ return this.stream.getStats(this);
86
+ };
87
+
88
+ return TsMediaSubscriber;
89
+ }(_eventEmitter.EventEmitter);
90
+ //# sourceMappingURL=subscriber.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["oldCode/subscriber.js"],"names":["SUBSCRIBER_EVENTS","DESTROYED","DISCONNECTED","EVENTS","TsMediaSubscriber","data","_","assign","destroy","stream","destroySubscriber","getSnapshot","timeout","options","getStats","EventEmitter"],"mappings":";;;;;AAAA;;;;;;;;AAEA;;;AAGA,IAAMA,oBAAoB;AACtBC,eAAW,WADW;AAEtBC,kBAAc;AAFQ,CAA1B;;QAK8BC,M,GAArBH,iB;;AAET;;;;;;;;;;;;IAWaI,iB,WAAAA,iB;;;AACT,+BAAYC,IAAZ,EAAkB;AAAA;;AAAA,qDACd,wBADc;;AAGdC,UAAEC,MAAF,QAAeF,IAAf;AAHc;AAIjB;;AAED;;;;;;;gCAKAG,O,sBAAU;AACN,eAAO,KAAKC,MAAL,CAAYC,iBAAZ,CAA8B,IAA9B,CAAP;AACH,K;;AAED;;;;;;;;;;;;;gCAWAC,W,wBAAYC,O,EAASC,O,EAAS;AAC1B,eAAO,KAAKJ,MAAL,CAAYE,WAAZ,CAAwB,IAAxB,EAA8BC,OAA9B,EAAuCC,OAAvC,CAAP;AACH,K;;AAED;;;;;;;;gCAMAC,Q,uBAAW;AACP,eAAO,KAAKL,MAAL,CAAYK,QAAZ,CAAqB,IAArB,CAAP;AACH,K;;;EAvCkCC,0B","file":"subscriber.js","sourcesContent":["import { EventEmitter } from './event-emitter';\n\n/**\n * @enum SUBSCRIBER_EVENTS\n */\nconst SUBSCRIBER_EVENTS = {\n DESTROYED: 'DESTROYED',\n DISCONNECTED: 'DISCONNECTED',\n};\n\nexport { SUBSCRIBER_EVENTS as EVENTS };\n\n/**\n * Subscriber object represents subscription to a media stream.\n *\n * Exposes session and stream wrapper methods specific for media subscription.\n *\n * Instance is returned by TsMediaStream.subscribe() call\n *\n * @class\n *\n * @see TsMediaStream\n */\nexport class TsMediaSubscriber extends EventEmitter {\n constructor(data) {\n super();\n\n _.assign(this, data);\n }\n\n /**\n * Unsubscribe from the media stream and destroy subscriber's view\n *\n * @method\n */\n destroy() {\n return this.stream.destroySubscriber(this);\n }\n\n /**\n * Get snapshot of the current frame in the media stream\n *\n * @method\n * @param { Number } timeout Usually used in IE.\n * Time between video element transformation and snapshot.\n *\n * @param { Object } options Snapshot options: format, quality and crop positions\n *\n * @returns { Promise<String> } snapshot\n */\n getSnapshot(timeout, options) {\n return this.stream.getSnapshot(this, timeout, options);\n }\n\n /**\n * Get statistics of the media subscription like bytes received.\n *\n * @method\n * @returns { Promise<ToBeDefined> } stats\n */\n getStats() {\n return this.stream.getStats(this);\n }\n}\n\n"]}
@@ -0,0 +1,36 @@
1
+ export declare enum TsTracerType {
2
+ WebRtcSessionTrace = "WebRtcSessionTrace",
3
+ TSMediaServiceHelper = "TSMediaServiceHelper"
4
+ }
5
+ export interface ITsTracerEvent {
6
+ readonly Type: TsTracerType;
7
+ readonly Message: string;
8
+ readonly Extra: any[];
9
+ }
10
+ export interface ITsTraceEvent {
11
+ (event: ITsTracerEvent): any;
12
+ }
13
+ export declare class TsTracer {
14
+ private _enabled;
15
+ private readonly _type;
16
+ private readonly _callback;
17
+ consoleOutputEnabled: boolean;
18
+ constructor(tracerType: TsTracerType, enabled: boolean, callback: ITsTraceEvent);
19
+ get Enabled(): boolean;
20
+ set Enabled(enabled: boolean);
21
+ get TracerType(): TsTracerType;
22
+ trace(message: string, ...rest: any[]): void;
23
+ }
24
+ export declare class TsTracers {
25
+ private _tracers;
26
+ private _callbacks;
27
+ constructor();
28
+ register(callback: ITsTraceEvent): void;
29
+ unregister(callback: ITsTraceEvent): void;
30
+ private _add;
31
+ enableTracers(value: boolean): void;
32
+ enableConsoleOutput(): void;
33
+ getTracer(tracerType: TsTracerType): TsTracer | undefined;
34
+ }
35
+ export declare function getTracers(): TsTracers;
36
+ export declare function getTracer(tracerType?: TsTracerType): TsTracer | undefined;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/oldCode/tracer.ts"],"names":[],"mappings":"AAAA,oBAAY,YAAY;IACpB,kBAAkB,uBAAuB;IACzC,oBAAoB,yBAAyB;CAChD;AAED,MAAM,WAAW,cAAc;IAC3B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC1B,CAAC,KAAK,EAAE,cAAc,GAAG,GAAG,CAAA;CAC/B;AA0BD,qBAAa,QAAQ;IACjB,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiD;IACvE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;IACnC,oBAAoB,EAAE,OAAO,CAAS;gBAEjC,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa;IAM/E,IAAI,OAAO,IAIU,OAAO,CAF3B;IAED,IAAI,OAAO,CAAC,OAAO,EAAE,OAAO,EAE3B;IAED,IAAI,UAAU,iBAEb;IAED,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE;CAaxC;AAED,qBAAa,SAAS;IAClB,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,UAAU,CAA4B;;IAY9C,QAAQ,CAAC,QAAQ,EAAE,aAAa;IAMhC,UAAU,CAAC,QAAQ,EAAE,aAAa;IAQlC,OAAO,CAAC,IAAI;IASZ,aAAa,CAAC,KAAK,EAAE,OAAO;IAQ5B,mBAAmB;IAQnB,SAAS,CAAC,UAAU,EAAE,YAAY;CAIrC;AAID,wBAAgB,UAAU,IAAI,SAAS,CAEtC;AAED,wBAAgB,SAAS,CAAC,UAAU,GAAE,YAA8C,wBAGnF","file":"tracer.d.ts","sourcesContent":["export enum TsTracerType {\n WebRtcSessionTrace = 'WebRtcSessionTrace',\n TSMediaServiceHelper = 'TSMediaServiceHelper'\n}\n\nexport interface ITsTracerEvent {\n readonly Type: TsTracerType;\n readonly Message: string;\n readonly Extra: any[];\n}\n\nexport interface ITsTraceEvent {\n (event: ITsTracerEvent): any\n}\n\nclass TsTracerEvent implements ITsTracerEvent {\n private _type: TsTracerType = TsTracerType.WebRtcSessionTrace;\n private _message: string = '';\n private _extra: any[];\n\n constructor(type: TsTracerType, message: string, extra: any[]) {\n this._type = type;\n this._message = message;\n this._extra = extra;\n }\n\n get Type(): TsTracerType {\n return this._type;\n }\n\n get Message(): string {\n return this._message;\n }\n\n get Extra(): any[] {\n return this._extra;\n }\n}\n\nexport class TsTracer {\n private _enabled: boolean = false;\n private readonly _type: TsTracerType = TsTracerType.WebRtcSessionTrace;\n private readonly _callback: ITsTraceEvent;\n public consoleOutputEnabled: boolean = false;\n\n constructor(tracerType: TsTracerType, enabled: boolean, callback: ITsTraceEvent) {\n this._type = tracerType;\n this._enabled = enabled;\n this._callback = callback;\n }\n\n get Enabled() {\n return this._enabled;\n }\n\n set Enabled(enabled: boolean) {\n this._enabled = enabled;\n }\n\n get TracerType() {\n return this._type;\n }\n\n trace(message: string, ...rest: any[]) {\n if (this.consoleOutputEnabled) {\n console.log(`${this._type}:${message}`, ...rest);\n }\n\n if (!this.Enabled) {\n return;\n }\n\n if (this._callback) {\n this._callback(new TsTracerEvent(this._type, message, rest));\n }\n }\n}\n\nexport class TsTracers {\n private _tracers: Array<TsTracer> = [];\n private _callbacks: Array<ITsTraceEvent> = [];\n\n constructor() {\n\n // @ts-ignore\n _.keys(TsTracerType).forEach((tracerType: string) => {\n\n // @ts-ignore\n this._add(TsTracerType[tracerType]);\n });\n }\n\n register(callback: ITsTraceEvent) {\n if (this._callbacks.indexOf(callback) < 0) {\n this._callbacks.push(callback);\n }\n }\n\n unregister(callback: ITsTraceEvent) {\n let index = this._callbacks.indexOf(callback);\n\n if (index >= 0) {\n this._callbacks.splice(index, 1);\n }\n }\n\n private _add(tracerType: TsTracerType) {\n const tracer = new TsTracer(tracerType, false, (event: ITsTracerEvent) => {\n // @ts-ignore\n _.forEach(this._callbacks, (callback) => callback(event));\n });\n\n this._tracers.push(tracer);\n }\n\n enableTracers(value: boolean) {\n // @ts-ignore\n _.forEach(this._tracers, (tracer) => {\n tracer.Enabled = value;\n\n });\n }\n\n enableConsoleOutput() {\n // @ts-ignore\n _.forEach(this._tracers, (tracer) => {\n tracer.consoleOutputEnabled = true;\n\n });\n }\n\n getTracer(tracerType: TsTracerType) {\n // @ts-ignore\n return _.find(this._tracers, (tracer) => tracer.TracerType === tracerType);\n }\n}\n\nconst tracers = new TsTracers();\n\nexport function getTracers(): TsTracers {\n return tracers;\n}\n\nexport function getTracer(tracerType: TsTracerType = TsTracerType.WebRtcSessionTrace) {\n\n return getTracers().getTracer(tracerType);\n}\n"]}
@@ -0,0 +1,161 @@
1
+ "use strict";
2
+
3
+ var __spreadArrays = undefined && undefined.__spreadArrays || function () {
4
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++) {
5
+ s += arguments[i].length;
6
+ }for (var r = Array(s), k = 0, i = 0; i < il; i++) {
7
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {
8
+ r[k] = a[j];
9
+ }
10
+ }return r;
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.getTracer = exports.getTracers = exports.TsTracers = exports.TsTracer = exports.TsTracerType = void 0;
14
+ var TsTracerType;
15
+ (function (TsTracerType) {
16
+ TsTracerType["WebRtcSessionTrace"] = "WebRtcSessionTrace";
17
+ TsTracerType["TSMediaServiceHelper"] = "TSMediaServiceHelper";
18
+ })(TsTracerType = exports.TsTracerType || (exports.TsTracerType = {}));
19
+ var TsTracerEvent = /** @class */function () {
20
+ function TsTracerEvent(type, message, extra) {
21
+ this._type = TsTracerType.WebRtcSessionTrace;
22
+ this._message = '';
23
+ this._type = type;
24
+ this._message = message;
25
+ this._extra = extra;
26
+ }
27
+ Object.defineProperty(TsTracerEvent.prototype, "Type", {
28
+ get: function get() {
29
+ return this._type;
30
+ },
31
+ enumerable: false,
32
+ configurable: true
33
+ });
34
+ Object.defineProperty(TsTracerEvent.prototype, "Message", {
35
+ get: function get() {
36
+ return this._message;
37
+ },
38
+ enumerable: false,
39
+ configurable: true
40
+ });
41
+ Object.defineProperty(TsTracerEvent.prototype, "Extra", {
42
+ get: function get() {
43
+ return this._extra;
44
+ },
45
+ enumerable: false,
46
+ configurable: true
47
+ });
48
+ return TsTracerEvent;
49
+ }();
50
+ var TsTracer = /** @class */function () {
51
+ function TsTracer(tracerType, enabled, callback) {
52
+ this._enabled = false;
53
+ this._type = TsTracerType.WebRtcSessionTrace;
54
+ this.consoleOutputEnabled = false;
55
+ this._type = tracerType;
56
+ this._enabled = enabled;
57
+ this._callback = callback;
58
+ }
59
+ Object.defineProperty(TsTracer.prototype, "Enabled", {
60
+ get: function get() {
61
+ return this._enabled;
62
+ },
63
+ set: function set(enabled) {
64
+ this._enabled = enabled;
65
+ },
66
+ enumerable: false,
67
+ configurable: true
68
+ });
69
+ Object.defineProperty(TsTracer.prototype, "TracerType", {
70
+ get: function get() {
71
+ return this._type;
72
+ },
73
+ enumerable: false,
74
+ configurable: true
75
+ });
76
+ TsTracer.prototype.trace = function (message) {
77
+ var rest = [];
78
+ for (var _i = 1; _i < arguments.length; _i++) {
79
+ rest[_i - 1] = arguments[_i];
80
+ }
81
+ if (this.consoleOutputEnabled) {
82
+ console.log.apply(console, __spreadArrays([this._type + ":" + message], rest));
83
+ }
84
+ if (!this.Enabled) {
85
+ return;
86
+ }
87
+ if (this._callback) {
88
+ this._callback(new TsTracerEvent(this._type, message, rest));
89
+ }
90
+ };
91
+ return TsTracer;
92
+ }();
93
+ exports.TsTracer = TsTracer;
94
+ var TsTracers = /** @class */function () {
95
+ function TsTracers() {
96
+ var _this = this;
97
+ this._tracers = [];
98
+ this._callbacks = [];
99
+ // @ts-ignore
100
+ _.keys(TsTracerType).forEach(function (tracerType) {
101
+ // @ts-ignore
102
+ _this._add(TsTracerType[tracerType]);
103
+ });
104
+ }
105
+ TsTracers.prototype.register = function (callback) {
106
+ if (this._callbacks.indexOf(callback) < 0) {
107
+ this._callbacks.push(callback);
108
+ }
109
+ };
110
+ TsTracers.prototype.unregister = function (callback) {
111
+ var index = this._callbacks.indexOf(callback);
112
+ if (index >= 0) {
113
+ this._callbacks.splice(index, 1);
114
+ }
115
+ };
116
+ TsTracers.prototype._add = function (tracerType) {
117
+ var _this = this;
118
+ var tracer = new TsTracer(tracerType, false, function (event) {
119
+ // @ts-ignore
120
+ _.forEach(_this._callbacks, function (callback) {
121
+ return callback(event);
122
+ });
123
+ });
124
+ this._tracers.push(tracer);
125
+ };
126
+ TsTracers.prototype.enableTracers = function (value) {
127
+ // @ts-ignore
128
+ _.forEach(this._tracers, function (tracer) {
129
+ tracer.Enabled = value;
130
+ });
131
+ };
132
+ TsTracers.prototype.enableConsoleOutput = function () {
133
+ // @ts-ignore
134
+ _.forEach(this._tracers, function (tracer) {
135
+ tracer.consoleOutputEnabled = true;
136
+ });
137
+ };
138
+ TsTracers.prototype.getTracer = function (tracerType) {
139
+ // @ts-ignore
140
+ return _.find(this._tracers, function (tracer) {
141
+ return tracer.TracerType === tracerType;
142
+ });
143
+ };
144
+ return TsTracers;
145
+ }();
146
+ exports.TsTracers = TsTracers;
147
+ var tracers = new TsTracers();
148
+ function getTracers() {
149
+ return tracers;
150
+ }
151
+ exports.getTracers = getTracers;
152
+ function getTracer(tracerType) {
153
+ if (tracerType === void 0) {
154
+ tracerType = TsTracerType.WebRtcSessionTrace;
155
+ }
156
+ return getTracers().getTracer(tracerType);
157
+ }
158
+ exports.getTracer = getTracer;
159
+ //# sourceMappingURL=tracer.js.map
160
+
161
+ //# sourceMappingURL=tracer.js.map