@techsee/techsee-media-service 999.0.2-switch → 999.0.3-alpha2

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 (150) hide show
  1. package/lib/LocalStreamManager.d.ts +12 -0
  2. package/lib/LocalStreamManager.d.ts.map +1 -1
  3. package/lib/LocalStreamManager.js +440 -283
  4. package/lib/LocalStreamManager.js.map +1 -1
  5. package/lib/MediaConstants.d.ts +14 -4
  6. package/lib/MediaConstants.d.ts.map +1 -1
  7. package/lib/MediaConstants.js +83 -38
  8. package/lib/MediaConstants.js.map +1 -1
  9. package/lib/MediaContracts.d.ts +17 -14
  10. package/lib/MediaContracts.d.ts.map +1 -1
  11. package/lib/MediaContracts.js +3 -3
  12. package/lib/MediaContracts.js.map +1 -1
  13. package/lib/MediaPublisher.d.ts +3 -3
  14. package/lib/MediaPublisher.d.ts.map +1 -1
  15. package/lib/MediaPublisher.js +46 -35
  16. package/lib/MediaPublisher.js.map +1 -1
  17. package/lib/MediaServiceBase.d.ts +21 -7
  18. package/lib/MediaServiceBase.d.ts.map +1 -1
  19. package/lib/MediaServiceBase.js +924 -586
  20. package/lib/MediaServiceBase.js.map +1 -1
  21. package/lib/MediaSession/MediaServer.d.ts +45 -0
  22. package/lib/MediaSession/MediaServer.d.ts.map +1 -0
  23. package/lib/MediaSession/MediaServer.js +538 -0
  24. package/lib/MediaSession/MediaServer.js.map +1 -0
  25. package/lib/MediaSession/MediaSessionBase.d.ts +10 -1
  26. package/lib/MediaSession/MediaSessionBase.d.ts.map +1 -1
  27. package/lib/MediaSession/MediaSessionBase.js +128 -66
  28. package/lib/MediaSession/MediaSessionBase.js.map +1 -1
  29. package/lib/MediaSession/SessionOpentok.d.ts +11 -9
  30. package/lib/MediaSession/SessionOpentok.d.ts.map +1 -1
  31. package/lib/MediaSession/SessionOpentok.js +500 -352
  32. package/lib/MediaSession/SessionOpentok.js.map +1 -1
  33. package/lib/MediaSession/SessionTurn.d.ts +4 -1
  34. package/lib/MediaSession/SessionTurn.d.ts.map +1 -1
  35. package/lib/MediaSession/SessionTurn.js +611 -422
  36. package/lib/MediaSession/SessionTurn.js.map +1 -1
  37. package/lib/MediaSession/TurnConstants.js +31 -30
  38. package/lib/MediaSession/TurnConstants.js.map +1 -1
  39. package/lib/MediaSubscriber.d.ts +11 -11
  40. package/lib/MediaSubscriber.d.ts.map +1 -1
  41. package/lib/MediaSubscriber.js +236 -192
  42. package/lib/MediaSubscriber.js.map +1 -1
  43. package/lib/MediaUtils/Compatibility.d.ts +2 -1
  44. package/lib/MediaUtils/Compatibility.d.ts.map +1 -1
  45. package/lib/MediaUtils/Compatibility.js +130 -85
  46. package/lib/MediaUtils/Compatibility.js.map +1 -1
  47. package/lib/MediaUtils/MediaDomUtils.d.ts +3 -2
  48. package/lib/MediaUtils/MediaDomUtils.d.ts.map +1 -1
  49. package/lib/MediaUtils/MediaDomUtils.js +235 -174
  50. package/lib/MediaUtils/MediaDomUtils.js.map +1 -1
  51. package/lib/MediaUtils/MediaTracer.js +9 -4
  52. package/lib/MediaUtils/MediaTracer.js.map +1 -1
  53. package/lib/MediaUtils/index.d.ts +1 -0
  54. package/lib/MediaUtils/index.d.ts.map +1 -0
  55. package/lib/MediaUtils/index.js +16 -0
  56. package/lib/MediaUtils/index.js.map +1 -0
  57. package/lib/MultiParty/Contracts.d.ts +16 -0
  58. package/lib/MultiParty/Contracts.d.ts.map +1 -0
  59. package/lib/MultiParty/Contracts.js +6 -0
  60. package/lib/MultiParty/Contracts.js.map +1 -0
  61. package/lib/MultiParty/DetectWebRtcService.d.ts +16 -0
  62. package/lib/MultiParty/DetectWebRtcService.d.ts.map +1 -0
  63. package/lib/MultiParty/DetectWebRtcService.js +79 -0
  64. package/lib/MultiParty/DetectWebRtcService.js.map +1 -0
  65. package/lib/MultiParty/MediaCapabilitiesService.d.ts +23 -0
  66. package/lib/MultiParty/MediaCapabilitiesService.d.ts.map +1 -0
  67. package/lib/MultiParty/MediaCapabilitiesService.js +369 -0
  68. package/lib/MultiParty/MediaCapabilitiesService.js.map +1 -0
  69. package/lib/MultiParty/MediaCapabilitiesUtils.d.ts +5 -0
  70. package/lib/MultiParty/MediaCapabilitiesUtils.d.ts.map +1 -0
  71. package/lib/MultiParty/MediaCapabilitiesUtils.js +305 -0
  72. package/lib/MultiParty/MediaCapabilitiesUtils.js.map +1 -0
  73. package/lib/MultiParty/MultiPartyService.d.ts +40 -0
  74. package/lib/MultiParty/MultiPartyService.d.ts.map +1 -0
  75. package/lib/MultiParty/MultiPartyService.js +70 -0
  76. package/lib/MultiParty/MultiPartyService.js.map +1 -0
  77. package/lib/MultiParty/MultiPartyServiceFactory.d.ts +3 -0
  78. package/lib/MultiParty/MultiPartyServiceFactory.d.ts.map +1 -0
  79. package/lib/MultiParty/MultiPartyServiceFactory.js +21 -0
  80. package/lib/MultiParty/MultiPartyServiceFactory.js.map +1 -0
  81. package/lib/MultiParty/OpentokMultiPartyService.d.ts +29 -0
  82. package/lib/MultiParty/OpentokMultiPartyService.d.ts.map +1 -0
  83. package/lib/MultiParty/OpentokMultiPartyService.js +888 -0
  84. package/lib/MultiParty/OpentokMultiPartyService.js.map +1 -0
  85. package/lib/MultiParty/VideoLayoutType.d.ts +4 -0
  86. package/lib/MultiParty/VideoLayoutType.d.ts.map +1 -0
  87. package/lib/MultiParty/VideoLayoutType.js +13 -0
  88. package/lib/MultiParty/VideoLayoutType.js.map +1 -0
  89. package/lib/MultiParty/index.d.ts +4 -0
  90. package/lib/MultiParty/index.d.ts.map +1 -0
  91. package/lib/MultiParty/index.js +61 -0
  92. package/lib/MultiParty/index.js.map +1 -0
  93. package/lib/MultiParty/opentok.d.ts +503 -0
  94. package/lib/TechseeMediaStream.d.ts +6 -6
  95. package/lib/TechseeMediaStream.d.ts.map +1 -1
  96. package/lib/TechseeMediaStream.js +59 -53
  97. package/lib/TechseeMediaStream.js.map +1 -1
  98. package/lib/oldCode/constants.js +20 -15
  99. package/lib/oldCode/constants.js.map +1 -1
  100. package/lib/oldCode/event-emitter.js +45 -22
  101. package/lib/oldCode/event-emitter.js.map +1 -1
  102. package/lib/oldCode/index.js +48 -52
  103. package/lib/oldCode/index.js.map +1 -1
  104. package/lib/oldCode/opentok/session.js +261 -236
  105. package/lib/oldCode/opentok/session.js.map +1 -1
  106. package/lib/oldCode/opentok/stream.js +283 -269
  107. package/lib/oldCode/opentok/stream.js.map +1 -1
  108. package/lib/oldCode/publisher.js +96 -71
  109. package/lib/oldCode/publisher.js.map +1 -1
  110. package/lib/oldCode/service.js +294 -272
  111. package/lib/oldCode/service.js.map +1 -1
  112. package/lib/oldCode/session.js +82 -60
  113. package/lib/oldCode/session.js.map +1 -1
  114. package/lib/oldCode/stream.js +153 -125
  115. package/lib/oldCode/stream.js.map +1 -1
  116. package/lib/oldCode/subscriber.js +60 -35
  117. package/lib/oldCode/subscriber.js.map +1 -1
  118. package/lib/oldCode/tracer.d.ts +3 -2
  119. package/lib/oldCode/tracer.d.ts.map +1 -1
  120. package/lib/oldCode/tracer.js +181 -130
  121. package/lib/oldCode/tracer.js.map +1 -1
  122. package/lib/oldCode/utils/ImageFixer.js +67 -44
  123. package/lib/oldCode/utils/ImageFixer.js.map +1 -1
  124. package/lib/oldCode/webrtc/constants.js +102 -110
  125. package/lib/oldCode/webrtc/constants.js.map +1 -1
  126. package/lib/oldCode/webrtc/helper.js +176 -124
  127. package/lib/oldCode/webrtc/helper.js.map +1 -1
  128. package/lib/oldCode/webrtc/session-kms.js +408 -393
  129. package/lib/oldCode/webrtc/session-kms.js.map +1 -1
  130. package/lib/oldCode/webrtc/session-loopback.js +245 -227
  131. package/lib/oldCode/webrtc/session-loopback.js.map +1 -1
  132. package/lib/oldCode/webrtc/session-turn.js +705 -658
  133. package/lib/oldCode/webrtc/session-turn.js.map +1 -1
  134. package/lib/oldCode/webrtc/session-turn.v2.js +480 -471
  135. package/lib/oldCode/webrtc/session-turn.v2.js.map +1 -1
  136. package/lib/oldCode/webrtc/session.js +12 -6
  137. package/lib/oldCode/webrtc/session.js.map +1 -1
  138. package/lib/oldCode/webrtc/stream.js +526 -504
  139. package/lib/oldCode/webrtc/stream.js.map +1 -1
  140. package/lib/oldCode/webrtc/temasys/adapter-loader.js +5 -6
  141. package/lib/oldCode/webrtc/temasys/adapter-loader.js.map +1 -1
  142. package/lib/oldCode/webrtc/temasys/adapter.js +5264 -5192
  143. package/lib/oldCode/webrtc/temasys/adapter.js.map +1 -1
  144. package/lib/oldCode/webrtc/webrtc-ie-shim.js +3357 -2927
  145. package/lib/oldCode/webrtc/webrtc-ie-shim.js.map +1 -1
  146. package/lib/qos/raw-qos.js +348 -273
  147. package/lib/qos/raw-qos.js.map +1 -1
  148. package/lib/webrtc-ie-shim.js +3386 -2985
  149. package/lib/webrtc-ie-shim.js.map +1 -1
  150. package/package.json +54 -42
