@cloudflare/realtimekit 1.1.7-staging.1 → 1.1.7-staging.2
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.d.ts +1 -0
- package/dist/index.es.js +4 -2
- package/dist/index.rn.js +2 -2
- package/dist/ts3.4/dist/index.d.ts +1 -0
- package/package.json +1 -1
package/dist/index.rn.js
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
`},Fn=mf,zS=KS,Wc=zS,In=Fn.parse;Fn.parseParams;Fn.parseFmtpConfig;Fn.parsePayloads;Fn.parseRemoteCandidates;Fn.parseImageAttributes;Fn.parseSimulcastStreamList;var YS=Object.defineProperty,QS=Object.defineProperties,XS=Object.getOwnPropertyDescriptors,Fd=Object.getOwnPropertySymbols,ZS=Object.getPrototypeOf,gf=Object.prototype.hasOwnProperty,ff=Object.prototype.propertyIsEnumerable,eT=Reflect.get,tT=Math.pow,Au=(t,e,i)=>e in t?YS(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,V=(t,e)=>{for(var i in e||(e={}))gf.call(e,i)&&Au(t,i,e[i]);if(Fd)for(var i of Fd(e))ff.call(e,i)&&Au(t,i,e[i]);return t},q=(t,e)=>QS(t,XS(e)),ml=(t,e)=>{var i={};for(var r in t)gf.call(t,r)&&e.indexOf(r)<0&&(i[r]=t[r]);if(t!=null&&Fd)for(var r of Fd(t))e.indexOf(r)<0&&ff.call(t,r)&&(i[r]=t[r]);return i},m=(t,e,i)=>(Au(t,typeof e!="symbol"?e+"":e,i),i),Kh=(t,e,i)=>{if(!e.has(t))throw TypeError("Cannot "+i)},a=(t,e,i)=>(Kh(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)=>(Kh(t,e,"write to private field"),r?r.call(t,i):e.set(t,i),i),U=(t,e,i)=>(Kh(t,e,"access private method"),i),iT=(t,e,i)=>eT(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 rT(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:rT});function nT(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:nT});const sT=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")}))},Ko="chrome",vf="opera",yf="firefox",Sf="iexplorer",Tf="safari",kf="nwjs",Ef="electron",bf="react-native",zh="unknown",Bd={Chrome:Ko,Chromium:Ko,Opera:vf,Firefox:yf,"Internet Explorer":Sf,Safari:Tf};function aT(){const{userAgent:t}=navigator,e={name:zh,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=Ko,e.version=i)}else e.name=Ko,e.version=t.match(/Chrome\/([\d.]+)/)[1];return e}function oT(){const{userAgent:t}=navigator;if(t.match(/Electron/)){const e=t.match(/Electron\/([\d.]+)/)[1];return{name:Ef,version:e}}return null}function cT(){const{userAgent:t}=navigator;if(t.match(/JitsiMeetNW/)){const e=t.match(/JitsiMeetNW\/([\d.]+)/)[1];return{name:kf,version:e}}}function dT(){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:bf,version:e}}function lT(t){let e;const i=[dT,oT,cT];for(let n=0;n<i.length;n+=1)if(e=i[n](),e)return e;const r=t.getBrowserName();return r in Bd?{name:Bd[r],version:t.getBrowserVersion()}:(e=aT(),e||{name:zh,version:void 0})}class uT{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=tf.getParser(navigator.userAgent),typeof e=="undefined"){const n=lT(this._bowser);i=n.name,r=n.version}else e.name in Bd?(i=Bd[e.name],r=e.version):(i=zh,r=void 0);this._name=i,this._version=r}getName(){return this._name}isChrome(){return this._name===Ko}isOpera(){return this._name===vf}isFirefox(){return this._name===yf}isIExplorer(){return this._name===Sf}isSafari(){return this._name===Tf}isNWJS(){return this._name===kf}isElectron(){return this._name===Ef}isReactNative(){return this._name===bf||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 hT extends uT{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 Ie=new hT;var gt={},pT={get exports(){return gt},set exports(t){gt=t}},qs=typeof Reflect=="object"?Reflect:null,Fp=qs&&typeof qs.apply=="function"?qs.apply:function(t,e,i){return Function.prototype.apply.call(t,e,i)},jc;qs&&typeof qs.ownKeys=="function"?jc=qs.ownKeys:Object.getOwnPropertySymbols?jc=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:jc=function(t){return Object.getOwnPropertyNames(t)};function mT(t){console&&console.warn&&console.warn(t)}var wf=Number.isNaN||function(t){return t!==t};function he(){he.init.call(this)}pT.exports=he;gt.once=yT;he.EventEmitter=he;he.prototype._events=void 0;he.prototype._eventsCount=0;he.prototype._maxListeners=void 0;var Bp=10;function gl(t){if(typeof t!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t)}Object.defineProperty(he,"defaultMaxListeners",{enumerable:!0,get:function(){return Bp},set:function(t){if(typeof t!="number"||t<0||wf(t))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+t+".");Bp=t}});he.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};he.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||wf(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 _f(t){return t._maxListeners===void 0?he.defaultMaxListeners:t._maxListeners}he.prototype.getMaxListeners=function(){return _f(this)};he.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")Fp(c,this,e);else for(var d=c.length,l=Mf(c,d),i=0;i<d;++i)Fp(l[i],this,e);return!0};function If(t,e,i,r){var n,s,o;if(gl(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=_f(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,mT(c)}return t}he.prototype.addListener=function(t,e){return If(this,t,e,!1)};he.prototype.on=he.prototype.addListener;he.prototype.prependListener=function(t,e){return If(this,t,e,!0)};function gT(){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 Cf(t,e,i){var r={fired:!1,wrapFn:void 0,target:t,type:e,listener:i},n=gT.bind(r);return n.listener=i,r.wrapFn=n,n}he.prototype.once=function(t,e){return gl(e),this.on(t,Cf(this,t,e)),this};he.prototype.prependOnceListener=function(t,e){return gl(e),this.prependListener(t,Cf(this,t,e)),this};he.prototype.removeListener=function(t,e){var i,r,n,s,o;if(gl(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():fT(i,n),i.length===1&&(r[t]=i[0]),r.removeListener!==void 0&&this.emit("removeListener",t,o||e)}return this};he.prototype.off=he.prototype.removeListener;he.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 Pf(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?vT(n):Mf(n,n.length)}he.prototype.listeners=function(t){return Pf(this,t,!0)};he.prototype.rawListeners=function(t){return Pf(this,t,!1)};he.listenerCount=function(t,e){return typeof t.listenerCount=="function"?t.listenerCount(e):Rf.call(t,e)};he.prototype.listenerCount=Rf;function Rf(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}he.prototype.eventNames=function(){return this._eventsCount>0?jc(this._events):[]};function Mf(t,e){for(var i=new Array(e),r=0;r<e;++r)i[r]=t[r];return i}function fT(t,e){for(;e+1<t.length;e++)t[e]=t[e+1];t.pop()}function vT(t){for(var e=new Array(t.length),i=0;i<e.length;++i)e[i]=t[i].listener||t[i];return e}function yT(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))}Af(t,e,s,{once:!0}),e!=="error"&&ST(t,n,{once:!0})})}function ST(t,e,i){typeof t.on=="function"&&Af(t,"error",e,i)}function Af(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 TT=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 kT{constructor(){m(this,"events"),this.events=[]}add(e){this.events.push(e)}flush(){return{entries:this.events.splice(0,25)}}}class ET extends gt{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 kT}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),TT.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 Wp;(function(t){t.CHROMIUM="chromum",t.FIREFOX="firefox",t.SAFARI="safari"})(Wp||(Wp={}));const Do={DEVEL:"devel",PREPROD:"preprod",PROD:"prod"};var ai;(function(t){t.AUDIO="AUDIO",t.VIDEO="VIDEO",t.SPEAKER="SPEAKER",t.SCREENSHARE="SCREENSHARE"})(ai||(ai={}));var jp;(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"})(jp||(jp={}));function qr(t){return t?t.split(".").slice(0,2).concat(["0","0"]).join("."):""}function Wd({packetsLost:t,packetsSent:e}){return e>0?t*100/e:0}function jd({packetsLost:t,packetsReceived:e}){return e+t>0?t*100/(e+t):0}const Df=240,Of=720,Nf=8,Vf=3,fl=10,vl=.02,yl=.03;function or({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 Lf({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 xf({packetsLost:t,packetsSent:e}){return e>0?t*100/e:0}function Uf({packetsLost:t,packetsSent:e,jitter:i}){const r=or({stat:xf({packetsLost:t,packetsSent:e}),weight:.7,rangeMin:0,rangeMax:fl,rangeRankingDirection:"UP"}),n=or({stat:i,weight:.3,rangeMin:vl,rangeMax:yl,rangeRankingDirection:"UP"});return r+n}function bT({frameWidth:t,isScreenShare:e}){return t<(e?Of:Df)}function wT({framesPerSecond:t,isScreenShare:e}){return t<(e?Vf:Nf)}function _T({framesEncoded:t}){return t===0}function Ff({frameWidth:t,framesPerSecond:e,packetsLost:i,packetsSent:r,jitter:n,isScreenShare:s,framesEncoded:o}){const c=or({stat:xf({packetsLost:i,packetsSent:r}),weight:1,rangeMin:0,rangeMax:fl,rangeRankingDirection:"UP"}),d=or({stat:n,weight:1,rangeMin:vl,rangeMax:yl,rangeRankingDirection:"UP"}),l=bT({frameWidth:t,isScreenShare:s}),h=wT({framesPerSecond:e,isScreenShare:s}),p=_T({framesEncoded:o,isScreenShare:s});return Lf({isLowQualityVideo:l,isVideoLagging:h,isVideoStuck:p,jitterQuality:d,packetsLostQuality:c})}function Bf({packetsLost:t,packetsReceived:e}){return e+t>0?t*100/(e+t):0}function Wf({concealmentEvents:t,packetsLost:e,packetsReceived:i,jitter:r}){const n=or({stat:t,weight:.2,rangeMin:0,rangeMax:3,rangeRankingDirection:"UP"}),s=.5,o=or({stat:Bf({packetsLost:e,packetsReceived:i}),weight:s,rangeMin:0,rangeMax:fl,rangeRankingDirection:"UP"}),c=or({stat:r,weight:.3,rangeMin:vl,rangeMax:yl,rangeRankingDirection:"UP"});return n+o+c}function IT({framesDecoded:t}){return t===0}function CT({framesPerSecond:t,isScreenShare:e}){return t<(e?Vf:Nf)}function PT({frameWidth:t,isScreenShare:e}){return t<(e?Of:Df)}function jf({frameWidth:t,framesPerSecond:e,packetsLost:i,packetsReceived:r,jitter:n,isScreenShare:s,framesDecoded:o}){const c=or({stat:Bf({packetsLost:i,packetsReceived:r}),weight:1,rangeMin:0,rangeMax:fl,rangeRankingDirection:"UP"}),d=or({stat:n,weight:1,rangeMin:vl,rangeMax:yl,rangeRankingDirection:"UP"}),l=PT({frameWidth:t,isScreenShare:s}),h=CT({framesPerSecond:e,isScreenShare:s}),p=IT({framesDecoded:o,isScreenShare:s});return Lf({isLowQualityVideo:l,isVideoLagging:h,isVideoStuck:p,jitterQuality:d,packetsLostQuality:c})}class cr{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=cr.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=cr.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 Hf extends gt{constructor(e){super(),m(this,"call"),m(this,"timeOut"),this.call=new cr(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 RT=8,MT=1/1e3;class AT extends Hf{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(cr.isNotHostCandidate),this.senderChannel=this.call.pc1.createDataChannel(null);for(let i=0;i<1024*256;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)*RT/(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*MT)})}}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 Yh extends Hf{constructor(e,i=cr.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 DT extends Yh{constructor(e){super(e,cr.isHost)}}class OT extends Yh{constructor(e){super(e,cr.isRelay)}}class NT extends Yh{constructor(e){super(e,cr.isReflexive)}}class VT{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=qr(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=qr(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 Qh=new VT,Hp=[{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 Gp(t){const[e,i]=t.split(",");return{coords:{latitude:Number(e),longitude:Number(i)}}}class Gf{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 qf extends gt{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 gt}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,S,E,C,b,M,j;const W=e,w=new Gf,te=i.length?new Set(i):void 0,ie=[],ae=[],Me=[],Xe=new Map,Wt=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:T}=A,{selected:_}=A,B=A,oe={nominated:T!=null?T:_,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};Me.push(oe),(A.nominated===!0||A.selected===!0)&&(w.candidatePair=oe);break}case"transport":{const T=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:T.bytesReceived,bytesSent:T.bytesSent,packetsSent:T.packetsSent,packetsReceived:T.packetsReceived,dtlsCipher:T.dtlsCipher,dtlsState:T.dtlsState,iceRole:T.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 T=A,_={jitter:T.jitter,fractionLost:T.fractionLost,roundTripTime:T.roundTripTime,roundTripTimeMeasurements:T.roundTripTimeMeasurements,totalRoundTripTime:T.totalRoundTripTime,packetsLost:T.packetsLost};w.remoteInboundRtp.set(T.localId,_);break}case"outbound-rtp":{const T=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 oe=this.overallProducersStatsMap[_];if(["video","audio"].includes(T.mediaType)||["video","audio"].includes(T.kind)){if(!this.outboundProducerMap.has(A.id)){w.staleProducerStreamMap=!0;break}const He=this.callStatsInstance.producers.get(_);if(((o=He==null?void 0:He.track)==null?void 0:o.readyState)==="ended")break;w.producerStreamMap.has(_)||w.producerStreamMap.set(_,{outboundVideoRtpId:[],outboundAudioRtpId:[]});const x={bytesSent:T.bytesSent,packetsSent:T.packetsSent,nackCount:T.nackCount,ssrc:T.ssrc,mid:T.mid,active:T.active,codecId:T.codecId,headerBytesSent:T.headerBytesSent||0,totalPacketSendDelay:T.totalPacketSendDelay||0};if(T.mediaType==="video"||T.kind==="video"){const P=T,ce=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,ce),w.producerStreamMap.get(_).outboundVideoRtpId.push(A.id),this.processOutboundProducerVideoStats(_,oe,ce)}else if(T.mediaType==="audio"||T.kind==="audio"){const P=T,ce=V({retransmittedBytesSent:P.retransmittedBytesSent,retransmittedPacketsSent:P.retransmittedPacketsSent},x);w.outboundAudioRtp.set(A.id,ce),w.producerStreamMap.get(_).outboundAudioRtpId.push(A.id),this.processOutboundProducerAudioStats(_,oe,ce)}}else this.callStatsInstance.logger.error(`Callstats: Unknown Outbound-rtp. mediatype: ${T.mediaType} kind: ${T.kind}`);break}case"inbound-rtp":{const T=A,_=n||this.inboundConsumerMap.get(A.id),B=this.pausedConsumerMap.get(_);if(B){if(B.lastReportCalculated===!0)break;this.pausedConsumerMap.set(_,{lastReportCalculated:!0})}if(T.ssrc===1234)break;this.overallConsumersStatsMap[_]||(this.overallConsumersStatsMap[_]={totalVideoPacketsReceived:0,totalAudioPacketsReceived:0});const oe=this.overallConsumersStatsMap[_];if(["video","audio"].includes(T.mediaType)||["video","audio"].includes(T.kind)){if(!this.inboundConsumerMap.has(A.id)){w.staleConsumerStreamMap=!0;break}w.consumerStreamMap.has(_)||w.consumerStreamMap.set(_,{inboundVideoRtpId:[],inboundAudioRtpId:[]});const He={bytesReceived:T.bytesReceived,packetsReceived:T.packetsReceived,packetsLost:T.packetsLost>=0?T.packetsLost:0,jitter:T.jitter,nackCount:T.nackCount,jitterBufferDelay:T.jitterBufferDelay,jitterBufferEmittedCount:T.jitterBufferEmittedCount,lastPacketReceivedTimestamp:T.lastPacketReceivedTimestamp,ssrc:T.ssrc,mid:T.mid,codecId:T.codecId,headerBytesReceived:T.headerBytesReceived||0,packetsDiscarded:T.packetsDiscarded||0,jitterBufferMinimumDelay:T.jitterBufferMinimumDelay||0,jitterBufferTargetDelay:T.jitterBufferTargetDelay||0};if(T.mediaType==="video"||T.kind==="video"){const x=T,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},He);P.score=jf({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(_)}),Wt.set(_,{score:+(P.score*10).toFixed(),frameWidth:P.frameWidth||0,frameHeight:P.frameHeight||0,framesPerSecond:P.framesPerSecond||0,packetsLostPercentage:jd({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(_,oe,P)}else if(T.mediaType==="audio"||T.kind==="audio"){const x=T,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},He);P.score=Wf({concealmentEvents:(P.concealmentEvents||0)-(((S=this.audioConsumerToStatsMap.get(_))==null?void 0:S.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}),Wt.set(_,{score:+(P.score*10).toFixed(),packetsLostPercentage:jd({packetsLost:(P.packetsLost||0)-(((b=this.audioConsumerToStatsMap.get(_))==null?void 0:b.packetsLost)||0),packetsReceived:(P.packetsReceived||0)-(((M=this.audioConsumerToStatsMap.get(_))==null?void 0:M.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(_,oe,P)}}else this.callStatsInstance.logger.error(`Callstats: Unknown Inbound-rtp. mediatype: ${T.mediaType} kind: ${T.kind}`);break}}}if(w.producerStreamMap.forEach((A,T)=>{var _,B,oe,He,x,P,ce,Xr,Zr,Gi,oa,ca,da,la,ua,ha,pa,ma,ga,fa,va,ya,Sa;if(A.outboundVideoRtpId.length>0){const ge=[];A.outboundVideoRtpId.forEach(Vl=>{ge.push(w.outboundVideoRtp.get(Vl))});const ne=this.getWorkingSimulcastVideoStats(ge);ne.score=Ff({frameWidth:ne.frameWidth||0,framesPerSecond:ne.framesPerSecond||0,jitter:((_=ne.remoteData)==null?void 0:_.jitter)||0,isScreenShare:this.screenShareProducers.has(T),packetsSent:(ne.packetsSent||0)-(((B=this.videoProducerToStatsMap.get(T))==null?void 0:B.packetsSent)||0),packetsLost:(((oe=ne.remoteData)==null?void 0:oe.packetsLost)||0)-(((x=(He=this.videoProducerToStatsMap.get(T))==null?void 0:He.remoteData)==null?void 0:x.packetsLost)||0),framesEncoded:(ne.framesEncoded||0)-(((P=this.videoProducerToStatsMap.get(T))==null?void 0:P.framesEncoded)||0)}),Xe.set(T,{score:+(ne.score*10).toFixed(),frameWidth:ne.frameWidth||0,frameHeight:ne.frameHeight||0,framesPerSecond:ne.framesPerSecond||0,jitter:((ce=ne.remoteData)==null?void 0:ce.jitter)||0,isScreenShare:this.screenShareProducers.has(T),packetsLostPercentage:Wd({packetsSent:(ne.packetsSent||0)-(((Xr=this.videoProducerToStatsMap.get(T))==null?void 0:Xr.packetsSent)||0),packetsLost:(((Zr=ne.remoteData)==null?void 0:Zr.packetsLost)||0)-(((oa=(Gi=this.videoProducerToStatsMap.get(T))==null?void 0:Gi.remoteData)==null?void 0:oa.packetsLost)||0)}),bitrate:((ne.bytesSent||0)-(((ca=this.videoProducerToStatsMap.get(T))==null?void 0:ca.bytesSent)||0))*8/7,cpuLimitations:ne.qualityLimitationReason==="cpu",bandwidthLimitations:ne.qualityLimitationReason==="bandwidth"}),this.videoProducerToStatsMap.set(T,ne)}else if(A.outboundAudioRtpId.length>0){const ge=w.outboundAudioRtp.get(A.outboundAudioRtpId[0]);ge.score=Uf({packetsSent:(ge.packetsSent||0)-(((da=this.audioProducerToStatsMap.get(T))==null?void 0:da.packetsSent)||0),packetsLost:(((la=ge.remoteData)==null?void 0:la.packetsLost)||0)-(((ha=(ua=this.audioProducerToStatsMap.get(T))==null?void 0:ua.remoteData)==null?void 0:ha.packetsLost)||0),jitter:((pa=ge.remoteData)==null?void 0:pa.jitter)||0}),Xe.set(T,{score:+(ge.score*10).toFixed(),bitrate:((ge.bytesSent||0)-(((ma=this.audioProducerToStatsMap.get(T))==null?void 0:ma.bytesSent)||0))*8/7,packetsLostPercentage:Wd({packetsSent:(ge.packetsSent||0)-(((ga=this.audioProducerToStatsMap.get(T))==null?void 0:ga.packetsSent)||0),packetsLost:(((fa=ge.remoteData)==null?void 0:fa.packetsLost)||0)-(((ya=(va=this.audioProducerToStatsMap.get(T))==null?void 0:va.remoteData)==null?void 0:ya.packetsLost)||0)}),jitter:((Sa=ge.remoteData)==null?void 0:Sa.jitter)||0,isScreenShare:this.screenShareProducers.has(T)}),this.audioProducerToStatsMap.set(T,ge)}}),Me.forEach(A=>{const T=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);T&&(A.localCandidateType=T.type,A.localCandidateAddress=qr(T.address),A.localCandidatePort=T.port,A.localCandidateProtocol=T.protocol,A.localCandidateUrl=T.url,A.localCandidateNetworkType=T.networkType,A.localCandidateRelatedAddress=qr(T.relatedAddress),A.localCandidateRelatedPort=T.relatedPort),_&&(A.remoteCandidateType=_.type,A.remoteCandidateAddress=qr(_.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=Me),w.transport&&!w.transport.roundTripTime){let A=0,T=0;w.remoteInboundRtp.forEach((_,B)=>{_.roundTripTime&&_.roundTripTime>A&&(A=_.roundTripTime,T=_.totalRoundTripTime)}),w.transport.roundTripTime=A,w.transport.totalRoundTripTime=T}if(Wt.size>0)try{this.observer.emit("consumer_score",Wt)}catch(A){}if(Xe.size>0)try{this.observer.emit("producer_score",Xe)}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||Hp},r=new Promise((l,h)=>{try{const p=new DT(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 OT(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 NT(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||Hp},o=new AT(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 Qh.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?Gp(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?Gp(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 LT extends qf{}class $f extends qf{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,S,E,C,b,M,j;const W=e,w=new Gf,te=i.length?new Set(i):void 0,ie=[],ae=[],Me=[],Xe=new Map,Wt=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:T}=A,{selected:_}=A,B=A,oe={nominated:T!=null?T:_,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};Me.push(oe),(A.nominated===!0||A.selected===!0)&&(w.candidatePair=oe);break}case"transport":{const T=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:T.bytesReceived,bytesSent:T.bytesSent,packetsSent:T.packetsSent,packetsReceived:T.packetsReceived,dtlsCipher:T.dtlsCipher,dtlsState:T.dtlsState,iceRole:T.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 T=A,_={jitter:T.jitter,fractionLost:T.fractionLost,roundTripTime:T.roundTripTime,roundTripTimeMeasurements:T.roundTripTimeMeasurements,totalRoundTripTime:T.totalRoundTripTime,packetsLost:T.packetsLost};w.remoteInboundRtp.set(T.localId,_);break}case"outbound-rtp":{const T=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 oe=this.overallProducersStatsMap[_];if(["video","audio"].includes(T.mediaType)||["video","audio"].includes(T.kind)){if(!this.outboundProducerMap.has(A.id)){w.staleProducerStreamMap=!0;break}const He=this.callStatsInstance.producers.get(_);if(((o=He==null?void 0:He.track)==null?void 0:o.readyState)==="ended")break;w.producerStreamMap.has(_)||w.producerStreamMap.set(_,{outboundVideoRtpId:[],outboundAudioRtpId:[]});const x={bytesSent:T.bytesSent,packetsSent:T.packetsSent,nackCount:T.nackCount,ssrc:T.ssrc,mid:T.mid,active:T.active,codecId:T.codecId,headerBytesSent:T.headerBytesSent||0,totalPacketSendDelay:T.totalPacketSendDelay||0};if(T.mediaType==="video"||T.kind==="video"){const P=T,ce=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,ce),w.producerStreamMap.get(_).outboundVideoRtpId.push(A.id),this.processOutboundProducerVideoStats(_,oe,ce)}else if(T.mediaType==="audio"||T.kind==="audio"){const P=T,ce=V({retransmittedBytesSent:P.retransmittedBytesSent,retransmittedPacketsSent:P.retransmittedPacketsSent},x);w.outboundAudioRtp.set(A.id,ce),w.producerStreamMap.get(_).outboundAudioRtpId.push(A.id),this.processOutboundProducerAudioStats(_,oe,ce)}}else this.callStatsInstance.logger.error(`Callstats: Unknown Outbound-rtp. mediatype: ${T.mediaType} kind: ${T.kind}`);break}case"inbound-rtp":{const T=A,_=n||this.inboundConsumerMap.get(A.id),B=this.pausedConsumerMap.get(_);if(B){if(B.lastReportCalculated===!0)break;this.pausedConsumerMap.set(_,{lastReportCalculated:!0})}if(T.ssrc===1234)break;this.overallConsumersStatsMap[_]||(this.overallConsumersStatsMap[_]={totalVideoPacketsReceived:0,totalAudioPacketsReceived:0});const oe=this.overallConsumersStatsMap[_];if(["video","audio"].includes(T.mediaType)||["video","audio"].includes(T.kind)){if(!this.inboundConsumerMap.has(A.id)){w.staleConsumerStreamMap=!0;break}w.consumerStreamMap.has(_)||w.consumerStreamMap.set(_,{inboundVideoRtpId:[],inboundAudioRtpId:[]});const He={bytesReceived:T.bytesReceived,packetsReceived:T.packetsReceived,packetsLost:T.packetsLost>=0?T.packetsLost:0,jitter:T.jitter,nackCount:T.nackCount,jitterBufferDelay:T.jitterBufferDelay,jitterBufferEmittedCount:T.jitterBufferEmittedCount,lastPacketReceivedTimestamp:T.lastPacketReceivedTimestamp,ssrc:T.ssrc,mid:T.mid,codecId:T.codecId,headerBytesReceived:T.headerBytesReceived||0,packetsDiscarded:T.packetsDiscarded||0,jitterBufferMinimumDelay:T.jitterBufferMinimumDelay||0,jitterBufferTargetDelay:T.jitterBufferTargetDelay||0};if(T.mediaType==="video"||T.kind==="video"){const x=T,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},He);P.score=jf({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(_)}),Wt.set(_,{score:+(P.score*10).toFixed(),frameWidth:P.frameWidth||0,frameHeight:P.frameHeight||0,framesPerSecond:P.framesPerSecond||0,packetsLostPercentage:jd({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(_,oe,P)}else if(T.mediaType==="audio"||T.kind==="audio"){const x=T,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},He);P.score=Wf({concealmentEvents:(P.concealmentEvents||0)-(((S=this.audioConsumerToStatsMap.get(_))==null?void 0:S.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}),Wt.set(_,{score:+(P.score*10).toFixed(),packetsLostPercentage:jd({packetsLost:(P.packetsLost||0)-(((b=this.audioConsumerToStatsMap.get(_))==null?void 0:b.packetsLost)||0),packetsReceived:(P.packetsReceived||0)-(((M=this.audioConsumerToStatsMap.get(_))==null?void 0:M.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(_,oe,P)}}else this.callStatsInstance.logger.error(`Callstats: Unknown Inbound-rtp. mediatype: ${T.mediaType} kind: ${T.kind}`);break}}}if(w.producerStreamMap.forEach((A,T)=>{var _,B,oe,He,x,P,ce,Xr,Zr,Gi,oa,ca,da,la,ua,ha,pa,ma,ga,fa,va,ya,Sa;if(A.outboundVideoRtpId.length>0){const ge=[];A.outboundVideoRtpId.forEach(Vl=>{ge.push(w.outboundVideoRtp.get(Vl))});const ne=this.getWorkingSimulcastVideoStats(ge);ne.score=Ff({frameWidth:ne.frameWidth||0,framesPerSecond:ne.framesPerSecond||0,jitter:((_=ne.remoteData)==null?void 0:_.jitter)||0,isScreenShare:this.screenShareProducers.has(T),packetsSent:(ne.packetsSent||0)-(((B=this.videoProducerToStatsMap.get(T))==null?void 0:B.packetsSent)||0),packetsLost:(((oe=ne.remoteData)==null?void 0:oe.packetsLost)||0)-(((x=(He=this.videoProducerToStatsMap.get(T))==null?void 0:He.remoteData)==null?void 0:x.packetsLost)||0),framesEncoded:(ne.framesEncoded||0)-(((P=this.videoProducerToStatsMap.get(T))==null?void 0:P.framesEncoded)||0)}),Xe.set(T,{score:+(ne.score*10).toFixed(),frameWidth:ne.frameWidth||0,frameHeight:ne.frameHeight||0,framesPerSecond:ne.framesPerSecond||0,jitter:((ce=ne.remoteData)==null?void 0:ce.jitter)||0,isScreenShare:this.screenShareProducers.has(T),packetsLostPercentage:Wd({packetsSent:(ne.packetsSent||0)-(((Xr=this.videoProducerToStatsMap.get(T))==null?void 0:Xr.packetsSent)||0),packetsLost:(((Zr=ne.remoteData)==null?void 0:Zr.packetsLost)||0)-(((oa=(Gi=this.videoProducerToStatsMap.get(T))==null?void 0:Gi.remoteData)==null?void 0:oa.packetsLost)||0)}),bitrate:((ne.bytesSent||0)-(((ca=this.videoProducerToStatsMap.get(T))==null?void 0:ca.bytesSent)||0))*8/7,cpuLimitations:ne.qualityLimitationReason==="cpu",bandwidthLimitations:ne.qualityLimitationReason==="bandwidth"}),this.videoProducerToStatsMap.set(T,ne)}else if(A.outboundAudioRtpId.length>0){const ge=w.outboundAudioRtp.get(A.outboundAudioRtpId[0]);ge.score=Uf({packetsSent:(ge.packetsSent||0)-(((da=this.audioProducerToStatsMap.get(T))==null?void 0:da.packetsSent)||0),packetsLost:(((la=ge.remoteData)==null?void 0:la.packetsLost)||0)-(((ha=(ua=this.audioProducerToStatsMap.get(T))==null?void 0:ua.remoteData)==null?void 0:ha.packetsLost)||0),jitter:((pa=ge.remoteData)==null?void 0:pa.jitter)||0}),Xe.set(T,{score:+(ge.score*10).toFixed(),bitrate:((ge.bytesSent||0)-(((ma=this.audioProducerToStatsMap.get(T))==null?void 0:ma.bytesSent)||0))*8/7,packetsLostPercentage:Wd({packetsSent:(ge.packetsSent||0)-(((ga=this.audioProducerToStatsMap.get(T))==null?void 0:ga.packetsSent)||0),packetsLost:(((fa=ge.remoteData)==null?void 0:fa.packetsLost)||0)-(((ya=(va=this.audioProducerToStatsMap.get(T))==null?void 0:va.remoteData)==null?void 0:ya.packetsLost)||0)}),jitter:((Sa=ge.remoteData)==null?void 0:Sa.jitter)||0,isScreenShare:this.screenShareProducers.has(T)}),this.audioProducerToStatsMap.set(T,ge)}}),Me.forEach(A=>{const T=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);T&&(A.localCandidateType=T.type,A.localCandidateAddress=qr(T.address),A.localCandidatePort=T.port,A.localCandidateProtocol=T.protocol,A.localCandidateUrl=T.url,A.localCandidateNetworkType=T.networkType,A.localCandidateRelatedAddress=qr(T.relatedAddress),A.localCandidateRelatedPort=T.relatedPort),_&&(A.remoteCandidateType=_.type,A.remoteCandidateAddress=qr(_.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=Me),w.transport&&!w.transport.roundTripTime){let A=0,T=0;w.remoteInboundRtp.forEach((_,B)=>{_.roundTripTime&&_.roundTripTime>A&&(A=_.roundTripTime,T=_.totalRoundTripTime)}),w.transport.roundTripTime=A,w.transport.totalRoundTripTime=T}if(Wt.size>0)try{this.observer.emit("consumer_score",Wt)}catch(A){}if(Xe.size>0)try{this.observer.emit("producer_score",Xe)}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 xT extends $f{}function Hd(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 qp(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=>{Hd(this,e,i,o)}):s}catch(s){Hd(this,e,i,s)}return null},t}const Z=(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=>{Hd(this,t,e,d)}):c}catch(c){Hd(this,t,e,c)}return null},n},UT=(t,e)=>(i,r,n)=>{if(n)return qp(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,qp(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 gt{constructor(t="https://api.testingv3.dyte.in",e="Blink",i=Do.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 ET({logger:n,peerId:s,apiHostnames:o}),this.logger.debug("callStats::engineName: ",{engineName:e}),e){case"Blink":this.measurements=new LT;break;case"Gecko":this.measurements=new $f;break;case"WebKit":this.measurements=new xT;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 gt,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===ai.AUDIO&&L.AUDIO_DEVICES_UPDATES||t===ai.VIDEO&&L.VIDEO_DEVICES_UPDATES||t===ai.SPEAKER&&L.SPEAKER_DEVICES_UPDATES,metaData:{deviceList:e},timestamp:i})}selectedDevice(t,e,i){this.eventHandler.callEvent({event:t===ai.AUDIO&&L.SELECTED_MICROHPONE_UPDATE||t===ai.VIDEO&&L.SELECTED_CAMERA_UPDATE||t===ai.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===ai.AUDIO&&L.AUDIO_PLAY_FAILED||t===ai.VIDEO&&L.VIDEO_PLAY_FAILED,metaData:{deviceType:t},timestamp:e})}mediaTrackMuted(t,e){this.eventHandler.callEvent({event:t===ai.AUDIO&&L.AUDIO_TRACK_MUTED||t===ai.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=q(V({},t),{meetingEnv:this.env}),t.deviceInfo=q(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(q(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([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"registerIceServers",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"registerConsumer",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"registerProducer",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendConsumerSharedMediaStateEvent",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"registerProducingTransport",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"registerConsumingTransport",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"deRegisterConsumer",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"deRegisterProducer",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"disconnectConsumingTransport",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"disconnectProducingTransport",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendPreCallTestBeginEvent",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendScreenShareToggleEvent",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendScreenShareRequestedEvent",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendActiveSpeakerEvent",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"devices",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"selectedDevice",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"mediaPermission",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"mediaPlaybackFailed",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"mediaTrackMuted",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"tabChanged",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"browserBackgrounded",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"browserForegrounded",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"legacySwitch",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"getPreCallTestResults",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendCallJoinBeginEvent",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendNetworkQualityTestBeginEvent",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendWebSocketConnectedEvent",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendTransportConnectedEvent",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendAudioToggleEvent",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendVideoToggleEvent",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendParticipantRoleToggleEvent",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"startPingStats",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"stopPingStats",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendPingStatsEvent",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendIVSPlayerRebufferEvent",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendIVSPlayerAudioBlockEvent",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendIVSPlayerPlaybackBlockedEvent",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendIVSPlayerNetworkUnavailableEvent",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendIVSPlayerInitializedEvent",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendIVSPlayerWorkerErrorEvent",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendIVSPlayerErrorEvent",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendIVSPlayerRecoverableErrorEvent",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendIVSPlayerAnalyticsEvent",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendIVSPlayerPlaybackRateChangedEvent",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendIVSPlayerQualityChanged",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendPlayerLiveLatency",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendDisconnectEvent",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendReconnectEvent",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"expectedVideoResolution",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"expectedScreenshareResolution",null);K=Y([UT(TypeError,(t,e)=>Q.error(e,t))],K);const FT=K;class Jf extends gt{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=Do.PROD,iceServers:s,apiBase:o="https://api.cluster.dyte.in",flags:c,logger:d=console,apiHostnames:l,skipConnectivityChecks:h=!1}){var p,v,S;try{this.peerId=i,this.logger=d,this.ipInformation=yield Qh.getIPDetails({peerId:i,apiHostnames:l,logger:d}),this.backend=new FT(o,r,n,c,d,i,l),this.iceServers=s,(p=this.backend)==null||p.registerIceServers(this.iceServers),this.initialized=!0,(S=(v=this.backend)==null?void 0:v.eventHandler)==null||S.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,S,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":(S=this.backend)==null||S.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)})}}const BT=new Jf;BT.setMaxListeners(30);function WT(){this.__data__=[],this.size=0}function Xo(t,e){return t===e||t!==t&&e!==e}function Sl(t,e){for(var i=t.length;i--;)if(Xo(t[i][0],e))return i;return-1}var jT=Array.prototype,HT=jT.splice;function GT(t){var e=this.__data__,i=Sl(e,t);if(i<0)return!1;var r=e.length-1;return i==r?e.pop():HT.call(e,i,1),--this.size,!0}function qT(t){var e=this.__data__,i=Sl(e,t);return i<0?void 0:e[i][1]}function $T(t){return Sl(this.__data__,t)>-1}function JT(t,e){var i=this.__data__,r=Sl(i,t);return r<0?(++this.size,i.push([t,e])):i[r][1]=e,this}function ur(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])}}ur.prototype.clear=WT;ur.prototype.delete=GT;ur.prototype.get=qT;ur.prototype.has=$T;ur.prototype.set=JT;function KT(){this.__data__=new ur,this.size=0}function zT(t){var e=this.__data__,i=e.delete(t);return this.size=e.size,i}function YT(t){return this.__data__.get(t)}function QT(t){return this.__data__.has(t)}var XT=typeof global=="object"&&global&&global.Object===Object&&global;const Kf=XT;var ZT=typeof self=="object"&&self&&self.Object===Object&&self,ek=Kf||ZT||Function("return this")();const Ii=ek;var tk=Ii.Symbol;const Jr=tk;var zf=Object.prototype,ik=zf.hasOwnProperty,rk=zf.toString,ka=Jr?Jr.toStringTag:void 0;function nk(t){var e=ik.call(t,ka),i=t[ka];try{t[ka]=void 0;var r=!0}catch(s){}var n=rk.call(t);return r&&(e?t[ka]=i:delete t[ka]),n}var sk=Object.prototype,ak=sk.toString;function ok(t){return ak.call(t)}var ck="[object Null]",dk="[object Undefined]",$p=Jr?Jr.toStringTag:void 0;function Bn(t){return t==null?t===void 0?dk:ck:$p&&$p in Object(t)?nk(t):ok(t)}function _i(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}var lk="[object AsyncFunction]",uk="[object Function]",hk="[object GeneratorFunction]",pk="[object Proxy]";function Xh(t){if(!_i(t))return!1;var e=Bn(t);return e==uk||e==hk||e==lk||e==pk}var mk=Ii["__core-js_shared__"];const Bl=mk;var Jp=function(){var t=/[^.]+$/.exec(Bl&&Bl.keys&&Bl.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();function gk(t){return!!Jp&&Jp in t}var fk=Function.prototype,vk=fk.toString;function Wn(t){if(t!=null){try{return vk.call(t)}catch(e){}try{return t+""}catch(e){}}return""}var yk=/[\\^$.*+?()[\]{}|]/g,Sk=/^\[object .+?Constructor\]$/,Tk=Function.prototype,kk=Object.prototype,Ek=Tk.toString,bk=kk.hasOwnProperty,wk=RegExp("^"+Ek.call(bk).replace(yk,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function _k(t){if(!_i(t)||gk(t))return!1;var e=Xh(t)?wk:Sk;return e.test(Wn(t))}function Ik(t,e){return t==null?void 0:t[e]}function jn(t,e){var i=Ik(t,e);return _k(i)?i:void 0}var Ck=jn(Ii,"Map");const zo=Ck;var Pk=jn(Object,"create");const Yo=Pk;function Rk(){this.__data__=Yo?Yo(null):{},this.size=0}function Mk(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}var Ak="__lodash_hash_undefined__",Dk=Object.prototype,Ok=Dk.hasOwnProperty;function Nk(t){var e=this.__data__;if(Yo){var i=e[t];return i===Ak?void 0:i}return Ok.call(e,t)?e[t]:void 0}var Vk=Object.prototype,Lk=Vk.hasOwnProperty;function xk(t){var e=this.__data__;return Yo?e[t]!==void 0:Lk.call(e,t)}var Uk="__lodash_hash_undefined__";function Fk(t,e){var i=this.__data__;return this.size+=this.has(t)?0:1,i[t]=Yo&&e===void 0?Uk:e,this}function Ln(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])}}Ln.prototype.clear=Rk;Ln.prototype.delete=Mk;Ln.prototype.get=Nk;Ln.prototype.has=xk;Ln.prototype.set=Fk;function Bk(){this.size=0,this.__data__={hash:new Ln,map:new(zo||ur),string:new Ln}}function Wk(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}function Tl(t,e){var i=t.__data__;return Wk(e)?i[typeof e=="string"?"string":"hash"]:i.map}function jk(t){var e=Tl(this,t).delete(t);return this.size-=e?1:0,e}function Hk(t){return Tl(this,t).get(t)}function Gk(t){return Tl(this,t).has(t)}function qk(t,e){var i=Tl(this,t),r=i.size;return i.set(t,e),this.size+=i.size==r?0:1,this}function Hn(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])}}Hn.prototype.clear=Bk;Hn.prototype.delete=jk;Hn.prototype.get=Hk;Hn.prototype.has=Gk;Hn.prototype.set=qk;var $k=200;function Jk(t,e){var i=this.__data__;if(i instanceof ur){var r=i.__data__;if(!zo||r.length<$k-1)return r.push([t,e]),this.size=++i.size,this;i=this.__data__=new Hn(r)}return i.set(t,e),this.size=i.size,this}function ji(t){var e=this.__data__=new ur(t);this.size=e.size}ji.prototype.clear=KT;ji.prototype.delete=zT;ji.prototype.get=YT;ji.prototype.has=QT;ji.prototype.set=Jk;function Kk(t,e){for(var i=-1,r=t==null?0:t.length;++i<r&&e(t[i],i,t)!==!1;);return t}var zk=function(){try{var t=jn(Object,"defineProperty");return t({},"",{}),t}catch(e){}}();const Gd=zk;function Zh(t,e,i){e=="__proto__"&&Gd?Gd(t,e,{configurable:!0,enumerable:!0,value:i,writable:!0}):t[e]=i}var Yk=Object.prototype,Qk=Yk.hasOwnProperty;function Yf(t,e,i){var r=t[e];(!(Qk.call(t,e)&&Xo(r,i))||i===void 0&&!(e in t))&&Zh(t,e,i)}function Zo(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?Zh(i,c,d):Yf(i,c,d)}return i}function Xk(t,e){for(var i=-1,r=Array(t);++i<t;)r[i]=e(i);return r}function Hi(t){return t!=null&&typeof t=="object"}var Zk="[object Arguments]";function Kp(t){return Hi(t)&&Bn(t)==Zk}var Qf=Object.prototype,eE=Qf.hasOwnProperty,tE=Qf.propertyIsEnumerable,iE=Kp(function(){return arguments}())?Kp:function(t){return Hi(t)&&eE.call(t,"callee")&&!tE.call(t,"callee")};const qd=iE;var rE=Array.isArray;const Kr=rE;function nE(){return!1}var Xf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,zp=Xf&&typeof module=="object"&&module&&!module.nodeType&&module,sE=zp&&zp.exports===Xf,Yp=sE?Ii.Buffer:void 0,aE=Yp?Yp.isBuffer:void 0,oE=aE||nE;const Ys=oE;var cE=9007199254740991,dE=/^(?:0|[1-9]\d*)$/;function Zf(t,e){var i=typeof t;return e=e==null?cE:e,!!e&&(i=="number"||i!="symbol"&&dE.test(t))&&t>-1&&t%1==0&&t<e}var lE=9007199254740991;function ev(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=lE}var uE="[object Arguments]",hE="[object Array]",pE="[object Boolean]",mE="[object Date]",gE="[object Error]",fE="[object Function]",vE="[object Map]",yE="[object Number]",SE="[object Object]",TE="[object RegExp]",kE="[object Set]",EE="[object String]",bE="[object WeakMap]",wE="[object ArrayBuffer]",_E="[object DataView]",IE="[object Float32Array]",CE="[object Float64Array]",PE="[object Int8Array]",RE="[object Int16Array]",ME="[object Int32Array]",AE="[object Uint8Array]",DE="[object Uint8ClampedArray]",OE="[object Uint16Array]",NE="[object Uint32Array]",_e={};_e[IE]=_e[CE]=_e[PE]=_e[RE]=_e[ME]=_e[AE]=_e[DE]=_e[OE]=_e[NE]=!0;_e[uE]=_e[hE]=_e[wE]=_e[pE]=_e[_E]=_e[mE]=_e[gE]=_e[fE]=_e[vE]=_e[yE]=_e[SE]=_e[TE]=_e[kE]=_e[EE]=_e[bE]=!1;function VE(t){return Hi(t)&&ev(t.length)&&!!_e[Bn(t)]}function ep(t){return function(e){return t(e)}}var tv=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Oo=tv&&typeof module=="object"&&module&&!module.nodeType&&module,LE=Oo&&Oo.exports===tv,Wl=LE&&Kf.process,xE=function(){try{var t=Oo&&Oo.require&&Oo.require("util").types;return t||Wl&&Wl.binding&&Wl.binding("util")}catch(e){}}();const Qs=xE;var Qp=Qs&&Qs.isTypedArray,UE=Qp?ep(Qp):VE;const kl=UE;var FE=Object.prototype,BE=FE.hasOwnProperty;function iv(t,e){var i=Kr(t),r=!i&&qd(t),n=!i&&!r&&Ys(t),s=!i&&!r&&!n&&kl(t),o=i||r||n||s,c=o?Xk(t.length,String):[],d=c.length;for(var l in t)(e||BE.call(t,l))&&!(o&&(l=="length"||n&&(l=="offset"||l=="parent")||s&&(l=="buffer"||l=="byteLength"||l=="byteOffset")||Zf(l,d)))&&c.push(l);return c}var WE=Object.prototype;function El(t){var e=t&&t.constructor,i=typeof e=="function"&&e.prototype||WE;return t===i}function rv(t,e){return function(i){return t(e(i))}}var jE=rv(Object.keys,Object);const HE=jE;var GE=Object.prototype,qE=GE.hasOwnProperty;function nv(t){if(!El(t))return HE(t);var e=[];for(var i in Object(t))qE.call(t,i)&&i!="constructor"&&e.push(i);return e}function ec(t){return t!=null&&ev(t.length)&&!Xh(t)}function tp(t){return ec(t)?iv(t):nv(t)}function $E(t,e){return t&&Zo(e,tp(e),t)}function JE(t){var e=[];if(t!=null)for(var i in Object(t))e.push(i);return e}var KE=Object.prototype,zE=KE.hasOwnProperty;function YE(t){if(!_i(t))return JE(t);var e=El(t),i=[];for(var r in t)r=="constructor"&&(e||!zE.call(t,r))||i.push(r);return i}function tc(t){return ec(t)?iv(t,!0):YE(t)}function QE(t,e){return t&&Zo(e,tc(e),t)}var sv=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Xp=sv&&typeof module=="object"&&module&&!module.nodeType&&module,XE=Xp&&Xp.exports===sv,Zp=XE?Ii.Buffer:void 0,em=Zp?Zp.allocUnsafe:void 0;function av(t,e){if(e)return t.slice();var i=t.length,r=em?em(i):new t.constructor(i);return t.copy(r),r}function ov(t,e){var i=-1,r=t.length;for(e||(e=Array(r));++i<r;)e[i]=t[i];return e}function ZE(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 cv(){return[]}var e0=Object.prototype,t0=e0.propertyIsEnumerable,tm=Object.getOwnPropertySymbols,i0=tm?function(t){return t==null?[]:(t=Object(t),ZE(tm(t),function(e){return t0.call(t,e)}))}:cv;const ip=i0;function r0(t,e){return Zo(t,ip(t),e)}function dv(t,e){for(var i=-1,r=e.length,n=t.length;++i<r;)t[n+i]=e[i];return t}var n0=rv(Object.getPrototypeOf,Object);const rp=n0;var s0=Object.getOwnPropertySymbols,a0=s0?function(t){for(var e=[];t;)dv(e,ip(t)),t=rp(t);return e}:cv;const lv=a0;function o0(t,e){return Zo(t,lv(t),e)}function uv(t,e,i){var r=e(t);return Kr(t)?r:dv(r,i(t))}function Du(t){return uv(t,tp,ip)}function c0(t){return uv(t,tc,lv)}var d0=jn(Ii,"DataView");const Ou=d0;var l0=jn(Ii,"Promise");const Nu=l0;var u0=jn(Ii,"Set");const Vu=u0;var h0=jn(Ii,"WeakMap");const Lu=h0;var im="[object Map]",p0="[object Object]",rm="[object Promise]",nm="[object Set]",sm="[object WeakMap]",am="[object DataView]",m0=Wn(Ou),g0=Wn(zo),f0=Wn(Nu),v0=Wn(Vu),y0=Wn(Lu),un=Bn;(Ou&&un(new Ou(new ArrayBuffer(1)))!=am||zo&&un(new zo)!=im||Nu&&un(Nu.resolve())!=rm||Vu&&un(new Vu)!=nm||Lu&&un(new Lu)!=sm)&&(un=function(t){var e=Bn(t),i=e==p0?t.constructor:void 0,r=i?Wn(i):"";if(r)switch(r){case m0:return am;case g0:return im;case f0:return rm;case v0:return nm;case y0:return sm}return e});const Xs=un;var S0=Object.prototype,T0=S0.hasOwnProperty;function k0(t){var e=t.length,i=new t.constructor(e);return e&&typeof t[0]=="string"&&T0.call(t,"index")&&(i.index=t.index,i.input=t.input),i}var E0=Ii.Uint8Array;const $d=E0;function np(t){var e=new t.constructor(t.byteLength);return new $d(e).set(new $d(t)),e}function b0(t,e){var i=e?np(t.buffer):t.buffer;return new t.constructor(i,t.byteOffset,t.byteLength)}var w0=/\w*$/;function _0(t){var e=new t.constructor(t.source,w0.exec(t));return e.lastIndex=t.lastIndex,e}var om=Jr?Jr.prototype:void 0,cm=om?om.valueOf:void 0;function I0(t){return cm?Object(cm.call(t)):{}}function hv(t,e){var i=e?np(t.buffer):t.buffer;return new t.constructor(i,t.byteOffset,t.length)}var C0="[object Boolean]",P0="[object Date]",R0="[object Map]",M0="[object Number]",A0="[object RegExp]",D0="[object Set]",O0="[object String]",N0="[object Symbol]",V0="[object ArrayBuffer]",L0="[object DataView]",x0="[object Float32Array]",U0="[object Float64Array]",F0="[object Int8Array]",B0="[object Int16Array]",W0="[object Int32Array]",j0="[object Uint8Array]",H0="[object Uint8ClampedArray]",G0="[object Uint16Array]",q0="[object Uint32Array]";function $0(t,e,i){var r=t.constructor;switch(e){case V0:return np(t);case C0:case P0:return new r(+t);case L0:return b0(t,i);case x0:case U0:case F0:case B0:case W0:case j0:case H0:case G0:case q0:return hv(t,i);case R0:return new r;case M0:case O0:return new r(t);case A0:return _0(t);case D0:return new r;case N0:return I0(t)}}var dm=Object.create,J0=function(){function t(){}return function(e){if(!_i(e))return{};if(dm)return dm(e);t.prototype=e;var i=new t;return t.prototype=void 0,i}}();const K0=J0;function pv(t){return typeof t.constructor=="function"&&!El(t)?K0(rp(t)):{}}var z0="[object Map]";function Y0(t){return Hi(t)&&Xs(t)==z0}var lm=Qs&&Qs.isMap,Q0=lm?ep(lm):Y0;const X0=Q0;var Z0="[object Set]";function eb(t){return Hi(t)&&Xs(t)==Z0}var um=Qs&&Qs.isSet,tb=um?ep(um):eb;const ib=tb;var rb=1,nb=2,sb=4,mv="[object Arguments]",ab="[object Array]",ob="[object Boolean]",cb="[object Date]",db="[object Error]",gv="[object Function]",lb="[object GeneratorFunction]",ub="[object Map]",hb="[object Number]",fv="[object Object]",pb="[object RegExp]",mb="[object Set]",gb="[object String]",fb="[object Symbol]",vb="[object WeakMap]",yb="[object ArrayBuffer]",Sb="[object DataView]",Tb="[object Float32Array]",kb="[object Float64Array]",Eb="[object Int8Array]",bb="[object Int16Array]",wb="[object Int32Array]",_b="[object Uint8Array]",Ib="[object Uint8ClampedArray]",Cb="[object Uint16Array]",Pb="[object Uint32Array]",Te={};Te[mv]=Te[ab]=Te[yb]=Te[Sb]=Te[ob]=Te[cb]=Te[Tb]=Te[kb]=Te[Eb]=Te[bb]=Te[wb]=Te[ub]=Te[hb]=Te[fv]=Te[pb]=Te[mb]=Te[gb]=Te[fb]=Te[_b]=Te[Ib]=Te[Cb]=Te[Pb]=!0;Te[db]=Te[gv]=Te[vb]=!1;function Hc(t,e,i,r,n,s){var o,c=e&rb,d=e&nb,l=e&sb;if(i&&(o=n?i(t,r,n,s):i(t)),o!==void 0)return o;if(!_i(t))return t;var h=Kr(t);if(h){if(o=k0(t),!c)return ov(t,o)}else{var p=Xs(t),v=p==gv||p==lb;if(Ys(t))return av(t,c);if(p==fv||p==mv||v&&!n){if(o=d||v?{}:pv(t),!c)return d?o0(t,QE(o,t)):r0(t,$E(o,t))}else{if(!Te[p])return n?t:{};o=$0(t,p,c)}}s||(s=new ji);var S=s.get(t);if(S)return S;s.set(t,o),ib(t)?t.forEach(function(b){o.add(Hc(b,e,i,b,t,s))}):X0(t)&&t.forEach(function(b,M){o.set(M,Hc(b,e,i,M,t,s))});var E=l?d?c0:Du:d?tc:tp,C=h?void 0:E(t);return Kk(C||t,function(b,M){C&&(M=b,b=t[M]),Yf(o,M,Hc(b,e,i,M,t,s))}),o}var Rb=1,Mb=4;function sp(t){return Hc(t,Rb|Mb)}var Ab="[object Symbol]";function Db(t){return typeof t=="symbol"||Hi(t)&&Bn(t)==Ab}var Ob=Object.defineProperty,Nb=(t,e)=>{for(var i in e)Ob(t,i,{get:e[i],enumerable:!0})},Vb={};Nb(Vb,{permissions:()=>Lb,theme:()=>xb});var Ut=(t=>(t.GroupCall="GROUP_CALL",t.Webinar="WEBINAR",t.AudioRoom="AUDIO_ROOM",t.Livestream="LIVESTREAM",t.Chat="CHAT",t))(Ut||{}),G=(t=>(t.Allowed="ALLOWED",t.NotAllowed="NOT_ALLOWED",t.CanRequest="CAN_REQUEST",t))(G||{}),Lb={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},xb={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}},vv="hXgU8Wc8pwuGNq9ms5q9Hh",hm;typeof process!="undefined"&&(hm=process==null?void 0:process.env)!=null&&hm.FLAGSMITH_ENVIRONMENT_KEY&&(vv={}.FLAGSMITH_ENVIRONMENT_KEY);function Ub(t=[]){const e={};return t.forEach(i=>{e[i.feature.name]={enabled:i.enabled,value:i.feature_state_value}}),e}var yv=class{constructor(t=vv){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,S=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(S),!C.ok)throw new Error(`Request failed with status ${C.status}`);const b=yield C.json();return Ub(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}},Fb=new yv;function Bb(t){return new yv(t)}var Sv=[-2,-1,0,1,2],Wb=[0,1,2,3,4];function jb(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 Hb=(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)]},Gb=(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]},qb=(t,e,i)=>{const r=n=>n.toString(16).padStart(2,"0");return`#${r(t)}${r(e)}${r(i)}`},Tv=(t,e=Sv,i=.4)=>{const r=[],[n,s,o]=jb(t),[c,d,l]=Gb(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,S=p+1,E=(100-h)/v,C=h/S;for(const b of e){let M;b<0?M=h+b*C*i:b>0?M=h+b*E*i:M=h;const[j,W,w]=Hb(c,d,M/100);r.push(qb(j,W,w))}return r},pm={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"}},$b=t=>{const[e,i,r,n,s]=Tv(t,Sv);return{300:e,400:i,500:r,600:n,700:s}},Jb=t=>{if(t==="#FFFFFF")return pm.light.background;if(t==="#000000")return pm.dark.background;const[e,i,r,n,s]=Tv(t,Wb);return{1e3:e,900:i,800:r,700:n,600:s}},Kb={border_radius:"rounded",border_width:"thin",spacing_base:4,theme:"dark",colors:{brand:$b("#2160FD"),background:Jb("#141414"),danger:"#FF2D2D",text:"#EEEEEE",text_on_brand:"#EEEEEE",success:"#62A504",video_bg:"#191919",warning:"#FFCD07"}};function kv(){return sp(Kb)}var zb={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:kv(),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 Yb(){return sp(zb)}var Qb={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:kv(),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 ap(){return sp(Qb)}var Gc;class Ev{constructor(){g(this,Gc,void 0)}get telemetry(){var e;return(e=a(this,Gc))==null?void 0:e.getValue("telemetry")}init(e){f(this,Gc,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)}}Gc=new WeakMap;var wr,_r;const bv=class extends gt.EventEmitter{constructor(t){super(),g(this,wr,void 0),g(this,_r,void 0),m(this,"asyncPromiseTimeout"),m(this,"logger"),this.logger=t,f(this,wr,new Map),f(this,_r,new Map),this.asyncPromiseTimeout=8e3}emitAsync(t,...e){return u(this,null,function*(){a(this,wr).set(t,[]);const i=a(this,_r).get(t).map(()=>new Promise(r=>{a(this,wr).get(t).push(r)}));iT(bv.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,wr).delete(t)})}onAsync(t,e){const i=a(this,wr),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,_r).get(t)||a(this,_r).set(t,[]),a(this,_r).get(t).push(r),super.on(t,r)}reset(){f(this,wr,new Map),f(this,_r,new Map),super.removeAllListeners()}};let Xb=bv;wr=new WeakMap,_r=new WeakMap;var Zb=/\s/;function ew(t){for(var e=t.length;e--&&Zb.test(t.charAt(e)););return e}var tw=/^\s+/;function iw(t){return t&&t.slice(0,ew(t)+1).replace(tw,"")}var mm=0/0,rw=/^[-+]0x[0-9a-f]+$/i,nw=/^0b[01]+$/i,sw=/^0o[0-7]+$/i,aw=parseInt;function gm(t){if(typeof t=="number")return t;if(Db(t))return mm;if(_i(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=_i(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=iw(t);var i=nw.test(t);return i||sw.test(t)?aw(t.slice(2),i?2:8):rw.test(t)?mm:+t}function wv(t){return t}function ow(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 cw=800,dw=16,lw=Date.now;function uw(t){var e=0,i=0;return function(){var r=lw(),n=dw-(r-i);if(i=r,n>0){if(++e>=cw)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}function hw(t){return function(){return t}}var pw=Gd?function(t,e){return Gd(t,"toString",{configurable:!0,enumerable:!1,value:hw(e),writable:!0})}:wv;const mw=pw;var gw=uw(mw);const fw=gw;var fm=Math.max;function vw(t,e,i){return e=fm(e===void 0?t.length-1:e,0),function(){for(var r=arguments,n=-1,s=fm(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),ow(t,this,c)}}function yw(t,e){return fw(vw(t,e,wv),t+"")}function Sw(t,e,i){if(!_i(i))return!1;var r=typeof e;return(r=="number"?ec(i)&&Zf(e,i.length):r=="string"&&e in i)?Xo(i[e],t):!1}function Tw(t){return yw(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&&Sw(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 kw="[object Object]",Ew=Function.prototype,bw=Object.prototype,_v=Ew.toString,ww=bw.hasOwnProperty,_w=_v.call(Object);function Iw(t){if(!Hi(t)||Bn(t)!=kw)return!1;var e=rp(t);if(e===null)return!0;var i=ww.call(e,"constructor")&&e.constructor;return typeof i=="function"&&i instanceof i&&_v.call(i)==_w}var Cw="__lodash_hash_undefined__";function Pw(t){return this.__data__.set(t,Cw),this}function Rw(t){return this.__data__.has(t)}function Jd(t){var e=-1,i=t==null?0:t.length;for(this.__data__=new Hn;++e<i;)this.add(t[e])}Jd.prototype.add=Jd.prototype.push=Pw;Jd.prototype.has=Rw;function Mw(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 Aw(t,e){return t.has(e)}var Dw=1,Ow=2;function Iv(t,e,i,r,n,s){var o=i&Dw,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,S=i&Ow?new Jd: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(S){if(!Mw(e,function(M,j){if(!Aw(S,j)&&(E===M||n(E,M,i,r,s)))return S.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 Nw(t){var e=-1,i=Array(t.size);return t.forEach(function(r,n){i[++e]=[n,r]}),i}function Vw(t){var e=-1,i=Array(t.size);return t.forEach(function(r){i[++e]=r}),i}var Lw=1,xw=2,Uw="[object Boolean]",Fw="[object Date]",Bw="[object Error]",Ww="[object Map]",jw="[object Number]",Hw="[object RegExp]",Gw="[object Set]",qw="[object String]",$w="[object Symbol]",Jw="[object ArrayBuffer]",Kw="[object DataView]",vm=Jr?Jr.prototype:void 0,jl=vm?vm.valueOf:void 0;function zw(t,e,i,r,n,s,o){switch(i){case Kw:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case Jw:return!(t.byteLength!=e.byteLength||!s(new $d(t),new $d(e)));case Uw:case Fw:case jw:return Xo(+t,+e);case Bw:return t.name==e.name&&t.message==e.message;case Hw:case qw:return t==e+"";case Ww:var c=Nw;case Gw:var d=r&Lw;if(c||(c=Vw),t.size!=e.size&&!d)return!1;var l=o.get(t);if(l)return l==e;r|=xw,o.set(t,e);var h=Iv(c(t),c(e),r,n,s,o);return o.delete(t),h;case $w:if(jl)return jl.call(t)==jl.call(e)}return!1}var Yw=1,Qw=Object.prototype,Xw=Qw.hasOwnProperty;function Zw(t,e,i,r,n,s){var o=i&Yw,c=Du(t),d=c.length,l=Du(e),h=l.length;if(d!=h&&!o)return!1;for(var p=d;p--;){var v=c[p];if(!(o?v in e:Xw.call(e,v)))return!1}var S=s.get(t),E=s.get(e);if(S&&E)return S==e&&E==t;var C=!0;s.set(t,e),s.set(e,t);for(var b=o;++p<d;){v=c[p];var M=t[v],j=e[v];if(r)var W=o?r(j,M,v,e,t,s):r(M,j,v,t,e,s);if(!(W===void 0?M===j||n(M,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 e_=1,ym="[object Arguments]",Sm="[object Array]",pc="[object Object]",t_=Object.prototype,Tm=t_.hasOwnProperty;function i_(t,e,i,r,n,s){var o=Kr(t),c=Kr(e),d=o?Sm:Xs(t),l=c?Sm:Xs(e);d=d==ym?pc:d,l=l==ym?pc:l;var h=d==pc,p=l==pc,v=d==l;if(v&&Ys(t)){if(!Ys(e))return!1;o=!0,h=!1}if(v&&!h)return s||(s=new ji),o||kl(t)?Iv(t,e,i,r,n,s):zw(t,e,d,i,r,n,s);if(!(i&e_)){var S=h&&Tm.call(t,"__wrapped__"),E=p&&Tm.call(e,"__wrapped__");if(S||E){var C=S?t.value():t,b=E?e.value():e;return s||(s=new ji),n(C,b,i,r,s)}}return v?(s||(s=new ji),Zw(t,e,i,r,n,s)):!1}function Cv(t,e,i,r,n){return t===e?!0:t==null||e==null||!Hi(t)&&!Hi(e)?t!==t&&e!==e:i_(t,e,i,r,Cv,n)}function r_(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 n_=r_();const s_=n_;var a_=function(){return Ii.Date.now()};const Hl=a_;var o_="Expected a function",c_=Math.max,d_=Math.min;function op(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(o_);e=gm(e)||0,_i(i)&&(h=!!i.leading,p="maxWait"in i,s=p?c_(gm(i.maxWait)||0,e):s,v="trailing"in i?!!i.trailing:v);function S(ie){var ae=r,Me=n;return r=n=void 0,l=ie,o=t.apply(Me,ae),o}function E(ie){return l=ie,c=setTimeout(M,e),h?S(ie):o}function C(ie){var ae=ie-d,Me=ie-l,Xe=e-ae;return p?d_(Xe,s-Me):Xe}function b(ie){var ae=ie-d,Me=ie-l;return d===void 0||ae>=e||ae<0||p&&Me>=s}function M(){var ie=Hl();if(b(ie))return j(ie);c=setTimeout(M,C(ie))}function j(ie){return c=void 0,v&&r?S(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(Hl())}function te(){var ie=Hl(),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(M,e),S(d)}return c===void 0&&(c=setTimeout(M,e)),o}return te.cancel=W,te.flush=w,te}function xu(t,e,i){(i!==void 0&&!Xo(t[e],i)||i===void 0&&!(e in t))&&Zh(t,e,i)}function l_(t){return Hi(t)&&ec(t)}function Uu(t,e){if(!(e==="constructor"&&typeof t[e]=="function")&&e!="__proto__")return t[e]}function u_(t){return Zo(t,tc(t))}function h_(t,e,i,r,n,s,o){var c=Uu(t,i),d=Uu(e,i),l=o.get(d);if(l){xu(t,i,l);return}var h=s?s(c,d,i+"",t,e,o):void 0,p=h===void 0;if(p){var v=Kr(d),S=!v&&Ys(d),E=!v&&!S&&kl(d);h=d,v||S||E?Kr(c)?h=c:l_(c)?h=ov(c):S?(p=!1,h=av(d,!0)):E?(p=!1,h=hv(d,!0)):h=[]:Iw(d)||qd(d)?(h=c,qd(c)?h=u_(c):(!_i(c)||Xh(c))&&(h=pv(d))):p=!1}p&&(o.set(d,h),n(h,d,r,s,o),o.delete(d)),xu(t,i,h)}function Pv(t,e,i,r,n){t!==e&&s_(e,function(s,o){if(n||(n=new ji),_i(s))h_(t,e,o,i,Pv,r,n);else{var c=r?r(Uu(t,o),s,o+"",t,e,n):void 0;c===void 0&&(c=s),xu(t,o,c)}},tc)}var p_="[object Map]",m_="[object Set]",g_=Object.prototype,f_=g_.hasOwnProperty;function v_(t){if(t==null)return!0;if(ec(t)&&(Kr(t)||typeof t=="string"||typeof t.splice=="function"||Ys(t)||kl(t)||qd(t)))return!t.length;var e=Xs(t);if(e==p_||e==m_)return!t.size;if(El(t))return!nv(t).length;for(var i in t)if(f_.call(t,i))return!1;return!0}function y_(t,e){return Cv(t,e)}var S_=Tw(function(t,e,i){Pv(t,e,i)});const Ir=S_;var Fu=(t=>(t.PARTICIPANT="PARTICIPANT",t.PEER="PEER",t.CLIENT="CLIENT",t))(Fu||{});const X={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"};function qc(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 T_(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 k_(t,e){var i;if(t!=null&&t.getValue("flagsmith").hasFeature(X.LOG_LEVEL)){let r=((i=t.getValue("flagsmith").getValue(X.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 Rv(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"?Rv(t[r],s,i):["number","string","boolean"].includes(typeof t[r])&&(i[s]=t[r])}),i}function km(t,e,i={},r=""){const n={};try{const s=JSON.stringify(i),o=JSON.parse(s),c=Rv(o,r),d=JSON.stringify(c);return JSON.parse(d)}catch(s){const o=qc(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 E_={audio:!0,video:!0,screenshareAudio:!0,screenshareVideo:!0},Ea={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"},b_={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 Zs(t,e){const i=t.getValue("overrides");return i&&i[e]?i[e]:!1}function w_({baseURI:t}){return t.includes("preprod.dyte")||t.includes("preprod.realtime")?Do.PREPROD:t.includes("devel.dyte")||t.includes("devel.realtime")?Do.DEVEL:Do.PROD}function On({servicePrefix:t,baseURI:e}){return`${t}.${e}`}function Mv(t){const e=t.getValue("baseURI");return{location:On({servicePrefix:"location",baseURI:e}),locationLegacy:On({servicePrefix:"location-legacy",baseURI:e}),daCollector:On({servicePrefix:"da-collector",baseURI:e.replace("realtime.cloudflare.com","dyte.io")})}}const __='<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>',I_='<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>',mc=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})},Av=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=sr.getContext(this.meetingMetadata.peerId);return`https://${On({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"),this.meetingMetadata.deviceInfo=Ie.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=sr.getContext(d.meetingMetadata.peerId))!=null&&c.getValue("flagsmith").hasFeature(X.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:Av.location.country})}).catch(()=>{const p=performance.now();d.addLogInCurrentSpan("info",`${t}_timing`,{execTime:p-l})}),h},n}}injectContext(t){var e;const i=Vn().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:qc(i.error)});const n=sr.getContext(this.meetingMetadata.peerId);if(T_(n)&&(v_(i)?console[t]("DyteInternalLogs:: ",t,e):console[t]("DyteInternalLogs:: ",t,e,i)),!!k_(n,t))try{const s=km(n,e,i,"metadata"),o=new Date,c=q(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:qc(s)})}}sendOtelLogsToNewRelic(t){const e=sr.getContext(this.meetingMetadata.peerId);fetch(this.logsEndpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({meetingMetadata:km(e,"sendOtelLogsToNewRelic",this.meetingMetadata,"meetingMetadata"),serviceName:e.getValue("sdkName"),logs:t})}).catch(i=>{this.addLogInCurrentSpan("error","opentelemetry::sendOtelLogToNewRelic_failed",{error:qc(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 k=Av;m(k,"location",{country:void 0});function C_(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 P_{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 k,n=new Ev;this.contexts.set(e,C_(i)),this.contexts.get(e).setValue("peerSessionStore",new Xb(n));const s=new Jf;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",Bb()),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 sr=new P_,R_={"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"},$c={"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($c).forEach(t=>{$c[t]=`{${R_[t.slice(0,2)]}} ${$c[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}]: ${$c[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 Hf extends gt{constructor(e){super(),m(this,"call"),m(this,"timeOut"),this.call=new cr(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 RT=8,MT=1/1e3;class AT extends Hf{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(cr.isNotHostCandidate),this.senderChannel=this.call.pc1.createDataChannel(null);for(let i=0;i<1024*256;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)*RT/(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*MT)})}}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 Yh extends Hf{constructor(e,i=cr.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 DT extends Yh{constructor(e){super(e,cr.isHost)}}class OT extends Yh{constructor(e){super(e,cr.isRelay)}}class NT extends Yh{constructor(e){super(e,cr.isReflexive)}}class VT{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=qr(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=qr(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 Qh=new VT,Hp=[{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 Gp(t){const[e,i]=t.split(",");return{coords:{latitude:Number(e),longitude:Number(i)}}}class Gf{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 qf extends gt{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 gt}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,S,E,C,b,M,j;const W=e,w=new Gf,te=i.length?new Set(i):void 0,ie=[],ae=[],Me=[],Xe=new Map,Wt=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:T}=A,{selected:_}=A,B=A,oe={nominated:T!=null?T:_,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};Me.push(oe),(A.nominated===!0||A.selected===!0)&&(w.candidatePair=oe);break}case"transport":{const T=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:T.bytesReceived,bytesSent:T.bytesSent,packetsSent:T.packetsSent,packetsReceived:T.packetsReceived,dtlsCipher:T.dtlsCipher,dtlsState:T.dtlsState,iceRole:T.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 T=A,_={jitter:T.jitter,fractionLost:T.fractionLost,roundTripTime:T.roundTripTime,roundTripTimeMeasurements:T.roundTripTimeMeasurements,totalRoundTripTime:T.totalRoundTripTime,packetsLost:T.packetsLost};w.remoteInboundRtp.set(T.localId,_);break}case"outbound-rtp":{const T=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 oe=this.overallProducersStatsMap[_];if(["video","audio"].includes(T.mediaType)||["video","audio"].includes(T.kind)){if(!this.outboundProducerMap.has(A.id)){w.staleProducerStreamMap=!0;break}const He=this.callStatsInstance.producers.get(_);if(((o=He==null?void 0:He.track)==null?void 0:o.readyState)==="ended")break;w.producerStreamMap.has(_)||w.producerStreamMap.set(_,{outboundVideoRtpId:[],outboundAudioRtpId:[]});const x={bytesSent:T.bytesSent,packetsSent:T.packetsSent,nackCount:T.nackCount,ssrc:T.ssrc,mid:T.mid,active:T.active,codecId:T.codecId,headerBytesSent:T.headerBytesSent||0,totalPacketSendDelay:T.totalPacketSendDelay||0};if(T.mediaType==="video"||T.kind==="video"){const P=T,ce=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,ce),w.producerStreamMap.get(_).outboundVideoRtpId.push(A.id),this.processOutboundProducerVideoStats(_,oe,ce)}else if(T.mediaType==="audio"||T.kind==="audio"){const P=T,ce=V({retransmittedBytesSent:P.retransmittedBytesSent,retransmittedPacketsSent:P.retransmittedPacketsSent},x);w.outboundAudioRtp.set(A.id,ce),w.producerStreamMap.get(_).outboundAudioRtpId.push(A.id),this.processOutboundProducerAudioStats(_,oe,ce)}}else this.callStatsInstance.logger.error(`Callstats: Unknown Outbound-rtp. mediatype: ${T.mediaType} kind: ${T.kind}`);break}case"inbound-rtp":{const T=A,_=n||this.inboundConsumerMap.get(A.id),B=this.pausedConsumerMap.get(_);if(B){if(B.lastReportCalculated===!0)break;this.pausedConsumerMap.set(_,{lastReportCalculated:!0})}if(T.ssrc===1234)break;this.overallConsumersStatsMap[_]||(this.overallConsumersStatsMap[_]={totalVideoPacketsReceived:0,totalAudioPacketsReceived:0});const oe=this.overallConsumersStatsMap[_];if(["video","audio"].includes(T.mediaType)||["video","audio"].includes(T.kind)){if(!this.inboundConsumerMap.has(A.id)){w.staleConsumerStreamMap=!0;break}w.consumerStreamMap.has(_)||w.consumerStreamMap.set(_,{inboundVideoRtpId:[],inboundAudioRtpId:[]});const He={bytesReceived:T.bytesReceived,packetsReceived:T.packetsReceived,packetsLost:T.packetsLost>=0?T.packetsLost:0,jitter:T.jitter,nackCount:T.nackCount,jitterBufferDelay:T.jitterBufferDelay,jitterBufferEmittedCount:T.jitterBufferEmittedCount,lastPacketReceivedTimestamp:T.lastPacketReceivedTimestamp,ssrc:T.ssrc,mid:T.mid,codecId:T.codecId,headerBytesReceived:T.headerBytesReceived||0,packetsDiscarded:T.packetsDiscarded||0,jitterBufferMinimumDelay:T.jitterBufferMinimumDelay||0,jitterBufferTargetDelay:T.jitterBufferTargetDelay||0};if(T.mediaType==="video"||T.kind==="video"){const x=T,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},He);P.score=jf({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(_)}),Wt.set(_,{score:+(P.score*10).toFixed(),frameWidth:P.frameWidth||0,frameHeight:P.frameHeight||0,framesPerSecond:P.framesPerSecond||0,packetsLostPercentage:jd({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(_,oe,P)}else if(T.mediaType==="audio"||T.kind==="audio"){const x=T,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},He);P.score=Wf({concealmentEvents:(P.concealmentEvents||0)-(((S=this.audioConsumerToStatsMap.get(_))==null?void 0:S.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}),Wt.set(_,{score:+(P.score*10).toFixed(),packetsLostPercentage:jd({packetsLost:(P.packetsLost||0)-(((b=this.audioConsumerToStatsMap.get(_))==null?void 0:b.packetsLost)||0),packetsReceived:(P.packetsReceived||0)-(((M=this.audioConsumerToStatsMap.get(_))==null?void 0:M.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(_,oe,P)}}else this.callStatsInstance.logger.error(`Callstats: Unknown Inbound-rtp. mediatype: ${T.mediaType} kind: ${T.kind}`);break}}}if(w.producerStreamMap.forEach((A,T)=>{var _,B,oe,He,x,P,ce,Xr,Zr,Gi,oa,ca,da,la,ua,ha,pa,ma,ga,fa,va,ya,Sa;if(A.outboundVideoRtpId.length>0){const ge=[];A.outboundVideoRtpId.forEach(Vl=>{ge.push(w.outboundVideoRtp.get(Vl))});const ne=this.getWorkingSimulcastVideoStats(ge);ne.score=Ff({frameWidth:ne.frameWidth||0,framesPerSecond:ne.framesPerSecond||0,jitter:((_=ne.remoteData)==null?void 0:_.jitter)||0,isScreenShare:this.screenShareProducers.has(T),packetsSent:(ne.packetsSent||0)-(((B=this.videoProducerToStatsMap.get(T))==null?void 0:B.packetsSent)||0),packetsLost:(((oe=ne.remoteData)==null?void 0:oe.packetsLost)||0)-(((x=(He=this.videoProducerToStatsMap.get(T))==null?void 0:He.remoteData)==null?void 0:x.packetsLost)||0),framesEncoded:(ne.framesEncoded||0)-(((P=this.videoProducerToStatsMap.get(T))==null?void 0:P.framesEncoded)||0)}),Xe.set(T,{score:+(ne.score*10).toFixed(),frameWidth:ne.frameWidth||0,frameHeight:ne.frameHeight||0,framesPerSecond:ne.framesPerSecond||0,jitter:((ce=ne.remoteData)==null?void 0:ce.jitter)||0,isScreenShare:this.screenShareProducers.has(T),packetsLostPercentage:Wd({packetsSent:(ne.packetsSent||0)-(((Xr=this.videoProducerToStatsMap.get(T))==null?void 0:Xr.packetsSent)||0),packetsLost:(((Zr=ne.remoteData)==null?void 0:Zr.packetsLost)||0)-(((oa=(Gi=this.videoProducerToStatsMap.get(T))==null?void 0:Gi.remoteData)==null?void 0:oa.packetsLost)||0)}),bitrate:((ne.bytesSent||0)-(((ca=this.videoProducerToStatsMap.get(T))==null?void 0:ca.bytesSent)||0))*8/7,cpuLimitations:ne.qualityLimitationReason==="cpu",bandwidthLimitations:ne.qualityLimitationReason==="bandwidth"}),this.videoProducerToStatsMap.set(T,ne)}else if(A.outboundAudioRtpId.length>0){const ge=w.outboundAudioRtp.get(A.outboundAudioRtpId[0]);ge.score=Uf({packetsSent:(ge.packetsSent||0)-(((da=this.audioProducerToStatsMap.get(T))==null?void 0:da.packetsSent)||0),packetsLost:(((la=ge.remoteData)==null?void 0:la.packetsLost)||0)-(((ha=(ua=this.audioProducerToStatsMap.get(T))==null?void 0:ua.remoteData)==null?void 0:ha.packetsLost)||0),jitter:((pa=ge.remoteData)==null?void 0:pa.jitter)||0}),Xe.set(T,{score:+(ge.score*10).toFixed(),bitrate:((ge.bytesSent||0)-(((ma=this.audioProducerToStatsMap.get(T))==null?void 0:ma.bytesSent)||0))*8/7,packetsLostPercentage:Wd({packetsSent:(ge.packetsSent||0)-(((ga=this.audioProducerToStatsMap.get(T))==null?void 0:ga.packetsSent)||0),packetsLost:(((fa=ge.remoteData)==null?void 0:fa.packetsLost)||0)-(((ya=(va=this.audioProducerToStatsMap.get(T))==null?void 0:va.remoteData)==null?void 0:ya.packetsLost)||0)}),jitter:((Sa=ge.remoteData)==null?void 0:Sa.jitter)||0,isScreenShare:this.screenShareProducers.has(T)}),this.audioProducerToStatsMap.set(T,ge)}}),Me.forEach(A=>{const T=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);T&&(A.localCandidateType=T.type,A.localCandidateAddress=qr(T.address),A.localCandidatePort=T.port,A.localCandidateProtocol=T.protocol,A.localCandidateUrl=T.url,A.localCandidateNetworkType=T.networkType,A.localCandidateRelatedAddress=qr(T.relatedAddress),A.localCandidateRelatedPort=T.relatedPort),_&&(A.remoteCandidateType=_.type,A.remoteCandidateAddress=qr(_.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=Me),w.transport&&!w.transport.roundTripTime){let A=0,T=0;w.remoteInboundRtp.forEach((_,B)=>{_.roundTripTime&&_.roundTripTime>A&&(A=_.roundTripTime,T=_.totalRoundTripTime)}),w.transport.roundTripTime=A,w.transport.totalRoundTripTime=T}if(Wt.size>0)try{this.observer.emit("consumer_score",Wt)}catch(A){}if(Xe.size>0)try{this.observer.emit("producer_score",Xe)}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||Hp},r=new Promise((l,h)=>{try{const p=new DT(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 OT(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 NT(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||Hp},o=new AT(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 Qh.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?Gp(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?Gp(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 LT extends qf{}class $f extends qf{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,S,E,C,b,M,j;const W=e,w=new Gf,te=i.length?new Set(i):void 0,ie=[],ae=[],Me=[],Xe=new Map,Wt=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:T}=A,{selected:_}=A,B=A,oe={nominated:T!=null?T:_,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};Me.push(oe),(A.nominated===!0||A.selected===!0)&&(w.candidatePair=oe);break}case"transport":{const T=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:T.bytesReceived,bytesSent:T.bytesSent,packetsSent:T.packetsSent,packetsReceived:T.packetsReceived,dtlsCipher:T.dtlsCipher,dtlsState:T.dtlsState,iceRole:T.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 T=A,_={jitter:T.jitter,fractionLost:T.fractionLost,roundTripTime:T.roundTripTime,roundTripTimeMeasurements:T.roundTripTimeMeasurements,totalRoundTripTime:T.totalRoundTripTime,packetsLost:T.packetsLost};w.remoteInboundRtp.set(T.localId,_);break}case"outbound-rtp":{const T=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 oe=this.overallProducersStatsMap[_];if(["video","audio"].includes(T.mediaType)||["video","audio"].includes(T.kind)){if(!this.outboundProducerMap.has(A.id)){w.staleProducerStreamMap=!0;break}const He=this.callStatsInstance.producers.get(_);if(((o=He==null?void 0:He.track)==null?void 0:o.readyState)==="ended")break;w.producerStreamMap.has(_)||w.producerStreamMap.set(_,{outboundVideoRtpId:[],outboundAudioRtpId:[]});const x={bytesSent:T.bytesSent,packetsSent:T.packetsSent,nackCount:T.nackCount,ssrc:T.ssrc,mid:T.mid,active:T.active,codecId:T.codecId,headerBytesSent:T.headerBytesSent||0,totalPacketSendDelay:T.totalPacketSendDelay||0};if(T.mediaType==="video"||T.kind==="video"){const P=T,ce=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,ce),w.producerStreamMap.get(_).outboundVideoRtpId.push(A.id),this.processOutboundProducerVideoStats(_,oe,ce)}else if(T.mediaType==="audio"||T.kind==="audio"){const P=T,ce=V({retransmittedBytesSent:P.retransmittedBytesSent,retransmittedPacketsSent:P.retransmittedPacketsSent},x);w.outboundAudioRtp.set(A.id,ce),w.producerStreamMap.get(_).outboundAudioRtpId.push(A.id),this.processOutboundProducerAudioStats(_,oe,ce)}}else this.callStatsInstance.logger.error(`Callstats: Unknown Outbound-rtp. mediatype: ${T.mediaType} kind: ${T.kind}`);break}case"inbound-rtp":{const T=A,_=n||this.inboundConsumerMap.get(A.id),B=this.pausedConsumerMap.get(_);if(B){if(B.lastReportCalculated===!0)break;this.pausedConsumerMap.set(_,{lastReportCalculated:!0})}if(T.ssrc===1234)break;this.overallConsumersStatsMap[_]||(this.overallConsumersStatsMap[_]={totalVideoPacketsReceived:0,totalAudioPacketsReceived:0});const oe=this.overallConsumersStatsMap[_];if(["video","audio"].includes(T.mediaType)||["video","audio"].includes(T.kind)){if(!this.inboundConsumerMap.has(A.id)){w.staleConsumerStreamMap=!0;break}w.consumerStreamMap.has(_)||w.consumerStreamMap.set(_,{inboundVideoRtpId:[],inboundAudioRtpId:[]});const He={bytesReceived:T.bytesReceived,packetsReceived:T.packetsReceived,packetsLost:T.packetsLost>=0?T.packetsLost:0,jitter:T.jitter,nackCount:T.nackCount,jitterBufferDelay:T.jitterBufferDelay,jitterBufferEmittedCount:T.jitterBufferEmittedCount,lastPacketReceivedTimestamp:T.lastPacketReceivedTimestamp,ssrc:T.ssrc,mid:T.mid,codecId:T.codecId,headerBytesReceived:T.headerBytesReceived||0,packetsDiscarded:T.packetsDiscarded||0,jitterBufferMinimumDelay:T.jitterBufferMinimumDelay||0,jitterBufferTargetDelay:T.jitterBufferTargetDelay||0};if(T.mediaType==="video"||T.kind==="video"){const x=T,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},He);P.score=jf({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(_)}),Wt.set(_,{score:+(P.score*10).toFixed(),frameWidth:P.frameWidth||0,frameHeight:P.frameHeight||0,framesPerSecond:P.framesPerSecond||0,packetsLostPercentage:jd({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(_,oe,P)}else if(T.mediaType==="audio"||T.kind==="audio"){const x=T,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},He);P.score=Wf({concealmentEvents:(P.concealmentEvents||0)-(((S=this.audioConsumerToStatsMap.get(_))==null?void 0:S.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}),Wt.set(_,{score:+(P.score*10).toFixed(),packetsLostPercentage:jd({packetsLost:(P.packetsLost||0)-(((b=this.audioConsumerToStatsMap.get(_))==null?void 0:b.packetsLost)||0),packetsReceived:(P.packetsReceived||0)-(((M=this.audioConsumerToStatsMap.get(_))==null?void 0:M.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(_,oe,P)}}else this.callStatsInstance.logger.error(`Callstats: Unknown Inbound-rtp. mediatype: ${T.mediaType} kind: ${T.kind}`);break}}}if(w.producerStreamMap.forEach((A,T)=>{var _,B,oe,He,x,P,ce,Xr,Zr,Gi,oa,ca,da,la,ua,ha,pa,ma,ga,fa,va,ya,Sa;if(A.outboundVideoRtpId.length>0){const ge=[];A.outboundVideoRtpId.forEach(Vl=>{ge.push(w.outboundVideoRtp.get(Vl))});const ne=this.getWorkingSimulcastVideoStats(ge);ne.score=Ff({frameWidth:ne.frameWidth||0,framesPerSecond:ne.framesPerSecond||0,jitter:((_=ne.remoteData)==null?void 0:_.jitter)||0,isScreenShare:this.screenShareProducers.has(T),packetsSent:(ne.packetsSent||0)-(((B=this.videoProducerToStatsMap.get(T))==null?void 0:B.packetsSent)||0),packetsLost:(((oe=ne.remoteData)==null?void 0:oe.packetsLost)||0)-(((x=(He=this.videoProducerToStatsMap.get(T))==null?void 0:He.remoteData)==null?void 0:x.packetsLost)||0),framesEncoded:(ne.framesEncoded||0)-(((P=this.videoProducerToStatsMap.get(T))==null?void 0:P.framesEncoded)||0)}),Xe.set(T,{score:+(ne.score*10).toFixed(),frameWidth:ne.frameWidth||0,frameHeight:ne.frameHeight||0,framesPerSecond:ne.framesPerSecond||0,jitter:((ce=ne.remoteData)==null?void 0:ce.jitter)||0,isScreenShare:this.screenShareProducers.has(T),packetsLostPercentage:Wd({packetsSent:(ne.packetsSent||0)-(((Xr=this.videoProducerToStatsMap.get(T))==null?void 0:Xr.packetsSent)||0),packetsLost:(((Zr=ne.remoteData)==null?void 0:Zr.packetsLost)||0)-(((oa=(Gi=this.videoProducerToStatsMap.get(T))==null?void 0:Gi.remoteData)==null?void 0:oa.packetsLost)||0)}),bitrate:((ne.bytesSent||0)-(((ca=this.videoProducerToStatsMap.get(T))==null?void 0:ca.bytesSent)||0))*8/7,cpuLimitations:ne.qualityLimitationReason==="cpu",bandwidthLimitations:ne.qualityLimitationReason==="bandwidth"}),this.videoProducerToStatsMap.set(T,ne)}else if(A.outboundAudioRtpId.length>0){const ge=w.outboundAudioRtp.get(A.outboundAudioRtpId[0]);ge.score=Uf({packetsSent:(ge.packetsSent||0)-(((da=this.audioProducerToStatsMap.get(T))==null?void 0:da.packetsSent)||0),packetsLost:(((la=ge.remoteData)==null?void 0:la.packetsLost)||0)-(((ha=(ua=this.audioProducerToStatsMap.get(T))==null?void 0:ua.remoteData)==null?void 0:ha.packetsLost)||0),jitter:((pa=ge.remoteData)==null?void 0:pa.jitter)||0}),Xe.set(T,{score:+(ge.score*10).toFixed(),bitrate:((ge.bytesSent||0)-(((ma=this.audioProducerToStatsMap.get(T))==null?void 0:ma.bytesSent)||0))*8/7,packetsLostPercentage:Wd({packetsSent:(ge.packetsSent||0)-(((ga=this.audioProducerToStatsMap.get(T))==null?void 0:ga.packetsSent)||0),packetsLost:(((fa=ge.remoteData)==null?void 0:fa.packetsLost)||0)-(((ya=(va=this.audioProducerToStatsMap.get(T))==null?void 0:va.remoteData)==null?void 0:ya.packetsLost)||0)}),jitter:((Sa=ge.remoteData)==null?void 0:Sa.jitter)||0,isScreenShare:this.screenShareProducers.has(T)}),this.audioProducerToStatsMap.set(T,ge)}}),Me.forEach(A=>{const T=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);T&&(A.localCandidateType=T.type,A.localCandidateAddress=qr(T.address),A.localCandidatePort=T.port,A.localCandidateProtocol=T.protocol,A.localCandidateUrl=T.url,A.localCandidateNetworkType=T.networkType,A.localCandidateRelatedAddress=qr(T.relatedAddress),A.localCandidateRelatedPort=T.relatedPort),_&&(A.remoteCandidateType=_.type,A.remoteCandidateAddress=qr(_.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=Me),w.transport&&!w.transport.roundTripTime){let A=0,T=0;w.remoteInboundRtp.forEach((_,B)=>{_.roundTripTime&&_.roundTripTime>A&&(A=_.roundTripTime,T=_.totalRoundTripTime)}),w.transport.roundTripTime=A,w.transport.totalRoundTripTime=T}if(Wt.size>0)try{this.observer.emit("consumer_score",Wt)}catch(A){}if(Xe.size>0)try{this.observer.emit("producer_score",Xe)}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 xT extends $f{}function Hd(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 qp(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=>{Hd(this,e,i,o)}):s}catch(s){Hd(this,e,i,s)}return null},t}const Z=(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=>{Hd(this,t,e,d)}):c}catch(c){Hd(this,t,e,c)}return null},n},UT=(t,e)=>(i,r,n)=>{if(n)return qp(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,qp(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 gt{constructor(t="https://api.testingv3.dyte.in",e="Blink",i=Do.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 ET({logger:n,peerId:s,apiHostnames:o}),this.logger.debug("callStats::engineName: ",{engineName:e}),e){case"Blink":this.measurements=new LT;break;case"Gecko":this.measurements=new $f;break;case"WebKit":this.measurements=new xT;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 gt,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===ai.AUDIO&&L.AUDIO_DEVICES_UPDATES||t===ai.VIDEO&&L.VIDEO_DEVICES_UPDATES||t===ai.SPEAKER&&L.SPEAKER_DEVICES_UPDATES,metaData:{deviceList:e},timestamp:i})}selectedDevice(t,e,i){this.eventHandler.callEvent({event:t===ai.AUDIO&&L.SELECTED_MICROHPONE_UPDATE||t===ai.VIDEO&&L.SELECTED_CAMERA_UPDATE||t===ai.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===ai.AUDIO&&L.AUDIO_PLAY_FAILED||t===ai.VIDEO&&L.VIDEO_PLAY_FAILED,metaData:{deviceType:t},timestamp:e})}mediaTrackMuted(t,e){this.eventHandler.callEvent({event:t===ai.AUDIO&&L.AUDIO_TRACK_MUTED||t===ai.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=q(V({},t),{meetingEnv:this.env}),t.deviceInfo=q(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(q(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([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"registerIceServers",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"registerConsumer",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"registerProducer",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendConsumerSharedMediaStateEvent",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"registerProducingTransport",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"registerConsumingTransport",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"deRegisterConsumer",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"deRegisterProducer",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"disconnectConsumingTransport",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"disconnectProducingTransport",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendPreCallTestBeginEvent",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendScreenShareToggleEvent",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendScreenShareRequestedEvent",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendActiveSpeakerEvent",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"devices",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"selectedDevice",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"mediaPermission",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"mediaPlaybackFailed",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"mediaTrackMuted",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"tabChanged",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"browserBackgrounded",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"browserForegrounded",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"legacySwitch",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"getPreCallTestResults",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendCallJoinBeginEvent",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendNetworkQualityTestBeginEvent",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendWebSocketConnectedEvent",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendTransportConnectedEvent",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendAudioToggleEvent",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendVideoToggleEvent",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendParticipantRoleToggleEvent",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"startPingStats",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"stopPingStats",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendPingStatsEvent",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendIVSPlayerRebufferEvent",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendIVSPlayerAudioBlockEvent",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendIVSPlayerPlaybackBlockedEvent",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendIVSPlayerNetworkUnavailableEvent",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendIVSPlayerInitializedEvent",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendIVSPlayerWorkerErrorEvent",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendIVSPlayerErrorEvent",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendIVSPlayerRecoverableErrorEvent",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendIVSPlayerAnalyticsEvent",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendIVSPlayerPlaybackRateChangedEvent",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendIVSPlayerQualityChanged",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendPlayerLiveLatency",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendDisconnectEvent",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"sendReconnectEvent",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"expectedVideoResolution",null);Y([Z(TypeError,(t,e)=>Q.error(e,t))],K.prototype,"expectedScreenshareResolution",null);K=Y([UT(TypeError,(t,e)=>Q.error(e,t))],K);const FT=K;class Jf extends gt{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=Do.PROD,iceServers:s,apiBase:o="https://api.cluster.dyte.in",flags:c,logger:d=console,apiHostnames:l,skipConnectivityChecks:h=!1}){var p,v,S;try{this.peerId=i,this.logger=d,this.ipInformation=yield Qh.getIPDetails({peerId:i,apiHostnames:l,logger:d}),this.backend=new FT(o,r,n,c,d,i,l),this.iceServers=s,(p=this.backend)==null||p.registerIceServers(this.iceServers),this.initialized=!0,(S=(v=this.backend)==null?void 0:v.eventHandler)==null||S.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,S,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":(S=this.backend)==null||S.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)})}}const BT=new Jf;BT.setMaxListeners(30);function WT(){this.__data__=[],this.size=0}function Xo(t,e){return t===e||t!==t&&e!==e}function Sl(t,e){for(var i=t.length;i--;)if(Xo(t[i][0],e))return i;return-1}var jT=Array.prototype,HT=jT.splice;function GT(t){var e=this.__data__,i=Sl(e,t);if(i<0)return!1;var r=e.length-1;return i==r?e.pop():HT.call(e,i,1),--this.size,!0}function qT(t){var e=this.__data__,i=Sl(e,t);return i<0?void 0:e[i][1]}function $T(t){return Sl(this.__data__,t)>-1}function JT(t,e){var i=this.__data__,r=Sl(i,t);return r<0?(++this.size,i.push([t,e])):i[r][1]=e,this}function ur(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])}}ur.prototype.clear=WT;ur.prototype.delete=GT;ur.prototype.get=qT;ur.prototype.has=$T;ur.prototype.set=JT;function KT(){this.__data__=new ur,this.size=0}function zT(t){var e=this.__data__,i=e.delete(t);return this.size=e.size,i}function YT(t){return this.__data__.get(t)}function QT(t){return this.__data__.has(t)}var XT=typeof global=="object"&&global&&global.Object===Object&&global;const Kf=XT;var ZT=typeof self=="object"&&self&&self.Object===Object&&self,ek=Kf||ZT||Function("return this")();const Ii=ek;var tk=Ii.Symbol;const Jr=tk;var zf=Object.prototype,ik=zf.hasOwnProperty,rk=zf.toString,ka=Jr?Jr.toStringTag:void 0;function nk(t){var e=ik.call(t,ka),i=t[ka];try{t[ka]=void 0;var r=!0}catch(s){}var n=rk.call(t);return r&&(e?t[ka]=i:delete t[ka]),n}var sk=Object.prototype,ak=sk.toString;function ok(t){return ak.call(t)}var ck="[object Null]",dk="[object Undefined]",$p=Jr?Jr.toStringTag:void 0;function Bn(t){return t==null?t===void 0?dk:ck:$p&&$p in Object(t)?nk(t):ok(t)}function _i(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}var lk="[object AsyncFunction]",uk="[object Function]",hk="[object GeneratorFunction]",pk="[object Proxy]";function Xh(t){if(!_i(t))return!1;var e=Bn(t);return e==uk||e==hk||e==lk||e==pk}var mk=Ii["__core-js_shared__"];const Bl=mk;var Jp=function(){var t=/[^.]+$/.exec(Bl&&Bl.keys&&Bl.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();function gk(t){return!!Jp&&Jp in t}var fk=Function.prototype,vk=fk.toString;function Wn(t){if(t!=null){try{return vk.call(t)}catch(e){}try{return t+""}catch(e){}}return""}var yk=/[\\^$.*+?()[\]{}|]/g,Sk=/^\[object .+?Constructor\]$/,Tk=Function.prototype,kk=Object.prototype,Ek=Tk.toString,bk=kk.hasOwnProperty,wk=RegExp("^"+Ek.call(bk).replace(yk,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function _k(t){if(!_i(t)||gk(t))return!1;var e=Xh(t)?wk:Sk;return e.test(Wn(t))}function Ik(t,e){return t==null?void 0:t[e]}function jn(t,e){var i=Ik(t,e);return _k(i)?i:void 0}var Ck=jn(Ii,"Map");const zo=Ck;var Pk=jn(Object,"create");const Yo=Pk;function Rk(){this.__data__=Yo?Yo(null):{},this.size=0}function Mk(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}var Ak="__lodash_hash_undefined__",Dk=Object.prototype,Ok=Dk.hasOwnProperty;function Nk(t){var e=this.__data__;if(Yo){var i=e[t];return i===Ak?void 0:i}return Ok.call(e,t)?e[t]:void 0}var Vk=Object.prototype,Lk=Vk.hasOwnProperty;function xk(t){var e=this.__data__;return Yo?e[t]!==void 0:Lk.call(e,t)}var Uk="__lodash_hash_undefined__";function Fk(t,e){var i=this.__data__;return this.size+=this.has(t)?0:1,i[t]=Yo&&e===void 0?Uk:e,this}function Ln(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])}}Ln.prototype.clear=Rk;Ln.prototype.delete=Mk;Ln.prototype.get=Nk;Ln.prototype.has=xk;Ln.prototype.set=Fk;function Bk(){this.size=0,this.__data__={hash:new Ln,map:new(zo||ur),string:new Ln}}function Wk(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}function Tl(t,e){var i=t.__data__;return Wk(e)?i[typeof e=="string"?"string":"hash"]:i.map}function jk(t){var e=Tl(this,t).delete(t);return this.size-=e?1:0,e}function Hk(t){return Tl(this,t).get(t)}function Gk(t){return Tl(this,t).has(t)}function qk(t,e){var i=Tl(this,t),r=i.size;return i.set(t,e),this.size+=i.size==r?0:1,this}function Hn(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])}}Hn.prototype.clear=Bk;Hn.prototype.delete=jk;Hn.prototype.get=Hk;Hn.prototype.has=Gk;Hn.prototype.set=qk;var $k=200;function Jk(t,e){var i=this.__data__;if(i instanceof ur){var r=i.__data__;if(!zo||r.length<$k-1)return r.push([t,e]),this.size=++i.size,this;i=this.__data__=new Hn(r)}return i.set(t,e),this.size=i.size,this}function ji(t){var e=this.__data__=new ur(t);this.size=e.size}ji.prototype.clear=KT;ji.prototype.delete=zT;ji.prototype.get=YT;ji.prototype.has=QT;ji.prototype.set=Jk;function Kk(t,e){for(var i=-1,r=t==null?0:t.length;++i<r&&e(t[i],i,t)!==!1;);return t}var zk=function(){try{var t=jn(Object,"defineProperty");return t({},"",{}),t}catch(e){}}();const Gd=zk;function Zh(t,e,i){e=="__proto__"&&Gd?Gd(t,e,{configurable:!0,enumerable:!0,value:i,writable:!0}):t[e]=i}var Yk=Object.prototype,Qk=Yk.hasOwnProperty;function Yf(t,e,i){var r=t[e];(!(Qk.call(t,e)&&Xo(r,i))||i===void 0&&!(e in t))&&Zh(t,e,i)}function Zo(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?Zh(i,c,d):Yf(i,c,d)}return i}function Xk(t,e){for(var i=-1,r=Array(t);++i<t;)r[i]=e(i);return r}function Hi(t){return t!=null&&typeof t=="object"}var Zk="[object Arguments]";function Kp(t){return Hi(t)&&Bn(t)==Zk}var Qf=Object.prototype,eE=Qf.hasOwnProperty,tE=Qf.propertyIsEnumerable,iE=Kp(function(){return arguments}())?Kp:function(t){return Hi(t)&&eE.call(t,"callee")&&!tE.call(t,"callee")};const qd=iE;var rE=Array.isArray;const Kr=rE;function nE(){return!1}var Xf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,zp=Xf&&typeof module=="object"&&module&&!module.nodeType&&module,sE=zp&&zp.exports===Xf,Yp=sE?Ii.Buffer:void 0,aE=Yp?Yp.isBuffer:void 0,oE=aE||nE;const Ys=oE;var cE=9007199254740991,dE=/^(?:0|[1-9]\d*)$/;function Zf(t,e){var i=typeof t;return e=e==null?cE:e,!!e&&(i=="number"||i!="symbol"&&dE.test(t))&&t>-1&&t%1==0&&t<e}var lE=9007199254740991;function ev(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=lE}var uE="[object Arguments]",hE="[object Array]",pE="[object Boolean]",mE="[object Date]",gE="[object Error]",fE="[object Function]",vE="[object Map]",yE="[object Number]",SE="[object Object]",TE="[object RegExp]",kE="[object Set]",EE="[object String]",bE="[object WeakMap]",wE="[object ArrayBuffer]",_E="[object DataView]",IE="[object Float32Array]",CE="[object Float64Array]",PE="[object Int8Array]",RE="[object Int16Array]",ME="[object Int32Array]",AE="[object Uint8Array]",DE="[object Uint8ClampedArray]",OE="[object Uint16Array]",NE="[object Uint32Array]",_e={};_e[IE]=_e[CE]=_e[PE]=_e[RE]=_e[ME]=_e[AE]=_e[DE]=_e[OE]=_e[NE]=!0;_e[uE]=_e[hE]=_e[wE]=_e[pE]=_e[_E]=_e[mE]=_e[gE]=_e[fE]=_e[vE]=_e[yE]=_e[SE]=_e[TE]=_e[kE]=_e[EE]=_e[bE]=!1;function VE(t){return Hi(t)&&ev(t.length)&&!!_e[Bn(t)]}function ep(t){return function(e){return t(e)}}var tv=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Oo=tv&&typeof module=="object"&&module&&!module.nodeType&&module,LE=Oo&&Oo.exports===tv,Wl=LE&&Kf.process,xE=function(){try{var t=Oo&&Oo.require&&Oo.require("util").types;return t||Wl&&Wl.binding&&Wl.binding("util")}catch(e){}}();const Qs=xE;var Qp=Qs&&Qs.isTypedArray,UE=Qp?ep(Qp):VE;const kl=UE;var FE=Object.prototype,BE=FE.hasOwnProperty;function iv(t,e){var i=Kr(t),r=!i&&qd(t),n=!i&&!r&&Ys(t),s=!i&&!r&&!n&&kl(t),o=i||r||n||s,c=o?Xk(t.length,String):[],d=c.length;for(var l in t)(e||BE.call(t,l))&&!(o&&(l=="length"||n&&(l=="offset"||l=="parent")||s&&(l=="buffer"||l=="byteLength"||l=="byteOffset")||Zf(l,d)))&&c.push(l);return c}var WE=Object.prototype;function El(t){var e=t&&t.constructor,i=typeof e=="function"&&e.prototype||WE;return t===i}function rv(t,e){return function(i){return t(e(i))}}var jE=rv(Object.keys,Object);const HE=jE;var GE=Object.prototype,qE=GE.hasOwnProperty;function nv(t){if(!El(t))return HE(t);var e=[];for(var i in Object(t))qE.call(t,i)&&i!="constructor"&&e.push(i);return e}function ec(t){return t!=null&&ev(t.length)&&!Xh(t)}function tp(t){return ec(t)?iv(t):nv(t)}function $E(t,e){return t&&Zo(e,tp(e),t)}function JE(t){var e=[];if(t!=null)for(var i in Object(t))e.push(i);return e}var KE=Object.prototype,zE=KE.hasOwnProperty;function YE(t){if(!_i(t))return JE(t);var e=El(t),i=[];for(var r in t)r=="constructor"&&(e||!zE.call(t,r))||i.push(r);return i}function tc(t){return ec(t)?iv(t,!0):YE(t)}function QE(t,e){return t&&Zo(e,tc(e),t)}var sv=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Xp=sv&&typeof module=="object"&&module&&!module.nodeType&&module,XE=Xp&&Xp.exports===sv,Zp=XE?Ii.Buffer:void 0,em=Zp?Zp.allocUnsafe:void 0;function av(t,e){if(e)return t.slice();var i=t.length,r=em?em(i):new t.constructor(i);return t.copy(r),r}function ov(t,e){var i=-1,r=t.length;for(e||(e=Array(r));++i<r;)e[i]=t[i];return e}function ZE(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 cv(){return[]}var e0=Object.prototype,t0=e0.propertyIsEnumerable,tm=Object.getOwnPropertySymbols,i0=tm?function(t){return t==null?[]:(t=Object(t),ZE(tm(t),function(e){return t0.call(t,e)}))}:cv;const ip=i0;function r0(t,e){return Zo(t,ip(t),e)}function dv(t,e){for(var i=-1,r=e.length,n=t.length;++i<r;)t[n+i]=e[i];return t}var n0=rv(Object.getPrototypeOf,Object);const rp=n0;var s0=Object.getOwnPropertySymbols,a0=s0?function(t){for(var e=[];t;)dv(e,ip(t)),t=rp(t);return e}:cv;const lv=a0;function o0(t,e){return Zo(t,lv(t),e)}function uv(t,e,i){var r=e(t);return Kr(t)?r:dv(r,i(t))}function Du(t){return uv(t,tp,ip)}function c0(t){return uv(t,tc,lv)}var d0=jn(Ii,"DataView");const Ou=d0;var l0=jn(Ii,"Promise");const Nu=l0;var u0=jn(Ii,"Set");const Vu=u0;var h0=jn(Ii,"WeakMap");const Lu=h0;var im="[object Map]",p0="[object Object]",rm="[object Promise]",nm="[object Set]",sm="[object WeakMap]",am="[object DataView]",m0=Wn(Ou),g0=Wn(zo),f0=Wn(Nu),v0=Wn(Vu),y0=Wn(Lu),un=Bn;(Ou&&un(new Ou(new ArrayBuffer(1)))!=am||zo&&un(new zo)!=im||Nu&&un(Nu.resolve())!=rm||Vu&&un(new Vu)!=nm||Lu&&un(new Lu)!=sm)&&(un=function(t){var e=Bn(t),i=e==p0?t.constructor:void 0,r=i?Wn(i):"";if(r)switch(r){case m0:return am;case g0:return im;case f0:return rm;case v0:return nm;case y0:return sm}return e});const Xs=un;var S0=Object.prototype,T0=S0.hasOwnProperty;function k0(t){var e=t.length,i=new t.constructor(e);return e&&typeof t[0]=="string"&&T0.call(t,"index")&&(i.index=t.index,i.input=t.input),i}var E0=Ii.Uint8Array;const $d=E0;function np(t){var e=new t.constructor(t.byteLength);return new $d(e).set(new $d(t)),e}function b0(t,e){var i=e?np(t.buffer):t.buffer;return new t.constructor(i,t.byteOffset,t.byteLength)}var w0=/\w*$/;function _0(t){var e=new t.constructor(t.source,w0.exec(t));return e.lastIndex=t.lastIndex,e}var om=Jr?Jr.prototype:void 0,cm=om?om.valueOf:void 0;function I0(t){return cm?Object(cm.call(t)):{}}function hv(t,e){var i=e?np(t.buffer):t.buffer;return new t.constructor(i,t.byteOffset,t.length)}var C0="[object Boolean]",P0="[object Date]",R0="[object Map]",M0="[object Number]",A0="[object RegExp]",D0="[object Set]",O0="[object String]",N0="[object Symbol]",V0="[object ArrayBuffer]",L0="[object DataView]",x0="[object Float32Array]",U0="[object Float64Array]",F0="[object Int8Array]",B0="[object Int16Array]",W0="[object Int32Array]",j0="[object Uint8Array]",H0="[object Uint8ClampedArray]",G0="[object Uint16Array]",q0="[object Uint32Array]";function $0(t,e,i){var r=t.constructor;switch(e){case V0:return np(t);case C0:case P0:return new r(+t);case L0:return b0(t,i);case x0:case U0:case F0:case B0:case W0:case j0:case H0:case G0:case q0:return hv(t,i);case R0:return new r;case M0:case O0:return new r(t);case A0:return _0(t);case D0:return new r;case N0:return I0(t)}}var dm=Object.create,J0=function(){function t(){}return function(e){if(!_i(e))return{};if(dm)return dm(e);t.prototype=e;var i=new t;return t.prototype=void 0,i}}();const K0=J0;function pv(t){return typeof t.constructor=="function"&&!El(t)?K0(rp(t)):{}}var z0="[object Map]";function Y0(t){return Hi(t)&&Xs(t)==z0}var lm=Qs&&Qs.isMap,Q0=lm?ep(lm):Y0;const X0=Q0;var Z0="[object Set]";function eb(t){return Hi(t)&&Xs(t)==Z0}var um=Qs&&Qs.isSet,tb=um?ep(um):eb;const ib=tb;var rb=1,nb=2,sb=4,mv="[object Arguments]",ab="[object Array]",ob="[object Boolean]",cb="[object Date]",db="[object Error]",gv="[object Function]",lb="[object GeneratorFunction]",ub="[object Map]",hb="[object Number]",fv="[object Object]",pb="[object RegExp]",mb="[object Set]",gb="[object String]",fb="[object Symbol]",vb="[object WeakMap]",yb="[object ArrayBuffer]",Sb="[object DataView]",Tb="[object Float32Array]",kb="[object Float64Array]",Eb="[object Int8Array]",bb="[object Int16Array]",wb="[object Int32Array]",_b="[object Uint8Array]",Ib="[object Uint8ClampedArray]",Cb="[object Uint16Array]",Pb="[object Uint32Array]",Te={};Te[mv]=Te[ab]=Te[yb]=Te[Sb]=Te[ob]=Te[cb]=Te[Tb]=Te[kb]=Te[Eb]=Te[bb]=Te[wb]=Te[ub]=Te[hb]=Te[fv]=Te[pb]=Te[mb]=Te[gb]=Te[fb]=Te[_b]=Te[Ib]=Te[Cb]=Te[Pb]=!0;Te[db]=Te[gv]=Te[vb]=!1;function Hc(t,e,i,r,n,s){var o,c=e&rb,d=e&nb,l=e&sb;if(i&&(o=n?i(t,r,n,s):i(t)),o!==void 0)return o;if(!_i(t))return t;var h=Kr(t);if(h){if(o=k0(t),!c)return ov(t,o)}else{var p=Xs(t),v=p==gv||p==lb;if(Ys(t))return av(t,c);if(p==fv||p==mv||v&&!n){if(o=d||v?{}:pv(t),!c)return d?o0(t,QE(o,t)):r0(t,$E(o,t))}else{if(!Te[p])return n?t:{};o=$0(t,p,c)}}s||(s=new ji);var S=s.get(t);if(S)return S;s.set(t,o),ib(t)?t.forEach(function(b){o.add(Hc(b,e,i,b,t,s))}):X0(t)&&t.forEach(function(b,M){o.set(M,Hc(b,e,i,M,t,s))});var E=l?d?c0:Du:d?tc:tp,C=h?void 0:E(t);return Kk(C||t,function(b,M){C&&(M=b,b=t[M]),Yf(o,M,Hc(b,e,i,M,t,s))}),o}var Rb=1,Mb=4;function sp(t){return Hc(t,Rb|Mb)}var Ab="[object Symbol]";function Db(t){return typeof t=="symbol"||Hi(t)&&Bn(t)==Ab}var Ob=Object.defineProperty,Nb=(t,e)=>{for(var i in e)Ob(t,i,{get:e[i],enumerable:!0})},Vb={};Nb(Vb,{permissions:()=>Lb,theme:()=>xb});var Ut=(t=>(t.GroupCall="GROUP_CALL",t.Webinar="WEBINAR",t.AudioRoom="AUDIO_ROOM",t.Livestream="LIVESTREAM",t.Chat="CHAT",t))(Ut||{}),G=(t=>(t.Allowed="ALLOWED",t.NotAllowed="NOT_ALLOWED",t.CanRequest="CAN_REQUEST",t))(G||{}),Lb={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},xb={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}},vv="hXgU8Wc8pwuGNq9ms5q9Hh",hm;typeof process!="undefined"&&(hm=process==null?void 0:process.env)!=null&&hm.FLAGSMITH_ENVIRONMENT_KEY&&(vv={}.FLAGSMITH_ENVIRONMENT_KEY);function Ub(t=[]){const e={};return t.forEach(i=>{e[i.feature.name]={enabled:i.enabled,value:i.feature_state_value}}),e}var yv=class{constructor(t=vv){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,S=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(S),!C.ok)throw new Error(`Request failed with status ${C.status}`);const b=yield C.json();return Ub(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}},Fb=new yv;function Bb(t){return new yv(t)}var Sv=[-2,-1,0,1,2],Wb=[0,1,2,3,4];function jb(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 Hb=(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)]},Gb=(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]},qb=(t,e,i)=>{const r=n=>n.toString(16).padStart(2,"0");return`#${r(t)}${r(e)}${r(i)}`},Tv=(t,e=Sv,i=.4)=>{const r=[],[n,s,o]=jb(t),[c,d,l]=Gb(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,S=p+1,E=(100-h)/v,C=h/S;for(const b of e){let M;b<0?M=h+b*C*i:b>0?M=h+b*E*i:M=h;const[j,W,w]=Hb(c,d,M/100);r.push(qb(j,W,w))}return r},pm={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"}},$b=t=>{const[e,i,r,n,s]=Tv(t,Sv);return{300:e,400:i,500:r,600:n,700:s}},Jb=t=>{if(t==="#FFFFFF")return pm.light.background;if(t==="#000000")return pm.dark.background;const[e,i,r,n,s]=Tv(t,Wb);return{1e3:e,900:i,800:r,700:n,600:s}},Kb={border_radius:"rounded",border_width:"thin",spacing_base:4,theme:"dark",colors:{brand:$b("#2160FD"),background:Jb("#141414"),danger:"#FF2D2D",text:"#EEEEEE",text_on_brand:"#EEEEEE",success:"#62A504",video_bg:"#191919",warning:"#FFCD07"}};function kv(){return sp(Kb)}var zb={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:kv(),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 Yb(){return sp(zb)}var Qb={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:kv(),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 ap(){return sp(Qb)}var Gc;class Ev{constructor(){g(this,Gc,void 0)}get telemetry(){var e;return(e=a(this,Gc))==null?void 0:e.getValue("telemetry")}init(e){f(this,Gc,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)}}Gc=new WeakMap;var wr,_r;const bv=class extends gt.EventEmitter{constructor(t){super(),g(this,wr,void 0),g(this,_r,void 0),m(this,"asyncPromiseTimeout"),m(this,"logger"),this.logger=t,f(this,wr,new Map),f(this,_r,new Map),this.asyncPromiseTimeout=8e3}emitAsync(t,...e){return u(this,null,function*(){a(this,wr).set(t,[]);const i=a(this,_r).get(t).map(()=>new Promise(r=>{a(this,wr).get(t).push(r)}));iT(bv.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,wr).delete(t)})}onAsync(t,e){const i=a(this,wr),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,_r).get(t)||a(this,_r).set(t,[]),a(this,_r).get(t).push(r),super.on(t,r)}reset(){f(this,wr,new Map),f(this,_r,new Map),super.removeAllListeners()}};let Xb=bv;wr=new WeakMap,_r=new WeakMap;var Zb=/\s/;function ew(t){for(var e=t.length;e--&&Zb.test(t.charAt(e)););return e}var tw=/^\s+/;function iw(t){return t&&t.slice(0,ew(t)+1).replace(tw,"")}var mm=0/0,rw=/^[-+]0x[0-9a-f]+$/i,nw=/^0b[01]+$/i,sw=/^0o[0-7]+$/i,aw=parseInt;function gm(t){if(typeof t=="number")return t;if(Db(t))return mm;if(_i(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=_i(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=iw(t);var i=nw.test(t);return i||sw.test(t)?aw(t.slice(2),i?2:8):rw.test(t)?mm:+t}function wv(t){return t}function ow(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 cw=800,dw=16,lw=Date.now;function uw(t){var e=0,i=0;return function(){var r=lw(),n=dw-(r-i);if(i=r,n>0){if(++e>=cw)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}function hw(t){return function(){return t}}var pw=Gd?function(t,e){return Gd(t,"toString",{configurable:!0,enumerable:!1,value:hw(e),writable:!0})}:wv;const mw=pw;var gw=uw(mw);const fw=gw;var fm=Math.max;function vw(t,e,i){return e=fm(e===void 0?t.length-1:e,0),function(){for(var r=arguments,n=-1,s=fm(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),ow(t,this,c)}}function yw(t,e){return fw(vw(t,e,wv),t+"")}function Sw(t,e,i){if(!_i(i))return!1;var r=typeof e;return(r=="number"?ec(i)&&Zf(e,i.length):r=="string"&&e in i)?Xo(i[e],t):!1}function Tw(t){return yw(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&&Sw(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 kw="[object Object]",Ew=Function.prototype,bw=Object.prototype,_v=Ew.toString,ww=bw.hasOwnProperty,_w=_v.call(Object);function Iw(t){if(!Hi(t)||Bn(t)!=kw)return!1;var e=rp(t);if(e===null)return!0;var i=ww.call(e,"constructor")&&e.constructor;return typeof i=="function"&&i instanceof i&&_v.call(i)==_w}var Cw="__lodash_hash_undefined__";function Pw(t){return this.__data__.set(t,Cw),this}function Rw(t){return this.__data__.has(t)}function Jd(t){var e=-1,i=t==null?0:t.length;for(this.__data__=new Hn;++e<i;)this.add(t[e])}Jd.prototype.add=Jd.prototype.push=Pw;Jd.prototype.has=Rw;function Mw(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 Aw(t,e){return t.has(e)}var Dw=1,Ow=2;function Iv(t,e,i,r,n,s){var o=i&Dw,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,S=i&Ow?new Jd: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(S){if(!Mw(e,function(M,j){if(!Aw(S,j)&&(E===M||n(E,M,i,r,s)))return S.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 Nw(t){var e=-1,i=Array(t.size);return t.forEach(function(r,n){i[++e]=[n,r]}),i}function Vw(t){var e=-1,i=Array(t.size);return t.forEach(function(r){i[++e]=r}),i}var Lw=1,xw=2,Uw="[object Boolean]",Fw="[object Date]",Bw="[object Error]",Ww="[object Map]",jw="[object Number]",Hw="[object RegExp]",Gw="[object Set]",qw="[object String]",$w="[object Symbol]",Jw="[object ArrayBuffer]",Kw="[object DataView]",vm=Jr?Jr.prototype:void 0,jl=vm?vm.valueOf:void 0;function zw(t,e,i,r,n,s,o){switch(i){case Kw:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case Jw:return!(t.byteLength!=e.byteLength||!s(new $d(t),new $d(e)));case Uw:case Fw:case jw:return Xo(+t,+e);case Bw:return t.name==e.name&&t.message==e.message;case Hw:case qw:return t==e+"";case Ww:var c=Nw;case Gw:var d=r&Lw;if(c||(c=Vw),t.size!=e.size&&!d)return!1;var l=o.get(t);if(l)return l==e;r|=xw,o.set(t,e);var h=Iv(c(t),c(e),r,n,s,o);return o.delete(t),h;case $w:if(jl)return jl.call(t)==jl.call(e)}return!1}var Yw=1,Qw=Object.prototype,Xw=Qw.hasOwnProperty;function Zw(t,e,i,r,n,s){var o=i&Yw,c=Du(t),d=c.length,l=Du(e),h=l.length;if(d!=h&&!o)return!1;for(var p=d;p--;){var v=c[p];if(!(o?v in e:Xw.call(e,v)))return!1}var S=s.get(t),E=s.get(e);if(S&&E)return S==e&&E==t;var C=!0;s.set(t,e),s.set(e,t);for(var b=o;++p<d;){v=c[p];var M=t[v],j=e[v];if(r)var W=o?r(j,M,v,e,t,s):r(M,j,v,t,e,s);if(!(W===void 0?M===j||n(M,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 e_=1,ym="[object Arguments]",Sm="[object Array]",pc="[object Object]",t_=Object.prototype,Tm=t_.hasOwnProperty;function i_(t,e,i,r,n,s){var o=Kr(t),c=Kr(e),d=o?Sm:Xs(t),l=c?Sm:Xs(e);d=d==ym?pc:d,l=l==ym?pc:l;var h=d==pc,p=l==pc,v=d==l;if(v&&Ys(t)){if(!Ys(e))return!1;o=!0,h=!1}if(v&&!h)return s||(s=new ji),o||kl(t)?Iv(t,e,i,r,n,s):zw(t,e,d,i,r,n,s);if(!(i&e_)){var S=h&&Tm.call(t,"__wrapped__"),E=p&&Tm.call(e,"__wrapped__");if(S||E){var C=S?t.value():t,b=E?e.value():e;return s||(s=new ji),n(C,b,i,r,s)}}return v?(s||(s=new ji),Zw(t,e,i,r,n,s)):!1}function Cv(t,e,i,r,n){return t===e?!0:t==null||e==null||!Hi(t)&&!Hi(e)?t!==t&&e!==e:i_(t,e,i,r,Cv,n)}function r_(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 n_=r_();const s_=n_;var a_=function(){return Ii.Date.now()};const Hl=a_;var o_="Expected a function",c_=Math.max,d_=Math.min;function op(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(o_);e=gm(e)||0,_i(i)&&(h=!!i.leading,p="maxWait"in i,s=p?c_(gm(i.maxWait)||0,e):s,v="trailing"in i?!!i.trailing:v);function S(ie){var ae=r,Me=n;return r=n=void 0,l=ie,o=t.apply(Me,ae),o}function E(ie){return l=ie,c=setTimeout(M,e),h?S(ie):o}function C(ie){var ae=ie-d,Me=ie-l,Xe=e-ae;return p?d_(Xe,s-Me):Xe}function b(ie){var ae=ie-d,Me=ie-l;return d===void 0||ae>=e||ae<0||p&&Me>=s}function M(){var ie=Hl();if(b(ie))return j(ie);c=setTimeout(M,C(ie))}function j(ie){return c=void 0,v&&r?S(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(Hl())}function te(){var ie=Hl(),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(M,e),S(d)}return c===void 0&&(c=setTimeout(M,e)),o}return te.cancel=W,te.flush=w,te}function xu(t,e,i){(i!==void 0&&!Xo(t[e],i)||i===void 0&&!(e in t))&&Zh(t,e,i)}function l_(t){return Hi(t)&&ec(t)}function Uu(t,e){if(!(e==="constructor"&&typeof t[e]=="function")&&e!="__proto__")return t[e]}function u_(t){return Zo(t,tc(t))}function h_(t,e,i,r,n,s,o){var c=Uu(t,i),d=Uu(e,i),l=o.get(d);if(l){xu(t,i,l);return}var h=s?s(c,d,i+"",t,e,o):void 0,p=h===void 0;if(p){var v=Kr(d),S=!v&&Ys(d),E=!v&&!S&&kl(d);h=d,v||S||E?Kr(c)?h=c:l_(c)?h=ov(c):S?(p=!1,h=av(d,!0)):E?(p=!1,h=hv(d,!0)):h=[]:Iw(d)||qd(d)?(h=c,qd(c)?h=u_(c):(!_i(c)||Xh(c))&&(h=pv(d))):p=!1}p&&(o.set(d,h),n(h,d,r,s,o),o.delete(d)),xu(t,i,h)}function Pv(t,e,i,r,n){t!==e&&s_(e,function(s,o){if(n||(n=new ji),_i(s))h_(t,e,o,i,Pv,r,n);else{var c=r?r(Uu(t,o),s,o+"",t,e,n):void 0;c===void 0&&(c=s),xu(t,o,c)}},tc)}var p_="[object Map]",m_="[object Set]",g_=Object.prototype,f_=g_.hasOwnProperty;function v_(t){if(t==null)return!0;if(ec(t)&&(Kr(t)||typeof t=="string"||typeof t.splice=="function"||Ys(t)||kl(t)||qd(t)))return!t.length;var e=Xs(t);if(e==p_||e==m_)return!t.size;if(El(t))return!nv(t).length;for(var i in t)if(f_.call(t,i))return!1;return!0}function y_(t,e){return Cv(t,e)}var S_=Tw(function(t,e,i){Pv(t,e,i)});const Ir=S_;var Fu=(t=>(t.PARTICIPANT="PARTICIPANT",t.PEER="PEER",t.CLIENT="CLIENT",t))(Fu||{});const X={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"};function qc(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 T_(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 k_(t,e){var i;if(t!=null&&t.getValue("flagsmith").hasFeature(X.LOG_LEVEL)){let r=((i=t.getValue("flagsmith").getValue(X.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 Rv(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"?Rv(t[r],s,i):["number","string","boolean"].includes(typeof t[r])&&(i[s]=t[r])}),i}function km(t,e,i={},r=""){const n={};try{const s=JSON.stringify(i),o=JSON.parse(s),c=Rv(o,r),d=JSON.stringify(c);return JSON.parse(d)}catch(s){const o=qc(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 E_={audio:!0,video:!0,screenshareAudio:!0,screenshareVideo:!0},Ea={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"},b_={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 Zs(t,e){const i=t.getValue("overrides");return i&&i[e]?i[e]:!1}function w_({baseURI:t}){return t.includes("preprod.dyte")||t.includes("preprod.realtime")?Do.PREPROD:t.includes("devel.dyte")||t.includes("devel.realtime")?Do.DEVEL:Do.PROD}function On({servicePrefix:t,baseURI:e}){return`${t}.${e}`}function Mv(t){const e=t.getValue("baseURI");return{location:On({servicePrefix:"location",baseURI:e}),locationLegacy:On({servicePrefix:"location-legacy",baseURI:e}),daCollector:On({servicePrefix:"da-collector",baseURI:e.replace("realtime.cloudflare.com","dyte.io")})}}const __='<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>',I_='<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>',mc=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})},Av=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=sr.getContext(this.meetingMetadata.peerId);return`https://${On({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():Ie.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=sr.getContext(d.meetingMetadata.peerId))!=null&&c.getValue("flagsmith").hasFeature(X.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:Av.location.country})}).catch(()=>{const p=performance.now();d.addLogInCurrentSpan("info",`${t}_timing`,{execTime:p-l})}),h},n}}injectContext(t){var e;const i=Vn().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:qc(i.error)});const n=sr.getContext(this.meetingMetadata.peerId);if(T_(n)&&(v_(i)?console[t]("DyteInternalLogs:: ",t,e):console[t]("DyteInternalLogs:: ",t,e,i)),!!k_(n,t))try{const s=km(n,e,i,"metadata"),o=new Date,c=q(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:qc(s)})}}sendOtelLogsToNewRelic(t){const e=sr.getContext(this.meetingMetadata.peerId);fetch(this.logsEndpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({meetingMetadata:km(e,"sendOtelLogsToNewRelic",this.meetingMetadata,"meetingMetadata"),serviceName:e.getValue("sdkName"),logs:t})}).catch(i=>{this.addLogInCurrentSpan("error","opentelemetry::sendOtelLogToNewRelic_failed",{error:qc(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 k=Av;m(k,"location",{country:void 0});function C_(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 P_{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 k,n=new Ev;this.contexts.set(e,C_(i)),this.contexts.get(e).setValue("peerSessionStore",new Xb(n));const s=new Jf;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",Bb()),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 sr=new P_,R_={"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"},$c={"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($c).forEach(t=>{$c[t]=`{${R_[t.slice(0,2)]}} ${$c[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}]: ${$c[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=sr.getContext(sr.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 gc(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 Em(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){gc(this,e,i,o)}}),s&&(t.set=function(o){try{return s.apply(this,[o])}catch(c){gc(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=>{gc(this,e,i,o)}):s}catch(s){gc(this,e,i,s)}},t}function M_(t,e){return(i,r,n)=>{if(n)return Em(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,Em(o,t,e))}}}const ft=t=>M_(Error,t);function A_(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 D_(){Ie.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 R=(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))(R||{});class ia extends gt.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 Qt extends gt.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 O_(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 bm=1080,wm=1920,N_=(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,S,E,C,b,M=1;return p<i&&(M=i/p),Math.abs(M-1)<1e-14&&v<r&&(M=r/v),p*=M,v*=M,C=d/(p/i),b=l/(v/r),S=(d-C)*o,E=(l-b)*c,S<0&&(S=0),E<0&&(E=0),C>d&&(C=d),b>l&&(b=l),[S,E,C,b,t,e,i,r]};var mi,vs,Et,gi,Fe,Di,Cr,Nt,Je,ro,no,Pr,so;const Dv=class extends Qt{constructor(t,e,i,r){const n=t.getValue("logger");super(n),g(this,mi,void 0),g(this,vs,void 0),g(this,Et,void 0),g(this,gi,void 0),g(this,Fe,{height:bm,width:wm}),g(this,Di,{brand:"#2160FD",background:"#141414",text:"#000000",videoBackground:"#191919",textOnBrand:"#EEEEEE"}),g(this,Cr,void 0),g(this,Nt,{}),g(this,Je,void 0),g(this,ro,void 0),g(this,no,void 0),g(this,Pr,void 0),g(this,so,!1),m(this,"cleanupEventListeners",()=>{a(this,vs).unsubscribe("stageStatus",this.handlePipMediaControls),a(this,Je).removeListener("videoUpdate",this.onSelfVideoUpdateListener),a(this,Je).removeListener("audioUpdate",this.onSelfAudioUpdateListener),a(this,Je).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,Je).videoEnabled?a(this,Je).disableVideo():a(this,Je).enableVideo(),this.emit("cameraToggled")),s==="MIC"&&(a(this,Je).audioEnabled?a(this,Je).disableAudio():a(this,Je).enableAudio(),this.emit("micToggled")),s==="END"&&(a(this,vs).getValue("peerSessionStore").emit(R.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,Pr)==="active"){this.disable(!0);return}a(this,Nt)!==void 0&&this.paintCanvas(),a(this,Cr)!==void 0&&f(this,Cr,requestAnimationFrame(()=>this.animate()))}),m(this,"disable",(s=!1)=>{f(this,Pr,"idle"),this.cleanupEventListeners(),cancelAnimationFrame(a(this,Cr)),s!==!0&&document.body.removeChild(a(this,Et)),f(this,Cr,void 0),document.pictureInPictureElement&&document.exitPictureInPicture()}),f(this,vs,t),f(this,Pr,"idle"),f(this,Je,e),f(this,Di,{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 mc(__),r=yield mc(I_)}catch(n){}return new Dv(t,e,i,r)})}setupIcon(t,e){return u(this,null,function*(){switch(t){case"handRaise":f(this,no,e);break;case"pin":f(this,ro,e);break}})}overrideIcon(t,e){return u(this,null,function*(){switch(t){case"handRaise":f(this,no,yield mc(e));break;case"pin":f(this,ro,yield mc(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,Et,document.createElement("div")),a(this,Et).style.width="0.1px",a(this,Et).style.height="0.1px",a(this,Et).style.overflow="hidden",a(this,Et).style.position="absolute",a(this,Et).style.bottom="0",a(this,Et).style.right="0",a(this,Et).style.opacity="0",a(this,Et).appendChild(a(this,gi))}setupEventListeners(){a(this,vs).subscribe("stageStatus",this.handlePipMediaControls),a(this,Je).addListener("videoUpdate",this.onSelfVideoUpdateListener),a(this,Je).addListener("audioUpdate",this.onSelfAudioUpdateListener),a(this,Je).addListener("roomLeft",()=>this.disable())}createCanvas(){const t=document.createElement("canvas");t.height=a(this,Fe).height,t.width=a(this,Fe).width,f(this,mi,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,Je).permissions.canProduceAudio&&navigator.mediaSession.setActionHandler("togglemicrophone",()=>{this.eventCallback("MIC")})}mountVideoEvents(){navigator.mediaSession===void 0||navigator.mediaSession.setCameraActive===void 0||a(this,Je).permissions.canProduceVideo&&navigator.mediaSession.setActionHandler("togglecamera",()=>{this.eventCallback("CAMERA")})}getSources(){const t=Object.values(a(this,Nt)).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,mi)===void 0)return;const n=a(this,mi).getContext("2d"),s=a(this,mi).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,S=p*(l+o)+o,{displayText:E,image:C}=r!=null?r:{};n.fillStyle=E||C?a(this,Di).videoBackground:a(this,Di).background,n.strokeStyle=a(this,Di).brand,n.beginPath(),n.moveTo(v+c,S),n.arcTo(v+d,S,v+d,S+c,c),n.arcTo(v+d,S+l,v+d-c,S+l,c),n.arcTo(v,S+l,v,S+l-c,c),n.arcTo(v,S,v+c,S,c),n.closePath(),n.fill(),n.stroke();const b=d/6,M=d/2+v,j=l/2+S;n.save(),(E||C)&&(n.beginPath(),n.arc(M,j,b,0,Math.PI*2),n.fillStyle=a(this,Di).brand,n.fill(),C?(n.clip(),n.drawImage(C,M-b,j-b,b*2,b*2),n.restore()):E&&(n.fillStyle=a(this,Di).textOnBrand,n.font=`${b/2}px sans-serif`,n.textAlign="center",n.textBaseline="middle",n.fillText(E,M,j)),this.drawIcons(r,v,S,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,mi).getContext("2d");p.save(),p.fillStyle=a(this,Di).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,Di).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,ro)),t.handRaised&&l(a(this,no))}drawTile(t,e,i){var r,n;if(a(this,mi)===void 0)return;const s=a(this,mi).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,S,E,C,b,M,j]=N_(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,S,E,-1*C,b,-1*M,j),s.restore()):s.drawImage(h,p,v,S,E,C,b,M,j),this.drawIcons(o[d],C,b,Math.max(M,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,Je).config)==null?void 0:t.viewType)!=="LIVESTREAM"}get isActive(){return document.pictureInPictureElement!==null}cleanup(){if(f(this,so,!1),this.isSupported()&&document.exitPictureInPicture!==void 0&&document.pictureInPictureElement!==null&&document.exitPictureInPicture(),a(this,Et))try{document.body.removeChild(a(this,Et))}catch(t){}this.removeAllSources(),f(this,mi,void 0),f(this,gi,void 0),f(this,Cr,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,so))return;f(this,so,!0),this.createCanvas(),this.setupMediaSessionEvents();const i=document.createElement("video");f(this,Fe,{height:t!=null?t:bm,width:e!=null?e:wm}),i.height=a(this,Fe).height,i.width=a(this,Fe).width,i.autoplay=!0,i.muted=!0,i.srcObject=a(this,mi).captureStream(24),f(this,gi,i),a(this,gi).onloadedmetadata=()=>{try{this.emit("pipStarted"),a(this,gi).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,Nt)[t]!==void 0&&(a(this,Nt)[t].enabled=!0)}disableSource(t){a(this,Nt)[t]!==void 0&&(a(this,Nt)[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,Nt)[t]={id:t,element:e,enabled:i,pinned:r,displayText:n?O_(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,Nt)[t];i&&(a(this,Nt)[t]=V(V({},i),e))}removeSource(t){delete a(this,Nt)[t]}removePinnedSource(){Object.values(a(this,Nt)).forEach(t=>{t.pinned&&this.removeSource(t.id)})}removeAllSources(){f(this,Nt,{})}enable(){f(this,Pr,"activating"),this.setupEventListeners(),this.updateMediaSession("CAMERA",a(this,Je).videoEnabled),this.updateMediaSession("MIC",a(this,Je).audioEnabled),document.body.appendChild(a(this,Et)),f(this,Cr,requestAnimationFrame(()=>this.animate())),a(this,gi).onloadedmetadata=()=>{a(this,gi).requestPictureInPicture().then(()=>{f(this,Pr,"active")})},a(this,gi).readyState===4&&a(this,gi).requestPictureInPicture().then(()=>{f(this,Pr,"active")})}};let V_=Dv;mi=new WeakMap,vs=new WeakMap,Et=new WeakMap,gi=new WeakMap,Fe=new WeakMap,Di=new WeakMap,Cr=new WeakMap,Nt=new WeakMap,Je=new WeakMap,ro=new WeakMap,no=new WeakMap,Pr=new WeakMap,so=new WeakMap;var dr;(function(t){t[t.PUBLISHER=0]="PUBLISHER",t[t.SUBSCRIBER=1]="SUBSCRIBER"})(dr||(dr={}));var Bi;(function(t){t[t.AUDIO=0]="AUDIO",t[t.VIDEO=1]="VIDEO"})(Bi||(Bi={}));class L_ 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 Ov=new L_;class x_ 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 U_=new x_;class F_ extends y{constructor(){super("media.Fingerprint",[{no:1,name:"algorithm",kind:"scalar",T:9},{no:2,name:"value",kind:"scalar",T:9}])}}new F_;class B_ extends y{constructor(){super("media.SessionDescription",[{no:1,name:"target",kind:"enum",T:()=>["media.Target",dr]},{no:2,name:"type",kind:"scalar",T:9},{no:3,name:"sdp",kind:"scalar",T:9}])}}const Ci=new B_;class W_ 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 j_=new W_;class H_ 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:()=>Ci},{no:4,name:"private_ice",kind:"scalar",opt:!0,T:8},{no:5,name:"producers",kind:"message",repeat:1,T:()=>j_}])}}const G_=new H_;class q_ 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 $_=new q_;class J_ extends y{constructor(){super("media.CreateTransportResponse",[{no:1,name:"transport_id",kind:"scalar",T:9},{no:2,name:"description",kind:"message",T:()=>Ci},{no:3,name:"transcription_enabled",kind:"scalar",opt:!0,T:8},{no:4,name:"producer_ids",kind:"scalar",repeat:2,T:9}])}}const Nv=new J_;class K_ extends y{constructor(){super("media.RenegotiateRequest",[{no:1,name:"transport_id",kind:"scalar",T:9},{no:2,name:"description",kind:"message",T:()=>Ci}])}}const z_=new K_;class Y_ extends y{constructor(){super("media.RenegotiateResponse",[{no:1,name:"transport_id",kind:"scalar",T:9},{no:2,name:"description",kind:"message",T:()=>Ci}])}}new Y_;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 X_=new Q_;class Z_ 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 eI=new Z_;class tI 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 tI;class iI 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 iI;class rI extends y{constructor(){super("media.ProducerState",[{no:1,name:"producer_id",kind:"scalar",T:9},{no:2,name:"kind",kind:"enum",T:()=>["media.ProducerKind",Bi]},{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:()=>Ov}])}}const ic=new rI;class nI extends y{constructor(){super("media.ConsumerState",[{no:1,name:"consumer_id",kind:"scalar",T:9},{no:2,name:"producer_state",kind:"message",T:()=>ic},{no:3,name:"producer_track",kind:"message",T:()=>eI},{no:4,name:"error_code",kind:"scalar",opt:!0,T:9}])}}const sI=new nI;class aI extends y{constructor(){super("media.ProducerIdToConsumerMap",[{no:1,name:"map",kind:"map",K:9,V:{kind:"message",T:()=>sI}}])}}const Vv=new aI;class oI extends y{constructor(){super("media.PeerRtpCapabilitites",[{no:1,name:"sender",kind:"message",T:()=>Im},{no:2,name:"receiver",kind:"message",T:()=>Im}])}}const Lv=new oI;class cI extends y{constructor(){super("media.RtpCapability",[{no:1,name:"codecs",kind:"message",repeat:1,T:()=>Ov},{no:2,name:"header_extensions",kind:"message",repeat:1,T:()=>U_}])}}const _m=new cI;class dI extends y{constructor(){super("media.RtpCapabilitites",[{no:1,name:"audio",kind:"message",T:()=>_m},{no:2,name:"video",kind:"message",T:()=>_m}])}}const Im=new dI;class lI 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 uI=new lI;class hI 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 xv=new hI;class pI 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 mI=new pI;class gI 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:()=>mI},{no:9,name:"capabilities",kind:"message",T:()=>Lv}])}}const fI=new gI;class vI extends y{constructor(){super("media.edge.PeerJoinCompleteRequest",[])}}const yI=new vI;class SI extends y{constructor(){super("media.edge.PeerLeaveRequest",[{no:1,name:"close_room",kind:"scalar",T:8}])}}const TI=new SI;class kI 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 kI;class EI 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:()=>uI},{no:5,name:"producing_transport_id",kind:"scalar",opt:!0,T:9},{no:6,name:"simulcast",kind:"message",T:()=>xv}])}}const bI=new EI;class wI extends y{constructor(){super("media.edge.ConsumePeersRequest",[{no:1,name:"requests",kind:"message",repeat:1,T:()=>bI},{no:2,name:"consuming_transport_id",kind:"scalar",opt:!0,T:9}])}}const _I=new wI;class II extends y{constructor(){super("media.edge.UpdateConsumerSimulcastConfigRequest",[{no:1,name:"producer_id",kind:"scalar",T:9},{no:2,name:"simulcast",kind:"message",T:()=>xv},{no:3,name:"producing_transport_id",kind:"scalar",T:9},{no:4,name:"mid",kind:"scalar",T:9}])}}const CI=new II;class PI extends y{constructor(){super("media.edge.UpdateConsumersSimulcastConfigRequest",[{no:1,name:"requests",kind:"message",repeat:1,T:()=>CI},{no:2,name:"consuming_transport_id",kind:"scalar",opt:!0,T:9}])}}const RI=new PI;class MI 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:()=>Ci},{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 AI=new MI;class DI extends y{constructor(){super("media.edge.SelectedPeersRequest",[])}}new DI;class OI extends y{constructor(){super("media.edge.GlobalPeerPinningRequest",[{no:1,name:"participant_id",kind:"scalar",T:9}])}}const NI=new OI;class VI 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 fc=new VI;class LI 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 LI;class xI extends y{constructor(){super("media.edge.ProducerCloseRequest",[{no:1,name:"producer_id",kind:"scalar",T:9},{no:2,name:"description",kind:"message",T:()=>Ci},{no:3,name:"producing_transport_id",kind:"scalar",opt:!0,T:9}])}}const UI=new xI;class FI 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:()=>Ci},{no:3,name:"consuming_transport_id",kind:"scalar",opt:!0,T:9}])}}const BI=new FI;class WI extends y{constructor(){super("media.edge.KickPeerRequest",[{no:1,name:"participant_id",kind:"scalar",T:9}])}}new WI;class jI extends y{constructor(){super("media.edge.KickAllPeersRequest",[{no:1,name:"propagate_kick_across_rooms",kind:"scalar",T:8}])}}const Uv=new jI;class HI 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 GI=new HI;class qI 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 $I=new qI;class JI 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 KI=new JI;class zI 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 YI=new zI;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 XI=new QI;class ZI extends y{constructor(){super("media.edge.EmptyResponse",[])}}new ZI;class eC 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:()=>ic},{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:()=>Lv}])}}const Fv=new eC;class tC 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 Bu=new tC;class iC 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 rC=new iC;class nC extends y{constructor(){super("media.edge.SelectedPeersDiffResponse",[{no:1,name:"entries",kind:"message",repeat:1,T:()=>rC}])}}const Cm=new nC;class sC extends y{constructor(){super("media.edge.PeerJoinResponse",[])}}new sC;class aC extends y{constructor(){super("media.edge.PeerJoinCompleteResponse",[{no:1,name:"room_state",kind:"message",T:()=>YI},{no:2,name:"participants",kind:"message",repeat:1,T:()=>Fv},{no:3,name:"selected_peers",kind:"message",T:()=>Bu},{no:4,name:"max_preferred_streams",kind:"scalar",T:5}])}}const Wu=new aC;class oC extends y{constructor(){super("media.edge.PeerLeaveResponse",[{no:1,name:"closed",kind:"scalar",T:8}])}}const cC=new oC;class dC extends y{constructor(){super("media.edge.ConsumeMultipleProducerResponse",[{no:1,name:"status",kind:"scalar",T:8},{no:2,name:"consumer_ids_map",kind:"message",T:()=>Vv}])}}new dC;class lC extends y{constructor(){super("media.edge.ConsumePeerResponse",[{no:1,name:"status",kind:"scalar",T:8},{no:2,name:"consumer_ids_map",kind:"message",T:()=>Vv},{no:3,name:"description",kind:"message",T:()=>Ci}])}}const uC=new lC;class hC 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:()=>Ci}])}}const pC=new hC;class mC extends y{constructor(){super("media.edge.ProducerScoreResponse",[{no:1,name:"responseid",kind:"scalar",T:9},{no:2,name:"score",kind:"message",T:()=>X_}])}}new mC;class gC 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 gC;class fC extends y{constructor(){super("media.edge.NoActiveSpeakerResponse",[])}}new fC;class vC extends y{constructor(){super("media.edge.ProducerToggleResponse",[])}}new vC;class yC extends y{constructor(){super("media.edge.ConsumerToggleResponse",[])}}new yC;class SC extends y{constructor(){super("media.edge.ProducerClosingResponse",[{no:1,name:"description",kind:"message",T:()=>Ci}])}}const TC=new SC;class kC extends y{constructor(){super("media.edge.ConsumerClosingResponse",[{no:1,name:"description",kind:"message",T:()=>Ci}])}}const EC=new kC;class bC extends y{constructor(){super("media.edge.GlobalPeerPinningResponse",[])}}new bC;class wC extends y{constructor(){super("media.edge.KickPeerResponse",[{no:1,name:"status",kind:"scalar",T:9}])}}new wC;class _C extends y{constructor(){super("media.edge.KickAllPeersResponse",[{no:1,name:"status",kind:"scalar",T:9}])}}new _C;class IC extends y{constructor(){super("media.edge.HostMediaControlForPeerResponse",[{no:1,name:"status",kind:"scalar",T:9}])}}const CC=new IC;class PC extends y{constructor(){super("media.edge.HostMediaControlForAllPeerResponse",[{no:1,name:"status",kind:"scalar",T:9}])}}const RC=new PC;class MC extends y{constructor(){super("media.edge.PeerDisplayNameEditResponse",[{no:1,name:"status",kind:"scalar",T:9}])}}const AC=new MC;class DC extends y{constructor(){super("media.edge.PeerJoinBroadcastResponse",[{no:1,name:"participant",kind:"message",T:()=>Fv}])}}const Pm=new DC;class OC extends y{constructor(){super("media.edge.TrackSubscriptionKind",[{no:1,name:"audio",kind:"scalar",T:8},{no:2,name:"video",kind:"scalar",T:8}])}}const Rm=new OC;class NC extends y{constructor(){super("media.edge.TrackSubscription",[{no:1,name:"label",kind:"scalar",T:9},{no:2,name:"webcam",kind:"message",T:()=>Rm},{no:3,name:"screenshare",kind:"message",T:()=>Rm}])}}const VC=new NC;class LC extends y{constructor(){super("media.edge.PeerProducingTransportCreateBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9},{no:2,name:"transport_details",kind:"message",T:()=>Nv},{no:3,name:"track_subscriptions",kind:"message",repeat:1,T:()=>VC}])}}new LC;class xC extends y{constructor(){super("media.edge.PeerProducerCreateBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9},{no:2,name:"producer_state",kind:"message",T:()=>ic}])}}const UC=new xC;class FC extends y{constructor(){super("media.edge.PeerProducerToggleBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9},{no:2,name:"producer_state",kind:"message",T:()=>ic},{no:3,name:"initiator_participant_id",kind:"scalar",opt:!0,T:9}])}}const Mm=new FC;class BC extends y{constructor(){super("media.edge.PeerProducerCloseBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9},{no:2,name:"producer_state",kind:"message",T:()=>ic}])}}const WC=new BC;class jC extends y{constructor(){super("media.edge.PeerLeaveBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9}])}}const ju=new jC;class HC extends y{constructor(){super("media.edge.GlobalPeerPinningBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9}])}}const Am=new HC;class GC extends y{constructor(){super("media.edge.GlobalPeerUnPinningBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9}])}}new GC;class qC extends y{constructor(){super("media.edge.RecordingStartedBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9}])}}new qC;class $C extends y{constructor(){super("media.edge.RecordingStoppedBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9}])}}new $C;class JC 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 JC;class KC extends y{constructor(){super("media.edge.PeerPingRequestBroadcastResponse",[{no:1,name:"password",kind:"scalar",T:9}])}}new KC;class zC extends y{constructor(){super("media.edge.MediaRoomTerminationBroadcastResponse",[{no:1,name:"reason",kind:"scalar",T:9}])}}new zC;class YC 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 Gl=new YC;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 XC 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 ZC=new XC;var Nn;(function(t){t[t.BROWSER=0]="BROWSER",t[t.TRACK=1]="TRACK",t[t.COMPOSITE=2]="COMPOSITE"})(Nn||(Nn={}));var rr;(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"})(rr||(rr={}));var Hu;(function(t){t[t.NONE=0]="NONE",t[t.RECORDER=1]="RECORDER",t[t.LIVESTREAMER=2]="LIVESTREAMER"})(Hu||(Hu={}));var Gu;(function(t){t[t.PEERS=0]="PEERS",t[t.ROOMS=1]="ROOMS"})(Gu||(Gu={}));var Kd;(function(t){t[t.HIVE=0]="HIVE",t[t.CHAT=1]="CHAT",t[t.PING=2]="PING"})(Kd||(Kd={}));class eP 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 tP=new eP;class iP 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",rr,"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:()=>tP}])}}const bl=new iP;class rP extends y{constructor(){super("socket.room.PeerInfoResponse",[{no:1,name:"peer",kind:"message",T:()=>bl}])}}const ys=new rP;class nP 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",rr,"STAGE_TYPE_"]}])}}const Dm=new nP;class sP 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 aP=new sP;class oP extends y{constructor(){super("socket.room.RoomPeersInfoResponse",[{no:1,name:"peers",kind:"message",repeat:1,T:()=>bl}])}}const ql=new oP;class cP extends y{constructor(){super("socket.room.RoomPeerCountResponse",[{no:1,name:"count",kind:"scalar",T:4,L:2}])}}const Om=new cP;class dP 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:()=>uP},{no:6,name:"room_uuid",kind:"scalar",opt:!0,T:9}])}}const Bv=new dP;class lP 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",Nn]},{no:3,name:"recording_status",kind:"scalar",T:9}])}}const uP=new lP;class hP extends y{constructor(){super("socket.room.RoomInfoResponse",[{no:1,name:"room",kind:"message",T:()=>Bv}])}}const Nm=new hP;class pP extends y{constructor(){super("socket.room.GetPeerInfoRequest",[{no:1,name:"peer_id",kind:"scalar",T:9}])}}const Wv=new pP;class mP 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 mP;class gP extends y{constructor(){super("socket.room.JoinRoomRequest",[{no:1,name:"peer",kind:"message",T:()=>bl},{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",Kd,"CAPABILITIES_"]},{no:8,name:"timestamp",kind:"scalar",opt:!0,T:4,L:2}])}}const fP=new gP;class vP extends y{constructor(){super("socket.room.LeaveRoomRequest",[{no:1,name:"peer",kind:"message",T:()=>bl},{no:2,name:"timestamp",kind:"scalar",opt:!0,T:4,L:2}])}}const yP=new vP;class SP extends y{constructor(){super("socket.room.UpdateRoomInfoRequest",[{no:1,name:"room",kind:"message",T:()=>Bv}])}}new SP;class TP extends y{constructor(){super("socket.room.GetConnectedRoomsDumpRequest",[])}}new TP;class kP 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 cp=new kP;class EP 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 bP=new EP;class wP 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:()=>bP}])}}const Vm=new wP;class _P extends y{constructor(){super("socket.room.GetConnectedRoomsDumpResponse",[{no:1,name:"parent_meeting",kind:"message",T:()=>Vm},{no:2,name:"meetings",kind:"message",repeat:1,T:()=>Vm}])}}const IP=new _P;class CP extends y{constructor(){super("socket.room.CreateRoomRequestPayload",[{no:1,name:"title",kind:"scalar",opt:!0,T:9}])}}const PP=new CP;class RP extends y{constructor(){super("socket.room.CreateConnectedRoomsRequest",[{no:1,name:"payloads",kind:"message",repeat:1,T:()=>PP}])}}const MP=new RP;class AP 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:()=>cp}])}}const DP=new AP;class OP extends y{constructor(){super("socket.room.CreateConnectedRoomsResponse",[{no:1,name:"payloads",kind:"message",repeat:1,T:()=>DP}])}}const Lm=new OP;class NP 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 VP=new NP;class LP extends y{constructor(){super("socket.room.UpdateConnectedRoomsRequest",[{no:1,name:"payloads",kind:"message",repeat:1,T:()=>VP}])}}new LP;class xP extends y{constructor(){super("socket.room.DisableRoomPayload",[{no:1,name:"id",kind:"scalar",opt:!0,T:9}])}}const UP=new xP;class FP extends y{constructor(){super("socket.room.DisableConnectedRoomsRequest",[{no:1,name:"payloads",kind:"message",repeat:1,T:()=>UP}])}}const BP=new FP;class WP extends y{constructor(){super("socket.room.DisableConnectedRoomsResponse",[{no:1,name:"payloads",kind:"message",repeat:1,T:()=>GP}])}}const jP=new WP;class HP 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:()=>cp}])}}const GP=new HP;class qP 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 $P=new qP;class JP 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:()=>$P}])}}const KP=new JP;class zP 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:()=>cp}])}}const jv=new zP;class YP extends y{constructor(){super("socket.room.MovePeersBetweenRoomsResponse",[{no:1,name:"payloads",kind:"message",repeat:1,T:()=>jv}])}}new YP;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 XP=new QP;class ZP extends y{constructor(){super("socket.room.GetAllAddedParticipantsResponse",[{no:1,name:"participants",kind:"message",repeat:1,T:()=>iR}])}}const eR=new ZP;class tR 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 iR=new tR;class rR extends y{constructor(){super("socket.room.RemoveParticipantsRequest",[{no:1,name:"peer_ids",kind:"scalar",repeat:2,T:9}])}}const Hv=new rR;class nR 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",Gu,"BROADCAST_TYPE_"]}])}}const ba=new nR;class sR extends y{constructor(){super("socket.room.AcceptWaitingRoomRequests",[{no:1,name:"user_ids",kind:"scalar",repeat:2,T:9}])}}const aR=new sR;class oR extends y{constructor(){super("socket.room.DenyWaitingRoomRequests",[{no:1,name:"user_ids",kind:"scalar",repeat:2,T:9}])}}const cR=new oR;class dR 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 lR=new dR;class uR extends y{constructor(){super("socket.room.GetWaitingRoomRequests",[{no:1,name:"requests",kind:"message",repeat:1,T:()=>lR}])}}const xm=new uR;class hR 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 Um=new hR;var qu;(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"})(qu||(qu={}));var Hr;(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"})(Hr||(Hr={}));class pR 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 mR=new pR;class gR 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 fR=new gR;class vR 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 yR=new vR;class SR 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 TR=new SR;class kR extends y{constructor(){super("socket.preset.ChatPermissionUpdate",[{no:1,name:"public",kind:"message",T:()=>yR},{no:2,name:"private",kind:"message",T:()=>TR}])}}const ER=new kR;class bR 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 wR=new bR;class _R extends y{constructor(){super("socket.preset.StreamPermission",[{no:1,name:"can_produce",kind:"enum",opt:!0,T:()=>["socket.preset.StreamPermissionType",Hr,"STREAM_PERMISSION_TYPE_"]},{no:2,name:"can_consume",kind:"enum",opt:!0,T:()=>["socket.preset.StreamPermissionType",Hr,"STREAM_PERMISSION_TYPE_"]}])}}const $l=new _R;class IR extends y{constructor(){super("socket.preset.MediaPermissionUpdate",[{no:1,name:"video",kind:"message",T:()=>$l},{no:2,name:"audio",kind:"message",T:()=>$l},{no:3,name:"screenshare",kind:"message",T:()=>$l}])}}const CR=new IR;class PR extends y{constructor(){super("socket.preset.PresetUpdates",[{no:1,name:"polls",kind:"message",T:()=>mR},{no:2,name:"plugins",kind:"message",T:()=>fR},{no:3,name:"chat",kind:"message",T:()=>ER},{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",qu,"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",Hu,"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:()=>wR},{no:23,name:"media",kind:"message",T:()=>CR}])}}const dp=new PR;class RR extends y{constructor(){super("socket.preset.ReadPeersPresetRequest",[{no:1,name:"user_ids",kind:"scalar",repeat:2,T:9}])}}const MR=new RR;class AR 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 DR=new AR;class OR extends y{constructor(){super("socket.preset.ReadPeersPresetResponse",[{no:1,name:"peer_presets",kind:"message",repeat:1,T:()=>DR}])}}const NR=new OR;class VR extends y{constructor(){super("socket.preset.UpdatePeerPreset",[{no:1,name:"user_ids",kind:"scalar",T:9},{no:2,name:"patch",kind:"message",T:()=>dp}])}}const Gv=new VR;class LR extends y{constructor(){super("socket.preset.UpdatePeersPresetRequest",[{no:1,name:"update_peers_presets",kind:"message",repeat:1,T:()=>Gv}])}}const xR=new LR;class UR extends y{constructor(){super("socket.preset.UpdatePeersPresetResponse",[{no:1,name:"update_peers_presets",kind:"message",repeat:1,T:()=>Gv}])}}const Fm=new UR;class FR 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 BR=new FR;class WR extends y{constructor(){super("socket.preset.BulkUpdatePeerPresetRequest",[{no:1,name:"peers",kind:"message",repeat:1,T:()=>BR},{no:2,name:"patch",kind:"message",T:()=>dp}])}}new WR;class jR extends y{constructor(){super("socket.preset.BulkUpdatePeerPresetResponse",[{no:2,name:"patch",kind:"message",T:()=>dp}])}}new jR;class HR 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 Gn=new HR;class GR 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 qR=new GR;class $R extends y{constructor(){super("socket.chat.GetPaginatedChatMessageRoomResponse",[{no:1,name:"messages",kind:"message",repeat:1,T:()=>Gn},{no:2,name:"next",kind:"scalar",T:8}])}}const JR=new $R;class KR extends y{constructor(){super("socket.chat.GetChatMessagesResponse",[{no:1,name:"messages",kind:"message",repeat:1,T:()=>Gn}])}}const qv=new KR;class zR 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 YR=new zR;class QR extends y{constructor(){super("socket.chat.SendChatMessageToRoomResponse",[{no:1,name:"message",kind:"message",T:()=>Gn}])}}const Jl=new QR;class XR 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 ZR=new XR;class eM extends y{constructor(){super("socket.chat.SendChatMessageToPeersResponse",[{no:1,name:"message",kind:"message",T:()=>Gn}])}}const Kl=new eM;class tM 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 iM=new tM;class rM extends y{constructor(){super("socket.chat.SendChatMessageToChannelResponse",[{no:1,name:"message",kind:"message",T:()=>Gn}])}}new rM;class nM 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 sM=new nM;class aM 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 oM=new aM;class cM 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 vc=new cM;class dM extends y{constructor(){super("socket.chat.EditChatMessageResponse",[{no:1,name:"message",kind:"message",T:()=>Gn}])}}const yc=new dM;class lM 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 uM=new lM;class hM 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 Sc=new hM;class pM 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 mM=new pM;class gM 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 fM=new gM;class vM extends y{constructor(){super("socket.chat.MarkChannelIndexAsReadResponse",[{no:1,name:"channel_index",kind:"scalar",T:9}])}}const yM=new vM;class SM 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 TM=new SM;class kM 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 EM=new kM;class bM extends y{constructor(){super("socket.chat.CreateChatChannelResponse",[{no:1,name:"chat_channel_id",kind:"scalar",T:9}])}}new bM;class wM extends y{constructor(){super("socket.chat.GetChatChannelRequest",[{no:1,name:"chat_channel_id",kind:"scalar",T:9}])}}const _M=new wM;class IM extends y{constructor(){super("socket.chat.LatestMessageAndUnreadCount",[{no:1,name:"message",kind:"message",T:()=>Gn},{no:2,name:"unread_count",kind:"scalar",T:4,L:2}])}}const CM=new IM;class PM 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:()=>CM},{no:7,name:"target_user_ids",kind:"scalar",repeat:2,T:9}])}}const RM=new PM;class MM extends y{constructor(){super("socket.chat.GetChatChannelResponse",[{no:1,name:"chat_channels",kind:"message",repeat:1,T:()=>RM}])}}const $i=new MM;class AM 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 DM=new AM;class OM extends y{constructor(){super("socket.chat.GetChatChannelMembersResponse",[{no:1,name:"channel_members",kind:"message",repeat:1,T:()=>DM}])}}const NM=new OM;class VM 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 LM=new VM;class xM 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 UM=new xM;class FM extends y{constructor(){super("socket.plugin.EnablePluginForRoomRequest",[{no:1,name:"plugin_id",kind:"scalar",T:9}])}}const BM=new FM;class WM extends y{constructor(){super("socket.plugin.DisablePluginForRoomRequest",[{no:1,name:"plugin_id",kind:"scalar",T:9}])}}const jM=new WM;class HM 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 GM=new HM;class qM 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 $M=new qM;class JM 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 KM=new JM;class zM 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 YM=new zM;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 lp=new QM;class XM 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:()=>lp}])}}const Bm=new XM;class ZM 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:()=>lp}])}}const eA=new ZM;class tA 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:()=>lp}])}}const iA=new tA;class rA 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 nA=new rA;class sA 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 $u=new sA;class aA extends y{constructor(){super("socket.plugin.EnablePluginsResponse",[{no:1,name:"plugins",kind:"message",repeat:1,T:()=>$u}])}}const oA=new aA;class cA 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 Wm=new cA;class dA 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 lA=new dA;class uA 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:()=>lA}])}}const jm=new uA;class hA 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 Hm=new hA;class pA 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 Gm=new pA;class mA extends y{constructor(){super("socket.livestreaming.GetStagePeersResponse",[{no:1,name:"stage_peers",kind:"scalar",repeat:2,T:9}])}}const qm=new mA;class gA 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 fA=new gA;class vA extends y{constructor(){super("socket.livestreaming.GetStageRequestsResponse",[{no:1,name:"stage_requests",kind:"message",repeat:1,T:()=>fA}])}}const zl=new vA;class yA extends y{constructor(){super("socket.livestreaming.GrantStageAccessRequest",[{no:1,name:"user_ids",kind:"scalar",repeat:2,T:9}])}}const SA=new yA;class TA extends y{constructor(){super("socket.livestreaming.DenyStageAccessRequest",[{no:1,name:"user_ids",kind:"scalar",repeat:2,T:9}])}}const kA=new TA;class EA extends y{constructor(){super("socket.livestreaming.LeaveStageRequest",[{no:1,name:"user_ids",kind:"scalar",repeat:2,T:9}])}}const $m=new EA;class bA 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:()=>_A},{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 $v=new bA;class wA 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:()=>CA}])}}const _A=new wA;class IA 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 CA=new IA;class PA 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 RA=new PA;class MA 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 AA=new MA;class DA extends y{constructor(){super("socket.polls.UpdatePollResponse",[{no:1,name:"poll",kind:"message",T:()=>$v}])}}const Yl=new DA;class OA extends y{constructor(){super("socket.polls.GetPollsResponse",[{no:1,name:"polls",kind:"message",repeat:1,T:()=>$v}])}}const NA=new OA;class VA 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",Nn]}])}}const Jm=new VA;class LA 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=ke.from(Math.floor(i/1e3)).toBigInt(),e.nanos=i%1e3*1e6,e}toDate(e){return new Date(ke.from(e.seconds).toNumber()*1e3+Math.ceil(e.nanos/1e6))}fromDate(e){const i=this.create(),r=e.getTime();return i.seconds=ke.from(Math.floor(r/1e3)).toBigInt(),i.nanos=r%1e3*1e6,i}internalJsonWrite(e,i){let r=ke.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 "+qh(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=ke.from(s/1e3).toBigInt(),r.nanos=0,n[7]&&(r.nanos=parseInt("1"+n[7]+"0".repeat(9-n[7].length))-1e9),r}}new LA;class xA 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 Ju=new xA;class UA extends y{constructor(){super("common.BulkedHubMessage",[{no:1,name:"messages",kind:"message",repeat:1,T:()=>Ju}])}}new UA;class FA extends y{constructor(){super("common.CFWorkersResponse",[{no:1,name:"responses",kind:"message",repeat:1,T:()=>Ju},{no:2,name:"broadcast_responses",kind:"message",repeat:1,T:()=>Ju}])}}new FA;const BA=0,WA=1,jA=2,HA=3,GA=4,qA=5,$A={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},JA={getMessages:0,sendMessageToRoom:1,sendMessageToPeers:2,editMessage:3,deleteMessage:4,getPaginatedMessages:5,sendMessageToChannel:6,searchChannelMessages:7,getAllChatChannels:8,markChannelIndexAsRead:9,pinMessage:10},KA={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},zA={createPoll:0,getPolls:1,votePoll:2,updatePoll:3},Jv={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},YA={createChatChannel:0,getChatChannel:1,deprecatedGetAllChatChannels:2,getChannelMembers:3,updateChatChannel:4},QA={getUserPresets:0,updateUserPreset:1};function ra(t,e){return Object.keys(e).reduce((i,r)=>(i[r]=(t<<16)+e[r],i),{})}function Kv(t,e){return Object.keys(t).reduce((i,r)=>(i[r]=e|t[r],i),{})}const F=ra(BA,$A),Ae=ra(WA,JA),$=ra(jA,KA),Zi=ra(HA,zA),Cn=ra(GA,YA),oi=Kv(Jv,16777216),Ei=Kv(Jv,50331648),Jc=ra(qA,QA);var XA=Object.defineProperty,ZA=Object.getOwnPropertyDescriptor,up=(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&&XA(e,i,n),n},en,wa,Km;const Ku=(Km=class{constructor(t,e){g(this,en,void 0),g(this,wa,void 0),f(this,en,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,en).sendMessagePromise(Cn.createChatChannel,TM.toBinary(s)),c=$i.fromBinary(o.payload).chatChannels;return Ku.formatChannel(c[0])})}updateChannel(t,e){return u(this,null,function*(){const i=yield a(this,en).sendMessagePromise(Cn.updateChatChannel,EM.toBinary({chatChannelId:t,targetUserIds:e.memberIds,displayName:e.displayName,displayPictureUrl:e.displayPictureUrl,visibility:e.visibility})),r=$i.fromBinary(i.payload).chatChannels;return Ku.formatChannel(r[0])})}static formatChannel(t){var e;const{latestMessageAndUnreadCount:i}=t,r=q(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=ar.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,en).sendMessagePromise(Cn.getChannelMembers,_M.toBinary({chatChannelId:t}));return NM.fromBinary(e.payload).channelMembers.map(i=>{var r=i,{id:n}=r,s=ml(r,["id"]);return q(V({},s),{userId:n})})}catch(e){return[]}})}on(t,e){let i,r;switch(t){case Cn.createChatChannel:{i=$i.fromBinary.bind($i),r=$i.create();break}case Cn.updateChatChannel:{i=$i.fromBinary.bind($i),r=$i.create();break}}if(!i){this.logger.warn(`ChatChannelSocketHandler::Event ${t} is not recognized`);return}a(this,en).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)})}},en=new WeakMap,wa=new WeakMap,Km);let xn=Ku;up([k.trace("ChatChannelHandler.createChannel")],xn.prototype,"createChannel",1);up([k.trace("ChatChannelHandler.updateChannel")],xn.prototype,"updateChannel",1);up([k.trace("ChatChannelHandler.getChannelMembers")],xn.prototype,"getChannelMembers",1);var e1=Object.defineProperty,t1=Object.getOwnPropertyDescriptor,Pi=(t,e,i,r)=>{for(var n=r>1?void 0:r?t1(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},_t=(t=>(t[t.TEXT=0]="TEXT",t[t.IMAGE=1]="IMAGE",t[t.FILE=2]="FILE",t[t.CUSTOM=3]="CUSTOM",t))(_t||{}),bt,ao;class ci{constructor(e,i){g(this,bt,void 0),g(this,ao,void 0),f(this,bt,i),f(this,ao,e)}get telemetry(){return a(this,ao).getValue("telemetry")}get logger(){return a(this,ao).getValue("logger")}getChatMessages(){return a(this,bt).sendMessagePromise(Ae.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,bt).sendMessagePromise(Ae.getPaginatedMessages,qR.toBinary(o));return c.payload?JR.fromBinary(c.payload):{messages:[],next:!1}})}sendMessageToRoom(e,i){const r={payloadType:i,payload:e};a(this,bt).sendMessage(Ae.sendMessageToRoom,YR.toBinary(r))}sendMessageToPeers(e,i,r){const n={payloadType:i,peerIds:r,payload:e};a(this,bt).sendMessage(Ae.sendMessageToPeers,ZR.toBinary(n))}sendMessageToChannel(e,i,r){const n={payloadType:i,channelId:r,payload:e};a(this,bt).sendMessage(Ae.sendMessageToChannel,iM.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,bt).sendMessagePromise(Ae.editMessage,sM.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,bt).sendMessagePromise(Ae.deleteMessage,uM.toBinary(r)),s=Sc.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,bt).sendMessagePromise(Ae.searchChannelMessages,mM.toBinary(o));return qv.fromBinary(c.payload).messages}catch(c){return[]}})}getAllChannels(){return u(this,null,function*(){try{const e=yield a(this,bt).sendMessagePromise(Ae.getAllChatChannels);return $i.fromBinary(e.payload).chatChannels.map(xn.formatChannel)}catch(e){return[]}})}markLastReadMessage(e,i){return u(this,null,function*(){const r=yield a(this,bt).sendMessagePromise(Ae.markChannelIndexAsRead,fM.toBinary({channelId:e,userId:i.userId,channelIndex:i.channelIndex}));return yM.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,bt).sendMessagePromise(Ae.pinMessage,oM.toBinary(r));return vc.fromBinary(n.payload)})}on(e,i){let r,n;switch(e){case Ae.sendMessageToRoom:{r=Jl.fromBinary.bind(Jl),n=Jl.create();break}case Ae.sendMessageToPeers:{r=Kl.fromBinary.bind(Kl),n=Kl.create();break}case Ae.editMessage:{r=yc.fromBinary.bind(yc),n=yc.create();break}case Ae.pinMessage:{r=vc.fromBinary.bind(vc),n=vc.create();break}case Ae.deleteMessage:{r=Sc.fromBinary.bind(Sc),n=Sc.create();break}}if(!r){this.logger.warn(`ChatSocketHandler::Event ${e} is not recognized`);return}a(this,bt).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)})}}bt=new WeakMap,ao=new WeakMap;Pi([k.trace("SocketService.getChatMessages")],ci.prototype,"getChatMessages",1);Pi([k.trace("SocketService.getChatMessagesPaginated")],ci.prototype,"getChatMessagesPaginated",1);Pi([k.trace("SocketService.sendMessageToRoom")],ci.prototype,"sendMessageToRoom",1);Pi([k.trace("SocketService.sendMessageToPeers")],ci.prototype,"sendMessageToPeers",1);Pi([k.trace("SocketService.sendMessageToChannel")],ci.prototype,"sendMessageToChannel",1);Pi([k.trace("SocketService.sendMessage")],ci.prototype,"sendMessage",1);Pi([k.trace("SocketService.editMessage")],ci.prototype,"editMessage",1);Pi([k.trace("SocketService.deleteMessage")],ci.prototype,"deleteMessage",1);Pi([k.trace("SocketService.searchMessages")],ci.prototype,"searchMessages",1);Pi([k.trace("SocketService.getAllChannels")],ci.prototype,"getAllChannels",1);Pi([k.trace("SocketService.markLastReadMessage")],ci.prototype,"markLastReadMessage",1);function i1(t){return t.replace(/([-_]\w)/g,e=>e[1].toUpperCase())}function wi(t){if(!t||typeof t!="object")return t;if(Array.isArray(t))return t.map(i=>wi(i));const e={};return Object.keys(t).forEach(i=>{const r=Gh(i)?i:i1(i);e[r]=wi(t[i])}),e}function r1(t){return t.replace(/[A-Z]/g,e=>`_${e.toLowerCase()}`)}function zv(t){if(!t||typeof t!="object")return t;if(Array.isArray(t))return t.map(i=>zv(i));const e={};return Object.keys(t).forEach(i=>{const r=Gh(i)?i:r1(i);e[r]=t[i]}),e}function zd(t,e={}){return t==null?{}:(Object.getOwnPropertyNames(t).forEach(i=>{if(typeof t[i]!="function"){if(typeof t[i]=="object"){zd(t[i],e[i]={});return}e[i]=t[i]}}),e)}class zm{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 S=yield fetch(n,c);clearTimeout(v);let E=null;const C=S.headers.get("content-type");C&&C.includes("application/json")?E=yield S.json():E=yield S.text();const b={};S.headers.forEach((j,W)=>{b[W]=j});const M={data:E,status:S.status,statusText:S.statusText,headers:b,config:e};if(!S.ok)throw M;return M}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(q(V({},e),{retry:l-1}));throw p}})}get(e){return u(this,arguments,function*(i,r={}){return this.request(q(V({},r),{method:"GET",url:i}))})}post(e,i){return u(this,arguments,function*(r,n,s={}){return this.request(q(V({},s),{method:"POST",url:r,data:n}))})}put(e,i){return u(this,arguments,function*(r,n,s={}){return this.request(q(V({},s),{method:"PUT",url:r,data:n}))})}}const n1=3,s1=30,a1=8e3;class o1{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=a1,retry:n=n1,retryDelay:s=s1,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 zm({baseURL:o,timeout:r,retry:n,retryDelay:s,responseType:"json"}),this.fetchClient=new zm({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,S,E,C;const b=e.getValue("telemetry");try{b.injectContext(this.requests.defaults.headers.common);const M=yield l(h);return h.url!==b.logsEndpoint&&this.logger.debug("xhr::fetch",{networkCall:{status:M.status,statusText:M.statusText,baseURL:h.baseURL||this.requests.defaults.baseURL,url:h.url,method:h.method}}),M}catch(M){throw M?(((p=M.config)==null?void 0:p.url)!==b.logsEndpoint&&this.logger.error("xhr::fetch",{error:M,networkCall:{status:M.status,statusText:M.statusText,baseURL:((v=M.config)==null?void 0:v.baseURL)||this.requests.defaults.baseURL,url:(S=M.config)==null?void 0:S.url,retries:(E=M.config)==null?void 0:E.retry,method:(C=M.config)==null?void 0:C.method,isOnline:navigator.onLine?"online":"offline"}}),new I(M.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 c1=Object.defineProperty,d1=Object.getOwnPropertyDescriptor,di=(t,e,i,r)=>{for(var n=r>1?void 0:r?d1(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&&c1(e,i,n),n};class Xt extends o1{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 Qh.getIPDetails({peerId:i,apiHostnames:Mv(this.context),logger:Ev});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(X.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(q(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,S,E;const C=q(V({},Ea),{tags:[...Ea.tags],baseUrl:`http://localhost:${p.port}`,name:p.name,picture:(v=p.picture)!=null?v:Ea.picture,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),id:p.id,organizationId:this.organizationId,description:(S=p.description)!=null?S:Ea.description,staggered:(E=p.staggered)!=null?E:Ea.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=Zs(this.context,"chat_upload_expiry"),n={roomUUID:this.roomUUID,filename:e,expiry:typeof r=="number"?r:void 0};this.context.getValue("flagsmith").hasFeature(X.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=wi(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=wi((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 wi(e)})}startRecording(e,i){return u(this,null,function*(){return(yield this.requests.post("/v2/recordings",q(V({},zv(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}=wi((yield this.requests.post("v2/internals/rooms",{ip_information:e})).data.data);return{roomNodeUrl:i,meetingTitle:r,useHiveMedia:n!=null?n:!1,sfu:s}})}}di([k.trace("APIClient.getIPDetails")],Xt.prototype,"getIPDetails",1);di([k.trace("APIClient.getICEServers")],Xt.prototype,"getICEServers",1);di([k.trace("APIClient.getPlugins")],Xt.prototype,"getPlugins",1);di([k.trace("APIClient.startLivestreaming")],Xt.prototype,"startLivestreaming",1);di([k.trace("APIClient.stopLivestreaming")],Xt.prototype,"stopLivestreaming",1);di([k.trace("APIClient.getActiveLivestream")],Xt.prototype,"getActiveLivestream",1);di([k.trace("APIClient.getUserDetails")],Xt.prototype,"getUserDetails",1);di([k.trace("APIClient.startRecording")],Xt.prototype,"startRecording",1);di([k.trace("APIClient.stopRecording")],Xt.prototype,"updateRecording",1);di([k.trace("APIClient.getActiveRecording")],Xt.prototype,"getActiveRecording",1);di([k.trace("APIClient.getActiveTranscript")],Xt.prototype,"getActiveTranscript",1);di([k.trace("APIClient.getRoomNodeData")],Xt.prototype,"getRoomNodeData",1);let zu;function l1(t,e){return zu=new Xt(t,e),zu}function pt(){return zu}function u1(t,e){return`<blockquote>${e.replace(/<blockquote>[.\s\S]*<\/blockquote>\n\n/m,"")}</blockquote>
|
|
14
14
|
${t}`}const na={maxInvocations:5,period:1};function Ft(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 h1=Object.defineProperty,p1=Object.getOwnPropertyDescriptor,vt=(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};const m1=["text","image","file","custom","poll"],Kc={maxInvocations:180,period:60};var ee,Kn,ze,zn,Yn,Ql,Ym,Tc,Xl,Qm;let nt=(Qm=class extends Qt{constructor(t,e,i,r,n){const s=t.getValue("logger");super(s),g(this,Ql),g(this,Tc),m(this,"messages"),m(this,"channels",[]),g(this,ee,void 0),g(this,Kn,void 0),g(this,ze,void 0),g(this,zn,void 0),g(this,Yn,void 0),m(this,"maxTextLimit",2e3),f(this,Yn,t),f(this,ze,e),f(this,zn,i),f(this,ee,r),f(this,Kn,n),this.messages=[]}get telemetry(){return a(this,Yn).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"?u1(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,_t.TEXT,i);return}let l=[];e&&e.length>0&&(e.push(a(this,ee).id),l=a(this,Kn).joined.toArray().filter(h=>e.includes(h.id)).map(h=>h.userId),l.push(a(this,ee).userId)),a(this,ze).sendMessage(t,_t.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,_t.IMAGE,i);return}let v=[];e&&e.length>0&&(e.push(a(this,ee).id),v=a(this,Kn).joined.toArray().filter(S=>e.includes(S.id)).map(S=>S.userId),v.push(a(this,ee).userId)),a(this,ze).sendMessage(h,_t.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}),_t.FILE,i);return}let v=[];e&&e.length>0&&(e.push(a(this,ee).id),v=a(this,Kn).joined.toArray().filter(E=>e.includes(E.id)).map(E=>E.userId),v.push(a(this,ee).userId));const S=JSON.stringify({link:h,name:t.name,size:"size"in t?t.size:0});a(this,ze).sendMessage(S,_t.FILE,e)}catch(l){throw new I("Error sending file message.","0500",this.logger)}})}get rateLimits(){return Kc}updateRateLimits(t,e){Kc.maxInvocations=t,Kc.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,S,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 M=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=q(V({},t),{files:yield Promise.all((v=(p=t.files)!=null?p:[])==null?void 0:v.map(W=>u(this,null,function*(){return M(W)}))),images:yield Promise.all((E=(S=t.images)!=null?S:[])==null?void 0:E.map(W=>u(this,null,function*(){return M(W)}))),videos:yield Promise.all((b=(C=t.videos)!=null?C:[])==null?void 0:b.map(W=>u(this,null,function*(){return M(W)})))});a(this,ze).sendMessage(JSON.stringify(j),_t.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,_t.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,_t.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}),_t.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,Tc,Xl))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,Tc,Xl))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=>ar.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,zn).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,zn).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,zn).getChannelMembers(t)})}searchMessages(t){return u(this,arguments,function*(e,i={}){if(!a(this,Yn).getValue("flagsmith").hasFeature(X.FEAT_CHAT_SDK_SEARCH))throw new I("searchMessages is temporarily disabled!","0506");return(yield a(this,ze).searchMessages(e,i)).map(ar.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=q(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,Kn=new WeakMap,ze=new WeakMap,zn=new WeakMap,Yn=new WeakMap,Ql=new WeakSet,Ym=function(){return a(this,Yn).getValue("connectionHandler")},Tc=new WeakSet,Xl=function(){return a(this,Ql,Ym).socketJoined===!0},Qm);vt([k.trace("DyteChat.sendTextMessage"),Ft(Kc)],nt.prototype,"sendTextMessage",1);vt([k.trace("DyteChat.sendImageMessage"),Ft({maxInvocations:20,period:60})],nt.prototype,"sendImageMessage",1);vt([k.trace("DyteChat.sendFileMessage"),Ft({maxInvocations:20,period:60})],nt.prototype,"sendFileMessage",1);vt([k.trace("DyteChat.sendMessage"),Ft({maxInvocations:180,period:60})],nt.prototype,"sendMessage",1);vt([k.trace("DyteChat.editTextMessage")],nt.prototype,"editTextMessage",1);vt([k.trace("DyteChat.editImageMessage")],nt.prototype,"editImageMessage",1);vt([k.trace("DyteChat.editFileMessage")],nt.prototype,"editFileMessage",1);vt([k.trace("DyteChat.editMessage")],nt.prototype,"editMessage",1);vt([k.trace("DyteChat.deleteMessage")],nt.prototype,"deleteMessage",1);vt([k.trace("DyteChat.createChannel")],nt.prototype,"createChannel",1);vt([k.trace("DyteChat.updateChannel")],nt.prototype,"updateChannel",1);vt([k.trace("DyteChat.sendMessageToChannel")],nt.prototype,"sendMessageToChannel",1);vt([k.trace("DyteChat.getChannelMembers")],nt.prototype,"getChannelMembers",1);vt([k.trace("DyteChat.searchMessages")],nt.prototype,"searchMessages",1);vt([k.trace("DyteChat.markLastReadMessage")],nt.prototype,"markLastReadMessage",1);nt=vt([ft("0500")],nt);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},tn,Xm;const hn=(Xm=class{constructor(t,e,i,r,n){m(this,"chat"),m(this,"chatSocketHandler"),m(this,"chatChannelSocketHandler"),m(this,"self"),g(this,tn,void 0),f(this,tn,t),this.chatSocketHandler=e,this.chatChannelSocketHandler=i,this.chat=new nt(t,e,i,r,n),this.self=r,this.setupEvents()}get telemetry(){return a(this,tn).getValue("telemetry")}get logger(){return a(this,tn).getValue("logger")}static init(t,e,i,r,n){return u(this,null,function*(){return new hn(t,e,i,r,n)})}static formatMessage(t){return q(V({},t),{time:new Date(t.time),type:m1[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 _t.TEXT:{i.message=t.payload;break}case _t.IMAGE:{i.link=t.payload;break}case _t.FILE:{const{link:r,name:n,size:s}=JSON.parse(t.payload);i.link=r,i.name=n,i.size=s;break}case _t.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 hn.formatMessage(i)}getChatMessages(){return u(this,null,function*(){if(this.self.config.viewType==="LIVESTREAM"||this.self.config.viewType==="CHAT"||a(this,tn).getValue("flagsmith").hasFeature(X.FEAT_PAGINATED_CHAT))return;const t=yield this.chatSocketHandler.getChatMessages();if(!(t!=null&&t.payload))return;const e=qv.fromBinary(t.payload).messages;this.chat.messages=e.map(i=>hn.formatSocketServiceMessage(i))})}setupEvents(){a(this,tn).getValue("peerSessionStore").on(R.SOCKET_SERVICE_ROOM_JOINED,()=>u(this,null,function*(){this.getChatMessages()})),this.chatSocketHandler.on(Ae.sendMessageToRoom,t=>{const e=hn.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(Ae.sendMessageToPeers,t=>{const e=hn.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(Ae.editMessage,t=>{const e=hn.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(Ae.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(Cn.createChatChannel,t=>{const[e]=t.chatChannels,i=xn.formatChannel(e);this.chat.channels.push(i),this.chat.emit("channelCreate",i)}),this.chatSocketHandler.on(Ae.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(Cn.updateChatChannel,t=>{const[e]=t.chatChannels,i=xn.formatChannel(e);this.chat.channels=this.chat.channels.map(r=>r.id===i.id?i:r),this.chat.emit("channelUpdate",i)})}},tn=new WeakMap,Xm);let ar=hn;v1([k.trace("ChatController.setupEvents")],ar.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},Zl,Zm,eu,eg,_a,Ia,kc,tg;let Yu=(tg=class extends Qt{constructor(t,e,i){const r=t.getValue("logger");super(r),g(this,Zl),g(this,eu),m(this,"items"),g(this,_a,void 0),g(this,Ia,void 0),g(this,kc,void 0),f(this,kc,t),f(this,_a,e),f(this,Ia,i),this.items=[]}create(t,e,i=!1,r=!1){return u(this,null,function*(){if(!a(this,eu,eg))throw new I("Can't create polls without joining room","0705");if(!a(this,_a).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,Ia).createPoll(t,e,i,r)})}vote(t,e){return u(this,null,function*(){if(!a(this,_a).permissions.polls.canVote){this.logger.error("DytePolls::vote::permission_denied");return}yield a(this,Ia).votePoll(t,e)})}},Zl=new WeakSet,Zm=function(){return a(this,kc).getValue("connectionHandler")},eu=new WeakSet,eg=function(){var t;return((t=a(this,Zl,Zm))==null?void 0:t.socketJoined)===!0},_a=new WeakMap,Ia=new WeakMap,kc=new WeakMap,tg);Yu=T1([ft("0700")],Yu);var k1=Object.defineProperty,E1=Object.getOwnPropertyDescriptor,b1=(t,e,i,r)=>{for(var n=r>1?void 0:r?E1(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&&k1(e,i,n),n},rn,Ca,Qn,ig;const Ss=(ig=class{constructor(t,e,i){m(this,"polls"),g(this,rn,void 0),g(this,Ca,void 0),g(this,Qn,void 0),this.polls=new Yu(t,e,i),f(this,Ca,e),f(this,rn,t),f(this,Qn,i),this.setupEvents()}get telemetry(){return a(this,rn).getValue("telemetry")}get logger(){return a(this,rn).getValue("logger")}static init(t,e,i){return u(this,null,function*(){return new Ss(t,e,i)})}canViewPolls(){return a(this,Ca).permissions.polls.canView}setupEvents(){const t={[Zi.createPoll]:r=>{r.poll&&this.updatePoll(Ss.formatSocketServicePoll(r.poll))},[Zi.updatePoll]:r=>{r.poll&&this.updatePoll(Ss.formatSocketServicePoll(r.poll))},[Zi.votePoll]:r=>{r.poll&&this.updatePoll(Ss.formatSocketServicePoll(r.poll))}},e=()=>{a(this,rn).getValue("peerSessionStore").on(R.SOCKET_SERVICE_ROOM_JOINED,()=>{this.getPolls()}),Object.keys(t).map(Number).forEach(r=>{a(this,Qn).on(r,t[r])})},i=()=>{a(this,rn).getValue("peerSessionStore").on(R.SOCKET_SERVICE_ROOM_JOINED,()=>{this.getPolls()}),Object.keys(t).map(Number).forEach(r=>{a(this,Qn).removeListeners(r)})};a(this,Ca).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,Qn).getPolls();if(!(t!=null&&t.payload))return;const{polls:e}=NA.fromBinary(t.payload);this.polls.items=e.map(i=>Ss.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}}},rn=new WeakMap,Ca=new WeakMap,Qn=new WeakMap,ig);let Yv=Ss;b1([k.trace("PollController.setupEvents")],Yv.prototype,"setupEvents",1);var w1=Object.defineProperty,_1=Object.getOwnPropertyDescriptor,I1=(t,e,i,r)=>{for(var n=r>1?void 0:r?_1(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&&w1(e,i,n),n},Qv=(t=>(t[t.User=0]="User",t[t.Meeting=1]="Meeting",t))(Qv||{}),Pa,Ec,tu,Xn,bc,rg;let Qu=(rg=class extends Qt{constructor(t,e,i,r,n){const s=t.getValue("logger");super(s),g(this,Ec),m(this,"selfActiveTab"),m(this,"broadcastTabChanges"),g(this,Pa,void 0),g(this,Xn,void 0),g(this,bc,void 0),m(this,"viewType"),m(this,"meetingStartedTimestamp"),m(this,"meetingTitle"),m(this,"sessionId"),f(this,Pa,t),f(this,Xn,e),this.viewType=i,f(this,bc,r),this.meetingTitle=n,this.broadcastTabChanges=e.permissions.canSpotlight}get socketState(){return a(this,Ec,tu).socketState}get mediaState(){return a(this,Ec,tu).mediaState}get meetingId(){return a(this,Pa).getValue("meetingId")}setBroadcastTabChanges(t){if(!a(this,Xn).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,Xn).permissions)!=null&&i.canSpotlight&&this.broadcastTabChanges&&e===0&&this.assertActiveTabToRoom()}assertActiveTabToRoom(){a(this,bc).broadcastMessage("spotlight",{userId:a(this,Xn).userId,currentTab:this.selfActiveTab})}},Pa=new WeakMap,Ec=new WeakSet,tu=function(){return a(this,Pa).getValue("connectionHandler")},Xn=new WeakMap,bc=new WeakMap,rg);Qu=I1([ft("0800")],Qu);function C1(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 P1=Object.defineProperty,R1=Object.getOwnPropertyDescriptor,Xv=(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&&P1(e,i,n),n},wc,ng;let $r=(ng=class extends Qt{constructor(t){const e=t.getValue("logger");super(e),m(this,"transcripts"),g(this,wc,void 0),f(this,wc,t),this.transcripts=[]}get telemetry(){return a(this,wc).getValue("telemetry")}static init(t,e){return u(this,null,function*(){const i=new $r(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]]=C1(t);return{id:Vn(),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,Nr)},
|
|
|
19
19
|
maxEnergy: ${a(this,En)}`),n===-1/0||i<1e-6?{energy:0,isVoice:!1}:((!a(this,Nr)||n<a(this,Nr))&&f(this,Nr,n),(!a(this,En)||n>a(this,En))&&f(this,En,n),{energy:(n-a(this,Nr))/(a(this,En)-a(this,Nr))*10||0,isVoice:r})},Cd=new WeakSet,Nh=function(t){return t<5},Vh=new WeakSet,Py=function(t=a(this,Js)){var e;if(!a(this,Fi)||!t){a(this,jr).getValue("flagsmith").hasFeature(X.ENABLE_AUDIO_ACTIVITY_DEBUG_LOGS)&&this.logger.debug(`AudioActivityReporter: No producerId or energy to report: ${a(this,Fi)}`);return}const i={producerId:a(this,Fi),energy:Math.round(t),silent:U(e=sl,Cd,Nh).call(e,t)};f(this,Ho,i.silent),this.reportRequest(i)},mu=new WeakSet,Og=function(t){const e=Math.log10(t);return Math.round(e)},g(Lh,Cd),g(Lh,mu);const TO=(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}},kO=(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 EO=Object.defineProperty,bO=Object.getOwnPropertyDescriptor,me=(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};const Ht=["video/VP9","video/VP8"];var Nc,Vc,St,J,eo,qi,At,cs,ds,ls,Lc,hi,kr,to,us,hs,Dt,Gt,dn,ps,gu,Ng,fu,Vg,vu,Lg,xc,yu,Su,Tu,xg,ku,Ug,Eu,Fg,bu,Bg,lt,Tt,ms,io,wu,Wg,_u,jg,Iu,Hg;const Ry=(Tu=class{constructor(t,e,i){g(this,dn),g(this,gu),g(this,fu),g(this,vu),g(this,xc),g(this,ku),g(this,Eu),g(this,bu),g(this,lt),g(this,ms),g(this,wu),g(this,_u),g(this,Iu),m(this,"context"),m(this,"authToken"),m(this,"e2ee"),g(this,Nc,void 0),g(this,Vc,void 0),g(this,St,void 0),g(this,J,void 0),g(this,eo,void 0),g(this,qi,void 0),g(this,At,void 0),g(this,cs,void 0),g(this,ds,void 0),g(this,ls,void 0),g(this,Lc,void 0),g(this,hi,null),g(this,kr,void 0),g(this,to,void 0),g(this,us,void 0),g(this,hs,void 0),g(this,Dt,void 0),g(this,Gt,void 0);var r,n;this.context=t;const{socket:s}=i;this.mediaJoined=!1,f(this,us,new Map([["video/VP9",new Set],["video/VP8",new Set]])),f(this,hs,new Map([["video/VP9",new Set],["video/VP8",new Set]])),f(this,qi,e),f(this,St,s),f(this,cs,!1),f(this,J,new fO(t,s,e)),f(this,At,a(this,J).events),f(this,kr,new Set),f(this,Dt,new Map),f(this,ds,!1),f(this,ls,new sh(t.getValue("logger"))),e===De.CF&&f(this,Gt,new Lh(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,Lc,op(()=>u(this,null,function*(){if(!a(this,dn,ps).mediaJoinAttempted)return;const{roomJoined:o}=yield this.joinRoom(a(this,Vc),a(this,Nc),!0,!0);o&&(this.context.getValue("peerSessionStore").emit(R.RESET_PRODUCER_STATE),this.context.getValue("peerSessionStore").emit(R.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,dn,ps).mediaJoined}set mediaJoined(t){a(this,dn,ps).mediaJoined=t}reset(){a(this,J).closeAllProducers(),a(this,J).closeAllConsumers(),a(this,Dt).clear(),a(this,kr).clear(),f(this,hi,null),a(this,ls).stop(),a(this,J).stopAllTransports(),a(this,J).reset(),f(this,ls,new sh)}joinRoom(t,e){return u(this,arguments,function*(i,r,n=!1,s=!1,o={}){a(this,dn,ps).mediaJoinAttempted=!0,f(this,cs,!0),n&&this.reset();try{return yield a(this,ls).push(()=>U(this,gu,Ng).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(R.ROOM_NODE_FAILED),{roomJoined:!1}}})}initializeConnection(t,e){return u(this,arguments,function*(i,r,n=!1,s={}){return a(this,hi)?a(this,hi):(f(this,hi,(()=>u(this,null,function*(){try{yield U(this,xc,yu).call(this,i,r,n,s)}catch(o){throw f(this,hi,null),o}}))()),a(this,hi))})}getConsumers(){return a(this,J).consumers}leaveRoom(){return u(this,null,function*(){a(this,J).stopAllTransports(),f(this,ds,!1),a(this,dn,ps).mediaJoinAttempted=!1;const t={closeRoom:!1};a(this,St).sendMessagePromise(a(this,At).leaveRoom,TI.toBinary(t)).then(e=>{var i;(i=cC.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"?Se.WEBCAM:Se.WEBCAM_BACKUP,r=U(this,lt,Tt).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(Ht.filter(h=>h!==e)),s=U(this,Iu,Hg).call(this,t,n),o=Zs(this.context,"disableSimulcast"),c=a(this,qi)===De.CF?X.ENABLE_CF_SIMULCAST:X.ENABLE_HIVE_SIMULCAST;!o&&this.context.getValue("flagsmith").hasFeature(c)?(this.logger.info(`Simulcast enabled for SFU: ${a(this,qi)}`),s.encodings=sD(this.context,t)):this.logger.info(`Simulcast disabled for webcam producer, SFU: ${a(this,qi)}`),this.context.getValue("flagsmith").hasFeature(X.TRACK_HINT)&&(s.track.contentHint=this.context.getValue("flagsmith").getValue(X.TRACK_HINT));const d=()=>{this.logger.info("Disabling video due to the producer closure"),a(this,Dt).delete(i)},l=a(this,J).createProducer(s,d);return U(this,ms,io).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(X.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=Ht.filter(n=>{var s,o;return((o=(s=a(this,eo).sender)==null?void 0:s.video)==null?void 0:o.codecs.findIndex(c=>c.mimeType===n))>=0&&a(this,hs).get(n).size>0});return r.length===0&&r.push(Ht[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:Ie.isElectron()},stopTracks:!1},n=()=>{this.logger.info("Disabling screenShare due to the producer closure"),a(this,Dt).delete(Se.SCREENSHARE_VIDEO),a(this,Dt).delete(Se.SCREENSHARE_AUDIO)},s=a(this,J).createProducer(r,n);U(this,ms,io).call(this,Se.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:Ie.isElectron()},stopTracks:!1,zeroRtpOnPause:a(this,qi)!==De.CF},d=()=>{};o=a(this,J).createProducer(c,d),U(this,ms,io).call(this,Se.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,lt,Tt).call(this,Se.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,Gt)&&(a(this,Gt).audioTrack=t,a(this,Gt).producerId=s,a(this,Gt).start());return}yield a(this,J).closeProducer(s,{stopTrack:!1})}yield this.shareMic(t);return}const i=U(this,_u,jg).call(this,t),r=()=>{a(this,Dt).delete(Se.MIC)},n=a(this,J).createProducer(i,r);U(this,ms,io).call(this,Se.MIC,n.then(s=>s.id)),yield n.then(s=>{a(this,Gt)&&(a(this,Gt).audioTrack=s.track,a(this,Gt).producerId=s.id,a(this,Gt).start())})}catch(e){throw new I(e)}})}pauseMic(){return u(this,null,function*(){var t;const e=yield U(this,lt,Tt).call(this,Se.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,Gt))==null||t.stop();const r={producerId:i.id,pause:!0};a(this,St).sendMessage(a(this,At).toggleProducer,fc.toBinary(r))})}pauseWebcam(){return u(this,null,function*(){const t=yield U(this,lt,Tt).call(this,Se.WEBCAM),e=yield U(this,lt,Tt).call(this,Se.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,St).sendMessage(a(this,At).toggleProducer,fc.toBinary(o))};i&&(i.pause(),n(i)),r&&(r.pause(),n(r))})}resumeMic(){return u(this,null,function*(){const t=yield U(this,lt,Tt).call(this,Se.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(R.E2EE_ACTIVE_PRODUCER,e);const i={producerId:e.id,pause:!1};a(this,St).sendMessage(a(this,At).toggleProducer,fc.toBinary(i))})}resumeWebcam(){return u(this,arguments,function*(t=Se.WEBCAM){const e=yield U(this,lt,Tt).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(R.E2EE_ACTIVE_PRODUCER,i);const r={producerId:i.id,pause:!1};a(this,St).sendMessage(a(this,At).toggleProducer,fc.toBinary(r))})}disableWebcam(t){return u(this,null,function*(){const e=t==="video/VP9"?Se.WEBCAM:Se.WEBCAM_BACKUP,i=yield U(this,lt,Tt).call(this,e);U(this,wu,Wg).call(this,e),i&&(yield a(this,J).closeProducer(i))})}disableMic(){return u(this,null,function*(){var t;const e=yield U(this,lt,Tt).call(this,Se.MIC);e&&(yield a(this,J).closeProducer(e)),(t=a(this,Gt))==null||t.stop(),a(this,Dt).delete(Se.MIC)})}disableScreenShare(){return u(this,null,function*(){this.logger.info("screen_sharing_stopped"),this.context.getValue("callstats").screenShareStop();const t=yield U(this,lt,Tt).call(this,Se.SCREENSHARE_VIDEO),e=yield U(this,lt,Tt).call(this,Se.SCREENSHARE_AUDIO);t&&(yield a(this,J).closeProducer(t)),e&&(yield a(this,J).closeProducer(e)),a(this,kr).clear(),a(this,Dt).delete(Se.SCREENSHARE_VIDEO),a(this,Dt).delete(Se.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,lt,Tt).call(this,Se.WEBCAM),r=yield U(this,lt,Tt).call(this,Se.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,lt,Tt).call(this,Se.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,St).sendMessagePromise(a(this,At).globalPinPeer,NI.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,kr).add(t.consumerPeerId),a(this,kr).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,St).on(a(this,At).peerProducerCreateBroadcast,({payload:t})=>{var e,i;if(this.mediaJoined)try{const{participantId:r,producerState:n}=UC.fromBinary(t);if(r===this.peerId)return;if(n!=null&&n.mimeType||(n.mimeType=n.kind===Bi.AUDIO?"audio/opus":"video/VP8"),n.kind===Bi.VIDEO&&!n.screenShare&&((i=(e=a(this,eo).receiver)==null?void 0:e.video)==null?void 0:i.codecs.findIndex(s=>s.mimeType===Ht[0]))>=0&&a(this,us).get(Ht[0]).has(r)&&n.mimeType!==Ht[0]){this.logger.warn(`Ignoring producer: ${n.producerId}`);return}this.logger.info(`producer created broadcast: ${r}, producer state: ${n}`),this.context.getValue("peerSessionStore").emit(R.NEW_PRODUCER,{peerId:r,producer:q(V({},n),{kind:n.kind===Bi.AUDIO?"audio":"video",producingPeerId:r})})}catch(r){this.logger.error("error in peer-producer-create-broadcast",{error:r})}}),a(this,St).on(a(this,At).peerProducerToggleBroadcast,({payload:t})=>{if(this.mediaJoined)try{const{participantId:e,initiatorParticipantId:i,producerState:{kind:r,pause:n,producerId:s}}=Mm.fromBinary(t),o=r===Bi.AUDIO?"audio":"video";if(this.logger.info(`producer toggle broadcast: ${e}, producerId: ${s}, kind:${o}, paused:${n} payload: ${JSON.stringify(Mm.fromBinary(t))}`),e===this.peerId&&i!==this.peerId&&n&&this.context.getValue("peerSessionStore").emit(o==="audio"?R.MUTE_SELF:R.MUTE_SELF_VIDEO),e===this.peerId)return;this.context.getValue("peerSessionStore").emit(R.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(R.CONSUMER_PAUSED,{id:c.id})):(c.resume(),this.context.getValue("peerSessionStore").emit(R.CONSUMER_RESUMED,{id:c.id})))})}catch(e){this.logger.error("error in producer toggle broadcast handler",{error:e})}}),a(this,St).on(a(this,At).peerLeaveBroadcast,({payload:t})=>{if(this.mediaJoined)try{const{participantId:e}=ju.fromBinary(t);if(e===this.peerId)return;this.logger.info(`peer left broadcast:${e}`),a(this,kr).delete(e),a(this,J).consumers.forEach(i=>{i.peerId===e&&i.close()}),this.context.getValue("peerSessionStore").emit(R.PEER_CLOSED,{id:e})}catch(e){this.logger.error("error in peer left broadcast",{error:e})}}),a(this,St).on(a(this,At).peerProducerCloseBroadcast,({payload:t})=>{if(this.mediaJoined)try{const{participantId:e,producerState:{producerId:i}}=WC.fromBinary(t);if(e===this.peerId)return;this.logger.info(`producer closed broadcast:${e}`),this.context.getValue("peerSessionStore").emit(R.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(R.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,St).on(a(this,At).mediaRoomTerminationBroadcastResponse,()=>{!this.mediaJoined&&!a(this,cs)&&!a(this,ds)||(this.logger.warn("media hub termination broadcast received, rejoining room"),this.context.getValue("peerSessionStore").emit(R.ROOM_NODE_DISCONNECTED),a(this,Lc).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(R.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(R.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<=Ht.length;o+=1){const c=Ht[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===Ht.length-1){a(this,hs).get(c).add(t);break}}for(let o=0;o<=Ht.length;o+=1){const c=Ht[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===Ht.length-1){a(this,us).get(c).add(t);break}}}handlePeerLeaving(t){this.context.getValue("flagsmith").hasFeature(X.FORCE_VIDEO_CODEC)||(a(this,us).forEach(e=>e.delete(t)),a(this,hs).forEach((e,i)=>{e.delete(t),!(e.size!==0||i===Ht[0])&&this.disableWebcam(i)}))}},Nc=new WeakMap,Vc=new WeakMap,St=new WeakMap,J=new WeakMap,eo=new WeakMap,qi=new WeakMap,At=new WeakMap,cs=new WeakMap,ds=new WeakMap,ls=new WeakMap,Lc=new WeakMap,hi=new WeakMap,kr=new WeakMap,to=new WeakMap,us=new WeakMap,hs=new WeakMap,Dt=new WeakMap,Gt=new WeakMap,dn=new WeakSet,ps=function(){return this.context.getValue("connectionHandler")},gu=new WeakSet,Ng=function(t,e,i,r){return u(this,null,function*(){f(this,Vc,t);try{return a(this,hi)?yield a(this,hi):yield U(this,xc,yu).call(this,t,e,i,r),U(this,vu,Lg).call(this,e),{roomJoined:yield U(this,fu,Vg).call(this)}}catch(n){return this.logger.error("Failed to complete room join",{error:n}),{roomJoined:!1}}finally{f(this,hi,null)}})},fu=new WeakSet,Vg=function(){return u(this,null,function*(){try{this.mediaJoined=!0;const{roomState:t}=yield a(this,J).socketHandler.notifySelfJoinComplete();return f(this,Nc,t.roomUuid),f(this,ds,!0),f(this,cs,!1),!0}catch(t){return this.logger.error("Error completing room join",{error:t}),this.mediaJoined=!1,!1}})},vu=new WeakSet,Lg=function(t){navigator.product!=="ReactNative"&&setTimeout(()=>{try{const e={userId:this.context.getValue("userId"),peerId:this.peerId,roomUUID:t,roomViewType:"groupCall",deviceInfo:q(V({},Ie.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)},xc=new WeakSet,yu=function(t,e,i,r){return u(this,null,function*(){var n,s;try{(s=a(this,to))!=null||f(this,to,U(n=Ry,Su,xg).call(n));const o=U(this,ku,Ug).call(this);yield U(this,Eu,Fg).call(this,t,e,i,o),yield a(this,J).setupTransports({send:!0,recv:!0}),yield U(this,bu,Bg).call(this,r)}catch(o){throw this.logger.error("Failed to initialize connection",{error:o}),o}})},Su=new WeakSet,xg=function(){const{ipInfo:t}=pt();if(!(t!=null&&t.loc))return;const[e,i]=t.loc.split(",").map(parseFloat);return{latitude:e,longitude:i}},ku=new WeakSet,Ug=function(){var t;const e=(t=this.context.getValue("flagsmith").getValue(X.FORCE_VIDEO_CODEC))==null?void 0:t.toString(),i=rO(e);return f(this,eo,i),i},Eu=new WeakSet,Fg=function(t,e,i,r){return u(this,null,function*(){yield my((n,s)=>u(this,null,function*(){if(!a(this,St).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,to))}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(X.ENABLE_HIVE_INFINITE_RETRIES)?1/0:3})})},bu=new WeakSet,Bg=function(t){return u(this,null,function*(){if(!(a(this,qi)===De.HIVE||!this.context.getValue("flagsmith").hasFeature(X.PRECREATE_PRODUCERS)||!t))try{const e=[];if(t.canProduceVideo===G.Allowed&&e.push(this.shareWebcam(kO(!1))),t.canProduceAudio===G.Allowed){const i=TO(!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})}})},lt=new WeakSet,Tt=function(t){return a(this,Dt).get(t)},ms=new WeakSet,io=function(t,e){return a(this,Dt).set(t,e)},wu=new WeakSet,Wg=function(t){return a(this,Dt).delete(t)},_u=new WeakSet,jg=function(t){return{track:t,encodings:[{priority:"high"}],codecOptions:[{name:"opus"}],appData:{e2ee:this.e2ee},stopTracks:!1,zeroRtpOnPause:a(this,qi)!==De.CF}},Iu=new WeakSet,Hg=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(Tu,Su),Tu);let le=Ry;me([k.trace("MediaNodeClient.reset",{country:k.location.country})],le.prototype,"reset",1);me([k.trace("MediaNodeClient.joinRoom")],le.prototype,"joinRoom",1);me([k.trace("MediaNodeClient.leaveRoom")],le.prototype,"leaveRoom",1);me([k.trace("MediaNodeClient.activatePeers")],le.prototype,"activatePeers",1);me([k.trace("MediaNodeClient.createConsumers")],le.prototype,"createConsumers",1);me([k.trace("MediaNodeClient.closeConsumers")],le.prototype,"closeConsumers",1);me([k.trace("MediaNodeClient._shareWebcam")],le.prototype,"_shareWebcam",1);me([k.trace("MediaNodeClient.shareWebcam")],le.prototype,"shareWebcam",1);me([k.trace("MediaNodeClient.shareScreen")],le.prototype,"shareScreen",1);me([k.trace("MediaNodeClient.shareMic")],le.prototype,"shareMic",1);me([k.trace("MediaNodeClient.pauseMic")],le.prototype,"pauseMic",1);me([k.trace("MediaNodeClient.pauseWebcam")],le.prototype,"pauseWebcam",1);me([k.trace("MediaNodeClient.resumeMic")],le.prototype,"resumeMic",1);me([k.trace("MediaNodeClient.resumeWebcam")],le.prototype,"resumeWebcam",1);me([k.trace("MediaNodeClient.disableWebcam")],le.prototype,"disableWebcam",1);me([k.trace("HiveClient.disableMic")],le.prototype,"disableMic",1);me([k.trace("HiveClient.disableScreenShare")],le.prototype,"disableScreenShare",1);me([k.trace("MediaNodeClient.muteSelf")],le.prototype,"muteSelf",1);me([k.trace("MediaNodeClient.resetVideoProducers")],le.prototype,"resetVideoProducers",1);me([k.trace("MediaNodeClient.changeDisplayName")],le.prototype,"changeDisplayName",1);me([k.trace("MediaNodeClient.kickPeer")],le.prototype,"kick",1);me([k.trace("MediaNodeClient.kickAllPeers")],le.prototype,"kickAll",1);me([k.trace("MediaNodeClient.muteAll")],le.prototype,"muteAll",1);me([k.trace("MediaNodeClient.muteAllVideo")],le.prototype,"muteAllVideo",1);me([k.trace("MediaNodeClient.disableAudio")],le.prototype,"disableAudio",1);me([k.trace("MediaNodeClient.disableVideo")],le.prototype,"disableVideo",1);me([k.trace("MediaNodeClient.pinPeer")],le.prototype,"pinPeer",1);me([k.trace("MediaNodeClient.validateScreenShare")],le.prototype,"validateScreenShare",1);function My(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 le(t,e,i);return t.setValue("roomNodeClient",n),n}function Ay(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 wO=Object.defineProperty,_O=Object.getOwnPropertyDescriptor,Jn=(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},gs,Ai,re,Ot,qt,Gg;const Dy=(Gg=class{constructor(t,e,i,r){g(this,Ot),m(this,"self"),m(this,"authToken"),g(this,gs,void 0),m(this,"viewType"),g(this,Ai,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,gs,n),f(this,Ai,i),e.config.viewType!==Ut.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 st.__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(X.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:Ie.getDeviceInfo().engineName,env:t.getValue("env"),iceServers:yield s.getICEServers(),apiBase:t.getValue("apiBase"),flags:t.getValue("flagsmith").getAllFlags(),logger:l,apiHostnames:Mv(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 Dy(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,Ot,qt).shareMic(e),this.self.audioEnabled||a(this,Ot,qt).pauseMic()}catch(d){this.self.disableAudio()}if(r.canProduceVideo===G.Allowed&&s)try{const d=yield a(this,Ot,qt).shareWebcam(i);d&&d.id!==i.id&&a(this,re).getValue("flagsmith").hasFeature(X.EXP_RESHARE)&&(yield a(this,Ot,qt).shareWebcam(d)),this.self.videoEnabled||a(this,Ot,qt).pauseWebcam()}catch(d){this.self.disableVideo()}if(r.canProduceScreenshare===G.Allowed&&o)try{yield(t=a(this,Ot,qt))==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,Ot,qt).reset(),t&&(yield this.joinRoom(t))})}setupEvents(){a(this,re).getValue("peerSessionStore").on(R.RESET_PRODUCER_STATE,()=>u(this,null,function*(){this.mediaJoined&&this.shareMediaTracks()})),a(this,re).getValue("peerSessionStore").on(R.ROOM_NODE_RECONNECTED,()=>{this.self.roomState="joined",this.self.emit("roomJoined",{reconnected:!0})}),a(this,re).getValue("peerSessionStore").on(R.ROOM_NODE_DISCONNECTED,()=>{this.self.roomState!=="disconnected"&&(this.self.roomState="disconnected",this.self.emit("roomLeft",{state:"disconnected"}))}),a(this,re).getValue("peerSessionStore").on(R.ROOM_NODE_FAILED,()=>{this.self.roomState="failed",this.self.emit("roomLeft",{state:"failed"})}),a(this,re).getValue("peerSessionStore").on(R.SOCKET_SERVICE_RECONNECTED,({wasJoinAttempted:t})=>{t===!1&&(this.self.roomState="init"),this.resetSelf(t)}),a(this,re).getValue("peerSessionStore").on(R.SOCKET_SERVICE_DISCONNECTED,({joinAttempted:t})=>{if(this.self.roomState==="disconnected")return;let{peerId:e}=this;t&&a(this,re).getValue("flagsmith").hasFeature(X.REFRESH_ID_ON_DISCONNECTION)&&(e=Vn()),a(this,gs).updateURL(e),a(this,re).getValue("telemetry").resetPeerId(e),pt().setHeader("dyte-tracing-id",e),sr.remapContext(e,a(this,re)),this.self.roomState="disconnected",this.self.emit("roomLeft",{state:"disconnected"})}),a(this,re).getValue("peerSessionStore").on(R.SOCKET_SERVICE_FAILED,()=>{this.self.roomState="failed",this.self.emit("roomLeft",{state:"failed"})}),a(this,Ai).on(F.waitingRoomRequestAccepted,()=>{this.waitlistAcceptHandler()}),a(this,Ai).on(Jc.updateUserPreset,t=>{t.updatePeersPresets.forEach(e=>{e.userIds===this.self.userId&&a(this,re).getValue("peerSessionStore").emit(R.UPDATE_PERMISSIONS,e.patch)})}),a(this,Ai).on(F.waitingRoomRequestDenied,()=>{this.waitlistRejectedHandler()}),a(this,Ai).on(F.kick,()=>{this.kickHandler({kickType:"kick"})}),a(this,Ai).on(F.kickAll,()=>{this.kickHandler({kickType:"kickAll"})}),a(this,re).getValue("peerSessionStore").onAsync(R.JOIN_MEDIA_ROOM,this.joinMediaRoom.bind(this)),a(this,re).getValue("peerSessionStore").on(R.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(R.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(R.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(R.LEAVE_MEDIA_ROOM,this.leaveMediaRoom.bind(this)),a(this,re).getValue("peerSessionStore").on(R.PIP_HANGUP,this.leaveRoom.bind(this))}joinRoom(t=!1){return u(this,null,function*(){try{const{peer:e}=yield a(this,Ai).joinRoom(this.self);a(this,Ai).socket.flush();const i=hp(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,gs))==null||i.disconnect()}catch(r){this.logger.error("SelfController::leaveRoom::socketDisconnect")}Ay(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===Ut.Livestream){if(o!=="ON_STAGE"){this.self.roomState="joined",this.self.emit("roomJoined",{reconnected:t});return}My(a(this,re),d,{socket:a(this,gs),peerId:r})}const{canProduceAudio:l,canProduceVideo:h,canProduceScreenshare:p}=this.self.permissions,{roomJoined:v}=(i=yield(e=a(this,Ot,qt))==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===Ut.Webinar)&&a(this,Ot,qt)&&(a(this,Ot,qt).mediaJoined&&t!=="disconnected"&&(yield a(this,Ot,qt).leaveRoom()),!(t==="stageLeft"&&e===Ut.Livestream)&&(a(this,Ot,qt).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()})}},gs=new WeakMap,Ai=new WeakMap,re=new WeakMap,Ot=new WeakSet,qt=function(){return a(this,re).getValue("roomNodeClient")},Gg);let Qr=Dy;Jn([k.trace("SelfController.resetSelf")],Qr.prototype,"resetSelf",1);Jn([k.trace("SelfController.setupEvents")],Qr.prototype,"setupEvents",1);Jn([k.trace("SelfController.joinRoom")],Qr.prototype,"joinRoom",1);Jn([k.trace("SelfController.leaveRoom")],Qr.prototype,"leaveRoom",1);Jn([k.trace("SelfController.joinMediaRoom")],Qr.prototype,"joinMediaRoom",1);Jn([k.trace("SelfController.leaveMediaRoom")],Qr.prototype,"leaveMediaRoom",1);Jn([k.trace("SelfController.init")],Qr,"init",1);var Pd;class IO{constructor(e){g(this,Pd,void 0),f(this,Pd,e)}on(e,i){let r;e===F.roomPeerCount?r=Om.fromBinary.bind(Om):r=Gm.fromBinary.bind(Gm),a(this,Pd).on(e,({payload:n})=>{if(e===F.roomPeerCount&&!n)return;const s=r(n);i(s)})}}Pd=new WeakMap;var Rd,Md;class CO{constructor(e,i){g(this,Rd,void 0),g(this,Md,void 0),f(this,Rd,i),f(this,Md,e)}get logger(){return a(this,Md).getValue("logger")}on(e,i){let r,n;switch(e){case F.transcript:{r=Gl.fromBinary.bind(Gl),n=Gl.create();break}default:{this.logger.debug("AISocketHandler switch case hit default, event not accounted for.");break}}a(this,Rd).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)})}}Rd=new WeakMap,Md=new WeakMap;var PO=Object.defineProperty,RO=Object.getOwnPropertyDescriptor,wp=(t,e,i,r)=>{for(var n=r>1?void 0:r?RO(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&&PO(e,i,n),n},Vr,Ro;class Rl{constructor(e,i){g(this,Vr,void 0),g(this,Ro,void 0),f(this,Vr,i),f(this,Ro,e)}get logger(){return a(this,Ro).getValue("logger")}get telemetry(){return a(this,Ro).getValue("telemetry")}getPolls(){return a(this,Vr).sendMessagePromise(Zi.getPolls)}createPoll(e,i,r=!1,n=!1){const s={anonymous:r,hideVotes:n,question:e,options:i};return a(this,Vr).sendMessage(Zi.createPoll,RA.toBinary(s))}votePoll(e,i){const r={index:i,pollId:e};return a(this,Vr).sendMessage(Zi.votePoll,AA.toBinary(r))}on(e,i){let r,n;switch(e){case Zi.updatePoll:case Zi.createPoll:case Zi.votePoll:{r=Yl.fromBinary.bind(Yl),n=Yl.create();break}}a(this,Vr).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,Vr).removeListeners(e)}}Vr=new WeakMap,Ro=new WeakMap;wp([k.trace("PollSocketHandler.getPolls")],Rl.prototype,"getPolls",1);wp([k.trace("PollSocketHandler.createPoll")],Rl.prototype,"createPoll",1);wp([k.trace("PollSocketHandler.votePoll")],Rl.prototype,"votePoll",1);var MO=Object.defineProperty,AO=Object.getOwnPropertyDescriptor,DO=(t,e,i,r)=>{for(var n=r>1?void 0:r?AO(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&&MO(e,i,n),n},si;class Oy{constructor(e,i){m(this,"socket"),g(this,si,void 0),f(this,si,e),this.socket=i,this.handleSocketEvents(),a(this,si).setValue("roomSocketHandler",this)}get telemetry(){return a(this,si).getValue("telemetry")}get logger(){return a(this,si).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,fP.toBinary(r));try{const{peer:s}=ys.fromBinary((yield n).payload);a(this,si).getValue("connectionHandler").socketJoined=!0,a(this,si).getValue("peerSessionStore").emit(R.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,si).getValue("peerSessionStore").emit(R.ROOM_STATE,d),a(this,si).getValue("peerSessionStore").emit(R.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 eR.fromBinary((yield this.socket.sendMessagePromise(F.getAllAddedParticipants)).payload).participants.map(e=>{var i=e,{id:r}=i,n=ml(i,["id"]);return q(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,aP.toBinary(s));n=ql.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=ql.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=ql.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,Wv.toBinary({peerId:e}));i=ys.fromBinary(r.payload)}catch(r){this.logger.error("getPeerInfo::binary_decode_error",{error:r})}return i})}getRoomState(){return u(this,null,function*(){let e=Nm.create();try{const i=yield this.socket.sendMessagePromise(F.getRoomInfo);e=Nm.fromBinary(i.payload)}catch(i){this.logger.error("getRoomState::binary_decode_error",{error:i})}return e})}getRoomStageState(){return u(this,null,function*(){let e=Um.create();try{const i=yield this.socket.sendMessagePromise(F.getRoomStageState);e=Um.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,yP.toBinary({}))})}kick(e){return u(this,null,function*(){const i={peerIds:[e]};this.socket.sendMessage(F.kick,Hv.toBinary(i))})}kickAll(e=!1){return u(this,null,function*(){const i={propagateKickAcrossRooms:e};this.socket.sendMessage(F.kickAll,Uv.toBinary(i))})}getWaitingRoomRequests(){this.socket.sendMessage(F.getWaitingRoomRequests)}acceptWaitingRoomRequest(e){const i={userIds:e};this.socket.sendMessage(F.acceptWaitingRoomRequests,aR.toBinary(i))}rejectWaitingRoomRequest(e){const i={userIds:e};this.socket.sendMessage(F.denyWaitingRoomRequests,cR.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(Jc.updateUserPreset,xR.toBinary(r))})}handleSocketEvents(){this.socket.on(F.broadcastMessage,({payload:e})=>{try{const i=ba.fromBinary(e);a(this,si).getValue("peerSessionStore").emit(R.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,si).getValue("peerSessionStore").emit(R.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=ys.fromBinary.bind(ys),n=ys.create();break}case F.getWaitingRoomRequests:{r=(s,o)=>s?xm.fromBinary(s,o):{requests:[]},n=xm.create();break}case F.recordingPaused:case F.recordingStarted:case F.recordingStopped:{r=Jm.fromBinary.bind(Jm);break}case Jc.updateUserPreset:{r=Fm.fromBinary.bind(Fm);break}case Ei.peerJoinedBroadcast:case oi.peerJoinedBroadcast:{r=Pm.fromBinary.bind(Pm);break}case Ei.selfJoinComplete:case oi.selfJoinComplete:{r=Wu.fromBinary.bind(Wu);break}case Ei.globalPeerPinBroadcast:case oi.globalPeerPinBroadcast:{r=Am.fromBinary.bind(Am);break}case Ei.selectedPeer:case oi.selectedPeer:{r=Bu.fromBinary.bind(Bu);break}case Ei.selectedPeerDiff:case oi.selectedPeerDiff:{r=Cm.fromBinary.bind(Cm);break}case Ei.leaveRoom:case oi.leaveRoom:{r=ju.fromBinary.bind(ju);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(Jc.getUserPresets,MR.toBinary(i)),n=NR.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}})}}si=new WeakMap;DO([k.trace("RoomSocketHandler.joinRoom")],Oy.prototype,"joinRoom",1);var Kt;class OO{constructor(e){g(this,Kt,void 0),f(this,Kt,e)}getStageRequests(){return u(this,null,function*(){const{payload:e}=yield a(this,Kt).sendMessagePromise(F.getStageRequests);return e?zl.fromBinary(e):{stageRequests:[]}})}requestAccess(){a(this,Kt).sendMessage(F.requestStageAccess)}cancelRequestAccess(){a(this,Kt).sendMessage(F.cancelStageRequest)}grantAccess(e){return u(this,null,function*(){const i={userIds:e};a(this,Kt).sendMessage(F.grantStageAccess,SA.toBinary(i))})}denyAccess(e){return u(this,null,function*(){const i={userIds:e};a(this,Kt).sendMessage(F.denyStageAccess,kA.toBinary(i))})}joinStage(){return a(this,Kt).sendMessagePromise(F.joinStage,void 0,void 0,F.peerStageStatusUpdate)}leaveStage(e){const i={userIds:[e]};return a(this,Kt).sendMessagePromise(F.leaveStage,$m.toBinary(i),void 0,F.peerStageStatusUpdate)}kick(e){const i={userIds:e};return a(this,Kt).sendMessagePromise(F.leaveStage,$m.toBinary(i))}on(e,i){let r;switch(e){case F.grantStageAccess:case F.denyStageAccess:{r=void 0;break}case F.getStagePeers:{r=qm.fromBinary.bind(qm);break}case F.getStageRequests:case F.requestStageAccess:case F.cancelStageRequest:{r=zl.fromBinary.bind(zl);break}case F.peerStageStatusUpdate:{r=Dm.fromBinary.bind(Dm);break}}a(this,Kt).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,Kt).sendMessagePromise(F.getPeerInfo,Wv.toBinary({peerId:e}));return ys.fromBinary(i.payload)})}}Kt=new WeakMap;var it,Ad;class NO{constructor(e,i){g(this,it,void 0),g(this,Ad,void 0),f(this,it,i),f(this,Ad,e)}get logger(){return a(this,Ad).getValue("logger")}addPlugin(e,i){a(this,it).sendMessage($.addPlugin,LM.toBinary({pluginId:e,staggered:i}))}removePlugin(e){a(this,it).sendMessage($.removePlugin,UM.toBinary({pluginId:e,staggered:!1}))}getActivePlugins(){return u(this,null,function*(){const{payload:e}=yield a(this,it).sendMessagePromise($.getPlugins);return e?oA.fromBinary(e):{plugins:[]}})}customPluginEventToRoom(e,i,r){const n={pluginId:e,pluginData:new TextEncoder().encode(JSON.stringify(i))};a(this,it).sendMessage($.customPluginEventToRoom,KM.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,YM.toBinary(s),n)}enablePluginForRoom(e,i){a(this,it).sendMessage($.enablePluginForRoom,BM.toBinary({pluginId:e}),i)}enablePluginForPeers(e,i,r){a(this,it).sendMessage($.enablePluginForPeers,GM.toBinary({pluginId:e,peerIds:i}),r)}disablePluginForRoom(e,i){a(this,it).sendMessage($.disablePluginForRoom,jM.toBinary({pluginId:e}),i)}disablePluginForPeers(e,i,r){a(this,it).sendMessage($.disablePluginForPeers,$M.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,Bm.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,eA.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,iA.toBinary(s),n)}storeDelete(e,i,r){a(this,it).sendMessage($.storeDelete,nA.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,Bm.toBinary(n))}on(e,i){let r;switch(e){case $.addPlugin:case $.enablePluginForPeers:case $.enablePluginForRoom:{r=$u.fromBinary.bind($u);break}case $.removePlugin:case $.disablePluginForPeers:case $.disablePluginForRoom:{r=Wm.fromBinary.bind(Wm);break}case $.customPluginEventToPeers:case $.customPluginEventToRoom:{r=Hm.fromBinary.bind(Hm);break}case $.storeInsertKeys:case $.storeGetKeys:case $.storeDeleteKeys:case $.storeDelete:{r=jm.fromBinary.bind(jm);break}}a(this,it).on(e,({payload:n,id:s})=>{const o=r(n);return i(o,s)})}}it=new WeakMap,Ad=new WeakMap;var VO=Object.defineProperty,LO=(t,e,i)=>e in t?VO(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,xO=(t,e,i)=>(LO(t,typeof e!="symbol"?e+"":e,i),i),_p=(t,e,i)=>{if(!e.has(t))throw TypeError("Cannot "+i)},N=(t,e,i)=>(_p(t,e,"read from private field"),i?i.call(t):e.get(t)),we=(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)},de=(t,e,i,r)=>(_p(t,e,"write to private field"),r?r.call(t,i):e.set(t,i),i),Re=(t,e,i)=>(_p(t,e,"access private method"),i),al={},UO={get exports(){return al},set exports(t){al=t}},Ks=typeof Reflect=="object"?Reflect:null,qg=Ks&&typeof Ks.apply=="function"?Ks.apply:function(t,e,i){return Function.prototype.apply.call(t,e,i)},Dd;Ks&&typeof Ks.ownKeys=="function"?Dd=Ks.ownKeys:Object.getOwnPropertySymbols?Dd=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:Dd=function(t){return Object.getOwnPropertyNames(t)};function FO(t){console&&console.warn&&console.warn(t)}var Ny=Number.isNaN||function(t){return t!==t};function pe(){pe.init.call(this)}UO.exports=pe;al.once=HO;pe.EventEmitter=pe;pe.prototype._events=void 0;pe.prototype._eventsCount=0;pe.prototype._maxListeners=void 0;var $g=10;function Ml(t){if(typeof t!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t)}Object.defineProperty(pe,"defaultMaxListeners",{enumerable:!0,get:function(){return $g},set:function(t){if(typeof t!="number"||t<0||Ny(t))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+t+".");$g=t}});pe.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};pe.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||Ny(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 Vy(t){return t._maxListeners===void 0?pe.defaultMaxListeners:t._maxListeners}pe.prototype.getMaxListeners=function(){return Vy(this)};pe.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")qg(c,this,e);else for(var d=c.length,l=By(c,d),i=0;i<d;++i)qg(l[i],this,e);return!0};function Ly(t,e,i,r){var n,s,o;if(Ml(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=Vy(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,FO(c)}return t}pe.prototype.addListener=function(t,e){return Ly(this,t,e,!1)};pe.prototype.on=pe.prototype.addListener;pe.prototype.prependListener=function(t,e){return Ly(this,t,e,!0)};function BO(){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 xy(t,e,i){var r={fired:!1,wrapFn:void 0,target:t,type:e,listener:i},n=BO.bind(r);return n.listener=i,r.wrapFn=n,n}pe.prototype.once=function(t,e){return Ml(e),this.on(t,xy(this,t,e)),this};pe.prototype.prependOnceListener=function(t,e){return Ml(e),this.prependListener(t,xy(this,t,e)),this};pe.prototype.removeListener=function(t,e){var i,r,n,s,o;if(Ml(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():WO(i,n),i.length===1&&(r[t]=i[0]),r.removeListener!==void 0&&this.emit("removeListener",t,o||e)}return this};pe.prototype.off=pe.prototype.removeListener;pe.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 Uy(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?jO(n):By(n,n.length)}pe.prototype.listeners=function(t){return Uy(this,t,!0)};pe.prototype.rawListeners=function(t){return Uy(this,t,!1)};pe.listenerCount=function(t,e){return typeof t.listenerCount=="function"?t.listenerCount(e):Fy.call(t,e)};pe.prototype.listenerCount=Fy;function Fy(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}pe.prototype.eventNames=function(){return this._eventsCount>0?Dd(this._events):[]};function By(t,e){for(var i=new Array(e),r=0;r<e;++r)i[r]=t[r];return i}function WO(t,e){for(;e+1<t.length;e++)t[e]=t[e+1];t.pop()}function jO(t){for(var e=new Array(t.length),i=0;i<e.length;++i)e[i]=t[i].listener||t[i];return e}function HO(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))}Wy(t,e,s,{once:!0}),e!=="error"&&GO(t,n,{once:!0})})}function GO(t,e,i){typeof t.on=="function"&&Wy(t,"error",e,i)}function Wy(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 qO 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 Jg=new qO;class jy{static encode(e){return Jg.toBinary(e)}static decode(e){return Jg.fromBinary(new Uint8Array(e))}}function $O(t,e){return Math.floor(Math.random()*(e-t+1)+t)}var Lr;class JO{constructor(e={}){xO(this,"opts"),we(this,Lr,void 0),this.opts={initialTimeout:e.initialTimeout||1e3,maxTimeout:e.maxTimeout||1e4,factor:e.factor||2},de(this,Lr,0)}wait(){return u(this,null,function*(){de(this,Lr,N(this,Lr)+1);const e=$O(0,Math.min(this.opts.maxTimeout,this.opts.initialTimeout*tT(2,N(this,Lr))));yield new Promise(i=>{setTimeout(i,e)})})}getAttempts(){return N(this,Lr)}reset(){de(this,Lr,0)}}Lr=new WeakMap;const Er={debug:0,info:1,warn:2,error:3};var bn,wn;class KO{constructor(e){we(this,bn,void 0),we(this,wn,void 0),de(this,bn,console),de(this,wn,e)}debug(...e){Er[N(this,wn)]>Er.debug||N(this,bn).debug("[Sockrates]:",...e)}info(...e){Er[N(this,wn)]>Er.info||N(this,bn).info("[Sockrates]:",...e)}warn(...e){Er[N(this,wn)]>Er.warn||N(this,bn).warn("[Sockrates]:",...e)}error(...e){Er[N(this,wn)]>Er.error||N(this,bn).error("[Sockrates]:",...e)}}bn=new WeakMap,wn=new WeakMap;var Hy=(t=>(t[t.CONNECTING=0]="CONNECTING",t[t.OPEN=1]="OPEN",t[t.CLOSING=2]="CLOSING",t[t.CLOSED=3]="CLOSED",t))(Hy||{});const zO="2",YO="3";var Le,Vs,Pe,je,xr,rt,nr,Gr,ki,Ls,Xi,xh,Gy,Mo,Od,Uh,qy,Fh,Kg,ol,Bh,Wh,$y,Go,Nd,qo,cl,dl,jh,zs,$o,Jo,ll;class QO{constructor(e,i){var r;we(this,xh),we(this,Mo),we(this,Uh),we(this,Fh),we(this,ol),we(this,Wh),we(this,Go),we(this,qo),we(this,dl),we(this,zs),we(this,Jo),we(this,Le,void 0),we(this,Vs,void 0),we(this,Pe,void 0),we(this,je,void 0),we(this,xr,void 0),we(this,rt,void 0),we(this,nr,void 0),we(this,Gr,void 0),we(this,ki,void 0),we(this,Ls,void 0),we(this,Xi,void 0);var n,s,o,c,d,l,h,p,v;de(this,Vs,e),de(this,xr,[]),de(this,rt,new al),de(this,nr,!0),de(this,ki,!1),de(this,Pe,i!=null?i:{}),(n=N(this,Pe)).autoReconnect!=null||(n.autoReconnect=!0),(s=N(this,Pe)).retryConnectionInterval!=null||(s.retryConnectionInterval=1e3),(o=N(this,Pe)).pingTimeout!=null||(o.pingTimeout=3e4),(c=N(this,Pe)).connectionTimeout!=null||(c.connectionTimeout=5e3),(d=N(this,Pe)).debug!=null||(d.debug=!0),(l=N(this,Pe)).maxReconnectionAttempts!=null||(l.maxReconnectionAttempts=10),(h=N(this,Pe)).disconnectOnPingTimeout!=null||(h.disconnectOnPingTimeout=!0),(p=N(this,Pe)).queueOnDisconnect!=null||(p.queueOnDisconnect=!1),(v=N(this,Pe)).flushOnReconnect!=null||(v.flushOnReconnect=!1),de(this,Gr,{code:void 0,reason:void 0}),de(this,je,(r=N(this,Pe).logger)!=null?r:new KO(N(this,Pe).debug?"debug":"info")),de(this,Xi,new JO)}get readyState(){var e;return(e=N(this,Le))==null?void 0:e.readyState}get url(){return N(this,Vs)}updateURL(e){de(this,Vs,e),Re(this,Wh,$y).call(this)}get config(){return N(this,Pe)}get sendQueue(){return N(this,xr)}flush(){if(!N(this,Pe).queueOnDisconnect)return!1;const e=[];return N(this,xr).forEach(i=>{this.send(i.event,i.id,i.payload,i.metadata)||e.push(i)}),de(this,xr,e),N(this,xr)}connect(e=!1){return u(this,null,function*(){if(!e&&[0,1].includes(this.readyState)){N(this,je).debug("Websocket was already connecting or connected.");return}if(N(this,nr)!==!1)return new Promise((i,r)=>{Re(this,zs,$o).call(this),Re(this,Jo,ll).call(this);try{de(this,Le,new WebSocket(Re(this,xh,Gy).call(this,N(this,Vs)))),N(this,Le).binaryType="arraybuffer",N(this,je).debug("Connecting");const n=setTimeout(()=>{N(this,je).debug("Connection timeout. Closing socket"),de(this,nr,!0),Re(this,Jo,ll).call(this),N(this,Le).close(3001,"Connection Timeout"),N(this,Pe).autoReconnect&&!N(this,ki)&&(N(this,rt).emit("reconnecting"),Re(this,Go,Nd).call(this)),r(new Error("Connection timed out!"))},N(this,Pe).connectionTimeout);N(this,Le).onopen=()=>{N(this,je).debug(`Ready State: ${Hy[N(this,Le).readyState]}`),n&&clearTimeout(n),Re(this,dl,jh).call(this),de(this,Gr,{code:void 0,reason:void 0}),N(this,rt).emit("connected"),N(this,Pe).flushOnReconnect&&this.flush(),i()},N(this,Le).onclose=s=>{try{n&&clearTimeout(n);const{code:o,reason:c}=s;r(c),N(this,je).debug("Socket closed. Close event:",{event:s}),N(this,je).debug(`Connection closed code: ${o}`),N(this,je).debug(`Connection closed reason: ${c}`),N(this,ki)||Re(this,ol,Bh).call(this,o,c)}catch(o){Re(this,Mo,Od).call(this,o)}},N(this,Le).onerror=s=>{Re(this,Mo,Od).call(this,s)},N(this,Le).onmessage=s=>Re(this,Uh,qy).call(this,s)}catch(n){Re(this,Mo,Od).call(this,n,r)}})})}send(e,i,r,n){const s={event:e,id:i,payload:r,metadata:n};if(N(this,Pe).queueOnDisconnect&&(!N(this,Le)||N(this,Le).readyState!==1))return N(this,je).debug("Queuing message since socket is not connected!",s),N(this,xr).push(s),!1;const o=jy.encode(s);return Re(this,qo,cl).call(this,o)}emit(e,i,r,n){return this.send(e,i,r,n)}sendRaw(e){return Re(this,qo,cl).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(){de(this,nr,!1),Re(this,zs,$o).call(this),this.removeAllListeners(),de(this,Gr,{code:1e3,reason:"Sockrates disconnect method called"}),N(this,Le).close(1e3,"Sockrates disconnect method called.")}}Le=new WeakMap,Vs=new WeakMap,Pe=new WeakMap,je=new WeakMap,xr=new WeakMap,rt=new WeakMap,nr=new WeakMap,Gr=new WeakMap,ki=new WeakMap,Ls=new WeakMap,Xi=new WeakMap,xh=new WeakSet,Gy=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)://.")},Mo=new WeakSet,Od=function(t,e){N(this,je).error("Error:",{error:t}),N(this,rt).emit("errored",{error:t}),e==null||e(t)},Uh=new WeakSet,qy=function(t){if(Re(this,dl,jh).call(this),t.data===zO){N(this,je).debug("Received ping from server"),Re(this,qo,cl).call(this,YO);return}const e=jy.decode(t.data),{id:i,payload:r}=e;N(this,je).debug("Received message",{event:e.event,messageID:i}),N(this,rt).emit(e.event.toString(),{id:i,payload:r})},Fh=new WeakSet,Kg=function(){return N(this,Le).readyState===1},ol=new WeakSet,Bh=function(t,e){de(this,Gr,{reason:e,code:t}),N(this,rt).emit("disconnected",{code:t,reason:e})},Wh=new WeakSet,$y=function(){const{reason:t,code:e}=N(this,Gr);e&&e!==1e3&&N(this,nr)&&N(this,Pe).autoReconnect&&!N(this,ki)&&(N(this,je).debug(`Triggering reconnection due to ${t}.`),N(this,rt).emit("reconnecting"),Re(this,Go,Nd).call(this))},Go=new WeakSet,Nd=function(t=!0){return u(this,null,function*(){if(t&&N(this,ki)){N(this,je).debug("Reconnect called when already in a reconnect loop. Ignoring.");return}if(N(this,ki)||N(this,Xi).reset(),N(this,Pe).maxReconnectionAttempts!==null&&N(this,Xi).getAttempts()>=N(this,Pe).maxReconnectionAttempts){N(this,rt).emit("failed"),de(this,ki,!1);return}de(this,ki,!0),Re(this,Jo,ll).call(this),Re(this,zs,$o).call(this);try{if(yield N(this,Xi).wait(),N(this,nr)===!1)return;if(N(this,je).debug(`Reconnection attempt ${N(this,Xi).getAttempts()}`),N(this,rt).emit("reconnectAttempt",{attempt:N(this,Xi).getAttempts()}),yield this.connect(),!Re(this,Fh,Kg).call(this))throw Error("Reconnect Failed");de(this,ki,!1),de(this,Gr,{code:void 0,reason:void 0}),N(this,rt).emit("reconnected")}catch(e){N(this,je).debug("Failed to reconnect."),N(this,rt).emit("reconnectFailure",{attempt:N(this,Xi).getAttempts()}),Re(this,Go,Nd).call(this,!1)}})},qo=new WeakSet,cl=function(t){try{return N(this,Le).send(t),!0}catch(e){return N(this,je).error(e.message),!1}},dl=new WeakSet,jh=function(){this.config.disconnectOnPingTimeout&&(N(this,je).debug("Resetting ping timeout"),Re(this,zs,$o).call(this),de(this,Ls,setTimeout(()=>{var t;N(this,je).debug("Disconnecting the socket due to ping timeout"),de(this,nr,!0);const e=3002,i="Ping timeout";(t=N(this,Le))==null||t.close(e,i),Re(this,ol,Bh).call(this,e,i)},N(this,Pe).pingTimeout)))},zs=new WeakSet,$o=function(){N(this,Ls)&&(clearTimeout(N(this,Ls)),de(this,Ls,void 0))},Jo=new WeakSet,ll=function(){N(this,Le)&&(N(this,Le).onopen=void 0,N(this,Le).onerror=void 0,N(this,Le).onmessage=void 0,N(this,Le).onclose=void 0)};var XO=Object.defineProperty,ZO=Object.getOwnPropertyDescriptor,Al=(t,e,i,r)=>{for(var n=r>1?void 0:r?ZO(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&&XO(e,i,n),n};const zg=65535,eN=3e3;var ln,Oe,Ne,xe,pi,ut,Uc,Cu,Fc,Pu,Yg;const Jy=(Yg=class{constructor(t,{peerId:e,meetingId:i,authToken:r,capabilities:n}){g(this,Ne),g(this,Uc),g(this,Fc),g(this,ln,void 0),g(this,Oe,void 0),m(this,"roomName"),m(this,"authToken"),m(this,"capabilities"),g(this,pi,void 0),g(this,ut,void 0);var s;if(!e||!i||!r)throw new I("peerId, meetingId, or authToken can not be empty","0404");f(this,pi,void 0),f(this,ut,t),this.capabilities=n,this.roomName=i,this.authToken=r,f(this,ln,U(this,Uc,Cu).call(this,e)),f(this,Oe,new QO(a(this,ln),{autoReconnect:!0,disconnectOnPingTimeout:(s=n.includes("PING"))!=null?s:!1,queueOnDisconnect:!0,flushOnReconnect:!1,logger:this.logger})),this.handleSocketConnectionEvents()}get joinAttempted(){return a(this,Ne,xe).socketJoinAttempted}set joinAttempted(t){a(this,Ne,xe).socketJoinAttempted=t}get telemetry(){return a(this,ut).getValue("telemetry")}get logger(){return a(this,ut).getValue("logger")}get peerId(){return a(this,ut).getValue("peerId")}updateURL(t){t!==this.peerId&&(f(this,ln,U(this,Uc,Cu).call(this,t)),this.logger.debug("SocketService:: Connection URL updated.")),a(this,Oe).updateURL(a(this,ln))}static getSocketEdgeDomain(t){return On({servicePrefix:"socket-edge",baseURI:t})}get url(){return a(this,ln)}connect(){return u(this,null,function*(){a(this,Ne,xe).socketJoinAttempted=!0,yield a(this,Oe).connect(),a(this,Ne,xe).socketJoinAttempted=!0,a(this,Ne,xe).socketState={state:"connected",reconnected:!1,reconnectionAttempt:void 0}})}disconnect(){a(this,Ne,xe).socketJoinAttempted=!1,a(this,Oe).disconnect(),a(this,Ne,xe).socketJoinAttempted=!0,a(this,Ne,xe).socketState={state:"disconnected",reconnected:!1,reconnectionAttempt:void 0}}get isConnected(){try{return a(this,Oe).readyState===1}catch(t){return!1}}sendMessage(t,e,i){const r={};return a(this,ut).getValue("telemetry").injectContext(r),a(this,Oe).send(t,i!=null?i:U(this,Fc,Pu).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=(S,E)=>{a(this,Oe).removeListener(s,S),a(this,Oe).removeListener(zg,E),a(this,Oe).removeListener(oi.errorResponse,E),a(this,Oe).removeListener(Ei.errorResponse,E)},l=r!=null?r:U(this,Fc,Pu).call(this),h={};a(this,ut).getValue("telemetry").injectContext(h);const p=({id:S,payload:E})=>{if(l===S){let C;try{const b=XI.fromBinary(E);C=new Error(b.errorMessage)}catch(b){C=new Error("failed to parse error message",{cause:b});try{const M=ZC.fromBinary(E);C=new Error(M.message)}catch(M){C=new Error("failed to parse error message",{cause:M})}}c(C),d(v,p)}},v=({id:S,payload:E})=>{l===S&&(o({id:S,payload:E}),d(v,p))};a(this,Oe).on(s,v),a(this,Oe).on(zg,p),a(this,Oe).on(oi.errorResponse,p),a(this,Oe).on(Ei.errorResponse,p),setTimeout(()=>{d(v,p),c(new Error(`request timeout for callback eventId:${t}`))},e),a(this,Oe).send(t,l,i,new TextEncoder().encode(JSON.stringify(h)))})}on(t,e){a(this,Oe).on(t,e)}onStateEvent(t,e){a(this,Oe).on(t,e)}removeListener(t,e){a(this,Oe).removeListener(t,e)}removeListeners(t){a(this,Oe).removeListeners(t)}flush(){return a(this,Oe).flush()}handleSocketConnectionEvents(){this.onStateEvent("connected",()=>u(this,null,function*(){this.logger.info("SocketService::Connected to socket-edge"),a(this,pi)&&(clearTimeout(a(this,pi)),f(this,pi,void 0)),a(this,Ne,xe).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:k.location.country});const{recv:r,send:n}=(i=a(this,Ne,xe).mediaState)!=null?i:{};r!=null&&r.state&&(r==null?void 0:r.state)!==ta.CONNECTED||n!=null&&n.state&&(n==null?void 0:n.state)!==ta.CONNECTED?a(this,ut).getValue("peerSessionStore").emit(R.SOCKET_SERVICE_DISCONNECTED,{joinAttempted:a(this,Ne,xe).joinAttempted}):f(this,pi,setTimeout(()=>{a(this,ut).getValue("peerSessionStore").emit(R.SOCKET_SERVICE_DISCONNECTED,{joinAttempted:a(this,Ne,xe).joinAttempted}),f(this,pi,void 0)},eN)),a(this,Ne,xe).updateSocketConnectionState("disconnected")}),this.onStateEvent("reconnecting",()=>u(this,null,function*(){this.logger.info("SocketService::Reconnecting to socket-edge",{country:k.location.country}),a(this,Ne,xe).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,Ne,xe).updateSocketConnectionState("reconnectAttempt",e)})),this.onStateEvent("reconnectFailure",({attempt:t})=>{this.logger.info("SocketService::Reconnect attempt to socket-edge failed",{socket:{retryAttempt:t}}),a(this,Ne,xe).updateSocketConnectionState("reconnectFailure",t)}),this.onStateEvent("reconnected",()=>u(this,null,function*(){this.logger.info("SocketService::Reconnected to socket-edge",{connectionState:{joinAttempted:a(this,Ne,xe).mediaJoinAttempted}}),a(this,pi)&&(clearTimeout(a(this,pi)),f(this,pi,void 0)),a(this,ut).getValue("peerSessionStore").emit(R.SOCKET_SERVICE_RECONNECTED,{wasJoinAttempted:a(this,Ne,xe).mediaJoinAttempted}),a(this,Ne,xe).updateSocketConnectionState("reconnected")})),this.onStateEvent("failed",()=>u(this,null,function*(){this.logger.info("SocketService::Failed to connect to socket-edge",{country:k.location.country}),a(this,ut).getValue("peerSessionStore").emit(R.SOCKET_SERVICE_FAILED),a(this,Ne,xe).updateSocketConnectionState("failed")}))}},ln=new WeakMap,Oe=new WeakMap,Ne=new WeakSet,xe=function(){return a(this,ut).getValue("connectionHandler")},pi=new WeakMap,ut=new WeakMap,Uc=new WeakSet,Cu=function(t){let e=Jy.getSocketEdgeDomain(a(this,ut).getValue("baseURI"));typeof Zs(a(this,ut),"socket_server_base")=="string"&&(e=Zs(a(this,ut),"socket_server_base"));const i=`wss://${e}`,r=new URL(`${i}/ws`),n=this.peerId,s=q(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=>Kd[o]).join(" "),joinWithDetails:!0,useCfWorker:!0,useStartSession:!0});return Object.entries(s).forEach(([o,c])=>{r.searchParams.append(o,c.toString())}),r.href},Fc=new WeakSet,Pu=function(){return`${this.peerId}-${(Math.random()+1).toString(36).substring(7)}`},Yg);let oc=Jy;Al([k.trace("SocketService.connect")],oc.prototype,"connect",1);Al([k.trace("SocketService.disconnect")],oc.prototype,"disconnect",1);Al([k.trace("SocketService.sendMessagePromise")],oc.prototype,"sendMessagePromise",1);Al([k.trace("SocketService.sendMessagePromiseWithTimeout")],oc.prototype,"sendMessagePromiseWithTimeout",1);class tN{constructor(e){m(this,"socketService"),this.socketService=e}handleConnectedRoomsDumpRaw({payload:e}){var i;const r=IP.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=XP.fromBinary(e);return{authToken:i.authToken,meetingId:i.meetingId}}handleMovedPeerRaw({payload:e}){const i=jv.fromBinary(e);return{meetingId:i.meetingId,customParticipantId:i.customParticipantId}}handleConnectedRoomsUpdatedRaw({payload:e}){return Lm.fromBinary(e).payloads.map(i=>({id:i.id,title:i.title}))}handleConnectedRoomsDeletedRaw({payload:e}){return jP.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,MP.toBinary({payloads:e}));return Lm.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,BP.toBinary({payloads:i}));return this.handleConnectedRoomsDeletedRaw(r)})}movePeersBetweenRooms(e){return u(this,null,function*(){try{const i=yield this.socketService.sendMessagePromise(F.movePeers,KP.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 iN=Object.defineProperty,rN=Object.getOwnPropertyDescriptor,nN=(t,e,i,r)=>{for(var n=r>1?void 0:r?rN(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&&iN(e,i,n),n},Vi;class Ky extends Qt{constructor(e){const i=e.getValue("logger");super(i),m(this,"meetings",[]),m(this,"parentMeeting",null),g(this,Vi,void 0),f(this,Vi,e)}get supportsConnectedMeetings(){return a(this,Vi).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,Vi).getValue("connectedMeetingsSocketHandler").getConnectedRoomsDump()})}createMeetings(e){return u(this,null,function*(){return this.validateConnectedMeetingsAction(),(yield a(this,Vi).getValue("connectedMeetingsSocketHandler").createConnectedRooms(e)).map(i=>({id:i.id,title:i.title}))})}updateMeetings(e){return u(this,null,function*(){this.validateConnectedMeetingsAction(),yield a(this,Vi).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,Vi).getValue("connectedMeetingsSocketHandler").disableConnectedRooms(e)})}moveParticipants(e,i,r){return u(this,null,function*(){this.validateConnectedMeetingsAction();const n=yield a(this,Vi).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,Vi).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 q(V({},s),{participants:o})}if(e===s.id){const o=s.participants.filter(c=>!r.includes(c.id));return q(V({},s),{participants:o})}return s})}}Vi=new WeakMap;nN([Ft({maxInvocations:60,period:60})],Ky.prototype,"getConnectedMeetings",1);var sN=Object.defineProperty,aN=Object.getOwnPropertyDescriptor,Ip=(t,e,i,r)=>{for(var n=r>1?void 0:r?aN(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&&sN(e,i,n),n},Ee,Qg;const zy=(Qg=class{constructor(t){m(this,"connectedMeetings"),g(this,Ee,void 0),f(this,Ee,t),this.connectedMeetings=new Ky(t)}get telemetry(){return a(this,Ee).getValue("telemetry")}get logger(){return a(this,Ee).getValue("logger")}static init(t){const e=new zy(t);return e.connectedMeetings.supportsConnectedMeetings&&(e.setupEvents(),t.getValue("self").once("roomJoined",()=>e.getConnectedMeetings())),e}getConnectedMeetings(){this.connectedMeetings.getConnectedMeetings()}setupEvents(){a(this,Ee).getValue("connectedMeetingsSocketHandler").socketService.on(F.getConnectedRoomsDump,this.handleConnectedRoomsDump.bind(this)),a(this,Ee).getValue("connectedMeetingsSocketHandler").socketService.on(F.transferPeer,this.handleTransferPeer.bind(this)),a(this,Ee).getValue("connectedMeetingsSocketHandler").socketService.on(F.movedPeer,this.handleMovedPeer.bind(this)),a(this,Ee).getValue("connectedMeetingsSocketHandler").socketService.on(F.connectedRoomsUpdated,this.handleConnectedRoomsUpdated.bind(this)),a(this,Ee).getValue("connectedMeetingsSocketHandler").socketService.on(F.connectedRoomsDeleted,this.handleConnectedRoomsDeleted.bind(this))}handleTransferPeer(t){const e=a(this,Ee).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,Ee).getValue("self").videoEnabled,audio:a(this,Ee).getValue("self").audioEnabled};try{a(this,Ee).getValue("self").cleanupEvents(),yield a(this,Ee).getValue("meeting").leave("connected-meeting")}catch(l){this.logger.error(`ConnectedMeetingsController:: switchMeeting:: issues in leaving previous meeting. Meeting Id: ${(n=(r=a(this,Ee).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(q(V({},a(this,Ee).getValue("options")),{cachedUserDetails:null,defaults:q(V(V({},a(this,Ee).getValue("options").defaults),c),{mediaHandler:a(this,Ee).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,Ee).getValue("self");d.self.setName(a(this,Ee).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,Ee).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,Ee).getValue("connectedMeetingsSocketHandler").handleMovedPeerRaw(t)}handleConnectedRoomsUpdated(t){const e=a(this,Ee).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,q(V({},r),{participants:[]}))}),this.connectedMeetings.meetings=Array.from(i.values()),this.emitStateUpdate()}handleConnectedRoomsDeleted(t){const e=a(this,Ee).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})}},Ee=new WeakMap,Qg);let Dl=zy;Ip([k.trace("ConnectedMeetingsController.getConnectedMeetings")],Dl.prototype,"getConnectedMeetings",1);Ip([k.trace("ConnectedMeetingsController.setupEvents")],Dl.prototype,"setupEvents",1);Ip([k.trace("ConnectedMeetingsController.switchMeeting")],Dl.prototype,"switchMeeting",1);var oN=Object.defineProperty,cN=Object.getOwnPropertyDescriptor,Ol=(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};const xs=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(Ay(t),Ie.isSupported()===!1)throw new I("Browser not supported","0010",l,!0);const h=l1(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 $1(t);t.setValue("connectionHandler",p);const v=xs.createSocketService(t),S=v.connect(),E=h.getUserDetails(),C=h.getPlugins();let b=De.HIVE,M,j="";try{yield xs.setupFlagsmith(t)}catch(ae){l.error("Failed to setup flagsmith",{error:ae})}try{yield S}catch(ae){l.error("[Controller]: Failed to connect to socket server:",{error:ae})}try{({sfu:b,meetingTitle:j}=yield h.getRoomNodeData()),M=yield E,l.info(`SFU ${b} is being used.`),t.setValue("presetName",M.preset.name),t.setValue("roomNodeOptions",{sfu:b})}catch(ae){l.error("Failed to get room metadata",{error:ae})}const W=MD.init(M.preset,!t.getValue("modules").theme),w=QD.init(t,W.viewType,M.preset.permissions),te=xs.setupControllers(v,t,M,C,j,W,w);V1(W)&&((e=xs.createRoomNodeClient(t,v).initializeConnection(M.participant.name,o,!1,w))==null||e.catch(ae=>{l.error("[Controller]: Failed to queue partial media room promise:",{error:ae})})),k.location.country=(i=h.ipInfo)==null?void 0:i.country;const{controllers:ie}=yield te;return D_(),new xs(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=A_(s),l=q(V({entity:Fu.PEER,clientId:o,isAnonUser:!o,sdkVersion:t.getValue("sdkVersion"),presetName:t.getValue("presetName"),meetingHash:d,roomName:s},Ie.getDeviceInfo()),{isReactNative:navigator.isReactNative});try{const h=(e=n==null?void 0:n.whitelabelled_flags_endpoint)==null||e?On({servicePrefix:"flags",baseURI:r}):"edge.api.flagsmith.com";yield t.getValue("flagsmith").identify(`${Fu.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"),S=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",Ie.isMobile()?s.maxVideoStreams.mobile:s.maxVideoStreams.desktop);let M,j,W,w,te,ie,ae,Me,Xe;const Wt=new CO(e,t),A=new tN(t);e.setValue("connectedMeetingsSocketHandler",A);const T=new Rl(e,t),_=new ci(e,t),B=new OO(t),oe=new Oy(e,t),He=new NO(e,t),x=new IO(t),P=new xn(e,t),ce=yield Qr.init(e,oe,p,o,s);e.setValue("selfController",ce);const Xr=yield ey.init(e,ce.self,oe,Wt,n);if(h.participant&&(Me=new pr(e,ce.self,oe,E)),(l=h.e2ee)!=null&&l.enabled&&h.e2ee.manager.init(S,e.getValue("peerSessionStore")),h.chat&&(j=yield ar.init(e,_,P,ce.self,Me.participants)),h.internals&&(te=yield mp.init(e)),h.livestream&&s.viewType===Ut.Livestream&&e.getValue("flagsmith").hasFeature(X.LIVESTREAM)&&(ae=new dy(e,ce.self,x)),s.viewType!==Ut.Chat){if(h.poll&&(M=yield Yv.init(e,ce.self,T)),h.recording&&(ie=new ny(e,ce.self,oe)),h.stage&&(W=new ty(e,B,oe,ce.self,Me.participants)),h.plugin){if(!Me)throw new I("The plugin module cannot be initialized without the `participant` module","0102");const Gi=yield r;w=yield rc.init(e,Gi,He,_,j==null?void 0:j.chat,ce.self,Me.participants,n)}if(h.connectedMeetings&&(Xe=yield Dl.init(e)),h.pip){const Gi=yield V_._init(e,ce.self);e.setValue("pip",Gi)}}const Zr={storesManager:new UD(e,He),pollController:M,selfController:ce,metaController:Xr,chatController:j,stageController:W,pluginController:w,recordingController:ie,internalsController:te,livestreamController:ae,participantController:Me,connectedMeetingsController:Xe};return{theme:s,permissions:o,controllers:Zr}})}static createRoomNodeClient(t,e){const{peerId:i,roomNodeOptions:r}=t.getAllValues(),{sfu:n}=r;return My(t,n,{socket:e,peerId:i})}static createSocketService(t){const{peerId:e,meetingId:i,authToken:r}=t.getAllValues(),n=["PING"];return new oc(t,{peerId:e,meetingId:i,authToken:r,capabilities:n})}};let cc=xs;Ol([k.trace("Controller.init")],cc,"init",1);Ol([k.trace("setupFlagsmith")],cc,"setupFlagsmith",1);Ol([k.trace("Controller.createRoomNodeClient")],cc,"createRoomNodeClient",1);Ol([k.trace("Controller.createSocketService")],cc,"createSocketService",1);class dN{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 Xg=new dN;function lN(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://${On({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 _n,Us,Fs,ul,Hh,Yy;class uN{constructor(){g(this,Hh),g(this,_n,new Audio),g(this,Us,new MediaStream),g(this,Fs,new Map),g(this,ul,void 0),a(this,_n).srcObject=a(this,Us),a(this,_n).autoplay=!0}playTracks(e){return u(this,null,function*(){return e.forEach(i=>{a(this,Fs).has(i.id)||(a(this,Us).addTrack(i),a(this,Fs).set(i.id,i))}),this.play()})}setSpeakerDevice(e){typeof HTMLAudioElement.prototype.setSinkId=="function"&&a(this,_n).setSinkId(e)}removeTrack(e){const i=a(this,Fs).get(e);i&&(a(this,Us).removeTrack(i),a(this,Fs).delete(e))}play(){return u(this,null,function*(){return a(this,_n).srcObject=a(this,Us),a(this,_n).play().catch(e=>{U(this,Hh,Yy).call(this,e)})})}onError(e){f(this,ul,e)}}_n=new WeakMap,Us=new WeakMap,Fs=new WeakMap,ul=new WeakMap,Hh=new WeakSet,Yy=function(t){var e;(e=a(this,ul))==null||e.call(this,t)};var Bs;class hN extends uN{constructor(){super(),g(this,Bs,void 0),f(this,Bs,new Map)}addParticipantTrack(e,i){a(this,Bs).set(e,i.id),this.playTracks([i])}removeParticipantTrack(e){const i=a(this,Bs).get(e);i&&this.removeTrack(i),a(this,Bs).delete(e)}}Bs=new WeakMap;var pN=Object.defineProperty,mN=Object.getOwnPropertyDescriptor,Nl=(t,e,i,r)=>{for(var n=r>1?void 0:r?mN(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&&pN(e,i,n),n},et,fs,Zg;let zr=(Zg=class{constructor(t,e){g(this,et,void 0),g(this,fs,void 0),f(this,fs,t),f(this,et,e)}get peerId(){return a(this,fs).getValue("peerId")}static initMedia(t={},e=!1,i=void 0){var r;const n=(r=i==null?void 0:i.peerId)!=null?r:Vn(),s=sr.createContext(n,{peerId:n}),o=s.getValue("logger");o.init(s);const c=new py(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;Ie.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:Vn()),{authToken:h,baseURI:p}=t,v=lN(h,p),{meetingId:S}=v,E=ml(v,["meetingId"]);window.__zone_symbol__DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION=!0;const C=zr.setupContext(l,t,S,E),b=C.getValue("telemetry"),M=C.getValue("logger");sT(M),Xg.init(M),b.init(C,{roomName:S,userId:E.participantId,organizationId:E.orgId,peerId:l},(s=(n=t.modules)==null?void 0:n.tracing)!=null?s:!0),M.init(C),M.info("DyteClient::init::options",{dyteClientInitOptions:q(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 cc.init(C),W=new zr(C,j);return C.setValue("meeting",W),W})}static setupContext(t,e,i,r){var n,s;const o=sr.createContext(t,e),c=V(V({},b_),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",w_({baseURI:r.baseURI})),o.setValue("defaults",d),o.setValue("onError",e.onError||(()=>{})),o.setValue("cachedUserDetails",wi(e.cachedUserDetails)),o.setValue("sdkVersion","3.1.7-staging.
|
|
22
|
+
${(c=t.authToken)==null?void 0:c.slice(-10)}`})});const j=yield cc.init(C),W=new zr(C,j);return C.setValue("meeting",W),W})}static setupContext(t,e,i,r){var n,s;const o=sr.createContext(t,e),c=V(V({},b_),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",w_({baseURI:r.baseURI})),o.setValue("defaults",d),o.setValue("onError",e.onError||(()=>{})),o.setValue("cachedUserDetails",wi(e.cachedUserDetails)),o.setValue("sdkVersion","3.1.7-staging.2"),(s=e.modules)!=null&&s.experimentalAudioPlayback&&o.setValue("audioPlayback",new hN),o}join(){return u(this,null,function*(){const{selfController:t}=a(this,et);return t.self.roomJoined?null:t.joinRoom()})}leave(t){return u(this,null,function*(){Xg.cleanup(),a(this,fs).getValue("peerSessionStore").reset();const{selfController:e}=a(this,et);return e.leaveRoom(t)})}get participants(){var t;return(t=a(this,et).participantController)==null?void 0:t.participants}get self(){var t;return(t=a(this,et).selfController)==null?void 0:t.self}get meta(){var t;return(t=a(this,et).metaController)==null?void 0:t.meta}get ai(){var t;return(t=a(this,et).metaController)==null?void 0:t.ai}get plugins(){var t;return(t=a(this,et).pluginController)==null?void 0:t.plugins}get chat(){var t;return(t=a(this,et).chatController)==null?void 0:t.chat}get polls(){var t;return(t=a(this,et).pollController)==null?void 0:t.polls}get connectedMeetings(){var t;return(t=a(this,et).connectedMeetingsController)==null?void 0:t.connectedMeetings}get recording(){var t;return(t=a(this,et).recordingController)==null?void 0:t.recording}get livestream(){var t;return(t=a(this,et).livestreamController)==null?void 0:t.livestream}get stage(){var t;return(t=a(this,et).stageController)==null?void 0:t.stage}get stores(){return a(this,et).storesManager}get audio(){return a(this,fs).getValue("audioPlayback")}get __internals__(){var t;return(t=a(this,et).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)})}},et=new WeakMap,fs=new WeakMap,Zg);Nl([ft("0002"),hr.executeWithLock({methodName:"meeting.join",lockName:"DyteClient.join",timeout:3e3})],zr.prototype,"join",1);Nl([ft("0003")],zr.prototype,"leave",1);Nl([ft("0001"),hr.executeWithLock({methodName:"DyteClient.init",lockName:"DyteClient.init",timeout:3e3})],zr,"init",1);zr=Nl([ft("0000")],zr);const Qy=zr;module.exports=Qy;
|