@cloudflare/realtimekit 1.2.0-staging.3 → 1.2.0-staging.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser.js +2 -2
- package/dist/index.cjs.js +2 -2
- package/dist/index.es.js +9 -1
- package/dist/index.rn.js +2 -2
- package/package.json +1 -1
package/dist/browser.js
CHANGED
|
@@ -9,7 +9,7 @@ var RealtimeKitClient=function(){"use strict";var cc,Xy=new Uint8Array(16);funct
|
|
|
9
9
|
`},Qr=Qp,qS=GS,Sc=qS,Xr=Qr.parse;Qr.parseParams,Qr.parseFmtpConfig,Qr.parsePayloads,Qr.parseRemoteCandidates,Qr.parseImageAttributes,Qr.parseSimulcastStreamList;var $S=Object.defineProperty,JS=Object.defineProperties,KS=Object.getOwnPropertyDescriptors,Tc=Object.getOwnPropertySymbols,zS=Object.getPrototypeOf,Zp=Object.prototype.hasOwnProperty,em=Object.prototype.propertyIsEnumerable,YS=Reflect.get,QS=Math.pow,ql=(t,e,i)=>e in t?$S(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,V=(t,e)=>{for(var i in e||(e={}))Zp.call(e,i)&&ql(t,i,e[i]);if(Tc)for(var i of Tc(e))em.call(e,i)&&ql(t,i,e[i]);return t},H=(t,e)=>JS(t,KS(e)),kc=(t,e)=>{var i={};for(var r in t)Zp.call(t,r)&&e.indexOf(r)<0&&(i[r]=t[r]);if(t!=null&&Tc)for(var r of Tc(t))e.indexOf(r)<0&&em.call(t,r)&&(i[r]=t[r]);return i},m=(t,e,i)=>(ql(t,typeof e!="symbol"?e+"":e,i),i),$l=(t,e,i)=>{if(!e.has(t))throw TypeError("Cannot "+i)},a=(t,e,i)=>($l(t,e,"read from private field"),i?i.call(t):e.get(t)),g=(t,e,i)=>{if(e.has(t))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(t):e.set(t,i)},f=(t,e,i,r)=>($l(t,e,"write to private field"),r?r.call(t,i):e.set(t,i),i),U=(t,e,i)=>($l(t,e,"access private method"),i),XS=(t,e,i)=>YS(zS(t),i,e),u=(t,e,i)=>new Promise((r,n)=>{var s=d=>{try{c(i.next(d))}catch(l){n(l)}},o=d=>{try{c(i.throw(d))}catch(l){n(l)}},c=d=>d.done?r(d.value):Promise.resolve(d.value).then(s,o);c((i=i.apply(t,e)).next())});function ZS(t){const{length:e}=this,i=t>=0?t:e+t;return i<0||i>=e?void 0:this[i]}Array.prototype.at||Object.assign(Array.prototype,{at:ZS});function eT(t){const{length:e}=this,i=t>=0?t:e+t;return i<0||i>=e?void 0:this[i]}String.prototype.at||Object.assign(String.prototype,{at:eT});const tT=t=>{!navigator.isReactNative&&typeof window!="undefined"&&(window.addEventListener("error",e=>{var i;!((i=e.filename)!=null&&i.includes("localhost"))&&e.lineno!==0&&t.error("window::error",{error:e.error},!0)}),window.addEventListener("unhandledrejection",e=>{var i,r,n,s,o,c,d,l;t.error("window::unhandledrejection",{error:e==null?void 0:e.reason,networkCall:{url:(r=(i=e==null?void 0:e.reason)==null?void 0:i.config)==null?void 0:r.url,baseURL:(s=(n=e==null?void 0:e.reason)==null?void 0:n.config)==null?void 0:s.baseURL,method:(c=(o=e==null?void 0:e.reason)==null?void 0:o.config)==null?void 0:c.method,status:(d=e==null?void 0:e.reason)==null?void 0:d.status,statusText:(l=e==null?void 0:e.reason)==null?void 0:l.statusText}},!0)}),window.addEventListener("offline",()=>{t.info("window::offline")}),window.addEventListener("online",()=>{t.info("window::online")}))},ca="chrome",tm="opera",im="firefox",rm="iexplorer",nm="safari",sm="nwjs",am="electron",om="react-native",Jl="unknown",Ec={Chrome:ca,Chromium:ca,Opera:tm,Firefox:im,"Internet Explorer":rm,Safari:nm};function iT(){const{userAgent:t}=navigator,e={name:Jl,version:void 0};if(t.match(/Chrome/)&&!t.match(/Edge/))if(t.match(/Edg(A?)/)){const i=t.match(/Chrome\/([\d.]+)/)[1];Number.parseInt(i,10)>72&&(e.name=ca,e.version=i)}else e.name=ca,e.version=t.match(/Chrome\/([\d.]+)/)[1];return e}function rT(){const{userAgent:t}=navigator;if(t.match(/Electron/)){const e=t.match(/Electron\/([\d.]+)/)[1];return{name:am,version:e}}return null}function nT(){const{userAgent:t}=navigator;if(t.match(/JitsiMeetNW/)){const e=t.match(/JitsiMeetNW\/([\d.]+)/)[1];return{name:sm,version:e}}}function sT(){const t=navigator.userAgent.match(/\b(react[ \t_-]*native)(?:\/(\S+))?/i);let e;if(t||navigator.product==="ReactNative")return t&&t.length>2&&(t[1],e=t[2]),e||(e="unknown"),{name:om,version:e}}function aT(t){let e;const i=[sT,rT,nT];for(let n=0;n<i.length;n+=1)if(e=i[n](),e)return e;const r=t.getBrowserName();return r in Ec?{name:Ec[r],version:t.getBrowserVersion()}:(e=iT(),e||{name:Jl,version:void 0})}class oT{constructor(){m(this,"_bowser"),m(this,"_name"),m(this,"_version"),m(this,"getDeviceInfo",()=>({isMobile:this.isMobile(),browserName:this._bowser.getBrowserName(),osName:this._bowser.getOSName(),browserVersion:this._bowser.getBrowserVersion(),osVersionName:this._bowser.getOSVersion(),engineName:this._bowser.getEngineName()}))}init(e){let i,r;if(this._bowser=Rp.getParser(navigator.userAgent),typeof e=="undefined"){const n=aT(this._bowser);i=n.name,r=n.version}else e.name in Ec?(i=Ec[e.name],r=e.version):(i=Jl,r=void 0);this._name=i,this._version=r}getName(){return this._name}isChrome(){return this._name===ca}isOpera(){return this._name===tm}isFirefox(){return this._name===im}isIExplorer(){return this._name===rm}isSafari(){return this._name===nm}isNWJS(){return this._name===sm}isElectron(){return this._name===am}isReactNative(){return this._name===om||navigator.isReactNative===!0}getVersion(){return this._version}isMobile(){return this._bowser.getPlatformType()==="mobile"}_checkCondition(e){if(this._version)return this._bowser.satisfies(e)}isVersionGreaterThan(e){return this._checkCondition({[this._name]:`>${e}`})}isVersionLessThan(e){return this._checkCondition({[this._name]:`<${e}`})}isVersionEqualTo(e){return this._checkCondition({[this._name]:`~${e}`})}}class cT extends oT{doesVideoMuteByStreamRemove(){return this.isChromiumBased()||this.isWebKitBased()}supportsP2P(){return!this.usesUnifiedPlan()}isChromiumBased(){return this.isChrome()||this.isElectron()||this.isNWJS()||this.isOpera()}isWebKitBased(){return this._bowser.isEngine("webkit")&&typeof navigator.mediaDevices!="undefined"&&typeof navigator.mediaDevices.getUserMedia!="undefined"&&typeof window.RTCRtpTransceiver!="undefined"&&Object.keys(RTCRtpTransceiver.prototype).indexOf("currentDirection")>-1}isSupported(){return typeof RTCPeerConnection!="undefined"}isUserInteractionRequiredForUnmute(){return this.isFirefox()&&this.isVersionLessThan("68")}supportsVideoMuteOnConnInterrupted(){return this.isChromiumBased()||this.isReactNative()||this.isWebKitBased()}supportsBandwidthStatistics(){return!this.isFirefox()&&!this.isWebKitBased()}supportsCodecPreferences(){return this.usesUnifiedPlan()&&typeof window.RTCRtpTransceiver!="undefined"&&Object.keys(window.RTCRtpTransceiver.prototype).indexOf("setCodecPreferences")>-1&&Object.keys(RTCRtpSender.prototype).indexOf("getCapabilities")>-1&&!this.isWebKitBased()}supportsDeviceChangeEvent(){return navigator.mediaDevices&&typeof navigator.mediaDevices.ondevicechange!="undefined"&&typeof navigator.mediaDevices.addEventListener!="undefined"}supportsLocalCandidateRttStatistics(){return this.isChromiumBased()||this.isReactNative()||this.isWebKitBased()}supportsPerformanceObserver(){return typeof window.PerformanceObserver!="undefined"&&PerformanceObserver.supportedEntryTypes.indexOf("longtask")>-1}supportsReceiverStats(){return typeof window.RTCRtpReceiver!="undefined"&&Object.keys(RTCRtpReceiver.prototype).indexOf("getSynchronizationSources")>-1}supportsRTTStatistics(){return!this.isFirefox()}usesPlanB(){return!this.usesUnifiedPlan()}usesSdpMungingForSimulcast(){return this.isChromiumBased()||this.isReactNative()||this.isWebKitBased()}usesUnifiedPlan(){return!!(this.isFirefox()||this.isWebKitBased())}usesNewGumFlow(){return!!(this.isChromiumBased()||this.isFirefox()||this.isWebKitBased())}usesAdapter(){return this.usesNewGumFlow()}usesRidsForSimulcast(){return!1}supportsGetDisplayMedia(){return typeof navigator.getDisplayMedia!="undefined"||typeof navigator.mediaDevices!="undefined"&&typeof navigator.mediaDevices.getDisplayMedia!="undefined"}supportsInsertableStreams(){if(!(typeof window.RTCRtpSender!="undefined"&&(window.RTCRtpSender.prototype.createEncodedStreams||window.RTCRtpSender.prototype.createEncodedVideoStreams)))return!1;const e=new ReadableStream;try{return window.postMessage(e,"*",[e]),!0}catch(i){return!1}}supportsAudioRed(){return Boolean(window.RTCRtpSender&&window.RTCRtpSender.getCapabilities&&window.RTCRtpSender.getCapabilities("audio").codecs.some(e=>e.mimeType==="audio/red")&&window.RTCRtpReceiver&&window.RTCRtpReceiver.getCapabilities&&window.RTCRtpReceiver.getCapabilities("audio").codecs.some(e=>e.mimeType==="audio/red"))}supportsSdpSemantics(){return this.isChromiumBased()}_getChromiumBasedVersion(){if(this.isChromiumBased()){if(this.isNWJS())return Number.parseInt(process.versions.chromium,10);const e=navigator.userAgent;if(e.match(/Chrome/))return Number.parseInt(e.match(/Chrome\/([\d.]+)/)[1],10)}return-1}isIOSMobile(){return this.isMobile&&this._bowser.getOSName()==="iOS"}}const Ee=new cT;var ut={},dT={get exports(){return ut},set exports(t){ut=t}},$n=typeof Reflect=="object"?Reflect:null,cm=$n&&typeof $n.apply=="function"?$n.apply:function(t,e,i){return Function.prototype.apply.call(t,e,i)},bc;$n&&typeof $n.ownKeys=="function"?bc=$n.ownKeys:Object.getOwnPropertySymbols?bc=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:bc=function(t){return Object.getOwnPropertyNames(t)};function lT(t){console&&console.warn&&console.warn(t)}var dm=Number.isNaN||function(t){return t!==t};function ue(){ue.init.call(this)}dT.exports=ue,ut.once=mT,ue.EventEmitter=ue,ue.prototype._events=void 0,ue.prototype._eventsCount=0,ue.prototype._maxListeners=void 0;var lm=10;function wc(t){if(typeof t!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t)}Object.defineProperty(ue,"defaultMaxListeners",{enumerable:!0,get:function(){return lm},set:function(t){if(typeof t!="number"||t<0||dm(t))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+t+".");lm=t}}),ue.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},ue.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||dm(t))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+t+".");return this._maxListeners=t,this};function um(t){return t._maxListeners===void 0?ue.defaultMaxListeners:t._maxListeners}ue.prototype.getMaxListeners=function(){return um(this)},ue.prototype.emit=function(t){for(var e=[],i=1;i<arguments.length;i++)e.push(arguments[i]);var r=t==="error",n=this._events;if(n!==void 0)r=r&&n.error===void 0;else if(!r)return!1;if(r){var s;if(e.length>0&&(s=e[0]),s instanceof Error)throw s;var o=new Error("Unhandled error."+(s?" ("+s.message+")":""));throw o.context=s,o}var c=n[t];if(c===void 0)return!1;if(typeof c=="function")cm(c,this,e);else for(var d=c.length,l=fm(c,d),i=0;i<d;++i)cm(l[i],this,e);return!0};function hm(t,e,i,r){var n,s,o;if(wc(i),s=t._events,s===void 0?(s=t._events=Object.create(null),t._eventsCount=0):(s.newListener!==void 0&&(t.emit("newListener",e,i.listener?i.listener:i),s=t._events),o=s[e]),o===void 0)o=s[e]=i,++t._eventsCount;else if(typeof o=="function"?o=s[e]=r?[i,o]:[o,i]:r?o.unshift(i):o.push(i),n=um(t),n>0&&o.length>n&&!o.warned){o.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=t,c.type=e,c.count=o.length,lT(c)}return t}ue.prototype.addListener=function(t,e){return hm(this,t,e,!1)},ue.prototype.on=ue.prototype.addListener,ue.prototype.prependListener=function(t,e){return hm(this,t,e,!0)};function uT(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function pm(t,e,i){var r={fired:!1,wrapFn:void 0,target:t,type:e,listener:i},n=uT.bind(r);return n.listener=i,r.wrapFn=n,n}ue.prototype.once=function(t,e){return wc(e),this.on(t,pm(this,t,e)),this},ue.prototype.prependOnceListener=function(t,e){return wc(e),this.prependListener(t,pm(this,t,e)),this},ue.prototype.removeListener=function(t,e){var i,r,n,s,o;if(wc(e),r=this._events,r===void 0)return this;if(i=r[t],i===void 0)return this;if(i===e||i.listener===e)--this._eventsCount===0?this._events=Object.create(null):(delete r[t],r.removeListener&&this.emit("removeListener",t,i.listener||e));else if(typeof i!="function"){for(n=-1,s=i.length-1;s>=0;s--)if(i[s]===e||i[s].listener===e){o=i[s].listener,n=s;break}if(n<0)return this;n===0?i.shift():hT(i,n),i.length===1&&(r[t]=i[0]),r.removeListener!==void 0&&this.emit("removeListener",t,o||e)}return this},ue.prototype.off=ue.prototype.removeListener,ue.prototype.removeAllListeners=function(t){var e,i,r;if(i=this._events,i===void 0)return this;if(i.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):i[t]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete i[t]),this;if(arguments.length===0){var n=Object.keys(i),s;for(r=0;r<n.length;++r)s=n[r],s!=="removeListener"&&this.removeAllListeners(s);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(e=i[t],typeof e=="function")this.removeListener(t,e);else if(e!==void 0)for(r=e.length-1;r>=0;r--)this.removeListener(t,e[r]);return this};function mm(t,e,i){var r=t._events;if(r===void 0)return[];var n=r[e];return n===void 0?[]:typeof n=="function"?i?[n.listener||n]:[n]:i?pT(n):fm(n,n.length)}ue.prototype.listeners=function(t){return mm(this,t,!0)},ue.prototype.rawListeners=function(t){return mm(this,t,!1)},ue.listenerCount=function(t,e){return typeof t.listenerCount=="function"?t.listenerCount(e):gm.call(t,e)},ue.prototype.listenerCount=gm;function gm(t){var e=this._events;if(e!==void 0){var i=e[t];if(typeof i=="function")return 1;if(i!==void 0)return i.length}return 0}ue.prototype.eventNames=function(){return this._eventsCount>0?bc(this._events):[]};function fm(t,e){for(var i=new Array(e),r=0;r<e;++r)i[r]=t[r];return i}function hT(t,e){for(;e+1<t.length;e++)t[e]=t[e+1];t.pop()}function pT(t){for(var e=new Array(t.length),i=0;i<e.length;++i)e[i]=t[i].listener||t[i];return e}function mT(t,e){return new Promise(function(i,r){function n(o){t.removeListener(e,s),r(o)}function s(){typeof t.removeListener=="function"&&t.removeListener("error",n),i([].slice.call(arguments))}vm(t,e,s,{once:!0}),e!=="error"&&gT(t,n,{once:!0})})}function gT(t,e,i){typeof t.on=="function"&&vm(t,"error",e,i)}function vm(t,e,i,r){if(typeof t.on=="function")r.once?t.once(e,i):t.on(e,i);else if(typeof t.addEventListener=="function")t.addEventListener(e,function n(s){r.once&&t.removeEventListener(e,n),i(s)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof t)}var z;(function(t){t[t.MAJOR_EVENT=0]="MAJOR_EVENT",t[t.MINOR_EVENT=1]="MINOR_EVENT"})(z||(z={}));var L;(function(t){t.PRECALL_TEST_BEGIN="precall_begin",t.PRECALL_TEST_COMPLETE="precall_end",t.CALL_JOIN_BEGIN="call_join",t.NET_QUALITY_TEST_BEGIN="net_quality_test_begin",t.NET_QUALITY_TEST_END="net_quality_test_end",t.WEBSOCKET_CONNECTED="websocket_connected",t.TRANSPORT_CONNECTED="transport_connected",t.AUDIO_ON="audio_on",t.AUDIO_OFF="audio_off",t.VIDEO_ON="video_on",t.VIDEO_OFF="video_off",t.PARTICIPANT_ROLE="participant_role",t.PING_STAT="ping_stat",t.DISCONNECT="disconnect",t.RECONNECT_ATTEMPT="reconnect_attempt",t.SCREENSHARE_START_REQUESTED="screenshare_start_requested",t.SCREENSHARE_STARTED="screenshare_started",t.SCREENSHARE_STOPPED="screenshare_stopped",t.TAB_CHANGE="tab_change",t.BROWSER_BACKGROUNDED="browser_backgrounded",t.BROWSER_FOREGROUNDED="browser_foregrounded",t.DOMINANT_SPEAKER="dominant_speaker",t.AUDIO_DEVICES_UPDATES="audio_devices_updates",t.VIDEO_DEVICES_UPDATES="video_devices_updates",t.SPEAKER_DEVICES_UPDATES="speaker_devices_updates",t.SELECTED_MICROHPONE_UPDATE="selected_microphone_update",t.SELECTED_CAMERA_UPDATE="selected_camera_update",t.SELECTED_SPEAKER_UPDATE="selected_speaker_update",t.EXPECTED_VIDEO_RESOLUTION="expected_video_resolution",t.EXPECTED_SCREENSHARE_RESOLUTION="expected_screenshare_resolution",t.MEDIA_PERMISSION="media_permission",t.LEGACY_SWITCH="legacy_switch",t.AUDIO_PLAY_FAILED="audio_play_failed",t.VIDEO_PLAY_FAILED="video_play_failed",t.AUDIO_TRACK_MUTED="audio_track_muted",t.VIDEO_TRACK_MUTED="video_track_muted",t.IVS_PLAYER_REBUFFERING="ivs_player_rebuffering",t.IVS_PLAYER_AUDIO_BLOCKED="ivs_player_audio_blocked",t.IVS_PLAYER_PLAYBACK_BLOCKED="ivs_player_playback_blocked",t.IVS_PLAYER_ERROR="ivs_player_error",t.IVS_PLAYER_RECOVERABLE_ERROR="ivs_player_recoverable_error",t.IVS_PLAYER_WORKER_ERROR="ivs_player_worker_error",t.IVS_PLAYER_NETWORK_UNAVAILABLE="ivs_player_network_unavailable",t.LIVESTREAM_LATENCY="livestream_latency",t.IVS_PLAYER_ANALYTICS_EVENT="ivs_player_analytics_event",t.IVS_PLAYER_PLAYBACK_RATE_CHANGED="ivs_player_playback_rate_changed",t.IVS_PLAYER_QUALITY_CHANGED="ivs_player_quality_changed",t.IVS_PLAYER_INITIALIZED="ivs_player_initialized"})(L||(L={}));const fT=new Map([[L.PRECALL_TEST_BEGIN,z.MINOR_EVENT],[L.PRECALL_TEST_COMPLETE,z.MINOR_EVENT],[L.CALL_JOIN_BEGIN,z.MAJOR_EVENT],[L.NET_QUALITY_TEST_BEGIN,z.MINOR_EVENT],[L.NET_QUALITY_TEST_END,z.MINOR_EVENT],[L.WEBSOCKET_CONNECTED,z.MINOR_EVENT],[L.TRANSPORT_CONNECTED,z.MAJOR_EVENT],[L.AUDIO_ON,z.MINOR_EVENT],[L.AUDIO_OFF,z.MINOR_EVENT],[L.VIDEO_ON,z.MINOR_EVENT],[L.VIDEO_OFF,z.MINOR_EVENT],[L.PARTICIPANT_ROLE,z.MINOR_EVENT],[L.PING_STAT,z.MAJOR_EVENT],[L.DISCONNECT,z.MAJOR_EVENT],[L.RECONNECT_ATTEMPT,z.MAJOR_EVENT],[L.SCREENSHARE_START_REQUESTED,z.MINOR_EVENT],[L.SCREENSHARE_STARTED,z.MINOR_EVENT],[L.SCREENSHARE_STOPPED,z.MINOR_EVENT],[L.TAB_CHANGE,z.MINOR_EVENT],[L.BROWSER_BACKGROUNDED,z.MINOR_EVENT],[L.BROWSER_FOREGROUNDED,z.MINOR_EVENT],[L.DOMINANT_SPEAKER,z.MINOR_EVENT],[L.AUDIO_DEVICES_UPDATES,z.MINOR_EVENT],[L.VIDEO_DEVICES_UPDATES,z.MINOR_EVENT],[L.SPEAKER_DEVICES_UPDATES,z.MINOR_EVENT],[L.SELECTED_MICROHPONE_UPDATE,z.MINOR_EVENT],[L.SELECTED_CAMERA_UPDATE,z.MINOR_EVENT],[L.SELECTED_SPEAKER_UPDATE,z.MINOR_EVENT],[L.MEDIA_PERMISSION,z.MINOR_EVENT],[L.LEGACY_SWITCH,z.MINOR_EVENT],[L.AUDIO_PLAY_FAILED,z.MINOR_EVENT],[L.VIDEO_PLAY_FAILED,z.MINOR_EVENT],[L.AUDIO_TRACK_MUTED,z.MINOR_EVENT],[L.VIDEO_TRACK_MUTED,z.MINOR_EVENT],[L.IVS_PLAYER_REBUFFERING,z.MAJOR_EVENT],[L.IVS_PLAYER_AUDIO_BLOCKED,z.MAJOR_EVENT],[L.IVS_PLAYER_PLAYBACK_BLOCKED,z.MAJOR_EVENT],[L.IVS_PLAYER_ERROR,z.MAJOR_EVENT],[L.IVS_PLAYER_RECOVERABLE_ERROR,z.MAJOR_EVENT],[L.IVS_PLAYER_WORKER_ERROR,z.MAJOR_EVENT],[L.IVS_PLAYER_NETWORK_UNAVAILABLE,z.MAJOR_EVENT],[L.LIVESTREAM_LATENCY,z.MAJOR_EVENT],[L.IVS_PLAYER_ANALYTICS_EVENT,z.MINOR_EVENT],[L.IVS_PLAYER_PLAYBACK_RATE_CHANGED,z.MINOR_EVENT],[L.IVS_PLAYER_QUALITY_CHANGED,z.MINOR_EVENT],[L.IVS_PLAYER_INITIALIZED,z.MINOR_EVENT],[L.EXPECTED_VIDEO_RESOLUTION,z.MINOR_EVENT],[L.EXPECTED_SCREENSHARE_RESOLUTION,z.MINOR_EVENT]]);class vT{constructor(){m(this,"events"),this.events=[]}add(e){this.events.push(e)}flush(){return{entries:this.events.splice(0,25)}}}class yT extends ut{constructor({logger:e,peerId:i,apiHostnames:r}){super(),m(this,"logger"),m(this,"peerId"),m(this,"eventStore"),m(this,"apiEndpoint"),this.logger=e,this.peerId=i,this.apiEndpoint=`https://${r.daCollector}/api/v1/message`,this.eventStore=new vT}sendEventsChunkToServer(e){return u(this,null,function*(){var i;const r={payload:e,peerId:this.peerId};try{return yield fetch(this.apiEndpoint,{method:"POST",body:JSON.stringify(r)}),!0}catch(n){return this.logger.error("callStats::sendEventsChunkToServer::catch",{error:n}),(i=e.entries)==null||i.forEach(s=>{this.eventStore.add(s)}),!1}})}callEvent(e){e.timestamp=new Date,this.eventStore.add(e),this.emit(e.event,e.metaData),fT.get(e.event)===z.MAJOR_EVENT&&this.flush()}flush(){return u(this,null,function*(){var e;const i=this.eventStore.flush();return(e=i==null?void 0:i.entries)!=null&&e.length?(yield this.sendEventsChunkToServer(i),!0):!1})}}var ym;(function(t){t.CHROMIUM="chromum",t.FIREFOX="firefox",t.SAFARI="safari"})(ym||(ym={}));const da={DEVEL:"devel",PREPROD:"preprod",PROD:"prod"};var ti;(function(t){t.AUDIO="AUDIO",t.VIDEO="VIDEO",t.SPEAKER="SPEAKER",t.SCREENSHARE="SCREENSHARE"})(ti||(ti={}));var Sm;(function(t){t[t.INIT=0]="INIT",t[t.ACCEPTED=1]="ACCEPTED",t[t.DENIED=2]="DENIED",t[t.SYS_DENIED=3]="SYS_DENIED",t[t.FAILED=4]="FAILED",t[t.NOTFOUND=5]="NOTFOUND",t[t.NOT_APPLICABLE=6]="NOT_APPLICABLE"})(Sm||(Sm={}));function gr(t){return t?t.split(".").slice(0,2).concat(["0","0"]).join("."):""}function _c({packetsLost:t,packetsSent:e}){return e>0?t*100/e:0}function Ic({packetsLost:t,packetsReceived:e}){return e+t>0?t*100/(e+t):0}const Tm=240,km=720,Em=8,bm=3,Cc=10,Pc=.02,Rc=.03;function qi({stat:t,weight:e,rangeMin:i,rangeMax:r,rangeRankingDirection:n}){return t==null?e:i===r?n==="UP"?t<=i?e:0:t>=r?e:0:n==="UP"?(1-Math.max(Math.min(r,Math.abs(t))-i,0)/(r-i))*e:n==="DOWN"?Math.max(Math.min(r,Math.abs(t))-i,0)/(r-i)*e:e}function wm({isLowQualityVideo:t,isVideoStuck:e,isVideoLagging:i,jitterQuality:r,packetsLostQuality:n}){const s=.8*((t?.85:1)*(i?.7:1)*(e?.5:1))+.2*(r*n);return Math.round((s+Number.EPSILON)*100)/100}function _m({packetsLost:t,packetsSent:e}){return e>0?t*100/e:0}function Im({packetsLost:t,packetsSent:e,jitter:i}){const r=qi({stat:_m({packetsLost:t,packetsSent:e}),weight:.7,rangeMin:0,rangeMax:Cc,rangeRankingDirection:"UP"}),n=qi({stat:i,weight:.3,rangeMin:Pc,rangeMax:Rc,rangeRankingDirection:"UP"});return r+n}function ST({frameWidth:t,isScreenShare:e}){return t<(e?km:Tm)}function TT({framesPerSecond:t,isScreenShare:e}){return t<(e?bm:Em)}function kT({framesEncoded:t}){return t===0}function Cm({frameWidth:t,framesPerSecond:e,packetsLost:i,packetsSent:r,jitter:n,isScreenShare:s,framesEncoded:o}){const c=qi({stat:_m({packetsLost:i,packetsSent:r}),weight:1,rangeMin:0,rangeMax:Cc,rangeRankingDirection:"UP"}),d=qi({stat:n,weight:1,rangeMin:Pc,rangeMax:Rc,rangeRankingDirection:"UP"}),l=ST({frameWidth:t,isScreenShare:s}),h=TT({framesPerSecond:e,isScreenShare:s}),p=kT({framesEncoded:o,isScreenShare:s});return wm({isLowQualityVideo:l,isVideoLagging:h,isVideoStuck:p,jitterQuality:d,packetsLostQuality:c})}function Pm({packetsLost:t,packetsReceived:e}){return e+t>0?t*100/(e+t):0}function Rm({concealmentEvents:t,packetsLost:e,packetsReceived:i,jitter:r}){const n=qi({stat:t,weight:.2,rangeMin:0,rangeMax:3,rangeRankingDirection:"UP"}),s=.5,o=qi({stat:Pm({packetsLost:e,packetsReceived:i}),weight:s,rangeMin:0,rangeMax:Cc,rangeRankingDirection:"UP"}),c=qi({stat:r,weight:.3,rangeMin:Pc,rangeMax:Rc,rangeRankingDirection:"UP"});return n+o+c}function ET({framesDecoded:t}){return t===0}function bT({framesPerSecond:t,isScreenShare:e}){return t<(e?bm:Em)}function wT({frameWidth:t,isScreenShare:e}){return t<(e?km:Tm)}function Mm({frameWidth:t,framesPerSecond:e,packetsLost:i,packetsReceived:r,jitter:n,isScreenShare:s,framesDecoded:o}){const c=qi({stat:Pm({packetsLost:i,packetsReceived:r}),weight:1,rangeMin:0,rangeMax:Cc,rangeRankingDirection:"UP"}),d=qi({stat:n,weight:1,rangeMin:Pc,rangeMax:Rc,rangeRankingDirection:"UP"}),l=wT({frameWidth:t,isScreenShare:s}),h=bT({framesPerSecond:e,isScreenShare:s}),p=ET({framesDecoded:o,isScreenShare:s});return wm({isLowQualityVideo:l,isVideoLagging:h,isVideoStuck:p,jitterQuality:d,packetsLostQuality:c})}class $i{constructor(e){m(this,"pc1"),m(this,"pc2"),m(this,"constrainVideoBitrateKbps"),m(this,"constrainOfferToRemoveVideoFec",!1),m(this,"iceCandidateFilter");const i=new RTCPeerConnection(e),r=new RTCPeerConnection(e);this.pc1=i,this.pc2=r,this.iceCandidateFilter=$i.noFilter,this.pc1.addEventListener("icecandidate",this.onIceCandidate.bind(this,this.pc2)),this.pc2.addEventListener("icecandidate",this.onIceCandidate.bind(this,this.pc1))}static parseCandidate(e){const i="candidate:",r=e.indexOf(i)+i.length,n=e.substr(r).split(" ");return{type:n[7],protocol:n[2],address:n[4]}}static isNotHostCandidate(e){return e.type!=="host"}static isHost(e){return e.type==="host"}static isRelay(e){return e.type==="relay"}static isReflexive(e){return e.type==="srflx"}static noFilter(e){return!0}onIceCandidate(e,i){if(i.candidate){const r=$i.parseCandidate(i.candidate.candidate);this.iceCandidateFilter(r)&&e.addIceCandidate(i.candidate)}}setIceCandidateFilter(e){this.iceCandidateFilter=e}constrainVideoBitrate(e){this.constrainVideoBitrateKbps=e}disableVideoFec(){this.constrainOfferToRemoveVideoFec=!0}gotOffer(e){this.constrainOfferToRemoveVideoFec&&(e.sdp=e.sdp.replace(/(m=video 1 [^\r]+)(116 117)(\r\n)/g,`$1\r
|
|
10
10
|
`),e.sdp=e.sdp.replace(/a=rtpmap:116 red\/90000\r\n/g,""),e.sdp=e.sdp.replace(/a=rtpmap:117 ulpfec\/90000\r\n/g,""),e.sdp=e.sdp.replace(/a=rtpmap:98 rtx\/90000\r\n/g,""),e.sdp=e.sdp.replace(/a=fmtp:98 apt=116\r\n/g,"")),this.pc1.setLocalDescription(e),this.pc2.setRemoteDescription(e),this.pc2.createAnswer().then(this.gotAnswer.bind(this),this.reportFatal.bind(this))}gotAnswer(e){this.constrainVideoBitrateKbps&&(e.sdp=e.sdp.replace(/a=mid:video\r\n/g,`a=mid:video\r
|
|
11
11
|
b=AS:${this.constrainVideoBitrateKbps}\r
|
|
12
|
-
`)),this.pc2.setLocalDescription(e),this.pc1.setRemoteDescription(e)}establishConnection(){this.pc1.createOffer().then(this.gotOffer.bind(this),this.reportFatal.bind(this))}reportFatal(e){console.error("Error:",e)}getRoundTripTime(){return u(this,null,function*(){const[e,i]=yield Promise.all([this.pc1.getStats(),this.pc2.getStats()]);let r,n;if(e.forEach(s=>{s.type==="candidate-pair"&&s.nominated===!0&&s.bytesSent>0&&(r=s)}),i.forEach(s=>{s.type==="candidate-pair"&&s.nominated===!0&&s.bytesReceived>0&&(n=s)}),r&&n)try{if(r.currentRoundTripTime&&n.currentRoundTripTime)return{rtt:r.currentRoundTripTime,backendRTT:n.currentRoundTripTime};const s=(n.lastPacketReceivedTimestamp-r.lastPacketSentTimestamp)/1e3;return{rtt:s,backendRTT:s}}catch(s){return}})}close(){this.pc1.close(),this.pc2.close()}}class Am extends ut{constructor(e){super(),m(this,"call"),m(this,"timeOut"),this.call=new $i(e)}start(e=1e4){this.call.establishConnection(),this.timeOut=setTimeout(this.testFailed.bind(this),e)}testComplete(e){clearTimeout(this.timeOut),this.call.close(),this.emit("done",e)}testFailed(e){this.call.close(),this.emit("failed",e)}}const _T=8,IT=1/1e3;class CT extends Am{constructor(e){super(e),m(this,"senderChannel"),m(this,"recieveChannel"),m(this,"startTime"),m(this,"lastBitrateMeasureTime"),m(this,"sentPayloadBytes",0),m(this,"recievedPayloadBytes",0),m(this,"lastReceivedPayloadBytes",0),m(this,"stopSending",!1),m(this,"testProgress",0),m(this,"samplePacket",""),m(this,"finalBitrateSum",0),m(this,"bitRateSampels",0),m(this,"maxNumberOfPacketsToSend",0),m(this,"bytesToKeepBuffered",0),m(this,"testDurationSeconds",5),this.call.setIceCandidateFilter($i.isNotHostCandidate),this.senderChannel=this.call.pc1.createDataChannel(null);for(let i=0;i<262144;i+=1)this.samplePacket+="h";this.maxNumberOfPacketsToSend=1,this.bytesToKeepBuffered=1024*this.maxNumberOfPacketsToSend,this.testDurationSeconds=4,this.senderChannel.addEventListener("open",this.sendingStep.bind(this)),this.call.pc2.addEventListener("datachannel",this.onRecieverChannel.bind(this))}sendingStep(){const e=new Date;this.startTime||(this.startTime=e,this.lastBitrateMeasureTime=e);for(let r=0;r!==this.maxNumberOfPacketsToSend&&!(this.senderChannel.bufferedAmount>=this.bytesToKeepBuffered);r+=1){this.sentPayloadBytes+=this.samplePacket.length;try{this.senderChannel.send(this.samplePacket)}catch(n){}}const i=e.getTime()-this.startTime.getTime();i>=1e3*this.testDurationSeconds?(this.stopSending=!0,this.testProgress=100):(this.testProgress=i/(10*this.testDurationSeconds),setTimeout(this.sendingStep.bind(this),1))}onMessageRecieved(e){this.recievedPayloadBytes+=e.data.length;const i=new Date,r=i.getTime()-this.lastBitrateMeasureTime.getTime();if(r>=1e3){const n=(this.recievedPayloadBytes-this.lastReceivedPayloadBytes)*_T/(r/1e3);this.finalBitrateSum+=n,this.bitRateSampels+=1,this.lastReceivedPayloadBytes=this.recievedPayloadBytes,this.lastBitrateMeasureTime=i}if(this.stopSending&&this.sentPayloadBytes===this.recievedPayloadBytes){const n=this.finalBitrateSum/this.bitRateSampels;this.testComplete({throughput:Math.round(n*IT)})}}testComplete(e){this.call.getRoundTripTime().then(({rtt:i,backendRTT:r})=>super.testComplete({RTT:i,backendRTT:r,throughput:e.throughput}))}onRecieverChannel(e){this.recieveChannel=e.channel,this.recieveChannel.addEventListener("message",this.onMessageRecieved.bind(this))}}class Kl extends Am{constructor(e,i=$i.noFilter){super(e),m(this,"ch1"),m(this,"ch2"),this.call.setIceCandidateFilter(i);const r=this.call.pc1.createDataChannel(null);this.ch1=r,r.addEventListener("open",()=>{r.send("hello")}),r.addEventListener("message",this.onCh1Recieve.bind(this)),this.call.pc2.addEventListener("datachannel",this.dataChannelHandler.bind(this))}onCh1Recieve(e){e.data!=="world"?this.hangup("Invalid data transmitted."):this.testComplete({connectivity:!0})}onCh2Recieve(e){if(e.data!=="hello")this.hangup("Invalid data transmitted.");else try{this.ch2.send("world")}catch(i){}}dataChannelHandler(e){const i=e.channel;this.ch2=i,i.addEventListener("message",this.onCh2Recieve.bind(this))}hangup(e){this.testFailed(e)}}class PT extends Kl{constructor(e){super(e,$i.isHost)}}class RT extends Kl{constructor(e){super(e,$i.isRelay)}}class MT extends Kl{constructor(e){super(e,$i.isReflexive)}}class AT{constructor(){m(this,"ipInformation",null)}getIPDetails(e){return u(this,arguments,function*({peerId:i,apiHostnames:r,logger:n}){var s,o,c;if(!this.ipInformation){try{const d=`https://${r.location}`,l=yield(yield fetch(d)).json();if(((s=l.loc)==null?void 0:s.length)>5)return this.ipInformation=l,(o=this.ipInformation)!=null&&o.ip&&(this.ipInformation.ip=gr(this.ipInformation.ip)),l;throw Error("Insufficient data")}catch(d){n.error("callstats::ipDetails:: failed to fetch ip using location service",{error:d})}try{const d=yield fetch(`https://${r.locationLegacy}/?token=3c493932b0624c&peerId=${i}`,{method:"POST"});this.ipInformation=yield d.json(),(c=this.ipInformation)!=null&&c.ip&&(this.ipInformation.ip=gr(this.ipInformation.ip))}catch(d){n.error("callstats::ipDetails:: failed to fetch ip using legacy location service",{error:d})}}return this.ipInformation})}resetCache(){this.ipInformation=null}}const zl=new AT,Dm=[{urls:"turn:turn.dyte.in:443?transport=tcp",username:"dyte",credential:"dytein",credentialType:"password"},{urls:"turn:turn.dyte.in:3478?transport=udp",username:"dyte",credential:"dytein",credentialType:"password"}];function Om(t){const[e,i]=t.split(",");return{coords:{latitude:Number(e),longitude:Number(i)}}}class Nm{constructor(){m(this,"transport"),m(this,"candidatePair"),m(this,"outboundVideoRtp",new Map),m(this,"inboundVideoRtp",new Map),m(this,"outboundAudioRtp",new Map),m(this,"inboundAudioRtp",new Map),m(this,"remoteInboundRtp",new Map),m(this,"producerStreamMap",new Map),m(this,"consumerStreamMap",new Map),m(this,"staleProducerStreamMap",!1),m(this,"staleConsumerStreamMap",!1)}}class Vm extends ut{constructor(){super(),m(this,"observer"),m(this,"outboundProducerMap",new Map),m(this,"inboundConsumerMap",new Map),m(this,"consumerPeerIdMap",new Map),m(this,"pausedConsumerMap",new Map),m(this,"pausedProducerMap",new Map),m(this,"overallProducingTransportsStatsMap",{}),m(this,"overallConsumingTransportsStatsMap",{}),m(this,"overallConsumersStatsMap",{}),m(this,"overallProducersStatsMap",{}),m(this,"videoProducerToStatsMap",new Map),m(this,"audioProducerToStatsMap",new Map),m(this,"videoConsumerToStatsMap",new Map),m(this,"audioConsumerToStatsMap",new Map),m(this,"consumerIdsWithFreezedVideo",new Set),m(this,"consumerIdsWithFreezedAudio",new Set),m(this,"producerIdsWithFreezedVideo",new Set),m(this,"producerIdsWithFreezedAudio",new Set),m(this,"freezedProducingTransportIds",new Set),m(this,"freezedConsumingTransportIds",new Set),m(this,"screenShareProducers",new Set),m(this,"screenShareConsumers",new Set),m(this,"ipDetails"),m(this,"callStatsInstance"),this.observer=new ut}registerProducer(e){return u(this,null,function*(){yield this.generateProducerStreamMap(e),e.on("close",this.deregisterProducer.bind(this,e)),e.on("pause",this.pauseProducer.bind(this,e.id)),e.on("resume",this.resumeProducer.bind(this,e.id)),e.appData.screenShare===!0&&this.screenShareProducers.add(e.id)})}pauseProducer(e){this.pausedProducerMap.set(e,{lastReportCalculated:!1})}resumeProducer(e){this.pausedProducerMap.delete(e)}processInboundConsumerVideoStats(e,i,r){var n,s;const o=((s=(n=this==null?void 0:this.callStatsInstance)==null?void 0:n.consumerSharedMediaStatesMap)==null?void 0:s.get(e))||{};i.totalVideoPacketsReceived===r.packetsReceived?(this.consumerIdsWithFreezedVideo.add(e),this.callStatsInstance&&o.video&&(this.callStatsInstance.logger.debug("callstats::measurements::consumerVideoFreezed",{consumerId:e}),this.callStatsInstance.eventHandler.emit("consumer_video_status","pause",e))):(i.totalVideoPacketsReceived=r.packetsReceived,this.consumerIdsWithFreezedVideo.has(e)&&(this.consumerIdsWithFreezedVideo.delete(e),this.callStatsInstance&&o.video&&(this.callStatsInstance.logger.debug("callstats::measurements::consumerVideoDefreezed",{consumerId:e}),this.callStatsInstance.eventHandler.emit("consumer_video_status","resume",e))))}processInboundConsumerAudioStats(e,i,r){var n,s;const o=((s=(n=this==null?void 0:this.callStatsInstance)==null?void 0:n.consumerSharedMediaStatesMap)==null?void 0:s.get(e))||{};i.totalAudioPacketsReceived===r.packetsReceived?(this.consumerIdsWithFreezedAudio.add(e),this.callStatsInstance&&o.audio&&(this.callStatsInstance.logger.debug("callStats::measurements::consumerAudioFreezed",{consumerId:e}),this.callStatsInstance.eventHandler.emit("consumer_audio_status","pause",e))):(i.totalAudioPacketsReceived=r.packetsReceived,this.consumerIdsWithFreezedAudio.has(e)&&(this.consumerIdsWithFreezedAudio.delete(e),this.callStatsInstance&&o.audio&&(this.callStatsInstance.logger.debug("callStats::measurements::consumerAudioDefreezed",{consumerId:e}),this.callStatsInstance.eventHandler.emit("consumer_audio_status","resume",e))))}processOutboundProducerVideoStats(e,i,r){var n;const s=((n=this==null?void 0:this.callStatsInstance)==null?void 0:n.currentUserMediaStates)||{};i.totalVideoPacketsSent===r.packetsSent?(this.producerIdsWithFreezedVideo.add(e),this.callStatsInstance&&s.video&&(this.callStatsInstance.logger.debug("callStats::measurements::producerVideoFreezed",{producerId:e}),this.callStatsInstance.eventHandler.emit("producer_video_status","pause",e))):(i.totalVideoPacketsSent=r.packetsSent,this.producerIdsWithFreezedVideo.has(e)&&(this.producerIdsWithFreezedVideo.delete(e),this.callStatsInstance&&s.video&&(this.callStatsInstance.logger.debug("callStats::measurements::producerVideoDefreezed",{producerId:e}),this.callStatsInstance.eventHandler.emit("producer_video_status","resume",e))))}processOutboundProducerAudioStats(e,i,r){var n;const s=((n=this==null?void 0:this.callStatsInstance)==null?void 0:n.currentUserMediaStates)||{};i.totalAudioPacketsSent===r.packetsSent?(this.producerIdsWithFreezedAudio.add(e),this.callStatsInstance&&s.audio&&(this.callStatsInstance.logger.debug("callStats::measurements::producerAudioFreezed",{producerId:e}),this.callStatsInstance.eventHandler.emit("producer_audio_status","pause",e))):(i.totalAudioPacketsSent=r.packetsSent,this.producerIdsWithFreezedAudio.has(e)&&(this.producerIdsWithFreezedAudio.delete(e),this.callStatsInstance&&s.audio&&(this.callStatsInstance.logger.debug("callStats::measurements::producerAudioDefreezed",{producerId:e}),this.callStatsInstance.eventHandler.emit("producer_audio_status","resume",e))))}processProducingTransportStats(e,i,r){var n;const s=((n=this==null?void 0:this.callStatsInstance)==null?void 0:n.currentUserMediaStates)||{},{audio:o,video:c,screen:d}=s,l=o||c||d;i.totalPacketsSent===r.packetsSent?(this.freezedProducingTransportIds.add(e),this.callStatsInstance&&l&&(this.callStatsInstance.logger.debug("callStats::measurements::producingTransportFreezed",{transportId:e}),this.callStatsInstance.eventHandler.emit("producing_transport_status","pause",e))):(i.totalPacketsSent=r.packetsSent,this.freezedProducingTransportIds.has(e)&&(this.freezedProducingTransportIds.delete(e),this.callStatsInstance&&l&&(this.callStatsInstance.logger.debug("callStats::measurements::producingTransportDefreezed",{transportId:e}),this.callStatsInstance.eventHandler.emit("producing_transport_status","resume",e))))}processConsumingTransportStats(e,i,r){var n,s;const o=!!Array.from(((s=(n=this==null?void 0:this.callStatsInstance)==null?void 0:n.consumerSharedMediaStatesMap)==null?void 0:s.values())||[]).reduce((c,d)=>c||d.audio||d.video||d.screen,!1);i.totalPacketsReceived===r.packetsSent?(this.freezedConsumingTransportIds.add(e),this.callStatsInstance&&o&&(this.callStatsInstance.logger.debug("callStats::measurements::consumingTransportFreezed",{transportId:e}),this.callStatsInstance.eventHandler.emit("consuming_transport_status","pause",e))):(i.totalPacketsReceived=r.packetsSent,this.freezedConsumingTransportIds.has(e)&&(this.freezedConsumingTransportIds.delete(e),this.callStatsInstance&&o&&(this.callStatsInstance.logger.debug("callStats::measurements::consumingTransportDefreezed",{transportId:e}),this.callStatsInstance.eventHandler.emit("consuming_transport_status","resume",e))))}registerConsumer(e){return u(this,null,function*(){yield this.generateConsumerStreamMap(e),this.consumerPeerIdMap.set(e.id,{producerId:e.producerId,peerId:e.appData.peerId,appData:e.appData}),e.on("close",this.deregisterConsumer.bind(this,e)),e.on("pause",this.pauseConsumer.bind(this,e.id)),e.on("resume",this.resumeConsumer.bind(this,e.id)),e.appData.screenShare===!0&&this.screenShareConsumers.add(e.id)})}pauseConsumer(e){this.pausedConsumerMap.set(e,{lastReportCalculated:!1})}resumeConsumer(e){this.pausedConsumerMap.delete(e)}generateProducerStreamMap(e,i=!1){return u(this,null,function*(){const r=yield e.getStats(),n=i?this.getProducerStatsFromReport(this.parseRTCReport(r,["outbound-rtp","remote-inbound-rtp"],!1,e.id))[0]:void 0;for(const s of r.values())switch(s.type){case"outbound-rtp":{this.outboundProducerMap.set(s.id,e.id);break}}return n})}generateConsumerStreamMap(e,i=!1){return u(this,null,function*(){const r=yield e.getStats(),n=i?this.getConsumerStatsFromReport(this.parseRTCReport(r,["inbound-rtp"],!1,e.id))[0]:void 0;for(const s of r.values())switch(s.type){case"inbound-rtp":{this.inboundConsumerMap.set(s.id,e.id);break}}return n})}deregisterProducer(e){this.outboundProducerMap.forEach((i,r)=>{i===e.id&&this.outboundProducerMap.delete(r)}),this.pausedProducerMap.delete(e.id),this.screenShareProducers.delete(e.id)}deregisterConsumer(e){this.inboundConsumerMap.forEach((i,r)=>{i===e.id&&this.inboundConsumerMap.delete(r)}),this.consumerPeerIdMap.delete(e.id),this.pausedConsumerMap.delete(e.id),this.screenShareConsumers.delete(e.id)}getIceCandidateStats(e){var i;return{id:e.id,type:e.candidateType||e.type,address:e.address,port:e.port,url:e.url,protocol:(i=e.relayProtocol)!=null?i:e.protocol,networkType:e.networkType,relatedAddress:e.relatedAddress,relatedPort:e.relatedPort}}getWorkingSimulcastVideoStats(e){return e.find(i=>{const r=i.framesEncoded>0,n=i.packetsSent>0,s=i.frameWidth&&i.frameHeight;return r&&n&&!!s})||e[e.length-1]}parseRTCReport(e,i=[],r=!1,n=void 0,s=void 0){var o,c,d,l,h,p,v,k,E,C,b,R,j;const W=e,w=new Nm,te=i.length?new Set(i):void 0,ie=[],ae=[],De=[],st=new Map,ei=new Map;for(const A of W.values()){if(te){if(te.size===0)break;if(te.has(A.type))r&&te.delete(A.type);else continue}switch(A.type){case"local-candidate":{ie.push(this.getIceCandidateStats(A));break}case"remote-candidate":{ae.push(this.getIceCandidateStats(A));break}case"candidate-pair":{const{nominated:S}=A,{selected:_}=A,B=A,de={nominated:S!=null?S:_,currentRoundTripTime:B.currentRoundTripTime,totalRoundTripTime:B.totalRoundTripTime,bytesReceived:B.bytesReceived,bytesSent:B.bytesSent,availableOutgoingBitrate:B.availableOutgoingBitrate,availableIncomingBitrate:B.availableIncomingBitrate,lastPacketReceivedTimestamp:B.lastPacketReceivedTimestamp,lastPacketSentTimestamp:B.lastPacketSentTimestamp,localCandidateId:B.localCandidateId,remoteCandidateId:B.remoteCandidateId,bytesDiscardedOnSend:B.bytesDiscardedOnSend,packetsSent:B.packetsSent,packetsReceived:B.packetsReceived,packetsDiscardedOnSend:B.packetsDiscardedOnSend};De.push(de),(A.nominated===!0||A.selected===!0)&&(w.candidatePair=de);break}case"transport":{const S=A;s&&(s.producing&&(this.overallProducingTransportsStatsMap[s.id]||(this.overallProducingTransportsStatsMap[s.id]={totalPacketsSent:0})),s.consuming&&(this.overallConsumingTransportsStatsMap[s.id]||(this.overallConsumingTransportsStatsMap[s.id]={totalPacketsReceived:0})));const _={bytesReceived:S.bytesReceived,bytesSent:S.bytesSent,packetsSent:S.packetsSent,packetsReceived:S.packetsReceived,dtlsCipher:S.dtlsCipher,dtlsState:S.dtlsState,iceRole:S.iceRole};if(w.transport=_,s){if(s.producing){const B=this.overallProducingTransportsStatsMap[s.id];this.processProducingTransportStats(s.id,B,_)}if(s.consuming){const B=this.overallConsumingTransportsStatsMap[s.id];this.processConsumingTransportStats(s.id,B,_)}}break}case"remote-inbound-rtp":{const S=A,_={jitter:S.jitter,fractionLost:S.fractionLost,roundTripTime:S.roundTripTime,roundTripTimeMeasurements:S.roundTripTimeMeasurements,totalRoundTripTime:S.totalRoundTripTime,packetsLost:S.packetsLost};w.remoteInboundRtp.set(S.localId,_);break}case"outbound-rtp":{const S=A,_=n||this.outboundProducerMap.get(A.id),B=this.pausedProducerMap.get(_);if(B){if(B.lastReportCalculated===!0)break;this.pausedProducerMap.set(_,{lastReportCalculated:!0})}this.overallProducersStatsMap[_]||(this.overallProducersStatsMap[_]={totalVideoPacketsSent:0,totalAudioPacketsSent:0});const de=this.overallProducersStatsMap[_];if(["video","audio"].includes(S.mediaType)||["video","audio"].includes(S.kind)){if(!this.outboundProducerMap.has(A.id)){w.staleProducerStreamMap=!0;break}const Ke=this.callStatsInstance.producers.get(_);if(((o=Ke==null?void 0:Ke.track)==null?void 0:o.readyState)==="ended")break;w.producerStreamMap.has(_)||w.producerStreamMap.set(_,{outboundVideoRtpId:[],outboundAudioRtpId:[]});const x={bytesSent:S.bytesSent,packetsSent:S.packetsSent,nackCount:S.nackCount,ssrc:S.ssrc,mid:S.mid,active:S.active,codecId:S.codecId,headerBytesSent:S.headerBytesSent||0,totalPacketSendDelay:S.totalPacketSendDelay||0};if(S.mediaType==="video"||S.kind==="video"){const P=S,le=V({frameHeight:P.frameHeight,frameWidth:P.frameWidth,framesEncoded:P.framesEncoded,framesDropped:P.framesDropped,framesPerSecond:P.framesPerSecond,framesSent:P.framesSent,keyFramesEncoded:P.keyFramesEncoded,firCount:P.firCount,encoderImplementation:P.encoderImplementation,hugeFramesSent:P.hugeFramesSent,pliCount:P.pliCount,qpSum:P.qpSum,qualityLimitationDurations:P.qualityLimitationDurations,qualityLimitationReason:P.qualityLimitationReason,qualityLimitationResolutionChanges:P.qualityLimitationResolutionChanges,totalEncodeTime:P.targetBitrate,totalPacketSendDelay:P.totalPacketSendDelay,retransmittedBytesSent:P.retransmittedBytesSent,retransmittedPacketsSent:P.retransmittedPacketsSent,scalabilityMode:P.scalabilityMode,powerEfficientEncoder:P.powerEfficientEncoder},x);w.outboundVideoRtp.set(A.id,le),w.producerStreamMap.get(_).outboundVideoRtpId.push(A.id),this.processOutboundProducerVideoStats(_,de,le)}else if(S.mediaType==="audio"||S.kind==="audio"){const P=S,le=V({retransmittedBytesSent:P.retransmittedBytesSent,retransmittedPacketsSent:P.retransmittedPacketsSent},x);w.outboundAudioRtp.set(A.id,le),w.producerStreamMap.get(_).outboundAudioRtpId.push(A.id),this.processOutboundProducerAudioStats(_,de,le)}}else this.callStatsInstance.logger.error(`Callstats: Unknown Outbound-rtp. mediatype: ${S.mediaType} kind: ${S.kind}`);break}case"inbound-rtp":{const S=A,_=n||this.inboundConsumerMap.get(A.id),B=this.pausedConsumerMap.get(_);if(B){if(B.lastReportCalculated===!0)break;this.pausedConsumerMap.set(_,{lastReportCalculated:!0})}if(S.ssrc===1234)break;this.overallConsumersStatsMap[_]||(this.overallConsumersStatsMap[_]={totalVideoPacketsReceived:0,totalAudioPacketsReceived:0});const de=this.overallConsumersStatsMap[_];if(["video","audio"].includes(S.mediaType)||["video","audio"].includes(S.kind)){if(!this.inboundConsumerMap.has(A.id)){w.staleConsumerStreamMap=!0;break}w.consumerStreamMap.has(_)||w.consumerStreamMap.set(_,{inboundVideoRtpId:[],inboundAudioRtpId:[]});const Ke={bytesReceived:S.bytesReceived,packetsReceived:S.packetsReceived,packetsLost:S.packetsLost>=0?S.packetsLost:0,jitter:S.jitter,nackCount:S.nackCount,jitterBufferDelay:S.jitterBufferDelay,jitterBufferEmittedCount:S.jitterBufferEmittedCount,lastPacketReceivedTimestamp:S.lastPacketReceivedTimestamp,ssrc:S.ssrc,mid:S.mid,codecId:S.codecId,headerBytesReceived:S.headerBytesReceived||0,packetsDiscarded:S.packetsDiscarded||0,jitterBufferMinimumDelay:S.jitterBufferMinimumDelay||0,jitterBufferTargetDelay:S.jitterBufferTargetDelay||0};if(S.mediaType==="video"||S.kind==="video"){const x=S,P=V({frameHeight:x.frameHeight,frameWidth:x.frameWidth,framesDecoded:x.framesDecoded,framesDropped:x.framesDropped,framesPerSecond:x.framesPerSecond,framesReceived:x.framesReceived,keyFramesDecoded:x.keyFramesDecoded,firCount:x.firCount,decoderImplementation:x.decoderImplementation,pliCount:x.pliCount,totalProcessingDelay:x.totalProcessingDelay,qpSum:x.qpSum||0,totalAssemblyTime:x.totalAssemblyTime||0,totalDecodeTime:x.totalDecodeTime||0,totalFreezesDuration:x.totalFreezesDuration||0,totalInterFrameDelay:x.totalInterFrameDelay||0,totalPausesDuration:x.totalPausesDuration||0,totalSquaredInterFrameDelay:x.totalSquaredInterFrameDelay||0,freezeCount:x.freezeCount||0,pauseCount:x.pauseCount||0,powerEfficientDecoder:x.powerEfficientDecoder},Ke);P.score=Mm({frameWidth:P.frameWidth||0,framesDecoded:(P.framesDecoded||0)-(((c=this.videoConsumerToStatsMap.get(_))==null?void 0:c.framesDecoded)||0),framesPerSecond:P.framesPerSecond||0,packetsLost:(P.packetsLost||0)-(((d=this.videoConsumerToStatsMap.get(_))==null?void 0:d.packetsLost)||0),packetsReceived:(P.packetsReceived||0)-(((l=this.videoConsumerToStatsMap.get(_))==null?void 0:l.packetsReceived)||0),jitter:P.jitter||0,isScreenShare:this.screenShareConsumers.has(_)}),ei.set(_,{score:+(P.score*10).toFixed(),frameWidth:P.frameWidth||0,frameHeight:P.frameHeight||0,framesPerSecond:P.framesPerSecond||0,packetsLostPercentage:Ic({packetsLost:(P.packetsLost||0)-(((h=this.videoConsumerToStatsMap.get(_))==null?void 0:h.packetsLost)||0),packetsReceived:(P.packetsReceived||0)-(((p=this.videoConsumerToStatsMap.get(_))==null?void 0:p.packetsReceived)||0)}),jitter:P.jitter||0,isScreenShare:this.screenShareConsumers.has(_),bitrate:((P.bytesReceived||0)-(((v=this.videoConsumerToStatsMap.get(_))==null?void 0:v.bytesReceived)||0))*8/7}),this.videoConsumerToStatsMap.set(_,P),w.inboundVideoRtp.set(A.id,P),w.consumerStreamMap.get(_).inboundVideoRtpId.push(A.id),this.processInboundConsumerVideoStats(_,de,P)}else if(S.mediaType==="audio"||S.kind==="audio"){const x=S,P=V({audioLevel:x.audioLevel,concealedSamples:x.concealedSamples,concealmentEvents:x.concealmentEvents,totalAudioEnergy:x.totalAudioEnergy,totalSamplesDuration:x.totalSamplesDuration,totalSamplesReceived:x.totalSamplesReceived,fecPacketsDiscarded:x.fecPacketsDiscarded||0,fecPacketsReceived:x.fecPacketsReceived||0,insertedSamplesForDeceleration:x.insertedSamplesForDeceleration||0,removedSamplesForAcceleration:x.removedSamplesForAcceleration||0,silentConcealedSamples:x.silentConcealedSamples||0,playoutId:x.playoutId},Ke);P.score=Rm({concealmentEvents:(P.concealmentEvents||0)-(((k=this.audioConsumerToStatsMap.get(_))==null?void 0:k.concealmentEvents)||0),packetsLost:(P.packetsLost||0)-(((E=this.audioConsumerToStatsMap.get(_))==null?void 0:E.packetsLost)||0),packetsReceived:(P.packetsReceived||0)-(((C=this.audioConsumerToStatsMap.get(_))==null?void 0:C.packetsReceived)||0),jitter:P.jitter||0}),ei.set(_,{score:+(P.score*10).toFixed(),packetsLostPercentage:Ic({packetsLost:(P.packetsLost||0)-(((b=this.audioConsumerToStatsMap.get(_))==null?void 0:b.packetsLost)||0),packetsReceived:(P.packetsReceived||0)-(((R=this.audioConsumerToStatsMap.get(_))==null?void 0:R.packetsReceived)||0)}),jitter:P.jitter||0,isScreenShare:this.screenShareConsumers.has(_),bitrate:((P.bytesReceived||0)-(((j=this.audioConsumerToStatsMap.get(_))==null?void 0:j.bytesReceived)||0))*8/7}),this.audioConsumerToStatsMap.set(_,P),w.inboundAudioRtp.set(A.id,P),w.consumerStreamMap.get(_).inboundAudioRtpId.push(A.id),this.processInboundConsumerAudioStats(_,de,P)}}else this.callStatsInstance.logger.error(`Callstats: Unknown Inbound-rtp. mediatype: ${S.mediaType} kind: ${S.kind}`);break}}}if(w.producerStreamMap.forEach((A,S)=>{var _,B,de,Ke,x,P,le,Gn,qn,pr,zo,Yo,Qo,Xo,Zo,ec,tc,ic,rc,nc,sc,ac,oc;if(A.outboundVideoRtpId.length>0){const ve=[];A.outboundVideoRtpId.forEach(Ip=>{ve.push(w.outboundVideoRtp.get(Ip))});const ne=this.getWorkingSimulcastVideoStats(ve);ne.score=Cm({frameWidth:ne.frameWidth||0,framesPerSecond:ne.framesPerSecond||0,jitter:((_=ne.remoteData)==null?void 0:_.jitter)||0,isScreenShare:this.screenShareProducers.has(S),packetsSent:(ne.packetsSent||0)-(((B=this.videoProducerToStatsMap.get(S))==null?void 0:B.packetsSent)||0),packetsLost:(((de=ne.remoteData)==null?void 0:de.packetsLost)||0)-(((x=(Ke=this.videoProducerToStatsMap.get(S))==null?void 0:Ke.remoteData)==null?void 0:x.packetsLost)||0),framesEncoded:(ne.framesEncoded||0)-(((P=this.videoProducerToStatsMap.get(S))==null?void 0:P.framesEncoded)||0)}),st.set(S,{score:+(ne.score*10).toFixed(),frameWidth:ne.frameWidth||0,frameHeight:ne.frameHeight||0,framesPerSecond:ne.framesPerSecond||0,jitter:((le=ne.remoteData)==null?void 0:le.jitter)||0,isScreenShare:this.screenShareProducers.has(S),packetsLostPercentage:_c({packetsSent:(ne.packetsSent||0)-(((Gn=this.videoProducerToStatsMap.get(S))==null?void 0:Gn.packetsSent)||0),packetsLost:(((qn=ne.remoteData)==null?void 0:qn.packetsLost)||0)-(((zo=(pr=this.videoProducerToStatsMap.get(S))==null?void 0:pr.remoteData)==null?void 0:zo.packetsLost)||0)}),bitrate:((ne.bytesSent||0)-(((Yo=this.videoProducerToStatsMap.get(S))==null?void 0:Yo.bytesSent)||0))*8/7,cpuLimitations:ne.qualityLimitationReason==="cpu",bandwidthLimitations:ne.qualityLimitationReason==="bandwidth"}),this.videoProducerToStatsMap.set(S,ne)}else if(A.outboundAudioRtpId.length>0){const ve=w.outboundAudioRtp.get(A.outboundAudioRtpId[0]);ve.score=Im({packetsSent:(ve.packetsSent||0)-(((Qo=this.audioProducerToStatsMap.get(S))==null?void 0:Qo.packetsSent)||0),packetsLost:(((Xo=ve.remoteData)==null?void 0:Xo.packetsLost)||0)-(((ec=(Zo=this.audioProducerToStatsMap.get(S))==null?void 0:Zo.remoteData)==null?void 0:ec.packetsLost)||0),jitter:((tc=ve.remoteData)==null?void 0:tc.jitter)||0}),st.set(S,{score:+(ve.score*10).toFixed(),bitrate:((ve.bytesSent||0)-(((ic=this.audioProducerToStatsMap.get(S))==null?void 0:ic.bytesSent)||0))*8/7,packetsLostPercentage:_c({packetsSent:(ve.packetsSent||0)-(((rc=this.audioProducerToStatsMap.get(S))==null?void 0:rc.packetsSent)||0),packetsLost:(((nc=ve.remoteData)==null?void 0:nc.packetsLost)||0)-(((ac=(sc=this.audioProducerToStatsMap.get(S))==null?void 0:sc.remoteData)==null?void 0:ac.packetsLost)||0)}),jitter:((oc=ve.remoteData)==null?void 0:oc.jitter)||0,isScreenShare:this.screenShareProducers.has(S)}),this.audioProducerToStatsMap.set(S,ve)}}),De.forEach(A=>{const S=ie.find(B=>B.id===A.localCandidateId?(A.localCandidateId=B.id,B):null),_=ae.find(B=>B.id===A.remoteCandidateId?(A.remoteCandidateId=B.id,B):null);S&&(A.localCandidateType=S.type,A.localCandidateAddress=gr(S.address),A.localCandidatePort=S.port,A.localCandidateProtocol=S.protocol,A.localCandidateUrl=S.url,A.localCandidateNetworkType=S.networkType,A.localCandidateRelatedAddress=gr(S.relatedAddress),A.localCandidateRelatedPort=S.relatedPort),_&&(A.remoteCandidateType=_.type,A.remoteCandidateAddress=gr(_.address),A.remoteCandidatePort=_.port,A.remoteCandidateProtocol=_.protocol,A.remoteCandidateUrl=_.url)}),w.candidatePair&&(w.transport?(w.transport.totalRoundTripTime=w.candidatePair.totalRoundTripTime,w.transport.availableOutgoingBitrate=w.candidatePair.availableOutgoingBitrate,w.transport.availableIncomingBitrate=w.candidatePair.availableIncomingBitrate,w.transport.roundTripTime=w.candidatePair.currentRoundTripTime):w.transport={bytesReceived:w.candidatePair.bytesReceived,bytesSent:w.candidatePair.bytesSent,totalRoundTripTime:w.candidatePair.totalRoundTripTime,availableOutgoingBitrate:w.candidatePair.availableOutgoingBitrate,availableIncomingBitrate:w.candidatePair.availableIncomingBitrate,roundTripTime:w.candidatePair.currentRoundTripTime}),w.transport&&(w.transport.candidatePairs=De),w.transport&&!w.transport.roundTripTime){let A=0,S=0;w.remoteInboundRtp.forEach((_,B)=>{_.roundTripTime&&_.roundTripTime>A&&(A=_.roundTripTime,S=_.totalRoundTripTime)}),w.transport.roundTripTime=A,w.transport.totalRoundTripTime=S}if(ei.size>0)try{this.observer.emit("consumer_score",ei)}catch(A){}if(st.size>0)try{this.observer.emit("producer_score",st)}catch(A){}return w}getProducersReport(e){return u(this,null,function*(){const i=e.map(r=>this.generateProducerStreamMap(r,!0));return i.length>0?Promise.all(i):void 0})}getConsumersReport(e){return u(this,null,function*(){const i=e.map(r=>this.generateConsumerStreamMap(r,!0));return i.length>0?Promise.all(i):void 0})}getTransportReport(e){return u(this,null,function*(){return e.getStats()})}getProcessedStats(e,i,r){return u(this,null,function*(){const n=yield this.getTransportReport(e),s={producing:r,consuming:i,id:e.id},o=n,c=this.parseRTCReport(o,["transport","candidate-pair","inbound-rtp","outbound-rtp","remote-inbound-rtp","local-candidate","remote-candidate"],!1,void 0,s);if(!c)return;const d={stats:c.transport,transportId:e.id,consuming:i,producing:r},l=c.staleProducerStreamMap?void 0:this.getProducerStatsFromReport(c),h=c.staleConsumerStreamMap?void 0:this.getConsumerStatsFromReport(c);return{transportReport:d,producerReport:l,consumerReport:h}})}getProducerStatsFromReport(e){const i=[];try{e.producerStreamMap.forEach((r,n)=>{var s,o;i.push({producerId:n,videoStats:r.outboundVideoRtpId.map(c=>e.outboundVideoRtp.get(c)),audioStats:r.outboundAudioRtpId.map(c=>e.outboundAudioRtp.get(c)),appData:((o=(s=this.callStatsInstance.producers)==null?void 0:s.get(n))==null?void 0:o.appData)||null})})}catch(r){this.callStatsInstance.logger.error("callStats::measurements::getProducerStatsFromReport",{error:{reason:r.reason,message:r.message}})}return i}getConsumerStatsFromReport(e){const i=[];try{e.consumerStreamMap.forEach((r,n)=>{const{peerId:s,producerId:o,appData:c}=this.consumerPeerIdMap.get(n);i.push({consumerId:n,peerId:s,producerId:o,appData:c,videoStats:r.inboundVideoRtpId.map(d=>e.inboundVideoRtp.get(d)),audioStats:r.inboundAudioRtpId.map(d=>e.inboundAudioRtp.get(d))})})}catch(r){console.error("getConsumersReport: ",r,e)}return i}getUserLocation(){return u(this,null,function*(){return new Promise((e,i)=>{try{navigator.geolocation?navigator.geolocation.getCurrentPosition(r=>{e(r)}):i()}catch(r){i(r)}})})}getConnectivity(e){return u(this,null,function*(){try{const i={iceServers:e||Dm},r=new Promise((l,h)=>{try{const p=new PT(i);p.addListener("done",l),p.addListener("failed",()=>{l({connectivity:!1})}),p.start(2e3)}catch(p){h(p)}}),n=new Promise((l,h)=>{try{const p=new RT(i);p.addListener("done",l),p.addListener("failed",()=>{l({connectivity:!1})}),p.start(2e3)}catch(p){h(p)}}),s=new Promise((l,h)=>{try{const p=new MT(i);p.addListener("done",l),p.addListener("failed",()=>{l({connectivity:!1})}),p.start(2e3)}catch(p){h(p)}}),[o,c,d]=yield Promise.all([r,n,s]);return{host:o==null?void 0:o.connectivity,relay:c==null?void 0:c.connectivity,reflexive:d==null?void 0:d.connectivity}}catch(i){return{host:!1,relay:!1,reflexive:!1}}})}getThroughput(e){return u(this,null,function*(){try{const i=yield new Promise((r,n)=>{try{const s={iceServers:e||Dm},o=new CT(s);o.addListener("done",r),o.addListener("failed",n),o.start(1e4)}catch(s){n(s)}});return{throughput:i.throughput,fractionalLoss:0,RTT:i.RTT,jitter:0,backendRTT:i.backendRTT}}catch(i){return}})}getIPDetails(){return u(this,null,function*(){var e,i;try{return this.ipDetails||(this.ipDetails=yield zl.getIPDetails({peerId:(e=this.callStatsInstance)==null?void 0:e.peerId,apiHostnames:(i=this.callStatsInstance)==null?void 0:i.apiHostnames,logger:this.callStatsInstance.logger})),this.ipDetails}catch(r){return}})}getNetworkQuality(e){return u(this,null,function*(){const[i,r]=yield Promise.all([this.getConnectivity(e),this.getThroughput(e)]);return{connectivity:i,throughput:r==null?void 0:r.throughput,fractionalLoss:r==null?void 0:r.fractionalLoss,RTT:r==null?void 0:r.RTT,jitter:r==null?void 0:r.jitter,backendRTT:r==null?void 0:r.backendRTT}})}getNetworkInfo(e,i=!1){return u(this,null,function*(){var r,n;if(i){const d=yield this.getIPDetails();return{ipDetails:d,effectiveNetworkType:(r=navigator.connection)==null?void 0:r.effectiveType,location:d!=null&&d.loc?Om(d==null?void 0:d.loc):void 0}}const[s,o,c]=yield Promise.all([this.getConnectivity(e),this.getThroughput(e),this.getIPDetails()]);return{ipDetails:c,effectiveNetworkType:(n=navigator.connection)==null?void 0:n.effectiveType,location:c!=null&&c.loc?Om(c==null?void 0:c.loc):void 0,turnConnectivity:s?s.host||s.relay||s.reflexive:!1,connectivity:s,throughput:o==null?void 0:o.throughput,fractionalLoss:o==null?void 0:o.fractionalLoss,RTT:o==null?void 0:o.RTT,jitter:o==null?void 0:o.jitter,backendRTT:o==null?void 0:o.backendRTT}})}}class DT extends Vm{}class Lm extends Vm{constructor(){super(...arguments),m(this,"producerMap",new Map),m(this,"consumerMap",new Map)}registerProducer(e){return u(this,null,function*(){this.producerMap.set(e.id,e),yield this.generateProducerStreamMap(e),e.on("close",this.deregisterProducer.bind(this,e)),e.on("pause",this.pauseProducer.bind(this,e.id)),e.on("resume",this.resumeProducer.bind(this,e.id)),e.appData.screenShare===!0&&this.screenShareProducers.add(e.id)})}registerConsumer(e){return u(this,null,function*(){this.consumerMap.set(e.id,e),yield this.generateConsumerStreamMap(e),this.consumerPeerIdMap.set(e.id,{producerId:e.producerId,peerId:e.appData.peerId,appData:e.appData}),e.on("close",this.deregisterConsumer.bind(this,e)),e.on("pause",this.pauseConsumer.bind(this,e.id)),e.on("resume",this.resumeConsumer.bind(this,e.id)),e.appData.screenShare===!0&&this.screenShareConsumers.add(e.id)})}generateConsumerStreamMap(e,i=!1){return u(this,null,function*(){const r=yield e.getStats(),n=this.parseRTCReport(r,["inbound-rtp"],!1,e.id),s=[...n.consumerStreamMap.values()][0],o=i?this.getConsumerStatsFromParsedConsumerStats(n,s,e.id):void 0;for(const c of r.values())switch(c.type){case"inbound-rtp":{this.inboundConsumerMap.set(c.id,e.id);break}}return o})}deregisterProducer(e){this.producerMap.delete(e.id),this.outboundProducerMap.forEach((i,r)=>{i===e.id&&this.outboundProducerMap.delete(r)}),this.pausedProducerMap.delete(e.id),this.screenShareProducers.delete(e.id)}deregisterConsumer(e){this.consumerMap.delete(e.id),this.inboundConsumerMap.forEach((i,r)=>{i===e.id&&this.inboundConsumerMap.delete(r)}),this.consumerPeerIdMap.delete(e.id),this.pausedConsumerMap.delete(e.id),this.screenShareConsumers.delete(e.id)}getIceCandidateStats(e){var i;return{id:e.id,type:e.candidateType||e.type,address:e.address,port:e.port,url:e.url,protocol:(i=e.relayProtocol)!=null?i:e.protocol,networkType:e.networkType,relatedAddress:e.relatedAddress,relatedPort:e.relatedPort}}parseRTCReport(e,i=[],r=!1,n=void 0,s=void 0){var o,c,d,l,h,p,v,k,E,C,b,R,j;const W=e,w=new Nm,te=i.length?new Set(i):void 0,ie=[],ae=[],De=[],st=new Map,ei=new Map;for(const A of W.values()){if(te){if(te.size===0)break;if(te.has(A.type))r&&te.delete(A.type);else continue}switch(A.type){case"local-candidate":{ie.push(this.getIceCandidateStats(A));break}case"remote-candidate":{ae.push(this.getIceCandidateStats(A));break}case"candidate-pair":{const{nominated:S}=A,{selected:_}=A,B=A,de={nominated:S!=null?S:_,currentRoundTripTime:B.currentRoundTripTime,totalRoundTripTime:B.totalRoundTripTime,bytesReceived:B.bytesReceived,bytesSent:B.bytesSent,availableOutgoingBitrate:B.availableOutgoingBitrate,availableIncomingBitrate:B.availableIncomingBitrate,lastPacketReceivedTimestamp:B.lastPacketReceivedTimestamp,lastPacketSentTimestamp:B.lastPacketSentTimestamp,localCandidateId:B.localCandidateId,remoteCandidateId:B.remoteCandidateId,bytesDiscardedOnSend:B.bytesDiscardedOnSend,packetsSent:B.packetsSent,packetsReceived:B.packetsReceived,packetsDiscardedOnSend:B.packetsDiscardedOnSend};De.push(de),(A.nominated===!0||A.selected===!0)&&(w.candidatePair=de);break}case"transport":{const S=A;s&&(s.producing&&(this.overallProducingTransportsStatsMap[s.id]||(this.overallProducingTransportsStatsMap[s.id]={totalPacketsSent:0})),s.consuming&&(this.overallConsumingTransportsStatsMap[s.id]||(this.overallConsumingTransportsStatsMap[s.id]={totalPacketsReceived:0})));const _={bytesReceived:S.bytesReceived,bytesSent:S.bytesSent,packetsSent:S.packetsSent,packetsReceived:S.packetsReceived,dtlsCipher:S.dtlsCipher,dtlsState:S.dtlsState,iceRole:S.iceRole};if(w.transport=_,s){if(s.producing){const B=this.overallProducingTransportsStatsMap[s.id];this.processProducingTransportStats(s.id,B,_)}if(s.consuming){const B=this.overallConsumingTransportsStatsMap[s.id];this.processConsumingTransportStats(s.id,B,_)}}break}case"remote-inbound-rtp":{const S=A,_={jitter:S.jitter,fractionLost:S.fractionLost,roundTripTime:S.roundTripTime,roundTripTimeMeasurements:S.roundTripTimeMeasurements,totalRoundTripTime:S.totalRoundTripTime,packetsLost:S.packetsLost};w.remoteInboundRtp.set(S.localId,_);break}case"outbound-rtp":{const S=A,_=n||this.outboundProducerMap.get(A.id),B=this.pausedProducerMap.get(_);if(B){if(B.lastReportCalculated===!0)break;this.pausedProducerMap.set(_,{lastReportCalculated:!0})}this.overallProducersStatsMap[_]||(this.overallProducersStatsMap[_]={totalVideoPacketsSent:0,totalAudioPacketsSent:0});const de=this.overallProducersStatsMap[_];if(["video","audio"].includes(S.mediaType)||["video","audio"].includes(S.kind)){if(!this.outboundProducerMap.has(A.id)){w.staleProducerStreamMap=!0;break}const Ke=this.callStatsInstance.producers.get(_);if(((o=Ke==null?void 0:Ke.track)==null?void 0:o.readyState)==="ended")break;w.producerStreamMap.has(_)||w.producerStreamMap.set(_,{outboundVideoRtpId:[],outboundAudioRtpId:[]});const x={bytesSent:S.bytesSent,packetsSent:S.packetsSent,nackCount:S.nackCount,ssrc:S.ssrc,mid:S.mid,active:S.active,codecId:S.codecId,headerBytesSent:S.headerBytesSent||0,totalPacketSendDelay:S.totalPacketSendDelay||0};if(S.mediaType==="video"||S.kind==="video"){const P=S,le=V({frameHeight:P.frameHeight,frameWidth:P.frameWidth,framesEncoded:P.framesEncoded,framesDropped:P.framesDropped?P.framesDropped:P.droppedFrames,framesPerSecond:P.framesPerSecond?P.framesPerSecond:P.framerateMean,framesSent:P.framesSent,keyFramesEncoded:P.keyFramesEncoded,firCount:P.firCount,encoderImplementation:P.encoderImplementation,hugeFramesSent:P.hugeFramesSent,pliCount:P.pliCount,qpSum:P.qpSum,qualityLimitationReason:P.qualityLimitationReason,qualityLimitationDurations:P.qualityLimitationDurations,qualityLimitationResolutionChanges:P.qualityLimitationResolutionChanges,totalEncodeTime:P.totalEncodeTime,totalPacketSendDelay:P.totalEncodeTime,retransmittedBytesSent:P.retransmittedBytesSent,retransmittedPacketsSent:P.retransmittedPacketsSent,scalabilityMode:P.scalabilityMode,powerEfficientEncoder:P.powerEfficientEncoder},x);w.outboundVideoRtp.set(A.id,le),w.producerStreamMap.get(_).outboundVideoRtpId.push(A.id),this.processOutboundProducerVideoStats(_,de,le)}else if(S.mediaType==="audio"||S.kind==="audio"){const P=S,le=V({retransmittedBytesSent:P.retransmittedBytesSent,retransmittedPacketsSent:P.retransmittedPacketsSent},x);w.outboundAudioRtp.set(A.id,le),w.producerStreamMap.get(_).outboundAudioRtpId.push(A.id),this.processOutboundProducerAudioStats(_,de,le)}}else this.callStatsInstance.logger.error(`Callstats: Unknown Outbound-rtp. mediatype: ${S.mediaType} kind: ${S.kind}`);break}case"inbound-rtp":{const S=A,_=n||this.inboundConsumerMap.get(A.id),B=this.pausedConsumerMap.get(_);if(B){if(B.lastReportCalculated===!0)break;this.pausedConsumerMap.set(_,{lastReportCalculated:!0})}if(S.ssrc===1234)break;this.overallConsumersStatsMap[_]||(this.overallConsumersStatsMap[_]={totalVideoPacketsReceived:0,totalAudioPacketsReceived:0});const de=this.overallConsumersStatsMap[_];if(["video","audio"].includes(S.mediaType)||["video","audio"].includes(S.kind)){if(!this.inboundConsumerMap.has(A.id)){w.staleConsumerStreamMap=!0;break}w.consumerStreamMap.has(_)||w.consumerStreamMap.set(_,{inboundVideoRtpId:[],inboundAudioRtpId:[]});const Ke={bytesReceived:S.bytesReceived,packetsReceived:S.packetsReceived,packetsLost:S.packetsLost>=0?S.packetsLost:0,jitter:S.jitter,nackCount:S.nackCount,jitterBufferDelay:S.jitterBufferDelay,jitterBufferEmittedCount:S.jitterBufferEmittedCount,lastPacketReceivedTimestamp:S.lastPacketReceivedTimestamp,ssrc:S.ssrc,mid:S.mid,codecId:S.codecId,headerBytesReceived:S.headerBytesReceived||0,packetsDiscarded:S.packetsDiscarded||0,jitterBufferMinimumDelay:S.jitterBufferMinimumDelay||0,jitterBufferTargetDelay:S.jitterBufferTargetDelay||0};if(S.mediaType==="video"||S.kind==="video"){const x=S,P=V({frameHeight:x.frameHeight,frameWidth:x.frameWidth,framesDecoded:x.framesDecoded,framesDropped:x.framesDropped?x.framesDropped:x.droppedFrames,framesPerSecond:x.framesPerSecond?x.framesPerSecond:x.framerateMean,framesReceived:x.framesReceived,keyFramesDecoded:x.keyFramesDecoded,firCount:x.firCount,decoderImplementation:x.decoderImplementation,pliCount:x.pliCount,totalProcessingDelay:x.totalProcessingDelay,qpSum:x.qpSum||0,totalAssemblyTime:x.totalAssemblyTime||0,totalDecodeTime:x.totalDecodeTime||0,totalFreezesDuration:x.totalFreezesDuration||0,totalInterFrameDelay:x.totalInterFrameDelay||0,totalPausesDuration:x.totalPausesDuration||0,totalSquaredInterFrameDelay:x.totalSquaredInterFrameDelay||0,freezeCount:x.freezeCount||0,pauseCount:x.pauseCount||0,powerEfficientDecoder:x.powerEfficientDecoder},Ke);P.score=Mm({frameWidth:P.frameWidth||0,framesDecoded:(P.framesDecoded||0)-(((c=this.videoConsumerToStatsMap.get(_))==null?void 0:c.framesDecoded)||0),framesPerSecond:P.framesPerSecond||0,packetsLost:(P.packetsLost||0)-(((d=this.videoConsumerToStatsMap.get(_))==null?void 0:d.packetsLost)||0),packetsReceived:(P.packetsReceived||0)-(((l=this.videoConsumerToStatsMap.get(_))==null?void 0:l.packetsReceived)||0),jitter:P.jitter||0,isScreenShare:this.screenShareConsumers.has(_)}),ei.set(_,{score:+(P.score*10).toFixed(),frameWidth:P.frameWidth||0,frameHeight:P.frameHeight||0,framesPerSecond:P.framesPerSecond||0,packetsLostPercentage:Ic({packetsLost:(P.packetsLost||0)-(((h=this.videoConsumerToStatsMap.get(_))==null?void 0:h.packetsLost)||0),packetsReceived:(P.packetsReceived||0)-(((p=this.videoConsumerToStatsMap.get(_))==null?void 0:p.packetsReceived)||0)}),jitter:P.jitter||0,isScreenShare:this.screenShareConsumers.has(_),bitrate:((P.bytesReceived||0)-(((v=this.videoConsumerToStatsMap.get(_))==null?void 0:v.bytesReceived)||0))*8/7}),this.videoConsumerToStatsMap.set(_,P),w.inboundVideoRtp.set(A.id,P),w.consumerStreamMap.get(_).inboundVideoRtpId.push(A.id),this.processInboundConsumerVideoStats(_,de,P)}else if(S.mediaType==="audio"||S.kind==="audio"){const x=S,P=V({audioLevel:x.audioLevel,concealedSamples:x.concealedSamples,concealmentEvents:x.concealmentEvents,totalAudioEnergy:x.totalAudioEnergy,totalSamplesDuration:x.totalSamplesDuration,totalSamplesReceived:x.totalSamplesReceived,fecPacketsDiscarded:x.fecPacketsDiscarded||0,fecPacketsReceived:x.fecPacketsReceived||0,insertedSamplesForDeceleration:x.insertedSamplesForDeceleration||0,removedSamplesForAcceleration:x.removedSamplesForAcceleration||0,silentConcealedSamples:x.silentConcealedSamples||0,playoutId:x.playoutId},Ke);P.score=Rm({concealmentEvents:(P.concealmentEvents||0)-(((k=this.audioConsumerToStatsMap.get(_))==null?void 0:k.concealmentEvents)||0),packetsLost:(P.packetsLost||0)-(((E=this.audioConsumerToStatsMap.get(_))==null?void 0:E.packetsLost)||0),packetsReceived:(P.packetsReceived||0)-(((C=this.audioConsumerToStatsMap.get(_))==null?void 0:C.packetsReceived)||0),jitter:P.jitter||0}),ei.set(_,{score:+(P.score*10).toFixed(),packetsLostPercentage:Ic({packetsLost:(P.packetsLost||0)-(((b=this.audioConsumerToStatsMap.get(_))==null?void 0:b.packetsLost)||0),packetsReceived:(P.packetsReceived||0)-(((R=this.audioConsumerToStatsMap.get(_))==null?void 0:R.packetsReceived)||0)}),jitter:P.jitter||0,isScreenShare:this.screenShareConsumers.has(_),bitrate:((P.bytesReceived||0)-(((j=this.audioConsumerToStatsMap.get(_))==null?void 0:j.bytesReceived)||0))*8/7}),this.audioConsumerToStatsMap.set(_,P),w.inboundAudioRtp.set(A.id,P),w.consumerStreamMap.get(_).inboundAudioRtpId.push(A.id),this.processInboundConsumerAudioStats(_,de,P)}}else this.callStatsInstance.logger.error(`Callstats: Unknown Inbound-rtp. mediatype: ${S.mediaType} kind: ${S.kind}`);break}}}if(w.producerStreamMap.forEach((A,S)=>{var _,B,de,Ke,x,P,le,Gn,qn,pr,zo,Yo,Qo,Xo,Zo,ec,tc,ic,rc,nc,sc,ac,oc;if(A.outboundVideoRtpId.length>0){const ve=[];A.outboundVideoRtpId.forEach(Ip=>{ve.push(w.outboundVideoRtp.get(Ip))});const ne=this.getWorkingSimulcastVideoStats(ve);ne.score=Cm({frameWidth:ne.frameWidth||0,framesPerSecond:ne.framesPerSecond||0,jitter:((_=ne.remoteData)==null?void 0:_.jitter)||0,isScreenShare:this.screenShareProducers.has(S),packetsSent:(ne.packetsSent||0)-(((B=this.videoProducerToStatsMap.get(S))==null?void 0:B.packetsSent)||0),packetsLost:(((de=ne.remoteData)==null?void 0:de.packetsLost)||0)-(((x=(Ke=this.videoProducerToStatsMap.get(S))==null?void 0:Ke.remoteData)==null?void 0:x.packetsLost)||0),framesEncoded:(ne.framesEncoded||0)-(((P=this.videoProducerToStatsMap.get(S))==null?void 0:P.framesEncoded)||0)}),st.set(S,{score:+(ne.score*10).toFixed(),frameWidth:ne.frameWidth||0,frameHeight:ne.frameHeight||0,framesPerSecond:ne.framesPerSecond||0,jitter:((le=ne.remoteData)==null?void 0:le.jitter)||0,isScreenShare:this.screenShareProducers.has(S),packetsLostPercentage:_c({packetsSent:(ne.packetsSent||0)-(((Gn=this.videoProducerToStatsMap.get(S))==null?void 0:Gn.packetsSent)||0),packetsLost:(((qn=ne.remoteData)==null?void 0:qn.packetsLost)||0)-(((zo=(pr=this.videoProducerToStatsMap.get(S))==null?void 0:pr.remoteData)==null?void 0:zo.packetsLost)||0)}),bitrate:((ne.bytesSent||0)-(((Yo=this.videoProducerToStatsMap.get(S))==null?void 0:Yo.bytesSent)||0))*8/7,cpuLimitations:ne.qualityLimitationReason==="cpu",bandwidthLimitations:ne.qualityLimitationReason==="bandwidth"}),this.videoProducerToStatsMap.set(S,ne)}else if(A.outboundAudioRtpId.length>0){const ve=w.outboundAudioRtp.get(A.outboundAudioRtpId[0]);ve.score=Im({packetsSent:(ve.packetsSent||0)-(((Qo=this.audioProducerToStatsMap.get(S))==null?void 0:Qo.packetsSent)||0),packetsLost:(((Xo=ve.remoteData)==null?void 0:Xo.packetsLost)||0)-(((ec=(Zo=this.audioProducerToStatsMap.get(S))==null?void 0:Zo.remoteData)==null?void 0:ec.packetsLost)||0),jitter:((tc=ve.remoteData)==null?void 0:tc.jitter)||0}),st.set(S,{score:+(ve.score*10).toFixed(),bitrate:((ve.bytesSent||0)-(((ic=this.audioProducerToStatsMap.get(S))==null?void 0:ic.bytesSent)||0))*8/7,packetsLostPercentage:_c({packetsSent:(ve.packetsSent||0)-(((rc=this.audioProducerToStatsMap.get(S))==null?void 0:rc.packetsSent)||0),packetsLost:(((nc=ve.remoteData)==null?void 0:nc.packetsLost)||0)-(((ac=(sc=this.audioProducerToStatsMap.get(S))==null?void 0:sc.remoteData)==null?void 0:ac.packetsLost)||0)}),jitter:((oc=ve.remoteData)==null?void 0:oc.jitter)||0,isScreenShare:this.screenShareProducers.has(S)}),this.audioProducerToStatsMap.set(S,ve)}}),De.forEach(A=>{const S=ie.find(B=>B.id===A.localCandidateId?(A.localCandidateId=B.id,B):null),_=ae.find(B=>B.id===A.remoteCandidateId?(A.remoteCandidateId=B.id,B):null);S&&(A.localCandidateType=S.type,A.localCandidateAddress=gr(S.address),A.localCandidatePort=S.port,A.localCandidateProtocol=S.protocol,A.localCandidateUrl=S.url,A.localCandidateNetworkType=S.networkType,A.localCandidateRelatedAddress=gr(S.relatedAddress),A.localCandidateRelatedPort=S.relatedPort),_&&(A.remoteCandidateType=_.type,A.remoteCandidateAddress=gr(_.address),A.remoteCandidatePort=_.port,A.remoteCandidateProtocol=_.protocol,A.remoteCandidateUrl=_.url)}),w.candidatePair&&(w.transport?(w.transport.bytesReceived=w.candidatePair.bytesReceived,w.transport.bytesSent=w.candidatePair.bytesSent,w.transport.totalRoundTripTime=w.candidatePair.totalRoundTripTime,w.transport.availableOutgoingBitrate=w.candidatePair.availableOutgoingBitrate,w.transport.availableIncomingBitrate=w.candidatePair.availableIncomingBitrate,w.transport.roundTripTime=w.candidatePair.currentRoundTripTime):w.transport={bytesReceived:w.candidatePair.bytesReceived,bytesSent:w.candidatePair.bytesSent,totalRoundTripTime:w.candidatePair.totalRoundTripTime,availableOutgoingBitrate:w.candidatePair.availableOutgoingBitrate,availableIncomingBitrate:w.candidatePair.availableIncomingBitrate,roundTripTime:w.candidatePair.currentRoundTripTime}),w.transport&&(w.transport.candidatePairs=De),w.transport&&!w.transport.roundTripTime){let A=0,S=0;w.remoteInboundRtp.forEach((_,B)=>{_.roundTripTime&&_.roundTripTime>A&&(A=_.roundTripTime,S=_.totalRoundTripTime)}),w.transport.roundTripTime=A,w.transport.totalRoundTripTime=S}if(ei.size>0)try{this.observer.emit("consumer_score",ei)}catch(A){}if(st.size>0)try{this.observer.emit("producer_score",st)}catch(A){}return w}getProducerStatsFromReport(e){const i=[];try{e.producerStreamMap.forEach((r,n)=>{const s=this.producerMap.get(n),o=s.track.getSettings(),c=r.outboundVideoRtpId.map(l=>{const h=e.outboundVideoRtp.get(l);return h.frameHeight||(h.frameHeight=o.height,h.frameWidth=o.width,h.framesPerSecond=o.frameRate),h}),d={producerId:n,appData:s.appData,videoStats:c,audioStats:r.outboundAudioRtpId.map(l=>e.outboundAudioRtp.get(l))};i.push(d)})}catch(r){console.error("getProducersReport: ",r,e)}return i}getConsumerStatsFromParsedConsumerStats(e,i,r){let n;try{const{peerId:s,producerId:o,appData:c}=this.consumerPeerIdMap.get(r),d=i==null?void 0:i.inboundVideoRtpId.map(l=>{const h=this.consumerMap.get(r).track.getSettings(),p=e.inboundVideoRtp.get(l);return p.frameHeight||(p.frameHeight=h.height,p.frameWidth=h.width,p.framesPerSecond=h.frameRate),p});n={consumerId:r,peerId:s,producerId:o,appData:c,videoStats:d,audioStats:i==null?void 0:i.inboundAudioRtpId.map(l=>e.inboundAudioRtp.get(l))}}catch(s){console.error("getConsumerStatsFromParsedConsumerStats: ",s,e)}return n}getConsumerStatsFromReport(e){const i=[];try{e.consumerStreamMap.forEach((r,n)=>{i.push(this.getConsumerStatsFromParsedConsumerStats(e,r,n))})}catch(r){console.error("getConsumerStatsFromReport: ",r,e)}return i}}class OT extends Lm{}function Mc(t,e,i,r){if(t!=null&&t.logger&&t.logger.error("Callstats::handleError",{error:r}),typeof i=="function"&&r instanceof e)i.call(null,r,t);else throw r}function xm(t,e,i){const r=t.value;return t.value=function(...n){try{const s=r.apply(this,n);return s&&s instanceof Promise?s.catch(o=>{Mc(this,e,i,o)}):s}catch(s){Mc(this,e,i,s)}return null},t}const X=(t,e)=>(i,r,n)=>{const s=n.value;return n.value=function(...o){try{const c=s.apply(this,o);return c&&c instanceof Promise?c.catch(d=>{Mc(this,t,e,d)}):c}catch(c){Mc(this,t,e,c)}return null},n},NT=(t,e)=>(i,r,n)=>{if(n)return xm(n,t,e);for(const s of Reflect.ownKeys(i.prototype).filter(o=>o!=="constructor")){const o=Object.getOwnPropertyDescriptor(i.prototype,s);o.value instanceof Function&&Object.defineProperty(i.prototype,s,xm(o,t,e))}};var Y=globalThis&&globalThis.__decorate||function(t,e,i,r){var n=arguments.length,s=n<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,i):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(t,e,i,r);else for(var c=t.length-1;c>=0;c--)(o=t[c])&&(s=(n<3?o(s):n>3?o(e,i,s):o(e,i))||s);return n>3&&s&&Object.defineProperty(e,i,s),s};const Q=console;let K=class extends ut{constructor(t="https://api.testingv3.dyte.in",e="Blink",i=da.PROD,r,n,s,o){switch(super(),m(this,"observer"),m(this,"eventHandler"),m(this,"measurements"),m(this,"producingTransport"),m(this,"consumingTransport"),m(this,"producers",new Map),m(this,"consumers",new Map),m(this,"iceServers"),m(this,"connectionInfoPromise"),m(this,"pingStatsTimeout"),m(this,"logger"),m(this,"env"),m(this,"apiHostnames"),m(this,"peerId"),m(this,"consumerSharedMediaStatesMap",new Map),m(this,"currentUserMediaStates",{}),this.env=i,this.apiHostnames=o,this.logger=n,this.peerId=s,this.eventHandler=new yT({logger:n,peerId:s,apiHostnames:o}),this.logger.debug("callStats::engineName: ",{engineName:e}),e){case"Blink":this.measurements=new DT;break;case"Gecko":this.measurements=new Lm;break;case"WebKit":this.measurements=new OT;break;default:throw Error(`Unknown engineName! ${e}`)}this.measurements.callStatsInstance=this,this.registerProducer=this.registerProducer.bind(this),this.registerConsumer=this.registerConsumer.bind(this),this.observer=new ut,this.measurements.observer.on("consumer_score",c=>{n.debug(`callStats::consumer_score ${[...c.entries()]}`),this.eventHandler.emit("consumer_score",c)}),this.measurements.observer.on("producer_score",c=>{n.debug(`callStats::producer_score ${[...c.entries()]}`),this.eventHandler.emit("producer_score",c)})}registerIceServers(t){this.iceServers=t}registerConsumer(t){var e;this.consumerSharedMediaStatesMap.has(t.id)||this.consumerSharedMediaStatesMap.set(t.id,{}),this.consumers.set(t.id,t),this.measurements.registerConsumer(t),this.logger.debug("callStats::registerConsumer",{consumerId:t.id,consumerkind:t.kind,isScreenShare:!!((e=t.appData)!=null&&e.screenShare)}),t.on("close",this.deRegisterConsumer.bind(this,t))}registerProducer(t){var e;this.producers.set(t.id,t),this.measurements.registerProducer(t),this.logger.debug("callStats::registerProducer",{producerId:t.id,producerKind:t.kind,isScreenShare:!!((e=t.appData)!=null&&e.screenShare)}),t.on("close",this.deRegisterProducer.bind(this,t))}sendConsumerSharedMediaStateEvent(t,e){this.consumerSharedMediaStatesMap.has(t)||this.consumerSharedMediaStatesMap.set(t,{});const i=this.consumerSharedMediaStatesMap.get(t);this.consumerSharedMediaStatesMap.set(t,Object.assign(i,e))}registerProducingTransport(t){var e;this.producingTransport=t,t.on("close",this.disconnectProducingTransport.bind(this,t)),t.on("disconnect",this.disconnectProducingTransport.bind(this,t)),Array.from(((e=t._producers)==null?void 0:e.values())||[]).forEach(i=>{this.registerProducer(i)}),t.on("newproducer",this.registerProducer)}registerConsumingTransport(t){var e;this.consumingTransport=t,t.on("close",this.disconnectConsumingTransport.bind(this,t)),t.on("disconnect",this.disconnectConsumingTransport.bind(this,t)),Array.from(((e=t._consumers)==null?void 0:e.values())||[]).forEach(i=>{this.registerConsumer(i)}),t.on("newconsumer",this.registerConsumer)}deRegisterConsumer(t){this.consumers.delete(t.id)}deRegisterProducer(t){var e;this.producers.delete(t.id),this.logger.debug("callStats::deRegisterProducer",{producerId:t.id,producerKind:t.kind,isScreenShare:!!((e=t.appData)!=null&&e.screenShare)})}disconnectConsumingTransport(){this.consumingTransport=void 0}disconnectProducingTransport(){this.producingTransport=void 0}callEvent(t){this.eventHandler.callEvent(t)}sendPreCallTestBeginEvent(t=!1,e){this.connectionInfoPromise=this.measurements.getNetworkInfo(this.iceServers,t),this.eventHandler.callEvent({event:L.PRECALL_TEST_BEGIN,timestamp:e}),this.connectionInfoPromise&&this.connectionInfoPromise.then(i=>{this.eventHandler.callEvent({event:L.PRECALL_TEST_COMPLETE,metaData:{connectionInfo:i},timestamp:e})})}sendScreenShareToggleEvent(t,e=null,i){this.currentUserMediaStates.screen=t,this.eventHandler.callEvent({event:t?L.SCREENSHARE_STARTED:L.SCREENSHARE_STOPPED,metaData:{ssrc:e},timestamp:i})}sendScreenShareRequestedEvent(t){this.eventHandler.callEvent({event:L.SCREENSHARE_START_REQUESTED,timestamp:t})}sendActiveSpeakerEvent(t,e){this.eventHandler.callEvent({event:L.DOMINANT_SPEAKER,metaData:{peerId:t},timestamp:e})}devices(t,e,i){this.eventHandler.callEvent({event:t===ti.AUDIO&&L.AUDIO_DEVICES_UPDATES||t===ti.VIDEO&&L.VIDEO_DEVICES_UPDATES||t===ti.SPEAKER&&L.SPEAKER_DEVICES_UPDATES,metaData:{deviceList:e},timestamp:i})}selectedDevice(t,e,i){this.eventHandler.callEvent({event:t===ti.AUDIO&&L.SELECTED_MICROHPONE_UPDATE||t===ti.VIDEO&&L.SELECTED_CAMERA_UPDATE||t===ti.SPEAKER&&L.SELECTED_SPEAKER_UPDATE,metaData:{device:e},timestamp:i})}mediaPermission(t,e,i){this.eventHandler.callEvent({event:L.MEDIA_PERMISSION,metaData:{deviceType:t,permission:e},timestamp:i})}mediaPlaybackFailed(t,e){this.eventHandler.callEvent({event:t===ti.AUDIO&&L.AUDIO_PLAY_FAILED||t===ti.VIDEO&&L.VIDEO_PLAY_FAILED,metaData:{deviceType:t},timestamp:e})}mediaTrackMuted(t,e){this.eventHandler.callEvent({event:t===ti.AUDIO&&L.AUDIO_TRACK_MUTED||t===ti.VIDEO&&L.VIDEO_TRACK_MUTED,metaData:{deviceType:t},timestamp:e})}tabChanged(t,e){this.eventHandler.callEvent({event:L.TAB_CHANGE,metaData:{isMeetingsTabActive:t},timestamp:e})}browserBackgrounded(t){this.eventHandler.callEvent({event:L.BROWSER_BACKGROUNDED,timestamp:t})}browserForegrounded(t){this.eventHandler.callEvent({event:L.BROWSER_FOREGROUNDED,timestamp:t})}legacySwitch(t,e){this.eventHandler.callEvent({event:L.LEGACY_SWITCH,metadata:{on:t},timestamp:e})}getPreCallTestResults(){return u(this,null,function*(){return this.connectionInfoPromise})}sendCallJoinBeginEvent(t,e){t=H(V({},t),{meetingEnv:this.env}),t.deviceInfo=H(V({},t.deviceInfo),{userAgent:navigator.userAgent,cpus:navigator.hardwareConcurrency,memory:navigator.deviceMemory}),this.eventHandler.callEvent({event:L.CALL_JOIN_BEGIN,metaData:{peerMetaData:t},timestamp:e})}sendNetworkQualityTestBeginEvent(t,e){this.eventHandler.callEvent({event:L.NET_QUALITY_TEST_BEGIN,timestamp:e}),new Promise((i,r)=>u(this,null,function*(){const n=[];try{for(const s of t)try{if(s.iceServers&&s.iceServers.length>0){const o=yield this.measurements.getNetworkQuality(s.iceServers);n.push(H(V({},s),{networkResults:o}))}}catch(o){console.warn("Error handling ",o)}i({regionData:n})}catch(s){console.warn("Error in callstats, ",s),r(s)}})).then(i=>{this.eventHandler.callEvent({event:L.NET_QUALITY_TEST_END,timestamp:e,metaData:i})})}sendWebSocketConnectedEvent(t){this.eventHandler.callEvent({event:L.WEBSOCKET_CONNECTED,timestamp:t})}sendTransportConnectedEvent(t){this.eventHandler.callEvent({event:L.TRANSPORT_CONNECTED,timestamp:t})}sendAudioToggleEvent(t,e){this.currentUserMediaStates.audio=t;let i;t?i=L.AUDIO_ON:i=L.AUDIO_OFF,this.eventHandler.callEvent({event:i,timestamp:e})}sendVideoToggleEvent(t,e){this.currentUserMediaStates.video=t;let i;t?i=L.VIDEO_ON:i=L.VIDEO_OFF,this.eventHandler.callEvent({event:i,timestamp:e})}sendParticipantRoleToggleEvent(t,e){this.eventHandler.callEvent({event:L.PARTICIPANT_ROLE,timestamp:e,metaData:t})}startPingStats(t=7e3){this.sendPingStatsEvent(!1,new Date),this.pingStatsTimeout=setInterval(this.sendPingStatsEvent.bind(this),t)}stopPingStats(){clearInterval(this.pingStatsTimeout)}sendPingStatsEvent(t=!0,e){return u(this,null,function*(){let i,r;if(this.producingTransport&&(i=yield this.measurements.getProcessedStats(this.producingTransport,!1,!0),!i||!(i!=null&&i.producerReport))){this.logger.debug("callStats::sendPingStatsEvent::staleProducingTransport",{disclaimer:"Stale producer? Regenerating Stream Maps!"});const s=yield this.measurements.getProducersReport([...this.producers.values()]);i&&s?i.producerReport=s:(i=yield this.measurements.getProcessedStats(this.producingTransport,!1,!0),(!i||!(i!=null&&i.producerReport))&&this.logger.debug("callStats::sendPingStatsEvent::noProducingTransportReport",{disclaimer:"Stream maps invalid despite regenerating!"}))}if(this.consumingTransport&&(r=yield this.measurements.getProcessedStats(this.consumingTransport,!0,!1),!r||!r.consumerReport)){this.logger.debug("callStats::sendPingStatsEvent::staleConsumingTransport",{disclaimer:"Stale consumer? Regenerating Stream Maps!"});const s=yield this.measurements.getConsumersReport([...this.consumers.values()]);r&&s?r.consumerReport=s:(r=yield this.measurements.getProcessedStats(this.consumingTransport,!0,!1),(!r||!r.consumerReport)&&this.logger.debug("callStats::sendPingStatsEvent::noConsumingTransportReport",{disclaimer:"Stream maps invalid despite regenerating!"}))}const n={producingTransportStats:i?i==null?void 0:i.transportReport:void 0,consumingTransportStats:r?r==null?void 0:r.transportReport:void 0,producerStats:[].concat((i==null?void 0:i.producerReport)||[]).concat((r==null?void 0:r.producerReport)||[]),consumerStats:[].concat((r==null?void 0:r.consumerReport)||[]).concat((i==null?void 0:i.consumerReport)||[])};if(t&&n.producerStats.length===0&&n.consumerStats.length===0){yield this.eventHandler.flush();return}this.eventHandler.callEvent({event:L.PING_STAT,metaData:n,timestamp:e})})}sendIVSPlayerRebufferEvent(t){this.eventHandler.callEvent({event:L.IVS_PLAYER_REBUFFERING,timestamp:t})}sendIVSPlayerAudioBlockEvent(t){this.eventHandler.callEvent({event:L.IVS_PLAYER_AUDIO_BLOCKED,timestamp:t})}sendIVSPlayerPlaybackBlockedEvent(t){this.eventHandler.callEvent({event:L.IVS_PLAYER_PLAYBACK_BLOCKED,timestamp:t})}sendIVSPlayerNetworkUnavailableEvent(t){this.eventHandler.callEvent({event:L.IVS_PLAYER_NETWORK_UNAVAILABLE,timestamp:t})}sendIVSPlayerInitializedEvent(t){this.eventHandler.callEvent({event:L.IVS_PLAYER_INITIALIZED,timestamp:t})}sendIVSPlayerWorkerErrorEvent(t){this.eventHandler.callEvent({event:L.IVS_PLAYER_WORKER_ERROR,timestamp:t})}sendIVSPlayerErrorEvent(t,e){this.eventHandler.callEvent({event:L.IVS_PLAYER_ERROR,timestamp:e,metaData:t})}sendIVSPlayerRecoverableErrorEvent(t,e){this.eventHandler.callEvent({event:L.IVS_PLAYER_RECOVERABLE_ERROR,timestamp:e,metaData:t})}sendIVSPlayerAnalyticsEvent(t,e){this.eventHandler.callEvent({event:L.IVS_PLAYER_ANALYTICS_EVENT,timestamp:e,metaData:t})}sendIVSPlayerPlaybackRateChangedEvent(t,e){this.eventHandler.callEvent({event:L.IVS_PLAYER_PLAYBACK_RATE_CHANGED,timestamp:e,metaData:{updatedPlaybackRate:t}})}sendIVSPlayerQualityChanged(t,e){this.eventHandler.callEvent({event:L.IVS_PLAYER_QUALITY_CHANGED,timestamp:e,metaData:t})}sendPlayerLiveLatency(t,e){this.eventHandler.callEvent({event:L.LIVESTREAM_LATENCY,timestamp:e,metaData:{latency:t}})}sendDisconnectEvent(t){this.eventHandler.callEvent({event:L.DISCONNECT,timestamp:t})}sendReconnectEvent(t){this.eventHandler.callEvent({event:L.RECONNECT_ATTEMPT,timestamp:t})}expectedVideoResolution(t,e,i){this.eventHandler.callEvent({event:L.EXPECTED_VIDEO_RESOLUTION,timestamp:i,metaData:{frameWidth:t,frameHeight:e}})}expectedScreenshareResolution(t,e,i){this.eventHandler.callEvent({event:L.EXPECTED_SCREENSHARE_RESOLUTION,timestamp:i,metaData:{frameWidth:t,frameHeight:e}})}};Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"registerIceServers",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"registerConsumer",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"registerProducer",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendConsumerSharedMediaStateEvent",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"registerProducingTransport",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"registerConsumingTransport",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"deRegisterConsumer",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"deRegisterProducer",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"disconnectConsumingTransport",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"disconnectProducingTransport",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendPreCallTestBeginEvent",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendScreenShareToggleEvent",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendScreenShareRequestedEvent",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendActiveSpeakerEvent",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"devices",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"selectedDevice",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"mediaPermission",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"mediaPlaybackFailed",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"mediaTrackMuted",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"tabChanged",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"browserBackgrounded",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"browserForegrounded",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"legacySwitch",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"getPreCallTestResults",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendCallJoinBeginEvent",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendNetworkQualityTestBeginEvent",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendWebSocketConnectedEvent",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendTransportConnectedEvent",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendAudioToggleEvent",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendVideoToggleEvent",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendParticipantRoleToggleEvent",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"startPingStats",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"stopPingStats",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendPingStatsEvent",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendIVSPlayerRebufferEvent",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendIVSPlayerAudioBlockEvent",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendIVSPlayerPlaybackBlockedEvent",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendIVSPlayerNetworkUnavailableEvent",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendIVSPlayerInitializedEvent",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendIVSPlayerWorkerErrorEvent",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendIVSPlayerErrorEvent",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendIVSPlayerRecoverableErrorEvent",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendIVSPlayerAnalyticsEvent",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendIVSPlayerPlaybackRateChangedEvent",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendIVSPlayerQualityChanged",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendPlayerLiveLatency",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendDisconnectEvent",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendReconnectEvent",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"expectedVideoResolution",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"expectedScreenshareResolution",null),K=Y([NT(TypeError,(t,e)=>Q.error(e,t))],K);const VT=K;class Um extends ut{constructor(){super(...arguments),m(this,"stats"),m(this,"peerId"),m(this,"backend"),m(this,"iceServers"),m(this,"initialized",!1),m(this,"stalled",!1),m(this,"ipInformation"),m(this,"logger")}initialize(e){return u(this,arguments,function*({peerId:i,engineName:r,env:n=da.PROD,iceServers:s,apiBase:o="https://api.cluster.dyte.in",flags:c,logger:d=console,apiHostnames:l,skipConnectivityChecks:h=!1}){var p,v,k;try{this.peerId=i,this.logger=d,this.ipInformation=yield zl.getIPDetails({peerId:i,apiHostnames:l,logger:d}),this.backend=new VT(o,r,n,c,d,i,l),this.iceServers=s,(p=this.backend)==null||p.registerIceServers(this.iceServers),this.initialized=!0,(k=(v=this.backend)==null?void 0:v.eventHandler)==null||k.emit("initialized",this.ipInformation),this.emit("initialized",this.ipInformation),this.startPreCallTest(h)}catch(E){this.logger.error("callStats::CallStatsIntegration: ",{error:E}),this.stallCallStats()}})}configureSendTransport(e){this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.registerProducingTransport(e)})}configureRecvTransport(e){this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.registerConsumingTransport(e)})}candidateRegionalNetworkQualityTest(e){return u(this,null,function*(){const i=new Date;this.onSafeInitialization(()=>{var r;try{(r=this.backend)==null||r.sendNetworkQualityTestBeginEvent(e,i)}catch(n){this.logger.error("callStats::sendNetworkQualityTestBeginEvent",{error:{reason:n.reason}})}})})}roomJoined(e){return u(this,null,function*(){const i=new Date;this.onSafeInitialization(()=>{var r,n;(r=this.backend)==null||r.sendCallJoinBeginEvent(e,i),this.backend,(n=this.backend)==null||n.startPingStats()})})}audioOff(){const e=new Date;this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.sendAudioToggleEvent(!1,e)})}audioOn(){const e=new Date;this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.sendAudioToggleEvent(!0,e)})}videoOff(){const e=new Date;this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.sendVideoToggleEvent(!1,e)})}videoOn(){const e=new Date;this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.sendVideoToggleEvent(!0,e)})}callEnded(){const e=new Date;this.onSafeInitialization(()=>{var i,r;(i=this.backend)==null||i.stopPingStats(),(r=this.backend)==null||r.sendDisconnectEvent(e)})}screenShareStart(e){const i=new Date;this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.sendScreenShareToggleEvent(!0,e,i)})}consumerSharedMediaState(e,i){this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.sendConsumerSharedMediaStateEvent(e,i)})}screenShareStop(e){const i=new Date;this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.sendScreenShareToggleEvent(!1,e,i)})}screenShareRequested(){const e=new Date;this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.sendScreenShareRequestedEvent(e)})}activeSpeaker(e){if(e!==this.peerId)return;const i=new Date;this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.sendActiveSpeakerEvent(e,i)})}devices(e,i){const r=new Date;this.onSafeInitialization(()=>{var n;(n=this.backend)==null||n.devices(e,i,r)})}selectedDevice(e,i){const r=new Date;this.onSafeInitialization(()=>{var n;(n=this.backend)==null||n.selectedDevice(e,i,r)})}mediaPermission(e,i){const r=new Date;this.onSafeInitialization(()=>{var n;(n=this.backend)==null||n.mediaPermission(e,i,r)})}mediaPlaybackFailed(e){const i=new Date;this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.mediaPlaybackFailed(e,i)})}mediaTrackMuted(e){const i=new Date;this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.mediaTrackMuted(e,i)})}tabChanged(e=!1){const i=new Date;this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.tabChanged(e,i)})}browserBackgrounded(){const e=new Date;this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.browserBackgrounded(e)})}browserForegrounded(){const e=new Date;this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.browserForegrounded(e)})}legacySwitch(e){const i=new Date;this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.legacySwitch(e,i)})}startPreCallTest(e=!1){return u(this,null,function*(){const i=new Date;this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.sendPreCallTestBeginEvent(e,i)})})}onPreCallTestResults(e){return this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.eventHandler.once("precall_end",e)}),e}onReceivingConsumerAudioStatus(e){this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.eventHandler.on("consumer_audio_status",e)})}onReceivingConsumerVideoStatus(e){this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.eventHandler.on("consumer_video_status",e)})}onReceivingProducerAudioStatus(e){this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.eventHandler.on("producer_audio_status",e)})}onReceivingProducerVideoStatus(e){this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.eventHandler.on("producer_video_status",e)})}onReceivingProducingTransportStatus(e){this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.eventHandler.on("producing_transport_status",e)})}onReceivingConsumingTransportStatus(e){this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.eventHandler.on("consuming_transport_status",e)})}onProducerScore(e){this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.eventHandler.on("producer_score",e)})}onConsumerScore(e){this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.eventHandler.on("consumer_score",e)})}onSafeInitialization(e){if(this.initialized)e(this.ipInformation,!1);else if(!this.stalled){const i=r=>{e(r,!0)};return this.once("initialized",i),i}return()=>{}}removeInitializationListener(e){this.removeListener("initialized",e)}stallCallStats(){this.stalled=!0,this.removeAllListeners("initialized")}ivsPlayerEvent(e,i){const r=new Date;this.onSafeInitialization(()=>{var n,s,o,c,d,l,h,p,v,k,E;switch(e){case"PlayerRebuffering":(n=this.backend)==null||n.sendIVSPlayerRebufferEvent(r);break;case"PlayerAudioBlocked":(s=this.backend)==null||s.sendIVSPlayerAudioBlockEvent(r);break;case"PlayerPlaybackBlocked":(o=this.backend)==null||o.sendIVSPlayerPlaybackBlockedEvent(r);break;case"PlayerNetworkUnavailable":(c=this.backend)==null||c.sendIVSPlayerNetworkUnavailableEvent(r);break;case"PlayerInitialized":(d=this.backend)==null||d.sendIVSPlayerInitializedEvent(r);break;case"PlayerWorkerError":(l=this.backend)==null||l.sendIVSPlayerWorkerErrorEvent(r);break;case"PlayerError":(h=this.backend)==null||h.sendIVSPlayerErrorEvent(i,r);break;case"PlayerRecoverableError":(p=this.backend)==null||p.sendIVSPlayerRecoverableErrorEvent(i,r);break;case"PlayerAnalyticsEvent":(v=this.backend)==null||v.sendIVSPlayerAnalyticsEvent(i,r);break;case"PlayerPlaybackRateChanged":(k=this.backend)==null||k.sendIVSPlayerPlaybackRateChangedEvent(i,r);break;case"PlayerQualityChanged":(E=this.backend)==null||E.sendIVSPlayerQualityChanged(i,r);break}})}livestreamLatency(e){const i=new Date;this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.sendPlayerLiveLatency(e,i)})}expectedVideoResolution(e,i){const r=new Date;this.onSafeInitialization(()=>{var n;(n=this.backend)==null||n.expectedVideoResolution(e,i,r)})}expectedScreenshareResolution(e,i){const r=new Date;this.onSafeInitialization(()=>{var n;(n=this.backend)==null||n.expectedScreenshareResolution(e,i,r)})}}new Um().setMaxListeners(30);function LT(){this.__data__=[],this.size=0}function la(t,e){return t===e||t!==t&&e!==e}function Ac(t,e){for(var i=t.length;i--;)if(la(t[i][0],e))return i;return-1}var xT=Array.prototype,UT=xT.splice;function FT(t){var e=this.__data__,i=Ac(e,t);if(i<0)return!1;var r=e.length-1;return i==r?e.pop():UT.call(e,i,1),--this.size,!0}function BT(t){var e=this.__data__,i=Ac(e,t);return i<0?void 0:e[i][1]}function WT(t){return Ac(this.__data__,t)>-1}function jT(t,e){var i=this.__data__,r=Ac(i,t);return r<0?(++this.size,i.push([t,e])):i[r][1]=e,this}function Ji(t){var e=-1,i=t==null?0:t.length;for(this.clear();++e<i;){var r=t[e];this.set(r[0],r[1])}}Ji.prototype.clear=LT,Ji.prototype.delete=FT,Ji.prototype.get=BT,Ji.prototype.has=WT,Ji.prototype.set=jT;function HT(){this.__data__=new Ji,this.size=0}function GT(t){var e=this.__data__,i=e.delete(t);return this.size=e.size,i}function qT(t){return this.__data__.get(t)}function $T(t){return this.__data__.has(t)}var JT=typeof global=="object"&&global&&global.Object===Object&&global;const Fm=JT;var KT=typeof self=="object"&&self&&self.Object===Object&&self,zT=Fm||KT||Function("return this")();const ui=zT;var YT=ui.Symbol;const fr=YT;var Bm=Object.prototype,QT=Bm.hasOwnProperty,XT=Bm.toString,ua=fr?fr.toStringTag:void 0;function ZT(t){var e=QT.call(t,ua),i=t[ua];try{t[ua]=void 0;var r=!0}catch(s){}var n=XT.call(t);return r&&(e?t[ua]=i:delete t[ua]),n}var ek=Object.prototype,tk=ek.toString;function ik(t){return tk.call(t)}var rk="[object Null]",nk="[object Undefined]",Wm=fr?fr.toStringTag:void 0;function Zr(t){return t==null?t===void 0?nk:rk:Wm&&Wm in Object(t)?ZT(t):ik(t)}function hi(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}var sk="[object AsyncFunction]",ak="[object Function]",ok="[object GeneratorFunction]",ck="[object Proxy]";function Yl(t){if(!hi(t))return!1;var e=Zr(t);return e==ak||e==ok||e==sk||e==ck}var dk=ui["__core-js_shared__"];const Ql=dk;var jm=function(){var t=/[^.]+$/.exec(Ql&&Ql.keys&&Ql.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();function lk(t){return!!jm&&jm in t}var uk=Function.prototype,hk=uk.toString;function en(t){if(t!=null){try{return hk.call(t)}catch(e){}try{return t+""}catch(e){}}return""}var pk=/[\\^$.*+?()[\]{}|]/g,mk=/^\[object .+?Constructor\]$/,gk=Function.prototype,fk=Object.prototype,vk=gk.toString,yk=fk.hasOwnProperty,Sk=RegExp("^"+vk.call(yk).replace(pk,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Tk(t){if(!hi(t)||lk(t))return!1;var e=Yl(t)?Sk:mk;return e.test(en(t))}function kk(t,e){return t==null?void 0:t[e]}function tn(t,e){var i=kk(t,e);return Tk(i)?i:void 0}var Ek=tn(ui,"Map");const ha=Ek;var bk=tn(Object,"create");const pa=bk;function wk(){this.__data__=pa?pa(null):{},this.size=0}function _k(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}var Ik="__lodash_hash_undefined__",Ck=Object.prototype,Pk=Ck.hasOwnProperty;function Rk(t){var e=this.__data__;if(pa){var i=e[t];return i===Ik?void 0:i}return Pk.call(e,t)?e[t]:void 0}var Mk=Object.prototype,Ak=Mk.hasOwnProperty;function Dk(t){var e=this.__data__;return pa?e[t]!==void 0:Ak.call(e,t)}var Ok="__lodash_hash_undefined__";function Nk(t,e){var i=this.__data__;return this.size+=this.has(t)?0:1,i[t]=pa&&e===void 0?Ok:e,this}function rn(t){var e=-1,i=t==null?0:t.length;for(this.clear();++e<i;){var r=t[e];this.set(r[0],r[1])}}rn.prototype.clear=wk,rn.prototype.delete=_k,rn.prototype.get=Rk,rn.prototype.has=Dk,rn.prototype.set=Nk;function Vk(){this.size=0,this.__data__={hash:new rn,map:new(ha||Ji),string:new rn}}function Lk(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}function Dc(t,e){var i=t.__data__;return Lk(e)?i[typeof e=="string"?"string":"hash"]:i.map}function xk(t){var e=Dc(this,t).delete(t);return this.size-=e?1:0,e}function Uk(t){return Dc(this,t).get(t)}function Fk(t){return Dc(this,t).has(t)}function Bk(t,e){var i=Dc(this,t),r=i.size;return i.set(t,e),this.size+=i.size==r?0:1,this}function nn(t){var e=-1,i=t==null?0:t.length;for(this.clear();++e<i;){var r=t[e];this.set(r[0],r[1])}}nn.prototype.clear=Vk,nn.prototype.delete=xk,nn.prototype.get=Uk,nn.prototype.has=Fk,nn.prototype.set=Bk;var Wk=200;function jk(t,e){var i=this.__data__;if(i instanceof Ji){var r=i.__data__;if(!ha||r.length<Wk-1)return r.push([t,e]),this.size=++i.size,this;i=this.__data__=new nn(r)}return i.set(t,e),this.size=i.size,this}function Ai(t){var e=this.__data__=new Ji(t);this.size=e.size}Ai.prototype.clear=HT,Ai.prototype.delete=GT,Ai.prototype.get=qT,Ai.prototype.has=$T,Ai.prototype.set=jk;function Hk(t,e){for(var i=-1,r=t==null?0:t.length;++i<r&&e(t[i],i,t)!==!1;);return t}var Gk=function(){try{var t=tn(Object,"defineProperty");return t({},"",{}),t}catch(e){}}();const Oc=Gk;function Xl(t,e,i){e=="__proto__"&&Oc?Oc(t,e,{configurable:!0,enumerable:!0,value:i,writable:!0}):t[e]=i}var qk=Object.prototype,$k=qk.hasOwnProperty;function Hm(t,e,i){var r=t[e];(!($k.call(t,e)&&la(r,i))||i===void 0&&!(e in t))&&Xl(t,e,i)}function ma(t,e,i,r){var n=!i;i||(i={});for(var s=-1,o=e.length;++s<o;){var c=e[s],d=r?r(i[c],t[c],c,i,t):void 0;d===void 0&&(d=t[c]),n?Xl(i,c,d):Hm(i,c,d)}return i}function Jk(t,e){for(var i=-1,r=Array(t);++i<t;)r[i]=e(i);return r}function Di(t){return t!=null&&typeof t=="object"}var Kk="[object Arguments]";function Gm(t){return Di(t)&&Zr(t)==Kk}var qm=Object.prototype,zk=qm.hasOwnProperty,Yk=qm.propertyIsEnumerable,Qk=Gm(function(){return arguments}())?Gm:function(t){return Di(t)&&zk.call(t,"callee")&&!Yk.call(t,"callee")};const Nc=Qk;var Xk=Array.isArray;const vr=Xk;function Zk(){return!1}var $m=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Jm=$m&&typeof module=="object"&&module&&!module.nodeType&&module,eE=Jm&&Jm.exports===$m,Km=eE?ui.Buffer:void 0,tE=Km?Km.isBuffer:void 0,iE=tE||Zk;const Jn=iE;var rE=9007199254740991,nE=/^(?:0|[1-9]\d*)$/;function zm(t,e){var i=typeof t;return e=e==null?rE:e,!!e&&(i=="number"||i!="symbol"&&nE.test(t))&&t>-1&&t%1==0&&t<e}var sE=9007199254740991;function Ym(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=sE}var aE="[object Arguments]",oE="[object Array]",cE="[object Boolean]",dE="[object Date]",lE="[object Error]",uE="[object Function]",hE="[object Map]",pE="[object Number]",mE="[object Object]",gE="[object RegExp]",fE="[object Set]",vE="[object String]",yE="[object WeakMap]",SE="[object ArrayBuffer]",TE="[object DataView]",kE="[object Float32Array]",EE="[object Float64Array]",bE="[object Int8Array]",wE="[object Int16Array]",_E="[object Int32Array]",IE="[object Uint8Array]",CE="[object Uint8ClampedArray]",PE="[object Uint16Array]",RE="[object Uint32Array]",be={};be[kE]=be[EE]=be[bE]=be[wE]=be[_E]=be[IE]=be[CE]=be[PE]=be[RE]=!0,be[aE]=be[oE]=be[SE]=be[cE]=be[TE]=be[dE]=be[lE]=be[uE]=be[hE]=be[pE]=be[mE]=be[gE]=be[fE]=be[vE]=be[yE]=!1;function ME(t){return Di(t)&&Ym(t.length)&&!!be[Zr(t)]}function Zl(t){return function(e){return t(e)}}var Qm=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ga=Qm&&typeof module=="object"&&module&&!module.nodeType&&module,AE=ga&&ga.exports===Qm,eu=AE&&Fm.process,DE=function(){try{var t=ga&&ga.require&&ga.require("util").types;return t||eu&&eu.binding&&eu.binding("util")}catch(e){}}();const Kn=DE;var Xm=Kn&&Kn.isTypedArray,OE=Xm?Zl(Xm):ME;const Vc=OE;var NE=Object.prototype,VE=NE.hasOwnProperty;function Zm(t,e){var i=vr(t),r=!i&&Nc(t),n=!i&&!r&&Jn(t),s=!i&&!r&&!n&&Vc(t),o=i||r||n||s,c=o?Jk(t.length,String):[],d=c.length;for(var l in t)(e||VE.call(t,l))&&!(o&&(l=="length"||n&&(l=="offset"||l=="parent")||s&&(l=="buffer"||l=="byteLength"||l=="byteOffset")||zm(l,d)))&&c.push(l);return c}var LE=Object.prototype;function Lc(t){var e=t&&t.constructor,i=typeof e=="function"&&e.prototype||LE;return t===i}function eg(t,e){return function(i){return t(e(i))}}var xE=eg(Object.keys,Object);const UE=xE;var FE=Object.prototype,BE=FE.hasOwnProperty;function tg(t){if(!Lc(t))return UE(t);var e=[];for(var i in Object(t))BE.call(t,i)&&i!="constructor"&&e.push(i);return e}function fa(t){return t!=null&&Ym(t.length)&&!Yl(t)}function tu(t){return fa(t)?Zm(t):tg(t)}function WE(t,e){return t&&ma(e,tu(e),t)}function jE(t){var e=[];if(t!=null)for(var i in Object(t))e.push(i);return e}var HE=Object.prototype,GE=HE.hasOwnProperty;function qE(t){if(!hi(t))return jE(t);var e=Lc(t),i=[];for(var r in t)r=="constructor"&&(e||!GE.call(t,r))||i.push(r);return i}function va(t){return fa(t)?Zm(t,!0):qE(t)}function $E(t,e){return t&&ma(e,va(e),t)}var ig=typeof exports=="object"&&exports&&!exports.nodeType&&exports,rg=ig&&typeof module=="object"&&module&&!module.nodeType&&module,JE=rg&&rg.exports===ig,ng=JE?ui.Buffer:void 0,sg=ng?ng.allocUnsafe:void 0;function ag(t,e){if(e)return t.slice();var i=t.length,r=sg?sg(i):new t.constructor(i);return t.copy(r),r}function og(t,e){var i=-1,r=t.length;for(e||(e=Array(r));++i<r;)e[i]=t[i];return e}function KE(t,e){for(var i=-1,r=t==null?0:t.length,n=0,s=[];++i<r;){var o=t[i];e(o,i,t)&&(s[n++]=o)}return s}function cg(){return[]}var zE=Object.prototype,YE=zE.propertyIsEnumerable,dg=Object.getOwnPropertySymbols,QE=dg?function(t){return t==null?[]:(t=Object(t),KE(dg(t),function(e){return YE.call(t,e)}))}:cg;const iu=QE;function XE(t,e){return ma(t,iu(t),e)}function lg(t,e){for(var i=-1,r=e.length,n=t.length;++i<r;)t[n+i]=e[i];return t}var ZE=eg(Object.getPrototypeOf,Object);const ru=ZE;var e0=Object.getOwnPropertySymbols,t0=e0?function(t){for(var e=[];t;)lg(e,iu(t)),t=ru(t);return e}:cg;const ug=t0;function i0(t,e){return ma(t,ug(t),e)}function hg(t,e,i){var r=e(t);return vr(t)?r:lg(r,i(t))}function nu(t){return hg(t,tu,iu)}function r0(t){return hg(t,va,ug)}var n0=tn(ui,"DataView");const su=n0;var s0=tn(ui,"Promise");const au=s0;var a0=tn(ui,"Set");const ou=a0;var o0=tn(ui,"WeakMap");const cu=o0;var pg="[object Map]",c0="[object Object]",mg="[object Promise]",gg="[object Set]",fg="[object WeakMap]",vg="[object DataView]",d0=en(su),l0=en(ha),u0=en(au),h0=en(ou),p0=en(cu),sn=Zr;(su&&sn(new su(new ArrayBuffer(1)))!=vg||ha&&sn(new ha)!=pg||au&&sn(au.resolve())!=mg||ou&&sn(new ou)!=gg||cu&&sn(new cu)!=fg)&&(sn=function(t){var e=Zr(t),i=e==c0?t.constructor:void 0,r=i?en(i):"";if(r)switch(r){case d0:return vg;case l0:return pg;case u0:return mg;case h0:return gg;case p0:return fg}return e});const zn=sn;var m0=Object.prototype,g0=m0.hasOwnProperty;function f0(t){var e=t.length,i=new t.constructor(e);return e&&typeof t[0]=="string"&&g0.call(t,"index")&&(i.index=t.index,i.input=t.input),i}var v0=ui.Uint8Array;const xc=v0;function du(t){var e=new t.constructor(t.byteLength);return new xc(e).set(new xc(t)),e}function y0(t,e){var i=e?du(t.buffer):t.buffer;return new t.constructor(i,t.byteOffset,t.byteLength)}var S0=/\w*$/;function T0(t){var e=new t.constructor(t.source,S0.exec(t));return e.lastIndex=t.lastIndex,e}var yg=fr?fr.prototype:void 0,Sg=yg?yg.valueOf:void 0;function k0(t){return Sg?Object(Sg.call(t)):{}}function Tg(t,e){var i=e?du(t.buffer):t.buffer;return new t.constructor(i,t.byteOffset,t.length)}var E0="[object Boolean]",b0="[object Date]",w0="[object Map]",_0="[object Number]",I0="[object RegExp]",C0="[object Set]",P0="[object String]",R0="[object Symbol]",M0="[object ArrayBuffer]",A0="[object DataView]",D0="[object Float32Array]",O0="[object Float64Array]",N0="[object Int8Array]",V0="[object Int16Array]",L0="[object Int32Array]",x0="[object Uint8Array]",U0="[object Uint8ClampedArray]",F0="[object Uint16Array]",B0="[object Uint32Array]";function W0(t,e,i){var r=t.constructor;switch(e){case M0:return du(t);case E0:case b0:return new r(+t);case A0:return y0(t,i);case D0:case O0:case N0:case V0:case L0:case x0:case U0:case F0:case B0:return Tg(t,i);case w0:return new r;case _0:case P0:return new r(t);case I0:return T0(t);case C0:return new r;case R0:return k0(t)}}var kg=Object.create,j0=function(){function t(){}return function(e){if(!hi(e))return{};if(kg)return kg(e);t.prototype=e;var i=new t;return t.prototype=void 0,i}}();const H0=j0;function Eg(t){return typeof t.constructor=="function"&&!Lc(t)?H0(ru(t)):{}}var G0="[object Map]";function q0(t){return Di(t)&&zn(t)==G0}var bg=Kn&&Kn.isMap,$0=bg?Zl(bg):q0;const J0=$0;var K0="[object Set]";function z0(t){return Di(t)&&zn(t)==K0}var wg=Kn&&Kn.isSet,Y0=wg?Zl(wg):z0;const Q0=Y0;var X0=1,Z0=2,eb=4,_g="[object Arguments]",tb="[object Array]",ib="[object Boolean]",rb="[object Date]",nb="[object Error]",Ig="[object Function]",sb="[object GeneratorFunction]",ab="[object Map]",ob="[object Number]",Cg="[object Object]",cb="[object RegExp]",db="[object Set]",lb="[object String]",ub="[object Symbol]",hb="[object WeakMap]",pb="[object ArrayBuffer]",mb="[object DataView]",gb="[object Float32Array]",fb="[object Float64Array]",vb="[object Int8Array]",yb="[object Int16Array]",Sb="[object Int32Array]",Tb="[object Uint8Array]",kb="[object Uint8ClampedArray]",Eb="[object Uint16Array]",bb="[object Uint32Array]",Se={};Se[_g]=Se[tb]=Se[pb]=Se[mb]=Se[ib]=Se[rb]=Se[gb]=Se[fb]=Se[vb]=Se[yb]=Se[Sb]=Se[ab]=Se[ob]=Se[Cg]=Se[cb]=Se[db]=Se[lb]=Se[ub]=Se[Tb]=Se[kb]=Se[Eb]=Se[bb]=!0,Se[nb]=Se[Ig]=Se[hb]=!1;function Uc(t,e,i,r,n,s){var o,c=e&X0,d=e&Z0,l=e&eb;if(i&&(o=n?i(t,r,n,s):i(t)),o!==void 0)return o;if(!hi(t))return t;var h=vr(t);if(h){if(o=f0(t),!c)return og(t,o)}else{var p=zn(t),v=p==Ig||p==sb;if(Jn(t))return ag(t,c);if(p==Cg||p==_g||v&&!n){if(o=d||v?{}:Eg(t),!c)return d?i0(t,$E(o,t)):XE(t,WE(o,t))}else{if(!Se[p])return n?t:{};o=W0(t,p,c)}}s||(s=new Ai);var k=s.get(t);if(k)return k;s.set(t,o),Q0(t)?t.forEach(function(b){o.add(Uc(b,e,i,b,t,s))}):J0(t)&&t.forEach(function(b,R){o.set(R,Uc(b,e,i,R,t,s))});var E=l?d?r0:nu:d?va:tu,C=h?void 0:E(t);return Hk(C||t,function(b,R){C&&(R=b,b=t[R]),Hm(o,R,Uc(b,e,i,R,t,s))}),o}var wb=1,_b=4;function lu(t){return Uc(t,wb|_b)}var Ib="[object Symbol]";function Cb(t){return typeof t=="symbol"||Di(t)&&Zr(t)==Ib}var Pb=Object.defineProperty,Rb=(t,e)=>{for(var i in e)Pb(t,i,{get:e[i],enumerable:!0})},Mb={};Rb(Mb,{permissions:()=>Ab,theme:()=>Db});var Mt=(t=>(t.GroupCall="GROUP_CALL",t.Webinar="WEBINAR",t.AudioRoom="AUDIO_ROOM",t.Livestream="LIVESTREAM",t.Chat="CHAT",t))(Mt||{}),G=(t=>(t.Allowed="ALLOWED",t.NotAllowed="NOT_ALLOWED",t.CanRequest="CAN_REQUEST",t))(G||{}),Ab={view_type:"GROUP_CALL",accept_waiting_requests:!1,accept_present_requests:!1,request_produce:!1,can_allow_participant_audio:!1,can_allow_participant_screensharing:!1,can_allow_participant_video:!1,can_spotlight:!1,request_kick_participant:!1,kick_participant:!1,pin_participant:!1,can_edit_display_name:!1,can_record:!1,can_livestream:!1,can_present:!0,waiting_room_type:"SKIP_ON_ACCEPT",recorder_type:"NONE",plugins:{can_close:!0,can_start:!0},polls:{can_create:!0,can_vote:!0,can_view:!0},produce:{video:{allow:!0,quality:"vga",frame_rate:24},audio:!0,screenshare:{allow:!0,quality:"hd",frame_rate:5}},chat:{public:{can_send:!0,text:!0,files:!0},private:{can_send:!1,can_receive:!1,text:!1,files:!1}},connected_meetings:{can_alter_connected_meetings:!1,can_switch_connected_meetings:!1,can_switch_to_parent_meeting:!1},reactions:!1,hidden_participant:!1,is_recorder:!1,show_participant_list:!0,can_change_participant_role:!1,can_change_theme:!1,max_screenshare_count:1},Db={setup_screen:{is_enabled:!0},alone_here:{is_enabled:!0},waiting_room:{is_enabled:!1,enable_preview:!0},control_bar:{is_enabled:!0,elements:{plugins:!0,screenshare:!0,invite:!0,participants:!0,chat:!0,reactions:!1,polls:!0,fullscreen:!0,layout:!0}},header:{is_enabled:!0,elements:{timer:!0,title:!0,participant_count:!0,change_layout:!0}},pip_mode:!0,auto_tune:!0,grid:{multi:{maxVideoCount:6,videoFit:"cover"},single:{maxVideoCount:6,videoFit:"cover"},defaultView:"multi"},controls:{pip_toggle:!1}},Pg="hXgU8Wc8pwuGNq9ms5q9Hh",Rg;typeof process!="undefined"&&(Rg=process==null?void 0:process.env)!=null&&Rg.FLAGSMITH_ENVIRONMENT_KEY&&(Pg={}.FLAGSMITH_ENVIRONMENT_KEY);function Ob(t=[]){const e={};return t.forEach(i=>{e[i.feature.name]={enabled:i.enabled,value:i.feature_state_value}}),e}var Mg=class{constructor(t=Pg){m(this,"flags",{}),m(this,"environmentKey",null),this.environmentKey=t}identifyAndFetchFlagsWithRetry(t){return u(this,arguments,function*({primaryEndpoint:e,secondaryEndpoint:i,forceEvaluate:r,timeout:n,uniqueIdentifier:s,traitsObj:o,logger:c}){const d=JSON.parse(JSON.stringify(o)),l=Object.entries(d).map(p=>({trait_key:p[0],trait_value:p[1]})),h=[e,i,i];for(const p of h)try{const v=new AbortController,k=setTimeout(()=>v.abort(),n),E="_"+(Math.random()+1).toString(36).substring(2),C=yield fetch(`https://${p}/api/v1/identities/`,{method:"POST",headers:{"Content-Type":"application/json","X-Environment-Key":this.environmentKey},body:JSON.stringify({identifier:s+(r?E:""),traits:l}),signal:v.signal});if(clearTimeout(k),!C.ok)throw new Error(`Request failed with status ${C.status}`);const b=yield C.json();return Ob(b.flags||[])}catch(v){c.error("Flagsmith identify failed!!",{error:v,url:p})}return{}})}identify(t){return u(this,arguments,function*(e,i={},r=!1,n=5e3,s="edge.api.flagsmith.com",o=console){return this.flags=yield this.identifyAndFetchFlagsWithRetry({traitsObj:i,uniqueIdentifier:e,forceEvaluate:r,timeout:n,primaryEndpoint:s,secondaryEndpoint:"edge.api.flagsmith.com",logger:o}),this.flags})}getValue(t){return this.flags&&this.flags[t]&&this.flags[t].value}hasFeature(t){return this.flags&&this.flags[t]&&this.flags[t].enabled}getAllFlags(){return this.flags}},Nb=new Mg;function Vb(t){return new Mg(t)}var Ag=[-2,-1,0,1,2],Lb=[0,1,2,3,4];function xb(t){t=t.trim();let e="0",i="0",r="0";return t.length==4?(e="0x"+t[1]+t[1],i="0x"+t[2]+t[2],r="0x"+t[3]+t[3]):t.length>6&&(e="0x"+t[1]+t[2],i="0x"+t[3]+t[4],r="0x"+t[5]+t[6]),[+e,+i,+r]}var Ub=(t,e,i)=>{let r,n,s;if(e==0)r=n=s=i;else{const o=(l,h,p)=>(p<0&&(p+=1),p>1&&(p-=1),p<.16666666666666666?l+(h-l)*6*p:p<.5?h:p<.6666666666666666?l+(h-l)*(.6666666666666666-p)*6:l),c=i<.5?i*(1+e):i+e-i*e,d=2*i-c;r=o(d,c,t+1/3),n=o(d,c,t),s=o(d,c,t-1/3)}return[Math.round(r*255),Math.round(n*255),Math.round(s*255)]},Fb=(t,e,i)=>{t/=255,e/=255,i/=255;const r=Math.max(t,e,i),n=Math.min(t,e,i);let s,o;const c=(r+n)/2;if(r==n)s=o=0;else{const d=r-n;switch(o=c>.5?d/(2-r-n):d/(r+n),r){case t:s=(e-i)/d+(e<i?6:0);break;case e:s=(i-t)/d+2;break;case i:s=(t-e)/d+4;break}s/=6}return[s,o,c]},Bb=(t,e,i)=>{const r=n=>n.toString(16).padStart(2,"0");return`#${r(t)}${r(e)}${r(i)}`},Dg=(t,e=Ag,i=.4)=>{const r=[],[n,s,o]=xb(t),[c,d,l]=Fb(n,s,o),h=Math.round(l*100);h>70?i=.8:h>60?i=.9:h<10?i=.075:h<42&&(i=.3);const p=e.findIndex(b=>b===0);if(p===-1)throw new Error("Invalid reducer provided, it must contain atleast one zero");const v=5-p,k=p+1,E=(100-h)/v,C=h/k;for(const b of e){let R;b<0?R=h+b*C*i:b>0?R=h+b*E*i:R=h;const[j,W,w]=Ub(c,d,R/100);r.push(Bb(j,W,w))}return r},Og={dark:{background:{1e3:"#252525",900:"#2F2F2F",800:"#323232",700:"#3E3E3E",600:"#4A4A4A"},text:"#F5F5F5","video-bg":"#1C1C1C"},light:{background:{1e3:"#FFFFFF",900:"#F5F5F5",800:"#EBEBEB",700:"#E0E0E0",600:"#D6D6D6"},text:"#111111","text-on-brand":"#ffffff","video-bg":"#DADADA"}},Wb=t=>{const[e,i,r,n,s]=Dg(t,Ag);return{300:e,400:i,500:r,600:n,700:s}},jb=t=>{if(t==="#FFFFFF")return Og.light.background;if(t==="#000000")return Og.dark.background;const[e,i,r,n,s]=Dg(t,Lb);return{1e3:e,900:i,800:r,700:n,600:s}},Hb={border_radius:"rounded",border_width:"thin",spacing_base:4,theme:"dark",colors:{brand:Wb("#2160FD"),background:jb("#141414"),danger:"#FF2D2D",text:"#EEEEEE",text_on_brand:"#EEEEEE",success:"#62A504",video_bg:"#191919",warning:"#FFCD07"}};function Ng(){return lu(Hb)}var Gb={permissions:{can_accept_production_requests:!1,can_edit_display_name:!0,accept_waiting_requests:!1,disable_participant_audio:!1,disable_participant_screensharing:!1,disable_participant_video:!1,can_spotlight:!1,kick_participant:!1,pin_participant:!1,can_record:!1,can_livestream:!1,waiting_room_type:"SKIP",plugins:{can_close:!0,can_start:!0,can_edit_config:!1,config:{}},polls:{can_create:!0,can_vote:!0,can_view:!0},media:{video:{can_produce:"ALLOWED",can_consume:"ALLOWED"},audio:{can_produce:"ALLOWED"},screenshare:{can_produce:"ALLOWED",can_consume:"ALLOWED"}},chat:{public:{can_send:!0,text:!0,files:!0},private:{can_send:!1,can_receive:!1,text:!1,files:!1},channel:{can_create:"ALL",can_delete:"ALL",can_update:"ALL",can_read_all:!1},message:{can_delete:"ALL",can_edit:"ALL",delete_cutoff_time_seconds:0,edit_cutoff_time_seconds:0}},hidden_participant:!1,is_recorder:!1,recorder_type:"NONE",show_participant_list:!0,transcription_enabled:!1,can_change_participant_permissions:!1,connected_meetings:{can_alter_connected_meetings:!1,can_switch_connected_meetings:!1,can_switch_to_parent_meeting:!1},stage_enabled:!1,stage_access:void 0,accept_stage_requests:!1},ui:{oldTheme:{setup_screen:{is_enabled:!1},alone_here:{is_enabled:!1},waiting_room:{is_enabled:!1,enable_preview:!0},control_bar:{is_enabled:!0,elements:{plugins:!0,screenshare:!0,invite:!1,participants:!0,chat:!0,reactions:!1,polls:!0,fullscreen:!0,layout:!0}},header:{is_enabled:!0,elements:{timer:!0,title:!0,participant_count:!0,change_layout:!0}},pip_mode:!0,auto_tune:!0,colors:{primary:"#2160FD",secondary:"#1A1A1A",text:"#EEEEEE",background:"#1A1A1A",textPrimary:"#EEEEEE",videoBackground:"#1A1A1A"},dimensions:{mode:"fillParent"},grid:{multi:{maxVideoCount:6,videoFit:"cover"},single:{maxVideoCount:6,videoFit:"cover"},defaultView:"MULTI"},controls:{pip_toggle:!1},plugins:[]},design_tokens:Ng(),config_diff:{}},config:{view_type:"GROUP_CALL",media:{audio:{enable_stereo:!1,enable_high_bitrate:!1},video:{quality:"vga",frame_rate:24},screenshare:{quality:"hd",frame_rate:5}},max_video_streams:{mobile:6,desktop:6},max_screenshare_count:1,track_recording:{subscriptions:[]}},version:"hybrid"};function qb(){return lu(Gb)}var $b={permissions:{can_accept_production_requests:!1,can_edit_display_name:!0,accept_waiting_requests:!1,disable_participant_audio:!1,disable_participant_screensharing:!1,disable_participant_video:!1,can_spotlight:!1,kick_participant:!1,pin_participant:!1,can_record:!1,can_livestream:!1,waiting_room_type:"SKIP",plugins:{can_close:!0,can_start:!0,can_edit_config:!1,config:{}},polls:{can_create:!0,can_vote:!0,can_view:!0},media:{video:{can_produce:"ALLOWED"},audio:{can_produce:"ALLOWED"},screenshare:{can_produce:"ALLOWED"}},chat:{public:{can_send:!0,text:!0,files:!0},private:{can_send:!1,can_receive:!1,text:!1,files:!1}},hidden_participant:!1,is_recorder:!1,recorder_type:"NONE",show_participant_list:!0,transcription_enabled:!1,can_change_participant_permissions:!1,connected_meetings:{can_alter_connected_meetings:!1,can_switch_connected_meetings:!1,can_switch_to_parent_meeting:!1},stage_enabled:!1,stage_access:void 0,accept_stage_requests:!1},ui:{design_tokens:Ng(),config_diff:{}},config:{view_type:"GROUP_CALL",media:{audio:{enable_stereo:!1,enable_high_bitrate:!1},video:{quality:"vga",frame_rate:24},screenshare:{quality:"hd",frame_rate:5}},max_video_streams:{mobile:6,desktop:6},max_screenshare_count:1,track_recording:{subscriptions:[]}},version:"2.0.0"};function uu(){return lu($b)}var Fc;class Vg{constructor(){g(this,Fc,void 0)}get telemetry(){var e;return(e=a(this,Fc))==null?void 0:e.getValue("telemetry")}init(e){f(this,Fc,e)}info(e,i,r){var n;(n=this.telemetry)==null||n.addLogInCurrentSpan("info",e,i,r)}error(e,i,r){var n;(n=this.telemetry)==null||n.addLogInCurrentSpan("error",e,i,r)}debug(e,i,r){var n;(n=this.telemetry)==null||n.addLogInCurrentSpan("debug",e,i,r)}log(e,i,r){var n;(n=this.telemetry)==null||n.addLogInCurrentSpan("log",e,i,r)}warn(e,i,r){var n;(n=this.telemetry)==null||n.addLogInCurrentSpan("warn",e,i,r)}}Fc=new WeakMap;var yr,Sr;const Lg=class extends ut.EventEmitter{constructor(t){super(),g(this,yr,void 0),g(this,Sr,void 0),m(this,"asyncPromiseTimeout"),m(this,"logger"),this.logger=t,f(this,yr,new Map),f(this,Sr,new Map),this.asyncPromiseTimeout=8e3}emitAsync(t,...e){return u(this,null,function*(){a(this,yr).set(t,[]);const i=a(this,Sr).get(t).map(()=>new Promise(r=>{a(this,yr).get(t).push(r)}));XS(Lg.prototype,this,"emit").call(this,t,...e),yield Promise.race([Promise.all(i),new Promise((r,n)=>setTimeout(()=>n(new Error(`emitAsync failed to resolve for event ${t}.`)),this.asyncPromiseTimeout))]),a(this,yr).delete(t)})}onAsync(t,e){const i=a(this,yr),r=(...n)=>u(this,null,function*(){var s;try{yield e(...n)}catch(c){this.logger.error("[onAsync]",{error:c})}const o=(s=i.get(t))==null?void 0:s.shift();o==null||o()});return a(this,Sr).get(t)||a(this,Sr).set(t,[]),a(this,Sr).get(t).push(r),super.on(t,r)}reset(){f(this,yr,new Map),f(this,Sr,new Map),super.removeAllListeners()}};let Jb=Lg;yr=new WeakMap,Sr=new WeakMap;var Kb=/\s/;function zb(t){for(var e=t.length;e--&&Kb.test(t.charAt(e)););return e}var Yb=/^\s+/;function Qb(t){return t&&t.slice(0,zb(t)+1).replace(Yb,"")}var xg=0/0,Xb=/^[-+]0x[0-9a-f]+$/i,Zb=/^0b[01]+$/i,ew=/^0o[0-7]+$/i,tw=parseInt;function Ug(t){if(typeof t=="number")return t;if(Cb(t))return xg;if(hi(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=hi(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=Qb(t);var i=Zb.test(t);return i||ew.test(t)?tw(t.slice(2),i?2:8):Xb.test(t)?xg:+t}function Fg(t){return t}function iw(t,e,i){switch(i.length){case 0:return t.call(e);case 1:return t.call(e,i[0]);case 2:return t.call(e,i[0],i[1]);case 3:return t.call(e,i[0],i[1],i[2])}return t.apply(e,i)}var rw=800,nw=16,sw=Date.now;function aw(t){var e=0,i=0;return function(){var r=sw(),n=nw-(r-i);if(i=r,n>0){if(++e>=rw)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}function ow(t){return function(){return t}}var cw=Oc?function(t,e){return Oc(t,"toString",{configurable:!0,enumerable:!1,value:ow(e),writable:!0})}:Fg,dw=aw(cw);const lw=dw;var Bg=Math.max;function uw(t,e,i){return e=Bg(e===void 0?t.length-1:e,0),function(){for(var r=arguments,n=-1,s=Bg(r.length-e,0),o=Array(s);++n<s;)o[n]=r[e+n];n=-1;for(var c=Array(e+1);++n<e;)c[n]=r[n];return c[e]=i(o),iw(t,this,c)}}function hw(t,e){return lw(uw(t,e,Fg),t+"")}function pw(t,e,i){if(!hi(i))return!1;var r=typeof e;return(r=="number"?fa(i)&&zm(e,i.length):r=="string"&&e in i)?la(i[e],t):!1}function mw(t){return hw(function(e,i){var r=-1,n=i.length,s=n>1?i[n-1]:void 0,o=n>2?i[2]:void 0;for(s=t.length>3&&typeof s=="function"?(n--,s):void 0,o&&pw(i[0],i[1],o)&&(s=n<3?void 0:s,n=1),e=Object(e);++r<n;){var c=i[r];c&&t(e,c,r,s)}return e})}var gw="[object Object]",fw=Function.prototype,vw=Object.prototype,Wg=fw.toString,yw=vw.hasOwnProperty,Sw=Wg.call(Object);function Tw(t){if(!Di(t)||Zr(t)!=gw)return!1;var e=ru(t);if(e===null)return!0;var i=yw.call(e,"constructor")&&e.constructor;return typeof i=="function"&&i instanceof i&&Wg.call(i)==Sw}var kw="__lodash_hash_undefined__";function Ew(t){return this.__data__.set(t,kw),this}function bw(t){return this.__data__.has(t)}function Bc(t){var e=-1,i=t==null?0:t.length;for(this.__data__=new nn;++e<i;)this.add(t[e])}Bc.prototype.add=Bc.prototype.push=Ew,Bc.prototype.has=bw;function ww(t,e){for(var i=-1,r=t==null?0:t.length;++i<r;)if(e(t[i],i,t))return!0;return!1}function _w(t,e){return t.has(e)}var Iw=1,Cw=2;function jg(t,e,i,r,n,s){var o=i&Iw,c=t.length,d=e.length;if(c!=d&&!(o&&d>c))return!1;var l=s.get(t),h=s.get(e);if(l&&h)return l==e&&h==t;var p=-1,v=!0,k=i&Cw?new Bc:void 0;for(s.set(t,e),s.set(e,t);++p<c;){var E=t[p],C=e[p];if(r)var b=o?r(C,E,p,e,t,s):r(E,C,p,t,e,s);if(b!==void 0){if(b)continue;v=!1;break}if(k){if(!ww(e,function(R,j){if(!_w(k,j)&&(E===R||n(E,R,i,r,s)))return k.push(j)})){v=!1;break}}else if(!(E===C||n(E,C,i,r,s))){v=!1;break}}return s.delete(t),s.delete(e),v}function Pw(t){var e=-1,i=Array(t.size);return t.forEach(function(r,n){i[++e]=[n,r]}),i}function Rw(t){var e=-1,i=Array(t.size);return t.forEach(function(r){i[++e]=r}),i}var Mw=1,Aw=2,Dw="[object Boolean]",Ow="[object Date]",Nw="[object Error]",Vw="[object Map]",Lw="[object Number]",xw="[object RegExp]",Uw="[object Set]",Fw="[object String]",Bw="[object Symbol]",Ww="[object ArrayBuffer]",jw="[object DataView]",Hg=fr?fr.prototype:void 0,hu=Hg?Hg.valueOf:void 0;function Hw(t,e,i,r,n,s,o){switch(i){case jw:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case Ww:return!(t.byteLength!=e.byteLength||!s(new xc(t),new xc(e)));case Dw:case Ow:case Lw:return la(+t,+e);case Nw:return t.name==e.name&&t.message==e.message;case xw:case Fw:return t==e+"";case Vw:var c=Pw;case Uw:var d=r&Mw;if(c||(c=Rw),t.size!=e.size&&!d)return!1;var l=o.get(t);if(l)return l==e;r|=Aw,o.set(t,e);var h=jg(c(t),c(e),r,n,s,o);return o.delete(t),h;case Bw:if(hu)return hu.call(t)==hu.call(e)}return!1}var Gw=1,qw=Object.prototype,$w=qw.hasOwnProperty;function Jw(t,e,i,r,n,s){var o=i&Gw,c=nu(t),d=c.length,l=nu(e),h=l.length;if(d!=h&&!o)return!1;for(var p=d;p--;){var v=c[p];if(!(o?v in e:$w.call(e,v)))return!1}var k=s.get(t),E=s.get(e);if(k&&E)return k==e&&E==t;var C=!0;s.set(t,e),s.set(e,t);for(var b=o;++p<d;){v=c[p];var R=t[v],j=e[v];if(r)var W=o?r(j,R,v,e,t,s):r(R,j,v,t,e,s);if(!(W===void 0?R===j||n(R,j,i,r,s):W)){C=!1;break}b||(b=v=="constructor")}if(C&&!b){var w=t.constructor,te=e.constructor;w!=te&&"constructor"in t&&"constructor"in e&&!(typeof w=="function"&&w instanceof w&&typeof te=="function"&&te instanceof te)&&(C=!1)}return s.delete(t),s.delete(e),C}var Kw=1,Gg="[object Arguments]",qg="[object Array]",Wc="[object Object]",zw=Object.prototype,$g=zw.hasOwnProperty;function Yw(t,e,i,r,n,s){var o=vr(t),c=vr(e),d=o?qg:zn(t),l=c?qg:zn(e);d=d==Gg?Wc:d,l=l==Gg?Wc:l;var h=d==Wc,p=l==Wc,v=d==l;if(v&&Jn(t)){if(!Jn(e))return!1;o=!0,h=!1}if(v&&!h)return s||(s=new Ai),o||Vc(t)?jg(t,e,i,r,n,s):Hw(t,e,d,i,r,n,s);if(!(i&Kw)){var k=h&&$g.call(t,"__wrapped__"),E=p&&$g.call(e,"__wrapped__");if(k||E){var C=k?t.value():t,b=E?e.value():e;return s||(s=new Ai),n(C,b,i,r,s)}}return v?(s||(s=new Ai),Jw(t,e,i,r,n,s)):!1}function Jg(t,e,i,r,n){return t===e?!0:t==null||e==null||!Di(t)&&!Di(e)?t!==t&&e!==e:Yw(t,e,i,r,Jg,n)}function Qw(t){return function(e,i,r){for(var n=-1,s=Object(e),o=r(e),c=o.length;c--;){var d=o[t?c:++n];if(i(s[d],d,s)===!1)break}return e}}var Xw=Qw();const Zw=Xw;var e_=function(){return ui.Date.now()};const pu=e_;var t_="Expected a function",i_=Math.max,r_=Math.min;function mu(t,e,i){var r,n,s,o,c,d,l=0,h=!1,p=!1,v=!0;if(typeof t!="function")throw new TypeError(t_);e=Ug(e)||0,hi(i)&&(h=!!i.leading,p="maxWait"in i,s=p?i_(Ug(i.maxWait)||0,e):s,v="trailing"in i?!!i.trailing:v);function k(ie){var ae=r,De=n;return r=n=void 0,l=ie,o=t.apply(De,ae),o}function E(ie){return l=ie,c=setTimeout(R,e),h?k(ie):o}function C(ie){var ae=ie-d,De=ie-l,st=e-ae;return p?r_(st,s-De):st}function b(ie){var ae=ie-d,De=ie-l;return d===void 0||ae>=e||ae<0||p&&De>=s}function R(){var ie=pu();if(b(ie))return j(ie);c=setTimeout(R,C(ie))}function j(ie){return c=void 0,v&&r?k(ie):(r=n=void 0,o)}function W(){c!==void 0&&clearTimeout(c),l=0,r=d=n=c=void 0}function w(){return c===void 0?o:j(pu())}function te(){var ie=pu(),ae=b(ie);if(r=arguments,n=this,d=ie,ae){if(c===void 0)return E(d);if(p)return clearTimeout(c),c=setTimeout(R,e),k(d)}return c===void 0&&(c=setTimeout(R,e)),o}return te.cancel=W,te.flush=w,te}function gu(t,e,i){(i!==void 0&&!la(t[e],i)||i===void 0&&!(e in t))&&Xl(t,e,i)}function n_(t){return Di(t)&&fa(t)}function fu(t,e){if(!(e==="constructor"&&typeof t[e]=="function")&&e!="__proto__")return t[e]}function s_(t){return ma(t,va(t))}function a_(t,e,i,r,n,s,o){var c=fu(t,i),d=fu(e,i),l=o.get(d);if(l){gu(t,i,l);return}var h=s?s(c,d,i+"",t,e,o):void 0,p=h===void 0;if(p){var v=vr(d),k=!v&&Jn(d),E=!v&&!k&&Vc(d);h=d,v||k||E?vr(c)?h=c:n_(c)?h=og(c):k?(p=!1,h=ag(d,!0)):E?(p=!1,h=Tg(d,!0)):h=[]:Tw(d)||Nc(d)?(h=c,Nc(c)?h=s_(c):(!hi(c)||Yl(c))&&(h=Eg(d))):p=!1}p&&(o.set(d,h),n(h,d,r,s,o),o.delete(d)),gu(t,i,h)}function Kg(t,e,i,r,n){t!==e&&Zw(e,function(s,o){if(n||(n=new Ai),hi(s))a_(t,e,o,i,Kg,r,n);else{var c=r?r(fu(t,o),s,o+"",t,e,n):void 0;c===void 0&&(c=s),gu(t,o,c)}},va)}var o_="[object Map]",c_="[object Set]",d_=Object.prototype,l_=d_.hasOwnProperty;function u_(t){if(t==null)return!0;if(fa(t)&&(vr(t)||typeof t=="string"||typeof t.splice=="function"||Jn(t)||Vc(t)||Nc(t)))return!t.length;var e=zn(t);if(e==o_||e==c_)return!t.size;if(Lc(t))return!tg(t).length;for(var i in t)if(l_.call(t,i))return!1;return!0}function h_(t,e){return Jg(t,e)}var p_=mw(function(t,e,i){Kg(t,e,i)});const Tr=p_;var vu=(t=>(t.PARTICIPANT="PARTICIPANT",t.PEER="PEER",t.CLIENT="CLIENT",t))(vu||{});const Z={PROPAGATE_KICK_ALL:"propagate_kick_across_rooms",REFRESH_ID_ON_DISCONNECTION:"refresh_id_on_disconnection",SIMULCAST:"simulcast",CHAT_SOCKET_SERVER:"chat_socket_server",POLL_SOCKET_SERVER:"poll_socket_server",PLUGIN_SOCKET_SERVER:"plugin_socket_server",NR_OTEL_WEB:"nr_otel_web",ICE_RESTART_ON_FAILED_STATE:"ice_restart_on_failed_state",ICE_RESTART_ON_DISCONNECTED_STATE:"ice_restart_on_disconnected_state",ENABLE_ICE_STATE_LOGGING:"enable_ice_state_logging",SUPPRESS_PEER_MUTE_UNMUTE_EMITS:"web_core_suppress_peer_mute_unmute_emits",SKIP_OTEL_TRACES:"skip_otel_traces",USE_USERIDS_IN_CHAT:"use_userids_in_chat",CUSTOM_PING_PONG:"custom_ping_pong",ENABLE_HIVE_SIMULCAST:"enable_hive_simulcast",ENABLE_HIVE_TRANSPORT_RECONNECTION_ON_ICE_FAILED:"enable_hive_transport_reconnection_on_ice_failed",ENABLE_HIVE_EXPERIMENTAL_FAIL_RECOVERY:"enable_hive_fail_recovery",ENABLE_HIVE_INFINITE_RETRIES:"enable_hive_infinite_retries",HIVE_TRANSPORT_FORCE_RELAY_ON_ICE_FAILED:"hive_transport_force_relay_on_ice_failed",ENABLE_HIVE_CONSUME_OVER_DC:"enable_hive_consume_over_dc",ENABLE_CF_SIMULCAST:"enable_cf_simulcast",ENABLE_CF_TRANSPORT_RECONNECTION_ON_ICE_FAILED:"enable_cf_transport_reconnection_on_ice_failed",ENABLE_CF_EXPERIMENTAL_FAIL_RECOVERY:"enable_cf_fail_recovery",ENABLE_CF_INFINITE_RETRIES:"enable_cf_infinite_retries",CF_TRANSPORT_FORCE_RELAY_ON_ICE_FAILED:"cf_transport_force_relay_on_ice_failed",BYPASS_LOG_EXCLUSION_LIST:"bypass_log_exclusion_list",LOG_LEVEL:"log_level",V1_PLUGINS:"v1_plugins",SCREENSHARE_DTX:"screenshare_dtx",SCREENSHARE_PRIORITY:"screenshare_priority",SCREENSHARE_MIN_BITRATE:"screenshare_minbitrate",SCREENSHARE_SIMULCAST:"screenshare_simulcast",DISABLE_WEBCAM_LAYERS_ON_SCREENSHARE:"disable_webcam_layers_on_screenshare",SCREENSHARE_FORCE_GOOG_CONFERENCE:"screenshare_force_goog_conference",LIVESTREAM:"feat_livestream",FETCH_RETRY:"fetch_retry",DISABLE_WEBCAM_SIMULCAST:"webcore_disable_webcam_simulcast",OVERRIDE_WEBCAM_SIMULCAST:"override_webcam_simulcast",SOCKET_POLLING:"socket_polling",FEAT_PAGINATED_CHAT:"feat_paginated_chat",VAL_MIN_FRAMERATE:"val_min_framerate",SCREEENSHARE_ERR_HACK:"screenshare_err_hack",SCREEENSHARE_CONSTRAINTS_RETRY:"screenshare_constraints_retry",TROUBLESHOOTING:"feat_troubleshooting",VIDEO_CONSTRAINTS:"video_constraints",SCREENSHARE_CONSTRAINTS:"screenshare_constraints",FEAT_CHAT_SDK:"feat_chat_sdk",FEAT_CHAT_SDK_SEARCH:"chat_search",OBS_QUALITY:"obs_quality",ALLOW_SAFARI_MEDIA_MIDDLEWARES:"allow_safari_media_middlewares",DYNAMIC_VIDEO_QUALITY:"dynamic_video_quality",EXP_RESHARE:"exp_reshare",LEAVE_STAGE_ON_END:"leave_stage_on_end",SKIP_SETTING_IN_USE_DEVICE:"skip_setting_in_use_device",PRECALL_BANDWIDTH_TEST:"precall_bandwidth_test",CONSUMER_BIND_NO_RETRY:"consumer_bind_no_retry",DEBUG_SOCKET_JOIN:"debug_socket_join",FORCE_RELAY:"force_relay",FORCE_VIDEO_CODEC:"force_video_codec",USE_EXPERIMENTAL_SFU_HANDLER:"use_experimental_sfu_handler",TRACK_HINT:"track_hint",OVERRIDE_HIVE_SIMULCAST_DYNAMIC:"override_hive_simulcast_dynamic",PRECREATE_PRODUCERS:"precreate_producers",DISABLE_OPUS_DTX_CF:"disable_opus_dtx_cf",ENABLE_AUDIO_ACTIVITY_DEBUG_LOGS:"enable_audio_activity_debug_logs",NEW_SYNC_CONSUMERS:"new_sync_consumers",DISABLE_LAYER_SWITCH:"disable_layer_switch"};function jc(t){const e={};return typeof(t==null?void 0:t.code)=="number"&&(e.code=t.code),typeof(t==null?void 0:t.code)=="string"&&(e.code=t.code.substring(0,100)),typeof(t==null?void 0:t.name)=="string"&&(e.name=t.name.substring(0,500)),typeof(t==null?void 0:t.message)=="string"&&(e.message=t.message.substring(0,500)),typeof(t==null?void 0:t.reason)=="string"&&(e.reason=t.reason.substring(0,500)),typeof(t==null?void 0:t.stack)=="string"&&(e.stack=t.stack.substring(0,500)),e}function m_(t){var e,i,r,n;const s=typeof navigator!="undefined"&&!navigator.isReactNative&&typeof window!="undefined"&&((e=window.location.host)==null?void 0:e.includes("devel"))&&((i=window.location.host)==null?void 0:i.includes("dyte.io")),o=!!((n=(r=t==null?void 0:t.getValue("modules"))==null?void 0:r.devTools)!=null&&n.logs);return s||o}function g_(t,e){var i;if(t!=null&&t.getValue("flagsmith").hasFeature(Z.LOG_LEVEL)){let r=((i=t.getValue("flagsmith").getValue(Z.LOG_LEVEL))==null?void 0:i.toString())||"all";if(r=r.toLowerCase().trim(),r==="off")return!1;if(r!=="all"){const n=["debug","log","info","warn","error"],s=n.indexOf(e),o=n.indexOf(r);if(s<o)return!1}}return!0}function zg(t,e,i={}){return Object.getOwnPropertyNames(t).forEach(r=>{var n;if([null,void 0,NaN].includes(t[r])||e&&(((n=e.match(/\./g))==null?void 0:n.length)||0)>=10)return;const s=e?`${e}.${r}`:r;typeof t[r]=="object"?zg(t[r],s,i):["number","string","boolean"].includes(typeof t[r])&&(i[s]=t[r])}),i}function Yg(t,e,i={},r=""){const n={};try{const s=JSON.stringify(i),o=JSON.parse(s),c=zg(o,r),d=JSON.stringify(c);return JSON.parse(d)}catch(s){const o=jc(s);n[`${r}.error.message`]=o.message||"",n[`${r}.error.stack`]=o.stack||"",n[`${r}.error.reason`]=o.reason||"",n[`${r}.error.source`]="safelyFlattenObjForOpenTelemetry"}return n}const f_={audio:!0,video:!0,screenshareAudio:!0,screenshareVideo:!0},ya={baseURL:"http://localhost:5000",createdAt:"2021-08-05T10:49:56.602Z",description:"Develop plugins locally",id:"09259e3b-7be8-46f6-9801-106bf1866e1c",name:"Localhost Dev",organizationId:"4ad15a19-80e2-4105-bf43-48039fd2963e",picture:"https://dyte-uploads.s3.ap-south-1.amazonaws.com/dyte.png",private:!1,published:!0,staggered:!1,tags:["#localhost","#dev"],type:"self_hosted",updatedAt:"2021-08-05T10:50:07.681Z"},v_={pip:!0,poll:!0,chat:!0,stage:!0,theme:!0,plugin:!0,tracing:!0,internals:!0,recording:!0,livestream:!0,participant:!0,connectedMeetings:!0,devTools:{logs:!1}};function Yn(t,e){const i=t.getValue("overrides");return i&&i[e]?i[e]:!1}function y_({baseURI:t}){return t.includes("preprod.dyte")||t.includes("preprod.realtime")?da.PREPROD:t.includes("devel.dyte")||t.includes("devel.realtime")?da.DEVEL:da.PROD}function an({servicePrefix:t,baseURI:e}){return`${t}.${e}`}function Qg(t){const e=t.getValue("baseURI");return{location:an({servicePrefix:"location",baseURI:e}),locationLegacy:an({servicePrefix:"location-legacy",baseURI:e}),daCollector:an({servicePrefix:"da-collector",baseURI:e.replace("realtime.cloudflare.com","dyte.io")})}}const S_='<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m16.242 2.932 4.826 4.826a2.75 2.75 0 0 1-.715 4.404l-4.87 2.435a.75.75 0 0 0-.374.426l-1.44 4.166a1.25 1.25 0 0 1-2.065.476L8.5 16.561 4.06 21H3v-1.06l4.44-4.44-3.105-3.104a1.25 1.25 0 0 1 .476-2.066l4.166-1.44a.75.75 0 0 0 .426-.373l2.435-4.87a2.75 2.75 0 0 1 4.405-.715Zm3.766 5.886-4.826-4.826a1.25 1.25 0 0 0-2.002.325l-2.435 4.871a2.25 2.25 0 0 1-1.278 1.12l-3.789 1.31 6.705 6.704 1.308-3.789a2.25 2.25 0 0 1 1.12-1.277l4.872-2.436a1.25 1.25 0 0 0 .325-2.002Z" fill="currentColor"/></svg>',T_='<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M4 12.02c0 1.06.2 2.1.6 3.08l.6 1.42c.22.55.64 1.01 1.17 1.29.27.14.56.21.86.21h2.55c.77 0 1.49-.41 1.87-1.08.5-.87 1.02-1.7 1.72-2.43l1.32-1.39c.44-.46.97-.84 1.49-1.23l.59-.45a.6.6 0 0 0 .23-.47c0-.75-.54-1.57-1.22-1.79a3.34 3.34 0 0 0-2.78.29V4.5a1.5 1.5 0 0 0-2.05-1.4 1.5 1.5 0 0 0-2.9 0A1.5 1.5 0 0 0 6 4.5v.09A1.5 1.5 0 0 0 4 6v6.02ZM8 4.5v4a.5.5 0 0 0 1 0v-5a.5.5 0 0 1 1 0v5a.5.5 0 0 0 1 0v-4a.5.5 0 0 1 1 0v6a.5.5 0 0 0 .85.37h.01c.22-.22.44-.44.72-.58.7-.35 2.22-.57 2.4.5l-.53.4c-.52.4-1.04.78-1.48 1.24l-1.33 1.38c-.75.79-1.31 1.7-1.85 2.63-.21.36-.6.58-1.01.58H7.23a.87.87 0 0 1-.4-.1 1.55 1.55 0 0 1-.71-.78l-.59-1.42a7.09 7.09 0 0 1-.53-2.7V6a.5.5 0 0 1 1 0v3.5a.5.5 0 0 0 1 0v-5a.5.5 0 0 1 1 0Z" fill="currentColor"></path></svg>',Hc=t=>{if(!t)return;if(!t.startsWith("<svg"))return new Promise(n=>{n(t)});const e=new Blob([t],{type:"image/svg+xml"}),i=new Image,r=window.URL.createObjectURL(e);return new Promise((n,s)=>{i.onload=()=>{n(i),window.URL.revokeObjectURL(r)},i.onerror=()=>{s(),window.URL.revokeObjectURL(r)},i.src=r})},Xg=class{constructor(){m(this,"logsCache",[]),m(this,"logsProcessorTimer"),m(this,"tracingEnabled",!0),m(this,"initialized",!1),m(this,"logsProcessingInterval",7e3),m(this,"logExclusionList",["message","websocket/message","roomMessage","websocket/room-message","websocket/room-legacy-mode","chatMessage","websocket/new-chat-message","websocket/no-active-speaker","websocket/selected-peers","websocket/active-speaker","ping","websocket/new-consumer","websocket/producer-score","websocket/consumer-score","websocket/plugin-event","websocket/plugin-data","websocket/plugin-internal-data"]),m(this,"meetingMetadata",{})}get logsEndpoint(){const t=Ki.getContext(this.meetingMetadata.peerId);return`https://${an({servicePrefix:"api-silos",baseURI:t.getValue("baseURI")})}/otel/logs`}resetPeerId(t){this.meetingMetadata.peerId=t}init(t,e,i){this.tracingEnabled=!0,this.initialized=!1,this.logsCache=[];const r=t.getValue("peerId");this.meetingMetadata=e,this.tracingEnabled=i,this.meetingMetadata.peerId=r,this.meetingMetadata.sdkVersion=t.getValue("sdkVersion");const{RNDeviceInfoImpl:n}=navigator;this.meetingMetadata.deviceInfo=navigator.isReactNative?n==null?void 0:n.getDeviceInfo():Ee.getDeviceInfo(),this.meetingMetadata.visitedUrl=!navigator.isReactNative&&typeof window!="undefined"&&window.location.href,this.logsProcessorTimer=setInterval(this.processCachedLogs.bind(this),this.logsProcessingInterval),i&&(this.initialized=!0)}static trace(t,e=void 0){return(i,r,n)=>{const s=n.value;return n.value=function(...o){var c;const d=this==null?void 0:this.telemetry;if(!d||!d.initialized||navigator.isReactNative||!d.tracingEnabled||(c=Ki.getContext(d.meetingMetadata.peerId))!=null&&c.getValue("flagsmith").hasFeature(Z.SKIP_OTEL_TRACES))return s.apply(this,o);d.addLogInCurrentSpan("info",t,e);const l=performance.now(),h=s.apply(this,o);return Promise.resolve(h).then(()=>{const p=performance.now();p-l>10&&d.addLogInCurrentSpan("info",`${t}_timing`,{execTime:p-l,country:Xg.location.country})}).catch(()=>{const p=performance.now();d.addLogInCurrentSpan("info",`${t}_timing`,{execTime:p-l})}),h},n}}injectContext(t){var e;const i=Yr().replace(/-/g,"").substring(0,16),r=(e=this.meetingMetadata.peerId)==null?void 0:e.replace(/-/g,"");t.TRACEPARENT=`00-${r}-${i}-01`}addLogInCurrentSpan(t,e,i={},r=!1){i!=null&&i.error&&Object.assign(i,{error:jc(i.error)});const n=Ki.getContext(this.meetingMetadata.peerId);if(m_(n)&&(u_(i)?console[t]("DyteInternalLogs:: ",t,e):console[t]("DyteInternalLogs:: ",t,e,i)),!!g_(n,t))try{const s=Yg(n,e,i,"metadata"),o=new Date,c=H(V({message:e,level:t},s),{loggedAt:o.toISOString(),loggedAtTzOffset:o.getTimezoneOffset()});r?this.sendOtelLogsToNewRelic([c]):this.logsCache.push(c)}catch(s){this.addLogInCurrentSpan("error","opentelemetry::addLogInCurrentSpan_failed",{error:jc(s)})}}sendOtelLogsToNewRelic(t){const e=Ki.getContext(this.meetingMetadata.peerId);fetch(this.logsEndpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({meetingMetadata:Yg(e,"sendOtelLogsToNewRelic",this.meetingMetadata,"meetingMetadata"),serviceName:e.getValue("sdkName"),logs:t})}).catch(i=>{this.addLogInCurrentSpan("error","opentelemetry::sendOtelLogToNewRelic_failed",{error:jc(i)}),this.logsCache.push(...t)})}processCachedLogs(){const t=this.logsCache.splice(0,25);t!=null&&t.length&&this.sendOtelLogsToNewRelic(t)}destruct(){clearInterval(this.logsProcessorTimer),this.processCachedLogs()}};let T=Xg;m(T,"location",{country:void 0});function k_(t){const e=V({},t),i=new Map,r=(o,c)=>(i.has(o)||i.set(o,new Set),i.get(o).add(c),()=>{var d;return(d=i.get(o))==null?void 0:d.delete(c)}),n=(o,c)=>{var d;(d=i.get(o))==null||d.delete(c)},s=o=>{var c;(c=i.get(o))==null||c.forEach(d=>{try{d(e[o])}catch(l){}})};return{subscribe:r,unsubscribe:n,notify:s,setValue:(o,c,d=!0)=>{e[o]=c,d&&s(o)},getValue:o=>e[o],getAllValues:()=>e}}class E_{constructor(){m(this,"contexts",new Map),m(this,"mostRecentPeerId",null)}createContext(e,i){if(this.contexts.has(e))return this.contexts.get(e);const r=new T,n=new Vg;this.contexts.set(e,k_(i)),this.contexts.get(e).setValue("peerSessionStore",new Jb(n));const s=new Um;return s.setMaxListeners(50),this.contexts.get(e).setValue("logger",n),this.contexts.get(e).setValue("telemetry",r),this.contexts.get(e).setValue("callstats",s),this.contexts.get(e).setValue("flagsmith",Vb()),this.mostRecentPeerId=e,this.contexts.get(e)}remapContext(e,i){const r=i.getValue("peerId");r!==e&&(i.setValue("peerId",e),this.mostRecentPeerId=e,this.contexts.set(e,i),this.contexts.delete(r))}getContext(e){return this.contexts.get(e)}getMostRecentPeerId(){return this.mostRecentPeerId}}const Ki=new E_,b_={"00":"DyteClient","01":"Controller","02":"RoomNodeClient","03":"HiveNodeClient","04":"SocketService","05":"Chat","06":"Plugin","07":"Polls","08":"Meta","09":"Preset",10:"Recording",11:"Self",12:"Participant",13:"Spotlight",14:"Remote Request",15:"Webinar",16:"LocalMediaHandler",17:"End-End Encryption",18:"AI",19:"Livestream",20:"Stage"},Gc={"0000":"Internal exception.","0001":"Failed to initialize.","0002":"Failed to join room.","0003":"Failed to leave room.","0004":"Invalid auth token","0010":"Browser not supported","0011":"HTTP Network Error","0012":"Websocket Network Error","0013":"Rate Limited","0100":"Internal exception","0101":"Permission denied","0102":"Prerequisite module missing","0200":"Internal exception.","0300":"Internal exception","0400":"Internal exception","0404":"Missing prerequisites to establish a websocket connection","0500":"Internal exception","0501":"Permission denied.","0502":"Invalid message body.","0503":"Text Message is too large","0504":"Message not found by the given id","0505":"Action not permitted without joining room","0506":"Message search is disabled","0510":"Invalid channel name.","0600":"Internal exception","0601":"Permission denied.","0602":"Auth token not set for plugin","0603":"Iframe was not provided","0700":"Internal exception","0705":"Action not permitted without joining room","0800":"Internal exception","0801":"Permission denied","0900":"Internal exception","0904":"Could not load preset",1e3:"Internal exception",1001:"Permission denied",1004:"Could not find specified recording",1005:"Action not permitted in given recording state",1100:"Internal exception",1101:"Permission denied",1102:"Unsupported",1103:"Name cannot be empty",1104:"No device selected while calling meeting.self.setDevice",1105:"Action not permitted without joining room",1106:"Can't set currently used device",1200:"Internal exception",1201:"Permission denied",1202:"Invalid page number was requested",1203:"Invalid participant count per page was requested",1204:"No participants exists with the given UserIds",1205:"Action not permitted without joining room",1206:"Manual Subscription Mode was not ACTIVATED",1207:"Invalid view mode",1208:"Manual Subscription not enabled for organization",1209:"Broadcast message type must be a non-empty string",1300:"Internal exception",1400:"Internal exception",1402:"No existing remote requests",1403:"No peer exists with given id",1500:"Internal exception",1600:"Internal exception",1601:"Failed to get audio track",1602:"Failed to get video track",1603:"Incorrect device",1604:"Failed to change device",1605:"Failed to get audio & video track",1606:"No audio input devices are available",1607:"No video input devices are available",1608:"No audio output devices (speakers) are available",1609:"Failed to fetch list of media devices",1610:"No media track exists",1611:"Failed to unmute track",1612:"Failed to get screenshare tracks",1701:"Crypto error",1800:"Internal exception",1801:"Can't fetch transcript file",1900:"Internal exception",1901:"Permission denied.",1902:"Livestream that has not yet started, can't be stopped",2e3:"Internal exception",2001:"Permission denied",2002:"Unsupported",2003:"Stage is disabled",2004:"Method not implemented",2005:"Action not permitted without joining room",2006:"Action not permitted in current stage status",9900:"Internal exception"};Object.keys(Gc).forEach(t=>{Gc[t]=`{${b_[t.slice(0,2)]}} ${Gc[t]}`});class I extends Error{constructor(e,i,r=void 0,n=!1){super(e),m(this,"code"),this.code=i,this.name="DyteError",this.message=`[ERR${this.code}]: ${Gc[this.code]}
|
|
12
|
+
`)),this.pc2.setLocalDescription(e),this.pc1.setRemoteDescription(e)}establishConnection(){this.pc1.createOffer().then(this.gotOffer.bind(this),this.reportFatal.bind(this))}reportFatal(e){console.error("Error:",e)}getRoundTripTime(){return u(this,null,function*(){const[e,i]=yield Promise.all([this.pc1.getStats(),this.pc2.getStats()]);let r,n;if(e.forEach(s=>{s.type==="candidate-pair"&&s.nominated===!0&&s.bytesSent>0&&(r=s)}),i.forEach(s=>{s.type==="candidate-pair"&&s.nominated===!0&&s.bytesReceived>0&&(n=s)}),r&&n)try{if(r.currentRoundTripTime&&n.currentRoundTripTime)return{rtt:r.currentRoundTripTime,backendRTT:n.currentRoundTripTime};const s=(n.lastPacketReceivedTimestamp-r.lastPacketSentTimestamp)/1e3;return{rtt:s,backendRTT:s}}catch(s){return}})}close(){this.pc1.close(),this.pc2.close()}}class Am extends ut{constructor(e){super(),m(this,"call"),m(this,"timeOut"),this.call=new $i(e)}start(e=1e4){this.call.establishConnection(),this.timeOut=setTimeout(this.testFailed.bind(this),e)}testComplete(e){clearTimeout(this.timeOut),this.call.close(),this.emit("done",e)}testFailed(e){this.call.close(),this.emit("failed",e)}}const _T=8,IT=1/1e3;class CT extends Am{constructor(e){super(e),m(this,"senderChannel"),m(this,"recieveChannel"),m(this,"startTime"),m(this,"lastBitrateMeasureTime"),m(this,"sentPayloadBytes",0),m(this,"recievedPayloadBytes",0),m(this,"lastReceivedPayloadBytes",0),m(this,"stopSending",!1),m(this,"testProgress",0),m(this,"samplePacket",""),m(this,"finalBitrateSum",0),m(this,"bitRateSampels",0),m(this,"maxNumberOfPacketsToSend",0),m(this,"bytesToKeepBuffered",0),m(this,"testDurationSeconds",5),this.call.setIceCandidateFilter($i.isNotHostCandidate),this.senderChannel=this.call.pc1.createDataChannel(null);for(let i=0;i<262144;i+=1)this.samplePacket+="h";this.maxNumberOfPacketsToSend=1,this.bytesToKeepBuffered=1024*this.maxNumberOfPacketsToSend,this.testDurationSeconds=4,this.senderChannel.addEventListener("open",this.sendingStep.bind(this)),this.call.pc2.addEventListener("datachannel",this.onRecieverChannel.bind(this))}sendingStep(){const e=new Date;this.startTime||(this.startTime=e,this.lastBitrateMeasureTime=e);for(let r=0;r!==this.maxNumberOfPacketsToSend&&!(this.senderChannel.bufferedAmount>=this.bytesToKeepBuffered);r+=1){this.sentPayloadBytes+=this.samplePacket.length;try{this.senderChannel.send(this.samplePacket)}catch(n){}}const i=e.getTime()-this.startTime.getTime();i>=1e3*this.testDurationSeconds?(this.stopSending=!0,this.testProgress=100):(this.testProgress=i/(10*this.testDurationSeconds),setTimeout(this.sendingStep.bind(this),1))}onMessageRecieved(e){this.recievedPayloadBytes+=e.data.length;const i=new Date,r=i.getTime()-this.lastBitrateMeasureTime.getTime();if(r>=1e3){const n=(this.recievedPayloadBytes-this.lastReceivedPayloadBytes)*_T/(r/1e3);this.finalBitrateSum+=n,this.bitRateSampels+=1,this.lastReceivedPayloadBytes=this.recievedPayloadBytes,this.lastBitrateMeasureTime=i}if(this.stopSending&&this.sentPayloadBytes===this.recievedPayloadBytes){const n=this.finalBitrateSum/this.bitRateSampels;this.testComplete({throughput:Math.round(n*IT)})}}testComplete(e){this.call.getRoundTripTime().then(({rtt:i,backendRTT:r})=>super.testComplete({RTT:i,backendRTT:r,throughput:e.throughput}))}onRecieverChannel(e){this.recieveChannel=e.channel,this.recieveChannel.addEventListener("message",this.onMessageRecieved.bind(this))}}class Kl extends Am{constructor(e,i=$i.noFilter){super(e),m(this,"ch1"),m(this,"ch2"),this.call.setIceCandidateFilter(i);const r=this.call.pc1.createDataChannel(null);this.ch1=r,r.addEventListener("open",()=>{r.send("hello")}),r.addEventListener("message",this.onCh1Recieve.bind(this)),this.call.pc2.addEventListener("datachannel",this.dataChannelHandler.bind(this))}onCh1Recieve(e){e.data!=="world"?this.hangup("Invalid data transmitted."):this.testComplete({connectivity:!0})}onCh2Recieve(e){if(e.data!=="hello")this.hangup("Invalid data transmitted.");else try{this.ch2.send("world")}catch(i){}}dataChannelHandler(e){const i=e.channel;this.ch2=i,i.addEventListener("message",this.onCh2Recieve.bind(this))}hangup(e){this.testFailed(e)}}class PT extends Kl{constructor(e){super(e,$i.isHost)}}class RT extends Kl{constructor(e){super(e,$i.isRelay)}}class MT extends Kl{constructor(e){super(e,$i.isReflexive)}}class AT{constructor(){m(this,"ipInformation",null)}getIPDetails(e){return u(this,arguments,function*({peerId:i,apiHostnames:r,logger:n}){var s,o,c;if(!this.ipInformation){try{const d=`https://${r.location}`,l=yield(yield fetch(d)).json();if(((s=l.loc)==null?void 0:s.length)>5)return this.ipInformation=l,(o=this.ipInformation)!=null&&o.ip&&(this.ipInformation.ip=gr(this.ipInformation.ip)),l;throw Error("Insufficient data")}catch(d){n.error("callstats::ipDetails:: failed to fetch ip using location service",{error:d})}try{const d=yield fetch(`https://${r.locationLegacy}/?token=3c493932b0624c&peerId=${i}`,{method:"POST"});this.ipInformation=yield d.json(),(c=this.ipInformation)!=null&&c.ip&&(this.ipInformation.ip=gr(this.ipInformation.ip))}catch(d){n.error("callstats::ipDetails:: failed to fetch ip using legacy location service",{error:d})}}return this.ipInformation})}resetCache(){this.ipInformation=null}}const zl=new AT,Dm=[{urls:"turn:turn.dyte.in:443?transport=tcp",username:"dyte",credential:"dytein",credentialType:"password"},{urls:"turn:turn.dyte.in:3478?transport=udp",username:"dyte",credential:"dytein",credentialType:"password"}];function Om(t){const[e,i]=t.split(",");return{coords:{latitude:Number(e),longitude:Number(i)}}}class Nm{constructor(){m(this,"transport"),m(this,"candidatePair"),m(this,"outboundVideoRtp",new Map),m(this,"inboundVideoRtp",new Map),m(this,"outboundAudioRtp",new Map),m(this,"inboundAudioRtp",new Map),m(this,"remoteInboundRtp",new Map),m(this,"producerStreamMap",new Map),m(this,"consumerStreamMap",new Map),m(this,"staleProducerStreamMap",!1),m(this,"staleConsumerStreamMap",!1)}}class Vm extends ut{constructor(){super(),m(this,"observer"),m(this,"outboundProducerMap",new Map),m(this,"inboundConsumerMap",new Map),m(this,"consumerPeerIdMap",new Map),m(this,"pausedConsumerMap",new Map),m(this,"pausedProducerMap",new Map),m(this,"overallProducingTransportsStatsMap",{}),m(this,"overallConsumingTransportsStatsMap",{}),m(this,"overallConsumersStatsMap",{}),m(this,"overallProducersStatsMap",{}),m(this,"videoProducerToStatsMap",new Map),m(this,"audioProducerToStatsMap",new Map),m(this,"videoConsumerToStatsMap",new Map),m(this,"audioConsumerToStatsMap",new Map),m(this,"consumerIdsWithFreezedVideo",new Set),m(this,"consumerIdsWithFreezedAudio",new Set),m(this,"producerIdsWithFreezedVideo",new Set),m(this,"producerIdsWithFreezedAudio",new Set),m(this,"freezedProducingTransportIds",new Set),m(this,"freezedConsumingTransportIds",new Set),m(this,"screenShareProducers",new Set),m(this,"screenShareConsumers",new Set),m(this,"ipDetails"),m(this,"callStatsInstance"),this.observer=new ut}registerProducer(e){return u(this,null,function*(){yield this.generateProducerStreamMap(e),e.on("close",this.deregisterProducer.bind(this,e)),e.on("pause",this.pauseProducer.bind(this,e.id)),e.on("resume",this.resumeProducer.bind(this,e.id)),e.appData.screenShare===!0&&this.screenShareProducers.add(e.id)})}pauseProducer(e){this.pausedProducerMap.set(e,{lastReportCalculated:!1})}resumeProducer(e){this.pausedProducerMap.delete(e)}processInboundConsumerVideoStats(e,i,r){var n,s;const o=((s=(n=this==null?void 0:this.callStatsInstance)==null?void 0:n.consumerSharedMediaStatesMap)==null?void 0:s.get(e))||{};i.totalVideoPacketsReceived===r.packetsReceived?(this.consumerIdsWithFreezedVideo.add(e),this.callStatsInstance&&o.video&&(this.callStatsInstance.logger.debug("callstats::measurements::consumerVideoFreezed",{consumerId:e}),this.callStatsInstance.eventHandler.emit("consumer_video_status","pause",e))):(i.totalVideoPacketsReceived=r.packetsReceived,this.consumerIdsWithFreezedVideo.has(e)&&(this.consumerIdsWithFreezedVideo.delete(e),this.callStatsInstance&&o.video&&(this.callStatsInstance.logger.debug("callstats::measurements::consumerVideoDefreezed",{consumerId:e}),this.callStatsInstance.eventHandler.emit("consumer_video_status","resume",e))))}processInboundConsumerAudioStats(e,i,r){var n,s;const o=((s=(n=this==null?void 0:this.callStatsInstance)==null?void 0:n.consumerSharedMediaStatesMap)==null?void 0:s.get(e))||{};i.totalAudioPacketsReceived===r.packetsReceived?(this.consumerIdsWithFreezedAudio.add(e),this.callStatsInstance&&o.audio&&(this.callStatsInstance.logger.debug("callStats::measurements::consumerAudioFreezed",{consumerId:e}),this.callStatsInstance.eventHandler.emit("consumer_audio_status","pause",e))):(i.totalAudioPacketsReceived=r.packetsReceived,this.consumerIdsWithFreezedAudio.has(e)&&(this.consumerIdsWithFreezedAudio.delete(e),this.callStatsInstance&&o.audio&&(this.callStatsInstance.logger.debug("callStats::measurements::consumerAudioDefreezed",{consumerId:e}),this.callStatsInstance.eventHandler.emit("consumer_audio_status","resume",e))))}processOutboundProducerVideoStats(e,i,r){var n;const s=((n=this==null?void 0:this.callStatsInstance)==null?void 0:n.currentUserMediaStates)||{};i.totalVideoPacketsSent===r.packetsSent?(this.producerIdsWithFreezedVideo.add(e),this.callStatsInstance&&s.video&&(this.callStatsInstance.logger.debug("callStats::measurements::producerVideoFreezed",{producerId:e}),this.callStatsInstance.eventHandler.emit("producer_video_status","pause",e))):(i.totalVideoPacketsSent=r.packetsSent,this.producerIdsWithFreezedVideo.has(e)&&(this.producerIdsWithFreezedVideo.delete(e),this.callStatsInstance&&s.video&&(this.callStatsInstance.logger.debug("callStats::measurements::producerVideoDefreezed",{producerId:e}),this.callStatsInstance.eventHandler.emit("producer_video_status","resume",e))))}processOutboundProducerAudioStats(e,i,r){var n;const s=((n=this==null?void 0:this.callStatsInstance)==null?void 0:n.currentUserMediaStates)||{};i.totalAudioPacketsSent===r.packetsSent?(this.producerIdsWithFreezedAudio.add(e),this.callStatsInstance&&s.audio&&(this.callStatsInstance.logger.debug("callStats::measurements::producerAudioFreezed",{producerId:e}),this.callStatsInstance.eventHandler.emit("producer_audio_status","pause",e))):(i.totalAudioPacketsSent=r.packetsSent,this.producerIdsWithFreezedAudio.has(e)&&(this.producerIdsWithFreezedAudio.delete(e),this.callStatsInstance&&s.audio&&(this.callStatsInstance.logger.debug("callStats::measurements::producerAudioDefreezed",{producerId:e}),this.callStatsInstance.eventHandler.emit("producer_audio_status","resume",e))))}processProducingTransportStats(e,i,r){var n;const s=((n=this==null?void 0:this.callStatsInstance)==null?void 0:n.currentUserMediaStates)||{},{audio:o,video:c,screen:d}=s,l=o||c||d;i.totalPacketsSent===r.packetsSent?(this.freezedProducingTransportIds.add(e),this.callStatsInstance&&l&&(this.callStatsInstance.logger.debug("callStats::measurements::producingTransportFreezed",{transportId:e}),this.callStatsInstance.eventHandler.emit("producing_transport_status","pause",e))):(i.totalPacketsSent=r.packetsSent,this.freezedProducingTransportIds.has(e)&&(this.freezedProducingTransportIds.delete(e),this.callStatsInstance&&l&&(this.callStatsInstance.logger.debug("callStats::measurements::producingTransportDefreezed",{transportId:e}),this.callStatsInstance.eventHandler.emit("producing_transport_status","resume",e))))}processConsumingTransportStats(e,i,r){var n,s;const o=!!Array.from(((s=(n=this==null?void 0:this.callStatsInstance)==null?void 0:n.consumerSharedMediaStatesMap)==null?void 0:s.values())||[]).reduce((c,d)=>c||d.audio||d.video||d.screen,!1);i.totalPacketsReceived===r.packetsSent?(this.freezedConsumingTransportIds.add(e),this.callStatsInstance&&o&&(this.callStatsInstance.logger.debug("callStats::measurements::consumingTransportFreezed",{transportId:e}),this.callStatsInstance.eventHandler.emit("consuming_transport_status","pause",e))):(i.totalPacketsReceived=r.packetsSent,this.freezedConsumingTransportIds.has(e)&&(this.freezedConsumingTransportIds.delete(e),this.callStatsInstance&&o&&(this.callStatsInstance.logger.debug("callStats::measurements::consumingTransportDefreezed",{transportId:e}),this.callStatsInstance.eventHandler.emit("consuming_transport_status","resume",e))))}registerConsumer(e){return u(this,null,function*(){yield this.generateConsumerStreamMap(e),this.consumerPeerIdMap.set(e.id,{producerId:e.producerId,peerId:e.appData.peerId,appData:e.appData}),e.on("close",this.deregisterConsumer.bind(this,e)),e.on("pause",this.pauseConsumer.bind(this,e.id)),e.on("resume",this.resumeConsumer.bind(this,e.id)),e.appData.screenShare===!0&&this.screenShareConsumers.add(e.id)})}pauseConsumer(e){this.pausedConsumerMap.set(e,{lastReportCalculated:!1})}resumeConsumer(e){this.pausedConsumerMap.delete(e)}generateProducerStreamMap(e,i=!1){return u(this,null,function*(){const r=yield e.getStats(),n=i?this.getProducerStatsFromReport(this.parseRTCReport(r,["outbound-rtp","remote-inbound-rtp"],!1,e.id))[0]:void 0;for(const s of r.values())switch(s.type){case"outbound-rtp":{this.outboundProducerMap.set(s.id,e.id);break}}return n})}generateConsumerStreamMap(e,i=!1){return u(this,null,function*(){const r=yield e.getStats(),n=i?this.getConsumerStatsFromReport(this.parseRTCReport(r,["inbound-rtp"],!1,e.id))[0]:void 0;for(const s of r.values())switch(s.type){case"inbound-rtp":{this.inboundConsumerMap.set(s.id,e.id);break}}return n})}deregisterProducer(e){this.outboundProducerMap.forEach((i,r)=>{i===e.id&&this.outboundProducerMap.delete(r)}),this.pausedProducerMap.delete(e.id),this.screenShareProducers.delete(e.id)}deregisterConsumer(e){this.inboundConsumerMap.forEach((i,r)=>{i===e.id&&this.inboundConsumerMap.delete(r)}),this.consumerPeerIdMap.delete(e.id),this.pausedConsumerMap.delete(e.id),this.screenShareConsumers.delete(e.id)}getIceCandidateStats(e){var i;return{id:e.id,type:e.candidateType||e.type,address:e.address,port:e.port,url:e.url,protocol:(i=e.relayProtocol)!=null?i:e.protocol,networkType:e.networkType,relatedAddress:e.relatedAddress,relatedPort:e.relatedPort}}getWorkingSimulcastVideoStats(e){return e.find(i=>{const r=i.framesEncoded>0,n=i.packetsSent>0,s=i.frameWidth&&i.frameHeight;return r&&n&&!!s})||e[e.length-1]}parseRTCReport(e,i=[],r=!1,n=void 0,s=void 0){var o,c,d,l,h,p,v,k,E,C,b,R,j;const W=e,w=new Nm,te=i.length?new Set(i):void 0,ie=[],ae=[],De=[],st=new Map,ei=new Map;for(const A of W.values()){if(te){if(te.size===0)break;if(te.has(A.type))r&&te.delete(A.type);else continue}switch(A.type){case"local-candidate":{ie.push(this.getIceCandidateStats(A));break}case"remote-candidate":{ae.push(this.getIceCandidateStats(A));break}case"candidate-pair":{const{nominated:S}=A,{selected:_}=A,B=A,de={nominated:S!=null?S:_,currentRoundTripTime:B.currentRoundTripTime,totalRoundTripTime:B.totalRoundTripTime,bytesReceived:B.bytesReceived,bytesSent:B.bytesSent,availableOutgoingBitrate:B.availableOutgoingBitrate,availableIncomingBitrate:B.availableIncomingBitrate,lastPacketReceivedTimestamp:B.lastPacketReceivedTimestamp,lastPacketSentTimestamp:B.lastPacketSentTimestamp,localCandidateId:B.localCandidateId,remoteCandidateId:B.remoteCandidateId,bytesDiscardedOnSend:B.bytesDiscardedOnSend,packetsSent:B.packetsSent,packetsReceived:B.packetsReceived,packetsDiscardedOnSend:B.packetsDiscardedOnSend};De.push(de),(A.nominated===!0||A.selected===!0)&&(w.candidatePair=de);break}case"transport":{const S=A;s&&(s.producing&&(this.overallProducingTransportsStatsMap[s.id]||(this.overallProducingTransportsStatsMap[s.id]={totalPacketsSent:0})),s.consuming&&(this.overallConsumingTransportsStatsMap[s.id]||(this.overallConsumingTransportsStatsMap[s.id]={totalPacketsReceived:0})));const _={bytesReceived:S.bytesReceived,bytesSent:S.bytesSent,packetsSent:S.packetsSent,packetsReceived:S.packetsReceived,dtlsCipher:S.dtlsCipher,dtlsState:S.dtlsState,iceRole:S.iceRole};if(w.transport=_,s){if(s.producing){const B=this.overallProducingTransportsStatsMap[s.id];this.processProducingTransportStats(s.id,B,_)}if(s.consuming){const B=this.overallConsumingTransportsStatsMap[s.id];this.processConsumingTransportStats(s.id,B,_)}}break}case"remote-inbound-rtp":{const S=A,_={jitter:S.jitter,fractionLost:S.fractionLost,roundTripTime:S.roundTripTime,roundTripTimeMeasurements:S.roundTripTimeMeasurements,totalRoundTripTime:S.totalRoundTripTime,packetsLost:S.packetsLost};w.remoteInboundRtp.set(S.localId,_);break}case"outbound-rtp":{if(!this.outboundProducerMap.has(A.id))break;const S=A,_=n||this.outboundProducerMap.get(A.id),B=this.pausedProducerMap.get(_);if(B){if(B.lastReportCalculated===!0)break;this.pausedProducerMap.set(_,{lastReportCalculated:!0})}this.overallProducersStatsMap[_]||(this.overallProducersStatsMap[_]={totalVideoPacketsSent:0,totalAudioPacketsSent:0});const de=this.overallProducersStatsMap[_];if(["video","audio"].includes(S.mediaType)||["video","audio"].includes(S.kind)){if(!this.outboundProducerMap.has(A.id)){w.staleProducerStreamMap=!0;break}const Ke=this.callStatsInstance.producers.get(_);if(((o=Ke==null?void 0:Ke.track)==null?void 0:o.readyState)==="ended")break;w.producerStreamMap.has(_)||w.producerStreamMap.set(_,{outboundVideoRtpId:[],outboundAudioRtpId:[]});const x={bytesSent:S.bytesSent,packetsSent:S.packetsSent,nackCount:S.nackCount,ssrc:S.ssrc,mid:S.mid,active:S.active,codecId:S.codecId,headerBytesSent:S.headerBytesSent||0,totalPacketSendDelay:S.totalPacketSendDelay||0};if(S.mediaType==="video"||S.kind==="video"){const P=S,le=V({frameHeight:P.frameHeight,frameWidth:P.frameWidth,framesEncoded:P.framesEncoded,framesDropped:P.framesDropped,framesPerSecond:P.framesPerSecond,framesSent:P.framesSent,keyFramesEncoded:P.keyFramesEncoded,firCount:P.firCount,encoderImplementation:P.encoderImplementation,hugeFramesSent:P.hugeFramesSent,pliCount:P.pliCount,qpSum:P.qpSum,qualityLimitationDurations:P.qualityLimitationDurations,qualityLimitationReason:P.qualityLimitationReason,qualityLimitationResolutionChanges:P.qualityLimitationResolutionChanges,totalEncodeTime:P.targetBitrate,totalPacketSendDelay:P.totalPacketSendDelay,retransmittedBytesSent:P.retransmittedBytesSent,retransmittedPacketsSent:P.retransmittedPacketsSent,scalabilityMode:P.scalabilityMode,powerEfficientEncoder:P.powerEfficientEncoder},x);w.outboundVideoRtp.set(A.id,le),w.producerStreamMap.get(_).outboundVideoRtpId.push(A.id),this.processOutboundProducerVideoStats(_,de,le)}else if(S.mediaType==="audio"||S.kind==="audio"){const P=S,le=V({retransmittedBytesSent:P.retransmittedBytesSent,retransmittedPacketsSent:P.retransmittedPacketsSent},x);w.outboundAudioRtp.set(A.id,le),w.producerStreamMap.get(_).outboundAudioRtpId.push(A.id),this.processOutboundProducerAudioStats(_,de,le)}}else this.callStatsInstance.logger.error(`Callstats: Unknown Outbound-rtp. mediatype: ${S.mediaType} kind: ${S.kind}`);break}case"inbound-rtp":{if(!this.inboundConsumerMap.has(A.id))break;const S=A,_=n||this.inboundConsumerMap.get(A.id),B=this.pausedConsumerMap.get(_);if(B){if(B.lastReportCalculated===!0)break;this.pausedConsumerMap.set(_,{lastReportCalculated:!0})}if(S.ssrc===1234)break;this.overallConsumersStatsMap[_]||(this.overallConsumersStatsMap[_]={totalVideoPacketsReceived:0,totalAudioPacketsReceived:0});const de=this.overallConsumersStatsMap[_];if(["video","audio"].includes(S.mediaType)||["video","audio"].includes(S.kind)){if(!this.inboundConsumerMap.has(A.id)){w.staleConsumerStreamMap=!0;break}w.consumerStreamMap.has(_)||w.consumerStreamMap.set(_,{inboundVideoRtpId:[],inboundAudioRtpId:[]});const Ke={bytesReceived:S.bytesReceived,packetsReceived:S.packetsReceived,packetsLost:S.packetsLost>=0?S.packetsLost:0,jitter:S.jitter,nackCount:S.nackCount,jitterBufferDelay:S.jitterBufferDelay,jitterBufferEmittedCount:S.jitterBufferEmittedCount,lastPacketReceivedTimestamp:S.lastPacketReceivedTimestamp,ssrc:S.ssrc,mid:S.mid,codecId:S.codecId,headerBytesReceived:S.headerBytesReceived||0,packetsDiscarded:S.packetsDiscarded||0,jitterBufferMinimumDelay:S.jitterBufferMinimumDelay||0,jitterBufferTargetDelay:S.jitterBufferTargetDelay||0};if(S.mediaType==="video"||S.kind==="video"){const x=S,P=V({frameHeight:x.frameHeight,frameWidth:x.frameWidth,framesDecoded:x.framesDecoded,framesDropped:x.framesDropped,framesPerSecond:x.framesPerSecond,framesReceived:x.framesReceived,keyFramesDecoded:x.keyFramesDecoded,firCount:x.firCount,decoderImplementation:x.decoderImplementation,pliCount:x.pliCount,totalProcessingDelay:x.totalProcessingDelay,qpSum:x.qpSum||0,totalAssemblyTime:x.totalAssemblyTime||0,totalDecodeTime:x.totalDecodeTime||0,totalFreezesDuration:x.totalFreezesDuration||0,totalInterFrameDelay:x.totalInterFrameDelay||0,totalPausesDuration:x.totalPausesDuration||0,totalSquaredInterFrameDelay:x.totalSquaredInterFrameDelay||0,freezeCount:x.freezeCount||0,pauseCount:x.pauseCount||0,powerEfficientDecoder:x.powerEfficientDecoder},Ke);P.score=Mm({frameWidth:P.frameWidth||0,framesDecoded:(P.framesDecoded||0)-(((c=this.videoConsumerToStatsMap.get(_))==null?void 0:c.framesDecoded)||0),framesPerSecond:P.framesPerSecond||0,packetsLost:(P.packetsLost||0)-(((d=this.videoConsumerToStatsMap.get(_))==null?void 0:d.packetsLost)||0),packetsReceived:(P.packetsReceived||0)-(((l=this.videoConsumerToStatsMap.get(_))==null?void 0:l.packetsReceived)||0),jitter:P.jitter||0,isScreenShare:this.screenShareConsumers.has(_)}),ei.set(_,{score:+(P.score*10).toFixed(),frameWidth:P.frameWidth||0,frameHeight:P.frameHeight||0,framesPerSecond:P.framesPerSecond||0,packetsLostPercentage:Ic({packetsLost:(P.packetsLost||0)-(((h=this.videoConsumerToStatsMap.get(_))==null?void 0:h.packetsLost)||0),packetsReceived:(P.packetsReceived||0)-(((p=this.videoConsumerToStatsMap.get(_))==null?void 0:p.packetsReceived)||0)}),jitter:P.jitter||0,isScreenShare:this.screenShareConsumers.has(_),bitrate:((P.bytesReceived||0)-(((v=this.videoConsumerToStatsMap.get(_))==null?void 0:v.bytesReceived)||0))*8/7}),this.videoConsumerToStatsMap.set(_,P),w.inboundVideoRtp.set(A.id,P),w.consumerStreamMap.get(_).inboundVideoRtpId.push(A.id),this.processInboundConsumerVideoStats(_,de,P)}else if(S.mediaType==="audio"||S.kind==="audio"){const x=S,P=V({audioLevel:x.audioLevel,concealedSamples:x.concealedSamples,concealmentEvents:x.concealmentEvents,totalAudioEnergy:x.totalAudioEnergy,totalSamplesDuration:x.totalSamplesDuration,totalSamplesReceived:x.totalSamplesReceived,fecPacketsDiscarded:x.fecPacketsDiscarded||0,fecPacketsReceived:x.fecPacketsReceived||0,insertedSamplesForDeceleration:x.insertedSamplesForDeceleration||0,removedSamplesForAcceleration:x.removedSamplesForAcceleration||0,silentConcealedSamples:x.silentConcealedSamples||0,playoutId:x.playoutId},Ke);P.score=Rm({concealmentEvents:(P.concealmentEvents||0)-(((k=this.audioConsumerToStatsMap.get(_))==null?void 0:k.concealmentEvents)||0),packetsLost:(P.packetsLost||0)-(((E=this.audioConsumerToStatsMap.get(_))==null?void 0:E.packetsLost)||0),packetsReceived:(P.packetsReceived||0)-(((C=this.audioConsumerToStatsMap.get(_))==null?void 0:C.packetsReceived)||0),jitter:P.jitter||0}),ei.set(_,{score:+(P.score*10).toFixed(),packetsLostPercentage:Ic({packetsLost:(P.packetsLost||0)-(((b=this.audioConsumerToStatsMap.get(_))==null?void 0:b.packetsLost)||0),packetsReceived:(P.packetsReceived||0)-(((R=this.audioConsumerToStatsMap.get(_))==null?void 0:R.packetsReceived)||0)}),jitter:P.jitter||0,isScreenShare:this.screenShareConsumers.has(_),bitrate:((P.bytesReceived||0)-(((j=this.audioConsumerToStatsMap.get(_))==null?void 0:j.bytesReceived)||0))*8/7}),this.audioConsumerToStatsMap.set(_,P),w.inboundAudioRtp.set(A.id,P),w.consumerStreamMap.get(_).inboundAudioRtpId.push(A.id),this.processInboundConsumerAudioStats(_,de,P)}}else this.callStatsInstance.logger.error(`Callstats: Unknown Inbound-rtp. mediatype: ${S.mediaType} kind: ${S.kind}`);break}}}if(w.producerStreamMap.forEach((A,S)=>{var _,B,de,Ke,x,P,le,Gn,qn,pr,zo,Yo,Qo,Xo,Zo,ec,tc,ic,rc,nc,sc,ac,oc;if(A.outboundVideoRtpId.length>0){const ve=[];A.outboundVideoRtpId.forEach(Ip=>{ve.push(w.outboundVideoRtp.get(Ip))});const ne=this.getWorkingSimulcastVideoStats(ve);ne.score=Cm({frameWidth:ne.frameWidth||0,framesPerSecond:ne.framesPerSecond||0,jitter:((_=ne.remoteData)==null?void 0:_.jitter)||0,isScreenShare:this.screenShareProducers.has(S),packetsSent:(ne.packetsSent||0)-(((B=this.videoProducerToStatsMap.get(S))==null?void 0:B.packetsSent)||0),packetsLost:(((de=ne.remoteData)==null?void 0:de.packetsLost)||0)-(((x=(Ke=this.videoProducerToStatsMap.get(S))==null?void 0:Ke.remoteData)==null?void 0:x.packetsLost)||0),framesEncoded:(ne.framesEncoded||0)-(((P=this.videoProducerToStatsMap.get(S))==null?void 0:P.framesEncoded)||0)}),st.set(S,{score:+(ne.score*10).toFixed(),frameWidth:ne.frameWidth||0,frameHeight:ne.frameHeight||0,framesPerSecond:ne.framesPerSecond||0,jitter:((le=ne.remoteData)==null?void 0:le.jitter)||0,isScreenShare:this.screenShareProducers.has(S),packetsLostPercentage:_c({packetsSent:(ne.packetsSent||0)-(((Gn=this.videoProducerToStatsMap.get(S))==null?void 0:Gn.packetsSent)||0),packetsLost:(((qn=ne.remoteData)==null?void 0:qn.packetsLost)||0)-(((zo=(pr=this.videoProducerToStatsMap.get(S))==null?void 0:pr.remoteData)==null?void 0:zo.packetsLost)||0)}),bitrate:((ne.bytesSent||0)-(((Yo=this.videoProducerToStatsMap.get(S))==null?void 0:Yo.bytesSent)||0))*8/7,cpuLimitations:ne.qualityLimitationReason==="cpu",bandwidthLimitations:ne.qualityLimitationReason==="bandwidth"}),this.videoProducerToStatsMap.set(S,ne)}else if(A.outboundAudioRtpId.length>0){const ve=w.outboundAudioRtp.get(A.outboundAudioRtpId[0]);ve.score=Im({packetsSent:(ve.packetsSent||0)-(((Qo=this.audioProducerToStatsMap.get(S))==null?void 0:Qo.packetsSent)||0),packetsLost:(((Xo=ve.remoteData)==null?void 0:Xo.packetsLost)||0)-(((ec=(Zo=this.audioProducerToStatsMap.get(S))==null?void 0:Zo.remoteData)==null?void 0:ec.packetsLost)||0),jitter:((tc=ve.remoteData)==null?void 0:tc.jitter)||0}),st.set(S,{score:+(ve.score*10).toFixed(),bitrate:((ve.bytesSent||0)-(((ic=this.audioProducerToStatsMap.get(S))==null?void 0:ic.bytesSent)||0))*8/7,packetsLostPercentage:_c({packetsSent:(ve.packetsSent||0)-(((rc=this.audioProducerToStatsMap.get(S))==null?void 0:rc.packetsSent)||0),packetsLost:(((nc=ve.remoteData)==null?void 0:nc.packetsLost)||0)-(((ac=(sc=this.audioProducerToStatsMap.get(S))==null?void 0:sc.remoteData)==null?void 0:ac.packetsLost)||0)}),jitter:((oc=ve.remoteData)==null?void 0:oc.jitter)||0,isScreenShare:this.screenShareProducers.has(S)}),this.audioProducerToStatsMap.set(S,ve)}}),De.forEach(A=>{const S=ie.find(B=>B.id===A.localCandidateId?(A.localCandidateId=B.id,B):null),_=ae.find(B=>B.id===A.remoteCandidateId?(A.remoteCandidateId=B.id,B):null);S&&(A.localCandidateType=S.type,A.localCandidateAddress=gr(S.address),A.localCandidatePort=S.port,A.localCandidateProtocol=S.protocol,A.localCandidateUrl=S.url,A.localCandidateNetworkType=S.networkType,A.localCandidateRelatedAddress=gr(S.relatedAddress),A.localCandidateRelatedPort=S.relatedPort),_&&(A.remoteCandidateType=_.type,A.remoteCandidateAddress=gr(_.address),A.remoteCandidatePort=_.port,A.remoteCandidateProtocol=_.protocol,A.remoteCandidateUrl=_.url)}),w.candidatePair&&(w.transport?(w.transport.totalRoundTripTime=w.candidatePair.totalRoundTripTime,w.transport.availableOutgoingBitrate=w.candidatePair.availableOutgoingBitrate,w.transport.availableIncomingBitrate=w.candidatePair.availableIncomingBitrate,w.transport.roundTripTime=w.candidatePair.currentRoundTripTime):w.transport={bytesReceived:w.candidatePair.bytesReceived,bytesSent:w.candidatePair.bytesSent,totalRoundTripTime:w.candidatePair.totalRoundTripTime,availableOutgoingBitrate:w.candidatePair.availableOutgoingBitrate,availableIncomingBitrate:w.candidatePair.availableIncomingBitrate,roundTripTime:w.candidatePair.currentRoundTripTime}),w.transport&&(w.transport.candidatePairs=De),w.transport&&!w.transport.roundTripTime){let A=0,S=0;w.remoteInboundRtp.forEach((_,B)=>{_.roundTripTime&&_.roundTripTime>A&&(A=_.roundTripTime,S=_.totalRoundTripTime)}),w.transport.roundTripTime=A,w.transport.totalRoundTripTime=S}if(ei.size>0)try{this.observer.emit("consumer_score",ei)}catch(A){}if(st.size>0)try{this.observer.emit("producer_score",st)}catch(A){}return w}getProducersReport(e){return u(this,null,function*(){const i=e.map(r=>this.generateProducerStreamMap(r,!0));return i.length>0?Promise.all(i):void 0})}getConsumersReport(e){return u(this,null,function*(){const i=e.map(r=>this.generateConsumerStreamMap(r,!0));return i.length>0?Promise.all(i):void 0})}getTransportReport(e){return u(this,null,function*(){return e.getStats()})}getProcessedStats(e,i,r){return u(this,null,function*(){const n=yield this.getTransportReport(e),s={producing:r,consuming:i,id:e.id},o=n,c=this.parseRTCReport(o,["transport","candidate-pair","inbound-rtp","outbound-rtp","remote-inbound-rtp","local-candidate","remote-candidate"],!1,void 0,s);if(!c)return;const d={stats:c.transport,transportId:e.id,consuming:i,producing:r},l=c.staleProducerStreamMap?void 0:this.getProducerStatsFromReport(c),h=c.staleConsumerStreamMap?void 0:this.getConsumerStatsFromReport(c);return{transportReport:d,producerReport:l,consumerReport:h}})}getProducerStatsFromReport(e){const i=[];try{e.producerStreamMap.forEach((r,n)=>{var s,o;i.push({producerId:n,videoStats:r.outboundVideoRtpId.map(c=>e.outboundVideoRtp.get(c)),audioStats:r.outboundAudioRtpId.map(c=>e.outboundAudioRtp.get(c)),appData:((o=(s=this.callStatsInstance.producers)==null?void 0:s.get(n))==null?void 0:o.appData)||null})})}catch(r){this.callStatsInstance.logger.error("callStats::measurements::getProducerStatsFromReport",{error:{reason:r.reason,message:r.message}})}return i}getConsumerStatsFromReport(e){const i=[];try{e.consumerStreamMap.forEach((r,n)=>{const{peerId:s,producerId:o,appData:c}=this.consumerPeerIdMap.get(n);i.push({consumerId:n,peerId:s,producerId:o,appData:c,videoStats:r.inboundVideoRtpId.map(d=>e.inboundVideoRtp.get(d)),audioStats:r.inboundAudioRtpId.map(d=>e.inboundAudioRtp.get(d))})})}catch(r){console.error("getConsumersReport: ",r,e)}return i}getUserLocation(){return u(this,null,function*(){return new Promise((e,i)=>{try{navigator.geolocation?navigator.geolocation.getCurrentPosition(r=>{e(r)}):i()}catch(r){i(r)}})})}getConnectivity(e){return u(this,null,function*(){try{const i={iceServers:e||Dm},r=new Promise((l,h)=>{try{const p=new PT(i);p.addListener("done",l),p.addListener("failed",()=>{l({connectivity:!1})}),p.start(2e3)}catch(p){h(p)}}),n=new Promise((l,h)=>{try{const p=new RT(i);p.addListener("done",l),p.addListener("failed",()=>{l({connectivity:!1})}),p.start(2e3)}catch(p){h(p)}}),s=new Promise((l,h)=>{try{const p=new MT(i);p.addListener("done",l),p.addListener("failed",()=>{l({connectivity:!1})}),p.start(2e3)}catch(p){h(p)}}),[o,c,d]=yield Promise.all([r,n,s]);return{host:o==null?void 0:o.connectivity,relay:c==null?void 0:c.connectivity,reflexive:d==null?void 0:d.connectivity}}catch(i){return{host:!1,relay:!1,reflexive:!1}}})}getThroughput(e){return u(this,null,function*(){try{const i=yield new Promise((r,n)=>{try{const s={iceServers:e||Dm},o=new CT(s);o.addListener("done",r),o.addListener("failed",n),o.start(1e4)}catch(s){n(s)}});return{throughput:i.throughput,fractionalLoss:0,RTT:i.RTT,jitter:0,backendRTT:i.backendRTT}}catch(i){return}})}getIPDetails(){return u(this,null,function*(){var e,i;try{return this.ipDetails||(this.ipDetails=yield zl.getIPDetails({peerId:(e=this.callStatsInstance)==null?void 0:e.peerId,apiHostnames:(i=this.callStatsInstance)==null?void 0:i.apiHostnames,logger:this.callStatsInstance.logger})),this.ipDetails}catch(r){return}})}getNetworkQuality(e){return u(this,null,function*(){const[i,r]=yield Promise.all([this.getConnectivity(e),this.getThroughput(e)]);return{connectivity:i,throughput:r==null?void 0:r.throughput,fractionalLoss:r==null?void 0:r.fractionalLoss,RTT:r==null?void 0:r.RTT,jitter:r==null?void 0:r.jitter,backendRTT:r==null?void 0:r.backendRTT}})}getNetworkInfo(e,i=!1){return u(this,null,function*(){var r,n;if(i){const d=yield this.getIPDetails();return{ipDetails:d,effectiveNetworkType:(r=navigator.connection)==null?void 0:r.effectiveType,location:d!=null&&d.loc?Om(d==null?void 0:d.loc):void 0}}const[s,o,c]=yield Promise.all([this.getConnectivity(e),this.getThroughput(e),this.getIPDetails()]);return{ipDetails:c,effectiveNetworkType:(n=navigator.connection)==null?void 0:n.effectiveType,location:c!=null&&c.loc?Om(c==null?void 0:c.loc):void 0,turnConnectivity:s?s.host||s.relay||s.reflexive:!1,connectivity:s,throughput:o==null?void 0:o.throughput,fractionalLoss:o==null?void 0:o.fractionalLoss,RTT:o==null?void 0:o.RTT,jitter:o==null?void 0:o.jitter,backendRTT:o==null?void 0:o.backendRTT}})}}class DT extends Vm{}class Lm extends Vm{constructor(){super(...arguments),m(this,"producerMap",new Map),m(this,"consumerMap",new Map)}registerProducer(e){return u(this,null,function*(){this.producerMap.set(e.id,e),yield this.generateProducerStreamMap(e),e.on("close",this.deregisterProducer.bind(this,e)),e.on("pause",this.pauseProducer.bind(this,e.id)),e.on("resume",this.resumeProducer.bind(this,e.id)),e.appData.screenShare===!0&&this.screenShareProducers.add(e.id)})}registerConsumer(e){return u(this,null,function*(){this.consumerMap.set(e.id,e),yield this.generateConsumerStreamMap(e),this.consumerPeerIdMap.set(e.id,{producerId:e.producerId,peerId:e.appData.peerId,appData:e.appData}),e.on("close",this.deregisterConsumer.bind(this,e)),e.on("pause",this.pauseConsumer.bind(this,e.id)),e.on("resume",this.resumeConsumer.bind(this,e.id)),e.appData.screenShare===!0&&this.screenShareConsumers.add(e.id)})}generateConsumerStreamMap(e,i=!1){return u(this,null,function*(){const r=yield e.getStats(),n=this.parseRTCReport(r,["inbound-rtp"],!1,e.id),s=[...n.consumerStreamMap.values()][0],o=i?this.getConsumerStatsFromParsedConsumerStats(n,s,e.id):void 0;for(const c of r.values())switch(c.type){case"inbound-rtp":{this.inboundConsumerMap.set(c.id,e.id);break}}return o})}deregisterProducer(e){this.producerMap.delete(e.id),this.outboundProducerMap.forEach((i,r)=>{i===e.id&&this.outboundProducerMap.delete(r)}),this.pausedProducerMap.delete(e.id),this.screenShareProducers.delete(e.id)}deregisterConsumer(e){this.consumerMap.delete(e.id),this.inboundConsumerMap.forEach((i,r)=>{i===e.id&&this.inboundConsumerMap.delete(r)}),this.consumerPeerIdMap.delete(e.id),this.pausedConsumerMap.delete(e.id),this.screenShareConsumers.delete(e.id)}getIceCandidateStats(e){var i;return{id:e.id,type:e.candidateType||e.type,address:e.address,port:e.port,url:e.url,protocol:(i=e.relayProtocol)!=null?i:e.protocol,networkType:e.networkType,relatedAddress:e.relatedAddress,relatedPort:e.relatedPort}}parseRTCReport(e,i=[],r=!1,n=void 0,s=void 0){var o,c,d,l,h,p,v,k,E,C,b,R,j;const W=e,w=new Nm,te=i.length?new Set(i):void 0,ie=[],ae=[],De=[],st=new Map,ei=new Map;for(const A of W.values()){if(te){if(te.size===0)break;if(te.has(A.type))r&&te.delete(A.type);else continue}switch(A.type){case"local-candidate":{ie.push(this.getIceCandidateStats(A));break}case"remote-candidate":{ae.push(this.getIceCandidateStats(A));break}case"candidate-pair":{const{nominated:S}=A,{selected:_}=A,B=A,de={nominated:S!=null?S:_,currentRoundTripTime:B.currentRoundTripTime,totalRoundTripTime:B.totalRoundTripTime,bytesReceived:B.bytesReceived,bytesSent:B.bytesSent,availableOutgoingBitrate:B.availableOutgoingBitrate,availableIncomingBitrate:B.availableIncomingBitrate,lastPacketReceivedTimestamp:B.lastPacketReceivedTimestamp,lastPacketSentTimestamp:B.lastPacketSentTimestamp,localCandidateId:B.localCandidateId,remoteCandidateId:B.remoteCandidateId,bytesDiscardedOnSend:B.bytesDiscardedOnSend,packetsSent:B.packetsSent,packetsReceived:B.packetsReceived,packetsDiscardedOnSend:B.packetsDiscardedOnSend};De.push(de),(A.nominated===!0||A.selected===!0)&&(w.candidatePair=de);break}case"transport":{const S=A;s&&(s.producing&&(this.overallProducingTransportsStatsMap[s.id]||(this.overallProducingTransportsStatsMap[s.id]={totalPacketsSent:0})),s.consuming&&(this.overallConsumingTransportsStatsMap[s.id]||(this.overallConsumingTransportsStatsMap[s.id]={totalPacketsReceived:0})));const _={bytesReceived:S.bytesReceived,bytesSent:S.bytesSent,packetsSent:S.packetsSent,packetsReceived:S.packetsReceived,dtlsCipher:S.dtlsCipher,dtlsState:S.dtlsState,iceRole:S.iceRole};if(w.transport=_,s){if(s.producing){const B=this.overallProducingTransportsStatsMap[s.id];this.processProducingTransportStats(s.id,B,_)}if(s.consuming){const B=this.overallConsumingTransportsStatsMap[s.id];this.processConsumingTransportStats(s.id,B,_)}}break}case"remote-inbound-rtp":{const S=A,_={jitter:S.jitter,fractionLost:S.fractionLost,roundTripTime:S.roundTripTime,roundTripTimeMeasurements:S.roundTripTimeMeasurements,totalRoundTripTime:S.totalRoundTripTime,packetsLost:S.packetsLost};w.remoteInboundRtp.set(S.localId,_);break}case"outbound-rtp":{if(!this.outboundProducerMap.has(A.id))break;const S=A,_=n||this.outboundProducerMap.get(A.id),B=this.pausedProducerMap.get(_);if(B){if(B.lastReportCalculated===!0)break;this.pausedProducerMap.set(_,{lastReportCalculated:!0})}this.overallProducersStatsMap[_]||(this.overallProducersStatsMap[_]={totalVideoPacketsSent:0,totalAudioPacketsSent:0});const de=this.overallProducersStatsMap[_];if(["video","audio"].includes(S.mediaType)||["video","audio"].includes(S.kind)){if(!this.outboundProducerMap.has(A.id)){w.staleProducerStreamMap=!0;break}const Ke=this.callStatsInstance.producers.get(_);if(((o=Ke==null?void 0:Ke.track)==null?void 0:o.readyState)==="ended")break;w.producerStreamMap.has(_)||w.producerStreamMap.set(_,{outboundVideoRtpId:[],outboundAudioRtpId:[]});const x={bytesSent:S.bytesSent,packetsSent:S.packetsSent,nackCount:S.nackCount,ssrc:S.ssrc,mid:S.mid,active:S.active,codecId:S.codecId,headerBytesSent:S.headerBytesSent||0,totalPacketSendDelay:S.totalPacketSendDelay||0};if(S.mediaType==="video"||S.kind==="video"){const P=S,le=V({frameHeight:P.frameHeight,frameWidth:P.frameWidth,framesEncoded:P.framesEncoded,framesDropped:P.framesDropped?P.framesDropped:P.droppedFrames,framesPerSecond:P.framesPerSecond?P.framesPerSecond:P.framerateMean,framesSent:P.framesSent,keyFramesEncoded:P.keyFramesEncoded,firCount:P.firCount,encoderImplementation:P.encoderImplementation,hugeFramesSent:P.hugeFramesSent,pliCount:P.pliCount,qpSum:P.qpSum,qualityLimitationReason:P.qualityLimitationReason,qualityLimitationDurations:P.qualityLimitationDurations,qualityLimitationResolutionChanges:P.qualityLimitationResolutionChanges,totalEncodeTime:P.totalEncodeTime,totalPacketSendDelay:P.totalEncodeTime,retransmittedBytesSent:P.retransmittedBytesSent,retransmittedPacketsSent:P.retransmittedPacketsSent,scalabilityMode:P.scalabilityMode,powerEfficientEncoder:P.powerEfficientEncoder},x);w.outboundVideoRtp.set(A.id,le),w.producerStreamMap.get(_).outboundVideoRtpId.push(A.id),this.processOutboundProducerVideoStats(_,de,le)}else if(S.mediaType==="audio"||S.kind==="audio"){const P=S,le=V({retransmittedBytesSent:P.retransmittedBytesSent,retransmittedPacketsSent:P.retransmittedPacketsSent},x);w.outboundAudioRtp.set(A.id,le),w.producerStreamMap.get(_).outboundAudioRtpId.push(A.id),this.processOutboundProducerAudioStats(_,de,le)}}else this.callStatsInstance.logger.error(`Callstats: Unknown Outbound-rtp. mediatype: ${S.mediaType} kind: ${S.kind}`);break}case"inbound-rtp":{if(!this.inboundConsumerMap.has(A.id))break;const S=A,_=n||this.inboundConsumerMap.get(A.id),B=this.pausedConsumerMap.get(_);if(B){if(B.lastReportCalculated===!0)break;this.pausedConsumerMap.set(_,{lastReportCalculated:!0})}if(S.ssrc===1234)break;this.overallConsumersStatsMap[_]||(this.overallConsumersStatsMap[_]={totalVideoPacketsReceived:0,totalAudioPacketsReceived:0});const de=this.overallConsumersStatsMap[_];if(["video","audio"].includes(S.mediaType)||["video","audio"].includes(S.kind)){if(!this.inboundConsumerMap.has(A.id)){w.staleConsumerStreamMap=!0;break}w.consumerStreamMap.has(_)||w.consumerStreamMap.set(_,{inboundVideoRtpId:[],inboundAudioRtpId:[]});const Ke={bytesReceived:S.bytesReceived,packetsReceived:S.packetsReceived,packetsLost:S.packetsLost>=0?S.packetsLost:0,jitter:S.jitter,nackCount:S.nackCount,jitterBufferDelay:S.jitterBufferDelay,jitterBufferEmittedCount:S.jitterBufferEmittedCount,lastPacketReceivedTimestamp:S.lastPacketReceivedTimestamp,ssrc:S.ssrc,mid:S.mid,codecId:S.codecId,headerBytesReceived:S.headerBytesReceived||0,packetsDiscarded:S.packetsDiscarded||0,jitterBufferMinimumDelay:S.jitterBufferMinimumDelay||0,jitterBufferTargetDelay:S.jitterBufferTargetDelay||0};if(S.mediaType==="video"||S.kind==="video"){const x=S,P=V({frameHeight:x.frameHeight,frameWidth:x.frameWidth,framesDecoded:x.framesDecoded,framesDropped:x.framesDropped?x.framesDropped:x.droppedFrames,framesPerSecond:x.framesPerSecond?x.framesPerSecond:x.framerateMean,framesReceived:x.framesReceived,keyFramesDecoded:x.keyFramesDecoded,firCount:x.firCount,decoderImplementation:x.decoderImplementation,pliCount:x.pliCount,totalProcessingDelay:x.totalProcessingDelay,qpSum:x.qpSum||0,totalAssemblyTime:x.totalAssemblyTime||0,totalDecodeTime:x.totalDecodeTime||0,totalFreezesDuration:x.totalFreezesDuration||0,totalInterFrameDelay:x.totalInterFrameDelay||0,totalPausesDuration:x.totalPausesDuration||0,totalSquaredInterFrameDelay:x.totalSquaredInterFrameDelay||0,freezeCount:x.freezeCount||0,pauseCount:x.pauseCount||0,powerEfficientDecoder:x.powerEfficientDecoder},Ke);P.score=Mm({frameWidth:P.frameWidth||0,framesDecoded:(P.framesDecoded||0)-(((c=this.videoConsumerToStatsMap.get(_))==null?void 0:c.framesDecoded)||0),framesPerSecond:P.framesPerSecond||0,packetsLost:(P.packetsLost||0)-(((d=this.videoConsumerToStatsMap.get(_))==null?void 0:d.packetsLost)||0),packetsReceived:(P.packetsReceived||0)-(((l=this.videoConsumerToStatsMap.get(_))==null?void 0:l.packetsReceived)||0),jitter:P.jitter||0,isScreenShare:this.screenShareConsumers.has(_)}),ei.set(_,{score:+(P.score*10).toFixed(),frameWidth:P.frameWidth||0,frameHeight:P.frameHeight||0,framesPerSecond:P.framesPerSecond||0,packetsLostPercentage:Ic({packetsLost:(P.packetsLost||0)-(((h=this.videoConsumerToStatsMap.get(_))==null?void 0:h.packetsLost)||0),packetsReceived:(P.packetsReceived||0)-(((p=this.videoConsumerToStatsMap.get(_))==null?void 0:p.packetsReceived)||0)}),jitter:P.jitter||0,isScreenShare:this.screenShareConsumers.has(_),bitrate:((P.bytesReceived||0)-(((v=this.videoConsumerToStatsMap.get(_))==null?void 0:v.bytesReceived)||0))*8/7}),this.videoConsumerToStatsMap.set(_,P),w.inboundVideoRtp.set(A.id,P),w.consumerStreamMap.get(_).inboundVideoRtpId.push(A.id),this.processInboundConsumerVideoStats(_,de,P)}else if(S.mediaType==="audio"||S.kind==="audio"){const x=S,P=V({audioLevel:x.audioLevel,concealedSamples:x.concealedSamples,concealmentEvents:x.concealmentEvents,totalAudioEnergy:x.totalAudioEnergy,totalSamplesDuration:x.totalSamplesDuration,totalSamplesReceived:x.totalSamplesReceived,fecPacketsDiscarded:x.fecPacketsDiscarded||0,fecPacketsReceived:x.fecPacketsReceived||0,insertedSamplesForDeceleration:x.insertedSamplesForDeceleration||0,removedSamplesForAcceleration:x.removedSamplesForAcceleration||0,silentConcealedSamples:x.silentConcealedSamples||0,playoutId:x.playoutId},Ke);P.score=Rm({concealmentEvents:(P.concealmentEvents||0)-(((k=this.audioConsumerToStatsMap.get(_))==null?void 0:k.concealmentEvents)||0),packetsLost:(P.packetsLost||0)-(((E=this.audioConsumerToStatsMap.get(_))==null?void 0:E.packetsLost)||0),packetsReceived:(P.packetsReceived||0)-(((C=this.audioConsumerToStatsMap.get(_))==null?void 0:C.packetsReceived)||0),jitter:P.jitter||0}),ei.set(_,{score:+(P.score*10).toFixed(),packetsLostPercentage:Ic({packetsLost:(P.packetsLost||0)-(((b=this.audioConsumerToStatsMap.get(_))==null?void 0:b.packetsLost)||0),packetsReceived:(P.packetsReceived||0)-(((R=this.audioConsumerToStatsMap.get(_))==null?void 0:R.packetsReceived)||0)}),jitter:P.jitter||0,isScreenShare:this.screenShareConsumers.has(_),bitrate:((P.bytesReceived||0)-(((j=this.audioConsumerToStatsMap.get(_))==null?void 0:j.bytesReceived)||0))*8/7}),this.audioConsumerToStatsMap.set(_,P),w.inboundAudioRtp.set(A.id,P),w.consumerStreamMap.get(_).inboundAudioRtpId.push(A.id),this.processInboundConsumerAudioStats(_,de,P)}}else this.callStatsInstance.logger.error(`Callstats: Unknown Inbound-rtp. mediatype: ${S.mediaType} kind: ${S.kind}`);break}}}if(w.producerStreamMap.forEach((A,S)=>{var _,B,de,Ke,x,P,le,Gn,qn,pr,zo,Yo,Qo,Xo,Zo,ec,tc,ic,rc,nc,sc,ac,oc;if(A.outboundVideoRtpId.length>0){const ve=[];A.outboundVideoRtpId.forEach(Ip=>{ve.push(w.outboundVideoRtp.get(Ip))});const ne=this.getWorkingSimulcastVideoStats(ve);ne.score=Cm({frameWidth:ne.frameWidth||0,framesPerSecond:ne.framesPerSecond||0,jitter:((_=ne.remoteData)==null?void 0:_.jitter)||0,isScreenShare:this.screenShareProducers.has(S),packetsSent:(ne.packetsSent||0)-(((B=this.videoProducerToStatsMap.get(S))==null?void 0:B.packetsSent)||0),packetsLost:(((de=ne.remoteData)==null?void 0:de.packetsLost)||0)-(((x=(Ke=this.videoProducerToStatsMap.get(S))==null?void 0:Ke.remoteData)==null?void 0:x.packetsLost)||0),framesEncoded:(ne.framesEncoded||0)-(((P=this.videoProducerToStatsMap.get(S))==null?void 0:P.framesEncoded)||0)}),st.set(S,{score:+(ne.score*10).toFixed(),frameWidth:ne.frameWidth||0,frameHeight:ne.frameHeight||0,framesPerSecond:ne.framesPerSecond||0,jitter:((le=ne.remoteData)==null?void 0:le.jitter)||0,isScreenShare:this.screenShareProducers.has(S),packetsLostPercentage:_c({packetsSent:(ne.packetsSent||0)-(((Gn=this.videoProducerToStatsMap.get(S))==null?void 0:Gn.packetsSent)||0),packetsLost:(((qn=ne.remoteData)==null?void 0:qn.packetsLost)||0)-(((zo=(pr=this.videoProducerToStatsMap.get(S))==null?void 0:pr.remoteData)==null?void 0:zo.packetsLost)||0)}),bitrate:((ne.bytesSent||0)-(((Yo=this.videoProducerToStatsMap.get(S))==null?void 0:Yo.bytesSent)||0))*8/7,cpuLimitations:ne.qualityLimitationReason==="cpu",bandwidthLimitations:ne.qualityLimitationReason==="bandwidth"}),this.videoProducerToStatsMap.set(S,ne)}else if(A.outboundAudioRtpId.length>0){const ve=w.outboundAudioRtp.get(A.outboundAudioRtpId[0]);ve.score=Im({packetsSent:(ve.packetsSent||0)-(((Qo=this.audioProducerToStatsMap.get(S))==null?void 0:Qo.packetsSent)||0),packetsLost:(((Xo=ve.remoteData)==null?void 0:Xo.packetsLost)||0)-(((ec=(Zo=this.audioProducerToStatsMap.get(S))==null?void 0:Zo.remoteData)==null?void 0:ec.packetsLost)||0),jitter:((tc=ve.remoteData)==null?void 0:tc.jitter)||0}),st.set(S,{score:+(ve.score*10).toFixed(),bitrate:((ve.bytesSent||0)-(((ic=this.audioProducerToStatsMap.get(S))==null?void 0:ic.bytesSent)||0))*8/7,packetsLostPercentage:_c({packetsSent:(ve.packetsSent||0)-(((rc=this.audioProducerToStatsMap.get(S))==null?void 0:rc.packetsSent)||0),packetsLost:(((nc=ve.remoteData)==null?void 0:nc.packetsLost)||0)-(((ac=(sc=this.audioProducerToStatsMap.get(S))==null?void 0:sc.remoteData)==null?void 0:ac.packetsLost)||0)}),jitter:((oc=ve.remoteData)==null?void 0:oc.jitter)||0,isScreenShare:this.screenShareProducers.has(S)}),this.audioProducerToStatsMap.set(S,ve)}}),De.forEach(A=>{const S=ie.find(B=>B.id===A.localCandidateId?(A.localCandidateId=B.id,B):null),_=ae.find(B=>B.id===A.remoteCandidateId?(A.remoteCandidateId=B.id,B):null);S&&(A.localCandidateType=S.type,A.localCandidateAddress=gr(S.address),A.localCandidatePort=S.port,A.localCandidateProtocol=S.protocol,A.localCandidateUrl=S.url,A.localCandidateNetworkType=S.networkType,A.localCandidateRelatedAddress=gr(S.relatedAddress),A.localCandidateRelatedPort=S.relatedPort),_&&(A.remoteCandidateType=_.type,A.remoteCandidateAddress=gr(_.address),A.remoteCandidatePort=_.port,A.remoteCandidateProtocol=_.protocol,A.remoteCandidateUrl=_.url)}),w.candidatePair&&(w.transport?(w.transport.bytesReceived=w.candidatePair.bytesReceived,w.transport.bytesSent=w.candidatePair.bytesSent,w.transport.totalRoundTripTime=w.candidatePair.totalRoundTripTime,w.transport.availableOutgoingBitrate=w.candidatePair.availableOutgoingBitrate,w.transport.availableIncomingBitrate=w.candidatePair.availableIncomingBitrate,w.transport.roundTripTime=w.candidatePair.currentRoundTripTime):w.transport={bytesReceived:w.candidatePair.bytesReceived,bytesSent:w.candidatePair.bytesSent,totalRoundTripTime:w.candidatePair.totalRoundTripTime,availableOutgoingBitrate:w.candidatePair.availableOutgoingBitrate,availableIncomingBitrate:w.candidatePair.availableIncomingBitrate,roundTripTime:w.candidatePair.currentRoundTripTime}),w.transport&&(w.transport.candidatePairs=De),w.transport&&!w.transport.roundTripTime){let A=0,S=0;w.remoteInboundRtp.forEach((_,B)=>{_.roundTripTime&&_.roundTripTime>A&&(A=_.roundTripTime,S=_.totalRoundTripTime)}),w.transport.roundTripTime=A,w.transport.totalRoundTripTime=S}if(ei.size>0)try{this.observer.emit("consumer_score",ei)}catch(A){}if(st.size>0)try{this.observer.emit("producer_score",st)}catch(A){}return w}getProducerStatsFromReport(e){const i=[];try{e.producerStreamMap.forEach((r,n)=>{const s=this.producerMap.get(n),o=s.track.getSettings(),c=r.outboundVideoRtpId.map(l=>{const h=e.outboundVideoRtp.get(l);return h.frameHeight||(h.frameHeight=o.height,h.frameWidth=o.width,h.framesPerSecond=o.frameRate),h}),d={producerId:n,appData:s.appData,videoStats:c,audioStats:r.outboundAudioRtpId.map(l=>e.outboundAudioRtp.get(l))};i.push(d)})}catch(r){console.error("getProducersReport: ",r,e)}return i}getConsumerStatsFromParsedConsumerStats(e,i,r){let n;try{const{peerId:s,producerId:o,appData:c}=this.consumerPeerIdMap.get(r),d=i==null?void 0:i.inboundVideoRtpId.map(l=>{const h=this.consumerMap.get(r).track.getSettings(),p=e.inboundVideoRtp.get(l);return p.frameHeight||(p.frameHeight=h.height,p.frameWidth=h.width,p.framesPerSecond=h.frameRate),p});n={consumerId:r,peerId:s,producerId:o,appData:c,videoStats:d,audioStats:i==null?void 0:i.inboundAudioRtpId.map(l=>e.inboundAudioRtp.get(l))}}catch(s){console.error("getConsumerStatsFromParsedConsumerStats: ",s,e)}return n}getConsumerStatsFromReport(e){const i=[];try{e.consumerStreamMap.forEach((r,n)=>{i.push(this.getConsumerStatsFromParsedConsumerStats(e,r,n))})}catch(r){console.error("getConsumerStatsFromReport: ",r,e)}return i}}class OT extends Lm{}function Mc(t,e,i,r){if(t!=null&&t.logger&&t.logger.error("Callstats::handleError",{error:r}),typeof i=="function"&&r instanceof e)i.call(null,r,t);else throw r}function xm(t,e,i){const r=t.value;return t.value=function(...n){try{const s=r.apply(this,n);return s&&s instanceof Promise?s.catch(o=>{Mc(this,e,i,o)}):s}catch(s){Mc(this,e,i,s)}return null},t}const X=(t,e)=>(i,r,n)=>{const s=n.value;return n.value=function(...o){try{const c=s.apply(this,o);return c&&c instanceof Promise?c.catch(d=>{Mc(this,t,e,d)}):c}catch(c){Mc(this,t,e,c)}return null},n},NT=(t,e)=>(i,r,n)=>{if(n)return xm(n,t,e);for(const s of Reflect.ownKeys(i.prototype).filter(o=>o!=="constructor")){const o=Object.getOwnPropertyDescriptor(i.prototype,s);o.value instanceof Function&&Object.defineProperty(i.prototype,s,xm(o,t,e))}};var Y=globalThis&&globalThis.__decorate||function(t,e,i,r){var n=arguments.length,s=n<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,i):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(t,e,i,r);else for(var c=t.length-1;c>=0;c--)(o=t[c])&&(s=(n<3?o(s):n>3?o(e,i,s):o(e,i))||s);return n>3&&s&&Object.defineProperty(e,i,s),s};const Q=console;let K=class extends ut{constructor(t="https://api.testingv3.dyte.in",e="Blink",i=da.PROD,r,n,s,o){switch(super(),m(this,"observer"),m(this,"eventHandler"),m(this,"measurements"),m(this,"producingTransport"),m(this,"consumingTransport"),m(this,"producers",new Map),m(this,"consumers",new Map),m(this,"iceServers"),m(this,"connectionInfoPromise"),m(this,"pingStatsTimeout"),m(this,"logger"),m(this,"env"),m(this,"apiHostnames"),m(this,"peerId"),m(this,"consumerSharedMediaStatesMap",new Map),m(this,"currentUserMediaStates",{}),this.env=i,this.apiHostnames=o,this.logger=n,this.peerId=s,this.eventHandler=new yT({logger:n,peerId:s,apiHostnames:o}),this.logger.debug("callStats::engineName: ",{engineName:e}),e){case"Blink":this.measurements=new DT;break;case"Gecko":this.measurements=new Lm;break;case"WebKit":this.measurements=new OT;break;default:throw Error(`Unknown engineName! ${e}`)}this.measurements.callStatsInstance=this,this.registerProducer=this.registerProducer.bind(this),this.registerConsumer=this.registerConsumer.bind(this),this.observer=new ut,this.measurements.observer.on("consumer_score",c=>{n.debug(`callStats::consumer_score ${[...c.entries()]}`),this.eventHandler.emit("consumer_score",c)}),this.measurements.observer.on("producer_score",c=>{n.debug(`callStats::producer_score ${[...c.entries()]}`),this.eventHandler.emit("producer_score",c)})}registerIceServers(t){this.iceServers=t}registerConsumer(t){var e;this.consumerSharedMediaStatesMap.has(t.id)||this.consumerSharedMediaStatesMap.set(t.id,{}),this.consumers.set(t.id,t),this.measurements.registerConsumer(t),this.logger.debug("callStats::registerConsumer",{consumerId:t.id,consumerkind:t.kind,isScreenShare:!!((e=t.appData)!=null&&e.screenShare)}),t.on("close",this.deRegisterConsumer.bind(this,t))}registerProducer(t){var e;this.producers.set(t.id,t),this.measurements.registerProducer(t),this.logger.debug("callStats::registerProducer",{producerId:t.id,producerKind:t.kind,isScreenShare:!!((e=t.appData)!=null&&e.screenShare)}),t.on("close",this.deRegisterProducer.bind(this,t))}sendConsumerSharedMediaStateEvent(t,e){this.consumerSharedMediaStatesMap.has(t)||this.consumerSharedMediaStatesMap.set(t,{});const i=this.consumerSharedMediaStatesMap.get(t);this.consumerSharedMediaStatesMap.set(t,Object.assign(i,e))}registerProducingTransport(t){var e;this.producingTransport=t,t.on("close",this.disconnectProducingTransport.bind(this,t)),t.on("disconnect",this.disconnectProducingTransport.bind(this,t)),Array.from(((e=t._producers)==null?void 0:e.values())||[]).forEach(i=>{this.registerProducer(i)}),t.on("newproducer",this.registerProducer)}registerConsumingTransport(t){var e;this.consumingTransport=t,t.on("close",this.disconnectConsumingTransport.bind(this,t)),t.on("disconnect",this.disconnectConsumingTransport.bind(this,t)),Array.from(((e=t._consumers)==null?void 0:e.values())||[]).forEach(i=>{this.registerConsumer(i)}),t.on("newconsumer",this.registerConsumer)}deRegisterConsumer(t){this.consumers.delete(t.id)}deRegisterProducer(t){var e;this.producers.delete(t.id),this.logger.debug("callStats::deRegisterProducer",{producerId:t.id,producerKind:t.kind,isScreenShare:!!((e=t.appData)!=null&&e.screenShare)})}disconnectConsumingTransport(){this.consumingTransport=void 0}disconnectProducingTransport(){this.producingTransport=void 0}callEvent(t){this.eventHandler.callEvent(t)}sendPreCallTestBeginEvent(t=!1,e){this.connectionInfoPromise=this.measurements.getNetworkInfo(this.iceServers,t),this.eventHandler.callEvent({event:L.PRECALL_TEST_BEGIN,timestamp:e}),this.connectionInfoPromise&&this.connectionInfoPromise.then(i=>{this.eventHandler.callEvent({event:L.PRECALL_TEST_COMPLETE,metaData:{connectionInfo:i},timestamp:e})})}sendScreenShareToggleEvent(t,e=null,i){this.currentUserMediaStates.screen=t,this.eventHandler.callEvent({event:t?L.SCREENSHARE_STARTED:L.SCREENSHARE_STOPPED,metaData:{ssrc:e},timestamp:i})}sendScreenShareRequestedEvent(t){this.eventHandler.callEvent({event:L.SCREENSHARE_START_REQUESTED,timestamp:t})}sendActiveSpeakerEvent(t,e){this.eventHandler.callEvent({event:L.DOMINANT_SPEAKER,metaData:{peerId:t},timestamp:e})}devices(t,e,i){this.eventHandler.callEvent({event:t===ti.AUDIO&&L.AUDIO_DEVICES_UPDATES||t===ti.VIDEO&&L.VIDEO_DEVICES_UPDATES||t===ti.SPEAKER&&L.SPEAKER_DEVICES_UPDATES,metaData:{deviceList:e},timestamp:i})}selectedDevice(t,e,i){this.eventHandler.callEvent({event:t===ti.AUDIO&&L.SELECTED_MICROHPONE_UPDATE||t===ti.VIDEO&&L.SELECTED_CAMERA_UPDATE||t===ti.SPEAKER&&L.SELECTED_SPEAKER_UPDATE,metaData:{device:e},timestamp:i})}mediaPermission(t,e,i){this.eventHandler.callEvent({event:L.MEDIA_PERMISSION,metaData:{deviceType:t,permission:e},timestamp:i})}mediaPlaybackFailed(t,e){this.eventHandler.callEvent({event:t===ti.AUDIO&&L.AUDIO_PLAY_FAILED||t===ti.VIDEO&&L.VIDEO_PLAY_FAILED,metaData:{deviceType:t},timestamp:e})}mediaTrackMuted(t,e){this.eventHandler.callEvent({event:t===ti.AUDIO&&L.AUDIO_TRACK_MUTED||t===ti.VIDEO&&L.VIDEO_TRACK_MUTED,metaData:{deviceType:t},timestamp:e})}tabChanged(t,e){this.eventHandler.callEvent({event:L.TAB_CHANGE,metaData:{isMeetingsTabActive:t},timestamp:e})}browserBackgrounded(t){this.eventHandler.callEvent({event:L.BROWSER_BACKGROUNDED,timestamp:t})}browserForegrounded(t){this.eventHandler.callEvent({event:L.BROWSER_FOREGROUNDED,timestamp:t})}legacySwitch(t,e){this.eventHandler.callEvent({event:L.LEGACY_SWITCH,metadata:{on:t},timestamp:e})}getPreCallTestResults(){return u(this,null,function*(){return this.connectionInfoPromise})}sendCallJoinBeginEvent(t,e){t=H(V({},t),{meetingEnv:this.env}),t.deviceInfo=H(V({},t.deviceInfo),{userAgent:navigator.userAgent,cpus:navigator.hardwareConcurrency,memory:navigator.deviceMemory}),this.eventHandler.callEvent({event:L.CALL_JOIN_BEGIN,metaData:{peerMetaData:t},timestamp:e})}sendNetworkQualityTestBeginEvent(t,e){this.eventHandler.callEvent({event:L.NET_QUALITY_TEST_BEGIN,timestamp:e}),new Promise((i,r)=>u(this,null,function*(){const n=[];try{for(const s of t)try{if(s.iceServers&&s.iceServers.length>0){const o=yield this.measurements.getNetworkQuality(s.iceServers);n.push(H(V({},s),{networkResults:o}))}}catch(o){console.warn("Error handling ",o)}i({regionData:n})}catch(s){console.warn("Error in callstats, ",s),r(s)}})).then(i=>{this.eventHandler.callEvent({event:L.NET_QUALITY_TEST_END,timestamp:e,metaData:i})})}sendWebSocketConnectedEvent(t){this.eventHandler.callEvent({event:L.WEBSOCKET_CONNECTED,timestamp:t})}sendTransportConnectedEvent(t){this.eventHandler.callEvent({event:L.TRANSPORT_CONNECTED,timestamp:t})}sendAudioToggleEvent(t,e){this.currentUserMediaStates.audio=t;let i;t?i=L.AUDIO_ON:i=L.AUDIO_OFF,this.eventHandler.callEvent({event:i,timestamp:e})}sendVideoToggleEvent(t,e){this.currentUserMediaStates.video=t;let i;t?i=L.VIDEO_ON:i=L.VIDEO_OFF,this.eventHandler.callEvent({event:i,timestamp:e})}sendParticipantRoleToggleEvent(t,e){this.eventHandler.callEvent({event:L.PARTICIPANT_ROLE,timestamp:e,metaData:t})}startPingStats(t=7e3){this.sendPingStatsEvent(!1,new Date),this.pingStatsTimeout=setInterval(this.sendPingStatsEvent.bind(this),t)}stopPingStats(){clearInterval(this.pingStatsTimeout)}sendPingStatsEvent(t=!0,e){return u(this,null,function*(){let i,r;if(this.producingTransport&&(i=yield this.measurements.getProcessedStats(this.producingTransport,!1,!0),!i||!(i!=null&&i.producerReport))){this.logger.debug("callStats::sendPingStatsEvent::staleProducingTransport",{disclaimer:"Stale producer? Regenerating Stream Maps!"});const s=yield this.measurements.getProducersReport([...this.producers.values()]);i&&s?i.producerReport=s:(i=yield this.measurements.getProcessedStats(this.producingTransport,!1,!0),(!i||!(i!=null&&i.producerReport))&&this.logger.debug("callStats::sendPingStatsEvent::noProducingTransportReport",{disclaimer:"Stream maps invalid despite regenerating!"}))}if(this.consumingTransport&&(r=yield this.measurements.getProcessedStats(this.consumingTransport,!0,!1),!r||!r.consumerReport)){this.logger.debug("callStats::sendPingStatsEvent::staleConsumingTransport",{disclaimer:"Stale consumer? Regenerating Stream Maps!"});const s=yield this.measurements.getConsumersReport([...this.consumers.values()]);r&&s?r.consumerReport=s:(r=yield this.measurements.getProcessedStats(this.consumingTransport,!0,!1),(!r||!r.consumerReport)&&this.logger.debug("callStats::sendPingStatsEvent::noConsumingTransportReport",{disclaimer:"Stream maps invalid despite regenerating!"}))}const n={producingTransportStats:i?i==null?void 0:i.transportReport:void 0,consumingTransportStats:r?r==null?void 0:r.transportReport:void 0,producerStats:[].concat((i==null?void 0:i.producerReport)||[]).concat((r==null?void 0:r.producerReport)||[]),consumerStats:[].concat((r==null?void 0:r.consumerReport)||[]).concat((i==null?void 0:i.consumerReport)||[])};if(t&&n.producerStats.length===0&&n.consumerStats.length===0){yield this.eventHandler.flush();return}this.eventHandler.callEvent({event:L.PING_STAT,metaData:n,timestamp:e})})}sendIVSPlayerRebufferEvent(t){this.eventHandler.callEvent({event:L.IVS_PLAYER_REBUFFERING,timestamp:t})}sendIVSPlayerAudioBlockEvent(t){this.eventHandler.callEvent({event:L.IVS_PLAYER_AUDIO_BLOCKED,timestamp:t})}sendIVSPlayerPlaybackBlockedEvent(t){this.eventHandler.callEvent({event:L.IVS_PLAYER_PLAYBACK_BLOCKED,timestamp:t})}sendIVSPlayerNetworkUnavailableEvent(t){this.eventHandler.callEvent({event:L.IVS_PLAYER_NETWORK_UNAVAILABLE,timestamp:t})}sendIVSPlayerInitializedEvent(t){this.eventHandler.callEvent({event:L.IVS_PLAYER_INITIALIZED,timestamp:t})}sendIVSPlayerWorkerErrorEvent(t){this.eventHandler.callEvent({event:L.IVS_PLAYER_WORKER_ERROR,timestamp:t})}sendIVSPlayerErrorEvent(t,e){this.eventHandler.callEvent({event:L.IVS_PLAYER_ERROR,timestamp:e,metaData:t})}sendIVSPlayerRecoverableErrorEvent(t,e){this.eventHandler.callEvent({event:L.IVS_PLAYER_RECOVERABLE_ERROR,timestamp:e,metaData:t})}sendIVSPlayerAnalyticsEvent(t,e){this.eventHandler.callEvent({event:L.IVS_PLAYER_ANALYTICS_EVENT,timestamp:e,metaData:t})}sendIVSPlayerPlaybackRateChangedEvent(t,e){this.eventHandler.callEvent({event:L.IVS_PLAYER_PLAYBACK_RATE_CHANGED,timestamp:e,metaData:{updatedPlaybackRate:t}})}sendIVSPlayerQualityChanged(t,e){this.eventHandler.callEvent({event:L.IVS_PLAYER_QUALITY_CHANGED,timestamp:e,metaData:t})}sendPlayerLiveLatency(t,e){this.eventHandler.callEvent({event:L.LIVESTREAM_LATENCY,timestamp:e,metaData:{latency:t}})}sendDisconnectEvent(t){this.eventHandler.callEvent({event:L.DISCONNECT,timestamp:t})}sendReconnectEvent(t){this.eventHandler.callEvent({event:L.RECONNECT_ATTEMPT,timestamp:t})}expectedVideoResolution(t,e,i){this.eventHandler.callEvent({event:L.EXPECTED_VIDEO_RESOLUTION,timestamp:i,metaData:{frameWidth:t,frameHeight:e}})}expectedScreenshareResolution(t,e,i){this.eventHandler.callEvent({event:L.EXPECTED_SCREENSHARE_RESOLUTION,timestamp:i,metaData:{frameWidth:t,frameHeight:e}})}};Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"registerIceServers",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"registerConsumer",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"registerProducer",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendConsumerSharedMediaStateEvent",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"registerProducingTransport",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"registerConsumingTransport",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"deRegisterConsumer",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"deRegisterProducer",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"disconnectConsumingTransport",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"disconnectProducingTransport",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendPreCallTestBeginEvent",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendScreenShareToggleEvent",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendScreenShareRequestedEvent",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendActiveSpeakerEvent",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"devices",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"selectedDevice",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"mediaPermission",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"mediaPlaybackFailed",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"mediaTrackMuted",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"tabChanged",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"browserBackgrounded",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"browserForegrounded",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"legacySwitch",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"getPreCallTestResults",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendCallJoinBeginEvent",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendNetworkQualityTestBeginEvent",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendWebSocketConnectedEvent",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendTransportConnectedEvent",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendAudioToggleEvent",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendVideoToggleEvent",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendParticipantRoleToggleEvent",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"startPingStats",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"stopPingStats",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendPingStatsEvent",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendIVSPlayerRebufferEvent",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendIVSPlayerAudioBlockEvent",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendIVSPlayerPlaybackBlockedEvent",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendIVSPlayerNetworkUnavailableEvent",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendIVSPlayerInitializedEvent",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendIVSPlayerWorkerErrorEvent",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendIVSPlayerErrorEvent",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendIVSPlayerRecoverableErrorEvent",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendIVSPlayerAnalyticsEvent",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendIVSPlayerPlaybackRateChangedEvent",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendIVSPlayerQualityChanged",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendPlayerLiveLatency",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendDisconnectEvent",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendReconnectEvent",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"expectedVideoResolution",null),Y([X(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"expectedScreenshareResolution",null),K=Y([NT(TypeError,(t,e)=>Q.error(e,t))],K);const VT=K;class Um extends ut{constructor(){super(...arguments),m(this,"stats"),m(this,"peerId"),m(this,"backend"),m(this,"iceServers"),m(this,"initialized",!1),m(this,"stalled",!1),m(this,"ipInformation"),m(this,"logger")}initialize(e){return u(this,arguments,function*({peerId:i,engineName:r,env:n=da.PROD,iceServers:s,apiBase:o="https://api.cluster.dyte.in",flags:c,logger:d=console,apiHostnames:l,skipConnectivityChecks:h=!1}){var p,v,k;try{this.peerId=i,this.logger=d,this.ipInformation=yield zl.getIPDetails({peerId:i,apiHostnames:l,logger:d}),this.backend=new VT(o,r,n,c,d,i,l),this.iceServers=s,(p=this.backend)==null||p.registerIceServers(this.iceServers),this.initialized=!0,(k=(v=this.backend)==null?void 0:v.eventHandler)==null||k.emit("initialized",this.ipInformation),this.emit("initialized",this.ipInformation),this.startPreCallTest(h)}catch(E){this.logger.error("callStats::CallStatsIntegration: ",{error:E}),this.stallCallStats()}})}configureSendTransport(e){this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.registerProducingTransport(e)})}configureRecvTransport(e){this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.registerConsumingTransport(e)})}candidateRegionalNetworkQualityTest(e){return u(this,null,function*(){const i=new Date;this.onSafeInitialization(()=>{var r;try{(r=this.backend)==null||r.sendNetworkQualityTestBeginEvent(e,i)}catch(n){this.logger.error("callStats::sendNetworkQualityTestBeginEvent",{error:{reason:n.reason}})}})})}roomJoined(e){return u(this,null,function*(){const i=new Date;this.onSafeInitialization(()=>{var r,n;(r=this.backend)==null||r.sendCallJoinBeginEvent(e,i),this.backend,(n=this.backend)==null||n.startPingStats()})})}audioOff(){const e=new Date;this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.sendAudioToggleEvent(!1,e)})}audioOn(){const e=new Date;this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.sendAudioToggleEvent(!0,e)})}videoOff(){const e=new Date;this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.sendVideoToggleEvent(!1,e)})}videoOn(){const e=new Date;this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.sendVideoToggleEvent(!0,e)})}callEnded(){const e=new Date;this.onSafeInitialization(()=>{var i,r;(i=this.backend)==null||i.stopPingStats(),(r=this.backend)==null||r.sendDisconnectEvent(e)})}screenShareStart(e){const i=new Date;this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.sendScreenShareToggleEvent(!0,e,i)})}consumerSharedMediaState(e,i){this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.sendConsumerSharedMediaStateEvent(e,i)})}screenShareStop(e){const i=new Date;this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.sendScreenShareToggleEvent(!1,e,i)})}screenShareRequested(){const e=new Date;this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.sendScreenShareRequestedEvent(e)})}activeSpeaker(e){if(e!==this.peerId)return;const i=new Date;this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.sendActiveSpeakerEvent(e,i)})}devices(e,i){const r=new Date;this.onSafeInitialization(()=>{var n;(n=this.backend)==null||n.devices(e,i,r)})}selectedDevice(e,i){const r=new Date;this.onSafeInitialization(()=>{var n;(n=this.backend)==null||n.selectedDevice(e,i,r)})}mediaPermission(e,i){const r=new Date;this.onSafeInitialization(()=>{var n;(n=this.backend)==null||n.mediaPermission(e,i,r)})}mediaPlaybackFailed(e){const i=new Date;this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.mediaPlaybackFailed(e,i)})}mediaTrackMuted(e){const i=new Date;this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.mediaTrackMuted(e,i)})}tabChanged(e=!1){const i=new Date;this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.tabChanged(e,i)})}browserBackgrounded(){const e=new Date;this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.browserBackgrounded(e)})}browserForegrounded(){const e=new Date;this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.browserForegrounded(e)})}legacySwitch(e){const i=new Date;this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.legacySwitch(e,i)})}startPreCallTest(e=!1){return u(this,null,function*(){const i=new Date;this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.sendPreCallTestBeginEvent(e,i)})})}onPreCallTestResults(e){return this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.eventHandler.once("precall_end",e)}),e}onReceivingConsumerAudioStatus(e){this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.eventHandler.on("consumer_audio_status",e)})}onReceivingConsumerVideoStatus(e){this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.eventHandler.on("consumer_video_status",e)})}onReceivingProducerAudioStatus(e){this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.eventHandler.on("producer_audio_status",e)})}onReceivingProducerVideoStatus(e){this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.eventHandler.on("producer_video_status",e)})}onReceivingProducingTransportStatus(e){this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.eventHandler.on("producing_transport_status",e)})}onReceivingConsumingTransportStatus(e){this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.eventHandler.on("consuming_transport_status",e)})}onProducerScore(e){this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.eventHandler.on("producer_score",e)})}onConsumerScore(e){this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.eventHandler.on("consumer_score",e)})}onSafeInitialization(e){if(this.initialized)e(this.ipInformation,!1);else if(!this.stalled){const i=r=>{e(r,!0)};return this.once("initialized",i),i}return()=>{}}removeInitializationListener(e){this.removeListener("initialized",e)}stallCallStats(){this.stalled=!0,this.removeAllListeners("initialized")}ivsPlayerEvent(e,i){const r=new Date;this.onSafeInitialization(()=>{var n,s,o,c,d,l,h,p,v,k,E;switch(e){case"PlayerRebuffering":(n=this.backend)==null||n.sendIVSPlayerRebufferEvent(r);break;case"PlayerAudioBlocked":(s=this.backend)==null||s.sendIVSPlayerAudioBlockEvent(r);break;case"PlayerPlaybackBlocked":(o=this.backend)==null||o.sendIVSPlayerPlaybackBlockedEvent(r);break;case"PlayerNetworkUnavailable":(c=this.backend)==null||c.sendIVSPlayerNetworkUnavailableEvent(r);break;case"PlayerInitialized":(d=this.backend)==null||d.sendIVSPlayerInitializedEvent(r);break;case"PlayerWorkerError":(l=this.backend)==null||l.sendIVSPlayerWorkerErrorEvent(r);break;case"PlayerError":(h=this.backend)==null||h.sendIVSPlayerErrorEvent(i,r);break;case"PlayerRecoverableError":(p=this.backend)==null||p.sendIVSPlayerRecoverableErrorEvent(i,r);break;case"PlayerAnalyticsEvent":(v=this.backend)==null||v.sendIVSPlayerAnalyticsEvent(i,r);break;case"PlayerPlaybackRateChanged":(k=this.backend)==null||k.sendIVSPlayerPlaybackRateChangedEvent(i,r);break;case"PlayerQualityChanged":(E=this.backend)==null||E.sendIVSPlayerQualityChanged(i,r);break}})}livestreamLatency(e){const i=new Date;this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.sendPlayerLiveLatency(e,i)})}expectedVideoResolution(e,i){const r=new Date;this.onSafeInitialization(()=>{var n;(n=this.backend)==null||n.expectedVideoResolution(e,i,r)})}expectedScreenshareResolution(e,i){const r=new Date;this.onSafeInitialization(()=>{var n;(n=this.backend)==null||n.expectedScreenshareResolution(e,i,r)})}}new Um().setMaxListeners(30);function LT(){this.__data__=[],this.size=0}function la(t,e){return t===e||t!==t&&e!==e}function Ac(t,e){for(var i=t.length;i--;)if(la(t[i][0],e))return i;return-1}var xT=Array.prototype,UT=xT.splice;function FT(t){var e=this.__data__,i=Ac(e,t);if(i<0)return!1;var r=e.length-1;return i==r?e.pop():UT.call(e,i,1),--this.size,!0}function BT(t){var e=this.__data__,i=Ac(e,t);return i<0?void 0:e[i][1]}function WT(t){return Ac(this.__data__,t)>-1}function jT(t,e){var i=this.__data__,r=Ac(i,t);return r<0?(++this.size,i.push([t,e])):i[r][1]=e,this}function Ji(t){var e=-1,i=t==null?0:t.length;for(this.clear();++e<i;){var r=t[e];this.set(r[0],r[1])}}Ji.prototype.clear=LT,Ji.prototype.delete=FT,Ji.prototype.get=BT,Ji.prototype.has=WT,Ji.prototype.set=jT;function HT(){this.__data__=new Ji,this.size=0}function GT(t){var e=this.__data__,i=e.delete(t);return this.size=e.size,i}function qT(t){return this.__data__.get(t)}function $T(t){return this.__data__.has(t)}var JT=typeof global=="object"&&global&&global.Object===Object&&global;const Fm=JT;var KT=typeof self=="object"&&self&&self.Object===Object&&self,zT=Fm||KT||Function("return this")();const ui=zT;var YT=ui.Symbol;const fr=YT;var Bm=Object.prototype,QT=Bm.hasOwnProperty,XT=Bm.toString,ua=fr?fr.toStringTag:void 0;function ZT(t){var e=QT.call(t,ua),i=t[ua];try{t[ua]=void 0;var r=!0}catch(s){}var n=XT.call(t);return r&&(e?t[ua]=i:delete t[ua]),n}var ek=Object.prototype,tk=ek.toString;function ik(t){return tk.call(t)}var rk="[object Null]",nk="[object Undefined]",Wm=fr?fr.toStringTag:void 0;function Zr(t){return t==null?t===void 0?nk:rk:Wm&&Wm in Object(t)?ZT(t):ik(t)}function hi(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}var sk="[object AsyncFunction]",ak="[object Function]",ok="[object GeneratorFunction]",ck="[object Proxy]";function Yl(t){if(!hi(t))return!1;var e=Zr(t);return e==ak||e==ok||e==sk||e==ck}var dk=ui["__core-js_shared__"];const Ql=dk;var jm=function(){var t=/[^.]+$/.exec(Ql&&Ql.keys&&Ql.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();function lk(t){return!!jm&&jm in t}var uk=Function.prototype,hk=uk.toString;function en(t){if(t!=null){try{return hk.call(t)}catch(e){}try{return t+""}catch(e){}}return""}var pk=/[\\^$.*+?()[\]{}|]/g,mk=/^\[object .+?Constructor\]$/,gk=Function.prototype,fk=Object.prototype,vk=gk.toString,yk=fk.hasOwnProperty,Sk=RegExp("^"+vk.call(yk).replace(pk,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Tk(t){if(!hi(t)||lk(t))return!1;var e=Yl(t)?Sk:mk;return e.test(en(t))}function kk(t,e){return t==null?void 0:t[e]}function tn(t,e){var i=kk(t,e);return Tk(i)?i:void 0}var Ek=tn(ui,"Map");const ha=Ek;var bk=tn(Object,"create");const pa=bk;function wk(){this.__data__=pa?pa(null):{},this.size=0}function _k(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}var Ik="__lodash_hash_undefined__",Ck=Object.prototype,Pk=Ck.hasOwnProperty;function Rk(t){var e=this.__data__;if(pa){var i=e[t];return i===Ik?void 0:i}return Pk.call(e,t)?e[t]:void 0}var Mk=Object.prototype,Ak=Mk.hasOwnProperty;function Dk(t){var e=this.__data__;return pa?e[t]!==void 0:Ak.call(e,t)}var Ok="__lodash_hash_undefined__";function Nk(t,e){var i=this.__data__;return this.size+=this.has(t)?0:1,i[t]=pa&&e===void 0?Ok:e,this}function rn(t){var e=-1,i=t==null?0:t.length;for(this.clear();++e<i;){var r=t[e];this.set(r[0],r[1])}}rn.prototype.clear=wk,rn.prototype.delete=_k,rn.prototype.get=Rk,rn.prototype.has=Dk,rn.prototype.set=Nk;function Vk(){this.size=0,this.__data__={hash:new rn,map:new(ha||Ji),string:new rn}}function Lk(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}function Dc(t,e){var i=t.__data__;return Lk(e)?i[typeof e=="string"?"string":"hash"]:i.map}function xk(t){var e=Dc(this,t).delete(t);return this.size-=e?1:0,e}function Uk(t){return Dc(this,t).get(t)}function Fk(t){return Dc(this,t).has(t)}function Bk(t,e){var i=Dc(this,t),r=i.size;return i.set(t,e),this.size+=i.size==r?0:1,this}function nn(t){var e=-1,i=t==null?0:t.length;for(this.clear();++e<i;){var r=t[e];this.set(r[0],r[1])}}nn.prototype.clear=Vk,nn.prototype.delete=xk,nn.prototype.get=Uk,nn.prototype.has=Fk,nn.prototype.set=Bk;var Wk=200;function jk(t,e){var i=this.__data__;if(i instanceof Ji){var r=i.__data__;if(!ha||r.length<Wk-1)return r.push([t,e]),this.size=++i.size,this;i=this.__data__=new nn(r)}return i.set(t,e),this.size=i.size,this}function Ai(t){var e=this.__data__=new Ji(t);this.size=e.size}Ai.prototype.clear=HT,Ai.prototype.delete=GT,Ai.prototype.get=qT,Ai.prototype.has=$T,Ai.prototype.set=jk;function Hk(t,e){for(var i=-1,r=t==null?0:t.length;++i<r&&e(t[i],i,t)!==!1;);return t}var Gk=function(){try{var t=tn(Object,"defineProperty");return t({},"",{}),t}catch(e){}}();const Oc=Gk;function Xl(t,e,i){e=="__proto__"&&Oc?Oc(t,e,{configurable:!0,enumerable:!0,value:i,writable:!0}):t[e]=i}var qk=Object.prototype,$k=qk.hasOwnProperty;function Hm(t,e,i){var r=t[e];(!($k.call(t,e)&&la(r,i))||i===void 0&&!(e in t))&&Xl(t,e,i)}function ma(t,e,i,r){var n=!i;i||(i={});for(var s=-1,o=e.length;++s<o;){var c=e[s],d=r?r(i[c],t[c],c,i,t):void 0;d===void 0&&(d=t[c]),n?Xl(i,c,d):Hm(i,c,d)}return i}function Jk(t,e){for(var i=-1,r=Array(t);++i<t;)r[i]=e(i);return r}function Di(t){return t!=null&&typeof t=="object"}var Kk="[object Arguments]";function Gm(t){return Di(t)&&Zr(t)==Kk}var qm=Object.prototype,zk=qm.hasOwnProperty,Yk=qm.propertyIsEnumerable,Qk=Gm(function(){return arguments}())?Gm:function(t){return Di(t)&&zk.call(t,"callee")&&!Yk.call(t,"callee")};const Nc=Qk;var Xk=Array.isArray;const vr=Xk;function Zk(){return!1}var $m=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Jm=$m&&typeof module=="object"&&module&&!module.nodeType&&module,eE=Jm&&Jm.exports===$m,Km=eE?ui.Buffer:void 0,tE=Km?Km.isBuffer:void 0,iE=tE||Zk;const Jn=iE;var rE=9007199254740991,nE=/^(?:0|[1-9]\d*)$/;function zm(t,e){var i=typeof t;return e=e==null?rE:e,!!e&&(i=="number"||i!="symbol"&&nE.test(t))&&t>-1&&t%1==0&&t<e}var sE=9007199254740991;function Ym(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=sE}var aE="[object Arguments]",oE="[object Array]",cE="[object Boolean]",dE="[object Date]",lE="[object Error]",uE="[object Function]",hE="[object Map]",pE="[object Number]",mE="[object Object]",gE="[object RegExp]",fE="[object Set]",vE="[object String]",yE="[object WeakMap]",SE="[object ArrayBuffer]",TE="[object DataView]",kE="[object Float32Array]",EE="[object Float64Array]",bE="[object Int8Array]",wE="[object Int16Array]",_E="[object Int32Array]",IE="[object Uint8Array]",CE="[object Uint8ClampedArray]",PE="[object Uint16Array]",RE="[object Uint32Array]",be={};be[kE]=be[EE]=be[bE]=be[wE]=be[_E]=be[IE]=be[CE]=be[PE]=be[RE]=!0,be[aE]=be[oE]=be[SE]=be[cE]=be[TE]=be[dE]=be[lE]=be[uE]=be[hE]=be[pE]=be[mE]=be[gE]=be[fE]=be[vE]=be[yE]=!1;function ME(t){return Di(t)&&Ym(t.length)&&!!be[Zr(t)]}function Zl(t){return function(e){return t(e)}}var Qm=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ga=Qm&&typeof module=="object"&&module&&!module.nodeType&&module,AE=ga&&ga.exports===Qm,eu=AE&&Fm.process,DE=function(){try{var t=ga&&ga.require&&ga.require("util").types;return t||eu&&eu.binding&&eu.binding("util")}catch(e){}}();const Kn=DE;var Xm=Kn&&Kn.isTypedArray,OE=Xm?Zl(Xm):ME;const Vc=OE;var NE=Object.prototype,VE=NE.hasOwnProperty;function Zm(t,e){var i=vr(t),r=!i&&Nc(t),n=!i&&!r&&Jn(t),s=!i&&!r&&!n&&Vc(t),o=i||r||n||s,c=o?Jk(t.length,String):[],d=c.length;for(var l in t)(e||VE.call(t,l))&&!(o&&(l=="length"||n&&(l=="offset"||l=="parent")||s&&(l=="buffer"||l=="byteLength"||l=="byteOffset")||zm(l,d)))&&c.push(l);return c}var LE=Object.prototype;function Lc(t){var e=t&&t.constructor,i=typeof e=="function"&&e.prototype||LE;return t===i}function eg(t,e){return function(i){return t(e(i))}}var xE=eg(Object.keys,Object);const UE=xE;var FE=Object.prototype,BE=FE.hasOwnProperty;function tg(t){if(!Lc(t))return UE(t);var e=[];for(var i in Object(t))BE.call(t,i)&&i!="constructor"&&e.push(i);return e}function fa(t){return t!=null&&Ym(t.length)&&!Yl(t)}function tu(t){return fa(t)?Zm(t):tg(t)}function WE(t,e){return t&&ma(e,tu(e),t)}function jE(t){var e=[];if(t!=null)for(var i in Object(t))e.push(i);return e}var HE=Object.prototype,GE=HE.hasOwnProperty;function qE(t){if(!hi(t))return jE(t);var e=Lc(t),i=[];for(var r in t)r=="constructor"&&(e||!GE.call(t,r))||i.push(r);return i}function va(t){return fa(t)?Zm(t,!0):qE(t)}function $E(t,e){return t&&ma(e,va(e),t)}var ig=typeof exports=="object"&&exports&&!exports.nodeType&&exports,rg=ig&&typeof module=="object"&&module&&!module.nodeType&&module,JE=rg&&rg.exports===ig,ng=JE?ui.Buffer:void 0,sg=ng?ng.allocUnsafe:void 0;function ag(t,e){if(e)return t.slice();var i=t.length,r=sg?sg(i):new t.constructor(i);return t.copy(r),r}function og(t,e){var i=-1,r=t.length;for(e||(e=Array(r));++i<r;)e[i]=t[i];return e}function KE(t,e){for(var i=-1,r=t==null?0:t.length,n=0,s=[];++i<r;){var o=t[i];e(o,i,t)&&(s[n++]=o)}return s}function cg(){return[]}var zE=Object.prototype,YE=zE.propertyIsEnumerable,dg=Object.getOwnPropertySymbols,QE=dg?function(t){return t==null?[]:(t=Object(t),KE(dg(t),function(e){return YE.call(t,e)}))}:cg;const iu=QE;function XE(t,e){return ma(t,iu(t),e)}function lg(t,e){for(var i=-1,r=e.length,n=t.length;++i<r;)t[n+i]=e[i];return t}var ZE=eg(Object.getPrototypeOf,Object);const ru=ZE;var e0=Object.getOwnPropertySymbols,t0=e0?function(t){for(var e=[];t;)lg(e,iu(t)),t=ru(t);return e}:cg;const ug=t0;function i0(t,e){return ma(t,ug(t),e)}function hg(t,e,i){var r=e(t);return vr(t)?r:lg(r,i(t))}function nu(t){return hg(t,tu,iu)}function r0(t){return hg(t,va,ug)}var n0=tn(ui,"DataView");const su=n0;var s0=tn(ui,"Promise");const au=s0;var a0=tn(ui,"Set");const ou=a0;var o0=tn(ui,"WeakMap");const cu=o0;var pg="[object Map]",c0="[object Object]",mg="[object Promise]",gg="[object Set]",fg="[object WeakMap]",vg="[object DataView]",d0=en(su),l0=en(ha),u0=en(au),h0=en(ou),p0=en(cu),sn=Zr;(su&&sn(new su(new ArrayBuffer(1)))!=vg||ha&&sn(new ha)!=pg||au&&sn(au.resolve())!=mg||ou&&sn(new ou)!=gg||cu&&sn(new cu)!=fg)&&(sn=function(t){var e=Zr(t),i=e==c0?t.constructor:void 0,r=i?en(i):"";if(r)switch(r){case d0:return vg;case l0:return pg;case u0:return mg;case h0:return gg;case p0:return fg}return e});const zn=sn;var m0=Object.prototype,g0=m0.hasOwnProperty;function f0(t){var e=t.length,i=new t.constructor(e);return e&&typeof t[0]=="string"&&g0.call(t,"index")&&(i.index=t.index,i.input=t.input),i}var v0=ui.Uint8Array;const xc=v0;function du(t){var e=new t.constructor(t.byteLength);return new xc(e).set(new xc(t)),e}function y0(t,e){var i=e?du(t.buffer):t.buffer;return new t.constructor(i,t.byteOffset,t.byteLength)}var S0=/\w*$/;function T0(t){var e=new t.constructor(t.source,S0.exec(t));return e.lastIndex=t.lastIndex,e}var yg=fr?fr.prototype:void 0,Sg=yg?yg.valueOf:void 0;function k0(t){return Sg?Object(Sg.call(t)):{}}function Tg(t,e){var i=e?du(t.buffer):t.buffer;return new t.constructor(i,t.byteOffset,t.length)}var E0="[object Boolean]",b0="[object Date]",w0="[object Map]",_0="[object Number]",I0="[object RegExp]",C0="[object Set]",P0="[object String]",R0="[object Symbol]",M0="[object ArrayBuffer]",A0="[object DataView]",D0="[object Float32Array]",O0="[object Float64Array]",N0="[object Int8Array]",V0="[object Int16Array]",L0="[object Int32Array]",x0="[object Uint8Array]",U0="[object Uint8ClampedArray]",F0="[object Uint16Array]",B0="[object Uint32Array]";function W0(t,e,i){var r=t.constructor;switch(e){case M0:return du(t);case E0:case b0:return new r(+t);case A0:return y0(t,i);case D0:case O0:case N0:case V0:case L0:case x0:case U0:case F0:case B0:return Tg(t,i);case w0:return new r;case _0:case P0:return new r(t);case I0:return T0(t);case C0:return new r;case R0:return k0(t)}}var kg=Object.create,j0=function(){function t(){}return function(e){if(!hi(e))return{};if(kg)return kg(e);t.prototype=e;var i=new t;return t.prototype=void 0,i}}();const H0=j0;function Eg(t){return typeof t.constructor=="function"&&!Lc(t)?H0(ru(t)):{}}var G0="[object Map]";function q0(t){return Di(t)&&zn(t)==G0}var bg=Kn&&Kn.isMap,$0=bg?Zl(bg):q0;const J0=$0;var K0="[object Set]";function z0(t){return Di(t)&&zn(t)==K0}var wg=Kn&&Kn.isSet,Y0=wg?Zl(wg):z0;const Q0=Y0;var X0=1,Z0=2,eb=4,_g="[object Arguments]",tb="[object Array]",ib="[object Boolean]",rb="[object Date]",nb="[object Error]",Ig="[object Function]",sb="[object GeneratorFunction]",ab="[object Map]",ob="[object Number]",Cg="[object Object]",cb="[object RegExp]",db="[object Set]",lb="[object String]",ub="[object Symbol]",hb="[object WeakMap]",pb="[object ArrayBuffer]",mb="[object DataView]",gb="[object Float32Array]",fb="[object Float64Array]",vb="[object Int8Array]",yb="[object Int16Array]",Sb="[object Int32Array]",Tb="[object Uint8Array]",kb="[object Uint8ClampedArray]",Eb="[object Uint16Array]",bb="[object Uint32Array]",Se={};Se[_g]=Se[tb]=Se[pb]=Se[mb]=Se[ib]=Se[rb]=Se[gb]=Se[fb]=Se[vb]=Se[yb]=Se[Sb]=Se[ab]=Se[ob]=Se[Cg]=Se[cb]=Se[db]=Se[lb]=Se[ub]=Se[Tb]=Se[kb]=Se[Eb]=Se[bb]=!0,Se[nb]=Se[Ig]=Se[hb]=!1;function Uc(t,e,i,r,n,s){var o,c=e&X0,d=e&Z0,l=e&eb;if(i&&(o=n?i(t,r,n,s):i(t)),o!==void 0)return o;if(!hi(t))return t;var h=vr(t);if(h){if(o=f0(t),!c)return og(t,o)}else{var p=zn(t),v=p==Ig||p==sb;if(Jn(t))return ag(t,c);if(p==Cg||p==_g||v&&!n){if(o=d||v?{}:Eg(t),!c)return d?i0(t,$E(o,t)):XE(t,WE(o,t))}else{if(!Se[p])return n?t:{};o=W0(t,p,c)}}s||(s=new Ai);var k=s.get(t);if(k)return k;s.set(t,o),Q0(t)?t.forEach(function(b){o.add(Uc(b,e,i,b,t,s))}):J0(t)&&t.forEach(function(b,R){o.set(R,Uc(b,e,i,R,t,s))});var E=l?d?r0:nu:d?va:tu,C=h?void 0:E(t);return Hk(C||t,function(b,R){C&&(R=b,b=t[R]),Hm(o,R,Uc(b,e,i,R,t,s))}),o}var wb=1,_b=4;function lu(t){return Uc(t,wb|_b)}var Ib="[object Symbol]";function Cb(t){return typeof t=="symbol"||Di(t)&&Zr(t)==Ib}var Pb=Object.defineProperty,Rb=(t,e)=>{for(var i in e)Pb(t,i,{get:e[i],enumerable:!0})},Mb={};Rb(Mb,{permissions:()=>Ab,theme:()=>Db});var Mt=(t=>(t.GroupCall="GROUP_CALL",t.Webinar="WEBINAR",t.AudioRoom="AUDIO_ROOM",t.Livestream="LIVESTREAM",t.Chat="CHAT",t))(Mt||{}),G=(t=>(t.Allowed="ALLOWED",t.NotAllowed="NOT_ALLOWED",t.CanRequest="CAN_REQUEST",t))(G||{}),Ab={view_type:"GROUP_CALL",accept_waiting_requests:!1,accept_present_requests:!1,request_produce:!1,can_allow_participant_audio:!1,can_allow_participant_screensharing:!1,can_allow_participant_video:!1,can_spotlight:!1,request_kick_participant:!1,kick_participant:!1,pin_participant:!1,can_edit_display_name:!1,can_record:!1,can_livestream:!1,can_present:!0,waiting_room_type:"SKIP_ON_ACCEPT",recorder_type:"NONE",plugins:{can_close:!0,can_start:!0},polls:{can_create:!0,can_vote:!0,can_view:!0},produce:{video:{allow:!0,quality:"vga",frame_rate:24},audio:!0,screenshare:{allow:!0,quality:"hd",frame_rate:5}},chat:{public:{can_send:!0,text:!0,files:!0},private:{can_send:!1,can_receive:!1,text:!1,files:!1}},connected_meetings:{can_alter_connected_meetings:!1,can_switch_connected_meetings:!1,can_switch_to_parent_meeting:!1},reactions:!1,hidden_participant:!1,is_recorder:!1,show_participant_list:!0,can_change_participant_role:!1,can_change_theme:!1,max_screenshare_count:1},Db={setup_screen:{is_enabled:!0},alone_here:{is_enabled:!0},waiting_room:{is_enabled:!1,enable_preview:!0},control_bar:{is_enabled:!0,elements:{plugins:!0,screenshare:!0,invite:!0,participants:!0,chat:!0,reactions:!1,polls:!0,fullscreen:!0,layout:!0}},header:{is_enabled:!0,elements:{timer:!0,title:!0,participant_count:!0,change_layout:!0}},pip_mode:!0,auto_tune:!0,grid:{multi:{maxVideoCount:6,videoFit:"cover"},single:{maxVideoCount:6,videoFit:"cover"},defaultView:"multi"},controls:{pip_toggle:!1}},Pg="hXgU8Wc8pwuGNq9ms5q9Hh",Rg;typeof process!="undefined"&&(Rg=process==null?void 0:process.env)!=null&&Rg.FLAGSMITH_ENVIRONMENT_KEY&&(Pg={}.FLAGSMITH_ENVIRONMENT_KEY);function Ob(t=[]){const e={};return t.forEach(i=>{e[i.feature.name]={enabled:i.enabled,value:i.feature_state_value}}),e}var Mg=class{constructor(t=Pg){m(this,"flags",{}),m(this,"environmentKey",null),this.environmentKey=t}identifyAndFetchFlagsWithRetry(t){return u(this,arguments,function*({primaryEndpoint:e,secondaryEndpoint:i,forceEvaluate:r,timeout:n,uniqueIdentifier:s,traitsObj:o,logger:c}){const d=JSON.parse(JSON.stringify(o)),l=Object.entries(d).map(p=>({trait_key:p[0],trait_value:p[1]})),h=[e,i,i];for(const p of h)try{const v=new AbortController,k=setTimeout(()=>v.abort(),n),E="_"+(Math.random()+1).toString(36).substring(2),C=yield fetch(`https://${p}/api/v1/identities/`,{method:"POST",headers:{"Content-Type":"application/json","X-Environment-Key":this.environmentKey},body:JSON.stringify({identifier:s+(r?E:""),traits:l}),signal:v.signal});if(clearTimeout(k),!C.ok)throw new Error(`Request failed with status ${C.status}`);const b=yield C.json();return Ob(b.flags||[])}catch(v){c.error("Flagsmith identify failed!!",{error:v,url:p})}return{}})}identify(t){return u(this,arguments,function*(e,i={},r=!1,n=5e3,s="edge.api.flagsmith.com",o=console){return this.flags=yield this.identifyAndFetchFlagsWithRetry({traitsObj:i,uniqueIdentifier:e,forceEvaluate:r,timeout:n,primaryEndpoint:s,secondaryEndpoint:"edge.api.flagsmith.com",logger:o}),this.flags})}getValue(t){return this.flags&&this.flags[t]&&this.flags[t].value}hasFeature(t){return this.flags&&this.flags[t]&&this.flags[t].enabled}getAllFlags(){return this.flags}},Nb=new Mg;function Vb(t){return new Mg(t)}var Ag=[-2,-1,0,1,2],Lb=[0,1,2,3,4];function xb(t){t=t.trim();let e="0",i="0",r="0";return t.length==4?(e="0x"+t[1]+t[1],i="0x"+t[2]+t[2],r="0x"+t[3]+t[3]):t.length>6&&(e="0x"+t[1]+t[2],i="0x"+t[3]+t[4],r="0x"+t[5]+t[6]),[+e,+i,+r]}var Ub=(t,e,i)=>{let r,n,s;if(e==0)r=n=s=i;else{const o=(l,h,p)=>(p<0&&(p+=1),p>1&&(p-=1),p<.16666666666666666?l+(h-l)*6*p:p<.5?h:p<.6666666666666666?l+(h-l)*(.6666666666666666-p)*6:l),c=i<.5?i*(1+e):i+e-i*e,d=2*i-c;r=o(d,c,t+1/3),n=o(d,c,t),s=o(d,c,t-1/3)}return[Math.round(r*255),Math.round(n*255),Math.round(s*255)]},Fb=(t,e,i)=>{t/=255,e/=255,i/=255;const r=Math.max(t,e,i),n=Math.min(t,e,i);let s,o;const c=(r+n)/2;if(r==n)s=o=0;else{const d=r-n;switch(o=c>.5?d/(2-r-n):d/(r+n),r){case t:s=(e-i)/d+(e<i?6:0);break;case e:s=(i-t)/d+2;break;case i:s=(t-e)/d+4;break}s/=6}return[s,o,c]},Bb=(t,e,i)=>{const r=n=>n.toString(16).padStart(2,"0");return`#${r(t)}${r(e)}${r(i)}`},Dg=(t,e=Ag,i=.4)=>{const r=[],[n,s,o]=xb(t),[c,d,l]=Fb(n,s,o),h=Math.round(l*100);h>70?i=.8:h>60?i=.9:h<10?i=.075:h<42&&(i=.3);const p=e.findIndex(b=>b===0);if(p===-1)throw new Error("Invalid reducer provided, it must contain atleast one zero");const v=5-p,k=p+1,E=(100-h)/v,C=h/k;for(const b of e){let R;b<0?R=h+b*C*i:b>0?R=h+b*E*i:R=h;const[j,W,w]=Ub(c,d,R/100);r.push(Bb(j,W,w))}return r},Og={dark:{background:{1e3:"#252525",900:"#2F2F2F",800:"#323232",700:"#3E3E3E",600:"#4A4A4A"},text:"#F5F5F5","video-bg":"#1C1C1C"},light:{background:{1e3:"#FFFFFF",900:"#F5F5F5",800:"#EBEBEB",700:"#E0E0E0",600:"#D6D6D6"},text:"#111111","text-on-brand":"#ffffff","video-bg":"#DADADA"}},Wb=t=>{const[e,i,r,n,s]=Dg(t,Ag);return{300:e,400:i,500:r,600:n,700:s}},jb=t=>{if(t==="#FFFFFF")return Og.light.background;if(t==="#000000")return Og.dark.background;const[e,i,r,n,s]=Dg(t,Lb);return{1e3:e,900:i,800:r,700:n,600:s}},Hb={border_radius:"rounded",border_width:"thin",spacing_base:4,theme:"dark",colors:{brand:Wb("#2160FD"),background:jb("#141414"),danger:"#FF2D2D",text:"#EEEEEE",text_on_brand:"#EEEEEE",success:"#62A504",video_bg:"#191919",warning:"#FFCD07"}};function Ng(){return lu(Hb)}var Gb={permissions:{can_accept_production_requests:!1,can_edit_display_name:!0,accept_waiting_requests:!1,disable_participant_audio:!1,disable_participant_screensharing:!1,disable_participant_video:!1,can_spotlight:!1,kick_participant:!1,pin_participant:!1,can_record:!1,can_livestream:!1,waiting_room_type:"SKIP",plugins:{can_close:!0,can_start:!0,can_edit_config:!1,config:{}},polls:{can_create:!0,can_vote:!0,can_view:!0},media:{video:{can_produce:"ALLOWED",can_consume:"ALLOWED"},audio:{can_produce:"ALLOWED"},screenshare:{can_produce:"ALLOWED",can_consume:"ALLOWED"}},chat:{public:{can_send:!0,text:!0,files:!0},private:{can_send:!1,can_receive:!1,text:!1,files:!1},channel:{can_create:"ALL",can_delete:"ALL",can_update:"ALL",can_read_all:!1},message:{can_delete:"ALL",can_edit:"ALL",delete_cutoff_time_seconds:0,edit_cutoff_time_seconds:0}},hidden_participant:!1,is_recorder:!1,recorder_type:"NONE",show_participant_list:!0,transcription_enabled:!1,can_change_participant_permissions:!1,connected_meetings:{can_alter_connected_meetings:!1,can_switch_connected_meetings:!1,can_switch_to_parent_meeting:!1},stage_enabled:!1,stage_access:void 0,accept_stage_requests:!1},ui:{oldTheme:{setup_screen:{is_enabled:!1},alone_here:{is_enabled:!1},waiting_room:{is_enabled:!1,enable_preview:!0},control_bar:{is_enabled:!0,elements:{plugins:!0,screenshare:!0,invite:!1,participants:!0,chat:!0,reactions:!1,polls:!0,fullscreen:!0,layout:!0}},header:{is_enabled:!0,elements:{timer:!0,title:!0,participant_count:!0,change_layout:!0}},pip_mode:!0,auto_tune:!0,colors:{primary:"#2160FD",secondary:"#1A1A1A",text:"#EEEEEE",background:"#1A1A1A",textPrimary:"#EEEEEE",videoBackground:"#1A1A1A"},dimensions:{mode:"fillParent"},grid:{multi:{maxVideoCount:6,videoFit:"cover"},single:{maxVideoCount:6,videoFit:"cover"},defaultView:"MULTI"},controls:{pip_toggle:!1},plugins:[]},design_tokens:Ng(),config_diff:{}},config:{view_type:"GROUP_CALL",media:{audio:{enable_stereo:!1,enable_high_bitrate:!1},video:{quality:"vga",frame_rate:24},screenshare:{quality:"hd",frame_rate:5}},max_video_streams:{mobile:6,desktop:6},max_screenshare_count:1,track_recording:{subscriptions:[]}},version:"hybrid"};function qb(){return lu(Gb)}var $b={permissions:{can_accept_production_requests:!1,can_edit_display_name:!0,accept_waiting_requests:!1,disable_participant_audio:!1,disable_participant_screensharing:!1,disable_participant_video:!1,can_spotlight:!1,kick_participant:!1,pin_participant:!1,can_record:!1,can_livestream:!1,waiting_room_type:"SKIP",plugins:{can_close:!0,can_start:!0,can_edit_config:!1,config:{}},polls:{can_create:!0,can_vote:!0,can_view:!0},media:{video:{can_produce:"ALLOWED"},audio:{can_produce:"ALLOWED"},screenshare:{can_produce:"ALLOWED"}},chat:{public:{can_send:!0,text:!0,files:!0},private:{can_send:!1,can_receive:!1,text:!1,files:!1}},hidden_participant:!1,is_recorder:!1,recorder_type:"NONE",show_participant_list:!0,transcription_enabled:!1,can_change_participant_permissions:!1,connected_meetings:{can_alter_connected_meetings:!1,can_switch_connected_meetings:!1,can_switch_to_parent_meeting:!1},stage_enabled:!1,stage_access:void 0,accept_stage_requests:!1},ui:{design_tokens:Ng(),config_diff:{}},config:{view_type:"GROUP_CALL",media:{audio:{enable_stereo:!1,enable_high_bitrate:!1},video:{quality:"vga",frame_rate:24},screenshare:{quality:"hd",frame_rate:5}},max_video_streams:{mobile:6,desktop:6},max_screenshare_count:1,track_recording:{subscriptions:[]}},version:"2.0.0"};function uu(){return lu($b)}var Fc;class Vg{constructor(){g(this,Fc,void 0)}get telemetry(){var e;return(e=a(this,Fc))==null?void 0:e.getValue("telemetry")}init(e){f(this,Fc,e)}info(e,i,r){var n;(n=this.telemetry)==null||n.addLogInCurrentSpan("info",e,i,r)}error(e,i,r){var n;(n=this.telemetry)==null||n.addLogInCurrentSpan("error",e,i,r)}debug(e,i,r){var n;(n=this.telemetry)==null||n.addLogInCurrentSpan("debug",e,i,r)}log(e,i,r){var n;(n=this.telemetry)==null||n.addLogInCurrentSpan("log",e,i,r)}warn(e,i,r){var n;(n=this.telemetry)==null||n.addLogInCurrentSpan("warn",e,i,r)}}Fc=new WeakMap;var yr,Sr;const Lg=class extends ut.EventEmitter{constructor(t){super(),g(this,yr,void 0),g(this,Sr,void 0),m(this,"asyncPromiseTimeout"),m(this,"logger"),this.logger=t,f(this,yr,new Map),f(this,Sr,new Map),this.asyncPromiseTimeout=8e3}emitAsync(t,...e){return u(this,null,function*(){a(this,yr).set(t,[]);const i=a(this,Sr).get(t).map(()=>new Promise(r=>{a(this,yr).get(t).push(r)}));XS(Lg.prototype,this,"emit").call(this,t,...e),yield Promise.race([Promise.all(i),new Promise((r,n)=>setTimeout(()=>n(new Error(`emitAsync failed to resolve for event ${t}.`)),this.asyncPromiseTimeout))]),a(this,yr).delete(t)})}onAsync(t,e){const i=a(this,yr),r=(...n)=>u(this,null,function*(){var s;try{yield e(...n)}catch(c){this.logger.error("[onAsync]",{error:c})}const o=(s=i.get(t))==null?void 0:s.shift();o==null||o()});return a(this,Sr).get(t)||a(this,Sr).set(t,[]),a(this,Sr).get(t).push(r),super.on(t,r)}reset(){f(this,yr,new Map),f(this,Sr,new Map),super.removeAllListeners()}};let Jb=Lg;yr=new WeakMap,Sr=new WeakMap;var Kb=/\s/;function zb(t){for(var e=t.length;e--&&Kb.test(t.charAt(e)););return e}var Yb=/^\s+/;function Qb(t){return t&&t.slice(0,zb(t)+1).replace(Yb,"")}var xg=0/0,Xb=/^[-+]0x[0-9a-f]+$/i,Zb=/^0b[01]+$/i,ew=/^0o[0-7]+$/i,tw=parseInt;function Ug(t){if(typeof t=="number")return t;if(Cb(t))return xg;if(hi(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=hi(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=Qb(t);var i=Zb.test(t);return i||ew.test(t)?tw(t.slice(2),i?2:8):Xb.test(t)?xg:+t}function Fg(t){return t}function iw(t,e,i){switch(i.length){case 0:return t.call(e);case 1:return t.call(e,i[0]);case 2:return t.call(e,i[0],i[1]);case 3:return t.call(e,i[0],i[1],i[2])}return t.apply(e,i)}var rw=800,nw=16,sw=Date.now;function aw(t){var e=0,i=0;return function(){var r=sw(),n=nw-(r-i);if(i=r,n>0){if(++e>=rw)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}function ow(t){return function(){return t}}var cw=Oc?function(t,e){return Oc(t,"toString",{configurable:!0,enumerable:!1,value:ow(e),writable:!0})}:Fg,dw=aw(cw);const lw=dw;var Bg=Math.max;function uw(t,e,i){return e=Bg(e===void 0?t.length-1:e,0),function(){for(var r=arguments,n=-1,s=Bg(r.length-e,0),o=Array(s);++n<s;)o[n]=r[e+n];n=-1;for(var c=Array(e+1);++n<e;)c[n]=r[n];return c[e]=i(o),iw(t,this,c)}}function hw(t,e){return lw(uw(t,e,Fg),t+"")}function pw(t,e,i){if(!hi(i))return!1;var r=typeof e;return(r=="number"?fa(i)&&zm(e,i.length):r=="string"&&e in i)?la(i[e],t):!1}function mw(t){return hw(function(e,i){var r=-1,n=i.length,s=n>1?i[n-1]:void 0,o=n>2?i[2]:void 0;for(s=t.length>3&&typeof s=="function"?(n--,s):void 0,o&&pw(i[0],i[1],o)&&(s=n<3?void 0:s,n=1),e=Object(e);++r<n;){var c=i[r];c&&t(e,c,r,s)}return e})}var gw="[object Object]",fw=Function.prototype,vw=Object.prototype,Wg=fw.toString,yw=vw.hasOwnProperty,Sw=Wg.call(Object);function Tw(t){if(!Di(t)||Zr(t)!=gw)return!1;var e=ru(t);if(e===null)return!0;var i=yw.call(e,"constructor")&&e.constructor;return typeof i=="function"&&i instanceof i&&Wg.call(i)==Sw}var kw="__lodash_hash_undefined__";function Ew(t){return this.__data__.set(t,kw),this}function bw(t){return this.__data__.has(t)}function Bc(t){var e=-1,i=t==null?0:t.length;for(this.__data__=new nn;++e<i;)this.add(t[e])}Bc.prototype.add=Bc.prototype.push=Ew,Bc.prototype.has=bw;function ww(t,e){for(var i=-1,r=t==null?0:t.length;++i<r;)if(e(t[i],i,t))return!0;return!1}function _w(t,e){return t.has(e)}var Iw=1,Cw=2;function jg(t,e,i,r,n,s){var o=i&Iw,c=t.length,d=e.length;if(c!=d&&!(o&&d>c))return!1;var l=s.get(t),h=s.get(e);if(l&&h)return l==e&&h==t;var p=-1,v=!0,k=i&Cw?new Bc:void 0;for(s.set(t,e),s.set(e,t);++p<c;){var E=t[p],C=e[p];if(r)var b=o?r(C,E,p,e,t,s):r(E,C,p,t,e,s);if(b!==void 0){if(b)continue;v=!1;break}if(k){if(!ww(e,function(R,j){if(!_w(k,j)&&(E===R||n(E,R,i,r,s)))return k.push(j)})){v=!1;break}}else if(!(E===C||n(E,C,i,r,s))){v=!1;break}}return s.delete(t),s.delete(e),v}function Pw(t){var e=-1,i=Array(t.size);return t.forEach(function(r,n){i[++e]=[n,r]}),i}function Rw(t){var e=-1,i=Array(t.size);return t.forEach(function(r){i[++e]=r}),i}var Mw=1,Aw=2,Dw="[object Boolean]",Ow="[object Date]",Nw="[object Error]",Vw="[object Map]",Lw="[object Number]",xw="[object RegExp]",Uw="[object Set]",Fw="[object String]",Bw="[object Symbol]",Ww="[object ArrayBuffer]",jw="[object DataView]",Hg=fr?fr.prototype:void 0,hu=Hg?Hg.valueOf:void 0;function Hw(t,e,i,r,n,s,o){switch(i){case jw:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case Ww:return!(t.byteLength!=e.byteLength||!s(new xc(t),new xc(e)));case Dw:case Ow:case Lw:return la(+t,+e);case Nw:return t.name==e.name&&t.message==e.message;case xw:case Fw:return t==e+"";case Vw:var c=Pw;case Uw:var d=r&Mw;if(c||(c=Rw),t.size!=e.size&&!d)return!1;var l=o.get(t);if(l)return l==e;r|=Aw,o.set(t,e);var h=jg(c(t),c(e),r,n,s,o);return o.delete(t),h;case Bw:if(hu)return hu.call(t)==hu.call(e)}return!1}var Gw=1,qw=Object.prototype,$w=qw.hasOwnProperty;function Jw(t,e,i,r,n,s){var o=i&Gw,c=nu(t),d=c.length,l=nu(e),h=l.length;if(d!=h&&!o)return!1;for(var p=d;p--;){var v=c[p];if(!(o?v in e:$w.call(e,v)))return!1}var k=s.get(t),E=s.get(e);if(k&&E)return k==e&&E==t;var C=!0;s.set(t,e),s.set(e,t);for(var b=o;++p<d;){v=c[p];var R=t[v],j=e[v];if(r)var W=o?r(j,R,v,e,t,s):r(R,j,v,t,e,s);if(!(W===void 0?R===j||n(R,j,i,r,s):W)){C=!1;break}b||(b=v=="constructor")}if(C&&!b){var w=t.constructor,te=e.constructor;w!=te&&"constructor"in t&&"constructor"in e&&!(typeof w=="function"&&w instanceof w&&typeof te=="function"&&te instanceof te)&&(C=!1)}return s.delete(t),s.delete(e),C}var Kw=1,Gg="[object Arguments]",qg="[object Array]",Wc="[object Object]",zw=Object.prototype,$g=zw.hasOwnProperty;function Yw(t,e,i,r,n,s){var o=vr(t),c=vr(e),d=o?qg:zn(t),l=c?qg:zn(e);d=d==Gg?Wc:d,l=l==Gg?Wc:l;var h=d==Wc,p=l==Wc,v=d==l;if(v&&Jn(t)){if(!Jn(e))return!1;o=!0,h=!1}if(v&&!h)return s||(s=new Ai),o||Vc(t)?jg(t,e,i,r,n,s):Hw(t,e,d,i,r,n,s);if(!(i&Kw)){var k=h&&$g.call(t,"__wrapped__"),E=p&&$g.call(e,"__wrapped__");if(k||E){var C=k?t.value():t,b=E?e.value():e;return s||(s=new Ai),n(C,b,i,r,s)}}return v?(s||(s=new Ai),Jw(t,e,i,r,n,s)):!1}function Jg(t,e,i,r,n){return t===e?!0:t==null||e==null||!Di(t)&&!Di(e)?t!==t&&e!==e:Yw(t,e,i,r,Jg,n)}function Qw(t){return function(e,i,r){for(var n=-1,s=Object(e),o=r(e),c=o.length;c--;){var d=o[t?c:++n];if(i(s[d],d,s)===!1)break}return e}}var Xw=Qw();const Zw=Xw;var e_=function(){return ui.Date.now()};const pu=e_;var t_="Expected a function",i_=Math.max,r_=Math.min;function mu(t,e,i){var r,n,s,o,c,d,l=0,h=!1,p=!1,v=!0;if(typeof t!="function")throw new TypeError(t_);e=Ug(e)||0,hi(i)&&(h=!!i.leading,p="maxWait"in i,s=p?i_(Ug(i.maxWait)||0,e):s,v="trailing"in i?!!i.trailing:v);function k(ie){var ae=r,De=n;return r=n=void 0,l=ie,o=t.apply(De,ae),o}function E(ie){return l=ie,c=setTimeout(R,e),h?k(ie):o}function C(ie){var ae=ie-d,De=ie-l,st=e-ae;return p?r_(st,s-De):st}function b(ie){var ae=ie-d,De=ie-l;return d===void 0||ae>=e||ae<0||p&&De>=s}function R(){var ie=pu();if(b(ie))return j(ie);c=setTimeout(R,C(ie))}function j(ie){return c=void 0,v&&r?k(ie):(r=n=void 0,o)}function W(){c!==void 0&&clearTimeout(c),l=0,r=d=n=c=void 0}function w(){return c===void 0?o:j(pu())}function te(){var ie=pu(),ae=b(ie);if(r=arguments,n=this,d=ie,ae){if(c===void 0)return E(d);if(p)return clearTimeout(c),c=setTimeout(R,e),k(d)}return c===void 0&&(c=setTimeout(R,e)),o}return te.cancel=W,te.flush=w,te}function gu(t,e,i){(i!==void 0&&!la(t[e],i)||i===void 0&&!(e in t))&&Xl(t,e,i)}function n_(t){return Di(t)&&fa(t)}function fu(t,e){if(!(e==="constructor"&&typeof t[e]=="function")&&e!="__proto__")return t[e]}function s_(t){return ma(t,va(t))}function a_(t,e,i,r,n,s,o){var c=fu(t,i),d=fu(e,i),l=o.get(d);if(l){gu(t,i,l);return}var h=s?s(c,d,i+"",t,e,o):void 0,p=h===void 0;if(p){var v=vr(d),k=!v&&Jn(d),E=!v&&!k&&Vc(d);h=d,v||k||E?vr(c)?h=c:n_(c)?h=og(c):k?(p=!1,h=ag(d,!0)):E?(p=!1,h=Tg(d,!0)):h=[]:Tw(d)||Nc(d)?(h=c,Nc(c)?h=s_(c):(!hi(c)||Yl(c))&&(h=Eg(d))):p=!1}p&&(o.set(d,h),n(h,d,r,s,o),o.delete(d)),gu(t,i,h)}function Kg(t,e,i,r,n){t!==e&&Zw(e,function(s,o){if(n||(n=new Ai),hi(s))a_(t,e,o,i,Kg,r,n);else{var c=r?r(fu(t,o),s,o+"",t,e,n):void 0;c===void 0&&(c=s),gu(t,o,c)}},va)}var o_="[object Map]",c_="[object Set]",d_=Object.prototype,l_=d_.hasOwnProperty;function u_(t){if(t==null)return!0;if(fa(t)&&(vr(t)||typeof t=="string"||typeof t.splice=="function"||Jn(t)||Vc(t)||Nc(t)))return!t.length;var e=zn(t);if(e==o_||e==c_)return!t.size;if(Lc(t))return!tg(t).length;for(var i in t)if(l_.call(t,i))return!1;return!0}function h_(t,e){return Jg(t,e)}var p_=mw(function(t,e,i){Kg(t,e,i)});const Tr=p_;var vu=(t=>(t.PARTICIPANT="PARTICIPANT",t.PEER="PEER",t.CLIENT="CLIENT",t))(vu||{});const Z={PROPAGATE_KICK_ALL:"propagate_kick_across_rooms",REFRESH_ID_ON_DISCONNECTION:"refresh_id_on_disconnection",SIMULCAST:"simulcast",CHAT_SOCKET_SERVER:"chat_socket_server",POLL_SOCKET_SERVER:"poll_socket_server",PLUGIN_SOCKET_SERVER:"plugin_socket_server",NR_OTEL_WEB:"nr_otel_web",ICE_RESTART_ON_FAILED_STATE:"ice_restart_on_failed_state",ICE_RESTART_ON_DISCONNECTED_STATE:"ice_restart_on_disconnected_state",ENABLE_ICE_STATE_LOGGING:"enable_ice_state_logging",SUPPRESS_PEER_MUTE_UNMUTE_EMITS:"web_core_suppress_peer_mute_unmute_emits",SKIP_OTEL_TRACES:"skip_otel_traces",USE_USERIDS_IN_CHAT:"use_userids_in_chat",CUSTOM_PING_PONG:"custom_ping_pong",ENABLE_HIVE_SIMULCAST:"enable_hive_simulcast",ENABLE_HIVE_TRANSPORT_RECONNECTION_ON_ICE_FAILED:"enable_hive_transport_reconnection_on_ice_failed",ENABLE_HIVE_EXPERIMENTAL_FAIL_RECOVERY:"enable_hive_fail_recovery",ENABLE_HIVE_INFINITE_RETRIES:"enable_hive_infinite_retries",HIVE_TRANSPORT_FORCE_RELAY_ON_ICE_FAILED:"hive_transport_force_relay_on_ice_failed",ENABLE_HIVE_CONSUME_OVER_DC:"enable_hive_consume_over_dc",ENABLE_CF_SIMULCAST:"enable_cf_simulcast",ENABLE_CF_TRANSPORT_RECONNECTION_ON_ICE_FAILED:"enable_cf_transport_reconnection_on_ice_failed",ENABLE_CF_EXPERIMENTAL_FAIL_RECOVERY:"enable_cf_fail_recovery",ENABLE_CF_INFINITE_RETRIES:"enable_cf_infinite_retries",CF_TRANSPORT_FORCE_RELAY_ON_ICE_FAILED:"cf_transport_force_relay_on_ice_failed",BYPASS_LOG_EXCLUSION_LIST:"bypass_log_exclusion_list",LOG_LEVEL:"log_level",V1_PLUGINS:"v1_plugins",SCREENSHARE_DTX:"screenshare_dtx",SCREENSHARE_PRIORITY:"screenshare_priority",SCREENSHARE_MIN_BITRATE:"screenshare_minbitrate",SCREENSHARE_SIMULCAST:"screenshare_simulcast",DISABLE_WEBCAM_LAYERS_ON_SCREENSHARE:"disable_webcam_layers_on_screenshare",SCREENSHARE_FORCE_GOOG_CONFERENCE:"screenshare_force_goog_conference",LIVESTREAM:"feat_livestream",FETCH_RETRY:"fetch_retry",DISABLE_WEBCAM_SIMULCAST:"webcore_disable_webcam_simulcast",OVERRIDE_WEBCAM_SIMULCAST:"override_webcam_simulcast",SOCKET_POLLING:"socket_polling",FEAT_PAGINATED_CHAT:"feat_paginated_chat",VAL_MIN_FRAMERATE:"val_min_framerate",SCREEENSHARE_ERR_HACK:"screenshare_err_hack",SCREEENSHARE_CONSTRAINTS_RETRY:"screenshare_constraints_retry",TROUBLESHOOTING:"feat_troubleshooting",VIDEO_CONSTRAINTS:"video_constraints",SCREENSHARE_CONSTRAINTS:"screenshare_constraints",FEAT_CHAT_SDK:"feat_chat_sdk",FEAT_CHAT_SDK_SEARCH:"chat_search",OBS_QUALITY:"obs_quality",ALLOW_SAFARI_MEDIA_MIDDLEWARES:"allow_safari_media_middlewares",DYNAMIC_VIDEO_QUALITY:"dynamic_video_quality",EXP_RESHARE:"exp_reshare",LEAVE_STAGE_ON_END:"leave_stage_on_end",SKIP_SETTING_IN_USE_DEVICE:"skip_setting_in_use_device",PRECALL_BANDWIDTH_TEST:"precall_bandwidth_test",CONSUMER_BIND_NO_RETRY:"consumer_bind_no_retry",DEBUG_SOCKET_JOIN:"debug_socket_join",FORCE_RELAY:"force_relay",FORCE_VIDEO_CODEC:"force_video_codec",USE_EXPERIMENTAL_SFU_HANDLER:"use_experimental_sfu_handler",TRACK_HINT:"track_hint",OVERRIDE_HIVE_SIMULCAST_DYNAMIC:"override_hive_simulcast_dynamic",PRECREATE_PRODUCERS:"precreate_producers",DISABLE_OPUS_DTX_CF:"disable_opus_dtx_cf",ENABLE_AUDIO_ACTIVITY_DEBUG_LOGS:"enable_audio_activity_debug_logs",NEW_SYNC_CONSUMERS:"new_sync_consumers",DISABLE_LAYER_SWITCH:"disable_layer_switch"};function jc(t){const e={};return typeof(t==null?void 0:t.code)=="number"&&(e.code=t.code),typeof(t==null?void 0:t.code)=="string"&&(e.code=t.code.substring(0,100)),typeof(t==null?void 0:t.name)=="string"&&(e.name=t.name.substring(0,500)),typeof(t==null?void 0:t.message)=="string"&&(e.message=t.message.substring(0,500)),typeof(t==null?void 0:t.reason)=="string"&&(e.reason=t.reason.substring(0,500)),typeof(t==null?void 0:t.stack)=="string"&&(e.stack=t.stack.substring(0,500)),e}function m_(t){var e,i,r,n;const s=typeof navigator!="undefined"&&!navigator.isReactNative&&typeof window!="undefined"&&((e=window.location.host)==null?void 0:e.includes("devel"))&&((i=window.location.host)==null?void 0:i.includes("dyte.io")),o=!!((n=(r=t==null?void 0:t.getValue("modules"))==null?void 0:r.devTools)!=null&&n.logs);return s||o}function g_(t,e){var i;if(t!=null&&t.getValue("flagsmith").hasFeature(Z.LOG_LEVEL)){let r=((i=t.getValue("flagsmith").getValue(Z.LOG_LEVEL))==null?void 0:i.toString())||"all";if(r=r.toLowerCase().trim(),r==="off")return!1;if(r!=="all"){const n=["debug","log","info","warn","error"],s=n.indexOf(e),o=n.indexOf(r);if(s<o)return!1}}return!0}function zg(t,e,i={}){return Object.getOwnPropertyNames(t).forEach(r=>{var n;if([null,void 0,NaN].includes(t[r])||e&&(((n=e.match(/\./g))==null?void 0:n.length)||0)>=10)return;const s=e?`${e}.${r}`:r;typeof t[r]=="object"?zg(t[r],s,i):["number","string","boolean"].includes(typeof t[r])&&(i[s]=t[r])}),i}function Yg(t,e,i={},r=""){const n={};try{const s=JSON.stringify(i),o=JSON.parse(s),c=zg(o,r),d=JSON.stringify(c);return JSON.parse(d)}catch(s){const o=jc(s);n[`${r}.error.message`]=o.message||"",n[`${r}.error.stack`]=o.stack||"",n[`${r}.error.reason`]=o.reason||"",n[`${r}.error.source`]="safelyFlattenObjForOpenTelemetry"}return n}const f_={audio:!0,video:!0,screenshareAudio:!0,screenshareVideo:!0},ya={baseURL:"http://localhost:5000",createdAt:"2021-08-05T10:49:56.602Z",description:"Develop plugins locally",id:"09259e3b-7be8-46f6-9801-106bf1866e1c",name:"Localhost Dev",organizationId:"4ad15a19-80e2-4105-bf43-48039fd2963e",picture:"https://dyte-uploads.s3.ap-south-1.amazonaws.com/dyte.png",private:!1,published:!0,staggered:!1,tags:["#localhost","#dev"],type:"self_hosted",updatedAt:"2021-08-05T10:50:07.681Z"},v_={pip:!0,poll:!0,chat:!0,stage:!0,theme:!0,plugin:!0,tracing:!0,internals:!0,recording:!0,livestream:!0,participant:!0,connectedMeetings:!0,devTools:{logs:!1}};function Yn(t,e){const i=t.getValue("overrides");return i&&i[e]?i[e]:!1}function y_({baseURI:t}){return t.includes("preprod.dyte")||t.includes("preprod.realtime")?da.PREPROD:t.includes("devel.dyte")||t.includes("devel.realtime")?da.DEVEL:da.PROD}function an({servicePrefix:t,baseURI:e}){return`${t}.${e}`}function Qg(t){const e=t.getValue("baseURI");return{location:an({servicePrefix:"location",baseURI:e}),locationLegacy:an({servicePrefix:"location-legacy",baseURI:e}),daCollector:an({servicePrefix:"da-collector",baseURI:e.replace("realtime.cloudflare.com","dyte.io")})}}const S_='<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m16.242 2.932 4.826 4.826a2.75 2.75 0 0 1-.715 4.404l-4.87 2.435a.75.75 0 0 0-.374.426l-1.44 4.166a1.25 1.25 0 0 1-2.065.476L8.5 16.561 4.06 21H3v-1.06l4.44-4.44-3.105-3.104a1.25 1.25 0 0 1 .476-2.066l4.166-1.44a.75.75 0 0 0 .426-.373l2.435-4.87a2.75 2.75 0 0 1 4.405-.715Zm3.766 5.886-4.826-4.826a1.25 1.25 0 0 0-2.002.325l-2.435 4.871a2.25 2.25 0 0 1-1.278 1.12l-3.789 1.31 6.705 6.704 1.308-3.789a2.25 2.25 0 0 1 1.12-1.277l4.872-2.436a1.25 1.25 0 0 0 .325-2.002Z" fill="currentColor"/></svg>',T_='<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M4 12.02c0 1.06.2 2.1.6 3.08l.6 1.42c.22.55.64 1.01 1.17 1.29.27.14.56.21.86.21h2.55c.77 0 1.49-.41 1.87-1.08.5-.87 1.02-1.7 1.72-2.43l1.32-1.39c.44-.46.97-.84 1.49-1.23l.59-.45a.6.6 0 0 0 .23-.47c0-.75-.54-1.57-1.22-1.79a3.34 3.34 0 0 0-2.78.29V4.5a1.5 1.5 0 0 0-2.05-1.4 1.5 1.5 0 0 0-2.9 0A1.5 1.5 0 0 0 6 4.5v.09A1.5 1.5 0 0 0 4 6v6.02ZM8 4.5v4a.5.5 0 0 0 1 0v-5a.5.5 0 0 1 1 0v5a.5.5 0 0 0 1 0v-4a.5.5 0 0 1 1 0v6a.5.5 0 0 0 .85.37h.01c.22-.22.44-.44.72-.58.7-.35 2.22-.57 2.4.5l-.53.4c-.52.4-1.04.78-1.48 1.24l-1.33 1.38c-.75.79-1.31 1.7-1.85 2.63-.21.36-.6.58-1.01.58H7.23a.87.87 0 0 1-.4-.1 1.55 1.55 0 0 1-.71-.78l-.59-1.42a7.09 7.09 0 0 1-.53-2.7V6a.5.5 0 0 1 1 0v3.5a.5.5 0 0 0 1 0v-5a.5.5 0 0 1 1 0Z" fill="currentColor"></path></svg>',Hc=t=>{if(!t)return;if(!t.startsWith("<svg"))return new Promise(n=>{n(t)});const e=new Blob([t],{type:"image/svg+xml"}),i=new Image,r=window.URL.createObjectURL(e);return new Promise((n,s)=>{i.onload=()=>{n(i),window.URL.revokeObjectURL(r)},i.onerror=()=>{s(),window.URL.revokeObjectURL(r)},i.src=r})},Xg=class{constructor(){m(this,"logsCache",[]),m(this,"logsProcessorTimer"),m(this,"tracingEnabled",!0),m(this,"initialized",!1),m(this,"logsProcessingInterval",7e3),m(this,"logExclusionList",["message","websocket/message","roomMessage","websocket/room-message","websocket/room-legacy-mode","chatMessage","websocket/new-chat-message","websocket/no-active-speaker","websocket/selected-peers","websocket/active-speaker","ping","websocket/new-consumer","websocket/producer-score","websocket/consumer-score","websocket/plugin-event","websocket/plugin-data","websocket/plugin-internal-data"]),m(this,"meetingMetadata",{})}get logsEndpoint(){const t=Ki.getContext(this.meetingMetadata.peerId);return`https://${an({servicePrefix:"api-silos",baseURI:t.getValue("baseURI")})}/otel/logs`}resetPeerId(t){this.meetingMetadata.peerId=t}init(t,e,i){this.tracingEnabled=!0,this.initialized=!1,this.logsCache=[];const r=t.getValue("peerId");this.meetingMetadata=e,this.tracingEnabled=i,this.meetingMetadata.peerId=r,this.meetingMetadata.sdkVersion=t.getValue("sdkVersion");const{RNDeviceInfoImpl:n}=navigator;this.meetingMetadata.deviceInfo=navigator.isReactNative?n==null?void 0:n.getDeviceInfo():Ee.getDeviceInfo(),this.meetingMetadata.visitedUrl=!navigator.isReactNative&&typeof window!="undefined"&&window.location.href,this.logsProcessorTimer=setInterval(this.processCachedLogs.bind(this),this.logsProcessingInterval),i&&(this.initialized=!0)}static trace(t,e=void 0){return(i,r,n)=>{const s=n.value;return n.value=function(...o){var c;const d=this==null?void 0:this.telemetry;if(!d||!d.initialized||navigator.isReactNative||!d.tracingEnabled||(c=Ki.getContext(d.meetingMetadata.peerId))!=null&&c.getValue("flagsmith").hasFeature(Z.SKIP_OTEL_TRACES))return s.apply(this,o);d.addLogInCurrentSpan("info",t,e);const l=performance.now(),h=s.apply(this,o);return Promise.resolve(h).then(()=>{const p=performance.now();p-l>10&&d.addLogInCurrentSpan("info",`${t}_timing`,{execTime:p-l,country:Xg.location.country})}).catch(()=>{const p=performance.now();d.addLogInCurrentSpan("info",`${t}_timing`,{execTime:p-l})}),h},n}}injectContext(t){var e;const i=Yr().replace(/-/g,"").substring(0,16),r=(e=this.meetingMetadata.peerId)==null?void 0:e.replace(/-/g,"");t.TRACEPARENT=`00-${r}-${i}-01`}addLogInCurrentSpan(t,e,i={},r=!1){i!=null&&i.error&&Object.assign(i,{error:jc(i.error)});const n=Ki.getContext(this.meetingMetadata.peerId);if(m_(n)&&(u_(i)?console[t]("DyteInternalLogs:: ",t,e):console[t]("DyteInternalLogs:: ",t,e,i)),!!g_(n,t))try{const s=Yg(n,e,i,"metadata"),o=new Date,c=H(V({message:e,level:t},s),{loggedAt:o.toISOString(),loggedAtTzOffset:o.getTimezoneOffset()});r?this.sendOtelLogsToNewRelic([c]):this.logsCache.push(c)}catch(s){this.addLogInCurrentSpan("error","opentelemetry::addLogInCurrentSpan_failed",{error:jc(s)})}}sendOtelLogsToNewRelic(t){const e=Ki.getContext(this.meetingMetadata.peerId);fetch(this.logsEndpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({meetingMetadata:Yg(e,"sendOtelLogsToNewRelic",this.meetingMetadata,"meetingMetadata"),serviceName:e.getValue("sdkName"),logs:t})}).catch(i=>{this.addLogInCurrentSpan("error","opentelemetry::sendOtelLogToNewRelic_failed",{error:jc(i)}),this.logsCache.push(...t)})}processCachedLogs(){const t=this.logsCache.splice(0,25);t!=null&&t.length&&this.sendOtelLogsToNewRelic(t)}destruct(){clearInterval(this.logsProcessorTimer),this.processCachedLogs()}};let T=Xg;m(T,"location",{country:void 0});function k_(t){const e=V({},t),i=new Map,r=(o,c)=>(i.has(o)||i.set(o,new Set),i.get(o).add(c),()=>{var d;return(d=i.get(o))==null?void 0:d.delete(c)}),n=(o,c)=>{var d;(d=i.get(o))==null||d.delete(c)},s=o=>{var c;(c=i.get(o))==null||c.forEach(d=>{try{d(e[o])}catch(l){}})};return{subscribe:r,unsubscribe:n,notify:s,setValue:(o,c,d=!0)=>{e[o]=c,d&&s(o)},getValue:o=>e[o],getAllValues:()=>e}}class E_{constructor(){m(this,"contexts",new Map),m(this,"mostRecentPeerId",null)}createContext(e,i){if(this.contexts.has(e))return this.contexts.get(e);const r=new T,n=new Vg;this.contexts.set(e,k_(i)),this.contexts.get(e).setValue("peerSessionStore",new Jb(n));const s=new Um;return s.setMaxListeners(50),this.contexts.get(e).setValue("logger",n),this.contexts.get(e).setValue("telemetry",r),this.contexts.get(e).setValue("callstats",s),this.contexts.get(e).setValue("flagsmith",Vb()),this.mostRecentPeerId=e,this.contexts.get(e)}remapContext(e,i){const r=i.getValue("peerId");r!==e&&(i.setValue("peerId",e),this.mostRecentPeerId=e,this.contexts.set(e,i),this.contexts.delete(r))}getContext(e){return this.contexts.get(e)}getMostRecentPeerId(){return this.mostRecentPeerId}}const Ki=new E_,b_={"00":"DyteClient","01":"Controller","02":"RoomNodeClient","03":"HiveNodeClient","04":"SocketService","05":"Chat","06":"Plugin","07":"Polls","08":"Meta","09":"Preset",10:"Recording",11:"Self",12:"Participant",13:"Spotlight",14:"Remote Request",15:"Webinar",16:"LocalMediaHandler",17:"End-End Encryption",18:"AI",19:"Livestream",20:"Stage"},Gc={"0000":"Internal exception.","0001":"Failed to initialize.","0002":"Failed to join room.","0003":"Failed to leave room.","0004":"Invalid auth token","0010":"Browser not supported","0011":"HTTP Network Error","0012":"Websocket Network Error","0013":"Rate Limited","0100":"Internal exception","0101":"Permission denied","0102":"Prerequisite module missing","0200":"Internal exception.","0300":"Internal exception","0400":"Internal exception","0404":"Missing prerequisites to establish a websocket connection","0500":"Internal exception","0501":"Permission denied.","0502":"Invalid message body.","0503":"Text Message is too large","0504":"Message not found by the given id","0505":"Action not permitted without joining room","0506":"Message search is disabled","0510":"Invalid channel name.","0600":"Internal exception","0601":"Permission denied.","0602":"Auth token not set for plugin","0603":"Iframe was not provided","0700":"Internal exception","0705":"Action not permitted without joining room","0800":"Internal exception","0801":"Permission denied","0900":"Internal exception","0904":"Could not load preset",1e3:"Internal exception",1001:"Permission denied",1004:"Could not find specified recording",1005:"Action not permitted in given recording state",1100:"Internal exception",1101:"Permission denied",1102:"Unsupported",1103:"Name cannot be empty",1104:"No device selected while calling meeting.self.setDevice",1105:"Action not permitted without joining room",1106:"Can't set currently used device",1200:"Internal exception",1201:"Permission denied",1202:"Invalid page number was requested",1203:"Invalid participant count per page was requested",1204:"No participants exists with the given UserIds",1205:"Action not permitted without joining room",1206:"Manual Subscription Mode was not ACTIVATED",1207:"Invalid view mode",1208:"Manual Subscription not enabled for organization",1209:"Broadcast message type must be a non-empty string",1300:"Internal exception",1400:"Internal exception",1402:"No existing remote requests",1403:"No peer exists with given id",1500:"Internal exception",1600:"Internal exception",1601:"Failed to get audio track",1602:"Failed to get video track",1603:"Incorrect device",1604:"Failed to change device",1605:"Failed to get audio & video track",1606:"No audio input devices are available",1607:"No video input devices are available",1608:"No audio output devices (speakers) are available",1609:"Failed to fetch list of media devices",1610:"No media track exists",1611:"Failed to unmute track",1612:"Failed to get screenshare tracks",1701:"Crypto error",1800:"Internal exception",1801:"Can't fetch transcript file",1900:"Internal exception",1901:"Permission denied.",1902:"Livestream that has not yet started, can't be stopped",2e3:"Internal exception",2001:"Permission denied",2002:"Unsupported",2003:"Stage is disabled",2004:"Method not implemented",2005:"Action not permitted without joining room",2006:"Action not permitted in current stage status",9900:"Internal exception"};Object.keys(Gc).forEach(t=>{Gc[t]=`{${b_[t.slice(0,2)]}} ${Gc[t]}`});class I extends Error{constructor(e,i,r=void 0,n=!1){super(e),m(this,"code"),this.code=i,this.name="DyteError",this.message=`[ERR${this.code}]: ${Gc[this.code]}
|
|
13
13
|
${this.message}`;try{let s=n&&!!r;i&&i.endsWith("00")&&r&&(s=!0),s&&r.error("DyteError",{error:{message:this.message,name:this.name,code:i}});const o=Ki.getContext(Ki.getMostRecentPeerId());if(o){const c=o.getValue("onError");try{c(this)}catch(d){}}typeof window!="undefined"&&window.dispatchEvent(new CustomEvent("dyteError",{detail:this}))}catch(s){}}}function qc(t,e,i,r){if(r instanceof I)throw r;if(r instanceof e){const n=new I(r.message,i);throw n.stack=r.stack,n}else throw r}function Zg(t,e,i){if(!t.value){const n=t.get,s=t.set;return n&&(t.get=function(){try{return n.apply(this)}catch(o){qc(this,e,i,o)}}),s&&(t.set=function(o){try{return s.apply(this,[o])}catch(c){qc(this,e,i,c)}}),t}const r=t.value;return t.value=function(...n){try{const s=r.apply(this,n);return s&&s instanceof Promise?s.catch(o=>{qc(this,e,i,o)}):s}catch(s){qc(this,e,i,s)}},t}function w_(t,e){return(i,r,n)=>{if(n)return Zg(n,t,e);for(const s of Reflect.ownKeys(i.prototype).filter(o=>o!=="constructor")){const o=Object.getOwnPropertyDescriptor(i.prototype,s);(o.value instanceof Function||o.get instanceof Function||o.set instanceof Function)&&Object.defineProperty(i.prototype,s,Zg(o,t,e))}}}const ht=t=>w_(Error,t);function __(t){let e=0,i,r;if(!t)return e;for(i=0;i<t.length;i+=1)r=t.charCodeAt(i),e=(e<<5)-e+r,e|=0;return Math.abs(e)%100+1}function I_(){Ee.isElectron()&&window.dyteElectronGetDisplayMediaSource&&(navigator.mediaDevices.getDisplayMedia=()=>u(this,null,function*(){const t=yield window.dyteElectronGetDisplayMediaSource({types:["window","screen"]});let e=[];if(t&&(Array.isArray(t)?e=t:e=[t]),!(e!=null&&e.length))throw new Error("Couldn't find any media source for screen share.");let i=e.find(n=>{var s;return(s=n.id)==null?void 0:s.includes("screen")});i=i!=null?i:e[0];const r={audio:!1,video:{mandatory:{chromeMediaSource:"desktop",chromeMediaSourceId:i.id}}};return yield navigator.mediaDevices.getUserMedia(r)}))}var M=(t=>(t.NEW_PRODUCER="NEW_PRODUCER",t.PRODUCER_TRACK_ENDED="PRODUCER_TRACK_ENDED",t.ROOM_NODE_CONNECTION_ERROR="ROOM_NODE_CONNECTION_ERROR",t.SOCKET_SERVICE_ROOM_JOINED="SOCKET_SERVICE_ROOM_JOINED",t.SOCKET_SERVICE_RECONNECTED="SOCKET_SERVICE_RECONNECTED",t.SOCKET_SERVICE_DISCONNECTED="SOCKET_SERVICE_DISCONNECTED",t.SOCKET_SERVICE_FAILED="SOCKET_SERVICE_FAILED",t.SOCKET_STATE_UPDATE="SOCKET_STATE_UPDATE",t.ROOM_NODE_RECONNECTED="ROOM_NODE_RECONNECTED",t.ROOM_NODE_DISCONNECTED="ROOM_NODE_DISCONNECTED",t.ROOM_NODE_FAILED="ROOM_NODE_FAILED",t.TRANSPORT_STATE_UPDATE="TRANSPORT_STATE_UPDATE",t.PRODUCER_SCORE_UPDATE="PRODUCER_SCORE_UPDATE",t.CONSUMER_SCORE_UPDATE="CONSUMER_SCORE_UPDATE",t.PRODUCER_STATUS_UPDATE="PRODUCER_STATUS_UPDATE",t.CONSUMER_STATUS_UPDATE="CONSUMER_STATUS_UPDATE",t.LOW_PRODUCER_SCORE="LOW_PRODUCER_SCORE",t.LOW_CONSUMER_SCORE="LOW_CONSUMER_SCORE",t.MEDIA_PERMISSION_ERROR="MEDIA_PERMISSION_ERROR",t.MEDIA_PERMISSION_UPDATE="MEDIA_PERMISSION_UPDATE",t.WAITLISTED="WAIT_LISTED",t.MESSAGE="websocket/message",t.ROOM_MESSAGE="websocket/room-message",t.PEER_JOINED_INTERNAL="peer/joined-internal",t.PEER_CLOSED="websocket/peer-closed",t.CONSUMER_CLOSED="websocket/consumer-closed",t.CONSUMER_PAUSED="websocket/consumer-paused",t.CONSUMER_RESUMED="websocket/consumer-resumed",t.PRODUCER_CLOSED="websocket/producer-closed",t.NEW_CONSUMER="websocket/new-consumer",t.PRODUCER_SCORE="websocket/producer-score",t.CONSUMER_SCORE="websocket/consumer-score",t.PRODUCER_TOGGLE="hive/producer-toggle",t.CONSUMER_TOGGLE="hive/consumer-toggle",t.SELECTED_PEERS_DIFF="hive/selected-peers-diff",t.UPDATE_ACTIVE="media/update-active",t.RESET_PRODUCER_STATE="hive/reset-producer-state",t.CF_TRANSPORT_STATE_CHANGED="cf/transport-state-changed",t.CF_ROOM_REJOINING="cf/room-rejoining",t.CF_ROOM_REJOIN_FAILED="cf/room-rejoining-failed",t.CF_ROOM_REJOINED="cf/room-rejoined",t.CF_TRANPSORT_RECONNECTING="cf/transport-reconnecting",t.ROOM_STATE="sockethub/room-state",t.PEER_DISPLAY_NAME_CHANGED="hive/display-name-changed",t.GET_STAGE_REQUESTS="GET_STAGE_REQUESTS",t.UPDATE_STAGE_REQUESTS="UPDATE_STAGE_REQUESTS",t.KICK_PEER="KICK_PEER",t.UPDATE_PEER_STAGE_STATUS="UPDATE_PEER_STAGE_STATUS",t.JOIN_MEDIA_ROOM="JOIN_MEDIA_ROOM",t.LEAVE_MEDIA_ROOM="LEAVE_MEDIA_ROOM",t.PIP_HANGUP="PIP_HANGUP",t.E2EE_ACTIVE_PRODUCER="E2EE_ACTIVE_PRODUCER",t.E2EE_INACTIVE_PRODUCER="E2EE_INACTIVE_PRODUCER",t.E2EE_ACTIVE_CONSUMER="E2EE_ACTIVE_CONSUMER",t.E2EE_INACTIVE_CONSUMER="E2EE_INACTIVE_CONSUMER",t.SOCKET_PEERS="SOCKET_PEERS",t.UPDATE_PERMISSIONS="UPDATE_PERMISSIONS",t.MAX_SPATIAL_LAYER_CHANGE="MAX_SPATIAL_LAYER_CHANGE",t.MUTE_SELF="MUTE_SELF",t.MUTE_SELF_VIDEO="MUTE_SELF_VIDEO",t))(M||{});class Qn extends ut.EventEmitter{constructor(e){super(),m(this,"logger"),this.logger=e,super.setMaxListeners(25)}emit(e,...i){return super.emit("*",e,...i),super.emit(e,...i)}on(e,i){var r;try{const n=this.listenerCount(e);n>25&&n%25===0&&((r=this.logger)==null||r.warn("DyteEventEmitter::maxListenersExceeded",{eventListener:{eventName:e.toString(),listenerCount:this.listenerCount(e)}}))}catch(n){}return super.on(e,i)}addListener(e,i){var r;try{const n=this.listenerCount(e);n>25&&n%25===0&&((r=this.logger)==null||r.warn("DyteEventEmitter::maxListenersExceeded",{eventListener:{eventName:e.toString(),listenerCount:this.listenerCount(e)}}))}catch(n){}return super.addListener(e,i)}off(e,i){return super.off(e,i)}once(e,i){return super.once(e,i)}prependListener(e,i){return super.prependListener(e,i)}prependOnceListener(e,i){return super.prependOnceListener(e,i)}removeListener(e,i){return super.removeListener(e,i)}removeAllListeners(e){return super.removeAllListeners(e)}listeners(e){return super.listeners(e)}listenerCount(e){return super.listenerCount(e)}}class Wt extends ut.EventEmitter{constructor(e){super(),m(this,"logger"),this.logger=e,super.setMaxListeners(25)}emit(e,...i){return super.emit("*",e,...i),super.emit(e,...i)}on(e,i){var r;try{const n=this.listenerCount(e);n>25&&n%25===0&&((r=this.logger)==null||r.warn("DyteEventEmitter::maxListenersExceeded",{eventListener:{eventName:e.toString(),listenerCount:this.listenerCount(e)}}))}catch(n){}return super.on(e,i)}addListener(e,i){var r;try{const n=this.listenerCount(e);n>25&&n%25===0&&((r=this.logger)==null||r.warn("DyteEventEmitter::maxListenersExceeded",{eventListener:{eventName:e.toString(),listenerCount:this.listenerCount(e)}}))}catch(n){}return super.addListener(e,i)}off(e,i){return super.off(e,i)}once(e,i){return super.once(e,i)}prependListener(e,i){return super.prependListener(e,i)}prependOnceListener(e,i){return super.prependOnceListener(e,i)}removeListener(e,i){return super.removeListener(e,i)}removeAllListeners(e){return super.removeAllListeners(e)}listeners(e){return super.listeners(e)}listenerCount(e){return super.listenerCount(e)}}function C_(t,e=2){return t.replace(/[^\u00BF-\u1FFF\u2C00-\uD7FF\w\s]/g,"").trim().split(/\s+/).slice(0,e).map(i=>i.charAt(0)).join("").toUpperCase()}const ef=1080,tf=1920,P_=(t,e,i,r,n,s)=>{let o=.5,c=.5;const d=n,l=s,h=Math.min(i/d,r/l);let p=d*h,v=l*h,k,E,C,b,R=1;return p<i&&(R=i/p),Math.abs(R-1)<1e-14&&v<r&&(R=r/v),p*=R,v*=R,C=d/(p/i),b=l/(v/r),k=(d-C)*o,E=(l-b)*c,k<0&&(k=0),E<0&&(E=0),C>d&&(C=d),b>l&&(b=l),[k,E,C,b,t,e,i,r]};var pi,Xn,St,mi,Fe,Oi,kr,At,He,Sa,Ta,Er,ka;const rf=class extends Wt{constructor(t,e,i,r){const n=t.getValue("logger");super(n),g(this,pi,void 0),g(this,Xn,void 0),g(this,St,void 0),g(this,mi,void 0),g(this,Fe,{height:ef,width:tf}),g(this,Oi,{brand:"#2160FD",background:"#141414",text:"#000000",videoBackground:"#191919",textOnBrand:"#EEEEEE"}),g(this,kr,void 0),g(this,At,{}),g(this,He,void 0),g(this,Sa,void 0),g(this,Ta,void 0),g(this,Er,void 0),g(this,ka,!1),m(this,"cleanupEventListeners",()=>{a(this,Xn).unsubscribe("stageStatus",this.handlePipMediaControls),a(this,He).removeListener("videoUpdate",this.onSelfVideoUpdateListener),a(this,He).removeListener("audioUpdate",this.onSelfAudioUpdateListener),a(this,He).removeListener("roomLeft",()=>this.disable())}),m(this,"enablePipMediaControls",()=>{this.mountAudioEvents(),this.mountVideoEvents()}),m(this,"onSelfVideoUpdateListener",({videoEnabled:s})=>{this.updateMediaSession("CAMERA",s)}),m(this,"onSelfAudioUpdateListener",({audioEnabled:s})=>{this.updateMediaSession("MIC",s)}),m(this,"handlePipMediaControls",s=>{s==="ON_STAGE"?this.enablePipMediaControls():this.unmountEvents()}),m(this,"eventCallback",s=>{s==="CAMERA"&&(a(this,He).videoEnabled?a(this,He).disableVideo():a(this,He).enableVideo(),this.emit("cameraToggled")),s==="MIC"&&(a(this,He).audioEnabled?a(this,He).disableAudio():a(this,He).enableAudio(),this.emit("micToggled")),s==="END"&&(a(this,Xn).getValue("peerSessionStore").emit(M.PIP_HANGUP),this.cleanupEventListeners(),this.emit("hangup"),this.cleanup())}),m(this,"unmountEvents",()=>{navigator.mediaSession===void 0||navigator.mediaSession.setCameraActive===void 0||(navigator.mediaSession.setActionHandler("togglemicrophone",void 0),navigator.mediaSession.setActionHandler("togglecamera",void 0))}),m(this,"animate",()=>{if(!this.isActive&&a(this,Er)==="active"){this.disable(!0);return}a(this,At)!==void 0&&this.paintCanvas(),a(this,kr)!==void 0&&f(this,kr,requestAnimationFrame(()=>this.animate()))}),m(this,"disable",(s=!1)=>{f(this,Er,"idle"),this.cleanupEventListeners(),cancelAnimationFrame(a(this,kr)),s!==!0&&document.body.removeChild(a(this,St)),f(this,kr,void 0),document.pictureInPictureElement&&document.exitPictureInPicture()}),f(this,Xn,t),f(this,Er,"idle"),f(this,He,e),f(this,Oi,{brand:e.config.designTokens.colors.brand[500],background:e.config.designTokens.colors.background[1e3],text:e.config.designTokens.colors.text,videoBackground:e.config.designTokens.colors.videoBg,textOnBrand:e.config.designTokens.colors.textOnBrand}),i&&this.setupIcon("pin",i),r&&this.setupIcon("handRaise",r)}static _init(t,e){return u(this,null,function*(){let i,r;try{i=yield Hc(S_),r=yield Hc(T_)}catch(n){}return new rf(t,e,i,r)})}setupIcon(t,e){return u(this,null,function*(){switch(t){case"handRaise":f(this,Ta,e);break;case"pin":f(this,Sa,e);break}})}overrideIcon(t,e){return u(this,null,function*(){switch(t){case"handRaise":f(this,Ta,yield Hc(e));break;case"pin":f(this,Sa,yield Hc(e));break}})}constructImage(t){const e=new Image,i=new Blob([t],{type:"image/svg+xml"}),r=window.URL.createObjectURL(i);return new Promise(n=>{e.onload=()=>{n(e),window.URL.revokeObjectURL(r)},e.src=r})}createVideoContainer(){f(this,St,document.createElement("div")),a(this,St).style.width="0.1px",a(this,St).style.height="0.1px",a(this,St).style.overflow="hidden",a(this,St).style.position="absolute",a(this,St).style.bottom="0",a(this,St).style.right="0",a(this,St).style.opacity="0",a(this,St).appendChild(a(this,mi))}setupEventListeners(){a(this,Xn).subscribe("stageStatus",this.handlePipMediaControls),a(this,He).addListener("videoUpdate",this.onSelfVideoUpdateListener),a(this,He).addListener("audioUpdate",this.onSelfAudioUpdateListener),a(this,He).addListener("roomLeft",()=>this.disable())}createCanvas(){const t=document.createElement("canvas");t.height=a(this,Fe).height,t.width=a(this,Fe).width,f(this,pi,t)}setupMediaSessionEvents(){navigator.mediaSession===void 0||navigator.mediaSession.setCameraActive===void 0||(navigator.mediaSession.setActionHandler("hangup",()=>{this.eventCallback("END")}),this.mountAudioEvents(),this.mountVideoEvents())}mountAudioEvents(){navigator.mediaSession===void 0||navigator.mediaSession.setMicrophoneActive===void 0||a(this,He).permissions.canProduceAudio&&navigator.mediaSession.setActionHandler("togglemicrophone",()=>{this.eventCallback("MIC")})}mountVideoEvents(){navigator.mediaSession===void 0||navigator.mediaSession.setCameraActive===void 0||a(this,He).permissions.canProduceVideo&&navigator.mediaSession.setActionHandler("togglecamera",()=>{this.eventCallback("CAMERA")})}getSources(){const t=Object.values(a(this,At)).reduce((e,i)=>(e[i.pinned?"pinned":"regular"].push(i),e),{pinned:[],regular:[]});return[...t.pinned,...t.regular]}drawEmptyTile(t,e,i,r){if(a(this,pi)===void 0)return;const n=a(this,pi).getContext("2d"),s=a(this,pi).width,o=0,c=0,d=e-o*2,l=i-o*2,h=Math.floor(s/d),p=Math.floor(t/h),v=t%h*(d+o)+o,k=p*(l+o)+o,{displayText:E,image:C}=r!=null?r:{};n.fillStyle=E||C?a(this,Oi).videoBackground:a(this,Oi).background,n.strokeStyle=a(this,Oi).brand,n.beginPath(),n.moveTo(v+c,k),n.arcTo(v+d,k,v+d,k+c,c),n.arcTo(v+d,k+l,v+d-c,k+l,c),n.arcTo(v,k+l,v,k+l-c,c),n.arcTo(v,k,v+c,k,c),n.closePath(),n.fill(),n.stroke();const b=d/6,R=d/2+v,j=l/2+k;n.save(),(E||C)&&(n.beginPath(),n.arc(R,j,b,0,Math.PI*2),n.fillStyle=a(this,Oi).brand,n.fill(),C?(n.clip(),n.drawImage(C,R-b,j-b,b*2,b*2),n.restore()):E&&(n.fillStyle=a(this,Oi).textOnBrand,n.font=`${b/2}px sans-serif`,n.textAlign="center",n.textBaseline="middle",n.fillText(E,R,j)),this.drawIcons(r,v,k,Math.max(d,l)))}drawIcons(t,e,i,r){const n=Math.min(Math.max(r*.15,100),200),s=n*.2,o=n*.2;let c=e+s;const d=i+s,l=h=>{const p=a(this,pi).getContext("2d");p.save(),p.fillStyle=a(this,Oi).background,p.beginPath(),p.moveTo(c+o,d),p.arcTo(c+n,d,c+n,d+o,o),p.arcTo(c+n,d+n,c+n-o,d+n,o),p.arcTo(c,d+n,c,d+n-o,o),p.arcTo(c,d,c+o,d,o),p.closePath(),p.fill(),typeof h=="string"?(p.font=`${n/1.5}px sans-serif`,p.fillStyle=a(this,Oi).text,p.textAlign="center",p.textBaseline="top",p.fillText(h,n/2+c,d+s)):p.drawImage(h,c+s,d+s,n-s*2,n-s*2),c+=n+s,p.restore()};t.pinned&&l(a(this,Sa)),t.handRaised&&l(a(this,Ta))}drawTile(t,e,i){var r,n;if(a(this,pi)===void 0)return;const s=a(this,pi).getContext("2d"),o=this.getSources();let c=0,d=0;for(;c<a(this,Fe).height-5;){let l=0;for(;l<a(this,Fe).width-5&&d<i;){if((r=o[d])!=null&&r.enabled){const h=o[d].element,[p,v,k,E,C,b,R,j]=P_(l,c,t,e,h.videoWidth,h.videoHeight);(n=h==null?void 0:h.classList)!=null&&n.contains("mirror")?(s.save(),s.scale(-1,1),s.drawImage(h,p,v,k,E,-1*C,b,-1*R,j),s.restore()):s.drawImage(h,p,v,k,E,C,b,R,j),this.drawIcons(o[d],C,b,Math.max(R,j))}else this.drawEmptyTile(d,t,e,o[d]);d+=1,l+=t}c+=e}}calcGridElemSize(t){switch(t){case 0:case 1:return[a(this,Fe).width,a(this,Fe).height];case 2:return[Math.floor(a(this,Fe).width/2),a(this,Fe).height];case 3:case 4:return[Math.floor(a(this,Fe).width/2),Math.floor(a(this,Fe).height/2)];case 5:case 6:return[Math.floor(a(this,Fe).width/3),Math.floor(a(this,Fe).height/2)];case 7:case 8:case 9:return[Math.floor(a(this,Fe).width/3),Math.floor(a(this,Fe).height/3)];default:return[Math.floor(a(this,Fe).width/3),Math.floor(a(this,Fe).height/2)]}}paintCanvas(){let t=this.getSources().length;t!==1&&(t=t%2>0?t+1:t);const[e,i]=this.calcGridElemSize(t);this.drawTile(e,i,t)}isSupported(){var t;return!!window.chrome&&document.pictureInPictureEnabled&&((t=a(this,He).config)==null?void 0:t.viewType)!=="LIVESTREAM"}get isActive(){return document.pictureInPictureElement!==null}cleanup(){if(f(this,ka,!1),this.isSupported()&&document.exitPictureInPicture!==void 0&&document.pictureInPictureElement!==null&&document.exitPictureInPicture(),a(this,St))try{document.body.removeChild(a(this,St))}catch(t){}this.removeAllSources(),f(this,pi,void 0),f(this,mi,void 0),f(this,kr,void 0)}init({height:t,width:e}={}){if(!this.isSupported())throw this.logger.error("DytePip.unsupported"),new Error("Picture-in-picture is not available in this environment");if(a(this,ka))return;f(this,ka,!0),this.createCanvas(),this.setupMediaSessionEvents();const i=document.createElement("video");f(this,Fe,{height:t!=null?t:ef,width:e!=null?e:tf}),i.height=a(this,Fe).height,i.width=a(this,Fe).width,i.autoplay=!0,i.muted=!0,i.srcObject=a(this,pi).captureStream(24),f(this,mi,i),a(this,mi).onloadedmetadata=()=>{try{this.emit("pipStarted"),a(this,mi).onleavepictureinpicture=()=>{this.emit("pipEnded")}}catch(r){this.emit("pipEnded")}},this.createVideoContainer(),this.paintCanvas()}updateMediaSession(t,e){navigator.mediaSession!==void 0&&(t==="CAMERA"&&navigator.mediaSession.setCameraActive!==void 0&&navigator.mediaSession.setCameraActive(e),t==="MIC"&&navigator.mediaSession.setMicrophoneActive!==void 0&&navigator.mediaSession.setMicrophoneActive(e))}enableSource(t){a(this,At)[t]!==void 0&&(a(this,At)[t].enabled=!0)}disableSource(t){a(this,At)[t]!==void 0&&(a(this,At)[t].enabled=!1)}generateAvatar(t,e){return u(this,null,function*(){if(!e)return;const i=new Image;try{const r=yield(yield fetch(e)).blob(),n=window.URL.createObjectURL(r);i.onload=()=>{this.updateSource(t,{image:i}),window.URL.revokeObjectURL(n)},i.src=n}catch(r){this.logger.error("DytePip::GenerateAvatar",{error:r})}})}addSource(t,e,i,r=!1,n=void 0,s=void 0,o=!1){this.logger.debug("DytePIP::AddSource",{pip:{id:t,handRaised:o}}),a(this,At)[t]={id:t,element:e,enabled:i,pinned:r,displayText:n?C_(n):void 0,imageUrl:s,handRaised:o},s&&this.generateAvatar(t,s)}updateSource(t,e){this.logger.info("DytePIP::UpdateSource",{pip:{id:t,handRaised:e.handRaised}});const i=a(this,At)[t];i&&(a(this,At)[t]=V(V({},i),e))}removeSource(t){delete a(this,At)[t]}removePinnedSource(){Object.values(a(this,At)).forEach(t=>{t.pinned&&this.removeSource(t.id)})}removeAllSources(){f(this,At,{})}enable(){f(this,Er,"activating"),this.setupEventListeners(),this.updateMediaSession("CAMERA",a(this,He).videoEnabled),this.updateMediaSession("MIC",a(this,He).audioEnabled),document.body.appendChild(a(this,St)),f(this,kr,requestAnimationFrame(()=>this.animate())),a(this,mi).onloadedmetadata=()=>{a(this,mi).requestPictureInPicture().then(()=>{f(this,Er,"active")})},a(this,mi).readyState===4&&a(this,mi).requestPictureInPicture().then(()=>{f(this,Er,"active")})}};let R_=rf;pi=new WeakMap,Xn=new WeakMap,St=new WeakMap,mi=new WeakMap,Fe=new WeakMap,Oi=new WeakMap,kr=new WeakMap,At=new WeakMap,He=new WeakMap,Sa=new WeakMap,Ta=new WeakMap,Er=new WeakMap,ka=new WeakMap;var zi;(function(t){t[t.PUBLISHER=0]="PUBLISHER",t[t.SUBSCRIBER=1]="SUBSCRIBER"})(zi||(zi={}));var Ni;(function(t){t[t.AUDIO=0]="AUDIO",t[t.VIDEO=1]="VIDEO"})(Ni||(Ni={}));class M_ extends y{constructor(){super("media.Codec",[{no:1,name:"channels",kind:"scalar",opt:!0,T:5},{no:2,name:"clock_rate",kind:"scalar",T:5},{no:3,name:"mime_type",kind:"scalar",T:9},{no:4,name:"sdp_fmtp_line",kind:"scalar",opt:!0,T:9},{no:5,name:"payload_type",kind:"scalar",opt:!0,T:13}])}}const nf=new M_;class A_ extends y{constructor(){super("media.HeaderExtension",[{no:1,name:"direction",kind:"scalar",opt:!0,T:9},{no:2,name:"uri",kind:"scalar",T:9}])}}const D_=new A_;class O_ extends y{constructor(){super("media.Fingerprint",[{no:1,name:"algorithm",kind:"scalar",T:9},{no:2,name:"value",kind:"scalar",T:9}])}}new O_;class N_ extends y{constructor(){super("media.SessionDescription",[{no:1,name:"target",kind:"enum",T:()=>["media.Target",zi]},{no:2,name:"type",kind:"scalar",T:9},{no:3,name:"sdp",kind:"scalar",T:9}])}}const gi=new N_;class V_ extends y{constructor(){super("media.ProducerPayload",[{no:1,name:"kind",kind:"scalar",T:9},{no:2,name:"paused",kind:"scalar",T:8},{no:3,name:"screen_share",kind:"scalar",T:8},{no:4,name:"msid",kind:"scalar",T:9},{no:5,name:"app_data",kind:"scalar",opt:!0,T:9},{no:6,name:"mime_type",kind:"scalar",opt:!0,T:9}])}}const L_=new V_;class x_ extends y{constructor(){super("media.CreateTransportRequest",[{no:1,name:"consuming",kind:"scalar",T:8},{no:2,name:"force_tcp",kind:"scalar",opt:!0,T:8},{no:3,name:"description",kind:"message",T:()=>gi},{no:4,name:"private_ice",kind:"scalar",opt:!0,T:8},{no:5,name:"producers",kind:"message",repeat:1,T:()=>L_}])}}const U_=new x_;class F_ extends y{constructor(){super("media.AudioActivityRequest",[{no:1,name:"producer_id",kind:"scalar",T:9},{no:2,name:"energy",kind:"scalar",T:5},{no:3,name:"silent",kind:"scalar",T:8}])}}const B_=new F_;class W_ extends y{constructor(){super("media.CreateTransportResponse",[{no:1,name:"transport_id",kind:"scalar",T:9},{no:2,name:"description",kind:"message",T:()=>gi},{no:3,name:"transcription_enabled",kind:"scalar",opt:!0,T:8},{no:4,name:"producer_ids",kind:"scalar",repeat:2,T:9}])}}const sf=new W_;class j_ extends y{constructor(){super("media.RenegotiateRequest",[{no:1,name:"transport_id",kind:"scalar",T:9},{no:2,name:"description",kind:"message",T:()=>gi}])}}const H_=new j_;class G_ extends y{constructor(){super("media.RenegotiateResponse",[{no:1,name:"transport_id",kind:"scalar",T:9},{no:2,name:"description",kind:"message",T:()=>gi}])}}new G_;class q_ extends y{constructor(){super("media.NestedScore",[{no:1,name:"encoding_idx",kind:"scalar",T:5},{no:2,name:"rid",kind:"scalar",T:9},{no:3,name:"score",kind:"scalar",T:5},{no:4,name:"ssrc",kind:"scalar",T:3,L:0}])}}const $_=new q_;class J_ extends y{constructor(){super("media.ProducerTrack",[{no:1,name:"track_id",kind:"scalar",T:9},{no:2,name:"producer_id",kind:"scalar",T:9},{no:3,name:"stream_id",kind:"scalar",T:9}])}}const K_=new J_;class z_ extends y{constructor(){super("media.ProducerEntry",[{no:1,name:"producing_transport_id",kind:"scalar",T:9},{no:2,name:"producer_id",kind:"scalar",T:9}])}}new z_;class Y_ extends y{constructor(){super("media.ConsumerEntry",[{no:1,name:"consuming_transport_id",kind:"scalar",T:9},{no:2,name:"consumer_id",kind:"scalar",T:9}])}}new Y_;class Q_ extends y{constructor(){super("media.ProducerState",[{no:1,name:"producer_id",kind:"scalar",T:9},{no:2,name:"kind",kind:"enum",T:()=>["media.ProducerKind",Ni]},{no:3,name:"pause",kind:"scalar",T:8},{no:4,name:"screen_share",kind:"scalar",T:8},{no:5,name:"app_data",kind:"scalar",opt:!0,T:9},{no:6,name:"producing_transport_id",kind:"scalar",opt:!0,T:9},{no:7,name:"mime_type",kind:"scalar",opt:!0,T:9},{no:8,name:"codec",kind:"message",T:()=>nf}])}}const Ea=new Q_;class X_ extends y{constructor(){super("media.ConsumerState",[{no:1,name:"consumer_id",kind:"scalar",T:9},{no:2,name:"producer_state",kind:"message",T:()=>Ea},{no:3,name:"producer_track",kind:"message",T:()=>K_},{no:4,name:"error_code",kind:"scalar",opt:!0,T:9}])}}const Z_=new X_;class eI extends y{constructor(){super("media.ProducerIdToConsumerMap",[{no:1,name:"map",kind:"map",K:9,V:{kind:"message",T:()=>Z_}}])}}const af=new eI;class tI extends y{constructor(){super("media.PeerRtpCapabilitites",[{no:1,name:"sender",kind:"message",T:()=>df},{no:2,name:"receiver",kind:"message",T:()=>df}])}}const of=new tI;class iI extends y{constructor(){super("media.RtpCapability",[{no:1,name:"codecs",kind:"message",repeat:1,T:()=>nf},{no:2,name:"header_extensions",kind:"message",repeat:1,T:()=>D_}])}}const cf=new iI;class rI extends y{constructor(){super("media.RtpCapabilitites",[{no:1,name:"audio",kind:"message",T:()=>cf},{no:2,name:"video",kind:"message",T:()=>cf}])}}const df=new rI;class nI extends y{constructor(){super("media.PreferredCodec",[{no:1,name:"audio",kind:"scalar",opt:!0,T:9},{no:2,name:"video",kind:"scalar",opt:!0,T:9}])}}const sI=new nI;class aI extends y{constructor(){super("media.Simulcast",[{no:1,name:"preferred_rid",kind:"scalar",opt:!0,T:9},{no:2,name:"priority_ordering",kind:"scalar",opt:!0,T:9},{no:3,name:"rid_not_available",kind:"scalar",opt:!0,T:9}])}}const lf=new aI;class oI extends y{constructor(){super("media.edge.GeoLocation",[{no:1,name:"latitude",kind:"scalar",T:2},{no:2,name:"longitude",kind:"scalar",T:2},{no:3,name:"region",kind:"scalar",opt:!0,T:9}])}}const cI=new oI;class dI extends y{constructor(){super("media.edge.PeerJoinRequest",[{no:1,name:"display_name",kind:"scalar",opt:!0,T:9},{no:2,name:"prejoined",kind:"scalar",T:8},{no:3,name:"room_uuid",kind:"scalar",T:9},{no:4,name:"meeting_id",kind:"scalar",opt:!0,T:9},{no:5,name:"preset",kind:"scalar",opt:!0,T:12},{no:6,name:"user_id",kind:"scalar",opt:!0,T:9},{no:7,name:"organization_id",kind:"scalar",opt:!0,T:9},{no:8,name:"location",kind:"message",T:()=>cI},{no:9,name:"capabilities",kind:"message",T:()=>of}])}}const lI=new dI;class uI extends y{constructor(){super("media.edge.PeerJoinCompleteRequest",[])}}const hI=new uI;class pI extends y{constructor(){super("media.edge.PeerLeaveRequest",[{no:1,name:"close_room",kind:"scalar",T:8}])}}const mI=new pI;class gI extends y{constructor(){super("media.edge.ConsumeMultipleProducerRequest",[{no:1,name:"producer_ids",kind:"scalar",repeat:2,T:9},{no:2,name:"paused",kind:"scalar",opt:!0,T:8}])}}new gI;class fI extends y{constructor(){super("media.edge.ConsumePeerRequest",[{no:1,name:"producing_peer_id",kind:"scalar",T:9},{no:2,name:"paused",kind:"scalar",opt:!0,T:8},{no:3,name:"producer_id",kind:"scalar",opt:!0,T:9},{no:4,name:"preferred_codec",kind:"message",T:()=>sI},{no:5,name:"producing_transport_id",kind:"scalar",opt:!0,T:9},{no:6,name:"simulcast",kind:"message",T:()=>lf}])}}const vI=new fI;class yI extends y{constructor(){super("media.edge.ConsumePeersRequest",[{no:1,name:"requests",kind:"message",repeat:1,T:()=>vI},{no:2,name:"consuming_transport_id",kind:"scalar",opt:!0,T:9}])}}const SI=new yI;class TI extends y{constructor(){super("media.edge.UpdateConsumerSimulcastConfigRequest",[{no:1,name:"producer_id",kind:"scalar",T:9},{no:2,name:"simulcast",kind:"message",T:()=>lf},{no:3,name:"producing_transport_id",kind:"scalar",T:9},{no:4,name:"mid",kind:"scalar",T:9}])}}const kI=new TI;class EI extends y{constructor(){super("media.edge.UpdateConsumersSimulcastConfigRequest",[{no:1,name:"requests",kind:"message",repeat:1,T:()=>kI},{no:2,name:"consuming_transport_id",kind:"scalar",opt:!0,T:9}])}}const bI=new EI;class wI extends y{constructor(){super("media.edge.ProducerCreateRequest",[{no:1,name:"kind",kind:"scalar",T:9},{no:2,name:"paused",kind:"scalar",T:8},{no:3,name:"screen_share",kind:"scalar",T:8},{no:4,name:"description",kind:"message",T:()=>gi},{no:5,name:"msid",kind:"scalar",T:9},{no:6,name:"app_data",kind:"scalar",opt:!0,T:9},{no:7,name:"mime_type",kind:"scalar",opt:!0,T:9},{no:8,name:"producing_transport_id",kind:"scalar",opt:!0,T:9}])}}const _I=new wI;class II extends y{constructor(){super("media.edge.SelectedPeersRequest",[])}}new II;class CI extends y{constructor(){super("media.edge.GlobalPeerPinningRequest",[{no:1,name:"participant_id",kind:"scalar",T:9}])}}const PI=new CI;class RI extends y{constructor(){super("media.edge.ProducerToggleRequest",[{no:1,name:"producer_id",kind:"scalar",T:9},{no:2,name:"pause",kind:"scalar",T:8}])}}const $c=new RI;class MI extends y{constructor(){super("media.edge.ConsumerToggleRequest",[{no:1,name:"consumer_id",kind:"scalar",T:9},{no:2,name:"pause",kind:"scalar",T:8}])}}new MI;class AI extends y{constructor(){super("media.edge.ProducerCloseRequest",[{no:1,name:"producer_id",kind:"scalar",T:9},{no:2,name:"description",kind:"message",T:()=>gi},{no:3,name:"producing_transport_id",kind:"scalar",opt:!0,T:9}])}}const DI=new AI;class OI extends y{constructor(){super("media.edge.ConsumerCloseRequest",[{no:1,name:"consumer_ids",kind:"scalar",repeat:2,T:9},{no:2,name:"description",kind:"message",T:()=>gi},{no:3,name:"consuming_transport_id",kind:"scalar",opt:!0,T:9}])}}const NI=new OI;class VI extends y{constructor(){super("media.edge.KickPeerRequest",[{no:1,name:"participant_id",kind:"scalar",T:9}])}}new VI;class LI extends y{constructor(){super("media.edge.KickAllPeersRequest",[{no:1,name:"propagate_kick_across_rooms",kind:"scalar",T:8}])}}const uf=new LI;class xI extends y{constructor(){super("media.edge.PeerDisplayNameEditRequest",[{no:1,name:"participant_id",kind:"scalar",T:9},{no:2,name:"display_name",kind:"scalar",T:9}])}}const UI=new xI;class FI extends y{constructor(){super("media.edge.HostMediaControlForPeerRequest",[{no:1,name:"participant_id",kind:"scalar",T:9},{no:2,name:"audio",kind:"scalar",T:8},{no:3,name:"video",kind:"scalar",T:8},{no:4,name:"scree_share",kind:"scalar",T:8}])}}const BI=new FI;class WI extends y{constructor(){super("media.edge.HostMediaControlForAllPeerRequest",[{no:1,name:"audio",kind:"scalar",T:8},{no:2,name:"video",kind:"scalar",T:8},{no:3,name:"screen_share",kind:"scalar",T:8}])}}const jI=new WI;class HI extends y{constructor(){super("media.edge.GetRoomStateResponse",[{no:1,name:"display_title",kind:"scalar",T:9},{no:2,name:"locked_mode",kind:"scalar",T:8},{no:3,name:"room_uuid",kind:"scalar",T:9},{no:4,name:"room_name",kind:"scalar",T:9},{no:5,name:"current_peer_id",kind:"scalar",T:9},{no:6,name:"is_recording",kind:"scalar",opt:!0,T:8},{no:7,name:"recorder_participant_id",kind:"scalar",opt:!0,T:9},{no:8,name:"pinned_peer_ids",kind:"scalar",repeat:2,T:9}])}}const GI=new HI;class qI extends y{constructor(){super("media.edge.ErrorResponse",[{no:1,name:"error_message",kind:"scalar",T:9},{no:2,name:"event_id",kind:"scalar",T:5}])}}const $I=new qI;class JI extends y{constructor(){super("media.edge.EmptyResponse",[])}}new JI;class KI extends y{constructor(){super("media.edge.RoomParticipants",[{no:1,name:"peer_id",kind:"scalar",T:9},{no:2,name:"producer_states",kind:"message",repeat:1,T:()=>Ea},{no:3,name:"display_name",kind:"scalar",T:9},{no:4,name:"user_id",kind:"scalar",opt:!0,T:9},{no:5,name:"capabilities",kind:"message",T:()=>of}])}}const hf=new KI;class zI extends y{constructor(){super("media.edge.SelectedPeersResponse",[{no:1,name:"audio_peers",kind:"scalar",repeat:2,T:9},{no:2,name:"compulsory_peers",kind:"scalar",repeat:2,T:9}])}}const yu=new zI;class YI extends y{constructor(){super("media.edge.SelectedPeersDiffEntry",[{no:1,name:"peer_id",kind:"scalar",T:9},{no:2,name:"priority",kind:"scalar",T:5}])}}const QI=new YI;class XI extends y{constructor(){super("media.edge.SelectedPeersDiffResponse",[{no:1,name:"entries",kind:"message",repeat:1,T:()=>QI}])}}const pf=new XI;class ZI extends y{constructor(){super("media.edge.PeerJoinResponse",[])}}new ZI;class eC extends y{constructor(){super("media.edge.PeerJoinCompleteResponse",[{no:1,name:"room_state",kind:"message",T:()=>GI},{no:2,name:"participants",kind:"message",repeat:1,T:()=>hf},{no:3,name:"selected_peers",kind:"message",T:()=>yu},{no:4,name:"max_preferred_streams",kind:"scalar",T:5}])}}const Su=new eC;class tC extends y{constructor(){super("media.edge.PeerLeaveResponse",[{no:1,name:"closed",kind:"scalar",T:8}])}}const iC=new tC;class rC extends y{constructor(){super("media.edge.ConsumeMultipleProducerResponse",[{no:1,name:"status",kind:"scalar",T:8},{no:2,name:"consumer_ids_map",kind:"message",T:()=>af}])}}new rC;class nC extends y{constructor(){super("media.edge.ConsumePeerResponse",[{no:1,name:"status",kind:"scalar",T:8},{no:2,name:"consumer_ids_map",kind:"message",T:()=>af},{no:3,name:"description",kind:"message",T:()=>gi}])}}const sC=new nC;class aC extends y{constructor(){super("media.edge.ProducerCreateResponse",[{no:1,name:"status",kind:"scalar",T:8},{no:2,name:"producer_id",kind:"scalar",T:9},{no:4,name:"description",kind:"message",T:()=>gi}])}}const oC=new aC;class cC extends y{constructor(){super("media.edge.ProducerScoreResponse",[{no:1,name:"responseid",kind:"scalar",T:9},{no:2,name:"score",kind:"message",T:()=>$_}])}}new cC;class dC extends y{constructor(){super("media.edge.ActiveSpeakerResponse",[{no:1,name:"responsepeer_id",kind:"scalar",T:9},{no:2,name:"volume",kind:"scalar",T:5}])}}new dC;class lC extends y{constructor(){super("media.edge.NoActiveSpeakerResponse",[])}}new lC;class uC extends y{constructor(){super("media.edge.ProducerToggleResponse",[])}}new uC;class hC extends y{constructor(){super("media.edge.ConsumerToggleResponse",[])}}new hC;class pC extends y{constructor(){super("media.edge.ProducerClosingResponse",[{no:1,name:"description",kind:"message",T:()=>gi}])}}const mC=new pC;class gC extends y{constructor(){super("media.edge.ConsumerClosingResponse",[{no:1,name:"description",kind:"message",T:()=>gi}])}}const fC=new gC;class vC extends y{constructor(){super("media.edge.GlobalPeerPinningResponse",[])}}new vC;class yC extends y{constructor(){super("media.edge.KickPeerResponse",[{no:1,name:"status",kind:"scalar",T:9}])}}new yC;class SC extends y{constructor(){super("media.edge.KickAllPeersResponse",[{no:1,name:"status",kind:"scalar",T:9}])}}new SC;class TC extends y{constructor(){super("media.edge.HostMediaControlForPeerResponse",[{no:1,name:"status",kind:"scalar",T:9}])}}const kC=new TC;class EC extends y{constructor(){super("media.edge.HostMediaControlForAllPeerResponse",[{no:1,name:"status",kind:"scalar",T:9}])}}const bC=new EC;class wC extends y{constructor(){super("media.edge.PeerDisplayNameEditResponse",[{no:1,name:"status",kind:"scalar",T:9}])}}const _C=new wC;class IC extends y{constructor(){super("media.edge.PeerJoinBroadcastResponse",[{no:1,name:"participant",kind:"message",T:()=>hf}])}}const mf=new IC;class CC extends y{constructor(){super("media.edge.TrackSubscriptionKind",[{no:1,name:"audio",kind:"scalar",T:8},{no:2,name:"video",kind:"scalar",T:8}])}}const gf=new CC;class PC extends y{constructor(){super("media.edge.TrackSubscription",[{no:1,name:"label",kind:"scalar",T:9},{no:2,name:"webcam",kind:"message",T:()=>gf},{no:3,name:"screenshare",kind:"message",T:()=>gf}])}}const RC=new PC;class MC extends y{constructor(){super("media.edge.PeerProducingTransportCreateBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9},{no:2,name:"transport_details",kind:"message",T:()=>sf},{no:3,name:"track_subscriptions",kind:"message",repeat:1,T:()=>RC}])}}new MC;class AC extends y{constructor(){super("media.edge.PeerProducerCreateBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9},{no:2,name:"producer_state",kind:"message",T:()=>Ea}])}}const DC=new AC;class OC extends y{constructor(){super("media.edge.PeerProducerToggleBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9},{no:2,name:"producer_state",kind:"message",T:()=>Ea},{no:3,name:"initiator_participant_id",kind:"scalar",opt:!0,T:9}])}}const ff=new OC;class NC extends y{constructor(){super("media.edge.PeerProducerCloseBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9},{no:2,name:"producer_state",kind:"message",T:()=>Ea}])}}const VC=new NC;class LC extends y{constructor(){super("media.edge.PeerLeaveBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9}])}}const Tu=new LC;class xC extends y{constructor(){super("media.edge.GlobalPeerPinningBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9}])}}const vf=new xC;class UC extends y{constructor(){super("media.edge.GlobalPeerUnPinningBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9}])}}new UC;class FC extends y{constructor(){super("media.edge.RecordingStartedBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9}])}}new FC;class BC extends y{constructor(){super("media.edge.RecordingStoppedBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9}])}}new BC;class WC extends y{constructor(){super("media.edge.PeerDisplayNameEditBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9},{no:2,name:"display_name",kind:"scalar",T:9}])}}new WC;class jC extends y{constructor(){super("media.edge.PeerPingRequestBroadcastResponse",[{no:1,name:"password",kind:"scalar",T:9}])}}new jC;class HC extends y{constructor(){super("media.edge.MediaRoomTerminationBroadcastResponse",[{no:1,name:"reason",kind:"scalar",T:9}])}}new HC;class GC extends y{constructor(){super("socket.ai.MeetingTranscript",[{no:1,name:"meeting_id",kind:"scalar",T:9},{no:2,name:"transcript",kind:"scalar",T:9},{no:3,name:"is_partial",kind:"scalar",T:8}])}}const ku=new GC;class qC extends y{constructor(){super("socket.api.BaseSocketHubMessage",[{no:1,name:"event",kind:"scalar",T:5},{no:2,name:"id",kind:"scalar",T:9},{no:3,name:"peer_id",kind:"scalar",T:9},{no:4,name:"room_id",kind:"scalar",T:9},{no:5,name:"user_id",kind:"scalar",T:9},{no:6,name:"payload",kind:"scalar",T:12},{no:7,name:"error",kind:"scalar",opt:!0,T:8},{no:8,name:"sid",kind:"scalar",opt:!0,T:9}])}}new qC;class $C extends y{constructor(){super("socket.api.ErrorMessage",[{no:1,name:"code",kind:"scalar",opt:!0,T:5},{no:2,name:"message",kind:"scalar",T:9}])}}const JC=new $C;var on;(function(t){t[t.BROWSER=0]="BROWSER",t[t.TRACK=1]="TRACK",t[t.COMPOSITE=2]="COMPOSITE"})(on||(on={}));var Yi;(function(t){t[t.UNSPECIFIED=0]="UNSPECIFIED",t[t.ON_STAGE=1]="ON_STAGE",t[t.APPROVED_STAGE=2]="APPROVED_STAGE",t[t.REQUESTED_STAGE=3]="REQUESTED_STAGE",t[t.OFF_STAGE=4]="OFF_STAGE"})(Yi||(Yi={}));var Eu;(function(t){t[t.NONE=0]="NONE",t[t.RECORDER=1]="RECORDER",t[t.LIVESTREAMER=2]="LIVESTREAMER"})(Eu||(Eu={}));var bu;(function(t){t[t.PEERS=0]="PEERS",t[t.ROOMS=1]="ROOMS"})(bu||(bu={}));var Jc;(function(t){t[t.HIVE=0]="HIVE",t[t.CHAT=1]="CHAT",t[t.PING=2]="PING"})(Jc||(Jc={}));class KC extends y{constructor(){super("socket.room.PeerFlags",[{no:1,name:"preset_name",kind:"scalar",T:9},{no:2,name:"recorder_type",kind:"scalar",T:9},{no:3,name:"hidden_participant",kind:"scalar",T:8}])}}const zC=new KC;class YC extends y{constructor(){super("socket.room.Peer",[{no:1,name:"peer_id",kind:"scalar",T:9},{no:2,name:"user_id",kind:"scalar",T:9},{no:3,name:"display_name",kind:"scalar",T:9},{no:4,name:"stage_type",kind:"enum",opt:!0,T:()=>["socket.room.StageType",Yi,"STAGE_TYPE_"]},{no:5,name:"custom_participant_id",kind:"scalar",opt:!0,T:9},{no:6,name:"preset_id",kind:"scalar",opt:!0,T:9},{no:7,name:"display_picture_url",kind:"scalar",opt:!0,T:9},{no:8,name:"waitlisted",kind:"scalar",T:8},{no:9,name:"flags",kind:"message",T:()=>zC}])}}const Kc=new YC;class QC extends y{constructor(){super("socket.room.PeerInfoResponse",[{no:1,name:"peer",kind:"message",T:()=>Kc}])}}const Zn=new QC;class XC extends y{constructor(){super("socket.room.PeerStatusUpdate",[{no:1,name:"peer_id",kind:"scalar",T:9},{no:2,name:"user_id",kind:"scalar",T:9},{no:3,name:"stage_type",kind:"enum",opt:!0,T:()=>["socket.room.StageType",Yi,"STAGE_TYPE_"]}])}}const yf=new XC;class ZC extends y{constructor(){super("socket.room.RoomPeersInfoRequest",[{no:1,name:"seach_query",kind:"scalar",T:9},{no:2,name:"limit",kind:"scalar",T:5},{no:3,name:"offset",kind:"scalar",T:5}])}}const eP=new ZC;class tP extends y{constructor(){super("socket.room.RoomPeersInfoResponse",[{no:1,name:"peers",kind:"message",repeat:1,T:()=>Kc}])}}const wu=new tP;class iP extends y{constructor(){super("socket.room.RoomPeerCountResponse",[{no:1,name:"count",kind:"scalar",T:4,L:2}])}}const Sf=new iP;class rP extends y{constructor(){super("socket.room.Room",[{no:1,name:"room_id",kind:"scalar",T:9},{no:2,name:"title",kind:"scalar",T:9},{no:4,name:"created_at",kind:"scalar",T:4,L:2},{no:5,name:"active_recordings",kind:"message",repeat:1,T:()=>sP},{no:6,name:"room_uuid",kind:"scalar",opt:!0,T:9}])}}const Tf=new rP;class nP extends y{constructor(){super("socket.room.ActiveRecording",[{no:1,name:"recording_id",kind:"scalar",T:9},{no:2,name:"recording_type",kind:"enum",T:()=>["common.RecordingType",on]},{no:3,name:"recording_status",kind:"scalar",T:9}])}}const sP=new nP;class aP extends y{constructor(){super("socket.room.RoomInfoResponse",[{no:1,name:"room",kind:"message",T:()=>Tf}])}}const kf=new aP;class oP extends y{constructor(){super("socket.room.GetPeerInfoRequest",[{no:1,name:"peer_id",kind:"scalar",T:9}])}}const Ef=new oP;class cP extends y{constructor(){super("socket.room.UpdatePeerInfoRequest",[{no:1,name:"peer_id",kind:"scalar",T:9},{no:2,name:"display_name",kind:"scalar",opt:!0,T:9}])}}new cP;class dP extends y{constructor(){super("socket.room.JoinRoomRequest",[{no:1,name:"peer",kind:"message",T:()=>Kc},{no:3,name:"room_uuid",kind:"scalar",T:9},{no:4,name:"organization_id",kind:"scalar",opt:!0,T:9},{no:5,name:"use_hive",kind:"scalar",opt:!0,T:8},{no:6,name:"preset",kind:"scalar",opt:!0,T:12},{no:7,name:"capabilities",kind:"enum",repeat:1,T:()=>["socket.room.Capabilities",Jc,"CAPABILITIES_"]},{no:8,name:"timestamp",kind:"scalar",opt:!0,T:4,L:2}])}}const lP=new dP;class uP extends y{constructor(){super("socket.room.LeaveRoomRequest",[{no:1,name:"peer",kind:"message",T:()=>Kc},{no:2,name:"timestamp",kind:"scalar",opt:!0,T:4,L:2}])}}const hP=new uP;class pP extends y{constructor(){super("socket.room.UpdateRoomInfoRequest",[{no:1,name:"room",kind:"message",T:()=>Tf}])}}new pP;class mP extends y{constructor(){super("socket.room.GetConnectedRoomsDumpRequest",[])}}new mP;class gP extends y{constructor(){super("socket.room.ServiceError",[{no:1,name:"message",kind:"scalar",opt:!0,T:9},{no:2,name:"code",kind:"scalar",opt:!0,T:9}])}}const _u=new gP;class fP extends y{constructor(){super("socket.room.ConnectedMeetingPeer",[{no:1,name:"id",kind:"scalar",opt:!0,T:9},{no:2,name:"display_name",kind:"scalar",opt:!0,T:9},{no:3,name:"custom_participant_id",kind:"scalar",opt:!0,T:9},{no:4,name:"preset_id",kind:"scalar",opt:!0,T:9},{no:5,name:"display_picture_url",kind:"scalar",opt:!0,T:9}])}}const vP=new fP;class yP extends y{constructor(){super("socket.room.ConnectedMeetingDump",[{no:1,name:"id",kind:"scalar",opt:!0,T:9},{no:2,name:"title",kind:"scalar",opt:!0,T:9},{no:3,name:"participants",kind:"message",repeat:1,T:()=>vP}])}}const bf=new yP;class SP extends y{constructor(){super("socket.room.GetConnectedRoomsDumpResponse",[{no:1,name:"parent_meeting",kind:"message",T:()=>bf},{no:2,name:"meetings",kind:"message",repeat:1,T:()=>bf}])}}const TP=new SP;class kP extends y{constructor(){super("socket.room.CreateRoomRequestPayload",[{no:1,name:"title",kind:"scalar",opt:!0,T:9}])}}const EP=new kP;class bP extends y{constructor(){super("socket.room.CreateConnectedRoomsRequest",[{no:1,name:"payloads",kind:"message",repeat:1,T:()=>EP}])}}const wP=new bP;class _P extends y{constructor(){super("socket.room.CreateRoomResponsePayload",[{no:1,name:"id",kind:"scalar",opt:!0,T:9},{no:2,name:"title",kind:"scalar",opt:!0,T:9},{no:3,name:"error",kind:"message",T:()=>_u}])}}const IP=new _P;class CP extends y{constructor(){super("socket.room.CreateConnectedRoomsResponse",[{no:1,name:"payloads",kind:"message",repeat:1,T:()=>IP}])}}const wf=new CP;class PP extends y{constructor(){super("socket.room.UpdateRoomRequestPayload",[{no:1,name:"meeting_id",kind:"scalar",opt:!0,T:9},{no:2,name:"title",kind:"scalar",opt:!0,T:9}])}}const RP=new PP;class MP extends y{constructor(){super("socket.room.UpdateConnectedRoomsRequest",[{no:1,name:"payloads",kind:"message",repeat:1,T:()=>RP}])}}new MP;class AP extends y{constructor(){super("socket.room.DisableRoomPayload",[{no:1,name:"id",kind:"scalar",opt:!0,T:9}])}}const DP=new AP;class OP extends y{constructor(){super("socket.room.DisableConnectedRoomsRequest",[{no:1,name:"payloads",kind:"message",repeat:1,T:()=>DP}])}}const NP=new OP;class VP extends y{constructor(){super("socket.room.DisableConnectedRoomsResponse",[{no:1,name:"payloads",kind:"message",repeat:1,T:()=>UP}])}}const LP=new VP;class xP extends y{constructor(){super("socket.room.DisableConnectedRoomPayload",[{no:1,name:"id",kind:"scalar",opt:!0,T:9},{no:2,name:"status",kind:"scalar",opt:!0,T:9},{no:3,name:"title",kind:"scalar",opt:!0,T:9},{no:4,name:"error",kind:"message",T:()=>_u}])}}const UP=new xP;class FP extends y{constructor(){super("socket.room.MovePeerPayload",[{no:1,name:"id",kind:"scalar",opt:!0,T:9},{no:2,name:"preset_id",kind:"scalar",opt:!0,T:9}])}}const BP=new FP;class WP extends y{constructor(){super("socket.room.MovePeersBetweenRoomsRequest",[{no:1,name:"source_meeting_id",kind:"scalar",opt:!0,T:9},{no:2,name:"destination_meeting_id",kind:"scalar",opt:!0,T:9},{no:3,name:"participants",kind:"message",repeat:1,T:()=>BP}])}}const jP=new WP;class HP extends y{constructor(){super("socket.room.MovedPeer",[{no:1,name:"meeting_id",kind:"scalar",opt:!0,T:9},{no:2,name:"custom_participant_id",kind:"scalar",opt:!0,T:9},{no:3,name:"error",kind:"message",T:()=>_u}])}}const _f=new HP;class GP extends y{constructor(){super("socket.room.MovePeersBetweenRoomsResponse",[{no:1,name:"payloads",kind:"message",repeat:1,T:()=>_f}])}}new GP;class qP extends y{constructor(){super("socket.room.TransferPeer",[{no:1,name:"meeting_id",kind:"scalar",opt:!0,T:9},{no:2,name:"auth_token",kind:"scalar",opt:!0,T:9}])}}const $P=new qP;class JP extends y{constructor(){super("socket.room.GetAllAddedParticipantsResponse",[{no:1,name:"participants",kind:"message",repeat:1,T:()=>YP}])}}const KP=new JP;class zP extends y{constructor(){super("socket.room.AddedParticipant",[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",opt:!0,T:9},{no:3,name:"picture",kind:"scalar",opt:!0,T:9},{no:4,name:"custom_participant_id",kind:"scalar",T:9}])}}const YP=new zP;class QP extends y{constructor(){super("socket.room.RemoveParticipantsRequest",[{no:1,name:"peer_ids",kind:"scalar",repeat:2,T:9}])}}const If=new QP;class XP extends y{constructor(){super("socket.room.BroadcastMessage",[{no:1,name:"type",kind:"scalar",T:9},{no:2,name:"payload",kind:"scalar",T:12},{no:3,name:"timestamp",kind:"scalar",T:4,L:2},{no:4,name:"ids",kind:"scalar",repeat:2,T:9},{no:5,name:"broadcast_type",kind:"enum",opt:!0,T:()=>["socket.room.BroadcastType",bu,"BROADCAST_TYPE_"]}])}}const ba=new XP;class ZP extends y{constructor(){super("socket.room.AcceptWaitingRoomRequests",[{no:1,name:"user_ids",kind:"scalar",repeat:2,T:9}])}}const eR=new ZP;class tR extends y{constructor(){super("socket.room.DenyWaitingRoomRequests",[{no:1,name:"user_ids",kind:"scalar",repeat:2,T:9}])}}const iR=new tR;class rR extends y{constructor(){super("socket.room.WaitingRoomRequest",[{no:1,name:"peer_id",kind:"scalar",T:9},{no:2,name:"user_id",kind:"scalar",T:9},{no:3,name:"display_name",kind:"scalar",T:9},{no:4,name:"picture",kind:"scalar",opt:!0,T:9},{no:5,name:"custom_participant_id",kind:"scalar",opt:!0,T:9},{no:6,name:"preset_name",kind:"scalar",opt:!0,T:9}])}}const nR=new rR;class sR extends y{constructor(){super("socket.room.GetWaitingRoomRequests",[{no:1,name:"requests",kind:"message",repeat:1,T:()=>nR}])}}const Cf=new sR;class aR extends y{constructor(){super("socket.room.GetRoomStageStateResponse",[{no:1,name:"on_stage_peers",kind:"scalar",repeat:2,T:9},{no:2,name:"approved_stage_peers",kind:"scalar",repeat:2,T:9},{no:3,name:"requested_stage_peers",kind:"scalar",repeat:2,T:9}])}}const Pf=new aR;var Iu;(function(t){t[t.NONE=0]="NONE",t[t.SKIP=1]="SKIP",t[t.ON_PRIVILEGED_USER_ENTRY=2]="ON_PRIVILEGED_USER_ENTRY",t[t.SKIP_ON_ACCEPT=3]="SKIP_ON_ACCEPT"})(Iu||(Iu={}));var br;(function(t){t[t.NONE=0]="NONE",t[t.ALLOWED=1]="ALLOWED",t[t.NOT_ALLOWED=2]="NOT_ALLOWED",t[t.CAN_REQUEST=3]="CAN_REQUEST"})(br||(br={}));class oR extends y{constructor(){super("socket.preset.PollsPermissionUpdate",[{no:1,name:"can_create",kind:"scalar",opt:!0,T:8},{no:2,name:"can_vote",kind:"scalar",opt:!0,T:8},{no:3,name:"can_view",kind:"scalar",opt:!0,T:8}])}}const cR=new oR;class dR extends y{constructor(){super("socket.preset.PluginsPermissionsUpdate",[{no:1,name:"can_close",kind:"scalar",opt:!0,T:8},{no:2,name:"can_start",kind:"scalar",opt:!0,T:8}])}}const lR=new dR;class uR extends y{constructor(){super("socket.preset.PublicChatPermission",[{no:1,name:"can_send",kind:"scalar",opt:!0,T:8},{no:2,name:"text",kind:"scalar",opt:!0,T:8},{no:3,name:"files",kind:"scalar",opt:!0,T:8}])}}const hR=new uR;class pR extends y{constructor(){super("socket.preset.PrivateChatPermission",[{no:1,name:"can_send",kind:"scalar",opt:!0,T:8},{no:2,name:"can_receive",kind:"scalar",opt:!0,T:8},{no:3,name:"text",kind:"scalar",opt:!0,T:8},{no:4,name:"files",kind:"scalar",opt:!0,T:8}])}}const mR=new pR;class gR extends y{constructor(){super("socket.preset.ChatPermissionUpdate",[{no:1,name:"public",kind:"message",T:()=>hR},{no:2,name:"private",kind:"message",T:()=>mR}])}}const fR=new gR;class vR extends y{constructor(){super("socket.preset.ConnectedMeetingPermissionUpdate",[{no:1,name:"can_alter_connected_meetings",kind:"scalar",opt:!0,T:8},{no:2,name:"can_switch_to_parent_meeting",kind:"scalar",opt:!0,T:8},{no:3,name:"can_switch_connected_meetings",kind:"scalar",opt:!0,T:8}])}}const yR=new vR;class SR extends y{constructor(){super("socket.preset.StreamPermission",[{no:1,name:"can_produce",kind:"enum",opt:!0,T:()=>["socket.preset.StreamPermissionType",br,"STREAM_PERMISSION_TYPE_"]},{no:2,name:"can_consume",kind:"enum",opt:!0,T:()=>["socket.preset.StreamPermissionType",br,"STREAM_PERMISSION_TYPE_"]}])}}const Cu=new SR;class TR extends y{constructor(){super("socket.preset.MediaPermissionUpdate",[{no:1,name:"video",kind:"message",T:()=>Cu},{no:2,name:"audio",kind:"message",T:()=>Cu},{no:3,name:"screenshare",kind:"message",T:()=>Cu}])}}const kR=new TR;class ER extends y{constructor(){super("socket.preset.PresetUpdates",[{no:1,name:"polls",kind:"message",T:()=>cR},{no:2,name:"plugins",kind:"message",T:()=>lR},{no:3,name:"chat",kind:"message",T:()=>fR},{no:4,name:"accept_waiting_requests",kind:"scalar",opt:!0,T:8},{no:5,name:"can_accept_production_requests",kind:"scalar",opt:!0,T:8},{no:6,name:"can_edit_display_name",kind:"scalar",opt:!0,T:8},{no:7,name:"can_record",kind:"scalar",opt:!0,T:8},{no:8,name:"can_livestream",kind:"scalar",opt:!0,T:8},{no:9,name:"can_spotlight",kind:"scalar",opt:!0,T:8},{no:10,name:"disable_participant_audio",kind:"scalar",opt:!0,T:8},{no:11,name:"disable_participant_screensharing",kind:"scalar",opt:!0,T:8},{no:12,name:"disable_participant_video",kind:"scalar",opt:!0,T:8},{no:13,name:"kick_participant",kind:"scalar",opt:!0,T:8},{no:14,name:"pin_participant",kind:"scalar",opt:!0,T:8},{no:15,name:"transcription_enabled",kind:"scalar",opt:!0,T:8},{no:16,name:"waiting_room_type",kind:"enum",opt:!0,T:()=>["socket.preset.WaitingRoomType",Iu,"WAITING_ROOM_TYPE_"]},{no:17,name:"is_recorder",kind:"scalar",opt:!0,T:8},{no:18,name:"recorder_type",kind:"enum",opt:!0,T:()=>["socket.room.RecorderType",Eu,"RECORDER_TYPE_"]},{no:19,name:"hidden_participant",kind:"scalar",opt:!0,T:8},{no:20,name:"show_participant_list",kind:"scalar",opt:!0,T:8},{no:21,name:"can_change_participant_permissions",kind:"scalar",opt:!0,T:8},{no:22,name:"connected_meetings",kind:"message",T:()=>yR},{no:23,name:"media",kind:"message",T:()=>kR}])}}const Pu=new ER;class bR extends y{constructor(){super("socket.preset.ReadPeersPresetRequest",[{no:1,name:"user_ids",kind:"scalar",repeat:2,T:9}])}}const wR=new bR;class _R extends y{constructor(){super("socket.preset.PeerPreset",[{no:1,name:"user_id",kind:"scalar",T:9},{no:2,name:"peer_id",kind:"scalar",T:9},{no:3,name:"preset",kind:"scalar",T:12}])}}const IR=new _R;class CR extends y{constructor(){super("socket.preset.ReadPeersPresetResponse",[{no:1,name:"peer_presets",kind:"message",repeat:1,T:()=>IR}])}}const PR=new CR;class RR extends y{constructor(){super("socket.preset.UpdatePeerPreset",[{no:1,name:"user_ids",kind:"scalar",T:9},{no:2,name:"patch",kind:"message",T:()=>Pu}])}}const Rf=new RR;class MR extends y{constructor(){super("socket.preset.UpdatePeersPresetRequest",[{no:1,name:"update_peers_presets",kind:"message",repeat:1,T:()=>Rf}])}}const AR=new MR;class DR extends y{constructor(){super("socket.preset.UpdatePeersPresetResponse",[{no:1,name:"update_peers_presets",kind:"message",repeat:1,T:()=>Rf}])}}const Mf=new DR;class OR extends y{constructor(){super("socket.preset.PeerUserIDMap",[{no:1,name:"peer_id",kind:"scalar",T:9},{no:2,name:"user_id",kind:"scalar",T:9}])}}const NR=new OR;class VR extends y{constructor(){super("socket.preset.BulkUpdatePeerPresetRequest",[{no:1,name:"peers",kind:"message",repeat:1,T:()=>NR},{no:2,name:"patch",kind:"message",T:()=>Pu}])}}new VR;class LR extends y{constructor(){super("socket.preset.BulkUpdatePeerPresetResponse",[{no:2,name:"patch",kind:"message",T:()=>Pu}])}}new LR;class xR extends y{constructor(){super("socket.chat.ChatMessage",[{no:1,name:"chat_id",kind:"scalar",T:9},{no:2,name:"peer_id",kind:"scalar",T:9},{no:3,name:"user_id",kind:"scalar",T:9},{no:4,name:"display_name",kind:"scalar",T:9},{no:5,name:"pinned",kind:"scalar",T:8},{no:6,name:"is_edited",kind:"scalar",T:8},{no:7,name:"payload_type",kind:"scalar",T:5},{no:8,name:"payload",kind:"scalar",T:9},{no:10,name:"target_user_ids",kind:"scalar",repeat:2,T:9},{no:11,name:"created_at",kind:"scalar",T:4,L:2},{no:12,name:"created_at_ms",kind:"scalar",opt:!0,T:4,L:2},{no:13,name:"channel_id",kind:"scalar",opt:!0,T:9},{no:14,name:"channel_index",kind:"scalar",opt:!0,T:9}])}}const cn=new xR;class UR extends y{constructor(){super("socket.chat.GetPaginatedChatMessageRoomRequest",[{no:1,name:"time_stamp",kind:"scalar",T:4,L:2},{no:2,name:"size",kind:"scalar",T:5},{no:3,name:"from",kind:"scalar",T:5},{no:4,name:"reversed",kind:"scalar",T:8},{no:5,name:"channel_id",kind:"scalar",opt:!0,T:9}])}}const FR=new UR;class BR extends y{constructor(){super("socket.chat.GetPaginatedChatMessageRoomResponse",[{no:1,name:"messages",kind:"message",repeat:1,T:()=>cn},{no:2,name:"next",kind:"scalar",T:8}])}}const WR=new BR;class jR extends y{constructor(){super("socket.chat.GetChatMessagesResponse",[{no:1,name:"messages",kind:"message",repeat:1,T:()=>cn}])}}const Af=new jR;class HR extends y{constructor(){super("socket.chat.SendChatMessageToRoomRequest",[{no:1,name:"payload_type",kind:"scalar",T:5},{no:2,name:"payload",kind:"scalar",T:9}])}}const GR=new HR;class qR extends y{constructor(){super("socket.chat.SendChatMessageToRoomResponse",[{no:1,name:"message",kind:"message",T:()=>cn}])}}const Ru=new qR;class $R extends y{constructor(){super("socket.chat.SendChatMessageToPeersRequest",[{no:1,name:"peer_ids",kind:"scalar",repeat:2,T:9},{no:2,name:"payload_type",kind:"scalar",T:5},{no:3,name:"payload",kind:"scalar",T:9}])}}const JR=new $R;class KR extends y{constructor(){super("socket.chat.SendChatMessageToPeersResponse",[{no:1,name:"message",kind:"message",T:()=>cn}])}}const Mu=new KR;class zR extends y{constructor(){super("socket.chat.SendChatMessageToChannelRequest",[{no:1,name:"channel_id",kind:"scalar",T:9},{no:2,name:"payload_type",kind:"scalar",T:5},{no:3,name:"payload",kind:"scalar",T:9}])}}const YR=new zR;class QR extends y{constructor(){super("socket.chat.SendChatMessageToChannelResponse",[{no:1,name:"message",kind:"message",T:()=>cn}])}}new QR;class XR extends y{constructor(){super("socket.chat.EditChatMessageRequest",[{no:1,name:"chat_id",kind:"scalar",T:9},{no:2,name:"payload_type",kind:"scalar",opt:!0,T:5},{no:3,name:"payload",kind:"scalar",opt:!0,T:9},{no:4,name:"pinned",kind:"scalar",opt:!0,T:8},{no:5,name:"channel_id",kind:"scalar",opt:!0,T:9}])}}const ZR=new XR;class eM extends y{constructor(){super("socket.chat.PinChatMessageRequest",[{no:1,name:"chat_id",kind:"scalar",T:9},{no:2,name:"pinned",kind:"scalar",T:8},{no:3,name:"channel_id",kind:"scalar",opt:!0,T:9}])}}const tM=new eM;class iM extends y{constructor(){super("socket.chat.PinChatMessageResponse",[{no:1,name:"chat_id",kind:"scalar",T:9},{no:2,name:"pinned",kind:"scalar",T:8},{no:3,name:"channel_id",kind:"scalar",opt:!0,T:9}])}}const zc=new iM;class rM extends y{constructor(){super("socket.chat.EditChatMessageResponse",[{no:1,name:"message",kind:"message",T:()=>cn}])}}const Yc=new rM;class nM extends y{constructor(){super("socket.chat.DeleteChatMessageRequest",[{no:1,name:"chat_id",kind:"scalar",T:9},{no:2,name:"channel_id",kind:"scalar",opt:!0,T:9}])}}const sM=new nM;class aM extends y{constructor(){super("socket.chat.DeleteChatMessageResponse",[{no:1,name:"chat_id",kind:"scalar",T:9},{no:2,name:"channel_id",kind:"scalar",opt:!0,T:9}])}}const Qc=new aM;class oM extends y{constructor(){super("socket.chat.SearchChatMessagesRequest",[{no:1,name:"time_stamp",kind:"scalar",T:4,L:2},{no:2,name:"size",kind:"scalar",T:5},{no:3,name:"from",kind:"scalar",T:5},{no:4,name:"reversed",kind:"scalar",T:8},{no:5,name:"channel_id",kind:"scalar",opt:!0,T:9},{no:6,name:"search_term",kind:"scalar",T:9}])}}const cM=new oM;class dM extends y{constructor(){super("socket.chat.MarkChannelIndexAsReadRequest",[{no:1,name:"channel_id",kind:"scalar",T:9},{no:2,name:"user_id",kind:"scalar",T:9},{no:3,name:"channel_index",kind:"scalar",T:9}])}}const lM=new dM;class uM extends y{constructor(){super("socket.chat.MarkChannelIndexAsReadResponse",[{no:1,name:"channel_index",kind:"scalar",T:9}])}}const hM=new uM;class pM extends y{constructor(){super("socket.chat.CreateChatChannelRequest",[{no:1,name:"display_name",kind:"scalar",T:9},{no:2,name:"target_user_ids",kind:"scalar",repeat:2,T:9},{no:3,name:"display_picture_url",kind:"scalar",opt:!0,T:9},{no:4,name:"visibility",kind:"scalar",T:9},{no:5,name:"is_direct_message",kind:"scalar",T:8}])}}const mM=new pM;class gM extends y{constructor(){super("socket.chat.UpdateChatChannelRequest",[{no:1,name:"chat_channel_id",kind:"scalar",T:9},{no:2,name:"display_name",kind:"scalar",opt:!0,T:9},{no:3,name:"target_user_ids",kind:"scalar",repeat:2,T:9},{no:4,name:"display_picture_url",kind:"scalar",opt:!0,T:9},{no:5,name:"visibility",kind:"scalar",opt:!0,T:9},{no:6,name:"is_direct_message",kind:"scalar",opt:!0,T:8}])}}const fM=new gM;class vM extends y{constructor(){super("socket.chat.CreateChatChannelResponse",[{no:1,name:"chat_channel_id",kind:"scalar",T:9}])}}new vM;class yM extends y{constructor(){super("socket.chat.GetChatChannelRequest",[{no:1,name:"chat_channel_id",kind:"scalar",T:9}])}}const SM=new yM;class TM extends y{constructor(){super("socket.chat.LatestMessageAndUnreadCount",[{no:1,name:"message",kind:"message",T:()=>cn},{no:2,name:"unread_count",kind:"scalar",T:4,L:2}])}}const kM=new TM;class EM extends y{constructor(){super("socket.chat.ChatChannel",[{no:1,name:"chat_channel_id",kind:"scalar",T:9},{no:2,name:"display_name",kind:"scalar",T:9},{no:3,name:"display_picture_url",kind:"scalar",opt:!0,T:9},{no:4,name:"visibility",kind:"scalar",T:9},{no:5,name:"is_direct_message",kind:"scalar",T:8},{no:6,name:"latest_message_and_unread_count",kind:"message",T:()=>kM},{no:7,name:"target_user_ids",kind:"scalar",repeat:2,T:9}])}}const bM=new EM;class wM extends y{constructor(){super("socket.chat.GetChatChannelResponse",[{no:1,name:"chat_channels",kind:"message",repeat:1,T:()=>bM}])}}const Qi=new wM;class _M extends y{constructor(){super("socket.chat.ChannelMember",[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",opt:!0,T:9},{no:3,name:"picture",kind:"scalar",opt:!0,T:9},{no:4,name:"custom_participant_id",kind:"scalar",T:9}])}}const IM=new _M;class CM extends y{constructor(){super("socket.chat.GetChatChannelMembersResponse",[{no:1,name:"channel_members",kind:"message",repeat:1,T:()=>IM}])}}const PM=new CM;class RM extends y{constructor(){super("socket.plugin.AddPluginRequest",[{no:1,name:"plugin_id",kind:"scalar",T:9},{no:2,name:"staggered",kind:"scalar",T:8}])}}const MM=new RM;class AM extends y{constructor(){super("socket.plugin.RemovePluginRequest",[{no:1,name:"plugin_id",kind:"scalar",T:9},{no:2,name:"staggered",kind:"scalar",T:8}])}}const DM=new AM;class OM extends y{constructor(){super("socket.plugin.EnablePluginForRoomRequest",[{no:1,name:"plugin_id",kind:"scalar",T:9}])}}const NM=new OM;class VM extends y{constructor(){super("socket.plugin.DisablePluginForRoomRequest",[{no:1,name:"plugin_id",kind:"scalar",T:9}])}}const LM=new VM;class xM extends y{constructor(){super("socket.plugin.EnablePluginForPeersRequest",[{no:1,name:"plugin_id",kind:"scalar",T:9},{no:2,name:"peer_ids",kind:"scalar",repeat:2,T:9}])}}const UM=new xM;class FM extends y{constructor(){super("socket.plugin.DisablePluginForPeersRequest",[{no:1,name:"plugin_id",kind:"scalar",T:9},{no:2,name:"peer_ids",kind:"scalar",repeat:2,T:9}])}}const BM=new FM;class WM extends y{constructor(){super("socket.plugin.PluginEventToRoomRequest",[{no:1,name:"plugin_id",kind:"scalar",T:9},{no:2,name:"plugin_data",kind:"scalar",T:12}])}}const jM=new WM;class HM extends y{constructor(){super("socket.plugin.PluginEventToPeersRequest",[{no:1,name:"plugin_id",kind:"scalar",T:9},{no:2,name:"peer_ids",kind:"scalar",repeat:2,T:9},{no:3,name:"plugin_data",kind:"scalar",T:12}])}}const GM=new HM;class qM extends y{constructor(){super("socket.plugin.StoreKeys",[{no:1,name:"store_key",kind:"scalar",T:9},{no:2,name:"payload",kind:"scalar",opt:!0,T:12}])}}const Au=new qM;class $M extends y{constructor(){super("socket.plugin.PluginStoreInsertKeysRequest",[{no:1,name:"plugin_id",kind:"scalar",T:9},{no:2,name:"store_name",kind:"scalar",T:9},{no:3,name:"insert_keys",kind:"message",repeat:1,T:()=>Au}])}}const Df=new $M;class JM extends y{constructor(){super("socket.plugin.PluginStoreGetKeysRequest",[{no:1,name:"plugin_id",kind:"scalar",T:9},{no:2,name:"store_name",kind:"scalar",T:9},{no:3,name:"get_keys",kind:"message",repeat:1,T:()=>Au}])}}const KM=new JM;class zM extends y{constructor(){super("socket.plugin.PluginStoreDeleteKeysRequest",[{no:1,name:"plugin_id",kind:"scalar",T:9},{no:2,name:"store_name",kind:"scalar",T:9},{no:3,name:"delete_keys",kind:"message",repeat:1,T:()=>Au}])}}const YM=new zM;class QM extends y{constructor(){super("socket.plugin.PluginStoreDeleteRequest",[{no:1,name:"plugin_id",kind:"scalar",T:9},{no:2,name:"store_name",kind:"scalar",T:9}])}}const XM=new QM;class ZM extends y{constructor(){super("socket.plugin.EnablePluginResponse",[{no:1,name:"plugin_id",kind:"scalar",T:9},{no:2,name:"enabled_by",kind:"scalar",T:9}])}}const Du=new ZM;class eA extends y{constructor(){super("socket.plugin.EnablePluginsResponse",[{no:1,name:"plugins",kind:"message",repeat:1,T:()=>Du}])}}const tA=new eA;class iA extends y{constructor(){super("socket.plugin.DisablePluginResponse",[{no:1,name:"plugin_id",kind:"scalar",T:9},{no:2,name:"disabled_by",kind:"scalar",T:9}])}}const Of=new iA;class rA extends y{constructor(){super("socket.plugin.PluginStoreItem",[{no:1,name:"timestamp",kind:"scalar",T:9},{no:2,name:"peer_id",kind:"scalar",T:9},{no:3,name:"store_key",kind:"scalar",T:9},{no:4,name:"payload",kind:"scalar",T:12}])}}const nA=new rA;class sA extends y{constructor(){super("socket.plugin.PluginStoreResponse",[{no:1,name:"plugin_id",kind:"scalar",T:9},{no:2,name:"store_name",kind:"scalar",T:9},{no:3,name:"store_items",kind:"message",repeat:1,T:()=>nA}])}}const Nf=new sA;class aA extends y{constructor(){super("socket.plugin.PluginEventResponse",[{no:1,name:"plugin_id",kind:"scalar",T:9},{no:2,name:"plugin_data",kind:"scalar",T:12}])}}const Vf=new aA;class oA extends y{constructor(){super("socket.livestreaming.LiveStreamingEvent",[{no:1,name:"livestream_id",kind:"scalar",T:9},{no:2,name:"err_message",kind:"scalar",T:9},{no:3,name:"name",kind:"scalar",T:9},{no:4,name:"meeting_id",kind:"scalar",T:9},{no:5,name:"playback_url",kind:"scalar",T:9},{no:6,name:"org_id",kind:"scalar",T:9},{no:7,name:"room_name",kind:"scalar",T:9},{no:8,name:"room_uuid",kind:"scalar",T:9},{no:9,name:"status",kind:"scalar",T:9},{no:10,name:"manual_ingest",kind:"scalar",opt:!0,T:8}])}}const Lf=new oA;class cA extends y{constructor(){super("socket.livestreaming.GetStagePeersResponse",[{no:1,name:"stage_peers",kind:"scalar",repeat:2,T:9}])}}const xf=new cA;class dA extends y{constructor(){super("socket.livestreaming.StageRequest",[{no:1,name:"display_name",kind:"scalar",T:9},{no:2,name:"user_id",kind:"scalar",T:9},{no:3,name:"peer_id",kind:"scalar",T:9}])}}const lA=new dA;class uA extends y{constructor(){super("socket.livestreaming.GetStageRequestsResponse",[{no:1,name:"stage_requests",kind:"message",repeat:1,T:()=>lA}])}}const Ou=new uA;class hA extends y{constructor(){super("socket.livestreaming.GrantStageAccessRequest",[{no:1,name:"user_ids",kind:"scalar",repeat:2,T:9}])}}const pA=new hA;class mA extends y{constructor(){super("socket.livestreaming.DenyStageAccessRequest",[{no:1,name:"user_ids",kind:"scalar",repeat:2,T:9}])}}const gA=new mA;class fA extends y{constructor(){super("socket.livestreaming.LeaveStageRequest",[{no:1,name:"user_ids",kind:"scalar",repeat:2,T:9}])}}const Uf=new fA;class vA extends y{constructor(){super("socket.polls.Poll",[{no:1,name:"poll_id",kind:"scalar",T:9},{no:2,name:"created_by",kind:"scalar",T:9},{no:3,name:"created_by_user_id",kind:"scalar",T:9},{no:4,name:"question",kind:"scalar",T:9},{no:5,name:"options",kind:"message",repeat:1,T:()=>SA},{no:6,name:"hide_votes",kind:"scalar",T:8},{no:7,name:"anonymous",kind:"scalar",T:8},{no:8,name:"votes",kind:"scalar",repeat:2,T:9}])}}const Ff=new vA;class yA extends y{constructor(){super("socket.polls.PollOption",[{no:1,name:"text",kind:"scalar",T:9},{no:2,name:"count",kind:"scalar",opt:!0,T:4,L:2},{no:3,name:"votes",kind:"message",repeat:1,T:()=>kA}])}}const SA=new yA;class TA extends y{constructor(){super("socket.polls.PollVote",[{no:1,name:"user_id",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9}])}}const kA=new TA;class EA extends y{constructor(){super("socket.polls.NewPollRequest",[{no:1,name:"question",kind:"scalar",T:9},{no:2,name:"options",kind:"scalar",repeat:2,T:9},{no:3,name:"anonymous",kind:"scalar",T:8},{no:4,name:"hide_votes",kind:"scalar",T:8},{no:5,name:"created_by",kind:"scalar",opt:!0,T:9},{no:6,name:"created_by_user_id",kind:"scalar",opt:!0,T:9}])}}const bA=new EA;class wA extends y{constructor(){super("socket.polls.VotePollRequest",[{no:1,name:"poll_id",kind:"scalar",T:9},{no:2,name:"index",kind:"scalar",T:4,L:2}])}}const _A=new wA;class IA extends y{constructor(){super("socket.polls.UpdatePollResponse",[{no:1,name:"poll",kind:"message",T:()=>Ff}])}}const Nu=new IA;class CA extends y{constructor(){super("socket.polls.GetPollsResponse",[{no:1,name:"polls",kind:"message",repeat:1,T:()=>Ff}])}}const PA=new CA;class RA extends y{constructor(){super("socket.recording.RecordingEvent",[{no:1,name:"recording_id",kind:"scalar",T:9},{no:2,name:"err_message",kind:"scalar",T:9},{no:3,name:"recording_type",kind:"enum",T:()=>["common.RecordingType",on]}])}}const Bf=new RA;class MA extends y{constructor(){super("google.protobuf.Timestamp",[{no:1,name:"seconds",kind:"scalar",T:3,L:0},{no:2,name:"nanos",kind:"scalar",T:5}])}now(){const e=this.create(),i=Date.now();return e.seconds=ye.from(Math.floor(i/1e3)).toBigInt(),e.nanos=i%1e3*1e6,e}toDate(e){return new Date(ye.from(e.seconds).toNumber()*1e3+Math.ceil(e.nanos/1e6))}fromDate(e){const i=this.create(),r=e.getTime();return i.seconds=ye.from(Math.floor(r/1e3)).toBigInt(),i.nanos=r%1e3*1e6,i}internalJsonWrite(e,i){let r=ye.from(e.seconds).toNumber()*1e3;if(r<Date.parse("0001-01-01T00:00:00Z")||r>Date.parse("9999-12-31T23:59:59Z"))throw new Error("Unable to encode Timestamp to JSON. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.");if(e.nanos<0)throw new Error("Unable to encode invalid Timestamp to JSON. Nanos must not be negative.");let n="Z";if(e.nanos>0){let s=(e.nanos+1e9).toString().substring(1);s.substring(3)==="000000"?n="."+s.substring(0,3)+"Z":s.substring(6)==="000"?n="."+s.substring(0,6)+"Z":n="."+s+"Z"}return new Date(r).toISOString().replace(".000Z",n)}internalJsonRead(e,i,r){if(typeof e!="string")throw new Error("Unable to parse Timestamp from JSON "+xl(e)+".");let n=e.match(/^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})(?:Z|\.([0-9]{3,9})Z|([+-][0-9][0-9]:[0-9][0-9]))$/);if(!n)throw new Error("Unable to parse Timestamp from JSON. Invalid format.");let s=Date.parse(n[1]+"-"+n[2]+"-"+n[3]+"T"+n[4]+":"+n[5]+":"+n[6]+(n[8]?n[8]:"Z"));if(Number.isNaN(s))throw new Error("Unable to parse Timestamp from JSON. Invalid value.");if(s<Date.parse("0001-01-01T00:00:00Z")||s>Date.parse("9999-12-31T23:59:59Z"))throw new globalThis.Error("Unable to parse Timestamp from JSON. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.");return r||(r=this.create()),r.seconds=ye.from(s/1e3).toBigInt(),r.nanos=0,n[7]&&(r.nanos=parseInt("1"+n[7]+"0".repeat(9-n[7].length))-1e9),r}}new MA;class AA extends y{constructor(){super("common.BaseHubMessage",[{no:1,name:"event",kind:"scalar",T:5},{no:2,name:"id",kind:"scalar",T:9},{no:3,name:"peer_id",kind:"scalar",T:9},{no:4,name:"room_id",kind:"scalar",T:9},{no:5,name:"user_id",kind:"scalar",T:9},{no:6,name:"payload",kind:"scalar",T:12},{no:7,name:"error",kind:"scalar",opt:!0,T:8},{no:8,name:"sid",kind:"scalar",opt:!0,T:9},{no:9,name:"room_object_id",kind:"scalar",opt:!0,T:9},{no:10,name:"preset",kind:"scalar",opt:!0,T:9},{no:11,name:"use_start_session",kind:"scalar",opt:!0,T:8}])}}const Vu=new AA;class DA extends y{constructor(){super("common.BulkedHubMessage",[{no:1,name:"messages",kind:"message",repeat:1,T:()=>Vu}])}}new DA;class OA extends y{constructor(){super("common.CFWorkersResponse",[{no:1,name:"responses",kind:"message",repeat:1,T:()=>Vu},{no:2,name:"broadcast_responses",kind:"message",repeat:1,T:()=>Vu}])}}new OA;const NA=0,VA=1,LA=2,xA=3,UA=4,FA=5,BA={getPeerInfo:0,updatePeerInfo:1,getRoomPeersInfo:2,joinRoom:3,leaveRoom:4,getRoomInfo:5,updateRoomInfo:6,closeRoom:7,startedLivestream:8,stoppedLivestream:9,erroredLivestream:10,getStagePeers:11,getStageRequests:12,requestStageAccess:13,cancelStageRequest:14,grantStageAccess:15,denyStageAccess:16,roomPeerCount:17,joinStage:18,leaveStage:19,getConnectedRoomsDump:20,createConnectedRooms:21,deleteConnectedRooms:22,movePeers:23,transferPeer:24,movedPeer:25,connectedRoomsUpdated:26,connectedRoomsDeleted:27,getAllAddedParticipants:28,broadcastMessage:29,kick:30,kickAll:31,transcript:32,getWaitingRoomRequests:33,acceptWaitingRoomRequests:34,waitingRoomRequestAccepted:35,denyWaitingRoomRequests:36,waitingRoomRequestDenied:37,peerStageStatusUpdate:38,broadcastToEntity:39,recordingStarted:40,recordingStopped:41,recordingPaused:42,getRoomStageState:43,livestreamingInvoked:44},WA={getMessages:0,sendMessageToRoom:1,sendMessageToPeers:2,editMessage:3,deleteMessage:4,getPaginatedMessages:5,sendMessageToChannel:6,searchChannelMessages:7,getAllChatChannels:8,markChannelIndexAsRead:9,pinMessage:10},jA={getPlugins:0,addPlugin:1,enablePluginForRoom:2,disablePluginForPeers:3,enablePluginForPeers:4,disablePluginForRoom:5,removePlugin:6,customPluginEventToRoom:7,customPluginEventToPeers:8,storeInsertKeys:9,storeGetKeys:10,storeDeleteKeys:11,storeDelete:12},HA={createPoll:0,getPolls:1,votePoll:2,updatePoll:3},Wf={unknown:0,createWebRTCTransport:1,produce:2,consume:3,toggleProducer:4,toggleConsumer:5,closeProducer:6,closeConsumer:7,updateConsumersSimulcastConfig:8,joinRoom:16,leaveRoom:17,selectedPeer:18,globalPinPeer:19,selfJoinComplete:20,peerJoinedBroadcast:25,peerLeaveBroadcast:26,peerProducerCreateBroadcast:27,peerProducerToggleBroadcast:28,peerProducerCloseBroadcast:29,globalPeerPinBroadcast:30,recordingStartedBroadcast:31,recordingStoppedBroadcast:32,peerDisplayNameEditBroadcast:33,mediaRoomTerminationBroadcastResponse:36,selectedPeerDiff:40,renegotiateSessionDescription:50,errorResponse:60,kickPeer:90,kickAll:91,changeDisplayName:92,hostControlPeer:93,hostControlAllPeers:94,audioActivity:100},GA={createChatChannel:0,getChatChannel:1,deprecatedGetAllChatChannels:2,getChannelMembers:3,updateChatChannel:4},qA={getUserPresets:0,updateUserPreset:1};function es(t,e){return Object.keys(e).reduce((i,r)=>(i[r]=(t<<16)+e[r],i),{})}function jf(t,e){return Object.keys(t).reduce((i,r)=>(i[r]=e|t[r],i),{})}const F=es(NA,BA),Me=es(VA,WA),$=es(LA,jA),Xi=es(xA,HA),dn=es(UA,GA),ii=jf(Wf,16777216),fi=jf(Wf,50331648),Xc=es(FA,qA);var $A=Object.defineProperty,JA=Object.getOwnPropertyDescriptor,Lu=(t,e,i,r)=>{for(var n=r>1?void 0:r?JA(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&$A(e,i,n),n},ln,wa,Hf;const xu=(Hf=class{constructor(t,e){g(this,ln,void 0),g(this,wa,void 0),f(this,ln,e),f(this,wa,t)}get telemetry(){return a(this,wa).getValue("telemetry")}get logger(){return a(this,wa).getValue("logger")}createChannel(t,e,i,r="public",n=!1){return u(this,null,function*(){const s={displayName:t,targetUserIds:e,displayPictureUrl:i,visibility:r,isDirectMessage:n};n&&(s.visibility="private");const o=yield a(this,ln).sendMessagePromise(dn.createChatChannel,mM.toBinary(s)),c=Qi.fromBinary(o.payload).chatChannels;return xu.formatChannel(c[0])})}updateChannel(t,e){return u(this,null,function*(){const i=yield a(this,ln).sendMessagePromise(dn.updateChatChannel,fM.toBinary({chatChannelId:t,targetUserIds:e.memberIds,displayName:e.displayName,displayPictureUrl:e.displayPictureUrl,visibility:e.visibility})),r=Qi.fromBinary(i.payload).chatChannels;return xu.formatChannel(r[0])})}static formatChannel(t){var e;const{latestMessageAndUnreadCount:i}=t,r=H(V({},t),{id:t.chatChannelId,memberIds:t.targetUserIds,unreadCount:(e=i==null?void 0:i.unreadCount)!=null?e:0});return i!=null&&i.message&&(r.latestMessage=Zi.formatSocketServiceMessage(i.message)),delete r.chatChannelId,delete r.targetUserIds,delete r.latestMessageAndUnreadCount,r}getChannelMembers(t){return u(this,null,function*(){try{const e=yield a(this,ln).sendMessagePromise(dn.getChannelMembers,SM.toBinary({chatChannelId:t}));return PM.fromBinary(e.payload).channelMembers.map(i=>{var r=i,{id:n}=r,s=kc(r,["id"]);return H(V({},s),{userId:n})})}catch(e){return[]}})}on(t,e){let i,r;switch(t){case dn.createChatChannel:{i=Qi.fromBinary.bind(Qi),r=Qi.create();break}case dn.updateChatChannel:{i=Qi.fromBinary.bind(Qi),r=Qi.create();break}}if(!i){this.logger.warn(`ChatChannelSocketHandler::Event ${t} is not recognized`);return}a(this,ln).on(t,({payload:n})=>{let s=r;try{s=i(n)}catch(o){this.logger.error("ChatChannelSocketHandler::on::binary_decode_error",{error:o})}return e(s)})}},ln=new WeakMap,wa=new WeakMap,Hf);let un=xu;Lu([T.trace("ChatChannelHandler.createChannel")],un.prototype,"createChannel",1),Lu([T.trace("ChatChannelHandler.updateChannel")],un.prototype,"updateChannel",1),Lu([T.trace("ChatChannelHandler.getChannelMembers")],un.prototype,"getChannelMembers",1);var KA=Object.defineProperty,zA=Object.getOwnPropertyDescriptor,vi=(t,e,i,r)=>{for(var n=r>1?void 0:r?zA(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&KA(e,i,n),n},Tt=(t=>(t[t.TEXT=0]="TEXT",t[t.IMAGE=1]="IMAGE",t[t.FILE=2]="FILE",t[t.CUSTOM=3]="CUSTOM",t))(Tt||{}),kt,_a;class ri{constructor(e,i){g(this,kt,void 0),g(this,_a,void 0),f(this,kt,i),f(this,_a,e)}get telemetry(){return a(this,_a).getValue("telemetry")}get logger(){return a(this,_a).getValue("logger")}getChatMessages(){return a(this,kt).sendMessagePromise(Me.getMessages)}getChatMessagesPaginated(e,i,r,n=0,s=""){return u(this,null,function*(){const o={timeStamp:e,size:i,from:n,reversed:r,channelId:s},c=yield a(this,kt).sendMessagePromise(Me.getPaginatedMessages,FR.toBinary(o));return c.payload?WR.fromBinary(c.payload):{messages:[],next:!1}})}sendMessageToRoom(e,i){const r={payloadType:i,payload:e};a(this,kt).sendMessage(Me.sendMessageToRoom,GR.toBinary(r))}sendMessageToPeers(e,i,r){const n={payloadType:i,peerIds:r,payload:e};a(this,kt).sendMessage(Me.sendMessageToPeers,JR.toBinary(n))}sendMessageToChannel(e,i,r){const n={payloadType:i,channelId:r,payload:e};a(this,kt).sendMessage(Me.sendMessageToChannel,YR.toBinary(n))}sendMessage(e,i,r,n){if(n&&this.sendMessageToChannel(e,i,n),r&&r.length>0){this.sendMessageToPeers(e,i,r);return}this.sendMessageToRoom(e,i)}editMessage(e,i,r,n,s){return u(this,null,function*(){const o={chatId:e,payloadType:r,payload:i};n&&(o.channelId=n),s!==void 0&&(o.pinned=s);const c=yield a(this,kt).sendMessagePromise(Me.editMessage,ZR.toBinary(o));return Yc.fromBinary(c.payload).message})}deleteMessage(e,i){return u(this,null,function*(){const r={chatId:e};i&&(r.channelId=i);const n=yield a(this,kt).sendMessagePromise(Me.deleteMessage,sM.toBinary(r)),s=Qc.fromBinary(n.payload);return V({id:s.chatId},s.channelId?{channelId:s.channelId}:{})})}searchMessages(e,i){return u(this,null,function*(){var r,n,s;const o={searchTerm:e,timeStamp:(r=i.timestamp)!=null?r:Date.now(),size:(n=i.size)!=null?n:75,from:0,reversed:(s=i.reversed)!=null?s:!0};i.channelId&&(o.channelId=i.channelId);try{const c=yield a(this,kt).sendMessagePromise(Me.searchChannelMessages,cM.toBinary(o));return Af.fromBinary(c.payload).messages}catch(c){return[]}})}getAllChannels(){return u(this,null,function*(){try{const e=yield a(this,kt).sendMessagePromise(Me.getAllChatChannels);return Qi.fromBinary(e.payload).chatChannels.map(un.formatChannel)}catch(e){return[]}})}markLastReadMessage(e,i){return u(this,null,function*(){const r=yield a(this,kt).sendMessagePromise(Me.markChannelIndexAsRead,lM.toBinary({channelId:e,userId:i.userId,channelIndex:i.channelIndex}));return hM.fromBinary(r.payload).channelIndex})}setPinState(e,i){return u(this,null,function*(){const r={chatId:e.id,pinned:i,channelId:e.channelId},n=yield a(this,kt).sendMessagePromise(Me.pinMessage,tM.toBinary(r));return zc.fromBinary(n.payload)})}on(e,i){let r,n;switch(e){case Me.sendMessageToRoom:{r=Ru.fromBinary.bind(Ru),n=Ru.create();break}case Me.sendMessageToPeers:{r=Mu.fromBinary.bind(Mu),n=Mu.create();break}case Me.editMessage:{r=Yc.fromBinary.bind(Yc),n=Yc.create();break}case Me.pinMessage:{r=zc.fromBinary.bind(zc),n=zc.create();break}case Me.deleteMessage:{r=Qc.fromBinary.bind(Qc),n=Qc.create();break}}if(!r){this.logger.warn(`ChatSocketHandler::Event ${e} is not recognized`);return}a(this,kt).on(e,({payload:s})=>{let o=n;try{o=r(s)}catch(c){this.logger.error("chatSocketHandler::on::binary_decode_error",{error:c})}return i(o)})}}kt=new WeakMap,_a=new WeakMap,vi([T.trace("SocketService.getChatMessages")],ri.prototype,"getChatMessages",1),vi([T.trace("SocketService.getChatMessagesPaginated")],ri.prototype,"getChatMessagesPaginated",1),vi([T.trace("SocketService.sendMessageToRoom")],ri.prototype,"sendMessageToRoom",1),vi([T.trace("SocketService.sendMessageToPeers")],ri.prototype,"sendMessageToPeers",1),vi([T.trace("SocketService.sendMessageToChannel")],ri.prototype,"sendMessageToChannel",1),vi([T.trace("SocketService.sendMessage")],ri.prototype,"sendMessage",1),vi([T.trace("SocketService.editMessage")],ri.prototype,"editMessage",1),vi([T.trace("SocketService.deleteMessage")],ri.prototype,"deleteMessage",1),vi([T.trace("SocketService.searchMessages")],ri.prototype,"searchMessages",1),vi([T.trace("SocketService.getAllChannels")],ri.prototype,"getAllChannels",1),vi([T.trace("SocketService.markLastReadMessage")],ri.prototype,"markLastReadMessage",1);function YA(t){return t.replace(/([-_]\w)/g,e=>e[1].toUpperCase())}function yi(t){if(!t||typeof t!="object")return t;if(Array.isArray(t))return t.map(i=>yi(i));const e={};return Object.keys(t).forEach(i=>{const r=Vl(i)?i:YA(i);e[r]=yi(t[i])}),e}function QA(t){return t.replace(/[A-Z]/g,e=>`_${e.toLowerCase()}`)}function Gf(t){if(!t||typeof t!="object")return t;if(Array.isArray(t))return t.map(i=>Gf(i));const e={};return Object.keys(t).forEach(i=>{const r=Vl(i)?i:QA(i);e[r]=t[i]}),e}function Zc(t,e={}){return t==null?{}:(Object.getOwnPropertyNames(t).forEach(i=>{if(typeof t[i]!="function"){if(typeof t[i]=="object"){Zc(t[i],e[i]={});return}e[i]=t[i]}}),e)}class qf{constructor(e){m(this,"defaults"),this.defaults={baseURL:e.baseURL,headers:{common:{}},timeout:e.timeout,retry:e.retry,retryDelay:e.retryDelay}}buildURL(e,i){const{baseURL:r}=this.defaults,n=e.startsWith("http")?e:`${r}${e.startsWith("/")?e:`/${e}`}`;if(i){const s=new URLSearchParams;return Object.entries(i).forEach(([o,c])=>{s.append(o,c)}),`${n}${n.includes("?")?"&":"?"}${s.toString()}`}return n}request(e){return u(this,null,function*(){var i;const r=((i=e.method)==null?void 0:i.toUpperCase())||"GET",n=this.buildURL(e.url||"",e.params),s=V(V({},this.defaults.headers.common),e.headers);r!=="GET"&&r!=="HEAD"&&e.data&&!s["Content-Type"]&&(s["Content-Type"]="application/json");const o=s["Content-Type"]==="application/json"?JSON.stringify(e.data):e.data,c={method:r,headers:s,body:r!=="GET"&&r!=="HEAD"&&e.data?o:void 0},d=e.timeout||this.defaults.timeout,l=e.retry!==void 0?e.retry:this.defaults.retry,h=e.retryDelay||this.defaults.retryDelay;try{const p=new AbortController,v=setTimeout(()=>p.abort(),d);c.signal=p.signal;const k=yield fetch(n,c);clearTimeout(v);let E=null;const C=k.headers.get("content-type");C&&C.includes("application/json")?E=yield k.json():E=yield k.text();const b={};k.headers.forEach((j,W)=>{b[W]=j});const R={data:E,status:k.status,statusText:k.statusText,headers:b,config:e};if(!k.ok)throw R;return R}catch(p){if(p instanceof Error&&l>0)return yield new Promise(v=>setTimeout(v,h)),this.defaults.baseURL==="https://api.dyte.io"?this.defaults.baseURL="https://api.cluster.dyte.in":this.defaults.baseURL==="https://api.cluster.dyte.in"&&(this.defaults.baseURL="https://api.dyte.io"),this.request(H(V({},e),{retry:l-1}));throw p}})}get(e){return u(this,arguments,function*(i,r={}){return this.request(H(V({},r),{method:"GET",url:i}))})}post(e,i){return u(this,arguments,function*(r,n,s={}){return this.request(H(V({},s),{method:"POST",url:r,data:n}))})}put(e,i){return u(this,arguments,function*(r,n,s={}){return this.request(H(V({},s),{method:"PUT",url:r,data:n}))})}}const XA=3,ZA=30,e1=8e3;class t1{constructor(e,i){m(this,"ipInfo"),m(this,"fetchClient"),m(this,"requests"),m(this,"roomName"),m(this,"roomUUID"),m(this,"authToken"),m(this,"organizationId"),m(this,"iceServers"),m(this,"pluginInformation"),m(this,"userDetails"),m(this,"roomDetails"),m(this,"context"),this.context=e;const{timeout:r=e1,retry:n=XA,retryDelay:s=ZA,baseURL:o="https://api.dyte.io",authToken:c,cachedUserDetails:d}=i||{};this.iceServers=d==null?void 0:d.iceServers,this.pluginInformation=d==null?void 0:d.pluginInformation,this.userDetails=d==null?void 0:d.userDetails,this.roomDetails=d==null?void 0:d.roomDetails,this.requests=new qf({baseURL:o,timeout:r,retry:n,retryDelay:s,responseType:"json"}),this.fetchClient=new qf({baseURL:"",timeout:r,retry:n,retryDelay:s,responseType:"json"}),this.setAuthToken(c,{bearer:!0});const l=this.requests.request.bind(this.requests);this.requests.request=h=>u(this,null,function*(){var p,v,k,E,C;const b=e.getValue("telemetry");try{b.injectContext(this.requests.defaults.headers.common);const R=yield l(h);return h.url!==b.logsEndpoint&&this.logger.debug("xhr::fetch",{networkCall:{status:R.status,statusText:R.statusText,baseURL:h.baseURL||this.requests.defaults.baseURL,url:h.url,method:h.method}}),R}catch(R){throw R?(((p=R.config)==null?void 0:p.url)!==b.logsEndpoint&&this.logger.error("xhr::fetch",{error:R,networkCall:{status:R.status,statusText:R.statusText,baseURL:((v=R.config)==null?void 0:v.baseURL)||this.requests.defaults.baseURL,url:(k=R.config)==null?void 0:k.url,retries:(E=R.config)==null?void 0:E.retry,method:(C=R.config)==null?void 0:C.method,isOnline:navigator.onLine?"online":"offline"}}),new I(R.message||"Network request failed","0011")):new I("Unknown network error occurred","0011")}})}get peerId(){return this.context.getValue("peerId")}get logger(){return this.context.getValue("logger")}setAuthToken(e,i){const{bearer:r}=i||{};this.authToken=e,this.requests.defaults.headers.common.Authorization=r?`Bearer ${e}`:e}setHeader(e,i){this.requests.defaults.headers.common[e]=i}setRoomName(e){this.roomName=e}setRoomUUID(e){this.roomUUID=e}setOrganizationId(e){this.organizationId=e}}var i1=Object.defineProperty,r1=Object.getOwnPropertyDescriptor,ni=(t,e,i,r)=>{for(var n=r>1?void 0:r?r1(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&i1(e,i,n),n};class jt extends t1{constructor(e,i){super(e,i),m(this,"telemetry"),this.telemetry=e.getValue("telemetry"),this.setHeader("x-dyte-web-core-version",e.getValue("sdkVersion"))}getIPDetails(){return u(this,null,function*(){var e;const{peerId:i}=this;try{const r=yield zl.getIPDetails({peerId:i,apiHostnames:Qg(this.context),logger:Vg});if(this.logger.log("ipInfo",{ipInfo:r}),((e=r==null?void 0:r.loc)==null?void 0:e.length)>5)return r;throw Error("Insufficient data")}catch(r){this.logger.warn("ApiClient.getRoomNodeLinkAndTitleV1 Failed to get ip details",{error:{name:r.name,message:r.message}});return}})}getICEServers(){return u(this,null,function*(){if(this.iceServers)return this.iceServers;const{success:e,iceServers:i}=(yield this.requests.get("/iceservers")).data;if(e)return(i==null?void 0:i.length)>0&&(this.iceServers=i),i})}getPlugins(){return u(this,null,function*(){var e,i,r,n,s,o,c;if(this.pluginInformation)return this.pluginInformation;const{plugins:d}=(yield this.requests.get("/v2/plugins/user")).data.data,l=((i=(e=this.context.getValue("flagsmith").getValue(Z.V1_PLUGINS))==null?void 0:e.toString())==null?void 0:i.split(","))||[],h=d.reduce((p,v)=>(p[l.includes(v.id)?"v1":"v2"].push(H(V({},v),{name:v.name.replace("v2","")})),p),{v1:[],v2:[]});return(s=(n=(r=this.context.getValue("modules"))==null?void 0:r.devTools)==null?void 0:n.plugins)!=null&&s.length&&((c=(o=this.context.getValue("modules"))==null?void 0:o.devTools)==null||c.plugins.forEach(p=>{var v,k,E;const C=H(V({},ya),{tags:[...ya.tags],baseUrl:`http://localhost:${p.port}`,name:p.name,picture:(v=p.picture)!=null?v:ya.picture,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),id:p.id,organizationId:this.organizationId,description:(k=p.description)!=null?k:ya.description,staggered:(E=p.staggered)!=null?E:ya.staggered});h.v2.push(C)})),h.v2})}getPluginDetails(e){return u(this,null,function*(){const{plugin:i}=(yield this.requests.get(`/v2/plugins/view/${e}`)).data.data;return i})}getPluginConfig(e){return u(this,null,function*(){return(yield this.fetchClient.get(`${e}/dyte-config.json`)).data})}authorizePlugin(e){return u(this,null,function*(){const i={peerId:this.peerId},{token:r}=(yield this.requests.post(`/v2/plugins/authorize/${e}`,i)).data.data;return r})}getPresignedUrls(e,i){return u(this,null,function*(){const r=Yn(this.context,"chat_upload_expiry"),n={roomUUID:this.roomUUID,filename:e,expiry:typeof r=="number"?r:void 0};this.context.getValue("flagsmith").hasFeature(Z.FEAT_CHAT_SDK)&&(n.viewType=i);const{getLocation:s,putLocation:o}=(yield this.requests.post("/v1/meetings/genPreSignedUploadUrl",n)).data.data;return{getLocation:s,putLocation:o}})}uploadFile(e,i){return u(this,null,function*(){if(navigator.isReactNative&&"uri"in e)try{yield fetch(i,{method:"PUT",headers:{"Content-Type":"application/octet-stream"},body:{uri:e.uri,name:e.name}})}catch(r){this.logger.error(`sendFileMessage::${r}`)}else yield this.fetchClient.put(i,e,{headers:{"Content-Type":e.type}})})}startLivestreaming(e){return u(this,arguments,function*({manualIngestion:i}){const r=yi(yield this.requests.post(`/v2/meetings/${this.context.getValue("meetingId")}/livestreams`,{manual_ingest:!!i})).data.data;return{playbackUrl:r.playbackUrl,status:r.status,manualIngest:r.manualIngest,ingestionCredentials:r.streamKey?{ingestionServer:r.ingestServer,streamKey:r.streamKey}:null}})}stopLivestreaming(){return u(this,null,function*(){return this.requests.post(`/v2/meetings/${this.context.getValue("meetingId")}/active-livestream/stop`)})}getActiveLivestream(){return u(this,null,function*(){const e=yi((yield this.requests.get(`/v2/meetings/${this.context.getValue("meetingId")}/active-livestream`)).data.data);return{playbackUrl:e.playbackUrl,status:e.status,manualIngest:e.manualIngest,ingestionCredentials:e.streamKey?{ingestionServer:e.ingestServer,streamKey:e.streamKey}:null}})}getUserDetails(){return u(this,null,function*(){if(this.userDetails)return this.userDetails;const e=(yield this.requests.get("v2/internals/participant-details")).data.data;return yi(e)})}startRecording(e,i){return u(this,null,function*(){return(yield this.requests.post("/v2/recordings",H(V({},Gf(e)),{meeting_id:this.context.getValue("meetingId"),allow_multiple_recordings:!!i}))).data.data.id})}updateRecording(e,i){return u(this,null,function*(){return this.requests.put(`v2/recordings/${e}`,{action:i})})}getActiveRecording(){return u(this,null,function*(){const{status:e,id:i}=(yield this.requests.get(`v2/recordings/active-recording/${this.context.getValue("meetingId")}`)).data.data;return{status:e,id:i}})}getActiveTranscript(){return u(this,null,function*(){const{transcript_download_url:e}=(yield this.requests.get(`v2/meetings/${this.context.getValue("meetingId")}/active-transcript`)).data.data;try{return{transcript:(yield this.fetchClient.get(e)).data}}catch(i){throw new I("Cant fetch transcript s3 url","1801")}})}getRoomNodeData(){return u(this,null,function*(){const e=yield this.getIPDetails();if(this.ipInfo=e,this.roomDetails)return this.roomDetails;const{roomNodeLink:i,title:r,useHiveMedia:n,sfu:s}=yi((yield this.requests.post("v2/internals/rooms",{ip_information:e})).data.data);return{roomNodeUrl:i,meetingTitle:r,useHiveMedia:n!=null?n:!1,sfu:s}})}}ni([T.trace("APIClient.getIPDetails")],jt.prototype,"getIPDetails",1),ni([T.trace("APIClient.getICEServers")],jt.prototype,"getICEServers",1),ni([T.trace("APIClient.getPlugins")],jt.prototype,"getPlugins",1),ni([T.trace("APIClient.startLivestreaming")],jt.prototype,"startLivestreaming",1),ni([T.trace("APIClient.stopLivestreaming")],jt.prototype,"stopLivestreaming",1),ni([T.trace("APIClient.getActiveLivestream")],jt.prototype,"getActiveLivestream",1),ni([T.trace("APIClient.getUserDetails")],jt.prototype,"getUserDetails",1),ni([T.trace("APIClient.startRecording")],jt.prototype,"startRecording",1),ni([T.trace("APIClient.stopRecording")],jt.prototype,"updateRecording",1),ni([T.trace("APIClient.getActiveRecording")],jt.prototype,"getActiveRecording",1),ni([T.trace("APIClient.getActiveTranscript")],jt.prototype,"getActiveTranscript",1),ni([T.trace("APIClient.getRoomNodeData")],jt.prototype,"getRoomNodeData",1);let Uu;function n1(t,e){return Uu=new jt(t,e),Uu}function pt(){return Uu}function s1(t,e){return`<blockquote>${e.replace(/<blockquote>[.\s\S]*<\/blockquote>\n\n/m,"")}</blockquote>
|
|
14
14
|
${t}`}const ts={maxInvocations:5,period:1};function Dt(t,e){return function(i,r,n){const s=n.value;let o=0,c=Date.now();return n.value=function(...d){const l=Date.now(),h=e?this[e]:t;if(l-c>h.period*1e3&&(c=l,o=0),o>=h.maxInvocations)throw new I(`Method rate limit ${h.maxInvocations} invocations/${h.period}sec exceeded`,"0013");return o+=1,s.apply(this,d)},n}}var a1=Object.defineProperty,o1=Object.getOwnPropertyDescriptor,mt=(t,e,i,r)=>{for(var n=r>1?void 0:r?o1(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&a1(e,i,n),n};const c1=["text","image","file","custom","poll"],ed={maxInvocations:180,period:60};var ee,is,ze,rs,ns,Fu,$f,td,Bu,Jf;let Xe=(Jf=class extends Wt{constructor(t,e,i,r,n){const s=t.getValue("logger");super(s),g(this,Fu),g(this,td),m(this,"messages"),m(this,"channels",[]),g(this,ee,void 0),g(this,is,void 0),g(this,ze,void 0),g(this,rs,void 0),g(this,ns,void 0),m(this,"maxTextLimit",2e3),f(this,ns,t),f(this,ze,e),f(this,rs,i),f(this,ee,r),f(this,is,n),this.messages=[]}get telemetry(){return a(this,ns).getValue("telemetry")}setMaxTextLimit(t){this.maxTextLimit=t}sendMessageInternal(t,e,i){return u(this,arguments,function*(r,n,s,o={}){switch(r.type){case"text":{const c=o.replyTo&&o.replyTo.type==="text"?s1(r.message,o.replyTo.message):r.message;yield this.sendTextMessageInternal(c,n,s);break}case"image":yield this.sendImageMessageInternal(r.image,n,s);break;case"file":yield this.sendFileMessageInternal(r.file,n,s);break;default:this.logger.error("sendMessage::message_type_not_supported",{dyteChat:{messageType:r.type}});break}})}sendTextMessageInternal(t,e,i){return u(this,null,function*(){var r,n,s,o,c,d;if(t.length>this.maxTextLimit)throw new I("Max character limit breached","0503");if(e&&e.length>0){if(!((r=a(this,ee).permissions)!=null&&r.chatPrivate.canSend)||!((n=a(this,ee).permissions)!=null&&n.chatPrivate.text))throw this.logger.error("sendTextMessage::private_chat_permission_denied"),new I("Could not send message to private chat.","0501")}else if(!((o=(s=a(this,ee).permissions)==null?void 0:s.chatPublic)!=null&&o.canSend)||!((d=(c=a(this,ee).permissions)==null?void 0:c.chatPublic)!=null&&d.text))throw this.logger.error("sendTextMessage::public_chat_permission_denied"),new I("Could not send message to public chat.","0501");if(!t)throw this.logger.error("sendTextMessage::message_can_not_be_empty"),new I("Message can not be empty.","0502");if(i){a(this,ze).sendMessageToChannel(t,Tt.TEXT,i);return}let l=[];e&&e.length>0&&(e.push(a(this,ee).id),l=a(this,is).joined.toArray().filter(h=>e.includes(h.id)).map(h=>h.userId),l.push(a(this,ee).userId)),a(this,ze).sendMessage(t,Tt.TEXT,e)})}sendImageMessageInternal(t,e,i){return u(this,null,function*(){var r,n,s,o,c,d;if(e&&e.length>0){if(!((r=a(this,ee).permissions)!=null&&r.chatPrivate.canSend)||!((n=a(this,ee).permissions)!=null&&n.chatPrivate.files)){this.logger.error("sendImageMessage::private_chat_permission_denied");return}}else if(!((o=(s=a(this,ee).permissions)==null?void 0:s.chatPublic)!=null&&o.canSend)||!((d=(c=a(this,ee).permissions)==null?void 0:c.chatPublic)!=null&&d.files)){this.logger.error("sendImageMessage::permission_denied");return}if(!t){this.logger.error("sendImageMessage::required_argument_image_can_not_be_empty");return}if(!["image/gif","image/jpeg","image/png"].includes(t.type)){this.logger.error("sendImageMessage::image_type_not_supported",{dyteChat:{imageType:t.type}});return}try{const l=pt(),{getLocation:h,putLocation:p}=yield l.getPresignedUrls(t.name,a(this,ee).config.viewType);if(yield l.uploadFile(t,p),i){a(this,ze).sendMessageToChannel(h,Tt.IMAGE,i);return}let v=[];e&&e.length>0&&(e.push(a(this,ee).id),v=a(this,is).joined.toArray().filter(k=>e.includes(k.id)).map(k=>k.userId),v.push(a(this,ee).userId)),a(this,ze).sendMessage(h,Tt.IMAGE,e)}catch(l){throw new I("Error sending image message.","0500",this.logger)}})}sendFileMessageInternal(t,e,i){return u(this,null,function*(){var r,n,s,o,c,d;if(e&&e.length>0){if(!((r=a(this,ee).permissions)!=null&&r.chatPrivate.canSend)||!((n=a(this,ee).permissions)!=null&&n.chatPrivate.files)){this.logger.error("sendFileMessage::private_chat_permission_denied");return}}else if(!((o=(s=a(this,ee).permissions)==null?void 0:s.chatPublic)!=null&&o.canSend)||!((d=(c=a(this,ee).permissions)==null?void 0:c.chatPublic)!=null&&d.files)){this.logger.error("sendFileMessage::permission_denied");return}if(!t){this.logger.error("sendFileMessage::required_argument_file_can_not_be_empty");return}try{const l=pt(),{getLocation:h,putLocation:p}=yield l.getPresignedUrls(t.name,a(this,ee).config.viewType);if(yield l.uploadFile(t,p),i){a(this,ze).sendMessageToChannel(JSON.stringify({link:h,name:t.name,size:"size"in t?t.size:0}),Tt.FILE,i);return}let v=[];e&&e.length>0&&(e.push(a(this,ee).id),v=a(this,is).joined.toArray().filter(E=>e.includes(E.id)).map(E=>E.userId),v.push(a(this,ee).userId));const k=JSON.stringify({link:h,name:t.name,size:"size"in t?t.size:0});a(this,ze).sendMessage(k,Tt.FILE,e)}catch(l){throw new I("Error sending file message.","0500",this.logger)}})}get rateLimits(){return ed}updateRateLimits(t,e){ed.maxInvocations=t,ed.period=e}sendTextMessage(t,e){return u(this,null,function*(){return this.sendTextMessageInternal(t,e)})}sendCustomMessage(t,e){return u(this,null,function*(){var i,r,n,s,o,c,d,l,h,p,v,k,E,C,b;if(e&&e.length>0){if(!((i=a(this,ee).permissions)!=null&&i.chatPrivate.canSend)||!((r=a(this,ee).permissions)!=null&&r.chatPrivate.files)||!((n=a(this,ee).permissions)!=null&&n.chatPrivate.text)){this.logger.error("sendCustomMessage::private_chat_permission_denied");return}}else if(!((o=(s=a(this,ee).permissions)==null?void 0:s.chatPublic)!=null&&o.canSend)||!((d=(c=a(this,ee).permissions)==null?void 0:c.chatPublic)!=null&&d.files)||!((h=(l=a(this,ee).permissions)==null?void 0:l.chatPublic)!=null&&h.text)){this.logger.error("sendCustomMessage::permission_denied");return}const R=W=>u(this,null,function*(){try{if(typeof W=="string")return{link:W};const w=pt(),{getLocation:te,putLocation:ie}=yield w.getPresignedUrls(W.name,a(this,ee).config.viewType);return yield w.uploadFile(W,ie),{link:te,type:W.type,name:W.name,size:W.size}}catch(w){throw new I("Error sending image message.","0500",this.logger)}}),j=H(V({},t),{files:yield Promise.all((v=(p=t.files)!=null?p:[])==null?void 0:v.map(W=>u(this,null,function*(){return R(W)}))),images:yield Promise.all((E=(k=t.images)!=null?k:[])==null?void 0:E.map(W=>u(this,null,function*(){return R(W)}))),videos:yield Promise.all((b=(C=t.videos)!=null?C:[])==null?void 0:b.map(W=>u(this,null,function*(){return R(W)})))});a(this,ze).sendMessage(JSON.stringify(j),Tt.CUSTOM,e)})}sendImageMessage(t,e){return u(this,null,function*(){return this.sendImageMessageInternal(t,e)})}sendFileMessage(t,e){return u(this,null,function*(){return this.sendFileMessageInternal(t,e)})}sendMessage(t,e){return u(this,null,function*(){return this.sendMessageInternal(t,e)})}editTextMessage(t,e,i){return u(this,null,function*(){var r,n,s,o,c,d;if(((n=(r=a(this,ee).permissions)==null?void 0:r.chatMessage)==null?void 0:n.canEdit)==="NONE")throw new I("Not permitted to edit messages","0501");if(!((o=(s=a(this,ee).permissions)==null?void 0:s.chatPublic)!=null&&o.canSend)||!((d=(c=a(this,ee).permissions)==null?void 0:c.chatPublic)!=null&&d.text)){this.logger.error("editTextMessage::permission_denied");return}if(!e){this.logger.error("editTextMessage::message_can_not_be_empty");return}a(this,ze).editMessage(t,e,Tt.TEXT,i)})}editImageMessage(t,e,i){return u(this,null,function*(){var r,n,s,o;if(!((n=(r=a(this,ee).permissions)==null?void 0:r.chatPublic)!=null&&n.canSend)||!((o=(s=a(this,ee).permissions)==null?void 0:s.chatPublic)!=null&&o.files)){this.logger.error("editImageMessage::permission_denied");return}if(!e){this.logger.error("editImageMessage::required_argument_image_can_not_be_empty");return}if(!["image/gif","image/jpeg","image/png"].includes(e.type)){this.logger.error("sendImageMessage::image_type_not_supported",{dyteChat:{imageType:e.type}});return}try{const c=pt(),{getLocation:d,putLocation:l}=yield c.getPresignedUrls(e.name,a(this,ee).config.viewType);yield c.uploadFile(e,l),a(this,ze).editMessage(t,d,Tt.IMAGE,i)}catch(c){throw new I("Error editing image message.","0500",this.logger)}})}editFileMessage(t,e,i){return u(this,null,function*(){var r,n,s,o;if(!((n=(r=a(this,ee).permissions)==null?void 0:r.chatPublic)!=null&&n.canSend)||!((o=(s=a(this,ee).permissions)==null?void 0:s.chatPublic)!=null&&o.files)){this.logger.error("sendFileMessage::permission_denied");return}if(!e){this.logger.error("sendFileMessage::required_argument_file_can_not_be_empty");return}try{const c=pt(),{getLocation:d,putLocation:l}=yield c.getPresignedUrls(e.name,a(this,ee).config.viewType);yield c.uploadFile(e,l),a(this,ze).editMessage(t,JSON.stringify({link:d,name:e.name,size:"size"in e?e.size:0}),Tt.FILE,i)}catch(c){throw new I("Error editing file message.","0500",this.logger)}})}editMessage(t,e,i){return u(this,null,function*(){switch(e.type){case"text":{this.editTextMessage(t,e.message,i);break}case"image":{this.editImageMessage(t,e.image,i);break}case"file":{this.editFileMessage(t,e.file,i);break}default:{this.logger.error("editMessage::message_type_not_supported",{dyteChat:{messageType:e.type}});break}}})}deleteMessage(t,e){return u(this,null,function*(){var i,r;if(((r=(i=a(this,ee).permissions)==null?void 0:i.chatMessage)==null?void 0:r.canDelete)==="NONE")throw new I("Not permitted to delete messages","0501");a(this,ze).deleteMessage(t,e)})}getMessagesByUser(t){return this.messages.filter(e=>e.userId===t)}getMessagesByType(t){return this.messages.filter(e=>e.type===t)}pin(t){return u(this,null,function*(){if(!a(this,td,Bu))throw new I("Can`t pin message without joining room","0505");if(!a(this,ee).permissions.pinParticipant)throw new I("You do not have permission to pin messages.","0501");const e=this.messages.find(i=>i.id===t);if(e){a(this,ze).setPinState(e,!0);return}throw new I(`No message found with id: ${t}`,"0504")})}unpin(t){return u(this,null,function*(){if(!a(this,td,Bu))throw new I("Can`t unpin message without joining room","0505");if(!a(this,ee).permissions.pinParticipant)throw new I("You do not have permission to unpin messages.","0501");const e=this.messages.find(i=>i.id===t);if(e){a(this,ze).setPinState(e,!1);return}throw new I(`No message found with id: ${t}`,"0504")})}getMessages(t,e,i,r=0,n=void 0){return u(this,null,function*(){const s=yield a(this,ze).getChatMessagesPaginated(t,e,i,r,n);return{messages:s.messages.map(o=>Zi.formatSocketServiceMessage(o)),next:s.next}})}createChannel(t,e){return u(this,arguments,function*(i,r,n={}){var s;const o=(s=a(this,ee).permissions)==null?void 0:s.chatChannel;if(o){if(o.canCreate==="NONE")throw new I("Not permitted to create channels","0501");if(n.visibility==="public"&&!(o.canCreate==="PUBLIC"||o.canCreate==="ALL"))throw new I("Not permitted to create public channels","0501");if(n.visibility==="private"&&!(o.canCreate==="PRIVATE"||o.canCreate==="ALL"))throw new I("Not permitted to create private channels","0501")}if(!i||i.trim().length===0)throw new I("channel name cannot be empty.","0510");const c=[...new Set([...r,a(this,ee).userId])];return yield a(this,rs).createChannel(i.trim(),c,n.displayPictureUrl,n.visibility,n.isDirectMessage)})}updateChannel(t,e){var i,r,n,s,o;const c=this.channels.find(h=>h.id===t),d=(i=a(this,ee).permissions)==null?void 0:i.chatChannel;if(d){if(d.canUpdate==="NONE")throw new I("Not permitted to update channels","0501");if(c.visibility==="public"&&!(d.canUpdate==="PUBLIC"||d.canUpdate==="ALL"))throw new I("Not permitted to update public channels","0501");if(c.visibility==="private"&&!(d.canUpdate==="PRIVATE"||d.canUpdate==="ALL"))throw new I("Not permitted to update private channels","0501")}const l={memberIds:(r=e.memberIds)!=null?r:c.memberIds,displayName:(n=e.displayName)!=null?n:c.displayName,displayPictureUrl:(s=e.displayPictureUrl)!=null?s:c.displayPictureUrl,visibility:(o=e.visibility)!=null?o:c.visibility};return a(this,rs).updateChannel(t,l)}sendMessageToChannel(t,e){return u(this,arguments,function*(i,r,n={}){return this.sendMessageInternal(i,null,r,n)})}getChannelMembers(t){return u(this,null,function*(){return a(this,rs).getChannelMembers(t)})}searchMessages(t){return u(this,arguments,function*(e,i={}){if(!a(this,ns).getValue("flagsmith").hasFeature(Z.FEAT_CHAT_SDK_SEARCH))throw new I("searchMessages is temporarily disabled!","0506");return(yield a(this,ze).searchMessages(e,i)).map(Zi.formatSocketServiceMessage)})}markLastReadMessage(t,e){return u(this,null,function*(){yield a(this,ze).markLastReadMessage(t,e);const i=this.channels.find(r=>r.id===t);if(i){const r=H(V({},i),{unreadCount:0});this.channels=this.channels.map(n=>n.id===t?r:n),this.emit("channelMessageUpdate",r)}})}get pinned(){return this.messages.filter(t=>t.pinned)}},ee=new WeakMap,is=new WeakMap,ze=new WeakMap,rs=new WeakMap,ns=new WeakMap,Fu=new WeakSet,$f=function(){return a(this,ns).getValue("connectionHandler")},td=new WeakSet,Bu=function(){return a(this,Fu,$f).socketJoined===!0},Jf);mt([T.trace("DyteChat.sendTextMessage"),Dt(ed)],Xe.prototype,"sendTextMessage",1),mt([T.trace("DyteChat.sendImageMessage"),Dt({maxInvocations:20,period:60})],Xe.prototype,"sendImageMessage",1),mt([T.trace("DyteChat.sendFileMessage"),Dt({maxInvocations:20,period:60})],Xe.prototype,"sendFileMessage",1),mt([T.trace("DyteChat.sendMessage"),Dt({maxInvocations:180,period:60})],Xe.prototype,"sendMessage",1),mt([T.trace("DyteChat.editTextMessage")],Xe.prototype,"editTextMessage",1),mt([T.trace("DyteChat.editImageMessage")],Xe.prototype,"editImageMessage",1),mt([T.trace("DyteChat.editFileMessage")],Xe.prototype,"editFileMessage",1),mt([T.trace("DyteChat.editMessage")],Xe.prototype,"editMessage",1),mt([T.trace("DyteChat.deleteMessage")],Xe.prototype,"deleteMessage",1),mt([T.trace("DyteChat.createChannel")],Xe.prototype,"createChannel",1),mt([T.trace("DyteChat.updateChannel")],Xe.prototype,"updateChannel",1),mt([T.trace("DyteChat.sendMessageToChannel")],Xe.prototype,"sendMessageToChannel",1),mt([T.trace("DyteChat.getChannelMembers")],Xe.prototype,"getChannelMembers",1),mt([T.trace("DyteChat.searchMessages")],Xe.prototype,"searchMessages",1),mt([T.trace("DyteChat.markLastReadMessage")],Xe.prototype,"markLastReadMessage",1),Xe=mt([ht("0500")],Xe);var d1=Object.defineProperty,l1=Object.getOwnPropertyDescriptor,u1=(t,e,i,r)=>{for(var n=r>1?void 0:r?l1(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&d1(e,i,n),n},hn,Kf;const pn=(Kf=class{constructor(t,e,i,r,n){m(this,"chat"),m(this,"chatSocketHandler"),m(this,"chatChannelSocketHandler"),m(this,"self"),g(this,hn,void 0),f(this,hn,t),this.chatSocketHandler=e,this.chatChannelSocketHandler=i,this.chat=new Xe(t,e,i,r,n),this.self=r,this.setupEvents()}get telemetry(){return a(this,hn).getValue("telemetry")}get logger(){return a(this,hn).getValue("logger")}static init(t,e,i,r,n){return u(this,null,function*(){return new pn(t,e,i,r,n)})}static formatMessage(t){return H(V({},t),{time:new Date(t.time),type:c1[t.type]})}static formatSocketServiceMessage(t){const e=t.createdAt*1e3,i={displayName:t.displayName,id:t.chatId,time:e,timeMs:t.createdAtMs,type:t.payloadType,isEdited:t.isEdited,userId:t.userId,targetUserIds:t.targetUserIds,channelId:t.channelId,channelIndex:t.channelIndex,message:"",link:"",name:"",html:"",images:[],videos:[],files:[],size:0,pinned:t.pinned};switch(i.type){case Tt.TEXT:{i.message=t.payload;break}case Tt.IMAGE:{i.link=t.payload;break}case Tt.FILE:{const{link:r,name:n,size:s}=JSON.parse(t.payload);i.link=r,i.name=n,i.size=s;break}case Tt.CUSTOM:{const{html:r,images:n,message:s,videos:o,files:c}=JSON.parse(t.payload);i.message=s,i.html=r,i.images=n,i.videos=o,i.files=c;break}}return pn.formatMessage(i)}getChatMessages(){return u(this,null,function*(){if(this.self.config.viewType==="LIVESTREAM"||this.self.config.viewType==="CHAT"||a(this,hn).getValue("flagsmith").hasFeature(Z.FEAT_PAGINATED_CHAT))return;const t=yield this.chatSocketHandler.getChatMessages();if(!(t!=null&&t.payload))return;const e=Af.fromBinary(t.payload).messages;this.chat.messages=e.map(i=>pn.formatSocketServiceMessage(i))})}setupEvents(){a(this,hn).getValue("peerSessionStore").on(M.SOCKET_SERVICE_ROOM_JOINED,()=>u(this,null,function*(){this.getChatMessages()})),this.chatSocketHandler.on(Me.sendMessageToRoom,t=>{const e=pn.formatSocketServiceMessage(t.message);if(!e.channelId)this.chat.messages=[...this.chat.messages,e];else{const i=this.chat.channels.find(r=>r.id===e.channelId);i&&(i.latestMessage=e,i.unreadCount+=1,this.chat.emit("channelMessageUpdate",i))}this.chat.emit("chatUpdate",{action:"add",message:e,messages:this.chat.messages})}),this.chatSocketHandler.on(Me.sendMessageToPeers,t=>{const e=pn.formatSocketServiceMessage(t.message);this.chat.messages=[...this.chat.messages,e],this.chat.emit("chatUpdate",{action:"add",message:e,messages:this.chat.messages})}),this.chatSocketHandler.on(Me.editMessage,t=>{const e=pn.formatSocketServiceMessage(t.message);if(e.channelId){this.chat.emit("chatUpdate",{action:"edit",message:e,messages:this.chat.messages});return}const i=this.chat.messages.findIndex(r=>r.id===e.id);i!==-1&&(this.chat.messages[i]=e,this.chat.emit("chatUpdate",{action:"edit",message:e,messages:this.chat.messages}))}),this.chatSocketHandler.on(Me.deleteMessage,t=>{if(t.channelId){this.chat.emit("chatUpdate",{action:"delete",message:{id:t.chatId,channelId:t.channelId},messages:this.chat.messages});return}const e=this.chat.messages.findIndex(r=>r.id===t.chatId);if(e===-1)return;const[i]=this.chat.messages.splice(e,1);this.chat.emit("chatUpdate",{action:"delete",message:i,messages:this.chat.messages})}),this.chatChannelSocketHandler.on(dn.createChatChannel,t=>{const[e]=t.chatChannels,i=un.formatChannel(e);this.chat.channels.push(i),this.chat.emit("channelCreate",i)}),this.chatSocketHandler.on(Me.pinMessage,t=>{const e=this.chat.messages.findIndex(r=>r.id===t.chatId);if(e===-1)return;const i=this.chat.messages[e];i.pinned=t.pinned,this.chat.messages[e]=i,this.chat.emit("chatUpdate",{action:"edit",message:i,messages:this.chat.messages})}),this.chatChannelSocketHandler.on(dn.updateChatChannel,t=>{const[e]=t.chatChannels,i=un.formatChannel(e);this.chat.channels=this.chat.channels.map(r=>r.id===i.id?i:r),this.chat.emit("channelUpdate",i)})}},hn=new WeakMap,Kf);let Zi=pn;u1([T.trace("ChatController.setupEvents")],Zi.prototype,"setupEvents",1);var h1=Object.defineProperty,p1=Object.getOwnPropertyDescriptor,m1=(t,e,i,r)=>{for(var n=r>1?void 0:r?p1(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&h1(e,i,n),n},Wu,zf,ju,Yf,Ia,Ca,id,Qf;let Hu=(Qf=class extends Wt{constructor(t,e,i){const r=t.getValue("logger");super(r),g(this,Wu),g(this,ju),m(this,"items"),g(this,Ia,void 0),g(this,Ca,void 0),g(this,id,void 0),f(this,id,t),f(this,Ia,e),f(this,Ca,i),this.items=[]}create(t,e,i=!1,r=!1){return u(this,null,function*(){if(!a(this,ju,Yf))throw new I("Can't create polls without joining room","0705");if(!a(this,Ia).permissions.polls.canCreate){this.logger.error("DytePolls::create::permission_denied");return}if(!t||!e){this.logger.error("DytePolls::question_and_options_can_not_be_empty",{dytePolls:{hasQuestion:!!t,optionsLength:e==null?void 0:e.length}});return}if(e.length<2){this.logger.error("DytePolls::there_must_be_at_least_two_options",{dytePolls:{hasQuestion:!!t,optionsLength:e.length}});return}yield a(this,Ca).createPoll(t,e,i,r)})}vote(t,e){return u(this,null,function*(){if(!a(this,Ia).permissions.polls.canVote){this.logger.error("DytePolls::vote::permission_denied");return}yield a(this,Ca).votePoll(t,e)})}},Wu=new WeakSet,zf=function(){return a(this,id).getValue("connectionHandler")},ju=new WeakSet,Yf=function(){var t;return((t=a(this,Wu,zf))==null?void 0:t.socketJoined)===!0},Ia=new WeakMap,Ca=new WeakMap,id=new WeakMap,Qf);Hu=m1([ht("0700")],Hu);var g1=Object.defineProperty,f1=Object.getOwnPropertyDescriptor,v1=(t,e,i,r)=>{for(var n=r>1?void 0:r?f1(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&g1(e,i,n),n},mn,Pa,ss,Xf;const as=(Xf=class{constructor(t,e,i){m(this,"polls"),g(this,mn,void 0),g(this,Pa,void 0),g(this,ss,void 0),this.polls=new Hu(t,e,i),f(this,Pa,e),f(this,mn,t),f(this,ss,i),this.setupEvents()}get telemetry(){return a(this,mn).getValue("telemetry")}get logger(){return a(this,mn).getValue("logger")}static init(t,e,i){return u(this,null,function*(){return new as(t,e,i)})}canViewPolls(){return a(this,Pa).permissions.polls.canView}setupEvents(){const t={[Xi.createPoll]:r=>{r.poll&&this.updatePoll(as.formatSocketServicePoll(r.poll))},[Xi.updatePoll]:r=>{r.poll&&this.updatePoll(as.formatSocketServicePoll(r.poll))},[Xi.votePoll]:r=>{r.poll&&this.updatePoll(as.formatSocketServicePoll(r.poll))}},e=()=>{a(this,mn).getValue("peerSessionStore").on(M.SOCKET_SERVICE_ROOM_JOINED,()=>{this.getPolls()}),Object.keys(t).map(Number).forEach(r=>{a(this,ss).on(r,t[r])})},i=()=>{a(this,mn).getValue("peerSessionStore").on(M.SOCKET_SERVICE_ROOM_JOINED,()=>{this.getPolls()}),Object.keys(t).map(Number).forEach(r=>{a(this,ss).removeListeners(r)})};a(this,Pa).permissions.on("permissionsUpdate",r=>u(this,null,function*(){var n;r!=null&&r.polls&&((n=r==null?void 0:r.polls)!=null&&n.canView?(yield this.getPolls(),e()):(this.polls.items=[],i()))})),this.canViewPolls()&&e()}updatePoll(t){if(!this.canViewPolls())return;const e=this.polls.items.findIndex(i=>i.id===t.id);if(e>-1){const i=JSON.stringify(this.polls.items[e]);this.polls.items[e]=t,i!==JSON.stringify(t)&&this.polls.emit("pollsUpdate",{polls:this.polls.items,newPoll:!1});return}this.polls.items=[...this.polls.items,t],this.polls.emit("pollsUpdate",{polls:this.polls.items,newPoll:!0})}getPolls(){return u(this,null,function*(){const t=yield a(this,ss).getPolls();if(!(t!=null&&t.payload))return;const{polls:e}=PA.fromBinary(t.payload);this.polls.items=e.map(i=>as.formatSocketServicePoll(i))})}static formatSocketServicePoll(t){const e=t.options.map(i=>({count:i.count,text:i.text,votes:i.votes.map(r=>({id:r.userId,name:r.name}))}));return{anonymous:t.anonymous,createdBy:t.createdBy,createdByUserId:t.createdByUserId,hideVotes:t.hideVotes,id:t.pollId,options:e,question:t.question,voted:t.votes}}},mn=new WeakMap,Pa=new WeakMap,ss=new WeakMap,Xf);let Zf=as;v1([T.trace("PollController.setupEvents")],Zf.prototype,"setupEvents",1);var y1=Object.defineProperty,S1=Object.getOwnPropertyDescriptor,T1=(t,e,i,r)=>{for(var n=r>1?void 0:r?S1(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&y1(e,i,n),n},ev=(t=>(t[t.User=0]="User",t[t.Meeting=1]="Meeting",t))(ev||{}),Ra,rd,Gu,os,nd,tv;let qu=(tv=class extends Wt{constructor(t,e,i,r,n){const s=t.getValue("logger");super(s),g(this,rd),m(this,"selfActiveTab"),m(this,"broadcastTabChanges"),g(this,Ra,void 0),g(this,os,void 0),g(this,nd,void 0),m(this,"viewType"),m(this,"meetingStartedTimestamp"),m(this,"meetingTitle"),m(this,"sessionId"),f(this,Ra,t),f(this,os,e),this.viewType=i,f(this,nd,r),this.meetingTitle=n,this.broadcastTabChanges=e.permissions.canSpotlight}get socketState(){return a(this,rd,Gu).socketState}get mediaState(){return a(this,rd,Gu).mediaState}get meetingId(){return a(this,Ra).getValue("meetingId")}setBroadcastTabChanges(t){if(!a(this,os).permissions.canSpotlight)throw this.logger.error("DyteSpotlight::setSpotlighted::permission_denied"),new I("User does not have permission to toggle spotlight","0801");this.broadcastTabChanges=t,this.emit("broadcastTabChangesUpdate",this.broadcastTabChanges),this.broadcastTabChanges&&this.assertActiveTabToRoom()}setSelfActiveTab(t,e){var i;this.logger.info("DyteSpotlight::setActiveTab",{spotlight:{currentTab:{id:t.id,type:t.type}}}),this.selfActiveTab=t,e===0&&this.emit("selfTabUpdate",t),(i=a(this,os).permissions)!=null&&i.canSpotlight&&this.broadcastTabChanges&&e===0&&this.assertActiveTabToRoom()}assertActiveTabToRoom(){a(this,nd).broadcastMessage("spotlight",{userId:a(this,os).userId,currentTab:this.selfActiveTab})}},Ra=new WeakMap,rd=new WeakSet,Gu=function(){return a(this,Ra).getValue("connectionHandler")},os=new WeakMap,nd=new WeakMap,tv);qu=T1([ht("0800")],qu);function k1(t){let e="",i=[""];const r=[i];let n=0,s=0,o=!0,c;for(c of t)c==='"'?(o&&c===e&&(i[n]+=c),o=!o):c===","&&o?c=i[++n]="":c===`
|
|
15
15
|
`&&o?(e==="\r"&&(i[n]=i[n].slice(0,-1)),i=r[++s]=[c=""],n=0):i[n]+=c,e=c;return r}var E1=Object.defineProperty,b1=Object.getOwnPropertyDescriptor,iv=(t,e,i,r)=>{for(var n=r>1?void 0:r?b1(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&E1(e,i,n),n},sd,rv;let wr=(rv=class extends Wt{constructor(t){const e=t.getValue("logger");super(e),m(this,"transcripts"),g(this,sd,void 0),f(this,sd,t),this.transcripts=[]}get telemetry(){return a(this,sd).getValue("telemetry")}static init(t,e){return u(this,null,function*(){const i=new wr(t),r=t.getValue("logger");try{e&&i.getActiveTranscript()}catch(n){r.error("Error fetching active transcriptions ",n)}return i})}static parseTranscript(t,e=!1){if(!t)return;const[[i,r,n,s,o,c]]=k1(t);return{id:Yr(),name:o,peerId:r,userId:n,customParticipantId:s,transcript:c,isPartialTranscript:e,date:new Date(parseInt(i,10)*1e3)}}static parseTranscripts(t){return t?t.split(`
|
|
@@ -19,4 +19,4 @@ slogScale: ${n}, isVoice: ${r}, minEnergy: ${a(this,Fr)},
|
|
|
19
19
|
maxEnergy: ${a(this,xn)}`),n===-1/0||i<1e-6?{energy:0,isVoice:!1}:((!a(this,Fr)||n<a(this,Fr))&&f(this,Fr,n),(!a(this,xn)||n>a(this,xn))&&f(this,xn,n),{energy:(n-a(this,Fr))/(a(this,xn)-a(this,Fr))*10||0,isVoice:r})},cl=new WeakSet,Xh=function(t){return t<5},Zh=new WeakSet,oy=function(t=a(this,js)){var e;if(!a(this,Wi)||!t){a(this,Br).getValue("flagsmith").hasFeature(Z.ENABLE_AUDIO_ACTIVITY_DEBUG_LOGS)&&this.logger.debug(`AudioActivityReporter: No producerId or energy to report: ${a(this,Wi)}`);return}const i={producerId:a(this,Wi),energy:Math.round(t),silent:U(e=dl,cl,Xh).call(e,t)};f(this,xo,i.silent),this.reportRequest(i)},ep=new WeakSet,cy=function(t){const e=Math.log10(t);return Math.round(e)},g(tp,cl),g(tp,ep);const mO=(t=!1)=>{if("MediaStreamTrackGenerator"in window&&"AudioData"in window)try{const i=new window.MediaStreamTrackGenerator({kind:"audio"}),r=i.writable.getWriter(),n=48e3,s=128,o=1;let c=0,d=null;const l=()=>u(void 0,null,function*(){try{const p=new Float32Array(s*o),v=new window.AudioData({format:"f32",sampleRate:n,numberOfFrames:s,numberOfChannels:o,timestamp:c,data:p});c+=s/n*1e6,yield r.ready,yield r.write(v)}catch(p){d&&clearInterval(d),r.releaseLock(),i.writable.abort()}});d=window.setInterval(l,100);const h=new MediaStream([i]).getAudioTracks()[0];return h.addEventListener("ended",()=>{d&&clearInterval(d),r.releaseLock(),i.writable.abort()}),Object.assign(h,{fakeTracks:"fakeTracks:fakeAudioTrack"}),h.enabled=t,h}catch(i){}const e=window.AudioContext||window.webkitAudioContext;if(e)try{const i=new e;if(!i||i.state!=="running"||!i.destination)return;const r=i.createOscillator();r.frequency.value=0,r.type="sine";const n=i.createGain();n.gain.value=0,r.connect(n);const s=i.createMediaStreamDestination();n.connect(s),r.start();const o=s.stream.getAudioTracks()[0];return o?(Object.assign(o,{fakeTracks:"fakeTracks:fakeAudioTrack"}),o.enabled=t,o):void 0}catch(i){return}},gO=(t=!1)=>{var e,i;const r=new MediaStream().getVideoTracks()[0],n=document.createElement("canvas");n.height=(e=r==null?void 0:r.getSettings().height)!=null?e:720,n.width=(i=r==null?void 0:r.getSettings().width)!=null?i:1280;const s=n.getContext("2d");s.fillStyle="black",s.fillRect(0,0,n.width,n.height),setInterval(()=>{s.fillStyle="black",s.fillRect(0,0,n.width,n.height)},1e3);const o=n.captureStream().getVideoTracks()[0];return Object.assign(o,{fakeTracks:"fakeTracks:fakeVideoTrack"}),o.enabled=t,o};var fO=Object.defineProperty,vO=Object.getOwnPropertyDescriptor,pe=(t,e,i,r)=>{for(var n=r>1?void 0:r?vO(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&fO(e,i,n),n};const Yt=["video/VP9","video/VP8"];var ll,ul,Pt,J,Uo,lr,Ut,Hs,Gs,qs,hl,Ci,jr,Fo,$s,Js,Ft,Qt,Un,Ks,ip,dy,rp,ly,np,uy,pl,sp,ap,op,hy,cp,py,dp,my,lp,gy,ft,Rt,zs,Bo,up,fy,hp,vy,pp,yy;const Sy=(op=class{constructor(t,e,i){g(this,Un),g(this,ip),g(this,rp),g(this,np),g(this,pl),g(this,cp),g(this,dp),g(this,lp),g(this,ft),g(this,zs),g(this,up),g(this,hp),g(this,pp),m(this,"context"),m(this,"authToken"),m(this,"e2ee"),g(this,ll,void 0),g(this,ul,void 0),g(this,Pt,void 0),g(this,J,void 0),g(this,Uo,void 0),g(this,lr,void 0),g(this,Ut,void 0),g(this,Hs,void 0),g(this,Gs,void 0),g(this,qs,void 0),g(this,hl,void 0),g(this,Ci,null),g(this,jr,void 0),g(this,Fo,void 0),g(this,$s,void 0),g(this,Js,void 0),g(this,Ft,void 0),g(this,Qt,void 0);var r,n;this.context=t;const{socket:s}=i;this.mediaJoined=!1,f(this,$s,new Map([["video/VP9",new Set],["video/VP8",new Set]])),f(this,Js,new Map([["video/VP9",new Set],["video/VP8",new Set]])),f(this,lr,e),f(this,Pt,s),f(this,Hs,!1),f(this,J,new lO(t,s,e)),f(this,Ut,a(this,J).events),f(this,jr,new Set),f(this,Ft,new Map),f(this,Gs,!1),f(this,qs,new fh(t.getValue("logger"))),e===Ae.CF&&f(this,Qt,new tp(this.context,a(this,J).socketHandler.audioActivity.bind(a(this,J).socketHandler))),this.e2ee=(n=(r=t.getValue("modules").e2ee)==null?void 0:r.enabled)!=null?n:!1,this.handleSocketEvents(),this.handleCallstatsEvents(),f(this,hl,mu(()=>u(this,null,function*(){if(!a(this,Un,Ks).mediaJoinAttempted)return;const{roomJoined:o}=yield this.joinRoom(a(this,ul),a(this,ll),!0,!0);o&&(this.context.getValue("peerSessionStore").emit(M.RESET_PRODUCER_STATE),this.context.getValue("peerSessionStore").emit(M.ROOM_NODE_RECONNECTED))}),5e3,{leading:!0,maxWait:1e3}))}get peerId(){return this.context.getValue("peerId")}get telemetry(){return this.context.getValue("telemetry")}get logger(){return this.context.getValue("logger")}get mediaJoined(){return a(this,Un,Ks).mediaJoined}set mediaJoined(t){a(this,Un,Ks).mediaJoined=t}reset(){a(this,J).closeAllProducers(),a(this,J).closeAllConsumers(),a(this,Ft).clear(),a(this,jr).clear(),f(this,Ci,null),a(this,qs).stop(),a(this,J).stopAllTransports(),a(this,J).reset(),f(this,qs,new fh)}joinRoom(t,e){return u(this,arguments,function*(i,r,n=!1,s=!1,o={}){a(this,Un,Ks).mediaJoinAttempted=!0,f(this,Hs,!0),n&&this.reset();try{return yield a(this,qs).push(()=>U(this,ip,dy).call(this,i,r,s,o),"joinRoom")}catch(c){return this.logger.error("Error in room joining process",{error:c}),this.context.getValue("peerSessionStore").emit(M.ROOM_NODE_FAILED),{roomJoined:!1}}})}initializeConnection(t,e){return u(this,arguments,function*(i,r,n=!1,s={}){return a(this,Ci)?a(this,Ci):(f(this,Ci,(()=>u(this,null,function*(){try{yield U(this,pl,sp).call(this,i,r,n,s)}catch(o){throw f(this,Ci,null),o}}))()),a(this,Ci))})}getConsumers(){return a(this,J).consumers}leaveRoom(){return u(this,null,function*(){a(this,J).stopAllTransports(),f(this,Gs,!1),a(this,Un,Ks).mediaJoinAttempted=!1;const t={closeRoom:!1};a(this,Pt).sendMessagePromise(a(this,Ut).leaveRoom,mI.toBinary(t)).then(e=>{var i;(i=iC.fromBinary(e.payload))!=null&&i.closed&&this.logger.warn("Weird state on peer closed and should not happen")}).catch(e=>{this.logger.error("error on sending leave room request",{error:e})}),this.context.getValue("callstats").callEnded(),this.context.getValue("telemetry").destruct()})}activatePeers(t){return u(this,null,function*(){return this.createConsumers(t)})}createConsumers(t){return u(this,null,function*(){return t.length===0?Promise.resolve():a(this,J).createConsumers(t)})}closeConsumers(t){return u(this,null,function*(){if(!t.length)return;const e=t.reduce((i,r)=>{const n=a(this,J).producerIdToConsumerIdMap.get(r.producerId);return n?(i.push(n),i):(this.logger.warn(`consumer not found in close consumers: ${r.producerId}`),i)},[]);yield a(this,J).closeConsumers(e)})}_shareWebcam(t,e){return u(this,null,function*(){const i=e==="video/VP9"?Te.WEBCAM:Te.WEBCAM_BACKUP,r=U(this,ft,Rt).call(this,i);if(r){const h=yield r;if(a(this,J).producers.has(h)){const p=a(this,J).producers.get(h);if(!p.closed)return yield p.replaceTrack({track:t}),yield this.resumeWebcam(i),t;yield this.disableWebcam(e)}return this._shareWebcam(t,e)}const n=[e].concat(Yt.filter(h=>h!==e)),s=U(this,pp,yy).call(this,t,n),o=Yn(this.context,"disableSimulcast"),c=a(this,lr)===Ae.CF?Z.ENABLE_CF_SIMULCAST:Z.ENABLE_HIVE_SIMULCAST;!o&&this.context.getValue("flagsmith").hasFeature(c)?(this.logger.info(`Simulcast enabled for SFU: ${a(this,lr)}`),s.encodings=Z1(this.context,t)):this.logger.info(`Simulcast disabled for webcam producer, SFU: ${a(this,lr)}`),this.context.getValue("flagsmith").hasFeature(Z.TRACK_HINT)&&(s.track.contentHint=this.context.getValue("flagsmith").getValue(Z.TRACK_HINT));const d=()=>{this.logger.info("Disabling video due to the producer closure"),a(this,Ft).delete(i)},l=a(this,J).createProducer(s,d);return U(this,zs,Bo).call(this,i,l.then(h=>h.id)),l.then(h=>h.track)})}shareWebcam(t){return u(this,null,function*(){var e;if(t===void 0)return null;const i=(e=this.context.getValue("flagsmith").getValue(Z.FORCE_VIDEO_CODEC))==null?void 0:e.toString();if(i)return this.logger.debug(`Calling _shareWebcam with forced video codec: ${i}`),this._shareWebcam(t,i);const r=Yt.filter(n=>{var s,o;return((o=(s=a(this,Uo).sender)==null?void 0:s.video)==null?void 0:o.codecs.findIndex(c=>c.mimeType===n))>=0&&a(this,Js).get(n).size>0});return r.length===0&&r.push(Yt[0]),yield Promise.all(r.map(n=>(this.logger.debug(`Calling _shareWebcam with video codec: ${n}`),this._shareWebcam(t,n)))),t})}shareScreen(t){return u(this,null,function*(){const{video:e,audio:i}=t;if(e===void 0)return;const r={track:e,codecOptions:[{name:"VP8"}],appData:{screenShare:!0,e2ee:this.e2ee,supportsRemoteControl:Ee.isElectron()},stopTracks:!1},n=()=>{this.logger.info("Disabling screenShare due to the producer closure"),a(this,Ft).delete(Te.SCREENSHARE_VIDEO),a(this,Ft).delete(Te.SCREENSHARE_AUDIO)},s=a(this,J).createProducer(r,n);U(this,zs,Bo).call(this,Te.SCREENSHARE_VIDEO,s.then(c=>c.id));let o;if(i){const c={track:i,codecOptions:[{name:"opus"}],appData:{screenShare:!0,e2ee:this.e2ee,supportsRemoteControl:Ee.isElectron()},stopTracks:!1,zeroRtpOnPause:a(this,lr)!==Ae.CF},d=()=>{};o=a(this,J).createProducer(c,d),U(this,zs,Bo).call(this,Te.SCREENSHARE_AUDIO,o.then(l=>l.id))}yield Promise.all([s,o||Promise.resolve()]),this.context.getValue("callstats").screenShareStart()})}shareMic(t){return u(this,null,function*(){try{if(t===void 0)throw new xt("track undefined");const e=U(this,ft,Rt).call(this,Te.MIC);if(e){const s=yield e;if(a(this,J).producers.has(s)){const o=a(this,J).producers.get(s);if(!o.closed){yield o.replaceTrack({track:t}),yield this.resumeMic(),a(this,Qt)&&(a(this,Qt).audioTrack=t,a(this,Qt).producerId=s,a(this,Qt).start());return}yield a(this,J).closeProducer(s,{stopTrack:!1})}yield this.shareMic(t);return}const i=U(this,hp,vy).call(this,t),r=()=>{a(this,Ft).delete(Te.MIC)},n=a(this,J).createProducer(i,r);U(this,zs,Bo).call(this,Te.MIC,n.then(s=>s.id)),yield n.then(s=>{a(this,Qt)&&(a(this,Qt).audioTrack=s.track,a(this,Qt).producerId=s.id,a(this,Qt).start())})}catch(e){throw new I(e)}})}pauseMic(){return u(this,null,function*(){var t;const e=yield U(this,ft,Rt).call(this,Te.MIC),i=a(this,J).producers.get(e);if(!i){this.logger.error("pauseMic::could_not_find_mic_producer");return}if(i.paused){this.logger.info("pauseMic::mic_producer_already_paused");return}i.pause(),(t=a(this,Qt))==null||t.stop();const r={producerId:i.id,pause:!0};a(this,Pt).sendMessage(a(this,Ut).toggleProducer,$c.toBinary(r))})}pauseWebcam(){return u(this,null,function*(){const t=yield U(this,ft,Rt).call(this,Te.WEBCAM),e=yield U(this,ft,Rt).call(this,Te.WEBCAM_BACKUP),i=a(this,J).producers.get(t),r=a(this,J).producers.get(e);if(!i&&!r){this.logger.error("pauseWebcam::could_not_find_webcam_producer");return}const n=s=>{const o={producerId:s.id,pause:!0};a(this,Pt).sendMessage(a(this,Ut).toggleProducer,$c.toBinary(o))};i&&(i.pause(),n(i)),r&&(r.pause(),n(r))})}resumeMic(){return u(this,null,function*(){const t=yield U(this,ft,Rt).call(this,Te.MIC),e=a(this,J).producers.get(t);if(!e){this.logger.error("resumeMic::could_not_find_mic_producer");return}if(!e.pause){this.logger.info("resumeMic::mic_producer_already_resumed");return}e.resume(),e.appData.e2ee&&this.context.getValue("peerSessionStore").emit(M.E2EE_ACTIVE_PRODUCER,e);const i={producerId:e.id,pause:!1};a(this,Pt).sendMessage(a(this,Ut).toggleProducer,$c.toBinary(i))})}resumeWebcam(){return u(this,arguments,function*(t=Te.WEBCAM){const e=yield U(this,ft,Rt).call(this,t),i=a(this,J).producers.get(e);if(!i){this.logger.error("resumeWebcam::could_not_find_webcam_producer");return}if(!i.paused){this.logger.info("resumeWebcam::webcam_producer_already_resumed");return}i.resume(),i.appData.e2ee&&this.context.getValue("peerSessionStore").emit(M.E2EE_ACTIVE_PRODUCER,i);const r={producerId:i.id,pause:!1};a(this,Pt).sendMessage(a(this,Ut).toggleProducer,$c.toBinary(r))})}disableWebcam(t){return u(this,null,function*(){const e=t==="video/VP9"?Te.WEBCAM:Te.WEBCAM_BACKUP,i=yield U(this,ft,Rt).call(this,e);U(this,up,fy).call(this,e),i&&(yield a(this,J).closeProducer(i))})}disableMic(){return u(this,null,function*(){var t;const e=yield U(this,ft,Rt).call(this,Te.MIC);e&&(yield a(this,J).closeProducer(e)),(t=a(this,Qt))==null||t.stop(),a(this,Ft).delete(Te.MIC)})}disableScreenShare(){return u(this,null,function*(){this.logger.info("screen_sharing_stopped"),this.context.getValue("callstats").screenShareStop();const t=yield U(this,ft,Rt).call(this,Te.SCREENSHARE_VIDEO),e=yield U(this,ft,Rt).call(this,Te.SCREENSHARE_AUDIO);t&&(yield a(this,J).closeProducer(t)),e&&(yield a(this,J).closeProducer(e)),a(this,jr).clear(),a(this,Ft).delete(Te.SCREENSHARE_VIDEO),a(this,Ft).delete(Te.SCREENSHARE_AUDIO)})}muteSelf(){return u(this,null,function*(){this.pauseMic()})}unmuteSelf(){return u(this,null,function*(){})}resetVideoProducers(t,e){return u(this,null,function*(){if(t){const i=yield U(this,ft,Rt).call(this,Te.WEBCAM),r=yield U(this,ft,Rt).call(this,Te.WEBCAM_BACKUP);yield a(this,J).closeProducer(i,{stopTrack:!1}),yield a(this,J).closeProducer(r,{stopTrack:!1}),this.shareWebcam(t)}if(e){const i=yield U(this,ft,Rt).call(this,Te.SCREENSHARE_VIDEO);yield a(this,J).closeProducer(i,{stopTrack:!1}),this.shareScreen({video:e})}})}changeDisplayName(t,e){return u(this,null,function*(){const i={displayName:t,participantId:e!=null?e:this.peerId};if(!(yield a(this,J).socketHandler.changeDisplayName(i)))throw new Error("failed to change display name!")})}kick(t){const e={peerIds:[t]};a(this,J).socketHandler.kickPeer(e)}kickAll(){a(this,J).socketHandler.kickAll()}muteAll(t){return u(this,null,function*(){if(!(yield a(this,J).socketHandler.hostControlForAll("audio")))throw new Error("failed to mute all participant")})}muteAllVideo(){return u(this,null,function*(){if(!(yield a(this,J).socketHandler.hostControlForAll("video")))throw new Error("failed to mute all video participant")})}disableAudio(t){return u(this,null,function*(){if(!(yield a(this,J).socketHandler.hostControlForPeer(t,"audio")))throw new Error("failed to mute given participant")})}disableVideo(t){return u(this,null,function*(){if(!(yield a(this,J).socketHandler.hostControlForPeer(t,"video")))throw new Error("failed to mute video of given participant")})}pinPeer(t){return u(this,null,function*(){const e={participantId:t!=null?t:""};try{yield a(this,Pt).sendMessagePromise(a(this,Ut).globalPinPeer,PI.toBinary(e))}catch(i){this.logger.error("Error in pinning peer:",{error:i})}})}validateScreenShare(t){return this.peerId===t.peerId&&a(this,J).producers.get(t.producerId)&&a(this,jr).add(t.consumerPeerId),a(this,jr).size}switchConsumersToLayer(t,e){return u(this,null,function*(){const i=t.map(r=>this.getConsumers().get(r));a(this,J).switchConsumersToLayer(i,e)})}handleSocketEvents(){return u(this,null,function*(){a(this,Pt).on(a(this,Ut).peerProducerCreateBroadcast,({payload:t})=>{var e,i;if(this.mediaJoined)try{const{participantId:r,producerState:n}=DC.fromBinary(t);if(r===this.peerId)return;if(n!=null&&n.mimeType||(n.mimeType=n.kind===Ni.AUDIO?"audio/opus":"video/VP8"),n.kind===Ni.VIDEO&&!n.screenShare&&((i=(e=a(this,Uo).receiver)==null?void 0:e.video)==null?void 0:i.codecs.findIndex(s=>s.mimeType===Yt[0]))>=0&&a(this,$s).get(Yt[0]).has(r)&&n.mimeType!==Yt[0]){this.logger.warn(`Ignoring producer: ${n.producerId}`);return}this.logger.info(`producer created broadcast: ${r}, producer state: ${n}`),this.context.getValue("peerSessionStore").emit(M.NEW_PRODUCER,{peerId:r,producer:H(V({},n),{kind:n.kind===Ni.AUDIO?"audio":"video",producingPeerId:r})})}catch(r){this.logger.error("error in peer-producer-create-broadcast",{error:r})}}),a(this,Pt).on(a(this,Ut).peerProducerToggleBroadcast,({payload:t})=>{if(this.mediaJoined)try{const{participantId:e,initiatorParticipantId:i,producerState:{kind:r,pause:n,producerId:s}}=ff.fromBinary(t),o=r===Ni.AUDIO?"audio":"video";if(this.logger.info(`producer toggle broadcast: ${e}, producerId: ${s}, kind:${o}, paused:${n} payload: ${JSON.stringify(ff.fromBinary(t))}`),e===this.peerId&&i!==this.peerId&&n&&this.context.getValue("peerSessionStore").emit(o==="audio"?M.MUTE_SELF:M.MUTE_SELF_VIDEO),e===this.peerId)return;this.context.getValue("peerSessionStore").emit(M.PRODUCER_TOGGLE,{peerId:e,producerId:s,paused:n,kind:o}),Array.from(this.getConsumers().values()).filter(c=>c.producerId===s).forEach(c=>{c.paused!==n&&(this.logger.debug(`consumer state mismatched for ${c.id}. updating consumer pause state ${c.paused} to ${n}`),n?(c.pause(),this.context.getValue("peerSessionStore").emit(M.CONSUMER_PAUSED,{id:c.id})):(c.resume(),this.context.getValue("peerSessionStore").emit(M.CONSUMER_RESUMED,{id:c.id})))})}catch(e){this.logger.error("error in producer toggle broadcast handler",{error:e})}}),a(this,Pt).on(a(this,Ut).peerLeaveBroadcast,({payload:t})=>{if(this.mediaJoined)try{const{participantId:e}=Tu.fromBinary(t);if(e===this.peerId)return;this.logger.info(`peer left broadcast:${e}`),a(this,jr).delete(e),a(this,J).consumers.forEach(i=>{i.peerId===e&&i.close()}),this.context.getValue("peerSessionStore").emit(M.PEER_CLOSED,{id:e})}catch(e){this.logger.error("error in peer left broadcast",{error:e})}}),a(this,Pt).on(a(this,Ut).peerProducerCloseBroadcast,({payload:t})=>{if(this.mediaJoined)try{const{participantId:e,producerState:{producerId:i}}=VC.fromBinary(t);if(e===this.peerId)return;this.logger.info(`producer closed broadcast:${e}`),this.context.getValue("peerSessionStore").emit(M.PRODUCER_CLOSED,{peerId:e,producerId:i});const r=a(this,J).producerIdToConsumerIdMap.get(i);if(!r){this.logger.warn(`no consumer found for producer:${i}`);return}this.logger.info(`closing consumer ${r}, producer id: ${i}`),a(this,J).closeConsumer(r).then(()=>{this.logger.info(`closed consumer: ${r}`),a(this,J).producerIdToConsumerIdMap.delete(i),this.context.getValue("peerSessionStore").emit(M.CONSUMER_CLOSED,{id:r})}).catch(n=>{this.logger.error("error closing consumer",{error:n})})}catch(e){this.logger.error("error on producer close broadcast",{error:e})}}),a(this,Pt).on(a(this,Ut).mediaRoomTerminationBroadcastResponse,()=>{!this.mediaJoined&&!a(this,Hs)&&!a(this,Gs)||(this.logger.warn("media hub termination broadcast received, rejoining room"),this.context.getValue("peerSessionStore").emit(M.ROOM_NODE_DISCONNECTED),a(this,hl).call(this))})})}handleCallstatsEvents(){this.context.getValue("callstats").onConsumerScore(t=>{t.forEach((e,i)=>{const r=a(this,J).consumers.get(i);r&&this.context.getValue("peerSessionStore").emit(M.CONSUMER_SCORE_UPDATE,{id:i,kind:r.kind,peerId:r.peerId,score:e.score,scoreStats:e})})}),this.context.getValue("callstats").onProducerScore(t=>{t.forEach((e,i)=>{const r=Array.from(a(this,J).producers.values()).find(n=>n.id===i);r&&this.context.getValue("peerSessionStore").emit(M.PRODUCER_SCORE_UPDATE,{id:i,kind:r.kind,appData:r.appData,score:e.score,scoreStats:e})})})}handlePeerCapabilities(t,e){var i,r,n,s;for(let o=0;o<=Yt.length;o+=1){const c=Yt[o];if(((r=(i=e==null?void 0:e.receiver)==null?void 0:i.video)==null?void 0:r.codecs.findIndex(d=>d.mimeType===c))>=0||o===Yt.length-1){a(this,Js).get(c).add(t);break}}for(let o=0;o<=Yt.length;o+=1){const c=Yt[o];if(((s=(n=e==null?void 0:e.sender)==null?void 0:n.video)==null?void 0:s.codecs.findIndex(d=>d.mimeType===c))>=0||o===Yt.length-1){a(this,$s).get(c).add(t);break}}}handlePeerLeaving(t){this.context.getValue("flagsmith").hasFeature(Z.FORCE_VIDEO_CODEC)||(a(this,$s).forEach(e=>e.delete(t)),a(this,Js).forEach((e,i)=>{e.delete(t),!(e.size!==0||i===Yt[0])&&this.disableWebcam(i)}))}},ll=new WeakMap,ul=new WeakMap,Pt=new WeakMap,J=new WeakMap,Uo=new WeakMap,lr=new WeakMap,Ut=new WeakMap,Hs=new WeakMap,Gs=new WeakMap,qs=new WeakMap,hl=new WeakMap,Ci=new WeakMap,jr=new WeakMap,Fo=new WeakMap,$s=new WeakMap,Js=new WeakMap,Ft=new WeakMap,Qt=new WeakMap,Un=new WeakSet,Ks=function(){return this.context.getValue("connectionHandler")},ip=new WeakSet,dy=function(t,e,i,r){return u(this,null,function*(){f(this,ul,t);try{return a(this,Ci)?yield a(this,Ci):yield U(this,pl,sp).call(this,t,e,i,r),U(this,np,uy).call(this,e),{roomJoined:yield U(this,rp,ly).call(this)}}catch(n){return this.logger.error("Failed to complete room join",{error:n}),{roomJoined:!1}}finally{f(this,Ci,null)}})},rp=new WeakSet,ly=function(){return u(this,null,function*(){try{this.mediaJoined=!0;const{roomState:t}=yield a(this,J).socketHandler.notifySelfJoinComplete();return f(this,ll,t.roomUuid),f(this,Gs,!0),f(this,Hs,!1),!0}catch(t){return this.logger.error("Error completing room join",{error:t}),this.mediaJoined=!1,!1}})},np=new WeakSet,uy=function(t){navigator.product!=="ReactNative"&&setTimeout(()=>{try{const e={userId:this.context.getValue("userId"),peerId:this.peerId,roomUUID:t,roomViewType:"groupCall",deviceInfo:H(V({},Ee.getDeviceInfo()),{userAgent:navigator.userAgent,memory:navigator.deviceMemory,cpus:navigator.hardwareConcurrency}),sdkName:this.context.getValue("sdkName"),sdkVersion:this.context.getValue("sdkVersion"),metaData:{},permissions:{}};this.context.getValue("callstats").roomJoined(e)}catch(e){this.logger.error("Error reporting room joined analytics",{error:e})}},0)},pl=new WeakSet,sp=function(t,e,i,r){return u(this,null,function*(){var n,s;try{(s=a(this,Fo))!=null||f(this,Fo,U(n=Sy,ap,hy).call(n));const o=U(this,cp,py).call(this);yield U(this,dp,my).call(this,t,e,i,o),yield a(this,J).setupTransports({send:!0,recv:!0}),yield U(this,lp,gy).call(this,r)}catch(o){throw this.logger.error("Failed to initialize connection",{error:o}),o}})},ap=new WeakSet,hy=function(){const{ipInfo:t}=pt();if(!(t!=null&&t.loc))return;const[e,i]=t.loc.split(",").map(parseFloat);return{latitude:e,longitude:i}},cp=new WeakSet,py=function(){var t;const e=(t=this.context.getValue("flagsmith").getValue(Z.FORCE_VIDEO_CODEC))==null?void 0:t.toString(),i=QD(e);return f(this,Uo,i),i},dp=new WeakSet,my=function(t,e,i,r){return u(this,null,function*(){yield xv((n,s)=>u(this,null,function*(){if(!a(this,Pt).isConnected){s(new Error("Socket is not connected"));return}n>0&&this.logger.warn("Retry: send joinRoom message",{debuggingHint:`Retry attempt ${n}`});try{yield a(this,J).socketHandler.joinRoom(e,t,r,i,a(this,Fo))}catch(o){throw this.logger.error("Failed to send joinRoom message after retries",{error:o}),o}}),{delayTime:1e3,strategy:"exponential",maxRetryCount:this.context.getValue("flagsmith").hasFeature(Z.ENABLE_HIVE_INFINITE_RETRIES)?1/0:3})})},lp=new WeakSet,gy=function(t){return u(this,null,function*(){if(!(a(this,lr)===Ae.HIVE||!this.context.getValue("flagsmith").hasFeature(Z.PRECREATE_PRODUCERS)||!t))try{const e=[];if(t.canProduceVideo===G.Allowed&&e.push(this.shareWebcam(gO(!1))),t.canProduceAudio===G.Allowed){const i=mO(!1);i&&e.push(this.shareMic(i))}e.length>0&&(yield Promise.all(e))}catch(e){this.logger.warn("Failed to precreate producers",{error:e})}})},ft=new WeakSet,Rt=function(t){return a(this,Ft).get(t)},zs=new WeakSet,Bo=function(t,e){return a(this,Ft).set(t,e)},up=new WeakSet,fy=function(t){return a(this,Ft).delete(t)},hp=new WeakSet,vy=function(t){return{track:t,encodings:[{priority:"high"}],codecOptions:[{name:"opus"}],appData:{e2ee:this.e2ee},stopTracks:!1,zeroRtpOnPause:a(this,lr)!==Ae.CF}},pp=new WeakSet,yy=function(t,e){return{track:t,codecOptions:e?e.map(i=>({name:i.split("/")[1]})):[{name:"VP8"}],appData:{screenShare:!1,e2ee:this.e2ee},stopTracks:!1}},g(op,ap),op);let oe=Sy;pe([T.trace("MediaNodeClient.reset",{country:T.location.country})],oe.prototype,"reset",1),pe([T.trace("MediaNodeClient.joinRoom")],oe.prototype,"joinRoom",1),pe([T.trace("MediaNodeClient.leaveRoom")],oe.prototype,"leaveRoom",1),pe([T.trace("MediaNodeClient.activatePeers")],oe.prototype,"activatePeers",1),pe([T.trace("MediaNodeClient.createConsumers")],oe.prototype,"createConsumers",1),pe([T.trace("MediaNodeClient.closeConsumers")],oe.prototype,"closeConsumers",1),pe([T.trace("MediaNodeClient._shareWebcam")],oe.prototype,"_shareWebcam",1),pe([T.trace("MediaNodeClient.shareWebcam")],oe.prototype,"shareWebcam",1),pe([T.trace("MediaNodeClient.shareScreen")],oe.prototype,"shareScreen",1),pe([T.trace("MediaNodeClient.shareMic")],oe.prototype,"shareMic",1),pe([T.trace("MediaNodeClient.pauseMic")],oe.prototype,"pauseMic",1),pe([T.trace("MediaNodeClient.pauseWebcam")],oe.prototype,"pauseWebcam",1),pe([T.trace("MediaNodeClient.resumeMic")],oe.prototype,"resumeMic",1),pe([T.trace("MediaNodeClient.resumeWebcam")],oe.prototype,"resumeWebcam",1),pe([T.trace("MediaNodeClient.disableWebcam")],oe.prototype,"disableWebcam",1),pe([T.trace("HiveClient.disableMic")],oe.prototype,"disableMic",1),pe([T.trace("HiveClient.disableScreenShare")],oe.prototype,"disableScreenShare",1),pe([T.trace("MediaNodeClient.muteSelf")],oe.prototype,"muteSelf",1),pe([T.trace("MediaNodeClient.resetVideoProducers")],oe.prototype,"resetVideoProducers",1),pe([T.trace("MediaNodeClient.changeDisplayName")],oe.prototype,"changeDisplayName",1),pe([T.trace("MediaNodeClient.kickPeer")],oe.prototype,"kick",1),pe([T.trace("MediaNodeClient.kickAllPeers")],oe.prototype,"kickAll",1),pe([T.trace("MediaNodeClient.muteAll")],oe.prototype,"muteAll",1),pe([T.trace("MediaNodeClient.muteAllVideo")],oe.prototype,"muteAllVideo",1),pe([T.trace("MediaNodeClient.disableAudio")],oe.prototype,"disableAudio",1),pe([T.trace("MediaNodeClient.disableVideo")],oe.prototype,"disableVideo",1),pe([T.trace("MediaNodeClient.pinPeer")],oe.prototype,"pinPeer",1),pe([T.trace("MediaNodeClient.validateScreenShare")],oe.prototype,"validateScreenShare",1);function Ty(t,e,i){const r=t.getValue("roomNodeClient");if(r){if(r)return r;throw new Error("Room node client already set up.")}const n=new oe(t,e,i);return t.setValue("roomNodeClient",n),n}function ky(t){const e=t.getValue("roomNodeClient");try{e==null||e.leaveRoom()}catch(i){t.getValue("logger").error("roomNodeClient::cleanupRoomNodeClient")}t.setValue("roomNodeClient",void 0)}var yO=Object.defineProperty,SO=Object.getOwnPropertyDescriptor,Fn=(t,e,i,r)=>{for(var n=r>1?void 0:r?SO(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&yO(e,i,n),n},Ys,ji,re,Bt,Xt,Ey;const by=(Ey=class{constructor(t,e,i,r){g(this,Bt),m(this,"self"),m(this,"authToken"),g(this,Ys,void 0),m(this,"viewType"),g(this,ji,void 0),g(this,re,void 0);const{socket:n}=i,s=t.getValue("authToken");this.self=e,f(this,re,t),this.viewType=r,this.authToken=s,f(this,Ys,n),f(this,ji,i),e.config.viewType!==Mt.Chat&&this.setupEvents()}get peerId(){return a(this,re).getValue("peerId")}get telemetry(){return a(this,re).getValue("telemetry")}get logger(){return a(this,re).getValue("logger")}get mediaJoined(){return a(this,re).getValue("connectionHandler").mediaJoined}static init(t,e,i,r,n){return u(this,null,function*(){const s=pt(),o=t.getValue("peerId"),c=!!t.getValue("cachedUserDetails"),d=yield tt.__init__(t,i,r,n,n.name,c);t.setValue("self",d);const l=t.getValue("logger");if(navigator.product!=="ReactNative"){const h=!t.getValue("flagsmith").hasFeature(Z.PRECALL_BANDWIDTH_TEST);setTimeout(()=>u(this,null,function*(){const p=yield d.getAllDevices();l.info("populated_full_device_list",{devices:JSON.stringify(p)}),t.getValue("callstats").devices("AUDIO",p==null?void 0:p.filter(v=>v.kind==="audioinput")),t.getValue("callstats").devices("VIDEO",p==null?void 0:p.filter(v=>v.kind==="videoinput")),t.getValue("callstats").devices("SPEAKER",p==null?void 0:p.filter(v=>v.kind==="audiooutput")),l.info("Callstats:: initializing");try{yield t.getValue("callstats").initialize({peerId:o,engineName:Ee.getDeviceInfo().engineName,env:t.getValue("env"),iceServers:yield s.getICEServers(),apiBase:t.getValue("apiBase"),flags:t.getValue("flagsmith").getAllFlags(),logger:l,apiHostnames:Qg(t),skipConnectivityChecks:h}),l.info("Callstats:: initialized")}catch(v){l.error("Callstats:: initialization failed",{error:v})}}),0)}else l.info("Callstats:: Skipped initialization due to navigator product being ReactNative.");return new by(t,d,e,n.viewType)})}shareMediaTracks(){return u(this,null,function*(){var t;const{audioTrack:e,videoTrack:i,permissions:r,audioEnabled:n,videoEnabled:s,screenShareEnabled:o,screenShareTracks:c}=this.self;if(r.canProduceAudio===G.Allowed&&n)try{yield a(this,Bt,Xt).shareMic(e),this.self.audioEnabled||a(this,Bt,Xt).pauseMic()}catch(d){this.self.disableAudio()}if(r.canProduceVideo===G.Allowed&&s)try{const d=yield a(this,Bt,Xt).shareWebcam(i);d&&d.id!==i.id&&a(this,re).getValue("flagsmith").hasFeature(Z.EXP_RESHARE)&&(yield a(this,Bt,Xt).shareWebcam(d)),this.self.videoEnabled||a(this,Bt,Xt).pauseWebcam()}catch(d){this.self.disableVideo()}if(r.canProduceScreenshare===G.Allowed&&o)try{yield(t=a(this,Bt,Xt))==null?void 0:t.shareScreen({video:c.video,audio:c.audio})}catch(d){this.self.disableScreenShare()}})}kickHandler(t){return u(this,null,function*(){let e="kicked";(t==null?void 0:t.kickType)==="kickAll"&&(e="ended"),this.leaveRoom(e)})}waitlistedHandler(){this.logger.info("SelController.waitlisted"),this.self.waitlistStatus="waiting",this.self.roomState="waitlisted",this.self.emit("waitlisted")}waitlistAcceptHandler(){if(this.logger.info("SelController.waitlistAccepted"),this.self.waitlistStatus==="accepted"){this.logger.warn("SelfController.WAITLIST_ACCEPTED.UserAlreadyAccepted");return}this.self.waitlistStatus="accepted",this.joinRoom()}waitlistRejectedHandler(){if(this.logger.info("SelfController.waitlistRejected"),this.self.waitlistStatus==="rejected"){this.logger.warn("SelfController.WAITLIST_REJECTED.UserAlreadyRejected");return}this.self.waitlistStatus="rejected",this.leaveRoom("rejected")}resetSelf(t){return u(this,null,function*(){a(this,re).getValue("callstats").callEnded(),a(this,Bt,Xt).reset(),t&&(yield this.joinRoom(t))})}setupEvents(){a(this,re).getValue("peerSessionStore").on(M.RESET_PRODUCER_STATE,()=>u(this,null,function*(){this.mediaJoined&&this.shareMediaTracks()})),a(this,re).getValue("peerSessionStore").on(M.ROOM_NODE_RECONNECTED,()=>{this.self.roomState="joined",this.self.emit("roomJoined",{reconnected:!0})}),a(this,re).getValue("peerSessionStore").on(M.ROOM_NODE_DISCONNECTED,()=>{this.self.roomState!=="disconnected"&&(this.self.roomState="disconnected",this.self.emit("roomLeft",{state:"disconnected"}))}),a(this,re).getValue("peerSessionStore").on(M.ROOM_NODE_FAILED,()=>{this.self.roomState="failed",this.self.emit("roomLeft",{state:"failed"})}),a(this,re).getValue("peerSessionStore").on(M.SOCKET_SERVICE_RECONNECTED,({wasJoinAttempted:t})=>{t===!1&&(this.self.roomState="init"),this.resetSelf(t)}),a(this,re).getValue("peerSessionStore").on(M.SOCKET_SERVICE_DISCONNECTED,({joinAttempted:t})=>{if(this.self.roomState==="disconnected")return;let{peerId:e}=this;t&&a(this,re).getValue("flagsmith").hasFeature(Z.REFRESH_ID_ON_DISCONNECTION)&&(e=Yr()),a(this,Ys).updateURL(e),a(this,re).getValue("telemetry").resetPeerId(e),pt().setHeader("dyte-tracing-id",e),Ki.remapContext(e,a(this,re)),this.self.roomState="disconnected",this.self.emit("roomLeft",{state:"disconnected"})}),a(this,re).getValue("peerSessionStore").on(M.SOCKET_SERVICE_FAILED,()=>{this.self.roomState="failed",this.self.emit("roomLeft",{state:"failed"})}),a(this,ji).on(F.waitingRoomRequestAccepted,()=>{this.waitlistAcceptHandler()}),a(this,ji).on(Xc.updateUserPreset,t=>{t.updatePeersPresets.forEach(e=>{e.userIds===this.self.userId&&a(this,re).getValue("peerSessionStore").emit(M.UPDATE_PERMISSIONS,e.patch)})}),a(this,ji).on(F.waitingRoomRequestDenied,()=>{this.waitlistRejectedHandler()}),a(this,ji).on(F.kick,()=>{this.kickHandler({kickType:"kick"})}),a(this,ji).on(F.kickAll,()=>{this.kickHandler({kickType:"kickAll"})}),a(this,re).getValue("peerSessionStore").onAsync(M.JOIN_MEDIA_ROOM,this.joinMediaRoom.bind(this)),a(this,re).getValue("peerSessionStore").on(M.PRODUCER_SCORE_UPDATE,({score:t,kind:e,appData:i,scoreStats:r})=>{var n;const s=(n=i==null?void 0:i.screenShare)!=null?n:!1;this.self.emit("mediaScoreUpdate",{kind:e,isScreenshare:s,score:t,participantId:this.self.id,scoreStats:r})}),a(this,re).getValue("peerSessionStore").on(M.MUTE_SELF,()=>u(this,null,function*(){this.self.audioEnabled&&(yield this.self.disableAudio(),a(this,re).getValue("callstats").audioOff())})),a(this,re).getValue("peerSessionStore").on(M.MUTE_SELF_VIDEO,()=>u(this,null,function*(){this.self.videoEnabled&&(yield this.self.disableVideo(),a(this,re).getValue("callstats").videoOff())})),a(this,re).getValue("peerSessionStore").onAsync(M.LEAVE_MEDIA_ROOM,this.leaveMediaRoom.bind(this)),a(this,re).getValue("peerSessionStore").on(M.PIP_HANGUP,this.leaveRoom.bind(this))}joinRoom(t=!1){return u(this,null,function*(){try{const{peer:e}=yield a(this,ji).joinRoom(this.self);a(this,ji).socket.flush();const i=Ku(e.stageType);if(a(this,re).setValue("stageStatus",i,!1),e.waitlisted){this.waitlistedHandler();return}yield this.joinMediaRoom(t),a(this,re).notify("stageStatus")}catch(e){throw this.logger.error("Error in joinRoom",{error:e}),e}})}leaveRoom(t="left"){return u(this,null,function*(){var e,i;if(this.logger.info(`Leaving room with state: ${t}`),(e=a(this,re).getValue("roomSocketHandler"))==null||e.cleanup(),t==="rejected"){this.self.roomState=t,this.self.emit("roomLeft",{state:t});return}this.self.setIsPinned(!1),a(this,re).setValue("stageStatus","OFF_STAGE",!1),yield this.leaveMediaRoom(t),a(this,re).notify("stageStatus");try{(i=a(this,Ys))==null||i.disconnect()}catch(r){this.logger.error("SelfController::leaveRoom::socketDisconnect")}ky(a(this,re)),this.self.roomState=t,this.self.emit("roomLeft",{state:t}),this.logger.info(`roomLeft event emitted with state: ${t}`)})}joinMediaRoom(t=!1){return u(this,null,function*(){var e,i;const{peerId:r,viewType:n,meetingId:s,stageStatus:o,roomNodeOptions:c}=a(this,re).getAllValues(),{sfu:d}=c;try{if(n===Mt.Livestream){if(o!=="ON_STAGE"){this.self.roomState="joined",this.self.emit("roomJoined",{reconnected:t});return}Ty(a(this,re),d,{socket:a(this,Ys),peerId:r})}const{canProduceAudio:l,canProduceVideo:h,canProduceScreenshare:p}=this.self.permissions,{roomJoined:v}=(i=yield(e=a(this,Bt,Xt))==null?void 0:e.joinRoom(this.self.name,s,t,t,{canProduceAudio:l,canProduceVideo:h,canProduceScreenshare:p}))!=null?i:{};if(!v)return;o==="ON_STAGE"&&(yield this.shareMediaTracks()),this.self.roomState="joined",this.self.emit("roomJoined",{reconnected:t})}catch(l){throw this.logger.error("Error:SelfController.mediaRoomJoin",{error:l}),new I("Error: could not join media room","0002")}})}leaveMediaRoom(t){return u(this,null,function*(){const e=a(this,re).getValue("viewType");t!=="connected-meeting"&&(yield this.cleanupSelf()),!(t==="stageLeft"&&e===Mt.Webinar)&&a(this,Bt,Xt)&&(a(this,Bt,Xt).mediaJoined&&t!=="disconnected"&&(yield a(this,Bt,Xt).leaveRoom()),!(t==="stageLeft"&&e===Mt.Livestream)&&(a(this,Bt,Xt).mediaJoined=!1))})}cleanupSelf(){return u(this,null,function*(){yield this.self.disableAudio(),yield this.self.disableVideo(),yield this.self.disableScreenShare(),this.self.cleanUpTracks(),this.self.destructMediaHandler(),navigator.isReactNative||this.self.removeDocumentEventListeners()})}},Ys=new WeakMap,ji=new WeakMap,re=new WeakMap,Bt=new WeakSet,Xt=function(){return a(this,re).getValue("roomNodeClient")},Ey);let Hr=by;Fn([T.trace("SelfController.resetSelf")],Hr.prototype,"resetSelf",1),Fn([T.trace("SelfController.setupEvents")],Hr.prototype,"setupEvents",1),Fn([T.trace("SelfController.joinRoom")],Hr.prototype,"joinRoom",1),Fn([T.trace("SelfController.leaveRoom")],Hr.prototype,"leaveRoom",1),Fn([T.trace("SelfController.joinMediaRoom")],Hr.prototype,"joinMediaRoom",1),Fn([T.trace("SelfController.leaveMediaRoom")],Hr.prototype,"leaveMediaRoom",1),Fn([T.trace("SelfController.init")],Hr,"init",1);var ml;class TO{constructor(e){g(this,ml,void 0),f(this,ml,e)}on(e,i){let r;e===F.roomPeerCount?r=Sf.fromBinary.bind(Sf):r=Lf.fromBinary.bind(Lf),a(this,ml).on(e,({payload:n})=>{if(e===F.roomPeerCount&&!n)return;const s=r(n);i(s)})}}ml=new WeakMap;var gl,fl;class kO{constructor(e,i){g(this,gl,void 0),g(this,fl,void 0),f(this,gl,i),f(this,fl,e)}get logger(){return a(this,fl).getValue("logger")}on(e,i){let r,n;switch(e){case F.transcript:{r=ku.fromBinary.bind(ku),n=ku.create();break}default:{this.logger.debug("AISocketHandler switch case hit default, event not accounted for.");break}}a(this,gl).on(e,({payload:s})=>{let o=n;try{o=r(s)}catch(c){this.logger.error("chatSocketHandler::on::binary_decode_error",{error:c})}return i(o)})}}gl=new WeakMap,fl=new WeakMap;var EO=Object.defineProperty,bO=Object.getOwnPropertyDescriptor,mp=(t,e,i,r)=>{for(var n=r>1?void 0:r?bO(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&EO(e,i,n),n},Gr,Wo;class vl{constructor(e,i){g(this,Gr,void 0),g(this,Wo,void 0),f(this,Gr,i),f(this,Wo,e)}get logger(){return a(this,Wo).getValue("logger")}get telemetry(){return a(this,Wo).getValue("telemetry")}getPolls(){return a(this,Gr).sendMessagePromise(Xi.getPolls)}createPoll(e,i,r=!1,n=!1){const s={anonymous:r,hideVotes:n,question:e,options:i};return a(this,Gr).sendMessage(Xi.createPoll,bA.toBinary(s))}votePoll(e,i){const r={index:i,pollId:e};return a(this,Gr).sendMessage(Xi.votePoll,_A.toBinary(r))}on(e,i){let r,n;switch(e){case Xi.updatePoll:case Xi.createPoll:case Xi.votePoll:{r=Nu.fromBinary.bind(Nu),n=Nu.create();break}}a(this,Gr).on(e,({payload:s})=>{let o=n;try{o=r(s)}catch(c){this.logger.error("pollSocketHandler::on::binary_decode_error",{error:c})}return i(o)})}removeListeners(e){a(this,Gr).removeListeners(e)}}Gr=new WeakMap,Wo=new WeakMap,mp([T.trace("PollSocketHandler.getPolls")],vl.prototype,"getPolls",1),mp([T.trace("PollSocketHandler.createPoll")],vl.prototype,"createPoll",1),mp([T.trace("PollSocketHandler.votePoll")],vl.prototype,"votePoll",1);var wO=Object.defineProperty,_O=Object.getOwnPropertyDescriptor,IO=(t,e,i,r)=>{for(var n=r>1?void 0:r?_O(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&wO(e,i,n),n},di;class wy{constructor(e,i){m(this,"socket"),g(this,di,void 0),f(this,di,e),this.socket=i,this.handleSocketEvents(),a(this,di).setValue("roomSocketHandler",this)}get telemetry(){return a(this,di).getValue("telemetry")}get logger(){return a(this,di).getValue("logger")}cleanup(){var e;try{(e=this.socket)==null||e.disconnect()}catch(i){this.logger.error("roomSocketHandler::cleanup")}}joinRoom(e){return u(this,null,function*(){var i;this.socket.joinAttempted=!0;const r={capabilities:[],peer:{displayName:(i=e.name)!=null?i:"Participant",customParticipantId:e.customParticipantId,peerId:e.id,userId:e.userId,displayPictureUrl:e.picture,waitlisted:!1},roomUuid:""},n=this.socket.sendMessagePromise(F.joinRoom,lP.toBinary(r));try{const{peer:s}=Zn.fromBinary((yield n).payload);a(this,di).getValue("connectionHandler").socketJoined=!0,a(this,di).getValue("peerSessionStore").emit(M.SOCKET_SERVICE_ROOM_JOINED,{peer:s});const o=this.getRoomState(),c=this.getRoomPeersNonPaginated(),[{room:d},{peers:l}]=yield Promise.all([o,c]);return a(this,di).getValue("peerSessionStore").emit(M.ROOM_STATE,d),a(this,di).getValue("peerSessionStore").emit(M.SOCKET_PEERS,l),{peer:s}}catch(s){throw this.logger.error("RoomSocketHandler.joinRoom.failed",{error:s}),new I("Error: RoomSocketHandler.joinRoom failed.","0002",this.logger,s)}})}getAllAddedParticipants(){return u(this,null,function*(){try{return KP.fromBinary((yield this.socket.sendMessagePromise(F.getAllAddedParticipants)).payload).participants.map(e=>{var i=e,{id:r}=i,n=kc(i,["id"]);return H(V({},n),{userId:r})})}catch(e){return[]}})}getRoomPeers(e,i,r){return u(this,null,function*(){let n;try{const s={seachQuery:e,limit:i,offset:r},o=yield this.socket.sendMessagePromise(F.getRoomPeersInfo,eP.toBinary(s));n=wu.fromBinary(o.payload)}catch(s){this.logger.error("getRoomPeers::binary_decode_error",{error:s})}return n})}getRoomPeersNonPaginated(){return u(this,null,function*(){let e;try{const i=yield this.socket.sendMessagePromise(F.getRoomPeersInfo);e=wu.fromBinary(i.payload)}catch(i){this.logger.error("getRoomJoinedPeers::binary_decode_error",{error:i})}return e})}getStagePeers(){return u(this,null,function*(){let e;try{const i=yield this.socket.sendMessagePromise(F.getRoomPeersInfo);e=wu.fromBinary(i.payload)}catch(i){this.logger.error("getRoomJoinedPeers::binary_decode_error",{error:i})}return e})}getPeerInfo(e){return u(this,null,function*(){let i;try{const r=yield this.socket.sendMessagePromise(F.getPeerInfo,Ef.toBinary({peerId:e}));i=Zn.fromBinary(r.payload)}catch(r){this.logger.error("getPeerInfo::binary_decode_error",{error:r})}return i})}getRoomState(){return u(this,null,function*(){let e=kf.create();try{const i=yield this.socket.sendMessagePromise(F.getRoomInfo);e=kf.fromBinary(i.payload)}catch(i){this.logger.error("getRoomState::binary_decode_error",{error:i})}return e})}getRoomStageState(){return u(this,null,function*(){let e=Pf.create();try{const i=yield this.socket.sendMessagePromise(F.getRoomStageState);e=Pf.fromBinary(i.payload)}catch(i){this.logger.error("getRoomStageState::binary_decode_error",{error:i})}return e})}broadcastMessage(e,i){return u(this,null,function*(){const r={type:e,payload:new TextEncoder().encode(JSON.stringify(i)),timestamp:Date.now(),ids:[]};return this.socket.sendMessagePromise(F.broadcastMessage,ba.toBinary(r))})}broadcastToMeetings(e,i,r){return u(this,null,function*(){const n={type:e,payload:new TextEncoder().encode(JSON.stringify(r)),timestamp:Date.now(),ids:i,broadcastType:1};return this.socket.sendMessagePromise(F.broadcastToEntity,ba.toBinary(n))})}broadcastToPeers(e,i,r){return u(this,null,function*(){const n={type:e,payload:new TextEncoder().encode(JSON.stringify(r)),timestamp:Date.now(),ids:i,broadcastType:0};return this.socket.sendMessage(F.broadcastToEntity,ba.toBinary(n))})}leaveRoom(){return u(this,null,function*(){this.socket.joinAttempted=!1,this.socket.sendMessagePromise(F.leaveRoom,hP.toBinary({}))})}kick(e){return u(this,null,function*(){const i={peerIds:[e]};this.socket.sendMessage(F.kick,If.toBinary(i))})}kickAll(e=!1){return u(this,null,function*(){const i={propagateKickAcrossRooms:e};this.socket.sendMessage(F.kickAll,uf.toBinary(i))})}getWaitingRoomRequests(){this.socket.sendMessage(F.getWaitingRoomRequests)}acceptWaitingRoomRequest(e){const i={userIds:e};this.socket.sendMessage(F.acceptWaitingRoomRequests,eR.toBinary(i))}rejectWaitingRoomRequest(e){const i={userIds:e};this.socket.sendMessage(F.denyWaitingRoomRequests,iR.toBinary(i))}updatePermissions(e,i){return u(this,null,function*(){const r={updatePeersPresets:[]};return e.forEach(n=>{r.updatePeersPresets.push({userIds:n,patch:i})}),this.socket.sendMessagePromise(Xc.updateUserPreset,AR.toBinary(r))})}handleSocketEvents(){this.socket.on(F.broadcastMessage,({payload:e})=>{try{const i=ba.fromBinary(e);a(this,di).getValue("peerSessionStore").emit(M.ROOM_MESSAGE,{payload:JSON.parse(new TextDecoder().decode(i.payload)),type:i.type,timestamp:i.timestamp})}catch(i){this.logger.error("failed to decode broadcast message:",i)}}),this.socket.on(F.broadcastToEntity,({payload:e})=>{try{const i=ba.fromBinary(e);a(this,di).getValue("peerSessionStore").emit(M.MESSAGE,{payload:JSON.parse(new TextDecoder().decode(i.payload)),type:i.type,timestamp:i.timestamp})}catch(i){this.logger.error("failed to decode peer broadcast message:",i)}})}on(e,i){let r,n;switch(e){case F.joinRoom:case F.leaveRoom:case F.kick:case F.kickAll:{r=Zn.fromBinary.bind(Zn),n=Zn.create();break}case F.getWaitingRoomRequests:{r=(s,o)=>s?Cf.fromBinary(s,o):{requests:[]},n=Cf.create();break}case F.recordingPaused:case F.recordingStarted:case F.recordingStopped:{r=Bf.fromBinary.bind(Bf);break}case Xc.updateUserPreset:{r=Mf.fromBinary.bind(Mf);break}case fi.peerJoinedBroadcast:case ii.peerJoinedBroadcast:{r=mf.fromBinary.bind(mf);break}case fi.selfJoinComplete:case ii.selfJoinComplete:{r=Su.fromBinary.bind(Su);break}case fi.globalPeerPinBroadcast:case ii.globalPeerPinBroadcast:{r=vf.fromBinary.bind(vf);break}case fi.selectedPeer:case ii.selectedPeer:{r=yu.fromBinary.bind(yu);break}case fi.selectedPeerDiff:case ii.selectedPeerDiff:{r=pf.fromBinary.bind(pf);break}case fi.leaveRoom:case ii.leaveRoom:{r=Tu.fromBinary.bind(Tu);break}}this.socket.on(e,({payload:s})=>{let o=n;if(!r)return i(void 0);try{o=r(s)}catch(c){this.logger.error("roomSocketHandler::on::binary_decode_error",{error:c})}return i(o)})}getUserPermissions(e){return u(this,null,function*(){const i={userIds:[e]};try{const r=yield this.socket.sendMessagePromise(Xc.getUserPresets,wR.toBinary(i)),n=PR.fromBinary(r.payload).peerPresets[0],s=new TextDecoder().decode(n.preset),o=JSON.parse(s).permissions;return{chat:o.chat,polls:o.polls,plugins:o.plugins}}catch(r){throw this.logger.error("Error in getting user preset",{error:r}),r}})}}di=new WeakMap,IO([T.trace("RoomSocketHandler.joinRoom")],wy.prototype,"joinRoom",1);var Zt;class CO{constructor(e){g(this,Zt,void 0),f(this,Zt,e)}getStageRequests(){return u(this,null,function*(){const{payload:e}=yield a(this,Zt).sendMessagePromise(F.getStageRequests);return e?Ou.fromBinary(e):{stageRequests:[]}})}requestAccess(){a(this,Zt).sendMessage(F.requestStageAccess)}cancelRequestAccess(){a(this,Zt).sendMessage(F.cancelStageRequest)}grantAccess(e){return u(this,null,function*(){const i={userIds:e};a(this,Zt).sendMessage(F.grantStageAccess,pA.toBinary(i))})}denyAccess(e){return u(this,null,function*(){const i={userIds:e};a(this,Zt).sendMessage(F.denyStageAccess,gA.toBinary(i))})}joinStage(){return a(this,Zt).sendMessagePromise(F.joinStage,void 0,void 0,F.peerStageStatusUpdate)}leaveStage(e){const i={userIds:[e]};return a(this,Zt).sendMessagePromise(F.leaveStage,Uf.toBinary(i),void 0,F.peerStageStatusUpdate)}kick(e){const i={userIds:e};return a(this,Zt).sendMessagePromise(F.leaveStage,Uf.toBinary(i))}on(e,i){let r;switch(e){case F.grantStageAccess:case F.denyStageAccess:{r=void 0;break}case F.getStagePeers:{r=xf.fromBinary.bind(xf);break}case F.getStageRequests:case F.requestStageAccess:case F.cancelStageRequest:{r=Ou.fromBinary.bind(Ou);break}case F.peerStageStatusUpdate:{r=yf.fromBinary.bind(yf);break}}a(this,Zt).on(e,({payload:n,id:s})=>{if(!n||!r)return i(void 0,s);const o=r(n);return i(o,s)})}getPeerInfo(e){return u(this,null,function*(){const i=yield a(this,Zt).sendMessagePromise(F.getPeerInfo,Ef.toBinary({peerId:e}));return Zn.fromBinary(i.payload)})}}Zt=new WeakMap;var it,yl;class PO{constructor(e,i){g(this,it,void 0),g(this,yl,void 0),f(this,it,i),f(this,yl,e)}get logger(){return a(this,yl).getValue("logger")}addPlugin(e,i){a(this,it).sendMessage($.addPlugin,MM.toBinary({pluginId:e,staggered:i}))}removePlugin(e){a(this,it).sendMessage($.removePlugin,DM.toBinary({pluginId:e,staggered:!1}))}getActivePlugins(){return u(this,null,function*(){const{payload:e}=yield a(this,it).sendMessagePromise($.getPlugins);return e?tA.fromBinary(e):{plugins:[]}})}customPluginEventToRoom(e,i,r){const n={pluginId:e,pluginData:new TextEncoder().encode(JSON.stringify(i))};a(this,it).sendMessage($.customPluginEventToRoom,jM.toBinary(n),r)}customPluginEventToPeers(e,i,r,n){const s={pluginId:e,peerIds:i,pluginData:new TextEncoder().encode(JSON.stringify(r))};a(this,it).sendMessage($.customPluginEventToPeers,GM.toBinary(s),n)}enablePluginForRoom(e,i){a(this,it).sendMessage($.enablePluginForRoom,NM.toBinary({pluginId:e}),i)}enablePluginForPeers(e,i,r){a(this,it).sendMessage($.enablePluginForPeers,UM.toBinary({pluginId:e,peerIds:i}),r)}disablePluginForRoom(e,i){a(this,it).sendMessage($.disablePluginForRoom,LM.toBinary({pluginId:e}),i)}disablePluginForPeers(e,i,r){a(this,it).sendMessage($.disablePluginForPeers,BM.toBinary({pluginId:e,peerIds:i}),r)}storeInsertKeys(e,i,r,n){const s={pluginId:e,storeName:i,insertKeys:r.map(o=>({storeKey:o.key,payload:new TextEncoder().encode(JSON.stringify(o.payload))}))};a(this,it).sendMessage($.storeInsertKeys,Df.toBinary(s),n)}storeGetKeys(e,i,r,n){const s={pluginId:e,storeName:i,getKeys:r.map(o=>({storeKey:o.key}))};a(this,it).sendMessage($.storeGetKeys,KM.toBinary(s),n)}storeDeleteKeys(e,i,r,n){const s={pluginId:e,storeName:i,deleteKeys:r.map(o=>({storeKey:o.key}))};a(this,it).sendMessage($.storeDeleteKeys,YM.toBinary(s),n)}storeDelete(e,i,r){a(this,it).sendMessage($.storeDelete,XM.toBinary({pluginId:e,storeName:i}),r)}getPluginDataOld(e,i){this.logger.info("getPluginDataOld",{plugin:{id:e,storeName:i}})}storePluginDataOld(e,i,r){const n={pluginId:e,storeName:i,insertKeys:[{storeKey:r.key,payload:new TextEncoder().encode(JSON.stringify(r))}]};a(this,it).sendMessage($.storeInsertKeys,Df.toBinary(n))}on(e,i){let r;switch(e){case $.addPlugin:case $.enablePluginForPeers:case $.enablePluginForRoom:{r=Du.fromBinary.bind(Du);break}case $.removePlugin:case $.disablePluginForPeers:case $.disablePluginForRoom:{r=Of.fromBinary.bind(Of);break}case $.customPluginEventToPeers:case $.customPluginEventToRoom:{r=Vf.fromBinary.bind(Vf);break}case $.storeInsertKeys:case $.storeGetKeys:case $.storeDeleteKeys:case $.storeDelete:{r=Nf.fromBinary.bind(Nf);break}}a(this,it).on(e,({payload:n,id:s})=>{const o=r(n);return i(o,s)})}}it=new WeakMap,yl=new WeakMap;var RO=Object.defineProperty,MO=(t,e,i)=>e in t?RO(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,AO=(t,e,i)=>(MO(t,typeof e!="symbol"?e+"":e,i),i),gp=(t,e,i)=>{if(!e.has(t))throw TypeError("Cannot "+i)},N=(t,e,i)=>(gp(t,e,"read from private field"),i?i.call(t):e.get(t)),_e=(t,e,i)=>{if(e.has(t))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(t):e.set(t,i)},ce=(t,e,i,r)=>(gp(t,e,"write to private field"),r?r.call(t,i):e.set(t,i),i),Pe=(t,e,i)=>(gp(t,e,"access private method"),i),Sl={},DO={get exports(){return Sl},set exports(t){Sl=t}},Qs=typeof Reflect=="object"?Reflect:null,_y=Qs&&typeof Qs.apply=="function"?Qs.apply:function(t,e,i){return Function.prototype.apply.call(t,e,i)},Tl;Qs&&typeof Qs.ownKeys=="function"?Tl=Qs.ownKeys:Object.getOwnPropertySymbols?Tl=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:Tl=function(t){return Object.getOwnPropertyNames(t)};function OO(t){console&&console.warn&&console.warn(t)}var Iy=Number.isNaN||function(t){return t!==t};function me(){me.init.call(this)}DO.exports=me,Sl.once=xO,me.EventEmitter=me,me.prototype._events=void 0,me.prototype._eventsCount=0,me.prototype._maxListeners=void 0;var Cy=10;function kl(t){if(typeof t!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t)}Object.defineProperty(me,"defaultMaxListeners",{enumerable:!0,get:function(){return Cy},set:function(t){if(typeof t!="number"||t<0||Iy(t))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+t+".");Cy=t}}),me.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},me.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||Iy(t))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+t+".");return this._maxListeners=t,this};function Py(t){return t._maxListeners===void 0?me.defaultMaxListeners:t._maxListeners}me.prototype.getMaxListeners=function(){return Py(this)},me.prototype.emit=function(t){for(var e=[],i=1;i<arguments.length;i++)e.push(arguments[i]);var r=t==="error",n=this._events;if(n!==void 0)r=r&&n.error===void 0;else if(!r)return!1;if(r){var s;if(e.length>0&&(s=e[0]),s instanceof Error)throw s;var o=new Error("Unhandled error."+(s?" ("+s.message+")":""));throw o.context=s,o}var c=n[t];if(c===void 0)return!1;if(typeof c=="function")_y(c,this,e);else for(var d=c.length,l=Oy(c,d),i=0;i<d;++i)_y(l[i],this,e);return!0};function Ry(t,e,i,r){var n,s,o;if(kl(i),s=t._events,s===void 0?(s=t._events=Object.create(null),t._eventsCount=0):(s.newListener!==void 0&&(t.emit("newListener",e,i.listener?i.listener:i),s=t._events),o=s[e]),o===void 0)o=s[e]=i,++t._eventsCount;else if(typeof o=="function"?o=s[e]=r?[i,o]:[o,i]:r?o.unshift(i):o.push(i),n=Py(t),n>0&&o.length>n&&!o.warned){o.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=t,c.type=e,c.count=o.length,OO(c)}return t}me.prototype.addListener=function(t,e){return Ry(this,t,e,!1)},me.prototype.on=me.prototype.addListener,me.prototype.prependListener=function(t,e){return Ry(this,t,e,!0)};function NO(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function My(t,e,i){var r={fired:!1,wrapFn:void 0,target:t,type:e,listener:i},n=NO.bind(r);return n.listener=i,r.wrapFn=n,n}me.prototype.once=function(t,e){return kl(e),this.on(t,My(this,t,e)),this},me.prototype.prependOnceListener=function(t,e){return kl(e),this.prependListener(t,My(this,t,e)),this},me.prototype.removeListener=function(t,e){var i,r,n,s,o;if(kl(e),r=this._events,r===void 0)return this;if(i=r[t],i===void 0)return this;if(i===e||i.listener===e)--this._eventsCount===0?this._events=Object.create(null):(delete r[t],r.removeListener&&this.emit("removeListener",t,i.listener||e));else if(typeof i!="function"){for(n=-1,s=i.length-1;s>=0;s--)if(i[s]===e||i[s].listener===e){o=i[s].listener,n=s;break}if(n<0)return this;n===0?i.shift():VO(i,n),i.length===1&&(r[t]=i[0]),r.removeListener!==void 0&&this.emit("removeListener",t,o||e)}return this},me.prototype.off=me.prototype.removeListener,me.prototype.removeAllListeners=function(t){var e,i,r;if(i=this._events,i===void 0)return this;if(i.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):i[t]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete i[t]),this;if(arguments.length===0){var n=Object.keys(i),s;for(r=0;r<n.length;++r)s=n[r],s!=="removeListener"&&this.removeAllListeners(s);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(e=i[t],typeof e=="function")this.removeListener(t,e);else if(e!==void 0)for(r=e.length-1;r>=0;r--)this.removeListener(t,e[r]);return this};function Ay(t,e,i){var r=t._events;if(r===void 0)return[];var n=r[e];return n===void 0?[]:typeof n=="function"?i?[n.listener||n]:[n]:i?LO(n):Oy(n,n.length)}me.prototype.listeners=function(t){return Ay(this,t,!0)},me.prototype.rawListeners=function(t){return Ay(this,t,!1)},me.listenerCount=function(t,e){return typeof t.listenerCount=="function"?t.listenerCount(e):Dy.call(t,e)},me.prototype.listenerCount=Dy;function Dy(t){var e=this._events;if(e!==void 0){var i=e[t];if(typeof i=="function")return 1;if(i!==void 0)return i.length}return 0}me.prototype.eventNames=function(){return this._eventsCount>0?Tl(this._events):[]};function Oy(t,e){for(var i=new Array(e),r=0;r<e;++r)i[r]=t[r];return i}function VO(t,e){for(;e+1<t.length;e++)t[e]=t[e+1];t.pop()}function LO(t){for(var e=new Array(t.length),i=0;i<e.length;++i)e[i]=t[i].listener||t[i];return e}function xO(t,e){return new Promise(function(i,r){function n(o){t.removeListener(e,s),r(o)}function s(){typeof t.removeListener=="function"&&t.removeListener("error",n),i([].slice.call(arguments))}Ny(t,e,s,{once:!0}),e!=="error"&&UO(t,n,{once:!0})})}function UO(t,e,i){typeof t.on=="function"&&Ny(t,"error",e,i)}function Ny(t,e,i,r){if(typeof t.on=="function")r.once?t.once(e,i):t.on(e,i);else if(typeof t.addEventListener=="function")t.addEventListener(e,function n(s){r.once&&t.removeEventListener(e,n),i(s)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof t)}class FO extends y{constructor(){super("message.v1.SocketMessage",[{no:1,name:"event",kind:"scalar",T:13},{no:2,name:"id",kind:"scalar",opt:!0,T:9},{no:3,name:"payload",kind:"scalar",opt:!0,T:12},{no:4,name:"metadata",kind:"scalar",opt:!0,T:12}])}}const Vy=new FO;class Ly{static encode(e){return Vy.toBinary(e)}static decode(e){return Vy.fromBinary(new Uint8Array(e))}}function BO(t,e){return Math.floor(Math.random()*(e-t+1)+t)}var qr;class WO{constructor(e={}){AO(this,"opts"),_e(this,qr,void 0),this.opts={initialTimeout:e.initialTimeout||1e3,maxTimeout:e.maxTimeout||1e4,factor:e.factor||2},ce(this,qr,0)}wait(){return u(this,null,function*(){ce(this,qr,N(this,qr)+1);const e=BO(0,Math.min(this.opts.maxTimeout,this.opts.initialTimeout*QS(2,N(this,qr))));yield new Promise(i=>{setTimeout(i,e)})})}getAttempts(){return N(this,qr)}reset(){ce(this,qr,0)}}qr=new WeakMap;const $r={debug:0,info:1,warn:2,error:3};var Bn,Wn;class jO{constructor(e){_e(this,Bn,void 0),_e(this,Wn,void 0),ce(this,Bn,console),ce(this,Wn,e)}debug(...e){$r[N(this,Wn)]>$r.debug||N(this,Bn).debug("[Sockrates]:",...e)}info(...e){$r[N(this,Wn)]>$r.info||N(this,Bn).info("[Sockrates]:",...e)}warn(...e){$r[N(this,Wn)]>$r.warn||N(this,Bn).warn("[Sockrates]:",...e)}error(...e){$r[N(this,Wn)]>$r.error||N(this,Bn).error("[Sockrates]:",...e)}}Bn=new WeakMap,Wn=new WeakMap;var xy=(t=>(t[t.CONNECTING=0]="CONNECTING",t[t.OPEN=1]="OPEN",t[t.CLOSING=2]="CLOSING",t[t.CLOSED=3]="CLOSED",t))(xy||{});const HO="2",GO="3";var Ne,Xs,Re,We,Jr,rt,ur,Kr,Pi,Zs,hr,fp,Uy,jo,El,vp,Fy,yp,By,bl,Sp,Tp,Wy,Ho,wl,Go,_l,Il,kp,ea,qo,$o,Cl;class qO{constructor(e,i){var r;_e(this,fp),_e(this,jo),_e(this,vp),_e(this,yp),_e(this,bl),_e(this,Tp),_e(this,Ho),_e(this,Go),_e(this,Il),_e(this,ea),_e(this,$o),_e(this,Ne,void 0),_e(this,Xs,void 0),_e(this,Re,void 0),_e(this,We,void 0),_e(this,Jr,void 0),_e(this,rt,void 0),_e(this,ur,void 0),_e(this,Kr,void 0),_e(this,Pi,void 0),_e(this,Zs,void 0),_e(this,hr,void 0);var n,s,o,c,d,l,h,p,v;ce(this,Xs,e),ce(this,Jr,[]),ce(this,rt,new Sl),ce(this,ur,!0),ce(this,Pi,!1),ce(this,Re,i!=null?i:{}),(n=N(this,Re)).autoReconnect!=null||(n.autoReconnect=!0),(s=N(this,Re)).retryConnectionInterval!=null||(s.retryConnectionInterval=1e3),(o=N(this,Re)).pingTimeout!=null||(o.pingTimeout=3e4),(c=N(this,Re)).connectionTimeout!=null||(c.connectionTimeout=5e3),(d=N(this,Re)).debug!=null||(d.debug=!0),(l=N(this,Re)).maxReconnectionAttempts!=null||(l.maxReconnectionAttempts=10),(h=N(this,Re)).disconnectOnPingTimeout!=null||(h.disconnectOnPingTimeout=!0),(p=N(this,Re)).queueOnDisconnect!=null||(p.queueOnDisconnect=!1),(v=N(this,Re)).flushOnReconnect!=null||(v.flushOnReconnect=!1),ce(this,Kr,{code:void 0,reason:void 0}),ce(this,We,(r=N(this,Re).logger)!=null?r:new jO(N(this,Re).debug?"debug":"info")),ce(this,hr,new WO)}get readyState(){var e;return(e=N(this,Ne))==null?void 0:e.readyState}get url(){return N(this,Xs)}updateURL(e){ce(this,Xs,e),Pe(this,Tp,Wy).call(this)}get config(){return N(this,Re)}get sendQueue(){return N(this,Jr)}flush(){if(!N(this,Re).queueOnDisconnect)return!1;const e=[];return N(this,Jr).forEach(i=>{this.send(i.event,i.id,i.payload,i.metadata)||e.push(i)}),ce(this,Jr,e),N(this,Jr)}connect(e=!1){return u(this,null,function*(){if(!e&&[0,1].includes(this.readyState)){N(this,We).debug("Websocket was already connecting or connected.");return}if(N(this,ur)!==!1)return new Promise((i,r)=>{Pe(this,ea,qo).call(this),Pe(this,$o,Cl).call(this);try{ce(this,Ne,new WebSocket(Pe(this,fp,Uy).call(this,N(this,Xs)))),N(this,Ne).binaryType="arraybuffer",N(this,We).debug("Connecting");const n=setTimeout(()=>{N(this,We).debug("Connection timeout. Closing socket"),ce(this,ur,!0),Pe(this,$o,Cl).call(this),N(this,Ne).close(3001,"Connection Timeout"),N(this,Re).autoReconnect&&!N(this,Pi)&&(N(this,rt).emit("reconnecting"),Pe(this,Ho,wl).call(this)),r(new Error("Connection timed out!"))},N(this,Re).connectionTimeout);N(this,Ne).onopen=()=>{N(this,We).debug(`Ready State: ${xy[N(this,Ne).readyState]}`),n&&clearTimeout(n),Pe(this,Il,kp).call(this),ce(this,Kr,{code:void 0,reason:void 0}),N(this,rt).emit("connected"),N(this,Re).flushOnReconnect&&this.flush(),i()},N(this,Ne).onclose=s=>{try{n&&clearTimeout(n);const{code:o,reason:c}=s;r(c),N(this,We).debug("Socket closed. Close event:",{event:s}),N(this,We).debug(`Connection closed code: ${o}`),N(this,We).debug(`Connection closed reason: ${c}`),N(this,Pi)||Pe(this,bl,Sp).call(this,o,c)}catch(o){Pe(this,jo,El).call(this,o)}},N(this,Ne).onerror=s=>{Pe(this,jo,El).call(this,s)},N(this,Ne).onmessage=s=>Pe(this,vp,Fy).call(this,s)}catch(n){Pe(this,jo,El).call(this,n,r)}})})}send(e,i,r,n){const s={event:e,id:i,payload:r,metadata:n};if(N(this,Re).queueOnDisconnect&&(!N(this,Ne)||N(this,Ne).readyState!==1))return N(this,We).debug("Queuing message since socket is not connected!",s),N(this,Jr).push(s),!1;const o=Ly.encode(s);return Pe(this,Go,_l).call(this,o)}emit(e,i,r,n){return this.send(e,i,r,n)}sendRaw(e){return Pe(this,Go,_l).call(this,e)}receive(e,i){return N(this,rt).on(e.toString(),i)}on(e,i){if(typeof e=="string"&&(e==="connected"||e==="disconnected"||e==="errored"||e==="reconnected"||e==="reconnecting"||e==="reconnectAttempt"||e==="reconnectFailure"||e==="failed")){N(this,rt).on(e,i);return}this.receive(e,i)}removeAllListeners(){N(this,rt).removeAllListeners()}removeReceiver(e,i){this.removeListener(e,i)}removeListener(e,i){N(this,rt).removeListener(e.toString(),i)}removeReceivers(e){this.removeListeners(e)}removeListeners(e){N(this,rt).listeners(e.toString()).map(i=>this.removeListener(e,i))}disconnect(){ce(this,ur,!1),Pe(this,ea,qo).call(this),this.removeAllListeners(),ce(this,Kr,{code:1e3,reason:"Sockrates disconnect method called"}),N(this,Ne).close(1e3,"Sockrates disconnect method called.")}}Ne=new WeakMap,Xs=new WeakMap,Re=new WeakMap,We=new WeakMap,Jr=new WeakMap,rt=new WeakMap,ur=new WeakMap,Kr=new WeakMap,Pi=new WeakMap,Zs=new WeakMap,hr=new WeakMap,fp=new WeakSet,Uy=function(t){if(t.startsWith("ws://")||t.startsWith("wss://"))return t;if(t.startsWith("https://"))return`wss://${t.substring(8)}`;if(t.startsWith("http://"))return`ws://${t.substring(7)}`;throw new Error("Invalid URL. URL must start with http(s):// or ws(s)://.")},jo=new WeakSet,El=function(t,e){N(this,We).error("Error:",{error:t}),N(this,rt).emit("errored",{error:t}),e==null||e(t)},vp=new WeakSet,Fy=function(t){if(Pe(this,Il,kp).call(this),t.data===HO){N(this,We).debug("Received ping from server"),Pe(this,Go,_l).call(this,GO);return}const e=Ly.decode(t.data),{id:i,payload:r}=e;N(this,We).debug("Received message",{event:e.event,messageID:i}),N(this,rt).emit(e.event.toString(),{id:i,payload:r})},yp=new WeakSet,By=function(){return N(this,Ne).readyState===1},bl=new WeakSet,Sp=function(t,e){ce(this,Kr,{reason:e,code:t}),N(this,rt).emit("disconnected",{code:t,reason:e})},Tp=new WeakSet,Wy=function(){const{reason:t,code:e}=N(this,Kr);e&&e!==1e3&&N(this,ur)&&N(this,Re).autoReconnect&&!N(this,Pi)&&(N(this,We).debug(`Triggering reconnection due to ${t}.`),N(this,rt).emit("reconnecting"),Pe(this,Ho,wl).call(this))},Ho=new WeakSet,wl=function(t=!0){return u(this,null,function*(){if(t&&N(this,Pi)){N(this,We).debug("Reconnect called when already in a reconnect loop. Ignoring.");return}if(N(this,Pi)||N(this,hr).reset(),N(this,Re).maxReconnectionAttempts!==null&&N(this,hr).getAttempts()>=N(this,Re).maxReconnectionAttempts){N(this,rt).emit("failed"),ce(this,Pi,!1);return}ce(this,Pi,!0),Pe(this,$o,Cl).call(this),Pe(this,ea,qo).call(this);try{if(yield N(this,hr).wait(),N(this,ur)===!1)return;if(N(this,We).debug(`Reconnection attempt ${N(this,hr).getAttempts()}`),N(this,rt).emit("reconnectAttempt",{attempt:N(this,hr).getAttempts()}),yield this.connect(),!Pe(this,yp,By).call(this))throw Error("Reconnect Failed");ce(this,Pi,!1),ce(this,Kr,{code:void 0,reason:void 0}),N(this,rt).emit("reconnected")}catch(e){N(this,We).debug("Failed to reconnect."),N(this,rt).emit("reconnectFailure",{attempt:N(this,hr).getAttempts()}),Pe(this,Ho,wl).call(this,!1)}})},Go=new WeakSet,_l=function(t){try{return N(this,Ne).send(t),!0}catch(e){return N(this,We).error(e.message),!1}},Il=new WeakSet,kp=function(){this.config.disconnectOnPingTimeout&&(N(this,We).debug("Resetting ping timeout"),Pe(this,ea,qo).call(this),ce(this,Zs,setTimeout(()=>{var t;N(this,We).debug("Disconnecting the socket due to ping timeout"),ce(this,ur,!0);const e=3002,i="Ping timeout";(t=N(this,Ne))==null||t.close(e,i),Pe(this,bl,Sp).call(this,e,i)},N(this,Re).pingTimeout)))},ea=new WeakSet,qo=function(){N(this,Zs)&&(clearTimeout(N(this,Zs)),ce(this,Zs,void 0))},$o=new WeakSet,Cl=function(){N(this,Ne)&&(N(this,Ne).onopen=void 0,N(this,Ne).onerror=void 0,N(this,Ne).onmessage=void 0,N(this,Ne).onclose=void 0)};var $O=Object.defineProperty,JO=Object.getOwnPropertyDescriptor,Pl=(t,e,i,r)=>{for(var n=r>1?void 0:r?JO(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&$O(e,i,n),n};const jy=65535,KO=3e3;var jn,Ve,Le,je,Ri,vt,Rl,Ep,Ml,bp,Hy;const Gy=(Hy=class{constructor(t,{peerId:e,meetingId:i,authToken:r,capabilities:n}){g(this,Le),g(this,Rl),g(this,Ml),g(this,jn,void 0),g(this,Ve,void 0),m(this,"roomName"),m(this,"authToken"),m(this,"capabilities"),g(this,Ri,void 0),g(this,vt,void 0);var s;if(!e||!i||!r)throw new I("peerId, meetingId, or authToken can not be empty","0404");f(this,Ri,void 0),f(this,vt,t),this.capabilities=n,this.roomName=i,this.authToken=r,f(this,jn,U(this,Rl,Ep).call(this,e)),f(this,Ve,new qO(a(this,jn),{autoReconnect:!0,disconnectOnPingTimeout:(s=n.includes("PING"))!=null?s:!1,queueOnDisconnect:!0,flushOnReconnect:!1,logger:this.logger})),this.handleSocketConnectionEvents()}get joinAttempted(){return a(this,Le,je).socketJoinAttempted}set joinAttempted(t){a(this,Le,je).socketJoinAttempted=t}get telemetry(){return a(this,vt).getValue("telemetry")}get logger(){return a(this,vt).getValue("logger")}get peerId(){return a(this,vt).getValue("peerId")}updateURL(t){t!==this.peerId&&(f(this,jn,U(this,Rl,Ep).call(this,t)),this.logger.debug("SocketService:: Connection URL updated.")),a(this,Ve).updateURL(a(this,jn))}static getSocketEdgeDomain(t){return an({servicePrefix:"socket-edge",baseURI:t})}get url(){return a(this,jn)}connect(){return u(this,null,function*(){a(this,Le,je).socketJoinAttempted=!0,yield a(this,Ve).connect(),a(this,Le,je).socketJoinAttempted=!0,a(this,Le,je).socketState={state:"connected",reconnected:!1,reconnectionAttempt:void 0}})}disconnect(){a(this,Le,je).socketJoinAttempted=!1,a(this,Ve).disconnect(),a(this,Le,je).socketJoinAttempted=!0,a(this,Le,je).socketState={state:"disconnected",reconnected:!1,reconnectionAttempt:void 0}}get isConnected(){try{return a(this,Ve).readyState===1}catch(t){return!1}}sendMessage(t,e,i){const r={};return a(this,vt).getValue("telemetry").injectContext(r),a(this,Ve).send(t,i!=null?i:U(this,Ml,bp).call(this),e,new TextEncoder().encode(JSON.stringify(r)))}sendMessagePromise(t,e,i,r){const n=parseInt({}.SOCKET_SERVICE_MESSAGE_REQUEST_TIMEOUT,10)||2e4;return this.sendMessagePromiseWithTimeout({event:t,timeout:n,protobuf:e,messageId:i,resp:r})}sendMessagePromiseWithTimeout({event:t,timeout:e,protobuf:i,messageId:r,resp:n}){const s=n!=null?n:t;return new Promise((o,c)=>{const d=(k,E)=>{a(this,Ve).removeListener(s,k),a(this,Ve).removeListener(jy,E),a(this,Ve).removeListener(ii.errorResponse,E),a(this,Ve).removeListener(fi.errorResponse,E)},l=r!=null?r:U(this,Ml,bp).call(this),h={};a(this,vt).getValue("telemetry").injectContext(h);const p=({id:k,payload:E})=>{if(l===k){let C;try{const b=$I.fromBinary(E);C=new Error(b.errorMessage)}catch(b){C=new Error("failed to parse error message",{cause:b});try{const R=JC.fromBinary(E);C=new Error(R.message)}catch(R){C=new Error("failed to parse error message",{cause:R})}}c(C),d(v,p)}},v=({id:k,payload:E})=>{l===k&&(o({id:k,payload:E}),d(v,p))};a(this,Ve).on(s,v),a(this,Ve).on(jy,p),a(this,Ve).on(ii.errorResponse,p),a(this,Ve).on(fi.errorResponse,p),setTimeout(()=>{d(v,p),c(new Error(`request timeout for callback eventId:${t}`))},e),a(this,Ve).send(t,l,i,new TextEncoder().encode(JSON.stringify(h)))})}on(t,e){a(this,Ve).on(t,e)}onStateEvent(t,e){a(this,Ve).on(t,e)}removeListener(t,e){a(this,Ve).removeListener(t,e)}removeListeners(t){a(this,Ve).removeListeners(t)}flush(){return a(this,Ve).flush()}handleSocketConnectionEvents(){this.onStateEvent("connected",()=>u(this,null,function*(){this.logger.info("SocketService::Connected to socket-edge"),a(this,Ri)&&(clearTimeout(a(this,Ri)),f(this,Ri,void 0)),a(this,Le,je).updateSocketConnectionState("connected")})),this.onStateEvent("disconnected",({code:t,reason:e})=>{var i;this.logger.info("SocketService::Disconnected from socket-edge",{error:{code:t,reason:e},country:T.location.country});const{recv:r,send:n}=(i=a(this,Le,je).mediaState)!=null?i:{};r!=null&&r.state&&(r==null?void 0:r.state)!==Ps.CONNECTED||n!=null&&n.state&&(n==null?void 0:n.state)!==Ps.CONNECTED?a(this,vt).getValue("peerSessionStore").emit(M.SOCKET_SERVICE_DISCONNECTED,{joinAttempted:a(this,Le,je).joinAttempted}):f(this,Ri,setTimeout(()=>{a(this,vt).getValue("peerSessionStore").emit(M.SOCKET_SERVICE_DISCONNECTED,{joinAttempted:a(this,Le,je).joinAttempted}),f(this,Ri,void 0)},KO)),a(this,Le,je).updateSocketConnectionState("disconnected")}),this.onStateEvent("reconnecting",()=>u(this,null,function*(){this.logger.info("SocketService::Reconnecting to socket-edge",{country:T.location.country}),a(this,Le,je).updateSocketConnectionState("reconnecting")})),this.onStateEvent("reconnectAttempt",t=>u(this,[t],function*({attempt:e}){this.logger.info("SocketService::Attempting to reconnect to socket-edge",{socket:{retryAttempt:e}}),a(this,Le,je).updateSocketConnectionState("reconnectAttempt",e)})),this.onStateEvent("reconnectFailure",({attempt:t})=>{this.logger.info("SocketService::Reconnect attempt to socket-edge failed",{socket:{retryAttempt:t}}),a(this,Le,je).updateSocketConnectionState("reconnectFailure",t)}),this.onStateEvent("reconnected",()=>u(this,null,function*(){this.logger.info("SocketService::Reconnected to socket-edge",{connectionState:{joinAttempted:a(this,Le,je).mediaJoinAttempted}}),a(this,Ri)&&(clearTimeout(a(this,Ri)),f(this,Ri,void 0)),a(this,vt).getValue("peerSessionStore").emit(M.SOCKET_SERVICE_RECONNECTED,{wasJoinAttempted:a(this,Le,je).mediaJoinAttempted}),a(this,Le,je).updateSocketConnectionState("reconnected")})),this.onStateEvent("failed",()=>u(this,null,function*(){this.logger.info("SocketService::Failed to connect to socket-edge",{country:T.location.country}),a(this,vt).getValue("peerSessionStore").emit(M.SOCKET_SERVICE_FAILED),a(this,Le,je).updateSocketConnectionState("failed")}))}},jn=new WeakMap,Ve=new WeakMap,Le=new WeakSet,je=function(){return a(this,vt).getValue("connectionHandler")},Ri=new WeakMap,vt=new WeakMap,Rl=new WeakSet,Ep=function(t){let e=Gy.getSocketEdgeDomain(a(this,vt).getValue("baseURI"));typeof Yn(a(this,vt),"socket_server_base")=="string"&&(e=Yn(a(this,vt),"socket_server_base"));const i=`wss://${e}`,r=new URL(`${i}/ws`),n=this.peerId,s=H(V({roomID:this.roomName,peerID:t,authToken:this.authToken,useMediaV2:!0},n!==t&&{oldPeerID:n}),{ping:this.capabilities.includes("PING"),capabilities:this.capabilities.map(o=>Jc[o]).join(" "),joinWithDetails:!0,useCfWorker:!0,useStartSession:!0});return Object.entries(s).forEach(([o,c])=>{r.searchParams.append(o,c.toString())}),r.href},Ml=new WeakSet,bp=function(){return`${this.peerId}-${(Math.random()+1).toString(36).substring(7)}`},Hy);let Jo=Gy;Pl([T.trace("SocketService.connect")],Jo.prototype,"connect",1),Pl([T.trace("SocketService.disconnect")],Jo.prototype,"disconnect",1),Pl([T.trace("SocketService.sendMessagePromise")],Jo.prototype,"sendMessagePromise",1),Pl([T.trace("SocketService.sendMessagePromiseWithTimeout")],Jo.prototype,"sendMessagePromiseWithTimeout",1);class zO{constructor(e){m(this,"socketService"),this.socketService=e}handleConnectedRoomsDumpRaw({payload:e}){var i;const r=TP.fromBinary(e),n=r.meetings.map(s=>{var o;return{id:s.id,title:s.title,participants:(o=s.participants)!=null?o:[]}});return{parentMeeting:{id:r.parentMeeting.id,title:r.parentMeeting.title,participants:(i=r.parentMeeting.participants)!=null?i:[]},meetings:n}}handleTransferPeerRaw({payload:e}){const i=$P.fromBinary(e);return{authToken:i.authToken,meetingId:i.meetingId}}handleMovedPeerRaw({payload:e}){const i=_f.fromBinary(e);return{meetingId:i.meetingId,customParticipantId:i.customParticipantId}}handleConnectedRoomsUpdatedRaw({payload:e}){return wf.fromBinary(e).payloads.map(i=>({id:i.id,title:i.title}))}handleConnectedRoomsDeletedRaw({payload:e}){return LP.fromBinary(e).payloads}getConnectedRoomsDump(){return u(this,null,function*(){const e=yield this.socketService.sendMessagePromise(F.getConnectedRoomsDump);return this.handleConnectedRoomsDumpRaw(e)})}createConnectedRooms(e){return u(this,null,function*(){const{payload:i}=yield this.socketService.sendMessagePromise(F.createConnectedRooms,wP.toBinary({payloads:e}));return wf.fromBinary(i).payloads.map(r=>({id:r.id,title:r.title}))})}updateConnectedRooms(e){return u(this,null,function*(){})}disableConnectedRooms(e){return u(this,null,function*(){const i=e.map(n=>({id:n})),r=yield this.socketService.sendMessagePromise(F.deleteConnectedRooms,NP.toBinary({payloads:i}));return this.handleConnectedRoomsDeletedRaw(r)})}movePeersBetweenRooms(e){return u(this,null,function*(){try{const i=yield this.socketService.sendMessagePromise(F.movePeers,jP.toBinary({sourceMeetingId:e.sourceMeetingId,destinationMeetingId:e.destinationMeetingId,participants:e.participants}));return new TextDecoder().decode(i.payload).includes("error")?{success:!1,error:"failed to move participants"}:{success:!0}}catch(i){return{success:!1,error:i}}})}}var YO=Object.defineProperty,QO=Object.getOwnPropertyDescriptor,XO=(t,e,i,r)=>{for(var n=r>1?void 0:r?QO(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&YO(e,i,n),n},Hi;class qy extends Wt{constructor(e){const i=e.getValue("logger");super(i),m(this,"meetings",[]),m(this,"parentMeeting",null),g(this,Hi,void 0),f(this,Hi,e)}get supportsConnectedMeetings(){return a(this,Hi).getValue("self").id!==""}get isActive(){return this.meetings.length!==0}validateConnectedMeetingsAction(){if(!this.supportsConnectedMeetings)throw new Error(`You are not allowed to perform this action.
|
|
20
20
|
Please connect with Dyte team to move you to V2 APIs & to enable connected meetings.`)}getConnectedMeetings(){return u(this,null,function*(){return this.validateConnectedMeetingsAction(),yield a(this,Hi).getValue("connectedMeetingsSocketHandler").getConnectedRoomsDump()})}createMeetings(e){return u(this,null,function*(){return this.validateConnectedMeetingsAction(),(yield a(this,Hi).getValue("connectedMeetingsSocketHandler").createConnectedRooms(e)).map(i=>({id:i.id,title:i.title}))})}updateMeetings(e){return u(this,null,function*(){this.validateConnectedMeetingsAction(),yield a(this,Hi).getValue("connectedMeetingsSocketHandler").updateConnectedRooms(e.map(i=>({meetingId:i.id,title:i.title})))})}deleteMeetings(e){return u(this,null,function*(){this.validateConnectedMeetingsAction();const i=this.meetings.map(r=>e.includes(r.id)&&r.participants.length!==0?this.moveParticipants(r.id,this.parentMeeting.id,r.participants.map(n=>n.id)):Promise.resolve());return yield Promise.all(i),yield a(this,Hi).getValue("connectedMeetingsSocketHandler").disableConnectedRooms(e)})}moveParticipants(e,i,r){return u(this,null,function*(){this.validateConnectedMeetingsAction();const n=yield a(this,Hi).getValue("connectedMeetingsSocketHandler").movePeersBetweenRooms({sourceMeetingId:e,destinationMeetingId:i,participants:r.map(s=>({id:s}))});return n.success&&this.moveSuccessHandler(e,i,r),n})}moveParticipantsWithCustomPreset(e,i,r){return u(this,null,function*(){this.validateConnectedMeetingsAction();const n=yield a(this,Hi).getValue("connectedMeetingsSocketHandler").movePeersBetweenRooms({sourceMeetingId:e,destinationMeetingId:i,participants:r});return n.success&&this.moveSuccessHandler(e,i,r.map(s=>s.id)),n})}moveSuccessHandler(e,i,r){const n=new Map;[...this.parentMeeting.participants,...this.meetings.flatMap(s=>s.participants)].forEach(s=>n.set(s.id,s)),i===this.parentMeeting.id&&(this.parentMeeting.participants=this.parentMeeting.participants.concat(r.map(s=>n.get(s)))),e===this.parentMeeting.id&&(this.parentMeeting.participants=this.parentMeeting.participants.filter(s=>!r.includes(s.id))),this.meetings=this.meetings.map(s=>{if(i===s.id){const o=s.participants.concat(r.map(c=>n.get(c)));return H(V({},s),{participants:o})}if(e===s.id){const o=s.participants.filter(c=>!r.includes(c.id));return H(V({},s),{participants:o})}return s})}}Hi=new WeakMap,XO([Dt({maxInvocations:60,period:60})],qy.prototype,"getConnectedMeetings",1);var ZO=Object.defineProperty,eN=Object.getOwnPropertyDescriptor,wp=(t,e,i,r)=>{for(var n=r>1?void 0:r?eN(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&ZO(e,i,n),n},Ie,$y;const Jy=($y=class{constructor(t){m(this,"connectedMeetings"),g(this,Ie,void 0),f(this,Ie,t),this.connectedMeetings=new qy(t)}get telemetry(){return a(this,Ie).getValue("telemetry")}get logger(){return a(this,Ie).getValue("logger")}static init(t){const e=new Jy(t);return e.connectedMeetings.supportsConnectedMeetings&&(e.setupEvents(),t.getValue("self").once("roomJoined",()=>e.getConnectedMeetings())),e}getConnectedMeetings(){this.connectedMeetings.getConnectedMeetings()}setupEvents(){a(this,Ie).getValue("connectedMeetingsSocketHandler").socketService.on(F.getConnectedRoomsDump,this.handleConnectedRoomsDump.bind(this)),a(this,Ie).getValue("connectedMeetingsSocketHandler").socketService.on(F.transferPeer,this.handleTransferPeer.bind(this)),a(this,Ie).getValue("connectedMeetingsSocketHandler").socketService.on(F.movedPeer,this.handleMovedPeer.bind(this)),a(this,Ie).getValue("connectedMeetingsSocketHandler").socketService.on(F.connectedRoomsUpdated,this.handleConnectedRoomsUpdated.bind(this)),a(this,Ie).getValue("connectedMeetingsSocketHandler").socketService.on(F.connectedRoomsDeleted,this.handleConnectedRoomsDeleted.bind(this))}handleTransferPeer(t){const e=a(this,Ie).getValue("connectedMeetingsSocketHandler").handleTransferPeerRaw(t);return this.switchMeeting(e)}switchMeeting(t){return u(this,arguments,function*({authToken:e,meetingId:i}){var r,n,s,o;if(!this.connectedMeetings.supportsConnectedMeetings)throw new Error(`You are not allowed to perform this action.
|
|
21
21
|
Please connect with Dyte team to move you to V2 APIs & to enable connected meetings.`);this.logger.info("ConnectedMeetingsController::switchMeeting:: asking ui-kit to show switching breakout UI"),this.connectedMeetings.emit("changingMeeting",i);const c={video:a(this,Ie).getValue("self").videoEnabled,audio:a(this,Ie).getValue("self").audioEnabled};try{a(this,Ie).getValue("self").cleanupEvents(),yield a(this,Ie).getValue("meeting").leave("connected-meeting")}catch(l){this.logger.error(`ConnectedMeetingsController:: switchMeeting:: issues in leaving previous meeting. Meeting Id: ${(n=(r=a(this,Ie).getValue("meeting"))==null?void 0:r.meta)==null?void 0:n.meetingId}`,{error:l})}this.logger.info(`ConnectedMeetingsController::switchMeeting:: initializing new meeting. Meeting Id: ${i}`);const d=yield Qy.init(H(V({},a(this,Ie).getValue("options")),{cachedUserDetails:null,defaults:H(V(V({},a(this,Ie).getValue("options").defaults),c),{mediaHandler:a(this,Ie).getValue("self")}),authToken:e}));this.logger.info(`ConnectedMeetingsController::switchMeeting:: initialized new meeting. Meeting Id: ${(s=d==null?void 0:d.meta)==null?void 0:s.meetingId}`);try{const{hidden:l}=a(this,Ie).getValue("self");d.self.setName(a(this,Ie).getValue("self").name),yield d.join(),l&&d.self.hide()}catch(l){this.logger.error("ConnectedMeetingsController.joinRoom",{error:l})}return this.logger.info(`ConnectedMeetingsController::switchMeeting:: asking ui-kit to show in-meeting ui of newly joined meeting id: ${(o=d==null?void 0:d.meta)==null?void 0:o.meetingId}`),this.connectedMeetings.emit("meetingChanged",d),d})}handleConnectedRoomsDump(t){const e=a(this,Ie).getValue("connectedMeetingsSocketHandler").handleConnectedRoomsDumpRaw(t);this.connectedMeetings.meetings=e.meetings.map(i=>({id:i.id,title:i.title,participants:i.participants||[]})),this.connectedMeetings.parentMeeting={id:e.parentMeeting.id,title:e.parentMeeting.title,participants:e.parentMeeting.participants},this.emitStateUpdate()}handleMovedPeer(t){return a(this,Ie).getValue("connectedMeetingsSocketHandler").handleMovedPeerRaw(t)}handleConnectedRoomsUpdated(t){const e=a(this,Ie).getValue("connectedMeetingsSocketHandler").handleConnectedRoomsUpdatedRaw(t),i=new Map;this.connectedMeetings.meetings.forEach(r=>{i.set(r.id,r)}),e.forEach(r=>{i.has(r.id)?i.get(r.id).title=r.title:i.set(r.id,H(V({},r),{participants:[]}))}),this.connectedMeetings.meetings=Array.from(i.values()),this.emitStateUpdate()}handleConnectedRoomsDeleted(t){const e=a(this,Ie).getValue("connectedMeetingsSocketHandler").handleConnectedRoomsDeletedRaw(t).map(i=>i.id);this.connectedMeetings.meetings=this.connectedMeetings.meetings.filter(i=>!e.includes(i.id)),this.emitStateUpdate()}emitStateUpdate(){this.connectedMeetings.emit("stateUpdate",{meetings:this.connectedMeetings.meetings,parentMeeting:this.connectedMeetings.parentMeeting})}},Ie=new WeakMap,$y);let Al=Jy;wp([T.trace("ConnectedMeetingsController.getConnectedMeetings")],Al.prototype,"getConnectedMeetings",1),wp([T.trace("ConnectedMeetingsController.setupEvents")],Al.prototype,"setupEvents",1),wp([T.trace("ConnectedMeetingsController.switchMeeting")],Al.prototype,"switchMeeting",1);var tN=Object.defineProperty,iN=Object.getOwnPropertyDescriptor,Dl=(t,e,i,r)=>{for(var n=r>1?void 0:r?iN(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&tN(e,i,n),n};const ta=class{constructor(t,e,i){m(this,"apiBase"),m(this,"selfController"),m(this,"pollController"),m(this,"chatController"),m(this,"metaController"),m(this,"storesManager"),m(this,"stageController"),m(this,"pluginController"),m(this,"internalsController"),m(this,"recordingController"),m(this,"livestreamController"),m(this,"participantController"),m(this,"connectedMeetingsController"),m(this,"telemetry"),m(this,"logger"),this.apiBase=t,this.storesManager=e.storesManager,this.metaController=e.metaController,this.selfController=e.selfController,this.chatController=e.chatController,this.pollController=e.pollController,this.stageController=e.stageController,this.pluginController=e.pluginController,this.recordingController=e.recordingController,this.internalsController=e.internalsController,this.participantController=e.participantController,this.livestreamController=e.livestreamController,this.connectedMeetingsController=e.connectedMeetingsController,this.telemetry=i.getValue("telemetry"),this.logger=i.getValue("logger")}static init(t){return u(this,null,function*(){var e,i;const{peerId:r,apiBase:n,authToken:s,meetingId:o,organizationId:c,cachedUserDetails:d,logger:l}=t.getAllValues();if(ky(t),Ee.isSupported()===!1)throw new I("Browser not supported","0010",l,!0);const h=n1(t,{authToken:s,baseURL:n,cachedUserDetails:d});h.setRoomName(o),h.setRoomUUID(o),h.setOrganizationId(c),h.setHeader("dyte-tracing-id",r),t.setValue("apiClient",h);const p=new B1(t);t.setValue("connectionHandler",p);const v=ta.createSocketService(t),k=v.connect(),E=h.getUserDetails(),C=h.getPlugins();let b=Ae.HIVE,R,j="";try{yield ta.setupFlagsmith(t)}catch(ae){l.error("Failed to setup flagsmith",{error:ae})}try{yield k}catch(ae){l.error("[Controller]: Failed to connect to socket server:",{error:ae})}try{({sfu:b,meetingTitle:j}=yield h.getRoomNodeData()),R=yield E,l.info(`SFU ${b} is being used.`),t.setValue("presetName",R.preset.name),t.setValue("roomNodeOptions",{sfu:b})}catch(ae){l.error("Failed to get room metadata",{error:ae})}const W=wD.init(R.preset,!t.getValue("modules").theme),w=qD.init(t,W.viewType,R.preset.permissions),te=ta.setupControllers(v,t,R,C,j,W,w);R1(W)&&((e=ta.createRoomNodeClient(t,v).initializeConnection(R.participant.name,o,!1,w))==null||e.catch(ae=>{l.error("[Controller]: Failed to queue partial media room promise:",{error:ae})})),T.location.country=(i=h.ipInfo)==null?void 0:i.country;const{controllers:ie}=yield te;return I_(),new ta(n,ie,t)})}static setupFlagsmith(t){return u(this,null,function*(){var e;const{peerId:i,baseURI:r,overrides:n,meetingId:s,organizationId:o,logger:c}=t.getAllValues(),d=__(s),l=H(V({entity:vu.PEER,clientId:o,isAnonUser:!o,sdkVersion:t.getValue("sdkVersion"),presetName:t.getValue("presetName"),meetingHash:d,roomName:s},Ee.getDeviceInfo()),{isReactNative:navigator.isReactNative});try{const h=(e=n==null?void 0:n.whitelabelled_flags_endpoint)==null||e?an({servicePrefix:"flags",baseURI:r}):"edge.api.flagsmith.com";yield t.getValue("flagsmith").identify(`${vu.PEER}_${i}`,JSON.parse(JSON.stringify(l)),!1,5e3,h,c),c.info("flagsmith::allFlags",{flags:JSON.stringify(t.getValue("flagsmith").getAllFlags())},!0)}catch(h){c.error("Failed to fetch flagsmith flags")}})}static setupControllers(t,e,i,r,n,s,o){return u(this,null,function*(){var c,d,l;const h=e.getValue("modules"),{participant:p}=i,v=e.getValue("defaults"),k=e.getValue("logger"),{sfu:E}=e.getValue("roomNodeOptions"),{viewType:C,mediaConstraints:{audio:b}}=s;e.setValue("viewType",C),e.setValue("defaults",V({mediaConfiguration:{audio:{enableHighBitrate:(c=b.enableHighBitrate)!=null?c:!1,enableStereo:(d=b.enableStereo)!=null?d:!1}}},v)),e.setValue("maxPreferredStreams",Ee.isMobile()?s.maxVideoStreams.mobile:s.maxVideoStreams.desktop);let R,j,W,w,te,ie,ae,De,st;const ei=new kO(e,t),A=new zO(t);e.setValue("connectedMeetingsSocketHandler",A);const S=new vl(e,t),_=new ri(e,t),B=new CO(t),de=new wy(e,t),Ke=new PO(e,t),x=new TO(t),P=new un(e,t),le=yield Hr.init(e,de,p,o,s);e.setValue("selfController",le);const Gn=yield av.init(e,le.self,de,ei,n);if(h.participant&&(De=new sr(e,le.self,de,E)),(l=h.e2ee)!=null&&l.enabled&&h.e2ee.manager.init(k,e.getValue("peerSessionStore")),h.chat&&(j=yield Zi.init(e,_,P,le.self,De.participants)),h.internals&&(te=yield Qu.init(e)),h.livestream&&s.viewType===Mt.Livestream&&e.getValue("flagsmith").hasFeature(Z.LIVESTREAM)&&(ae=new wv(e,le.self,x)),s.viewType!==Mt.Chat){if(h.poll&&(R=yield Zf.init(e,le.self,S)),h.recording&&(ie=new mv(e,le.self,de)),h.stage&&(W=new ov(e,B,de,le.self,De.participants)),h.plugin){if(!De)throw new I("The plugin module cannot be initialized without the `participant` module","0102");const pr=yield r;w=yield Ua.init(e,pr,Ke,_,j==null?void 0:j.chat,le.self,De.participants,n)}if(h.connectedMeetings&&(st=yield Al.init(e)),h.pip){const pr=yield R_._init(e,le.self);e.setValue("pip",pr)}}const qn={storesManager:new DD(e,Ke),pollController:R,selfController:le,metaController:Gn,chatController:j,stageController:W,pluginController:w,recordingController:ie,internalsController:te,livestreamController:ae,participantController:De,connectedMeetingsController:st};return{theme:s,permissions:o,controllers:qn}})}static createRoomNodeClient(t,e){const{peerId:i,roomNodeOptions:r}=t.getAllValues(),{sfu:n}=r;return Ty(t,n,{socket:e,peerId:i})}static createSocketService(t){const{peerId:e,meetingId:i,authToken:r}=t.getAllValues(),n=["PING"];return new Jo(t,{peerId:e,meetingId:i,authToken:r,capabilities:n})}};let Ko=ta;Dl([T.trace("Controller.init")],Ko,"init",1),Dl([T.trace("setupFlagsmith")],Ko,"setupFlagsmith",1),Dl([T.trace("Controller.createRoomNodeClient")],Ko,"createRoomNodeClient",1),Dl([T.trace("Controller.createSocketService")],Ko,"createSocketService",1);class rN{constructor(){m(this,"battery"),m(this,"logger"),m(this,"init",e=>u(this,null,function*(){this.logger=e;try{"getBattery"in navigator&&(this.battery=yield navigator.getBattery(),this.battery.addEventListener("chargingchange",this.updateChargeInfo),this.battery.addEventListener("levelchange",this.updateLevelInfo),this.updateLevelInfo(),this.updateChargeInfo())}catch(i){e.error("Error getting battery",i)}})),m(this,"updateChargeInfo",()=>{var e;this.logger.log(`Battery charging? ${(e=this.battery)!=null&&e.charging?"Yes":"No"}`)}),m(this,"updateLevelInfo",()=>{if(!this.battery){this.logger.log("Battery level: Not known");return}this.logger.log(`Battery level: ${this.battery.level*100}%`)}),m(this,"cleanup",()=>{var e,i;"getBattery"in navigator&&((e=this.battery)==null||e.removeEventListener("chargingchange",this.updateChargeInfo),(i=this.battery)==null||i.removeEventListener("levelchange",this.updateLevelInfo))})}}const Ky=new rN;function nN(t,e){t.startsWith("eyJ")||console.error("Invalid auth token provided. Ensure you are passing a %cparticipant `authToken`%c \u2014 not an Org API Key or an incorrectly formatted token.\nYou get the participant token from the Add Participant API: https://docs.dyte.io/api#/operations/add_participant","font-weight: bold","font-weight: normal");try{const{meetingId:i,orgId:r,participantId:n}=JSON.parse(atob(t.split(".")[1]));if(!i)throw Error(`Received V1 auth token ${t}`);let s="dyte.io";e&&(s=e);const o=`https://${an({servicePrefix:"api",baseURI:s})}`;return{meetingId:i,orgId:r,participantId:n,baseURI:s,apiBase:o}}catch(i){throw new I("Invalid auth token","0004")}}var Hn,ia,ra,Ol,_p,zy;class sN{constructor(){g(this,_p),g(this,Hn,new Audio),g(this,ia,new MediaStream),g(this,ra,new Map),g(this,Ol,void 0),a(this,Hn).srcObject=a(this,ia),a(this,Hn).autoplay=!0}playTracks(e){return u(this,null,function*(){return e.forEach(i=>{a(this,ra).has(i.id)||(a(this,ia).addTrack(i),a(this,ra).set(i.id,i))}),this.play()})}setSpeakerDevice(e){typeof HTMLAudioElement.prototype.setSinkId=="function"&&a(this,Hn).setSinkId(e)}removeTrack(e){const i=a(this,ra).get(e);i&&(a(this,ia).removeTrack(i),a(this,ra).delete(e))}play(){return u(this,null,function*(){return a(this,Hn).srcObject=a(this,ia),a(this,Hn).play().catch(e=>{U(this,_p,zy).call(this,e)})})}onError(e){f(this,Ol,e)}}Hn=new WeakMap,ia=new WeakMap,ra=new WeakMap,Ol=new WeakMap,_p=new WeakSet,zy=function(t){var e;(e=a(this,Ol))==null||e.call(this,t)};var na;class aN extends sN{constructor(){super(),g(this,na,void 0),f(this,na,new Map)}addParticipantTrack(e,i){a(this,na).set(e,i.id),this.playTracks([i])}removeParticipantTrack(e){const i=a(this,na).get(e);i&&this.removeTrack(i),a(this,na).delete(e)}}na=new WeakMap;var oN=Object.defineProperty,cN=Object.getOwnPropertyDescriptor,Nl=(t,e,i,r)=>{for(var n=r>1?void 0:r?cN(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&oN(e,i,n),n},nt,sa,Yy;let zr=(Yy=class{constructor(t,e){g(this,nt,void 0),g(this,sa,void 0),f(this,sa,t),f(this,nt,e)}get peerId(){return a(this,sa).getValue("peerId")}static initMedia(t={},e=!1,i=void 0){var r;const n=(r=i==null?void 0:i.peerId)!=null?r:Yr(),s=Ki.createContext(n,{peerId:n}),o=s.getValue("logger");o.init(s);const c=new Nv(o);return c.init(t,e,s),s.setValue("defaults",{mediaHandler:c}),c}static init(t){return u(this,null,function*(){var e,i,r,n,s,o,c;Ee.init();const{mediaHandler:d}=(e=t.defaults)!=null?e:{},l=(d==null?void 0:d.peerId)||((r=(i=t==null?void 0:t.cachedUserDetails)==null?void 0:i.peerId)!=null?r:Yr()),{authToken:h,baseURI:p}=t,v=nN(h,p),{meetingId:k}=v,E=kc(v,["meetingId"]);window.__zone_symbol__DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION=!0;const C=zr.setupContext(l,t,k,E),b=C.getValue("telemetry"),R=C.getValue("logger");tT(R),Ky.init(R),b.init(C,{roomName:k,userId:E.participantId,organizationId:E.orgId,peerId:l},(s=(n=t.modules)==null?void 0:n.tracing)!=null?s:!0),R.init(C),R.info("DyteClient::init::options",{dyteClientInitOptions:H(V({},t),{authToken:`${(o=t.authToken)==null?void 0:o.slice(0,10)}...
|
|
22
|
-
${(c=t.authToken)==null?void 0:c.slice(-10)}`})});const j=yield Ko.init(C),W=new zr(C,j);return C.setValue("meeting",W),W})}static setupContext(t,e,i,r){var n,s;const o=Ki.createContext(t,e),c=V(V({},v_),e==null?void 0:e.modules),d=e.defaults||{audio:!0,video:!0};return o.setValue("options",e),o.setValue("peerId",t),o.setValue("modules",c),o.setValue("sdkName","web-core"),o.setValue("meetingId",i),o.setValue("apiBase",r.apiBase),o.setValue("baseURI",r.baseURI),o.setValue("userId",r.participantId),o.setValue("organizationId",r.orgId),o.setValue("authToken",e.authToken),o.setValue("overrides",(n=e.overrides)!=null?n:{}),o.setValue("env",y_({baseURI:r.baseURI})),o.setValue("defaults",d),o.setValue("onError",e.onError||(()=>{})),o.setValue("cachedUserDetails",yi(e.cachedUserDetails)),o.setValue("sdkVersion","3.2.0-staging.
|
|
22
|
+
${(c=t.authToken)==null?void 0:c.slice(-10)}`})});const j=yield Ko.init(C),W=new zr(C,j);return C.setValue("meeting",W),W})}static setupContext(t,e,i,r){var n,s;const o=Ki.createContext(t,e),c=V(V({},v_),e==null?void 0:e.modules),d=e.defaults||{audio:!0,video:!0};return o.setValue("options",e),o.setValue("peerId",t),o.setValue("modules",c),o.setValue("sdkName","web-core"),o.setValue("meetingId",i),o.setValue("apiBase",r.apiBase),o.setValue("baseURI",r.baseURI),o.setValue("userId",r.participantId),o.setValue("organizationId",r.orgId),o.setValue("authToken",e.authToken),o.setValue("overrides",(n=e.overrides)!=null?n:{}),o.setValue("env",y_({baseURI:r.baseURI})),o.setValue("defaults",d),o.setValue("onError",e.onError||(()=>{})),o.setValue("cachedUserDetails",yi(e.cachedUserDetails)),o.setValue("sdkVersion","3.2.0-staging.4"),(s=e.modules)!=null&&s.experimentalAudioPlayback&&o.setValue("audioPlayback",new aN),o}join(){return u(this,null,function*(){const{selfController:t}=a(this,nt);return t.self.roomJoined?null:t.joinRoom()})}leave(t){return u(this,null,function*(){Ky.cleanup(),a(this,sa).getValue("peerSessionStore").reset();const{selfController:e}=a(this,nt);return e.leaveRoom(t)})}get participants(){var t;return(t=a(this,nt).participantController)==null?void 0:t.participants}get self(){var t;return(t=a(this,nt).selfController)==null?void 0:t.self}get meta(){var t;return(t=a(this,nt).metaController)==null?void 0:t.meta}get ai(){var t;return(t=a(this,nt).metaController)==null?void 0:t.ai}get plugins(){var t;return(t=a(this,nt).pluginController)==null?void 0:t.plugins}get chat(){var t;return(t=a(this,nt).chatController)==null?void 0:t.chat}get polls(){var t;return(t=a(this,nt).pollController)==null?void 0:t.polls}get connectedMeetings(){var t;return(t=a(this,nt).connectedMeetingsController)==null?void 0:t.connectedMeetings}get recording(){var t;return(t=a(this,nt).recordingController)==null?void 0:t.recording}get livestream(){var t;return(t=a(this,nt).livestreamController)==null?void 0:t.livestream}get stage(){var t;return(t=a(this,nt).stageController)==null?void 0:t.stage}get stores(){return a(this,nt).storesManager}get audio(){return a(this,sa).getValue("audioPlayback")}get __internals__(){var t;return(t=a(this,nt).internalsController)==null?void 0:t.internals}joinRoom(){return u(this,null,function*(){return this.join()})}leaveRoom(t){return u(this,null,function*(){return this.leave(t)})}},nt=new WeakMap,sa=new WeakMap,Yy);Nl([ht("0002"),er.executeWithLock({methodName:"meeting.join",lockName:"DyteClient.join",timeout:3e3})],zr.prototype,"join",1),Nl([ht("0003")],zr.prototype,"leave",1),Nl([ht("0001"),er.executeWithLock({methodName:"DyteClient.init",lockName:"DyteClient.init",timeout:3e3})],zr,"init",1),zr=Nl([ht("0000")],zr);const Qy=zr;return Qy}();
|