@@ -1 +1 @@
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","EVENTS","sessions","latestLocalStream","userMediaPromise","TsMediaServiceFacade","createLocalMediaStream","bind","destroyLocalMediaStream","constraints","trace","videoTrack","getVideoTracks","length","readyState","navigator","mediaDevices","getUserMedia","stream","catch","err","getTracks","forEach","track","stop","toggleMicrophone","enableMic","audioTracks","getAudioTracks","enabled","getDevices","error","devices","enumerateDevices","verifyCameraAccess","deviceOpts","isVideoPlaySupportedOnDevice","window","WebRTCAdapter","OTPlugin","isInstalled","initSession","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":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AAKA;;AACA;;;;;;;;AAEA,IAAMA,SAAS,wBAAf;;AAGA,IAAMC,oBAAoB,IAAIC,wCAAJ,EAA1B;AACA,IAAMC,SAASF,kBAAkBE,MAAlB,EAAf;;AAEA,IAAIA,MAAJ,EAAY;AACRC,YAAQ,4BAAR;AACH,CAFD,MAEO,IAAI,EAAEH,kBAAkBI,QAAlB,MAAiCJ,kBAAkBK,YAAlB,KAAmC,EAAtE,CAAJ,EAAgF;AACnFF,YAAQ,oCAAR,EADmF,CACpC;AAClD;;AAED,SAASG,YAAT,GAAwB;AACpB,QAAI;AACA,eAAO,CAAC,CAACC,EAAT;AACH,KAFD,CAEE,OAAOC,CAAP,EAAU;AACR,eAAO,KAAP;AACH;AACJ;;AAED,SAASC,UAAT,GAAsB;AAClB,QAAIH,cAAJ,EAAoB;AAChB,eAAOI,QAAQC,OAAR,EAAP;AACH;;AAED,QAAIC,YAAY,KAAhB;;AAEA,WAAOF,QAAQG,MAAR,CACH,IAAIC,KAAJ,CAAUC,uDAAV,CADG,EAEH,YAAM;AACF,YAAIH,aAAaN,cAAjB,EAAiC;AAC7BM,wBAAY,IAAZ;;AAEA,mBAAOF,QAAQC,OAAR,EAAP;AACH;;AAED,eAAOD,QAAQM,KAAR,CAAcC,mDAAd,CAAP;AACH,KAVE,EAUA,CAVA,EAWFC,IAXE,CAWG;AAAA,eAAMN,aAAaF,QAAQS,MAAR,CAAe,iBAAf,CAAnB;AAAA,KAXH,CAAP;AAYH;;AAED;;;AAGA,IAAMC,iBAAiB;AACnBC,qBAAiB,iBADE;AAEnBC,eAAW;AAFQ,CAAvB;;QAK0BC,M,GAAlBH,c;;;AAER,IAAMI,WAAW,EAAjB;AACA,IAAIC,oBAAoB,IAAxB;AACA,IAAIC,mBAAmB,IAAvB;;AAEA;;;;;;;;IAOMC,oB;;;AACF,oCAAc;AAAA;;AAAA,qDACV,wBADU;;AAGV,cAAKC,sBAAL,GAA8B,MAAKA,sBAAL,CAA4BC,IAA5B,OAA9B;AACA,cAAKC,uBAAL,GAA+B,MAAKA,uBAAL,CAA6BD,IAA7B,OAA/B;AAJU;AAKb;;AAED;;;;;;;;;mCAWAD,sB,mCAAuBG,W,EAAa;AAChChC,eAAOiC,KAAP,CAAa,wBAAb;AACA,YAAIN,gBAAJ,EAAsB;AAClB,mBAAOA,gBAAP;AACH;;AAED,YAAID,iBAAJ,EAAuB;AACnB,gBAAMQ,aAAaR,kBAAkBS,cAAlB,EAAnB;AACA,gBAAID,WAAWE,MAAX,GAAoB,CAApB,IAAyBF,WAAW,CAAX,EAAcG,UAAd,KAA6B,MAA1D,EAAkE;AAC9D,uBAAO1B,QAAQC,OAAR,CAAgBc,iBAAhB,CAAP;AACH,aAFD,MAEO;AACH,qBAAKK,uBAAL;AACH;AACJ;;AAEDJ,2BAAmB,IAAIhB,OAAJ,CAAY,UAACC,OAAD,EAAUQ,MAAV,EAAqB;AAChD,gBAAI;AACApB,uBAAOiC,KAAP,CAAa,uCAAb;;AAEAK,0BAAUC,YAAV,CAAuBC,YAAvB,CAAoCR,WAApC,EACKb,IADL,CACU,UAACsB,MAAD,EAAY;AACdf,wCAAoBe,MAApB;AACAd,uCAAmB,IAAnB;AACAf,4BAAQ6B,MAAR;AACH,iBALL,EAMKC,KANL,CAMW,UAACC,GAAD,EAAS;AACZhB,uCAAmB,IAAnB;AACAP,2BAAOuB,GAAP;AACH,iBATL;AAUH,aAbD,CAaE,OAAOlC,CAAP,EAAU;AACRkB,mCAAmB,IAAnB;AACAP,uBAAOX,CAAP;AACH;AACJ,SAlBkB,CAAnB;;AAoBA,eAAOkB,gBAAP;AACH,K;;mCAEDI,uB,sCAA0B;AACtB/B,eAAOiC,KAAP,CAAa,uBAAb;AACA,YAAIP,iBAAJ,EAAuB;AACnBA,8BAAkBkB,SAAlB,GAA8BC,OAA9B,CAAsC,UAACC,KAAD,EAAW;AAC7CA,sBAAMC,IAAN;AACH,aAFD;AAGH;;AAEDrB,4BAAoB,IAApB;AACH,K;;mCAEDsB,gB,+BAAmC;AAAA,YAAlBC,SAAkB,uEAAN,IAAM;;AAC/B,YAAI,CAACvB,iBAAL,EAAwB;AACpB,mBAAOf,QAAQC,OAAR,EAAP;AACH;;AAED,YAAMsC,cAAcxB,kBAAkByB,cAAlB,EAApB;AACA,YAAID,YAAYd,MAAZ,GAAqB,CAAzB,EAA4B;AACxBc,wBAAY,CAAZ,EAAeE,OAAf,GAAyBH,SAAzB;AACH;;AAED,eAAOtC,QAAQC,OAAR,EAAP;AACH,K;;AAED;;;;;;;;;;;mCASAyC,U,yBAAa;AACT,YAAK,OAAO7C,EAAP,KAAc,WAAf,IAA+BA,EAA/B,IAAqCA,GAAG6C,UAA5C,EAAwD;AACpD,mBAAO,IAAI1C,OAAJ,CAAY,UAACC,OAAD,EAAUQ,MAAV,EAAqB;AACpCZ,mBAAG6C,UAAH,CAAc,UAACC,KAAD,EAAQC,OAAR,EAAoB;AAC9B,wBAAID,KAAJ,EAAW;AACP,+BAAOlC,OAAOkC,KAAP,CAAP;AACH;;AAED,2BAAO1C,QAAQ2C,OAAR,CAAP;AACH,iBAND;AAOH,aARM,CAAP;AASH;;AAED,YAAIjB,UAAUC,YAAV,IAA0BD,UAAUC,YAAV,CAAuBiB,gBAArD,EAAuE;AACnE,mBAAOlB,UAAUC,YAAV,CAAuBiB,gBAAvB,EAAP;AACH;;AAED,eAAO7C,QAAQS,MAAR,CAAe,6BAAf,CAAP;AACH,K;;AAED;;;;;;;;;;;mCASAqC,kB,+BAAmBC,U,EAAY;AAC3B,eAAO,wCAA2BA,UAA3B,CAAP;AACH,K;;mCAEDC,4B,2CAA+B;AAC3B,YAAI,CAACxD,MAAL,EAAa;AACT,mBAAOQ,QAAQC,OAAR,CAAgB,IAAhB,CAAP;AACH;;AAED,YAAI,CAAC,CAACgD,OAAOC,aAAb,EAA4B;AACxB,mBAAOlD,QAAQC,OAAR,CAAgB,IAAhB,CAAP;AACH;;AAED,YAAIgD,OAAOpD,EAAP,IAAaoD,OAAOE,QAApB,IAAgCF,OAAOE,QAAP,CAAgBC,WAAhD,IAA+DH,OAAOE,QAAP,CAAgBC,WAAhB,EAAnE,EAAkG;AAC9F,mBAAOpD,QAAQC,OAAR,CAAgB,IAAhB,CAAP;AACH;;AAED,eAAOD,QAAQC,OAAR,CAAgB,KAAhB,CAAP;AACH,K;;AAED;;;;;;;;;;;;;;;;;;;;;mCAmBAoD,W,0BAUG;AAAA;;AAAA,uFAHa;AACZC,sBAAU,KADE;AAEZC,wBAAY;AAFA,SAGb;AAAA,YATaC,gBASb,QATaA,gBASb;AAAA,YARaF,QAQb,QARaA,QAQb;AAAA,YAPaC,UAOb,QAPaA,UAOb;AAAA,YANaE,WAMb,QANaA,WAMb;AAAA,YALaV,UAKb,QALaA,UAKb;AAAA,YAJaW,UAIb,QAJaA,UAIb;;AACC,eAAO1D,QAAQC,OAAR,GACFO,IADE,CACG,YAAM;AACR,gBAAIgD,qBAAqBG,+BAAoBC,WAA7C,EAA0D;AACtD;AACA;AACA;AACA,uBAAO5D,QAAQC,OAAR,GACFO,IADE,CACG,YAAM;AACR,wBAAMqD,iBAAiB;AACnBP,0CADmB;AAEnBC,8CAFmB;;AAInBE,qCAAaA,YAAYK,aAJN;AAKnBf,oCAAYA,cAAc,EAACgB,OAAO,IAAR,EAAcC,OAAO,IAArB;AALP,qBAAvB;;AAQA,2BAAO,IAAIC,0BAAJ,CAAqBJ,cAArB,CAAP;AACH,iBAXE,CAAP;AAYH,aAhBD,MAgBO,IAAIL,qBAAqBG,+BAAoBO,UAAzC,IAAuDR,UAA3D,EAAuE;AAC1E;AACA;AACA;AACA,uBAAO1D,QAAQC,OAAR,GACFO,IADE,CACG,YAAM;AACR,wBAAI2D,QAAQ,IAAZ;;AAEA,wBAAI,CAACT,UAAL,EAAiB;AACbS,gCAASX,qBAAqBG,+BAAoBO,UAA1C,GAAwDT,YAAYW,UAApE,GAAiFX,YAAYY,OAArG;AACH;;AAED,wBAAMR,iBAAiB;AACnBP,0CADmB;AAEnBC,8CAFmB;AAGnBE,qCAAaU,KAHM;AAInBpB,oCAAYA,cAAc,EAACgB,OAAO,IAAR,EAAcC,OAAO,IAArB;AAJP,qBAAvB;;AAOA,wBAAIN,UAAJ,EAAgB;AACZ,+BAAO,IAAIY,+BAAJ,CAA0BT,cAA1B,CAAP;AACH,qBAFD,MAEO,IAAIP,QAAJ,EAAc;AACjB,+BAAO,IAAIiB,2BAAJ,CAAsBV,cAAtB,EAAsC,OAAK3C,sBAA3C,CAAP;AACH,qBAFM,MAEA;AACH,+BAAO,OAAKsD,qBAAL,CAA2BX,cAA3B,EACFrD,IADE,CACG,UAACiE,YAAD,EAAkB;AACpB,mCAAKC,0BAAL,CAAgCD,YAAhC;;AAEA,mCAAOA,YAAP;AACH,yBALE,CAAP;AAMH;AACJ,iBA3BE,CAAP;AA4BH;;AAED;AACA;AACA;AACA,mBAAOzE,QAAQC,OAAR,GACFO,IADE,CACG;AAAA,uBAAMT,YAAN;AAAA,aADH,EAEFS,IAFE,CAEG,YAAM;AACR,oBAAMqD,iBAAiB;AACnBP,sCADmB;AAEnBC,0CAFmB;;AAInBE,iCAAaA,YAAYY;AAJN,iBAAvB;;AAOA,uBAAO,IAAIM,0BAAJ,CAAqBd,cAArB,CAAP;AACH,aAXE,CAAP;AAYH,SAnEE,EAoEFrD,IApEE,CAoEG,UAACoE,OAAD,EAAa;AACf,mBAAKC,IAAL,CAAUnE,eAAeC,eAAzB,EAA0CiE,OAA1C;;AAEA9D,qBAASgE,IAAT,CAAcF,OAAd;;AAEA,mBAAOA,OAAP;AACH,SA1EE,CAAP;AA2EH,K;;mCAEDJ,qB,kCAAsBX,c,EAAgB;AAAA;;AAClC,eAAO,iCAAoB;AACvBN,wBAAYM,eAAeN,UADJ;AAEvBR,wBAAYc,eAAed;AAFJ,SAApB,EAGJvC,IAHI,CAGC,UAACa,WAAD,EAAiB;AACrB,gBAAM0D,aAAalB,eAAeP,QAAf,GAA0B0B,yBAAaC,SAAvC,GAAmDD,yBAAaE,KAAnF;;AAEA;AACA;AACA,gBAAIH,eAAeC,yBAAaE,KAAhC,EAAuC;AACnC,uBAAO7D,YAAY2C,KAAnB;AACH;;AAED,gBAAMmB,gBAAgB;AAClB9D,wCADkB;AAElB0D,sCAFkB;AAGlBtB,6BAAaI,eAAeJ,WAHV;AAIlB2B,+BAAe,OAAKlE;AAJF,aAAtB;;AAOA,mBAAO,IAAImE,6BAAJ,CAAwBF,aAAxB,CAAP;AACH,SApBM,CAAP;AAqBH,K;;mCAEDT,0B,uCAA2BD,Y,EAAc;AAAA;;AACrC,YAAMa,oBAAoB,SAApBA,iBAAoB,GAAM;AAC5B,mBAAKlE,uBAAL;AACAqD,yBAAac,GAAb,CAAiBC,wBAAeC,YAAhC,EAA8CH,iBAA9C;AACH,SAHD;;AAKAb,qBAAaiB,EAAb,CAAgBF,wBAAeC,YAA/B,EAA6CH,iBAA7C;AACH,K;;;;4BAtQc;AACX,mBAAOxE,QAAP;AACH;;;;EAjB8B6E,0B;;AAwR5B,IAAMC,0CAAiB,IAAI3E,oBAAJ,EAAvB","file":"service.js","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"]}
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,37 +1,52 @@
1
- 'use strict';
1
+ "use strict";
2
2
 
