UNPKG

samvyo-js-sdk

Version:

This is the client js sdk for cutting-edge Samvyo real-time voice/video cloud.

8 lines (7 loc) 1.09 MB
/* * samvyo-js-sdk v2.0.3 * This is the client js sdk for cutting-edge Samvyo real-time voice/video cloud. * Copyright: 2017-2025 sauravkp <saurav.codes@gmail.com> * License: Unlicensed */ !function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).samvyo=e()}}((function(){var define,module,exports;return function e(t,r,i){function n(s,o){if(!r[s]){if(!t[s]){var c="function"==typeof require&&require;if(!o&&c)return c(s,!0);if(a)return a(s,!0);var d=new Error("Cannot find module '"+s+"'");throw d.code="MODULE_NOT_FOUND",d}var u=r[s]={exports:{}};t[s][0].call(u.exports,(function(e){return n(t[s][1][e]||e)}),u,u.exports,e,t,r,i)}return r[s].exports}for(var a="function"==typeof require&&require,s=0;s<i.length;s++)n(i[s]);return n}({1:[function(e,t,r){"use strict";var i=e("./lib/JsSdk_v1"),n=e("./lib/JsSdk"),a=e("./p2p/lib/P2pSdk");t.exports={JsSdk_v1:i.JsSdk_v1,JsSdk:n.JsSdk,P2pSdk:a.P2pSdk}},{"./lib/JsSdk":2,"./lib/JsSdk_v1":3,"./p2p/lib/P2pSdk":318}],2:[function(e,t,r){"use strict";var i=e("@babel/runtime/helpers/interopRequireDefault"),n=e("@babel/runtime/helpers/typeof");Object.defineProperty(r,"__esModule",{value:!0}),r.JsSdk=void 0;var a=i(e("@babel/runtime/helpers/typeof")),s=i(e("@babel/runtime/helpers/objectWithoutProperties")),o=i(e("@babel/runtime/regenerator")),c=i(e("@babel/runtime/helpers/asyncToGenerator")),d=i(e("@babel/runtime/helpers/classCallCheck")),u=i(e("@babel/runtime/helpers/createClass")),l=i(e("@babel/runtime/helpers/possibleConstructorReturn")),h=i(e("@babel/runtime/helpers/getPrototypeOf")),f=i(e("@babel/runtime/helpers/inherits")),p=i(e("@babel/runtime/helpers/defineProperty")),m=D(e("mediasoup-client")),b=i(e("bowser")),g=e("./socket"),v=e("events"),y=i(e("./Logger")),_=e("./utils/queue"),w=e("./utils/sleep"),S=e("./utils/getRandomInt"),k=e("./utils/uuidv4"),R=(e("./utils/getVidScaleUrl"),e("./utils/verifyOutputQualites")),P=i(e("./utils/randomName")),M=e("./utils/chooseMedia"),E=D(e("jsonwebtoken")),x=(e("./utils/getUSerMediaConstraints"),e("./utils/constants")),T=e("./utils/verifyfileTypes"),C=["senderPeerId","mediaTag","sender","audioStatus","videoStatus","senderParticipantType","type","producerPaused"];function I(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(I=function(e){return e?r:t})(e)}function D(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=n(e)&&"function"!=typeof e)return{default:e};var r=I(t);if(r&&r.has(e))return r.get(e);var i={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in e)if("default"!==s&&{}.hasOwnProperty.call(e,s)){var o=a?Object.getOwnPropertyDescriptor(e,s):null;o&&(o.get||o.set)?Object.defineProperty(i,s,o):i[s]=e[s]}return i.default=e,r&&r.set(e,i),i}function O(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return A(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?A(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var i=0,n=function(){};return{s:n,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return s=e.done,e},e:function(e){o=!0,a=e},f:function(){try{s||null==r.return||r.return()}finally{if(o)throw a}}}}function A(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,i=Array(t);r<t;r++)i[r]=e[r];return i}function L(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function j(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?L(Object(r),!0).forEach((function(t){(0,p.default)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):L(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function B(e,t,r){return t=(0,h.default)(t),(0,l.default)(e,N()?Reflect.construct(t,r||[],(0,h.default)(e).constructor):t.apply(e,r))}function N(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(N=function(){return!!e})()}var F,U=new y.default("Room"),q={small:{width:{ideal:160},height:{ideal:120}},qvga:{width:{ideal:320},height:{ideal:240}},vga:{width:{ideal:640},height:{ideal:480}},hd:{width:{ideal:1280},height:{ideal:720}}},z=new _.SocketQueue;r.JsSdk=function(e){function t(e){var r,i=e.peerId,n=e.roomId,a=e.outputData;return(0,d.default)(this,t),r=B(this,t),(0,p.default)(r,"joinRoom",(0,c.default)(o.default.mark((function e(){var t,i,n,a,s,c,d,u,l,h,f,p,m,b,g,v,y,_,w,S,k,R,M,E,T,C,I,D,O,A,L,B,N,F,q,z,V,G,W,H,K,$,J,Y,X,Z,Q,ee,te,re,ie,ne,ae,se,oe,ce,de,ue,le,he,fe,pe,me,be,ge,ve,ye=arguments;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=(t=ye.length>0&&void 0!==ye[0]?ye[0]:{}).peerName,n=void 0===i?null:i,a=t.produce,s=void 0===a||a,c=t.produceAudio,d=void 0===c||c,u=t.produceVideo,l=void 0===u||u,h=t.consume,f=void 0===h||h,p=t.videoResolution,m=void 0===p?"hd":p,b=t.forceVp8,g=void 0!==b&&b,v=t.forceVp9,y=void 0!==v&&v,_=t.forceH264,w=void 0!==_&&_,S=t.h264Profile,k=void 0===S?"high":S,R=t.forcePCMU,M=void 0!==R&&R,E=t.forcePCMA,T=void 0!==E&&E,C=t.forceFPS,I=void 0===C?25:C,D=t.enableWebcamLayers,O=void 0===D||D,A=t.numSimulcastStreams,L=void 0===A?3:A,B=t.autoGainControl,N=void 0===B||B,F=t.echoCancellation,q=void 0===F||F,z=t.noiseSuppression,V=void 0===z||z,G=t.sampleRate,W=void 0===G?44e3:G,H=t.channelCount,K=void 0===H?1:H,$=t.videoBitRates,J=void 0===$?[700,250,75]:$,Y=t.share,X=void 0!==Y&&Y,Z=t.shareAudio,Q=void 0!==Z&&Z,ee=t.enableSharingLayers,te=void 0===ee||ee,re=t.shareBitRates,ie=void 0===re?[2500,1250,500]:re,ne=t.audioDeviceId,ae=void 0===ne?null:ne,se=t.videoDeviceId,oe=void 0===se?null:se,ce=t.peerType,de=void 0===ce?"participant":ce,ue=t.roomType,le=void 0===ue?x._security.roomType.CONFERENCING:ue,he=t.authenticationRequired,fe=void 0!==he&&he,pe=t.password,me=void 0===pe?null:pe,be=t.roomDisplayName,ge=void 0===be?null:be,U.info("Going to join room"),["hd","vga","qvga"].includes(m)||(U.warn("Invalid video resolution value. setting it to default value of 'hd' "),m="hd"),"boolean"!=typeof s&&(U.warn("Produe should either be true or false"),s=Boolean(s)),"boolean"!=typeof d&&(U.warn("ProduceAudio should either be true or false"),d=Boolean(d)),"boolean"!=typeof l&&(U.warn("ProduceVideo should either be true or false"),l=Boolean(l)),"boolean"!=typeof f&&(U.warn("Consume should either be true or false"),f=Boolean(f)),"boolean"!=typeof g&&(U.warn("forceVp8 should either be true or false"),g=Boolean(g)),"boolean"!=typeof y&&(U.warn("forceVp9 should either be true or false"),y=Boolean(y)),"boolean"!=typeof w&&(U.warn("forceH264 should either be true or false"),w=Boolean(w)),["high","low"].includes(k.toLowerCase())||(U.warn("h264Profile should either be 'high' or 'low'"),k="high"),(!Number.isInteger(I)||Number.isInteger(I)&&(I>65||I<5))&&(U.warn("forceFPS should be a number between 5 to 65, default value is 25 fps."),I=25),"boolean"!=typeof O&&(U.warn("enableWebcamLayers should either be true or false"),O=Boolean(O)),(!Number.isInteger(L)||Number.isInteger(L)&&(L>3||L<1))&&(U.warn("numSimulcastStreams should be a number between 1 to 3, default value is 3."),L=3),Array.isArray(J)&&J.length>=1&&J.length<=3&&J.every((function(e){return Number.isInteger(e)&&e>=75&&e<=800}))?U.debug("videoBitRates values are correct"):(U.warn("videobitrates values should be an integer array with maximum 3 elements and minimum 1 element. The values in the array are '[700,250,75]'"),J=[700,250,75]),"boolean"!=typeof M&&(U.warn("forcePCMU should either be true or false"),M=Boolean(M)),"boolean"!=typeof T&&(U.warn("forcePCMA should either be true or false"),T=Boolean(T)),"boolean"!=typeof N&&(U.warn("autoGainControl should either be true or false"),N=Boolean(N)),"boolean"!=typeof q&&(U.warn("echoCancellation should either be true or false"),q=Boolean(q)),"boolean"!=typeof V&&(U.warn("noiseSuppression should either be true or false"),V=Boolean(V)),(!Number.isInteger(W)||Number.isInteger(W)&&(W>64e3||W<8e3))&&(U.warn("sampleRate should be a number between 8000 to 64000, default value is 44000 Khz."),W=44e3),(!Number.isInteger(K)||Number.isInteger(K)&&(K>2||K<1))&&(U.warn("sampleRate should be a number between 1 to 2, default value is 1, which is a mono audio."),K=1),"boolean"!=typeof X&&(U.warn("share should either be true or false"),X=Boolean(X)),"boolean"!=typeof Q&&(U.warn("shareAudio should either be true or false"),Q=Boolean(Q)),"boolean"!=typeof te&&(U.warn("enableSharingLayers should either be true or false"),te=Boolean(te)),Array.isArray(ie)&&ie.length>=1&&ie.length<=3&&ie.every((function(e){return Number.isInteger(e)&&e>=500&&e<=2500}))?U.debug("shareBitRates values are correct"):(U.warn("sharebitrates values should be an integer array with maximum 3 elements and minimum 1 element. The values in the array are '[2500,1250,500]'"),ie=[2500,1250,500]),["moderator","participant","attendee"].includes(de)?U.debug("peerType is valid:%s",de):(de="participant",U.debug("peerType is invalid:%s. By default set to: participant",de)),e.next=29,r.listDevicesInternal();case 29:r._videoResolution=m,r._forceVP8=Boolean(g),r._forceH264=Boolean(w),r._forceVP9=Boolean(y),r._enableWebcamLayers=Boolean(O),r._numSimulcastStreams=L,r._enableSharingLayers=Boolean(te),e.prev=36,n||(n=(0,P.default)()),r.data.inputParams=j(j({},r.data.inputParams),{},{peerName:n,produce:s,produceAudio:d,produceVideo:l,consume:f,videoResolution:m,forceVp8:g,forceVp9:y,forceH264:w,h264Profile:k,forceFPS:I,forcePCMU:M,forcePCMA:T,enableWebcamLayers:O,numSimulcastStreams:L,autoGainControl:N,echoCancellation:q,noiseSuppression:V,sampleRate:W,channelCount:K,videoBitRates:J,share:X,shareAudio:Q,enableSharingLayers:te,shareBitRates:ie,audioDeviceId:ae,videoDeviceId:oe,peerType:de,roomType:le,authenticationRequired:fe,password:me,roomDisplayName:ge}),U.info("input params are:%O",r.data.inputParams),ve={id:"joinRoom",type:"r",peerId:r.data.inputParams.peerId,participantType:"attendee"===de?"viewer":de,roomType:le,roomDisplayName:ge||"room-".concat(1e5+Math.round(9e5*Math.random())),browser:r._client,name:r.data.inputParams.peerName,room:r.data.inputParams.roomId,authenticationRequired:fe,isRoomPassword:!!me,roomPassword:me||null,usageType:"sdk"},r._sendMessage(ve),e.next=48;break;case 44:return e.prev=44,e.t0=e.catch(36),U.error("Failed to join room:",e.t0.message),e.abrupt("return",{success:!1,reason:e.t0.message});case 48:case"end":return e.stop()}}),e,null,[[36,44]])})))),(0,p.default)(r,"authenticateUser",(function(e){U.info("Moderator authentication requested:%O",e),r.emit("moderatorAuthentication",{moderatorName:e.moderatorName,requesterName:e.requesterName,requesterPeerId:e.requesterPeerId,text:e.title})})),(0,p.default)(r,"authenticationRequested",(function(e){U.info("Moderator authentication requested:%O",e),r.emit("authenticationRequested",{requesterName:e.requesterName,requesterPeerId:r.data.inputParams.peerId,text:e.title})})),(0,p.default)(r,"allowRoomJoin",(function(e){if(!e)return U.error("peerId can't be undefined!"),{success:!1,reason:"PeerId can't be undefined"};U.info("Allow user to join room:%O",e);var t={id:"userAuthenticated",peerId:e,roomName:r.data.inputParams.roomId,moderator:r.data.inputParams.peerId};r._sendMessage(t)})),(0,p.default)(r,"denyRoomJoin",(function(e){if(!e)return U.error("peerId can't be undefined!"),{success:!1,reason:"PeerId can't be undefined"};U.info("Deny user to join room:%O",e);var t={id:"userDenied",peerId:e,roomName:r.data.inputParams.roomId,moderator:r.data.inputParams.peerId};r._sendMessage(t)})),(0,p.default)(r,"hideUserAuthenticationDialog",(function(e){U.debug("authentication already done message:%o",e),r.emit("moderatorAuthStatus",{requesterId:e.requesterId,moderatorActed:e.peerId})})),(0,p.default)(r,"_createSendTransport",(0,c.default)(o.default.mark((function e(){var t;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(U.debug("Room _createSendTransport"),e.prev=1,r._device.loaded){e.next=6;break}return U.debug("Room _createSendTransport","Going to load device with routerrtpcapabilities"),e.next=6,r._device.load({routerRtpCapabilities:r._routerRtpCapabilities});case 6:t=x.MSG_DIRECTION_SEND,r._sendTransport||r._sendMessage({id:"createTransport",peerId:r.data.inputParams.peerId,roomName:r.data.inputParams.roomId,direction:t}),e.next=13;break;case 10:e.prev=10,e.t0=e.catch(1),U.error("Room _createSendTransport",e.t0);case 13:case"end":return e.stop()}}),e,null,[[1,10]])})))),(0,p.default)(r,"_createRecvTransport",(0,c.default)(o.default.mark((function e(){var t;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r._device.loaded){e.next=4;break}return U.debug("loading device for creating recv transport"),e.next=4,r._device.load({routerRtpCapabilities:r._routerRtpCapabilities});case 4:t=x.MSG_DIRECTION_RECV,r._recvTransport||(U.debug("receive transport created"),r._sendMessage({id:"createTransport",peerId:r.data.inputParams.peerId,roomName:r.data.inputParams.roomId,direction:t}));case 6:case"end":return e.stop()}}),e)})))),(0,p.default)(r,"handleCreateTransportRequest",function(){var e=(0,c.default)(o.default.mark((function e(t){var i,n,a;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(U.debug("Room handleCreateTransportRequest():%O",t),i=t.transportOptions,n=t.direction,a=void 0,e.prev=3,"recv"!==n){e.next=13;break}return e.next=7,r._device.createRecvTransport(i);case 7:a=e.sent,U.debug("Room","handleCreateTransportRequest() recv transport created ".concat(a.id)),r._recvTransport=a,r.handleRecvTransportListeners(),e.next=24;break;case 13:if("send"!==n){e.next=23;break}return e.next=16,r._device.createSendTransport(i);case 16:a=e.sent,U.debug("Room","handleCreateTransportRequest() send transport created [id:%s]".concat(a.id)),r._sendTransport=a,r.handleSendTransportListeners(),r.produceMedia(),e.next=24;break;case 23:throw new Error("bad transport 'direction': ".concat(n));case 24:e.next=29;break;case 26:e.prev=26,e.t0=e.catch(3),console.error("handleCreateTransportRequest() failed to create transport [error:%o]",e.t0);case 29:case"end":return e.stop()}}),e,null,[[3,26]])})));return function(t){return e.apply(this,arguments)}}()),(0,p.default)(r,"handleSendTransportListeners",(function(){r._sendTransport.on("connect",r.handleTransportConnectEvent),r._sendTransport.on("produce",r.handleTransportProduceEvent);var e=r;r._sendTransport.on("connectionstatechange",function(){var t=(0,c.default)(o.default.mark((function t(i){return o.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(U.debug("ConferenceRoom sendTransport connectionState ".concat(i," & socketconnection state ").concat(r._socket._ws.readyState)),"failed"!==i&&"disconnected"!==i){t.next=13;break}if(1!==r._socket._ws.readyState){t.next=6;break}e.restartIce(r._sendTransport.id,"send"),t.next=13;break;case 6:if(1===r._socket._ws.readyState){t.next=12;break}return U.debug("socket not yet ready with state- ".concat(r._socket._ws.readyState)),t.next=10,(0,w.sleep)(1500);case 10:t.next=6;break;case 12:"connected"===r._roomStatus&&r.restartIce(r._sendTransport.id,"send");case 13:U.debug("ConferenceRoom","send transport connection state change [state:%s]".concat(i));case 14:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}())})),(0,p.default)(r,"handleTransportConnectEvent",(function(e,t,i){var n=e.dtlsParameters;try{z.push("connectTransport",(function(e){U.debug("connect-transport action"),t(),z.remove("connectTransport")}));var a={id:"connectTransport",peerId:r.data.inputParams.peerId,roomName:r.data.inputParams.roomId,transportId:r._sendTransport.id,dtlsParameters:n,direction:"send"};r._sendMessage(a)}catch(e){U.error("handleTransportConnectEvent() failed [error:%o]",e),i(e)}})),(0,p.default)(r,"handleTransportProduceEvent",(function(e,t,i){var n=e.kind,a=e.rtpParameters,s=e.appData;try{z.push("produce",(function(e){U.debug("handleTransportProduceEvent callback [data:%o]",e),t({id:e.producerId}),z.remove("produce")}));var o=s.mediaTag===x.STREAM_TYPE_CAM_AUDIO&&void 0!==r.data.inputParams.audioStatus&&!r.data.inputParams.audioStatus;U.debug("handleTransportProduceEvent() | pause status->".concat(o));var c={id:"sendTrack",transportId:r._sendTransport.id,peerId:r.data.inputParams.peerId,roomName:r.data.inputParams.roomId,kind:n,rtpParameters:a,paused:o,appData:s,clientOs:r._client.os.name,browser:r._client.browser};r._sendMessage(c)}catch(e){U.error("handleTransportProduceEvent() failed [error:%o]",e),i(e)}})),(0,p.default)(r,"produceMedia",(0,c.default)(o.default.mark((function e(){return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r.data.inputParams.produce?(r.data.inputParams.produceAudio?r.enableMic({deviceId:r.data.inputParams.audioDeviceId?r.data.inputParams.audioDeviceId:null}):U.debug("No need to produce audio!"),r._device.canProduce("video")&&(r.data.inputParams.produceVideo?r.enableCam({deviceId:r.data.inputParams.videoDeviceId?r.data.inputParams.videoDeviceId:null}):U.debug("No need to produce video!"),r.data.inputParams.share&&r.enableShare({shareAudio:r.data.inputParams.shareAudio,enableSharingLayers:r._enableSharingLayers,shareBitRates:r.data.inputParams.shareBitRates}))):U.warn("produce is false!");case 1:case"end":return e.stop()}}),e)})))),(0,p.default)(r,"handleRecvTransportListeners",(0,c.default)(o.default.mark((function e(){var t,i;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r._recvTransport.on("connect",r.handleRecvTransportConnectEvent),t=r,r._recvTransport.on("connectionstatechange",function(){var e=(0,c.default)(o.default.mark((function e(i){return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(U.debug("ConferenceRoom recvTransport connectionState ".concat(i," & socketconnection state ").concat(r._socket._ws.readyState)),"failed"!==i&&"disconnected"!==i){e.next=13;break}if(1!==r._socket._ws.readyState){e.next=6;break}t.restartIce(r._recvTransport.id,"recv"),e.next=13;break;case 6:if(1===r._socket._ws.readyState){e.next=12;break}return U.debug("socket not yet ready with state- ".concat(r._socket._ws.readyState)),e.next=10,(0,w.sleep)(1e3);case 10:e.next=6;break;case 12:"connected"===r._roomStatus&&t.restartIce(r._recvTransport.id,"recv");case 13:U.debug("ConferenceRoom","Recv transport connection state change [state:%s]".concat(i));case 14:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()),i={id:"transportsAvailable",peerId:r.data.inputParams.peerId,roomName:r.data.inputParams.roomId,rtpCapabilities:r._device.rtpCapabilities},r._sendMessage(i);case 5:case"end":return e.stop()}}),e)})))),(0,p.default)(r,"handleRecvTransportConnectEvent",(function(e,t,i){var n=e.dtlsParameters;try{z.push("connectRecvTransport",(function(e){U.debug("ConferenceRoom","connect-recv-transport action"),t(),z.remove("connectRecvTransport")}));var a={id:"connectTransport",peerId:r.data.inputParams.peerId,roomName:r.data.inputParams.roomId,transportId:r._recvTransport.id,dtlsParameters:n,direction:"recv"};r._sendMessage(a)}catch(e){U.error("handleTransportConnectEvent() failed [error:%o]",e),i(e)}})),(0,p.default)(r,"handleRecvTrackRequest",function(){var e=(0,c.default)(o.default.mark((function e(t){var i,n,a,c,d,u,l,h,f,b;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(U.debug("Room handleRecvTrackRequest",t),r.data.inputParams.consume){e.next=4;break}return U.warn("I do not want to consume"),e.abrupt("return");case 4:return i=t.senderPeerId,n=t.mediaTag,t.sender,t.audioStatus,t.videoStatus,t.senderParticipantType,a=t.type,c=t.producerPaused,d=(0,s.default)(t,C),U.debug("New consumer created",d),d.id=d.consumerId,delete d.consumerId,U.debug("ConferenceRoom","senderPeerId is ->".concat(i)),e.next=11,r._recvTransport.consume(j(j({},d),{},{streamId:"".concat(i,"-").concat("screen-video"===n||"screen-audio"===n?"share":"mic-webcam"),appData:{peerId:i,mediaTag:n}}));case 11:u=e.sent;case 12:if(!r._recvTransport||"connected"===r._recvTransport.connectionState){e.next=18;break}return U.debug("recv transport connstate".concat(r._recvTransport.connectionState)),e.next=16,(0,w.sleep)(100);case 16:e.next=12;break;case 18:return r._consumers.set(u.id,u),u.on("transportclose",(function(){r._consumers.delete(u.id)})),l=m.parseScalabilityMode(u.rtpParameters.encodings[0].scalabilityMode),h=l.spatialLayers,f=l.temporalLayers,b=r._peers.get(r.data.inputParams.peerId),U.debug("Consumer created for sender peerId ".concat(i," for kind ").concat(u.kind," for receiver peerId ").concat(r.data.inputParams.peerId)),U.info("The old peer data is :%O",b),b?(b["screen-video"===n||"screen-audio"===n?"ss".concat(u.kind):u.kind]={consumerId:u.id,type:a,locallyPaused:!1,remotelyPaused:c,rtpParameters:u.rtpParameters,spatialLayers:h,temporalLayers:f,preferredSpatialLayer:h-1,preferredTemporalLayer:f-1,priority:1,codec:u.rtpParameters.codecs[0].mimeType.split("/")[1],track:u.track,share:"screen-video"===n||"screen-audio"===n},U.info("The new peer data is :%O",b),r._peers.set(r.data.inputParams.peerId,b)):(U.info("Peer not found!"),r._peers.set(r.data.inputParams.peerId,(0,p.default)({},"screen-video"===n||"screen-audio"===n?"ss".concat(u.kind):u.kind,{consumerId:u.id,type:a,locallyPaused:!1,remotelyPaused:c,rtpParameters:u.rtpParameters,spatialLayers:h,temporalLayers:f,preferredSpatialLayer:h-1,preferredTemporalLayer:f-1,priority:1,codec:u.rtpParameters.codecs[0].mimeType.split("/")[1],track:u.track,share:"screen-video"===n||"screen-audio"===n}))),e.next=27,r.resumeConsumer(u);case 27:U.debug("Going to emit mic start / videostart"),"audio"===u.kind?"screen-audio"===n?r.emit("ssAudioStart",{peerId:i,audioTrack:u.track,type:"remote"}):r.emit("micStart",{peerId:i,audioTrack:u.track,type:"remote"}):"video"===u.kind&&("screen-video"===n?r.emit("ssVideoStart",{peerId:i,videoTrack:u.track,type:"remote"}):r.emit("videoStart",{peerId:i,videoTrack:u.track,type:"remote"}));case 29:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()),(0,p.default)(r,"resumeConsumer",function(){var e=(0,c.default)(o.default.mark((function e(t){var i;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!t){e.next=12;break}return U.debug("resume consumer",t.appData.peerId,t.appData.mediaTag),e.prev=2,i={id:"resumeConsumer",peerId:r.data.inputParams.peerId,roomName:r.data.inputParams.roomId,consumerId:t.id},r._sendMessage(i),e.next=7,t.resume();case 7:e.next=12;break;case 9:e.prev=9,e.t0=e.catch(2),console.error(e.t0);case 12:case"end":return e.stop()}}),e,null,[[2,9]])})));return function(t){return e.apply(this,arguments)}}()),(0,p.default)(r,"handleConnectTransportRequest",function(){var e=(0,c.default)(o.default.mark((function e(t){var r;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(U.debug("handleTransportConnectRequest()"),e.prev=1,r=z.get("connectTransport")){e.next=5;break}throw new Error("transport-connect action was not found");case 5:return e.next=7,r(t);case 7:e.next=12;break;case 9:e.prev=9,e.t0=e.catch(1),console.error("handleTransportConnectRequest() failed [error:%o]",e.t0);case 12:case"end":return e.stop()}}),e,null,[[1,9]])})));return function(t){return e.apply(this,arguments)}}()),(0,p.default)(r,"handleConnectRecvTransportRequest",function(){var e=(0,c.default)(o.default.mark((function e(t){var r;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(U.debug("handleTransportConnectRequest()"),e.prev=1,r=z.get("connectRecvTransport")){e.next=5;break}throw new Error("recv transport-connect action was not found");case 5:return e.next=7,r(t);case 7:e.next=12;break;case 9:e.prev=9,e.t0=e.catch(1),console.error("handleRecvTransportConnectRequest() failed [error:%o]",e.t0);case 12:case"end":return e.stop()}}),e,null,[[1,9]])})));return function(t){return e.apply(this,arguments)}}()),(0,p.default)(r,"handleSendTrackRequest",function(){var e=(0,c.default)(o.default.mark((function e(t){var r;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(U.debug("ConferenceRoom","handleProduceRequest()"),e.prev=1,r=z.get("produce")){e.next=5;break}throw new Error("produce action was not found");case 5:return e.next=7,r(t);case 7:e.next=12;break;case 9:e.prev=9,e.t0=e.catch(1),U.error("handleProduceRequest() failed [error:%o]",e.t0);case 12:case"end":return e.stop()}}),e,null,[[1,9]])})));return function(t){return e.apply(this,arguments)}}()),(0,p.default)(r,"mediaToggled",(function(e){switch(U.debug("Media Toggled message:%O",e),e.type){case"video":U.debug("mediaToggled() | inside case video".concat(e.videoStatus));break;case"audio":U.debug("mediaToggled() | inside case audio".concat(e.videoStatus)),e.audioStatus?r.emit("peerUnMuted",{peerId:e.peerId,type:"remote"}):r.emit("peerMuted",{peerId:e.peerId,type:"remote"})}})),(0,p.default)(r,"closeConsumer",(function(e){var t=e.consumerId,i=r._consumers.get(t);if(i){var n=i.appData,a=n.peerId,s=n.mediaTag;U.debug("Consumer closed for consumerId:%s, type:%s, appData:%o",t,null==i?void 0:i.kind,i.appData);var o="screen-audio"===s||"screen-video"===s?"ss".concat(i.kind):i.kind;i.close(),r._consumers.delete(t);var c=r._peers.get(r.data.inputParams.peerId);U.debug("Peer data before deletion:%O",c),c[o]&&c[o].consumerId===t&&delete c[o],U.debug("Peer data after deletion:%O",c),r._peers.set(r.data.inputParams.peerId,c),"audio"===(null==i?void 0:i.kind)?(U.debug("Going to emit micEnd, consumer closed for audio"),"screen-audio"===s?r.emit("ssAudioStop",{peerId:a,track:null,type:"remote"}):r.emit("micEnd",{peerId:a,track:null,type:"remote"})):"video"===(null==i?void 0:i.kind)&&(U.debug("Going to emit videoEnd, consumer closed for video"),"screen-video"===s?r.emit("ssVideoStop",{peerId:a,track:null,type:"remote"}):r.emit("videoEnd",{peerId:a,track:null,type:"remote"}))}else U.warn("Consumer with id not found!:%s",t)})),(0,p.default)(r,"peerLeft",(function(e){U.debug("Peer Left message is:%o",e);var t=e.peerId;r._peers.delete(t),r.emit("peerLeft",{peerId:t})})),(0,p.default)(r,"roomClosed",(function(){U.info("room closed by Moderator"),r._peers=null,r.emit("roomClosed",{roomId:r.data.inputParams.roomId})})),(0,p.default)(r,"leaveRoomCommon",(function(){r._sendTransport&&(r._sendTransport.close(),r._sendTransport=null),r._recvTransport&&(r._recvTransport.close(),r._recvTransport=null),r._webCamStream&&r._webCamStream.getVideoTracks().forEach((function(e){e.stop(),U.debug("Video Track stopped")})),r._micStream&&r._micStream.getAudioTracks().forEach((function(e){e.stop(),U.debug("Mic Track stopped")})),r._roomStatus="closed",r._running=!1,r._routerRtpCapabilities=null})),(0,p.default)(r,"restartIce",function(){var e=(0,c.default)(o.default.mark((function e(t,i){var n;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!("send"===i&&"connected"===r._sendTransport.connectionState||"recv"===i&&"connected"===r._recvTransport.connectionState)){e.next=3;break}return U.debug("no need to restart ICE as transport now connected"),e.abrupt("return");case 3:U.debug("websocket is ready and connectionstate is still disconnected, therefore going to restart ICE"),n={id:"restartIce",transportId:t,roomName:r.data.inputParams.roomId,peerId:r.data.inputParams.peerId},r._sendMessage(n);case 6:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}()),(0,p.default)(r,"restartIceResponse",(function(e){U.debug("restart ICE response:%o",e);var t=e.transportId,i=e.iceParameters;r._sendTransport&&r._sendTransport.id===t?r._sendTransport.restartIce({iceParameters:i}):r._recvTransport&&r._recvTransport.id===t&&r._recvTransport.restartIce({iceParameters:i})})),(0,p.default)(r,"startRecording",(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.recordingType,i=void 0===t?null:t,n=e.outputType,a=void 0===n?null:n,s=e.outputQualities,o=void 0===s?null:s;U.debug("recording type requested is:%s,outputType:%s, outputQualties:%o",i,a,o);var c=!i||"av"!==(null==i?void 0:i.toLowerCase())&&"audiovideo"!==(null==i?void 0:i.toLowerCase())?x.MERGEA:x.MERGE;if((!a||"hls"!==a.toLowerCase()&&"mp4"!==a.toLowerCase())&&a)return U.error("Invalid outut type"),{success:!1,reason:"Invalid outputType: ".concat(a,". ")};if(a&&"hls"===a.toLowerCase()&&o&&!(0,R.isValidOutputQualities)(o))return U.error("Invalid outut qualities"),{success:!1,reason:"Invalid outputQualities: ".concat(JSON.stringify(o),". ")+"Allowed values are ".concat(Array.from(R.ALLOWED_QUALITIES).join(", "),".")};var d={id:"startRecording",peerId:r.data.inputParams.peerId,roomName:r.data.inputParams.roomId,url:window.location.hostname,type:x.RECORD,recordingStrategy:c,outputQualities:o,outputType:null==a?void 0:a.toLowerCase()};r._sendMessage(d),r._recordingStartedByMe=j(j({},r._recordingStartedByMe),{},{"main-room":{recordingNo:null}})})),(0,p.default)(r,"stopRecording",(function(){U.debug("going to stop recording for recordingStartedByMe:%o",r._recordingStartedByMe);var e="main-room";if(!r._recordingStartedByMe[e])return{success:!1,error:!0,code:"RRID001",text:"Error while trying to stop recording. Either the recording has not been started yet Or The same user need to stop recording who started it."};var t={id:"stopRecording",peerId:r.data.inputParams.peerId,roomName:r.data.inputParams.roomId,recordingNo:r._recordingStartedByMe[e].recordingNo,type:x.RECORD};r._sendMessage(t),delete r._recordingStartedByMe[e],r.emit("recordingEnded",{peerId:r.data.inputParams.peerId})})),(0,p.default)(r,"setRecordingStatusStarted",(function(e){U.debug("Recording/Streaming started by moderator!!:%O",e);e.breakOutRoom;var t=e.recordingStartTime,i=e.recordingNo,n=e.type;[x.RECORD,x.RTMPSTREAMANDRECORD].includes(n)&&(r._recordingStartedByMe["main-room"]?(U.debug("This recording has been started by me."),r._recordingStartedByMe["main-room"].recordingNo=i,r.emit("recordingStarted",{peerId:r.data.inputParams.peerId,startTime:t})):r.emit("recordingStarted",{startTime:t}))})),(0,p.default)(r,"setRecordingStatusEnded",(function(e){U.debug("Recording ended by moderator!!, data:%O",e);e.breakOutRoom;e.type===x.RTMPSTREAM||r.emit("recordingEnded",{})})),(0,p.default)(r,"startProcessing",(0,c.default)(o.default.mark((function e(){var t,i,n,a,s,c,d,u,l,h,f,m,b,g,v,y,_,w,S,k=arguments;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=(t=k.length>0&&void 0!==k[0]?k[0]:{}).inputFiles,n=void 0===i?[]:i,a=t.outputQualities,s=void 0===a?null:a,c=t.bucket,d=void 0===c?null:c,u=t.cloud,l=void 0===u?null:u,h=t.region,f=void 0===h?null:h,U.debug("Processing of Files requested for:%o",n),m=Math.round(1e7*Math.random()),e.next=5,(0,T.verifyFiles)(n);case 5:if(!(b=e.sent).success){e.next=18;break}if(!s||(0,R.isValidOutputQualities)(s)){e.next=10;break}return U.error("Invalid outut qualities"),e.abrupt("return",{success:!1,reason:"Invalid outputQualities: ".concat(JSON.stringify(s),". ")+"Allowed values are ".concat(Array.from(R.ALLOWED_QUALITIES).join(", "),".")});case 10:r._processingStartedByMe=j(j({},r._processingStartedByMe),{},(0,p.default)({},m,{})),g=O(n);try{for(g.s();!(v=g.n()).done;)y=v.value,_=y.type,w=y.url,r._processingStartedByMe=j(j({},r._processingStartedByMe),{},(0,p.default)({},m,j(j({},r._processingStartedByMe[m]),{},(0,p.default)({},w,{type:_,url:w,status:"pending"}))))}catch(e){g.e(e)}finally{g.f()}return S={id:"processVideos",peerId:r.data.inputParams.peerId,roomName:r.data.inputParams.roomId,inputFiles:n,outputQualities:s,bucket:d,cloud:l,region:f,requestId:m,type:x.PROCESS},r._sendMessage(S),e.abrupt("return",{success:!0});case 18:return e.abrupt("return",b);case 19:case"end":return e.stop()}}),e)})))),(0,p.default)(r,"checkProcessingStatus",(function(e){var t=e.requestId;return U.debug("Going to check processing status for request Id:%s",t),r._processingStartedByMe[t]?{success:!0,details:r._processingStartedByMe[t]}:{success:!0,details:r._processingStartedByMe}})),(0,p.default)(r,"handleProcessingStart",(function(e){var t=e.processingStartTime,i=(e.processingNo,e.requestId);U.debug("handleProcessingStart()| received message is:%o",e),r.emit("processingStarted",{processingStartTime:t,requestId:i})})),(0,p.default)(r,"handleProcessingCompletion",(function(e){var t=e.totalProcessingTime,i=e.hlsfileKey,n=e.size,a=e.originalFile,s=e.lastFile,o=e.requestId;if(U.debug("handleProcessingCompletion()| received message is:%o",e),U.debug("Before update, Total files to be processed are:%o",r._processingStartedByMe),r._processingStartedByMe[a]&&(r._processingStartedByMe=j(j({},r._processingStartedByMe),{},(0,p.default)({},o,j(j({},r._processingStartedByMe[o]),{},(0,p.default)({},a,j(j({},r._processingStartedByMe[a]),{},{status:"completed",hlsfileKey:i,size:n,totalProcessingTime:t})))))),U.debug("After update, Total files to be processed are:%o",r._processingStartedByMe),r.emit("processingCompleted",e),s){U.debug("The last file processing has been completed! Remove all the files that has been completed with the same requesterId");var c=j({},r._processingStartedByMe);delete c[o],U.debug("After deleting the current requestId:%o",c),r._processingStartedByMe=c}})),(0,p.default)(r,"handleProcessingError",(function(e){var t=e.totalProcessingTime,i=e.hlsfileKey,n=e.size,a=e.originalFile,s=(e.lastFile,e.requestId),o=e.error;U.debug("handleProcessingCompletion()| received message is:%o",e),U.debug("Before update, Total files to be processed are:%o",r._processingStartedByMe),r._processingStartedByMe[a]&&(r._processingStartedByMe=j(j({},r._processingStartedByMe),{},(0,p.default)({},s,j(j({},r._processingStartedByMe[s]),{},(0,p.default)({},a,j(j({},r._processingStartedByMe[a]),{},{status:"error",hlsfileKey:i,size:n,totalProcessingTime:t,error:o})))))),U.debug("After update, Total files to be processed are:%o",r._processingStartedByMe),r.emit("processingError",e)})),r._closed=!1,r._roomStatus="initialised",r._roomDisplayName=null,r._running=!1,r._cignal=null,r._socket=null,r._sendTransport=null,r._recvTransport=null,r._device=new m.Device,r._webCamProducer=null,r._micProducer=null,r._shareProducer=null,r._shareAudioProducer=null,r._producers=new Map,r._consumers=new Map,r._peers=new Map,r._data=j(j({},a),{},{inputParams:{peerId:i,roomId:n,roomType:"conferencing"}}),r._micStream=null,r._webCamStream=null,r._webcam={device:null,resolution:"hd"},r._mic={device:null},r._deviceList=F||null,r._externalVideo=null,r._externalVideoStream=null,r._forceVP8=!1,r._forceH264=!1,r._forceVP9=!1,r._enableWebcamLayers=!0,r._numSimulcastStreams=3,r._enableSharingLayers=!0,r._client=b.default.parse(window.navigator.userAgent),r._routerRtpCapabilities=null,r._recordingStartedByMe={},r._cignalConnected=!1,r._reconnectionInitiated=!1,r._restartIceInProgressSendTransport=!1,r._restartIceInProgressRecvTransport=!1,r._activeSpeaker=null,r.initLocal(),r}return(0,f.default)(t,e),(0,u.default)(t,[{key:"closed",get:function(){return this._closed}},{key:"data",get:function(){return this._data},set:function(e){throw new Error("Setting the whole data object is not possible!")}},{key:"peers",get:function(){return this._peers},set:function(e){throw new Error("Setting the whole peers object is not possible!")}},{key:"transports",get:function(){return{produce:this._sendTransport,consume:this._recvTransport}},set:function(e){throw new Error("Setting of transport is not possible!")}},{key:"videoStream",get:function(){return this._webCamStream}},{key:"audioStream",get:function(){return this._micStream}},{key:"clientAgent",get:function(){return this._client}},{key:"activeParameters",get:function(){return this._data.inputParams}},{key:"deviceList",get:function(){return this._deviceList?this._deviceList:{videoDevices:[],audioDevices:[],audioOutputDevices:[]}},set:function(e){throw new Error("Setting of deviceList is not possible!")}},{key:"currentlyActiveSpeaker",get:function(){return this._activeSpeaker},set:function(e){throw new Error("Setting of currentActivespeaker is not possible!")}},{key:"roomDisplayName",get:function(){return this._roomDisplayName},set:function(e){throw new Error("Setting of roomDisplayName is not possible!")}},{key:"initLocal",value:(X=(0,c.default)(o.default.mark((function e(){var t;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=m.detectDevice(),U.debug("The device is:%O",t),e.next=4,this._initSocket();case 4:case"end":return e.stop()}}),e,this)}))),function(){return X.apply(this,arguments)})},{key:"_initSocket",value:(Y=(0,c.default)(o.default.mark((function e(){var t,r,i,n=this;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=this,r=this.data.signallingServerUrl.replace(/^(http|https):\/\//,""),i="wss://".concat("".concat(r),"/?sessionToken=",this.data.sessionToken,"&roomId=").concat(this.data.inputParams.roomId,"&peerId=").concat(this.data.inputParams.peerId,"&roomType=").concat(this.data.inputParams.roomType),U.info("Going to create a new socket! with address: ".concat(r)),this._socket=new g.WebSocketTransport(i,!0),this._listenToSocket(),this._socket.on("notify",(function(e){var t=e.type,r=e.title,i=e.message;n.emit("notification",{eventType:t,eventText:"".concat(r,": ").concat(i),roomId:n.data.inputParams.roomId,peerId:n.data.inputParams.peerId})})),this._socket.on("roomStartedP2p",(function(e){U.info("P2P room successfully started"),n._running=!0})),this._socket.on("userError",(function(e){U.error("User Error happened with message:%O",e),t.emit("notification",{eventType:e.title,eventText:"".concat(e.text)})})),this._socket.on("validationAlert",(function(e){U.info("Validation alert happened")})),this._socket.on("alreadyActive",(function(e){e.title,e.text,n.emit("notification",{eventType:"alreadyActive",eventText:"This peer already has an active connection",roomId:n.data.inputParams.roomId,peerId:n.data.inputParams.peerId})})),this._socket.on("passwordDisabled",(function(){U.info("password disabled by moderator!"),n.emit("notification",{eventType:"passwordDisabled",eventText:"Password for this room has been disabled by moderator",roomId:n.data.inputParams.roomId})})),this._socket.on("close",(function(e){var t=e.code,r=e.reason;if(U.info("socket closed with code ".concat(t)),4500!==t&&4100!==t){var i=r||"Connection to server closed unexpectedly! Trying to reconnect.";U.info("socket close code is".concat(t," with reason ").concat(i))}else U.info("Socket is now closed!"),n.close()})),this._socket.on("connected",(0,c.default)(o.default.mark((function e(){return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:U.info("Socket connected"),t.pc&&t._sendTransport&&t._recvTransport?roomType===x._security.roomType.P2P&&t.pc?(U.info("Socket seems to be reconnected in mid call! RestartIce needed for p2p call."),"failed"!==t.pc.iceConnectionState&&"disconnected"!==t.pc.iceConnectionState||t.restartICE()):(U.debug("Ice restarts for mediasoup transports for a joined peer"),t._sendTransport&&["Failed","disconnected"].includes(t._sendTransport.connectionState)?(U.debug("Restart ice for sendtransport"),t.restartIce(t._sendTransport.id,"send")):U.error("Send transport not available!"),t._recvTransport&&["Failed","disconnected"].includes(t._recvTransport.connectionState)?(U.debug("Restart ice for recvtransport"),t.restartIce(t._recvTransport.id,"recv")):U.error("Recv transport not available!")):(U.info("Connection getting connected for first time"),n.emit("initSuccess"));case 2:case"end":return e.stop()}}),e)})))),this._socket.on("defaultJoinStatus",function(){var e=(0,c.default)(o.default.mark((function e(t){return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:U.info(" Socket defaultjoinstatus:%O",t);case 1:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}());case 15:case"end":return e.stop()}}),e,this)}))),function(){return Y.apply(this,arguments)})},{key:"_sendMessage",value:function(e){this._socket.send(j({usageType:"sdk"},e))}},{key:"_listenToSocket",value:function(){var e=this;this._socket.on("message",(function(t){try{switch("currentlyActiveSpeaker"===t.id||"allStats"===t.id||U.info("message in Room is:%O",t),t.id){case"chatMessage":e.processChatMessage(t);break;case"existingParticipants":e.onExistingParticipants(t);break;case"newPeerJoin":e.onNewPeer(t);break;case"recordingError":e.handleRecordingErrors(t);break;case"moderatorAuthentication":e.authenticateUser(t);break;case"authenticationRequested":e.authenticationRequested(t);break;case"toggleMyMic":e.toggleMyMic(t);break;case"toggleMyCamera":e.toggleMyCamera(t);break;case"logMeOut":e.logMeOutNew(t);break;case"userAlreadyAuthenticated":e.hideUserAuthenticationDialog(t);break;case"peerLeft":e.peerLeft(t);break;case"recordingStarted":e.setRecordingStatusStarted(t);break;case"recordingStopped":e.setRecordingStatusEnded(t);break;case"startDefaultRecording":e.startRecording(t);break;case"mediaToggled":e.mediaToggled(t);break;case"processingStarted":e.handleProcessingStart(t);break;case"processingCompleted":e.handleProcessingCompletion(t);break;case"processingError":e.handleProcessingError(t);break;case"createTransportResponse":e.handleCreateTransportRequest(t);break;case"connectTransportResponse":e.handleConnectTransportRequest(t);break;case"connectRecvTransportResponse":e.handleConnectRecvTransportRequest(t);break;case"sendTrackResponse":e.handleSendTrackRequest(t);break;case"recvTrackResponse":e.handleRecvTrackRequest(t);break;case"roomClosedByModerator":e.leaveRoomCommon(),e.roomClosed();break;case"currentlyActiveSpeaker":e.setCurrentlyActiveSpeaker(t);break;case"restartIceResponse":e.restartIceResponse(t);break;case"consumerClosed":e.closeConsumer(t);break;case"handRaise":e.handleHandRaise(t);break;case"upgradeParticipant":e.handleUpgradeParticipant(t);break;case"downgradeParticipant":e.handleDowngradeParticipant(t);break;case"switchMicOff":e.handleSwitchMicOff(t);break;case"screenShareLimitReached":e.handleScreenShareLimitReached(t);break;case"upgradeLimitReached":e.handleUpgradeLimitReached(t);break;case"modUpgradeReq":e.handleModUpgradeReq(t);break;case"lockUnlockRoom":e.handleLockUnlockRoom(t);break;case"peersWaiting":e.handlePeersWaiting(t);break;case"remotePeerJoin":e.handleRemotePeerJoin(t);break;case"offer":U.debug("inside offer"),e.handleOffer(t);break;case"answer":U.debug("inside answer"),e.handleAnswer(t);break;case"candidate":U.debug("inside handle candidate"),e.handleCandidate(t.candidate);break;case"p2pRoomClosed":U.debug("inside p2p room close"),e.leaveRoomNewP2p(x.ROOM_LEAVE_AND_CLOSE);break;case"p2pUserLeft":U.debug("inside p2p user left"),e.userLeftRoom(t);break;case"iceRestart":e.handleIceRestart(t);break;case"iceRestarted":e.handleIceRestartResponse(t);break;case"screenShareP2p":e.handleScreenShareP2p(t);break;default:U.warn("Unrecognized message:%o",t)}}catch(e){U.error("listentomessage:%O",e)}}))}},{key:"onNewPeer",value:function(e){var t=e.peerId,r=e.displayName,i=e.participantType;this._peers.set(t,{displayName:r,participantType:i,consumers:[]}),this.emit("newPeer",{peerId:t,peerName:r,type:this.data.inputParams.peerId===t?"local":"remote",peerRole:i})}},{key:"onExistingParticipants",value:(J=(0,c.default)(o.default.mark((function e(t){var r;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(U.debug("Onexisting participant message:%O",t),this._routerRtpCapabilities=t.routerRtpCapabilities,this._roomStatus="connected",this._roomDisplayName=t.roomDisplayName,this._running=!0,this._socket._roomJoined=!0,this.emit("newPeer",{peerId:this.data.inputParams.peerId,peerName:this.data.inputParams.peerName,type:"local",peerRole:this.data.inputParams.peerType}),!this.data.inputParams.produce){e.next=12;break}return e.next=10,this._createSendTransport();case 10:e.next=13;break;case 12:U.debug("Produce is false!");case 13:if(!this.data.inputParams.consume){e.next=20;break}return e.next=16,this._createRecvTransport();case 16:r=this,t.peers&&t.peers.length>0&&t.peers.forEach((function(e){r.emit("newPeer",{peerId:e.peerId,peerName:e.name,type:"remote",peerRole:e.participantType})})),e.next=21;break;case 20:U.debug("Consume is false!");case 21:case"end":return e.stop()}}),e,this)}))),function(e){return J.apply(this,arguments)})},{key:"setCurrentlyActiveSpeaker",value:function(e){var t=e.activeSpeaker,r=t.peerId,i=t.volume;this._activeSpeaker=e.activeSpeaker,this.emit("activeSpeaker",{peerId:r,volume:i})}},{key:"close",value:function(){this._closed||(this._closed=!0,this._socket=null,this.data.inputParams={},U.info("Room close()"),this._sendTransport&&this._sendTransport.close(),this._recvTransport&&this._recvTransport.close(),this._roomStatus="closed",this._running=!1)}},{key:"leaveRoom",value:($=(0,c.default)(o.default.mark((function e(){return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:U.debug("Leave room is called!!"),"connected"===this._roomStatus?(this._sendMessage({id:"leaveRoomNew",peerId:this.data.inputParams.peerId,roomLeaveType:"client"}),this.leaveRoomCommon()):U.error("The room state is:%s",this._roomStatus);case 2:case"end":return e.stop()}}),e,this)}))),function(){return $.apply(this,arguments)})},{key:"closeRoom",value:(K=(0,c.default)(o.default.mark((function e(){return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:"connected"===this._roomStatus?(this._sendMessage({id:"leaveAndCloseRoom",peerId:this.data.inputParams.peerId,roomCloseType:"client"}),this.leaveRoomCommon()):U.error("The room state is:%s",this._roomStatus);case 1:case"end":return e.stop()}}),e,this)}))),function(){return K.apply(this,arguments)})},{key:"listDevicesInternal",value:(H=(0,c.default)(o.default.mark((function e(){var t,r=this;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(navigator.mediaDevices.ondevicechange=function(){var e=(0,c.default)(o.default.mark((function e(t){var i;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,M.updatedDeviceList)();case 2:i=e.sent,U.info("Media devices changed!:%O",i),i.audioDevices&&i.audioDevices.length>0&&(r._deviceList.audioDevices=i.audioDevices),i.videoDevices&&i.videoDevices.length>0&&(r._deviceList.videoDevices=i.videoDevices),i.audioDevices&&i.audioDevices.length>0&&(r._deviceList.audioOutputDevices=i.audioDevicesOutput),F=r._deviceList,r.emit("deviceListUpdated");case 9:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),!this._deviceList){e.next=5;break}return e.abrupt("return");case 5:return e.next=7,(0,M.loadAllAvailableDevices)();case 7:if(!(t=e.sent).success){e.next=12;break}return this._deviceList=t.deviceList,F=this._deviceList,e.abrupt("return");case 12:case"end":return e.stop()}}),e,this)}))),function(){return H.apply(this,arguments)})},{key:"enableMic",value:(W=(0,c.default)(o.default.mark((function e(){var t,r,i,n,a,s,c,d,u,l,h,f,p=this,m=arguments;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=(t=m.length>0&&void 0!==m[0]?m[0]:{}).deviceId,i=void 0===r?null:r,n=t.autoGainControl,a=t.noiseSuppression,s=t.echoCancellation,c=t.channelCount,d=t.sampleRate,u=t.forcePCMU,l=t.forcePCMA,U.debug("enableMic()"),this.data.inputParams.produce){e.next=7;break}return U.debug("Produce status is set to false!"),e.abrupt("return",{success:!1,error:!0,code:"REID007",text:"Error while trying to start Mic/Audio. Produce flag need to set to true while joining room in order to enable Mic/Audio."});case 7:if("connected"===this._roomStatus){e.next=12;break}return U.debug("Room status is not connected yet!"),e.abrupt("return",{success:!1,error:!0,code:"REID008",text:"Error while trying to start Mic/Audio as room not in connected status. Current room status:!".concat(this._roomStatus),possibleReasons:"Did you forget to call joinRoom before enabling Mic? OR if you have already initiated the joinRoom process, then Mic will be enabled automatically once room join process completes."});case 12:if(!this._micProducer){e.next=17;break}return U.debug("Mic is already active!"),e.abrupt("return",{success:!1,warning:!0,code:"RWID002",text:"Error while trying to start Mic/Audio. Mic/Audio is already active!"});case 17:if(this._device.canProduce("audio")){e.next=20;break}return U.error("enableMic() | cannot produce audio"),e.abrupt("return",{success:!1,error:!0,code:"REID009",text:"Error while trying to start Mic/Audio. Mic/Audio couldnot be activated due to limitations on this device. If you think this device has a functional Mic and the problem persists even after multiple retries, please contact technical support with the error code."});case 20:if(u&&"boolean"==typeof u&&(this.data.inputParams.forcePCMU=u),l&&"boolean"==typeof l&&(this.data.inputParams.forcePCMA=l),n&&"boolean"==typeof n&&(this.data.inputParams.autoGainControl=n),s&&"boolean"==typeof s&&(this.data.inputParams.echoCancellation=s),a&&"boolean"==typeof a&&(this.data.inputParams.noiseSuppression=a),d&&Number.isInteger(d)&&d<64e3&&d>8e3&&(this.data.inputParams.sampleRate=d),c&&Number.isInteger(c)&&c>0&&c<3&&(this.data.inputParams.channelCount=c),e.prev=27,this._externalVideo){e.next=48;break}if(i?(f=th