3
- exports.__esModule = true;
4
- exports.TsMediaSession = exports.EVENTS = exports.SESSION_EVENTS = undefined;
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); }
5
4
 
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; }; }();
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.TsMediaSession = exports.EVENTS = exports.SESSION_EVENTS = void 0;
7
9
 
8
- var _eventEmitter = require('./event-emitter');
10
+ var _eventEmitter = require("./event-emitter");
9
11
 
10
- var _stream = require('./stream');
12
+ var _stream = require("./stream");
11
13
 
12
14
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
13
15
 
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; }
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); } }
15
17
 
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; }
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); }
17
33
 
18
34
  /**
19
35
  * @enum SESSION_EVENTS
20
36
  */
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'
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'
32
48
  };
33
-
34
- exports.EVENTS = SESSION_EVENTS;
49
+ exports.EVENTS = exports.SESSION_EVENTS = SESSION_EVENTS;
35
50
 
36
51
  /**
37
52
  * Session object returned by TsMediaSercice.initSession() call.
@@ -48,33 +63,46 @@ exports.EVENTS = SESSION_EVENTS;
48
63
  * @fires SESSION_EVENTS#EXCEPTION
49
64
  * @fires SESSION_EVENTS#STREAM_CREATED
50
65
  */
66
+ var TsMediaSession = /*#__PURE__*/function (_EventEmitter) {
67
+ _inherits(TsMediaSession, _EventEmitter);
51
68
 
52
- var TsMediaSession = exports.TsMediaSession = function (_EventEmitter) {
53
- _inherits(TsMediaSession, _EventEmitter);
69
+ var _super = _createSuper(TsMediaSession);
54
70
 
55
- function TsMediaSession() {
56
- _classCallCheck(this, TsMediaSession);
71
+ function TsMediaSession() {
72
+ var _this;
57
73
 
58
- var _this = _possibleConstructorReturn(this, _EventEmitter.call(this));
74
+ _classCallCheck(this, TsMediaSession);
59
75
 
60
- _this._streams = new Map();
76
+ _this = _super.call(this);
77
+ _this._streams = new Map();
61
78
 
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
- }
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
+ });
69
84
 
70
- /**
71
- * All media streams registered in the session.
72
- *
73
- * @member { Object }
74
- * @type { Array<TsMediaStream> }
75
- */
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 = [];
76
99
 
100
+ this._streams.forEach(function (stream) {
101
+ return streamArray.push(stream);
102
+ });
77
103
 
104
+ return streamArray;
105
+ }
78
106
  /**
79
107
  * Register new media stream in the session.
80
108
  *
@@ -84,27 +112,21 @@ var TsMediaSession = exports.TsMediaSession = function (_EventEmitter) {
84
112
  * @param { String } id Stream id
85
113
  * @param { TsMediaStream } stream Media Stream
86
114
  */
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
115
 
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
- }]);
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
+ }]);
107
127
 
108
- return TsMediaSession;
128
+ return TsMediaSession;
109
129
  }(_eventEmitter.EventEmitter);
130
+
131
+ exports.TsMediaSession = TsMediaSession;
110
132
  //# sourceMappingURL=session.js.map
@@ -1 +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"]}
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"}